CN104935933A - 一种视频编解码方法 - Google Patents

一种视频编解码方法 Download PDF

Info

Publication number
CN104935933A
CN104935933A CN201510303946.XA CN201510303946A CN104935933A CN 104935933 A CN104935933 A CN 104935933A CN 201510303946 A CN201510303946 A CN 201510303946A CN 104935933 A CN104935933 A CN 104935933A
Authority
CN
China
Prior art keywords
decoding
encoding
width
memory
frame image
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
CN201510303946.XA
Other languages
English (en)
Other versions
CN104935933B (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.)
Beijing Vimicro Artificial Intelligence Chip Technology Co ltd
Original Assignee
GUANGDONG ZHONGXING ELECTRONICS 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 GUANGDONG ZHONGXING ELECTRONICS Co Ltd filed Critical GUANGDONG ZHONGXING ELECTRONICS Co Ltd
Priority to CN201510303946.XA priority Critical patent/CN104935933B/zh
Publication of CN104935933A publication Critical patent/CN104935933A/zh
Application granted granted Critical
Publication of CN104935933B publication Critical patent/CN104935933B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明实施例提供一种视频编解码方法,既能有效利用已缓存的运动搜索窗数据,提高数据利用率,又能节省硬件成本。该视频编解码方法包括:将当前帧图像分为至少两个编解码区域,每个编解码区域的高度与当前帧图像的高度相同;在每个编解码区域内部,按照光栅扫描的方式进行编解码;其中,将与上一宏块行对应的运动搜索窗数据缓存在一存储器中;利用所述存储器中的运动搜索窗数据对当前宏块行进行编码。

Description

一种视频编解码方法
技术领域
本发明涉及视频数据编解码领域,尤其涉及一种视频编解码方法。
背景技术
在现有技术中,对一帧视频数据的编解码通常采用光栅扫描(raster扫描)的方式进行。图1所示为现有技术提供的一种视频编解码方法的原理示意图。如图1所示,现有的编解码方式为:首先从第一行宏块的第0个宏块依次编解码至第P-1个,然后再开始第二行第0个宏块至第P-1个宏块的编解码,以此类推至当前帧图像的最后一个宏块行。该视频编解码方法可通过如下伪代码实现:
For(j=0;j<(pic_h+P-1)/N;j++){
For(i=0;i<(pic_w+P-1)/N;i++){
Codec_MB(i,j);
}
}
其中,pic_h/pic_w分别为当前帧图像的高度(Picture_height)和宽度(Picture_width)。Codec_MB(I,j)指对第i宏块行的第j个宏块进行编解码。
在对一个宏块进行编解码的过程中,需要利用参考帧图像中位于该宏块周边的一个相邻宏块的数据作为参考帧数据,以此来提高对该宏块的编解码效率。其中,用于搜索该相邻宏块的参考帧范围称为当前宏块的运动搜索窗。为了使得当前宏块的运动搜索窗能够在下一个宏块的编解码过程中被重复利用,需要将该当前宏块的运动搜索窗数据缓存在一个存储器中。由于存储器中的缓存数据需要从一个动态随机存储器(DDR)中读取,而反复从DDR中读取数据会降低编解码效率,因此应尽量提高存储器中缓存数据的数据利用率。
在现有的编解码方法中,通常采用如下两种方式来缓存运动搜索窗数据。
图2所示为现有技术提供的一种视频编解码方法中缓存参考帧数据的原理示意图。如图2所示,CB1为当前要进行编解码的宏块,CB0为已缓存运动搜索窗数据的宏块,每个宏块的长宽均为为N个像素。当假设针对一个像素的运动搜索窗高为SRv-1,宽为SRh-1时(在视频编码中,SRv/SRh所针对的是像素个数的概念,由于在算法设计中变量一般从0开始,因此需要将运动搜索窗的高表示为SRv-1,宽表示为SRh-1);则针对一个宏块的运动搜索窗的高为SRv+N-1,宽为SRh+N-1。又由于CB1的运动搜索窗需要相对于CB0右移一个宏块的宽度(N个像素),因此用于缓存运动搜索窗数据的存储器大小需对应高为SRv+N-1,宽为SRh+2N-1的矩形窗口内的参考帧数据。然而,当采用这种缓存方式时,存储器所缓存的运动搜索窗数据的利用率很低。这是因为当编解码至一宏块行的最后一个宏块时,存储器中所缓存的仅为当前宏块行最后一个宏块的运动搜索窗数据,而由于该当前宏块行最后一个宏块的运动搜索窗距下一行的第一个宏块距离较远,因而存储器中的缓存数据往往不能被重复利用。因此,虽然随着当前宏块行编解码的逐渐进行,存储器中所缓存的运动搜索窗数据在水平方向上的利用率可达100%;但在垂直方向上的利用率仅有一个宏块行的高度。因此,存储器中缓存数据的数据利用率=水平利用率*垂直利用率,可表示为N/(SRv+N-1)。
为了解决存储器所缓存运动搜索窗数据在垂直方向上的利用率低的问题,现有技术还提供了另一种缓存运动搜索窗数据的方式。
图3所示为现有技术提供的另一种视频编解码方法中缓存参考帧数据的原理示意图。如图3所示,存储器中所缓存的为一个与当前帧图像等宽的运动搜索窗数据,这样当编解码至下一宏块行的第一个宏块时,该宏块的运动搜索窗必然会与已缓存的运动搜索窗数据有所重叠。因此随着光栅扫描编解码的逐渐进行,存储器中已缓存的动搜索窗数据在水平和垂直方向上都会被100%利用。然而,采用这种缓存方式时存储器的大小需对应高为SRv+N-1,宽为当前帧图像宽度(Picture_width)的矩形窗口内的参考帧数据,这就需要在硬件架构中使用大容量的存储器,从而会导致较大的硬件成本。
由此可见,采用现有的视频编解码方法根本无法达到硬件成本和缓存数据利用率之间的平衡。因此,急需一种既节省硬件成本又兼顾缓存数据利用率的新的视频编解码方法。
发明内容
本发明实施例提供一种视频编解码方法,既能有效利用已缓存的运动搜索窗数据,提高数据利用率,又能节省硬件成本。
一种视频编解码方法,包括:
将当前帧图像分为至少两个编解码区域,每个编解码区域的高度与当前帧图像的高度相同;
在每个编解码区域内部,按照光栅扫描的方式进行编解码;其中,将与上一宏块行对应的运动搜索窗数据缓存在一存储器中;利用所述存储器中的运动搜索窗数据对当前宏块行进行编码。
本发明实施例提供的一种视频编解码方法,通过将当前帧图像分成多个编解码区域,在每个编解码区域内部进行编解码时,存储器中仅需缓存一个编解码区域宽度的运动搜索窗数据,从而不需要大容量的存储器来完成缓存;且当对当前编解码区域内的下一宏块行进行编解码时,仍能够重复利用存储器中缓存的运动搜索窗数据。由此便实现了一种既能节省硬件成本,又能有效利用已缓存运动搜索窗数据的视频编解码方法。
附图说明
图1所示为现有技术提供的一种视频编解码方法的原理示意图。
图2所示为现有技术提供的一种视频编解码方法中缓存参考帧数据的原理示意图。
图3所示为现有技术提供的另一种视频编解码方法中缓存参考帧数据的原理示意图。
图4所示为本发明一实施例提供的一种视频编解码方法的原理示意图。
图5所示为本发明另一实施例提供的一种视频编解码方法的原理示意图。
图6所示为本发明一实施例提供的一种视频编解码方法中缓存参考帧数据的原理示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明一实施例提供的一种视频编解码方法包括:将当前帧图像分为至少两个编解码区域,每个编解码区域的高度与当前帧图像的高度相同;在每个编解码区域内部,按照光栅扫描的方式进行编解码;其中,将与上一宏块行对应的运动搜索窗数据缓存在一存储器中;利用所述存储器中的运动搜索窗数据对当前宏块行进行编码。
这样在每个编解码区域内部进行编解码时,存储器中仅需缓存一个编解码区域宽度的运动搜索窗数据,从而不需要大容量的存储器来完成缓存;且当对当前编解码区域内的下一宏块行进行编解码时,仍能够重复利用存储器中缓存的运动搜索窗数据。由此便实现了一种既能节省硬件成本,又能有效利用已缓存运动搜索窗数据的视频编解码方法。
下面通过一个实施例来详细说明本发明视频编解码方法的技术方案。
图4所示为本发明一实施例提供的一种视频编解码方法的原理示意图。如图4所示,通过限制当前帧图像的水平扫描宽度Horizontal_scan_size,将当前帧视频图像被分为了多个编解码区域,每个编解码区域内的一个宏块行包括P个宏块(编号从0到P-1)。
这样在每个编解码区域内部,仍以宏块为单位按照光栅扫描的顺序进行编解码。具体而言,首先从当前编解码区域内第一行宏块的第0个宏块依次编解码至第P-1个,然后再开始第二行第0个宏块至第P-1个宏块的编解码,以此类推至当前编解码区域的最后一个宏块行。
在本发明一实施例中,多个编解码区域之间按照从左至右的顺序进行编解码。这样当完成一个编解码区域最后一个宏块的编解码后,则开始对右侧相邻编解码区域的第一个宏块进行编解码。例如,如图5所示,该视频图像宽度为34个宏块(编号从0到33),该34个宏块宽度被分为了2个编解码区域,每个编解码区域的宽度限制为17个宏块(编号分别从0到16和从17到33)。这样当完成对左侧编解码区域最后一行编号16的宏块的编解码时,则开始对右侧编解码区域第一行编号17的宏块开始编解码,直至完成对右侧编解码区域最后一行编号33的宏块的编解码。
在本发明一实施例中,上述多个编解码区域之间按照从左至右的顺序进行编解码的过程可通过如下伪代码实现:
Width=Horizontal_scan_size;
W_num=Width/N;
For(k=0;k<(pic_w+Width-1)/Width;k++){
For(j=0;j<(pic_h+P-1)/N;j++){
For(i=0;i<W_num;i++){
Codec_MB(i,j);
}
}
}
其中,pic_h/pic_w分别为当前帧图像的高度和宽度,W_num表示第k个编解码区域的第i宏块行中所包括的宏块个数,Codec_MB(I,j)指对第k个编解码区域的第i宏块行的第j个宏块进行编解码。
本领域技术人员可以理解,由于视频图像的实际分辨率以及所使用的存储器大小可能各有不同,每个编解码区域的宽度可根据存储器的大小调整。
在本发明一实施例中,用于缓存运动搜索窗数据的存储器可采用cache存储器或sram存储器。此时,考虑到目前硬件存储器的发展水平以及现有通用处理器中cache存储器的大小,每个编解码区域的宽度应不大于1024个像素。
本领域技术人员同样可以理解,一帧视频图像中所包含编解码区域的数量也可根据当前帧视频图像而调整,本发明对一帧视频图像中所包含编解码区域的数量不做限定。
图6所示为本发明一实施例提供的一种视频编解码方法中缓存参考帧数据的原理示意图。如图6所示,存储器中所缓存的与上一宏块行对应的运动搜索窗的宽度等于当前编解码区域的宽度(Horizontal_scan_size)与一个像素的运动搜索窗的宽度(SRh-1)之和。这是因为当前编解码区域可能位于当前帧图像的中间位置,即当前编解码区域的左右都不包含当前帧图像的边界,所以所取的参考帧数据必须是真实的图像数据,而不能通过编解码器自行扩展。因此存储器中所缓存的运动搜索窗的宽度就要在Horizontal_scan_size基础上加上SRh-1。此时,存储器中缓存数据在水平方向上的利用率可表示为Horizontal_scan_size/(Horizontal_scan_size+SRh),由于垂直方向的利用率为100%,因此存储器中缓存数据的数据利用率也等于Horizontal_scan_size/(Horizontal_scan_size+SRh)。
在本发明一实施例中,若当前帧图像的宽度为4096个像素;一个宏块的长宽均为32个像素;针对一个像素的运动搜索窗的宽度为128个像素,高度为64个像素;则,每个编解码区域的宽度可定义为1024个像素。此时,将本发明实施例视频编解码方法所实现的数据利用率和所需的存储器大小与图2和图3所示的现有视频编解码方法作比较,结果如下表:
图2 图3 本发明实施例
数据利用率 33% 100% 89%
所需的存储器大小 12.5Kbytes 380Kbytes 79Kbytes
如上表所示,相比于图2所示的现有视频编解码方法,本发明实施例所提供的视频编解码方法的数据利用率显著提升,但并没有带来过多的存储器大小需求。相比于图3所示的现有视频编解码方法,本发明实施例所提供的视频编解码方法所需的存储器大小显著降低,但仅降低了11%的数据利用率。由此可见,相比于图2和图3所示的现有视频编解码方法,本发明实施例所提供的视频编解码方法实现了硬件成本和缓存数据利用率之间的平衡。
在本发明一实施例中,可将本发明实施例所提供的视频编解码方法应用在当前视频文件所有视频序列的视频图像上,以在序列级尺度上进一步提高编解码效率。
由于所提供的视频编解码方法既能节省硬件成本,又能有效利用已缓存运动搜索窗数据,因此该视频编解码方法应用到的具体硬件装置的可适用性也大大增强。在本发明一实施例中,该视频编解码方法不仅可以在设置有codec的硬件中使用,也可以应用于配置有cache的通用处理器中。
上述实施例只为说明本发明的技术构思及特点,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种视频编解码方法,其特征在于,包括:
将当前帧图像分为至少两个编解码区域,每个编解码区域的高度与当前帧图像的高度相同;
在每个编解码区域内部,按照光栅扫描的方式进行编解码;其中,将与上一宏块行对应的运动搜索窗数据缓存在一存储器中;利用所述存储器中的运动搜索窗数据对当前宏块行进行编码。
2.根据权利要求1所述的方法,其特征在于,所述与上一宏块行对应的运动搜索窗的宽度等于当前编解码区域的宽度与一个像素的运动搜索窗的宽度之和。
3.根据权利要求1所述的方法,其特征在于,将当前帧图像分为至少两个编解码区域,每个编解码区域的高度与当前帧图像的高度相同包括:
通过限制当前帧图像的水平扫描宽度,将当前帧图像分为至少一个编解码区域。
4.根据权利要求1至3中任一所述的方法,其特征在于,
每个所述编解码区域的宽度根据所述存储器的大小调整。
5.根据权利要求4所述的方法,其特征在于,每个所述编解码区域的宽度不大于1024个像素。
6.根据权利要求5所述的方法,其特征在于,若当前帧图像的宽度为4096个像素;一个宏块的长宽均为32个像素;针对一个像素的运动搜索窗的宽度为128个像素,高度为64个像素;则,
每个所述编解码区域的宽度为1024个像素。
7.根据权利要求1至3中任一所述的方法,其特征在于,进一步包括:
在所述至少两个编解码区域之间,按照从左至右的顺序进行编解码。
8.根据权利要求1至3中任一所述的方法,其特征在于,所述存储器为cache存储器或sram存储器。
9.根据权利要求1至3中任一所述的方法,其特征在于,将所述视频编解码方法应用在当前视频文件所有视频序列的视频图像上。
10.根据权利要求1至3中任一所述的方法,其特征在于,将所述视频编解码方法应用于设置有codec的硬件中或应用于配置有cache存储器的通用处理器中。
CN201510303946.XA 2015-06-05 2015-06-05 一种视频编解码方法 Active CN104935933B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510303946.XA CN104935933B (zh) 2015-06-05 2015-06-05 一种视频编解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510303946.XA CN104935933B (zh) 2015-06-05 2015-06-05 一种视频编解码方法

Publications (2)

Publication Number Publication Date
CN104935933A true CN104935933A (zh) 2015-09-23
CN104935933B CN104935933B (zh) 2019-11-26

Family

ID=54122854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510303946.XA Active CN104935933B (zh) 2015-06-05 2015-06-05 一种视频编解码方法

Country Status (1)

Country Link
CN (1) CN104935933B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106385585A (zh) * 2016-09-14 2017-02-08 苏睿 帧编解码的方法、装置和系统
CN108024116A (zh) * 2016-10-28 2018-05-11 腾讯科技(深圳)有限公司 一种数据缓存方法及装置
CN110035292A (zh) * 2019-03-18 2019-07-19 佛山市顺德区中山大学研究院 一种低片上内存的视频参考帧读写方法
WO2022206166A1 (zh) * 2021-04-01 2022-10-06 Oppo广东移动通信有限公司 在视频编码装置中进行图像处理的方法、装置及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101309405A (zh) * 2007-05-14 2008-11-19 华为技术有限公司 参考数据载入的方法及装置
CN101389021A (zh) * 2007-09-14 2009-03-18 华为技术有限公司 视频编解码方法及装置
CN102647592A (zh) * 2012-04-18 2012-08-22 北京大学 一种高清编码器的运动估计搜索窗数据复用方法
CN103907350A (zh) * 2012-09-29 2014-07-02 华为技术有限公司 视频编码及解码方法、装置及系统
CN104247428A (zh) * 2012-04-06 2014-12-24 索尼公司 解码装置和解码方法以及编码装置和编码方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101309405A (zh) * 2007-05-14 2008-11-19 华为技术有限公司 参考数据载入的方法及装置
CN101389021A (zh) * 2007-09-14 2009-03-18 华为技术有限公司 视频编解码方法及装置
CN104247428A (zh) * 2012-04-06 2014-12-24 索尼公司 解码装置和解码方法以及编码装置和编码方法
CN102647592A (zh) * 2012-04-18 2012-08-22 北京大学 一种高清编码器的运动估计搜索窗数据复用方法
CN103907350A (zh) * 2012-09-29 2014-07-02 华为技术有限公司 视频编码及解码方法、装置及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
范文 等: "H.264并行视频编码的分配机制的研究", 《通信技术》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106385585A (zh) * 2016-09-14 2017-02-08 苏睿 帧编解码的方法、装置和系统
CN106385585B (zh) * 2016-09-14 2019-10-11 西安万像电子科技有限公司 帧编解码的方法、装置、系统、存储介质
CN108024116A (zh) * 2016-10-28 2018-05-11 腾讯科技(深圳)有限公司 一种数据缓存方法及装置
CN110035292A (zh) * 2019-03-18 2019-07-19 佛山市顺德区中山大学研究院 一种低片上内存的视频参考帧读写方法
WO2022206166A1 (zh) * 2021-04-01 2022-10-06 Oppo广东移动通信有限公司 在视频编码装置中进行图像处理的方法、装置及系统

Also Published As

Publication number Publication date
CN104935933B (zh) 2019-11-26

Similar Documents

Publication Publication Date Title
US20240187638A1 (en) Picture prediction method and picture prediction apparatus
CN103281538B (zh) 基于滚动哈希和块级别帧内预测的帧内编码方法
CN104811721B (zh) 视频解码数据存储方法及运动向量数据的计算方法
US8565308B2 (en) Interframe prediction processor with address management mechanism for motion vector storage
US20050190976A1 (en) Moving image encoding apparatus and moving image processing apparatus
CN104935933A (zh) 一种视频编解码方法
CN109391814A (zh) 视频图像编码和解码的方法、装置及设备
EP3301924A1 (en) Method and apparatus for processing intra prediction mode
CA3131447A1 (en) Encoding and decoding method and device, encoder side apparatus and decoder side apparatus
US20100272181A1 (en) Image processing method and image information coding apparatus using the same
CN103618898A (zh) 一种支持随机访问的复杂度图像无损压缩方法
CN101783958B (zh) Avs视频标准中时域直接模式运动矢量的计算方法和装置
US8687083B2 (en) High resolution digital image capturing apparatus and reference pixel memory storage space configuration method
CN1645928A (zh) 用于压缩视频信号解码的图像存储方法
CN101179724B (zh) 帧间压缩编码中的帧存储方法及装置
CN104853220A (zh) 一种hevc编码四叉树的递推译码方法
CN102111615B (zh) 直接存储器存取搬移实现视频滤波的方法及系统
US20150055707A1 (en) Method and Apparatus for Motion Compensation Reference Data Caching
TWI418219B (zh) 用於動態補償系統之資料映像方法及快取記憶體系統
CN104113759A (zh) 视频系统、视频帧缓存再压缩/解压缩方法与装置
CN103220507A (zh) 一种视频编解码方法及系统
Sanghvi 2D cache architecture for motion compensation in a 4K ultra-HD AVC and HEVC video codec system
JP2012227608A (ja) 画像符号化装置及び画像復号装置
CN101729903B (zh) 一种读取参考帧数据的方法、系统和多媒体处理器
US20130127887A1 (en) Method for storing interpolation data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20190311

Address after: 519031 Room 105-15070, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province

Applicant after: GUANGDONG VIMICRO ELECTRONICS CO.,LTD.

Address before: 519000 room 105, 6 Baohua Road, Hengqin New District, Zhuhai, Guangdong -478

Applicant before: Guangdong Zhongxing Electronics Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210207

Address after: No. 607, 6th floor, shining building, 35 Xueyuan Road, Haidian District, Beijing 100083

Patentee after: BEIJING VIMICRO ARTIFICIAL INTELLIGENCE CHIP TECHNOLOGY Co.,Ltd.

Address before: 519031 Room 105-15070, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province

Patentee before: GUANGDONG VIMICRO ELECTRONICS Co.,Ltd.

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A Video Encoding and Decoding Method

Granted publication date: 20191126

Pledgee: Zhongguancun Branch of Bank of Beijing Co.,Ltd.

Pledgor: BEIJING VIMICRO ARTIFICIAL INTELLIGENCE CHIP TECHNOLOGY CO.,LTD.

Registration number: Y2024110000016