多媒體處理器上的MPEG-4 介紹及實作作者
文章推薦指數: 80 %
MPEG-1和MPEG-2是國際標準組織 (ISO) 的動畫專家小組 (MPEG) 最先制定的視訊標準,也是 ... 視覺資料的差異包括資料型態、來源、通訊方式以及廠商想利用視覺影像提供的 ...
多媒體處理器上的MPEG-4介紹及實作
作者:PaulFernandez,
MarkNadeskiandGeneLinofTexasInstruments本文刊登於新通訊元件雜誌2003年8月號
介紹
數位視訊已出現在各種應用,它的品質、可靠性和彈性都遠勝過傳統類比視訊;數位訊號允許使用者以全新方式觀看、存取和操控視訊,這和類比視訊也不相同。
MPEG-1和MPEG-2是國際標準組織
(ISO)的動畫專家小組(MPEG)
最先制定的視訊標準,也是讓數位視訊格式廣獲市場接受的重要關鍵;MPEG-4則是這兩種視訊標準的後繼者,可以提供更低位元速率、更大彈性和許多新特色,目前正領先跨入網際網路和行動上網的應用領域。
雖然MPEG-1、MPEG-2和H.263非常適合在它們原來設計的目標環境下工作,但是面對正在大舉進入市場的各種多媒體應用,這些標準並未提供適當的彈性,無法有效滿足它們的需求。
就在彈性和高效能發生衝撞的關鍵點上,最近才獲得採用的MPEG-4標準也開始進入這個領域。
MPEG-4是一種多媒體標準,專門設計來為不同應用提
供相互操作能力,某些應用的需求甚至截然不同;整體說來,絕大多數的多媒體應用都有著相同需求,它們必須能互動操作不同類型資料。
視覺資料的差異包括資料型態、來源、通訊方式以及廠商想利用視覺影像提供的功能,MPEG-4可做為設計人員技術基礎,使他們得以提供多媒體功能來支援所有這些資料需求。
MPEG-4工具箱
MPEG-4包含一組用來支援和加強這些應用的工具,包括形狀編碼
(shapecoding)、移動估算(motionestimation)
與補償、影像紋理編碼(texturecoding)、抗錯性、sprite編碼和可延展性。
若廠商無意實作整個標準,MPEG-4也提供許多定義良好的子集合,它們稱為「符合點」
(conformancepoints),可協助廠商很自由的將系統成本最佳化,不會對操作互通性造成任何影響。
結合這些能力,即可為設計人員帶來彈性和操作互通性都很好的途徑,使他們能產生極高品質的數位視訊繪圖,並支援各種不同的多媒體應用。
功能特色
MPEG-4標準是由一組工具所組成,能支援不同類別的各種應用;整體來說,它們可分成以下幾大類:
壓縮效率
–MPEG-4是以先前標準為基礎,但提供更高編碼效率,增加MPEG-4應用的市場接受度。
內容導向互動性
(content-basedinteractivity)–把視訊當成物件,而非視訊圖框,即可讓內容導向應用
(content-basedapplications)
付諸實現;此時只須提供更高效率的物件表示法、物件操控、位元串流編輯和物件導向延展能力(object-based
scalability),就能將內容互動性帶至更高水準。
適用於所有傳輸媒介
–就算在容易發生錯誤的環境,MPEG-4也很強健可靠,故可用於各種傳輸媒介,包括行動網路和實體連接線路。
結構和語法
MPEG-4視覺場景(visual
scene)可能包含一個或多個視訊物件,每個視訊物件都可藉由時間和空間資訊加以描述,包括它們的形狀、移動和紋理。
某些應用可能無法使用所有的MPEG-4工具,
原因可能是相關的額外處理負擔過於龐大,或是視訊物件的產生極為困難,此時MPEG-4視訊可直接對矩形圖框
(rectangularframe)進行編碼,它也是各種形狀物件中最簡單的一種(degenerate
cases)。
MPEG-4視覺位元串流會提供階層式的視覺場景描述,起始碼(startcodes)
則是特殊的編碼值,它們可以存取位元串流的每一層階層架構。
階層架構中的各層包括:
視覺物件序列
(VisualObjectSequence,簡稱VS):它是完整的MPEG-4場景,可能包含任何2-D或是3-D的自然或合成物件以及它們的加強層
(enhancementlayer)。
視訊物件
(VideoObject,簡稱VO):視訊物件會連結至場景中的某個2D元素,矩形圖框就是最簡單的例子;它也能是任意形狀的物件,對應於場景中的某個物件或是背景。
視訊物件層
(VideoObjectLayer,簡稱VOL):視訊物件支援可延展
(scalable)以及不可延展(non-scalable)
兩種編碼模式,實際編碼模式則由視訊物件層所代表的應用決定。
視訊物件層能支援可延展性編碼。
視訊物件平面群
(GroupofVideoObjectPlanes,簡稱GOV):視訊物件平面群是可選用的功能,它會提供視訊物件平面被獨立編碼的各點,讓位元串流中能夠加入多個隨機存取點。
視訊物件平面
(VideoObjectPlanes,簡稱VOP):視訊物件平面是在時間取樣的視訊物件,它們可以獨立取樣,也可以利用移動補償值進行取樣。
矩形可以代表傳統的視訊圖框。
視訊物件平面的使用方法有很多種,最常見的做法是讓它們包含某個視訊物件的時間取樣值的編碼視訊資料。
每個視訊物件平面都包含多個巨集區塊
(macroblock),每個巨集區塊則會包含四個8x8亮度區塊
(luminanceblock)以及兩個8x8色度區塊
(chrominanceblock)。
MPEG-4工具
視訊壓縮工具
視訊編碼解碼器(videocodec)
可以除去空間和時間的冗餘性,達到壓縮視訊的目的。
IntraCodedVOPS(I-VOPs)會利用視訊物件平面包含的資訊進行編碼,這能移除部份的空間冗餘性,圖框間編碼
(intercoding)
則會透過移動估算和補償來利用圖框間的時間冗餘性。
圖框間編碼有兩種模式,第一種是根據前面的視訊物件平面進行預測,這種模式稱為P-VOP;第二種則根
據前面和後面的視訊物件平面進行預測,稱為B-VOP。
這兩種編碼技術都是以過去的視訊標準為基礎,MPEG-4則會提供額外的工具來增加壓縮效率、抗錯
性和不同類型視訊物件的編碼能力。
形狀編碼工具(shapecodingtools)
MPEG-4提供許多工具,可對各種形狀的物件進行編碼。
二位元形狀(binaryshape)
資訊可用來定義特定時間點上,物件的那些部份(像素)
屬於視訊物件;二位元形狀資訊還採用移動補償式區塊導向(motioncompensatedblock-based)
編碼技術,能同時支援無失真(lossless)和失真
(lossy)編碼方式。
灰階形狀(grayscaleshape)
資訊與二位元形狀資訊非常類似,但每個像素或矩陣元素不再是簡單的二位元值,而是在某個範圍內的數值(通常是0到255),代表該像素的透明度。
灰階形狀資訊也採用區塊導向的移動補償技術來協助編碼,但是只支援無失真編碼方式。
Sprite編碼
在整段視訊內容(videosegment)中,視訊物件的某些部份會出現在場景內,sprite就是由這些區域所組成。
「背景sprite」(background
sprite)是很典型的範例,包含攝影機跟拍鏡頭(camera-panningsequence)
的所有背景像素;它基本上是靜態影像,只需在傳輸開始時傳送一次,sprite能在這些情形下提供很高的壓縮效率,這也是MPEG-4包含它們的主要原因。
sprite編碼技術不但適用於合成物件,也能用於自然場景中的剛體運動物件。
延展性
MPEG-4利用多個視訊物件層(VOL)來實現空間延展性
(spatialscalability)和時間延展性(temporalscalability),例如我們可以利用兩個視訊物件層來提供空間延展性,一個是基礎層
(base-layer),另一個則是加強層(enhancement-layer),加強層可以改善基礎層所提供視訊物件平面的空間解析度;同樣的,只要利用時間延展性,當目標圖框速率高於基礎層提供的速率時,就可以利用加強層進行解碼;換言之,時間延展性會讓畫面的動作更平順。
符合點
(ConformancePoints)
符合點是操作互通性的基礎,也是標準化背後的主要推動力量;根據定義,不同產品只要支援一個共同的符合點,它們就能正確讀寫對方的位元串流。
MPEG-4的符合點是由profile和level來代表,profile會指定一組視訊工具,可供應用選擇採用,profile內的level則會決定位元串流的參數約束條件和對應工具。
SimpleVisualProfile是最基本的profile,其最低要求是能利用H.263基準工具支援矩形物件編碼;此外,它還會為每個巨集區塊提供4個移動向量、自由移動向量
(unrestrictedmotionvectors)、交流/直流估測和抗錯性。
Simple
ScalableVisualProfile除了包含SimpleVisualProfile所有工具外,還支援時間和空間可延展物件。
Advanced
SimpleProfile是兩種新推出的profile之一,它是以Simple
VisualProfile為基礎,但增加多種新工具以改善壓縮效率。
CoreVisualProfile和MainVisualProfile是可以支援非矩形視訊物件的更高階profiles,其中Core
VisualProfile不但包含SimpleVisualProfile所有工具,還能支援任意形狀物件和時間延展性物件;Main
VisualProfile則是以CoreVisualProfile工具為基礎,另外還提供交錯式編碼
(interlacedcoding)、半透明和sprite物件支援。
在DSP上的實作
視訊處理
普通的掌上型裝置會以30fps速率截取RGB格式資料,並在編碼開始前,先將這些資料轉換成4:2:0
YCbCr格式-通常還會經過4:2:2之類的中間格式。
格式轉換過程多半包含次取樣
(subsampling)步驟,這項運算可交由DSP執行。
同樣的,MPEG-4解碼器的輸出為4:2:0格式,它也會經過一系列內插運算轉換成RGB格式以供顯示,其中的部份運算也能由DSP來完成。
影像的截取和解碼都需要使用龐大記憶體,因此它們通常都會儲存在DSP的外部記憶體。
圖框內編碼(intracoding)
IntraCodedVOPS(I-VOPs)
會利用特定視訊物件平面所包含的資訊進行編碼。
圖框內編碼程序也和其它的影像編碼演算法一樣,必須先執行離散餘弦轉換(DCT),然後再執行量化處理;壓縮就是透過量化來實現,它會把絕大多數高頻係數設為零,這些零值並不必需要任何編碼。
離散餘弦轉換和量化處理都需要線性轉換或比例調整
(scaling),這類運算很適合由DSP執行。
量化係數採用預測編碼,並利用鄰近區塊來進一步移除空間冗餘性,然後再經過掃描產生一組zeroruns和係數,它們會採用可變長度的編碼方式。
移動估算(motionestimation)
如圖1所示,移動估算和補償為了利用圖框之間的時間冗餘性,會根據前面的參考圖框來預測巨集區塊;由於解碼器必須重複執行此過程,它會使用前面重建的編碼圖框做為預測候選目標,而不會使用原始圖框。
預測過程通常會採用區塊比對法
(blockmatchingmethod),它會從參考圖框中找出多個候選區塊,與目前正要編碼的來源巨集區塊進行比較,然後找出誤差最小的區塊;由於誤差的資訊含量通常少於原來的巨集區塊,因此只需使用較少的位元即可將這些誤差值編碼。
區塊比對演算法必須計算目前來源巨集區塊和參考圖框候選區塊之間的絕對差值,這項運算可交給DSP執行;由於運算過程通常會佔用很大部份的編碼時間,因此為了減少複雜性,比對演算法會在參考圖框找出相同位置
(co-sited)的巨集區塊,然後對它周圍某個矩形區域(window)
內的所有巨集區塊進行比較,這種方法所須比較的區域當然小於整個圖框。
對於CIF(352x288)
連續影像,使用±16的搜尋範圍即可得到良好畫質。
由於DSP記憶體非常有限,通常只有執行移動估算所需的「參考區」(reference
window)會儲存入DSP記憶體,整個參考圖框則會儲存在外部記憶體。
目前有數種區塊比對演算法可供使用,其中有兩種演算法較為人熟知,一種是運算量龐大的窮舉搜尋演算法
(exhaustivesearchalgorithm),另一種則是複雜性較低的telescopic搜尋演算法。
窮舉演算法會針對搜尋區域
(searchwindow)內所有可能的候選區塊進行比對,telescopic搜尋演算法則是採取階段式搜尋:在每個階段,它會先對候選區塊的稀疏格點
(sparsegrid)進行比對,把得到的最佳候選向量當成下個階段起始點,並在下個階段使用較濃密的格點。
telescopic搜尋演算法的運算複雜性遠低於窮舉搜尋法,但壓
縮效率比窮舉搜尋法略差;利用DSP實作這套演算法時,必須將品質和運算複雜性的取捨列入考慮。
MPEG-4SimpleProfil還提供先進預測模式,允許每個8x8區塊使用一個移動向量;很明顯的,這些向量的選擇需要更龐大的運算量,最高可能會達到巨集區塊移動向量搜尋演算法的四倍。
為了減少運算複雜性,我們可在巨集區塊
(16x16)移動向量周圍的格點上面進行搜尋,這樣並不會對品質產生太大影響。
為了提供更佳品質,我們還可以根據內插參考區
(interpolatedreferencewindow)的預測值來計算半像素(half
pixel)精準度的移動向量。
參考區的內插計算會延著水平、垂直和對角方向進行,並以「全像素」(full
pixel)的16x16或8x8向量做為內插計算的起始位址。
上述階段會計算出一組移動向量,我們首先利用三個相鄰區塊的向量對這些移動向量進行差值編碼
(differentiallycoded),然後利用可變長度編碼技術對所得到的移動向量差值進行編碼。
有些時候,對於某些移動快速的連續影像或是圖框邊緣,演算法可能無法在參考區內找到良好的比對結果,此時它會使用來源巨集區塊進行圖框內編碼
(intra-coded)。
移動補償和紋理編碼
在移動補償階段,我們會利用移動向量將參考區內比對結果最好的區塊複製出來,計算移動補償預測區塊和目前來源巨集區塊之間的殘留誤差
(residualerror),然後對殘留誤差進行離散餘弦轉換、量化和可變長度編碼,整個過程如圖2所示。
MPEG-4SimpleProfile的量化過程很簡單,只須將巨集區塊的係數除以某個比例因子,這個比例因子的大小會影響零係數的數目以及非零係數的數值範圍,這轉而會影響巨集方塊編碼所需的位元數目;換言之,編碼器只要調整這個量化比例因子,就能控制位元速率和品質。
為支援預測編碼(predictivecoding),編碼器會提供一個解碼迴路,包含逆向離散餘弦轉換和逆向量化,它們可用來重建目前的巨集區塊;這個巨集區塊稍後會移至外部記憶體所儲存的重建圖框,並在下個P-VOP編碼過程使用。
解碼
解碼器所執行的程序剛好與編碼器相反,係數和額外資訊(overheadinformation)
會被可變長度解碼,然後對係數進行逆向量化處理,再執行逆向離散餘弦轉換,這樣即可得到誤差係數。
移動補償步驟則會複製和內插移動向量所對應的參考區塊,然後把移動補償預測值加至誤差係數,以得到最後輸出值,圖3是它們的功能方塊圖。
MPEG-4的SimpleProfile還支援自由移動向量,它允許移動向量指向視訊物件平面的外面;只要在執行移動補償前先將邊界係數設定好,即可啟動這項工具。
在典型的SimpleProfile解碼器實作中,把參考區從外部記憶體移到DSP記憶體會佔用很多解碼時間,因為每個巨集區塊最多有4個移動向量
(每個8x8區塊都有一個),使得每個巨集區塊都需要4次記憶體傳送動作。
業界正在積極努力,希望將這些記憶體搬移動作最佳化。
速率控制
在典型的應用中,視訊序列必須以固定位元速率編碼,整段影片也必須提供穩定一致的畫質,但由於圖片的複雜性和可預測性並不一致,使得本地
(locallevel)
的位元速率通常都會變動。
為了提供固定位元速率,編碼器可以使用緩衝儲存區,並以不同速率將資料寫入,然後在傳輸過程中以固定速率將資料讀出;同樣的,解碼器也可以擁有和編碼器相同大小的緩衝區,MPEG-4標準會根據所支援的level,規定這些緩衝區的最大儲存容量。
透過位元速率的調整,我們也可以避免緩衝區發生資料溢出
(overflowing)和資料不足(underflowing)
的現象。
改變位元速率的方法包括調整量化比例因子、跳過某些圖框和使用填充位元(stuffingbits);緩衝區容量越大,位元速率的可變範圍就越大,視訊畫質就更容易保持穩定一致。
抗錯性(errorresilience)
抗錯性在容易發生錯誤的環境中特別重要,行動通訊就是個例子。
實作趨勢
TI提供完整支援,使系統發展更簡單,縮短新產品上市時間。
例如軟體支援就涵蓋所有主要的視訊、影像、音訊和語音壓縮標準,包括JPEG、motion-
JPEG、MPEG-1、MPEG-2、MPEG-4、H.263、H.264、DivX、Windows
MediaVideo(WMV)以及許多音訊標準,例如MP3、Advanced
AudioCoding(AAC)和WindowsMediaAudio(WMA),獲得TI支援的語音標準則包括G.711、G.723.1和G.726。
DM270系統單晶片還能在許多作業系統執行,包括Nucleus、
Linux、ulTRON和VxWorks,程式碼也向上相容於TI的DSC2x平台。
DM642、DM641和DM640處理器內建視訊埠、乙太網路和多通道音訊,為整合度超越許多傳統的硬體連線式
(hard-wired)固定功能晶片組,並提供軟體可程式能力的方便性。
新處理器可在完整D1解析度下,同時對四組MPEG-2
MP@ML視訊進行即時解碼,也可以即時執行全視訊編碼(fullvideoencoding),並且是業界第一次支援廣播品質的Windows
Media9™編碼和解碼技術;此外,這些元件還支援最新的業界標準演算法,包括MPEG-4AVC
(H.264)解碼。
Aboutthe
authors
PaulFernandez
MemberTechnicalStaff,ImagingandAudioGroup,TexasInstruments
MarkNadeski
SoftwareDevelopmentManager,ImagingandAudioGroup,TexasInstruments
GeneLin
SalesManger
ConsumerProduct,SemiconductorSales&Marketing,TexasInstruments
延伸文章資訊
- 1多媒體
影像(image)、聲音(audio) 及視訊(video) 等 ... 除了傳統的文字型態之外, 多媒體常見的資料型 ... 影像是目前應用最廣的多媒體資料型態之一, 而.
- 2多媒體處理器上的MPEG-4 介紹及實作作者
MPEG-1和MPEG-2是國際標準組織 (ISO) 的動畫專家小組 (MPEG) 最先制定的視訊標準,也是 ... 視覺資料的差異包括資料型態、來源、通訊方式以及廠商想利用視覺影像提供的 ...
- 3第四章
二、多媒體資料型態. (一) 文字資料 ... (三) 影像資料. 可略分為圖片、照片、幻燈片等,主要是透過掃描機或相機進行. 輸入。 (四) 視訊資料.
- 4什麼是多媒體 - 崑山電子歷程
除了傳統的文字型態之外, 多媒體常見的資料型態. 有影像、聲音及視訊。本節將分別介紹這3 種資. 料型態。 Page 4. 4.
- 51. 瞭解什麼是多媒體2. 認識主要媒體的資料型態3. 瞭解各種 ...
Windows Media Player是由微軟公司所開發出來的. 影像播放軟體,提供了電腦上音樂、視訊、相片. 及錄製節目的播放、檢視、組織與存取的功能。 • Windows ...