CN103828376A - 用于在帧内编译期间使用扫描编译图案的方法和系统 - Google Patents

用于在帧内编译期间使用扫描编译图案的方法和系统 Download PDF

Info

Publication number
CN103828376A
CN103828376A CN201280032201.9A CN201280032201A CN103828376A CN 103828376 A CN103828376 A CN 103828376A CN 201280032201 A CN201280032201 A CN 201280032201A CN 103828376 A CN103828376 A CN 103828376A
Authority
CN
China
Prior art keywords
sub
compiling
scanning
block
pattern
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
CN201280032201.9A
Other languages
English (en)
Other versions
CN103828376B (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.)
Google Technology Holdings LLC
Original Assignee
Motorola Mobility LLC
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 Motorola Mobility LLC filed Critical Motorola Mobility LLC
Publication of CN103828376A publication Critical patent/CN103828376A/zh
Application granted granted Critical
Publication of CN103828376B publication Critical patent/CN103828376B/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/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/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/18Methods 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 set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

一种用于在帧间编译期间处理变换系数的块的方法,包括:在帧间编译期间接收变换系数的N×M块,其中,N是块的行宽度并且M是块的列高度。该方法进一步包括:将N×M块划分成多个子块,每个子块包括多个变换系数;以及沿着第一对角线扫描编译图案按照编译顺序来一次一个地处理多个子块,以生成与N×M块相对应的比特序列。该处理包括:对于包含至少一个非零变换系数的子块,沿着第二对角线扫描编译图案来至少对变换系数序列中的非零变换系数进行编译。

Description

用于在帧内编译期间使用扫描编译图案的方法和系统
相关申请
本申请涉及并且根据35U.S.C.§119(e)要求由Motorola MobilityLLC对本申请共同所有的以下美国临时专利申请:
2011年6月29日提交的序号61/502,850,题为“Adaptive Scan forLarge Blocks for HEVC”(代理人案号CS38971);
2011年7月5日提交的序号61/504,690,题为“Method andAdaptive Scan for Large Blocks for HEVC”(代理人案号CS38993);
2011年8月19日提交的序号61/525,699,题为“Adaptive Scan forInter Blocks for HEVC”(代理人案号CS39186);以及
2011年8月29日提交的序号61/528,652,题为“Adaptive Scan forIntra Coding for HEVC”(代理人案号CS39211),其全部内容被通过引用并入本文中。
本申请还涉及由Motorola Mobility LLC对本申请共同所有的以下美国专利申请:序号TBD,与本申请共同提交并且题为“Method andSystem for using a Scan Coding Pattern during Inter Coding”(代理人案号CS39186),其全部内容被通过引用并入本文中。
技术领域
本公开一般地涉及数据压缩,并且更具体地涉及用于在视频图片的帧内编译期间使用扫描编译图案的方法和系统。
背景技术
已出现了对用于诸如电视会议、数字媒体存储、电视广播、因特网视频流送和通信的各种应用的视频媒体的更高压缩的增长的需求。包括图像或“图片”序列的视频在由编码器执行的编码过程期间经历压缩。该编码过程从视频产生比特流(在本文中也称为比特序列),其能够通过物理介质来存储和传送。解码器执行解码过程以读取比特流,并且从而得到视频的图片序列。本文所使用的术语“编译”用于指在编码过程或解码过程或两者期间所使用的过程和算法,并且术语编译在本文中可与术语编码和术语解码互换地使用。
视频编译过程包括多个算法,其中的一些被适当地布置成通过减少视频帧内和视频帧之间的冗余信息来实现视频压缩。这些算法中的一个是熵编译,其在编码器中从量化的变换系数的二维阵列生成视频的比特流并且在解码器中执行反过程。更具体地,在现有技术中,在编码器中,沿着扫描编译图案的正方向以一维序列对与宏块(即,像素的16×16块)相对应的二维阵列的量化的变换系数进行熵编译。在解码器中,使用熵解码来从接收到的比特流生成宏块。由于当前正在开发更稳健且灵活的视频压缩技术,诸如高效率视频编译(HEVC)标准草案(也称为H.265和MPEG-H第2部分),所以需要用于编译(诸如熵编译)的扫描编译图案的更灵活使用。
相应地,需要用于在数据的帧内编译期间使用扫描编译图案的方法和系统。
附图说明
附图连同以下详细描述一起并入本说明书中并构成其一部分,并且用于进一步举例说明包括要求保护的发明的概念的实施例,并且解释那些实施例的各种原理和优点,其中在各个视图中相同的附图标记指示相同或功能上类似的元件。
图1是根据实施例的实现用于在视频数据的编译期间使用扫描编译图案来处理变换系数的块的方法的编码器的简化框图。
图2是根据实施例的用于在视频数据的编译期间使用扫描编译图案的方法的流程图。
图3图示了根据实施例的波前、水平和垂直扫描编译图案的使用。
图4图示了根据实施例的波前、水平和垂直扫描编译图案的使用。
图5图示了根据实施例的波前扫描编译图案的使用。
图6图示了根据实施例的波前扫描编译图案的使用。
图7(即,7A和7B共同地)图示了根据实施例的锯齿形、波前、水平和垂直扫描编译图案的使用。
图8(即,8A和8B共同地)图示了根据实施例的锯齿形、波前、水平和垂直扫描编译图案的使用。
图9图示了根据实施例的锯齿形扫描编译图案的使用。
图10图示了根据实施例的波前扫描编译图案的使用。
图11图示了根据实施例的水平扫描编译图案的使用。
图12图示了根据实施例的垂直扫描编译图案的使用。
图13图示了根据实施例的锯齿形扫描编译图案的使用。
图14图示了根据实施例的波前扫描编译图案的使用。
图15图示了根据实施例的水平扫描编译图案的使用。
图16图示了根据实施例的垂直扫描编译图案的使用。
图17图示了根据实施例的水平扫描编译图案的使用。
图18图示了根据实施例的水平扫描编译图案的使用。
图19图示了根据实施例的水平扫描编译图案的使用。
图20图示了根据实施例的水平扫描编译图案的使用。
图21图示了根据实施例的垂直扫描编译图案的使用。
图22图示了根据实施例的垂直扫描编译图案的使用。
图23图示了根据实施例的垂直扫描编译图案的使用。
图24图示了根据实施例的垂直扫描编译图案的使用。
图25图示了根据实施例的用于沿着水平和垂直扫描编译图案的正方向和反方向进行编译的上下文模型。
图26图示了根据实施例的用于沿着水平和垂直扫描编译图案的正向放进行编译的上下文模型。
图27图示了根据实施例的用于沿着水平和垂直扫描编译图案的反方向进行编译的上下文模型。
图28图示了根据实施例的用于沿着锯齿形、水平和垂直扫描编译图案的变换单元块的子块的编译顺序。
图29图示了根据实施例的用于沿着锯齿形、水平和垂直扫描编译图案的变换单元块的子块的编译顺序。
图30图示了根据实施例的用于沿着锯齿形、水平和垂直扫描编译图案的变换单元块的子块的编译顺序。
图31图示了根据实施例的用于变换单元块的系数级和符号编译的水平扫描编译图案的使用。
图32图示了根据实施例的垂直扫描编译图案的使用。
图33图示了根据实施例的垂直扫描编译图案的使用。
图34图示了根据实施例的垂直扫描编译图案的使用。
图35图示了根据实施例的水平扫描编译图案的使用。
图36图示了根据实施例的水平扫描编译图案的使用。
图37图示了根据实施例的水平扫描编译图案。
本领域技术人员将认识到,附图中的元件是为了简单和明了而图示的,并且不一定按比例描绘。例如,附图中的一些元件的尺寸可以相对于其他元件而被方法,以有助于促进对本发明的实施例的理解。
在附图中,在适当的情况下用惯用符号来表示设备和方法部件,仅示出了与理解本发明的实施例有关的那些特定细节,以免由于对于受益于本文中的描述的本领域的技术人员而言显而易见的细节而使本公开含糊不清。
具体实施方式
一般而言,根据各种实施例,本公开提供了用于在帧内编译期间使用扫描编译图案的方法和系统。一种方法包括在帧内编译期间接收变换系数的N×M块,其中,N是块的行宽度并且M是块的列高度。从包括对角线扫描编译图案、水平扫描编译图案以及垂直扫描编译图案的扫描编译图案集合中确定第一扫描编译图案。该方法还包括将N×M块划分成多个子块,每个子块包括多个变换系数;以及沿着第一扫描编译图案按照编译顺序来一次一个地处理多个子块,以生成对应于N×M块的比特序列。该处理包括:对于包含至少一个非零变换系数的子块,沿着第二扫描编译图案对变换系数序列中的至少非零变换系数进行编译。
此外,一种根据本教导的方法由解码器在帧内编译期间执行以用于处理比特序列。该方法包括在帧内编译期间接收对应于变换系数的N×M块的比特序列,其中,N是块的行宽度并且M是块的列高度。该方法还包括处理比特序列以生成多个子块,每个子块包括多个变换系数,其中,沿着第一扫描编译图案按照解码顺序来一次一个地生成子块以形成变换系数的N×M块,其中,从包括对角线扫描编译图案、水平扫描编译图案以及垂直扫描图案的扫描编译图案集合中确定第一扫描编译图案。该处理包括:对于包含至少一个非零变换系数的子块沿着第二扫描编译图案解码比特序列的一部分以生成变换系数序列中的变换系数。
此外,根据本教导一种系统用于在帧内编译期间对视频数据进行编码和解码。该系统包括:解码器,配置成在帧内编译期间接收对应于变换系数的第一N×M块的第一比特序列,其中,N是第一块的行宽度并且M是第一块的列高度;并且处理第一比特序列以生成第一多个子块,每个子块包括第一块的多个变换系数,其中,沿着第一扫描编译图案按照解码顺序来一次一个子块地生成第一多个子块,以形成变换系数的第一N×M块,其中,从包括波前扫描编译图案、水平扫描编译图案以及垂直扫描编译图案的扫描编译图案集合确定第一扫描编译图案。
该系统还包括编码器,该编码器被配置成在帧内编译期间接收变换系数的第二N×M块,其中,N是第二块的行宽度并且M是第二块的列高度;从包括波前扫描编译图案、水平扫描编译图案以及垂直扫描编译图案的扫描编译图案集合中确定第二扫描编译图案;将第二N×M块划分成第二多个子块,每个子块包括第二块的多个变换系数;沿着第二扫描编译图案按照编译顺序来一次一个地处理第二多个子块以生成对应于第二N×M块的第二比特序列。
现在参考附图并且具体的参考图1,以100并且通过以100指示根据实施例的实现用于在视频期间使用扫描编译图案来处理变换系数的块的方法的编码器的说明性简化框图。编码器100包括变换块102、量化器块104、熵编译块106、反量化器块108、反变换块110、环路滤波器112、空间预测块114、基准缓冲器116、时间预测块18以及开关120。在实施例中,编码器100是HEVC编码器,意指该编码器执行符合HEVC标准草案的至少一部分或尚未公开的未来HEVC标准(在本文中共同地称为HEVC或HEVC规范)的数据(例如,视频数据)处理。然而,在替代实施例中,编码器100实现符合其他标准或专有媒体压缩技术的数据(例如,视频、音频或其他媒体)处理。此外,编码器100的框图是“简化的”,因为其仅示出了理解本教导的实施例所需要的那些块。为了图示的简单起见,省略了商业上的编码器实施例的其他元件。
变换块102、量化器块104、熵编译块106、反量化器块108、反变换块110、空间预测块114以及时间预测块118表示编码器100用来执行其功能的不同算法,包括关于本教导所述的功能,例如,如下文参考其余的图2—37所述。在一个实施例中,算法102-110、114和118以及环路滤波器112、基准缓冲器116以及开关120完全用硬件在集成电路芯片上实现。在替代实施例中,将算法102—110、114和118作为软件或固件代码存储在适当的存储器件(即,存储器)上,并且编码器部分地用硬件实现为处理器件,其被编程为实现存储在存储器中的算法。
HEVC是基于块的混合空间和时间预测编译方案。在HEVC中,输入图片首先被划分成正方形块,定义为最大编译单元(LCU)。如本文所使用的,根据块的具体定类型和块已经历的处理,将块定义为诸如像素、量化的变换系数、有效映射的值等的元素或样本的二维阵列或矩阵。这样,术语块、阵列以及矩阵在本文中可互换使用。不同于基本编译单元是16×16像素的宏块(MB)的其他视频编译标准,在HEVC中,基本编译单元、LCU可以大到128×128像素,其在编码过程期间提供更大的灵活性以使压缩和预测适应图像特性。
在HEVC中,LCU可以被划分(即,分离或分割)成四个正方形块,定义为编译单元(CU),每一个都是LCU的四分之一大小。每个CU可以进一步被划分四个较小的CU,每个是CU的四分之一大小。可以重复该分离过程直至满足特定标准,诸如深度级或比率失真(RD)标准。例如,将给出最低RD成本的划分被选择为用于LCU的划分。相应地,在HEVC中,CU定义图片成为多个区域的划分,并且CU替换宏块结构并且包含被定义为下面更详细地描述的预测单元(PU)和变换单元(TU)的一个或多个块。
HEVC使用四叉树数据表示法来描述LCU分区,其为如何将LCU分离成CU。具体地,在四叉树的每个节点处,如果节点被进一步分离成四个子节点,则分配比特“1”,否则分配比特“0”。将二进制数据的四叉树表示连同CU一起进行编译并作为开销进行传送,以在解码过程中使用。在四叉树的每个叶片处,具有2L×2L的尺寸的最终CU(其中2L等于最终CU的行宽度和列高度)能够拥有四个可能块尺寸中的一个,其中,每个CU图案内部的2L×2L、2L×L、L×2L和L×L被定义为预测单元(PU)。因此,最大PU大小等于CU大小,并且其他允许的PU大小取决于预测类型,即帧内预测还是帧间预测。
在本文中将预测单元定义为用于编译过程期间的预测的基本单元。在CU的级别处,由用于编码器(图1中未示出)的控制器来选择帧内(空间)还是帧间(时间)预测,其向(图1的)开关120提供控制信号以指示所选择的预测的类型。然后,将所选择的预测类型应用于CU内的所有PU。指示用于帧内模式的编译模式(即,帧内模式或帧间模式)和帧内预测方向的数据伴随用于对解码器的比特流中的存储或传输的视频数据。另外,编码(和解码)算法例如可经由用于编码器的控制器(未示出)来访问编译模式和帧内预测方向数据。
更具体地,HEVC支持帧内图片(即,I图片或帧)和帧间图片(例如,B和P图片或帧)。帧内图片在不参考任何其他图片的情况下被独立地编译,并且从而提供解码能够开始的点。因此,对于对帧内图片内部的CU进行帧内编译(通过对相应的TU进行编译),仅允许空间预测。本文所使用的帧内编译(或帧内模式下的编译)意指使用帧内(空间)预测算法(例如,图1的114)的块的编译,其中,空间预测利用图片内的空间相关性来减少表示图片所需要的传输数据的量。帧内编译的块在本文中被称为帧内块。预测模式定义用于从先前编码的数据(即,空间或时间)生成信号的方法,其最小化预测与原始之间的残余。
相反,帧间图片使用帧间预测来进行编译,其是从除了当前图片之外的基准图片的数据元素得到的预测。在本文中定义为使用时间(帧间)预测算法(例如,图1的118)的块的编译的帧间编译(或帧间模式下的编译)提供大部分的视频压缩。这是因为在仅帧间编译的情况下,通过使用时间预测算法从图片提取运动信息来对图片与时间基准之间的差进行编译。时间基准是先前编译的帧内或帧间图片。帧间图片支持帧内和帧间预测二者。帧间编译的块在本文中被称为帧间块。
如上文所示的,可以对CU进行空间编译(在帧内模式下)或时间预测编译(在帧间模式下)。如果以帧内模式对CU进行编译,则CU的每个PU可以具有其自己的空间预测方向。如果以帧间模式对CU进行编译,则CU的每个PU可以具有其自己的运行向量和关联基准图片。再次返回图1的描述,HEVC编码器100通常如下进行操作以实现CU编译。在一个实施例中,给定与视频数据相对应的像素的当前PU块,根据开关120的放置,通过使用空间预测块114的空间预测或使用时间预测块118的时间预测来首先获得预测PU,x′。然后从当前PU中减去预测PU,得到残余PU,e。
HEVC提供每PU三十五个可能角空间预测方向,包括但不限于水平、垂直、45度对角线、135度对角线、DC等。预测方向具有+/-[0,2,5,9,13,17,21,26,32,33,34]的角度。可以使用任何适当的语法来指示每PU的空间预测方向。时间预测通过运动估计操作来执行。运动估计操作搜索用于在编码器100(即,反量化器108、反变换110以及环路滤波器112)内使用解码过程生成并存储在基准缓冲器116中的基准图片上的当前PU的最佳匹配预测。用运动矢量(MV)和关联的基准图片(refIdx)来描述最佳匹配时间预测。B图片中的PU可以具有高达两个MV。根据适当的语法,MV和refIdx二者都由时间预测块118来提供。
像素的变换单元块(TU)(对应于残余PU,即e,以及包括PU的CU)在变换块102内经历变换操作,得到变换域中的TU,即E,每一个都包括对应于视频数据的多个变换系数。在HEVC中,可以将不同大小的块变换T(TU)集合应用于CU。更具体地,TU可以与PU大小相同或超过PU的大小但不超过CU;或者PU可以包含多个TU。CU内的每个TU的大小和位置用单独的四叉树来识别,称为RQT,其伴随用于对解码器的比特流中的存储或传输的编译的CU。此外,编码(和解码)算法例如可经由用于编码器的控制器(未示出)来访问包括在RQT中的数据。更具体地,HEVC使用块变换操作,其趋向于使TU块内的像素去相关并且将块能量压缩成低阶变换系数,其被定义为被视为在频域中的标量。在实施例中,变换块102执行TU块内的像素的离散余弦变换(DCT)。TU在本文中被定义为在变换、量化以及熵编译操作期间处理的元素的块或块单元。
变换块102的输出E是包括变换系数的二维阵列或矩阵的变换单元块。残余TU、E的变换系数在量化器块104中被量化以生成包括量化的变换系数的二维矩阵的变换单元块。从变换块102输出的变换系数和从量化器104输出的量化的变换系数在本文中一般地称为“变换系数”或“系数”,因为每个系数集合是被视为在频域中的标量。而且,当使用跳跃变换时,可以在量化过程期间跳过一个或多个变换单元;并且当使用脉冲代码调制(PCM)模式或无损耗模式时,不使用量化过程。出于这些教导的目的,从这两个方案得到的元素的矩阵也被视为具有“变换系数”的TU。然而,量化在数据压缩中起到非常重要的作用。在HEVC中,量化将高精度变换系数转换成有限数目的可能值。量化是有损耗操作,并且由量化引起的损耗不能恢复。
对量化的变换系数进行熵编译,得到来自编码器100的最终压缩比特流122(在本文中也称为一维“比特序列”)。在HEVC中,使用上下文自适应二进制算术编译(CABAC)来执行熵编译。其他视频压缩技术使用CABAC以及其他熵编译算法,诸如上下文自适应可变长度编译(CAVLC)。当视频压缩技术提供CAVLC和CABAC二者时,可以说能够实现这两个熵编译技术的编码器(或解码器)根据两个配置进行操作:当实现CAVLC熵编译时的低复杂性配置以及当实现CABAC熵编译时的高效率配置。
通过CABAC编译,用上下文模型对逻辑TU块内的变换系数进行编译,并且分三个部分对变换系数的TU进行编译。首先,对与变换系数的TU相对应的“子块级”有效映射进行编译(其在本文中也称为L1编译)。根据本教导,TU被划分或分割成多个子块以进行编译,其中,每个子块包含多个变换系数,并且在一个实施例中包括不同的多个变换系数。子块级有效映射指示(例如,用0的二进制值)TU的特定子块包含所有零系数,或者指示(例如,用1的二进制值)TU的特定子块包含至少一个非零系数。在子块在子块级有效映射中具有0的关联二进制值(即,零子块)的情况下,这用信号向解码器通知不要求该子块的进一步处理(例如,没有该子块内的变换系数的解码)。非零子块是在子块级有效映射中具有1的关联二进制值的子块。
第二,变换系数的TU块的编译包括对“系数级”有效映射进行编译,其对应于具有至少一个非零变换系数并且具有与子块相同的大小的每个子块(其在本文中也称为L0编译)。系数级有效映射用于向解码器指示在给定子块的每个位置处相应的变换系数是零还是非零。L0和L1编译在本文中被共同地称为“两级”有效映射编译。
第三,变换系数的TU块的编译,或者具体地是TU块的非零子块的编译,包括子块内的相应符号信息和至少非零变换系数进行编译。在实施例中,对零和非零变换系数和关联符号信息二者进行编译。对子块内的变换系数进行编译的该第三方面在本文中称为“级别和符号”编译,其中,“级别”被定义为变换系数值。块或矩阵内的值被共同地称为“元素”,包括TU内的变换系数和有效映射内的值。
在编码器100内的解码过程中,残余TU的量化变换系数在反量化器块108中被反量化(量化器块104的逆(非并非精确地)操作),得到残余TU的反量化变换系数,E′。残余TU的反量化变换系数E′在反变换块110中(反变换块102的逆)被反变换,得到重构残余TU,e′。然后,重构残余TU、e′被添加到空间或时间的相应预测x′,以形成重构PU,即x″。在HEVC中,对重构LCU执行自适应环路滤波器112,其使块边界平滑化并且最小化输入和输出图片之间的编译失真。如果重构图片是基准图片,则将其作为时间基准存储在基准缓冲器116中以用于未来的时间预测。
现在转到图2,示出并通常以200指示根据实施例的用于在诸如视频数据的数据或媒体的编译期间使用扫描编译图案的方法。在实施例中,编码器100例如在熵编译块106中执行方法200的至少一些功能,以在帧内或帧间编译期间对变换系数的二维矩阵(即,块)应用扫描编译图案。在另一实施例中,解码器(未示出,但是执行编码器100的逆过程)在解码器内的熵编译块中执行方法200的至少一些功能,以对比特序列应用扫描编译方案以生成变换系数的N×M矩阵。可以用如在HEVC中使用的CABAC熵编译或用如可以在其他视频压缩技术中使用的CAVLC熵编译来实现方法200。
如用CABAC或CAVLC熵编译实现的,根据一个实施例,方法200用于扫描(即,用于扫描编译,意图应用扫描编译图案)变换系数的N×M TU块或矩阵(在编码期间)或对比特序列(在解码期间)以用于帧内编译或帧间编译。根据另一实施例,与CABAC或CAVLC熵编译兼容,在帧内编译或帧间编译期间,将方法200用于非零变换系数的级别或符号编译。在又一实施例中,与CABAC熵编译兼容,方法200在帧内编译或帧间编译期间用于两级有效映射编译(即,子块级(L1)有效映射和与具有至少一个非零变换系数的子块相对应的系数级(L0)有效映射的编译)。可以在帧内或帧间编译期间,针对所有实施例沿着所选扫描编译图案的正方向或反方向在子块(和子块内的变换系数/值序列)之间按照子块编译顺序来执行与变换系数的N×M矩阵(包括L0和L1有效映射及子块内的级别和符号编译)相关联的多个子块的处理。
现在转到如在编码器100中执行的方法200的细节(稍后描述如在解码器中执行的方法200),在202处,熵编译块接收变换系数的N×M矩阵,其中,N是矩阵的行宽度并且M是矩阵的列高度。根据本教导,编码器100如何对变换系数的TU应用扫描编译取决于(在204处)编码器是对相应CU进行帧内编译还是对CU进行帧间编译。如先前所述,关于编译类型的此类数据伴随视频数据。
在正在对CU执行帧内编译的情况下,编码器(在224处)例如从RQT四叉树确定变换系数的N×M矩阵的尺寸,其影响在熵编译期间应用于N×M矩阵的扫描编译图案的类型。本文所使用的扫描编译图案被定义为对应于有序序列的图案,其在应用于变换系数的二维N×M矩阵时沿着扫描编译图案的方向将与N×M矩阵相关联的元素(例如,变换系数和有效映射值)排序成比特序列,并且在应用于比特序列时,生成具有矩阵内的子块的编译顺序和沿着扫描编译图案排序的子块内的元素序列的变换系数的二维N×M矩阵。
例如,在一个实施例中,沿着扫描编译图案的正方向对与变换系数的N×M矩阵相关联的元素进行扫描编译,其中,扫描编译图案的正方向在矩阵的左上角处开始并且沿着扫描编译图案的有序序列朝着矩阵的右下角前进。在另一实施例中,沿着扫描编译图案的反(相反)方向对与变换系数的N×M矩阵相关联的元素进行扫描编译,其中,扫描编译图案的反方向从矩阵的右下角起在第一非零元素处开始(即,在沿着正方向扫描方向的最后一个非零元素或“最后有效位置”处开始,参见例如图31)并沿着扫描编译图案的有序顺序朝着矩阵的左上角前进。
编译是沿着扫描编译图案的正方向还是反方向由例如在编码器和解码器中实现的特定视频压缩标准或机制来确定。在HEVC编码器和解码器实现中,熵编译在编码过程和解码过程两者期间沿着所选扫描编译图案的反方向。此外,大多数附图被描述为使逆扫描编译(即,沿着反方向应用扫描编译图案)在对应于正在被编译的矩阵的右下角的元素位置处开始。在实施例(例如,HEVC实施例)中,逆扫描编译在与正在被编译的第一非零元素(参见例如图31)相对应的矩阵位置(从右下角开始)处开始。沿着正方向应用扫描编译图案在本文中被称为正向扫描编译。
更具体地,编码器(在206处)确定变换系数的N×M矩阵是否具有4×4或8×8的尺寸。如果是,则编码器基于与变换系数的N×M矩阵相关联的帧内预测方向来选择(在208处)扫描编译图案。在实施例中,与HEVC兼容,当N=M=4或N=M=8时,编码器基于与变换系数的N×M矩阵相关联的帧内预测方向来从包括对角线扫描编译图案(在HEVC中波前扫描编译图案)、水平扫描编译图案或垂直扫描编译图案的扫描编译图案集合中选择或确定第一扫描编译图案(在208处)。在一个实施例中,应用于N×M矩阵的帧内预测方向与扫描编译图案之间的关系或映射被存储在编码器和解码器可访问的表中。例如,该表包含每一个都与帧内预测角相对应的索引值,其中,该索引用于确定或选择用于4×4TU块或8×8TU块的扫描编译图案。
在(在210处)变换系数的N×M矩阵的尺寸是4×4的情况下,熵编译块对4×4矩阵应用所选扫描编译图案,以从而(在214处)沿着所选扫描编译图案的正方向或反方向对变换系数的N×M矩阵进行编译。这包括对4×4TU内的非零变换系数进行级别和符号编译以及对与4×4TU变换系数相对应的4×4系数级有效映射的值进行编译。图3图示了根据一个实施例的对4×4矩阵的波前(300)、水平(310)以及垂直(320)扫描编译图案的应用。在本说明性实施方式中,应用于变换系数的4×4TU的特定扫描编译图案300、310或320取决于与变换系数的TU相关联的帧内预测方向。
每个扫描编译图案300、310、320将元素的二维4×4块的(例如,二维TU块或较大划分TU块内的4×4子块)的元素沿着在扫描编译图案中所示的数字序列1—16的方向排序成比特序列。即,在一个实施例中,每个扫描编译图案300、310、320的正方向在扫描编译图案的左上角中的数字序列的数字1处开始,并且沿着数字序列从1前进至16,直至到达扫描编译图案的右下角中的数字16。而每个扫描编译图案300、310、320的反方向在扫描编译图案的右下角中的数字序列的数字16处开始(或在从位置16起的最后一个非零元素开始),并沿着数字序列的反方向从16开始(或从从位置16起的最后一个非零元素)前进直至到达扫描编译图案的左上角中的数字1。如能够看到的,N×M块的元素从1到16或从16到1进行排序的方式取决于所选特定扫描编译图案300、310、320。
本文所使用的对角线扫描编译图案沿着矩阵内的对角线方向对二维矩阵的元素进行排序。波前(对角线)扫描编译图案和锯齿形(对角线)扫描编译图案二者都是对角线扫描编译图案的示例。波前扫描编译图案(在HEVC规范中也称为竖直对角线扫描)被定义为沿着同一对角线方向对块的元素进行排序,全部在正向上右上方或全部在反方向上的左下方;而锯齿形扫描编译图案的方向在上下之间交替。水平扫描编译图案被定义为在正向上将块的元素每行从左到右并从顶行或底行进行排序并在反方向上将块的元素每行从右到左且从底行到顶行进行排序的扫描编译图案。垂直扫描编译图案被定义为在正向上将块的元素每列从上到下且从左列向右列进行编译并在反方向上将块的元素每列从下到上且从右列向左列进行编译的扫描编译图案。
返回转到方法200,在N×M帧内块具有8×8大小的情况下,编码器100在沿着所选(第一)扫描编译图案按照编译顺序一次一个地处理所述多个子块(在220处)之前,将元素的N×M矩阵(在212)处划分成多个子块,每个包括多个元素,以生成与变换系数的TU相对应的比特序列。编译(和解码)顺序(在本文中也称为扫描编译顺序)被定义为用于与块相关联的子块的依次处理顺序。在这种情况下,如何划分矩阵取决于所选扫描编译图案,如在图4中能够看到的。根据本教导,在将变换系数的N×M矩阵划分成多个子块的情况下,N×M矩阵的处理包括多个组成部分或方面。即,生成与所述多个子块相对应的子块级有效映射并沿着第一扫描编译图案进行编译。另外,生成与具有一个或多个非零变换系数的每个子块相对应的系数级有效映射,并沿着第二扫描编译图案在序列中对有效映射中的值进行编译。
此外,针对包含至少一个非零变换系数的子块,处理包括(在222处)沿着第二扫描编译图案在变换系数序列中至少对非零变换系数进行级别和符号编译。变换系数序列被定义为用于子块内的变换系数的依次处理顺序。在一个实施例中(与HEVC一致),第一和第二扫描编译图案包括相同类型的扫描编译图案。在替代实施例中,第一和第二扫描编译图案包括不同类型的扫描编译图案。
如前所述,如何划分矩阵取决于所选扫描图案,如图4中所示。更具体地,图4图示了根据实施例的用于对8×8矩阵(例如,TU块,其中,N=M=8)的元素进行排序的波前(400)、水平(410)以及垂直(420)扫描编译图案。根据本实施例,当所选扫描编译图案是波前扫描编译图案400时,(变换系数的N×M矩阵的)多个子块包括四个4×4子块402、404、406和408。此外,在一个实施例中,4×4子块的扫描编译顺序包括处理右下方子块408,后面是右上方子块404,后面是左下方子块406,后面是左上方子块402,由此,子块的扫描编译顺序沿着波前扫描编译图案的反方向。在这种情况下,沿着所选波前扫描编译图案的反方向对四个4×4子块、402、404、406和408中的每一个内的元素进行熵编译,如参考图3的图案300所示和所述。
在另一实施例中,4×4子块的扫描编译顺序包括处理左上方子块,后面是左下方子块,后面是右上方子块,后面是右下方子块,由此,子块的扫描编译顺序沿着波前扫描编译图案的正方向。在这种情况下,沿着所选波前扫描编译图案的正向对四个4×4子块、402、404、406和408中的每一个内的元素进行熵编译,如参考图3的图案300所示和所述。
当所选扫描编译图案是水平扫描编译图案410时,(元素的8×8矩阵的)多个子块包括8×2子块412、414、416和418,其中,8是每个子块的行宽度且2是每个子块的列高度。在一个实施例中,子块412、414、416和418的扫描编译顺序包括从底部子块418向顶部子块412处理子块,由此,子块的扫描编译顺序是沿着水平扫描编译图案的反方向。沿着水平扫描编译的反方向对子块内的元素进行熵编译从相反数字序列中的数字(元素)64前进至8×8矩阵的数字(元素)1。在另一实施例中,子块412、414、416和418的扫描编译顺序包括从顶部子块418向底部子块412处理子块,由此,子块的扫描编译顺序是沿着水平扫描编译图案的正方向。沿着水平扫描编译的正方向对子块内的元素进行熵编译从正向数字序列中的数字(元素)1前进至8×8矩阵的数字(元素)64。
当所选扫描编译图案是垂直扫描编译图案420时,(元素的8×8矩阵的)多个子块包括2×8子块422、424、426和428,其中,2是每个子块的行宽度且8是每个子块的列高度。在一个实施例中,子块422、424、426和428的扫描编译顺序包括从右侧子块428向左侧子块422处理子块,由此,子块的扫描编译顺序是沿着垂直扫描编译图案的反方向。沿垂直扫描编译的反方向对子块内的元素进行熵编译从相反数字序列中的数字(元素)64前进至8×8矩阵的数字(元素)1。在另一实施例中,子块422、424、426和428的扫描编译顺序包括从左侧子块422向右侧子块428处理子块,由此,子块的扫描编译顺序是沿着垂直扫描编译图案的正方向。沿着垂直扫描编译的正方向对子块内的元素进行熵编译从正方向数字序列中的数字(元素)1前进至8×8矩阵的数字(元素)64。
返回方法200的判定菱形206,当元素的(接收)N×M矩阵的尺寸大于8×8(在这种情况下N=M且N和M大于8)时,所选(在216处)扫描编译图案是波前扫描编译图案。在一个实施例中,应用波前扫描编译图案来对变换系数的16×16矩阵进行编译,如在图5中的500处所示。在另一实施例中,应用波前扫描编译图案来对变换系数的32×32矩阵进行编译,如在图6中的600处所示。在这两个实施例中,将元素的矩阵划分(在218处)成多个4×4子块。
如参考图4所示,16×16矩阵被划分成16个4×4子块。在一个实施例中,子块1—16的扫描编译顺序包括按照从16至1的相反数字序列来处理子块,由此,子块的扫描编译顺序是沿着波前扫描编译图案的反方向。在这种情况下,沿着所选波前扫描编译图案的反方向对子块1—16中的每一个内的元素进行熵编译,如参考图3的图案300所示和所述。在另一实施例中,子块1-16的扫描编译顺序包括按照从16至1的相反数字序列来处理子块,由此,子块的扫描编译顺序是沿着波前扫描编译图案的正方向。在这种情况下,沿着所选波前扫描编译图案的正方向对子块1-16中的每一个内的元素进行熵编译,如参考图3的图案300所示和所述。
如参考图6所示,32×32矩阵被划分成64个4×4子块。在一个实施例中,子块1-64的扫描编译顺序包括按照从64至1的相反数字序列来处理子块,由此,子块的扫描编译顺序是沿着波前扫描编译图案的反方向。在这种情况下,沿着所选波前扫描编译图案的反方向对子块1-64中的每一个内的元素进行熵编译,如参考图3的图案300所示和所述。在另一实施例中,子块1-64的扫描编译顺序包括按照从64至1的相反数字序列来处理子块,由此,子块的扫描编译顺序是沿着波前扫描编译图案的正方向。在这种情况下,沿着所选波前扫描编译图案的正方向对子块1-64中的每一个内的元素进行熵编译,如参考图3的图案300所示和所述。
再次转到方法200的判定块204,其中对CU执行帧间编译,编码器例如根据RQT四叉树来确定(在226处)变换系数的N×M矩阵的尺寸,其影响如何在上编译期间向N×M矩阵应用所选扫描编译图案。如果编码器确定(在228处)变换系数的N×M矩阵的尺寸是4×4,则熵编译块选择波前扫描编译图案并对4×4矩阵应用所选扫描编译图案,如参考(图3的)扫描编译图案300所示和所述,以从而(在230处)沿着所选扫描的正向和相反方向在序列中对4×4矩阵内的元素进行熵编译。
在编码器确定(在228处)N×M矩阵大于4×4(在这种情况下,N=M且N和M大于4)的情况下,所选(在216处)第一扫描编译图案是第一对角线(例如,波前)扫描编译图案。在一个实施例中,对元素的8×8矩阵应用波前扫描编译图案,如上文参考图4的波前扫描编译图案400详细地描述并图示出的。在另一实施例中,对元素的16×16矩阵应用波前扫描编译图案,如上文参考图5的波前扫描编译图案500详细地描述并图示的。在另一实施例中,对元素的32×32矩阵应用波前扫描编译图案,如上文参考图6的波前扫描编译图案600详细地描述并图示出的。在所有这些实施例中,在处理所述多个子块(在220处)之前,沿着第一对角线扫描编译图案按照编译顺序一次一个地将元素的N×M矩阵(在218处)划分成多个4×4子块,每个包括多个元素,以生成对应于变换系数的TU的比特序列。
根据本教导,在将变换系数的N×M矩阵划分成多个4×4子块时,N×M矩阵的处理(编译)包括多个组成部分或方面(222)。即,处理所述多个子块包括两级有效映射编译。更特别地,生成对应于多个子块的子块级有效映射并沿着第一对角线编译图案进行编译。另外,生成与具有一个或多个非零变换系数的每个子块相对应的系数级有效映射,并沿着第二对角线扫描编译图案在序列中对有效映射中的值进行编译。此外,针对包含至少一个非零变换系数的子块,处理包括(在222处)沿着第二对角线扫描编译图案在变换系数序列中至少对非零变换系数进行级别和符号编译。在一个实施例中(与HEVC一致),第一和第二扫描编译图案包括相同类型的扫描编译图案,即波前扫描编译图案。在替代实施例中,第一和第二扫描编译图案包括不同类型的扫描编译图案。
如上所述,解码器(未示出,但其执行编码器100的逆过程)在解码器内的熵解码块中执行方法200的至少一些功能。方法200如上所述是用于帧内和帧间编译,不同的是解码器执行方法200以生成或构建(从接收到的比特序列)变换系数的N×M矩阵,包括每个具有多个变换系数的多个子块。
根据本教导,解码器包括熵解码块,其执行与编码器的熵编码块106相反的算法。解码器还包括与在编码器100内执行解码过程相同的元素,其从熵编译块接收量化变换系数并生成TU和视频图片。即,解码器内的解码过程还包括如上所述地运行的反量化器108、反变换110、环路滤波器112、空间预测块114、基准缓冲器116、时间预测块118以及开关120。
相应地,在一个实施例中,解码器执行用于在数据(例如,视频数据)的解码期间沿着扫描编译图案对比特序列进行熵编译以生成帧内帧的方法200。解码器在帧内编译期间接收对应于变换系数的N×M矩阵的比特序列,其中,N是矩阵的行宽度且M是矩阵的列高度。解码器然后处理该比特序列以生成多个子块,每个包括多个变换系数,其中,沿着第一扫描编译图案按照解码顺序一次一个地生成子块以形成变换系数的N×M矩阵,其中,从包括对角线扫描编译图案、水平扫描编译图案以及垂直扫描图案的扫描编译图案集合中确定第一扫描编译图案。
该处理还包括针对包含至少一个非零变换系数的子块将比特序列的一部分解码以沿着第二扫描编译图案生成变换系数序列中的变换系数。此外,该处理包括对子块级有效映射和对应于每个包含至少一个非零变换系数的每个子块的系数级有效映射进行编译。当N=M且N和M大于8时,第一和第二扫描编译图案包括(在HEVC实施方式中)波前对角线扫描编译图案;每个子块具有4×4的大小;并执行逆扫描编译。
在N=M=8的情况下,基于与变换系数的N×M块相关联的帧内预测方向来确定第一扫描编译图案。在第一扫描编译图案是垂直扫描编译图案的情况下,所述多个子块包括2×8子块,其中,2是每个子块的行宽度且8是每个子块的列高度,并且2×8子块的解码顺序是从右至左或从左至右。在第一扫描编译图案是水平扫描编译图案的情况下,所述多个子块包括四个8×2子块,其中,8是每个子块的行宽度且2是每个子块的列高度,并且8×2子块的解码顺序从从下到上或从上到下。此外,在第一扫描编译图案是波前对角线扫描编译图案的情况下,所述多个子块包括四个4×4子块,并且4×4子块的解码顺序从右下方子块开始,后面是右上方子块,后面是左下方子块,后面是左上方子块,或者从左上方子块开始,后面是左下方子块,后面是右上方子块,后面是右下方子块。在一个实施例中(与HEVC一致),第一和第二扫描编译图案包括相同类型的扫描编译图案。在替换实施例中,第一和第二扫描编译图案包括不同类型的扫描编译图案。
根据另一实施例,解码器执行用于在数据(例如,视频数据)的解码期间沿着扫描编译图案对比特序列进行熵编译以生成帧间帧的方法200。解码器在帧间编译期间接收对应于变换系数的N×M矩阵的比特序列,其中,N是矩阵的行宽度且M是矩阵的列高度。解码器然后处理比特序列以生成多个子块,每个包括多个变换系数,其中,沿着第一对角线扫描编译图案按照解码顺序一次一个地生成子块以形成变换系数的N×M矩阵。
针对包含至少一个非零变换系数的子块处理比特序列还包括将比特序列的一部分解码以沿着第二对角线扫描编译图案在变换系数序列中生成变换系数。此外,该处理包括对子块级有效映射和与具有至少一个非零变换系数的每个子块相对应的系数级有效映射进行编译。当N=M且N和M等于或大于8时,第一和第二扫描编译图案包括(在HEVC实施方式中)波前对角线扫描编译图案;每个子块具有4×4的大小;并执行逆扫描编译。
图2—6图示出与HEVC兼容的本教导的一个示例性实施方式。然而,根据本教导,在编译期间向N×M矩阵应用扫描编译图案的许多附加示例是可行的。多个此类示例包括但不限于参考其余的图7—37所提供和描述的那些。参考图7—37描述和图示的实施例能够例如:在视频或其他数据的帧内编译或帧间编译期间;在编码或解码过程期间;用CABAC或CAVLC熵编译或其他熵编译技术;沿着所选扫描编译图案的正向或反方向;针对有效映射及级别和符号编译;针对有效映射的两级编译,例如L0编译和L1编译而应用。
一般地,根据这些附加示例性实施方式,在变换系数的N×M矩阵的编码期间,其中,N是矩阵的行宽度且M是矩阵的列高度,该矩阵被划分成少数的子块(例如,两个或四个),并且沿着所选扫描编译图案的方向按照编译顺序每次一个块地处理每个子块。处理每个子块包括沿着所选扫描编译图案的方向对子块内的元素进行熵编译以生成相应的比特序列。
此外,一般地,根据这些附加示例性实施方式,在对应于诸如视频数据的数据的比特序列的解码期间,处理比特序列以生成N×M矩阵(例如,变换单元块),包括每个具有与视频数据的一部分相对应的多个变换系数的多个子块,其中,N是变换单元块的行宽度且M是变换单元块的列高度。处理比特序列包括沿着所选扫描编译图案的方向按照编译顺序一次一个地生成多个子块。生成每个子块包括对比特序列的一部分进行熵编译以确定沿着所选扫描编译图案的方向的按照变换系数顺序的子块内的所述多个变换系数。
现在转到其余图7—27的细节。图7(即,7A和7B共同地)图示出使用根据实施例的锯齿形、波前、水平和垂直扫描编译图案。对元素700的N×M矩阵应用锯齿形扫描编译图案。根据本教导,在编码期间,将矩阵700划分成(或者,在解码期间,生成矩阵700,其具有)四个子块702、704、706、708。沿着扫描编译图案的正方向按照扫描编译顺序702、704(或706)、706(或704)以及708或者沿着扫描编译图案的反方向按照扫描编译顺序708、706(或704)、704(或706)以及702来处理子块。处理每个子块包括沿着锯齿形扫描编译图案的方向对子块(即,与之相关联)的元素(例如,变换系数或有效映射值)进行熵编译。用于沿着扫描编译图案进行熵编译的正方向从矩阵700的位置740处的元素开始,并且遵循对应于箭头线的正方向的序列直至到达矩阵700的位置742处的元素。用于沿着扫描编译图案的熵编译的反方向从矩阵700的位置742处的元素开始,并且遵循对应于箭头线的相反方向的序列直至到达矩阵700的位置740处的元素。
进一步根据图7,对元素710的N×M矩阵应用波前扫描编译图案。根据本教导,在编码期间,将矩阵710划分成(或者,在解码期间,生成矩阵710,其具有)四个子块712、714、716、718。沿着扫描编译图案的正方向按照扫描编译顺序712、714(或716)、716(或714)以及708或者沿着扫描编译图案的反方向按照扫描编译顺序718、716(或714)、714(或716)以及712来处理子块。处理每个子块包括沿着波前扫描编译图案的方向对子块内的元素进行熵编译。用于沿着扫描编译图案进行熵编译的正方向从矩阵710的位置744处的元素开始,并且遵循对应于箭头线的正方向的序列直至到达矩阵710的位置746处的元素。用于沿着扫描编译图案的熵编译的反方向从矩阵710的位置746处的元素开始,并且遵循对应于箭头线的相反方向的序列直至到达矩阵710的位置744处的元素。
进一步根据图7,对元素720的N×M矩阵应用水平扫描编译图案。根据本教导,在编码期间,将矩阵720划分成(或者,在解码期间,生成矩阵720,其具有)四个子块722、724、726、728。沿着扫描编译图案的正方向按照扫描编译顺序722、724、726和728或者沿着扫描编译图案的反方向按照扫描编译顺序728、726、724和722来处理子块。处理每个子块包括沿着水平扫描编译图案的方向对子块内的元素进行熵编译。用于沿着扫描编译图案进行熵编译的正方向从矩阵720的位置748处的元素开始,并且遵循对应于箭头线的正方向的序列直至到达矩阵720的位置750处的元素。用于沿着扫描编译图案的熵编译的反方向从矩阵720的位置750处的元素开始,并且遵循对应于箭头线的相反方向的序列直至到达矩阵720的位置748处的元素。
进一步根据图7,对元素730的N×M矩阵应用垂直扫描编译图案。根据本教导,在编码期间,将矩阵730划分成(或者,在解码期间,生成矩阵730,其具有)四个子块732、734、736、738。沿着扫描编译图案的正方向按照扫描编译顺序732、736、734和738或者沿着扫描编译图案的反方向按照扫描编译顺序738、734、736和732来处理子块。处理每个子块包括沿着垂直扫描编译图案的方向对子块内的元素进行熵编译。用于沿着扫描编译图案进行熵编译的正方向从矩阵730的位置752处的元素开始,并且遵循对应于箭头线的正方向的序列直至到达矩阵730的位置754处的元素。用于沿着扫描编译图案的熵编译的反方向从矩阵730的位置754处的元素开始,并且遵循对应于箭头线的相反方向的序列直至到达矩阵730的位置752处的元素。
图8(即8A和8B共同地)图示出根据实施例的锯齿形、波前、水平和垂直扫描编译图案。对元素800的N×M矩阵应用锯齿形扫描编译图案。根据本教导,在编码期间,将矩阵800划分成(或者,在解码期间,生成矩阵800,其具有)两个子块802和804沿着扫描编译图案的正方向按照扫描编译顺序802、804或者沿着扫描编译图案的反方向按照扫描编译顺序804和802来处理子块。处理每个子块包括沿着锯齿形扫描编译图案的方向对子块内的元素进行熵编译。用于沿着扫描编译图案进行熵编译的正方向从矩阵800的位置806处的元素开始,并且遵循对应于箭头线的正方向序列直至到达矩阵800的位置808处的元素。用于沿着扫描编译图案的熵编译的反方向从矩阵800的位置808处的元素开始,并且遵循对应于箭头线的相反方向的序列直至到达矩阵800的位置806处的元素。
进一步根据图8,对元素810的N×M矩阵应用波前扫描编译图案。根据本教导,在编码期间,将矩阵810划分成(或者,在解码期间,生成矩阵810,其具有)两个子块812和814沿着扫描编译图案的正方向按照扫描编译顺序812、814或者沿着扫描编译图案的反方向按照扫描编译顺序814和812来处理子块。处理每个子块包括沿着波前扫描编译图案的方向对子块内的元素进行熵编译。用于沿着扫描编译图案进行熵编译的正方向从矩阵810的位置816处的元素开始,并且遵循对应于箭头线的正方向的序列直至到达矩阵710的位置818处的元素。用于沿着扫描编译图案的熵编译的反方向从矩阵810的位置818处的元素开始,并且遵循对应于箭头线的相反方向的序列直至到达矩阵810的位置816处的元素。
进一步根据图8,对元素820的N×M矩阵应用水平扫描编译图案。根据本教导,在编码期间,将矩阵820划分成(或者,在解码期间,生成矩阵820,其具有)四个子块822和824。沿着扫描编译图案的正方向按照扫描编译顺序822、824或者沿着扫描编译图案的反方向按照扫描编译顺序824、822来处理子块。处理每个子块包括沿着水平扫描编译图案的方向对子块内的元素进行熵编译。用于沿着扫描编译图案进行熵编译的正方向从矩阵820的位置826处的元素开始,并且遵循对应于箭头线的正方向的序列直至到达矩阵820的位置828处的元素。用于沿着扫描编译图案的熵编译的反方向从矩阵820的位置828处的元素开始,并且遵循对应于箭头线的相反方向的序列直至到达矩阵820的位置826处的元素。
进一步根据图8,对元素830的N×M矩阵应用垂直扫描编译图案。根据本教导,在编码期间,将矩阵830划分成(或者,在解码期间,生成矩阵830,其具有)两个子块832和834。沿着扫描编译图案的正方向按照扫描编译顺序832、834或者沿着扫描编译图案的反方向按照扫描编译顺序834、832来处理子块。处理每个子块包括沿着垂直扫描编译图案的方向对子块内的元素进行熵编译。用于沿着扫描编译图案进行熵编译的正方向从矩阵830的位置836处的元素开始,并且遵循对应于箭头线的正方向的序列直至到达矩阵830的位置838处的元素。用于沿着扫描编译图案的熵编译的反方向从矩阵830的位置838处的元素开始,并且遵循对应于箭头线的相反方向的序列直至到达矩阵830的位置836处的元素。
图9图示出根据实施例的应用于元素900的16×16矩阵的锯齿形扫描编译图案。在编码期间,将矩阵900划分成(或者,在解码期间,生成矩阵900,其具有)四个子块902、904、906、908。从矩阵900内的元素位置910至元素位置912沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵900内的元素位置912至元素位置910的箭头线的反方向执行子块之间和内部的逆扫描编译。
图10图示出根据实施例的应用于元素1000的16×16矩阵的波前扫描编译图案。在编码期间,将矩阵1000划分成(或者,在解码期间,生成矩阵1000,其具有)四个子块1002、1004、1006、1008。从矩阵1000内的元素位置1010至元素位置1012沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵1000内的元素位置1012至元素位置1010的箭头线的反方向执行子块之间和内部的逆扫描编译。
图11图示出根据实施例的应用于元素1100的16×16矩阵的水平扫描编译图案。在编码期间,将矩阵1100划分成(或者,在解码期间,生成矩阵1100,其具有)四个子块1102、1104、1106、1108。从矩阵1100内的元素位置1110至元素位置1112沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵1100内的元素位置1112至元素位置1110的箭头线的反方向执行子块之间和内部的逆扫描编译。
图12图示出根据实施例的应用于元素1200的16×16矩阵的垂直扫描编译图案。在编码期间,将矩阵1200划分成(或者,在解码期间,生成矩阵1200,其具有)四个子块1202、1204、1206、1208。从矩阵1200内的元素位置1210至元素位置1212沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵1200内的元素位置1212至元素位置1210的箭头线的反方向执行子块之间和内部的逆扫描编译。
图13图示出根据实施例的应用于元素1200的32×32矩阵的锯齿形扫描编译图案。在编码期间,将矩阵1300划分成(或者,在解码期间,生成矩阵1300,其具有)四个子块1302、1304、1306、1308。从矩阵1300内的元素位置1310至元素位置1312沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵1300内的元素位置1312至元素位置1310的箭头线的反方向执行子块之间和内部的逆扫描编译。
图14图示出根据实施例的应用于元素1400的32×32矩阵的波前扫描编译图案。在编码期间,将矩阵1400划分成(或者,在解码期间,生成矩阵1400,其具有)四个子块1402、1404、1406、1408。从矩阵1400内的元素位置1410至元素位置1412沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵1400内的元素位置1412至元素位置1410的箭头线的反方向执行子块之间和内部的逆扫描编译。
图15图示出根据实施例的应用于元素1500的32×32矩阵的水平扫描编译图案。在编码期间,将矩阵1500划分成(或者,在解码期间,生成矩阵1500,其具有)四个子块1502、1504、1506、1508。从矩阵1500内的元素位置1510至元素位置1512沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵1500内的元素位置1512至元素位置1510的箭头线的反方向执行子块之间和内部的逆扫描编译。
图16图示出根据实施例的应用于元素1600的32×32矩阵的垂直扫描编译图案。在编码期间,将矩阵1600划分成(或者,在解码期间,生成矩阵1600,其具有)四个子块1602、1604、1606、1608。从矩阵1600内的元素位置1610至元素位置1612沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵1600内的元素位置1612至元素位置1610的箭头线的反方向执行子块之间和内部的逆扫描编译。
图17图示出根据实施例的应用于元素1700的8×2矩阵的水平扫描编译图案。在编码期间,将矩阵1700划分成(或者,在解码期间,生成矩阵1700,其具有)两个子块1702和1704。从矩阵1700内的元素位置1706至元素位置1708沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵1700内的元素位置1708至元素位置1706的箭头线的反方向执行子块之间和内部的逆扫描编译。
图18图示出根据实施例的应用于元素1800的16×4矩阵的水平扫描编译图案。在编码期间,将矩阵1800划分成(或者,在解码期间,生成矩阵1800,其具有)四个子块1802、1804、1806和1808。从矩阵1800内的元素位置1810至元素位置1812沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵1800内的元素位置1812至元素位置1810的箭头线的反方向执行子块之间和内部的逆扫描编译。
图19图示出根据实施例的应用于元素1900的32×2矩阵的水平扫描编译图案。在编码期间,将矩阵1900划分成(或者,在解码期间,生成矩阵1900,其具有)两个子块1902和1904。从矩阵1900内的元素位置1906至元素位置1908沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵1900内的元素位置1908至元素位置1906的箭头线的反方向执行子块之间和内部的逆扫描编译。
图20图示出根据实施例的应用于元素2000的32×8矩阵的水平扫描编译图案。在编码期间,将矩阵2000划分成(或者,在解码期间,生成矩阵2000,其具有)四个子块2002、2004、2006和2008。从矩阵2000内的元素位置2010至元素位置2012沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵2000内的元素位置2012至元素位置2010的箭头线的反方向执行子块之间和内部的逆扫描编译。
图21图示出根据实施例的应用于元素2100的2×8矩阵的垂直扫描编译图案。在编码期间,将矩阵2100划分成(或者,在解码期间,生成矩阵2100,其具有)两个子块2102和2104。从矩阵2100内的元素位置2106至元素位置2108沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵2100内的元素位置2108至元素位置2106的箭头线的反方向执行子块之间和内部的逆扫描编译。
图22图示出根据实施例的应用于元素2200的4×16矩阵的垂直扫描编译图案。在编码期间,将矩阵2200划分成(或者,在解码期间,生成矩阵2200,其具有)四个子块2202、2204、2206和2208。从矩阵2200内的元素位置2210至元素位置2212沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵2200内的元素位置2212至元素位置2210的箭头线的反方向执行子块之间和内部的逆扫描编译。
图23图示出根据实施例的应用于元素2300的2×32矩阵的垂直扫描编译图案。在编码期间,将矩阵2300划分成(或者,在解码期间,生成矩阵2300,其具有)两个子块2302和2304。从矩阵2300内的元素位置2306至元素位置2308沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵2300内的元素位置2308至元素位置2306的箭头线的反方向执行子块之间和内部的逆扫描编译。
图24图示出根据实施例的应用于元素2400的8×32矩阵的垂直扫描编译图案。在编码期间,将矩阵2400划分成(或者,在解码期间,生成矩阵2400,其具有)四个子块2402、2404、2406和2408。从矩阵2400内的元素位置2410至元素位置2412沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵2400内的元素位置2412至元素位置2410的箭头线的反方向执行子块之间和内部的逆扫描编译。
CABAC熵编译允许上下文建模,其提供编译元素或符号的条件概率的估计。利用适当的上下文模型,能够通过根据电流元件(在图中表示为“C”)附近的已编译符号(在图中表示为“x”)在不同的概率模式之间进行切换来利用给定符号间冗余。图25—27图示出当扫描编译元素使用在正向和相反方向两者上的水平和垂直扫描编译图案时的上下文模型。
图25图示出当扫描编译方向为正向时的用于使用其已编译邻点来形成用于电流元件的上下文模型的特定示例。如能够看到的,通过在形成上下文模型时使用那些特定邻点,如图标记2500和2512中所示,并行编译是可行的。图标记2500图示出电流元件C在2502处且其已编译邻点在2504—2510处的情况下的用于使用水平扫描编译图案进行扫描编译的上下文模型。图标记2512图示出用于使用2514处的电流元件C和2516—2522处的其已编译邻点的垂直扫描编译图案的扫描编译的上下文模型。请注意,对于象限边界处的电流元件C而言,在图标记2500和2512中标记为x的一个或多个邻点可能既未被编译也不可用。在那种情况下,在形成用于电流元件C的上下文模型时仅使用可用的已编译邻点。
图标记2524和2536图示出当扫描编译方向是反向时的用于使用其他已编译林地那来形成用于电流元件的上下文模型的特定示例。图标记2524图示出电流元件C在2526处且其已编译邻点在2528—2534处的情况下的用于使用水平扫描编译图案进行扫描编译的上下文模型。图标记2536图示出用于使用2538处的电流元件C和2540—2546处的其已编译邻点的垂直扫描编译图案的扫描编译的上下文模型。
为了具有四个象限的并行处理,用于象限内的电流元件C的已编译邻点x局限于同一象限内的已编译邻点。根据另一实施例,图26示出了当扫描编译方向是正向时的用于形成用于电流元件的上下文模型的附加示例(图标记2600、2610、2620和2630),其不要求检查电流元件是否处于向下的边界。更特别地,图标记2600图示出电流元件C在2602处且其已编译邻点在2604—2608处的情况下的用于使用水平扫描编译图案进行扫描编译的上下文模型。图标记2610图示出用于使用2612处的电流元件C和2614—2618处的其已编译邻点的垂直扫描编译图案的扫描编译的上下文模型。图标记2620图示出电流元件C在2622处且其已编译邻点在2624—2626处的情况下的用于使用水平扫描编译图案进行扫描编译的上下文模型。图标记2630图示出用于使用2632处的电流元件C和2634—2636处的其已编译邻点的垂直扫描编译图案的扫描编译的上下文模型。
图27示出了当扫描方向是反向时的用于形成用于电流元件的上下文模型(图标记2700、2710、2720和2730的附加示例,其不要求检查电流元件是否处于象限的边界。更特别地,图标记2700图示出电流元件C在2702处且其已编译邻点在2704—2708处的情况下的用于使用水平扫描编译图案进行扫描编译的上下文模型。图标记2710图示出用于使用2712处的电流元件C和2714—2718处的其已编译邻点的垂直扫描编译图案的扫描编译的上下文模型。图标记2720图示出电流元件C在2722处且其已编译邻点在2724—2726处的情况下的用于使用水平扫描编译图案进行扫描编译的上下文模型。图标记2730图示出用于使用2732处的电流元件C和2734—2736处的其已编译邻点的垂直扫描编译图案的扫描编译的上下文模型。
根据如图28中所示的另一实施例,将元素的8×8矩阵划分成4×4子块,并且在子块之间和内部应用扫描编译图案。更特别地,将元素2800的8×8矩阵划分成四个子块2802、2804、2806和2808,并且沿着扫瞄编译图案的正方向(如箭头线的方向所示)或反方向在子块之间和内部应用锯齿形扫描编译图案。将元素2810的8×8矩阵划分成四个子块2812、2814、2816和2818,并且沿着扫瞄编译图案的正方向(如箭头线的方向所示)或反方向在子块之间和内部应用水平扫描编译图案。将元素2820的8×8矩阵划分成四个子块2822、2824、2826和2828,并且沿着扫瞄编译图案的正方向(如箭头线的方向所示)或反方向在子块之间和内部应用垂直扫描编译图案。
根据如图29中所示的另一实施例,将元素的16×16矩阵划分成16个4×4子块,并且在子块之间和内部应用扫描编译图案。更特别地,将元素2900的16×16矩阵划分成16个子块,并沿着扫瞄编译图案的正方向(如箭头线的方向所示)或反方向在子块之间和内部应用锯齿形扫描编译图案。将元素2910的16×16矩阵划分成16个子块,并沿着扫瞄编译图案的正方向(如箭头线的方向所示)或反方向在子块之间和内部应用水平扫描编译图案。将元素2920的16×16矩阵划分成16个子块,并沿着扫瞄编译图案的正方向(如箭头线的方向所示)或反方向在子块之间和内部应用垂直扫描编译图案。
根据如图30中所示的另一实施例,将元素的32×32矩阵划分成64个4×4子块,并且在子块之间和内部应用扫描编译图案。更特别地,将元素3000的32×32矩阵划分成64个子块,并沿着扫瞄编译图案的正方向(如箭头线的方向所示)或反方向在子块之间和内部应用锯齿形扫描编译图案。将元素3010的32×32矩阵划分成64个子块,并沿着扫瞄编译图案的正方向(如箭头线的方向所示)或反方向在子块之间和内部应用水平扫描编译图案。将元素3020的32×32矩阵划分成64个子块,并沿着扫瞄编译图案的正方向(如箭头线的方向所示)或反方向在子块之间和内部应用垂直扫描编译图案。
图31图示出根据实施例的用于在系数非零期间对元素的16×16矩阵进行扫描编译的水平扫描编译图案。矩阵3100被划分成四个子块3102、3104、3106和3108。沿着在矩阵3100中的位置3110处的第一非零变换系数处(其最接近于右下角)开始且在矩阵3100中的位置3112处的变换系数处结束的反方向(如箭头线的方向所示)在子块之间和内部应用水平扫描编译图案。
图32图示出根据实施例的应用于元素3200的8×4矩阵的垂直扫描编译图案。在编码期间,将矩阵3200划分成(或者,在解码期间,生成矩阵3200,其具有)四个子块3202、3204、3206和3208。从矩阵3200内的元素位置3210至元素位置3212沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵3200内的元素位置3212至元素位置3210的箭头线的反方向执行子块之间和内部的逆扫描编译。
图33图示出根据实施例的应用于元素3300的16×8矩阵的垂直扫描编译图案。在编码期间,将矩阵3300划分成(或者,在解码期间,生成矩阵3300,其具有)四个子块3302、3304、3306和3308。从矩阵3300内的元素位置3310至元素位置3312沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵3300内的元素位置3312至元素位置3310的箭头线的反方向执行子块之间和内部的逆扫描编译。
图34图示出根据实施例的应用于元素33400的32×16矩阵的垂直扫描编译图案。在编码期间,将矩阵3400划分成(或者,在解码期间,生成矩阵3400,其具有)四个子块3402、3404、3406和3408。从矩阵3400内的元素位置3410至元素位置3412沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵3400内的元素位置3412至元素位置3410的箭头线的反方向执行子块之间和内部的逆扫描编译。
图35图示出根据实施例的应用于元素3500的4×8矩阵的水平扫描编译图案。在编码期间,将矩阵3500划分成(或者,在解码期间,生成矩阵3500,其具有)四个子块3502、3504、3506和3508。从矩阵3500内的元素位置3510至元素位置3512沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵3500内的元素位置3512至元素位置3510的箭头线的反方向执行子块之间和内部的逆扫描编译。
图36图示出根据实施例的应用于元素3600的8×16矩阵的水平扫描编译图案。在编码期间,将矩阵3600划分成(或者,在解码期间,生成矩阵3600,其具有)四个子块3602、3604、3606和3608。从矩阵3600内的元素位置3610至元素位置3612沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵3700内的元素位置3612至元素位置3610的箭头线的反方向执行子块之间和内部的逆扫描编译。
图37图示出根据实施例的应用于元素3700的16×32矩阵的水平扫描编译图案。在编码期间,将矩阵3700划分成(或者,在解码期间,生成矩阵3700,其具有)四个子块3702、3704、3706和3708。从矩阵36003700内的元素位置3710至元素位置3712沿着箭头线的正方向执行子块之间和内部的正向扫描编译。沿着从矩阵3700内的元素位置3712至元素位置3710的箭头线的反方向执行子块之间和内部的逆扫描编译。
在帧间编译期间能够实现以下实施例。在一个实施例中,基于M和N的大小(例如,基于TU大小)来选择根据本教导的锯齿形或波前扫描编译图案、水平扫描编译图案或垂直扫描编译图案以便对元素的N×M变换单元块进行扫描编译。N是TU的行宽度且M是TU的列高度。例如,对于aN×bN的TU而言,当a大于b时使用根据本教导的垂直扫描编译图案;当b大于a时使用根据本教导的水平扫描编译图案;并且当a等于b时使用根据本教导的锯齿形或波前扫描编译图案。表1示出了TU大小与扫描编译图案之间的关系的一个示例。
TU大小 扫描编译图案
2N×2N 锯齿形或波前
2N×1.5N 垂直
2N×N 垂直
2N×0.5N 垂直
1.5N×2N 水平
N×2N 水平
N×N 锯齿形或波前
0.5N×2N 水平
表1
在另一实施例中,为了对元素的N×M变换单元块进行扫描编译,基于包括变换单元块的预测性单元块的尺寸(例如,基于PU大小)来选择根据本教导的锯齿形或波前扫描编译图案、水平扫描编译图案或垂直扫描编译图案。N是TU的行宽度,并且M是TU的列高度。例如,对于与aN×bN的PU相关联的TU,当a大于b时,使用根据本教导的垂直扫描编译图案;当b大于a时,使用根据本教导的水平扫描编译图案;并且当a等于b时,重使用齿形或波前扫描编译图案。表2示出了PU大小与扫描编译图案之间的关系的一个示例。
PU大小 扫描编译图案
2N×2N 锯齿形或波前
2N×1.5N 垂直
2N×N 垂直
2N×0.5N 垂直
1.5N×2N 水平
N×2N 水平
N×N 锯齿形或波前
0.5N×2N 水平
表2
在前述说明书中,已经描述了特定实施例。然而,本领域的技术人员认识到,在不脱离如在以下权利要求中所阐述的本发明的范围的情况下,可以进行各种修改和变更。相应地,在说明性而不是限制性的意义上考虑本说明书和附图,并且所有此类修改意在被包括在本教导的范围内。
然而,益处、优点、对问题的解决方案以及可以使任何益处、优点或解决方案发生或变得更加明显的任何元素不被理解为任何或所有权利要求的关键、要求或必不可少的特征或元素。仅通过所附权利要求来限定本发明,包括在本申请的待决期间进行的任何修订以及发布的那些权利要求的所有等价物。
一般地,出于这些教导的目的,用根据如上文相对于图2—37所述的本公开的实施例的功能来配置或修改设备。本文所使用的“适合于”、“配置”或“能够”意指所指示的设备是使用硬件或硬件组合及用软件和/或固件编程为执行期望功能的处理设备而实现的。
此外,在本文中,可以单独地使用诸如第一和第二、顶部和底部等关系术语来将一个实体或动作与另一实体或动作区别开而不一定要求或暗示此类实体或动作之间的任何实际的此类关系或顺序。术语“包括”、“包含”、“具有”或其任何其他变体意图覆盖非穷举包括,使得包括、具有、包含一列元素的过程、方法、物件或设备不仅包括那些元素,而且可以包括未明确地列出或此类过程、方法、物件或设备所固有的其他元素。在没有更多约束的情况下,前面是“包括...”、“具有...”、“包含...”的元素不排除包括、具有、包含该元素的过程、方法、物件或设备的附加相同元素的存在。术语“一”和“一个”被定义为一个或多个,除非在本文中另外明确地说明。术语“基本上”、“本质上”、“近似地”、“大约”或其任何其他型式被定义为接近于本领域的技术人员所理解的,并且在非限制性实施例中,该术语被定义为在10%内,在另一实施例中在5%内,在另一实施例中在1%内且在另一实施例中在0.5%内。本文所使用的术语“耦合”被定义为连接,虽然不一定直接地且不一定机械地。以某种方式“配置”的设备或结构是至少以该方式配置的,但还可以以未列出的方式来配置。
将认识到的是某些实施例可以由一个或多个专用处理器(或“处理器件”组成),诸如微处理器、数字信号处理器、自定义处理器和现场可编程门阵列(FPGA)和唯一的存储程序指令(包括软件和固件两者),其控制所述一个或多个处理器以与某些非处理器电路相结合来实现本文所述方法和/或设备的功能中的某些、大多数或全部。替换地,可以由未存储程序指令的状态机或用一个或多个专用集成电路(ASIC)来实现某些或所有功能,其中,每个功能或功能中的某些的某些组合被实现为自定义逻辑。当然,可以使用两个方法的组合。
此外,可以将实施例实现为计算机可读存储介质,其具有被存储在其上面以便对计算机(例如,包括处理器)进行编程以执行如本文所述和要求保护的方法的计算机可读代码。此类计算机可读存储介质的示例包括但不限于硬盘、CD-ROM、光存储器件、磁存储器件、ROM(只读存储器)、PROM(可编程只读存储器)、EPROM(可擦可编程序只读存储器)、EEPROM(电可擦可编程只读存储器)和闪速存储器。此外,可以预期本领域的技术人虽然可能由于例如可用时间、当前技术以及经济考虑的激发而做出显著的努力和许多设计选择,但在受到本文公开的概念和原理的引导时将很容易能够以最少的实验生成此类软件指令和程序和IC。
提供本公开的摘要是为了允许读者快速地确定技术公开的本质。其是在理解其将不会被用来解释或限制权利要求的范围或意义的情况下提交的。另外,在前述具体实施方式中,可以看到出于使本公开流畅的目的在各种实施例中将某些特征集中在一起。
不应将这种公开方法解释为反映要求保护的实施例要求比在每个权利要求中明确叙述的更多的特征的意图。相反,以下权利要求所反映的,本发明的主题在于少于单个公开实施例的所有特征。因此,以下权利要求被由此结合到具体实施方式中,每个权利要求作为单独要求保护的主题而独立。

Claims (21)

1.一种在帧内编译期间由编码器执行的用于处理变换系数的块的方法,所述方法包括:
在帧内编译期间接收变换系数的N×M块,其中,N是所述块的行宽度并且M是所述块的列高度;
从扫描编译图案集合中确定第一扫描编译图案,所述扫描编译图案集合包括对角线扫描编译图案、水平扫描编译图案以及垂直扫描编译图案;
将所述N×M块划分成多个子块,每个子块包括多个所述变换系数;
沿着所述第一扫描编译图案按照编译顺序来一次一个地处理所述多个子块,以生成与所述N×M块相对应的比特序列。
2.根据权利要求1所述的方法,其中,所述处理包括:对于包含至少一个非零变换系数的子块,沿着第二扫描编译图案来至少对变换系数序列中的所述非零变换系数进行编译。
3.根据权利要求2所述的方法,其中,所述第一扫描编译图案和第二扫描编译图案包括相同类型的扫描编译图案。
4.根据权利要求2所述的方法,其中,所述编译包括所述非零变换系数的级别和符号编译。
5.根据权利要求1所述的方法,其中,N=M,N和M大于8,所述第一扫描编译图案是波前对角线扫描编译图案,并且其中,所述子块中的每一个具有4×4的尺寸。
6.根据权利要求1所述的方法,其中,处理所述多个子块包括:对子块级有效映射进行编译,并且对于包含至少一个非零变换系数的每个子块,对系数级有效映射进行编译。
7.根据权利要求1所述的方法,其中,所述多个子块的所述编译顺序是沿着所述第一扫描编译图案的正方向或者沿着所述第一扫描编译图案的反方向。
8.根据权利要求1所述的方法,其中,N=M=8,并且其中,基于与变换系数的所述N×M块相关联的帧内预测方向来确定所述第一扫描编译图案。
9.根据权利要求8所述的方法,其中,所述第一扫描编译图案是所述垂直扫描编译图案,并且所述多个子块包括四个2×8子块,其中,2是每个子块的行宽度并且8是每个子块的列高度,并且其中,所述2×8子块的所述编译顺序是从右到左或者从左到右。
10.根据权利要求8所述的方法,其中,所述第一扫描编译图案是水平扫描编译图案,并且其中,所述多个子块包括四个8×2子块,其中,8是每个子块的行宽度并且2是每个子块的列高度,并且其中,所述8×2子块的所述编译顺序是从下到上或者从上到下。
11.根据权利要求8所述的方法,其中,所述第一扫描编译图案是波前对角线扫描编译图案,并且所述多个子块包括四个4×4子块,并且其中,所述4×4子块的所述编译顺序从右下方子块开始,后面是右上方子块,后面是左下方子块,后面是左上方子块,或者从左上方子块开始,后面是左下方子块,后面是右上方子块,后面是右下方子块。
12.一种由解码器在帧内编译期间执行的用于处理比特序列的方法,所述方法包括:
在帧内编译期间,接收与变换系数的N×M块相对应的比特序列,其中,N是所述块的行宽度并且M是所述块的列高度;
处理所述比特序列以生成多个子块,每个子块包括多个所述变换系数,其中,沿着第一扫描编译图案按照解码顺序来一次一个地生成所述子块以形成变换系数的所述N×M块,其中,从扫描编译图案集合中确定所述第一扫描编译图案,所述扫描编译图案集合包括对角线扫描编译图案、水平扫描编译图案以及垂直扫描编译图案。
13.根据权利要求12所述的方法,其中,所述处理包括:对于包含至少一个非零变换系数的子块,沿着第二扫描编译图案来对所述比特序列的一部分进行解码以生成在变换系数序列中的所述变换系数。
14.根据权利要求12所述的方法,其中,N=M,N和M大于8,所述第一扫描编译图案包括波前对角线扫描编译图案,并且每个子块具有4×4的尺寸。
15.根据权利要求12所述的方法,其中,N=M=8,并且其中,基于与变换系数的所述N×M块相关联的帧内预测方向来确定所述第一扫描编译图案。
16.根据权利要求15所述的方法,其中,所述第一扫描编译图案是垂直扫描编译图案,并且所述多个子块包括四个2×8子块,其中,2是每个子块的行宽度并且8是每个子块的列高度,并且其中,所述2×8子块的所述解码顺序是从右到左或者从左到右。
17.根据权利要求15所述的方法,其中,所述第一扫描编译图案是所述水平扫描编译图案,并且其中,所述多个子块包括四个8×2子块,其中,8是每个子块的行宽度并且2是每个子块的列高度,并且其中,所述8×2子块的所述解码顺序是从下到上或者从上到下。
18.根据权利要求15所述的方法,其中,所述第一扫描编译图案是波前对角线扫描编译图案,并且所述多个子块包括四个4×4子块,并且其中,所述4×4子块的所述解码顺序从右下方子块开始,后面是右上方子块,后面是左下方子块,后面是左上方子块,或者从左上方子块开始,后面是左下方子块,后面是右上方子块,后面是右下方子块。
19.根据权利要求12所述的方法,其中,所述处理包括对子块级有效映射进行解码,并且对于包含至少一个非零变换系数的每个子块,对系数级有效映射进行解码。
20.一种用于在帧内编译期间对视频数据进行编码和解码的系统,所述系统包括:
解码器,所述解码器被配置成:
在帧内编译期间,接收与变换系数的第一N×M块相对应的第一比特序列,其中,N是所述第一块的行宽度并且M是所述第一块的列高度;
处理所述第一比特序列以生成第一多个子块,每个子块包括所述第一块的多个所述变换系数,其中,沿着第一扫描编译图案按照解码顺序来一次一个子块地生成所述第一多个子块,以形成变换系数的所述第一N×M块,其中,从扫描编译图案集合中确定所述第一扫描编译图案,所述扫描编译图案集合包括波前扫描编译图案、水平扫描编译图案和垂直扫描编译图案。
21.根据权利要求20所述的系统,进一步包括:
编码器,所述编码器被配置成:
在帧内编译期间,接收变换系数的第二N×M块,其中,N是所述第二块的行宽度并且M是所述第二块的列高度;
从扫描编译图案集合中确定第二扫描编译图案,所述扫描编译图案集合包括波前扫描编译图案、水平扫描编译图案以及垂直扫描编译图案;
将所述第二N×M块划分成第二多个子块,每个子块包括所述第二块的多个所述变换系数;
沿着所述第二扫描编译图案按照编译顺序来一次一个地处理所述第二多个子块,以生成与所述第二N×M块相对应的第二比特序列。
CN201280032201.9A 2011-06-29 2012-06-29 用于在帧内编译期间使用扫描编译图案的方法和系统 Active CN103828376B (zh)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US201161502850P 2011-06-29 2011-06-29
US61/502,850 2011-06-29
US201161504690P 2011-07-05 2011-07-05
US61/504,690 2011-07-05
US201161525699P 2011-08-19 2011-08-19
US61/525,699 2011-08-19
US201161528652P 2011-08-29 2011-08-29
US61/528,652 2011-08-29
PCT/US2012/045048 WO2013003777A1 (en) 2011-06-29 2012-06-29 Methods and system for using a scan coding pattern during intra coding
US13/538,685 2012-06-29
US13/538,685 US20130003837A1 (en) 2011-06-29 2012-06-29 Methods and system for using a scan coding pattern during intra coding

Publications (2)

Publication Number Publication Date
CN103828376A true CN103828376A (zh) 2014-05-28
CN103828376B CN103828376B (zh) 2018-04-03

Family

ID=47390667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280032201.9A Active CN103828376B (zh) 2011-06-29 2012-06-29 用于在帧内编译期间使用扫描编译图案的方法和系统

Country Status (5)

Country Link
US (2) US20130003857A1 (zh)
EP (1) EP2727355A1 (zh)
KR (1) KR101590243B1 (zh)
CN (1) CN103828376B (zh)
WO (2) WO2013003777A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105530518A (zh) * 2014-09-30 2016-04-27 联想(北京)有限公司 一种视频编码、解码方法及装置
CN109417638A (zh) * 2016-05-28 2019-03-01 世宗大学校产学协力团 视频信号的编码或解码方法及装置

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9756360B2 (en) * 2011-07-19 2017-09-05 Qualcomm Incorporated Coefficient scanning in video coding
KR20130050406A (ko) * 2011-11-07 2013-05-16 오수미 머지 모드에서의 움직임 정보 생성 방법
KR20130050403A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 복원 블록 생성 방법
US9124872B2 (en) * 2012-04-16 2015-09-01 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
US9503719B2 (en) * 2012-06-26 2016-11-22 Intel Corporation Inter-layer coding unit quadtree pattern prediction
US9826229B2 (en) 2012-09-29 2017-11-21 Google Technology Holdings LLC Scan pattern determination from base layer pixel information for scalable extension
US9350988B1 (en) 2012-11-20 2016-05-24 Google Inc. Prediction mode-based block ordering in video coding
EP2946553B1 (en) * 2013-01-16 2019-01-02 BlackBerry Limited Transform coefficient coding for context-adaptive binary entropy coding of video
EP2946552B1 (en) * 2013-01-16 2018-03-21 BlackBerry Limited Context determination for entropy coding of run-length encoded transform coefficients
WO2014120368A1 (en) 2013-01-30 2014-08-07 Intel Corporation Content adaptive entropy coding for next generation video
US9681128B1 (en) 2013-01-31 2017-06-13 Google Inc. Adaptive pre-transform scanning patterns for video and image compression
SG11201600128WA (en) * 2013-07-24 2016-02-26 Microsoft Technology Licensing Llc Scanning orders for non-transform coding
US9305325B2 (en) 2013-09-25 2016-04-05 Apple Inc. Neighbor context caching in block processing pipelines
US9299122B2 (en) 2013-09-25 2016-03-29 Apple Inc. Neighbor context processing in block processing pipelines
US9270999B2 (en) 2013-09-25 2016-02-23 Apple Inc. Delayed chroma processing in block processing pipelines
US9218639B2 (en) 2013-09-27 2015-12-22 Apple Inc. Processing order in block processing pipelines
US9571846B2 (en) 2013-09-27 2017-02-14 Apple Inc. Data storage and access in block processing pipelines
US9215472B2 (en) 2013-09-27 2015-12-15 Apple Inc. Parallel hardware and software block processing pipelines
WO2015055245A1 (en) * 2013-10-16 2015-04-23 Huawei Technologies Co., Ltd. A method for determining a corner video part of a partition of a video coding block
KR102250088B1 (ko) * 2013-10-24 2021-05-10 삼성전자주식회사 비디오 스트림을 복호화하는 방법 및 장치
KR102218196B1 (ko) 2013-10-28 2021-02-23 삼성전자주식회사 인코더, 이의 동작 방법과, 상기 인코더를 포함하는 장치들
BR112016012417B1 (pt) 2013-12-18 2023-04-11 Hfi Innovation Inc Método e aparelho para inicialização e gerenciamento de paleta
US10182242B2 (en) 2013-12-27 2019-01-15 Mediatek Inc. Method and apparatus for palette coding with cross block prediction
WO2015096647A1 (en) 2013-12-27 2015-07-02 Mediatek Inc. Method and apparatus for major color index map coding
EP3087742B1 (en) 2013-12-27 2020-09-23 HFI Innovation Inc. Method and apparatus for syntax redundancy removal in palette coding
EP3061247A4 (en) 2014-01-07 2016-08-31 Mediatek Inc METHOD AND APPARATUS FOR COLOR INDEX PREDICTION
US9807410B2 (en) * 2014-07-02 2017-10-31 Apple Inc. Late-stage mode conversions in pipelined video encoders
WO2016061132A1 (en) * 2014-10-13 2016-04-21 Huawei Technologies Co., Ltd. System and method for depth map coding for smooth depth map area
FR3032583B1 (fr) * 2015-02-06 2018-03-02 Orange Procede de codage d'une image numerique, procede de decodage, dispositifs, et programmes d'ordinateurs associes
KR20240056657A (ko) * 2015-05-12 2024-04-30 삼성전자주식회사 적응적인 순서로 결정되는 블록을 이용하여 영상을 부호화 또는 복호화하는 방법 및 장치
US11233998B2 (en) 2015-05-29 2022-01-25 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design
FR3050598B1 (fr) * 2016-04-26 2020-11-06 Bcom Procede de decodage d'une image numerique, procede de codage, dispositifs, et programmes d'ordinateurs associes
WO2018044087A1 (ko) * 2016-08-31 2018-03-08 주식회사 케이티 비디오 신호 처리 방법 및 장치
WO2018174593A1 (ko) * 2017-03-22 2018-09-27 김기백 적응적인 화소 분류 기준에 따른 인루프 필터링 방법
KR102302797B1 (ko) * 2017-04-13 2021-09-16 엘지전자 주식회사 영상의 부호화/복호화 방법 및 이를 위한 장치
CN110999293B (zh) 2017-07-31 2022-11-04 韩国电子通信研究院 图像编码/解码方法和装置以及存储比特流的记录介质
WO2019027200A1 (ko) * 2017-07-31 2019-02-07 에스케이텔레콤 주식회사 비-제로 계수들의 위치를 표현하는 방법 및 장치
US10484695B2 (en) 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps
WO2019117634A1 (ko) 2017-12-15 2019-06-20 엘지전자 주식회사 2차 변환에 기반한 영상 코딩 방법 및 그 장치
US11366738B2 (en) * 2018-03-12 2022-06-21 Headspin, Inc. System to determine performance based on entropy values
US10645381B2 (en) 2018-04-30 2020-05-05 Google Llc Intra-prediction for smooth blocks in image/video
US11386663B1 (en) 2020-08-28 2022-07-12 Headspin, Inc. Reference-free system for determining quality of video data

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4821119A (en) * 1988-05-04 1989-04-11 Bell Communications Research, Inc. Method and apparatus for low bit-rate interframe video coding
KR960006762B1 (ko) * 1992-02-29 1996-05-23 삼성전자주식회사 화상부호화를 위한 효율적인 2차원 데이타의 주사선택회로
US6870963B2 (en) * 2001-06-15 2005-03-22 Qualcomm, Inc. Configurable pattern optimizer
EP2733951A1 (en) * 2005-10-21 2014-05-21 Electronics and Telecommunications Research Institute Method for decoding moving picture using adaptive scanning
US8428133B2 (en) * 2007-06-15 2013-04-23 Qualcomm Incorporated Adaptive coding of video block prediction mode
KR101426272B1 (ko) * 2008-03-10 2014-08-07 삼성전자주식회사 영상 부호화장치 및 영상 복호화장치
KR20090097689A (ko) * 2008-03-12 2009-09-16 삼성전자주식회사 영상의 인트라 예측 부호화/복호화 방법 및 장치
KR101458471B1 (ko) * 2008-10-01 2014-11-10 에스케이텔레콤 주식회사 영상 부호화/복호화 방법 및 장치
KR101680877B1 (ko) * 2009-10-30 2016-11-29 선 페이턴트 트러스트 화상 복호 방법, 화상 부호화 방법, 화상 복호 장치, 화상 부호화 장치, 프로그램, 및 집적 회로
US8929440B2 (en) * 2010-04-09 2015-01-06 Sony Corporation QP adaptive coefficients scanning and application
US9154801B2 (en) * 2010-09-30 2015-10-06 Texas Instruments Incorporated Method and apparatus for diagonal scan and simplified coding of transform coefficients
US9338449B2 (en) * 2011-03-08 2016-05-10 Qualcomm Incorporated Harmonized scan order for coding transform coefficients in video coding

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105530518A (zh) * 2014-09-30 2016-04-27 联想(北京)有限公司 一种视频编码、解码方法及装置
CN105530518B (zh) * 2014-09-30 2019-04-26 联想(北京)有限公司 一种视频编码、解码方法及装置
CN109417638A (zh) * 2016-05-28 2019-03-01 世宗大学校产学协力团 视频信号的编码或解码方法及装置
CN109417638B (zh) * 2016-05-28 2022-02-08 世宗大学校产学协力团 视频信号的编码或解码方法及装置
CN114222141A (zh) * 2016-05-28 2022-03-22 世宗大学校产学协力团 视频信号的解码方法及视频信号的解码装置
CN114222140A (zh) * 2016-05-28 2022-03-22 世宗大学校产学协力团 视频信号的解码方法
CN114222137A (zh) * 2016-05-28 2022-03-22 世宗大学校产学协力团 构成预测运动矢量列表的方法
CN114222138A (zh) * 2016-05-28 2022-03-22 世宗大学校产学协力团 视频信号的解码装置

Also Published As

Publication number Publication date
WO2013003791A1 (en) 2013-01-03
US20130003857A1 (en) 2013-01-03
KR20140016994A (ko) 2014-02-10
EP2727355A1 (en) 2014-05-07
KR101590243B1 (ko) 2016-01-29
CN103828376B (zh) 2018-04-03
WO2013003777A1 (en) 2013-01-03
US20130003837A1 (en) 2013-01-03

Similar Documents

Publication Publication Date Title
CN103828376A (zh) 用于在帧内编译期间使用扫描编译图案的方法和系统
JP6753914B2 (ja) 変換係数ブロック復号装置および方法、ならびに変換係数ブロック符号化装置および方法
DK2839645T3 (en) COEFFICIENT GROUPS AND COEFFICIENT CODING FOR COEFFICIENT SCANNING
KR101625548B1 (ko) 변환 계수 레벨 코딩을 위한 컨텍스트 모델링 기술들
KR102574591B1 (ko) 통합된 유효성 맵 코딩을 위한 방법 및 장치
CN103797796B (zh) 用于系数矩形块的量化和去量化的方法和装置
KR20140017016A (ko) 비디오 데이터의 컨텍스트 적응 코딩
CN104272735A (zh) 针对视频的上下文自适应二进制熵编码的变换系数编码
KR20130140190A (ko) 마지막 유효 계수의 위치를 코딩 및 디코딩하는 방법 및 장치
CN117915092A (zh) 数据编码和解码方法、数据编码和解码设备及存储介质
KR20220103181A (ko) 샘플 블록의 변환된 표현에 대한 코딩 개념

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160407

Address after: American California

Applicant after: Technology Holdings Co., Ltd of Google

Address before: Illinois State

Applicant before: Motorola Mobility, Inc.

GR01 Patent grant
GR01 Patent grant