CN106576167A - 子块调色板模式 - Google Patents

子块调色板模式 Download PDF

Info

Publication number
CN106576167A
CN106576167A CN201580039301.8A CN201580039301A CN106576167A CN 106576167 A CN106576167 A CN 106576167A CN 201580039301 A CN201580039301 A CN 201580039301A CN 106576167 A CN106576167 A CN 106576167A
Authority
CN
China
Prior art keywords
block
sub
pixel
palette
video
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
CN201580039301.8A
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN106576167A publication Critical patent/CN106576167A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/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/11Selection of coding mode or of prediction mode among a plurality of spatial 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/182Methods 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 pixel
    • 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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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/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/93Run-length coding
    • 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/94Vector quantisation

Landscapes

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

Abstract

视频数据可包括一或多个块,每一块与块调色板相关联,所述块调色板包括指定用于所述块中的像素值的一或多个调色板条目。将块进一步分成多个子块。基于像素值在所述块和子块内的分布,自适应地为所述块选择子块扫描次序,且为所述子块选择像素扫描次序。子块可与子块调色板相关联,从而指定指向所述块调色板的调色板条目的指针。可基于相邻子块的像素值来编码一些子块。

Description

子块调色板模式
以引用的方式并入优先权申请案
本申请案主张2014年7月24日申请的第62/028,652号美国临时申请案的优先权和权益,所述美国临时申请案特此以全文引用的方式并入。在37CFR 1.57下,针对其的外国或本国优先权要求在与本申请案一起提交的申请数据表中被识别出的任何和所有申请案通过引用结合在此。
技术领域
本发明涉及视频译码的领域。更明确地说,在译码视频数据时使用调色板来为像素值数据编索引是适用的。
背景技术
数字视频能力可并入到各种各样的装置中,包括数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、视频电话会议装置及其类似物。数字视频装置实施视频压缩技术,例如描述于以下各项中的那些技术:由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高级视频译码(AVC)定义的标准、高效率视频译码(HEVC)标准,以及此些标准的扩展。视频装置可通过实施此些视频译码技术来更高效地发射、接收、编码、解码和/或存储数字视频信息。
视频数据可包括具有指示与所述像素相关联的色彩的像素值的像素。像素值可含有一个色彩分量(例如亮度值)、两个分量(例如两个色度值)或三个色彩分量的三元组(例如RGB色彩分量、YUV色彩分量和/或类似物)。为了减小经编码视频位流的位速率,可使用调色板来为视频数据中存在的像素值编索引。
发明内容
本发明的系统、方法和装置各自具有若干创新方面,其中没有单个方面单独负责本文所揭示的合乎需要的属性。在不限制所附权利要求书的范围的情况下,本文描述某些特征。
在附图和以下描述中陈述本说明书中描述的标的物的一或多个实施方案的细节。其它特征、方面和优点将从所述描述、图式和所附权利要求书而变得显而易见。应注意,以下各图的相对尺寸可能未按比例绘制。
根据本发明的一或多个方面,提供一种用于编码视频数据的方法。所述方法可包括接收包括一或多个块的视频数据,与调色板相关联的每一块包括指定用于所述调色板的相关联块中的像素值的一或多个调色板条目。对于所述一或多个块中的块,所述方法可进一步包括:将所述块划分成多个子块,每一子块包括所述块内的像素阵列;以及至少部分地基于所述块内的像素值的分布,为所述块的子块选择子块扫描次序,其指定将编码所述多个子块的次序。对于所述多个子块中的第一子块,所述方法可进一步包括:至少部分地基于所述第一子块内的像素值的分布,为第一子块选择像素扫描次序,其指定将编码第一子块的像素的次序;以及使用选定子块扫描次序来编码所述块,其中第一子块是使用其选定像素扫描次序来编码,其中使用对应于所述调色板的调色板条目的索引值来编码第一子块的像素的至少一部分。
在一些实施例中,所述第一子块可包括4×4个像素的阵列。在一些实施例中,像素值可包括色彩分量值。
在一些实施例中,为第一子块选择像素扫描次序可包括:识别多个潜在像素扫描次序;评估所述多个潜在像素扫描次序中的每一者的成本,其中如果所述多个潜在像素扫描次序中的潜在像素扫描次序用于第一子块,那么所述潜在像素扫描次序的成本指示将与第一子块相关联的位流长度;以及选择具有最低成本的潜在像素扫描次序。
在一些实施例中,所述多个潜在像素扫描次序可包括以下各项中的至少一者:水平扫描次序、垂直扫描次序、水平遍历扫描次序和垂直遍历扫描次序。
在一些实施例中,所述方法可进一步包括使所述第一子块与子块调色板关联,其中所述子块调色板参考对应于用于所述第一子块的像素中的像素值的调色板条目的子集。所述子块调色板可包括多个条目,每一条目包括指向调色板的对应条目的指针。
在一些实施例中,第一子块中的像素被称为转义像素,指示第一子块的像素具有不对应于与子块调色板相关联的像素值的像素值。在编码所述第一子块的不表示为转义像素的像素之后,可编码与所述转义像素相关联的像素值。
在一些实施例中,可使用游程长度译码来编码第一子块,其中至少部分地基于对应于第一子块中的像素的数目的游程长度上限来截短游程长度值。
在一些实施例中,所述方法可进一步包括:对于所述多个子块中的第二子块,其中所述第二子块与所述第一子块相邻,至少部分地基于所述第一子块的像素扫描次序,确定所述第二子块的像素扫描次序。
本发明的另一方面提供一种用于编码视频数据的方法。所述方法可包括:接收包括一或多个块的视频数据,与调色板相关联的每一块包括一或多个调色板条目,其指定用于所述调色板的相关联块中的像素值,且对于所述一或多个块中的块:将所述块划分成多个子块,每一子块包括所述块内的像素阵列,且对于所述多个子块中的第一子块:(i)确定相邻子块中的指定像素的像素值,(ii)确定所述第一子块的像素是否具有与相邻子块的指定像素相同的像素值,和(iii)响应于确定所述第一子块的像素具有与相邻子块的指定像素相同的像素值,发信号通知指示所述第一子块的像素的旗标具有与指定像素相同的像素值,其中确定所述指定像素的像素值包括确定所述指定像素的索引值,其中所述索引值对应于所述调色板的调色板条目。
在一些实施例中,所述相邻子块包括所述第一子块左侧的子块,或高于第一子块上方的子块。所述指定像素可包括所述相邻子块的最左列的顶部像素,或所述相邻子块的底部行的最左像素。
在一些实施例中,如果发信号通知所述旗标,那么不编码所述第一子块的像素的像素值。在一些实施例中,可响应于不是第一子块的所有像素均具有与指定像素相同的像素值的确定,不发信号通知所述旗标。
在一些实施例中,如果不发信号通知所述旗标,所述方法可进一步包括使所述第一子块与子块调色板关联,所述子块调色板指示所述调色板的对应于用于所述子块的像素的像素值的条目的子集。所述子块调色板可包括多个条目,每一条目包括指向调色板的对应条目的指针。在一些实施例中,第一子块中的像素可为具有不对应于与子块调色板相关联的像素值的像素值的转义像素,且其中在编码第一子块的不表示为转义像素的像素之后,编码与所述转义像素相关联的像素值。可使用游程长度译码来编码所述子块,其中至少部分地基于对应于所述子块中的像素的数目的游程长度上限来截短游程长度值。
本发明的另一方面提供一种视频编码器。所述视频编码器可包括经配置以存储视频数据的存储器,以及与所述存储器通信的处理器。在一些实施例中,所述处理器可经配置以:接收包括一或多个块的视频数据,与调色板相关联的每一块包括指定用于所述调色板的相关联块中的像素值的一或多个调色板条目;以及对于所述一或多个块中的块,将所述块划分成多个子块,每一子块包括所述块内的像素阵列。另外,所述处理器可经配置以:至少部分地基于所述块内的像素值的分布,为所述块的子块选择子块扫描次序,其指定将编码所述多个子块的次序;且对于所述多个子块中的第一子块,至少部分地基于所述第一子块内的像素值的分布,为所述第一子块选择像素扫描次序,其指定将编码所述第一子块的像素的次序。所述处理器可进一步经配置以:使用选定子块扫描次序来编码所述块,其中所述第一子块是使用其选定像素扫描次序来编码,其中使用对应于所述调色板的调色板条目的索引值来编码所述第一子块的像素的至少一部分。
在一些实施例中,所述第一子块包括4×4个像素的阵列。所述像素值可包括色彩分量值。
在一些实施例中,所述处理器通过以下步骤来为第一子块选择像素扫描次序:识别多个潜在像素扫描次序;评估所述多个潜在像素扫描次序中的每一者的成本,其中如果所述多个潜在像素扫描次序中的潜在像素扫描次序用于第一子块,那么所述潜在像素扫描次序的成本指示将与第一子块相关联的位流长度;以及选择具有最低成本的潜在像素扫描次序。所述多个潜在像素扫描次序可包括以下各项中的至少一者:水平扫描次序、垂直扫描次序、水平遍历扫描次序和垂直遍历扫描次序。
在一些实施例中,所述处理器进一步经配置以使所述第一子块与子块调色板关联,所述子块调色板参考对应于用于所述第一子块的像素中的像素值的调色板条目的子集。所述子块调色板可包括多个条目,每一条目包括指向调色板的对应条目的指针。在一些实施例中,所述第一子块中的像素可表示转义像素,其指示第一子块的像素具有不对应于与子块调色板相关联的像素值的像素值,且其中在编码所述第一子块的不表示为转义像素的像素之后,编码与所述转义像素相关联的像素值。
在一些实施例中,可使用游程长度译码来编码第一子块,其中至少部分地基于对应于所述第一子块中的像素的数目的游程长度上限来截短游程长度值。
在一些实施例中,所述处理器可进一步经配置以:对于所述多个子块中的第二子块,其中所述第二子块与所述第一子块相邻,至少部分地基于所述第一子块的像素扫描次序,确定所述第二子块的像素扫描次序。
本发明的另一方面提供一种视频编码器。所述视频编码器可包括经配置以存储视频数据的存储器,以及与所述存储器通信的处理器。在一些实施例中,所述处理器可经配置以接收包括一或多个块的视频数据,与调色板相关联的每一块包括指定用于所述调色板的相关联块中的像素值的一或多个调色板条目。对于所述一或多个块中的块,所述处理器可进一步将所述块划分成多个子块,每一子块包括所述块内的像素阵列,且对于所述多个子块中的第一子块:(i)确定相邻子块中的指定像素的像素值,(ii)确定所述第一子块的像素是否具有与相邻子块的指定像素相同的像素值,和(iii)响应于所述第一子块的所述像素具有与相邻子块的指定像素相同的像素值的确定,发信号通知指示所述第一子块的像素具有与指定像素相同的像素值的旗标,其中确定所述指定像素的像素值包括确定所述指定像素的索引值,其中所述索引值对应于所述调色板的调色板条目。
在一些实施例中,所述相邻子块包括所述第一子块左侧的子块,或高于第一子块上方的子块。所述指定像素可包括所述相邻子块的最左列的顶部像素,或所述相邻子块的底部行的最左像素。
在一些实施例中,如果发信号通知所述旗标,那么不编码所述第一子块的像素的像素值。
在一些实施例中,所述处理器可经配置以响应于不是所述第一子块的所有像素均具有与所述指定像素相同的像素值的确定,而不发信号通知所述旗标。如果不发信号通知所述旗标,所述处理器可使所述第一子块与子块调色板关联,所述子块调色板指示调色板的对应于用于所述子块的像素中的像素值的条目的子集。所述子块调色板可包括多个条目,每一条目包括指向调色板的对应条目的指针。
在一些实施例中,所述多个子块中的子块中的像素可为转义像素,其中所述转义像素是所述子块的具有并不对应于与子块调色板相关联的像素值的像素值的像素。在编码所述第一子块的不表示为转义像素的像素之后,可编码与所述转义像素相关联的像素值。
在一些实施例中,如果不发信号通知所述旗标,那么使用游程长度译码来编码所述子块,其中至少部分地基于对应于所述子块中的像素的数目的游程长度上限来截短游程长度值。
附图说明
图1A是说明可利用根据本发明中描述的方面的技术的实例视频编码和解码系统的框图。
图1B是说明可执行根据本发明中描述的方面的技术的另一实例视频编码和解码系统的框图。
图2A是说明可实施根据本发明中所描述的方面的技术的视频编码器的实例的框图。
图2B是说明可实施根据本发明中描述的方面的技术的视频编码器的实例的框图。
图3A是说明可实施根据本发明中所描述的方面的技术的视频解码器的实例的框图。
图3B是说明可实施根据本发明中描述的方面的技术的视频解码器的实例的框图。
图4说明根据一些实施例的可与块一起使用的调色板。
图5说明根据一些实施例的展现基于强块的图案的块的一部分。
图6A和6B说明根据一些实施例的可用于编码子块的不同子块扫描次序。
图7A和7B说明根据一些实施例的可与不同像素扫描次序相关联的两个不同子块。
图8说明根据一些实施例的用于使用自适应扫描次序来编码视频数据块的过程的流程图。
图9说明根据一些实施例的具有与相邻子块的像素相同的单个像素值的子块。
图10说明根据一些实施例的实施子块像素值预测的流程图。
图11说明根据一些实施例的块调色板和子块调色板。
图12说明根据一些实施例的用于实施子块调色板的过程的流程图。
图13说明根据一些实施例的对应于块的经编码视频数据位流的结构。
具体实施方式
一般来说,本发明涉及在例如高效率视频译码(HEVC)等高级视频编解码器的上下文中使用调色板和子块。更具体地说,本发明涉及用于通过在视频译码的上下文中使用调色板和子块来进行改进的位速率译码的系统和方法。
可在可缩放视频译码的上下文中实施一些实施例。可缩放视频译码(SVC)是指其中使用基础层(BL)(有时被称作参考层(RL))和一或多个可缩放增强层(EL)的视频译码。在可缩放视频译码中,所述BL可运载具有基础质量等级的视频数据。一或多个EL可运载额外的视频数据以支持(例如)更高的空间、时间和/或信噪比(SNR)水平。EL可相对于先前经编码的层而定义。举例来说,底层可充当BL,而顶层可充当EL。中间层可充当EL或RL,或两者。举例来说,中间层(例如既不是最低层也不是最高层的层)可为中间层下方的层的EL,例如BL或任何介入EL,且同时充当中间层上方的一或多个EL的RL。类似地,在HEVC标准的多视图或3D扩展中,可存在多个视图,且可利用一个视图的信息对另一视图的信息(例如,运动估计、运动向量预测和/或其它冗余)进行译码(例如,编码或解码)。
在以下描述中,描述与某些实施例有关的H.264/AVC技术;还论述HEVC标准和相关技术。虽然本文中在HEVC和/或H.264标准和情况下描述某些实施例,但所属领域的一般技术人员可了解,本文中揭示的系统和方法可适用于任何合适的视频译码标准。举例来说,本文中所揭示的实施例可适用于以下标准中的一或多者(例如,包括由国际电信联盟电信标准化部门[ITU-T]视频译码专家组[VCEG]或国际标准化组织/国际电工委员会[ISO/IEC]运动图像专家组[MPEG]开发的标准):ITU-T H.261、ISO/IEC MPEG-1视觉、ITU-T H.262或ISO/IEC MPEG-2视觉、ITU-T H.263、ISO/IEC MPEG-4视觉和ITU-T H.264(还称为ISO/IECMPEG-4AVC),包括其可缩放视频译码(SVC)和多视图视频译码(MVC)扩展。
在许多方面,HEVC通常遵循先前视频译码标准的框架。HEVC中预测的单元不同于特定前一视频译码标准中预测的单元(例如,宏块)。事实上,在HEVC中不存在如在某些先前视频译码标准中所理解的宏块的概念。宏块由基于四叉树方案的分层结构替换,所述分层结构可提供高灵活性和其它可能益处。举例来说,在HEVC方案内,定义三个类型的块,例如译码单元(CU)、预测单元(PU)和变换单元(TU)。CU可指区分裂的基本单元。可将CU视为类似于宏块的概念,但HEVC不限制CU的最大大小,且可允许递归分裂成四个大小相等的CU以改进内容适应性。PU可被认为是帧间/帧内预测的基本单元,且单个PU可含有多个任意形状分区以有效地译码不规则图像样式。TU可认为是变换的基本单元。可独立于PU来定义TU;然而,TU的大小可限于TU所属的CU的大小。此块结构分离为三个不同概念可允许根据单元的相应作用来优化每一单元,这可得到改善的译码效率。
仅出于说明的目的,通过仅包括视频数据的两层(例如,较低层,例如BL;和较高层,例如EL)的实例来描述本文中所揭示的某些实施例。视频数据的“层”可通常指具有至少一个共同特性(例如,视图、帧速率、分辨率或类似者)的图片序列。举例来说,层可包含与多视图视频数据的特定视图(例如,透视图)相关联的视频数据。作为另一实例,层可包含与可缩放视频数据的特定层相关联的视频数据。因此,本发明可互换地参考视频数据的层和视图。举例来说,视频数据的视图可被称作视频数据的层,且视频数据的层可被称作视频数据的视图。此外,多层编解码器(也称为多层视频译码器或多层编码器-解码器)可共同指多视图编解码器或可缩放编解码器(例如,经配置以使用MV-HEVC、3D-HEVC、SHVC或另一多层译码技术编码和/或解码视频数据的编解码器)。视频编码和视频解码可通常被称作视频译码。应理解,这些实例可适用于包含多个BL、RL和/或EL的配置。另外,为了易于解释,参考某些实施例,以下揭示内容包含术语“帧”或“块”。然而,这些术语无意具有限制性。举例来说,下文描述的技术可结合任何合适的视频单元(例如,块(例如,CU、PU、TU、宏块等)、切片、帧等)一起使用。
视频译码标准
例如视频图像、TV图像、静态图像或由录像机或计算机产生的图像等的数字图像可由布置成水平和垂直线的像素或样本构成。单个图像中的像素的数目通常有数万个。每一像素通常含有亮度和色度信息。在无压缩的情况下,将从图像编码器传达到图像解码器的信息的绝对量将使实时图像传输变得不可能。为了减少待发射的信息的量,已开发出例如JPEG、MPEG和H.263标准等若干不同压缩方法。
视频译码标准包含ITU-T H.261、ISO/IEC MPEG-1视觉、ITU-T H.262或ISO/IECMPEG-2视觉、ITU-T H.263、ISO/IEC MPEG-4视觉和ITU-T H.264(也被称为ISO/IEC MPEG-4AVC),包含其可缩放视频译码(SVC)和多视图视频译码(MVC)扩展。
另外,视频译码标准(即,HEVC)正由ITU-T VCEG与ISO/IEC MPEG的视频译码联合合作小组(JCT-VC)开发。对HEVC草案10的完全引用是布洛斯(Bross)等人的文献JCTVC-L1003,“高效率视频译码(HEVC)文字规范草案10(High Efficiency Video Coding(HEVC)Text Specification Draft 10)”,(ITU-T SG16 WP3与ISO/IEC JTC1/SC29/WG11的视频译码联合合作小组(JCT-VC),第12次会议:瑞士日内瓦,2013年1月14日到2013年1月23日)。对HEVC的多视图扩展(即,MV-HEVC)以及对HEVC的可缩放扩展(名为SHVC)也正分别由JCT-3V(3D视频译码扩展开发ITU-T/ISO/IEC联合合作小组)和JCT-VC开发。
视频译码系统
下文参考附图更充分地描述新颖系统、设备和方法的各个方面。然而,本发明可以许多不同形式来体现,且不应将其解释为限于贯穿本发明所呈现的任何特定结构或功能。相反地,提供这些方面以使得本发明将透彻且完整,并且将向所属领域的技术人员充分传达本发明的范围。基于本文中的教示,所属领域的技术人员应了解,本发明的范围既定涵盖无论是独立于本发明的任何其它方面而实施还是与之组合而实施的本文中所揭示的新颖系统、设备和方法的任何方面。举例来说,可使用本文中所陈述的任何数目个方面来实施设备或实践方法。另外,本发明的范围既定涵盖使用除本文中所陈述的本发明的各种方面之外的或不同于本文中所陈述的本发明的各种方面的其它结构、功能性或结构与功能性来实践的此设备或方法。应理解,可通过权利要求的一或多个要素来体现本文中所揭示的任何方面。
尽管本文描述了特定方面,但这些方面的许多变化和排列属于本发明的范围内。尽管提到了优选方面的一些益处和优点,但本发明的范围无意限于特定益处、用途或目标。而是,本发明的方面既定广泛地适用于不同无线技术、系统配置、网络和发射协议,其中的一些是借助于实例而在图中以及在优选方面的以下描述中说明。具体实施方式和图式仅说明本发明,而不是限制由所附权利要求书和其等效物界定的本发明的范围。
附图说明若干实例。由附图中的参考标号指示的元件对应于在以下描述中由相同参考标号指示的元件。在本发明中,名称以序数词(例如,“第一”、“第二”、“第三”等)开始的元件未必暗示所述元件具有特定次序。而是,此些序数词仅用于指代相同或类似类型的不同元件。
图1A是说明可利用根据本发明中所描述的方面的技术的实例视频译码系统10的框图。如本文中所描述地使用,术语“视频译码器”一般指代视频编码器和视频解码器两者。在本发明中,术语“视频译码”或“译码”可一般地指代视频编码和视频解码。除了视频编码器和视频解码器外,本申请案中描述的方面可扩展到其它相关装置,例如,转码器(例如,可解码位流且重新编码另一位流的装置)和中间框(例如,可修改、变换和/或另外操纵位流的装置)。
如图1A中所示,视频译码系统10包含源装置12,其产生将在稍后时间由目的地装置14解码的经编码视频数据。在图1A的实例中,源装置12和目的地装置14在单独的装置上,具体来说,源装置12是源装置的部分,且目的地装置14是目的地装置的部分。然而,应注意,源装置12和目的地装置14可在同一装置的部分上,如图1B的实例中所示。
再次参考图1A,源装置12和目的地装置14可分别包括各种装置中的任一者,包桌上型计算机、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话的电话手持机、所谓的“智能”板、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流装置或其类似者。在各种实施例中,源装置12和目的地装置14可经装备以用于无线通信。
目的地装置14可经由链路16接收待解码的经编码视频数据。链路16可包括能够将经编码视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在图1A的实例中,链路16可包括使源装置12能够实时将经编码视频数据直接发射到目的地装置14的通信媒体。可根据通信标准(例如,无线通信协议)调制经编码的视频数据,并将其发射到目的地装置14。通信媒体可包括任何无线或有线通信媒体,例如射频(RF)频谱或一或多个物理传输线。通信媒体可形成基于分组的网络(例如,局域网、广域网或全球网络,例如因特网)的部分。通信媒体可包含路由器、交换机、基站或可用于促进从源装置12到目的地装置14的通信的任一其它设备。
或者,可将经编码数据从输出接口22输出到任选的存储装置31。类似地,可由(例如)目的地装置14的输入接口28从存储装置31存取经编码数据。存储装置31可包括多种分布式或本地存取数据存储媒体中的任一者,例如硬盘驱动器、快闪存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储媒体。在另一实例中,存储装置31可对应于文件服务器或可保持源装置12产生的经编码视频的另一中间存储装置。目的地装置14可经由流式传输或下载从存储装置31存取所存储的视频数据。文件服务器可为能够存储经编码视频数据并将经编码视频数据发射到目的地装置14的任何类型的服务器。实例文件服务器包含网络服务器(例如,用于网站)、文件传输协议(FTP)服务器、网络附接存储(NAS)装置,或本地磁盘驱动器。目的地装置14可通过任何标准数据连接(包含因特网连接)来存取经编码的视频数据。这可包含无线信道(例如无线局域网[WLAN]连接)、有线连接(例如数字订户线(DSL)、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码视频数据的两者的组合。经编码视频数据从存储装置31的发射可为流式传输发射、下载发射或两者的组合。
本发明的技术不限于无线应用或设置。所述技术可应用于支持多种多媒体应用中的任一者的视频译码,例如空中电视广播、有线电视传输、卫星电视传输、例如经由因特网的流视频传输(例如,经由超文本传送协议(HTTP)的动态自适应流式传输等)、对存储在数据存储媒体上的数字视频的编码、对存储在数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,视频译码系统10可经配置以支持单向或双向视频传输以支持例如视频流式传输、视频重放、视频广播和/或视频电话等应用。
在图1A的实例中,源装置12包含视频源18、视频编码器20和输出接口22。在一些情况下,输出接口22可包括调制器/解调器(调制解调器)和/或发射器。在源装置12中,视频源18可包括来源,例如视频捕获装置(例如,摄像机)、含有先前所捕获的视频的视频存档、用于从视频内容提供者接收视频的视频馈入接口和/或用于产生计算机图形数据以作为源视频的计算机图形系统,或此类源的组合。作为一个实例,如果视频源18是摄像机,那么源装置12和目的地装置14可形成所谓的相机电话或视频电话,如图1B的实例中所说明。然而,本发明中所描述的技术一般来说可适用于视频译码,且可应用于无线和/或有线应用。
所捕获、预捕获或计算机产生的视频可由视频编码器20编码。经编码视频数据可经由源装置12的输出接口22直接发射到目的地装置14。还可(或替代地)将经编码视频数据存储到存储装置31上以用于稍后由目的地装置14或其它装置存取以用于解码和/或重放。图1A和1B中说明的视频编码器20可包括图2A中说明的视频编码器20、图2B中说明的视频编码器23或本文中描述的任一其它视频编码器。
在图1A的实例中,目的地装置14包含输入接口28、视频解码器30和显示装置32。在一些情况下,输入接口28可包括接收器和/或调制解调器。目的地装置14的输入接口28可经由链路16和/或从存储装置31接收经编码视频数据。经由链路16传送或在存储装置31上提供的经编码视频数据可包含由视频编码器20产生的多种语法元素,以供例如视频解码器30等视频解码器用于解码视频数据。此类语法元素可与在通信媒体上发射、存储于存储媒体上或存储于文件服务器上的经编码视频数据包含在一起。图1A和1B中说明的视频解码器30可包含图3A中说明的视频解码器30、图3B中说明的视频解码器33或本文中描述的任一其它视频解码器。
显示装置32可与目的地装置14集成或者在目的地装置14外部。在一些实例中,目的地装置14可包含集成显示装置,且还经配置以与外部显示装置介接。在其它实例中,目的地装置14可为显示装置。一般来说,显示器装置32将经解码视频数据显示给用户,且可包括多种显示器装置中的任一者,例如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示器装置。
在相关方面中,图1B示出实例视频编码和解码系统10′,其中源装置12和目的地装置14在装置11上或为其一部分。装置11可为电话手持机,例如“智能”电话或类似者。装置11可包含与源装置12和目的地装置14操作性通信的任选的处理器/控制器装置13。图1B的系统10′及其组件另外类似于图1A的系统10及其组件。
视频编码器20和视频解码器30可根据例如HEVC标准等视频压缩标准来操作,且可符合HEVC测试模型(HM)。或者,视频编码器20和视频解码器30可根据其它专有或行业标准或此类标准的扩展来操作,所述标准例如ITU-T H.264标准,或者被称作MPEG-4第10部分AVC。然而,本发明的技术不限于任何特定译码标准。视频压缩标准的其它实例包含MPEG-2和ITU-T H.263。
尽管图1A和1B的实例中未图示,但视频编码器20和视频解码器30可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器(MUX-DEMUX)单元或其它硬件和软件,以处置共同数据流或单独数据流中的音频和视频两者的编码。在一些实例中,如果适用的话,那么MUX-DEMUX单元可符合ITU H.223多路复用器协议,或例如用户数据报协议(UDP)等其它协议。
视频编码器20和视频解码器30各自可实施为多种合适的编码器和解码器电路中的任一者,例如一个或一个以上微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件固件或其任何组合。当所述技术部分地在软件中实施时,装置可将用于所述软件的指令存储在合适的非暂时性计算机可读媒体中,并使用一或多个处理器在硬件中执行所述指令以执行本发明的技术。视频编码器20和视频解码器30中的每一者可包括在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为相应装置中的组合编码器/解码器(例如,编解码器)的一部分。
视频译码过程
如上文简要提到,视频编码器20编码视频数据。视频数据可包括一或多个图片。图片中的每一者为形成视频的部分的静态图像。在一些情况下,图片可被称作视频“帧”。当视频编码器20对视频数据进行编码时,视频编码器20可产生位流。位流可包含形成视频数据的经译码表示的一连串位。位流可包含经译码图片和相关联的数据。经译码的图片是图片的经译码表示。
为了产生位流,视频编码器20可对视频数据中的每一图片执行编码操作。当视频编码器20对所述图片执行编码操作时,视频编码器20可产生一系列经译码图片和相关联数据。相关联的数据可包含视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、自适应参数集(APS)和其它语法结构。SPS可含有适用于零个或多于零个的图片序列的参数。PPS可含有适用于零或更多图片的参数。APS可含有适用于零个或更多图片的参数。APS中的参数可为比PPS中的参数更可能改变的参数。
为了产生经译码图片,视频编码器20可将图片分割成大小相等的视频块。视频块可为二维样本阵列。视频块中的每一者与树块相关联。在一些情况下,树块可被称作最大译码单元(LCU)。HEVC的树块可广泛类似于例如H.264/AVC等先前标准的宏块。然而,树块不必限于特定大小且可包含一或多个CU。视频编码器20可使用四叉树分割将树块的视频块分割成与CU相关联的视频块(因此名称为“树块”)。
在一些实例中,视频编码器20可将图片分割成多个切片。切片中的每一者可包含整数数目个CU。在一些情况下,一切片包括整数数目个树块。在其它情况下,切片的边界可在树块内。
作为对图片执行编码操作的部分,视频编码器20可对图片的每一切片执行编码操作。当视频编码器20对切片执行编码操作时,视频编码器20可产生与切片相关联的经编码数据。与切片相关联的经编码数据可被称作“经译码切片”。
为了产生经译码切片,视频编码器20可对切片中的每一树块执行编码操作。当视频编码器20对树块执行编码操作时,视频编码器20可产生经译码树块。经译码树块可包括表示树块的经编码版本的数据。
当视频编码器20产生经译码切片时,视频编码器20可根据光栅扫描次序对切片中的树块执行编码操作(例如,编码)。举例来说,视频编码器20可按如下次序来对切片的树块进行编码:跨越切片中的树块的最顶行从左到右进行,接着跨越树块的下一较低行从左到右进行,以此类推,直到视频编码器20已对切片中的树块的每一者进行了编码为止。
作为根据光栅扫描次序编码树块的结果,可已编码在给定树块的上方和左侧的树块,但尚未编码在给定树块的下方和右侧的树块。因此,当对给定树块进行编码时,视频编码器20可能够存取通过对给定树块的上方和左侧的树块进行编码而产生的信息。然而,当编码给定树块时,视频编码器20可能不能够存取通过编码在给定树块的下方和右侧的树块而产生的信息。
为了产生经译码树块,视频编码器20可对树块的视频块递归地执行四分树分割,以将所述视频块划分成逐渐变小的视频块。较小视频块中的每一者可与不同CU相关联。举例来说,视频编码器20可将树块的视频块分割成四个大小相等的子块、将所述子块中的一或多者分割成四个大小相等的子子块(sub-sub-block),以此类推。经分割的CU可为其视频块被分割成与其它CU相关联的视频块的CU。未分割CU可为其视频块未被分割成与其它CU相关联的视频块的CU。
位流中的一或多个语法元素可指示视频编码器20可分割树块的视频块的最大次数。CU的视频块的形状可为正方形。CU的视频块的大小(例如,CU的大小)范围可从8x8像素直到具有最大64x64个像素或更大的树块的视频块的大小(例如,树块的大小)。
视频编码器20可根据z扫描次序对(例如,编码)树块的每一CU执行编码操作。换句话说,视频编码器20可将左上CU、右上CU、左下CU和接着右下CU按此次序编码。当视频编码器20对经分割的CU执行编码操作时,视频编码器20可根据z扫描次序对与经分割的CU的视频块的子块相关联的CU进行编码。换句话说,视频编码器20可对与左上子块相关联的CU、与右上子块相关联的CU、与左下子块相关联的CU,且接着是与右下子块相关联的CU按所述顺序进行编码。
作为根据z扫描次序编码树块的CU的结果,可已编码在给定CU的上方、左上方、右上方、左边的左下方的CU。尚未对给定CU的右下方的CU进行编码。因此,当对给定CU进行编码时,视频编码器20可能够存取通过对与给定CU相邻的一些CU进行编码而产生的信息。然而,当对给定CU进行编码时,视频编码器20可能不能够存取通过对与给定CU相邻的其它CU进行编码而产生的信息。
当视频编码器20对未分割的CU进行编码时,视频编码器20可产生用于所述CU的一或多个预测单元(PU)。CU的PU中的每一者可与CU的视频块内的不同视频块相关联。视频编码器20可产生用于CU的每一PU的经预测视频块。PU的经预测视频块可为样本块。视频编码器20可使用帧内预测或帧间预测来产生用于PU的所预测视频块。
当视频编码器20使用帧内预测来产生PU的经预测视频块时,视频编码器20可基于与PU相关联的图片的经解码样本来产生PU的经预测视频块。如果视频编码器20使用帧内预测来产生CU的PU的经预测视频块,那么CU为经帧内预测的CU。当视频编码器20使用帧间预测来产生PU的经预测视频块时,视频编码器20可基于不同于与PU相关联的图片的一或多个图片的经解码样本来产生所述PU的经预测视频块。如果视频编码器20使用帧间预测来产生CU的PU的所预测视频块,那么所述CU为经帧间预测CU。
此外,当视频编码器20使用帧间预测来产生用于PU的所预测视频块时,视频编码器20可产生用于所述PU的运动信息。PU的运动信息可指示PU的一或多个参考块。PU的每一参考块可为参考图片内的视频块。参考图片可为除与PU相关联的图片以外的图片。在一些情况下,PU的参考块也可被称作PU的“参考样本”。视频编码器20可基于PU的参考块产生所述PU的所预测视频块。
在视频编码器20产生用于CU的一或多个PU的所预测视频块之后,视频编码器20可基于用于CU的所述PU的所预测视频块产生所述CU的残差数据。CU的残差数据可指示用于CU的PU的所预测视频块中的样本与CU的原始视频块之间的差。
此外,作为对未分割的CU执行编码操作的一部分,视频编码器20可对CU的残差数据执行递归四叉树分割以将CU的残差数据分割成与CU的变换单元(TU)相关联的一或多个残差数据块(例如,残差视频块)。CU的每一TU可与不同残差视频块相关联。
视频编码器20可对与TU相关联的残差视频块应用一或多个变换以产生与TU相关联的变换系数块(例如,变换系数的块)。在概念上,变换系数块可为变换系数的二维(2D)矩阵。
在产生变换系数块之后,视频编码器20可对所述变换系数块执行量化过程。量化总体上是指对变换系数进行量化以可能减少用以表示变换系数的数据的量从而提供进一步压缩的过程。量化过程可减少与变换系数中的一些或全部相关联的位深度。举例来说,可在量化期间将n位变换系数向下舍入到m位变换系数,其中n大于m。
视频编码器20可使每一CU与量化参数(QP)值相关联。与CU相关联的QP值可确定视频编码器20如何量化与所述CU相关联的变换系数块。视频编码器20可通过调整与CU相关联的QP值来调整应用于与CU相关联的变换系数块的量化的程度。
在视频编码器20量化变换系数块之后,视频编码器20可产生表示经量化变换系数块中的变换系数的语法元素集。视频编码器20可将例如上下文自适应性二进制算术译码(CABAC)操作等熵编码操作应用于这些语法元素中的一些。也可使用例如上下文自适应可变长度译码(CAVLC)、概率区间分割熵(PIPE)译码或其它二进制算术译码等其它熵译码技术。
由视频编码器20产生的位流可包含一系列网络抽象层(NAL)单元。所述NAL单元中的每一者可为含有NAL单元中的数据类型的指示以及含有数据的字节的语法结构。举例来说,NAL单元可含有表示视频参数集、序列参数集、图片参数集、经译码切片、补充增强信息(SEI)、存取单元分隔符、填充符数据或另一类型的数据的数据。NAL单元中的数据可包含各种语法结构。
视频解码器30可接收由视频编码器20产生的位流。所述位流可包含由视频编码器20编码的视频数据的经译码表示。当视频解码器30接收到位流时,视频解码器30可对所述位流执行剖析操作。当视频解码器30执行剖析操作时,视频解码器30可从所述位流提取语法元素。视频解码器30可基于从位流提取的语法元素来重构视频数据的图片。基于语法元素重构视频数据的过程可与由视频编码器20执行以产生语法元素的过程大体互逆。
在视频解码器30提取与CU相关联的语法元素之后,视频解码器30可基于所述语法元素产生用于CU的PU的经预测视频块。另外,视频解码器30可对与CU的TU相关联的变换系数块进行逆量化。视频解码器30可对变换系数块执行逆变换以重构与CU的TU相关联的残差视频块。在产生经预测视频块且重构残差视频块之后,视频解码器30可基于经预测视频块以残差视频块来重构CU的视频块。以此方式,视频解码器30可基于位流中的语法元素来重构CU的视频块。
视频编码器
图2A是说明可实施根据本发明中所描述的方面的技术的视频编码器的实例的框图。视频编码器20可经配置以处理视频帧的单层(例如针对HEVC)。此外,视频编码器20可经配置以执行本发明的技术中的任一者或全部。作为一个实例,预测处理单元100可经配置以执行本发明中所描述的技术中的任一者或全部。在另一实施例中,视频编码器20包含任选层间预测单元128,所述层间预测单元经配置以执行本发明中描述的技术中的任一者或全部。在其它实施例中,层间预测可由预测处理单元100(例如,帧间预测单元121和/或帧内预测单元126)执行,在此情况下可省略层间预测单元128。然而,本发明的方面不限于此。在一些实例中,本发明中描述的技术可在视频编码器20的各种组件之间共享。在一些实例中,另外或替代地,处理器(未图示)可经配置以执行本发明中描述的技术中的任一者或全部。
出于解释的目的,本发明在HEVC译码的上下文中描述视频编码器20。然而,本发明的技术可适用于其它译码标准或方法。图2A中所描绘的实例是针对单层编解码器。然而,如将关于图2B进一步描述,可复制视频编码器20中的一些或全部以用于多层编码解码器的处理。
视频编码器20可执行视频切片内的视频块的帧内和帧间译码。帧内译码依靠空间预测来减少或去除给定视频帧或图片内的视频的空间冗余。帧间译码依靠时间预测来减少或去除视频序列的邻近帧或图片内的视频中的时间冗余。帧内模式(I模式)可指代若干基于空间的译码模式中的任一者。例如单向预测(P模式)或双向预测(B模式)等帧间模式可指代若干基于时间的译码模式中的任一者。
在图2A的实例中,视频编码器20包含多个功能组件。视频编码器20的功能组件包含预测处理单元100、残差产生单元102、变换处理单元104、量化单元106、逆量化单元108、逆变换单元110、重构单元112、滤波器单元113、经解码图片缓冲器114和熵编码单元116。预测处理单元100包含帧间预测单元121、运动估计单元122、运动补偿单元124、帧内预测单元126和层间预测单元128。在其它实例中,视频编码器20可包含更多、更少或不同功能组件。另外,运动估计单元122与运动补偿单元124可高度集成,但出于解释的目的而在图2A的实例中单独来表示。
视频编码器20可接收视频数据。视频编码器20可从各种来源接收视频数据。举例来说,视频编码器20可从视频源18(例如,图1A或1B中所示)或另一来源接收视频数据。视频数据可表示一系列图片。为了编码视频数据,视频编码器20可对图片中的每一者执行编码操作。作为对图片执行编码操作的一部分,视频编码器20可对图片的每一切片执行编码操作。作为对切片执行编码操作的部分,视频编码器20可对切片中的树块执行编码操作。
作为对树块执行编码操作的部分,预测处理单元100可对树块的视频块执行四叉树分割,以将所述视频块划分成逐渐变小的视频块。较小视频块中的每一者可与不同CU相关联。举例来说,预测处理单元100可将树块的视频块分割成四个相等大小的子块,将所述子块中的一或多者分割成四个相等大小的子子块,等等。
与CU相关联的视频块的大小范围可从8x8个样本至多达最大64x64个像素或更大的树块大小。在本发明中,“N×N”与“N乘N”可互换使用来指代在垂直和水平维度方面的视频块的样本尺寸,例如,16×16个样本或16乘16个样本。一般来说,16x16视频块在垂直方向上具有十六个样本(y=16),且在水平方向上具有十六个样本(x=16)。同样,NxN块一般在垂直方向上具有N个样本,且在水平方向上具有N个样本,其中N表示非负整数值。
此外,作为对树块执行编码操作的部分,预测处理单元100可产生用于所述树块的层级四叉树数据结构。举例来说,树块可对应于四叉树数据结构的根节点。如果预测处理单元100将树块的视频块分割成四个子块,那么根节点在四叉树数据结构中具有四个子节点。所述子节点中的每一者对应于与子块中的一者相关联的CU。如果预测处理单元100将子块中的一者分割成四个子子块,那么对应于与子块相关联的CU的节点可具有四个子节点,其中的每一者对应于与子子块中的一者相关联的CU。
四叉树数据结构的每一节点可含有对应树块或CU的语法数据(例如,语法元素)。举例来说,四叉树中的节点可包括分裂旗标,其指示对应于节点的CU的视频块是否被分割(例如,分裂)成四个子块。用于CU的语法元素可递归地定义,且可取决于所述CU的视频块是否分裂成子块。视频块未被分割的CU可对应于四叉树数据结构中的叶节点。经译码树块可包含基于对应树块的四分树数据结构的数据。
视频编码器20可对树块的每一未分割CU执行编码操作。当视频编码器20对未分割CU执行编码操作时,视频编码器20产生表示未分割CU的经编码表示的数据。
作为对CU执行编码操作的部分,预测处理单元100可在CU的一或多个PU间分割CU的视频块。视频编码器20和视频解码器30可支持各种PU大小。假定特定CU的大小为2Nx2N,视频编码器20和视频解码器30可支持2Nx2N或NxN的PU大小,以及2N×2N、2N×N、N×2N、N×N、2N×nU、nL×2N、nR×2N或类似的对称PU大小的帧间预测。视频编码器20和视频解码器30还可支持用于2NxnU、2NxnD、nLx2N和nRx2N的PU大小的不对称分割。在一些实例中,预测处理单元100可执行几何分割以沿并不按直角与CU的视频块的侧会合的边界来在CU的PU间分割CU的视频块。
帧间预测单元121可对CU的每一PU执行帧间预测。帧间预测可提供时间压缩。为了对PU执行帧间预测,运动估计单元122可产生PU的运动信息。运动补偿单元124可基于运动信息和除与CU相关联的图片(例如,参考图片)以外的图片的经解码样本而产生PU的经预测视频块。在本发明中,由运动补偿单元124产生的经预测视频块可称作经帧间预测视频块。
切片可为I切片、P切片,或B切片。运动估计单元122和运动补偿单元124可取决于PU处于I切片、P切片还是B切片中而对CU的PU执行不同操作。在I切片中,所有PU都经帧内预测。因此,如果PU在I切片中,那么运动估计单元122和运动补偿单元124不对PU执行帧间预测。
如果PU在P切片中,那么含有所述PU的图片与被称作“列表0”的参考图片列表相关联。列表0中的参考图片中的每一者含有可用于其它图片的帧间预测的样本。当运动估计单元122关于P切片中的PU执行运动估计操作时,运动估计单元122可搜索列表0中的参考图片以找出PU的参考块。PU的参考块可为最紧密对应于PU的视频块中的样本的一组样本,例如样本块。运动估计单元122可使用多种度量来确定参考图片中的一组样本对应于PU的视频块中的样本的紧密程度。举例来说,运动估计单元122可通过绝对差总和(SAD)、平方差总和(SSD)或其它差异度量来确定参考图片中的一组样本对应于PU的视频块中的样本的接近程度。
在识别出P切片中的PU的参考块之后,运动估计单元122可产生指示列表0中含有参考块的参考图片的参考索引,以及指示PU与参考块之间的空间位移的运动向量。在各种实例中,运动估计单元122可以不同精确度产生运动向量。举例来说,运动估计单元122可以四分之一样本精确度、八分之一样本精确度或其它分数样本精确度产生运动向量。在分数样本精确度的情况下,参考块值可从参考图片中的整数位置样本值内插。运动估计单元122可将参考索引和运动向量输出为PU的运动信息。运动补偿单元124可基于由PU的运动信息识别的参考块而产生PU的经预测视频块。
如果PU位于B切片中,那么含有PU的图片可与被称作“列表0”和“列表1”的两个参考图片列表相关联。在一些实例中,含有B切片的图片可与为列表0与列表1的组合的列表组合相关联。
此外,如果PU位于B切片中,那么运动估计单元122可对PU执行单向预测或双向预测。当运动估计单元122对PU执行单向预测时,运动估计单元122可搜索列表0或列表1中的参考图片以找出用于所述PU的参考块。运动估计单元122可随后产生指示列表0或列表1中的含有参考块的参考图片的参考索引,以及指示PU与参考块之间的空间位移的运动向量。运动估计单元122可输出参考索引、预测方向指示符和运动向量作为所述PU的运动信息。预测方向指示符可指示参考索引指示列表0还是列表1中的参考图片。运动补偿单元124可基于由PU的运动信息指示的参考块来产生PU的经预测视频块。
当运动估计单元122针对PU执行双向预测时,运动估计单元122可搜索列表0中的参考图片以找到用于所述PU的参考块,且还可搜索列表1中的参考图片以找到用于所述PU的另一参考块。运动估计单元122可随后产生指示列表0和列表1中的含有参考块的参考图片的参考索引,以及指示参考块与PU之间的空间位移的运动向量。运动估计单元122可输出PU的参考索引和运动向量作为PU的运动信息。运动补偿单元124可基于由PU的运动信息指示的参考块而产生PU的经预测视频块。
在一些情况下,运动估计单元122不将PU的运动信息的完整集合输出到熵编码单元116。实际上,运动估计单元122可参考另一PU的运动信息发信号通知PU的运动信息。举例来说,运动估计单元122可确定PU的运动信息足够类似于相邻PU的运动信息。在此实例中,运动估计单元122可在与PU相关联的语法结构中指示一值,所述值向视频解码器30指示PU具有与相邻PU相同的运动信息。在另一实例中,运动估计单元122可在与PU相关联的语法结构中识别相邻PU和运动向量差(MVD)。运动向量差指示PU的运动向量与所指示的相邻PU的运动向量之间的差。视频解码器30可使用所指示的相邻PU的运动向量和运动向量差来确定PU的运动向量。通过在发信号通知第二PU的运动信息时参考第一PU的运动信息,视频编码器20可能够使用较少位来发信号通知第二PU的运动信息。
作为对CU执行编码操作的部分,帧内预测单元126可对CU的PU执行帧内预测。帧内预测可提供空间压缩。当帧内预测单元126对PU执行帧内预测时,帧内预测单元126可基于同一图片中的其它PU的经解码样本来产生用于PU的预测数据。用于PU的预测数据可包含经预测视频块和各种语法元素。帧内预测单元126可对I切片、P切片和B切片中的PU执行帧内预测。
为了对PU执行帧内预测,帧内预测单元126可使用多个帧内预测模式来产生用于PU的预测数据的多个集合。当帧内预测单元126使用帧内预测模式来产生PU的预测数据集合时,帧内预测单元126可在与帧内预测模式相关联的方向和/或梯度上跨越PU的视频块从相邻PU的视频块扩展样本。相邻PU可在所述PU的上方、右上方、左上方或左侧,假定对于PU、CU和树块采用从左到右、从上到下的编码次序。帧内预测单元126可取决于PU的大小而使用各种数目个帧内预测模式,例如33个定向帧内预测模式。
预测处理单元100可从由运动补偿单元124针对PU产生的预测数据或由帧内预测单元126针对PU产生的预测数据当中选择用于PU的预测数据。在一些实例中,预测处理单元100基于预测数据集合的速率/失真度量而选择PU的预测数据。
如果预测处理单元100选择由帧内预测处理单元126产生的预测数据,那么预测处理单元100可发信号通知用以产生用于PU的预测数据的帧内预测模式,例如选定帧内预测模式。预测处理单元100可以各种方式来发信号通知选定帧内预测模式。举例来说,有可能选定帧内预测模式与相邻PU的帧内预测模式相同。换句话说,相邻PU的帧内预测模式可为用于当前PU的最可能模式。因此,预测处理单元100可产生用以指示选定帧内预测模式与相邻PU的帧内预测模式相同的语法元素。
如上文所论述,视频编码器20可包含层间预测单元128。层间预测单元128经配置以使用在可缩放视频译码中可用的一或多个不同层(例如,BL或RL)来预测当前块(例如,EL中的当前块)。此预测可称作层间预测。层间预测单元128利用预测方法来减少层间冗余,进而改进译码效率且减少计算资源要求。层间预测的一些实例可包含层间帧内预测、层间运动预测和层间残差预测。层间帧内预测使用BL中对处于相同位置的块的重构来预测EL中的当前块。层间运动预测使用BL的运动信息来预测EL中的运动。层间残差预测使用BL的残差来预测EL的残差。下文更详细地论述层间预测方案中的每一者。
在预测处理单元100选择用于CU的PU的预测数据之后,残差产生单元102可通过从CU的视频块减去(例如,由减号指示)CU的PU的经预测视频块而产生用于CU的残差数据。CU的残差数据可包含对应于CU的视频块中的样本的不同样本分量的2D残差视频块。举例来说,残差数据可包含对应于CU的PU的经预测视频块中的样本的亮度分量与CU的原始视频块中的样本的亮度分量之间的差的残差视频块。另外,CU的残差数据可包含对应于CU的PU的所预测视频块中的样本的色度分量与CU的原始视频块中的样本的色度分量之间的差的残差视频块。
预测处理单元100可执行四叉树分割以将CU的残差视频块分割成若干子块。每一未经划分的残差视频块可与CU的不同TU相关联。与CU的TU相关联的残差视频块的大小和位置可基于或可不基于与CU的PU相关联的视频块的大小和位置。被称为“残差四叉树”(RQT)的四叉树结构可包含与残差视频块中的每一者相关联的节点。CU的TU可对应于RQT的叶节点。
变换处理单元104可通过将一或多个变换应用于与CU的每一TU相关联的残差视频块而产生用于所述TU的一或多个变换系数块。变换系数块中的每一者可为变换系数的2D矩阵。变换处理单元104可将各种变换应用于与TU相关联的残差视频块。举例来说,变换处理单元104可将离散余弦变换(DCT)、定向变换或概念上类似的变换应用到与TU相关联的残差视频块。
在变换处理单元104产生与TU相关联的变换系数块之后,量化单元106可量化所述变换系数块中的变换系数。量化单元106可基于与CU相关联的QP值而对与CU的TU相关联的变换系数块进行量化。
视频编码器20可以各种方式使QP值与CU相关联。举例来说,视频编码器20可对与CU相关联的树块执行速率失真分析。在速率-失真分析中,视频编码器20可通过对树块执行多次编码操作而产生树块的多个经译码表示。在视频编码器20产生树块的不同经编码表示时,视频编码器20可使不同QP值与CU相关联。当给定QP值与具有最低位速率和失真量度的树块的经译码表示中的CU相关联时,视频编码器20可发信号通知所述给定QP值与CU相关联。
逆量化单元108和逆变换单元110可分别将逆量化和逆变换应用于变换系数块,以从变换系数块重构残差视频块。重构单元112可将经重构的残差视频块添加到来自由预测处理单元100产生的一或多个所预测视频块的对应样本,以产生与TU相关联的经重构视频块。通过以此方式重构CU的每一TU的视频块,视频编码器20可重构CU的视频块。
在重构单元112重构CU的视频块之后,滤波器单元113可执行去块操作以减少与所述CU相关联的视频块中的成块假影。在执行一或多个去块操作之后,滤波器单元113可将CU的经重构视频块存储在经解码图片缓冲器114中。运动估计单元122和运动补偿单元124可使用含有经重构视频块的参考图片来对后续图片的PU执行帧间预测。另外,帧内预测单元126可使用经解码图片缓冲器114中的经重构视频块对位于与CU相同的图片中的其它PU执行帧内预测。
熵编码单元116可从视频编码器20的其它功能组件接收数据。举例来说,熵编码单元116可从量化单元106接收变换系数块,且可从预测处理单元100接收语法元素。当熵编码单元116接收到数据时,熵编码单元116可执行一或多个熵编码操作以产生经熵编码数据。举例来说,视频编码器20可对所述数据执行CAVLC操作、CABAC操作、可变到可变(V2V)长度译码操作、基于语法的上下文自适应二进制算术译码(SBAC)操作、概率区间分割熵(PIPE)译码操作,或另一类型的熵编码操作。熵编码单元116可输出包含经熵编码数据的位流。
作为对数据执行熵编码操作的一部分,熵编码单元116可选择上下文模型。如果熵编码单元116正执行CABAC操作,那么上下文模型可指示特定二进位具有特定值的概率的估计。在CABAC的上下文中,术语“二进位”用以指语法元素的二进制化版本的位。
多层视频编码器
图2B是说明可实施根据本发明中所描述的方面的技术的多层视频编码器23(也被简称为视频编码器23)的实例的框图。视频编码器23可经配置以处理多层视频帧,例如针对SHVC和多视图译码。另外,视频编码器23可经配置以执行本发明的技术中的任一者或全部。
视频编码器23包含视频编码器20A和视频编码器20B,其中的每一者可被配置为视频编码器20,且可执行上文相对于视频编码器20所描述的功能。另外,如再使用参考数字所指示,视频编码器20A和20B可包含系统和子系统中的至少一些作为视频编码器20。虽然将视频编码器23说明为包含两个视频编码器20A和20B,但视频编码器23不受如此限制,且可包含任何数目的视频编码器20层。在一些实施例中,视频编码器23可包括针对存取单元中的每一图片或帧的视频编码器20。举例来说,包含五个图片的存取单元可由包含五个编码器层的视频编码器处理或编码。在一些实施例中,视频编码器23可包括比存取单元中的帧更多的编码器层。在一些此类情况下,当处理一些存取单元时,一些视频编码器层可能不在作用中。
除了视频编码器20A和20B之外,视频编码器23可包含再取样单元90。在一些情况下,再取样单元90可对所接收到的视频帧的BL进行上取样,以例如产生EL。再取样单元90可对与帧的所接收到的BL相关联的特定信息进行上取样,但不对其它信息进行上取样。举例来说,再取样单元90可对BL的空间大小或像素数目进行上取样,但切片的数目或图片次序计数可保持恒定。在一些情况下,再取样单元90可不处理所接收到的视频和/或可为任选的。举例来说,在一些情况下,预测处理单元100可执行上取样。在一些实施例中,再取样单元90经配置以对层进行上取样且重新组织、重新界定、修改或调整一或多个切片,以符合一组切片边界规则和/或光栅扫描规则。尽管主要描述为对BL或存取单元中的较低层进行上取样,但在一些情况下,再取样单元90可对层进行下取样。举例来说,如果在视频的流式传输期间减小带宽,那么可对帧进行下取样而不是上取样。
再取样单元90可经配置以从较低层编码器(例如,视频编码器20A)的经解码图片缓冲器114接收图片或帧(或与图片相关联的图片信息),并对所述图片(或所接收到的图片信息)进行上取样。可接着将此经上取样图片提供到较高层编码器(例如,视频编码器20B)的预测处理单元100,所述较高层编码器经配置以编码与较低层编码器相同的存取单元中的图片。在一些情况下,较高层编码器是从较低层编码器去除的一个层。在其它情况下,在图2B的层0编码器与层1编码器之间可存在一或多个较高层编码器。
在一些情况下,可省略或旁路再取样单元90。在此些情况下,可直接或在至少不提供到再取样单元90的情况下将来自视频编码器20A的经解码图片缓冲器114的图片提供到视频编码器20B的预测处理单元100。举例来说,如果提供到视频编码器20B的视频数据和来自视频编码器20A的经解码图片缓冲器114的参考图片具有相同大小或分辨率,那么可将参考图片提供到视频编码器20B而无任何再取样。
在一些实施例中,视频编码器23使用下取样单元94对将提供到较低层编码器的视频数据进行下取样,之后将所述视频数据提供到视频编码器20A。替代地,下取样单元94可为能够对视频数据上取样或下取样的再取样单元90。在另外其它实施例中,可省略下取样单元94。
如图2B中所说明,视频编码器23可进一步包括多路复用器98或mux。多路复用器98可从视频编码器23输出经组合的位流。通过从视频编码器20A和20B中的每一者取得位流且使在给定时间输出哪一位流进行交替可产生组合位流。虽然在一些情况下,可一次一个位地交替来自两个(或在两个以上视频编码器层的情况下更多)位流的位,但在许多情况下,不同地组合所述位流。举例来说,可通过一次一个块地交替选定位流来产生输出位流。在另一实例中,可通过从视频编码器20A和20B中的每一者输出非1:1比率的块来产生输出位流。举例来说,可针对从视频编码器20A输出的每一块从视频编码器20B输出两个块。在一些实施例中,可预编程来自多路复用器98的输出流。在其它实施例中,多路复用器98可基于从视频编码器23外部的系统(例如从包含源装置12的源装置上的处理器)接收的控制信号来组合来自视频编码器20A、20B的位流。可基于来自视频源18的视频的分辨率或位速率、基于链路16的带宽、基于与用户相关联的预订(例如,付费预订与免费预订),或基于用于确定来自视频编码器23的所要分辨率输出的任何其它因素来产生控制信号。
视频解码器
图3A是说明可实施根据本发明中所描述的方面的技术的视频解码器的实例的框图。视频解码器30可经配置以处理视频帧的单层(例如,针对HEVC)。此外,视频解码器30可经配置以执行本发明的技术中的任一者或全部。作为一个实例,运动补偿单元162和/或帧内预测单元164可经配置以执行本发明中描述的技术中的任一者或全部。在一个实施例中,视频解码器30可任选地包含层间预测单元166,层间预测单元166经配置以执行本发明中所描述的技术中的任一者或全部。在其它实施例中,层间预测可由预测处理单位152(例如,运动补偿单元162和/或帧内预测单元164)执行,在此情况下,可省略层间预测单元166。然而,本发明的方面不限于此。在一些实例中,本发明中描述的技术可在视频解码器30的各种组件之间共享。在一些实例中,另外或替代地,处理器(未图示)可经配置以执行本发明中描述的技术中的任一者或全部。
出于解释的目的,本发明在HEVC译码的上下文中描述视频解码器30。然而,本发明的技术可适用于其它译码标准或方法。图3A中所描绘的实例是针对单层编解码器。然而,如将相对于图3B进一步描述,可复制视频解码器30中的一些或全部以用于多层编解码器的处理。
在图3A的实例中,视频解码器30包含多个功能组件。视频解码器30的功能组件包含熵解码单元150、预测单元152、逆量化单元154、逆变换单元156、重构单元158、滤波器单元159和经解码图片缓冲器160。预测处理单元152包括运动补偿单元162、帧内预测单元164和层间预测单元166。在一些实例中,视频解码器30可执行一般与关于图2A的视频编码器20描述的编码遍次互逆的解码遍次。在其它实例中,视频解码器30可包含较多、较少或不同的功能组件。
视频解码器30可接收包括经编码视频数据的位流。所述位流可包含多个语法元素。当视频解码器30接收到位流时,熵解码单元150可对所述位流执行剖析操作。对位流执行剖析操作的结果是,熵解码单元150可从所述位流提取语法元素。作为执行剖析操作的一部分,熵解码单元150可对位流中的经熵编码语法元素进行熵解码。预测处理单元152、逆量化单元154、逆变换处理单元156、重构单元158和滤波器单元159可执行重构操作,重构操作基于从位流提取的语法元素产生经解码视频数据。
如上文所论述,位流可包括一系列NAL单元。位流的NAL单元可包含视频参数集NAL单元、序列参数集NAL单元、图片参数集NAL单元、SEI NAL单元等等。作为对位流执行剖析操作的一部分,熵解码单元150可执行剖析操作,所述剖析操作从序列参数集NAL单元提取且熵解码序列参数集、从图片参数集NAL单元提取且熵解码图片参数集、从SEI NAL单元提取且熵解码SEI数据等等。
此外,位流的NAL单元可包含经译码切片NAL单元。作为对位流执行剖析操作的部分,熵解码单元150可执行剖析操作,所述剖析操作从经译码切片NAL单元提取且熵解码经译码切片。经译码切片中的每一者可包含切片标头以和切片数据。切片标头可含有关于切片的语法元素。切片标头中的语法元素可包含识别与含有所述切片的图片相关联的图片参数集的语法元素。熵解码单元150可对经译码切片标头中的语法元素执行熵解码操作(例如,CABAC解码操作),以恢复切片标头。
作为从经译码切片NAL单元提取切片数据的部分,熵解码单元150可执行从切片数据中的经译码CU提取语法元素的剖析操作。所提取的语法元素可包含与变换系数块相关联的语法元素。熵解码单元150可接着对语法元素中的一些执行CABAC解码操作。
在熵解码单元150对未分割的CU执行剖析操作之后,视频解码器30可对未分割的CU执行重构操作。为对未经分割CU执行重构操作,视频解码器30可对CU的每一TU执行重构操作。通过对CU的每一TU执行重构操作,视频解码器30可重构与CU相关联的残差视频块。
作为对TU执行重构操作的部分,逆量化单元154可对与TU相关联的变换系数块进行逆量化(例如,去量化)。逆量化单元154可以类似于针对HEVC所提议或由H.264解码标准定义的逆量化过程的方式对变换系数块进行逆量化。逆量化单元154可使用由视频编码器20针对变换系数块的CU计算的量化参数QP来确定量化程度,且同样地,确定逆量化单元154应用的逆量化的程度。
在逆量化单元154对变换系数块进行逆量化之后,逆变换单元156可产生与变换系数块相关联的TU的残差视频块。逆变换单元156可将逆变换应用到变换系数块以便产生所述TU的残差视频块。举例来说,逆变换单元156可将逆DCT、逆整数变换、逆卡忽南-拉维(Karhunen-Loeve)变换(KLT)、逆旋转变换、逆定向变换或另一逆变换应用于变换系数块。在一些实例中,逆变换单元156可基于来自视频编码器20的信令而确定应用于变换系数块的逆变换。在此类实例中,逆变换单元156可基于在用于与变换系数块相关联的树块的四叉树的根节点处的发信号通知的变换来确定逆变换。在其它实例中,逆变换单元156可从例如块大小、译码模式等一或多个译码特性推断逆变换。在一些实例中,逆变换单元156可应用级联的逆变换。
在一些实例中,运动补偿单元162可通过基于内插滤波器执行内插来细化PU的所预测视频块。用于将用于以子样本精确度进行运动补偿的内插滤波器的识别符可包含在语法元素中。运动补偿单元162可使用由视频编码器20在产生PU的经预测视频块期间使用的相同内插滤波器来计算参考块的子整数样本的经内插值。运动补偿单元162可根据所接收到的语法元素确定由视频编码器20使用的内插滤波器,且使用所述内插滤波器来产生经预测视频块。
如果PU是使用帧内预测来编码,那么帧内预测单元164可执行帧内预测以产生用于PU的经预测视频块。举例来说,帧内预测单元164可基于位流中的语法元素确定用于PU的帧内预测模式。位流可包含帧内预测模块164可用以确定PU的帧内预测模式的语法元素。
在一些情况下,语法元素可指示帧内预测单元164将使用另一PU的帧内预测模式来确定当前PU的帧内预测模式。举例来说,可能有可能当前PU的帧内预测模式与相邻PU的帧内预测模式相同。换句话说,相邻PU的帧内预测模式可为用于当前PU的最可能模式。因此,在此实例中,位流可包含小语法元素,所述小语法元素指示PU的帧内预测模式与相邻PU的帧内预测模式相同。帧内预测单元164可接着使用帧内预测模式基于在空间上相邻的PU的视频块而产生用于PU的预测数据(例如,经预测样本)。
如上文所论述,视频解码器30还可包含层间预测单元166。层间预测单元166经配置以使用在可缩放视频译码中可用的一或多个不同层(例如,BL或RL)来预测当前块(例如,EL中的当前块)。此预测可称作层间预测。层间预测单元166利用预测方法来减少层间冗余,由此改进译码效率且降低计算资源要求。层间预测的一些实例可包含层间帧内预测、层间运动预测和层间残差预测。层间帧内预测使用对BL中处于相同位置的块的重构来预测EL中的当前块。层间运动预测使用BL的运动信息来预测EL中的运动。层间残差预测使用BL的残差来预测EL的残差。下文更详细地论述层间预测方案中的每一者。
重构单元158可使用与CU的TU相关联的残差视频块以及CU的PU的经预测视频块,例如帧内预测数据或帧间预测数据(如果适用),来重构CU的视频块。因此,视频解码器30可基于位流中的语法元素来产生所预测的视频块和残差视频块,且可基于所预测的视频块和残差视频块而产生视频块。
在重构单元158重构CU的视频块之后,滤波器单元159可执行去块操作以减少与CU相关联的成块假影。在滤波器单元159执行去块操作以减小与CU相关联的成块假影之后,视频解码器30可将所述CU的视频块存储在经解码图片缓冲器160中。经解码图片缓冲器160可提供参考图片以用于后续运动补偿、帧内预测和在例如图1A或1B的显示装置32的显示装置上的呈现。举例来说,视频解码器30可基于经解码图片缓冲器160中的视频块对其它CU的PU执行帧内预测或帧间预测操作。
多层解码器
图3B是说明可实施根据本发明中描述的方面的技术的多层视频解码器33(也被简称为视频解码器33)的实例的框图。视频解码器33可经配置以处理多层视频帧(例如,针对SHVC和多视图译码)。另外,视频解码器33可经配置以执行本发明的技术中的任一者或全部。
视频解码器33包含视频解码器30A和视频解码器30B,其中的每一者可被配置为视频解码器30,且可执行上文相对于视频解码器30所描述的功能。另外,如再使用参考数字所指示,视频解码器30A和30B可包含系统和子系统中的至少一些作为视频解码器30。尽管将视频解码器33说明为包含两个视频解码器30A和30B,但视频解码器33不受如此限制,且可包含任何数目的视频解码器30层。在一些实施例中,视频解码器33可包含用于存取单元中的每一图片或帧的视频解码器30。举例来说,可由包含五个解码器层的视频解码器处理或解码包含五个图片的存取单元。在一些实施例中,视频解码器33可包括比存取单元中的帧更多的解码器层。在一些此类情况下,当处理一些存取单元时,所述视频解码器层中的一些可能无效。
除了视频解码器30A和30B之外,视频解码器33还可包含上取样单元92。在一些实施例中,上取样单元92可对所接收到的视频帧的BL进行上取样,以创建待添加到帧或存取单元的参考图片列表的增强层。此增强层可存储在经解码图片缓冲器160中。在一些实施例中,上取样单元92可包括关于图2B的再取样单元90描述的实施例中的一些或全部。在一些实施例中,上取样单元92经配置以对层进行上取样且重新组织、重新定义、修改或调整一或多个切片以符合一组切片边界规则和/或光栅扫描规则。在一些情况下,上取样单元92可为经配置以对所接收到的视频帧的层进行上取样和/或下取样的再取样单元。
上取样单元92可经配置以从较低层解码器(例如,视频解码器30A)的经解码图片缓冲器160接收图片或帧(或与所述图片相关联的图片信息),并对所述图片(或所接收到的图片信息)进行上取样。接着可将此经上取样图片提供到较高层解码器(例如,视频解码器30B)的预测处理单元152,所述较高层解码器经配置以解码与较低层解码器相同的存取单元中的图片。在一些情况下,较高层解码器为从较低层解码器去除的一个层。在其它情况下,在图3B的层0解码器与层1解码器之间可存在一或多个较高层解码器。
在一些情况下,可省略或旁路上取样单元92。在此些情况下,可直接或在至少不提供到上取样单元92的情况下,将来自视频解码器30A的经解码图片缓冲器160的图片提供到视频解码器30B的预测处理单元152。举例来说,如果提供到视频解码器30B的视频数据以及来自视频解码器30A的经解码图片缓冲器160的参考图片具有相同的大小或分辨率,那么可将参考图片提供到视频解码器30B而不需要上取样。此外,在一些实施例中,上取样单元92可为经配置以对从视频解码器30A的经解码图片缓冲器160接收的参考图片进行上取样或下取样的再取样单元90。
如图3B中所说明,视频解码器33可进一步包含多路分用器99或demux。多路分用器99可将经编码视频位流分裂成多个位流,其中由多路分用器99输出的每一位流被提供到不同的视频解码器30A和30B。可通过接收位流来创建多个位流,且视频解码器30A和30B中的每一者在给定时间接收位流的一部分。虽然在一些情况下,可在视频解码器(例如,在图3B的实例中的视频解码器30A和30B)中的每一者之间一次一个位地交替来自在多路分用器99处所接收到的位流的位,但在许多情况下,以不同方式划分所述位流。举例来说,可通过一次一个块地交替哪一视频解码器接收位流来划分所述位流。在另一实例中,可通过到视频解码器30A和30B中的每一者的块的非1:1比率来划分位流。举例来说,可针对提供到视频解码器30A的每一块而将两个块提供到视频解码器30B。在一些实施例中,可预编程多路分用器99对位流的划分。在其它实施例中,多路分用器99可基于从视频解码器33外部的系统(例如,从包含目的地装置14的目的地装置上的处理器)接收的控制信号而划分位流。可基于来自输入接口28的视频的分辨率或位速率、基于链路16的带宽、基于与用户相关联的预订(例如,付费预订与免费预订),或基于用于确定视频解码器33可获得的分辨率的任何其它因素来产生控制信号。
块和调色板
在一些实施例中,可将视频数据分成多个单元,下文被称作块。在一些实施例中,块可对应于CU。在其它实施例中,块可对应于视频图像的任何所要部分(例如,块可对应于译码树单元、预测单元、变换单元和/或类似者)。
在一些实施例中,调色板可用于编码视频数据块。调色板包括为包含在所述块内的像素值编索引的一或多个条目。举例来说,调色板中的每一条目可指定将与不同像素值相关联的索引。在一些实施例中,像素值可含有一个色彩分量(例如,亮度值)、两个分量(例如,两个色度值),或三个色彩分量的三元组(例如,RGB色彩分量、YUV色彩分量和/或类似者)。因此,代替于编码每一像素的像素值,所述块的像素可指对应于其像素值的索引值,如由调色板所定义。在一些实施例中,可在块的开头发射所述块的调色板信息。
通过使用调色板,可减小编码所述块所需的位的数目。举例来说,如果特定块使用十六个不同像素值,每一像素值包括各自8个位的三个色彩分量,那么将需要24个位来编码所述块中的每一像素的像素值。然而,通过使用调色板来为十六个不同像素值编索引,可使用仅4个位来为所述像素值编索引。由此,所述块中的每个像素将仅需要4个位。
举例来说,图4说明根据一些实施例的可结合块使用的调色板。调色板402包括多个条目,每一条目使索引值404与特定像素值406关联(例如像素值v0与索引值0相关联,像素值v1与索引值1相关联,等)。因此,无需为块408中的每一像素指定全像素值。实情为,所述像素与来自调色板402的索引值相关联,接着可根据其来确定所述像素的像素值。
在一些实施例中,用于特定块的调色板可包括用于所述块中出现的所有不同像素值的条目。在一些实施例中,所述调色板可改为包括用于所述块中出现的像素值的子集(例如,所述块中的最常见像素值、与所述块内的至少一阈值量的像素相关联的像素值,和/或类似者)的条目。
在一些实施例中,使用块和调色板来编码视频数据可用于编码屏幕内容(例如,根据HEVC屏幕内容译码扩展)。屏幕内容或屏幕图像可指计算机产生的图像或图形,相对于自然内容或自然图像(例如通过相机捕获的视频图像)。与自然内容相比,屏幕内容常常展现较少的渐进转变和较多的锐边,以及较多有限数目个可能色彩或像素值。在一些实施例中,屏幕内容可包含混合图像。举例来说,视频可含有计算机屏幕的图像,其具有在屏幕的第一部分上(例如在媒体播放器中)的自然视频,以及显示于所述屏幕的第二部分上的屏幕内容(例如开放式文档、计算机产生的用户接口和/或类似者)。然而,虽然本发明可涉及正用于编码屏幕内容视频数据的块和调色板,但应理解,本文所揭示的系统和方法也可应用于其它类型的视频。
子块
在许多类型的视频图像中,其可包含自然图像和计算机产生的屏幕图像两者,彼此相邻的像素趋向于有较高可能性具有相同或类似的像素值。由此,许多视频图像可展现较强的基于块的图案。举例来说,图5说明根据一些实施例的展现较强的基于块的图案的块500的一部分。可将块500的所说明部分分成多个子块(子块502、504、506、508、510和512),每一子区块含有具有相同像素值的像素。
因此在一些实施例中,可将每一块分成多个子块,每一子块包括位于所述块内的一像素阵列。举例来说,如图5中所示出,子块可包括正方形4×4像素阵列。在一些实施例中,子块可包括正方形KxK像素阵列,其中K对应于整数值;或非正方形像素阵列。在一些实施例中,子块的大小是预定的。应理解,虽然图5将子块说明为含有具有相同像素值的像素,但应理解在其它实施例中,特定子块可含有具有两个或更多个不同像素值的像素。
自适应扫描次序
当编码视频数据块时,有必要确定将以什么次序来编码所述块的像素和/或子块。将编码像素和/或子块的次序在下文可被称作扫描次序。扫描次序可包括水平扫描次序和垂直扫描次序。还可使用其它类型的扫描次序,例如对角线或Z形扫描次序,或水平遍历扫描或垂直遍历扫描(即蛇形)。在一些实施例中,所述块将使用的扫描次序可为预定的。或者,可将待使用的扫描次序发信号通知到位流中。在一些实施例中,为了减少编码所述视频所需的位,可自适应地选择扫描次序。
在其中块分成多个子块(例如如图5中所示)的实施例中,所述块可与子块扫描次序相关联,指示编码组成所述块的子块的次序。另外,子块可与像素扫描次序相关联,指示编码组成所述子块的像素的次序。这些次序可为预定义的,其为解码器和编码器所知,或发信号通知到位流中,或根据相邻像素值、所述块中的子块的位置,和/或相邻经解码块或子块的其它特性而自适应地更新。
图6A和6B说明根据一些实施例的可用于编码图5中所说明的子块的不同子块扫描次序。图6A说明以水平光栅扫描次序扫描的图5中所示的子块,其中在特定方向上(例如从左到右)循序地(例如自上而下)扫描子块行(每一行包括3个子块)。由此,以以下次序来扫描所说明的子块:502、504、506、508、510和512。
另一方面,图6B说明以水平遍历次序扫描所述子块。水平遍历次序包括在交替方向上循序地扫描所述行,使得每一所扫描的子块与先前所扫描的子块相邻。举例来说,如图中所说明,从左到右扫描第一行子块,接着从右到左扫描第二行子块。由此,以以下次序来扫描所说明的子块:502、504、506、512、510和508。
在一些实施例中,可使用其它类型的扫描次序。这些次序可包含垂直光栅扫描次序(在特定方向上循序地扫描列)和垂直遍历扫描次序(在交替方向上循序地扫描列)。
如上所述,彼此相邻的像素和/或子块更可能具有相同或类似的像素值。举例来说,如图5中所示出,子块502和504具有相同的像素值,而子块506和512也具有相同的像素值。为了减少编码所述视频数据所需的位的数目,常常需要循序地扫描具有相同或类似像素值的子块。由此,对于图5中所说明的特定子块图案,水平遍历扫描次序将比水平光栅扫描次序优选,因为水平遍历扫描次序导致将循序地扫描子块506和512,因此潜在地减少编码所述视频数据所需的位的量。
在一些实施例中,为了选择哪一扫描次序在编码所述块时使用,视频编码器可评估若干不同候选扫描次序。这些次序可包含水平和垂直光栅扫描次序、水平和垂直遍历扫描次序,和/或类似者。视频编码器可计算至少一个候选扫描次序的成本,其中所述成本指示在使用候选扫描次序来编码所述块的情况下将使用的位速率。编码器接着可选择与最低成本相关联的候选扫描次序。举例来说,参考图5中所说明的块,可确定与水平光栅扫描次序(图6A)相关联的成本高于与水平遍历扫描次序(图6B)相关联的成本。由此,可优先于水平光栅扫描次序而选择水平遍历扫描次序。
在一些实施例中,个别子块可与像素扫描次序相关联,指示扫描组成所述子块的像素的次序。在一些实施例中,子块的像素扫描次序可为预定的,而在其它实施例中,可自适应地选择。当自适应地选择扫描次序时,可将所述次序发信号通知到位流中。或者,在一些实施例中,可从先前剖析/解码的块推断所述次序。举例来说,如果先前块显示比垂直图案强的水平图案,那么可推断当前块的扫描次序为水平。如果先前块显示比水平图案强的垂直图案,那么可推断当前块的扫描次序为垂直。
如果特定子块中的所有像素具有相同像素值(例如,如图5中所示出),选择哪一扫描次序可能不重要(例如,所有候选者扫描次序可具有相同成本),且可选择任何扫描次序。然而,如果特定子块的像素与两个或更多个不同像素值相关联,那么不同扫描次序可与不同成本相关联。举例来说,在一些实施例中,可使用游程长度译码来编码子块的像素。在游程长度译码中,游程值(或游程)指定若干后续样本(例如,像素)具有相同的像素值或调色板索引。在一实例中,出于说明的目的,块的一串连续调色板索引可为0、2、2、2、2、5。在此实例中,视频译码器可使用值模式(即,明确突出调色板索引的值)来译码第二样本(例如第一调色板索引二)。在译码等于2的索引之后,视频译码器可译码游程三,其指示三个后续样本也具有相同的调色板索引二。在一些实施例中,游程可指从上方相邻调色板索引复制的调色板索引的游程。
由此,与扫描通过具有频繁变更的像素值的像素的第二像素扫描次序相比,扫描一行中具有相同像素值的许多像素的第一像素扫描次序将潜在地使用较少量的位来编码所述子块(例如,归因于第一像素扫描次序含有较少量的不同游程)。因此,与第二像素扫描次序相比,第一像素扫描次序将与较低成本结合。
图7A和7B说明根据一些实施例的两个不同子块702和704,其各自与两个或更多个像素值相关联。因为具有所说明子块中的每一者的像素值的不同分布,不同像素扫描次序可与所述子块中的每一者的不同成本相关联。由此,子块702和704中的每一者可使用不同的像素扫描次序。举例来说,可使用水平遍历次序来编码子块702,而可使用垂直光栅次序来编码子块704,如图7B中所示出。
在一些实施例中,可至少部分地基于相邻子块所使用的扫描次序来预测为特定子块选择的扫描次序。举例来说,候选者扫描次序可基于相邻子块所使用的扫描次序而受限。在一些实施例中,如果确定像素值在子块内的分布类似于相邻子块的分布,那么可为所述子块选择用于相邻子块的相同扫描次序。
图8说明根据一些实施例的用于使用自适应扫描次序来编码视频数据块的过程的流程图。过程在框802处开始,其中接收包括一或多个块的视频数据来进行编码。所述块可对应于CU,或视频图像的任何其它部分。
在框804处,将所述一或多个块中的一块分成多个子块。在一些实施例中,所述子块包括所述块内的正方形像素阵列。举例来说,子块可包括所述块内的4×4正方形像素阵列。在一些实施例中,可为所述块构建调色板。所述调色板包括使索引值与所述块内存在的像素值关联的一或多个条目。在一些实施例中,所述调色板可包括对应于所述块中存在的所有像素值的条目,而在其它实施例中,所述调色板可仅包括用于所述块中存在的像素值的一部分(例如,最常见像素值、与所述块内的阈值量的像素相关联的像素值,和/或类似者)的条目。
在框806处,至少部分地基于像素值在所述块内的分布来选择用于所述块的子块扫描次序。在一些实施例中,可识别多个候选子块扫描次序。候选子块扫描次序可包括水平光栅扫描次序、水平遍历扫描次序、垂直光栅扫描次序,和/或垂直遍历扫描次序。可为所述候选扫描次序中的一或多者确定成本,其中与候选扫描次序相关联的成本指示在将使用候选扫描次序来编码所述块的情况下将使用的位速率。可选择与最低成本相关联的候选扫描次序。
在框808处,选择所述多个子块中的一子块。在框810处,至少部分地基于像素值在所述子块内的分布,来选择用于选定子块的像素扫描次序。在一些实施例中,选择像素扫描次序可包括识别一或多个候选扫描次序。这些次序可包含例如水平光栅扫描次序、水平遍历扫描次序、垂直光栅扫描次序和/或垂直遍历扫描次序。可为所述候选扫描次序中的一或多者确定成本,其中与候选扫描次序相关联的成本指示在将使用候选扫描次序来编码所述块的情况下将使用的位速率。可选择与最低成本相关联的候选扫描次序。
在框812处,可作出关于是否存在将为其选择像素扫描次序的更多子块的确定。如果这样,那么过程可返回到框808,其中可选择所述多个子块中的另一子块。否则,过程可进行到框814,其中使用选定子块扫描次序来编码所述块,且其中使用其相应选定像素扫描次序来编码所述块的子块。
子块预测
在一些实施例中,可能不是始终需要编码特定子块的像素。实情为,在一些情况下,可基于其它子块中的像素的像素值来预测所述子块的像素,从而潜在地降低编码所述视频数据所需的位速率。
如上所述,彼此相邻的子块更可能具有像素值类似的像素。举例来说,视频图像可包含大区域,其包含具有恒定色彩或像素值的多个子块。这在计算机产生的屏幕内容视频图像中尤其常见。在一些实施例中,特定子块内的所有像素可具有相同像素值,其中所述像素值可与相邻子块中的像素的像素值相同。在此些情况下,(例如,使用游程长度译码)来编码所述子块的像素可能是不必要的。实情为,旗标可升高,从而发信号通知所述子块的所有像素与相邻子块中的那些像素相同。
举例来说,图9说明根据一些实施例的具有与相邻子块的像素相同的单个像素值的子块。子块902(也称作“当前子块902”)直接与子块904(也称作“相邻子块904”)相邻。子块902中的所有像素具有相同像素值(例如,像素值1)。另外,所述像素值与相邻子块904中的特定像素(像素906)相同。当此情况发生时,可不需要编码当前子块902的像素。实情为,可发信号通知旗标,其指示当前子块902中的所有像素具有与相邻子块904的像素906相同的像素值。
在一些实施例中,当前子块的像素值与之比较的相邻子块的像素(例如,像素906)可为指定像素。举例来说,在一些实施例中,例如图9中所说明的实施例中,指定像素可为在当前子块左侧的子块的最右列的最顶部像素。在一些实施例中,指定像素可为在当前子块上方的子块的底部列的最左像素。在一些实施例中,指定像素是直接邻近于当前子块的像素。应理解在其它实施例中,指定像素可在相邻子块内的其它位置中。
图10说明根据一些实施例的实施子块像素值预测的流程图。在框1002处,接收待编码的视频数据,其中所述接收到的视频数据包括一或多个块。
在框1004处,将所述一或多个块中的一块分成多个子块。在一些实施例中,所述子块包括所述块内的正方形像素阵列。举例来说,子块可包括所述块内的4×4正方形像素阵列。另外,在一些实施例中,可为所述块构建调色板,且可选择用于所述块的子块扫描次序。可至少部分地基于像素值在所述块内的分布来选择子块扫描次序。
在框1006处,选择所述多个子块中的一子块。在框1008处,识别选定子块的相邻子块的指定像素。在一些实施例中,相邻子块可包括在选定子块左侧或上方的子块。指定像素可对应于相邻子块的特定像素。在一些实施例中,选择直接邻近于选定子块的指定像素。举例来说,如果相邻子块在选定子块左侧,那么指定像素可为相邻子块的最右列的最顶部像素。另一方面,如果相邻子块在选定子块上方,那么指定像素可为相邻子块的底部列的最左像素。应理解,在其它实施例中,指定像素和相邻子块可相对于选定子块在其它位置中。
在框1010处,确定指定像素的像素值。在一些实施例中,这可包括识别对应于指定像素的索引值。使用调色板(例如,与所述块相关联的调色板),接着可将所识别的索引值映射到像素值。在一些实施例中,指定像素可直接与像素值相关联。这可在块不与调色板相关联的情况下、像素对应于不包含于所述调色板中的像素值情况下,和/或类似情况下发生。
在框1012处,作出关于选定子块中的所有像素是否具有与指定像素相同的像素值的确定。在一些实施例中,这可包括首先执行所述子块中的所有像素具有相同像素值的确定。如果是,那么接着可作出关于选定子块的像素是否具有与指定像素相同的像素值的确定。在其它实施例中,可将选定子块的像素与指定像素的像素值进行比较,直到到达非匹配像素或选定子块的结尾为止。应理解,在其它实施例中,可使用用于确定选定子块内的所有像素是否具有与指定像素相同的像素值的其它方法。
如果确定选定子块的像素具有与指定像素相同的像素值,那么过程可进行到块1014,其中发信号通知旗标以指示选定子块的像素具有与指定像素相同的像素值。另外,因为知道子块内的所有像素具有与相邻子块的指定像素相同的像素值,所以不需要实际上编码选定子块的像素值。
另一方面,如果确定选定子块内的并非所有像素均具有与指定像素相同的像素值,那么过程可进行到框1016,其中不发信号通知旗标。另外,将编码选定子块的像素值。在一些实施例中,这可包括为选定子块选择像素扫描次序。在一些实施例中,可使用游程长度译码来编码与所述子块的像素相关联的像素值。
在框1018处,可作出关于待处理的块内的是否存在额外子块的确定。如果是,那么过程可返回到框1006,其中选择另一子块。否则,过程可进行到框1020,其中编码所述块及其子块。
子块调色板
在一些实施例中,用于块的调色板可含有较大数目的不同像素值(例如,16个不同像素值、32个不同像素值,和/或类似者)。另一方面,所述块内的特定子块可含有少得多数目的不同像素值(例如,2个不同像素值、4个不同像素值,和/或类似者)。不同像素值的数目越大,索引所需的位越多。举例来说,如果存在16个不同像素值,如果使用固定长度代码,那么索引值将需要4个位。另一方面,如果仅存在4个不同像素值,那么索引值将仅需要2个位。
在一些实施例中,子块可与子块调色板相关联。所述子块调色板包括一或多个条目,其中每一条目使子块索引值与指向块调色板的条目的指针关联。在一些实施例中,所述指针可包括所述块调色板的索引值。当编码所述子块时,可通过参考对应于与像素值对应的块调色板索引值的子块索引值来指定像素值。
图11说明根据一些实施例的块调色板和子块调色板。块调色板1102可将块索引值1108映射到像素值1110。举例来说,在所说明的实施例中,块调色板1102具有大小6,将六个索引值映射到六个不同像素值。在其中索引值使用固定长度代码的实施例中,索引值将各自需要至少3个位。
所述块可含有具有第一子块调色板1104的第一子块,以及具有第二子块调色板1106的第二子块。在所说明的实施例中,每一子块具有两个不同像素值,且因此子块调色板1104和1106各自含有两个条目。因为在所说明的实施例中,每一子块调色板中仅存在2个条目,所以可仅使用单个位来表达子块索引值。
每一子块调色板将子块索引值1112映射到像素值指针1114,其中像素值指针1114指向或参考块调色板1102中对应于所述子块中存在的像素值的条目。在一些实施例中,所述指针可为块调色板1102的条目的索引值。举例来说,第一子块调色板1104中的索引值0与指向块调色板1102的具有索引值4的条目的指针相关联,其对应于像素值v4。另一方面,第二子块调色板1106中的索引值0与指向块调色板1102的具有索引值1的条目的指针相关联,其对应于像素值v1。当编码第一和第二子块时,可使用子块索引值(1个位)来代替块索引值(3个位),从而潜在地减少编码所述视频数据所需的位的量。
图12说明根据一些实施例的用于实施子块调色板的过程的流程图。在框1202处,接收待编码的视频数据,其中所述接收到的视频数据包括一或多个块。
在框1204处,将所述一或多个块中的一块分成多个子块。在一些实施例中,所述子块包括所述块内的正方形像素阵列。举例来说,子块可包括所述块内的4×4正方形像素阵列。在一些实施例中,可为所述块选择子块扫描次序。可至少部分地基于像素值在所述块内的分布来选择子块扫描次序。
在框1206处,在一些实施例中,可为所述块构建调色板。所述调色板包括将所述块中存在的像素值映射到块索引值的条目。在一些实施例中,所述调色板可包括用于所述块中存在的所有唯一像素值的条目。在其它实施例中,所述调色板可包括用于所述块中存在的唯一像素值的子集的条目。举例来说,所述调色板可包括用于所述块的最常见像素值的条目、与所述块中的阈值数目个像素相关联的像素值,和/或类似者。
在框1208处,为所述块内的子块构建子块调色板,其可用于指定所述子块内存在的像素值。然而,子块调色板的条目并不包括像素值,而是改为可含有指向或以其它方式参考块调色板的对应于所述像素值的条目的指针。在一些实施例中,每一子块调色板条目将子块索引值映射到指向块调色板中的对应条目的指针。在一些实施例中,所述指针可包括块调色板的对应于块调色板条目的索引值。
在框1210处,编码所述块及其子块,其中每一子块是使用其相应子块调色板来编码。由此,使用子块调色板的子块索引值来编码子块的像素。当解码所述子块时,子块调色板可使用子块索引值来确定块索引值,可使用块调色板来从块索引值确定像素值。
游程长度译码
在一些实施例中,使用游程长度译码来译码调色板中的样本。代替于为每一个别像素编码像素值和/或索引值,可用指示具有所述像素值的循序像素的数目长度值来编码包括像素值或索引值的游程长度译码。举例来说,如果存在具有相同像素值的10个连续像素,代替于编码个别地对应于十个像素的十个像素值或索引值,可用指示具有特定像素或索引值的循序像素的数目的长度值(例如,10)来编码单个像素或索引值。长度值也可称为“游程长度”。在一些实施例中,可使用哥伦布译码(例如指数哥伦布(ExpGolomb)或哥伦布莱斯译码)来执行游程长度译码。
在一些实施例中,可确定指示最大游程长度的游程长度上限。举例来说,子块的游程长度上限可对应于所述子块内的像素数目。游程长度上限可包括为经编码子块的一部分,且用以截短游程长度译码。举例来说,在一些实施例中,可使用指数哥伦布译码,其中前缀部分从一元改变为截短一元,且后缀译码部分从固定长度代码改变为截短的二进制代码。在一些实施例中,使用截短莱斯(TruncatedRice)代码,其中前缀部分从一元改变为截短一元,且后缀译码部分从固定长度代码改变为截短的二进位代码。用于实施截短指数哥伦布和截短莱斯的实例系统和方法在2015年6月9日申请的第62/173,215号美国专利申请案和2015年5月21日申请的第14/719,215号美国专利申请案中公开,上述两个专利申请案特此以全文引用的方式并入本文中。
转义像素
在一些实施例中,用于块的调色板可不含有用于所述块中存在的每个唯一像素值的条目。因此,所述块内的一些像素将具有未在调色板内表示的像素值。这些像素可被称为“转义像素”。
在一些实施例中,可将转义像素识别和标记为正编码的子块。当编码不是转义像素的像素时,它们可与可使用调色板(例如,块调色板和/或子块调色板)从其中确定像素值的索引值(例如块索引值或子块索引值)相关联。然而,对于转义像素,无法在所述调色板中找到像素值。在一些实施例中,预定义的索引值(例如,等于块调色板大小或子块调色板大小)可用于标记转义像素的出现率。另外,在位流中编码所述转义像素的像素值。
在一些实施例中,可在为转义像素标记(例如,预定义索引值)之后,立即在所述位流中编码转义像素的像素值。然而,在其它实施例中,在当前子块的结尾编码转义像素的像素值。可进行此步骤来使经编码子块的语法较干净和/或增加CABAC解码器通过量(通过将旁路二进位分组在一起)。举例来说,当解码经编码视频数据位流时,解码器将解码子块的索引值和游程长度。在获得索引值和游程长度之后,解码器接着可解码转义像素的像素值。在一些实施例中,作为特殊情况,当所述块仅含有一个子块(即,块大小等于子块大小)时,此配置导致当前区块内的所有转义像素值均放置在所述块的末尾。
经编码位流结构
图13说明根据一些实施例的对应于块的经编码视频数据位流的结构。在一些实施例中,对应于视频数据块的经编码位流可以调色板数据1302开始,其中调色板数据1302包括将索引值映射到像素值的一或多个调色板条目。另外,所述位流可包括所述块所使用的子块扫描次序的指示。
经编码位流可进一步包括用于多个子块的数据1304。在一些实施例中,用于特定子块的数据(例如,数据1304-1)可包括子块调色板数据1306。子块调色板数据1306可包括一或多个条目,其将子块索引值映射到调色板数据1302的对应于所述子块中存在的像素值的调色板条目。另外,还可指定用于所述子块的像素扫描次序。
子块数据1304-1可进一步包括指示所述子块内的像素的像素值的像素数据1308。在一些实施例中,使用如子块调色板数据1306中所定义的子块索引值来指示像素值。在一些实施例中,可使用游程长度译码来译码像素数据。
在一些实施例中,所述子块可包括一或多个转义像素。如果特定像素是转义像素,那么像素数据1306可含有指示所述特定像素是转义像素的旗标或指示符。然而,像素数据1306可不含有转义像素的实际像素值。实情为,可在像素数据1308作为转义像素值1310之后,译码转义像素的像素值。
在一些实施例中,可至少部分地基于相邻子块来确定所述块的一或多个子块的像素值。举例来说,用于第二子块的数据(例如,数据1304-2)可包括发信号通知的旗标1312,其指示第二子块的所有像素均具有与相邻子块中的指定像素相同的像素值。因为第二子块的所有像素的像素值是已知的,所以可能不需要包含第二子块的子块调色板数据或子块像素数据。
其它考虑
可使用多种不同技术和技法中的任一者来表示本文中所揭示的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。
结合本文揭示的实施例所描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件,或两者的组合。为清晰地说明硬件与软件的这种可互换性,上文已大体就其功能性来描述了各种说明性组件、块、模块、电路和步骤。将此功能性实施为硬件还是软件取决于特定应用以及强加于整个系统的设计约束。熟练的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但这样的实施决策不应被解释为会引起脱离本发明的范围。
本文中所描述的技术可在硬件、软件、固件或其任一组合中实施。所述技术可实施于多种装置中的任一者中,例如通用计算机、无线通信装置手持机或集成电路装置,其具有包含在无线通信装置手持机以及其它装置中的应用的多种用途。被描述为模块或组件的任何特征可一起实施于集成逻辑装置中或分开来实施为离散但可互操作的逻辑装置。如果实施于软件中,那么可通过包括程序代码的计算机可读数据存储媒体来至少部分地实现所述技术,所述程序代码包含指令,所述指令在被执行时,实施上文所述的方法中的一或多者。计算机可读数据存储媒体可形成计算机程序产品的一部分,所述计算机程序产品可包含封装材料。计算机可读媒体可包括存储器或数据存储媒体,例如,随机存取存储器(RAM)(例如,同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存器、磁性或光学数据存储媒体等等。另外或作为替代,所述技术可至少部分地由计算机可读通信媒体来实现,所述计算机可读通信媒体以指令或数据结构的形式运载或传达程序代码,且可由计算机存取、读取和/或执行(例如,传播的信号或波)。
所述程序代码可由处理器执行,所述处理器可包含一或多个处理器,例如一或多个DSP、通用微处理器、ASIC、FPGA,或其它等效集成或离散逻辑电路。此处理器可经配置以执行本发明中所描述的技术中的任一者。通用处理器可为微处理器;但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器结合DSP核心,或任何其它此类配置。因此,如本文中所使用的术语“处理器”可指前述结构中的任一者、上述结构的任何组合,或适合于实施本文中所描述的技术的任何其它结构或设备。另外,在一些方面中,可将本文中所描述的功能性提供于经配置以用于编码和解码的专用软件模块或硬件模块内,或并入组合的视频编码器-解码器(CODEC)中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
可以各种各样的装置或设备来实施本发明的技术,包含无线手持机、集成电路(IC)或IC集合(例如芯片组)。本发明中描述各种组件、模块或单元是为了强调经配置以执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可配合合适的软件和/或固件组合在编解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
已描述了本发明的各种实施例。这些和其它实施例在所附权利要求书的范围内。

Claims (30)

1.一种编码视频数据的方法,其包括:
接收包括一或多个块的视频数据,每一块与包括一或多个调色板条目的调色板相关联,所述调色板条目指定用于所述调色板的相关联块中的像素值;
对于所述一或多个块中的一块:
将所述块分为多个子块,每一子块包括所述块内的像素阵列;
至少部分地基于像素值在所述块内的分布,为所述块的所述子块选择子块扫描次序,其指定将编码所述多个子块的次序;
对于所述多个子块中的第一子块,至少部分地基于像素值在所述第一子块内的分布,为所述第一子块选择像素扫描次序,其指定将编码所述第一子块的所述像素的次序;以及
使用所述选定子块扫描次序来编码所述块,其中所述第一子块是使用其选定像素扫描次序来编码,其中使用对应于所述调色板的调色板条目的索引值来编码所述第一子块的所述像素的至少一部分。
2.根据权利要求1所述的方法,其中像素值包括色彩分量值。
3.根据权利要求1所述的方法,其中为所述第一子块选择像素扫描次序包括:
识别多个潜在像素扫描次序;
评估所述多个潜在像素扫描次序中的每一者的成本,其中所述多个潜在像素扫描次序中的一潜在像素扫描次序的成本指示在所述潜在像素扫描次序用于所述第一子块的情况下,将与所述第一子块相关联的位流长度;以及
选择具有最低成本的潜在像素扫描次序。
4.根据权利要求3所述的方法,其中所述多个潜在像素扫描次序包括以下各项中的至少一者:水平扫描次序、垂直扫描次序、水平遍历扫描次序和垂直遍历扫描次序。
5.根据权利要求1所述的方法,其进一步包括:使所述第一子块与子块调色板关联,所述子块调色板参考所述调色板条目的对应于用于所述第一子块的所述像素中的像素值的子集。
6.根据权利要求5所述的方法,其中所述子块调色板包括多个条目,每一条目包括指向所述调色板的对应条目的指针。
7.根据权利要求5所述的方法,其中所述第一子块中的像素被指定为转义像素,从而指示所述第一子块的所述像素具有不对应于与所述子块调色板相关联的像素值的像素值,且其中在编码所述第一子块的未指定为转义像素的所述像素之后,编码与所述转义像素相关联的所述像素值。
8.根据权利要求1所述的方法,其中使用游程长度译码来编码所述第一子块,其中至少部分地基于对应于所述第一子块中的像素的数目的游程长度上限来截短游程长度值。
9.根据权利要求1所述的方法,其进一步包括:对于所述多个子块中的第二子块,其中所述第二子块与所述第一子块相邻,至少部分地基于所述第一子块的所述像素扫描次序,确定所述第二子块的像素扫描次序。
10.一种编码视频数据的方法,其包括:
接收包括一或多个块的视频数据,每一块与包括一或多个调色板条目的调色板相关联,所述调色板条目指定用于所述调色板的相关联块中的像素值;
对于所述一或多个块中的一块:
将所述块分为多个子块,每一子块包括所述块内的像素阵列;以及
对于所述多个子块中的第一子块:(i)确定相邻子块中的指定像素的像素值,(ii)确定所述第一子块的所述像素是否具有与所述相邻子块的所述指定像素相同的像素值,以及(iii)响应于确定所述第一子块的所述像素具有与所述相邻子块的所述指定像素相同的像素值,发信号通知指示所述第一子块的所述像素具有与所述指定像素相同的像素值的旗标;
其中确定所述指定像素的所述像素值包括确定所述指定像素的索引值,其中所述索引值对应于所述调色板的调色板条目。
11.根据权利要求10所述的方法,其中所述相邻子块包括在所述第一子块左侧的子块或在所述第一子块上方的子块,且其中所述指定像素包括所述相邻子块的最左列的顶部像素或所述相邻子块的底部行的最左像素。
12.根据权利要求10所述的方法,其中如果发信号通知所述旗标,那么不编码所述第一子块所述像素的所述像素值。
13.根据权利要求10所述的方法,其进一步包括响应于不是所述第一子块的所有像素均具有与所述指定像素相同的像素值的确定,不发信号通知所述旗标。
14.根据权利要求13所述的方法,其进一步包括:如果不发信号通知所述旗标,那么使所述第一子块与子块调色板关联,所述子块调色板指示所述调色板条目的对应于用于所述第一子块的所述像素中的像素值的子集。
15.根据权利要求14所述的方法,其中所述第一子块中的像素是转义像素,其中所述转义像素是所述子块的具有不对应于与所述子块调色板相关联的像素值的像素值的像素,且其中在编码所述第一子块的不指定为转义像素的所述像素之后,编码与所述转义像素相关联的所述像素值。
16.一种视频编码器,其包括:
存储器,其经配置以存储视频数据;以及
处理器,其与所述存储器通信且经配置以:
接收包括一或多个块的视频数据,每一块与包括一或多个调色板条目的调色板相关联,所述调色板条目指定用于所述调色板的相关联块中的像素值;
对于所述一或多个块中的一块:
将所述块分为多个子块,每一子块包括所述块内的像素阵列;
至少部分地基于像素值在所述块内的分布,来为所述块的所述子块选择子块扫描次序,其指定将编码所述多个子块的次序;
对于所述多个子块中的第一子块,至少部分地基于像素值在所述第一子块内的分布,为所述第一子块选择像素扫描次序,其指定将编码所述第一子块的所述像素的次序;以及
使用所述选定子块扫描次序来编码所述块,其中所述第一子块是使用其选定像素扫描次序来编码,其中使用对应于所述调色板的调色板条目的索引值来编码所述第一子块的所述像素的至少一部分。
17.根据权利要求16所述的视频编码器,其中像素值包括色彩分量值。
18.根据权利要求16所述的视频编码器,其中为了为所述第一子块选择像素扫描次序,所述处理器经配置以:
识别多个潜在像素扫描次序;
评估所述多个潜在像素扫描次序中的每一者的成本,其中所述多个潜在像素扫描次序中的一潜在像素扫描次序的成本指示在所述潜在像素扫描次序用于所述第一子块的情况下,将与所述第一子块相关联的位流长度;以及
选择具有最低成本的潜在像素扫描次序。
19.根据权利要求18所述的视频编码器,其中所述多个潜在像素扫描次序包括以下各项中的至少一者:水平扫描次序、垂直扫描次序、水平遍历扫描次序和垂直遍历扫描次序。
20.根据权利要求16所述的视频编码器,其中所述处理器进一步经配置以使所述第一子块与子块调色板关联,所述子块调色板参考所述调色板条目的对应于用于所述第一子块的所述像素中的像素值的子集。
21.根据权利要求20所述的视频编码器,其中所述子块调色板包括多个条目,每一条目包括指向所述调色板的对应条目的指针。
22.根据权利要求20所述的视频编码器,其中所述第一子块中的像素被指定为转义像素,从而指示所述第一子块的所述像素具有不对应于与所述子块调色板相关联的像素值的像素值,且其中所述处理器经配置以在编码所述第一子块的不指定为转义像素的所述像素之后,编码与所述转义像素相关联的所述像素值。
23.根据权利要求16所述的视频编码器,其中所述处理器经配置以使用游程长度译码来编码所述第一子块,其中至少部分地基于对应于所述第一子块中的像素的数目的游程长度上限来截短游程长度值。
24.根据权利要求16所述的视频编码器,其中对于所述多个子块中的第二子块,其中所述第二子块与所述第一子块相邻,所述处理器进一步经配置以至少部分地基于所述第一子块的所述像素扫描次序,确定所述第二子块的像素扫描次序。
25.一种视频编码器,其包括:
存储器,其经配置以存储视频数据;以及
处理器,其与所述存储器通信且经配置以:
接收包括一或多个块的视频数据,每一块与包括一或多个调色板条目的调色板相关联,所述调色板条目指定用于所述调色板的相关联块中的像素值;
对于所述一或多个块中的一块:
将所述块分为多个子块,每一子块包括所述块内的像素阵列;以及
对于所述多个子块中的第一子块:(i)确定相邻子块中的指定像素的像素值,(ii)确定所述第一子块的所述像素是否具有与所述相邻子块的所述指定像素相同的像素值,以及(iii)响应于确定所述第一子块的所述像素具有与所述相邻子块的所述指定像素相同的像素值,发信号通知指示所述第一子块的所述像素具有与所述指定像素相同的像素值的旗标;
其中为了确定所述指定像素的所述像素值,所述处理器经配置以确定所述指定像素的索引值,其中所述索引值对应于所述调色板的调色板条目。
26.根据权利要求25所述的视频编码器,其中所述相邻子块包括所述第一子块左侧的子块或所述第一子块上方的子块,且其中所述指定像素包括所述相邻子块的最左列的顶部像素或所述相邻子块的底部行的最左像素。
27.根据权利要求25所述的视频编码器,其中如果发信号通知所述旗标,那么所述处理器配置成不编码所述第一子块的所述像素的所述像素值。
28.根据权利要求25所述的视频编码器,其中所述处理器进一步经配置以响应于不是所述第一子块的所有像素均具有与所述指定像素相同的像素值的确定,不发信号通知所述旗标。
29.根据权利要求28所述的视频编码器,其中如果不发信号通知所述旗标,那么所述处理器经配置以使所述第一子块与子块调色板关联,所述子块调色板指示所述调色板的所述条目的对应于用于所述子块的所述像素中的像素值的子集。
30.根据权利要求29所述的视频编码器,其中所述第一子块中的像素是转义像素,其中所述转义像素是所述子块的具有不对应于与所述子块调色板相关联的像素值的像素值的像素,且其中所述处理器经配置以在编码所述第一子块的不指定为转义像素的所述像素之后,编码与所述转义像素相关联的所述像素值。
CN201580039301.8A 2014-07-24 2015-07-24 子块调色板模式 Pending CN106576167A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462028652P 2014-07-24 2014-07-24
US62/028,652 2014-07-24
US14/807,687 2015-07-23
US14/807,687 US11223832B2 (en) 2014-07-24 2015-07-23 Methods and apparatus for encoding video data using block palettes and sub-block and pixel scanning orders
PCT/US2015/042120 WO2016015016A1 (en) 2014-07-24 2015-07-24 Sub-block palette mode

Publications (1)

Publication Number Publication Date
CN106576167A true CN106576167A (zh) 2017-04-19

Family

ID=53784007

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580039301.8A Pending CN106576167A (zh) 2014-07-24 2015-07-24 子块调色板模式

Country Status (6)

Country Link
US (1) US11223832B2 (zh)
EP (1) EP3172896B1 (zh)
JP (1) JP2017521964A (zh)
KR (1) KR20170035903A (zh)
CN (1) CN106576167A (zh)
WO (1) WO2016015016A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114450952A (zh) * 2019-09-30 2022-05-06 Ati科技无限责任公司 应用于调色板表导出的分层直方图计算

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114222141A (zh) * 2016-05-28 2022-03-22 世宗大学校产学协力团 视频信号的解码方法及视频信号的解码装置
US10880548B2 (en) 2016-06-01 2020-12-29 Samsung Electronics Co., Ltd. Methods and apparatuses for encoding and decoding video according to coding order
US10523956B2 (en) 2016-11-16 2019-12-31 Citrix Systems, Inc. Multi-pixel caching scheme for lossless encoding
US10382758B2 (en) * 2017-12-15 2019-08-13 Google Llc Transform block-level scan order selection for video coding
US10848787B2 (en) * 2018-08-28 2020-11-24 Google Llc Lossy image compression using palettization of locally mixed colors
US11025913B2 (en) * 2019-03-01 2021-06-01 Intel Corporation Encoding video using palette prediction and intra-block copy
CN110381311B (zh) * 2019-07-01 2023-06-30 腾讯科技(深圳)有限公司 视频帧的编码方法、装置、计算机可读介质及电子设备
US11973985B2 (en) * 2021-11-23 2024-04-30 Mediatek Inc. Video encoder with motion compensated temporal filtering
US20240040159A1 (en) * 2022-07-27 2024-02-01 Qualcomm Incorporated Systems and methods for video decoding with partial-block deblocking filtering for use by constrained directional enhancement filter

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6819793B1 (en) 2000-06-30 2004-11-16 Intel Corporation Color distribution for texture and image compression
DE60315407D1 (de) 2003-02-06 2007-09-20 St Microelectronics Srl Verfahren und Vorrichtung zum Komprimierung von Texturen
GB0504570D0 (en) 2005-03-04 2005-04-13 Falanx Microsystems As Method of and apparatus for encoding data
KR102268090B1 (ko) 2014-03-14 2021-06-23 브이아이디 스케일, 인크. 스크린 콘텐츠 코딩을 위한 팔레트 코딩
CN106716999B (zh) 2014-06-20 2019-08-09 寰发股份有限公司 用于视频编码的调色板预测器信令的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114450952A (zh) * 2019-09-30 2022-05-06 Ati科技无限责任公司 应用于调色板表导出的分层直方图计算
CN114450952B (zh) * 2019-09-30 2023-07-21 Ati科技无限责任公司 应用于调色板表导出的分层直方图计算

Also Published As

Publication number Publication date
JP2017521964A (ja) 2017-08-03
US20160029028A1 (en) 2016-01-28
WO2016015016A1 (en) 2016-01-28
EP3172896B1 (en) 2021-06-23
US11223832B2 (en) 2022-01-11
KR20170035903A (ko) 2017-03-31
EP3172896A1 (en) 2017-05-31

Similar Documents

Publication Publication Date Title
CN105393536B (zh) 使用位移向量从预测性块的帧内预测
CN106105197B (zh) 针对帧内块复制的基于散列的编码器搜索
CN105284113B (zh) 分量间滤波
CN104718752B (zh) 在可缩放视频译码中减少取样相位信息的发信
CN105874797B (zh) 视频数据的编解码方法、装置、设备和存储媒体
CN105052152B (zh) 用于视频译码及压缩的设备、方法及非暂时性计算机可读媒体
CN104396243B (zh) 用于视频压缩的自适应上取样滤波器
CN106576167A (zh) 子块调色板模式
CN105191315B (zh) 一种用于对视频信息进行译码的方法和设备
CN106105209B (zh) 多层视频编解码器的级别定义
CN105900429B (zh) 一种译码视频信息的方法、设备、装置及计算机可读媒体
CN105900426B (zh) 用于对视频信息进行译码的设备、方法和计算机可读媒体
CN106105223B (zh) 译码视频信息的设备和方法及计算机可读存储介质
CN105247868B (zh) 使用缩放因数的再取样
CN107787583A (zh) 在块内复制模式中的参考图片列表构建
CN106416255A (zh) 多层编解码器中的表示格式更新
CN108028932A (zh) 用于视频译码的调色板预测初始化及合并
CN106416258A (zh) 用于位流分区的符合性参数
CN104429076B (zh) 用于可缩放视频译码和3d视频译码的一般化残差预测
CN106165429A (zh) 多层译码中的一致性窗口信息
CN105052153B (zh) 用于视频信息的可缩放译码的装置和方法
CN104919797B (zh) 基于高效率视频译码对视频信息的可缩放译码的装置和方法
CN106471810A (zh) 用于屏幕内容视频数据的运动向量差(mvd)译码的方法
CN106664428A (zh) 用于调色板模式译码的方法
CN107211160A (zh) 通过调色板预测残余编码的视频译码

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170419

WD01 Invention patent application deemed withdrawn after publication