瀏覽單個文章
Shade
Senior Member
 
Shade的大頭照
 

加入日期: Oct 2002
您的住址: El's room
文章: 1,046
引用:
Originally posted by mycai
是機器的限制。
二區badai之類的如何不清楚,
但像普社、一區B社、P社的,一點都不像有做的樣子…


對循序畫面來說, YUV 4:2:0下chroma 的解析度是360x240;
但交錯畫面卻是兩個180x240啊∼∼
看圖該較容易理解,以下圖一個16 X16的水平漸層為例,
左是原始畫面,中是循序的YUV 4:2:0,右是交錯的,

嗯.. 是 360x120 吧? :P
不過我還是不懂這跟循序畫面使用 Field DCT 影響的關係?
引用:
Originally posted by mycai
不提Progresive畫面下 Field DCT 也有較高壓縮效率的微小可能性,
最大的問題是在DVD採用的YUV型式是4:2:0,
這時循序和交錯的畫面看起來就有差了,不單單是壓縮效率的差異。
不然在壓縮效率上,Frame和Field DCT也不過是差個2、3百K而已。

還是我沒看懂這幾句話的意思 ^^;


怕專有名詞太多,大家看得頭大,我把我和 mycai 兄討論的東西,做一個簡單的說明:
使用 Field Picture(Picture Structure = Field)時,MPEG-2 會把畫面拆成奇偶兩個獨立的 Field,各自視為一個完整的 Progressive 畫面,分開壓縮。在這種模式底下,壓縮的是兩個獨立的 Field,壓完一個再壓另一個,所以壓縮的單位是 Field。
動作預測模式可以用 Field Prediction, 16x8 Prediction,沒有使用 B-Frame 的話多一種叫做 Dual Prime 的預測方法。「動作預測」模式的意思是搜尋物體移動位置的方法。前面提過,MPEG 壓縮的時候,P, B 畫面會參考其他畫面壓縮,只記錄和其他畫面的差異。所以我們壓縮的時候要尋找現在這個物體,在參考畫面中的位置是在哪裡,這樣才能找到最相似的參考對象,差異才會縮小,差異縮小,當然需要記錄、花費的流量也就減小囉。而這個「動作預測」的方法,有好幾個不同的模式,隨著使用的 Picture Structure 不同,可以使用的種類也就不同。
DCT 的時候是用 Frame DCT,也就是每個 16x16 的 Macroblock 直接切成四等分,切成四個 8x8 的小方塊做 DCT 轉換。此時 Macroblock 中的係數,全部來自同一個 Field,因為前面已經把兩個 Field 拆開分別壓縮了,相當於在兩個 Progressive Frame 上各別做 DCT,所以要用 Frame DCT。

使用 Frame Picture(Picture Structure = Frame)時,MPEG-2 會把兩個 Field 組合成一個 Frame,視為一個畫面來壓縮,此時 progressive_frame 這個旗標會標明這個 Frame 本來是 Interlaced 還是 Progressive 的。(這也是 DVD2AVI Frame Type 顯示的 Interlaced 和 Progressive 的資訊。我知道 jackei 曾說過什麼 ^^; 但是這個旗標其實和以 Frame 為單壓縮或以 Field 為單位壓縮無關,相關的是 picture_structure 這個旗標,這個旗標才代表是以 Frame 壓縮還是以 Field 壓縮)
動作預測模式可以用 Frame Prediction, Field Prediction,沒有使用 B-Frame 的話多一種叫做 Dual Prime 的預測方法。注意 Frame Picture 的 Field 預測方法和 Field Picture 的 Field 預測方法雖然同名,但作法有些不同。
DCT 可以用 Frame DCT 或 Field DCT,視情況決定。Frame DCT 如前所述,就是直接將 16x16 大小的 Macroblock 切成四塊,此時因為是以 Frame 為單位壓縮,Macroblock 中的係數分別來自奇偶兩個 Field,以一奇一偶一奇一偶這樣的方式交叉排列,直接切成四等分,每個 8x8 的小方塊中也是包含了一奇一偶這樣來自兩個 Field 的係數,然後做 DCT 轉換。
如果是 Field DCT,則會將 Macroblock 中的奇偶順序重新排列,變成兩個 16x8 的方塊,一個方塊是由奇數的掃瞄線組成,另一方塊是由偶數的掃瞄線組成,然後再將這兩個 16x8 的方塊水平方向切成兩半,最後一樣變成四個 8x8 的方塊。
這樣這四個方塊中的係數,全部都來自同一個 Field,這樣叫做 Field DCT。

當使用 YUV 4:2:0 格式時,Chroma sample(色彩像素,也就是 UV)一律使用 Frame DCT。

為什麼要設計 Field DCT 呢?這是因為在交錯畫面時,奇偶掃瞄線上的像素分別來自兩個不同 Frame 的 Field,差異很大,譬如說一奇一偶這樣排列
1
99
2
100
3
101

你可以看出奇數掃瞄線上的像素彼此之間的的數值比較接近,而偶數掃瞄線上的像素彼此之間的數值也較接近,一奇一偶交叉排列在一起的話,這個數值會有一個很快頻率的起伏變化







這樣我們稱為,這個方塊有很高的空間頻率成分。如果直接拿這樣奇偶合併的方塊去做 DCT 轉換,DCT 這個轉換就是把空間上的像素轉換為以頻率域上的係數來表示,以消除空間上像素彼此之間的關聯性(累贅性),這樣使用幾個比較少的頻率係數就可以代表本來的訊號。當方塊中有這樣變化頻繁(奇偶差異大,關聯性小)的像素的時候,轉換後能量就不會集中在少數幾個空間頻率的係數上,當然這樣就會造成壓縮困難。
所以我們才會設計 Field DCT,將奇偶拆開分別做 DCT,以增進壓縮效率。
所以使用 Field DCT 與否的決策判斷,才會用計算奇偶的變異數乘積作為判斷的方法。

講完了 ^_^;
大家大概都暈倒了 :P
     
      
舊 2003-01-21, 12:26 PM #21
回應時引用此文章
Shade離線中