標題: 平行處理應用在視訊壓縮上之研究:Intel MMX 技術實例研究
Investigation of Parallel Processing in Video Coding:a case study with Intel's MMX Technology
作者: 蔡志彥
Chih-Yen Tsai
張文鐘
Wen-thong Chang
電信工程研究所
關鍵字: 視訊壓縮;MMX;平行處理;SIMD;MPEG-2;Intra-frame編碼;Video coding;MMX;Parallel processing;SIMD;MPEG-2;Intra-frame coding
公開日期: 1998
摘要: 由於動態視訊的資料量相當的龐大,不管是在儲存或是傳送上都會遇到儲存媒體有限或是網路頻寬不足的問題,所以視訊必須經過有效的壓縮。而MPEG-2是目前普遍應用於各方面的視訊及音訊的壓縮標準,其視訊的壓縮方式是在一個畫面上以8 x 8點的區塊 (block) 為最小單位來進行壓縮,壓縮時將此區塊的像素值經過離散餘弦轉換 (DCT) 再量化 (quantization) 後,再進行可變長度編碼 (VLC) 後即可得到coded stream。而各畫面之間是以動態補償 (Motion Compensation) 的方式來進行壓縮,整個壓縮過程頗為複雜,而且計算量相當龐大,雖然目前的個人電腦已能流暢地做到即時解壓縮的地步,但對於高畫質的視訊內容或是需要作即時壓縮的應用而言,仍然有所不足。 由於MPEG-2的壓縮方式需要非常大的計算量,因此必須有高速的硬體和有效率的軟體才能達到即時的壓縮和解壓縮。為了解決這龐大運算量的問題,平行處理(parallel processing)是一個相當有效的方式。平行處理簡單的說就是把原本需要排隊循序處理的工作變成讓數個工作能同時獨立地運算,如此能使工作加速地進行。本篇論文即在探討各種平行處理架構在視訊壓縮上的應用,並以Intel的MMX指令集撰寫其壓縮和解壓縮的核心程式來作實際的分析和效益比較。而程式實際測試的結果,有使用MMX技術可加快I-frame的壓縮和解壓縮約六倍左右,可見在不斷提昇硬體的速度之餘,更應在軟體上好好地下功夫,以發揮其未被善用的潛力。
Due to the great amount of the video signal data, there are problems with finite storage space and insufficient transmission bandwidth, so we need effective compression techniques on video signal. MPEG-2 is one Audio/Video compression standard that is widely used in many aspects, and it takes a 8x8-pixels block on a video frame as the smallest compression unit. First, it do the Discrete Cosine Transform on the 8x8-pixels block, and then quantize the coefficients to smaller values. Then it reorders the 64 coefficients to do Variable Length Coding. Between continuous frames, it uses Motion Compensation to compress the redundant data of adjacent frames. The whole compression process is very complex, and the amount of computation is very huge. Although current PCs are already having the ability to decompress the MPEG-2 streams, it is still not sufficient for high-quality video displaying or real-time compression applications. We need high-processing-speed hardware and effective software to achieve real-time compression and decompression, and "parallel processing" is the practical one that can solve this problem. Parallel Processing means letting several independent operations or tasks run in parallel simultaneously, then it can speed up the whole job by this method. In this paper, we discuss various types of parallel processing architectures used in video coding, then take Intel's MMX technology as a example to implement the kernels of the MPEG-2 codec and analyze the performance speedup by our codes. The result shows that we can get about 6-times speedup of encoding and decoding I-frames. So, as we go on to improve the processing-speed of the hardware, we should also make corresponding progress in software to achieve the high-speed computation of video coding.
URI: http://140.113.39.130/cdrfb3/record/nctu/#NT870435034
http://hdl.handle.net/11536/64493
Appears in Collections:Thesis