用于多层视频译码的POC值设计的制作方法

文档序号:17796401发布日期:2019-05-31 20:48阅读:236来源:国知局
用于多层视频译码的POC值设计的制作方法

技术领域

本发明涉及视频译码。



背景技术:

数字视频功能可以并入到广泛范围的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、平板计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话(所谓的“智能电话”)、视频电话会议装置、视频流式传输装置及其类似者。数字视频装置实施视频译码技术,例如描述于由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高级视频译码(AVC)界定的标准、ITU-T H.265高效视频译码(HEVC)标准及此类标准的扩展中的那些技术。视频装置可通过实施此类视频译码技术来更高效地发射、接收、编码、解码和/或存储数字视频信息。

视频译码技术包含空间(图片内)预测和/或时间(图片间)预测以减少或去除视频序列中固有的冗余。对于基于块的视频译码,视频切片(即,视频帧或视频帧的一部分)可分割成视频块,所述视频块还可被称作树块、译码单元(CU)和/或译码节点。使用相对于同一图片中的相邻块中的参考样本的空间预测对图片的经帧内译码(I)切片中的视频块进行编码。图片的经帧间译码(P或B)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测,或相对于其它参考图片中的参考样本的时间预测。图片可被称为帧,且参考图片可被称为参考帧。图片可以指经解码图片或经译码图片。

空间或时间预测产生待译码块的预测性块。残余数据表示待译码原始块与预测性块之间的像素差。根据指向形成预测性块的参考样本块的运动向量和指示经译码块与预测性块之间的差值的残余数据而对经帧间译码块进行编码。根据帧内译码模式和残余数据而对经帧内译码块进行编码。为了进一步压缩,可将残余数据从像素域变换到变换域,从而产生残余变换系数,可接着量化所述残余变换系数。可扫描初始地以二维阵列布置的经量化变换系数,以便产生变换系数的一维向量,且可应用熵译码以实现更进一步的压缩。



技术实现要素:

本发明描述用于从多层位流容易地获提取视频数据的层的技术。例如,本发明的技术可以用于控制多层位流的独立非基础层的图片的图片次序计数(POC)值重置。在一些实例中,使用本发明的技术来约束视频译码器可以允许提取多层位流的视频数据的层而不改变所述层的切片标头中的数据。另外,控制POC值重置发生的位置可以帮助确保视频译码器可以适当地识别经解码图片缓冲器(DPB)中的长期参考图片。

在实例中,一种对视频数据进行译码的方法包含:通过视频译码器对多层位流的可独立解码的非基础层的图片的至少一部分进行译码;且仅当所述图片具有所述图片的POC LSB值等于零时,才对指示所述图片的POC最低有效位(LSB)值的POC值重置的数据进行译码。

在另一实例中,一种用于对视频数据进行译码的装置包含存储器,其经配置以存储多层位流的视频数据的可独立解码的层。所述装置还包含视频译码器,其经配置以对多层位流的可独立解码的非基础层的图片的至少一部分进行译码,且仅当所述图片具有所述图片的图片次序计数(POC)最低有效位(LSB)值等于零时才对指示所述图片的POC LSB值的POC值重置的数据进行译码。

在另一实例中,一种用于对视频数据进行译码的装置包含:用于对多层位流的可独立解码的非基础层的图片的至少一部分进行译码的装置;以及用于仅当所述图片具有所述图片的图片次序计数(POC)最低有效位(LSB)值等于零时才对指示所述图片的POC LSB值的POC值重置的数据进行译码的装置。

在另一实例中,一种非暂时性计算机可读储存媒体具有存储于其上的指令,所述指令在执行时使得用于对视频数据进行译码的装置的处理器:对多层位流的可独立解码的非基础层的图片的至少一部分进行译码;且仅当所述图片具有所述图片的图片次序计数(POC)最低有效位(LSB)值等于零时才对指示所述图片的POC LSB值的POC值重置的数据进行译码。

附图及以下描述中阐述一或多个实例的细节。其它特征、目标及优点将从描述及附图且从权利要求书中显而易见。

附图说明

图1是说明根据本发明的技术的可利用用于对POC值信息进行译码的技术的实例视频编码和解码系统的方块图。

图2是说明根据本发明的技术的可实施用于对POC值信息进行译码的技术的视频编码器的实例的方块图。

图3是说明根据本发明的技术的可实施用于对POC值信息进行译码的技术的视频解码器的实例的方块图。

图4是说明多层位流的独立非基础层的POC值重置的概念图。

图5是说明多层位流的独立非基础层的POC值重置的另一概念图。

图6流程图说明根据本发明的技术的用于对多层位流的视频数据进行编码的实例方法。

图7是说明根据本发明的技术的用于对多层位流的视频数据进行解码的实例方法的流程图。

具体实施方式

本发明的各方面可以涉及对多层位流的独立非基础层进行译码的各种技术。在一些情况下,所述技术可以在高效视频译码(HEVC)标准的多层扩展(例如,HEVC的多视点视频译码扩展(MV-HEVC)或HEVC的可伸缩视频译码(SVC)扩展(SHVC))下执行,如下文所提及。然而,本发明的技术不限于任何特定的视频译码标准,且还可以或替代地与HEVC的其它扩展、其它多视点译码标准和/或其它多层视频标准一起使用。另外,如下文所描述,本发明的技术可以独立地或组合地应用。

视频数据的“层”可以大体上指代具有至少一个共同特性的图片序列,所述共同特性例如视图、帧速率、空间格式或分辨率、信噪比或类似者。例如,层可以包含与多视点视频数据的特定视图(例如,透视图)相关联的视频数据。作为另一实例,层可以包含与可伸缩视频数据的特定层相关联的视频数据。因此,本发明可互换地提及视频数据的层和视图。也就是说,视频数据的视图可以被称作视频数据的层,且反之亦然。另外,多层编解码器(也称为多层视频译码器或多层编码器-解码器)可以指多视点编解码器或可伸缩编解码器(例如,经配置以使用MV-HEVC、SHVC或另一多层译码技术来对视频数据进行编码和/或解码的编解码器)。

多层位流可以包含基础层和一或多个非基础层。基础层通常可以具有等于零的层识别符。非基础层可以具有大于零的层识别符,且可以提供不包含于基础层中的额外视频数据。例如,多视点视频数据的非基础层可以包含视频数据的额外视图。可伸缩视频数据的非基础层可以包含具有相对于基础层增加或减小的分辨率的可伸缩视频数据的额外层。非基础层可以可互换地被称作增强层。

当某一层不具有直接参考层时,所述层可以被称为“独立的”。也就是说,可以在不参考另一层的视频数据的情况下对独立层进行译码(编码或解码)。独立非基础层可以遵守特定标准的特定译码简表,所述译码简表不必与所述独立层所属于的多层位流的其它层相同。在出于说明的目的的非限制性实例中,多层位流可以遵守MV-HEVC或SHVC。多层位流的独立非基础层可以独立地进行译码(例如,不使用层间预测技术)且可以遵守HEVC标准。因此,如下文更详细描述,可以使用HEVC标准来提取独立非基础层并对其进行解码,而不对多层位流的其它层进行解码。在一些情况下,具有媒体知识的网络元件(MANE)、拼接单元或其它装置可以从多层位流提取独立层。在此类情况下,MANE可以仅将所提取的独立层发射到视频解码器以用于解码。在其它情况下,另一计算装置可以负责提取子位流。

本发明的技术适用于设定视频译码的图片次序计数(POC)值且可以用于从多层位流容易地提取独立非基础层。例如,视频编码器可以根据特定的多层视频译码标准(例如SHVC或MV-HEVC)对多层位流进行编码。视频解码器、具有媒体知识的网络元件(MANE)、拼接单元或其它装置可以从此多层位流提取独立非基础层。如下文更详细描述,在一些实例中,本发明的技术可以允许从多层位流(例如遵守SHVC或MV-HEVC的位流)提取某一层,且通过经配置以使用HEVC标准进行解码的视频解码器来对所述层进行恰当地解码,而不改变独立非基础层的切片标头或其它语法。

POC值可指示图片的显示次序且可大体上用以识别图片。例如,具有POC值0的图片在具有POC值1的图片之前显示。当相对于参考图片对当前图片的块进行帧间预测时,可以使用参考图片的POC值来识别参考图片。更明确地说,将包含于参考图片列表中的POC值参考图片可在参数集中用信号发送,所述参数集例如序列参数集(SPS)、图片参数集(PPS)和/或对应于所述块的切片标头。以此方式,视频编码器可通过用信号发送参考图片列表中的对应于参考图片列表中的参考图片的位置的索引来识别参考图片,且视频解码器可通过构造参考图片列表(基于POC值)并使用参考索引来识别参考图片在参考图片列表中的位置,来识别参考图片。

POC值可以由最低有效位(LSB)和最高有效位(MSB)组成。一般来说,POC LSB值可以在位流中用信号发送。例如,POC LSB值可以包含于图片的切片的切片标头中。视频译码器(视频编码器或视频解码器)可以基于位流的经先前译码图片的POC值来确定图片的POC MSB值。

POC值可以用于多层视频译码中以确保适当地输出来自多个层的视频数据。例如,在多层视频译码(例如,多视点视频译码、可伸缩视频译码或类似者)中,视图分量可以包括特定层的经编码图片或在特定时间处(就显示次序或输出次序而言)的视图。大体上,存取单元是包含用于共同时间实例的所有视图分量(例如,所有网络抽象层(NAL)单元)的数据的单元。存取单元的视图分量通常既定一起输出(即,大体上同时输出),其中输出图片大体上涉及从DPB传送图片(例如,将图片从DPB存储到外部存储器、将图片从DPB发送到显示器、从DPB移除图片或类似者)。

视频译码器可以周期性地重置POC值。例如,视频译码器通常可以重置即时解码器刷新(IDR)图片(例如,仅包含经帧内预测切片的图片)的POC值。除了重置POC值之外,视频译码器还可以使在与POC重置相关联的当前图片之前的已经处理并存储到DPB的图片的POC值递减。已经递减的参考图片的POC值可具有负值,以便维持此类图片的适当输出次序。

在一些情况下,视频译码器可以重置多层位流的存取单元中的图片的POC值以便维持与存取单元的其它图片的跨层对准。在单层位流(例如,HEVC)中,每一存取单元包含一组NAL单元,所述NAL单元根据指定分类规则而与彼此相关联且按解码次序连续,且每一存取单元包含恰好一个图片(也称为经译码图片)。在多层位流(例如,具有超过一个层的SHVC或MV-HEVC位流)中,存取单元(也被称作多层存取单元)可以包含一或多个经译码图片。如果一或多个经译码图片包含于多层存取单元中,那么每一经译码图片安置在子位流内。作为举例,多层存取单元可以具有在基础层中的一个经译码图片和在增强层中的一个经译码图片。因此,多层存取单元包括在相同输出时间内跨越各层(包含所有相关联的视频译码层(VCL)和非VCL NAL单元)的所有经译码图片。存取单元中的经译码图片可以与POC的相同值相关联以用于识别且确保存取单元的图片在相同或大体上相同时间输出。

就用于维持跨层对准的POC值重置而言,在出于说明的目的的实例中,存取单元可以包含使得执行POC值重置的基础层IDR图片和并非IDR图片的非基础层图片。为确保存取单元的非基础层图片的POC值匹配基础层图片的POC值,视频译码器可以重置非基础层图片的POC值。

如上文所提到,独立非基础层可以遵守与特定标准相关联的特定译码简表以允许从多层位流提取非基础层。然而,提供待独立地译码的多层位流的非基础层可能呈现若干挑战。例如,如下文关于图4更详细描述,重置独立非基础层的图片的POC LSB值可能对适当地识别参考图片集(RPS)的长期参考图片(LTRP)造成某一问题。作为另一个实例,重置独立非基础层的图片的POC LSB值可能使得存取单元包含未跨层对准的图片。

在一些情况下,本发明的技术可以解决上文提到的挑战。例如,本发明的技术可以用于允许在对非基础层的最小改变的情况下(例如,在不改变非基础层的切片标头或其它语法的情况下)提取多层位流的非基础层并对其进行解码。本发明的技术可以用于确定帧内随机存取点(IRAP)图片在独立非基础层中的位置。以此方式,本发明的技术可以用于控制独立非基础层的图片的POC值重置。

根据本发明的方面,视频译码器(视频编码器或视频解码器)可以对多层位流的可独立解码层的图片进行译码。视频译码器还可以仅当图片的POC LSB值等于零时才对指示所述图片的POC LSB值的POC值重置的数据进行译码。在一些实例中,视频译码器可以仅当独立非基础层中被译码的图片是IDR图片时或当被译码的图片在执行POC值重置之前具有等于零的POC LSB值时,才对指示增强层的POC值重置的数据进行译码。如下文更详细描述,控制POC值重置发生的位置可以帮助确保视频译码器可以适当地识别DPB中的长期参考图片,且维持位流遵守特定视频译码标准,例如,本文中所识别的标准等。

在出于说明的目的的非限制性实例中,本发明的技术可以允许从多层可伸缩位流提取独立非基础层。例如,SHVC位流可以包含具有540p的分辨率的基础层和1080p的增强层。按照惯例,在基础层中,至多每32个图片可以包含一个IDR图片。在增强层中,可以不同的间隔(例如,每96个图片)包含IDR。

本发明的技术可以用于约束形成此可伸缩位流的方式,使得增强层维持遵守基本HEVC标准。例如,如本文中所描述,本发明的技术可以用于控制针对SHVC位流执行POC值重置的方式,使得增强层可以从SHVC位流提取出并通过遵守基本HEVC标准的解码器对增强层进行解码。因此,能够对HEVC位流(而非HEVC位流)进行解码的移动计算装置可以接收增强层并对增强层进行解码,而不改变增强层的切片标头(其包含POC值信息,如本文中所描述)。

图1是说明根据本发明的技术的可利用用于管理POC值的技术的实例视频编码和解码系统10的方块图。如图1中所示,系统10包含源装置12,其提供稍后通过目的地装置14进行解码的经编码视频数据。确切地说,源装置12经由计算机可读媒体16将视频数据提供到目的地装置14。

源装置12和目的地装置14可包括广泛范围的装置中的任一者,包含桌上型计算机、笔记本型(即,膝上型)计算机、平板计算机、机顶盒、电话手持机(例如所谓的“智能”电话)、所谓的“智能”平板计算机、电视机、相机、显示器装置、数字媒体播放器、视频游戏控制台、视频流式传输装置或类似者。在一些情况下,源装置12和目的地装置14可经配备以用于无线通信。

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

在一些实例中,计算机可读媒体16可以包含存储装置。例如,存储装置可包含多种分布式或本地存取的数据存储媒体中的任一者,例如,硬盘驱动器、蓝光光盘、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器或用于存储经编码视频数据的任何其它合适的数字存储媒体。在另一实例中,存储装置可对应于文件服务器或另一中间存储装置,其可存储由源装置12产生的经编码视频且可以通过目的地装置存取。实例文件服务器包含网络服务器(例如,用于网站)、FTP服务器、网络附接式存储(NAS)装置或本地磁盘驱动器。

在图1的实例中,源装置12包含视频源18、视频编码器20以及输出接口22。目的地装置14包含输入接口28、视频解码器30以及显示器装置32。在其它实例中,源装置和目的地装置可以包含其它组件或布置。例如,源装置12可从外部视频源(例如,外部相机)接收视频数据。同样,目的地装置14可与外部显示装置介接,而非包含集成显示器装置。因此,图1的所说明的系统10仅是一个实例。根据本发明的技术的用于管理POC值的技术可以通过任何数字视频编码和/或解码装置执行。

尽管本发明的技术大体上通过视频编码装置执行,但是所述技术还可通过视频编码器/解码器(通常被称作“编解码器”)执行。此外,本发明的技术还可通过视频预处理器来执行。源装置12和目的地装置14仅为此类译码装置的实例,其中源装置12产生经译码视频数据以用于发射到目的地装置14。在一些实例中,装置12、14可以大体上对称的方式操作,使得装置12、14中的每一者包含视频编码和解码组件。因此,系统10可支持视频装置12、14之间的单向或双向视频发射以(例如)用于视频流式传输、视频重放、视频广播或视频电话。

源装置12的视频源18可包含视频捕获装置,例如摄像机、包含先前所捕获的视频的视频存档和/或用于从视频内容提供者接收视频的视频馈送接口。作为另一替代方案,视频源18可产生基于计算机图形的数据作为源视频,或实况视频、存档视频与计算机产生的视频的组合。在一些情况下,如果视频源18为摄像机,那么源装置12和目的地装置14可形成所谓的相机电话或视频电话。然而,如上文所提及,本发明中所描述的技术可大体上适用于视频译码,且可应用于无线和/或有线应用。在各种情况下,所捕获的、所预先捕获的或计算机产生的视频可由视频编码器20进行编码。经编码视频信息可接着由输出接口22输出到计算机可读媒体16上。

如上文所提到,计算机可读媒体16可包含暂时性媒体,例如无线广播或有线网络传输;或存储媒体(即,非暂时性存储媒体),例如硬盘、快闪驱动器、压缩光盘、数字视频光盘、蓝光光盘或其它计算机可读媒体。在一些实例中,网络服务器(未示出)可以从源装置12接收经编码视频数据,并且例如经由网络传输将经编码视频数据提供到目的地装置14。类似地,媒体产生设施(例如光盘冲压设施)的计算装置可以从源装置12接收经编码的视频数据并且产生包含经编码的视频数据的光盘。因此,在各种实例中,计算机可读媒体16可以理解为包含各种形式的一或多个计算机可读媒体。

目的地装置14的输入接口28可以从计算机可读媒体16接收或存取信息。计算机可读媒体16的信息可以包含由视频编码器20界定的语法信息,所述语法信息还由视频解码器30使用,且包含描述块和其它经译码单元(例如图片群组(GOP))的特性和/或处理。显示装置32将经解码视频数据显示给用户,且可包括多种显示装置中的任一者,例如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示器装置。

目的地装置14可通过任何标准数据连接(包含因特网连接)来存取经编码视频数据。所述数据连接可包含适合于存取存储于文件服务器上的经编码的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。来自存储装置的经编码视频数据的传输可以是流式传输、下载传输或其组合。本发明的技术未必限于无线应用或设置。所述技术可以应用于在支持多种多媒体应用中的任一者时的视频译码,例如空中电视广播、有线电视传输、卫星电视传输、因特网流视频传输(例如,HTTP动态自适应流式传输(DASH))、被编码到数据存储媒体上的数字视频,存储在数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,系统10可经配置以支持单向或双向视频发射,以支持例如视频流式传输、视频回放、视频广播及/或视频电话等应用。

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

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

本发明可大体上涉及视频编码器20,其将某些信息“用信号发送”到例如视频解码器30的另一装置。然而,应理解,视频编码器20可通过使某些语法元素与视频数据的各种经编码部分相关联来用信号发送信息。也就是说,视频编码器20可以通过将某些语法元素存储到视频数据的各种经编码部分的标头来“用信号发送”数据。在一些情况下,此类语法元素可在由视频解码器30接收及解码前进行编码及存储。因此,术语“用信号发送”可大体指语法或其它数据的通信以用于解码经压缩的视频数据,而不管此通信是实时还是几乎实时或是在一段时间上发生,例如,此类通信可在编码时在将语法元素存储到媒体时发生,接着所述语法元素可在被存储到此媒体后的任何时间通过解码装置检索。

视频编码器20和视频解码器30可根据视频译码标准操作。近来,新的视频译码标准(即高效视频译码(HEVC))的设计已由ITU-T视频译码专家组(VCEG)和ISO/IEC动画专家组(MPEG)的视频译码联合合作小组(JCT-VC)定案。HEVC的多视点扩展,即MV-HEVC,也由JCT-3V开发。MV-HEVC的最新工作草案(WD)被称作MV-HEVC WD7。HEVC的可伸缩扩展(被称为SHVC)也由JCT-VC开发。SHVC的最新工作草案(WD)被称作SHVC WD5。然而,本发明的技术不限于任何特定译码标准。

在HEVC和其它视频译码标准中,视频序列通常包含一系列图片。图片也可被称作“帧”。图片可以包含三个样本阵列,表示为SL、SCb以及SCr。SL是亮度样本的二维阵列(即,块)。SCb是Cb色度样本的二维阵列。SCr是Cr色度样本的二维阵列。色度样本在本文中还可以被称为“色度(chroma)”样本。在其它情况下,图片可为单色的且可仅包含亮度样本阵列。

为了产生图片的经编码表示,视频编码器20可产生一组译码树单元(CTU)。CTU中的每一者可为亮度样本的译码树块、色度样本的两个对应译码树块及用于对译码树块的样本进行译码的语法结构。译码树块可为样本的N×N块。CTU也可以被称为“树块”或“最大译码单元”(LCU)。HEVC的CTU可以广泛地类似于例如H.264/AVC等其它标准的宏块。然而,CTU未必限于特定大小,并且可以包含一或多个译码单元(CU)。

切片可包含在光栅扫描中连续排序的整数数目的CTU。切片可包括切片标头和切片数据。切片的切片标头可为包含提供关于切片的信息的语法元素的语法结构。切片数据可包含切片的经译码CTU。

本发明可使用术语“视频单元”或“视频块”或“块”来指代一或多个样本块及用于对一或多个样本块中的样本进行译码的语法结构。实例类型的视频单元或块可包含CTU、CU、PU、变换单元(TU)、宏块、宏块分区等。在一些上下文中,PU的论述可与宏块分区的宏块的论述互换。

为了产生经译码CTU,视频编码器20可以对CTU的译码树块递归地执行四叉树分割,以将译码树块划分为译码块,因此命名为“译码树单元”。译码块是样本的N×N块。CU可以是具有亮度样本阵列、Cb样本阵列和Cr样本阵列的图片的亮度样本的译码块以及色度样本的两个对应的译码块,以及用以对译码块的样本进行译码的语法结构。视频编码器20可将CU的译码块分割为一或多个预测块。预测块可为应用相同预测的样本的矩形(即,正方形或非正方形)块。CU的预测单元(PU)可以是图片的亮度样本的预测块,图片的色度样本的两个对应的预测块,以及用以对预测块样本进行预测的语法结构。视频编码器20可产生用于CU的每个PU的亮度预测块、Cb预测块以及Cr预测块的预测性亮度块、Cb块以及Cr块。

视频编码器20可使用帧内预测或帧间预测以产生PU的预测性块。如果视频编码器20使用帧内预测产生PU的预测性块,那么视频编码器20可基于与PU相关联的图片的经解码样本产生PU的预测性块。

如果视频编码器20使用帧间预测产生PU的预测性块,则视频编码器20可以基于除与PU相关联的图片外的一或多个图片的经解码的样本来产生PU的预测性块。视频编码器20可使用单向预测或双向预测以产生PU的预测性块。当视频编码器20使用单向预测来产生PU的预测性块时,PU可具有单一运动向量(MV)。当视频编码器20使用双向预测来产生PU的预测性块时,PU可以具有两个运动向量(MV)。

在视频编码器20产生CU的一或多个PU的预测性亮度、Cb及Cr块之后,视频编码器20可产生CU的亮度残余块。CU的亮度残余块中的每个样本指示在CU的预测性亮度块中的一者中的亮度样本与CU的原始亮度译码块中的对应样本之间的差值。另外,视频编码器20可以产生CU的Cb残余块。CU的Cb残余块中的每个样本可以指示在CU的预测性Cb块中的一者中的Cb样本与CU的原始Cb译码块中对应的样本之间的差值。视频编码器20还可以产生CU的Cr残余块。CU的Cr残余块中的每一样本可以指示在CU的预测性Cr块中的一者中的Cr样本与CU的原始Cr译码块中的对应样本之间的差值。

此外,视频编码器20可以使用四叉树分割将CU的亮度残余块、Cb残余块以及Cr残余块分解成一或多个亮度变换块、Cb变换块以及Cr变换块。变换块可为其上应用相同变换的样本的矩形块。CU的变换单元(TU)可以是亮度样本的变换块、色度样本的两个对应的变换块,以及用于对变换块样本进行变换的语法结构。因此,CU的每一TU可与亮度变换块、Cb变换块以及Cr变换块相关联。与TU相关联的亮度变换块可以是CU的亮度残余块的子块。Cb变换块可以是CU的Cb残余块的子块。Cr变换块可以是CU的Cr残余块的子块。

视频编码器20可将一或多个变换应用至TU的亮度变换块以产生TU的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可为标量。视频编码器20可将一或多个变换应用到TU的Cb变换块以产生TU的Cb系数块。视频编码器20可将一或多个变换应用于TU的Cr变换块以产生TU的Cr系数块。

在产生系数块(例如,亮度系数块、Cb系数块或Cr系数块)之后,视频编码器20可量化系数块。量化大体上是指对变换系数进行量化以可能地减少用以表示变换系数的数据的量从而提供进一步压缩的过程。在视频编码器20量化系数块之后,视频编码器20可以对指示经量化变换系数的语法元素进行熵编码。例如,视频编码器20可以对指示经量化变换系数的语法元素执行上下文自适应二进制算术译码(CABAC)。视频编码器20可以在位流中输出经熵编码的语法元素。

视频编码器20可以输出单层或多层位流。每一层具有包含经熵编码的语法元素的相关联位流。位流可包含形成经译码图片和相关联数据的表示的位序列。位流可包括网络抽象层(NAL)单元的序列。NAL单元中的每一者包含NAL单元标头且封装原始字节序列有效负载(RBSP)。NAL单元标头可包含指示NAL单元类型码的语法元素。由NAL单元的NAL单元标头指定的NAL单元类型码指示NAL单元的类型。RBSP可为包含封装在NAL单元内的整数数目个字节的语法结构。在一些情况下,RBSP包含零位。

不同类型的NAL单元可封装不同类型的RBSP。例如,第一类型的NAL单元可封装图片参数集(PPS)的RBSP,第二类型的NAL单元可封装经译码切片的RBSP,第三类型的NAL单元可封装补充增强信息(SEI)的RBSP,等等。封装视频译码数据的RBSP(与参数集和SEI消息的RBSP相反)的NAL单元可以被称作VCL NAL单元。

视频解码器30可以接收由视频编码器20产生的位流。另外,视频解码器30可以解析位流以对来自位流的语法元素进行解码。视频解码器30可以至少部分基于从位流解码的语法元素重构视频数据的图片。用以重构视频数据的过程大体上可与由视频编码器20执行的过程互逆。

举例来说,视频解码器30可使用PU的运动向量(MV)来确定当前CU的PU的预测性样本块。另外,视频解码器30可以反量化与当前CU的TU相关联的变换系数块。视频解码器30可对变换系数块执行反变换以重构与当前CU的TU相关联的变换块。通过将当前CU的PU的预测性样本块的样本叠加到当前CU的TU的变换块的对应的样本上,视频解码器30可以重构当前CU的译码块。通过重构图片的每一CU的译码块,视频解码器30可重构图片。

视频编码器20和视频解码器30可为视频序列的每一图片指派用于所述图片的识别的POC值。例如通过在切片标头中和/或在PPS或SPS等参数集中用信号发送表示参考图片的POC值的数据,视频编码器20可对表示将包含在参考图片列表中的参考图片的数据进行编码(且视频解码器30可以对其进行解码)。特定经译码图片的由语法元素PicOrderCntVal表示的POC值指示在图片输出过程中所述图片相对于在同一经译码视频序列中的其它图片的相对次序。已经递减的参考图片的POC值可具有负值,以便维持此类图片的适当输出次序。

POC值包含POC LSB值和POC MSB值。POC LSB值可以针对每一图片增加,且指定从初始值零到最大值(例如,使用4到16位指定的最大值)的输出次序。在八位POC LSB值的实例中,出于说明的目的,在POC LSB值255之后,POC LSB值可以从255翻转到零且POC LSB值可以继续从零开始增加。POC LSB值可以在切片标头中用信号发送,而POC MSB值可以通过视频解码器30基于当前图片的NAL单元类型以及按解码次序的先前图片(被称作POC锚图片)的MSB和LSB来计算。对于SHVC和/或MV-HEVC,可以用信号发送额外信息以帮助计算POC MSB。在此类实例中,当存在额外信息时,POC MSB的计算不取决于按解码次序的先前图片。

存取单元多层位流可以包含IRAP图片以及并非IRAP图片的一或多个其它图片(即非IRAP图片)。IRAP图片包含仅经帧内译码(I)切片,且可为断链存取(BLA)图片、清洁随机存取(CRA)图片或IDR图片。对于每一层,经译码视频序列的位流中的第一图片是IRAP图片。IRAP图片还提供在多层位流的每一层中的各点处。多层存取单元可以包含IRAP图片和非IRAP图片,因为IRAP图片可能并不在每一层内以相同的间隔间隔开。因为IRAP图片通常需要比经帧间译码非IRAP图片更大的位有效负载,所以视频编码器20可以在增强层中以与基础层相比更大的间隔来隔开IRAP图片。

例如,对于GOP八,视频编码器20可以在基础层中每32个图片来隔开IRAP图片,且在增强层中每96个图片来隔开IRAP图片。在多层位流中一个层(例如基础层)具有IRAP图片且另一层不具有IRAP图片的某一点处,多层存取单元可以被称作非对准存取单元。随后的多层存取单元继续为非对准的直到POC重置。如下文更详细地阐述,跨越多层存取单元的所有层的IRAP图片的提供可以重置对准。

在一些情况下,可针对多层存取单元的图片重置POC值以便维持多层存取单元中的图片的POC对准。作为举例,标准兼容的HEVC解码器可以经配置以提取多层位流的非基础层(也被称作增强层)并对其进行解码,而不更新所提取的层中的图片的切片标头中的参考图片集(RPS)信息。增强层可以是例如MV-HEVC位流中的替代视图或SHVC位流中的缩放视频。层特定的POC重置周期可以基于在切片段标头中用信号发送的POC重置周期识别符来指定。也就是说,视频编码器20和视频解码器30可相应地对表示切片段标头中的POC重置周期识别符的数据进行译码。

属于包含至少一个IRAP图片的存取单元的每一非IRAP图片(包含IDR图片类型的图片)可以是POC重置周期的开始可以在包含非IRAP图片的层中开始。也就是说,视频编码器20可将包含至少一个IRAP图片的存取单元的非IRAP图片的POC重置类型设定为指示所述非IRAP图片是新POC重置周期的开始。在此存取单元中,每一图片随后将是所述层中的每一者中的POC重置周期的开始-。

视频编码器20可在切片段标头中用信号发送POC LSB值,视频解码器30可以使用所述POC LSB值来导出在包含具有所述切片段标头的切片的层中的图片的POC值。在切片段标头中用信号发送的POC LSB值可用于导出增量POC值,所述增量POC值可以用于更新DPB中的同一层图片的POC值,且还用于导出当前图片的POC值的POC MSB。

当在POC重置周期上执行POC重置时,视频编码器20可以在切片段标头中用信号发送POC重置类型。POC重置类型可以使用POC值重置索引(poc_reset_idc)来指示,所述POC值重置索引可以指示POC值是完全重置还是部分重置。例如,在MV-HEVC或SHVC中,POC重置类型可以使用poc_reset_idc语法元素来指示。在此实例中,等于0的poc_reset_idc语法指定当前图片的POC值的MSB和LSB皆未重置。等于1的poc_reset_idc语法元素指定当前图片的POC值的仅MSB可以重置。等于2的poc_reset_idc语法元素指定当前图片的POC值的MSB和LSB皆可以重置。等于3的poc_reset_idc语法元素指定当前图片的POC值的仅MSB可以重置或MSB和LSB两者皆可以重置并用信号发送额外的POC信息。

对于可独立解码的独立非基础层,视频编码器20和视频解码器30在形成位流并对其进行解码时可以施加某些约束条件。在出于说明的目的的非限制性实例中,视频编码器20和视频解码器30可以使用MV-HEVC或SHVC对多层位流进行译码。视频编码器20和视频解码器30在对独立非基础层进行译码时可以施加一或多个约束条件以允许提取非基础层并使用HEVC兼容的解码器对其进行解码。例如,为了使独立非基础通过HEVC兼容的解码器层成功地解码,视频编码器20和视频解码器30可以将遵守HEVC的语法用于独立非基础层。例如,视频编码器20和视频解码器30可以对独立非基础层的切片标头和其它语法进行译码以遵守HEVC标准。以此方式,HEVC兼容的视频解码器可以对独立非基础层进行解码,而不必修改切片标头的数据或执行其它转码操作。

在一些情况下,当试图识别RPS中的长期参考图片(LTRP)时,重置独立非基础层的图片的POC LSB值可能造成问题。例如,如上文所提到,例如通过在切片标头和/或在参数集(例如PPS或SPS)中用信号发送表示参考图片的POC值的数据,视频编码器20可以对表示将包含于参考图片列表中的参考图片的数据进行编码(且视频解码器30可以对其进行解码)。另外,在包含表示将包含于参考图片列表中的参考图片的数据之前,视频编码器20和视频解码器30可以使在与POC重置相关联的当前图片之前已经处理并存储到DPB的图片的POC值递减。

LTRP可以基于相应LTRP的POC LSB值来识别。如上文所提到,视频编码器20通常可以在执行POC值重置后调整LTRP的POC LSB值(例如,使其递减)以考虑POC值重置。因此,视频编码器20通常可以包含切片标头中(和/或PPS或SPS中)的LTRP的递减的POC LSB值。对于值为负的LTRP(例如,在POC值重置之后),视频编码器20或视频解码器30可以使用转换算法将负POC LSB值转换成正POC LSB值。

然而,一些视频解码器可能未经配置以对与POC值重置相关联的语法进行解码。在出于说明的目的的非限制性实例中,HEVC兼容的视频解码器可以接收已经从多层位流提取的独立非基础层。HEVC兼容的视频解码器可能未恰当地解释POC值重置语法。在此类情况下,HEVC兼容的视频解码器可能不执行POC值重置。例如,HEVC兼容的视频解码器可能丢弃POC值重置信息且可能不使存储到HEVC兼容的视频解码器的DPB的图片的POC值递减。

在上文所描述的实例中,HEVC兼容的视频解码器可能未基于在切片标头中用信号发送的LTRP的POC LSB值来恰当地识别LTRP,因为HEVC兼容的视频解码器可能未经配置以执行POC值重置或使存储到DPB的图片的POC值递减。也就是说,HEVC兼容的视频解码器可以接收在图片的切片标头中已经通过视频编码器20递减(由于POC值重置)的LTRP的POC值。然而,在切片标头中用信号发送的LTRP的POC值可能未恰当地与DPB中的参考图片对准,因为HEVC兼容的视频解码器尚未使DPB的图片的POC值递减。因此,HEVC兼容的视频解码器可能未正确地基于所接收的POC值来识别DPB中的LTRP。

在出于说明的目的的实例中,视频编码器20可以使用具有10和20的POC LSB值的LTRP来对多层位流的独立非基础层的图片进行编码。视频编码器20可以对具有60的POC LSB值的图片执行POC值重置。因此,视频编码器20可以使存储到DPB的图片的POC值递减60且使用递减的POC LSB值(例如,-50和-40)来用信号发送LTRP。

然而,在其中视频解码器经配置以在不执行POC值重置的情况下对位流进行解码(例如上文提到的HEVC兼容的视频解码器)的情况下,视频解码器可能不使存储到DPB的图片的POC LSB值递减。例如,在从多层位流提取独立非基础层后,视频解码器可以对来自切片标头的-50和-40的LTRP POC LSB值的指示进行解码。然而,存储到DPB的对应的图片仍可具有10和20的值,因为视频解码器30尚未执行POC值重置。因此,视频解码器可能未恰当地基于用信号发送的POC LSB值来识别DPB中的LTRP。

根据本发明的方面,视频编码器20和视频解码器30可以控制执行POC值重置的方式。在一些情况下,所述技术可以允许在对独立非基础层进行解码时在切片标头中用信号发送的LTRP的POC值维持与存储到视频解码器的DPB的参考图片的POC值一致。

在实例中,视频编码器20和视频解码器30可以对多层位流的可独立解码层的图片进行译码(编码或解码)。视频编码器20和视频解码器30还可以仅当所述图片具有所述图片的POC LSB值等于零时才对指示图片的POC LSB值的POC值重置的数据进行译码。在此类情况下,执行POC值重置不需要视频编码器20或视频解码器30来使存储到DPB的图片的POC值递减,因为POC LSB值已经等于零。

返回到上文出于说明的目的而描述的实例,如果视频编码器20和视频解码器30在具有零的POC LSB值(例如,而非上文提到的60的POC LSB值)的图片处执行POC值重置,那么视频编码器20和视频解码器30不使存储到DPB的图片的POC LSB值递减,因为POC LSB值和零之间的差值是零。因此,在切片标头中用信号发送的LTRP的POC LSB值与存储到视频解码器30处的DPB的图片的POC LSB值一致。

在一些实例中,根据本发明的方面,视频编码器20和视频解码器30可以施加约束条件,使得仅针对具有等于零的POC LSB值的图片执行POC值重置。在实例中,为了能够提取独立非基础层(layerA)且维持遵守特定标准(例如,维持遵守HEVC的简表)而不改变layerA中的图片的VCL NAL单元的切片标头,视频编码器20和视频解码器30可以施加以下约束条件:(1)对于layerA中的IDR图片的每一切片段标头,将不存在slice_pic_order_cnt_lsb语法元素;以及(2)所述层中的每一图片将不具有在POC重置图片之前的长期参考图片,所述POC重置图片重置POC值的MSB和LSB值两者。

在另一实例中,视频编码器20和视频解码器30可以施加以下约束条件:(1)对于layerA中的IDR图片的每一切片段标头,将不存在slice_pic_order_cnt_lsb语法元素;以及(2)除非重置layerA中的POC值的MSB和LSB值两者的POC重置图片具有等于0的POC LSB(在重置之前),否则将不存在此POC重置图片。

在另一实例中,视频编码器20和视频解码器30可以施加以下约束条件:(1)对于layerA中的IDR图片的每一切片段标头,将不存在slice_pic_order_cnt_lsb语法元素;(2)除非重置layerA中的POC值的MSB和LSB值两者的POC重置图片也是IDR图片,否则将不存在此POC重置图片;以及(3)除非具有等于指示重置layerA中的POC值的MSB和LSB值的3的poc_reset_idc语法元素的POC重置图片也是IDR图片,否则将不存在重置图片。

在再一实例中,视频编码器20和视频解码器30可以根据poc_lsb_not_present_flag[i]的值来决定base_layer_parameter_set_compatibility_flag[i]的存在与否,如下文更详细描述。在再一实例中,视频编码器20可以用信号发送每一独立非基础层的旗标(且视频解码器30可以对其进行解码)以指示在提取之后所述层是否维持遵守特定标准(例如,HEVC)。

本发明的技术还涉及维持多层存取单元的图片的POC值对准(例如,维持存取单元的所有图片都具有相同POC值)。例如,尽管通常针对IDR图片执行POC值重置,但在一些情况下,在多层译码中,视频编码器20和视频解码器30可以不重置IDR图片的POC值。在出于说明的目的的实例中,存取单元可以包含并非IDR图片的基础层图片,为IDR图片的非基础层图片。尽管视频编码器20和视频解码器30通常可以针对非基础层的IDR图片执行POC值重置,但为维持存取单元中的POC值对准,视频编码器20可以替代地针对非基础层图片用信号发送基础层的POC LSB值(且视频解码器30可以对其进行解码)。例如,视频编码器20可以将基础层的POC LSB值的指示(并不等于零)包含在非基础层图片的切片标头中。

然而,上文所描述的实例在对独立非基础层进行译码时可能呈现出挑战。在出于说明的目的的非限制性实例中,HEVC兼容的视频解码器可以将IDR图片的POC LSB值重置为等于零。在此实例中,HEVC兼容的视频解码器可能未经配置以对来自IDR图片的切片的切片标头的POC LSB值的指示进行解码,因为POC LSB值是零。因此,当在IDR图片的切片标头中用信号发送POC LSB值时,HEVC兼容的视频解码器可能发生故障,因为HEVC兼容的视频解码器可能未经配置以对来自IDR图片的切片标头的POC LSB值进行解码。解码器接着可向前跳到序列中的下一IRAP图片,这可能降低用户体验中的连续性。

上文提到的MV-HEVC和SHVC标准可以指示子位流是否可使用一或多个语法元素(包含poc_lsb_not_present_flag)独立地解码。在一些情况下,等于1的poc_lsb_not_present_flag可以指示与poc_lsb_not_present_flag相关联的层可例如通过HEVC兼容的视频解码器独立地解码。相反,等于0的poc_lsb_not_present_flag可以指示某些语法(例如包含于切片标头中的语法)可能需要修改以供所述层独立地解码。

一般来说,poc_lsb_not_present_flag可以指示POC LSB值是否包含于IDR图片的切片标头中。根据SHVC和MV-HEVC,等于一的poc_lsb_not_present_flag指定POC LSB值不存在于IDR图片的切片标头中。等于零的poc_lsb_not_present_flag指定POC LSB值可能存在或可能不存在于IDR图片的切片标头中。poc_lsb_not_present_flag可以允许相对较容易地提取非基础层并对其进行解码,因为poc_lsb_not_present_flag提供POC LSB值可包含于切片标头中的指示。

关于上文提到的MV-HEVC和SHVC标准,关于设定poc_lsb_not_present_flag等于一(例如,指示POC LSB值不包含于切片标头中)的唯一明确约束条件是被译码的层是独立层。然而,对于独立层的不具有零的POC LSB值的图片,指示POC LSB值不包含于切片标头中可能产生问题,如下文关于图5的实例更详细描述。

根据本发明的方面,视频编码器20和视频解码器30可以仅当所述图片具有所述图片的POC LSB值等于零时才对指示图片的POC LSB值的POC值重置的数据进行译码。例如,视频编码器20和视频解码器30施加约束条件,使得除非层中的IDR图片的POC LSB值可以推断为等于零,否则poc_lsb_not_present_flag[i]的值将不等于一(例如,指示POC LSB值不包含于切片标头中)。当同一存取单元中的基础层图片的POC LSB值是IDR图片时,或当非基础层图片的POC LSB值的值为零时(例如,在POC LSB值从0正常前进到最大POC LSB值之后),独立非基础层图片的POC LSB值可以推断为等于零。

图2是说明根据本发明的技术的可实施用于管理POC值的技术的视频编码器20的实例的方块图。确切地说,视频编码器20可经配置以根据本发明的技术管理多层位流的图片的POC值。如上文所提到,视频编码器20可以经调适以执行多视点和/或可伸缩视频译码。例如,视频编码器20可经配置以对遵守一或多个视频译码标准扩展(例如SHVC或MV-HEVC)的位流进行编码。然而,尽管参考特定的译码标准,但应理解,所述技术不特定针对任何一个译码标准,且可使用未来和/或尚未开发的标准实施。

视频编码器20可对视频切片内的视频块执行帧内和帧间译码。帧内译码依赖于空间预测来减少或去除给定视频帧或图片内的视频中的空间冗余。帧间译码依赖于时间预测来减少或去除视频序列的相邻帧或图片内的视频中的时间冗余。帧内模式(I模式)可指代若干基于空间的译码模式中的任一者。例如单向预测(P模式)或双向预测(B模式)等帧间模式可以指若干基于时间的译码模式中的任一者。

如图2中所示出,视频编码器20接收待编码的视频帧内的当前视频块。在图2的实例中,视频编码器20包含视频数据存储器38、模式选择单元40、参考图片存储器64、求和器50、变换处理单元52、量化单元54以及熵编码单元56。模式选择单元40转而包含运动补偿单元44、运动估计单元42、帧内预测单元46以及分割单元48。对于视频块重构,视频编码器20还包含反量化单元58、反变换单元60以及求和器62。还可以包含解块滤波器(图2中未示出)以对块边界进行滤波以从经重构视频去除方块效应假象。如果需要,解块滤波器将通常对求和器62的输出进行滤波。除了解块滤波器外,还可使用额外滤波器(环路中或环路后)。为简洁起见,未示出这些滤波器,但如果需要,这些滤波器可对求和器50的输出进行滤波(作为环路内滤波器)。

在编码过程期间,视频编码器20接收待译码的视频帧或切片。所述帧或切片可被划分成多个视频块。视频数据存储器38可以存储将通过视频编码器20的组件进行编码的视频数据。存储在视频数据存储器38中的视频数据可以例如从视频源18获得。参考图片存储器64可以被称作DPB,其存储参考视频数据以供在视频编码器20对视频数据进行编码时使用,例如,在帧内或帧间译码模式中。视频数据存储器38及参考图片存储器64可由多种存储器装置中的任一者形成,例如包含同步DRAM(SDRAM)的动态随机存取存储器(DRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器装置。视频数据存储器38和参考图片存储器64可由同一存储器装置或单独的存储器装置提供。在各种实例中,视频数据存储器38可与视频编码器20的其它组件一起在芯片上,或相对于那些组件在芯片外。

运动估计单元42及运动补偿单元44可相对于一或多个参考帧中的一或多个块执行所接收视频块的帧间预测性译码以提供时间预测。帧内预测单元46可替代地相对于与待译码块在相同的帧或切片中的一或多个相邻块执行所接收视频块的帧内预测性译码以提供空间预测。视频编码器20可执行多个译码遍次,例如,以针对每一视频数据块选择适当的译码模式。

此外,分割单元48可以基于先前译码遍次中的先前分割方案的评估来将视频数据块分割成子块。例如,分割单元48可初始地将帧或切片分割成LCU,并且基于速率失真分析(例如,速率失真优化)将LCU中的每一者分割成子CU。模式选择单元40可进一步产生指示将LCU分割成若干子CU的四叉树数据结构。四叉树的叶节点CU可包含一或多个PU和一或多个TU。

模式选择单元40可例如基于误差结果选择译码模式中的一者(帧内或帧间),且将所得的经帧内译码或经帧间译码块提供到求和器50以便产生残余块数据,且提供到求和器62以重构经编码块以用作参考帧。模式选择单元40还将语法元素(例如,运动向量、帧内模式指示符、分割信息及其它此类语法信息)提供到熵编码单元56。

运动估计单元42和运动补偿单元44可高度集成,但出于概念目的单独地加以说明。运动估计单元42所执行的运动估计是产生运动向量的过程,所述过程估计视频块的运动。例如,运动向量可指示当前视频帧或图片内的视频块的PU相对于参考图片(或其它经译码单元)内的预测性块相对于当前切片(或其它经译码单元)内正被译码的当前块的位移。预测性块是经发现就像素差来说与待编码的块紧密匹配的块,其可通过绝对差总和(SAD)、平方差总和(SSD)或其它差度量来确定。

运动估计单元42通过比较经帧间译码切片中的视频块的PU的位置与参考图片的预测性块的位置来计算所述PU的运动向量。参考图片可以选自第一参考图片列表(列表0)或第二参考图片列表(列表1),所述列表中的每一者识别存储在参考图片存储器64中的一或多个参考图片。运动估计单元42向熵编码单元56和运动补偿单元44发送计算出的运动向量。

由运动补偿单元44执行的运动补偿可涉及基于由运动估计单元42确定的运动向量来获取或产生预测性区块。同样,在一些实例中,运动估计单元42与运动补偿单元44可在功能上整合。在接收到当前视频块的PU的运动向量后,运动补偿单元44可以在参考图片列表中的一者中定位所述运动向量指向的预测性块。求和器50通过从正被编码的当前视频块的像素值减去预测性块的像素值从而形成像素差来形成残余视频块,如下文所论述。一般来说,运动估计单元42相对于亮度分量执行运动估计,且运动补偿单元44将基于亮度分量计算出的运动向量用于色度分量和亮度分量两者。模式选择单元40还可产生与视频块及视频切片相关联的语法元素以供视频解码器30在对视频切片的视频块解码时使用。

运动估计单元42检索存储在参考图片存储器64的DPB中的参考图片。模式选择单元40可以确定将哪些参考图片用于对图片、图片的切片和/或图片序列进行编码。视频编码器20可对用于对图片、切片或序列进行编码的参考图片的图片次序计数(POC)值进行编码。视频编码器20可以对指示将包含于切片标头和/或参数集(例如PPS和/或SPS)中的参考图片列表中的参考图片的POC值进行编码。

以此方式,视频解码器(例如视频解码器30)可通过包含在切片标头和/或参数集中指示的参考图片来再现参考图片列表。此外,在使用由运动估计单元42所产生的运动向量来对块进行编码之后,视频编码器20可对所述块的运动信息进行编码,其中所述运动信息可包含表示运动向量的数据、参考图片列表的识别符,以及识别参考图片列表中的参考图片的参考索引。

在一些实例中,视频编码器20可计算存储于参考图片存储器64中的参考图片的子整数像素位置的值。例如,视频编码器20可内插参考图片的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可以相对于全像素位置及分数像素位置执行运动搜索并且输出具有分数像素精度的运动向量。

视频编码器20还可形成POC重置周期且对图片的切片的POC重置周期识别符的值进行编码以将切片指派到相应POC重置周期。视频编码器20可在每一视频数据层内将切片个别地指派给POC重置周期。此外,视频编码器20可确定切片的POC重置类型,且对切片的POC重置类型的指示的值(例如两位值)进行编码。

如相对于图1所论述,视频编码器20可根据通过可适用视频译码标准建立的限制来配置。例如,视频编码器20可以确保每一POC重置周期中的第一图片具有指示POC值完全或部分重置的POC重置类型(例如,poc_reset_idc)。一般来说,如上文所描述,视频编码器20可以基于按译码次序在当前图片之前经译码的图片的POC MSB值来确定当前图片的POC MSB值,或基于在切片标头中用信号发送的额外信息(例如,POC MSB周期)来确定当前图片的POC MSB值。

根据本发明的方面,视频编码器20可以仅当所述图片具有等于零的所述图片的POC LSB值时才对指示独立非基础层的图片的POC LSB值的POC值重置的数据进行编码。例如,视频编码器20可以对poc_reset_idc语法元素进行编码。视频编码器20可以将poc_reset_idc语法元素设定为等于0以指定当前图片的POC值的MSB和LSB皆不重置。视频编码器20可以将poc_reset_idc语法元素设定成等于1以指定当前图片的POC值的仅MSB可以重置。视频编码器20可以将poc_reset_idc语法元素设定为等于2以指定当前图片的POC值的MSB和LSB皆可以重置。视频编码器20可以将poc_reset_idc语法元素设定成等于3以指定当前图片的POC值的仅MSB或MSB和LSB两者可以重置,且可以用信号发送额外的图片次序计数信息。

视频编码器20可以基于一或多个约束条件控制设定poc_reset_idc值的方式。例如,视频编码器20可以控制设定poc_reset_idc语法元素的方式以确保所得位流遵守特定标准。根据本发明的方面,视频编码器20可以允许独立非基础层独立地解码的方式(例如,不改变/更新包含在独立非基础层的经译码切片的切片标头中的信息)来设定多层位流的独立非基础层中的图片的poc_reset_idc语法元素。

例如,根据本发明的方面,视频编码器20可以仅当被译码的图片具有等于零的POC LSB值时才将poc_reset_idc语法元素编码为等于2。也就是说,当被译码的特定层的poc_lsb_not_present_flag等于1(例如,指示所述层是独立非基础层)且指示图片的POC LSB值的slice_pic_order_cnt_lsb语法元素大于零时,视频编码器20可以不将poc_reset_idc的值设定为等于2。

当视频编码器20将poc_reset_idc语法元素编码为等于3时,视频编码器20可以进一步对full_poc_reset_flag和poc_lsb_val语法元素进行编码。在MV-HEVC和SHVC中,等于1的full_poc_reset_flag指定当同一层中按解码次序的先前图片不属于同一POC重置周期时,重置当前图片的POC值的MSB和LSB两者。等于0的full_poc_reset_flag指定当同一层中按解码次序的先前图片不属于同一POC重置周期时,重置当前图片的POC值的仅MSB。另外,poc_lsb_val语法元素指定可以用于导出当前图片的图片次序计数的值。

根据本发明的方面,视频编码器20可以基于被编码的层是否是独立非基础层来控制对poc_lsb_val进行编码的方式。例如,当被编码的层的poc_lsb_not_present_flag等于1且full_poc_reset_flag等于1时,视频编码器20可以将poc_lsb_val的值设定为等于零。以此方式,视频编码器20可以确保仅针对具有等于零的POC LSB值的图片执行POC值重置,这可以允许在参考图片集中恰当地识别出参考图片,如下文关于图4更详细描述。

作为如上文所描述由运动估计单元42和运动补偿单元44执行的帧间预测的替代方案,帧内预测单元46可对当前块进行帧内预测。确切地说,帧内预测单元46可以确定用来对当前块进行编码的帧内预测模式。在一些实例中,帧内预测单元46可(例如)在单独的编码编次期间使用各种帧内预测模式来对当前块进行编码,并且帧内预测单元46(或在一些实例中为模式选择单元40)可从受测模式中选择适当的帧内预测模式来使用。

例如,帧内预测单元46可使用速率失真分析计算各种受测帧内预测模式的速率失真值,并且从所述受测模式当中选择具有最佳速率失真特性的帧内预测模式。速率失真分析大体上确定经编码块与经编码以产生所述经编码块的原始的未经编码块之间的失真(或误差)的量,以及用于产生经编码块的位率(也就是说,位数)。帧内预测单元46可根据各种经编码块的失真和速率计算比率,以确定哪个帧内预测模式对于所述块展现最佳速率失真值。

在选择用于块的帧内预测模式后,帧内预测单元46可将指示用于所述块的选定帧内预测模式的信息提供到熵编码单元56。熵编码单元56可对指示选定帧内预测模式的信息进行编码。视频编码器20可将配置数据包含在所发射的位流中,所述配置数据可包含多个帧内预测模式索引表和多个经修改的帧内预测模式索引表(也称为码字映射表),对各种块的上下文进行编码的定义,以及对将用于所述上下文中的每一者的最可能的帧内预测模式、帧内预测模式索引表及经修改的帧内预测模式索引表的指示。

视频编码器20通过从被译码的原始视频块减去来自模式选择单元40的预测数据而形成残余视频块。求和器50表示执行此减法运算的组件。变换处理单元52将例如离散余弦变换(DCT)或概念上类似的变换等变换应用于残余块,从而产生包括残余变换系数值的视频块。变换处理单元52可以执行概念上类似于DCT的其它变换。还可使用小波变换、整数变换、子带变换或其它类型的变换。在任何情况下,变换处理单元52向残余块应用变换,从而产生残余变换系数块。所述变换可将残余信息从像素值域转换到变换域,例如频域。

变换处理单元52可将所得变换系数发送到量化单元54。量化单元54可量化所述变换系数以进一步减小位率。量化过程可减少与系数中的一些或全部相关联的位深度。可通过调整量化参数来修改量化程度。在一些实例中,量化单元54可随后执行对包含经量化变换系数的矩阵的扫描。替代地,熵编码单元56可执行所述扫描。

在量化之后,熵编码单元56经量化的变换系数进行熵译码。例如,熵编码单元56可以执行上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一熵译码技术。在基于上下文的熵译码的情况下,上下文可基于相邻块。在由熵编码单元56进行熵译码之后,可将经编码位流发射到另一装置(例如,视频解码器30),或者将所述经编码位流存档以用于稍后发射或检索。

反量化单元58和反变换单元60相应地应用反量化和反变换以在像素域中重构残余块,例如以供稍后用作参考块。运动补偿单元44可通过将残余块叠加到参考图片存储器64的帧中的一者的预测性块来计算参考块。运动补偿单元44还可将一或多个内插滤波器应用于经重构残余块来计算用于在运动估计中使用的子整数像素值。求和器62将经重构残余块叠加到由运动补偿单元44产生的经运动补偿预测块,以产生经重构视频块以用于存储于参考图片存储器64中。经重构视频块可由运动估计单元42及运动补偿单元44用作参考块以对随后的视频帧中的块进行帧间译码。

以此方式,图2的视频编码器20表示视频编码器的实例,所述视频编码器经配置以对多层位流的可独立解码层的图片的至少一部分进行编码,且仅当所述图片具有所述图片的POC LSB值等于零时才对指示图片的POC LSB值的POC值重置的数据进行编码。

图3是说明根据本发明的技术的可以实施用于管理POC值的技术的视频解码器30的实例的方块图。如上文所提到,视频解码器30可以经调适以执行多视点和/或可伸缩视频译码。例如,视频解码器30可经配置以对遵守一或多个视频译码标准扩展(例如SHVC或MV-HEVC)的位流进行解码。然而,尽管参考特定的译码标准,但应理解,所述技术不特定针对任何一个译码标准,且可使用未来和/或尚未开发的标准实施。

在图3的实例中,视频解码器30包含视频数据存储器68、熵解码单元70、运动补偿单元72、帧内预测单元74、反量化单元76、反变换单元78、参考图片存储器82以及求和器80。在一些实例中,视频解码器30可以执行大体上与关于视频编码器20(图2)所描述的编码遍次互逆的解码遍次。运动补偿单元72可基于从熵解码单元70接收的运动向量而产生预测数据,而帧内预测单元74可基于从熵解码单元70接收的帧内预测模式指示符而产生预测数据。

视频数据存储器68可以存储将通过视频解码器30的组件进行解码的视频数据,例如经编码视频位流。存储在视频数据存储器68中的视频数据可以例如经由视频数据的有线或无线网络通信从计算机可读媒体(例如,从相机等本地视频源)获得或通过访问物理数据存储媒体来获得。视频数据存储器68可形成存储来自经编码视频位流的经编码视频数据的经译码图片缓冲器(CPB)。参考图片存储器82可被称为DPB,其存储参考视频数据以供在视频解码器30对视频数据进行解码时使用,例如。在帧内或帧间译码模式中。视频数据存储器68和参考图片存储器82可由多种存储器装置中的任一者形成,例如包含同步DRAM(SDRAM)的动态随机存取存储器(DRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其它类型的存储器装置。视频数据存储器68和参考图片存储器82可由同一存储器装置或单独的存储器装置提供。在各种实例中,视频数据存储器68可与视频解码器30的其它组件一起在芯片上,或相对于那些组件在芯片外。

在解码过程期间,视频解码器30从视频编码器20接收表示经编码视频切片的视频块和相关联的语法元素的经编码视频位流。视频解码器30的熵解码单元70对所述位流进行熵解码以产生经量化系数、运动向量或帧内预测模式指示符以及其它语法元素。熵解码单元70将运动向量和其它语法元素转发到运动补偿单元72。视频解码器30可在视频切片层级和/或视频块层级处接收语法元素。

当视频切片经译码为经帧内译码(I)切片时,帧内预测单元74可以基于用信号发送的帧内预测模式和来自当前帧或图片的先前经解码块的数据而产生当前视频切片的视频块的预测数据。当视频帧被译码为经帧间译码(即,B、P或GPB)切片时,运动补偿单元72基于从熵解码单元70接收的运动向量及其它语法元素产生当前视频切片的视频块的预测性块。可从参考图片列表中的一者内的参考图片中的一者产生所述预测性块。视频解码器30可基于存储在参考图片存储器82的DPB中的参考图片使用默认构造技术来构造参考帧列表,列表0(L0)和列表1(L1)。

更确切地说,视频解码器30可以对指示图片的对应于PPS的切片是否包含POC重置信息的PPS进行解码。假定所述切片包含POC重置信息,那么视频解码器30可对包含POC重置信息的图片的切片的切片片段标头进行解码。POC重置信息可包含POC重置周期识别符和POC重置类型。

POC重置周期识别符可指示切片所对应的POC重置周期。POC重置类型可指示是包含所述切片的图片的POC值完全重置还是仅POC值的MSB重置。此外,POC重置类型可指示将不执行POC重置,或用信号发送额外信息。如果POC重置类型指示用信号发送额外信息,那么视频解码器30可对额外信息进行解码,其可指示POC LSB值以及是POC值完全重置还是仅MSB重置。

根据本发明的方面,视频解码器30可以经配置以对多层位流的可独立解码的非基础层进行解码。例如,根据本发明的方面,视频解码器30可以仅当所述图片具有等于零的所述图片的POC LSB值时才对指示图片的POC LSB值的POC值重置的数据进行解码。

在一些情况下,视频解码器30可以经配置以对poc_reset_idc语法元素进行解码。根据本发明的方面,视频解码器30可以基于一或多个约束条件来对poc_reset_idc语法元素进行解码。例如,视频解码器30可以对遵守特定标准的poc_reset_idc语法元素进行解码。例如,根据本发明的方面,视频解码器30可以仅当被译码的图片具有等于零的POC LSB值时才将poc_reset_idc语法元素解码为等于2。也就是说,当被译码的特定层的poc_lsb_not_present_flag等于1(例如,指示所述层是独立非基础层)且指示图片的POC LSB值的slice_pic_order_cnt_lsb语法元素大于0时,视频解码器30可以不对等于2的poc_reset_idc的值进行解码。

当视频解码器30对等于3的poc_reset_idc语法元素进行解码时,视频解码器30可以进一步对full_poc_reset_flag和poc_lsb_val语法元素进行解码。根据本发明的方面,当被解码的层的poc_lsb_not_present_flag等于1且full_poc_reset_flag等于1时,视频解码器30可以对等于0的poc_lsb_val的值进行解码。以此方式,视频解码器30可以确保仅针对具有等于零的POC LSB值的图片执行POC值重置,这可以允许在参考图片集中恰当地识别出参考图片,如下文关于图4更详细描述。

视频解码器30还可以对将包含于参考图片列表中的参考图片的POC值进行解码。视频解码器30可对切片段标头中和/或来自参数集(例如PPS或SPS)的这些POC值进行解码。视频解码器30接着可构造包含经解码POC值所识别的参考图片的参考图片列表。

在构造切片的参考图片列表之后,视频解码器30可对所述切片的块进行解码。运动补偿单元72通过解析运动向量及其它语法元素来确定当前视频切片的视频块的预测信息,并且使用所述预测信息来产生被解码的当前视频块的预测性块。例如,运动补偿单元72使用所接收的语法元素中的一些来确定用于对视频切片的视频块进行译码的预测模式(例如帧内或帧间预测)、帧间预测切片类型(例如B切片、P切片或GPB切片)、所述切片的每一经帧间编码视频块的运动向量、所述切片的每一经帧间译码视频块的帧间预测状态,以及用以对当前视频切片中的视频块进行解码的其它信息。经帧间预测的块的运动信息可包含参考图片列表识别符和参考索引,以识别所述参考图片列表中将用于预测所述块的参考图片。

运动补偿单元72还可以基于内插滤波器执行内插。运动补偿单元72可使用由视频编码器20在视频块的编码期间使用的内插滤波器来计算参考块的子整数像素的内插值。在此情况下,运动补偿单元72可从接收到的语法元素确定由视频编码器20使用的内插滤波器且使用内插滤波器来产生预测性块。

反量化单元76对在位流中提供且通过熵解码单元70解码的经量化变换系数进行反量化,即解量化。反量化过程可以包含将通过视频解码器30计算出的量化参数QPY用于视频切片中的每一视频块以确定量化的程度,以及同样地,应该应用的反量化的程度。

反变换单元78对变换系数应用反变换(例如,反DCT、反整数变换,或概念上类似的反变换过程),以便在像素域中产生残余块。

在运动补偿单元72基于运动向量和其它语法元素产生当前视频块的预测性块后,视频解码器30通过对来自反变换单元78的残余块与由运动补偿单元72产生的对应预测性块求和而形成经解码视频块。求和器80表示执行此求和运算的组件。如果需要,解块滤波器还可应用于对经解码块进行滤波以便移除方块效应假象。其它环路过滤器(在译码环路中或在译码环路之后)也可用于使像素转变变平滑或者以其它方式改进视频质量。接着将给定帧或图片中的经解码视频块存储在参考图片存储器82中,所述参考图片存储器存储用于随后运动补偿的参考图片。参考图片存储器82还存储经解码视频以用于稍后在显示器装置(例如,图1的显示器装置32)上呈现。

以此方式,图3的视频解码器30表示视频解码器的实例,所述视频解码器经配置以对多层位流的可独立解码层的图片的至少一部分进行解码,且仅当所述图片具有所述图片的POC LSB值等于零时才对指示图片的POC LSB值的POC值重置的数据进行解码。

图4是说明多层位流的独立非基础层的POC值重置的概念图。在图4的实例中,多层位流包含基础层(层0)90和独立非基础层(层1)92。一般来说,图4中阐述的实例图式的上半部说明在提取之前的多层位流,例如,如通过视频编码器20等视频编码器进行编码(通过短语“在层1的提取之前”指示)。图4中阐述的实例图式的下半部说明包含在从多层位流进行提取之后的非基础层92的子位流,例如,用于通过视频解码器30等视频解码器进行解码(通过短语“在层1的提取之后”指示)。

在提取之前,视频编码器20可以使用特定视频译码标准(例如,MV-HEVC或SHVC)对基础层90和非基础层92进行编码。例如,视频编码器20可以经配置以针对IDR图片94执行POC值重置。视频编码器可以用信号发送等于2的POC值重置索引(poc_reset_idc)。在POC值重置之前,图片94具有0的POC MSB值和20的POC LSB值。在POC值重置之后,图片94具有0的POC MSB值和0的POC LSB值。另外,为维持POC值的跨层对准,视频编码器20可以执行包含于非基础层92中的图片96的POC值重置。因此,在POC值重置之前,图片96具有0的POC MSB值和20的POC LSB值。在POC值重置之后,图片96具有0的POC MSB值和0的POC LSB值。

当执行POC值重置时,视频编码器20还可以使存储到DPB的图片的POC LSB值递减以考虑POC值重置。例如,视频编码器20可以使存储到DPB的每一参考图片的POC LSB值递减20(例如,原始POC LSB值与经重置POC LSB值之间的差值)。因此,在POC值重置之前,参考图片98具有0的POC MSB值和3的POC LSB值。在POC值重置之后,参考图片98具有0的POC MSB值和-17的POC LSB值。同样地,在POC值重置之前,参考图片100具有0的POC MSB值和3的POC LSB值。在POC值重置之后,参考图片100具有0的POC MSB值和-17的POC LSB值。

视频编码器20还使用帧间预测来对非基础层92的图片102进行编码。例如,视频编码器20将参考图片100识别为LTRP且将参考图片100包含在RPS中以用于对图片102进行编码(例如,长期参考图片集(LT-RPS))。视频编码器20还可以在图片102的切片的切片标头中或在由图片102所指代的参数集中用信号发送参考图片100的POC LSB值以将参考图片100识别为LTRP。也就是说,视频编码器20在执行POC值重置之后可以用信号发送参考图片100的POC LSB值,使得用信号发送的POC LSB值是15(在使用转换算法将-17转换成正数之后)。

在提取之后,如上文所提到,视频解码器30可以经配置以通过遵守特定单层标准(例如,HEVC)来对非基础层92进行解码,所述标准未必与用于对非基础层进行编码的多层标准相同。因此,视频解码器30可以使用与所述标准相关联的语法来对非基础层92进行解码且丢弃或以其它方式忽略其它语法。尽管本文中参考遵守HEVC和/或HEVC的多层扩展的视频解码器30,但应理解,本发明的技术未必以此方式限制且可与其它标准一起使用。

为对图片102进行解码,视频解码器30可以经配置以与通过视频编码器20执行的帧间预测互逆的方式来执行帧间预测。因此,视频解码器30可以构造参考图片列表,所述参考图片列表可以包含来自LT-RPS的一或多个图片。例如,视频解码器30可以对图片102的切片的切片标头或由图片102所指代的参数集进行解码以识别包含参考图片100的一或多个长期参考图片。

如上文所提到,参考图片100的POC LSB值可以在图片102的切片标头中用信号发送为等于15(例如,对应于在执行POC值重置之后的-17的POC LSB值)。然而,视频解码器30可能未经配置以执行POC值重置。例如,当对图片96进行解码时,视频解码器30可以不对poc_reset_idc语法元素进行解码且可以不使存储到DPB的图片的POC LSB值递减。因此,参考图片100的POC LSB值等于3。然而,参考图片100在切片标头中通过15的POC LSB值识别。因此,在图4的实例中,视频解码器30可以将参考图片100定位在DPB中,因为参考图片100的POC LSB值不匹配在切片标头中用信号发送的POC LSB值。

如通过图4的实例所说明,为提取能够通过HEVC解码器解码而不改变切片标头信息的独立增强层(例如非基础层92),视频解码器30可以考虑LTRP是否用于所述层中的图片的预测以及重置POC LSB和POC MSB两者的图片是否存在于所述层中。可以考虑这两个参数以确定是否有可能从多层位流提取独立增强层而不必改变所述层中的图片的切片标头。

根据本发明的方面,视频编码器20和视频解码器30可以控制针对独立非基础层执行POC值重置的方式。在一些情况下,所述技术可以允许在切片标头中用信号发送的LTRP的POC值维持与存储到视频解码器的DPB的参考图片的POC值的一致性。在实例中,视频编码器20和视频解码器30可以对多层位流的可独立解码层的图片进行译码(编码或解码)。视频编码器20和视频解码器30还可以仅当所述图片具有所述图片的POC LSB值等于零时才对指示图片的POC LSB值的POC值重置的数据进行译码。在此类情况下,执行POC值重置不需要视频编码器20或视频解码器30来使存储到DPB的图片的POC值递减,因为POC LSB值已经等于零。

下文阐述根据本发明的各种技术的用于管理POC值重置的实例语法和语义。所述语法和语义相对于例如上文提到的MV-HEVC和SHVC的语法和语义来描述。在下文的实例描述、语法表和语义中,使用斜体字来表示对MV-HEVC和SHVC的添加,且使用前面带“去除”的加括号文本(例如[去除:“去除文本”])来表示删除。一般来说,关于“要求”的陈述应理解为形成标准或标准扩展的文本的一部分,而不是出于本发明的技术的目的的要求。在一些情况下,此类“要求”可包含可确定为可适用的位流约束条件且随后由例如视频译码器基于所述确定而加以遵守)。

在第一实例中,可以对视频参数集(VPS)视频可用信息(VUI)中的语法元素base_layer_parameter_set_compatibility_flag[i]的语义做出以下改变:

等于1的base_layer_parameter_set_compatibility_flag[i]指定以下约束条件适用于具有等于layer_id_in_nuh[i]的nuh_layer_id的层。等于0的base_layer_parameter_set_compatibility_flag[i]指定以下约束条件可能或可能不适用于具有等于layer_id_in_nuh[i]的nuh_layer_id的层。当不存在时,base_layer_parameter_set_compatibility_flag[i]的值推断为等于0。

-指代VPS的具有等于layer_id_in_nuh[i]的nuh_layer_id值的每一经译码切片段NAL单元将指代具有等于0的nuh_layer_id值的PPS。

-指代VPS的具有等于layer_id_in_nuh[i]的nuh_layer_id值的每一经译码切片段NAL单元将指代具有等于0的nuh_layer_id值的SPS。

-具有等于layer_id_in_nuh[i]的nuh_layer_id的层的活动SPS的相应的chroma_format_idc、separate_colour_plane_flag、pic_width_in_luma_samples、pic_height_in_luma_samples、bit_depth_luma_minus8以及bit_depth_chroma_minus8的值将与活动VPS中的vps_rep_format_idx[i]-th rep_format()语法结构的相应chroma_format_idc、separate_colour_plane_flag、pic_width_in_luma_samples、pic_height_in_luma_samples、bit_depth_luma_minus8以及bit_depth_chroma_minus8的值相同。

-poc_lsb_not_present_flag[i]的值将等于1。

-当包含指代VPS的具有等于layer_id_in_nuh_[i]的图片picA的存取单元还包含具有等于0的nuh_layer_id和大于0的slice_pic_order_cnt_lsb的图片时。图片picA将是非IDR图片。

当指代具有为num_long_term_sps或num_long_term_pics或这两者的非零值的VPS的具有等于layer_id_in_nuh[i]的nuh_layer_id值的经译码切片段NAL单元且slice_pic-order_cnt_lsb不等于0时,poc_reset_idc将不等于2。

在第二实例中,将语法元素base_layer_parameter_set_compatibility_flag[i]称为base_layer_compatibility_flag[i]。另外,可以对VPS VUI中的语法元素base_layer_parameter_set_compatibility_flag[i](下文指示为base_layer_compatibility_flag[i])的语义做出以下改变:

等于1的base_layer_compatibility_flag[i]指定以下约束条件适用于具有等于layer_id_in_nuh[i]的nuh_layer_id的层。等于0的base_layer_compatibility_flag[i]指定以下约束条件可能或可能不适用于具有等于layer_id_in_nuh[i]的nuh_layer_id的层。当不存在时,base_layer_compatibility_flag[i]的值推断为等于0。

-指代VPS的具有等于layer_id_in_nuh[i]的nuh_layer_id值的每一经译码切片段NAL单元将指代具有等于0的nuh_layer_id值的PPS。

-指代VPS的具有等于layer_id_in_nuh[i]的nuh_layer_id值的每一经译码切片段NAL单元将指代具有等于0的nuh_layer_id值的SPS。

-具有等于layer_id_in_nuh[i]的nuh_layer_id的层的活动SPS的相应的chroma_format_idc、separate_colour_plane_flag、pic_width_in_luma_samples、pic_height_in_luma_samples、bit_depth_luma_minus8以及bit_depth_chroma_minus8的值将与活动VPS中的vps_rep_format_idx[i]-th rep_format()语法结构的相应chroma_format_idc、separate_colour_plane_flag、pic_width_in_luma_samples、pic_height_in_luma_samples、bit_depth_luma_minus8以及bit_depth_chroma_minus8的值相同。

-poc_lsb_not_present_flag[i]的值将等于1。

-对于具有等于layer_id_in_nuh[i]的nuh_layer_id且指代VPS的任何图片picA,以下约束条件适用:

-当slice_pic_order_cnt_lsb大于0时,poc_reset_idc将不等于2。

-当full_poc_reset_flag等于1时,poc_lsb_val将不等于0。

应理解,本文中所包含的语法仅出于实例的目的。也就是说,尽管关于所述base_layer_compatibility旗标描述以上实例,但视频编码器20和视频解码器30可以关于另一不同语法元素或以另一方式应用本文中所描述的约束条件。

在第三实例中,将某一约束条件添加到poc_lsb_not_present_flag[i]的语义,使得当存在包含具有等于0的nuh_layer_id的非IDR图片和具有等于layer_id_in_nuh[i]的nuh_layer_id的IDR图片的至少一个存取单元时,poc_lsb_not_present_flag[i]将不等于1。将某一条件添加到语法元素base_layer_parameter_set_compatibility_flag[i]的信令,使得仅当poc_lsb_not_present_flag[i]的值等于1才存在所述语法元素时。base_layer_parameter_set_compatibility_flag[i]的值在其不存在时被推断为等于0。

另外,具有上文提到的变化的语法元素base_layer_parameter_set_compatibility_flag[i]的信令可以如下表中所阐述进行修改:

在上表中,等于1的poc_lsb_not_present_flag[i]指定slice_pic_order_cnt_lsb语法元素不存在于CVS中的具有等于layer_id_in_nuh[i]的nuh_layer_id的IDR图片的切片标头中。另外,等于0的poc_lsb_not_present_flag[i]指定slice_pic_order_cnt_lsb语法元素可能或可能不存在于CVS中具有等于layer_id_in_nuh[i]的nuh_layer_id的IDR图片的切片标头中。当不存在时,推断poc_lsb_not_present_flag[i]的值等于0。

另外,等于1的base_layer_parameter_set_compatibility_flag[i]指定以下约束条件适用于具有等于layer_id_in_nuh[i]的nuh_layer_id的层。等于0的base_layer_parameter_set_compatibility_flag[i]指定以下约束条件可能或可能不适用于具有等于layer_id_in_nuh[i]的nuh_layer_id的层。一般来说,base_layer_parameter_set_compatibility_flag[i]可以指示增强层是否使用基础层的参数集(例如,PPS和SPS)。

在第四实例中,根据本发明的方面,视频编码器20和视频解码器30可以经配置以针对每一层实施新旗标,所述新旗标指示独立层是否可以通过HEVC兼容的解码器提取并解码而不必更新所述层中的图片的切片标头中的信息。与此旗标相关联的信令可以如以下在表1中阐述:

表1

在以上表1的实例中,等于1的slice_segment_header_update_not_required_for_extraction_flag[i]指定当调用子位流提取程序时,在每一CVS中指代VPS的具有等于layer_id_in_nuh[i]的nuh_layer_id的图片的切片段标头不需要更新,其中具有等于layer_id_in_nuh[i]的nuh_layer_id的层使在输入TargetDecLayerIdList中的最低层。另外,等于0的slice_segment_header_update_not_required_for_extraction_flag[i]指定当调用子位流提取程序时,CVS中的具有等于layer_id_in_nuh[i]的nuh_layer_id的图片的切片标头可能或可能不需要更新,其中具有等于layer_id_in_nuh[i]的nuh_layer_id的层使输入TargetDecLayerIdList中的最低层。当不存在时,slice_segment_header_update_not_required_for_extraction_flag[i]被推断为等于0。

图5是说明多层位流的独立非基础层的POC值重置的另一概念图。在图5的实例中,多层位流包含基础层(层0)110和独立非基础层(层1)112。基础层110包含IDR图片114和图片116。非基础层112包含图片118和IDR图片120,所述图片118与基础层110的图片114在同一存取单元中,且所述IDR图片120与基础层110的图片116在同一存取单元中。

例如视频解码器30等视频解码器可以经配置以使用特定视频译码标准(例如,MV-HEVC或SHVC)来对基础层110和非基础层112进行解码。视频解码器30可以经配置以针对基础层110的图片114执行POC值重置,因为图片114是IDR图片。视频解码器可以对图片114的等于2的POC值重置索引(poc_reset_idc)进行解码。另外,为维持POC值的跨层对准,视频解码器30还可以执行包含于非基础层112中的图片118的POC值重置。因此,在POC值重置之后,基础层110的图片114和非基础层112的图片118都具有等于零的POC LSB值。

如包含于MV-HEVC和SHVC中的语法元素poc_lsb_not_present_flag[i]允许POC LSB信息不包含于属于独立增强层(例如非基础层112)的IDR图片的切片的切片段标头中。所述语法元素可以帮助允许通过HEVC解码器(例如,而非经配置用于MV-HEVC或SHVC的解码器)来从多层位流提取非基础层112并对其进行解码而不必修改所述层中的图片的切片段标头,且仅通过改变NAL单元标头中的nuh_layer_id来实现。例如,如当前在MV-HEVC和SHVC的工作草案中阐述,等于一的poc_lsb_not_present_flag指定POC LSB值不存在于IDR图片的切片标头中。等于零的poc_lsb_not_present_flag指定POC LSB值可能存在或可能不存在于IDR图片的切片标头中。

关于包含于上文所提到的MV-HEVC和SHVC标准中的poc_lsb_not_present_flag[i]的唯一明确限制是仅当非基础层是独立的(例如,不使用层间预测来预测所述层的视频数据)时,才可以针对所述层将poc_lsb_not_present_flag[i]的值设定为1。然而,对于不具有零的POC LSB值的图片,指示POC LSB值不包含于独立非基础层(例如非基础层112)的切片标头中可能产生问题。

例如,如图5的实例中示出,非基础层112可以与设定成等于1的poc_lsb_not_present_flag[i]相关联,使得POC LSB值可以不包含于IDR图片的切片标头中以维持与HEVC解码器的一致性。图片120是IDR图片,针对上述图片执行POC值重置(例如,poc_reset_idc等于1)。因此,图片120的切片的切片标头可以不包含POC LSB值的指示。视频解码器30可以推断(例如,自动地确定)图片120的POC LSB值等于零。

然而,推断图片120的POC LSB值等于零可能使得多层位流不遵守HEVC标准,因为基础层110的图片116(其与非基础层112的图片120在同一存取单元中)的POC LSB值不等于零。确切地说,基础层110的图片116的POC LSB值是4。因此,包含图片116和120的存取单元包含具有不同POC值的图片,对于位流一致性来说这是不被准许的。

根据本发明的方面,视频编码器20和视频解码器30可以仅当所述图片具有所述图片的POC LSB值等于零时才对指示图片的POC LSB值的POC值重置的数据进行译码。例如,视频编码器20和视频解码器30应用约束条件,使得除非所述层中的IDR图片的POC LSB值可以推断为等于零,否则poc_lsb_not_present_flag[i]的值不等于一(例如,指示POC LSB值不包含于切片标头中)。当同一存取单元中的基础层图片的POC LSB值是IDR图片时,或当非基础层图片的POC LSB值的值为零时(例如,在POC LSB值的正常前进之后翻转至等于零),独立非基础层图片的POC LSB值可以推断为等于零。

在图5的实例中,根据本发明的方面,视频编码器20和视频解码器30可以不针对非基础层112而对等于1的poc_lsb_not_present_flag[i]进行译码,因为图片120(其为IDR图片)的POC LSB值不能推断为等于零。相反,图片120的POC LSB值是4。等于0的poc_lsb_not_present_flag可以指示非基础层112不能够例如使用HEVC兼容的视频解码器独立地解码,而不修改一或多个语法元素,例如包含于图片120的切片标头中的语法元素。

以此方式,根据本发明的方面,可以约束poc_lsb_not_present_flag[i]的值,使得当多层位流包含具有基础层图片(其为具有非零POC LSB值的非IDR图片)和增强层图片(对应于VPS中的第i层)(其为IDR图片)时的一或多个存取单元,所述poc_lsb_not_present_flag[i]的值将不等于1。在实例中,以下约束条件添加为MV-HEVC和SHVC的poc_lsb_not_present_flag[i]的语义的部分(例如,作为poc_lsb_not_present_flag[i]的语义的注解),其中添加使用斜体字表示:

位流一致性需要:在指代VPS的所有CVS内,当存在包含具有等于0的nuh_layer_id和大于0的slice_pic_order_cnt_lsb的非IDR图片以及包含具有等于layer_id_in_nuh[i]的nuh_layer_id的IDR图片的至少一个存取单元时,poc_lsb_not_present_flag[i]将不等于1。

在另一实例中,以下约束条件添加为MV-HEVC和SHVC的poc_lsb_not_present_flag[i]的语义的部分(例如,作为poc_lsb_not_present_flag[i]的语义的注解),其中添加使用斜体字表示:

位流一致性需要:在指代VPS的所有CVS内,当存在包含具有等于0的nuh_layer_id的非IDR图片和具有等于layer_id_in_nuh[i]的nuh_layer_id的IDR图片的至少一个存取单元时,poc_lsb_not_present_flag[i]将不等于1。

在另一实例中,以下约束条件添加为MV-HEVC和SHVC的poc_lsb_not_present_flag[i]的语义的部分(例如,作为poc_lsb_not_present_flag[i]的语义的注解),其中添加使用斜体字表示:

位流一致性需要:当poc_lsb_not_present_flag[i]等于1时,在指代VPS的所有CVS内,当存取单元包含具有等于layer_id_in_nuh[i]的nuh_layer_id的IDR图片时,除非对于存取单元中的所有图片poc_reset_idc都等于2,否则对于存取单元中的所有图片,slice_pic_order_cnt_lsb的值必须等于0。

图6是流程图说明根据本发明的技术的用于对多层位流的视频数据进行编码的实例方法。另外,图6的方法包含对当前块进行编码。当前块可包括当前CU或当前CU的一部分。尽管关于视频编码器20(图1和2)来描述,但应理解,其它装置可经配置以执行类似于图6的方法的方法。

在此实例中,视频编码器20可以确定是否重置包含当前块的图片的POC值(130)。当执行POC值重置时,视频编码器20可以确定POC重置类型并重置所述图片的POC值(132)。根据本发明的方面,视频编码器20可以仅当所述图片具有所述图片的POC LSB值等于零时,才对指示所述图片的POC LSB值的POC值重置的数据进行编码。

例如,如上文关于图2所描述,视频编码器20可以对poc_reset_idc语法元素进行编码。根据本发明的方面,视频编码器20可以基于一或多个约束条件来控制对poc_reset_idc值进行编码的方式。例如,视频编码器20可以仅当被译码的图片具有等于零的POC LSB值时才将poc_reset_idc语法元素编码为等于2。也就是说,当被译码的特定层的poc_lsb_not_present_flag等于1(例如,指示所述层是独立非基础层)且指示所述图片的POC LSB值的slice_pic_order_cnt_lsb语法元素大于0时,视频编码器20可以不将poc_reset_idc的值设定为等于2。

当视频编码器20将poc_reset_idc语法元素编码为等于3时,视频编码器20可以进一步对full_poc_reset_flag和poc_lsb_val语法元素进行编码。根据本发明的方面,当被编码的层的poc_lsb_not_present_flag(其可以指示被编码的层是独立非基础层)等于1且full_poc_reset_flag等于1时,视频编码器20可以将poc_lsb_val的值设定为等于0。以此方式,视频编码器20可以确保仅针对具有等于零的POC LSB值的图片执行POC值重置,这可以允许恰当地识别出参考图片,如本文中所描述。

视频编码器20接着可形成参考图片列表(134)。视频编码器20进一步用信号发送包含于参考图片列表中的参考图片的POC值(136)。例如,视频编码器20可对参数集(例如SPS或PPS)中和/或切片的切片标头中的参考图片的POC值(或POC值的部分,例如POC LSB值)进行编码。一些参考图片(例如长期参考图片)可在参数集中用信号发送,而其它参考图片(例如短期参考图片)可在切片标头中用信号发送。

应理解,形成参考图片列表和用信号发送哪些图片包含于参考图片列表中的步骤可经由若干不同编码遍次执行多次,以便确定为例如当前切片块产生最佳速率失真特性的参考图片集。也就是说,视频编码器20可基于当前切片中的所有块的特性而非仅基于单个块的个别特性,来选择包含于参考图片列表中的参考图片集。

视频编码器20接着可预测当前切片的当前块(138)。例如,视频编码器20可计算当前块的一或多个预测单元(PU)。更确切地说,运动估计单元42可例如基于SAD、SSD、MAD、MSD或其它误差计算度量来在参考图片列表的参考图片当中执行针对当前块的运动搜索,以识别用作参考块的匹配块。运动估计单元42可基于运动搜索产生当前块的运动向量。视频编码器20接着可对所述块的运动信息进行编码(140),所述运动信息可包含运动向量的运动向量差值、参考图片列表识别符和参考索引,这些信息在一起识别所述参考块。

视频编码器20接着可计算当前块的残余块,例如以产生变换单元(TU)(142)。为了计算残余块,视频编码器20可计算原始的未经译码的块与当前块的经预测块之间的差值。视频编码器20可接着变换且量化残余块的系数(144)。接着,视频编码器20可扫描残余块的经量化变换系数(146)。在扫描期间,或在扫描以后,视频编码器20可对所述系数进行熵编码(148)。例如,视频编码器20可使用CAVLC或CABAC对系数进行编码。视频编码器20接着可输出块的经熵译码数据(150)。

以此方式,图6的方法表示一种方法的实例,所述方法包含:通过视频编码器对多层位流的可独立解码层的图片的至少一部分进行编码;且仅当所述图片具有所述图片的POC LSB值等于零时,才通过视频译码器对指示所述图片的POC最低有效位(LSB)值的图片次序计数(POC)值重置的数据进行编码。

图7是说明根据本发明的技术的用于对多层位流的视频数据进行解码的实例方法的流程图。另外,图7的方法包含对当前块进行解码。当前块可包括当前CU或当前CU的一部分。尽管关于视频解码器30(图1和3)进行描述,但应理解,其它装置可经配置以执行与图7的方法类似的方法。

在此实例中,视频解码器30可以确定是否重置包含当前块的图片的POC值(160)。当执行POC值重置时,视频解码器30可以对指示POC重置的数据进行解码(162)。在一些情况下,视频解码器30可以对指示POC重置类型的数据进行解码。根据本发明的方面,视频解码器30可以仅当所述图片具有所述图片的POC LSB值等于零时,才对指示所述图片的POC LSB值的POC值重置的数据进行编码。

例如,如上文关于图3所描述,视频解码器30可以对poc_reset_idc语法元素进行解码。根据本发明的方面,视频解码器30可以接收poc_reset_idc并基于一或多个约束条件对其进行解码。例如,视频解码器30可以仅当被译码的图片具有等于零的POC LSB值时,才对具有2的值的poc_reset_idc语法元素进行解码。也就是说,当被译码的特定层的poc_lsb_not_present_flag等于1(例如,指示所述层是独立非基础层)且指示图片的POC LSB值的slice_pic_order_cnt_lsb语法元素大于0时,视频解码器30可以不对等于2的poc_reset_idc的值进行解码。

当视频解码器30对等于3的poc_reset_idc语法元素进行解码时,视频解码器30可以进一步对full_poc_reset_flag和poc_lsb_val语法元素进行解码。根据本发明的方面,当被编码的层的poc_lsb_not_present_flag(其可以指示被编码的层是独立非基础层)等于1且full_poc_reset_flag等于1时,视频解码器30可以对等于0的poc_lsb_val的值进行解码。以此方式,视频解码器30可以确保仅针对具有等于零的POC LSB值的图片执行POC值重置,这可以允许恰当地识别出参考图片,如本文中所描述。

视频解码器30接着重置所述图片的POC值,并对例如来自切片段标头和/或参数集(例如PPS或SPS)的参考图片的POC值进行解码(164)。视频解码器30接着形成参考图片列表(166)。

接下来,视频解码器30对当前块的运动信息进行解码(168)。所述运动信息可包含(例如)参考图片列表识别符和指向参考图片列表中的参考索引。视频解码器30接着例如使用帧间预测模式计算当前块的经预测块来预测当前块(170)。更确切地说,视频解码器30使用参考图片列表识别符来识别将使用哪一个参考图片列表,且使用参考索引来识别参考图片列表中的参考索引。视频解码器30接着对当前块的运动向量进行解码,且识别所识别参考图片中的参考块。

视频解码器30还可接收当前块的经熵译码数据,例如对应于当前块的残余块的系数的经熵译码数据(172)。视频解码器30可对经熵译码数据进行熵解码以再现残余块的系数(174)。视频解码器30接着可反扫描经再现系数(176)以产生经量化变换系数块。也就是说,使用反扫描,视频解码器30将一维向量转换为二维矩阵。视频解码器30接着可反量化且反变换所述系数以产生残余块(178)。视频解码器30可最终通过组合经预测块与残余块来对当前块进行解码(180)。

以此方式,图7的方法表示一种方法的实例,所述方法包含:通过视频解码器对多层位流的可独立解码层的图片的至少一部分进行解码;且仅当所述图片具有所述图片的POC LSB值等于零时,才通过视频解码器对指示所述图片的POC最低有效位(LSB)值的图片次序计数(POC)值重置的数据进行解码。

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

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

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

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

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

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

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1