<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          音視頻技術(shù)入門——視頻處理

          共 6185字,需瀏覽 13分鐘

           ·

          2022-02-09 17:34

          你看到的視頻究竟經(jīng)歷了什么到達你眼前?

          為什么在視頻通話時會出現(xiàn)馬賽克?


          本篇文章會涉及到視頻處理的相關(guān)內(nèi)容,包括視頻采集、視頻編解碼、視頻渲染

          關(guān)于「音視頻技術(shù)小白科普營」我們想用淺顯易懂的語言,將一些基礎(chǔ)知識,體系化的介紹給音視頻技術(shù)初學(xué)者或者想要了解音視頻技術(shù)任何人。感謝閱讀,如果您想了解更多關(guān)于音視頻相關(guān),歡迎關(guān)注ZEGO即構(gòu)官網(wǎng)。

          視頻處理大綱

          視頻的秘密

          來,看看這個李佳琦。

          他嘴上色彩鮮艷的口紅,無暇的皮膚,以及屏幕上閃現(xiàn)的文字,

          你可能看過無數(shù)次直播,但卻從來沒有想過這個“李佳琦”經(jīng)歷了什么來到你的面前。

          這個圖像看起來簡單,由聲音、動態(tài)畫面、文字組成。剩下的就是一堆可跳轉(zhuǎn)的按鈕和互動彈幕。

          但是,單單那色彩飽和度豐富的口紅和無暇的皮膚,就沒有那么簡單。


          視頻作為一種信息,跨越千山萬水見到屏幕前的你,需要經(jīng)歷曲折的可不是主播按下錄制鍵那么簡單,舉起相機,意味著一個視頻的生命旅程才剛剛開始。

          它需要經(jīng)歷:

          采集、前處理、編碼、傳輸、解碼、后處理、渲染等一系列處理。

          上圖哥哥嬌艷欲滴的口紅就與“采集”息息相關(guān)了


          1.采集

          我們所看到的色彩圖像,都與顏色空間有關(guān),“采集”就是對顏色空間進行采樣與存儲。

          佳琪哥哥的口紅試色與你收到的寶貝有沒有色差,這一步十分重要。


          常見的顏色空間有兩種,分別是以紅、綠、藍三原?的亮度來定量表示顏?的RGB模式,和根據(jù)?個亮度(Y 分量)和兩個?度(UV 分量)來定義顏?空間的YUV模式。


          因為人眼對色度的敏感度不如對明亮度,可以對色度的數(shù)據(jù)進行壓縮,因此YUV格式比RGB格式存儲空間更小。目前音視頻技術(shù)多采用YUV模式進行采集,以便獲取更大的可壓縮空間。

          YUV的采樣方式%存儲方式:

          YUV的采樣?式主要有三種:YUV4:4:4、YUV4:2:2、YUV4:2:0,每個分量占?個字節(jié) 。
          (1)YUV 4:4:4采樣,針對每個像素做全采樣,每?個Y對應(yīng)?組UV分量,每個像素占?3個字節(jié) 。
          (2)YUV 4:2:2采樣,UV 分量是 Y 分量采樣的?半,Y 分量和 UV 分量按照 2 : 1 的?例采樣,每兩個Y共??組UV分量,每個像素占?2個字節(jié) 。
          (3)YUV 4:2:0采樣,不是指只采樣 U 分量?不采樣 V 分量。?是指,在每??掃描時,只掃描?種?度分量(U 或者 V),和 Y 分量按照 2 : 1 的?式采樣,每四個Y共??組UV分量,每個像素占?1.5個字節(jié) 。
          YUV的存儲格式?概可以分為 packed(打包)、planar(平?)、semi planar(半平?) 三 個?類別。
          ·打包格式:只有?個plane,存儲規(guī)則是取n個采樣點的Y、U、V的分量?起打包存儲,然后以相同的?式存儲接下來的n 個采樣點;對于n的取值和Y、U、V分量的排列順序,也存在多種?組合格式,?較常?的格式有YUY2等。
          ·平?格式:擁有三個plane,第?個平?存儲所有的Y分 量,接下來的第?個平?存儲所有的U分量,后的?個平?存儲所有的V分量(也可能倒過來),?般可以簡稱為YUV 4XX P格式,例如應(yīng)??常?泛的I420。
          ·半平?格式:介于平?格式和打包格式之間,對于 YUV 4XX SP格式都是屬于semi planar格式,擁有兩個plane,第?個平?都是先存儲所有的Y分量,接下來的U和V分量按照?定的規(guī)則交叉存儲在接下來的平?上?,U、 V的存儲順序的不同對應(yīng)不同的?格式,如NV21、NV12等。

          2.物理采集

          我們所看到的圖像是由各類圖像傳感器、攝像機、錄像機、電視劇等視頻設(shè)備輸出的視頻信號。視頻由一幀幀照片組成,而照片的好壞與曝光和變焦有關(guān)。

          焦距是光學(xué)系統(tǒng)中衡量光的聚集或發(fā)散的度量方式,指從透鏡中心到光聚集之焦點的距離。

          不同的視頻場景需要在圖像采集端配備不同焦距的設(shè)備,比如上圖為了能更清晰真實的感受主播哥哥的美顏暴擊,就應(yīng)采用標準焦距鏡頭,其視野范圍就是人眼所見距離。而上年火爆的直播賣房等場景,為了能將房屋全景呈現(xiàn),當(dāng)然采用視野范圍更大的短焦距鏡頭(廣角鏡頭)成像效果更好。長焦鏡頭視野范圍小,卻能更好的清晰捕捉遠處的畫面。

          上述這種通過選擇不同焦距的鏡頭來拍攝圖像,被稱為光學(xué)變焦。這是真正意義上的變焦,可清晰放大影像,而無任何畫質(zhì)損失。

          下面再來看一下曝光對照片質(zhì)量的影響。

          這是一張你們的女神的曝光前后對比圖,歲月的痕跡在曝光后一秒被抹去。但是整個的照片的細節(jié)就不明顯了,比如眼尾的細紋。

          所以曝光也需要靈活取舍。

          一張正確曝光的圖片可以有N種不同的光圈和快門速度組合。其中光圈和速度聯(lián)合決定進光量,ISO決定CCD/CMOS的感光速度。如果進光量不夠,可以開大光圈或者降低快門速度,還是不夠的話就提高ISO。大光圈的缺點是解像度不如中等光圈,快門速度降低則圖片可能會糊,提高ISO后圖片質(zhì)量也會下降 。沒有完美的方案,如何取舍要靈活決定。

          曝光模式即計算機采用自然光源的模式,通常分為多種,手動曝光、自動曝光等模式。也就是說應(yīng)該通多少的光線使感光元件能夠得到清晰的圖像。

          而曝光量由通光時間(快門速度決定),通光面積(光圈大小)決定。

          再次說明了,膚白貌美的佳琪哥哥出現(xiàn)在你的手機屏幕,需要很多邊際調(diào)整,才能做到不辜負每個口紅對試色的期待。

          總結(jié)一下這一小節(jié),我們了解了,視頻在采集階段的顏色空間表達方式,和其采樣及存儲的方式。并且通過對物理采集中的變焦、曝光概念的初識,理解了視頻采集設(shè)備的重要性。

          3. 視頻壓縮的必要性

          不管是看直播還是打視頻通話,最令人暴躁的情況就是卡頓、加載不出來、花屏、馬賽克等,意外情況。

          佳琪哥哥剛喊出“買它”!畫面卡住,屏幕出現(xiàn)黑邊,或者還有些斑駁的馬賽克。

          每當(dāng)此時,網(wǎng)速就背了太多的鍋。“這破網(wǎng)!”想必各位也吐槽夠了,一起來了解一下阻礙你買買買的真正原因吧。

          不管是采集,還是編碼,都是為了能將視頻更高質(zhì)穩(wěn)定的傳遞到觀眾眼前。

          而帶寬是有限而固定的,所以在千萬剁手女孩與你一起涌入直播間時,考慮到傳播效率,及接受信息的時效性和對帶寬資源的有效利用,需要對采集后的視頻信息進行“壓縮”,也就是編碼。

          如果采集后的視頻已經(jīng)在YUV階段進行了一部分壓縮,為了兼顧畫質(zhì)和傳輸穩(wěn)定性,壓縮可以從兩方面著手,即:

          ·空間冗余:根據(jù)局部相關(guān)性,同一張圖像中臨近的采樣點之間往往存在著空間連續(xù)性,即顏色相同或相近;
          ·時間冗余:連續(xù)的畫面之間存在著空間的連續(xù)性,即相鄰圖像之間變化的內(nèi)容不是很多。
          利用空間冗余和時間冗余的原理,可以對視頻進行高效壓縮,從而提升傳輸效率。

          如何利用時間冗余和空間冗余壓縮視頻呢?

          這就需要用到預(yù)測編碼IPB幀與GOP。


          4.預(yù)測編碼&IPB幀
          預(yù)測編碼就是根據(jù)已經(jīng)編碼好的塊信息得到一個預(yù)測值,這樣只需要編碼實際值與預(yù)測值之間的差異即可。
          ·空間冗余的消除:
          幀內(nèi)預(yù)測:根據(jù)同一幀中相鄰已編碼好的塊信息得到預(yù)測數(shù)據(jù),編碼差異數(shù)據(jù)
          ·時間冗余的消除:
          幀間預(yù)測:根據(jù)已編碼幀中的塊信息得到預(yù)測數(shù)據(jù),編碼差異數(shù)據(jù)

          IPB幀:
          I幀:僅使用幀內(nèi)的空間相關(guān)性進行壓縮,壓縮效率最低,但其編解碼無需用到其他幀的信息,可以獨立解碼,是GOP的起始點,只使用幀內(nèi)預(yù)測,它是一個完整的畫面,沒有I幀,P幀和B幀就無法解碼;
          P幀:前向預(yù)測幀,編解碼時會參考其前面的幀的信息;
          B幀:雙向預(yù)測幀,編解碼時可能同時參考前面和后面的幀信息,壓縮效率最高,復(fù)雜度高,時延較大。
          需要特別說明的是,ZEGO SDK不?持推B幀,因為B幀在直播場景下延遲很?。但可以解碼含有B幀的流,是為了兼容第三?軟件推流,但是會出現(xiàn)?畫不同步,?且只能?軟解。

          5.GOP(Group of Pictures),是畫面組的意思,即兩個I幀之間的間隔幀數(shù),一個GOP就是一組連續(xù)的畫面。

          ZEGO SDK中,一個GOP的幀數(shù) = 視頻編碼幀率 * 關(guān)鍵幀間隔時間(默認2s)。

          需要注意的是視頻畫面的花屏是缺了塊,碼流出錯導(dǎo)致的。比如說丟了I幀、P幀。

          而馬賽克現(xiàn)象就是碼率過低導(dǎo)致的。


          那么視頻的編碼結(jié)構(gòu)是怎么樣的呢?

          6.高編碼效率和網(wǎng)絡(luò)友好性的任務(wù)分別由VCL和NAL來完成,VCL和NAL就是H264的碼流結(jié)構(gòu)。

          視頻編碼層VCL(Video Coding Layer)即編碼處理的輸出,表示被壓縮編碼后的視頻數(shù)據(jù)序列。

          網(wǎng)絡(luò)傳輸層NAL(Network Abstraction Layer)定義了數(shù)據(jù)封裝的格式和統(tǒng)一的網(wǎng)絡(luò)接口,負責(zé)格式化VCL數(shù)據(jù)并提供頭信息,以保證數(shù)據(jù)適合各種信道和存儲介質(zhì)上的傳輸。基本單元為NALU,每一個NALU包含一個字節(jié)的頭信息(NAL header)和其后的負載數(shù)據(jù)(RBSP, Raw Byte Sequence Payload)。

          H.264碼流在網(wǎng)絡(luò)中傳輸時就是以NALU的形式進行傳輸?shù)摹?/p>

          宏塊:視頻編碼的基本單元,h264通常宏塊大小為16x16個像素,所以編碼器一般會對圖像的寬高有要求,需要為16的倍數(shù)

          Slice:條帶,圖像的劃分,一幀圖像可編碼成一個或者多個條帶,每條帶包含整數(shù)個宏塊

          NALU常見類型:
          ·IDR圖像的片段
          ·補充增強信息(SEI):一般用作補充字幕信息,例如一些直播答題場景中的字幕,就存儲在SEI
          ·序列參數(shù)集(SPS):序列參數(shù)集,包含應(yīng)用于完整視頻序列的語法元素,比如圖像寬,高等
          ·圖像參數(shù)集(PPS):圖像參數(shù)集,包含應(yīng)用于編碼圖像的語法元素,比如量化參數(shù),參考幀列表大小等

          上述介紹的是H264編碼格式,編碼格式也有很多種。


          7.常見的編碼格式有七種,分別是:

          H.261、H.263、H.264、H.265

          MPEG1、MPEG2、MPEG4

          在國際上,制定視頻編解碼技術(shù)的組織有兩個,一個是“國際電聯(lián)(ITU-T)”,它制定的標準有H.261、H.263、H.263+等,另一個是“國際標準化組織(ISO)”,它制定的標準有MPEG-1、MPEG-2、MPEG-4等。

          而H.264則是由兩個組織的編碼專家組,聯(lián)合組建的聯(lián)合視頻組,共同制定的高度壓縮數(shù)字視頻編解碼器標準。

          所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高級視頻編碼的第10 部分。

          因此,不論是MPEG-4 AVC、MPEG-4 Part 10,還是ISO/IEC 14496-10,都是指H.264。

          即構(gòu)ZEGO SDK內(nèi)部支持的視頻編碼格式有:H.264、VP8、H.265

          在這里再介紹一下H265。

          8.h265

          H.265標準,是圍繞H.264,保留原來的某些技術(shù),同時對一些相關(guān)的技術(shù)加以改進而來的新標準。使用先進的技術(shù),用以改善碼流、編碼質(zhì)量、延時和算法復(fù)雜度之間的關(guān)系,達到最優(yōu)化設(shè)置。

          具體的內(nèi)容包括:提高壓縮效率、提高魯棒性和錯誤恢復(fù)能力、減少實時的時延、減少信道獲取時間和隨機接入時延、降低復(fù)雜度等

          H.264由于算法優(yōu)化,可以以低于1Mbps的速度實現(xiàn)標清數(shù)字圖像傳送;

          H.265則可以實現(xiàn)利用1-2Mbps的傳輸速度傳送普通高清音視頻傳送。

          另外,根據(jù)編碼解碼方式,也分為兩種,分別是硬編硬解與軟編軟解。

          9.硬編硬解與軟編軟解:

          硬編硬解:使用非CPU進行編碼解碼,通過專用的設(shè)備,單獨完成視頻編碼解碼,如顯卡GPU、專用的DSP、FPGA、ASIC芯片等,曾經(jīng)的VCD/DVD解壓卡、視頻壓縮卡都被冠以“硬解”的稱號;

          軟編軟解:通常指的是視頻的軟件解碼,通過軟件解碼得到的畫面效果通常在電腦配置足夠好的情況下,比硬件解碼來的好很多;

          移動平臺上,由于性能及功耗的原因,一般推薦是使用硬編硬解,軟件編解碼比較消耗cpu。

          視頻的質(zhì)量和傳輸速度之間如何平衡,就涉及到了碼率控制。

          10.碼率控制:

          碼率控制,是一種決定為每一個視頻幀分配多少比特數(shù)的方法,它將決定碼率的大小和質(zhì)量的分配。它涉及視頻質(zhì)量和信道帶寬的折中,減少碼率就會犧牲質(zhì)量,質(zhì)量提高就會增加碼率。

          CBR跟ABR的差異:

          (1)當(dāng)連續(xù)的畫面變化較小,編碼的碼率達不到設(shè)定的碼率時,CBR模式會填充數(shù)據(jù),直到滿足設(shè)定的碼率,ABR模式則不會填充。

          (2)當(dāng)連續(xù)的畫面變化較大時,CBR、ABR模式的編碼碼率,都會有一定程度的上升,但如果設(shè)定的碼率不夠,畫面依然會模糊。

          11.渲染基本原理:

          渲染是指,用軟件從模型生成圖像的過程,是將三維場景中的模型,按照設(shè)定好的環(huán)境、燈光、材質(zhì)及渲染參數(shù),二維投影成數(shù)字圖像的過程。渲染用于描述:計算視頻編輯軟件中的效果,以生成最終視頻的輸出過程。

          渲染是三維計算機圖形學(xué)中的,最重要的研究課題之一,并且在實踐領(lǐng)域,它與其它技術(shù)密切相關(guān)。在圖形流水線中,渲染是最后一項重要步驟,通過它,得到模型與動畫最終顯示效果

          渲染的應(yīng)用領(lǐng)域有:計算機與視頻游戲、模擬、電影或者電視特效以及可視化設(shè)計,每一種應(yīng)用都是特性與技術(shù)的綜合考慮。

          (游戲手柄渲染)
          (室內(nèi)渲染)
          (影視渲染)

          12.各平臺常用的渲染組件

          (1)SurfaceView

          SurfaceView,可用于在 View 層次結(jié)構(gòu)中嵌入其他合成層。他的主要作用:

          A.視頻輸出的屏幕。(這個用得比較多)

          B.繪制圖像

          SurfaceView提供一個直接的繪圖表面(Surface)嵌入到視圖結(jié)構(gòu)層次中。你可以控制這個Surface的格式,大小,SurfaceView負責(zé)在屏幕上正確的擺放Surface。簡單說就是SurfaceView擁有自己的Surface,它與宿主窗口是分離的。

          (2)GLSurfaceView

          該類提供了幫助管理EGL上下文、在線程間通信以及與 Activity 生命周期交互的輔助程序類。

          例如,GLSurfaceView 會創(chuàng)建一個渲染線程,并在線程上配置 EGL 上下文。當(dāng) Activity 暫停時,狀態(tài)將自動清除。大多數(shù)應(yīng)用無需了解有關(guān) EGL 的任何信息即可通過 GLSurfaceView 來使用GLES

          在大多數(shù)情況下,GLSurfaceView 可簡化 GLES 的使用。但在某些情況下,卻會造成妨礙。

          (3)SurfaceTexture

          相比SurfaceView,SurfaceTexture是從Android3.0(API 11)加入的一個新類,它是Object的子類,它的主要用途從一個圖像流捕獲幀數(shù)據(jù)作為OpenGL ES的紋理。

          這些圖像流可以來自于相機的預(yù)覽數(shù)據(jù),或者視頻的解碼數(shù)據(jù),從一個SurfaceTexture 創(chuàng)建一個 surface 可以被用于android.hardware.camera2, MediaCodec, MediaPlayer,Allocation等的輸出目標。


          在下一篇連載中,我們將詳細介紹下音視頻技術(shù)中的音頻處理環(huán)節(jié),科普關(guān)于音頻的采集、渲染、編解碼、前處理的相關(guān)知識。

          敬請期待!

          如果您現(xiàn)在想了解更多關(guān)于音視頻的訊息,歡迎加入我們的音視頻技術(shù)分享群。我們會定期舉辦線上技術(shù)分享、音視頻在各行業(yè)中的應(yīng)用分享、技術(shù)干貨等。

          群是免費的,但是謝絕廣告和水聊。添加即構(gòu)微信號,拉您進群。
          微信號zegoshouqian,添加時請備注:知乎音視頻群
          即構(gòu)機構(gòu)號將實時分享音視頻領(lǐng)域的技術(shù)洞見以及行業(yè)訊息,與您一起探討音視頻創(chuàng)新的更多可能性。
          歡迎提問&求關(guān)注 ( ′ ▽ ` )?
          以上。
          瀏覽 20
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产无码中文字幕在线 | 久艹艹| 国产精品秘 久久久久久奇米影视 | 青青草原在线免费 | 人人看人人干人人过人人 |