• 沒有找到結果。

中 華 大 學

N/A
N/A
Protected

Academic year: 2022

Share "中 華 大 學"

Copied!
65
0
0

加載中.... (立即查看全文)

全文

(1)

中 華 大 學 碩 士 論 文

題目:使用預測移動向量的快速多參考幀移動預估

Fast Motion Estimation of Multiple Reference Frame using Predicted Motion Vector

系 所 別: 資訊工程學系碩士班 學號姓名: M09402044 呂長鴻 指導教授: 鄭 芳 炫 教授

中華民國 九十七 年 一 月

(2)

I

摘要

縱觀 H.264/AVC 編碼規格,可以發現以品質提升為出發點的規格改良上,經常 導致計算時間直線性的成長;舉凡畫面內預測(Intra Prediction)、多參考幀的移動 補償(Multiple reference pictures for motion compensation)、變動區塊的模式選擇

(Mode Decision)等等新規格皆有此特點。就多參考幀的移動補償而言,以往的編 碼法經常只拿前一張畫面當成編碼參考對象,事實上最相似的區塊可能存在於前 面的數張之中,因此 H.264/AVC 在規格上提供了多參考幀(Multiple Reference

Frame) 的模式,期望能找到品質更佳的結果;詴圖提升品質的過程當中,逐一 檢查各個參考幀卻讓移動預估(Motion Estimation) 的次數直線性的增加,在整個 編碼時間裡已經佔用大量時間的移動預估(ME) 以參考幀數量為準線性增加的時 間花費,早已超過品質提升帶來的好處。本論文將提出一個快速的多參考幀的移 動補償(Multiple reference pictures for motion compensation) 演算法,利用“連續 幀有高關連性”的特色,省去大量的移動預估(ME) 計算時間,我們的方法將以 移動向量預測(Motion Vector Prediction) 為參考來估測出一個結果,用來取代移 動預估(ME) 的計算結果,藉此省下移動預估(ME) 花去的大量時間。實驗結果顯 示出我們提出的快速演算法在幾乎不影響品質的情況下(PSNR 僅降低 0.02,

BitRate 僅略升 0.42%)省下了大約 77%的編碼時間。

(3)

II

Abstract

After reading content of H2.64/AVC standard, we can find that the improvement of feature based on quality enhancement often leads to growing of calculation time linearly. For example intra prediction 、 multiple reference pictures for motion compensation、mode decision, these new feature have this characteristic. As for

motion compensation of multiple reference frame, past encoding standard usually take previous one frame as encoding reference target. In Fact, the most similar block

maybe exist in previous several frames. Therefore, H.264/AVC provides the feature“Multiple Reference Frame”in the standard and hopes to find the result

having better quality. In the process of enhancing quality checking every reference frames one by one makes the times of motion estimation increasing linearly. The increasing time cost of motion estimation occupying mass time in whole encoding time, with reference frame amount linearly, have exceeded the benefit quality

enhancement bringing. This paper will propose a fast algorithm of multiple reference pictures for motion compensation. It takes advantage of the characteristic“successive frames have high relationship”and save numerous calculation time of motion

estimation. Our algorithm refers to motion vector prediction and estimation a result.

It is used to substitute for the calculation result of motion estimation and save

(4)

III

numerous time motion estimation taking. The experiment result show that our algorithm save approximate 77% coding time and doesn’t affect quality(PNSR only slightly decreases 0.02, BitRate only slightly increases 0.42%).

(5)

IV

致謝

首先,我要先感謝我的學長 --- 楊士賢學長在研究過程中給我的各種協助。在 我研究的領域中除了研究各種問題外,還要花許多時間在了解參考軟體的原始碼 上;每一次向學長請教細節所花的時間雖然只有短短幾分鐘,但是學到的內容卻 是我必須花一個禮拜以上才能夠看得懂的。假如沒有學長的幫忙,或許我畢業的 時間還仍然遙遙無期。總之,我要在此向我的學長致上最高的敬意。

接下來,我想要感謝我的指導老師 --- 鄭芳炫老師。在修改論文以及指導我報 告的時候孜孜不倦的為我做出許多的建議以及修改,讓我這份七零八落的研究最 後終於提升到可以稱之為“論文”的水準;老師為了我的論文花了相當多的心思 及時間,因此我想要在這篇致謝裡再度表達我的感謝之意,感謝我的老師為我付 出的心血。

最後,我要感謝我的父母親 --- 呂金龍先生及許玲娥女士。雖然我們並不是經 常見面,但是在各個方面他們給我的許多支持是無庸置疑的;沒有我父母親的支 持,或許我撐不到畢業的這一天,也不會有這一篇致謝辭。我要在這裡感謝我父 母親對我的支持、對我的信任、對我的信心。

最後的最後,我要感謝我的大學同學彭炳衡、林亮竹、謝秉鈞,在研究所的期 間我們經常見面,他們在各種情況下給我許多想法、以及支持,他們是這篇論文 誕生時最直接的見證人。另外,我要感謝我的學弟張佑維,在我研究生生涯的最 後幾個月,他熱心的幫助我處理各種棘手問題,毫無怨言;在這裡我要感謝他,

感謝他幫助我跨過畢業前最後一個高牆。

(6)

V

目錄

摘要 ... I Abstract ... II 致謝 ... IV 目錄 ... V 圖目錄 ... VII 表目錄 ... X

第一章 序論 ... 1

1.1 H.264 標準簡介... 1

1.2 H.264 中的新規格... 2

1.2.1 畫面內預測 (Intra Prediction)... 3

1.2.2 畫面間預測 (Inter Prediction)... 5

1.2.2.1 多參考幀的移動補償(Multiple reference pictures for motion compensation)... 6

1.2.2.2 基於最小區塊的多種區塊大小移動補償(Multiple block-size motion compensation with small block sizes).... 6

1.2.2.3 樣本點內插 (sample interpolation)... 7

1.3 動機與目的... 10

第二章 參考軟體相關研究 ... 11

(7)

VI

2.1 參考軟體 (JM Reference Software)簡介... 11

2.2 移動向量預測 (Motion Vector Prediction,MVP) 簡介... 13

2.3 Rate-Distortion Optimization (RDO) 簡介... 16

第三章 提出的快速演算法 ... 20

3.1 相關演算法回顧... 20

3.2 使用 PMV (Predicted Motion Vector) 的快速演算法... 22

3.3 省略 Predicted MV 計算的快速演算法... 27

第四章 實驗結果 ... 31

4.1 系統環境... 31

4.2 效能比較... 44

4.2.1 原始多參考幀(Multiple Reference Frame) 和單一參考幀 (Single Reference Frame) 的比較... 45

4.2.2 提出的快速演算法和原始多參考幀(Multiple Reference Frame) 的比較... 46

4.2.3 提出的快速演算法與單一參考幀(Single Reference Frame)的 比較... 49

第五章 結論與未來展望 ... 51

5.1 結論... 51

5.2 未來展望... 51

參考文獻 ... 52

(8)

VII

圖目錄

圖 1-1. H.264 中不同規模 (Profile)間的特定編碼部份.[3]... 2

圖 1-2. H.264/MPEG-4 AVC 編碼器方塊圖.[4] ... 2

圖 1-3. 4x4 畫面內區塊預測模式之方向.[3]... 3

圖 1-4. 4x4 區塊亮度預測模式.[5]... 4

圖 1-5. 16x16 區塊預測模式.[5] ... 5

圖 1-6. 使用多參考幀的移動預估(Motion Estimation). ... 6

圖 1-7. 用於動態補償的不同巨區塊(MacroBlock)分割.[4] ... 7

圖 1-8. 半像素及四分之一像素的樣本點內插.[4] ... 8

圖 1-9. 彩度內差法中部份樣本以位置為準的變數及環繞著的整數位置點樣本 A, B,C 及 D.[4]... 9

圖 2-1.(a) 參考軟體 JM 中的編碼器結構. ... 11

(b) 位於函式“BlockMotionSearch()”中移動預估(ME)的流程... 11

圖 2-2. 由鄰近 (目前巨區塊(MB)左方、上方及上右) 巨區塊(Macro Block)得 來的已編碼移動向量 (Motion Vector)被用於形成目前巨區塊的預測向量 (predicted motion vector) .[7]... 13

圖 2-3. Full Search,Spiral Full Search,Spiral Full Search with MVP. ... 14

(9)

VIII

圖 2-4. Mode 1、Mode 2、Mode 3 時 MVP 的參考對象... 14

圖 2-5. Mode 4、Mode 5 時 MVP 的參考對象... 15

圖 2-6. Mode 6、Mode 7 時 MVP 的參考對象... 15

圖 2-7. 移動預估(ME)程式區段中最佳解選擇的部份. ... 17

圖 2-8. 多參考幀(Multiple Reference Frame)程式區段中最佳解的選擇方式. ... 18

圖 2-9. 各種模式選擇(Mode Decision) 最後選擇最佳解的程式區段. ... 19

圖 3-1. 使用前一張的資訊估測對前第二張的 ME 結果. ... 20

圖 3-2. 使用前第l-1 張估測前第 l 張的 ME 結果. ... 21

圖 3-3. PMV 演算法. ... 23

圖 3-4. PMV 演算法流程圖. ... 25

圖 3-5. 改良後的 PMV 演算法流程圖. ... 28

圖 3-6. 改良後的 PMV 演算法:省略 MVP 計算... 29

圖 4-1. akiyo 的 RD 曲線圖... 38

圖 4-2. carphone 的 RD 曲線圖. ... 38

圖 4-3. clair 的 RD 曲線圖. ... 39

圖 4-4. coastguard 的 RD 曲線圖. ... 39

圖 4-5. container 的 RD 曲線圖. ... 40

圖 4-6. foreman 的 RD 曲線圖. ... 40

圖 4-7. mobile 的 RD 曲線圖. ... 41

(10)

IX

圖 4-8. mother-daughter 的 RD 曲線圖. ... 41 圖 4-9. news 的 RD 曲線圖. ... 42 圖 4-10. silent 的 RD 曲線圖. ... 42

(11)

X

表目錄

表 I. 不同演算法間的 PSNR 值比較... 34 表 II. 不同演算法間的 Bit-Rate 值比較... 35 表 III. 不同演算法間移動預估(ME)花費時間的比較... 36 表 Ⅳ. 加權平均法(Weighted AVG)及提出的多參考幀演算法(PMV) 間的移動

預估(ME)花費時間比較... 43 表 Ⅴ.(a) 單一參考幀(ref=1)及多參考幀(ref=5)間的 PSNR 比較... 44 (b) 單一參考幀(ref=1)及多參考幀(ref=5)間的 Bit-Rate 比較... 44 表 Ⅵ. 單一參考幀(ref=1)及多參考幀(ref=5)間的移動預估(ME)花費時間比

較... 46 表 Ⅶ.(a) 原始多參考幀(ref=5)法及提出的多參考幀(ref=5)法(PMV)間的

PSNR 比較. ... 47 (b) 原始多參考幀(ref=5)法及提出的多參考幀(ref=5)法(PMV)間的

Bit-Rate 比較. ... 47 表 Ⅷ. 原始多參考幀(ref=5)法及提出的多參考幀(ref=5)法(PMV)間的移動預

估(ME)花費時間比較... 48 表 Ⅸ.(a) 單一參考幀(ref=1)及提出的多參考幀(ref=5)法(PMV) 間的 PSNR

比較... 49

(12)

XI

(b) 單 一 參 考 幀 (ref=1) 及 提 出 的 多 參 考 幀 (ref=5) 法 (PMV) 間 的 Bit-Rate 比較. ... 49 表 Ⅹ. 單一參考幀(ref=1)及提出的多參考幀(ref=5)法(PMV) 間的移動預估

(ME)花費時間比較... 50

(13)

1

第一章 序論

1.1 H.264 標準簡介

在 2001 年 12 月,ITU-T VCEG 與 ISO MPEG 共同組成聯合視訊小組 (Joint Video Term,JVT)來研訂新的視訊壓縮格式,此新格式在 ITU-T 組織中稱為 H.264。在 ISO 組織中則納入 MPEG-4 Part-10 (ISO/IEC 14496-10)並命名為 Advanced Video Coding

(AVC),通常合併稱為 H.264/AVC [1];其國際標準的第一版於 2003 年公佈,而增 修的第二版也於 2005 年 3 月定案。相關研究顯示 H.264/AVC 與 MPEG-2 及 MPEG-4 相較之下,無論是壓縮率或視訊品質皆有大幅的提升[2]。

在第一版的標準規範中,H.264/AVC 根據使用的編碼工具種類來提供三種編碼 規模 (Profile),分別為 Baseline Profile、Main Profile、Extension Profile (如圖 1-1.

所示);而相對應的影片尺寸與位元率等級由 Level 1 至 Level 5.1,涵蓋小畫面與 高解析度畫面的應用範圍。Baseline Profile 主要是著眼於低位元率的應用 (例如:

影像通訊),而且其運算複雜度低,所以也適合應用於個人隨身的多媒體撥放機。

Main Profile 因為有支援交錯式影片 (interlaced content)的編碼,所以適合應用於 HDTV 數位電視廣播,而且非常容易整合在傳統的 MPEG-2 Transport/Program Stream 上來傳送 H.264/AVC 位元流;對於 IP-TV 或是 MOD (Multimedia On Demand) 等應用,使用包含高抗錯性編碼工具 (error resilient tools)的 Extension Profile 即 可以滿足這些需求。

(14)

2

圖 1-1. H.264 中不同規模 (Profile)間的特定編碼部份.[3]

1.2 H.264 中的新規格

圖 1-2. H.264/MPEG-4 AVC 編碼器方塊圖.[4]

(15)

3

H.264 提出的新規格不少是針對品質提升方面,如圖 1-2.所示有 Multi-Block Estimation、Multi-Frame Estimation、Intra Mode Decision 等等;由多項不同的技 術在許多方面取得小改善,最後表現出 H.264 在編碼品質上比起之前的標準有大 幅度的提升。以下就各種品質方面新增的規格進行簡介:

1.2.1 畫面內預測 (Intra Prediction)

對前一張進行動態預測是由於與前一張畫面有較高時間關連性所致,在空間關 連性方面則提出了畫面內預測 (Intra Prediction)的方式;簡單來說,是以編碼區

塊周圍的像素作為參考來預測目前的區塊,對於無法使用動態預測的I 幀經常使

用此方式來降低編碼率。

畫面內預測在亮度 (Luminance)及彩度 (chrominance)兩方面有不同的預測型 式,亮度方面可以使用 16x16 大小的區塊或是 4x4 的區塊,而 16x16 的區塊有 4 種預測模式,,4x4 的區塊有 9 種預測模式;在彩度方面則是使用 8x8 的區塊,有

4 種預測方式。

圖 1-3. 4x4 畫面內區塊預測模式之方向.[3]

(16)

4

4x4 大小區塊的 9 種模式分別如下:(參考圖 1-3.、圖 1-4.) Mode 0:vertical

Mode 1:horizontal

Mode 2:DC (A-D,I-L 共 8 個的平均值) Mode 3:diagonal down left

Mode 4:diagonal down right Mode 5:vertical right

Mode 6:horizontal down Mode 7:vertical left Mode 8:horizontal up

每個模式(mode)以參考的方向命名,以上面或左邊的像素值作為參考對象預測 出中間區域的 16 個像素(a-p);然後計算與原始像素的差值總和,找出與原始值(共

16 個像素)差距最小的模式當作最後結果。以計算 Mode 4 的像素 a 及像素 d 為 例,a=round(I/4+M/2+A/4)、d=round(B/4+C/2+D/4)。

圖 1-4. 4x4 區塊亮度預測模式.[5]

(17)

5

16x16 大小的區塊有 4 種模式,而 8x8 大小的區塊的四種模式與 16x16 的模式 相同,分別如下:(參考圖 1-5.)

Vertical:參考最上方(H)的像素去預測 Horizontal:參考最左方(V)的像素去預測 DC:上方與左方的所有像素值的平均值

plane:以一個線性的平面函數,依據不同位置,以不同權重計算出來的值

圖 1-5. 16x16 區塊預測模式.[5]

1.2.2 畫面間預測 (Inter Prediction)

針對消除連續時間裡畫面中的冗餘(重覆)資訊為出發點,使用動態預測及動態 補償來進行壓縮,不同於傳統方式的地方主要在於可變動的區塊大小、多於一張 的參考幀、更精細的預測精度等等的規格改良,以下針對這些為了提升品質的改 良一一作出說明。

(18)

6

1.2.2.1 多參考幀的移動補償(Multiple reference pictures for motion compensation)

不同於以往只參考前一張已解碼幀的動態預測,H.264 提出參考之前多張解碼 幀作為動態預測對象的規格 (請參照圖 1-6.)。主要的優點是提升動態預測的效能,

隨之而來的缺點是更複雜的編碼器、更大量的暫存區以及隨參考張數線性成長的 時間;使用 5 個參考幀可節省 5~10%的編碼率。

圖 1-6. 使用多參考幀的移動預估(Motion Estimation).

1.2.2.2 基於最小區塊的多種區塊大小移動補償(Multiple block-size motion compensation with small block sizes)

早期的視訊壓縮多半以 16x16 做為動態預測的標準區塊大小,在 H.264 中提出 了以多種不同區塊大小為基礎區塊的規格;在一致性較高的物體表面材質或是背

… … …

N N-1

N-2 N-5

(19)

7

景上使用較大的區塊可以節省編碼率,在運動劇烈的區塊或者物體邊緣使用較小 的區塊可以得到較佳的預測品質。H.264 中總共提出七種不同大小的區塊 (請參 考圖 1-7.),分別是 16x16(mode 1)、16x8(mode 2)、8x16(mode 3)、8x8(mode 4)、

8x4(mode 5)、4x8(mode 6)、4x4(mode 7);通常會把七種模式全部做過一次並從 其中取出一個最佳模式當成最後結果,因此會耗費比傳統模式多於數倍的時間。

圖 1-7. 用於動態補償的不同巨區塊(MacroBlock)分割.[4]

1.2.2.3 樣本點內插 (sample interpolation)

在 H.264 中,移動向量所指向的位置可以是整數點 (integer-pixel/full-pixel)、1/2 點 (half-pixel)、1/4 點 (quarter-pixel);由於儲存壓縮畫面時並沒有記錄 1/2 點、

1/4 點,因此 1/2 點、1/4 點的像素值必須由整數點推算出來,而亮度與彩度有 不同的計算方式。

(20)

8

圖 1-8. 半像素及四分之一像素的樣本點內插.[4]

亮度方面,以 H3 及 H0 為例 (請參照圖 1-8.),舉出兩個 1/2 像素的例子如下:

H3 =(F1 − 5F2 + 20F3 + 20F4 − 5F5 + F6 + 16)

32 (1 − 1) H0 =(H1 − 5H2 + 20H3 + 20H4 − 5H5 + H6 + 16)

32 (1 − 2)

由上述公式可了解到值計算的方式以處於哪個整數像素的軸上而定;若位於橫軸 上則以橫軸像素來考慮,若位於縱軸則以縱列的像素來考量。為了降低動態補償

(21)

9

時圖形失真的影響,同時套用一個濾波器去稀釋圖形失真 (以加入權重值的方式 來達成)。而亮度方面的 1/4 像素舉出兩個例子 a 及 b 如下:

a = F3 + H3 +1

2 (1 − 3) b = H3 + H7 +1

2 (1 − 4)

以 a 點為例是取距離最近的一個整數像數及半像素的平均值,而 b 點是取最近的 兩個對角方向半像素的平均值。

圖 1-9. 彩度內差法中部份樣本以位置為準的變數及環繞著的整數位置點樣本 A, B,C 及 D.[4]

彩度方面是以雙線性內插法 (bilinear interpolation)來取得預測的像素值,公式 如下所述 (可參照圖 1-9.):

(22)

10

Chroma x, y = ( 8 − x 8 − y A + x 8 − y B + 8 − x yC + xyD + 32)

64 (1 − 5)

其中的 A、B、C、D 為整數點,隨著所要求的像素位置不同得到不同的公式。其 中 x, y ∈ { 0,0 , 0,1 , … , 3,2 , (3,3)},恰指向亮度位置上整數像素、半像素、

四分之一像素的位置。

1.3 動機與目的

經過 1.2 節 H.264 規格的大略介紹之後,應該可以了解到 H.264 規格可以使品 質方面有非常大的提升,但是同時也需要花費大量的時間去做運算。若開啟所有 功能以期待獲得比之前的編碼方式有更高的品質,所需花費的時間也會較之前的 編碼方式高上許多倍,若是對需要即時運算的系統而言原始的 H.264 規格完全無 法運作。以減少計算時間為前提進行演算法的改良是本論文的重心,本論文將提 出一種在多參考幀 (Multiple Reference Pictures)方面快速計算動態預測的方法,

用以降低隨參考張數線性增加的運算時間成本,並且仍能保有一定程度的壓縮品 質。

(23)

11

第二章 參考軟體相關研究

2.1 參考軟體 (JM Reference Software)簡介

我們實驗環境是在 JM Reference Software 11.0[6],下面 圖 2-1.是該軟體部份 的程式架構:

main()

frame_picture()

Encode_one_slice()

PartitionMotionSearch()

BlockMotionSearch() encode_one_frame()

code_a_picture()

encode_one_macroblock()

GET ORIGINAL BLOCK

GET MOTION VECTOR PREDICTOR

INTEGER-PEL SEARCH

SUB-PEL SEARCH

SET MV'S AND RETURN MOTION COST

(a) (b) 圖 2-1.(a) 參考軟體 JM 中的編碼器結構.

(b) 位於函式“BlockMotionSearch()”中移動預估(ME)的流程.

(24)

12

圖 2-1.中的(a)是由最外層的“main”函式一直到移動預估(Motion Estimation,

簡稱 ME) 部份所需經過的步驟,在“encode_one_macroblock()”中以一個巨區 塊 (MacroBlock,16x16)為基本單位進行各種模式的移動預估(ME)。因應 H.264 可使用各種不同的區塊大小來進行移動預估(ME),在“PartitionMotionSearch()”

的部份會根據不同模式分配不同的區塊大小。接下來在“BlockMotionSearch()”

的部份以上述指定的區塊大小進行移動預估(ME)。在“encode_one_macroblock()”

結束之前,將會從此巨區塊曾做過的所有模式 (Inter mode、Intra mode、Skip mode、

Skip mode、Direct mode 等等)中取出最佳者 (RD cost 最小)當做此巨區塊的計算 結果。

圖 2-1.中的(b)是“BlockMotionSearch()”中執行的內容,也就是參考軟體 JM 中 進行移動預估(ME) 的程式段落。首先把這次要預估的原始區塊讀進來當做參考

(GET ORIGINAL BLOCK),接下來進行移動向量預測 (Motion Vector Prediction,稍 後將提及),然後分別針對整數像素 (integer-pixel)、1/2 及 1/4 像素做移動預估(ME) 並選出最佳者 (RD cost 最小者,稍後將提及),最後記住最佳向量及其對應的 RD

cost 值,就算完成一次 nxn 大小(nxn ∈ {16x16, 16x8, … , 4x8, 4x4)})區塊的移動 預估(ME)。

以下的內容將要介紹上述過程中 Motion Vector Prediction (移動向量預測)及 RD cost 值的定義及使用場合。

(25)

13

2.2 移動向量預測 (Motion Vector Prediction,MVP) 簡介

圖 2-2. 由鄰近 (目前巨區塊(MB)左方、上方及上右) 巨區塊(Macro Block)得 來的已編碼移動向量(Motion Vector)被用於形成目前巨區塊的預測向 量(predicted motion vector) .[7]

MVP(motion vector prediction)[7] 是能夠有效減少移動預估(Motion Estimation) 計算時間的演算法,此方法在實作上已行之多年,目前在參考軟體 JM[6]上已經 是移動預估(ME) 的必經流程,無法關閉。從左方,上方及右上方(或左上方)已做 完移動預估(ME) 的三個巨區塊(Macro Block) 中取出共三組移動向量(Motion

Vector),經過簡單的演算法 (通常是三者取中位數)後獲得一組移動向量(Motion Vector) 來當成本次巨區塊(MB) 的移動預估(ME) 起點。改良過的螺旋式全域搜 尋(Spiral Full Search) 原本由正中央(0,0) 開始進行移動預估(ME),現在改由 MVP 預測的位置開始進行移動預估(ME),可以省下大量的時間,可參考圖 2-3.的圖 例。

(26)

14

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

15 9 11 13 16 17 3 1 4 18 19 5 0 6 20 21 7 2 8 22 23 10 12 14 24

15 9 11 13 16 17 3 1 4 18 19 5 0 6 20 21 7 2 8 22 23 10 12 14 24

圖 2-3. Full Search,Spiral Full Search,Spiral Full Search with MVP.

( 數字為運算順序,有底色為所需要做移動預估(ME)的區塊,第三個 圖由於 MVP 演算法,由預測到的位置(此例為 8)開始做 )

由於 H.264 中可以使用不同大小的區塊進行移動預估(ME) 之故,MVP 在選擇 左方、上方、右上方三個方向的參考區塊時稍微有所不同,以下針對不同的區塊 大小分別舉出例子。

圖 2-4. Mode 1、Mode 2、Mode 3 時 MVP 的參考對象.

(a) Mode 1(16x16) (b) Mode 2(16x8) (c) Mode 3(8x16)

在圖 2-4.、圖 2-5.、圖 2-6.中對 H.264 定義的七種種區塊類型各別舉例,其中

X 為本次移動預估(ME) 區塊,A 為左方區塊,B 為上方區塊,C 為右上方區塊,

參考區塊 A、B、C 的大小皆為 4x4。

圖 2-4.中的三種模式皆以 16x16 大小區塊為基本單位,圖 2-4(a).為 16x16 大小 區塊,無須切割,圖 2-4(b).為 16x8 大小區塊,此處以下方區塊為例,圖 2-4(c).

B A

C

X A B C

X X

A

B C

(a) (b) (c)

(27)

15

為 8x16 大小區塊,以右方區塊為例。

圖 2-5.、圖 2-6.裡的四種模式以 8x8 大小區塊當成基本單位,此處以左下角 8x8 區塊為例舉出 mode 4、mode 5、mode 6、mode 7 時 MVP 的參考對象;圖 2-5(a).

是 8x8 大小區塊,直接以左下角 8x8 區塊為例,圖 2-5(b).是 8x4 大小區塊,以左 下角 8x8 區塊的上方部份為例,圖 2-6(a).是 4x8 大小區塊,以左下角 8x8 區塊的 左方部份為例,圖 2-6(b).是 4x4 大小區塊,以左下角 8x8 區塊其中位於左上方的 部份為例。

圖 2-5. Mode 4、Mode 5 時 MVP 的參考對象.

(a) Mode 4(8x8) (b) Mode 5(8x4)

圖 2-6. Mode 6、Mode 7 時 MVP 的參考對象.

(a) Mode 6(4x8) (b) Mode 7(4x4)

以上是針對不同區塊大小時 MVP 參考對象的些微不同所作出的說明,除此之 A B C

X A B C

X

(a) (b)

A

B C

A B C

X X

(a) (b)

(28)

16

外,MVP 的參考對象還會受到附近區塊的參考頁 (reference frame)不同而有不同 的結果。

2.3 Rate-Distortion Optimization (RDO) 簡介

不同於以往只考慮最小絕對差值和(SAD,sum of absolute differences,區塊與 區塊間的像素差異總合)來選擇最佳解的方式,H.264 另外將最小位元率(Bit-Rate,

所需花費的位元率)列入考量。H.264 原本是屬於電信方面的規格,除了畫質的要 求以外,在傳送速率上的要求更加嚴苛,於是發展出這種畫質與位元流量間取得 最佳平衡的評估方式,稱之為 Rate-Distortion Optimization[8]。以下是其公式[8]:

min{ J }, where 𝐽 = 𝐷 + 𝜆𝑅 (2-1)

以下逐一介紹公式(2-1) 中的各項參數。 J 為 RD cost 值,位元率(Bit-Rate)和最 小差值和(SAD)間的平衡點,為了在兩個不同範疇的條件下同時取得最小值而提 出的最佳化公式,擁有最小RD cost 值的條件通常被選為最佳解。

D 是 Distortion 值,即最小差值和(SAD 值),用來表示已壓縮畫面品質好壞的

指標。

𝜆 為 Lagrange multiplier,Rate-Distortion 最佳化公式中的必要參數,已經從

多次實驗中找出最佳值,在參考軟體JM[6]中視情況使用不同的𝜆。

(29)

17

R 是 Rate 值,壓縮(即動態預測)後所需要花費在儲存上的位元數。

以上的公式是 Rate-Distortion Optimization 的基本架構,然而實作時會依不同 情況在程式安排上略有不同,以下列舉出幾種不同情況下的使用方式:

(a) 移動預估(Motion Estimation)的部份:先檢查位元率(Bit-Rate) 是否有超出最小 成本(minimal cost),若以超過則連最小差值和(SAD) 都不計算;若無超過,再來 進行最小差值和(SAD) 的計算,然後再度檢查是否有超過最小成本(minimal

cost)。

圖 2-7. 移動預估(ME)程式區段中最佳解選擇的部份.

以下解釋圖 2-7.中的各項參數。“先檢查位元率(Bit-Rate)”的部份僅檢查本次待 測對象向量(MV) 與 MVP 結果向量(MV) 間的差距,MV_COST()為進行位元率

(Bit-Rate) 計算的函式;pred_x、pred_y 即為 MVP 的結果向量,cand_x、cand_y 為本次待測區塊的向量,2 是將整數像素(integer-pixel) 為基準的 cand_x、cand_y 修正成以 1/4 像素為基的的 pred_x、pred_y 所需要偏移量,以<<2 來進行。

(30)

18

(b) 多參考幀(Multiple Reference Frame) 結果選擇的部份:將之前以不同參考幀 為基準各別進行移動預估(ME) 後得到的各個 RD cost 值拿出來比較,選擇擁有最 小成本(minimal cost) 所屬的幀(frame) 做為最佳解。

圖 2-8. 多參考幀(Multiple Reference Frame)程式區段中最佳解的選擇方式.

以下解釋圖 2-8.中的各項參數。motion_cost 矩陣存的是之前計算的結果,可以 發現共有 mode、list、ref、block 四個維度,不同於以往的動態估測,H.264 為了 在各方面爭取細微的品質提升,以不同的設定計算了更多次的移動預估(ME),當 然也花費了更多的時間。bmcost 及 best_ref 矩陣存放著目前此區塊最小成本值

(minimal cost) 及所屬的幀(frame),若本次從 motion_cost 矩陣提出的待測值小於 bmcost 值,則進行替換(請參照圖 2-8.),以此方式找出最佳的幀(frame)。

(c) 各種模式選擇(Mode Decision) 的部份:以一個巨區塊 (Macro Block)而言,在

(31)

19

所有模式中選出最佳解的部份,最後會將每一個模式之前求得的最小差值和(SAD) 及位元率(Bit-Rate) 一一代入下列式子,並留下擁有最小成本值(minimal cost) 的模式作為本區塊的最佳結果。

圖 2-9. 各種模式選擇(Mode Decision) 最後選擇最佳解的程式區段.

以下解釋圖 2-9.中的各項參數。distortion 是使用某一模式時最後得到的最小差值 和(SAD),rate 是使用某一模式條件下保存最後資料所需花費的位元數,代入公 式後求得的 rdcost 被用來篩選此模式是否為最佳模式;假若某一模式的 rdcost 值大於目前的最小成本(min_rdcost),則此模式將被略過並轉為去篩選下一個模 式(return 0; 結束此模式篩選),反之則是更新最小成本(min_rdcost)值並保留相關 資料。值得注意的是,用於模式選擇(Mode Decision) 時的 lambda 值和用於移動 預估(Motion Estimation) 的 lambda 值為不同的兩個值;上例中的(a)(b)屬於移動 預估(ME),而(c)屬於模式選擇(Mode Decision)。

(32)

20

第三章 提出的快速演算法

3.1 相關演算法回顧

相對於多參考幀 (multi reference frame,MREF) 演算法所帶來的顯著畫質提升,

隨著參考張數而線性增加的額外時間成為多參考幀 (MREF) 演算法最大的缺點。

本演算法(PMV) 以時間大幅縮短為出發點,並以品質僅稍微下降的目標來設計,

期望能以接近單一參考幀 (single-reference frame) 的時間成本上得到近似於多 參考幀 (MREF) 的品質。

圖 3-1. 使用前一張的資訊估測對前第二張的 ME 結果.

連續的幀(frame) 由於時間點接近,彼此有較強的關連性(時間關連性)。以第 n 張的任一區塊而言,可以這樣描述和第 n-1 張區塊及第 n-2 張區塊的關係:

Frame 𝑛 − 2 Frame 𝑛 − 1 Frame 𝑛 𝑀𝑉 𝑛−2

𝑀𝑉 𝑛−1 →(𝑛−2)

𝑀𝑉 𝑛−1

(33)

21

𝑀𝑉 𝑛−2≈ 𝑀𝑉 𝑛−1+ 𝑀𝑉 𝑛−1 →(𝑛−2) (3-1)

由式子(1)我們得知 𝑀𝑉 𝑛−2 可由 𝑀𝑉 𝑛−1 和 𝑀𝑉 𝑛−1 →(𝑛−2) 相加後獲得,在連 續幀(frame) 有高時間關連性的條件下式子(1)會更趨近相等,於是我們重新設計 公式為:

𝑀𝑉 𝑛−𝑙 = 𝑀𝑉 𝑛−(𝑙−1)+ 𝑀𝑉 𝑛−𝑙+1 →(𝑛−𝑙) (3-2)

求出 𝑀𝑉 𝑛−𝑙 時相加的對象侷限於其前一張 (見圖 3-2.),基於時間點接近關聯 性較高的理由這樣能夠得到更準確的結果。然後 𝑀𝑉 𝑛−𝑙−1 →(𝑛−𝑙) 最初是由第 n 張的前一張所算出,意即由 𝑀𝑉 𝑛−1+ 𝑀𝑉 𝑛−1 →(𝑛−2) 求得,同樣是為了確保時 間關聯性高帶來較佳結果,接下來根據(2)式一路做到𝑀𝑉 𝑛−𝑓−1 →(𝑛−𝑓),f 是多參 考幀(MREF) 所需的張數,因此 𝑙 = 2~𝑓。

圖 3-2. 使用前第l-1 張估測前第 l 張的 ME 結果.

Frame 𝑛 − 𝑙 Frame 𝑛 − (𝑙 − 1) Frame 𝑛 𝑀𝑉 𝑛−𝑙

𝑀𝑉 𝑛−𝑙+1 →(𝑛−𝑙)

𝑀𝑉 𝑛−(𝑙−1)

(34)

22

以第一次的計算 (即 𝑀𝑉 𝑛−2= 𝑀𝑉 𝑛−1+ 𝑀𝑉 𝑛−1 →(𝑛−2) ) 而言,𝑀𝑉 𝑛−1 是由 第 n 張對前一張做全域搜尋(full search) 所得到的最佳移動向量(Motion Vector),

𝑀𝑉 𝑛−1 →(𝑛−2) 是由一個快速但結果非常接近最佳解的方法求得,由兩者的和來

計算出 𝑀𝑉 𝑛−2 的近似解,此解近似於對第 n-2 張做全域搜尋(full search) 的結 果,但省下非常大量的時間。

在本篇提出的方法是在求出 𝑀𝑉 𝑛−1 →(𝑛−2) 的快速方法上做改良,以往有 Yeping Su 等人[9]、

Sung-Eun Kim

等人

[10]

和 Mei-Juan Chen 等人[11] 在同樣條件 下提出的各種方法,Yeping Su 和 Ming-Ting Sun[9]最早提出此快速演算法架構,

Sung-Eun Kim

等人[10] 和 Mei-Juan Chen 等人[11] 皆以此為背景做出改良演算法。

Yeping Su 等人的方法以比重平均法 (Weighted Average Method)[9] 為中心,

Sung-Eun Kim 等人

的方法以取中位數法為中心[10],Mei-Juan Chen 等人的方法以 尋找覆蓋程度最大的 block size 為中心[11],本篇則是提出以 PMV(Predicted

Motion Vector) 為中心的方法。

3.2 使用 PMV (Predicted Motion Vector) 的快速演算法

本論文提出的方法(PMV) 以 MVP (Motion Vector Prediction) 為核心來估計 𝑀𝑉 𝑛−1 →(𝑛−2) ,進而快速估得 𝑀𝑉 𝑛−2 (詳見 圖 3-3.) 。

(35)

23

圖 3-3. PMV 演算法.

A、B、C、D、E 為五個大小相等的 4x4 區塊,本演算法計算上亦以 4x4 區

塊為基本單位;首先由 𝑀𝑉 𝑛−1 反推出在 Frame n-1 中最相似區塊所在之處,找 出在貼齊格線的區塊中覆蓋率最高的區塊當做 PMV 的基準 (此例中最高者為 區塊 E)。PMV 演算法是由基準區塊鄰近三個區塊 (多半為 A,B,C 這三個位置) 的移動向量(Motion Vector) 求出中位數當成結果 ( x 和 y 向量分別取中位數 ),

基於“物件必定由一個以上的區塊組成”、“同一個物件的區塊會有相同的移動 向量(MV)”等理由,PMV 法有相當準確的移動向量(MV) 預測結果。

由 PMV 演算法得到區塊 E 的預測結果,此結果即是區塊 E 對 Frame n-2 的移 動向量(MV),也就是說:

Frame 𝑛 之前的移動向量記錄

(Frame 𝑛 − 1)

A

B C

D 𝑀𝑉 𝑛−1 E

(36)

24

𝑃𝑀𝑉(𝐸) ≈ 𝑀𝑉 𝐸 = 𝑀𝑉 𝑛−1 →(𝑛−2) (3-3)

接下來進行方程式 (3-1) 的計算,就可得到 𝑀𝑉 𝑛−2。取代了 Frame n 對 Frame n-2 的完整移動預估(ME) 計算,使用此快速演算法來估算省下大量的時間,接

下來 Frame n 對 Frame n-3、Frame n-4、Frame n-5 ~ Frame n-f ( f 是多參考 幀(MREF) 所需的張數) 皆以此演算法估算出移動向量(MV),在 f 個對象 (n-1 ~ n-f) 中取出 RDcost 值最小者當成最後的結果。

以下為本演算法流程圖:

(37)

25

Frame N-1 ME

(complete step in“BlockMotionSearch()”)

Guess MV by PMV algorithm ( to Frame N-l )

(Calculation)

Choose best MV from guess MV and Motion Vector Predictor

Sub-pixel MotionEStimation

If l<=f

l=l+1

Choose best MV

from Frame N-l to Frame N-2 Start Frame N-l ME ( l=2~f )

Get Original Block

Get Motoin Vector Predictor ( inside Frame N )

圖 3-4. PMV 演算法流程圖.

(38)

26

(step 1) Frame N 對 Frame N-1 做一次完整全域搜尋(Full Search)。

(step 2) 開始做 Frame N 對 Fame N-l 的移動預估(ME),以一個區塊為基準,

首先算出該區塊的Motion Vector Predictor,然後進行 PMV 演算法並估算出 一組移動向量(MV),接下來由兩者中選出最佳解當作最後結果。

(step 3) 以 step2 的結果去做子像素移動預估(Sub-pixel ME),得到一組移動向

量(MV),此為 Frame N-l 的最佳移動向量(MV)。

(step 4) 若 l 並非第 f 張(最後一張),則 l=l+1 然後回到 step2。

(step 5) 由總共 f 個移動向量(MV) 結果中選出最佳解,當作此區塊的最後結 果。

在以上流程中“選出最佳解”的部份,是以 Optimization function J 為基準來 做的,公式如下:

𝐽 = 𝐷 + 𝜆𝑅 (3-4)

此最佳化公式目標在於取得 D (Distortion,失真度) 和 R (Rate,耗用位元數) 兩者的最小值,不同於傳統只考慮最小失真度(Distortion) 的情況,H.264 同時要 求所需的位元數(Rate) 為最小,於是形成“同時考慮最小失真度(Distortion) 及最 小位元率(Rate)”的最佳解選擇方式。

(39)

27

其中失真度(Distortion) 公式如下:

SAD(F, G) = |F(s) − G(s)| (3-5)

位元率(Rate) 的部份考慮的是移動向量(MV) 所耗用的位元數,λ 通常為一常 數。

3.3 省略 Predicted MV 計算的快速演算法

在前面的文中提到 MVP(motion vector prediction)[7] 已經是移動預估(ME) 過 程中不可缺少的步驟,搭配此原則可以使本演算法省去計算 預測移動向量

(prediction MV) 的時間,修改後流程圖如下:

(40)

28

Frame

N-1

ME

(complete step in“BlockMotionSearch()”)

Guess MV by PMV algorithm ( to Frame

N-l

)

(Loading Memory)

Choose best MV from guess MV and Motion Vector Predictor

Sub-pixel MotionEStimation

If

l<=f

l=l+1

Choose best MV from Frame

N-l

to Frame

N-2

Start Frame

N-l

ME (

l=2~f

)

Get Original Block

Get Motoin Vector Predictor ( inside Frame

N

)

Sotrage Motion Vector Predictor of Frame

N-l

MV predictor Storage of Frame

N-1~N-f

圖 3-5. 改良後的 PMV 演算法流程圖.

(41)

29

(step 1) Frame N 對 Frame N-1 做一次完整全域搜尋(Full Search),並儲存 Frame N-1 所有 block 的 MV Predictor。

(step 2) 開始做 Frame N 對 Frame N-l 的移動預估(ME),以一個區塊為基準,

首先算出該區塊的 Motion Vector Predictor,並且儲存起來供之後備用;由儲存空 間取出位於 Frame N-(l-1) 與此區塊同一位置 MV Predictor,進行移動預估(ME) 估算後,與本次算出的 Motion Vector Predictor 兩者比較取出最佳解。

(step 3),(step 4),(step 5) 與之前相同。

由圖 3-6.圖例再解釋一下流程。

圖 3-6. 改良後的 PMV 演算法:省略 MVP 計算.

N-x

N-f N

Calculate Frame N-x ( ref to N-(x+1) )

N-x

N-f N

Calculate Frame N-(x-1) ( ref to N-(x+1) ) Storage Motion Vector Predictor of N-x

Guess MV by storage MVP of N-x

… … …

… …

N-(x-1) N-(x+1)

N-(x+1)

(42)

30

當 Frame N-x 對前一張 ( frame N-(x+1) ) 做 ME 的時候所計算的出的 MV prediction 會被保留到記憶體中備用;在進行 Frame N-(x-1)的 ME 時,第一次 ME 計算是對前一張 ( Frame N-x ) 進行全域搜尋(full search),第二次的時候原本 要對前第二張 ( Frame N-(x+1) ) 進行 PMV 演算法然後進行移動預估(ME),現在 直接取出之前 Frame N-x 對前一張的 MV prediction 來代替 PMV 演算法的計算,

省下做 PMV 演算法的時間。

以上的方式簡稱 PMV:Load Memory。

(43)

31

第四章 實驗結果

4.1 系統環境

在考慮多參考幀(MREF) 的情況下,假設以一個區塊使用全域搜尋(full Search) 對某一個幀(frame) 計算移動預估(ME) 所需花掉時間是 𝑇𝑀𝑙 (𝑙 = 1~𝑓),正常情況 下所需花費的時間為:

𝑇𝑀𝐸(𝑀𝑢𝑙𝑡𝑖 _𝑅𝑒𝑓 ) = 𝑇𝑀1 + 𝑇𝑀2 + 𝑇𝑀3 + 𝑇𝑀4 + 𝑇𝑀5 + ⋯ + 𝑇𝑀𝑓 (4-1)

( f 為多參考幀(MREF) 設定的幀(frame) 數 );若以本演算法來考慮時間的消耗,

則所需時間改寫如下:

𝑇𝑀𝐸(𝑃𝑀𝑉 )= 𝑇𝑀1 + 𝑇𝑀𝑉 𝑃𝑟𝑒𝑑𝑖𝑐𝑡𝑜𝑟2 + 𝑇𝑃𝑀𝑉2 + 𝑇𝑆𝑢𝑏𝑀𝐸2 + ⋯ + (𝑇𝑀𝑉 𝑃𝑟𝑒𝑑𝑖𝑐𝑡𝑜𝑟𝑓

+𝑇𝑃𝑀𝑉𝑓 + 𝑇𝑆𝑢𝑏𝑀𝐸𝑓 ) (4-2)

( 𝑇𝑀𝑉 𝑃𝑟𝑒𝑑𝑖𝑐𝑡𝑜𝑟𝑙 為該區塊計算 Motion Vector Predictor 的時間,𝑇𝑃𝑀𝑉𝑙 為該區塊進 行 PMV 演算法所需的時間,𝑇𝑆𝑢𝑏𝑀𝐸𝑙 為子像素移動預估(Sub-pixel ME) 所需的時間,

l = 2~f );若 PMV 演算法使用 Load Memory 方式取得結果,PMV 演算法的時間 也可省下:

(44)

32

𝑇𝑀𝐸(𝑃𝑀𝑉) = 𝑇𝑀1 + 𝑇𝑀𝑉 𝑃𝑟𝑒𝑑𝑖𝑐𝑡𝑜𝑟2 + 𝑇𝑆𝑢𝑏𝑀𝐸2 + ⋯ + (𝑇𝑀𝑉 𝑃𝑟𝑒𝑑𝑖𝑐𝑡𝑜𝑟𝑓 + 𝑇𝑆𝑢𝑏𝑀𝐸𝑓 ) (4-3)

由於 (𝑇𝑀𝑉 𝑃𝑟𝑒𝑑𝑖𝑐𝑡𝑜𝑟𝑙 + 𝑇𝑆𝑢𝑏𝑀𝐸𝑙 ) ≪ 𝑇𝑀𝑙 ,考慮總和起來花掉的時間本演算法將會相 當接近單一參考幀(Single Reference) 所花費的時間:

𝑇𝑀𝐸(𝑆𝑖𝑛𝑔𝑙𝑒 _𝑅𝑒𝑓 ) ≈ 𝑇𝑀𝐸(𝑃𝑀𝑉)≪ 𝑇𝑀𝐸(𝑀𝑢𝑙𝑡𝑖 _𝑅𝑒𝑓 ) (4-4)

( 𝑇𝑀𝐸(𝑆𝑖𝑛𝑔𝑙𝑒 _𝑅𝑒𝑓 ) 是只對前一張做移動預估(ME) 所需的時間,𝑇𝑀𝐸(𝑀𝑢𝑙𝑡𝑖 _𝑅𝑒𝑓 ) 是對 f 張做全域搜尋(full search) 所需的時間,𝑇𝑀𝐸(𝑃𝑀𝑉) 是本演算法做 f 張移動預估

(ME)所需的時間。)

選出了涵蓋各種特性的影片共十段來進行實驗,影片分別有 akiyo_qcif.yuv (300 frames) , carphone_qcif.yuv (382 frames) , claire_qcif.yuv (494 frames) , coastguard_qcif.yuv (300 frames),container_qcif.yuv (300 frames),foreman_qcif.yuv (300 frames),mobile_qcif.yuv (300 frames),mother-daughter_qcif (300frames).yuv,

news_qcif.yuv (300 frames),silent_qcif.yuv (300 frames),實驗參數簡列如下:

(45)

33

.參考張數(REF) = 5

.量化參數(QP) = 30

.搜尋範圍(Search Range) = 16

.所有參考片段(sequence)皆是 QCIF(176x144) 解析度

.流量控制(Rate Control) 關閉

.快速移動預估(FME) 開啟

.模式選擇(Mode Decision) 關閉 (基本區塊為 16x16 大小)

.所有的片段(sequence) 皆以第一張為 I 幀其他為 P 幀的方式來編碼

使用的軟體是 JM11.0[6],此為 H.264 環境下最具公信力之參考軟體,在 Visual Studio® 6 環境下編譯,使用的 OS 為Microsoft® Windows XP SP2,於Pentium® 4

2.4GHz CPU 上進行實驗。

(46)

34

表 I. 不同演算法間的 PSNR 值比較.

( PSNR 採用“Average Y PSNR”,Diff = PSNR(Method) – PSNR(JM ref1) ) PSNR Y (dB)

JM reference

(ref=1)

JM reference

(ref=5)

PMV

Avg PSNR Avg PSNR Diff Avg PSNR Diff

akiyo 36.282 36.371 0.089 36.345 0.063 carphone 34.447 34.744 0.297 34.737 0.29

claire 37.719 37.804 0.085 37.752 0.033 coastguard 32.275 32.343 0.068 32.318 0.043 container 34.117 34.159 0.042 34.171 0.054 foreman 33.919 34.167 0.248 34.096 0.177 mobile 30.774 31.031 0.257 30.952 0.178 M & D 35.508 35.649 0.141 35.65 0.142 news 34.719 34.734 0.015 34.746 0.027 silent 33.957 33.985 0.028 33.982 0.025

由表 I.可以發現使用全域搜尋(full Search) 的多參考幀(MREF) 方法(JM ref=5) 有大幅度的PSNR 品質提升,與之相較起來我們提出的快速演算法(PMV) 品質雖 然不及使用全域搜尋(full Search) 的多參考幀(MREF) 方法,但仍保有相當程度的 PSNR 品質提升。

(47)

35

表 II. 不同演算法間的 Bit-Rate 值比較.

( Variation = BitRate (Method ) − BitRate (JM ref 1)

BitRate (JM ref 1) x 100% ) Bit-Rate (bits/secnod)

JM reference

(ref=1)

JM reference

(ref=5)

PMV (by load mem)

Avg Bit-Rate

Avg Bit-Rate

Variation (%)

Avg Bit-Rate

Variation (%)

akiyo 21198 20905 -1.4 20978 -1.04 carphone 133834 126072 -6.15 126442 -5.84 claire 26686 26451 -0.88 26568 -0.44 coastguard 160021 159409 -0.38 160050 0.01 container 32527 30928 -5.17 30782 -5.66 foreman 119410 115931 -3.0 117066 -2.0

mobile 341616 312798 -9.21 319159 -7.03 M & D 34639 34771 0.37 34877 0.68 news 66896 66874 -0.03 66830 -0.09 silent 75468 74669 -1.07 74633 -1.11

和表 I.的情況相似,由表 II.可以得知使用全域搜尋(full Search) 的多參考幀 (MREF) 方法(JM ref=5) Bit-Rate 品質也有所提升,我們提出的快速演算法(PMV) 品質提升雖然略差於使用全域搜尋(full Search) 的多參考幀(MREF) 方法,但仍然 擁有一定的品質提升。

(48)

36

表 III. 不同演算法間移動預估(ME)花費時間的比較.

( Increase Ratio = MEtime (Method ) MEtime (JM ref 1) ) ME Time (ms) JM

reference (ref=1)

JM reference

(ref=5)

PMV (by load mem)

ME Coding

Time

ME Coding

Time

Increase Ratio

ME Coding

Time

Increase Ratio

akiyo 96609 488609 5.05 109781 1.13 carphone 127378 634947 4.98 145425 1.14 claire 158319 807658 5.1 181779 1.14 coastguard 97109 492688 5.07 113768 1.17 container 96886 485783 5.01 106989 1.1

foreman 98655 493806 5.0 111909 1.13 mobile 96556 490269 5.07 112090 1.16 M & D 95576 487995 5.1 110454 1.15 news 96837 486617 5.02 108322 1.11 silent 95336 488798 5.12 112901 1.18

如同時間複雜度分析中所描述的,我們提出的快速演算法(PMV) 花費的計算時 間近似於單一參考幀(Single Reference) 的計算時間;由表 III.可發現我們提出的 方法(PMV) 僅花去單一參考幀(Single Reference) 所需時間的一倍多,相較起來全 部使用全域搜尋(full Search) 的多參考幀(MREF) 方法(JM ref=5)花費時間則是單 一參考幀(Single Reference) 的五倍,此處視參考張數的不同時間會呈現線性成長,

然而我們提出的方法(PMV) 必定保持在一點多倍左右,因此參考張數越多對我們 提出的方法(PMV) 時間節省幅度越大。在品質方面我們提出的方法(PMV) 雖然有 些略差於使用全域搜尋(full Search) 的多參考幀(MREF) 方法,但是實驗上表現出

(49)

37

來的結果(請參考表 I.及表 II.)並沒有太大的落差,我們提出的方法(PMV) 仍然保 有一定程度的品質提升。

以下分別列出各個樣本的 RD 曲線圖(RD-curve),此為一種檢驗品質的方式,任 一條線段代表某一種方法在各種狀況下表現出來的品質,若線段和線段間距離相 當接近則表示兩者品質相近,若兩者間保持距離則表示兩者的品質上有差距。以 下的圖 4-1.到圖 4-10.每張圖皆有四條線,分別是使用單一參考幀(Single Reference

Frame)的方法(參考張數=1)、使用全域搜尋(full Search) 的多參考幀(MREF) 方法 (參考張數=5)、對照用的 Weighted Average 法(參考張數=5) 以及我們提出的快速 演算法(PMV)(參考張數=5)。以圖 4-1.為例,四條線皆相當靠近,表示四個方法在 此測詴片段上得到的品質上相差無幾,另一方面也代表多參考幀(MREF) 方式對 此測詴片段沒有明顯效果;以圖 4-2.為例,使用單一參考幀(Single Reference Frame) 方法的線段與其他三條線保持了相當的距離,表示在此測詴影片上使用多參考幀

(MREF) 演算法可以得到不錯的品質提升,至於其他三條線接近重疊的現象,則 表示 Weighted AVG 法及我們提出的快速演算法(PMV) 在品質上並不會和使用全 域搜尋(full Search) 的多參考幀(MREF) 方法相差太多。進一步觀察圖 4-3.到圖

4-10.可以發現我們提出的快速演算法(PMV)其曲線皆相當貼近使用全域搜尋(full Search) 多參考幀(MREF) 方法的曲線,表示我們提出的快速演算法(PMV) 並沒有 因為時間的縮短而犧牲品質,除了觀察表I.到表 III.之外,也可以藉由觀察 RD 曲 線圖(RD-curve)來確定此一事實。

(50)

38

圖 4-1. akiyo 的 RD 曲線圖.

圖 4-2. carphone 的 RD 曲線圖.

(51)

39

圖 4-3. clair 的 RD 曲線圖.

圖 4-4. coastguard 的 RD 曲線圖.

(52)

40

圖 4-5. container 的 RD 曲線圖.

圖 4-6. foreman 的 RD 曲線圖.

(53)

41

圖 4-7. mobile 的 RD 曲線圖.

圖 4-8. mother-daughter 的 RD 曲線圖.

(54)

42

圖 4-9. news 的 RD 曲線圖.

圖 4-10. silent 的 RD 曲線圖.

(55)

43

表 Ⅳ. 加權平均法(Weighted AVG)及提出的多參考幀演算法(PMV) 間的移動 預估(ME)花費時間比較.

( Ratio = MEtime (full search )

MEtime (Proposed _Method ) ) ME Time(s) Weighted Average

(ref=5)

Proposed Method (PMV) (ref=5)

full search

Weighted

AVG Ratio full search PMV Ratio carphone 55.8s 28.7s 1.94 634s 145s 4.36 mobile 354.2s 133.5s 2.65 490s 112s 4.37

在與其他方法的比較上,我們拿以全域搜尋(full Search) 做了五張(ref=5) 的原 始多參考幀(Multiple Reference Frame) 方法為基準,來和加權平均法(Weighted

AVG) 做效能上的比較。礙於兩個方法實驗環境上的不同,使用相對的時間比值 來做為比較的依據會比較適當。由表Ⅳ可以發現到我們提出的快速演算法(PMV) 比加權平均法(Weighted AVG) 更接近理想的結果(請參照公式 4-3),Ratio 值越接 近 5 表示估算其他四張所花費的時間更少,更接近本演算法的原意(請參考 4.1

節的時間複雜度分析)。另外在品質方面(請參考圖 4-1 到 4-10),我們提出的方法 與原始多參考幀(Multiple Reference Frame) 方法的線段幾乎重疊,顯示出我們的 方法並沒有因為快速演算法的效益而造成太多品質上的耗損。至於加權平均法 (Weighted AVG) 在時間節省上效率不彰的原因,我們推論為該演算法為了保持品 質不會過於太差,在演算法中花了較多時間在前處理的部份;就移動預估(ME) 在 整個編碼時間裡佔有大量時間的立場來看,在每次的移動預估(ME) 之前增加的

(56)

44

前處理時間必定使得編碼時間連帶增加,此為一種加權平均法(Weighted AVG)並 未達到預期時間節省目標的推論。又或者加權平均法(Weighted AVG) 實驗時做的 張數太少,或許實驗時編碼的幀數需要更多才能顯現出加權平均法(Weighted

AVG) 的特性,此為另一種並未達到預期時間節省目標的推論。

4.2 效能比較

表 Ⅴ.(a) 單一參考幀(ref=1)及多參考幀(ref=5)間的 PSNR 比較.

( PSNR 採用“Average Y PSNR”, Diff = PSNR(JM_ref5) – PSNR(JM_ref1) )

(b) 單一參考幀(ref=1)及多參考幀(ref=5)間的 Bit-Rate 比較.

( Variation = BitRate (JM _ref 5) − BitRate (JM _ref 1)

BitRate (JM _ref 1) x 100% ) (a) (b)

PSNR Y (dB) JM

reference (ref=1)

JM reference

(ref=5)

Avg PSNR Avg PSNR Diff

akiyo 36.282 36.371 0.089 carphone 34.447 34.744 0.297 claire 37.719 37.804 0.085 coastguard 32.275 32.343 0.068 container 34.117 34.159 0.042 foreman 33.919 34.167 0.248 mobile 30.774 31.031 0.257 M & D 35.508 35.649 0.141 news 34.719 34.734 0.015 silent 33.957 33.985 0.028

Bit-Rate (bits/secnod) JM

reference (ref=1)

JM reference

(ref=5)

Avg Bit-Rate

Avg Bit-Rate

Variation (%)

akiyo 21198 20905 -1.4 carphone 133834 126072 -6.15

claire 26686 26451 -0.88 coastguard 160021 159409 -0.38 container 32527 30928 -5.17 foreman 119410 115931 -3.0

mobile 341616 312798 -9.21 M & D 34639 34771 0.37 news 66896 66874 -0.03 silent 75468 74669 -1.07

(57)

45

4.2.1 原始多參考幀(Multiple Reference Frame) 和單一參考幀(Single Reference Frame) 的比較

多參考幀(Multi Reference Frame) 是 H.264 的新規格,以增加較多的參考對象 來提升壓縮品質;由表Ⅴ可以發現比起只參考一張(原始方式),使用多參考幀

(MREF) 的方法有顯著品質改善(PSNR 上升,Bit-Rate 下降)。

其中品質提升較為顯著的有 carphone、foreman、mobile,這幾個樣本比其他 的樣本有著更高的動量,但是由於侷限於同一個場景之內,使用多參考幀(MREF) 的效果會比其他的樣本更好,因為其他的樣本動量並不大,使用單一參考幀

(Single Reference Frame) 就能夠得到不錯的預測結果。

但是使用多參考幀(MREF)的缺點也相當的明顯,由於參考張數增加的關係,所 花費在移動預估(ME)計算上的時間同時呈現線性成長;由表Ⅵ可以觀察到設定為

5 張 的多 參考 幀 (MREF) 方式同 時 也花費 等同 於 單一 參考 幀(Single Reference Frame)(原始設定) 5 倍的時間。

我們將提出一個品質和多參考幀(MREF) 一樣好但時間花費上近似於單一參考 幀(Single Reference Frame) 的快速演算法,此方法彌補多參考幀(MREF) 花費時間 線性成長的缺點並保留多參考幀(MREF) 品質提升的優點。

(58)

46

表 Ⅵ. 單一參考幀(ref=1)及多參考幀(ref=5)間的移動預估(ME)花費時間比 較.( Increase Ratio = MEtime (JM _ref 5)

MEtime (JM _ref 1) )

4.2.2 提出的快速演算法和原始多參考幀(Multiple Reference Frame) 的比較

表Ⅶ 和表Ⅷ 是我們提出的快速演算法與原始多參考幀(MREF)方法的比較。在 PSNR 方面,可以發現到除了 mobile、foreman 這些移動較劇烈、不規則的樣本 以外,快速演算法在其他的樣本上所表現出來的品質皆相當接近於原始多參考幀

(MREF) 的品質;在 Bit-Rate 也有相似的情形,快速演算法和原始多參考幀(MREF) 法品質上的差距皆在百分之零點幾之內;縱合以上兩點所述,表示我們所提出的

ME Time (ms) JM

reference (ref=1)

JM reference

(ref=5)

ME Coding

Time

ME Coding

Time

Increase Ratio

akiyo 96609 488609 5.05 carphone 127378 634947 4.98 claire 158319 807658 5.1 coastguard 97109 492688 5.07

container 96886 485783 5.01 foreman 98655 493806 5.0

mobile 96556 490269 5.07 M & D 95576 487995 5.1

news 96837 486617 5.02 silent 95336 488798 5.12

(59)

47

快速演算法在品質上非常接近原始多參考幀(MREF)方法。

表 Ⅶ.(a) 原始多參考幀(ref=5)法及提出的多參考幀(ref=5)法(PMV)間的

PSNR 比較.

( PSNR 採用“Average Y PSNR”, Diff = PSNR(Proposed_Method) – PSNR(JM_ref5) )

(b) 原始多參考幀(ref=5)法及提出的多參考幀(ref=5)法(PMV)間的

Bit-Rate 比較.

( Variation = BitRate (Proposed _Method ) − BitRate (JM _ref 5)

BitRate (JM _ref 5) x 100% ) (a) (b)

由時間消耗上來看 (參照表Ⅷ),我們提出的快速演算法和原始多參考幀(MREF) 法有極大的差距,相較於原始多參考幀(MREF)法的預設值 5 張,快速演算法所花

PSNR Y (dB) JM

reference (ref=5)

Proposed Method

(PMV)

Avg PSNR Avg PSNR Diff

akiyo 36.371 36.345 -0.026 carphone 34.744 34.737 -0.007 claire 37.804 37.752 -0.052 coastguard 32.343 32.318 -0.025 container 34.159 34.171 0.012 foreman 34.167 34.096 -0.071 mobile 31.031 30.952 -0.079 M & D 35.649 35.65 0.001 news 34.734 34.746 0.012 silent 33.985 33.982 -0.003

Bit-Rate (bits/secnod) JM

reference (ref=5)

Proposed Method

(PMV)

Avg Bit-Rate

Avg Bit-Rate

Variation (%)

akiyo 20905 20978 0.34 carphone 126072 126442 0.29 claire 26451 26568 0.44 coastguard 159409 160050 0.40 container 30928 30782 -0.47

foreman 115931 117066 0.97 mobile 312798 319159 2.03 M & D 34771 34877 0.30 news 66874 66830 -0.06 silent 74669 74633 -0.04

(60)

48

費的時間相當接近於計算 1 張 (單一參考幀,Single Reference Frame) 所花的時 間 (由表Ⅷ可以發現所花費時間皆在 4 點多倍左右);以花費時間接近 1 張但得到 等同於計算 5 張的效果,這就是本演算法的主要貢獻之一。

表 Ⅷ. 原始多參考幀(ref=5)法及提出的多參考幀(ref=5)法(PMV)間的移動預 估(ME)花費時間比較.

( Decrease Ratio = MEtime (JM _ref 5)

MEtime (Proposed _Method ) ) ME Time (ms) JM

reference (ref=5)

Proposed Method

(PMV)

ME Coding

Time

ME Coding

Time

Decrease Ratio

akiyo 488609 109781 4.45 carphone 634947 145425 4.36 claire 807658 181779 4.44 coastguard 492688 113768 4.33 container 485783 106989 4.54 foreman 493806 111909 4.41 mobile 490269 112090 4.37 M & D 487995 110454 4.41 news 486617 108322 4.49 silent 488798 112901 4.32

(61)

49

4.2.3 提出的快速演算法與單一參考幀(Single Reference Frame)的比較 表 Ⅸ.(a) 單一參考幀(ref=1)及提出的多參考幀(ref=5)法(PMV) 間的 PSNR

比較.

( PSNR 採用“Average Y PSNR”, Diff = PSNR(Proposed_Method) – PSNR(JM_ref1) )

(b) 單一參考幀(ref=1)及提出的多參考幀(ref=5)法(PMV) 間的 Bit-Rate 比較.

( Variation = BitRate (Proposed _Method ) − BitRate (JM _ref 1)

BitRate (JM _ref 1) x 100% ) (a) (b)

如同前面提及的多參考幀(MREF) 優點一樣,我們所提出的快速演算法在移動 稍微劇烈的樣本有較佳的品質提升,對於較為靜態以及有大量動態的樣本仍有一 定程度的品質提升 (請參照表Ⅸ);從消耗時間上來看 (見表Ⅹ),只比單一參考 Bit-Rate (bits/secnod)

JM reference

(ref=1)

Proposed Method

(PMV)

Avg Bit-Rate

Avg Bit-Rate

Variation (%)

akiyo 21198 20978 -1.04 carphone 133834 126442 -5.84 claire 26686 26568 -0.44 coastguard 160021 160050 0.01 container 32527 30782 -5.66 foreman 119410 117066 -2.0

mobile 341616 319159 -7.03 M & D 34639 34877 0.68 news 66896 66830 -0.09 silent 75468 74633 -1.11 PSNR Y (dB)

JM reference

(ref=1)

Proposed Method

(PMV)

Avg PSNR Avg PSNR Diff

akiyo 36.282 36.345 0.063 carphone 34.447 34.737 0.29

claire 37.719 37.752 0.033 coastguard 32.275 32.318 0.043 container 34.117 34.171 0.054 foreman 33.919 34.096 0.177 mobile 30.774 30.952 0.178 M & D 35.508 35.65 0.142 news 34.719 34.746 0.027 silent 33.957 33.982 0.025

(62)

50

幀(Single Reference Frame) 多花一點點的時間,去除了多參考幀(MREF) 耗費時間 呈現線性增加的缺點,我們提出的快速演算法大幅提升了多參考幀(MREF)的可用 性,並且對變動性稍大的場景有著不錯的品質提升。

表 Ⅹ. 單一參考幀(ref=1)及提出的多參考幀(ref=5)法(PMV) 間的移動預估 (ME)花費時間比較.

( Increase Ratio = MEtime (Proposed _Method ) MEtime (JM _ref 1) )

ME Time (ms) JM

reference (ref=1)

Proposed Method

(PMV)

ME Coding

Time

ME Coding

Time

Increase Ratio

akiyo 96609 109781 1.13 carphone 127378 145425 1.14 claire 158319 181779 1.14 coastguard 97109 113768 1.17 container 96886 106989 1.1

foreman 98655 111909 1.13 mobile 96556 112090 1.16 M & D 95576 110454 1.15 news 96837 108322 1.11 silent 95336 112901 1.18

(63)

51

第五章 結論與未來展望

5.1 結論

在本論文中我們提出了一種快速的多參考幀動態預測演算法,基於“連續的 frame 有較強的關連性”、“一個物件通常涵蓋數個 block”等等原因,本演算法 可以得到不錯的效果。和原始的多參考幀方式比起來,一方面節省了將近四倍的 時間 (以參考幀張數為五而言),並且尚能保有一定的壓縮品質;較加權平均法

(Weighted AVG) 來說時間的節省更多(節省效率較好),以上皆為本演算法貢獻。

另外,由於 PMV 已成為動態預測 (Motion Estimation)時的固定流程,“藉由計算 時保留此值以後用來進行快速多參考幀預測計算”為出發點會使得多參考幀動 態預測的硬體設計更為簡單,此為本演算法貢獻之其二。

5.2 未來展望

更完整的去考慮參考軟體 JM 中 Motion Vector Prediction 的部份並重新設計取 得Predicted MV 的演算法,期望能夠以快速計算的方式取得而非使用之前的儲 存結果,如此才能夠減輕必須使用大量記憶體的負擔。另外,將此演算法轉換成 實際的硬體線路設計,也是一個可以進行的方向。

(64)

52

參考文獻

[1] “Draft ITU-T recommendation and final draft international standard of joint video specification (ITU-T Rec. H.264/ISO/IEC 14 496-10 AVC,)” in Joint Video Team (JVT) of ISO/IEC MPEG and ITU-T VCEG, JVTG050, 2003.

[2] “Special Issue on the H.264/AVC Video Coding Standard,” IEEE Trans. Circuits Syst. Video Tech., vol. 13, July 2003.

[3] Soon-kak Kwon, A. Tamhankar and K.R. Rao,“Overview of H.264/MPEG-4 part 10,”Journal of Visual Communication and Image Representation, Volume 17, Issue 2, April 2006, Pages 186-216.

[4] Atul Puri, Xuemin Chen and Ajay Luthra,“Video coding using the H.264/MPEG-4 AVC compression standard,”Signal Processing: Image Communication, Volume 19, Issue 9, October 2004, Pages 793-849.

[5] I. E. G. Richardson,“H.264 / MPEG-4 Part 10 : Intra

Prediction,”http://www.rgu.ac.uk/files/h264_intrapred.pdf, April 2003.

[6] Joint Video Team software, JM11.0,

http://iphome.hhi.de/suehring/tml/download/

[7] Gallant, M.; Cote, G.; Kossentini, F.;“An efficient computation-constrained block-based motion estimation algorithm for low bit rate video coding,”Image Processing, IEEE Transactions on Volume 8, Issue 12, Dec. 1999 Page(s):1816 - 1823, Digital Object Identifier 10.1109/83.806627.

[8] Sullivan, G.J.; Wiegand, T.;“Rate-distortion optimization for video

compression,”Signal Processing Magazine, IEEE, Volume 15, Issue 6, Nov. 1998 Page(s):74 - 90, Digital Object Identifier 10.1109/79.733497.

[9] Yeping Su; Ming-Ting Sun;“Fast multiple reference frame motion estimation for H.264/AVC,”Circuits and Systems for Video Technology, IEEE Transactions on Volume 16, Issue 3, March 2006 Page(s):447 - 452, Digital Object Identifier

10.1109/TCSVT.2006.869970.

(65)

53

[10] Sung-Eun Kim; Jong-Ki Han; Jae-Gon Kim;“An efficient scheme for motion estimation using multireference frames in H.264/AVC,”Multimedia, IEEE Transactions on Volume 8, Issue 3, June 2006 Page(s):457 - 466, Digital Object Identifier 10.1109/TMM.2006.870740.

[11] Chen, M.-J.; Li, G.-L.; Yi-Yen Chiang; Ching-Ting Hsu;“Fast multiframe motion estimation algorithms by motion vector composition for the MPEG-4/AVC/H.264 standard,”Multimedia, IEEE Transactions on Volume 8, Issue 3, June 2006 Page(s):478 - 487, Digital Object Identifier 10.1109/TMM.2006.870739.

參考文獻

相關文件

整數 基本的 整數的 Division Algorithm,

整數 基本的 整數的 Division Algorithm,

在 abelian group 最好用的性質就是其每個 subgroup 都 是 normal subgroup, 所以每次碰到有關 abelian group 的性質時, 我們都可先找一個 nontrivial subgroup 再利用其為

在 abelian group 最好用的性質就是其每個 subgroup 都 是 normal subgroup, 所以每次碰到有關 abelian group 的性質時, 我們都可先找一個 nontrivial subgroup 再利用其為

透過適切的活動提升閱讀深度及加強學習連 貫性 —— 優化中一單元中華文化及品德情意 範疇的學習內容

常生活的課題,增加學生對中國歷史、中 華民族和文化,以及國家發展的興趣;整

策劃較為周全的學校,能善用質性和量性 的評估數據,辨識學生需要加強的質素,並根

如圖,空間中所有平行的直線,投影在 image 上面,必會相交於一點(圖中的 v 點),此點即為 Vanishing Point。由同一個平面上的兩組平行線會得到兩個