CN112740688A - 图像编码/解码方法和设备以及存储比特流的记录介质 - Google Patents

图像编码/解码方法和设备以及存储比特流的记录介质 Download PDF

Info

Publication number
CN112740688A
CN112740688A CN201980060927.5A CN201980060927A CN112740688A CN 112740688 A CN112740688 A CN 112740688A CN 201980060927 A CN201980060927 A CN 201980060927A CN 112740688 A CN112740688 A CN 112740688A
Authority
CN
China
Prior art keywords
motion vector
block
picture
information
motion
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
Application number
CN201980060927.5A
Other languages
English (en)
Inventor
林成昶
姜晶媛
李河贤
李镇浩
金晖容
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Electronics and Telecommunications Research Institute ETRI
Original Assignee
Electronics and Telecommunications Research Institute ETRI
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Electronics and Telecommunications Research Institute ETRI filed Critical Electronics and Telecommunications Research Institute ETRI
Publication of CN112740688A publication Critical patent/CN112740688A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

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

Abstract

本说明书公开了一种图像解码方法。本发明的图像解码方法包括以下步骤:从时间运动缓冲器获得当前块的参考画面中包括的对应位置块的运动矢量;改变所获得的运动矢量的格式;并且从格式已被改变的运动矢量推导当前块的时间运动矢量。

Description

图像编码/解码方法和设备以及存储比特流的记录介质
技术领域
本发明涉及一种用于对图像进行编码/解码的方法和设备以及用于存储比特流的记录介质。更具体地,本发明涉及一种使用时间运动信息的对图像进行编码/解码的方法和设备。
背景技术
近来,在各种应用领域中对诸如高清(HD)图像和超高清(UHD)图像的高分辨率和高质量图像的需求正在增加。随着图像数据变得高分辨率和高质量,数据量相对于现有图像数据增加。因此,当使用诸如有线/无线宽带线路的介质来发送图像数据或者使用现有技术中的存储介质来存储图像数据时,发送和存储成本增加。为了解决由于图像数据变得高分辨率和高质量而引起的这些问题,对于具有更高分辨率和质量的图像,需要高效的图像编码/解码技术。
作为图像压缩技术,存在各种技术,诸如用于从当前画面之前或之后的画面对包括在当前画面中的像素值进行预测的帧间预测技术、用于通过使用当前画面中的像素信息对包括在当前画面中的像素值进行预测的帧内预测技术、用于压缩残差信号的能量的变换和量化技术、以及用于将短码分配给具有高出现频率的值并将长码分配给具有低出现频率的值的熵编码技术。这样的图像压缩技术可被用于有效地压缩图像数据并发送或存储图像数据。
发明内容
技术问题
本发明的目的在于提供一种通过使用剪裁后的运动矢量而具有提高的压缩效率的用于对图像进行编码/解码的方法和设备以及存储比特流的记录介质。
本发明的目的在于提供一种剪裁运动矢量的方法。
本发明的目的在于提供一种发送关于运动矢量的信息的方法。
本发明的目的在于提供一种存储和使用时间运动信息的方法。
技术方案
根据本发明的实施例的一种对图像进行解码的方法,所述方法可包括:在时间运动缓冲器中获得当前块的参考画面中包括的同位置块的运动矢量;改变所获得的运动矢量的格式;并且将格式被改变的运动矢量推导为当前块的时间运动矢量。
在根据本发明的对图像进行解码的方法中,其中,改变所获得的运动矢量的格式的步骤包括:将所获得的运动矢量的格式改变为具有增加的比特深度的格式。
在根据本发明的对图像进行解码的方法中,其中,改变所获得的运动矢量的格式的步骤包括:将所获得的运动矢量的格式改变为预定格式。
在根据本发明的对图像进行解码的方法中,其中,所获得的运动矢量的格式是浮点格式。
在根据本发明的对图像进行解码的方法中,其中,改变所获得的运动矢量的格式的步骤包括:将所获得的运动矢量的格式改变为包括符号的固定比特格式。
在根据本发明的对图像进行解码的方法中,还包括:对推导出的时间运动矢量进行缩放;并且限制缩放后的时间运动矢量的动态范围。
在根据本发明的对图像进行解码的方法中,其中,限制缩放后的时间运动矢量的动态范围的步骤包括:将缩放后的时间运动矢量的动态范围限制为固定比特深度。
在根据本发明的对图像进行解码的方法中,其中,所述固定比特深度为18个比特。
根据本发明的实施例的一种对图像进行编码的方法,所述方法可包括:在时间运动缓冲器中获得当前块的参考画面中包括的同位置块的运动矢量;改变所获得的运动矢量的格式;并且将格式被改变的运动矢量推导为当前块的时间运动矢量。
在根据本发明的对图像进行编码的方法中,其中,改变所获得的运动矢量的格式的步骤包括:将所获得的运动矢量的格式改变为具有增加的比特深度的格式。
在根据本发明的对图像进行编码的方法中,其中,改变所获得的运动矢量的格式的步骤包括:将所获得的运动矢量的格式改变为预定格式。
在根据本发明的对图像进行编码的方法中,其中,所获得的运动矢量的格式是浮点格式。
在根据本发明的对图像进行编码的方法中,其中,改变所获得的运动矢量的格式的步骤包括:将所获得的运动矢量的格式改变为包括符号的固定比特格式。
在根据本发明的对图像进行编码的方法中,还包括:对推导出的时间运动矢量进行缩放;并且限制缩放后的时间运动矢量的动态范围。
在根据本发明的对图像进行编码的方法中,其中,限制缩放后的时间运动矢量的动态范围的步骤包括:将缩放后的时间运动矢量的动态范围限制为固定比特深度。
在根据本发明的对图像进行编码的方法中,其中,所述固定比特深度为18个比特。
在包括由图像解码设备解码的比特流的计算机可读非暂时性记录介质中,其中,所述比特流包括指示当前块的参考画面中的用于推导时间运动矢量的同位置画面的索引信息;图像解码设备通过使用所述索引信息来获得包括当前块的同位置块的同位置画面;并且所述时间运动矢量是通过改变所述同位置块的运动矢量的格式而推导出的。
有益效果
根据本发明,可使用剪裁后的运动矢量对图像进行编码/解码。
根据本发明,可减小存储运动矢量所需的存储器空间的大小。
根据本发明,可减小从存储器检索数据所需的存储器访问带宽。
根据本发明,可通过存储和使用特定参考画面的运动信息来减小所需的存储器空间的大小。
根据本发明,可提高图像的编码和解码效率。
根据本发明,可降低图像的编码器和解码器的计算复杂度。
附图说明
图1是示出根据本发明的实施例的编码设备的配置的框图
图2是示出根据本发明的实施例的解码设备的配置的框图。
图3是示意性地示出当对图像进行编码和解码时图像的分区结构的示图。
图4是示出帧内预测处理的实施例的示图。
图5是示出帧间预测处理的实施例的示图。
图6是示出变换和量化的处理的示图。
图7是示出可用于帧内预测的参考样点的示图。
图8是示出编码/解码目标画面和参考画面的实施例的示图。
图9是示出针对参考画面列表的运动矢量预测因子索引的示图。
图10是用于描述与运动矢量的空间分辨率相关的信息的示图。
图11是示出限制运动矢量的动态范围的示例的示图。
图12至图15是示出存储参考画面的运动矢量的方法的流程图。
图16是示出对运动矢量进行量化的示例的示图。
图17至图20是示出从参考画面获得运动信息的示例的示图。
图21是示出关于时间运动矢量分量的比特宽度的信息的示图。
图22至图26是示出关于时间运动矢量的比特深度的信息的示图。
图27和图28是示出在时间运动矢量推导处理中在编解码器级定义时间运动矢量的比特宽度和比特深度的示例的示图。
图29是示出关于时间运动矢量分量的比特宽度的差的信息的示图。
图30是示出在编解码器级定义时间运动矢量分量的动态范围的示例的示图。
图31至图33是示出在编解码器级定义时间运动矢量的每个分量的比特宽度的示例的示图。
图34是示出在编解码器级定义时间运动矢量Y分量的比特宽度的示例的示图。
图35是示出根据本发明的实施例的使用运动矢量剪裁对图像进行编码的方法的流程图。
图36是示出根据本发明的实施例的使用运动矢量剪裁对图像进行解码的方法的流程图。
图37是示出运动信息存储指示符的示图。
图38是示出同位置方向信息和同位置画面索引的示图。
图39是示出使用运动信息存储指示符的示例的示图。
图40是示出根据本发明的实施例的对图像进行编码/解码的方法的流程图。
图41和图42是示出关于在当前画面中是否使用特定参考画面的信息以及关于在当前画面中是否使用所述特定参考画面的运动信息的信息的示图。
图43是根据本发明的实施例的图像解码方法的流程图。
具体实施方式
可对本发明进行各种修改,并且存在本发明的各种实施例,其中,现在将参照附图来提供本发明的各种实施例的示例并对其进行详细描述。然而,本发明不限于此,尽管示例性实施例可被解释为包括本发明的技术构思和技术范围内的所有修改、等同或替代。在各个方面,相似的附图标号指代相同或相似的功能。在附图中,为了清楚,可夸大元件的形状和尺寸。在本发明的以下详细描述中,参照了以图示的方式示出可实践本发明的特定实施例的附图。这些实施例被足够详细地描述以使本领域技术人员能够实施本公开。本公开的各种实施例尽管不同,但不一定是互斥的。例如,在不脱离本公开的精神和范围的情况下,结合一个实施例在此描述的特定特征、结构和特性可在其他实施例中被实现。此外,应理解,在不脱离本公开的精神和范围的情况下,可修改每个公开的实施例内的各个元件的位置或布置。因此,以下详细描述不应被视为具有限制意义,并且本公开的范围仅由所附权利要求(在被合适地解释的情况下,还连同权利要求所要求保护的等同物的全部范围)来限定。
说明书中使用的术语“第一”、“第二”等可用于描述各种组件,但是组件不应解释为限于这些术语。这些术语仅用于将一个组件与其他组件区分开。例如,在不脱离本发明的范围的情况下,“第一”组件可被命名为“第二”组件,并且“第二”组件也可被类似地命名为“第一”组件。术语“和/或”包括多个项的组合或多个项中的任意一项。
将理解的是,在本说明书中,当元件被简单称为“连接到”或“耦接到”另一元件而不是“直接连接到”或“直接耦接到”另一元件时,元件可“直接连接到”另一元件或“直接耦接到”另一元件,或者在元件与另一元件之间介入有其他元件的情况下被连接到或耦接到另一元件。相反,应理解,当元件被称为“直接耦接”或“直接连接”到另一元件时,不存在中间元件。
此外,本发明的实施例中所示的构成部分被独立地示出,以表示彼此不同的特征功能。因此,这并不表示每个构成部分都以单独的硬件或软件的构成单元构成。换言之,为了方便,每个构成部分包括列举出的构成部分中的每个构成部分。因此,每个构成部分的至少两个构成部分可被组合以形成一个构成部分,或者一个构成部分可被划分为多个构成部分以执行每种功能。如果没有脱离本发明的实质,则每个构成部分被组合的实施例和一个构成部分被划分的实施例也包括在本发明的范围内。
本说明书中使用的术语仅用于描述特定实施例,而不旨在限制本发明。除非在上下文中具有明显不同的含义,否则以单数形式使用的表述包括复数形式的表述。在本说明书中,将理解,诸如“包括”、“具有”等的术语旨在指示存在说明书中公开的特征、数字、步骤、动作、元件、部件或其组合,而并不旨在排除可存在或可添加一个或更多个其他特征、数字、步骤、动作、元件、部件或其组合的可能性。换言之,当特定元素被称为“被包括”时,并不排除除了对应元素之外的元素,而是可在本发明的实施例或本发明的范围中包括另外的元素。
此外,一些组成部分可能不是执行本发明的基本功能的必不可少的组成部分,而是仅提高其性能的选择性组成部分。可通过仅包括用于实现本发明的本质的必不可少的组成部分而不包括用于提高性能的组成部分来实现本发明。仅包括必不可少的组成部分而不包括仅用于提高性能的选择性组成部分的结构也包括在本发明的范围内。
在下文中,将参照附图详细描述本发明的实施例。在描述本发明的示例性实施例时,将不详细描述公知的功能或构造,因为它们可能不必要地模糊对本发明的理解。附图中相同的构成元件由相同的附图标号表示,并且对相同元件的重复描述将被省略。
在下文中,图像可指构成视频的画面,或者可指视频本身。例如,“对图像进行编码或解码或者进行编码和解码两者”可指“对运动画面进行编码或解码或者进行编码和解码两者”,并且可指“对运动画面的图像中的一个图像进行编码或解码或者进行编码和解码两者”。
在下文中,术语“运动画面”和“视频”可用作相同的含义并且可彼此替换。
在下文中,目标图像可以是作为编码目标的编码目标图像和/或作为解码目标的解码目标图像。此外,目标图像可以是输入到编码设备的输入图像、以及输入到解码设备的输入图像。这里,目标图像可与当前图像具有相同的含义。
在下文中,术语“图像”、“画面”、“帧”和“屏幕”可被用作相同的含义并且可彼此替换。
在下文中,目标块可以是作为编码目标的编码目标块和/或作为解码目标的解码目标块。此外,目标块可以是作为当前编码和/或解码的目标的当前块。例如,术语“目标块”和“当前块”可被用作相同的含义并且可彼此替换。
在下文中,术语“块”和“单元”可被用作相同的含义并且可彼此替换。或者“块”可表示特定单元。
在下文中,术语“区域”和“片段”可彼此替换。
在下文中,特定信号可以是表示特定块的信号。例如,原始信号可以是表示目标块的信号。预测信号可以是表示预测块的信号。残差信号可以是表示残差块的信号。
在实施例中,特定信息、数据、标志、索引、元素和属性等中的每个可具有值。信息、数据、标志、索引、元素和属性的值等于“0”可表示逻辑假或第一预定义值。换言之,值“0”、假、逻辑假和第一预定义值可彼此替换。信息、数据、标志、索引、元素和属性的值等于“1”可表示逻辑真或第二预定义值。换句话说,值“1”、真、逻辑真和第二预定义值可彼此替换。
当变量i或j用于表示列、行或索引时,i的值可以是等于或大于0的整数,或者是等于或大于1的整数。也就是说,列、行、索引等可从0开始计数,或者可从1开始计数。
术语描述
编码器:表示执行编码的设备。也就是说,表示编码设备。
解码器:表示执行解码的设备。也就是说,表示解码设备。
块:是M×N的样点阵列。这里,M和N可表示正整数,并且块可表示二维形式的样点阵列。块可指单元。当前块可表示在编码时成为目标的编码目标块,或者在解码时成为目标的解码目标块。此外,当前块可以是编码块、预测块、残差块和变换块中的至少一个。
样点:是构成块的基本单元。根据比特深度(Bd),样点可被表示为从0到2Bd-1的值。在本发明中,样点可被用作像素的含义。也就是说,样点、pel、像素可具有彼此相同的含义。
单元:可指编码和解码单元。当对图像进行编码和解码时,单元可以是通过对单个图像进行分区而生成的区域。此外,当在编码或解码期间将单个图像分区为子划分单元时,单元可表示子划分单元。也就是说,图像可被分区为多个单元。当对图像进行编码和解码时,可执行针对每个单元的预定处理。单个单元可被分区为尺寸小于该单元的尺寸的子单元。根据功能,单元可表示块、宏块、编码树单元、编码树块、编码单元、编码块、预测单元、预测块、残差单元、残差块、变换单元、变换块等。此外,为了将单元与块区分开,单元可包括亮度分量块、与亮度分量块相关联的色度分量块、以及每个颜色分量块的语法元素。单元可具有各种尺寸和形状,具体地,单元的形状可以是二维几何图形,诸如正方形、矩形、梯形、三角形、五边形等。此外,单元信息可包括指示编码单元、预测单元、变换单元等的单元类型以及单元尺寸、单元深度、单元的编码和解码的顺序等中的至少一个。
编码树单元:被配置有亮度分量Y的单个编码树块以及与色度分量Cb和Cr相关的两个编码树块。此外,编码树单元可表示包括块和每个块的语法元素。可通过使用四叉树分区方法、二叉树分区方法和三叉树分区方法中的至少一个对每个编码树单元进行分区,以配置诸如编码单元、预测单元、变换单元等的更低等级的单元。编码树单元可被用作用于指定在对作为输入图像的图像进行编码/解码时成为处理单元的样点块的术语。这里,四叉树可表示四元树。
当编码块的尺寸在预定范围内时,可仅使用四叉树分区进行划分。这里,所述预定范围可被定义为能够仅使用四叉树分区进行划分的编码块的最大尺寸和最小尺寸中的至少一个。可通过比特流用信号发送指示允许四叉树分区的编码块的最大/最小尺寸的信息,并且可在序列、画面参数、并行块组或条带(片段)中的至少一个单元中用信号发送所述信息。可选地,编码块的最大/最小尺寸可以是编码器/解码器中预定的固定尺寸。例如,当编码块的尺寸与256×256至64×64对应时,仅使用四叉树分区来进行划分是可能的。可选地,当编码块的尺寸大于最大转换块的尺寸时,仅使用四叉树分区来进行划分是可能的。这里,将被划分的块可以是编码块和变换块中的至少一个。在这种情况下,指示编码块的划分的信息(例如,split_flag)可以是指示是否执行四叉树分区的标志。当编码块的尺寸落在预定范围内时,仅使用二叉树或三叉树分区来进行划分是可能的。在这种情况下,对四叉树分区的以上描述可以以相同方式被应用于二叉树分区或三叉树分区。
编码树块:可用作用于指定Y编码树块、Cb编码树块和Cr编码树块中的任意一个的术语。
邻近块:可表示与当前块相邻的块。与当前块相邻的块可表示与当前块的边界接触的块、或者位于距当前块预定距离内的块。邻近块可表示与当前块的顶点相邻的块。这里,与当前块的顶点相邻的块可表示与水平相邻于当前块的邻近块垂直相邻的块、或者与垂直相邻于当前块的邻近块水平相邻的块。
重建邻近块:可表示与当前块相邻并且已经在空间/时间上被编码或解码的邻近块。这里,重建邻近块可表示重建邻近单元。重建空间邻近块可以是在当前画面内并且已经通过编码或解码或者编码和解码两者而被重建的块。重建时间邻近块是在参考图像内的与当前画面的当前块对应的位置处的块或所述块的邻近块。
单元深度:可表示单元的分区程度。在树结构中,最高节点(根节点)可与未被分区的第一单元对应。此外,最高节点可具有最小深度值。在这种情况下,最高节点的深度可以是等级0。深度为等级1的节点可表示通过对第一单元进行一次分区而生成的单元。深度为等级2的节点可表示通过对第一单元进行两次分区而生成的单元。深度为等级n的节点可表示通过对第一单元进行n次分区而生成的单元。叶节点可以是最低节点并且是不能被进一步分区的节点。叶节点的深度可以是最大等级。例如,最大等级的预定义值可以是3。根节点的深度可以是最低的,并且叶节点的深度可以是最深的。此外,当单元被表示为树结构时,单元所存在于的等级可表示单元深度。
比特流:可表示包括编码图像信息的比特流。
参数集:与比特流内的配置之中的头信息对应。视频参数集、序列参数集、画面参数集和自适应参数集中的至少一个可被包括在参数集中。此外,参数集可包括条带(slice)头、并行块(tile)组头和并行块头信息。术语“并行块组”表示一组并行块并且具有与条带相同的含义。
解析:可表示通过执行熵解码来确定语法元素的值,或者可表示熵解码本身。
符号:可表示编码/解码目标单元的语法元素、编码参数和变换系数值中的至少一个。此外,符号可表示熵编码目标或熵解码结果。
预测模式:可以是指示利用帧内预测而被编码/解码的模式或利用帧间预测而被编码/解码的模式的信息。
预测单元:可表示当执行预测(诸如帧间预测、帧内预测、帧间补偿、帧内补偿和运动补偿)时的基本单元。单个预测单元可被分区为具有更小尺寸的多个分区,或者可被分区为多个更低等级的预测单元。多个分区可以是在执行预测或补偿时的基本单元。通过划分预测单元而生成的分区也可以是预测单元。
预测单元分区:可表示通过对预测单元进行分区而获得的形状。
参考画面列表:可指包括用于帧间预测或运动补偿的一个或更多个参考画面的列表。存在若干类型的可用参考画面列表,包括LC(列表组合)、L0(列表0)、L1(列表1)、L2(列表2)、L3(列表3)。
帧间预测指示符:可指当前块的帧间预测的方向(单向预测、双向预测等)。可选地,帧间预测指示符可指用于生成当前块的预测块的参考画面的数量。可选地,帧间预测指示符可指在对当前块执行帧间预测或运动补偿时使用的预测块的数量。
预测列表利用标志:指示是否使用特定参考画面列表中的至少一个参考画面来生成预测块。可使用预测列表利用标志来推导帧间预测指示符,并且相反地,可使用帧间预测指示符来推导预测列表利用标志。例如,当预测列表利用标志具有第一值零(0)时,它表示参考画面列表中的参考画面不被用于生成预测块。另一方面,当预测列表利用标志具有第二值一(1)时,它表示参考画面列表被用于生成预测块。
参考画面索引:可指指示参考画面列表中的特定参考画面的索引。
参考画面:可表示由特定块参考以用于特定块的帧间预测或运动补偿的目的的参考画面。可选地,参考画面可以是包括由当前块参考以用于帧间预测或运动补偿的参考块的画面。在下文中,术语“参考画面”和“参考图像”具有相同的含义并且可互换。
运动矢量:可以是用于帧间预测或运动补偿的二维矢量。运动矢量可表示编码/解码目标块与参考块之间的偏移。例如,(mvX,mvY)可表示运动矢量。这里,mvX可表示水平分量,并且mvY可表示垂直分量。
搜索范围:可以是在帧间预测期间被搜索以检索运动矢量的二维区域。例如,搜索范围的尺寸可以是M×N。这里,M和N都是整数。
运动矢量候选:可指在对运动矢量进行预测时的预测候选块或预测候选块的运动矢量。此外,运动矢量候选可被包括在运动矢量候选列表中。
运动矢量候选列表:可表示由一个或更多个运动矢量候选组成的列表。
运动矢量候选索引:可表示指示运动矢量候选列表中的运动矢量候选的指示符。可选地,它可以是运动矢量预测因子的索引。
运动信息:可表示包括包含运动矢量、参考画面索引、帧间预测指示符、预测列表利用标志、参考画面列表信息、参考画面、运动矢量候选、运动矢量候选索引、合并候选和合并索引的项中的至少一项的信息。
合并候选列表:可表示由一或更多个合并候选组成的列表。
合并候选:可表示空间合并候选、时间合并候选、组合合并候选、组合双预测合并候选或零合并候选。合并候选可包括诸如帧间预测指示符、每个列表的参考画面索引、运动矢量、预测列表利用标志和帧间预测指示符的运动信息。
合并索引:可表示指示合并候选列表中的合并候选的指示符。可选地,合并索引可指示在空间上/时间上与当前块相邻的重建块中的块,其中,已从该块推导出合并候选。可选地,合并索引可指示合并候选的至少一条运动信息。
变换单元:可表示在对残差信号执行编码/解码(诸如变换、逆变换、量化、反量化、变换系数编码/解码)时的基本单元。单个变换单元可被分区为具有更小尺寸的多个更低等级的变换单元。这里,变换/逆变换可包括首次变换/首次逆变换和二次变换/二次逆变换中的至少一个。
缩放:可表示将量化的等级乘以因子的处理。可通过对量化的等级进行缩放来生成变换系数。缩放也可被称为反量化。
量化参数:可表示当在量化期间使用变换系数来生成量化的等级时使用的值。量化参数还可表示当在反量化期间通过对量化的等级进行缩放来生成变换系数时使用的值。量化参数可以是被映射在量化步长上的值。
增量量化参数:可表示预测的量化参数与编码/解码目标单元的量化参数之间的差值。
扫描:可表示对单元、块或矩阵内的系数进行排序的方法。例如,将系数的二维矩阵改变为一维矩阵可被称为扫描,将系数的一维矩阵改变为二维矩阵可被称为扫描或逆扫描。
变换系数:可表示在编码器中执行变换之后生成的系数值。变换系数可表示在解码器中执行熵解码和反量化中的至少一个之后生成的系数值。通过对变换系数或残差信号进行量化而获得的量化的等级或者量化的变换系数等级也可落入变换系数的含义内。
量化的等级:可表示在编码器中通过对变换系数或残差信号进行量化而生成的值。可选地,量化的等级可表示作为在解码器中经历反量化的反量化目标的值。类似地,作为变换和量化的结果的量化的变换系数等级也可落入量化的等级的含义内。
非零变换系数:可表示具有除零之外的值的变换系数、或者具有除零之外的值的变换系数等级或量化的等级。
量化矩阵:可表示在为了提高主观图像质量或客观图像质量而执行的量化处理或反量化处理中使用的矩阵。量化矩阵也可被称为缩放列表。
量化矩阵系数:可表示量化矩阵内的每个元素。量化矩阵系数也可被称为矩阵系数。
默认矩阵:可表示在编码器或解码器中预先定义的预定量化矩阵。
非默认矩阵:可表示在编码器或解码器中未被预先定义而是由用户用信号发送的量化矩阵。
统计值:针对具有可计算的特定值的变量、编码参数、常量值等之中的至少一个的统计值可以是对应特定值的平均值、求和值、加权平均值、加权和值、最小值、最大值、最频繁出现的值、中值、插值之中的一个或更多个。
图1是示出根据应用了本发明的实施例的编码设备的配置的框图。
编码设备100可以是编码器、视频编码设备或图像编码设备。视频可包括至少一个图像。编码设备100可顺序地对至少一个图像进行编码。
参照图1,编码设备100可包括运动预测单元111、运动补偿单元112、帧内预测单元120、切换器115、减法器125、变换单元130、量化单元140、熵编码单元150、反量化单元160、逆变换单元170、加法器175、滤波器单元180和参考画面缓冲器190。
编码设备100可通过使用帧内模式或帧间模式或者帧内模式和帧间模式两者来执行输入图像的编码。此外,编码设备100可通过对输入图像进行编码来生成包括编码信息的比特流,并输出生成的比特流。生成的比特流可被存储在计算机可读记录介质中,或者可通过有线/无线传输介质被流传输。当帧内模式被用作预测模式时,切换器115可切换到帧内。可选地,当帧间模式被用作预测模式时,切换器115可切换到帧间模式。这里,帧内模式可表示帧内预测模式,帧间模式可表示帧间预测模式。编码设备100可生成针对输入图像的输入块的预测块。此外,编码设备100可在生成预测块之后使用输入块和预测块的残差对残差块进行编码。输入图像可被称为作为当前编码目标的当前图像。输入块可被称为作为当前编码目标的当前块,或者被称为编码目标块。
当预测模式是帧内模式时,帧内预测单元120可使用已被编码/解码并与当前块相邻的块的样点作为参考样点。帧内预测单元120可通过使用参考样点来对当前块执行空间预测,或者通过执行空间预测来生成输入块的预测样点。这里,帧内预测可表示帧内部的预测。
当预测模式是帧间模式时,运动预测单元111可在执行运动预测时从参考图像检索与输入块最匹配的区域,并且通过使用检索到的区域来推导运动矢量。在这种情况下,搜索区域可被用作所述区域。参考图像可被存储在参考画面缓冲器190中。这里,当执行对参考图像的编码/解码时,参考图像可被存储在参考画面缓冲器190中。
运动补偿单元112可通过使用运动矢量对当前块执行运动补偿来生成预测块。这里,帧间预测可表示帧之间的预测或运动补偿。
当运动矢量的值不是整数时,运动预测单元111和运动补偿单元112可通过将插值滤波器应用于参考画面的部分区域来生成预测块。为了对编码单元执行画面间预测或运动补偿,可确定跳过模式、合并模式、高级运动矢量预测(AMVP)模式和当前画面参考模式之中的哪个模式被用于对包括在对应编码单元中的预测单元的运动预测和运动补偿。然后,根据所确定的模式,可不同地执行画面间预测或运动补偿。
减法器125可通过使用输入块和预测块的差来生成残差块。残差块可被称为残差信号。残差信号可表示原始信号和预测信号之间的差。此外,残差信号可以是通过对原始信号与预测信号之间的差进行变换或量化或者变换和量化而生成的信号。残差块可以是块单元的残差信号。
变换单元130可通过对残差块执行变换来生成变换系数,并输出生成的变换系数。这里,变换系数可以是通过对残差块执行变换而生成的系数值。当变换跳过模式被应用时,变换单元130可跳过对残差块的变换。
可通过将量化应用于变换系数或应用于残差信号来生成量化的等级。在下文中,量化的等级在实施例中也可被称为变换系数。
量化单元140可通过根据参数对变换系数或残差信号进行量化来生成量化的等级,并输出生成的量化的等级。这里,量化单元140可通过使用量化矩阵对变换系数进行量化。
熵编码单元150可通过根据概率分布对由量化单元140计算出的值或者对在执行编码时计算出的编码参数值执行熵编码来生成比特流,并输出生成的比特流。熵编码单元150可对图像的样点信息和用于对图像进行解码的信息执行熵编码。例如,用于对图像进行解码的信息可包括语法元素。
当熵编码被应用时,符号被表示使得较少数量的比特被分配给具有高生成可能性的符号,并且较多数量的比特被分配给具有低生成可能性的符号,因此,可减小用于将被编码的符号的比特流的大小。熵编码单元150可使用诸如指数哥伦布、上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)等的用于熵编码的编码方法。例如,熵编码单元150可通过使用变长编码/码(VLC)表来执行熵编码。此外,熵编码单元150可推导目标符号的二值化方法和目标符号/二进制位的概率模型,并且通过使用推导的二值化方法和上下文模型来执行算术编码。
为了对变换系数等级(量化的等级)进行编码,熵编码单元150可通过使用变换系数扫描方法将二维块形式的系数改变为一维矢量形式。
编码参数可包括编码器中被编码并且被用信号发送到解码器的诸如语法元素的信息(标志、索引等)以及在执行编码或解码时推导出的信息。编码参数可表示在对图像进行编码或解码时所需要的信息。例如,以下项中的至少一个值或组合形式可被包括在编码参数中:单元/块尺寸、单元/块深度、单元/块分区信息、单元/块形状、单元/块分区结构、是否进行四叉树形式的分区、是否进行二叉树形式的分区、二叉树形式的分区方向(水平方向或垂直方向)、二叉树形式的分区形式(对称分区或非对称分区)、当前编码单元是否通过三叉树分区被分区、三叉树分区的方向(水平方向或垂直方向)、三叉树分区的类型(对称类型或非对称类型)、当前编码单元是否通过多类型树分区被分区、多类型树分区的方向(水平方向或垂直方向)、多类型树分区的类型(对称类型或非对称类型)、多类型树分区的树(二叉树或三叉树)结构、预测模式(帧内预测或帧间预测)、亮度帧内预测模式/方向、色度帧内预测模式/方向、帧内分区信息、帧间分区信息、编码块分区标志、预测块分区标志、变换块分区标志、参考样点滤波方法、参考样点滤波器抽头、参考样点滤波器系数、预测块滤波方法、预测块滤波器抽头、预测块滤波器系数、预测块边界滤波方法、预测块边界滤波器抽头、预测块边界滤波器系数、帧内预测模式、帧间预测模式、运动信息、运动矢量、运动矢量差、参考画面索引、帧间预测角度、帧间预测指示符、预测列表利用标志、参考画面列表、参考画面、运动矢量预测因子索引、运动矢量预测因子候选、运动矢量候选列表、是否使用合并模式、合并索引、合并候选、合并候选列表、是否使用跳过模式、插值滤波器类型、插值滤波器抽头、插值滤波器系数、运动矢量大小、运动矢量的表示精度、变换类型、变换尺寸、首次(第一次)变换是否被使用的信息、二次变换是否被使用的信息、首次变换索引、二次变换索引、残差信号是否存在的信息、编码块样式、编码块标志(CBF)、量化参数、量化参数残差、量化矩阵、是否应用帧内环路滤波器、帧内环路滤波器系数、帧内环路滤波器抽头、帧内环路滤波器形状/形式、是否应用去块滤波器、去块滤波器系数、去块滤波器抽头、去块滤波器强度、去块滤波器形状/形式、是否应用自适应样点偏移、自适应样点偏移值、自适应样点偏移类别、自适应样点偏移类型、是否应用自适应环路滤波器、自适应环路滤波器系数、自适应环路滤波器抽头、自适应环路滤波器形状/形式、二值化/逆二值化方法、上下文模型确定方法、上下文模型更新方法、是否执行常规模式、是否执行旁路模式、上下文二进制位、旁路二进制位、有效系数标志、最后有效系数标志、针对系数组的单元的编码标志、最后有效系数的位置、关于系数的值是否大于1的标志、关于系数的值是否大于2的标志、关于系数的值是否大于3的标志、关于其余系数值的信息、符号信息、重建亮度样点、重建色度样点、残差亮度样点、残差色度样点、亮度变换系数、色度变换系数、量化的亮度等级、量化的色度等级、变换系数等级扫描方法、在解码器侧的运动矢量搜索区域的尺寸、在解码器侧的运动矢量搜索区域的形状、在解码器侧的运动矢量搜索的次数、关于CTU尺寸的信息、关于最小块尺寸的信息、关于最大块尺寸的信息、关于最大块深度的信息、关于最小块深度的信息、图像显示/输出顺序、条带标识信息、条带类型、条带分区信息、并行块标识信息、并行块类型、并行块分区信息、并行块组标识信息、并行块组类型、并行块组分区信息、画面类型、输入样点的比特深度、重建样点的比特深度、残差样点的比特深度、变换系数的比特深度、量化的等级的比特深度、以及关于亮度信号的信息或关于色度信号的信息。
这里,用信号发送标志或索引可表示由编码器对对应标志或索引进行熵编码并将其包括在比特流中,并且可表示由解码器从比特流对对应标志或索引进行熵解码。
当编码设备100通过帧间预测执行编码时,编码的当前图像可被用作用于随后被处理的另一图像的参考图像。因此,编码设备100可对编码的当前图像进行重建或解码,或者将重建或解码的图像作为参考图像存储在参考画面缓冲器190中。
量化的等级可在反量化单元160中被反量化,或者可在逆变换单元170中被逆变换。可由加法器175将经过反量化或逆变换的系数或者经过反量化和逆变换两者的系数与预测块相加。通过将经过反量化或逆变换的系数或者经过反量化和逆变换两者的系数与预测块相加,可生成重建块。这里,经过反量化或逆变换的系数或经过反量化和逆变换两者的系数可表示执行了反量化和逆变换中的至少一个的系数,并且可表示重建残差块。
重建块可通过滤波器单元180。滤波器单元180可将去块滤波器、样点自适应偏移(SAO)和自适应环路滤波器(ALF)中的至少一个应用于重建样点、重建块或重建图像。滤波器单元180可被称为环内滤波器。
去块滤波器可去除在块之间的边界中生成的块失真。为了确定是否应用去块滤波器,可基于块中所包括的若干行或列中包括的样点来确定是否将去块滤波器应用于当前块。当将去块滤波器应用于块时,可根据所需的去块滤波强度来应用另一滤波器。
为了补偿编码误差,可通过使用样点自适应偏移将合适的偏移值与样点值相加。样点自适应偏移可以以样点为单位对经过去块的图像与原始图像的偏移进行校正。可使用考虑关于每个样点的边缘信息来应用偏移的方法,或者可使用以下方法:将图像的样点分区为预定数量的区域,确定偏移被应用的区域,并对确定的区域应用偏移。
自适应环路滤波器可基于经滤波的重建图像和原始图像的比较结果来执行滤波。可将包括在图像中的样点分区为预定组,可确定将被应用于每个组的滤波器,并且可对每个组执行差异化滤波。是否应用ALF的信息可通过编码单元(CU)被用信号发送,并且将被应用于每个块的ALF的形式和系数可变化。
已经通过滤波器单元180的重建块或重建图像可被存储在参考画面缓冲器190中。由滤波器单元180处理的重建块可以是参考图像的一部分。也就是说,参考图像是由滤波器单元180处理的重建块组成的重建图像。存储的参考图像可稍后在帧间预测或运动补偿中被使用。
图2是示出根据实施例并且应用了本发明的解码设备的配置的框图。
解码设备200可以是解码器、视频解码设备或图像解码设备。
参照图2,解码设备200可包括熵解码单元210、反量化单元220、逆变换单元230、帧内预测单元240、运动补偿单元250、加法器255、滤波器单元260和参考画面缓冲器270。
解码设备200可接收从编码设备100输出的比特流。解码设备200可接收存储在计算机可读记录介质中的比特流,或者可接收通过有线/无线传输介质被流传输的比特流。解码设备200可通过使用帧内模式或帧间模式对比特流进行解码。此外,解码设备200可生成通过解码而生成的重建图像或解码图像,并输出重建图像或解码图像。
当在解码时使用的预测模式是帧内模式时,切换器可被切换到帧内。可选地,当在解码时使用的预测模式是帧间模式时,切换器可被切换到帧间模式。
解码设备200可通过对输入比特流进行解码来获得重建残差块,并生成预测块。当重建残差块和预测块被获得时,解码设备200可通过将重建残差块与预测块相加来生成成为解码目标的重建块。解码目标块可被称为当前块。
熵解码单元210可通过根据概率分布对比特流进行熵解码来生成符号。生成的符号可包括量化的等级形式的符号。这里,熵解码方法可以是上述熵编码方法的逆处理。
为了对变换系数等级(量化的等级)进行解码,熵解码单元210可通过使用变换系数扫描方法将单向矢量形式的系数改变为二维块形式。
可在反量化单元220中对量化的等级进行反量化,或者可在逆变换单元230中对量化的等级进行逆变换。量化的等级可以是进行反量化或逆变换或者进行反量化和逆变换两者的结果,并且可被生成为重建残差块。这里,反量化单元220可将量化矩阵应用于量化的等级。
当使用帧内模式时,帧内预测单元240可通过对当前块执行空间预测来生成预测块,其中,空间预测使用与解码目标块相邻并且已经被解码的块的样点值。
当使用帧间模式时,运动补偿单元250可通过对当前块执行运动补偿来生成预测块,其中,运动补偿使用运动矢量以及存储在参考画面缓冲器270中的参考图像。
加法器225可通过将重建残差块与预测块相加来生成重建块。滤波器单元260可将去块滤波器、样点自适应偏移和自适应环路滤波器中的至少一个应用于重建块或重建图像。滤波器单元260可输出重建图像。重建块或重建图像可被存储在参考画面缓冲器270中并且在执行帧间预测时被使用。由滤波器单元260处理的重建块可以是参考图像的一部分。也就是说,参考图像是由滤波器单元260处理的重建块组成的重建图像。存储的参考图像可稍后在帧间预测或运动补偿中被使用。
图3是示意性地示出当对图像进行编码和解码时图像的分区结构的示图。图3示意性地示出将单个单元分区为多个更低等级的单元的示例。
为了有效地对图像进行分区,当进行编码和解码时,可使用编码单元(CU)。编码单元可被用作当对图像进行编码/解码时的基本单元。此外,编码单元可被用作用于在对图像进行编码/解码时区分帧内预测模式与帧间预测模式的单元。编码单元可以是用于预测、变换、量化、逆变换、反量化、或对变换系数的编码/解码处理的基本单元。
参照图3,图像300按照最大编码单元(LCU)被顺序地分区,并且LCU单元被确定为分区结构。这里,LCU可以以与编码树单元(CTU)相同的含义被使用。单元分区可表示对与该单元相关联的块进行分区。在块分区信息中,可包括单元深度的信息。深度信息可表示单元被分区的次数或程度或者单元被分区的次数和程度两者。可基于树结构将单个单元分区为与深度信息分层地相关联的多个更低等级的单元。换言之,单元和通过对该单元进行分区而生成的更低等级的单元可分别与节点和该节点的子节点对应。分区出的更低等级的单元中的每一个可具有深度信息。深度信息可以是表示CU的尺寸的信息,并且可被存储在每个CU中。单元深度表示与对单元进行分区相关的次数和/或程度。因此,更低等级的单元的分区信息可包括关于更低等级的单元的尺寸的信息。
分区结构可表示LCU 310内的编码单元(CU)的分布。可根据是否将单个CU分区为多个(包括2、4、8、16、等的等于或大于2的正整数)CU来确定这样的分布。通过分区生成的CU的水平尺寸和垂直尺寸可分别是分区之前的CU的水平尺寸和垂直尺寸的一半,或者可根据分区的次数而分别具有小于进行分区之前的水平尺寸和垂直尺寸的尺寸。CU可被递归地分区为多个CU。通过递归分区,与分区之前的CU的高度和宽度之中的至少一个相比,分区之后的CU的高度和宽度之中的至少一个可减小。可递归地执行CU的分区,直到预定义的深度或预定义的尺寸为止。例如,LCU的深度可以是0,最小编码单元(SCU)的深度可以是预定义的最大深度。这里,如上所述,LCU可以是具有最大编码单元尺寸的编码单元,并且SCU可以是具有最小编码单元尺寸的编码单元。分区从LCU 310开始,当CU的水平尺寸或垂直尺寸或者水平尺寸和垂直尺寸两者通过分区而减小时,CU深度增加1。例如,对于每个深度,未被分区的CU的尺寸可以是2N×2N。此外,在被分区的CU的情况下,可将尺寸为2N×2N的CU分区为尺寸为N×N的四个CU。随着深度增加1,N的大小可减半。
此外,可通过使用CU的分区信息来表示CU是否被分区的信息。分区信息可以是1比特信息。除SCU之外的所有CU可包括分区信息。例如,当分区信息的值为第一值时,CU可不被分区,当分区信息的值为第二值时,CU可被分区。
参照图3,具有深度0的LCU可以是64×64的块。0可以是最小深度。具有深度3的SCU可以是8×8的块。3可以是最大深度。32×32的块和16×16的块的CU可分别被表示为深度1和深度2。
例如,当单个编码单元被分区为四个编码单元时,分区出的四个编码单元的水平尺寸和垂直尺寸可以是CU在被分区之前的水平尺寸和垂直尺寸的一半大小。在一个实施例中,当尺寸为32×32的编码单元被分区为四个编码单元时,分区出的四个编码单元中的每一个可具有16×16的尺寸。当单个编码单元被分区为四个编码单元时,可称编码单元可被分区为四叉树形式。
例如,当一个编码单元被分区为两个子编码单元时,两个子编码单元中的每个子编码单元的水平尺寸或垂直尺寸(宽度或高度)可以是原始编码单元的水平尺寸或垂直尺寸的一半。例如,当尺寸为32×32的编码单元被垂直分区为两个子编码单元时,该两个子编码单元中的每一个可具有16×32的尺寸。例如,当尺寸为8×32的编码单元被水平分区为两个子编码单元时,该两个子编码单元中的每一个可具有8×16的尺寸。当一个编码单元被分区为两个子编码单元时,可称编码单元被二分区或者按照二叉树分区结构被分区。
例如,当一个编码单元被分区为三个子编码单元时,可以以1:2:1的比例对编码单元的水平尺寸或垂直尺寸进行分区,从而生成水平尺寸或垂直尺寸的比例为1:2:1的三个子编码单元。例如,当尺寸为16×32的编码单元被水平分区为三个子编码单元时,该三个子编码单元以从最上方子编码单元到最下方子编码单元的顺序可分别具有16×8、16×16和16×8的尺寸。例如,当尺寸为32×32的编码单元被垂直划分为三个子编码单元时,该三个子编码单元以从左侧子编码单元到右侧子编码单元的顺序可分别具有8×32、16×32和8×32的尺寸。当一个编码单元被分区为三个子编码单元时,可称编码单元被三分区或者按照三叉树分区结构被分区。
在图3中,编码树单元(CTU)320是四叉树分区结构、二叉树分区结构和三叉树分区结构全都被应用的CTU的示例。
如上所述,为了对CTU进行分区,可应用四叉树分区结构、二叉树分区结构和三叉树分区结构中的至少一个。可根据预定的优先级顺序将各种树分区结构顺序地应用于CTU。例如,可将四叉树分区结构优先应用于CTU。不能再使用四叉树分区结构进行分区的编码单元可与四叉树的叶节点对应。与四叉树的叶节点对应的编码单元可用作二叉树和/或三叉树分区结构的根节点。也就是说,与四叉树的叶节点对应的编码单元可按照二叉树分区结构或三叉树分区结构被进一步分区,或者可不被进一步分区。因此,通过防止从与四叉树的叶节点对应的编码单元的二叉树分区或三叉树分区得到的编码块经历进一步的四叉树分区,块分区操作和/或用信号发送分区信息的操作可被有效执行。
可使用四分区信息用信号发送与四叉树的节点对应的编码单元被分区的事实。具有第一值(例如,“1”)的四分区信息可指示当前编码单元按照四叉树分区结构被分区。具有第二值(例如,“0”)的四分区信息可指示当前编码单元未按照四叉树分区结构被分区。四分区信息可以是具有预定长度(例如,一个比特)的标志。
在二叉树分区与三叉树分区之间可能没有优先级。也就是说,与四叉树的叶节点对应的编码单元可进一步经历二叉树分区和三叉树分区中的任意分区。此外,通过二叉树分区或三叉树分区生成的编码单元可经历进一步的二叉树分区或进一步的三叉树分区,或者可不被进一步分区。
在二叉树分区和三叉树分区之间不存在优先级的树结构被称为多类型树结构。与四叉树的叶节点对应的编码单元可用作多类型树的根节点。可使用多类型树分区指示信息、分区方向信息和分区树信息中的至少一个来用信号发送是否对与多类型树的节点对应的编码单元进行分区。为了对与多类型树的节点对应的编码单元进行分区,可顺序地用信号发送多类型树分区指示信息、分区方向信息和分区树信息。
具有第一值(例如,“1”)的多类型树分区指示信息可指示当前编码单元将经历多类型树分区。具有第二值(例如,“0”)的多类型树分区指示信息可指示当前编码单元将不经历多类型树分区。
当与多类型树的节点对应的编码单元按照多类型树分区结构被进一步分区时,所述编码单元可包括分区方向信息。分区方向信息可指示当前编码单元将在哪个方向上针对多类型树分区被分区。具有第一值(例如,“1”)的分区方向信息可指示当前编码单元将被垂直分区。具有第二值(例如,“0”)的分区方向信息可指示当前编码单元将被水平分区。
当与多类型树的节点对应的编码单元按照多类型树分区结构被进一步分区时,当前编码单元可包括分区树信息。分区树信息可指示将被用于对多类型树的节点进行分区的树分区结构。具有第一值(例如,“1”)的分区树信息可指示当前编码单元将按照二叉树分区结构被分区。具有第二值(例如,“0”)的分区树信息可指示当前编码单元将按照三叉树分区结构被分区。
分区指示信息、分区树信息和分区方向信息均可以是具有预定长度(例如,一个比特)的标志。
四叉树分区指示信息、多类型树分区指示信息、分区方向信息和分区树信息中的至少任意一个可被熵编码/熵解码。为了对那些类型的信息进行熵编码/熵解码,可使用关于与当前编码单元相邻的邻近编码单元的信息。例如,当前编码单元的左侧邻近编码单元和/或上方邻近编码单元的分区类型(被分区或不被分区、分区树和/或分区方向)与当前编码单元的分区类型相似的可能性很高。因此,可从关于邻近编码单元的信息推导用于对关于当前编码单元的信息进行熵编码/熵解码的上下文信息。关于邻近编码单元的信息可包括四分区信息、多类型树分区指示信息、分区方向信息和分区树信息中的至少任意一个。
作为另一示例,在二叉树分区和三叉树分区中,可优先执行二叉树分区。也就是说,当前编码单元可首先经历二叉树分区,并且随后可将与二叉树的叶节点对应的编码单元设置为用于三叉树分区的根节点。在这种情况下,对于与三叉树的节点对应的编码单元,可既不执行四叉树分区也不执行二叉树分区。
不能按照四叉树分区结构、二叉树分区结构和/或三叉树分区结构被分区的编码单元成为用于编码、预测和/或变换的基本单元。也就是说,所述编码单元不能被进一步分区以用于预测和/或变换。因此,在比特流中可能不存在用于将编码单元分区为预测单元和/或变换单元的分区结构信息和分区信息。
然而,当编码单元(即,用于分区的基本单元)的尺寸大于最大变换块的尺寸时,可递归地对编码单元进行分区,直到将编码单元的尺寸减小到等于或小于最大变换块的尺寸为止。例如,当编码单元的尺寸为64×64时并且当最大变换块的尺寸为32×32时,可将编码单元分区为用于变换的四个32×32的块。例如,当编码单元的尺寸为32×64并且最大变换块的尺寸为32×32时,可将编码单元分区为用于变换的两个32×32的块。在这种情况下,不单独用信号发送编码单元的针对变换的分区,并且可通过编码单元的水平尺寸或垂直尺寸与最大变换块的水平尺寸或垂直尺寸之间的比较来确定编码单元的针对变换的分区。例如,当编码单元的水平尺寸(宽度)大于最大变换块的水平尺寸(宽度)时,可将编码单元垂直地二等分。例如,当编码单元的垂直尺寸(长度)大于最大变换块的垂直尺寸(长度)时,可将编码单元水平地二等分。
编码单元的最大和/或最小尺寸的信息以及变换块的最大和/或最小尺寸的信息可在编码单元的更高等级被用信号发送或确定。所述更高等级可以是例如序列级、画面级、条带级、并行块组级、并行块级等。例如,编码单元的最小尺寸可被确定为4×4。例如,变换块的最大尺寸可被确定为64×64。例如,变换块的最小尺寸可被确定为4×4。
可在编码单元的更高等级用信号发送或确定与四叉树的叶节点对应的编码单元的最小尺寸(四叉树最小尺寸)的信息和/或从多类型树的根节点到叶节点的最大深度(多类型树的最大树深度)的信息。例如,所述更高等级可以是序列级、画面级、条带级、并行块组级、并行块级等。可针对画面内条带和画面间条带中的每一个用信号发送或确定四叉树的最小尺寸的信息和/或多类型树的最大深度的信息。
可在编码单元的更高等级用信号发送或确定CTU的尺寸与变换块的最大尺寸之间的差信息。例如,所述更高等级可以是序列级、画面级、条带级、并行块组级、并行块级等。可基于编码树单元的尺寸和所述差信息来确定与二叉树的各个节点对应的编码单元的最大尺寸(在下文中,称为二叉树的最大尺寸)的信息。与三叉树的各个节点对应的编码单元的最大尺寸(在下文中,称为三叉树的最大尺寸)可根据条带的类型而变化。例如,针对画面内条带,三叉树的最大尺寸可以是32×32。例如,针对画面间条带,三叉树的最大尺寸可以是128×128。例如,与二叉树的各个节点对应的编码单元的最小尺寸(在下文中,称为二叉树的最小尺寸)和/或与三叉树的各个节点对应的编码单元的最小尺寸(在下文中,称为三叉树的最小尺寸)可被设置为编码块的最小尺寸。
作为另一示例,可在条带级用信号发送或确定二叉树的最大尺寸和/或三叉树的最大尺寸。可选地,可在条带级用信号发送或确定二叉树的最小尺寸和/或三叉树的最小尺寸。
根据上述各种块的尺寸和深度信息,四分区信息、多类型树分区指示信息、分区树信息和/或分区方向信息可被包括或可不被包括在比特流中。
例如,当编码单元的尺寸不大于四叉树的最小尺寸时,编码单元不包括四分区信息。因此,可从第二值推断四分区信息。
例如,当与多类型树的节点对应的编码单元的尺寸(水平尺寸和垂直尺寸)大于二叉树的最大尺寸(水平尺寸和垂直尺寸)和/或三叉树的最大尺寸(水平尺寸和垂直尺寸)时,编码单元可不被二分区或三分区。因此,可不用信号发送多类型树分区指示信息,但可从第二值推断多类型树分区指示信息。
可选地,当与多类型树的节点对应的编码单元的尺寸(水平尺寸和垂直尺寸)与二叉树的最大尺寸(水平尺寸和垂直尺寸)相同和/或是三叉树的最大尺寸(水平尺寸和垂直尺寸)的两倍大时,编码单元可不被进一步二分区或三分区。因此,可不用信号发送多类型树分区指示信息,而是可从第二值推导多类型树分区指示信息。这是因为当通过二叉树分区结构和/或三叉树分区结构对编码单元进行分区时,小于二叉树的最小尺寸和/或三叉树的最小尺寸的编码单元被生成。
可选地,可基于虚拟流水线数据单元的尺寸(在下文中,流水线缓冲器尺寸)来限制二叉树分区或三叉树分区。例如,当通过二叉树分区或三叉树分区将编码单元划分为不适合流水线缓冲器尺寸的子编码单元时,对应的二叉树分区或三叉树分区可能受到限制。流水线缓冲器尺寸可以是最大变换块的尺寸(例如,64×64)。例如,当流水线缓冲器尺寸是64×64时,可限制下面的划分。
-用于编码单元的N×M(N和/或M是128)三叉树分区
-用于编码单元的水平方向的128×N(N<=64)二叉树分区
-用于编码单元的垂直方向的N×128(N<=64)二叉树分区
可选地,当与多类型树的节点对应的编码单元的深度等于多类型树的最大深度时,编码单元可不被进一步二分区和/或三分区。因此,可不用信号发送多类型树分区指示信息,但可从第二值推断多类型树分区指示信息。
可选地,仅当垂直方向二叉树分区、水平方向二叉树分区、垂直方向三叉树分区和水平方向三叉树分区中的至少一个对于与多类型树的节点对应的编码单元是可能的时,可用信号发送多类型树分区指示信息。否则,编码单元可不被二分区和/或三分区。因此,可不用信号发送多类型树分区指示信息,但可从第二值推断多类型树分区指示信息。
可选地,仅当垂直方向二叉树分区和水平方向二叉树分区两者或垂直方向三叉树分区和水平方向三叉树分区两者对于与多类型树的节点对应的编码单元是可能的时,可用信号发送分区方向信息。否则,可不用信号发送分区方向信息,但是可从指示可能的分区方向的值推导分区方向信息。
可选地,仅当垂直方向二叉树分区和垂直方向三叉树分区两者或水平方向二叉树分区和水平方向三叉树分区两者对于与多类型树的节点对应的编码树是可能的时,可用信号发送分区树信息。否则,可不用信号发送分区树信息,而是可从指示可能的分区树结构的值推导分区树信息。
图4是示出帧内预测处理的示图。
图4中从中心到外部的箭头可表示帧内预测模式的预测方向。
可通过使用当前块的邻近块的参考样点来执行帧内编码和/或解码。邻近块可以是重建邻近块。例如,可通过使用包括在重建邻近块中的参考样点的编码参数或值来执行帧内编码和/或解码。
预测块可表示通过执行帧内预测而生成的块。预测块可与CU、PU和TU中的至少一个对应。预测块的单元可具有CU、PU和TU中的一个的尺寸。预测块可以是尺寸为2×2、4×4、16×16、32×32或64×64等的正方形块,或者可以是尺寸为2×8、4×8、2×16、4×16和8×16等的矩形块。
可根据针对当前块的帧内预测模式来执行帧内预测。当前块可具有的帧内预测模式的数量可以是固定值,并且可以是根据预测块的属性不同地确定的值。例如,预测块的属性可包括预测块的尺寸和预测块的形状等。
不管块尺寸为多少,可将帧内预测模式的数量固定为N。或者,帧内预测模式的数量可以是3、5、9、17、34、35、36、65或67等。可选地,帧内预测模式的数量可根据块尺寸或颜色分量类型或者块尺寸和颜色分量类型两者而变化。例如,帧内预测模式的数量可根据颜色分量是亮度信号还是色度信号而变化。例如,随着块尺寸变大,帧内预测模式的数量可增加。可选地,亮度分量块的帧内预测模式的数量可大于色度分量块的帧内预测模式的数量。
帧内预测模式可以是非角度模式或角度模式。非角度模式可以是DC模式或平面模式,并且角度模式可以是具有特定方向或角度的预测模式。帧内预测模式可由模式编号、模式值、模式数字、模式角度和模式方向中的至少一个来表示。帧内预测模式的数量可以是大于1的M,包括非角度模式和角度模式。为了对当前块进行帧内预测,可执行确定是否可将包括在重建邻近块中的样点用作当前块的参考样点的步骤。当存在不能用作当前块的参考样点的样点时,通过对包括在重建邻近块中的样点中的至少一个样点值进行复制或执行插值或者进行复制和插值两者而获得的值可被用于替换样点的不可用样点值,因此替换后的样点值被用作当前块的参考样点。
图7是示出能够用于帧内预测的参考样点的示图。
如图7所示,参考样点线0至参考样点线3中的至少一个可被用于当前块的帧内预测。在图7中,片段A和片段F的样点可分别利用最接近片段B和片段E的样点被填充,而不是从重建邻近块进行检索。可用信号发送指示将被用于当前块的帧内预测的参考样点线的索引信息。在当前块的上方边界是CTU的边界时,仅参考样点线0可以是可用的。因此,在这种情况下,可不用信号发送索引信息。当除了参考样点线0之外的参考样点线被使用时,可不执行稍后将描述的针对预测块的滤波。
当进行帧内预测时,可基于帧内预测模式和当前块尺寸将滤波器应用于参考样点和预测样点中的至少一个。
在平面模式的情况下,当生成当前块的预测块时,根据预测目标样点在预测块内的位置,可通过使用当前样点的上方参考样点与左侧参考样点以及当前块的右上方参考样点与左下方参考样点的加权和来生成预测目标样点的样点值。此外,在DC模式的情况下,当生成当前块的预测块时,可使用当前块的上方参考样点与左侧参考样点的平均值。此外,在角度模式的情况下,可通过使用当前块的上方参考样点、左侧参考样点、右上方参考样点和/或左下方参考样点来生成预测块。为了生成预测样点值,可执行实数单元的插值。
在颜色分量之间的帧内预测的情况下,可基于第一颜色分量的对应重建块来生成第二颜色分量的当前块的预测块。例如,第一颜色分量可以是亮度分量,并且第二颜色分量可以是色度分量。对于颜色分量之间的帧内预测,可基于模板来推导第一颜色分量与第二颜色分量之间的线性模型的参数。模板可包括当前块的上方和/或左侧邻近样点以及与其对应的第一颜色分量的重建块的上方和/或左侧邻近样点。例如,可使用模板中的样点中具有最大值的第一颜色分量的样点值和与其对应的第二颜色分量的样点值,以及模板中的样点中具有最小值的第一颜色分量的样点值和与其对应的第二颜色分量的样点值来推导线性模型的参数。当推导出线性模型的参数时,可将对应重建块应用于线性模型以生成当前块的预测块。根据视频格式,可对第一颜色分量的重建块和对应重建块的邻近样点执行子采样。例如,当第二颜色分量的一个样点与第一颜色分量的四个样点对应时,可对第一颜色分量的四个样点进行子采样以计算一个对应样点。在这种情况下,可基于对应的被子采样的样点执行线性模型的参数推导和颜色分量之间的帧内预测。是否执行颜色分量之间的帧内预测以及/或者模板的范围可作为帧内预测模式被用信号发送。
当前块可在水平方向或垂直方向上被分区为两个子块或四个子块。可顺序地重建被分区的子块。也就是说,可对子块执行帧内预测以生成子预测块。此外,可对子块执行反量化和/或逆变换以生成子残差块。可通过将子预测块与子残差块相加来生成重建子块。重建子块可被用作子子块的帧内预测的参考样点。子块可以是包括预定数量(例如,16)或更多个样点的块。因此,例如,在当前块是8×4的块或4×8的块时,当前块可被分区为两个子块。此外,在当前块是4×4的块时,当前块可不被分区为子块。在当前块具有其它尺寸时,当前块可被分区为四个子块。可用信号发送关于是否基于子块和/或分区方向(水平或垂直)执行帧内预测的信息。可限于仅在使用参考样点线0时执行基于子块的帧内预测。当执行基于子块的帧内预测时,可不执行稍后将描述的针对预测块的滤波。
可通过对被帧内预测的预测块执行滤波来生成最终预测块。可通过将预定权重应用于滤波目标样点、左侧参考样点、上方参考样点和/或左上方参考样点来执行滤波。可基于块尺寸、帧内预测模式和预测块中的滤波目标样点的位置中的至少一个来确定用于滤波的权重和/或参考样点(范围、位置等)。可仅在预定帧内预测模式(例如,DC、平面、垂直、水平、对角线和/或相邻对角线模式)的情况下执行滤波。相邻对角线模式可以是对对角线模式加上k或从对角线模式减去k的模式。例如,k可以是8或更小的正整数。
可通过预测与当前块相邻存在的块的帧内预测模式来对当前块的帧内预测模式进行熵编码/熵解码。在当前块与邻近块的帧内预测模式相同时,可通过使用预定标志信息来用信号发送当前块与邻近块的帧内预测模式相同的信息。此外,可用信号发送多个邻近块的帧内预测模式之中的与当前块的帧内预测模式相同的帧内预测模式的指示符信息。在当前块与邻近块的帧内预测模式不同时,可通过基于邻近块的帧内预测模式执行熵编码/熵解码来对当前块的帧内预测模式信息进行熵编码/熵解码。
图5是示出画面间预测处理的实施例的示图。
在图5中,矩形可表示画面。在图5中,箭头表示预测方向。根据画面的编码类型,可将画面分类为帧内画面(I画面)、预测画面(P画面)和双预测画面(B画面)。
可在不需要画面间预测的情况下通过帧内预测对I画面进行编码。可通过使用在相对于当前块的一个方向(即,前向或后向)上存在的参考画面,通过画面间预测来对P画面进行编码。可通过使用在相对于当前块的两个方向(即,前向和后向)上存在的参考画面,通过画面间预测来对B画面进行编码。当使用画面间预测时,编码器可执行画面间预测或运动补偿,并且解码器可执行对应运动补偿。
在下文中,将详细描述画面间预测的实施例。
可使用参考画面和运动信息来执行画面间预测或运动补偿。
可通过编码设备100和解码设备200中的每一个在画面间预测期间推导当前块的运动信息。可通过使用重建邻近块的运动信息、同位置块(也称为col块或同位块)的运动信息和/或与同位块相邻的块的运动信息来推导当前块的运动信息。同位块可表示先前重建的同位置画面(也称为col画面或同位画面)内的在空间上与当前块位于相同位置的块。同位画面可以是包括在参考画面列表中的一个或更多个参考画面中的一个画面。
运动信息的推导方法可根据当前块的预测模式而不同。例如,应用于帧间预测的预测模式包括AMVP模式、合并模式、跳过模式、具有运动矢量差的合并模式、子块合并模式、三角形分区模式、帧间-帧内组合预测模式、仿射模式等。这里,合并模式可被称为运动合并模式。
例如,当AMVP被用作预测模式时,可将重建邻近块的运动矢量、同位块的运动矢量、与同位块相邻的块的运动矢量和(0,0)运动矢量中的至少一个确定为针对当前块的运动矢量候选,并且通过使用运动矢量候选生成运动矢量候选列表。可通过使用生成的运动矢量候选列表来推导当前块的运动矢量候选。可基于推导出的运动矢量候选来确定当前块的运动信息。同位置块的运动矢量或与同位置块相邻的块的运动矢量可被称为时间运动矢量候选,并且重建邻近块的运动矢量可被称为空间运动矢量候选。
编码设备100可计算当前块的运动矢量与运动矢量候选之间的运动矢量差(MVD),并且可对运动矢量差(MVD)执行熵编码。此外,编码设备100可对运动矢量候选索引执行熵编码并生成比特流。运动矢量候选索引可指示包括在运动矢量候选列表中的运动矢量候选之中的最佳运动矢量候选。解码设备可对包括在比特流中的运动矢量候选索引执行熵解码,并且可通过使用经过熵解码的运动矢量候选索引从包括在运动矢量候选列表中的运动矢量候选中选择解码目标块的运动矢量候选。此外,解码设备200可将经过熵解码的MVD与通过熵解码而提取的运动矢量候选相加,从而推导解码目标块的运动矢量。
另外,编码设备100可对计算出的MVD的分辨率信息执行熵编码。解码设备200可使用MVD分辨率信息来调整被熵解码的MVD的分辨率。
另外,编码设备100基于仿射模型计算当前块中的运动矢量和运动矢量候选之间的运动矢量差(MVD),并对MVD执行熵编码。解码设备200通过根据被熵解码的MVD和仿射控制运动矢量候选的总和推导解码目标块的仿射控制运动矢量来基于每个子块推导运动矢量。
比特流可包括指示参考画面的参考画面索引。参考画面索引可通过编码设备100被熵编码,并且随后作为比特流被用信号发送到解码设备200。解码设备200可基于推导的运动矢量和参考画面索引信息来生成解码目标块的预测块。
推导当前块的运动信息的方法的另一示例可以是合并模式。合并模式可表示合并多个块的运动的方法。合并模式可表示从邻近块的运动信息推导当前块的运动信息的模式。当应用合并模式时,可使用重建邻近块的运动信息和/或同位置块的运动信息来生成合并候选列表。运动信息可包括运动矢量、参考画面索引和画面间预测指示符中的至少一个。所述预测指示符可指示单向预测(L0预测或L1预测)或双向预测(L0预测和L1预测)。
合并候选列表可以是存储的运动信息的列表。包括在合并候选列表中的运动信息可以是以下至少一个:与当前块相邻的邻近块的运动信息(空间合并候选)、参考画面中的当前块的同位置块的运动信息(时间合并候选)、通过合并候选列表中存在的运动信息的组合而生成的新运动信息、在当前块之前被编码/解码的块的运动信息(基于历史的合并候选)、以及零合并候选。
编码设备100可通过对合并标志和合并索引中的至少一个执行熵编码来生成比特流,并且可将比特流用信号发送到解码设备200。合并标志可以是指示是否针对每个块执行合并模式的信息,并且合并索引可以是指示当前块的邻近块中的哪个邻近块是合并目标块的信息。例如,当前块的邻近块可包括位于当前块的左侧的左侧邻近块、被布置在当前块上方的上方邻近块和在时间上与当前块相邻的时间邻近块。
另外,编码设备100对合并候选的运动信息中的用于校正运动矢量的校正信息执行熵编码,并将其用信号发送到解码设备200。解码设备200可基于校正信息校正由合并索引选择的合并候选的运动矢量。这里,校正信息可包括关于是否执行校正的信息、校正方向信息和校正尺寸信息中的至少一个。如上所述,基于用信号发送的校正信息对合并候选的运动矢量进行校正的预测模式可被称为具有运动矢量差的合并模式。
跳过模式可以是将邻近块的运动信息照原样应用于当前块的模式。当应用跳过模式时,编码设备100可对哪个块的运动信息将被用作当前块的运动信息的事实的信息执行熵编码,以生成比特流,并且可将比特流用信号发送到解码设备200。编码设备100可不将关于运动矢量差信息、编码块标志和变换系数等级中的至少任意一个的语法元素用信号发送到解码设备200。
子块合并模式可表示以编码块(CU)的子块为单位推导运动信息的模式。当应用子块合并模式时,可使用参考图像中的与当前子块同位置的子块的运动信息(基于子块的时间合并候选)和/或仿射控制点运动矢量合并候选来生成子块合并候选列表。
三角形分区模式可表示通过将当前块分区为对角线方向来推导运动信息,使用推导的运动信息中的每一个来推导每个预测样点,并且通过对推导的预测样点中的每一个进行加权来推导当前块的预测样点的模式。
帧间-帧内组合预测模式可表示通过对由帧间预测生成的预测样点和由帧内预测生成的预测样点进行加权来推导当前块的预测样点的模式。
解码设备200可自行校正推导的运动信息。解码设备200可基于由推导的运动信息指示的参考块搜索预定区域,并推导具有最小SAD的运动信息作为经过校正的运动信息。
解码设备200可使用光流对经由帧间预测推导的预测样点进行补偿。
图6是示出变换和量化处理的示图。
如图6中所示,对残差信号执行变换处理和/或量化处理,以生成量化的等级信号。残差信号是原始块与预测块(即,帧内预测块或帧间预测块)之间的差。预测块是通过帧内预测或帧间预测生成的块。所述变换可以是首次变换、二次变换或者首次变换和二次变换两者。对残差信号的首次变换生成变换系数,并且对变换系数的二次变换生成二次变换系数。
从预先定义的各种变换方案中选择的至少一种方案被用于执行首次变换。例如,所述预定义的变换方案的示例包括离散余弦变换(DCT)、离散正弦变换(DST)和Karhunen-Loève变换(KLT)。通过首次变换生成的变换系数可经历二次变换。可根据当前块和/或当前块的邻近块的编码参数来确定用于首次变换和/或二次变换的变换方案。可选地,可用信号发送指示变换方案的变换信息。基于DCT的变换可包括例如DCT-2、DCT-8等。基于DST的变换可包括例如DST-7。
可通过对残差信号或执行首次变换和/或二次变换的结果执行量化来生成量化的等级信号(量化系数)。根据块的帧内预测模式或块尺寸/形状,可根据对角线右上扫描、垂直扫描和水平扫描中的至少一个来扫描量化的等级信号。例如,当按照对角线右上扫描来扫描系数时,块形式的系数改变为一维矢量形式。除了对角线右上扫描之外,根据帧内预测模式和/或变换块的尺寸,可使用水平地扫描二维块形式的系数的水平扫描或垂直地扫描二维块形式的系数的垂直扫描。扫描的量化的等级系数可被熵编码以插入比特流中。
解码器对比特流进行熵解码以获得量化的等级系数。量化的等级系数可通过逆扫描以二维块形式被布置。对于逆扫描,可使用对角线右上扫描、垂直扫描和水平扫描中的至少一个。
量化的等级系数随后可被反量化,然后根据需要被二次逆变换,最后根据需要被首次逆变换,以生成重建残差信号。
可在环内滤波之前针对通过帧内预测或帧间预测重建的亮度分量执行动态范围中的逆映射。动态范围可被划分为16个相等的段,并且可用信号发送每个段的映射函数。可在条带级或并行块组级用信号发送映射函数。可基于映射函数推导用于执行逆映射的逆映射函数。在逆映射区域中执行环内滤波、参考画面存储和运动补偿,并且通过帧间预测生成的预测块经由使用映射函数的映射被转换到映射区域,然后被用于生成重建块。然而,由于在映射区域中执行帧内预测,因此经由帧内预测生成的预测块可被用于生成重建块而无需映射/逆映射。
在当前块是色度分量的残差块时,可通过对映射区域的色度分量执行缩放来将残差块转换到逆映射区域。可在条带级或并行块组级用信号发送缩放的可用性。仅当亮度分量的映射可用并且亮度分量的划分和色度分量的划分遵循相同的树结构时,才可应用缩放。可基于与色差块对应的亮度预测块的样点值的平均值来执行缩放。在这种情况下,在当前块使用帧间预测时,亮度预测块可表示映射的亮度预测块。可通过使用亮度预测块的样点值的平均值所属的片段的索引参考查找表来推导缩放所需的值。最后,通过使用推导的值对残差块进行缩放,可将残差块转换到逆映射区域。然后,可在逆映射区域中执行色度分量块恢复、帧内预测、帧间预测、环内滤波和参考画面存储。
可通过序列参数集用信号发送指示亮度分量和色度分量的映射/逆映射是否可用的信息。
可基于指示当前画面中的当前块与参考块之间的位移的块矢量来生成当前块的预测块。以这种方式,用于参考当前画面生成预测块的预测模式被称为帧内块复制(IBC)模式。IBC模式可被应用于M×N(M<=64,N<=64)编码单元。IBC模式可包括跳过模式、合并模式、AMVP模式等。在跳过模式或合并模式的情况下,构建合并候选列表,并且用信号发送合并索引,使得可指定一个合并候选。指定的合并候选的块矢量可用作当前块的块矢量。合并候选列表可包括空间候选、基于历史的候选、基于两个候选的平均值的候选和零合并候选中的至少一个。在AMVP模式的情况下,可用信号发送差块矢量。此外,可从当前块的左侧邻近块和上方邻近块推导预测块矢量。可用信号发送将使用的邻近块的索引。IBC模式中的预测块被包括在当前CTU或左侧CTU中并且被限于已经重建的区域中的块。例如,可限制块矢量的值,使得当前块的预测块按照编码/解码顺序位于当前块所属的64×64的块之前的三个64×64的块的区域中。通过以这种方式限制块矢量的值,可降低根据IBC模式实施方案的存储器消耗和装置复杂性。
在下文中,将描述根据本发明的实施例的对图像进行解码/编码的方法。
基于高级运动矢量预测的运动矢量预测方法不仅可使用位于编码/解码目标块的空间外围的重建块的运动矢量(MV),而且可使用存在于参考画面中的与编码/解码目标块相同位置或对应位置的块的运动矢量。
这里,存在于参考画面处或参考画面中的与编码/解码目标块相同位置处或者参考画面中的与编码/解码目标块相同位置中的相邻位置或空间对应位置处的块可被称为同位置块。这里,同位置块可以是必定位于参考画面的与编码/解码目标块相同位置的块以及存在于与编码/解码目标块的位置相似的位置(即,对应的位置)处的块。这里,与编码/解码目标块的位置具有相似的位置的块可包括与编码/解码目标块相邻的块。
此外,作为时间运动矢量的推导目标的画面可被称为同位置画面。也就是说,同位置画面可表示针对当前画面存储运动矢量的画面。此外,同位置画面可存储针对当前画面的运动矢量差值。此外,同位置画面可存储用于推导针对当前画面的仿射模型的种子矢量或仿射控制点矢量。
在运动信息合并方法中,运动信息不仅可从位于空间附近的重建块被推断出,而且可从同位置块被推断出,并且可被用作编码/解码目标块的运动信息。在这种情况下,所述运动信息可包括指示帧间预测所需的参考画面索引、运动矢量、单向或双向等的帧间预测模式信息、参考画面列表、关于是否将在帧内预测模式下被编码或是否将在帧间预测模式下被编码的预测模式信息中的至少一条或更多条。
编码/解码目标块中的预测运动矢量可以是在空间上与编码/解码目标块相邻的邻近块的运动矢量以及作为在时间上与编码/解码目标块相邻的块的同位置块的运动矢量。
图8示出编码/解码目标画面和参考画面的示例。
在图8中,块X表示编码/解码目标画面801中的编码/解码目标块,并且块A、块B、块C、块D和块E表示位于编码/解码目标块周围的重建块。参考画面802中的块T指示存在于与编码/解码目标块的位置对应的位置处的同位置块。
可通过运动矢量预测因子索引来确定将哪个运动矢量用作编码/解码目标块中的预测运动矢量。
如图9中所示,针对每个参考画面列表的运动矢量预测因子索引(mvp_idx_l0,mvp_idx_l1)被发送到解码设备,并且解码设备可将与由编码设备预测的运动矢量相同的运动矢量用作预测运动矢量。
当使用与编码/解码目标块在空间上相邻的邻近块的运动矢量来对编码/解码目标块进行编码/解码时,可仅利用具有相对较小大小的存储器来存储运动矢量。
然而,当使用时间运动矢量对编码/解码目标块进行编码/解码时,由于参考画面的所有运动矢量必须被存储在存储器中,因此需要具有相对较大大小的存储器。此外,从存储器检索数据所需的存储器访问带宽的量也增加。因此,在没有足够的存储器空间或功耗应被最小化的应用环境中,如在便携式接收终端中,有必要更有效地存储时间运动矢量。
在下文中,将描述有效地存储时间运动矢量的运动矢量存储方法。
作为将运动矢量存储在存储器中的方法,可降低运动矢量的空间分辨率。
在上述方法中,运动矢量可以以任意比率被压缩,然后被存储在存储器中。例如,可通过将按照4×4的块单元存储的运动矢量按照4×4或更大的块单元进行存储来减少所存储的运动矢量的数量。这里,为了调整所存储的运动矢量的块尺寸,可发送关于压缩比率的信息。
如图10中所示,可在序列参数集、画面参数集、条带头、并行块头、CTU和CU单元中发送与运动矢量的空间分辨率相关的信息。
参照图10,当motion_vector_buffer_comp_flag为1时,可执行运动矢量缓冲器压缩处理。
motion_vector_buffer_comp_ratio_log2可指示运动矢量缓冲器压缩处理的压缩比率。当不存在motion_vector_buffer_comp_ratio_log2时,推断motion_vector_buffer_comp_ratio_log2为0,并且运动矢量缓冲器压缩比率可被表示为等式1。
【等式1】
MVBufferCompRatio=1<<motion_vector_buffer_comp_ratio_log2
这里,可在编码器/解码器中将空间分辨率设置为预定的固定值,而不用信号发送关于空间分辨率的信息。这里,空间分辨率可以是诸如4×4、8×8和16×16的N×M的形式(其中,N和M是正整数)中的至少一种。
在编码器或解码器中,可在使用参考画面的运动矢量的处理(诸如生成运动矢量候选列表以及生成合并候选列表)中的至少一个处理中使用具有减小的空间分辨率的参考画面的运动矢量。这里,参考画面的运动矢量可表示时间运动矢量。
另外,序列、画面、条带、并行块、CTU和块中的至少一个单元可具有彼此不同的空间分辨率。
例如,第一画面可具有4×4的单元的空间分辨率,并且第二画面可具有16×16的单元的空间分辨率。
例如,画面中的第一并行块可具有4×4的单元的空间分辨率,并且画面中的第二并行块可具有16×16的单元的空间分辨率。
例如,画面中的第一CTU可具有4×4的单元的空间分辨率,并且画面中的第二CTU可具有16×16的单元的空间分辨率。
当序列、画面、条带、并行块、CTU和块中的至少一个单元具有彼此不同的空间分辨率时,可对对应单元中的关于空间分辨率的信息进行熵编码/熵解码。
例如,当1920×1080(1080p)的画面的所有4×4的块具有不同运动矢量,使用两个参考画面列表并且针对每个列表使用两个参考画面时,可能需要总共4.14兆字节的存储器空间来存储针对参考画面的时间运动矢量。
-针对每个运动矢量的32个比特的比特深度
(1)运动矢量的X分量的动态范围:-32768至+32767(比特深度:16个比特)
(2)运动矢量的Y分量的动态范围:-32768至+32767(比特深度:16个比特)
-当所有4×4的块单元具有彼此不同的运动矢量时:480×270=129600个块
-针对每个块使用两个运动矢量
-参考画面列表的数量:2
-针对一个参考画面列表使用两个参考画面
32个比特×129600个块×两个运动矢量×两个参考画面列表×两个参考画面=33177600个比特=4.14兆字节
考虑以上五个条件,可能需要4.14兆字节作为用于存储时间运动矢量的存储器空间。
根据上述降低运动矢量的空间分辨率的方法,可通过使用运动矢量的空间相关性来减小所需的存储器空间的大小和存储器访问带宽。
当存储器空间的大小减小到1/4时,上述示例中所需的存储器空间的大小减小至大约1.0兆字节。这里,当通过另外限制运动矢量的动态范围,仅6个比特作为存储运动矢量所需的比特深度被用于运动矢量的每个分量时,所需的存储器空间可被进一步减小到0.375兆字节。
因此,在下文中将描述减小运动矢量的比特深度的方法,以便减小存储运动矢量所需的存储器空间的大小和从存储器检索数据所需的存储器访问带宽。
例如,可通过限制运动矢量的动态范围来减小运动矢量的比特深度。
作为另一示例,可通过改变运动矢量的格式来减小运动矢量的比特深度。此外,可通过再次改变运动矢量的格式来增加运动矢量的比特深度。
在下文中,运动矢量的动态范围表示运动矢量的负分量或正分量相对于零的最小值与最大值之间的部分,并且比特深度指示存储运动矢量所需的空间的大小,并且还指示比特宽度。此外,除非另有指定,否则运动矢量可表示参考画面的运动矢量,即,时间运动矢量。
当运动矢量的每个分量超出动态范围时,每个分量可被表示为动态范围的最小值或最大值。例如,当运动矢量的X分量为312且运动矢量的每个分量的动态范围的最大值为255时,运动矢量的X分量可被限于255。
同样地,在运动矢量的每个分量的比特深度为16个比特且运动矢量为(-36,24)的情况下,当运动矢量的每个分量的比特深度限于6个比特时,每个分量具有-32到+31的动态范围,使得运动矢量可被表示为在动态范围内的(-32,24)。
此外,在运动矢量的每个分量的比特深度为16个比特且运动矢量为(-49,142)的情况下,当运动矢量的每个分量的比特深度限于9个比特时,每个分量具有-256到+255的动态范围,使得运动矢量可被表示为未改变的(-49,142)。
图11是示出限制运动矢量的动态范围的示例的示图。
参照图11,当具有-4096到+4095的动态范围的运动矢量的动态范围被限于-128到+127时,比特深度可从13个比特被减小到8个比特。
时间运动矢量的每个分量可被剪裁(诸如等式2和等式3),以N个比特的比特深度被存储。其中,N是正整数。
【等式2】
clippedMV_X=min(1<<(N-1)-1,max(-1<<(N-1),MV_X))
【等式3】
clippedMV_Y=min(1<<(N-1)-1,max(-1<<(N-1),MV_Y))
其中,MV_X是运动矢量的X分量,MV_Y是运动矢量的Y分量,min(a,b)是输出a和b中的较小值的运算,max(a,b)是输出a和b中的较大值的运算。clippedMV_X和clippedMV_Y分别是剪裁后的时间运动矢量的X分量和Y分量,并且被存储在存储器中以用作编码/解码目标块的时间运动矢量。
例如,如表1中所示,当存储器空间的大小为48字节且16个比特的比特深度被用于运动矢量的每个分量时,可存储总共12个运动矢量。
【表1】
MV1-X MV1-Y MV2-X MV2-Y MV3-X MV3-Y MV4-X MV4-Y
MV5-X MV5-Y MV6-X MV6-Y MV7-X MV7-Y MV8-X MV8-Y
MV9-X MVg-Y MV10-X MV10-Y MV11-X MV11-Y MV12-X MV12-Y
然而,当仅8个比特的比特深度被用于运动矢量的每个分量时,如表2中所示,可存储总共24个运动矢量。
【表2】
MV1-X MV1-Y MV2-X MV2-Y MV3-X MV3-Y MV4-X MV4-Y
MV5-X MV5-Y MV6-X MV6-Y MV7-X MV7-Y MV8-X MV8-Y
MV9-X MV9-Y MV10-X MV10-Y MV11-X MV11-Y MV12-X MV12-Y
MV13-X MV13-Y MV14-X MV14-Y MV15-X MV15-Y MV16-X MV16-Y
MV17-X MV17-Y MV18-X MV18-Y MV19-X MV19-Y MV20-X MV20-Y
MV21-X MV21-Y MV22-X MV22-Y MV23-X MV23-Y MV24-X MV24-Y
因此,当通过诸如去块滤波器或自适应环路滤波器的环内滤波处理将在编码设备和/或解码设备中重建的图像存储在解码画面缓冲器(DPB)中时,可通过限制运动矢量的动态范围来保存参考画面的运动矢量。此处,解码画面缓冲器可表示图1或图2的参考画面缓冲器。
此外,当编码设备和/或解码设备中的参考画面的运动矢量被用于使用参考画面的运动矢量的处理(诸如运动矢量候选列表的生成和合并候选列表的生成)中的至少一个时,可限制参考画面的运动矢量的动态范围。这里,被限制的动态范围可以是固定到编码设备/解码设备的范围。例如,固定的动态范围可以是N比特深度。
另外,除了时间运动矢量之外,还可限制以下项中的至少一项的动态范围:从AMVP模式和合并模式推导出的空间运动矢量、从具有运动矢量差的合并模式推导出的差分运动矢量、从子块合并模式推导出的子块运动矢量、从三角划分形模式推导出的运动矢量、从仿射帧间模式推导出的仿射控制点运动矢量、以及通过在解码设备自身中对运动信息进行校正而推导出的校正后的运动矢量。这里,被限制的动态范围可以是固定到编码设备/解码设备的范围。例如,固定的动态范围可以是N比特深度。
此外,在本发明中,本发明的实施例中的至少一个实施例可被应用于块矢量、运动矢量差和块矢量差中的至少一个,而不是运动矢量。也就是说,本发明中的与运动矢量对应的实施例中的至少一个实施例可被等同地应用于块矢量、运动矢量差和块矢量差。
例如,可限制块矢量、运动矢量差和块矢量差的至少一个动态范围。这里,被限制的动态范围可以是固定到编码设备/解码设备的范围。例如,固定的动态范围可以是N比特深度。N可以是正整数,例如18。
当比特深度N是18时,被限制的动态范围可以是-217至217-1,-217可表示该动态范围的最小值,并且217-1可表示该动态范围的最大值。
解码设备200可自动校正推导出的运动信息。解码设备200可基于由推导出的运动信息指示的参考块来搜索预定义区域,以推导具有最小SAD的运动信息作为校正后的运动信息。
I.剪裁运动矢量的处理
当条带类型(slice_type)不是I画面时,可执行剪裁运动矢量的每个分量的处理。可在完成了滤波处理之后以树块或最大编码单元(LCU)为单位执行运动矢量剪裁处理。
在运动矢量剪裁处理中,输入是当前画面中的预测单元的左上像素位置(xP,yP)以及运动矢量矩阵MvL0和MvL1,并且输出是剪裁后的运动矢量矩阵CMvL0和CMvL1。
可对矩阵MvL0、MvL1、CMvL0和CMvL1执行等式4至等式7的运算。
【等式4】
mvLX=MvLX[xP,yP]
【等式5】
cmvLX[0]=Clip3(-1<<(TMVBitWidth-1),1<<(TMVBitWidth-1)-1,mvLX[0])
【等式6】
cmvLX[1]=Clip3(-1<<(TMVBitWidth-1),1<<(TMVBitWidth-1)-1,mvLX[1])
【等式7】
CMvLX[xP,yP]=cmvLX
这里,TMVBitWidth表示运动矢量的比特深度,Clip3(a,b,c)可表示以存在于a与b之间的范围中的方式剪裁c的函数。
II.存储运动矢量的处理
图12到15是示出存储参考画面的运动矢量的方法的流程图。
参照图12,可使用用于存储经过解码的画面的图像缓冲器和用于存储运动矢量的运动矢量缓冲器来存储参考画面的运动矢量。这里,经过解码的画面可经历环内滤波处理(S1210),并且运动矢量经历动态范围限制处理(S1220)以被存储(S1240)。
此外,参照图13,一起使用图像缓冲器和运动矢量缓冲器,其中,运动矢量可经历动态范围限制处理(S1320)和空间分辨率降低处理(S1330)以被存储(S1340)。
此外,参考图14,解码的画面经历环内滤波处理(S1410)以存储在图像缓冲器(S1440)中,并且运动矢量经历动态范围限制处理(S1420)以存储在运动矢量缓冲器(S1450)中。
此外,参照图15,经过解码的画面经历环内滤波处理(S1510)以被存储在图像缓冲器中(S1540),并且运动矢量经历动态范围限制处理(S1520)和空间分辨率降低处理(S1530)以被存储(S1550)。
另外,在图13和图15的实施例中,动态范围限制处理(S1320、S1520)和空间分辨率降低处理(S1330、S1530)不限于所述顺序,而是可被改变。
此外,可针对运动矢量的每个分量不同地限制动态范围,以便进一步减小存储器访问带宽。例如,可仅限制X分量的动态范围和Y分量的动态范围中的一个动态范围,或者还可相对于X分量的动态范围进一步限制Y分量的动态范围。
指示运动矢量的被限制的动态范围的信息被设置为在编码设备和解码设备中预定的固定值,或者通过序列参数集、画面参数集(PPS)、并行块头、条带头、CTU、块等中的至少一个被发送,并且解码设备可对序列、画面、并行块、条带、CTU和块中的至少一个中的时间运动矢量的动态范围执行相同的限制。这里,可一起发送比特深度,其中,所述比特深度是存储动态范围内表示的运动矢量所需的存储器空间的大小。此外,可通过使用通过序列参数、画面参数集、条带头、并行块头、CTU、块等中的至少一个发送的动态范围,根据图像的运动特性有效地存储时间运动矢量,而不是使用固定大小的比特深度来存储运动矢量。在编码设备或解码设备中,可在使用参考画面的运动矢量的处理(诸如运动矢量候选列表的生成和合并候选列表的生成)中的至少一个处理中使用具有被限制的动态范围的参考画面的运动矢量。所述动态范围可由N比特值来表示。其中,N可以是0或正整数。
这里,在序列、画面、条带、并行块、CTU和块中的至少一个单元中,可具有不同的动态范围。
例如,第一画面可具有16个比特的动态范围,并且第二画面可具有32个比特的动态范围。
例如,画面中的第一并行块可具有16个比特的动态范围,并且画面中的第二并行块可具有32个比特的动态范围。
例如,画面中的第一CTU可具有16个比特的动态范围,并且画面中的第二CTU可具有32个比特的动态范围。
当序列、画面、条带、并行块、CTU和块中的至少一个单元具有彼此不同的动态范围时,可对关于对应单元中的动态范围的信息进行熵编码/熵解码。
另外,运动矢量可被量化并被存储。当运动矢量被量化并被存储时,运动矢量的精度降低。量化方法包括步长相等的均匀量化、步长不相等的非均匀量化等。量化的步长被设置为在编码设备和解码设备中预定的固定值,或者通过序列参数集、画面参数集、并行块头、条带头、CTU、块等中的至少一个从编码设备到解码设备确定指示量化步长的信息。在解码设备中,量化的运动矢量可照原样或以被反量化的方式被使用。
图16是示出对运动矢量进行量化的示例的示图。
参照图16,当运动矢量具有32至48的分量值时,运动矢量被量化为40。在编码设备或解码设备中,当存储参考画面的运动矢量时执行量化,并且在使用参考画面的运动矢量的处理(诸如生成运动矢量候选列表以及生成合并候选列表)中的至少一个处理中,量化的参考画面的运动矢量被反量化并被使用。步长可由N值来表示。这里,N可以是0或正整数。
这里,序列、画面、条带、并行块、CTU和块中的至少一个单元可具有彼此不同的步长。
例如,第一画面可具有步长1,并且第二画面可具有步长2。
例如,画面中的第一并行块可具有步长1,并且画面中的第二并行块可具有步长2。
例如,画面中的第一CTU可具有步长1,并且画面中的第二CTU可具有步长2。
当序列、画面、条带、并行块、CTU和块中的至少一个单元具有彼此不同的步长时,可对关于对应单元中的步长的信息进行熵编码/熵解码。
此外,可以以被限制的表示分辨率存储运动矢量。表示分辨率可表示整数像素单位(1像素单位)或分数像素单位(1/2像素单位、1/4像素单位、1/8像素单位、1/16像素单位等)。
例如,以1/4像素为单位处理的运动矢量的分辨率可被存储在整数像素中。表示运动矢量的表示分辨率的信息被设置为在编码设备和解码设备中预定的固定值,或者可通过序列参数集、画面参数集、并行块头、条带头、CTU、块等中的至少一个从编码设备被发送到解码设备。
在编码设备或解码设备中,通过限制表示分辨率来存储参考画面的运动矢量,并且在使用参考画面的运动矢量的处理(诸如生成运动矢量候选列表以及生成合并候选列表)中的至少一个处理中,可在限制分辨率之前在运动矢量中重建具有被限制的分辨率的参考画面的运动矢量。例如,1/16像素单位的运动矢量可以以被限制的分辨率被存储为1/4像素单位的运动矢量,并且以1/4像素单位存储的运动矢量在使用参考画面的运动矢量的处理中的至少一个处理中被重建为1/16像素单位。表示分辨率可被表示为值M/N。这里,M和N可以是0或正整数。
这里,序列、画面、条带、并行块、CTU和块中的至少一个可具有彼此不同的表示分辨率。
例如,第一画面可具有1/16像素单位的表示分辨率,并且第二画面可具有1/4像素单位的表示分辨率。
例如,画面中的第一并行块可具有1/16像素单位的表示分辨率,并且画面中的第二并行块可具有1/4像素单位的表示分辨率。
例如,画面中的第一CTU可具有1/16像素单位的表示分辨率,并且画面中的第二CTU可具有1/4像素单位的表示分辨率。
当序列、画面、条带、并行块、CTU和块中的至少一个单元具有彼此不同的表示分辨率时,可对关于对应单元中的表示分辨率的信息进行熵编码/熵解码。
另外,可通过改变运动矢量的格式来存储运动矢量。这里,运动矢量的格式是表示运动矢量分量的格式,并且可包括固定点格式、浮点格式、有符号的n比特格式等。
例如,通过使用浮点格式将有符号的18比特格式的运动矢量分量改变为6比特尾数和4比特指数格式的运动矢量分量。也就是说,通过改变运动矢量分量的格式,运动矢量的比特深度可从18个比特减少到10个比特。
更具体地,编码设备或解码设备可将在当前块的帧间预测中使用的运动矢量值变换为浮点格式,然后将变换后的值存储在存储器中。变换为浮点格式的值可被变换回到所述运动矢量值,然后被用于邻近块的帧间预测。详细地,编码设备或解码设备可将以N个比特表示的运动矢量值变换为M比特浮点格式。在这种情况下,M比特可包括R个尾数比特和P个指数部分比特。例如,N、M、R和P可以是正整数,并且可分别是18、10、6和4。
例如,可根据以下等式8将在当前块的帧间预测中使用的运动矢量变换为浮点格式。
【等式8】
s=mv[compIdx]>>17
f=Floor(Log2((mv[compIdx]^s)|31))-4
mask=(-1<<f)>>1
round=(1<<f)>>2
mv[compIdx]=(mv[compIdx]+round)&mask
这里,mv[]可表示在当前块的帧间预测中使用的运动矢量值,并且compIdx可以是指示运动矢量的分量类型的值。例如,compIdx可以是指示运动矢量的x值或y值的索引值、指示运动矢量的亮度分量或色度分量的索引值或者指示预测方向(例如,L0或L1)的索引值。另外,Fbor()可以是丢弃小数点之后的数字的函数。
运动矢量的格式被设置为在编码设备和解码设备中预定的固定格式,或者可通过序列参数集、画面参数集、并行块头、条带头、CTU、块等中的至少一个从编码设备被发送到解码设备。
此外,仅对存储在存储器中的时间运动矢量中的一些运动矢量执行运动矢量的动态范围限制处理、空间分辨率降低处理、量化处理、表示分辨率限制处理和格式改变处理中的至少一个处理。
当通过限制运动矢量的动态范围来存储运动矢量的动态范围时,可通过在存储器上添加信息来将运动矢量的动态范围存储在存储器中。例如,当运动矢量的动态范围为-128至+127时,可另外存储标志1,并且当运动矢量的动态范围被设置为-32至+31时,可另外存储标志0。这里,标志信息可与运动矢量一起被存储,或者可被存储在除了存储运动矢量的存储器之外的存储器中。当标志信息和运动矢量被存储在彼此不同的存储器中时,可随机访问标志信息以找出特定运动矢量以哪个动态范围被存储。此外,通过序列参数集、画面参数集、并行块头、CTU、块、条带头等中的至少一个发送关于一些运动矢量以哪些动态范围被存储的信息,从而允许与编码器类似地执行解码器。
当通过减小运动矢量的空间分辨率来存储运动矢量的空间分辨率时,可通过在存储器上添加信息来将运动矢量的空间分辨率存储在存储器中。例如,当运动矢量的块尺寸为4×4时,可另外存储标志1,并且当运动矢量的块尺寸为16×16时,可另外存储标志0。这里,标志信息可与运动矢量一起被存储,或者可被存储在除了存储运动矢量的存储器之外的存储器中。当标志信息和运动矢量被存储在彼此不同的存储器中时,可随机访问标志信息以找出特定运动矢量以哪个块尺寸被存储。此外,通过序列参数集、画面参数集、并行块头、CTU、块、条带头等中的至少一个来发送关于一些运动矢量以哪个块尺寸被存储的信息,从而允许与编码器类似地执行解码器。
当量化然后存储运动矢量时,可通过在存储器上添加信息来将运动矢量的分辨率存储在存储器中。例如,当运动矢量的步长为4时,可另外存储标志1,并且当运动矢量的步长为1时,可另外存储标志0。这里,标志信息可与运动矢量一起被存储,或者可被存储在除了存储运动矢量的存储器之外的存储器中。当标志信息和运动矢量被存储在彼此不同的存储器中时,可随机访问标志信息以找出特定运动矢量以哪个步长被存储。此外,通过序列参数集、画面参数集、并行块头、CTU、块、条带头等中的至少一个来发送关于一些运动矢量以哪个步长被存储的信息,从而允许与编码器类似地执行解码器。
当通过限制运动矢量的表示分辨率来存储运动矢量的表示分辨率时,可通过在存储器上添加信息来将运动矢量的表示分辨率存储在存储器中。例如,当表示分辨率为整数单位时,可另外存储标志1,并且当表示分辨率为1/4像素单位时,可另外存储标志0。这里,标志信息可与运动矢量一起被存储,或者可被存储在除了存储运动矢量的存储器之外的存储器中。当标志信息和运动矢量被存储在彼此不同的存储器中时,可随机访问标志信息以找出特定运动矢量以哪个表示分辨率被存储。此外,通过序列参数集、画面参数集、并行块头、CTU、块、条带头等中的至少一个来发送关于一些运动矢量以哪个表示分辨率被存储的信息,从而允许与编码器类似地执行解码器。
此外,当将运动信息存储在存储器中时,可通过降低运动矢量的空间分辨率来存储运动信息。在这种情况下,运动信息可包括指示帧间预测所需的参考画面索引、运动矢量、单向或双向等的帧间预测模式信息、参考画面列表、关于是否将在帧内预测模式下被编码或是否将在帧间预测模式下被编码的预测模式信息中的至少一条或更多条。
例如,特定区域的多条运动信息中的具有最大分区或块尺寸的预测单元的运动信息可作为代表性运动信息被存储在存储器中。在这种情况下,所述特定区域可包括编码/解码目标块内的区域和邻近块的区域。此外,所述特定区域可以是包括当整个画面或条带按预定尺寸被划分时存储了运动信息的块的区域。
例如,可在特定区域中包括的多条运动信息中排除通过运动信息合并方法、编码信息跳过方法等编码的运动信息之后将代表性运动信息存储在存储器中。
例如,特定区域中包括的多条运动信息中的最频繁出现的运动信息可作为代表性运动信息被存储在存储器中。这里,可针对每个块尺寸计算运动信息的出现次数。
例如,可存储特定区域中包括的多条运动信息中的特定位置的运动信息。这里,所述特定位置可以是包括在特定区域中的位置,并且可以是所述特定区域的固定位置。此外,所述特定位置可被选为多个位置中的一个位置。当使用多个位置时,可针对每个位置确定优先级,并且可根据所述优先级将运动信息存储在存储器中。此外,根据每个位置的优先级,可检查运动信息是否存在于对应位置中,并且当存在运动矢量时,可存储对应位置的运动信息。
例如,当将包括在特定区域中的多条运动信息存储在存储器中,在条带或画面、帧内预测模式下编码的块、脉冲编码调制(PCM)模式下编码的块的边界之外不存在运动信息时,对应位置的运动信息可不被存储在存储器中。
例如,当存储特定位置处的运动信息时,可将诸如对应位置周围的经过帧间预测编码的块的运动信息的中值或平均值的统计值存储在存储器中。
当在上述示例中存储特定位置的运动信息时,当不存在对应位置的运动信息时,同位置块的运动信息、第一编码块的运动信息或邻近块的运动信息可用作对应位置的运动信息。这里,所述特定位置可以是编码/解码目标块周围的块中的一个样点位置或块位置。例如,当不存在特定位置的运动信息时,可将诸如所述位置周围的经过帧间预测编码的块的运动信息的中值或平均值的统计值存储在存储器中。例如,当不存在特定位置的运动信息时,对应位置的邻近块的运动信息的平均值可被存储在存储器中。当计算中值和平均值时,当邻近块的运动信息与参考画面索引、参考画面列表和帧间预测模式信息中的一个或更多个不同时,可根据参考画面索引、参考画面列表、帧间预测模式信息、画面显示计数等来调整运动矢量的大小。
III.推导运动矢量的处理
当使用上述运动信息方法将运动信息存储在存储器中,并且在运动矢量预测方法、高级运动矢量预测方法或运动信息合并方法中使用参考画面的运动信息时,可获得所存储的运动信息。
例如,可获得参考画面中的与编码/解码目标块的位置对应的位置的运动信息。在这种情况下,参考画面中的与编码/解码目标块的位置对应的位置可以是特定区域中的固定位置或相对编码/解码目标块的位置的相关位置。
图17至图20是示出从参考画面获得运动信息的示例的示图。
在图17至图20中,块X表示编码/解码目标画面1710、1810、1910和2010中的编码/解码目标块,并且块A、块B、块C、块D和块E表示位于编码/解码目标块周围的重建块。
参考画面1720、1820、1920和2020中的块T指示与编码/解码目标块对应的同位置块。
图20的参考画面2020中的块Y指示与除了编码/解码目标块之外的位置对应的块。
参照图17,可获得参考画面中的与编码/解码目标块X的位置之中的左上像素位置对应的位置中的运动信息。
参照图18,可获得参考画面中的与编码/解码目标块X的位置之中的中心像素位置对应的位置中的运动信息。
参照图19,可获得参考画面中的与编码/解码目标块X的位置之中的右上像素位置对应的位置中的运动信息。
参照图20,可获得参考画面中的与除了编码/解码目标块X之外的位置对应的位置中的运动信息。
通过使用存储在存储器中的运动信息(即,参考画面的运动信息),可执行诸如运动矢量预测、高级运动矢量预测、运动信息合并和运动信息合并跳过的编码/解码方法。
使用限制运动矢量的动态范围的方法、降低运动矢量的空间分辨率的方法、对运动矢量进行量化的方法、降低运动矢量的表示的分辨率的方法和改变运动矢量格式的方法中的至少一种方法将运动矢量存储在存储器中,并且所存储的运动矢量可被用于编码/解码目标块的运动矢量预测和运动信息合并。
从存储器获得参考画面的运动矢量的处理可被称为推导时间运动矢量的处理。在推导时间运动矢量的处理中,TMVbitWidth表示存储在存储器中的时间运动矢量的比特宽度。
在推导时间运动矢量的处理中,输入是当前画面中的预测单元的左上像素位置(xP,yP)、亮度预测单元的水平长度nPSW和垂直长度nPSH以及当前预测单元分区的参考画面索引refidsLX,并且输出是运动矢量预测值mxLXCl以及指示存在的标志availableFlagLXCol。
RefPicOrderCnt(pic,refidx,LX)是输出pic的参考画面RefPicListX[refidx]的PicOrderCnt的函数。其中,X是0或1。存在参考画面的PicOrderCnt,直到画面被视为“不存在”为止。Clip3(a,b,c)表示剪裁c使得它在a与b之间的范围内的函数。
当条带类型(slice_type)为B条带并且collocated_from_l0_flag为0时,具有同位置分区的ColPic变为RefPicList1[0];并且当条带类型为P条带或collocated_from_l0_flag为1时,具有同位置分区的ColPic变为RefPicList0[0]。
ColPu和作为colPu的位置的(xPCol,yPCol)按以下顺序被推导。
1、当前预测单元的右下方亮度分量位置(xPRb,yPRb)被定义为等式9和等式10。
【等式9】
xPRb=xP+nPSW
【等式10】
yPRb=yP+nPSH
2、当colPu在帧内预测模式下被编码或者不存在colPu时,
(1)当前预测单元的中心亮度分量位置(xPCtr,yPCtr)被定义为等式11和等式12。
【等式11】
xPCtr=(xP+(nPSW>>1)-1
【等式12】
yPCtr=(yP+(nPSH>>1)-1
(2)在包含colPic中的位置((xPCtr>>4)<<4,(yPCtr>>4)<<<4)的预测单元中设置colPu。
3、(xPCol,yPCol)变为从colPic的左上方亮度分量位置起的colPu的左上方亮度分量位置的值。
如下推导mvLXCol和availableFlagLXCol。
1、当colPu在帧内预测模式下被编码或者不存在colPu时,mvLXCol的每个分量为0,并且availableFlagLXCol也为0。
2、否则,当colPu未在帧内预测模式下被编码并且存在colPu时,如下推导mvLXCol和refIdxCol。
(1)当predFlagL0[xPCol][yPCol]为0时,将运动矢量mvCol确定为MvL1[xPCol][yPCol],并且将参考画面索引refIdxCol确定为RefIdxL1[xPCol][yPCol]。
(2)否则,当PredFlagL0[xPCol][yPCol]为1时,执行以下处理。
1)当PredFlagL1[xPCol][yPCol]为0时,将运动矢量mvCol确定为MvL0[xPCol][yPCol],并且将参考画面索引refIdxCol确定为RefIdxL0[xPCol][yPCol]。
2)否则,也就是说,如果PredFlagL1[xPCol][yPCol]为1,则执行以下处理。
a.X变为0或1,并执行以下分配处理。
i.RefIdxColLX被分配给RefIdxLX[xPCol][yPCol]。
ii.当PicOrderCnt(colPic)小于PicOrderCnt(currPic)并且RefPicOrderCnt(colPic,RefIdxColLX,LX)大于PicOrderCnt(currPic)时,或者当PicOrderCnt(colPic)大于PicOrderCnt(currPic)并且RefPicOrderCnt(colPic,RefIdxColLX,LX)小于PicOrderCnt(currPic)时,MvXCross被分配为1。
iii.否则,当PicOrderCnt(colPic)小于PicOrderCnt(currPic)并且RefPicOrderCnt(colPic,RefIdxColLX,LX)小于PicOrderCnt(currPic)时,或者当PicOrderCnt(colPic)大于PicOrderCnt(currPic)并且RefPicOrderCnt(colPic,RefIdxColLX,LX)大于PicOrderCnt(currPic)时,MvXCross被分配为1。
b.当满足以下条件之一时,将运动矢量mvCol、参考画面索引refIdxCol和ListCol分别确定为MvL1[xPCol][yPCol]、RefIdxColL1和L1。
i.MV0Cross为0,MV1Cross为1。
ii.Mv0Cross与Mv1Cross相同,参考画面列表为L1。
c.否则,将运动矢量mvCol、参考画面索引refIdxCol和ListCol分别确定为MvL0[xPCol][yPCol]、RefIdxColL0和L0。
3)availableFlagLXCol为1,执行等式13或等式14至等式19的运算。
a.当PicOrderCnt(colPic)-RefPicOrderCnt(colPic,refIdxCol,ListCol)与PicOrderCnt(currPic)-RefPicOrderCnt(currPic,refIdxLX,LX)相同时,
【等式13】
mvLXCol=Clip3(-1<<(TMVBitWidth-1),1<<(TMVBitWidth-1)-1,mvCol)
b.否则,
【等式14】
tx=(16384+Abs(td/2))/td
【等式15】
DistScaleFactor=Clip3(-1024,1023,(tb*tx+32)>>6)
【等式16】
mvLXCol′=Clip3(-1<<(TMVBitWidth-1),1<<(TMVBitWidth-1)-1,mvCol)
【等式17】
mvLXCol=ClipMv((DistScaleFactor*mvLXCol′+128)>>8)
这里,td和tb为如等式18和等式19中所示。
【等式18】
td=Clip3(-128,127,PicOrderCnt(colPic)-RefPicOrderCnt(colPic,refIdxCol,ListCol))
【等式19】
tb=Clip3(-128,127,PicOrderCnt(currPic)-RefPicOrderCnt(currPic,refIdxLX,LX))
也就是说,参照等式14至等式17,mvLXCol被推导为运动矢量mvCol的缩放后的版本。
另外,即使运动矢量在动态范围内被剪裁,当剪裁后的运动矢量被缩放时,运动矢量也可能再次在动态范围之外。因此,在推导缩放后的运动矢量之后,可限制运动矢量的动态范围。这里,等式16和等式17可分别用等式20和等式21代替。
【等式20】
mvLXCol′=ClipMv((DistScaleFactor*mvLXCol+128)>>8)
【等式21】
mvLXCol=Clip3(-1<<(TMVBitWidth-1),1<<(TMVBitWidth-1)-1,mvCol′)
另外,可改变从参考画面中的同位置块获得的运动矢量的格式,然后将其推导为时间运动矢量。
例如,可通过将6比特尾数和4比特指数格式的运动矢量分量改变为有符号的18比特格式的运动矢量分量来推导时间运动矢量。也就是说,通过改变运动矢量分量的格式,运动矢量的比特深度可从10个比特增加到18个比特。
例如,用于限制缩放后的运动矢量的动态范围的TMVBitWidth可被固定为M个比特并被应用于编码设备/解码设备。这里,M可以是正整数,例如,18。
详细地,当存储在存储器中的缩放后的运动矢量值未被包括在预定范围内时,编码设备或解码设备可将当前块的缩放后的运动矢量值确定为所述预定范围的最小值或最大值,以在当前块的帧间预测中使用所述预定范围的最小值或最大值。具体地,当存储在存储器中的缩放后的运动矢量值小于所述预定范围的最小值时,编码设备或解码设备可将缩放后的运动矢量值确定为所述预定范围的最小值,并将所述预定范围的最小值用于当前块的帧间预测。此外,当缩放后的运动矢量值大于所述预定范围的最大值时,编码设备或解码设备可将缩放后的运动矢量值确定为所述预定范围的最大值,并将所述预定范围的最大值用于帧间预测。此外,当当前块的缩放后的运动矢量值未被包括在所述预定范围内时,编码设备或解码设备可将缩放后的运动矢量值确定为所述预定范围的最小值或最大值,并将所确定的值存储在存储器中。例如,所述预定范围可以是-2N至2N-1。这里,N可以是正整数,例如,17。当N为17时,-2N可具有值-131072,并且2N-1可具有值131071。
在编码器和解码器中,从参考画面中的同位置块获取的运动矢量的格式被改变,以推导具有改变后的格式的时间运动矢量。在这种情况下,与改变格式之前的时间运动矢量的比特深度相比,改变了格式的时间运动矢量的比特深度可更高。
可通过对格式改变的时间运动矢量执行缩放来推导缩放后的运动矢量。
可通过限制针对缩放后的运动矢量的动态范围来推导最终时间运动矢量。这里,当限制动态范围时,可执行剪裁处理。
缩放处理和剪裁处理可作为两个处理被顺序地执行,并且可作为一个集成处理被执行。
最终时间运动矢量可再次被改变格式并被用作针对参考画面的运动矢量。这里,与改变格式之前的时间运动矢量的比特深度相比,改变了格式的时间运动矢量的比特深度可更低。
IV.在解码设备中发送用于剪裁时间运动矢量的信息的方法
在下文中,将描述以与编码设备相同的方式在解码设备中发送剪裁时间运动矢量所需的信息的方法。
上述时间运动矢量推导处理中的TMVBitWidth可通过序列参数集、画面参数集、条带头、并行块头、CTU、块等中的至少一个从编码设备被发送到解码设备。
图21的bit_width_temporal_motion_vector_minus8指示时间运动矢量分量的比特宽度。当不存在bit_width_temporal_motion_vector_minus8时,它被推断为0,并且时间运动矢量分量的比特宽度可被表示为等式22。
【等式22】
TMVBitWidth=bit_width_temporal_motion_vector_minus8+8
1、第一信息发送方法(当压缩运动矢量并限制运动矢量的比特深度时)
参照图22,当motion_vector_buffer_comp_flag为1时,可执行运动矢量缓冲器压缩处理。
motion_vector_buffer_comp_ratio_log2表示运动矢量缓冲器压缩处理的压缩比率。当不存在motion_vector_buffer_comp_ratio_log2时,它被推断为0,并且运动矢量缓冲器压缩比率可被表示为等式23。
【等式23】
MVBufferCompRario=1<<morion_vector_buffer_comp_ratio_log2
参照图22,当bit_depth_temporal_motion_vector_constraint_flag为1时,可执行时间运动矢量比特深度限制处理。
bit_depth_temporal_motion_vector_minus8表示时间运动矢量的比特深度。当不存在bit_depth_temporal_motion_vector_minus8时,它被推断为0,并且时间运动矢量的比特深度可被表示为等式24。
【等式24】
TMVBitDepth=bit_depth_temporal_motion_vector_minus8+8
第二信息发送方法(当限制运动矢量的比特深度时)
参照图23,当bit_depth_temporal_motion_vector_constraint_flag为1时,可执行时间运动矢量比特深度限制处理。
Bit_depth_temporal_motion_vector_minus8表示时间运动矢量的比特深度。当不存在bit_depth_temporal_motion_vector_minus8时,它被推断为0,并且时间运动矢量的比特深度可被表示为等式25。
【等式25】
TMVBitDepth=bit_depth_temporal_motion_vector_minus8+8
3、第三信息发送方法(当限制运动矢量的比特深度时)
图24的bit_depth_temporal_motion_vector_minus8表示时间运动矢量的比特深度。当不存在bit_depth_temporal_motion_vector_minus8时,它被推断为0,并且时间运动矢量的比特深度可被表示为等式26。
【等式26】
TMVBitDepth=bit_depth_temporal_motion_vector_minus8+8
4、第四信息发送方法(当限制针对运动矢量的X分量和Y分量中的每一个的比特深度时)
参照图25,当bit_depth_temporal_motion_vector_constraint_flag为1时,可执行时间运动矢量比特深度限制处理。
bit_depth_temporal_motion_vector_x_minus8表示时间运动矢量的X分量的比特深度。当不存在bit_depth_temporal_motion_vector_x_minus8时,它被推断为0,并且时间运动矢量的比特深度可被表示为等式27。
【等式27】
TMVXBitDepth=bit_depth_temporal_motion_vector_x_minus8+8
bit_depth_temporal_motion_vector_y_minus8表示时间运动矢量的Y分量的比特深度。当不存在bit_depth_temporal_motion_vector_x_minus8时,它被推断为0,并且时间运动矢量的比特深度可被表示为等式28。
【等式28】
TMVXBitDepth=bit_depth_temporal_motion_vector_y_minus8+8
5、第五信息发送方法(当压缩运动矢量并限制运动矢量的比特深度时)
参照图26,当motion_vector_buffer_comp_nag为1时,可执行运动矢量缓冲器压缩处理。
motion_vector_buffer_comp_ratio_log2表示运动矢量缓冲器压缩处理的压缩比率。当不存在motion_vector_buffer_comp_ratio_log2时,它被推断为0,并且运动矢量缓冲器压缩比率可被表示为等式29。
【等式29】
MVBufferCompRatio=1<<motion_vector_buffer_comp_ratio_log2
V.经由图像编解码器的等级定义动态范围
可不通过序列参数集、画面参数集、条带头、并行块头、CTU、块等中的至少一个发送时间运动矢量的动态范围,而可通过图像编解码器的等级来定义时间运动矢量的动态范围。编码设备和解码设备可使用等级信息来确定运动矢量的被限制的动态范围。
此外,可按等级不同地定义运动矢量的X分量和Y分量中的每一个分量的动态范围和/或比特深度,并且可定义相应分量的最小值和最大值。
图27是在上述时间运动矢量推导处理中按等级定义TMVBitWidth的示例。
参照图27,TMVBitWidth可被设置为按等级定义的MaxTMVBitWidth。这里,MaxTMVBitWidth表示当时间运动矢量被存储在存储器中时运动矢量的最大比特宽度。
另外,可按等级定义TMVBitWidth,并且可通过序列参数集、画面参数集、条带头、并行块头、CTU、块等中的至少一个来发送所定义的值的差量值。也就是说,TMVBitWidth可被设置为通过将由序列参数集、画面参数集、条带头、并行块头、CTU、块等中的至少一个发送的差量值与按等级定义的MaxTMVBitWidth相加而获得的值。这里,TMVBitWidth表示当时间运动矢量被存储在存储器中时运动矢量的比特宽度。
图28是在上文所描述的时间运动矢量推导处理中按等级定义TMVBitDepth的示例。
参照图28,TMVBitDepth可被设置为按等级定义的MaxTMVBitDepth。这里,MaxTMVBitDepth表示当时间运动矢量被存储在存储器中时运动矢量的最大比特深度。
另外,TMVBitDepth是按等级定义的,并且可通过序列参数集、画面参数集、条带头、并行块头、CTU、块等中的至少一个来发送所定义的值的差量值。也就是说,TMVBitDepth可被设置为通过将由序列参数集、画面参数集、条带头、并行块头、CTU、块等中的至少一个发送的差量值与按等级定义的MaxTMVBitDepth相加而获得的值。在这种情况下,TMVBitDepth表示当时间运动矢量被存储在存储器中时运动矢量的比特深度。
图29的delta_bit_width_temporal_motion_vector_minus8表示时间运动矢量分量的比特宽度的差。当不存在delta_bit_width_temporal_motion_vector_minus8时,它被推断为0,并且时间运动矢量分量的比特宽度可被表示为等式30。
【等式30】
TMVBitWidth=delta_bit_width_temporal_motion_vector_minus8+MaxTMVBitWidth
此外,时间运动矢量的每个分量的动态范围可如图30中所示按等级被定义。
此外,如图31至图33中所示,时间运动矢量的每个分量的比特宽度可按等级被定义。
此外,时间运动矢量的Y分量的比特宽度可如图34中所示按等级被定义。
此外,时间运动矢量的动态范围可被定义为在编码设备和解码设备中约定预定的固定值,而不发送关于运动矢量的限制的信息,或者可以以固定比特深度的形式被存储。
当TMVBitWidth在编码设备和解码设备中被固定为相同值时,TMVBitWidth可以是诸如4、6、8、10、12、14、16等的正整数。这里,TMVBitWidth表示当时间运动矢量被存储在存储器中时间运动矢量的比特宽度。
图35是示出根据本发明的实施例的使用运动矢量剪裁来对图像进行编码的方法的流程图。参照图35,图像编码方法包括剪裁步骤S3510、存储步骤S3520和编码步骤S3530。
图像编码设备和/或解码设备在预定动态范围中剪裁参考画面的运动矢量(S3510)。如“I.剪裁运动矢量的处理”中所述,动态范围之外的运动矢量可被表示为动态范围的最小值或最大值。因此,如“IV.在解码设备中发送用于剪裁时间运动矢量的信息的方法”以及“V.经由图像编解码器的等级定义动态范围”中所述,通过图像编解码器的等级和/或一组序列参数限制比特深度,或者通过图像编解码器的等级限制动态范围,可将参考画面的运动矢量剪裁至预定动态范围。
如“II.运动矢量存储处理”中所述,图像编码设备和/或解码设备将剪裁后的参考画面的运动矢量存储在缓冲器中(S3520)。运动矢量可与经过解码的画面一起或单独地被存储在缓冲器中。
图像编码设备通过使用所存储的参考画面的运动矢量来对编码目标块的运动矢量进行编码(S3530)。如“III.推导运动矢量的处理”中所述,高级运动矢量预测方法不仅可使用位于编码/解码目标块的空间附近的重建块的运动矢量,而且可使用参考画面内的与编码/解码目标块存在于相同位置或对应位置的块的运动矢量。可使用存在于所述相同位置或对应位置的块的运动矢量。因此,编码目标块的运动矢量不仅可以是与编码目标块相邻的邻近块的运动矢量,而且可以是参考画面的运动矢量,即,时间运动矢量。
另外,由于参考画面的运动矢量的X分量的动态范围和Y分量的动态范围可被彼此不同地定义,因此可将参考画面的运动矢量的每个分量剪裁至动态范围。
此外,可使用限制参考画面的运动矢量的动态范围的方法以及压缩参考画面的运动矢量的方法。这里,运动矢量的压缩可表示上述运动矢量的格式改变。
当限制参考画面的运动矢量的动态范围或压缩参考画面的运动矢量时,可定义指示图像编解码器的等级和/或序列参数集的标志等。
此外,通过使用存储在存储器中的运动信息(即,参考画面的运动信息),可执行诸如运动矢量预测、高级运动矢量预测、运动信息合并、运动信息合并跳过等的编码方法。
图36是示出根据本发明的实施例的使用运动矢量剪裁来对图像进行解码的方法的流程图。
参照图36,图像解码方法包括剪裁步骤S3610、存储步骤S3620、推导步骤S3630和解码步骤S3640。
图36的剪裁步骤S3610和存储步骤S3620与使用上述“I.剪裁运动矢量的处理”以及“II.存储运动矢量的处理”的图35的剪裁步骤S3510和存储步骤S3520相似。此外,图36的推导步骤S3630使用上述“III.推导运动矢量的处理”,并且与图35的编码步骤S3530对称。因此,将省略其详细描述。
图像解码设备使用解码目标块的运动矢量来执行帧间预测解码(S3640)。图像解码设备使用限制运动矢量的动态范围的方法、降低运动矢量的空间分辨率的方法、对运动矢量进行量化的方法和降低运动矢量的表示分辨率的方法中的至少一种方法将至少一个运动矢量存储在存储器中,并将所存储的运动矢量用于解码目标块的运动矢量预测和运动信息合并。
此外,通过使用存储在存储器中的运动信息(即,参考画面的运动信息),可执行诸如运动矢量预测、高级运动矢量预测、运动信息合并、运动信息合并跳过等的解码方法。
在上述实施例中,当当前块的运动矢量被存储在线缓冲器/存储器中时,对运动矢量执行校正之前的运动矢量可被存储在线缓冲器/存储器中。这里,该运动矢量可被称为校正之前的运动矢量。也就是说,可在当前块的运动补偿处理之前存储从运动矢量候选列表、合并候选列表和子块单元合并候选列表确定的运动矢量。校正可表示在编码器/解码器中运动矢量值可在运动补偿处理期间或在运动补偿处理之前通过预定规则被改变。
此外,在上述实施例中,当当前块的运动矢量被存储在时间运动矢量缓冲器/存储器中时,在对运动矢量执行校正之后的运动矢量可被存储在时间运动矢量缓冲器/存储器中。这里,所述运动矢量可被称为校正之后的运动矢量。也就是说,在当前块的运动补偿处理期间或在当前块的运动补偿处理之前校正的运动矢量可被存储。
在当前块使用块矢量使得当前图像中的重建区域被用作预测块的帧内块复制模式的情况下,关于运动矢量的实施例中的至少一个实施例可被应用于当前块的块矢量。也就是说,当块模式是帧内块复制模式时,可应用上述实施例中的运动矢量被替换为块矢量的实施例。
为了减小存储参考画面的运动信息所需的存储器,可存储特定画面的运动信息。在这种情况下,可在使用参考画面的运动矢量的处理(诸如生成当前画面/条带/并行块中的块的运动矢量候选列表以及生成合并候选列表)中的至少一个处理中使用所存储的特定画面的运动信息。
特定画面可表示同位置画面。也就是说,可在使用运动信息的编码/解码处理(诸如随后将被编码/解码的画面的帧间预测)中使用同位置画面的运动信息。这里,特定画面可表示特定参考画面。这里,参考画面的运动信息可表示时间运动信息。此外,参考画面的运动矢量可表示时间运动矢量。使用运动信息的编码/解码处理(诸如帧间预测)可表示使用时间运动矢量的编码/解码处理中的至少一个处理。
针对当前画面/条带/并行块的特定画面可以是针对每个参考画面列表的至少一个画面。此外,针对当前画面/条带/并行块的特定画面可以是针对多个参考画面列表的至少一个画面。
为了存储所述特定画面的运动信息,可对关于画面、条带、并行块、CTU、块中的至少一个运动信息是否被存储在画面、条带、并行块、CTU、块中的至少一个单元中的运动信息存储指示符执行熵编码/熵解码。可在画面参数集、条带头、并行块头、CTU单元和块单元中的至少一个中用信号发送运动信息存储指示符。可使用高级语法元素来用信号发送运动信息存储指示符。
如图37的示例中所示,可用信号发送指示运动信息被存储在当前画面的画面参数集中的运动信息存储指示符(motion_info_stored_flag),使得当前画面的运动信息可被用于对随后将被编码/解码的画面进行编码/解码。
例如,当运动信息存储指示符为第一值时,这可表示运动信息被存储在对应单元中,并且当运动信息存储指示符为第二值时,这可表示运动信息未被存储在对应单元中。这里,第一值可表示1,并且第二值可表示0。运动信息指示符可在当前画面、条带或并行块中的至少一种类型为B、P时被用信号发送,可在当前画面、条带或并行块中的至少一种类型为I时不被用信号发送,并且可被推断为第二值。
当运动信息存储指示符为第一值时,画面可被用作随后将被编码/解码的画面的同位置画面。此外,当运动信息存储指示符为第二值时,对应画面可不被用作随后将被编码/解码的画面的同位置画面。
如图38的示例中所示,可在画面参数集、条带头、并行块头、CTU单元和块单元中的至少一个中对随后将被编码/解码的画面中的同位置方向信息(collocated_from_l0_flag)和同位置画面索引(collocated_ref_idx)中的至少一个进行熵编码/熵解码。这里,同位置方向信息可表示同位置画面是存在于L0参考画面列表还是L1参考画面列表中,并且同位置画面索引可表示指示参考画面列表中的同位置画面的索引。同位置画面索引在当前画面、条带或并行块中的至少一种类型为B或P时可被用信号发送,在当前画面、条带或并行块中的至少一种类型为I时可不被用信号发送,并且可被推断为值0。
在图38中,slice_type可表示I、B和P中的条带类型的类型,并且num_ref_idx_l0_active_minus1和num_ref_idx_l1_active_minus1可指L0和L1参考画面列表中的参考画面的数量。
这里,用具有第一值的运动信息存储指示符的画面来配置针对L0方向和L1方向中的每一个的同位置画面列表,并且可对同位置画面索引进行熵编码/熵解码以指示用作所述列表中的同位置画面的画面。这里,可在随后将被编码/解码的画面中对同位置画面索引进行熵编码/熵解码。这里,由具有第一值的运动信息存储指示符的画面组成的列表可被称为同位置画面列表。
此外,用具有第一值的运动信息存储指示符的画面来配置一个同位置画面列表,在不对同位置方向信息执行熵编码/熵解码的情况下,对同位置画面索引进行熵编码/熵解码,从而指示用作所述列表中的同位置画面的画面。
此外,当在同位置画面列表中存在至少一个画面时,可对同位置画面索引进行熵编码/熵解码。
此外,可确定至少一个同位置画面。例如,可在对随后将被编码/解码的画面的编码/解码中使用多个同位置画面。在这种情况下,可在一个画面中对至少一个同位置画面索引进行熵编码/熵解码。
可在配置同位置画面列表之前标识具有第一值的运动信息存储指示符的画面。
可在所配置的同位置画面列表中排列同位置画面的顺序。在这种情况下,可在列表中按照同位置画面POC值与当前画面POC值之间的差的绝对值的递增顺序对画面进行排序。此外,可在列表中按照同位置画面POC值与当前画面POC值之间的差的绝对值的递减顺序对画面进行排序。
可用具有第二值的运动信息存储指示符的画面来配置同位置画面列表。
图39是示出使用运动信息存储指示符的示例的示图。
如在图39的示例中,可针对每个画面用信号发送运动信息存储指示符。在这种情况下,当运动信息存储指示符指示作为第一值的1时,画面的运动信息可被存储。可用具有存储的运动信息的画面来配置同位置画面列表。当在同位置画面列表中存在至少一个画面时,可用信号发送同位置画面索引。当在同位置画面列表中存在多个画面时,可对针对多个画面中的被选为同位置画面的画面的同位置画面索引进行熵编码/熵解码。
图39示出存在一个同位置画面列表,但是本发明不限于此,并且可使用至少一个同位置画面列表。此外,可使用与参考画面列表的数量相同数量的同位置画面列表。此外,当两个或更多个同位置画面列表被使用时,可对同位置方向信息进行熵编码/熵解码以指示使用哪个同位置画面列表。在这种情况下,当三个或更多个同位置画面列表被使用时,可以以索引形式而不是标志形式对同位置方向信息进行熵编码/熵解码。
指示包括在同位置画面列表中的画面的数量的同位置画面的数量信息可从编码器被用信号发送到解码器,并且可以是在编码器和解码器中预设的值。例如,同位置画面的数量可以是固定的,并且在编码器和解码器中使用N。这里,N可以是0或正整数。此外,当新的同位置画面被添加到同位置画面列表时,可从列表删除首先添加的同位置画面,并且可将新的同位置画面添加到列表。可以以先进先出(FIFO)方式对同位置画面列表进行管理。此外,可为被首先添加到同位置画面列表的同位置画面分配具有最大值的索引,并且可为被最后添加的同位置画面分配具有最小值的索引。相反地,可为被首先添加到同位置画面列表的同位置画面分配具有最小值的索引,并且可为被最后添加的同位置画面分配具有最大值的索引。
图40是示出根据本发明的实施例的对图像进行编码/解码的方法的流程图。
参照图40,图像编码/解码方法包括对运动信息存储指示符进行熵编码/熵解码的步骤(S4010)、配置/排列同位置画面列表的步骤(S4020)、对同位置画面索引进行熵编码/熵解码的步骤(S4030)、以及使用同位置画面的运动矢量执行运动补偿的步骤(S4040)。
在图40的对运动信息存储指示符进行熵编码/熵解码的步骤(S4010)中,根据上述实施例中的至少一个实施例,可针对每个画面对运动信息存储指示符进行熵编码/熵解码。
在配置/排列同位置画面列表的步骤(S4020)中,可根据上述实施例中的至少一个实施例来配置同位置画面列表,并且如果有必要的话,对同位置画面列表中的画面进行排列。
在对同位置画面索引进行熵编码/熵解码的步骤(S4030)中,可根据上述实施例中的至少一个实施例对同位置画面索引进行熵编码/熵解码。
在使用同位置画面的运动矢量执行运动补偿的步骤(S4040)中,可根据所述实施例中的至少一个实施例通过使用同位置画面的运动矢量来配置运动矢量候选列表或合并候选列表,或者基于运动矢量执行运动补偿。
如在图41的示例中,关于在当前画面中特定参考画面是否被使用的信息以及关于在当前画面中特定参考画面的运动信息是否被使用的信息可一起被熵编码/熵解码。也就是说,关于在当前画面中特定参考画面是否被使用的信息以及关于在当前画面中特定参考画面的运动信息是否被使用的信息可作为一个语法元素被用信号发送。
参照图41,在描述与本发明相关的信息时,used_by_curr_pic_flag[j]可表示在第一值1的情况下在当前画面中第j参考画面被使用且该参考画面的运动信息被使用,并且在第二值0的情况下在当前画面中第j参考画面未被使用且该参考画面的运动信息未被使用。
类似地,used_by_curr_pic_s0_flag[i]可表示在第一值1的情况下在当前画面中第i参考画面被使用且该参考画面的运动信息被使用,并且在第二值0的情况下在当前画面中第i参考画面未被使用且该参考画面的运动信息未被使用。
此外,used_by_curr_pic_s1_flag[i]可表示在第一值1的情况下在当前画面中第i参考画面被使用且该参考画面的运动信息被使用,并且在第二值0的情况下在当前画面中第i参考画面未被使用且该参考画面的运动信息未被使用。
这里,参考画面的标记、构建和管理中的至少一个处理可等同地被应用于参考画面的运动信息。
例如,当特定参考画面被标记为在当前画面中未被使用时,该参考画面的运动信息也可被标记为在当前画面中未被使用。
例如,当特定参考画面被标记为在当前画面中被使用时,该参考画面的运动信息也可被标记为在当前画面中被使用。
例如,根据在特定参考画面被配置为参考画面列表时配置的方法,参考画面的运动信息也可被配置为参考画面列表或同位置画面列表。
例如,当特定参考画面在参考画面列表中按顺序被改变时,参考画面的运动信息也可根据所述改变方法在参考画面列表或同位置画面列表中按顺序被改变。
如在图42的示例中,关于在当前画面中特定参考画面是否被使用的信息以及关于在当前画面中特定参考画面的运动信息是否被使用的信息可被单独地熵编码/熵解码。也就是说,关于在当前画面中特定参考画面是否被使用的信息以及关于在当前画面中特定参考画面的运动信息是否被使用的信息可作为彼此不同的语法元素被用信号发送。
参照图42,在描述与本发明相关的信息时,motion_used_by_curr_pic_flag[j]可表示在第一值1的情况下在当前画面中第j参考画面的运动信息被使用,并且在第二值0的情况下在当前画面中第j参考画面的运动信息未被使用。
同样地,motion_used_by_curr_pic_s0_flag[i]可表示在第一值1的情况下在当前画面中第i参考画面的运动信息被使用,并且在第二值0的情况下在当前画面中第i参考画面的运动信息未被使用。
此外,motion_used_by_curr_pic_s1_flag[i]可表示在第一值1的情况下在当前画面中第i参考画面的运动信息被使用,并且在第二值0的情况下在当前画面中第i参考画面的运动信息未被使用。
这里,参考画面的标记、构建和管理中的至少一个处理可与参考画面的运动信息分开应用。
例如,当特定参考画面被标记为在当前画面中未被使用时,参考画面的运动信息可被标记为在当前画面中被使用或者被标记为在当前画面中未被使用。
例如,当特定参考画面被标记为在当前画面中被使用时,该参考画面的运动信息可被标记为在当前画面中被使用或者被标记为在当前画面中未被使用。
例如,当用参考画面列表来配置特定参考画面时,也可用或不用参考画面列表或同位置画面列表来配置参考画面的运动信息。
此外,当特定参考画面在参考画面列表中按顺序被改变时,参考画面的运动信息可在参考画面列表或同位置画面列表中按顺序被改变或者可不被改变。
当参考画面是短期参考画面时,可存储参考画面的运动信息。此外,当参考画面是长期参考画面时,可不存储参考画面的运动信息。
在不用信号发送运动信息存储指示符的情况下,编码器/解码器可根据特定参数的值来存储特定画面的运动信息。这里,当特定画面的运动信息被存储时,可在随后被编码/解码的画面中使用特定画面的运动信息。
例如,当特定画面的时间层ID小于M时,可存储特定画面的运动信息。这里,M可以是0或正整数。
例如,当特定画面的画面顺序计数(POC)与当前画面的POC之间的差的绝对值小于J时,可存储特定画面的运动信息。这里,J可以是0或正整数。
在不用信号发送运动信息存储指示符的情况下,当特定画面被包括在L0方向参考画面列表和L1方向参考画面列表中的至少一个中时,可存储特定画面的运动信息。
当根据预定运动矢量的精度将运动信息存储在当前图像中时,可对运动矢量精度信息进行熵编码/熵解码。运动矢量精度信息可指示运动矢量以整数像素单位、2整数像素单位、4整数像素单位、1/2像素单位、1/4像素单位、1/8像素单位、1/16像素单位等中的至少一个单位被存储。这里,不仅可具有所述像素单位的运动矢量精度,而且可具有N像素单位或1/N像素单位的运动矢量精度。这里,N可以是正整数。编码器/解码器可根据运动矢量精度信息存储运动信息。当运动信息存储指示符为第一值时,可对运动矢量精度信息进行熵编码/熵解码。此外,运动矢量精度可以以标志或索引的形式被熵编码/熵解码,并且可针对在编码器/解码器中预定的若干单位中的若干选择的单位以标志或索引的形式被熵编码/熵解码。
上述实施例中的编码器和解码器使得只有具有第一值的运动信息存储指示符的画面被确定为在编码/解码处理中使用的同位置画面。
在上述实施例中,当随后将被编码/解码的画面是当前画面时,当前画面可被称为先前被编码/解码的画面。
在上述实施例中,可存储参考画面的L0运动信息和L1运动信息,但是本发明不限于此。可仅存储L0运动信息或者可仅存储L1运动信息。
在上述实施例中,可存储参考画面的L0运动信息和L1运动信息、以及第一L0运动信息、第二L0运动信息、第一L1运动信息、第二L1运动信息、L2运动信息、L3运动信息中的至少7个运动信息。这里,第一L0运动信息和第一L1运动信息可以是特定块的基本运动信息,并且第二L0运动信息、第二L1运动信息、L2运动信息和L3运动信息可以是除了特定块的基本运动信息之外的另外的运动信息。例如,所述另外的运动信息可以是特定块的周围运动信息或者是另外用于运动补偿的运动信息。
在上述实施例中,已经描述了运动信息被存储在画面单元中的同位置画面,但是本发明不限于此,并且运动信息可被存储在画面、条带、并行块、CTU和块中的至少一个单元中。
图43是示出根据本发明的实施例的图像解码方法的流程图。
参照图43,图像解码设备可在时间运动缓冲器中获取当前块的参考画面中包括的同位置块的运动矢量(S4301)。
并且,图像解码设备可改变在步骤S4301中获得的运动矢量的格式(S4302)。
在步骤S4302中,可将所获得的运动矢量的格式改变为具有增加的比特深度的格式。
此外,在步骤S4302中,可将所获得的运动矢量的格式改变为预定格式。这里,所述预定格式可以是包括符号的固定比特格式。例如,所述预定格式可以是包括符号的18比特格式。
另外,所获得的运动矢量的格式可以是浮点格式。例如,从时间运动缓冲器获得的运动矢量可以是10比特浮点格式(或者6比特尾数和4比特指数格式)。
在步骤S4302,图像解码设备可将在步骤S4302中改变了格式的运动矢量推导为当前块的时间运动矢量(S4303)。
另外,图像解码设备还可在步骤S4303之后执行对推导出的时间运动矢量进行缩放的步骤以及限制缩放后的时间运动矢量的动态范围的步骤。
这里,限制缩放后的时间运动矢量的动态范围的步骤可将缩放后的时间运动矢量的动态范围限制为固定比特深度。例如,固定比特深度可以是18个比特。
上面已经参照图43描述了图像解码方法。由于可与参照图43描述的视频解码方法类似地描述本发明的视频编码方法,因此多余的描述被省略。
通过本发明的图像编码方法生成的比特流可被临时存储在计算机可读非暂时性记录介质中,并且可通过上述图像解码方法被解码。
可在编码器和解码器中以相同的方法执行以上实施例。
以上实施例中的至少一个或组合可被用于对视频进行编码/解码。
应用于以上实施例的顺序在编码器和解码器之间可以是不同的,或者应用于以上实施例的顺序在编码器和解码器中可以是相同的。
可对每个亮度信号和色度信号执行以上实施例,或者可对亮度信号和色度信号相同地执行以上实施例。
应用本发明的以上实施例的块状形式可具有正方形形式或非正方形形式。
可根据编码块、预测块、变换块、块、当前块、编码单元、预测单元、变换单元、单元和当前单元中的至少一个的尺寸来应用本发明的以上实施例。这里,尺寸可被定义为最小尺寸或最大尺寸或最小尺寸和最大尺寸两者使得以上实施例被应用,或者可被定义为应用以上实施例的固定尺寸。此外,在以上实施例中,第一实施例可被应用于第一尺寸,并且第二实施例可被应用于第二尺寸。换句话说,可根据尺寸组合地应用以上实施例。此外,当尺寸等于或大于最小尺寸并且等于或小于最大尺寸时,可应用以上实施例。换句话说,当块尺寸包括在特定范围内时,可应用以上实施例。
例如,在当前块的尺寸为8×8或更大时,可应用以上实施例。例如,在当前块的尺寸为4×4或更大时,可应用以上实施例。例如,在当前块的尺寸为16×16或更大时,可应用以上实施例。例如,在当前块的尺寸等于或大于16×16并且等于或小于64×64时,可应用以上实施例。
可根据时间层来应用本发明的以上实施例。为了识别可应用以上实施例的时间层,可用信号发送对应标识符,并且可将以上实施例应用于由对应标识符标识的指定时间层。这里,标识符可被定义为可应用以上实施例的最低层或最高层或最低层和最高层两者,或者可被定义为指示应用实施例的特定层。此外,可定义应用实施例的固定时间层。
例如,在当前图像的时间层是最低层时,可应用以上实施例。例如,在当前图像的时间层标识符等于或大于1时,可应用以上实施例。例如,在当前图像的时间层是最高层时,可应用以上实施例。
可定义应用本发明的以上实施例的条带类型或并行块组类型,并且可根据对应的条带类型或并行块组类型来应用以上实施例。
在上述实施例中,基于具有一系列步骤或单元的流程图来对方法进行描述,但是本发明不限于所述步骤的顺序,而是,某些步骤可与其他步骤同时执行或以不同的顺序执行。此外,本领域普通技术人员应理解,流程图中的步骤并不相互排斥,并且在不影响本发明的范围的情况下,可向流程图添加其他步骤,或者可从流程图删除某些步骤。
实施例包括示例的各个方面。可不对用于各个方面的所有可能的组合进行描述,但是本领域技术人员将能够认识到不同的组合。因此,本发明可包括权利要求的范围内的所有替换、修改和改变。
可以以可由各种计算机组件执行的并且被记录在计算机可读记录介质中的程序指令的形式实现本发明的实施例。计算机可读记录介质可包括独立的程序指令、数据文件、数据结构等或者程序指令、数据文件、数据结构等的组合。记录在计算机可读记录介质中的程序指令可以是为本发明特别设计和构造的,或者是计算机软件技术领域的普通技术人员公知的。计算机可读记录介质的示例包括:磁性记录介质(诸如硬盘、软盘和磁带);光学数据存储介质(诸如CD-ROM或DVD-ROM);磁优化介质(诸如软光盘);以及被特别地构造成存储和实现程序指令的硬件装置(诸如只读存储器(ROM)、随机存取存储器(RAM)、闪存等)。程序指令的示例不仅包括被编译器格式化的机械语言代码,而且包括可由计算机使用解释器实现的高级语言代码。硬件装置可被配置为由一个或更多个软件模块操作以进行根据本发明的处理,或者反之亦可。
尽管已经根据诸如详细元件的特定项以及有限的实施例和附图描述了本发明,但是它们仅被提供以帮助更综合地理解本发明,并且本发明不限于上述实施例。本发明所属领域的技术人员应理解,可根据上面的描述进行各种修改和改变。
因此,本发明的精神不应被限于上述实施例,并且所附权利要求及其等同物的整个范围将落入本发明的范围和精神内。
工业适用性
可在用于对图像进行编码/解码的设备中使用本发明。

Claims (17)

1.一种对图像进行解码的方法,所述方法包括:
在时间运动缓冲器中获得当前块的参考画面中包括的同位置块的运动矢量;
改变所获得的运动矢量的格式;并且
将格式被改变的运动矢量推导为当前块的时间运动矢量。
2.如权利要求1所述的方法,其中,改变所获得的运动矢量的格式的步骤包括:
将所获得的运动矢量的格式改变为具有增加的比特深度的格式。
3.如权利要求1所述的方法,其中,改变所获得的运动矢量的格式的步骤包括:
将所获得的运动矢量的格式改变为预定格式。
4.如权利要求1所述的方法,其中,所获得的运动矢量的格式是浮点格式。
5.如权利要求1所述的方法,其中,改变所获得的运动矢量的格式的步骤包括:
将所获得的运动矢量的格式改变为包括符号的固定比特格式。
6.如权利要求1所述的方法,还包括:
对推导出的时间运动矢量进行缩放;并且
限制缩放后的时间运动矢量的动态范围。
7.如权利要求6所述的方法,其中,限制缩放后的时间运动矢量的动态范围的步骤包括:
将缩放后的时间运动矢量的动态范围限制为固定比特深度。
8.如权利要求7所述的方法,其中,所述固定比特深度为18个比特。
9.一种对图像进行编码的方法,所述方法包括:
在时间运动缓冲器中获得当前块的参考画面中包括的同位置块的运动矢量;
改变所获得的运动矢量的格式;并且
将格式被改变的运动矢量推导为当前块的时间运动矢量。
10.如权利要求9所述的方法,其中,改变所获得的运动矢量的格式的步骤包括:
将所获得的运动矢量的格式改变为具有增加的比特深度的格式。
11.如权利要求9所述的方法,其中,改变所获得的运动矢量的格式的步骤包括:
将所获得的运动矢量的格式改变为预定格式。
12.如权利要求9所述的方法,其中,所获得的运动矢量的格式是浮点格式。
13.如权利要求9所述的方法,其中,改变所获得的运动矢量的格式的步骤包括:
将所获得的运动矢量的格式改变为包括符号的固定比特格式。
14.如权利要求9所述的方法,还包括:
对推导出的时间运动矢量进行缩放;并且
限制缩放后的时间运动矢量的动态范围。
15.如权利要求14所述的方法,其中,限制缩放后的时间运动矢量的动态范围的步骤包括:
将缩放后的时间运动矢量的动态范围限制为固定比特深度。
16.如权利要求15所述的方法,其中,所述固定比特深度为18个比特。
17.一种包括由图像解码设备解码的比特流的计算机可读非暂时性记录介质,
其中,所述比特流包括指示当前块的参考画面中的用于推导时间运动矢量的同位置画面的索引信息;
图像解码设备通过使用所述索引信息来获得包括当前块的同位置块的同位置画面;并且
所述时间运动矢量是通过改变所述同位置块的运动矢量的格式而推导出的。
CN201980060927.5A 2018-09-17 2019-09-17 图像编码/解码方法和设备以及存储比特流的记录介质 Pending CN112740688A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2018-0111092 2018-09-17
KR20180111092 2018-09-17
PCT/KR2019/012008 WO2020060163A1 (ko) 2018-09-17 2019-09-17 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Publications (1)

Publication Number Publication Date
CN112740688A true CN112740688A (zh) 2021-04-30

Family

ID=69887609

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980060927.5A Pending CN112740688A (zh) 2018-09-17 2019-09-17 图像编码/解码方法和设备以及存储比特流的记录介质

Country Status (4)

Country Link
US (1) US20220150529A1 (zh)
KR (1) KR20200032021A (zh)
CN (1) CN112740688A (zh)
WO (1) WO2020060163A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11375230B2 (en) * 2018-11-16 2022-06-28 Sharp Kabushiki Kaisha Systems and methods for deriving a motion vector prediction in video coding
CN112913236B (zh) * 2018-12-29 2022-05-31 华为技术有限公司 编码器,解码器和使用压缩mv存储的对应方法
MX2022011798A (es) * 2020-03-27 2022-10-07 Beijing Dajia Internet Information Tech Co Ltd Metodos y dispositivos para escalacion residual que depende de la prediccion para codificacion de video.
US11863786B2 (en) * 2021-05-21 2024-01-02 Varjo Technologies Oy Method of transporting a framebuffer

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120088611A (ko) * 2011-01-31 2012-08-08 한국전자통신연구원 움직임 벡터를 이용한 영상 부호화/복호화 방법 및 장치
CN103583044A (zh) * 2011-01-31 2014-02-12 韩国电子通信研究院 用于使用运动向量来编码/解码图像的方法和设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102127401B1 (ko) * 2010-01-12 2020-06-26 엘지전자 주식회사 비디오 신호의 처리 방법 및 장치
CN103125116A (zh) * 2010-09-28 2013-05-29 三星电子株式会社 视频编码方法和装置以及解码方法和装置
WO2012115973A1 (en) * 2011-02-21 2012-08-30 Dolby Laboratories Licensing Corporation Floating point video coding
CA2873496A1 (en) * 2012-05-14 2013-11-21 Luca Rossato Encoding and decoding based on blending of sequences of samples along time
KR101477546B1 (ko) * 2013-04-30 2014-12-31 삼성전자주식회사 움직임 벡터를 복호화하는 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120088611A (ko) * 2011-01-31 2012-08-08 한국전자통신연구원 움직임 벡터를 이용한 영상 부호화/복호화 방법 및 장치
CN103583044A (zh) * 2011-01-31 2014-02-12 韩国电子通信研究院 用于使用运动向量来编码/解码图像的方法和设备

Also Published As

Publication number Publication date
KR20200032021A (ko) 2020-03-25
WO2020060163A1 (ko) 2020-03-26
US20220150529A1 (en) 2022-05-12

Similar Documents

Publication Publication Date Title
JP7253844B2 (ja) 画像復号方法、画像符号化方法、及び非一時的なコンピュータ可読記録媒体
US11871001B2 (en) Image encoding/decoding method and device, and recording medium storing bitstream
KR101782929B1 (ko) 비디오 신호의 처리 방법 및 장치
US11930179B2 (en) Video encoding/decoding method, apparatus, and recording medium having bitstream stored thereon
KR20190046704A (ko) 비대칭 서브 블록 기반 영상 부호화/복호화 방법 및 장치
KR20180037583A (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20180018388A (ko) 영상 부호화/복호화 방법 및 장치
CN112088533A (zh) 图像编码/解码方法和装置以及存储比特流的记录介质
CN112369021A (zh) 用于吞吐量增强的图像编码/解码方法和设备以及存储比特流的记录介质
KR20190049919A (ko) 영상 부호화 장치
US20230308644A1 (en) Method and apparatus for encoding/decoding image, and recording medium for storing bitstream
CN112740688A (zh) 图像编码/解码方法和设备以及存储比特流的记录介质
CN113574875A (zh) 基于帧内块复制的编/解码方法和装置及比特流存储介质
CN113924779A (zh) 视频编码/解码方法和装置以及比特流存储介质
US20220070475A1 (en) Image encoding/decoding method and apparatus, and recording media storing bitstream
CN114731409A (zh) 图像编码/解码方法和装置、以及存储比特流的记录介质
CN113906740A (zh) 帧间预测信息编码/解码方法和装置
CN113841398A (zh) 一种基于子块划分的图像编码/解码方法及装置
CN113228643A (zh) 图像编码/解码方法和设备以及用于存储比特流的记录介质
CN113228639A (zh) 图像编码/解码方法和装置以及存储有比特流的记录介质
CN113287305A (zh) 视频编码/解码方法、装置以及在其中存储比特流的记录介质
CN113228645A (zh) 图像编码/解码方法和装置以及存储有比特流的记录介质
CN113875237A (zh) 用于在帧内预测中用信号传送预测模式相关信号的方法和装置
US20220174286A1 (en) Image encoding/decoding method and apparatus, and recording medium for storing bitstream
US11800099B2 (en) Method and device for encoding/decoding image, and recording medium for storing bitstream

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