CN103888774A - 帧内预测模式的解析方法及系统 - Google Patents

帧内预测模式的解析方法及系统 Download PDF

Info

Publication number
CN103888774A
CN103888774A CN201210563631.5A CN201210563631A CN103888774A CN 103888774 A CN103888774 A CN 103888774A CN 201210563631 A CN201210563631 A CN 201210563631A CN 103888774 A CN103888774 A CN 103888774A
Authority
CN
China
Prior art keywords
pred
value
predictive mode
combination
index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201210563631.5A
Other languages
English (en)
Other versions
CN103888774B (zh
Inventor
杨长平
陈小敬
吴铭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Leadcore Technology Co Ltd
Original Assignee
Leadcore Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Leadcore Technology Co Ltd filed Critical Leadcore Technology Co Ltd
Priority to CN201210563631.5A priority Critical patent/CN103888774B/zh
Publication of CN103888774A publication Critical patent/CN103888774A/zh
Application granted granted Critical
Publication of CN103888774B publication Critical patent/CN103888774B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明涉及视频多媒体技术开发领域,公开了一种帧内预测模式的解析方法及系统。本发明中,通过设计预测模式表,在判定当前编码方式是2Mode VLC还是1Mode VLC过程中,将对位于待解析4×4块左边的块A、上边的块B和右上边的块C的预测模式值组合的循环判断,用查询预测模式表的方式进行替代,使得在进行视频编解码过程中,减少判断控制信息,提高解析效率。进一步在解析2Mode VLC编码模式时,通过查询预先设计的2Mode VLC查询码表,得到当前4×4块的预测模式值,并通过减法和乘法计算位于当前4×4块右边的块的预测模式值,省去了现有技术中的除9和对9求余的计算,进一步提高了解析效率。

Description

帧内预测模式的解析方法及系统
技术领域
本发明涉及视频多媒体技术开发领域,特别涉及帧内预测模式的解析方法及系统。 
背景技术
RealVideo9与H.263以及MPEG-4相似,同属基于预测变换的混合编码架构,在编码过程中分为4个主要部分: 
1)将每帧视频分成像素块; 
2)帧内预测,削减空间冗余; 
3)通过运动估计和运动补偿进行帧间预侧,削减时间冗余; 
4)通过对原始块和对应的预测块之间差别形成的残差块进行变换、量化和熵编码,进一步削减空间冗余。 
RealVideo9增加了很多新的编码技术,大大提高了编码效率。但其高性能是以其编解码的复杂度的提高为代价的,编解码算法的复杂度直接影响到开发基于RealVideo9视频解码方案的效率。 
采用哪种可变长编码与4x4块在整个宏块中的位置以及4x4块周围块的预测模式有关,解析较复杂。在视频解码过程中所有帧内(INTRA)宏块都要经过预测模式的解析运算,因此在整个混合编解码系统中它具有举足轻重的地位,而这个模块的运算量和码流速率紧密相关,在高比特率情况下帧内预测模式解析占用整个解码模块的25%以上,这就意味着帧内预测模式解析模块承担了相当大的运算量。 
在Rv9中,INTRA_4x4块有9种预测模式,采用可变长的编码。一个独立的可变长编码可以编码x Mode VLC,其中x为1、2或4,表示一个可变长编码可以编码1种、2种或4种预测模式。x的值与4x4块在整个宏块(宽度、高度各16个像素)中的位置以及4x4块(宽度、高度各4个像素)周围块的预测模式有关。不同的x Mode VLC的组合,形成6种编码方式,同一行的4x4块的预测模式采用下面6种方式之一进行编码,比如,如图1所示,B0、B1、B2、B3这4个4x4块的预测模式采用下面的6种方式之一进行编码。 
1、[4Mode VLC] 
2、[2Mode VLC][2Mode VLC] 
3、[2Mode VLC][1Mode VLC][1Mode VLC] 
4、[1Mode VLC][2Mode VLC][1Mode VLC] 
5、[1Mode VLC][1Mode VLC][2Mode VLC] 
6、[1Mode VLC][1Mode VLC][1Mode VLC][1Mode VLC] 
当宏块是当前帧或Slice(条带,属于一帧的子集)的顶端宏块并且宏块中同一行的4个4x4块是宏块的顶端块时,这4个4x4块的预测模式采用一个可变长编码进行编码(4Mode VLC)。如图1所示,假设宏块是帧或Slice的顶端宏块,则4个4x4块B0、B1、B2、B3的预测模式用4Mode VLC的方式编码。解码时需要用到TOP VLC协议标准码表aic_top_vlc[index],此码表属于协议中的标准码表,大小为16,里面存放的是码流值和对应的码流长度。解码时从码流读取数据依次和码表中的值比较,求出相等时的index,则4个4x4块B0、B1、B2、B3的预测模式为: 
Intra_mode_B0=((index>>2)&2) 
Intra_mode_B1=((index>>1)&2) 
Intra_mode_B2=((index)&2) 
Intra_mode_B3=((index<<1)&2) 
当位于同一行的4个4x4块不是宏块的顶端块,或者宏块不是当前帧或Slice的顶端宏块时,则采用2Mode VLC或1 Mode VLC的编码方式,编码组合指前面所述的2~6,比重比较大。针对2 Mode VLC和1 Mode VLC这两种方式的组合解码,首先判断是采用2 Mode VLC的编码方式还是采用1Mode VLC的编码方式,这依赖于位于4x4块左边的块A、上边的块B和右上边的块C的预测模式,如图2所示。 
Figure BDA00002632863700031
表1 
解码时一次考虑2个4x4块,例如要解析图2的a和b块的预测模式,则根据块A、B、C的预测模式(如表1所示,是标准协议中的Mode VLC帧内预测模式组合表)查询,如果A、B、C的组合值在表1中存在,则采用的是2Mode VLC的编码方式,记录下该组合对应的查表值(即TableNumber值),利用2 Mode VLC协议标准码表aic_2mode_vlc[TableNumber][index]即可解码出块a和b的预测模式。其中,码表中存放的是码流 值;Table Number是根据块A、B、C的组合查表1得到的值,范围为0-19;index范围大小为0-80,共81个数,分别代表a和b的9种预测模式。解码时从码流中读取数据,根据Table Number的值依次和码表aic_2mode_vlc中的值比较,求出相等时的index值,则块a和b的预测模式分别为: 
Intra_mode_a=index/9 
Intra_mode_b=index%9 
若块A、B、C的组合值在表1中不存在,则采用的是1 Mode VLC的编码方式,此时只能解析出块a的预测模式。利用1 Mode VLC协议标准码表aic_1mode_vlc[number][index]进行预测模式的解析,码表中存放的是码流值;index范围是0至8,代表了块a的9种预测模式;number值由左边和上边的预测模式值决定,范围为0至99,即: 
number=10*Intra_mode_left+Intra_mode_above+11 
其中,Intra_mode_left和Intra_mode_above的范围是-1至8,-1表示该块不可用。解码时首先计算出number值,然后从码流中读取数据,根据number值依次和码表aic_1mode_vlc中的值对比,求出相等时的index值,则块a的预测模式为: 
Intra_mode_a=index 
由于同时满足宏块是帧或Slice的顶端宏块并且4x4块是宏块的顶端块的4x4块非常少,因此采用4Mode VLC编码方式的预测模式很少(1%左右),大部分4x4块的预测模式采用的编码方式是2 Mode VLC或1 Mode VLC,约为99%。而在解析2 Mode VLC或1 Mode VLC编码的预测模式时首先需要判断采用的具体是2 Mode VLC还是1 Mode VLC编码,在解析每个4x4块预测模式之前都需要进行这个判断,现有的判断2 Mode VLC还是1 ModeVLC编码的方案是循环判断比较的方式。结合表1,根据前面所述的预测模式编解码原理,可以看出判断2 Mode VLC还是1 Mode VLC编码的过程相 当繁琐,每次最多可能需要20次循环判断,这样每个宏块最多需要320次判断(每个宏块16个4x4块,每个需要20次判断),因此,整个解码过程需要大量的判断控制,这种解析方法效率极低,占用了大量的解析时间,不适合应用在嵌入式设备中。 
发明内容
本发明的目的在于提供一种帧内预测模式的解析方法及装置,使得在进行视频编解码过程中,通过查询设计的码表来代替现有的循环判断,从而减少判断控制信息,提高解析效率。 
为解决上述技术问题,本发明的实施方式提供了一种帧内预测模式的解析方法,包含以下步骤: 
预先设计第一预测模式表;其中,所述第一预测模式表的索引与块A的预测模式值Pred_A和块B的预测模式值Pred_B相关,与所述第一预测模式表的索引对应的值表示所述Pred_A和所述Pred_B的组合不存在于表第一查询表或者存在于第一查询表;所述块A是待解析4×4块左边的块,所述块B是待解析4×4块上边的块;所述第一查询表为标准协议中的Mode VLC帧内预测模式组合表; 
在需解析当前块的帧内预测模式时,查询所述第一预测模式表,并判断所述Pred_A和所述Pred_B的组合是否存在于所述第一查询表中; 
如果所述Pred_A和所述Pred_B的组合不存在于所述第一查询表中,则判定当前编码方式是1 Mode VLC。 
本发明的实施方式还提供了一种帧内预测模式的解析装置,包含:第一预测模式表、第一查询模块、第一判断模块和编码方式确定模块; 
所述第一预测模式表是预先设计的,其中,所述第一预测模式表的索引 与块A的预测模式值Pred_A和块B的预测模式值Pred_B相关,与所述第一预测模式表的索引对应的值表示所述Pred_A和所述Pred_B的组合不存在于所述第一查询表或者存在于所述第一查询表;所述块A是待解析4×4块左边的块,所述块B是待解析4×4块上边的块; 
所述第一查询模块在需解析当前块的帧内预测模式时,根据所述Pred_A和所述Pred_B,查询所述第一预测模式表,得到与所述Pred_A和Pred_B的组合对应的值,并输出至所述第一判断模块; 
所述第一判断模块根据查询所述第一预测模式表得到的值,判断所述Pred_A和所述Pred_B的组合是否存在于所述第一查询表中; 
所述编码方式确定模块在所述第一判断模块的判定结果为所述Pred_A和所述Pred_B的组合不存在于所述第一查询表中时,判定当前编码方式是1Mode VLC。 
本发明实施方式相对于现有技术而言,通过设计预测模式表,在判定当前编码方式是2 Mode VLC还是1 Mode VLC过程中,将对位于待解析4×4块左边的块A、上边的块B和右上边的块C的预测模式值组合的循环判断,用查询预测模式表的方式进行替代,使得在进行视频编解码过程中,减少判断控制信息,提高解析效率。 
另外,在预先设计第一预测模式表的步骤中,还包含以下子步骤: 
与所述索引对应的值表示所述Pred_A和所述Pred_B的组合存在于所述第一查询表中时,包含唯一存在或者存在多种组合; 
在预先设计第一预测模式表之后,查询所述第一预测模式表之前,还包含以下步骤: 
预先设计第二预测模式表和第三预测模式表;其中,所述第二预测模式表的索引是查询所述第一预测模式表得到的值Number1,与所述第二预测模 式表的索引对应的值是一个与所述第一查询表中存在的Pred_A、Pred_B、Pred_C组合中Pred_C和所述Number1相关的值;所述第三预测模式表的索引与所述Number1和所述Pred_C的有关,与所述第三预测模式表的索引对应的值表示Pred_A、Pred_B、Pred_C的组合不存在于所述第一查询表或者存在于所述第一查询表;所述块Pred_C是待解析4×4块右上边的块C的预测模式值; 
在判断所述Pred_A和所述Pred_B的组合是否存在于所述第一查询表中的步骤中,如果所述Pred_A和所述Pred_B的组合存在于所述第一查询表中,进一步判断所述Pred_A和所述Pred_B的组合是唯一存在于所述第一查询表中,还是在所述第一查询表中存在多种组合; 
如果判定唯一存在于所述第一查询表中,则通过查询所述第二预测模式表,判断所述Pred_A、Pred_B和Pred_C的组合是否存在于所述第一查询表中,若是,则判定当前编码方式是2 Mode VLC;否则,判定当前编码方式是1 Mode VLC; 
如果判定在所述第一查询表中存在多种组合,则通过查询所述第三预测模式表,判断所述Pred_A、Pred_B和Pred_C的组合是否存在于所述第一查询表中,若是,则判定当前编码方式是2 Mode VLC;否则,判定当前编码方式是1 Mode VLC。 
针对左边的块A和上边的块B的预测模式值的不同组合情况,设计第二预测模式表和第三预测模式表,使得在编码方式的确定过程中,对现有技术的循环判断用查表代替,进一步提高了解析效率。 
另外,在预先设计第一预测模式表的步骤中,包含以下子步骤: 
以所述Pred_A为十位,所述Pred_B为个位,并加上11得到第一索引; 
如果所述Pred_A和所述Pred_B的组合不存在于所述第一查询表中,则将预设的第一门限值作为与所述第一索引对应的值;其中,所述第一门限值 大于所述第一查询表中所有查表值Table Number; 
如果所述Pred_A和所述Pred_B的组合存在于所述第一查询表中,且所述组合唯一,则将所述第一查询表中与所述块A和所述块B的预测模式值的组合对应的查表值Table Number作为与所述第一索引对应的值; 
如果所述Pred_A和所述Pred_B的组合存在于所述第一查询表中,且所述组合大于一种,则将所述第二预设值作为与所述第一索引对应的值;其中,所述第二预设值大于所述第一门限值;对应于不同的Pred_A和Pred_B的组合,所述第二预设值各不相同。 
通过简单的索引及查表值的对应,实现对左边的块A和上边的块B的预测模式值的不同组合情况的判断,进一步提供了解析效率。 
另外,在预先设计第二预测模式表的步骤中,包含以下子步骤: 
以所述Number1为第二索引; 
将所述Number1与所述Pred_C的预测模式值之和作为与所述第二索引对应的值。 
对左边的块A和上边的块B的预测模式值的组合唯一存在于标准协议中的2 Mode VLC帧内预测模式组合表中的情况,采用简单的表格对右边的块C的预测模式值进行验证,简单易行,进一步提高解析效率。 
另外,在预先设计第三预测模式表的步骤中,包含以下子步骤: 
将所述Number1减去所述第二预设值,加上所述Pred_C,并加上1,得到第三索引; 
如果所述Pred_A、所述Pred_B和所述Pred_C的组合存在于所述第一查询表中,则将所述第一查询表中对应的查表值Table Number作为与所述第三索引对应的值; 
如果所述Pred_A、所述Pred_B和所述Pred_C的组合不存在于所述第一 查询表中,则将所述第一门限值作为与所述第三索引对应的值。 
对左边的块A和上边的块B的预测模式值的组合在标准协议中的2Mode VLC帧内预测模式组合表中存在多种组合的情况,通过右边的块C的预测模式值采用简单的表格确定Table Number值,简单易行,进一步提高解析效率。 
另外,在判断所述Pred_A和所述Pred_B的组合是否存在于所述第一查询表中的步骤中,包含以下子步骤: 
判断所述Number1是否等于所述第一门限值; 
如果所述Number1等于所述第一门限值,则判定当前编码方式是1ModeVLC; 
如果所述Number1小于所述第一门限值,则根据所述Number1,查询所述第二预测模式表,得到最终查表值Table Number;如果所述Table Number等于所述Pred_C与所述Number1之和,则判定当前编码方式是2 Mode VLC,否则判定当前编码方式是1 Mode VLC; 
如果所述Number1大于所述第一门限值,则根据所述Number1和所述Pred_C,查询所述第三预测模式表,得到最终查表值Table Number;如果所述Table Number小于所述第一门限值,则判定当前编码方式是2 Mode VLC,否则判定当前编码方式是1 Mode VLC。 
通过简单的2次数值比较和3次查表,即可实现编码方式的确定,极大地提升了解析效率。 
另外,在查询预先设计的第一预测模式表的步骤之前,还包含以下步骤: 
将所述Pred_A和所述Pred_B的组合相同的组归为一类,重新排列所述第一查询表。 
根据左边的块A和上边的块B的预测模式值的组合对标准协议中的2 Mode VLC帧内预测模式组合表进行重新排列,可以方便查找,进一步提高解析效率。 
另外,在判定当前编码方式是2 Mode VLC之后,还包含以下步骤: 
根据所述Table Number,查询标准协议中2 Mode VLC的码表解析出索引index; 
以所述index为索引,查询预先设计的2 Mode VLC查询码表Intra2Mode_Table,得到当前4×4块的预测模式值; 
计算所述index与当前4×4块的预测模式值和9的乘积之差,得到所述当前4×4块右边的块的预测模式值。 
在解析2 Mode VLC编码模式时,通过查询预先设计的2 Mode VLC查询码表,得到当前4×4块的预测模式值,并通过减法和乘法计算位于当前4×4块右边的块的预测模式值,省去了现有技术中的除9和对9求余的计算,进一步提高了解析效率。 
附图说明
图1是根据现有技术的帧内预测模式解析方法中一个宏块的16个4x4块示意图; 
图2是根据现有技术的帧内预测模式解析方法中的4x4块相对位置示意图; 
图3是根据本发明第二实施方式的帧内预测模式的解析方法的流程图; 
图4是根据本发明第五实施方式的帧内预测模式的解析系统的结构示意图。 
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。 
本发明的第一实施方式涉及一种帧内预测模式的解析方法,包含以下步骤: 
预先设计第一预测模式表;其中,该第一预测模式表的索引与块A的预测模式值Pred_A和块B的预测模式值Pred_B相关,与第一预测模式表的索引对应的值表示Pred_A和Pred_B的组合不存在于第一查询表(即背景技术中的表1)或者存在于表1;块A是待解析4×4块左边的块,块B是待解析4×4块上边的块; 
在需解析当前块的帧内预测模式时,查询第一预测模式表,并判断Pred_A和Pred_B的组合是否存在于表1中;如果Pred_A和Pred_B的组合不存在于表1中,则判定当前编码方式是1 Mode VLC。 
与现有技术相比,本实施方式通过设计预测模式表,在判定当前编码方式是2 Mode VLC还是1 Mode VLC过程中,将对位于待解析4×4块左边的块A、上边的块B和右上边的块C的预测模式值组合的循环判断,用查询预测模式表的方式进行替代,使得在进行视频编解码过程中,减少判断控制信息,提高解析效率。 
本发明的第二实施方式涉及一种帧内预测模式的解析方法。第二实施方式在第一实施方式基础上做了进一步改进,主要改进之处在于:在本发明第二实施方式中,根据Pred_A和Pred_B的组合不存在于表1中、唯一存在或者存在多种组合等三种情况,设计三张预测模式表,并根据这三种情况查询 三张预测模式表,从而确定当前编码方式,替代了对Pred_A、Pred_B和Pred_C组合的循环判断,使得在进行视频编解码过程中,减少判断控制信息,提高解析效率。 
如图3所示,具体包含以下步骤: 
步骤301,预先设计第一预测模式表。在此步骤中,与第一实施方式不同的地方在于:在与索引对应的值表示Pred_A和Pred_B的组合存在于表1中时,包含唯一存在或者存在多种组合两种情况。 
具体地说,以Pred_A为十位,Pred_B为个位,并加上11得到第一索引Table1_index;也就是说,Table1_index=10*Pred_A+Pred_B+11;左边块A、上边块B的预测模式值范围是-1到8,-1代表该块不可用。 
如果Pred_A和Pred_B的组合不存在于表1中,则将预设的第一门限值作为与第一索引对应的值;其中,第一门限值大于表1中所有Table Number值;如果Pred_A和Pred_B的组合存在于表1中,且组合唯一,则将表1中与Pred_A和Pred_B的组合对应的查表值Table Number作为与第一索引对应的值;如果Pred_A和Pred_B的组合存在于表1中,且组合大于一种,则将第二预设值作为与第一索引对应的值;其中,第二预设值大于第一门限值;对应于不同的Pred_A和Pred_B的组合,第二预设值各不相同。 
比如说,若左边块A和上边块B的预测模式值的组合在表1中不存在,则查第一预测模式表得到的值为20(可设为其他值,在此只是用来表示A和B的组合值在表中不存在);若左边块A和上边块B的预测模式值的组合在表1中存在,则查第一预测模式表得到的值分两种情况:一种情况是左边块A和上边块B的预测模式值的组合只有一种,如左边块A和上边块B的预测值都为0,那么查第一预测模式表得到的值为Table Number(即0),另一种情况是左边块A和上边块B的预测模式值的组合大于一种,如左边块A、上边块B的预测值都为2时在表1中出现了4次,此时查第一预测模式表得 到的值为大于20的一个数,具体还需要根据左边块A、上边块B的预测模式值确定。 
举例说明码表的设计过程: 
若Pred_A=2,Pred_B=0,这个组合值在表1中是存在的,即Pred_A=2,Pred_B=0,Pred_C=0,Table Number=2。此时的索引值Table1_index=10*Pred_A+Pred_B+11=31。同时由于Pred_A、Pred_B的这种组合值只有一种,因此将此处的码表值设计为Table Number,即2。 
若Pred_A=-1,Pred_B=0,这个组合值在表1中是不存在的。此时的索引值Table1_index=10*Pred_A+Pred_B+11=1。将此处的码表值设计为20。 
若Pred_A=1,Pred_B=1,这个组合值在表1中是存在的,并且Pred_A、Pred_B的这种组合值大于一种,即Pred_A=1,Pred_B=1,Pred_C=1,TableNumber=4;Pred_A=1,Pred_B=1,Pred_C=2,Table Number=17;Pred_A=1,Pred_B=1,Pred_C=6,Table Number=18。此时的索引值Table1_index=10*Pred_A+Pred_B+11=22。,因此将此处的码表值设计为大于20的一个数,此处设为100(可设为其他值,此处为了后续计算使用设计为100)。 
最终设计的码表可以采用如下形式表示: 
int IntraMode_TableNumberFlag1[100]={20,20,20,20,20,20,20,20,20,20, 
                                      20,0,3,8,20,20,20,20,20,20, 
                                      20,1,100,9,20,20,20,20,20,20, 
                                      20,2,5,108,20,20,20,20,12,15, 
                                      20,20,20,20,20,20,20,20,20,20, 
                                      20,20,20,20,20,20,20,20,20,20, 
                                      20,20,6,20,20,20,20,20,20,20, 
                                      20,20,7,20,20,20,20,20,20,20, 
                                      20,20,20,11,20,20,20,20,20,20, 
                                      20,20,20,14,20,20,20,20,20,20}。 
此外,本领域技术人员可以理解,第一预测模式表也可以采用二维索引的方式表示,比如,以Pred_A为行坐标,以Pred_B为列坐标,码表值为Pred_A和Pred_B为Table Number(Pred_A和Pred_B的组合唯一存在于表1中)、20(Pred_A和Pred_B的组合不存在于表1中)或者大于20的数(Pred_A和Pred_B的组合在表1中存在多种组合)。 
步骤302,预先设计第二预测模式表和第三预测模式表。 
以下分别对第二预测模式表和第三预测模式表分别进行说明如下: 
(1)第二预测模式表的索引是查询第一预测模式表得到的值Number1,与第二预测模式表的索引对应的值是一个与表1中存在的Pred_A、Pred_B、Pred_C组合中Pred_C和Number1相关的值。 
第二预测模式表在第一预测模式表的基础上做进一步的判断,查询完第一预测码模式表后,如果得到的值表明Pred_A和Pred_B的组合在表1中存在并且唯一,那么利用第二预测模式表进一步判断右上块C的预测模式值Pred_C和Pred_A、Pred_B共同的组合值是否在表1中存在。 
比如说,第二预测模式表的索引是查询第一预测模式表得到的值Number1,码表中存放的值是表1中存在的A、B、C组合的C预测模式值Pred_C加上Number1。 
当查询完第一预测模式表后得到Number1,利用Number1进一步查第二预测模式表得到IntraMode_TableNumberFlag2[Number 1],若IntraMode_TableNumberFlag2[Number1]=Number1+C,则表示当前编码方式是2 Mode VLC,否则,表示1 Mode VLC。 
举例说明码表设计过程: 
若Pred_A=0,Pred_B=1,此时查第一预测模式表得到Number1=3,由表1知当Pred_A=0,Pred_B=1时Pred_C=1,那么将第二预测模式表的索引为3的码表值设计为4。则在查询完第一预测模式表后进一步查询第二预测模式表得到IntraMode_TableNumberFlag2[3]=4,然后判断Number1+Pred_C是否等于4,等于则表示Pred_A、Pred_B、Pred_C的组合值在表1中存在,编码方式为2 Mode VLC,否则为1Mode VLC。 
最终的码表设计如下: 
int IntraMode_TableNumberFlag2[20]={0,1,2,4,5,6,7,8,10,11,12,13,14,20,16,17,24,19,24,20}。 
(2)第三预测模式表的索引与Number1和Pred_C的有关,与第三预测模式表的索引对应的值表示Pred_A、Pred_B、Pred_C的组合不存在于表1或者存在于表1;块C是待解析4×4块右上边的块; 
此码表在第一预测模式表的基础上做进一步的判断,查询完第一预测模式表后,如果得到的值表明Pred_A和Pred_B的组合在表1中存在并且大于一种组合值,那么利用第三预测模式表进一步判断右上块C的预测模式值Pred_C和Pred_A、Pred_B共同的组合值是否在表1中存在。 
第三预测模式表的索引是查询第一预测模式表得到的值Number1-99+Pred_C,码表中存放的值是表1中存在的Pred_A、Pred_B、Pred_C组合的Table Number或者20(表示Pred_A、Pred_B、Pred_C的组合在表1不存在)。 
当查询完第一预测模式表后得到Number1,利用Number1-99+Pred_C进一步查第三预测模式表得到IntraMode_TableNumberFlag3[Number1-99+Pred_C],若IntraMode_TableNumberFlag3[Number1-99+Pred_C]<20,则表示当前编码方式是2 Mode VLC,并且当前Table Number值是 IntraMode_TableNumberFlag3[Number1-99+Pred_C],否则表示1 Mode VLC。 
举例说明码表设计过程: 
若Pred_A=2,Pred_B=2,此时查第一预测模式表得到Number1=108,由表1知当Pred_A=2,Pred_B=2时Pred_C等于2、7、8或1四种情况,那么将第三预测模式表的索引为108-99+Pred_C(即11、16、17、10)的码表值依次设计为10、13、16、19(表1中对应Pred_C等于2、7、8、1时的TableNumber值)。在查询完第一预测模式表后进一步查询第三预测模式表得到IntraMode_TableNumberFlag3[Number1-99+Pred_C],若此值小于20表示Pred_A、Pred_B、Pred_C的组合值在表1中存在,编码方式为2 Mode VLC,并且Table Number的值为查询第三预测模式表得到的值,否则为1ModeVLC。 
最终设计的码表如下: 
int IntraMode_TableNumberFlag3[18]= 
{20,20,4,17,20,20,20,18,20,20,19,10,20,20,20,20,13,16}。 
此外,值得一提的是,为了进一步提高解析效率,根据待解析的当前块的左边块A和上边块B的预测模式重新整理了表1,把左边块A、上边块B的预测模式一样的归为一类,如表2所示: 
Figure BDA00002632863700171
表2 
在完成第一预测模式表、第二预测模式表和第三预测模式表的设计之后,上述三张表存储起来备用,在需要解析当前块(如图2中的块a)的帧内预测模式时,直接查询这三张表就可以确定编码方式是2 Mode VLC或者1 Mode VLC。具体如步骤303至311所示: 
步骤303,查询第一预测模式表。 
步骤304,判断Pred_A和Pred_B的组合是否存在于表1中;若是,则执行步骤305;否则,执行步骤311。 
步骤305,判断Pred_A和Pred_B的组合是唯一存在于表1中,还是在表1中存在多种组合;若判定为唯一存在于表1中,则执行步骤306,若判定为在表1中存在多种组合,则执行步骤308。 
步骤306,查询第二预测模式表。 
步骤307,根据查询第二预测模式表得到的值,判断Pred_A、Pred_B和Pred_C的组合是否存在于表1中;若是,则执行步骤310;否则,执行步骤311。 
步骤308,查询第三预测模式表。 
步骤309,根据查询第三预测模式表得到的值,判断Pred_A、Pred_B和Pred_C的组合是否存在于表1中;若是,则执行步骤310;否则,执行步骤 311。 
步骤310,判定当前编码方式是2 Mode VLC。 
步骤311,判定当前编码方式是1 Mode VLC。 
以上述设计的IntraMode_TableNumberFlag1、IntraMode_TableNumberFlag2和IntraMode_TableNumberFlag3为例,其查询过程如下: 
以10*Pred_A+Pred_B+11为索引,查询IntraMode_TableNumberFlag1得到初步的值Number1。 
判断Number1是否等于20,如果相等,则判定当前编码方式是1 ModeVLC;否则进一步判断是<20,还是>20。 
如果Number1<20,则根据Number1,查询IntraMode_TableNumberFlag2得到最终的Table Number;如果Table Number=Number1+Pred_C,则判定当前编码方式是2 Mode VLC,否则判定当前编码方式是1 Mode VLC。 
如果Number1>20,则根据Number1-99+C,查询IntraMode_TableNumberFlag 3得到最终的Table Number;如果TableNumber<20,则判定当前编码方式是2 Mode VLC,否则判定当前编码方式是1Mode VLC。 
本实施方式的RealVideo9视频解码的帧内预测模式解析嵌入式软件设计实现方法与现有技术的区别主要表现在处理速度方面。现有技术在解析帧内预测模式时按照协议流程处理,需要大量的辅助判断来完成解码,比如在现有版本中解析一个宏块的帧内预测模式时最多需要320次判断,本实施方式仅需2次判断和3次查表(约等于3次判断),每个宏块最多节省了315次判断,极大的提升了解码效率。以D1(分辨率720x576)的码流为例,D1一帧有1620个宏块,假设一秒有23帧,则解码一秒的数据节省23x1620x315共 1000万次左右的判断,可见极大提升了解析效率。在相同的测试环境下分别测试了本实施方式的方案和现有测试方案,效率提升50%左右。此外值得说明的是,嵌入式终端对处理速度要求极高,而RealVideo9视频解码较复杂,其中的帧内预测模式模块占了大量的解析时间,因此需要快速有效的解码方案。本实施方式在现有技术的前提下解析效率提高了50%左右,可以很好的应用在RealVideo9视频解码的嵌入式设备中。 
本发明第三实施方式涉及一种帧内预测模式的解析方法。第三实施方式在第二实施方式基础上做了进一步改进,主要改进之处在于:在本发明第三实施方式中,还设计了2 Mode VLC查询码表,在判定当前编码方式是2 ModeVLC之后,通过查询预先设计的2 Mode VLC查询码表,得到当前4×4块的预测模式值,并通过减法和乘法计算位于当前4×4块右边的块的预测模式值,省去了现有的除9和对9求余的计算,进一步提高了解析效率。 
具体地说,预先设计2 Mode VLC查询码表,该2 Mode VLC查询码表较为简单,在解析2Mode VLC编码模式的时候可以省去除9的操作。在背景技术中介绍到当预测模式采用2 Mode VLC编码时,有一步的计算公式如下: 
Intra_mode_a=index/9 
Intra_mode_b=index%9 
在此会产生一个除9和对9求余的操作,设计2 Mode VLC查询码表Intra2Mode_Table可以省去此操作。当得到index时,可以以此为索引查表Intra2Mode_Table,就可以得到Intra_mode_a,则Intra_mode_b=index-Intra2Mode_Table[index]*9。 
设计的码表如下: 
int Intra2Mode_Table[81]={0,0,0,0,0,0,0,0,0, 
                           1,1,1,1,1,1,1,1,1, 
                           2,2,2,2,2,2,2,2,2, 
                           3,3,3,3,3,3,3,3,3, 
                           4,4,4,4,4,4,4,4,4, 
                           5,5,5,5,5,5,5,5,5, 
                           6,6,6,6,6,6,6,6,6, 
                           7,7,7,7,7,7,7,7,7, 
                           8,8,8,8,8,8,8,8,8}。 
如图3所示,在判定当前编码方式是2Mode VLC之后,根据TableNumber,查询标准协议中2Mode VLC的码表解析出索引index;此步骤与现有技术一致,在次不再赘述。接着,以index为索引,查询预先设计的2ModeVLC查询码表Intra2Mode_Table,得到当前4×4块的预测模式值。计算index与当前4×4块的预测模式值和9的乘积之差,得到当前4×4块右边的块的预测模式值。由此可见,省去了现有的除9和对9求余的计算。 
在判定当前编码方式是1 Mode VLC之后,按照协议中的1 Mode VLC标准协议码表解析出index,该index即为待解析的4x4块的预测模式值。 
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。 
本发明第四实施方式涉及一种帧内预测模式的解析系统,包含:第一预测模式表、第一查询模块、第一判断模块和编码方式确定模块; 
第一预测模式表是预先设计的,其中,第一预测模式表的索引与块A的预测模式值Pred_A和块B的预测模式值Pred_B相关,与第一预测模式表的 索引对应的值表示Pred_A和Pred_B的组合不存在于表1或者存在于表1;块A是待解析4×4块左边的块,块B是待解析4×4块上边的块; 
第一查询模块根据Pred_A和Pred_B,查询第一预测模式表,得到与Pred_A和Pred_B的组合对应的值,并输出至第一判断模块; 
第一判断模块根据查询第一预测模式表得到的值,判断Pred_A和Pred_B的组合是否存在于表1中; 
编码方式确定模块在第一判断模块的判定结果为Pred_A和Pred_B的组合不存在于表1中时,判定当前编码方式是1 Mode VLC。 
不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。 
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。 
本发明第五实施方式涉及一种帧内预测模式的解析系统。第五实施方式在第四实施方式基础上做了进一步改进,主要改进之处在于:在本发明第五实施方式中,还包含:第二预测模式表、第三预测模式表、第二查询模块、第三查询模块、第二判断模块和第三判断模块,如图4所示。 
第一预测模式表中在与索引对应的值表示Pred_A和Pred_B的组合存在于表1中时,还包含唯一存在或者存在多种组合两种情况;具体地说,第一预测模式表以Pred_A为十位,Pred_B为个位,并加上11得到第一索引;在Pred_A和Pred_B的组合不存在于表1中时,将第一门限值作为与第一索 引对应的值;其中,第一门限值大于表1中所有Table Number值;在Pred_A和Pred_B的组合存在于表1中,且组合唯一时,将表1中与Pred_A和Pred_B的组合对应的查表值Table Number作为与第一索引对应的值;在Pred_A和Pred_B的组合存在于表1中,且组合大于一种时,将第二预设值作为与第一索引对应的值;其中,第二预设值大于第一门限值;对应于不同的Pred_A和Pred_B的组合,第二预设值各不相同。 
第二预测模式表和第三预测模式表是预先设计的,其中,第二预测模式表的索引是查询第一预测模式表得到的值Number1,与第二预测模式表的索引对应的值是一个与表1中存在的Pred_A、Pred_B、Pred_C组合中Pred_C和Number1相关的值;第三预测模式表的索引与Number1和Pred_C的有关,与第三预测模式表的索引对应的值表示Pred_A、Pred_B、Pred_C的组合不存在于表1或者存在于表1;块C是待解析4×4块右上边的块。 
具体地说,第二预测模式表以Number1为第二索引;以Number1与块C的预测模式值之和作为与第二索引对应的码表值。 
第三预测模式表通过将Number1减去第二预设值,加上块C的预测模式值Pred_C,并加上1,得到的计算值作为第三索引;并通过以下方式获取与第三索引对应的码表值:在Pred_A、Pred_B和Pred_C的组合存在于表1中时,将表1中对应的查表值Table Number作为根据块C的预测模式值计算得到的第三索引对应的码表值;在Pred_A、Pred_B和Pred_C的组合不存在于表1中时,将第一门限值作为根据块C的预测模式值计算得到的第三索引对应的码表值。 
第一判断模块在判定Pred_A和Pred_B的组合存在于表1中时,进一步判断Pred_A和Pred_B的组合是唯一存在于表1中,还是在表1中存在多种组合; 
第二查询模块在第一判断模块判定唯一存在于表1中时,查询第二预测 模式表,得到与Pred_A和Pred_B的组合对应的值,并输出至第二判断模块; 
第二判断模块,根据查询第二预测模式表得到的值,判断Pred_A、Pred_B和Pred_C的组合是否存在于表1中; 
第三查询模块在第一判断模块判定在表1中存在多种组合时,查询第三预测模式表,得到与Pred_A、Pred_B和Pred_C的组合对应的值,并输出至第三判断模块; 
第三判断模块,根据查询第三预测模式表得到的值,判断Pred_A、Pred_B和Pred_C的组合是否存在于表1中; 
编码方式确定模块在第二判断模块和第三判断模块判定Pred_A、Pred_B和Pred_C的组合是否存在于表1中时,判定当前编码方式是2 Mode VLC;否则,判定当前编码方式是1 Mode VLC。 
具体地说,第一判断模块判断Number1是否等于第一门限值。 
第二查询模块在第一判断模块判定Number1小于第一门限值时,根据Number1,查询第二预测模式表,得到最终查表值Table Number。 
第二判断模块判断Table Number是否等于Pred_C与Number1之和。 
第三查询模块在第一判断模块判定Number1大于第一门限值时,根据Number1和Pred_C,查询第三预测模式表,得到最终查表值Table Number。 
第三判断模块判断Table Number是否小于第一门限值。 
编码方式确定模块在第一判断模块判定Number1等于第一门限值、第二判断模块判定Table Number不等于Pred_C与Number1之和、或者第三判断模块判定Table Number等于第一门限值时,判定当前编码方式是1 ModeVLC;在第二判断模块判定Table Number等于Pred_C与Number1之和、或者第三判断模块判定Table Number小于第一门限值时,判定当前编码方式是2 Mode VLC。 
此外,值得一提的是,还包含:标准表重排模块,用于将Pred_A和Pred_B的组合相同的组归为一类,重新排列表1。 
由于第二实施方式与本实施方式相互对应,因此本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,在第二实施方式中所能达到的技术效果在本实施方式中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。 
本发明第六实施方式涉及一种帧内预测模式的解析系统。第六实施方式在第五实施方式基础上做了进一步改进,主要改进之处在于:在本发明第六实施方式中,还包含:2 Mode VLC查询码表、第四查询模块、第五查询模块、右边块计算模块。 
其中,第四查询模块根据Table Number,查询标准协议中2 Mode VLC的码表解析出索引index; 
第五查询模块以index为索引,查询预先设计的2 Mode VLC查询码表Intra2Mode_Table,得到当前4×4块的预测模式值; 
右边块计算模块计算index与当前4×4块的预测模式值和9的乘积之差,得到当前4×4块右边的块的预测模式值。 
由于第三实施方式与本实施方式相互对应,因此本实施方式可与第三实施方式互相配合实施。第三实施方式中提到的相关技术细节在本实施方式中依然有效,在第三实施方式中所能达到的技术效果在本实施方式中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第三实施方式中。 
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。 

Claims (16)

1.一种帧内预测模式的解析方法,其特征在于,包含以下步骤:
预先设计第一预测模式表;其中,所述第一预测模式表的索引与块A的预测模式值Pred_A和块B的预测模式值Pred_B相关,与所述第一预测模式表的索引对应的值表示所述Pred_A和所述Pred_B的组合不存在于表第一查询表或者存在于第一查询表;所述块A是待解析4×4块左边的块,所述块B是待解析4×4块上边的块;所述第一查询表为标准协议中的ModeVLC帧内预测模式组合表;
在需解析当前块的帧内预测模式时,查询所述第一预测模式表,并判断所述Pred_A和所述Pred_B的组合是否存在于所述第一查询表中;
如果所述Pred_A和所述Pred_B的组合不存在于所述第一查询表中,则判定当前编码方式是1Mode VLC。
2.根据权利要求1所述的帧内预测模式的解析方法,其特征在于,在预先设计第一预测模式表的步骤中,还包含以下子步骤:
与所述索引对应的值表示所述Pred_A和所述Pred_B的组合存在于所述第一查询表中时,包含唯一存在或者存在多种组合;
在预先设计第一预测模式表之后,查询所述第一预测模式表之前,还包含以下步骤:
预先设计第二预测模式表和第三预测模式表;其中,所述第二预测模式表的索引是查询所述第一预测模式表得到的值Number1,与所述第二预测模式表的索引对应的值是一个与所述第一查询表中存在的Pred_A、Pred_B、Pred_C组合中Pred_C和所述Number1相关的值;所述第三预测模式表的索引与所述Number1和所述Pred_C的有关,与所述第三预测模式表的索引对应的值表示Pred_A、Pred_B、Pred_C的组合不存在于所述第一查询表或者存在于所述第一查询表;所述块Pred_C是待解析4×4块右上边的块C的预测模式值;
在判断所述Pred_A和所述Pred_B的组合是否存在于所述第一查询表中的步骤中,如果所述Pred_A和所述Pred_B的组合存在于所述第一查询表中,进一步判断所述Pred_A和所述Pred_B的组合是唯一存在于所述第一查询表中,还是在所述第一查询表中存在多种组合;
如果判定唯一存在于所述第一查询表中,则通过查询所述第二预测模式表,判断所述Pred_A、Pred_B和Pred_C的组合是否存在于所述第一查询表中,若是,则判定当前编码方式是2Mode VLC;否则,判定当前编码方式是1Mode VLC;
如果判定在所述第一查询表中存在多种组合,则通过查询所述第三预测模式表,判断所述Pred_A、Pred_B和Pred_C的组合是否存在于所述第一查询表中,若是,则判定当前编码方式是2Mode VLC;否则,判定当前编码方式是1Mode VLC。
3.根据权利要求2所述的帧内预测模式的解析方法,其特征在于,在预先设计第一预测模式表的步骤中,包含以下子步骤:
以所述Pred_A为十位,所述Pred_B为个位,并加上11得到第一索引;
如果所述Pred_A和所述Pred_B的组合不存在于所述第一查询表中,则将预设的第一门限值作为与所述第一索引对应的值;其中,所述第一门限值大于所述第一查询表中所有查表值Table Number;
如果所述Pred_A和所述Pred_B的组合存在于所述第一查询表中,且所述组合唯一,则将所述第一查询表中与所述块A和所述块B的预测模式值的组合对应的查表值Table Number作为与所述第一索引对应的值;
如果所述Pred_A和所述Pred_B的组合存在于所述第一查询表中,且所述组合大于一种,则将所述第二预设值作为与所述第一索引对应的值;其中,所述第二预设值大于所述第一门限值;对应于不同的Pred_A和Pred_B的组合,所述第二预设值各不相同。
4.根据权利要求2所述的帧内预测模式的解析方法,其特征在于,在预先设计第二预测模式表的步骤中,包含以下子步骤:
以所述Number1为第二索引;
将所述Number1与所述Pred_C的预测模式值之和作为与所述第二索引对应的值。
5.根据权利要求2所述的帧内预测模式的解析方法,其特征在于,在预先设计第三预测模式表的步骤中,包含以下子步骤:
将所述Number1减去所述第二预设值,加上所述Pred_C,并加上1,得到第三索引;
如果所述Pred_A、所述Pred_B和所述Pred_C的组合存在于所述第一查询表中,则将所述第一查询表中对应的查表值Table Number作为与所述第三索引对应的值;
如果所述Pred_A、所述Pred_B和所述Pred_C的组合不存在于所述第一查询表中,则将所述第一门限值作为与所述第三索引对应的值。
6.根据权利要求3至5任一项所述的帧内预测模式的解析方法,其特征在于,在判断所述Pred_A和所述Pred_B的组合是否存在于所述第一查询表中的步骤中,包含以下子步骤:
判断所述Number1是否等于所述第一门限值;
如果所述Number1等于所述第一门限值,则判定当前编码方式是1Mode VLC;
如果所述Number1小于所述第一门限值,则根据所述Number1,查询所述第二预测模式表,得到最终查表值Table Number;如果所述TableNumber等于所述Pred_C与所述Number1之和,则判定当前编码方式是2Mode VLC,否则判定当前编码方式是1Mode VLC;
如果所述Number1大于所述第一门限值,则根据所述Number1和所述Pred_C,查询所述第三预测模式表,得到最终查表值Table Number;如果所述Table Number小于所述第一门限值,则判定当前编码方式是2Mode VLC,否则判定当前编码方式是1Mode VLC。
7.根据权利要求6所述的帧内预测模式的解析方法,其特征在于,在查询预先设计的第一预测模式表的步骤之前,还包含以下步骤:
将所述Pred_A和所述Pred_B的组合相同的组归为一类,重新排列所述第一查询表。
8.根据权利要求6所述的帧内预测模式的解析方法,其特征在于,在判定当前编码方式是2Mode VLC之后,还包含以下步骤:
根据所述Table Number,查询标准协议中2Mode VLC的码表解析出索引index;
以所述index为索引,查询预先设计的2Mode VLC查询码表Intra2Mode_Table,得到当前4×4块的预测模式值;
计算所述index与当前4×4块的预测模式值和9的乘积之差,得到所述当前4×4块右边的块的预测模式值。
9.一种帧内预测模式的解析系统,其特征在于,包含:第一预测模式表、第一查询模块、第一判断模块和编码方式确定模块;
所述第一预测模式表是预先设计的,其中,所述第一预测模式表的索引与块A的预测模式值Pred_A和块B的预测模式值Pred_B相关,与所述第一预测模式表的索引对应的值表示所述Pred_A和所述Pred_B的组合不存在于所述第一查询表或者存在于所述第一查询表;所述块A是待解析4×4块左边的块,所述块B是待解析4×4块上边的块;
所述第一查询模块在需解析当前块的帧内预测模式时,根据所述Pred_A和所述Pred_B,查询所述第一预测模式表,得到与所述Pred_A和Pred_B的组合对应的值,并输出至所述第一判断模块;
所述第一判断模块根据查询所述第一预测模式表得到的值,判断所述Pred_A和所述Pred_B的组合是否存在于所述第一查询表中;
所述编码方式确定模块在所述第一判断模块的判定结果为所述Pred_A和所述Pred_B的组合不存在于所述第一查询表中时,判定当前编码方式是1Mode VLC。
10.根据权利要求9所述的帧内预测模式的解析系统,其特征在于,还包含:第二预测模式表、第三预测模式表、第二查询模块、第三查询模块、第二判断模块和第三判断模块;
所述第一预测模式表中在与所述索引对应的值表示所述Pred_A和所述Pred_B的组合存在于所述第一查询表中时,包含唯一存在或者存在多种组合;
所述第二预测模式表和所述第三预测模式表是预先设计的,其中,所述第二预测模式表的索引是查询所述第一预测模式表得到的值Number1,与所述第二预测模式表的索引对应的值是一个与所述第一查询表中存在的Pred_A、Pred_B、Pred_C组合中Pred_C和所述Number1相关的值;所述第三预测模式表的索引与所述Number1和所述Pred_C的有关,与所述第三预测模式表的索引对应的值表示Pred_A、Pred_B、Pred_C的组合不存在于所述第一查询表或者存在于所述第一查询表;所述块C是待解析4×4块右上边的块;
所述第一判断模块在判定所述Pred_A和所述Pred_B的组合存在于所述第一查询表中时,进一步判断所述Pred_A和所述Pred_B的组合是唯一存在于所述第一查询表中,还是在所述第一查询表中存在多种组合;
所述第二查询模块在所述第一判断模块判定唯一存在于所述第一查询表中时,查询所述第二预测模式表,得到与所述Pred_A和Pred_B的组合对应的值,并输出至所述第二判断模块;
所述第二判断模块,根据查询所述第二预测模式表得到的值,判断所述Pred_A、Pred_B和Pred_C的组合是否存在于所述第一查询表中;
所述第三查询模块在所述第一判断模块判定在所述第一查询表中存在多种组合时,查询所述第三预测模式表,得到与所述Pred_A、Pred_B和Pred_C的组合对应的值,并输出至所述第三判断模块;
所述第三判断模块,根据查询所述第三预测模式表得到的值,判断所述Pred_A、Pred_B和Pred_C的组合是否存在于所述第一查询表中;
所述编码方式确定模块在所述第二判断模块和所述第三判断模块判定所述Pred_A、Pred_B和Pred_C的组合是否存在于所述第一查询表中时,判定当前编码方式是2Mode VLC;否则,判定当前编码方式是1Mode VLC。
11.根据权利要求10所述的帧内预测模式的解析系统,其特征在于,所述第一预测模式表以所述Pred_A为十位,所述Pred_B为个位,并加上11得到第一索引;
在所述Pred_A和所述Pred_B的组合不存在于所述第一查询表中时,将所述第一门限值作为与所述第一索引对应的值;其中,所述第一门限值大于所述第一查询表中所有Table Number值;
在所述Pred_A和所述Pred_B的组合存在于所述第一查询表中,且所述组合唯一时,将所述第一查询表中与所述Pred_A和所述Pred_B的组合对应的查表值Table Number作为与所述第一索引对应的值;
在所述Pred_A和所述Pred_B的组合存在于所述第一查询表中,且所述组合大于一种时,将所述第二预设值作为与所述第一索引对应的值;其中,所述第二预设值大于所述第一门限值;对应于不同的Pred_A和Pred_B的组合,所述第二预设值各不相同。
12.根据权利要求10所述的帧内预测模式的解析系统,其特征在于,所述第二预测模式表以所述Number1为所述第二索引;以所述Number1与所述块C的预测模式值之和作为与所述第二索引对应的码表值。
13.根据权利要求10所述的帧内预测模式的解析系统,其特征在于,所述第三预测模式表通过将所述Number1减去所述第二预设值,加上所述块C的预测模式值Pred_C,并加上1,得到的计算值作为所述第三索引;并通过以下方式获取与所述第三索引对应的码表值:
在所述Pred_A、Pred_B和Pred_C的组合存在于所述第一查询表中时,将所述第一查询表中对应的查表值Table Number作为根据所述块C的预测模式值计算得到的所述第三索引对应的码表值;
在所述Pred_A、Pred_B和Pred_C的组合不存在于所述第一查询表中时,将所述第一门限值作为根据所述块C的预测模式值计算得到的所述第三索引对应的码表值。
14.根据权利要求11至13任一项所述的帧内预测模式的解析系统,其特征在于,所述第一判断模块判断所述Number1是否等于所述第一门限值;
所述第二查询模块在所述第一判断模块判定所述Number1小于所述第一门限值时,根据所述Number1,查询所述第二预测模式表,得到最终查表值Table Number;
所述第二判断模块判断所述Table Number是否等于所述Pred_C与所述Number1之和;
所述第三查询模块在所述第一判断模块判定所述Number1大于所述第一门限值时,根据所述Number1和所述Pred_C,查询所述第三预测模式表,得到最终查表值Table Number;
所述第三判断模块判断所述Table Number是否小于所述第一门限值;
所述编码方式确定模块在所述第一判断模块判定所述Number1等于所述第一门限值、所述第二判断模块判定所述Table Number不等于所述Pred_C与所述Number1之和、或者所述第三判断模块判定所述Table Number等于所述第一门限值时,判定当前编码方式是1Mode VLC;在所述第二判断模块判定所述Table Number等于所述Pred_C与所述Number1之和、或者所述第三判断模块判定所述Table Number小于所述第一门限值时,判定当前编码方式是2Mode VLC。
15.根据权利要求14所述的帧内预测模式的解析系统,其特征在于,还包含:标准表重排模块,用于将所述Pred_A和所述Pred_B的组合相同的组归为一类,重新排列所述第一查询表。
16.根据权利要求14所述的帧内预测模式的解析系统,其特征在于,还包含:2Mode VLC查询码表、第四查询模块、第五查询模块、右边块计算模块;
所述第四查询模块根据所述Table Number,查询标准协议中2ModeVLC的码表解析出索引index;
所述第五查询模块以所述index为索引,查询预先设计的2Mode VLC查询码表Intra2Mode_Table,得到当前4×4块的预测模式值;
所述右边块计算模块计算所述index与当前4×4块的预测模式值和9的乘积之差,得到所述当前4×4块右边的块的预测模式值。
CN201210563631.5A 2012-12-21 2012-12-21 帧内预测模式的解析方法及系统 Active CN103888774B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210563631.5A CN103888774B (zh) 2012-12-21 2012-12-21 帧内预测模式的解析方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210563631.5A CN103888774B (zh) 2012-12-21 2012-12-21 帧内预测模式的解析方法及系统

Publications (2)

Publication Number Publication Date
CN103888774A true CN103888774A (zh) 2014-06-25
CN103888774B CN103888774B (zh) 2017-03-08

Family

ID=50957464

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210563631.5A Active CN103888774B (zh) 2012-12-21 2012-12-21 帧内预测模式的解析方法及系统

Country Status (1)

Country Link
CN (1) CN103888774B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101330617A (zh) * 2008-07-31 2008-12-24 上海交通大学 基于模式映射的多标准帧内预测器的硬件实现方法及装置
CN101431671A (zh) * 2007-11-07 2009-05-13 财团法人工业技术研究院 选择预测模式的方法及编码器
WO2011031332A1 (en) * 2009-09-14 2011-03-17 Thomson Licensing Methods and apparatus for efficient video encoding and decoding of intra prediction mode
CN102665079A (zh) * 2012-05-08 2012-09-12 北方工业大学 用于hevc的自适应快速帧内预测模式决策

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101431671A (zh) * 2007-11-07 2009-05-13 财团法人工业技术研究院 选择预测模式的方法及编码器
CN101330617A (zh) * 2008-07-31 2008-12-24 上海交通大学 基于模式映射的多标准帧内预测器的硬件实现方法及装置
WO2011031332A1 (en) * 2009-09-14 2011-03-17 Thomson Licensing Methods and apparatus for efficient video encoding and decoding of intra prediction mode
CN102665079A (zh) * 2012-05-08 2012-09-12 北方工业大学 用于hevc的自适应快速帧内预测模式决策

Also Published As

Publication number Publication date
CN103888774B (zh) 2017-03-08

Similar Documents

Publication Publication Date Title
CN101164340B (zh) Cabac解码系统及方法
CN100547615C (zh) 表示时变图形模型的数据流的编码方案
CN105898325B (zh) 运动向量预测子候选项集合的推导方法与装置
CN101330617B (zh) 基于模式映射的多标准帧内预测器的硬件实现方法及装置
KR101118089B1 (ko) 가변장 복호화 장치 및 방법
CN107333140A (zh) 熵编码中的上下文初始化
CN101427583B (zh) 算术解码方法和设备
CN101926178A (zh) 基于时间复杂度和空间复杂度来确定编码模式的方法及装置
CN101668202A (zh) 帧内预测模式的选择方法和装置
Chen et al. A high-throughput fully hardwired CABAC encoder for QFHD H. 264/AVC main profile video
Kammoun et al. Design exploration of efficient implementation on SoC heterogeneous platform: HEVC intra prediction application
CN102148990B (zh) 一种运动矢量预测装置和方法
EP2901285A1 (en) A system and a method for executing sql basic operators on compressed data without decompression process
CN103078646A (zh) 字典查询压缩、解压缩方法及其装置
CN102547260B (zh) 基于上下文自适应的可变长编码的解码方法及系统
CN105025296A (zh) 一种高级算术编码器及其实现方法
CN106658012A (zh) 一种vp9解码器并行流水线任务划分方法
CN113630125A (zh) 数据压缩、编码解压缩方法、装置、电子设备及存储介质
CN110191339A (zh) 码率估计核心单元、码率估计装置及码率估计方法
CN103888774A (zh) 帧内预测模式的解析方法及系统
CN100551066C (zh) 编码器及自适应算术编码的实现方法及装置
CN110351560A (zh) 一种编码方法、系统及电子设备和存储介质
CN112218075B (zh) 候选列表的填充方法、电子设备、计算机可读存储介质
CN103581681B (zh) 一种视频解码装置及解码方法
CN102075762A (zh) 用于视频编码器的帧间预测电路及其实现方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20140625

Assignee: Shanghai Li Ke Semiconductor Technology Co., Ltd.

Assignor: Leadcore Technology Co., Ltd.

Contract record no.: 2018990000159

Denomination of invention: Parsing method and system of intra-frame prediction mode

Granted publication date: 20170308

License type: Common License

Record date: 20180615

EE01 Entry into force of recordation of patent licensing contract