首页> 中国专利> 视频译码中的最后有效变换系数在扫描次序中的位置的导出

视频译码中的最后有效变换系数在扫描次序中的位置的导出

摘要

一种视频解码器将基于块的LSC指示符转换成基于扫描的LSC指示符。所述基于块的LSC指示符根据扫描次序指示变换系数块的最后有效系数的坐标。所述基于扫描的LSC指示符根据所述扫描次序指示所述LSC的序数位置。所述视频解码器可基于所述基于扫描的LSC指示符对用于所述块的有效性映射进行解码。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-08-11

    授权

    授权

  • 2014-04-02

    实质审查的生效 IPC(主分类):H04N19/44 申请日:20120628

    实质审查的生效

  • 2014-03-05

    公开

    公开

说明书

本申请案主张2011年6月28日申请的第61/502,269号美国临时申请案、2011年6 月30日申请的第61/503,529号美国临时申请案、2011年10月24日申请的第61/550,775 号美国临时申请案以及2011年10月24日申请的第61/550,784号美国临时申请案的权 利,所述各临时申请案的全部内容特此以引用的方式并入。

技术领域

本发明涉及用于对视频数据进行编码和解码的技术。更具体地说,本发明涉及发信 号通知表示视频数据中的信息的有效变换系数的位置。

背景技术

数字视频能力可并入到广泛范围的装置中,包括数字电视、数字直播系统、无线广 播系统、个人数字助理(PDA)、膝上型或桌上型计算机、数码相机、数字记录装置、数 字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、视频电话 会议装置及其类似者。数字视频装置实施视频压缩技术(例如,由MPEG-2、MPEG-4、 ITU-T H.263或ITU-T H.264/MPEG-4第10部分高级视频译码(AVC)所定义的标准及这 些标准的扩展中所描述的视频压缩技术),以较有效地发射及接收数字视频信息。

视频压缩技术执行空间预测和/或时间预测,以减少或移除视频序列中所固有的冗 余。对于基于块的视频译码,一视频帧或切片可以分割成多个块。每一块可被进一步分 割。使用相对于相邻块的空间预测来对经帧内译码(I)帧或切片中的块进行编码。经帧间 译码(P或B)帧或切片中的块可以使用相对于相同帧或切片中的相邻块的空间预测或相 对于其它参考帧的时间预测。

发明内容

本发明大体上涉及用于在视频译码期间发信号通知最后有效系数(LSC)在变换系数 块中的位置的技术。举例来说,所述技术提供视频解码器,其接收变换系数块的LSC的 基于块的LSC指示符。在根据扫描次序扫描所述块时,所述基于块的LSC指示符指示 所述LSC的坐标。所述视频解码器将所述基于块的LSC指示符转换成基于扫描的LSC 指示符。所述基于扫描的LSC指示符根据所述扫描次序指示所述LSC的序数位置。所 述视频解码器可接着使用所述基于扫描的LSC指示符来对有效性映射进行解码。

在一个实例中,本发明描述一种用于对视频数据进行解码的方法。所述方法包括将 基于块的LSC指示符转换成基于扫描的LSC指示符。所述基于块的LSC指示符根据扫 描次序指示变换系数块的最后有效系数的坐标。所述基于扫描的LSC指示符根据所述扫 描次序指示所述LSC的序数位置。所述方法还包括基于所述基于扫描的LSC指示符对 用于所述块的有效性映射进行解码。

在另一实例中,本发明描述一种视频解码装置,其包括经配置以将基于块的LSC指 示符转换成基于扫描的LSC指示符的一个或一个以上处理器。所述基于块的LSC指示 符根据扫描次序指示变换系数块的最后有效系数的坐标。所述基于扫描的LSC指示符根 据所述扫描次序指示所述LSC的序数位置。所述一个或一个以上处理器还经配置以基于 所述基于扫描的LSC指示符对用于所述块的有效性映射进行解码。

在另一实例中,本发明描述一种视频解码装置,其包括用于将基于块的LSC指示符 转换成基于扫描的LSC指示符的装置。所述基于块的LSC指示符根据扫描次序指示变 换系数块的最后有效系数的坐标。所述基于扫描的LSC指示符根据所述扫描次序指示所 述LSC的序数位置。所述视频解码装置还包括用于基于所述基于扫描的LSC指示符对 用于所述块的有效性映射进行解码的装置。

在另一实例中,本发明描述包括上面存储有指令的计算机可读存储媒体的计算机程 序产品,所述指令配置一个或一个以上处理器以将基于块的LSC指示符转换成基于扫描 的LSC指示符。所述基于块的LSC指示符根据扫描次序指示变换系数块的最后有效系 数的坐标。所述基于扫描的LSC指示符根据所述扫描次序指示所述LSC的序数位置。 所述指令还配置所述一个或一个以上处理器以基于所述基于扫描的LSC指示符对用于 所述块的有效性映射进行解码。

在随附图式及以下描述中阐述本发明的一个或一个以上方面的细节。本发明中所描 述的技术的其他特征、目标及优点将从描述及图式且此权利要求书而显而易见。

附图说明

图1是说明实例视频译码系统的框图。

图2是说明实例变换系数块的概念图。

图3是说明实例扫描次序的概念图。

图4是说明用于图2的变换系数块的实例有效性映射的二维表示的概念图。

图5是说明视频编码器的实例配置的框图。

图6是说明视频解码器的实例配置的框图。

图7是说明由视频编码器执行的实例操作的流程图。

图8是说明用以对变换系数块进行解码的实例操作的流程图。

图9是说明将基于块的最后有效系数(LSC)指示符转换成基于扫描的LSC指示符的 实例非迭代操作的流程图。

图10是说明将基于块的LSC指示符转换成基于扫描的LSC指示符的另一实例非迭 代操作的流程图。

图11是说明将基于块的LSC指示符转换成基于扫描的LSC指示符的实例操作的流 程图,其中存取映射数据结构。

图12是说明将基于块的LSC指示符转换成基于扫描的LSC指示符的实例迭代操作 的流程图。

图13是展示最后有效变换系数的变换系数块的概念图。

具体实施方式

附图说明若干实例。由附图中的参考数字指示的元件对应于在以下描述中由相同参 考数字指示的元件。在本发明中,名称以序数词(例如,“第一”、“第二”、“第三”, 等)开始的元件未必暗示所述元件具有特定次序。确切地说,此些序数词仅用于指代相同 或类似类型的不同元件。

如下文所描述,视频编码器可产生变换系数块。所述变换系数块中的每一者可为变 换系数的二维阵列。在视频编码器产生变换系数块之后,所述视频编码器可根据扫描次 序识别变换系数块的最后有效系数(LSC)。换句话说,当变换系数块的变换系数是根据 扫描次序而排序时,变换系数块的LSC为最后非零变换系数。扫描次序可在变换系数块 的DC变换系数(即,左上变换系数)处开始。

视频编码器可输出基于扫描的LSC指示符,其根据扫描次序指示LSC的序数位置。 换句话说,视频编码器可基于扫描的LSC指示符,当变换系数是根据扫描次序而排序时, 所述基于扫描的LSC指示符指示LSC为第n个变换系数。

在一些常规视频编码器中,视频编码器可对变换系数块执行一系列译码遍次。在所 述译码遍次中的每一者期间,视频编码器可根据扫描次序处理变换系数块的变换系数。 在所述译码遍次中的每一者期间,视频编码器对关于变换系数的信息进行编码。

在译码遍次中的一者期间,视频编码器产生有效性映射。有效性映射包含一系列有 效性旗标,其指示变换系数块中的变换系数是否有效(即,非零)。为产生有效性映射, 视频编码器可根据扫描次序处理变换系数中的每一者。当视频编码器处理变换系数时, 视频编码器可确定变换系数的序数位置根据扫描次序是否出现于LSC的序数位置之前。 如果如此,则视频编码器可产生用于所述变换系数的有效性旗标。如果变换系数的值为 非零,则有效性旗标可具有为“1”的值。如果变换系数的值等于零,则有效性旗标可 具有为“0”的值。然而,如果变换系数的序数位置根据扫描次序并不出现于LSC的序 数位置之前,则视频编码器不产生用于所述变换系数的有效性旗标。

视频解码器可接收变换系数块的基于扫描的LSC指示符和有效性映射。视频解码器 可接着基于所述基于扫描的LSC指示符确定所述有效性映射是否包含用于变换系数块 的特定变换系数的有效性旗标。如果视频编码器并未产生用于变换系数的有效性旗标, 则视频解码器可推断所述变换系数无效。

在一些情况下,视频编码器可产生基于块的LSC指示符,其指示LSC的变换系数 块内的坐标。视频编码器可接着对所述基于块的LSC指示符进行CABAC编码。因为x 与y坐标之间的统计关系,使用基于块的LSC指示符指示LSC的位置比依据LSC的序 数位置来指示LSC的位置可能需要较少位。

此外,在一些情况下,视频编码器使用扫描次序的反转来产生有效性映射时而非视 频编码器使用扫描次序来产生有效性映射时可能需要较少位来表示有效性映射。然而, 如果视频编码器产生基于块的LSC指示符且如果视频编码器使用反转扫描次序来产生 有效性映射,则视频解码器可能不能够基于所述基于块的LSC指示符确定的序数位置是 否出现于变换系数块的LSC的序数位置之前。因此,视频解码器可能不能够基于所述基 于块的LSC指示符确定有效性映射是否包含用于特定变换系数的有效性旗标。

为解决此问题,根据本发明的技术,视频解码器可执行将基于块的LSC指示符转换 成基于扫描的LSC指示符的转换操作。所述基于扫描的LSC指示符可根据扫描次序指 示LSC的序数位置。视频解码器可接着基于所述基于扫描的LSC指示符对用于所述块 的有效性映射进行解码。

如本文所描述,视频解码器可以各种方式将基于块的LSC指示符转换成基于扫描的 LSC指示符。举例来说,视频解码器可执行非迭代算法以基于块的LSC指示符导出基于 扫描的LSC指示符。在另一实例中,视频解码器可至少部分地通过存取将基于块的LSC 指示符映射到基于扫描的LSC指示符的数据结构而将基于块的LSC指示符转换成基于 扫描的LSC指示符。在又一实例中,视频解码器可执行根据扫描次序扫描经过变换系数 块中的位置的循环操作,直到达到具有基于块的LSC指示符的坐标的位置为止。在此实 例中,视频解码器可在变换系数块的每一位置具有所述坐标之前递增所述位置的基于扫 描的LSC指示符。

图1是说明可利用本发明中描述的技术的实例视频译码系统10的框图。在本发明 中,术语“视频译码”可指视频编码和视频解码。如图1中所示,视频译码系统10包 含源装置12和目的地装置14。源装置12产生经编码的视频数据。目的地装置14可在 稍后时间对所述经编码的视频数据进行解码。源装置12和目的地装置14可包括广泛范 围的装置中的任一者,包含桌上型计算机、笔记本(即,膝上型)计算机、平板计算机、 机顶盒、移动电话、电话手持机、“智能”板、电视、相机、显示装置、数字媒体播放 器、视频游戏控制台、视频串流装置,或能够对视频数据进行编码和解码的多种类型的 计算装置。

目的地装置14可经由信道16接收经编码的视频数据。信道16可包括能够将经编 码的视频数据从源装置12移动到目的地装置14的媒体或装置。在一个实例中,信道16 可包括使得源装置12能够实时将经编码的视频数据直接发射到目的地装置14的通信媒 体。源装置12或另一装置可根据通信标准(例如无线通信协议)调制经编码的视频数据。 通信媒体可包括任何无线或有线通信媒体,例如射频(RF)频谱或一个或一个以上物理发 射线路。信道16可形成分组网络(例如局域网、广域网或全球网络,例如因特网)的部分。 信道16可包含路由器、交换器、基站或可用于促进将经编码的视频数据从源装置12传 达到目的地装置14的任何其它设备。

在一些实例中,源装置12和目的地装置14可经装备以用于无线通信。然而,本发 明的技术不必限于无线应用或设定。确切地说,所述技术可应用于视频译码中以支持多 种多媒体应用中的任一者,例如空中协议电视广播、有线电视发射、卫星电视发射、例 如经由因特网的串流视频发射、对数字视频进行编码以供存储在数据存储媒体上、对存 储在数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,源装置12和目 的地装置14可经配置以支持单向或双向视频发射,以支持例如视频串流、视频回放、 视频广播和/或视频电话等应用。

此外,在一些实例中,源装置12可将经编码的视频数据输出到存储系统34。类似 地,目的地装置14可存取存储在存储系统34上的经编码的视频数据。在各种实例中, 存储系统34可包含各种分布式或在本地存取的数据存储媒体。数据存储媒体的实例类 型包含但不限于硬盘驱动器、蓝光光盘、DVD、CD-ROM、固态存储器单元、易失性或 非易失性存储器,或适合于存储经编码的视频数据的其它数字存储媒体。

在一些实例中,存储系统34可包括文件服务器或另一中间存储装置,其可保持源 装置12产生的经编码视频。目的地装置14可经由串流或下载从存储系统34存取经存 储的视频数据。文件服务器可为能够存储经编码的视频数据且将经编码的视频数据发射 到目的地装置14的任何类型的服务器。实例文件服务器包含网络服务器(例如,用于网 站)、FTP服务器、网络连接存储(NAS)装置或本地磁盘驱动器。目的地装置14可以通 过任何标准数据连接(包含因特网连接)来存取经编码的视频数据。此可包含适合于存取 存储于文件服务器上的经编码的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例 如,DSL、电缆调制解调器等)或两者的组合。经编码的视频数据从存储系统34的发射 可为流式发射、下载发射或两者的组合。

在图1的实例中,源装置12包含视频源18、视频编码器20和输出接口22。在一 些实例中,输出接口22还可包含调制器/解调器(调制解调器)和/或发射器。视频源18将 视频数据提供到视频编码器20。在各种实例中,视频源18可包括用于提供视频数据的 各种类型的装置和/或系统。举例来说,视频源18可包括视频俘获装置,例如摄像机。 在另一实例中,视频源18可包括含有先前俘获的视频的视频存档。在又一实例中,视 频源18可包括从视频内容提供者接收视频的视频馈送接口。在又一实例中,视频源18 可包括用于产生计算机图形数据的计算机图形系统。

如下文所详细描述,视频编码器20可对由视频源18提供的视频数据进行编码。在 一些实例中,源装置12可经由输出接口22将经编码的视频数据直接发射到目的地装置 14。此外,在一些实例中,存储系统34可存储经编码的视频数据以供目的地装置14或 其它装置稍后存取。

本发明可大体上参考视频编码器20向另一装置(例如视频解码器30)“发信号通 知”某些信息。然而,应理解,视频编码器20可通过使某些语法元素与视频数据的各 种经编码部分相关联来发信号通知信息。也就是说,视频编码器20可通过将某些语法 元素存储到视频数据的各种经编码部分的标头来“发信号通知”数据。在一些情况下, 此些语法元素可在被视频解码器30接收和解码之前,先被编码和存储(例如,存储到存 储系统34)。因此,术语“发信号通知”可大体是指对用以对经压缩视频数据进行解码 的语法或其它数据的传达。此传达可实时或接近实时地发生。或者,此通信可在一定时 间跨度内发生,例如可能在将语法元素于编码时存储到媒体时发生,其接着可由解码装 置在存储到此媒体之后的任何时间加以检索。

在图1的实例中,目的地装置14包含输入接口28、视频解码器30和显示装置32。 在一些实例中,输入接口28可包含接收器和/或调制解调器。目的地装置14的输入接口 28从信道16和/或存储系统34接收经编码的视频数据。视频解码器30对通过输入接口 28所接收的经编码的视频数据进行解码。目的地装置14可再现经解码的视频数据以供 显示在显示装置32上。

显示装置32可与目的地装置14集成或在目的地装置14外部。在一些实例中,目 的地装置14可包含集成显示装置,且还经配置以与外部显示装置介接。在各种实例中, 显示装置32可包括各种类型的显示装置。举例来说,显示装置32可包括液晶显示器 (LCD)、等离子显示器、有机发光二极管(OLED)显示器,或另一类型的显示装置。

尽管图1中未展示,但在一些方面中,视频编码器20和视频解码器30可各自与音 频编码器和解码器集成,且可包含适当多路复用器-多路分用器单元或其它硬件和软件以 处置对共同数据流或单独数据流中的音频和视频两者的编码。在一些实例中,如果适用 的话,多路复用器-多路分用器单元可符合ITU H.223多路复用器协议,或例如用户数据 报协议(UDP)等其它协议。

视频编码器20和视频解码器30各自可实施为多种合适的编码器电路中的任一者, 例如一个或一个以上微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可 编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当部分地用软件实施 所述技术时,装置可将用于所述软件的指令存储于合适的非暂时性计算机可读媒体中且 使用一个或一个以上处理器用硬件执行所述指令以执行本发明的技术。视频编码器20 和视频解码器30中的每一者可包含在一个或一个以上编码器或解码器中,所述编码器 或解码器中的任一者可以集成为相应装置中的组合编码器/解码器(编解码器)的部分。

视频编码器20和视频解码器30可根据视频译码标准(例如目前正在开发的高效率视 频译码(HEVC)标准)来操作,且可符合HEVC测试模型(HM)。或者,视频编码器20和 视频解码器30可根据其它专属或业界标准来操作,所述标准例如是ITU-T H.264标准, 也被称为MPEG-4第10部分高级视频译码(AVC),或此类标准的扩展。对标准的实例扩 展包含对H.264/AVC标准的可缩放视频译码(SVC)和多视图视频译码(MVC)扩展。本发 明的技术不限于任何特定译码标准。视频压缩标准的其它实例包含MPEG-2和ITU-T  H.263。

如上文简要提及,视频编码器20对视频数据进行编码。所述视频数据可包括一个 或一个以上图片序列。所述图片中的每一者为静态图像。在一些情况下,图片可被称为 “帧”。当视频编码器20对视频数据进行编码时,视频编码器20可产生位流。位流包 含形成经译码图片和相关联数据的表示的位序列。经译码图片为图片的经译码表示。

为产生位流,视频编码器20可对视频数据中的图片序列执行编码操作。当视频编 码器20对图片序列执行编码操作时,视频编码器20可产生一系列经译码图片和相关联 数据。此外,视频编码器20可产生含有适用于零或更多个图片序列的参数的序列参数 集。此外,视频编码器20可产生含有适用于作为整体的零或更多个图片的图片参数集 (PPS)。在一些实例中,视频编码器20可产生调适参数集(APS)。APS可存储适用于零 或更多个图片的参数。

为产生经译码图片,视频编码器20可将一图片分割成一个或一个以上大小相等的 视频块。视频块中的每一者可与树块相关联。视频块可为视频数据(例如,样本)的二维 (2D)块。在一些情况下,树块还可称为最大译码单元(LCU)。HEVC的树块可大致类似 于例如H.264/AVC等前述标准的宏块。然而,树块不必限于特定大小,且可包含一个或 一个以上译码单元(CU)。

在一些实例中,视频编码器20可将一图片分割成多个切片。所述切片中的每一者 可包含整数数目个CU。在一些情况下,一片段包括整数数目个树块。在其它情况下, 切片的边界可在树块内。如果切片的边界在树块内,则所述切片可被称为细粒度切片。 在一些实例中,视频编码器20可根据切片的大小(以字节计)或根据切片中的树块的数目 来对切片进行编码。

作为对图片执行编码操作的部分,视频编码器20可对图片的每一切片执行编码操 作。对切片的编码操作可产生与所述切片相关联的经编码数据。与切片相关联的经编码 数据可被称为“经译码切片”。经译码切片可包含切片标头和切片数据。切片数据可包 含呈译码次序的一系列连续译码单元。切片标头可含有关于切片的第一或树块的数据元 素。

为产生切片的经译码切片数据,视频编码器20可对切片中的每一树块执行编码操 作。当视频编码器20对树块执行编码操作时,视频编码器20可产生经译码树块。经译 码树块可包括表示树块的经编码版本的数据。

为产生经译码树块,视频编码器20可对树块的视频块递归地执行四叉树分割以将 所述视频块划分成逐渐变小的视频块。较小视频块中的每一者可与不同CU相关联。举 例来说,视频编码器20可将树块的视频块分割成四个大小相等的子块、将所述子块中 的一者或一者以上分割成四个大小相等的子子块,以此类推。位流中的一个或一个以上 语法元素可指示视频编码器20可分割树块的视频块的最大次数。语法元素还可指示最 小译码单元(SCU)。CU的视频块在形状上可为正方形。

视频编码器20可对树块中的每一未分割CU执行编码操作。作为对未分割CU执行 编码操作的部分,视频编码器20可产生用于所述CU的一个或一个以上预测单元(PU)。 CU的PU中的每一者可与CU的视频块内的不同视频块相关联。视频编码器20可使用 帧内预测或帧间预测来产生用于CU的PU的预测数据。当视频编码器20使用帧内预测 来产生用于PU的预测数据时,视频编码器20从含有所述PU的图片的经解码样本导出 用于所述PU的预测数据。当视频编码器20使用帧间预测来产生用于PU的预测数据时, 视频编码器20从不同于含有所述CU的图片的参考图片的经解码值导出用于所述PU的 预测数据。用于PU的预测数据可包含预测视频块和各种语法元素。

在视频编码器20产生用于CU的预测数据之后,视频编码器20可产生CU的残余 数据。CU的残余数据可指示用于CU的PU的预测视频块中的样本与CU的原始视频块 中的样本之间的差。

树块的每一未分割CU可具有一个或一个以上变换单元(TU)。CU的每一TU可与所 述CU的残余数据的不同部分相关联。视频编码器20可对CU的每一TU执行变换操作。 当视频编码器20对TU执行变换操作时,视频编码器20可至少部分地通过将变换应用 到与所述TU相关联的残余数据而产生变换系数块。变换系数块可为变换系数的2D矩 阵。图2是说明实例变换系数块的概念图。

视频编码器20可量化变换系数块中的变换系数。量化大体上是指对变换系数块中 的变换系数进行量化以可能地减少用以表示所述变换系数的数据量,从而提供进一步压 缩的过程。量化可减小与一些或所有变换系数相关联的位深度。举例来说,n位值可在 量化期间被舍去到m位值,其中n大于m。

在量化变换系数块之后,视频编码器20可产生与所述变换系数块相关联的一组语 法元素。视频编码器20可接着对这些语法元素中的一些执行上下文自适应二进制算术 译码(CABAC)操作。在其它实例中,视频编码器20可对语法元素执行其它熵译码操作。 举例来说,视频编码器20可对与变换系数块相关联的语法元素执行上下文自适应可变 长度译码(CAVLC)操作、基于语法的上下文自适应二进制算术译码(SBAC)操作、概率区 间分割熵(PIPE)译码操作,或另一类型的熵编码操作。视频编码器20还可对与视频数据 相关联的其它语法元素执行CABAC操作。

在视频编码器20产生与变换系数块相关联的语法元素且执行CABAC操作之后, 视频编码器20将所得数据包含在用于视频数据的位流中。位流可包含形成经译码图片 和相关联数据的表示的位序列。

位流可包括一连串网络抽象层(NAL)单元。所述NAL单元中的每一者可为含有NAL 单元中的数据类型的指示和含有数据的字节的语法结构。举例来说,NAL单元可含有表 示PPS、APS、经译码切片、辅助增强信息、存取单元分隔符、填充符数据的数据,或 另一类型的数据。NAL单元的数据可呈穿插有模仿防止位的原始字节序列有效负载 (RBSP)的形式。RBSP可为含有囊封在NAL单元内的整数数目个字节的语法结构。

当视频编码器20对变换系数块执行熵编码操作时,视频编码器20可确定变换系数 块中是否存在至少一个有效(即,非零)变换系数。如果变换系数块中存在至少一个有效 变换系数,则视频编码器20可更新经译码块旗标(CBF)以指示所述变换系数块包含至少 一个有效变换系数。如果变换系数块中不存在有效变换系数,则视频编码器20可更新 CBF以指示变换系数块未包含任何有效变换系数。

如果变换系数块中存在至少一个有效变换系数,则视频编码器20可根据扫描次序 识别变换系数块的最后有效系数(LSC)。当变换系数块的变换系数是根据扫描次序而排 序时,变换系数块的LSC为最后出现的非零变换系数。扫描次序可为前向扫描次序。换 句话说,扫描次序可在变换系数块的DC变换系数处开始。DC变换系数出现在变换系 数块的左上角处。相比之下,反转或反扫描次序在变换系数块的右下变换系数处开始。

视频编码器20可根据各种扫描次序识别变换系数块的LSC。举例来说,视频编码 器20可根据Z形扫描次序、水平扫描次序、垂直扫描次序、对角线扫描次序或子块扫 描次序来识别LSC。在一些实例中,如果变换系数块与经帧内预测的CU相关联,则视 频编码器20可基于与所述CU相关联的帧内预测模式选择扫描次序。此外,在一些实例 中,视频编码器20可自适应地在扫描次序之间切换以优化译码效率和/或主观图片质量。

图3是说明实例扫描次序的概念图。图3的部分(a)展示实例Z形扫描次序。图3的 部分(b)展示实例水平扫描次序。图3的部分(c)展示实例垂直扫描次序。图3的部分(d) 展示实例反转对角线扫描次序。

图3的部分(e)展示实例对角线子块扫描次序。在子块扫描次序中,视频编码器可将 大变换系数块分裂成子块。在图3的实例中,子块展示为短划线正方形。对于子块中的 每一者,视频编码器20可以特定次序处理所述子块的变换系数。在图3的实例中,视 频编码器20以向上/向右对角线次序扫描左上子块中的变换系数,接着以向上/向右对角 线次序扫描左下子块中的变换系数,接着以向上/向右对角线次序扫描右上子块中的变换 系数,且最终以向上/向右对角线次序扫描右下子块中的变换系数。

在其它实例中,视频编码器20可将变换系数块分割成4x4子块(或其它子块大小)。 在此实例中,视频编码器20可接着根据扫描次序处理所述4x4变换系数块中的每一者。

在识别出LSC之后,视频编码器20可产生基于块的LSC指示符。所述基于块的 LSC指示符指定LSC的坐标。举例来说,如果变换系数块为8x8,扫描次序为水平扫描 次序,且视频编码器20在变换系数块的变换系数是根据扫描次序而排序时确定LSC出 现在第10位置,则视频编码器20可产生指定坐标(1,1)的基于块的LSC指示符。

视频编码器20可对所述基于块的LSC指示符执行CABAC编码操作。在一些情况 下,对基于块的LSC指示符执行CABAC编码操作可比对对应基于扫描的LSC指示符 执行CABAC编码操作更有效,因为熵编码操作可能够采用基于块的LSC指示符的x坐 标与y坐标之间的统计关系。视频编码器20可将基于块的LSC指示符的CABAC编码 版本添加到经编码位流。

在识别出LSC之后,视频编码器20可对变换系数块执行一个或一个以上译码遍次 以产生且编码与所述变换系数块相关联的语法元素。与变换系数块相关联的语法元素包 含用于变换系数块的有效性映射以及用于变换系数的等级信息。

在所述译码遍次中的每一者中,视频编码器20可根据反转扫描次序扫描经过变换 系数块的变换系数。反转扫描次序可为用以识别LSC的扫描次序的反转。举例来说,如 果视频编码器20根据前向对角线扫描次序识别LSC,则反转扫描次序可为反转对角线 扫描次序。

对于在第一译码遍次期间的每一变换系数,视频编码器20可确定变换系数的序数 位置是否出现于LSC的序数位置之前。如果变换系数的序数位置出现在LSC的序数位 置之前,则视频编码器20可产生且CABAC编码语法元素(即,有效性旗标),其指示变 换系数是否有效。如果变换系数为非零,则所述变换系数可为“有效的”。如果变换系 数不出现在LSC的序数位置之前,则视频编码器20不产生或CABAC编码用于所述变 换系数的有效性旗标。以此方式,视频编码器20可产生并CABAC编码用于变换系数 块的有效性映射。在产生且CABAC编码有效性映射之后,视频编码器20可将所述有 效性映射的CABAC编码版本包含在位流中。

在一些情况下,LSC的位置与有效性映射的内容之间可能存在统计关系。因此,视 频编码器20可使用LSC的位置来选择一个或一个以上上下文模型用于对有效性映射的 有效性旗标进行CABAC编码。

对于在第二译码遍次期间处理的每一变换系数,视频编码器20可确定变换系数是 否有效。如果变换系数有效,则视频编码器20可产生且CABAC编码语法元素(即,“等 级大于1”旗标),其指示变换系数的绝对值是否大于1。如果变换系数无效,则视频编 码器20不产生或CABAC编码用于所述变换系数的“等级大于1”旗标。在产生且 CABAC编码“等级大于1”旗标之后,视频编码器20可将所述“等级大于1”旗标的 CABAC编码版本包含在位流中。

在第三译码遍次期间,视频编码器20可产生且CABAC编码语法元素,所述语法 元素指示变换系数的绝对值是否大于2(即,“等级大于2”旗标)。在产生且CABAC编 码“等级大于2”旗标之后,视频编码器20可将所述“等级大于2”旗标的CABAC编 码版本包含在位流中。

对于在第四译码遍次期间处理的每一变换系数,视频编码器20可确定变换系数是 否有效。如果所述变换系数有效,则视频编码器20可产生语法元素(即,正负号旗标), 其指示变换系数为正还是为负。如果变换系数无效,则视频编码器20不产生用于变换 系数的正负号旗标。在产生正负号旗标之后,视频编码器20可将所述正负号旗标包含 在位流中。

对于在第五译码遍次期间处理的每一变换系数,视频编码器20可确定变换系数是 否有效。如果所述变换系数有效,则视频编码器20可产生系数的余数值(即,等级余数 元素)。视频编码器20可接着识别对应于所述余数值的Golomb-Rice码。在识别出用于 变换系数的Golomb-Rice码之后,视频编码器20可将所述Golomb-Rice码包含在位流 中。如果变换系数无效,则视频编码器20不产生用于变换系数的等级余数元素。

通过第二、第三、第四和第五译码遍次产生的语法元素可构成变换系数块的等级信 息,因为可从这些语法元素导出变换系数的绝对值(即,等级)。

当视频解码器30接收到位流时,视频解码器30可执行与由视频编码器20执行的 编码操作大体上互逆的解码操作。举例来说,视频解码器30可对图片的每一切片执行 解码操作。当视频解码器30的图片的切片执行解码操作时,视频解码器30可对切片中 的树块执行解码操作。当视频解码器30完成对树块的解码操作时,视频解码器30已对 与所述树块相关联的视频块中的样本进行了解码。当视频解码器30已对用于切片的每 一树块的样本进行了解码时,视频解码器30已重建用于所述切片的样本。

当视频解码器30对树块执行解码操作时,视频解码器30可对树块内的每一未分割 CU执行解码操作。如上文所论述,可将未分割CU分割成一个或一个以上TU。TU中 的每一者与一个或一个以上变换系数块相关联。在本发明中,如果与TU相关联的变换 系数块包含一个或一个以上有效变换系数,则所述TU为“有效TU”。

当视频解码器30对未分割CU执行解码操作时,视频解码器30可接收用于与CU 的有效TU相关联的变换系数块的经编码等级信息、用于与CU的有效TU相关联的变 换系数块的经编码有效性映射,以及用于与CU的有效TU相关联的变换系数块的经编 码基于块的LSC指示符。

因为视频编码器20不产生用于根据扫描次序出现在LSC的序数位置之后的变换系 数的有效性旗标,因此视频解码器30可能不能够确定哪些变换系数具有有效性旗标, 直到视频解码器30能够确定LSC的序数位置为止。此外,因为视频编码器20不产生用 于无效系数的“等级大于1”旗标、“等级大于2”旗标、正负号旗标或等级余数元素, 因此视频解码器可能不能够确定哪些变换系数具有“等级大于1”旗标、“等级大于2” 旗标、正负号旗标或等级余数元素,直到视频解码器30能够确定有效性映射为止。

因此,视频解码器30可首先对基于块的LSC指示符进行CABAC解码。此外,视 频解码器30可将所述基于块的LSC指示符转换成基于扫描的LSC指示符。在将基于块 的LSC指示符转换成基于扫描的LSC指示符之后,视频解码器30可基于所述基于扫描 的LSC指示符对用于变换系数块的有效性映射进行解码。视频解码器30可接着使用所 述有效性映射来对变换系数块的等级信息进行解码。

所述基于扫描的LSC指示符根据所述扫描次序指示所述LSC的序数位置。LSC的 序数位置可为LSC在通过根据扫描次序扫描变换系数块而形成的变换系数序列中的相 对位置。举例来说,变换系数块可为8个变换系数乘8个变换系数,且基于块的LSC指 示符可指定坐标(1,1)。在此实例中,当变换系数是根据水平扫描次序而排序时,坐标 (1,1)处的变换系数可为第10个变换系数。因此,在此实例中,视频解码器30可产生 指示第10位置的基于扫描的LSC指示符。

根据本发明的技术,视频解码器30可将基于块的LSC指示符有效地转换成基于扫 描的LSC指示符。视频解码器30可执行各种操作以将基于块的LSC指示符转换成基于 扫描的LSC指示符。举例来说,视频解码器30可执行非迭代算法,其从由基于块的LSC 指示符指定的变换坐标导出基于扫描的LSC指示符。在另一实例中,视频解码器30可 存储数据结构,其将基于块的LSC指示符的变换坐标映射到基于扫描的LSC指示符。 在此实例中,视频解码器30可存取此数据结构以产生基于扫描的LSC指示符。

在视频解码器30可如何将基于块的LSC指示符转换成基于扫描的LSC指示符的又 一实例中,视频解码器30可通过执行循环操作而产生基于扫描的LSC指示符。在此实 例中,指示符可指示给定变换系数块的当前变换系数。在循环操作的每一迭代期间,视 频解码器30可确定当前变换系数是否具有由基于块的LSC指示符指定的坐标。如果没 有,则视频解码器30可递增基于扫描的LSC指示符,且更新所述指示符以指示根据扫 描次序的下一变换系数。因此,在此实例中,视频解码器30可执行循环操作,其根据 扫描次序扫描经过给定变换系数块中的位置,直到达到具有所述坐标的位置为止,在给 定变换系数块的每一位置具有所述坐标之前递增所述位置的基于扫描的LSC指示符。在 此实例中,扫描次序可为子块扫描次序,其中将给定变换系数划分成子块。视频解码器 30可扫描经过子块中的一者中的变换系数中的每一者,随后扫描经过子块中的下一者中 的变换系数中的每一者。

在一些实例中,视频解码器30可基于不同扫描次序而使用不同转换操作。换句话 说,视频解码器30可基于扫描次序选择转换操作,且使用所述选定转换操作来将基于 块的LSC指示符转换为基于扫描的LSC指示符。举例来说,视频解码器30可在扫描次 序为反转水平扫描次序时使用上文所提及的非迭代算法,且视频解码器30可在扫描次 序为反转对角线扫描次序时使用上文所提及的映射数据结构。

在另一实例中,视频解码器30可使用转换操作的组合。在此实例中,视频解码器 30可将变换系数块划分成子块。视频解码器30可使用非迭代算法来识别子块的坐标以 及子块内的基于块的LSC指示符的坐标。视频解码器30可接着使用另一算法来确定子 块的扫描次序以及子块内的最后有效变换系数的扫描次序。以此方式,视频解码器30 可确定基于扫描的LSC指示符。

图5是说明经配置以实施本发明的技术的视频编码器20的实例配置的框图。图5 是出于解释的目的而提供,且不应被视为将技术限制为本发明中所大致例示和描述者。 出于解释之目的,本发明描述HEVC译码的上下文中的视讯编码器20。然而,本发明 之技术可适用于其他译码标准或方法。

在图5的实例中,视频编码器20包含多个功能组件。视频编码器20的功能组件包 含模式选择模块40、运动估计模块42、运动补偿模块44、帧内预测模块46、残余产生 模块50、变换模块52、量化模块54、CABAC模块56、逆量化模块58、逆变换模块60、 重建模块62,和经解码图片缓冲器64。在其它实例中,视频编码器20可包含较多、较 少或不同的功能组件。举例来说,视频编码器20可包含解块滤波器模块以对重建模块 62的输出进行滤波以从重建的视频移除成块效应假影。此外,运动估计模块42与运动 补偿模块44可高度集成,但出于解释的目的而在图5的实例中单独地表示。

视频编码器20可接收视频数据。在各种实例中,视频编码器20可从各种源接收视 频数据。举例来说,视频编码器20可从视频源18(图1)或另一源接收视频数据。视频 数据可表示图片序列。为对视频数据进行编码,视频编码器20可对每一图片序列执行 编码操作。

作为对图片序列执行编码操作的部分,视频编码器20可对所述图片序列内的每一 图片执行编码操作。作为对图片执行编码操作的部分,视频编码器20可对图片中的每 一切片执行编码操作。作为对切片执行编码操作的部分,视频编码器20可对切片中的 每一树块执行编码操作。

作为对树块执行编码操作的部分,视频编码器20可将所述树块的视频块分割成一 个或一个以上视频块。所述视频块中的每一者可与不同CU相关联。在一些实例中,CU 的视频块的大小范围可从8x8像素高达最大64x64像素或较大的树块的视频块大小。在 本发明中,“NxN”和“N乘N”可以互换使用来指代在垂直和水平尺寸方面的视频块 的像素尺寸,例如,16x16像素或16乘16像素。一般来说,16x16块在垂直方向上具 有16个像素(y=16),且在水平方向上具有16个像素(x=16)。同样,NxN块大体上在垂 直方向上具有N个像素,且在水平方向上具有N个像素,其中N表示非负整数值。类 似标号可用以指示变换系数块的尺寸。

作为对树块执行编码操作的部分,视频编码器20可产生用于所述树块的分级四叉 树数据结构。举例来说,树块可对应于四叉树数据结构的根节点。如果视频编码器20 将树块的视频块分割成四个子块,则所述根节点在所述四叉树数据结构中具有四个子级 节点。子级节点对应于与子块相关联的CU。如果视频编码器20将子块中的一者分割成 四个子子块,则对应于与子块相关联的CU的节点可具有四个子级节点,其对应于与所 述子子块相关联的CU。

四叉树数据结构的每一节点可提供用于对应CU的语法数据。举例来说,四叉树中 的节点可包含分裂旗标,其指示对应于所述节点的CU的视频块是否被分割(即,分裂) 成四个子块。可取决于所述CU的视频块是否分裂成子块来递归地界定用于CU的语法 元素。视频块未被分割的CU可对应于四叉树数据结构中的叶节点。四叉树数据结构中 的叶节点可被称为“译码节点”。表示树块的经编码版本的数据可包含基于用于所述树 块的四叉树数据结构的数据。

视频编码器20可对树块的每一未分割CU执行编码操作。当视频编码器20对未分 割CU执行编码操作时,视频编码器20产生表示未分割CU的经编码版本的数据。

作为对CU执行编码操作的部分,运动估计模块42和运动补偿模块模块对CU的每 一PU执行帧间预测。换句话说,运动估计模块42和运动补偿模块44可基于不同于含 有所述CU的图片的参考图片的经解码样本而产生用于所述CU的每一PU的预测数据。 帧间预测可提供时间压缩。

视频编码器20和视频解码器30可支持各种PU大小。假定特定CU的大小为2Nx2N, 则视频编码器20和视频解码器30可支持2Nx2N、NxN、2NxN或Nx2N的PU大小。 视频编码器20和视频解码器30还可支持用于2NxnU、2NxnD、nLx2N和nRx2N的PU 大小的不对称分割。在一些实例中,视频编码器20可沿并不按直角与CU的视频块的侧 相交的边界来在CU的PU之间分割CU的视频块。

运动估计模块42可关于CU的每一PU执行运动估计操作。当运动估计模块42关 于PU执行运动估计操作时,运动估计模块42产生用于所述PU的一个或一个以上运动 向量。举例来说,切片可为I切片、P切片,或B切片。运动估计模块42和运动补偿模 块44可取决于CU处于I切片、P切片还是B切片中而对CU的PU执行不同操作。在 I切片中,对所有CU(且因此CU的所有PU)进行帧内预测。因此,如果PU在I切片中, 则运动估计模块42和运动估计模块44不对PU执行帧间预测。

如果PU在P切片中,则含有所述PU的图片与称为“列表0”的参考图片列表相关 联。列表0中的参考图片中的每一者含有可用于按解码次序对后续图片进行帧间预测的 样本。当运动估计模块42关于P切片中的PU执行运动估计操作时,运动估计模块42 搜索列表0中的参考图片以找出用于PU的参考样本。PU的参考样本可为最接近对应于 PU的像素值的一组像素值。运动估计模块42可使用多种量度来确定参考图片中的一组 像素值对应于PU的像素值的接近程度。举例来说,运动估计模块42可通过绝对差总和 (SAD)、平方差总和(SSD)或其它差异量度来确定参考图片中的一组像素值对应于PU的 像素值的接近程度。

在识别出P切片中的CU的PU的参考样本之后,运动估计模块42可产生指示列表 0中的参考图片含有参考样本的参考索引和指示PU与参考样本之间的空间位移的运动 向量。在各种实例中,运动估计模块42可以变化的精度产生运动向量。举例来说,运 动估计模块42可以四分之一像素精度、八分之一像素精度或其它分数像素精度产生运 动向量。运动估计模块42可将参考索引和运动向量输出到CABAC模块56和运动补偿 模块44。运动补偿模块44可使用CU的PU的参考索引和运动向量来识别及检索PU的 参考样本。运动补偿模块44可接着使用PU的参考样本的像素值来产生用于CU的预测 数据。

如果PU在B切片中,则含有所述PU的图片可与称为“列表0”和“列表1”的两 个参考图片列表相关联。列表0中的参考图片中的每一者含有可用于按解码次序对后续 图片进行帧间预测的样本。列表1中的参考图片可按解码次序出现在所述图片之前但按 呈现次序在所述图片之后。在一些实例中,含有B切片的图片可与为列表0与列表1的 组合的列表组合相关联。

此外,如果CU在B切片中,则运动估计模块42可对CU的PU执行单向预测或双 向预测。当运动估计模块42对PU执行单向预测时,运动估计模块42可搜索列表0或 列表1中的参考图片以找出用于所述PU的参考样本。运动估计模块42可接着产生指示 列表0或列表1中的含有所述参考样本的参考图片的参考索引和指示PU与所述参考样 本之间的空间位移的运动向量。运动估计模块42可将用于CU的PU的参考索引和运动 向量输出到CABAC模块56和运动补偿模块44。运动补偿模块44可使用CU的PU的 参考索引和运动向量来识别及检索PU的参考样本。运动补偿模块44可接着使用PU的 参考样本的像素值来产生用于CU的PU的预测视频块。

当运动估计模块42对PU执行双向预测时,运动估计模块42可搜索列表0中的参 考图片以找出用于所述PU的参考样本,且还可搜索列表1中的参考图片以找出用于所 述PU的另一参考样本。运动估计模块42可接着产生指示所述参考样本的参考索引和指 示参考样本与PU之间的空间位移的运动向量。运动估计模块42可将参考索引和运动向 量输出到CABAC模块56和运动补偿模块44。运动补偿模块44可使用所述参考索引和 运动向量来识别及检索PU的参考样本。运动补偿模块44可接着从CU的PU的参考样 本中的像素值内插CU的PU的预测视频块的像素值。

作为对CU执行编码操作的部分,帧内预测模块46可对CU的PU执行帧内预测。 换句话说,帧内预测模块46可基于与CU相同的切片中的经解码像素值产生用于CU的 PU的预测数据。帧内预测可提供空间压缩。

为对PU执行帧内预测,帧内预测模块46可使用多个帧内预测模式来产生用于PU 的多组预测数据。当帧内预测模块46使用帧内预测模式来产生用于PU的一组预测数据 时,帧内预测模块46可在与所述帧内预测模式相关联的方向和/或梯度上将像素值从相 邻PU跨越PU的视频块进行扩展。相邻PU可在所述PU的上方、右上方、左上方或左 方,假定对于PU、CU和树块采用从左到右、从上到下的编码次序。帧内预测模块46 可取决于PU的大小而使用各种数目的帧内预测模式,例如33方向帧内预测模式。

帧内预测模块46可选择用于PU的预测数据组中的一者。在各种实例中,帧内预测 模块46可以各种方式选择用于PU的预测数据组。举例来说,帧内预测模块46可通过 基于预测数据组的失真与位率的比较且选择具有最低失真率的预测数据组来选择用于 PU的预测数据组。

模式选择单元40可从运动补偿模块44针对CU的PU所产生的预测数据组或帧内 预测单元46针对CU的PU所产生的预测数据组中选择用于CU的PU的预测数据。在 一些实例中,模式选择单元40基于预测数据组的错误(即,失真)和位率选择用于CU的 PU的预测数据。

在模式选择单元40选择用于CU的PU的预测数据之后,残余产生模块50可通过 从CU的原始视频块的像素值减去CU的PU的选定预测数据的预测视频块的像素值而 产生CU的残余数据。CU的残余数据可包含对应于CU中的视频块的不同像素分量的 2D残余块。举例来说,残余数据可包含对应于CU的预测视频块中的像素的明度分量与 CU的原始视频块中的像素的明度分量之间的差的残余视频块。此外,CU的残余数据可 包含对应于CU的PU的预测视频块中的像素的色度分量与CU的原始视频块的像素的 色度分量之间的差的残余视频块。

如上所述,CU可具有一个或一个以上TU。CU的每一TU可对应于所述CU的残 余数据内的不同视频块。CU的TU的视频块的大小可或可不基于CU的PU的视频块的 大小。在一些实例中,CU的残余数据可使用被称为“残余四叉树”(RQT)的四叉树结构 而细分成较小视频块。TU可对应于RQT的叶节点。

变换模块52可通过将变换应用到对应于CU的每一TU的视频块而产生用于所述 TU的变换系数块。所述变换系数块中的每一者可为变换系数的2D矩阵。在各种实例中, 变换模块52可将各种变换应用到对应于TU的残余视频块。举例来说,变换模块可应用 离散余弦变换(DCT)、定向变换,或概念上类似的变换。在变换模块52产生用于TU的 变换系数块之后,量化模块54可量化变换系数块中的变换系数。

CABAC模块56可从量化模块54接收变换系数块。当CABAC模块56接收到变换 系数块时,CABAC模块56可产生用于变换系数块的有效性映射和基于块的LSC指示 符。基于块的LSC指示符可指示变换系数块的最后有效变换系数在变换系数块中的坐 标。CABAC模块56还可产生用于变换系数块的等级信息。如上文所解释,用于变换系 数块的等级信息可包含一系列“等级大于1”旗标、一系列“等级大于2”旗标、一系 列正负号旗标,和一系列等级余数元素。

CABAC模块56可对有效性映射、基于块的LSC指示符、“等级大于1”旗标和“等 级大于2”旗标执行CABAC编码操作。此外,CABAC模块56可对其它语法元素执行 CABAC编码操作,所述其它语法元素例如是运动向量或运动向量差异信息以及适用于 在视频解码器30处对视频数据进行解码的多种其它语法元素中的任一者。

逆量化模块58和逆变换模块60可分别应用逆量化和逆变换到变换系数块以从变换 系数块重建残余视频块。重建模块62可将重建的残余视频块添加到由运动补偿模块44 或帧内预测模块46产生的一个或一个以上预测视频块的像素值以产生重构重建的视频 块供存储在经解码图片缓冲器64中。运动估计模块42和运动补偿模块44可使用含有 所述经重建视频块的参考图片来对后续图片的CU执行帧内预测或帧间预测。

图6是说明视频解码器30的实例配置的框图。图6是出于解释的目的而提供,且 并不将技术限制为本发明中所大致例示和描述者。出于解释的目的,本发明在HEVC译 码的上下文中描述视频解码器30。然而,本发明的技术可适用于其它译码标准或方法。

在图6的实例中,视频解码器30包含多个功能组件。视频解码器30的功能组件包 含剖析模块70、运动补偿模块72、帧内预测模块74、逆量化模块76、逆变换模块78、 重建模块80以及经解码图片缓冲器82。在一些实例中,视频解码器30可执行与相对于 图5的视频编码器20所描述的编码遍次大体上互逆的解码遍次。在其它实例中,视频 解码器30可包含较多、较少或不同功能组件。举例来说,视频解码器30可包含解块滤 波器以对重建模块80的输出进行滤波以从重建的视频移除成块效应假影。

视频解码器30可接收包括经编码的视频数据的位流。所述位流可包含多个语法元 素。当视频解码器30接收到位流时,剖析模块70可对所述位流执行剖析操作。作为对 位流执行剖析操作的结果,剖析模块70可从所述位流提取语法元素。作为执行剖析操 作的部分,剖析模块70可对位流中的各种CABAC编码语法元素进行CABAC解码。运 动补偿模块72、帧内预测模块74、逆量化模块76和逆变换模块78可执行重建操作, 其基于从位流提取的语法元素产生经解码视频数据。

位流可包含表示用于变换系数块的基于块的LSC指示符、用于变换系数块的有效性 映射和用于变换系数块的等级信息的数据。作为执行剖析操作的部分,剖析模块70可 对基于块的LSC指示符进行CABAC解码。剖析模块70可接着将所述基于块的LSC指 示符转换成基于扫描的LSC指示符。扫描次序可在经编码位流中发信号通知,或可由剖 析模块70从一个或一个以上语法元素或参数推断。

在将基于块的LSC指示符转换成基于扫描的LSC指示符之后,剖析模块70可使用 所述基于扫描的LSC指示符来剖析来自位流的有效性映射。举例来说,剖析模块70可 基于所述基于扫描的LSC指示符确定用于变换系数块的有效性映射是否包含用于变换 系数的有效性旗标。此外,在一些实例中,剖析模块70可基于基于扫描的LSC指示符 选择上下文模型。剖析模块70可在对有效性映射进行解码的CABAC解码操作期间使 用所述选定的上下文模型。剖析模块70可使用所述有效性映射来剖析来自位流的变换 系数块的等级信息。

可能需要以有效方式将基于块的LSC指示符转换成基于扫描的LSC指示符。根据 本发明的技术,剖析模块70可执行各种操作以将基于块的LSC指示符转换成基于扫描 的LSC指示符。举例来说,剖析模块70可执行非迭代算法,其从由基于块的LSC指示 符指定的坐标导出基于扫描的LSC指示符。下文详细描述的图9和10是实例非迭代算 法的流程图,其可从由基于块的LSC指示符指定的坐标导出基于扫描的LSC指示符。 在另一实例中,剖析模块70可存储将坐标映射到基于扫描的LSC指示符的数据结构。 在此实例中,剖析模块70可存取此数据结构以产生基于扫描的LSC指示符。下文详细 描述的图11说明其中视频解码器30至少部分地通过存取将基于块的LSC指示符映射到 基于扫描的LSC指示符的数据结构而将基于块的LSC指示符转换为基于扫描的LSC指 示符的实例操作。在又一实例中,剖析模块70可通过执行循环操作而产生基于扫描的 LSC指示符,所述循环操作根据前向扫描次序扫描经过变换系数块中的位置,直到达到 具有由基于块的LSC指示符指定的坐标的变换系数为止。下文详细描述的图12说明其 中视频解码器30通过执行此类循环操作而将基于块的LSC指示符转换成基于扫描的 LSC指示符的实例迭代操作。

在一些实例中,剖析模块70可基于不同扫描次序而使用不同转换操作。举例来说, 剖析模块70可在扫描次序为对角线扫描次序时使用上文所提及的非迭代算法,且剖析 模块70可在扫描次序为Z形扫描次序时使用上文所提及的映射数据结构。

在剖析模块70对变换系数块进行解码之后,逆量化模块76可对所述变换系数块进 行逆量化,即去量化。逆量化模块76可以类似于针对HEVC所提议的逆量化过程或由 H.264解码标准界定的逆量化过程的方式来对变换系数块进行逆量化。逆量化模块76可 使用由视频编码器20针对变换系数块的CU所计算的量化参数QPY来确定量化程度, 且同样地确定供逆量化模块76应用的逆量化程度。

在逆量化模块76对变换系数块进行逆量化之后,逆变换模块78可产生用于与变换 系数块相关联的TU的残余视频块。逆变换模块78可至少部分地通过将逆变换应用到变 换系数块而产生用于TU的残余视频块。举例来说,逆变换模块78可将逆DCT、逆整 数变换、逆Karhunen-Loeve变换(KLT)、逆旋转变换、逆定向变换,或另一逆变换应用 到变换系数块。在一些实例中,逆变换模块78可基于来自视频编码器20的发信而确定 适用于变换系数块的逆变换。在此些实例中,逆变换模块78可基于在四叉树的根节点 处发信号通知的变换确定用于与变换系数块相关联的树块的逆变换。在其它实例中,逆 变换模块78可从一个或一个以上译码特性(例如块大小、译码模式,或其类似者)推断逆 变换。在一些实例中,逆变换模块78可应用级联的逆变换。

运动补偿模块72可执行运动补偿以产生用于CU的PU的预测数据。在一些实例中, 运动补偿模块72可通过基于内插滤波器执行内插而改进PU的预测数据。用于将用于以 子像素精度进行运动补偿的内插滤波器的识别符可包括在语法元素中。运动补偿模块72 可使用由视频编码器20在产生PU的预测数据期间使用的相同内插滤波器来计算参考块 的子整数像素的内插值。运动补偿模块72可根据所接收的语法信息而确定由视频编码 器20使用的内插滤波器且使用所述内插滤波器来产生预测数据。

在HEVC实例中,运动补偿模块72和帧内预测模块74可使用所述语法信息(例如, 由四叉树提供)中的一些来确定用以对经编码视频序列的帧进行编码的树块的大小、描述 如何分裂经编码视频序列的帧的每一CU的视频块(以及同样地,如何分裂子块)的分裂 信息、指示如何对每一PU进行编码的模式(例如,帧内或帧间预测,且对于帧内预测, 为帧内预测编码模式)、用于每一经帧间预测CU的一个或一个以上参考帧(和/或含有参 考帧的识别符的参考列表),以及用以对经编码视频序列进行解码的其它信息。

重建模块80组合CU的残余视频块与由运动补偿模块72或帧内预测模块74产生的 CU的PU的对应预测视频块以形成经解码视频块。在一些实例中,视频解码器30可应 用解块滤波器以对经解码视频块进行滤波以便从经解码视频块移除成块效应假影。经解 码图片缓冲器82存储经解码视频块。经解码图片缓冲器82可提供用于后续运动补偿的 参考图片,且还可存储用于呈现在显示装置(例如图1的显示装置32)上的图片。

图7是说明由视频编码器20执行的实例操作100的流程图。在CABAC模块56开 始操作100之后,视频编码器20可根据扫描次序识别变换系数块的LSC(102)。在视频 编码器20已识别出变换系数块的LSC之后,视频编码器20可产生指示变换系数块的所 识别LSC的坐标的基于块的LSC指示符(104)。

在产生基于块的LSC指示符之后,视频编码器20可对基于块的LSC指示符执行 CABAC编码操作(106)。在各种实例中,视频编码器20可以各种方式对基于块的LSC 指示符执行CABAC编码操作。举例来说,在一些实例中,视频编码器20可首先将基 于块的LSC指示符的每一坐标转换成二进制码。换句话说,视频编码器20可“二进制 化”基于块的LSC指示符的坐标。在二进制化所述坐标之后,视频编码器20可选择表 示基于块的LSC指示符的y坐标的用于对二进制码进行编码的上下文模型。在一些情况 下,视频编码器20可基于基于块的LSC指示符的x坐标选择表示y坐标的用于对二进 制码进行编码的上下文模型。视频编码器20可在对表示y坐标的二进制码的一个或一 个以上二进制数进行编码时使用所述选定的上下文模型。类似地,视频编码器20可基 于基于块的LSC指示符的y坐标选择表示基于块的LSC指示符的x坐标的用于对二进 制码进行编码的上下文模型。视频编码器20可在对表示x坐标的二进制码的一个或一 个以上二进制数进行编码时使用所述选定的上下文模型。

基于块的LSC指示符的x坐标与y坐标之间可能存在统计关系。举例来说,有效变 换系数倾向于围绕变换系数块的DC变换系数集群。因此,如果x坐标相对接近于DC 变换系数,则y坐标也可能相对接近于DC变换系数,且反之亦然。通过基于x坐标选 择用于y坐标的上下文模型,视频编码器20可能够利用此统计关系来较准确地选择用 于y坐标的上下文模型。同样,通过基于y坐标选择用于x坐标的上下文模型,视频编 码器20可能够利用此统计关系来较准确地选择用于x坐标的上下文模型。

在一些实例中,视频编码器20可交错对用于x和y坐标的符号的熵编码操作。举 例来说,视频编码器20可首先对x坐标的第一符号执行熵编码操作。假定视频编码器 20将x坐标表示为一元数字,则如果x坐标为0,x坐标的第一符号为0,且否则为1。 在对x坐标的第一符号进行编码之后,视频编码器20可对y坐标的第一符号执行熵编 码操作。视频编码器20可取决于x坐标的第一符号的值而使用不同上下文来对y坐标 的第一符号进行编码。接着,如果x坐标大于0,则视频编码器20可对x坐标的第二符 号执行熵编码操作。视频编码器20可取决于y坐标的第一符号的值而使用不同上下文 来对x坐标的第二符号进行编码。视频编码器20可继续对x和y坐标的符号进行编码, 直到视频编码器20已对x和y坐标的符号中的每一者进行了编码为止。

在一些实例中,视频编码器20可使用扫描次序将变换系数从一变换系数块映射到 另一2D变换系数块。举例来说,所述另一2D变换系数块可为八个位置宽。在此实例 中,视频编码器20可将如由扫描次序确定的变换系数块的第一八个变换系数映射到所 述另一2D变换系数块的第一行,将如由扫描次序确定的变换系数块的第二八个变换系 数映射到所述另一2D变换系数块的第二行,以此类推。在此实例中,视频编码器20可 接着根据扫描次序识别所述另一2D变换系数块的最后有效变换系数,且产生指示所述 另一2D块的最后有效变换系数的基于块的LSC指示符。在此实例中,较低行号与变换 系数有效的概率之间可能存在统计关系。举例来说,变换系数有效的概率在低行号中比 在高行号中高。视频编码器20可在对基于块的LSC指示符执行熵编码操作时利用此统 计关系。举例来说,视频编码器20可首先对y坐标执行熵编码操作,且接着对x坐标 执行熵编码操作。当视频编码器20对x坐标执行熵编码操作时,视频编码器20可基于 y坐标选择上下文模型。

此外,视频编码器20可产生用于变换系数块的有效性映射(108)。在一些实例中, 视频编码器20可产生有效性映射,且同时识别变换系数块的LSC。

在各种实例中,视频编码器20可以各种方式产生有效性映射。举例来说,视频编 码器20可根据反转扫描次序执行处理变换系数中的每一者的译码遍次。反转扫描次序 可为用以识别LSC的扫描次序的反转。在其它实例中,视频编码器20可使用与视频编 码器20用以识别LSC的相同扫描次序来产生用于变换系数块的有效性映射。对于在译 码遍次期间处理的每一变换系数,视频编码器20可在根据扫描次序的变换系数的序数 位置在根据扫描次序的LSC的序数位置之前的情况下产生且CABAC编码用于变换系数 的有效性旗标。

在另一实例中,视频编码器20可首先产生2D块以充当有效性映射。在此实例中, 视频编码器20可扫描经过所述变换系数块。在视频编码器20扫描经过所述变换系数块 时,视频编码器20可在2D有效性映射中指示变换系数块的对应变换系数有效还是无效。

此外,视频编码器20可对有效性映射执行CABAC编码操作(110)。在一些实例中, 视频编码器20可交错步骤108与110。举例来说,视频编码器20可产生用于第一变换 系数的有效性旗标。视频编码器20可接着对用于所述第一变换系数的有效性旗标执行 CABAC编码操作。在对用于第一变换系数的有效性旗标执行CABAC编码操作之后, 视频编码器20可产生用于第二变换系数的有效性旗标,且接着对用于所述第二变换系 数的有效性旗标执行CABAC编码操作,以此类推。

视频编码器20可以各种方式对有效性映射执行CABAC编码操作。举例来说,视 频编码器20可基于变换系数块的LSC选择上下文模型。LSC的位置与有效性映射的下 一有效性旗标(按反转扫描次序)的值之间可能存在统计关系。举例来说,如果视频编码 器20使用反转扫描次序来产生有效性映射且变换系数块的LSC相对远离变换系数块的 DC变换系数,则下一有效性旗标为1的概率相对大于变换系数块的LSC相对接近于变 换系数块的DC变换系数的情况。通过基于变换系数块的LSC选择上下文模型,视频编 码器20可能够利用此统计关系来较准确地选择用于对有效性映射进行编码的上下文模 型。在选定用于有效性映射的上下文模型之后,视频编码器20可使用所述上下文模型 来对有效性映射的一个或一个以上有效性旗标进行CABAC编码。在对有效性映射的 CABAC编码操作期间,视频编码器20可使用一个或一个以上其它上下文模型来对有效 性映射的后续有效性旗标进行CABAC编码。

在其它实例中,视频编码器20可以其它方式利用LSC与有效性映射之间的统计关 系。举例来说,视频编码器20可在LSC的序数位置大于给定阈值的情况下使用一组上 下文来对有效性映射进行CABAC编码,且在LSC的序数位置不大于给定阈值的情况下 使用另一组上下文来对有效性映射进行编码。以此方式使用不同上下文可改善译码效 率。

在另一实例中,视频编码器20可通过对变换系数进行分组来利用LSC与有效性映 射之间的统计关系。举例来说,在此实例中,视频编码器20可将三个变换系数分组在 一起,且将所得群组编码为单个变换系数。因此,视频编码器20可一次对三个变换系 数进行编码。如果群组中的所有三个变换系数都是0,则视频编码器20将所述三个变换 系数编码为0。如果不是,则视频编码器20可产生1旗标及指示三个对应变换系数中的 哪些者有效的旗标。

在一些情况下,变换系数块的所有有效变换系数可位于在变换系数块的左上角处的 小区域内。举例来说,变换系数块的所有有效变换系数可位于在变换系数块的左上角处 的4x4区域内。在此些情况下,使用基于扫描的LSC指示符可能比使用基于块的LSC 指示符需要较少位来指示变换系数块的LSC。因此,在一些实例中,视频编码器20可 在所有有效变换系数在所述区域内时产生基于扫描的LSC指示符代替基于块的LSC指 示符。在此些实例中,视频编码器20可在变换系数块包含在所述区域外部的一个或一 个以上有效变换系数的情况下产生基于块的LSC指示符。此外,在一些此些实例中,视 频编码器20可在位流中包含指示LSC是使用基于块的LSC指示符还是基于扫描的LSC 指示符来指示的旗标。

此外,视频编码器20可产生用于变换系数块中的变换系数的等级信息(112)。如上 所述,用于变换系数的等级信息可包含“等级大于1”旗标、“等级大于2”旗标、正 负号旗标和等级余数元素。

此外,视频编码器20可对用于变换系数的等级信息中的至少一些执行CABAC编 码操作(114)。在一些实例中,视频编码器20可交错步骤112与114。举例来说,视频编 码器20可对“等级大于1”旗标、“等级大于2”旗标、正负号旗标和等级余数元素执 行单独的译码遍次。在用于“等级大于1”旗标的译码遍次期间,视频编码器20可产生 且CABAC编码用于第一变换系数的“等级大于1”旗标,产生且CABAC编码用于下 一变换系数的“等级大于1”旗标,以此类推。类似地,在用于“等级大于2”旗标的 译码遍次期间,视频编码器20可产生且CABAC编码用于第一变换系数的“等级大于 2”旗标,产生且CABAC编码用于下一变换系数的“等级大于2”旗标,以此类推。在 用于正负号旗标的译码遍次期间,视频编码器20可产生用于第一变换系数的正负号旗 标,产生用于下一变换系数的正负号旗标,以此类推。在此实例中,视频编码器20并 不对正负号旗标进行CABAC编码。在用于等级余数元素的译码遍次期间,视频编码器 20可产生等级余数元素且识别用于第一变换系数的对应Golomb-Rice码,产生等级余数 元素且识别用于下一变换系数的对应Golomb-Rice码,以此类推。在此实例中,如果变 换系数旗标无效,则视频编码器20可不产生用于所述变换系数的“等级大于1”旗标、 “等级大于2”旗标、正负号旗标或等级余数元素。

在一些实例中,当视频编码器20二进制化变换系数的等级信息时,二进制化的等 级信息的第一二进制数可指示变换系数是否有效。因此,在此些实例中,步骤108中的 产生有效性映射可为步骤112中的产生等级信息的部分,且步骤110中的对有效性映射 进行CABAC编码可为步骤114中的对等级信息进行CABAC编码的部分。

图8是说明用以对变换系数块进行解码的实例操作130的流程图。在视频解码器30 开始操作130之后,视频解码器30可接收包括表示用于与TU相关联的变换系数块的基 于块的LSC指示符、用于所述变换系数块的有效性映射和用于所述变换系数块的等级信 息的数据的位流(132)。所述位流可包括其它经编码的视频数据。

在接收到表示基于块的LSC指示符的数据之后,视频解码器30可执行CABAC解 码操作以对经编码的基于块的LSC指示符进行解码(134)。因此,通过执行CABAC解 码操作,视频解码器30可从经编码的视频数据的位流接收用于变换系数块的LSC的基 于块的LSC指示符。

在视频解码器30执行CABAC解码操作以对基于块的LSC指示符进行解码之后, 视频解码器30可选择转换操作(135)。在一些实例中,视频解码器30可基于扫描次序选 择转换操作。视频解码器30可接着使用所述选定转换操作来将基于块的LSC指示符转 换成基于扫描的LSC指示符(136)。在各种实例中,视频解码器30可以各种方式将基于 块的LSC指示符转换成基于扫描的LSC指示符。举例来说,视频解码器30可使用图9 到12中所示的实例操作来将基于块的LSC指示符有效地转换成基于扫描的LSC指示符。 在其它实例中,视频解码器30可执行图9到12的实例操作中的一者或一者以上的组合 来将基于块的LSC指示符转换成基于扫描的LSC指示符。此外,在又其它实例中,视 频解码器30并不在对基于块的LSC指示符进行解码之后选择转换操作。确切地说,在 一些此类实例中,视频解码器30可仅经配置以执行一个特定转换操作。

随后,视频解码器30可使用所述基于扫描的LSC指示符来对用于变换系数块的有 效性映射进行解码(138)。视频解码器30可以各种方式使用所述基于扫描的LSC指示符 来对有效性映射进行解码。

举例来说,视频编码器20可不编码用于在译码次序上在LSC之后出现的变换系数 的有效性旗标。因此,有效性映射中的有效性旗标的数目可在变换系数块当中变化。因 为有效性旗标的数目可变化,因此视频解码器30可能不能够基于变换系数块的大小来 确定在变换系数块的有效性映射中存在多少有效性旗标。因此,当视频解码器30对有 效性映射进行解码时,视频解码器30可能需要能够确定视频解码器30是否已剖析来自 位流的有效性映射的所有有效性旗标。因此,视频解码器30可继续剖析来自位流的有 效性旗标,直到经剖析的来自位流的有效性旗标的数目等于LSC的序数位置(即,由基 于扫描的LSC指示符指示的位置)为止。以此方式,视频解码器30可使用基于扫描的 LSC指示符确定所述有效性映射是否包含用于变换系数块的变换系数的有效性旗标。

在另一实例中,基于扫描的LSC指示符可指示指示待解码的有效变换系数的二进制 数的数目。此外,如上所述,在扫描次序上在LSC之前的出现的变换系数的数目与有效 性映射的二进制数是1或0的概率之间可能存在统计关系。基于扫描的LSC指示符指示 在扫描次序上在LSC之前出现的变换系数的数目。因此,视频解码器30可基于基于扫 描的LSC指示符从多个可用上下文模型当中选择上下文模型。视频解码器30可接着使 用所述选定上下文模型来对有效性映射的一个或一个以上二进制数进行解码。在对有效 性映射的CABAC解码操作期间,视频解码器30可切换到一个或一个以上其它上下文 模型。

在一些实例中,变换系数块可包含多个子块。视频解码器30可基于基于扫描的LSC 指示符从多个子块当中识别最后有效子块,即含有LSC的最后有效子块。此外,视频解 码器30可执行处理所述最后有效子块和子块中的根据第一反转扫描次序(以所述最后有 效子块开始)在所述最后有效子块之前出现的子块的第一译码遍次。对于在第一译码遍次 期间处理的子块中的每一者,视频解码器30可执行根据第二反转扫描次序处理子块中 的变换系数的第二译码遍次。所述第二反转扫描次序可与第一反转扫描次序相同或不 同。对于在所述第二译码遍次期间处理的每一变换系数,视频解码器30可基于所述基 于扫描的LSC指示符确定有效性映射是否包含用于变换系数的有效性旗标。

在视频解码器30对用于变换系数块的有效性映射进行解码之后,视频解码器30可 对变换系数块的等级信息执行解码操作(140)。举例来说,变换系数块的等级信息可包含 “等级大于1”旗标、“等级大于2”旗标、正负号旗标和等级余数元素。“等级大于1” 旗标和“等级大于2”旗标可经CABAC编码,且等级余数元素可编码为Golomb-Rice 码。在此实例中,视频解码器30可执行CABAC解码操作以对“等级大于1”旗标和“等 级大于2”旗标进行解码,且可将Golomb-Rice码转换回成等级余数元素。

此外,视频解码器30可使用有效性映射、基于扫描的LSC指示符和变换系数块的 变换系数等级信息来从用于所述变换系数块的等级信息重建变换系数块(142)。在一些实 例中,视频解码器30可交错步骤140与142。举例来说,视频解码器30可以二维阵列 存储所述变换系数。在此实例中,视频解码器30可在视频解码器30在步骤140中对等 级信息进行解码时添加或调整阵列中的变换系数。

如上所述,用于变换系数块的等级信息可包括一系列“等级大于1”旗标、一系列 “等级大于2”旗标、一系列正负号旗标,和一系列等级余数元素。在一些实例中,所 述系列“等级大于1”旗标、所述系列“等级大于2”旗标、所述正负号旗标和所述等 级余数元素并不包含关于变换系数块内的无效变换系数的条目。因此,所述系列“等级 大于1”旗标、所述系列“等级大于2”旗标、所述正负号旗标和所述等级余数元素可 不包含指示对应于“等级大于1”旗标、“等级大于2”旗标、正负号旗标和等级余数 元素的变换系数块的位置的信息。因此,视频解码器30可使用有效性映射来确定对应 于“等级大于1”旗标、“等级大于2”旗标、正负号旗标和等级余数元素的变换系数 块内的位置。在此情况下,视频解码器30可接着使用所述“等级大于1”旗标、“等级 大于2”旗标、正负号旗标和等级余数元素来重建变换系数块。

如上所述,在一些实例中,变换系数的经二进制化等级信息的第一二进制数可指示 变换系数是否有效。因此,有效性映射可集成到变换系数的经二进制化等级信息中。在 此些实例中,步骤138中的对有效性映射执行熵解码操作可为步骤140中的对等级信息 执行CABAC解码操作的部分。

图9是说明用以将用于变换系数块的基于块的LSC指示符转换成用于变换系数块的 基于扫描的LSC指示符的实例非迭代操作150的流程图。在图9的实例中,操作150 假定扫描次序为Z形扫描次序。在视频解码器30开始操作150之后,视频解码器30可 确定对角线数目变量的值(152)。视频解码器30可通过将基于块的LSC指示符的y坐标 与基于块的LSC指示符的x坐标相加来确定对角线数目变量的值。

接下来,视频解码器30可确定所述对角线数目变量是否大于变换系数块的块宽度 (154)。如果对角线数目大于变换系数块的块宽度(154的“是”),则视频解码器30可计 算基于扫描的LSC指示符的初始值(156)。视频解码器30可如下计算基于扫描的LSC指 示符的初始值:ScanPositionLast=DiagNum*(DiagNum+1))>>1,其中“ScanPositionLast” 为基于扫描的LSC指示符,“DiagNum”表示对角线数目变量,且“>>”表示右移位运 算。

接下来,视频解码器30可确定对角线数目变量是否为奇数(158)。在一些实例中, 视频解码器30可如下确定对角线数目变量是否为奇数:(DiagNum%2)==1。如果对角线 数目变量为奇数(158的“是”),则视频解码器30可基于基于块的LSC指示符的y坐标 重新计算基于扫描的LSC指示符(160)。举例来说,视频解码器30可将基于块的LSC指 示符的y坐标与基于扫描的LSC指示符的初始值相加来重新计算所述基于扫描的LSC 指示符。反之,如果对角线数目变量不为奇数(158的“否”),则视频解码器30可基于 基于块的LSC指示符的x坐标重新计算基于扫描的LSC指示符(162)。举例来说,视频 解码器30可将基于块的LSC指示符的x坐标与基于扫描的LSC指示符的初始值相加来 重新计算所述基于扫描的LSC指示符。

如果对角线数目不大于块宽度(154的“否”),则视频解码器30可计算临时变量的 值(164)。视频解码器30可如下计算所述临时变量的值:(BlockWidth-1)<<1)-DiagNum, 其中“BlockWidth”指示变换系数块的宽度,且“<<”表示左移位运算。在计算出临时值 之后,视频解码器30可计算基于扫描的LSC指示符的初始值(166)。视频解码器30可 如下计算基于扫描的LSC指示符的初始值:MaxNumCoeffMl-((T*(T+1))>>1),其中 “MaxNumCoeffMl”为变换系数块中的变换系数的最大数目,且“T”为临时变量。

视频解码器30可接着确定所述临时变量是否为奇数(168)。如果临时变量为奇数(168的 “是”),则视频解码器30可基于基于块的LSC指示符的y坐标重新计算基于扫描的LSC 指示符(170)。举例来说,视频解码器30可如下重新计算基于扫描的LSC指示符: ScanPositionLast=ScanPositionLast-BlockWidth+1+PositionLastY,其中“ScanPositionLast”为 基于扫描的LSC指示符,“BlockWidth”为变换系数块的宽度,且“PositionLastY”为基于 块的LSC指示符的y坐标。

反之,如果临时变量不为奇数(168的“否”),则视频解码器30可基于基于块的LSC 指示符的x坐标重新计算基于扫描的LSC指示符(172)。举例来说,视频解码器30可如下重 新计算基于扫描的LSC指示符:ScanPositionLast=ScanPositionLast-BlockWidth+ 1+PositionLastX,其中“ScanPositionLast”为基于扫描的LSC指示符,“BlockWidth”为变 换系数块的宽度,且“PositionLastX”为基于块的LSC指示符的x坐标。

以下伪码描述根据图9的实例的非迭代算法,其从由基于块的LSC指示符指定的坐 标导出基于扫描的LSC指示符。

在此伪码中,“PositionLastY”和“PositionLastX”为最后变换系数的x和y坐标(假 定DC分量在坐标(0,0)处),且“BlockWidth”为块的宽度,<<为左移位运算,>>为右移 位运算,%为模数运算,且“MaxNumCoeffMl”为变换系数块可具有的变换系数的最大 数目(即,BlockWidth*BlockHeight-1)。

以下伪码类似于以上伪码,但在使用右上到左下对角线扫描时将基于块的LSC指示 符转换成基于扫描的LSC指示符:

以下伪码类似于以上伪码,但在使用左下到右上对角线扫描时将基于块的LSC指示 符转换成基于扫描的LSC指示符:

图10是说明将基于块的LSC指示符转换成基于扫描的LSC指示符的另一实例非迭 代操作200的流程图。在图10的实例中,视频解码器30可以1-D阵列将变换系数块存 储在存储器中。在此1-D阵列中,变换系数块的顶部行中的变换系数接着下一下部行中 的变换系数,所述变换系数接着与下一下部行相关联的变换系数,以此类推。在视频解 码器30开始操作200之后,视频解码器30可将基于扫描的LSC指示符设定为指示在与 由基于块的LSC指示符指示的坐标相关联的1-D阵列中的位置的值(202)。视频解码器 30可通过将由基于块的LSC指示符指定的y坐标乘以变换系数块的宽度且接着加上由 基于块的LSC指示符指定的x坐标来确定在1-D阵列中的位置。如果扫描次序为水平扫 描次序,则视频解码器30可能不需要执行任何进一步处理来获得基于扫描的LSC指示 符。

接下来,视频解码器30可确定扫描次序是否为Z形扫描次序(204)。响应于确定扫 描次序为Z形扫描次序(204的“是”),视频解码器30可将对角线数目(“uiD”)计算为 基于块的LSC指示符的y坐标(“uiPosLastY”)与基于块的LSC指示符的x坐标 (“uiPosLastX”)的总和(206)。视频解码器30可接着确定所述对角线数目是否小于变换 系数块的块宽度(“uiWidth”)(208)。响应于确定对角线数目小于变换系数块的宽度(208 的“是”),视频解码器30可基于所述对角线数目计算基于扫描的LSC指示符的值 (“uiScanPosLast”)(210)。举例来说,视频解码器30可如下计算基于扫描的LSC指示 符的初始值:uiScanPosLast=uiD*(uiD+1))>>1,其中“uiScanPosLast”为基于扫描的LSC 指示符,且“uiD”为对角线数目。在此实例中,如果对角线数目为偶数,则视频解码 器30可接着通过将基于块的LSC指示符的y坐标相加到基于扫描的LSC指示符的初始 值来计算基于扫描的LSC指示符的最终值。如果对角线数目为奇数,则视频解码器30 可通过将基于块的LSC指示符的x坐标相加到基于扫描的LSC指示符的初始值来计算 基于扫描的LSC指示符的最终值。

反之,响应于确定位置识别符不小于变换系数块的宽度(208的“否”),视频解码 器30可计算临时值(“uiDI”)(212)。视频解码器30可如下计算临时值: uiDI=((uiWidth-1)<<1)-uiD,“uiDI”为临时值,“uiWidth”为变换系数块的宽度,且 “uiD”为对角线数目。在计算出临时值之后,视频解码器30可基于所述临时值计算基 于扫描的LSC指示符(214)。视频解码器30可如下计算基于扫描的LSC指示符的初始值: uiScanPosLast=uiMaxNumCoeffMl-(uiDI*(uiDI+1)>>1),其中“uiScanPosLast”为基于扫描 的LSC指示符,“uiMaxNumCoeffMl”为变换系数块可具有的变换系数的最大数目,且 “uiDI”为临时值。如果所述临时值为偶数,则视频解码器30可通过从基于扫描的LSC 指示符的初始值减去(uiWidth-1-uiPosLastY)来计算基于扫描的LSC指示符的最终值,其 中“uiWidth”为变换系数块的宽度,且“uiPosLastY”为基于块的LSC指示符的y坐标。 如果所述临时值为奇数,则视频解码器30可通过从基于扫描的LSC指示符的初始值减 去(uiWidth-1-uiPosLastX)来计算基于扫描的LSC指示符的最终值,其中“uiWidth”为变 换系数块的宽度,且“uiPosLastX”为基于块的LSC指示符的x坐标。

响应于确定扫描次序不为Z形扫描次序(204的“否”),视频解码器30可确定扫描 次序是否为垂直扫描次序(216)。响应于确定扫描次序为垂直扫描次序(216的“是”), 视频解码器30可从基于块的LSC指示符和变换系数块的大小来计算基于扫描的LSC指 示符(218)。举例来说,视频解码器30可将基于扫描的LSC指示符计算为: uiScanPosLast=uiPosLastY+(uiPosLastX<<uiLog2BlockSize),其中uiScanPosLast为基于扫 描的LSC指示符,uiPosLastY为基于块的LSC指示符的y坐标,uiPosLastX为基于块 的LSC指示符的x坐标,且“uiLog2BlockSize”为变换系数块的大小的以2为底的对数。

以下代码描述根据图10的实例的用于在扫描次序为水平、垂直或Z形扫描次序时 将基于块的LSC指示符转换成基于扫描的LSC指示符的实例算法。变换系数块在存储 器中的存储可假定为逐行的。

视频解码器30可执行关于对角线扫描次序(与上文所论述的Z形扫描相对)的类似操 作。在此些操作中,视频解码器30可在步骤214中将基于扫描的LSC指示符计算为 uiScanPosLast=uiMaxNumCoeffMl-(uiDI*(uiDI+1)>>1)-uiWidth+1+uiPosLastX,其中 “uiScanPosLast”为基于扫描的LSC指示符,“uiMaxNumCoeffMl”为变换系数块中的 变换系数的最大数目,“uiDI”为临时值,“uiWidth”为变换系数块的宽度,且 “uiPosLastX”为基于块的TSC指示符的x坐标。以下代码描述用于在扫描次序为对角 线扫描次序时将基于块的LSC指示符转换成基于扫描的LSC指示符的实例算法。

图11说明将基于块的LSC指示符转换成基于扫描的LSC指示符的另一实例操作 250的流程图。如图11的实例中所说明,视频解码器30可存储查找表(252)。所述查找 表根据扫描次序将基于块的LSC指示符映射到基于扫描的LSC指示符。举例来说,如 果扫描次序为Z形扫描次序,则所述查找表可包含将坐标(1,1)映射到基于扫描的LSC 指示符“6”的条目。在一些实例中,视频解码器30可对于不同扫描次序和不同变换系 数块大小存储不同查找表。

在视频解码器30存储查找表之后,视频解码器30可接收基于块的LSC指示符(254)。 在接收到基于块的LSC指示符之后,视频解码器30可存取所述查找表以检索对应于基 于块的LSC指示符的基于扫描的LSC指示符(256)。在一些实例中,视频解码器30基于 基于块的LSC指示符的x和y坐标产生单个值。举例来说,视频解码器30可通过将y 坐标乘以变换系数块的宽度且接着加上x坐标来产生单个值。在此些实例中,视频解码 器30可使用所述单个值作为索引来从所述查找表检索基于扫描的LSC指示符。

视频解码器30可使用额外操作来将基于块的LSC指示符转换为基于扫描的LSC指 示符。举例来说,当变换系数是以子块对角线扫描次序扫描时,视频解码器30可使用 以下伪码来将基于块的LSC指示符转换为基于扫描的LSC指示符。在此子块对角线扫 描次序中,视频解码器30以右上到左下对角线次序处理子块,且以右上到左下对角线 次序扫描所述子块中的每一者内的变换系数。

在以上伪码中,“uiWidth”指示变换系数块的宽度,“uiPosLastX”指示基于块的 LSC指示符的x坐标,“uiPosLastY”指示基于块的LSC指示符的坐标,且 “uiScanPosLast”指示基于扫描的LSC指示符。“sX”指示含有最后有效变换系数的子 块的左上变换系数的x坐标。“sY”指示含有最后有效变换系数的子块的左上变换系数 的y坐标。以上伪码可表示用以将基于块的LSC指示符转换为基于扫描的LSC指示符 的操作的组合,因为以上伪码首先执行用以确定含有最后有效变换系数的子块的扫描次 序(“uiScanPosLast”)的操作,且接着执行用以确定子块内的最后有效变换系数的扫描 次序的操作。

图12是说明将基于块的LSC指示符转换成基于扫描的LSC指示符的实例迭代操作 300的流程图。在视频解码器30开始操作300之后,视频解码器30可接收根据扫描次 序指示变换系数块的LSC的基于块的LSC指示符(302)。视频解码器30可接着设定位置 指示符以根据扫描次序指示变换系数块的第一位置(304)。在一些实例中,所述位置指示 可包含指示当前变换系数的水平x位置的第一值和指示当前变换系数的垂直y位置的第 二值。举例来说,如果扫描次序在DC分量处开始,则视频解码器30可设定位置指示符 以指示所述位置处于坐标(0,0)处。此外,视频解码器30可将基于扫描的LSC指示符 初始化为零(306)。

视频解码器30可接着根据扫描次序前移由所述位置指示符指示的位置(308)。举例 来说,如果扫描次序为水平扫描次序且位置指示符当前指示位置(3,4),则视频解码器 30可前移由所述位置指示符指示的位置,使得所述位置指示符指示位置(3,5)。视频解 码器30可接着递增基于扫描的LSC指示符(310)。

视频解码器30可接着确定由所述位置指示符指示的位置是否与由基于块的LSC指 示符指示的位置相同(312)。换句话说,视频解码器30可确定所指示位置是否匹配。如 果由位置指示符指示的位置与由基于块的LSC指示符指示的位置相同,则基于扫描的 LSC指示符指示LSC的位置。如果由位置指示符指示的位置不为由基于块的LSC指示 符指示的位置(312的“否”),则视频解码器30可用前移的位置指示符重复步骤308到 312。如果由位置指示符指示的位置为由基于块的LSC指示符指示的位置(312的“是”), 则视频解码器30可结束操作300。

以下伪码可描述将基于块的LSC指示符转换成基于扫描的LSC指示符的替代迭代 操作。在此伪码中,视频解码器30检查每一扫描位置以确定对应基于块的位置是否为 由LSC指示符指示的位置。在当前扫描位置(“uiBlkPosLast”)等于基于块的LSC指示 符(“uiBlkPos”)时,视频解码器30停止检查位置。

图13是展示最后有效变换系数的变换系数块350的概念图。在图13的实例中,每 一圆表示变换系数块350中的不同变换系数。图13中的黑色圆对应于有效变换系数, 且白色圆对应于无效变换系数。变换系数352为根据对角线扫描次序的变换系数块350 的最后有效变换系数。图13将对角线扫描次序表示为穿过所述圆运行的箭头。假定变 换系数块350的顶部行为行0且最左列为列0,则用于变换系数352的基于块的LSC指 示符指示坐标(2,1)。用于变换系数352的基于扫描的LSC指示符可为数目“7”。

应认识到,取决于实施例,本文中所描述的方法中的任一者的某些动作或事件可用 不同顺序执行、可添加、合并或全部省略(例如,实践所述方法并不需要所有的所描述动 作或事件)。此外,在某些实施例中,可例如经由多线程处理、中断处理或多个处理器同 时而非依序执行动作或事件。

所属领域的技术人员将认识到,结合本文揭示的方法、系统和设备描述的各种说明 性逻辑块、模块、电路和算法步骤可实施为电子硬件、由处理器执行的计算机软件,或 两者的组合。为清楚说明硬件与软件的此可互换性,上文已大体上关于其功能性而描述 了各种说明性组件、块、模块、电路及步骤。所述功能性是实施为硬件还是软件取决于 特定应用及施加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不 同方式来实施所描述的功能性,但此种实施方案决策不应被解释为会导致脱离本发明的 范围。

此外,本文揭示的实施例可用电子装置或电路实施或执行,所述电子装置或电路例 如通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA) 或经设计以执行本文中所描述的功能的其它可编程逻辑装置、离散门或晶体管逻辑、离 散硬件组件,或其任何组合。通用处理器可为微处理器,但在替代例中,处理器可为任 何常规的处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例 如,DSP与微处理器的组合、多个微处理器的组合、一个或一个以上微处理器与DSP 核心的联合,或任何其它此类配置。

结合本文中所揭示的实施例而描述的方法或演算法的步骤可直接体现于硬件、由处 理器执行的软件模块或其两者的组合中。软件模块可驻留在RAM存储器、快闪存储器、 ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除式磁盘、CD-ROM, 或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得 处理器可从存储媒体读取信息并将信息写入到存储媒体。在替代例中,存储媒体可与处 理器成一体式。处理器及存储媒体可驻留于ASIC中。ASIC可驻留在用户终端中。在替 代例中,处理器及存储媒体可作为离散组件驻留于用户终端中。

已描述各种实例。这些及其它实例在所附权利要求书的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号