⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spatial.doc

📁 VC下MPEG2的视频编解码源码
💻 DOC
字号:
The following changes have been made to debug spatial scalability:gethdr.c--------Temporal_reference is used to compute the frame number of each frame,named true_framenum.  The periodic reset at each GOP header as well asthe wrap of temporal_reference at 1024 cause a base valuetemp_ref_base to be incremented accordingly.spatscal.c----------getspatref()A potential problem: Variable char fname[32] was dimensionedstatically and too small.true_framenum is used instead of lower_layer_temporal_reference todetermine the lower layer frame to be read for spatial prediction.The verification of lower_layer_temporal_reference is not possiblesince the temporal reference values that have been encoded into thebase layer bitstream are not available to the enhancement layerdecoder.Since there is no decoder timing information available, the rules onwhich frames can legally be used as spatial prediction frames cannotbe checked.Lower layer frames are read field-wise or frame-wise, depending on thelower_layer_progressive_frame flag. Consistency between layers ischecked since the file format for frame and field pictures differs.Note that the base layer decoder must not use the -f option to enforceframe-wise storage.Note further that only yuv image format (option -o0) is supported asinput format.spatpred()The code for the various combinations of llprog_frame, llfieldsel andprog_frame has been completed and verified with the tceh_conf23bitstream that uses all permissive combinations.getpic.c--------A small bug when storing an I- or P-frame: The prog_frame flag thatthe decoder knows when storing the oldrefframe belongs to the currentrefframe. Therefore the old value of the flag needs to be memorized.store.c-------A potential problem: the filename variables char outname[32],tmpname[32] are statically dimensioned and quite small.The concept of time in this video decoder software--------------------------------------------------When decoding a non-scalable bitstream, the frame number (i.e.temporal position) of the current I- or P-frame can be derivedimplicitly from the number of preceding B-frames after they have beendecoded. Therefore the temporal_reference entry in the picture headeris somewhat redundant and does not necessarily have to be evaluated inthe decoding process.Decoding of the enhancement layer of a spatial scalable hierarchy,however, requires to know the temporal position of each frame at theinstant when it is decoded, since data from a lower layer referenceframe has to be incorporated.In the architecture of this video-only decoder decoding of a spatialscalable hierarchy of bitstreams is done by calling mpeg2decode oncefor the base layer bitstream and a second time for the enhancementlayer bitstream, indicating where the decoded base layer frames can befound (option -s<filename>).Here the concept of time is only present in the form of frame numbers.Therefore spatial scalable bitstream hierarchies can only be handledunder the assumption that base and enhancement layer bitstreams aredecoded to image sequences where corresponding images of both layershave identical frame numbers.More specifically this means that base and enhancement layerbitstreams must contain video with the same frame rate. Furthermoreonly the temporally coincident frame of the base layer can be accessedfor spatial prediction by the enhancement layer decoder, since it isnot possible to resolve unambiguously the lower_layer_temporal_reference which is meant to further specify the lower layer reference frame.======================== SPATIAL.DOC ========================0Decoding a spatial scalable hierarchy of bitstreams---------------------------------------------------With this video-only decoder decoding of a spatial scalable hierarchyof bitstreams is done by calling mpeg2decode once for the base layerbitstream and a second time for the enhancement layer bitstream,indicating where the decoded base layer frames can be found(using option -s and supplying <spatial base filename>).mpeg2decode -r -o0 base.mpg base%d%cmpeg2decode -r -o0 -f -s base%d%c enh.mpg enh%dNote that the base layer decoder must not use the -f option to enforceframe-wise storage.Note further that only yuv image format (option -o0) is supported asinput format.Timing / layer synchronisation in this video decoder software-------------------------------------------------------------When decoding a non-scalable bitstream, the frame number (i.e.temporal position) of the current I- or P-frame can be derivedimplicitly from the number of preceding B-frames after they have beendecoded. Therefore the temporal_reference entry in the picture headeris somewhat redundant and does not necessarily have to be evaluated inthe decoding process.Decoding of the enhancement layer of a spatial scalable hierarchy,however, requires to know the temporal position of each frame at theinstant when it is decoded, since data from a lower layer referenceframe has to be incorporated.The concept of time is only present in the form of frame numbers.Therefore spatial scalable bitstream hierarchies can only be handledunder the assumption that base and enhancement layer bitstreams aredecoded to image sequences where corresponding images of both layershave identical frame numbers.More specifically this means that base and enhancement layerbitstreams must contain video with the same frame rate. Furthermoreonly the temporally coincident frame of the base layer can be accessedfor spatial prediction by the enhancement layer decoder, since it isnot possible to resolve unambiguously the lower_layer_temporal_referencewhich is meant to further specify the lower layer reference frame.Lower layer frames are read field-wise or frame-wise, depending on thelower_layer_progressive_frame flag. Consistency between layers in thisrespect is checked since the file format for frame and field picturesdiffers.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -