王立众:学习多媒体开发从编解码开始
認識王立眾,是通過一位熱心的讀者引薦,一番波折后才有了此文,這也是『下一代編解碼器』系列采訪的第9篇。隨著云平臺服務的普及,大多數多媒體開發者并不需要了解底層技術。但如果有興趣扎根于多媒體技術,就需要學習底層技術,而編解碼器則是關鍵的一環。中國三星研究院的音頻研發負責人王立眾通過LiveVideoStack分享了音頻編解碼器生態的方方面面。
責編 / Ant
關于編解碼器
LiveVideoStack:相對于視頻編解碼器,音頻編解碼器有哪些特點?
王立眾:簡而言之, 我認為音頻編解碼器要比想象的復雜。
音頻編解碼, 也就是音頻Codec, 實際上分成兩類:
一種是在電聲領域的硬件音頻編解碼器, 嚴格說應稱作D/A(數字/模擬)轉換器, 其主要作用是編碼端把模擬音頻信號轉換成數字信號,解碼端把讀取的數字音頻信息轉換成模擬音頻信號輸出,供功率放大重放。
另一種即是經常和視頻編解碼器并列的基于軟件的音頻編解碼器,也就是我們以下討論的主要內容。
無論音頻編碼器還是視頻編碼器, 都是信源編碼器,其本質是在盡可能保證編碼質量情況下,對信源信號進行壓縮, 降低音視頻文件需要的存儲空間和傳輸碼率。而對信源信號的壓縮, 是依靠音視頻信號本身的冗余性和相關性, 音頻是一維信號, 一維信號的音頻可利用的冗余性和相關性要少,因此音頻編碼器的設計并不簡單。
說到音頻編碼器, 實際上在業內又細分為兩個領域,Voice Codec和Audio Codec,Voice Codec一般是指對人的語音進行編碼壓縮,而Audio Codec是指對音樂信號進行編碼壓縮。Voice Codec主要用于電信領域,比如手機通話,VoIP,軍事保密通信等領域,它要求低延遲,低碼率,一般是采用對人的發聲過程進行建模,比如經典的CELP模型,就是完美的模擬了人的發聲過程。而對于音樂信號,CELP模型就無法完美的模擬各種樂器的發音過程了,所以針對音樂的Audio Codec則從聽覺的角度來出發,利用心理聲學模型來進行編碼。
由于Voice Codec和Audio Codec在各個領域有著不同的應用,也就帶來有很多組織在做音頻編碼器,使得音頻編碼器種類繁多,既有標準的音頻編碼器,也有開源的音頻編碼器,還有各個公司私有的音頻編碼器。
無論音頻編碼器還是視頻編碼器,商用化的時候都需要二次開發。而二次開發的過程,它倆也是存在很大差別。視頻編碼器一般會給出一套龐大的參考代碼,由具體商用化的組織根據自己的需求進行裁減、算法層面的優化、以及針對目標平臺的優化。而音頻編碼器給出的參考代碼相對精簡一些,尤其是Voice Codec, 在商用化的過程要求任何的優化必須保證bit exact。音頻編碼器之所以要求這么嚴格, 是因為人的耳朵會對異常的聲音特別敏感,突兀的噪聲或者短暫嚴重的損傷都會嚴重影響聽感,這也是音頻編解碼的難度所在。所以Voice Codec算法一旦固定下來,商用化的任何改動都要求與原始算法保持bit exact。
LiveVideoStack:評定編解碼器質量的標準有哪些?
王立眾:音頻編碼器質量的評定,是一個研究領域。很多人說,音頻不止是一門科學,還是一門藝術。所以音頻編碼的質量評價,也需要從主客觀多個維度考察,尤其是需要注重主觀評價標準, 因為很多音頻編碼器的最終目的是給人聽的。
音頻編碼的客觀評價標準,也是需要根據具體的情況來分別考慮,比如Voice Codec,常用的有PESQ,最近新出的客觀測試標準是POLQA,而Audio Codec,常用的客觀測試標準有PSNR、PEAQ等。
而無論客觀評價如何,對于音頻來說都只是個參考,人的真正的聽覺感受更重要。
對于Voice Codec來說,常見的主觀評價方法是MOS值評分,就是找一些人根據自己的聽覺感受進行打分,最后得出1~5分的一個評價指標。
對于Audio Codec來說就更加復雜,需要根據設計的Audio Codec所面向的應用,選擇目標用戶進行專業的主觀測試,一些專業的主觀評價組織,會儲備一些“金耳朵”來專門進行高端應用的音頻性能評價。
為此ITU-T 設計了一系列的音頻主觀評價方法,例如:
ITU-T Rec.P.800《Methods for subjective determination of transmission quality》/ITU-T Rec.P.830《Subjective performance assessment of telephone-band and wideband digital codecs》:主要針對各類語音處理系統的輸出聲音質量進行主觀評價,典型方法為MOS平均意見分測試。單次32人次的聽音測試項目周期為2-3周。?
ITU-T P.805《Subjective evaluation of conversational quality》:對話意見測試,能夠提供更接近真實環境下雙向交互通訊系統的話音質量評估。典型的單次對話測試實驗規模為16組成對測試人員,一般項目周期為1-2個月。?
ITU-R Rec.BS.1534《Method for the subjective assessment of intermediate quality level of coding systems》:帶隱藏參考和基準的多激勵測試(MUSHRA),宜評估中等音頻質量的數字音頻系統。單次20人次的測試實驗周期為3-4周。?
ITU-R ?BS.1116《Methods for the subjective assessment of small impairments in audio systems》:帶隱藏參考的三次聽音雙盲聽評法,宜評估小損傷的高質量音頻系統。單次15人次的測試實驗周期為1-2月。?
ITU-R BS.1285《Pre-Selection Methods for the Subjective Assessment of Small Impairments in Audio Systems》:用于預選測試的雙向比較聽評方法,宜作為BS1116小損傷音頻系統主觀測試的預選實驗方法。單次15人次的測試實驗周期為2-3周。
上面談到的,僅僅是對編碼質量的評價,實際上音頻編碼的目的,主要還是為了壓縮,那么編解碼的碼率,也是評價編解碼的一個因素,它主要反應反映在對音頻信息的壓縮程度上。從編碼后的碼率,和編碼前的碼率對比上,就可以得出一個編碼器的壓縮率。
除此之外,音頻編碼的復雜度和延遲,也是一個重要的考察指標,在某些特定領域,如藍牙可穿戴設備,音頻編碼的復雜度就占據了更重要的地位。
LiveVideoStack:主流的音頻編解碼器各自的特點及應用場景分別是什么?
王立眾:正如前面說的,大體上音頻編解碼主要分為兩類Voice Codec 和Audio Codec,而且從事音頻編解碼的組織眾多。
從標準化組織看,有ISO/IEC組織制定的MEPEG系列標準,最著名的MP3就是出自這個標準,從MP3的應用可以看出來,MPEG主要面向的是音樂存儲和傳輸的Audio Codec。還有主要面向VoIP應用的ITU-T的G.7xx系列的Voice Codec。針對移動電話的應用,有兩大組織3GPP和3GPP2各自推出了以AMR WB、AMR NB、EVRC、EVS為代表的一系列Voice Codec。
各大公司也有各自私有的音頻編解碼, 因為針對的應用不同,不再一一列舉。目前比較有代表性的開源音頻編解碼是OPUS,他融合了SILK編碼器和CELT編碼器,在開源音頻編解碼器中具有較好的性能。
LiveVideoStack:既然主流的音頻編解碼器有很多, 那么如果使用的話,行業內是怎么付費的呢?
王立眾:對于使用音頻編碼器的收費, 有兩種費用: 1. 是算法和專利的費用 2.是商用化代碼的費用.
在各個標準化的音頻編碼器中, 都會有對于音頻編碼器的專利費的規定, 所以使用標準化的音頻編碼器,要遵守各標準化組織的收費規定. 對于開源的音頻編碼器, 要注重其遵守的開源協議, 每個開源的音頻編碼器都會聲明其遵守的開源協議, 使用的時候也需要注意. 如果需要使用各大公司私有的音頻編解碼, 則需要和他們單獨聯系商討費用事宜.
上面說到的是算法和專利方面的費用, 交了這筆費用只代表可以使用這些音頻編碼器, 但是他們不一定提供商用化的代碼. 有不少公司, 可以提供很多音頻編碼器的商用化代碼, 并且收取費用, 那么一定問清楚他們這筆費用, 是僅僅代碼的使用費, 還是包括了音頻編碼器的專利費.?
LiveVideoStack:當下對于音頻編解碼器的研發,業界主要的研究方向是什么?其難點是什么?
王立眾:前幾年,業界音頻編解碼器算法研究工作主要集中于Voice Codec 和Audio Codec的聯合編碼,也就是把兩種應用統一到一個音頻編碼器中,于是在電信領域3GPP組織就誕生了龐大的EVS音頻編碼器,EVS的推廣比較成功,目前已經被選為5G的音頻編碼器。
隨著EVS的成功誕生和推廣,大家也在考慮下一步應該做什么的問題。目前不少研究者在研究針對特定場景的音頻編碼器。
例如目前一些標準化組織正在進行的沉浸式音頻編碼器,MPEG,3GPP和中國AVS等標準化組織都在積極推進沉浸式音頻編碼器標準。沉浸式音頻編碼器的難點在于高質量的還原原始聲音,它可能用在音樂會的錄制和傳輸中,那么對于音質,方位感,主觀聽覺感受的要求都非常高。
針對一些特定領域音頻編碼起器,如藍牙設備,可穿戴設備,加密通信領域的音頻編碼器也在繼續的研究中。 這些領域的音頻編碼器,則要求低延遲,低碼率,當然音質本身也要保證。
LiveVideoStack:對于應屆生或從其他研發領域轉行學習編解碼、多媒體開發的技術人,有哪些建議?
王立眾:對于學生,如果有意從事音頻編碼行業,我建議選擇業內著名導師和實驗室,音頻編碼是需要一定的積累,國內有不少老師和實驗室長期從事音頻編碼行業,投身到一個有著深厚積累的實驗室和嚴謹治學的導師門下,會打下終身受用的牢固的理論基礎。
對從其他研發領域轉行學習編解碼,建議還是根據工作需要,選擇適合的編解碼參考代碼和參考文檔來學習。如果工作中沒有需要,需要有強烈的學習興趣才能堅持下來,畢竟編解碼需要一定的積累,而且短期不會帶來什么收益的任務,確實有強烈的興趣學習的話,建議從一些標準化的音頻編解碼器學習入手。
對于想從事多媒體開發的技術人來說,從編解碼入手是一個很好的選擇,編解碼涉及到多媒體技術的很多知識。比如音頻領域,常見的還有音頻預處理和音頻后處理,這里所謂的“預”和“后”, 其實都是以音頻編碼器為中心來說的,可見音頻編碼器在音頻領域的地位。
當然,還需要考慮將來目標公司的需求,如果目標是互聯網,則需要能夠快速的應用,所以需要把目前開源的和標準化的音頻編碼器都能快速的掌握起來。如果想專心做算法,那么應該選擇一家具有雄厚積累的公司,正如之前說的,做音頻編碼器的算法短期不會帶來什么收益,大公司和專業的音頻公司會注重這方面的儲備,通過產生自己的音頻編碼算法,申請專利后加入到標準化組織的標準中,然后通過標準中的專利帶來長期的收益和回報,這個過程是比較長的, 一個音頻編碼器的標準,需要數年的制定過程。
LiveVideoStack:能否推薦一些系統學習編解碼、多媒體開發的圖書、資料?
王立眾:學習音頻編碼的話,可以從標準化的代碼和文檔入手,學習Voice Codec,可以學習3GPP的AMR WB和EVS, ,3GPP官網的代碼和文檔都非常的詳細。學習Audio Codec,可以選擇MPEG的MP3和AAC。
至于圖書,因為我個人接觸面有局限性,不好一一列舉,但是正如之前說過的,選擇業內著名導師和實驗室就沒有錯,對于具體方向,Voice Codec要學CELP模型,Audio Codec要學心理聲學模型。
總結
以上是生活随笔為你收集整理的王立众:学习多媒体开发从编解码开始的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 展望2018:人工智能为媒体服务赋能
- 下一篇: 展望2018:WebRTC技术现状、应用