[XviD-devel] XVID dithering in YV12-to-RGB555

Frederik Lotter Frederik.Lotter at arm.com
Wed Jun 30 12:38:40 CEST 2010


Hi,

I am optimizing the colorspace conversion using the ARM NEON SIMD instruction set.

The current dithering approach does not scale well using SIMD. The current approach adds the least 3 significant bits of a r,g,b pixel value to the next pixel in the row below, and then add this pixel's least significant bits to the next pixel in the row above. Etc....

|/|/|/|/|/| ....

However the sequential inheritance manner of this makes it inefficient for SIMD.

Is there a specification which requires specific dithering patterns when decoding?

Is there any patterns used in other architectures SIMD architectures what you can suggest? Currently my SIMD Colorspace conversion process 32 pixels in a single iteration over two lines:

[xxxxxxxxxxxxxxxx] 16 pixels
[xxxxxxxxxxxxxxxx] 16 pixels

Dithering ideally should be contained to the current processed pixels otherwise large amounts if pixel data must be temporarily saved on the stack - which I want to avoid at all costs.

The sequential manner of the zigzag pattern above cannot be done quickly on SIMD registers containing the r,g,b values.

-- -- --
/  /  /
-- -- --

I was wondering if I could simplify the dithering to groups of 4 pixels.

Regards,
Fred


-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium.  Thank you.


More information about the Xvid-devel mailing list