二井佑、視頻編解碼基礎(chǔ)知識(shí)

一属铁、概述

圖像信息經(jīng)采集后生成的原始視頻數(shù)據(jù),數(shù)據(jù)量非常大躬翁,對(duì)于某些采集后直接本地播放的應(yīng)用場(chǎng)合焦蘑,不需要考慮壓縮技術(shù)。但現(xiàn)實(shí)中更多的應(yīng)用場(chǎng)合盒发,涉及視頻的傳輸與存儲(chǔ)例嘱,傳輸網(wǎng)絡(luò)與存儲(chǔ)設(shè)備無(wú)法容忍原始視頻數(shù)據(jù)的巨大數(shù)據(jù)量,必須將原始視頻數(shù)據(jù)經(jīng)過(guò)編碼壓縮后宁舰,再進(jìn)行傳輸與存儲(chǔ)拼卵。

二、為什么要進(jìn)行視頻壓縮蛮艰?

(1)未經(jīng)壓縮的數(shù)字視頻的數(shù)據(jù)量巨大
(2)存儲(chǔ)困難腋腮,如:一張DVD只能存儲(chǔ)幾秒鐘的未壓縮數(shù)字視頻
(3)傳輸困難,如:1兆的帶寬傳輸一秒的數(shù)字電視視頻需要大約4分鐘,720p RGB 15幀每秒碼率計(jì)算: 1280 x 720 x 3 x 15 ≈ 41MB ≈ 331Mb

三即寡、視頻壓縮的可行性徊哑,為什么可以進(jìn)行視頻壓縮?

將視頻數(shù)據(jù)中的冗余信息去除聪富,尋找像素之間的相關(guān)性莺丑,還有不同時(shí)間的圖像幀之間的相關(guān)性。

冗余信息類(lèi)別 內(nèi)容 壓縮方法
空間冗余 圖像相鄰像素之間有較強(qiáng)的相關(guān)性 變換編碼墩蔓、幀內(nèi)預(yù)測(cè)
時(shí)間冗余 視頻序列的相鄰圖像之間內(nèi)容相似 運(yùn)動(dòng)補(bǔ)償梢莽、幀間預(yù)測(cè)
編碼冗余 不同像素值出現(xiàn)的概率不同 輪廊編碼、區(qū)域分割
視覺(jué)冗余 人的視覺(jué)系統(tǒng)對(duì)某些細(xì)節(jié)不敏感 非線(xiàn)性量化钢拧、位分配
知識(shí)冗余 收發(fā)兩端對(duì)人物的共有認(rèn)識(shí) 基于知識(shí)的編碼
其他 不確定因素
視頻冗余

四蟹漓、視頻壓縮分類(lèi)

  • 無(wú)損壓縮(Lossless),壓縮前解壓縮后圖像完全一致X=X'源内,壓縮比低(2:1~3:1)葡粒,例如:Winzip,JPEG-LS膜钓,哈夫曼編碼嗽交,
  • 有損壓縮(Lossy),壓縮前解壓縮后圖像不一致X≠X'颂斜,壓縮比高(10:1~20:1)夫壁,利用人的視覺(jué)系統(tǒng)的特性,例如:MPEG-2沃疮,H.264/AVC盒让,AVS

五、視頻編碼是什么司蔬?

視頻編碼 是壓縮和可能改變視頻內(nèi)容格式的過(guò)程邑茄,有時(shí)甚至將模擬源更改為數(shù)字源。在壓縮方面俊啼,目標(biāo)是減少占用空間肺缕。這是因?yàn)樗且粋€(gè)有損的過(guò)程,會(huì)拋棄與視頻相關(guān)的信息授帕。在解壓縮以進(jìn)行回放時(shí)同木,創(chuàng)建原始的近似值。應(yīng)用的壓縮越多跛十,拋出的數(shù)據(jù)越多彤路,近似值與原始數(shù)據(jù)相比越差。

六芥映、什么是視頻編解碼器洲尊?

視頻編解碼器是通過(guò)軟件或硬件應(yīng)用程序完成的視頻壓縮標(biāo)準(zhǔn)缝裤。編解碼器,如:H.264颊郎,VP8,RV40以及其他標(biāo)準(zhǔn)或更高版本(VP9)

  • 編碼器(Encoder) -- 壓縮信號(hào)的設(shè)備或程序霎苗,用于壓縮視頻。
  • 解碼器(Decoder) -- 解壓縮信號(hào)的設(shè)備或程序,用于重新創(chuàng)建視頻的近似值以用于回放檀蹋。

注:音頻編解碼器哩掺,如:LAME / MP3,F(xiàn)raunhofer FDK AAC厘擂,F(xiàn)LAC等昆淡。

七、編碼的基本概念及原理

1. 預(yù)測(cè)編碼

根據(jù)已經(jīng)編碼好的塊信息得到一個(gè)預(yù)測(cè)值刽严,這樣只需要編碼實(shí)際值與預(yù)測(cè)值之間的差異即可昂灵。
空間冗余的消除:
幀內(nèi)預(yù)測(cè):根據(jù)同一幀中相鄰已編碼好的塊信息得到預(yù)測(cè)數(shù)據(jù),編碼差異數(shù)據(jù)
時(shí)間冗余的消除:
幀間預(yù)測(cè):根據(jù)已編碼幀中的塊信息得到預(yù)測(cè)數(shù)據(jù)舞萄,編碼差異數(shù)據(jù)

預(yù)測(cè)編碼.png

2. IPB幀類(lèi)型(經(jīng)過(guò)壓縮后的幀類(lèi)型)

I 幀:僅采用幀內(nèi)壓縮技術(shù)眨补,壓縮效率最低,編解碼無(wú)需用到其他幀的信息倒脓,是GOP的起始點(diǎn)撑螺。
P 幀:前向預(yù)測(cè)幀,編解碼只參考前一個(gè)幀崎弃,可作為其他圖像編碼時(shí)的參考幀甘晤,屬幀間壓縮技術(shù)。
B 幀:雙向預(yù)測(cè)幀饲做,編解碼既參考前一幀也可參考后一幀线婚,壓縮效率最高,復(fù)雜度高艇炎,時(shí)延較大酌伊,屬幀間壓縮技術(shù)。

3. GOP (圖像組)

GOP(group of pictures)一般指兩個(gè)I幀之間的間隔幀數(shù)缀踪,兩個(gè)I幀之間是一個(gè)圖像序列居砖,在一個(gè)圖像序列中只有一個(gè)I幀。

IPB序列 IP序列

直播場(chǎng)景下驴娃,由于對(duì)延時(shí)高要求奏候,而B(niǎo)幀會(huì)帶來(lái)延時(shí),所以都是使用IP序列

4. H264壓縮技術(shù) -- 基本概念

H.264 原始碼流(?稱(chēng)為 裸流)唇敞,是由?個(gè)接?個(gè)的 NALU 組成的蔗草,而它的功能分為兩層:視頻編碼層VCL 和 網(wǎng)絡(luò)提取層NAL咒彤。

4.1 視頻編碼層VCL(Video Coding Layer)

VCL負(fù)責(zé)有效表示視頻數(shù)據(jù)的內(nèi)容。
H264除了實(shí)現(xiàn)了對(duì)視頻的壓縮處理之外咒精,為了方便網(wǎng)絡(luò)傳輸镶柱,提供了對(duì)應(yīng)的視頻編碼和分片策略;類(lèi)似于網(wǎng)絡(luò)數(shù)據(jù)封裝成IP幀模叙,在H264中將其稱(chēng)為組(gop)歇拆、片(slice)、宏塊(Macroblock)這些一起組成了H264的碼流分層結(jié)構(gòu);H264將其組織成為序列(GOP)范咨、圖片(pictrue)故觅、片(Slice)、宏塊(Macroblock)渠啊、子塊(subblock)五個(gè)層次输吏。

宏塊:視頻編碼的基本單元,h264通常宏塊大小為16x16個(gè)像素替蛉,所以編碼器一般會(huì)對(duì)圖像的寬 高有要求贯溅,需要為16的倍數(shù)。
Slice:條帶躲查,圖像的劃分盗迟,一幀圖像可編碼成一個(gè)或者多個(gè)條帶,每條帶包含整數(shù)個(gè)宏塊熙含。
SPS: 序列參數(shù)集罚缕,包含應(yīng)用于完整視頻序列的語(yǔ)法元素,比如圖像寬怎静,高等邮弹。
PPS: 圖像參數(shù)集,包含應(yīng)用于編碼圖像的語(yǔ)法元素蚓聘,比如量化參數(shù)腌乡,參考幀列表大小等。

4.2 網(wǎng)絡(luò)傳輸層 NAL (Network Abstraction Layer)

NAL定義了數(shù)據(jù)封裝的格式和統(tǒng)一的網(wǎng)絡(luò)接口夜牡,負(fù)責(zé)格式化VCL數(shù)據(jù)并提供頭信息与纽,以保證數(shù)據(jù)適合各種信道和存儲(chǔ)介質(zhì)上的傳輸。
NAL基本單元為NALU塘装,每一個(gè)NALU包含一個(gè)字節(jié)的頭信息和其后的負(fù)載數(shù)據(jù)急迂。

參考文檔
https://zhuanlan.zhihu.com/p/31056455
https://blog.csdn.net/knowledgebao/article/details/86716428
重點(diǎn)鏈接:NAL/NALU詳解可以查閱:
http://www.reibang.com/p/1b3f8187b271
http://www.wendangku.net/doc/039e95757fd5360cba1adb46.html

5. H264壓縮技術(shù) -- 基本原理

流程圖

附上幾篇文章:
https://blog.csdn.net/knowledgebao/article/details/86716428
https://zhuanlan.zhihu.com/p/31056455
http://www.reibang.com/p/0c296b05ef2a

八、常見(jiàn)編碼器 及 相關(guān)術(shù)語(yǔ)說(shuō)明

8.1 常見(jiàn)編碼器

  • OpenH264
    思科開(kāi)源軟件編解碼器蹦肴,適用于實(shí)時(shí)程序僚碎,例如webrtc。
    只支持IP幀類(lèi)型阴幌;
    只支持baseline profile勺阐;
    動(dòng)態(tài)調(diào)整碼率卷中,幀率,分辨率渊抽;
    支持分層編碼SVC蟆豫;
    編碼速度快,cpu使用率低懒闷。

  • X264
    VideoLAN工作組開(kāi)發(fā)的開(kāi)源編碼器无埃,歷史久遠(yuǎn),適用于各種場(chǎng)景毛雇。
    支持IPB幀;
    支持多種profile侦镇,level灵疮;
    各種配置適合多種場(chǎng)景,例如動(dòng)畫(huà)壳繁,電影等震捣;
    cpu占用相對(duì)會(huì)高一點(diǎn);
    直播使用的場(chǎng)景預(yù)置為zerolatency闹炉。

8.2 硬編硬解

Android平臺(tái)市面上大部分的芯片廠商的硬編硬解都適配蒿赢,例如:高通,三星Exynos渣触,聯(lián)發(fā)科羡棵,海思等;windows平臺(tái)上支持Intel qsv硬編硬解嗅钻。

不同點(diǎn) 硬編 軟編(普通編碼)
編碼方式 使用非CPU進(jìn)行編碼皂冰,如顯卡GPU、專(zhuān)用的DSP养篓、FPGA秃流、ASIC芯片等。 使用CPU進(jìn)行編碼
使用方式 性能高柳弄,低碼率下通常質(zhì)量低于軟編碼器舶胀,但部分產(chǎn)品在GPU硬件平臺(tái)移植了優(yōu)秀的軟編碼算法(如X264)的,質(zhì)量基本等同于軟編碼 實(shí)現(xiàn)直接碧注、簡(jiǎn)單嚣伐,參數(shù)調(diào)整方便,升級(jí)易萍丐,但CPU負(fù)載重纤控,性能較硬編碼低,低碼率下質(zhì)量通常比硬編碼要好一點(diǎn)
復(fù)雜程度 普通編碼是一種設(shè)計(jì)碉纺,而硬編碼不過(guò)是一種具體的實(shí)現(xiàn) 普通編碼比硬編碼要復(fù)雜一些船万,對(duì)以后的考慮要周到一些
對(duì)比 軟編軟解 硬件編解碼
開(kāi)銷(xiāo) 使用cpu,占用率高 使用特定硬件(GPU),基本不占用cpu
延遲 延時(shí)較低 延時(shí)與硬件有關(guān)刻撒,比較高
適應(yīng)性 靈活,普適性高 適用性窄耿导,部分解碼會(huì)對(duì)碼流有要求
畫(huà)質(zhì) 同等碼率下畫(huà)質(zhì)好 同等碼率下畫(huà)質(zhì)稍差

8.3 分辨率

分辨率:(矩形)圖片的長(zhǎng)度和寬帶声怔,即圖片的尺寸。影響圖像大小舱呻,與圖像大小成正比醋火;分辨率越高,圖像越大箱吕;分辨率越低芥驳,圖像越小。
分辨率是指視頻畫(huà)面橫向和縱向被切分成多少塊茬高。
區(qū)別 1080P , 3MP ,4K
P 720P 兆旬、1080P 表示的是"視頻像素的總函數(shù)" ,' P ' (Progressive的縮寫(xiě))表示的是"逐行掃描"
K 2K 怎栽、4K 等是表示 "視頻像素的總列數(shù)" 丽猬,4K表示的是視頻有4000列的像素?cái)?shù),具體是3840列或4096列熏瞄。
MP 代表的是像素總數(shù)脚祟,指像素的行數(shù)(P)與列數(shù)(K)相乘后的一個(gè)結(jié)果(百萬(wàn)像素)。

8.4 幀率

幀率 是指每秒圖像的數(shù)量强饮,一幀代表的就是一副靜止的畫(huà)面由桌,連續(xù)的幀就形成了動(dòng)畫(huà)。影響畫(huà)面流暢度邮丰,與畫(huà)面流暢度成正比:幀率越大沥寥,畫(huà)面越流暢;幀率越小柠座,畫(huà)面越有跳動(dòng)感邑雅。幀率就是在1秒鐘時(shí)間里傳輸?shù)膱D片的幀數(shù),也可以理解為圖形處理器每秒鐘能夠刷新幾次妈经。

8.5 碼流 Data Rate ( 碼率 )

碼率 指編碼器每秒編出的數(shù)據(jù)大小淮野,單位是kbps 。
視頻文件在單位時(shí)間內(nèi)使用的數(shù)據(jù)流量吹泡,指把每秒顯示的圖片進(jìn)行壓縮后的數(shù)據(jù)量骤星。影響體積,與體積成正比:碼率越大爆哑,體積越大洞难,碼率越小,體積越小揭朝。(體積=碼率X時(shí)間)
壓縮前的每秒數(shù)據(jù)量 = 幀率 x 分辨率(單位是字節(jié))
壓縮比 = 壓縮前的每秒數(shù)據(jù)量 / 碼率(對(duì)于同一視頻源并采用同一種視頻編碼算法队贱,壓縮比越高色冀,畫(huà)面質(zhì)量越差)

清晰度
在碼率一定的情況下,分辨率與清晰度成反比關(guān)系:分辨率越高柱嫌,圖像越不清晰锋恬,分辨率越低,圖像越清晰编丘。
在分辨率一定的情況下与学,碼率與清晰度成正比關(guān)系,碼率越高嘉抓,圖像越清晰索守;碼率越低,圖像越不清晰抑片。
好文章理解分辨率卵佛、幀率和碼率三者之間的關(guān)系:https://blog.csdn.net/qq_39759656/article/details/80701965

直播場(chǎng)景下,常見(jiàn)的視頻配置的推薦如下

分辨率 p 幀率 fps 碼率 Kbps
240*320 15 300
360*640 15 600
480*640 15 800
540*960 20 1200
720*1280 20 1500
1080*1920 30 3000

都看到這里了蓝丙,點(diǎn)個(gè)贊唄 0.0

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市望拖,隨后出現(xiàn)的幾起案子渺尘,更是在濱河造成了極大的恐慌,老刑警劉巖说敏,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸥跟,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡盔沫,警方通過(guò)查閱死者的電腦和手機(jī)医咨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)架诞,“玉大人拟淮,你說(shuō)我怎么就攤上這事∏从牵” “怎么了很泊?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)沾谓。 經(jīng)常有香客問(wèn)我委造,道長(zhǎng),這世上最難降的妖魔是什么均驶? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任昏兆,我火速辦了婚禮,結(jié)果婚禮上妇穴,老公的妹妹穿的比我還像新娘爬虱。我一直安慰自己隶债,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布饮潦。 她就那樣靜靜地躺著燃异,像睡著了一般。 火紅的嫁衣襯著肌膚如雪继蜡。 梳的紋絲不亂的頭發(fā)上回俐,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音稀并,去河邊找鬼仅颇。 笑死,一個(gè)胖子當(dāng)著我的面吹牛碘举,可吹牛的內(nèi)容都是我干的忘瓦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼引颈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼耕皮!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起蝙场,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤凌停,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后售滤,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體罚拟,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年完箩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赐俗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡弊知,死狀恐怖阻逮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情秩彤,我是刑警寧澤夺鲜,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站呐舔,受9級(jí)特大地震影響币励,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜珊拼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一食呻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦仅胞、人聲如沸每辟。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)渠欺。三九已至,卻和暖如春椎眯,著一層夾襖步出監(jiān)牢的瞬間挠将,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工编整, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留舔稀,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓掌测,卻偏偏與公主長(zhǎng)得像内贮,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子汞斧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容