会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 图形技术 / / 帧内预测方法及其装置

帧内预测方法及其装置

阅读:865发布:2021-02-22

IPRDB可以提供帧内预测方法及其装置专利检索,专利查询,专利分析的服务。并且本发明提供一种帧内预测方法及其装置,该帧内预测装置包括输入数据单元、选择控制单元、输入数据选择单元、处理单元以及输出数据选择单元。输入数据单元提供被预测块的周围像素值。选择控制单元提供输入选择控制信号、运算参数信号以及输出选择控制信号。输入数据选择单元依据输入选择控制信号而选择所述像素值。处理单元依据运算参数信号而运算输入数据选择单元所选择的像素值,以产生多个运算结果。输出数据选择单元依据输出选择控制信号而选择输出部分或全部所述运算结果。本发明可以简单电路实现各种视频帧内预测演算法,因而可以大量节省硬件资源。,下面是帧内预测方法及其装置专利的具体信息内容。

1.一种帧内预测装置,其特征在于,包括:

一输入数据单元,用以提供一被预测块的部分或全部周围像素的像素值;

一选择控制单元,用以提供一输入选择控制信号、一运算参数信号以及一输出选择控制信号;

一输入数据选择单元,耦接至该输入数据单元与该选择控制单元,用以依据该输入选择控制信号而选择所述像素值;

一处理单元,耦接至该输入数据选择单元,用以依据该运算参数信号而运算该输入数据选择单元所选择的像素值,以产生多个运算结果;以及一输出数据选择单元,耦接至该处理单元与该选择控制单元,用以依据该输出选择控制信号而选择输出部分或全部所述运算结果;

其中,该处理单元包括多个第一运算单元,所述第一运算单元其中之一依据运算参数信号S,计算下述等式,以获得运算结果Tn:Tn=(Src0+Src1<<C+Src2+R)>>S其中Src0、Src1与Src2分别为该输入数据选择单元所选择的像素值,Src1<<C表示像素值Src1向左位移C个位,(Src0+Src1<<C+Src2+R)>>S表示像素值Src0+Src1<<C+Src2+R向右位移S个位,R=S,且C=R>>1。

2.根据权利要求1所述的帧内预测装置,其特征在于,该输入数据选择单元包括:多个多工器,耦接于该输入数据单元与该处理单元之间,用以依据该输入选择控制信号而选择所述像素值的部分,以将所选择的像素值提供给该处理单元进行运算。

3.根据权利要求1所述的帧内预测装置,其特征在于,若帧内预测运算模式为AVS的Intra_8×8_DC模式,且该被预测块周围像素的像素值都可用,则R=0。

4.根据权利要求3所述的帧内预测装置,其特征在于,所述第一运算单元其中之一包括:一第一切换器,用以接收该运算参数信号S,并且若帧内预测运算模式为AVS的Intra_8×8_DC模式,且该被预测块周围像素的像素值都可用,则输出“0”值作为参数R,否则输出该运算参数信号S作为参数R;

一第一右位移器,耦接至该第一切换器,用以将参数R向右位移1个位,以作为参数C;

一第一左位移器,耦接至该输入数据选择单元与该第一右位移器,用以将该输入数据选择单元所选择的像素值Src1向左位移C个位,以获得输出Src1<<C;

一第一加法器,耦接至该输入数据选择单元、该第一切换器与该第一左位移器,用以加总该输入数据选择单元所选择的像素值Src0与Src2、该第一左位移器的输出以及该参数R;以及一第二右位移器,耦接至该第一加法器,用以将该第一加法器的输出向右位移S个位,以作为运算结果Tn。

5.根据权利要求3所述的帧内预测装置,其特征在于,该处理单元还包括:一第二运算单元,其依据该运算参数信号S,计算下述等式,以获得运算结果Tn’:Tn’=(T0+T1+T2+R’)>>S’

其中T0、T1与T2分别为所述第一运算单元所输出的运算结果,S’=S+1,且R’=1<<S。

6.根据权利要求3所述的帧内预测装置,其特征在于,该处理单元还包括:一第二运算单元,其依据该运算参数信号S,计算下述等式,以获得运算结果Tn’:Tn’=((T0+T1+T2)+(T0’+T1’+T2’)+R’)>>S’其中“T0、T1、T2”与“T0’、T1’、T2’”分别为所述第一运算单元先后输出的运算结果,S’=S+1,且R’=1<<S。

7.根据权利要求6所述的帧内预测装置,其特征在于,该第二运算单元包括:一第二加法器,用以加总“1”值与该运算参数信号S,以作为参数S’;

一第二左位移器,用以将“1”值向左位移S个位,以作为参数R’;

一暂存器,用以暂存一目前加总值并提供一先前加总值;

一第二切换器,耦接至该第二左位移器与该暂存器,用以选择输出该参数R’与该先前加总值二者之一;

一第三加法器,用以加总所述第一运算单元输出的运算结果T0、T1、T2与该第二切换器的输出,以作为该目前加总值;

一第三右位移器,耦接至该第三加法器与该第二加法器,用以将该目前加总值向右位移S’个位;以及一第三切换器,耦接至该第三右位移器,用以选择输出“128”值作为运算结果Tn’,或者选择该第三右位移器的输出作为运算结果Tn’。

8.根据权利要求1所述的帧内预测装置,其特征在于,该选择控制单元依据一选择预测模式查找一输入选择控制表、一运算参数表以及一输出选择控制表,以分别获得并提供该输入选择控制信号、该运算参数信号以及该输出选择控制信号。

9.一种帧内预测方法,其特征在于,包括:

提供一被预测块的部分或全部周围像素的像素值;

提供一输入选择控制信号、一运算参数信号以及一输出选择控制信号;

依据该输入选择控制信号而选择所述像素值,并将所选择的像素值作为被选择像素值;

依据该运算参数信号而运算所述被选择像素值,以产生多个运算结果;以及依据该输出选择控制信号而选择输出部分或全部所述运算结果;

其中,运算所述被选择像素值的步骤包括:

依据运算参数信号S,计算等式Tn=(Src0+Src1<<C+Src2+R)>>S,以获得运算结果Tn;

其中Src0、Src1与Src2分别为选择所述像素值步骤所选择的像素值,Src1<<C表示像素值Src1向左位移C个位,(Src0+Src1<<C+Src2+R)>>S表示像素值Src0+Src1<<C+Src2+R向右位移S个位,R=S,且C=R>>1。

10.根据权利要求9所述的帧内预测方法,其特征在于,若帧内预测运算模式为AVS的Intra_8×8_DC模式,且该被预测块周围像素的像素值都可用,则R=0。

11.根据权利要求10所述的帧内预测方法,其特征在于,运算所述被选择像素值的步骤还包括:依据该运算参数信号S,计算等式Tn’=(T0+T1+T2+R’)>>S’,以获得运算结果Tn’;

其中T0、T1与T2分别为通过计算所述等式Tn=(Src0+Src1<<C+Src2+R)>>S获得的运算结果,S’=S+1,且R’=1<<S。

12.根据权利要求10所述的帧内预测方法,其特征在于,运算所述被选择像素值的步骤还包括:依据该运算参数信号S,计算等式Tn’=((T0+T 1+T2)+(T0’+T1’+T2’)+R’)>>S’,以获得运算结果Tn’;

其中“T0、T1、T2”与“T0’、T1’、T2’”分别为通过计算所述等式Tn=(Src0+Src1<<C+Src2+R)>>S先后获得的运算结果,S’=S+1,且R’=1<<S。

13.根据权利要求9所述的帧内预测方法,其特征在于,还包括:依据一选择预测模式查找一输入选择控制表,以获得并提供该输入选择控制信号;

依据该选择预测模式查找一运算参数表,以获得并提供该运算参数信号;以及依据该选择预测模式查找一输出选择控制表,以获得并提供该输出选择控制信号。

说明书全文

帧内预测方法及其装置

技术领域

[0001] 本发明有关于一种视频(video)处理,且特别有关于可以实现各种视频帧内预测演算法的一种帧内预测方法及其装置。

背景技术

[0002] 帧内预测是最近的视频编解码标准H.264与AVS所采用的一种技术。帧内预测技术用被预测块周围的像素值来预测该被预测块内的各个像素值,因此它的出现提高了编码
效率。一般而言,在实现H.264或AVS的高解析(1920×1088)应用中,对于帧内预测这种
技术,一般都需要专门的硬件加速电路来实现。
[0003] 以H.264视频编解码标准为例,其帧内预测分为亮度预测和色度预测。亮度预测依据被预测块的大小分为4×4、8×8、16×16三类,其中4×4包括9种预测模式,8×8亦包
括9种预测模式,而16×16则包括4种预测模式。4×4的9种预测模式的预测原理相似于
8×8的9种预测模式,不同的是8×8的预测模式会用到更多的周围像素值。4×4的预测
模式可以一次预测16个像素,而8×8的预测模式可以一次预测更多个(64个)像素。另
外,H.264视频编解码标准的帧内预测技术中,色度预测是基于4×4被预测块所进行的,其
有4种预测模式。对于AVS视频编解码标准而言,其被预测块的大小只有8×8一类,其中
亮度预测有5种模式,而色度预测有4种模式。
[0004] 在实现H.264或AVS的高解析应用中,现有技术是使用专门的电路来实现相对应的帧内预测模式。例如,现有技术需要9种不同的运算电路来各自实现H.264标准中4×4
的9种预测模式。因此,若要实现H.264标准的所有预测模式,则至少要配置22种不同的
运算电路。若要同时支持H.264标准与AVS标准,则可能要配置31种不同的运算电路。现
有技术将这些演算法实现在硬件电路上,需要耗费很多的硬件资源,有些现有技术甚至不
能达到实时解码的要求。

发明内容

[0005] 本发明提供一种帧内预测方法及其装置,可以实现各种视频帧内预测演算法。在实现各演算法功能的基础上,本发明更可以大量节省硬件资源。
[0006] 本发明提出一种帧内预测装置,包括输入数据单元、选择控制单元、输入数据选择单元、处理单元以及输出数据选择单元。输入数据单元提供被预测块的部分或全部周围像素的像素值。选择控制单元提供输入选择控制信号、运算参数信号以及输出选择控制信号。
输入数据选择单元耦接至输入数据单元与选择控制单元。输入数据选择单元依据输入选择
控制信号而选择所述像素值。处理单元耦接至输入数据选择单元。处理单元依据运算参数
信号而运算输入数据选择单元所选择的像素值,以产生多个运算结果。输出数据选择单元
耦接至处理单元与选择控制单元。输出数据选择单元依据输出选择控制信号而选择输出部
分或全部所述运算结果。
[0007] 本发明提出一种帧内预测方法,包括下述步骤。首先提供被预测块的部分或全部周围像素的像素值以及提供输入选择控制信号、运算参数信号、输出选择控制信号。依据输入选择控制信号而选择所述像素值,并将所选择的像素值作为被选择像素值。依据运算参
数信号而运算所述被选择像素值,以产生多个运算结果。依据输出选择控制信号而选择输
出部分或全部所述运算结果。
[0008] 在本发明的一实施例中,上述的选择控制单元依据选择预测模式查找输入选择控制表、运算参数表以及输出选择控制表,以分别获得并提供输入选择控制信号、运算参数信号以及输出选择控制信号。
[0009] 在本发明的一实施例中,上述处理单元的第一运算单元依据运算参数信号S,计算等式Tn=(Src0+Src1<<C+Src2+R)>>S,以获得运算结果Tn。其中,Src0、Src1与Src2分别为该输入数据选择单元所选择的像素值,Src1<<C表示像素值Src1向左位移
C个位,(Src0+...+R)>>S表示像素值(Src0+...+R)向右位移S个位,R=S,且C=R
>>1。若帧内预测运算模式为AVS的Intra 8×8DC模式,且该被预测块周围像素的像素
值都可用,则R=0。
[0010] 在本发明的一实施例中,若所述选择预测模式所需使用最多8个周围像素,则上述处理单元的第二运算单元依据运算参数信号S,计算等式Tn’=(T0+T1+T2+R’)>>S’,以获得运算结果Tn’。若所述选择预测模式所需使用超过8个周围像素,则上述处理单元的第二运算单元依据该运算参数信号S,计算等式Tn’=((T0+T1+T2)+(T0’+T1’+T2’)+R’)>>S’,以获得运算结果Tn’。其中(T0、T1、T2)与(T0’、T1’、T2’)分别为所述第一运算单元先后输出的运算结果,S’=S+1,且R=1<<S。
[0011] 本发明因将各种帧内预测演算法归纳为统一的公式,因此配合提供适当的输入选择控制信号、运算参数信号以及输出选择控制信号,可以实现各种视频帧内预测演算法。由于本发明的帧内预测装置可以同时适用于各种帧内预测演算法,而以简单电路实现各演算
法功能,因此本发明还可以大量节省硬件资源。

附图说明

[0012] 图1是依照本发明实施例说明4×4亮度预测与4×4色度预测相关的被预测块像素与被使用到的周围像素。
[0013] 图2是依照本发明实施例说明8×8亮度预测与8×8色度预测相关的被预测块像素与被使用到的周围像素。
[0014] 图3是依照本发明说明一种帧内预测装置的实施例。
[0015] 图4是依照本发明说明图3的输入数据选择单元中,第一选择单元的实施例。
[0016] 图5是依照本发明说明图3中第一运算单元的实施范例。
[0017] 图6是依照本发明说明图3中第二运算单元的实施范例。

具体实施方式

[0018] 为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
[0019] 最近的视频编解码标准(例如H.264与AVS等)纷纷采用帧内预测技术来提高编码效率,尤其在实现H.264或AVS的高解析(1920×1088)应用中,其效果更是显著。以下
实施例将以H.264与AVS视频编解码标准为应用例。H.264视频编解码标准的帧内预测技
术中,4×4亮度预测有9种预测模式,8×8亮度预测有9种预测模式,而4×4色度预测有
4种预测模式。对于AVS视频编解码标准而言,其8×8亮度预测有5种模式,而8×8色度
预测有4种模式。
[0020] 帧内预测技术使用“被预测块”周围的像素值来预测该被预测块内的各个像素值。图1是依照本发明实施例说明4×4亮度预测与4×4色度预测相关的被预测块像素与被使
用到的周围像素。图1中方块110表示一个4×4“被预测块”。为了预测被预测块110内
的各个像素值,帧内预测技术会使用被预测块110部分或全部的周围像素(像素A~H、像
素I~P与像素X)数据来预测方块110内的各个像素值。图2是依照本发明实施例说明
8×8亮度预测与8×8色度预测相关的被预测块像素与被使用到的周围像素。图2中方块
210表示一个8×8“被预测块”。为了预测被预测块210内的各个像素值,帧内预测技术会
使用被预测块210部分或全部的周围像素(像素A~H、像素a1~h 1、像素I~P与像素
X)数据来预测方块210内的各个像素值。图1与图2所示的坐标值不代表在显示装置的实
际坐标。
[0021] 本实施例只针对4×4与8×8被预测块的预测标准进行说明,但本领域技术人员可因此推导出其他,例如:16×16的预测方法。
[0022] 图1描述了4×4被预测块与预测时会用到的周围像素。其中,像素X的值描述为P[-1,-1];像素A、B、C、D、E、F、G、H的值分别为P[x,-1],x=0~7中的一个;像素I、J、K、L、M、N、O、P的值分别为P[-1,y],y=0~7中的一个。H.264视频编解码标准的4×4
帧内预测就是:已知P[-1,-1]、P[x,-1]、P[-1,y](x与y为0~7)这17个像素值,来求
4×4被预测块110的像素值(描述为P[x,y],x与y为0~3)。
[0023] 依据H.264标准的定义,4×4亮度帧内预测具有模式0~模式8等9种预测模式。对于不同的亮度预测模式,有不同的计算公式。下面进行逐一介绍,并请参照图1。其中,x与y为0~3,且“>>”与“<<”分别表示“向右位移”与“向左位移”的运算。例如,U<<V表示数值U向左位移V个位,而U>>V表示数值U向右位移V个位。
[0024] 模式0(H.264的Intra_4x4_Vertical模式):
[0025] P[x,y]=P[x,-1]
[0026] 模式1(H.264的Intra_4x4_Horizontal模式):
[0027] P[x,y]=P[-1,y]
[0028] 模式2(H.264的Intra_4x4_DC模式):
[0029] 情况一(LT=3):当像素值P[x,-1]、P[-1,y](x与y为0~7)都可用时
[0030] P[x,y]=(P[0,-1]+P[1,-1]+P[2,-1]+P[3,-1]+P[-1,0]
[0031] +P[-1,1]+P[-1,2]+P[-1,3]+4)>>3
[0032] 情况二(LT=1):当左边像素值P[-1,y](y为0~7)可用时
[0033] P[x,y]=(P[-1,0]+P[-1,1]+P[-1,2]+P[-1,3]+2)>>2
[0034] 情况三(LT=2):当上面像素值P[x,-1](x为0~7)可用时
[0035] P[x,y]=(P[0,-1]+P[1,-1]+P[2,-1]+P[3,-1]+2)>>2
[0036] 情况四(LT=0):否则
[0037] P[x,y]=128
[0038] 模式3(H.264的Intra_4x4_Diagonal_Down_Left模式):
[0039] 如果x=3且y=3
[0040] P[x,y]=(P[6,-1]+3×P[7,-1]+2)>>2
[0041] 否则
[0042] P[x,y]=(P[x+y,-1]+2×P[x+y+1,-1]+P[x+y+2,-1]+2)>>2
[0043] 模式4(H.264的Intra_4x4_Diagonal_Down_Right模式):
[0044] 如果x>y
[0045] P[x,y]=(P[x-y-2,-1]+2×P[x-y-1,-1]+P[x-y,-1]+2)>>2
[0046] 如果x<y
[0047] P[x,y]=(P[-1,y-x-2]+2×P[-1,y-x-1]+P[-1,y-x]+2)>>2
[0048] 否则
[0049] P[x,y]=(P[0,-1]+2×P[-1,-1]+P[-1,0]+2)>>2
[0050] 模式5(H.264的Intra_4x4_Vertical_Right模式):
[0051] 如果2×x-y=0,2,4,6
[0052] P[x,y]=(P[x-(y>>1)-1,-1]+P[x-(y>>1),-1]+1)>>1
[0053] 如果2×x-y=1,3,5
[0054] P[x,y]=(P[x-(y>>1)-2,-1]+2×P[x-(y>>1)-1,-1]+
[0055] P[x-(y>>1),-1]+2)>>2
[0056] 如果2×x-y=-1
[0057] P[x,y]=(P[-1,0]+2×P[-1,-1]+P[0,-1]+2)>>2
[0058] 否则
[0059] P[x,y]=(P[-1,y-1]+2×P[-1,y-2]+P[-1,y-3]+2)>>2
[0060] 模式6(H.264的Intra_4x4_Horizontal_Down模式):
[0061] 如果2×y-x=0,2,4,6
[0062] P[x,y]=(P[-1,y-(x>>1)-1]+P[-1,y-(x>>1)]+1)>>1
[0063] 如果2×y-x=1,3,5
[0064] P[x,y]=(P[-1,y-(x>>1)-2]+2×P[-1,y-(x>>1)-1]+
[0065] P[-1,y-(x>>1)]+2)>>2
[0066] 如果2×y-x=-1
[0067] P[x,y]=(P[-1,0]+2×P[-1,-1]+P[0,-1]+2)>>2
[0068] 否则
[0069] P[x,y]=(P[x-1,-1]+2×P[x-2,-1]+P[x-3,-1]+2)>>2
[0070] 模式7(H.264的Intra_4x4_Vertical_Left模式):
[0071] 如果y=0,2
[0072] P[x,y]=(P[x+(y>>1),-1]+P[x+(y>>1)+1,-1]+1)>>1
[0073] 否则(即y=1,3)
[0074] P[x,y]=(P[x+(y>>1),-1]+2×P[x+(y>>1)+1,-1]+
[0075] P[x+(y>>1)+2,-1]+2)>>2
[0076] 模式8(H.264的Intra_4x4_Horizontal_Up模式):
[0077] 如果x+2×y=0,2,4
[0078] P[x,y]=(P[-1,y+(x>>1)]+P[-1,y+(x>>1)+1]+1)>>1
[0079] 如果x+2×y=1,3
[0080] P[x,y]=(P[-1,y+(x>>1)]+2×P[-1,y+(x>>1)+1]+
[0081] P[-1,y+(x>>1)+2]+2)>>2
[0082] 如果x+2×y=5
[0083] P[x,y]=(P[-1,2]+3×P[-1,3]+2)>>2
[0084] 否则(即x+2×y>5)
[0085] P[x,y]=P[-1,3]
[0086] 图2描述了8×8被预测块与预测亮度时会用到的周围像素。其中,像素a1、b1、c1、d1、e1、f1、g1、h1的值分别为P[x,-1],x=8~15中的一个。H.264视频编解码标准的8×8帧内预测,就是根据X、A~H、a1~h1、I~P这25个像素的值,来预测8×8被预
测块210的像素值(描述为P[x,y],x与y为0~7)。
[0087] 依据H.264标准的定义,8×8亮度帧内预测具有模式0~模式8等9种预测模式。对于所有的模式,计算过程可以划分为二步。第一步是根据像素X、像素A~H、像素a1~
h1、像素I~P的值得到值P’[-1,-1]、P’[x,-1]、与P’[-1,y],其中x=0~15,y=
0~7。对于不同的位置有不同的计算公式,例举如下:
[0088] 计算P’[0,-1]:
[0089] 如果P[-1,-1]可用,则
[0090] P’[0,-1]=(P[-1,-1]+2×P[0,-1]+P[1,-1]+2)>>2
[0091] 否则
[0092] P’[0,-1]=(3×P[0,-1]+P[1,-1]+2)>>2
[0093] 计算P’[x,-1],x=1~14:
[0094] P’[x,-1]=(P[x-1,-1]+2×P[x,-1]+P[x+1,-1]+2)>>2
[0095] 计算P’[15,-1]:
[0096] P’[15,-1]=(P[14,-1]+3×P[15,-1]+2)>>2
[0097] 计算P’[-1,-1]:
[0098] 如果P[0,-1]与P[-1,0]皆可用,则
[0099] P’[-1,-1]=(P[0,-1]+2×P[-1,-1]+P[-1,0]+2)>>2
[0100] 如果P[0,-1]可用,而P[-1,0]不可用,则
[0101] P’[-1,-1]=(3×P[-1,-1]+P[0,-1]+2)>>2
[0102] 否则
[0103] P’[-1,-1]=(3×P[-1,-1]+P[-1,0]+2)>>2
[0104] 计算P’[-1,0]:
[0105] 如果P[-1,-1]可用,则
[0106] P’[-1,0]=(P[-1,-1]+2×P[-1,0]+P[-1,1]+2)>>2
[0107] 否则
[0108] P’[-1,0]=(3×P[-1,0]+P[1,-1]+2)>>2
[0109] 计算P’[-1,y],y=1~6:
[0110] P’[-1,y]=(P[-1,y-1]+2×P[-1,y]+P[-1,y+1]+2)>>2
[0111] 计算P’[-1,7]:
[0112] P’[-1,7]=(P[-1,6]+3×P[-1,0]+2)>>2
[0113] 第二步是根据得到的值P’[-1,-1]、P’[x,-1](x=0~15)与P’[-1,y](y=0~7)来计算8×8被预测块210的像素值P[x,y](x与y为0~7)。对于不同的预测模
式,有不同的计算公式。下面进行逐一介绍,并请参照图2。其中,x与y为0~7。
[0114] 模式0(H.264的Intra_8×8_Vertical模式):
[0115] P[x,y]=P’[x,-1]
[0116] 模式1(H.264的Intra_8×8_Horizontal模式):
[0117] P[x,y]=P’[-1,y]
[0118] 模式2(H.264的Intra_8×8_DC模式):
[0119] 情况一(LT=3):当像素值P[x,-1]、P[-1,y]都可用时
[0120] P[x,y]=(P’[0,-1]+P’[1,-1]+P’[2,-1]+P’[3,-1]+P’[4,-1]+
[0121] P’[5,-1]+P’[6,-1]+P’[7,-1]+P’[-1,0]+P’[-1,1]+
[0122] P’[-1,2]+P’[-1,3]+P’[-1,4]+P’[-1,5]+P’[-1,6]+
[0123] P’[-1,7]+8)>>4
[0124] 情况二(LT=1):当左边像素值P[-1,y]可用时
[0125] P[x,y]=(P’[-1,0]+P’[-1,1]+P’[-1,2]+P’[-1,3]+P’[-1,4]+
[0126] P’[-1,5]+P’[-1,6]+P’[-1,7]+4)>>3
[0127] 情况三(LT=2):当上面像素值P[x,-1](x为0~7)可用时
[0128] P[x,y]=(P’[0,-1]+P’[1,-1]+P’[2,-1]+P’[3,-1]+P’[4,-1]+
[0129] P’[5,-1]+P’[6,-1]+P’[7,-1]+4)>>3
[0130] 情况四(LT=0):否则
[0131] P[x,y]=128
[0132] 模式3(H.264的Intra_8×8_Diagonal_Down_Left模式):
[0133] 如果x=7且y=7
[0134] P[x,y]=(P’[14,-1]+3×P’[15,-1]+2)>>2
[0135] 否则
[0136] P[x,y]=(P’[x+y,-1]+2×P’[x+y+1,-1]+P’[x+y+2,-1]+
[0137] 2)>>2
[0138] 模式4(H.264的Intra_8×8_Diagonal_Down_Right模式):
[0139] 如果x>y
[0140] P[x,y]=(P’[x-y-2,-1]+2×P’[x-y-1,-1]+P’[x-y,-1]+2)>>2
[0141] 如果x<y
[0142] P[x,y]=(P’[-1,y-x-2]+2×P’[-1,y-x-1]+P’[-1,y-x]+2)>>2
[0143] 否则
[0144] P[x,y]=(P’[0,-1]+2×P’[-1,-1]+P’[-1,0]+2)>>2
[0145] 模式5(H.264的Intra_8×8_Vertical_Right模式):
[0146] 如果2×x-y=0,2,4,6,8,10,12,14
[0147] P[x,y]=(P’[x-(y>>1)-1,-1]+P’[x-(y>>1),-1]+1)>>1
[0148] 如果2×x-y=1,3,5,7,9,11,13
[0149] P[x,y]=(P’[x-(y>>1)-2,-1]+2×P’[x-(y>>1)-1,-1]+
[0150] P’[x-(y>>1),-1]+2)>>2
[0151] 如果2×x-y=-1
[0152] P[x,y]=(P’[-1,0]+2×P’[-1,-1]+P’[0,-1]+2)>>2
[0153] 否则(即2×x-y=-2,-3,-4,-5,-6,-7)
[0154] P[x,y]=(P’[-1,y-2×x-1]+2×P’[-1,y-2×x-2]+
[0155] P’[-1,y-2×x-3]+2)>>2
[0156] 模式6(H.264的Intra_8×8_Horizontal_Down模式):
[0157] 如果2×y-x=0,2,4,6,8,10,12,14
[0158] P[x,y]=(P’[-1,y-(x>>1)-1]+P’[-1,y-(x>>1)]+1)>>1
[0159] 如果2×y-x=1,3,5,7,9,11,13
[0160] P[x,y]=(P’[-1,y-(x>>1)-2]+2×P’[-1,y-(x>>1)-1]+
[0161] P’[-1,y-(x>>1)]+2)>>2
[0162] 如果2×y-x=-1
[0163] P[x,y]=(P’[-1,0]+2×P’[-1,-1]+P’[0,-1]+2)>>2
[0164] 否则(即2×x-y=-2,-3,-4,-5,-6,-7)
[0165] P[x,y]=(P’[x-2×y-1,-1]+2×P’[x-2×y-2,-1]+
[0166] P’[x-2×y-3,-1]+2)>>2
[0167] 模式7(H.264的Intra_8×8_Vertical_Left模式):
[0168] 如果y=0,2,4,6
[0169] P[x,y]=(P’[x+(y>>1),-1]+P’[x+(y>>1)+1,-1]+1)>>1
[0170] 否则(即y=1,3,5,7)
[0171] P[x,y]=(P’[x+(y>>1),-1]+2×P’[x+(y>>1)+1,-1]+
[0172] P’[x+(y>>1)+2,-1]+2)>>2
[0173] 模式8(H.264的Intra_8×8_Horizontal_Up模式):
[0174] 如果x+2×y=0,2,4,6,8,10,12
[0175] P[x,y]=(P’[-1,y+(x>>1)]+P’[-1,y+(x>>1)+1]+1)>>1
[0176] 如果x+2×y=1,3,5,7,9,11
[0177] P[x,y]=(P’[-1,y+(x>>1)]+2×P’[-1,y+(x>>1)+1]+
[0178] P’[-1,y+(x>>1)+2]+2)>>2
[0179] 如果x+2×y=13
[0180] P[x,y]=(P’[-1,6]+3×P’[-1,7]+2)>>2
[0181] 否则(即x+2×y>13)
[0182] P[x,y]=P’[-1,7]
[0183] 依据H.264标准的定义,色度帧内预测具有模式0~模式3等4种预测模式。不管一个色度块的大小是8×8、4×8还是4×4,他们的算法都是基于4×4的,并且4×4与
4×8只是8×8的一种特殊情况。因此,以下仅针对8×8进行讨论。被预测像素与参考像
素的位置关系可以参照图2。对于不同的色度预测模式,有不同的计算公式。下面列举了本实施例用到的预测模式。
[0184] 模式0(H.264的Intra_Chroma_DC模式):
[0185] 情况一:对于像素值P[x,y](其中x,y=0~3)与像素值P[x,y](其中x,y=4~7)
[0186] 若像素值P[x,-1]、P[-1,y](其中x,y=0~7)都可用时(LT=3)
[0187] P[x,y]=(P[0,-1]+P[1,-1]+P[2,-1]+P[3,-1]+P[-1,0]+P[-1,1]
[0188] +P[-1,2]+P[-1,3]+4)>>3 (x,y=0~3)
[0189] P[x,y]=(P[4,-1]+P[5,-1]+P[6,-1]+P[7,-1]+P[-1,4]+P[-1,5]
[0190] +P[-1,6]+P[-1,7]+4)>>3 (x,y=4~7)
[0191] 若左边像素值P[-1,y](其中y=0~7)可用时(LT=1)
[0192] P[x,y]=(P[-1,0]+P[-1,1]+P[-1,2]+P[-1,3]+2)>>2
[0193] (其中x,y=0~3)
[0194] P[x,y]=(P[-1,4]+P[-1,5]+P[-1,6]+P[-1,7]+2)>>2
[0195] (其中x,y=4~7)
[0196] 若上面像素值P[x,-1](x为0~7)可用时(LT=2)
[0197] P[x,y]=(P[0,-1]+P[1,-1]+P[2,-1]+P[3,-1]+2)>>2
[0198] (其中x,y=0~3)
[0199] P[x,y]=(P[4,-1]+P[5,-1]+P[6,-1]+P[7,-1]+2)>>2
[0200] (其中x,y=4~7)
[0201] 否则(LT=0)
[0202] P[x,y]=128 (其中x,y=0~3或x,y=4~7)
[0203] 情况二:对于像素值P[x,y](其中x=4~7,y=0~3)
[0204] 若上边的像素值P[x,-1](其中x=4~7)都可用时(LT=2)
[0205] P[x,y]=(P[4,-1]+P[5,-1]+P[6,-1]+P[7,-1]+2)>>2
[0206] (其中x=4~7,y=0~3)
[0207] 若左边像素值P[-1,y](其中y=0~3)都可用时(LT=1)
[0208] P[x,y]=(P[-1,0]+P[-1,1]+P[-1,2]+P[-1,3]+2)>>2
[0209] (其中x=4~7,y=0~3)
[0210] 否则
[0211] P[x,y]=128 (其中x=4~7,y=0~3)
[0212] 情况三:对于像素值P[x,y](其中x=0~3,y=4~7)
[0213] 若左边像素值P[-1,y](其中y=4~7)可用时(LT=1)
[0214] P[x,y]=(P[-1,4]+P[-1,5]+P[-1,6]+P[-1,7]+2)>>2
[0215] (其中x=0~3,y=4~7)
[0216] 若上面像素值P[x,-1](x为0~3)可用时(LT=2)
[0217] P[x,y]=(P[0,-1]+P[1,-1]+P[2,-1]+P[3,-1]+2)>>2
[0218] (其中x=0~3,y=4~7)
[0219] 否则
[0220] P[x,y]=128 (其中x=0~3或y=4~7)
[0221] 模式1(H.264的Intra_Chroma_Horizontal模式):
[0222] P[x,y]=P’[-1,y](其中x,y=0~7)
[0223] 模式2(H.264的Intra_Chroma_Vertical模式):
[0224] P[x,y]=P’[x,-1](其中x,y=0~7)
[0225] 模式3(H.264的Intra_Chroma_Plane模式):
[0226] 由于这个模式的计算公式与其他模式很不一样,本实施例并不支持该模式。在实际应用中可以把该模式当成特殊情况来进行特殊处理。
[0227] 另外,依据AVS标准的定义,帧内预测的基本单位是8×8。AVS标准的亮度帧内预测具有模式0~模式4等5种预测模式。被预测像素与参考像素的位置关系可以参照图2。
对于不同的亮度预测模式,有不同的计算公式。下面列举了AVS标准的亮度帧内预测模式。
[0228] 模式0(AVS的Intra_8×8_Vertical模式):
[0229] P[x,y]=P’[x,-1] (其中x,y=0~7)
[0230] 模式1(AVS的Intra_8×8_Horizontal模式):
[0231] P[x,y]=P’[-1,y] (其中x,y=0~7)
[0232] 模式2(AVS的Intra_8×8_DC模式):
[0233] 此模式的处理情形分为二步:
[0234] 第一步:与H.264处理8×8时的第一步完全一致。
[0235] 第二步:
[0236] 情况一(LT=3):当P[x,-1]、P[-1,y]都可用时
[0237] P[x,y]=(P’[x,-1]+P’[-1,y])>>1 (其中x,y=0~7)
[0238] 情况二(LT=1):当左边像素值P[-1,y]可用时
[0239] P[x,y]=P’[-1,y] (其中x,y=0~7)
[0240] 情况三(LT=2):当上面像素值P[x,-1]可用时
[0241] P[x,y]=P’[x,-1] (其中x,y=0~7)
[0242] 情况四(LT=0):否则
[0243] P[x,y]=128 (其中x,y=0~3)
[0244] 模式3(AVS的Intra_8×8_Down_Left模式):
[0245] 此模式的处理情形分为二步:
[0246] 第一步:与H.264处理8×8时的第一步完全一致。
[0247] 第二步:
[0248] P[x,y]=(P’[x+y+1,-1]+P’[-1,x+y+1])>>1
[0249] 模式4(AVS的Intra_8×8_Down_Right模式):
[0250] 如果x=y
[0251] P[x,y]=(P[-1,0]+2×P[-1,-1]+P[0,-1]+2)>>2
[0252] 如果x>y
[0253] P[x,y]=(P[x-y,-1]+2×P[x-y-1,-1]+P[x-y,-2]+2)>>2
[0254] 否则(即x<y)
[0255] P[x,y]=(P[-1,y-x]+2×P[-1,y-x-1]+P[-1,y-x-2]+2)>>2
[0256] 依据AVS标准的定义,色度帧内预测具有模式0~模式3等4种预测模式。AVS的色度帧内预测的基本单位是8×8。被预测像素与参考像素的位置关系可以参照图2。对于
不同的色度预测模式,有不同的计算公式。下面列举了本实施例用到的预测模式。
[0257] 模式0(AVS的Intra_Chroma_DC模式):
[0258] 与AVS的亮度帧内预测Intra_8x8_DC模式相同。
[0259] 模式1(AVS的Intra_Chroma_Horizontal模式):
[0260] P[x,y]=P[-1,y] (其中x,y=0~7)
[0261] 模式2(AVS的Intra_Chroma_Vertical模式):
[0262] P[x,y]=P[x,-1] (其中x,y=0~7)
[0263] 模式3(AVS的Intra_Chroma_Plane模式):
[0264] 与H.264的色度帧内预测Intra_Chroma_Plane模式类似,需要做特殊的处理。于本实施例中,暂不予支持。
[0265] 在本实施例中,上述所有模式将被划分为二类,一类是非DC模式,另一类是DC模式。针对上述非DC模式,其每一个像素的计算过程可以归纳为一个统一的公式:
[0266] P[x,y]=(Src0+Src1<<C+Src2+R)>>S (等式1)
[0267] 其中,Src0、Src1与Src2分别为预先择定的周围像素值,C、R、S为运算参数。也就是说,本实施例可以通过给定每像素对应的运算参数C、R、S值,并且选择好周围像素值Src0、Src1与Src2,就能得到被预测块中某一像素的预测值P[x,y]。
[0268] 举个例子,在H.264标准中的Intra_4x4_DiagonalDown_Left模式下,根据前述H.264的公式,对于被预测块中像素P[3,3]而言,取C=1、R=2、S=2,然后取Src0=
P[6,-1]、Src1=P[7,-1]、Src2=P[7,-1];对于被预测块中像素P[3,2]而言,取C=1、R=2、S=2,然后取Src0=P[5,-1]、Src 1=P[6,-1]、Src2=P[7,-1]。从这里可以
看出,整个计算过程可以描述为:得到周围的参考像素值P[-1,-1]、P[x,-1]、P[-1,y],x=
0~15且y=0~7以及所有的运算参数C、R、S值,然后根据具体的模式在这些值中挑选
合适的控制信号就可以了。
[0269] 经过进一步研究,运算参数C、R、S值有如下的对应关系:
[0270] 若S=0,则R=0,则C=0;
[0271] 若S=1,则R=1,则C=0;
[0272] 若S=2,则R=2,则C=1。
[0273] 唯一不符合的情况是AVS的Intra_8x8_DC模式,且周围像素都可用时,它的运算参数C、R、S值分别是0、0、1。因此,如果知道运算参数S值,就可以通过等式2与等式3得到运算参数C与R值。
[0274] 若为Intra_8x8_DC模式则R=0,否则R=S (等式2)
[0275] C=R>>1 (等式3)
[0276] 针对上述各种DC模式,为了尽量与非DC模式的情况保持一致,本实施例可以将其计算公式归纳为:
[0277] P[x,y]=(ADD0+ADD1+ADD2+R’)>>S’ (等式4)
[0278] P[x,y]=((ADD0+ADD1+ADD2)+(ADD0’+ADD1’
[0279] +ADD2’)+R’)>>S’ (等式5)
[0280] 等式4适用于最多需要8个周围像素的情况,等式5适用于需要超过8个周围像素的情况。其中,ADD0、ADD1与ADD2分别为等式1在DC模式下的三个运算结果。ADD0’、
ADD1’与ADD2’亦为等式1在DC模式下的运算结果,并分别为ADD0、ADD1与ADD2在时间
上的下一个运算结果。在DC模式下,等式1的运算参数C、R、S值均为0。R’、S’为运算参数。经过进一步研究,运算参数R’、S’值有如下的对应关系:
[0281] 若S’=2,则R’=2;
[0282] 若S’=3,则R’=4;
[0283] 若S’=4,则R’=8。
[0284] 因此,如果知道运算参数S值,就可以通过等式6与等式7得到运算参数S’与R’值。
[0285] S’=S+1 (等式6)
[0286] R’=1<<S (等式7)
[0287] 图3是依照本发明说明一种帧内预测装置300的实施例。帧内预测装置300包括输入数据单元310、选择控制单元320、输入数据选择单元330、处理单元340、输出数据选
择单元350。输入数据单元310提供被预测块的部分或全部周围像素的像素值。以图1为
例(即4×4被预测块),输入数据单元310可以提供被预测块110的周围像素A~H、像素
I~P与像素X的像素值。若以图2为例(即8×8被预测块),输入数据单元310可以提
供被预测块210的周围像素A~H、像素a1~h1、像素I~P与像素X的像素值。
[0288] 输入数据单元310可以任何手段实现,例如存储器、拴锁器等。本实施例中将以多个暂存器来实现输入数据单元310。输入数据单元310内的暂存器数量须视所支持的帧内预测模式而决定。例如,若帧内预测装置300只需支持H.264的Intra_4x4_DC模式,则输
入数据单元310内只需配置8个暂存器,就足够存放该模式所需的8个周围像素A、B、C、D、I、J、K、L的像素值。于本实施例中,为了能够支持H.264与AVS标准的各种帧内预测模式,因此配置了26个暂存器,分别存放周围像素A~H、像素a1~h1、像素I~P与像素X的
像素值,如图3所示。其中储存Z值(即0值)的暂存器可以视需求而省略(需配合输入
数据选择单元330的设计而决定)。
[0289] 选择控制单元320提供输入选择控制信号Sin0~Sin23、运算参数信号S以及输出选择控制信号Sout0~Sout7。输入数据选择单元330耦接至输入数据单元310与选择
控制单元320,用以依据输入选择控制信号Sin0~Sin23而选择所述像素值。处理单元340
耦接至输入数据选择单元330,用以依据运算参数信号S而运算输入数据选择单元330所选
择的像素值,以产生多个运算结果。图3所示的运算参数信号S由选择控制单元320提供,
经由输入数据选择单元330而传送给处理单元340。在其他实施例中,选择控制单元320亦
可以将运算参数信号S直接提供给处理单元340,而不需经过输入数据选择单元330。输出
数据选择单元350耦接至处理单元340与选择控制单元320,用以依据输出选择控制信号
Sout0~Sout7而选择输出处理单元340的部分或全部运算结果。
[0290] 综合资源与速度二方面的考虑,本实施例设计了一次计算8个像素的电路。对于一个4×4的被预测块,需要分2次来计算其上半部与下半部的像素预测值。以图1为例,被
预测块110需要分二次来计算其上半部(即P[0,0]、P[1,0]、P[2,0]、P[3,0]、P[0,1]、P[1,
1]、P[2,1]、P[3,1])与下半部(即P[0,2]、P[1,2]、P[2,2]、P[3,2]、P[0,3]、P[1,3]、P[2,
3]、P[3,3])的像素预测值。对于一个8×8的被预测块,需要分8次来计算其像素预测值。
以图2为例,被预测块210需要分8次来计算其子块000、001、010、011、100、101、110、111的像素预测值。前述子块000包含P[0,0]、P[1,0]、P[2,0]、P[3,0]、P[0,1]、P[1,1]、P[2,
1]、P[3,1],子块001包含P[0,2]、P[1,2]、P[2,2]、P[3,2]、P[0,3]、P[1,3]、P[2,3]、P[3,
3]。前述子块010包含P[4,0]、P[5,0]、P[6,0]、P[7,0]、P[4,1]、P[5,1]、P[6,1]、P[7,1],子块011包含P[4,2]、P[5,2]、P[6,2]、P[7,2]、P[4,3]、P[5,3]、P[6,3]、P[7,3]。前述子块100包含P[0,4]、P[1,4]、P[2,4]、P[3,4]、P[0,5]、P[1,5]、P[2,5]、P[3,5],子块101包含P[0,6]、P[1,6]、P[2,6]、P[3,6]、P[0,7]、P[1,7]、P[2,7]、P[3,7]。前述子块110包含P[4,4]、P[5,4]、P[6,4]、P[7,4]、P[4,5]、P[5,5]、P[6,5]、P[7,5],子块111包含P[4,6]、P[5,6]、P[6,6]、P[7,6]、P[4,7]、P[5,7]、P[6,7]、P[7,7]。
[0291] 因此,处理单元340需要配置8个第一运算单元OU1-0、OU1-1、OU1-2、OU1-3、OU1-4、OU1-5、OU1-6、OU1-7以及第二运算单元OU2,以分别计算被预测块当中的8个像素
值。若想要让帧内预测装置300一次计算16个像素(即一次计算4×4像素块),便需在处
理单元340配置16个第一运算单元以及1个第二运算单元OU2。以此类推,若想要让帧内
预测装置300一次计算64个像素(即一次计算8×8像素块),便需在处理单元340配置
64个第一运算单元以及1个第二运算单元OU2。
[0292] 输入数据选择单元330可以第一选择单元、第二选择单元、与第三选择单元来提供8个第一运算单元OU1-0~OU1-7运算所需要的周围像素值Src0、Src1与Src2。表1是
说明输入数据选择单元330中,输入选择控制信号Sin0~Sin23与被选择的周围像素的对
应表。依据选择控制单元320所提供的输入选择控制信号Sin0~Sin23,输入数据选择单
元330可以使用表1而选择对应的周围像素。例如,若选择控制单元320所发出的输入选
择控制信号Sin0~Sin23为[0,1,3,1,2,4,5,7,0,0,0,0,1,0,0,0,4,0,0,1,0,0,0,0],表示第一选择单元的输出P0~P7分别为A、F、O、H、I、X、X、f1,第二选择单元的输出P 8~P 15分别为B、C、D、H、F、D、A、C,而第三选择单元的输出P 16~P23分别为Z、D、B、G、A、A、B、B。也就是说,处理单元340中的第一运算单元OU 1-0~OU 1-7所接收到的周围像
素值Src0、Src 1与Src2分别为[A,B,0]、[F,C,D]、[O,D,B]、[H,H,G]、[I,F,A]、[X,D,A]、[X,A,B]、[f1,C,B]。于本实施例中,输入数据选择单元330的输出P0~P23均由对应的数据选择器(或多工器)来实现。以第一选择单元为例,图4是依照本发明说明图3
的输入数据选择单元330中第一选择单元的实施例。第一选择单元具有8个“8选1”的多
工器。这些多工器耦接于输入数据单元310与处理单元340之间。这些多工器分别受控于
输入选择控制信号Sin0~Sin7其中之一。依据选择控制单元320所提供的输入选择控制
信号Sin0~Sin7,各多工器选择其中一个周围像素,以将所选择的像素值提供给处理单元
340进行运算。
[0293] 表1:输入数据选择单元330中信号Sin0~Sin23与被选择像素的对应表
[0294]
[0295] 如上所述,处理单元340包括8个第一运算单元OU1-0~OU1-7。第一运算单元OU1-0~OU1-7各自依据选择控制单元320所提供的运算参数信号S,计算Tn=(Src0+Src1
<<C+Src2+R)>>S(即前述等式1),以获得运算结果Tn(即图3中的T0、T1、T2、T3、T4、T5、T6、T7)。其中Src0、Src1与Src2分别为输入数据选择单元330所选择的像素值。其
中若帧内预测运算模式为AVS的Intra_8×8_DC模式,且被预测块周围像素的像素值都可
用,则R=0,否则R=S(即前述等式2)。另外,C=R>>1(即前述等式3)。因此,选择
控制单元320只需提供运算参数信号S,第一运算单元OU1-0~OU1-7便可以算出运算参数
信号R与C。需注意的是,在同一时间中第一运算单元OU1-0~OU1-7所收到的运算参数
信号S不一定相同。第一运算单元OU1-0~OU1-7所需的运算参数信号S,须由选择控制单
元320决定。例如,若选择控制单元320提供的运算参数信号S为[2,2,1,1,2,1,2,1,0],表示在同一时间中第一运算单元OU1-0所收到的运算参数信号S为2,第一运算单元OU1-1
所收到的运算参数信号S为2,第一运算单元OU1-2所收到的运算参数信号S为1。以此类
推,第一运算单元OU1-7所收到的运算参数信号S为1,第二运算单元OU2所收到的运算参
数信号S则为0。
[0296] 图5是依照本发明说明图3中第一运算单元OU1-0的实施范例。其它第一运算单元OU1-1~OU1-7的实施方式,亦可比照图5与相关说明。第一运算单元OU1-0包括第一
切换器510、第一右位移器520、第一左位移器530、第一加法器540以及第二右位移器550。
第一切换器510接收运算参数信号S。若帧内预测运算模式为AVS的Intra_8×8_DC模式,
且该被预测块周围像素的像素值都可用,则第一切换器510依据选择控制单元320的控制
信号INTRA_8x8_DC,选择输出“0”值作为参数R;否则,第一切换器510选择输出运算参数信号S作为参数R。第一右位移器520耦接至第一切换器510,用以将参数R向右位移1个
位,以作为参数C。第一左位移器530耦接至输入数据选择单元330与第一右位移器520,用
以将输入数据选择单元330内的第二选择单元所选择的像素值Src1向左位移C个位。于
第一运算单元OU1-0中,第一左位移器530将输入数据选择单元330的第二选择单元的输
出P8向左位移C个位。
[0297] 第一加法器540耦接至输入数据选择单元330、第一切换器510与第一左位移器530。第一加法器540加总输入数据选择单元330所选择的像素值Src0与Src2、第一左位
移器530的输出(即像素值Src1<<C)以及切换器510输出的参数R。于第一运算单元
OU1-0中,输入数据选择单元330的输出P0与P16作为像素值Src0与Src2。
[0298] 第二右位移器550耦接至第一加法器540,用以将第一加法器540的输出向右位移S个位,以作为运算结果Tn。于第一运算单元OU1-0中,以T0表示前述运算结果Tn。因
此,运算单元OU1-0可以完成前述等式1~等式3的运算作业。
[0299] 视所支持的帧内预测模式,可以决定是否省略图3中处理单元340的第二运算单元OU2。例如,若帧内预测装置300不需支持DC模式(例如H.264的Intra_8×8_DC模式
等),则不需要第二运算单元OU2。
[0300] 若目前所进行的帧内预测模式最多需要8个周围像素,则通过选择控制单元320的控制,第二运算单元OU2依据选择控制单元320所提供的运算参数信号S,计算等式
Tn’=(T0+T1+T2+R’)>>S’(即前述等式4),以获得运算结果Tn’(在图3中标示为
T8)。若目前所进行的帧内预测模式需要超过8个周围像素,则通过选择控制单元320的
控制,第二运算单元OU2依据选择控制单元320所提供的运算参数信号S,计算等式Tn’=
((T0+T1+T2)+(T0’+T1’+T2’)+R’)>>S’(即前述等式5),以获得运算结果Tn’。其中T0、T1与T2分别为第一运算单元OU1-0、OU1-1与OU1-2所输出的运算结果,而(T0’、T1’、T2’)分别为第一运算单元OU1-0、OU1-1与OU1-2下一次输出的运算结果。第二运算单元
OU2可以依据选择控制单元320所提供的运算参数信号S,计算等式4与等式5所需的S’
与R’,其中S’=S+1(即前述等式6),且R’=1<<S(即前述等式7)。
[0301] 图6是依照本发明说明图3中第二运算单元OU2的实施范例。第二运算单元包括第二加法器610、第二左位移器620、暂存器630、第二切换器640、第三加法器650、第三右位移器660以及第三切换器670。第二加法器610加总“1”值与选择控制单元320所提供的
运算参数信号S,并将加总结果作为参数S’。第二左位移器620将“1”值向左位移S个位,以作为参数R’。暂存器630暂存第三加法器650所输出的目前加总值,并提供第三加法器
650先前输出的先前加总值。第二切换器640耦接至第二左位移器620与暂存器630。选
择控制单元320通过输出控制信号cALU_1,可以控制切换器640选择输出参数R’或者选择
输出暂存器630所输出的先前加总值。
[0302] 第三加法器650加总第一运算单元OU1-0、OU1-1与OU1-2输出的运算结果T0、T1、T2与第二切换器640的输出,以作为目前加总值。若第二切换器640选择输出参数R’,则
第三加法器650输出的目前加总值相当于(T0+T1+T2+R’)。若第二切换器640选择输出所
述先前加总值,相当于将第三加法器650先前的计算结果(T0+T1+T2+R’)反馈给第三加法
器650,则第三加法器650输出的目前加总值相当于((T0+T1+T2+R’)+T0’+T1’+T2’)。
[0303] 第三右位移器660耦接至第三加法器650与第二加法器610,用以将第三加法器650所输出的目前加总值向右位移S’个位。第三切换器670耦接至第三右位移器660。选
择控制单元320通过输出控制信号cALU_0,可以控制第三切换器670选择输出“128”值作
为运算结果Tn’,或者选择第三右位移器660的输出作为运算结果Tn’(图3与图6中记为
T8)。
[0304] 上述控制信号cALU_1与控制信号cALU_0都是由选择控制单元320所决定。如果目前所进行的帧内预测模式最多需要8个周围像素来完成等式4的运算,则控制信号
cALU_1=0;控制信号cALU_0则须视前述各个DC模式的情况(LT=0,1,2,3)而定;若LT
=0则cALU_0=0,否则cALU_0=1。如果目前所进行的帧内预测模式需要超过8个周围
像素来完成等式5的运算,由于要计算二次,所以控制信号cALU_1与cALU_0要有二组值。
在第一次计算时,控制信号cALU_1=0,而控制信号cALU_0无所谓。在第二次计算时,控制信号cALU_1=1,而控制信号cALU_0则须视前述各个DC模式的情况(LT=0,1,2,3)而
定;若LT=0则cALU_0=0,否则cALU_0=1。
[0305] 请继续参照图3,输出数据选择单元350接收选择控制单元320所提供的输出选择控制信号Sout0~Sout7。依据输出选择控制信号Sout0~Sout7,输出数据选择单元350
可以选择前述处理单元340所输出的运算结果T0~T8其中的部分,并将所选择的运算结
果输出做为帧内预测装置300的输出S0、S1、S2、S3、S4、S5、S6、S7。输出S0~S7便是被预测块中8个像素的预测值。例如,若输出选择控制信号Sout0~Sout7为[0,1,2,3,4,5,
6,7],则输出数据选择单元350选择前述运算结果T0~T7,并分别作为输出S0~S7。若
输出选择控制信号Sout0~Sout7为[8,8,8,8,8,8,8,8],则输出数据选择单元350选择前述运算结果T8作为输出S0~S7。
[0306] 输出数据选择单元350可以任何手段实现。例如,使用8个“9选1”的选择器(或多工器)来实现输出数据选择单元350,其中输出选择控制信号Sout0~Sout7各自控制1
个选择器,而每一个选择器依据对应的输出选择控制信号各自选择运算结果T0~T7其中
一个。因此,这8个“9选1”选择器可以选择前述运算结果T0~T7,并分别作为输出S0~
S7。
[0307] 选择控制单元320依据目前所进行的选择预测模式(例如H.264的Intra_4x4_Vertical模式)查找“输入选择控制表”、“运算参数表”以及“输出选择控制表”,以分别获得并提供输入选择控制信号Sin0~Sin23、运算参数信号S以及输出选择控制信号
Sout0~Sout7。前述三种表格可能内建于选择控制单元320,也可以建置在外部存储器(未
绘示)中,而供选择控制单元320存取。依据所欲支持的帧内预测模式的不同,本领域技术
人员可以自行安排前述三种表格的内容。
[0308] 以H.264中4×4亮度帧内预测的模式0~模式8为例。表2、表3与表4分别是H.264中4×4亮度帧内预测模式0~模式8的输入选择控制表、运算参数表以及输出选择
控制表。由于图3所示的帧内预测装置300只配置8个第一运算单元,也就是一次只能计算
8个像素数据,因此一个4×4被预测块需要分为上半部与下半部,分二次计算获得4×4被
预测块中全部16个像素值。表2~4中,“模式”栏位记载“0U”与“0L”分别表示在H.264的模式0(即Intra_4x4_Vertical模式)中,计算4×4被预测块(例如图1的被预测块
110)的上半部与下半部。表2~4中“模式”栏位的其他记载以此类推。另外,“模式”栏
位记载“2LT3”、“2LT3”与“2LT3”分别表示H.264的模式2(即Intra_4x4_DC模式)中,情况1、情况2与情况3。
[0309] 表2:H.264中4×4亮度预测模式0~8的输入选择控制表
[0310]
[0311]
[0312] 表3:H.264中4×4亮度预测模式0~8的运算参数表
[0313]
[0314] 表4:H.264中4×4亮度预测模式0~8的输出选择控制表

[0315] 以下将以H.264的4×4亮度预测的模式0为例,说明上述表2~4如何使用。如前所述,H.264的4×4亮度预测模式0(即Intra_4x4_Vertical模式)的计算公式为:
[0316] P[x,y]=P[x,-1](其中x与y为0~3)
[0317] 因此,由图1可知,被预测块110的上半部:
[0318] P[0,0]=P[0,1]=A=P[0,-1];
[0319] P[1,0]=P[1,1]=B=P[1,-1];
[0320] P[2,0]=P[2,1]=C=P[2,-1];
[0321] P[3,0]=P[3,1]=D=P[3,-1]。
[0322] 这是依据H.264的4×4亮度预测的模式0的计算公式所求得的。以下将使用上述本发明实施例所公开的帧内预测方法与装置来计算被预测块110的上半部像素预测值。
[0323] 因为是模式0,且是被预测块110的上半部,所以在表4中“模式”栏位查找“0U”,进而获得输出选择控制信号Sout0~Sout7分别为0、1、2、3、0、1、2、3。选择控制单元320提供给输出数据选择单元350的输出选择控制信号Sout0~Sout7为0、1、2、3、0、1、2、3,其表示,输出数据选择单元350会选择运算结果T0~T3分别做为其输出S0~S3,并且选择运算结果T0~T3分别做为其输出S4~S7。也就是说:
[0324] P[0,0]=P[0,1]=运算单元OU1-0的运算结果T0;
[0325] P[1,0]=P[1,1]=运算单元OU1-1的运算结果T1;
[0326] P[2,0]=P[2,1]=运算单元OU1-2的运算结果T2;
[0327] P[3,0]=P[3,1]=运算单元OU1-3的运算结果T3。
[0328] 在此同时,选择控制单元320在表2中“模式”栏位查找“0U”,进而获得输入选择控制信号Sin0~Sin23分别为0、0、0、0、0、0、0、0、3、3、5、4、0、0、0、0、4、5、5、4、0、0、0、0。输入数据选择单元330依此输入选择控制信号Sin0~Sin23于表1中查找,决定第一选择单元的输出P0~P3分别是周围像素值A、B、C、D,而第二选择单元的输出P8~P11分别是像
素值Z、Z、Z、Z(也就是输出P8~P11的值均为0),且第三选择单元的输出P16~P19分别
是像素值Z、Z、Z、Z。
[0329] 选择控制单元320另外在表3中“模式”栏位查找“0U”,进而获得运算参数信号S为0、0、0、0、0、0、0、0、0。因此,运算单元OU1-0~OU1-3的运算式P[x,y]=(Src0+Src1<<C+Src2+R)>>S分别为:
[0330] T0=(A+Z<<0+Z+0)>>0=A;
[0331] T1=(B+Z<<0+Z+0)>>0=B;
[0332] T2=(C+Z<<0+Z+0)>>0=C;
[0333] T3=(D+Z<<0+Z+0)>>0=D。
[0334] 由于输出选择控制信号Sout0~Sout7分别为0、1、2、3、0、1、2、3,因此输出数据选择单元350的输出S0~S7分别为运算结果T0、T1、T2、T3、T0、T1、T2、T3。也就是说,输出数据选择单元350的输出S0~S7分别为A、B、C、D、A、B、C、D。其中,对于被预测块110的上半部而言,输出数据选择单元350的输出S0~S7便是P[0,0]、P[1,0]、P[2,0]、P[3,0]、P[0,1]、P[1,1]、P[2,1]、P[3,1]。因此,上述本发明实施例所公开的帧内预测方法与装置计算被预测块110的上半部像素预测值,与依据H.264的4×4亮度预测的模式0的计算
公式所求得的像素预测值,二者是一致的。
[0335] 当然,上述实施例所公开的帧内预测方法与装置并不限应用在H.264的4×4亮度预测模式。以下再以H.264的8×8亮度预测的模式0(即Intra_8x8_Vertical模式)为
例。表5、表6与表7分别是H.264中8×8亮度帧内预测模式0的输入选择控制表、运算参
数表以及输出选择控制表。对一个8×8被预测块(例如图2的被预测块210),上述帧内
预测装置300需要计算8次。也就是说,将被预测块210分为子块000、001、010、011、100、
101、110、111,分为8次来计算8×8被预测块的全部像素预测值。表5、表6与表7的“位
置”栏位用3位的二进制数值表示被预测块210的子块位置,其中X表示此值无所谓。例
如,若“位置”栏位记载X0X,其表示000、001、100或101。表5、表6与表7的使用方式可以参照表2、表3与表4及相关说明,在此不再赘述。
[0336] 表5:H.264中8×8亮度预测模式0的输入选择控制表
[0337]
[0338] 表6:H.264中8×8亮度预测模式0的运算参数表
[0339]
[0340] 表7:H.264中8×8亮度预测模式0的输出选择控制表
[0341]
[0342] 以下再以H.264的8×8亮度预测的模式1(即Intra_8×8_Horizontal模式)为例。表8、表9与表10分别是H.264中8×8亮度帧内预测模式1的输入选择控制表、运算
参数表以及输出选择控制表。表8、表9与表10的使用方式可以参照表2、表3与表4及相
关说明,在此不再赘述。
[0343] 表8:H.264中8×8亮度预测模式1的输入选择控制表
[0344]
[0345] 表9:H.264中8×8亮度预测模式1的运算参数表
[0346]
[0347] 表10:H.264中8×8亮度预测模式1的输出选择控制表
[0348]
[0349] 以下再以H.264的8×8亮度预测的模式2(即Intra_8×8_DC模式)为例。表11、表12与表13分别是H.264中8×8亮度帧内预测模式2的输入选择控制表、运算参数
表以及输出选择控制表。其中,“位置”栏位记载LT3表示属于情况一,也就是左边的周围像素P[-1,y]与上面的周围像素P[x,-1]都可用的情况;LT2表示属于情况三,也就是上面的周围像素P[x,-1]为可用的情况;LT1表示属于情况二,也就是左边的周围像素P[-1,y]为可用的情况。
[0350] 在H.264的8×8亮度预测的模式2的LT3情况下,此时需要计算二次,先输入LT2的控制信息,然后再输入LT 1的控制信息。表11、表12与表13的其他使用方式可以参照
表2、表3与表4及相关说明,在此不再赘述。
[0351] 表11:H.264中8×8亮度预测模式2的输入选择控制表
[0352]
[0353] 表12:H.264中8×8亮度预测模式2的运算参数表
[0354]
[0355] 表13:H.264中8×8亮度预测模式2的输出选择控制表
[0356]
[0357] 以下再以H.264的8×8亮度预测的模式3(即Intra_8×8_Diagonal_Down_Left模式)为例。表14、表15与表16分别是H.264中8×8亮度帧内预测模式3的输入选择控
制表、运算参数表以及输出选择控制表。表14、表15与表16的使用方式可以参照表2、表
3与表4及相关说明,在此不再赘述。
[0358] 表14:H.264中8×8亮度预测模式3的输入选择控制表
[0359]
[0360] 表15:H.264中8×8亮度预测模式3的运算参数表
[0361]
[0362] 表16:H.264中8×8亮度预测模式3的输出选择控制表
[0363]
[0364] 以下再以H.264的8×8亮度预测的模式4(即Intra_8×8_Diagonal_Down_Right模式)为例。表17、表18与表19分别是H.264中8×8亮度帧内预测模式4的输入选择控
制表、运算参数表以及输出选择控制表。表17、表18与表19的使用方式可以参照表2、表
3与表4及相关说明,在此不再赘述。
[0365] 表17:H.264中8×8亮度预测模式4的输入选择控制表
[0366]
[0367] 表18:H.264中8×8亮度预测模式4的运算参数表
[0368]
[0369] 表19:H.264中8×8亮度预测模式4的输出选择控制表
[0370]
[0371] 以下再以H.264的8×8亮度预测的模式5(即Intra_8×8_Vertical_Right模式)为例。表20、表21与表22分别是H.264中8×8亮度帧内预测模式5的输入选择控制表、
运算参数表以及输出选择控制表。表20、表21与表22的使用方式可以参照表2、表3与表
4及相关说明,在此不再赘述。
[0372] 表20:H.264中8×8亮度预测模式5的输入选择控制表
[0373]
[0374] 表21:H.264中8×8亮度预测模式5的运算参数表
[0375]
[0376] 表22:H.264中8×8亮度预测模式5的输出选择控制表
[0377]
[0378] 以下再以H.264的8×8亮度预测的模式6(即Intra_8×8_Horizontal_Down模式)为例。表23、表24与表25分别是H.264中8×8亮度帧内预测模式6的输入选择控
制表、运算参数表以及输出选择控制表。表23、表24与表25的使用方式可以参照表2、表
3与表4及相关说明,在此不再赘述。
[0379] 表23:H.264中8×8亮度预测模式6的输入选择控制表
[0380]
[0381] 表24:H.264中8×8亮度预测模式6的运算参数表
[0382]
[0383] 表25:H.264中8×8亮度预测模式6的输出选择控制表
[0384]
[0385] 以下再以H.264的8×8亮度预测的模式7(即Intra_8×8_Vertical_Left模式)为例。表26、表27与表28分别是H.264中8×8亮度帧内预测模式7的输入选择控制表、
运算参数表以及输出选择控制表。表26、表27与表28的使用方式可以参照表2、表3与表
4及相关说明,在此不再赘述。
[0386] 表26:H.264中8×8亮度预测模式7的输入选择控制表
[0387]
[0388] 表27:H.264中8×8亮度预测模式7的运算参数表
[0389]
[0390] 表28:H.264中8×8亮度预测模式7的输出选择控制表
[0391]
[0392] 以下再以H.264的8×8亮度预测的模式8(即Intra_8×8_Horizontal_Up模式)为例。表29、表30与表31分别是H.264中8×8亮度帧内预测模式8的输入选择控制表、
运算参数表以及输出选择控制表。表29、表30与表31的使用方式可以参照表2、表3与表
4及相关说明,在此不再赘述。
[0393] 表29:H.264中8×8亮度预测模式8的输入选择控制表
[0394]
[0395] 表30:H.264中8×8亮度预测模式8的运算参数表
[0396]
[0397] 表31:H.264中8×8亮度预测模式8的输出选择控制表
[0398]
[0399] 以下再以H.264的8×8色度预测的模式0(即Intra_Chroma_DC模式)为例。表32、表33与表34分别是H.264中8×8色度预测模式0的输入选择控制表、运算参数表以
及输出选择控制表。其中,“Q”栏位表示在8×8被预测块中第几个4×4子块;“LT”表示上面周围像素与左边周围像素是否可用。另外,由于是DC模式,第一运算单元OU1-0~OU1-7
的运算参数S值均为0。表32、表33与表34的使用方式可以参照表2、表3与表4及相关
说明,在此不再赘述。
[0400] 表32:H.264中8×8色度预测模式0的输入选择控制表
[0401]
[0402]
[0403] 表33:H.264中8×8色度预测模式0的运算参数表
[0404]
[0405] 表34:H.264中8×8色度预测模式0的输出选择控制表
[0406]
[0407] 以下再以AV S的8×8亮度预测的模式2(即Intra_8×8_DC模式)为例。表35、表36与表37分别是AV S中8×8亮度帧内预测模式2并且LT=3时的输入选择控制表、
运算参数表以及输出选择控制表。表35、表36与表37的使用方式可以参照表2、表3与表
4及相关说明,在此不再赘述。
[0408] 表35:AVS中8×8亮度预测模式2并且LT=3时的输入选择控制表
[0409]
[0410] 表36:AVS中8×8亮度预测模式2并且LT=3时的运算参数表
[0411]
[0412] 表37:AVS中8×8亮度预测模式2并且LT=3时的输出选择控制表
[0413]
[0414] 综上所述,本发明的上述实施例因将各种帧内预测演算法归纳为统一的公式,因此配合提供适当的输入选择控制信号、运算参数信号以及输出选择控制信号,可以实现各
种视频帧内预测演算法。依照所欲计算的预测模式,上述输入选择控制信号、运算参数信号以及输出选择控制信号可以用查询表(1ook-uptable)的方式,预先建立在帧内预测装置
中。由于本发明的帧内预测装置与方法可以同时适用于各种帧内预测演算法,而以简单电
路实现各演算法功能,因此本发明更可以大量节省硬件资源。
[0415] 以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
[0416] 附图中符号的简单说明如下:
[0417] 110、210:被预测块;300:帧内预测装置;310:输入数据单元;320:选择控制单元;330:输入数据选择单元;340:处理单元;350:输出数据选择单元;510:第一切换器;520:第一右位移器;530:第一左位移器;540:第一加法器;550:第二右位移器;610:第二加法器;620:第二左位移器;630:暂存器;640:第二切换器;650:第三加法器;660:第三右位移器;670:第三切换器;OU1-0~OU1-7:第一运算单元;OU2:第二运算单元。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用