2753536587 / libyuv

Automatically exported from code.google.com/p/libyuv
0 stars 0 forks source link

Conversion completeness #37

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Measure completeness of conversion from anything to/from I420 and ARGB.

Initial goal would be all YUV formats to/from I420 and all RGB formats to/from 
ARGB
This allows any to any thru 2 or 3 steps
YUV to I420, I420 to ARGB, ARGB to RGB

Original issue reported on code.google.com by fbarch...@google.com on 1 Jun 2012 at 3:04

GoogleCodeExporter commented 9 years ago
Conversion  Number  Maximum Completeness
YUV <-> I420    30  32  93.75%
RGB <-> I420    20  24  83.33%
YUV <-> ARGB    13  32  40.63%
RGB <-> ARGB    11  24  45.83%

ARGBToRGB565 and UYVYToARGB added in r275

Original comment by fbarch...@google.com on 1 Jun 2012 at 5:56

GoogleCodeExporter commented 9 years ago
r276 raises RGB completeness
Conversion  Number  Maximum Completeness
YUV <-> I420    30  32  93.75%
RGB <-> I420    20  24  83.33%
YUV <-> ARGB    14  32  43.75%
RGB <-> ARGB    21  24  87.50%

Of the 28 formats, 23 can be converted to ARGB. 82.14% complete.
Missing are MJPG, I411, M420, Q420, V210

Original comment by fbarch...@google.com on 4 Jun 2012 at 3:54

GoogleCodeExporter commented 9 years ago
r277 completes RGB to/from ARGB adds I411ToARGB:
Conversion  Number  Maximum Completeness
YUV <-> I420    31  32  96.88%
RGB <-> I420    24  24  100.00%
YUV <-> ARGB    15  32  46.88%
RGB <-> ARGB    24  24  100.00%

Of the 28 formats, 24 can be converted to ARGB. 85.71% complete.
Missing are MJPG, M420, Q420, V210.
M420 is similar to NV12.  Q420 and V210 are similar to YUY2.
NV12 internally is similar to how I420ToARGB_SSSE3 works.

Original comment by fbarch...@google.com on 5 Jun 2012 at 12:23

GoogleCodeExporter commented 9 years ago
r281 completes anything to ARGB:

Conversion  Number  Maximum Completeness
YUV <-> I420    31  32  96.88%
RGB <-> I420    24  24  100.00%
YUV <-> ARGB    18  32  56.25%
RGB <-> ARGB    24  24  100.00%

Conversion  Number  Maximum Completeness
YUV 55  56  98.21%
RGB 42  56  75.00%

Of 28 formats, 26 can be converted to ARGB.  25 directly with 1 pass assembly.
MJPG is 2 steps - decode to YUV macro blocks and convert macro blocks to ARGB.
The 2 formats that are not supported are Q420 and V210 which are experimental.
M420 was last to be done - its very similar to NV12, but row interleaved 
instead of biplanar.
ToI420  100.00%
FromI420 96.43%
ToARGB   92.86%
FromARGB 57.14%
Overall  90.18% 97 out of 112 conversions, 75 direct.

Most important missing functionality is I420ToMJPG, but this is not key for 
webcam support.

Original comment by fbarch...@google.com on 5 Jun 2012 at 10:29