No, this is in the default DV NTSC sequence, lower
field dominance, asks me to render fields, so should work normally.
As a test I even tried ignoring the current
frame's input, get the current frames fields temporally (the
"now" FxBitmap below), create the interlaced frame, then extract the correct
field again to return into the output. It produces the same result as
having no effect, as expected. So at the least the temporal call for the
current frame seem to be getting the correct pixels. I haven't tried
checking the other frames, I can do that now.
Micah
----- Original Message -----
Sent: Thursday, November 29, 2007 11:12
AM
Subject: Re: creating interlaced
frames
By the way Michah, are you trying to access fields
from interlaced material from within a sequence that has field separation
turned off? If so, this is known to be broken.
To Paul, We are
not the only ones who want proper access to fields. Can you convince
your higher-ups to allow you to fix this? Pete
Good question, haven't tried in Motion, only
FCP. When I mean "off" this is compared to doing the same thing in AE,
then applying our algorithm to the 3 inputs. In AE the result is
great, in FCP the result is not so great, and the results seems shifted by a
couple fields. What we are doing is a deinterlacer btw, so the real
"off" means not perfectly smoothly deinterlaced, but in AE it is. All
else should be equal, the code is completely shared otherwise except for the
different methods of retrieving the temporal inputs between FCP and
AE. Thus I was wondering if maybe I'm in-correctly creating my own
interlaced frames (AE gives me full frames).
Any thoughts are
appreciated.
Micah
On Nov 29, 2007, at 10:20 AM,
Darrin Cardani wrote:
Micah, What you have below looks correct to me.
When you say that you are "seeing some results that somewhere my fields
are slightly off," in what way are they off? Just curious - what do you
see when running it in Motion?
Darrin
On Nov 28, 2007, at
4:56 PM, Micah Sharp wrote:
Hey guys, I know we talked at one point about a
technique that could be used with temporal bitmaps to create our own
interlaced frames. I am doing this but seeing some results that
somewhere my fields are slightly off. Could you confirm if this
code makes sense? I am getting the previous frame, the current
frame, and the next frame. I am using it in an NTSC sequence, so
assuming lower field dominance in some places for now, but I'm
quite sure the renderInfo.fieldOrder is indeed lower field
dominant.
The "makeFull()" function creates a new double height
bitmap and takes the first bitmap and copies it into every other
line starting at 1, where then 2nd bitmap is copied into every other
line starting at line 0 (thus the lower field
assumption).
id temporalAPI; temporalAPI = [_apiManager
apiForProtocol:@protocol(FxTemporalImageAPI)];
///////////////////////////////////////
double before = (long)(renderInfo.frame-1); double
after = (long)(renderInfo.frame+1); double
current = (long)(renderInfo.frame);
FxBitmap *prev1 = NULL;
FxBitmap *prev2 = NULL;
FxBitmap *now1 = NULL;
FxBitmap *now2 = NULL;
FxBitmap *next1 = NULL;
FxBitmap *next2 = NULL;
[temporalAPI
getInputBitmap:(FxBitmap **)&prev1 withInfo:
renderInfo atTime:before];
[temporalAPI getInputBitmap:(FxBitmap
**)&prev2 withInfo: renderInfo atTime:before+.5];
[temporalAPI getInputBitmap:(FxBitmap
**)&now1 withInfo:
renderInfo atTime:current];
[temporalAPI getInputBitmap:(FxBitmap
**)&now2 withInfo: renderInfo atTime:current+.5];
[temporalAPI getInputBitmap:(FxBitmap
**)&next1 withInfo:
renderInfo atTime:after];
[temporalAPI getInputBitmap:(FxBitmap
**)&next2 withInfo: renderInfo atTime:after+.5];
FxBitmap *prevFull = makeFull( prev1, prev2
); // lower first FxBitmap *nowFull =
makeFull( now1, now2 ); // lower
first FxBitmap *nextFull = makeFull( next1, next2 ); // lower
first
///////////////////////////////////////
Any help is appreciated.
Thanks,
-- Darrin
Cardani email@hidden
_______________________________________________ Do
not post admin requests to the list. They will be ignored. Pro-apps-dev
mailing list
(email@hidden) Help/Unsubscribe/Update
your Subscription:
_______________________________________________ Do not post admin
requests to the list. They will be ignored. Pro-apps-dev mailing
list
(email@hidden) Help/Unsubscribe/Update your
email sent to email@hidden
|