Preface - Teasers - Enhanced Terminology - Reference - Encoding of DVD & Bluray Content - About Audio - Recovering The Camera Shots
Basic Primitives - Pulldown Primitives - Advanced Interpolations - Seen In The Wild, Repairing Video


decomb-x2 decombs at the same resolution as bob, but without bobbing.
                       +-----first stride----->+------2nd stride------>    +-----final stride----->
import quasi pictures: (A+b___________________)(C+d___________________) .. (Y_________)(z_________)   ...#pps [note 1]

NOTATION: #pps__#x2hps__(Ab)()(A§$ b)(A§b b)=#x2hps__#pps
           \          \  \                  \ \__________\___ weave
            \          \  \__________________\___ interpolate-x2 - (look)(firstseen)(seen)(finalseen)
             \__________\___ unweave

              unweave: (A_________)(b_________)(C_________)(d_________) .. (Y_________)(z_________)   ...#x2hps
       interpolate-x2: (B=A§C_____)(b_________)(D=C§E_____)(d_________) .. (Z=Y§z_____)(z_________)   ...#x2hps
                weave: (B+b___________________)(D+d___________________) .. (Z+z___________________)   ...#pps
Combing: none -- Judder: none -- Extra burden: 1 halfpic interpolation per stride -- Minor flaw: The final picture, only, is an interpolated blend of bobbed & combed.

[note 1] Regarding decoded source pictures versus camera images, the quality of the camera images has already been slightly lost due to 3 factors, 1: The camera encoding, if lossy, and 2: The interlacing of the scans to make quasi pictures (which, because the scans are from 2 differing times, induces motion vector & DCT distortions), and 3: The lossy nature of the source encoding. Those losses are unrecoverable no matter how video is processed and they are unrelated to this method.

decomb-x2-hr is a high resolution version of decomb-x2.
                        +-------first stride------->+--------2nd stride-------->    +-------final stride------->
 import quasi pictures: (A+b_______________________)(C+d_______________________) .. (Y+z_______________________)   ...#pps [note 1]

NOTATION: #pps__#x2hps__(Ab)(A A§b A§$ b)(A ^§b A§$ b)(A ^§b A§b b)=#x4hps__#x2pps
           \          \  \                                         \ \____________\___ weave
            \          \  \_________________________________________\___ interpolate-x2 - (look)(firstseen)(seen)(finalseen)
             \__________\___ unweave

               unweave: (A___________)(b___________)(C___________)(d___________) .. (Y___________)(z___________)   ...#x2hps
        interpolate-x2: (A____)(a=A§b)(B=A§C)(b____)(C____)(c=b§d)(D=C§E)(d____) .. (Y____)(y=x§z)(Z=Y§z)(z____)   ...#x4hps
                 weave: (A+a_________)(B+b_________)(C+c_________)(D+d_________) .. (Y+y_________)(Z+z_________)   ...#x2pps
Combing: none -- Judder: none -- Extra burden: 2 halfpic interpolations per stride -- Minor flaw: The first & final pictures are interpolated blends of bobbed & combed.

[note 1] Regarding decoded source pictures versus camera images, the quality of the camera images has already been slightly lost due to 3 factors, 1: The camera encoding, if lossy, and 2: The interlacing of the scans to make quasi pictures (which, because the scans are from 2 differing times, induces motion vector & DCT distortions), and 3: The lossy nature of the source encoding. Those losses are unrecoverable no matter how video is processed and they are unrelated to this method.

cinema-at-30fps interpolate-x5 is an alternative to cinema-at-30'fps. Note: It is unknown whether interpolate-x5 is implemented in any existing video tool.
   import pictures: (A_________________)(B_________________)(C_________________)(D_________________)   ...24pps

NOTATION: [24pps__(A-D)(A A...§B B..§.C C.§..D D§...$)=30pps]30fps & 48KHz[x1.001]48KHz
                \  \                                  \ \         \   \________________\___  downsample audio by x/1.001 only if pictures are
                 \  \                                  \ \_________\___ encode                 recovered from cinema-at-30'fps (see "About Audio")
                  \  \__________________________________\___ 4-5 interpolate-x5
                   \___ original pictures or pictures recovered from cinema-at-30'fps

                    :   .   .   .   .   :   .   .   .   .   :   .   .   .   .   :   .   .   .   .
4-5 interpolate-x5: (A_____________)(1=A...§B______)(2=B..§.C______)(3=C.§..D______)(4=D§...$______)   ...30pps
     export frames: [A_____________][1_____________][2_____________][3_____________][4_____________]   ...30fps
Transcode: yes -- PTSs: forced, PTS-of-N = PTS-of-0 + N x 3000, where 'N' is frame index [note 1] -- Combing: none -- Judder: none -- Extra burden: 24 picture interpolations per second.

[note 1] The timebase for DVDs & Blurays (i.e. MPEG2-TS) is 90000tps (ticks per second). When divided by 30fps, the result is 3000tpf (ticks per frame), so forced PTSs step by 3000.


Tip: Compare and contrast the next 3 notations regarding Combing and Judder and Extra burden, and compare with cinema-at-30'fps: Combing: 40% -- Judder: 80% @ 12 judders per second -- Extra burden: none.

cinema-at-30fps interpolate-x2 is an alternative to cinema-at-30'fps.
   import pictures: (A_____________________)(B_____________________)(C_____________________)(D_____________________)   ...24pps

NOTATION: [24pps__(A-D)(A B B§C C§D D)=30pps]30fps & 48KHz[x/1.001]48KHz
                \  \                  \ \         \   \_________________\___  downsample audio by x/1.001 only if pictures are
                 \  \                  \ \_________\___ encode                  recovered from cinema-at-30'fps (see "About Audio")
                  \  \__________________\___ 4-5 interpolate-x2
                   \___ original pictures or pictures recovered from cinema-at-30'fps

                    :           .           :           .           :           .           :           .           :           .
4-5 interpolate-x2: (A_____________________)(B_________)(B§C___________________)(C§D_______)(D_____________________)   ...30pps
            encode: [A______-20%______][B______+60%______][B§C_____-20%______][C§D_____+60%_____][D______-20%______]   ...30fps
Transcode: yes -- PTSs: forced, PTS-of-N = PTS-of-0 + N x 3000, where 'N' is frame index [note 1] -- Combing: none -- Judder: 80% @ 12 judders per second [note 2] -- Extra burden: 12 picture interpolations per second.

[note 1] The timebase for DVDs & Blurays (i.e. MPEG2-TS) is 90000tps (ticks per second). When divided by 30fps, the result is 3000tpf (ticks per frame), so forced PTSs step by 3000.

[note 2] [A______-20%______] is 20% shorter than (A_____________________), [A______-20%______][B______+60%______] is 80% judder with 2 1 2 1 2 cadence.

cinema-at-30fps interpolate-x8 is an alternative to cinema-at-30'fps.
   import pictures: (A_____________________)(B_____________________)(C_____________________)(D_____________________)   ...24pps

NOTATION: [24pps__(A-D)(A A..§B B....§..C C..§....D D§..$)=30pps]30fps & 48KHz[x/1.001]48KHz
                \  \                                      \ \         \   \_________________\___  downsample audio by x/1.001 only if pictures are
                 \  \                                      \ \_________\___ encode                  recovered from cinema-at-30'fps (see "About Audio")
                  \  \______________________________________\___ 4-5 interpolate-x8
                   \___ original pictures or pictures recovered from cinema-at-30'fps

                    :     .     .     .     :  .  .  .  .  .  .  .  :  .  .  .  .  .  .  .  :     .     .     .
4-5 interpolate-x8: (A_______________)(4=A..§B____________)(8=B....§..C_____)(9=C..§....D________)(7=D§..$_________)   ...30pps
            encode: [A______+7%_______][4______-9%_______][8_______+7%_______][9______-9%_______][7______+7%_______]   ...30fps
Transcode: yes -- PTSs: forced, PTS-of-N = PTS-of-0 + N x 3000, where 'N' is frame index [note 1] -- Combing: none -- Judder: 16% @ 12 judders per second [note 2] -- Extra burden: 60 picture interpolations per second.

[note 1] The timebase for DVDs & Blurays (i.e. MPEG2-TS) is 90000tps (ticks per second). When divided by 30fps, the result is 3000tpf (ticks per frame), so forced PTSs step by 3000.

[note 2] [A______+7%_______] is 7% longer than (A_______________), [A______+7%_______][4______-9%_______] is 16% judder with 6 7 6 7 6 cadence.

cinema-to-120fps interpolate-x16 is an alternative to cinema-at-30'fps.
import pictures: (A______________________________________________________________________________________________________________)   ...24pps

NOTATION: [24pps__(A)(A A..§..§...§..§..$)=120pps]120fps & 48KHz[x/1.001]48KHz
                \  \                      \ \           \   \_________________\___  downsample audio by x/1.001 only if pictures are
                 \  \                      \ \___________\___ encode                 recovered from cinema-at-30'fps (see "About Audio")
                  \  \______________________\___ interpolate-x16
                   \___ original pictures or pictures recovered from cinema-at-30'fps

                 :      .      .      .      .      .      .      .      .      .      .      .      .       .      .      .
interpolate-x16: (A__________________)(8=A..§............$)(5=A.....§.........$_______)(6=A.........§.....$_)(9=A............§..$)   ...120pps
         encode: [A_______+7%_________][8_______+7%_________][5________-20%________][6________+7%_________][9________+7%_________]   ...120fps
Transcode: yes -- PTSs: forced, PTS-of-N = PTS-of-A + N x 750, where 'N' is frame index [note 1] -- Combing: none -- Judder: 27% [note 2] @ 24 judders per second [note 3][note 4] -- Extra burden: 96 picture interpolations per second.

[note 1] The timebase for DVDs & Blurays (i.e. MPEG2-TS) is 90000tps (ticks per second). When divided by 120fps, the result is 750tpf (ticks per frame), so forced PTSs step by 750.

[note 2] [8_______+7%_________] is 7% longer than (8=A..§............$), [8_______+7%_________][5________-20%________] is 27% judder with 3 3 4 3 3 cadence.

[note 3] Judder rates above 17 judders per second are generally considered to be unnoticeable.

[note 4] Due to frame drops when going from 120fps to 60fps, judder on 60Hz TVs increases to 27% @ 12 judders per second but probably will be fairly unnoticeable.