CN102025996A - 多预测模式复用的h.264帧内处理单元 - Google Patents
多预测模式复用的h.264帧内处理单元 Download PDFInfo
- Publication number
- CN102025996A CN102025996A CN2010105957571A CN201010595757A CN102025996A CN 102025996 A CN102025996 A CN 102025996A CN 2010105957571 A CN2010105957571 A CN 2010105957571A CN 201010595757 A CN201010595757 A CN 201010595757A CN 102025996 A CN102025996 A CN 102025996A
- Authority
- CN
- China
- Prior art keywords
- value
- prediction
- pixel
- predictive mode
- block
- 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
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种多预测模式复用的帧内预测处理单元,包括:帧内预测模式解码模块,用以根据从原始码流中解析出来的数据,对帧内预测时各个宏块及其子块的预测模式的解码;帧内像素值预测模块,包括平板预测时所用到的种子计算单元和预测值计算单元,用以对当前块的预测值进行计算,当前块包括4×4和16×16的亮度块以及8×8的色度块,根据帧内预测模式解码模块得到的预测模式值,计算一个宏块在相应的预测模式下24个4×4块的预测值,或者1个16×16的亮度块加一个8×8的色度块的预测值,将各种预测模式下的预测公式进行统一和计算。本发明能减少芯片面积、降低成本。
Description
技术领域
本发明属于视频解码器的集成电路设计领域,涉及一种适用于多种预测模式复用的、快速的H.264解码器帧内处理单元。
背景技术
新一代视频编码标准H.264/AVC凭借其良好的网络适应性,广泛应用于交互和非交互应用环境。它的另一个显著优点就是压缩效率高,使得H.264/AVC标准自发布以来就受到很大关注。H.264解码器包括很多处理单元,如图1所示,包括码流解析单元(BP)、反量化反变换(IQIT)单元、帧间处理单元(MC)、帧内处理单元(SC)、滤波处理单元(DF)等,其中帧内预测处理单元是必不可少的一个部分。使用帧内预测可以减少图像的空间冗余度,提高编解码的效率。在H.264标准中,帧内像素值预测是利用当前块的左方和上方已经被解码的相邻像素值作为参考像素,对当前块内部的各像素进行预测的过程。
在视频编解码的硬件设计中,被处理的图像单位元素一般是16×16像素的宏块及其子块。一个宏块可分为16×8,8×16,8×8的子块,8×8的子块又可分为8×4,4×8,4×4的子块。在H.264的帧内预测当中,仅包含16×16,8×8和4×4的块。
对于4×4的亮度块,帧内预测有9种预测模式,它们的编号及名称分别是:模式0,垂直预测;模式1,水平预测;模式2,直流预测;模式3,下左对角线预测;模式4,下右对角线预测;模式5,右垂直预测;模式6,下水平预测;模式7,左垂直预测;模式8,上水平预测。各个预测的方向如图2所示。
对于16×16的亮度块,帧内预测有4种预测模式,它们分别是:模式9,16×16_垂直预测;模式10,16×16_水平预测;模式11,16×16_直流预测;模式12,16×16_平板预测。
对于8×8的色度块,帧内预测也有4中预测模式,它们分别是:模式13,8×8_直流预测;模式14,8×8_水平预测;模式15,8×8_垂直预测;模式16,8×8_平板预测。
帧内预测时,条带(slice)类型和宏块类型决定了当前宏块是否为帧内类型的宏块。若为帧内预测,此时预测模式的获得与当前块C的上边块A以及左边块B的预测模式有关。当前块C和上边块A以及左边块B的位置如图3A所示。对于每个4×4的亮度块,从码流中解析得到一个预测受限标志(flag),若此标志为1,那么不使用建议的预测模式值(rem_mode),当前块C的预测模式值为块A和块B预测模式的较小值(MIN);当标志为0,并且建议的预测值比MIN还小,则块C的预测模式值为建议的预测模式值(rem_mode);当标志为0,并且建议的预测值不比MIN小,则块C的预测模式值为建议的预测模式值加1(rem_mode+1)。对于16×16的亮度块和8×8的色度块,当前块的预测模式都可以从码流中直接解析获得。
各个预测模式下,帧内像素值的预测都有其各自的计算方式。为了方便描述,图3B给出了平面坐标系的定义。其中每个方格表示了一个像素点,灰色的方格表示当前块的预测像素点,白色的方格表示与当前块相邻的参考像素点,水平向右为x轴正方向,竖直向下为y轴的正方向,x轴和y轴的起点坐标为-1,步长都为1。这样,参考像素的位置和当前预测像素的位置就可以由坐标[×,y]唯一确定。下面以predN×NL(C)[x,y]来表示当前N×N块中坐标为[x,y]处的像素预测值,列出其计算公式。其中N为4,16,8中的一个,L表示亮度Luma,C表示色度Chroma,p[x,y]表示当前块左方、上方以及左上的像素点。
模式0垂直预测:pred4×4L[x,y]=p[x,-1],x=0,1,2,3,y=0,1,2,3
模式1水平预测:pred4×4L[x,y]=p[-1,y],x=0,1,2,3,y=0,1,2,3
模式2直流预测:(x=0,1,2,3,y=0,1,2,3)
当参考像素p[0,-1]~p[3,-1]和p[-1,0]~p[-1,3]都存在时
pred4×4L[x,y]=(p[0,-1]+p[1,-1]+p[2,-1]+p[3,-1]+p[-1,0]+p[-1,1]+p[-1,2]+p[-1,3]+4)/8;
当只有参考像素p[0,-1]~p[3,-1]存在时,
pred4×4L[x,y]=(p[0,-1]+p[1,-1]+p[2,-1]+p[3,-1]+2)/4;
当只有参考像素p[-1,0]~p[-1,3]存在时,
pred4×4L[x,y]=(p[-1,0]+p[-1,1]+p[-1,2]+p[-1,3]+2)/4;
当参考像素p[0,-1]~p[3,-1]和p[-1,0]~p[-1,3]都不存在时,
pred4×4L[x,y]=128.
模式3:下左对角线预测
pred4×4L[x,y]=(p[6,-1]+3×p[7,-1]+2)/4,x=3,y=3
pred4×4L[x,y]=(p[x+y,-1]+2×p[x+y+1,-1]+p[x+y+2,-1]+2)/4,x=其他值,y=其他值
模式4:下右对角线预测
pred4×4L[x,y]=(p[x-y-2,-1]+2×p[x-y-1,-1]+p[x-y,-1]+2)/4,x>y
pred4×4L[x,y]=(p[-1,y-x-2]+2×p[-1,y-x-1]+p[-1,y-x]+2)/4,x<y
pred4×4L[x,y]=(p[0,-1]+2×p[-1,-1]+p[-1,0]+2)/4,x=其他值,y=其他值
模式5:右垂直预测
pred4×4L[x,y]=(p[x-(y/2)-1,-1]+p[x-(y/2),-1]+1)/2,2×x-y=0,2,4,6
pred4×4L[x,y]=(p[x-(y/2)-2,-1]+2×p[x-(y/2)-1,-1]+p[x-(y/2),-1]+2)/4,2×x-y=1,3,5
pred4×4L[x,y]=(p[-1,0]+2×p[-1,-1]+p[0,-1]+2)/4,2×x-y=-1
pred4×4L[x,y]=(p[-1,y-1]+2×p[-1,y-2]+p[-1,y-3]+2)/4,2×x-y=其他值
模式6:下水平预测
pred4×4L[x,y]=(p[-1,y-(x/2)-1]+p[-1,y-(x/2)]+1)/2,2×y-x=0,2,4,6
pred4×4L[x,y]=(p[-1,y-(x/2)-2]+2×p[-1,y-(x/2)-1]+p[-1,y-(x/2)]+2)/4,2×x-y=1,3,5
pred4×4L[x,y]=(p[-1,0]+2×p[-1,-1]+p[0,-1]+2)/4,2×x-y=-1
pred4×4L[x,y]=(p[x-1,-1]+2×p[x-2,-1]+p[x-3,-1]+2)/4,2×x-y=其他值
模式7:左垂直预测
pred4×4L[x,y]=(p[x+(y/2),-1]+p[x+(y/2)+1,-1]+1)/2,y=0,2
pred4×4L[x,y]=(p[x+(y/2),-1]+2×p[x+(y/2)+1,-1]+p[x+(y/2)+2,-1]+2)/4,y=1,3
模式8:上水平预测
pred4×4L[x,y]=(p[-1,y+(x/2)]+p[-1,y+(x/2)+1]+1)/2,x+2×y=0,2,4
pred4×4L[x,y]=(p[-1,y+(x/2)]+2×p[-1,y+(x/2)+1]+p[-1,y+(x/2)+2]+2)/4,x+2×y=1,3
pred4×4L[x,y]=(p[-1,2]+3×p[-1,3]+2)/4,x+2×y=5
pred4×4L[x,y]=p[-1,3],x+2×y=其他值
模式9,16×16_垂直预测:pred16×16L[x,y]=p[x,-1],x=0...15,y=0...15
模式10,16×16_水平预测:pred16×16L[x,y]=p[-1,y],x=0...15,y=0...15
模式11,16×16_直流预测:(x=0...15,y=0...15)
当参考像素p[0,-1]~p[15,-1]和p[-1,0]~p[-1,15]都存在时,
pred16×16L[x,y]=(p[0,-1]+...+p[15,-1]+p[-1,0]+...+p[-1,15]+16)/32;
当只有参考像素p[0,-1]~p[15,-1]存在时,
pred16×16L[x,y]=(p[0,-1]+...+p[15,-1]+8)/16;
当只有参考像素p[-1,0]~p[-1,15]存在时,
pred16×16L[x,y]=(p[-1,0]+...+p[-1,15]+8)/16;
当参考像素p[0,-1]~p[15,-1]和p[-1,0]~p[-1,15]都不存在时,
pred16×16L[x,y]=128.
模式12:16×16_平板预测
pred16×16L[x,y]=Clip1((a+b×(x-7)+c×(y-7)+16)/32),x=0...15,y=0...15(公式1)
其中a=16×(p[-1,15]+p[15,-1]),b=(5×H+32)/64,c=(5×V+32)/64......(公式2)
模式13,8×8_直流预测:分成四个4×4区域进行预测
(1)x=0~3,y=0~3的区域
当参考像素p[0,-1]~p[3,-1]和p[-1,0]~p[-1,3]都存在时,
pred8×8C[x,y]=(p[0,-1]+...+p[3,-1]+p[-1,0]+...+p[-1,3]+4)/8;
当只有参考像素p[0,-1]~p[3,-1]存在时,
pred8×8C[x,y]=(p[0,-1]+...+p[3,-1]+2)/4;
当只有参考像素p[-1,0]~p[-1,3]存在时,
pred8×8C[x,y]=(p[-1,0]+...+p[-1,3]+2)/4;
当参考像素p[0,-1]~p[3,-1]和p[-1,0]~p[-1,3]都不存在时,
pred8×8C[x,y]=128.
(2)x=4~7,y=0~3的区域
当参考像素p[4,-1]~p[7,-1]和p[-1,0]~p[-1,3]都存在时,
pred8×8C[x,y]=(p[4,-1]+...+p[7,-1]+p[-1,0]+...+p[-1,3]+4)/8;
当只有参考像素p[4,-1]~p[7,-1]存在时,
pred8×8C[x,y]=(p[4,-1]+...+p[7,-1]+2)/4;
当只有参考像素p[-1,0]~p[-1,3]存在时,
pred8×8C[x,y]=(p[-1,0]+...+p[-1,3]+2)/4;
当参考像素p[4,-1]~p[7,-1]和p[-1,0]~p[-1,3]都不存在时,
pred8×8C[x,y]=128.
(3)x=0~3,y=4~7的区域
当参考像素p[0,-1]~p[3,-1]和p[-1,4]~p[-1,7]都存在时,
pred8×8C[x,y]=(p[0,-1]+...+p[3,-1]+p[-1,4]+...+p[-1,7]+4)/8;
当只有参考像素p[0,-1]~p[3,-1]存在时,
pred8×8C[x,y]=(p[0,-1]+...+p[3,-1]+2)/4;
当只有参考像素p[-1,4]~p[-1,7]存在时,
pred8×8C[x,y]=(p[-1,4]+...+p[-1,7]+2)/4;
当参考像素p[0,-1]~p[3,-1]和p[-1,4]~p[-1,7]都不存在时,
pred8×8C[x,y]=128.
(4)x=4~7,y=4~7的区域
当参考像素p[4,-1]~p[7,-1]和p[-1,4]~p[-1,7]都存在时,
pred8x8C[x,y]=(p[4,-1]+...+p[7,-1]+p[-1,4]+...+p[-1,7]+4)/8;
当只有参考像素p[4,-1]~p[7,-1]存在时,
pred8×8C[x,y]=(p[4,-1]+...+p[7,-1]+2)/4;
当只有参考像素p[-1,4]~p[-1,7]存在时,
pred8×8C[x,y]=(p[-1,4]+...+p[-1,7]+2)/4;
当参考像素p[4,-1]~p[7,-1]和p[-1,4]~p[-1,7]都不存在时,
pred8×8C[x,y]=128.
模式14,8×8_水平预测:pred8×8C[x,y]=p[-1,y],x=0...7,y=0...7
模式15,8×8_垂直预测:pred8×8C[x,y]=p[x,-1],x=0...7,y=0...7
模式16:8×8_平板预测
pred8×8C[x,y]=Clip1((a+b×(x-3)+c×(y-3)+16)/32),x=0...7,y=0...7......(公式6)
其中a=16×(p[-1,7]+p[7,-1]),b=(17×H+16)/32,c=(17×V+16)/32......(公式7)
虽然在不同预测模式下,帧内处理的计算单元都是利用当前块的可用相邻像素来处理,但是每种模式所选择的预测方向、参考像素个数、参考像素值都不尽相同;而且每个块内的各个像素的预测的计算方式也不一样。这些导致了帧内处理单元设计上有很强的复杂性,同时也有很大的多样性和灵活性,但是一般的设计都没有能够给出一个统一的、可复用的处理单元。如果给这17种预测模式分别设计各自对应的一个逻辑电路加入到帧内处理单元中,那么设计的电路单元控制逻辑会稍微简单一点,但是该单元对应的面积将会很大,这会使得整个解码芯片的面积增大,成本增加。
发明内容
为了克服已有帧内处理单元的各模式分别处理导致芯片面积大、成本高的不足,本发明提供一种减少芯片面积、降低成本的多预测模式复用的H.264帧内处理单元。
本发明解决其技术问题所采用的技术方案是:
一种多预测模式复用的帧内预测处理单元,所述帧内预测处理单元包括:
帧内预测模式解码模块,用以根据从原始码流中解析出来的数据,对帧内预测时各个宏块及其子块的预测模式的解码:对于4×4块,根据码流元素的预测受限标志确定是否采用建议的预测模式,若此标志为1,那么不使用建议的预测模式值,当前块取左边块和上边块的较小的预测模式值MIN,若标志为0,并且建议的预测值比MIN还小,则当前块取建议的预测模式值;否则,当前块的预测模式值取建议的预测模式值加1;对于16×16的亮度块和8×8的色度块,当前块的预测模式码流中直接解析获得;
帧内像素值预测模块,包括平板预测时所用到的种子计算单元和预测值计算单元,用以对当前块的预测值进行计算:当前块包括4×4和16×16的亮度块以及8×8的色度块,根据帧内预测模式解码模块得到的预测模式值,计算一个宏块在相应的预测模式下24个4×4块的预测值,或者1个16×16的亮度块加一个8×8的色度块的预测值;将各种预测模式下的预测公式进行统一和计算,用公式10来表示:
x=(in0+in1+in2<<IsShift+in3+round_value[4:0])/2shift_len (公式10)
其中,x表示当前像素值的预测值,in0~in3,IsShift,round_value,shift_len是统一的输入,其值随预测模式的不同而不同。
作为优选的一种方案:对于4×4的亮度块,解码之后的预测模式值保存在预测模式缓冲器里面,当有宏块对存在的时候,宏块对中顶宏块的各个4×4子块、底宏块的各个4×4子块的预测模式都被保存;宏块对是由编码时按照16×32编码成的两个宏块组成的对,对于16×16的亮度块,解码之后的预测模式值也保存在所述预测模式缓冲器中;而对于8×8的色度块来讲,预测模式值保存在两个寄存器中,一个保存宏块对中顶宏块的色度预测模式,另一个保存宏块对中底宏块的色度预测模式。
进一步,在条带层面的流水是基于16×16像素的宏块之间的流水,分为码流解析级别、像素重建级别和去边界化三级级别,帧内预测模式解码模块工作在码流解析级别,帧内像素值预测模块工作在像素重建级别。
再进一步,在条带层面的流水是基于16×16像素的宏块之间的流水,分为码流解析级别、像素重建级别和去边界化三级级别,帧内预测模式解码模块工作在码流解析级别,帧内像素值预测模块工作在像素重建级别,所述缓冲器和寄存器中的预测模式值将在像素重建级别被所述帧内像素值预测模块所使用。
如果该计算单元被旁路,则x=in0;如果在16×16和8×8块的平板预测模式下,输出范围需要限定,即x在0~255之间,小于0的时候x取0,大于255的时候x取255,在这之间则取原值。此时,完整的公式为:
X’=bypass?in0:{IsClip?Chip1(x):x} (公式11)
其中,x是公式10中左边的值,Clip1函数是公式5所示的函数,
对于4×4的亮度块,帧内预测从码流解析级开始,帧内预测模式解码模块在码流解析级完成当前宏块的16个4×4块的亮度和色度预测模式的解码,同时帧内像素值预测模块中的种子计算单元完成对宏块的亮度相邻参考像素和预测模式的加载,接着帧内像素值预测模块中的预测值计算单元子模块在像素重建级用四个并行的计算单元将4×4块的各列像素值预测出来。每个时钟周期内完成一列像素值的预测,4个时钟周期后该块的所有帧内预测值被解出,接着进行下一个4×4块的预测值计算,直到该宏块中各个像素的预测值被解码完毕。
对于16×16的亮度块,帧内预测也从码流解析级开始,帧内预测模式解码模块在码流解析级可以根据从码流中解码得到的宏块类型元素得出该宏块的预测模式,同时帧内像素值预测模块中的种子计算单元完成对宏块亮度的相邻参考像素和预测模式的加载,若是平板预测模式,那么该单元还会计算得到相应的种子,这个种子在亮度值预测时为计算单元子模块所用,作为各个计算单元的输入,计算单元将在每个周期内输出4个像素的亮度预测值,直到该宏块中各个像素的亮度预测值被解码完毕。
对于8×8的色度块,帧内预测也从码流解析级开始,帧内预测模式解码模块在码流解析级直接根据码流中相应的元素得到该块的预测模式,同时帧内像素值预测模块中的种子计算单元完成对宏块色度的相邻参考像素和预测模式的加载,若是平板预测模式,那么该单元还会计算得到相应的种子,这个种子在色度值预测时为计算单元子模块所用,作为各个计算单元的输入,计算单元将在每个周期内输出4个像素的色度预测值,直到该宏块中各个像素的色度预测值被解码完毕。
本发明的有益效果主要表现在:利用不同帧内预测模式下运算逻辑的相同部分,让不同的预测模式复用同一个运算单元,使得整个H.264帧内处理单元的面积很小。同时,在架构体系实现的时候,在宏块之间采用了流水设计,使得解码速度大幅提高。
附图说明
图1是H.264标准解码器的框架图;
图2是H.264帧内4×4块各种预测模式的方向;
图3A是H.264当前宏块和相邻宏块的位置关系图;
图3B是计算当前宏块各像素点和相邻像素点位置时所用的坐标系;
图4是本发明提出的帧内处理单元框架图;
图5是H.264宏块对、顶宏块、底宏块的关系图;
图6A是4×4亮度块的预测模式及对应模式下的计算逻辑;
图6B是16×16亮度块的预测模式及对应模式下的计算逻辑;
图6C是8×8色度块的预测模式及对应模式下的计算逻辑;
图7是帧内像素值预测模块中像素值计算单元PE的硬件结构;
图8是条带层面宏块之间的流水示意图;
图9是一个宏块内4×4块(block)的排列顺序。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图9,一种多预测模式复用的帧内预测处理单元,所有的预测模式复用同样处理单元。在不同预测模式下,可复用的帧内处理单元框架如图4所示,该单元包含了两个子模块:帧内预测模式解码模块和帧内像素值预测模块。
帧内预测模式解码模块工作在码流解析级(BP级),它根据从原始码流中解析出来的数据,对帧内预测时各个宏块及其子块的预测模式的解码。对于4×4块,该模块根据码流元素的预测受限标志确定是否采用建议的预测模式,若此标志为1,那么不使用建议的预测模式值,当前块取左边块和上边块的较小的预测模式值MIN。若标志为0,并且建议的预测值比MIN还小,则当前块取建议的预测模式值;否则,当前块的预测模式值取建议的预测模式值加1。对于16×16的亮度块和8×8的色度块,当前块的预测模式都可以从码流中直接解析获得。
对于4×4的亮度块,解码之后的预测模式值保存在图4所示的预测模式缓冲器(buffer)里面,这个缓冲器保存了宏块中各个4×4子块的预测模式。当有宏块对存在的时候,宏块对中顶宏块的各个4×4子块、底宏块的各个4×4子块的预测模式都被保存。宏块对是由编码时按照16×32编码成的两个宏块组成的对,如图5所示。对于16×16的亮度块,解码之后的预测模式值也保存在这个缓冲器中,即复用此缓冲器,但是此时一个宏块只需要保存一个值,如图4所示。而对于8×8的色度块来讲,预测模式值保存在两个寄存器中,一个保存宏块对中顶宏块的色度预测模式,另一个保存宏块对中底宏块的色度预测模式。这些缓冲器和寄存器中的预测模式值都将在像素重建级(REC级)被帧内像素值预测模块所使用。
帧内像素值预测模块主要工作在像素重建级(REC级),包括了平板预测时所用到的种子计算单元和预测值计算单元。该模块负责对当前块的预测值进行计算,当前块包括4×4和16×16的亮度块以及8×8的色度块。该模块根据帧内预测模式解码模块得到的预测模式值,计算一个宏块在相应的预测模式下24个4×4块(16个亮度块和8个色度块)的预测值,或者1个16×16的亮度块加一个8×8的色度块的预测值。
分析H.264标准下帧内预测的17种预测模式,对于4×4、16×16的亮度块以及8×8的色度块的各个像素点在不同预测模式下整理的计算公式如图6A、6B、6C所示。其中,图6A显示的是4×4块9种预测模式下的各个像素点预测值计算式,图6B显示的是16×16块4种预测模式下的各个像素点的预测值计算式,图6C显示的是8×8块4种预测模式下的各个像素点的预测值计算式。由于16×16、8×8块的像素点比较多,因此在图6B、6C中没有详细列举各个像素点的预测值计算式。通过分析和对比可以发现,17种不同预测模式的预测公式之间有很多子表达式是相同的,而且同一个4×4大小块的16个像素点的同一个预测模式的预测公式之间也有很多相同的表达式,本发明利用这些相同算式去除计算冗余,提出了一种各种预测模式下可复用的计算单元PE。
计算单元PE的架构如图7所示,它的输入输出在不同的预测模式下是可以完全复用的,只是在不同的预测模式下,因输入值的不同而得到不同的输出值。从以上predN×NL(C)[x,y]的计算公式可以发现,在不考虑计算单元被旁路(bypass=1)和限定输出范围(IsClip=1)的情况下,它们有都可以用下面的公式10来表达:
x=(in0+in1+in2<<IsShift+in3+round_value[4:0])/2shift_len (公式10)
其中,x表示当前需像素的预测值,in0~in3,IsShift,round_value,shift_len是统一的输入,其值随预测模式的不同而不同。例如,在图6A中预测模式4下,计算b像素预测值的时候,in0=M,in1=B,in2=A,in3=0,round_value=2,IsShift=1,shift_len=2。如果该计算单元被旁路,则x=in0;如果在16×16和8×8块的平板预测模式下,输出范围需要限定,即x在0~255之间,小于0的时候×取0,大于255的时候x取255,在这之间则取原值。此时,完整的公式为:
X’=bypass?in0:{IsClip?Chip1(x):x} (公式11)
其中的Clip1函数是公式5所示的函数,x是公式10中左边的值。
从图6A中可以看到,在4×4的预测模式0到预测模式8时,各个像素点的预测值计算表达式均满足公式10,因此,4×4块的各种预测模式均能复用上述计算单元PE。而从图6B、6C中可以看出,在16×16和8×8块的平板预测模式(模式12和16)下,其计算复杂度比其他的预测模式高的多。此时公式10中的in0~in3是由公式(2)(6)中的b、c得到的,而在获得b、c的之前需要计算H、V的值。这样复杂的计算在系统时钟比较快的情况下不能再一个时钟周期之内完成,而其他的预测模式下的计算均可以快速完成,因此帧内像素值预测模块为平板预测模式设计了一个图4中显示的平板种子计算子模块Pre_computation。该子模块用来计算上述的H、V、b、c的值。它工作在预测值计算单元PE之前,因此可以保证在PE工作的时候,输入都是正确的,即16×16和8×8块的各种预测模式也能复用计算单元PE。由于平板种子计算单元Pre_computation和预测值计算单元PE的设计,使得整个帧内像素值预测模块和整个H.264帧内处理单元能够在各种预测模式下复用。
同时,为了使解码速度加快,本发明采用了流水设计。在条带(Slice)层面的流水是基于16×16像素的宏块之间的流水,分为码流解析(BP)、像素重建(REC)和去边界化(DF)三级,如图8所示。这三级流水是为整个H.264解码器而设计的,本发明提出的多预测模式复用的H.264帧内处理单元只工作在码流解析级和像素重建级。其中,帧内预测模式解码模块工作在码流解析级,帧内像素值预测模块中的平板种子计算单元Pre_computation工作在码流解析级而4个并行的预测值计算单元PE0~PE3工作在像素重建级。流水的编排和计算单元PE的并行使得多预测模式复用的H.264帧内处理单元的处理速度加快,同时也使得改单元能够和整个解码器的其他的处理单元协调工作。
在实现的过程中,设置三个存储器(RAM):一个用来存储当前宏块的上面相邻像素的预测模式,记为ram_up_mode;一个用来存储当前宏块的上面相邻像素,记为ram_up_pixel;一个用来存储当前宏块的左边相邻像素,记为ram_left_pixel。在片上,设置了保存从这三个RAM中读回来的数据的寄存器REG。设置一个缓冲器(buffer),保存当前宏块左边预测模式的buffer_left_mode。
整个可复用的处理单元如图4所示,它包括两个部分,帧内预测模式解码模块和帧内像素值预测模块。帧内像素值预测模块又包含了平板种子计算单元Pre_computation和像素值计算单元PE。对于不同模式下的预测,为每个不同的计算公式设计的可复用计算单元PE如图7所示,它实现了公式11所表示的功能。在不同的预测模式下,只要输入相应的输入值,就可以得到对应的输出,而不必为不同的预测模式运用不同的计算单元。
下面结合附图说明本发明提出的多预测模式复用的H.264帧内处理单元的工作流程:
步骤1:在码流解析级,将RAM中保存的当前块上边和左边的相邻像素值(图6A中的A~L和图6B、6C中的H-1~H15、V0~V15)以及上边的预测模式值读入并保存在对应的寄存器REG;
步骤2:根据REG和buffer_left_mode中的值,若是16×16或8×8块,直接得到整个块的预测模式值,并且根据公式2、3、4或公式7、8、9计算得到H、V、a、b、c和seed16=a-7b-8c或seed8=a-3b-4c的值,然后进入步骤5;若是4×4块,计算得到图9中block0的预测模式值;
步骤3:更新buffer_left_mode中的值和REG中的值,并根据更新之后的值,计算得到图9中下一个4×4的block块的预测模式值;
步骤4:重复步骤3和,直到16个4×4块的预测模式值全都得到并保存;
步骤5:进入像素重建级,根据前面得到的预测模式,先进行亮度块的预测值计算:
(1)若是4×4的亮度块,则Isclip为0,按照图6A所示的表达式计算,给公式10、11赋如下的输入值:
模式0:垂直预测
in1=0,in2=0,in3=0,IsShift=0;shift_len=0;bypass=1;round_value=0;IsStore=0(见图7)
计算a,e,i,m时:in0=A;计算b,f,j,n时:in0=B;计算c,g,k,o时:in0=C;计算d,h,l,p时:in0=D。
模式1:水平预测
in1=0,in2=0,in3=0,IsShift=0;shift_len=0;bypass=1;round_value=0;;IsStore=0计算a,b,c,d时:in0=I;计算e,f,g,h时:in0=J;计算i,j,k,l时:in0=K;计算m,n,o,p时:in0=L。
模式2:直流预测
此时所有当前块的像素值都是同一个预测表达式,但是分以下4种情况:
a)当上边和左边相邻像素均可用时的第一个时钟周期内,计算单元PE0的输入是in0=A,in1=B;in2=C;in3=D,IsShift=0,shift_len=0,bypass=0,round_value=0,IsStore=1(图7所示输入)即保存好上边4个像素值的和;计算单元PE1的输入是in0=I,in1=J;in2=K;in3=L,IsShift=0,shift_len=0,bypass=0,round_value=0,IsStore=1即保存左边4个像素的和。第二个时钟周期只有PE0工作,in0=PE0_out_reg,in1=PE1_out_reg,这两个值就是上一个周期PE0、PE1计算后保存的值;in2=in3=0,round_value=4,IsShift=0,shift_len=3,bypass=0.这样两个周期就能得到所有像素点的预测值。
b)当只有上边的相邻像素可用,则所有像素点预测值计算的输入为in0=A,in1=B,in2=C,in3=D,round_value=2,IsShift=0,bypass=0,shift_len=2,IsStore=0.
c)当只有左边的相邻像素可用,则所有像素点预测值计算的输入为in0=I,in1=J,in2=K,in3=L,round_value=2,IsShift=0,bypass=0,shift_len=2,IsStore=0.
d)当上边和左边的相邻像素均不可用,则所有像素点预测值计算的输入为in0=128,in1=0,in2=0,in3=0,round_value=0,IsShift=0,bypass=1,shift_len=0,IsStore=0。
模式3:下左对角线预测
round_value=2,IsShift=1,shift_len=2,bypass=0,IsStore=0;
计算p时:in0=G,in1=H,in2=H;计算a时:in0=A,in1=C,in2=B;
计算b/e时:in0=B,in1=D,in2=C;计算c/i/f时:in0=C,in1=E,in2=D;
计算d/g/j/m时:in0=D,in1=F,in2=E;计算h/k/n时:in0=E,in1=G,in2=F;
计算i/o时:in0=F,in1=H,in2=G.
模式4:下右对角线预测
round_value=2,IsShift=1,shift_len=2,bypass=0,IsStore=0;
计算b/g/l时:in0=M,in1=B,in2=M;计算c/h时:in0=A,in1=C,in2=B;
计算d时:in0=B,in1=D,in2=C;计算e/j/o时:in0=M,in1=J,in2=I;
计算i/n时:in0=I,in1=K,in2=J;计算m时:in0=J,in1=L,in2=K;
计算a/f/k/p时:in0=A,in1=I,in2=M.
模式5:右垂直预测
bypass=0,IsStore=0;
计算a/i时:in0=M,in1=A,in2=0,round_value=1,IsShift=0,shift_len=1;
计算b/k时:in0=A,in1=B,in2=0,round_value=1,IsShift=0,shift_len=1;
计算c/l时:in0=B,in1=C,in2=0,round_value=1,IsShift=0,shift_len=1;
计算d时:in0=C,in1=D,in2=0,round_value=1,IsShift=0,shift_len=1;
计算f/o时:in0=M,in1=B,in2=A,round_value=2,IsShift=1,shift_len=2;
计算g/p时:in0=A,in1=C,in2=B,round_value=2,IsShift=1,shift_len=2;
计算h时:in0=B,in1=D,in2=C,round_value=2,IsShift=1,shift_len=2;
计算e/n时:in0=I,in1=A,in2=M,round_value=2,IsShift=1,shift_len=2;
计算i时:in0=J,in1=M,in2=I,round_value=2,IsShift=1,shift_len=2;
计算m时:in0=K,in1=I,in2=J,round_value=2,IsShift=1,shift_len=2;
模式6:下水平预测
bypass=0,IsStore=0;
计算a/g时:in0=M,in1=I,in2=0,round_value=1,IsShift=0,shift_len=1;
计算e/k时:in0=I,in1=J,in2=0,round_value=1,IsShift=0,shift_len=1;
计算o/i时:in0=J,in1=K,in2=0,round_value=1,IsShift=0,shift_len=1;
计算m时:in0=K,in1=L,in2=0,round_value=1,IsShift=0,shift_len=1;
计算b/h时:in0=I,in1=A,in2=M,round_value=2,IsShift=1,shift_len=2;
计算f/l时:in0=M,in1=J,in2=I,round_value=2,IsShift=1,shift_len=2;
计算j/p时:in0=I,in1=K,in2=J,round_value=2,IsShift=1,shift_len=2;
计算n时:in0=J,in1=L,in2=K,round_value=2,IsShift=1,shift_len=2;
计算c时:in0=B,in1=M,in2=A,round_value=2,IsShift=1,shift_len=2;
计算d时:in0=C,in1=A,in2=B,round_value=2,IsShift=1,shift_len=2;
模式7:左垂直预测
bypass=0,IsStore=0;
计算a时:in0=A,in1=B,in2=0,round_value=1,IsShift=0,shift_len=1;
计算b/i时:in0=B,in1=C,in2=0,round_value=1,IsShift=0,shift_len=1;
计算c/j时:in0=C,in1=D,in2=0,round_value=1,IsShift=0,shift_len=1;
计算d/k时:in0=D,in1=E,in2=0,round_value=1,IsShift=0,shift_len=1;
计算l时:in0=E,in1=F,in2=0,round_value=1,IsShift=0,shift_len=1;
计算e时:in0=A,in1=C,in2=B,round_value=2,IsShift=1,shift_len=2;
计算f/m时:in0=B,in1=D,in2=C,round_value=2,IsShift=1,shift_len=2;
计算n/g时:in0=C,in1=E,in2=D,round_value=2,IsShift=1,shift_len=2;
计算h/o时:in0=D,in1=F,in2=E,round_value=2,IsShift=1,shift_len=2;
计算p时:in0=E,in1=G,in2=F,round_value=2,IsShift=1,shift_len=2;
模式8:上水平预测
IsStore=0;
计算a时:in0=I,in1=J,in2=0,round_value=1,IsShift=0,shift_len=1;
bypass=0
计算c/e时:in0=J,in1=K,in2=0,round_value=1,IsShift=0,shift_len=1;
bypass=0
计算g/i时:in0=K,in1=L,in2=0,round_value=1,IsShift=0,shift_len=1;
bypass=0
计算b时:in0=I,in1=K,in2=J,round_value=2,IsShift=1,shift_len=2;
bypass=0
计算f/d时:in0=J,in1=L,in2=K,round_value=2,IsShift=1,shift_len=2;
bypass=0
计算h/j时:in0=K,in1=L,in2=L,round_value=2,IsShift=1,shift_len=2;
bypass=0
计算k/l/m/n/o/p时:in0=L,in1=0,in2=0,round_value=0,IsShift=0,shift_len=0;bypass=1
(2)若是16×16的亮度块,按照图6B所示的表达式计算:
模式9:16×16_垂直预测
in1=0,in2=0,in3=0,IsShift=0;shift_len=0;bypass=1;round_value=0;IsStore=0计算第n列时:in0=Hn;其中n=0,1,2...,15
模式10:16×16_水平预测
in1=0,in2=0,in3=0,IsShift=0;shift_len=0;bypass=1;round_value=0;IsStore=0计算第n行时:in0=Vn;其中n=0,1,2...,15
模式11:16×16_直流预测
a)当上边和左边相邻像素均可用时的第一个时钟周期内,计算单元PE0~PE3的in输入是分别H0~H3,H4~H7,H8~H11,H12~H15,其他输入端的值分别为IsShift=0,shift_len=0,bypass=0,round_value=0,IsStore=1即保存好上边16个像素值的和,每4个一组;第二个时钟周期类似地计算左边16个像素值的和,每4个一组;此时相当于只有8个像素值,然后类似模式2中的a)步骤进行计算,即第三个时钟周期用PE0和PE1对上面像素的四个和、左边像素的四个和再进行求和;
第四个时钟周期只有PE0工作,in0=PE0_out_reg,in1=PE1_out_reg,这两个值就是上一个周期PE0、PE1计算后保存的值,in2=in3=0,round_value=16,IsShift=0,shift_len=5,bypass=0.这样4个周期就能得到所有像素点的预测值。
b)当只有上边的像素可用,在第一个周期内利用四个PE单元对上面的16个相邻像素分4组求和;在第二个周期将这四个和作为in0~in3输入,round_value=8,IsShift=0,shift_len=4,bypass=0.这样2个周期就能得到所有像素点的预测值。
c)当只有左边的像素可用,在第一个周期内利用四个PE单元对左边的16个相邻像素分4组求和;在第二个周期将这四个和作为in0~in3输入,round_value=8,IsShift=0,shift_len=4,bypass=0.这样2个周期就能得到所有像素点的预测值。
d)当上面和左边的相邻像素都不可用,则所有像素点预测值计算的输入为in0=128,in1=0,in2=0,in3=0,round_value=0,IsShift=0,bypass=1,shift_len=0,IsStore=0.
模式12:16×16_平板预测
此时还是分为图9所示的16个4×4块进行预测,每次4个PE单元预测4×4块的一列。A)对于PE0:in2=0,in3=0,IsShift=0,shift_len=5,IsStore=一个block预测完成信号,round_value=16,IsClip=1,bypass=0;第一次预测时,in0=seed16,in1=c,在接下来的同一行像素预测中,in0=pe0_out_reg,即上一次预测值,而in1=b,因为在同一行中,右边一个像素公式中的和值比左边一个像素多了一个b,如公式1所示。
B)对于PE1:in3=0,IsShift=0,shift_len=5,IsStore=一个block预测完成信号,round_value=16,IsClip=1,bypass=0;第一次预测时,in0=seed16,in1=c,in2=c,因为在PE0的下一行,公式的和值中比PE0多一个c;在接下来的同一行像素的预测中,in0=pe1_out_reg,in1=b,in2=0。
C)对于PE2:in3=0,IsShift=0,shift_len=5,IsStore=一个block预测完成信号,round_value=16,IsClip=1,bypass=0;第一次预测时,in0=seed16,in1=2c,in2=c;在接下来的同一行像素的预测中,in0=pe2_out_reg,in1=b,in2=0。
D)对于PE3:IsShift=0,shift_len=5,IsStore=一个block预测完成信号,round_value=16,IsClip=1,bypass=0;第一次预测时,in0=seed16,in1=4c,in2=0,in3=0,因为在PE2的下一行,公式的和值中比PE2多一个c;在接下来的同一行像素的预测中,in0=pe3_out_reg,in1=b,in2=0。
若换到不同行的行首,只需在调整in1~in3,对应该行的c值。
步骤6:按照步骤5,可以将一个16×16宏块的各个像素点的亮度值预测出来,然后进行色度值的预测,由于帧内亮度块只有8×8的预测模式,因此,预测的时候分为如下几种:
模式13:8×8_直流预测
此模式下分为4个4×4块,如图6C中的block1~block4。
A)对于block1,将步骤5中模式2下的A,B,C,D,I,J,K,L分别换成H0,H1,H2,H3,V0,V1,V2,V3,然后按照步骤5中的模式2进行预测。
B)对于block2,将步骤5中模式2下的A,B,C,D,I,J,K,L分别换成H4,H5,H6,H7,V0,V1,V2,V3,然后按照步骤5中的模式2进行预测。
C)对于block3,将步骤5中模式2下的A,B,C,D,I,J,K,L分别换成H0,H1,H2,H3,V4,V5,V6,V7,然后按照步骤5中的模式2进行预测。
D)对于block4,将步骤5中模式2下的A,B,C,D,I,J,K,L分别换成H4,H5,H6,H7,V4,V5,V6,V7,然后按照步骤5中的模式2进行预测。
模式14:8×8_水平预测
in1=0,in2=0,in3=0,IsShift=0;shift_len=0;bypass=1;round_value=0;IsStore=0计算第n行时:in0=Vn;其中n=0,1,2...,7
模式15:8×8_垂直预测
in1=0,in2=0,in3=0,IsShift=0;shift_len=0;bypass=1;round_value=0;IsStore=0计算第n列时:in0=Hn;其中n=0,1,2...,7
模式16:8×8_平板预测
此模式下,也是按照每个4×4的block来预测的,此时有4个4×4block,参考步骤5中的预测模式12,将seed16替换成seed8,a、b、c也要使用当前8×8块对应的值,这样即可按照预测模式12下的步骤来预测。
步骤7:到此一个16×16的宏块各个像素点的亮度值和色度值都已经预测完成,将REG中的值保存到相应的RAM和Buffer当中,供下一个宏块的预测使用。返回步骤1,进行下一个16×16宏块的预测。
Claims (8)
1.一种多预测模式复用的帧内预测处理单元,其特征在于:所述帧内预测处理单元包括:
帧内预测模式解码模块,用以根据从原始码流中解析出来的数据,对帧内预测时各个宏块及其子块的预测模式的解码:对于4×4块,根据码流元素的预测受限标志确定是否采用建议的预测模式,若此标志为1,那么不使用建议的预测模式值,当前块取左边块和上边块的较小的预测模式值MIN,若标志为0,并且建议的预测值比MIN还小,则当前块取建议的预测模式值;否则,当前块的预测模式值取建议的预测模式值加1;对于16×16的亮度块和8×8的色度块,当前块的预测模式码流中直接解析获得;
帧内像素值预测模块,包括平板预测时所用到的种子计算单元和预测值计算单元,用以对当前块的预测值进行计算:当前块包括4×4和16×16的亮度块以及8×8的色度块,根据帧内预测模式解码模块得到的预测模式值,计算一个宏块在相应的预测模式下24个4×4块的预测值,或者1个16×16的亮度块加一个8×8的色度块的预测值;将各种预测模式下的预测公式进行统一和计算,用公式10来表示:
x=(in0+in1+in2<<IsShift+in3+round_value[4:0])/2shift_len (公式10)
其中,x表示当前像素值的预测值,in0~in3,IsShift,round_value,shift_len是统一的输入,其值随预测模式的不同而不同。
2.如权利要求1所述的多预测模式复用的帧内预测处理单元,其特征在于:对于4×4的亮度块,解码之后的预测模式值保存在预测模式缓冲器里面,当有宏块对存在的时候,宏块对中顶宏块的各个4×4子块、底宏块的各个4×4子块的预测模式都被保存;宏块对是由编码时按照16×32编码成的两个宏块组成的对,对于16×16的亮度块,解码之后的预测模式值也保存在所述预测模式缓冲器中;而对于8×8的色度块来讲,预测模式值保存在两个寄存器中,一个保存宏块对中顶宏块的色度预测模式,另一个保存宏块对中底宏块的色度预测模式。
3.如权利要求1所述的多预测模式复用的帧内预测处理单元,其特征在于:在条带层面的流水是基于16×16像素的宏块之间的流水,分为码流解析级别、像素重建级别和去边界化三级级别,帧内预测模式解码模块工作在码流解析级别,帧内像素值预测模块工作在像素重建级别。
4.如权利要求2所述的多预测模式复用的帧内预测处理单元,其特征在于:在条带层面的流水是基于16×16像素的宏块之间的流水,分为码流解析级别、像素重建级别和去边界化三级级别,帧内预测模式解码模块工作在码流解析级别,帧内像素值预测模块工作在像素重建级别,所述缓冲器和寄存器中的预测模式值将在像素重建级别被所述帧内像素值预测模块所使用。
5.如权利要求1~4之一所述的多预测模式复用的帧内预测处理单元,其特征在于:如果该计算单元被旁路,则x=in0;如果在16×16和8×8块的平板预测模式下,输出范围需要限定,即x在0~255之间,小于0的时候x取0,大于255的时候x取255,在这之间则取原值。此时,完整的公式为:
X’=bypass?in0:{IsClip?Chip1(x):x} (公式11)
其中,x是公式10中左边的值,Clip1函数是公式5所示的函数,
6.如权利要求4所述的多预测模式复用的帧内预测处理单元,其特征在于:对于4×4的亮度块,帧内预测从码流解析级开始,帧内预测模式解码模块在码流解析级完成当前宏块的16个4×4块的亮度和色度预测模式的解码,同时帧内像素值预测模块中的种子计算单元完成对宏块的亮度相邻参考像素和预测模式的加载,接着帧内像素值预测模块中的预测值计算单元子模块在像素重建级用四个并行的计算单元将4×4块的各列像素值预测出来。每个时钟周期内完成一列像素值的预测,4个时钟周期后该块的所有帧内预测值被解出,接着进行下一个4×4块的预测值计算,直到该宏块中各个像素的预测值被解码完毕。
7.如权利要求4所述的多预测模式复用的帧内预测处理单元,其特征在于:对于16×16的亮度块,帧内预测也从码流解析级开始,帧内预测模式解码模块在码流解析级可以根据从码流中解码得到的宏块类型元素得出该宏块的预测模式,同时帧内像素值预测模块中的种子计算单元完成对宏块亮度的相邻参考像素和预测模式的加载,若是平板预测模式,那么该单元还会计算得到相应的种子,这个种子在亮度值预测时为计算单元子模块所用,作为各个计算单元的输入,计算单元将在每个周期内输出4个像素的亮度预测值,直到该宏块中各个像素的亮度预测值被解码完毕。
8.如权利要求4所述的多预测模式复用的帧内预测处理单元,其特征在于:对于8×8的色度块,帧内预测也从码流解析级开始,帧内预测模式解码模块在码流解析级直接根据码流中相应的元素得到该块的预测模式,同时帧内像素值预测模块中的种子计算单元完成对宏块色度的相邻参考像素和预测模式的加载,若是平板预测模式,那么该单元还会计算得到相应的种子,这个种子在色度值预测时为计算单元子模块所用,作为各个计算单元的输入,计算单元将在每个周期内输出4个像素的色度预测值,直到该宏块中各个像素的色度预测值被解码完毕。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010595757 CN102025996B (zh) | 2010-12-20 | 2010-12-20 | 多预测模式复用的h.264帧内处理单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010595757 CN102025996B (zh) | 2010-12-20 | 2010-12-20 | 多预测模式复用的h.264帧内处理单元 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102025996A true CN102025996A (zh) | 2011-04-20 |
CN102025996B CN102025996B (zh) | 2012-09-26 |
Family
ID=43866764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010595757 Expired - Fee Related CN102025996B (zh) | 2010-12-20 | 2010-12-20 | 多预测模式复用的h.264帧内处理单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102025996B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105516728A (zh) * | 2015-12-15 | 2016-04-20 | 华中科技大学 | 一种H.265/HEVC中8x8子宏块的并行帧内预测方法 |
CN106558083A (zh) * | 2016-11-30 | 2017-04-05 | 郑州云海信息技术有限公司 | 一种webp压缩算法帧内预测阶段的加速方法、装置及系统 |
CN110324631A (zh) * | 2019-05-09 | 2019-10-11 | 湖南国科微电子股份有限公司 | 一种图像并行处理方法、装置及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050271142A1 (en) * | 2004-06-07 | 2005-12-08 | Daeyang Foundation | Method and apparatus for lossless encoding and decoding |
CN101014128A (zh) * | 2007-02-02 | 2007-08-08 | 清华大学 | H.264/avc视频编码中速率和失真的快速估计方法 |
CN101064822A (zh) * | 2006-12-28 | 2007-10-31 | 武汉大学 | 一种h.264标准视频信息中残差系数幅值的加解密方法 |
CN101098473A (zh) * | 2006-06-30 | 2008-01-02 | 联想(北京)有限公司 | 一种图像编码方法及装置 |
CN101170688A (zh) * | 2007-11-26 | 2008-04-30 | 电子科技大学 | 一种宏块模式的快速选择方法 |
CN101227624A (zh) * | 2008-01-31 | 2008-07-23 | 上海广电(集团)有限公司中央研究院 | Avs帧内预测参考样本提取方法 |
CN101394565A (zh) * | 2008-10-20 | 2009-03-25 | 成都九洲电子信息系统有限责任公司 | 一种帧内预测方法 |
-
2010
- 2010-12-20 CN CN 201010595757 patent/CN102025996B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050271142A1 (en) * | 2004-06-07 | 2005-12-08 | Daeyang Foundation | Method and apparatus for lossless encoding and decoding |
CN101098473A (zh) * | 2006-06-30 | 2008-01-02 | 联想(北京)有限公司 | 一种图像编码方法及装置 |
CN101064822A (zh) * | 2006-12-28 | 2007-10-31 | 武汉大学 | 一种h.264标准视频信息中残差系数幅值的加解密方法 |
CN101014128A (zh) * | 2007-02-02 | 2007-08-08 | 清华大学 | H.264/avc视频编码中速率和失真的快速估计方法 |
CN101170688A (zh) * | 2007-11-26 | 2008-04-30 | 电子科技大学 | 一种宏块模式的快速选择方法 |
CN101227624A (zh) * | 2008-01-31 | 2008-07-23 | 上海广电(集团)有限公司中央研究院 | Avs帧内预测参考样本提取方法 |
CN101394565A (zh) * | 2008-10-20 | 2009-03-25 | 成都九洲电子信息系统有限责任公司 | 一种帧内预测方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105516728A (zh) * | 2015-12-15 | 2016-04-20 | 华中科技大学 | 一种H.265/HEVC中8x8子宏块的并行帧内预测方法 |
CN105516728B (zh) * | 2015-12-15 | 2019-06-28 | 华中科技大学 | 一种H.265/HEVC中8x8子宏块的并行帧内预测方法 |
CN106558083A (zh) * | 2016-11-30 | 2017-04-05 | 郑州云海信息技术有限公司 | 一种webp压缩算法帧内预测阶段的加速方法、装置及系统 |
CN110324631A (zh) * | 2019-05-09 | 2019-10-11 | 湖南国科微电子股份有限公司 | 一种图像并行处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102025996B (zh) | 2012-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103931185B (zh) | 确定视频译码的解块滤波的边界强度值 | |
US7884743B2 (en) | Arithmetic decoding device | |
US20230179773A1 (en) | Method and apparatus for encoding or decoding video data in fruc mode with reduced memory accesses | |
US9826240B2 (en) | High throughput VLSI architecture for HEVC SAO encoding | |
Khan et al. | Hardware-software collaborative complexity reduction scheme for the emerging HEVC intra encoder | |
US8233537B2 (en) | Efficient implementation of H.264 4 by 4 intra prediction on a VLIW processor | |
CN106464894A (zh) | 视频处理方法及装置 | |
US8594198B2 (en) | Method of implementing intra prediction computation applied to H.264 digital video coding and device | |
WO2008067500A2 (en) | Parallel deblocking filter for h.264 video codec | |
CN102088603A (zh) | 用于视频编码器的熵编码器及其实现方法 | |
CN102025996B (zh) | 多预测模式复用的h.264帧内处理单元 | |
CN113207004A (zh) | 基于jpeg-ls帧间扩展的遥感图像压缩算法硬件实现方法 | |
CN102143361B (zh) | 一种视频编码方法和装置 | |
CN117354511A (zh) | 一种帧内预测方法、装置及解码器和编码器 | |
Peesapati et al. | Design of streaming deblocking filter for HEVC decoder | |
CN101383971A (zh) | 一种基于图像编解码的帧内预测的处理方法 | |
Kalali et al. | An approximate HEVC intra angular prediction hardware | |
JP4571069B2 (ja) | 動画像符号化装置 | |
US20170323454A1 (en) | Apparatus and method for efficient motion estimation | |
Messaoudi et al. | Performance comparison of two hardware implementations of the deblocking filter used in H. 264 by changing the utilized data width | |
Li et al. | A VLSI architecture design of an edge based fast intra prediction mode decision algorithm for H. 264/AVC | |
CN102055980B (zh) | 用于视频编码器的帧内预测电路及其实现方法 | |
El Gendy et al. | Low cost VLSI architecture for sample adaptive offset encoder in HEVC | |
CN105812819B (zh) | 执行混成多重假设移动补偿预测的方法以及装置 | |
Ta et al. | Low-power high-throughput deblocking filter architecture for H. 264/AVC |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120926 Termination date: 20151220 |
|
EXPY | Termination of patent right or utility model |