即時通訊中視訊編碼技術H.264與AVS視訊標準核心技術比較
視訊編碼技術在過去幾年最重要的發展之一是由ITU和ISO/IEC的聯合視訊小組 (JVT)開發了H.264/MPEG-4 AVC[8]標準。在發展過程中,業界為這種新標準取了許多不同的名稱。ITU在1997年開始利用重要的新編碼工具處理H.26L(長期),結果令人鼓舞,於是ISO決定聯手ITU組建JVT並採用一個通用的標準。因此,大家有時會聽到有人將這項標準稱為JVT,儘管它並非正式名稱。ITU在2003年5月批准了新的H.264標準。ISO在2003年10 月以MPEG-4 Part 10、高階視訊編碼或AVC的名稱批准了該標準。
H.264 實現的改進創造了新的市場機遇
H.264/AVC在壓縮效率方面取得了巨大突破,一般情況下達到MPEG-2及MPEG-4簡化類壓縮效率的大約2倍。在JVT進行的正式測試中,H.264在85個測試案例中有78%的案例實現1.5倍以上的編碼效率提高,77%的案例中達到2倍以上,部分案例甚至高達4倍。H.264 實現的改進創造了新的市場機遇,如:600Kbps的VHS品質視訊可以通過ADSL線路實現視訊點播;高清晰電影無需新的鐳射頭即可適應普通 DVD。
H.264標準化時支援三個類別:基本類、主類及擴充套件類。後來一項稱為高保真範圍擴充套件 (FRExt)的修訂引入了稱為高階類的4個附加類。在初期主要是基本類和主類引起了大家的興趣。基本類降低了計算及系統記憶體需求,而且針對低時延進行了優化。由於B幀的內在時延以及CABAC的計算複雜性,因此它不包括這兩者。基本類非常適合可視電話應用以及其他需要低成本實時編碼的應用。
主類提供的壓縮效率最高,但其要求的處理能力也比基本類高許多,因此使其難以用於低成本實時編碼和低時延應用。廣播與內容儲存應用對主類最感興趣,它們是為了儘可能以最低的位元率獲得最高的視訊質量。
儘管H.264採用與舊標準相同的主要編碼功能,不過它還具有許多與舊標準不同的新功能,它們一起實現了編碼效率的提高。其主要差別,概述如下:
幀內預測與編碼:H.264採用空域幀內預測技術來預測相鄰塊鄰近畫素的Intra-MB中的畫素。它對預測殘差訊號和預測模式進行編碼,而不是編碼塊中的實際畫素。這樣可以顯著提高幀內編碼效率。
幀間預測與編碼:H.264中的幀間編碼採用了舊標準的主要功能,同時也增加了靈活性及可操作性,包括適用於多種功能的幾種塊大小選項,如:運動補償、四分之一畫素運動補償、多參考幀、通用 (generalized)雙向預測和自適應環路去塊。
可變向量塊大小:允許採用不同塊大小執行運動補償。可以為小至4(4的塊傳輸單個運動向量,因此在雙向預測情況下可以為單個MB傳輸多達32個運動向量。另外還支援16(8、8(16、8(8、8(4和4(8的塊大小。降低塊大小可以提高運動細節的處理能力,因而提高主觀質量感受,包括消除較大的塊化失真。
四分之一畫素運動估計:通過允許半畫素和四分之一畫素運動向量解析度可以改善運動補償。
多參考幀預測:16個不同的參考幀可以用於幀間編碼,從而可以改善視訊質量的主觀感受並提高編碼效率。提供多個參考幀還有助於提高H.264位流的容錯能力。值得注意的是,這種特性會增加編碼器與解碼器的記憶體需求,因為必須在記憶體中儲存多個參考幀。
自適應環路去塊濾波器:H.264採用一種自適應解塊濾波器,它會在預測迴路內對水平和垂直區塊邊緣進行處理,用於消除塊預測誤差造成的失真。這種濾波通常是基於4(4塊邊界為運算基礎,其中邊界各邊的3個畫素可通過4級濾波器進行更新。
整數變換:採用DCT的早期標準必須為逆變換的固點實施來定義舍入誤差的容差範圍。編碼器與解碼器之間的 IDCT 精度失配造成的漂移是質量損失的根源。H.264利用整數4(4空域變換解決了這一問題——這種變換是DCT的近似值。4(4的小區塊還有助於減少阻塞與振鈴失真。
量化與變換系數掃描:變換系數通過標量量化方式得到量化,不產生加大的死區。與之前的標準類似,每個MB都可選擇不同的量化步長,不過步長以大約12.5%的複合速率增加,而不是固定遞增。同時,更精細的量化步長還可以用於色度成分,尤其是在粗劣量化光度係數的情況下。
熵編碼:與根據所涉及的資料型別提供多個靜態VLC表的先前標準不同,H.264針對變換系數採用上下文自適應VLC,同時針對所有其他符號採用統一的VLC (UniversalVLC)方法。主類還支援新的上下文自適應二進位制算術編碼器 (CABAC)。CAVLC優於以前的VLC實施,不過成本卻比VLC高。
CABAC利用編碼器和譯碼器的機率模型來處理所有語法元素 (syntax elements),包括:變換系數和運動向量。為了提高算術編碼的編碼效率,基本概率模型通過一種稱為上下文建模的方法對視訊幀內不斷變換的統計進行適應。上下文建模分析提供編碼符號的條件概率估計值。只要利用適當的上下文模型,就能根據待編碼符號周圍的已編碼符號,在不同的概率模型間進行切換,進而充份利用符號間的冗餘性。每個語法元素都可以保持不同的模型(例如,運動向量和變換系數具有不同的模型)。相較於VLC熵編碼方法 (UVLC/CAVLC),CABAC 能多節省10%bit速率。
加權預測:它利用前向和後向預測的加權總和建立對雙向內插巨集模組的預測,這樣可以提高場景變化時的編碼效率,尤其是在衰落情況下。
保真度範圍擴充套件:2004年7月,H.264標準增加了稱為保真度範圍擴充套件 (FRExt) [11]的新修訂。這次擴充套件在H.264中添加了一整套工具,而且允許採用附加的色域、視訊格式和位深度。另外還增加了對無損幀間編碼與立體顯示視訊的支援。FRExt修訂版在H.264中引入了4種新類,即:
•High Profile (HP):用於標準 4:2:0色度取樣,每分量8位彩色。此類引入了新的工具—— 隨後詳述。
•High 10 Profile (Hi10P):用於更高清晰度視訊顯示的標準 4:2:0 色度取樣,10位彩色。
•High 4:2:2 10 bit color profile (H422P):用於源編輯功能。
•High 4:4:4 12 bit color profile (H444P):最高品質的源編輯與色彩保真度,支援視訊區域的無損編碼以及與新的整數色域變換(從RGB到YUV及黑色)。
在新的應用領域中,H.264 HP對廣播與DVD尤為有利。某些試驗顯示出H.264 HP的效能比MPEG2 提高了3倍。下面介紹H.264 HP中引入的主要附加工具。
自適應殘差塊大小與整數8(8變換:用於變換編碼的殘差塊可以在8(8與4(4之間切換。引入了用於8(8塊的新16位整數變換。較小的塊仍然可以採用以前的4(4變換。
8(8亮度幀內預測:增加了8種模式,除之前的16(16和4(4塊以外,使亮度內部巨集模組還能夠對8(8塊進行幀內預測。
量化加權:用於量化8(8變換系數的新量化加權矩陣。
單色:支援黑/白視訊編碼。
AnyChat採用國際領先的視訊編碼標準H.264(MPEG-4 part 10 AVC /H.264)編碼,H.264/AVC 在壓縮效率方面有著特殊的表現,一般情況下達到 MPEG-2 及 MPEG-4 簡化類壓縮效率的大約 2 倍。H.264具有許多與舊標準不同的新功能,它們一起實現了編碼效率的提高。特別是在幀內預測與編碼、幀間預測與編碼、可變向量塊大小、四分之一畫素運動估計、多參考幀預測、自適應環路去塊濾波器、整數變換、量化與變換系數掃描、熵編碼、加權預測等實現上都有其獨特的考慮。
佰銳科技採用先進去馬賽克技術,保障在視訊通訊過程中不出現花屏、馬賽克等現象。
AVS
2002 年,中國資訊產業部成立的音視訊技術標準 (AVS)工作組宣佈準備針對移動多媒體、廣播、DVD等應用編寫一份國家標準。該視訊標準稱為AVS [14],由兩個相關部分組成針對移動視訊應用的AVS-M和針對廣播與DVD的AVS1.0。AVS標準與H.264相似。
AVS1.0同時支援隔行和逐行掃描模式。AVS中P幀可以利用2幀的前向參考幀,同時允許B幀採用前後各一個幀。在隔行模式下,4個場可以用作參考。可以僅在幀級執行隔行模式中的幀/場編碼,這一點與H.264不同,其中允許此選項的MB級自適應。AVS具有與H.264相似的環路濾波器,可以在幀級關閉。另外,B幀還無需環路濾波器。幀內預測是以8(8塊為單位進行。MC允許對亮度塊進行1/4象素補償。ME的塊大小可以是16(16、16(8、8(16或8(8。變換方式是基於16位的8(8整數變換(與WMV9相似)。VLC是基於上下文自適應2D執行/級別編碼。採用4個不同的Exp-Golomb編碼。用於每個已量化係數的編碼自適應到相同8(8塊中前面的符號。由於Exp-Golomb表是引數化的表,因此表較小。用於逐行視訊序列的AVS 1.0的視訊質量在相同位元率時稍遜於H.264主類。
AVS-M主要針對移動視訊應用,與H.264基本規範存在交叉。它僅支援逐行視訊、I與P幀,不支援B幀。主要AVS-M編碼工具包括基於4(4塊的幀內預測、1/4象素運動補償、整數變換與量化、上下文自適應VLC以及高度簡化的環路濾波器。與H.264基本規範相似AVS-M中的運動向量塊大小降至4(4,因此MB可擁有多達16個運動向量。採用多幀預測,但僅支援2個參考幀。此外,AVS-M中還定義了H.264 HRD/SEI訊息的子集。AVS-M的編碼頻率約為0.3dB,在相同設定下稍遜於H.264基本規範,而解碼器的複雜性卻降低了大約20%。
H.264和AVS的背景
H.264/MPEG-4AVC是ITU-T的VCG(Video Coding Experts Group)和ISO/IEC的MPEG(Moving Picture Experts Group)聯合開發的新一代視訊編碼標準。應用範圍包括可視電話、視訊會議等。H.264的主要特色就是極大得提高了壓縮率,是MPEG-2及MPEG-4壓縮效率的一倍以上。H.264核心技術與之前標準相同,仍採用基於預測變換的混合編碼框架,但是在細節的實現上有很大不同,就是細節上的改進導致壓縮效率極大得提高。而且新一代視訊編碼標準H.264具有良好的網路適應性和容錯等特點。
AVS的誕生可以說是一個歷史的機遇,面對H.264以及MPEG-2等標準高額的專利費,我國數字視訊產業面臨嚴重挑戰。加上我國致力於提高國內數字音視訊產業的核心競爭力,由國家資訊產業部科學技術司於2006年6月批准成立了“數字音視訊編解碼技術標準工作組”,聯合國內從事數字音視訊編解碼技術研發的科研機構和企業,針對我國音視訊產業的需求,提出了我國自主智慧財產權的信源編碼標準―――《資訊科技 先進音視訊編碼》系列標準,簡稱AVS(audio video coding standard).自主的AVS標準在技術和效能上處於國際先進水平,如果抓住這次機遇,我國在技術-專利-標準-晶片-系統-產業這個產業鏈上,就有可能具有全面的主動權。
H.264和AVS核心技術分析及對比
H.264和以前的標準一樣,還是採用的混合編碼的框架,AVS視訊標準採用了與H.264類似的技術框架,包括變換、量化、熵編碼、幀內預測、幀間預測、環路濾波等模組。他們核心技術的不同包括以下幾點:
一、變換和量化
H.264對殘差資料採用基於塊的變換編碼,去除原始影象的空間冗餘,使影象能力集中在小部分系數上,直流係數值一般來說是最大的,這樣可以提高壓縮比、增強抗干擾能力。先前標準一般採用DCT變換,這種變換的缺點是會出現失配現象,原始資料經過變換和反變換恢復後會有一個差值,由於是實數運算計算量也比較大。H.264採用的是基於4×4塊的整數變換。
AVS採用8×8的整數變換,可以在16位處理器上無失配地實現。對高解析度的視訊影象去相關性要比4×4變換有效,採用了64級量化,可以適應不同的應用和業務對碼流和質量的要求。
二、幀內預測
H.264和AVS技術都採用幀內預測的方式,用相鄰的畫素預測當前塊,採用代表空間域紋理的多種預測模式。H.264的亮度預測有4×4塊和16×16塊2種預測方式,對於4×4的塊:從-135度到+22.5度方向加上一個直流預測一共是9種預測方向;對於16×16塊:有4種預測方向。色度預測是8×8塊,有4種預測模式,類似於幀內16×16預測的4種模式,其中DC為模式0、水平為模式1、垂直為模式2、平面為模式3。
三、幀間預測
H.264幀間預測是利用以編碼視訊幀和基於塊的運動補償的預測模式,與以往標準幀間預測的區別在於塊尺寸範圍更廣、亞畫素運動向量的使用和多參考幀的運用。
H.264有16×16、16×8、8×16、8×8、8×4、4×8和4×4一共8種巨集塊及子巨集塊劃分,而AVS只有16×16、16×8、8×16和8×8一共4種巨集塊劃分方式。
H.264支援使用多個不同的參考幀對幀間巨集塊和片進行預測,AVS中P幀可以利用至多2幀的前向參考幀,B幀採用前後各一個參考幀。
四、熵編碼
H.264制定了基於資訊量的熵編碼效率,一種是對所有的待編碼的符號採用統一的可變長編碼(UVLC),另一種是採用基於內容的自適應二進位制算術編碼(CABAC, Context-Adaptive Binary Arithmetic Coding),大大減少了塊編碼相關性冗餘,提高了編碼效率。UVLC計算複雜度較低,主要針對對編碼時間很嚴格的應用,缺點就是效率低,位元速率較高。CABAC是一種效率很高的熵編碼方法,其編碼效率比UVLC編碼高50%。
AVS熵編碼採用自適應變長編碼技術。在AVS熵編碼過程中,所有的語法元素和殘差資料都是以指數哥倫布碼的形式對映成二進位制位元流。
採用指數哥倫布碼的優勢在於:一方面,它的硬體複雜度比較低,可以根據閉合公式解析碼子,無需查表;另一方面,它可以根據編碼元素的概率分佈靈活地確定以K階指數哥倫布碼編碼,如果K選得恰當,則編碼效率可以逼近資訊熵。
對預測殘差的塊變換系數,經掃描形成(level、run)對串,level、run不是獨立事件,而存在著很強的相關性,在AVS中level、run採用二維聯合編碼,並根據當前level、run的不同概率分佈趨勢,自適應改變指數哥倫布碼的階數。
另外,在AVS中沒有SI、SP幀。可以這樣說,AVS是在H.264的基礎上發展起來的,吸收了H.264的精華,但為了繞過專利的困擾,又不得不放棄H.264的一些核心演算法。換來的代價就是,編碼效率稍微降低一點的情況下,複雜度極大得降低了。
AVS是我國自主智慧財產權的標準,現在還沒有大規模使用,處在起步階段。大多數企業處於觀望狀態,沒有資金大量投入,面臨重重困難,但是它的廣闊前景是不容忽視的,又有國家的大力支援,一定會發展的更加完美。
相關推薦
即時通訊中視訊編碼技術H.264與AVS視訊標準核心技術比較
視訊編碼技術在過去幾年最重要的發展之一是由ITU和ISO/IEC的聯合視訊小組 (JVT)開發了H.264/MPEG-4 AVC[8]標準。在發展過程中,業界為這種新標準取了許多不同的名稱。ITU在1997年開始利用重要的新編碼工具處理H.26L(長期),結果令人鼓舞,於是
即時通訊音視訊開發(五):認識主流視訊編碼技術H.264
前言 即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。 系列文章 《即時通訊音視訊開發(三):視訊編解碼之編碼基礎》 《即時通訊音視訊
【H.264/AVC視頻編解碼技術具體解釋】十三、熵編碼算法(3):CAVLC原理
統計 視頻編解碼 高效 png h264 轉化 頻率 遊程編碼 而且 《H.264/AVC視頻編解碼技術具體解釋》視頻教程已經在“CSDN學院”上線。視頻中詳述了H.264的背景、標準協議和實現,並通過一個實戰project的形式對H.264的標準進行解
最簡單的基於FFMPEG的視訊編碼器(YUV編碼為H.264)
=====================================================最簡單的基於FFmpeg的視訊編碼器文章列表:=====================================================本文介紹一個最簡單的
H.264/ACC音視訊編碼流的RTP/RTSP傳輸實現(1)
目標: 實現一個用於H.264/ACC音視訊編碼流的RTP/RTSP傳輸的簡單伺服器,主要通過此過程學習基於RTP的NAL、ADTS碼流封裝技術和基於RTSP的視訊互動控制技術。完整系統應該包括伺服器和客戶端兩個部分,其中伺服器負責接收客戶端請求、封包以及
libx264編碼---YUV影象資料編碼為h.264碼流
編譯環境:ubuntu12.04 目標平臺:ARM Cortex A9 交叉編譯器:arm-none-linux-gnueabi-gcc 4.4.1 基本步驟: 一、移植x264庫到ARM板,請看上一篇博文移植x264編碼庫 二、測試:
海思3518EV200 SDK中獲取和儲存H.264碼流詳解
1 /****************************************** 2 step 2: Start to get streams of each channel. 3 ************************************
android平臺下基於ffmpeg採集Camera資料編碼成H.264推流到RTMP伺服器
音視訊實踐學習 android全平臺編譯ffmpeg以及x264與fdk-aac實踐 ubuntu下使用nginx和nginx-rtmp-module配置直播推流伺服器 android全平臺編譯ffmpeg合併為單個庫實踐 android-studio使用c
Android音視訊-視訊編解碼(H.264視訊硬編硬解)
在前面接觸了音訊的編解碼,學習了通過MediaCodec來進行硬編碼。把AudioRecord 採集的到的PCM音訊資料編碼壓縮為AAC格式的音訊資料,然後解碼為PCM通過AudioTrack來播放。參考Demo連結 前面我們可以很形象的瞭解音訊資料,然後如何
即時通訊中伺服器離線訊息儲存優化
隨著即時通訊技術的快速發展,即時通訊已經成為網路使用者生活中的一 部分;同時,在企業級的即時通訊中,即時訊息已不再是簡單的閒聊,上級 對下級的訊息可能意味著一項任務的安排。所以即時訊息不容輕易丟失,有 沒有真正送達需要有反饋。 目前的即時通訊系統一般都
即時通訊中 資料離線接收的方法、客戶端及系統
網路即時通訊(IM)工具發展到今天,已成為接收方普遍使用的通訊工具,逐漸成為網路接收方日常生活中必不可少的一部分。即時通 信工具不但在網路接收方的工作中使用,同樣也大量使用在網路接收 方的業餘生活中,接收方通過網路即時通訊工具可以實現與聯絡人及時有效的溝通。
FFmpeg獲取攝像頭資料並編碼為H.264
ffmpeg的視音訊編解碼功能非常強大,可以說包括了所有的視音訊編碼標準。在這裡我主要是呼叫ffmpeg工程裡的ffmpeg.exe檔案,呼叫之後,會自動完成編碼的操作。內部編碼的具體流程,以後再慢慢的看。1.介紹 先介紹下ffmpeg裡面的三個ex
H.264與x264的區別
1、H.264是MPEG4的第十部分,是一個標準。 對頭,國際上兩個視訊專家組(VCEG和MPEG)合作提出的標準,兩個專家組各有各的叫法,所以既叫H.264,也叫AVC。 2、x264是一個編碼器,他參照的標準是H.264。 對頭,H.264是需要付費的
R語言機器學習與大資料視覺化暨Python文字挖掘與自然語言處理核心技術研修
中國通訊工業協會通訊和資訊科技創新人才培養工程專案辦公室通人辦〔2017〕 第45號“R語言機器
【H.264/AVC視訊編解碼技術詳解】二十三、幀間預測編碼(1):幀間預測編碼的基本原理
《H.264/AVC視訊編解碼技術詳解》視訊教程已經在“CSDN學院”上線,視訊中詳述了H.264的背景、標準協議和實現,並通過一個實戰工程的形式對H.264的標準進行解析和實現,歡迎觀看! “紙上得來終覺淺,絕知此事要躬行”,只有自己按照標準文件以程式碼的形式操作一遍,才能對視訊壓
【H.264/AVC視訊編解碼技術詳解】二十二、熵編碼(7):語法元素的CABAC解析
《H.264/AVC視訊編解碼技術詳解》視訊教程已經在“CSDN學院”上線,視訊中詳述了H.264的背景、標準協議和實現,並通過一個實戰工程的形式對H.264的標準進行解析和實現,歡迎觀看! “紙上得來終覺淺,絕知此事要躬行”,只有自己按照標準文件以程式碼的形式操作一遍,才能對視訊壓
【H.264/AVC視訊編解碼技術詳解】十五、H.264的變換編碼(二):H.264整數變換和量化的實現
《H.264/AVC視訊編解碼技術詳解》視訊教程已經在“CSDN學院”上線,視訊中詳述了H.264的背景、標準協議和實現,並通過一個實戰工程的形式對H.264的標準進行解析和實現,歡迎觀看! “紙上得來終覺淺,絕知此事要躬行”,只有自己按照標準文件以程式碼
【H.264/AVC視訊編解碼技術詳解】十三、熵編碼演算法(4):H.264使用CAVLC解析巨集塊的殘差資料
《H.264/AVC視訊編解碼技術詳解》視訊教程已經在“CSDN學院”上線,視訊中詳述了H.264的背景、標準協議和實現,並通過一個實戰工程的形式對H.264的標準進行解析和實現,歡迎觀看! “紙上得來終覺淺,絕知此事要躬行”,只有自己按照標準文件以程式碼
【H.264/AVC視訊編解碼技術詳解】一. 視訊資訊與壓縮編碼
《H.264/AVC視訊編解碼技術詳解》視訊教程已經在“CSDN學院”上線,視訊中詳述了H.264的背景、標準協議和實現,並通過一個實戰工程的形式對H.264的標準進行解析和實現,歡迎觀看! “紙上得來終覺淺,絕知此事要躬行”,只有自己按照標準文件以程式碼的形式
【H.264/AVC視訊編解碼技術詳解】十三、熵編碼演算法(3):CAVLC原理
《H.264/AVC視訊編解碼技術詳解》視訊教程已經在“CSDN學院”上線,視訊中詳述了H.264的背景、標準協議和實現,並通過一個實戰工程的形式對H.264的標準進行解析和實現,歡迎觀看! “紙上得來終覺淺,絕知此事要躬行”,只有自己按照標準文件以程式碼