diff options
author | Maarten Lankhorst <maarten.lankhorst@linux.intel.com> | 2018-01-22 12:21:34 +0100 |
---|---|---|
committer | Maarten Lankhorst <maarten.lankhorst@linux.intel.com> | 2018-02-01 14:19:48 +0100 |
commit | 4452dcb4d8166cb3895ddc016267fd46c674b7f5 (patch) | |
tree | f1ad8e6cfbadf3dcd4a976a7d4884650466b763a /overlay | |
parent | 918ea427d0255b5bc74da3dcccec8cc3fe65631f (diff) |
lib/igt_fb: Add support for NV12 format through conversion, v2.
For NV12 a format conversion is needed. Because YUV formats are not
fully defined with just a fourcc, I've chosen BT.601 limited range.
This puts the pixel center of the CbCr components between the top
left Y and bottom left Y:
Y Y Y Y
UV UV
Y Y Y Y
Some work is put into optimising the conversion routines in order to
make it fast enough. Before converting nv12 to rgb24, it is copied to
a temporary buffer to take advantage of memory caching. This is
approximately 20x faster than directly reading the BO.
When testing on my KBL with a 1080p buffer, it takes approximately
.1s to convert either way, this is fast enough not to bother optimising
even further for me.
Changes since v1:
- Use BT.601 instead of BT.709 coefficients.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
Diffstat (limited to 'overlay')
0 files changed, 0 insertions, 0 deletions