pbristow
6th August 2012, 17:12
I had a search for this, but either I'm using the wrong search terms or it's not out there... Has anyone produced a plugin that can do this, reasonably efficiently?
Let me explain in more detail what I'm after: At a minimum, given a pair of clips A and B, I want to be able to combine them into a double-width clip where the first column of pixels is the first column from A, the 2nd is the first column from B, the third is the 2nd column from A, and so on.
Now, I know this can be done by using a combination of Rotate, Interleave, AssumeFieldBased and Weave (with a final rotate to get things back the right way up) - i.e. treating the two clips as if they were the separated field streams from an interlaced source -but that's quite slow and clumsy.
Eventually, what I'd like to be able to do is build up a double width, double-height clip from four source clips (A,B,C,D) with pixels arranged as follows:
(Notation format is: CLIP(row,column) )
A(1,1), B(1,1), A(1,2), B(1,2), A(1,3), B(1,3)
C(1,1), D(1,1), C(1,2), D(1,2), C(1,3), D(1,3)
A(2,1), B(2,1), A(2,2), B(2,2), A(2,3), B(2,3)
C(2,1), D(2,1), C(2,2), D(2,2), C(2,3), D(2,3)
Again, this can be done by combining two separate operations, one vertical and one horizontal, using Rotate() to switch the orientation, but it would surely be much more efficient to do it directly in C (let alone assembler!). Has anyone already produced anything like that?
(Hmmm... I just had an idea that *might* be quicker than what I've got... PointResize both clips to double width (or height, as appropriate), and then mt_merge them using a mask of single-pixel black and white stripes...?)
Let me explain in more detail what I'm after: At a minimum, given a pair of clips A and B, I want to be able to combine them into a double-width clip where the first column of pixels is the first column from A, the 2nd is the first column from B, the third is the 2nd column from A, and so on.
Now, I know this can be done by using a combination of Rotate, Interleave, AssumeFieldBased and Weave (with a final rotate to get things back the right way up) - i.e. treating the two clips as if they were the separated field streams from an interlaced source -but that's quite slow and clumsy.
Eventually, what I'd like to be able to do is build up a double width, double-height clip from four source clips (A,B,C,D) with pixels arranged as follows:
(Notation format is: CLIP(row,column) )
A(1,1), B(1,1), A(1,2), B(1,2), A(1,3), B(1,3)
C(1,1), D(1,1), C(1,2), D(1,2), C(1,3), D(1,3)
A(2,1), B(2,1), A(2,2), B(2,2), A(2,3), B(2,3)
C(2,1), D(2,1), C(2,2), D(2,2), C(2,3), D(2,3)
Again, this can be done by combining two separate operations, one vertical and one horizontal, using Rotate() to switch the orientation, but it would surely be much more efficient to do it directly in C (let alone assembler!). Has anyone already produced anything like that?
(Hmmm... I just had an idea that *might* be quicker than what I've got... PointResize both clips to double width (or height, as appropriate), and then mt_merge them using a mask of single-pixel black and white stripes...?)