[Libva] [PATCH Libva-intel-driver 00/18] Encoding: Add the support of ROI under CQP on Ivy/Haswell
Zhao, Yakui
yakui.zhao at intel.com
Mon Jan 12 05:01:23 PST 2015
From: "Zhao, Yakui" <yakui.zhao at intel.com>
This is the patch set that tries to add the support of ROI under CQP
on Ivy/Haswell. (ROI is the abbreviation of region of interest). In order
to support ROI, the driver needs to support the feature that the different
qp can be used for the different macroblocks. It requires that the VME
prediction shader and H264 encoding PAK commands can use the different
qp for the different macroblocks.
Zhao Yakui (18):
Encoding: Abstract the calculation of mbmv cost for qp as one
function
Encoding: Add one function that initialize mbmv cost table for
supported Qp range
Encoding: Setup one cost_table surface state for VME shader
Encoding: Enlarge VME command buffer to pass more parameter for
VME MEDIA_OBJECT command on Ivy
Encoding: Pass the Qp parameter into VME shader
Encoding: VME shader reads mbmv_cost from cost_table surface instead
of constant buffer on Haswell
encoding: Send VME instruction uses one register as the desc
parameter instead of hardcode
Encoding: Pass the qp parameter into VME shader on Ivybridge
Encoding: VME shader select the different cost table based on input
Qp on Ivy
Encoding: Dynamically select one mechanism to construct encoding
command buffer for each frame on Haswell
Encoding: Dynamically select one mechanism to construct encoding
command buffer for each frame on Gen7/Gen6
Encoding: Add one flag to indicate whether ROI is supported in one
encode context
Encoding: Allocate one ROI buffer to hold qp per mb dynamically
encoding: use the qp per every macroblock on Ivy
Encoding: Force to use CPU to construct the MFC pak command when
using qp per mb
encoding: use the qp per every macroblock on Haswell
Encoding: Follow API to free the previous ROI buffer when starting a
new frame
Encoding: Add the support of ROI under CQP on Haswell/Ivybridge
src/gen6_mfc.c | 25 +--
src/gen6_mfc.h | 1 -
src/gen6_mfc_common.c | 277 ++++++++++++++++++++++++++---
src/gen6_vme.h | 32 ++++
src/gen75_mfc.c | 29 +--
src/gen75_vme.c | 42 ++++-
src/gen7_vme.c | 183 ++++++++++++++-----
src/gen8_vme.c | 20 +++
src/i965_drv_video.c | 24 +++
src/i965_encoder.c | 13 +-
src/i965_encoder.h | 3 +
src/shaders/vme/inter_bframe_haswell.asm | 24 ++-
src/shaders/vme/inter_bframe_haswell.g75b | 23 ++-
src/shaders/vme/inter_bframe_ivb.asm | 26 +--
src/shaders/vme/inter_bframe_ivb.g7b | 25 ++-
src/shaders/vme/inter_frame_haswell.asm | 24 ++-
src/shaders/vme/inter_frame_haswell.g75b | 11 +-
src/shaders/vme/inter_frame_ivb.asm | 26 +--
src/shaders/vme/inter_frame_ivb.g7b | 13 +-
src/shaders/vme/intra_frame_haswell.asm | 23 ++-
src/shaders/vme/intra_frame_haswell.g75b | 7 +-
src/shaders/vme/intra_frame_ivb.asm | 26 +--
src/shaders/vme/intra_frame_ivb.g7b | 9 +-
src/shaders/vme/vme7.inc | 1 +
src/shaders/vme/vme75.inc | 4 +
25 files changed, 727 insertions(+), 164 deletions(-)
--
1.7.10.1
More information about the Libva
mailing list