Transcript 下載/瀏覽
第 11 組 國科會自由軟體專案 『需求規格報告書』 數位廣播接收機音訊解碼 程式之撰寫 組長:楊東霖 組員:劉瑞顯、徐祥榮 目錄 • • • • • • • • 案例背景…………………………………………………03 開發軟體內容……………………………………………04 所有功能項目……………………………………………05 內部介面需求……………………………………………06 外部介面需求……………………………………………07 功能規格與流程…………………………………………08 操作概念…………………………………………………10 系統需求…………………………………………………11 2 案例背景 計畫中,將預計撰寫完成數位廣播接收機之音訊解碼程 式。此程式將以個人電腦為平台,輸入之檔案為數位廣播所 規範之音訊位元流,輸出為PCM 檔案及 X-PAD資訊檔。整個 程式的數學運算,將以定點數運算為之,以利後續移植到實 際系統之便。除此之外,整個系統將特別考慮記憶體使用之 效率,及降低演算法之複雜度。在系統測試方面,第一階段 將使用ISO之測試位元流(test bitstream),檢驗撰寫完畢 之MPEG-1/2 Layer II之解碼程式是否完全正確。然後第二 階段再使用數位廣播之測試位元流(test bitstream),做最 後之功能確認。 3 開發軟體內容 隨著科技的進步,廣播也已經進入數位化的時代。由於 數位廣播的音質優美,並且可以傳送圖片及資料等,以及可 以使用單一頻率(SFN)達成全國聯播網,因此數位廣播將是 未來的潮流。有鑑於此,本計畫預定在個人電腦上,撰寫數 位廣播接收機(DAB receiver)之音訊解碼程式,將數位廣 播接收機收到之音訊編碼訊號,加以解碼,還原成PCM 訊號。 為求達到實用之目的,本程式之數學運算,預定以定點數 (fixed-point)之方式,加以實現,使有志於發展數位廣播 接收機之工程師,能在最短時間內,將本程式移植到其他定 點數運算之平台,如DSP CPU 或ARM CPU 等,以之建構出完 整之接收機。 4 所有功能項目 功能性需求(Functional Requirements) •提供位元分配解碼之功能 •提供位比例因子解碼之功能 •提供取樣重新量化之功能 •提供子頻帶合成器之功能 •將解碼之後的聲音訊號儲存成 PCM 檔案。 •將解碼後的 X-PAD, F-PAD 資訊儲存成檔案,以備查詢。 5 內部介面需求 • ADS 必需解析 DAB audio frame Header,從而得知記載 同步位元、取樣頻率、資料率、聲音壓縮率,最後將可 提供 PCM 轉換時的資訊。 • ADS 子系統要負責把 XPAD 的輸入資料準備好,然後把 工作交由 XPAD 子系統來解析。 • XPAD 要負責把 SCFSI CRC 交給 ADS 子系統,解碼下一 個 Audio Frame 時需要用來比對。 6 外部介面需求 • 輸入的 DAB Audio Frame 必須滿足 ETSI 300.401 的規 格。 • 解碼後聲音訊號,是以 PCM Raw Data 的檔案型式輸出。 • 解碼時,聲音的相關資訊,例如取樣頻率、位元率、單 雙聲道…等,也要輸出到另外的檔案。 • PAD 部份,以文字檔的方式輸出。 7 功能規格與流程 音訊解碼子系統(Audio Decoding System)提供數位廣播系 統Mpeg I layer II 的聲音解碼,整個解碼子系統由四個子 區塊所組成,分別為: • 位元分配解碼區塊(Decoding of bit allocation ,DBA), • 比例因子解碼區塊(Decoding of scalefactors ,DS), • 取樣重新量化區塊(Re-quantization of samples ,RQS), • 子頻帶合成器區塊(Synthesis sub-band filter ,SSB) 8 功能規格與流程 接下來,依據Layer II預先定義好之表格,查出每一個子頻帶 首先,程式先找出位元流中訊框開頭(Frame 接下來,讀取子頻帶之取樣點(subband sample)之資料,並 Header,內含 (subband) 之位元分配欄位(bit allocation)使用之位元(bit)數,並依 Sync 與scale Word)。找到開頭後,分析其記載之資訊,以確認其規 factor相乘,以得到子頻帶取樣點之真正數值。由於 據此查出每個子頻帶之取樣點(sample)的位元數。如果某個子頻 子頻帶取樣點之數值,係以三個為一組,因此編碼上有可能 格為MPEG-1或MPEG-2,然後記錄CRC,以備後面使用。 帶的位元分配(bit allocation)不為零,則可繼續讀出該子頻帶之 基本上,MPEG-1及MPEG-2編碼之差異不大,主要是 grouping在一起,變成一個數值,因此在讀取數值時,要加 SCFSI ( SCale Factor Selection Info ) 以判斷該子頻帶在本訊框 MPEG-1取樣頻率為48 以注意。最後再利用子頻帶合成(subband ks/s,而MPEG-2為24 synthesis)的公式, ks/s。 之中,有多少個scale factor。SCFSI欄位指示的,可能是三個獨 產生音訊之PCM訊號。在數位廣播中,則需再增加判斷 立的scale factor,前兩個取樣點共用一個數值,後兩個取樣點共 scale factor之CRC(SCF-CRC)及解碼F-PAD、X-PAD等 用一個數值,或是三個取樣點共用一個數值。因此程式必須要依 部份,才算完成。 此指示,將相關之scale factor讀出。 9 操作概念 (Operational Concept) 本系統使用者操作流程圖: 本系統的輸入檔案,可由 ISO 下載 測試檔案,或是經由數位收音機截 取下DAB Audio Bitstream,規格如 外部需求所示。本系統將依照檔案 的內容,輸出 48KHz 或 24KHz 的 PCM 檔案,並將解碼相關資訊 (XPad, F-Pad… )寫入檔案。使用者 可使用 Cool Edit 之類的音樂播放 軟體,播放輸出的 PCM 檔案,也可 以開啟解碼資訊檔案,檢視解碼之 正確性。 10 系統需求 效能需求 (Performance Requirements) •本系統所撰寫出來的 Fixed-Point 格式的程式,預計效能會比 標準Mpeg 1 Layer 2 的Reference Code 效能提高10倍。 •解碼之後的語音訊號, 有12bit 的精確度 測試需求 (Test Requirements) •與ISO提供之MPEG-1/2 Layer I/II/III之參考程式(reference program),交互比較,以確認 audio coding 的部份完全正確。 •利用數位廣播專用之測試位元流 (test bitstream),測試所撰 寫之程式,以確認此程式是否完全正確。 •把 F-PAD 及X-PAD 之欄位分析 (parse)出來,並送到另一個檔 案中加以儲存,再檢驗其正確性。 系統需求 環境需求其他需求 (Other Requirements) 可信度需求 (Reliability Requirement) •遇到不正確的輸入檔,能避免程式異常中止。 維護性需求 (Maintainability Requirement) •所有程式需要以模組化的方式開發,以加快維護效率。將 來需要與更大的系統做整合時,修改的輻度能減到最低。 安裝需求 (Installation Requirement) •執行檔需可於 2000 / XP 上安裝,而不需要其他的安裝元件。 系統需求 環境需求 (Environmental Requirement) •執行的硬體主機為 Intel P4 1G 以上的機器,硬碟(Hard •Disk)空間需要2G 以上。 •喇叭一組。 系統需求 設計限制 (Design and Implementation Constrains) • 整個程式的數學運算採用定點數(fix-point) 運算 技術限制 (Technological Limitation) • 解碼時,遇到錯誤的 Audio Frame ,無法做錯誤更正 • (error correction) 及錯誤掩飾(error concealment) 使用者議題 (End User Issue) • 本系統的針對的使用者,是開發 DAB Receiver 的 RD工程師。 • 本系統可以做為一個比較的範本。也能輕易地移植到各種不同 平台。 系統需求 風險管理 (Risk Management) •RSK-001 使用 Microsoft 平台需要考慮到病毒的問題,因此防 毒軟體的安裝需要考慮,並注意資料的備份。