一种视频解码的方法及装置的制造方法_3

文档序号:9380973阅读:来源:国知局
TU的处理方法与16xl6CTU的处理方法类似,在此不再赘述。
[0081]结合上面ildx和iFact计算公式可以看到,对于横向扫描模式Iidx和iFact计算依赖于I值,对于纵向扫描模式,Iidx和iFact值依赖于x值。依照本设计介绍的扫描顺序,对于横向扫描模式,同一个TU内同一条水平像素行y值固定的,那么一条水平像素行只用计算一次Iidx和iFact即可;而对于纵向扫描模式,同一个TU内同一条垂直像素行x值固定,那么预测一条垂直像素列也只用计算一次Iidx和iFact即可。硬件上Iidx和iFact的计算涉及到乘法器的使用,以上介绍的扫描顺序可以保证只需要一套乘法器计算出索引和参数的数值即可,并且每个TU内每行像素点的预测只需要一次Iidx和iFac计算,相对于传统的光栅扫描就相应节省了电路面积和功耗。特别是对于解码高清和超高清视频时,需要采用多套计算单元同时计算多个像素点预测值,如果纵向扫描顺序采用传统的光栅扫描顺序,就需要多套乘法器同时计算多个不同预测点的索引和参数数值,面积和功耗都会升闻。
[0082]较佳地,根据下列方式确定一个所述待预测像素集合:
[0083]当预测模式号大于等于18且小于等于34时,对待预测像素区域进行横向扫描,将待预测像素区域中处于同一行的待预测像素作为一个待预测像素集合;
[0084]当预测模式号大于I且小于18时,对待预测像素区域进行纵向扫描,将待预测像素区域中处于同一列的待预测像素作为一个待预测像素集合。
[0085]根据扫描模式确定将待预测像素区域中处于同一行或同一列的待预测像素作为一个集合之后,根据计算索引值Hdx和加权值iFact的计算公式可以确定出在当前划分的每个集合中每个待预测像素的索引值Hdx是相同的,每个待预测像素的加权值iFact也是相同的,这样在计算每个集合中待预测像素的索引值ildx和加权值iFact时就不必对每个待预测像素进行一一计算,只需确定出集合中任意一个待预测像素的索引值Hdx和加权值iFact,将该待预测像素的索引值ildx和加权值iFact作为该待预测像素所处集合中其他待预测像素的索引值Hdx和加权值iFact,这样就不必对每个集合中每个待预测像素的索引值ildx和加权值iFact进行计算,每个集合只需计算一次索引值ildx和加权值iFact,就可以确定出同一集合中所有待预测像素的索引值ildx和加权值iFact。这样就可以减少了计算索引值ildx和加权值iFact时的计算复杂度,提高了 HEVC的解码效率。
[0086]较佳地,所述根据确定的该待预测像素集合中的一个待预测像素的加权值,确定该待预测像素集合中其他待预测像素的加权值,包括:
[0087]将该集合中的一个待预测像素的加权值作为该集合中其他待预测像素的加权值。
[0088]在计算得到待预测区域中每个待预测像素的索引值ildx和加权值iFact之后,接下来就要对每个待预测像素的值进行预测。在预测之前要在帧内已有的重建像素中选择一些重建像素作为参考像素序列,当预测待预测像素的预测值时,从参考像素序列中选择和当前待预测点有关的参考像素进行预测。参考像素序列一般是待预测像素区域的边界像素,具体生成参考像素序列的步骤可以参考HEVC标准。
[0089]针对每个待预测区域,按照HEVC标准,将与待预测区域相邻的左下方、左边、左上方、上边以及右上方的重建像素作为参考像素序列,它们之间的关系如图6所示。在图6中,W代表待预测区域的宽度,H代表待预测区域的度高,601代表待预测区域,602代表左下方的相邻区域,603代表左边的相邻区域,604代表左上方的相邻区域,605代表上边的相邻区域,606代表右上方的相邻区域。
[0090]每个待预测像素在计算完预测值之后会把预测值输出到重建单元,重建单元同时还接收与待预测像素对应的残差值,图像重建单元按照HEVC标准中定义的算法进行图像重建。重建单元中重建区域的大小可以根据待预测像素区域的大小进行调整。重建单元的重建原理是将待预测像素的预测值与其对应的残差值求和,生成重建值。重建单元不仅会将重建值送到后续模块进行处理,同时还会把生成的重建值作为帧内预测的参考像素。
[0091]较佳地,所述针对一个待预测像素,根据该待预测像素的加权值,确定该待预测像素的预测值,包括:
[0092]针对一个待预测像素,从参考像素序列中确定该待预测像素对应的参考像素;
[0093]根据该参考像素与该待预测像素的加权值,确定该待预测像素的预测值。
[0094]按照HEVC的标准规定,当预测模式为Angular模式时,在横向扫描模式下,待预测像素预测值predSamples[x] [y]的计算公式如下:
[0095]predSamples[x][y]=
[0096]((32-1Fact)*ref[x+ildx+l]+iFact*ref[x+iIdx+2]+16)>>5
[0097]其中,X代表待预测像素的横坐标值,y代表待预测像素的纵坐标值,iFact代表待预测像素的加权值,Hdx代表待预测像素的索引值,ref [x+ildx+l]和ref [x+iIdx+2]代表待预测像素的参考像素。
[0098]在纵向扫描模式下,待预测像素预测值predSamples [X] [y]的计算公式如下:
[0099]predSamples[x][y]=
[0100]((32-1Fact)*ref[y+ildx+l]+iFact*ref[y+iIdx+2]+16)>>5
[0101]其中,X代表待预测像素的横坐标值,y代表待预测像素的纵坐标值,iFact代表待预测像素的加权值,Hdx代表待预测像素的索引值,ref [y+ildx+l]和ref [y+iIdx+2]代表待预测像素的参考像素。
[0102]较佳地,所述针对一个待预测像素,从参考像素序列中确定该待预测像素对应的参考像素,包括:
[0103]针对一个待预测像素,判断该待预测像素是否是所述待预测像素集合中第一个待预测像素,如果是,则根据该待预测像素的索引值和坐标值确定与该待预测像素对应的参考像素;
[0104]否则,根据之前已确定参考像素的待预测像素对应的参考像素在参考像素序列中的位置,确定该待预测像素对应的参考像素。
[0105]在一个集合中,ildx和iFact值是保持不变的,那么从上公式可以看出,在对一个集合中的待预测像素进行预测时,待预测像素的预测值只和坐标值有关,具体的在横向扫描模式下预测值仅依赖于X值的变化,在纵向扫描模式下预测值计算仅依赖于I值的变化。根据不同的X或y值,在参考像素序列ref.内选择相应的参考像素。例如纵向扫描模式下,对于第一列的第O个待预测像素的参考像素为ref[iIdX+l]和ref[iIdX+2],第I个待预测像素的参考像素为ref[iIdx+2]和ref[iIdx+3],第2个待预测像素的参考像素为ref [iIdx+3]和ref [iIdx+4],第3个待预测像素的参考像素为ref [iIdx+4]和ref[iIdX+5],其他待预测像素的参考像素的选择以此类推。如果每次同时预测四个待预测像素,确定第一个待预测像素的参考像素之后,可以使用移位器直接对参考像素序列ref内各点位置移动相应次数就可以获得需要的参考像素。
[0106]由于此时是通过移位来实现从参考像素序列中选取参考像素,节省了计算参考像素序列号的步骤,能够实现对参考像素的快速定位,特别是在同时预测多个待预测像素时,可以很好的提高参考像素的选取效率。
[0107]较佳地,所述根据之前已确定参考像素的待预测像素对应的参考像素在参考像素序列中的位置,确定该待预测像素对应的参考像素,包括:
[0108]针对一个待预测像素,根据该待预测像素与已确定参考像素的待预测像素的位置的差值,将已确定参考像素的待预测像素对应的参考像素在参考像素序列中位移相同的所述差值后,将得到的参考像素作为该待预测像素的参考像素。
[0109]待预测像素对应的残差值存储在内部残差存储区域中,待预测像素区域中每一行的待预测像素对应的残差值存储在同一残差存储区域中。每次需要的存储区域的数量和每次并行预测的待预测像素的数量相同。例如每次并行预测4个待预测像素,待预测区域的大小为8X8,那么此时就需要开辟4个残差存储区域,分别称为A、B、C、D。此时将待预测区域的第一行所有待预测像素对应的残差值存入A中,第二行所有待预测像素对应的残差值存入B中,第三
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1