新四季網

音頻講解教程(視音頻基礎知識1)

2023-10-10 16:44:52 1

人們期望將彩色格式由目前的4∶2∶0提升到4∶4∶4,以提高色彩的逼真度,對數字高畫質電視的清晰度期望提高到4k(3840×2160@60),甚至8k(7680×4320@60),比特深度期望由8bpp提升到12bpp,因而視頻信號的傳輸碼率將大幅度增加。於是人們希望進一步提高視頻編碼壓縮比,及網絡適應能力。

一,視頻播放器原理

視頻播放器播放一個網際網路上的視頻文件,需要經過以下幾個步驟:解協議,解封裝,解碼視音頻,視音頻同步。如果播放本地文件則不需要解協議,為以下幾個步驟:解封裝,解碼視音頻,視音頻同步。他們的過程如圖所示。

解協議的作用,就是將流媒體協議的數據,解析為標準的相應的封裝格式數據。視音頻在網絡上傳播的時候,常常採用各種流媒體協議,例如HTTP,RTMP,或是MMS等等。這些協議在傳輸視音頻數據的同時,也會傳輸一些信令數據。這些信令數據包括對播放的控制(播放,暫停,停止),或者對網絡狀態的描述等。解協議的過程中會去除掉信令數據而只保留視音頻數據。例如,採用RTMP協議傳輸的數據,經過解協議操作後,輸出FLV格式的數據。

解封裝的作用,就是將輸入的封裝格式的數據,分離成為音頻流壓縮編碼數據和視頻流壓縮編碼數據。封裝格式種類很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是將已經壓縮編碼的視頻數據和音頻數據按照一定的格式放到一起。例如,FLV格式的數據,經過解封裝操作後,輸出H.264編碼的視頻碼流和AAC編碼的音頻碼流。

解碼的作用,就是將視頻/音頻壓縮編碼數據,解碼成為非壓縮的視頻/音頻原始數據。音頻的壓縮編碼標準包含AAC,MP3,AC-3等等,視頻的壓縮編碼標準則包含H.264,MPEG2,VC-1等等。解碼是整個系統中最重要也是最複雜的一個環節。通過解碼,壓縮編碼的視頻數據輸出成為非壓縮的顏色數據,例如yuv420P,RGB等等;壓縮編碼的音頻數據輸出成為非壓縮的音頻抽樣數據,例如PCM數據.

視音頻同步的作用,就是根據解封裝模塊處理過程中獲取到的參數信息,同步解碼出來的視頻和音頻數據,並將視頻音頻數據送至系統的顯卡和音效卡播放出來。

二,流媒體協議

流媒體協議是伺服器與客戶端之間通信遵循的規定。當前網絡上主要的流媒體協議如表所示。

三,封裝格式

封裝格式的主要作用是把視頻碼流和音頻碼流按照一定的格式存儲在一個文件中。現如今流行的封裝格式如下表所示:

四,視頻編碼

4.1,顏色空間

YCbCr色彩空間和它的變形(有時被稱為YUV)是最常用的有效的表示彩色圖像的方法。Y是圖像的亮度(luminance/luma)分量,使用以下公式計算,為R,G,B分量的加權平均值:

Y = kr R kgG kbB

其中k是權重因數。

其中每個色差分量為R,G,B值和亮度Y的差值:

 Cb = B -Y

 Cr = R -Y

Cg = G- Y

其中,Cb Cr Cg是一個常數(其實是一個關於Y的表達式),所以,只需要其中兩個數值結合Y值就能夠計算出原來的RGB值。所以,我們僅保存亮度和藍色、紅色的色差值,這就是(Y,Cb,Cr)。

相比RGB色彩空間,YCbCr色彩空間有一個顯著的優點。Y的存儲可以採用和原來畫面一樣的解析度,但是Cb,Cr的存儲可以使用更低的解析度。

在RGB格式中,對於寬度為w,高度為h的畫面,需要w*h*3個字節來存儲其每個像素的rgb信息,畫面的像素數據是連續排列的.

在YUV格式中,以YUV420格式為例。寬度為w高度為h的畫面,其亮度Y數據需要w*h個字節來表示(每個像素點一個亮度)。而Cb和Cr數據則是畫面中4個像素共享一個Cb,Cr值。這樣Cb用w*h/4個字節,Cr用w*h/4個字節。

YUV的優點:

1、YUV表示法的重要性是它的亮度信號(Y)和色度信號(U、V)是相互獨立的 。

2、YUV表示法的另一個優點是可以利用人眼的特性來降低數字彩色圖像所需要的存儲容量。

4.2,視頻編碼

視頻編碼的主要作用是將視頻像素數據(RGB,YUV等)壓縮成為視頻碼流,從而降低視頻的數據量。如果視頻不經過壓縮編碼的話,體積通常是非常大的,一部電影可能就要上百G的空間。視頻編碼是視音頻技術中最重要的技術之一。視頻碼流的數據量佔了視音頻總數據量的絕大部分。高效率的視頻編碼在同等的碼率下,可以獲得更高的視頻質量。

在視頻編解碼技術定義方面有兩大標準機構。一個是國際電信聯盟 (ITU) 致力於電信應用,已經開發了用於低比特率視頻電話的 H.26x 標準,其中包括 H.261、H.262、H.263 與 H.264;另一個是國際標準化組織 (ISO) 主要針對消費類應用,已經針對運動圖像壓縮定義了 MPEG 標準。MPEG 標準包括 MPEG1、MPEG2 與 MPEG4。

將MPEG-2、MPEG-4(MPEG-4 Part 2)、H.264(MPEG-4 AVC、MPEG-4 Part 10)三者進行解析度表現與所用帶寬的比較,無論MPEG-2、MPEG-4、H.264,三者都能達1920×1080i(非交錯)的高清晰度(High Definition,HD)、24fps(每秒更新24張畫面)的影像畫質,但傳輸帶寬上MPEG-2需要12~20Mbps,相對的H.264隻要7~8Mbps,而MPEG-4則介於兩者間,更直接地說,若把MPEG-2的帶寬用作基準的100%,MPEG-4要達相同效果只需要60%帶寬,H.264更是低至40%,約為原MPEG-2的1/2~1/3。

FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,並能將其轉化為流的開源電腦程式。採用LGPL或GPL許可證。它提供了錄製、轉換以及流化音視頻的完整解決方案,幾乎囊括了現存所有的視音頻編碼標準.

學習連結:https://blog.csdn.net/leixiaohua1020/article/details/47068015

4.3不同視頻壓縮編碼方式比較

https://blog.csdn.net/leixiaohua1020/article/details/12237177 上述連結得出

不同視頻壓縮編碼方式的視頻質量有如下關係:

HEVC > H.264 > MPEG4 > H.263 > MPEG2

H.264最大的優勢是具有很高的數據壓縮比率,在同等圖像質量的條件下,H.264的壓縮比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。舉個例子,原始文件的大小如果為88GB,採用MPEG-2壓縮標準壓縮後變成3.5GB,壓縮比為25∶1,而採用H.264壓縮標準壓縮後變為879MB,從88GB到879MB,H.264的壓縮比達到驚人的102∶1。

低碼率(Low Bit Rate)對H.264的高的壓縮比起到了重要的作用,和MPEG-2和MPEG-4ASP等壓縮技術相比,H.264壓縮技術將大大節省用戶的下載時間和數據流量收費。尤其值得一提的是,H.264在具有高壓縮比的同時還擁有高質量流暢的圖像,正因為如此,經過H.264壓縮的視頻數據,在網絡傳輸過程中所需要的帶寬更少,也更加經濟。

反覆的質量比較測試已經表明,在相同的圖象質量下,相比於H.264,通過H.265編碼的視頻碼流大小比H.264減少大約39-44%。由於質量控制的測定方法不同,這個數據也會有相應的變化。通過主觀視覺測試得出的數據顯示,在碼率減少51-74%的情況下,H.265編碼視頻的質量還能與H.264編碼視頻近似甚至更好,其本質上說是比預期的信噪比(PSNR)要好。

事實上,H.265和H.264標準在各種功能上有一些重疊。例如,H.264標準中的Hi10P部分就支持10bit色深的視頻。另一個,H.264的部分(Hi444PP)還可以支持4:4:4色度抽樣和14比特色深。在這種情況下,H.265和H.264的區別就體現在前者可以使用更少的帶寬來提供同樣的功能,其代價就是設備計算能力:H.265編碼的視頻需要更多的計算能力來解碼。目前已經有支持H.265解碼的晶片發布了——美國博通公司(Broadcom)在今年1月初的CES大展上發布了一款Brahma BCM 7445晶片,它是一個採用28納米工藝的四核處理器,可以同時轉碼四個1080P視頻數據流或解析解析度為4096×2160的H.265編碼超高清視頻。

4.4 版權

五,專利

各家公司把自己的專利放進「專利池」(patent pool)中,由專利授權組織(池)公司 MPEG LA 統一進行管理.

關於新的視頻標準專利,你可能得多交幾份錢了!

AVC/HEVC的專利費

六、H264相關概念

6.1序列

H264編碼標準中所遵循的理論依據個人理解成:參照一段時間內相鄰的圖像中,像素、亮度與色溫的差別很小。所以當面對一段時間內圖像我們沒必要去對每一幅圖像進行完整一幀的編碼,而是可以選取這段時間的第一幀圖像作為完整編碼,而下一幅圖像可以記錄與第一幀完整編碼圖像像素、亮度與色溫等的差別即可,以此類推循環下去。

什麼叫序列呢?上述的這段時間內圖像變化不大的圖像集我們就可以稱之為一個序列。序列可以理解為有相同特點的一段數據。但是如果某個圖像與之前的圖像變換很大,很難參考之前的幀來生成新的幀,那麼久結束刪一個序列,開始下一段序列。重複上一序列的做法,生成新的一段序列。

6.2、幀類型

在H.264基準類中,僅使用I幀和P幀以實現低延時,因此是網絡攝像機和視頻編碼器的理想選擇。

H264結構中,一個視頻圖像編碼後的數據叫做一幀,一幀由一個片(slice)或多個片組成,一個片由一個或多個宏塊(MB)組成,一個宏塊由16x16的yuv數據組成。宏塊作為H264編碼的基本單位。

在H264協議內定義了三種幀,分別是I幀、B幀與P幀。I幀就是之前所說的一個完整的圖像幀,而B、幀與P幀所對應的就是之前說的不編碼全部圖像的幀。P幀與B幀的差別就是P幀是參考之前的I幀而生成的,而B幀是參考前後圖像幀編碼生成的。

6.3、GOP(畫面組)

GOP我個人也理解為跟序列差不多意思,就是一段時間內變化不大的圖像集。GOP結構一般有兩個數字,如M=3,N=12。M指定I幀和P幀之間的距離,N指定兩個I幀之間的距離。上面的M=3,N=12,GOP結構為:IBBPBBPBBPBBI。在一個GOP內I frame解碼不依賴任何的其它幀,p frame解碼則依賴前面的I frame或P frame,B frame解碼依賴前最近的一個I frame或P frame 及其後最近的一個P frame。

6.4、IDR幀(關鍵幀)

在編碼解碼中為了方便,將GOP中首個I幀要和其他I幀區別開,把第一個I幀叫IDR,這樣方便控制編碼和解碼流程,所以IDR幀一定是I幀,但I幀不一定是IDR幀;IDR幀的作用是立刻刷新,使錯誤不致傳播,從IDR幀開始算新的序列開始編碼。I幀有被跨幀參考的可能,IDR不會。

I幀不用參考任何幀,但是之後的P幀和B幀是有可能參考這個I幀之前的幀的。IDR就不允許這樣,例如:

IDR1 P4 B2 B3 P7 B5 B6 I10 B8 B9 P13 B11 B12 P16 B14 B15 這裡的B8可以跨過I10去參考P7

------------------------------------------------------------------------

IDR1 P4 B2 B3 P7 B5 B6 IDR8 P11 B9 B10 P14 B11 B12 這裡的B9就只能參照IDR8和P11,不可以參考IDR8前面的幀

作用:

H.264引入 IDR 圖像是為了解碼的重同步,當解碼器解碼到 IDR圖像時,立即將參考幀隊列清空,將已解碼的數據全部輸出或拋棄,重新查找參數集,開始一個新的序列。這樣,如果前一個序列出現重大錯誤,在這裡可以獲得重新同步的機會。IDR圖像之後的圖像永遠不會使用IDR之前的圖像的數據來解碼。

6.5、H264壓縮方式

H264採用的核心算法是幀內壓縮和幀間壓縮,幀內壓縮是生成I幀的算法,幀間壓縮是生成B幀和P幀的算法。

幀內(Intraframe)壓縮也稱為空間壓縮(Spatialcompression)。當壓縮一幀圖像時,僅考慮本幀的數據而不考慮相鄰幀之間的冗餘信息,這實際上與靜態圖像壓縮類似。幀內一般採用有損壓縮算法,由於幀內壓縮是編碼一個完整的圖像,所以可以獨立的解碼、顯示。幀內壓縮一般達不到很高的壓縮,跟編碼jpeg差不多。

幀間(Interframe)壓縮的原理是:相鄰幾幀的數據有很大的相關性,或者說前後兩幀信息變化很小的特點。也即連續的視頻其相鄰幀之間具有冗餘信息,根據這一特性,壓縮相鄰幀之間的冗餘量就可以進一步提高壓縮量,減小壓縮比。幀間壓縮也稱為時間壓縮(Temporalcompression),它通過比較時間軸上不同幀之間的數據進行壓縮。幀間壓縮一般是無損的。幀差值(Framedifferencing)算法是一種典型的時間壓縮法,它通過比較本幀與相鄰幀之間的差異,僅記錄本幀與其相鄰幀的差值,這樣可以大大減少數據量。

6.5.1 幀內預測編碼

可利用這種像素間的相關性進行壓縮編碼。例如,當前像素X(設為立即傳送的像素)可用前一個像素a、b或c,或三者的線性加權來預測,假設預測像素值為A=p1*a p2*b p3*c。a、b、c被稱為參考像素。實際傳送時,把實際像素X(當前值)和參考像素(預測值)相減,只傳送X-A,到了接收端再把(X-A) A恢復成X。由於A是已傳送的(在接收端被存儲),於是得到當前值。由於X與A相似,(X-A)值很小,視頻信號被壓縮,這種壓縮方式稱為幀內預測編碼。

6.5.2 幀間預測編碼

一般而言,幀間預測編碼的編碼效率比幀內編碼更高。可利用圖1.3所示的幀間相關性進行壓縮編碼。由於鄰近幀之間的相關性一般比幀內像素間的相關性更強,因此壓縮比也更大。由此可見,利用像素之間(幀內)的相關性和幀間的相關性,找到相應的參考像素或參考幀作為預測值,可以實現視頻壓縮編碼。

1.單向預測

(1)預測原理

圖3.11所示為單向預測的預測編碼框圖。

當前幀圖像與預測圖像相減後的幀誤差,經量化器量化後輸出,傳送到信道。預測圖像

與相加,得,當不計量化失真時,即當前的。

把當前幀與幀存儲器輸出的前一幀(也稱參考幀)同時輸入到運動參數估值器中,經搜索、比較得到運動矢量MV。此MV輸入到運動補償預測器中,得到預測圖像。預測圖像不可能完全等同於當前圖像無論預測得如何精確,總存在幀

誤差。由上述可知,利用上一幀的圖像經運動矢量位移作為預測值的方法稱為單向預測或單向時間預測。這時,有

其中,(i, j)即運動矢量。如何減小幀差和更精確地預測當前像素,是提高幀間壓縮編碼效率的關鍵。

2.雙向預測

有時,不只是利用前一幀像素進行預測,還需利用後一幀像素,即預測值為:

其中,分別為t到t-1和t到t 1間的運動矢量MV,分別為前向和後向預測係數,可按最佳預測公式確定。

這時,用前向參考幀預測當前幀稱為前向運動補償,利用後向參考幀預測當前幀稱為後向運動補償,利用前、後向同時預測,就稱為雙向預測運動補償。在諸如會議電視、可視電話等實時通信中,一般不應用雙向預測,因為後向預測在當前幀之後進行,會引入編碼時延。它可用在廣播電視系統中,如採用MPEG標準的編碼系統,特別針對一些暴露區域,即t-1幀尚未暴露而t 1幀已呈

現出來的區域。圖3.14為單向和雙向預測編碼舉例。為了進一步提高編碼效率,多幀預測(包括單向和雙向預測)被引入,如H.264標準參考幀可達16幀。

6.5.3編碼原理

大量統計表明,視頻信號中包含著能量上佔大部分的直流和低頻成分(圖像的平坦部分),還有少量的高頻成分(圖像的細節部分)。因此,可以用另一種方法進行視頻編碼,將圖像經過某種數學變換後,得到變換域中的圖像(如圖1.4所示),其中u、v分別是空間頻率坐標軸。在圖1.4中,用「o」表示的低頻和直流佔圖像能量中的大部分;而用「×」表示的高頻成分則是少量的;其餘均是零值,用「O」表示。於是可用較少的碼表示直流、低頻以及高頻,而「O」則不必用碼表示,由此可完成壓縮編碼。

6.6、壓縮方式說明

Step1:分組,也就是將一系列變換不大的圖像歸為一個組,也就是一個序列,也可以叫GOP(畫面組);

Step2:定義幀,將每組的圖像幀歸分為I幀、P幀和B幀三種類型;

Step3:預測幀, 以I幀做為基礎幀,以I幀預測P幀,再由I幀和P幀預測B幀;

Step4:數據傳輸, 最後將I幀數據與預測的差值信息進行存儲和傳輸。

6.7 流程圖

編碼:

編碼器採用的仍是變換和預測的混合編碼法。在上圖中,輸入的幀或場Fn以宏塊為單位被編碼器處理。首先,按幀內或者幀間預測編碼的方法進行處理。假設採用幀間預測編碼,其預測值PRED是由當前片中前面已編碼的參考圖像經運動補償(MC)後得到,當中參考圖像用F』n-1表示。預測值PRED和當前塊相減後,產生一個殘差塊Dn,經塊變換、量化後產生一組量化後的變換係數X,再經熵編碼,與解碼所需的一些頭信息一起組成壓縮後的碼流,經NAL(網絡自適應層)供傳輸和存儲用。

變換和量化.

解碼:

在圖6.2中,將編碼器的NAL輸出的H264比特流經熵解碼得到量化後的一組變換係數X,再經反量化、反變換,得到殘差D』n。利用從該比特流中解碼出的頭信息,解碼器就產生一個預測塊PRED,它和編碼器中的原始PRED是同樣的。當該解碼器產生的PRED與殘差D』n相加後,就得到了uF』n,再經濾波後,最後就得到濾波後的解碼輸出圖像F』n。

上面介紹了視頻壓縮編碼過程中的幾個重要的方法。在實際應用中這幾個方法不是分離的,通常將它們結合起來使用以達到最好的壓縮效果。下圖給出了混合編碼(即變換編碼 運動估計和運動補償 熵編碼)的模型。該模型普遍應用於MPEG1,MPEG2,H.264等標準中。

混合編碼

從圖中我們可以看到,當前輸入的圖像首先要經過分塊,分塊得到的圖像塊要與經過運動補償的預測圖像相減得到差值圖像X,然後對該差值圖像塊進行DCT變換和量化,量化輸出的數據有兩個不同的去處:一個是送給熵編碼器進行編碼,編碼後的碼流輸出到一個緩存器中保存,等待傳送出去。另一個應用是進行反量化和反變化後的到信號X』,該信號將與運動補償輸出的圖像塊相加得到新的預測圖像信號,並將新的預測圖像塊送至幀存儲器。

參考文獻:

https://blog.csdn.net/leixiaohua1020/article/details/18893769

https://blog.csdn.net/leixiaohua1020/article/details/28114081

,
同类文章
葬禮的夢想

葬禮的夢想

夢見葬禮,我得到了這個夢想,五個要素的五個要素,水火只好,主要名字在外面,職業生涯良好,一切都應該對待他人治療誠意,由於小,吉利的冬天夢想,秋天的夢是不吉利的
找到手機是什麼意思?

找到手機是什麼意思?

找到手機是什麼意思?五次選舉的五個要素是兩名士兵的跡象。與他溝通很好。這是非常財富,它擅長運作,職業是仙人的標誌。單身男人有這個夢想,主要生活可以有人幫忙
我不怎麼想?

我不怎麼想?

我做了什麼意味著看到米飯烹飪?我得到了這個夢想,五線的主要土壤,但是Tu Ke水是錢的跡象,職業生涯更加真誠。他真誠地誠實。這是豐富的,這是夏瑞的巨星
夢想你的意思是什麼?

夢想你的意思是什麼?

你是什​​麼意思夢想的夢想?夢想,主要木材的五個要素,水的跡象,主營業務,主營業務,案子應該抓住魅力,不能疏忽,春天夢想的吉利夢想夏天的夢想不幸。詢問學者夢想
拯救夢想

拯救夢想

拯救夢想什麼意思?你夢想著拯救人嗎?拯救人們的夢想有一個現實,也有夢想的主觀想像力,請參閱週宮官方網站拯救人民夢想的詳細解釋。夢想著敵人被拯救出來
2022愛方向和生日是在[質量個性]中

2022愛方向和生日是在[質量個性]中

[救生員]有人說,在出生88天之前,胎兒已經知道哪天的出生,如何有優質的個性,將走在什麼樣的愛情之旅,將與生活生活有什么生活。今天
夢想切割剪裁

夢想切割剪裁

夢想切割剪裁什麼意思?你夢想切你的手是好的嗎?夢想切割手工切割手有一個真正的影響和反應,也有夢想的主觀想像力。請參閱官方網站夢想的細節,以削減手
夢想著親人死了

夢想著親人死了

夢想著親人死了什麼意思?你夢想夢想你的親人死嗎?夢想有一個現實的影響和反應,還有夢想的主觀想像力,請參閱夢想世界夢想死亡的親屬的詳細解釋
夢想搶劫

夢想搶劫

夢想搶劫什麼意思?你夢想搶劫嗎?夢想著搶劫有一個現實的影響和反應,也有夢想的主觀想像力,請參閱週恭吉夢官方網站的詳細解釋。夢想搶劫
夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂什麼意思?你夢想缺乏異常藥物嗎?夢想缺乏現實世界的影響和現實,還有夢想的主觀想像,請看官方網站的夢想組織缺乏異常藥物。我覺得有些東西缺失了