史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 多媒體影音轉檔燒錄技術文件
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2005-05-09, 11:49 AM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 視瀕技術關於影像塋幕的Crop&Resize系列

視瀕技術關於影像塋幕的Crop&Resize系列
resize 的錯誤一般看不出來,如同我上面轉貼的那個問答中所講的:
Fortunately, even if you had used wrong methods for scaling/resampling the image, the difference between the correct aspect ratio and a wrong aspect ratio is often small enough to go unnoticed unless you really start looking for it.
大致上的意思:
幸運的,雖然你用了錯誤的 resize 方法,不過這個正確的比例和錯誤的比例之間的差距,
通常是很小的而不會被注意到,除非你開始真的去觀察、注意這個錯誤。

這個錯誤大概會造成 ~2.5% 的比例錯誤。
有人做過實驗,用 DV 去拍圓球,使用錯誤的 resize 法,會讓正圓的球體變成橢圓。
PowerDVD, WinDVD 等這些軟體的 DVD Player 所做的 resize 也都是錯誤的。
(WinDVD 新版的已經瞭解到這個問題,開始改進)
所以大家在電腦上看了那麼久的 DVD,比例都是錯的
不過如上述所講的,幸運的,一般沒有注意的話是看不出來的。
不過一旦發現了以後,就會開始注意到這個錯誤了

為什麼直接 resize 是錯的呢?因為根據 ITU-R BT.601,取樣的時候長寬的取樣比例不是 1:1,
PAR(Pixel Aspect Ratio)不是 square pixel,正方形的 pixel,而是長方形的 pixel。
NTSC 的 PAR 是 10:11,也就是說如果橫軸每隔 1cm 取樣一點,縱軸就是每隔 1.1cm 取樣一點,
取樣的間距是 1:1.1 = 10:11。
橫軸取樣的間距比較短,也就是取樣的次數比較密集,也就是取樣出來的點數會比較多。
假設原始影像是 PAR 1:1 640x480 的圖形,經過 ITU-R BT.601 重新取樣後,
分辦率會變成 PAR 10:11 704x480(高度 480 不變,長度變為原本的 1.1 倍,640*1.1=704,
橫軸的點數變多),而不是 720x480。
所以 NTSC PAR 10:11 720x480 的 DVD 要 resize 到 PAR 1:1 640x480,要左右共砍 16 個點,
變成 704x480 再 resize 到 640x480 才會正確。

不知道這樣解釋容易瞭解嗎? ^^;
公式是
PAR = DAR * (水準解析度/垂直解析度)

DAR 是 Display Aspect Ratio,譬如說電視是 4:3
NTSC 的 PAR 是 10:11,所以
4/3 = 10/11 * 704/480

要從 704x480 resize 到 640x480/512x384... 才會得到正確的 DAR 4:3 的比例。

而 PAL 的 PAR 則是 59:54
4/3 = 59/54 * 702.91/576

所以要先截邊變成 702.91,再 resize 到 640x480/512x384... 才會得到正確的 DAR 4:3 的比例。

我沒有研究過 PAL 的算法,剛剛用 GKnot 幫忙算了幾組正確的比例(要讓 Aspect Error 這個項目
顯示的百分比為 0%,水準解析度必須能被 32 整除,垂直分辦率必須能被 16 整除),
得到下面的結果(因為無法截邊為 702.91,GKnot 是取整數 702):
PAL 4:3
720x576 -> 702x576 -> 704x528 /Aspect Ratio 1.333(4:3), Aspect Error 0%

注意,雖然此時 GKnot 顯示 W-Zoom(水準放大)為 100%(沒有放大),
但是實際上水準已經由 702 放大到 704,只是放大的幅度太小所以忽略。
我沒有實際壓過,不知道這樣到底好不好。

720x576 -> 702x576 -> 640x480 /Aspect Ratio 1.333(4:3), Aspect Error 0%
720x576 -> 702x576 -> 576x432 /Aspect Ratio 1.333(4:3), Aspect Error 0%
720x576 -> 702x576 -> 512x384 /Aspect Ratio 1.333(4:3), Aspect Error 0%
720x576 -> 702x576 -> 448x336 /Aspect Ratio 1.333(4:3), Aspect Error 0%
720x576 -> 702x576 -> 384x288 /Aspect Ratio 1.333(4:3), Aspect Error 0%
720x576 -> 702x576 -> 320x240 /Aspect Ratio 1.333(4:3), Aspect Error 0%
.....

如果電影比例小於 4:3,上下會多出黑邊,此時就把黑邊削掉就好,
只要注意高度必須能被 16 整除。


PAL 16:9(anamorphic,原始影片上下無黑邊,變形畫面,完全填滿整個 720x576 的畫面)
720x576 -> 702x576 -> 704x396 /Aspect Ratio 1.778(16:9), Aspect Error 0%

注意,雖然此時 GKnot 顯示 W-Zoom(水準放大)為 100%(沒有放大),
但是實際上水準已經由 702 放大到 704,只是放大的幅度太小所以忽略。
注意高度 396 不能被 16 整除,所以 resize 完以後,要上下多補 2 個 pixel 的黑邊,
補成 704x400 再送進去壓縮。
如果電影比例小於 16:9,上下會多出黑邊,此時就把黑邊削掉就好,
只要注意高度必須能被 16 整除。

720x576 -> 702x576 -> 640x360 /Aspect Ratio 1.778(16:9), Aspect Error 0%

注意高度 360 不能被 16 整除,所以 resize 完以後,要上下多補 4 個 pixel 的黑邊,
補成 640x368 再送進去壓縮。

720x576 -> 702x576 -> 576x324 /Aspect Ratio 1.778(16:9), Aspect Error 0%

324 不能被 16 整除,補為 576x336。

720x576 -> 702x576 -> 512x288 /Aspect Ratio 1.778(16:9), Aspect Error 0%
720x576 -> 702x576 -> 480x270 /Aspect Ratio 1.778(16:9), Aspect Error 0%
270 ->補為 272

720x576 -> 702x576 -> 448x252 /Aspect Ratio 1.778(16:9), Aspect Error 0%
252 -> 256

720x576 -> 702x576 -> 384x216 /Aspect Ratio 1.778(16:9), Aspect Error 0%
216 -> 224
.....

其它還有很多組可以自行利用 GKnot 計算。
(算 16:9(anamorphic) 的時候先把 H-Modul = 16(高度必須能被 16 整除的限制)改成 1,
這樣的彈性比較大,會有比較多組可以選項,等算好 resize 後的大小後,如果高度不能被 16 整除,
再自行考慮要多補,或者是削掉多少黑邊)

..OK,再來講更複雜的 ^^;

前面說到根據 CCIR601,模擬影像轉為數位時(由電影膠片轉為數位格式,如 D1),
由於取樣的長寬間距(Sample Aspect Ratio/SAR or Pixel Aspect Ratio/PAR)不一樣,
假設 NTSC 是橫軸每 1cm 取樣一點,縱軸便是每 1.1cm 取樣一點,取樣的長寬間距不一樣,
不是 1:1(square pixel),而是 1:1.1(non-square pixel),所以影像在電腦上看是變形的。
由於橫軸的取樣間距短,取樣次數較頻繁,所以取樣出來的點比較多。
NTSC PAR 1:1.1 704x480 的影像(變形的)其實等於 NTSC PAR 1:1 640x480(4:3) 的影像。
704/1.1 = 640
或者反過來看,縱軸點數一樣多(480),橫軸 PAR 1:1.1 的點數要比 PAR 1:1 的多出 1.1 倍
640*1.1 = 704

所以我們拿到 NTSC 的 DVD,規格是 PAR 1:1.1 720x480,要 resize 到 640x480,
或其它 4:3 的比例,直接從 720x480 -> 640x480 是錯誤的,必須要左右截邊變成 704x480,
再 resize 到 640x480,這樣比例才會正確。
因為 PAR 1:1 640x480 的畫面,對應的 PAR 1:1.1 畫面大小是 704x480,
而非 720x480。

同樣的道理 PAL 的 PAR 是 59:54,假設橫軸每 5.9 的服務機構長度取樣一點,
縱軸便是每 5.4 的服務機構長度取樣一點,橫軸的取樣間距較長,取樣次數較稀少,
取樣出來的點比較少。
所以 PAL PAR 59:54 702.91x576 的影像其實等於 PAL 1:1 768x576(4:3) 的影像。
702.91/(54/59) = 768
或者反過來看,縱軸點數一樣多(576),橫軸 PAR 59:54 的點數要比 PAR 1:1 的少 54/59 倍。
768*(54/59) = 702.91

所以我們拿到 PAL 的 DVD,要 resize 到 768x576/640x480 或其它 4:3 的比例,
直接從 720x576 -> 768x576/640x480 是錯誤的,必須要左右先截邊變成 702.91x576,
再 resize 到 768x576/640x480 ...。

ps. 702.91 是近似值,實際上的數位應該是 702+54/59 = 702.915254237288135593220338983050847..
為了數位化處理方便,使用 704 來替代。
也就是 720x576 削邊-> 704x576 -> 640x480 ... etc,16:9 也是先削邊 704x576 -> 640x360 ...。
做 PAL VCD 的時候,VCD 的 PAR 和 DVD 相同,所以要削邊 704x576 兩邊等倍縮小 1/2 => 352x288。

這個是上次說的,那麼 NTSC 10:11/PAL 59:54 這個 PAR 是怎麼算來的呢?
因為要整合 NTSC 和 PAL 系統,減少硬體設計成本,所以 ITU-R BT.601 把取樣頻率定為 13.5MHz,
然而對 525-line NTSC (ANSI/SMPTE 170M-1994) 的模擬訊號,要取樣成 1:1 的 square Pixel,
根據 SMPTE 244M "industry standard" square pixel,取樣頻率必須是 12 + 27/99 MHz。
所以可以得到 525-line Rec.601 NTSC 的 PAR 是 13.5 / (12 + 27/99) = 11/10 (y/x)

而對 625-line PAL (Rec. ITU-R BT.470-3) 的模擬訊號,要取樣成 1:1 的 square Pixel,
取樣頻率必須是 14.75MHz,所以可以得到 625-line Rec.601 PAR = 13.5 / (14.75) = 54/59 (y/x)

最後總結,關於比例,Doom9 上也討論過好多次,有興趣者可以自行查閱,或是參考下列兩個網址
http://www.mir.com/DMG/aspect.html
http://www.lurkertech.com/lg/pixelaspect.html
能看繁體中文的話,請看 DVD2AVI 的作者 jackei 的解說
http://bbs.irradiance.net/txtVersion...hreadList.html
http://bbs.irradiance.net/txtVersion...hreadList.html


然而也許有人會注意到,根據這個網頁
http://www.uwasa.fi/~f76998/video/conversion/
NTSC 的 PAR 竟然不是 10/11 (x/y),而是 72/79;PAL 的 PAR 竟然不是 59/54,而是 128/117!
這又是怎麼回事呢?
這就是令人頭痛的地方,也就是複雜的地方 ^^;

下面有點複雜,我沒有保握能夠解說得很簡單清楚明瞭,建議最好仔細閱讀以上提供的網頁再往下看。

前面計算 PAR 的時候,我們是拿 13.5MHz 直接去除 "industry standard" 的 square pixel
的取樣頻率,來求得 NTSC 和 PAL 的 PAR。但是實際上這些 "industry standard" 的取樣頻率,
取樣出來的仍然不是 1:1 的 square pixel,只是很接近 square pixel,所以直接這樣除,
得到的 PAR 並不精確。

精確的計算方法:
625/50 PAL 每一條掃瞄線的取樣時間為 64μs,實際上用來記錄資料的時間只有 52μs,
其它時間用來同步和等待掃瞄線歸位,所以要記錄 1:1 768x576,取樣頻率應該是
52μs * (14 + 10/13)MHz = 768

一條掃瞄線要 768 點(取樣 768 次),取樣時間 52μs,反算回來取樣頻率就得要是
14 + 10/13 MHz,而不是 "industry standard" 的 14.75MHz。

525/59.94 NTSC 每一條掃瞄線的取樣時間為 63+5/9 (63.555...) μs,
實際上用來記錄資料的時間只有 52+2/3 (52.666...) μs,其它時間用來同步和等待掃瞄線歸位,
所以要記錄 1:1 640x480(648x486),取樣頻率應該是
52+2/3μs * (12 + 24/79)MHz = 640(648)

而不是 SMPTE 244M "industry standard" square pixel 的 12 + 27/99 MHz。

所以根據正確的紀錄時間(PAL 52μs/NTSC 52+2/3μs)來推算 PAR,得到的結果就是
NTSC 72/79,PAL 128/117 了。

頭開始痛了嗎? ^^;
本來我們都已經習慣左右截邊 -> 704 之後再 resize,這也是一般看到的作法,
大家都是這麼作的,結果根據這個算法,NTSC PAR 變成是 72/79,
本來是
640 * 11/10 = 640*1.1 = 704

現在變成
640 * 79/72 = 702 + 2/9

要截邊為 702 + 2/9 再 resize 為 640x480 才是正確的。

不過該網頁的作者也建議,還是使用 704 比較好,704 這個數位剛好可以被 16 整除,
704 這個數位剛好是 VCD 352 的兩倍,704 剛好是 VCD 可以存放的靜態圖片的最大分辦率,
704 剛好是 ATSC 數位電視的標準分辦率...
有這麼多的 "巧合",所以我們還是選項削邊為 704 來處理。
DVD2AVI 的作者也是建議,還是以 704 來處理。

而 PAL 就很有趣了,因為 PAL 真正的 PAR 是 128/117,所以
768 * 117/128 = 702

剛剛好等於 702 一點都不差!
所以也許 PAL DVD 要 resize 為 PAR 1:1 640x480/512x384 ...,
截邊為 702 之後再 resize,會比 704 更好。

講完正確的 resize 作法之後,小弟也就可以功成身退了


文筆太差,寫到我自己都看不懂 ^^;

工具有很多,例如 DVD2AVI 的 Video -> Clip & Resize,
選好左邊和右邊要切多少點,兩邊切的點數不一樣沒關係,
總之左右加起來為 16 點(->704)或 18 點(->702)即可。
DVD 的畫面通常左右都會留下黑邊,畫面不一定在正中間,哪一邊黑邊留得多就哪邊削多一點。
然後存為 .d2v。
DVD2AVI 不能切為 ->702,如果要切為 702,可以用其它軟體來處理。
例如 Avisynth 的 Crop 也是切邊的,AviUtl 裡面也有切邊的工具,
TMPGEnc, VirtualDub 都有,看你是要照以前的習慣切為 704,
或是按照那個網頁說的切為 702 都可以。
切邊以後,再進去行 Resize -> 4:3 or 16:9 的比例,這樣就會正確了。
只是要注意水準最好要能被 32 整除,垂直最好要能被 16 整除,
如果上下有多餘的黑邊再把黑邊削掉即可,

例如:

NTSC 16:9(anamorphic) 原始解析度 720x480
DVD2AVI Clip 削邊為 704x480 存成 .d2v。
或是 MPEG2DEC.DLL 利用 Avisynth 的 Crop
# Crop(clip, int left, int top, int width, int height)
Crop(8,0,704,480)

附帶一提,Avisynth 說明檔中也有下面這個範例,大家可以找出來看看:
Crop crops excess pixels off of each frame. If your source video has 720x480 resolution,
and you want to reduce it to 352x240 for VideoCD, here's the correct way to do it:
# Convert CCIR601 to VCD, preserving the correct aspect ratio
ReduceBy2
Crop(4,0,352,240)

如果你要從 CCIR601 720x480 resize 到 VCD 352x240,**兩邊等倍縮小** 1/2(ReduceBy2),
然後左右各切 4 個點,360x240 -> 352x240,或是先左右各切 8 個點,再 704x480 -> 352x240,
這才是正確作法,直接從 720x480 -> 352x240 是**錯誤的**。
原因上面已經講過,不再贅述。同樣的,PAL 720x576 -> 360x288 -> 352x288,
或 720x576 -> 704x576 -> 352x288,這樣才是正確的。
一定要**兩邊等倍縮小**,為什麼?DVD 和 VCD 的 PAR 相同,原本 10:11,要兩邊等倍縮小,
同除 2,10/2 : 11/2 = 10:11,PAR 才會仍然保持為 10:11。

不止 DVD/VCD 如此,DV 也是一樣。

言歸正傳,如果要用 Avisynth 切邊為 702
Crop(9,0,702,480)

注意此時左右兩邊各切 9,這是一個大問題。
前面曾經提過 702.91 最接近的數位 703 這個數位數位處理不好處理,
所以改用 704,和這個道理很像。
因為 YUY2/YV12 格式的水準,色彩(Chroma)訊息是每兩個 sample 取樣一個,
所以切的時候,一定要以偶數為服務機構切割(亮度 Y 切 8,色度 C 就要切 8/2 = 4,
Y 如果切 9,那麼 C 要怎麼切?),所以如果要切 9,就不能以 YUY2/YV12 模式處理,
要轉為 RGB 模式才可以。

如果你是用 TMPGEnc, AviUtl, VirtualDub 切割,因為這些軟體以 RGB 模式處理,
所以沒有以上的限制。

假設我們是切為 704x480,resize 為 16:9 後是 704x396,396 不是 16 的整數倍,
上下填黑,補成 400 再壓縮。例如 Avisynth 上下填 2 個 pixel:
# AddBorders(clip, int left, int top, int right, int bottom)
AddBorders(0,2,2,0)

或是用 VirtualDub 的 resize filter:
Expand frame and letterbox image
Frame width : 704
Frame height : 400
Fill color : 選黑色

AviUtl 有另外的 plug-in 可以做填黑,處理的優先順位要調到 resize 之後,
相信會用的人自然知道,不用小弟多言。

TMPGEnc ..等,也是一樣的作法,做完以後再壓縮就可以了。

至於幾個正確的解析度,前面已經有算好了,直接拿來用就可以了。
如果不要用 702,想用 704,將前面那些算好的數位 702 改為 704 即可。
想用其它解析度可以用 Gordian Knot 幫忙算。

我剛剛才發現,新出的 Gordian Knot 0.27 版已經改為使用那個網頁上的計算方法,
以 702 為正確的切邊數位。現在 NTSC 用 704 會顯示是錯誤的 Aspect Ratio,
和 PAL 一樣,要用 702 才會得到正確的結果... 真麻煩啊,NTSC 我還是想用 704 耶...

希望這樣補充可以幫得上忙。


也許有人看過 Nicky 寫的這篇:
http://nickyguides.digital-digest.co...vs-bicubic.htm

他的建議是
放大用 bicubic
縮小用 bilinear

一般我們做 DVDRip 的時候都是用縮小 resize,放大留給播放的時候再去放大。

縮小 resize 的計算步驟
1. pre-filter
2. 坐標變換
3. post-filter

resize 的時候,要計算像素的坐標變換,例如 704x480 -> 320x240,
新畫面坐標 (99,99) 這個點對應到原畫面,是 (217.8,198) 這個點,
落在原畫面的整數像素之間。
704/320 = 2.2
x = 99*2.2 = 217.8

480/240 = 2
y= 99*2 = 198

所以 (99,99) 對應的 (x,y) 是 (217.8,198)

當然原畫面是沒有 (217.8,198) 這個點的數值,那我們要計算這個位置的像素值應該是多少,
也就是對應過來的新畫面坐標 (99,99) 的像素值是多少。
那要怎麼計算這個在像素中間的值呢?
我們會利用內插法,也就是利用這個點週圍鄰居的像素值,來推算這個位於像素中間的數值。
這個內插法使用的 interpolation filter 也就是步驟三的 post-filter,
一般的有以下幾種方法:
1. Nearest neighbor: 最近鄰居法,就是很簡單的直接拿最靠近的鄰居(像素)數值來使用。

2. bilinear: 使用週圍 2x2,4 個鄰居做垂直、水準的線性內插。

3. bicubic: 使用週圍 4x4,16 個鄰居來做內插,內插的算式比較複雜,按距離的遠近有不同的權重。

縮小的時候會發生一種瑕疵叫做 aliasing,也就是原本的高頻被當成低頻訊號,
使得縮小後的低頻出現不正確的結果。
從畫面上看起來 aliasing 會造成 moire 和 鋸齒,線條會一格一格的很難看。
解決的方法是步驟一,先用一個 pre-filter 濾掉 resize 後無法正確記錄、
會引起 aliasing 的高頻訊號,然後再 resize,這樣就可以解決 aliasing 的問題。

但是這個 pre-filter(也就是一個 low pass filter)的設計有兩個困難。
不同種類的 filter 濾除高頻的特性不一樣,有的會造成畫面模糊。
如果 filter 的 tap 數越高(計算的像素個數越多),計算越精確,
品質當然越好。但是 tap 數太高,會造成另一種瑕疵叫做 ringing effect,
所以這個 filter tap 數不能太高。
但是如果 tap 數太低,無法無法良好的濾除高頻,又會發生 aliasing 的瑕疵。
所以這是一個兩難,必須視縮小率來調整最恰當的設計。

Avisynth 的 bicubic 設定
# BicubicResize(clip, int target_width, int target_height, float "b", float "c")

其中參數 b 代表模糊的程度,c 代表 ringing 的程度。
預設值是 b = 1/3, c = 1/3。
b = 0, c = 0.75 等於 VirtualDub 的 "precise bicubic"。
Avisynth 建議,理論上保持 b + 2 * c = 1 會得到最正確、最適當的 filter 結果。
例如 b = 0, c 便要 = 0.5,如果 c 超過 0.5 就會產生 ringing 瑕疵。

bilinear 的畫面比較模糊,但是也比較好壓縮,做 1 CD 的時候,用 bilinear 會比較好。
SimpleResize 這個 resize 法就等於 bilinear 拿掉 triangle filter,
所以它的畫面會比 bilinear 銳利一點。
如果你的畫面本來就很銳利,用 SimpleResize 縮小,那麼就會出現 aliasing 瑕疵。


前面的討論中,我們有提到一個 resize 的王者,叫做 lanczos3。
這個 resize 法是一種 decimation filter,本身具有 low pass 的效果,
也就是使用 lanczos windowed 的 FIR Low Pass Filter,它的 tap 數會根據縮小率
自動變化,在清晰度和 ringing effect/aliasing 等瑕疵之間取得最佳的平衡點。
所以 lanczos3 等於自己是一個完美的 low pass filter
根據大家的實驗,lanczos3 可以保留最多的細節,而又不會造成太大的壓縮困難,
所以建議如果碼率夠的話,用 lanczos3 可以得到最佳的結果。
相關討論,可以看日本的網站或 Doom9。

另外,lanczos3 處理放大,效果也很不錯。
放大縮小都行,所以說它是 resize 的王者

在播放和VDMOD視窗時都會有黃線,而且我輸入的寬度能被32整除,高度能被16整除。

還有一事不明,困擾很久,一併請教。
有幾點不明:
1、要同時滿足左右兩邊共切掉16點、上下切掉多餘黑邊、而且還要保持aspect ratio error為0,經常會出現不能兼顧的情形。如何取捨?
2、兩邊雖然滿足共切掉16點,但是如果兩邊各自切掉的不是偶數點,例如各自切掉7+9=16,那麼是不是在壓縮時不能工作在YV12空間?
3、最後想請Sky兄講解一下用GK做RISIZE和CROP的詳細步驟,尤其是做risize和crop的順序問題。

用GK進行resize總有問題,能講一下步驟嘛?
auto corp得到的尺寸總不標準
不要用 auto crop,左右共切 16 點即可,如果上下有黑邊,再把黑邊移除。
新版的 GK 現在是以 702 為正確的比例,所以你切 16 點 -> 704 的時候 GK 會顯示有 Aspect error,不用管它。如果你要切 702 也是可以,不過注意左邊和右邊切的點數都要是偶數,例如 10+8,這樣才不會有奇怪的瑕疵。
切完左右之後比例就對了,再 resize 就可以。GK 產生的 .avs 檔自動會把 resize 排在 crop 的後面。畫面上下有黑邊的話,crop 左右的時候可以一起把上下的黑邊切掉,這時 GK 會顯示 Aspect error 有極大的錯誤,也不用管它,因為 GK 是假設畫面沒有黑邊來算 Pixel Aspect Ratio 的,它不知道畫面上有黑邊,所以你現在把黑邊切掉它會認為有錯誤,不用管它,反正只要一開始「有先左右切邊」,就一定正確了。當然如果你會編輯 avs 檔的話,也可以利用 GK 只切左右的點,產生 .avs 之後再自行開啟編輯,在
crop 左 右
resize

之後再加上一行 crop,切掉上下的黑邊,這樣也可以。或是要把上下切邊的步驟並入第一行左右切邊的 crop 裡面一起作也可以。
應該不會很複雜? ^^;
.



那個討論是說,先補黑邊再 resize,可以不用切掉原本的畫面,還能維持正確的 PAR 比例。
例如討論中 manono 所舉的例子,NTSC 16:9 anamorphic 720x480,先上下各補 4 pixels 的黑邊變成 720x488,再切掉下面 2 pixels,變成 720x486,再 resize 至 576x320。這樣沒有切到原本 720x480 的畫面(最後是由 720x486 去 resize 的,比原本多出 6 pixels 的黑邊,沒有切到原本的畫面),而且 PAR error 還是 0%。
manono 寫的 avs:
LoadPlugin("E:\DIVXST~1\GKnot\mpeg2dec.dll")
mpeg2source("D:\Wasabi\Wasabi.d2v")
AddBorders(0,4,0,4)
crop(0,0,720,486)
BicubicResize(576,320,0.333,0.333)

在 YUY2 模式下處理的話,垂直解析度應該可以增加奇數的 pixels 吧?所以可以改成上下各加 3 pixels 變成 720x486 直接 resize -> 576x320,就不用多一步 crop(0,0,720,486),把多餘的 pixel 切掉的步驟了。

其實如果是 NTSC 16:9 anamorphic,根本不用先補什麼黑邊,如果不管水準解析度要能被 32 整除的限制,720x480 直接 resize 為 720x395 就是正確的比例(不過水準 720 不能被 32 整除)。
什麼?高度 395 不能被 16 整除?沒關係,再多補黑邊變成 720x400 就可以了。16:9 就是有這個好處,resize 正確以後要再多補多少黑邊,或切掉多少畫面都不會影響正確的比例。但是要注意播放的時候螢幕解析度必須要設定為是 4:3 的比例,例如 640x480, 800x600, 1024x768... 等等。
舉個例子,譬如說 resize 後 640x360 是正確的 16:9 比例,但是 360 不能被 16 整除呀!沒關係,不管是多補黑邊變成 640x368 或切掉畫面變成 640x352,在螢幕解析度 640x480 的情況下播放,畫面都不會變形。試想,寬度 640 和螢幕解析度 640 相同,不用放大。寬度已經到頂了,垂直方向也不會放大,其中多補上去的黑邊和螢幕的黑底相同,有效畫面的範圍仍然是 360。如果是切掉畫面變成 352,等於上下損失 4 pixels,但是重直方向還是沒有放大或縮小,只是有效畫面的範圍減小,所以畫面還是沒有變形。其它 4:3 的螢幕解析度如 800x600, 1024x768... 也是一樣,拿 800x600 來說,寬度 640 要放大 800/640 倍,高度也跟著放大 800/640 倍,多補的黑邊還是黑底,切掉的畫面也不會影響垂直方向的比例,畫面還是不會變形。
所以 16:9 只要 Resize 正確以後,隨便你上下怎麼多補黑邊或切掉黑邊,都不會影響正確比例。

720x480 直接 Resize 至 720x395 比例仍然正確,是新版 GKnot 的算法(以左右切邊為 702 為正確比例,也就是 PAR 72/79 為正確比例)。舊版是以 704 為正確切邊,也就是 PAR 10/11 為正確比例,算出來的解析度不同。上面是以新版為準。

以前曾提過,NTSC D1 取樣出來的解析度其實是 720x486,因為 486 不能被 16 整除,所以切掉底部的 6 條掃瞄線,所以 NTSC DVD 上的解析度是 720x480。對於 NTSC 4:3 的 DVD,如果我們先上下多補 6 pixels 的黑邊,補成 720x486 再 resize,你會發現這時左右就不用切邊到 702,只要切邊到 711,從 711x486 再 Resize 就是正確比例。詳細的原理和計算法我就不再重述了。這樣看起來好像不錯,左右不用切那多,但是其實有利有弊。711x486 resize 雖然左右切邊減少,但上下卻多出 6 pixels 黑邊,播放時放大到全螢幕幕上下多出黑邊,可視範圍還是減少。其二,如果是做 640x480 的影片,原本 702x480 resize 至 640x480,垂直方向一樣是 480 不用 resize,等於只有做水準方向 resize,損失較小。711x486 -> 640x480,垂直 486 要變成 480,要做 resize,同時水準 711->640 做 resize 效果不好,畫面損失較大。所以我說有利有弊。

如果是 16:9 的影片,是可以考慮用先補黑邊的方式來避免切邊。

我個人是不太在意左右切邊的問題,反正那些要切掉的畫面就當作是多餘的,切掉一點也不會心疼
(那些邊只是取樣的時候多取樣一點作為保險機制,切掉也沒有什麼損失,反正就當作是本來就不屬於我的東西,沒有也無所謂,這樣安慰自己也許會釋懷一點


在gk裡面應該以哪個為標準?
Aspect error嗎?如果是的話, 我按照我的dvd制式在gk(0.28 beta 2)裡面選項ntsc 4:3, Output resol'n 640x480, aspect error = 0%, 它給的pixels left after cropping是 702x480
那寬度要先裁到702才合適,而不是704?

您問的問題小弟以前有寫過說明,搜尋一下便可以找到。
切邊後再 resize 是為了保持正確的比例,否則人物會變形。
你可以做不切邊和切邊的版本,兩者互相比較,
便可以知道不切邊會造成怎樣的變形、比例會如何錯誤。

切邊如果會切到畫面,還是要把它切掉,不能保留。
覺得切到畫面可惜的話,不妨這麼想,這些要切掉的畫面本來就是多餘的,
本來就不該出現在 DVD 裡,製作 DVD 的廠商只是取樣的時候為了預防萬一,
多取樣一點作為保險,所以把這些本來就多餘的畫面切掉,一點也不可惜。
心理這樣想的話也許就會好過一點

事實上 DVD 的畫面也是經過切過的,原始電影膠片上的畫面更多,
膠片轉到 DVD 上時切掉的東西更多,如果要追求完整畫面,
恐怕得拿原始膠片來轉才可以 :P
所以可見畫面的多寡不是重點,畫面的比例是否正確,反而是更值得注意的焦點。

我再把原理和作法簡單地說明一次,詳細的說明,請參閱過去的討論。

NTSC 4:3 720x480 的 DVD,取樣的寬高比為 11:10,
也就是取樣時寬度比高度多取樣 11/10 倍,
所以真正的有效寬度應該等於 480*11/10 = 704,而不是 720。

因此在 resize 至我們需要的 4:3 播放比例之前,要先左右切邊共 16 點,
720x480 切邊 -> 704x480 然後再 resize 至我們要的 4:3 比例
如 640x480/512x384... 等等。

取樣寬高比 11:10 的 704x480,等於取樣寬高比 1:1 的 640x480。
因為 704 多取樣 11/10 倍,減回來 704*10/11 = 640,便會得到 640x480。
所以 NTSC 4:3 720(704)x480 的 DVD,在不放大畫面的情況下,
所能得到的最大解析度,就是 640x480。

建議製作的時候不要放大畫面,放大畫面的工作交給播放時的顯示卡來做就好了。
製作 640x480 還有一個好處,將桌面解析度調成 640x480 播放,
就不用經過放大補點,畫面會較銳利。

以上是以取樣寬高比 11:10 來計算,會得到切邊 704,如果以取樣寬高比 79:72
來計算,便會得到要切邊 702,才是正確比例。
舊版 GK 是以 704 為標準,新版 GK 是以 702 為標準。
小弟覺得,要切 702 或 704 都可以,差距不會太大,看你覺得哪個方便。

以下以 16:9 的影片做範例,說明切邊和 resize 流程
1. 本來 16:9 letterbox 應該是 720x480 切邊 -> 704x360 resize -> 640x360

2. 為了 MPEG 壓縮方便,高度要調整為可以被 16 整除的倍數,所以切邊時故意
多留下 8 個 pixel 的黑邊,變成 704x368,368 可以被 16 整除。

3. 我選項把黑邊集中在底部,8 個 pixel 剛好是一個 DCT 轉換的方塊服務機構大小。

4. 最後做 resize,704x368 -> 640x368

因時間不多,故無法再次詳細說明,請見諒。


anamorphic 是指拍攝的時候,用變形鏡頭(anamorphic lens),水準擠壓 33%,將 16:9 的寬銀幕畫面塞入 4:3 的畫面中,讓畫面上下沒有黑邊,充分利用完所有的有效畫面,提高畫面的訊息量。
播放時再水準增強 33%,回覆原本的寬銀幕畫面。
圖形請參考
http://www.thedigitalbits.com/articl...ic185demo.html

要怎麼知道 DVD 有沒有 anamorphic?
各家廠商的標示不一樣,請參考
http://www.thedigitalbits.com/articl...hic/page2.html

往下拉看 "How Do I Know A DVD Is Anamorphic?" 這一段。


NTSC anamorphic
720x480 切邊-> 704x480 Resize-> 704x396(16:9)
396 不是 16 的倍數,補黑邊-> 704x400

704x396 是 NTSC anamorphic 在不放大的情形下,最大的解析度。

如果要其它低的解析度,一樣是先切邊-> 704x480 再 Resize 至其它 16:9 的解析度。
720x480 -> 704x480 -> 704x396/640x360/512x288...

有些電影不是 16:9,例如 2.35:1,這時 anamorphic 上下會多出一點黑邊,resize 後把黑邊切掉即可。
圖形請參考
http://www.thedigitalbits.com/articl...ic235demo.html


PAL anamorphic
720x576 切邊 -> 704x576 Resize -> 704x396(16:9)



letterbox 就是不做任何特殊處理,將 16:9 的畫面直接放入 4:3 的畫面中,當然上下會多出許多黑邊沒有利用到,有效畫面縮小,相當可惜。
由於這種畫面上下有很大的黑邊,中間的縫隙才是有影像的部分,看起來很像是一個信箱投入口的樣子,所以被稱為 letterbox。
letterbox 其實可以視為是一般的 4:3 DVD,只是畫面上下的區域,像素都是黑色的,所以它的處理方法和一般的 4:3 DVD 沒有不同,只是多出了將上下黑邊切除的動作。


NTSC letterbox
720x480 切邊-> 704x480 Resize-> 640x480(4:3) 切掉上下黑邊-> 640x360(16:9)
360 不是 16 的倍數,補黑邊-> 640x368

所謂補黑邊,其實就是上下切的時候,多留下 8 pixels 的黑邊,不是真的先切了再補 ^^;
720x480 切邊-> 704x480 Resize-> 640x480 切掉上下黑邊-> 640x368

640x360 是 NTSC letterbox 在不放大的情形下,最大的解析度。

我們可以看出,letterbox 的最大解析度比 anamorphic 要小。
這就是 anamorphic 的好處,解析度高 ^_^

不過 anamorphic 的 DVD 在一般的 4:3 電視機上播放,因為要用 letterbox 的方式,
將畫面塞進 4:3 的螢幕裡面,只好每 4 條掃瞄線抽掉一條,480 *3/4 = 360。
這樣會造成畫面有鋸齒,看起來不好看。
所以 anamorphic 的 DVD 在一般的 4:3 電視機上播放反而不好看。
(每 4 條掃瞄線抽掉一條,有許多做法,直接砍掉一條當然畫質是最差的,
可以用其它 downsample 的計算方式去做,各家電視機硬體的設計不一樣,
功力有差,出來的畫質就不一樣,有的不會鋸齒得那麼嚴重)

如果將 DVD 設定用 "Wide" 模式輸出,這樣看就沒有鋸齒,但是畫面會變形,人物會被拉長。
有的日系的電視機有提供 "V 壓縮" 垂直壓縮的功能,會將掃瞄線收束,
集中掃瞄在螢幕中間的區域,這樣就不用砍掉掃瞄線,這個播放畫面非常細緻,效果是最好的。
而在電腦上看則不會有這些問題

關於 anamorphic DVD 在 4:3 電視機上顯示的問題,可以看這裡的圖形,一目瞭然,很清楚 ^^
http://www.widescreen.org/widescreen.shtml
http://www.i70s.com/xl/dvd/dvd9.htm


切掉上下黑邊的動作可以在 Resize 之前做
720x480 切邊-> 704x360 Resize-> 640x360 的結果和
720x480 切邊-> 704x480 Resize-> 640x480(4:3) 切掉上下黑邊-> 640x360(16:9)
相同

因為上下左右同時切邊後再 Resize
704x360 -> 640x360 垂直一樣,不用 Resize,等於只做水準 704 -> 640 的 Resize

而先切左右 Resize
704x480 -> 640x480 垂直也一樣,等於只做水準 704 -> 640 的 Resize

所以上下黑邊先切後切都一樣,垂直方向完全不受 Resize 影響。

如果要其它低的解析度,一樣是先切邊-> 704x360 再 Resize 至其它 4:3 的解析度。
720x480 -> 704x360 -> 640x360/512x288...

有些電影不是 16:9,例如 2.35:1,這時上下會多出更多的黑邊,把黑邊切掉切到沒有即可。
http://www.thedigitalbits.com/articl...ic235demo.html


PAL letterbox
720x576 切邊 -> 704x576 Resize -> 704x528(4:3) 切掉上下黑邊-> 704x396(16:9)

704x396 是 PAL letterbox 在不放大的情形下,最大的解析度。

可以看出 PAL 的解析度高於 NTSC。



以上有幾點值得探討
1. 相信大家一定會懷疑,PAL 的正確比例,切邊應該是切 702,怎麼我用 704?

因為用 704 可以得到較大的最大解析度 704x528(4:3)/704x396(16:9),
如果你要壓制解析度比較高的影片,切邊 704 可得到較大的解析度。
但是會犧牲一點比例的正確性,畫面會有點變形。

如果你不是要用最大解析度,使用 702 的切邊較好,比例才會正確。
720x576 -> 702x576 -> 640x480/512x384...
720x576 -> 702x576 -> 640x360/512x288...


2. 上面我們為了讓 MPEG 壓縮方便,多補了黑邊,例如 640x360,補成 640x368,這樣會不會造成畫面變形?

在 4:3 的螢幕上看,不會。

當我們在 4:3 640x480 的螢幕上播放 640x360 16:9 的影片時,有影像的部分只有中間,上下是什麼?是黑邊
所以當我們把 640x360 補黑邊補成 640x368 時,只是先補了這 8 pixels 的黑邊,這些黑邊本來播放時自然就會有的,我們只是先補了、多壓了這些黑邊,所以一點也不會影響到播放時的畫面比例。

其它 4:3 的螢幕解析度 800x600/1024x768... 的情況依此類推,也是一樣。


3. 為什麼要補黑邊,讓長寬能被 16 整除?

因為 MPEG 是以 16x16 的像素大小為服務機構作壓縮的,如果長寬不能被 16 整除,就無法得到整數個服務機構,這樣會造成壓縮的困難,會有許多瑕疵。
所以例如 TMPGEnc 等 MPEG 壓縮軟體一定要限制你的輸出長寬可以被 16 整除。
然而 XviD 有 MPEG-4 的壓縮工具,可以對付長寬非 16 倍數的大小。
所以用 XviD 壓縮,長寬不一定要能被 16 整除。
但是考慮到壓縮效率,似乎補成可以被 16 整除的大小較好。
但是這裡面有許多複雜的因素... 因為補上去的黑邊其像素值是 0,可能和其它像素的落差太大,使得包含黑邊的壓縮服務機構在尋找參考對像時,無法找到適當的匹配對象,這樣也會造成壓縮困難,甚至出現壓縮瑕疵。
所以也有人建議,例如 sysKin,把所有的黑邊都切掉,不要留下黑邊。

我自己壓縮的經驗,還沒有遇到過黑邊會造成壓縮瑕疵。
但是如果真的發生壓縮瑕疵,我們只好不補黑邊。
那麼不能補黑邊,又想維持能被 16 整除的話該怎麼辦呢?
這時只好多切一點畫面,切到最接近的,能被 16 整除的數位。
例如 640x360,不能補黑邊補成 640x368,只好多切一點,切成 640x352,犧牲一點有效畫面。


4. 切成 640x352,畫面會不會變形?

不會。
在 4:3 640x480 的螢幕上播放 640x352 16:9 的影片,有影像的部分高度是 352,並沒有伸長或縮短,畫面當然也不會變形。只是少掉了 8 pixels 的解析度,變成黑邊,少看了這 8 pixels 的畫面。

其它 4:3 的螢幕解析度 800x600/1024x768... 的情況依此類推,也是一樣。

所以結論,正確 Resize 之後,隨便你怎麼切邊,畫面都不會變形,高興的話,你要切成 640x16 都可以


5. 左右切到 704/702 後,如果還是有黑邊,可不可以多切一點?

可以,但是 Resize 之前切,計算很複雜,可以用 Gordian Knot 幫忙計算,不過我沒有找到好的切邊方法,能讓比例正確。
Resize 之後切,會比較方便。(Resize 之後,可以任意切邊)


6. 有些 DVD 標示影片比例是 2.35:1,但是 Resize 後切掉黑邊,發現剩下來的影像比例並不是 2.35:1?

DVD 所標示的比例,不一定是真正的比例,影片的比例根據拍攝使用的方法、鏡頭不同,有許多不同的比例,還有導演和製作人可能隨自己的喜好,改變放在 DVD 上的影片比例。標示 2.35:1 是取其最接近的近似值,實際上的比例可能是 2.40:1,或者窄一點,2.20:1,這是不一定的。
總之正確 Resize 之後,剩下的看到黑邊就砍,比例一定是對的,不用擔心。
請參考這篇文章的說明
http://www.chinaaudio.net/myyx/yxcs/dvd.htm

各種器材、拍攝方式,不同的比例
http://www.widescreen.org/aspect_ratios.shtml

2.40:1 影片的範例
http://www.widescreen.org/examples/zorro/index.shtml


我手上有一個 PAL 的 Matrix 片段,720x576 letterbox,
720x576 -> 704x576 -> 704x528 切掉黑邊之後-> 704x272(?!)

704x272,比例是 2.58823529411764705882352941176471:1

我也不知道這是怎麼回事
不過看起來比例好像沒問題

是的,就是那些 704x480 的 .m2v
我正在做 Ending
英文版的對白和日文版的有一些不同,日初版的 Ending,YUNA 說的那句話是「謝謝你」,
而不是那麼直接的「I love you」,我個人是比較喜歡日文版的對白,情感比較含蓄內斂,
但是反而更令人感到深重難過 T_T

這大概是東西方的文化不同
西方人大概會搞不懂那句謝謝您代表的意義,對他們來講,可能太平淡了

這部動畫非常難壓,原因就是您說的那些,如果要壓得小,
只好犧牲畫質,或者是用其它低碼率表現較好的 Codec 壓縮。
如果要追求畫質,只好不顧一切的壓大一點。
我想要保持原品質,大概只能壓到原本的 70% 左右,再下去細節減少,
同時壓縮瑕疵會很明顯。
網路上已經有很多版本,就是沒有高品質版,所以我建議既然要做就做高品質版,
這樣喜愛這部遊戲,下載動畫儲存的人應該也會很開心地收藏

這部的比例是
704x480 resize -> 640x480 把剩下來的黑邊切掉 每邊各切 32 -> 576x416

雖然先切邊到 702x480 再 resize 是正確比例
不過 702 不好處理,而且源文件已經切好 704,所以我想就算了用 704 就好
或者 702 的 YUNA 臉會比較胖,704 會比較瘦,看你喜歡比較瘦的或是比較胖的

左右各切 32 切到 576,兩邊會有部分畫面被切掉(總共 6 pixels),
之所以選 576 這個數位,是因為 576 才能被 32 整除,沒辦法。
如果不用切的,改成多留黑邊到 608,這樣不會損失畫面,但是放大到整個畫面觀看時,
兩邊會有黑邊,看起來不夠痛快
能夠填滿整個螢幕,是這部做成 MPEG-4 儲存的優勢,不然看源文件就好,
已經有遊戲的人就沒有理由下載 MPEG-4。
所以幾經考量,最後才選用 576x416 的分辦率。
這部動畫 DVD2AVI 的作者 jackei 做的時候,便是使用 576x416 的解析度,
他做得非常棒,我想不出使用 MPEG-4 V2 Codec 壓縮,能做贏的他的版本。

另外 .m2v 裡面的 aspect_ratio 旗標是標 1:1,不過播放時不是用這個比例,
我猜 FFX 遊戲程序在播放這些影片時會自己另外固定做 resize 到 4:3。
但是用一般的 MPEG 播放軟體放並不知道要做 resize 到 4:3,
所以這些 .m2v 用一般播放軟體播放畫面會變形。
這樣又多了一個理由做成 MPEG-4 收藏,為了正確的播放比例

您買的是國際亞版還是國際日版?國際日版有附一張特典 DVD,
裡面有 RIKKI 的那首歌「SUTEKI DA NE」的 MTV,這個 MTV 中間有穿插遊戲的 CG 動畫,
不過它的左右和上下沒有切得像遊戲裡面那麼多,分辦率可以達到 608x448,
左右上下多出許多遊戲裡面切掉的部分,同時它的壓縮瑕疵比較少,很適合拿來轉檔。
這個 MTV jackei 大神也有做,一樣是做得可怕的棒,
我想不出用 MPEG-4 V2 可以壓贏他的版本




想要保持品質,又想要壓小一點,可以
1. 不要用 Avisynth 的 lanczos resize,改用 AviUtl 的 lanczos3 resize 外掛,
Avisynth 的 lanczos resize 和 AviUtl 的比較,以 Ending.m2v 為例,
1st-pass 壓出來檔案大小差距是 70MB。

2. 用 DVD2AVI/MPEG-2 VFAPI Plugin 解碼,轉到 RGB 上面做,一來可以隱藏壓縮瑕疵
(這部源文件壓縮瑕疵太重),二來可以縮小一點檔案大小


另外這部是 30p 的訊源,30fps progressive 的訊源,每秒 30 張,
張張都沒有交錯,每一張都是要保留的畫面,不可以做 30->24 的處理,
否則畫面會頓,而且你會丟掉 1/5 的畫面訊息。
計算器動畫(CG)的作品通常都是 30p。


如果不計文件大小的話,可以用

704x480 削黑邊 -> 640x432 resize -> 640x474 再補黑邊 -> 640x480

因為
432 * 79/72 = 474

比例完全正確,一點也不差。
這樣是放大畫面,但是水準可以保持 640 不變動。
和 576x416 相比,文件會大很多,清晰度會提升,但是線條的凝聚感會稍差。
有幾個 clip 用這樣做,感覺清晰度會提升許多。

FFX-2 源文件已經先切好黑邊,解析度是 640x416,也可以
640x416 補黑邊 -> 640x432 resize -> 640x474 再補黑邊 -> 640x480


畫面比例的問題,那個 MPEG 文件中間插入 Squence Header,改變了畫面分辦率,你只要用能切割 MPEG 文件的軟體,在分辦率變更的地方,將原 MPEG 文件分為兩段,分開解碼,這樣就可以了。
分段的地方很好辨認,通常是轉場景的地方,在要分段之前,原始 MPEG 文件會有一張全黑的 frame,從那裡一刀兩斷就好。
剪接的軟體,我想大部分的軟體都可以做到,我自己是用 MPEG-2 VFAPI Plugin 附的 mme.exe 切割的。
注意不要用 AVI/MPEG/ASF/WMV Splitter 這個軟體切,我試過這個軟體會忽略掉中途變更的 SEQ Header,直接用開頭的 SEQ Header 取代,這對一般的 MPEG 文件沒有影響,但是對這個文件,中途有變更 SEQ Header,直接套用開頭的 SEQ Header 就會發生錯誤,有切等於沒切。


很簡單,你只要用一個小工具,叫做 DVD2AVI,預覽(Preview)一下
A. 如果 DVD2AVI 的 Statistics 狀態區 Aspect Ratio 顯示 4:3
代表訊源是 [4:3] or [16:9 letterbox = 4:3 上下是黑邊]
1. 左右切邊,NTSC 制左右共切 16 點,PAL 制左右共切 18 點
2. resize 至 4:3 的解析度,例如 640x480, 512x384, ...
3. 剩下的畫面,如果還有多餘的黑邊,切掉

B. 如果 DVD2AVI 的 Aspect Ratio 顯示 16:9
代表訊源是 16:9 anamorphic,你不用管他影片原始比例是 1.85:1, 2.35:1, 2.40:1, ... 還是多少,不用去查資料,只要
1. 左右切邊
2. resize 至 16:9 的解析度,例如 704x396, 640x360, ...
3. 如果有多餘的黑邊,切掉

就這樣,簡單明瞭吧
..
還好我做的影片都不需要面對這些觀眾或者遵守這些規定

關於上下切邊後影像會太細的問題,這點我倒是沒有想過,不過原始 DVD 的比例就是這個樣子,如果用 WinDVD 之類的軟體去播放,WinDVD 沒有左右切邊,這點是錯的,不過後面他也是 resize 到 16:9,用 Harry Potter II Trailer 做為例子,這個 Trailer 是 PAL 720x576,有橫向壓縮 anamorphic,也就是 Aspect Ratio 是 16:9,你用 WinDVD 播放,會發現它是 resize 到 16:9,上下留有黑邊,然後放大到全螢幕幕。由於沒有左右切邊的關係,影像的部分更細。PowerDVD 也是一樣。
拿到電視上播放,用硬體的 DVD player,硬體的 DVD player 做得非常正確,都會左右切邊,然後也是 resize 到 16:9,上下一樣留有黑邊。
不信你可以用尺去量 WinDVD 和電視上影像部分的比例
(注意電視因為有 overscan,上下左右都會有一部份掃瞄線我們看不到,要用專業的監視器才能看到全部的畫面)

所以你在看 DVD 的時候,影像的部分就是這麼的細,既然如此,做成 AVI 的時候也是這麼細,這應該很正常,也很自然。
當然既然是做成 AVI 在電腦上看,只要 resize 正確,畫面沒有變形,其實隨便要怎麼切,依個人喜好,都沒有關係。例如我就是不喜歡影像的部分這麼細一條,這樣太窄了,我要做成 2.35:1,這也沒有關係,只是左右要多切一點邊,犧牲一點有效畫面。

不管怎麼做都行,只要不要 resize 完全錯誤,畫面整個變形,例如用 720x576 -> 切黑邊 -> 640x272 這種亂來的做法,其它要怎麼設定最終的解析度,都隨便您自己決定。
只要 resize 正確,要怎麼切邊都可以

如果有人質疑你的做法,你就把正確的原理跟他說一遍,可以拿 GK, WinDVD, PowerDVD, 硬體 DVD player 做證據,讓他心服口服
..兄後來貼的那張圖是 320x320,而第一帖 resize 後的圖形也是 320x320,所以後來貼的那張圖應該不是原圖?
如果以後來貼的那張圖來看,角落和邊邊的圖形並不是高頻,如 stevenxu 兄說的,應該要保留。

假設兄用的原圖是我以前貼的 640x640 的圖,那麼 filter 效果最好的是圖 7

CZP 圖形是由多個同心圓所組成,越往外圈越密集,一開始是有多個黑色的 pixel 組成一個寬寬的黑圈,然後有多個白色的 pixel 組成白圈,這樣一環一環由內而外延伸出去,越往外圈,圈的寬度越窄,到最後幾乎是一個黑色的 pixel 接一個白色的 pixel,圈由寬瀕變成一條細線,這樣子我們稱為這裡具有很高的「空間頻率」,一黑一白、一黑一白,變化的頻率很快。

由中心往左右延伸出去,圈越來越密集,我們說這樣是「水準空間頻率」越來越高,由中心往上下延伸出去,圈越來越密集,我們說這樣是「垂直空間頻率」越來越高。

產生的基本圖形像下面這樣(1/4 圈):

http://net1999.net/silky/high_freq.jpg
當我們縮小畫面的時候,譬如說由 256x256 變成 128x128,我們知道「解析度」變小了,原本 256x256 畫面有很密集,變化很快,空間頻率很高的成分,在新的 128x128 這樣少數的 pixel 上表現不出來,「分辨」不出來。學術的講法就是,取樣間距變寬,取樣點不足,取樣頻率不夠,無法記錄取樣頻率一半以上的高頻。這些高頻的成分在縮小後的圖形會變成以低頻的形式出現,造成畫面上出現許多原來沒有的圖形,這個瑕疵我們稱為 aliasing,好像有翻譯翻為「假頻」。

下面是用 "Nearest neighbor" resize 法縮小上面的圖形,由 256x256 -> 128x128,我們可以看到角落多出許多原本沒有的圓圈:
http://net1999.net/silky/high_freq_point.jpg

如果我們在 resize 之前先用一個低通濾波器,Low pass filter,把畫面上 resize 後不能呈現的高頻先把它濾除掉,這樣就可以避免 aliasing 的現象。
所以縮小的算法,在 resize 之前,必須先用一個 LPF 對畫面做濾波處理。

下面是我們將上圖先用一個 3x3 的 Gaussian filter 做處理,把高頻濾掉,然後再縮小的圖形:
http://net1999.net/silky/high_freq_box.jpg

可以看到 aliasing 的現象變得比較好了。
如果我們用 Adaptive box filter 做濾波:

http://net1999.net/silky/high_freq_adaptive.jpg
多出來的圓圈幾乎都不見了。
不過濾得越乾淨,通常也代表畫面越模糊。
..
__________________
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 08:22 PM


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


SEO by vBSEO 3.6.1