CN109495746A - 一种基于运动矢量调整的视频编码方法 - Google Patents
一种基于运动矢量调整的视频编码方法 Download PDFInfo
- Publication number
- CN109495746A CN109495746A CN201811318130.4A CN201811318130A CN109495746A CN 109495746 A CN109495746 A CN 109495746A CN 201811318130 A CN201811318130 A CN 201811318130A CN 109495746 A CN109495746 A CN 109495746A
- Authority
- CN
- China
- Prior art keywords
- resolution
- encoded
- video frame
- frame
- information
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/154—Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请涉及一种基于运动矢量调整的视频编码方法,采用本发明提供的方法,在获取到待编码视频帧后,由于不同的待编码视频帧存在分辨率不同的情况。选中一个表示目标分辨率的目标运动矢量分辨率信息,继而确定待编码视频帧中各待编码块各自对应的、且在该目标分辨率下的目标运动矢量和预测运动矢量,这样,便可根据相同分辨率下的目标运动矢量和预测运动矢量的运动残差,得到准确的编码数据,提高编码的准确度,进而提高编码图像的质量。
Description
技术领域
本申请涉及视频压缩技术领域,尤其涉及一种基于运动矢量调整的视频编码方法。
背景技术
当前,视频应用于各个领域,如移动通信、网络监控、网络电视等。随着硬件性能和屏幕分辨率的提高,用户对高清视频的需求日益强烈。传统的编码器对视频帧无区分地进行编码,可能出现某些场景视频质量差的问题,对于所有视频帧不加区分地进行编码时,存在部分视频帧质量差的问题。
发明内容
本发明实施例提供了一种基于运动矢量调整的视频编码方法,所述方法包括如下步骤:
一种基于运动矢量调整的视频编码方法,其特征在于,包括:
获取原始视频帧;
获取所述原始视频帧对应的分辨率调整模式;
根据所述分辨率调整模式对所述原始视频帧进行处理,得到待编码视频帧;所述分辨率调整模式为原分辨率模式或采样模式;
在选中的目标运动矢量分辨率信息所表示的目标分辨率下,确定所述待编码视频帧中各待编码块各自对应的目标运动矢量;
获取各所述待编码块各自对应的、且在所述目标分辨率下的预测运动矢量;
根据各所述目标运动矢量和对应的所述预测运动矢量间的运动残差,得到待编码视频帧的编码数据;所述编码数据包括表示所述目标分辨率的标识信息;
根据所述待编码视频帧所对应的原始视频帧的原始分辨率确定第一运动运动矢量分辨率信息,根据当前待编码视频帧的当前分辨率确定第二运动矢量分辨率信息;
确定所述待编码视频帧的参考帧;
分别获取与所述参考帧对应的在第一运动矢量分辨率信息所表示的分辨率下的编码代价,和在第二运动矢量分辨率信息所表示的分辨率下的编码代价;
根据获取的各所述编码代价,从所述第一运动运动矢量分辨率信息和所述第二运动矢量分辨率信息中,选取目标运动矢量分辨率信息;
确定所述待编码视频帧对应的在第一运动矢量分辨率信息所表示的分辨率下的编码代价,及在第二运动矢量分辨率信息所表示的分辨率下的编码代价;
根据所述编码代价,从所述第一运动运动矢量分辨率信息和所述第二运动矢量分辨率信息中,选取目标运动矢量分辨率信息。
本发明提供了一种基于运动矢量调整的视频编码方法,采用本发明,在获取到待编码视频帧后,由于不同的待编码视频帧存在分辨率不同的情况。选中一个表示目标分辨率的目标运动矢量分辨率信息,继而确定待编码视频帧中各待编码块各自对应的、且在该目标分辨率下的目标运动矢量和预测运动矢量,这样,便可根据相同分辨率下的目标运动矢量和预测运动矢量的运动残差,得到准确的编码数据,提高编码的准确度,进而提高编码图像的质量。
具体实施方式
本发明实施例,提供了一种基于运动矢量调整的视频编码方法。所述方法具体包括如下步骤:
步骤1,获取待编码视频帧。
其中,待编码视频帧可以是对输入的原始视频帧进行处理后得到的视频帧;也可以直接是输入的原始视频帧。不同的待编码视频帧存在分辨率不同的情况,表示不同的待编码视频帧的分辨率可以相同也可以不同。
输入的原始视频帧是构成视频的基本单位。一个视频对应一个或多个视频帧序列。一个视频帧序列可包括多帧原始视频帧。一个视频帧序列也可包括多个视频帧组,一个视频帧组包括多帧原始视频帧。原始视频帧可以是计算机设备通过内置的摄像头或者外部连接的摄像头实时采集的视频帧;也可以是其他计算机设备传递至本地的视频所对应的视频帧。
当待编码视频帧直接为输入的原始视频帧时,若输入的各原始视频帧的分辨率一致,那么此时不同的待编码视频帧的分辨率相同。若输入的各原始视频帧存在分辨率不同的情况,那么此时不同的待编码视频帧也存在分辨率不同的情况。
当待编码视频帧是对输入的原始视频帧按某种分辨率调整模式进行处理后得到的视频帧时,由于对原始视频帧的分辨率调整模式可能不同(例如不同的采样比例等),那么处理得到的待编码视频帧也存在分辨率不同的情况。。这样,处理得到的待处理视频帧的分辨率不同。其中,采用比例为采样后的分辨率除以采样前的分辨率得到的比值。下采样时,采样比例小于1,上采样时采样比例大于1,当采样比例为1时,不改变分辨率。
在获取到一帧待编码视频帧并编码得到该待编码视频帧的编码数据后,继续获取新的一帧待编码视频帧进行编码,直至对所有的待编码视频帧完成编码。其中,计算机设备在对待编码视频帧进行编码时,可多帧待编码视频帧并行编码。
在对一帧待编码视频帧进行编码时,也包括一个循环的过程。在对该待编码视频帧中的一个待编码块完成编码后,继续对下一个待编码块进行编码,直至对该待编码视频帧所有的待编码块编码完成。其中,计算机设备在对待编码块进行编码时,可多个待编码块并行编码。
步骤2,在选中的目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量。
分辨率信息是与分辨率相关的数据。分辨率信息具体可以是分辨率本身或者采样比例等。,
运动矢量是视频编码中待编码块相对于该待编码块的参考块的位移。待编码块的参考块是在对待编码块进行编码时所要参考的对象。运动矢量用于在对待解码块进行解码时寻找该待解码块的参考块,以重建待解码块。目标运动矢量即为在目标分辨率下的运动矢量。
运动矢量所对应的分辨率表示运动矢量的单位所对应的分辨率。比如,对于一个待编码块,该待编码块的运动矢量所对应的分辨率为待编码视频帧的分辨率时,该运动矢量的单位1表示待编码块偏移了在待编码视频帧的分辨率上的n个像素(n在H.264框架下为1/4)。目标运动矢量分辨率信息是作为目标的运动矢量分辨率信息。目标运动矢量分辨率信息所表示的分辨率即为目标分辨率。
可为当前获取的待编码视频帧选择目标运动矢量分辨率信息;也可沿用计算机设备为待编码视频帧所在的视频帧组选择的目标运动矢量分辨率信息等。可以理解,本发明的实施例中不对选择目标运动矢量分辨率信息这个步骤的作用范围进行限定,可以是组级或者帧级等。
可预先设置多个预设运动矢量分辨率信息,在需要选择目标运动矢量分辨率信息时,便可从这些预设运动矢量分辨率信息中选择目标运动矢量分辨率信息。
待编码视频帧中各待编码块的参考块所在的参考帧,根据预测类型的不同而不同。待编码视频帧可以是I帧、P帧或者B帧。其中I帧为帧内预测帧,P帧为前向预测帧,B帧为双向预测帧。那么,各待编码块的参考块所在参考帧可为本视频帧、前向参考帧、后向参考帧或双向参考帧。参考帧的数量可为一个或多个。参考帧是对待编码视频帧进行编码时所需参考的视频帧。可以理解,参考帧是待编码视频帧之前已编码得到的编码数据进行重建得到的视频帧。
对于某一待编码视频帧上的待编码块,在参考帧上搜索到该待编码块的参考块后,可以直接在选中的目标运动矢量分辨率信息所表示的目标分辨率下计算目标运动矢量,也可以在该待编码视频帧的当前分辨率下计算待编码块的运动矢量。如果在该待编码视频帧的当前分辨率下计算待编码块的运动矢量,那么,计算机设备可将选中的目标运动矢量分辨率信息所表示的目标分辨率,与待编码视频帧的分辨率进行比较。当两者一致时,则在待编码视频帧的分辨率下的运动矢量,即为在目标分辨率下的目标运动矢量;当两者不一致时,计算机设备则将在待编码视频帧的分辨率下的运动矢量,变换为在目标分辨率下的目标运动矢量。
步骤3,获取各待编码块各自对应的、且在目标分辨率下的预测运动矢量。
其中,预测运动矢量是预测的运动矢量。可以理解,在对待编码视频帧进行编码时,直接对待编码视频帧中各待编码块的运动矢量进行编码,数据量较大。为了降低编码数据的数据量(比特数),可以对待编码视频帧中各待编码块的运动矢量进行预测,得到各编码块的预测运动矢量,从而对各待编码块的运动矢量和预测运动矢量的差值进行编码。
在本发明的实施例中,不限定预测运动矢量的计算方式。通常情况下,采用已编码块的运动矢量来运算得到待编码块的预测运算矢量。举例说明,可以将当前待编码块的多个相邻已编码块对应的运动矢量的均值,作为当前待编码块的预测运动矢量;或者,可以将参考帧中与当前待编码块在图像位置上对应的图像块的运动矢量,作为当前待编码块的预测运动矢量等。
预测运动矢量是通过已编码块的运动矢量来运算得到的,那么,预测运动矢量与已编码块的运动矢量的分辨率一致,而已编码块的运动矢量对应的分辨率是对应编码该已编码块时,选中的目标运动矢量分辨率信息所表示的目标分辨率,也就是说,预测运动矢量也是对应这个目标分辨率。
对于当前待编码块,选中的目标运动矢量分辨率信息所表示的目标分辨率为第一目标分辨率;当前待编码块对应的预测运动矢量所选自的已编码块在编码时,选中的目标运动矢量分辨率信息所表示的目标分辨率为第二目标分辨率。
当第一目标分辨率与第二目标分辨率一致时,则预测运动矢量也是对应当前选中的目标运动矢量分辨率信息所表示的目标分辨率,计算机设备即可直接获取当前待编码块对应的、且在第二目标分辨率下的预测运动矢量。
当第一目标分辨率与第二目标分辨率不一致时,则预测运动矢量不是对应当前选中的目标运动矢量分辨率信息所表示的目标分辨率,计算机设备需要将当前待编码块对应的预测运动矢量变换至第二目标分辨率下。
可以理解,在一组待编码视频帧下,或者在一帧待编码视频帧下,各待编码块的目标运动矢量与预测运动矢量在统一的分辨率下,便于计算再对目标运动矢量与预测运动矢量进行运算,而且各待编码块所对应的运算结果也均在该统一的分辨率下。这样,计算机设备的编码器在对各待编码块所对应的运算结果进行编码时,不会因为不同待编码块所对应的运算结果的分辨率不同,需要频繁调整编码器的参数影响编码质量,又可以提高编码效率。
编码器在对不同的分辨率下的数据进行编码时,需要调整编码器的参数。由于在本发明的实施例中,不同的所述待编码视频帧存在分辨率不同的情况,而且对于同一帧待编码视频帧的不同待编码块的用于编码的数据也存在分辨率不同的情况。因此,会在编码一组视频帧组或者编码一帧视频帧时,选中一个目标运动矢量分辨率信息,将用于编码的数据统一至该目标运动矢量分辨率信息所表示的目标分辨率下,这样既可以保证编码质量,又可以提高编码效率。
步骤4,根据各目标运动矢量和对应的预测运动矢量间的运动残差,得到待编码视频帧的编码数据;编码数据包括表示目标分辨率的标识信息。
其中,运动残差是运动矢量和预测运动矢量的差值。具体地,计算机设备可对当前待编码视频帧中的每个待编码块,均根据每个待编码块的目标运动矢量和预测运动矢量计算运动残差,再对每个待编码块的运动残差进行编码得到编码数据。这里的编码过程可以包括变换、量化及熵编码中的至少一个。可以理解,编码数据是对待编码视频帧进行编码得到的数据。编码数据可以不仅是只对运动残差进行编码得到的。编码得到编码数据的数据还可以包括像素残差。像素残差是待编码块的实际像素值与预测像素值的差值。预测像素值是根据待编码块的参考块的实际像素值预测得到的。
编码数据还包括标识信息,使解码端可以获取得到编码数据中的运动残差对应的目标分辨率后准确解码。在本实施例中,编码数据中至少包括表示目标分辨率的标识信息。表示目标分辨率的标识信息可以是目标运动矢量分辨率信息或者标志位等。类似于前面描述的,不对选择目标运动矢量分辨率信息这个步骤的作用范围进行限定,可以是组级或者帧级等;那么表示目标分辨率的标识信息也可以相应的是组级或者帧级等。
在其他实施例中,编码数据还可包括表示其他语义的标识信息。比如存在对原始视频帧按分辨率调整模式得到待编码视频帧的步骤时,编码数据中可包括表示分辨率调整模式的标识信息。
表示目标分辨率的标识信息可以是标志位,具体可以是语法元素。当语法元素取不同的值时,代表不同的运动矢量分辨率信息。计算机设备可事先建立运动矢量分辨率信息与语法元素值的映射关系,这样在编码时计算机设备即可将与目标运动矢量分辨率信息存在映射关系的语法元素值加入编码数据中。
这里不限定将表示目标分辨率的标识信息加入编码数据的时机。而且,在对待编码视频帧进行编码时,可在对当前待编码块编码完成时即得到了该编码块的编码数据,也可以是在各编码块编码完成后统一得到编码数据。
在获取到待编码视频帧后,由于不同的待编码视频帧存在分辨率不同的情况。那么,在这种情况下,选中一个表示目标分辨率的目标运动矢量分辨率信息,继而确定待编码视频帧中各待编码块各自对应的、且在该目标分辨率下的目标运动矢量和预测运动矢量,这样,根据相同分辨率下的目标运动矢量和预测运动矢量的运动残差,能够得到准确的编码数据,提高编码的准确度,进而提高编码图像的质量。此外,根据相同分辨率下的目标运动矢量和预测运动矢量的运动残差来得到编码数据,减小了编码数据的数据量;而且编码数据包括表示目标分辨率的标识信息,这样在解码时,也可方便的根据该标识信息进行编码数据的分辨率调整处理。
还可事先配置分辨率配置信息。这样,计算机设备可根据待编码视频帧的分辨率配置信息,确定目标运动矢量分辨率信息;在目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量;获取各待编码块各自对应的、且在目标分辨率下的预测运动矢量;根据各目标运动矢量和对应的预测运动矢量间的运动残差,得到编码数据。
处理运动矢量时所采用的分辨率信息的类别,可以是原始分辨率信息这一类别或当前分辨率信息这一类别。可以理解,原始分辨率信息是原始视频帧的分辨率信息。当前分辨率信息,是当前待编码视频帧的分辨率信息。可以理解,当分辨率信息确定方式所确定的分辨率信息的类别为原始分辨率信息时,则可以将原始分辨率信息作为目标运动矢量分辨率信息。当分辨率信息确定方式所确定的分辨率信息的类别为当前分辨率信息时,则可以将待编码视频帧的当前分辨率信息作为目标运动矢量分辨率信息。
由于各待编码视频帧存在分辨率不同的情况,所以当前分辨率并非固定的分辨率,当分辨率信息确定方式所确定的分辨率信息的类别为当前分辨率信息时,不同待编码视频帧根据相应分辨率信息确定方式,所确定的目标运动矢量分辨率信息可以不同。
可在选中的目标运动矢量分辨率信息所表示的目标分辨率下,确定待编码视频帧中各待编码块各自对应的目标运动矢量后,直接根据对各目标运动矢量进行编码,得到待编码视频帧的编码数据。
从第一运动运动矢量分辨率信息和第二运动矢量分辨率信息中,选取目标运动矢量分辨率信息;其中,第一运动矢量分辨率信息所表示的分辨率,是待编码视频帧所对应的原始视频帧的原始分辨率;第二运动矢量分辨率信息所表示的分辨率,是待编码视频帧的当前分辨率。
第一运动运动矢量分辨率信息,具体可以是原始视频帧的原始分辨率,或者采样比例为1。第二运动运动矢量分辨率信息,具体可以是待编码视频帧的当前分辨率,或者是采样得到待编码视频帧的采样比例。
当视频编码方法中包括对原始视频帧按照确定的分辨率调整模式处理得到待编码视频帧的步骤时,待编码视频帧的分辨率可以是原始视频帧的分辨率,或比原始视频帧的分辨率小的分辨率。也就是不同的待编码视频帧存在分辨率不同的情况。而在编码待编码视频帧时选择目标运动矢量分辨率信息,是为了在计算待编码块的运动残差时,将得到运动残差的运动矢量和预测运动矢量统一到相同的分辨率下,来保证运动残差的准确性与控制运动残差的数据量。
一种是原始视频帧的分辨率,也是就原始分辨率;另一种是待编码视频帧的分辨率,也就是当前分辨率。计算机设备在选择目标运动矢量分辨率信息时,即可从这两种分辨率的分辨率信息中选取一种。也就是说,要么固定地在原始分辨率下进行数据运算,要么固定地在当前分辨率下进行数据运算。需要理解的是,由于不同的待编码视频帧存在分辨率不同的情况,那么当前分辨率并非固定的分辨率。
从视频编码过程中存在的分辨率信息中,选取目标运动矢量分辨率信息,既避免了需要另外设置分辨率信息带来的工作量,又可以在计算待编码块的运动残差时,将得到运动残差的运动矢量和预测运动矢量统一到相同的分辨率下,来保证运动残差的准确性与控制运动残差的数据量。
当目标运动矢量分辨率信息是从第一运动运动矢量分辨率信息和第二运动矢量分辨率信息中选取时,那么在编码得到的编码数据中包括的表示目标分辨率的标识信息,可以即为原始分辨率和当前分辨率本身,或者标志位(语法元素)。
从第一运动运动矢量分辨率信息和第二运动矢量分辨率信息中,选取目标运动矢量分辨率信息,包括:确定待编码视频帧的参考帧;分别获取与参考帧对应的在第一运动矢量分辨率信息所表示的分辨率下的编码代价,和在第二运动矢量分辨率信息所表示的分辨率下的编码代价;根据获取的各编码代价,从第一运动运动矢量分辨率信息和第二运动矢量分辨率信息中,选取目标运动矢量分辨率信息。
编码代价与编码得到的编码数据的比特数相关。编码数据的比特数越大,编码代价越大。可以理解,编码代价还可与其他数据相关,本发明实施例在此不做限定。这里编码数据的比特数,具体可以是熵编码的比特数。
在编码当前待编码视频帧时,可先根据编码算法确定当前对应的编码帧预测类型,在帧内预测类型下,固定地选取第一运动运动矢量分辨率信息为目标运动矢量分辨率信息,或者,固定地选取第二运动运动矢量分辨率信息为目标运动矢量分辨率信息。
在帧间预测类型下,则确定待编码视频帧的参考帧,分别获取与参考帧对应的在第一运动矢量分辨率信息所表示的分辨率下的第一编码代价,和在第二运动矢量分辨率信息所表示的分辨率下的第二编码代价。当第一编码代价小于第二编码代价时,则选取第一运动运动矢量分辨率信息为目标运动矢量分辨率信息;当第二编码代价小于第一编码代价时,则选取第二运动运动矢量分辨率信息为目标运动矢量分辨率信息。
在没有参考帧时,固定地选取第一运动运动矢量分辨率信息为目标运动矢量分辨率信息,或者,固定地选取第二运动运动矢量分辨率信息为目标运动矢量分辨率信息。
确定待编码视频帧的对应的在第一运动矢量分辨率信息所表示的分辨率下的编码代价,和在第二运动矢量分辨率信息所表示的分辨率下的编码代价;其中,确定的编码代价,用于指示以待编码视频帧为参考帧的待编码视频帧在编码时,根据确的编码代价,从第一运动运动矢量分辨率信息和第二运动矢量分辨率信息中,选取目标运动矢量分辨率信息。
在对当前待编码视频帧进行编码时,也会分别确定在第一运动矢量分辨率信息所表示的分辨率下的编码代价,和在第二运动矢量分辨率信息所表示的分辨率下的编码代价。但是,不需要将两者情况下的编码数据均写入码流中,仅将选中的目标运动矢量分辨率信息所表示的分辨率的编码数据写入码流中。而对于当前待编码视频帧确定的编码代价,则用于指示以当前待编码视频帧为参考帧的后续待编码视频帧在编码时,从第一运动运动矢量分辨率信息和第二运动矢量分辨率信息中,选取对应较小的编码代价的运动运动矢量分辨率信息作为目标运动矢量分辨率信息。
当前待编码视频帧选择的目标运动矢量分辨率信息,由当前待编码视频帧的参考帧在两种分辨率信息下的编码代价决定。当前待编码视频帧在两种分辨率信息下的编码代价,决定以当前待编码视频帧为参考帧的后续待编码视频帧选择的目标运动矢量分辨率信息。在当前待编码视频帧没有参考帧时,或为帧内预测帧时,则按照预先设定的:固定地选取第一运动运动矢量分辨率信息为目标运动矢量分辨率信息,或者,固定地选取第二运动运动矢量分辨率信息为目标运动矢量分辨率信息。
以当前待编码视频帧为参考帧,表示以当前待编码视频帧的编码数据重建的视频帧作为参考帧。
以按视频帧级决策选择的目标运动矢量分辨率信息,也可按视频帧组级决策选择的目标运动矢量分辨率信息。当前待编码视频帧选择的目标运动矢量分辨率信息,由当前待编码视频帧所在组的首帧视频帧的参考帧在两种分辨率信息下的编码代价决定。
在一个实施例中,对待编码视频帧中各待编码块,分别选取各待编码块各自相应的目标运动矢量分辨率信息,包括:根据本地硬件信息和/或各待编码块各自相应的运动矢量和预测运动矢量的数值,分别选取各待编码块各自相应的目标运动矢量分辨率信息。
对于待编码视频帧根据参考帧在不同分辨率信息下的编码代价来选择目标分辨率,可以将得到运动残差的运动矢量和预测运动矢量统一到相同、且合适的分辨率下,来保证运动残差的准确性与控制运动残差的数据量,从而提高编码质量。
可以根据进行编码的设备的计算能力得到目标运动矢量分辨率信息。例如,当进行编码的设备只能对整数进行运算或者当数值为小数时运算耗时长,则目标运动矢量单位对应的分辨率可以为原始视频帧对应的原始分辨率,当进行编码的设备能够快速进行小数的运算,目标运动矢量单位对应的分辨率可以为待编码视频帧对应的分辨率。
在待编码视频帧的当前分辨率下,确定待编码视频帧中各待编码块各自对应的初始运动矢量;当目标运动矢量分辨率信息所表示的目标分辨率与待编码视频帧的当前分辨率不一致时,则将初始运动矢量转换为在目标分辨率下的目标运动矢量。
待编码块的初始运动矢量,是在待编码块所在待编码视频帧的当前分辨率下的运动矢量。
对于某一待编码视频帧上的待编码块,在参考帧上搜索到该待编码块的参考块后,计算机设备可在该待编码视频帧的分辨率下计算该待编码块的运动矢量。也就是说,此时计算得到的运动矢量的单位对应的分辨率即为该待编码视频帧的当前分辨率,此时计算得到的运动矢量即为初始运动矢量。
可将目标运动矢量分辨率信息所表示的目标分辨率与待编码视频帧的当前分辨率进行比较,当两个分辨率一致时,则初始运动矢量的单位对应的分辨率即为目标分辨率,也就不需要对初始运动矢量作变换。
当两个分辨率不一致时,则根据表示待编码视频帧的当前分辨率的分辨率信息和目标运动矢量分辨率信息,确定矢量变换参数;按照矢量变换参数,将初始运动矢量转换为在目标分辨率下的目标运动矢量。
矢量变换参数用于对运动矢量进行变换。当得到初始运动矢量后,可以将初始运动矢量与矢量变换参数相乘,得到的乘积即为目标运动矢量。
由于分辨率信息可以是分辨率或者采样比例两种类型的数据,那么矢量变换参数具体可以是:相同类型下的目标运动矢量分辨率信息,与表示待编码视频帧的当前分辨率的分辨率信息的比例。
在目标运动矢量分辨率信息所表示的目标分辨率与待编码视频帧的当前分辨率不一致,将当前分辨率下的初始运动矢量调整到目标分辨率下,以在后续计算运动残差时,与用于计算运动残差的另一参数,也就是预测运动矢量,统一到相同的分辨率下,来保证运动残差的准确性与控制运动残差的数据量。
在编码待编码视频帧中各待编码块时,则对于当前待编码块,确定当前待编码块所对应参考块所在的参考帧;在参考帧中,确定与当前待编码块在图像位置上对应的图像块;获取图像块所对应的、且在目标分辨率下的目标运动矢量,作为当前待编码块的预测运动矢量。
在根据预设的参考帧选取策略,选取待编码视频帧的参考帧后,可在参考该参考帧对待编码视频帧中各待编码块进行编码时,对于当前待编码块,在参考帧中搜索与当前待编码块匹配的参考块。在搜索到与当前待编码块匹配的参考块后,继而确定该参考块所在的参考帧。
可在确定的该参考帧中,确定与当前待编码块在图像位置上对应的图像块,获取该图像块所对应的、且在目标分辨率下的目标运动矢量,作为当前待编码块的预测运动矢量。图像位置对应具体可以是图像像素对应,或者是图像坐标对应。
由于参考帧是待编码视频帧之前已编码得到的编码数据进行重建得到的视频帧,那么若重建该参考帧的编码数据中存在目标分辨率下的、且与该图像块对应的运动矢量,也就是目标运动矢量时,即可直接获取该目标运动矢量作为当前待编码块的预测运动矢量。若重建该参考帧的编码数据中不存在目标分辨率下的、且与该图像块对应的运动矢量时,则将重建该参考帧的数据中与该图像块对应的运动矢量转换为在目标分辨率下的目标运动矢量。
重建参考帧的编码数据中是否存在目标分辨率下的、且与参考帧的图像块对应的运动矢量,与编码重建该参考帧的编码数据时,选取的目标运动矢量分辨率信息有关。当编码重建该参考帧的编码数据时选取的目标运动矢量分辨率信息,与当前选取的目标运动矢量分辨率信息均表示相同的目标分辨率时,则重建参考帧的编码数据中存在目标分辨率下的、且与参考帧的图像块对应的运动矢量;当编码重建该参考帧的编码数据时选取的目标运动矢量分辨率信息,与当前选取的目标运动矢量分辨率信息均表示不同的目标分辨率时,则重建参考帧的编码数据中不存在目标分辨率下的、且与参考帧的图像块对应的运动矢量。
目标运动矢量分辨率信息所表示的分辨率,是待编码视频帧的当前分辨率。获取图像块对应的、且在目标分辨率下的目标运动矢量,作为当前待编码块的预测运动矢量,包括:获取图像块的初始运动矢量;图像块的初始运动矢量,对应参考帧选取的目标运动矢量分辨率信息所表示的目标分辨率;当图像块的初始运动矢量对应的分辨率不是当前分辨率时,则将图像块的初始运动矢量转换为在当前分辨率下的目标运动矢量后,作为当前待编码块的预测运动矢量。
由于参考帧是待编码视频帧之前已编码得到的编码数据进行重建得到的视频帧,在编码重建参考帧的编码数据时也会经过S504至S508的步骤。那么,对于重建参考帧的编码数据所编码自的、且编码在前的待编码视频帧而言,在编码时,也会从第一运动运动矢量分辨率信息和第二运动矢量分辨率信息中选取目标运动矢量分辨率信息。
在以参考帧中的图像块的运动矢量作为当前待编码帧的待编码块的预测运动矢量时,根据参考帧在编码时选取的目标分辨率和当前选取的目标分辨率来灵活将待编码块的预测运动矢量调整至与待编码块的运动矢量相同的分辨率上,以提高编码质量,控制编码数据量。
将当前待编码块的多个相邻已编码块对应的运动矢量的均值,作为当前编码块的预测运动矢量时,也需要在这多个相邻已编码块对应的运动矢量不在于当前编码块对应的目标分辨率下时,调整到该目标分辨率下。
原分辨率模式,是指按原始视频帧自身的完整分辨率进行处理的方式。当分辨率调整模式为原分辨率模式时,则可以将原始视频帧直接作为待编码视频帧。当分辨率调整模式为下采样模式时,则可以对原始视频帧进行下采样处理,得到待编码视频帧。采用下采样模式得到的待编码视频帧的分辨率,比原始视频帧的分辨率小。
对原始视频帧进行下采样处理,可以减少数据量,在码率较低且视频帧内容剧烈变化的情况下,可提高编码质量;对原始视频帧进行上采样处理,增大分辨率,在码率允许的情况下可以提高编码质量。
需要说明的是,得到原始视频帧对应的分辨率调整模式的方法可以根据实际需要设置。例如,可以是获取原始视频帧对应的处理参数,根据处理参数得到对应的分辨率调整模式。处理参数是用于确定分辨率调整模式的参数,具体采用的分辨率调整模式可以根据需要进行设置。在一个实施例中,处理参数可以包括根据输入的原始视频帧对应的当前编码信息以及图像特征的至少一种。
本发明实施例中,在对原始视频帧采用下采样模式处理时,还可按照不同的下采样方法或下采样比例进行下采样,对原始视频帧进行处理的方式更为灵活。
可以根据原始视频帧对应的当前编码信息以及图像特征信息中的至少一种得到原始视频帧对应的分辨率调整模式。当前编码信息是指视频在编码时得到的视频压缩参数信息,如帧类型、运动向量、量化参数、视频来源、码率、帧率以及分辨率的一种或多种。图像特征信息是指与图像内容相关的信息,包括图像运动信息以及图像纹理信息的一种或多种,如边缘等。当前编码信息以及图像特征信息反映了视频帧对应的场景、细节复杂度或者运动剧烈程度等,如通过运动向量、量化参数或者码率中的一个或多个等可判断运动场景,量化参数大则一般运动剧烈,运动向量大则代表图像场景是大运动场景。还可根据已编码I帧与P帧或已编码I帧与B帧的码率比值判断,如果比值超过第一预设阈值,则判断为静止图像,如果比值小于第二预设阈值,则可判断为运动剧烈图像。或直接根据图像内容跟踪目标对象,根据目标对象的运动速度确定是否为大运动场景。码率一定时能表达的信息量一定,对于运动剧烈的场景,时间域信息量大,相应的可用于表达空间域信息的码率就少,因此采用低分辨率能达到较好的图像质量效果,更倾向于选择下采样模式进行编码。通过帧预测类型可确定画面切换场景,也可根据帧预测类型对其它帧的影响确定倾向于的分辨率调整模式。如I帧一般为首帧或存在画面切换,I帧的质量影响了后续P帧或B帧的质量,所以帧内预测帧相比于帧间预测帧更倾向于选择原分辨率模式,以保证图像质量。因为P帧可作为B帧的参考帧,P帧图像质量影响了后续B帧的图像质量,所以如果采用P帧编码则相比于采用B帧编码更倾向于选择原分辨率模式。通过图像特征信息,如图像纹理信息确定待编码视频帧的纹理复杂度,如果纹理复杂,包含的细节多,则图像空域信息多,如果进行下采样,可能由于下采样损失较多细节信息,影响视频质量,所以纹理复杂的待编码视频帧相比于纹理简单的待编码视频帧更倾向于选择全分辨率处理。
可以根据原始视频帧对应的当前量化参数以及量化参数阈值的大小关系得到原始视频帧对应的分辨率。如果当前量化参数大于量化参数阈值,则确定分辨率调整模式为下采样模式,否则确定分辨率调整模式为原分辨率模式。量化参数阈值可以根据在原始视频帧之前,已编码的前向编码视频帧的帧内编码块的比例得到,可以预先设置帧内预测块比例与量化参数阈值的对应关系,从而在确定了当前帧的帧内预测块比例后,可以根据对应关系确定与当前帧的帧内预测块比例对应的量化参数阈值。对于固定量化参数编码,当前量化参数可以是对应的固定量化参数值。对于固定码率编码,则可以根据码率控制模型计算得到原始视频帧对应的当前量化参数。或者,可以将参考帧对应的量化参数作为原始视频帧对应的当前量化参数。本发明实施例中,当前量化参数越大一般运动越剧烈,对于运动剧烈的场景更倾向于选择下采样模式。
在一个实施中,帧内预测块比例与量化参数阈值的关系为正相关关系。比如,可以根据经验,预先确定帧内预测块比例Intra0与量化参数阈值QPTH的对应关系为:
在获取原始视频帧对应的分辨率调整模式后,可以根据分辨率调整模式对原始视频帧进行处理,得到待编码视频帧,通过灵活选择视频帧的分辨率调整模式,对原始视频帧进行处理,减小原始视频帧的分辨率以减小待编码数据的数据量。
将分辨率调整模式对应的分辨率调整模式信息添加至原始视频帧对应的编码数据中。
在一个实施例中,还可以将对原始视频帧进行下采样的下采样模式信息添加至原始视频帧对应的编码数据中,以使解码端在获取到编码数据时,能够根据下采样模式信息获取对应的对重建视频帧进行上采样的方法以及上采样比例。下采样模式信息包括下采样方法信息以及下采样比例信息中的至少一种。下采样方法信息在编码数据的添加位置可以是对应的组级头信息、序列级头信息以及帧级头信息中的一个,下采样方法信息在编码数据的添加位置可以根据下采样方法对应的作用范围确定。下采样比例信息在编码数据的添加位置可以是对应的组级头信息、序列级头信息以及帧级头信息中的任一个。下采样比例信息在编码数据的添加位置可以根据下采样比例对应的作用范围确定,作用范围是指适用的范围。例如,如果下采样比例作用的范围是一个视频组,则可以将该视频组对应的下采样比例信息添加到该视频组对应的头信息中。如果下采样比例作用的范围是视频序列,将下采样比例信息添加至该视频序列对应的序列级头信息,表示该视频序列的各个视频帧采用下采样比例信息对应的下采样比例进行下采样处理。
处理参数可以包括原始视频帧对应的图像编码信息以及图像特征信息中的至少一个。处理参数在解码过程中不能重现是指在解码的过程中不能得到或者不会产生该处理参数。例如,如果处理参数是与原始视频帧的图像内容对应的信息,而在编码过程中图像信息是存在损失的,则解码端的解码视频帧与原始视频帧存在差别,因此,解码过程中不会得到原始视频帧的图像内容对应的信息,即图像内容对应的信息在解码过程中不能重现。编码过程中需要计算率失真代价,而解码过程中不计算率失真代价,则当处理参数包括率失真代价时,则该处理参数不能在解码过程中重现。
在一个实施例中,当处理参数在解码端中能够重现时,可以将分辨率调整模式对应的分辨率调整模式信息添加至原始视频帧对应的编码数据中,也可以不将分辨率调整模式对应的分辨率调整模式信息添加至原始视频帧对应的编码数据中。其中,将分辨率调整模式对应的分辨率调整模式信息添加至原始视频帧对应的编码数据中时,解码端可以从编码数据中读取分辨率调整模式信息,无需再根据处理数据得到分辨率调整模式。当不将分辨率调整模式对应的分辨率调整模式信息添加至原始视频帧对应的编码数据中时,由解码设备根据处理参数确定出与编码端一致的分辨率调整模式,可以减少编码数据的数据量。
在一个实施例中,在待编码视频帧的分辨率下,对待编码视频帧进行编码得到原始视频帧对应的编码数据这一步骤还包括:获取待编码视频帧对应的参考帧;在待编码视频帧的分辨率下,根据参考帧对待编码视频帧进行编码,得到原始视频帧对应的编码数据。
在一个实施例中,获取待编码视频帧对应的参考帧包括:获取第一参考规则,第一参考规则包括待编码视频帧与参考帧的分辨率大小关系;根据第一参考规则获取待编码视频帧对应的参考帧。
具体地,第一参考规则确定了待编码视频帧与参考帧的分辨率大小限制关系,分辨率大小关系包括待编码视频帧与参考帧的分辨率相同以及不同的至少一种。当第一参考规则包括待编码视频帧与参考帧的分辨率相同时,第一参考规则还可以包括待编码视频帧与参考帧的分辨率的分辨率调整模式参考规则。分辨率调整模式参考规则可以包括全分辨分辨率调整模式的待编码视频帧参考原分辨率模式的参考帧,以及下采样模式的待编码视频帧参考下采样模式的参考帧的一种或两种。当第一参考规则包括待编码视频帧与参考帧的分辨率不相同时,第一参考规则还可以包括待编码视频帧的分辨率大于参考帧的分辨率以及待编码视频帧的分辨率小于参考帧的分辨率的一种或两种。
第一参考规则具体可以包括原始分辨率待编码视频帧可以参考下采样分辨率参考帧、下采样分辨率待编码视频帧可以参考原始分辨率参考帧、原始分辨率待编码视频帧可以参考原始分辨率参考帧、以及下采样分辨率待编码视频帧可以参考下采样分辨率的参考帧中的一种或多种。其中,原始分辨率待编码视频帧是指该待编码视频帧的分辨率与其对应的原始视频帧的分辨率相同,原始分辨率参考帧是指该参考帧的分辨率与其对应的原始视频帧的分辨率相同。下采样分辨率待编码视频帧,是指该待编码视频帧是对相应的原始视频帧进行下采样处理得到的。下采样分辨率参考帧,是指该参考帧是对相应的原始视频帧进行下采样处理得到的。得到第一参考规则后,根据第一参考规则获取待编码视频帧对应的参考帧,使得到的参考帧满足第一参考规则。
在待编码视频帧的分辨率下,对待编码视频帧进行编码得到原始视频帧对应的编码数据还包括:将第一参考规则对应的规则信息添加至原始视频帧对应的编码数据中。
在一个实施例中,可以获取待编码视频帧对应的参考帧,根据参考帧进行预测得到像素残差,并对像素残差进行变换、量化以及熵编码得到原始视频帧对应的编码数据。其中,得到编码数据的过程中,根据待编码视频帧的分辨率对参考帧、待编码视频帧的各个待编码块对应的位置信息、参考帧的各个参考块对应的位置信息以及运动矢量中的至少一个进行处理。得到参考帧后,可以从参考帧中获取与待编码视频帧的待编码块对应的参考块,根据参考块对待编码块进行编码。也可以根据待编码视频帧的分辨率对参考帧进行处理,得到对应的目标参考帧,从目标参考帧中获取与待编码视频帧的待编码块对应的目标参考块,根据目标参考块对待编码块进行编码,得到原始视频帧对应的编码数据。
在待编码视频帧的分辨率下,对待编码视频帧进行编码得到原始视频帧对应的编码数据包括:在待编码视频帧的分辨率下,获取待编码视频帧进行编码时对应的编码方式;将编码方式对应的编码方式信息添加至原始视频帧对应的编码数据中。
编码方式是与进行编码有关的分辨率调整模式。例如可以包括编码时对参考帧进行解码重建后的视频帧采用的上采样方式、参考规则对应的规则以及对参考帧进行采样处理的采样方式以及运动矢量对应的分辨率中的一个或多个。通过将编码方式对应的编码方式信息添加至原始视频帧对应的编码数据,解码时可以根据编码方式信息对待解码视频帧对应的编码数据进行解码。
也可以不将编码方式对应的编码方式信息添加到编码数据中。而是在编解码标准中预先设置编码方式,在解码端中设置与该编码方式对应的解码方式。或者编码端与解码端可以根据相同或者对应的算法计算得到匹配的编码方式以及解码方式。例如,在编解码标准中预先设置编码时对参考帧进行上采样方法与解码时对参考帧进行上采样的方法相同。
根据参考帧对待编码视频帧进行编码,得到原始视频帧对应的编码数据包括:根据待编码视频帧的分辨率信息对参考帧进行采样处理;根据采样处理后的参考帧对待编码视频帧进行编码,得到原始视频帧对应的编码数据。
采样处理是通过待编码视频帧的分辨率信息对参考帧进行采样,使采样处理后的参考帧的分辨率信息匹配的过程。在进行采样处理时,可以先确定采样方式,采样方式包括直接分像素插值方式和采样后分像素插值方式中的一种。直接分像素插值方式直接对参考帧进行分像素插值处理,采样后分像素插值方式对参考帧进行采样处理后再分像素插值处理。
编码端和解码端可在各自的编解码规则中设置对参考帧采用的采样方式,采用的采样方式应当是一致的,在编、解码时就根据配置确定针对参考帧采用的采样方式。
在一个实施例中,在待编码视频帧的分辨率下,对待编码视频帧进行编码得到原始视频帧对应的编码数据包括:将对参考帧进行采样处理对应的采样方式信息添加至参考帧对应的编码数据中。参考帧进行采样处理对应的采样方式信息在编码数据的添加位置可以是对应的序列级头信息、组级头信息以及帧级头信息中的任一个,采样方式信息在编码数据的添加位置可以根据采样方式对应的作用范围确定。
在一个实施例中,可根据待编码视频帧的分辨率与参考帧的分辨率之间的比例关系确定对参考帧进行采样的比例。在一个实施例中,由于原始视频帧的分辨率一般是相同的,可根据原始视频帧进行下采样得到待编码视频帧所对应的下采样比例,以及对可作为参考帧的原始视频帧进行下采样得到待编码参考帧所对应的下采样比例,确定对参考帧进行采样的比例。
在一个实施例中,对参考帧进行采样的采样方法与对原始视频帧进行下采样得到待编码视频帧的采样算法匹配,即对参考帧进行下采样所采用的下采样算法,与对待编码视频帧进行下采样所采用的下采样算法相同。对参考帧进行上采样所采用的上采样算法,是与对原始视频帧进行下采样所采用的下采样算法相反的采样算法。
本实施例中,对参考帧进行采样的采样算法与对待编码视频帧进行下采样采用的采样算法匹配,可进一步提高参考帧与下采样处理后的待编码视频帧的图像匹配度,进一步提高帧间预测的准确度,减小像素残差,提高编码图像的质量。
对参考帧进行采样处理后,从采样处理后的参考帧中搜索得到与待编码块相似的图像块作为参考块,计算待编码块与参考块的像素差值得到像素残差;根据待编码块与对应的参考块的位移,得到待编码块对应的运动矢量;根据得到的运动矢量以及像素残差得到编码数据。
可以根据目标运动矢量分辨率信息对待编码块对应的运动矢量进行变换,得到在目标分辨率下的目标运动矢量,根据目标运动矢量以及像素残差,生成编码数据。其中,根据目标运动矢量分辨率信息对待编码块对应的运动矢量进行变换,得到目标运动矢量的方法在后面描述。可以理解,目标运动矢量分辨率信息表示的分辨率,即为目标分辨率。
可以直接对目标运动矢量自身进行量化等编码处理,得到编码数据。在另一个实施例中,也可以计算目标运动矢量和对应的预测运动矢量之间的运动残差,对运动残差进行编码,得到编码数据,进一步减少编码数据量。
根据待编码视频帧的分辨率信息对参考帧进行采样处理包括:根据待编码视频帧的分辨率信息以及运动估计像素精度对参考帧进行采样处理。
其中,运动估计像素精度是待编码视频帧中的待编码块对应的运动矢量的单位长度。编码端在对待编码视频帧中的待编码块进行编码时,可按照获取的运动估计像素精度将待编码块对应的运动矢量的单位长度进行细化,这样得到的运动向量更为精细和准确,因而,需要按照获取的运动估计像素精度对参考帧进行采样处理,再依据采样处理后的参考帧计算待编码视频帧中各待编码块对应的运动矢量,基于该运动矢量进行编码得到待编码视频帧对应的编码数据。
具体地,可获取参考帧的分辨率信息,根据待编码视频帧采用的分像素插值方式,以及待编码视频帧的分辨率信息、参考帧的分辨率信息以及待编码视频帧对应的运动估计像素精度确定对参考帧进行何种采样处理方法、采样处理对应的采样比例以及像素插值精度。
可根据待编码视频帧的图像特征信息为该待编码视频帧配置相应的运动估计像素精度。图像特征信息,是表征待编码视频帧中图像的特征的信息。图像特征信息包括该待编码视频帧的大小、纹理信息、运动速度等中的至少一种,可综合多种图像特征信息确定待编码视频帧对应的运动估计像素精度。
待编码视频帧所携带的图像数据越复杂,图像信息越丰富,相应的运动估计像素精度更高。在一个实施例中,根据待编码视频帧的分辨率信息以及运动估计像素精度对参考帧进行采样处理包括:根据待编码视频帧的分辨率信息以及运动估计像素精度计算得到像素插值精度;根据像素插值精度直接对参考帧进行分像素插值处理。
具体地,像素插值精度是对参考帧进行分像素插值对应的像素精度。当分像素插值方式为直接分像素插值方式,表示能够对参考帧直接进行分像素插值处理。因此可以根据待编码视频帧的分辨率信息以及运动估计像素精度计算得到像素插值精度。可以计算参考帧的分辨率信息与待编码视频帧的分辨率信息的比例,根据比例以及运动估计像素精度得到像素插值精度。
在一个实施例中,当参考帧的分辨率大于待编码视频帧的分辨率时,参考帧中部分分像素点的数据可直接复用,可作为与运动估计像素精度相应的分像素点对应的数据。
在一个实施例中,当待编码视频帧的分辨率信息所表示的分辨率与参考帧的分辨率相同时,则根据运动估计像素精度直接对参考帧进行分像素插值处理。
具体地,通过全分辨分辨率调整模式对原始视频帧进行处理得到待编码视频帧,且参考帧的分辨率也是原分辨率时,则待编码视频帧的分辨率和参考帧的分辨率相同。可以理解,原分辨率是指原始视频帧的分辨率。或者,通过下采样模式对原始视频帧进行处理得到待编码视频帧,且参考帧帧也是采用相同采用比例的下采样模式编码得到的编码数据重建得到的,则待编码视频帧的分辨率和参考帧的分辨率相同。那么,就可以直接基于运动估计像素精度直接对参考帧进行分像素插值处理,并且,分像素插值处理对应的像素插值精度和运动估计像素精度相同。
在一个实施例中,根据待编码视频帧的分辨率信息以及运动估计像素精度对参考帧进行采样处理包括:根据待编码视频帧的分辨率信息对参考帧进行采样处理;根据运动估计像素精度,对采样处理得到的参考帧进行分像素插值处理。
具体地,当待编码视频帧对应的分像素插值方式为采样后分像素插值方式,表示要对参考帧先进行采样处理,得到与待编码视频帧分辨率相同的中间参考帧,再对中间参考帧进行分像素插值处理,得到分像素插值处理后的参考帧。
当待编码视频帧的分辨率信息所表示的分辨率小于参考帧的分辨率时,则根据待编码视频帧的分辨率信息对参考帧进行下采样处理,得到中间参考帧,然后基于待编码视频帧对应的运动估计像素精度对中间参考帧进行分像素插值处理,得到分像素插值处理后的参考帧。
在一个实施例中,可不选择目标运动矢量分辨率信息。那么,对于当前编码块,计算机设备可根据待编码视频帧的分辨率信息和参考帧的分辨率信息确定坐标变换参数;获取当前待编码块的第一位置信息,获取当前待编码块对应的参考块的第二位置信息;根据坐标变换参数、第一位置信息和第二位置信息计算得到当前待编码块对应的目标运动矢量。
其中,当前待编码块是原始视频帧中当前需要进行预测编码的待编码块。参考块是参考帧中用于对当前待编码块进行预测编码的图像块。当前待编码块对应的第一位置信息可以用像素的坐标表示。当前待编码块对应的第一位置信息可以包括当前待编码块的全部像素对应的坐标,当前待编码块对应的第一位置信息也可以是包括当前待编码块的一个或多个像素的坐标。参考块对应的第二位置信息可以包括参考块的全部像素对应的坐标,参考块对应的第二位置信息也可以是包括参考块的一个或多个像素的坐标。例如,可以当前待编码块的第一个像素点的坐标作为当前待编码块的坐标值,以参考块的第一个像素点的坐标作为参考块的坐标值。
可以利用坐标变换参数对第一位置信息进行变换,得到对应的第一变换位置信息,根据第一变换位置信息与第二位置信息的差值得到目标运动矢量。或者可以利用坐标变换参数对第二位置信息进行变换,得到对应的第二变换位置信息,根据第一位置信息与第二位变换置信息的差值得到目标运动矢量。
本发明实施例中,通过坐标变换参数对位置信息进行变换,使得得到的位置信息处于同一量化尺度下,可以降低目标运动矢量的值,减少编码数据的数据量。
在一个实施例中,获取原始视频帧对应的分辨率调整模式包括:计算目标预测类型待编码块在原始视频帧对应的前向编码视频帧中的比例;根据比例确定原始视频帧对应的分辨率调整模式。
具体地,预测类型待编码块是帧预测类型对应的待编码块。目标预测类型的比例可以是帧内待编码块对应的比例以及帧间待编码块对应的比例中的一种或两种。目标预测类型待编码块在原始视频帧对应的前向编码视频帧中的比例可以是该目标预测类型待编码块与其他预测类型待编码块的比例,也可以是该类型待编码块与总待编码块数量的比例。具体可以根据需要进行设置。例如可以获取前向编码视频帧中帧内待编码块的第一数量,前向编码视频帧中帧间待编码块的第二数量。根据第一数量和第二数量计算得到帧内待编码块与帧间待编码块的比例,或者统计前向编码视频帧的全部待编码块的第三数量,根据第一数量和第三数量计算得到帧内待编码块与第三数据量的比例。还可根据第二数量和第三数量计算得到帧间待编码块与第三数据量的比例。
前向编码视频帧是指对原始视频帧进行编码之前已经编码的视频帧,获取的前向编码视频帧的具体数量可自定义,例如,前向编码视频帧可以是原始视频帧的前一个已编码的编码视频帧,前向编码视频帧也可以是原始视频帧的前3个已编码的编码视频帧。在计算得到目标预测类型待编码块对应的在前向编码视频帧中的比例后,根据计算得到的比例确定原始视频帧对应的分辨率调整模式。若获取到的前向编码视频帧的数量为多个时,可以计算得到不同类型待编码块对应的在每一个前向编码视频帧中的比例,根据各个比例进行加权计算得到总比例,再根据总比例和预设阈值确定原始视频帧对应的分辨率调整模式。其中,前向视频帧对应的权重可以与前向编码视频帧与原始视频帧的编码距离成负相关关系。
可以计算前向编码视频帧中帧内待编码块在前向编码视频帧中的比例,当比例大于目标阈值时,确定分辨率调整模式为下采样模式。
对于帧内待编码块对应的比例,可以是当该比例大于目标阈值时,确定原始视频帧对应的分辨率调整模式为下采样模式,否则确定视频帧对应的分辨率调整模式为原分辨率模式。如,当比例大于目标阈值时,确定原始视频帧对应的分辨率调整模式为下采样模式,否则确定视频帧对应的分辨率调整模式为原分辨率模式。
如果帧内待编码块的比例大,则说明视频会相对比较复杂或者视频帧之间的相关度比较低,因此得到的像素残差比较大,因此更倾向于采用下采样模式进行编码,减少编码数据量。
其中目标阈值可根据原始视频帧对应的参考帧的分辨率调整模式进行确定。当原始视频帧对应的参考帧的分辨率调整模式为下采样模式时,获取第一预设阈值T1,将第一预设阈值T1作为目标阈值。同样地,当原始视频帧对应的参考帧的分辨率调整模式为原分辨率模式时,获取第二预设阈值T2,将第二预设阈值T2作为目标阈值。进一步地,在根据原始视频帧对应的参考帧的分辨率信息获取到目标阈值后,根据目标阈值和前向编码视频帧中帧内待编码块在前向编码视频帧中的比例确定原始视频帧的分辨率调整模式。其中,当前向编码视频帧中帧内待编码块在前向编码视频帧中的比例大于目标阈值时,确定原始视频帧对应的分辨率调整模式为下采样模式。
第二预设阈值大于第一预设阈值,这样,当参考帧对应的分辨率调整模式原分辨率模式时,原始视频帧更倾向于采用原分辨率模式,当参考帧为下采样模式时,原始视频帧更倾向于采用下采样模式。
获取原始视频帧之前,视频编码方法还包括:获取原始视频帧对应的输入视频序列,获取输入视频序列对应的目标视频序列编码模式,其中,目标视频序列编码模式包括恒定分辨率编码模式或者混合分辨率编码模式;判断目标视频序列编码模式是否为混合分辨率编码模式,若是,则执行获取原始视频帧的步骤,若否,则对输入视频序列的各个原始视频帧进行恒定分辨率编码。
具体地,输入视频序列可以包括多个原始视频帧。当目标视频序列编码模式为恒定分辨率编码模式时,输入视频序列的各个原始视频帧是在相同的分辨率例如全分辨率下进行编码的,当目标视频序列编码模式为混合分辨率编码模式时,则获取各个原始视频帧对应的分辨率调整模式,根据分辨率调整模式对原始视频帧进行处理,得到待编码视频帧,根据待编码视频帧进行编码,待编码视频帧的分辨率可以与原始视频帧的分辨率相同,也可以比原始视频帧的分辨率小,输入视频序列可以存在不同分辨率的待编码视频帧。因此当视频序列编码模式为混合分辨率编码模式时,执行上述实施例中提供的视频编码方法。
在一个实施例中,获取输入视频序列对应的目标视频序列编码模式包括:获取当前环境信息,当前环境信息包括当前编码环境信息和当前解码环境信息中的至少一种信息;根据当前环境信息确定输入视频序列对应的目标视频序列编码模式。
具体地,环境信息可以包括表征执行视频编码方法的设备的处理能力的信息、表征执行视频解码方法的设备的处理能力的信息以及当前应用场景信息中的一种或多种。处理能力可以用处理速度进行表示。例如,对于处理能力强的设备,由于处理速度快,对应的目标视频序列编码模式为全分辨率编码模式(可以理解,全分辨率编码模式是一种特殊情况下的恒定分辨率编码模式),当当前应用场景信息对应的当前应用场景为实时应用场景时,视频序列编码模式为混合分辨率编码模式。当当前应用场景信息对应的当前应用场景非实时应用场景时,视频序列编码模式为恒定分辨率编码模式。可以设置当前环境信息与视频序列编码模式对应的关系,当得到当前环境信息后,根据当前环境信息与视频序列编码模式的对应关系得到输入视频序列对应的目标视频序列编码模式。例如,可以设置视频编码方法的设备的处理速度与执行视频解码方法的设备的处理速度的平均值与视频序列编码模式的对应关系,当得到视频编码方法的设备的处理速度与执行视频解码方法的设备的处理速度后,计算平均值,根据平均值得到目标视频序列编码模式。当前应用场景是否为实时应用场景可以根据需要进行设置。例如,视频通话应用场景、游戏应用场景为实时应用场景,视频网站上的视频编码,离线视频的编码对应的应用场景可以为非实时应用场景。
具体地,当视频序列编码模式为恒定分辨率编码模式时,对输入视频序列的各个原始视频帧进行恒定分辨率编码。
在一个实施例中,在待编码视频帧的分辨率下,对待编码视频帧进行编码得到原始视频帧对应的编码数据包括:将目标视频序列编码模式对应的视频序列编码模式信息添加至编码数据中。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (1)
1.一种基于运动矢量调整的视频编码方法,其特征在于,包括:
获取原始视频帧;
获取所述原始视频帧对应的分辨率调整模式;
根据所述分辨率调整模式对所述原始视频帧进行处理,得到待编码视频帧;所述分辨率调整模式为原分辨率模式或采样模式;
在选中的目标运动矢量分辨率信息所表示的目标分辨率下,确定所述待编码视频帧中各待编码块各自对应的目标运动矢量;
获取各所述待编码块各自对应的、且在所述目标分辨率下的预测运动矢量;
根据各所述目标运动矢量和对应的所述预测运动矢量间的运动残差,得到待编码视频帧的编码数据;所述编码数据包括表示所述目标分辨率的标识信息;
根据所述待编码视频帧所对应的原始视频帧的原始分辨率确定第一运动运动矢量分辨率信息,根据当前待编码视频帧的当前分辨率确定第二运动矢量分辨率信息;
确定所述待编码视频帧的参考帧;
分别获取与所述参考帧对应的在第一运动矢量分辨率信息所表示的分辨率下的编码代价,和在第二运动矢量分辨率信息所表示的分辨率下的编码代价;
根据获取的各所述编码代价,从所述第一运动运动矢量分辨率信息和所述第二运动矢量分辨率信息中,选取目标运动矢量分辨率信息;
确定所述待编码视频帧对应的在第一运动矢量分辨率信息所表示的分辨率下的编码代价,及在第二运动矢量分辨率信息所表示的分辨率下的编码代价;
根据所述编码代价,从所述第一运动运动矢量分辨率信息和所述第二运动矢量分辨率信息中,选取目标运动矢量分辨率信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811318130.4A CN109495746A (zh) | 2018-11-07 | 2018-11-07 | 一种基于运动矢量调整的视频编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811318130.4A CN109495746A (zh) | 2018-11-07 | 2018-11-07 | 一种基于运动矢量调整的视频编码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109495746A true CN109495746A (zh) | 2019-03-19 |
Family
ID=65694052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811318130.4A Pending CN109495746A (zh) | 2018-11-07 | 2018-11-07 | 一种基于运动矢量调整的视频编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109495746A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110572673A (zh) * | 2019-09-27 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 视频编解码方法和装置、存储介质及电子装置 |
CN110636293A (zh) * | 2019-09-27 | 2019-12-31 | 腾讯科技(深圳)有限公司 | 视频编码、解码方法和装置、存储介质及电子装置 |
CN112073735A (zh) * | 2020-11-16 | 2020-12-11 | 北京世纪好未来教育科技有限公司 | 视频信息处理方法、装置、电子设备及存储介质 |
WO2021088695A1 (zh) * | 2019-11-05 | 2021-05-14 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
CN114979672A (zh) * | 2022-06-23 | 2022-08-30 | 阿里巴巴(中国)有限公司 | 视频编码方法、解码方法、电子设备及存储介质 |
-
2018
- 2018-11-07 CN CN201811318130.4A patent/CN109495746A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110572673A (zh) * | 2019-09-27 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 视频编解码方法和装置、存储介质及电子装置 |
CN110636293A (zh) * | 2019-09-27 | 2019-12-31 | 腾讯科技(深圳)有限公司 | 视频编码、解码方法和装置、存储介质及电子装置 |
CN110636293B (zh) * | 2019-09-27 | 2024-03-15 | 腾讯科技(深圳)有限公司 | 视频编码、解码方法和装置、存储介质及电子装置 |
CN110572673B (zh) * | 2019-09-27 | 2024-04-09 | 腾讯科技(深圳)有限公司 | 视频编解码方法和装置、存储介质及电子装置 |
WO2021088695A1 (zh) * | 2019-11-05 | 2021-05-14 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
CN112073735A (zh) * | 2020-11-16 | 2020-12-11 | 北京世纪好未来教育科技有限公司 | 视频信息处理方法、装置、电子设备及存储介质 |
CN112073735B (zh) * | 2020-11-16 | 2021-02-02 | 北京世纪好未来教育科技有限公司 | 视频信息处理方法、装置、电子设备及存储介质 |
CN114979672A (zh) * | 2022-06-23 | 2022-08-30 | 阿里巴巴(中国)有限公司 | 视频编码方法、解码方法、电子设备及存储介质 |
WO2023246923A1 (zh) * | 2022-06-23 | 2023-12-28 | 阿里巴巴(中国)有限公司 | 视频编码方法、解码方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109495746A (zh) | 一种基于运动矢量调整的视频编码方法 | |
CN108833916A (zh) | 视频编码、解码方法、装置、存储介质和计算机设备 | |
CN108833923A (zh) | 视频编码、解码方法、装置、存储介质和计算机设备 | |
CN108848380A (zh) | 视频编码和解码方法、装置、计算机设备及存储介质 | |
CN104754355B (zh) | 一种图像解码设备 | |
CN108769682A (zh) | 视频编码、解码方法、装置、计算机设备和存储介质 | |
CN108848376A (zh) | 视频编码、解码方法、装置和计算机设备 | |
CN108833918A (zh) | 视频编码方法、解码方法、装置、计算机设备及存储介质 | |
CN108769681A (zh) | 视频编码、解码方法、装置、计算机设备和存储介质 | |
CN107809642B (zh) | 用于视频图像编码和解码的方法、编码设备和解码设备 | |
CN108833917A (zh) | 视频编码、解码方法、装置、计算机设备和存储介质 | |
CN108848381A (zh) | 视频编码方法、解码方法、装置、计算机设备及存储介质 | |
CN101584215B (zh) | 综合空时预测 | |
CN104135629B (zh) | 对图像进行编码的方法、装置及计算机可读存储介质 | |
CN101087414B (zh) | 图像编码装置和图像编码方法 | |
CN100592794C (zh) | 提高的运动估计、视频编码方法及使用所述方法的设备 | |
CN106878737B (zh) | 高效视频编码中的运动估计加速方法 | |
CN109618159A (zh) | 一种基于分辨率对应关系的自适应编码方法 | |
CN1794816B (zh) | 运动图像压缩编码方法、运动图像压缩编码装置以及程序 | |
CN108848377A (zh) | 视频编码、解码方法、装置、计算机设备和存储介质 | |
CN107846593B (zh) | 一种率失真优化方法及装置 | |
WO2019080892A1 (zh) | 确定仿射编码块的运动矢量的方法和装置 | |
CN109618160A (zh) | 一种基于运动信息与残差信息计算的视频编码方法 | |
KR20030081403A (ko) | 영상의 부호화 및 복호화 방법, 장치 및 그 애플리케이션 | |
CN100401779C (zh) | 用于分级运动估计的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190319 |