h.264/avc 技術與應用簡介 - myweb.ntut.edu.twshyang/journal papers/h264_avc.pdf ·...

14
影像與識別 2007 H.264/AVC 技術與應用簡介 H.264/AVC 技術與應用簡介 楊士萱、陳柏源 國立台北科技大學資訊工程系 Email: [email protected] 摘要 數位多媒體科技不但改變了人類的溝通與生活方式,也改變了知識的管理和傳播 模式,對整個人類文明產生了革命性的影響。在整個數位多媒體科技的發展中,視訊編 碼標準扮演了相當關鍵的角色,本論文針對 H.264/AVC 視訊編碼標準的相關技術與應用 做一概括性的介紹。H.264/AVC ITU (International Telecommunication Union)ISO (International Organization for Standardization) / IEC (International Electrotechnical Commission)等國際標準組織所共同制定的最新視訊編碼標準。H.264/AVC 能提供高效率 的視訊壓縮,及壓縮視訊在各種不同網路環境的有效表示,所以在數位電視、行動視訊、 影音串流、高密度光碟等各項新興多媒體服務中都具有極高的應用價值。H.264/AVC 準在架構上包含 VCL (Video Coding Layer)NAL (Network Adaptation Layer)兩層,VCL 為視訊壓縮的部份,NAL 則提供 VCL 編碼資料與實際網路之間的介接,本論文將著重 H.264/AVC VCL 編碼技術的介紹。我們將由 ITU ISO/IEC 制定視訊編碼標準的歷程 談起,並講述視訊編碼的基本技術,繼而說明 H.264/AVC 特有的核心演算法,最後則介 H.264/AVC 的應用與發展前景。 一、H.264/AVC 的發展歷程與概觀 ISO ITU 1990 年代開始制定一序列的影音訊號編碼標準,ITU 制定 H.261/262/263/264 標準,ISO 則制定 MPEG-1/2/4 標準,兩者之間互有交錯重疊。 H.261[1] 1990 年制定完成,此標準的主要目的是要在 ISDN (Integrated Service Digital Network) 上提供雙向視訊服務,如視訊電話或視訊會議。MPEG (Moving Pictures Experts Group)是國際標準組織 ISO/IEC 針對動態影音資料之壓縮、解壓縮、 處理、表示、及其他應用需求所組成的專家群。MPEG-1 (ISO/IEC 11172)[2]1992 年制定完成,它是針對數位影音儲存媒體所提出的編碼方案,其殺手級應用(killer application) VCD (video compact disc) 。在 1994 ITU ISO 合力制定了 H.262/MPEG-2 標準[3],所以 MPEG-2 的第二部份(video)H.262 的內容完全相同。 MPEG-2 是目前世界上最成功的標準之一,其殺手級應用是數位影音儲存媒體 DVD (digital video/versatile disc)和數位電視,目前全世界已銷售出超過十億個 DVD 解碼器 及數位電視的機上盒。ITU 之後又針對低位元率(傳輸碼率33.6 kb/s)的通訊環境,制 1

Upload: others

Post on 29-Oct-2019

3 views

Category:

Documents


0 download

TRANSCRIPT

  • 影像與識別 2007 H.264/AVC 技術與應用簡介

    H.264/AVC 技術與應用簡介

    楊士萱、陳柏源

    國立台北科技大學資訊工程系 Email: [email protected]

    摘要

    數位多媒體科技不但改變了人類的溝通與生活方式,也改變了知識的管理和傳播

    模式,對整個人類文明產生了革命性的影響。在整個數位多媒體科技的發展中,視訊編

    碼標準扮演了相當關鍵的角色,本論文針對 H.264/AVC 視訊編碼標準的相關技術與應用做一概括性的介紹。H.264/AVC 是 ITU (International Telecommunication Union)與 ISO (International Organization for Standardization) / IEC (International Electrotechnical Commission)等國際標準組織所共同制定的最新視訊編碼標準。H.264/AVC 能提供高效率的視訊壓縮,及壓縮視訊在各種不同網路環境的有效表示,所以在數位電視、行動視訊、

    影音串流、高密度光碟等各項新興多媒體服務中都具有極高的應用價值。H.264/AVC 標準在架構上包含 VCL (Video Coding Layer)與 NAL (Network Adaptation Layer)兩層,VCL為視訊壓縮的部份,NAL 則提供 VCL 編碼資料與實際網路之間的介接,本論文將著重於 H.264/AVC VCL 編碼技術的介紹。我們將由 ITU 與 ISO/IEC 制定視訊編碼標準的歷程談起,並講述視訊編碼的基本技術,繼而說明 H.264/AVC 特有的核心演算法,最後則介紹 H.264/AVC 的應用與發展前景。

    一、H.264/AVC 的發展歷程與概觀

    ISO 與 ITU 從 1990 年代開始制定一序列的影音訊號編碼標準,ITU 制定

    H.261/262/263/264 標準,ISO 則制定 MPEG-1/2/4 標準,兩者之間互有交錯重疊。H.261[1]於 1990 年制定完成,此標準的主要目的是要在 ISDN (Integrated Service Digital Network)上提供雙向視訊服務,如視訊電話或視訊會議。MPEG (Moving Pictures Experts Group)是國際標準組織 ISO/IEC 針對動態影音資料之壓縮、解壓縮、處理、表示、及其他應用需求所組成的專家群。MPEG-1 (ISO/IEC 11172)[2]於 1992年制定完成,它是針對數位影音儲存媒體所提出的編碼方案,其殺手級應用(killer application)為 VCD (video compact disc)。在 1994 年 ITU 與 ISO 合力制定了H.262/MPEG-2 標準[3],所以 MPEG-2 的第二部份(video)與 H.262 的內容完全相同。MPEG-2 是目前世界上最成功的標準之一,其殺手級應用是數位影音儲存媒體 DVD (digital video/versatile disc)和數位電視,目前全世界已銷售出超過十億個 DVD 解碼器及數位電視的機上盒。ITU 之後又針對低位元率(傳輸碼率≤33.6 kb/s)的通訊環境,制

    1

  • 影像與識別 2007 H.264/AVC 技術與應用簡介

    定了雙向視訊服務的編碼標準,稱之為 H.263 [4]。隨後在 1999 年完成的 MPEG-4 第二部份視訊編碼標準[5],則提出以畫面內的物件(object)做為處理的基本單元,以做為提供場景配置及人機互動的基礎,並且增加抗錯(error resilience)與精細可調尺度性(fine-granularity scalability)等功能,以提供在不同網路環境下全面接取的服務。這些影音訊號編碼標準在制定當時都屬於領先的技術。由於使用標準能夠確保多媒體內容

    與裝置的互通性(interoperability),並且可以藉由大量生產降低成本,也因此帶動了相關產業的發展。

    1998 年 ITU 的視訊編碼專家群 VCEG (Video Coding Experts Group)針對改進壓

    縮效率,提出制定新的視訊編碼標準的計畫,當時將名稱暫定為 H.26L (L 代表long-term)。在 2001 年時 ISO 的 MPEG 專家群共同加入這個標準的制定,最後完成的標準在 ITU 稱之為 H.264,在 ISO 中稱之為 MPEG-4 第十部分─先進視訊編碼(Advanced Video Coding; AVC),所以在文獻中H.264, MPEG-4 AVC, AVC, MPEG-4 part 10, 乃至於 H.26L,基本上代表的是同一個視訊編碼標準[6]。在本篇論文中,我們則一律稱之為 H.264/AVC。H.264/AVC 的第一版在 2003 年完稿,後續增補及修訂版本則持續進行中(目前已進行至第七版)。針對可調尺度性(scalability)與多視角(multi-view)等功能性(functionality)的擴充,H.264/AVC 也陸續提出其延伸版本(extensions),有興趣的讀者可以參考本期其他論文的介紹。

    H.264/AVC的開發理念與過去的H.26x或MPEG視訊標準略有不同,它在技術上

    不要求與之前的H.26x或MPEG視訊編碼標準做到向後相容(backward compatible),也容許較大的編解碼複雜度,但訴求的重點在於大幅提升壓縮效率。具體而言,

    H.264/AVC希望用不到一半的位元率,達到與MPEG-1/2 相同的視訊品質1;換言之,用 1 Mbps就已經足夠提供DVD畫質的視訊,用 1 GB的碟片就可以儲存 2 小時的DVD影片。壓縮效率的改進,代表傳輸或儲存成本的降低與使用便利性的提升,因此

    H.264/AVC的提出,對於近年新興的各項多媒體服務,如數位電視、行動視訊、影音串流、高密度光碟等,都帶來不小的衝擊。許多原本採用MPEG-2 或其他視訊編碼標準的應用,未來都可能改為採用H.264/AVC[7]-[10]。

    H.264/AVC 標準在架構上包含 VCL (Video Coding Layer)與 NAL (Network

    Adaptation Layer)兩層,如圖一所示[7]。VCL 為視訊壓縮的部份,其技術核心包括動作估計、轉換編碼、預測編碼、去區塊效應濾波、及熵編碼等技術,我們將於後續章

    節中說明。NAL 提供 VCL 編碼資料與實際網路之間的介接,其中必須進行編碼資料的格式化,添加必須的檔頭資訊,再封裝成適當的傳輸單元。H.264/AVC 的 NAL 提供多種封裝方式,以適用於各種不同的通訊傳輸協定,包括 H.320/H.324、MPEG-2傳輸串流(transport stream)、IP 網路、或 MP4 檔案格式等。用 NAL 區隔 VCL 壓縮層

    1 H.264/AVC捨棄MPEG-4 第二部份物件編碼的構想,回到以矩形的畫面(picure)或畫面片段(slice)做為處理單元的作法。

    2

  • 影像與識別 2007 H.264/AVC 技術與應用簡介

    與傳輸網路,可以大大簡化核心壓縮演算法設計時的考量。

    圖一 H.264/AVC 的分層架構

    二、視訊編碼的基本技術 在講述 H.264/AVC VCL 的核心技術以前,我們在本節先回顧視訊編碼的基本

    理論,與過去 JPEG/MPEG 影像與視訊編碼標準的架構。視訊編碼藉由移除影片中的冗餘(redundancy)以減少資料量,多數的視訊編碼(包括 H.264/AVC 的主要應用)都是屬於失真(lossy)的演算法,也就是說,我們以視覺上品質的好壞,而不以資料的絕對正確,做為編碼的最終目的。失真的壓縮演算法,相較於無失真(lossless)的壓縮演算法,其壓縮倍率較高,而且碼率─失真取捨(rate-distortion tradeoff)的彈性較大。一般而言,影片中的冗餘可以區分為以下幾種 :

    時間(畫面間)冗餘(temporal or interframe redundancy):由於影片是由一個時間序列的影像所組成,同一場景前後張畫面通常相似性極高,如圖二為標準測試影像

    Foreman 的前三張畫面(畫面間隔時間 1/30 秒),我們可以發現其內容極為相似。 空間(畫面內)冗餘(spatial or intraframe redundancy):一張畫面空間上鄰近的像素

    (pixel,亦稱為像點)通常具有相近的亮度或顏色。 編碼冗餘(coding redundancy):量化後符號機率並非完全相等,且符號間也存在相關性。

    感官冗餘(perceptual redundancy):人類視覺系統對於不同顏色或空間頻率的敏感度不盡相同,某些圖像成分較不容易被察覺。

    3

  • 影像與識別 2007 H.264/AVC 技術與應用簡介

    (a) 第一張 (b) 第二張 (c) 第三張

    圖二 標準測試影片 Foreman 的前三張畫面 ISO 在制定 MPEG 標準之前,先針對連續色調(continuous-tone)靜態影像訂定了

    大家熟悉的 JPEG (Joint Photographic Experts Group)壓縮標準[11],[12]。在 JPEG 的各種操作模式中,目前以基線(baseline)模式的應用最廣泛,譬如數位相機與網際網路上的照片多半都是這個格式。JPEG 基線模式採用轉換編碼(transform coding)的架構,如圖三所示。這個架構後來也成為 MPEG-1/2/4 畫面內編碼(intraframe coding)的主體。轉換編碼使用線性轉換(如離散餘弦轉換 discrete cosine transform, DCT)將空間中的像素轉換成不相關而且能量集中的頻譜係數,這些係數再用量化(quantization)與熵編碼(entropy coding)進一步壓縮。JPEG 基線模式即結合了 DCT、視覺加權純量量化、之字形掃瞄(zigzag scan)與霍夫曼編碼(Huffman coding)等技術,以有效去除靜態影像的空間、編碼、與感官冗餘。

    圖三 JPEG 基線模式的編碼方塊圖

    圖四 MPEG 標準所定義的範圍為紅色方框內的解碼流程 為求最大相容性並開放廠商自由競爭最佳編碼機制,MPEG 標準均僅定義解碼

    流程(如圖四)。但為方便讀者理解 MPEG 標準的內涵,我們解說時將著重於編碼方之

    4

  • 影像與識別 2007 H.264/AVC 技術與應用簡介

    動作。由於影片相鄰畫面間的相似性通常很高,相較於 JPEG 靜態影像壓縮標準,MPEG-1/2 額外利用了動作估計與動作補償的技術,以進一步消除影片的時間冗餘。MPEG-1/2 的編碼流程如圖五所示,注意到其中紅色虛線框住的部分即為 JPEG 轉換編碼的架構。動作估計(motion estimation)是估算編碼畫面(coding picture)與參考畫面(reference picture)間運動參數的一種機制,動作補償(motion compensation)則是依據動作估計所得之運動參數,由參考畫面計算出編碼畫面估計值的作法。動作估計一般只

    在編碼方進行,其估算的基本單位通稱為巨區塊(macroblock)。由參考畫面估算所得巨區塊與編碼巨區塊的殘差,則可以套用一般靜態影像的壓縮技術(如轉換編碼)再進行處理。

    圖五 MPEG-1/2 的編碼方塊圖 [13]

    在 MPEG-1/2 中,巨區塊代表大小為 16×16 的亮度資料(Y),及其對應範圍內

    的彩度資料(Cb 及 Cr)。在進行動作估計時,我們將編碼畫面先分割成不互相重疊的巨區塊;對於每個編碼巨區塊,再到重建參考畫面同一個位置的周圍(稱為搜尋範圍)尋找與其最匹配(誤差最小)的巨區塊,如圖六所示,此最匹配巨區塊相對於編碼巨區塊的移動量,稱為動作向量(motion vector)。動作向量為進行畫面間編碼(interframe coding)所需要傳送的額外資訊。

    5

  • 影像與識別 2007 H.264/AVC 技術與應用簡介

    圖六 動作估計搜尋示意圖 依據是否採用畫面間編碼與動作估計時參考畫面的選擇,MPEG-1/2 共有 I, P, B

    三種不同的畫面類型。I-畫面(Intra-pictures)採用與 JPEG 極為相似的畫面內編碼,壓縮時不參考其他畫面;I-畫面的壓縮率較低,但它可以做為隨機讀取(如快轉、快回、段落選取)的依據,以及 P-畫面與 B-畫面的參考畫面。P-畫面(Predicted pictures)利用過去最近的一張 I-畫面或 P-畫面做為向前預測(forward prediction)的參考畫面,再結合動作估計與轉換編碼進行壓縮;P-畫面的壓縮率比 I-畫面高,它也可以做為其他畫面的參考畫面,但不能做為隨機讀取的依據。B-畫面(Bidirectional predictive/interpolated pictures)編碼時可以參考前後最近的 I-畫面或 P-畫面,再結合動作估計與轉換編碼進行壓縮;B-畫面的壓縮率比 P-畫面更高,但它不能做為其他畫面編碼時的參考畫面,也不能做為隨機讀取的依據。由於 B-畫面可以參考未來的畫面,因此會造成編碼延遲,比較不適合視訊電話及視訊會議等即時性的應用。在 MPEG-1/2 中,使用畫面間編碼的區塊稱為 Inter 區塊,使用畫面內編碼的區塊則稱為 Intra 區塊(即 P-畫面或 B-畫面中使用動作補償的區塊)。

    不論是Intra區塊還是Inter區塊,都可以再透過轉換編碼減少其失真。MPEG-1/2

    的區塊(block)是由大小為 8×8 同顏色分量構成的矩陣,一個巨區塊內區塊的數目依其彩度次取樣的格式而定2。MPEG-1 使用 4:2:0 的格式,所以一個巨區塊包含 6 個區塊(4Y, 1Cb, 1Cr);MPEG-2 放寬到可使用 4:2:2 或 4:4:4 的格式,對應到一個巨區塊內含8 個區塊(4Y, 2Cb, 2Cr) 或 12 個區塊(4Y, 4Cb, 4Cr)。

    每個畫面經過 MPEG-1/2 編碼產生的實際位元數,依其畫面類型與畫面複雜度

    會有所變動;但由於許多傳輸通道或儲存媒介有固定位元率(constant bit rate)的限制,所以編碼器必須藉由碼率控制(rate control)搭配輸出緩衝區來產生固定位元率的輸出。MPEG-1/2 畫面內的碼率可以透過改變量化矩陣(即量化步階)來做調整。

    2 由於MPEG-1/2 採用YCbCr顏色格式,所以一張畫面事實上由三個顏色分量的矩陣所構成。

    6

  • 影像與識別 2007 H.264/AVC 技術與應用簡介

    MPEG-1/2 的解碼基本上依循編碼程序的反動作。解碼時只需要進行動作補

    償,不需要進行動作估計。除了目前畫面之外,在考慮包含 B-畫面的情形下,解碼器必須儲存前後共兩張參考畫面(I-畫框或 P-畫框)。(如果視訊序列僅含 I-畫面與 P-畫面時,解碼器只需保留前一張畫面。)

    MPEG-1 以 VCD 為單一應用標的,其規格之定義較單純;而 MPEG-2 由於應

    用層面較廣,為了滿足不同應用需求並簡化編解碼器的設計,因此採用類似工具箱的

    作法,依據功能性(如係數的精確度、彩度次取樣的格式、及是否具備漸進式傳輸能力等)與複雜度(如畫面大小與碼率)分別訂出幾種層次(profile)與位階(level)。譬如,標準畫質數位電視(standard-definition television; SDTV)和 DVD 使用 main profile @ main level,main profile限制使用4:2:0的顏色格式,採用不具有漸近式解碼能力(nonscalable)的單一資料串流,而且 DC 係數精確度最高為 10 位元;而 main level 限制畫面解析度最高為 720×576、畫面速率最高每秒 30 張畫框。

    三、H.264/AVC 的核心技術

    本節介紹 H.264/AVC 的核心編碼技術[7]-[10]。H.264/AVC 標準雖不求向後相容,但它和之前的 MPEG 標準仍有許多雷同之處。H.264/AVC 的編碼端架構如圖七所示,它也是利用動作估計與動作補償消除影片時間上的冗餘,用 DCT 轉換編碼與純量量化消除影片空間上的冗餘等,用熵編碼消除編碼冗餘。基本上,H.264/AVC 並沒有發明新的編碼架構,新增的編碼單元也不多;它藉由個別編碼元件最佳化的累

    積,達到壓縮效率的大幅改善。

    (重建畫面)

    (欲編碼畫面)

    熵編碼量化

    反量化

    反整數DCT轉換

    整數DCT轉換

    去方塊效應濾波器

    (I畫面預測) (P,B畫面預測)

    畫面內預測

    動作補償

    選擇預測模式

    動作估計

    NAL

    圖七 H.264/AVC 編碼端架構圖 [14]

    7

  • 影像與識別 2007 H.264/AVC 技術與應用簡介

    以下我們從視訊壓縮的觀點,說明 H.264/AVC 如何藉由有效消除影片時間、空

    間、編碼、感官各層面的冗餘,最後達到大幅效能提升的結果。

    3.1 H.264/AVC 在去除時間冗餘的改良 可變動區塊大小(variable block size)的動作估計 先前的壓縮標準動作估計基本單元(即巨區塊)採用固定大小,如 16×16 或 8×8。H.264/AVC 為了增加比對的彈性並降低比對的誤差,提供了 7 種不同大小與外型的區塊可供選擇(16 × 16, 16 × 8, 8 × 16, 8 × 8, 8 × 4, 4 × 8, 4 × 4),如圖八所示。編碼器因此可以依據影片的動作或材質的複雜程度,彈性選擇碼率-失真最佳的區塊類型。譬如,我們可以在運動較單純或材質較平滑的區域使用較大的區塊,以

    減少需要編碼的動作向量;在運動較複雜或材質較細緻的區域使用較小的區塊,

    以增加比對的正確性。

    圖八 H.264/AVC 動作估計可選擇的區塊型態

    1/4 像素精確度的動作估計 先前的壓縮標準動作向量多半精確到 1/2 像素,H.264/AVC 則是更進一步提供 1/4像素的精確度搜尋(如圖九所示),以提高動作補償的準確度。1/2 及 1/4 像素位置的值則由鄰近的整數像素位置內插得到。

    圖九 次像數點搜尋示意圖

    8

  • 影像與識別 2007 H.264/AVC 技術與應用簡介

    多重參考畫面 (multiple reference frames) 先前的壓縮標準進行動作估計時,僅能參考前後各一張畫面。但有時影像序列未

    必是相鄰者最相似(如圖十即為一例),H.264/AVC 因此開放可以保留更多張畫面可以做為參考畫面(至多 31 張)。另外,H.264/AVC 中的 B-畫面也可以做為參考畫面(在許多情形 B-畫面會更接近編碼畫面)。

    (n-3)th frame (n-2)th frame (n-1)th frame nth frame

    圖十 多重參考畫面示意圖 3.2 H.264/AVC 在去除空間冗餘的改良

    畫面內的空間預測 (Intra prediction) 相較於以往的視訊壓縮標準,空間上的冗餘主要利用區塊的轉換編碼來消除,較

    少利用相鄰區塊的相似性3;H.264/AVC對於Intra區塊,則是利用畫面內相鄰區塊像點的相似性先進行估計,再對編碼區塊與預測值的殘差進行轉換編碼。以 4×4的Intra區塊(圖十一(a)的a~p)為例4,我們利用編碼區塊上方及左方已經解碼區塊像素(圖十一(a)的A~M)的加權平均做為估計值,預測模式共有圖十一(b)所顯示的八個方向加上DC預測共 9 種預測模式。

    (a) (b)

    圖十一 H.264/AVC 的畫面內預測模式。(a)編碼區塊與預測像素相對位置,(b)空間預測的 8 個方向。

    3 MPEG-1/2 區塊的直流係數使用DPCM預測,MPEG-4 第二部份則增加對第一列與第一行的交流係數做預測,但以上預測均針對頻譜係數,與H.264/AVC直接採用像素做估計不同。 4 我們也可以對 16×16 或 8×8 的Intra區塊進行類似的空間預測(8×8 的空間預測只有FRExt才有。)

    9

  • 影像與識別 2007 H.264/AVC 技術與應用簡介

    轉換與量化的調整 轉換與量化為視訊壓縮的核心技術之ㄧ,H.264/AVC 在這個部份也做了一些改良,在 2003 年的版本中,所有層次均採用較小的 4×4 DCT 轉換,其轉換矩陣 T為

    ⎥⎥⎥⎥

    ⎢⎢⎢⎢

    −−−−

    −−=

    1221111121121111

    T

    使用 4×4 轉換的優點在於降低運算複雜度,也避免解碼方因為計算精確度誤差(roundoff error) 所造成的反轉換不一致 (inverse-transform mismatch) 。由於H.264/AVC 已經採用了較佳的畫面間與畫面內預測,所以需要進行轉換編碼的殘差影像其空間相關性不會很高,因此使用 4×4 的轉換通常就能提供足夠的轉換效益。另外,使用較小的區塊也能夠減少區塊效應。巨區塊內的 DC 係數會再抽離出來做一次 Hadamard 轉換,以進一步擷取 16×16 巨區塊範圍內的空間相關性。對於高畫質影像,H.264/AVC 2005 年的版本所新增的層次放寬使用 8×8 的 DCT轉換矩陣[15],以提升高碼率編碼視訊的畫質。 H.264/AVC 提供 52 個量化步階調整因子可供選擇,其對應的量化步階略依指數(非線性)成長,相鄰的量化步階約差 12%,每隔六個量化步階其值變成原來的兩倍,這樣的設計讓 H.264/AVC 可以適合於各種不同壓縮率的環境。

    3.3 H.264/AVC 在去除編碼冗餘的改良

    H.264/AVC 提供兩種熵編碼的方式。除了量化後的轉換係數外,其他欄位均採用一致性變動長度碼(universal VLC; UVLC),不同的語法元素(syntax elements)均使用此 UVLC 碼簿,只是在碼字的對應上做調整。H.264/AVC 的 UVLC 採用exp-Golomb 碼,它比傳統的霍夫曼碼更具規律性,所以可以減少解碼的複雜度。對於通常佔編碼資料最大宗的量化後係數,則使用內文適應性變動長度碼

    (context-adaptive variable length coding; CAVLC) 或內文適應性算術編碼(context-adaptive binary arithmetic coding; CABAC)壓縮。相較於 MPEG-1/2 採用的靜態模型霍夫曼編碼,這些適應性熵編碼依據已經傳送的語法元素,動態調整

    變動長度碼的碼簿或算術編碼的條件機率,可以進一步消除編碼符號間的相關

    性,所以會有更好的壓縮效率。 3.4 H.264/AVC 在去除感官冗餘的改良

    區塊效應(blocking artifacts)是採用以區塊為單位的動作補償與區塊轉換,在失真壓縮時所造成的邊界不連續現象,它也是目前主流的視訊編碼標準,在低碼率時

    影響視覺品質的主要因素。 傳統上,區塊效應可以在解碼方用後處理(post processing)的方式加以消除。H.264/AVC 則改採迴路濾波器的架構(in-loop deblocking filtering),在編碼方就進

    10

  • 影像與識別 2007 H.264/AVC 技術與應用簡介

    行濾波,並據以重建動作補償的參考畫面,這樣做不但可以降低解碼器的複雜

    度,而且比較可以確保重建影像的品質(因為影像品質不依賴不在標準定義範圍內的後處理)。 H.264/AVC 使用高度適應性的去除區塊效應濾波器,依據周圍已經完成編碼區塊的編碼模式(如是否為 Intra 區塊、是否為巨區塊邊緣、殘差影像是否編碼、動作向量的大小等),以及邊界附近像點的一致性,來決定是否進行濾波、以及濾波時的強度。實驗結果發現,H.264/AVC 的適應性迴路濾波器不但可以提高主觀的視覺品質,也有助於在相同客觀品質下(如相同的平均平方誤差)整體碼率的降低。

    四、H.264/AVC 的應用與前景

    H.264/AVC 在壓縮效能及功能性(如抗錯與網路接取)所做的大幅改善,使它受到產業界的極大的關注,目前已有許多企業採用 H.264/AVC 標準,也已有許多廠商投入 H.264/AVC 相關產品之研發[9],[10]。H.264/AVC 於 2003 年定稿的第一版共訂有Baseline、Main 和 Extended 等 3 個層次,其主要工具(tools)及目前之應用如下:

    Baseline 層次 此層次主要考慮複雜度要低但抗錯能力要強的行動視訊應用,它侷限於沒有B-畫面的漸進式(progressive)影像5,也只使用CAVLC;但額外提供靈活巨區塊排序(Flexible Macroblock Ordering; FMO)、任意畫面片段排序(Arbitrary Slice Ordering; ASO)、冗餘畫面片段(redundant slices)等抗錯功能。目前已知的應用包括行動電話、行動電視、視訊電話等通訊服務;包括歐規的手持式數位視訊廣播DVB-H (Digital Video Broadcasting – Handheld)、南韓採用的DMB (Digital Multimedia Broadcasting)、以及 3GPP提出的MBMS (Multimedia Broadcast/Multicast Service)等均支援此層次。另外,Baseline層次也被用在可攜式視訊播放裝置中,如Apple公司最近推出的video iPod。

    Main 層次 此層次主要考慮壓縮效能要好但比較不在乎抗錯能力的視訊應用。相較於

    Baseline 層次,此層次加入交錯式(interlaced)影像、B 畫面、及 CABAC 等工具(但沒有 FMO、ASO、與冗餘畫面片段),所以壓縮效率較好,但也較為複雜。目前Main層次已被使用於部分標準畫質數位電視SDTV以及部分儲存媒體中(如Sony公司的 PlayStation Portable)。

    Extended 層次 此層次除了 Baseline 層次提供之的 FMO、ASO、與冗餘畫面片段等工具之外,另外增加資料分割(data partitioning)與 SI 及 SP 畫面片段(SI and SP slices)等錯誤回復的工具(但沒有 CABAC),目前還沒有實際應用的例子。

    5 H.264/AVC實際上是以畫面片段(slice)而非畫面做為編碼類型(I, P, or B)選擇的單元。為求前後敘述的連貫性,本論文不特別強調這個部份的不同。

    11

  • 影像與識別 2007 H.264/AVC 技術與應用簡介

    H.264/AVC 於 2005 年定稿的第三版,針對高畫質視訊的相關應用,增加了High、High10、High4:2:2、High4:4:4 等層次(通稱為 Fidelity Range Extensions, FRExt [15]),這些層次基本上都是 Main 層次的擴充,其主要工具及目前之應用如下:

    High 層次 High層次提高Main層次使用位階的上限,放寬採用 8×8 的DCT轉換,並提供較好的量化步階調整模式。High層次已經逐漸取代Main層次,成為數位電視地面廣播的標準,目前包括DVB-T (Digital Video Broadcasting – Terrestrial)與日本ISDB-T (Integrated Services Digital Broadcasting – Terrestrial),均已決定採用High層次做為其高畫質數位電視(high-definition television; HDTV)視訊編碼的規格。另外,High層次也是藍光光碟(Blu-ray Disc)6與HD-DVD7等新一代高密度儲存媒體的視訊編碼格式。

    High 10 層次 相較於 High 層次,此層次進一步放寬轉換係數量化時至多可使用 10 位元的精確度。

    High 4:2:2 層次 相較於 High 10 層次,此層次進一步放寬顏色次取樣至 4:2:2。

    High 4:4:4 層次 相較於 High 4:2:2 層次,此層次進一步放寬顏色次取樣至 4:4:4,並放寬轉換係數量化時至 12 位元的精確度。

    目前已有一些製片公司或專業攝影人士表示對 High 10 以上的層次有興趣。 由於 H.264/AVC 的編碼選項(如巨區塊大小、畫面內預測模式、與參考畫面選

    擇等)甚多、且牽涉之運算多較繁複(如 1/4 像素精確度動作估計、去區塊效應濾波、與 CABAC 等),所以如何在盡量不損及壓縮效率的前提下,降低 H.264/AVC 編解碼複雜度的方法,乃成為其應用發展的重要課題。另外,如何在不同的軟硬體平台上,

    開發適合的 H.264/AVC 編解碼器,也是目前產業研發的重要工作。 五、結論與延伸閱讀

    本論文由視訊編碼標準的歷史發展出發,從視訊壓縮理論的角度,勾勒出

    H.264/AVC 這個嶄新且日益重要標準的核心技術。除了本期的其他論文之外,有興趣的讀者可以進一步閱讀以下的文獻。視訊編碼技術及 H.26x/MPEG 標準的一般性介紹可以參考[12],[14],[16]這幾本書。有關 H.264/AVC 的一般性介紹,IEEE Transactions on Circuits and Systems for Video Technology 2003 年七月號的專刊[16],對於第一版的內容有相當詳盡的介紹;有關 H.264/AVC 的後續發展,則可以參考 Wiegard 與 Sullivan

    6 藍光光碟(Blu-ray Disc)是由藍光協會(Blu-ray Disc Association, BDA)所制定的下一代DVD光碟格式。 7 HD-DVD(High Definition-DVD)是由DVD論壇(DVD Forum)所主導制定的下一代DVD光碟格式

    12

  • 影像與識別 2007 H.264/AVC 技術與應用簡介

    等人在 IEEE期刊所發表的文章[8]-[10]。H.264/AVC的規格書可以由 ITU[18]或 ISO[19]的網站取得,H.264/AVC 的參考軟體可以參考 HHI 在網站上公佈的最新 JM 版本[20]。

    六、參考文獻 [1] ITU-T Recommendation H.261, Video Codec for Audiovisual Services at p x 64 kbit/s,

    March 1993. [2] ISO/IEC International Standard 11172-2, Information technology – Coding of moving

    pictures and associated audio for digital storage media up to about 1.5 Mbits/s – Part 2: Video, first edition, Aug. 1993.

    [3] ISO/IEC International Standard 13818-2, Generic coding of moving pictures and associated audio – Part 2: Video, 1995.

    [4] ITU-T Recommendation H.263, Video Coding for Low Bit Rate Communication, version 1, Nov. 1995; version2, Jan. 1998; version 3, Nov. 2000.

    [5] ISO/IEC International Standard 14496-2, Information technology – Coding of audio-visual objects – Part 2: Visual, Amendment 1: Visual extensions, July 2000.

    [6] ISO/IEC International Standard 14496-10, Information technology – Coding of audio-visual objects – Part 10: Advanced Video Coding, third edition, Dec. 2005, corrected version, March 2006.

    [7] T. Wiegand, G. J. Sullivan, G. Bjøntegaard, and A. Luthra, Overview of the H.264/AVC video coding standard, IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, no. 7, pp. 560-576, July 2003.

    [8] G. J. Sullivan and T. Wiegand, “Video compression-from concepts to the H.264/AVC standard,” Proceedings of the IEEE, vol. 93, no. 1, pp. 18-31, Jan. 2005.

    [9] D. Marpe, T. Wiegard, and G. J. Sullivan, “The H.264/MPEG4 advanced video coding standard and its applications,” IEEE Communications Magazine, vol. 44, no.8, pp. 134-143, Aug. 2006.

    [10] T. Wiegard, and G. J. Sullivan, “The H.264/AVC video coding standard,” IEEE Signal Processing Magazine, vol. 24, no. 2, pp. 148-153, March 2007.

    [11] ITU-T T.81, Information Technology – Digital Compression and Coding of Continuous-Tone Still Images – Requirements and Guidelines, Sep. 1992.

    [12] W. B. Pennebaker and J. L. Mitchell, JPEG Still Image Data Compression Standard, Kluwer Academic Press, 1993.

    [13] V. Bhaskaran and K. Konstantinides, Image and Video Compression Standards, Algorithms and Architectures, second edition, Kluwer Academic Publishers, 1997.

    [14] I. E. G. Richardson, H.264 and MPEG-4 Video Compression: Video Coding for Next-generation Multimedia, John Wiley & Sons, 2003.

    [15] D. Marpe, T. Wiegand, and S. Gordon, “H.264/MPEG4-AVC fidelity range

    13

  • 影像與識別 2007 H.264/AVC 技術與應用簡介

    extensions: tools, profiles, performance, and application areas,” IEEE International Conference on Image Processing, vol. 1, Sep. 2005, pp. 593–596.

    [16] Mohammed Ghanbari, Video Coding: an Introduction to Standard Codecs, IEE Telecommunications series, 1999.

    [17] Special Issue on the H.264/AVC Video Coding Standard, IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, no. 7, July 2003.

    [18] ITU homepage, http://www.itu.int [19] ISO homepage, http://www.iso.org[20] H.264/AVC Software Coordination, http://iphome.hhi.de/suehring/tml/[21] 楊士萱、尤信程、陳偉凱,數位電視之多媒體技術(in print).

    14

    http://www.itu.int/http://www.iso.org/http://iphome.hhi.de/suehring/tml/

    /ColorImageDict > /JPEG2000ColorACSImageDict > /JPEG2000ColorImageDict > /AntiAliasGrayImages false /CropGrayImages true /GrayImageMinResolution 300 /GrayImageMinResolutionPolicy /OK /DownsampleGrayImages true /GrayImageDownsampleType /Bicubic /GrayImageResolution 300 /GrayImageDepth -1 /GrayImageMinDownsampleDepth 2 /GrayImageDownsampleThreshold 1.50000 /EncodeGrayImages true /GrayImageFilter /DCTEncode /AutoFilterGrayImages true /GrayImageAutoFilterStrategy /JPEG /GrayACSImageDict > /GrayImageDict > /JPEG2000GrayACSImageDict > /JPEG2000GrayImageDict > /AntiAliasMonoImages false /CropMonoImages true /MonoImageMinResolution 1200 /MonoImageMinResolutionPolicy /OK /DownsampleMonoImages true /MonoImageDownsampleType /Bicubic /MonoImageResolution 1200 /MonoImageDepth -1 /MonoImageDownsampleThreshold 1.50000 /EncodeMonoImages true /MonoImageFilter /CCITTFaxEncode /MonoImageDict > /AllowPSXObjects false /CheckCompliance [ /None ] /PDFX1aCheck false /PDFX3Check false /PDFXCompliantPDFOnly false /PDFXNoTrimBoxError true /PDFXTrimBoxToMediaBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXSetBleedBoxToMediaBox true /PDFXBleedBoxToTrimBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXOutputIntentProfile () /PDFXOutputConditionIdentifier () /PDFXOutputCondition () /PDFXRegistryName () /PDFXTrapped /False

    /Description > /Namespace [ (Adobe) (Common) (1.0) ] /OtherNamespaces [ > /FormElements false /GenerateStructure false /IncludeBookmarks false /IncludeHyperlinks false /IncludeInteractive false /IncludeLayers false /IncludeProfiles false /MultimediaHandling /UseObjectSettings /Namespace [ (Adobe) (CreativeSuite) (2.0) ] /PDFXOutputIntentProfileSelector /DocumentCMYK /PreserveEditing true /UntaggedCMYKHandling /LeaveUntagged /UntaggedRGBHandling /UseDocumentProfile /UseDocumentBleed false >> ]>> setdistillerparams> setpagedevice