On Mon, 30 Mar 2009 13:40:22 -0500
DRC <dcomman...@users.sourceforge.net> wrote:

> 
> I proposed this originally, but let me propose it again -- why can't we
> use the TurboJPEG API as our "border"?  That's precisely what it was
> designed for.  That API is already implemented on top of mediaLib, IPP,
> Quicktime, and libjpeg.  It would be quite simple to implement two
> versions of it in our code-- one to talk to a "system" libjpeg and one
> to talk to our enhanced SIMD version.  Then if we ever want to port to
> Solaris, we simply drop in the mediaLib version of TurboJPEG, and it's
> done.  Users can also swap our libturbojpeg.so with the IPP-accelerated
> version at run time if they want additional performance.  It seems like
> re-inventing the wheel to try and make the libjpeg API be our border,
> because there aren't versions of that API implemented on mediaLib or
> IPP, etc. (actually, Intel does have an IPP-accelerated version, but
> it's not as fast as TurboJPEG.)
> 

We still have the legal murkyness that got the discussion off track the
last time.

From a technical point of view, a properly designed abstraction layer
isn't a bad idea. But I still have hopes that an enhanced JPEG lib can
get traction outside of our project, and it has a better chance of
doing that if it remains compatible with the de facto standard API.

What specifically needs to be added to get the libjpeg API feature
equivalent with TurboJPEG? Is it just the input/output color space?
That does not seem like a big obstacle. The code is more or less
already there, we just need to make sure it compiles all variants
instead of just one.

> Writing a compatibility stub using the existing libjpeg API starts to
> get tricky, because the border becomes less well-defined.  We'd
> essentially have to perform color conversion outside of libjpeg and hand
> it pre-converted YUV images.  I'm not even sure how feasible or
> performant that is.  I'd much prefer to use an existing API like
> TurboJPEG and perform color conversion internal to that API.
> 

Or we can let such stubs to what we do today, convert 32-bit RGB to
24-bit RGB and let libjpeg handle the YUV conversion. We cannot get rid
of our conversion code as it is needed for the RFB protocol anyway. I
also have some ideas on cleaning it up and making it faster.

Rgds
-- 
Pierre Ossman            OpenSource-based Thin Client Technology
System Developer         Telephone: +46-13-21 46 00
Cendio AB                Web: http://www.cendio.com

Attachment: signature.asc
Description: PGP signature

------------------------------------------------------------------------------
_______________________________________________
Tigervnc-devel mailing list
Tigervnc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tigervnc-devel

Reply via email to