CN102625091B - 一种基于avs的帧间预测方法 - Google Patents
一种基于avs的帧间预测方法 Download PDFInfo
- Publication number
- CN102625091B CN102625091B CN201110029730.0A CN201110029730A CN102625091B CN 102625091 B CN102625091 B CN 102625091B CN 201110029730 A CN201110029730 A CN 201110029730A CN 102625091 B CN102625091 B CN 102625091B
- Authority
- CN
- China
- Prior art keywords
- data
- chrominance
- row
- block
- motion vector
- 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.)
- Expired - Fee Related
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供一种基于AVS的帧间预测方法,该方法包括将需要进行帧间预测的帧分为若干个宏块,依次对每个宏块进行帧间预测,对于每个宏块,帧间预测包括下列步骤:读取当前宏块相应的运动矢量;将当前宏块划分为与运动矢量相应的若干子块进行运动补偿,对于每个子块,当运动矢量所指向的位置超出帧边界时,从外存中读取参考图像中位于帧边界内的数据,然后根据运动矢量和所读取的位于帧边界内的数据进行数据增补,从而得到完整的参考图像。根据参考图像和运动矢量进行插值运算,恢复出当前宏块。本发明具有下列技术效果:大大减少了访问外存所占的带宽。能够减少访问外存的次数。减少了存储参考帧所占用的外存空间。
Description
技术领域
本发明涉及信源编码技术领域,具体地说,本发明涉及一种帧间预测方法。
背景技术
先进音视频编码标准(英文为Audio Video Coding Standard,本文中简称为AVS标准)是我国具备自主知识产权的第二代信源编码标准。“信源”是信息的“源头”,信源编码技术解决的重点问题是数字音视频海量数据(即初始数据、信源)的编码压缩问题,故也称数字音视频编解码技术。显而易见,它是其后数字信息传输、存储、播放等环节的前提,因此信源编码标准是数字音视频产业的共性基础标准。
在AVS标准中,帧(frame)是视频信号空间信息的表示,由一个亮度样本矩阵(Y)和两个色度样本矩阵(Cb和Cr)构成。帧间预测(inter prediction)是使用先前解码图像(或场)生成当前图像(或场)样本预测值的过程。
典型的AVS解码结构采用了时间及空间的运动预测补偿、反变换、反量化和熵解码。在待解码的视频码流中包含有下述三种编码图像:
帧内编码图像(I图像):仅使用图像本身信息进行编码,在解码时不参照其他图像;
前向预测编码图像(P图像):P图像是向前预测一个或多个I图像或者P图像,因此若前面的某个参考I图像或者P图像不存在,则该P图像不能解码;
双向预测编码图像(B图像):可以同时向前和后向预测一帧或多帧已解码I图像或者P图像;因此在解码B图像时,需要先解码获得在显示顺序上其后的I图像或者P图像数据,这样会导致解码顺序与显示顺序的不一致。
可以看出,P图像和B图像的编解码过程都需要经过帧间预测处理。在编码过程中,如果当前图像是P图像或B图像,需要根据相应的参考图像进行帧间预测,计算并存储当前图像相对于参考图像的运动矢量(运动矢量是由当前图像指向参考图像,其值为当前块和参考块在图像中坐标的偏移)。这样在解码时,只需要根据所述运动矢量和参考图像,就可恢复出所述当前图像。帧间预测技术可以有效的降低时间冗余,而在AVS标准中,还针对运动补偿进一步引入了变块尺寸、多参考帧、直接和对称预测模式、无限制运动矢量、像素插值等新的技术手段,从而获得了更高的编码效率。然而上述新的技术手段在提高编码效率的同时也增加了计算量和存储带宽。
目前,高性能的AVS解码器一般使用硬件实现,已解码的帧会被存入外存作为解码其它帧的参考数据,在帧间预测时就从外存中读取这些参考数据。
在AVS标准中,解码器将一帧图像分为若干个宏块,依次对每个宏块进行帧间预测。每个宏块有四种划分模式。如图1所示,四种划分模式分别是:1个16×16亮度块和相应的色度块,2个16×8亮度块和相应的色度块,2个8×16亮度块和相应的色度块,4个8×8亮度块和相应的色度块。每个亮度块和色度块均对应各自的运动矢量,以便用于运动补偿。AVS标准采用四种宏块划分模式,能够提高编码效率。但由于不同的模式的宏块,进行帧间预测时所需读取的参考图像的像素位置和数目各不相同,因此,这种变块尺寸也给帧间预测带来能更多挑战。
在现有技术中,不论当前宏块是什么格式,解码器均固定按照4个8×8块的模式读取参考图像,即统一成8×8块进行运动补偿。这种方式易于实现,但存在访问外存次数多,从外存中读取的数据总量大等缺陷。其原因是:当运动矢量是1/2像素或1/4像素时,需要对亮度(色度)进行二分之一样本和四分之一样本的插值,而二分之一样本和四分之一样本的插值所需的参考图像较多,在某些插值位置,需要的读取12×12的个参考像素,因此,在双向预测时,对一个宏块进行帧间预测需要读取12×12×4×2=1152个像素,即1152bytes的数据。也就是说,对一个宏块进行帧间预测,就需要从外存中读取1152bytes的数据,而这1152bytes的数据中实际上存在一些冗余数据,导致访存带宽的浪费,硬件开销增大。另一方面,由于每次都案4个8×8块的模式读取数据,使得解码器访问外存的次数增多,这会导致访存总延时的增加。
另外,在AVS标准中使用无限制的运动矢量,也就是说运动矢量所指向的参考数据可以超出参考图像的边界,在这种情况下对超出参考图像边界的整数样本应该使用距离该整数参考数据所指位置最近的图像内的整数样本进行边界扩展。现有的AVS解码器中,预先对参考帧边界进行扩展并将扩展后的参考帧存入外存。这种做法带宽利用率低,同时数据增补后的参考帧需要占用的额外的外存空间。
目前,帧间预测的访存量占到解码器总访存量的50%,而其中亚像素插值运算的处理时间则占到总解码时间的25%。可以看出,帧间预测已成为AVS编解码器中数据量最密集的部分之一,同时也是整个***的瓶颈所在。
综上所述,当前迫切需要一种在保证AVS标准的编码效率的前提下,能够避免读取冗余数据、减少访问外存次数的基于AVS的帧间预测方法。
发明内容
本发明的目的是提供一种在保证AVS标准的编码效率的前提下,能够避免读取冗余数据、减少访问外存次数的基于AVS的帧间预测方法。
为实现上述发明目的,本发明提供了一种基于AVS的帧间预测方法,该方法包括将需要进行帧间预测的帧分为若干个宏块,依次对每个宏块进行帧间预测,对于每个宏块,帧间预测包括下列步骤:
1)读取当前宏块相应的运动矢量;
2)根据运动矢量读取参考图像;包括下列子步骤:
21)将当前宏块划分为与运动矢量相应的若干子块进行运动补偿,
22)对于每个子块,当运动矢量所指向的位置超出帧边界时,从外存中读取参考图像中位于帧边界内的数据,然后根据运动矢量和所读取的位于帧边界内的数据进行数据增补,从而得到完整的参考图像。
3)根据参考图像和运动矢量进行插值运算,恢复出当前宏块。
其中,所述步骤1)中,还包括从AVS码流中读取当前宏块的子块划分模式;
所述步骤21)中,按照所读取的当前宏块的子块划分模式划分子块。
其中,所述步骤22)中,运动矢量所指向的参考数据超出参考图像左边界时,用参考图像最左边一列像素的数值进行数据增补。
其中,所述步骤22)中,运动矢量所指向的参考数据超出参考图像右边界时,用参考图像最右边一列像素的数值进行数据增补。
其中,所述步骤22)中,运动矢量所指向的参考数据超出参考图像上边界时,用参考图像最上边一行的数值进行数据增补。
其中,所述步骤22)中,运动矢量所指向的参考数据超出参考图像下边界时,用参考图像最下边一行的数值进行数据增补。
其中,所述步骤22)中,运动矢量所指向的参考数据超出参考图像的位置位于左上、左下、右上、右下时,分别用参考图像左上角点、左下角点、右上角点、右下角点像素的值进行数据增补。
与现有技术相比,本发明具有下列技术效果:
1、大大减少了访问外存所占的带宽。
2、能够减少访问外存的次数。
3、减少了存储参考帧所占用的外存空间。
附图说明
图1示出了AVS标准中一个宏块的子块划分模式;
图2示出了每个子块读取参考图像时出现的重复的交叠数据;实线方框表示需要进行运动补偿的子块,虚线方框表示子块所对应的参考图像,灰色部分表示重复的交叠数据;
图3示出了AVS标准中的亮度块插值示意图;
图4示出了AVS标准中的色度块插值示意图;
图5示出了本发明实施例5中的数据交织结构示意图;
图6示出了本发明实施例6中的数据增补结构示意图。
具体实施方式
下面,结合附图和实施例对本发明做进一步地描述。
实施例1
根据本发明的一个实施例,提供了一种基于AVS的帧间预测方法。该方法中,解码器将需要进行帧间预测的帧分为若干个宏块,依次对每个宏块进行帧间预测。对于每个宏块,帧间预测过程包括下列步骤:
第一步:从AVS码流中读取当前宏块的模式和相应的运动矢量;
第二步:根据当前宏块的模式和运动矢量从外存中读取进行帧间预测所需的参考图像;
第三步:根据参考图像和运动矢量进行插值运算,恢复出当前宏块。
下面分别详细介绍上述步骤。
一、从AVS码流中读取当前宏块的划分模式和相应的运动矢量
在AVS标准中,单个宏块可划分为:1个16×16亮度块和相应的色度块,2个16×8亮度块和相应的色度块,2个8×16亮度块和相应的色度块,或者4个8×8亮度块和相应的色度块。其划分模式可从AVS码流中读出。同时还读出每个亮度块和色度块均对应各自的运动矢量,以便用于运动补偿(即帧间预测)。
二、根据当前宏块的模式和运动矢量从外存中读取进行帧间预测所需的参考图像
本实施例采用了块间数据重用的方式从外存中读取参考图像,这样可以避免在一个宏块中重复读取部分交叠的参考数据,能够有效地降低访问外存的带宽(访存带宽)。
AVS标准中,一个宏块包括亮度块(Y)和色度块(Cb和Cr),亮度块(Y)和色度块(Cb和Cr)均需要进行运动补偿以得出帧间预测结果。
AVS标准中采用树状变块尺寸运动补偿,最小块尺寸为8×8块,需要读取12×12的参考数据。如果统一成8×8块进行运动补偿,在进行双向预测时,需要读取12×12×4×2=1152bytes的数据量。而实际上,任何两个8×8块所对应的12×12的参考数据均存在交叠部分(如图2所示),即存在重复读取的数据,这样就消耗了更多的访存带宽。因此,本实施例设计了数据重用机制,使得在进行插值运算时,能够重用两个8×8块的参考数据之间的交叠部分。
本实施例40×96(40行96列)大小的缓存mem,mem在亚像素插值亮度和色度时共用。对于亮度块,缓存mem的地址空间分配如下:
1).0~11行用于存储前向block 0或block 2,以及交叠列的部分数据;
2).12~23行用于存储后向block 0或block 2,以及交叠列的部分数据;
3).24~27行用于存储前向block 1的交叠行的部分数据;
4).28~31行用于存储后向block 1的交叠行的部分数据。
这样,第一个8×8亮度块插值时,仍然从外存中读取其对应的12×12的参考数据,其它8×8亮度块插值时,则从缓存mem的相应地址中读取部分参考数据,而从外存中读取其余参考数据。这样就大大节省了解码器的访存带宽。
对于色度块Cb,缓存mem的地址空间分配如下:
1).0~4行存储色度Cb前向的block 0的数据;
2).5~9行存储色度Cb后向的block 0的数据;
3).10~14行存储色度Cb前向的block 1的数据;
4).15~19行存储色度Cb后向的block 1的数据;
5).20~24行存储色度Cb前向的block 2的数据;
6).25~29行存储色度Cb后向的block 2的数据;
7).30~34行存储色度Cb前向的block 3的数据;
8).35~39行存储色度Cb后向的block 3的数据。
对于色度块Cr,缓存mem的地址空间分配如下:
1).0~4行存储色度Cr前向的block 0的数据;
2).5~9行存储色度Cr后向的block 0的数据;
3).10~14行存储色度Cr前向的block 1的数据;
4).15~19行存储色度Cr后向的block 1的数据;
5).20~24行存储色度Cr前向的block 2的数据;
6).25~29行存储色度Cr后向的block 2的数据;
7).30~34行存储色度Cr前向的block 3的数据;
8).35~39行存储色度Cr后向的block 3的数据。
于亮度块的插值类似,对第一个色度块插值时,从外存中读取所需的全部参考数据。对其它色度块插值时,则从缓存mem的相应地址中读取部分参考数据,而从外存中读取其余参考数据,从而节省解码器的访存带宽。
三、根据参考图像和运动矢量进行插值运算,恢复出当前宏块。
在读取全部参考数据和运动矢量后,即可根据AVS标准9.9.2.1部分的描述进行插值运算,依次恢复当前宏块的每个亮度块和色度块,从而恢复出整个当前宏块。此时,对当前宏块的帧间预测完成。
实施例2
根据本发明的实施例2,提供了一种基于AVS的帧间预测方法。该方法中,解码器将需要进行帧间预测的帧分为若干个宏块,依次对每个宏块进行帧间预测。对于每个宏块,帧间预测过程包括下列步骤:
第一步:从AVS码流中读取当前宏块的模式和相应的运动矢量;
第二步:根据当前宏块的模式和运动矢量从外存中读取进行帧间预测所需的参考图像;
第三步:根据参考图像和运动矢量进行插值运算,恢复出当前宏块。
其中,第一步、第三步均与实施例1一致,不再赘述。
第二步中,本实施例采用变块尺寸读取的方式从外存中读取参考数据。从AVS标准9.9.2.1部分中,可以看出,在进行亚像素插值时,对于不同的运动矢量和不同的亚像素插值位置,需要的参考数据的个数是截然不同的。例如:在插值整像素样本,只需要8×8的参考数据,而插值1/4像素样本,则需要11×11的参考数据。
本实施例将插值位置分为6种不同的类型,每种类型需要的参考数据量是不同的,但在解码过程中,只有其中的一种类型在同一时刻被执行。因此可以根据运动矢量的值,判断此次属于何种插值类型,从而决定本次的访存量,以达到减小带宽的目的。
亮度块的变块尺寸读取
如图3所示,AVS标准中各插值点(即插值位置)所需的参考像素数目如下:
对于D点的插值,需要的参考像素为(0,0),相应8×8块的插值需要的参考像素矩阵大小为8×8;
对于b点的插值,需要的参考像素为(-1,0),(0,0),(1,0),(2,0),相应8×8块的插值需要的参考像素矩阵大小为11×8;
对于h点的插值,需要的参考像素为(0,-1),(0,0),(0,1),(0,2),对应8×8块的插值需要的参考像素矩阵大小为8×11;
对于j点的插值,需要的参考像素为(-1,-1),(0,-1),(1,-1),(2,-1),(-1,0),(0,0),(1,0),(2,0),(-1,1),(0,1),(1,1),(2,1),(-1,2),(0,2),(1,2),(2,2),对应8×8块的插值需要的参考像素矩阵大小为11×11;
对于a点的插值,需要的参考像素为(-2,0),(-1,0),(0,0),(1,0),(2,0),对应8×8块的插值需要的参考像素矩阵大小为12×8;
对于c点的插值,需要的参考像素为(-1,0),(0,0),(1,0),(2,0),(3,0),对应8×8块的插值需要的参考像素矩阵大小为12×8;
对于d点的插值,需要的参考像素为(0,-2),(0,-1),(0,0),(0,1),(0,2),对应8×8块的插值需要的参考像素矩阵大小为8×12;
对于n点的插值,需要的参考像素为(0,-1),(0,0),(0,1),(0,2),(0,3),对应8×8块的插值需要的参考像素矩阵大小为8×12;
对于e,g,p,r点的插值,需要的参考像素与j点相同,对应8×8块的插值需要的参考像素矩阵大小为11×11;
对于f点的插值,需要的参考像素为(-1,-2),(0,-2),(1,-2),(2,-2),(-1,-1),(0,-1),(1,-1),(2,-1),(-1,0),(0,0),(1,0),(2,0),(-1,1),(0,1),(1,1),(2,1),(-1,2),(0,2),(1,2),(2,2),对应8×8块的插值需要的参考像素矩阵大小为11×12;
对于i点的插值,需要的参考像素为(-2,-1),(-2,0),(-2,1),(-2,2),(-1,-1),(-1,0),(-1,1),(-1,2),(0,-1),(0,0),(0,1),(0,2),(1,-1),(1,0),(1,1),(1,2),(2,-1),(2,0),(2,1),(2,2),对应8×8块的插值需要的参考像素矩阵大小为12×11;
对于k点的插值,需要的参考像素为(-1,-1),(-1,0),(-1,1),(-1,2),(0,-1),(0,0),(0,1),(0,2),(1,-1),(1,0),(1,1),(1,2),(2,-1),(2,0),(2,1),(2,2),(3,-1),(3,0),(3,1),(3,2),对应8×8块的插值需要的参考像素矩阵大小为12×11;
对于q点的插值,需要的参考像素为(-1,-1),(0,-1),(1,-1),(2,-1),(-1,0),(0,0),(1,0),(2,0),(-1,1),(0,1),(1,1),(2,1),(-1,2),(0,2),(1,2),(2,2),(-1,3),(0,3),(1,3),(2,3),对应8×8块的插值需要的参考像素矩阵大小为11×12。
在读取外存的过程中,为了减少对外存的访问量,本实施例对读取的尺寸做出一定的优化。在亮度插值中,不同插值位置所需像素个数不同,如果采用最大像素个数,自然能满足要求,但这样增加了外存的访问量。
本实施例为了节省外存的带宽,根据运动矢量得出当前块的插值位置,对不同插值位置,分别调整所申请的外存的line(行)和size(本发明中size代表列)的大小。表3给出了在亮度申请外存情况下,设定每次向外存申请的基础块大小为8×8,同时对不同运动矢量分别设定对应不同的申请外存的行、列增量。由基础块行、列加上对应的增量行、列便可得到本次申请的行、列信息。通过深入研究,本实施例总结出如下规律公式:
1).请求外存的列数增量-req_plus_wid
2).请求外存的行数增量-req_plus_hei
式中,x为水平位置,即插值点在水平方向上的编号;y为垂直位置,即插值点在垂直方向上的编号。
下面的表1更直观地给出了本实施例的亮度块变块尺寸读取方案。
表1
色度块的变块尺寸读取
与亮度块类似,色度块的变块尺寸读取方案中,每次读取外存时申请的尺寸也由基础块行、列加上对应的增量行、列得到。基础块尺寸为4×4,其增量行、列按下述公式得出:
1).请求外存的列数增量(req_plus_wid)
2).请求外存的行数增量(req_plus_hei)
式中,x为水平位置,即插值点在水平方向上的编号;y为垂直位置,即插值点在垂直方向上的编号。
结合参考图4和表2,可以更直观地得出本实施例的色度块变块尺寸读取方案。
表2
实施例3
根据本发明的实施例3,提供了一种基于AVS的帧间预测方法。该方法中,解码器将需要进行帧间预测的帧分为若干个宏块,依次对每个宏块进行帧间预测。对于每个宏块,帧间预测过程包括下列步骤:
第一步:从AVS码流中读取当前宏块的模式和相应的运动矢量;
第二步:根据当前宏块的模式和运动矢量从外存中读取进行帧间预测所需的参考图像;
第三步:根据参考图像和运动矢量进行插值运算,恢复出当前宏块。
其中,第一步、第三步与实施例1、2一致,不再赘述。
第二步中,在从外存中读取参考数据时,本实施例同时采用块间数据重用和变块尺寸读取两种机制,从而最大程度地避免了冗余数据,进行节省了访存带宽。
在变块尺寸读取方面,本实施例根据运动矢量得出插值位置,并申请相应的外存尺寸,这与实施例2一致,不再赘述。
在块间数据重用方面,本实施例设置缓存mem,其尺寸与实施例1一致。对于亮度块和色度块,缓存mem的地址空间分配也均与实施例1一致,这里不再赘述。在一个宏块中,第一个块插值时,仍然从外存中读取其对应的的参考数据,对其它块插值时,则从缓存mem的相应地址中读取部分参考数据,从外存中读取其余参考数据。这样就大大节省了解码器的访存带宽。
实施例4
根据本发明的实施例4,提供了一种基于AVS的帧间预测方法。该方法中,解码器将需要进行帧间预测的帧分为若干个宏块,依次对每个宏块进行帧间预测。对于每个宏块,帧间预测过程包括下列步骤:
第一步:从AVS码流中读取当前宏块的模式和相应的运动矢量;
第二步:根据当前宏块的模式和运动矢量从外存中读取进行帧间预测所需的参考图像;
第三步:根据参考图像和运动矢量进行插值运算,恢复出当前宏块。
其中,第一步、第三步与实施例2一致,不再赘述。
第二步中,在实施例2的变块尺寸读取机制的基础上,本实施例不再以8×8块为单位进行帧间预测,而是根据第一步得出的宏块划分模式,分别对相应的子块进行帧间预测。即当宏块划分为1个16×16亮度块时,即直接从内存中读取该16×16亮度块进行运动补偿所需的参考数据;当宏块划分为2个16×8亮度块或2个8×16亮度块时,则分两次读取进行运动补偿所需的参考数据;当宏块划分为4个8×8亮度块时,则分四次读取进行运动补偿所需的参考数据。这种变块尺寸读取也是通过设定访问外存的基础块和相应的行列增量的方式来实现。对于本领域技术人员,容易参考实施例2得出本实施例中变块尺寸读取机制的具体实现方式,这里不再赘述。
实施例5
在上述实施例1~4任一个的基础上,本实施例进一步优化了色度数据的读取机制,从而提供了一种更加具有优势的基于AVS的帧间预测方法。
AVS标准中,色度块包括Cb色度块和Cr色度块,Cb色度块和Cr色度块成对出现。现有技术中,AVS码流中,每对Cb和Cr色度块的数据分开存储,即连续存储一个Cb色度块的数据后再存储相应的Cb色度块的数据。这样,在对一对Cb和Cr色度块进行运动补偿时,需要分别读取Cb色度块和Cr色度块对应的参考数据。
本实施例中,将AVS码流中的Cb色度和Cr色度数据交织存储到外存。图5示出了Cb和Cr的交织结构。在AVS标准中,每对Cb和Cr色度块共用相同的运动矢量,Cb和Cr的亚像素插值方式也是相同的。如果将Cb和Cr的参考数据以一种交织的方式存入外存,就可以以同样的交织的方式将Cb和Cr的参考数据一起读取。这样访问外存的次数就减少了一半,还进一步提高带宽的利用率。并且,由于DDR宽度的限制,每次访问外存时或多或少会存在一些冗余数据,因此,减少访问外存次数的同时,也意味着减少了所读取的总的数据量。
本实施例中的色度数据交织存储的方案即可以独立实施,也可以在上述实施例1~4任一个的基础上实施,这是本领域技术人员易于理解的。
实施例6
本实施例在现有技术的基础上,优化了数据增补(padding)机制,从而提供了一种更加具有优势的基于AVS的帧间预测方法。
在AVS标准中,使用无限制的运动矢量,也就是说运动矢量所指向的参考数据可以超出参考图像的边界,在这种情况下对超出参考图像边界的整数样本应该使用距离该整数参考数据所指位置最近的图像内的整数样本进行边界扩展。现有的AVS解码器中,预先对参考帧边界进行扩展并将扩展后的参考帧存入外存。这种做法带宽利用率低,同时数据增补后的参考帧需要占用的额外的外存空间。
本实施例则不对参考帧做预先扩展,而是将数据增补的过程放在运动补偿中进行,即根据运动矢量向外存读取真实的参考数据,在本地完成数据增补。这样可以进一步提高带宽的利用率,同时节省每个参考帧所占的外存空间。
图6示出了本实施例的数据增补的结构。根据运动矢量的值,本实施例设计了4种数据增补(padding)类型,数据增补配置信息为:
1).pad_type:padding的类型,图6中0类型代表左上padding;1类型代表左下padding;2类型代表右上padding;3类型代表右下padding。
2).pad_size:padding的列数,大小为0~11。当pad_type为左上和左下时表示向左padding的列数,否则当pad_type为右上和右下时表示不需要padding的列数。
3).pad_line:padding的行数,大小为0~11。当pad_type为左上和右上时表示向上padding的行数,否则当pad_type为左下和右下时表示不需要padding的行数。
在进行帧间预测时,在从外存中读取真实的参考数据后,即可根据数据增补配置信息(pad_type、pad_size和pad_line),在真实的参考数据的基础上进行数据增补。在不同位置上,所增补的具体数值参考AVS标准。
其中,运动矢量所指向的参考数据超出参考图像左边界时,用参考图像最左边一列像素的数值进行数据增补;超出参考图像右边界时,用最右边一列像素的数值进行数据增补;超出参考图像上边界,用最上边一行的数值进行数据增补;超出参考图像下边界,用最下边一行的数值进行数据增补。超出图像的位置位于左上、左下、右上、右下时,分别用左上角点、左下角点、右上角点、右下角点像素的值进行数据增补。
值得说明的是,本实施例的数据增补方案既可以独立实施,也可以在上述实施例1~5任一个的基础上实施。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (7)
1.一种基于AVS的帧间预测方法,该方法包括将需要进行帧间预测的帧分为若干个宏块,依次对每个宏块进行帧间预测,对于每个宏块,帧间预测包括下列步骤:
1)读取当前宏块相应的运动矢量;
2)将当前宏块划分为与运动矢量相应的若干子块进行运动补偿,
3)对于每个子块,当运动矢量所指向的位置超出帧边界时,从外存中读取参考图像中位于帧边界内的数据,然后根据运动矢量和所读取的位于帧边界内的数据进行数据增补,从而得到完整的参考图像;
4)根据参考图像和运动矢量进行插值运算,恢复出当前宏块;
其中,AVS码流中的Cb色度像素和Cr色度像素交织存储在外存中,所述步骤3)中,对于每对Cb色度块和Cr色度块,在每次外存时,根据运动矢量所得出的参考像素位置,从AVS码流中成对地读出交织存储的Cb色度参考像素和Cr色度参考像素;
所述步骤3)中,在亮度插值申请外存情况下,设定每次向外存申请的基础块大小为8×8,根据运动矢量得出当前块的插值位置,对不同插值位置,分别设定对应不同的申请外存的行、列增量,由基础块行、列加上对应的增量行、列得到本次申请的外存的行、列信息,其中,请求外存的列数增量req_plus_wid满足
请求外存的行数增量req_plus_hei满足
式中,x为水平位置,y为垂直位置;
所述步骤4)中,进行插值运算时采用40×96大小的缓存mem重用两个8×8块的参考数据之间的交叠部分,对于亮度块,缓存mem的地址空间分配如下:
1).0~11行用于存储前向block0或block2,以及交叠列的部分数据;
2).12~23行用于存储后向block0或block2,以及交叠列的部分数据;
3).24~27行用于存储前向block1的交叠行的部分数据;
4).28~31行用于存储后向block1的交叠行的部分数据;
第一个8×8亮度块插值时,仍然从外存中读取其对应的12×12的参考数据,其它8×8亮度块插值时,则从缓存mem的相应地址中读取部分参考数据,而从外存中读取其余参考数据;
对于色度块Cb,缓存mem的地址空间分配如下:
1).0~4行存储色度Cb前向的block0的数据;
2).5~9行存储色度Cb后向的block0的数据;
3).10~14行存储色度Cb前向的block1的数据;
4).15~19行存储色度Cb后向的block1的数据;
5).20~24行存储色度Cb前向的block2的数据;
6).25~29行存储色度Cb后向的block2的数据;
7).30~34行存储色度Cb前向的block3的数据;
8).35~39行存储色度Cb后向的block3的数据;
对于色度块Cr,缓存mem的地址空间分配如下:
1).0~4行存储色度Cr前向的block0的数据;
2).5~9行存储色度Cr后向的block0的数据;
3).10~14行存储色度Cr前向的block1的数据;
4).15~19行存储色度Cr后向的block1的数据;
5).20~24行存储色度Cr前向的block2的数据;
6).25~29行存储色度Cr后向的block2的数据;
7).30~34行存储色度Cr前向的block3的数据;
8).35~39行存储色度Cr后向的block3的数据;
对第一个色度块插值时,从外存中读取所需的全部参考数据,对其它色度块插值时,则从缓存mem的相应地址中读取部分参考数据,从外存中读取其余参考数据。
2.根据权利要求1所述的基于AVS的帧间预测方法,其特征在于,所述步骤1)中,还包括从AVS码流中读取当前宏块的子块划分模式;
所述步骤2)中,按照所读取的当前宏块的子块划分模式划分子块。
3.根据权利要求1所述的基于AVS的帧间预测方法,其特征在于,所述步骤3)中,运动矢量所指向的参考数据超出参考图像左边界时,用参考图像最左边一列像素的数值进行数据增补。
4.根据权利要求1所述的基于AVS的帧间预测方法,其特征在于,所述步骤3)中,运动矢量所指向的参考数据超出参考图像右边界时,用参考图像最右边一列像素的数值进行数据增补。
5.根据权利要求1所述的基于AVS的帧间预测方法,其特征在于,所述步骤3)中,运动矢量所指向的参考数据超出参考图像上边界时,用参考图像最上边一行的数值进行数据增补。
6.根据权利要求1所述的基于AVS的帧间预测方法,其特征在于,所述步骤3)中,运动矢量所指向的参考数据超出参考图像下边界时,用参考图像最下边一行的数值进行数据增补。
7.根据权利要求1所述的基于AVS的帧间预测方法,其特征在于,所述步骤3)中,运动矢量所指向的参考数据超出参考图像的位置位于左上、左下、右上、右下时,分别用参考图像左上角点、左下角点、右上角点、右下角点像素的值进行数据增补。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110029730.0A CN102625091B (zh) | 2011-01-27 | 2011-01-27 | 一种基于avs的帧间预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110029730.0A CN102625091B (zh) | 2011-01-27 | 2011-01-27 | 一种基于avs的帧间预测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102625091A CN102625091A (zh) | 2012-08-01 |
CN102625091B true CN102625091B (zh) | 2015-01-07 |
Family
ID=46564753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110029730.0A Expired - Fee Related CN102625091B (zh) | 2011-01-27 | 2011-01-27 | 一种基于avs的帧间预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102625091B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103384326A (zh) * | 2013-03-20 | 2013-11-06 | 张新安 | 一种avs-m视频编码快速帧内预测模式选择方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060135613A (ko) * | 2003-09-24 | 2006-12-29 | 텍사스 인스트루먼츠 인코포레이티드 | 8×8 변환 및 양자화 |
CN1874518A (zh) * | 2006-06-22 | 2006-12-06 | 上海交通大学 | 基于avs运动补偿的运动矢量计算装置的硬件实现方法 |
CN100484246C (zh) * | 2007-03-15 | 2009-04-29 | 上海交通大学 | Avs视频硬件解码器中运动补偿模块的像素预取装置 |
CN101790093B (zh) * | 2010-03-16 | 2012-10-31 | 山东大学 | 一种利用sopc实现avs视频解码的装置及方法 |
-
2011
- 2011-01-27 CN CN201110029730.0A patent/CN102625091B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN102625091A (zh) | 2012-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100695141B1 (ko) | 영상처리시스템에 있어서 메모리 억세스장치 및 방법, 데이터 기록장치 및 방법과 데이터 독출장치 및 방법 | |
CN103004210B (zh) | 用于视频编码的低复杂度帧内预测 | |
CN105578190B (zh) | 应用于视频硬解码的无损压缩方法及*** | |
CN102547296B (zh) | 移动估计加速电路、移动估计方法及环路滤波加速电路 | |
US20050190976A1 (en) | Moving image encoding apparatus and moving image processing apparatus | |
JP2006174486A (ja) | ビデオデータの水平及び垂直フィルタリングを同時に行うデブロッキングフィルタ及び動作方法 | |
US20100020879A1 (en) | Method for decoding a block of a video image | |
US9699451B2 (en) | Motion estimation compatible with multiple standards | |
CN109391814A (zh) | 视频图像编码和解码的方法、装置及设备 | |
CN105072353B (zh) | 一种基于多gpu的图像解码拼控方法 | |
KR100614647B1 (ko) | 디블록킹 필터에서의 효과적인 에지 필터링 연산을 위한레지스터 어레이 구조 | |
CN1589028B (zh) | 基于像素流水的帧内预测装置及预测方法 | |
KR20110029294A (ko) | 영상 부호화 장치 | |
CN100568920C (zh) | 串行输入并行输出的视频图像亮度插值的方法和装置 | |
CN102625091B (zh) | 一种基于avs的帧间预测方法 | |
CN102665080B (zh) | 用于移动补偿的电子装置及移动补偿方法 | |
CN100551059C (zh) | 用于从隔行编码帧产生逐行帧的设备 | |
CN102625093B (zh) | 一种基于avs的帧间预测方法 | |
CN102625095B (zh) | 一种基于avs的帧间预测方法 | |
Zhou et al. | A hardware decoder architecture for general string matching technique | |
CN102625094B (zh) | 一种基于avs的帧间预测方法 | |
JP2006166308A (ja) | 復号化装置及び復号化方法 | |
KR100708183B1 (ko) | 움직임 추정을 위한 영상 데이터 저장 장치 및 그 데이터저장 방법 | |
TW201429259A (zh) | 影像資料處理方法以及影像處理裝置 | |
CN117440168B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150107 Termination date: 20220127 |
|
CF01 | Termination of patent right due to non-payment of annual fee |