[Libva] [PATCH 0/4] add RGBX<-->NV12 conversion in post-processing
Xiang, Haihao
haihao.xiang at intel.com
Sun Jul 15 17:59:48 PDT 2012
On Fri, 2012-07-13 at 08:41 +0300, Zhao Halley wrote:
> add RGB to NV12 and NV12 to RGB conversion
> - either is implemented in 2 ways: 8.8 fix point or float point
> however, it doesn't show performance difference in my test
> - RGB to NV12 conversion can be used to load video frames for futhure processing
> - NV12 to RGB conversion can be used for fine control of video rendering:
> for example: RGB565 support, color correction
> - for RGBX layout, we follows BMP image, that is: |B|G|R|X| in memory layout
So it should be BGRX<-->NV12 conversion.
>
> Zhao Halley (4):
> add GPU shader for RGB->NV12 conversion
> add rgbx->nv12 conversion in post-processing
> add GPU shader for NV12->RGBX conversion
> add nv12->rgbx conversion in post-processing
>
> src/i965_drv_video.c | 78 ++-
> src/i965_post_processing.c | 161 +++++-
> src/i965_post_processing.h | 4 +-
> .../gen5_6/Common/NV12_Load_8x4.asm | 32 +-
> .../post_processing/gen5_6/Common/PL2_Load.inc | 3 +
> .../gen5_6/Common/RGBX_Load_16x8.asm | 57 ++
> .../gen5_6/Common/RGBX_Load_16x8.inc | 48 ++
> .../gen5_6/Common/RGBX_Save_YUV_Fix.asm | 115 ++++
> .../gen5_6/Common/RGBX_Save_YUV_Float.asm | 152 ++++
> .../gen5_6/Common/RGBX_to_YUV_Coef.asm | 43 ++
> .../gen5_6/Common/YUVX_Save_RGBX_Fix.asm | 178 +++++
> .../gen5_6/Common/YUVX_Save_RGBX_Float.asm | 287 ++++++++
> .../gen5_6/Common/YUV_to_RGBX_Coef.asm | 65 ++
> src/shaders/post_processing/gen5_6/Makefile.am | 14 +
> .../post_processing/gen5_6/nv12_load_save_rgbx.asm | 25 +
> .../gen5_6/nv12_load_save_rgbx.g4b.gen5 | 648 ++++++++++++++++++
> .../post_processing/gen5_6/nv12_load_save_rgbx.g6b | 721 ++++++++++++++++++++
> .../post_processing/gen5_6/rgbx_load_save_nv12.asm | 26 +
> .../gen5_6/rgbx_load_save_nv12.g4b.gen5 | 562 +++++++++++++++
> .../post_processing/gen5_6/rgbx_load_save_nv12.g6b | 635 +++++++++++++++++
> 20 files changed, 3840 insertions(+), 14 deletions(-)
> mode change 100644 => 100755 src/shaders/post_processing/gen5_6/Common/NV12_Load_8x4.asm
> mode change 100644 => 100755 src/shaders/post_processing/gen5_6/Common/PL2_Load.inc
> create mode 100755 src/shaders/post_processing/gen5_6/Common/RGBX_Load_16x8.asm
> create mode 100755 src/shaders/post_processing/gen5_6/Common/RGBX_Load_16x8.inc
> create mode 100755 src/shaders/post_processing/gen5_6/Common/RGBX_Save_YUV_Fix.asm
> create mode 100755 src/shaders/post_processing/gen5_6/Common/RGBX_Save_YUV_Float.asm
> create mode 100755 src/shaders/post_processing/gen5_6/Common/RGBX_to_YUV_Coef.asm
> create mode 100755 src/shaders/post_processing/gen5_6/Common/YUVX_Save_RGBX_Fix.asm
> create mode 100755 src/shaders/post_processing/gen5_6/Common/YUVX_Save_RGBX_Float.asm
> create mode 100755 src/shaders/post_processing/gen5_6/Common/YUV_to_RGBX_Coef.asm
> create mode 100755 src/shaders/post_processing/gen5_6/nv12_load_save_rgbx.asm
> create mode 100644 src/shaders/post_processing/gen5_6/nv12_load_save_rgbx.g4b.gen5
> create mode 100644 src/shaders/post_processing/gen5_6/nv12_load_save_rgbx.g6b
> create mode 100755 src/shaders/post_processing/gen5_6/rgbx_load_save_nv12.asm
> create mode 100644 src/shaders/post_processing/gen5_6/rgbx_load_save_nv12.g4b.gen5
> create mode 100644 src/shaders/post_processing/gen5_6/rgbx_load_save_nv12.g6b
>
More information about the Libva
mailing list