定義
H.264,也稱為高級視頻編碼或MPEG-4 Part 10,是基于面向塊的運動補償編碼的視頻壓縮標準。H.264將數(shù)字視頻轉(zhuǎn)換為占用非常少存儲空間的格式。這使得通過互聯(lián)網(wǎng)流式傳輸,播放和傳輸視頻變得更加容易。H.264定義了各種配置文件(工具)和級別(最大分辨率和比特率) - 我們將在本文后面更深入地介紹這一點。H.264 壓縮支持高達 8K 超高清的數(shù)字視頻。
H.264編解碼器由MPEG(運動圖像專家組)和ITU(國際電信部門)共同開發(fā)。許多著名的供應(yīng)商在他們自己的編解碼器版本中使用 H.264 - 如 Apple 編解碼器、MainConcept 編解碼器、x264 編解碼器等。
h.264 編解碼器如何工作?
基于H.264標準的視頻編解碼器,壓縮數(shù)字視頻流,使其僅適合MPEG-2(H.262)標準的一半帶寬或存儲空間。使用H.264壓縮,編解碼器可以保持視頻質(zhì)量不變,而不會影響任何內(nèi)容,同時將所需空間減少到原始空間的一半。H.264 視頻編碼器執(zhí)行三個重要過程 - 預(yù)測、轉(zhuǎn)換和編碼 - 以提供壓縮的 H.264 比特流。然后,解碼器執(zhí)行互補過程 - 解碼,逆變換和重建 - 以產(chǎn)生解碼的視頻流。讓我們詳細看看H.264編碼器過程:
預(yù)測: 編碼器處理宏塊(16x16 顯示像素)的視頻單元幀。這形成了基于先前編碼數(shù)據(jù)的宏塊預(yù)測 - 來自當(dāng)前幀(內(nèi)部預(yù)測)或來自先前編碼和傳輸幀(內(nèi)部預(yù)測)。編碼器提取預(yù)測并形成殘差。
轉(zhuǎn)換和量化: 殘差樣本塊使用離散余弦變換或 8x8 或 4x4 整數(shù)變換的近似形式進行變換。這將輸出一組系數(shù),每個系數(shù)都與標準基態(tài)的權(quán)重值相關(guān)。這些基礎(chǔ)模式可以組合在一起,以重新創(chuàng)建殘余樣品的初始塊。該輸出被量化,即每個系數(shù)除以一個整數(shù)值。這樣做的目的是生成一個塊,其中大多數(shù)或所有系數(shù)為零,非零系數(shù)很少。
比特流編碼: 以前生成的所有值現(xiàn)在都需要編碼。這些值包括 - 量化系數(shù)、解碼器用于重新創(chuàng)建預(yù)測的信息、有關(guān)壓縮數(shù)據(jù)結(jié)構(gòu)和所用壓縮工具的信息,以及有關(guān)整個視頻序列的信息。這些值和參數(shù)使用算術(shù)編碼或可變長度編碼進行編碼,以生成初始信息的緊湊二進制信息。然后,根據(jù)要求存儲或傳輸此比特流。
另一方面,解碼器通過以下方式補充編碼器的步驟:
比特流解碼: 解碼器接收壓縮的比特流并解碼每個語法元素。然后,它提取上述信息。這就是編碼過程的反向發(fā)生方式,并重新創(chuàng)建一系列視頻圖像。
重新縮放和反向轉(zhuǎn)換: 量化系數(shù)通過乘以整數(shù)值來重新縮放,以恢復(fù)初始縮放。此過程有助于重新創(chuàng)建殘差數(shù)據(jù)的每個塊,然后將其組合以形成宏塊。
重建: 對于每個宏塊,解碼器形成編碼器最初創(chuàng)建的宏塊的最準確預(yù)測。解碼器將此預(yù)測添加到解碼的殘差中。這導(dǎo)致重建解碼的宏塊,然后將其顯示為視頻幀的片段。
H.264 / AVC概述
H.264通常被稱為AVC - 高級視頻編碼的縮寫,也稱為MPEG-4第10部分。H.264編碼標準由ISO/IEC和ITU-T這兩個標準國際機構(gòu)創(chuàng)建。它于2003年首次出版,作為題為“建議H.264:高級視頻編碼”的文件的一部分。以下是 H.264 的一些功能和其他基本概述。
特征
H.264 壓縮將視頻容器的大小減小到原始容器的一半左右。在此過程中,基于H.264的編解碼器不會在任何質(zhì)量上妥協(xié)。就使其能夠執(zhí)行此壯舉的功能而言,以下是一些功能:
切片結(jié)構(gòu)編碼: Slice可以理解為一個特定切片組中的宏塊數(shù)組。它們在視頻數(shù)據(jù)中提供不同的重新同步點,并確保切片邊界上不會發(fā)生幀內(nèi)預(yù)測。此功能使 H.264 壓縮能夠?qū)?shù)據(jù)包丟失概率和視覺降級等損失降至最低。
靈活的宏塊排序 : 這是一種用于重新計劃宏塊表示順序的策略。這對于誤差魯棒性非常方便,在視頻傳輸過程中具有長期的積極影響。
數(shù)據(jù)分區(qū): 這是H.264的另一個關(guān)鍵功能,它通過將所有語法元素分發(fā)到網(wǎng)絡(luò)抽象層單元,允許分離標頭,運動信息和內(nèi)部信息。
內(nèi)部編碼: 使用內(nèi)部編碼可以約束數(shù)據(jù)包丟失對運動補償?shù)挠绊?。它還有助于終止和減少錯誤傳播到最低限度。
切換圖片: H.264的這一特性允許在參考信號存在差異的情況下進行預(yù)測編碼。此功能可用于自適應(yīng)錯誤恢復(fù)目的,尤其是在無線環(huán)境中。
讓我們看一下 H.264 壓縮上下文中的配置文件和級別。
配置文件和級別