CN114205629A - 用于视频译码的受约束编码树 - Google Patents

用于视频译码的受约束编码树 Download PDF

Info

Publication number
CN114205629A
CN114205629A CN202111340802.3A CN202111340802A CN114205629A CN 114205629 A CN114205629 A CN 114205629A CN 202111340802 A CN202111340802 A CN 202111340802A CN 114205629 A CN114205629 A CN 114205629A
Authority
CN
China
Prior art keywords
coding tree
coding
partitioning
tree node
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111340802.3A
Other languages
English (en)
Other versions
CN114205629B (zh
Inventor
陈建乐
赵寅
杨海涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN114205629A publication Critical patent/CN114205629A/zh
Application granted granted Critical
Publication of CN114205629B publication Critical patent/CN114205629B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/186Methods 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 a colour or a chrominance component
    • 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/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • 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

Abstract

公开了一种视频译码机制。所述机制包括对图像进行分割以创建具有至少一个编码树节点的至少一个编码树单元(coding tree unit,CTU)。所述机制还包括:在所述编码树节点的高度为64且所述编码树节点的宽度为128的情况下,将竖直二叉树划分应用于所述编码树节点以获取一个或多个编码单元(coding unit,CU)。所述机制还包括:将所述划分模式应用于所述编码树节点以获取一个或多个编码单元(coding unit,CU)。

Description

用于视频译码的受约束编码树
技术领域
本发明大体上涉及视频译码,具体涉及生成用于在视频译码中分割编码树单元(coding tree unit,CTU)的编码树。
背景技术
即使在视频较短的情况下也需要对大量的视频数据进行描述,当数据要在带宽容量受限的通信网络中发送或以其它方式发送时,这样可能会造成困难。因此,视频数据通常要先压缩然后在现代电信网络中发送。由于内存资源可能有限,当在存储设备中存储视频时,视频的大小也可能成为问题。视频压缩设备通常在信源侧使用软件和/或硬件,以在发送或存储之前对视频数据进行译码,从而减少用来表示数字视频图像所需的数据量。然后,压缩数据在目的地侧由用于对视频数据进行解码的视频解压缩设备接收。在有限的网络资源以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术在几乎不影响图像质量的情况下能够提高压缩比。
发明内容
在一个实施例中,本发明包括一种在编码器中实现的方法。所述方法包括:所述编码器的处理器对图像进行分割以创建具有至少一个编码树节点的至少一个编码树单元(coding tree unit,CTU)。所述方法还包括:所述处理器确定所述编码树节点的高度为最大变换单元(transform unit,TU)高度的两倍,且所述编码树节点的宽度为最大TU宽度的两倍。所述方法还包括:如果所述确定结果为所述编码树节点的高度为所述最大TU高度的两倍且所述编码树节点的宽度为所述最大TU宽度的两倍,所述处理器为所述编码树节点选择划分模式,其中,所述划分模式从四叉树划分、水平二叉树划分和不划分中选择。所述方法还包括:所述处理器将所述划分模式应用于所述编码树节点以创建一个或多个编码单元(coding unit,CU)。所述方法还包括:所述处理器将所述CU编码到码流中。所述方法还包括:所述编码器的发送器向解码器发送所述码流。上述机制可以改进CTU分割,以降低跨越流水线块边界分割CU的可能性。具体地,对CTU应用受约束编码树,其中,所述受约束编码树包括用于防止会破坏流水线结构的划分的规则。在使用这种流水线结构时有助于提升译码效率。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:如果所述确定结果为所述编码树节点的高度为所述最大TU高度的两倍且所述编码树节点的宽度为所述最大TU宽度的两倍,不从垂直二叉树划分、垂直三叉树划分和水平三叉树划分中选择所述划分模式。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:还包括:通过编码第一标志以指示所述划分模式是否为四叉树划分,以及编码第二标志以指示所述划分模式是水平二叉树划分或不划分,在所述码流中指示所述编码树节点的所述划分模式。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述第一标志为qt_split_cu_flag,所述第二标志为mtt_split_cu_flag。
在一个实施例中,本发明包括一种在编码器中实现的方法。所述方法包括:所述编码器的处理器对图像进行分割以创建具有至少一个编码树节点的至少一个CTU。所述方法还包括:所述处理器确定所述编码树节点的高度不大于最大TU高度,且所述编码树节点的宽度为最大TU宽度的两倍。所述方法还包括:如果所述确定结果为所述编码树节点的高度不大于所述最大TU高度且所述编码树节点的宽度为所述最大TU宽度的两倍,所述处理器为所述编码树节点选择划分模式,其中,所述划分模式从垂直二叉树划分和不划分中选择。所述方法还包括:所述处理器将所述划分模式应用于所述编码树节点以创建一个或多个编码单元(coding unit,CU)。所述方法还包括:所述处理器将所述CU编码到码流中。所述方法还包括:所述编码器的发送器向解码器发送所述码流。上述机制可以改进CTU分割,以降低跨越流水线块边界分割CU的可能性。具体地,对CTU应用受约束编码树,其中,所述受约束编码树包括用于防止会破坏流水线结构的划分的规则。在使用这种流水线结构时有助于提升译码效率。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:如果所述确定结果为所述编码树节点的高度不大于所述最大TU高度且所述编码树节点的宽度为所述最大TU宽度的两倍,不从水平二叉树划分、四叉树划分、垂直三叉树划分和水平三叉树划分中选择所述划分模式。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:还包括:通过编码第一标志来指示所述划分模式是垂直二叉树划分或不划分,在所述码流中指示所述编码树节点的所述划分模式。
在一个实施例中,本发明包括一种视频译码设备,所述视频译码设备包括处理器和与所述处理器耦合的发送器,其中,所述处理器和发送器用于执行上述任一方面的方法。
在一个实施例中,本发明包括一种非瞬时性计算机可读介质,包括供视频译码设备使用的计算机程序产品,其中,所述计算机程序产品包括存储在所述非瞬时性计算机可读介质中的计算机可执行指令,当处理器执行所述计算机可执行指令时,所述视频译码设备执行上述任一方面的方法。
在一个实施例中,本发明包括一种编码器,所述编码器包括分割模块,用于对图像进行分割以创建具有至少一个编码树节点的至少一个CTU。所述编码器还包括大小确定模块,用于确定所述编码树节点的高度为最大TU高度的两倍,且所述编码树节点的宽度为最大TU宽度的两倍。所述编码器还包括划分模式选择模块,用于如果所述确定结果为所述编码树节点的高度为所述最大TU高度的两倍且所述编码树节点的宽度为所述最大TU宽度的两倍,为所述编码树节点选择划分模式:水平二叉树划分和不划分。所述编码器还包括划分模式应用模块,用于将所述划分模式应用于所述编码树节点以创建一个或多个CU。所述编码器还包括编码模块,用于将所述CU编码到码流中。所述编码器还包括发送模块,用于向解码器发送所述码流。上述机制可以改进CTU分割,以降低跨越流水线块边界分割CU的可能性。具体地,对CTU应用受约束编码树,其中,所述受约束编码树包括用于防止会破坏流水线结构的划分的规则。在使用这种流水线结构时有助于提升译码效率。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述编码器还用于执行上述任一方面的方法。
在一个实施例中,本发明包括一种编码器,所述编码器包括分割模块,用于对图像进行分割以创建具有至少一个编码树节点的至少一个CTU。所述编码器还包括大小确定模块,用于确定所述编码树节点的高度不大于最大TU高度,且所述编码树节点的宽度为最大TU宽度的两倍。所述编码器还包括划分模式选择模块,用于如果所述确定结果为所述编码树节点的高度不大于所述最大TU高度且所述编码树节点的宽度为所述最大TU宽度的两倍,为所述编码树节点选择划分模式,其中,所述划分模式从垂直二叉树划分和不划分中选择。所述编码器还包括划分模式应用模块,用于将所述划分模式应用于所述编码树节点以创建一个或多个CU。所述编码器还包括编码模块,用于将所述CU编码到码流中。所述编码器还包括发送模块,用于向解码器发送所述码流。上述机制可以改进CTU分割,以降低跨越流水线块边界分割CU的可能性。具体地,对CTU应用受约束编码树,其中,所述受约束编码树包括用于防止会破坏流水线结构的划分的规则。在使用这种流水线结构时有助于提升译码效率。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述编码器还用于执行上述任一方面的方法。
在一个实施例中,本发明包括一种在解码器中实现的方法。所述方法包括:所述解码器的接收器接收包括图像数据的码流。所述方法还包括:所述解码器的处理器对所述图像数据进行分割以创建具有至少一个编码树节点的至少一个CTU。所述方法还包括:所述处理器确定所述编码树节点的高度为最大TU高度的两倍,且所述编码树节点的宽度为最大TU宽度的两倍。所述方法还包括:所述处理器解析所述码流,以如果所述确定结果为所述编码树节点的高度为所述最大TU高度的两倍且所述编码树节点的宽度为所述最大TU宽度的两倍,确定所述编码树节点的划分模式,其中,所述划分模式从四叉树划分、水平二叉树划分和不划分中选择。所述方法还包括:所述处理器将所述划分模式应用于所述编码树节点以获得一个或多个CU。所述方法还包括:所述处理器根据所述码流对所述CU进行解码以创建图像。所述方法还包括:所述处理器向显示器转发所述图像。上述机制可以改进CTU分割,以降低跨越流水线块边界分割CU的可能性。具体地,对CTU应用受约束编码树,其中,所述受约束编码树包括用于防止会破坏流水线结构的划分的规则。在使用这种流水线结构时有助于提升译码效率。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:如果所述确定结果为所述编码树节点的高度为所述最大TU高度的两倍且所述编码树节点的宽度为所述最大TU宽度的两倍,不从垂直二叉树划分、垂直三叉树划分和水平三叉树划分中选择所述划分模式。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:解析所述码流以确定所述编码树节点的所述划分模式包括:解析第一标志以确定所述划分模式是否为四叉树划分。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:解析所述码流以确定所述编码树节点的所述划分模式还包括:解析第二标志以确定所述划分模式是水平二叉树划分或不划分。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述第一标志为qt_split_cu_flag,所述第二标志为mtt_split_cu_flag。
在一个实施例中,本发明包括一种在解码器中实现的方法。所述方法包括:所述解码器的接收器接收包括图像数据的码流。所述方法还包括:所述解码器的处理器对所述图像数据进行分割以创建具有至少一个编码树节点的至少一个CTU。所述方法还包括:所述处理器确定所述编码树节点的高度不大于最大TU高度,且所述编码树节点的宽度为最大TU宽度的两倍。所述方法还包括:所述处理器解析所述码流,如果所述确定结果为所述编码树节点的高度不大于所述最大TU高度且所述编码树节点的宽度为所述最大TU宽度的两倍,确定所述编码树节点的划分模式,其中,所述划分模式从垂直二叉树划分和不划分中选择。所述方法还包括:所述处理器将所述划分模式应用于所述编码树节点以获得一个或多个CU。所述方法还包括:所述处理器根据所述码流对所述CU进行解码以创建图像。所述方法还包括:所述处理器向显示器转发所述图像。上述机制可以改进CTU分割,以降低跨越流水线块边界分割CU的可能性。具体地,对CTU应用受约束编码树,其中,所述受约束编码树包括用于防止会破坏流水线结构的划分的规则。在使用这种流水线结构时有助于提升译码效率。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:如果所述确定结果为所述编码树节点的高度不大于所述最大TU高度且所述编码树节点的宽度为所述最大TU宽度的两倍,不从水平二叉树划分、四叉树划分、垂直三叉树划分和水平三叉树划分中选择所述划分模式。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:解析所述码流以确定所述编码树节点的所述划分模式包括:解析第一标志以确定所述划分模式是垂直二叉树划分或不划分。
在一个实施例中,本发明包括一种视频译码设备,所述视频译码设备包括处理器和与所述处理器耦合的接收器,其中,所述处理器和接收器用于执行上述任一方面的方法。
在一个实施例中,本发明包括一种非瞬时性计算机可读介质,包括供视频译码设备使用的计算机程序产品,其中,所述计算机程序产品包括存储在所述非瞬时性计算机可读介质中的计算机可执行指令,当处理器执行所述计算机可执行指令时,所述视频译码设备执行上述任一方面的方法。
在一个实施例中,本发明包括一种解码器,所述解码器包括接收模块,用于接收包括图像数据的码流。所述解码器还包括分割模块,用于对所述图像数据进行分割以创建具有至少一个编码树节点的至少一个CTU。所述解码器还包括大小确定模块,用于确定所述编码树节点的高度为最大TU高度的两倍,且所述编码树节点的宽度为最大TU宽度的两倍。所述解码器还包括划分模式确定模块,用于解析所述码流,以如果所述确定结果为所述编码树节点的高度为所述最大TU高度的两倍且所述编码树节点的宽度为所述最大TU宽度的两倍,确定所述编码树节点的划分模式,其中,所述划分模式从四叉树划分、水平二叉树划分和不划分中选择。所述解码器还包括划分模式应用模块,用于将所述划分模式应用于所述编码树节点以获得一个或多个CU。所述解码器还包括解码模块,用于根据所述码流对所述CU进行解码以创建图像。所述解码器还包括显示模块,用于向显示器转发所述图像。上述机制可以改进CTU分割,以降低跨越流水线块边界分割CU的可能性。具体地,对CTU应用受约束编码树,其中,所述受约束编码树包括用于防止会破坏流水线结构的划分的规则。在使用这种流水线结构时有助于提升译码效率。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述解码器还用于执行上述任一方面的方法。
在一个实施例中,本发明包括一种解码器,所述解码器包括接收模块,用于接收包括图像数据的码流。所述解码器还包括分割模块,用于对所述图像数据进行分割以创建具有至少一个编码树节点的至少一个CTU。所述解码器还包括大小确定模块,用于确定所述编码树节点的高度不大于最大TU高度,且所述编码树节点的宽度为最大TU宽度的两倍。所述解码器还包括划分模式确定模块,用于解析所述码流,如果所述确定结果为所述编码树节点的高度不大于所述最大TU高度且所述编码树节点的宽度为所述最大TU宽度的两倍,确定所述编码树节点的划分模式,其中,所述划分模式从垂直二叉树划分和不划分中选择。所述解码器还包括划分模式应用模块,用于将所述划分模式应用于所述编码树节点以获得一个或多个CU。所述解码器还包括解码模块,用于根据所述码流对所述CU进行解码以创建图像。所述解码器还包括显示模块,用于向显示器转发所述图像。上述机制可以改进CTU分割,以降低跨越流水线块边界分割CU的可能性。具体地,对CTU应用受约束编码树,其中,所述受约束编码树包括用于防止会破坏流水线结构的划分的规则。在使用这种流水线结构时有助于提升译码效率。
可选地,在上述任一方面中,提供了所述方面的另一种实现方式:所述解码器还用于执行上述任一方面的方法。
为了清楚起见,上述任一实施例可以与上述其它实施例中的任意一个或多个实施例结合,在本发明的范围内产生新的实施例。
根据以下详细说明结合附图和权利要求能更清楚地理解这些和其它特征。
附图说明
为了更透彻地理解本发明,现结合附图和具体实施方式,参阅以下简要说明,其中相同数字表示相同部件。
图1为对视频信号进行译码的示例性方法的流程图。
图2为用于视频译码的示例性编码和解码(编解码)系统的示意图。
图3为用于视频译码的示例性视频编码器的示意图。
图4为用于视频译码的示例性视频解码器的示意图。
图5为将编码树单元(coding tree unit,CTU)分割成编码单元(coding unit,CU)的示例性机制的示意图。
图6示出了应用于CTU的具有编码树节点的示例性编码树。
图7为用于编码树中的示例性划分模式集的示意图。
图8-图9为在选择划分模式以分割编码树节点时受约束编码树所施加的示例性约束的示意图。
图10为编码期间应用受约束编码树以分割CTU的编码树节点的一种示例性方法的流程图。
图11为编码期间应用受约束编码树以分割CTU的编码树节点的另一种示例性方法的流程图。
图12为解码期间应用受约束编码树以分割CTU的编码树节点的一种示例性方法的流程图。
图13为解码期间应用受约束编码树以分割CTU的编码树节点的另一种示例性方法的流程图。
图14为示例性视频译码设备的示意图。
图15为用于应用受约束编码树以分割CTU的编码树节点的示例性系统的示意图。
具体实施方式
首先应理解,尽管下文提供了一个或多个实施例的说明性实现方式,但所公开的系统和/或方法可使用任何数量的技术来实现,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实现方式、附图和技术,包括本文所说明并描述的示例性设计和实现方式,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。
视频译码包括将视频帧(也称为图像)分割成块,并通过帧内预测和帧间预测对块进行编码,以压缩视频文件的大小。本发明涉及改进分割过程。具体地,将视频帧分割成条带(slice),这些条带可以在帧内横向延伸。然后,将每个条带细分为预定大小的编码树单元(coding tree unit,CTU)。例如,当条带的行或列中的像素数量不能分别被CTU宽度或高度均匀整除时,在条带中CTU的大小可以变化。然后,将编码树应用于每个CTU,以将CTU进一步细分为编码单元(coding unit,CU)。每个CU包含亮度(例如,光)和色度(例如,颜色)块,可以通过帧间预测和帧内预测对这些亮度块和色度块进行编码和解码。
编码树包括一个或多个编码树节点,对这些编码树节点进行处理以便将CTU划分为CU。编码树节点是指定应用对应划分模式的CTU中包含的像素集或子集。编码树以父子关系关联编码树节点。例如,编码树中的第一编码树节点可以将CTU划分为子组,然后,后续子编码树节点还可以进一步细分这些子组。这种细分可以递归地进行,直到满足某种条件(例如,达到最小CU和/或块大小)。若干划分模式可用于编码器,以便使编码器可以将CTU分割成包含相对均匀的亮度和/或色度值的CU。这类相对均匀的像素组的编码可以比具有不同值的像素组的编码更高效(例如,提高压缩效率和减少比特数量)。例如,编码器可以选择将编码树节点划分成四个相等部分的四叉树划分模式、将编码树节点划分成两个相等部分的垂直二叉树划分模式或水平二叉树划分模式、和/或将编码树节点划分成三个相等部分的垂直三叉树划分模式。然后,编码器可以在码流中向解码器指示(signal)编码树,以使解码器可以分割CTU进行解码。
许多视频编解码器在对分割的CTU进行编码和/或解码时采用基于块的流水线设计。具体地,编解码器按照预定的顺序对每个CTU的子集进行编码或解码。在一个具体示例中,可以将CTU组成子部分,然后可以从左到右、从上到下对子部分进行编码和/或解码。此类子部分也可以称为流水线块(不要与编码块混淆)。例如,可以将CTU组成S×S流水线块(或2S×2S、2S×S、S×2S等),其中,S的值是最大变换单元(transform unit,TU)的大小。TU是在空间上应用于由译码过程(例如,帧间预测或帧内预测)产生的残差值的编码块的变换函数。在组成流水线块后,可以根据流水线(例如,左上部分、右上部分、左下部分以及右下部分)对CTU进行译码。但是,将某些划分模式应用于CTU(及其编码树节点)会创建不完全在流水线结构中的CU,例如创建存在于一个以上流水线块中的CU。这种场景可能会使对应CTU的基于流水线的译码变得复杂和/或无法对对应CTU进行基于流水线的译码。
本文公开了用于改进CTU分割的机制,以降低跨越流水线块边界分割CU的可能性。具体地,对CTU应用受约束编码树,其中,所述受约束编码树包括用于防止会破坏流水线结构的划分的规则。编码器在生成受约束编码树时,将最大TU高度和最大TU宽度分别与当前编码树节点的高度和宽度进行比较。在第一示例中,当编码树节点的高度为最大TU高度的两倍且编码树节点的宽度为最大TU宽度的两倍时(例如,128×128个像素和/或2S×2S),从四叉树划分、水平二叉树划分和不划分的组中选择划分模式。因此,如下受约束编码树:从垂直二叉树划分、垂直三叉树划分和水平三叉树划分的组中选择编码树节点的划分模式。由于潜在划分模式组约束为四叉树划分、水平二叉树划分和不划分,因此可以通过两个标志来指示划分模式。第一标志(例如,qt_split_cu_flag)可以指示划分模式是否为四叉树划分,第二标志(例如,mtt_split_cu_flag)可以指示划分模式是水平二叉树划分或不划分。在第二示例中,当编码树节点的高度不大于最大TU高度且编码树节点的宽度为最大TU宽度的两倍时(例如,宽度×高度以128×64个像素表示和/或2S×S),垂直二叉树划分和不划分的组中选择划分模式。因此,如下受约束编码树:从水平二叉树、四叉树划分、垂直三叉树和水平三叉树的组中选择编码树节点的划分模式。由于潜在划分模式组约束为垂直二叉树划分和不划分,因此可以通过单个标志来指示划分模式(例如,指示垂直二叉树划分或不划分)。因此,以本文描述的方式应用受约束编码树通过防止与不在流水线块内的CU相关的减速来提高编码和解码速度。此外,受约束编码树通过减少用于指示划分模式的比特数(例如,2S×2S编码树节点使用2个比特,2S×S编码树节点使用1个比特)来提高译码效率。所公开的受约束编码树可以应用于帧内预测(I)条带、单向帧间预测(P)条带和/或双向帧间预测(B)条带中的CTU。
图1为对视频信号进行译码的示例性操作方法100的流程图。具体地,在编码器侧对视频信号进行编码。编码过程通过采用各种机制来压缩视频信号以减小视频文件大小。较小的文件大小允许在减少相关的带宽开销的同时,将压缩的视频文件发送给用户。然后,解码器对压缩的视频文件进行解码,以重建原始视频信号,向终端用户显示。解码过程通常与编码过程对应以允许解码器一致地重建视频信号。
在步骤101中,将视频信号输入编码器中。例如,所述视频信号可以是存储在存储器中的未压缩的视频文件。在另一示例中,视频文件可以由视频捕获设备(如视频摄像机)捕获,并且进行编码以支持视频的直播。所述视频文件可以包括音频分量和视频分量。所述视频分量包括一系列图像帧,当按顺序观看时,这些图像帧会产生运动的视觉效果。这些帧包括根据光(本文称为亮度分量(或亮度像素点))和颜色(称为色度分量(或色度像素点))表示的像素。在一些示例中,这些帧还可以包括深度值以支持三维观看。
在步骤103中,将视频分割成块。分割包括将每个帧中的像素细分为方块和/或矩形块进行压缩。例如,在高效视频译码(High Efficiency Video Coding,HEVC)(也称为H.265和运动图像专家组(Motion Picture Experts Group,MPEG)-H第2部分)中,可以首先将帧分为编码树单元(coding tree unit,CTU),这些编码树单元是预定义大小(例如,64个像素×64个像素)的块。CTU包括亮度像素点和色度像素点。可以使用编码树将CTU分成块,然后递归地细分这些块,直到获得支持进一步编码的配置。例如,可以对帧的亮度分量进行细分,直到各个块包括相对均匀的亮度值。此外,可以对帧的色度分量进行细分,直到各个块包括相对均匀的颜色值。因此,分割机制根据视频帧的内容而不同。
在步骤105中,采用各种压缩机制来压缩在步骤103中分割的图像块。例如,可以采用帧间预测和/或帧内预测。帧间预测旨在利用共同场景中的对象往往出现在连续帧中这一事实。因此,无需在相邻帧中对参考帧中描绘对象的块进行重复描述。具体地,一个对象(如一张桌子)可以在多个帧中保持恒定的位置。因此,只描述一次桌子,相邻帧可以重新参考参考帧。可以采用模式匹配机制来匹配多个帧中的对象。此外,由于对象移动或摄像机移动等,移动对象可以通过多个帧表示。在特定示例中,视频可以通过多个帧显示在屏幕上移动的汽车。可以使用运动矢量描述这种移动。运动矢量是一个二维矢量,提供从帧中对象的坐标到参考帧中该对象的坐标的偏移。因此,帧间预测可以将当前帧中的图像块编码为运动矢量集合,指示相对于参考帧中对应块的偏移。
帧内预测对公共帧中的块进行编码。帧内预测利用亮度分量和色度分量往往在帧中聚集这一事实。例如,一棵树的一部分中的一片绿色往往与几片类似的绿色相邻。帧内预测采用多种方向预测模式(例如,HEVC中的33种模式)、平面模式和直流(direct current,DC)模式。所述方向模式指示当前块与对应方向上邻块的像素点相似/相同。平面模式指示可以根据行边缘处的邻块对行/列(例如平面)上的一系列块进行插值。实际上,平面模式通过采用变化值的相对恒定的斜率来指示光/颜色在行/列上的平滑转变。DC模式用于边界平滑,指示块和与所有邻块的像素点相关联的平均值相似/相同,所述邻块与方向预测模式的角方向相关联。因此,帧内预测块可以将图像块表示为各种关系预测模式值而非实际值。此外,帧间预测块可以将图像块表示为运动矢量值而非实际值。在任一种情况下,预测块在某些情况下可能无法准确地表示图像块。所有差值都存储在残差块中。可以对残差块应用变换以进一步压缩文件。
在步骤107中,可以应用各种滤波技术。在HEVC中,根据环内滤波方案应用滤波器。上文描述的基于块的预测可以在解码器侧创建块状图像。此外,基于块的预测方案可以对块进行编码,然后重建编码块,以供以后用作参考块。所述环内滤波方案迭代地将噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和像素点自适应偏移(sample adaptiveoffset,SAO)滤波器应用于块/帧。这些滤波器减少了此类块伪影,从而可以准确地重建编码文件。此外,这些滤波器减少了重建参考块中的伪影,使得伪影不太可能在基于重建参考块编码的后续块中产生其它的伪影。
在步骤109中,一旦对视频信号进行了分割、压缩和滤波,则将所得到的数据编码到码流中。所述码流包括上述数据以及支持在解码器侧进行适当的视频信号重建所需要的任何指示数据。例如,此类数据可以包括分割数据、预测数据、残差块和向解码器提供译码指令的各种标志。所述码流可以存储在存储器中,以便在请求时向解码器发送。还可以向多个解码器广播和/或组播所述码流。创建码流是一个迭代过程。因此,步骤101、103、105、107和109可以在多个帧和块中连续和/或同时进行。图1所示的顺序是为了清楚和便于描述而呈现的,并非旨在将视频译码过程限制于特定顺序。
在步骤111中,所述解码器接收所述码流并开始解码过程。具体地,所述解码器采用熵解码方案将所述码流转换为对应的语法数据和视频数据。在步骤111中,所述解码器使用所述码流中的语法数据来确定帧的分割。分割应该与步骤103中的块分割结果匹配。这里描述了步骤111中采用的熵编码/解码。编码器在压缩过程中进行许多选择,例如根据一个或多个输入图像中值的空间定位从多个可能选择中选择块分割方案。指示确切的选择可能会占用大量的位元。本文中使用的位元是被视为变量的二进制值(例如,可能根据上下文变化的比特值)。熵编码允许编码器丢弃任何明显不适合特定情况的选项,从而留下一组可使用的选项。然后,为每个可使用的选项分配码字。码字的长度取决于可使用的选项的数量(例如,一个位元对应两个选项,两个位元对应三个或四个选项等)。然后,所述编码器对所选选项的码字进行编码。该方案减小了码字的大小,因为码字的大小与唯一地指示从可使用选项的小子集中的一个选项,而非唯一指示从所有可能选项的潜在大集中的选择所需要的码字一样大。然后,解码器通过以与编码器类似的方式确定可使用选项集来对所述选择进行解码。通过确定可使用选项集,解码器可以读取码字并确定编码器做出的选择。
在步骤113中,所述解码器执行块解码。具体地,解码器进行逆变换来生成残差块。然后,解码器使用残差块和对应的预测块,根据分割重建图像块。所述预测块可以包括在步骤105中编码器侧生成的帧内预测块和帧间预测块。然后,根据在步骤111中确定的分割数据将重建图像块定位到重建视频信号的帧中。步骤113的语法还可以通过上文描述的熵编码在码流中指示。
在步骤115中,以类似于步骤107的方式在编码器侧对重建视频信号的帧进行滤波。例如,可以对帧应用噪声抑制滤波器、去块效应滤波器、自适应环路滤波器和SAO滤波器以去除块伪影。一旦对帧进行滤波,可以在步骤117中将视频信号输出到显示器以供终端用户观看。
图2为用于视频译码的示例性编码和解码(编解码)系统200的示意图。具体地,编解码系统200能够实现操作方法100。编解码系统200广义地描述编码器和解码器中使用的组件。编解码系统200接收视频信号并对视频信号进行分割,如操作方法100中的步骤101和103所描述,从而产生经分割的视频信号201。然后,当作为编码器时,编解码系统200将经分割的视频信号201压缩到经编码码流中,如方法100中的步骤105、107和109所描述的。当作为解码器时,编解码系统200从码流中生成输出视频信号,如操作方法100中的步骤111、113、115和117所描述的。编解码系统200包括通用译码器控制组件211、变换缩放和量化组件213、帧内估计组件215、帧内预测组件217、运动补偿组件219、运动估计组件221、缩放和逆变换组件229、滤波器控制分析组件227、环内滤波器组件225、解码图像缓冲器组件223、标头格式化和上下文自适应二进制算术编码(context adaptive binary arithmeticcoding,CABAC)组件231。此类组件如图所示耦合。在图2中,黑线表示待编码/解码数据的移动,而虚线表示控制其它组件操作的控制数据的移动。编解码系统200的组件都可以在编码器中使用。解码器可以包括编解码系统200的组件的子集。例如,解码器可以包括帧内预测组件217、运动补偿组件219、缩放和逆变换组件229、环内滤波器组件225和解码图像缓冲器组件223。这里对这些组件进行描述。
经分割的视频信号201是已通过编码树分割成像素块的捕获视频序列。编码树采用各种划分模式将像素块细分为更小的像素块。然后,可以将这些块进一步细分为更小块。所述块可以称为所述编码树上的节点。较大的父节点被划分成较小的子节点。节点被细分的次数称为节点/编码树的深度。在某些情况下,划分的块可以包括在编码单元(codingunit,CU)中。例如,CU可以是CTU的子部分,包括亮度块、一个或多个红差色度(Cr)块和一个或多个蓝差色度(Cb)块以及CU的对应语法指令。所述划分模式可以包括二叉树(binarytree,BT)、三叉树(triple tree,TT)和四叉树(quad tree,QT),用于根据所采用的划分模式,分别将节点划分为不同形状的两个、三个或四个子节点。将经分割的视频信号201转发给通用译码器控制组件211、变换缩放和量化组件213、帧内估计组件215、滤波器控制分析组件227和运动估计组件221进行压缩。
通用译码器控制组件211用于根据应用约束做出与将视频序列的图像译码到码流中相关的决策。例如,通用译码器控制组件211管理码率/码流大小相对于重建质量的优化。可以根据存储空间/带宽可用性和图像分辨率请求做出此类决策。通用译码器控制组件211还根据发送速度管理缓冲器利用率,以缓解缓存欠载和超载问题。为了解决这些问题,通用译码器控制组件211管理由其它组件进行的分割、预测和过滤。例如,通用译码器控制组件211可以动态地提高压缩复杂度以提高分辨率和增加带宽利用率,或者降低压缩复杂度以降低分辨率和带宽利用率。因此,通用译码器控制组件211控制编解码系统200的其它组件来平衡视频信号重建质量与码率问题。通用译码器控制组件211创建控制数据,这些控制数据控制其它组件的操作。还将所述控制数据转发给标头格式化和CABAC组件231,以编码到码流中,从而指示用于在解码器中解码的参数。
还将经分割的视频信号201发送到运动估计组件221和运动补偿组件219进行帧间预测。可以将经分割的视频信号201的帧或条带分成多个视频块。运动估计组件221和运动补偿组件219相对于一个或多个参考帧中的一个或多个块对所接收视频块进行帧间预测编码以提供时间预测。编解码系统200可以执行多个译码过程,以便为每个视频数据块选择适当的译码模式等等。
运动估计组件221和运动补偿组件219可以高度集成,但出于概念目的进行单独说明。运动估计组件221执行的运动估计是生成运动矢量的过程,其中,这些运动矢量用于估计视频块的运动。例如,运动矢量可以指示译码对象相对于预测块的位移。预测块是被发现在像素差异方面与待编码块高度匹配的块。预测块也可以称为参考块。此类像素差异可以通过绝对差异和(sum of absolute difference,SAD)、平方差异和(sum of squaredifference,SSD)或其它差异度量来确定。HEVC采用若干译码对象,包括CTU、编码树块(coding tree block,CTB)和CU。例如,可以将CTU分成多个CTB,然后可以将CTB划分为多个CB包括在CU中。可以将CU编码为包括预测数据的预测单元(prediction unit,PU)和/或包括CU的变换残差数据的变换单元(transform unit,TU)。运动估计组件221使用率失真分析作为率失真优化过程的一部分来生成运动矢量、PU和TU。例如,运动估计组件221可以确定当前块/帧的多个参考块、多个运动矢量等,并且可以选择具有最佳率失真特性的参考块、运动矢量等。最佳率失真特性平衡视频重建的质量(例如,压缩造成的数据丢失量)和译码效率(例如,最终编码的大小)。
在一些示例中,编解码系统200可以计算存储在解码图像缓冲器组件223中的参考图像的子整数像素位置的值。例如,视频编解码系统200可以插值参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计组件221可以执行相对于全像素位置和分数像素位置的运动搜索,并输出具有分数像素精度的运动矢量。运动估计组件221通过将PU的位置与参考图像的预测块的位置进行比较来计算帧间编码条带中视频块的PU的运动矢量。运动估计组件221将计算的运动矢量作为运动数据输出到标头格式化和CABAC组件231以进行编码,并将运动输出到运动补偿组件219。
运动补偿组件219执行的运动补偿可以涉及根据运动估计组件221所确定的运动矢量获取或生成预测块。另外,在一些示例中,运动估计组件221和运动补偿组件219可以在功能上集成。在接收当前视频块的PU的运动矢量之后,运动补偿组件219可以定位运动矢量指向的预测块。然后,从所译码的当前视频块的像素值中减去预测块的像素值,从而形成像素差值,如此形成残差视频块。通常,运动估计组件221相对于亮度分量执行运动估计,运动补偿组件219将根据亮度分量计算的运动矢量用于色度分量和亮度分量。将预测块和残差块转发给变换缩放和量化组件213。
还将经分割的视频信号201发送到帧内估计组件215和帧内预测组件217。如同运动估计组件221和运动补偿组件219,帧内估计组件215和帧内预测组件217可以高度集成,但出于概念目的进行单独说明。帧内估计组件215和帧内预测组件217相对于当前帧中的块对当前块进行帧内预测,以替代如上所述的由运动估计组件221和运动补偿组件219在各帧之间执行的帧间预测。具体地,帧内估计组件215确定帧内预测模式来用于对当前块进行编码。在一些示例中,帧内估计组件215从多个测试的帧内预测模式中选择适当的帧内预测模式来对当前块进行编码。然后,将所选择的帧内预测模式转发给标头格式化和CABAC组件231进行编码。
例如,帧内估计组件215对各种测试的帧内预测模式进行率失真分析来计算率失真值,并在测试的模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定编码块与经编码以产生编码块的原始未编码块之间的失真(或误差)量,以及用于产生编码块的码率(例如,比特数)。帧内估计组件215根据各种编码块的失真和速率计算比率,以确定表现出块的最佳率失真值的帧内预测模式。此外,帧内估计组件215可用于根据率失真优化(rate-distortion optimization,RDO),使用深度建模模式(depth modeling mode,DMM)对深度图的深度块进行译码。
当在编码器上实现时,帧内预测组件217可以根据由帧内估计组件215确定的所选帧内预测模式从预测块生成残差块,或者当在解码器上实现时,从码流读取残差块。所述残差块包括预测块与原始块之间的值差,表示为矩阵。然后,将残差块转发给变换缩放和量化组件213。帧内估计组件215和帧内预测组件217可以对亮度分量和色度分量进行操作。
变换缩放和量化组件213用于进一步压缩残差块。变换缩放和量化组件213对残差块应用变换,如离散余弦变换(discrete cosine transform,DCT)、离散正弦变换(discrete sine transform,DST)或概念上类似的变换,从而产生包括残差变换系数值的视频块。还可以使用小波变换、整数变换、子带变换或其它类型的变换。变换可以将残差信息从像素值域转化到变换域,如频域。变换缩放和量化组件213还用于根据频率等对变换的残差信息进行缩放。这种缩放涉及对残差信息应用缩放因子,以便在不同粒度下量化不同的频率信息,这可能会影响重建视频的最终视觉质量。变换缩放和量化组件213还用于量化变换系数以进一步降低码率。量化过程可以降低与一些或全部系数有关的位深度。可以通过调整量化参数来修改量化程度。在一些示例中,变换缩放和量化组件213随后可以对包括量化变换系数的矩阵进行扫描。将量化变换系数转发给标头格式化和CABAC组件231,以编码到码流中。
缩放和逆变换组件229应用变换缩放和量化组件213的逆操作以支持运动估计。缩放和逆变换组件229使用逆缩放、逆变换和/或反量化以重建像素域中的残差块,例如,用于以后用作参考块,所述参考块可成为另一当前块的预测块。运动估计组件221和/或运动补偿组件219可以通过将残差块添加回对应的预测块来计算参考块,以用于后续块/帧的运动估计。将滤波器应用于重建参考块,以减少在缩放、量化和变换期间产生的伪影。当预测后续块时,此类伪影可能导致预测不准确(并产生其它伪影)。
滤波器控制分析组件227和环内滤波器组件225将滤波器应用于残差块和/或重建图像块。例如,可以将缩放和逆变换组件229的变换残差块与帧内预测组件217和/或运动补偿组件219的对应预测块合并以重建原始图像块。然后,可以将滤波器应用于重建图像块。在一些示例中,滤波器可以转而应用于残差块。如同图2中的其它组件,滤波器控制分析组件227和环内滤波器组件225高度集成,可以一起实现,但出于概念目的进行单独描述。应用于重建参考块的滤波器应用于特定空间区域,包括多个参数以调整应用此类滤波器的方式。滤波器控制分析组件227对重建参考块进行分析,以确定应该应用此类滤波器的位置并设置对应的参数。将此类数据作为滤波器控制数据转发给标头格式化和CABAC组件231进行编码。环内滤波器组件225根据滤波器控制数据应用此类滤波器。所述滤波器可以包括去块效应滤波器、噪声抑制滤波器、SAO滤波器和自适应环路滤波器。此类滤波器可以根据示例应用于空域/像素域(例如,针对重建像素块)或频域中。
当作为编码器操作时,将经滤波的重建图像块、残差块和/或预测块存储在解码图像缓冲器组件223中,以供以后用于运动估计,如上所述。当作为解码器操作时,解码图像缓冲器组件223存储经重建和经滤波的块并将其作为输出视频信号的一部分向显示器转发。解码图像缓冲器组件223可以是能够存储预测块、残差块和/或重建图像块的任何存储器设备。
标头格式化和CABAC组件231从编解码系统200的各组件接收数据并将此类数据编码到经编码码流中以向解码器发送。具体地,标头格式化和CABAC组件231生成各种标头以对控制数据(如总体控制数据和滤波器控制数据)进行编码。此外,将预测数据(包括帧内预测)和运动数据,以及量化变换系数数据形式的残差数据均编码到码流中。最终码流包括解码器重建原始的经分割的视频信号201所需要的所有信息。此类信息还可以包括帧内预测模式索引表(也称为码字映射表)、各种块的编码上下文的定义、最可能的帧内预测模式的指示、分割信息的指示等。此类数据可以采用熵编码进行编码。例如,可以采用上下文自适应可变长度译码(context adaptive variable length coding,CAVLC)、CABAC、基于语法的上下文自适应二进制算术译码(syntax-based context-adaptive binary arithmeticcoding,SBAC)、概率区间分割熵(probability interval partitioning entropy,PIPE)译码或其它熵译码技术对信息进行编码。在熵编码之后,可以将经编码码流发送到另一设备(例如,视频解码器)或存档以用于后续发送或检索。
图3为用于视频译码的示例性视频编码器300的框图。视频编码器300可以用于实现编解码系统200的编码功能和/或实现操作方法100的步骤101、103、105、107和/或109。编码器300对输入视频信号进行分割,从而产生经分割的视频信号301,其中,所述经分割的视频信号301实质上类似于经分割的视频信号201。然后,通过编码器300的组件压缩经分割的视频信号301并编码到码流中。
具体地,将经分割的视频信号301转发给帧内预测组件317进行帧内预测。帧内预测组件317可以实质上类似于帧内估计组件215和帧内预测组件217。还将经分割的视频信号301转发给运动补偿组件321,以根据解码图像缓冲器组件323中的参考块进行帧间预测。运动补偿组件321可以实质上类似于运动估计组件221和运动补偿组件219。将帧内预测组件317和运动补偿组件321的预测块和残差块转发给变换和量化组件313以对残差块进行变换和量化。变换和量化组件313可以实质上类似于变换缩放和量化组件213。将经变换和量化的残差块和对应的预测块(连同相关控制数据)转发给熵编码组件331以编码到码流中。熵编码组件331可以实质上类似于标头格式化和CABAC组件231。
也将经变换和量化的残差块和/或对应的预测块从变换和量化组件313转发给逆变换和量化组件329以重建成参考块供运动补偿组件321使用。逆变换和量化组件329可以实质上类似于缩放和逆变换组件229。根据示例,也将环内滤波器组件325中的环内滤波器应用于残差块和/或重建参考块。环内滤波器组件325可以实质上类似于滤波器控制分析组件227和环内滤波器组件225。环内滤波器组件325可以包括多个滤波器,如环内滤波器组件225所描述的。然后,将滤波块存储在解码图像缓冲器组件323中,以供运动补偿组件321用作参考块。解码图像缓冲器组件323可以实质上类似于解码图像缓冲器组件223。
图4为用于视频译码的示例性视频解码器400的框图。视频解码器400可以用于实现编解码系统200的解码功能和/或实现操作方法100的步骤111、113、115和/或117。例如,解码器400从编码器300接收码流,并根据所述码流生成重建的输出视频信号,向终端用户显示。
所述码流由熵解码组件433接收。熵解码组件433用于实现熵解码方案,如CAVLC、CABAC、SBAC、PIPE译码或其它熵译码技术。例如,熵解码组件433可以使用标头信息来提供上下文以解释在码流中编码为码字的其它数据。解码信息包括对视频信号进行解码所需的任何信息,如总体控制数据、滤波器控制数据、分割信息、运动数据、预测数据和残差块中的量化变换系数。将量化变换系数转发给逆变换和量化组件429以重建成残差块。逆变换和量化组件429可以类似于逆变换和量化组件329。
将重建残差块和/或预测块转发给帧内预测组件417,以根据帧内预测操作重建成图像块。帧内预测组件417可以类似于帧内估计组件215和帧内预测组件217。具体地,帧内预测组件417采用预测模式来定位帧中的参考块,并将残差块应用于结果以重建帧内预测的图像块。将重建的帧内预测图像块和/或残差块以及对应的帧间预测数据通过环内滤波器组件425转发给解码图像缓冲器组件423。解码图像缓冲器组件423和环内滤波器组件425可以分别实质上类似于解码图像缓冲器组件223和环内滤波器组件225。环内滤波器组件425对重建图像块、残差块和/或预测块进行滤波并且将此类信息存储在解码图像缓冲器组件423中。将解码图像缓冲器组件423的重建图像块转发给运动补偿组件421进行帧间预测。运动补偿组件421可以实质上类似于运动估计组件221和/或运动补偿组件219。具体地,运动补偿组件421使用参考块的运动矢量来生成预测块,并将残差块应用于结果以重建图像块。还可以通过环内滤波器组件425将所得到的重建块转发给解码图像缓冲器组件423。解码图像缓冲器组件423继续存储附加重建图像块,这些重建图像块可以通过分割信息重建成帧。此类帧也可以位于序列中。将所述序列作为重建的输出视频信号向显示器输出。
本发明根据方法100、编解码系统200、编码器300和/或解码器400提供了编码器和解码器设计,以降低视频译码的复杂度、提高译码速度、和/或提高译码效率。具体地,本发明包括实现受约束编码树的机制。将这类受约束编码树应用于指定CTU,可以用符合编解码流水线块处理机制的方式划分对应的编码树节点。因此,将CTU划分为在流水线块边界内的CU。无需提供单独机制来改变流水线块边界或以其它方式改变基于流水线块的处理,从而可以将每个CU译码为离散单元。因此,当本文描述的实施例与方法100、编解码系统200、编码器300和/或解码器400结合使用时,可以降低复杂度并提高译码速度,同时保持或减少处理和/或存储器资源利用率。此外,应用这类受约束编码树减少了对应编码树节点的划分模式选项的数量。这可以以更少的比特指示所选的划分模式,从而提高译码效率,其中,所述译码效率是码率降低/压缩的一种衡量手段,将数据的未压缩表示与数据的压缩表示进行比较。因此,本文描述的实施例与方法100、编解码系统200、编码器300和/或解码器400结合使用时可以提高译码效率。因此,通过解决与此类系统相关的技术问题,即通过降低此类系统日益增加的复杂度并提高此类系统的速度,同时仍支持与此类系统相关的有益压缩,所公开的实施例有助于更高效地实现方法100、编解码系统200、编码器300和/或解码器400。下文描述与方法100、编解码系统200、编码器300和/或解码器400结合使用的多级编码器、解码器和关联方法的具体示例性实施例。
图5为将CTU分割成在流水线块内的编码单元(coding unit,CU)的示例性机制500的示意图。方法100、编解码系统200、编码器系统300和/或解码器系统400在对视频帧进行分割时可以采用机制500。
接收视频帧并分割成一个或多个条带540。条带540是帧中与同一帧中其它区域分开编码的在空间上不同的区域。根据为对应区域分配的译码机制,将帧区域分配给条带540。将指定单向帧间预测和双向帧间预测的帧区域分别分配给P条带和B条带540。将指定帧内预测的帧区域分配给I条带540。
将条带540划分为CTU 541。CTU 541是能够接受完整编码树547应用的最大像素块(例如,编码树547通常不跨越CTU 541边界)。CTU 541大小由语法定义,例如可以是128个像素×128个像素、64个像素×64个像素、32个像素×32个像素等。这类大小通常以宽度×高度的形式表示。在一些示例中,CTU 541也可以为矩形,例如可以是128个像素×64个像素。这类大小通常以宽度×高度的形式表示。因此,128个像素×64个像素的CTU 541的宽度是高度的两倍。CTU 541包含亮度像素点和色度像素点。亮度像素点是光值,色度像素点是颜色值。需要说明的是,在某些上下文中,亮度像素点和色度像素点也可以分别称为亮度数据和色度数据。
应用受约束编码树547对CTU 541的亮度像素点和/或色度像素点进行分割。编码树是由子和/或父关系关联的决策节点的列表。每个节点都与一种划分模式关联,该划分模式分割对应像素点。受约束编码树547的第一节点(例如,根节点)应用划分模式将亮度像素点和/或色度像素点分割成对应部分。子节点递归地应用其它划分模式将对应部分细分为更小部分,直到到达受约束编码树547的分支。因为某些编码树节点的可用划分模式受到限制,因此编码树节点是受约束编码树节点547。具体地,当编码树节点的高度为最大TU高度的两倍且编码树节点的宽度为最大TU宽度的两倍时(例如,128×128个像素和/或2S×2S),从四叉树划分、水平二叉树划分和不划分的组中选择划分模式。因此,如下受约束编码树:从垂直二叉树划分、垂直三叉树划分和水平三叉树划分的组中选择编码树节点的划分模式。此外,当编码树节点的高度不大于最大TU高度且编码树节点的宽度为最大TU宽度的两倍时(例如,128×64个像素和/或2S×S),从垂直二叉树划分和不划分的组中选择划分模式。因此,如下受约束编码树:从水平二叉树、四叉树划分、垂直三叉树和水平三叉树的组中选择编码树节点的划分模式。
需要说明的是,TU是应用于由于帧间预测和/或帧内预测而产生的残差的变换块。最大TU高度和/或宽度表示可以用于变换CU 546的残差的TU块的最大大小。可以在将CU546分配给流水线块549时使用最大TU大小。因此,可以使用最大TU大小来确定在流水线块549的边界内的划分模式选择。
受约束编码树547分别将亮度像素点划分为亮度编码块543,将色度像素点划分为色度编码块545。亮度编码块543是指定进行进一步压缩的分割亮度像素点组。色度编码块545是指定进行进一步压缩的分割色度像素点组。每个亮度编码块543可以对应两个色度编码块545,表示为红差色度块和蓝差色度块,以表示颜色值的整个范围。可以将亮度编码块543和相关色度编码块545分配给CU 546。CU 546是一组相关像素像素点值,经转发以通过帧间预测和/或帧内预测进行视频压缩。当条带540为I条带时,转发CU 546进行帧内预测。当条带540为P条带或B条带时,转发CU 546进行帧间预测。
通过将CU 546分配到流水线块549中来转发CU 546以进行视频压缩。流水线块549是CTU 541的划分部分,可以作为一个组进行编码和/或解码。因此,在对分配给第二流水线块549的CU 546进行译码之前先对分配给第一流水线块549的CU 546进行译码。在对帧的条带540进行译码时,通常按预定义的顺序对流水线块549进行译码,如从左到右且从上到下。如上所述,可以根据最大TU大小来分配流水线块549。如果CU 546存在于多个流水线块549中,由于改变流水线块549大小以容纳整个CU 546等原因,会额外增加对CU 546进行译码的复杂性。然而,根据本文描述的规则应用受约束编码树547可以使CU 546在流水线块549的边界内。因此,可以避免这种特殊处理。
图6示出了应用于CTU的示例性编码树600,其实质上分别类似于受约束编码树547和CTU 541。因此,方法100、编解码系统200、编码器系统300、解码器系统400和/或机制500在对视频帧进行分割时可以使用编码树600。
使用编码树600将CTU分割成构成CU的CB。在所示示例中,编码树600包括多个编码树节点,例如包括根节点611、第二层节点615和第三层节点617。需要说明的是,虽然描述了三层节点,但是可以根据CTU大小和最小块大小使用任意数量的层。节点611、615和617在图6中描述为黑点。如本文所使用的,编码树600节点是具有对应大小的像素块,可以应用划分模式将该块分割成多个更小的像素块。在所示示例中,节点采用四叉树划分模式,将对应块划分为四个更小块。该过程可以继续进行,直到达到预定义的条件。这类预定义条件可以包括最小块大小和/或块的信号特征(例如,频域中块中的数据系数)。例如,在根节点611处,可以应用划分模式将块(在这种情况下为CTU)分割成更小块。选择具有对应分割的划分模式,将具有不同值的像素分到不同的块中,将具有相似值的像素分到公共块中。在根节点611处分割的块形成第二层节点615。在每个节点处,检查块的信号特征和块大小。当信号特征指示块包含具有相对相似值的像素时,可以不进一步划分该块。此外,当块达到最小大小时,可以不对该块进行进一步划分。在所示示例中,通过应用具有对应分割的其它划分模式来进一步划分第二层节点615的三个节点,从而形成第三层节点617。在该示例中,例如因为与块中的像素点相关的信号特征(例如,频域中的系数)指示块包含具有相对相似值的像素,不对第二层节点615中的其中一个节点进行进一步划分。
当用作受约束编码树时,编码树600的节点611、615和617受到约束,从而只能选择某些划分模式。可供选择的划分模式取决于对应节点的大小。这类约束使CTU的分割可以使所得到的CU在一些示例性编解码器中使用的流水线块的边界内。
图7为编码树(如受约束编码树547和/或编码树600)中使用的示例性划分模式集700的示意图。因此,当操作方法100、编解码系统200、编码器系统300和/或解码器系统400分割视频帧时,可以在机制500中使用划分模式集700。划分模式集700包括四叉树(quad-tree,QT)701、垂直二叉树(vertical binary tree,VBT)703、水平二叉树(horizontalbinary tree,HBT)705、垂直三叉树(vertical triple tree,VTT)707以及水平三叉树(horizontal triple tree,HTT)709。编码树的每个节点将划分模式集700中的一种划分模式应用于像素点块。因此,编码树中的父节点将划分模式应用于一组像素点,以创建两个、三个或四个块(取决于划分模式)。然后,子节点应用更多的划分模式,对父节点创建的块进行进一步划分。子节点的子节点可以进一步细分这些块,直到到达编码树的末端。特定节点的划分模式从划分模式集700中选择(例如,通过编码器中的RDO过程)以分组具有相似值的像素点,以便可以通过帧内预测和/或帧间预测进行高效压缩。在解码器中,可以从码流中确定编码树、子树和划分模式,例如以语法形式存储在条带、CTU和/或对应编码单元的参数集中。
QT 701是一种将编码块划分成四个相等子块的划分模式。因此,QT 701将亮度像素点块划分成大小相等的四个亮度像素点块。此外,QT 701将色度像素点块划分成大小相等的四个更小的色度像素点块。
VBT 703是一种将编码块划分成两个大小相等的子块的划分模式。这类子块的高度与原始编码块的高度相同,宽度为原始编码块的宽度一半。因此,VBT 703将亮度像素点的父块划分成大小相等的亮度像素点的两个子块,这两个子块的高度与亮度像素点的父块高度相同,宽度为亮度像素点的父块宽度的一半。此外,VBT 703将色度像素点的父块划分成大小相等的色度像素点的两个子块,这两个子块的高度与色度像素点的父块高度相同,宽度为色度像素点的父块宽度的一半。
HBT 705是一种将编码块划分成两个大小相等的子块的划分模式。这类子块的宽度与原始编码块的宽度相同,高度为原始编码块的高度一半。因此,HBT 705将亮度像素点的父块划分成大小相等的亮度像素点的两个子块,这两个子块的宽度与亮度像素点的父块宽度相同,高度为亮度像素点的父块高度的一半。此外,HBT 705将色度像素点的父块划分成大小相等的色度像素点的两个子块,这两个子块的宽度与色度像素点的父块宽度相同,高度为色度像素点的父块高度的一半。
VTT 707是一种将编码块划分成三个子块的划分模式。这类子块的高度与原始编码块的高度相同。其中一个子块的宽度为原始编码块的宽度一半,另外两个子块的宽度为原始编码块的宽度的四分之一。因此,VTT 707将亮度像素点的父块划分成亮度像素点的三个子块,这三个子块的高度与亮度像素点的父块高度相同,宽度分别为亮度像素点的父块宽度的四分之一、一半和四分之一。此外,VTT 707将色度像素点的父块划分成色度像素点的三个子块,这三个子块的高度与色度像素点的父块高度相同,宽度分别为色度像素点的父块宽度的四分之一、一半和四分之一。
HTT 709是一种将编码块划分成三个子块的划分模式。这类子块的宽度与原始编码块的宽度相同。其中一个子块的高度为原始编码块的高度一半,另外两个子块的高度为原始编码块的高度的四分之一。因此,HTT 709将亮度像素点的父块划分成亮度像素点的三个子块,这三个子块的宽度与亮度像素点的父块宽度相同,高度分别为亮度像素点的父块高度的四分之一、一半和四分之一。此外,HTT 709将色度像素点的父块划分成色度像素点的三个子块,这三个子块的宽度与色度像素点的父块宽度相同,高度分别为色度像素点的父块高度的四分之一、一半和四分之一。
图8和图9为在选择划分模式以分割编码树节点时受约束编码树所施加的示例性约束的示意图800和图900。具体地,在图800中,在应用编码树(如受约束编码树547和/或编码树600)期间,将通过划分模式(如划分模式700)划分编码树节点810。因此,当操作方法100、编解码系统200、编码器系统300和/或解码器系统400分割视频帧时,可以在机制500中使用示意图800。
编码树节点810可以是整个CTU,也可以是划分CTU得到的子节点。编码树节点810为2S×2S节点,表示编码树节点810的高度至少为最大TU高度的两倍,宽度至少为最大TU宽度的两倍。根据本文描述的约束,由于编码树节点810的大小,编码树节点810只能通过QT划分801、HBT划分805来划分或不划分802。QT划分801和HBT划分805实质上分别类似于QT 701和HBT 705。不划分802表示编码树节点810不需要经进一步划分成为CU。
具体地,该示例中可以使用四叉树三叉树编码树结构。最大CTU大小可以为128×128,最大TU大小可以为64×64。最大二叉树大小(表示可以使用二叉树划分和三叉树划分的最大大小节点)可以设置为128×128。在该示例中,2S×2S编码树节点810可以是128×128节点(即CTU)。因为在这种情况下,来自三叉树划分的子节点可能由一个以上S×S流水线块覆盖,因此不允许对该编码树节点810进行水平三叉树划分和垂直三叉树划分。此外,也不允许对该编码树节点810进行垂直二叉树划分,因为这种划分可能导致按照不同于这类系统通常使用的四叉树节点处理顺序处理S×S流水线块。因此,只能通过四叉树划分或水平二叉树划分来划分该节点。
相应地,可以通过一对标志/位元来指示编码树节点810的划分模式。具体地,解码器可以解析位元(例如,qt_split_cu_flag)以确定是否通过QT划分801划分128×128编码树节点810。如果通过QT划分801划分128×128编码树节点810,则生成4个64×64子节点。如果未通过QT划分801划分128×128编码树节点810,则从码流中解析第二位元(例如,mtt_split_cu_flag),以确定编码树节点810是不进行划分,从而形成不划分802,还是通过HBT划分805进行划分。如果第二位元指示对编码树节点810进行划分,则推断为HBT划分805,通过水平二叉树划分生成两个128×64节点。如果不对HBT划分805进行划分,则形成128×128CU。推断CU具有四个64×64TU和一个128×128预测单元(prediction unit,PU)。可以将128×128PU划分为4个64×64PU,4个TU和对应的PU构成4个64×64流水线块。然后,可以按四叉树节点处理顺序处理流水线块,例如,先处理左上角TU,之后处理右上角TU、左下角TU和右下角TU。
在图900中,在应用编码树(如受约束编码树547和/或编码树600)期间,将通过划分模式(如划分模式700)划分编码树节点910。因此,当操作方法100、编解码系统200、编码器系统300和/或解码器系统400分割视频帧时,可以在机制500中使用示意图900。
编码树节点910可以是整个CTU,也可以是划分CTU得到的子节点。编码树节点910为2S×S节点,表示编码树节点910的高度不大于最大TU高度,编码树节点910的宽度为最大TU宽度的两倍。根据本文描述的约束,由于编码树节点910的大小,编码树节点910只能通过VBT划分903来划分或不划分902。VBT划分903实质上类似于VBT 703。不划分902表示编码树节点910不经进一步划分即成为CU。
例如,2S×S编码树节点910可以是128×64节点(即CTU)。不允许128×64编码树节点910使用水平三叉树划分、垂直三叉树划分或水平二叉树划分,以免破坏64×64块流水线结构。也不能通过四叉树划分对128×64编码树节点910进行划分。这是因为,在四叉树-二叉树结构中,不允许通过四叉树划分对二叉树划分或三叉树划分生成的节点进行划分。在这种情况下,只允许对128×64编码树节点910进行VBT划分903。因此,如果划分编码树节点910,则可以不指示划分方向信息(例如,mtt_split_cu_vertical_flag)和划分类型信息(例如,mtt_split_cu_binary_flag)。还需要说明的是,可以通过三叉树划分或二叉树划分来划分从128×64编码树节点910分割出的64×64节点。
图10为在编码期间应用受约束编码树(如受约束编码树547和/或编码树600)来分割CTU(如CTU 541)的编码树节点(如编码树节点810)的示例性方法1000的流程图。方法1000可用于通过采用划分模式集700来实现机制500。方法1000可以用于方法100、编解码系统200和/或编码器系统300中,以将视频帧中的像素点分割成CU以用于流水线块。
在步骤1001中,在编码器中将图像分割成条带。进一步处理这些条带以创建至少一个CTU。此外,为所述CTU确定编码树,使得该CTU包含至少一个编码树节点。
在步骤1003中,所述编码器确定所述编码树节点的高度为最大TU高度的两倍,且所述编码树节点的宽度为最大TU宽度的两倍。具体地,所述编码器确定编码树节点为2S×2S节点(例如,128×128个像素),如编码树节点810。
在步骤1005中,如果所述确定结果为所述编码树节点的高度为所述最大TU高度的两倍且所述编码树节点的宽度为所述最大TU宽度的两倍,所述编码器为所述编码树节点选择划分模式。具体地,从包括四叉树划分、水平二叉树划分和不划分(例如,基本上由其组成)的组中选择划分模式。例如,如果所述确定结果为所述编码树节点的高度为所述最大TU高度的两倍且所述编码树节点的宽度为所述最大TU宽度的两倍,不从垂直二叉树划分、垂直三叉树划分和水平三叉树划分中选择所述划分模式。在步骤1007中,所述编码器将划分模式应用于编码树节点以创建一个或多个CU并将所述CU编码到码流中。
在步骤1009中,编码器可以在码流中指示在步骤1005中选择的编码树节点的划分模式。例如,编码器可以编码第一标志以指示划分模式是否为四叉树划分,以及编码第二标志以指示划分模式是水平二叉树划分或不划分。例如,第一标志可以为qt_split_cu_flag,第二标志可以为mtt_split_cu_flag。需要说明的是,根据示例,步骤1009可以发生在步骤1007之前,也可以发生在步骤1007之后。在步骤1011中,所述编码器向解码器发送所述码流以重建为视频流并向用户显示。
图11为在编码期间应用受约束编码树(如受约束编码树547和/或编码树600)来分割CTU(如CTU 541)的编码树节点(如编码树节点910)的另一种示例性方法1100的流程图。方法1100可用于通过采用划分模式集700来实现机制500。方法1100可以用于方法100、编解码系统200和/或编码器系统300中,以将视频帧中的像素点分割成CU以用于流水线块。
在步骤1101中,在编码器中将图像分割成条带。进一步处理这些条带以创建至少一个CTU。此外,为所述CTU确定编码树,使得该CTU包含至少一个编码树节点。
在步骤1103中,所述编码器确定所述编码树节点的高度不大于最大TU高度,且所述编码树节点的宽度为最大TU宽度的两倍。具体地,所述编码器确定编码树节点为2S×S节点(例如,128×64个像素),如编码树节点910。
在步骤1105中,如果所述确定结果为所述编码树节点的高度不大于所述最大TU高度且所述编码树节点的宽度为所述最大TU宽度的两倍,所述编码器为所述编码树节点选择划分模式。具体地,从包括垂直二叉树划分和不划分(例如,基本上由其组成)的组中选择划分模式。例如,如果所述确定结果为所述编码树节点的高度不大于所述最大TU高度且所述编码树节点的宽度为所述最大TU宽度的两倍,不从水平二叉树、四叉树划分、垂直三叉树和水平三叉树中选择所述划分模式。在步骤1007中,所述编码器将划分模式应用于编码树节点以创建一个或多个CU并将所述CU编码到码流中。
在步骤1109中,编码器可以在码流中指示在步骤1105中选择的编码树节点的划分模式。例如,所述编码器可以通过编码第一标志来指示所述划分模式是垂直二叉树划分或不划分,在所述码流中指示所述编码树节点的所述划分模式。需要说明的是,根据示例,步骤1109可以发生在步骤1107之前,也可以发生在步骤1007之后。在步骤1111中,所述编码器向解码器发送所述码流以重建为视频流并向用户显示。
图12为在解码期间应用受约束编码树(如受约束编码树547和/或编码树600)来分割CTU(如CTU 541)的编码树节点(如编码树节点810)的示例性方法1200的流程图。方法1200可用于通过采用划分模式集700来实现机制500。方法1200可以用于方法100、编解码系统200和/或解码器系统400中,以将视频帧中的像素点分割成CU以用于流水线块。
在步骤1201中,在解码器中接收包括图像数据的码流。所述解码器可以将所述图像数据分割成预定大小的条带。根据预定算法、条带大小等进一步处理这些条带以创建至少一个CTU。此外,例如从码流中为所述CTU确定编码树,使得该CTU包含至少一个编码树节点。
在步骤1203中,所述解码器确定所述编码树节点的高度为最大TU高度的两倍,且所述编码树节点的宽度为最大TU宽度的两倍。具体地,所述解码器确定编码树节点为2S×2S节点(例如,128×128个像素),如编码树节点810。
在步骤1205中,所述解码器解析所述码流,如果所述确定结果为所述编码树节点的高度为所述最大TU高度的两倍且所述编码树节点的宽度为所述最大TU宽度的两倍,为所述编码树节点确定划分模式。具体地,从包括四叉树划分、水平二叉树划分和不划分(例如,基本上由其组成)的组中选择划分模式。例如,如果所述确定结果为所述编码树节点的高度为所述最大TU高度的两倍且所述编码树节点的宽度为所述最大TU宽度的两倍,不从垂直二叉树划分、垂直三叉树划分和水平三叉树划分中选择所述划分模式。例如,解析所述码流以确定所述编码树节点的所述划分模式可以包括:解析第一标志以确定所述划分模式是否为四叉树划分。解析所述码流以确定所述编码树节点的所述划分模式还可以包括解析第二标志以确定所述划分模式是水平二叉树划分或不划分。在一些示例中,第一标志为qt_split_cu_flag,第二标志为mtt_split_cu_flag。
在步骤1207中,所述解码器将所述划分模式应用于所述编码树节点以获得一个或多个CU。在步骤1209中,所述解码器根据所述码流对CU进行解码以创建图像。然后,在步骤1211中,所述解码器可以将所述图像转发给显示器。
图13为在解码期间应用受约束编码树(如受约束编码树547和/或编码树600)来分割CTU(如CTU 541)的编码树节点(如编码树节点910)的另一种示例性方法1300的流程图。方法1300可用于通过采用划分模式集700来实现机制500。方法1300可以用于方法100、编解码系统200和/或解码器系统400中,以将视频帧中的像素点分割成CU以用于流水线块。
在步骤1301中,在解码器中接收包括图像数据的码流。所述解码器可以将所述图像数据分割成预定大小的条带。根据预定算法、条带大小等进一步处理这些条带以创建至少一个CTU。此外,例如从码流中为所述CTU确定编码树,使得该CTU包含至少一个编码树节点。
在步骤1303中,所述解码器确定所述编码树节点的高度不大于最大TU高度,且所述编码树节点的宽度为最大TU宽度的两倍。具体地,所述解码器确定编码树节点为2S×S节点(例如,128×64个像素),如编码树节点910。
在步骤1305中,所述解码器解析所述码流,如果所述确定结果为所述编码树节点的高度不大于所述最大TU高度且所述编码树节点的宽度为所述最大TU宽度的两倍,为所述编码树节点确定划分模式。具体地,从包括垂直二叉树划分和不划分(例如,基本上由其组成)的组中选择划分模式。例如,如果所述确定结果为所述编码树节点的高度不大于所述最大TU高度且所述编码树节点的宽度为所述最大TU宽度的两倍,不从水平二叉树划分、四叉树划分、垂直三叉树划分和水平三叉树中选择所述划分模式。例如,解析所述码流以确定所述编码树节点的所述划分模式可以包括:解析第一标志以确定所述划分模式是垂直二叉树划分或不划分。
在步骤1307中,所述解码器将所述划分模式应用于所述编码树节点以获得一个或多个CU。在步骤1309中,所述解码器根据所述码流对CU进行解码以创建图像。然后,在步骤1311中,所述解码器可以将所述图像转发给显示器。
图14为示例性视频译码设备1400的示意图。视频译码设备1400适用于实现本文描述的所公开示例/实施例。视频译码设备1400包括下行端口1420、上行端口1450,和/或收发单元(Tx/Rx)1410,其中,所述收发单元包括用于通过网络在上游和/或下游传输数据的发送器和/或接收器。视频译码设备1400还包括:处理器1430,包括用于处理数据的逻辑单元和/或中央处理单元(central processing unit,CPU);和用于存储数据的存储器1432。视频译码设备1400还可以包括与上行端口1450和/或下行端口1420耦合的光电(optical-to-electrical,OE)组件、电光(electrical-to-optical,EO)组件,和/或无线通信组件,用于通过光或无线通信网络进行数据通信。视频译码设备1400还可以包括输入和/或输出(input/output,I/O)设备1460,用于向用户发送数据和从用户发送数据。I/O设备1460可以包括输出设备,如用于显示视频数据的显示器、用于输出音频数据的扬声器等。I/O设备1460还可以包括输入设备,如键盘、鼠标、轨迹球等,和/或用于与此类输出设备交互的对应接口。
处理器1430通过硬件和软件实现。处理器1430可以实现为一个或多个CPU芯片、核(例如,多核处理器)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application specific integrated circuit,ASIC)和数字信号处理器(digitalsignal processor,DSP)。处理器1430与下行端口1420、Tx/Rx 1410、上行端口1450、存储器1432和/或I/O设备1460通信。处理器1430包括译码模块1414。译码模块1414实现本文描述的公开实施例(例如,编码器、解码器、编解码器、方法或其它机制)。因此,译码模块1414改进了视频译码设备1400的功能,并解决了视频译码领域特有的问题。此外,译码模块1414可以将视频译码设备1400变换到不同的状态。或者,译码模块1414可以实现为存储在存储器1432中并由处理器1430执行的指令(例如,存储在非瞬时性介质中的计算机程序产品)。
存储器1432包括一个或多个存储器类型,如磁盘、磁带机、固态驱动器、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、闪存、三元内容可寻址存储器(ternary content-addressable memory,TCAM)、静态随机存取存储器(static random-access memory,SRAM)等。存储器1432可用作溢出数据存储设备,以在选择程序执行时存储此类程序,并存储在程序执行期间读取的指令和数据。
图15为用于应用受约束编码树以分割CTU的编码树节点的示例性系统1500的示意图。系统1500包括视频编码器1502和视频解码器1510,可以实现操作方法100、机制500、方法1000、方法1100、方法1200、方法1300、编解码系统200、编码器300和/或解码器400。此外,视频编码器1502和视频解码器1510可以使用划分模式集700来利用受约束编码树547和/或编码树600执行分割。具体地,视频编码器1502和视频解码器1510可以应用编码树,这些编码树分别受约束应用于图800和图900中的编码树节点810和/或910。
在一个示例中,视频编码器1502包括分割模块1501,用于对图像进行分割以创建具有至少一个编码树节点的至少一个CTU。视频编码器1502还包括大小确定模块1503,用于确定所述编码树节点的高度为最大TU高度的两倍,且所述编码树节点的宽度为最大TU宽度的两倍。视频编码器1502还包括划分模式选择模块1505,用于:如果所述确定结果为所述编码树节点的高度为所述最大TU高度的两倍且所述编码树节点的宽度为所述最大TU宽度的两倍,为所述编码树节点选择划分模式:水平二叉树划分和不划分。视频编码器1502还包括划分模式应用模块1507,用于将所述划分模式应用于所述编码树节点以创建一个或多个CU。视频编码器1502还包括编码模块1508,用于将CU编码到码流中。视频编码器1502还包括发送模块1509,用于向解码器发送码流。
在另一个示例中,视频编码器1502包括分割模块1501,用于对图像进行分割以创建具有至少一个编码树节点的至少一个CTU。视频编码器1502还包括大小确定模块1503,用于确定所述编码树节点的高度不大于最大TU高度,且所述编码树节点的宽度为最大TU宽度的两倍。视频编码器1502还包括划分模式选择模块1505,用于:如果所述确定结果为所述编码树节点的高度不大于所述最大TU高度且所述编码树节点的宽度为所述最大TU宽度的两倍,为所述编码树节点选择划分模式,其中,所述划分模式从垂直二叉树划分和不划分中选择。视频编码器1502还包括划分模式应用模块1507,用于将所述划分模式应用于所述编码树节点以创建一个或多个CU。视频编码器1502还包括编码模块1508,用于将CU编码到码流中。视频编码器1502还包括发送模块1509,用于向解码器发送码流。
在一个示例中,视频解码器1510包括接收模块1516,用于接收包括图像数据的码流。视频解码器1510还包括分割模块1511,用于对所述图像数据进行分割以创建具有至少一个编码树节点的至少一个CTU。视频解码器1510还包括大小确定模块1513,用于确定所述编码树节点的高度为最大TU高度的两倍,且所述编码树节点的宽度为最大TU宽度的两倍。视频解码器1510还包括划分模式确定模块1515,用于解析所述码流,如果所述确定结果为所述编码树节点的高度为所述最大TU高度的两倍且所述编码树节点的宽度为所述最大TU宽度的两倍,确定所述编码树节点的划分模式,其中,所述划分模式从四叉树划分、水平二叉树划分和不划分中选择。视频解码器1510还包括划分模式应用模块1517,用于将所述划分模式应用于所述编码树节点以获得一个或多个CU。视频解码器1510还包括解码模块1518,用于根据所述码流对所述CU进行解码以创建图像。视频解码器1510还包括显示模块1519,用于向显示器转发所述图像。
在另一个示例中,视频解码器1510包括接收模块1516,用于接收包括图像数据的码流。视频解码器1510还包括分割模块1511,用于对所述图像数据进行分割以创建具有至少一个编码树节点的至少一个CTU。视频解码器1510还包括大小确定模块1513,用于确定所述编码树节点的高度不大于最大TU高度,且所述编码树节点的宽度为最大TU宽度的两倍。视频解码器1510还包括划分模式确定模块1515,用于解析所述码流,如果所述确定结果为所述编码树节点的高度不大于所述最大TU高度且所述编码树节点的宽度为所述最大TU宽度的两倍,确定所述编码树节点的划分模式,其中,所述划分模式从垂直二叉树划分和不划分中选择。视频解码器1510还包括划分模式应用模块1517,用于将所述划分模式应用于所述编码树节点以获得一个或多个CU。视频解码器1510还包括解码模块1518,用于根据所述码流对所述CU进行解码以创建图像。视频解码器1510还包括显示模块1519,用于向显示器转发所述图像。
当第一组件与第二组件之间除了线、迹线或其它介质之外没有中间组件时,所述第一组件与所述第二组件直接耦合。当第一组件与第二组件之间除了线、迹线或其它介质之外还有中间组件时,第一组件与第二组件间接耦合。术语“耦合”及其变型包括直接耦合和间接耦合。除非另有说明,否则使用术语“约”意指包括后续数字±10%的范围。
虽然本发明中已提供若干实施例,但可以理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可以以许多其它特定形式来体现。本发明示例应被视为说明性而非限制性的,且本发明并不限于本文所给出的细节。例如,可以在另一系统中结合或集成各种元件或组件,或者可以省略或不实现某些特征。
此外,在不脱离本发明范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、组件、技术或方法进行组合或集成。变化、替换和变更的其它实例可由本领域技术人员确定,并可在不脱离本文公开的精神和范围的情况下举例。

Claims (16)

1.一种在编码器中实现的方法,其特征在于,所述方法包括:
所述编码器的处理器对图像进行分割以获取具有至少一个编码树节点的至少一个编码树节点;
在所述编码树节点的高度为64且所述编码树节点的宽度为128的情况下,所述处理器将竖直二叉树划分应用于所述编码树节点以获取一个或多个编码单元(coding unit,CU);
所述处理器将所述CU编码到码流中。
2.根据权利要求1所述的方法,其特征在于,在所述编码树节点的高度为64且所述编码树节点的宽度为128的情况下,三叉树划分和水平二叉树划分不被允许。
3.根据权利要求1所述的方法,其特征在于,还包括:通过编码第一标志以指示所述划分模式是否为四叉树划分。
4.根据权利要求3所述的方法,其特征在于,所述第一标志为qt_split_cu_flag。
5.一种视频译码设备,其特征在于,包括:
处理器和与所述处理器耦合的发送器,其中,所述处理器和发送器用于执行根据权利要求1至4中任一项所述的方法。
6.一种非瞬时性计算机可读介质,其特征在于,包括供视频译码设备使用的计算机程序产品,其中,所述计算机程序产品包括存储在所述非瞬时性计算机可读介质中的计算机可执行指令,当处理器执行所述计算机可执行指令时,所述视频译码设备执行根据权利要求1至4中任一项所述的方法。
7.一种编码器,其特征在于,包括:
分割模块,用于对图像进行分割以获取具有至少一个编码树节点的至少一个编码树节点;
划分模式应用模块,用于在所述编码树节点的高度为64且所述编码树节点的宽度为128的情况下,将所述竖直二叉树划分应用于所述编码树节点以获取一个或多个编码单元(coding unit,CU);
编码模块,用于将所述CU编码到码流中。
8.根据权利要求7所述的编码器,其特征在于,所述编码器还用于执行根据权利要求1至4中任一项所述的方法。
9.一种在解码器中实现的方法,其特征在于,所述方法包括:
所述解码器的处理器对图像进行分割以获取具有至少一个编码树节点的至少一个编码树节点;
在所述编码树节点的高度为64且所述编码树节点的宽度为128的情况下,所述处理器将竖直二叉树划分应用于所述编码树节点以获取一个或多个编码单元(coding unit,CU);
所述处理器根据所述码流对所述CU进行解码以生成图像。
10.根据权利要求9所述的方法,其特征在于,在所述编码树节点的高度为64且所述编码树节点的宽度为128的情况下,三叉树划分和水平二叉树划分不被允许。
11.根据权利要求9所述的方法,其特征在于,解析所述码流以确定所述编码树节点的所述划分模式包括:解析第一标志以确定所述划分模式是否为四叉树划分。
12.根据权利要求11所述的方法,其特征在于,所述第一标志为qt_split_cu_flag。
13.一种视频译码设备,其特征在于,包括:
处理器和与所述处理器耦合的接收器,其中,所述处理器和接收器用于执行根据权利要求9至12中任一项所述的方法。
14.一种非瞬时性计算机可读介质,其特征在于,包括供视频译码设备使用的计算机程序产品,其中,所述计算机程序产品包括存储在所述非瞬时性计算机可读介质中的计算机可执行指令,当处理器执行所述计算机可执行指令时,所述视频译码设备执行根据权利要求9至12中任一项所述的方法。
15.一种解码器,其特征在于,包括:
分割模块,用于对所述图像数据进行分割以创建具有至少一个编码树节点的至少一个编码树单元(coding tree unit,CTU);
划分模式应用模块,用于在所述编码树节点的高度为64且所述编码树节点的宽度为128的情况下,将竖直二叉树划分应用于所述编码树节点以获取一个或多个编码单元(coding unit,CU);
解码模块,用于根据所述码流对所述CU进行解码以生成图像。
16.根据权利要求15所述的解码器,其特征在于,所述解码器还用于执行根据权利要求9至12中任一项所述的方法。
CN202111340802.3A 2018-07-17 2019-07-01 一种支持受约束编码树划分的编解码方法及装置 Active CN114205629B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862699489P 2018-07-17 2018-07-17
US62/699,489 2018-07-17
PCT/US2019/040174 WO2020018267A1 (en) 2018-07-17 2019-07-01 Constrained coding tree for video coding
CN201980048085.1A CN112470471A (zh) 2018-07-17 2019-07-01 用于视频译码的受约束编码树

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201980048085.1A Division CN112470471A (zh) 2018-07-17 2019-07-01 用于视频译码的受约束编码树

Publications (2)

Publication Number Publication Date
CN114205629A true CN114205629A (zh) 2022-03-18
CN114205629B CN114205629B (zh) 2022-11-25

Family

ID=69164566

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202111340802.3A Active CN114205629B (zh) 2018-07-17 2019-07-01 一种支持受约束编码树划分的编解码方法及装置
CN201980048085.1A Pending CN112470471A (zh) 2018-07-17 2019-07-01 用于视频译码的受约束编码树

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201980048085.1A Pending CN112470471A (zh) 2018-07-17 2019-07-01 用于视频译码的受约束编码树

Country Status (8)

Country Link
US (2) US20210136423A1 (zh)
JP (1) JP2021532643A (zh)
KR (1) KR102597837B1 (zh)
CN (2) CN114205629B (zh)
AU (1) AU2019308493B2 (zh)
BR (1) BR112021000817A2 (zh)
MX (1) MX2021000648A (zh)
WO (1) WO2020018267A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11700370B2 (en) * 2018-08-28 2023-07-11 Samsung Electronics Co., Ltd. Video encoding method and encoding device, and video decoding method and decoding device considering hardware design
KR20220065758A (ko) 2019-09-20 2022-05-20 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 코딩 블록의 스케일링 프로세스

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017157249A1 (en) * 2016-03-16 2017-09-21 Mediatek Inc. Method and apparatus of video data processing with restricted block size in video coding
WO2017203930A1 (en) * 2016-05-27 2017-11-30 Sharp Kabushiki Kaisha Systems and methods for varying quantization parameters
WO2018030599A1 (ko) * 2016-08-08 2018-02-15 엘지전자(주) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101752418B1 (ko) 2010-04-09 2017-06-29 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US9807401B2 (en) * 2011-11-01 2017-10-31 Qualcomm Incorporated Transform unit partitioning for chroma components in video coding
AU2012232992A1 (en) * 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
US10448056B2 (en) 2016-07-15 2019-10-15 Qualcomm Incorporated Signaling of quantization information in non-quadtree-only partitioned video coding
US10735730B2 (en) * 2018-03-07 2020-08-04 Tencent America LLC Flexible tree structure
WO2019194463A1 (ko) * 2018-04-01 2019-10-10 엘지전자 주식회사 영상의 처리 방법 및 이를 위한 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017157249A1 (en) * 2016-03-16 2017-09-21 Mediatek Inc. Method and apparatus of video data processing with restricted block size in video coding
WO2017203930A1 (en) * 2016-05-27 2017-11-30 Sharp Kabushiki Kaisha Systems and methods for varying quantization parameters
WO2018030599A1 (ko) * 2016-08-08 2018-02-15 엘지전자(주) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JACKIE MA 等: "Summary report for CE1: Partitioning,JVET-K0021", 《JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 11TH MEETING》, 12 July 2018 (2018-07-12) *

Also Published As

Publication number Publication date
BR112021000817A2 (pt) 2021-04-13
JP2021532643A (ja) 2021-11-25
AU2019308493A1 (en) 2021-02-18
WO2020018267A1 (en) 2020-01-23
CN112470471A (zh) 2021-03-09
US20210136423A1 (en) 2021-05-06
US20230239518A1 (en) 2023-07-27
KR102597837B1 (ko) 2023-11-02
AU2019308493B2 (en) 2023-04-20
KR20210029266A (ko) 2021-03-15
MX2021000648A (es) 2021-06-23
CN114205629B (zh) 2022-11-25

Similar Documents

Publication Publication Date Title
KR102645509B1 (ko) 다중 레퍼런스 라인을 이용한 인트라 예측
US11528506B2 (en) Intra-prediction using a cross-component linear model in video coding
KR102410200B1 (ko) 루마 및 크로마 블록 파티셔닝
US11606571B2 (en) Spatial varying transform for video coding
WO2019201232A1 (en) Intra-prediction using cross-component linear model
US20230239518A1 (en) Constrained Coding Tree for Video Coding
CN113273196A (zh) 视频译码中的分块组指示
CN115665410A (zh) 视频译码中用于光栅扫描分块组和矩形分块组的分块组分配
CN111971958B (zh) 视频编码中的块分割方法和设备
JP7485803B2 (ja) ルマおよびクロマブロックパーティショニング

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
GR01 Patent grant
GR01 Patent grant