SVC-T using DM36x H.264 cdec Applicatin nte Versin 1.1 Date: 10 th Dec 2010 Scalable vide cding n DM36x This dcument describes hw t use tempral scalability in the beta H.264 ver 2.1 cdec. It is assumed that the user has used prir versin f H.264 encder, viz ver 1.1 r ver 2.0 1.1 SVC-T feature in versin 2.1 H.264 cdec New DM36x versin 2.1 H.264 cdec has SVC-T supprt. The salient features which allw tempral scalability are: 1.1.1 Encder Hierarchical P Frame cding Cnfigurable number f Tempral layers Up t 4 layers (e.g. -> 30fps, 15 fps, 7.5 and 3.75 fps) Supprts hierarchal encding fr bth prgressive and interlaced cntent gaps_in_frame_num_value_allwed flag in H.264 SPS is set Allws higher tempral layers t be remved ate cntrl fr hierarchical cding QP allcatin is similar t JSVM higher quantizatin t upper layers. Optinal SVC headers - Allws easy identificatin and extractin f tempral layers Scalability inf SEI message Indicates the layers present and their dependencies. Prefix NAL unit (Type 14, refer t sectin G.7.3.1.1 f H.264 standard) Page 1 f 6
Indicates, t which scalable layer des this NAL belng. Flexible DPB management In SVC-T cntext, this indicates the tempral layer that this picture belngs t. User selectin fr DPB management Sliding windw with shrt term pictures Adaptive reference picture marking with lng term frames 1.1.2 Decder Can decde SVC-T stream prduced by DM368 encder It ignres the Prefix NAL unit and SEI Scalability infrmatin Expects the applicatin layer r external mdule t give the desired tempral layer(s) fr decde 1.2 Encder API changes in versin 2.1 cdec fr SVC-T SVC-T cdec interface with the applicatin is cntrlled using the tw create time parameters as belw - IH264VENC_Params->numTempralLayers IH264VENC_Params ->svcsyntaxenable 1.2.1 numtemprallayers : This variable refers t the number f hierarchical layers. It can have any value frm the range f 0 t 3 Value Cmments 0 1 layer ( Stream with framerate: F) 1 2 layer ( Stream with framerate: F, F/2) 2 3 layer ( Stream with framerate: F, F/2, F/4) 3 4 layer ( Stream with framerate: F, F/2, F/4, F/8) 255 All P refer t the previus I r ID frame ( Stream with frame rate: F) Where F is the targetframeate set thugh H264VENC_Dynamic_Params Page 2 f 6
EXAMPLES: numtemprallayers = 0 -> nly ne layer. Nrmal IPPP sequence. There is n tempral scalability as shwn in figure belw. -> eference Pictures N -> Nneference Pictures numtemprallayers = 1 -> tw layers f hierarchy, As shwn in belw figure. N N -> eference Pictures N -> Nn eference Pictures numtemprallayers = 2 -> three layers f hierarchy, as shwn in the belw figure N N N N -> eference Pictures N -> Nn eference Pictures Page 3 f 6
numtemprallayers = 3 -> fur layers f hierarchy, as shwn in the belw figure N N N N N N N N N -> Nn eference Pictures -> eference Pictures 1.2.2 svcsyntaxenable This variable is used t turn SVC-T syntax ON r OFF and cntrl DPB management. It can have any value frm the range f 0 t 3. Insertin f SVC syntax cnsists f Prefix NAL (refer t sectin G.7.3.1.1 f H.264 standard) scalability infrmatin SEI message (this is used fr extracting different layers) Value Cmments 0 SVC syntax is ff. Shrt term reference frames are used. Default sliding windw is used fr DPB management 1 SVC syntax is n. Shrt term reference frames are used. Default sliding windw is used fr DPB management. 2 SVC syntax is ff. Lng term reference frames are used. Adaptive reference marking is used fr DPB management. 3 SVC syntax is n. Lng term reference frames are used. Adaptive reference marking is used fr DPB management. When value f svcsyntaxenable is 2 r 3, DPB management using adaptive reference marking is used. This cnsists f sending apprpriate memry management cntrl peratin cmmands Page 4 f 6
(MMCO cmmands) at varius layers. In this mde f peratin, lng term frames are used and lngterm pictures have lngtermindex crrespnding t their layer. Example: Cnsider an example with numtemprallayers = 3 and svcsyntaxenable = 3. The SVC structure is shwn belw (prgressive cntent) 2 2 2 2 1 1 0 0 The pictures with the numbers abve them are the lngterm pictures used fr reference and the number represents the lngtermindex f the picture. Fr interlaced cntent, LTI 0 and 1 are tggled fr base layer and LTI 2 and 3 are used fr upper layers respectively. This is t abide by H.264 adaptive buffer management cnstraints. On the ther hand, When value f svcsyntaxenable is 0 r 1, DPB management is dne using sliding windw with nly shrt term frames. Belw are few difference frm applicatin perspective when using the tw different DPB schemes - Sliding windw (svcsyntaxenable is 0 r 1) The verall DPB buffer requirement at the decder end will be higher The tempral layers cannt be indentified unless infrmed thrugh SVC syntax r thugh sme external means. The decding technique is relatively simpler. Adaptive memry management (svcsyntaxenable is 2 r 3) Mre efficient in DPB buffer requirement LngTermIndex (LTI) can be used t identify the varius tempral layers in absence f SVC syntax. The decding technique is relatively cmplex; nevertheless, a universal decder shuld decde it as the syntax is within H.264 specificatin. Page 5 f 6
Nte: ID frame will reset the tempral GOP structure and will start a new GOP structure. Hence, it is advisable t have ID Frame Interva l(ih264venc_dynamicparams-> idrframeinterval) in multiple f the GOP size. This is as per the H.264 specificatin, which resets the DPB at every ID frame. E.g. If numtemprallayers = 2, IDFrameInterval shuld be multiple f 4. if numtemprallayers = 3, IDFrameInterval shuld be multiple f 8. IVIDENC_DynamicParams->intraFrameInterval des nt have any effect n the tempral layer. It is treated as just anther frame(similar t P frame) and can take any value. 1.3 FAQ What changes are needed in encder cnfiguratin t switch between AVC and SVC-T Please refer t sectin 1.2 abve. D we have decder supprted fr SVC-T as well? Our decder can decde SVC-T stream. It ignres the additinal headers and decdes the stream as if it were a hierarchical P stream. Des SVC-T wrk n bth 300MHz DM365 and 400MHz DM368? Yes, it des n DM365 as well as DM368. Useful links fr DM36x cdecs: http://prcessrs.wiki.ti.cm/index.php/h.264_dm36x_ver_2.0_cdec http://prcessrs.wiki.ti.cm/index.php/dm365_cdecs_faq http://prcessrs.wiki.ti.cm/index.php/dm36x_h.264_encder_faq http://prcessrs.wiki.ti.cm/index.php/dm365_cdec_availability_schedule Page 6 f 6