[не удалять] Как выбрать оптимальный битрейт и ключевые параметры для рипа в x264 [архив №2]

Страницы :   Пред.  1, 2, 3 ... 97, 98, 99, 100, 101  След.
Тема закрыта
 

supreme6666

Стаж: 17 лет 5 месяцев

Сообщений: 76


supreme6666 · 10-Июн-12 18:57 (12 лет 5 месяцев назад)

supreme6666 писал(а):
народ так все таки какие нужны показатели I P B при желании сделать качественный рип с Blu-ray не беспокоясь о размере файла, но при этом не желая иметь дутый размер этого самого файла?
понятие 18 - 24 для B ооочень растяжимое (примерно также как crf 18 - 22 - а это уже не 1 и не 2 гига разницы на выходе 1080p). Хотелось бы более точные цифры от профессионалов услышать
x264 [info]: frame I:3 Avg QP:24.38 size:168401
x264 [info]: frame P:175 Avg QP:27.98 size: 65524
x264 [info]: frame B:422 Avg QP:30.80 size: 13978
а еще вопрос - нужно ли прописывать при кодировании Blu-ray параметры указанные ниже, а то кто-то смотрю в рипах прописывает, кто-то прописывает только 1 или 2 параметра, кто-то все 3?
Основные цвета : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177
Характеристики трансфера : BT.709-5, BT.1361
Коэффициенты матрицы : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177
заранее спасибо!
да и забыл - спрашиваю именно про то какой должен быть QP потому что кодирую в hi10p и где то читал что там значение crf несколько выше можно ставить т.к. качество позволяет - не знаю правда это или нет
[Профиль]  [ЛС] 

Yurasyk

Стаж: 16 лет 2 месяца

Сообщений: 3506

Yurasyk · 10-Июн-12 19:00 (спустя 2 мин.)

supreme6666 писал(а):
кодирую в hi10p
тогда с такими квантами в принципе можно быть спокойным, можно и crf на 1 поднять.
[Профиль]  [ЛС] 

supreme6666

Стаж: 17 лет 5 месяцев

Сообщений: 76


supreme6666 · 10-Июн-12 19:08 (спустя 7 мин.)

Цитата:
19-20.99 будет самое то.
это для B кадров ? значит получается для hi10p это 31-32.99?
Цитата:
если точно знаете какие хар-ки используются в исходнике, то лучше прописывать. некоторые внешние проигрыватели для облегчнения процесса воспроизведения используют эти показатели (вместо того, чтобы обрабатывать самим).
если не знаете, то лучше не использовать, криминала здесь нет.
а че их знать то - они прописаны в mkv файле когда муксишь blu-ray с помощью eac3to вроде бы?
Цитата:
тогда с такими квантами в принципе можно быть спокойным, можно и crf на 1 поднять.
ну щас вот как бы кодится у меня blu-ray железный человек 8bit => 16bit => 10bit с crf=19 1080p предположительный размер 10,3 Гб - чет многовато, думаю попробовать с crf=20. надеюсь что качество за счет шаманства с битами и использованием модифицированного фильтра gradfun2dbMod от pl7 не испортится из-за crf=20. если все ок будет буду свои рипы выкладывать, а то заманали рипы с дутым размером и поганым качеством с непонятных источников.
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 10-Июн-12 22:19 (спустя 3 часа, ред. 10-Июн-12 22:20)

supreme6666 писал(а):
8bit => 16bit => 10bit с crf=19 1080p предположительный размер 10,3 Гб - чет многовато, думаю попробовать с crf=20. надеюсь что качество за счет шаманства с битами и использованием модифицированного фильтра gradfun2dbMod
Хотелось бы увидеть ваш скрипт, раз вы упомянули применение gradfun2dbMod в своём скрипте при кодировании кодеком x264-10bit. Я бы промолчал, если на месте этого дебандера были GradFun3(lsb=true), LumaDBL(lsb=true) или
Dither_convert_8_to_16 ()
Dither_Resize16(W, H)
fslg_dither_to_n_bits(10, outn=true)
f3kdb(sample_mode=2, dynamic_grain=false, dither_algo=2, input_depth=10, output_depth=10, input_mode=1, output_mode=1, keep_TV_range=true)
Dither_convey_yuv4xxp16_on_yvxx ()

Может я чего-то пропустил и turboPascal7 выпустил 16-битную версию дебандера Gradfun2DBmod ? Или этот дебандер стоит перед строкой Dither_convert_8_to_16 () ?
[Профиль]  [ЛС] 

supreme6666

Стаж: 17 лет 5 месяцев

Сообщений: 76


supreme6666 · 10-Июн-12 22:28 (спустя 9 мин., ред. 10-Июн-12 22:28)

Цитата:
Хотелось бы увидеть ваш скрипт, раз вы упомянули применение gradfun2dbMod в своём скрипте при кодировании кодеком x264-10bit. Я бы промолчал, если на месте этого дебандера были GradFun3(lsb=true), LumaDBL(lsb=true) или
fslg_dither_to_n_bits(10, outn=true)
f3kdb(sample_mode=2, dynamic_grain=false, dither_algo=2, input_depth=10, output_depth=10, input_mode=1, output_mode=1, keep_TV_range=true)
Может я чего-то пропустил и turboPascal7 выпустил 16-битную версию дебандера Gradfun2DBmod ?
да нет ничего не пропустили, просто сначала дебандю 8bit а потом только перегоняю его в 16bit
вот это тоже присутствует
Код:
Dither_convert_8_to_16 ()
fslg_dither_to_n_bits(10, outn=true)
Dither_convey_yuv4xxp16_on_yvxx ()
вот этого нет потому что исходник 1080p и выходное видео тем же разрешением
Код:
Dither_Resize16(W, H)
это я пробовал - полная лажа получается с картинкой (lsb=true) - самое боле менее нормальная картинка, но все равно и близко не лежала с Gradfun2DBmod , а остальные (smode=1, lsb=true) (smode=2, lsb=true) (smode=3, lsb=true) - полная кака
Код:
GradFun3(lsb=true)
а это я вообще не знаю что делает (если расскажите что они делают, и чем они лучше Gradfun2DBmod буду очень признателен ибо долго мучался с выбором дебандера)
Код:
f3kdb(sample_mode=2, dynamic_grain=false, dither_algo=2, input_depth=10, output_depth=10, input_mode=1, output_mode=1, keep_TV_range=true)
LumaDBL(lsb=true)
а вообще мой скрипт avs вот какой:
Код:
#setmtmode(5,4)
#setmemorymax(2560)
LoadPlugin("c:\Program Files (x86)\AviSynth 2.6\plugins\ffms2.dll")
LoadPlugin("c:\Program Files (x86)\AviSynth 2.6\plugins\mt_masktools-26.dll")
import("c:\Program Files (x86)\AviSynth 2.6\plugins\fslg_dither_to_n_bits.avs")
import("c:\Program Files (x86)\AviSynth 2.6\plugins\GradFun2DBmod151.avs")
FFVideoSource("video.mkv", threads=1)
#setmtmode(2)
crop( 0, 140, 0, -140)
#trim(0,599)
GradFun2DBmod151()
Dither_convert_8_to_16()
#Dither_Resize16(1280,534)
fslg_dither_to_n_bits(10, outn=true)
Dither_convey_yuv4xxp16_on_yvxx()
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 10-Июн-12 22:47 (спустя 19 мин., ред. 10-Июн-12 22:47)

supreme6666
f3kdb это дебандер плагина flash3kyuu_deband.dll, а второй дебандер
LumaDBLite_v0.7.avsi
###################################################
### ###
### LumaDBLite ###
### ###
### by 06_taro - astrataro@gmail.com ###
### ###
### v0.7 - 06 April 2012 ###
### ###
###################################################
###
### Fast luma debanding filter in 16-bit precision
###
### Original used by tp7, scripted by 06_taro as LumaDB, implemented 16-bit precision in LumaDBLite
###
###
### +---------+
### | USAGE |
### +---------+
###
### !!!Add "SetMemoryMax(1024)" at the beginning of your script if you find it extremely slow, usually happening on high resolution processing!!!
###
### 8-bit input, 8-bit output, using internal dither down method
### LumaDBL()
###
### 8-bit input, 16-bit output
### LumaDBL(lsb=true)
###
### 16-bit input, 16-bit output
### LumaDBL(lsb=true, lsb_in=true)
###
### 16-bit input, 8-bit output, using internal dithering down method
### LumaDBL(lsb_in=true)
###
### 16-bit input, 8-bit output, using self defined dithering f3kdb_dither
### LumaDBL(lsb_in=true, ditherC="f3kdb_dither()")
###
### See below for explanation of parameters
###
### +----------------+
### | REQUIREMENTS |
### +----------------+
###
### -> AddGrainC [v1.6.1]
### -> MaskTools2 [v2.0a48]
### -> dither [v1.15.0]
### -> RemoveGrain [v1.0pre]
### -> TEdgeMask [v0.9]
### -> GrainFactoryLite [v1.2]
### -> f3kdb [v1.5.0]
### -> f3kgrain [v0.3]
###
### +-----------+
### | CHANGELOG |
### +-----------+
###
### v0.7 - 06 April 2012
### - Doc: added support for generating f3kdb based grain ( set negative value for g*str to use f3kdb based grain )
###
### v0.6-1 - 27 March 2012
### - Updated required version of dither package to 1.15.0, which fixed a regressive bug in Dither_resize16
###
### v0.6 - 13 March 2012
### - Added "mclip" to define custom edge mask
### - Added chroma grain support
### - Changed "nop" to "none" or "nop", the former is LumaDB style
### - Added some noise in final dithering down process by defualt when lsb=false
### otherwise the dither/grain generated by LumaDBL in 16-bit precision may sometimes be ruined, giving you a worse result than LumaDB
### - Synchronized version number with LumaDB
###
### v0.2 - 01 October 2011
### - Fixed: wrong "g*soft" type
### - Added: solution to slow processing in document
###
### v0.1 - 26 September 2011
### - First script
###
Function LumaDBL( clip input,
\ float "thr", int "radius", float "ampn",
\ float "g1str", float "g2str", float "g3str",
\ float "g1cstr", float "g2cstr", float "g3cstr",
\ int "g1shrp", int "g2shrp", int "g3shrp",
\ float "g1size", float "g2size", float "g3size",
\ int "g1soft", int "g2soft", int "g3soft",
\ int "gth1", int "gth2", int "gth3", int "gth4",
\ bool "mask", int "gf3mask",
\ bool "preblur", bool "deflate", bool "blur",
\ bool "chroma", bool "mluma",
\ string "dither", bool "d_lsb", bool "d_lsb_in",
\ string "grain", bool "g_lsb", bool "g_lsb_in",
\ bool "lsb", bool "lsb_in",
\ clip "mclip",
\ int "ditherD", float "ampoD", float "ampnD",
\ bool "ddDyn", bool "gdDyn",
\ string "ditherC" )
{
#-----------------------------------------------------------------------------------
lsb_in = Default( lsb_in, false ) # Input clip is 16-bit stacked or not
lsb = Default( lsb, false ) # Output clip is 16-bit stacked or not
thr = Default( thr, 0.35 ) # GradFun3 "thr" parameter
ampn = Default( ampn, 0 ) # GradFun3 "ampn" parameter
g1str = Default( g1str, 12 ) # [ 0 - ???] strength of luma grain / for dark areas, the strength of this value is different from 8-bit LumaDB
# positive value for add_grain16 strength, negative value for f3kgrain strength
g2str = Default( g2str, 6 ) # [ 0 - ???] strength of luma grain / for midtone areas, the strength of this value is different from 8-bit LumaDB
# positive value for add_grain16 strength, negative value for f3kgrain strength
g3str = Default( g3str, 0 ) # [ 0 - ???] strength of luma grain / for bright areas, the strength of this value is different from 8-bit LumaDB
# positive value for add_grain16 strength, negative value for f3kgrain strength
g1cstr = Default( g1cstr, 0 ) # [ 0 - ???] strength of chroma grain / for dark areas, the strength of this value is different from 8-bit LumaDB
# positive value for add_grain16 strength, negative value for f3kgrain strength
g2cstr = Default( g2cstr, 0 ) # [ 0 - ???] strength of chroma grain / for midtone areas, the strength of this value is different from 8-bit LumaDB
# positive value for add_grain16 strength, negative value for f3kgrain strength
g3cstr = Default( g3cstr, 0 ) # [ 0 - ???] strength of chroma grain / for bright areas, the strength of this value is different from 8-bit LumaDB
# positive value for add_grain16 strength, negative value for f3kgrain strength
g1shrp = Default( g1shrp, 60 ) # [ 0 - 100] sharpness of grain / for dark areas (NO EFFECT when g1size=1.0 !!)
g2shrp = Default( g2shrp, 66 ) # [ 0 - 100] sharpness of grain / for midtone areas (NO EFFECT when g2size=1.0 !!)
g3shrp = Default( g3shrp, 80 ) # [ 0 - 100] sharpness of grain / for bright areas (NO EFFECT when g3size=1.0 !!)
g1size = Default( g1size, 0.90 ) # [0.5 - 4.0] size of grain / for dark areas
g2size = Default( g2size, 0.70 ) # [0.5 - 4.0] size of grain / for mid-tone areas
g3size = Default( g3size, 0.60 ) # [0.5 - 4.0] size of grain / for bright areas
g1soft = Default( g1soft, 20 ) # Noise temporal stability of grain / for dark areas, completely static if set to 100 or above
g2soft = Default( g2soft, 40 ) # Noise temporal stability of grain / for midtone areas, completely static if set to 100 or above
g3soft = Default( g3soft, 60 ) # Noise temporal stability of grain / for bright areas, completely static if set to 100 or above
gth1 = Default( gth1, 24 ) # Start of dark->midtone mixing zone as defined in 8-bit precision
gth2 = Default( gth2, 56 ) # End of dark->midtone mixing zone as defined in 8-bit precision
gth3 = Default( gth3, 128 ) # Start of midtone->bright mixing zone as defined in 8-bit precision
gth4 = Default( gth4, 160 ) # End of midtone->bright mixing zone as defined in 8-bit precision
mask = Default( mask, true ) # Indicates whether to use edge mask to protect edges
gf3mask = Default( gf3mask, 0 ) # Indicates whether to use GradFun3's internal mask
preblur = Default( preblur, true ) # Indicates whether to apply a 3x3 guassian blur to the input image prior to generating the edge map
deflate = Default( deflate, true ) # Indicates whether to apply a deflation to the mask clip
blur = Default( blur, true ) # Indicates whether to apply a blur using RemoveGrain to the mask clip
chroma = ( g1cstr == 0 ) && ( g2cstr == 0 ) && ( g3cstr == 0 ) ? Default( chroma, false )
\ : Default( chroma, true ) # Indicates whether to process chroma or not
mluma = Default( mluma, false ) # Indicate whether to use luma edge mask to process uv plane (read mt_merge's doc of "luma" for more details)
###### "dither" : custom debanding method in string, "nop" for no processing
d_lsb = Default( d_lsb, false ) # custom debanding method outputs 16-bit stacked clip or not
d_lsb_in = Default( d_lsb_in, false ) # custom debanding method accepts 16-bit stacked clip or not
###### e.g., using flash3kyuu_deband with 16-bit input clip and 16-bit output clip as custom debanding filter:
###### LumaDBL(dither="flash3kyuu_deband(input_depth=16, output_depth=16)", d_lsb=true, d_lsb_in=true)
###### "grain" : custom grain generator in string, "nop" for no processing
g_lsb = Default( g_lsb, false ) # custom grain generator outputs 16-bit stacked clip or not
g_lsb_in = Default( g_lsb_in, false ) # custom grain generator accepts 16-bit stacked clip or not
###### e.g., using Dither_add_grain16 with 16-bit input clip and 16-bit output clip as custom grain filter,
###### and use ALMerge to make it luma adaptive:
###### Function AGL16(clip c){ return ALMerge( c.Dither_add_grain16, c, c.DitherPost(-1) ) }
###### LumaDBL(grain="AGL16()", g_lsb=true, g_lsb_in=true)
###### "mclip" : custom mask clip, e.g., mclip="tcanny()"
ditherD = Default( ditherD, 0 ) # 16-bit to 8-bit result dithering method when lsb=false, same as "mode" in DitherPost
ampoD = Default( ampoD, 1.5 ) # 16-bit to 8-bit result ordered dithering peak-to-peak amplitude when lsb=false, same as "ampo" in DitherPost
ampnD = Default( ampnD, 1 ) # 16-bit to 8-bit result dithering grain generating strength when lsb=false, same as "ampn" in DitherPost
ddDyn = Default( ddDyn, false ) # 16-bit to 8-bit result ordered dithering pattern is dynamic or not when lsb=false, same as "dyn" in DitherPost
gdDyn = Default( gdDyn, true ) # 16-bit to 8-bit result dithering grain generating is dynamic or not when lsb=false, contrast with "staticnoise" in DitherPost
###### "ditherC" : custom dithering method in string, e.g., ditherC="DitherPost(mode=2)" gives same result as ditherD=2
src16 = lsb_in ? input : input.Dither_convert_8_to_16()
src8 = !lsb_in ? input : input.DitherPost(mode=ditherD, ampo=ampoD, ampn=ampnD, dyn=ddDyn, staticnoise=!gdDyn)
last = src8
res = width * height
radius = ( res <= 589824 ) ? Default( radius, 12 ) :
\ ( res <= 921600 ) ? Default( radius, 14 ) :
\ Default( radius, 16 )
###### GradFun3 "radius" parameter, resolution adaptive ######
#-----------------------------------------------------------------------------------
chroma_pre = chroma && !mluma
msk = TEdgeMask( link=2, preblur=preblur, valon=-1, u=chroma_pre?1:0, v=chroma_pre?1:0 ).mt_lut( "x 255 *", u=chroma_pre?3:1, v=chroma_pre?3:1 )
msk = deflate ? msk.mt_deflate(u=chroma_pre?3:1, v=chroma_pre?3:1) : msk
msk = blur ? msk.RemoveGrain(20, chroma_pre?20:-1) : msk
#-----------------------------------------------------------------------------------
gf = !Defined(dither) ? src16.GradFun3( thr=thr, elast=2.5, ampn=ampn, radius=radius, ampo=0.8, dthr=0.011, lsb=true, lsb_in=true, mask=gf3mask )
\ : ( dither=="nop" || dither=="none" || dither=="nop()" || dither=="none()" ) ? src16
\ : d_lsb_in ? d_lsb ? Eval( "src16." + dither )
\ : Eval( "src16." + dither + ".Dither_convert_8_to_16()" )
\ : d_lsb ? Eval( "src8." + dither )
\ : Eval( "src8." + dither + ".Dither_convert_8_to_16()" )
#-----------------------------------------------------------------------------------
gf8 = gf.DitherPost(mode=ditherD, ampo=ampoD, ampn=ampnD, dyn=ddDyn, staticnoise=!gdDyn)
gf = !Defined(grain) ? gf.GrainFL( g1str=g1str, g2str=g2str, g3str=g3str,
\ g1cstr=g1cstr, g2cstr=g2cstr, g3cstr=g3cstr,
\ g1shrp=g1shrp, g2shrp=g2shrp, g3shrp=g3shrp,
\ g1size=g1size, g2size=g3size, g3size=g3size,
\ g1soft=g1soft, g2soft=g2soft, g3soft=g3soft,
\ th1=gth1, th2=gth3, th3=gth3, th4=gth4,
\ ontop_grain=0, ontop_cgrain=0, lsb=true, lsb_in=true )
\ : ( grain=="nop" || grain=="none" || grain=="nop()" || grain=="none()" ) ? gf
\ : g_lsb_in ? g_lsb ? Eval( "gf." + grain )
\ : Eval( "gf." + grain + ".Dither_convert_8_to_16()" )
\ : g_lsb ? Eval( "gf8." + grain )
\ : Eval( "gf8." + grain + ".Dither_convert_8_to_16()" )
#-----------------------------------------------------------------------------------
result16 = mask ? Defined(mclip) ? GrainFL_merge16_8( gf, src16, ( (src16.width==mclip.width) ? mclip.GrainFL_get_msb : mclip ), luma=mluma, u=chroma?3:4, v=chroma?3:4 )
\ : GrainFL_merge16_8( gf, src16, msk, luma=mluma, u=chroma?3:4, v=chroma?3:4 )
\ : gf
result = lsb ? result16 : Defined(ditherC) ? Eval("result16."+ditherC) : result16.DitherPost(mode=ditherD, ampo=ampoD, ampn=ampnD, dyn=ddDyn, staticnoise=!gdDyn)
return result
}
[Профиль]  [ЛС] 

Lenchik

Стаж: 18 лет 4 месяца

Сообщений: 854


Lenchik · 10-Июн-12 22:48 (спустя 1 мин.)

supreme6666
В таком скрипте нет смысла, по-моему - в 16 битах вы ведь ничего не делаете.
А 8 битная обработка встривается внутрь 16 битной на данный момент так:
Код:

Dither_convert_8_to_16 () # or whatever generating stack16 data
# Insert 16-bit filters here
s16 = last
DitherPost (mode=-1)
# Insert 8-bit filters here
Dither_convert_8_to_16 ()
s16.Dither_limit_dif16 (last, thr=1.0, elast=2.0)
# Insert 16-bits filters again...
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 10-Июн-12 23:11 (спустя 22 мин., ред. 10-Июн-12 23:11)

Lenchik
Вот это другое дело , прямо из мануала dither по применению Mixing 8- and 16-bit processing. You can reapeat the steps as many times you need to alternate 8 and 16 bits
supreme6666
Вы делали crop( 0, 140, 0, -140) , разве после этого разрешение не изменилось на 1920 х 800?
[Профиль]  [ЛС] 

supreme6666

Стаж: 17 лет 5 месяцев

Сообщений: 76


supreme6666 · 10-Июн-12 23:17 (спустя 6 мин., ред. 10-Июн-12 23:19)

Tempter57
по вашему мнению какой дебандер дает лучшее качество дебандинга + качество фильма? (f3kdb, LumaDBLite_v0.7.avsi, gradfun2dbMod, GradFun3) ? желательно с какими-нибудь основаниями
Lenchik
нельзя ли описать что каждая строчка из вашего кода делает - я не силен в этом всем, и в инглише тоже??
и кроме того в вашем примере одновременно используется две команды (Dither_convert_8_to_16 (), любой 16bit фильтр), однако уважаемый Tempter57 в личке мне писал следующее
Код:
Сейчас скрипт верный
setmtmode(5,4)
setmemorymax(2560)
LoadPlugin("c:\Program Files (x86)\AviSynth 2.5\plugins\ffms2.dll")
LoadPlugin("c:\Program Files (x86)\AviSynth 2.5\plugins\mt_masktools-26.dll")
import("c:\Program Files (x86)\AviSynth 2.5\plugins\fslg_dither_to_n_bits.avs")
FFVideoSource("video.mkv", threads=1)
setmtmode(2)
crop( 0, 140, 0, -140)
GradFun3(smode=1, LSB=true) # дебандер c конвертацией из 8 бит в 16
Dither_Resize16(1280,532) # ресайз 16 => 16
fslg_dither_to_n_bits(10, outn=true) # 16 => 10
Dither_convey_yuv4xxp16_on_yvxx() # encode
Какой AviSynth стоит у вас?
господа, определитесь кто говорит истину, а кто заблуждается - ибо вы говорите противоположности
Tempter57 писал(а):
Lenchik
Вот это другое дело , прямо из мануала dither по применению Mixing 8- and 16-bit processing. You can reapeat the steps as many times you need to alternate 8 and 16 bits
supreme6666
Вы делали crop( 0, 140, 0, -140) , разве после этого разрешение не изменилось на 1920 х 800?
изменилось но не пойму к чему вы клоните?
Lenchik не понимаю зачем в вашем скрипте два раза Dither_convert_8_to_16 () ?
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 10-Июн-12 23:18 (спустя 1 мин.)

supreme6666
В данном случае мы оба сказали правду, поскольку те дебандеры, которые я вам указал 16-битные, а Gradfun2DBmod 8-битный, поэтому у меня и возник первоначальный вопрос к вам.
[Профиль]  [ЛС] 

supreme6666

Стаж: 17 лет 5 месяцев

Сообщений: 76


supreme6666 · 10-Июн-12 23:21 (спустя 2 мин., ред. 10-Июн-12 23:26)

извиняюсь речь шла про использование как раз 16bit фильтра.
а у вас используется однвременно и Dither_convert_8_to_16 () и любой 16bit фильтр
а вообще давайте тогда по порядку начнем а то у меня уже истерика скоро будет ))))) - два раза по 4 дня кодить одно и тоже из-за того что до конца никто ничего не объясняет.
1. какой используем фильтр дебандинга? f3kdb, LumaDBLite_v0.7.avsi, gradfun2dbMod, GradFun3, может какой то другой? типа smoothgrad или еще что-то?
2. как прописываем код avisynth - напишите плиз 3 варианта. первый вариант - используем только 8ише фильтр, второй - используем только 16bit фильтр, и третий используем несколько фильтров одновременно - и 8 и 16 bit
3. остальное после окончательного разбора 1 и 2 пунктов
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 10-Июн-12 23:28 (спустя 6 мин., ред. 10-Июн-12 23:41)

supreme6666 писал(а):
Tempter57
по вашему мнению какой дебандер дает лучшее качество дебандинга + качество фильма? (f3kdb, LumaDBLite_v0.7.avsi, gradfun2dbMod, GradFun3) ? желательно с какими-нибудь основаниями
Смотря для какого исходника, для мультфильма и аниме наверное LumaDBLite_v0.7.avsi или GradFun3, для фильмов скорее f3kdb, только внутри надо подобрать уровни grainY и grainC или вариант скрипта с применением gradfun2dbMod, котрый вам дал Lenchik
Код:
Dither_convert_8_to_16 () # конвертируем из 8 в 16 бит
s16 = last
DitherPost (mode=-1) #  конвертируем назад в 8 бит для применения 8-битного фильтра
gradfun2dbMod() # добавляем 8 битный дебандер
Dither_convert_8_to_16 () #конвертируем опять в 16 бит
s16.Dither_limit_dif16 (last, thr=1.0, elast=2.0) # 16 битное s16 c помощью функции Dither_limit_dif16 смешиваем с 16-битным уже с дебандером
Dither_limit_dif16
Dither_limit_dif16
Dither_limit_dif16 (
clip flt,
clip src,
clip ref (undefined),
float thr (0.25),
float elast (3.0),
int y (3),
int u (3),
int v (3)
)
This function compare a filtered clip with its original version, and keeps the filtered pixels only if the difference between the filtered pixel and the reference pixel is below the given threshold. This is a building block of SmoothGrad and GradFun3.
This function works only on 16-bit stacked clips.
flt
Filtered clip.
src
Original clip.
ref
Reference clip for difference calculation. If ref is not specified, src is used instead.
thr
Thershold between reference data and filtered data, on an 8-bit scale. > 0.
ref
Reference clip for the filter output comparison. Specify here the first original clip when you cascade several limited filters. When undefined, the src clip is taken as reference.
elast
To avoid artifacts, the threshold has some kind of elasticity. Value differences falling over this thershold are gradually attenuated, up to thr * elast. > 1.
Category: dll.
[Профиль]  [ЛС] 

supreme6666

Стаж: 17 лет 5 месяцев

Сообщений: 76


supreme6666 · 10-Июн-12 23:32 (спустя 4 мин.)

я так понимаю что f3kdb разрабатывался после gradfun2dbMod и имеет определенные улучшения по сравнению с ним? - почему он может быть лучше и кстати на сколько он бит 8 или 16 ?
[Профиль]  [ЛС] 

Lenchik

Стаж: 18 лет 4 месяца

Сообщений: 854


Lenchik · 10-Июн-12 23:32 (спустя 40 сек.)

supreme6666 писал(а):
нельзя ли описать что каждая строчка из вашего кода делает - я не силен в этом всем, и в инглише тоже??
Можно, конечно, но я ленив. К тому же мне интересней оптимизировать скрипт своего Hi444PP рипа, чем я и занят сейчас. А когда мне понадобилось поянть некоторые нюансы работы avs2pipemod, я зашел на японский блог автора и гуглопереводчиком перевел его записи где и выудил всё, что мне было нужно.
supreme6666 писал(а):
определитесь кто говорит истину, а кто заблуждается
Нам это не надо у нас и так всё хорошо
Код:
# or whatever generating stack16 data
Здесь сказано - всё что угодно, генерирующее данные stack16 (формат представления 16-битности плагином Dither)
supreme6666 писал(а):
не понимаю зачем в вашем скрипте два раза Dither_convert_8_to_16 () ?
Так надо, чтобы грамотно смешать результаты работы 8 битного фильтра и накопленного ранее 16-битного результата работы предыдущих фильтров.
P.S. скоро мы и эту тему добьем до 100.
[Профиль]  [ЛС] 

supreme6666

Стаж: 17 лет 5 месяцев

Сообщений: 76


supreme6666 · 10-Июн-12 23:40 (спустя 7 мин., ред. 10-Июн-12 23:40)

да я то понимаю что у вас все хорошо, но думал что форум нужен как раз чтобы делиться накопленными знаниями с такими чайниками как я, а не носиться со своими знаниями как с писанной торбой и говорить что я знаю но никому не скажу потому что хочу чтобы остальные помучались как и я. ну вот - тут еще оказывается и какой то Hi444PP существует - а я интересуюсь устаревшим hi10p )))
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 10-Июн-12 23:43 (спустя 3 мин., ред. 10-Июн-12 23:43)

supreme6666 писал(а):
я так понимаю что f3kdb разрабатывался после gradfun2dbMod и имеет определенные улучшения по сравнению с ним? - почему он может быть лучше и кстати на сколько он бит 8 или 16 ?
да позже и он любой битности от 8 до 16, какой зададите по входу и по выходу. По входу определяется битностью входного клипа.
[Профиль]  [ЛС] 

supreme6666

Стаж: 17 лет 5 месяцев

Сообщений: 76


supreme6666 · 10-Июн-12 23:51 (спустя 7 мин.)

Tempter57 подскажи плиз тогда правильно ли я написал скрипт для
f3kdb (скрипт для 16bit фильтра)
Код:
setmtmode(5,4)
setmemorymax(2560)
LoadPlugin("c:\Program Files (x86)\AviSynth 2.5\plugins\ffms2.dll")
LoadPlugin("c:\Program Files (x86)\AviSynth 2.5\plugins\mt_masktools-26.dll")
import("c:\Program Files (x86)\AviSynth 2.5\plugins\fslg_dither_to_n_bits.avs")
FFVideoSource("video.mkv", threads=1)
setmtmode(2)
crop( 0, 140, 0, -140)
f3kdb()
Dither_Resize16(1280,532)
fslg_dither_to_n_bits(10, outn=true)
Dither_convey_yuv4xxp16_on_yvxx()
одновременно - и 8 и 16 bit
Код:
setmtmode(5,4)
setmemorymax(2560)
LoadPlugin("c:\Program Files (x86)\AviSynth 2.5\plugins\ffms2.dll")
LoadPlugin("c:\Program Files (x86)\AviSynth 2.5\plugins\mt_masktools-26.dll")
import("c:\Program Files (x86)\AviSynth 2.5\plugins\fslg_dither_to_n_bits.avs")
FFVideoSource("video.mkv", threads=1)
setmtmode(2)
crop( 0, 140, 0, -140)
Dither_convert_8_to_16 () # конвертируем из 8 в 16 бит
f3kdb() # добавляем 16 битный дебандер
s16 = last
DitherPost (mode=-1) #  конвертируем назад в 8 бит для применения 8-битного фильтра
gradfun2dbMod() # добавляем 8 битный дебандер
Dither_convert_8_to_16 ()
s16.Dither_limit_dif16 (last, thr=1.0, elast=2.0)
f3kdb() # добавляем 16 битный дебандер
Dither_Resize16(1280,532)
fslg_dither_to_n_bits(10, outn=true)
Dither_convey_yuv4xxp16_on_yvxx()
скрипт для 8bit фильтра
Код:
setmtmode(5,4)
setmemorymax(2560)
LoadPlugin("c:\Program Files (x86)\AviSynth 2.5\plugins\ffms2.dll")
LoadPlugin("c:\Program Files (x86)\AviSynth 2.5\plugins\mt_masktools-26.dll")
import("c:\Program Files (x86)\AviSynth 2.5\plugins\fslg_dither_to_n_bits.avs")
FFVideoSource("video.mkv", threads=1)
setmtmode(2)
crop( 0, 140, 0, -140)
Dither_convert_8_to_16 () # конвертируем из 8 в 16 бит
s16 = last
DitherPost (mode=-1) #  конвертируем назад в 8 бит для применения 8-битного фильтра
gradfun2dbMod() # добавляем 8 битный дебандер
Dither_convert_8_to_16 ()
s16.Dither_limit_dif16 (last, thr=1.0, elast=2.0)
Dither_Resize16(1280,532)
fslg_dither_to_n_bits(10, outn=true)
Dither_convey_yuv4xxp16_on_yvxx()
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 10-Июн-12 23:57 (спустя 6 мин., ред. 10-Июн-12 23:58)

В свете того, что мы вам тут наговорили и вашим предпочтением в строну GradFun2DBmod, скрипт должен иметь вид
Код:
#setmtmode(5,4)
#setmemorymax(2560)
LoadPlugin("c:\Program Files (x86)\AviSynth 2.6\plugins\ffms2.dll")
LoadPlugin("c:\Program Files (x86)\AviSynth 2.6\plugins\mt_masktools-26.dll")
import("c:\Program Files (x86)\AviSynth 2.6\plugins\fslg_dither_to_n_bits.avs")
import("c:\Program Files (x86)\AviSynth 2.6\plugins\GradFun2DBmod151.avs")
FFVideoSource("video.mkv", threads=1)
#setmtmode(2)
crop( 0, 140, 0, -140)
#trim(0,599)
Dither_convert_8_to_16 ()
s16 = last
DitherPost (mode=-1)
gradfun2dbMod()
Dither_convert_8_to_16 ()
s16.Dither_limit_dif16 (last, thr=1.0, elast=2.0)
#Dither_Resize16(1280,532)
Dither_Resize16(1920, 800)
fslg_dither_to_n_bits(10, outn=true)
Dither_convey_yuv4xxp16_on_yvxx()
Первые ваши два скрипта неверны, поскольку вы не задаёте input_depth=16, output_depth=16 дебандеру в первом случае, второй лучше промолчу, поскольку вы ничего не поняли.
[Профиль]  [ЛС] 

supreme6666

Стаж: 17 лет 5 месяцев

Сообщений: 76


supreme6666 · 11-Июн-12 00:00 (спустя 2 мин., ред. 11-Июн-12 00:00)

подправьте плиз первые два варианта чтобы были правильные - чтобы я с этими дурацкими вопросами больше ни к кому не приставал в очередной раз
мое предпочтение в сторону качества, поэтому буду наверно переходить к f3kdb, только вот опять буду мучаться с настройками этого зверя, может подскажите оптимальные настройки или хотябы где про них можно почитать?
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 11-Июн-12 00:07 (спустя 7 мин., ред. 11-Июн-12 00:09)

supreme6666 писал(а):
подправьте плиз первые два варианта чтобы были правильные - чтобы я с этими дурацкими вопросами больше ни к кому не приставал в очередной раз
Зачем? Просто замените в первом скрипте строку f3kdb() на:
f3kdb(sample_mode=2,dynamic_grain=false,keep_tv_range=false,input_depth=8, output_depth=16,dither_algo=3,y=48,cb=48,cr=48,grainY=48,grainC=48)
Параметры, выделенные красным, подобрать, а зелёным -смотрите какая у вас битность на входе и какую вы желаете получить на выходе
[Профиль]  [ЛС] 

supreme6666

Стаж: 17 лет 5 месяцев

Сообщений: 76


supreme6666 · 11-Июн-12 00:10 (спустя 3 мин., ред. 11-Июн-12 00:10)

Tempter57 писал(а):
supreme6666 писал(а):
подправьте плиз первые два варианта чтобы были правильные - чтобы я с этими дурацкими вопросами больше ни к кому не приставал в очередной раз
Зачем? Просто замените в первом скрипте строку f3kdb() на:
f3kdb(sample_mode=2,dynamic_grain=false,keep_tv_range=false,input_depth=16, output_depth=16,dither_algo=3,y=48,cb=48,cr=48,grainY=48,grainC=48)
Параметры, выделенные красным, подобрать
ну я так понимаю для того чтобы убрать одну лишнюю конвертацию из 16 в 8 бит DitherPost (mode=-1) ? - или я ошибаюсь? и все же подправьте ну это же минутное дело для вас
а как и чем эти параметры можно подобрать?
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 11-Июн-12 00:18 (спустя 8 мин., ред. 11-Июн-12 00:18)

supreme6666 писал(а):
ну я так понимаю для того чтобы убрать одну лишнюю конвертацию из 16 в 8 бит DitherPost (mode=-1) ? - или я ошибаюсь?
В верхнем скрипте у вас этой строки нет итак. Смотрите за тем, что выделено зелёным цветом особенно по входу.
supreme6666 писал(а):
а как и чем эти параметры можно подобрать?
Глазом, включив гистограмму по lume Histogram("Luma") и наблюдая при каких минимальных значениях исчезает бандинг и вам уже нравится самому изображение, ну можно ещё подкинуть уровень grainY на лишних 6...10 в большую сторону.
[Профиль]  [ЛС] 

supreme6666

Стаж: 17 лет 5 месяцев

Сообщений: 76


supreme6666 · 11-Июн-12 00:28 (спустя 9 мин., ред. 11-Июн-12 00:31)

итак, окончательный скрипт при использовании f3kdb будет следующий ?? или какие-то строки тут не нужны или имеют не верную последовательность?
Код:
LoadPlugin("c:\Program Files (x86)\AviSynth 2.6\plugins\ffms2.dll")
LoadPlugin("c:\Program Files (x86)\AviSynth 2.6\plugins\mt_masktools-26.dll")
import("c:\Program Files (x86)\AviSynth 2.6\plugins\fslg_dither_to_n_bits.avs")
import("c:\Program Files (x86)\AviSynth 2.6\plugins\GradFun2DBmod151.avs")
FFVideoSource("video.mkv", threads=1)
crop( 0, 140, 0, -140)
Dither_convert_8_to_16 ()
f3kdb(sample_mode=2,dynamic_grain=false,keep_tv_range=false,input_depth=16, output_depth=16,dither_algo=3,y=48,cb=48,cr=48,grainY=48,grainC=48)
s16 = last
s16.Dither_limit_dif16 (last, thr=1.0, elast=2.0)
Dither_Resize16(1920, 800)
fslg_dither_to_n_bits(10, outn=true)
Dither_convey_yuv4xxp16_on_yvxx()
только при таком скрепте не понятно зачем использовать s16 = last. я конечно ничего в этом не понимаю, но разве не тоже самое будет если прописать
Код:
Dither_convert_8_to_16()
f3kdb(sample_mode=2,dynamic_grain=false,keep_tv_range=false,input_depth=16, output_depth=16,dither_algo=3,y=48,cb=48,cr=48,grainY=48,grainC=48)
Dither_limit_dif16(thr=1.0, elast=2.0)
Dither_Resize16(1920, 800)
fslg_dither_to_n_bits(10, outn=true)
Dither_convey_yuv4xxp16_on_yvxx()
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 11-Июн-12 00:33 (спустя 4 мин., ред. 11-Июн-12 00:33)

supreme6666 писал(а):
s16 = last
s16.Dither_limit_dif16 (last, thr=1.0, elast=2.0)
Нет, вы опять ничего не поняли, строки эти удалите
И мой вам совет по дебандерам и их настройкам допрашивать лучше профи turboPascal7, чем таких ламмеров, как мы )))
supreme6666 писал(а):
Dither_limit_dif16(thr=1.0, elast=2.0)
Я сейчас опять кого-то прибью))) Уберите
[Профиль]  [ЛС] 

Yurasyk

Стаж: 16 лет 2 месяца

Сообщений: 3506

Yurasyk · 11-Июн-12 00:33 (спустя 10 сек.)

Tempter57 писал(а):
профи turboPascal7
таким людям уже наверняка осточертело отвечать на самые элементарные вопросы. Просто не интересно...

И вообще то пора завязывать со злостным оффтопом.
[Профиль]  [ЛС] 

supreme6666

Стаж: 17 лет 5 месяцев

Сообщений: 76


supreme6666 · 11-Июн-12 00:38 (спустя 5 мин., ред. 11-Июн-12 00:39)

то есть итог таков ?
Код:
LoadPlugin("c:\Program Files (x86)\AviSynth 2.6\plugins\ffms2.dll")
LoadPlugin("c:\Program Files (x86)\AviSynth 2.6\plugins\mt_masktools-26.dll")
import("c:\Program Files (x86)\AviSynth 2.6\plugins\fslg_dither_to_n_bits.avs")
import("c:\Program Files (x86)\AviSynth 2.6\plugins\GradFun2DBmod151.avs")
FFVideoSource("video.mkv", threads=1)
crop( 0, 140, 0, -140)
Dither_convert_8_to_16 ()
f3kdb(sample_mode=2,dynamic_grain=false,keep_tv_range=false,input_depth=16, output_depth=16,dither_algo=3,y=48,cb=48,cr=48,grainY=48,grainC=48)
Dither_Resize16(1920, 800)
fslg_dither_to_n_bits(10, outn=true)
Dither_convey_yuv4xxp16_on_yvxx()
толкьо не понятно зачем вот эта строка? Dither_Resize16(1920, 800) - я же размер не изменяю
да я бы с удовольствием - а ответит ли?)))
что значит злостный офтоп? я прошу ответа, а мне четко не отвечают - вот и приходится переспрашивать
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 11-Июн-12 00:47 (спустя 8 мин., ред. 11-Июн-12 00:47)

Yurasyk писал(а):
И вообще то пора завязывать со злостным оффтопом
Он вообще-то касается кодирования х264-10bit, так что ваши замечания здесь излишни. Мы обсуждаем гораздо более важные вещи, чем многое из того, что здесь обсуждалось...
supreme6666
Наконец-то, правда, если больше никто свою лепту не внесёт. Хотя плагин подключен у вас не тот
Цитата:
import("c:\Program Files (x86)\AviSynth 2.6\plugins\GradFun2DBmod151.avs")
Надо
LoadPlugin("c:\Program Files (x86)\AviSynth 2.6\plugins\flash3kyuu_deband.dll")
[Профиль]  [ЛС] 

supreme6666

Стаж: 17 лет 5 месяцев

Сообщений: 76


supreme6666 · 11-Июн-12 00:50 (спустя 3 мин.)

а может еще Dither_Resize16(1920, 800) убрать?
[Профиль]  [ЛС] 

Yurasyk

Стаж: 16 лет 2 месяца

Сообщений: 3506

Yurasyk · 11-Июн-12 00:52 (спустя 1 мин.)

Tempter57 писал(а):
Он вообще-то касается кодирования х264-10bit
Вобще-то это никаким боком именно икса не касается.
Tempter57 писал(а):
Мы обсуждаем гораздо более важные вещи
Чисто субъективное мнение.
supreme6666 писал(а):
злостный офтоп
злостный значит совсем не в тему. я не имею ввиду, что вы со злости, упаси боже
Спорить не собираюсь, господа. Просто выразил мнение.
[Профиль]  [ЛС] 

Tempter57

Стаж: 16 лет 1 месяц

Сообщений: 4960

Tempter57 · 11-Июн-12 01:01 (спустя 8 мин., ред. 11-Июн-12 01:01)

Yurasyk писал(а):
Спорить не собираюсь, господа. Просто выразил мнение.
Я тоже так думаю, не стоит брать на грудь обязанности модератора да ещё лезть на кофликт со мной. Оно вам надо? Тем более без подобного скрипта 8-битные исходники кодеком x264-10bit кодировать нету никакого резона. Вы бы, как автор аналогичной ветки по просмотру, лучше бы поддержали беседу и может кое-чего добавили интересного.
[Профиль]  [ЛС] 
 
Тема закрыта
Loading...
Error