[Libva] [PATCH 3/3] JPEG Encode: Added JPEG Encode feature support for gen8
Xiang, Haihao
haihao.xiang at intel.com
Thu Nov 13 00:47:42 PST 2014
Hi Sirisha,
I will merge your patch to staging branch for testing. Could you use the
functions in test/loadsurface.h to upload YUV data from memory into a VA
surface in your next patch ?
Thanks
Haihao
> Thanks Matt. I'll add those changes to the next patch set I'll send soon for the enhancement of JPEG Encode feature.
>
> Since there are no more comments from the other members so far, is it safe to assume these patches will be merged to the staging soon?
>
> -Sirisha
>
> -----Original Message-----
> From: Matt Turner [mailto:mattst88 at gmail.com]
> Sent: Tuesday, November 11, 2014 4:11 PM
> To: Muppavarapu, Sirisha
> Cc: libva at lists.freedesktop.org
> Subject: Re: [Libva] [PATCH 3/3] JPEG Encode: Added JPEG Encode feature support for gen8
>
> On Mon, Nov 10, 2014 at 11:03 PM, Sirisha Muppavarapu <sirisha.muppavarapu at intel.com> wrote:
> > ---
> > src/gen6_mfc.h | 3 +
> > src/gen8_mfc.c | 873 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
> > src/i965_encoder.c | 52 +++-
> > 3 files changed, 912 insertions(+), 16 deletions(-)
> >
> > diff --git a/src/gen6_mfc.h b/src/gen6_mfc.h index 67c62a4..31d828f
> > 100644
> > --- a/src/gen6_mfc.h
> > +++ b/src/gen6_mfc.h
> > @@ -190,6 +190,9 @@ struct gen6_mfc_context
> > int i_dpb_output_delay_length;
> > }vui_hrd;
> >
> > + //"buffered_QMatrix" will be used to buffer the QMatrix if the app sends one.
> > + // Or else, we will load a default QMatrix from the driver for JPEG encode.
> > + VAQMatrixBufferJPEG buffered_qmatrix;
> > struct i965_gpe_context gpe_context;
> > struct i965_buffer_surface mfc_batchbuffer_surface;
> > struct intel_batchbuffer *aux_batchbuffer; diff --git
> > a/src/gen8_mfc.c b/src/gen8_mfc.c index fd7ece1..ca37b06 100644
> > --- a/src/gen8_mfc.c
> > +++ b/src/gen8_mfc.c
> > @@ -42,6 +42,7 @@
> > #include "gen6_mfc.h"
> > #include "gen6_vme.h"
> > #include "intel_media.h"
> > +#include <va/va_enc_jpeg.h>
> >
> > #define SURFACE_STATE_PADDED_SIZE SURFACE_STATE_PADDED_SIZE_GEN8
> > #define SURFACE_STATE_OFFSET(index) (SURFACE_STATE_PADDED_SIZE * index)
> > @@ -52,6 +53,53 @@
> > #define B0_STEP_REV 2
> > #define IS_STEPPING_BPLUS(i965) ((i965->intel.revision) >= B0_STEP_REV)
> >
> > +//Zigzag scan order of the the Luma and Chroma components
> > +//Note: Jpeg Spec ISO/IEC 10918-1, Figure A.6 shows the zigzag order differently.
> > +//The Spec is trying to show the zigzag pattern with number
> > +positions. The below //table will use the pattern shown by A.6 and
> > +map the position of the elements in the array static const uint32_t zigzag_direct[64] = {
> > + 0, 1, 8, 16, 9, 2, 3, 10,
> > + 17, 24, 32, 25, 18, 11, 4, 5,
> > + 12, 19, 26, 33, 40, 48, 41, 34,
> > + 27, 20, 13, 6, 7, 14, 21, 28,
> > + 35, 42, 49, 56, 57, 50, 43, 36,
> > + 29, 22, 15, 23, 30, 37, 44, 51,
> > + 58, 59, 52, 45, 38, 31, 39, 46,
> > + 53, 60, 61, 54, 47, 55, 62, 63
> > +};
> > +
> > +//Default Luminance quantization table
> > +//Source: Jpeg Spec ISO/IEC 10918-1, Annex K, Table K.1 uint8_t
> > +jpeg_luma_quant[64] = {
>
> Presumably you want this table and the following one to be static const?
>
> > + 16, 11, 10, 16, 24, 40, 51, 61,
> > + 12, 12, 14, 19, 26, 58, 60, 55,
> > + 14, 13, 16, 24, 40, 57, 69, 56,
> > + 14, 17, 22, 29, 51, 87, 80, 62,
> > + 18, 22, 37, 56, 68, 109, 103, 77,
> > + 24, 35, 55, 64, 81, 104, 113, 92,
> > + 49, 64, 78, 87, 103, 121, 120, 101,
> > + 72, 92, 95, 98, 112, 100, 103, 99 };
> > +
> > +//Default Chroma quantization table
> > +//Source: Jpeg Spec ISO/IEC 10918-1, Annex K, Table K.2 uint8_t
> > +jpeg_chroma_quant[64] = {
> > + 17, 18, 24, 47, 99, 99, 99, 99,
> > + 18, 21, 26, 66, 99, 99, 99, 99,
> > + 24, 26, 56, 99, 99, 99, 99, 99,
> > + 47, 66, 99, 99, 99, 99, 99, 99,
> > + 99, 99, 99, 99, 99, 99, 99, 99,
> > + 99, 99, 99, 99, 99, 99, 99, 99,
> > + 99, 99, 99, 99, 99, 99, 99, 99,
> > + 99, 99, 99, 99, 99, 99, 99, 99
> > +};
> _______________________________________________
> Libva mailing list
> Libva at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/libva
More information about the Libva
mailing list