summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>2014-09-26 11:53:07 +0200
committerGwenole Beauchesne <gwenole.beauchesne@intel.com>2014-09-26 16:31:48 +0200
commit1095c8a1e024256b0c86e3083e232e295499ae5e (patch)
tree183b2ba074a2f251fbb6956c9f9c9a415aeac252
parentf15d60d2ad4bf0c361659edf90762fd560ad6823 (diff)
downloadlibva-1095c8a1e024256b0c86e3083e232e295499ae5e.tar.gz
doc: fix scan order specification for quantization tables.
Fix the VA-API specification to define all quantization tables, resp. matrices, to be supplied in zig-zag scan order, except for the H.264 codec where scaling lists shall be provided in raster scan order. This clarifies the existing usage inherited from the primary VA driver implementation (Intel Poulsbo), and subsequently adopted by the major multimedia frameworks. Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
-rw-r--r--va/va.h14
-rw-r--r--va/va_dec_jpeg.h2
2 files changed, 16 insertions, 0 deletions
diff --git a/va/va.h b/va/va.h
index f9be2fe..4992b02 100644
--- a/va/va.h
+++ b/va/va.h
@@ -1966,13 +1966,21 @@ typedef struct _VAPictureParameterBufferMPEG2
/** MPEG-2 Inverse Quantization Matrix Buffer */
typedef struct _VAIQMatrixBufferMPEG2
{
+ /** \brief Same as the MPEG-2 bitstream syntax element. */
int load_intra_quantiser_matrix;
+ /** \brief Same as the MPEG-2 bitstream syntax element. */
int load_non_intra_quantiser_matrix;
+ /** \brief Same as the MPEG-2 bitstream syntax element. */
int load_chroma_intra_quantiser_matrix;
+ /** \brief Same as the MPEG-2 bitstream syntax element. */
int load_chroma_non_intra_quantiser_matrix;
+ /** \brief Luminance intra matrix, in zig-zag scan order. */
unsigned char intra_quantiser_matrix[64];
+ /** \brief Luminance non-intra matrix, in zig-zag scan order. */
unsigned char non_intra_quantiser_matrix[64];
+ /** \brief Chroma intra matrix, in zig-zag scan order. */
unsigned char chroma_intra_quantiser_matrix[64];
+ /** \brief Chroma non-intra matrix, in zig-zag scan order. */
unsigned char chroma_non_intra_quantiser_matrix[64];
} VAIQMatrixBufferMPEG2;
@@ -2104,9 +2112,13 @@ typedef struct _VAPictureParameterBufferMPEG4
/** MPEG-4 Inverse Quantization Matrix Buffer */
typedef struct _VAIQMatrixBufferMPEG4
{
+ /** Same as the MPEG-4:2 bitstream syntax element. */
int load_intra_quant_mat;
+ /** Same as the MPEG-4:2 bitstream syntax element. */
int load_non_intra_quant_mat;
+ /** The matrix for intra blocks, in zig-zag scan order. */
unsigned char intra_quant_mat[64];
+ /** The matrix for non-intra blocks, in zig-zag scan order. */
unsigned char non_intra_quant_mat[64];
} VAIQMatrixBufferMPEG4;
@@ -2415,7 +2427,9 @@ typedef struct _VAPictureParameterBufferH264
/** H.264 Inverse Quantization Matrix Buffer */
typedef struct _VAIQMatrixBufferH264
{
+ /** \brief 4x4 scaling list, in raster scan order. */
unsigned char ScalingList4x4[6][16];
+ /** \brief 8x8 scaling list, in raster scan order. */
unsigned char ScalingList8x8[2][64];
} VAIQMatrixBufferH264;
diff --git a/va/va_dec_jpeg.h b/va/va_dec_jpeg.h
index 685e3ff..4d79a11 100644
--- a/va/va_dec_jpeg.h
+++ b/va/va_dec_jpeg.h
@@ -87,6 +87,8 @@ typedef struct _VAPictureParameterBufferJPEGBaseline {
* The #load_quantization_table array can be used as a hint to notify
* the VA driver implementation about which table(s) actually changed
* since the last submission of this buffer.
+ *
+ * The #quantiser_table values are specified in zig-zag scan order.
*/
typedef struct _VAIQMatrixBufferJPEGBaseline {
/** \brief Specifies which #quantiser_table is valid. */