1.
H.264是最新的視頻壓縮標準,它也稱為MPEG-4Part10或AVC(高級視頻編碼)。據(jù)預測,在未來幾年內(nèi)H.264將成為行業(yè)首選的視頻標準
H.264是一個需要許可證才能使用的開放標準,可支持最當今市場上最高效的視頻壓縮技術。在不影響圖像質(zhì)量的情況下,與采用M-JPEG和MPEG-4Part2標準相比,H.264編碼器可使數(shù)字視頻文件的大小分別減少80%和50%以上。這意味著視頻文件所需的網(wǎng)絡帶寬和存儲空間將大大降低;蛘邚牧硪粋角度來說,在某一特定比特率下,視頻圖像質(zhì)量將得到顯著提高。
H.264由電信和IT行業(yè)的標準化組織聯(lián)合制定,與先前標準相比,H.264有望得到更廣泛的應用。
H.264已經(jīng)應用于手機和數(shù)字視頻播放器等新一代電子產(chǎn)品中,并且迅速獲得廣大最終用戶的青睞。在線視頻存儲公司和電信公司等服務提供商也開始采用H.264標準。
在視頻監(jiān)控行業(yè),H.264將很可能以最快速度應用于那些需要高幀速和高分辨率的監(jiān)控場所,例如高速公路、機場和娛樂場所等。對于這些監(jiān)控場所而言,使用30/25fps(NTSC/PAL)的幀速已經(jīng)成為一種通行的標準。然而,由于H.264能夠減少帶寬和存儲需求,具有顯著的經(jīng)濟性,因此可以幫助企業(yè)最大限度節(jié)省成本。
此外,由于H.264這種極其高效的壓縮技術能夠在不影響圖像質(zhì)量的前提下,對大文件進行大比例壓縮并降低比特率,因此有望提高百萬像素攝像機的普及速度。然而,事物都有其兩面性。雖然H.264能夠節(jié)省網(wǎng)絡帶寬和存儲成本,然而它卻對網(wǎng)絡攝像機和顯示終端提出了更高的性能要求。
H.264是ITU-T的視頻編碼專家組(VCEG)和ISO/IEC運動圖像專家組(MPEG)聯(lián)合制定的新一代視頻壓縮標準。ITU-T是一個代表國際電信聯(lián)盟協(xié)調(diào)制定電信標準的部門。ISO是指國際標準化組織。IEC是指國際電工委員會,負責制定所有電子、電氣和相關技術的標準。H.264是ITU-T所使用的名稱,而ISO/IEC將其命名為MPEG-4Part10/AVC,因為它代表的是MPEG-4系列標準中的一個新標準。MPEG-4系列標準包括了MPEG-4Part2等標準,MPEG-4Part2是一個應用于基于IP的視頻編碼器和網(wǎng)絡攝像機的標準。
為了解決先前視頻壓縮標準中存在的不足,H.264的目標是支持:
>高效壓縮,在某一特定的視頻質(zhì)量下,與采用任何其它視頻標準相比,可以使比特率平均降低50%。
>更強大的容錯能力,能夠糾正各種網(wǎng)絡的傳輸錯誤
>低時延功能,并能夠在更高時延的情況下提供更高質(zhì)量的圖像
>通過簡單的句法規(guī)范簡化實施
>精確匹配解碼,嚴格規(guī)定了編碼器和解碼器如何進行數(shù)值計算,以避免錯誤累積
此外,H.264還能夠靈活地支持有著不同比特率要求的各種監(jiān)控應用。例如,在娛樂視頻應用(包括廣播、衛(wèi)星電視、有線電視和DVD)中,H.264能夠以高時延實現(xiàn)1-10Mbit/秒的性能。而對于電信服務來說,H.264能夠以低時延實現(xiàn)低于1Mbit/秒的比特率。
視頻壓縮通過減少和去除冗余視頻數(shù)據(jù)的方式,達到有效發(fā)送和存儲數(shù)字視頻文件的目的。在壓縮過程中,需要應用壓縮算法對源視頻進行壓縮以創(chuàng)建壓縮文件,以便進行傳輸和存儲。要想播放壓縮文件,則需要應用相反的解壓縮算法對視頻進行還原,還原后的視頻內(nèi)容與原始的源視頻內(nèi)容幾乎完全相同。壓縮、發(fā)送、解壓縮和顯示文件所需的時間稱為延時。在相同處理能力下,壓縮算法越高級,延時就越長。
視頻編解碼器(編碼器/解碼器)是指兩個協(xié)同運行的壓縮-解壓算法。使用不同標準的視頻編解碼器通常彼此之間互不兼容;也就是說,使用一種標準進行壓縮的視頻內(nèi)容無法使用另外一種標準進行解壓縮。例如,MPEG-4Part2解碼器就不能與H.264編碼器協(xié)同運行。這是因為一種算法無法正確地對另外一個算法的輸出信號進行解碼,然而我們可以在同一軟件或硬件中使用多種不同的算法,以支持對多種格式的文件進行壓縮。
由于不同的視頻壓縮標準會使用不同的方法來減少數(shù)據(jù)量,因此壓縮結果在比特率、質(zhì)量和延時方面也各不相同。
此外,由于編碼器的設計者可能會選擇使用某個標準所定義的不同工具集,因此,即使是使用相同壓縮標準的編碼器之間,其壓縮結果也可能會存在差異。不過,只要編碼器的輸出信號符合標準的格式以及解碼器的要求,就可以采用不同的實施方式。這是非常有利的,因為不同的實施方式可實現(xiàn)不同的目標,滿足不同的預算要求。對用于管理光介質(zhì)存儲的非實時專業(yè)軟件編碼器來說,應該能夠比用于視頻會議的集成在手持設備中的實時硬件編碼器提供質(zhì)量更高的編碼視頻。因此,即使是某個指定的標準也無法保證提供指定的比特率或質(zhì)量。而且,如果不事先確定實施方式,一個標準就無法與其它標準進行正確的性能對比,甚至也無法與同一標準的其它實施方式進行正確的性能對比。
與編碼器不同,解碼器必須實施某個標準的所有必需部分,才能對符合標準的比特流進行解碼。這是因為標準中明確規(guī)定了解壓縮算法應如何對壓縮視頻的每個比特進行還原。
下圖是在相同圖像質(zhì)量水平下,采用下列視頻標準的比特率對比:M-JPEG,MPEG-4Part2(無運動補償)、MPEG-4Part2(有運動補償)和H.264(基準類)。
圖1.對于視頻序列樣本來說,使用H.264編碼器能夠比使用有運動補償?shù)腗PEG-4編碼器降低50%的比特率(bps)。在沒有運動補償?shù)那闆r下,H.264編碼器的效率至少比MPEG-4編碼器高3倍,比M-JPEG編碼器高6倍。
上圖文字:
Doorway scene | 入口場景 |
H.264 (Baseline profile) | H.264(基線類) |
MPEG-4 Part 2 (With motion compensation) | MPEG-4 Part 2(有運動補償) |
MPEG-4 Part 2 (No motion compensation) | MPEG-4 Part 2(無運動補償) |
Motion JPEG | M-JPEG |
Bit rate (kbit/s) | 比特率(kbit/秒) |
Time (s) | 時間(秒) |
參與制定H.264標準的聯(lián)合組織致力于創(chuàng)建一個簡單明了的解決方案,最大限度地限制選項和特性的數(shù)量。和其它視頻標準一樣,H.264標準的一個重要方面是通過類別(算法特性集)和等級(性能等級)中提供的功能,以最佳的方式支持常見應用和通用格式。
H.264有7個類別,每個類別都針對某一類特定的應用。此外,每個類別都定義了編碼器能夠使用哪些特性集,并限制了解碼器在實施方面的復雜性。
網(wǎng)絡攝像機和視頻編碼器最有可能使用的是基準類別,此類別主要針對計算資源有限的應用。對于嵌入在網(wǎng)絡視頻產(chǎn)品中的實時編碼器來說,在特定的可用性能下,基準類別最為適用。此類別能夠實現(xiàn)低延時,這對監(jiān)控視頻來說是一個很重要的要求,而且對于支持PTZ網(wǎng)絡攝像機實現(xiàn)實時的平移/傾斜/縮放(PTZ)控制來說尤為重要。
H.264分為11個功能等級,對性能、帶寬和內(nèi)存需求進行了限制。每個等級都規(guī)定了從QCIF到HDTV等各種分辨率所對應的比特率和編碼速率(每秒宏塊數(shù))。分辨率越高,要求的等級就越高。
根據(jù)H.264的不同類別,編碼器會使用不同類型的幀,例如I幀、P幀和B幀。
I幀(幀內(nèi)編碼幀)是一種自帶全部信息的獨立幀,無需參考其它圖像便可獨立進行解碼。視頻序列中的第一個幀始終都是I幀。如果所傳輸?shù)谋忍亓髟獾狡茐,則需要將I幀用作新查看器的起始點或重新同步點。I幀可以用來實現(xiàn)快進、快退以及其它隨機訪問功能。如果新的客戶端將參與查看視頻流,編碼器將以相同的時間間隔或者根據(jù)要求自動插入I幀。I幀的缺點在于它們會占用更多的數(shù)據(jù)位,但從另一方面看,I幀不會產(chǎn)生可覺察的模糊現(xiàn)象。
P幀(幀間預測編碼幀)需要參考前面的I幀和/或P幀的不同部分才能進行編碼。與I幀相比,P幀通常占用更少的數(shù)據(jù)位,但其缺點是,由于P幀對前面的P和I參考幀有著復雜的依賴性,因此對傳輸錯誤非常敏感。
B幀(雙向預測編碼幀)需要同時以前面的幀和后面的幀作為參考幀。
圖2.帶有I幀、B幀和P幀的典型視頻序列。P幀只需要參考前面的I幀或P幀,而B幀則需要同時參考前面和后面的I幀或P幀。
當視頻解碼器逐個幀地對比特流進行解碼以便重構視頻時,必須始終從I幀開始解碼。如果使用了P幀和B幀,則必須與參考幀一起解碼。
在H.264基準類中,僅使用I幀和P幀。由于基準類沒有使用B幀,所以可以實現(xiàn)低延時,因此是網(wǎng)絡攝像機和視頻編碼器的理想選擇。
可以通過各種方法在一個圖像幀內(nèi)或者在一系列幀之間減少視頻數(shù)據(jù)量。
在某個圖像幀內(nèi),只需要刪除不必要的信息就可以減少數(shù)據(jù)量,但這樣做會導致圖像的分辨率下降。
在一系列的幀內(nèi),可以通過差分編碼這樣的方法來減少視頻數(shù)據(jù)量,包括H.264在內(nèi)的大多數(shù)視頻壓縮標準都采用這種方法。在差分編碼中,會將一個幀與參考幀(即前面的I幀或P幀)進行對比,然后只對那些相對于參考幀來說發(fā)生了變化的像素進行編碼。通過這種方法,可以降低需要進行編碼和發(fā)送的像素值。
圖3.對M-JPEG格式來說,上述序列中的三個圖像分別作為獨立的圖像(I幀)進行編碼和發(fā)送,彼此之間互不依賴。
圖4.對差分編碼(包括H.264在內(nèi)的大多數(shù)視頻壓縮標準都采用這種方法)來說,只有第一個圖像(I幀)是將全幀圖像信息進行編碼。
如果是根據(jù)像素塊(宏塊)而不是單個的像素來檢測差別并進行差分編碼,還可以進一步減少需要編碼的信息量;因此,可以對更大的區(qū)域進行對比,而只需對那些存在重大差別的塊進行編碼。此外,對發(fā)生更改的區(qū)域位置進行標記的相關開銷也將大大降低。
然而,如果視頻中存在大量物體運動的話,差分編碼將無法顯著減少數(shù)據(jù)量。這時,可以采用基于塊的運動補償技術。基于塊的運動補償考慮到視頻序列中構成新幀的大量信息都可以在前面的幀中找到,但可能會在不同的位置上。所以,這種技術將一個幀分為一系列的宏塊。然后,通過在參考幀中查找匹配塊的方式,逐塊地構建或者“預測”一個新幀(例如P幀)。如果發(fā)現(xiàn)匹配的塊,編碼器只需要對參考幀中發(fā)現(xiàn)匹配塊的位置進行編碼。與對塊的實際內(nèi)容進行編碼相比,只對運動矢量進行編碼可以減少所占用的數(shù)據(jù)位。
圖5.基于塊的運動補償圖示
上圖文字:
Search window | 搜索窗口 |
Matching block | 匹配塊 |
Motion vector | 運動矢量 |
Target block | 目標塊 |
Earlier reference frame | 前面的參考幀 |
P-frame | P幀 |
H.264將視頻壓縮技術提升到一個新的高度。在H.264中,將通過新的高級幀內(nèi)預測方法對I幀進行編碼。這種方法通過對幀中每個宏塊內(nèi)較小的像素塊進行連續(xù)預測,可以大大減少I幀所占的數(shù)據(jù)位并保持較高的質(zhì)量。這一點可通過在與進行幀內(nèi)編碼的新4×4像素塊相鄰接的前幾個編碼像素中,尋找匹配的像素來實現(xiàn)。通過重復利用已編碼的像素值,可以極大地減少需要編碼的位數(shù)。新的幀內(nèi)預測功能是H.264技術的關鍵部分,實驗證明,這種方法非常有效。與只使用I幀的M-JPEG視頻流相比,只使用I幀的H.264視頻流的文件大小要小得多。
圖6.在由16個像素塊構成的宏塊中,對其中1個像素塊內(nèi)的4×4像素進行編碼時,幀內(nèi)預測所采用的幾種模式的圖示。在宏塊的16個像素塊中,每個像素塊都可以使用不同的模式進行編碼。
上圖文字:
In this mode, four bottom pixels from the block above are copied vertically into part of an intra-coded macroblock. | 在這種模式中,上方像素塊中的四個底部像素被垂直拷貝至經(jīng)過幀內(nèi)編碼的宏塊中。 |
In this mode, four right-most pixels from the block to the left are copied horizontally into part of an intra-coded macroblock. | 在這種模式中,左邊像素塊中的最右側四個像素被水平拷貝至經(jīng)過幀內(nèi)編碼的宏塊中。 |
In this mode, eight bottom pixels from the blocks above are copied diagonally into part of an intra-coded macroblock. | 在這種模式中,上方像素塊中的八個底部像素被沿對角線方向拷貝至經(jīng)過幀內(nèi)編碼的宏塊中。 |
圖7.以上是H.264幀內(nèi)預測方法的效率圖示。通過這種方法,幀內(nèi)預測圖像將“免費”發(fā)送。只需對殘留圖像和幀內(nèi)預測模式進行編碼,就可以生成輸出圖像。
對P幀和B幀進行編碼時所采用的基于塊的運動補償,在H.264中也得到了改進。H.264編碼器可以在一個或多個參考幀的少數(shù)或眾多區(qū)域內(nèi),以低至子像素的精度搜索匹配的塊。為了提高匹配率,可以對塊的大小和形狀進行調(diào)整。在參考幀中,對于找不到匹配塊的區(qū)域,將會使用幀內(nèi)編碼的宏塊。H.264基于塊的運動補償具有高度的靈活性,非常適合人群比較擁擠的監(jiān)控場所,因為它能夠保證較高的質(zhì)量,以滿足嚴格的應用要求。運動補償是視頻編碼器要求最嚴格的一個方面,H.264編碼器實施運動補償?shù)牟煌绞揭约捌鋵嵤┏潭龋瑢绊懸曨l壓縮的效率。
對于H.264,通過使用環(huán)內(nèi)去塊效應濾波器,可以減少在使用M-JPEG和MPEG標準(而不是H.264標準)的高度壓縮視頻中通常出現(xiàn)的圖像模糊現(xiàn)象。此過濾器能夠通過自適應強度使塊邊緣變得平滑,從而確保輸出幾乎完美無缺的解壓縮視頻。
圖8.從右邊的圖中我們可以看到,在應用了去塊效應濾波器之后,左圖中高度壓縮圖像的塊狀效應已經(jīng)大大降低。
H.264代表著視頻壓縮技術的一個重大飛躍。由于該技術具有更精確的預測能力和更高的容錯能力,因此可實現(xiàn)更高的壓縮效率。它將有可能推動視頻編碼器進一步向前發(fā)展,從而能夠在同樣的比特率下提供更高質(zhì)量的視頻流、更高的幀速以及更高的分辨率(與先前的標準相比);或者反過來說,能夠在同樣的視頻質(zhì)量下降低比特率。
H.264是ITU、ISO和IEC首次在視頻壓縮方面聯(lián)合制定的一個通用國際標準。由于其具有高度的靈活性,H.264已廣泛應用于各種領域中,例如:高清DVD(例如藍光)、數(shù)字視頻廣播(包括高清TV)、在線視頻存儲(例如YouTube)、3G移動電話、軟件(例如QuickTime、Flash和蘋果計算機公司的MacOSX操作系統(tǒng)等),以及家用電視游戲機(例如PlayStation3等)。在眾多行業(yè)的支持下,以及在為滿足個人消費者和專業(yè)用戶需求的應用的推動下,H.264有望取代當今市場中使用的其它壓縮標準和方法。
隨著H.264格式更加廣泛地應用于網(wǎng)絡攝像機、視頻編碼器和視頻管理軟件,系統(tǒng)設計商和集成商將需要確保他們所選擇的產(chǎn)品和廠商能夠支持這一全新的開放標準。就目前來說,能夠同時支持H.264和M-JPEG的網(wǎng)絡視頻產(chǎn)品具有最高的靈活性和集成能力,因此是用戶的理想選擇。