ISO MPEG 與 ITU-T VCEG 從 1990 年代開始制定一連串的影音訊號編碼標準,
ITU 制定 H.261/262/263/264 標準,ISO 則制定 MPEG-1/2/4 標準,而兩者之間互有 合作,Figure 1.所示。在 2001 年 12 月,ITU-T VCEG 與 ISO MPEG 共同組成聯合 視訊小組(Joint Video Team,JVT)來研訂新的視訊壓縮標準,此新的標準在 ITU-T 組織中稱為 H.264,在 ISO 組織中則被納入 MPEG-4 Part-10(ISO/IEC 14496-10)並命 名為 Advanced Video Coding(AVC),故通常合併稱為 H.264/AVC4。且相關研究顯示 H.264/AVC 能用一半左右的位元率達到與 MPEG-1/2 相同的視訊品質
Figure 1. Chronological Table of Video Coding Standards
4 文獻中 H.264、MPEG-4 AVC、AVC、MPEG-4 part 10 或 H.26L 皆代表同一個視訊編碼標準
4
H.264/AVC 標 準 在 架構 上 包 含了 VCL(Video Coding Layer) 與 NAL(Natwork Abstraction Layer)兩層,VCL 為視訊壓縮的部分,其技術核心包含動作估計(Motion Estimation)、線性轉換編碼(Linear transform coding)、預測編碼(Prediction coding)、
去區塊效應濾波器(In-loop filter)、及熵編碼(Entropy)等技術,詳細內容會在後續小 節說明,NAL 提供 VCL 編碼資料與實際網路之間的介面,進行編碼資料的格式化,
加入必要的檔頭資訊(NAL header),在封裝成適當的傳輸單元,而 H.264/AVC 的 NAL 提供多種封裝方式,以方便適用於各種的通訊傳輸協定,如 Figure 2.所示,而 Transport Protocol 不屬於 H.264/AVC 標準的規範。
VCL
H.264/AVC 根據使用的編碼工作種類來提供十幾種 Profiles, 其中較常使用在消費 性電子產品的幾種 profiles 包括了 Baseline profile、Main profile、extension profile、High profile,不同 profile 規範了適合不同應用的編碼工具,前三種 profiles 的工具如 Figure 3 所示,至於 High profile 則是在 Main profiles 之上增加了 88 transform 等工 具。而相對應的影片解析度與位元率等資訊由不同的 Level 所規範。Baseline profile
5
主要是應用在低複雜度,低延時的應用,所以適合應用在手持式裝置的多媒體支援,
本篇論文則是使用 H.264/AVC Baseline profile decoder 作為 reference design,Main profileadd 則增加了 coding tools(如 B slice 、CABAC ),故具有較好的壓縮效率,適 合應用於 HDTV 數位電視廣播,Extensio profile 則有高抗錯性的編碼工具(error resilient tools),以及增加 SP 和 SI slice,故適合於 streaming media application。
Baseline
Figure 3. H.264 Profile
2.1.2 H.264/AVC 影像格式階層架構
H.264/AVC 的階層架構由小到大依序是 Sub-block、block、Macroblock(MB)、slice、
slice group、frame/field-picture、sequence,以 Baseline profile 常用的 420 取樣的 MB 而言,是由 16x16 點的 Luma(Y)與相對應的 2 個 8x8 點 Chroma(Cb 和 Cr)所組成,
MB 可在分割成多個 16x8、8x16、8x8、4x8、8x4、4x4 格式的 sub-blocks,MB 為 H.264/AVC 解碼的最小基本單位,則所謂的 slice 是許多連續的 MB 的集合,如圖 Figure 4.所示,slice 為 H.264/AVC 格式中的最小可解碼單位(self-docedable unit),即 一個 slice 單靠本身的壓縮資料就能做解碼,不需要仰賴其他的 slice,而 slice 主要 可以分成三種,第一種為 I-slice, slice 的全部 MB 都採用 intra prediction 的方式編 碼;第二種為 P-slice,slice 中的 MB 使用 intra prediction 和 inter prediction 的方式
6
來編碼,但每一個 inter prediction MB 最多只能使用一個移動向量(Motion vector);
第三種為 B-slice5,與 P-slice 類似,但是可以使用兩個移動向量,而本論文研究是 使用 baseline profile,所以不討論 B-slice 的情況。而 H.264/AVC 另外有增加兩種特 殊的 slice 類型(使用在 extension profie),第一種為 SP-slice(Switching P slice),為 P-slice 的一種特殊類型,可以用來串接兩個不同 bitrate 的 bitstream;第二種為 SI-slice(Switching I slice),為 I-slice 的一種特殊類型,除了用來串接兩個不同內容 的 bitstream 外,也可用來執行隨機存取(random access)。Slice group 由一個以上的 slice 所組成,在本論文沒有使用這個格式。Figure 5.為 H.264 Syntax。
I P P I P P
Video frame Slice Macroblock
I : Intra coding P : Inter coding
Time Macroblock
Each MB is composed of 16x16 pixels
Figure 4. H.264/AVC Slice and MB
Figure 5. H.264 syntax
5 B 是指 Bi-prediction,與 MPEG-2/4 B-frame 的 Bi-directional 概念不同,H.264/AVC 不拘限於指定 要前後各一張才可以。
7