Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

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 11th February 2022, 17:30   #1  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
CTools

GitHub:
https://github.com/CeppoTools/CTools

GitHub Release:
https://github.com/CeppoTools/CTools...ses/tag/v1.2.2

I'm not a programmer, so advices are gladly accepted.

CQTGMC needs:
rgTools.dll
masktools2.dll
mvtools2.dll
needi3.dll
Code:
### DEINTERLACER ###
# CQTGMC by Ceppo
# v1.0.0 first public release
# This function is an attempt to emulate QTGMC while retaining more details, removing more shimmering with as less blending as possible.
# PARAMETERS:
# Sharpeness (0.25): sharpening filter strength. Higher values give more sharpening.
# thSAD1: deshimmering strength, higher value give less shimmering, while lower values less blending.
# thSAD2: deshimmering strength in search clip, if you get combed pixels you may want to lower this and increase thSAD1.
# thSAD3: strength for restoring progressive content, if you get combed pixels you may want to lower this.
# thSAD3: MCompensate's thSAD for the sharpening filter limiter.

function CQTGMC(clip input, float "Sharpness", int "thSAD1", int "thSAD2", int "thSAD3", int "thSAD4")
{
    thSAD1 = default(thSAD1, 192)
    thSAD2 = default(thSAD2, 320)
    thSAD3 = default(thSAD3, 128)   
    thSAD4 = default(thSAD4, 320)
    Sharpness = default(Sharpness, 0.25)

    padded = StackHorizontal(input,input.FlipHorizontal()).Crop(0,0,input.width()+input.width()%64,0)
    padded = StackVertical(padded,padded.FlipVertical()).Crop(0,0,0,input.height()+input.height()%64)
    bobbed = padded.nnedi3(-2)
    bobbed
    RemoveGrain(12)
    GaussResize(width(),height(),0,0,width()+0.0001,height()+0.0001,p=2)
    Merge(bobbed,0.25)
    srchClip = last
    super = MSuper()
    bvec = MAnalyse(super,isb=true,blksize=64,overlap=32)
    fvec = MAnalyse(super,isb=false,blksize=64,overlap=32)
    Comp1 = MCompensate(super,bvec,thSAD=thSAD2)
    Comp2 = MCompensate(super,fvec,thSAD=thSAD2)
    Interleave(Comp1,last,Comp2)
    super = MSuper()
    bvec = MAnalyse(super,isb=true,blksize=64,overlap=32)
    fvec = MAnalyse(super,isb=false,blksize=64,overlap=32)
    Inter = MFlowInter(super,bvec,fvec,blend=false)
    global CQTGMC_A = Inter.SelectEvery(3,0)
    global CQTGMC_B = Inter.SelectEvery(3,1)
    srchClip
    ScriptClip("""
    P = YDifferenceFromPrevious()
    N = Trim(1,0).YDifferenceFromPrevious()
    N < P ? CQTGMC_A : CQTGMC_B 
    """)
    super = MSuper()
    bVec1 = MAnalyse(super,isb=true,overlap=4,delta=1)
    fVec1 = MAnalyse(super,isb=false,overlap=4,delta=1)
    bVec2 = MAnalyse(super,isb=true,overlap=4,delta=2)
    fVec2 = MAnalyse(super,isb=false,overlap=4,delta=2)
    bVec3 = MAnalyse(super,isb=true,overlap=4,delta=3)
    fVec3 = MAnalyse(super,isb=false,overlap=4,delta=3)
    bobbed 
    super = MSuper(levels=1)
    bComp1 = MCompensate(super,bVec1,thSAD=thSAD3)
    fComp1 = MCompensate(super,fVec1,thSAD=thSAD3)
    Interleave(\
    SeparateFields(bobbed).SelectEvery(4,0),\
    SeparateFields(fComp1).SelectEvery(4,1),\
    SeparateFields(bComp1).SelectEvery(4,2),\
    SeparateFields(bobbed).SelectEvery(4,3))
    Weave()
    super = MSuper(levels=1)
    bComp1 = MCompensate(super, bVec1,thSAD=thSAD4)
    fComp1 = MCompensate(super, fVec1,thSAD=thSAD4)
    tMax = mt_logic(fComp1,"max",U=3,V=3).mt_logic(bComp1,"max",U=3,V=3)
    tMin = mt_logic(fComp1,"min",U=3,V=3).mt_logic(bComp1,"min",U=3,V=3)
    bComp3 = MCompensate(super,bVec3,thSAD=thSAD4)
    fComp3 = MCompensate(super,fVec3,thSAD=thSAD4)
    tMax = tMax.mt_logic(fComp3,"max", U=3,V=3 ).mt_logic(bComp3,"max", U=3,V=3 ) 
    tMin = tMin.mt_logic(fComp3,"min", U=3,V=3 ).mt_logic(bComp3,"min", U=3,V=3 ) 
    MDegrain3(super,bVec1,fVec1,bVec2,fVec2,bVec3,fVec3,thSAD=thSAD1)
    sharpen = mt_adddiff(mt_makediff(Removegrain(20),u=3,v=3),u=3,v=3)
    mt_clamp(sharpen,tMax,tMin,Sharpness,Sharpness,3,3,3)
    super = MSuper(levels=1)
    MDegrain3(super,bVec1,fVec1,bVec2,fVec2,bVec3,fVec3,thSAD=thSAD1)
    Crop(0,0,-(input.width()%64),-(input.height()%64))
    return last
}
New version needs also TDeint. x2 speed.
Code:
### DEINTERLACER ###
# CQTGMC by Ceppo
# v1.0.1
# - Added TDeint for search clip.
# - Changed MDegrain3 to MDegrain1 for speed.
# v1.0.0 first public release
#
# This function is an attempt to emulate QTGMC while retaining more details, removing more shimmering with as less blending as possible.
# PARAMETERS:
# Sharpeness (0.25): sharpening filter strength. Higher values give more sharpening.
# thSAD1: deshimmering strength, higher value give less shimmering, while lower values less blending.
# thSAD2: deshimmering strength in search clip, if you get combed pixels you may want to lower this and increase thSAD1.
# thSAD3: strength for restoring progressive content, if you get combed pixels you may want to lower this.
# thSAD3: MCompensate's thSAD for the sharpening filter limiter.

function CQTGMC(clip input, float "Sharpness", int "thSAD1", int "thSAD2", int "thSAD3", int "thSAD4")
{
    thSAD1 = default(thSAD1, 192)
    thSAD2 = default(thSAD2, 320)
    thSAD3 = default(thSAD3, 128)   
    thSAD4 = default(thSAD4, 320)
    Sharpness = default(Sharpness, 0.25)

    padded = StackHorizontal(input,input.FlipHorizontal()).Crop(0,0,input.width()+input.width()%64,0)
    padded = StackVertical(padded,padded.FlipVertical()).Crop(0,0,0,input.height()+input.height()%64)
    bobbed = padded.nnedi3(-2)
    padded
    TDeint(mode=1,sharp=false,tryWeave=true,edeint=bobbed)
    RemoveGrain(12).GaussResize(width(),height(),0,0,width()+0.0001,height()+0.0001,p=2).Merge(last,0.25)
    srchClip = last
    super = MSuper()
    bvec = MAnalyse(super,isb=true,blksize=64,overlap=32)
    fvec = MAnalyse(super,isb=false,blksize=64,overlap=32)
    Comp1 = MCompensate(super,bvec,thSAD=thSAD2)
    Comp2 = MCompensate(super,fvec,thSAD=thSAD2)
    Interleave(Comp1,last,Comp2)
    super = MSuper()
    bvec = MAnalyse(super,isb=true,blksize=64,overlap=32)
    fvec = MAnalyse(super,isb=false,blksize=64,overlap=32)
    Inter = MFlowInter(super,bvec,fvec,blend=false)
    global CQTGMC_A = Inter.SelectEvery(3,0)
    global CQTGMC_B = Inter.SelectEvery(3,1)
    srchClip
    ScriptClip("""
    P = YDifferenceFromPrevious()
    N = Trim(1,0).YDifferenceFromPrevious()
    N < P ? CQTGMC_A : CQTGMC_B 
    """)
    super = MSuper()
    bVec1 = MAnalyse(super,isb=true,overlap=4,delta=1)
    fVec1 = MAnalyse(super,isb=false,overlap=4,delta=1)
    bobbed 
    super = MSuper(levels=1)
    bComp1 = MCompensate(super,bVec1,thSAD=thSAD3)
    fComp1 = MCompensate(super,fVec1,thSAD=thSAD3)
    Interleave(\
    SeparateFields(bobbed).SelectEvery(4,0),\
    SeparateFields(fComp1).SelectEvery(4,1),\
    SeparateFields(bComp1).SelectEvery(4,2),\
    SeparateFields(bobbed).SelectEvery(4,3))
    Weave()
    super = MSuper(levels=1)
    bComp1 = MCompensate(super, bVec1,thSAD=thSAD4)
    fComp1 = MCompensate(super, fVec1,thSAD=thSAD4)
    tMax = mt_logic(fComp1,"max",U=3,V=3).mt_logic(bComp1,"max",U=3,V=3)
    tMin = mt_logic(fComp1,"min",U=3,V=3).mt_logic(bComp1,"min",U=3,V=3)
    MDegrain1(super,bVec1,fVec1,thSAD=thSAD1)
    sharpen = mt_adddiff(mt_makediff(Removegrain(20),u=3,v=3),u=3,v=3)
    mt_clamp(sharpen,tMax,tMin,Sharpness,Sharpness,3,3,3)
    super = MSuper(levels=1)
    MDegrain1(super,bVec1,fVec1,thSAD=thSAD1)
    Crop(0,0,-(input.width()%64),-(input.height()%64))
    return last
}

Last edited by Ceppo; 18th April 2022 at 12:10. Reason: Update.
Ceppo is offline   Reply With Quote
Old 11th February 2022, 21:20   #2  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
thanks, so this is like an update for https://forum.doom9.org/showthread.php?p=1935471 ?

it will be nice if it can deal with cases like https://github.com/pinterf/TIVTC/issues/26 and https://github.com/pinterf/TIVTC/issues/27
__________________
See My Avisynth Stuff
real.finder is offline   Reply With Quote
Old 11th February 2022, 22:17   #3  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
Yes, CTelecine2() is telecinebob() with a minor update.

About the rest (I gave a quick look since I'm going to sleep) I can try to mod CDecimate to output a VFR framerate and a VFR file. For the moire effect, I need a source to understand the problem since I never encountered it in my experience.
Ceppo is offline   Reply With Quote
Old 11th February 2022, 22:47   #4  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 2,150
Here have sample moirr effect, good luck
https://forum.doom9.org/showthread.p...03#post1684203

Will happy if you add more colors space and HBD
kedautinh12 is offline   Reply With Quote
Old 11th February 2022, 23:16   #5  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
Quote:
Originally Posted by Ceppo View Post
For the moire effect, I need a source to understand the problem since I never encountered it in my experience.
Quote:
Originally Posted by kedautinh12 View Post
Here have sample moirr effect, good luck
https://forum.doom9.org/showthread.p...03#post1684203
also https://www.mediafire.com/file/tob9n..._Test.m2v/file
__________________
See My Avisynth Stuff
real.finder is offline   Reply With Quote
Old 12th February 2022, 14:43   #6  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
On it!

Edit:
I did the VFR mod and I found a way to do the right field matching when there is the moire effect. I lost an hour tracking a bug. I hope to finish the testing tomorrow.

Last edited by Ceppo; 12th February 2022 at 20:02.
Ceppo is offline   Reply With Quote
Old 13th February 2022, 17:34   #7  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
I added VFR and created CFieldDuplicate. In the ReadMe.txt you will see how to use it for the moire effect.

On real.finder linked source I got a constant pattern correctly.

It won't work on Anime due to the duplicates. But it should improve field matching on non-anime sources. If someone has a source to test it. Mine are all progressive.
Ceppo is offline   Reply With Quote
Old 13th February 2022, 20:50   #8  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
Quote:
Originally Posted by Ceppo View Post
I added VFR and created CFieldDuplicate. In the ReadMe.txt you will see how to use it for the moire effect.

On real.finder linked source I got a constant pattern correctly.

It won't work on Anime due to the duplicates. But it should improve field matching on non-anime sources. If someone has a source to test it. Mine are all progressive.
thanks

I did try to get vfr from http://www.solidfiles.com/v/NVqK6xkYK7ANM
Code:
CTelecine(thr2=2,edeint2=QTGMC(),write=true)
#CDecimate(true)
then after doing analysis pass

Code:
CTelecine(thr2=2,edeint2=QTGMC(),inputtxt=true)
CDecimate(true)
but I get errors "CDecimate: cycle at frame 180..."

I did edit CTelecine.txt but no luck
__________________
See My Avisynth Stuff
real.finder is offline   Reply With Quote
Old 13th February 2022, 20:52   #9  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
Can you upload your source elsewhere? I can't load the site. Thanks.
Ceppo is offline   Reply With Quote
Old 13th February 2022, 20:56   #10  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
Quote:
Originally Posted by Ceppo View Post
Can you upload your source elsewhere? I can't load the site. Thanks.
is this ok https://xfl.jp/E5n90r ?
__________________
See My Avisynth Stuff
real.finder is offline   Reply With Quote
Old 13th February 2022, 21:06   #11  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
Yes, I will check it right away.
Ceppo is offline   Reply With Quote
Old 13th February 2022, 21:52   #12  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
With anime is a pain, however I did it until frame 1500
Code:
#1-pass
#~ CTelecine(write=true)
#2-pass
#~ CDuplicate(nt=0,write=true)
#3-pass
#Copy CDuplicate first 1206 frames and replace them in CTelecine.txt
#An euristic to fix the wrong field matching is to look at the previous pattern.
#~ CTelecine(thr2=6,edeint2=QTGMC().SelectEven(),inputTxt=true)
#~ CDecimate(true)
Code:
0 0
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
0 10
0 11
0 12
0 13
0 14
0 15
0 16
0 17
0 18
0 19
0 20
0 21
0 22
0 23
0 24
0 25
0 26
0 27
0 28
0 29
0 30
0 31
0 32
0 33
0 34
0 35
0 36
0 37
0 38
0 39
0 40
0 41
0 42
0 43
0 44
0 45
0 46
0 47
0 48
0 49
0 50
0 51
0 52
0 53
0 54
0 55
0 56
0 57
0 58
0 59
0 60
0 61
0 62
0 63
0 64
0 65
0 66
0 67
0 68
0 69
0 70
0 71
0 72
0 73
0 74
0 75
0 76
0 77
0 78
0 79
0 80
0 81
0 82
0 83
0 84
0 85
0 86
0 87
0 88
0 89
0 90
0 91
0 92
0 93
0 94
0 95
0 96
0 97
0 98
0 99
0 100
0 101
0 102
0 103
0 104
0 105
0 106
0 107
0 108
0 109
0 110
0 111
0 112
0 113
0 114
0 115
0 116
0 117
0 118
0 119
0 120
0 121
0 122
0 123
0 124
0 125
0 126
0 127
0 128
0 129
0 130
0 131
0 132
0 133
0 134
0 135
0 136
0 137
0 138
0 139
0 140
0 141
0 142
0 143
0 144
0 145
0 146
0 147
0 148
0 149
0 150
0 151
0 152
0 153
0 154
0 155
0 156
0 157
0 158
0 159
0 160
0 161
0 162
0 163
0 164
0 165
0 166
0 167
0 168
0 169
0 170
0 171
0 172
0 173
0 174
0 175
0 176
0 177
0 178
0 179
0 180
0 181
0 182
0 183
0 184
0 185
0 186
0 187
0 188
0 189
0 190
0 191
0 192
0 193
0 194
0 195
0 196
0 197
0 198
0 199
0 200
0 201
0 202
0 203
0 204
0 205
0 206
0 207
0 208
0 209
0 210
0 211
0 212
0 213
0 214
0 215
0 216
0 217
0 218
0 219
0 220
0 221
0 222
0 223
0 224
0 225
0 226
0 227
0 228
0 229
0 230
0 231
0 232
0 233
0 234
0 235
0 236
0 237
0 238
0 239
0 240
0 241
0 242
0 243
0 244
0 245
0 246
0 247
0 248
0 249
0 250
0 251
0 252
0 253
0 254
0 255
0 256
0 257
0 258
0 259
0 260
0 261
0 262
0 263
0 264
0 265
0 266
0 267
0 268
0 269
0 270
0 271
0 272
0 273
0 274
0 275
0 276
0 277
0 278
0 279
0 280
0 281
0 282
0 283
0 284
0 285
0 286
0 287
0 288
0 289
0 290
0 291
0 292
0 293
0 294
0 295
0 296
0 297
0 298
0 299
0 300
0 301
0 302
0 303
0 304
0 305
0 306
0 307
0 308
0 309
0 310
0 311
0 312
0 313
0 314
0 315
0 316
0 317
0 318
0 319
0 320
0 321
0 322
0 323
0 324
0 325
0 326
0 327
0 328
0 329
0 330
0 331
0 332
0 333
0 334
0 335
0 336
0 337
0 338
0 339
0 340
0 341
0 342
0 343
0 344
0 345
0 346
0 347
0 348
0 349
0 350
0 351
0 352
0 353
0 354
0 355
0 356
0 357
0 358
0 359
0 360
0 361
0 362
0 363
0 364
0 365
0 366
0 367
0 368
0 369
0 370
0 371
0 372
0 373
0 374
0 375
0 376
0 377
0 378
0 379
0 380
0 381
0 382
0 383
0 384
0 385
0 386
0 387
0 388
0 389
0 390
0 391
0 392
0 393
0 394
0 395
0 396
0 397
0 398
0 399
0 400
0 401
0 402
0 403
0 404
0 405
0 406
0 407
0 408
0 409
0 410
0 411
0 412
0 413
0 414
0 415
0 416
0 417
0 418
0 419
0 420
0 421
0 422
0 423
0 424
0 425
0 426
0 427
0 428
0 429
0 430
0 431
0 432
0 433
0 434
0 435
0 436
0 437
0 438
0 439
0 440
0 441
0 442
0 443
0 444
0 445
0 446
0 447
0 448
0 449
0 450
0 451
0 452
0 453
0 454
0 455
0 456
0 457
0 458
0 459
0 460
0 461
0 462
0 463
0 464
0 465
0 466
0 467
0 468
0 469
0 470
0 471
0 472
0 473
0 474
0 475
0 476
0 477
0 478
0 479
0 480
0 481
0 482
0 483
0 484
0 485
0 486
0 487
0 488
0 489
0 490
0 491
0 492
0 493
0 494
0 495
0 496
0 497
0 498
0 499
0 500
0 501
0 502
0 503
0 504
0 505
0 506
0 507
0 508
0 509
0 510
0 511
0 512
0 513
0 514
0 515
0 516
0 517
0 518
0 519
0 520
0 521
0 522
0 523
0 524
0 525
0 526
0 527
0 528
0 529
0 530
0 531
0 532
0 533
0 534
0 535
0 536
0 537
0 538
0 539
0 540
0 541
0 542
0 543
0 544
0 545
0 546
0 547
0 548
0 549
0 550
0 551
0 552
0 553
0 554
0 555
0 556
0 557
0 558
0 559
0 560
0 561
0 562
0 563
0 564
0 565
0 566
0 567
0 568
0 569
0 570
0 571
0 572
0 573
0 574
0 575
0 576
0 577
0 578
0 579
0 580
0 581
0 582
0 583
0 584
0 585
0 586
0 587
0 588
0 589
0 590
0 591
0 592
0 593
0 594
0 595
0 596
0 597
0 598
0 599
0 600
0 601
0 602
0 603
0 604
0 605
0 606
0 607
0 608
0 609
0 610
0 611
0 612
0 613
0 614
0 615
0 616
0 617
0 618
0 619
0 620
0 621
0 622
0 623
0 624
0 625
0 626
0 627
0 628
0 629
0 630
0 631
0 632
0 633
0 634
0 635
0 636
0 637
0 638
0 639
0 640
0 641
0 642
0 643
0 644
0 645
0 646
0 647
0 648
0 649
0 650
0 651
0 652
0 653
0 654
0 655
0 656
0 657
0 658
0 659
0 660
0 661
0 662
0 663
0 664
0 665
0 666
0 667
0 668
0 669
0 670
0 671
0 672
0 673
0 674
0 675
0 676
0 677
0 678
0 679
0 680
0 681
0 682
0 683
0 684
0 685
0 686
0 687
0 688
0 689
0 690
0 691
0 692
0 693
0 694
0 695
0 696
0 697
0 698
0 699
0 700
0 701
0 702
0 703
0 704
0 705
0 706
0 707
0 708
0 709
0 710
0 711
0 712
0 713
0 714
0 715
0 716
0 717
0 718
0 719
0 720
0 721
0 722
0 723
0 724
0 725
0 726
0 727
0 728
0 729
0 730
0 731
0 732
0 733
0 734
0 735
0 736
0 737
0 738
0 739
0 740
0 741
0 742
0 743
0 744
0 745
0 746
0 747
0 748
0 749
0 750
0 751
0 752
0 753
0 754
0 755
0 756
0 757
0 758
0 759
0 760
0 761
0 762
0 763
0 764
0 765
0 766
0 767
0 768
0 769
0 770
0 771
0 772
0 773
0 774
0 775
0 776
0 777
0 778
0 779
0 780
0 781
0 782
0 783
0 784
0 785
0 786
0 787
0 788
0 789
0 790
0 791
0 792
0 793
0 794
0 795
0 796
0 797
0 798
0 799
0 800
0 801
0 802
0 803
0 804
0 805
0 806
0 807
0 808
0 809
0 810
0 811
0 812
0 813
0 814
0 815
0 816
0 817
0 818
0 819
0 820
0 821
0 822
0 823
0 824
0 825
0 826
0 827
0 828
0 829
0 830
0 831
0 832
0 833
0 834
0 835
0 836
0 837
0 838
0 839
0 840
0 841
0 842
0 843
0 844
0 845
0 846
0 847
0 848
0 849
0 850
0 851
0 852
0 853
0 854
0 855
0 856
0 857
0 858
0 859
0 860
0 861
0 862
0 863
0 864
0 865
0 866
0 867
0 868
0 869
0 870
0 871
0 872
0 873
0 874
0 875
0 876
0 877
0 878
0 879
0 880
0 881
0 882
0 883
0 884
0 885
0 886
0 887
0 888
0 889
0 890
0 891
0 892
0 893
0 894
0 895
0 896
0 897
0 898
0 899
0 900
0 901
0 902
0 903
0 904
0 905
0 906
0 907
0 908
0 909
0 910
0 911
0 912
0 913
0 914
0 915
0 916
0 917
0 918
0 919
0 920
0 921
0 922
0 923
0 924
0 925
0 926
0 927
0 928
0 929
0 930
0 931
0 932
0 933
0 934
0 935
0 936
0 937
0 938
0 939
0 940
0 941
0 942
0 943
0 944
0 945
0 946
0 947
0 948
0 949
0 950
0 951
0 952
0 953
0 954
0 955
0 956
0 957
0 958
0 959
0 960
0 961
0 962
0 963
0 964
0 965
0 966
0 967
0 968
0 969
0 970
0 971
0 972
0 973
0 974
0 975
0 976
0 977
0 978
0 979
0 980
0 981
0 982
0 983
0 984
0 985
0 986
0 987
0 988
0 989
0 990
0 991
0 992
0 993
0 994
0 995
0 996
0 997
0 998
0 999
0 1000
0 1001
0 1002
0 1003
0 1004
0 1005
0 1006
0 1007
0 1008
0 1009
0 1010
0 1011
0 1012
0 1013
0 1014
0 1015
0 1016
0 1017
0 1018
0 1019
0 1020
0 1021
0 1022
0 1023
0 1024
0 1025
0 1026
0 1027
0 1028
0 1029
0 1030
0 1031
0 1032
0 1033
0 1034
0 1035
0 1036
0 1037
0 1038
0 1039
0 1040
0 1041
0 1042
0 1043
0 1044
0 1045
0 1046
0 1047
0 1048
0 1049
0 1050
0 1051
0 1052
0 1053
0 1054
0 1055
0 1056
0 1057
0 1058
0 1059
0 1060
0 1061
0 1062
0 1063
0 1064
0 1065
0 1066
0 1067
0 1068
0 1069
0 1070
0 1071
0 1072
0 1073
0 1074
0 1075
0 1076
0 1077
0 1078
0 1079
0 1080
0 1081
0 1082
0 1083
0 1084
0 1085
0 1086
0 1087
0 1088
0 1089
0 1090
0 1091
0 1092
0 1093
0 1094
0 1095
0 1096
0 1097
0 1098
0 1099
0 1100
0 1101
0 1102
0 1103
0 1104
0 1105
0 1106
0 1107
0 1108
0 1109
0 1110
0 1111
0 1112
0 1113
0 1114
0 1115
0 1116
0 1117
0 1118
0 1119
0 1120
0 1121
0 1122
0 1123
0 1124
0 1125
0 1126
0 1127
0 1128
0 1129
0 1130
0 1131
0 1132
0 1133
0 1134
0 1135
0 1136
0 1137
0 1138
0 1139
0 1140
0 1141
0 1142
0 1143
0 1144
0 1145
0 1146
0 1147
0 1148
0 1149
0 1150
0 1151
0 1152
0 1153
0 1154
0 1155
0 1156
0 1157
0 1158
0 1159
0 1160
0 1161
0 1162
0 1163
0 1164
0 1165
0 1166
0 1167
0 1168
0 1169
0 1170
0 1171
0 1172
0 1173
0 1174
0 1175
0 1176
0 1177
0 1178
0 1179
0 1180
0 1181
0 1182
0 1183
0 1184
0 1185
0 1186
0 1187
0 1188
0 1189
0 1190
0 1191
0 1192
0 1193
0 1194
0 1195
0 1196
0 1197
0 1198
0 1199
0 1200
0 1201
0 1202
0 1203
0 1204
0 1205
0 1206
0 1207
1 1208
1 1209
0 1210
0 1211
1 1212
1 1213
0 1214
0 1215
0 1216
0 1217
1 1218
1 1219
0 1220
0 1221
0 1222
1 1223
1 1224
0 1225
0 1226
0 1227
1 1228
1 1229
0 1230
0 1231
0 1232
1 1233
1 1234
0 1235
0 1236
0 1237
1 1238
1 1239
0 1240
0 1241
0 1242
1 1243
1 1244
0 1245
0 1246
0 1247
1 1248
1 1249
0 1250
0 1251
0 1252
1 1253
1 1254
0 1255
0 1256
0 1257
1 1258
1 1259
0 1260
0 1261
0 1262
1 1263
1 1264
0 1265
0 1266
0 1267
1 1268
1 1269
0 1270
0 1271
0 1272
1 1273
1 1274
0 1275
0 1276
0 1277
1 1278
1 1279
0 1280
0 1281
0 1282
1 1283
1 1284
0 1285
0 1286
0 1287
1 1288
1 1289
0 1290
0 1291
0 1292
1 1293
1 1294
0 1295
0 1296
0 1297
1 1298
1 1299
0 1300
0 1301
0 1302
1 1303
1 1304
0 1305
0 1306
0 1307
1 1308
1 1309
0 1310
0 1311
0 1312
1 1313
1 1314
0 1315
0 1316
0 1317
1 1318
1 1319
0 1320
0 1321
0 1322
1 1323
1 1324
0 1325
0 1326
0 1327
1 1328
1 1329
0 1330
0 1331
0 1332
1 1333
1 1334
0 1335
0 1336
0 1337
1 1338
1 1339
0 1340
0 1341
0 1342
1 1343
1 1344
0 1345
0 1346
0 1347
1 1348
1 1349
0 1350
0 1351
0 1352
1 1353
1 1354
0 1355
0 1356
0 1357
1 1358
1 1359
1 1360
0 1361
0 1362
0 1363
1 1364
1 1365
0 1366
0 1367
0 1368
1 1369
1 1370
0 1371
0 1372
0 1373
1 1374
1 1375
0 1376
0 1377
0 1378
1 1379
1 1380
0 1381
0 1382
0 1383
1 1384
1 1385
0 1386
0 1387
0 1388
1 1389
1 1390
0 1391
0 1392
0 1393
1 1394
1 1395
0 1396
0 1397
0 1398
1 1399
1 1400
0 1401
0 1402
0 1403
1 1404
1 1405
0 1406
0 1407
0 1408
1 1409
1 1410
0 1411
0 1412
0 1413
1 1414
1 1415
0 1416
0 1417
0 1418
1 1419
1 1420
0 1421
0 1422
0 1423
1 1424
1 1425
0 1426
0 1427
0 1428
1 1429
1 1430
0 1431
0 1432
0 1433
1 1434
1 1435
0 1436
0 1437
0 1438
1 1439
0 1440
0 1441
0 1442
0 1443
0 1444
0 1445
1 1446
1 1447
0 1448
0 1449
0 1450
0 1451
1 1452
1 1453
0 1454
0 1455
1 1456
1 1457
0 1458
0 1459
0 1460
0 1461
1 1462
1 1463
0 1464
0 1465
1 1466
1 1467
0 1468
0 1469
0 1470
1 1471
1 1472
0 1473
0 1474
0 1475
1 1476
1 1477
0 1478
0 1479
0 1480
1 1481
1 1482
0 1483
0 1484
0 1485
1 1486
1 1487
0 1488
0 1489
0 1490
1 1491
1 1492
0 1493
0 1494
0 1495
1 1496
1 1497
0 1498
0 1499
0 1500
1 1501
1 1502
0 1503
0 1504
0 1505
1 1506
1 1507
0 1508
0 1509
0 1510
1 1511
1 1512
0 1513
0 1514
0 1515
1 1516
1 1517
0 1518
0 1519
0 1520
0 1521
0 1522
0 1523
0 1524
0 1525
0 1526
0 1527
0 1528
0 1529
1 1530
1 1531
0 1532
0 1533
0 1534
1 1535
1 1536
0 1537
0 1538
0 1539
1 1540
1 1541
0 1542
0 1543
0 1544
1 1545
1 1546
0 1547
0 1548
0 1549
1 1550
1 1551
0 1552
0 1553
0 1554
1 1555
1 1556
If you want vfr you have to set it all to 0s. That stands for CCCCC match. Hope it helps. I will make a function to mod CTelecine.txt to set a constant pattern from frame x to y. SO by guessing what you get from CTelecine you can guess the pattern and set it without manually do it everytime.

EDIT: I will also make a guess pattern function.

Last edited by Ceppo; 13th February 2022 at 22:30.
Ceppo is offline   Reply With Quote
Old 13th February 2022, 23:20   #13  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
you use "CTelecine(thr2=6,edeint2=QTGMC().SelectEven(),inputTxt=true)"

so the vfr will be up to only 30 fps not 60 fps? the point of https://github.com/pinterf/TIVTC/issues/26 is to have vfr that go up to 60 fps in sources like the one in the sample
__________________
See My Avisynth Stuff
real.finder is offline   Reply With Quote
Old 13th February 2022, 23:56   #14  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
To output a mixed 60fps, the only way that I can think of is to hide the odd frame from the bobbed clip doubling the height, then have CDecimate put it all together. Is kind of tricky, I need some time to think about it.
Ceppo is offline   Reply With Quote
Old 15th February 2022, 22:36   #15  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
I want to give an update: I have been able to make a guess pattern function with minimal error to reduce manual labor. Tomorrow I Will get to the 60fps business. I will make a fake 60fps and all fake frames will be dropped.
Ceppo is offline   Reply With Quote
Old 17th February 2022, 19:55   #16  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
Done. But I didn't update the ReadMe file. Maybe tomorrow.

real.finder Source:
This source has no 60i content aside from the dissolve transition. And you won't never get thr2 to deinterlace it without deinterlacing other not 60i frames. You can try if you want. It's just a guess.

Code:
#1st pass
#~ CFieldDuplicate(thr2=10,nt=10,write=true)
#2nd pass
#~ Bob().SelectEven()
#~ CSceneChange(SCClip(true,800),write=true)
#3nd pass
#~ CGuessPattern()
#4th pass Check CDecimate and fix post telecine cuts.
CTelecine(inputTxt=true)
Cn(1900)#force n match on ccccc cycle.
Cn(2477)
Cn(2647)
#5th pass Fix wrong scene match due bad SC detection (my fault).
#~ CSetPattern(1360,1439,ncccn=true)
#~ CSetPattern(1445,1519,cnncc=true)
#~ CSetPattern(2535,2594,cnncc=true)
#~ CSetPattern(2595,2649,nnccc=true)
#~ CSetPattern(2650,2729,ccnnc=true)
#~ CSetPattern(2835,2954,ccnnc=true)
#~ CSetPattern(2955,2969,ncccn=true)
#6th pass All done!
CDecimate()
CTelecine(match=false,thr2=3,edeint2=QTGMC().SelectEven())
vinverse()
Result
CGuessPattern is all about getting right the scene change and having enough motion in it. Otherwise, it will output a nnccc pattern cuz is the first in the array.

60i VFR test: source and encode download
Code:
#Pass-1 
#~ CTelecine2(thr2=6,edeint2=QTGMC(),write=true)
#Pass-2 Rename CTelecine2.txt to CTelecine.txt and use CSetPattern and adjust 60i cycles (the ones with all 2s)
#~ CSetPattern(0,54,cccnn=true)
#~ CSetPattern(65,149,cnncc=true)
#Pass-3
CTelecine2(thr2=6,edeint2=QTGMC(),inputTxt=true)
CFieldDeBlend(0.005,bob=CTelecine2(thr=3,edeint=nnedi3(-2)))
CDecimate2()
reduceby2()#random resize
Also I fixed the mistakes in the VFR file.

Also, due to the anime problem, I came up with a new field matching method which is much better but a bit slower. It won't do random n match like TIVTC modes do so this reduces a lot of work, the worst you get is a single n match due to duplicates but is easy to fix with a function that looks backward and forward in search of a compatible pattern. This is the result at least in my tests.

From it comes a better comb detection that I have yet to hard test. And a bob filter that keeps all the progressive part of the picture.

I have yet to implement these. I want to write the filters from scratch because the code is getting noisy and add YV16 and YV24 support. So before I do that please tell me what you guys would like me to add.

Last edited by Ceppo; 17th February 2022 at 19:58.
Ceppo is offline   Reply With Quote
Old 17th February 2022, 20:10   #17  |  Link
kedautinh12
Registered User
 
Join Date: Jan 2018
Posts: 2,150
I think you need add HBD for this
kedautinh12 is offline   Reply With Quote
Old 17th February 2022, 20:26   #18  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
There is a bug with CDecimate2 instead of taking the odd frame I took the even frame so the 24fps decimation is slightly wrong. I will post the one with the fix tomorrow with the ReadMe file updated.

Quote:
I think you need add HBD for this
I can't do HBD, I need a sample plugin like invertneg that handles HBD, otherwise, I need to look at the API to understand, and is kind a lot of work since I need to learn a lot of new things
Ceppo is offline   Reply With Quote
Old 17th February 2022, 23:59   #19  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
I still get "cycle at frame ..." errors

I also note CTelecine2.txt start with 3 "0 0"

Code:
0 0
0 0
0 0
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
0 10
0 11
if I did the analysis pass in avspmod, but they will be only 2 if I do it with Virtualdub2 analysis pass

also in case you need more 60i samples https://github.com/pinterf/TIVTC/issues/26
__________________
See My Avisynth Stuff

Last edited by real.finder; 18th February 2022 at 00:11.
real.finder is offline   Reply With Quote
Old 18th February 2022, 01:31   #20  |  Link
Ceppo
Registered User
 
Join Date: Feb 2016
Location: Nonsense land
Posts: 339
AvspMod does it wrong, for some reason it calls 3 times the first frame. I use x264 preset very fast. You can still use AvspMod if you edit the file, just delete the duplicates at the beginning since it says 3 times frame 0. You might also want to look at the last frame in the txt file.

Thanks for the sample.

Last edited by Ceppo; 18th February 2022 at 01:35.
Ceppo is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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 12:01.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.