[FFmpeg-devel] [RFC] libswscale palette output implementation

Michael Niedermayer michaelni
Fri Jan 1 23:17:59 CET 2010


On Fri, Jan 01, 2010 at 11:00:08PM +0100, Stefano Sabatini wrote:
> On date Friday 2010-01-01 21:55:44 +0100, Michael Niedermayer encoded:
> > On Fri, Jan 01, 2010 at 02:15:05PM +0100, Stefano Sabatini wrote:
> > > On date Thursday 2009-12-31 19:41:44 +0200, Kostya encoded:
> > > > On Thu, Dec 31, 2009 at 05:28:24PM +0100, Stefano Sabatini wrote:
> > > > > Hi,
> > > > > 
> > > > > related thread:
> > > > > http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/80845/focus=82531
> > > > > 
> > > > > Kostya's idea is to use Vitor's ELBG implementation in
> > > > > libavcodec/elbg.{h,c}, first step would be to move it to lavu where it
> > > > > can be used by lsws. This shouldn't comport any ABI / API issues,
> > > > > since the API is only internal (it would only require a dependancy
> > > > > change of lavc on lavu, but I may be wrong here).
> > > > 
> > > > Just don't forget one point (I may be wrong here though): scale code may
> > > > be called on slice or single line, so you need somehow to ensure it
> > > > processes the whole picture. Maybe just having single filter for that is
> > > > better. Also it may be improved to produce palette with minimum
> > > > differences for consequent frames, etc.
> > > 
> > > Michael what about the filter option? I'm not even sure if the
> > > libswscale solution would be viable, since the usage required here
> > > conflicts with the slice API.
> > 
> > It would be very annoying if one pixel format was a special case and
> > couldnt be handled by swscale.
> > There are projects using swscale tha do not use lavfi
> 
> Mmh OK, do you already have some ideas about how to make sws_scale()
> manage such a thing?
> 
> I mean: sws_scale() is passed in input a slice, it needs the whole
> image in order to be able to compute the quantization palette, but
> it is supposed to immediately draw in output the scaled slice.

it is supposed to draw as much as it can, this could be 0 lines already
now


> 
> Also how would be possible to request the filter/sws_scale() to keep
> the same palette, and/or to use a palette provided by the user rather
> than compute it for each frame?

by setting it in the data[1] of the output frame and maybe setting a flag
there may be other ways but it certainly does not seem a big issue


> 
> In attachment a lazy implementation of a quantization filter using
> ELFG.

LFG? like in lagged fibonacci generator?

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

> ... defining _GNU_SOURCE...
For the love of all that is holy, and some that is not, don't do that.
-- Luca & Mans
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100101/301b0d8f/attachment.pgp>



More information about the ffmpeg-devel mailing list