定義
H.263是國際電聯
ITU-T的一個標準草案,是為低碼流通信而設計的。但實際上這個標準可用在很寬的碼流範圍,而非只用於低碼流套用,它在許多套用中可以認為被用於取代
H.261。H.263的
編碼算法與H.261一樣,但做了一些改善和改變,以提高性能和糾錯能力。
H.263標準在低
碼率下能夠提供比H.261更好的圖像效果,兩者的區別有:
2、
數據流層次結構的某些部分在H.263中是可選的,使得編解碼可以配置成更低的數據率或更好的糾錯能力;
3、H.263包含四個可協商的選項以改善性能;
4、H.263採用無限制的運動
向量以及基於語法的算術
編碼;
5、採用事先預測和與
MPEG中的P-B幀一樣的幀預測方法;
6、H.263支持5種
解析度,即除了支持H.261中所支持的
QCIF和
CIF外,還支持
SQCIF、4CIF和16CIF,SQCIF相當於QCIF一半的解析度,而4CIF和16CIF分別為CIF的4倍和16倍。
1998年IUT-T推出的H.263+是H.263建議的第2版,H.263+標準在保證原H.263標準核心句法和語義不變的基礎上,提供了12個新的可協商模式和其他特徵,從而保證了可以在各種信道(尤其是無線信道)不同的品質保證QoS(Quality of Service,服務質量)需求下進行可靠的通信,且只需要用H.261一半的碼率就可以獲得同H.261標準相當的解碼圖像質量。
與H.263標準相比,H.263+標準主要有以下幾個方面的改進。
提高了壓縮效率:增加幀內編碼模式;增強PB幀模式,改進H.263的不足,增強了幀間預測的效果。
增強了網路傳輸的適應性:增加了時間分級、信噪比分級、空間分級,對在噪聲信道和大量丟包的網路中傳輸視頻信號,增強了抗錯能力。參考幀選擇模式、片結構模式增強了視頻傳輸的抗誤碼能力。
支持更大範圍的圖像格式:自定義的圖像尺寸,使之可以處理基於視窗的計算機圖像、更高幀頻的圖像序列和寬屏圖像。
H.263++標準在H.263+基礎上增加了三個選項,主要是為了增強碼流在惡劣信道上的抗誤碼能力和提高編碼效率。
增強參考幀選擇模式:能夠提供增強的編碼效率和信道錯誤再生能力,尤其是在丟包的網路環境下。
增加數據分片選項:提供增強型的抗誤碼能力,尤其是在傳輸過程中本地數據被破壞的情況下。通過分離視頻碼流中的DCT的係數頭和運動矢量數據,採用可逆編碼方式保護運動矢量。
在H.263+碼流中增加補充信息,保證增強型的反向兼容性。
基本概念
介紹
H.263標準是由國際電信聯盟(ITU)發布的,對
視頻會議和視頻電信套用提供視頻壓縮(
編碼).在這個指南中,我們會介紹關於H.263的概念和特徵,並描述一些實現的實例.
2. 套用
視頻會議和視頻電信有很廣泛的程式套用,包括:
桌面環境或室內環境下的
會議系統通過Internet或電話線路實現的視頻通信電子監視和操作運程醫療(在運程進行醫學諮詢和診斷) 基於計算機的培訓與教育 在每種套用中,視頻信息(也許與音頻信息一塊兒)被通過電信通訊聯接傳輸,包括網路,電話線路,ISDN和廣播的形式.視頻有寬頻的特徵 (比如說每秒很多位元組)這些,這些套用就需要對視頻進行壓縮或是進行
編碼來在傳輸之前降低頻寬值.
3. 視頻編解碼
在源端視頻信息幀被捕捉並被通過視頻
編碼器進行編碼。壓縮的注被通過網路或是電信聯接傳輸走,並在
視頻解碼端進行解碼。解碼過的幀就可以被顯示了。
4. 視頻編解碼器
現在已經有很多的
視頻編碼的標準,它們每個都是為了特定的套用而設定:比如說,JPEG是為靜態圖片設定的,MPEG2是為數位電視信號設定的 ,H.261是為ISDN
視頻會議系統設定。H.263是特別面向低
碼率的
視頻編碼而設定的(通常只有20-30kbps或更高) H.263標準指明了對於視頻編碼和解碼器的需求。它不描述
編碼器和解碼器自身:取而代之的是,它指明了編碼流的格式與內容。一個典型的解碼器和
編碼器被在這時描述出不。我們跳過過了很多的H.263的細節,比如說語法和
編碼模式。
4.1 H.263編碼器
運動估計和補償:降低頻寬的第一步就是從當前幀中減去之前傳輸的幀,這樣只有差值或叫剩餘值才被編碼並傳輸。這就意味著幀中沒有變化的內容就不被
編碼。我們通過試圖對於前而幀的內容的移動進行估計並補償這個運動值來實現更高的壓縮比。
運動估計模組通過在當前幀中和在前些幀中周圍的區域比較每個16*16的
像素塊(宏塊),並試圖找到一個匹配的幀。匹配的區域從當前的宏塊位置中由
運動補償模組刪除掉。如果
運動估計和補償過程很有效率的話,剩餘的宏塊應該只包含很少量的信息。
離散餘弦變換(DCT) :DCT把一塊
像素值(或剩餘幀值)變換到一系列“頻域"係數中。這就好像利用快速傅立葉變換(FFT)把一個信號從時域轉變到頻域中一樣的。 DCT在一個二維的
像素塊上(而不是一個一維的信號)進行操作,它尤其長於把塊中的能量壓縮到一系列的係數中去。這就意味著,通過很少量的DCT係數,我們就可以重建一個原始
像素塊的拷貝。
量化:對於一個典型的
像素塊來說,用DCT得到的大多數的係數都是接近於0的。量化器模組降低了每個係數的準確性,這樣近似於0的值就被置 0,而且只有一些非0值留下來了。實際操作中,我們通過整數級因子來劃分係數值,並截去結果。很重要的一點是我們在量化過程中“扔掉”了一些信息。
熵編碼:一個熵編碼器(比如說Huffman編碼器)把常出現的值用更短的二進制碼來表示,並且把不常出現的值用長一些的二進制碼進行表示。 H.263中的
熵編碼是基於這個技術的,並被用來壓縮量化後的DCT係數的。這個結果是一個序列的變長二進制。這些碼組合起來用來同步和控制信息(比如重建
運動補償的
參考幀時需要的運動
向量),用以進成
編碼的H.263碼流。 幀
存儲當前幀必須被
存儲掉,這樣,它才可以在下一幀
編碼的時候被用做
參考幀。我們不是簡單地把當前存存儲起來,而是把重標量化的量化因子,用逆DCT操作後的反變換以及用來重建一幀的加到
運動補償的參考塊信息存放在存儲區中。這就確保了在
編碼器端幀存儲區中的內容與在解碼器的存儲區中的內容是相同的。當下一幀被
編碼的時候,
運動估計使用幀存儲區中的內容來決定
運動補償的最佳匹配區域。
4.2 H.263解碼器
熵解碼:為了解壓出係數值和運動
向量信息,組成H.263碼流的變長的
編碼被進行解碼 重調節這是量化過程的反過程:係數被乘以一個在編碼端量化器同樣的標量因子.然而,因為量化器丟棄了小的因子,重調節之後的係數值不再同原始的係數值相等. 逆DCT IDCT是DCT過程的反變換.它構建了一塊採樣值:它們對應於編碼器端
運動補償生成的差值. 運動補償 差值被加到前一幀來重建區域信息.運動向量信息用來選擇正確的區域(在編碼器中使用相同的
參考幀).結果是一個原始幀的重建:注意它將與原始幀不同,因為量化過程是有損的.也就是說
圖像的質量會比原始幀差一些.重建的幀被放於一個幀存儲區,而且它被用於對下一個接收到的幀進行運動補償.
5. 實現問題
在實時情形下開發一個可以有效工作的
視頻編碼和編碼器時,有很多問題是要被說明的,包括:
碼率控制 實際的通信
信道對於每秒鐘它們可以處理的能力有限度.在很多種情形下,碼率是一個定值(比如說POTS,IDSN等) H.263編碼器的基礎是對於每個編碼的幀生成一個變的碼值.如果
運動估計/補償過程工作正常的話,那么就有更少的非0係數被用來編碼. 然而,如果運動估計工作不那么正常的話(比如說當視頻場景中包括複雜的運動時),就會有很多的非0係數來被編碼.這樣編碼的值會增加. 為了映射這個可變的碼率值到一個CBR(固定碼率值)信道,編碼器必須進行碼率控制.編碼器計算編碼器輸出的碼率.如果它太高的話,它會通過增加標量化因子來提高
壓縮率:這會導致更高的壓縮比(碼率會更低),但也同時在解碼器給出了更低的畫質.如果碼率下降的話,編碼 器就通過降低量化器的標量化因子來進行壓縮.這樣會在解碼端造成更高的友率和更佳的畫質. 同步 編碼器和解碼器必須是同步的,特別是如果視頻信號與
音頻信號一起的話.H.263碼流包含了一定數目的"頭"或叫標記:這些是特殊的記號用來標記解碼器在當前幀的所處的位置.如果解碼器失掉了同步,那么它就向前掃描下一個標記來重新同步並恢復解碼.應該注意到甚至是很小的同步上的損失都會造成很嚴重的解碼質量的問題.所以在這樣一個充滿了"嗓音"的傳輸環境中設計一個視頻編碼系統的時候必須非常小心. 音頻和復用 H.263標準只描述了視頻編碼.在很多實際問題中,音頻數據必須被壓縮,傳輸和同步到視頻信號中去.同步,復用和協定問題被像H.320 (基於ISDN的
視頻會議),H.324(基於POTS的視頻電信)和H.323(LAN或基於IP的視頻會議)這樣的標準解決掉了.H.263提供了這些標準的視頻編碼方法.音頻編碼被很多標準所支持,包括G.723.1等.另外,相關的標準包含了像復用(H.223)和信號機制(H.245)
5.2 軟體實現
像
運動估計,變長編/解碼和DCT這樣的函式需要很大的處理能力來實現.然而,最近的上理器的發展,使得在Pentium級處理器實時地編解 H.263
視頻變可可能. 一個軟體實現必須是高度最佳化的,來達到有效的
視頻質量(比如說,每秒多於10幀,352*288
像素每幀).這包括了一系列的操作比如說在計算密集處使用快速算法,最小化移動或拷貝操作並解開循環.在一些情況下,彙編代碼會進一步加速運行(比如說使用Inter的MMX指令集) 5.3 硬體實現 對於高清晰的視頻來說或當強大的處理器不存在的時候,硬體實現就是這個時候的解決方案了.一個典型的CODEC會對計算密集的部分使用專門的邏輯來進行處理(比如說運動估計/補償,DCT,量化器和
熵編碼),它們使用控制模組來定製事件順序,並記錄編碼解碼的參數.一個可程式的控制器是更佳的,因為很多的編碼參數(比如說
碼率控制算法)可以通過適應不同的環境來進行修改或是調整.最近,一個 Intellectual Property中心對H.263提出了一個實現.一個邏輯核心是VHDL或者Verilog的設計,它可以與其他的功能塊想組合而成為一個 ASIC或FPGA的一部分.
Annex A - Inverse transform accuracy spe
cification
Annex B - Hypothetical Reference Decoder
Annex C - Considerations for Multipoint
Annex D - Unrestricted Motion Vector mode
Annex E - Syntax-based Arithmetic Coding mode
Annex F - Advanced Prediction mode
Annex G - PB-frames mode
Annex H - Forward Error Correction for coded video signal
版本
H.263v2(通常也叫做
H.263+或者
1998年版H.263)是
ITU-T H.263
視頻編碼標準第二版的非正式名稱。 它保持了原先版本H.263的所有技術,但是通過增加了幾個附錄顯著的提高了
編碼效率並提供了其它的一些能力,例如增強了抵抗傳輸
信道的數據丟失的能力(Robustness)。
H.263+ 項目於
1998年2月在ITU正式通過。接下來一個被稱為"H.263++" 的項目被隨即推出,在H.263+的基礎上增加了更多的新的功能。H.263++(亦稱H.263v3或2000版H.263)於
2000年底完成。
1998年版的H.263新增如下的附加(annexes):
Annex I - Advanced INTRA Coding mode
Annex J - Deblocking Filter mode
Annex K - Slice Structured mode
Annex L - Supplemental Enhancement Information Spe
cification
Annex M - Improved PB-frames mode
Annex N - Reference Picture Selection mode
Annex O - Temporal, SNR, and Spatial Scalability mode
Annex P - Reference picture resampling
Annex Q - Reduced-Resolution Update mode (see implementors' guide correction as noted below)
Annex R - Independent Segment Decoding mode
Annex S - Alternative INTER VLC mode
Annex T - Modified Quantization mode
Annex X - Profiles and levels definition