正如上面所述,電影轉換成視頻時,每秒24幀必須轉成每秒60場(30幀)。實現這一點的方法是把電影的第一幀顯示3場,然后把第二幀顯示2場,再把第三幀顯示3場,以此類推。這個3-2-3-2-3-2的順序就被稱為3-2混合(有時候也寫成3/2或3:2,但是這樣看起來像個比例,所以我們更愿意寫成3-2)。
MPEG-2里面還有兩個標志,可以使制作3-2混合的碟片更容易。這兩個標志是“REPEAT_FIRST_FIELD”(重復第一場)和“TOP_FIELD_FIRST”(前場優先)。MPEG數據流里的某一幀可以把REPEAT_FIRST_FIELD設為TURE,這就告訴解碼器從這一幀要生成3場而不是2場。解碼器于是播放第一場,然后第二場,然后再重復第一場,這樣就完成了3-2混合的3場的部分。下一幀一般就會把REPEAT_FIRST_FIELD設為FALSE,這樣解碼器就會生成2場。由于場是偶數場(后場)和奇數場(前場)交替的,TOP_FIELD_FIRST標志就會告訴解碼器先播放一幀中的哪一場。前場指的是奇數掃描線:1,3,5……后場指的是偶數掃描線:2,4,6……如果一個3場幀里第一場是前場,那解碼器就會輸出前場,后場,前場,下一場必須是后場,所以下一幀的TOP_FIELD_FIRST標志就會設為FALSE。
我們仍然要注意這個3-2序列并不是一定要遵守。DVD解碼器是不管這個的。它只是按照碟片上的標志來工作。只要每一秒都有60場,一切就正常進行。
下面是一些合法的標志序列的例子。想象一下,我們有個包含4個電影幀的序列要轉換成視頻并存儲為MPEG-2數據流。我們要把這4幀變成10場(3+2+3+2)。
首先,最常用的方法是使用4幅MPEG畫面和所有的標志。
例1
MPGE畫面 電影幀 PICTURE_STRUCTURE PROGRESSIVE_FRAME REPEAT_FIRST_FIELD TOP_FIELD_FIRST
1 1 FRAME TRUE TRUE TRUE
2 2 FRAME TRUE FALSE FALSE
3 3 FRAME TRUE TRUE FALSE
4 4 FRAME TRUE FALSE TRUE
但是,把同樣的一段電影用10個MPEG幀來編碼也是完全可以的。
例2
MPGE畫面 電影幀 PICTURE_STRUCTURE PROGRESSIVE_FRAME REPEAT_FIRST_FIELD TOP_FIELD_FIRST
1 1 TOP FIELD FALSE FALSE FALSE
2 1 BOTTOM FIELD FALSE FALSE FALSE
3 1 TOP FIELD FALSE FALSE FALSE
4 2 BOTTOM FIELD FALSE FALSE FALSE
5 2 TOP FIELD FALSE FALSE FALSE
6 3 BOTTOM FIELD FALSE FALSE FALSE
7 3 TOP FIELD FALSE FALSE FALSE
8 3 BOTTOM FIELD FALSE FALSE FALSE
9 4 TOP FIELD FALSE FALSE FALSE
10 4 BOTTOM FIELD FALSE FALSE FALSE
或者也可以像這樣,用5個MPEG畫面來編碼。
例3
MPGE畫面 電影幀 PICTURE_STRUCTURE PROGRESSIVE_FRAME REPEAT_FIRST_FIELD TOP_FIELD_FIRST
1 1 FRAME FALSE FALSE TRUE
2 1和2 FRAME FALSE FALSE TRUE
3 2和3 FRAME FALSE FALSE TRUE
4 3 FRAME FALSE FALSE TRUE
5 4 FRAME FALSE FALSE TRUE
這都是在DVD上使用的實際例子。例3是非常常見的,尤其是在小公司發行的DVD上,甚至在大制作的預告片和花絮里面也很多。還有其他幾十種變化都是合法的。在各種情況下,雖然碟片上儲存的標志和畫面數不同,但解碼器最后輸出的場序列都是完全一樣的。第一種方式的壓縮系數最大,這也是這種方式最為常見的唯一原因(絕對不是為了讓逐行DVD機工作得更好)。
MPEG-2里面還有兩個標志,可以使制作3-2混合的碟片更容易。這兩個標志是“REPEAT_FIRST_FIELD”(重復第一場)和“TOP_FIELD_FIRST”(前場優先)。MPEG數據流里的某一幀可以把REPEAT_FIRST_FIELD設為TURE,這就告訴解碼器從這一幀要生成3場而不是2場。解碼器于是播放第一場,然后第二場,然后再重復第一場,這樣就完成了3-2混合的3場的部分。下一幀一般就會把REPEAT_FIRST_FIELD設為FALSE,這樣解碼器就會生成2場。由于場是偶數場(后場)和奇數場(前場)交替的,TOP_FIELD_FIRST標志就會告訴解碼器先播放一幀中的哪一場。前場指的是奇數掃描線:1,3,5……后場指的是偶數掃描線:2,4,6……如果一個3場幀里第一場是前場,那解碼器就會輸出前場,后場,前場,下一場必須是后場,所以下一幀的TOP_FIELD_FIRST標志就會設為FALSE。
我們仍然要注意這個3-2序列并不是一定要遵守。DVD解碼器是不管這個的。它只是按照碟片上的標志來工作。只要每一秒都有60場,一切就正常進行。
下面是一些合法的標志序列的例子。想象一下,我們有個包含4個電影幀的序列要轉換成視頻并存儲為MPEG-2數據流。我們要把這4幀變成10場(3+2+3+2)。
首先,最常用的方法是使用4幅MPEG畫面和所有的標志。
例1
MPGE畫面 電影幀 PICTURE_STRUCTURE PROGRESSIVE_FRAME REPEAT_FIRST_FIELD TOP_FIELD_FIRST
1 1 FRAME TRUE TRUE TRUE
2 2 FRAME TRUE FALSE FALSE
3 3 FRAME TRUE TRUE FALSE
4 4 FRAME TRUE FALSE TRUE
但是,把同樣的一段電影用10個MPEG幀來編碼也是完全可以的。
例2
MPGE畫面 電影幀 PICTURE_STRUCTURE PROGRESSIVE_FRAME REPEAT_FIRST_FIELD TOP_FIELD_FIRST
1 1 TOP FIELD FALSE FALSE FALSE
2 1 BOTTOM FIELD FALSE FALSE FALSE
3 1 TOP FIELD FALSE FALSE FALSE
4 2 BOTTOM FIELD FALSE FALSE FALSE
5 2 TOP FIELD FALSE FALSE FALSE
6 3 BOTTOM FIELD FALSE FALSE FALSE
7 3 TOP FIELD FALSE FALSE FALSE
8 3 BOTTOM FIELD FALSE FALSE FALSE
9 4 TOP FIELD FALSE FALSE FALSE
10 4 BOTTOM FIELD FALSE FALSE FALSE
或者也可以像這樣,用5個MPEG畫面來編碼。
例3
MPGE畫面 電影幀 PICTURE_STRUCTURE PROGRESSIVE_FRAME REPEAT_FIRST_FIELD TOP_FIELD_FIRST
1 1 FRAME FALSE FALSE TRUE
2 1和2 FRAME FALSE FALSE TRUE
3 2和3 FRAME FALSE FALSE TRUE
4 3 FRAME FALSE FALSE TRUE
5 4 FRAME FALSE FALSE TRUE
這都是在DVD上使用的實際例子。例3是非常常見的,尤其是在小公司發行的DVD上,甚至在大制作的預告片和花絮里面也很多。還有其他幾十種變化都是合法的。在各種情況下,雖然碟片上儲存的標志和畫面數不同,但解碼器最后輸出的場序列都是完全一樣的。第一種方式的壓縮系數最大,這也是這種方式最為常見的唯一原因(絕對不是為了讓逐行DVD機工作得更好)。