Please note as of Wednesday, August 15th, 2018 this wiki has been set to read only. If you are a TI Employee and require Edit ability please contact x0211426 from the company directory.

H.264 DM36x Ver 2.1 Codec

From Texas Instruments Wiki
Jump to: navigation, search

Migration Guide for DM36x H.264 version 2.1 codecs



Migration guide: DM36x ver 2.1 H.264 codec

This document describes the changes done in H.264 ver 2.1 codec over the previous 2.0 codec. It outlines the advantages to migrate to the new codec and the steps needed to do so. This wikitopic is applicable for release on and after 2.10.00.03

New Features in Version 2.1 H.264 codec


New DM36x version 2.1 H.264 codec is an enhanced version of the existing ver 2.0 codec that supports more features.

The salient new features are:

Comparison between version 2.1 and 2.0 codec


For details about features supported in version 2.0 please visit H.264 DM36x Ver 2.0 Codec .

Due to additional feature support in version 2.1 memtab requirement has increased. In case of SVC-T and LongTermFrame size of the few memtabs increases. Please refer datasheets for details.

API changes in version 2.1 codec


There are changes in extended parameter of DM365 encoder when compared to ver 2.0. The changes are listed below –

IH264VENC_Params

Parameter Ver. 2.1 Ver. 2.0 Comments
maxWidth Supported upto 4096 Supported upto 2048 If maxWidth is set to more than 2048 then MegaPixel encoding is enabled. In this case performance might reduce.
maxHeight Supported upto 4096 Supported upto 2048  
inputWidth Supported upto 4096 Supported upto 2048 Encoding of resolution more than 2048x2048 is enabled if maxWidth is more than 2048.
inputHeight Supported upto 4096 Supported upto 2048  
aspectRatioX Moved to IH264VENC_Dynamic_Params
Values: same as before
Supported X scale for Aspect Ratio
aspectRatioY Moved to IH264VENC_Dynamic_Params
Values: same as before
Supported Y scale for Aspect Ratio
pixelRange Move to VUI parameters Structure
See How to modify VUI params
Supported To specify range of values that a pixel can take.
timeScale Move to VUI parameters Structure Supported Timer Resolution for Picture Timing
numUnitsInTicks Move to VUI parameters Structure Supported Number of timer units per Ticks
enableVUIparams Values
Bit-0: enables VUI param insertion
Bit-1: enables insertion of IDR if RC params are changed.
Bit-2: VUI params can be set from application at runtime.
Bit-3: Application is allowed to provide "Customized Encoded" VUI insertion.
  Refer userguide for more details.
disableHDVICPeveryFrame Depreciated Supported  
meAlgo Values 0,1
0: Normal mode
1: Improved Video quality at low bit rate
Reserved If meAlgo is set to 1, performance drop of 1% is observed.
Default value: 0
unrestrictedMV Depreciated Reserved UMV is always ON
seqScalingFlag Values
0-3: Same as before
5: Application can provide/update Customized Scaling Matrix at runtime.
Supported values 0-3 Additional feature support added.
sliceMode Values (Default value 0)
0 – No multi-slice
1- Slice sizes in bits
2- number of MBs per slice
3- number of MB rows per slice
Value 0, 2 and 3 supported. Mode for specifying slice size.
numTemporalLayers Value 0-3 and 255
0 -> one layer (Base layer)
1 -> two layers
2 -> three layers
3 -> four layers
255 -> Chain free P frames
Not present Number of temporal layers in hierarchical encoding.
Default value: 0
svcSyntaxEnable Value 0-3
0 -> SVC disabled short term ref frames used
1 -> SVC enabled short term ref frames used
2 -> SVC disabled long term ref frames used
3 -> SVC enabled long term ref frames used
Not present SVC syntax enable/disable flag. Also decides usage of long-term frame as reference frame in hierarchical encoding.
EnableLongTermFrame Disable
Enable Long Term frame for error resilience.
Not present Flag to enable/disable usage of long-term frame as reference frame for error resiliency
Default value: 0
Log2MaxFrameNumMinus4 Value 0-12 Not present Newly added in ver 2.1 to set the maximum frame number value.
Default value: 0
ConstraintSetFlag Values
Bit-0: Constraint Set 0 flag.
Bit-1: Constraint Set 1 flag
Bit-2: Don’t’ Care
Bit-3: Constraint Set 3 flag
Not present Constraint Profile Set Flag. Refer user guide for more details
Default value: 0


IH264VENC_Dynamic_Params


Parameter Ver. 2.1 Ver. 2.0 Comments
aspectRatioX Values: same as before Supported X scale for Aspect Ratio
aspectRatioY Values: same as before Supported X scale for Aspect Ratio
maxBitrateCVBR Values
0 – 50000000 bps
Not present Specifies the max Bitrate for CVBR RC algorithm.
Default value: 0
interlaceRefMode Values 0-2
0 = ARF (default mode),
1 = SPF,
2 = MRCF
Not present Mode to choose between ARF/SPF/MRCF. Default value 0.
ARF- Adaptive Reference field.
SPF- Same parity field.
MRCF- Most recent coded field.
Default 0
sliceSize Accepts siceSize in bits also. Supported Slice size in terms of bits, MBs and rows depending upon sliceMode flag.
rcAlgo Values 0-6
0: CBR,
1: VBR
2:Fixed QP
3: CVBR
4: FIXED_RC
5: CBR custom1
6: VBR custom1
Supported 0-3 Support for additional new RC algorithm. Refer user guide for details.
enableGDR Values 0-2 Not present Flag to enable Gradual Decoder Refresh.
Default 0
GDRduration Values non-Negative Not present GDR refresh duration. GDRduration shall be non-negative and lesser than GDRinterval.
Default 0.
GDRinterval Values non-Negative Not present Interval between GDR refresh. GDRinterval shall be non-negative else not supported
Default 0.
LongTermRefreshInterval Values non-Negative Not present Newly added in ver 2.1. Interval in which long term reference frame is updated.
Default 0.
UseLongTermFrame Values 0-1
0- Long term frame not Used for reference
1- Long term frame used for reference
Not present Newly added in ver 2.1. Allows codec to use long-term frame instead of short term frame as reference frame.
Default value 0.
SetLongTermFrame Values
0- Set current frame as a short term
1- Set current frame as a long term
Not present Newly added in ver 2.1.
Default value 0.
VUIParamBuffer *VUI_Buffer Pointer to the VUI parameter structure Not present Newly added in ver 2.1. It is functional if Bit-2 of enableVUIparams is set to 1 (e.g. enableVUIparams = 0x4). This allows application to set VUI params from the application. For default VUI values refer user guide.
CustomScalingMatrix *CustomScaleMatrix_Buffer Pointer to the Customized Scaling Matrix structure. Not present Newly added in ver 2.1. It is functional if seqScalingFlag is set to 5.For details refer user guide.
Default: NULL
CVBRsensitivity Reserved Not present Newly added in ver 2.1 for future use
CVBRminbitrate Reserved Not present Newly added in ver 2.1 for future use
LBRmaxpicsize Reserved Not present Newly added in ver 2.1 for future use
LBRminpicsize Reserved Not present Newly added in ver 2.1 for future use
LBRskipcontrol Reserved Not present Newly added in ver 2.1 for future use
maxHighCmpxIntCVBR Reserved Not present Newly added in ver 2.1 for future use



How to integrate ver 2.1 codec in existing application?

  • In case application is using only base class for encode and decode operation and have already migrated to ver 2.0 codec, they can just replace the existing codec RTSC package with the new ver 2.1 codec RTSC package and rebuild the application. In case the existing application is built on ver 1.1 or prior codec, please refer to Migartion guide to ver 2.0 codec before integrating this codec.
  • The codec can work in DVSDK 2.1 and 3.1 demo and DVTB(base class) by just replacing the existing ver 2.0 library.
  • There are changes in no. of memtab requirement and the changes in sizes of few memtabs. Hence the user might observe increased memory requirement from codec.
  • No. of memory pools required are same as of ver 2.0.
  • There are no changes in no. of EDMA channels required. It is same as previous ver 2.0
  • In case the application uses extended parameter, one will need to do modification in the app code depending on the usage of the new features. Please refer to the new interface file, sample test application and user guide to understand the changes in detail.