CN103327340A - 一种整数搜索方法及装置 - Google Patents
一种整数搜索方法及装置 Download PDFInfo
- Publication number
- CN103327340A CN103327340A CN2013102475443A CN201310247544A CN103327340A CN 103327340 A CN103327340 A CN 103327340A CN 2013102475443 A CN2013102475443 A CN 2013102475443A CN 201310247544 A CN201310247544 A CN 201310247544A CN 103327340 A CN103327340 A CN 103327340A
- Authority
- CN
- China
- Prior art keywords
- search
- block
- encoded
- point
- search results
- 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
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种整数搜索方法及装置,所述方法应用于视频编码,所述方法包括:读取已编码的参考帧,并在所述参考帧内为待编码块选择搜索起始点,依据所述搜索起始点确定搜索窗;间隔至少一个编码周期后,在所述搜索窗内搜索所述待编码块的匹配块,并保存搜索结果,所述搜索结果包括所述匹配块在所述参考帧内的位置、以及所述待编码块与所述匹配块间的匹配程度;其中,选择所述搜索起始点以及搜索所述匹配块分别占用一个完整的编码周期。通过这种并行交错的处理方式,就能提高确定搜索起始点以及搜索匹配块的准确度,进而提高视频编码效果。另外,充分保证搜索匹配块过程的处理时间,还可有效提高逻辑资源的利用率,降低参与搜索过程的逻辑资源的代价。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种整数搜索方法及装置。
背景技术
视频信号包含巨大的信息量,为了实现视频信号的快捷传输,高效的视频压缩编码技术显得至关重要。帧间预测编码是一种应用较为广泛的视频编码方法,其主要原理是,将活动图像(也就是当前帧图像)分成若干块或宏块,并设法搜索出每个块在邻近帧图像(也就是参考帧图像)中的位置,得出二者在空间位置上的相对偏移量,利用该偏移量进行视频编码。
帧间预测编码大致可分为三个过程:整数搜索、小数搜索、运动补偿,其中整数搜索是整个编码过程的基础,可包括以下两个操作动作:一是计算确定搜索起始点,一是基于搜索起始点在参考帧内搜索待编码块的匹配块。
现有技术中,上述两个操作动作要在一个LCU周期(LCU即最大编码单元,Largest Cod.ing Unit,一帧图像可划分为多个LCU块,LCU周期指的是:一帧图像的处理时间/LCU数目)内完成,也就是说,搜索匹配块必须在起始点计算完成后才能开始,具体可参见图1所示示意图,这就使得两个动作之间存在如下制约关系:
若为了提高确定搜索起始点的准确度,就要多计算几个备选起始点以供选择,相应的就需要增加计算起始点的时间,这势必就会减少搜索匹配块占用的时间,可能在时间结束时并未搜索到真正与待编码块匹配程度最高的块,影响最终的编码效果;反之若减少计算起始点的个数,就可能会降低确定搜索起始点的精准度,而搜索起始点直接决定着搜索区域,若搜索区域不准确即使花费再长的时间搜索匹配块,也可能无法找到真正与待编码块匹配程度最高的块,还是会影响最终的编码效果。
另外,搜索匹配块的模块是硬件编码器中逻辑资源最多的模块,若不能保证其处理时间,也会制约该模块的资源利用率,因此只能多设置一些逻辑资源通过并行方式执行搜索过程,这就导致参与整数搜索的逻辑资源过多。
为了编码需要,整数搜索时要在芯片寄存器内保存两种数据:一是待编码的当前数据,对于LCU块来说该数据量即为64*64;一是已编码的参考数据,考虑到搜索过程可以并行执行,参见图2所示示意图,若待编码块块按照从左向右从上向下的规则在参考帧内搜索匹配块,则保存到芯片寄存器的参考数据量就是(64+N)*64,其中N用于表示搜索步长,为自然数。如果每个像素点为8bit,则参考数据占用的寄存器为(64+N)*64*8bit,这就需要数万个寄存器来实现,致使寄存器使用过多。
发明内容
本发明实施例的整数搜索方法及装置,用以提高整数搜索过程的准确度以及参与整数搜索的逻辑资源的利用率。
为此,本发明实施例提供如下技术方案:
第一方面,本发明实施例提供了一种整数搜索方法,所述方法应用于视频编码,所述方法包括:
读取已编码的参考帧,并在所述参考帧内为待编码块选择搜索起始点,依据所述搜索起始点确定搜索窗;
间隔至少一个编码周期后,在所述搜索窗内搜索所述待编码块的匹配块,并保存搜索结果,所述搜索结果包括所述匹配块在所述参考帧内的位置、以及所述待编码块与所述匹配块间的匹配程度;
其中,选择所述搜索起始点以及搜索所述匹配块分别占用一个完整的编码周期。
在第一方面的第一种可能的实现方式中,如果选择所述搜索起始点与搜索所述匹配块之间间隔一个编码周期,则所述在所述参考帧内为待编码块选择搜索起始点,包括:
利用所述待编码块的上方块预测所述搜索起始点,所述上方块为所述待编码块的邻域块,且已在所述参考帧内为所述上方块搜索到匹配程度最高的匹配块。
结合第一方面以及第一方面的第一种的实现方式,在第二种可能的实现方式中,所述在所述搜索窗内搜索所述待编码块的匹配块,包括:
将所述待编码块拆分为4个小块;
遍历所述参考帧内的每个搜索点,依次为每个小块搜索匹配块,并记录小块在每个搜索点上对应的搜索结果,所述搜索点为按照预设规则从所述参考帧包含的像素点中选取的;
累加每个小块在每个搜索点上对应的搜索结果获得所述待编码块的搜索结果。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述累加每个小块在每个搜索点上对应的搜索结果获得所述待编码块的搜索结果,包括:
缓存前三个已搜索到匹配块的小块在每个搜索点上对应的搜索结果;
搜索到第四个小块在每个搜索点上对应的搜索结果后,利用所述4个小块的搜索结果累加获得所述待编码块的搜索结果。
结合第一方面的第二种或者第三种可能的实现方式,在第四种可能的实现方式中,通过静态随机存储器缓存前三个已搜索到匹配块的小块的搜索结果,并保存累加获得的所述待编码块的搜索结果。
结合第一方面以及第一方面的第一种至第四种任一种可能的实现方式,在第五种可能的实现方式中,所述待编码块为64*64的块或者32*32的块。
第二方面,本发明实施例提供了一种整数搜索装置,所述装置用于视频编码,所述装置包括:
读取单元,用于读取已编码的参考帧;
起始点选择单元,用于在所述参考帧内为待编码块选择搜索起始点,并依据所述搜索起始点确定搜索窗;
搜索单元,用于间隔至少一个编码周期后,在所述搜索窗内搜索所述待编码块的匹配块;
保存单元,用于保存所述搜索单元的搜索结果,所述搜索结果包括所述匹配块在所述参考帧内的位置、以及所述待编码块与所述匹配块间的匹配程度;
其中,所述起始点选择单元选择所述搜索起始点以及所述搜索单元搜索所述匹配块分别占用一个完整的编码周期。
在第二方面的第一种可能的实现方式中,如果选择所述搜索起始点与搜索所述匹配块之间间隔一个编码周期,则
所述起始点选择单元,具体用于利用所述待编码块的上方块预测所述搜索起始点,所述上方块为所述待编码块的邻域块,且已在所述参考帧内为所述上方块搜索到匹配块。
结合第二方面以及第二方面的第一种的实现方式,在第二种可能的实现方式中,所述搜索单元包括:
拆分单元,用于将所述待编码块拆分为4个小块;
搜索子单元,用于遍历所述参考帧内的每个搜索点,依次为每个小块搜索匹配块,并记录小块在每个搜索点上对应的搜索结果,所述搜索点为按照预设规则从所述参考帧包含的像素点中选取的;
结果累加单元,用于累加每个小块在每个搜索点上对应的搜索结果获得所述待编码块的搜索结果。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述结果累加单元包括:
缓存单元,用于缓存前三个已搜索到匹配块的小块在每个搜索点上对应的搜索结果;
累加子单元,用于在搜索到第四个小块在每个搜索点上对应的搜索结果后,利用所述4个小块的搜索结果累加获得所述待编码块的搜索结果。
本发明实施的整数搜索方法及装置,在针对某个待编码块进行整数搜索时,先通过一个完整的编码周期来确定搜索起始点,再利用一个完整的编码周期在由搜索起始点确定的搜索窗内搜索待编码块的匹配块,也即确定搜索起始点与搜索匹配块之间要间隔至少一个编码周期,通过这种并行交错的处理方式,就能提高确定搜索起始点以及搜索匹配块的准确度,最终就能提高利用本发明方案进行视频编码的效果。另外,充分保证搜索匹配块过程的处理时间,还可有效提高逻辑资源的利用率,降低参与搜索过程的逻辑资源的数量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。
图1是现有技术中整数搜索过程的时间分布图;
图2是现有技术中并行搜索匹配块的示意图;
图3是视频信号传输过程示意图;
图4是视频编码器的构架图;
图5是帧间预测编码的示意图;
图6是前向运动估计和后向运动估计的示意图;
图7是本发明整数搜索方法的流程图;
图8是确定搜索起始点的示意图;
图9是本发明整数搜索过程的一种时间分布图;
图10是视频压缩编码标准的发展图;
图11a是编码单元的示意图;
图11b是预测单元的示意图;
图12是本发明中搜索匹配块的流程图;
图13是本发明中并行搜索匹配块的示意图;
图14是本发明中累加获得待编码块搜索结果的示意图;
图15是本发明整数搜索装置的示意图;
图16是本发明中搜索单元的一种实现方式的示意图;
图17是本发明整数搜索装置的硬件构成示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
在介绍本发明技术方案之前,先对本发明的应用场景进行解释说明。
视频信号传输是多媒体信息传输的核心所在,参见图3所示示意图,视频信号的传输过程可大致体现如下:
步骤101,原始视频捕获,也即视频采集,该步骤主要由摄像机等图像获取设备实现;
步骤102,为了节省传输视频的码流,通过视频编码器对捕获的视频信号进行编码压缩,得到压缩码流;
步骤103,通过有线或无线方式传输压缩码流;
步骤104,接收端通过视频解码器对压缩码流进行解码处理,得到解码后的视频信号;
步骤105,通过显示设备播放解码获得的视频信号。
由于视频信号包含巨大的信息量,以CIF(Common Intermediate Format是常用的标准化图像格式,CIF=352*288像素)的视频信号为例,若不经过任何压缩,以每秒30帧的速度进行传输的话,传送的码率(码率指的是数据传输时单位时间传送的数据位数,码率越高则文件越大)达到70Mbps,因此,高效的视频压缩编码技术在视频信号传输过程中起着重要的作用。
另外,视频信号除了要在传输过程压缩编码之外,为了节省存储空间,在存储时也需要进行压缩编码,如上述CIF视频信号,若不经压缩,则一张700M的普通光盘只能存储80秒的视频,由此也可知视频压缩编码的重要性。
视频信号虽然包含巨大的信息量,但是这些信息之间往往是高度相关的,也就是说视频信号中存在着大量的冗余信息,因此,我们可以将视频压缩编码过程理解为是在最大程度的消除冗余。针对不同的冗余,视频压缩编码器可采用不同的策略来消除。例如,采用帧间预测消除时间冗余,采用帧内预测消除空间冗余,采用变换、量化消除视觉冗余,采用熵编码消除编码冗余等等。对应于此,编码器的编码过程可划分为三部分:帧间和帧内预测、变换量化、编码。下面结合图4所示的编码器架构图对编码过程进行简单说明,输入的当前帧Fn以块为单位被编码器处理,具体过程为:
首先,按帧内和帧间预测编码方法进行处理,以决定对于待编码块来说是采用帧内编码还是帧间编码。本发明技术方案主要应用于帧间预测编码,故此处只针对帧间预测进行解释说明。已编码的参考图像经运动补偿(MC,motion compensate)后得到预测值P,为了提高预测精度,进而提高压缩比,可在前向或后向(指显示次序上)已编码解码重建的帧中选择参考图像。
其次,预测值P和待编码块相减后产生一个残差块Dn,经变换T、量化Q后产生一组变换系数X,再经熵编码后,与解码所需的边信息(如预测模式量化参数、运动矢量等)一起组成压缩后的码流,最后经网络适应层NAL(Network Abstraction Layer)供传输或存储使用。
此外,为了提供进一步预测用的参考图像,编码器还应有重建图像的功能,使残差图像经反量化Q-1、反变换T-1后得到并与预测值P相加得到(未经滤波处理的帧),最后经滤波处理后输出重建图像 可用作参考图像使用。
本发明针对的是帧间预测编码方法,下面再结合图5对帧间预测编码过程做下解释说明,将当前帧图像分成若干块或宏块,并设法搜索出每个块在参考帧图像中的位置,获得二者在空间位置的相对偏移量,也就是当前帧的运动矢量,进而利用运动矢量进行视频编码。从工作过程来说,帧间预测编码包括3个步骤:整数搜索、小数搜索、运动补偿。首先,依据参考帧对当前所有需搜索的待编码块进行整数搜索,得到每个待编码块的最佳整数点;其次,在最佳整数点的基础上搜索每个待编码块的最佳小数点;最后,依据最佳小数点对当前帧图像进行运动补偿,运动补偿是一种描述相邻帧(相邻在这里表示在编码关系上相邻,在播放顺序上两帧未必相邻)差别的方法,具体来说是描述前面一帧的每个块是怎样移动到当前帧中的某个位置去的。
上述帧间预测编码过程中获得运动矢量的过程被称为运动估计,可分为前向运动估计和后向运动估计,参见图6,设t时刻的帧图像为当前帧f(x,y),t′(可体现为t-Δt或者t+Δt)时刻的帧图像为参考帧f′(x,y),参考帧在时间上可以超前或者滞后于当前帧,当t′<t时,称之为后向运动估计,当t′>t时,称之为前向运动估计。当在参考帧f′(x,y)中搜索到当前帧f(x,y)中的块的最佳匹配时,可以得到相应的运动场d(x;t,t+Δt),即得到了当前帧的运动矢量。
如上所述,本发明技术方案针对的是帧间预测编码,尤其针对的是帧间预测编码过程中涉及的整数搜索步骤,下面对本发明方案进行解释说明。
参见图7,示出了本发明整数搜索方法的流程图,所述方法包括:
步骤201,读取已编码的参考帧,并在所述参考帧内为待编码块选择搜索起始点,依据所述搜索起始点确定搜索窗。
帧间预测编码过程主要涉及两个对象:一是处于已编码状态的参考帧,其可保存在设备内存中,在需要时从内存读取;一是处于未编码状态的当前帧,也即本发明技术方案的处理对象,当前帧可划分为多个待编码块,以待编码块为单位进行压缩编码处理。
为了搜索出每个待编码块在参考帧内的位置,也即在参考帧内为每个待编码块搜索到对应的最佳匹配块(即匹配程度最高的匹配块),要先在参考帧内确定一个较为准确的搜索起始点,并以该搜索起始点为依据确定一个用于限定搜索动作执行区域的搜索窗。
本发明技术方案中,利用一个完整的编码周期来确定搜索起始点,一般情况下,在进行起始点初搜时可能不只存在一个备选起始点,这就要通过一定的方式从多个备选起始点中选择一个较为准确的点作为搜索起始点。作为本发明选择搜索起始点的实现方式,参见图8所示示意图,对于当前块(即当前的待编码块)201来说,可通过以下块来预测当前块的搜索起始点(具体是通过以下块的最佳匹配块来预测):与当前块具有空间连贯性的上方块202或左方块203(上方块和左方块与当前块均属于当前帧),亦或者是与当前块具有时间连贯性的时域块204(时域块属于当前帧的前一帧,且时域块在前一帧内的位置与当前块在当前帧内的位置大致相同,所谓大致相同可以理解为与当前块的位置相同,或者是当前块的邻域块)。
上述确定搜索起始点的方式只是一种示例,本发明对此可不做限定,只要能为后续搜索匹配块的过程确定一个相对较为准确的搜索起始点即可,本发明着重强调的是要通过一个完整的搜索周期确定搜索起始点,这样就能尽量全面的多确定一些备选起始点,进而从众多备选起始点中确定一个相对准确的搜索起始点,提高本发明确定搜索起始点的精准度。
在确定搜索起始点后,即可根据实际情况利用搜索起始点确定一搜索窗,需要说明的是,搜索窗是一可呈任意形状的封闭区域,搜索起始点要位于搜索窗内,但不一定位于搜索窗的中心位置,本发明对确定搜索窗的方式不做过多介绍。
步骤202,间隔至少一个编码周期后,在所述搜索窗内搜索所述待编码块的匹配块,并保存搜索结果,所述搜索结果包括所述匹配块在所述参考帧内的位置、以及所述待编码块与所述匹配块间的匹配程度;其中,选择所述搜索起始点以及搜索所述匹配块分别占用一个完整的编码周期。
对于某个待编码块来说,本发明要将确定搜索起始点和搜索匹配块两个动作分别放在两个独立的编码周期内进行,因此针对同一待编码块的这两个动作之间总是相差着至少一个编码周期。如果整数搜索的整体硬件延迟要求高,则两个动作之间可以仅间隔一个编码周期,否则两个动作之间可以视情况多间隔几个编码周期,对此本发明可不做限定。
参见图9,示出了两个动作间隔一个编码周期的示意图,由图可知,确定搜索起始点和搜索匹配块二者之间是并行交错执行的,且一定要先执行确定搜索起始点的动作。下面以4个待编码块(图中用LCU表示,Largest Coding Unit,最大编码单元)为例解释说明本发明的整数搜索过程。
对于块LCU_0来说,先在第一编码周期内确定搜索起始点,然后在第二编码周期内为其搜索匹配块,也就是说,用于搜索匹配块的逻辑资源要等待用于确定搜索起始点的逻辑资源一个编码周期。
对于块LCU_1来说,因为逻辑资源要先确定LCU_0的搜索起始点后才能处理LCU_1,故只能在第二个编码周期内为LCU_1确定搜索起始点,相应地要在第三个编码周期内搜索LCU_1的匹配块。也就是说,从第二个编码周期开始确定搜索起始点和搜索匹配块这两个动作开始并行交错执行,所谓并行是指两个动作在同一编码周期内执行,确定当前块的搜索起始点,搜索前一块的匹配块。所谓交错是指针对同一待编码块的两个动作要在前后两个编码周期内进行。
块LCU_2整数搜索的过程与LCU_1基本相同,此处不再赘述。需要说明的是,对于最后一个待编码块来说,即本示例中的LCU_3,为其确定搜索起始点的过程是与为LCU_2搜索匹配块的过程并行执行的,但是在为LCU_3搜索匹配块时,则不再并行执行(但针对LCU_3的两个动作仍是交错执行),而是单独执行搜索匹配块的动作。也就是说,从整体上看,搜索匹配块的过程相对确定搜索起始点的过程要滞后一个编码周期。
在利用本发明技术方案进行整数搜索时,确定搜索起始点时还需要注意一点,参见图8,若将当前帧划分为多个块,并按照从左向右从上向下的规则依次为每个块搜索匹配块,则为当前块201确定搜索起始点的动作会与为左方块203搜索匹配块的动作在同一编码周期内执行,也就是说,此时还未搜索到左方块203的匹配程度最高的匹配块,故无法利用左方块203来预测当前块在参考帧内的搜索起始点,在这种情况下,只能用已搜索到匹配程度最高的匹配块的上方块202来预测当前块的搜索起始点。
若按照从上向下从左向右的规则依次为每个块搜索匹配块,则为当前块201确定搜索起始点的动作会与为上方块202搜索匹配块的动作在同一编码周期内执行,故此时只能用已搜索到匹配程度最高的匹配块的左方块203来预测当前块的搜索起始点。
对此,主要是想说明,按照不同规则依次为每个待编码块搜索匹配块,会影响本发明方案确定的搜索起始点,而不论采用什么规则,当前块只能用已搜索到最佳匹配块的块来预测搜索起始点,不能用未搜索到匹配块的块预测(主要取决于两个动作之间间隔的编码周期数)。如上述示例如果两个动作间隔一个编码周期,则不能用当前块的前一块(具体指编码顺序上)来预测搜索起始点。
下面对步骤102中在搜索窗内搜索匹配块的过程进行解释说明。
首先,参见图10所示的视频压缩编码标准的发展图,当前提出了一种新的视频压缩编码标准HEVC,其相对主流的H.264标准来说,码率只有H.264的50%左右,也就是说压缩编码后的码流要比H.264小很多。
HEVC的编码结构主要包括:编码单元CU(Coding Unit)、预测单元PU(Predict Unit)、变换单元TU(Transform Unit)。参见图11a,CU可具体体现为64*64、32*32、16*16、8*8四种规格,参见图11b,每个CU又可划分为2N*2N、2N*N、N*2N、N*N几种形式的PU,即PU可具体体现为64*64、64*32、32*64、32*32、32*16、16*32、16*16、8*16、16*8、8*8、8*4、4*8、4*4,TU主要应用于查找到匹配块之后的频域变换过程,不会涉及整数搜索过程,故此处不对其做过多介绍。
步骤102搜索匹配块的实现方式,可如现有技术以最大编码单元LCU为单位进行搜索,如果按照从左向右从上向下的规则进行并行搜索的话,则采用这种方式需要寄存器保存的参考数据的数据量为(64+N)*64,需要的芯片寄存器较多。
为了解决寄存器耗费问题,本发明还提供如下搜索匹配块的实现方式,参见图12,包括:
步骤301,将所述待编码块拆分为4个小块。
步骤302,遍历所述参考帧内的每个搜索点,依次为每个小块搜索匹配块,并记录小块在每个搜索点上对应的搜索结果,所述搜索点为按照预设规则从所述参考帧包含的像素点中选取的。
步骤303,累加每个小块在每个搜索点上对应的搜索结果获得所述待编码块的搜索结果。
考虑到小块搜索能大大降低当前块和参考块占用的寄存器资源,能更好保证视频编码协议族的融合实现,且累加小块搜索结果的方式并不会影响待编码块的最终搜索结果,本发明将待编码块拆分为小块,然后对每个小块进行整数搜索,并通过累加小块搜索结果的方式获得待编码块的搜索结果,这样就能降低寄存器缓存的数据量,避免使用过多寄存器。
进行小块搜索时,可以同时并行搜索4个小块的匹配块,这种情况下就无需缓存小块的搜索结果,但是对搜索逻辑资源要求会相对较高;也可以依次串行搜索4个小块的匹配块,并通过静态存储器SRAM(static random accessmemory)缓存小块的搜索结果数据,降低对搜索逻辑资源的要求,本发明着重介绍针对串行搜索小块匹配块的方案。
对于串行搜索小块匹配块的方案来说,可以为每个小块的搜索结果设置一个SRAM,即需要4个SRAM,待搜索并缓存好4个小块的匹配块之后,再累加获得待编码块的搜索结果。为了使本发明方案最优,还可设置3个SRAM,由这3个SRAM缓存前三个小块(具体指编码顺序上)的搜索结果(要补充说明的是,累加过程中出现的一些中间结果也要用这3个SRAM来缓存,具体可参见下文针对图14的解释说明),并在搜索获得最后一个小块(即第四个小块)的搜索结果后,累加获得待编码块的搜索结果,也就是说,无需缓存最后一个小块的搜索结果,可直接用其进行累加处理,这样不仅可降低对存储器的要求,还可提高处理速度。
下面结合图13、14,以64*64的待编码块为例,对本发明搜索匹配块的过程进行介绍说明。
1.将待编码块64*64拆分为4个32*32的小块,分别定义为blk_0、blk_1、blk_2、blk_3;
2.在参考帧内,按照从左向右从上向下的规则依次为每个小块搜索匹配块,记录小块在每个搜索点上对应的搜索结果,具体编码顺序体现为blk_0、blk_1、blk_2、blk_3。
以搜索blk_0的匹配块为例,过程为:
(1)在参考帧内确定搜索起始点以及搜索窗,图13中示出的W*H即为搜索窗。
(2)按照预设规则确定搜索点,具体是从搜索窗包含的像素点中确定搜索点。例如,预设规则可以是逐个搜索搜索窗内的像素点,也就是说搜索窗内的每个像素点都是搜索点,在为小块搜索匹配块时要遍历每个像素点;或者预设规则还可是间隔5个像素点选取一个搜索点,也就是说,若当前在第0个像素点(也即第0个搜索点)上为小块搜索匹配块,则下一搜索动作要放到第6个像素点(也即第1个搜索点)上,以此类确定出搜索窗包含的所有搜索点。上述确定搜索点的预设规则可由实际使用情况决定,本发明对此不做限定。
(3)按照一定规则移动(例如从左向右从上向下),遍历搜索窗内的每个搜索点,确定blk_0对应在每个搜索点上的匹配程度。
针对上述搜索blk_0匹配块的过程,需要说明以下两点:
一是,为了搜索blk_0的匹配块,需要寄存器保存的数据有:当前块blk_0,对应的数据量为32*32;参考数据(包含于搜索窗内),对应的数据量为(32+N)*32,其中,N用于表示搜索步长,也就是说针对blk_0可同时执行(N+1)个搜索过程,这样在执行一次从左向右的搜索过程后可下移(N+1)行。例如,
若N=0,则保存的参考数据量为32*32,在0~31行按照从左向右的规则搜索,直至搜索窗的最右端边缘,然后下移1行,搜索1~32行的搜索点,如此直至遍历搜索窗内的每个搜索点;
若N=2,则保存的参考数据量为34*32,同时在0~31、1~32、2~33行按照从左向右的规则搜索,直至搜索窗的最右端边缘,然后下移3行,并行搜索3~34、4~35、5~36行的搜索点,如此直至遍历搜索窗内的每个搜索点。
另外,还要说明的是,如果按照从上向下从左向右的规则搜索匹配块,则针对blk_0保存到寄存器的参考数据的数据量为32*(32+N),若N=2,则表示保存的参考数据量为32*34,同时在0~31、1~32、2~33列按照从上向下的规则搜索,直至搜索窗的最下端边缘,然后右移3列,并行搜索3~34、4~35、5~36列的搜索点,如此直至遍历搜索窗内的每个搜索点。
二是,整数搜索过程可视为是视频编码的前期准备阶段,该阶段要搜索一些匹配块,以供后续编码时选用,也就是说整数搜索阶段无需确定出哪个匹配块与blk_0的匹配程度最高,而是要尝试搜索各种规格的块的匹配块,将这些匹配块作为备选块,在后续编码阶段使用。也即,每次搜索过程不仅仅会搜索32*32大小的块,同时还会搜索16*16、32*16、16*32、8*8、16*8、8*16、4*4、8*4、4*8这9种规格大小的块,然后记录每种规格的块对应的匹配块的位置及其与匹配块的匹配程度,作为该子块的搜索结果。例如,对于64*64的待编码块来说,其搜索结果包含64*64、64*32、32*64、32*32、32*16、16*32、16*16、16*8、8*16、8*8、8*4、4*8、4*4共计13种规格的块对应的匹配块位置以及匹配程度,则在后续阶段确定最佳匹配块时,根据匹配程度可能会选择16*32、16*8、8*4、4*8、4*4几种规格的块对应的匹配块作为最佳匹配块以备编码时使用。
3.为了累加获得待编码块的搜索结果,需将blk_0、blk_1、blk_2的搜索结果缓存至SRAM中,并在搜索到blk_3的匹配块后进行累计计算。对于64*32的块来说,可以通过(blk_0+blk_2)、(blk_1+blk_3)获得;对于32*64的块来说,可以通过(blk_0+blk_1)、(blk_2+blk_3)获得;对于64*64的块来说,可以通过(blk_0+blk_1+blk_2+blk_3)获得,至此就能获得上述13种规格的块的搜索结果。
需要说明的是,上述根据4个小块累加获得待编码块搜索结果的过程中,可以等待搜索完4个小块的匹配块之后再进行,也可以在能够累加时就直接进行,例如,在搜索完blk_0和blk_1的匹配块之后,即可直接累加(blk_0+blk_1)获得一个32*64的块的搜索结果,或者在搜索到blk2之后,还可直接累加(blk_0+blk_2)获得一个64*32的块的搜索结果,这样,在搜索到blk_3之后,只累加(blk_1+blk_3)、(blk_2+blk_3)、(blk_0+blk_1+blk_2+blk_3)即可,能在一定程度上提高本发明整数搜索的处理速度。
作为本发明累加过程的一种具体实现方式,可通过累加匹配程度的方式获得32*64、64*32、64*64的搜索结果,参见图14,累加过程可描述为:
(1)当Blk_0的匹配程度(作为匹配程度的一种具体体现形式,可体现为绝对差值和SAD,the Sum of Absolute Difference)输入时,需要完全保存该部分的SAD值至SRAM2;
(2)当Blk_1的SAD输入时,需要完全保存该部分的SAD值至SRAM1,同时需要从SRAM2中读出Blk_0部分的SAD值,计算(Blk_0+Blk_1)所对应的SAD值,直接输出给后续模块进行比较(用于选择最佳匹配块);同时还需要记录(Blk_0+Blk_1)的SAD值至SRAM3供后续累加使用(可视为后续累加用的一个中间结果);
(3)当Blk_2的SAD输入时,从SRAM2中读出Blk_0部分的SAD值,同时保存Blk_2部分的SAD值至SRAM2,计算(Blk_0+Blk_2)所对应的SAD值,并从SRAM3中读出(Blk_0+Blk_1)的SAD值,计算(Blk_0+Blk_1+Blk_2)的值(可视为后续累加用的一个中间结果),然后写入到SRAM3;
(4)当Blk_3的SAD输入时,要从SRAM1中读出Blk_1的值、从SRAM2中读出Blk_2的值、从SRAM3中读出(Blk_0+Blk_1+Blk_2)的值,计算(Blk_2+Blk_3)的SAD值、(Blk_1+Blk_3)的SAD值、(Blk_0+Blk_1+Blk_2+Blk_3)的SAD值。至此就获得了32*64、64*32、64*64的搜索结果。
如上所述,在整数搜索阶段小块要遍历搜索窗内的每个搜索点,在每个搜索点上都执行一次匹配操作,确定对应的匹配程度,也就是说,小块在每个搜索点上都对应有一个匹配块,只不过匹配程度不相同,相应地,在利用匹配程度累加获得待编码块搜索结果时,获得的也是待编码块在每个搜索点上对应的匹配程度,下面以64*64为例,详细解释下本发明匹配程度累加的具体实现过程。
如果确定搜索点的预设规则是逐一遍历像素点的话,则对于W*H的搜索窗来说,就存在W*H个像素点(也即搜索点),每个小块都要在这W*H个搜索点上进行匹配,确定小块与每个搜索点之间的匹配程度,如,Blk_0在搜索窗内针对每个搜索点的匹配程度分别为A0、A1、...、AW*H-1,Blk_1在搜索窗内针对每个搜索点的匹配程度分别为B0、B1、...、BW*H-1,Blk_2在搜索窗内针对每个搜索点的匹配程度分别为C0、C1、...、CW*H-1,Blk_3在搜索窗内针对每个搜索点的匹配程度分别为D0、D1、...、DW*H-1,则由累加获得64*64搜索结果的公式(Blk_0+Blk_1+Blk_2+Blk_3)可知,64*64的块针对每个搜索点的匹配程度分别为(A0+B0+C0+D0)、(A1+B1+C1+D1)、...、(AW*H-1+BW*H-1+CW*H-1+DW*H-1)共计W*H个数据。
另外,对于32*64和64*32两种规格的块来说,针对每个搜索点也分别会有W*H个匹配程度数据,也就是说,利用本发明方法最终保存的数据量(具体指匹配程度数据)为W*H*3。
因为小块搜索过程中即会获得32*32、16*16、32*16、16*32、8*8、16*8、8*16、4*4、8*4、4*8这10种规格的块的搜索结果,故可实时输出给后续模块选择最佳匹配块,而32*64、64*32、64*64这3种规格的块的搜索结果只能通过累加获得,故需要先保存在SRAM再输出给后续模块,因此,采用本发明方案最终需要SRAM保存的搜索结果数据量就是上述的W*H*3。
搜索结果包括匹配块的位置和匹配程度,作为本发明方案保存搜索结果的一种方式,可利用SRAM的地址表示匹配块的位置,也就是说真正需要SRAM保存的数据只有匹配程度,具体可通过5-32bit的位宽来表示匹配程度,例如通过16bit位宽表示。当然,也可将匹配块位置和匹配结果均作为数据保存在SRAM中,本发明对此不做限定。
作为本发明方案的一种优选方式,可选用双端口SRAM,支持同时进行读写操作,在某地址写入新数据之前,读出该地址的数据,更适用于本发明中的累加处理过程。
在上述图13、14所示示例中,待编码块为64*64,拆分后的小块为32*32,对于32*32的待编码块来说亦可利用本发明方案拆分为4个16*16的小块,并通过累加获得16*32、32*16、16*16三种规格的块的搜索结果,实现过程与图13、14所示示例相同,此处不再赘述。
需要说明的是,对于64*64的待编码块来说,在拆分成4个32*32的小块后,还可视情况继续将每个32*32小块拆分为4个16*16的子块处理,相应地,累加获得的就是16*32、32*16、32*32、32*64、64*32、64*64六种规格的块的搜索结果。
另外,对于16*16和8*8的待编码块来说,因其占用的寄存器相对较少,故可以采用本发明方案进行拆分处理,也可以不拆分直接搜索整个待编码块的匹配块,本发明对此不做限定。
下面再通过一些具体数值进一步体现下本发明方案的有益效果,如果每个像素点为8bit,且用于表示搜索步长的N=8,则针对64*64的待编码块来说,按照现有技术需要保存到寄存器的参考数据为(64+N)*64*8bit=72*64*8bit,采用本发明方案保存的参考数据为(32+N)*32*8bit=40*32*8bit,相比降低了52*64*8bit个寄存器。针对32*32的待编码块来说,采用现有技术需要保存到寄存器的参考数据为(32+N)*32*8bit=40*32*8bit,本发明方案保存的参考数据为(16+N)*16*8bit=24*16*8bit,相比降低了28*32*8bit个寄存器。
结合上文的介绍可知,本发明技术方案中共涉及两类规则,现进行如下解释说明:
一类是处理顺序,可应用到两种具体情况中:(1)将当前帧划分为若干待编码块后,按照什么样的顺序依次对每个待编码块进行编码处理;(2)将待编码块拆分为4个小块后,按照什么样的顺序依次搜索每个小块的匹配块。因为这两种情况的具体处理顺序都不会影响到后续的编解码过程,故对具体处理顺序无特殊要求,本发明对此也不做进一步限定,只要能针对当前帧划分的所有待编码块或者待编码划分的所有小块进行整数搜索即可。
一类是搜索顺序,可应用到两种具体情况中:(1)在搜索窗内搜索待编码块的匹配块;(2)在搜索窗内搜索小块的匹配块。因为这两种情况中的搜索都是为了遍历搜索窗内的每个搜索点,不会影响到后续的编解码过程,故对具体搜索顺序无特殊要求,本发明对此也不做进一步限定,任何能遍历搜索窗内搜索点的方式均可。
对应于上述方法实施例,本发明还提供一种整数搜索装置,参见图15,所述装置包括:
读取单元401,用于从内存中读取已编码的参考帧;
起始点选择单元402,用于在所述参考帧内为待编码块选择搜索起始点,并依据所述搜索起始点确定搜索窗;
搜索单元403,用于间隔至少一个编码周期后,在所述搜索窗内搜索所述待编码块的匹配块;
保存单元404,用于保存所述搜索单元的搜索结果,所述搜索结果包括所述匹配块在所述参考帧内的位置、以及所述待编码块与所述匹配块间的匹配程度;
其中,所述起始点选择单元选择所述搜索起始点以及所述搜索单元搜索所述匹配块分别占用一个完整的编码周期。
如上述在方法实施例中的介绍,可采用不同方式从至少一个备选起始点中选择一个较为准确的搜索起始点,例如,可以依靠待编码块的时域块或者邻域块来预测待编码块的搜索起始点。需要说明的是,因为本发明中确定搜索起始点与搜索匹配块两个动作之间是并行交错执行的,故在根据邻域块预测搜索起始点时应注意:如果两个动作之间间隔一个编码周期,且按照从上向下从左向右的规则依次为每个待编码块搜索匹配块,则可利用待编码块的上方块来预测搜索起始点,而不能用待编码块的左方块,这是因为在为待编码块确定搜索起始点时,已为上方块搜索到最佳匹配块,故可用上方块来预测待编码块的搜索起始点。
作为搜索单元搜索匹配块的一种实现方式,其可如现有技术直接以待编码块为基本处理单位,直接搜索待编码块的匹配块,但是这种方式要耗费大量寄存器来保存参考数据。为了缓解寄存器耗费问题,本发明还提供了如下一种搜索单元的实现方式,参见图16,所述搜索单元包括:
拆分单元501,用于将所述待编码块拆分为4个小块;
搜索子单元502,用于遍历所述参考帧内的每个搜索点,依次为每个小块搜索匹配块,并记录小块在每个搜索点上对应的搜索结果,所述搜索点为按照预设规则从所述参考帧包含的像素点中选取的;
结果累加单元503,用于累累加每个小块在每个搜索点上对应的搜索结果获得所述待编码块的搜索结果。
本发明这种拆分待编码块的处理方案主要针对64*64和32*32两种规格的待编码块,对于16*16和8*8的待编码块来说,因其需要寄存器保存的参考数据量相对较小,故可直接搜索整个待编码块的匹配块,本发明对这两种规格的待编码块的搜索过程不做限定。
下面以64*64的待编码块为例进行简单说明,按照上述方案,先由拆分单元将待编码块拆分为4个32*32的小块,再通过搜索子单元获得每个小块的搜索结果(具体体现为32*32、32*16、16*32、16*16、16*8、8*16、8*8、8*4、4*8、4*4共计10种规格的块的搜索结果),最后通过结果累加单元获得待编码块64*64的搜索结果(具体指累加获得64*64、64*32、32*64共计3种规格的块的搜索结果,并与上述10种规格的块的搜索结果一起作为待编码块的搜索结果。作为本发明累加获得待编码块搜索结果的一种方式,可通过累加子块在每个搜索点上对应的匹配程度实现)。这样,需要寄存器保存的参考数据量为(32+N)*32,相对现有技术方案要保存(64+N)*64的数据量,在很大程度上缓解了寄存器耗费问题。另外,在拆分获得4个32*32的小块之后,还可根据实际应用需要,继续将每个小块拆分为4个16*16的子块,这样,通过搜索子单元获得的就是16*16、16*8、8*16、8*8、8*4、4*8、4*4共计7种规格的块的搜索结果,通过结果累加单元获得的就是64*64、64*32、32*64、32*32、32*16、16*32共计6种规格的块的搜索结果,同样可获得待编码块的搜索结果,且这种方式要保存的参考数据量更小,为(16+N)*16。
需要说明的是,因为本发明方案要经过累加才能获得待编码块的全部搜索结果,也就是说,有部分搜索结果可在子块搜索过程中获得,并输出给后续模块选择最佳匹配块,有部分大块的搜索结果不能直接在搜索过程中获得,因此需要通过SRAM先保存这部分大块的搜索结果然后再输出给后续模块。以64*64的待编码块拆分为4个32*32的小块为例,需要寄存器保存的当前块数据量为32*32、参考数据量为(32+N)*32,同时还需要SRAM保存累加获得的64*64、64*32、32*64这三种大块的搜索结果,该数据量最大为W*H*3(其中W*H表示搜索窗的大小,最多可包含W*H个像素点,则确定的搜索点最多是W*H,故每个规格的大块针对每个搜索点对应的搜索结果最多就是W*H)。因此,在确定是否通过拆分方式搜索匹配块时,还应考虑寄存器资源和SRAM资源的最优化,以使整数搜索过程的综合性能更高。
另外,搜索结果包括匹配块的位置和匹配程度,作为本发明方案保存搜索结果的一种方式,可利用SRAM的地址表示匹配块的位置,也就是说真正需要SRAM保存的数据只有匹配程度,具体可通过5-32bit的位宽来表示匹配程度,例如通过16bit位宽表示。当然,也可将匹配块位置和匹配结果均作为数据保存在SRAM中,本发明对此不做限定。
作为本发明方案的一种优选方式,可选用双端口SRAM,支持同时进行读写操作,在某地址写入新数据之前,读出该地址的数据,更适用于本发明中的累加处理过程。
对于结果累加单元来说,可有两种实现方式:
一种是如果搜索子单元能并行搜索4个小块的匹配块,则结果累加单元就可在获得4个小块的搜索结果后直接进行累加处理,无需具有数据缓存功能的缓存单元,但这种方式对搜索子单元的逻辑资源要求较高。
一种是如果搜索子单元是依次串行的搜索4个小块的匹配块,则结果累加单元就需要具有数据缓存功能的缓存单元。作为这种实现方式的一种优选方案,所述结果累加单元包括:
缓存单元,用于缓存前三个已搜索到匹配块的小块在每个搜索点上对应的搜索结果;
累加子单元,用于在搜索到第四个小块在每个搜索点上对应的搜索结果后,利用所述4个小块的搜索结果累加获得所述待编码块的搜索结果。
进一步地,本发明实施例还分别提供了整数搜索装置的硬件构成。可包括至少一个处理器(例如CPU),至少一个网络接口或者其它通信接口,存储器,和至少一个通信总线,用于实现这些装置之间的连接通信。处理器用于执行存储器中存储的可执行模块,例如计算机程序。存储器可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口(可以是有线或者无线)实现该系统网关与至少一个其它网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
参见图17,在一些实施方式中,存储器中存储了程序指令,程序指令可以被处理器执行,其中,程序指令包括读取单元401、起始点选择单元402、搜索单元403、保存单元404,各单元的具体实现可参见图15所揭示的相应单元。
本发明方案可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序单元。一般地,程序单元包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明方案,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序单元可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及设备;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种整数搜索方法,其特征在于,所述方法应用于视频编码,所述方法包括:
读取已编码的参考帧,并在所述参考帧内为待编码块选择搜索起始点,依据所述搜索起始点确定搜索窗;
间隔至少一个编码周期后,在所述搜索窗内搜索所述待编码块的匹配块,并保存搜索结果,所述搜索结果包括所述匹配块在所述参考帧内的位置、以及所述待编码块与所述匹配块间的匹配程度;
其中,选择所述搜索起始点以及搜索所述匹配块分别占用一个完整的编码周期。
2.根据权利要求1所述的方法,其特征在于,如果选择所述搜索起始点与搜索所述匹配块之间间隔一个编码周期,则所述在所述参考帧内为待编码块选择搜索起始点,包括:
利用所述待编码块的上方块预测所述搜索起始点,所述上方块为所述待编码块的邻域块,且已在所述参考帧内为所述上方块搜索到匹配程度最高的匹配块。
3.根据权利要求1或2所述的方法,其特征在于,所述在所述搜索窗内搜索所述待编码块的匹配块,包括:
将所述待编码块拆分为4个小块;
遍历所述参考帧内的每个搜索点,依次为每个小块搜索匹配块,并记录小块在每个搜索点上对应的搜索结果,所述搜索点为按照预设规则从所述参考帧包含的像素点中选取的;
累加每个小块在每个搜索点上对应的搜索结果获得所述待编码块的搜索结果。
4.根据权利要求3所述的方法,其特征在于,所述累加每个小块在每个搜索点上对应的搜索结果获得所述待编码块的搜索结果,包括:
缓存前三个已搜索到匹配块的小块在每个搜索点上对应的搜索结果;
搜索到第四个小块在每个搜索点上对应的搜索结果后,利用所述4个小块的搜索结果累加获得所述待编码块的搜索结果。
5.根据权利要求3或4所述的方法,其特征在于,通过静态随机存储器缓存前三个已搜索到匹配块的小块的搜索结果,并保存累加获得的所述待编码块的搜索结果。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述待编码块为64*64的块或者32*32的块。
7.一种整数搜索装置,其特征在于,所述装置用于视频编码,所述装置包括:
读取单元,用于读取已编码的参考帧;
起始点选择单元,用于在所述参考帧内为待编码块选择搜索起始点,并依据所述搜索起始点确定搜索窗;
搜索单元,用于间隔至少一个编码周期后,在所述搜索窗内搜索所述待编码块的匹配块;
保存单元,用于保存所述搜索单元的搜索结果,所述搜索结果包括所述匹配块在所述参考帧内的位置、以及所述待编码块与所述匹配块间的匹配程度;
其中,所述起始点选择单元选择所述搜索起始点以及所述搜索单元搜索所述匹配块分别占用一个完整的编码周期。
8.根据权利要求7所述的装置,其特征在于,如果选择所述搜索起始点与搜索所述匹配块之间间隔一个编码周期,则
所述起始点选择单元,具体用于利用所述待编码块的上方块预测所述搜索起始点,所述上方块为所述待编码块的邻域块,且已在所述参考帧内为所述上方块搜索到匹配块。
9.根据权利要求7或8所述的装置,其特征在于,所述搜索单元包括:
拆分单元,用于将所述待编码块拆分为4个小块;
搜索子单元,用于遍历所述参考帧内的每个搜索点,依次为每个小块搜索匹配块,并记录小块在每个搜索点上对应的搜索结果,所述搜索点为按照预设规则从所述参考帧包含的像素点中选取的;
结果累加单元,用于累加每个小块在每个搜索点上对应的搜索结果获得所述待编码块的搜索结果。
10.根据权利要求9所述的装置,其特征在于,所述结果累加单元包括:
缓存单元,用于缓存前三个已搜索到匹配块的小块在每个搜索点上对应的搜索结果;
累加子单元,用于在搜索到第四个小块在每个搜索点上对应的搜索结果后,利用所述4个小块的搜索结果累加获得所述待编码块的搜索结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310247544.3A CN103327340B (zh) | 2013-06-20 | 2013-06-20 | 一种整数搜索方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310247544.3A CN103327340B (zh) | 2013-06-20 | 2013-06-20 | 一种整数搜索方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103327340A true CN103327340A (zh) | 2013-09-25 |
CN103327340B CN103327340B (zh) | 2016-06-15 |
Family
ID=49195836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310247544.3A Active CN103327340B (zh) | 2013-06-20 | 2013-06-20 | 一种整数搜索方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103327340B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110557642A (zh) * | 2018-06-04 | 2019-12-10 | 华为技术有限公司 | 一种视频帧编码运动搜索方法及图像编码器 |
CN110691252A (zh) * | 2013-10-12 | 2020-01-14 | 洪学文 | 结合块匹配和串匹配的图像压缩装置 |
CN113784124A (zh) * | 2014-01-01 | 2021-12-10 | 上海天荷电子信息有限公司 | 使用多种形状子块进行精细划分的块匹配编码和解码方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006067213A (ja) * | 2004-08-26 | 2006-03-09 | Casio Comput Co Ltd | 動きベクトル検出装置、および、プログラム |
CN101031088A (zh) * | 2006-02-28 | 2007-09-05 | 展讯通信(上海)有限公司 | 一种用于视频编码器实现的快速十字运动估计方法 |
CN101305615A (zh) * | 2005-09-22 | 2008-11-12 | 高通股份有限公司 | 用于视频编码的多维毗邻块预测 |
CN102647594A (zh) * | 2012-04-18 | 2012-08-22 | 北京大学 | 一种整像素精度运动估计方法及其系统 |
CN103067711A (zh) * | 2012-12-31 | 2013-04-24 | 北京联微泰芯集成电路软件开发服务有限责任公司 | 一种基于h264协议的整像素运动估计方法 |
CN103384324A (zh) * | 2013-01-19 | 2013-11-06 | 张新安 | 一种avs-m视频编码快速亚像素运动估计方法 |
-
2013
- 2013-06-20 CN CN201310247544.3A patent/CN103327340B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006067213A (ja) * | 2004-08-26 | 2006-03-09 | Casio Comput Co Ltd | 動きベクトル検出装置、および、プログラム |
CN101305615A (zh) * | 2005-09-22 | 2008-11-12 | 高通股份有限公司 | 用于视频编码的多维毗邻块预测 |
CN101031088A (zh) * | 2006-02-28 | 2007-09-05 | 展讯通信(上海)有限公司 | 一种用于视频编码器实现的快速十字运动估计方法 |
CN102647594A (zh) * | 2012-04-18 | 2012-08-22 | 北京大学 | 一种整像素精度运动估计方法及其系统 |
CN103067711A (zh) * | 2012-12-31 | 2013-04-24 | 北京联微泰芯集成电路软件开发服务有限责任公司 | 一种基于h264协议的整像素运动估计方法 |
CN103384324A (zh) * | 2013-01-19 | 2013-11-06 | 张新安 | 一种avs-m视频编码快速亚像素运动估计方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110691252A (zh) * | 2013-10-12 | 2020-01-14 | 洪学文 | 结合块匹配和串匹配的图像压缩装置 |
CN113784124A (zh) * | 2014-01-01 | 2021-12-10 | 上海天荷电子信息有限公司 | 使用多种形状子块进行精细划分的块匹配编码和解码方法 |
CN113784124B (zh) * | 2014-01-01 | 2024-03-19 | 上海天荷电子信息有限公司 | 使用多种形状子块进行精细划分的块匹配编码和解码方法 |
CN110557642A (zh) * | 2018-06-04 | 2019-12-10 | 华为技术有限公司 | 一种视频帧编码运动搜索方法及图像编码器 |
CN110557642B (zh) * | 2018-06-04 | 2023-05-12 | 华为技术有限公司 | 一种视频帧编码运动搜索方法及图像编码器 |
Also Published As
Publication number | Publication date |
---|---|
CN103327340B (zh) | 2016-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102165780B (zh) | 视频编码器与其方法以及视频解码器与其方法 | |
US9247248B2 (en) | Mode searching and early termination of a video picture and fast compression of variable length symbols | |
CN107241605B (zh) | 视频编码器以及视频编码方法 | |
CN102835111B (zh) | 使用先前块的运动矢量作为当前块的运动矢量来对图像进行编码/解码的方法和设备 | |
US10291925B2 (en) | Techniques for hardware video encoding | |
KR101941955B1 (ko) | 재귀적 블록 파티셔닝 | |
KR100939917B1 (ko) | 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한부호화 방법 | |
CN107277505B (zh) | 基于软硬件分区的avs-2视频解码器装置 | |
GB2519514A (en) | Method and apparatus for displacement vector component prediction in video coding and decoding | |
CN105847795A (zh) | 管线化架构的视讯编码系统的帧内块复制方法与装置 | |
US20180199058A1 (en) | Video encoding and decoding method and device | |
US20120155540A1 (en) | Pixel retrieval for frame reconstruction | |
CN105245896A (zh) | Hevc并行运动补偿方法及装置 | |
CN113709458B (zh) | 视频编解码中的位移矢量预测方法、装置及设备 | |
CN105025298A (zh) | 对图像进行编码/解码的方法和设备 | |
CN103327340A (zh) | 一种整数搜索方法及装置 | |
JP4822940B2 (ja) | 画像処理装置及び画像処理方法 | |
CN103731671A (zh) | 图像处理装置及图像处理方法 | |
WO2018205781A1 (zh) | 一种实现运动估计的方法及电子设备 | |
CN115065825A (zh) | 一种基于gpu的移动视频编解码系统 | |
CN110278434B (zh) | 一种快速多复合帧视频编码的方法、装置及存储介质 | |
Asif et al. | Exploiting MB level parallelism in H. 264/AVC encoder for multi-core platform | |
WO2018205780A1 (zh) | 一种运动估计实现方法及电子设备 | |
US10743009B2 (en) | Image processing apparatus and image processing method | |
JP2006324888A (ja) | 動画像符号化装置 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220214 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |