首页> 中国专利> 用于视频译码中的帧内预测的边界像素填补

用于视频译码中的帧内预测的边界像素填补

摘要

视频译码器执行根据一次序处理边界像素集合的填补操作。所述次序在左下方边界像素处开始且循序地前进通过所述边界像素到达右上方边界像素。当所述填补操作处理不可用边界像素时,所述填补操作基于由所述填补操作先前处理的边界像素的值来预测所述不可用边界像素的值。所述视频译码器可基于所述边界像素产生经帧内预测视频块。

著录项

  • 公开/公告号CN103621095A

    专利类型发明专利

  • 公开/公告日2014-03-05

    原文格式PDF

  • 申请/专利权人 高通股份有限公司;

    申请/专利号CN201280029111.4

  • 申请日2012-06-12

  • 分类号H04N19/61;H04N19/182;H04N19/593;H04N19/105;

  • 代理机构北京律盟知识产权代理有限责任公司;

  • 代理人宋献涛

  • 地址 美国加利福尼亚州

  • 入库时间 2024-02-19 22:44:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-09-01

    授权

    授权

  • 2014-04-02

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

    实质审查的生效

  • 2014-03-05

    公开

    公开

说明书

本申请案主张2011年6月13日申请的第61/496,504号美国临时申请案、2011年 11月8日申请的第61/557,361号美国临时申请案和2011年11月9日申请的第61/557,845 号美国临时申请案的权益,以上每一美国临时申请案的全部内容以引用方式并入本文。

技术领域

本发明涉及视频译码,且更特定来说涉及视频数据的帧内预测。

背景技术

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

视频压缩技术执行空间(图片内)预测和/或时间(图片间)预测以减少或移除视频序列 中固有的冗余。对于基于块的视频译码,可将视频切片分割为若干视频块,所述视频块 也可称为树块、译码单元(CU)和/或译码节点。图片的经帧内译码(I)切片中的视频块是使 用相对于同一图片中的相邻块中的参考样本的空间预测来编码。图片的经帧间译码(P或 B)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测或相对 于其它参考图片中的参考样本的时间预测。图片可称为帧,且参考图片可称为参考帧。

发明内容

大体上,本发明描述用于在视频译码中填补用于帧内预测的边界像素的技术。根据 本发明的技术,视频译码器可执行对不可用的边界像素指派值的填补操作。填补操作可 根据一次序来处理边界像素,所述次序在左下方边界像素处开始且循序地前进通过边界 像素到达右上方边界像素。当填补操作处理不可用的边界像素时,填补操作可基于由填 补操作先前处理的边界像素的值来对不可用的边界像素指派值。所述视频译码器可基于 所述边界像素产生经帧内预测视频块。

在一个方面中,本发明描述用于对视频数据进行译码的方法。所述方法包括执行填 补操作,其根据一次序来处理边界像素集合,所述次序在左下方边界像素处开始且循序 地前进通过边界像素到达右上方边界像素。当填补操作处理不可用的边界像素时,填补 操作基于由填补操作先前处理的边界像素的值来对不可用的边界像素指派值。所述方法 还包括基于所述边界像素产生经帧内预测视频块。

本发明还描述一种视频译码设备,其包括一个或一个以上处理器,所述一个或一个 以上处理器经配置以执行根据一次序来处理边界像素集合的填补操作,所述次序在左下 方边界像素处开始且循序地前进通过边界像素到达右上方边界像素。当填补操作处理不 可用的边界像素时,填补操作基于由填补操作先前处理的边界像素的值来对不可用的边 界像素指派值。所述一个或一个以上处理器还经配置以基于所述边界像素产生经帧内预 测视频块。

另外,本发明描述一种视频译码设备,其包括用于执行根据一次序来处理边界像素 集合的填补操作的装置,所述次序在左下方边界像素处开始且循序地前进通过边界像素 到达右上方边界像素。当填补操作处理不可用的边界像素时,填补操作基于由填补操作 先前处理的边界像素的值来对不可用的边界像素指派值。所述视频译码设备还包括用于 基于所述边界像素产生经帧内预测视频块的装置。

本发明还描述一种计算机程序产品,其包括存储计算机可执行指令的一个或一个以 上计算机可读存储媒体,所述计算机可执行指令在执行时致使一个或一个以上处理器执 行根据一次序来处理边界像素集合的填补操作,所述次序在左下方边界像素处开始且循 序地前进通过边界像素到达右上方边界像素。当填补操作处理不可用的边界像素时,填 补操作基于由填补操作先前处理的像素的值来对不可用的边界像素指派值。所述指令还 致使所述一个或一个以上处理器基于所述边界像素产生经帧内预测视频块。

在附图和以下描述中陈述一个或一个以上实例的细节。从描述和图式以及从权利要 求书将明了其它特征、目的和优点。

附图说明

图1是图解说明可实施本发明的技术的实例性视频译码系统的框图。

图2是图解说明实例性视频块和与视频块相关联的边界像素集合的概念图。

图3A是图解说明高效视频译码中的实例性帧内预测模式的概念图。

图3B是指示数字向不同帧内预测模式的另一实例性指派的概念图。

图3C是图解说明H.264/AVC中的实例性帧内预测模式的概念图。

图4是图解说明可实施本发明的技术的实例性视频编码器的框图。

图5是图解说明可实施本发明的技术的实例性视频解码器的框图。

图6是图解说明实例性帧内预测操作的流程图。

图7是图解说明实例性填补操作的流程图。

图8是图解说明图7的实例性填补操作前进通过边界像素的次序的概念图。

图9是图解说明另一实例性填补操作的流程图。

图10是图解说明图9的填补操作前进通过边界像素的实例性次序的概念图。

图11是图解说明另一实例性填补操作的流程图。

图12是图解说明图11的填补操作前进通过边界像素的实例性次序的概念图。

图13是图解说明用于确定边界像素是否可用的实例性操作的流程图。

具体实施方式

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

视频译码器可基于像素集合而产生经帧内预测视频块,所述像素集合在所述视频块 的顶部侧和左侧上对所述视频块定界。视频块的左侧上的边界像素可延伸到视频块的底 部像素行下方,且视频块的顶部侧上的边界像素可延伸到视频块的最右边像素列的右 边。

在一些实例中,边界像素中的一者或一者以上可能不可用。因此,视频译码器可执 行对不可用的边界像素指派值的填补操作。填补操作可根据一次序来处理边界像素,所 述次序在左下方边界像素处开始且循序地前进通过边界像素到达右上方边界像素。当填 补操作处理不可用的边界像素时,填补操作可基于由填补操作先前处理的边界像素的值 来对不可用的边界像素指派值。在执行填补操作之后,视频译码器可基于边界像素产生 经帧内预测视频块。如果视频译码器是视频编码器,那么视频译码器可基于经帧内预测 视频块产生经编码视频数据。举例来说,视频编码器可至少部分地基于经帧内预测视频 块产生残余数据。如果视频译码器是视频解码器,那么视频译码器可基于经帧内预测视 频块产生经解码视频数据。举例来说,视频解码器可至少部分地基于经帧内预测视频块 和残余视频块重构经解码视频块。

图1是图解说明可利用本发明的技术的实例性视频译码系统10的框图。如本文描 述所使用,术语“视频译码器”一股指代视频编码器、视频解码器以及组合式编码器- 解码器(CODEC)。在本发明中,术语“视频译码”或“译码”可一股指代视频编码和视 频解码。术语译码器、编码器、解码器和CODEC全部可指代与本发明一致的经设计以 用于视频数据的译码(编码和/或解码)的特定机器。执行视频译码的装置可称为视频译码 装置或设备。

如图1所示,视频译码系统10包含源装置12和目的地装置14。源装置12产生经 编码视频数据。目的地装置14可对由源装置12产生的经编码视频数据进行解码。源装 置12和目的地装置14可包括广泛多种装置,包含桌上型计算机、笔记型(即,膝上型) 计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、所谓的“智能” 垫、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或类似 装置。在一些实例中,源装置12和目的地装置14可针对无线通信而装备。

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

在另一实例中,信道16可对应于存储由源装置12产生的经编码视频数据的存储媒 体。在此实例中,目的地装置14可经由磁盘存取或卡存取而存取存储媒体。存储媒体 可包含多种本地存取的数据存储媒体,例如蓝光光盘、DVD、CD-ROM、快闪存储器或 其它合适的用于存储经编码视频数据的数字存储媒体。在又一实例中,信道16可包含 文件服务器或另一中间存储装置,其存储由源装置12产生的经编码视频。在此实例中, 目的地装置14可经由流式传输或下载而存取存储在文件服务器或另一中间存储装置处 的经编码视频数据。文件服务器可为能够存储经编码视频数据且将所述经编码视频数据 发射到目的地装置14的类型的服务器。实例文件服务器包含网络服务器(例如,用于网 站)、FTP服务器、网络附接存储(NAS)装置和本地磁盘驱动器。目的地装置14可通过 标准数据连接(例如因特网连接)存取经编码视频数据。数据连接的实例类型可包含适于 存取存储在文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例 如,DSL、电缆调制解调器等等)或两者的组合。经编码视频数据从文件服务器的发射可 为流式发射、下载发射或两者的组合。

本发明的技术不限于无线应用或设定。所述技术可应用于视频译码以支持多种多媒 体应用中的任一种,例如空中电视广播、闭路电视发射、卫星电视发射、流式传输视频 发射(例如,经由因特网)、为存储在数据存储媒体上对数字视频的编码、对存储在数据 存储媒体上的数字视频的解码,或其它应用。在一些实例中,视频译码系统10可经配 置以支持单向或双向视频发射以支持例如视频流式传输、视频重放、视频广播和/或视频 电话等应用。

在图1的实例中,源装置12包含视频源18、视频编码器20和输出接口22。在一 些情况下,输出接口22可包含调制器/解调器(调制解调器)和/或发射器。视频源18可包 含例如以下各项的源:例如摄像机等视频俘获装置、含有先前俘获视频数据的视频档案、 用以从视频内容提供者接收视频数据的视频馈送接口,和/或用于产生视频数据的计算机 图形系统,或此些源的组合。

视频编码器20可对视频数据进行编码。输出接口22可将经编码视频数据直接发射 到目的地装置14。或者,输出接口22可将经编码视频数据存储到存储媒体或文件服务 器上以供目的地装置14稍后存取以用于解码和/或重放。

在图1的实例中,目的地装置14包含输入接口28、视频解码器30和显示装置32。 在一些情况下,输入接口28可包含接收器和/或调制解调器。目的地装置14的输入接口 28经由信道16接收经编码视频数据。经编码视频数据可包含表示视频数据的多种语法 元素。

显示装置32可与目的地装置14集成或可在目的地装置14的外部。在其它实例中, 目的地装置14可为显示装置。大体上,显示装置32向用户显示经解码视频数据。显示 装置32可包括多种显示装置中的任一者,例如液晶显示器(LCD)、等离子显示器、有机 发光二极管(OLED)显示器,或另一类型的显示装置。

视频编码器20和视频解码器30可根据例如当前在开发的高效视频译码(HEVC)标准 等视频压缩标准来操作,且可符合HEVC测试模型(HM)。或者,视频编码器20和视频 解码器30可根据例如ITU-T H.264标准(或者称为MPEG-4第10部分高级视频译码(AVC)) 等其它专门或行业标准或此些标准的扩展来操作。然而本发明的技术不限于任何特定译 码标准。其它实例视频压缩标准包含MPEG-2和ITU-T H.263。

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

再次,图1仅是实例,且本发明的技术可应用于不一定包含编码与解码装置之间的 任何数据通信的视频译码设定(例如,视频编码或视频解码)。在许多实例中,视频编码 和视频解码由不彼此通信但是将经编码视频数据存储到存储器和/或从存储器检索和解 码经编码视频数据的装置执行。

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

如上文简要提到,视频编码器20对视频数据进行编码。视频数据可包括一个或一 个以上图片。图片中的每一者是形成视频的部分的静止图像。在一些实例中,图片可称 为视频“帧”。当视频编码器20对视频数据进行编码时,视频编码器20可产生位流。 位流可包含形成视频数据的经译码表示的位序列。

为了产生位流,视频编码器20可对视频数据中的每一图片执行编码操作。当视频 编码器20对图片执行编码操作时,视频编码器20可产生一系列经译码图片和相关联数 据。经译码图片是图片的经译码表示。相关联数据可包含序列参数集、图片参数集、调 适参数集,和其它语法结构。序列参数集(SPS)可含有适用于零个或零个以上图片序列的 参数。图片参数集(PPS)可含有适用于零个或零个以上图片的参数。调适参数集(APS)可 含有适用于零个或零个以上图片的参数。PPS中的参数可对于图片集合为固定的,而不 同调适参数集中的参数可适用于所述图片集合中的不同图片。

为了产生经译码图片,视频编码器20可将图片分割为相等大小的不重叠视频块。 视频块中的每一者与一树块相关联。在一些实例中,树块也可称为最大译码单元(LCU)。 HEVC的树块可广义地类似于例如H.264/AVC等先前标准的宏块。然而,树块不一定限 于特定大小,且可包含一个或一个以上译码单元(CU)。视频编码器20可使用四叉树分 割来将树块的视频块分割为与CU相关联的视频块,因此名称为“树块”。

在一些实例中,视频编码器20可将图片分割为多个切片。切片中的每一者可包含 整数个CU。在一些实例中,切片包括整数个树块。在其它实例中,切片的边界可在树 块内。

作为对图片执行编码操作的部分,视频编码器20可对图片的每一切片执行编码操 作。当视频编码器20对切片执行编码操作时,视频编码器20可产生与所述切片相关联 的经编码数据。与切片相关联的经编码数据可称为“经译码切片”。

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

为了产生经译码树块,视频编码器20可对树块的视频块递归地执行四叉树分割以 将视频块划分为逐渐变小的视频块。较小视频块中的每一者可与一不同CU相关联。举 例来说,视频编码器20可将树块的视频块分割为四个相等大小的子块,将子块中的一 者或一者以上分割为四个相等大小的子子块,等等。位流中的一个或一个以上语法元素 可指示视频编码器20可对树块的视频块进行分割的最大次数。CU的视频块的形状可为 正方形。CU的视频块的大小(即,CU的大小)可从8x8像素变动直到具有最大64x64像 素或更大的树块的视频块的大小(即,树块的大小)。

视频编码器20可对树块的每一未经分割CU执行编码操作。未经分割CU是视频块 未经分割为用于其它CU的视频块的CU。作为对未经分割CU执行编码操作的部分,视 频编码器20可产生用于CU的一个或一个以上预测单元(PU)。UC的PU中的每一者可 与CU的视频块内的一不同视频块相关联。视频编码器20可产生CU的每一PU的预测 视频块。PU的预测视频块可为样本块。在本发明中,术语“样本”可指代像素的亮度(明 度)或色彩(色度)。视频编码器20可使用帧内预测或帧间预测来产生PU的预测视频块。

当视频编码器20使用帧内预测来产生PU的预测视频块时,视频编码器20可基于 与PU相关联的图片的样本来产生PU的预测视频块。如果视频编码器20使用帧内预测 来产生CU的PU的预测视频块,那么CU是经帧内预测CU。

当视频编码器20使用帧间预测来产生PU的预测视频块时,视频编码器20可基于 除了与PU相关联的图片之外的图片的值来产生PU的预测视频块。换句话说,视频编 码器20可基于一个或一个以上参考图片中的样本来产生PU的预测视频块。另外,当视 频编码器20使用帧间预测来产生PU的预测视频块时,视频编码器20可产生PU的运 动信息。PU的运动信息可指示参考图片的对应于PU的视频块的一部分。换句话说,PU 的运动信息可指示PU的“参考样本”。视频编码器20可基于参考图片的由PU的运动 信息指示的部分来产生PU的预测视频块。如果视频编码器20使用帧间预测来产生CU 的PU的预测视频块,那么CU是经帧间预测CU。

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

此外,作为对未经分割CU执行编码操作的部分,视频编码器20可对CU的残余数 据执行递归四叉树分割以将CU的残余数据分割为与CU的变换单元(TU)相关联的一个 或一个以上残余数据块(即,残余视频块)。CU的每一TU可与一不同残余视频块相关联。 视频译码器20可对CU的每一TU执行变换操作。

当视频编码器20对TU执行变换操作时,视频编码器20可将一个或一个以上变换 应用于与TU相关联的残余视频块以产生与TU相关联的一个或一个以上变换系数块 (即,变换系数块)。概念上,变换系数块可为变换系数的二维(2D)矩阵。

在产生变换系数块之后,视频编码器20可对变换系数块执行量化操作。量化大体 上指代其中变换系数经量化以可能地减少用以表示所述变换系数的数据量从而提供进 一步压缩的过程。量化可减少与变换系数中的一些或全部相关联的位深度。举例来说, 在量化期间可将n位变换系数下舍入到m位变换系数,其中n大于m。

视频编码器20可使每一CU或若干CU与量化参数(QP)值相关联。与CU相关联的 QP值可决定视频编码器20如何量化与所述CU或若干CU相关联的变换系数块。视频 编码器20可通过调整与CU相关联的QP值来调整应用于与CU相关联的变换系数块的 量化程度。

在视频编码器20量化变换系数块之后,视频编码器20可扫描经量化变换系数以产 生变换系数层级的一维向量。视频编码器20可对所述一维向量进行熵编码。视频编码 器20还可对与视频数据相关联的其它语法元素进行熵编码。

由视频编码器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的视频块。

如先前简要描述,例如视频编码器20或视频解码器30等视频译码器可使用帧内预 测来产生PU的预测视频块。为便于阐释,本发明可将使用帧内预测产生的预测视频块 称为经帧内预测视频块。当视频译码器产生PU的经帧内预测视频块时,视频译码器可 将各种边界像素的值指派于经帧内预测视频块中的像素。

图2是图解说明实例性视频块50和与视频块50相关联的边界像素集合的概念图。 视频块50可与视频译码器当前正在译码的CU的PU相关联。在图2的实例中,视频块 50由标为a-p的16个像素组成。在图2的实例中,边界像素标为A-R。其它视频块可 大于或小于视频块50。大体上,视频块可与视频块上方的2*w+1边界像素和视频块左 边的2*h+1边界像素相关联,其中w是视频块的宽度且h是视频块的高度。

视频块(例如,视频块50)上方的边界像素可形成顶部预测符。换句话说,顶部预测 符可为对应于位于视频块上方的一行样本的参考样本阵列。如果视频块的左上方像素具 有坐标(x,y)且视频块的大小为NxN,那么具有坐标(x+i,y-1)的样本形成顶部预测符,其 中i的范围从-1变动到2N。视频块的左边的边界像素形成左预测符。换句话说,左预测 符可为对应于位于视频块左边的一列样本的参考样本阵列。如果视频块的左上方像素具 有坐标(x,y)且视频块的大小为NxN,那么具有坐标(x-1,y+j)的样本形成左预测符,其中 j的范围从-1变动到2N。

图3A是图解说明HEVC中的实例性帧内预测模式的概念图。在图3A的实例中, 帧内预测模式1、2和4到33对应于视频译码器可延伸边界像素以产生经帧内预测视频 块的不同方向。举例来说,当视频译码器使用帧内预测模式1时,视频译码器可通过向 下垂直地延伸边界像素的值来产生经帧内预测视频块。在此实例中,视频译码器可通过 如下方式使用帧内预测模式1来产生视频块50(图2):将边界像素A的值指派于像素a、 e、i和m,将边界像素B的值指派于像素b、f、j和n,将边界像素C的值指派于像素 c、g、k和o,且将边界像素D的值指派于像素d、h、1和p。

模式0可指代平面模式。视频译码器可使用以下公式来使用平面模式产生经帧内预 测视频块:

predSamples[x,y]=(

(nS-1-x)*p[-1,y]+(x+1)*p[nS,-1]+

(nS-1-y)*p[x,-1]+(y+1)*p[-1,nS]+nS)>>(k+1)

其中x,y=0..nS-1,k=Log2(nS)

在以上公式中,predSamples[x,y]是经帧内预测样本阵列,nS指示预测视频块的大 小,且p[x,y]是相邻样本阵列。

模式3可指代DC模式。为了使用DC模式产生经帧内预测视频块,视频译码器可 首先使用以下公式计算值DCVal:

DCVal=(Σx'=0nS-1p[x',-1]+Σy'=0nS-1p[-1,y']+nS)>>(k+1),其中x,y=0..nS-1

如果当前块的色度指数(cIdx)等于0,那么以下情况适用。

predSamples[0,0]=(1*p[-1,0]+2*DCVal+1*p[0,-1]+2>>2

predSamples[x,0]=(1*p[x,-1]+3*DCVal+2)>>2,其中x=1..nS-1

predSamples[0,y]=(1*p[-1,y]+3*DCVal+2)>>2,其中y=1..nS-1

predSamples[x,y]=DCVal,其中x,y=1..nS-1

否则,预测样本predSamples[x,y]经推导为

predSamples[x,y]-DCVal,其中x,y=0..nS-1

在以上公式中,predSamples[x,y]是经帧内预测样本阵列,nS指示预测视频块的大 小,且p[x,y]是相邻样本阵列。

在另一实例中,当视频译码器使用帧内预测模式10时,视频译码器可通过从左下 方到右上方对角地延伸边界像素的值来产生经帧内预测视频块。在图2的实例中,视频 译码器可通过如下方式使用帧内预测模式10来产生视频块50:将边界像素J的值指派 于像素a,将边界像素K的值指派于像素e和b,将边界像素L的值指派于像素i、f和 c,将边界像素M的值指派于像素m、j、g和d,将边界像素N的值指派于像素n、k 和h,将边界像素O的值指派于像素o和1,且将边界像素P的值指派于像素p。

在其它实例中,视频译码器可使用不同数字来指示帧内预测模式。举例来说,图3B 是指示数字向不同帧内预测模式的另一指派的概念图。

图3C是图解说明H.264/AVC中的实例性帧内预测模式的概念图。在H.264/AVC中 可存在较少可用的帧内预测模式。

在一些实例中,与经帧内预测视频块相关联的边界像素中的一者或一者以上不可 用。与经帧内预测视频块相关联的边界像素集合可包含视频译码器可用来产生经帧内预 测视频块的边界像素。当边界像素不可用时,视频译码器可不能存取边界像素的值。因 此,视频译码器可不能使用边界像素的值来产生经帧内预测视频块。

边界像素可能出于多种原因而不可用。举例来说,如果边界像素在当前图片(即,视 频译码器当前正在译码的图片)的边界之外,那么边界像素可为不可用的。在另一实例中, 如果边界像素在当前切片或瓦片(即,视频译码器当前正在译码的切片或瓦片)的边界之 外且不允许交叉切片/瓦片预测,那么边界像素可为不可用的。在另一实例中,如果边界 像素与经帧间预测CU相关联且针对当前图片启用受限帧内预测,那么边界像素可为不 可用的。

因为一个或一个以上边界像素可为不可用的,所以视频译码器可执行对不可用的边 界像素指派值的填补操作。在视频译码器执行填补操作之后,视频译码器可使用可用边 界像素的可用值以及不可用边界像素的经指派值来产生经帧内预测视频块。

不同的视频译码器可以各种方式对不可用的边界像素指派值。举例来说,视频译码 器可执行从左下方边界像素(例如,图2中的边界像素P)到隅角像素(例如,图2中的边 界像素R)到右上方边界像素(例如,图2中的边界像素H)扫描经过边界像素的填补操作。 在此实例中,当视频译码器到达不可用的边界像素时,视频译码器可向前扫描直到视频 译码器到达下一可用边界像素为止。在识别出可用边界像素后,填补操作可基于下一可 用像素和先前可用边界像素的值来对不可用的边界像素指派值。

在上文描述的实例性填补操作中,如果不存在先前可用的边界像素,那么视频译码 器可继续扫描以找到第一可用边界像素且随后将第一可用边界像素的值指派于在第一 可用边界像素之前的每一不可用边界像素。换句话说,Ppad=Pnext,其中Ppad是指派于第 一可用边界像素之前的每一不可用边界像素的值,且Pnext是下一可用边界像素的值。如 果不存在下一可用边界像素,那么视频译码器可从最后可用边界像素的值外推不可用边 界像素的值。换句话说,Ppad=Ppre,其中Ppad是指派于最后可用边界像素之后的每一不 可用边界像素的值,且Ppre是最后可用边界像素的值。如果不存在边界像素Ppre和Pnext可用,那么视频译码器可对边界像素指派默认值。

以先前段落中描述的方式对不可用边界像素指派值可具有若干缺点。举例来说,以 此方式对每一不可用边界像素指派值可能需要视频译码器执行若干存储器读取操作以 向前扫描来找到下一可用边界像素。因此,上文描述的填补操作可能需要跳跃型存储器 存取。举例来说,一旦视频译码器定位到下一可用边界像素,视频译码器便可对不可用 边界像素指派值Ppad。随后,视频译码器可从当前边界像素直到下一可用边界像素将值 Ppad指派于每一边界像素,这可能需要再次从当前边界像素开始的存储器存取。此来回 型存储器存取模式可能不是合意的。存储器存取操作可为耗时且功率密集的,尤其是当 鉴于数据位置以随机方式存取存储器时。

根据本发明的技术,视频译码器可执行根据在左下方边界像素(例如,图2中的边界 像素P)开始且循序地前进通过边界像素到达右上方边界像素(例如,图2中的边界像素 H)的次序处理边界像素集合的填补操作。当填补操作处理不可用边界像素时,填补操作 基于由填补操作先前处理的边界像素的值来对不可用边界像素指派值。以此方式,视频 译码器不需要继续扫描来找到下一可用边界像素。同时,此填补操作可对视频数据的译 码效率具有极少影响。因为视频译码器可使用较规则且一致的存储器存取模式,所以视 频译码器的复杂性可降低,且视频译码器的性能可相对于实施其它技术的视频译码器而 改善。

图4是图解说明经配置以实施本发明的技术的实例性视频编码器20的框图。图4 是为了阐释目的而提供,且不应视为限制如本发明中广义地例示和描述的技术。为了阐 释的目的,本发明在HEVC译码的上下文中描述视频编码器20。然而,本发明的技术 可适用于其它译码标准或方法。

在图4的实例中,视频编码器20包含多个功能组件。视频编码器20的功能组件包 含预测模块100、残余产生模块102、变换模块104、量化模块106、逆量化模块108、 逆变换模块110、重构模块112、滤波器模块113、经解码图片缓冲器114,以及熵编码 模块116。预测模块100包含运动估计模块122、运动补偿模块124和帧内预测模块126。 在其它实例中,视频编码器20可包含较多、较少或不同功能组件。此外,运动估计模 块122和运动补偿模块124可高度集成,但在图4的实例中为了阐释目的而分开地表示。

视频编码器20可接收视频数据。视频编码器20可从各种源接收视频数据。举例来 说,视频编码器20可从视频源18(图1)或另一源接收视频数据。视频数据可表示一系 列图片。为了对视频数据进行编码,视频编码器20可对图片中的每一者执行编码操作。 作为对图片执行编码操作的部分,视频编码器20可对图片的每一切片执行编码操作。 作为对切片执行编码操作的部分,视频编码器20可对切片中的树块执行编码操作。

作为对树块执行编码操作的部分,预测模块100可对树块的视频块执行四叉树分割 以将视频块划分为逐渐变小的视频块。较小视频块中的每一者可与一不同CU相关联。 举例来说,预测模块100可将树块的视频块分割为四个相等大小的子块,将子块中的一 者或一者以上分割为四个相等大小的子子块,等等。

与CU相关联的视频块的大小的范围可为从8x8样本直到具有最大64x64样本或更 大的树块的大小。在本发明中,“NxN”和“N乘N”可以互换地使用以在垂直和水平尺 寸方面指代视频块的样本尺寸,例如16x16样本或16乘16样本。大体上,16x16视频 块将在垂直方向上具有16个样本(y=16)且在水平方向上具有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大小以及2Nx2N、2NxN、Nx2N、NxN或类似的对称PU大小的帧间预测。视 频编码器20和视频解码器30还可支持2NxnU、2NxnD、nLx2N和nRx2N的PU大小的 不对称分割。在一些实例中,预测模块100可执行几何分割以沿着一边界在CU的PU 之间分割CU的视频块,所述边界不以直角会合CU的视频块的侧。

运动估计模块122和运动补偿模块124可对CU的每一PU执行帧间预测。帧间预 测可提供时间压缩。通过对PU执行帧间预测,运动估计模块122和运动补偿模块124 可基于参考图片而非与CU相关联的图片的经解码样本来产生PU的预测数据.PU的预 测数据可包含预测视频块和各种语法元素。

此外,当运动估计模块122执行关于PU的运动估计操作时,运动估计模块122可 产生PU的一个或一个以上运动向量。举例来说,切片可为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的运动信息输出到熵编码模块116和运动补偿模块 124。PU的运动信息可包含PU的参考索引和运动向量。运动补偿模块124可使用PU 的运动信息来识别和检索PU的参考样本。

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

此外,如果PU在B切片中,那么运动估计模块122可执行针对PU的单向预测或 双向预测。当运动估计模块122执行PU的单向预测时,运动估计模块122可搜索列表 0或列表1的参考图片是否有PU的参考样本。运动估计模块122可随后产生指示列表0 或列表1中含有参考样本的参考图片的参考索引,以及指示PU与参考样本之间的空间 位移的运动向量。运动估计模块122可将指示PU的运动信息的语法元素输出到熵编码 模块116和运动补偿模块124。PU的运动信息可包含PU的参考索引、预测方向指示符 和运动向量。预测方向指示符可指示参考索引是否指示列表0或列表1中的参考图片。 运动补偿模块124可使用PU的运动信息来识别和检索PU的参考样本。

当运动估计模块122执行PU的双向预测时,运动估计模块122可搜索列表0中的 参考图片是否有PU的参考样本,且还可搜索列表1中的参考图片是否有PU的另一参 考样本。运动估计模块122可随后产生指示列表0和列表1中含有参考样本的参考图片 的参考索引,以及指示参考样本与PU之间的空间位移的运动向量。运动估计模块122 可将指示PU的运动信息的语法元素输出到熵编码模块116和运动补偿模块124。PU的 运动信息可包含PU的参考索引和运动向量。运动补偿模块124可使用运动信息来识别 和检索PU的参考样本。

在一些实例中,运动估计模块122不将PU的运动信息的完整集合输出到熵编码模 块116。而且,运动估计模块122可参考另一PU的运动信息来用信号发送一PU的运动 信息。举例来说,运动估计模块122可确定PU的运动信息充分类似于相邻PU的运动 信息。在此实例中,运动估计模块122可在与PU相关联的CU的四叉树节点中指示一 个值,所述值向视频解码器30指示PU具有与相邻PU相同的运动信息。在另一实例中, 运动估计模块122可在与关联于PU的CU相关联的四叉树节点中识别相邻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的上方、右上方、左上方、左边或左下方。帧 内预测模块126可使用各种数目的帧内预测模式,例如35个方向性帧内预测模式。帧 内预测模块126可执行各种帧内预测操作。举例来说,帧内预测模块126可执行图6的 实例性帧内预测操作。

预测模块100可从由运动补偿模块124针对PU产生的预测数据或由帧内预测模块 126针对PU产生的预测数据当中选择PU的预测数据。在一些实例中,预测模块100 基于预测数据集合的速率/失真度量来选择PU的预测数据。

如果预测模块100选择由帧内预测模块126产生的预测数据,那么预测模块100可 用信号发送曾用以产生PU的预测数据的帧内预测模式,即选定的帧内预测模式。预测 模块100可以各种方式用信号发送选定的帧内预测模式。举例来说,可能选定的帧内预 测模式与相邻PU的帧内预测模式相同。换句话说,相邻PU的帧内预测模式可为当前 PU的最可能模式。因此,预测模块100可产生语法元素以指示选定的帧内预测模式与 相邻PU的帧内预测模式相同。

在预测模块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可通过将一个或一个以上变换应用于与TU相关联的残余视频块来产 生CU的每一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相关联。视频编码器20可在 给定QP值与具有最低位速率和失真度量的树块的经译码表示中的CU相关联时用信号 发送给定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的上下文中,术语“二进位”用以指代语法元素的经二进制化版本的位。

如果熵编码模块116正在执行CAVLC操作,那么上下文模型可将系数映射到对应 码字。CAVLC中的码字可经构造以使得相对较短的码对应于较可能的符号,而相对长 的码对应于较不可能的符号。适当上下文模型的选择可影响熵编码操作的译码效率。

在一些实例中,视频编码器20可将切片的CU划分为多个瓦片。视频编码器20可 通过界定图片的两个或两个以上水平边界和所述图片的两个或两个以上垂直边界来将 CU划分为瓦片。水平边界可包含图片的顶部和底部边缘。垂直边界可包含图片的左侧 和右侧。当视频编码器不使用瓦片时,视频编码器20可以光栅扫描次序对帧的所有树 块进行编码。然而,当视频编码器20使用瓦片时,视频编码器可以光栅扫描次序对瓦 片进行编码。当视频编码器20对瓦片进行编码时,视频编码器20可以光栅扫描次序对 瓦片内的树块(即,LCU)进行编码。因此,视频编码器20可使用瓦片来改变图片的树块 的编码次序。

此外,在一些实例中,当视频编码器20正在对给定CU进行编码时,视频编码器 20可使用与空间相邻CU相关联的信息来对给定CU执行帧内预测,只要给定CU和空 间相邻CU属于同一瓦片即可。空间相邻CU可为在与给定CU相同的图片中的CU。(当 视频编码器20对给定CU执行帧间预测时,视频编码器20也可使用来自时间相邻CU 的运动和像素信息,无论时间相邻CU的瓦片如何。)类似地,在一些实例中,当视频编 码器20正在对给定CU进行编码时,视频编码器20可使用与空间相邻CU相关联的信 息来选择用于对给定CU的语法元素进行熵编码的上下文,只要给定CU和空间相邻CU 在同一瓦片中即可。由于这些限制,视频编码器20可能够并行地对瓦片中的两者或两 者以上进行编码。

图5是图解说明可实施本发明的技术的实例性视频解码器30的框图。图5是为了 阐释目的而提供,且不限制如本发明中广义地例示和描述的技术。为了阐释的目的,本 发明在HEVC译码的上下文中描述视频解码器30。然而,本发明的技术可适用于其它 译码标准或方法。

在图5的实例中,视频解码器30包含多个功能组件。视频解码器30的功能组件包 含熵解码模块150、预测模块152、逆量化模块154、逆变换模块156、重构模块158、 滤波器模块159,以及经解码图片缓冲器160。预测模块152包含运动补偿模块162和 帧内预测模块164。在一些实例中,视频解码器30可执行与关于图4的视频编码器20 描述的编码遍次大体上互逆的解码遍次。在其它实例中,视频解码器30可包含较多、 较少或不同功能组件。

视频解码器30可接收包括经编码视频数据的位流。位流可包含多个语法元素。当 视频解码器30接收到位流时,熵解码模块150可对位流执行剖析操作。由于对位流执 行剖析操作,熵解码模块150可从位流提取语法元素。作为执行剖析操作的部分,熵解 码模块150可对位流中的经熵编码语法元素进行熵解码。预测模块152、逆量化模块154、 逆变换模块156、重构模块158以及滤波器模块159可执行重构操作,所述重构操作基 于从位流提取的语法元素来产生经解码视频数据。

如上文论述,位流可包括一系列NAL单元。位流的NAL单元可包含序列参数集 NAL单元、图片参数集NAL单元、SEI NAL单元等等。作为对位流执行剖析操作的部 分,熵解码模块150可执行剖析操作,所述剖析操作提取和熵解码来自序列参数集NAL 单元的序列参数集、来自图片参数集NAL单元的图片参数集、来自SEI NAL单元的SEI 数据等等。

另外,位流的NAL单元可包含经译码切片NAL单元。作为对位流执行剖析操作的 部分,熵解码模块150可执行提取和熵解码来自经译码切片NAL单元的经译码切片的 剖析操作。经译码切片中的每一者可包含切片标头和切片数据。切片标头可含有属于切 片的语法元素。切片标头中的语法元素可包含识别与含有切片的图片相关联的图片参数 集的语法元素。熵解码模块150可对经译码切片标头执行熵解码操作,例如CAVLC解 码操作,以恢复切片标头。

在从经译码切片NAL单元提取切片数据之后,熵解码模块150可从切片数据提取 经译码树块。熵解码模块150可随后从经译码树块提取经译码CU。熵解码模块150可 执行从经译码CU提取语法元素的剖析操作。所提取的语法元素可包含经熵编码变换系 数块。熵解码模块150可随后对语法元素执行熵解码操作。举例来说,熵解码模块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可应用级联逆变换。

如果CU的PU是使用帧间预测编码的,那么运动补偿模块162可执行运动补偿以 产生PU的预测视频块。运动补偿模块162可使用PU的运动信息来识别PU的参考样本。 PU的参考样本可在与PU不同的时间图片中。PU的运动信息可包含运动向量、参考图 片索引和预测方向。运动补偿模块162可使用PU的参考样本来产生PU的预测视频块。 在一些实例中,运动补偿模块162可基于相邻于PU的PU的运动信息来预测PU的运动 信息。在本发明中,如果视频编码器20使用帧间预测来产生PU的预测视频块,那么 PU是经帧间预测PU。

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

如果PU是使用帧内预测编码的,那么帧内预测模块164可执行帧内预测以产生PU 的预测视频块。举例来说,帧内预测模块164可基于位流中的语法元素来确定PU的帧 内预测模式。位流可包含帧内预测模块164可用来预测PU的帧内预测模式的语法元素。 举例来说,帧内预测模块164可执行图6的实例性帧内预测操作。

在一些实例中,语法元素可指示帧内预测模块164将使用另一PU的帧内预测模式 来预测当前PU的帧内预测模式。举例来说,可能当前PU的帧内预测模式与相邻PU的 帧内预测模式相同。换句话说,相邻PU的帧内预测模式可为当前PU的最可能模式。 因此,在此实例中,位流可包含小语法元素,其指示PU的帧内预测模式与相邻PU的 帧内预测模式相同。帧内预测模块164可随后使用帧内预测模式来基于空间相邻PU的 视频块而产生PU的预测数据(例如,预测样本)。

重构模块158可在适用时使用与CU的TU相关联的残余视频块和CU的PU的预测 视频块(即,帧内预测数据或帧间预测数据)来重构CU的视频块。因此,视频解码器30 可基于位流中的语法元素来产生预测视频块和残余视频块,且可基于预测视频块和残余 视频块产生视频块。在重构模块158重构CU的视频块之后,滤波器模块159可执行滤 波器模块159可执行解块操作以减少与CU相关联的成块假象。

经解码图片缓冲器160可存储视频数据的图片的经解码样本。因此,在滤波器模块 159执行解块操作之后,视频解码器30可将CU的视频块存储在经解码图片缓冲器160 中。经解码图片缓冲器160可提供参考图片以用于后续运动补偿、帧内预测以及在例如 图1的显示装置32等显示装置上的呈现。举例来说,视频解码器30可基于经解码图片 缓冲器160中的视频块来对其它CU的PU执行帧内预测或帧间预测操作。

图6是图解说明实例性帧内预测操作200的流程图。例如视频编码器20或视频解 码器30等视频译码器可执行帧内预测操作200。在其它实例中,视频译码器可使用除了 帧内预测操作200之外的帧内预测操作。举例来说,在其它实例中,视频译码器可执行 帧内预测操作,其中视频译码器执行与帧内预测操作200相比更多、更少或不同的步骤。

在视频译码器开始帧内预测操作200之后,视频译码器可执行PU的填补操作(202)。 当视频译码器执行填补操作时,视频译码器可对与PU相关联的不可用边界像素指派值。 视频译码器可执行各种填补操作。举例来说,视频译码器可执行图7的实例性填补操作、 图8的实例性填补操作、图10的实例性填补操作,或另一填补操作。

当视频译码器执行填补操作之后,视频译码器可基于边界像素来产生PU的经帧内 预测视频块(204)。视频译码器可使用边界像素中的一些或全部来产生经帧内预测视频 块。

图7是图解说明实例性填补操作250的流程图。例如视频编码器20或视频解码器 30等视频译码器可执行填补操作250。在其它实例中,视频译码器可使用除了填补操作 250之外的填补操作。举例来说,在其它实例中,视频译码器可执行填补操作,其中视 频译码器执行与填补操作250相比更多、更少或不同的步骤。

在视频译码器开始填补操作250之后,视频译码器可设定像素指示符以指示左下方 边界像素(252)。举例来说,在图2的实例中,视频译码器可设定像素指示符以指示边界 像素P。为便于阐释,本发明可将由像素指示符指示的边界像素称为当前边界像素。

接着,视频译码器可确定当前边界像素是否可用(254)。视频译码器可以各种方式确 定当前边界像素是否可用。举例来说,视频译码器可执行图13的实例性操作以确定当 前边界像素是否可用。

响应于确定当前边界像素不可用(254的“否”),那么视频译码器可对当前边界像 素指派默认值(256)。因为当前边界像素是左下方边界像素,所以视频译码器可确定左下 方边界像素是否可用,且响应于确定左下方边界像素不可用而对左下方边界像素指派默 认值。在另一实例中,视频译码器可响应于确定左下方边界像素不可用而对左下方边界 像素指派下一可用边界像素的值。

在对当前边界像素指派值之后或响应于确定当前边界像素不可用(254的“是”), 视频译码器可更新像素指示符以指示下一边界像素(258)。如果当前边界像素在左下方边 界像素与隅角边界像素(例如,图2中的边界像素R)之间,那么下一边界像素在当前边 界像素正上方。举例来说,在图2的实例中,如果当前边界像素是边界像素P,那么下 一边界像素是边界像素O。如果当前边界像素是边界像素O,那么下一边界像素是边界 像素N,依此类推。如果当前像素是隅角边界像素或在隅角边界像素与右上方边界像素 (例如,图2中的边界像素H)之间,那么下一边界像素紧邻于当前边界像素的右边。举 例来说,在图2的实例中,如果当前边界像素是边界像素R,那么下一边界像素是边界 像素A。如果当前边界像素是边界像素A,那么下一边界像素是边界像素B,依此类推。 通过更新像素指示符,下一边界像素变为当前边界像素。

在更新像素指示符之后,视频译码器可确定当前边界像素是否可用(260)。响应于确 定当前边界像素不可用(260的“否”),视频译码器可对当前边界像素指派先前边界像 素的值(262)。换句话说,视频译码器可对当前边界像素指派根据次序紧邻于当前边界像 素之前的边界像素的值。举例来说,在图2的实例中,如果当前边界像素是边界像素M 且边界像素M不可用,那么视频译码器可对边界像素M指派边界像素N的值。如果当 前边界像素是边界像素L且边界像素L不可用,那么视频译码器可对边界像素L指派边 界像素M的值,依此类推。当视频译码器对第二边界像素指派第一边界像素的值时,视 频译码器可不改变第二边界像素的实际值,而是可使用第一边界像素的值作为第二边界 像素的值以用于产生经帧内预测视频块的目的。

在执行步骤262之后或响应于确定当前边界像素可用(260的“是”),视频译码器 可确定当前边界像素是否为右上方边界像素(264)。举例来说,在图2的实例中,视频译 码器可确定当前边界像素是否为边界像素H。视频译码器可响应于确定当前边界像素是 右上方边界像素(264的“是”)而结束填补操作250。另一方面,响应于确定当前边界像 素不是右上方边界像素(264的“否”),视频译码器可再次更新像素指示符(258)。视频 译码器可随后关于新的当前边界像素重复步骤260到264。

以此方式,视频译码器可执行填补操作,其根据一次序来处理边界像素集合,所述 次序在左下方边界像素处开始且循序地前进通过边界像素到达右上方边界像素。当填补 操作处理不可用的边界像素时,填补操作基于由填补操作先前处理的像素的值来对不可 用的边界像素指派值。

在类似于填补操作250的实例性填补操作中,(x,y)指示视频块的坐标,且(x-1,y-1) 指示隅角边界像素的坐标。如果(x-1,y-1)不可用,那么视频译码器可从左到右检查顶部 预测符,直到视频译码器到达可用边界像素为止。如果可用边界像素具有坐标(x+d,y-1), 那么视频译码器可对从(x-1,y-1)到(x+d-1,y-1)的所有边界像素指派位于(x+d,y-1)处的 边界像素的值。否则,如果在(x-1,y-1)处的边界像素可用,那么视频译码器可将变量d 设定为-1且执行以下伪码:

在以上伪码中,N可指示视频块的宽度。另外,视频译码器可确定在(x-1,y)处的边 界像素是否可用。如果在(x-1,y)处的边界像素不可用,那么视频译码器可从上到下检查 左预测符,直到视频译码器到达可用边界像素为止。如果可用边界像素具有坐标(x-1, y+d),那么视频译码器可对从(x-1,y)到(x-1,y+d-1)的所有边界像素指派位于(x-1,y+d)处 的边界像素的值。否则,如果在(x-1,y)处的边界像素可用,那么视频译码器可将变量d 设定为0且执行以下伪码:

在图7的实例中,对于x=-1,y=nS*2-2...-1,如果p[x,y]是不可用边界像素,那 么视频译码器可用p[x,y+1]的值代替p[x,y]的值。对于x=0..nS*2-1,y-1,如果p[x,y] 是不可用边界像素,那么用p[x-1,y]的值代替p[x,y]的值。nS等于经帧内预测视频块的 宽度或高度,p是二维样本阵列,且p[0,0]是经帧内预测视频块的左上方明度样本。

图8是图解说明图7的实例性填补操作前进通过边界像素的次序的概念图。如图8 的实例中图解说明,填补操作在左下方边界像素处开始,向上前进到隅角边界像素,且 随后向右前进到右上方边界像素。

图9是图解说明实例性填补操作300的流程图。例如视频编码器20或视频解码器 30的视频译码器可执行填补操作300。在其它实例中,视频译码器可使用除了填补操作 300之外的填补操作。举例来说,在其它实例中,视频译码器可执行填补操作,其中视 频译码器执行与填补操作300相比更多、更少或不同的步骤。

在视频译码器开始填补操作300之后,视频译码器可设定第一像素指示符和第二像 素指示符以指示划分点(302)。划分点可将边界像素划分为两个片段。片段中的一者可包 含在划分点上方和右边的边界像素。片段中的另一者可包含在划分点下方和左边的边界 像素。

划分点可为边界像素中的各种边界像素。举例来说,视频译码器可将第一和第二像 素指示符设定为隅角边界像素(例如,图2中的边界像素R)。在另一实例中,视频译码 器可设定第一像素指示符和第二像素指示符以指示另一边界像素(例如,图2中的边界像 素L)。

在设定第一和第二像素指示符以指示划分点之后,视频译码器可确定划分点是否可 用(304)。视频译码器可以各种方式确定划分点是否可用。举例来说,视频译码器可执行 图13的实例性操作以确定划分点是否可用。

响应于确定划分点不可用(304的“否”),视频译码器可导出划分点的值(306)。视 频译码器可以各种方式导出划分点的值。举例来说,视频译码器可确定邻近于划分点的 边界像素中的任一者是否可用。在此实例中,如果邻近于划分点的边界像素中的一者可 用,那么视频译码器可通过对划分点指派邻近边界像素的值来导出划分点的值。此外, 在此实例中,如果邻近边界像素中的任一者均不可用,那么视频译码器可对划分点指派 默认值。举例来说,如果划分点是隅角划分点,那么视频译码器可使用以下伪码来导出 划分点的值:

如果PL1可用,那么Ppad=PL1,

否则,如果PA1可用,那么Ppad=PA1

否则,Ppad=默认值。

在以上伪码中,PL1可指示隅角边界像素下方的边界像素的值,Ppad可指示将指派于 隅角边界像素的导出值,且PA1可指示隅角边界像素右边的边界像素的值。在隅角边界 像素以及隅角边界像素下方的边界像素和右边的边界像素两者都不可用的情况下,使用 隅角边界像素的默认值可对译码性能有极少影响,因为此情况几乎不会发生。

在导出划分点的值之后或在确定划分点可用之后(304的“是”),视频译码器可更 新第一像素指示符以指示由第一像素指示符指示的边界像素下方或左边的边界像素 (308)。为便于阐释,本发明可将由第一像素指示符指示的边界像素称为第一当前边界像 素。举例来说,在图2的实例中,如果第一当前边界像素是边界像素B,那么视频译码 器可更新第一像素指示符以指示边界像素A。如果第一当前边界像素是边界像素R,那 么视频译码器可更新第一像素指示符以指示边界像素I。如果第一当前边界像素是边界 像素I,那么视频译码器可更新第一像素指示符以指示边界像素J。

在更新第一像素指示符之后,视频译码器可确定第一当前边界像素是否可用(310)。 视频译码器可以各种方式确定第一当前边界像素是否可用。举例来说,视频译码器可执 行图13的实例性操作以确定第一当前边界像素是否可用。

响应于确定第一当前边界像素不可用(310的“否”),视频译码器可对第一当前边 界像素指派先前边界像素的值(312)。举例来说,在图2的实例中,如果第一当前边界像 素是边界像素I且边界像素I不可用,那么视频译码器可对边界像素I指派边界像素R 的值。如果第一当前边界像素是边界像素J且边界像素J不可用,那么视频译码器可对 边界像素J指派边界像素I的值,依此类推。

一旦视频译码器已执行步骤310或在确定第一当前边界像素可用之后(310的“是”), 视频译码器可确定第一当前边界像素是否为左下方边界像素(314)。响应于确定第一当前 边界像素是左下方边界像素(314的“是”),视频译码器可关于在划分点边界像素的左 边或下方发生的边界像素结束填补操作300。然而,响应于确定第一当前边界像素不是 左下方边界像素(314的“否”),视频译码器可再次更新第一像素指示符(308)且关于另 一边界像素执行步骤310到314。以此方式,填补操作300可对划分点边界像素左边或 下方的每一不可用边界像素指派值。

另外,在步骤306中导出划分点边界像素的值之后或响应于确定划分点可用(304的 “是”),视频译码器可更新第二像素指示符以指示由第二像素指示符指示的边界像素上 方或右边的边界像素(316)。为便于阐释,本发明可将由第二像素指示符指示的边界像素 称为第二当前边界像素。

在更新第二像素指示符之后,视频译码器可确定第二当前边界像素是否可用(318)。 视频译码器可以各种方式确定当前边界像素是否可用。举例来说,视频译码器可执行图 13的实例性操作以确定第二当前边界像素是否可用。

响应于确定第二当前边界像素不可用(318的“否”),视频译码器可对第二当前边 界像素指派先前边界像素的值(320)。举例来说,在图2的实例中,如果第二当前边界像 素是边界像素D且边界像素D不可用,那么视频译码器可对边界像素D指派边界像素 C的值。

在执行步骤320之后或在视频译码器已确定第二当前边界像素可用之后(318的 “是”),视频译码器可确定第二当前边界像素是否为右上方边界像素(322)。响应于确定 第二当前边界像素是右上方边界像素,视频译码器可关于在划分点边界像素的右边或上 方的边界像素结束填补操作300(322的“是”)。然而,响应于确定第二当前边界像素 不是右上方边界像素(322的“否”),视频译码器可更新第二像素指示符(316)且关于另 一边界像素执行步骤318到322。以此方式,视频译码器可处理划分点上方或右边的每 一边界像素。

在图9的实例中,视频译码器可并行地执行步骤308到314和步骤316到322。在 其它实例中,视频译码器可循序地执行步骤308到314和步骤316到322。

图10是图解说明图9的填补操作前进通过边界像素的实例性次序的概念图。如图 10的实例中图解说明,隅角边界像素是划分点边界像素。视频译码器可同时处理隅角边 界像素下方的边界像素(例如,在步骤308到314中)和隅角边界像素右边的边界像素(例 如,步骤316到322)。在图10的实例中,隅角边界像素是带阴影的。如果隅角边界像 素不可用,那么视频译码器可从相邻边界像素340中的任一者或两者推导隅角边界像素 的值。

在另一实例中,视频译码器可从左到右检查顶部预测符,直到视频译码器识别出可 用边界像素为止。视频译码器可随后将隅角像素以及隅角像素与可用边界像素之间的所 有边界像素设定为可用边界像素的值。在此实例中,如果隅角像素下方的边界像素不可 用,那么视频译码器可从上到下沿着左预测符检查,直到视频译码器识别出可用边界像 素为止。视频译码器可随后将隅角像素下方的每一边界像素设定为可用边界像素的值。

图11是图解说明实例性填补操作350的流程图。例如视频编码器20或视频解码器 30等视频译码器可执行填补操作350。在其它实例中,视频译码器可使用除了填补操作 350之外的填补操作。举例来说,在其它实例中,视频译码器可执行填补操作,其中视 频译码器执行与填补操作350相比更多、更少或不同的步骤。

在填补操作350中,边界像素包含多个候选划分点。所述多个候选划分点可包含边 界像素中的各种边界像素。举例来说,所述多个候选划分点可包含隅角边界像素、在隅 角边界像素与左下方边界像素之间中点的边界像素,以及在隅角边界像素与右上方边界 像素之间中点的边界像素。在另一实例中,所述多个候选划分点可包含左下方边界像素 和右上方边界像素。在另一实例中,所述多个候选划分点可包含紧邻于隅角边界像素右 边的边界像素和在隅角边界像素正下方的边界像素。

在另一实例中,所述多个候选划分点可包含两个边界像素PLX与PAY之间的所有边界 像素。在此实例中,PLX可为从隅角边界像素到左下方边界像素的任一边界像素,且PAY可为从隅角边界像素到右上方边界像素的任一边界像素。在此实例中,视频译码器可从 PLX到PAY或从PAY到PLX循序地搜索通过候选划分点看是否有可用候选划分点。以此方 式搜索可用候选划分点可将搜索复杂性减少到一维搜索。举例来说,在此实例中,如果 划分点是左下方边界像素,那么视频译码器将执行根据一次序处理边界像素集合的填补 操作,所述次序在左下方边界像素处开始且循序地前进通过边界像素到右上方边界像 素,其中当所述填补操作处理不可用边界像素时,填补操作基于由所述填补操作先前处 理的边界像素的值来对所述不可用边界像素指派值。

在另一实例中,所述多个候选划分点可包含所有边界像素。在此实例中,视频译码 器可从左下方边界像素到右上方边界像素循序地在候选划分点中搜索可用候选划分点, 或反之亦然。以此方式搜索可用候选划分点可将搜索复杂性减少到单方向性搜索。

在视频译码器开始填补操作350之后,视频译码器可设定划分点指示符以指示候选 划分点中的第一者(352)。为便于阐释,本发明可将由划分点指示符指示的候选划分点称 为当前划分点。举例来说,如果所述多个候选划分点包含隅角边界像素,那么视频译码 器可将划分点指示符设定于隅角边界像素。

在设定划分点指示符以指示候选划分点中的一者之后,视频译码器可确定当前划分 点是否可用(354)。视频译码器可以各种方式确定当前划分点是否可用。举例来说,视频 译码器可执行图13的实例性操作以确定当前划分点是否可用。

如果当前划分点不可用(354的“否”),那么视频译码器可确定当前划分点是否为 待检查的候选划分点中的最后一者(356)。响应于确定当前划分点是候选划分点中的最后 一者,视频译码器可对当前划分点指派默认值(358)。在其它实例中,视频译码器可基于 当前划分点的相邻像素的值来指派值,而非使用默认值。

另一方面,响应于确定当前划分点不是候选划分点中的最后一者,视频译码器可更 新划分点指示符,使得划分点指示符指示候选划分点中的下一者(360)。举例来说,在图 2的实例中,所述多个候选划分点可包含边界像素L、边界像素R和边界像素D。如果 当前划分点是边界像素L且边界像素L不可用,那么视频译码器可更新划分点指示符, 使得划分点指示符指示边界像素R。视频译码器可以各种方式搜索可用候选划分点。举 例来说,视频译码器可以最接近左下方边界像素的候选划分点开始,且随后朝向最接近 右上方边界像素的候选划分点搜索通过候选划分点。

在更新划分点指示符之后,视频译码器可再次确定当前划分点是否可用(354)。以此 方式,视频译码器可处理候选划分点直到视频译码器确定候选划分点中的一者可用为止 或者直到视频译码器确定候选划分点中的任一者均不可用为止,或反之亦然。

在执行步骤358之后或在确定当前划分点可用之后(354的“是”),视频译码器可 设定第一像素指示符和第二像素指示符以指示当前划分点(362)。举例来说,如果当前划 分点是隅角边界像素,那么视频译码器可设定第一和第二像素指示符以指示隅角边界像 素(例如,图2中的边界像素R)。

在设定第一和第二像素指示符以指示当前划分点之后,视频译码器可更新第一像素 指示符以指示在由第一像素指示符指示的边界像素下方或左边的边界像素(364)。为便于 阐释,本发明可将由第一像素指示符指示的边界像素称为第一当前边界像素。举例来说, 在图2的实例中,如果第一当前边界像素是边界像素B,那么视频译码器可更新第一像 素指示符以指示边界像素A。如果第一当前边界像素是边界像素R,那么视频译码器可 更新第一像素指示符以指示边界像素I。如果第一当前边界像素是边界像素I,那么视频 译码器可更新第一像素指示符以指示边界像素J。

在更新第一像素指示符之后,视频译码器可确定第一当前边界像素是否可用(366)。 视频译码器可以各种方式确定第一当前边界像素是否可用。举例来说,视频译码器可执 行图13的实例性操作以确定第一当前边界像素是否可用。

响应于确定第一当前边界像素不可用(366的“否”),视频译码器可对第一当前边 界像素指派先前边界像素的值(368)。举例来说,在图2的实例中,如果第一当前边界像 素是边界像素I且边界像素I不可用,那么视频译码器可对边界像素I指派边界像素R 的值。如果第一当前边界像素是边界像素J且边界像素J不可用,那么视频译码器可对 边界像素J指派边界像素I的值,依此类推。

一旦视频译码器已对第一当前边界像素指派先前边界像素的值或在确定第一当前 边界像素可用之后(366的“是”),视频译码器可确定第一当前边界像素是否为左下方 边界像素(370)。响应于确定第一当前边界像素是左下方边界像素(370的“是”),视频 译码器可关于在当前划分点的左边或下方发生的边界像素结束填补操作300。然而,响 应于确定第一当前边界像素不是左下方边界像素(370的“否”),视频译码器可再次更 新第一像素指示符(364)且关于另一边界像素执行步骤366到370。以此方式,填补操作 350可对当前划分点左边或下方的每一不可用边界像素指派值。

另外,在步骤362中将第一和第二像素指示符设定于当前划分点之后,视频译码器 可更新第二像素指示符以指示在由第二像素指示符指示的边界像素上方或右边的边界 像素(372)。为便于阐释,本发明可将由第二像素指示符指示的边界像素称为第二当前边 界像素。

在更新第二像素指示符之后,视频译码器可确定第二当前边界像素是否可用(374)。 视频译码器可以各种方式确定第二当前边界像素是否可用。举例来说,视频译码器可执 行图13的实例性操作以确定第二当前边界像素是否可用。

响应于确定第二当前边界像素不可用(374的“否”),视频译码器可对第二当前边 界像素指派先前边界像素的值(376)。举例来说,在图2的实例中,如果第二当前边界像 素是边界像素D且边界像素D不可用,那么视频译码器可对边界像素D指派边界像素 C的值。

在对第二当前边界像素指派先前边界像素的值之后或在视频译码器已确定第二当 前边界像素可用之后(374的“是”),视频译码器可确定第二当前边界像素是否为右上 方边界像素(378)。响应于确定第二当前边界像素是右上方边界像素,视频译码器可关于 在当前划分点的右边或上方的边界像素结束填补操作300。然而,响应于确定第二当前 边界像素不是右上方边界像素(378的“否”),视频译码器可更新第二像素指示符(372) 且关于另一边界像素执行步骤374到378。以此方式,视频译码器可处理划分点边界像 素上方或右边的每一边界像素。

在图11的实例中,视频译码器可并行地执行步骤364到370和步骤372到378。在 其它实例中,视频译码器可循序地执行步骤364到370和步骤372到378。

图12是图11的填补操作前进通过边界像素的实例性次序的概念图。如图12的实 例中图解说明,带阴影的边界像素是候选划分点。在图12的实例中,边界像素400可 为选定的划分点,且视频译码器可同时处理选定的划分点下方的边界像素(例如,在图 11的步骤364到370中)和选定的划分点上方和右边的边界像素(例如,步骤372到378)。

图13是图解说明用以确定边界像素是否可用的实例性操作450的流程图。例如视 频编码器20或视频解码器30等视频译码器可执行操作450。在其它实例中,视频译码 器可使用除了操作450之外的操作来确定边界像素是否可用。举例来说,在其它实例中, 视频译码器可执行操作,其中视频译码器执行与操作450相比更多、更少或不同的步骤。

在视频译码器开始操作450之后,视频译码器可确定边界像素是否在当前图片的边 界外(452)。当前图片可为视频译码器当前正在译码的图片。举例来说,如果视频译码器 正在执行视频块邻近于当前图片的顶部或左边缘的PU的帧内预测操作,那么所述视频 块上方或左边的一个或一个以上像素可在当前图片的边界外。响应于确定边界像素在当 前图片的边界外(452的“是”),视频译码器可确定边界像素不可用(454)。

响应于确定边界像素不在当前图片的边界外(452的“否”),视频译码器可确定边 界像素是否在当前切片或瓦片的边界外且不允许交叉切片/交叉瓦片预测(456)。当前切 片或瓦片可为视频译码器当前正在译码的切片或瓦片。举例来说,如果视频译码器正在 执行视频块邻近于当前切片或瓦片的顶部或左边缘的PU的帧内预测操作,那么所述视 频块上方或左边的一个或一个以上像素可在当前切片或瓦片的边界外。如果允许交叉切 片预测,那么允许视频译码器使用第一切片中的像素值来产生第二切片中的CU的经帧 内预测视频块。响应于确定边界像素在当前切片或瓦片的边界外且不允许交叉切片/瓦片 预测(456的“是”),视频译码器可确定边界像素不可用(454)。

然而,响应于确定边界像素不在当前切片或瓦片外或允许交叉切片/交叉瓦片预测 (456的“否”),视频译码器可确定边界像素是否与经帧间预测CU相关联以及受限帧内 预测是否经启用(458)。换句话说,如果边界像素属于经帧间预测CU且受限帧内预测经 启用,那么边界像素可经标记为不是可用的或不可用。如果边界像素在与经帧间预测 CU相关联的视频块中,那么边界像素可与经帧间预测CU相关联。

在H.264/AVC中,经帧间预测切片中的宏块(MB)可经译码为帧间MB或帧内MB。 类似地,在HEVC中,P切片或B切片中的CU可为经帧间预测CU或经帧内预测CU。 帧内MB和经帧内预测CU是从相邻视频块预测的。另外,视频译码器可对受限帧内 MB进行译码。视频译码器可从同一切片中的相邻帧内MB产生受限帧内MB。根据本 发明的技术,视频译码器可从相邻经帧内预测CU的视频块而非相邻经帧间预测CU的 视频块来产生受限经帧内预测CU。constrained_intra_pred_flag可在图片参数集(PPS)中 用信号发送以指定图片群组是否正在仅以帧间和受限帧内模式进行译码。

帧内刷新可为一种防误码工具,其使得视频编码器能够插入帧内MB或经帧内预测 CU以便减少错误传播。在参考图片丢失的情况下,视频解码器可能不能对使用参考图 片的帧间MB或经帧间预测CU进行正确地解码。如果帧间MB或经帧间预测CU用以 预测帧内MB或经帧内预测CU,那么视频译码器可能不能对帧内MB或经帧内预测CU 进行解码。因此,错误可传播到帧内MB或经帧内预测CU。因为受限帧内MB和受限 经帧内预测CU不依赖于帧间MB或经帧间预测CU,所以参考图片的损失并不阻止视 频解码器对受限帧内MB或经帧内预测CU进行解码。因此,将帧内MB或经帧内预测 CU译码为受限帧内MB或受限经帧内预测CU可能较具有防误码性。

在可缩放视频译码(SVC)中,由于视频解码器的单循环解码设计,视频解码器可能 不会对多个相依性层(具有相同或不同分辨率)完全地解码。在此情况下,当使用经帧内 预测基本层(BL)模式时,如果对应基本层帧内MB经译码为受限帧内MB,那么视频解 码器可仅对增强层MB进行正确地解码。否则,视频解码器可能需要从经重构相邻帧间 MB预测基本层帧内MB,所述经重构相邻帧间MB在单循环解码的情况下对增强层进 行解码时可能不可用。

响应于确定边界像素与经帧间预测CU相关联且受限帧内预测经启用(458的“是”), 视频译码器可确定边界像素不可用(454)。另一方面,响应于确定边界像素不与经帧间预 测CU相关联或受限帧内预测未经启用(458的“否”),视频译码器可确定边界像素可用 (460)。

在上述实例中,视频译码器可对不可用的边界像素指派默认值或先前边界像素的 值。在其它实例中,视频译码器可内插不可用边界像素的值。举例来说,如果在一系列 一个或一个以上不可用边界像素的任一侧上存在一个或一个以上可用边界像素。在此实 例中,视频译码器可基于所述系列的不可用边界像素的任一侧上的可用边界像素的值来 内插不可用边界像素的值。不可用边界像素可经内插为Ui=Aa+i*(Ab-Aa)/(M+1),i 是从1到M。在此等式中,Aa和Ab是所述系列的不可用边界像素的任一侧上的可用边 界像素,M是所述系列的不可用边界像素中的不可用边界像素的数目,且Ui指示不可 用边界像素。在以上等式中,M可能不是2的幂,因此可能需要划分。

因为M可能不是2的幂且可能希望避免划分,所以可使用另一技术来内插所述系列 的不可用边界像素。根据此技术,使Q=Floor(log2(M)),P=(1<<Q)且R=M-P。视频译 码器可将右边的不可用边界像素中的每一者(Up+1到UM)设定为值Ab的值。对于从U1到 UP的任一边界像素,

Ui=(Aa*i+Ab*(P-i)+P>>1)>>Q,i是从1到P。

在一些实例中,在一系列一个或一个以上不可用边界像素的任一侧上不存在可用边 界。举例来说,连续不可用边界像素可发生直到预测符的结束为止。在此实例中,视频 编码器可将最后可用边界像素的值延伸到预测符的结束。在另一实例中,连续不可用边 界像素可发生于预测符的开始处。在此实例中,视频译码器可使用第一可用边界像素的 值作为在第一可用边界像素之前的不可用边界像素的值。因此,在此些实例中,视频译 码器可使用简单扩展来产生不可用参考样本的值。

在一个或一个以上实例中,所描述的功能可以硬件、软件、固件或其任一组合来实 施。如果以软件实施,那么功能可作为一个或一个以上指令或代码存储在计算机可读媒 体上或经由计算机可读媒体传输,且由基于硬件的处理单元执行。计算机可读媒体可包 含对应于例如数据存储媒体等有形媒体的计算机可读存储媒体,或包含促进计算机程序 例如根据通信协议从一处传送到另一处的任何媒体的通信媒体。以此方式,计算机可读 媒体通常可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)例如信号或载波等通信 媒体。数据存储媒体可为可由一个或一个以上计算机或者一个或一个以上处理器存取以 检索用于实施本发明中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机 程序产品可包含计算机可读媒体。

举例来说且并非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、 CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用 来以指令或数据结构的形式存储所要程序代码且可由计算机存取的任何其它媒体。而 且,恰当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、 双绞线、数字订户线(DSL)或例如红外线、无线电及微波等无线技术从网站、服务器或 其它远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电及 微波等无线技术包含于媒体的定义中。然而应了解,计算机可读存储媒体和数据存储媒 体不包含连接、载波、信号或其它瞬时媒体,而是针对非瞬时有形存储媒体。如本文中 所使用,磁盘及光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、 软磁盘及蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘使用激光以光学方式再 生数据。上文的组合也应包含在计算机可读媒体的范围内。

可由例如一个或一个以上数字信号处理器(DSP)、通用微处理器、专用集成电路 (ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一个或一个以上 处理器来执行指令。因此,如本文中所使用的术语“处理器”可指上述结构或适合于实 施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文描述的 功能性可提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或并入在组合式 编解码器中。并且,可将所述技术完全实施于一个或一个以上电路或逻辑元件中。

本发明的技术可在广泛多种装置或设备中实施,包含无线手持机、集成电路(IC)或 一组IC(例如,芯片组)。本发明中描述各种组件、模块或单元以强调经配置以执行所揭 示技术的装置的功能方面,但不一定需要通过不同硬件单元来实现。而是,如上所述, 各种单元可在编解码器硬件单元中组合或由互操作硬件单元(包含如上所述的一个或一 个以上处理器)的集合结合合适软件和/或固件来提供。

已描述了各种实例。这些和其它实例属于所附权利要求书的范围内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号