• 隐私条款中国国家地理网 2019-08-10
  • 500亿美元商品相关新闻 2019-08-10
  • 研究:亚洲民众更关注健康食品 2019-08-06
  • 持之以恒打好“节点战” 2019-08-06
  • 英国成功完成机器人辅助眼部手术试验 2019-08-01
  • 户口迁移耽搁了17年 诸暨籍女子找回“迟到”的身份 2019-07-29
  • 明星高考奇葩事杨幂总分第一 赵薇丢准考证(组图) 2019-07-02
  • 肩负促进和平与发展的时代重任 2019-07-02
  • 探秘海南高考评卷场 考生答题卡武警24小时值守 2019-06-28
  • “人民日报是我一生最尊敬和宝贵的朋友” 2019-06-28
  • 惊艳卢浮宫小牛电动发布新款电动车惊艳卢浮宫小牛电动发布新款电动车-手机行情 2019-06-23
  • 社区 —频道 春城壹网 七彩云南 一网天下 2019-06-15
  • 全国网络举报工作会议 2019-06-15
  • 珍贵!“国宝”林麝现身重庆金佛山 2019-06-11
  • 亚冠前瞻:恒大权健皆不容有失 两将伤情成上港争胜关键 2019-06-09
  • Welcome to

    Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

     

    Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Development

    Reply
     
    Thread Tools Search this Thread Display Modes
    Old 4th August 2019, 21:23   #41  |  Link
    結城有紀
     
    Join Date: Dec 2003
    Location: NJ; OR; Shanghai
    Posts: 543
    Fixed the link. But I'm planning to clean up the building system a little bit and then release a GA version.
    MeteorRain is offline   Reply With Quote
    Old 5th August 2019, 16:56   #42  |  Link
    Registered User
     
    Join Date: Dec 2002
    Location: Region 0
    Posts: 1,120
    GA version?

    Is there any change we can talk you into integrating madshi's suggested improvements for it? //www.zs-x.com/showthread.p...56#post1652256
    Stereodude is offline   Reply With Quote
    Old 5th August 2019, 18:02   #43  |  Link
    結城有紀
     
    Join Date: Dec 2003
    Location: NJ; OR; Shanghai
    Posts: 543
    Stereodude, I'm not an algorithm guy and have no idea about the actual implementation. If there's an easy-to-integrate patch available I'd love to merge it in. Otherwise It'll be very hard for me to implement it.

    I mainly took over the work to create an AVS+HBD compatible plugin and that's all I'm capable of doing.

    Last edited by MeteorRain; 5th August 2019 at 18:04.
    MeteorRain is offline   Reply With Quote
    Old 6th August 2019, 02:09   #44  |  Link
    Noob
     
    Join Date: Mar 2017
    Posts: 165
    Natty is offline   Reply With Quote
    Old 19th August 2019, 02:53   #45  |  Link
    結城有紀
     
    Join Date: Dec 2003
    Location: NJ; OR; Shanghai
    Posts: 543
    FranceBB,

    After a while of thinking, I believe it's possible to expose a legacy function where it assumes all input and output mode as interleaved (which is effectively the same as HBD), so in the case of referencing f3kdb from foreign scripts, simply changing the function name should do the work, if they were working under interleaved mode. For stacked mode, a conversion is mandatory.

    Code:
    # Proposal1
    interleaved_output = interleaved_input.f3kdb_i(input_depth=10, output_depth=12)
    stacked_output = stacked_input.ConvertFromStacked().ConvertToDoubleWidth().f3kdb_i(input_depth=10, output_depth=12).ConvertFromDoubleWidth().ConvertToStacked()
    The other option is to compile and release a legacy version with function name changed. You keep both DLLs in the system until all legacy scripts move on.

    Code:
    # Proposal2
    output = input.f3kdb_legacy(input_depth=10, input_mode=1, output_depth=12, output_mode=2)
    Which do you all prefer? I can also do both.

    Understanding the difficulties of moving from hacks to HBD, I'd like to reduce even just a bit of pain for you.

    Last edited by MeteorRain; 19th August 2019 at 02:56.
    MeteorRain is offline   Reply With Quote
    Old 19th August 2019, 07:51   #46  |  Link
    Registered User
     
    Join Date: Jan 2012
    Location: Mesopotamia
    Posts: 1,235
    MeteorRain, but you can do it like this
    input_mode=0 mean no hacks (8 bit or HBD)
    output_mode=3 mean HBD always

    you can also add some check with input_mode > 0 and HBD ThrowError("f3kdb: you can't use input_mode > 0 with HBD")

    edit: you can add things I add here //www.zs-x.com/showthread.p...52#post1881052 (All or some of them) and of course without change the default settings (mean if you add sample_mode 3 and 4 the default will stay on 2 not like I set it to 4)
    __________________
    My Avisynth Stuff

    Last edited by real.finder; 19th August 2019 at 08:07.
    real.finder is offline   Reply With Quote
    Old 19th August 2019, 13:54   #47  |  Link
    結城有紀
     
    Join Date: Dec 2003
    Location: NJ; OR; Shanghai
    Posts: 543
    Would it be better if I leave the mode conversion to a wrapper script and call it a day? I'm feeling that we should move on to HBD as fast as possible and not leaving that much legacy code in the code base.

    By the way I didn't realize you made f3kdb_3. Do you think it's still necessary to add legacy modes and builds while your script can already deal with it?

    Bottom line: I don't want to put modes back, but I'd like to have some sort of mechanism so that people would have no pain living with both version and use whatever version they want, until all plugins are overhauled.
    MeteorRain is offline   Reply With Quote
    Old 19th August 2019, 14:04   #48  |  Link
    Registered User
     
    Join Date: Jan 2012
    Location: Mesopotamia
    Posts: 1,235
    Quote:
    Originally Posted by MeteorRain View Post
    Would it be better if I leave the mode conversion to a wrapper script and call it a day? I'm feeling that we should move on to HBD as fast as possible and not leaving that much legacy code in the code base.

    By the way I didn't realize you made f3kdb_3. Do you think it's still necessary to add legacy modes and builds while your script can already deal with it?

    Bottom line: I don't want to put modes back, but I'd like to have some sort of mechanism so that people would have no pain living with both version and use whatever version they want, until all plugins are overhauled.
    well, pinterf didn't remove the lsb from mvtools, even he didn't remove it from masktools (which no one use or even know)

    there are some people still use even avs25 but that not important, avs+ plugins work with avs26

    anyway I am with keeping lsb and other modes even if I will not use them, I am with you about move on to HBD as fast as possible and also with keep lsb and interleaved format
    __________________
    My Avisynth Stuff
    real.finder is offline   Reply With Quote
    Old 19th August 2019, 15:21   #49  |  Link
    Registered User
     
    Join Date: Dec 2005
    Location: Germany
    Posts: 932
    Quote:
    Originally Posted by real.finder View Post
    well, pinterf didn't remove the lsb from mvtools, even he didn't remove it from masktools (which no one use or even know)

    there are some people still use even avs25 but that not important, avs+ plugins work with avs26

    anyway I am with keeping lsb and other modes even if I will not use them, I am with you about move on to HBD as fast as possible and also with keep lsb and interleaved format
    There is also XP compatibility, but it doesn't mean it should be supported
    Sometimes it's good to drop old stuff -> less bugs and work.
    __________________
    AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
    VapourSynth Portable FATPACK || VapourSynth Database || https://github.com/avisynth-repository
    ChaosKing is offline   Reply With Quote
    Old 19th August 2019, 15:43   #50  |  Link
    Registered User
     
    Join Date: Jan 2012
    Location: Mesopotamia
    Posts: 1,235
    Quote:
    Originally Posted by ChaosKing View Post
    There is also XP compatibility, but it doesn't mean it should be supported
    Sometimes it's good to drop old stuff -> less bugs and work.
    support old os is different topic

    avs26 still has reasons to use it, lsb and interleaved not important only for avs26 but as FranceBB said before there are many scripts has them

    and indeed drop old stuff -> less bugs and work but also it's enjoyable to code to support them but anyway I am not with add them to plugins that don't has them but I am with only keep them on plugins that already has them
    __________________
    My Avisynth Stuff

    Last edited by real.finder; 19th August 2019 at 15:46.
    real.finder is offline   Reply With Quote
    Old 20th August 2019, 07:17   #51  |  Link
    Broadcast Encoder
     
    FranceBB's Avatar
     
    Join Date: Nov 2013
    Location: Germany
    Posts: 620
    Quote:
    Originally Posted by MeteorRain View Post
    FranceBB,

    After a while of thinking, I believe it's possible to expose a legacy function where it assumes all input and output mode as interleaved (which is effectively the same as HBD), so in the case of referencing f3kdb from foreign scripts, simply changing the function name should do the work, if they were working under interleaved mode. For stacked mode, a conversion is mandatory.

    Code:
    # Proposal1
    interleaved_output = interleaved_input.f3kdb_i(input_depth=10, output_depth=12)
    stacked_output = stacked_input.ConvertFromStacked().ConvertToDoubleWidth().f3kdb_i(input_depth=10, output_depth=12).ConvertFromDoubleWidth().ConvertToStacked()
    The other option is to compile and release a legacy version with function name changed. You keep both DLLs in the system until all legacy scripts move on.

    Code:
    # Proposal2
    output = input.f3kdb_legacy(input_depth=10, input_mode=1, output_depth=12, output_mode=2)
    Which do you all prefer? I can also do both.

    Understanding the difficulties of moving from hacks to HBD, I'd like to reduce even just a bit of pain for you.

    The first proposal you offered would be better.

    As to me, myself, I was thinking about something like this:

    (please note that this is written in pseudo-code and won't work in Avisynth):

    Code:
    function f3kdb_mod(clip c, int range, int Y, int Cb, int Cr, int grainY, int grainC, 
    \                             int sample_mode, float seed, bool blur_first, bool dynamic_grain, int opt,
    \                             bool mt, int dither_algo, bool keep_tv_range, int input_mode,
    \                             int input_depth, int output_depth, int random_algo_ref, 
    \                             int random_algo_grain, float random_param_ref, 
    \                             float random_param_grain, string preset)
    
    {
    
    #input mode 0 = Planar (8bit planar, 10bit planar, 12bit planar, 14bit planar, 16bit planar)
    #input mode 1 = Stacked
    #input mode 2 = Interleaved
    
    #output mode 0 = Planar (8bit planar, 10bit planar, 12bit planar, 14bit planar, 16bit planar)
    #output mode 1 = Stacked
    #output mode 2 = Interleaved
    
    #Input Planar Output Planar
    planar_i_planar_o = (input_mode=0 && input_depth >= 8 && output_mode=0) ? true : false
    
    f3kdb = (planar_i_planar_o=true) ? f3kdb(c, range=range, Y=Y, Cb=Cb, Cr=Cr, grainY=grainY,
    \ grainC=grainC, sample_mode=sample_mode, seed=seed, blur_first=blur_first
    \ dynamic_grain=dynamic_grain, opt=opt, mt=mt, dither_algo=dither_algo,
    \ keep_tv_range=keep_tv_range, output_depth=output_depth, 
    \ random_algo_ref=random_algo_ref, random_algo_grain=random_algo_grain,
    \ random_param_ref=random_param_ref, random_param_grain=random_param_grain,
    \ preset=preset)
    
    
    #Input Planar Output Stacked
    planar_i_stacked_o = (input_mode=0 && input_depth >= 8 && output_mode=1 && output_depth=16) ? true : false
    
    f3kdb = (planar_i_stacked_o=true) ? f3kdb(c, range=range, Y=Y, Cb=Cb, Cr=Cr, grainY=grainY,
    \ grainC=grainC, sample_mode=sample_mode, seed=seed, blur_first=blur_first
    \ dynamic_grain=dynamic_grain, opt=opt, mt=mt, dither_algo=dither_algo,
    \ keep_tv_range=keep_tv_range, output_depth=output_depth, 
    \ random_algo_ref=random_algo_ref, random_algo_grain=random_algo_grain,
    \ random_param_ref=random_param_ref, random_param_grain=random_param_grain,
    \ preset=preset).ConvertToStacked()
    
    #Input Planar Output Interleaved
    planar_i_interleaved_o = (input_mode=0 && input_depth >= 8 && output_mode=2 && output_depth=16) ? true : false
    
    f3kdb = (planar_i_stacked_o=true) ? f3kdb(c, range=range, Y=Y, Cb=Cb, Cr=Cr, grainY=grainY,
    \ grainC=grainC, sample_mode=sample_mode, seed=seed, blur_first=blur_first
    \ dynamic_grain=dynamic_grain, opt=opt, mt=mt, dither_algo=dither_algo,
    \ keep_tv_range=keep_tv_range, output_depth=output_depth, 
    \ random_algo_ref=random_algo_ref, random_algo_grain=random_algo_grain,
    \ random_param_ref=random_param_ref, random_param_grain=random_param_grain,
    \ preset=preset).ConvertToDoubleWidth()
    
    
    #Input Stacked output Stacked
    stacked_i_stacked_o = (input_mode=1 && input_depth=16 && output_mode=1 && output_depth=16) ? true : false
    
    f3kdb = (stacked_i_stacked_o=true) ? ConvertFromStacked().f3kdb(c, range=range, Y=Y, Cb=Cb, Cr=Cr, grainY=grainY,
    \ grainC=grainC, sample_mode=sample_mode, seed=seed, blur_first=blur_first
    \ dynamic_grain=dynamic_grain, opt=opt, mt=mt, dither_algo=dither_algo,
    \ keep_tv_range=keep_tv_range, output_depth=output_depth, 
    \ random_algo_ref=random_algo_ref, random_algo_grain=random_algo_grain,
    \ random_param_ref=random_param_ref, random_param_grain=random_param_grain,
    \ preset=preset).ConvertToStacked()
    
    
    #Input Stacked output Interleaved
    stacked_i_interleaved_o = (input_mode=1 && input_depth=16 && output_mode=2 && output_depth=16) ? true : false
    
    f3kdb = (stacked_i_stacked_o=true) ? ConvertFromStacked().f3kdb(c, range=range, Y=Y, Cb=Cb, Cr=Cr, grainY=grainY,
    \ grainC=grainC, sample_mode=sample_mode, seed=seed, blur_first=blur_first
    \ dynamic_grain=dynamic_grain, opt=opt, mt=mt, dither_algo=dither_algo,
    \ keep_tv_range=keep_tv_range, output_depth=output_depth, 
    \ random_algo_ref=random_algo_ref, random_algo_grain=random_algo_grain,
    \ random_param_ref=random_param_ref, random_param_grain=random_param_grain,
    \ preset=preset).ConvertToDoubleWidth()
    
    
    #Input Interleaved output Interleaved
    interleaved_i_interleaved_o = (input_mode=2 && input_depth=16 && output_mode=2 && output_depth=16) ? true : false
    
    f3kdb = (stacked_i_stacked_o=true) ? ConvertFromDoubleWidth().f3kdb(c, range=range, Y=Y, Cb=Cb, Cr=Cr, grainY=grainY,
    \ grainC=grainC, sample_mode=sample_mode, seed=seed, blur_first=blur_first
    \ dynamic_grain=dynamic_grain, opt=opt, mt=mt, dither_algo=dither_algo,
    \ keep_tv_range=keep_tv_range, output_depth=output_depth, 
    \ random_algo_ref=random_algo_ref, random_algo_grain=random_algo_grain,
    \ random_param_ref=random_param_ref, random_param_grain=random_param_grain,
    \ preset=preset).ConvertToDoubleWidth()
    
    
    #Input Interleaved output Stacked
    interleaved_i_interleaved_o = (input_mode=2 && input_depth=16 && output_mode=1 && output_depth=16) ? true : false
    
    f3kdb = (stacked_i_stacked_o=true) ? ConvertFromDoubleWidth().f3kdb(c, range=range, Y=Y, Cb=Cb, Cr=Cr, grainY=grainY,
    \ grainC=grainC, sample_mode=sample_mode, seed=seed, blur_first=blur_first
    \ dynamic_grain=dynamic_grain, opt=opt, mt=mt, dither_algo=dither_algo,
    \ keep_tv_range=keep_tv_range, output_depth=output_depth, 
    \ random_algo_ref=random_algo_ref, random_algo_grain=random_algo_grain,
    \ random_param_ref=random_param_ref, random_param_grain=random_param_grain,
    \ preset=preset).ConvertToStacked()
    
    
    #Error handling
    Assert (output_mode=1 && output_depth<=16) chr(10) + "Stacked output is supported with 16bit only!" + chr(10))
    Assert (output_mode=2 && output_depth<=16) chr(10) + "Interleaved output is supported with 16bit only!" + chr(10))
    
    
    return f3kdb
    }
    __________________
    Broadcast Encoder
    LinkedIn
    FranceBB is offline   Reply With Quote
    Reply


    Posting Rules
    You may not post new threads
    You may not post replies
    You may not post attachments
    You may not edit your posts

    BB code is On
    Smilies are On
    [IMG] code is On
    HTML code is Off

    Forum Jump


    All times are GMT +1. The time now is 21:10.


    Powered by vBulletin® Version 3.8.11
    Copyright ©2000 - 2019, vBulletin Solutions Inc.
  • 隐私条款中国国家地理网 2019-08-10
  • 500亿美元商品相关新闻 2019-08-10
  • 研究:亚洲民众更关注健康食品 2019-08-06
  • 持之以恒打好“节点战” 2019-08-06
  • 英国成功完成机器人辅助眼部手术试验 2019-08-01
  • 户口迁移耽搁了17年 诸暨籍女子找回“迟到”的身份 2019-07-29
  • 明星高考奇葩事杨幂总分第一 赵薇丢准考证(组图) 2019-07-02
  • 肩负促进和平与发展的时代重任 2019-07-02
  • 探秘海南高考评卷场 考生答题卡武警24小时值守 2019-06-28
  • “人民日报是我一生最尊敬和宝贵的朋友” 2019-06-28
  • 惊艳卢浮宫小牛电动发布新款电动车惊艳卢浮宫小牛电动发布新款电动车-手机行情 2019-06-23
  • 社区 —频道 春城壹网 七彩云南 一网天下 2019-06-15
  • 全国网络举报工作会议 2019-06-15
  • 珍贵!“国宝”林麝现身重庆金佛山 2019-06-11
  • 亚冠前瞻:恒大权健皆不容有失 两将伤情成上港争胜关键 2019-06-09
  • 重庆时时个位走势图 单机捕鱼之海底捞 3d大小形态走势图北京福彩网 中彩网双色球擂台赛图表 东方6+1生肖开奖结果查询 p排5走势图 时时彩顺子或对子技巧 微信捕鱼大奖赛有挂没 浙江12选5胆拖投注表 瑞典二分彩开奖官网 pk10玩法极其中奖 pk分析软件 群英会0426057期开奖号码 加拿大28赌博害人不浅 江西新时时彩开奖结果 云南十一选五走势图彩经网