CN1622626A - 一种视频编解码过程中宏块预取的方法 - Google Patents
一种视频编解码过程中宏块预取的方法 Download PDFInfo
- Publication number
- CN1622626A CN1622626A CN 200410101464 CN200410101464A CN1622626A CN 1622626 A CN1622626 A CN 1622626A CN 200410101464 CN200410101464 CN 200410101464 CN 200410101464 A CN200410101464 A CN 200410101464A CN 1622626 A CN1622626 A CN 1622626A
- Authority
- CN
- China
- Prior art keywords
- macro block
- piece
- decoding process
- video encoding
- address
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 239000000872 buffer Substances 0.000 claims abstract description 23
- 230000003139 buffering effect Effects 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 3
- 230000009897 systematic effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种视频编解码过程中宏块预取的方法,包括步骤1、获得一个宏块;步骤2、按块的行列顺序,预取该宏块内的一个块,进行缓存;步骤3、将所缓存的块用于视频编解码处理;步骤4、按照步骤2和步骤3依次处理完该宏块内的所有块;步骤5、按照步骤1~步骤4,依次处理完所有需处理的宏块。本发明由于改变现有技术中对按宏块行列顺序预取的办法,而采用按宏块内部的块的行列顺序预取的方法,使缓冲地址为有效地址,以此避免了现有技术中存在的缓冲命中失误的问题,提高了编解码的速度,同时也保证了系统性能的稳定性和可知性。
Description
技术领域
本发明涉及一种视频数据编解码的方法,特别是一种视频编解码过程中宏块预取的方法。
技术背景
目前所采用的视频编解码的算法,如H.264编解码将图像数据划分为若干宏块(macro block)。并且图像的细节部分中的每个宏块将进一步细分为若干个块(block)。H.264编解码流程包括运动估计(motion estimation,ME)、运动补偿(motion compensation,MC)、帧内预测、变换、量化、反变换、反量化、熵编码等处理过程,而在进行这些处理时,会以宏块为单元,按宏块内部的各个块顺序处理。一般系统内存缓冲大小为32WORDS,即64个字,相当于一个8×8的块的大小。因而在对宏块操作时,系统内存不足以将宏块所有数据地址进行预取。另外,在宏块内部,数据是以行列方式顺序存储,因此对于一个块而言,其地址是不连续的。目前进行宏块预取的方法主要是,按宏块的行列方式顺序读写其中一个块的数据,结束后,再按同样的方法读写其它块的数据,直至完成该宏块内所有的块。由于块地址的不连续,且受到系统缓冲区大小的限制,缓冲区内不能存储一个块的所有数据,因此这种方法不可避免的存在读写的缓冲命中失误(cache miss)的问题。而这种缓冲命中失误的存在一方面将大大降低视频数据编解码的速度,另一方面也将增加因内存访问而造成的系统性能不可知的缺陷。
发明内容
本发明的目的是:针对现有技术的不足,提供一种视频数据编解码速度快、缓存命中率高的视频编解码过程中宏块预取的方法。
为了解决上述技术问题,本发明所采取的技术方案是:一种视频编解码过程中宏块预取的方法,包括如下步骤:
步骤1、获得一个宏块;
步骤2、按块的行列顺序,预取该宏块内的一个块,进行缓存;
步骤3、将所缓存的块用于视频编解码处理;
步骤4、按照步骤2和步骤3依次处理完该宏块内的所有块;
步骤5、按照步骤1~步骤4,依次处理完所有需处理的宏块。
所述步骤1具体可以为:获得一个宏块的基地址及该宏块内块的类型。
所述步骤2具体可以为:按照宏块的基地址、块的类型以及该块在宏块内的位置,从而确定该块的实际地址,并缓存块数据。
可以采用查表法确定块的实际地址。
所述步骤1具体可以为:确定一个宏块的地址范围及该宏块内块的类型。
所述步骤2具体可以为:按照块的类型以及该块在宏块内的位置,确定该块的实际地址,从而缓存块数据。
所述宏块可以为16×16像素,所述块可以为8×8,8×4,4×8或4×4像素。
在上述技术方案中,本发明由于按照宏块内的块的行列方式获得块地址,以缓存块数据,从而在进行视频数据编解码处理过程中,可以按照直接在缓冲区内获得块数据,不存在额外的缓冲命中失效的问题,从而使系统的内存访问时间可以有效预计,减少了因内存访问而造成的系统性能不可知的缺陷。另外,在预知块的类型的情况下,只要得到了宏块的基地址,就可以通过查表或计算的方式,确定宏块内每个块的地址范围,即可保证读写数据的缓存地址的有效性。其处理过程简单、但可大大提高视频数据编解码的速度。
具体实施方式
下面将结合具体实施例对本发明作进一步详细说明。
本发明提供一种视频编解码过程中宏块预取的方法,其步骤如下:
步骤1、获得一个宏块;
步骤2、按块的行列顺序,预取该宏块内的一个块,进行缓存;
步骤3、将所缓存的块用于视频编解码处理;
步骤4、按照步骤2和步骤3依次处理完该宏块内的所有块;
步骤5、按照步骤1~步骤4,依次处理完所有需处理的宏块。
由于目前系统缓冲区的大小一般为64个字节,正好是一个8×8的块。这就使系统缓冲区每次缓存一个小于或等于8×8像素的块成为可能。因此,从上述步骤可以看出,本发明的实质是:改变现有技术中对按宏块行列顺序预取的办法,而采用按宏块内部的块的行列顺序预取的方法,使缓冲地址为有效地址,以此避免了现有技术中存在的缓冲命中失误的问题,提高了编解码的速度,同时也保证了系统性能的稳定性和可知性。
下面将给出本发明的两种具体实施例。本发明包括但不限于这两种实施例。
实施例1:
一种视频编解码过程中宏块预取的方法,其步骤如下:
步骤1),获得一个宏块。具体为:获得一个宏块的基地址及该宏块内块的类型。
视频数据编解码过程中,块的划分包括4×4,4×8,8×4到16×16几种,例如在H.264算法的运动估计时,一般要将所有的块划分的模式同时用于计算,在比较运动估计的最后的残差结果来决定使用哪一种block划分。因此采用本发明所提供的方法,可以有效提高宏块内部的访问命中率。
在YUV420模式下,一个宏块(macro block)大小为16×16像素,包括4个亮度(Y)分量的块,和各1个UV分量的块。其中每个块是8×8像素。
步骤2),按块的行列顺序,预取该宏块内的一个块,进行缓存。具体可以为:按照宏块的基地址、块的类型以及该块在宏块内的位置,从而确定该块的实际地址,以将对应的块数据缓存入系统的缓冲区内。
这里我们可以采用查表法确定块的实际地址。
如预先获知块的类型为8×8像素,则首先建立地址数据表,用于存储各个块的偏移地址。
然后在缓存块时,只需以宏块基地址以及从地址数据表内查找得到的偏移地址之和作为块的实际地址,并按此实际地址,将块数据缓存入系统缓冲区。
步骤3、将所缓存的块用于视频编解码处理。所述的视频编解码处理过程包括H.264算法中,进行运动估计、运动补偿、变换、量化等处理过程。
步骤4、按照步骤二和步骤三依次处理完该宏块内的所有块。
步骤5、按照步骤1~步骤4,依次处理完所有需处理的宏块。
实施例2:
本实施例提供的一种视频编解码过程中宏块预取的方法,包括如下步骤:
步骤1、获得一个宏块;具体为:确定一个宏块的地址范围及该宏块内块的类型。
步骤2、按块的行列顺序,预取该宏块内的一个块,进行缓存;具体为:按照块的类型以及该块在宏块内的位置,确定该块的实际地址,从而缓存块数据。这里可以根据块的类型以及该块在宏块内的位置,利用软件建立对块的数据地址索引,从而对指定地址的块数据进行预取缓存。
步骤3、将所缓存的块用于视频编解码处理;
步骤4、按照步骤2和步骤3依次处理完该宏块内的所有块;
步骤5、按照步骤1~步骤4,依次处理完所有需处理的宏块。
本发明不仅适用于8×8的块,同样也使用于小于8×8像素的块,如8×4,4×8或4×4像素的块。
Claims (7)
1、一种视频编解码过程中宏块预取的方法,包括如下步骤:
步骤1、获得一个宏块;
步骤2、按块的行列顺序,预取该宏块内的一个块,进行缓存;
步骤3、将所缓存的块用于视频编解码处理;
步骤4、按照步骤2和步骤3依次处理完该宏块内的所有块;
步骤5、按照步骤1~步骤4,依次处理完所有需处理的宏块。
2、如权利要求1所述视频编解码过程中宏块预取的方法,其特征在于:所述步骤1具体为:获得一个宏块的基地址及该宏块内块的类型。
3、如权利要求2所述视频编解码过程中宏块预取的方法,其特征在于:所述步骤2具体为:按照宏块的基地址、块的类型以及该块在宏块内的位置,从而确定该块的实际地址,并缓存块数据。
4、如权利要求3所述视频编解码过程中宏块预取的方法,其特征在于:采用查表法确定块的实际地址。
5、如权利要求1所述视频编解码过程中宏块预取的方法,其特征在于:所述步骤1具体为:确定一个宏块的地址范围及该宏块内块的类型。
6、如权利要求5所述视频编解码过程中宏块预取的方法,其特征在于:所述步骤2具体为:按照块的类型以及该块在宏块内的位置,确定该块的实际地址,从而缓存块数据。
7、如权利要求1、2、3、4、5、6中之一所述视频编解码过程中宏块预取的方法,其特征在于:所述宏块为16×16像素,所述块为8×8,8×4,4×8或4×4像素。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004101014648A CN100440973C (zh) | 2004-12-21 | 2004-12-21 | 一种视频编解码过程中宏块预取的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004101014648A CN100440973C (zh) | 2004-12-21 | 2004-12-21 | 一种视频编解码过程中宏块预取的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1622626A true CN1622626A (zh) | 2005-06-01 |
CN100440973C CN100440973C (zh) | 2008-12-03 |
Family
ID=34766771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004101014648A Expired - Fee Related CN100440973C (zh) | 2004-12-21 | 2004-12-21 | 一种视频编解码过程中宏块预取的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100440973C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103533366A (zh) * | 2012-07-03 | 2014-01-22 | 展讯通信(上海)有限公司 | 用于视频运动补偿的缓存方法与装置 |
CN105847817A (zh) * | 2015-01-14 | 2016-08-10 | 炬芯(珠海)科技有限公司 | 一种视频处理设备和方法 |
CN103634604B (zh) * | 2013-12-01 | 2017-01-11 | 北京航空航天大学 | 一种面向多核dsp运动估计的数据预取方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR0134483B1 (ko) * | 1994-06-14 | 1998-05-15 | 배순훈 | 디코더에 있어서 어드레스 보정 회로(address correction circuit of the decoder) |
-
2004
- 2004-12-21 CN CNB2004101014648A patent/CN100440973C/zh not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103533366A (zh) * | 2012-07-03 | 2014-01-22 | 展讯通信(上海)有限公司 | 用于视频运动补偿的缓存方法与装置 |
CN103533366B (zh) * | 2012-07-03 | 2016-11-23 | 展讯通信(上海)有限公司 | 用于视频运动补偿的缓存方法与装置 |
CN103634604B (zh) * | 2013-12-01 | 2017-01-11 | 北京航空航天大学 | 一种面向多核dsp运动估计的数据预取方法 |
CN105847817A (zh) * | 2015-01-14 | 2016-08-10 | 炬芯(珠海)科技有限公司 | 一种视频处理设备和方法 |
CN105847817B (zh) * | 2015-01-14 | 2019-09-17 | 炬芯(珠海)科技有限公司 | 一种视频处理设备和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100440973C (zh) | 2008-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7965773B1 (en) | Macroblock cache | |
US20180084269A1 (en) | Data caching method and apparatus for video decoder | |
CN1197382C (zh) | 运动矢量搜索范围的自适应确定方法 | |
CN101064849A (zh) | 动态图像编码方法、装置和计算机可读记录介质 | |
US20110002396A1 (en) | Reference Frames Compression Method for A Video Coding System | |
Bao et al. | A lossless frame recompression scheme for reducing DRAM power in video encoding | |
JP4346573B2 (ja) | 符号化装置と方法 | |
CN1968420A (zh) | 应用于影像译码器与编码器的影像处理方法 | |
US8225043B1 (en) | High performance caching for motion compensated video decoder | |
CN1301620C (zh) | 可适应场景改变的视讯压缩方法 | |
CN1622626A (zh) | 一种视频编解码过程中宏块预取的方法 | |
CN1194544C (zh) | 基于时空域相关性运动矢量预测的视频编码方法 | |
US11057637B1 (en) | Efficient video motion estimation by reusing a reference search region | |
CN101365137B (zh) | 运动补偿参考数据载入方法和装置及解码器和编解码系统 | |
US8514237B2 (en) | Two dimensional memory caching apparatus for high definition video | |
CN1154367C (zh) | 用于运动图象的预测宏块数据存取转换的方法和装置 | |
CN111355962A (zh) | 适用于多参考帧的视频解码高速缓存方法、计算机装置及计算机可读存储介质 | |
CN1750660A (zh) | 移动向量计算方法 | |
CN1520187A (zh) | 用于视频数据压缩的系统和方法 | |
CN101031081A (zh) | 影像编码装置及其方法 | |
CN1622628A (zh) | 一种视频编解码过程中参考帧的宏块数据写入的方法 | |
CN1825960A (zh) | 基于数据缓存的多流水线阶段信息共享方法 | |
CN1306825C (zh) | 视频解码芯片中基于行缓冲的参考存储方法 | |
CN1622627A (zh) | 视频编解码过程中宏块数据读取的方法 | |
CN1154048C (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081203 Termination date: 20111221 |