久久精品国产精品青草色艺_www.一区_国内精品免费久久久久妲己_免费的性爱视频

視頻編碼與解碼?

H264視頻壓縮算法目前無疑是所有視頻壓縮技術中使用最廣泛,最流行的,如今很多開源庫基于H264提供了編解碼接口。
但為了用好H264,我們或是要對H264的基本原理弄清楚才行。今天我們就來看看H264的基本原理。
H264概述




H264壓縮技術主要采用了以下幾種方法對視頻數據進行壓縮。包括:

  • 幀內預測壓縮,解決的是空域數據冗余問題。
  • 幀間預測壓縮(運動估計與補償),解決的是時域數據冗徐問題。  
  • 整數離散余弦變換(DCT),將空間上的相關性變為頻域上無關的數據然后進行量化。  
  • CABAC壓縮。
經過壓縮后的幀分為:I幀,P幀和B幀:

  • I幀:關鍵幀,采用幀內壓縮技術。  
  • P幀:向前參考幀,在壓縮時,只參考前面已經處理的幀。采用幀音壓縮技術。  
  • B幀:雙向參考幀,在壓縮時,它即參考前而的幀,又參考它后面的幀。采用幀間壓縮技術。
除了I/P/B幀外,還有圖像序列GOP。
GOP:兩個I幀之間是一臺圖像序列,在一臺圖像序列中只有一臺I幀。如下圖所示:


下面我們就來詳細描述一下H264壓縮技術。
H264壓縮技術

H264的基本原理其實非常簡單,下我們就簡單的描述一下H264壓縮數據的過程。通過攝像頭采集到的視頻幀(按每秒 30 幀算),被送到 H264 編碼器的緩沖區中。編碼器先要為每一幅圖片劃分宏塊。
以下面這張圖為例:


劃分宏塊

H264默認是使用 16X16 大小的區域作為一臺宏塊,也可以劃分成 8X8 大小。


劃分好宏塊后,計算宏塊的象素值。


以此類推,計算一幅圖像中每個宏塊的像素值,所有宏塊都處理完后如下面的樣子。


劃分子塊

H264對比較平坦的圖像使用 16X16 大小的宏塊。但為了更高的壓縮率,還可以在 16X16 的宏塊上更劃分出更小的子塊。子塊的大小可以是 8X16? 16X8? 8X8? 4X8? 8X4? 4X4非常的靈活。


上幅圖中,紅框內的 16X16 宏塊中大部分是藍色背景,而三只鷹的部分圖像被劃在了該宏塊內,為了更好的處理三只鷹的部分圖像,H264就在 16X16 的宏塊內又劃分出了多個子塊。


這樣再經過幀內壓縮,可以得到更高效的數據。下圖是分別使用mpeg-2和H264對上面宏塊進行壓縮后的結果。其中左半部分為MPEG-2子塊劃分后壓縮的結果,右半部分為H264的子塊劃壓縮后的結果,可以看出H264的劃分方法更具優勢。


宏塊劃分好后,就可以對H264編碼器緩存中的所有圖片進行分組了。
幀分組

對于視頻數據主要有兩類數據冗余,一類是時間上的數據冗余,另一類是空間上的數據冗余。其中時間上的數據冗余是最大的。下面我們就先來說說視頻數據時間上的冗余問題。
為啥說時間上的冗余是最大的呢?假設攝像頭每秒抓取30幀,這30幀的數據大部分情況下都是相關聯的。也有可能不止30幀的的數據,可能幾十幀,上百幀的數據都是關聯特別密切的。
對于這些關聯特別密切的幀,其實我們只需要保存一幀的數據,其它幀都可以通過這一幀再按某種規則預測出來,所以說視頻數據在時間上的冗余是最多的。
為了達到相關幀通過預測的方法來壓縮數據,就需要將視頻幀進行分組。那么如何判定某些幀關系密切,可以劃為一組呢?我們來看一下例子,下面是捕獲的一組運動的臺球的視頻幀,臺球從右上角滾到了左下角。




H264編碼器會按順序,每次取出兩幅相鄰的幀進行宏塊比較,計算兩幀的相似度。如下圖:


通過宏塊掃描與宏塊搜索可以發現這兩個幀的關聯度是非常高的。進而發現這一組幀的關聯度都是非常高的。因此,上面這幾幀就可以劃分為一組。其算法是:在相鄰幾幅圖像畫面中,一般有差別的像素只有10%以內的點,亮度差值變化不超過2%,而色度差值的變化只有1%以內,我們認為這樣的圖可以分到一組。
在這樣一組幀中,經過編碼后,我們只保留第一帖的完整數據,其它幀都通過參考上一幀計算出來。我們稱第一幀為IDR/I幀,其它幀我們稱為P/B幀,這樣編碼后的數據幀組我們稱為GOP
運動估計與補償

在H264編碼器中將幀分組后,就要計算幀組內物體的運動矢量了。還以上面運動的臺球視頻幀為例,我們來看一下它是如何計算運動矢量的。
H264編碼器首先按順序從緩沖區頭部取出兩幀視頻數據,然后進行宏塊掃描。當發現其中一幅圖片中有物體時,就在另一幅圖的鄰近位置(搜索窗口中)進行搜索。如果此時在另一幅圖中找到該物體,那么就可以計算出物體的運動矢量了。下面這幅圖就是搜索后的臺球移動的位置。


通過上圖中臺球位置相差,就可以計算出臺圖運行的方向和距離。H264依次把每一幀中球移動的距離和方向都記錄下來就成了下面的樣子。


運動矢量計算出來后,將相同部分(也就是綠色部分)減去,就得到了補償數據。我們最終只需要將補償數據進行壓縮保存,以后在解碼時就可以恢復原圖了。壓縮補償后的數據只需要記錄很少的一點數據。如下所示:


我們把運動矢量與補償稱為幀間壓縮技術,它解決的是視頻幀在時間上的數據冗余。除了幀間壓縮,幀內也要進行數據壓縮,幀內數據壓縮解決的是空間上的數據冗余。下面我們就來介紹一下幀內壓縮技術。
幀內預測

人眼對圖象都有一臺識別度,對低頻的亮度很敏感,對高頻的亮度不太敏感。所以基于一些研究,可以將一幅圖像中人眼不敏感的數據去除掉。這樣就提出了幀內預測技術。
H264的幀內壓縮與JPEG很相似。一幅圖像被劃分好宏塊后,對每個宏塊可以進行 9 種模式的預測。找出與原圖最接近的一種預測模式。


下面這幅圖是對整幅圖中的每個宏塊進行預測的過程。


幀內預測后的圖像與原始圖像的對比如下:


然后,將原始圖像與幀內預測后的圖像相減得殘差值。


再將我們之前得到的預測模式信息一起保存起來,這樣我們就可以在解碼時恢復原圖了。效果如下:


經過幀內與幀間的壓縮后,雖然數據有大幅減少,但還有優化的空間。
對殘差數據做DCT

可以將殘差數據做整數離散余弦變換,去掉數據的相關性,進一步壓縮數據。如下圖所示,左側為原數據的宏塊,右側為計算出的殘差數據的宏塊。


將殘差數據宏塊數字化后如下圖所示:


將殘差數據宏塊進行 DCT 轉換。


去掉相關聯的數據后,我們可以看出數據被進一步壓縮了。


做完 DCT 后,還不夠,還要進行 CABAC 進行無損壓縮。
DCT原理大白話

這是第一幀畫面:P1(我們的參考幀)


這是第二幀畫面:P2(需要編碼的幀)



從視頻中截取的兩張間隔1-2秒的畫面,和實際情況類似,下面我們進行幾次運動搜索:
這是一臺演示程序,鼠標選中P2上任意16x16的Block,即可搜索出P1上的 BestMatch 宏塊。雖然車輛在運動,從遠到近,但是依然找到了最接近的宏塊坐標。


這是一臺演示程序,鼠標選中P2上任意16x16的Block,即可搜索出P1上的 BestMatch 宏塊。雖然車輛在運動,從遠到近,但是依然找到了最接近的宏塊坐標。
搜索演示2:空中電線交叉位置(上圖P1,下圖P2)


搜索演示3:報刊停的廣告海報


同樣順利在P1中找到最接近P2里海報的宏塊位置。
圖片全搜索:根據P1和運動矢量數據(在P2中搜索到每一臺宏塊在P1中最相似的位置集合)還原出來的P2',即完全用P1各個位置的宏塊拼湊出來最像P2的圖片P2',效果如下:



仔細觀察,有些支離破碎對吧?肯定啊,拼湊出來的東西就是這樣,目前我們用P2`和P2像素相減,得到差分圖 D2 = (P2' - P2) / 2 + 0x80:





這就是之前支離破碎的 P2` 加上誤差 D2之后變成了清晰可見的樣子,基本還原了原圖P2。


由于D2僅僅占5KB,加上壓縮過后的運動矢量不過7KB,所以參考P1我們只需要額外 7KB的數據量就可以完整表示P2了,而如果獨立將P2用質量尚可的有損壓縮方式獨立壓縮,則至少要去到50-60KB,這一下節省了差不多8倍的空間,正就是所謂運動編碼的基本原理。

實際在使用中,參考幀并不一定是前面一幀,也不一定是同一臺GOP的I幀,因為GOP間隔較長時,后面的圖片離I幀變化可能已經很大了,因此常見做法是最近15幀中選擇一幀誤差最小的作為參考幀,雖然彩色畫面有YUV三個分量,但是大量的預測工作和最有選擇通常是根據Y分量的灰度幀進行判斷的。
再者誤差我們保存的是(P2-P2’)/2 + 0x80,實際使用時我們會用更有效率的方式,比如讓[-64,64]之間的色差精度為1,[-255,-64], [64, 255] 之間的色差精度為2-3,這樣會更加真實一些。
同時上文很多地方用的是直接lzma2進行簡單存儲,實際<愛尬聊_百科大全>使用時一般會引入熵編碼,對數據進行一定層次的整理然后再壓縮,性能會好不少。
CABAC

上面的幀內壓縮是屬于有損壓縮技術。也就是說圖像被壓縮后,無法完全復原。而CABAC屬于無損壓縮技術。
無損壓縮技術大家最熟悉的可能就是哈夫曼編碼了,給高頻的詞一臺短碼,給低頻詞一臺長碼從而達到數據壓縮的目的。MPEG-2中使用的VLC就是這種算法,我們以 A-Z 作為例子,A屬于高頻數據,Z屬于低頻數據。看看它是如何做的。


CABAC也是給高頻數據短碼,給低頻數據長碼。同時還會根據上下文相關性進行壓縮,這種方式又比VLC高效很多。其效果如下:


目前將 A-Z 換成視頻幀,它就成了下面的樣子。


從上面這張圖中明顯可以看出采用 CACBA 的無損壓縮方案要比 VLC 高效的多。

本文簡要分析了H264的基本原理,如有不足之處,歡迎指正,只為共同進步,在這波內卷的浪潮中,希望你我都能走好運、賺大錢、泡洋妞。
蝶霜飛坐看云海把昨日還給我前世 19小時前

寫得很好,簡單易懂


softwind 19小時前

那時候小學剛畢業


季陌殤 19小時前

專業


M45****363 19小時前

好,我要加你


ggg0301 18小時前

寫得我都想挖你了


SIU1994 18小時前

說的我都想離職了


編輯 舉報 2023-04-23 12:45

0個評論

暫無評論...
驗證碼 換一張
相關內容
久久精品国产精品青草色艺_www.一区_国内精品免费久久久久妲己_免费的性爱视频

      欧美视频三区在线播放| 又紧又大又爽精品一区二区| 香蕉成人伊视频在线观看| 国产精品99久久久久久有的能看| 3atv在线一区二区三区| 亚洲国产成人精品视频| 在线免费一区三区| 亚洲欧洲中文日韩久久av乱码| 不卡的看片网站| 中文字幕一区二区日韩精品绯色| 成人免费黄色在线| 国产精品久久三| 成人免费毛片片v| 中文字幕视频一区| av影院午夜一区| 亚洲激情第一区| 91传媒视频在线播放| 亚洲人快播电影网| 欧美日韩中文另类| 日韩高清不卡一区| 精品福利二区三区| 国产**成人网毛片九色 | 日本 国产 欧美色综合| 在线播放中文一区| 久久成人麻豆午夜电影| 久久久久久免费毛片精品| 丰满放荡岳乱妇91ww| 最新高清无码专区| 欧美日韩国产123区| 裸体在线国模精品偷拍| 久久这里都是精品| 99综合电影在线视频| 玉米视频成人免费看| 91精品国产综合久久福利| 久久激情综合网| 国产精品乱码久久久久久| 色婷婷久久99综合精品jk白丝 | www.66久久| 亚洲精品老司机| 欧美一级搡bbbb搡bbbb| 国产高清无密码一区二区三区| 国产精品久久久久国产精品日日| 欧美性一二三区| 国产一区二区在线视频| 一区二区免费看| 久久综合色播五月| 色av综合在线| 国产一区二区三区高清播放| 亚洲色图19p| 久久综合久久久久88| 色视频欧美一区二区三区| 日本视频一区二区| 1000精品久久久久久久久| 日韩欧美一级在线播放| 91丨porny丨中文| 国产综合成人久久大片91| 亚洲欧洲制服丝袜| 久久人人爽爽爽人久久久| 欧美色老头old∨ideo| 国产成人综合自拍| 日本一道高清亚洲日美韩| 最近中文字幕一区二区三区| 26uuu国产电影一区二区| 欧美亚洲国产一区在线观看网站| 丰满亚洲少妇av| 久久99国产精品免费网站| 亚洲猫色日本管| 国产精品久久久久久久久久久免费看| 91精品国产色综合久久久蜜香臀| 色综合一个色综合亚洲| 国产一区999| 看电视剧不卡顿的网站| 亚洲一区二区三区四区在线免费观看| 欧美激情一区二区在线| 精品久久久久香蕉网| 91精品国产综合久久婷婷香蕉| 99国产一区二区三精品乱码| 国产乱码精品一区二区三区av| 男女男精品视频| 天天操天天色综合| 午夜电影久久久| 亚洲第一成年网| 亚洲免费资源在线播放| 亚洲天堂福利av| 日韩理论片一区二区| 国产精品第一页第二页第三页| 国产日韩欧美电影| 国产日韩v精品一区二区| 精品欧美一区二区久久| 日韩免费性生活视频播放| 欧美一区二区三区四区在线观看| 欧美日韩视频专区在线播放| 精品视频在线免费看| 在线视频国内一区二区| 欧美私模裸体表演在线观看| 欧美日韩精品一区二区三区四区| 欧美在线看片a免费观看| 色噜噜狠狠色综合欧洲selulu| 色综合久久中文综合久久牛| 91久久国产综合久久| 在线观看免费视频综合| 欧美亚洲国产bt| 欧美一区二区三区在线观看| 欧美va天堂va视频va在线| 精品奇米国产一区二区三区| 久久综合av免费| 国产精品久久久久aaaa樱花| 日韩一区欧美一区| 亚洲精品第一国产综合野| 亚洲成人av在线电影| 青青草91视频| 高清在线观看日韩| 在线影视一区二区三区| 欧美一级日韩免费不卡| 日韩欧美视频一区| 中文字幕av一区二区三区免费看| 亚洲欧洲一区二区在线播放| 一区二区三区欧美激情| 三级影片在线观看欧美日韩一区二区| 日韩电影在线观看一区| 国产成人精品1024| 91年精品国产| 日韩精品一区二区三区三区免费| 久久精品日韩一区二区三区| 亚洲九九爱视频| 免费久久99精品国产| 成人高清免费在线播放| 欧美日韩一卡二卡三卡| 久久久.com| 亚洲午夜激情网页| 激情深爱一区二区| 色综合久久综合中文综合网| 日韩欧美自拍偷拍| 日韩一区中文字幕| 久久精品国内一区二区三区| 99久久婷婷国产综合精品| 欧美丰满少妇xxxbbb| 国产精品色在线观看| 五月天激情综合网| 成人高清伦理免费影院在线观看| 欧美日韩一区二区不卡| 中文字幕av资源一区| 日韩电影在线观看电影| 色综合视频在线观看| 亚洲精品一区二区三区影院| 亚洲一区二区三区小说| 成人午夜在线视频| 欧美一区二区三区视频在线 | 欧美日韩aaaaaa| 中文字幕一区二| 精久久久久久久久久久| 欧美视频精品在线| 国产精品成人免费| 国产麻豆成人传媒免费观看| 在线播放视频一区| 亚洲精品大片www| 不卡的av电影在线观看| 日韩精品一区二区三区在线| 午夜电影一区二区三区| 色8久久精品久久久久久蜜| 国产精品水嫩水嫩| 国产精品白丝av| 久久综合网色—综合色88| 日韩国产欧美在线播放| 欧美男女性生活在线直播观看| 亚洲综合在线电影| 99久久免费精品高清特色大片| 久久精品免视看| 国产高清在线精品| 久久久久久久综合| 国内精品免费在线观看| 欧美sm极限捆绑bd| 精品在线播放免费| 精品国产青草久久久久福利| 美美哒免费高清在线观看视频一区二区| 欧美视频中文一区二区三区在线观看 | 亚洲一区二区三区国产| 97精品电影院| 亚洲欧美日韩一区二区 | 国产一区二区在线电影| 精品国产乱码久久久久久闺蜜| 欧美a级一区二区| 日韩欧美成人一区| 国产一区二区精品久久91| 欧美精品一区二区久久久| 国产一区二区三区免费观看| 久久久久97国产精华液好用吗| 国产一区二三区| 国产精品狼人久久影院观看方式| 99久久精品国产网站| 亚洲日本免费电影| 欧美三级视频在线播放| 欧美96一区二区免费视频| 精品美女一区二区| 成人性视频免费网站| 一区二区高清在线| 欧美精品久久天天躁| 国产一区三区三区| 最新不卡av在线| 91麻豆精品91久久久久同性|