话说造源是单纯用支持10bit的x264压一遍么?xiao7 写了:源可以造一个出来 显示器就没辙, 用8bit的显示器播放会怎么样呢?
没非编……xiao7 写了:不能直接创建一个视频 然后以10bit输出么
目前看来还需要好久才能普及啊T-T
这样明显是转换错误了吧。。。正确的话粗看是看不出大区别的upyzl 写了: 话说造源是单纯用支持10bit的x264压一遍么?
如果是的话
上:8bit
下:10bit
显示器为普通的LCD(8bit)
把10亿多色变成1677万多色,就是下面那个样子的原因了吧?(更何况我压根也不知道这个流程是怎么转换对应的)
代码: 全选
function output_16bit_interleaved(clip c)
{
c
Interleave (Dither_get_lsb (), Dither_get_msb ())
TurnRight ()
AssumeFieldBased ().AssumeTFF ()
Weave ()
TurnLeft ()
}
Function GradFun3_nodither (clip src, float "thr", int "radius", float "elast",
\ int "mask", int "mode", float "ampo", float "ampn", int "pat",
\ bool "dyn", float "dthr", int "smode", float "wmin", float "thr_det",
\ float "thr_edg", int "debug", int "subspl")
{
thr = Default (thr, 0.35)
radius = Default (radius, 12)
elast = Default (elast, 3.0)
mask = Default (mask, radius/4)
smode = Default (smode, 0)
wmin = Default (wmin, 1.0)
thr_det = Default (thr_det, 2)
thr_edg = Default (thr_edg, 32)
debug = Default (debug, 0)
subspl = Default (subspl, 0)
Assert (thr > 0, "GradFun3: "+chr(34)+"thr"+chr(34)+" must be strictly positive.")
elast = Dither_max (elast, 1)
w = src.Width ()
h = src.Height ()
src.Dither_convert_8_to_16 ()
inp = last
# Main debanding
(smode == 1) ? Dither_gf3_dfttest (src, radius, thr, elast)
\ : (smode == 2) ? Dither_gf3_bilateral_multistage (radius, thr, elast, wmin, subspl)
\ : Dither_gf3_smoothgrad_multistage (radius, thr, elast)
flt = last
# Edge mask
edge_mask = src.mt_edge (mode="prewitt", thY1=0, thY2=255)
detl_mask = src.mt_edge (mode="min/max", thY1=0, thY2=255)
# Edges
e_edg = Dither_make_expr_gate (thr_edg * 0.75, thr_edg)
m_edg = edge_mask.mt_lut (expr=e_edg)
m_edg = m_edg.RemoveGrain (21, -1)
m_edg = m_edg.mt_expand_multi (sw=mask-1, sh=mask-1, mode="ellipse")
# Details
m_det_rad = Round (sqrt (mask))
thr_det_lo = Dither_max (thr_det * 0.75, 1)
thr_det_hi = Dither_max (thr_det, 1)
e_det = Dither_make_expr_gate (thr_det_lo, thr_det_hi)
m_det = detl_mask.mt_lut (expr=e_det)
m_det = m_det.RemoveGrain (21, -1)
m_det = m_det.mt_expand_multi (sw=m_det_rad-1, sh=m_det_rad-1, mode="ellipse")
# Final mask
edge_mask = mt_logic (m_edg, m_det, mode="max")
edge_mask = edge_mask.RemoveGrain (19, -1)
edge_mask = edge_mask.RemoveGrain (19, -1)
masked = Dither_merge16_8 (flt, inp, edge_mask, luma=true)
(mask > 0) ? masked : flt
}
代码: 全选
avs2yuv -raw XXXX-16bit.avs -o - | x264-1995-10.exe - --demuxer raw --input-depth 16 --input-res 704x480 --fps 23.976 --preset ultrafast --qp 0 -o XXXX_10.mkv