CN108076347B - 一种编码起始点的获取方法以及装置 - Google Patents

一种编码起始点的获取方法以及装置 Download PDF

Info

Publication number
CN108076347B
CN108076347B CN201611004301.7A CN201611004301A CN108076347B CN 108076347 B CN108076347 B CN 108076347B CN 201611004301 A CN201611004301 A CN 201611004301A CN 108076347 B CN108076347 B CN 108076347B
Authority
CN
China
Prior art keywords
unit
coded
motion vector
starting point
acquiring
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.)
Active
Application number
CN201611004301.7A
Other languages
English (en)
Other versions
CN108076347A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201611004301.7A priority Critical patent/CN108076347B/zh
Publication of CN108076347A publication Critical patent/CN108076347A/zh
Application granted granted Critical
Publication of CN108076347B publication Critical patent/CN108076347B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请公开了一种编码起始点的获取方法以及一种编码起始点的获取装置。其中,所述编码起始点的获取方法,包括:获取预测单元的运动矢量;获取当前帧中待编码单元的位置信息;在与待编码单元对应的第一参考帧中,获取与待编码单元的位置信息相同的位置;将位置根据运动矢量进行偏移,在参考帧中确定待编码单元的起始点。该技术方案通过已有的运动矢量,根据实际运动情况设置运动估计起始点,起始点和真正运动矢量比较接近,能将固定的运动搜索范围缩小,以该起始点为中心进行小范围搜索找到真正的运动矢量,因此能够保持图像质量、视频码率基本不变,避免在全局大窗口内进行搜索,减小搜索过程减少运动估计的时间,从而减少编码时间提高编码效率。

Description

一种编码起始点的获取方法以及装置
技术领域
本申请涉及视频编码技术领域,具体涉及一种编码起始点的获取方法以及一种编码起始点的获取装置。
背景技术
目前,在视频编码过程中,通常使用帧内预测方法来消除图像的空间冗余度,使用帧间预测方法来消除时间冗余度。由于视频源的相邻帧间的时间冗余度相比较于帧内的空间冗余度要大得多,那么这就使得帧间预测方法在视频编码中显得极为重要。由于视频序列图像在时间轴上具有较强的相关性,帧间预测中的运动估计和运动补偿技术可以有效地减少时间冗余,因此,该技术被广泛的应用于视频压缩编码方案中。
运动估计用来估计物体的位移,得到运动矢量;运动补偿根据得到的运动矢量,对前一帧中由于运动而产生的位移进行调整,从而得到尽可能接近本帧的预测帧。在传输过程中,为了减少数据量,传输时传输的是预测帧与原始帧之间的残差值,预测图像越接近原图像,其之间的残差值就越小。因此,运动估计出的运动矢量越准确,运动补偿的性能就越好,编码后需要传输的信息量也越少,因此,运动估计和补偿技术在视频序列图像编码中起到了重要的作用,大大提高码率压缩比和减少时间。
目前运动估计的方法如下:将固定的运动搜索范围用于相同目标图像中的所有块,即:在一个预先定义的固定搜索区域内,以0运动矢量作为运动估计的起始点,把当前PU(Prediction Unit,预测单元)与参考帧中所有的候选块进行比较,并且寻找具有最小匹配误差的候选块,匹配误差最小的候选块与当前PU之间的位移就是所估计的运动矢量。
由此可见,在现有运动估计的方案下,在参考帧中是以当前PU中编码块相同位置的点为中心,即起始点,进行运动搜索;没有考虑实际的运动情况,且相邻帧之间的运动,会导致匹配块位置的改变,若依然选取当前PU中编码块在参考帧中的相同位置做为起始点时,会导致起始点的位置距离匹配块较远,从而导致找到最佳匹配块的计算量增加。此外将固定的运动搜索范围用于相同目标图像中的所有块时,如果该搜索范围足够大以至于可以捕获图像中移动最快的物体,那么这不必要地增大了用于具有较小移动的区域的搜索计算,导致产生极大的计算量浪费计算资源,降低计算效率。相反,如果该搜索范围太小,那么因为参考块可能在搜索范围之外,所以运动估计方法可能不能够找到具有较大移动量的参考块,找不到最佳的匹配块,那么就会影响编码的图像质量和编码后的码率,使得图像质量下降,编码后的码率增加。
发明内容
本申请提供一种编码起始点的获取方法以及一种编码起始点的获取装置,以解决现有技术中的上述问题。
本申请提供了一种编码起始点的获取方法,所述编码起始点的获取方法,包括:
获取预测单元的运动矢量;
获取当前帧中待编码单元的位置信息;
在与所述待编码单元对应的第一参考帧中,获取与所述待编码单元的位置信息相同的位置;
将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点。
可选的,所述预测单元,包括:
与所述待编码单元在空间上相邻的空间相邻已编码预测单元,以及与所述待编码单元在时间上相邻的时间相邻已编码预测单元。
可选的,所述预测单元,还包括:
低分辨率图像中的预测单元、原始输入码流中的预测单元、低分辨率码流中的预测单元以及低码率码流中的预测单元。
可选的,所述空间相邻已编码预测单元具有对应的第二参考帧;
所述时间相邻已编码预测单元具有对应的第三参考帧。
可选的,所述将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点,包括:
若所述运动矢量为所述时间相邻已编码预测单元的运动矢量,则获取所述时间相邻已编码预测单元与所述第三参考帧之间的第一时间长度;
根据所述第一时间长度以及所述运动矢量,获取所述已编码预测单元在单位时间内的偏移量;
获取所述待编码单元与所述第一参考帧之间的第二时间长度;
根据所述第二时间长度以及所述时间相邻已编码预测单元在所述单位时间内的偏移量,获取所述待编码单元的运动矢量。
可选的,所述将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点,包括:
若所述运动矢量为所述空间相邻已编码预测单元的运动矢量,则获取所述空间相邻已编码预测单元与所述第二参考帧之间的第三时间长度;
根据所述第三时间长度以及所述运动矢量,获取所述已编码预测单元在单位时间内的偏移量;
获取所述待编码单元与所述第一参考帧之间的第二时间长度;
根据所述第二时间长度以及所述空间相邻已编码预测单元在所述单位时间内的偏移量,获取所述待编码单元的运动矢量。
可选的,所述空间相邻已编码预测单元,至少包括如下已编码预测单元中的一个:
与所述待编码单元相邻的左边、左下边、左上边、上边以及右上边的已编码预测单元。
可选的,在所述将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点的步骤之后,包括:
在所述起始点为所述待编码单元进行运动估计。
可选的,在所述起始点为所述待编码单元进行运动估计,包括:
在所述起始点以预设的搜索范围为所述待编码单元进行运动估计。
可选的,在所述起始点为所述待编码单元进行运动估计的步骤之前,包括:
若获取的所述起始点的数目大于一,则计算各个所述起始点的编码代价;
选取编码代价低于预设的阈值的起始点作为与所述待编码单元对应的第一参考帧中的起始点。
可选的,在所述计算各个所述起始点的编码代价的步骤之前,包括:
在已获取的所述起始点中将坐标相同的起始点进行合并。
相应的,本申请还提供了一种编码起始点的获取装置,所述编码起始点的获取装置,包括:
运动矢量获取单元、位置获取单元、位置获取单元以及起始点获取单元;
所述运动矢量获取单元,用于获取预测单元的运动矢量;
所述位置获取单元,用于获取当前帧中待编码单元的位置信息;
所述位置获取单元,用于在与所述待编码单元对应的第一参考帧中,获取与所述待编码单元的位置信息相同的位置;
所述起始点获取单元,用于将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点。
可选的,所述运动矢量获取单元,具体用于获取与所述待编码单元在空间上相邻的空间相邻已编码预测单元,以及与所述待编码单元在时间上相邻的时间相邻已编码预测单元。
可选的,所述运动矢量获取单元,还用于获取低分辨率图像中的预测单元、原始输入码流中的预测单元、低分辨率码流中的预测单元以及低码率码流中的预测单元的运动矢量。
可选的,所述空间相邻已编码预测单元具有对应的第二参考帧;
所述时间相邻已编码预测单元具有对应的第三参考帧。
可选的,所述起始点获取单元,包括:第一时间长度获取子单元、偏移量获取子单元、第二时间长度获取子单元以及运动矢量获取子单元;
所述第一时间长度获取子单元,用于若所述运动矢量为所述时间相邻已编码预测单元的运动矢量,则获取所述时间相邻已编码预测单元与所述第三参考帧之间的第一时间长度;
所述偏移量获取子单元,用于根据所述第一时间长度以及所述运动矢量,获取所述已编码预测单元在单位时间内的偏移量;
所述第二时间长度获取子单元,用于获取所述待编码单元与所述第一参考帧之间的第二时间长度;
所述运动矢量获取子单元,用于根据所述第二时间长度以及所述时间相邻已编码预测单元在所述单位时间内的偏移量,获取所述待编码单元的运动矢量。
可选的,所述起始点获取单元,包括:第三时间长度获取子单元、偏移量获取子单元、第二时间长度获取子单元以及运动矢量获取子单元;
所述第三时间长度获取子单元,用于若所述运动矢量为所述空间相邻已编码预测单元的运动矢量,则获取所述空间相邻已编码预测单元与所述第二参考帧之间的第三时间长度;
所述偏移量获取子单元,用于根据所述第三时间长度以及所述运动矢量,获取所述已编码预测单元在单位时间内的偏移量;
所述第二时间长度获取子单元,用于获取所述待编码单元与所述第一参考帧之间的第二时间长度;
所述运动矢量获取子单元,用于根据所述第二时间长度以及所述空间相邻已编码预测单元在所述单位时间内的偏移量,获取所述待编码单元的运动矢量。
可选的,所述运动矢量获取单元,具体用于至少从与所述待编码单元相邻的左边、左下边、左上边、上边以及右上边的已编码预测单元。
可选的,所述的编码起始点的获取装置,还包括:运动估计单元;
所述运动估计单元,用于在所述将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点之后,在所述起始点为所述待编码单元进行运动估计。
可选的,所述运动估计单元,具体用于在所述起始点以预设的搜索范围为所述待编码单元进行运动估计。
可选的,所述的编码起始点的获取装置,还包括:编码代价计算单元以及起始点选取单元;
所述编码代价计算单元,用于在所述起始点为所述待编码单元进行运动估计之前,若获取的所述起始点的数目大于一,则计算各个所述起始点的编码代价;
所述起始点选取单元,用于选取编码代价低于预设的阈值的起始点作为与所述待编码单元对应的第一参考帧中的起始点。
可选的,所述的编码起始点的获取装置,还包括:起始点合并单元;
所述起始点合并单元,用于在所述计算各个所述起始点的编码代价之前,在已获取的所述起始点中将坐标相同的起始点进行合并。
此外,本申请实施例还提供了一种电子设备,包括:
显示器;
处理器;
存储器,用于存储视频编码程序,所述程序在被所述处理器读取执行时,执行如下操作:获取预测单元的运动矢量;获取当前帧中待编码单元的位置信息;在与所述待编码单元对应的第一参考帧中,获取与所述待编码单元的位置信息相同的位置;将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点。
与现有技术相比,本申请具有以下优点:
本申请提供的一种编码起始点的获取方法以及一种编码起始点的获取装置,通过获取预测单元的运动矢量;获取当前帧中待编码单元的位置信息;在与所述待编码单元对应的第一参考帧中,获取与所述待编码单元的位置信息相同的位置;将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点。所述技术方案通过根据已有的运动矢量信息,根据实际运动情况设置运动估计的起始点,由于充分利用了已有的运动矢量信息,运动估计的起始点能够和真正的最终的运动矢量比较接近,所以能将固定的运动搜索范围缩小,然后以这个起始点为中心,进行小范围的搜索也能够保证找到真正的最终的运动矢量,因此能够保持图像质量、视频码率基本不变,避免了在全局的大窗口内进行搜索,减小不必要的搜索过程,减少运动估计的时间,从而减少编码时间,提高编码效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1示出了根据本申请的实施例提供的编码起始点的获取方法的流程图;
图2示出了前向或后向运动估计的示意图;
图3示出了根据本申请的实施例提供的将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点的流程图;
图4示出了根据本申请的实施例提供的运动矢量为时间相邻已编码预测单元的运动矢量时,将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点的示意图;
图5示出了根据本申请的实施例提供的空间相邻已编码预测单元的示意图;
图6示出了根据本申请的实施例提供的将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点的流程图;
图7示出了根据本申请的实施例提供的运动矢量为空间相邻已编码预测单元的运动矢量时,将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点的示意图;
图8示出了根据本申请的实施例提供的待编码单元在对应的参考帧中确定最佳的起始点的流程图;
图9示出了根据本申请的实施例提供的编码起始点的获取装置的示意图;
图10示出了根据本申请的实施例提供的电子设备的示意图。
具体实施方式
为了能够更清楚地理解本申请的上述目的、特征和优点,下面结合附图和具体实施方式对本申请进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施的限制。
在详细描述本实施例的具体步骤之前,为了方便对本技术方案的理解,先对现有的运动估计作简要说明。
运动估计是视频编码和视频处理中广泛使用的一种技术。运动估计的基本思想是将图像序列的每一帧分成许多互不重叠的块,并认为块内所有像素的位移量都相同,然后对每个块到参考帧某一给定特定搜索范围内根据一定的匹配准则找出与当前块最相似的块,即匹配块,匹配块与当前块的相对位移即为运动矢量。
例如:一次运动估计,是在参考帧中以当前帧中的待编码单元(要进行运动估计的预测单元)的相同位置为起始点,搜索所述待编码单元的最佳匹配预测单元,并得到所述待编码单元与最佳匹配预测单元之间的运动矢量(位移)的过程(即:得到当前帧中的待编码单元进行编码后的运动矢量)。
视频压缩的时候,只需保存运动矢量和残差数据就可以完全恢复出当前块。在帧间预测编码中,由于活动图像邻近帧中的景物存在着一定的相关性。因此,可将活动图像分成若干块,并设法搜索出每个块在邻近帧图像中的位置,并得出两者之间的空间位置的相对偏移量,得到的相对偏移量就是通常所指的运动矢量,得到运动矢量的过程被称为运动估计。通过运动估计可以去除帧间冗余度,使得视频传输的比特数大为减少,因此,运动估计是视频压缩处理系统中的一个重要组成部分。
运动补偿是一种描述相邻帧(相邻在这里表示在编码关系上相邻,在播放顺序上两帧未必相邻)差别的方法,具体来说是通过运动矢量(x水平偏移和y垂直偏移)描述前面一帧的每个块怎样移动到当前帧中的某个位置去。
帧间预测在图像传输技术中,活动图像特别是电视图像是关注的主要对象。活动图像是由时间上以帧周期为间隔的连续图像帧组成的时间图像序列,它在时间上比在空间上具有更大的相关性。大多数电视图像相邻帧间细节变化是很小的,即视频图像帧间具有很强的相关性,利用帧所具有的相关性的特点进行帧间编码,可获得比帧内编码高得多的压缩比。对于静止图像或活动很慢的图像,可以少传一些帧,如隔帧传输,未传输的帧,利用接收端的帧存储器中前一帧的数据作为该帧数据,对视觉没有影响。
在进行预测环节时使用的基本编码单元为预测单元PU(Prediction Unit),所有和预测相关的操作都是以PU为单位的。例如:帧内预测的方向、帧间预测的运动矢量差和参考帧索引、运动矢量预测、运动估计以及运动补偿都是基于PU进行处理的。在HEVC(HighEfficiency Video Coding,一种视频压缩标准)中有3种预测类型:Skip,Intra,Inter。预测类型是影响PU分割的主要因素。例如:Skip模式下预测单元PU大小可以是64×64;Intra模式下,预测单元PU大小可能是64×64或32×32;Inter模式下,预测单元PU大小可能是64×64,64×32,32×64,32×32,64×16,64×48,16×64以及48×64。
参考帧是指:先前已编码的图像帧。参考帧是用于当前帧进行编码时所需参考的帧。参考帧在时间上可以超前或者滞后于当前帧,请参考图2其示出了前向或后向运动估计的示意图;当t’=(t-△t)时,称之为后向运动估计,当t’=(t+△t)时,称之为前向运动估计。当在参考帧中搜索到当前帧中的待编码单元(要进行运动估计的预测单元)的最佳匹配预测单元时,可以得到相应的运动场d(x;t,t+t△),即可得到当前帧中的待编码单元(要进行运动估计的预测单元)进行编码后的运动矢量(即:进行编码后将所述待编码单元的运动矢量称为已编码预测单元的运动矢量)。
待编码单元是指:要进行运动估计的预测单元。由于运动估计是对图像帧进行编码的过程,所以将要进行运动估计的预测单元称为待编码单元。在视频编码中,要进行运动估计的预测单元还可被称为当前预测单元(当前pu)。
当前帧是指:要进行运动估计的图像帧。根据待编码单元的大小(例如:64×64或32×32),在当前帧内会具有若干数量的待编码单元。根据待编码单元在当前帧内的坐标值,可以确定待编码单元的位置信息,并区分不同待编码单元。
本申请的实施例提供了一种编码起始点的获取以及一种编码起始点的获取装置。在下面的实施例中逐一进行详细说明。
本申请的实施例提供了一种编码起始点的获取方法,其目的是确定编码时的起始点,并基于该起始点减小运动估计时的搜索范围,该方法通过已有的运动矢量信息,根据实际运动情况设置运动估计的起始点,采用该方法减少了运动估计时的搜索时间,从而减少编码时间,提高编码效率。所述视频编码的方法实施例如下:
请参考图1,其示出了根据本申请的实施例提供的编码起始点的获取的流程图。
所述编码起始点的获取包括:
步骤S101,获取预测单元的运动矢量。
在本实施例中,所述获取预测单元的运动矢量,可以采用如下方式实现:从参考帧集中获取预测单元的运动矢量。
所述参考帧集是多个先前已编码的图像组成的集合,在该集合中具有多个已编码完的图像(参考帧),在具体实施时,所述获取预测单元的运动矢量是:从参考帧集中获取与所述待编码单元在空间上相邻的空间相邻已编码预测单元的运动矢量,以及与所述待编码单元在时间上相邻的时间相邻已编码预测单元的运动矢量。
需要说明的是,所述参考帧集中记录的已编码预测单元是:已经进行过运动估计的预测单元,即:所述预测单元已经通过分别与其对应的参考帧获取到该预测单元的运动矢量。所以在所述参考帧集中记录的已编码预测单元均具有与其对应的参考帧。
在本实施例中,所述空间相邻已编码预测单元具有对应的第二参考帧;以及
所述时间相邻已编码预测单元具有对应的第三参考帧。
在本实施例中,还可以通过从参考帧集中获取编码过程中已经计算得到的低分辨率图像中预测单元的运动矢量信息;或者通过转码过程中,原始输入码流中的预测单元的运动矢量信息;或者通过转码过程中,低分辨率码流,低码率码流等中的预测单元的运动矢量信息。
需要说明的是,编码过程就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式,视频图像数据有极强的相关性,其中会携带大量的冗余信息。其中冗余信息可分为空域冗余信息和时域冗余信息。压缩技术就是将数据中的冗余信息去掉(去除数据之间的相关性),压缩技术包含帧内图像数据压缩技术、帧间图像数据压缩技术和熵编码压缩技术。与编码过程相对的,转码过程是指将已经压缩编码的视频码流转换成另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。转码本质上是一个先解码,再编码的过程。
可以理解的,码流是经过视频压缩后每秒产生的数据量,所以在转码过程中,原始输入码流、低分辨率码流以及低码率码流都是经过压缩编码后的数据流,所以在转码过程中可以从上述码流中获取到压缩编码时对预测单元编码时产生的运动矢量。
在本实施例中,将低分辨率图像、原始输入码流、低分辨率码流以及低码率码流作为一种编码上的关系,分别与上述两种编码上的关系(空间上以及时间上)进行具体说明。
步骤S103,获取当前帧中待编码单元的位置信息。
在本实施例中,所述获取当前帧中待编码单元的位置信息,可以采用如下方式实现:获取所述待编码单元在当前帧中的坐标信息,所述坐标信息包括:x轴的坐标值以及y轴的坐标值。
步骤S105,在与所述待编码单元对应的第一参考帧中,获取与所述待编码单元的位置信息相同的位置。
在本实施例中,所述在与所述待编码单元对应的第一参考帧中,获取与所述待编码单元的位置信息相同的位置,可以采用如下方式实现:以所述待编码单元在当前帧中的坐标信息,在与所述待编码单元对应的第一参考帧中查询并获取和所述坐标信息相同的坐标位置。
例如:所述待编码单元在当前帧中的x轴的坐标值为20以及y轴的坐标值30,则在与所述待编码单元对应的第一参考帧中以x轴的坐标值为20,y轴的坐标值为30查找坐标相同的位置,并获取查找出的位置。
步骤S107,将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点。
在本实施例中,所述将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点,可以采用如下方式实现:将已获取的所述位置,通过在步骤S101中获取到的预测单元的运动矢量在x水平方向上以及y垂直方向上进行偏移,在所述第一参考帧中将偏移后的坐标位置作为所述待编码单元在所述第一参考帧中的起始点。
可以理解的,由于目前的起始点在参考帧中总是与待编码的预测单元的位置相同,所以在参考帧中是以0运动矢量作为运动估计的起始点(即在参考帧中以与所述待编码的预测单元的坐标相同的位置作为运动估计的起始点),所以在本步骤中,就是在第一参考帧中以待编码的预测单元的坐标位置(x,y)作为起始点加上所述运动矢量在x水平的偏移和y垂直的偏移,推算出所述待编码单元在对应的第一参考帧中的新起始点。例如:所述运动矢量在x水平的偏移为x1,在y垂直的偏移为y1,则推算出的所述待编码单元在对应的第一参考帧中的新起始点的坐标为(x+x1,y+y1)。
需要说明的是,由于在编码上具有3种编码关系,所以本步骤将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点时,具有三种确定起始点的方式,下面分别对在与所述待编码单元在空间上相邻的空间相邻已编码预测单元获取的运动矢量、在与所述待编码单元在时间上相邻的时间相邻已编码预测单元获取的运动矢量以及低分辨率图像中的预测单元、原始输入码流中的预测单元、低分辨率码流中的预测单元以及低码率码流中的预测单元的运动矢量举例进行详细说明。
若在步骤S101中获取的预测单元的运动矢量,是与所述待编码单元在时间上相邻的时间相邻已编码预测单元中获取的,则本步骤S107将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点,具体包括如下步骤S107-1至S107-4,下面以附图3以及附图4为具体例子作进一步说明。
请参考附图3,其示出了根据本申请的实施例提供的将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点的流程图;以及附图4,其示出了根据本申请的实施例提供的运动矢量为时间相邻已编码预测单元的运动矢量时,将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点的示意图。
步骤S107-1,若所述运动矢量为所述时间相邻已编码预测单元的运动矢量,则获取所述时间相邻已编码预测单元与所述第三参考帧之间的第一时间长度。
其中图4中的cur_pic是待编码单元所在的当前帧,cur_ref是待编码单元对应的第一参考帧,curpu是待编码单元,col_pic是时间上相邻的已编码完的图像,colpu是与所述待编码单元在时间上相邻的空间相邻已编码预测单元,col_ref是所述时间相邻已编码预测单元对应的第三参考帧,lb是指col_pic与col_ref之间的第一时间长度,ld是指cur_pic与cur_ref之间的第二时间长度。
需要说明的是,时间上相邻的已编码完的图像col_pic与待编码的单元的图像cur_pic,是在编码关系上时间相邻的图像,在实际的视频播放顺序上两帧未必相邻。
在本实施例中,所述获取所述时间相邻已编码预测单元与所述第三参考帧之间的第一时间长度,可以采用如下方式实现:获取col_pic在视频流中的进行播放时的出现时间,获取col_ref在视频流中的进行播放时的出现时间,将col_pic在视频流中的进行播放时的出现时间与col_ref在视频流中的进行播放时的出现时间的差值作为第一时间长度。
需要说明的是,col_ref在时间上可以超前或者滞后于col_pic,所以在获取所述第一时间长度之后,需要取所述第一时间长度的数值的绝对值。
例如:col_ref与col_pic之间的第一时间长度lb为5秒。
步骤S107-2,根据所述第一时间长度以及所述运动矢量,获取所述已编码预测单元在单位时间内的偏移量。
在本实施例中,所述根据所述第一时间长度以及所述运动矢量,获取所述已编码预测单元在单位时间内的偏移量,可以采用如下方式实现:根据在步骤S101中获取的运动矢量,将所述运动矢量除以所述第一时间长度,获取所述已编码预测单元在单位时间内的偏移量。
可以理解的,由于已知所述第一时间长度(时间)以及所述运动矢量(位置),就可以通过将所述运动矢量除以所述第一时间长度,来获取所述已编码预测单元在单位时间内的偏移量(速度)。
例如:所述第一时间长度lb为5秒,在步骤S101中获取的运动矢量为(20,30),即在x水平方向上偏移20,在y垂直方向上偏移30,则根据所述第一时间长度lb,获取在时间上与所述待编码单元相邻的已编码预测单元在单位时间内的x水平方向上偏移量为4,在y垂直方向上偏移量为6。
步骤S107-3,获取所述待编码单元与所述第一参考帧之间的第二时间长度。
在本实施例中,所述获取所述待编码单元与所述第一参考帧之间的第二时间长度,可以采用如下方式实现:获取cur_pic在视频流中的进行播放时的出现时间,获取cur_ref在视频流中的进行播放时的出现时间,将cur_pic在视频流中的进行播放时的出现时间与cur_ref在视频流中的进行播放时的出现时间的差值作为第二时间长度。
需要说明的是,cur_ref在时间上可以超前或者滞后于cur_pic,所以在获取所述第二时间长度之后,需要取所述第二时间长度的数值的绝对值。
步骤S107-4,根据所述第二时间长度以及所述时间相邻已编码预测单元在所述单位时间内的偏移量,获取所述待编码单元的运动矢量。
在本实施例中,所述根据所述第二时间长度以及所述时间相邻已编码预测单元在所述单位时间内的偏移量,获取所述待编码单元的运动矢量,可以采用如下方式实现:根据在步骤S107-2中获取的所述已编码预测单元在单位时间内的偏移量乘以在步骤S107-3中获取的所述第二时间长度,获取所述待编码单元的运动矢量。
例如:cur_pic与cur_ref之间的第二时间长度ld为10秒,与所述待编码单元在时间上相邻的时间相邻已编码预测单元在单位时间内的x水平方向上偏移量为4,在y垂直方向上偏移量为6,则将x水平方向上的偏移量与y垂直方向上的偏移量分别与cur_pic与cur_ref之间的第二时间长度ld进行计算,获取所述待编码单元在x水平方向上的偏移量40,在y垂直方向上的偏移量60,将(40,60)作为所述待编码单元的运动矢量。
在本实施例中,所述将所述位置根据所述待编码单元的运动矢量进行偏移,在与所述待编码单元对应的所述第一参考帧中确定所述待编码单元的起始点,可以采用如下方式实现:将在步骤S105中获取的所述位置,以所述待编码单元的运动矢量进行偏移,将偏移后的位置作为所述待编码单元在与所述待编码单元对应的所述第一参考帧中的起始点。
在具体实施时,所述将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点的算法为:out_mv=(col_mv/lb)*ld。
其中,out_mv代表所述待编码单元的运动矢量,col_mv代表在时间上与待编码单元相邻的已编码预测单元的运动矢量。
若在步骤S101中获取的预测单元的运动矢量,是与所述待编码单元在空间上相邻的空间相邻已编码预测单元中获取的,请参考图5,其示出了根据本申请的实施例提供的空间相邻已编码预测单元的示意图。
需要说明的是,所述空间相邻已编码预测单元,至少包括如下已编码预测单元中的一个:与所述待编码单元相邻的左边、左下边、左上边、上边以及右上边的已编码预测单元。可以理解的,由于所述已编码预测单元是与所述待编码预测单元在空间上相邻的预测单元,所以由于活动图像邻近帧中的景物存在着一定的相关性,所以可以直接将已编码预测单元的运动矢量作为所述待编码单元在对应的参考帧中的起始点。
可以理解的,与所述待编码单元在空间上相邻的空间相邻已编码预测单元,包括但不限于上述的五个已编码预测单元,还可以是与待编码单元相邻的其他的已编码预测单元。
所述将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点,可以采用如下方式实现:通过所述运动矢量在x水平方向上的偏移和y垂直方向上的偏移,在所述第一参考帧的坐标系中推算出所述待编码单元在对应的参考帧中的新起始点。例如:所述待编码单元的坐标为(x,y),则在所述第一参考帧中是以坐标(x,y)作为起始点加上所述运动矢量在x水平的偏移和y垂直的偏移。例如:所述运动矢量在x水平的偏移为x1,在y垂直的偏移为y1,则推算出的所述待编码单元在对应的参考帧中的新起始点的坐标为(x+x1,y+y1)。
可以理解的,直接将已编码预测单元的运动矢量作为所述待编码单元在对应的参考帧中的起始点时,由于未考虑所述待编码单元与参考帧的远近,所以获取的起始点的可信度较低,为了提高获取的起始点的可信度,在本步骤S107将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点中,具体包括如下步骤S107-5至S107-8,下面结合附图6以及附图7作进一步说明。
请参考附图6,其示出了根据本申请的实施例提供的将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点的流程图;以及附图7,其示出了根据本申请的实施例提供的运动矢量为空间相邻已编码预测单元的运动矢量时,将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点的示意图。
步骤S107-5,若所述运动矢量为所述空间相邻已编码预测单元的运动矢量,则获取所述空间相邻已编码预测单元与所述第三参考帧之间的第三时间长度。
其中图7中的cur_pic是待编码单元所在的当前帧,cur_ref是待编码单元对应的第一参考帧,curpu是待编码单元,A1是与所述待编码单元在空间上相邻的空间相邻已编码预测单元,nei_ref是所述空间相邻已编码预测单元的第二参考帧,lb是指cur_pic与nei_ref之间的第一时间长度,ld是指cur_pic与cur_ref之间的第三时间长度。
在本实施例中,所述获取所述空间相邻已编码预测单元与所述第三参考帧之间的第三时间长度,可以采用如下方式实现:获取cur_pic在视频流中的进行播放时的出现时间,获取nei_ref在视频流中的进行播放时的出现时间,将cur_pic在视频流中的进行播放时的出现时间与nei_ref在视频流中的进行播放时的出现时间的差值作为第一时间长度。
需要说明的是,nei_ref在时间上可以超前或者滞后于cur_pic,所以在获取所述第一时间长度之后,需要取所述第一时间长度的数值的绝对值。
例如:cur_pic中的预测单元A1与nei_ref之间的第一时间长度lb为5秒。
步骤S107-6,根据所述第三时间长度以及所述运动矢量,获取所述已编码预测单元在单位时间内的偏移量。
在本实施例中,所述根据所述第三时间长度以及所述运动矢量,获取所述已编码预测单元在单位时间内的偏移量,可以采用如下方式实现:根据在步骤S101中获取的运动矢量,将所述运动矢量除以所述第三时间长度,获取所述空间相邻已编码预测单元在单位时间内的偏移量。
可以理解的,由于已知所述第一时间长度(时间)以及所述运动矢量(位置),就可以通过将所述运动矢量除以所述第一时间长度,来获取所述已编码预测单元在单位时间内的偏移量(速度)。
例如:所述第一时间长度lb为5秒,在步骤S101中已获取的运动矢量为(20,30),即在x水平方向上偏移20,在y垂直方向上偏移30,则根据所述第一时间长度lb,获取所述空间相邻已编码预测单元在单位时间内的x水平方向上偏移量为4,在y垂直方向上偏移量为6。
步骤S107-7,获取所述待编码单元与所述第一参考帧之间的第二时间长度。
在本实施例中,所述获取所述待编码单元与所述第一参考帧之间的第二时间长度,可以采用如下方式实现:获取cur_pic在视频流中的进行播放时的出现时间,获取cur_ref在视频流中的进行播放时的出现时间,将cur_pic在视频流中的进行播放时的出现时间与cur_ref在视频流中的进行播放时的出现时间的差值作为第二时间长度。
需要说明的是,cur_ref在时间上可以超前或者滞后于cur_pic,所以在获取所述第二时间长度之后,需要取所述第二时间长度的数值的绝对值。
例如:cur_pic与cur_ref之间的第二时间长度ld为10秒。
步骤S107-8,根据所述第二时间长度以及所述空间相邻已编码预测单元在所述单位时间内的偏移量,获取所述待编码单元的运动矢量。
在本实施例中,所述根据所述第二时间长度以及所述空间相邻已编码预测单元在所述单位时间内的偏移量,获取所述待编码单元的运动矢量,可以采用如下方式实现:根据在步骤S107-6中获取的所述已编码预测单元在单位时间内的偏移量乘以在步骤S107-7中获取的所述第二时间长度,获取所述待编码单元的运动矢量。
例如:cur_pic与cur_ref之间的第二时间长度ld为10秒,与所述待编码单元在空间上相邻的空间相邻已编码预测单元在单位时间内的x水平方向上偏移量为4,在y垂直方向上偏移量为6,则将x水平方向上的偏移量与y垂直方向上的偏移量分别与cur_pic与cur_ref之间的第二时间长度ld进行计算,获取所述待编码单元在x水平方向上的偏移量40,在y垂直方向上的偏移量60,将(40,60)作为所述待编码单元的运动矢量。
在本实施例中,所述将所述位置根据所述待编码单元的运动矢量进行偏移,在与所述待编码单元对应的所述第一参考帧中确定所述待编码单元的起始点,可以采用如下方式实现:将在步骤S105中获取的所述位置,以所述待编码单元的运动矢量进行偏移,将偏移后的位置作为所述待编码单元在与所述待编码单元对应的所述第一参考帧中的起始点。
在具体实施时,所述将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点的算法为:out_mv=(nei_mv/lb)*ld。
其中,out_mv代表所述待编码单元的运动矢量,nei_mv代表与所述待编码单元在空间上相邻的空间相邻已编码预测单元的运动矢量。
可以理解的,由于是在与所述待编码单元在空间上相邻的空间相邻已编码预测单元中至少选择一个预测单元,所以在本步骤中的选择的已编码预测单元的数目可以是1、2、3、4或5个。例如:当选择的已编码预测单元的数目为5时,则在本步骤中是通过5个已编码预测单元分别进行计算,获取5个所述待编码单元的运动矢量。同样的道理,在将已编码预测单元的运动矢量作为所述待编码单元在对应的参考帧中的起始点时,也会获取到5个所述待编码单元在对应的参考帧中的起始点。
若在步骤S101中获取的预测单元的运动矢量,是低分辨率图像中的预测单元、原始输入码流中的预测单元、低分辨率码流中的预测单元或低码率码流中的预测单元中获取的,则在本步骤中所述将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点,可以采用如下方式实现:直接通过所述运动矢量在x水平方向上的偏移和y垂直方向上的偏移,在所述第一参考帧的坐标系中推算出所述待编码单元在对应的所述第一参考帧中的新起始点。例如:所述待编码单元的坐标为(0,0),则在参考帧中是以坐标(0,0)加上所述运动矢量在x水平的偏移为x1,在y垂直的偏移为y1,获取所述待编码单元在对应的参考帧中的新起始点的坐标(x1,y1)。
作为一个优选实施方式,本申请实施例提供的编码起始点的获取方法中,由于通过已有的运动矢量信息,根据实际运动情况确定了运动估计的起始点,所以在步骤S107将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点之后,需要执行如下步骤:在所述起始点为所述待编码单元进行运动估计。
在本实施例中,所述在所述起始点为所述待编码单元进行运动估计,可以采用如下方式实现:在所述起始点为所述待编码单元搜索对应的最佳匹配预测单元。
由于充分利用了已有的运动矢量信息,运动估计的起始点能够和真正的最终的运动矢量比较接近,本实施例的技术方案提供了一种优选实施方式,在优选方式下,为了减少不必要的搜索过程,减少运动估计的时间,在执行在所述起始点为所述待编码单元进行运动估计时,是在所述起始点以预设的搜索范围为所述待编码单元进行运动估计,即:在所述起始点以预设的搜索范围为所述待编码单元搜索对应的最佳匹配预测单元。
需要说明的是,所述预设的搜索范围小于现有技术中常规的搜索范围,例如:所述预设的搜索范围可以是现有技术中常规的搜索范围的1/8。所述预设的搜索范围还可以根据起始点的编码代价的值进行自适应性的调整,例如:为编码代价设置阈值,若所述起始点的编码代价的值小于所述阈值时,将缩小所述预设的搜索范围;若所述起始点的编码代价的值大于所述阈值时,扩大所述预设的搜索范围。
由于在步骤S107中,将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点时,获取到的起始点的数目可能大于一,为了所述待编码单元能够在与所述待编码单元对应的所述第一参考帧中确定最佳的起始点,在所述起始点为所述待编码单元进行运动估计的步骤之前,需要通过计算每一起始点的编码代价的方式,对起始点进行选取,具体包括如下步骤S108-1至S108-2,下面结合附图8作进一步说明。
请参考图8,其示出了根据本申请的实施例提供的待编码单元在对应的参考帧中确定最佳的起始点的流程图。
步骤S108-1,若获取的所述起始点的数目大于一,则计算各个所述起始点的编码代价。
在本实施例中,所述计算各个所述起始点的编码代价,可以采用如下方式实现:将在步骤S105中获取的每一所述待编码单元的起始点通过RDcost率失真代价进行计算。
需要说明的是,所述RDcost率失真代价的数学算法为:
RDcost=SAD/SSD+lamda*bitcost(MV)
其中,SAD(Sum of Absolute Difference)为采用运动矢量mv时按标准规定计算出来的待编码单元与参考帧的误差的绝对值的和,SAD用以评估此运动矢量下待编码单元与参考帧的匹配程度,即预测的误差;SSD(Sum of Squared Difference)为均方差之和,与SAD相似的同样可以判断待编码单元与参考帧的匹配程度;lamda为拉格朗日参数,可设为常数;bitcost(MV)表示该运动矢量量的编码比特数。为简化描述,此处的bitcost(MV)的计算由此运动矢量按照规范进行VLC编码时所需的比特数表示。
SAD=∑∑|ori(x0,y0)-ref(x0+mvx,y0+mvy)|
其中,ori是当前待编码单元,ref是已经编码完的用于进行运动补偿的参考帧的数据;(mvx,mvy)就是每个候选起始点的运动矢量,mvx为运动矢量的x坐标;mvy为运动矢量的y坐标。
步骤S108-2,选取编码代价低于预设的阈值的起始点作为与所述待编码单元对应的第一参考帧中的起始点。
在本实施例中,所述选取编码代价低于预设的阈值的起始点作为与所述待编码单元对应的第一参考帧中的起始点,可以采用如下方式实现:在本步骤中获取计算出的编码代价数值小于预设的阈值的起始点,将所述编码代价数值小于预设的阈值的起始点作为所述待编码单元在与所述待编码单元对应的所述第一参考帧中的起始点。
需要说明的是,为了降低进行运动估计时的计算量,在本步骤中除了选取编码代价低于预设的阈值的起始点的方式外,还可以选取编码代价最小的起始点作为所述待编码单元在对应的所述第一参考帧中的起始点。
当采用选取编码代价最小的起始点作为所述待编码单元在与所述待编码单元对应的所述第一参考帧中的起始点时,可以采用如下方式实现:将在步骤S107中获取的每一所述待编码单元的运动矢量带入RDcost率失真代价的数学算法中进行计算,在本步骤中获取计算出的编码代价数值最小的起始点,将所述编码代价数值最小的起始点作为所述待编码单元在对应的所述第一参考帧中的起始点。
由于在步骤S107中,有可能获取的所述待编码单元的运动矢量的数目大于一,为了减少所述待编码单元在与所述待编码单元对应的所述第一参考帧中确定最佳的起始点时的计算压力,本实施例的技术方案提供了一种优选实施方式,在优选方式下,在执行步骤S108-1,计算各个所述起始点的编码代价之前,需要先去除冗余的所述待编码单元的运动矢量,减少编码时间,提高编码效率,具体包括如下步骤:在已获取的所述起始点中将坐标相同的起始点进行合并。
可以理解的,由于获取的所述待编码单元的运动矢量的数目可能大于一,所以在获取到的所述待编码单元的运动矢量可能是重复的(通过两个不同的已编码的预测单元获取到相同的运动矢量),所以需要将重复的运动矢量进行合并,使相同的所述待编码单元的运动矢量只保留一个。
例如:通过根据判断获取到的所述待编码单元的运动矢量中x水平的偏移和y垂直的偏移是否重复,来确定获取到的所述待编码单元的运动矢量是否重复。
通过本申请实施例提供的一种编码起始点的获取方法,通过根据已有的运动矢量信息,根据实际运动情况设置运动估计的起始点,由于充分利用了已有的运动矢量信息,运动估计的起始点能够和真正的最终的运动矢量比较接近,所以能将固定的运动搜索范围缩小,然后以这个起始点为中心,进行小范围的搜索也能够保证找到真正的最终的运动矢量,因此能够保持图像质量、视频码率基本不变,避免了在全局的大窗口内进行搜索,减小不必要的搜索过程,减少运动估计的时间,从而减少编码时间,提高编码效率。
在上述的实施例中,提供了一种编码起始点的获取方法,与上述编码起始点的获取方法相对应的,本申请还提供了一种编码起始点的获取装置。由于装置的实施例基本相似于方法的实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。所述编码起始点的获取装置实施例如下:
请参考图9,其示出了根据本申请的实施例提供的编码起始点的获取装置的示意图。
所述编码起始点的获取装置,包括:运动矢量获取单元901、位置获取单元903、位置获取单元以及905以及起始点获取单元907;
所述运动矢量获取单元901,用于获取预测单元的运动矢量;
所述位置获取单元903,用于获取当前帧中待编码单元的位置信息;
所述位置获取单元905,用于在与所述待编码单元对应的第一参考帧中,获取与所述待编码单元的位置信息相同的位置;
所述起始点获取单元907,用于将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点。
可选的,所述运动矢量获取单元901,具体用于获取与所述待编码单元在空间上相邻的空间相邻已编码预测单元,以及与所述待编码单元在时间上相邻的时间相邻已编码预测单元。
可选的,所述运动矢量获取单元901,还用于获取低分辨率图像中的预测单元、原始输入码流中的预测单元、低分辨率码流中的预测单元以及低码率码流中的预测单元的运动矢量。
可选的,所述空间相邻已编码预测单元具有对应的第二参考帧;
所述时间相邻已编码预测单元具有对应的第三参考帧。
可选的,所述起始点获取单元907,包括:第一时间长度获取子单元、偏移量获取子单元、第二时间长度获取子单元以及运动矢量获取子单元;
所述第一时间长度获取子单元,用于若所述运动矢量为所述时间相邻已编码预测单元的运动矢量,则获取所述时间相邻已编码预测单元与所述第三参考帧之间的第一时间长度;
所述偏移量获取子单元,用于根据所述第一时间长度以及所述运动矢量,获取所述已编码预测单元在单位时间内的偏移量;
所述第二时间长度获取子单元,用于获取所述待编码单元与所述第一参考帧之间的第二时间长度;
所述运动矢量获取子单元,用于根据所述第二时间长度以及所述时间相邻已编码预测单元在所述单位时间内的偏移量,获取所述待编码单元的运动矢量。
可选的,所述起始点获取单元907,包括:第三时间长度获取子单元、偏移量获取子单元、第二时间长度获取子单元以及运动矢量获取子单元;
所述第三时间长度获取子单元,用于若所述运动矢量为所述空间相邻已编码预测单元的运动矢量,则获取所述空间相邻已编码预测单元与所述第三参考帧之间的第三时间长度;
所述偏移量获取子单元,用于根据所述第三时间长度以及所述运动矢量,获取所述已编码预测单元在单位时间内的偏移量;
所述第二时间长度获取子单元,用于获取所述待编码单元与所述第一参考帧之间的第二时间长度;
所述运动矢量获取子单元,用于根据所述第二时间长度以及所述空间相邻已编码预测单元在所述单位时间内的偏移量,获取所述待编码单元的运动矢量。
可选的,所述运动矢量获取单元901,具体用于至少从与所述待编码单元相邻的左边、左下边、左上边、上边以及右上边的已编码预测单元。
可选的,所述的编码起始点的获取装置,还包括:运动估计单元;
所述运动估计单元,用于在所述将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点之后,在所述起始点为所述待编码单元进行运动估计。
可选的,所述运动估计单元,具体用于在所述起始点以预设的搜索范围为所述待编码单元进行运动估计。
可选的,所述的编码起始点的获取装置,还包括:编码代价计算单元以及起始点选取单元;
所述编码代价计算单元,用于在所述起始点为所述待编码单元进行运动估计之前,若获取的所述起始点的数目大于一,则计算各个所述起始点的编码代价;
所述起始点选取单元,用于选取编码代价低于预设的阈值的起始点作为与所述待编码单元对应的第一参考帧中的起始点。
可选的,所述的编码起始点的获取装置,还包括:起始点合并单元;
所述起始点合并单元,用于在所述计算各个所述起始点的编码代价之前,在已获取的所述起始点中将坐标相同的起始点进行合并。
在上述的实施例中,提供了一种编码起始点的获取方法以及一种编码起始点的获取装置,此外,本申请还提供了一种电子设备;所述电子设备实施例如下:
请参考图10,其示出了根据本申请的实施例提供的电子设备的示意图。
所述电子设备,包括:显示器1001;处理器1003;存储器1005;
所述存储器1005,用于存储视频编码程序,所述程序在被所述处理器读取执行时,执行如下操作:获取预测单元的运动矢量;获取当前帧中待编码单元的位置信息;在与所述待编码单元对应的第一参考帧中,获取与所述待编码单元的位置信息相同的位置;将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。

Claims (23)

1.一种编码起始点的获取方法,其特征在于,包括:
获取预测单元的运动矢量;
获取当前帧中待编码单元的位置信息;
在与所述待编码单元对应的第一参考帧中,获取与所述待编码单元的位置信息相同的位置;
获取所述预测单元与所述预测单元的参考帧之间的时间长度;根据所述预测单元与所述预测单元的参考帧之间的时间长度以及所述运动矢量,获取所述预测单元在单位时间内的偏移量;获取所述待编码单元与所述第一参考帧之间的时间长度;根据所述待编码单元与所述第一参考帧之间的时间长度以及所述预测单元在所述单位时间内的偏移量,获取所述待编码单元的运动矢量;在所述第一参考帧中,将所述位置根据所述待编码单元的运动矢量进行偏移,将偏移后的位置确定为所述待编码单元的起始点。
2.根据权利要求 1 所述的编码起始点的获取方法,其特征在于,所述预测单元,包括:
与所述待编码单元在空间上相邻的空间相邻已编码预测单元,以及与所述待编码单元在时间上相邻的时间相邻已编码预测单元。
3.根据权利要求 1 所述的编码起始点的获取方法,其特征在于,所述预测单元,还包括:
低分辨率图像中的预测单元、原始输入码流中的预测单元、低分辨率码流中的预测单元以及低码率码流中的预测单元。
4.根据权利要求 2 所述的编码起始点的获取方法,其特征在于,所述空间相邻已编码预测单元具有对应的第二参考帧;
所述时间相邻已编码预测单元具有对应的第三参考帧。
5.根据权利要求4 所述的编码起始点的获取方法,其特征在于,所述将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点,包括:
若所述运动矢量为所述时间相邻已编码预测单元的运动矢量,则获取所述时间相邻已编码预测单元与所述第三参考帧之间的第一时间长度;
根据所述第一时间长度以及所述运动矢量,获取所述已编码预测单元在单位时间内的偏移量;
获取所述待编码单元与所述第一参考帧之间的第二时间长度;
根据所述第二时间长度以及所述时间相邻已编码预测单元在所述单位时间内的偏移量,获取所述待编码单元的运动矢量。
6.根据权利要求 4 所述的编码起始点的获取方法,其特征在于,所述将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点,包括:
若所述运动矢量为所述空间相邻已编码预测单元的运动矢量,则获取所述空间相邻已编码预测单元与所述第二参考帧之间的第三时间长度;
根据所述第三时间长度以及所述运动矢量,获取所述已编码预测单元在单位时间内的偏移量;
获取所述待编码单元与所述第一参考帧之间的第二时间长度;
根据所述第二时间长度以及所述空间相邻已编码预测单元在所述单位时间内的偏移量,获取所述待编码单元的运动矢量。
7.根据权利要求 6 所述的编码起始点的获取方法,其特征在于,所述空间相邻已编码预测单元,至少包括如下已编码预测单元中的一个:
与所述待编码单元相邻的左边、左下边、左上边、上边以及右上边的已编码预测单元。
8.根据权利要求 1 - 7 任意一项所述的编码起始点的获取方法,其特征在于,在所述将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点的步骤之后,包括:
在所述起始点为所述待编码单元进行运动估计。
9.根据权利要求 8 所述的编码起始点的获取方法,其特征在于,在所述起始点为所述待编码单元进行运动估计,包括:
在所述起始点以预设的搜索范围为所述待编码单元进行运动估计。
10.根据权利要求 8 所述的编码起始点的获取方法,其特征在于,在所述起始点为所述待编码单元进行运动估计的步骤之前,包括:
若获取的所述起始点的数目大于一,则计算各个所述起始点的编码代价;
选取编码代价低于预设的阈值的起始点作为与所述待编码单元对应的第一参考帧中的起始点。
11.根据权利要求 10 所述的编码起始点的获取方法,其特征在于,在所述计算各个所述起始点的编码代价的步骤之前,包括:
在已获取的所述起始点中将坐标相同的起始点进行合并。
12.一种编码起始点的获取装置,其特征在于,包括:运动矢量获取单元、位置获取单元、位置获取单元以及起始点获取单元;
所述运动矢量获取单元,用于获取预测单元的运动矢量;
所述位置获取单元,用于获取当前帧中待编码单元的位置信息;
所述位置获取单元,用于在与所述待编码单元对应的第一参考帧中,获取与所述待编码单元的位置信息相同的位置;
所述起始点获取单元,用于获取所述预测单元与所述预测单元的参考帧之间的时间长度;根据所述预测单元与所述预测单元的参考帧之间的时间长度以及所述运动矢量,获取所述预测单元在单位时间内的偏移量;获取所述待编码单元与所述第一参考帧之间的时间长度;根据所述待编码单元与所述第一参考帧之间的时间长度以及所述预测单元在所述单位时间内的偏移量,获取所述待编码单元的运动矢量;在所述第一参考帧中,将所述位置根据所述待编码单元的运动矢量进行偏移,将偏移后的位置确定为所述待编码单元的起始点。
13.根据权利要求 12 所述的编码起始点的获取装置,其特征在于,所述运动矢量获取单元,具体用于获取与所述待编码单元在空间上相邻的空间相邻已编码预测单元,以及与所述待编码单元在时间上相邻的时间相邻已编码预测单元。
14.根据权利要求 12 所述的编码起始点的获取装置 ,其特征在于,所述运动矢量获取单元,还用于获取低分辨率图像中的预测单元、原始输入码流中的预测单元、低分辨率码流中的预测单元以及低码率码流中的预测单元的运动矢量。
15.根据权利要求 13 所述的编码起始点的获取装置,其特征在于,所述空间相邻已编码预测单元具有对应的第二参考帧;
所述时间相邻已编码预测单元具有对应的第三参考帧。
16.根据权利要求 15 所述的编码起始点的获取装置,其特征在于,所述起始点获取单元,包括:第一时间长度获取子单元、偏移量获取子单元、第二时间长度获取子单元以及运动矢量获取子单元;
所述第一时间长度获取子单元,用于若所述运动矢量为所述时间相邻已编码预测单元的运动矢量,则获取所述时间相邻已编码预测单元与所述第三参考帧之间的第一时间长度;
所述偏移量获取子单元,用于根据所述第一时间长度以及所述运动矢量,获取所述已编码预测单元在单位时间内的偏移量;
所述第二时间长度获取子单元,用于获取所述待编码单元与所述第一参考帧之间的第二时间长度;
所述运动矢量获取子单元,用于根据所述第二时间长度以及所述时间相邻已编码预测单元在所述单位时间内的偏移量,获取所述待编码单元的运动矢量。
17.根据权利要求 15 所述的编码起始点的获取装置,其特征在于,所述起始点获取单元,包括:第三时间长度获取子单元、偏移量获取子单元、第二时间长度获取子单元以及运动矢量获取子单元;
所述第三时间长度获取子单元,用于若所述运动矢量为所述空间相邻已编码预测单元的运动矢量,则获取所述空间相邻已编码预测单元与所述第二参考帧之间的第三时间长度;
所述偏移量获取子单元,用于根据所述第三时间长度以及所述运动矢量,获取所述已编码预测单元在单位时间内的偏移量;
所述第二时间长度获取子单元,用于获取所述待编码单元与所述第一参考帧之间的第二时间长度;
所述运动矢量获取子单元,用于根据所述第二时间长度以及所述空间相邻已编码预测单元在所述单位时间内的偏移量,获取所述待编码单元的运动矢量。
18.根据权利要求 17 所述的编码起始点的获取装置,其特征在于,所述运动矢量获取单元,具体用于至少从与所述待编码单元相邻的左边、左下边、左上边、上边以及右上边的已编码预测单元。
19.根据权利要求 12 - 18 任意一项所述的编码起始点的获取装置,其特征在于,还包括:运动估计单元;
所述运动估计单元,用于在所述将所述位置根据所述运动矢量进行偏移,在所述第一参考帧中确定所述待编码单元的起始点之后,在所述起始点为所述待编码单元进行运动估计。
20.根据权利要求 19 所述的编码起始点的获取装置,其特征在于,所述运动估计单元,具体用于在所述起始点以预设的搜索范围为所述待编码单元进行运动估计。
21.根据权利要求 20 所述的编码起始点的获取装置,其特征在于,还包括:编码代价计算单元以及起始点选取单元;
所述编码代价计算单元,用于在所述起始点为所述待编码单元进行运动估计之前,若获取的所述起始点的数目大于一,则计算各个所述起始点的编码代价;
所述起始点选取单元,用于选取编码代价低于预设的阈值的起始点作为与所述待编码单元对应的第一参考帧中的起始点。
22.根据权利要求 21 所述的编码起始点的获取装置,其特征在于,还包括:起始点合并单元;
所述起始点合并单元,用于在所述计算各个所述起始点的编码代价之前,在已获取的所述起始点中将坐标相同的起始点进行合并。
23.一种电子设备,其特征在于,所述电子设备包括:
显示器;
处理器;
存储器,用于存储视频编码程序,所述程序在被所述处理器读取执行时,执行如下操作:获取预测单元的运动矢量;获取当前帧中待编码单元的位置信息;在与所述待编码单元对应的第一参考帧中,获取与所述待编码单元的位置信息相同的位置;获取所述预测单元与所述预测单元的参考帧之间的时间长度;根据所述预测单元与所述预测单元的参考帧之间的时间长度以及所述运动矢量,获取所述预测单元在单位时间内的偏移量;获取所述待编码单元与所述第一参考帧之间的时间长度;根据所述待编码单元与所述第一参考帧之间的时间长度以及所述预测单元在所述单位时间内的偏移量,获取所述待编码单元的运动矢量;在所述第一参考帧中,将所述位置根据所述待编码单元的运动矢量进行偏移,将偏移后的位置确定为所述待编码单元的起始点。
CN201611004301.7A 2016-11-15 2016-11-15 一种编码起始点的获取方法以及装置 Active CN108076347B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611004301.7A CN108076347B (zh) 2016-11-15 2016-11-15 一种编码起始点的获取方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611004301.7A CN108076347B (zh) 2016-11-15 2016-11-15 一种编码起始点的获取方法以及装置

Publications (2)

Publication Number Publication Date
CN108076347A CN108076347A (zh) 2018-05-25
CN108076347B true CN108076347B (zh) 2021-11-26

Family

ID=62162391

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611004301.7A Active CN108076347B (zh) 2016-11-15 2016-11-15 一种编码起始点的获取方法以及装置

Country Status (1)

Country Link
CN (1) CN108076347B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117956182A (zh) 2018-06-04 2024-04-30 华为技术有限公司 获取运动矢量的方法和装置
CN108810505A (zh) * 2018-06-06 2018-11-13 合肥康之恒机械科技有限公司 一种动态目标高效跟踪图像数据优化传输方法及系统
CN108806146A (zh) * 2018-06-06 2018-11-13 合肥嘉仕诚能源科技有限公司 一种安防监控动态目标锁定追踪方法及系统
CN108924550A (zh) * 2018-06-19 2018-11-30 复旦大学 一种多路同分辨率视频转码方法
CN110876059B (zh) 2018-09-03 2022-06-10 华为技术有限公司 运动矢量的获取方法、装置、计算机设备及存储介质
CN112866710B (zh) * 2019-11-27 2022-07-26 腾讯科技(深圳)有限公司 一种编码单元处理方法和相关装置
CN111787319B (zh) * 2020-07-22 2021-09-14 腾讯科技(深圳)有限公司 一种视频信息处理方法、多媒体信息处理方法及装置
CN111885389B (zh) * 2020-07-24 2021-08-24 腾讯科技(深圳)有限公司 一种多媒体数据编码方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101917619A (zh) * 2010-08-20 2010-12-15 浙江大学 一种多视点视频编码快速运动估计方法
CN102263951A (zh) * 2011-07-06 2011-11-30 北京航空航天大学 一种快速的分形视频压缩与解压缩方法
CN104519363A (zh) * 2013-09-26 2015-04-15 汤姆逊许可公司 视频编/解码方法、对应计算机程序及视频编/解码设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3791922B2 (ja) * 2002-09-06 2006-06-28 富士通株式会社 動画像復号化装置及び方法
WO2011127964A2 (en) * 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus for intra predicting a block, apparatus for reconstructing a block of a picture, apparatus for reconstructing a block of a picture by intra prediction

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101917619A (zh) * 2010-08-20 2010-12-15 浙江大学 一种多视点视频编码快速运动估计方法
CN102263951A (zh) * 2011-07-06 2011-11-30 北京航空航天大学 一种快速的分形视频压缩与解压缩方法
CN104519363A (zh) * 2013-09-26 2015-04-15 汤姆逊许可公司 视频编/解码方法、对应计算机程序及视频编/解码设备

Also Published As

Publication number Publication date
CN108076347A (zh) 2018-05-25

Similar Documents

Publication Publication Date Title
CN108076347B (zh) 一种编码起始点的获取方法以及装置
US10771808B2 (en) Video encoder and decoder for predictive partitioning
US11902563B2 (en) Encoding and decoding method and device, encoder side apparatus and decoder side apparatus
US8229233B2 (en) Method and apparatus for estimating and compensating spatiotemporal motion of image
US20110228853A1 (en) Moving image encoding and decoding system
JP2013543318A (ja) 低複雑度の動きベクトルを導出するシステム及び方法
JP2000134585A (ja) 動きベクトル決定方法、画像信号のフレーム数変換方法および回路
KR102162856B1 (ko) 비디오 모션 보상을 위한 장치 및 방법
JP2006270435A (ja) 動画像符号化装置
US6317460B1 (en) Motion vector generation by temporal interpolation
CN108989799B (zh) 一种编码单元参考帧的选择方法、装置及电子设备
US20230042575A1 (en) Methods and systems for estimating motion in multimedia pictures
CN111642141A (zh) 分辨率自适应视频编码
JP5441812B2 (ja) 動画像符号化装置、及びその制御方法
CN108401185B (zh) 参考帧选择方法、视频转码方法、电子设备和存储介质
US20120020410A1 (en) Method and Apparatus for Motion Estimation for Video Processing
US20130148733A1 (en) Motion estimation apparatus and method
CN107645663B (zh) 一种运动估计搜索范围的确定方法以及装置
CN102893605A (zh) 码量控制方法及装置
KR102226693B1 (ko) 영상에 대한 고속 움직임 예측 방법 및 장치
JP2007228101A (ja) 動画像符号化装置
US20110085604A1 (en) Image processing device, system and method
JP6942504B2 (ja) 符号化装置、撮像装置、符号化方法、及びプログラム
JP2009296328A (ja) 符号化ピクチャタイプ決定方法,装置,そのプログラムおよびその記録媒体
KR101650056B1 (ko) 복수 참조에 의한 움직임 예측을 이용한 부호화 방법 및 장치, 그리고 복수 참조에 의한 움직임 예측을 이용한 복호화 방법 및 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1255825

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant