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

加入日期: Oct 2002
您的住址: El's room
文章: 1,046
汗... 我是小輩.... @_@;;

這樣有超過十個字嗎?
多打一些灌水.... Avisynth 可以做一些有趣的處理..... 例如如果訊源太難壓,用 DVD 的流量限制怎麼壓都壓不好,可以故意把 Chroma 色彩的資訊弄模糊一點,但是比較重要的 Luma 亮度資訊則保留原來的解析度。這樣畫面清晰度不會損失太多,MPEG 壓縮又會比較好壓。例如 TMPGEnc 3.0 XPress 就有一個 Chroma Channel 的低通濾波(LPF)的功能,如果用 Avisynth 要如何做到只對 Chroma 做處理呢?

我們可以對 Chroma 做線性內插放大後再縮小,等於幫它做 LPF,Chroma 會模糊許多,但是會比較好壓。
例如原本畫面大小是 640x480 的話:
==
# 強迫 AVISource 吐出 YUY2
a=avisource("Baldr_Force_OP_A.avi",pixel_type="YUY2")
b=avisource("Baldr_Force_OP_B.avi",pixel_type="YUY2")

# 把兩段接起來
source=a+b

# 分別製作 U, V 的放大後再縮小的版本
u_chroma=source.UToY().BilinearResize(640,960).BilinearResize(320,480)
v_chroma=source.VToY().BilinearResize(640,960).BilinearResize(320,480)

# 把新的 U, V 覆蓋掉原本的 U, V
YtoUV(u_chroma, v_chroma)

# 合併 YUV 回原本的 source,令等於最後我們要輸出的 target
target=MergeLuma(source)

# 傳回 target
return target
==

以上的方法可以做其他的處理,例如 resize 的時候,我們想對 Luma 做 Lanczos3 Resize,保持銳利度,但是 Chroma 想用 Bilinear Resize,讓畫面好壓一點,或者單獨想對 Chroma Channel 做任何處理的時候,都可以用
舊 2004-09-26, 04:46 AM #25
回應時引用此文章
Shade離線中