[x265] [PATCH 1 of 4] add analysis data structures and param options

Steve Borho steve at borho.org
Thu Sep 11 18:44:08 CEST 2014


On 09/11, sagar at multicorewareinc.com wrote:
> # HG changeset patch
> # User Sagar Kotecha <sagar at multicorewareinc.com>
> # Date 1410443320 -19800
> #      Thu Sep 11 19:18:40 2014 +0530
> # Node ID 5524e76b14e4b532925cd094da039fe8fa0d2edc
> # Parent  012f315d3eda8044f5a49865e15ba2943fbab094
> add analysis data structures and param options
> 
> diff -r 012f315d3eda -r 5524e76b14e4 source/x265.h
> --- a/source/x265.h	Wed Sep 10 17:27:20 2014 +0200
> +++ b/source/x265.h	Thu Sep 11 19:18:40 2014 +0530
> @@ -88,6 +88,37 @@
>      uint8_t* payload;
>  } x265_nal;
>  
> +/* Used to dump intra-inter analysis data, this data can be used in future calls
> + * of the encoder with diffrent bitrate of the same clip. */

queued with typos corrected

> +struct x265_inter_data
> +{
> +    uint32_t zOrder;
> +    int      ref[2];
> +    int      costZero[2];
> +    int16_t  mvx[2];
> +    int16_t  mvy[2];
> +    uint8_t  depth;

I've changed uint8_t depth to uint32_t depth, for structure packing reasons

> +    int      poc;
> +    uint32_t cuAddr;
> +};
> +
> +struct x265_intra_data
> +{
> +    uint8_t*  depth;
> +    uint8_t*  modes;
> +    char*     partSizes;
> +    int*      poc;
> +    uint32_t* cuAddr;
> +};
> +
> +struct x265_analysis_data
> +{
> +    x265_inter_data* interData;
> +    x265_intra_data* intraData;
> +    uint32_t         numCUsInFrame;
> +    uint32_t         numPartitions;
> +};
> +
>  /* Used to pass pictures into the encoder, and to get picture data back out of
>   * the encoder.  The input and output semantics are different */
>  typedef struct x265_picture
> @@ -134,6 +165,10 @@
>      /* force quantizer for != X265_QP_AUTO */
>      int     forceqp;
>  
> +    /* Holds analysis data when analysisMode and analysisData member pointers
> +     * are valid */
> +    x265_analysis_data analysisData;
> +
>      /* new data members to this structure must be added to the end so that
>       * users of x265_picture_alloc/free() can be assured of future safety */
>  } x265_picture;
> @@ -637,6 +672,12 @@
>       * effect in presets which use RDOQ (rd-levels 4 and 5). Default 0.0 */
>      double    psyRdoq;
>  
> +    /* If analysisMode = save, write analysis information into analysis buffers.
> +     * if analysisMode = load, read analysis information into analysis buffer
> +     * and use this analysis information to reduce the amount of work those 
> +     * encoder must performs. Default 0 */
> +    int       analysisMode;
> +
>      /*== Coding tools ==*/
>  
>      /* Enable the implicit signaling of the sign bit of the last coefficient of
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel

-- 
Steve Borho


More information about the x265-devel mailing list