視頻編解碼的比喻

隨着工作業務的開展,對視頻編解碼的理解更加深入了一些,記錄一些心得體會,以便後面回味。

某天突然有個好的想法略過心頭,可以形象的像別人介紹視頻編碼和解碼。

 

1.編解碼像一場考試,編碼就像做主觀題,解碼就像做客觀題。

  編碼可以類比為寫作文:優秀的學生可以用短小精鍊的語音,生動形象地描述一個故事,大體細節都敘述清楚了;而普通的學生則要用啰嗦、冗餘、平凡的文字來表達一個故事,但是故事中的很多細節漏掉了!

    即,優秀學生(優秀的編碼器)用較少的文字語言(比特數據)來表達了一個故事(圖形),而平庸學生(一般的編碼器)用大量的文字(比特數據)來表達一個故事(圖形)。如果對比過不同的編碼器,你就會發現同樣的編碼圖像質量,有的編碼器需要用較高的碼率才行,如果強行將目標碼率設小了會出現馬賽克;而有的編碼器(像x264)用較小的碼率就可以實現較高的圖形質量。

  解碼可以類比為做選擇題,這些題目都有固定的答案,(不同的解碼器廠商)必須按照某個標準(h264的官方文檔)去解碼。

2.h264官方文檔是個解碼標準,規定了解碼協議,不是編碼標準。

  編碼器廠商需要按照解碼協議盡情發揮,使自家編碼器輸出的數據能夠被解碼。因此,編碼考驗各個廠商的人力物力投入,體現了其技術水平。

3.軟硬件編碼器特點比較。

  編碼過程就是一個海量運算的過程。硬件編碼器相比軟件編碼器,最大特點就是一個字——快!因為其將大量算法硬件化。軟件編碼器也有其特點——可以快速迭代升級。

  對於其他行業的人來說,可能沒有「快」的概念。這個快到底有多快?

  拿筆者所服務的廠商所設計的soc來說,使用hw來編碼一幀1080p圖像,需要10-15ms,然而,編碼同樣一幀yuv圖像,使用6代i5處理器,使用大名鼎鼎的x264,需要500ms。因此如果進行錄像,使用硬件基本綽綽有餘,而使用軟件編碼,可能導致錄製出的文件幀率較低,出現卡頓現象。

4.軟硬件編碼器有哪些?

  軟編:x264和OpenH264,前者應用最為廣泛,支持的編碼特性最多,由分佈於全球的視頻編碼領域專家所維護;後者由cisco公司開源給外界使用,特性較少,編碼速度也一般。

  硬編:分成兩類,一類專業的編碼器廠商,另外一類搞通用soc的廠商。

    後者,會集成一個硬件編碼IP到處理器中,因為再外掛一個專業的編碼器對下遊方案商來說,成本有點高,所以主控廠商,會自行設計這個專業模塊以集成到自家處理器中。如桌面端的intel和amd,移動端的qcom,hisilicon,mtk,unisoc,編解碼器不是其核心賣點,其賣點是通用處理器或者基帶,因此編碼性能可能做的比較一般(intel的qsv編解碼器,測試效果很不錯,應該是花了不少人力資源去做,畢竟多媒體業務是個強需求)。

    前者,所設計的soc以編解碼器為核心,可以說是買編碼器送ap,例如通常把編解碼性能做的非常強悍(核心賣點),但是使用的處理器架構可能比較low,例如使用arm9、arm11這些上一代的處理器架構,因為客戶對cpu運算需求較少,核心需求就是編解碼。近幾年來許多主控廠商也將自己的架構進行更新換代,例如一路跟隨arm的節奏走,使用cotexA7,A9,A15,A72…等等,以滿足下遊客戶對cpu運算的增長需求(可能跑一些AI算法)。這裏面要着重提幾家,以TI(德州儀器),Ambarella(安霸),Hisilicon(海思)為代表的主流老中青三代,以及以Allwinner(全志)、Novatek(聯詠)為代表的業餘玩家。其中TI的編解碼這塊基本退出中國市場,安霸在早幾年,在中國業務開展的非常之寬,大部分行車記錄儀和安防上基本用它的方案,其編碼質量高並且碼率小,但是這幾年其在編碼市場上在走下坡路,其大客戶GoPro現在出的產品就不用它的編碼器了;然而,市場是多變的,偷點懶就可能被競爭對手超過,目前,海思佔據着安防監控領域大部分份額!海思算是後起之秀,從2014年做到現在的2020年,一步一步變成了市場的NumOne。其他幾個廠家,像全志科技,就是靠視頻編解碼(平板電腦)起家的,編解碼性能做的還可以,但畢竟人力資源投入有限,技術水平還有待於提高。聯詠為台灣企業,編解碼做的還行。

 

好啦,隨心而發,先總結到這!後面空了再開一些專欄來介紹編碼和解碼原理。