Heim > Datenbank > MySQL-Tutorial > Hauptteil

有关slice 解码过程的(翻译标准8.2部分)

WBOY
Freigeben: 2016-06-07 15:38:27
Original
1490 Leute haben es durchsucht

(在这里,只考虑到帧(frame)的情况,对于场(field),相互场对(complementary field pair)暂不作考虑) 1.图像序列号 POC (picture order count)解码过程. picture order count ,在解B slice时,用来决定参考picture初始化顺序; 在解时间直接模式(temporal direct

(在这里,只考虑到帧(frame)的情况,对于场(field),相互场对(complementary field pair)暂不作考虑)
1.图像序列号POC(picture order count)解码过程.
picture order count ,在解B slice时,用来决定参考picture初始化顺序; 在解时间直接模式(temporal direct mode)下的运动矢量,不直接模式(implicit mode)下的B slice权预测(weighted prediction),和解码器一致性检测(conformance checking)时,用来表现帧和场之间picture 顺序不同).
--每一个编码帧和两个picture order count 相关.称为TopFieldOrderCnt 和 BottomFieldOrderCnt,各自对应于top field 和 bottom field.
Topfiieldordercnt 和BottomFieldOrderCnt通过调用POC解码过程得到的. POC 有三种类型(type 0,1,2).
对于picx:
PicOrderCnt(picx)=min(TopFieldOrderCnt,BottomFieldOrderCnt)
DiffPicOrderCnt( pica, picb ) = PicOrderCnt( pica ) - PicOrderCnt( picb )
这三种类型的解码过程在标准的8.2.1.1, 8.2.1.2, and 8.2.1.3.

2.宏块(macroblock)到slice group映射的解码过程
这个过程时在每个slice 开始时调用的.得到MbToSliceGroupMap(宏块到所属帧组的映射表).
slice group 有6种映射模式(8.2.2.1—8.2.2.8),分别用于不同的情况编码.例如电视广播,背景相对稳定,只需传送人的头像部分的slice宏块就行了,可以选slice type 2.

3.slice 数据划分(data partition)解码过程
输入:
--slice 数据划分a层(layer)rbsp,
--当类别3(category 3)中语法元素在slice 数据中出现,slice 数据划分b层rbsp有和a层一样的slice_id.
--当类别4中的语法元素在slice数据中出现,slice数据划分c层rbsp有和a层一样的slice_id.
输出:编码slice.
当不使用slice 数据划分,编码slice表现为rbsp没有分割,包含slice 头,slice数据语法结构包含类别2,3,4中所有语法元素,宏块数据.
当使用slice数据划分,每一个类别中的语法元素分离在不同的nal单元.解码过程处理slice数据划分过程和没有划分时是等价的.
注释:语法分类3和解i,si宏块残差数据有关,4中和解p,b中的残差数据相关,2中包含所有和解码宏块相关的语法元素.

4.参考picture 列表创建的解码过程
对于P,SP帧,使用Refpiclist0,对于B使用RefPicList0,RefPicList1.
解码的参考画面(picture) 标记为使用短(short-term) 参考帧或长(long-term)参考帧两种.
短解码的参考画面通过frame_num指定,长解码的参考画面通过long term frame index 指定.
如果LongTermEntry( RefPicListx[ i ] )==1,表示是长参考帧,于LongTermPicNum相联系.
如果LongTermEntry( RefPicListx[ i ] )==0,表示是短参考帧,于PicNum相联系.
修改的参考画面数量在表(list) RefPicList0中是num_ref_idx_l0_active_minus1 + 1,在RefPicList1中是num_ref_idx_l1_active_minus1 + 1,一个参考画面可以有多个所有在流改的参考画面表RefPicList0, RefPicList1.
4.1 picture numbers 获取过程
if( framenum > frame_num )
FrameNumWrap = FrameNum – MaxFrameNum 
else
FrameNumWrap = FrameNum
PicNum = FrameNumWrap
LongTermPicNum = LongTermFrameIdx 

4.2 参考画面表初始化过程
对于P,SP
RefPicList0:
short-term (降序), long-term(升序),null 

对于B
RefPicList0
short-term(降序) ,short-term(升序) , long-term(升序) , null
第一部分PicOrderCnt(frm )
第二部分PicOrderCnt(frm)> PicOrderCnt( currpic )
RefPicList1
short-term(升序) ,short-term(降序) , long-term(升序), null
第一部分PicOrderCnt(frm )> PicOrderCnt( currpic )
第二部分PicOrderCnt(frm)
4.3参考画面表重排序过程
对于短画面(short-term picture)
reordering_of_pic_nums_idc等于 0,或1
首先求出 PicNumLX

for( cIdx = num_ref_idx_lx_active_minus1 + 1; cIdx > refidxLX; cIdx-- )

RefPicListX[ cIdx ] = RefPicListX[ cIdx – 1]

RefPicListX[ refIdxLX++ ] = PicNumLX

nIdx = refIdxLX

for( cIdx = refIdxLX; cIdx

if( LongTermEntry( refPicListx[ cIdx ] ) | | RefPicListX[ cIdx ] != picnumlx )

RefPicListX[ nIdx++ ] = RefPicListX[ cIdx ]


对于长画面(long-term picture)
reordering_of_pic_nums_idc等于 2

for( cIdx = num_ref_idx_lx_active_minus1 + 1; cIdx > refidxLX; cIdx-- )

RefPicListX[ cIdx ] = RefPicListX[ cIdx – 1]

RefPicListX[ refIdxLX++ ] = LongTermPicNum 

nIdx = refIdxLX

for( cIdx = refIdxLX; cIdx

if( !LongTermEntry( RefPicListX[ cIdx ] ) | | RefPicListX[ cIdx ] != LongTermPicNum )

RefPicListX[ nIdx++ ] = RefPicListX[ cIdx ]

5.解码的参考画面标记过程(marking process)
nal_ref_idc 不等于0的解码画面, 作为参考画面, 标记为短参考帧或长参考帧. 对于解码参考帧,它的两个场的标记和帧相同. 标记为长参考帧, 用LongTermFrameIdx标识,标记为短参考帧或长参考帧的帧或相互的参考场对,可以作为帧间预测的参考帧, 直到帧标记为不使用为参考帧(unused for reference).
画面标记为不使用参考帧(unused for reference),可以通过使用滑动窗口(slice windows)参考画面标记过程,一种先进先出的机制,或自适应存储画面标记过程(adaptive memory control reference picture marking process),一种自定义的自适应标记过程.
在解码过程中short-term 参考画面,使用picnum指定,long-term 参考画面使用LongTermPicNum.
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage