CN113273202A - 基于子图像的随机接入 - Google Patents

基于子图像的随机接入 Download PDF

Info

Publication number
CN113273202A
CN113273202A CN202080008008.6A CN202080008008A CN113273202A CN 113273202 A CN113273202 A CN 113273202A CN 202080008008 A CN202080008008 A CN 202080008008A CN 113273202 A CN113273202 A CN 113273202A
Authority
CN
China
Prior art keywords
image
sub
picture
irap
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080008008.6A
Other languages
English (en)
Inventor
弗努·亨德里
王业奎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN113273202A publication Critical patent/CN113273202A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Landscapes

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

Abstract

提供了一种由视频解码器实现的对经译码的视频码流进行解码的方法。所述方法包括:所述视频解码器的接收器接收包括第一子图像和第二子图像的混合帧内随机接入点(intrarandom access point,IRAP)图像,其中,所述第一子图像为IRAP图像,所述第二子图像为非IRAP子图像;所述接收器接收所述混合IRAP图像的参考图像列表(reference picturelist,RPL);所述视频解码器的处理器使用所述RPL解码所述第二子图像;所述处理器根据经解码的所述第二子图像生成图像。还提供了相应的编码方法。

Description

基于子图像的随机接入
相关申请案交叉申请
本专利申请要求FNU Hendry等人于2019年1月4日提交的申请号为62/788,634、发明名称为“基于子图像的随机接入(Sub-picture Based Random Access)”的美国临时专利申请的权益,其全部内容通过引用的方式并入本文中。
技术领域
本发明大体上描述了用于支持视频译码中基于子图像的随机接入技术。更具体地,本发明描述了几种技术,用于支持图像包括被标识为帧内随机接入点的一个或多个区域以及同时被标识为非帧内随机接入点的剩余区域。
背景技术
即使在视频较短的情况下也需要对大量视频数据进行描述,当数据要在带宽容量有限的通信网络中发送或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压缩,然后在现代电信网络中发送。由于内存资源可能有限,当在存储设备上存储视频时,视频的大小也可能成为问题。视频压缩设备通常在源侧使用软件和/或硬件,以发送或存储之前对视频数据进行编码,从而减少用来表示数字视频图像所需的数据量。然后,压缩的数据在目的地侧由解码视频数据的视频解压缩设备接收。在有限的网络资源以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术能够在几乎不影响图像质量的情况下提高压缩比。
发明内容
第一方面涉及一种由视频解码器实现的对经译码的视频码流进行解码的方法。所述方法包括:所述视频解码器的接收器接收包括第一子图像和第二子图像的混合帧内随机接入点(intra random access point,IRAP)图像,其中,所述第一子图像为IRAP图像,所述第二子图像为非IRAP子图像;所述接收器接收所述混合IRAP图像的参考图像列表(reference picture list,RPL);所述视频解码器的处理器使用所述RPL解码所述第二子图像;所述处理器根据经解码的所述第二子图像生成图像。
虽然传统的编码技术不允许IRAP图像引用和使用RPL,但本文公开的技术允许IRAP图像(特别是混合IRAP图像)引用和使用RPL。因此,即使混合IRAP图像包括IRAP子图像,也允许编解码器引用和使用RPL对非IRAP子图像进行译码。这特别适用于VR译码应用。因此,视频译码中的编码器/解码器(又称为编解码器,codec)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。
根据第一方面,在所述方法的第一种实现方式中,所述混合IRAP图像在包括第一子码流和第二子码流的划分码流中接收。
根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第二种实现方式中,所述第一子图像设置在第一子码流中,所述第二子图像设置在第二子码流中。
根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第三种实现方式中,所述IRAP图像为即时解码刷新(instantaneous decoder refresh,IDR)图像。
根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第四种实现方式中,所述第一子图像为包括在第一网络抽象层(network abstraction layer,NAL)单元内的IRAP图像,所述第二子图像为包括在第二NAL单元内的非IRAP子图像。
根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第五种实现方式中,所述方法还包括在所述码流中接收标志,所述标志表示所述码流是否包括任何混合IRAP图像。
根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第六种实现方式中,所述标志在所述码流的序列参数集(sequence parameter set,SPS)中。
根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第七种实现方式中,所述标志指定为sps_mixed_tile_groups_in_pic_flag。
第二方面涉及一种由视频编码器实现的对视频码流进行编码的方法。所述方法包括:所述视频编码器的处理器对包括第一子图像和第二子图像的混合帧内随机接入点(intra random access point,IRAP)图像进行编码,其中,所述第一子图像为IRAP图像,所述第二子图像为非IRAP子图像;处理器对所述混合IRAP图像的参考图像列表(referencepicture list,RPL)进行编码;所述处理器生成包括所述混合IRAP图像和所述混合IRAP图像对应的RPL的码流;在所述视频编码器的存储器中存储用于发送到视频解码器的所述码流。
虽然传统的编码技术不允许IRAP图像引用和使用RPL,但本文公开的技术允许IRAP图像(特别是混合IRAP图像)引用和使用RPL。因此,即使混合IRAP图像包括IRAP子图像,也允许编解码器引用和使用RPL对非IRAP子图像进行译码。这特别适用于VR译码应用。因此,视频译码中的编码器/解码器(又称为编解码器,codec)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。
根据所述第二方面,在所述方法的第一种实现方式中,所述混合IRAP图像被编码到包括第一子码流和第二子码流的划分码流中。
根据所述第二方面或所述第二方面的任一上述实现方式,在所述方法的第二种实现方式中,所述第一子图像被编码到第一子码流中,所述第二子图像被编码到第二子码流中。
根据所述第二方面或所述第二方面的任一上述实现方式,在所述方法的第三种实现方式中,所述IRAP图像为即时解码刷新(instantaneous decoder refresh,IDR)图像。
根据所述第二方面或所述第二方面的任一上述实现方式,在所述方法的第四种实现方式中,所述第一子图像为包括在第一网络抽象层(network abstraction layer,NAL)单元内的IRAP图像,所述第二子图像为包括在第二NAL单元内的非IRAP子图像。
根据所述第二方面或所述第二方面的任一上述实现方式,在所述方法的第五种实现方式中,所述方法还包括对所述码流中的标志进行编码,所述标志表示所述码流是否包括任何混合IRAP图像。
根据所述第二方面或所述第二方面的任一上述实现方式,在所述方法的第六种实现方式中,所述标志在所述码流的序列参数集(sequence parameter set,SPS)中。
根据所述第二方面或所述第二方面的任一上述实现方式,在所述方法的第七种实现方式中,所述标志指定为sps_mixed_tile_groups_in_pic_flag。
第三方面涉及一种解码设备。所述解码设备包括:接收器,用于接收经译码的视频码流,所述经译码的视频码流包括:包括第一子图像和第二子图像的混合帧内随机接入点(intra random access point,IRAP)图像,其中,所述第一子图像为IRAP图像,所述第二子图像为非IRAP子图像,以及所述混合IRAP图像的参考图像列表(reference picture list,RPL);耦合到所述接收器的存储器,所述存储器存储指令;耦合到所述存储器的处理器,所述处理器用于执行所述指令以使所述解码设备执行以下操作:使用所述RPL解码所述第二子图像;根据经解码的所述第二子图像生成图像。
虽然传统的编码技术不允许IRAP图像引用和使用RPL,但本文公开的解码设备允许IRAP图像(特别是混合IRAP图像)引用和使用RPL。因此,即使混合IRAP图像包括IRAP子图像,也允许编解码器引用和使用RPL对非IRAP子图像进行译码。这特别适用于VR译码应用。因此,视频译码中的编码器/解码器(又称为编解码器,codec)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。
根据所述第四方面,在所述解码设备的第一种实现方式中,所解码设备还包括:显示器,用于显示所述图像。
根据所述第三方面或所述第三方面的任一上述实现方式,在所述解码设备的第二种实现方式中,所述接收器用于在包括第一子码流和第二子码流的划分码流中接收所述混合IRAP图像。
根据所述第三方面或所述第三方面的任一上述实现方式,在所述解码设备的第三种实现方式中,所述第一子图像设置在第一子码流中,所述第二子图像设置在第二子码流中。
根据所述第三方面或所述第三方面的任一上述实现方式,在所述解码设备的第四种实现方式中,所述IRAP图像为即时解码刷新(instantaneous decoder refresh,IDR)图像。
第四方面涉及一种编码设备。所述编码设备包括:存储器,所述存储器包括指令;耦合到所述存储器的处理器,所述处理器用于执行所述指令以使所述编码设备执行以下操作:对包括第一子图像和第二子图像的混合帧内随机接入点(intra random accesspoint,IRAP)图像进行编码,其中,所述第一子图像为IRAP图像,所述第二子图像为非IRAP子图像;对所述混合IRAP图像的参考图像列表(reference picture list,RPL)进行编码;生成包括所述混合IRAP图像和所述混合IRAP图像对应的RPL的码流;将所述码流存储在所述存储器中,以向视频解码器发送所述码流。
虽然传统的编码技术不允许IRAP图像引用和使用RPL,但本文公开的编码设备允许IRAP图像(特别是混合IRAP图像)引用和使用RPL。因此,即使混合IRAP图像包括IRAP子图像,也允许编解码器引用和使用RPL对非IRAP子图像进行译码。这特别适用于VR译码应用。因此,视频译码中的编码器/解码器(又称为编解码器,codec)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。
根据所述第四方面,在所述编码设备的第一种实现方式中,所述编码设备还包括耦合到所述处理器的发送器,所述发送器用于向所述视频解码器发送所述码流。
根据所述第四方面,在所述编码设备的第二种实现方式中,所述混合IRAP图像被编码到包括第一子码流和第二子码流的划分码流中。
根据所述第四方面,在所述编码设备的第三种实现方式中,所述第一子图像被编码到第一子码流中,所述第二子图像被编码到第二子码流中。
根据所述第四方面,在所述编码设备的第四种实现方式中,所述IRAP图像为即时解码刷新(instantaneous decoder refresh,IDR)图像。
第五方面涉及一种译码装置。所述译码装置包括:接收器,用于接收图像进行编码或接收码流进行解码;耦合到所述接收器的发送器,其中,所述发送器用于将所述码流发送到解码器或将经解码的图像发送到显示器;耦合到所述接收器和所述发送器中的至少一个的存储器,其中,所述存储器用于存储指令;耦合到所述存储器的处理器,其中,所述处理器用于执行存储在所述存储器中的所述指令,以执行本文描述的方法。
虽然传统的编码技术不允许IRAP图像引用和使用RPL,但本文公开的译码装置允许IRAP图像(特别是混合IRAP图像)引用和使用RPL。因此,即使混合IRAP图像包括IRAP子图像,也允许编解码器引用和使用RPL对非IRAP子图像进行译码。这特别适用于VR译码应用。因此,视频译码中的编码器/解码器(又称为编解码器,codec)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。
第六方面涉及一种系统。所述系统包括编码器;与所述编码器通信的解码器,其中,所述编码器或解码器包括本文公开的解码设备、编码设备或译码装置。
虽然传统的编码技术不允许IRAP图像引用和使用RPL,但本文公开的系统允许IRAP图像(特别是混合IRAP图像)引用和使用RPL。因此,即使混合IRAP图像包括IRAP子图像,也允许编解码器引用和使用RPL对非IRAP子图像进行译码。这特别适用于VR译码应用。因此,视频译码中的编码器/解码器(又称为编解码器,codec)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。
第七方面涉及一种译码模块。所述译码模块包括:接收模块,用于接收码流以对所述码流进行解码;耦合到所述接收模块的发送模块,所述发送模块用于将经解码的图像发送到显示模块;耦合到所述接收模块或所述发送模块中的至少一个的存储模块,所述存储模块用于存储指令;耦合到所述存储模块的处理模块,所述处理模块用于执行存储在所述存储模块中的所述指令,以执行本文所公开的方法。
虽然传统的编码技术不允许IRAP图像引用和使用RPL,但本文公开的译码模块允许IRAP图像(特别是混合IRAP图像)引用和使用RPL。因此,即使混合IRAP图像包括IRAP子图像,也允许编解码器引用和使用RPL对非IRAP子图像进行译码。这特别适用于VR译码应用。因此,视频译码中的编码器/解码器(又称为编解码器,codec)相对于现有的编解码器有所改进。实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。
第八方面涉及一种解码设备。所述解码设备包括:接收器,用于接收经译码的视频码流;耦合到所述接收器的处理器,所述处理器用于:解析所述经译码的视频码流中的标志,其中,所述标志的值表示所述经译码的视频码流中的图像的混合网络抽象层(networkabstraction layer,NAL)单元类型;根据所述标志的值将所述图像解码为非帧内随机接入点(intra random access point,IRAP)图像;根据经解码的所述图像生成图像。
本文公开的解码设备允许解码设备识别所述经译码的视频码流中的哪些图像包括混合网络抽象层(network abstraction layer,NAL)单元类型。即,所述解码设备用于解析经译码的视频码流中的标志,以识别图像中包括混合NAL单元类型。即使图像为IRAP NAL单元类型,也根据该标志的值将图像解码为非IRAP图像。
根据所述第八方面,在所述编码设备的第一种实现方式中,当所述图像为IRAPNAL单元类型时,将所述图像解码为s非IRAP图像。
根据所述第八方面,在所述编码设备的第二种实现方式中,所述标志的值为1。
实际上,改进的视频译码过程在发送、接收和/或观看视频时提供了更好的用户体验。
附图说明
为了更透彻地理解本发明的,现参阅结合附图和具体实现方式而进行的以下简要说明,其中相同附图标记表示相同部分。
图1为可使用双边预测技术的示例性译码系统的框图。
图2为可实现双边预测技术的示例性视频编码器的框图。
图3为可实现双向预测技术的示例性视频解码器的框图。
图4为具有当前图像的参考图像集(reference picture set,RPS)的示意图,所述当前图像具有RPS的所有子集中的表项。
图5为适用于VR译码应用的图像的一个实施例的示意图。
图6为图5中的图像对应的视频码流的一个实施例的示意图。
图7为对经译码的视频码流进行解码的方法的实施例。
图8为对视频码流进行编码的方法的实施例。
图9为视频译码设备的示意图。
图10为译码模块的一个实施例的示意图。
具体实施方式
以下是本文中使用的各种缩略语:译码视频序列(coded video sequence,CVS)、解码图像缓冲器(decoded picture buffer,DPB)、即时解码刷新(instantaneousdecoding refresh,IDR)、帧内随机接入点(intra random access point,IRAP)、最低有效位(least significant bit,LSB)、最高有效位(most significant bit,MSB)、网络抽象层(network abstraction layer,NAL)、图像顺序编号(picture order count,POC)、原始字节序列载荷(raw byte sequence payload,RBSP)、序列参数集(sequence parameter set,SPS)、工作草案(working draft,WD)。
图1为可使用本文所描述的视频编码技术的示例性译码系统10的框图。如图1所示,译码系统10包括源设备12,其中,所述源设备12提供稍后由目的地设备14解码的经编码的视频数据。具体地,源设备12可以通过计算机可读介质16向目的地设备14提供视频数据。源设备12和目的地设备14可以包括以下多种设备中的任一种,包括台式计算机、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、“智能”手机和“智能”平板等电话手持机、电视机、摄像机、显示设备、数字媒体播放器、视频游戏机、视频流设备等。在一些情况下,源设备12和目的地设备14可配备用于无线通信的组件。
目的地设备14可以通过计算机可读介质16接收待解码的经编码的视频数据。计算机可读介质16可以包括能够将经编码的视频数据从源设备12移动到目的地设备14的任何类型的介质或设备。在一个示例中,计算机可读介质16可以包括通信介质,以使源设备12能够将经编码的视频数据直接实时地发送到目的地设备14。经编码的视频数据可以根据无线通信协议等通信标准进行调制,并发送到目的地设备14。通信介质可包括任何无线或有线通信介质,例如射频(radio frequency,RF)频谱或一条或多条物理传输线。所述通讯介质可构成分组网络(如局域网、广域网、或因特网等全球网络)的一部分。所述通信介质可以包括路由器、交换机、基站或任何其它可用于从源设备12到目的地设备14进行通信的设备。
在一些示例中,可以将经编码的数据从输出接口22输出到存储设备。类似地,可以通过输入接口从存储设备访问经编码的数据。所述存储设备可以包括各种分布式或本地访问数据存储介质中的任一种,如硬盘驱动器、蓝光光盘、数字视频磁盘(digital videodisk,DVD)、只读光盘存储器(Compact Disc Read-Only Memory,CD-ROM)、闪存、易失性或非易失性存储器,或用于存储经编码的视频数据的任何其它合适的数字存储介质。在另一示例中,存储设备可以对应于文件服务器或可以存储由源设备12生成的经编码的视频的另一中间存储设备。目的地设备14可以通过流式传输或下载从存储设备中访问所存储的视频数据。所述文件服务器可以是能够存储经编码的视频数据并将该经编码的视频数据发送到目的地设备14的任何类型的服务器。示例性文件服务器包括万维网服务器(例如,用于网站)、文件传输协议(file transfer protocol,FTP)服务器、网络附属存储(networkattached storage,NAS)设备或本地磁盘驱动器。目的地设备14可以通过任何标准数据连接(包括因特网连接)访问经编码的视频数据。所述标准数据连接可以包括无线信道(例如,Wi-Fi连接)、有线连接(例如,数字用户线(digital subscriber line,DSL)、电缆调制解调器等)或两者适于访问存储在文件服务器上的经编码的视频数据的组合。来自存储设备的经编码的视频数据的发送可以是流式传输、下载传输或其组合。
本发明的技术不一定限于无线应用或设置。这些技术可以应用于视频译码以支持各种多媒体应用中的任一种,如空中电视广播、有线电视传输、卫星电视传输、互联网流视频传输(如HTTP动态自适应流媒体(dynamic adaptive streaming over HTTP,DASH)、在数据存储介质上编码的数字视频、对存储在数据存储介质上的数字视频进行解码)或其它应用。在一些示例中,译码系统10可用于支持单向或双向视频传输,以支持视频流式传输、视频播放、视频广播和/或视频电话等应用。
在图1的示例中,源设备12包括视频源18、视频编码器20和输出接口22。目的地设备14包括输入接口28、视频解码器30和显示设备32。根据本发明,源设备12的视频编码器20和/或目的地设备14的视频解码器30可用于应用所述技术进行视频译码。在其它示例中,源设备和目的地设备可以包括其它组件或装置。例如,源设备12可以从外部视频源(如外部摄像机)接收视频数据。同样地,目的地设备14可以与外部显示设备连接,而不是包括集成显示设备。
图1所示的译码系统10仅是一个示例。视频编码技术可以由任何数字视频编码和/或解码设备执行。尽管本发明的技术通常由视频译码设备执行,但这些技术也可以由视频编码器/解码器(通常称为“编解码器codec”)执行。此外,本发明的技术还可以由视频预处理器执行。视频编码器和/或解码器可以是图形处理器(graphics processing unit,GPU)或类似设备。
源设备12和目的地设备14仅是此类译码设备的示例,其中,源设备12生成经编码的视频数据以发送到目的地设备14。在一些示例中,源设备12和目的地设备14可以基本上对称地操作,使得源设备12和目的地设备14都包括视频编码和解码组件。因此,编码系统10可以支持视频设备12、14之间的单向或双向视频传输,例如用于视频流式传输、视频播放、视频广播或视频电话。
源设备12的视频源18可以包括视频捕获设备(如视频摄像机)、包括之前捕获的视频的视频存档,和/或从视频内容提供方接收视频的视频馈送接口。在另一替代方案中,视频源18可以生成基于计算机图形的数据作为源视频,或直播视频、存档视频和计算机生成视频的组合。
在一些情况下,当视频源18是视频摄像机时,源设备12和目的地设备14可以形成摄像机手机或视频手机。然而,如上所述,本发明中描述的技术通常可用于视频译码,也可用于无线和/或有线应用。在每种情况下,可以由视频编码器20对所捕获、预捕获或计算机生成的视频进行编码。然后,可以通过输出接口22将经编码的视频信息输出到计算机可读介质16上。
计算机可读介质16可以包括瞬态介质,如无线广播或有线网络传输,或计算机可读介质16可包括非瞬时性存储介质,如硬盘、闪存驱动器、光盘、数字视频光盘、蓝光光盘,或其它计算机可读介质。在一些示例中,网络服务器(未示出)可以从源设备12接收经编码的视频数据,并且例如通过网络传输向目的地设备14提供经编码的视频数据。类似地,介质生产设施(如光盘冲压设施)的计算设备可以从源设备12接收经编码的视频数据,并产生包括经编码的视频数据的光盘。因此,在各种示例中,计算机可读介质16可理解为包括一个或多个各种形式的计算机可读介质。
目的地设备14的输入接口28从计算机可读介质16接收信息。计算机可读介质16的信息可以包括由视频编码器20定义的语法信息,其中,所述语法信息也由视频解码器30使用,所述语法信息包括描述块和其它编码单元(例如,图像组(group of picture,GOP))的特征和/或处理的语法元素。显示设备32向用户显示经解码的视频数据,并且可以包括各种显示设备中的任一种,如阴极射线管(cathode ray tube,CRT)、液晶显示器(liquidcrystal display,LCD)、等离子体显示器、有机发光二极管(organic light emittingdiode,OLED)显示器或其它类型的显示设备。
视频编码器20和视频解码器30可以根据视频编码标准,如目前正在开发的高效视频编码(High Efficiency Video Coding,HEVC)标准进行操作,并且可符合HEVC测试模型(HEVC Test Model,HM)。或者,视频编码器20和视频解码器30可以根据其它专有或行业标准进行操作,如ITU-T和MPEG目前正在开发的国际电信联盟电信标准化部门(International Telecommunications Union Telecommunication StandardizationSector,ITU-T)H.264标准,或者称为运动图像专家组(Motion Picture Expert Group,MPEG)-4,第10部分、高级视频编码(Advanced Video Coding,AVC)、H.265/HEVC或这些标准的扩展。然而,本发明的技术不限于任何特定的编码标准。视频编码标准的其它示例包括MPEG-2和ITU-TH.263。尽管在图1中未示出,但是在一些方面中,视频编码器20和视频解码器30可以各自与音频编码器和音频解码器集成,并且可以包括合适的复用器-解复用器(multiplexer-demultiplexer,MUX-DEMUX)单元或其它硬件和软件,以对通用数据流或单独数据流中的音频和视频都进行编码处理。如果适用,MUX-DEMUX单元可以符合ITU H.223复用器协议,或用户数据报协议(user datagram protocol,UDP)等其它协议。
视频编码器20和视频解码器30可以各自实现为各种合适的编码器电路中的任一种,如一个或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当所述技术部分地以软件形式实现时,设备可将软件的指令存储在合适的非瞬时性计算机可读介质中,并且使用一个或多个处理器以硬件形式执行所述指令,以执行本发明的技术。视频编码器20和视频解码器30各自可包括在一个或多个编码器或解码器中,其中任一者可作为组合式编码器/解码器(编解码器)的一部分集成在相应设备中。包括视频编码器20和/或视频解码器30的设备可以包括集成电路、微处理器和/或蜂窝电话等无线通信设备。
图2为可实现视频编码技术的示例性视频编码器20的框图。视频编码器20可以执行视频条带(slice)内的视频块的帧内和帧间编码。帧内编码依赖于空间预测来减少或去除给定视频帧或图像内视频中的空间冗余。帧间编码依赖于时间预测来减少或去除视频序列的相邻帧或图像内视频中的时间冗余。帧内模式(I模式)可以指几种基于空间的编码模式中的任意一种。帧间模式,如单向预测(P模式)或双向预测(B模式)可以指几种基于时间的编码模式中的任意一种。
如图2所示,视频编码器20接收待编码的视频帧内的当前视频块。在图2的示例中,视频编码器20包括模式选择单元40、参考帧存储器64、加法器50、变换处理单元52、量化单元54以及熵编码单元56。模式选择单元40又包括运动补偿单元44、运动估计单元42、帧内预测单元46和分割单元48。为了重建视频块,视频编码器20还包括反量化单元58、逆变换单元60和加法器62。也可以包括去块效应滤波器(图2中未示出),以对块边界进行滤波,从而从重建视频中去除块假影。如果需要,去块效应滤波器通常将对加法器62的输出进行滤波。除去块效应滤波器外,还可以使用其它滤波器(在环路或后环路中)。此类滤波器不是为了简洁性而示出,但是如果需要,可以对加法器50的输出进行滤波(作为环内滤波器)。
在编码过程中,视频编码器20接收待译码的视频帧或条带。帧或条带可以划分为多个视频块。运动估计单元42和运动补偿单元44相对于一个或多个参考帧中的一个或多个块对所接收的视频块执行帧间预测译码以提供时间预测。帧内预测单元46还可以相对于与待编码块位于同一帧或条带内的一个或多个相邻块对所接收的视频块进行帧内预测译码以提供空间预测。视频编码器20可以执行多个编码通道,例如,为每个视频数据块选择合适的编码模式。
此外,分割单元48可以根据在之前编码通道中对之前分割方案的评估将视频数据块分割成子块。例如,分割单元48可初始地将帧或条带分割成最大编码单元(largestcoding unit,LCU),并且根据速率失真分析(例如,速率失真优化)将每个LCU分割成子编码单元(子CU)。模式选择单元40还可以产生表示将LCU分割成子CU的四叉树数据结构。四叉树的叶节点CU可以包括一个或多个预测单元(prediction unit,PU)和一个或多个变换单元(transform unit,TU)。
本发明使用术语“块”来指代在HEVC上下文中CU、PU或TU中的任一个,或其它标准上下文中的类似数据结构(例如,H.264/AVC中的宏块及其子块)。CU包括译码节点、译码节点关联的PU和TU。CU的大小与译码节点的大小相对应,呈正方形。CU的大小范围可以为8×8个像素到最大值为64×64个像素或更大的树块大小。每个CU可以包括一个或多个PU和一个或多个TU。例如,与CU关联的语法数据可以描述将CU分割为一个或多个PU。对CU进行跳过模式或直接模式编码、进行帧内预测模式编码或进行帧间预测(inter-predictio/interprediction)模式编码,分割模式可能有所不同。可以将PU分割成非正方形。例如,与CU关联的语法数据可以描述根据四叉树将CU分割为一个或多个PU。TU可以是正方形或非正方形(例如,矩形)。
模式选择单元40可以根据错误结果等选择帧内或帧间编码模式中的一种,将所得到的帧内或帧间编码块提供给加法器50以生成残差块数据,并提供给加法器62来重建编码块以用作参考帧。模式选择单元40还将语法元素,如运动矢量、帧内模式指示符、分割信息和其它此类语法信息提供给熵编码单元56。
运动估计单元42和运动补偿单元44可以高度集成,但出于概念目的,单独说明。由运动估计单元42执行的运动估计是生成运动矢量的过程,其中,所述运动矢量用于估计视频块的运动。例如,运动向量可以表示当前视频帧或图像中的视频块的PU相对于参考帧(或其它编码单元)内的预测块的位移,所述参考帧(或其它编码单元)中的预测块是相对于在当前帧(或其它编码单元)中译码的当前块而言的。预测块是在像素差方面与待编码块高度匹配的块,其中,所述像素差可以通过绝对差和(sum of absolute difference,SAD)、平方差和(sum of square difference,SSD)或其它差值度量进行确定。在一些示例中,视频编码器20可以计算存储在参考帧存储器64中的参考图像的子整数像素位置的值。例如,视频编码器20可以对参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值进行插值。因此,运动估计单元42可以执行相对于整像素位置和分数像素位置的运动搜索,并输出具有分数像素精度的运动矢量。
运动估计单元42通过比较PU的位置与参考图像的预测块的位置来计算帧间编码条带中视频块的PU的运动矢量。可从第一参考图像列表(列表0)或第二参考图像列表(列表1)中选择参考每个列表标识存储在参考帧存储器64中的一个或多个参考图像。运动估计单元42将计算后的运动矢量发送给熵编码单元56和运动补偿单元44。
由运动补偿单元44执行的运动补偿可以涉及根据运动估计单元42确定的运动矢量获取或生成预测块。另外,在一些示例中,运动估计单元42和运动补偿单元44可以在功能上集成。一旦接收到当前视频块的PU的运动矢量,运动补偿单元44可以定位在其中一个参考图像列表中运动矢量指向的预测块。加法器50通过从所译码的当前视频块的像素值中减去预测块的像素值,得到像素差值来形成残差视频块,如下文所述。通常,运动估计单元42相对于亮度分量执行运动估计,运动补偿单元44将根据亮度分量计算的运动矢量用于色度分量和亮度分量。模式选择单元40还可以生成与视频块和视频条带相关的语法元素,以供视频解码器30用于对视频条带的视频块进行解码。
帧内预测单元46可以对当前块进行帧内预测,作为由运动估计单元42和运动补偿单元44执行的帧间预测的替代方案,如上文所述。具体地,帧内预测单元46可以确定帧内预测模式,用于对当前块进行编码。在一些示例中,帧内预测单元46可以在单独的编码通道中等使用各种帧内预测模式对当前块进行编码,而帧内预测单元46(或者在一些示例中,模式选择单元40)可以从测试模式中选择合适的帧内预测模式进行使用。
例如,帧内预测单元46可以使用速率失真分析对各种测试的帧内预测模式计算速率失真值,并在测试的模式中选择具有最佳速率失真特性的帧内预测模式。速率失真分析通常确定编码块与经编码以产生编码块的原始未编码块之间的失真(或误差)量,以及用于产生编码块的码率(即,比特数)。帧内预测单元46可以根据各种编码块的失真和速率计算比率,以确定哪种帧内预测模式体现出最佳的块速率失真值。
此外,帧内预测单元46可以用于使用深度建模模式(depth modeling mode,DMM)对深度图的深度块进行译码。模式选择单元40可以确定可用的DMM模式产生的译码结果是否比帧内预测模式和其它DMM模式(例如,使用速率失真优化(rate-distortionoptimization,RDO))产生的译码结果更好。与深度图对应的纹理图像的数据可以存储在参考帧存储器64中。运动估计单元42和运动补偿单元44还可以用于对深度图的深度块进行帧间预测。
在为块选择帧内预测模式之后(例如,传统的帧内预测模式或DMM模式之一),帧内预测单元46可以将指示为块选择的帧内预测模式的信息提供给熵编码单元56。熵编码单元56可以对指示所选择的帧内预测模式的信息进行编码。视频编码器20可以在所发送的码流中包括配置数据,其中,所述配置数据包括多个帧内预测模式索引表和多个经修改的帧内预测模式索引表(也称为码字映射表)、各种块的编码上下文的定义,以及最可能的帧内预测模式、帧内预测模式索引表和经修改的帧内预测模式索引表的指示以用于每个上下文。
视频编码器20通过从所译码的原始视频块中减去模式选择单元40中的预测数据来形成残差视频块。加法器50表示执行该减法运算的一个或多个组件。
变换处理单元52对残差块应用变换,如离散余弦变换(discrete cosinetransform,DCT)或概念上类似的变换,从而产生包括残差变换系数值的视频块。变换处理单元52可以执行概念上类似于DCT的其它变换。还可以使用小波变换、整数变换、子带变换或其它类型的变换。
变换处理单元52对残差块应用变换,从而产生具有残差变换系数的块。变换可以将残差信息从像素值域转化到变换域,如频域。变换处理单元52可以将所得到的变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步降低码率。量化过程可以降低与一些或全部系数有关的位深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54随后可以对包括量化变换系数的矩阵进行扫描。或者,熵编码单元56可以执行扫描。
在量化后,熵编码单元56对经量化的变换系数进行熵译码。例如,熵编码单元56可以执行上下文自适应可变长度译码(context adaptive variable length coding,CAVLC)、上下文自适应二进制算术译码(context adaptive binary arithmetic coding,CABAC)、基于语法的上下文自适应二进制算术译码(syntax-based context-adaptivebinary arithmetic coding,SBAC)、概率区间分割熵(probability intervalpartitioning entropy,PIPE)译码或其它熵编码技术。在基于上下文的熵译码情况中,上下文可以基于相邻块。在熵编码单元56进行熵译码之后,可以将经编码的码流发送到另一设备(例如,视频解码器30)或存档以用于稍后发送或检索。
反量化单元58和逆变换单元60分别应用反量化和逆变换,以重建像素域中的残差块,例如,以供稍后用作参考块。运动补偿单元44可以通过将残差块添加到参考帧存储器64中的一个帧的预测块中来计算参考块。运动补偿单元44还可以将一个或多个插值滤波器应用于重建的残差块以计算子整数像素值,以用于运动估计。加法器62将重建的残差块与由运动补偿单元44产生的运动补偿预测块相加,以产生重建的视频块,存储在参考帧存储器64中。运动估计单元42和运动补偿单元44可以将重建的视频块用作参考块,以对后续视频帧中的块进行帧内编码。
图3为可实现视频编码技术的示例性视频解码器30的框图。在图3的示例中,视频解码器30包括熵解码单元70、运动补偿单元72、帧内预测单元74、反量化单元76、逆变换单元78、参考帧存储器82和加法器80。在一些示例中,视频解码器30可执行通常与视频编码器20(图2)描述的编码通道相反的解码通道。运动补偿单元72可以根据从熵解码单元70接收的运动矢量生成预测数据,而帧内预测单元74可以根据从熵解码单元70接收的帧内预测模式指示符生成预测数据。
在解码过程中,视频解码器30从视频编码器20接收表示经编码的视频条带的视频块的经编码的视频码流以及相关联的语法元素。视频解码器30的熵解码单元70对码流进行熵解码以生成量化系数、运动矢量或帧内预测模式指示符以及其它语法元素。熵解码单元70将运动矢量和其它语法元素转发给运动补偿单元72。视频解码器30可以接收视频条带级和/或视频块级的语法元素。
当视频条带被译码为经帧内编码(I)的条带时,帧内预测单元74可以根据当前帧或图像的之前解码块的指示(signal)的帧内预测模式和数据来生成当前视频条带的视频块的预测数据。当视频帧被译码为经帧间编码(例如B、P或GPB)的条带时,运动补偿单元72根据从熵解码单元70接收的运动矢量和其它语法元素针对当前视频条带的视频块生成预测块。可以从其中一个参考图像列表内的其中一个参考图像产生这些预测块。视频解码器30可以根据存储在参考帧存储器82中的参考图像,使用默认构建技术来构建参考帧列表:列表0和列表1。
运动补偿单元72通过解析运动矢量和其它语法元素来确定当前视频条带中的视频块的预测信息并使用所述预测信息针对所解码的当前视频块生成预测块。例如,运动补偿单元72使用接收到的一些语法元素确定用于对视频条带的视频块进行译码的预测模式(例如帧内预测或帧间预测)、帧间预测条带类型(例如B条带、P条带或GPB条带)、用于条带的一个或多个参考图像列表的构建信息、用于条带的每个帧间编码的视频块的运动矢量、用于条带的每个帧间编码的视频块的帧间预测状态、其它信息,以对当前视频条带内的视频块进行解码。
运动补偿单元72还可以根据插值滤波器进行插值。运动补偿单元72可以使用视频编码器20在视频块编码期间使用的插值滤波器来计算参考块的子整数像素的插值后的值。在这种情况下,运动补偿单元72可以从接收到的语法元素中确定视频编码器20使用的插值滤波器,并使用插值滤波器来产生预测块。
与深度图对应的纹理图像的数据可以存储在参考帧存储器82中。运动补偿单元72还可以用于对深度图的深度块进行帧间预测。
图像和视频压缩发展迅速,编码标准多样化。这些视频编码标准包括国际电信联盟电信标准化部门(International Telecommunication Union TelecommunicationStandardization Sector,ITU-T)H.261,ISO/IEC运动图像专家组(Motion PictureExperts Group,MPEG)-1第2部分、ITU-T H.262或ISO/IEC MPEG-2第2部分、ITU-T H.263、ISO/IEC MPEG-4第2部分、高级视频编码(Advanced Video Coding,AVC)(也称为ITU-TH.264或ISO/IEC MPEG-4第10部分),以及高效视频编码(High Efficiency Video Coding,HEVC)(也称为ITU-T H.265或MPEG-H第2部分)。AVC包括可分级视频编码(Scalable VideoCoding,SVC)、多视点视频编码(Multiview Video Coding,MVC)和多视图加深度视频编码(Multiview Video Coding plus Depth,MVC+D)以及3D AVC(3D-AVC)等扩展。HEVC包括可分级HEVC(Scalable HEVC,SHVC)、多视图HEVC(Multiview HEVC,MV-HEVC)和3D HEVC(3D-HEVC)等扩展。
通用视频编码(Versatile Video Coding,VVC)是ITU-T和ISO/IEC联合视频专家组(joint video experts team,JVET)开发的一种新的视频编码标准。VVC的最新工作草案(Working Draft,WD)已列入JVET-K1001-v1,可以从以下链接获取公开版本:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L1001-v11.zip。本发明描述了基于ITU-T和ISO/IEC联合视频专家组JVET正在开发的VVC标准的技术。然而,这些技术也应用于其它视频/媒体编解码规范。
下面描述视频编码的基础知识。
视频压缩技术执行空间(帧内)预测和/或时间(帧间)预测以减少或去除视频序列中固有的冗余。对于基于块的视频译码,可以将视频条带(例如视频图像或视频图像的一部分)分割成视频块,视频块也可以称为树块、编码树块(coding tree block,CTB)、编码树单元(coding tree unit,CTU)、编码单元(coding unit,CU)和/或译码节点。参照同一图像的相邻块中的参考样本使用空间预测对图像内的经帧内编码(I)条带中的视频块进行编码。图像内的帧间编码(P或B)条带中的视频块参照同一图像的相邻块中的参考样本使用空间预测,或者参照其它参考图像中的参考样本使用时间预测。图像可以称为帧,参考图像可以称为参考帧。
通过空间或时间预测,产生待编码块的预测块。残差数据表示待译码的原始块与预测块之间的像素差。根据运动矢量和残差数据对经帧间编码块进行编码,其中,运动矢量指向构成预测块的参考样本的块,残差数据指示经编码块与预测块之间的差值。根据帧内编码模式和残差数据对经帧内编码块进行编码。为了进一步压缩,可以将残差数据从像素域变换到变换域,从而产生接着进行量化的残差变换系数。可以扫描最初以二维阵列排列的量化变换系数,产生变换系数的一维向量,并且可以应用熵译码以实现进一步压缩。
下面描述视频编码中的图像类型。
在视频编解码规范中,识别图像类型用于定义解码过程,包括用作图像识别推导(例如,图像顺序编号picture order count,POC)、标识解码图像缓冲器(decoded picturebuffer,DPB)中的参考图像状态、从DPB输出图像等。
在AVC和HEVC中,图像类型可以通过包括编码图像的NAL单元类型来识别。在AVC中,图像类型包括IDR图像和非IDR图像。另一方面,HEVC中的主要图像类型包括后置图像(trailing picture)、时间子层接入图像(temporal sub-layer access picture,TSA)、步进式时间子层接入图像(step-wise temporal sub-layer access picture,STSA)、可解码随机接入前置图像(random access decodable leading picture,RADL)、跳过随机接入前置图像(random access skipped leading picture,RASL)、断点连接接入图像(broken-link access picture,BLA)、即时随机接入(instantaneous random access)和纯随机接入(clean random access)。对于HEVC中主要图像类型中的每种图像类型,图像还可以区分为子层参考图像或子层非参考图像。BLA图像还可以区分为有前置图像的BLA图像、有RADL图像的BLA图像或没有前置图像的BLA图像。IDR图像还可以区分为有RADL图像的IDR图像或没有前置图像的IDR图像。
下面描述帧内随机接入点(IRAP)图像。
在HEVC中,IDR、BLA和CRA图像都可以被视为IRAP图像。对于VVC,在2018年10月的第12次JVET会议上,同意将IDR图像和CRA图像作为IRAP图像。
IRAP图像提供以下两个重要的功能或优点。第一,IRAP图像的存在表示解码过程可以从该图像开始。该功能支持随机接入特性,其中解码过程从码流中的某位置开始,而不一定是从码流起始处开始,只要IRAP图像在该位置存在。第二,IRAP图像的存在刷新了解码过程,使得从IRAP图像开始的编码图像(不包括RASL图像)的译码,不需要参考先前的图像。码流中存在IRAP图像,可防止对IRAP图像之前的编码图像进行解码期间可能发生的任何错误传播到IRAP图像以及按照解码顺序在IRAP图像之后的图像。
虽然IRAP图像提供了重要功能,但IRAP图像可能会影响压缩效率。例如,IRAP图像的存在可能导致比特率的激增。有两个原因影响压缩效率:第一,由于IRAP图像为帧内预测图像,因此相对于其它帧间预测图像,图像本身需要更多的比特来表示。第二,IRAP图像中断时间预测。例如,当解码过程中遇到IRAP图像时,刷新DPB以删除之前的参考图像。此外,IRAP图像导致解码顺序在IRAP图像之后的图像的译码效率较低。例如,解码顺序在IRAP图像之后的图像需要更多的比特来表示,因为这些图像具有较少的参考图像用于这些图像的帧间预测译码。
在被认为为IRAP图像的图像类型中,HEVC中的IDR图像与其它图像类型相比具有不同的指示和推导。其中一些差异如下:
对于IDR图像的POC值的指示和推导,POC的最高有效位(most significant bit,MSB)不是基于前一个关键图像推导的。相反,MSB可以简单设置为等于0。
IDR图像的条带头不包括需要指示的信息,便于参考图像管理。对于其它图像类型(例如,CRA、后置、TSA等),下文描述的参考图像集(reference picture set,RPS)等信息或某些其它形式的类似信息(例如,参考图像列表)用于参考图像标识过程(例如,确定DPB中参考图像状态的过程,用于参考或不用于参考)。然而,对于IDR图像不需要指示这样的信息,因为IDR的存在表示解码过程应该简单地将DPB中的所有参考图像标识为不用于参考。
下面描述视频编码中的参考图像管理。
除了图像类型之外,图像识别也用于多种用途,包括用作帧间预测中的参考图像、用于从解码图像缓冲器(DPB)输出的图像、用于运动矢量的缩放、用于加权预测等。在AVC和HEVC中,图像可以通过图像顺序编号(picture order count,POC)识别。
在AVC和HEVC中,DPB中的图像可以被标识为“用于短期参考”、“用于长期参考”或“不用于参考”。一旦图像被标识为“不用于参考”,则该图像不可以再用于预测。当不再需要输出该图像时,可以从DPB中删除该图像。
AVC中有两种类型的参考图像:短期参考图像和长期参考图像。当参考图像不再用于预测参考时,可以将该参考图像标识为“不用于参考”。这三种状态(短期参考、长期参考、不用于参考)之间的转换通过解码参考图像标识过程进行控制。存在两种替代的解码参考图像标识机制:隐式滑动窗口过程和显式内存管理控制操作(memory management controloperation,MMCO)过程。当参考帧的数量等于给定的最大数量(序列参数集(sequenceparameter set,SPS)中的max_num_ref_frames)时,滑动窗口过程将短期参考图像标识为“不用于参考”。以先入先出的方式存储短期参考图像,使得最近解码短期图像保存在DPB中。
显式MMCO过程可以包括多个MMCO命令。MMCO命令可以将一个或多个短期或长期参考图像标识为“不用于参考”,将所有图像标识为“不用于参考”,或者将当前参考图像或现有的短期参考图像标识为长期参考图像,然后将长期图像索引分配给长期参考图像。
在AVC中,参考图像标识操作以及从DPB中输出和删除图像的过程是在对图像进行解码之后执行的。
HEVC引入了一种不同的参考图像管理方法,称为参考图像集(reference pictureset,RPS)。RPS概念与AVC中的MMCO/滑动窗口过程的最根本区别在于,每个特定条带具有一个由当前图像或任何后续图像使用的完整参考图像集。因此,指示了必须保存在DPB中供当前图像或后续图像使用的所有图像的完整集合。这与AVC方案不同,AVC方案只指示DPB的相对变化。利用RPS概念,不需要解码顺序中靠前的图像的信息来维持DPB中参考图像的正确状态。
为了充分发挥RPS的优点,并提高抗误码能力,与AVC相比改变了HEVC中的图像解码和DPB操作的顺序。在AVC中,通常在对当前图像进行解码之后进行图像标识和缓冲器操作(都从DPB中输出和删除解码图像)。在HEVC中,首先从当前图像的条带头中解码出RPS,然后通常在对当前图像进行解码之前进行图像标识和缓冲器操作。
下文描述HEVC中RPS的指示。
HEVC中的每个条带头必须包括用于指示包括条带的图像的RPS的参数。唯一的例外情况是没有为即时解码刷新(Instantaneous Decoding Refresh,IDR)条带指示RPS,而是推断RPS为空。对于不属于IDR图像的I条带,即使这些I条带属于I图像,也可以提供RPS,因为可能存在解码顺序在I图像之后的图像,这些图像根据解码顺序在I图像之前的图像进行帧间预测。RPS中的图像数量不超过SPS中的语法元素sps_max_dec_pic_buffering指示的DPB大小限制。
每个图像都与表示输出顺序的POC值相关。条带头包括固定长度码字pic_order_cnt_lsb,表示完整POC值的最低有效位(least significant bit,LSB),也称为POC LSB。在SPS中指示码字的长度,可以介于4到16个比特之间。RPS使用POC来识别参考图像。除了POC值之外,每个条带头还直接包括或使用SPS中的RPS中每个图像的POC值(或LSB)的经译码表示。
每个图像的RPS包括五个不同的参考图像列表,也称为五个RPS子集。RefPicSetStCurrBefore包括解码顺序和输出顺序在当前图像之前的所有可以在当前图像的帧间预测中使用的短期参考图像。RefPicSetStCurrAfter包括解码顺序在当前图像之前、输出顺序在当前图像之后的所有可以在当前图像的帧间预测中使用的短期参考图像。RefPicSetStFoll包括所有可以在解码顺序在当前图像之后的一个或多个图像的帧间预测中使用、但在当前图像的帧间预测中不使用的短期参考图像。RefPicSetLtCurr包括所有可以在当前图像的帧间预测中使用的长期参考图像。RefPicSetLtFoll包括所有可以在解码顺序在当前图像之后的一个或多个图像的帧间预测中使用、但在当前图像的帧间预测中不使用的长期参考图像。
使用最多三个循环指示RPS,这三个循环在不同类型的参考图像上迭代:POC值小于当前图像的短期参考图像、POC值大于当前图像的短期参考图像,以及长期参考图像。另外,为每个参考图像发送一个标志(used_by_curr_pic_X_flag),指示该参考图像是否由当前图像(包括在列表RefPicSetStCurrBefore、RefPicSetStCurrAfter或RefPicSetLtCurr中,或者包括在列表RefPicSetStFoll或RefPicSetLtFoll中)参考。
图4示出了包括当前图像B14的RPS 400,当前图像B14包括RPS 400的所有子集402中的表项(例如图像)。在图4的示例中,当前图像B14只包括五个子集402(又称为RPS子集)中的每个子集中的一个图像。P8是子集402中的图像,称为RefPicSetStCurrBefore,因为该图像按输出顺序在B14之前,并且由B14使用。P12是子集402中的图像,称为RefPicSetStCurrAfter,因为该图像按输出顺序在B14之后,并且由B14使用。P13是子集402中的图像,称为RefPicSetStFoll,因为该图像是B14不使用的短期参考图像(但是由于B15会使用,所以必须保留在DPB中)。P4是子集402中的图像,称为RefPicSetStCurrBefore,因为该图像为B14使用的长期参考图像。I0是子集402中的图像,称为RefPicSetLtFoll,因为该图像是当前图像使用的长期参考图像(但是由于B15会使用,所以必须保留在DPB中)。
RPS 400中的短期参考图像可以直接包括在条带头中。或者,条带头可以只包括表示索引的语法元素,从而参考在激活SPS中发送的预定义RPS列表。可以使用两种不同方案中的任一种来指示RPS 402中的短期参考图像:下文描述的帧间RPS或这里描述的帧内RPS。当使用帧内RPS时,指示num_negative_pics和num_positive_pics,表示两个不同参考图像列表的长度。这两个列表分别包括与当前图像存在负POC差值和正POC差值的参考图像。这两个列表中的每个元素都使用可变长度码进行编码,该可变长度码表示列表中的每个元素与前一个元素的POC值的差值减一。对于每个列表中的第一个图像,指示涉及当前图像的POC值减一。
当对序列参数集中的循环RPS进行编码时,有可能参照序列参数集中已经编码的另一个RPS对一个RPS(例如RPS 400)中的元素进行编码。这称为帧间RPS。由于序列参数集中的所有RPS都位于同一个网络抽象层(network abstraction layer,NAL)单元中,因此该方法不会产生误差稳定性问题。帧间RPS语法基于以下事实:可以根据之前解码图像的RPS预测当前图像的RPS。这是因为当前图像的所有参考图像是前一个图像的参考图像,或者是之前的解码图像。只需要指示这些图像中的哪些图像是参考图像并用于预测当前图像。因此,语法包括以下内容:索引,指向RPS以用作预测值;delta_POC,待加到预测值的delta_POC,得到当前RPS的增量POC;指示符集,指示哪些图像是参考图像以及这些图像是否只用于预测后续图像。在一个实施例中,增量POC是指当前参考图像与另一(例如,前一)参考图像之间的POC值的差值。
希望使用长期参考图像的编码器必须将SPS语法元素long_term_ref_pics_present_flag设置为1。然后,可以通过固定长度码字poc_lsb_lt在条带头中指示长期参考图像,该固定长度码字表示每个长期图像的完整POC值的最低有效位。每个poc_lsb_lt都是为特定长期图像指示的码字pic_order_cnt_lsb的副本。还有可能在SPS中指示长期图像集,作为POC LSB值列表。然后,可以在条带头中指示长期图像的POC LSB,作为此列表的索引。
另外还可以指示语法元素delta_poc_msb_cycle_lt_minus1,从而能够计算长期参考图像相对于当前图像的完整POC距离。要求为每个长期参考图像指示码字delta_poc_msb_cycle_lt_minus1,每个长期参考图像与RPS中的任何其它参考图像具有相同的POCLSB值。
下文描述HEVC中的参考图像标识。
在图像解码之前,DPB中通常存在许多图像。其中一些图像可以用于预测,因此被标识为“用于参考”。其它图像不可用于预测,而是等待输出,因此被标识为“不用于参考”。在对条带头进行解析之后,首先执行图像标识过程,然后再对条带数据进行解码。将DPB中存在的被标识为“用于参考”但不包括在RPS中的图像标识为“不用于参考”。当used_by_curr_pic_X_flag为0时,则忽略DPB中不存在的但包括在参考图像集中的图像。但是,当used_by_curr_pic_X_flag为1时,该参考图像预期用于预测当前图像,但是缺失该参考图像。这时,推断该图像无意丢失,解码器需要采取合适的措施解决这个问题。
在对当前图像进行解码之后,将参考图像标识为“用于短期参考”。
下面描述HEVC中的参考图像列表构建。
在HEVC中,术语“帧间预测”用于表示根据除当前解码图像之外的参考图像的数据元素(例如样本值或运动矢量)推导的预测。与在AVC中一样,可以根据多个参考图像来预测一个图像。用于帧间预测的参考图像排列在一个或多个参考图像列表中。参考索引用于识别需要使用列表中的哪些参考图像来产生预测信号。
P条带使用单个参考图像列表(列表0),B条带使用两个参考图像列表(列表0和列表1)。与AVC类似,HEVC中的参考图像列表构建包括参考图像列表初始化和参考图像列表修改。
在AVC中,P条带(使用解码顺序)和B条带(使用输出顺序)的列表0的初始化过程是不同的。在HEVC中,两种情况都使用输出顺序。
参考图像列表初始化根据以下三个RPS子集创建默认列表0和列表1(如果条带是B条带):RefPicSetStCurrBefore、RefPicSetStCurrAfter和RefPicSetLtCurr。首先将输出顺序较先(较后)的短期图像按照它们到当前图像的POC距离,从小到大插入列表0(列表1)中,然后将输出顺序较后(较先)的短期图像按照它们到当前图像的POC距离,从小到大插入到列表0(列表1)中,最后将长期图像插入到末尾。在RPS方面,对于列表0,将RefPicSetStCurrBefore中的表项插入到初始列表中,然后插入RefPicSetStCurrAfter中的表项。之后,添加RefPicSetLtCurr中的表项(如果存在)。
在HEVC中,当列表中的表项数量小于激活参考图像的目标数量(在图像参数集或条带头中指示)时,重复上述过程(再次添加已添加到参考图像列表中的参考图像)。当表项数量大于目标数量时,截断该列表。
在初始化参考图像列表之后,可以修改该参考图像列表,使得可以根据参考图像列表修改命令以任何顺序(包括一个特定参考图像可以出现在列表中的多个位置的情况)排列当前图像的参考图像。当表示存在列表修改的标志设置为1时,指示固定数量(等于参考图像列表中的表项的目标数量)的命令,并且每个命令为参考图像列表插入一个表项。在命令中,通过根据RPS指示推导的当前图像的参考图像列表中的索引识别参考图像。这与H.264/AVC中的参考图像列表修改不同,在H.264/AVC中,图像通过图像编号(根据语法元素frame_num推导)或长期参考图像索引识别,并且有可能需要较少的命令,例如用于交换初始列表中的前两个表项或将一个表项插入到初始列表的起始处并移动其它表项。
参考图像列表中不可以包括TemporalId大于当前图像的任何参考图像。HEVC码流可能包括若干个时间子层。每个NAL单元属于一个特定的子层,由TemporalId表示(等于temporal_id_plus1-1)。
下面描述直接基于参考图像列表的参考图像管理。
JCT-VC文档JCTVC-G643(可以从以下链接获取公开版本:http://phenix.int-evry.fr/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC-G643-v3.zip)包括一种直接使用三个参考图像列表(参考图像列表0、参考图像列表1和空闲参考图像列表)来管理DPB中的参考图像的方法。这种方法避免:(1)AVC中的滑动窗口和MMCO过程以及参考图像列表初始化和修改过程,或者(2)HEVC中的参考图像集以及参考图像列表初始化和修改过程,简化指示和解码。
JVET文档JVET-L0112可从http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L0112-v4.zip获取公开版本。该文档描述了另一种直接基于参考图像列表的参考图像管理方法。JVET-L0112提出的方法不使用JCTVC-G643提出的三个参考图像列表,而只使用两个参考图像列表:参考图像列表0和参考图像列表1。每个参考图像列表包括与用于构建相关最终参考图像列表的参考图像相关的信息(例如,参考图像列表0中的参考图像用于构建最终参考图像列表0和参考图像列表1中的参考图像用于构建最终参考图像列表1)。每个参考图像列表可包括非激活参考图像(例如,当前图像不需要,但后续图像可能需要)。
下面描述HEVC中的图像分割方案。
HEVC包括四种不同的图像分割方案,即常规条带、非独立条带、分块(tile)和波前并行处理(wavefront parallel processing,WPP)。这些方案可以应用于最大传输单元(maximum transfer unit,MTU)大小匹配、并行处理和降低端到端时延。
H.264/AVC中的常规条带类似。每个常规条带都封装在自身的NAL单元中。禁用帧内预测(帧内样本预测、运动信息预测、编码模式预测)和跨条带边界的熵译码依赖性。因此,常规条带可以不依赖于同一个图像内的其它常规条带进行重建(但是,由于存在循环滤波操作,所以仍然可能存在相互依赖性)。
常规条带为并行化可以使用的唯一工具,它在H.264/AVC中也以几乎相同的形式存在。基于常规条带的并行化不需要太多的处理器间或核间通信(除在解码经预测译码图像时针对运动补偿进行处理器间或核间数据共享的情况之外,这种情况通常比由于帧内预测而进行的处理器间或核间数据共享需要更多的通信)。然而,出于同样的原因,使用常规条带可能会由于条带头的比特成本以及缺乏跨条带边界的预测而产生大量译码开销。此外,由于常规条带具有帧内独立性以及每个常规条带都封装在自身的NAL单元中,所以常规条带(与下文提到的其它工具相比)还充当用于码流分割的关键机制,以匹配MTU大小需求。在许多情况下,为了实现并行化和MTU大小匹配的目标,图像内的条带布局会互相矛盾。实现这种情况需要开发下文提到的并行化工具。
相关条带具有缩短的条带头,并且允许在不中断帧内预测的情况下对图像树块边界进行分割。基本上,相关条带将常规条带分割为多个NAL单元,这通过在整个常规条带的编码完成之前发送常规条带的一部分,降低端到端时延。
在WPP中,将图像分割为单行CTB。熵解码和预测机制可以使用来自其它行中的CTB的数据。通过对CTB行进行并行解码,支持并行处理。对当前行的解码会比前几行的解码过程时延两个CTB。这种时延确保了在对当前CTB进行解码之前,与当前行中当前CTB上方和右侧的CTB相关的数据可用。当用图形表示时,这种方法表现为波前。如果图像包括CTB行,这种交错启动支持尽可能多的处理器/核进行并行处理。由于支持在图像内的相邻树块行之间进行帧内预测,所以可能需要大量处理器间/核间通信来实现帧内预测。与不使用WPP分割时相比,WPP分割不会产生额外的NAL单元。因此,WPP不支持MTU大小匹配。但是,常规条带可以与WPP结合使用,以根据需要实现MTU大小匹配,这需要一定的译码开销。
分块是图像中由水平和垂直边界创建的分割部分,这些边界创建了分块的列和行。在按照图像的分块光栅扫描顺序对下一个分块中的左上方CTB进行解码之前,CTB的扫描顺序改为在分块内部进行(按分块的CTB光栅扫描顺序)。与常规条带类似,分块减少了对帧内预测以及对熵解码的依赖。但是,各个NAL单元中可以不包括分块,因此,分块可以不用于MTU大小匹配。每个分块可以由一个处理器/核处理,解码相邻分块的处理单元之间的帧内预测所需的处理器间/核间通信仅限于发送共享的条带头(如果条带跨越多个分块)以及共享与环路滤波相关的重建样本和元数据。当条带中包括多个分块或WPP段时,除条带中的第一个分块或WPP段之外,还可以在条带头中指示每个分块或WPP段的入口点字节偏移。
为了简化,HEVC对四种不同的图像分割方案的应用作了限制。给定的译码视频序列不能同时包括分块和HEVC中规定的大多数配置(profile)的波前并行处理。对于每个条带和分块,必须满足以下条件中的任一个或两个:(1)条带中的所有编码树块属于同一个分块;(2)分块中的所有编码树块属于同一个条带。最后,波前段仅包括一个CTB行,当使用WPP时,如果一个条带从CTB行开始,则该条带必须在同一个CTB行结束。
下面描述运动约束分块集(motion constrained tile set,MCTS)。
J.Boyce、A.Ramasubramonian、R.Skupin、G.J.Sullivan、A.Tourapis、Y.-K.Wang等人编辑的JCT-VC输出文档JCTVC-AC1005《HEVC附加补充增强信息(草案4)》(2017年10月24日)对HEVC最近的一项修改作了具体说明。可以从以下链接获取草案的公开版本:http://phenix.int-evry.fr/jct/doc_end_user/documents/29_Macau/wg11/JCTVC-AC1005-v2.zip。HEVC规定了三个MCTS相关的补充增强信息(supplemental enhancementinformation,SEI)消息,分别是时间MCTS SEI消息、MCTS提取信息集SEI消息和MCTS提取信息嵌套SEI消息。
时间MCTS SEI消息可以用于表示码流中存在MCTS并指示MCTS。对于每个MCTS,运动矢量被约束为指向MCTS内部的全样本位置和指向分数样本位置,该分数样本位置仅需要MCTS内部的全样本位置进行插值。此外,不允许将运动矢量候选用于从MCTS外部的块推导的时间运动矢量预测。这样,在MCTS中不包括分块的情况下,每个MCTS可以独立解码。
MCTS SEI消息提供可用于MCTS子码流提取(作为SEI消息语义的一部分表示)的补充信息,以生成符合MCTS的码流。该信息包括多个提取信息集,每个提取信息集定义多个MCTS,并且包括在MCTS子码流提取过程所使用的替换视频参数集(video parameter set,VPS)、序列参数集(sequence parameter set,SPS)和图像参数集(picture parameterset,PPS)的原始字节序列载荷(raw bytes sequence payload,RBSP)字节。当根据MCTS子码流提取过程提取子码流时,可以重写或替换参数集(VPS、SPS、PPS),并且可以更新条带头,因为一个或所有条带地址相关的语法元素(包括first_slice_segment_in_pic_flag和slice_segment_address)可以在所提取的子码流中使用不同的值。
下面描述分块组。
2018年10月在澳门举行第12次JVET会议之后,约定使用分块组替换条带的概念。但是在撰写本发明时,VVC的最新草案尚未包括约定的分块组概念。可从http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L0686-v2.zip获取JVET-L0686文档的公开版本,包含了约定的分块组的描述。第12次JVET会议约定的分块组可以将一个或多个分块组分组为一个分块组。属于分块组的分块按照图像的光栅扫描顺序是连续的。在本发明的其余部分,JVET-L0686中描述的分块组称为光栅扫描分块组。
可从http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L0114-v1.zip获取JVET-L0114文档的公开版本,描述了另一种分块组方法。对本文描述的分块组进行约束,使得分到同一个分块组的分块可以组成图像内的矩形区域。在本发明的其余部分,JVET-L0114中描述的分块组称为矩形分块组。
下面描述360度视频应用中基于视角的使用情况。
360度(360°)视频应用只显示整个球面的一部分(因此也只显示整个图像的一个子集)。为了降低码率,我们使用一个DASH承载基于视角360度视频发送的使用情况场景,来通过DASH发送360度视频。该使用情况场景如下:
将整个球面/投影图像(例如,使用立方体投影(cubemap projection,CMP)划分为多个MCTS。
编码两个或多个具有不同空间分辨率或质量的码流。
当发送MCTS到解码器时,较高分辨率/质量码流的MCTS用于显示视角(例如,前视角),较低分辨率/质量码流的MCTS用于显示其余部分。这些MCTS按照一定的方式打包后发送给接收器进行解码。
期望用户看到的视角以高分辨率/质量MCTS表示,提供好的观看体验。当用户转头看到另一个视角(例如,左或右视角)时,在系统获取该视角的高分辨率/质量MCTS时,在短时间内以较低分辨率/质量的视角显示内容。
当用户转头看到另一个视角时,在用户转头的时间与看到视角的较高分辨率/质量表示的时间之间存在时延。该时延取决于系统能够为视角获取更高分辨率/质量的MCTS的速度,而这又取决于IRAP周期(例如,两个IRAP图像之间的时间间隔),因为新视角的MCTS只能从IRAP图像开始解码。如果IRAP周期每1秒编码一次,则以下情况适用:
如果用户正好在系统开始获取新的分段/IRAP周期之前转头看到新的视角,则时延的最佳使用情况场景与网络往返时延(round-trip delay)相同。在这种场景下,系统能够立即为新视角请求更高分辨率/质量的MCTS。因此,唯一的时延是网络往返时延(获取请求的时延加上所请求的MCTS的发送时间,假设最小缓冲时延设置为0,尽管通常在不能设置为0的流传输系统中,并且传感器时延很小且可以忽略)。例如,网络往返时延约为200毫秒(ms)。
如果用户正好在系统请求下一个分段后转头看到新的视角,最坏的使用情况场景是IRAP周期加上网络往返时延。
为了提升上述最坏使用情况场景,可以编码具有更多IRAP图像的码流,使得IRAP周期更短,从而降低整体时延。然而,因为压缩效率降低,这会增加带宽需求。
下面描述现有IRAP概念存在的问题。
根据HEVC和最新开发的VVC,IRAP是一个图像级的概念。即,与帧内随机接入点相关的经译码的视频码流中的最小对象是图像。将IRAP概念用于子图像级是有利的。如上所述,在通过DASH发送360度视频时,将IRAP用于子图像级别有助于减少最坏的使用情况场景。然而,由于以下问题,很难以这种方式根据现有的视频编码规范(例如,HEVC、VVC等)来改进IRAP概念。
一般情况下,IRAP图像与非IRAP图像在指示、推导和解码方面都不同。此外,许多方面是在图像级别定义的。其中一些差异如下:
对于POC推导,IDR图像的POC MSB固定为0,而其它图像类型的POC MSB根据前一个关键图像推导。
对于参考图像管理,在接收到IDR图像时,不需要为IDR图像指示信息。解码器简单地将DPB中的所有参考图像标识为“不用于参考”。另一方面,对于其它图像类型,需要指示用于协助参考图像管理的信息(例如,RPS、RPL等)。
可以通过子码流提取过程从原始码流中提取子图像形成新的码流。在子码流提取过程前后,同一子图像的指示、推导和解码过程希望不会改变,并产生相同的解码/重建结果。
目前编码技术的缺点之一为IRAP图像。IRAP图像是帧内编码的。编码器/解码器(又称为编解码器,codec)在不使用参考图像列表(reference picture list,RPL)的情况下对IRAP图像进行译码。因此,当前编码技术中使用的语法指示编解码器在遇到IRAP图像时不查找RPL。
在虚拟现实(virtual reality,VR)编码中,可以将图像划分为子图像,其中,一个子图像是IRAP子图像,而另一个子图像为非IRAP子图像。当以这种方式划分图像时,该图像可以称为混合IRAP图像。然而,混合IRAP图像给目前的编码技术带来了一个问题。实际上,由于存在IRAP子图像,当前的语法要求编解码器忽略整个混合IRAP图像的任何RPL。由于RPL被忽略,编解码器无法对非IRAP子图像进行译码,因为非IRAP子图像为帧间编码图像,需要根据RPL进行正确译码。
本文公开了允许IRAP图像(具体为混合IRAP图像)参考和使用RPL的视频编码技术。因此,即使混合IRAP图像包括IRAP子图像,也允许编解码器引用和使用RPL对非IRAP子图像进行译码。这特别适用于VR编码应用,当然也可以应用于其它领域。
图5为是适用于VR译码应用的图像500的一个实施例的示意图。如图所示,图像500被划分为第一子图像502和第二子图像504。在一个实施例中,所述第一子图像502对应VR应用中使用的视角。视角是VR应用或程序的用户当前正在查看的图像的一部分。在一个实施例中,所述第二子图像504包括图像500的剩余部分。即,所述第二子图像504是图像500视角外的部分。在一个实施例中,所述第一子图像502为IRAP图像,所述第二子图像504为码流中特定时间点t的非IRAP图像。因此,所述图像500可以称为在时间t处的混合IRAP图像。
图6为与图5中的图像500对应的视频码流600的一个实施例的示意图。如本文所描述的,所述视频码流600也可以称为经译码的视频码流、码流或其变体。图6中的图像500可以包括在单个NAL单元中(用加粗黑色矩形表示),也可以包括在多个NAL单元中。
如图6所示,所述码流600被划分为第一子码流602和第二子码流604。所述第一子码流602对应所述第一子图像502,所述第二子码流604对应所述第二子图像504。由于所述第一子码流602对应所述第一子图像502(在本例中为视角),所述第一子码流602比所述第二子码流604包括更多IRAP子图像。IRAP图像允许编解码器在所述码流600中的位置开始解码。由于所述第一子码流602包括若干IRAP图像,解码器可以在不同位置开始对所述第一子图像502进行解码。IRAP图像的示例包括即时解码刷新(IDR)图像、纯随机接入(CRA)图像和断点连接接入(BLA)图像。
根据本发明实施例,当解码器(例如,视频解码器30)在解码过程期间遇到所述码流600中的图像500时,由于存在IRAP子图像(例如,第一子图像502),不再指示解码器忽略整个混合IRAP图像(例如,图像500)的任何RPL。因此,即使混合IRAP图像包括IRAP子图像,解码器也允许参考和使用RPL以解码非IRAP子图像(例如,第二子图像504)。即,允许IRAP图像(具体为混合IRAP图像)参考和使用RPL。因此,混合IRAP图像可适用于VR应用。
在一个实施例中,编码器(例如,视频编码器20)可以使用标志向解码器(例如,视频解码器30)指示码流(例如,码流600)是否包括任何混合IRAP图像(例如,图像500)。可以在码流的序列参数集(SPS)、图像参数集(PPS)或其它参数集中发送该标志。在一个实施例中,所述标志指定为sps_mixed_tile_groups_in_pic_flag。
在一个实施例中,所述第一子图像502和所述第二子图像504可以称为分块组。在一个实施例中,无论分块组是什么NAL单元类型,在解码每个分块组的起始处构建RPL。RPL可以包括RPL方法的RefPicList[0]和RefPicList[1],或者参考图像集(RPS)方法的RefPicList0[]和RefPicList1[]。也可以使用用于帧间预测操作的类似参考图像列表。
图7为方法700的一个实施例,所述方法700由视频解码器(例如,视频解码器30)实现、用于对经译码的视频码流(例如,码流600)进行解码。所述方法700可以在视频编码器(例如,视频编码器20)直接或间接接收经解码的码流之后执行。因为允许IRAP图像(具体为混合IRAP图像)参考和使用RPL,所述方法700改进了解码过程(例如,使得解码过程比传统解码过程更高效、更快等)。因此,混合IRAP图像可适用于VR应用。这实际上提高了编解码器的性能,用户体验更好。
步骤702:所述视频解码器接收混合帧内随机接入点(IRAP)图像(例如,图像500),包括第一子图像(例如,子图像502)和第二子图像(例如,子图像504)。在一个实施例中,所述第一子图像为IRAP图像,所述第二子图像为非IRAP子图像。在一个实施例中,所述混合IRAP图像在包括第一子码流(例如,第一子码流602)和第二子码流(例如,第二子码流604)的划分码流中接收。在一个实施例中,IRAP图像为即时解码刷新(IDR)图像。在一个实施例中,所述混合IRAP图像包括在单个网络抽象层(NAL)单元中。
步骤704:所述视频解码器接收所述混合IRAP图像的参考图像列表(RPL)。尽管所述混合IRAP图像包括至少一个IRAP图像,但所述视频解码器接收或以其它方式获得所述RPL。
步骤706:所述视频解码器使用RPL解码所述第二子图像。
步骤708:所述视频解码器根据经解码的第二子图像生成图像。在一个实施例中,可以在电子设备(例如,智能手机、平板电脑、笔记本电脑、个人计算机等)的显示器或屏幕上向用户显示图像。
在一个实施例中,所述方法700还包括接收码流中的标志。该标志指示码流中是否包括混合IRAP图像。在一个实施例中,在SPS、PPS或码流的其它部分中发送所述标志。
图8为方法800的一个实施例,所述方法800由视频编码器(例如,视频编码器20)实现、用于对视频码流(例如,码流500)进行编码。当图像(例如,来自视频)要编码到视频码流中并且发送到视频解码器(例如,视频解码器30)时,可以执行方法800。因为允许IRAP图像(具体为混合IRAP图像)参考和使用RPL,所述方法800改进了编码过程(例如,使得编码过程比传统编码过程更高效、更快等)。因此,混合IRAP图像可适用于VR应用。这实际上提高了编解码器的性能,用户体验更好。
步骤802:所述视频编码器对包括第一子图像和第二子图像的混合帧内随机接入点(intra random access point,IRAP)图像进行编码,其中,所述第一子图像为IRAP图像,所述第二子图像为非IRAP子图像。在一个实施例中,所述混合IRAP图像被编码到包括第一子码流和第二子码流的划分码流中。在一个实施例中,所述第一子图像被编码到第一子码流中,所述第二子图像被编码到第二子码流中。在一实施例中,所述IRAP图像为即时解码刷新(instantaneous decoder refresh,IDR)图像。在一个实施例中,所述混合IRAP图像在单个网络抽象层(network abstraction layer,NAL)单元中编码。
步骤804:所述视频编码器对所述混合IRAP图像的参考图像列表(referencepicture list,RPL)进行编码。
步骤806:所述视频编码器生成包括所述混合IRAP图像和所述混合IRAP图像对应的RPL的码流。尽管所述混合IRAP图像包括至少一个IRAP图像,但所述视频编码器编码所述码流中的所述RPL。
步骤808:所述视频编码器存储发送到视频解码器的所述码流。所述码流可以至少暂时地存储在存储器中,直到所述视频编码器向视频解码器发送所述视频码流(例如,码流600)。所述视频解码器接收到码流之后,可以对经编码的视频码流进行解码(例如,如上文所述),以生成或产生用于在电子设备(例如,智能手机、平板电脑、膝上型计算机、个人计算机等)的显示器或屏幕上向用户显示的图像。
在一个实施例中,所述方法800还包括编码所述码流中的标志。该标志指示码流中是否包括混合IRAP图像。在一个实施例中,在SPS、PPS或码流的其它部分中发送所述标志。
JVET-L0686-v2和JVET-L0112-v2提供了本文所公开技术的最新方法。与JVET-L0686-v2和JVET-L0112-v2提供的方法相关的更改部分用斜体表示,删除部分用粗体表示。而JVET-L0686-v2和JVET-L0112-v2提供的方法中下文未提及的部分依然适用。
术语定义如下:
即时解码刷新(instantaneous decoder refresh,IDR)分块组:包括在nal_unit_type为IDR_NUT的VCL NAL单元中的分块组。
帧内随机接入点(intra random access point,IRAP)分块组:包括在nal_unit_type为IDR_NUT或CRA_NUT的VCL NAL单元中的分块组。
帧内随机接入点(intra random access point,IRAP)图像:每个视频编码层(video coding layer,VCL)NAL单元的nal_unit_type为IRAP_NUT或CRA_NUT的编码图像。
说明:如果每个IDR或CRA接入单元为按解码顺序排列的第一个接入单元,FirstIrapPictureFlag的值等于1。当FirstIrapPictureFlag等于1时,NoRaslOutputFlag的值设置为1。IDR图像始终是CVS中的第一个接入单元。如果CRA接入单元是码流中的第一个图像,CRA接入单元是CVS中的第一个接入单元,紧跟NAL单元序列结束之后,或者其相关变量HandleCraAsFirstPicInCvsFlag等于1。所述变量HandleCraAsFirstPicInCvsFlag可以通过外部方式设置。
非IRAP分块组:nal_unit_type既不是IDR_NUT也不是CRA_NUT的VCL NAL单元中的分块组。
下面描述NAL单元头语义。
表7-1:NAL单元类型码和NAL单元类型类别
Figure BDA0003147326460000221
Figure BDA0003147326460000231
当图像的每个分块组的nal_unit_type为IDR_NUT或CRA_NUT,即当前分块组属于IRAP图像时,TemporalId应等于0。
当一个VCL NAL单元的nal_unit_type不是IDR_NUT也不是CRA_NUT,而同一图像的至少一个其它VCL NAL单元的nal_unit_type为IDR_NUT或CRA_NUT时,TemporalId应等于0。
下面提供序列参数集的语法和语义。
Figure BDA0003147326460000232
Figure BDA0003147326460000241
sps_mixed_tile_groups_in_pic_flag等于1表示CVS中的图像可能同时具有IRAP分块组和非IRAP分块组。sps_mixed_tile_groups_in_pic_flag等于0表示CVS中的每个图像仅具有IRAP分块组或仅具有非IRAP分块组。
下面提供图像参数集的语法。
Figure BDA0003147326460000242
Figure BDA0003147326460000251
下面提供分块组语法。
Figure BDA0003147326460000252
Figure BDA0003147326460000261
poc_msb_reset_flag用于表示变量PicRefreshFlag,具体如下:
–如果当前分块组在解码顺序上属于码流中的第一个接入单元,则PicRefreshFlag设置为1。
–否则,如果当前分块组为IDR分块组,则PicRefreshFlag设置为sps_mixed_tile_groups_in_pic_flag?poc_msb_reset_flag:1
–否则,如果当前分块组为CRA分块组,则适用以下规则:
–如果当前接入单元紧跟NAL单元序列结束之后,或者相关变量HandleCraAsFirstPicInCvsFlag等于1,则PicRefreshFlag设置为1。
–否则,PicRefreshFlag设置为0。
–否则(当前分块组在解码顺序上不属于码流中的第一个接入单元,且不是IRAP的分块组),PicRefreshFlag设置为0。
注意当sps_mixed_tile_groups_in_pic_flag等于0时,忽略poc_msb_reset_flag的值。
当sps_mixed_tile_groups_in_pic_flag等于1时,码流一致性的要求为使用以下约束条件:
–当前图像的所有分块组均为IDR分块组时,当前图像的所有IDR分块组的poc_msb_reset_flag应等于1。
–当前图像包括IDR分块组且至少一个分块组不是IDR分块组时,poc_msb_reset_flag应等于0。
说明:poc_msb_reset_flag等于1表示如果当前图像有多个分块组,则所有分块组均为IDR分块组。
说明:当从sps_mixed_tile_groups_in_pic_flag等于1的原码流中提取MCTS为子码流时,提取的子码流的激活SPS中的sps_mixed_tile_groups_in_pic_flag的值必须设置为0,即,在提取的子码流中每个图像必须仅具有IRAP分块组或仅具有非IRAP分块组。换言之,要求属于同一个图像和属于同一个MCTS的分块组必须具有相同的NAL单元类型。
下面描述分块组解码过程。
当前图像CurrPic的解码过程如下:
1.NAL单元解码在下面NAL单元解码过程的小节中指定。
2.分块组解码过程小节中的过程使用分块组头层及以上层的语法元素指定以下解码过程:
–与图像顺序编号相关的变量和函数根据下面图像顺序编号的解码过程小节中的规定来推导。仅图像的第一个分块组需要调用。
–在非IDR图像的每个分块组解码过程起始处,调用构造参考图像列表的解码过程,来推导参考图像列表0(RefPicList[0])和参考图像列表1(RefPicList[1])。
–调用用于参考图像标识的解码过程,其中参考图像可以标识为“不用于参考”或“用于长期参考”。仅图像的第一个分块组需要调用。
3.调用编码树单元、缩放、变换、内环滤波等解码过程。
4.在当前图像所有条带都解码后,当前解码图像标识为“用于短期参考”。
下面描述NAL单元的解码过程。
这个过程的输入是当前图像的NAL单元及其相关的非VCL NAL单元。
该过程的输出是封装在NAL单元内的解析后的RBSP语法结构。
每个NAL单元的解码过程从NAL单元中提取RBSP语法结构,然后解析RBSP语法结构。
下面描述分块组解码过程。
下面提供图像顺序编号的解码过程。
该过程的输出为PicOrderCntVal,即当前图像的图像顺序编号。
图像顺序编号用于识别图像、在融合模式下推导运动参数和运动矢量预测以及用于解码器一致性检查。
每个编码图像与图像顺序编号变量(表示为PicOrderCntVal)有关。
当PicRefreshFlag等于0时,如果当前图像不是IRAP图像,则变量prevPicOrderCntLsb和prevPicOrderCntMsb推导方式如下:
–假设prevTid0Pic为解码顺序中的TemporalId等于0前一个图像,
–将变量prevPicOrderCntLsb设置为prevTid0Pic的slice_pic_order_cnt_lsb。
–将变量prevPicOrderCntMsb设置为prevTid0Pic的PicOrderCntMsb。
当前图像的变量PicOrderCntMsb的推导方式如下:
–如果PicRefreshFlag等于1,当前图像为IRAP图像,则将PicOrderCntMsb设置为0。
–否则,PicOrderCntMsb的推导方式如下:
Figure BDA0003147326460000271
PicOrderCntVal的推导方式如下:
PicOrderCntVal=PicOrderCntMsb+slice_pic_order_cnt_lsb (8-2)
说明1:由于推断IRAP图像的slice_pic_order_cnt_lsb为0,而且将prevPicOrderCntLsb和prevPicOrderCntMsb都设置为0,因此所有IRAP图像的PicOrderCntVal都等于0。
PicOrderCntVal的取值范围为–231~231–1(包括端值)。在一个CVS中,任意两个编码图像的PicOrderCntVal值不相同。
在解码过程中的任何时刻,DPB中的任意两个参考图像的PicOrderCntVal&(MaxRefPicOrderCntLsb–1)的值不相同。
函数PicOrderCnt(picX)表示如下:
PicOrderCnt(picX)=PicOrderCntVal of the picture picX (8-3)
函数DiffPicOrderCnt(picA,picB)表示如下:
DiffPicOrderCnt(picA,picB)=PicOrderCnt(picA)-PicOrderCnt(picB) (8-4)
码流不包括使解码过程中使用的DiffPicOrderCnt(picA,picB)的值不在范围–215~215–1(包括端值)内的数据。
说明2:假设X为当前图像,Y和Z为同一个CVS中的另外两个图像,当DiffPicOrderCnt(X,Y)和DiffPicOrderCnt(X,Z)都为正或都为负时,认为Y和Z相对于X处于相同的输出顺序方向上。
下面描述用于参考图像列表构建的解码过程。
在非IRAP图像中的每个分块组的解码过程开始时,调用本过程。
参考图像通过参考索引进行寻址。参考索引是在参考图像列表中的索引。在解码I分块组时,不使用参考图像列表来解码分块组数据。在解码P分块组时,只使用参考图像列表0(即RefPicList[0])来解码分块组数据。在解码B分块组时,同时使用参考图像列表0和参考图像列表1(即RefPicList[1])来解码分块组数据。
Figure BDA0003147326460000282
中的每个分块组的解码过程开始时,推导参考图像列表RefPicList[0]和RefPicList[1]。使用这两个参考图像列表来标识参考图像或解码分块组数据。
说明1:对于不是IRAP分块组的I分块组,则为了检查码流一致性,可以推导RefPicList[0]和RefPicList[1],但解码当前图像或按照解码顺序在当前图像之后的图像不一定需要推导RefPicList[0]和RefPicList[1]。对于P分块组,则为了检查码流一致性,可以推导RefPicList[1],但解码当前图像或按照解码顺序在当前图像之后的图像不一定需要推导RefPicList[1]。
参考图像列表RefPicList[0]和RefPicList[1]的构建方式如下:
Figure BDA0003147326460000281
Figure BDA0003147326460000291
在每i等于0或1的情况下,,以下情况适用:
–RefPicList[i]中的前NumRefIdxActive[i]个表项称为RefPicList[i]中的激活表项,RefPicList[i]中的其它表项称为RefPicList[i]中的非激活表项。
–RefPicList[i][j]中的每个表项,j在0到NumEntriesInList[i][RplsIdx[i]]–1范围内(包括端值),如果lt_ref_pic_flag[i][RplsIdx[i]][j]等于0,则称为STRP表项,否则称为LTRP表项。
说明2:特定图像有可能由RefPicList[0]中的表项和RefPicList[1]中的表项共同参考。特定图像还有可能由RefPicList[0]中的多个表项或RefPicList[1]中的多个表项参考。
说明3:RefPicList[0]中的激活表项和RefPicList[1]中的激活表项共同参考所有可以用于当前图像和按照解码顺序在当前图像之后的一个或多个图像的帧间预测的参考图像。RefPicList[0]中的非激活表项和RefPicList[1]中的非激活表项共同参考所有不用于当前图像的帧间预测但可以用于解码顺序在当前图像之后的一个或多个图像的帧间预测的参考图像。
说明4:RefPicList[0]或RefPicList[1]中可以存在一个或多个“无参考图像”的表项,因为DPB中不存在对应的图像。忽略RefPicList[0]或RefPicList[0]中等于“无参考图像”的每个非激活表项。为RefPicList[0]或RefPicList[1]中等于“无参考图像”的每个激活表项推断无意图像丢失。
码流一致性的要求为使用以下约束条件:
在每个i等于0或1的情况下,NumEntriesInList[i][RplsIdx[i]]不小于NumRefIdxActive[i]。
–由RefPicList[0]或RefPicList[1]中的每个激活表项参考的图像存在于DPB中,并且其TemporalId小于或等于当前图像的TemporalId。
–图像中的条带的RefPicList[0]或RefPicList[1]中的STRP表项与同一个图像中的同一个条带或不同条带的RefPicList[0]或RefPicList[1]中的LTRP表项不参考同一个图像。
–当前图像的PicOrderCntVal与由LTRP表项参考的图像的PicOrderCntVal之间的差值大于或等于24,RefPicList[0]或RefPicList[1]中不存在这种表项。
–假设setOfRefPics为由RefPicList[0]中的所有表项和RefPicList[1]中的所有表项参考的独特图像集。setOfRefPics中的图像数量小于或等于sps_max_dec_pic_buffering_minus1,而且一个图像中的所有条带具有相同的setOfRefPics。
下面描述用于参考图像标识的解码过程。
在解码分块组头和用于分块组的参考图像列表重建的解码过程之后,但在解码分块组数据之前,每个图像调用一次本过程。本过程可能使得将DPB中的一个或多个参考图像标识为“不用于参考”或“用于长期参考”。
可以将DPB中的解码图像标识为“不用于参考”、“用于短期参考”或“用于长期参考”,但在解码过程中的任何给定时刻,这三种标识状态只能存在一种。将其中一个标识状态指定给图像会隐式地删除其它标识状态(如果适用)。当图像称为被标识为“用于参考”时,这统一是指将图像标识为“用于短期参考”或“用于长期参考”(但不是同时)。
如果当前图像为IRAP图像,则将DPB中当前包括的所有参考图像(如果有)都标识为“不用于参考”。
STRP通过它们的PicOrderCntVal值识别。LTRP通过它们的PicOrderCntVal值的Log2(MaxLtPicOrderCntLsb)个LSB识别。
以下适用:
–如果PicRefreshFlag等于1,则DPB中所有参考图像都标识为“不用于参考”。
–否则(sps_mixed_tile_groups_in_pic_flag等于1或当前分块组不是IDR分块组),则以下情况适用:
对于DPB中标识为“用于短期参考”的每个参考图像,当被RefPicList[0]或RefPicList[1]中的LTRP表项参考时,参考图像标识为“用于长期参考”。
将DPB中的未被RefPicList[0]或RefPicList[1]中的任何表项参考的每个参考图像标识为“不用于参考”。
进一步描述本发明的概念。
为了解决上述问题,公开了以下发明性方面,其中,每个发明性方面可以单独应用,而其中一些发明性方案可以组合应用。
(1)当图像中有多个子图像时,允许图像中同时有IRAP子图像和非IRAP子图像。
a、图像中的子图像可以为是图像的条带、分块组、MCTS或任何其它子集。
b、尽管不一定总是这样,子图像通常只包括在它自己的NAL单元中。
(2)在参数集、分块组头或补充增强信息(supplemental enhancementinformation,SEI)消息中可以包括/指示MCTS描述信息。
(3)或者,第(1)项可以表示为:当编码图像承载在多个NAL单元中时,这些NAL单元中的一个或多个可以为IRAP NAL单元类型,并且这些NAL单元中的一个或多个可以为非IRAP NAL单元类型(后置NAL单元类型)。
(4)当一个图像有多个子图像,且子图像是IRAP子图像和非IRAP子图像的混合图像时,要求该图像的TemporalId等于0。
(5)当一个图像有多个子图像,且子图像是IRAP子图像和非IRAP子图像的混合图像时,IRAP子图像可能需要是MCTS的一部分。
(6)当一个图像有多个子图像,且子图像是IRAP子图像和非IRAP子图像的混合图像时,接入单元定界符可能需要在码流中存在并与图像相关联,便于系统/应用识别接入单元。
(7)分块组直接或间接参考的参数集中存在标志,以标识是否存在具有混合IRAP和非IRAP子图像的图像。
a、可以在序列参数集、图像参数集或由分块组直接或间接参考的其它类型的参数集等参数集中指示该标志。具体地,优选在序列参数集中指示该标志。
b、该标志可以称为sps_mixed_tile_groups_in_pic_flag。
(8)对于包括IDR分块组的NAL单元,在其分块组头中有一个标志,以标识在对图像的POC推导中是否重置POC MSB。
(9)定义变量PicRefreshFlag,该变量与图像相关联。该标志标识解码图像时是否需要POC推导和更新DPB状态。
(10)PicRefreshFlag的值推导如下:
a、如果当前分块组属于码流中的第一个接入单元,则PicRefreshFlag设置为1。
b、如果当前分块组为IDR分块组,则PicRefreshFlag设置为sps_mixed_tile_groups_in_pic_flag?poc_msb_reset_flag:1
c、否则,如果当前分块组为CRA分块组,则以下情况适用:
i、如果当前接入单元是编码序列的第一个接入单元(即,紧跟NAL单元序列结束之后,或者相关变量HandleCraAsFirstPicInCvsFlag等于1),则PicRefreshFlag设置为1。
ii、否则,PicRefreshFlag设置为0。
d、否则(当前分块组不属于码流中的第一个接入单元且不是IRAP分块组),PicRefreshFlag设置为0。
(11)当PicRefreshFlag等于1时,在对图像进行POC推导时,POC MSB(即PicOrderCntMsb)的值被重置(即设置为0)。
(12)当sps_mixed_tile_group_in_pic_flag等于1时,以下约束条件适用:
a、当前图像的所有分块组均为IDR分块组时,当前图像的所有IDR分块组的poc_msb_reset_flag值应等于1。
b、当前图像包括IDR分块组且至少一个不是IDR分块组,poc_msb_reset_flag的值应等于0
(13)当从sps_mixed_tile_groups_in_pic_flag等于1的原码流中提取MCTS为子码流时,提取的子码流的激活SPS中的sps_mixed_tile_groups_in_pic_flag的值必须设置为0,即,在提取的子码流中每个图像必须仅具有IRAP分块组或仅具有非IRAP分块组。换言之,要求属于同一个图像和属于同一个MCTS的分块组必须具有相同的NAL单元类型。
(14)无论分块组是什么NAL单元类型,在分块组头中指示参考图像管理所需的信息,如参考图像集(RPS)或参考图像列表(RPL)。或者,可以仅在图像标头(如果图像标头存在)中指示此类信息。
(15)无论分块组是什么NAL单元类型,在每个分块组的解码起始处构造参考图像列表(例如,RPL方法的RefPicList[0]和RefPicList[1],RPS方法的RefPicList0[]和RefPicList1[],或包括用于图像帧间预测操作的参考图像的类似列表)。
(16)参考图像标识过程通过检查DPB中的每个参考图像是否被表项参考来完成,其中,所述表项在所指示的参考图像管理信息(例如,RPL方法的RefPicList[0]和RefPicList[1],或RPS方法的RPS子集)中。
(17)当PicRefreshFlag等于1时,在参考图像标识过程中,DPB中的所有参考图像都标识为“不用于参考”。
(18)RPL方法的详细参考图像标识过程如下:
a、如果PicRefreshFlag等于1,则DPB中所有参考图像都标识为“不用于参考”。
b、否则,以下情况适用:
i、对于DPB中标识为“用于短期参考”的每个参考图像,当该参考图像被RefPicList[0]或RefPicList[1]中的LTRP表项参考时,所述参考图像标识为“用于长期参考”。
ii、将DPB中的未被RefPicList[0]或RefPicList[1]中的任何表项参考的每个参考图像标识为“不用于参考”。
图9为本发明实施例提供的视频译码设备900(例如,视频编码器20或视频解码器30)的示意图。视频译码设备900适用于实现本文所述的所公开的实施例。视频译码设备900包括用于接收数据的入端口910和接收器单元(receiver unit,Rx)920;用于处理数据的处理器、逻辑单元或中央处理单元(central processing unit,CPU)930;用于发送数据的发送器单元(transmitter unit,Tx)940和出端口950;以及用于存储数据的存储器960。视频译码设备900还可以包括耦合到入端口910、接收器单元920、发送器单元940和出端口950的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用于光或电信号的出或入。
处理器930通过硬件和软件实现。处理器930可以实现为一个或多个CPU芯片、核(例如,作为多核处理器)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application-specific integrated circuit,ASIC)和数字信号处理器(digital signal processor,DSP)。处理器930与入端口910、接收器单元920、发送器单元940、出端口950和存储器960通信。处理器930包括译码模块970。译码模块970实现上文所公开的实施例。例如,译码模块970执行、处理、准备或提供各种联网操作。因此,包括译码模块970为视频译码设备900的功能提供了实质性改进,并且实现了视频译码设备900不同状态的转换。或者,以存储在存储器960中并由处理器930执行的指令来实现译码模块970。
视频译码设备900还可以包括用于向用户和从用户发送数据的输入和/或输出(input/output,I/O)设备980。I/O设备98可以包括输出设备,例如用于显示视频数据的显示器、用于输出音频数据的扬声器等。I/O设备98还可以包括输入设备,例如键盘、鼠标、轨迹球等,和/或用于与这些输出设备交互的对应接口。
存储器960包括一个或多个磁盘、磁带机和固态硬盘,并且可以用作溢出数据存储设备,以在选择此类程序用于执行时存储程序,以及存储在程序执行期间读取的指令和数据。存储器960可以是易失性和/或非易失性的,并且可以是只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(staticrandom-access memory,SRAM)。
图10为译码模块1000的一个实施例的示意图。在一个实施例中,所述译码模块1000在视频译码设备1002(例如,视频编码器20或视频解码器30)中实现。所述视频译码设备1002包括接收模块1001。所述接收模块1001用于接收图像以对所述图像进行编码,或接收码流以对所述码流进行解码。所述视频译码设备1002包括耦合到所述接收模块1001的发送模块1007。所述发送模块1007用于将所述码流发送到解码器或将经解码的图像发送到显示模块(例如,所述I/O设备980中的一个)。
所述视频译码设备1002包括存储模块1003。存储模块1003耦合到接收模块1001或发送模块1007中的至少一个。存储模块1003用于存储指令。视频译码设备1002包括处理模块1005。处理模块1005耦合到存储模块1003。处理模块1005用于执行存储在存储模块1003中的指令以执行本文公开的方法。
还应理解,本文中阐述的示例性方法的步骤不一定需要按照所描述的顺序执行,并且这些方法的步骤的顺序应理解为仅仅是示例性的。同样地,在与本发明各种实施例相一致的方法中,这些方法可以包括其它步骤,并且某些步骤可以省略或组合。
虽然本发明提供了若干个实施例,但应理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可能通过其它多种具体形式体现。本发明的示例应被视为说明性而非限制性的,且本发明并不限于本文本所给出的细节。例如,可以在另一系统中结合或集成各种元件或组件,或者可以省略或不实施某些特征。
另外,在不脱离本发明范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、模块、技术或方法进行组合或集成。展示或描述为彼此耦合或直接耦合或者通信的其它项也可以采用电方式、机械方式或其它方式经由某一接口、设备或中间组件间接地耦合或通信。其它变更、替换、更改示例可以由本领域技术人员在不脱离本文所公开的精神和范围的情况下确定。

Claims (32)

1.一种由视频解码器实现的对经译码的视频码流进行解码的方法,其特征在于,包括:
所述视频解码器的接收器接收包括第一子图像和第二子图像的混合(mixed)帧内随机接入点(intra random access point,IRAP)图像,其中,所述第一子图像为IRAP图像,所述第二子图像为非IRAP子图像;
所述接收器接收所述混合IRAP图像的参考图像列表(reference picture list,RPL);
所述视频解码器的处理器使用所述RPL解码所述第二子图像;
所述处理器根据经解码的所述第二子图像生成图像。
2.根据权利要求1所述的方法,其特征在于,所述混合IRAP图像在包括第一子码流和第二子码流的划分码流中接收。
3.根据权利要求1所述的方法,其特征在于,所述第一子图像设置在第一子码流中,所述第二子图像设置在第二子码流中。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述IRAP图像为即时解码刷新(instantaneous decoder refresh,IDR)图像。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述第一子图像为包括在第一网络抽象层(network abstraction layer,NAL)单元内的IRAP图像,所述第二子图像为包括在第二NAL单元内的非IRAP子图像。
6.根据权利要求1至5中任一项所述的方法,其特征在于,还包括在所述码流中接收标志,所述标志表示所述码流是否包括任何混合IRAP图像。
7.根据权利要求6所述的方法,其特征在于,所述标志在所述码流的序列参数集(sequence parameter set,SPS)中。
8.根据权利要求6或7所述的方法,其特征在于,所述标志为sps_mixed_tile_groups_in_pic_flag。
9.一种由视频编码器实现的对视频码流进行编码的方法,其特征在于,所述方法包括:
所述视频编码器的处理器对包括第一子图像和第二子图像的混合(mixed)帧内随机接入点(intra random access point,IRAP)图像进行编码,其中,所述第一子图像为IRAP图像,所述第二子图像为非IRAP子图像;
所述处理器对所述混合IRAP图像的参考图像列表(reference picture list,RPL)进行编码;
所述处理器生成包括所述混合IRAP图像和所述混合IRAP图像对应的RPL的码流;
在所述视频编码器的存储器中存储用于发送到视频解码器的所述码流。
10.根据权利要求9所述的方法,其特征在于,所述混合IRAP图像被编码到包括第一子码流和第二子码流的划分码流中。
11.根据权利要求9所述的方法,其特征在于,所述第一子图像被编码到第一子码流中,所述第二子图像被编码到第二子码流中。
12.根据权利要求9至11中任一项所述的方法,其特征在于,所述IRAP图像为即时解码刷新(instantaneous decoder refresh,IDR)图像。
13.根据权利要求9至12中任一项所述的方法,其特征在于,所述第一子图像为包括在第一网络抽象层(network abstraction layer,NAL)单元内的IRAP图像,所述第二子图像为包括在第二NAL单元内的非IRAP子图像。
14.根据权利要求9至13中任一项所述的方法,其特征在于,还包括对所述码流中的标志进行编码,所述标志表示所述码流是否包括任何混合IRAP图像。
15.根据权利要求14所述的方法,其特征在于,所述标志在所述码流的序列参数集(sequence parameter set,SPS)中。
16.根据权利要求14或15所述的方法,其特征在于,所述标志为sps_mixed_tile_groups_in_pic_flag。
17.一种解码设备,其特征在于,包括:
接收器,用于接收经译码的视频码流,所述经译码的视频码流包括:
包括第一子图像和第二子图像的混合帧内随机接入点(intra random access point,IRAP)图像,其中,所述第一子图像为IRAP图像,所述第二子图像为非IRAP子图像;
所述混合IRAP图像的参考图像列表(reference picture list,RPL);
耦合到所述接收器的存储器,所述存储器存储指令;
耦合到所述存储器的处理器,所述处理器用于执行所述指令以使所述解码设备执行以下操作:
使用所述RPL解码所述第二子图像;
根据经解码的所述第二子图像生成图像。
18.根据权利要求17所述的解码设备,其特征在于,还包括用于显示图像的显示器。
19.根据权利要求17所述的解码设备,其特征在于,所述接收器用于在包括第一子码流和第二子码流的划分码流中接收所述混合IRAP图像。
20.根据权利要求17所述的解码设备,其特征在于,所述第一子图像设置在第一子码流中,所述第二子图像设置在第二子码流中。
21.根据权利要求17至20所述的解码设备,其特征在于,所述IRAP图像为即时解码刷新(instantaneous decoder refresh,IDR)图像。
22.一种编码设备,其特征在于,包括:
存储器,所述存储器包括指令;
耦合到所述存储器的处理器,所述处理器用于执行所述指令以使所述编码设备执行以下操作:
对包括第一子图像和第二子图像的混合帧内随机接入点(intra random accesspoint,IRAP)图像进行编码,其中,所述第一子图像为IRAP图像,所述第二子图像为非IRAP子图像;
对所述混合IRAP图像的参考图像列表(reference picture list,RPL)进行编码;
生成包括所述混合IRAP图像和所述混合IRAP图像对应的RPL的码流;
将所述码流存储在所述存储器中,以向视频解码器发送所述码流。
23.根据权利要求22所述的编码设备,其特征在于,还包括耦合到所述处理器的发送器,所述发送器用于向所述视频解码器发送所述码流。
24.根据权利要求22所述的编码设备,其特征在于,所述混合IRAP图像被编码到包括第一子码流和第二子码流的划分码流中。
25.根据权利要求22所述的编码设备,其特征在于,所述第一子图像被编码到第一子码流中,所述第二子图像被编码到第二子码流中。
26.根据权利要求22至25中任一项所述的编码设备,其特征在于,所述IRAP图像为即时解码刷新(instantaneous decoder refresh,IDR)图像。
27.一种译码装置,其特征在于,包括:
接收器,用于接收图像进行编码或接收码流进行解码;
耦合到所述接收器的发送器,其中,所述发送器用于将所述码流发送到解码器或将经解码的图像发送到显示器;
耦合到所述接收器和所述发送器中的至少一个的存储器,其中,所述存储器用于存储指令;
耦合到所述存储器的处理器,其中,所述处理器用于执行存储在所述存储器中的所述指令,以执行权利要求1至8以及权利要求9至16中任一项所述的方法。
28.一种系统,其特征在于,包括:
编码器;
与所述编码器通信的解码器,所述编码器或所述解码器包括如权利要求17至27中任一项所述的解码设备、编码设备或译码装置。
29.一种译码模块,其特征在于,包括:
接收模块,用于接收码流以对所述码流进行解码;
耦合到所述接收模块的发送模块,所述发送模块用于将经解码的图像发送到显示模块;
耦合到所述接收模块或所述发送模块中的至少一个的存储模块,所述存储模块用于存储指令;
耦合到所述存储模块的处理模块,所述处理模块用于执行存储在所述存储模块中的所述指令,以执行权利要求1至8中任一项所述的方法。
30.一种解码设备,其特征在于,包括:
接收器,用于接收经译码的视频码流;
耦合到所述接收器的处理器,所述处理器用于:
解析所述经译码的视频码流中的标志,其中,所述标志的值表示所述经译码的视频码流中的图像的混合网络抽象层(network abstraction layer,NAL)单元类型;
根据所述标志的值将所述图像解码为非帧内随机接入点(intra random accesspoint,IRAP)图像;
根据经解码的所述图像生成图像。
31.根据权利要求30所述的解码设备,其特征在于,当所述图像为IRAP NAL单元类型时,将所述图像解码为非IRAP图像。
32.根据权利要求31所述的解码设备,其特征在于,所述标志的值为1。
CN202080008008.6A 2019-01-04 2020-01-03 基于子图像的随机接入 Pending CN113273202A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962788634P 2019-01-04 2019-01-04
US62/788,634 2019-01-04
PCT/US2020/012205 WO2020142704A1 (en) 2019-01-04 2020-01-03 Sub-picture based random access

Publications (1)

Publication Number Publication Date
CN113273202A true CN113273202A (zh) 2021-08-17

Family

ID=71407419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080008008.6A Pending CN113273202A (zh) 2019-01-04 2020-01-03 基于子图像的随机接入

Country Status (7)

Country Link
US (1) US11936882B2 (zh)
EP (1) EP3906685A4 (zh)
JP (2) JP7378478B2 (zh)
KR (1) KR20210107121A (zh)
CN (1) CN113273202A (zh)
MX (1) MX2021008155A (zh)
WO (1) WO2020142704A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX2021009140A (es) * 2019-02-01 2021-10-13 Fraunhofer Ges Forschung Codec de video que permite el acceso aleatorio a subimágenes o regiones y concepto para la composición de video usando el mismo.
EP3935835A4 (en) * 2019-03-08 2022-12-14 Telefonaktiebolaget Lm Ericsson (Publ) METHODS OF PROVIDING DEPENDENT/INDEPENDENT SCORE ENCODING/DECODING AND ASSOCIATED DEVICES
KR20240056804A (ko) 2019-03-11 2024-04-30 후아웨이 테크놀러지 컴퍼니 리미티드 혼합된 nal 유닛 타입들을 갖는 픽처들
KR20220101712A (ko) * 2019-12-23 2022-07-19 엘지전자 주식회사 슬라이스 또는 픽처에 대한 nal 유닛 타입 기반 영상 또는 비디오 코딩
EP4117291A4 (en) * 2020-03-05 2024-03-27 Lg Electronics Inc METHOD AND DEVICE FOR CODING/DECODING VIDEOS WITH MIXED UNITS AND METHOD FOR TRANSMITTING BIT STREAMS

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9674533B2 (en) * 2013-04-05 2017-06-06 Qualcomm Incorporated Picture alignments in multi-layer video coding
CN105765978B (zh) * 2013-10-11 2019-01-29 韩国电子通信研究院 用于编码/解码图像的方法和使用其的装置
US10404987B2 (en) * 2013-10-11 2019-09-03 Telefonaktiebolaget L M Ericsson (Publ) Layer switching in video coding
JP6348188B2 (ja) * 2014-06-18 2018-06-27 テレフオンアクチーボラゲット エルエム エリクソン(パブル) ビデオにおけるピクチャのロバストな符号化および復号化
JP2017522767A (ja) * 2014-06-18 2017-08-10 テレフオンアクチーボラゲット エルエム エリクソン(パブル) ビデオビットストリームにおけるランダムアクセス
WO2018071666A1 (en) * 2016-10-12 2018-04-19 Arris Enterprises Llc Coding schemes for virtual reality (vr) sequences
US11589069B2 (en) * 2018-09-20 2023-02-21 Sharp Kabushiki Kaisha Systems and methods for signaling parameters in video coding
EP4084490A1 (en) * 2019-01-02 2022-11-02 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding

Also Published As

Publication number Publication date
KR20210107121A (ko) 2021-08-31
JP2022518368A (ja) 2022-03-15
MX2021008155A (es) 2021-10-13
EP3906685A1 (en) 2021-11-10
EP3906685A4 (en) 2022-03-30
JP7378478B2 (ja) 2023-11-13
JP2023164845A (ja) 2023-11-14
WO2020142704A1 (en) 2020-07-09
US11936882B2 (en) 2024-03-19
US20210329263A1 (en) 2021-10-21

Similar Documents

Publication Publication Date Title
US11917134B2 (en) Gradual decoding refresh in video coding
CN114584775B (zh) 经译码的视频码流的解码方法,解码设备,译码系统
KR102643058B1 (ko) 참조 화상 목록 구조에 대한 후보 시그널링
US11936882B2 (en) Sub-picture based random access
US11895312B2 (en) Output of prior pictures for pictures starting a new coded video sequence in video coding

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination