[XviD-devel] API changes request from MPEG4IP
Bill May
wmay at cisco.com
Mon Oct 13 10:19:18 CEST 2003
Edouard Gomez wrote:
> Edouard Gomez (ed.gomez at free.fr) wrote:
>
>>1) - need to be able to disable all VOL headers in the stream. This is
>> fairly simple to do - probably add a flag.
>
>
> Yes a flag would be enough. But just for curiosity, why don't you want
> VOL headers ? I know we repeat them each IFrame, so first i though you
> wanted just a VOL for a complete stream, but then i've read you request
> again, and realized you wanted _no_ VOL_ header. This surprises me a
> bit as it makes XviD non standard compliant.
Answered that for Pete - but mp4live generates it's own VOSH/VO/VOL - we
don't want/need it in the stream - only in the SDP, and later in the mp4
file as the decoder specific info.
If you had an API to just generate the VOSH/VO/VOL, that would be fine.
>>2) - need to get the reconstructed YUV image back after encoding a
>> frame. I'd like to know what you think the best way to return
>> this.
>
>
> I don't know what branch you use for MPEG4IP, but perhaps a small
> reminder might be necessary for you.
>
> 0.9.x series are simple profile encoders/decoders. They've been
> developed on HEAD for 0.9.0 and 0.9.1. During this time, an Advanced
> Simple Profile version of XviD was developed in the dev-api-3 branch.
Right - this is what I'm working off of.
> At 0.9.1 release we decided to use another development scheme where HEAD
> would be unstable and branches stable or "higly unstable" (aka feature
> branches). So we merged dev-api-3 back to HEAD, and 0.9.x tree on
> release-0.9.1-fixes.
Until stable, I don't want to work on this.
> Following this new scheme, we created dev-api-4 branch to prepare a new
> API for xvid 1.0.x series. As the work on dev-api-4 is near completion,
> we now have this CVS situation:
> - release-0.9.[012] tags marking each SP release.
> - dev-api-3: abandoned branch
> - HEAD: continuation of devapi3 (contains fixes, improvements until
> eary august). Since early august, HEAD is inactive and
> waiting for a merging from dev-api-4 to prepare xvid 1.0.
> - dev-api-4: active, future base of xvid 1.0
>
> This picture of the xvid CVS was necessary to make possible you choose
> the right version for MPEG4IP. It was also needed because the answer
> differs depending on what branch you base MPEG4IP.
Okay - no problems.
> Let's paste again your question:
>
>>2) - need to get the reconstructed YUV image back after encoding a
>> frame. I'd like to know what you think the best way to return
>> this.
>
>
> For HEAD:
> There is nice API to make this possible. However, i think all the
> needed code parts are in place to retrieve the reconstructed image
> after the MC+fDCT+iDCT+MC. Look at the sOriginal field IMAGEs of the
> Encoder structure.
Which API ?
> For dev-api-4:
> You can use the plugin API and request the core to give you access to
> internal buffers with REQORIG etc etc. There is no documentation yet
> about plugins but you can have a look at them reading the sources of
> our rate controllers, lumimasking plugins.
Again - we'll implement to this when you've officially released something
stable (if we get to it - it's taken a while to get to 0.9.2 - my time is
fairly limited).
>
>> I'm current using XVID_CSP_USER to pass in the data - perhaps
>> just overwriting the data there ?
>
>
> That could be a solution for HEAD, but it makes your XviD usage fairly
> "nont the usual way". This was not a problem when you had your own fork
> of XviD but now you try to use client libs as they are on the
> system... it would be difficult to modify HEAD behavior after being used
> by other project in a complete different way that you propose. It may
> impact others.
>
> So as a conclusion for this exact problem:
>
> Knowing that HEAD is dead, that xvid 1.0 will be based on dev-api-4, i
> think the best solution is to use dev-api-4 as a base version for
> MPEG4IP.
Sorry - can't do - for reasons of your next statement...
> But, at the moment we can't garuantee you an external stable API. There
> are still some changes required. Perhaps they'll be part of XviD 1.0, or
> pending for future releases.
Well, I'll do the changes that I need and try to feed them back - perhaps you
could keep these in mind when you do 1.0 ?
>
>>I'm also contemplating adding small option menus to mp4live that will
>>allow differing options - I'd like to know what opinions as to what
>>different options make sense.
>
>
> That's a recurrent problem, the more the MPEG4 encoders are mature, the
> more options they offer.
>
> But from the MPEG4IP POV, it would make sense to first give access at
> profile options to allow easy interoperability, easy feedback from
> users trying to create content for embedded devices.
>
> Then, in a second step you could give access to parameters impacting
> on the chosen profile:
> - 4mv
> - Qpel
> - GMC
> - Usage of bframes and how many...
All good things...
> And in a last step, all options impacting the content creator usage of
> MPEG4IP from a speed/quality of content POV:
> - Motion estimation Level 0..6 (no ME to Very High Quality)
> - RD based ME 0..4 (called VHQ)
>
> These two options could even be put together in order to cimplify
> users' life.
>
> You can have a look at the transcode frontend for the xvid4 export
> module. This frontend does not follow the advices i gave you, but at
> least it presents you the options XviD presents to users on Win32 and
> transcode/mencoder:
> http://ed.gomez.free.fr/vrac/xvidconf/
>
> Sorry i don't have the url of the upstream project, you can browse the
> transcode ML archives on gmane to find it.
I'll take a look at your other email.
Thanks,
Bill
More information about the XviD-devel
mailing list