『漫游』酷论坛>『DVDRip技术研修室』>綠邊的切除問題
綠邊的切除問題
goddesschi@2003-01-27 04:42
可以幾乎確定不是黑邊切的不夠造成的
壓制兩次.仍舊是有相同的情況.
而且只有一邊.....汗
vob也沒問題.難不成是 2 pass的問題
還有.相同的ITVC設定.採樣低於1000K就會失敗
不知道是什麼問題....暈
剑路1029@2003-01-27 11:37
使用avs+xvid_bf就可以了
goddesschi@2003-01-27 12:28
我的編碼使用的是divx 3.11ahpha
xvid撥放要求+顯示卡要求較高.我想3.11會比較好
況且我還不知道該怎麼用xvid壓制呀...不要笑我^^
還有其他的方法嗎?或是只有這個方法?
我是用Gordian Knot+ND製作RIP採用編碼如上
如果真只有這個方法.這可難了:o
a551@2003-01-27 12:40
DivX3.11有时会出现这个问题,换个code试试
剑路1029@2003-01-27 12:42
汗.....怪不得......
用divx 3.11ahpha来压制结果不是很好
学习研究avs+xvid_bf有点复杂 -_-b
没关系...慢慢学习就行....
goddesschi@2003-01-27 13:03
暈倒~~~~
但是我也試過5.02的編碼
感覺起來畫質不如3.11(針對一刻而言)
所以又換回3.11了
如果要修正目前我手上RAW的綠邊
是不是真的要重新壓制呢?
或是有其他工具能修正的呢?
xxp@2003-01-27 13:48
引用silky对Divx311的anti shit的说明,以来让雪雪快点转变到使用XviD吧
引用
Silky
引用 子非鱼 发表的贴子:
“没完没了的讨论,不会有结果的争论。
假如我要做,还是选DivX,没别的理由,也许只是保守吧。不过我很久没做了,都忘记了。
我希望SBC能做成反馈式的,也就是编码一帧,如果效果差就退回去改参数重新编码,类似anti shit,这样就没有那么多参数设定的问题了,质量总归有保证的,甚至做完后不需要检查。比特率曲线缩放总归是凭感觉,类似技巧,调来调去不可能有最佳,只能有折衷。可惜我不做这些程序的,也没人听我的。 ”
Nandub 的 Anti shit,不是在增进画质,相反的,它是在减低画质。
我们知道,Quantizer 越高,画质越差;Quantizer 越低,画质越好。
Nandub 每压完一个 Frame,就会计算这个 Frame 的品质(PSNR,Peak Signal to Noise Ratio,比较压缩前的画面和压缩后的画面,两者之间的差异有多大,单位是 dB。PSNR 越高越好,代表差异越小),如果 PSNR 低于你设定的 Anti shit 的 dB 数,Nandub 就会提高 Quantizer 重新压缩这个 Frame,直到画质超过你设定的 PSNR 为止。(Nandub 把 Quantizer 称为 Compression Level,简称为 CL)
等等,不是说 Quantizer 越低画质越好吗?怎么 Nandub 反而是提高 Quantizer 重新压缩呢?这是因为 Nandub 压缩使用的 MS MPEG-4 V2/V3,也就是 DivX 3.11 Codec 有一个 bug,当 Quantizer = 2 or 3 的时候,画面上高反差的区域(亮度对比强烈的地方,譬如说黑白的交界处),会出现一种灰白色方块的压缩瑕疵,英文叫做 luma-inverted block(亮度颠倒的方块,原本黑色的部分变成白色,原本白色的部分变成黑色),看起来很明显,而且很丑。这在压缩一般的电影影片时可能还不太明显,但是遇到色彩鲜艳、对比强烈的动画影片时,这个压缩瑕疵可以说是满天飞舞,让人根本看不下去。
这个瑕疵,Nandub 的作者把它称为 shit
Anti shit 的作用就是在 Anti(反)这个瑕疵。
为了解决这个 bug,日本和欧美各自发展出不同的方法。日本用的工具叫做 M4C,它的方法是压缩的时候侦测画面上是否出现灰色方块,如果发现有灰色方块,就把那张画面重新压缩为 keyframe,这样就可以解决这个问题。(MPEG-4 V2/V3,DivX 3.11 的 keyframe 的默认值,最低只能用 Quantizer 4x,除非你用 Nandub 修改这个设定。所以改成 keyframe 压缩,等于提高 Quantizer,也就解决了这个灰色方块的 bug。但是缺点是会插入太多 keyframe 花费码率,而且 keyframe 的 Quantizer 只有 4x,品质很差,一插 keyframe,画面很容易都是晶格状的方块,看起来也很丑)
Nandub 用的方法则是,计算画面上品质最差的方块的 PSNR(不是整体的 PSNR,1st-pass 的时候 debug view 里面会显示 PSNR=43.38(30.46),前面那个是整体的 PSNR,后面括号中的数字才是最差品质方块的 PSNR),当这个数值低于 Anti shit 设定的 dB 数时,Nandub 会认为代表画面出现 shit(灰色方块),Anti shit 便会启动,将这个 Frame 重新提高 Quantizer 压缩。提高 Quantizer 压缩,虽然画质会变差,但是因为 Quantizer 高于 2 or 3,可以解决灰色方块的问题。当提高 Quantizer 也无法解决问题时(最差品质方块的 PSNR 没有改善),Nandub 便会试着再将这个 Frame 重新压缩为 keyframe,并且继续提高 Quantizer 试试看。
您可以参考这个网页,搜寻 luma-inverted block 这个字符串,看看那一段的说明
http://www.undercut.org/Nandub_OnePass/
或是看 Nandub 附的 readme 说明档,搜寻 luma-inverted block 这个字符串,
里面作者都有详细解说这个选项是做什么用的。
所以 Anti shit 这个选项不是了提高画质,而是为了避免灰色方块这个 bug,所以不得以设计出来的机制,其实它是提高 Quantizer,反而会破坏画质。
至于 DivX5, XviD 都没有这种 bug,所以当然不用这种设计。它们会很自然的根据码率,决定这张画面要给多少品质。
Nandub 的这个 Anti shit 有一个 bug,那就是如果画面最差品质的方块,其 PSNR 低于 Anti shit 的 dB 值,原因不是因为灰色方块的关系,而是因为这个画面本来就很难压而压不好,那么 Nandub 即使提高 Quantizer 重新压缩,也无法解决这个问题,反而会因为 Quantizer 更高,画质更差,PSNR 更低,造成程序无穷循环,Nandub 反复不停地提高 Quantizer 重压,直到最高的 31x 为止。接着 Nandub 又会试着再把这个 Frame 重新压成 keyframe,但是这里 Nandub 的程序写错,造成 keyframe 的 PSNR 计算错误,这个 keyframe 又会反复一直提高 Quantizer 压缩,直到最高的 31x 为止才跳出循环,结果我们最后就会得到一张 Quantizer 31x 的 keyframe
画面非常惨。
不是每个人都会遇到这种情况,如果你压的是动画,Anti shit 的值又设得很高(> 21dB),那么就很容易发生这种现象。这个在国外讨论区以前常有人问,大家都不明白这是为什么,不信您可以上 Doom9 讨论区搜寻 31x keyframe 等关键词,相信一定可以找到类似讨论。
所以结论就是,Nandub 的 Anti shit,真的是 shit ...
a551@2003-01-27 13:52
XviD应该是最好的选择(话先不要说得太满^ ^)
DivX3.11还有一个缺点,很容易产生色块...
lady@2003-01-27 18:58
最新有个DIVX3.22ALPHA的新版本,也许能解决部分问题吧
一刻的1-60的RAW我都有了
要不要个上来看看效果
goddesschi@2003-01-30 21:37
抱歉..這段時間都沒來看看.
我以前也用過divx5.02壓制.但是感覺起來並沒有3.11感覺好.
既然3.11有bug存在.那我就改用5.02壓制吧!
至於xvid...我的水平還不行...汗
已沒有人有一個去雜點的濾鏡可以提供的.這樣子畫質應該會比較好.
不果相對的.人物會模糊一點.濾鏡之前xxp有幫我測試過.
可惜都不是很合格...可惜
xxp@2003-01-31 02:11
可以参考下面的小日本的avs,呵呵
以下は、処理に使っているスクリプト雛型を晒してみたり。
######################################################################
#- プラグイン読み込み
PluginDir = "C:\"#プラグインのあるディレクトリ
#m2v_vfpDir = "C:\"#m2v.vfpのあるディレクトリ
LoadPlugin( PluginDir + "WarpSharp.dll" )
LoadPlugin( PluginDir + "MPEG2DEC.dll" )
#LoadPlugin( PluginDir + "MPEG2DEC2.dll" )#MPEG2DEC"2"を使用する場合
#LoadAviUtlInputPlugin( m2v_vfpDir + "m2v.vfp","MPEG2VIDEO" )#m2v.vfpを使用する場合
#Import( "C:\" ) #AviUtlFilterPluginを使用する場合
LoadPlugin( PluginDir + "AddRange.dll" )
LoadPlugin( PluginDir + "De.dll" )
LoadPlugin( PluginDir + "ColorYUY2.dll" )
LoadPlugin( PluginDir + "IT.dll" )#IT0.051
LoadPlugin( PluginDir + "lanczos3.vdf" )
LoadPlugin( PluginDir + "_2DCleanYUY2.dll" )
#LoadPlugin( PluginDir + "Ghostbuster.dll" )
#LoadPlugin( PluginDir + "Decomb.dll" )#Decomb4.00
#LoadPlugin( PluginDir + "TomsMoComp.dll" )
#LoadPlugin( PluginDir + "Convolution3D.dll" )
######################################################################
#- ソース指定
SourceDir = "C:\"#ソースのディレクトリ
FileName = ""#ファイル名(※拡張子不要)
#MPEG2Source( SourceDir + FileName + ".d2v" )#DVD2AVI + MPEG2DEC
#MPEG2VIDEO( SourceDir + FileName + ".m2v" )#m2v.vfp
#AudioDub( last, WavSource( SourceDir + FileName + ".wav" ) )#外部音声あり
#AVISource( SourceDir + FileName + ".avi" )#AVI
AVISource( "C:\" )#AVI
AudioDub( last, WavSource( SourceDir + FileName + ".wav" ) )
ConvertToYUY2
######################################################################
#- 音声設定
DelayAudio(-0.23)#音声遅延設定
#ResampleAudio(44100)#周波数変換
######################################################################
#--- CM編集 #24fps化前の状態で設定すること
#AddRange( SourceDir + FileName + ".vcf" )
#Trim(10,100) ++ Trim(150,200) ++ Trim(300,400)
######################################################################
#- ドット妨害低減
DeDot(20,20,15,5)#(luma2d,lumaT,chromaT1,chromaT2)
#DeDotA(15,8)#アニメ適応(dot,motion2)
######################################################################
#- フィールドオーダー指定
AssumeFrameBased().ComplementParity()#トップ優先 ボトムはAssumeFrameBased()
######################################################################
#- インタレース解除
IT(fps=24,ref="TOP",blend=false,pthreshold=10000)
#FrameCache(9).AutoDeint("")#WarpSharp.dll(mode=""/"motion")
#TomsMoComp(1,5,1)#(TopFirst,SearchEffort,VerticalFilter)
######################################################################
#- 24fps化
FrameCache(9).Auto24FPS(false,24,16,"blend",false)
#FrameCache(9).Auto24FPS(true,24,16,"blend")#WarpSharp.dll(間引き,閾値,範囲,mode)
#IT(fps=24,ref="TOP",blend=false)#(24/30,"TOP"/"BOTTOM",false/true)
#Telecide(chroma=true)#プログレッシブフレーム抽出(Decomb)
#Decimate(mode=2,quality=2)#フレーム削除(Decomb)
######################################################################
#- インタレース解除2 0.09α3 #WarpSharp.dll(AviUtlFilterPlugin)
#ConvertYUY2ToAviUtlYC()
#AU_deint2(30,50,50,30,3,true,true,true,false,false,false,false,false,false,false,false)
#ConvertAviUtlYCToYUY2()
######################################################################
#- ゴースト除去 #WarpSharp.dll
#ChName = "Ghost"#テンプレートの名前
#AVSDir = "D:\Video_Files\Avisynth_Plugin\AVS\"#テンプレートをおくディレクトリ
#Import( AVSDir + ChName + ".avs" )#テンプレート使用の場合
#EraseGhost("y", 4,-256)#手動の場合(位置,強さ, 位置,強さ, ...)
#EraseGhost("u", 4,-256)#手動の場合(位置,強さ, 位置,強さ, ...)
#EraseGhost("v", 4,-256)#手動の場合(位置,強さ, 位置,強さ, ...)
######################################################################
#- ゴースト除去(縦線) #WarpSharp.dll
#SearchGhostV( 0, 0,468,1,AVSDir + ChName )#(frame,top,bottom,depth,"pattern")
#EraseGhostV( 256,AVSDir + ChName )#(strength,"pattern")
#Ghostbuster(clip clip, int offset, int strength)
#Ghostbuster(last,4,3)
######################################################################
#- Wavelet3DNR2 0.31α3 #WarpSharp.dll(AviUtlFilterPlugin)
#ConvertYUY2ToAviUtlYC()
#AU_wavelet3DNR2(2,5,5,2,4,6,5,5,6,5,70,7,50,0,0,false,false,false,true,false,true,false,false,false,false,false,false)
#ConvertAviUtlYCToYUY2()
######################################################################
#- クリッピング
Crop(7,2,696,476)
#crop(8,0,704,480)#(左,上,720-(左+右),480-(上+下))
######################################################################
#- ノイズ除去
_2DCleanYUY2(0,2,2,2,0,2,2)#(interlace,Y,範囲X,範囲Y,dmode,U,V)
TemporalSmoother(2,3)#MPEG2DEC(2).dll(強さ,範囲)
#Convolution3d(0, 4, 4, 4, 4, 2, 0)#(0/1,2D-輝度,色差,T-輝度,色差,影響,debug)
#TemporalSoften(2,3,3)#Rev.2.xx系or外部plugin(範囲,輝度,色差)
######################################################################
#- WaveletNR Type-G #WarpSharp.dll(AviUtlFilterPlugin)
#ConvertYUY2ToAviUtlYC()
#AU_waveletNR_G(2,75,75,75,75,75,75,50,50,50,50,50,50,200,100,0,false,false,false,false)
#ConvertAviUtlYCToYUY2()
######################################################################
#- シャープ・ぼかし
WarpSharp(depth=64, blur=2, bump=96, cubic=-0.6)
######################################################################
#- 色タイミング補正 #WarpSharp.dll
#UVTimingH(0,0,false)#水平方向(U,V,端の色で塗りつぶす?)
#UVTimingV(0,0,false)#垂直方向(U,V,true/false)
######################################################################
#- 色調補正
ColorYUY2(Levels="TV->PC")
#ColorYUY2(0,0,0,0, 0,0,0,0, 0,0,0,0)#y u vの順に(gain,off,gamma,cont)
#ColorYUY2(debug=2)#ヒストグラム表示(YUV)
######################################################################
#- リサイズ
Lanczos3Resize(640,480)#lanczos3.vdf使用
#LanczosResize(640,480)#Avisynth2.06以降
return last
xxp@2003-01-31 02:16
"#- ノイズ除去
_2DCleanYUY2(0,2,2,2,0,2,2)#(interlace,Y,範囲X,範囲Y,dmode,U,V)
TemporalSmoother(2,3)#MPEG2DEC(2).dll(強さ,範囲)
#Convolution3d(0, 4, 4, 4, 4, 2, 0)#(0/1,2D-輝度,色差,T-輝度,色差,影響,debug)
#TemporalSoften(2,3,3)#Rev.2.xx系or外部plugin(範囲,輝度,色差)"
这里就是去除噪点的noise reduce滤镜的使用
如果感觉片源很差,就互相搭配使用
如果片源很好,只用其中一个就行
可以在vd里打开avs后直接看画面的效果
goddesschi@2003-02-04 00:08
太感謝xxp了...濾鏡一直沒有好好試試看.
這兩天就再來壓壓看吧!
goddesschi@2003-02-04 00:10
引用
最初由 lady 发布
最新有个DIVX3.22ALPHA的新版本,也许能解决部分问题吧
一刻的1-60的RAW我都有了
要不要个上来看看效果
在RPWT裡有對吧!
我去下載一份來看看:)
lady@2003-02-04 00:33
引用
最初由 goddesschi 发布
在RPWT裡有對吧!
我去下載一份來看看:)
我不去RPWT的
我在交大的上传区里看见有
我自己也只下了1-60
后面的都有了
就没硬盘放出
(刚看了,RPWT里面的好象太大了,我下的那个是230M左右的)
| TOP