1.素材(content)的重覆使用性(reusability)
2.適合網際網路上的應用
3.使用者和素材間的互動性
MPEG-4是整合現有視訊壓縮優點而發展的一套多媒體壓縮標準。
此標準具有 1.物件式(Object-based)編碼
2.抗錯式(Error-resilience)編碼
使其在應用上可針對不同的環境、不同的使用者之需求提供一個最適合的品質。
2.2.1 何謂物件式(Object-based)編碼
圖2.1
傳統的視訊壓縮技術皆是以一張畫面為壓縮的單位,而MPEG-4則將畫面再切割成更小的單位,以物件(Object)為壓縮的單位,因此原本是一張張畫面的視訊序列被分割成數個以物件為主的視訊序列。上圖為News的各個物件。
圖2.1(a)是News中的雙主播物件。
圖2.1(b)是一個播放芭蕾舞視訊之螢幕。
圖2.1(c)是MPEG-4 WORLD的標記。
圖2.1(d)是靜止的背景。
如果將所有物件組合起來即可得到圖2.1(f) 。
若覺得背景不好看可以選擇不顯示,如圖2.1(e) 。
或甚至換成其他的背景。
物件式(Object-based)編碼,包含了下面這三大纇:
實例說明MPEG4物件概念的運作方式
圖2.2 MPEG4物件概念的運作方式
實例說明MPEG4描述場景(scene)的方法
1.在一個已知的座標系下將media object放置在任何位置
2.改變media object的外型
3.編組(group)數個media object成為一個新的/複合(compound)的 media object
4.在一個media object上加入串流資料, 例如加入聲音, 移動材質, 移動參數(animation parameter)
5.和使用者互動(改變視角, 聲音的聆聽位置)
圖2.3 MPEG4描述場景(scene)的方法
2.2.2 抗錯式(Error-resilience)編碼
抗錯式編碼技術總共有四種工具,分別是
(1)再同步標記(Resynchronization Marker)
(2)資料分隔(Data Partition)
(3)可反向可變長度編碼(Reversible Variable Length Coding)
(4)檔頭延伸碼(Header Extended Code;HEC)
2.2.2.1 再同步標記
當壓縮後的資料以位元流的形式傳送時,一旦在傳輸過程中有錯誤發生,則解碼端將無法繼續正確的解碼,造成解碼後的影像品質迅速降低,這種現象稱為「失去同步」。為了使解碼端能夠與編碼端恢復同步,所以我們在位元流的許多地方加入一些獨特的「再同步標記」,一旦解碼端失去同步時,可以藉由搜索這些標記而再度與編碼端同步。在H.263裡,再同步記號是放在每一個GOB(Group of Blocks)的前端,如圖2.9所示。然而由於每一個GOB的資料量都不一樣,動作變化愈大的畫面,其GOB資料量也愈大,因此這種方法使得重要的GOB其發生錯誤的機率也比較大。MPEG-4則將這個方法加以改進,每隔一特定長度即加入同步標記,因此不再有以上的缺點。
藉著再同步標記我們可以將MPEG-4視訊位元流分為一個個長度大至相同的視訊封包(Video Packet;VP),每一個視訊封包裡包含了連續整數個MB,其結構如圖2.10所示。其中MB No.是該視訊封包的數個MB中第一個MB的編號,QP是量化參數(Quantization Parameter),而每一個MB的移動向量和DCT資料則混合編碼緊接在後。
圖2.4 MPEG-4視訊封包結構圖:
2.2.2.2 資料分隔
當在位元流中偵測到錯誤時,解碼端會去尋找下一個再同步標記,因此可以將錯誤隔離在兩個相鄰的再同步標記之間的數個MB裡。由於偵測到錯誤的地方通常與錯誤真正發生的地方會有一段差距,也就是說我們無法明確的判斷錯誤真正的發生位置,因此只好將這兩個相鄰的再同步標記之間的資料全部捨棄不用。
而MPEG-4的資料分隔工具在移動向量和DCT資料之間加入了一個獨特的移動邊界標記(Motion Boundary Marker;MBM),將這兩種不同性質的資料分隔開來,如圖2.11。如此一來,當DCT資料發生錯誤時,則表示可以正確的偵測到MBM,故MBM之前的資料包括移動向量部份仍然是正確無誤的,因此只需將DCT資料捨棄,移動向量依舊可以正常使用於移動補償。
2.2.2.3 可反向可變長度編碼(RVLC)
RVLC是一種特殊的可變長度編碼(Variable Length Coding;VLC),它的碼字藉由增加一些特定的字首(Prefix)和字尾(Suffix)使其能夠從反方向來解碼,表2.2列出一個簡單的例子。因此當解碼端以正方向解碼發現錯誤時,可以先找到下一個再同步標記,然後往回解碼直到它偵測到錯誤,經由這種雙方向的解碼,除了可以保留原來會被捨棄的資料外,還可以準確的顯示出錯誤發生的位置,如圖2.12所示。RVLC通常與資料分隔一起使用,以得到最大效益。
圖2.6 VLC解碼(a)和RVLC解碼(b)之比較
2.2.2.4 檔頭延伸碼(HEC)
在影像的位元流中,會將許多解碼時必備的重要資料放在檔頭,若在傳送的過程中檔頭部份發生錯誤,則解碼端必定無法正確的解碼。為了避免這種情況的發生,MPEG-4使用了一種叫做HEC的技術,在每個視訊封包中,設有1-bit長的HEC欄位,如圖2.13,當這個欄位設為1時,則表示這個視訊封包的檔頭除了放在原有的位置外,還會在視訊封包中另一個地方再複製一份,故一旦無法正確讀取原有的檔頭時,尚有備份的檔頭可供使用。
圖2.7 HEC在視訊封包中的位置