1. 常用的編碼格式
編碼格式:一個視頻文件本身,通常由音頻和視頻兩部分組成。例如視頻文件,就是由avc視頻編碼+AAC音頻編碼組成的,常見的視頻編碼格式有Xvid,AVC/H.264,MPEG1,MPEG2 等,常見的音頻編碼有MP3、AAC等。
編解碼格式:是數(shù)據(jù)按那種方式編碼壓縮,便于網(wǎng)絡(luò)傳輸和降低帶寬的需要;
文件格式:是將內(nèi)容按具體的編碼格式壓縮后,以該文件所規(guī)定的格式進行封裝的結(jié)果,即容器的概念
視頻格式即容器:就是把編碼器生成的多媒體內(nèi)容(視頻,音頻,字幕,章節(jié)信息等)混合封裝在一起的標準。容器使得不同多媒體內(nèi)容同步播放變得很簡單,而容器的另一個作用就是為多媒體內(nèi)容提供索引,也就是說如果沒有容器存在的話一部影片你只能從一開始看到最后,不能拖動進度條(當然這種情況下有的播放器會話比較長的時間臨時創(chuàng)建索引),而且如果你不自己去手動另外載入音頻就沒有聲音。
視頻的編碼格式有h.263,h.264,mpeg-4等,視頻的文件格式有AVI,MPEG,MOV等格式,h.263,h.264,mpeg-4是3種不同的編解碼器。
?
2. 參數(shù)
2.1?視頻碼率
是指視頻文件在單位時間內(nèi)使用的數(shù)據(jù)流量,也叫碼流率。碼率越大,說明單位時間內(nèi)取樣率越大,數(shù)據(jù)流精度就越高,這樣表現(xiàn)出來的的效果就是:視頻畫面更清晰畫質(zhì)更高。
2.2?視頻幀率
通常說一個視頻的25幀,指的就是這個視頻幀率,即1秒中會顯示25幀;視頻幀率影響的是畫面流暢感,也就是說視頻幀率超高,表現(xiàn)出來的效果就是:畫面越顯得流暢。你也可以這樣理解,假設(shè)1秒只顯1幀,那么一段視頻看起來,就是有很明顯的卡頓感,不流暢不連慣。當然視頻幀率越高,意味著畫面越多,也就相應(yīng)的,這個視頻文件的大小也會隨之增加,占用存儲空間也就增大了。
2.3?視頻分辨率
分辨率就是我們常說的600x400分辨率、1920x1080分辨率,分辨率影響視頻圖像的大小,與視頻圖像大小成正比:視頻分辨率越高,圖像越大,對應(yīng)的視頻文件本身大小也會越大。
2.4 IPB幀概念
2.4.1 I 幀
幀內(nèi)編碼幀,幀表示為關(guān)鍵幀,可以理解為這一幀畫面的完整保留,解碼時只需要本幀數(shù)據(jù)就可以完成。(包含完整畫面)
I 幀的特點
一般而言,打印機的Dpi最高可達300。而手機廠商一般會指定Dpi,如下:
- 它是一個全幀壓縮編碼幀,它將全幀圖像信息進行JPEG壓縮編碼及傳輸
- 解碼時僅用 I 幀的數(shù)據(jù)就可重構(gòu)完整圖像
- I 幀描述了圖像背景和運動主體的詳情
- I 幀不需要參考其他畫面而生成
- I 幀是P幀和B幀的參考幀(其質(zhì)量直接影響到同組中以后各幀的質(zhì)量)
- I 幀不需要考慮運動矢量
- I 幀所占數(shù)據(jù)的信息量比較大
2.4.2 P幀
前后預測編碼幀,P幀表示的是這一幀跟之前的一個關(guān)鍵幀(或P幀)的差別,解碼時需要之前緩存的畫面疊加上本幀定義的差別,生成最終畫面。
(也就是差別幀,P幀沒有完整畫面數(shù)據(jù),只有與前一幀的畫面差別的數(shù)據(jù))
?P幀的預測與重構(gòu):P幀是以 I 幀為參考幀,在 I 幀中找出P幀“某點”的預測值和運動矢量,取預測差值和運動矢量一起傳送。在接收端根據(jù)運行矢量從 I 幀找出P幀“某點”的預測值并與差值相加以得到P幀“某點”樣值,從而可得到完整的P幀。
P 幀的特點
- P幀是 I 幀后面相隔1~2幀的編碼幀
- P幀采用運動補償?shù)姆椒▊魉退c前面的I或P幀的差值及運動矢量(預測誤差)
- 解碼時必須將幀中的預測值與預測誤差求和后才能重構(gòu)完整的P幀圖像
- P幀屬于前向預測的幀間編碼。它只參考前面最靠近它的 I 幀或P幀
- 由于P幀是參考幀,它可能造成解碼錯誤的擴散
- 由于是差值傳送,P幀的壓縮比較高
2.4.3 B幀
雙向預測內(nèi)插編碼幀。B幀是雙向差別幀,也就是B幀記錄的是本幀與前后幀的差別(具體比較復雜,有4種情況,但我這樣說簡單些),換言之,要解碼B幀。不僅要取得之前的緩存畫面,還要解碼之后的畫面,通過前后畫面的與本幀數(shù)據(jù)的疊加取得最終的畫面。B幀壓縮率高,但是解碼時CPU會比較累。
B幀以前面的 I 或P幀和后面的P幀為參考幀,“找出”B幀“某點”的預測值和兩個運動矢量,并取預測差值和運動矢量傳送。接收端根據(jù)運動矢量在兩個參考幀中“找出(算出)”預測值并與差值求和,得到B幀“某點”樣值,從而可得到完整的B幀。
B幀的特點:
- B幀是由前面的 I 或P幀和后面的P幀進行預測的
- B幀傳送的是它與前面的 I 或P幀和后面的P幀之間的預測誤差及運動矢量
- B幀是雙向預測編碼幀
- B幀壓縮比最高,因為它只反映并參考幀間運動主體的變化情況,預測比較準確
- B幀不是參考幀,不會造成解碼錯誤的擴散
2.5 GOP
在視頻編碼序列中,GOP即Group of picture(圖像組),指兩個I幀之間的距離,Reference(參考周期)指兩個P幀之間的距離。一個I幀所占用的字節(jié)數(shù)大于一個P幀,一個P幀所占用的字節(jié)數(shù)大于一個B幀。
所以在碼率不變的前提下,GOP值越大,P、B幀的數(shù)量會越多,畫面細節(jié)更多,也就更容易獲取較好的圖像質(zhì)量;Reference越大,B幀的數(shù)量越多,同理也更容易獲得較好的圖像質(zhì)量。
需要說明的是,通過提高GOP值來提高圖像質(zhì)量是有限度的,在遇到場景切換的情況時,H.264編碼器會自動強制插入一個I幀,此時實際的GOP值被縮短了。另一方面,在一個GOP中,P、B幀是由I幀預測得到的,當I幀的圖像質(zhì)量比較差時,會影響到一個GOP中后續(xù)P、B幀的圖像質(zhì)量,直到下一個GOP開始才有可能得以恢復,所以GOP值也不宜設(shè)置過大。
同時,由于P、B幀的復雜度大于I幀,所以過多的P、B幀會影響編碼效率,使編碼效率降低。另外,過長的GOP還會影響Seek操作(找I幀)的響應(yīng)速度,由于P、B幀是由前面的I或P幀預測得到的,所以Seek操作需要直接定位,解碼某一個P或B幀時,需要先解碼得到本GOP內(nèi)的I幀及之前的N個預測幀才可以,GOP值越長,需要解碼的預測幀就越多,seek響應(yīng)的時間也越長。
2.6 比特率
通常決定視頻和音頻文件的大小和質(zhì)量:比特率越高,質(zhì)量越好,文件大小也越大。
碼率影響視頻文件的大小,碼率越大,視頻文件越大;碼率越小,視頻文件越小。動態(tài)編碼方式,把較高的采樣率用于復雜的動態(tài)畫面,而把較低的采樣率用于靜態(tài)畫面,合理利用資源,達到畫質(zhì)與文件大小可兼得的效果。
碼率 (kbps) = 文件大小 (MB) / 時間 (秒)
視頻比特率以多種方式影響視頻質(zhì)量。首先,它是衡量任何視頻文件大小的關(guān)鍵指標。其次,高視頻比特率導致高視頻質(zhì)量,而低比特率導致差的視頻質(zhì)量。但是,使用極高的比特率只是浪費帶寬。
幀率與畫面的流暢度成正比。幀率越大,畫面越流暢;幀率越小,畫面有卡頓感。可變碼率編碼中,幀率也會影響文件的大小,幀率越高,每秒鐘采集的畫面越多,需要的碼率越高,體積也越大。畫面的幀率高于 16 時,人眼就會認為是連貫的,當幀率達到一定數(shù)值后,再增長的話,人眼也不容易察覺到有明顯的流暢度提升了。
如果限定碼率,那么幀率越高,編碼器就必須加大對單幀畫面的壓縮比,就是通過降低畫質(zhì)來承載足夠多的幀數(shù)。一般 fps = 20 就已經(jīng)可以達到很好的用戶體驗了。
視頻文件大小就是由碼率決定的,而且是成正比。 碼率的單位是kbps,也就是kb/s
簡單來說,碼率越高越清晰(不考慮其他條件的情況下)
3 封裝
平常我們所看的視頻文件后綴都有諸如mp4、rmvb、mkv、avi等等 (各種類型的具體差異這里就不闡述了),這些是文件的擴展名,其實這背后也意味著文件的封裝格式。
封裝相當于一種儲存視頻信息的容器,我們所看的視頻包含音頻和視頻兩個部分(有時還包括字幕),H.264就是視頻編碼,aaC、mp3等是音頻編碼,我們把用H.264視頻編碼和MP3音頻編碼按照mkv的封裝標準封裝起來,這樣我們看到的就是mkv格式的視頻文件。
封裝格式并不影響畫質(zhì),它只負責把內(nèi)部的視頻軌和音頻軌集成在一起,并不對內(nèi)容造成影響。
?
4. 像素格式
4.1 RGB
4.2 YUB
YUV,是一種顏色編碼方法。常使用在各個影像處理組件中。 YUV在對照片或影片編碼時,考慮到人類的感知能力,允許降低色度的帶寬。
三個分量:
- Y表示明亮度(Luminance或Luma),也就是灰度值
- U(Cb)表示色度(Chrominance)
- V(Cr)表示濃度(Chroma)
UV一起描述影像色彩和飽和度,用于指定像素的顏色
對于 YUV 圖像來說,并不是每個像素點都需要包含了 Y、U、V 三個分量,根據(jù)不同的采樣格式,可以每個 Y 分量都對應(yīng)自己的 UV 分量,也可以幾個 Y 分量共用 UV 分量
YUV采樣格式
YUV 4:4:4 采樣,意味著 Y、U、V 三個分量的采樣比例相同,因此在生成的圖像里,每個像素的三個分量信息完整,都是 8 bit,也就是一個字節(jié)。
?YUV4:4:4 ?完全抽樣,每一個Y對應(yīng)一組UV分量,對于w*h的一幅圖像,存儲需要w*h*3*8bit= 3*w*h 字節(jié)
YUV4:2:2 表示2:1水平抽樣,垂直2:1抽樣,每兩個Y共用一組UV分量,對于w*h的一幅圖像,存儲需要w*h*1*8+w*h*1*8/2bit +w*h*1*8/2bit=2*w*h 字節(jié)
YUV4:2:0 表示2:1的水平抽樣,垂直2:1抽樣,每四個Y共用一組UV分量對于w*h的一幅圖像,存儲需要w*h*8bit+w*h**8bit/4+w*h**8bit/4=3/2*w*h 字節(jié)
YUV4:1:1 表示4:1水平抽樣,垂直完全抽樣,每四個Y共用一組UV分量對于w*h的一幅圖像,存儲需要w*h**8bit+w*h**8bit/4+w*h**8bit/4=3/2*w*h 字節(jié)
(YUV420并不是說有一個分量不存在,而是對uv分量交錯取樣)
————————————————
版權(quán)聲明:本文為CSDN博主「ELIO WONG」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_45196915/article/details/120954709
參考鏈接:
(15條消息) 視頻編碼格式、視頻碼率、視頻幀率、分辨率的概念_視頻碼率和幀率_Wanderer001的博客-CSDN博客
https://blog.csdn.net/chengyq116/article/details/103602792文章來源:http://www.zghlxwxcb.cn/news/detail-639464.html
https://blog.csdn.net/qq_40733911/article/details/89949339文章來源地址http://www.zghlxwxcb.cn/news/detail-639464.html
到了這里,關(guān)于視頻的專業(yè)基礎(chǔ)知識(一)常用的編碼格式和參數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!