• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
Keine Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

hardware/intel/libva


Commit MetaInfo

Revision4e79fd1ab329ff0b165390e27727465349d846d7 (tree)
Zeit2014-07-18 21:03:56
AutorJonathan Bian <jonathan.bian@inte...>
CommiterXiang, Haihao

Log Message

Removed fields in VP8 structures that duplicate VAEncMiscParameter structures. Added reference frames to support non auto reference frame implementation. Changed VAQMatrixBufferVP8 to use quantization index deltas.

(cherry picked from commit fbd3de9b22491689c6c3e5f1c305d7af76444e45)

Ändern Zusammenfassung

Diff

--- a/va/va_enc_vp8.h
+++ b/va/va_enc_vp8.h
@@ -54,8 +54,11 @@ typedef struct _VAEncSequenceParameterBufferVP8
5454 unsigned int frame_width;
5555 /* frame height in pixels */
5656 unsigned int frame_height;
57- /* frame rate */
58- unsigned int frame_rate;
57+ /* horizontal scale */
58+ unsigned int frame_width_scale;
59+ /* vertical scale */
60+ unsigned int frame_height_scale;
61+
5962 /* whether to enable error resilience features */
6063 unsigned int error_resilient;
6164 /* auto keyframe placement, non-zero means enable auto keyframe placement */
@@ -69,34 +72,25 @@ typedef struct _VAEncSequenceParameterBufferVP8
6972 /* RC related fields. RC modes are set with VAConfigAttribRateControl */
7073 /* For VP8, CBR implies HRD conformance and VBR implies no HRD conformance */
7174
72- /* target bit-rate */
73- unsigned int bits_per_second;
74- /* min QP */
75- unsigned int min_qp;
76- /* max QP */
77- unsigned int max_qp;
78- /* RC undershoot percentage */
79- unsigned int rc_undershoot;
80- /* RC overshoot percentage */
81- unsigned int rc_overshoot;
82- /* HRD buffer size */
83- unsigned int hrd_buf_size;
84- /* HRD buffer initial fullness */
85- unsigned int hrd_buf_initial_fullness;
86- /* HRD buffer optimal fullness */
87- unsigned int hrd_buf_optimal_fullness;
88-
89- /* up to 3 modes are honored, quality (1), normal (2) and performance (3) */
90- unsigned char target_usage;
91- /* only valid for avbr mode */
92- unsigned int user_max_frame_size;
9375 /**
94- * min number of frames for bit rate to converge.
95- * value should be >= 100. used for avbr mode
76+ * Initial bitrate set for this sequence in CBR or VBR modes.
77+ *
78+ * This field represents the initial bitrate value for this
79+ * sequence if CBR or VBR mode is used, i.e. if the encoder
80+ * pipeline was created with a #VAConfigAttribRateControl
81+ * attribute set to either \ref VA_RC_CBR or \ref VA_RC_VBR.
82+ *
83+ * The bitrate can be modified later on through
84+ * #VAEncMiscParameterRateControl buffers.
9685 */
97- unsigned int avbr_convergence;
86+ unsigned int bits_per_second;
87+ /* Period between I frames. */
88+ unsigned int intra_period;
9889
99- /* reference and reconstructed frame buffers*/
90+ /* reference and reconstructed frame buffers
91+ * Used for driver auto reference management when configured through
92+ * VAConfigAttribEncAutoReference.
93+ */
10094 VASurfaceID reference_frames[4];
10195
10296 } VAEncSequenceParameterBufferVP8;
@@ -113,6 +107,14 @@ typedef struct _VAEncPictureParameterBufferVP8
113107 /* surface to store reconstructed frame */
114108 VASurfaceID reconstructed_frame;
115109
110+ /*
111+ * surfaces to store reference frames in non auto reference mode
112+ * VA_INVALID_SURFACE can be used to denote an invalid reference frame.
113+ */
114+ VASurfaceID ref_last_frame;
115+ VASurfaceID ref_gf_frame;
116+ VASurfaceID ref_arf_frame;
117+
116118 /* buffer to store coded data */
117119 VABufferID coded_buf;
118120
@@ -219,9 +221,6 @@ typedef struct _VAEncPictureParameterBufferVP8
219221 unsigned int value;
220222 } pic_flags;
221223
222- /* quality setting, equivalent to VP8E_SET_CPUUSED */
223- unsigned int quality_setting;
224-
225224 /**
226225 * Contains a list of 4 loop filter level values (updated value if applicable)
227226 * controlling the deblocking filter strength. Each entry represents a segment.
@@ -295,16 +294,18 @@ typedef struct _VAEncMBMapBufferVP8
295294 /**
296295 * \brief VP8 Quantization Matrix Buffer Structure
297296 *
298- * Contains quantization indices for yac(0),ydc(1),y2dc(2),y2ac(3),uvdc(4),
299- * uvac(5) for each segment (0-3). When segmentation is disabled, only
300- * quantization_index[0][] will be used. This structure is sent once per frame.
297+ * Contains quantization index for yac(0-3) for each segment and quantization
298+ * index deltas, ydc(0), y2dc(1), y2ac(2), uvdc(3), uvac(4) that are applied
299+ * to all segments. When segmentation is disabled, only quantization_index[0]
300+ * will be used. This structure is sent once per frame.
301301 */
302302 typedef struct _VAQMatrixBufferVP8
303303 {
304304 /*
305305 * array first dimensional is segment and 2nd dimensional is Q index
306306 */
307- unsigned short quantization_index[4][6];
307+ unsigned short quantization_index[4];
308+ short quantization_index_delta[5];
308309 } VAQMatrixBufferVP8;
309310
310311