CN1997156A - 视频编码器中一种快速的搜索块读取模块 - Google Patents

视频编码器中一种快速的搜索块读取模块 Download PDF

Info

Publication number
CN1997156A
CN1997156A CN 200610144273 CN200610144273A CN1997156A CN 1997156 A CN1997156 A CN 1997156A CN 200610144273 CN200610144273 CN 200610144273 CN 200610144273 A CN200610144273 A CN 200610144273A CN 1997156 A CN1997156 A CN 1997156A
Authority
CN
China
Prior art keywords
register
search
search block
data
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
Application number
CN 200610144273
Other languages
English (en)
Other versions
CN100527837C (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN 200610144273 priority Critical patent/CN100527837C/zh
Publication of CN1997156A publication Critical patent/CN1997156A/zh
Application granted granted Critical
Publication of CN100527837C publication Critical patent/CN100527837C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明涉及视频编码器中一种快速的搜索块读取模块,属于信号处理中的视频编码领域。该模块包括:参考图像数据存储器,二维的搜索块寄存器阵列;参考图像数据存储器的输出端同时与二维的搜索块寄存器阵列的最上一行寄存器输入端口、最下一行寄存器输入端口相连。其中的二维的搜索块寄存器阵列由(m+1)×n个单元寄存器及三选一多路选择器组成,寄存器阵列中第一行和最后一行的单元寄存器构成该二维的搜索块寄存器阵列的上输入端口与下输入端口,均与参考图像数据存储器的输出端相连。本发明在运动搜索过程中,可高效地读取搜索块,减小整个搜索过程的时间代价,提高编码器编码速度,实现高分辨率下的实时编码。

Description

视频编码器中一种快速的搜索块读取模块
技术领域
本发明属于信号处理中的视频编码领域,涉及视频编码器中一种快速的搜索块读取模块
背景技术
视频是指由一系列时间上相关的图像组成的系列,其中的每幅图像称为一个“帧”(本申请中对帧模式和场模式的图像都统一适用,所以不再区分帧和场,统一称为帧),每个帧又可以划分为若干个“块”,通常块为正方形或矩形,视频编码以块为基本单位进行编码,视频编码中常用的块有16×16,8×16,16×8,8×8,4×4等,都是以象素为单位;“象素”则是指构成图像的点,是构成图像的最小单元。
对视频进行编码的目的是对视频的数据进行压缩,以方便存储和传输,而视频编码器就是具有该功能的器件。一个好的视频编码器,可以在保持视频尽量好的视觉质量的同时,把数据量压缩到尽可能低。
视频编码器由很多功能模块组成,其中“运动估计(motion estimation,ME)模块”是视频编码器中的一个重要模块,承担了整个编码过程中90%左右的运算量。运动估计模块实现的功能是,针对当前需要编码的块,从用于参考的一帧图像中,找出一个和当前要编码的图像块大小相同的、匹配程度最好的块,并利用这个块对当前编码的块进行预测,得到预测残差。通常,如果从整个一帧参考图像中搜寻用于预测的块,运算量会相当巨大,所以定义一个“搜索范围”,比一帧图像的区域小些,比块的区域大些;所用的匹配程度最好的块就从这个区域中寻找。
如图1所示,该图示意了运动估计模块所实现的功能,该图包括了:一个m×n的待编码图像块(在图像处理中,说一个图像是x×y,是指“宽(水平方向)×高(垂直方向)”,单位为象素,和有时所用的“行数(垂直方向)×列数(水平方向)有所区别),需要对该块进行编码;一个W×H的参考帧,这个参考帧中,规定了一个a×b的区域,该区域是搜索范围;如上所提及的一个a×b的搜索范围,在这个搜索范围内,可以选出m×n的块作为搜索块;如上所提及的m×n的搜索块,用于和待编码块做匹配程度的检测;一个m×n的残差图像块,由待编码图像块和搜索图像块的对应象素分别作差得到。该图中表示运动估计模块的功能为:选择搜索范围内所有可能的搜索块,和待编码图像块作差得到一个m×n的残差图像块,根据残差图像块得到搜索块和待编码图像块匹配程度;由于在a×b的搜索范围内,有很多m×n的搜索块,因此最后需要从这些搜索块中,选择一个匹配程度最好的搜索块,这个从所有搜索块中选取的匹配程度最好的块,称为“最佳参考块”;最后运动估计模块利用最佳参考块对待编码图像块进行预测,得到最终真正要使用的残差图像块。
运动估计模块中,实现从所有搜索块中选出最佳参考块这个功能的子模块,是运动搜索(motion search)模块。为了从所有搜索块选出最佳参考块,一个运动搜索模块,需要遍历所有可能的搜索块,对每个搜索块作匹配程度检测。
一种传统的运动搜索模块遍历所有搜索块的过程如图2所示,图中包括:一个a×b的搜索范围;从搜索范围内选择的m×n的搜索块;图中所示的流程为:先从搜索范围的左上角开始,选择一个搜索块,对这个搜索块作匹配程度检测,记录匹配程度;完成后,向下移动一个象素,选择一个新的搜索块,对这个搜索块作匹配程度检测,记录匹配程度,并和之前已检测的搜索块的匹配程度作比较;完成后,再向下移动一个象素,取新的块,继续相同过程,一直到搜索范围的底端,这样就完成了搜索范围中,一个列的搜索块的匹配程度检测和比较。之后回到搜索范围顶端,向右移动一个象素,开始新的一个列的搜索块的匹配程度检测和比较,如此进行,直到所有的搜索块都检测完,得到最佳参考块。
运动搜索模块在搜寻最佳匹配块的过程中,最主要的工作是计算每个搜索块的匹配程度。计算一个搜索块的匹配程度,需要将这个搜索块中的每个象素,和待编码图像块中的对应象素作差,得到每个象素残差,然后对所有象素残差,按一定规则计算其匹配程度度量(比如所有象素残差的绝对值之和,该度量称为SAD,SAD越小,匹配越好)。
实现上述功能的传统的高并行度运动搜索模块用二维寄存器阵列实现,其结构及工作原理如图3所示,包括:一个参考图像数据存储器,用于存储参考帧搜索范围内象素的数据,该存储器每次只能读出一行象素的数据;一个二维的搜索块寄存器阵列,用于每次读出一个块的象素的数据;一个二维的待编码图像块的寄存器阵列,用于寄存待编码图像块的象素的数据,该寄存器阵列每次可以读出一个块的象素的数据,在对一个块的编码过程中,这个寄存器阵列内的数据不变,直到完成当前块的编码,进入下一个块的编码;一个二维的减法器阵列,用于将待编码图像块数据和搜索块数据作差,计算得到残差图像块的数据;一个匹配程度度量计算器,用于根据残差图像块数据计算得到搜索块的匹配程度度量;一个匹配程度度量比较器和块选择器,用于选出目前为止匹配最好的搜索块(以位置作为标识);
各部件的连接关系为:所述参考图像数据存储器的输出端与二维的搜索块寄存器阵列的输入端相连,该二维的搜索块寄存器阵列的输出端和待编码图像块的寄存器阵列输出端均与二维的减法器阵列的输入端相连,二维的减法器阵列的输出端与匹配程度度量计算器的输入端相连,匹配程度度量计算器的输出端与匹配程度度量比较器和块选择器的输入端相连。
在上述运动搜索模块的结构中,其中的参考图像数据存储器和二维的搜索块寄存器阵列两个部件构成了运动搜索模块中的搜索块读取模块,如图4所示,包括:一个参考图像数据存储器,用于存储参考帧搜索范围内象素的数据,该存储器每次只能读出一行象素的数据;一个二维的搜索块寄存器阵列,用于每次读出一个块的象素的数据。其连接关系为:所述参考图像数据存储器的输出端与二维的搜索块寄存器阵列的输入端相连,该二维的搜索块寄存器阵列的输出端为后续模块提供搜索块数据。
在上述搜索块读取模块的结构中,二维的搜索块寄存器阵列的具体结构如图5所示,由m×n个单元寄存器组成(m、n的取值由待编码的图像块的大小确定,即与该图像块的象素数目相同,如m×n为16×16,8×16,16×8,8×8,4×4等),每个单元寄存器寄存一个象素数据;各单元寄存器的连接关系为:各列每个单元寄存器的输出口与该列中上方相邻的单元寄存器的输入口相连通(最上方的单元寄存器输出口不和其他单元寄存器相连),最下方单元寄存器的输入口构成该二维的搜索块寄存器阵列的输入端,与参考图像数据存储器的输出端相连;该二维的搜索块寄存器阵列的二维的数据输出端口(由所有单元寄存器的输出口构成)为后续模块提供参考块数据。
图5中,每个小方块表示了可以寄存一个象素数据的单元寄存器,小方块内的数据(x,y)表示了这个单元寄存器在阵列中位于第x行第y列;设待编码块大小为m×n,则这个寄存器阵列的大小也是m×n。标识k,k+1...表示在寄存器阵列中,这一行的单元寄存器存储了搜索范围中第k行,第k+1行...对应的数据。其中,第k+n行由参考图像数据存储器输出,即将进入寄存器阵列。该寄存器阵列具有逐行向上移位的功能,从参考图像数据存储器读出的新一行的数据由寄存器阵列的下端进入寄存器阵列,同时寄存器阵列原有数据逐行向上移位一个行距,最上面一行数据从寄存器阵列溢出。每加载一行新的数据,从逻辑结构上说,等效于搜索块的位置往下移动了一个象素。
上述二维的搜索块寄存器阵列的工作步骤如图6所示,该图详细表示了随着时间的变化,二维的搜索块寄存器阵列中数据的交换过程。图中:x坐标表示时间,y坐标表示了寄存器阵列的行标号。每个实线小方块为寄存器阵列中的一行,其中的文字L(e,f)表示这一行寄存器中所存储的数据,来自搜索范围内,(第e行,第f列)开始到(第e行,第f+m-1列)为止的一行长度为m象素的数据。X表示是无效数据。虚线小方块表示来自参考图像数据存储器输出,即将进入寄存器阵列的一行数据。该工作步骤分s1、s2、...几个阶段,分别为:
s1)初始化,此时二维的搜索块寄存器阵列中,所有数据都是无效数据;
s2)第1列加载阶段,此时开始从存储器中逐行读出参考图像数据,每个时钟周期加载一行,每加载一行,无效数据减少一行,之前已加载的数据向上移位一行;
s3)第1列搜索阶段,此时寄存器中已全是第1列的有效数据,开始计算匹配程度度量,同时每个时钟周期加载一个新的行,其余行向上移位一行,最上一行溢出寄存器阵列,逻辑结构上来说,搜索块位置向下移动了一个象素的距离;这样一直到第1列搜索块完成;
s4)第2列加载阶段,从第1列过渡到第2列,相当于搜索块位置向右移动了一个象素距离,此时寄存器阵列中已加载的第1列的数据,对第2列的搜索块来说,都是无效的数据,需要从第2列的第1行开始重新加载数据;
s5)第2列加载完成,进行第2列的搜索,和第1列一样,直到第2列搜索完成,开始加载第3列数据,如此进行,直到所有搜索块完成。
执行完上述步骤后,就完成了所有搜索块的匹配程度检测,从这些搜索块中找出匹配程度最好的,作为最佳参考块,就完成了这个块的运动搜索,进行这个块的后续编码流程,然后开始下个块的运动搜索。
可以看到,传统的二维的搜索块寄存器阵列,在搜索过程中,每完成一个列搜索块的搜索,都需要重新加载数据到寄存器阵列,带来了一定程度的额外时间开销,增加了时间代价。这种代价,在搜索范围大,块的大小比较小时,占总时间的比例不高,但是一旦块的大小增大,搜索范围减小,这个额外时间开销所占的比例就会增大。假设块的大小为m×n,搜索范围a×b,则加载时间需要(a-m+1)×(n-1)个时钟周期,完成搜索的总时间为(a-m+1)×(b)个时钟周期,加载时间的开销占了总时间的
( a - m + 1 ) ( n - 1 ) ( a - m + 1 ) b = ( n - 1 ) b
如果块大小为8×8,搜索范围为64×64,则加载时间有399时钟周期,完成搜索总时间为3648时钟周期,加载时间占11%;
如果大小为16×16,搜索范围为32×32,则加载时间有255时钟周期,完成搜索总时间为544时钟周期,加载时间占到了47%。
发明内容
本发明的目的是为克服已有技术的不足之处,提出一种快速的搜索块读取模块,对其中的二维的搜索块寄存器阵列进行了结构上的改进,使其改进了搜索次序,以很小的额外硬件资源为代价,大大减小了加载时间带来的额外时间开销,减小整个搜索过程的时间代价,提高编码器编码速度,实现高分辨率下的实时编码。
本发明提出的一种快速的搜索块读取模块,包括:参考图像数据存储器,用于存储参考帧搜索范围内象素的数据;二维的搜索块寄存器阵列,用于每次读出一个块的象素的数据;其特征在于,所述参考图像数据存储器的输出端同时与二维的搜索块寄存器阵列的最上一行寄存器输入端口、最下一行寄存器输入端口相连,该二维的搜索块寄存器阵列的数据输出端口给后续模块提供搜索块数据。
本发明的特点及技术效果:
本发明的主要特点在于,改进了二维的搜索块寄存器阵列的结构,即增加了若干列的暂存性质的单元寄存器,同时改变了各单元寄存器连接关系,即各单元寄存器之间有三个方向的数据移位通道。因此工作时,使用蛇行搜索路线,将不同位置的搜索块衔接起来,不再需要每列都重新加载数据。
按照本发明的结构,额外消耗的加载时间只在第1列加载时才有,后续的列都不需要加载过程,假设块的大小为m×n,搜索范围a×b,则加载时间需要n-1个时钟周期,完成搜索的总时间为(a-m+1)×(b-n+1)+(n-1)个时钟周期,加载时间的开销占了总时间的
( n - 1 ) ( a - m + 1 ) ( b - n + 1 ) + ( n - 1 )
如果块大小为8×8,搜索范围为64×64,则加载时间有7时钟周期,完成搜索总时间为3256时钟周期,加载时间占0.2%;
如果大小为16×16,搜索范围为32×32,则加载时间有15时钟周期,完成搜索总时间为304时钟周期,加载时间占5%。
对比传统方法,可以发现,本发明不论在加载时间上、总时间上,还是加载时间所占比例上,都大大减小的了代价。在最为总要的指标,总时间上,第一种情况减小了11%,第二种情况减小了56%。
附图说明
图1为运动估计模块的功能示意图,其中高度和宽度的单位都是象素。
图2为对所有搜索块进行匹配程度检测的一种遍历次序的示意图。
图3为传统高并行度运动搜索模块的结构示意图。
图4为传统高并行度运动搜索模块中搜索块读取子模块的结构示意图。
图5为传统搜索块读取模块中二维的搜索块寄存器阵列的具体结构示意图。
图6为传统搜索块读取模块的工作步骤示意图。
图7为本发明的快速的搜索块读取模块结构示意图。
图8为本发明的快速的搜索块读取模块中二维的搜索块寄存器阵列的具体结构示意图。
图9为本发明的快速的搜索块读取模块的工作步骤示意图。
具体实施方式
下面结合附图及实施例对本发明作进一步详细说明。
本发明提出的一种快速的搜索块读取模块,其结构如图7所示,包括:一个参考图像数据存储器,用于存储参考帧搜索范围内象素的数据,该参考图像数据存储器每次只能读出一行象素的数据;一个二维的搜索块寄存器阵列,用于每次读出一个块的象素的数据;
各部件的连接关系为:所述参考图像数据存储器的输出端同时与二维的搜索块寄存器阵列的最上行寄存器输入端口、最下行寄存器输入端口相连,该二维的搜索块寄存器阵列的数据输出端口为后续模块提供搜索块数据。
本发明的快速的搜索块读取模块与图4所示的传统搜索块读取模块结构相比,该结构增加了一条由参考图像数据存储器输出到二维的搜索块寄存器阵列上端输入的数据通路。
上述二维的搜索块寄存器阵列的具体结构如图8所示,由(m+1)×n个单元寄存器及三选一多路选择器组成(m、n为正整数,其取值由待处理的图像块的大小确定,即与该图像块的象素数目相同),其中m×n中的每个单元寄存器寄存一个象素数据,第m+1列寄存器为暂存单元寄存器;各单元寄存器的连接关系为:每个单元寄存器的输出端口与上、下、左三个相邻的单元寄存器的输入端口相连通;每个单元寄存器的输入端口与上、下、右三个相邻的单元寄存器的输出端口通过三选一多路选择器相连通(三选一多路选择器的功能是实现在这三个输出端中,同一个时间只有一个输出有效地到达输入端,另外两个输出被屏蔽,三选一多路选择器是电路中的基本单元,所占资源很小);寄存器阵列中第一行和最后一行的单元寄存器构成该二维的搜索块寄存器阵列的上输入端口与下输入端口,均与参考图像数据存储器的输出端相连;该二维的搜索块寄存器阵列的二维的数据输出端口(由除去该一列暂存单元寄存器以外的各单元寄存器的输出端口构成)为后续模块提供参考块数据。
图8中,每个小方块表示了可以寄存一个象素数据的单元寄存器,小方块内的数据(x,y)表示了这个单元寄存器在阵列中位于第x行第y列,其中y值为e的,表示新增加的暂存单元寄存器;假设块大小为m×n,则这个寄存器阵列的大小是(m+1)×n。标识k,k+1…表示在寄存器阵列中,这一行的单元寄存器存储了搜索范围中第k行,第k+1行…对应的数据。其中,第k+n,k-1行由参考图像数据存储器输出,即将进入寄存器阵列;上端口和下端口的输入中,同一时间只有一个有效(逻辑上对应了同一时间搜索块的位置只能向上移动或向下移动,而不能即向上移动又向下移动)。
该二维的搜索块寄存器阵列具有逐行向上移位的功能,从存储器读出的新一行的数据可以由寄存器阵列的下端进入寄存器阵列,同时寄存器阵列原有数据逐行向上移位一个行距,最上面一行数据从寄存器阵列溢出。每加载一行新的数据,从逻辑结构上说,等效于搜索块的位置往下移动了一个象素。
该二维的搜索块寄存器阵列具有逐行向下移位的功能,从存储器读出的新一行的数据可以由寄存器阵列的上端进入寄存器阵列,同时寄存器阵列原有数据逐行向下移位一个行距,最下面一行数据从寄存器阵列溢出。每加载一行新的数据,从逻辑结构上说,等效于搜索块的位置往上移动了一个象素。
该二维的搜索块寄存器阵列具有逐列向左移位的功能,可以不从存储器读出的新一行的数据,同时寄存器阵列所有列逐列向左移动一列,最左面一列数据从寄存器阵列溢出,最右一列的数据(即暂存单元寄存器中的数据)变为无效数据。每进行一次列形式的向左移位,从逻辑结构上说,等效于搜索块的位置往右移动了一个象素。
本发明的二维的搜索块寄存器阵列,和图5所示的传统二维的搜索块寄存器阵列相比,该阵列在结构上作了如下的改进:
1)在传统二维的搜索块寄存器阵列的基础上,最右增加了一列的暂存单元寄存器,在具体实施过程中,也可增加多列的这种单元寄存器,用于一次向水平方向移动多个象素距离;
2)在传统二维的搜索块寄存器阵列的基础上,增加了向下逐行移位的数据通路;
3)在传统二维的搜索块寄存器阵列的基础上,增加了向左逐列移位的数据通路;在硬件资源上,这几个改动增加了一列寄存器资源和三选一多路选择器。
本发明的快速的搜索块读取模块工作步骤如图9所示,该图详细表示了随着时间的变化,二维的搜索块寄存器阵列中数据的交换过程。图中:x坐标表示时间,y坐标表示了寄存器阵列的行标号。每个实线小方块表示了寄存器阵列中的一行,其中的文字表示L(e,f)表示这一行寄存器中所存储的数据,来自搜索范围内,(第e行,第f列)开始到(第e行,第f+m列)为止的一行长度为m+1象素的数据。X表示是无效数据。虚线小方块表示来自参考图像数据存储器输出,即将进入寄存器阵列的一行数据。该工作步骤分s1、s2、…几个阶段,分别为:
s1):初始化,此时二维的搜索块寄存器阵列中,所有数据都是无效数据;
s2):第1列加载阶段,此时开始从存储器中逐行读出参考图像数据,每个时钟周期在寄存器阵列下端加载一行,每加载一行,无效数据减少一行,之前已加载的数据向上移位一行;
s3):第1列搜索阶段,此时寄存器中已全是第1列的有效数据,开始计算匹配程度度量,同时每个时钟周期加载一个新的行,其余行向上移位一行,最上一行溢出寄存器阵列,逻辑结构上来说,搜索块的位置向下移动了一个象素的距离;这样一直到第1列搜索块完成;
s4):第2列搜索,在第1列搜索完成后,寄存器阵列向左逐列移位一个象素,逻辑结构上来说,搜索块的位置向右移动了一个象素的距离,立即切换到第2列的最下方的搜索块,开始第2列的搜索,之后开始从存储器中逐行读出参考图像数据,每个时钟周期在寄存器阵列上端加载一行,每加载一行,之前已加载的数据向下移位一行,最下一行溢出寄存器阵列,逻辑结构上来说,搜索块的位置向上移动了一个象素的距离;这样直到第2列搜索块完成;
s5):第3列搜索,在第2列搜索完成后,寄存器阵列向左逐列移位一个象素,逻辑结构上来说,搜索块的位置向右移动了一个象素的距离,立即切换到第3列的最上方的搜索块,开始第3列的搜索,之后开始从存储器中逐行读出参考图像数据,每个时钟周期在寄存器阵列下端加载一行,每加载一行,之前已加载的数据向上移位一行,最上一行溢出寄存器阵列,逻辑结构上来说,搜索块的位置向下移动了一个象素的距离;这样直到第3列搜索块完成,如此下去,直到完成所有搜索块的搜索;
执行完上述步骤后,就完成了所有搜索块的读取,从这些搜索快中找出匹配程度最好的,选择为最佳参考块,就完成了这个块的运动搜索,进行这个块的后续编码流程,然后开始下个块的运动搜索。
本发明的快速的搜索块读取模块,在完成一个列的搜索块搜索后,直接转到下一列的最下端,开始由下向上搜索,到最上端后,直接转到再下列的最上端,由上向下搜索,完成一个蛇形的搜索路径。在具体实施过程中,这个蛇行可以是行方向的,也可以是列方向的。
本发明的用于视频编码中的快速的搜索块读取模块实施例详细说明如下:
假设在运动搜索中,块大小为16×16,搜索范围为48×48;
用于上述场合的本实施例的快速的搜索块读取模块的具体组成结构如图7所示,包括:一个参考图像数据存储器,用于存储参考帧搜索范围内象素的数据,存储量为48×48=2304象素数据,该存储器每次只能读出一行象素的数据;一个17×16的二维搜索块寄存器阵列,用于每次读出一个块的象素的数据;
本实施例的快速的搜索块读取模块中各部件的连接关系如下:参考图像数据存储器的输出端同时与二维的搜索块寄存器阵列的上输入端口、下输入端口相连;二维的搜索块寄存器阵列的二维的数据输出端口为后续模块提供搜索块数据。
本实施例中的参考图像数据存储器可采用已有的部件。
本实施例的二维的搜索块寄存器阵列组成结构如图8所示,由一个17列16行的单元寄存器构成的阵列和272个三选一多路选择器组成,每个寄存器可以存储一个象素的数据,第17列为暂存单元寄存器;其中,每个单元寄存器的输出端口与上、下、左三个相邻的单元寄存器的输入端口相连通(如没有对应的相邻寄存器单元,则不必相连);每个单元寄存器的输入端口与上、下、右三个相邻的单元寄存器的输出端口通过一个三选一多路选择器相连通(如没有对应的相邻寄存器单元,则不必相连);寄存器阵列中第一行和最后一行的单元寄存器构成该二维的搜索块寄存器阵列的上输入端口与下输入端口;寄存器阵列中除去暂存单元寄存器以外的所有单元寄存器的输出端口构成一个二维的数据输出端口。
本实施例的具体工作流程如下:
1):初始化,此时二维的搜索块寄存器阵列中,所有数据都是无效数据;
2):第1列加载,此时开始从存储器中逐行读出参考图像数据,每个时钟周期在寄存器阵列下端加载一行,每加载一行,无效数据减少一行,之前已加载的数据向上移位一行,一直到加载16行数据;
3):第1列搜索,此时寄存器中已全是第1列的有效数据,开始计算匹配程度度量,同时每个时钟周期加载一个新的行,其余行向上移位一行,最上一行溢出寄存器阵列,逻辑结构上来说,搜索块向下移动了一个象素的距离;这样一直到第1列的33(48-16+1)个搜索块完成;
4):第2列搜索,在第1列搜索完成后,寄存器阵列向左逐列移位一个象素,立即切换到第2列的最下方的搜索块,开始第2列的搜索,之后开始从存储器中逐行读出参考图像数据,每个时钟周期在寄存器阵列上端加载一行,每加载一行,之前已加载的数据向下移位一行,最下一行溢出寄存器阵列,逻辑结构上来说,搜索块向上移动了一个象素的距离;这样直到第2列的33个搜索块完成;
5):第3列搜索,在第2列搜索完成后,寄存器阵列向左逐列移位一个象素,立即切换到第3列的最上方的搜索块,开始第3列的搜索,之后开始从存储器中逐行读出参考图像数据,每个时钟周期在寄存器阵列下端加载一行,每加载一行,之前已加载的数据向上移位一行,最上一行溢出寄存器阵列,逻辑结构上来说,搜索块向下移动了一个象素的距离;这样直到第3列的33个搜索块完成,如此下去,直到完成所有搜索块的搜索。

Claims (2)

1、视频编码器中一种快速的搜索块读取模块,包括:一个或多个参考图像数据存储器,一个或多个二维的搜索块寄存器阵列,其特征在于,所述参考图像数据存储器的输出端同时与二维的搜索块寄存器阵列的最上一行寄存器输入端口、最下一行寄存器输入端口相连。
2、如权利要求1所述的搜索块读取模块,其特征在于,所述二维的搜索块寄存器阵列由(m+1)×n个单元寄存器及三选一多路选择器组成,其中m×n中的每个单元寄存器寄存一个象素数据,第m+1列寄存器为暂存单元寄存器,其中m、n为正整数;各单元寄存器的连接关系为:每个单元寄存器的输出端口与上、下、左三个相邻的单元寄存器的输入端口相连通;每个单元寄存器的输入端口与上、下、右三个相邻的单元寄存器的输出端口通过三选一多路选择器相连通;寄存器阵列中第一行和最后一行的单元寄存器构成该二维的搜索块寄存器阵列的上输入端口与下输入端口,均与参考图像数据存储器的输出端相连;该二维的搜索块寄存器阵列的二维的数据输出端口为后续模块提供搜索块数据。
CN 200610144273 2006-12-01 2006-12-01 视频编码器中一种快速的搜索块读取模块 Expired - Fee Related CN100527837C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200610144273 CN100527837C (zh) 2006-12-01 2006-12-01 视频编码器中一种快速的搜索块读取模块

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200610144273 CN100527837C (zh) 2006-12-01 2006-12-01 视频编码器中一种快速的搜索块读取模块

Publications (2)

Publication Number Publication Date
CN1997156A true CN1997156A (zh) 2007-07-11
CN100527837C CN100527837C (zh) 2009-08-12

Family

ID=38252050

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200610144273 Expired - Fee Related CN100527837C (zh) 2006-12-01 2006-12-01 视频编码器中一种快速的搜索块读取模块

Country Status (1)

Country Link
CN (1) CN100527837C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102263947A (zh) * 2010-05-27 2011-11-30 香港科技大学 图像运动估计的方法及系统
CN113784124A (zh) * 2014-01-01 2021-12-10 上海天荷电子信息有限公司 使用多种形状子块进行精细划分的块匹配编码和解码方法
WO2022206217A1 (zh) * 2021-04-01 2022-10-06 Oppo广东移动通信有限公司 在视频编码装置中进行图像处理的方法、装置、介质及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0154920B1 (ko) * 1994-12-30 1998-11-16 배순훈 동영상 부호화 장치에 있어서 움직임 추정기

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102263947A (zh) * 2010-05-27 2011-11-30 香港科技大学 图像运动估计的方法及系统
US9357228B2 (en) 2010-05-27 2016-05-31 The Hong Kong University Of Science And Technology Motion estimation of images
CN102263947B (zh) * 2010-05-27 2016-07-06 香港科技大学 图像运动估计的方法及系统
CN113784124A (zh) * 2014-01-01 2021-12-10 上海天荷电子信息有限公司 使用多种形状子块进行精细划分的块匹配编码和解码方法
CN113784124B (zh) * 2014-01-01 2024-03-19 上海天荷电子信息有限公司 使用多种形状子块进行精细划分的块匹配编码和解码方法
WO2022206217A1 (zh) * 2021-04-01 2022-10-06 Oppo广东移动通信有限公司 在视频编码装置中进行图像处理的方法、装置、介质及系统

Also Published As

Publication number Publication date
CN100527837C (zh) 2009-08-12

Similar Documents

Publication Publication Date Title
US5512962A (en) Motion vector detecting apparatus for moving picture
CN102714736B (zh) 基于减少的运动矢量预测候选对运动矢量进行编码和解码的方法和设备
CN105812820B (zh) 预测解码方法、预测解码装置
CN100471275C (zh) 用于h.264/avc编码器的运动估计方法
CN102547289B (zh) 基于gpu并行实现的快速运动估计方法
CN102263947A (zh) 图像运动估计的方法及系统
CN101854540B (zh) 用于应用h.264视频编码标准的帧内预测方法及装置
CN1316856A (zh) 运动估计器
CN1189037C (zh) 确定不同图像的像素阵列间最佳配置方法和运动估计搜索引擎
CN102291581B (zh) 支持帧场自适应运动估计的实现方法
CN101883286A (zh) 运动估计中的校准方法及装置、运动估计方法及装置
CN100527837C (zh) 视频编码器中一种快速的搜索块读取模块
Wei et al. A high-performance reconfigurable VLSI architecture for VBSME in H. 264
CN102509071A (zh) 光流计算系统和方法
CN1703094B (zh) 1/4像素插值应用于1/2像素插值结果的图象插值装置和方法
CN102611881A (zh) 参考运动矢量获取方法、模块及编、解码装置
CN1589028A (zh) 基于像素流水的帧内预测装置及预测方法
CN101860747A (zh) 亚像素运动估计系统及方法
CN105263026B (zh) 基于概率统计与图像梯度信息的全局矢量获取方法
KR101091054B1 (ko) 동화상 부호화에 있어서의 움직임 탐색 장치
CN100366092C (zh) 一种视频编码中基于运动矢量预测的搜索方法
CN1201589C (zh) 运动估计方法和装置
CN101268623B (zh) 用于创建可变形状区块的方法和装置
CN101227616A (zh) H.263/avc整象素向量搜索算法
CN100340118C (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090812

Termination date: 20161201