史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   多媒體影音轉檔燒錄技術文件 (http://forum.slime.com.tw/f129.html)
-   -   S Frame是什麼? (http://forum.slime.com.tw/thread55073.html)

psac 2003-07-31 12:46 PM

S Frame是什麼?
 
Q:
Color.Of.The.Truth.2003.DVDRip.XviD-TLF這片,用DRFAnalyzer開啟AVI文件看:
Frame Type Statistics :
I Frames: 1.12%
P Frames: 72.78%
B Frames: 0.00%
S Frames: 26.10%
N Frames: 0.00%

請問S Frame是什麼?
A:
H.264里面的東西,簡單的說應該就是可以跨楨參照

Q:

我做的XviD:

程式碼:--------------------------------------------------------------------------------
Frame Type Statistics :
I Frames: 1.16%
P Frames: 33.67%
B Frames: 63.40%
S Frames: 1.77%
N Frames: 0.00%
(More Advanced Codecs use B and S frames)
Frame Quality Statistics :

DRF=1&2: 1409 6.1%
DRF=3: 11571 50.1%
DRF=4: 9369 40.6%
DRF=5: 747 3.2%
DRF=6: 2 0.0%
--------------------------------------------------------------------------------


開啟XviD的GMC就會有S Frames。是不是說XviD也有H.264的部分技術?N Frames又是啥?

A:

S Frame: S(GMC)-VOP MPEG-4 的正式名稱叫做 VOP,不用 Frame。

VOP 是一個物件服務機構,MPEG-4 可以將畫面上的每個物體(物件)切割出來,個別壓縮,
由許多個 VOP 組成一個畫面。
切割的形狀可以不是矩形,而是任意形狀。
這個功能目前 DivX 5, XviD 都沒有做,VOP 就是一整個畫面,所以 VOP 等於 Frame。
S-VOP 代表 Strite VOP,MPEG-4 可以將靜態的背景畫面單獨切割出來,同一個場景,
好幾個畫面會用同一個背景,只是位置稍有移動(例如畫面慢慢向右移),將背景切割出來,
把好幾個畫面的背景連接起來,做一次壓縮,而不要每個畫面都壓縮一次,可以省 bitrate。
S(GMC)-VOP 當動態旗標和 GMC 旗標都 == 1 時,這個 VOP 叫做 S(GMC)-VOP,
也就是利用 GMC 做壓縮的 VOP。由於它和靜態的 Strip VOP 不同,所以我們特別在 S 後面
加上 (GMC) 來標示,這是一個有用到動態 GMC 的 VOP。
什麼是 GMC?以前有說過,S(GMC)-VOP 就等於 P-VOP,參考前一個畫面壓縮,
只是它可以參考的對象有兩個,一個是原本的前一個畫面,另一個是經過 warp 後的畫面。

以上是正式名稱,軟體中直接簡稱為 S-Frame。

N Frame: Null Frame,空的 Frame,Frame 裡面什麼資料都沒有,無法顯示這個 Frame 的內容。
壓縮的時候,有一定的 bitrate,如果前面的畫面太難壓縮,用掉太多 bit,到了這個畫面時
bit 用光了,無法分配 bit 給這個畫面使用,這時這個 Frame 無法壓縮,只好 drop 掉,
產生一個空的(Null) Frame。
播放時放到這個 Frame,軟體會知道這裡有一個 Frame 喔,但是壓縮時沒有資料給他,
所以沒有內容可以顯示,但是還是要請你等一等,等下一個播放時間點才能顯示下一張畫面,
不能直接跳掉喔,否則會影音不同步。

N Frame 太多代表 bitrate 不夠用,有太多 Frame 沒有 bit 可以壓縮,只好 drop 掉,
軟體會告訴你 Drop Frame 過多,這個文件壓得不太好。

不過有例外的情況。
有時候為了特殊目的,我們會故意插入 Null Frame。
例如日本動畫有一些是 24fps/30fps 混合,因為 AVI 只能有一種顯示速率,如果做成 24fps,
30fps 的部分必須砍掉畫面,砍成 24fps,畫面會一頓一頓的不順暢。
如果做成 30fps,24fps 的部分必須要重複畫面來產生 30fps,畫面也還是會頓。

做成 24fps 和 30fps 都不好,那怎麼辦?
這時只好取兩者的最小公倍數 120fps,做成 120fps
24fps * 5 = 120fps
30fps * 4 = 120fps

原本


程式碼:--------------------------------------------------------------------------------
1 2 3 4 5 6 7 8 9
24fps 30fps

插入 Null Frame
1 x x x x 2 x x x x 3 x x x x 4 x x x x 5 x x x 6 x x x 7 x x x 8 x x x 9 x x x
--------------------------------------------------------------------------------

變成 120fps,這樣就可以保留所有的畫面,又能很順暢的播放。

這種檔案用軟體檢查會告訴你有很多 Drop Frame,但是並不是做壞了,那些 Null Frame
是故意插進去的。你用 VirtualDub 檢查,會發現 Drop Frame 出現得很有規律
(VirtualDub 會顯示 [D] 代表 Drop Frame),每一張後面會有類BIOS四或三個 Drop Frame。

看到 120fps 的文件便可以知道,其 Drop Frame 是故意插進去的。

hwj_c 2003-07-31 07:47 PM

.......不太懂...程度不夠....還是推一下好了


所有時間均為台北時間。現在的時間是 04:02 PM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2022, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1