CN116915986A - 视频数据的帧间预测方法和装置 - Google Patents
视频数据的帧间预测方法和装置 Download PDFInfo
- Publication number
- CN116915986A CN116915986A CN202310863230.XA CN202310863230A CN116915986A CN 116915986 A CN116915986 A CN 116915986A CN 202310863230 A CN202310863230 A CN 202310863230A CN 116915986 A CN116915986 A CN 116915986A
- Authority
- CN
- China
- Prior art keywords
- image block
- current image
- motion information
- control points
- motion vector
- 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
- 238000000034 method Methods 0.000 title claims abstract description 158
- 230000005540 biological transmission Effects 0.000 claims abstract description 29
- 239000013598 vector Substances 0.000 claims description 254
- 238000012545 processing Methods 0.000 claims description 44
- 238000003860 storage Methods 0.000 claims description 38
- 230000009466 transformation Effects 0.000 claims description 38
- 230000008569 process Effects 0.000 claims description 26
- 238000006243 chemical reaction Methods 0.000 claims description 14
- 238000013139 quantization Methods 0.000 claims description 12
- 238000007689 inspection Methods 0.000 claims description 9
- 230000002123 temporal effect Effects 0.000 claims description 8
- 230000001131 transforming effect Effects 0.000 claims 1
- 230000015654 memory Effects 0.000 description 49
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 48
- 238000004891 communication Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000003044 adaptive effect Effects 0.000 description 11
- 238000001914 filtration Methods 0.000 description 10
- 230000009286 beneficial effect Effects 0.000 description 8
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 7
- 238000013500 data storage Methods 0.000 description 7
- 230000004927 fusion Effects 0.000 description 6
- 238000012805 post-processing Methods 0.000 description 6
- 238000012216 screening Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000002457 bidirectional effect Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 239000013256 coordination polymer Substances 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000001502 supplementing effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/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/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
-
- 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
-
- 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
-
- 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/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- 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/169—Methods 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/17—Methods 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/176—Methods 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 block, e.g. a macroblock
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供了一种视频数据的帧间预测方法和装置,能够减少视频传输的比特开销,该方法包括:确定当前图像块的候选运动信息列表,所述候选运动信息列表包括至少一组第一候选运动信息、至少一组第二候选运动信息,以及用于索引第一候选运动信息和第二候选运动信息的多个索引信息,其中,第一候选运动信息为基于当前图像块的第一相邻图像块的预设位置的运动信息和第一相邻图像块的运动模型确定的运动信息,第二候选运动信息为与当前图像块的至少两个预设位置分别相邻的至少两个像素位置的运动信息的集合;从候选运动信息列表中确定目标运动信息;根据所述目标运动信息,对所述当前图像块执行帧间预测。
Description
本申请是申请日为2017年12月12日、中国申请号为201711319298.2、申请名称为“视频数据的帧间预测方法和装置”的发明申请的分案申请。
技术领域
本申请涉及视频编解码领域,尤其涉及一种视频数据的帧间预测方法、装置以及视频编码器和视频解码器。
背景技术
随着光电采集技术的发展及不断增长的高清数字视频需求,视频数据量越来越大,有限异构的传输带宽、多样化的视频应用不断地对视频编码效率提出了更高的需求,高性能视频编码(high efficient video coding,HEVC)标准的制定工作因需启动。
视频编码压缩的基本原理是利用空域、时域和码字之间的相关性,尽可能去除冗余。目前流行做法是采用基于块的混合视频编码框架,通过预测(包括帧内预测和帧间预测)、变换、量化、熵编码等步骤实现视频编码压缩。这种编码框架,显示了很强的生命力,HEVC也仍沿用这种基于块的混合视频编码框架。在各种视频编/解码方案中,运动估计/运动补偿是一种影响编/解码性能的关键技术。
由于视频中邻近帧中的景物存在着一定的相关性,因此,可将图像分成若干块或宏块,搜索出每个块或宏块在邻近帧中的位置,并得出两者之间的空间位置的相对偏移量,得到的相对偏移量即运动矢量(motion vector,MV),得到运动矢量的过程被称为运动估计(motion estimation,ME),通过运动估计可以去除帧间冗余,减少视频传输的比特开销。
现有的一种运动估计方法是按照预设策略从当前编码块的相邻编码块中选择一个编码块,并利用该编码块的运动信息推导出当前编码块的运动信息,该方法无需编码端向解码端发送指示相邻编码块的索引信息,减少了视频传输的比特开销。然而,若相邻编码块的上述运动信息不可用,则编码端需要重新选择运动估计方法,并且向解码端发送指示信息指示重新选择的运动估计方法,因此增加了视频传输的比特开销。
发明内容
本申请提供了一种视频数据的帧间预测方法、装置以及视频编码器、视频解码器,能够减少视频传输的比特开销,以提高编解码效率。
第一方面,提供了一种视频数据的帧间预测方法,包括:确定当前图像块的候选运动信息列表,所述候选运动信息列表包括至少一组第一候选运动信息、至少一组第二候选运动信息,以及用于索引第一候选运动信息和第二候选运动信息的多个索引信息,多个索引信息与多组候选运动信息一一对应,其中,第一候选运动信息为基于当前图像块的第一相邻图像块的预设位置的运动信息和第一相邻图像块的运动模型确定的运动信息,第二候选运动信息为与当前图像块的至少两个预设位置分别相邻的至少两个像素位置的运动信息的集合,所述至少两个像素位置位于当前图像块的至少一个第二相邻图像块;从候选运动信息列表中确定目标运动信息,所述目标运动信息为至少一组第一候选运动信息和所述至少一组第二候选运动信息中满足筛选规则的一组运动信息;根据所述目标运动信息,对所述当前图像块执行帧间预测。
应当理解的是,这里的第一相邻图像块和第二相邻图像块仅仅是用于区分采用不同方式获取候选运动信息的过程中,被遍历的当前图像块的空域邻近块和/或当前图像块的时域邻近块;第一相邻图像块可以包括当前图像块的空域邻近块和/或当前图像块的时域邻近块;第二相邻图像块可以包括当前图像块的空域邻近块和/或当前图像块的时域邻近块。
需要说明的是,第一相邻图像块的预设位置可以理解为所述第一相邻图像块的角点位置,例如所述第一相邻图像块的左上顶点和右上顶点,或者所述第一相邻图像块的左上顶点和左下顶点,或者,所述第一相邻图像块的左上顶点、左下顶点和右上顶点;所述当前图像块的至少两个预设位置可以理解为所述当前图像块的至少两个角点位置,亦可称为当前图像块的至少两个控制点,例如所述当前图像块的左上顶点和右上顶点,或者所述当前图像块的左上顶点和左下顶点,或者,所述当前图像块的左上顶点、左下顶点和右上顶点。
在一种示例下,所述目标运动信息为满足筛选规则的一组运动信息,可以理解为从所述候选运动信息列表中确定一组第一候选运动信息或者一组第二候选运动信息,其中,所述目标运动信息编码所述当前编码块的码率失真代价最小。
根据本实施例提供的帧间预测方法,编码端或解码端构建包括两种候选运动信息的候选运动信息列表,该两种候选运动信息具有统一编排的索引信息,若两种候选运动信息中的一种不适用于当前图像块,则编码端可以从候选运动信息列表包括的另一种候选运动信息中选择目标运动信息,并将该目标运动信息的索引信息通过码流发送给解码端,由于候选运动信息列表中的候选运动信息具有唯一的索引信息,因此,编码端无需在码流中传递指示编码端使用的运动估计方法的指示信息,从而减少了视频传输的比特开销。
可选地,第一候选运动信息的索引信息的比特数小于或等于第二候选运动信息的索引信息的比特数。
第一候选运动信息为基于运动模型的运动信息,根据第一候选运动信息进行编解码的效率高于根据第二候选运动信息进行编解码的效率,因此,第一候选运动信息为目标运动信息的概率较大,因此,可以将第一候选运动信息的索引信息设置为比特数较小的索引信息,有利于减小视频传输的比特开销。
可选地,多个索引信息中第一索引信息的比特数小于多个索引信息中第二索引信息的比特数,第一索引信息对应先加入候选运动信息列表的运动信息,第二索引信息对应后加入候选运动信息列表的运动信息;所述确定当前图像块的候选运动信息列表,包括:先将第一候选运动信息加入候选运动信息列表,再将第二候选运动信息加入候选运动信息列表。
第一候选运动信息为基于运动模型的运动信息,根据第一候选运动信息进行编解码的效率高于根据第二候选运动信息进行编解码的效率,因此,第一候选运动信息为目标运动信息的概率较大,因此,可以将第一候选运动信息的索引信息设置为比特数较小的索引信息,有利于减小视频传输的比特开销。
可选地,所述确定当前图像块的候选运动信息列表,包括:当第一相邻图像块为采用平动运动模型的相邻图像块时,将第一相邻图像块的运动信息作为一组第一候选运动信息加入候选运动信息列表;和/或,当第一相邻图像块为采用非平动运动模型的图像块时,根据第一相邻图像块的至少两个预设位置的运动信息以及第一相邻图像块的运动模型推导出当前图像块对应的至少两个预设位置的运动信息,并将当前图像块对应的至少两个预设位置的运动信息作为一组第一候选运动信息加入候选运动信息列表。
应当理解的是,非平动运动模型可以包括但不限于各种仿射运动模型,例如4参数的仿射运动模型、6参数的仿射运动模型或8参数的仿射运动模型。
若第一相邻图像块的运动模型为平动运动模型,可以将其作为第一候选运动信息直接加入候选运动信息列表,从而提高了图像效率;若第一相邻图像块的运动模型为非平动运动模型,则需要根据该非平动运动模型对应的公式以及第一相邻图像块的预设位置的运动信息生成第一候选运动信息。
可选地,第一相邻图像块包括采用平动运动模型的第一相邻图像块和采用非平动运动模型的第一相邻图像块,多个索引信息中第一索引信息的比特数小于多个索引信息中第二索引信息的比特数,第一索引信息对应先加入候选运动信息列表的运动信息,第二索引信息对应后加入候选运动信息列表的运动信息;
所述确定当前图像块的候选运动信息列表,包括:
当采用非平动运动模型的第一相邻图像块的数量大于或等于数量阈值时,基于采用非平动运动模型的第一相邻图像块的至少两个预设位置的运动信息以及采用非平动模型的第一相邻图像块的运动模型推导出当前图像块对应的至少两个预设位置的运动信息,并将当前图像块对应的至少两个预设位置的运动信息作为一组第一候选运动信息加入候选运动信息列表,再将第二候选运动信息加入候选运动信息列表。
若采用非平动运动模型的第一相邻图像块的数量大于或等于数量阈值,则说明当前图像块为采用非平动运动模型的图像块的概率较大,因此,可以先将基于采用非平动运动模型的第一相邻图像块推导出的第一候选运动信息加入候选运动信息列表,再将第二候选运动信息加入候选运动信息列表,由于先加入候选运动信息列表的运动信息的索引信息的比特数较小,且目标运动信息为先加入候选运动信息列表的运动信息的概率较大,因此,本实施例有利于减少视频传输的比特开销。
可选地,所述确定当前图像块的候选运动信息列表,还包括:当候选运动信息列表的长度小于长度阈值,且第一相邻图像块还包括采用平动运动模型的第一相邻图像块时,进一步将采用平动运动模型的第一相邻图像块的运动信息作为一组第一候选运动信息加入候选运动信息列表,若候选运动信息列表的长度仍然小于长度阈值,再将零运动信息加入所述候选运动信息列表。
应当理解的是,这里的候选运动信息列表的长度,可以理解为当前已加入候选运动信息列表中的候选运动信息的数量;这里的长度阈值可以理解为候选运动信息列表的预设的最大候选运动信息数量。
若第二候选运动信息加入候选运动信息列表之后,候选运动信息列表长度小于长度阈值,并且第一相邻图像块还包括采用平动运动模型的第一相邻图像块,则将采用平动运动模型的第一相邻图像块的运动信息作为第一候选运动信息加入候选运动信息列表,若候选运动信息列表的长度仍然小于长度阈值,再将零运动信息加入候选运动信息列表。
可选地,当采用非平动运动模型的第一相邻图像块的数量大于或等于数量阈值时,第三候选运动信息的索引信息的比特数小于第二候选运动信息的比特数,第三候选运动信息为基于采用非平动运动模型的第一相邻图像块的至少两个预设位置的运动信息以及采用非平动运动模型的第一相邻图像块的运动模型推导出的一组第一候选运动信息。
若采用非平动运动模型的第一相邻图像块的数量大于或等于数量阈值,则说明当前图像块为采用非平动运动模型的图像块的概率较大,因此,可以将基于非平动运动模型的第一相邻图像块推导出的第一候选运动信息(即,第三候选运动信息)的索引信息设置为比特数较小的索引信息,由于目标运动信息为第三候选运动信息的概率较大,因此,本实施例有利于减少视频传输的比特开销。
可选地,当候选运动信息列表的长度小于长度阈值,且第一相邻图像块还包括采用平动运动模型的第一相邻图像块时,候选运动信息列表还包括采用平动运动模型的第一相邻图像块的运动信息,所述采用平动运动模型的第一相邻图像块的运动信息为一组第一候选运动信息,所述采用平动运动模型的第一相邻图像块的运动信息的索引信息的比特数大于或等于第二候选运动信息的索引信息的比特数。
若第二候选运动信息加入候选运动信息列表之后,候选运动信息列表长度小于长度阈值,并且第一相邻图像块还包括采用平动运动模型的第一相邻图像块,则将采用平动运动模型的第一相邻图像块的运动信息作为第一候选运动信息加入候选运动信息列表,并将该第一候选运动信息的索引信息设置为比特数较大的索引信息,若候选运动信息列表的长度仍然小于长度阈值,再将零运动信息加入候选运动信息列表。
可选地,第一相邻图像块包括采用平动运动模型的第一相邻图像块和采用非平动运动模型的第一相邻图像块,多个索引信息中第一索引信息的比特数小于多个索引信息中第二索引信息的比特数,第一索引信息对应先加入候选运动信息列表的运动信息,第二索引信息对应后加入候选运动信息列表的运动信息;
所述确定当前图像块的候选运动信息列表,包括:
当采用非平动运动模型的第一相邻图像块的数量小于或等于数量阈值时,先将采用平动运动模型的第一相邻图像块的运动信息作为一组第一候选运动信息加入候选运动信息列表,再将第二候选运动信息加入候选运动信息列表。
若采用非平动运动模型的第一相邻图像块的数量小于或等于数量阈值,则说明当前图像块为采用非平动运动模型的图像块的概率较大,因此,可以先将基于采用平动运动模型的第一相邻图像块的运动信息作为第一候选运动信息加入候选运动信息列表,再将第二候选运动信息加入候选运动信息列表,由于先加入候选运动信息列表的运动信息的索引信息的比特数较小,且目标运动信息为先加入候选运动信息列表的运动信息的概率较大,因此,本实施例有利于减少视频传输的比特数。
可选地,所述确定当前图像块的候选运动信息列表,还包括:当候选运动信息列表的长度小于长度阈值,且第一相邻图像块还包括非采用平动运动模型的第一相邻图像块时,进一步基于采用非平动运动模型的第一相邻图像块的至少两个预设位置的运动信息以及采用非平动模型的第一相邻图像块的运动模型推导出当前图像块的至少两个预设位置的运动信息,将当前图像块的至少两个预设位置的运动信息作为一组第一候选运动信息加入候选运动信息列表,若候选运动信息列表的长度仍然小于长度阈值,再将零运动信息加入所述候选运动信息列表。
若第二候选运动信息加入候选运动信息列表之后,候选运动信息列表长度小于长度阈值,并且第一相邻图像块还包括采用非平动运动模型的第一相邻图像块,则将基于采用非平动运动模型的第一相邻图像块的运动信息推导出的第一候选运动信息加入候选运动信息列表,若候选运动信息列表的长度仍然小于长度阈值,再将零运动信息加入候选运动信息列表。从而可以扩大目标运动信息的选择范围。
可选地,当采用非平动运动模型的第一相邻图像块的数量小于或等于数量阈值时,采用平动运动模型的第一相邻图像块的运动信息为一组第一候选运动信息,且所述采用平动运动模型的第一相邻图像块的运动信息的索引信息的比特数小于第二候选运动信息的比特数。
若采用非平动运动模型的第一相邻图像块的数量小于或等于数量阈值,则说明当前图像块为采用平动运动模型的图像块的概率较大,因此,可以将采用平动运动模型的第一相邻图像块的运动信息作为第一候选运动信息,并将该第一候选运动信息的索引信息设置为比特数较小的索引信息,由于目标运动信息为该第一候选运动信息的概率较大,因此,本实施例有利于减少视频传输的比特开销。
可选地,当候选运动信息列表的长度小于长度阈值,且第一相邻图像块还包括采用非平动运动模型的第一相邻图像块时,候选运动信息列表还包括第四候选运动信息,第四候选运动信息为基于采用非平动运动模型的第一相邻图像块的至少两个预设位置的运动信息以及采用非平动运动模型的第一相邻图像块的运动模型推导出的一组第一候选运动信息,第四候选运动信息的索引信息的比特数大于或等于第二候选运动信息的索引信息的比特数。
若第二候选运动信息加入候选运动信息列表之后,候选运动信息列表长度小于长度阈值,并且第一相邻图像块还包括采用非平动运动模型的第一相邻图像块,则将基于采用非平动运动模型的第一相邻图像块的运动信息推导出的运动信息作为第一候选运动信息加入候选运动信息列表,并将该第一候选运动信息的索引信息设置为比特数较大的索引信息,若候选运动信息列表的长度仍然小于长度阈值,再将零运动信息加入候选运动信息列表。从而可以扩大目标运动信息的选择范围。
可选地,第一候选运动信息和第二候选运动信息均为当前图像块的第一组位置的运动信息,当前图像块中至少两个预设位置为第二组位置,所述确定当前图像块的候选运动信息列表,包括:当第二组位置与所述第一组位置相异时,根据位置变换公式以及第二位置对应的运动信息推导出第二候选运动信息。
当第一候选运动信息对应的位置的数量和第二候选运动信息对应的位置的数量相同时,根据本实施例得到的候选运动信息列表中的运动信息均为相同位置的运动信息,从而减小了运动估计的复杂度。
可选地,第一候选运动信息为当前图像块的第一组位置的运动信息,第二候选运动信息为当前图像块的第三组位置的运动信息,所述方法还包括:当第一组位置与第三组位置相异时,根据位置变换公式以及第二候选运动信息推导出第五候选运动信息,所述第五候选运动信息对应的位置与第一组位置相同。
当第一候选运动信息对应的位置的数量和第二候选运动信息对应的位置的数量相同时,根据本实施得到的候选运动信息列表中的运动信息均为相同位置的运动信息,从而减小了运动估计的复杂度。
第二方面,本申请提供了一种视频数据的帧间预测装置,包括用于实施第一方面的任意一种方法的若干个功能单元。举例来说,视频数据的帧间预测装置可以包括:
候选运动信息列表确定单元,用于确定当前图像块的候选运动信息列表,所述候选运动信息列表包括至少一组第一候选运动信息、至少一组第二候选运动信息,以及用于索引所述第一候选运动信息和所述第二候选运动信息的多个索引信息,所述第一候选运动信息为基于所述当前图像块的第一相邻图像块的预设位置的运动信息和所述第一相邻图像块的运动模型确定的运动信息,所述第二候选运动信息为与所述当前图像块的至少两个预设位置分别相邻的至少两个像素位置的运动信息的集合,所述至少两个像素位置位于所述当前图像块的至少一个第二相邻图像块;
帧间预测处理单元,用于从所述候选运动信息列表中确定目标运动信息,所述目标运动信息为所述至少一组第一候选运动信息和所述至少一组第二候选运动信息中满足筛选规则的一组运动信息;所述帧间预测处理单元还用于根据所述目标运动信息,对所述当前图像块执行帧间预测。
上述帧间预测装置例如可以应用在视频编码装置(视频编码器)或视频解码装置(视频解码器)中。
第三方面,本申请提供了一种视频编码器,该视频编码器用于编码图像块,该视频编码器包括:
第二方面所述的帧间预测装置,该帧间预测装置用于基于目标运动信息预测待编码图像块的预测块,所述目标运动信息是候选运动信息列表中满足筛选规则的一组运动信息;比如,所述目标运动信息编码所述当前图像块的码率失真代价最小;
熵编码器,用于将所述目标运动信息的索引信息编入码流,所述目标运动信息的索引信息用于从所述候选运动信息列表中确定所述目标运动信息;
重建器,用于根据所述预测块重建所述待编码图像块。
第四方面,本申请提供了一种视频解码器,所述视频解码器用于从码流中解码出图像块,所述视频解码器包括:
熵解码器,用于从码流中解码出目标运动信息的索引信息;
第二方面所述的帧间预测装置,所述帧间预测装置用于基于目标运动信息预测待解码图像块的预测块,所述目标运动信息是候选运动信息列表中所述解码出的索引信息对应的一组运动信息;
重建器,用于根据所述预测块重建所述待解码图像块。
第五方面,本申请提供一种用于编码视频数据的设备,所述设备包括:
存储器,用于存储视频数据,所述视频数据包括一个或多个图像块;
视频编码器,用于确定当前图像块的候选运动信息列表,所述候选运动信息列表包括至少一组第一候选运动信息、至少一组第二候选运动信息,以及用于索引所述第一候选运动信息和所述第二候选运动信息的多个索引信息,所述第一候选运动信息为基于所述当前图像块的第一相邻图像块的预设位置的运动信息和所述第一相邻图像块的运动模型确定的运动信息,所述第二候选运动信息为与所述当前图像块的至少两个预设位置分别相邻的至少两个像素位置的运动信息的集合,所述至少两个像素位置位于所述当前图像块的至少一个第二相邻图像块;从所述候选运动信息列表中确定目标运动信息,所述目标运动信息为所述至少一组第一候选运动信息和所述至少一组第二候选运动信息中满足筛选规则的一组运动信息;根据所述目标运动信息,对所述当前图像块执行帧间预测;发送包括所述目标运动信息的索引信息的码流。
第六方面,本申请提供一种用于解码视频数据的设备,所述设备包括:
存储器,用于存储码流形式的视频数据;
视频解码器,用于从码流中解码出索引信息,该索引信息用于确定目标运动信息;确定当前图像块的候选运动信息列表,所述候选运动信息列表包括至少一组第一候选运动信息、至少一组第二候选运动信息,以及用于索引所述第一候选运动信息和所述第二候选运动信息的多个索引信息,所述第一候选运动信息为基于所述当前图像块的第一相邻图像块的预设位置的运动信息和所述第一相邻图像块的运动模型确定的运动信息,所述第二候选运动信息为与所述当前图像块的至少两个预设位置分别相邻的至少两个像素位置的运动信息的集合,所述至少两个像素位置位于所述当前图像块的至少一个第二相邻图像块;根据从码流中解码出的索引信息从所述候选运动信息列表中确定目标运动信息;根据所述目标运动信息,对所述当前图像块执行帧间预测。
第七方面,本申请提供了一种编码设备,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行第一方面的任意一种方法的部分或全部步骤。
第八方面,本申请提供了一种解编码设备,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行第一方面的任意一种方法的部分或全部步骤。
第九方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储了程序代码,其中,所述程序代码包括用于执行第一方面的任意一种方法的部分或全部步骤的指令。
第十方面,本申请实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面的任意一种方法的部分或全部步骤。
应当理解的是,本申请的第二至十方面的技术方案与本申请的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
图1是一种适用于本申请的视频编码方法的示意性流程图;
图2是一种适用于本申请的视频解码方法的示意性流程图;
图3是本申请提供的一种根据基于运动模型的仿射变换融合模式进行预测的方法的示意图;
图4是本申请提供的一种帧间预测的方法的示意性流程图;
图5是本申请提供的一种构造基于组合控制点的运动信息的方法的示意图;
图6是本申请提供的一种基于构建候选运动信息列表的方法的是异性恋流程图;
图7是本申请提供的一种视频编码及解码***的示意性框图;
图8是本申请提供的一种视频编码器的示意性框图;
图9是本申请提供的一种视频解码器的示意性框图;
图10是本申请提供的一种视频数据的帧间预测装置的示意性框图;
图11是本申请提供的一种编码设备或解码设备的示意性框图。
具体实施方式
为了便于理解本申请,首先对本申请提供的技术方案中可能涉及的技术特征进行描述。
图1示出了一种适用于本申请的视频编码方法的示意性流程图。
该视频编码方法包括帧内预测(intra prediction)、帧间预测(interprediction)、变换(transform)、量化(quantization)、熵编码(entropy encode)、环内滤波(in-loop filtering)等环节。将图像划分为编码块之后进行帧内预测或者帧间预测,并且在得到残差之后进行变换量化,最终进行熵编码并输出码流。此处编码块为由像素点组成的M×N大小的阵列(M可以等于N,也可以不等于N),并且已知各个像素点位置的像素值。图1中,P表示预测值,Dn表示残差,uFn'表示重建值(滤波前),Dn'表示残差。
帧内预测是指利用当前图像内已重建区域内像素点的像素值对当前编码块内像素点的像素值进行预测。
帧间预测是在已重建的图像中,为当前图像中的当前编码块寻找匹配的参考块,将参考块中的像素点的像素值作为当前编码块中像素点的像素值的预测信息或者预测值(以下不再区分信息和值),此过程即运动估计,并传输当前编码块的运动信息。
需要说明的是,当前编码块的运动信息包括了预测方向的指示信息(通常为前向预测、后向预测或者双向预测),一个或两个指向参考块的运动矢量,以及参考块所在图像的指示信息(通常记为参考帧索引)。
前向预测是指当前编码块从前向参考图像集合中选择至少一个参考图像获取至少一个参考块。后向预测是指当前编码块从后向参考图像集合中选择至少一个参考图像获取至少一个参考块。双向预测是指从前向和后向参考图像集合中各选择至少一个参考图像获取至少一个参考块。当使用双向预测方法时,当前编码块会存在至少两个参考块,每个参考块各自需要运动矢量和参考帧索引进行指示,然后根据至少两个参考块内像素点的像素值确定当前块内像素点像素值的预测值。
运动估计过程需要为当前编码块在参考图像中搜索多个参考块,最终使用哪一个或者哪几个参考块用作预测则使用率失真优化(rate-distortion optimization,RDO)或者其它方法确定。
利用帧内预测方法或者帧间预测方法得到预测信息之后,根据当前编码块内像素点的像素值和对应的预测信息可以得到残差信息,例如可以通过当前编码块的像素值与参考块的像素值直接相减的方式得到残差信息,也可以是通过其它可能的方式得到残差值信息。然后利用离散余弦变换(discrete cosine transformation,DCT)等方法对残差信息进行变换,再对变换后的残差信息进行量化,熵编码等操作,最终得到码流,以便解码端对码流进行解码。在编码端的处理中,还可以对预测信号和重建残差信号进行滤波操作,进而得到重建信号,并将其作为后续编码的参考信号。
解码端对码流的处理类似于编码端对图像进行编码的逆过程,图2示出了适用于本申请的码流解码方法的示意性流程图。
如图2所示,首先利用熵解码,反量化等操作变换得到残差信息,解码端首先通过解析码流得到当前待解码块的预测模式。如果是帧内预测,则利用当前待解码块周围已重建区域内像素点的像素值构建预测信息。如果是帧间预测,则需要得到当前解码块的运动信息,并使用该运动信息在已重建的图像中确定参考块,将参考块内像素点的像素值作为预测信息。使用预测信息(亦称为预测块)和残差信息(亦称为残差块),经过滤波操作便可以得到当前待解码块的重建信息(亦称为重建块),从而进一步得到重建的部分图像。
在一些可能的实现方式中,可以通过非平动运动模型预测得到当前编码块的运动信息。
在非平动运动模型预测的一些实现方式中,在编解码端使用相同的运动模型推导出当前编码块内每一个子运动补偿单元的运动信息,根据子运动补偿单元的运动信息进行运动补偿,得到预测块,从而提高预测效率。常用的运动模型有6参数仿射模型或者4参数仿射变换模型。
4参数的仿射变换模型如公式(1)所示:
4参数仿射变换模型可以通过两个像素点的运动矢量及其相对于当前编码块左上顶点像素的坐标来表示,将用于表示运动模型参数的像素点记为控制点。若采用左上顶点(0,0)和右上顶点(W,0)像素点作为控制点,则先确定当前编码块左上顶点和右上顶点控制点的运动矢量(vx0,vy0)和(vx1,vy1),然后根据公式(2)推导得到当前编码块中每一个子运动补偿单元的运动信息,其中(x,y)为子运动补偿单元相对于当前编码块左上顶点像素的坐标,W为当前编码块的宽。
6参数的仿射变换模型如公式(3)所示:
6参数仿射变换模型可以通过三个控制点(亦称为预设位置)的运动矢量及其相对于当前编码块左上顶点像素的坐标来表示。若采用左上顶点(0,0)、右上顶点(W,0)和左下顶点(0,H)像素点作为控制点,则先确定当前编码块左上顶点、右上顶点和左下顶点控制点的运动矢量(vx0,vy0)、(vx1,vy1)和(vx2,vy2),然后根据公式(4)推导得到当前编码块中每一个子运动补偿单元的运动信息,其中(x,y)为子运动补偿单元相对于当前编码块左上顶点像素的坐标,W和H分别为当前编码块的宽和高。需要说明的是,在本申请中,宽和高的定义可以参考图像处理领域或视频处理领域标准中相关的标准,例如,宽指的是当前编码块在水平方向上的像素点的数量,高指的是当前编码块在竖直方向上的数量。
8参数的双线性模型如公式(5)所示:
8参数双线性模型可以通过四个控制点的运动矢量及其相对于当前编码块左上顶点像素的坐标来表示。若采用左上顶点(0,0)、右上顶点(W,0)、左下顶点(0,H)和右下定点(W,H)像素点作为控制点,则先确定当前编码块左上顶点、右上顶点、左下顶点和右下顶点控制点的运动矢量(vx0,vy0)、(vx1,vy1)、(vx2,vy2)和(vx3,vy3),然后根据公式(6)推导得到当前编码块中每一个子运动补偿单元的运动信息,其中(x,y)为子运动补偿单元相对于当前编码块左上顶点像素的坐标,W和H分别为当前编码块的宽和高。
采用非平动运动模型进行预测的编码块称为非平动编码块,仿射编码块是一种非平动编码块,可以使用仿射变换融合(affine model merge,AMM)模式获得非平动编码块的控制点的运动信息。仿射变换融合模式有两种,一种是基于运动模型的AMM模式,另一种是基于控制点的复杂融合(complex merge)模式。
图3示出了本申请提供的根据基于运动模型的AMM模式进行预测的方法。
在对当前编码块(也可称为“当前块”)的控制点的运动矢量进行编码时,从相邻编码块(也可称为“相邻块”,例如“空域邻近块”)中按照预设策略选择一个编码块,利用该编码块的角点位置(例如左上顶点和右上顶点)的运动信息推导出当前块角点位置(例如左上顶点和右上顶点)的运动信息,使得当前块与该编码块的运动模型相同。需要说明的是,上述运动模型相同指的是当前块和相邻块在相同坐标系下的运动模型参数值以及参数个数相同,例如,当前块和相邻块均采用4参数仿射编码模型,或者,当前块和相邻块均采用6参数仿射编码模型,或者,当前块和相邻块均采用8参数双线性模型。
如图3所示,A、B、C、D和E为当前块的相邻编码块(即空域邻近块)的像素位置(也可简称为“位置”),按照A、B、C、D、E的顺序遍历,找到一个仿射编码块,获得该仿射编码块的预设位置(亦可称为控制点,例如该仿射编码块的左上顶点和右上顶点)的运动信息,进而推导出当前块的对应的预设位置(亦可称为控制点,例如当前块的左上顶点和右上顶点)的运动信息。需要说明的是,这里示例的A、B、C、D和E也可以理解为像素样本,例如可以是像素点或包括至少两个像素点的像素块。若像素样本为像素块,则该像素块的大小例如为2*2,1*2、4*2、4*4或其他大小。
下面以A为例描述推导过程,其它情况以此类推:
若像素位置A(例如left sample location A)所在的编码块为仿射编码块,则获得该仿射编码块左上顶点(x2,y2)的运动矢量(vx2,vy2)、右上顶点(x3,y3)的运动矢量(vx3,vy3);利用公式(7)计算得到当前编码块左上顶点(x0,y0)的运动矢量(vx0,vy0),利用公式(8)计算得到当前编码块右上顶点(x1,y1)的运动矢量(vx1,vy1)。
需要说明的是,其它获得控制点的运动信息的方法也可以应用到本申请中,为了简洁,在此不再赘述。
由上可知,由于当前块继承相邻块的运动模型,因此,基于运动模型的AMM模式比基于控制点的复杂融合模式具有更高的编码效率,然而,若相邻块的运动信息不可用,则编码端需要重新选择运动估计方法,并且向解码端发送指示信息指示重新选择的运动估计方法,因此增加了视频传输的比特开销,此外,即使相邻块的运动信息可用。
本申请提供了一种视频数据的帧间预测方法,能够减少视频传输的比特开销,此外,还能够扩大基于运动模型的AMM模式的适用范围。
如图4所示,本申请实施例方法400可以包括:
S410,确定当前图像块的候选运动信息列表,所述候选运动信息列表包括至少一组第一候选运动信息、至少一组第二候选运动信息,以及用于索引第一候选运动信息和第二候选运动信息的多个索引信息,多个索引信息与多组候选运动信息一一对应,其中,第一候选运动信息为基于当前图像块的第一相邻图像块的预设位置的运动信息和第一相邻图像块的运动模型确定的运动信息,第二候选运动信息为与当前图像块的至少两个预设位置分别相邻的至少两个像素位置的运动信息的集合,所述至少两个像素位置位于当前图像块的至少一个第二相邻图像块。
S420,从候选运动信息列表中确定一组目标运动信息。
S430,根据所述目标运动信息对所述当前图像块执行帧间预测。
方法400可以由编码端或解码端执行,编码端或解码端可以是硬件设备,也可以是运行在通用硬件设备上的编码软件或解码软件,还可以是具有编码功能的硬件设备与编码软件的集合,或者是具有解码功能的硬件设备与解码软件的集合。应当理解的是,如果该方法400由编码端执行,则S420中,所述一组目标运动信息为至少一组第一候选运动信息和所述至少一组第二候选运动信息中满足筛选规则的一组运动信息,例如所述目标运动信息为所述候选运动信息列表中,编码所述当前图像块的码率失真代价最小的一组运动信息;如果该方法400由解码端执行,则S420中,所述目标运动信息为所述候选运动信息列表中,解码出的索引信息指示的一组运动信息。
当方法400由编码端执行时,上述图像块应理解为编码块,例如,当前图像块为当前编码块,第一相邻图像块为第一相邻编码块,第二相邻图像块为第二相邻编码块;当方法400由解码端执行时,上述图像块均应理解为解码块,例如,当前图像块为当前解码块,第一相邻图像块为第一相邻解码块,第二相邻图像块为第二相解码块。为了简洁,下面主要以编码端执行方法400为例对本申请提供的帧间预测方法进行说明,仅在解码端的处理方式不同时对解码端的帧间预测方法进行说明,若无特别说明,则解码端与解码端执行的操作类似。
本申请对编码端确定候选运动信息列表的方式不做限定,例如,可以通过图3所示的方法获取第一候选运动信息,也可以通过其它方法获取第一运动信息,还可以通过下文所述的方法获取第二候选运动信息,获取第一候选运动信息和第二候选运动信息之后,将第一候选运动信息和第二候选运动信息填入候选运动信息列表。
第一相邻编码块与第二相邻编码块可能相同,也可能不同,如图3所示,第一相邻编码块可以是位置A所在的编码块,第二相邻编码块可以是位置D所在的编码块(图3未示出),此时,第一相邻编码块与第二相邻编码块相异,第二相邻编码块也可以是位置A所在的编码块,此时第二相离编码块与第二相邻编码块相同。
第一相邻编码块和第二相邻编码块可以是当前块的空域相邻编码块,也可以是当前块的时域相邻编码块,本申请对此不作限定,例如空域相邻编码块的范围包括但不限于图3所示的像素位置A、B、C、D和E所在的编码块。
由于第一相邻编码块可能是采用平动运动模型的编码块,也可能是采用非平动运动模型的编码块,因此,当第一相邻编码块为采用平动运动模型的编码块时,第一候选运动信息为平动运动信息,当第一相邻编码块为采用非平动运动模型的编码块时,第一候选运动信息为非平动运动信息,其中,平动运动信息有一个运动矢量或者有两个运动矢量,非平动运动信息包括至少两个运动矢量,因此,一组第一候选运动信息可能仅有一个运动矢量,也可能包括多个运动矢量。
相应地,当第一相邻编码块为采用平动运动模型的编码块时,第一相邻编码块的预设位置例如是图3所示的位置A,当第一相邻编码块为采用非平动运动模型的编码块时,第一相邻编码块的预设位置例如可以是图3的左上顶点(x2,y2)和右上顶点(x3,y3)。
对于第二候选运动信息,当前编码块的至少两个预设位置例如可以是下文的图5中的CP1和CP2,与当前编码块的至少两个预设位置相邻的的至少两个像素位置例如可以是B2和B1,B2和B1可能属于同一个相邻编码块(即,第二相邻编码块),也可能属于不同的相邻编码块。
在本申请中,运动信息包括但不限于运动矢量,例如,一组运动信息包括预测方向的指示信息
(通常为前向预测、后向预测或者双向预测)、一个或两个或两个以上的运动矢量,以及参考帧索引(reference index);应当理解的是,如果一组运动信息为平动运动信息,则该运动信息可以包括一个或两个运动矢量,例如,包括预测方向为前向的运动矢量和/或预测方向为后向的运动矢量。也就是说,一组平动运动信息可能包括一个运动矢量或可能包括预测方向不同的两个运动矢量。如果一组运动信息为非平动运动信息,则该运动信息包括多个运动矢量的组合,例如两个运动矢量的组合,具体可以是两个预设位置(亦称为控制点)的运动矢量的组合,应当理解的是,解码端可以通过两个控制点的运动矢量的组合结合所述两个控制点的位置坐标,计算出当前图像块中任意位置坐标(x,y)的像素的运动矢量,亦可称为计算出当前图像块中每个子运动补偿单元的运动矢量,所述运动矢量指向对应参考帧中的参考块。
编码端确定候选运动信息列表之后,根据筛选规则从候选运动信息列表中筛选出一组目标运动信息,目标运动信息也可称为最佳运动信息,例如,编码端可以采用候选运动信息列表中的各个运动信息进行运动补偿预测,然后通过码率失真优化(rate distortionoptimization,RDO)准则筛选出最佳运动信息,例如所述最佳运动信息编码所述当前编码块的码率失真代价最小,并将最佳运动信息的索引写入码流,随后发送码流。上述RDO准则即筛选规则。
上述示例仅是举例说明,其它确定最佳运动信息的方式也适用于本申请。根据本实施例提供的编码方法,编码端构建包括两种候选运动信息的候选运动信息列表,应理解的是,这里的两种候选运动信息仅仅是为了体现候选运动信息的获取方式(derivation)不同,若两种候选运动信息中的一种不适用于当前编码块,则编码端可以从候选运动信息列表包括的另一种候选运动信息中选择目标运动信息,并将该目标运动信息的索引信息通过码流发送给解码端,由于候选运动信息列表中的候选运动信息具有唯一的索引信息,因此,编码端无需在码流中传递指示编码端使用的候选运动信息列表构建方法的指示信息,从而减小了视频传输的比特开销,此外,若当前块的相邻块为采用基于控制点的复杂融合模式的编码块,则当前块仍然可以使用该相邻块的运动信息进行基于运动模型的AMM模式的运动估计,提高了编码效率。
下面再举出一个本申请提供的帧间预测方法的实施例。
实施例一。
步骤1:构建候选运动信息列表。
步骤1.1,将基于运动模型的运动信息加入候选运动信息列表。
可以按照图3所示的方法遍历当前块周围的相邻块,找到全部的非平动编码块,若非平动编码块的运动模型与当前块的运动模型相同,获得每个非平动编码块的控制点的运动信息,进而推导出当前块的对应控制点的运动信息(即,第一运动信息)。
步骤1.2,将基于组合控制点的运动信息加入候选运动信息列表。
若步骤1.1得到的候选运动信息列表的长度小于预设的列表长度N,则构造基于组合控制点的运动信息(即,第二运动信息),并将该运动信息加入候选运动信息列表。
构造基于组合控制点的运动信息的方法如下:
首先,推导得到各个控制点的运动信息。如图5所示,CPk(k=1,2,3,4)表示第k个控制点。A0、A1、A2、B0、B1、B2和B3为当前块的空域相邻位置,用于预测CPk(k=1,2,3)的运动信息;Tr为当前块的时域相邻位置,用于预测CP4的运动信息。应当理解的是,Tr为当前块的同位置块的右下空域邻近像素位置,其中同位置块为参考图像中与当前块具有相同的大小、形状和坐标的图像块。
CP1、CP2、CP3和CP4的位置坐标分别为(0,0),(W,0),(H,0)和(W,H),其中W和H为当前块的宽度和高度。
对于每个控制点,其运动信息按照以下顺序获得:
-对于CP1,检查顺序依次为B2、A2、B3,如果B2的运动信息可得(available),则采用B2的运动信息。否则,依次检测A2和B3。若三个位置的运动信息均不可得,则无法获得CP1的运动信息。
-对于CP2,检查顺序为B0、B1;
-对于CP3,检测顺序为A0、A1;
-对于CP4,可以采用Tr的运动信息。
此处运动信息可得表示包括X位置的块已经编码并且为帧间编码模式;否则,X位置不可得,X位置例如是位置B2、位置A2、位置B3、位置A0、位置A1、位置B0、位置B1或位置Tr。
需要说明的是,其它获得控制点运动信息的方法也可适用于本发明,在此不做赘述。例如,对于CP1,如果B2、A2、B3均可得,则CP1可以采用{B2、A2、B3}中的任意一个的运动信息,CP2-CP4同理,在此不再赘述。又或者,如图5所示,所述当前图像块的控制点CP1(亦可称为左上像素样本)的运动信息的来源可包括x1个像素样本的运动信息。其中,所述x1个像素样本包括:与所述当前图像块所属的视频帧时域相邻的视频帧之中的与所述当前图像块的左上像素样本LT位置相同的像素样本Col-LT、所述当前图像块的左边的空域相邻图像块A2、所述当前图像块的左上的空域相邻图像块B2、所述当前图像块的上边的空域相邻图像块B3中的至少一个。
接着,将控制点的运动信息进行组合,得到非平动的运动信息。
将两个控制点的运动信息进行组合,用来构建4参数仿射变换模型。两个控制点的组合方式包括如下方式:{CP1,CP4},{CP2,CP3},{CP1,CP2},{CP2,CP4},{CP1,CP3},{CP3,CP4}。例如,采用CP1和CP2控制点构建的4参数仿射变换模型记做Affine(CP1,CP2)。
将三个控制点的运动信息进行组合,用来构建6参数仿射变换模型。三个控制点的组合方式为{CP1,CP2,CP4},{CP1,CP2,CP3},{CP2,CP3,CP4},{CP1,CP3,CP4}。例如,采用CP1、CP2和CP3控制点构建的6参数仿射变换模型,记做Affine(CP1,CP2,CP3)。
将四个控制点的运动信息进行组合,用来构建8参数双线性模型。采用CP1、CP2、CP3和CP4控制点构建的8参数双线性模型,记做Bilinear(CP1,CP2,CP3,CP4)。
按照预置的顺序遍历这些模型,若组合模型对应的控制点运动信息不可得,则认为该模型不可得,若组合模型对应的控制点运动信息可得,则确定该模型的参考帧索引,并将控制点的运动矢量进行缩放,若缩放后的所有控制点的运动信息一致,则该模型失效,否则,将控制点的运动信息加入候选运动信息列表中。
缩放的方法如公式(9)所示。CurPoc表示当前帧的图序计数(picture ordercount,POC)号,DesPoc表示当前块的参考帧的POC号,SrcPoc表示控制点的参考帧的POC号,MVs表示缩放得到的MV。
步骤1.3,补充运动信息。
可选地,若步骤1.2得到的候选运动列表长度小于设定的列表长度N,则将当前块周边邻近的已编码块的运动信息,加入候选运动信息列表中,或者,填充零运动信息(即零运动矢量)。
候选运动信息列表的构建流程图如图6所示。
S601,获取第一候选运动信息,并将第一候选运动信息加入候选运动信息列表,若此时候选运动信息列表的长度(candNum1)小于预设的列表长度N,则执行步骤S602,若此时候选运动信息列表的长度等于N,则结束候选运动信息列表的构建流程。
S602,获取第二候选运动信息,并将第二候选运动信息加入候选运动信息列表,若此时候选运动信息列表的长度(candNum2)小于预设的列表长度N,则执行步骤S603,若此时候选运动信息列表的长度等于N,则结束候选运动信息列表的构建流程。
S603,填充运动信息,该运动信息可以是零运动信息和/或当前块的相邻块的平动运动信息,直至候选运动信息列表的长度值等于N停止填充,结束候选运动信息列表的构建流程。
表1为实施例一构建的候选运动信息列表的例子。
表1
索引值 | 运动模型 | 运动矢量组合 |
0 | 4参数 | MV0、MV1 |
1 | 6参数 | MV0、MV1、MV2 |
2 | 4参数 | MV0’、MV1’ |
3 | 8参数 | MV0、MV1、MV2、MV3 |
4 | 平动 | MV0 |
表1中,MV0、MV1、MV2和MV3分别为当前块的四个控制点的运动矢量,索引值0对应的运动矢量组合为步骤1.1确定的运动信息,索引值2对应的运动矢量组合为步骤1.2确定的运动信息。
需要说明的是,候选运动信息列表中还可以包括预测方向、参考帧索引值等信息。如索引值对应的预测方向为双向,则该项包括前向的参考帧索引及运动矢量组合,以及后向的参考帧索引及运动矢量组合。如索引值对应的预测方向为前向,则该项包括前向的参考帧索引及运动矢量组合;如索引值对应的预测方向为后向,则该项包括后向的参考帧索引及运动矢量组合。进一步的,如果编码端和解码端约定了特定数量的运动矢量的组合为特定位置的控制点的运动矢量的组合,例如两个运动矢量的组合,默认是左上顶点和右上顶点的两个控制点的运动矢量的组合,则候选运动该信息列表中不需要体现与每个运动矢量组合对应的位置坐标组合;反之,候选运动该信息列表中,非平动运动模型下的每个索引对应的候选项(candidate)包括多个控制点的运动矢量以及对应的多个控制点的位置坐标。
步骤2:确定最佳运动信息。
在解码端,从码流中解码得到块级的索引,例如当前块的最佳候选运动信息在候选运动信息列表中的索引值,即可得到当前块控制点的运动矢量预测值。
可以直接将运动矢量预测值作为当前块控制点的运动矢量,该方法为基于融合(merge)模式获取运动矢量的方法,
或者,
从码流中进一步解码得到各个控制点的运动矢量差值,把运动矢量预测值和运动矢量差值分别相加,得到当前块的控制点的运动矢量,该方法为基于高级运动矢量预测(advanced motion vector prediction,AMVP)模式获取运动矢量的方法。
在编码端,分别采用候选运动信息列表中的运动信息进行运动补偿预测,然后通过RDO准则选择出最佳运动信息及其索引值,并将该索引值写入码流。
可以直接将运动矢量预测值作为当前块控制点的运动矢量(合并预测模式(Merge)),
或者,
再进行运动估计,搜索得到最终的运动矢量,并将各个控制点的运动矢量预测差值(motion vector difference,MVD)写入码流(AMVP模式),这里的MVD即可理解为估计得到的运动矢量与列表中选择的最佳运动矢量的差值。
步骤3:根据控制点的运动信息及其运动模型,确定当前块中每个像素点(x,y)或每个子运动补偿单元的运动矢量(Vx,Vy),在当前块的预测方向上的参考帧索引所指示的参考帧中,根据当前块中各像素点的运动矢量所指向的位置获得各像素点的预测值。
应当理解的是,在一种实现方式中,如果运动矢量组合不限于指定位置的运动矢量组合,则在候选运动信息列表中,每个运动矢量组合具有与之关联的位置坐标,换言之,每个运动矢量组合中的每个运动矢量与该运动矢量对应的控制点的位置坐标一一对应;
在另一种实现中,如果运动矢量组合为指定位置的运动矢量组合,例如4参数的仿射运动模型对应的运动矢量组合为当前块的左上顶点和右上顶点的运动矢量组合;6参数的仿射运动模型对应的运动矢量组合为当前块的左上顶点、左下顶点和右上顶点的运动矢量组合,则在候选运动信息列表中,不需要包括与每个运动矢量组合对应的位置坐标。
应当理解的是,4参数的仿射运动模型对应2个运动矢量的组合,6参数的仿射运动模型对应3个运动矢量的组合,8参数的仿射运动模型对应4个运动矢量的组合,则在候选运动信息列表中,通过运动矢量组合包括的运动矢量的个数可以间接的推导出所需使用的仿射运动模型,因此,在候选运动信息列表中也可以不包括运动模型信息域。
应理解的是,这里的步骤3中假设步骤2所选择的最佳运动信息对应的运动模型是非平动运动模型的情况;如果步骤2中所选择的最佳运动信息为一个运动矢量或对应于双向预测方向的两个运动矢量,换言之,如果步骤2中所选择的最佳运动信息对应的运动模型是平动运动模型,则将最佳运动信息中的运动矢量作为当前块的运动矢量或者将最佳运动信息中的运动矢量和MVD之和作为当前块的运动矢量,在当前块的预测方向上的参考帧索引所指示的参考帧中,根据当前块的运动矢量所指向的位置获得当前块的预测块。
可选地,方法400中,第一候选运动信息的索引信息的比特数小于或等于第二候选运动信息的索引信息的比特数。
第一候选运动信息为基于运动模型的运动信息,根据第一候选运动信息进行编码的效率高于根据第二候选运动信息进行编码的效率,因此,第一候选运动信息为目标运动信息的概率较大,因此,可以将第一候选运动信息的索引信息设置为比特数较小的索引信息,有利于减小视频传输的比特开销。
例如,可以设置先加入候选运动信息列表的运动信息对应比特数较小的索引信息,后加入候选运动信息列表的运动信息对应比特数较大的索引信息,在构建候选运动信息列表时,先将第一候选运动信息加入候选运动信息列表,再将第二候选运动信息加入候选运动信息列表,从而使得第一候选运动信息的索引信息的比特数小于第二候选运动信息的索引信息的比特数。
可选地,所述确定当前编码块的候选运动信息列表,包括:
S411,当第一相邻编码块为采用平动运动模型的相邻编码块时,将第一相邻编码块的运动信息作为一组第一候选运动信息加入候选运动信息列表。和/或,
S412,当第一相邻编码块为采用非平动运动模型的编码块时,根据第一相邻编码块的至少两个预设位置的运动信息以及第一相邻编码块的运动模型推导出当前编码块对应的至少两个预设位置的运动信息,并将当前编码块对应的至少两个预设位置的运动信息作为一组第一候选运动信息加入候选运动信息列表。
若第一相邻编码块的运动模型为平动运动模型,则无需对第一相邻编码块的运动信息做任何处理,可以将其作为第一候选运动信息直接加入候选运动信息列表,从而提高了编码效率;若第一相邻编码块的运动模型为非平动运动模型,则需要根据该非平动运动模型对应的公式以及第一相邻编码块的预设位置的运动信息生成第一候选运动信息。
下面再举一个本申请提供的帧间预测的实施例。
实施例二。
步骤1:构建候选运动信息列表。
步骤1.1,将基于运动模型的运动信息加入候选运动信息列表。
可以按照图3所示的方法遍历当前块周围的相邻块,若相邻块为平动编码块,则直接将其运动信息填入候选运动信息列表,若相邻块为非平动块,且非平动编码块的运动模型与当前块的运动模型相同,获得每个非平动编码块的控制点的运动信息,进而推导出当前块的对应控制点的运动信息(即,第一运动信息)。
步骤1.2,将基于组合控制点的运动信息加入候选运动信息列表。
实施例二的步骤1.2可参照实施例一的步骤1.2,为了简洁,在此不再赘述。
步骤1.3,补充运动信息。
可选地,若步骤1.2得到的候选运动列表长度小于设定的列表长度N,则填充零运动信息(即零运动矢量)。
表2为实施例二构建的候选运动信息列表的例子。
表2
索引值 | 运动模型 | 运动矢量组合 |
0 | 4参数 | MV0、MV1 |
1 | 6参数 | MV0、MV1、MV2 |
2 | 平动 | MV0 |
3 | 4参数 | MV0’、MV1’ |
4 | 8参数 | MV0、MV1、MV2、MV3 |
表2中,MV0、MV1、MV2和MV3分别为当前块的四个控制点的运动矢量,索引值0对应的运动矢量组合为步骤1.1确定的运动信息,索引值3对应的运动矢量组合为步骤1.2确定的运动信息。
需要说明的是,候选运动信息列表中还可以包括预测方向、参考帧索引值等信息。如索引值对应的预测方向为双向,则该项包括前向的参考帧索引及运动矢量组合,以及后向的参考帧索引及运动矢量组合。如索引值对应的预测方向为前向,则该项包括前向的参考帧索引及运动矢量组合;如索引值对应的预测方向为后向,则该项包括后向的参考帧索引及运动矢量组合。
步骤2:确定最佳运动信息。
在解码端,从码流中解码得到当前块的最佳候选运动信息在列表中的索引值,即可得到当前块控制点的运动矢量预测值。
可以直接将运动矢量预测值作为当前块控制点的运动矢量(Merge模式),
或者,
从码流中解码得到各个控制点的运动矢量差值,把运动矢量预测值和MVD分别相加,得到当前块的控制点的运动矢量(AMVP模式)。
在编码端,分别采用候选运动信息列表中的运动信息进行运动补偿预测,然后通过RDO准则选择出最佳运动信息及其索引值,并将该索引值写入码流。
可以直接将运动矢量预测值作为当前块控制点的运动矢量(Merge模式),
或者,
再进行运动估计,搜索得到最终的运动矢量,并将各个控制点的MVD写入码流(AMVP模式)。
步骤3:根据控制点的运动信息及其运动模型,确定当前块中每个像素点(x,y)或每个子运动补偿单元的运动矢量(Vx,Vy),在当前块的预测方向上的参考帧索引所指示的参考帧中,根据当前块中各像素点的运动矢量所指向的位置获得各像素点的预测值。
应当理解的是,在一种实现方式中,如果运动矢量组合不限于指定位置的运动矢量组合,则在候选运动信息列表中,每个运动矢量组合具有与之关联的位置坐标,换言之,每个运动矢量组合中的每个运动矢量与该运动矢量对应的控制点的位置坐标一一对应;
在另一种实现中,如果运动矢量组合为指定位置的运动矢量组合,例如4参数的仿射运动模型对应的运动矢量组合为当前块的左上顶点和右上顶点的运动矢量组合;6参数的仿射运动模型对应的运动矢量组合为当前块的左上顶点、左下顶点和右上顶点的运动矢量组合,则在候选运动信息列表中,不需要包括与每个运动矢量组合对应的位置坐标。
应当理解的是,4参数的仿射运动模型对应2个运动矢量的组合,6参数的仿射运动模型对应3个运动矢量的组合,8参数的仿射运动模型对应4个运动矢量的组合,则在候选运动信息列表中,通过运动矢量组合包括的运动矢量的个数可以间接的推导出所需使用的仿射运动模型,因此,在候选运动信息列表中也可以不包括运动模型信息域。需要说明的是,运动信息列表包括了预测方向的信息,可以根据此信息进行区分不同的运动模型,例如,双向4参数模型包括2个前向,2个后向运动矢量;双向平动模型则包括1个前向,1个后向运动矢量。
可选地,当采用非平动运动模型的第一相邻编码块的数量大于或等于数量阈值时,第三候选运动信息的索引信息的比特数小于第二候选运动信息的比特数,第三候选运动信息为基于采用非平动运动模型的第一相邻编码块的至少两个预设位置的运动信息以及采用非平动运动模型的第一相邻编码块的运动模型推导出的一组第一候选运动信息。
以图3为例,位置A所在的编码块为采用非平动运动模型的第一相邻编码块,左上顶点(x2,y2)和右上顶点(x3,y3)为第一相邻编码块的至少两个预设位置,V2和V3为该至少两个预设位置的运动信息,V0和V1为根据V2和V3推导出的一组第一候选运动信息(即,第三候选运动信息)。
若采用非平动运动模型的第一相邻编码块的数量大于或等于数量阈值,则说明当前编码块为采用非平动运动模型的编码块的概率较大,因此,可以将基于非平动运动模型的第一相邻编码块推导出的第一候选运动信息(即,第三候选运动信息)的索引信息设置为比特数较小的索引信息,由于目标运动信息为第三候选运动信息的概率较大,因此,本实施例有利于减少视频传输的比特数。
例如,可以设置先加入候选运动信息列表的运动信息对应比特数较小的索引信息,后加入候选运动信息列表的运动信息对应比特数较大的索引信息,在构建候选运动信息列表时,先将第三候选运动信息加入候选运动信息列表,再将第二候选运动信息加入候选运动信息列表,从而使得第三候选运动信息的索引信息的比特数小于第二候选运动信息的索引信息的比特数。
可选地,当候选运动信息列表的长度小于长度阈值,且第一相邻编码块还包括采用平动运动模型的第一相邻编码块时,候选运动信息列表还包括采用平动运动模型的第一相邻编码块的运动信息,所述采用平动运动模型的第一相邻编码块的运动信息为一组第一候选运动信息,所述采用平动运动模型的第一相邻编码块的运动信息的索引信息的比特数大于或等于第二候选运动信息的索引信息的比特数。
在本申请中,候选运动信息列表的长度指的是候选运动信息列表能够容纳的运动信息的数量。
若第二候选运动信息加入候选运动信息列表之后,候选运动信息列表长度小于长度阈值,并且第一相邻编码块还包括采用平动运动模型的第一相邻编码块,则将采用平动运动模型的第一相邻编码块的运动信息作为第一候选运动信息加入候选运动信息列表,并将该第一候选运动信息的索引信息设置为比特数较大的索引信息,若候选运动信息列表的长度仍然小于长度阈值,再将零运动信息加入候选运动信息列表。
可选地,当采用非平动运动模型的第一相邻编码块的数量小于或等于数量阈值时,所述采用平动运动模型的第一相邻编码块的运动信息为一组第一候选运动信息,且所述采用平动运动模型的第一相邻编码块的运动信息的索引信息的比特数小于第二候选运动信息的比特数。
若采用非平动运动模型的第一相邻编码块的数量小于或等于数量阈值,则说明当前编码块为采用平动运动模型的编码块的概率较大,因此,可以将采用平动运动模型的第一相邻编码块的运动信息作为一组第一候选运动信息,并将该组第一候选运动信息的索引信息设置为比特数较小的索引信息,由于目标运动信息为该第一候选运动信息的概率较大,因此,本实施例有利于减少视频传输的比特开销。
以图3为例,若位置A所在的编码块为采用平动运动模型的第一相邻编码块,则可以将位置A所在的编码块的运动信息作为当前块左下角的控制点的运动信息(即,第一候选运动信息)。
可以设置先加入候选运动信息列表的运动信息对应比特数较小的索引信息,后加入候选运动信息列表的运动信息对应比特数较大的索引信息,在构建候选运动信息列表时,先将采用平动运动模型的第一相邻编码块的运动信息作为一组第一候选运动信息加入候选运动信息列表,再将第二候选运动信息加入候选运动信息列表,从而有利于减少目标运动信息的索引信息的比特数。
可选地,当候选运动信息列表的长度小于长度阈值,且第一相邻编码块还包括采用非平动运动模型的第一相邻编码块时,候选运动信息列表还包括第四候选运动信息,第四候选运动信息为基于采用非平动运动模型的第一相邻编码块的至少两个预设位置的运动信息以及采用非平动运动模型的第一相邻编码块的运动模型推导出的一组第一候选运动信息,第四候选运动信息的索引信息的比特数大于或等于第二候选运动信息的索引信息的比特数。
若第二候选运动信息加入候选运动信息列表之后,候选运动信息列表长度小于长度阈值,并且第一相邻编码块还包括采用非平动运动模型的第一相邻编码块,则将基于采用非平动运动模型的第一相邻编码块的运动信息推导出的运动信息作为第一候选运动信息加入候选运动信息列表,并将该第一候选运动信息的索引信息设置为比特数较大的索引信息,若候选运动信息列表的长度仍然小于长度阈值,再将零运动信息加入候选运动信息列表。
以图3为例,假设位置A所在的编码块为采用非平动运动模型的第一相邻编码块,左上顶点(x2,y2)和右上顶点(x3,y3)为该第一相邻编码块的至少两个预设位置,V2和V3为该至少两个预设位置的运动信息,则V0和V1为根据V2和V3推导出的一组第一候选运动信息(即,第四候选运动信息)。
下面,再举一个本申请提供的帧间预测的方法的实施例。
实施例三。
步骤1:构建候选运动信息列表。
如图3所示,按照A,B,C,D,E的顺序遍历当前块周边的相邻块,统计相邻块中非平动编码块的数量M。
若M大于预置的数量阈值T,则运动信息的加入顺序为:
首先将基于非平动编码块的运动信息确定的当前块的运动信息(即一些第一候选运动信息)加入候选运动信息列表,即根据所述非平动编码块的至少两个预设位置的运动信息以及所述非平动编码块的运动模型推导出所述当前块对应的至少两个预设位置的运动信息,并将所述当前块对应的至少两个预设位置的运动信息作为一组第一候选运动信息加入所述候选运动信息列表;
其次将基于组合控制点的运动信息(即第二候选运动信息)加入候选运动信息列表;
若此时候选运动信息列表的长度小于设定的列表长度N,则进一步将基于平动编码块的运动信息确定的当前块的运动信息(即另外的一些第一候选运动信息)加入候选运动信息列表;
若此时候选运动信息列表的长度仍然小于设定的列表长度N,再填充零运动信息。
若M小于或等于预置的数量阈值T,则运动信息的加入顺序为:
首先将基于平动编码块的运动信息确定的当前块的运动信息(即一些第一候选运动信息)加入候选运动信息列表;
其次将基于组合控制点的运动信息(即第二候选运动信息)加入候选运动信息列表;
若此时候选运动信息列表的长度小于设定的列表长度N,则进一步将基于非平动编码块的运动信息推导的当前块的运动信息(即另外的一些第一候选运动信息)加入候选运动信息列表;
若此时候选运动信息列表的长度仍然小于设定的列表长度N,再填充零运动信息。
基于非平动编码块的运动信息或平动编码块的运动信息确定当前块的运动信息的方法可参考实施例一的步骤1.1和步骤1.2,为了简洁,在此不再赘述。
可选地,第一候选运动信息和第二候选运动信息均为当前编码块的第一组位置的运动信息,当前编码块中至少两个预设位置为第二组位置,所述确定当前编码块的候选运动信息列表,包括:当第二组位置与所述第一组位置相异时,根据位置变换公式以及第二组位置对应的运动信息推导出第二候选运动信息。
当第一候选运动信息对应的位置的数量和第二候选运动信息对应的位置的数量相同时,根据本实施得到的候选运动信息列表中的运动信息均为特定位置的运动信息,从而减小了运动估计的复杂度。
以图5为例,假设第一候选运动信息为CP1和CP2对应的运动信息,则CP1和CP2为第一组位置,若第二候选运动信息所基于的像素位置是位置A1和位置A2(即,第二组位置),则编码端可以根据位置变换公式以及第二组位置对应的运动信息得到CP1和CP2对应的第二候选运动信息。
可选地,第一候选运动信息为当前编码块的第一组位置的运动信息,第二候选运动信息为当前编码块的第三组位置的运动信息,所述方法还包括:当第一组位置与第三组位置相异时,根据位置变换公式以及第二候选运动信息推导出第五候选运动信息,所述第五候选运动信息对应的位置与第一组位置相同。
当第一候选运动信息对应的位置的数量和第二候选运动信息对应的位置的数量相同时,根据本实施得到的候选运动信息列表中的运动信息均为特定位置的运动信息,从而减小了运动估计的复杂度。
以图5为例,假设第一候选运动信息为CP1和CP2对应的运动信息,则CP1和CP2为第一组位置,若第二候选运动信息为CP2和CP3(即,第三组位置)对应的运动信息,则编码端可以根据位置变换公式以及CP2和CP3得到CP1和CP2对应的第二候选运动信息。
在实施例一、实施例二和实施例三中,可将不同控制点的组合转换为同一位置的控制点。
例如将{CP1,CP4},{CP2,CP3},{CP2,CP4},{CP1,CP3},{CP3,CP4}组合得到的4参数仿射变换模型转换为控制点{CP1,CP2}来表示。转换方法为将控制点的运动矢量及其坐标信息,代入公式(1),得到模型参数,再将{CP1,CP2}的坐标信息代入,得到其运动矢量。
例如将{CP1,CP2,CP4},{CP2,CP3,CP4},{CP1,CP3,CP4}组合的6参数仿射变换模型转换为控制点{CP1,CP2,CP3}来表示。转换方法为将控制点的运动矢量及其坐标信息,代入公式(3),得到模型参数,再将{CP1,CP2,CP3}的坐标信息代入,得到其运动矢量。
公式(1)和公式(3)相当于位置变换公式。
上文详细描述了本申请提供的视频数据的帧间预测方法,下面,将结合附图对本申请提供的视频编解码***以及视频数据的编码装置和解码装置进行清楚、完整地描述。
图7为本申请实施例中所描述的一种实例的视频译码***1的框图。如本文所使用,术语“视频译码器”一般是指视频编码器和视频解码器两者。在本申请中,术语“视频译码”或“译码”可一般地指代视频编码或视频解码。视频译码***1的视频编码器100和视频解码器200用于根据本申请提出的帧间预测方法来预测当前经译码图像块或其子运动补偿单元的运动信息,例如运动矢量,使得预测出的运动矢量最大程度上接近使用运动估算方法得到的运动矢量从而进一步的改善编解码性能。
如图7中所示,视频译码***1包含源装置10和目的地装置20。源装置10产生经编码视频数据。因此,源装置10可被称为视频编码装置。目的地装置20可对由源装置10所产生的经编码的视频数据进行解码。因此,目的地装置20可被称为视频解码装置。源装置10、目的地装置20或两个的各种实施方案可包含一或多个处理器以及耦合到所述一或多个处理器的存储器。所述存储器可包含但不限于随机存取存储器(random access memory,RAM)、只读存储器(read only memory,ROM)、可擦除可编程只读存储器(erasable programmableROM,EPROM)、快闪存储器或可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体,如本文所描述。
源装置10和目的地装置20可以包括各种装置,包含桌上型计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者。
目的地装置20可经由链路30从源装置10接收经编码视频数据。链路30可包括能够将经编码视频数据从源装置10移动到目的地装置20的一或多个媒体或装置。在一个实例中,链路30可包括使得源装置10能够实时将经编码视频数据直接发射到目的地装置20的一或多个通信媒体。在此实例中,源装置10可根据通信标准(例如无线通信协议)来调制经编码视频数据,且可将经调制的视频数据发射到目的地装置20。所述一或多个通信媒体可包含无线和/或有线通信媒体,例如射频(radio frequency,RF)频谱或一或多个物理传输线。所述一或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例如为局域网、广域网或全球网络(例如,因特网)。所述一或多个通信媒体可包含路由器、交换器、基站或促进从源装置10到目的地装置20的通信的其它设备。
在另一实例中,可将经编码数据从输出接口140输出到存储装置40。类似地,可通过输入接口240从存储装置40存取经编码数据。存储装置40可包含多种分布式或本地存取的数据存储媒体中的任一者,例如硬盘驱动器、蓝光光盘、数字通用光盘(digitalversatile disc,DVD)、只读光盘(CD-ROM)、快闪存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储媒体。
在另一实例中,存储装置40可对应于文件服务器或可保持由源装置10产生的经编码视频的另一中间存储装置。目的地装置20可经由流式传输或下载从存储装置40存取所存储的视频数据。文件服务器可为任何类型的能够存储经编码的视频数据并且将经编码的视频数据发射到目的地装置20的服务器。实例文件服务器包含网络服务器(例如,用于网站)、文件传输协议(file transfer protocol,FTP)服务器、网络附接式存储(networkattached storage,NAS)装置或本地磁盘驱动器。目的地装置20可通过任何标准数据连接(包含因特网连接)来存取经编码视频数据。这可包含无线信道(例如,无线保真(wireless-fidelity,Wi-Fi)连接)、有线连接(例如,数字用户线(digital subscriber line,DSL)、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码视频数据的两者的组合。经编码视频数据从存储装置40的传输可为流式传输、下载传输或两者的组合。
本申请的运动矢量预测技术可应用于视频编解码以支持多种多媒体应用,例如空中电视广播、有线电视发射、***发射、串流视频发射(例如,经由因特网)、用于存储于数据存储媒体上的视频数据的编码、存储在数据存储媒体上的视频数据的解码,或其它应用。在一些实例中,视频译码***1可用于支持单向或双向视频传输以支持例如视频流式传输、视频回放、视频广播和/或视频电话等应用。
图7中所说明的视频译码***1仅为实例,并且本申请的技术可适用于未必包含编码装置与解码装置之间的任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其它实例中,数据从本地存储器检索、在网络上流式传输等等。视频编码装置可对数据进行编码并且将数据存储到存储器,和/或视频解码装置可从存储器检索数据并且对数据进行解码。在许多实例中,由并不彼此通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的装置执行编码和解码。
在图7的实例中,源装置10包含视频源120、视频编码器100和输出接口140。在一些实例中,输出接口140可包含调节器/解调器(调制解调器)和/或发射器。视频源120可包括视频捕获装置(例如,摄像机)、含有先前捕获的视频数据的视频存档、用以从视频内容提供者接收视频数据的视频馈入接口,和/或用于产生视频数据的计算机图形***,或视频数据的此些来源的组合。
视频编码器100可对来自视频源120的视频数据进行编码。在一些实例中,源装置10经由输出接口140将经编码视频数据直接发射到目的地装置20。在其它实例中,经编码视频数据还可存储到存储装置40上,供目的地装置20以后存取来用于解码和/或播放。
在图7的实例中,目的地装置20包含输入接口240、视频解码器200和显示装置220。在一些实例中,输入接口240包含接收器和/或调制解调器。输入接口240可经由链路30和/或从存储装置40接收经编码视频数据。显示装置220可与目的地装置20集成或可在目的地装置20外部。一般来说,显示装置220显示经解码视频数据。显示装置220可包括多种显示装置,例如,液晶显示器(liquid crystal display,LCD)、等离子显示器、有机发光二极管(organic light-emitting diode,OLED)显示器或其它类型的显示装置。
尽管图7中未图示,但在一些方面,视频编码器100和视频解码器200可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器单元或其它硬件和软件,以处置共同数据流或单独数据流中的音频和视频两者的编码。在一些实例中,如果适用的话,那么混流-分流(multiplex-demultiplex,MUX-DEMUX)单元可符合ITU H.223多路复用器协议,或例如用户数据报协议(user datagram protocol,UDP)等其它协议。
视频编码器100和视频解码器200各自可实施为例如以下各项的多种电路中的任一者:一或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)、离散逻辑、硬件或其任何组合。如果部分地以软件来实施本申请,那么装置可将用于软件的指令存储在合适的非易失性计算机可读存储媒体中,且可使用一或多个处理器在硬件中执行所述指令从而实施本申请技术。前述内容(包含硬件、软件、硬件与软件的组合等)中的任一者可被视为一或多个处理器。视频编码器100和视频解码器200中的每一者可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为相应装置中的组合编码器/解码器(编码解码器)的一部分。
本申请可大体上将视频编码器100称为将某些信息“发信号通知”或“发射”到例如视频解码器200的另一装置。术语“发信号通知”或“发射”可大体上指代用以对经压缩视频数据进行解码的语法元素和/或其它数据的传送。此传送可实时或几乎实时地发生。替代地,此通信可经过一段时间后发生,例如可在编码时在经编码位流中将语法元素存储到计算机可读存储媒体时发生,解码装置接着可在所述语法元素存储到此媒体之后的任何时间检索所述语法元素。
视频编码器100和视频解码器200可根据例如高效视频编码(HEVC)等视频压缩标准或其扩展来操作,并且可符合HEVC测试模型(HM)。或者,视频编码器100和视频解码器200也可根据其它业界标准来操作,所述标准例如是ITU-T H.264、H.265标准,或此类标准的扩展。然而,本申请的技术不限于任何特定编解码标准。
在一个实例中,一并参阅图4,视频编码器100用于:将与当前待编码的图像块相关的语法元素编码入数字视频输出位流(简称为位流或码流),这里将用于当前图像块帧间预测的语法元素简称为帧间预测数据,其中,帧间预测数据可以包括用于指示目标运动信息的索引信息,为了确定用于对当前图像块进行编码的目标运动信息,视频编码器100还用于确定或生成候选运动信息列表(S410),并根据筛选规则(例如RDO)从候选运动信息列表中确定目标运动信息(S420),视频编码器100还用于基于确定的目标运动信息,编码所述当前图像块(S430),这里的编码过程可以包括基于确定的目标运动信息,预测所述当前图像块中每个子运动补偿单元(亦可称为基本运动补偿单元)的运动信息,并利用所述当前图像块中一个或多个子运动补偿单元的运动信息对所述当前图像块执行帧间预测。
应理解,基本运动补偿单元是进行运动补偿的最小单元,在单元内具有统一的运动信息,在本发明实施例中,采用像素点作为基本运动补偿单元,也可以使用像素矩阵作为基本运动补偿单元等,本申请不作限定。
应当理解的是,当视频编码器使用AMVP模式进行帧间预测时,如果由基于本申请提出的新的帧间预测方法预测出的运动信息产生的预测块与当前待编码图像块(即原始块)之间的差值(即残差)为0,则视频编码器100中只需要将与当前待编码的图像块相关的语法元素编入位流(亦称为码流);反之,除了语法元素外,还需要将相应的残差编入位流。当视频编码器使用融合模式进行帧间预测时,只需将目标运动信息的索引信息编入位流。
在另一实例中,一并参阅图4,视频解码器200用于:从位流中解码出与当前待解码的图像块相关的语法元素,并确定候选运动信息列表(S410),这里将用于当前图像块帧间预测的语法元素简称为帧间预测数据,所述帧间预测数据包括用于确定目标运动信息的索引信息,视频解码器200基于帧间预测数据中的索引信息确定目标运动信息(S420),并且基于确定的目标运动信息解码所述当前图像块(S430),这里的解码过程可以包括基于确定的目标运动信息,预测所述当前图像块中一个或多个基本运动补偿单元的运动信息,并利用所述当前图像块中一个或多个基本运动补偿单元的运动信息对所述当前图像块执行帧间预测。
可选地,视频解码器200确定的候选运动信息列表可以是完整的列表(即,与视频编码器确定的候选运动信息列表相同的列表),也可以是不完整的列表,例如,包括目标运动信息的部分列表,例如如果码流中携带的用于确定目标运动信息的索引值为3,则确定的不完整的列表包括索引值为0,1,2和3的候选运动信息,而可以不包括索引值为4和5等的候选运动信息。
由上可见,本申请提供的视频编码器100和视频解码器200,构建包括两种候选运动信息的候选运动信息列表,该两种候选运动信息具有统一编排的索引信息,若两种候选运动信息中的一种不适用于当前图像块,则视频编码器100可以从候选运动信息列表包括的另一种候选运动信息中选择目标运动信息,并将该目标运动信息的索引信息通过码流发送给视频解码器200,由于候选运动信息列表中的候选运动信息具有唯一的索引信息,因此,视频编码器100无需在码流中传递指示编码端使用的候选运动信息列表构建方法的指示信息,从而减少了视频传输的比特开销。
图8为本申请实施例中所描述的一种实例的视频编码器100的框图。视频编码器100用于将视频输出到后处理实体41。后处理实体41表示可处理来自视频编码器100的经编码视频数据的视频实体的实例,例如媒体感知网络元件(MANE)或拼接/编辑装置。在一些情况下,后处理实体41可为网络实体的实例。在一些视频编码***中,后处理实体41和视频编码器100可为单独装置的若干部分,而在其它情况下,相对于后处理实体41所描述的功能性可由包括视频编码器100的相同装置执行。在某一实例中,后处理实体41是图7的存储装置40的实例。
视频编码器100可根据本申请提出的方法执行视频图像块的帧间预测。
在图8的实例中,视频编码器100包括预测处理单元108、滤波器单元106、经解码图像缓冲器(decoded picture buffer,DPB)107、求和器112、变换器101、量化器102和熵编码器103。预测处理单元108包括帧间预测器110和帧内预测器109。为了图像块重构,视频编码器100还包含反量化器104、反变换器105和求和器111。滤波器单元106既定表示一或多个环路滤波器,例如去块滤波器、自适应环路滤波器(adaptive loop filter,ALF)和样本自适应偏移(sample adaptive offset,SAO)滤波器。尽管在图8中将滤波器单元106示出为环路内滤波器,但在其它实现方式下,可将滤波器单元106实施为环路后滤波器。在一种示例下,视频编码器100还可以包括视频数据存储器、分割单元(图中未示意)。
视频数据存储器可存储待由视频编码器100的组件编码的视频数据。可从视频源120获得存储在视频数据存储器中的视频数据。DPB 107可为参考图像存储器,其存储用于由视频编码器100在帧内、帧间译码模式中对视频数据进行编码的参考视频数据。视频数据存储器和DPB 107可由多种存储器装置中的任一者形成,例如包含同步DRAM(SDRAM)的动态随机存取存储器(DRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM),或其它类型的存储器装置。视频数据存储器和DPB 107可由同一存储器装置或单独存储器装置提供。在各种实例中,视频数据存储器可与视频编码器100的其它组件一起在芯片上,或相对于那些组件在芯片外。
如图8中所示,视频编码器100接收视频数据,并将所述视频数据存储在视频数据存储器中。分割单元将所述视频数据分割成若干图像块,而且这些图像块可以被进一步分割为更小的块,例如基于四叉树结构或者二叉树结构的图像块分割。此分割还可包含分割成条带(slice)、片(tile)或其它较大单元。视频编码器100通常说明编码待编码的视频条带内的图像块的组件。所述条带可分成多个图像块(并且可能分成被称作片的图像块集合)。预测处理单元108(具体是预测处理单元108中的帧间预测单元110)可以确定当前图像块的候选运动信息列表,并根据筛选规则从该候选运动信息列表中确定目标运动信息,并根据目标运动信息,对当前图像块执行帧间预测预测,预处理单元108可以将所得经帧内、帧间译码的块提供给求和器112以产生残差块,且提供给求和器111以重构用作参考图像的经编码块。此外,预处理单元108(具体是,帧间预测单元110)可以将目标运动信息的索引信息发送至熵编码器103,以便于熵编码器103将目标运动信息的索引信息编入码流。
预测处理单元108内的帧内预测器109可相对于与待编码当前块在相同帧或条带中的一或多个相邻块执行当前图像块的帧内预测性编码,以去除空间冗余。预测处理单元108内的帧间预测器110可相对于一或多个参考图像中的一或多个预测块执行当前图像块的帧间预测性编码以去除时间冗余。
具体的,帧间预测器110可用于确定用于确定目标运动信息。举例来说,帧间预测器110可使用速率-失真分析来计算候选运动信息列表中的各种运动信息的速率-失真值,并从中选择具有最佳速率-失真特性的运动信息。速率失真分析通常确定经编码块与经编码以产生所述经编码块的原始的未经编码块之间的失真(或误差)的量,以及用于产生经编码块的位速率(也就是说,位数目)。例如,帧间预测器110可确定候选运动信息集合中编码所述当前图像块的码率失真代价最小的运动信息为用于对当前图像块进行帧间预测的目标运动信息。下文将详细介绍帧间预测性编码过程。
帧间预测器110用于基于确定的目标运动信息,预测当前图像块中一个或多个基本运动补偿单元的运动信息(例如运动矢量),并利用当前图像块中一个或多个基本运动补偿单元的运动信息(例如运动矢量)获取或产生当前图像块的预测块。帧间预测器110可在参考图像列表中的一者中定位所述运动向量指向的预测块。帧间预测器110还可产生与图像块和视频条带相关联的语法元素以供视频解码器200在对视频条带的图像块解码时使用。又或者,一种示例下,帧间预测器110利用每个基本运动补偿单元的运动信息执行运动补偿过程,以生成每个基本运动补偿单元的预测块,从而得到当前图像块的预测块;应当理解的是,这里的帧间预测器110执行运动估计和运动补偿过程。
具体的,在为当前图像块选择目标运动信息之后,帧间预测器110可将指示当前图像块的目标运动信息提供到熵编码器103,以便于熵编码器103编码指示所选目标运动信息的信息。在本申请中,熵编码器103可在所发射的位流中包含与当前图像块相关的帧间预测数据,其可包括索引信息,以表示从候选运动信息列表中选择的目标运动信息。
帧内预测器109可对当前图像块执行帧内预测。明确地说,帧内预测器109可确定用来编码当前块的帧内预测模式。举例来说,帧内预测器109可使用速率-失真分析来计算各种待测试的候选运动信息的速率-失真值,并从待测试模式当中选择具有最佳速率-失真特性的帧内预测模式。在任何情况下,在为图像块选择目标运动信息之后,帧内预测器109可将当前图像块的目标运动信息提供到熵编码器103,以便熵编码器103编码目标运动信息。
在预测处理单元108经由帧间预测、帧内预测产生当前图像块的预测块之后,视频编码器100通过从待编码的当前图像块减去所述预测块来形成残差图像块。求和器112表示执行此减法运算的一或多个组件。所述残差块中的残差视频数据可包含在一或多个TU中,并应用于变换器101。变换器101使用例如离散余弦变换(DCT)或概念上类似的变换等变换将残差视频数据变换成残差变换系数。变换器101可将残差视频数据从像素值域转换到变换域,例如频域。
变换器101可将所得变换系数发送到量化器102。量化器102量化所述变换系数以进一步减小位速率。在一些实例中,量化器102可接着执行对包含经量化的变换系数的矩阵的扫描。或者,熵编码器103可执行扫描。
在量化之后,熵编码器103对经量化变换系数进行熵编码。举例来说,熵编码器103可执行上下文自适应可变长度编码(context adaptive variable length coding,CAVLC)、上下文自适应二进制算术编码(context adaptive binary arithmatic coding,CABAC)、基于语法的上下文自适应二进制算术编码(SBAC)、概率区间分割熵(PIPE)编码或另一熵编码方法或技术。在由熵编码器103熵编码之后,可将经编码位流发射到视频解码器200,或经存档以供稍后发射或由视频解码器200检索。熵编码器103还可对待编码的当前图像块的语法元素进行熵编码,例如,将目标运动信息编入码流中。
反量化器104和反变化器105分别应用逆量化和逆变换以在像素域中重构所述残差块,例如以供稍后用作参考图像的参考块。求和器111将经重构的残差块添加到由帧间预测器110或帧内预测器109产生的预测块,以产生经重构图像块。滤波器单元106可以适用于经重构图像块以减小失真,诸如方块效应(block artifacts)。然后,该经重构图像块作为参考块存储在经解码图像缓冲器107中,可由帧间预测器110用作参考块以对后续视频帧或图像中的块进行帧间预测。
应当理解的是,视频编码器100的其它的结构变化可用于编码视频流。例如,对于某些图像块或者图像帧,视频编码器100可以直接地量化残差信号而不需要经变换器101处理,相应地也不需要经反变换器105处理;或者,对于某些图像块或者图像帧,视频编码器100没有产生残差数据,相应地不需要经变换器101、量化器102、反量化器104和反变换器105处理;或者,视频编码器100可以将经重构图像块作为参考块直接地进行存储而不需要经滤波器单元106处理;或者,视频编码器100中量化器102和反量化器104可以合并在一起。
图9为本申请实施例中所描述的一种实例的视频解码器200的框图。在图9的实例中,视频解码器200包括熵解码器203、预测处理单元208、反量化器204、反变换器205、求和器211、滤波器单元206以及经解码图像缓冲器207。预测处理单元208可以包括帧间预测器210和帧内预测器209。在一些实例中,视频解码器200可执行大体上与相对于来自图8的视频编码器100描述的编码过程互逆的解码过程。
在解码过程中,视频解码器200从视频编码器100接收表示经编码视频条带的图像块和相关联的语法元素的经编码视频位流。视频解码器200可从网络实体42接收视频数据,可选的,还可以将所述视频数据存储在视频数据存储器(图中未示意)中。视频数据存储器可存储待由视频解码器200的组件解码的视频数据,例如经编码视频位流。存储在视频数据存储器中的视频数据,例如可从存储装置40、从相机等本地视频源、经由视频数据的有线或无线网络通信或者通过存取物理数据存储媒体而获得。视频数据存储器可作为用于存储来自经编码视频位流的经编码视频数据的经解码图像缓冲器(CPB)。因此,尽管在图9中没有示意出视频数据存储器,但视频数据存储器和DPB 207可以是同一个的存储器,也可以是单独设置的存储器。视频数据存储器和DPB 207可由多种存储器装置中的任一者形成,例如:包含同步DRAM(SDRAM)的动态随机存取存储器(DRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM),或其它类型的存储器装置。在各种实例中,视频数据存储器可与视频解码器200的其它组件一起集成在芯片上,或相对于那些组件设置在芯片外。
网络实体42可例如为服务器、MANE、视频编辑器/剪接器,或用于实施上文所描述的技术中的一或多者的其它此装置。网络实体42可包括或可不包括视频编码器,例如视频编码器100。在网络实体42将经编码视频位流发送到视频解码器200之前,网络实体42可实施本申请中描述的技术中的部分。在一些视频解码***中,网络实体42和视频解码器200可为单独装置的部分,而在其它情况下,相对于网络实体42描述的功能性可由包括视频解码器200的相同装置执行。在一些情况下,网络实体42可为图7的存储装置40的实例。
视频解码器200的熵解码器203对位流进行熵解码以产生经量化的系数和一些语法元素。熵解码器203将语法元素转发到预测处理单元208。视频解码器200可接收在视频条带层级和/或图像块层级处的语法元素。本申请中,在一种示例下,这里的语法元素可以包括与当前图像块相关的目标运动信息。
当视频条带被解码为经帧内解码(I)条带时,预测处理单元208的帧内预测器209可基于发信号通知的帧内预测模式和来自当前帧或图像的先前经解码块的数据而产生当前视频条带的图像块的预测块。当视频条带被解码为经帧间解码(即,B或P)条带时,预测处理单元208的帧间预测器210可基于从熵解码器203接收到的语法元素,确定用于对当前视频条带的当前图像块进行解码的目标运动信息,基于确定的目标运动信息,对所述当前图像块进行解码(例如执行帧间预测)。具体的,帧间预测器210可确定是否对当前视频条带的当前图像块采用新的帧间预测方法(具体的,是否采用本申请的方法来确定候选运动信息列表)进行预测,如果语法元素指示采用新的帧间预测方法来对当前图像块进行预测,基于新的帧间预测方法(例如通过语法元素指定的一种新的帧间预测方法或默认的一种新的帧间预测方法)预测当前视频条带的当前图像块或当前图像块的基本运动补偿单元的运动信息,从而通过运动补偿过程使用预测出的当前图像块或当前图像块的基本运动补偿单元的运动信息来获取或生成当前图像块或当前图像块的基本运动补偿单元的预测块。这里的运动信息可以包括参考图像信息和运动矢量,其中参考图像信息可以包括但不限于单向/双向预测信息,参考图像列表号和参考图像列表对应的参考图像索引。对于帧间预测,可从参考图像列表中的一者内的参考图像中的一者产生预测块。视频解码器200可基于存储在DPB207中的参考图像来建构参考图像列表,即列表0和列表1。当前图像的参考帧索引可包含于参考帧列表0和列表1中的一或多者中。在一些实例中,可以是视频编码器100发信号通知指示是否采用新的帧间预测方法来解码特定块的特定语法元素,或者,也可以是发信号通知指示是否采用新的帧间预测方法,以及指示具体采用哪一种新的帧间预测方法来解码特定块的特定语法元素。应当理解的是,这里的帧间预测器210执行运动补偿过程。上文方法实施例中已经详细的阐述了采用两个控制点(4参数)的仿射模型(例如旋转缩放仿射模型),还可以采用三个控制点(6参数)的仿射模型(例如旋转缩放仿射模型),或者四个控制点(8参数)的仿射模型(例如透视仿射模型)来预测当前图像块或当前图像块的基本运动补偿单元的运动信息的帧间预测过程。
反量化器204将在位流中提供且由熵解码器203解码的经量化变换系数逆量化,即去量化。逆量化过程可包括:使用由视频编码器100针对视频条带中的每个图像块计算的量化参数来确定应施加的量化程度以及同样地确定应施加的逆量化程度。反变换器205将逆变换应用于变换系数,例如逆DCT、逆整数变换或概念上类似的逆变换过程,以便产生像素域中的残差块。
在帧间预测器210产生用于当前图像块或当前图像块的子块的预测块之后,视频解码器200通过将来自反变换器205的残差块与由帧间预测器210产生的对应预测块求和以得到重建的块,即经解码图像块。求和器211表示执行此求和操作的组件。在需要时,还可使用环路滤波器(在解码环路中或在解码环路之后)来使像素转变平滑或者以其它方式改进视频质量。滤波器单元206可以表示一或多个环路滤波器,例如去块滤波器、自适应环路滤波器(ALF)以及样本自适应偏移(SAO)滤波器。尽管在图9中将滤波器单元206示出为环路内滤波器,但在其它实现方式中,可将滤波器单元206实施为环路后滤波器。在一种示例下,滤波器单元206适用于重建块以减小块失真,并且该结果作为经解码视频流输出。并且,还可以将给定帧或图像中的经解码图像块存储在经解码图像缓冲器207中,经解码图像缓冲器207存储用于后续运动补偿的参考图像。经解码图像缓冲器207可为存储器的一部分,其还可以存储经解码视频,以供稍后在显示装置(例如图7的显示装置220)上呈现,或可与此类存储器分开。
应当理解的是,视频解码器200的其它结构变化可用于解码经编码视频位流。例如,视频解码器200可以不经滤波器单元206处理而生成输出视频流;或者,对于某些图像块或者图像帧,视频解码器200的熵解码器203没有解码出经量化的系数,相应地不需要经反量化器204和反变换器205处理。
图10为本申请实施例中的帧间预测装置1000的一种示意性框图。需要说明的是,帧间预测装置1000既适用于解码视频图像的帧间预测,也适用于编码视频图像的帧间预测,应当理解的是,这里的帧间预测装置1000可以对应于图8中的帧间预测器110,或者可以对应于图9中的帧间预测器210,该帧间预测装置1000可以包括:
候选运动信息列表确定单元1001,用于确定当前图像块的候选运动信息列表,所述候选运动信息列表包括至少一组第一候选运动信息、至少一组第二候选运动信息,以及用于索引所述第一候选运动信息和所述第二候选运动信息的多个索引信息,所述第一候选运动信息为基于所述当前图像块的第一相邻图像块的预设位置的运动信息和所述第一相邻图像块的运动模型确定的运动信息,所述第二候选运动信息为与所述当前图像块的至少两个预设位置分别相邻的至少两个像素位置的运动信息的集合,所述至少两个像素位置位于所述当前图像块的至少一个第二相邻图像块;
帧间预测处理单元1002,用于从所述候选运动信息列表中确定目标运动信息;根据所述目标运动信息,对所述当前图像块执行帧间预测。
由此可见,帧间预测装置1000构建包括两种候选运动信息的候选运动信息列表,该两种候选运动信息具有统一编排的索引信息,若两种候选运动信息中的一种不适用于当前图像块,则编码端可以从候选运动信息列表包括的另一种候选运动信息中选择目标运动信息,并将该目标运动信息的索引信息通过码流发送给解码端,由于候选运动信息列表中的候选运动信息具有唯一的索引信息,因此,编码端无需在码流中传递指示编码端使用的运动估计方法的指示信息,从而减少了视频传输的比特开销。
在一种可行的实施方式中,多个索引信息中第一索引信息的比特数小于多个索引信息中第二索引信息的比特数,第一索引信息对应先加入候选运动信息列表的运动信息,第二索引信息对应后加入候选运动信息列表的运动信息;帧间预测处理单元1002具体用于:先将第一候选运动信息加入候选运动信息列表,再将第二候选运动信息加入候选运动信息列表。
第一候选运动信息为基于运动模型的运动信息,根据第一候选运动信息进行编解码的效率高于根据第二候选运动信息进行编解码的效率,因此,第一候选运动信息为目标运动信息的概率较大,因此,可以将第一候选运动信息的索引信息设置为比特数较小的索引信息,有利于减小视频传输的比特开销。
在一些可能的实施场景下,如第一相邻图像块包括采用平动运动模型的第一相邻图像块和采用非平动运动模型的第一相邻图像块,多个索引信息中第一索引信息的比特数小于多个索引信息中第二索引信息的比特数,第一索引信息对应先加入候选运动信息列表的运动信息,第二索引信息对应后加入候选运动信息列表的运动信息,所述帧间预测处理单元1002具体用于:
当采用非平动运动模型的第一相邻图像块的数量大于或等于数量阈值时,基于采用非平动运动模型的第一相邻图像块的至少两个预设位置的运动信息以及采用非平动模型的第一相邻图像块的运动模型推导出当前图像块对应的至少两个预设位置的运动信息,并将当前图像块对应的至少两个预设位置的运动信息作为一组第一候选运动信息加入候选运动信息列表,再将第二候选运动信息加入候选运动信息列表。
若采用非平动运动模型的第一相邻图像块的数量大于或等于数量阈值,则说明当前图像块为采用非平动运动模型的图像块的概率较大,因此,可以先将基于采用非平动运动模型的第一相邻图像块推导出的第一候选运动信息加入候选运动信息列表,再将第二候选运动信息加入候选运动信息列表,由于先加入候选运动信息列表的运动信息的索引信息的比特数较小,且目标运动信息为先加入候选运动信息列表的运动信息的概率较大,从而有利于减少视频传输的比特开销。
在一些可行的实施方式中,在确定候选运动信息列表的方面,所述帧间预测处理单元1002具体用于:
当候选运动信息列表的长度小于长度阈值,且第一相邻图像块还包括采用平动运动模型的第一相邻图像块时,进一步将采用平动运动模型的第一相邻图像块的运动信息作为一组第一候选运动信息加入候选运动信息列表,若候选运动信息列表的长度仍然小于长度阈值,再将零运动信息加入所述候选运动信息列表。
在一些可能的实施场景下,如第一相邻图像块包括采用平动运动模型的第一相邻图像块和采用非平动运动模型的第一相邻图像块,多个索引信息中第一索引信息的比特数小于多个索引信息中第二索引信息的比特数,第一索引信息对应先加入候选运动信息列表的运动信息,第二索引信息对应后加入候选运动信息列表的运动信息,所述帧间预测处理单元1002具体用于:
当采用非平动运动模型的第一相邻图像块的数量小于或等于数量阈值时,先将采用平动运动模型的第一相邻图像块的运动信息作为一组第一候选运动信息加入候选运动信息列表,再将第二候选运动信息加入候选运动信息列表。
若采用非平动运动模型的第一相邻图像块的数量小于或等于数量阈值,则说明当前图像块为采用非平动运动模型的图像块的概率较大,因此,可以先将基于采用平动运动模型的第一相邻图像块的运动信息作为第一候选运动信息加入候选运动信息列表,再将第二候选运动信息加入候选运动信息列表,由于先加入候选运动信息列表的运动信息的索引信息的比特数较小,且目标运动信息为先加入候选运动信息列表的运动信息的概率较大,从而有利于减少视频传输的比特开销。
在一些可行的实施方式中,在确定候选运动信息列表方面,所述帧间预测处理单元1002具体用于:
当候选运动信息列表的长度小于长度阈值,且第一相邻图像块还包括非采用平动运动模型的第一相邻图像块时,进一步基于采用非平动运动模型的第一相邻图像块的至少两个预设位置的运动信息以及采用非平动模型的第一相邻图像块的运动模型推导出当前图像块的至少两个预设位置的运动信息,将当前图像块的至少两个预设位置的运动信息作为一组第一候选运动信息加入候选运动信息列表,若候选运动信息列表的长度仍然小于长度阈值,再将零运动信息加入所述候选运动信息列表。
在一些可能的实施场景下,第一候选运动信息和第二候选运动信息均为当前图像块的第一组位置的运动信息,当前图像块中至少两个预设位置为第二组位置,所述帧间预测处理单元1002具体用于:
当第二组位置与所述第一组位置相异时,根据位置变换公式以及第二位置对应的运动信息推导出第二候选运动信息。
当第一候选运动信息对应的位置的数量和第二候选运动信息对应的位置的数量相同时,根据本实施例得到的候选运动信息列表中的运动信息均为相同位置的运动信息,从而减小了运动估计的复杂度。
在一些可能的实施场景下,第一候选运动信息为当前图像块的第一组位置的运动信息,第二候选运动信息为当前图像块的第三组位置的运动信息,所述帧间预测处理单元1002还用于:
当第一组位置与第三组位置相异时,根据位置变换公式以及第二候选运动信息推导出第五候选运动信息,所述第五候选运动信息对应的位置与第一组位置相同。
当第一候选运动信息对应的位置的数量和第二候选运动信息对应的位置的数量相同时,根据本实施得到的候选运动信息列表中的运动信息均为相同位置的运动信息,从而减小了运动估计的复杂度。
当所述装置1000用于解码视频图像,所述装置1000还可以包括:
帧间预测数据获取单元(图中未示意),用于接收包括用于确定目标运动信息的索引信息;
相应的,帧间预测处理单元1002具体用于根据目标运动信息的索引信息从候选运动信息列表中确定一组目标运动信息。
当所述装置1000用于编码视频图像,所述装置1000还可以包括:
所述帧间预测模式处理单元1002具体用于根据筛选规则确定所述候选运动信息列表中的目标运动信息,例如确定所述候选运动信息列表中,编码当前图像块的码率失真代价最小的运动信息为用于对当前图像块进行帧间预测的目标运动信息。
需要说明的是,本申请实施例的帧间预测装置中的各个模块为实现本申请帧间预测方法中所包含的各种执行步骤的功能主体,即具备实现完整实现本申请帧间预测方法中的各个步骤以及这些步骤的扩展及变形的功能主体,具体请参见本文中对帧间预测方法的介绍,为简洁起见,本文将不再赘述。
图11为本申请实施例的编码设备或解码设备(简称为译码设备1100)的一种实现方式的示意性框图。其中,译码设备1100可以包括处理器1110、存储器1130和总线***1150。其中,处理器和存储器通过总线***相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令。编码设备的存储器存储程序代码,且处理器可以调用存储器中存储的程序代码执行本申请描述的各种视频编码或解码方法,尤其是本申请描述的帧间预测方法。为避免重复,这里不再详细描述。
在本申请实施例中,该处理器1110可以是中央处理单元(central processingunit,CPU),该处理器1110还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器1130可以包括只读存储器(ROM)设备或者随机存取存储器(RAM)设备。任何其他适宜类型的存储设备也可以用作存储器1130。存储器1130可以包括由处理器1110使用总线1150访问的代码和数据1131。存储器1130可以进一步包括操作***1133和应用程序1135,该应用程序1135包括允许处理器1110执行本申请描述的视频编码或解码方法(尤其是本申请描述的帧间预测方法)的至少一个程序。例如,应用程序1135可以包括应用1至N,其进一步包括执行在本申请描述的视频编码或解码方法的视频编码或解码应用(简称视频译码应用)。
该总线***1150除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***1150。
可选的,译码设备1100还可以包括一个或多个输出设备,诸如显示器1170。在一个示例中,显示器1170可以是触感显示器,其将显示器与可操作地感测触摸输入的触感单元合并。显示器1170可以经由总线1150连接到处理器1110。
本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
可通过例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。
以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (29)
1.一种视频数据的编码方法,其特征在于,包括:
获得第二候选运动信息,所述第二候选运动信息包括当前图像块的第一组控制点的运动矢量;
生成当前图像块的候选运动信息列表,所述候选运动信息列表包括一个或多个候选运动信息,所述一个或多个候选运动信息包括第二候选运动信息,所述第二候选运动信息具有与之对应的索引信息;
从所述候选运动信息列表中确定目标运动信息;
根据所述目标运动信息,对所述当前图像块执行帧间预测,以得到所述当前图像块的预测值;
根据所述当前图像块的所述预测值和所述当前图像块的像素值,获取所述当前图像块的残差值;
对所述当前图像块的所述残差值进行变换、量化和熵编码,得到经编码的码流;
其中,所述获得第二候选运动信息包括:
将当前图像块的至少两个控制点的运动矢量进行组合,以得到的当前图像块的第二组控制点的运动矢量,其中当前图像块的至少两个控制点中的每个控制点的运动矢量是按照预设检查顺序从一个或多个相邻像素位置中确定的第一个可得的相邻像素位置的运动矢量,所述一个或多个相邻像素位置与所述对应的控制点相邻,所述一个或多个相邻像素位置位于所述当前图像块的至少一个相邻图像块;
当所述第二组控制点与所述第一组控制点相异时,根据位置变换公式以及所述第二组控制点的运动矢量推导出所述第一组控制点的运动矢量,所述第二组控制点为所述当前图像块的至少两个控制点,所述第一组控制点为所述当前图像块的至少两个控制点。
2.根据权利要求1所述的方法,其特征在于,位置变换前的所述第二组控制点的个数与位置变换后的所述第一组控制点的个数相同。
3.根据权利要求2所述的方法,其特征在于,当位置变换前的所述第二组控制点的个数与位置变换后的所述第一组控制点的个数为2个,所述第一组控制点为所述当前图像块的左上控制点和右上控制点;或,
当位置变换前的所述第二组控制点的个数与位置变换后的所述第一组控制点的个数为3个,所述第一组控制点为所述当前图像块的左上控制点,右上控制点和左下控制点。
4.根据权利要求3所述的方法,其特征在于,
所述第二组控制点为所述当前图像块的左上控制点,右上控制点,右下控制点;所述第一组控制点为所述当前图像块的左上控制点,右上控制点,左下控制点;或者
所述第二组控制点为所述当前图像块的左上控制点,左下控制点,右下控制点;所述第一组控制点为所述当前图像块的左上控制点,右上控制点,左下控制点;或者
所述第二组控制点为所述当前图像块的右上控制点,左下控制点,右下控制点;所述第一组控制点为所述当前图像块的左上控制点,右上控制点,左下控制点;或者
所述第二组控制点为所述当前图像块的左上控制点,左下控制点;所述第一组控制点为所述当前图像块的左上控制点,右上控制点。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述第二组控制点中的至少两个控制点是如下四个控制点中的至少两个,其中:
-对于当前图像块的第一控制点CP1,当前图像块的第一控制点CP1的运动矢量是按照第一检查顺序从所述第一控制点CP1的一个或多个相邻像素位置中确定的第一个可得的相邻像素位置的运动矢量;
-对于当前图像块的第二控制点CP2,当前图像块的第二控制点CP2的运动矢量是按照第二检查顺序从所述第二控制点CP2的一个或多个相邻像素位置中确定的第一个可得的相邻像素位置的运动矢量;
-对于当前图像块的第三控制点CP3,当前图像块的第三控制点CP2的运动矢量是按照第三检查顺序从所述第三控制点CP3的一个或多个相邻像素位置中确定的第一个可得的相邻像素位置的运动矢量;
-对于当前图像块的第四控制点CP4,当前图像块的第四控制点CP4的运动矢量是采用时域相邻位置Tr的运动矢量;
所述预设检查顺序包括所述第一检查顺序、所述第二检查顺序或所述第三检查顺序。
6.根据权利要求5所述的方法,其特征在于,所述获得当前图像块的第二组控制点的运动矢量,包括:
将当前图像块的第一控制点CP1的运动矢量和第二控制点CP2的运动矢量进行组合,得到当前图像块的第二组控制点的运动矢量;或者
将当前图像块的第一控制点CP1的运动矢量和第三控制点CP3的运动矢量进行组合,得到当前图像块的第二组控制点的运动矢量;或者
将当前图像块的第一控制点CP1的运动矢量、第二控制点的运动矢量CP2和第四控制点CP4的运动矢量进行组合,得到当前图像块的第二组控制点的运动矢量;或者
将当前图像块的第一控制点CP1的运动矢量、第二控制点的运动矢量CP2的运动矢量和第三控制点CP3的运动矢量进行组合,得到当前图像块的第二组控制点的运动矢量;或者
将当前图像块的第二控制点CP2的运动矢量、第三控制点CP3的运动矢量和第四控制点CP4的运动矢量进行组合,得到当前图像块的第二组控制点的运动矢量;或者
将当前图像块的第一控制点CP1的运动矢量、第三控制点CP3的运动矢量和第四控制点CP4的运动矢量进行组合,得到当前图像块的第二组控制点的运动矢量。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述一个或多个相邻像素位置位于所述当前图像块的至少一个相邻图像块,包括:
两个所述像素位置位于所述当前图像块的一个相邻图像块,或者,
两个所述像素位置位于所述当前图像块的两个相邻图像块,或者,
三个所述像素位置位于所述当前图像块的两个相邻图像块,或者,
三个所述像素位置位于所述当前图像块的三个相邻图像块,或者,
四个所述像素位置位于所述当前图像块的三个相邻图像块,或者,
四个所述像素位置位于所述当前图像块的四个相邻图像块。
8.一种视频数据的解码方法,其特征在于,包括:
对码流进行熵解码、逆量化过程和逆变换过程,得到当前图像块的残差值;
执行所述当前图像块的预测过程以得到所述当前图像块的预测值;
根据所述当前图像块的所述预测值和所述当前图像块的所述残差值,获取所述当前图像块的重建值;
其中,所述执行所述当前图像块的预测过程以得到所述当前图像块的预测值包括:
获得第二候选运动信息,所述第二候选运动信息包括所述当前图像块的第一组控制点的运动矢量;
生成当前图像块的候选运动信息列表,所述候选运动信息列表包括一个或多个候选运动信息,所述一个或多个候选运动信息包括第二候选运动信息,所述第二候选运动信息具有与之对应的索引信息,
从所述候选运动信息列表中确定目标运动信息;
根据所述目标运动信息,对所述当前图像块执行帧间预测,以得到当前图像块的所述预测值;
其中,所述获得第二候选运动信息包括:
将当前图像块的至少两个控制点的运动矢量进行组合,以得到的当前图像块的第二组控制点的运动矢量,其中当前图像块的至少两个控制点中的每个控制点的运动矢量是按照预设检查顺序从一个或多个相邻像素位置中确定的第一个可得的相邻像素位置的运动矢量,所述一个或多个相邻像素位置与所述对应的控制点相邻,所述一个或多个相邻像素位置位于所述当前图像块的至少一个相邻图像块;
当所述第二组控制点与所述第一组控制点相异时,根据位置变换公式以及所述第二组控制点的运动矢量推导出所述第一组控制点的运动矢量,所述第二组控制点为所述当前图像块的至少两个控制点,所述第一组控制点为所述当前图像块的至少两个控制点。
9.根据权利要求8所述的方法,其特征在于,位置变换前的所述第二组控制点的个数与位置变换后的所述第一组控制点的个数相同。
10.根据权利要求9所述的方法,其特征在于,当位置变换前的所述第二组控制点的个数与位置变换后的所述第一组控制点的个数为2个,所述第一组控制点为所述当前图像块的左上控制点和右上控制点;或,
当位置变换前的所述第二组控制点的个数与位置变换后的所述第一组控制点的个数为3个,所述第一组控制点为所述当前图像块的左上控制点,右上控制点和左下控制点。
11.根据权利要求10所述的方法,其特征在于,
所述第二组控制点为所述当前图像块的左上控制点,右上控制点,右下控制点;所述第一组控制点为所述当前图像块的左上控制点,右上控制点,左下控制点;或者
所述第二组控制点为所述当前图像块的左上控制点,左下控制点,右下控制点;所述第一组控制点为所述当前图像块的左上控制点,右上控制点,左下控制点;或者
所述第二组控制点为所述当前图像块的右上控制点,左下控制点,右下控制点;所述第一组控制点为所述当前图像块的左上控制点,右上控制点,左下控制点;或者
所述第二组控制点为所述当前图像块的左上控制点,左下控制点;所述第一组控制点为所述当前图像块的左上控制点,右上控制点。
12.根据权利要求8至11中任一项所述的方法,其特征在于,所述第二组控制点中的至少两个控制点是如下四个控制点中的至少两个,其中:
-对于当前图像块的第一控制点CP1,当前图像块的第一控制点CP1的运动矢量是按照第一检查顺序从所述第一控制点CP1的一个或多个相邻像素位置中确定的第一个可得的相邻像素位置的运动矢量;
-对于当前图像块的第二控制点CP2,当前图像块的第二控制点CP2的运动矢量是按照第二检查顺序从所述第二控制点CP2的一个或多个相邻像素位置中确定的第一个可得的相邻像素位置的运动矢量;
-对于当前图像块的第三控制点CP3,当前图像块的第三控制点CP2的运动矢量是按照第三检查顺序从所述第三控制点CP3的一个或多个相邻像素位置中确定的第一个可得的相邻像素位置的运动矢量;
-对于当前图像块的第四控制点CP4,当前图像块的第四控制点CP4的运动矢量是采用时域相邻位置Tr的运动矢量;
所述预设检查顺序包括所述第一检查顺序、所述第二检查顺序或所述第三检查顺序。
13.根据权利要求12所述的方法,其特征在于,所述获得当前图像块的第二组控制点的运动矢量,包括:
将当前图像块的第一控制点CP1的运动矢量和第二控制点CP2的运动矢量进行组合,得到当前图像块的第二组控制点的运动矢量;或者
将当前图像块的第一控制点CP1的运动矢量和第三控制点CP3的运动矢量进行组合,得到当前图像块的第二组控制点的运动矢量;或者
将当前图像块的第一控制点CP1的运动矢量、第二控制点的运动矢量CP2和第四控制点CP4的运动矢量进行组合,得到当前图像块的第二组控制点的运动矢量;或者
将当前图像块的第一控制点CP1的运动矢量、第二控制点的运动矢量CP2的运动矢量和第三控制点CP3的运动矢量进行组合,得到当前图像块的第二组控制点的运动矢量;或者
将当前图像块的第二控制点CP2的运动矢量、第三控制点CP3的运动矢量和第四控制点CP4的运动矢量进行组合,得到当前图像块的第二组控制点的运动矢量;或者
将当前图像块的第一控制点CP1的运动矢量、第三控制点CP3的运动矢量和第四控制点CP4的运动矢量进行组合,得到当前图像块的第二组控制点的运动矢量。
14.根据权利要求8至13中任一项所述的方法,其特征在于,所述一个或多个相邻像素位置位于所述当前图像块的至少一个相邻图像块,包括:
两个所述像素位置位于所述当前图像块的一个相邻图像块,或者,
两个所述像素位置位于所述当前图像块的两个相邻图像块,或者,
三个所述像素位置位于所述当前图像块的两个相邻图像块,或者,
三个所述像素位置位于所述当前图像块的三个相邻图像块,或者,
四个所述像素位置位于所述当前图像块的三个相邻图像块,或者,
四个所述像素位置位于所述当前图像块的四个相邻图像块。
15.一种存储视频数据的经编码的码流的方法,其特征在于,包括:
接收根据权利要求1至7中任一项所述的方法生成的所述码流;
将所述码流存储至存储介质中。
16.一种传输视频数据的经编码的码流的方法,其特征在于,包括:
从存储介质中获取码流,所述码流是根据权利要求1至7中任一项所述的方法生成的码流且存储在所述存储介质中;
发送所述码流。
17.一种处理码流的方法,其特征在于,包括:
接收传输流,对所述传输流的传输协议进行分析并处理生成流文件;
对所述流文件进行解复用处理得到经编码的音频数据和经编码的视频数据;
基于视频解码器对所述经编码的视频数据进行解码得到视频数据;
基于音频解码器对所述经编码的音频数据进行解码得到音频数据;
其中,在所述经编码的视频数据的解码的过程中对当前图像块进行帧间预测,所述对当前图像块进行帧间预测包括:
获得第二候选运动信息,所述第二候选运动信息包括所述当前图像块的第一组控制点的运动矢量;
生成当前图像块的候选运动信息列表,所述候选运动信息列表包括一个或多个候选运动信息,所述一个或多个候选运动信息包括第二候选运动信息,所述第二候选运动信息具有与之对应的索引信息;
从所述候选运动信息列表中确定目标运动信息;
根据所述目标运动信息,对所述当前图像块执行帧间预测,以得到所述当前图像块的预测值;
其中,所述获得第二候选运动信息包括:
将当前图像块的至少两个控制点的运动矢量进行组合,以得到的当前图像块的第二组控制点的运动矢量,其中当前图像块的至少两个控制点中的每个控制点的运动矢量是按照预设检查顺序从一个或多个相邻像素位置中确定的第一个可得的相邻像素位置的运动矢量,所述一个或多个相邻像素位置与所述对应的控制点相邻,所述一个或多个相邻像素位置位于所述当前图像块的至少一个相邻图像块;
当所述第二组控制点与所述第一组控制点相异时,根据位置变换公式以及所述第二组控制点的运动矢量推导出所述第一组控制点的运动矢量,所述第二组控制点为所述当前图像块的至少两个控制点,所述第一组控制点为所述当前图像块的至少两个控制点。
18.一种编码器,其特征在于,包括处理电路,用于执行根据权利要求1至7中任一项所述的方法。
19.一种解码器,其特征在于,包括处理电路,用于执行根据权利要求8至14中任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序指令,当所述程序指令由设备或一个或多个处理器执行时,使得所述设备执行如权利要求1至17中任一项所述的方法。
21.一种存储视频数据的经编码的码流的***,其特征在于,包括:
接收单元,用于接收根据权利要求1至7中任一项所述的方法生成的所述码流;以及,
存储单元,用于存储所述码流。
22.一种传输视频数据的经编码的码流的***,其特征在于,包括:
获取单元,用于从存储介质中获取码流,所述码流是根据权利要求1至7中任一项所述的方法生成的码流且存储在所述存储介质中;
发送单元,用于发送所述码流。
23.一种***,其特征在于,所述***包括:
源设备,用于输出经编码的码流;
目的设备,用于接收所述经编码的码流以获得解码图像,所述解码图像包括当前图像块;
其中,所述获得解码图像包括:
执行所述当前图像块的预测过程以得到所述当前图像块的预测值;
其中,所述执行所述当前图像块的预测过程以得到所述当前图像块的预测值包括:
获得第二候选运动信息,所述第二候选运动信息包括所述当前图像块的第一组控制点的运动矢量;
生成当前图像块的候选运动信息列表,所述候选运动信息列表包括一个或多个候选运动信息,所述一个或多个候选运动信息包括第二候选运动信息,所述第二候选运动信息具有与之对应的索引信息,
从所述候选运动信息列表中确定目标运动信息;
根据所述目标运动信息,对所述当前图像块执行帧间预测,以得到当前图像块的所述预测值;
其中,所述获得第二候选运动信息包括:
将当前图像块的至少两个控制点的运动矢量进行组合,以得到的当前图像块的第二组控制点的运动矢量,其中当前图像块的至少两个控制点中的每个控制点的运动矢量是按照预设检查顺序从一个或多个相邻像素位置中确定的第一个可得的相邻像素位置的运动矢量,所述一个或多个相邻像素位置与所述对应的控制点相邻,所述一个或多个相邻像素位置位于所述当前图像块的至少一个相邻图像块;
当所述第二组控制点与所述第一组控制点相异时,根据位置变换公式以及所述第二组控制点的运动矢量推导出所述第一组控制点的运动矢量,所述第二组控制点为所述当前图像块的至少两个控制点,所述第一组控制点为所述当前图像块的至少两个控制点。
24.根据权利要求23所述的***,其特征在于,所述***还包括:
第三设备,用于发送所述经编码的码流;
所述目的设备,用于:
从所述第三设备接收所述经编码的码流以获得所述解码图像。
25.根据权利要求23所述的***,其特征在于,所述***还包括:
存储设备,用于存储所述经编码的码流;
所述目的设备,用于:
从所述存储设备接收所述经编码的码流以获得所述解码图像。
26.一种***,其特征在于,所述***包括:
源设备,用于执行图像编码过程,以输出经编码的码流;
目的设备,用于接收所述经编码的码流,执行图像解码过程以获得解码图像;
其中,在所述图像编码过程和/或所述图像解码过程中对当前图像块进行帧间预测,所述对当前图像块进行帧间预测包括:
获得第二候选运动信息,所述第二候选运动信息包括所述当前图像块的第一组控制点的运动矢量;
生成当前图像块的候选运动信息列表,所述候选运动信息列表包括一个或多个候选运动信息,所述一个或多个候选运动信息包括第二候选运动信息,所述第二候选运动信息具有与之对应的索引信息;
从所述候选运动信息列表中确定目标运动信息;
根据所述目标运动信息,对所述当前图像块执行帧间预测,以得到所述当前图像块的预测值;
其中,所述获得第二候选运动信息包括:
将当前图像块的至少两个控制点的运动矢量进行组合,以得到的当前图像块的第二组控制点的运动矢量,其中当前图像块的至少两个控制点中的每个控制点的运动矢量是按照预设检查顺序从一个或多个相邻像素位置中确定的第一个可得的相邻像素位置的运动矢量,所述一个或多个相邻像素位置与所述对应的控制点相邻,所述一个或多个相邻像素位置位于所述当前图像块的至少一个相邻图像块;
当所述第二组控制点与所述第一组控制点相异时,根据位置变换公式以及所述第二组控制点的运动矢量推导出所述第一组控制点的运动矢量,所述第二组控制点为所述当前图像块的至少两个控制点,所述第一组控制点为所述当前图像块的至少两个控制点。
27.根据权利要求26所述的***,其特征在于,所述***还包括:
第三设备,用于发送所述经编码的码流;
所述目的设备,用于:
从所述第三设备接收所述经编码的码流以获得所述解码图像。
28.根据权利要求26所述的***,其特征在于,所述***还包括:
存储设备,用于存储所述经编码的码流;
所述目的设备,用于:
从所述存储设备接收所述经编码的码流以获得所述解码图像。
29.一种处理码流的***,其特征在于,包括:
接收单元,用于接收传输流,对所述传输流的传输协议进行分析并处理生成流文件;
处理单元,用于对所述流文件进行解复用处理得到经编码的音频数据和经编码的视频数据;
基于视频解码器对所述经编码的视频数据进行解码得到视频数据;
基于音频解码器对所述经编码的音频数据进行解码得到音频数据;
其中,在所述经编码的视频数据的解码的过程中对当前图像块进行帧间预测,所述对当前图像块进行帧间预测包括:
获得第二候选运动信息,所述第二候选运动信息包括所述当前图像块的第一组控制点的运动矢量;
生成当前图像块的候选运动信息列表,所述候选运动信息列表包括一个或多个候选运动信息,所述一个或多个候选运动信息包括第二候选运动信息,所述第二候选运动信息具有与之对应的索引信息;
从所述候选运动信息列表中确定目标运动信息;
根据所述目标运动信息,对所述当前图像块执行帧间预测,以得到所述当前图像块的预测值;
其中,所述获得第二候选运动信息包括:
将当前图像块的至少两个控制点的运动矢量进行组合,以得到的当前图像块的第二组控制点的运动矢量,其中当前图像块的至少两个控制点中的每个控制点的运动矢量是按照预设检查顺序从一个或多个相邻像素位置中确定的第一个可得的相邻像素位置的运动矢量,所述一个或多个相邻像素位置与所述对应的控制点相邻,所述一个或多个相邻像素位置位于所述当前图像块的至少一个相邻图像块;
当所述第二组控制点与所述第一组控制点相异时,根据位置变换公式以及所述第二组控制点的运动矢量推导出所述第一组控制点的运动矢量,所述第二组控制点为所述当前图像块的至少两个控制点,所述第一组控制点为所述当前图像块的至少两个控制点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310863230.XA CN116915986A (zh) | 2017-12-12 | 2017-12-12 | 视频数据的帧间预测方法和装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711319298.2A CN109922336B (zh) | 2017-12-12 | 2017-12-12 | 视频数据的帧间预测方法和装置 |
CN202310863230.XA CN116915986A (zh) | 2017-12-12 | 2017-12-12 | 视频数据的帧间预测方法和装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711319298.2A Division CN109922336B (zh) | 2017-12-12 | 2017-12-12 | 视频数据的帧间预测方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116915986A true CN116915986A (zh) | 2023-10-20 |
Family
ID=66819231
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310863230.XA Pending CN116915986A (zh) | 2017-12-12 | 2017-12-12 | 视频数据的帧间预测方法和装置 |
CN201711319298.2A Active CN109922336B (zh) | 2017-12-12 | 2017-12-12 | 视频数据的帧间预测方法和装置 |
CN202010734351.0A Active CN112055205B (zh) | 2017-12-12 | 2017-12-12 | 视频数据的帧间预测方法和装置、视频编解码器、存储介质 |
CN202211171542.6A Pending CN115733972A (zh) | 2017-12-12 | 2018-12-12 | 视频数据的帧间预测方法和装置 |
CN201880080337.4A Active CN111480338B (zh) | 2017-12-12 | 2018-12-12 | 视频数据的帧间预测方法和装置 |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711319298.2A Active CN109922336B (zh) | 2017-12-12 | 2017-12-12 | 视频数据的帧间预测方法和装置 |
CN202010734351.0A Active CN112055205B (zh) | 2017-12-12 | 2017-12-12 | 视频数据的帧间预测方法和装置、视频编解码器、存储介质 |
CN202211171542.6A Pending CN115733972A (zh) | 2017-12-12 | 2018-12-12 | 视频数据的帧间预测方法和装置 |
CN201880080337.4A Active CN111480338B (zh) | 2017-12-12 | 2018-12-12 | 视频数据的帧间预测方法和装置 |
Country Status (9)
Country | Link |
---|---|
US (2) | US11363274B2 (zh) |
EP (1) | EP3720131A1 (zh) |
JP (2) | JP7148612B2 (zh) |
KR (3) | KR20230163004A (zh) |
CN (5) | CN116915986A (zh) |
AU (2) | AU2018383797B2 (zh) |
BR (1) | BR112020011548A2 (zh) |
TW (3) | TWI786790B (zh) |
WO (1) | WO2019114721A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111526361B (zh) * | 2016-02-06 | 2022-05-13 | 华为技术有限公司 | 图像编解码方法及装置 |
US10999596B2 (en) * | 2018-06-19 | 2021-05-04 | Qualcomm Incorporated | Unification of affine motion field derivation and affine motion compensation |
CN116647696A (zh) * | 2018-09-06 | 2023-08-25 | Lg电子株式会社 | 图像解码方法、图像编码方法、存储介质和发送方法 |
KR20200078391A (ko) * | 2018-12-21 | 2020-07-01 | 주식회사 엑스리스 | 영상 신호 부호화/복호화 방법 및 이를 위한 장치 |
CN113261285B (zh) * | 2019-09-24 | 2023-06-02 | Oppo广东移动通信有限公司 | 编码方法、解码方法、编码器、解码器以及存储介质 |
EP3952314B1 (en) | 2019-09-24 | 2024-07-17 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Inter-frame prediction method and apparatus, device and storage medium |
CN115380534A (zh) * | 2020-04-03 | 2022-11-22 | Oppo广东移动通信有限公司 | 一种帧间预测方法、编码器、解码器及存储介质 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3681342B2 (ja) * | 2000-05-24 | 2005-08-10 | 三星電子株式会社 | 映像コーディング方法 |
US8767831B2 (en) * | 2007-10-31 | 2014-07-01 | Broadcom Corporation | Method and system for motion compensated picture rate up-conversion using information extracted from a compressed video stream |
JP5716438B2 (ja) | 2011-02-08 | 2015-05-13 | 株式会社Jvcケンウッド | 画像復号装置、画像復号方法および画像復号プログラム |
EP3174299B1 (en) * | 2011-11-02 | 2018-09-12 | Tagivan Ii Llc | Video coding method, and video coder |
CN103716631B (zh) * | 2012-09-29 | 2017-04-05 | 华为技术有限公司 | 用于图像处理的方法、装置、编码器和解码器 |
CN112087630B (zh) * | 2014-09-30 | 2022-04-08 | 华为技术有限公司 | 图像预测方法、装置、解码器及存储介质 |
CN104935938B (zh) * | 2015-07-15 | 2018-03-30 | 哈尔滨工业大学 | 一种混合视频编码标准中帧间预测方法 |
US10728571B2 (en) * | 2015-08-04 | 2020-07-28 | Lg Electronics Inc. | Inter prediction method and device in video coding system |
GB2561507B (en) * | 2016-01-07 | 2021-12-22 | Mediatek Inc | Method and apparatus for affine merge mode prediction for video coding system |
CN111526361B (zh) * | 2016-02-06 | 2022-05-13 | 华为技术有限公司 | 图像编解码方法及装置 |
WO2017147765A1 (en) | 2016-03-01 | 2017-09-08 | Mediatek Inc. | Methods for affine motion compensation |
US10560712B2 (en) * | 2016-05-16 | 2020-02-11 | Qualcomm Incorporated | Affine motion prediction for video coding |
US10448010B2 (en) * | 2016-10-05 | 2019-10-15 | Qualcomm Incorporated | Motion vector prediction for affine motion models in video coding |
US10701390B2 (en) * | 2017-03-14 | 2020-06-30 | Qualcomm Incorporated | Affine motion information derivation |
US10602180B2 (en) * | 2017-06-13 | 2020-03-24 | Qualcomm Incorporated | Motion vector prediction |
EP3468196A1 (en) * | 2017-10-05 | 2019-04-10 | Thomson Licensing | Methods and apparatuses for video encoding and video decoding |
EP3468195A1 (en) * | 2017-10-05 | 2019-04-10 | Thomson Licensing | Improved predictor candidates for motion compensation |
US20190208211A1 (en) * | 2018-01-04 | 2019-07-04 | Qualcomm Incorporated | Generated affine motion vectors |
US11172229B2 (en) * | 2018-01-12 | 2021-11-09 | Qualcomm Incorporated | Affine motion compensation with low bandwidth |
US20190222834A1 (en) * | 2018-01-18 | 2019-07-18 | Mediatek Inc. | Variable affine merge candidates for video coding |
US20190364295A1 (en) * | 2018-05-25 | 2019-11-28 | Tencent America LLC | Method and apparatus for video coding |
US10798394B2 (en) * | 2018-06-27 | 2020-10-06 | Avago Technologies International Sales Pte. Limited | Low complexity affine merge mode for versatile video coding |
US20200021836A1 (en) * | 2018-07-10 | 2020-01-16 | Tencent America LLC | Method and apparatus for ordering and selection of affine merge candidates in motion compensation |
US10462488B1 (en) * | 2018-07-13 | 2019-10-29 | Tencent America LLC | Method and apparatus for video coding |
US11140398B2 (en) * | 2018-08-20 | 2021-10-05 | Mediatek Inc. | Methods and apparatus for generating affine candidates |
WO2020084462A1 (en) * | 2018-10-22 | 2020-04-30 | Beijing Bytedance Network Technology Co., Ltd. | Restrictions on decoder side motion vector derivation based on block size |
-
2017
- 2017-12-12 CN CN202310863230.XA patent/CN116915986A/zh active Pending
- 2017-12-12 CN CN201711319298.2A patent/CN109922336B/zh active Active
- 2017-12-12 CN CN202010734351.0A patent/CN112055205B/zh active Active
-
2018
- 2018-12-10 TW TW110131774A patent/TWI786790B/zh active
- 2018-12-10 TW TW111142037A patent/TW202315402A/zh unknown
- 2018-12-10 TW TW107144405A patent/TWI741239B/zh active
- 2018-12-12 KR KR1020237040529A patent/KR20230163004A/ko not_active Application Discontinuation
- 2018-12-12 EP EP18888481.1A patent/EP3720131A1/en active Pending
- 2018-12-12 JP JP2020531584A patent/JP7148612B2/ja active Active
- 2018-12-12 CN CN202211171542.6A patent/CN115733972A/zh active Pending
- 2018-12-12 KR KR1020207019381A patent/KR102494762B1/ko active IP Right Grant
- 2018-12-12 BR BR112020011548-7A patent/BR112020011548A2/pt unknown
- 2018-12-12 CN CN201880080337.4A patent/CN111480338B/zh active Active
- 2018-12-12 AU AU2018383797A patent/AU2018383797B2/en active Active
- 2018-12-12 KR KR1020237003303A patent/KR102607443B1/ko active IP Right Grant
- 2018-12-12 WO PCT/CN2018/120435 patent/WO2019114721A1/zh unknown
-
2020
- 2020-06-11 US US16/898,973 patent/US11363274B2/en active Active
-
2022
- 2022-06-06 US US17/832,871 patent/US20220394270A1/en active Pending
- 2022-09-22 JP JP2022151544A patent/JP7521744B2/ja active Active
-
2023
- 2023-02-17 AU AU2023200956A patent/AU2023200956B2/en active Active
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11252436B2 (en) | Video picture inter prediction method and apparatus, and codec | |
CN109922336B (zh) | 视频数据的帧间预测方法和装置 | |
CN110876282B (zh) | 运动矢量预测方法以及相关装置 | |
CN110324637B (zh) | 一种双向帧间预测方法及装置 | |
US11575928B2 (en) | Video encoder, video decoder, and corresponding method | |
CN112055970B (zh) | 候选运动信息列表的构建方法、帧间预测方法及装置 | |
TWI841033B (zh) | 視頻數據的幀間預測方法和裝置 | |
CN110677645B (zh) | 一种图像预测方法及装置 | |
CN110868601B (zh) | 帧间预测方法、装置以及视频编码器和视频解码器 | |
WO2019237287A1 (zh) | 视频图像的帧间预测方法、装置及编解码器 | |
CN110971899A (zh) | 一种确定运动信息的方法、帧间预测方法及装置 |
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 |