CN111713106A - 用信号发送360度视频信息 - Google Patents
用信号发送360度视频信息 Download PDFInfo
- Publication number
- CN111713106A CN111713106A CN201980012999.2A CN201980012999A CN111713106A CN 111713106 A CN111713106 A CN 111713106A CN 201980012999 A CN201980012999 A CN 201980012999A CN 111713106 A CN111713106 A CN 111713106A
- Authority
- CN
- China
- Prior art keywords
- video
- degree video
- information
- syntax structure
- degree
- 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
Links
- 230000011664 signaling Effects 0.000 title claims abstract description 43
- 238000000034 method Methods 0.000 claims abstract description 89
- 230000015654 memory Effects 0.000 claims description 60
- 238000012545 processing Methods 0.000 claims description 35
- 238000003860 storage Methods 0.000 claims description 19
- 230000000153 supplemental effect Effects 0.000 claims description 8
- 238000013139 quantization Methods 0.000 description 27
- 239000013598 vector Substances 0.000 description 22
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 21
- 241000023320 Luma <angiosperm> Species 0.000 description 18
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 18
- 230000008569 process Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 16
- 238000000638 solvent extraction Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 238000005192 partition Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 8
- 238000013500 data storage Methods 0.000 description 7
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000012805 post-processing Methods 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000010267 cellular communication Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/184—Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开描述了用于以句法结构用信号发送360度视频信息的技术。作为一个实例,本公开描述了用于以包含一或多个句法元素的句法结构用信号发送360度视频的投影类型和相关信息的实例。在一些实例中,相同的句法结构也可以包含非360度视频信息。因此,所述句法结构可用于编码和解码仅携带非360度视频数据、仅携带360度视频数据或同时携带非360度视频数据和360度视频数据的位流。
Description
本申请要求于2019年2月13日申请的美国申请第16/274,674号的优先权,所述美国申请要求于2018年2月14日申请的美国临时申请第62/630,701号的权益,这两个申请的整个内容以引用方式并入本文中。
技术领域
本公开涉及视频编码和视频解码。
背景技术
数字视频能力可以被合并到各种各样的装置中,包含数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、平板计算机、电子书阅读器、数字摄像机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电话、所谓的“智能电话”、视频电话会议装置、视频流装置等。数字视频装置实施视频译码技术,例如由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、第10部分、高级视频译码(AVC)、高效视频译码(HEVC)标准、ITU-T H.265/高效视频译码(HEVC)和此类标准的扩展定义的标准中所描述的那些技术。视频装置可通过实施此类视频译码技术来更有效地传输、接收、编码、解码和/或存储数字视频信息。
视频译码技术包含空间(图片内)预测和/或时间(图片间)预测以减少或清除视频序列中固有的冗余。对于基于块的视频译码,可将视频切片(例如,视频图片或视频图片的一部分)分割为视频块,所述视频块也可被称为译码树单元(CTU)、译码单元(CU)和/或译码节点。使用关于图片中的相邻块中的参考样本的空间预测对同一图片的帧内译码(I)切片中的视频块进行编码。图片的帧间译码(P或B)切片中的视频块可使用关于同一图片中的相邻块中的参考样本的空间预测或关于其它参考图片中的参考样本的时间预测。图片可以被称为帧,而参考图片可以被称为参考帧。
发明内容
一般来说,本公开描述了用于以句法结构用信号发送360度视频信息的技术。作为一个实例,本公开描述了用于以包含一或多个句法元素的句法结构用信号发送360度视频的投影类型和相关信息的实例。在一些实例中,相同的句法结构也可以包含非360度视频信息。
在一个实例中,本公开描述了一种解码视频数据的方法,所述方法包括:接收指示经译码位流包含360度视频的信息作为句法结构的一部分;基于经译码位流包含360度视频的信息的接收来接收360度视频的信息;接收非360度视频的信息作为同一句法结构的一部分;以及解码360度视频和非360度视频。
在一个实例中,本公开描述了一种对视频数据进行编码的方法,所述方法包括:用信号发送指示经译码位流包含360度视频的信息作为句法结构的一部分;基于经译码位流包含360度视频,用信号发送360度视频的信息;用信号发送非360度视频的信息作为同一句法结构的一部分;以及对360度视频和非360度视频进行编码。
在一个实例中,本公开描述了一种用于解码视频数据的装置,所述装置包括:存储器,其经配置以存储视频数据;以及视频解码器,其包括以固定功能或可编程的电路实施的一或多个处理单元。视频解码器经配置以接收指示经译码位流包含360度视频的信息,作为在存储器中存储为视频数据的句法结构的一部分;基于经译码位流包含360度视频的信息的接收来接收360度视频的信息;接收非360度视频的信息作为同一句法结构的一部分;以及解码360度视频和非360度视频。
在一个实例中,本公开描述了一种其上存储有指令的计算机可读存储媒体,所述指令在被执行时使得用于解码视频数据的装置的一或多个处理器接收指示经译码位流包括360度视频的信息作为句法结构的一部分,基于对经译码位流包含360度视频的信息的接收来接收360度视频的信息,接收非360度视频的信息作为同一句法结构的一部分,并且解码360度视频和非360度视频。
下文在附图和说明书中阐述一或多个实例的细节。根据说明书、附图和权利要求书,其它特征、目标和优势将显而易见。
附图说明
图1是示出可执行本公开的技术的实例视频编码解码系统的框图。
图2A和2B是示出实例四叉树二叉树(QTBT)结构和相应的译码树单元(CTU)的概念图。
图3是示出可执行本公开的技术的实例视频编码器的框图。
图4是示出可执行本公开的技术的实例视频解码器的框图。
图5是示出编码视频数据的实例方法的流程图。
图6是示出解码视频数据的实例方法的流程图。
具体实施方式
视频译码标准包含ITU-T H.261、ISO/IEC MPEG-1可视、ITU-T H.262或ISO/IECMPEG-2可视、ITU-T H.263、ISO/IEC MPEG-4可视、ITU-T H.264(也称为ISO/IEC MPEG-4AVC),包含其可缩放视频译码(SVC)和多视图视频译码(MVC)扩展以及具有其扩展的ITU-TH.265(也称为ISO/IEC MPEG-4HEVC)。H.265规范的最新草案是:ITU-T H.265,系列H:视听和多媒体系统、视听服务的基础设施-运动视频的译码、通用视听服务的高级视频译码、国际电信联盟。2016年12月,本文称为H.265或HEVC。
对于下一代视频译码,正在开发许多用于对360度视频进行译码的方法以及用于对非360度视频进行译码的方法。360度视频的编码和解码可能不同于非360度视频的编码和解码,因为360度视频的编码和解码可能需要不同组的译码工具、不同的预处理要求和不同的后处理要求。
在本公开中,360度视频可以指其中存在以围绕视频内容捕获装置的视角捕获的图像内容的实例。例如,所捕获的图像内容可以被认为是图像内容的范围,并且观看者实际上可以从任何角度观看图像内容。在本公开中,360度视频不应被认为限于完整的360度视频。一般来说,360度视频是指实例编码和解码视频内容,其包含并且延伸超出观看者当前正在观看图像内容的周边(称为视口)。360度视频可以允许观看者查看视口的上方、下方、左边或右边。视口可以形成所有视频内容的子集。因此,在360度视频中,编码和解码可以包含对在视口之外的视频内容进行编码和解码,使得当观看者确定观看在视口之外的视频内容时,这种视频内容可用于所述观看者。
在本公开中,非360度视频可以指编码和解码的视频内容用于固定的观看者视角的实例。作为一个实例,在矩形视频中,观看者视角是固定的,并且观看者可能不能观看正被显示(例如,在视口中)的矩形视频的上方、下方、左边或右边的图像内容。因此,在非360度视频中,编码和解码可以不包含对在视口之外的视频内容进行编码和解码,因为在视口之外的视频内容不需要对观看者可用。
因此,对于360度视频,可能需要附加的预处理和后处理操作。作为一个实例,编码器预处理包含不同观看视角的视频内容的拼接和投影,并且解码器后处理可以包含用于渲染的相应步骤。例如,360度视频的处理可以包含将视频内容转换或投影为某种类型的投影类型,例如等矩形投影(equiretangular projection,ERP)、立方图投影(cubemapprojection,CMP)及其衍生投影,例如调整立方图(ACP)和赤道柱面投影(ECP)。将这种投影信息从视频编码器用信号发送到视频解码器,视频解码器可由360度视频专用译码工具和/或360度视频专用后处理使用。此外,对于360度视频,可能存在投影元数据等的附加信令。
作为一个实例,“360度视频数据”可以包含具有对应于立方图投影的相交、正交平面的多个区域的帧。例如,在一些实例中,由视频编码器编码或由视频解码器解码的帧是平面二维(2D)图像。然而,2D图像的内容包含视口外部的图像内容,例如形成实例投影的不同平面的区域。在一些实例中,“非360度视频数据”也可以是平面2D图像,但不包含视口之外的区域。提供对360度视频和非360度视频的差异的以上实例描述仅是为了帮助理解,而不应被视为是限制。一般来说,360度视频数据处理提供对在观看者的当前视口外部的视频数据进行编码和解码,从而允许观看者看到当前视口的上方、下方、前方、后方、左边和/或右边的视频内容。然而,非360度视频数据处理可能限于当前视口,可能具有一些用于译码的周边信息,但不足以允许观看者在当前视口的上方、下方、前面、后面、左边和/或右边的视频内容。
视频译码(例如,编码或解码)领域中的实例技术问题可能是应当以与用信号发送非360度视频兼容的方式来完成用信号发送360度视频的信息。由于用信号发送360度视频和非360度视频信息之间的兼容性,360度视频信息的编码和解码可以使用许多(例如大多数或全部)用于非360度视频信息的译码工具和可能更多的译码工具来执行。本公开描述了对技术问题的一或多个实例技术解决方案,使得可以以兼容方式用信号发送360度视频信息和非360度视频信息。
作为一个实例,实例技术可以包含一种以包含一或多个句法元素的句法结构来用信号发送360度视频信息的投影类型和相关信息的方法。句法结构还可以包含用于非360度视频信息的信息。因此,句法结构可以是用于用信号发送非360度视频信息的句法结构,并且还可以用于用信号发送360度视频信息(例如,句法结构形成符合标准的位流的一部分,而不管符合标准的位流是否包含360度视频)。例如,句法结构可用于编码和解码仅携带非360度视频数据、仅携带360度视频数据或同时携带非360度视频数据和360度视频数据的位流。句法结构的实例包含参数集;然而,存在句法结构的其它实例,如以下更详细描述的那些。
图1是示出可执行本公开的技术的实例视频编码解码系统100的框图。本公开的技术通常针对译码(编码和/或解码)视频数据。一般来说,视频数据包含用于处理视频的任何数据。因此,视频数据可以包含原始的、未译码的视频、经编码视频、经解码(例如,重构)视频和视频元数据,例如信令数据。
如图1所示,在此实例中,系统100包含源装置102,所述源装置102提供将由目的地装置116解码和显示的经编码视频数据。具体地说,源装置102经由计算机可读媒体110将视频数据提供给目的地装置116。源装置102和目的地装置116可以包括多种装置中的任何一种,包含台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、如智能电话的电话手机、电视、摄像机、显示装置、数字媒体播放器、视频游戏控制台、视频流装置等。在一些情况下,源装置102和目的地装置116可以被配备用于无线通信,并且因此可以被称为无线通信装置。
在图1的实例中,源装置102包含视频源104、存储器106、视频编码器200和输出接口108。目的地装置116包含输入接口122、视频解码器300、存储器120和显示装置118。根据本公开,源装置102的视频编码器200和目的地装置116的视频解码器300可经配置以应用用于360度视频译码(例如,由视频编码器200进行编码且由视频解码器300进行解码)的技术。因此,源装置102表示视频编码装置的实例,而目的地装置116表示视频解码装置的实例。在其它实例中,源装置和目的地装置可以包含其它组件或布置。例如,源装置102可以从外部视频源接收视频数据,所述外部视频源例如是外部摄像机或捕获360度视频的外部摄像机。同样,目的地装置116可以与外部显示装置接口连接,而不是包含集成显示装置。
图1所示的系统100仅仅是一个实例。一般来说,任何数字视频编码和/或解码装置可执行本公开中所描述的技术。源装置102和目的地装置116仅仅是这种编码装置的实例,其中源装置102生成用于传输到目的地装置116的经译码视频数据。本公开将“译码”装置称为执行数据的译码(编码和/或解码)的装置。因此,视频编码器200和视频解码器300分别表示译码装置的实例,尤其是视频编码器和视频解码器。在一些实例中,装置102、116可以大体上对称的方式操作,使得装置102、116中的每一个包含视频编码和解码组件。因此,系统100可以支持视频装置102、116之间的单向或双向视频传输,例如用于视频流、视频回放、视频广播或视频电话。
一般来说,视频源104表示视频数据源(即,原始的、未译码的视频数据),并且向视频编码器200提供视频数据的图片序列(也称为“帧”),所述视频编码器200对图片的数据进行编码。视频源104或源装置102可以包含视频捕获装置,例如摄影机,包含先前捕获的原始视频的视频档案,和/或从视频内容提供商接收视频的视频馈送接口。作为另一替代,视频源104可生成基于计算机图形的数据作为源视频,或现场视频、存档视频和计算机生成的视频的组合。在每种情况下,视频编码器200对捕获的、预捕获的或计算机生成的视频数据进行编码。视频编码器200可以将图片从所接收的顺序(有时称为“显示顺序”)重新排列成用于译码的译码顺序。视频编码器200可生成包含经编码视频数据的位流。然后,源装置102可以经由输出接口108将经编码视频数据输出到计算机可读媒体110上,用于由例如目的地装置116的输入接口122接收和/或检索。
源装置102的存储器106和目的地装置116的存储器120表示通用存储器。在一些实例中,存储器106、120可以存储原始视频数据,例如来自视频源104的原始视频和来自视频解码器300的原始解码视频数据。附加地或可替换地,存储器106、120可以分别存储可由例如视频编码器200和视频解码器300执行的软件指令。尽管在此实例中与视频编码器200和视频解码器300分开展示,但应了解,视频编码器200和视频解码器300还可包含用于功能上类似或等效目的的内部存储器。此外,存储器106、120可以存储例如从视频编码器200输出并且输入到视频解码器300的经编码视频数据。在一些实例中,存储器106、120的部分可被分配为一或多个视频缓冲器,以(例如)存储原始、经解码和/或经编码视频数据。
计算机可读介质110可以表示能够将编码视频数据从源装置102传输到目的地装置116的任何类型的媒体或装置。在一个实例中,计算机可读媒体110表示使得源装置102能够例如经由射频网络或基于计算机的网络将经编码视频数据实时地直接传输到目的地装置116的通信媒体。根据如无线通信协议的通信标准,输出接口108可以调制包含经编码视频数据的传输信号,并且输入接口122可以调制所接收的传输信号。通信媒体可以包括任何无线或有线通信介质,例如射频(RF)频谱或一或多个物理传输线。通信媒体可以形成基于分组的网络的一部分,例如局域网、广域网或如因特网的全球网络。通信媒体可包含路由器、交换机、基站或可用于促进从源装置102到目的地装置116的通信的任何其它设备。
在一些实例中,源装置102可以将经编码数据从输出接口108输出到存储装置112。类似地,目的地装置116可以经由输入接口122从存储装置112访问经编码数据。存储装置112可以包含各种分布式或本地访问的数据存储媒体中的任何一种,例如硬盘驱动器、蓝光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储媒体。
在一些实例中,源装置102可将经编码视频数据输出到文件服务器114或可存储由源装置102生成的经编码视频的另一中间存储装置。目的地装置116可以经由串流或下载从文件服务器114访问所存储的视频数据。文件服务器114可以是能够存储经编码视频数据并将该经编码视频数据发送到目的地装置116的任何类型的服务器装置。文件服务器114可以表示web服务器(例如,用于网站)、文件传送协议(FTP)服务器、内容分发网络装置或网络附加存储(NAS)装置。目的地装置116可以通过任何标准数据连接(包含因特网连接)从文件服务器114访问经编码视频数据。这可以包含适合于访问存储在文件服务器114上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。文件服务器114和输入接口122可经配置以根据流传输协议、下载传输协议或其组合来操作。
输出接口108和输入接口122可以表示无线发射机/接收机、调制解调器、有线联网组件(例如,以太网卡)、根据各种IEEE 802.11标准中的任何标准操作的无线通信组件,或其它物理组件。在输出接口108和输入接口122包括无线组件的实例中,输出接口108和输入接口122可经配置以根据蜂窝通信标准(例如4G、4G-LTE(长期演进)、LTE高级、5G等)来传送数据(例如经编码视频数据)。在输出接口108包括无线发射机的一些实例中,输出接口108和输入接口122可经配置以根据其它无线标准来传送数据,例如编码视频数据,所述其它无线标准例如是IEEE 802.11规范、IEEE 802.15规范(例如ZigBeeTM)、BluetoothTM标准等。在一些实例中,源装置102和/或目的地装置116可以包含相应的片上系统(SoC)装置。例如,源装置102可以包含用以执行归因于视频编码器200和/或输出接口108的功能性的SoC装置,并且目的地装置116可包含用以执行归因于视频解码器300和/或输入接口122的功能性的SoC装置。
本发明的技术可应用于视频译码以支持各种多媒体应用中的任一者,例如空中电视广播、有线电视传输、卫星电视传输、因特网串流视频传输(例如基于HTTP的动态自适应串流(DASH))、被编码到数据存储媒体上的数字视频、对存储在数据存储媒体上的数字视频的解码或其它应用。
目的地装置116的输入接口122接收来自计算机可读媒体110(例如,存储装置112、文件服务器114等)的经编码视频位流。经编码视频位流计算机可读媒体110可包含由视频编码器200定义的信令信息,其也由视频解码器300使用,例如具有描述视频块或其它经译码单元(例如,切片、图片、图片群组、序列等)的特性和/或处理的值的句法元素。显示装置118向用户显示经解码视频数据的经解码图片。显示装置118可以表示各种显示装置中的任何一种,例如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一种类型的显示装置。
尽管图1中未展示,但在一些实例中,视频编码器200和视频解码器300每一者可与音频编码器和/或音频解码器集成,并且可包含适当的MUX-DEMUX单元或其它硬件和/或软件,以处理共同数据流中包含音频和视频两者的复用流。如果适用,那么MUX-DEMUX单元可符合ITU H.223多路复用器协议或例如用户数据报协议(UDP)的其它协议。
视频编码器200和视频解码器300每一者可实施为各种合适的编码器电路及/或解码器电路中的任一者,例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当所述技术部分地以软件实施时,装置可将用于所述软件的指令存储在合适的非暂时性计算机可读媒体中,且使用一或多个处理器在硬件中执行所述指令以执行本公开的技术。视频编码器200和视频解码器300中的每一个可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为相应装置中的组合编码器/解码器(CODEC)的一部分。包含视频编码器200和/或视频解码器300的装置可以包括集成电路、微处理器和/或无线通信装置,例如蜂窝电话。
视频编码器200和视频解码器300可根据视频译码标准(例如ITU-T H.265,也称为高效视频译码(HEVC))或其扩展(例如多视图和/或可缩放视频译码扩展)来操作。或者,视频编码器200和视频解码器300可根据其它专有或工业标准操作,例如用于开发中的通用视频译码(VVC)标准的联合探索测试模型(JEM)。然而,本公开的技术不限于任何特定译码标准。
一般来说,视频编码器200和视频解码器300可以执行图片的基于块的译码。术语“块”通常是指包含待处理(例如,编码、解码或以其它方式用于编码和/或解码过程中)的数据的结构。例如,块可以包含亮度数据和/或色度数据的样本的二维矩阵。通常,视频编码器200和视频解码器300可以对以YUV(例如,Y、Cb、Cr)格式表示的视频数据进行译码。也就是说,视频编码器200和视频解码器300可以对亮度分量和色度分量进行译码,而不是对图片的样本的红、绿和蓝(RGB)数据进行译码,其中色度分量可以包含红色调色度分量和蓝色调色度分量。在一些实例中,视频编码器200在编码之前将所接收的RGB格式化数据转换为YUV表示,并且视频解码器300将YUV表示转换为RGB格式。或者,前处理单元和后处理单元(未示出)可以执行这些转换。
本公开通常可以涉及对图片进行译码(例如,编码和解码)以包含对图片的数据进行编码或解码的过程。类似地,本公开可以涉及对图片的块进行译码以包含对块的数据进行编码或解码的过程,例如预测和/或残差译码。经编码的视频位流通常包含用于句法元素的一系列值,所述句法元素表示译码决策(例如,译码模式)和将图片分割为块。因此,对图片或块进行译码的参考通常应当被理解为用于形成图片或块的句法元素的译码值。
HEVC定义各种块,包含译码单元(CU)、预测单元(PU)和变换单元(TU)。根据HEVC,视频译码器(例如视频编码器200)根据四叉树结构将译码树单元(CTU)划分为CU。即,视频译码器将CTU和CU划分成四个相等的、非重叠的正方形,并且四叉树的每个节点具有零个或四个子节点。没有子节点的节点可以被称为“叶节点”,并且这种叶节点的CU可以包含一或多个PU和/或一或多个TU。视频译码器可进一步分割PU和TU。例如,在HEVC中,残差四叉树(RQT)表示TU的划分。在HEVC中,PU表示帧间预测数据,而TU表示残差数据。帧内预测的CU包含帧内预测信息,例如帧内模式指示。
作为另一实例,视频编码器200和视频解码器300可经配置以根据VVC的JEM来操作。根据JEM,视频译码器(例如视频编码器200)将图片分割成多个译码树单元(CTU)。视频编码器200可根据树结构(例如四叉树-二叉树(QTBT)结构)来分割CTU。JEM的QTBT结构去除了多个分区类型的概念,例如HEVC的CU、PU和TU之间的分离。JEM的QTBT结构包含两级:根据四叉树分割而分割的第一级,以及根据二叉树分割而分割的第二级。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于译码单元(CU)。
在一些实例中,视频编码器200和视频解码器300可以使用单个QTBT结构来表示亮度分量和色度分量中的每一个,而在其它实例中,视频编码器200和视频解码器300可以使用两个或两个以上QTBT结构,例如一个QTBT结构用于亮度分量,而另一个QTBT结构用于两个色度分量(或者两个QTBT结构用于相应的色度分量)。
视频编码器200和视频解码器300可经配置以使用每个HEVC的四叉树分割,根据VVC的JEM的QTBT分割,或其它分割结构。出于解释的目的,针对QTBT分割来呈现对本公开的技术的描述。然而,应了解,本公开的技术也可应用于经配置以使用四叉树分割或其它类型的分割的视频译码器。
本公开可互换地使用“N×N”和“N乘N”来指代块(例如CU或其它视频块)在垂直和水平维度方面的样本维度,例如16×16样本或16乘16样本。通常,16×16CU将具有垂直方向上的16个样本(y=16)和水平方向上的16个样本(x=16)。同样,NxN CU通常具有垂直方向上的N个样本和水平方向上的N个采样,其中N表示非负整数值。CU中的采样可以按行和列排列。此外,CU不一定在水平方向上具有与垂直方向上相同数量的样本。例如,CU可以包括N×M个样本,其中M不一定等于N。
视频编码器200对表示预测和/或残余信息以及其它信息的CU的视频数据进行编码。预测信息指示如何预测CU以便形成CU的预测块。残余信息通常表示编码之前CU的样本与预测块之间的逐个样本差异。
为了预测CU,视频编码器200通常可通过帧间预测或帧内预测形成CU的预测块。帧间预测通常指根据先前译码的图片的数据预测CU,而帧内预测通常指根据同一图片的先前译码的数据预测CU。为了执行帧间预测,视频编码器200可使用一或多个运动向量来生成预测块。视频编码器200通常可执行运动搜索以(例如)在CU与参考块之间的差异方面识别与CU紧密匹配的参考块。视频编码器200可使用绝对差和(SAD)、平方差和(SSD)、平均绝对差(MAD)、均方差(MSD)或其它此类差计算来计算差度量,以确定参考块是否与当前CU紧密匹配。在一些实例中,视频编码器200可使用单向预测或双向预测来预测当前CU。
VVC的JEM还提供仿射运动补偿模式,其可被认为是帧间预测模式。在仿射运动补偿模式中,视频编码器200可确定表示非平移运动(例如放大或缩小、旋转、透视运动或其它不规则运动类型)的两个或两个以上运动向量。
为了执行帧内预测,视频编码器200可选择帧内预测模式以生成预测块。VVC的JEM提供67个帧内预测模式,包含各种方向模式以及平面模式和DC模式。一般来说,视频编码器200选择描述当前块(例如,CU的块)的相邻样本的帧内预测模式,从中预测当前块的样本。假设视频编码器200以光栅扫描顺序(从左到右、从上到下)对CTU和CU进行译码,则这样的样本通常可以在与当前块相同的图片中位于当前块的上方、左上方,或者左边。
视频编码器200对表示当前块的预测模式的数据进行编码。举例来说,对于帧间预测模式,视频编码器200可对表示使用各种可用帧间预测模式中的哪一者的数据以及相应模式的运动信息进行编码。例如,对于单向或双向帧间预测,视频编码器200可使用高级运动向量预测(AMVP)或合并模式来对运动向量进行编码。视频编码器200可使用类似模式来对仿射运动补偿模式的运动向量进行编码。
在预测(例如块的帧内预测或帧间预测)之后,视频编码器200可计算所述块的残差数据。残差数据(例如残差块)表示块与所述块的使用相应预测模式形成的预测块之间的逐个样本差异。视频编码器200可将一或多个变换应用于残差块,以在变换域而非样本域中产生经变换的数据。例如,视频编码器200可将离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换应用于残差视频数据。另外,视频编码器200可在第一变换之后应用次级变换,例如模式相关的不可分离次级变换(MDNSST)、信号相关变换、卡洛变换(Karhunen-Loeve,KLT)等。视频编码器200在应用一或多个变换之后产生变换系数。
如上所述,在产生变换系数的任何变换之后,视频编码器200可执行变换系数的量化。量化通常指的是其中变换系数被量化以便可能减少用于表示系数的数据量,从而提供进一步压缩的过程。通过执行量化过程,视频编码器200可减小与一些或所有系数相关联的位深度。例如,视频编码器200可在量化期间将n位值向下舍入到m位值,其中n大于m。在一些实例中,为了执行量化,视频编码器200可执行待量化的值的逐位右移。
在量化之后,视频编码器200可扫描变换系数,从包含经量化的变换系数的二维矩阵产生一维向量。可以将扫描设计为将较高能量(因此较低频率)的系数放置在向量的前面,并且将较低能量(因此较高频率)的变换系数放置在向量的后面。在一些实例中,视频编码器200可利用预定义扫描顺序来扫描经量化变换系数以产生串行化向量,且接着熵编码所述向量的经量化变换系数。在其它实例中,视频编码器200可执行自适应扫描。在扫描经量化的变换系数以形成一维向量之后,视频编码器200可(例如)根据上下文自适应二进制算术译码(CABAC)对一维向量进行熵编码。视频编码器200还可熵编码用于句法元素的值,以供视频解码器300在解码视频数据时使用,所述句法元素描述与经编码视频数据相关联的元数据。
为了执行CABAC,视频编码器200可以将上下文模型中的上下文分配给待发送的符号。例如,上下文可以涉及符号的相邻值是否为零值。概率确定可以基于分配给符号的上下文。
视频编码器200可进一步向视频解码器300产生(例如)(例如)以图片标头、块标头、切片标头中的句法数据(例如,基于块的句法数据、基于图片的句法数据和基于序列的句法数据)或其它句法数据(例如,序列参数集(SPS)、图片参数集(PPS)或视频参数集(VPS))。视频解码器300可同样地解码此类句法数据以确定如何解码相应的视频数据。
在一或多个实例中,视频编码器200可生成各自包含一或多个句法元素的句法结构。在一些实例中,视频编码器200可以用信号发送360度视频的信息作为句法结构的一部分,并且用信号发送非360度视频的信息作为同一句法结构的一部分。视频解码器300可以接收360度视频的信息作为句法结构的一部分,并且接收非360度视频的信息作为同一句法结构的一部分。如上所述,句法结构包含一或多个句法元素。句法元素可以一起形成以下中的一或多个:序列参数集(SPS)、SPS扩展、图片参数集(PPS)、PPS扩展、视频参数集(VPS)、VPS扩展、图片标头、切片标头、图块标头或补充增强信息(SEI)消息。
例如,PPS是包含应用于零个或更多个完整译码图片的句法元素的句法结构,如在每个切片段标头中找到的句法元素所确定的。例如,SPS是包含应用于零个或更多个完整译码视频序列(CVS)的句法元素的句法结构,如在PPS中找到的句法元素的内容所确定的,所述PPS由在每个切片段标头中找到的句法元素引用。例如,VPS是包含应用于零个或更多个完整CVS的句法元素的句法结构,如由在SPS中找到的句法元素的内容所确定的,所述SPS由在PPS中找到的句法元素引用,所述PPS由在每个切片段标头中找到的句法元素引用。
以此方式,视频编码器200可生成位流,所述位流包含经编码视频数据(例如,描述将图片分割为块(例如,CU)的句法元素)和所述块的预测和/或残余信息(包含句法结构,所述句法结构包含360度视频和非360度视频两者的信息)。最终,视频解码器300可接收位流并且解码经编码的视频数据。
一般来说,视频解码器300执行与视频编码器200所执行的过程相反的过程,以对位流的经编码视频数据进行解码。例如,视频解码器300可以以基本上类似于视频编码器200的CABAC编码过程但相关的方式对位流的句法元素的值进行解码。句法元素可以定义将图片的信息分割为CTU,并且根据相应的分割结构(例如QTBT结构)来分割每个CTU,以定义CTU的CU。句法元素可进一步定义视频数据的块(例如,CU)的预测和残余信息。
残余信息可以由例如量化的变换系数来表示。视频解码器300可以对块的量化变换系数进行逆量化和逆变换,以再现所述块的残差块。视频解码器300使用经信号发送的预测模式(帧内或帧间预测)和相关的预测信息(例如,用于帧间预测的运动信息)来形成所述块的预测块。视频解码器300可接着(在逐个样本的基础上)组合预测块和残差块以再现原始块。视频解码器300可执行附加处理,例如执行解块过程以减少沿着所述块的边界的视觉伪影。
以下描述根据本公开的技术的技术实例。可以独立地和/或组合地应用以下技术。作为一个实例,视频编码器200可以用如参数集(例如,SPS、HEVC中的SPS扩展、PPS、HEVC中的PPS扩展、VPS、HEVC中的VPS扩展)的句法结构来用信号发送360度视频特定信息。句法结构的另外的实例包含标头、切片标头、图块标头或SEI消息。
仅为了便于描述,而决不是限制,以下相对于HEVC中的SPS扩展来描述。所述技术可以以与其它句法结构基本上类似的方式应用。尽管不是必需的,但在一些实例中,使用参数集的扩展(例如SPS扩展)可能有一些好处。例如,视频解码器300的一些实例可以不被配置成处理和输出360度视频。通过使用参数集的扩展,视频解码器300可经配置以接收对360度视频不需要的视频进行解码所需的所有信息。例如,如果360度视频的信息被包含在如图片的高度和宽度的其它类型的信息之前,则视频解码器300的一些实例可能不能解析360度视频句法元素并且生成错误。然而,通过使用扩展(例如SPS扩展),视频解码器300可接收解码大多数类型的视频所需的信息。
此外,通过使用参数集(如本公开中描述的实例参数集),即使在位流中不包含360度视频的情况下也可以使用相同的参数集。因此,视频编码器200可经配置以用信号发送,并且视频解码器300可经配置以接收指示经译码位流包含360度视频的信息,作为即使在不包含360度视频时也使用的句法结构的一部分。例如,所述句法结构可以是用于用信号发送非360度视频信息并且还可以用于用信号发送360度视频信息的句法结构。因此,所述句法结构形成符合标准的位流的一部分,而不管所述符合标准的位流是否包含360度视频。例如,句法结构可用于编码和解码仅携带非360度视频数据、仅携带360度视频数据或同时携带非360度视频数据和360度视频数据的位流。
视频编码器200和视频解码器300可使用例如序列参数集(SPS)扩展(例如,H.265中的SPS扩展位)的扩展机制来指示经译码位流是360度视频位流。使用此扩展机制可以允许在相同的参数集中用信号发送360度视频和非360度视频信息。
作为一个实例,当SPS扩展位指示位流是360度位流时,可用信号发送360度视频的投影类型。投影类型的实例包含等矩形投影(ERP)、立方图投影(CMP)及其衍生投影,例如调整立方图(ACP)和赤道柱面投影(ECP)。在一些实例中,对于每种投影类型,可以用信号发送进一步的信息。作为一个实例,可以用信号发送几何投影的组装排列,或几何投影的面的旋转度。例如,对于立方图投影,视频编码器200可以进一步用信号发送立方面的组装排列(例如,以3×4或2×3排列)以及每个面的旋转度,并且视频解码器300可以接收所述组装排列和所述旋转度。
在一些实例中,代替SPS或SPS扩展或除SPS或SPS扩展之外,还可以视频参数集(VPS)用信号发送一或多个位以指示360度视频位流。可以使用当前保留的位来传送VPS中的这种信令,以避免与非360度视频位流的干扰。
下面的表展示了以SPS扩展用信号发送360度投影信息的实例。作为一个实例,在表1所示的实例句法结构中包含句法元素:sps_360Video_extension_flag。sps_360Video_extension_flag是360度视频的信息的一个实例(例如,指示经译码位流是否包含360度视频的信息)。如表1所示,如果sps_360Video_extension_flag为真(例如,所述信息指示经译码位流包含360度视频),则实例句法结构包含360度视频的附加信息(例如,sps_360Video_extension()的句法元素)。因此,sps_360Video_extension_flag是指示经译码位流是否包含360度视频的句法元素的实例。基于包含360度视频的经译码位流,360度视频的句法结构(例如,sps_extension)信息(例如,位流包含基于sps_360Video_extension_flag是真还是假的sps_360Video_extension())。
seq_parameter_set_rbsp(){ | 描述符 |
… | |
sps_extension_present_flag | u(1) |
if(sps_extension_present_flag){ | |
sps_range_extension_flag | u(1) |
sps_multilayer_extension_flag | u(1) |
sps_extension_6bits | u(6) |
} | |
if(sps_range_extension_flag) | |
sps_range_extension() | |
if(sps_multilayer_extension_flag) | |
附录F*/中指定的sps_multilayer_extension()/* | |
if(sps_360Video_extension_flag) | |
sps_360Video_extension() | |
if(sps_extension_6bits) | |
while(more_rbsp_data()) | |
sps_extension_data_flag | u(1) |
rbsp_trailing_bits() | |
} |
表1.
sps_360Video_extension(){ | 描述符 |
geometry_type | u(4) |
while(more_rbsp_data()) | |
sps_360VideoExtension_data_flag | u(1) |
rbsp_trailing_bits() | u(1) |
} |
表2.
geometry_type指定360度视频的几何投影。
如表2所示,如果sps_360Video_extension_flag为真,则位流包含sps_360Video_extension(),其包含指定几何投影的句法元素。因此,在一或多个实例中,基于指示位流包含360度视频的信息的句法元素(例如,基于sps_360Video_extension_flag为真),视频编码器200用信号发送指示几何投影的信息(例如,用信号发送或接收geometry_type),并且视频解码器300接收所述信息。
在表1和2的实例中,将sps_360Video_extension_flag、sps_360Video_extension()和geometry_type描述为同一句法结构(例如,SPS扩展)的一部分。然而,实例技术不受限制。在一些实例中,如sps_360Video_extension_flag的句法元素可以是第一句法结构,并且如果为真,则指示从不同的句法结构(例如,sps_360Video_extension())接收信息是不同的句法结构。同样,如geometry_type的句法元素也可以是另一种不同的句法结构。
因此,视频编码器200可以用信号发送指示几何投影的信息作为同一句法结构的一部分、作为360度视频的信息或者作为不同句法结构的一部分,并且视频解码器300可以接收所述信息。类似地,视频编码器200可以用信号发送指示用于几何投影的组装排列或用于几何投影的面的旋转度的一或多个信息作为同一句法结构或不同句法结构的一部分,并且视频解码器300可以接收所述信息。应当理解,组装排列和用于面的旋转度仅仅是360度视频的附加信息的两个非限制性实例,可以以各种不同的句法结构用信号发送和接收所述360度视频。其它实例也被考虑并被包含作为本公开的一部分。
本公开通常可以涉及“用信号发送”某些信息,例如句法元素。术语“用信号发送”通常可以指值句法元素和/或用于解码经编码视频数据的其它数据的通信。即,视频编码器200可以用信号发送位流中的句法元素的值。通常,用信号发送是指在位流中生成值。如上所述,源装置102可以基本上实时地或者不实时地将位流传送到目的地装置116,例如当将句法元素存储到存储装置112以供目的地装置116稍后检索时可能发生。
图2A和2B是示出实例四叉树二叉树(QTBT)结构130和相应的译码树单元(CTU)132的概念图。实线表示四叉树分裂,虚线表示二叉树分裂。在二叉树的每个分裂(即,非叶)节点中,用信号发送一个标志以指示使用哪个分裂类型(即,水平或垂直),其中在此实例中0指示水平分裂而1指示垂直分裂。对于四叉树分裂,不需要指示分裂类型,因为四叉树节点水平地和垂直地将块分裂成具有相等大小的4个子块。因此,视频编码器200可以对QTBT结构130的区域树级的句法元素(例如分裂信息)(即实线)和QTBT结构130的预测树级的句法元素(例如分裂信息)(即虚线)进行编码,并且视频解码器300可以对其进行解码。视频编码器200可以对由QTBT结构130的终端叶节点表示的CU的视频数据(例如预测和变换数据)进行编码,且视频解码器300可对其进行解码。
通常,图2B的CTU 132可以与定义块的大小的参数相关联,所述块对应于第一和第二级的QTBT结构130的节点。这些参数可包含CTU大小(表示样本中CTU 132的大小)、最小四叉树大小(MinQTSize,表示最小允许四叉树叶节点大小)、最大二叉树大小(MaxBTSize,表示最大允许二叉树根节点大小)、最大二叉树深度(MaxBTDepth,表示最大允许二叉树深度)和最小二叉树大小(MinBTSize,表示最小允许二叉树叶节点大小)。
对应于CTU的QTBT结构的根节点可以在QTBT结构的第一级具有四个子节点,每个子节点可以根据四叉树分割来分割。即,第一级的节点是叶节点(不具有子节点)或具有四个子节点。QTBT结构130的实例将这样的节点表示为包含具有用于分支的实线的父节点和子节点。如果第一级的节点不大于最大允许二叉树根节点大小(MaxBTSize),则所述节点可以由各自的二叉树进一步分割。可以迭代一个节点的二叉树分裂,直到由分割得到的节点达到最小允许二叉树叶节点大小(MinBTSize)或最大允许二叉树深度(MaxBTDepth)。QTBT结构130的实例将这样的节点表示为具有用于分支的虚线。二叉树叶节点被称为译码单元(CU),其用于预测(例如,图片内或图片间预测)和变换,而无需任何进一步分割。如上所述,CU也可称为“视频块”或“块”。
在QTBT分割结构的一个实例中,CTU大小被设置为128×128(亮度样本和两个相应的64×64色度样本),MinQTSize被设置为16×16,MaxBTSize被设置为64×64,MinBTSize(对于宽度和高度)被设置为4,并且MaxBT_Depth被设置为4。四叉树分割首先应用于CTU以生成四叉树叶节点。四叉树叶节点可以具有从16×16(即,MinQTSize)到128×128(即,CTU大小)的大小。如果叶四叉树节点是128×128,则其将不被二叉树进一步分裂,因为大小超过MaxBTSize(即,在这个实例中是64×64)。否则,叶四叉树节点将由二叉树进一步分割。因此,四叉树叶节点也是二叉树的根节点,并且二叉树深度为0。当二叉树深度达到MaxBtDepth(在此实例中为4)时,不允许进一步分裂。当二叉树节点的宽度等于MinBTSize(在此实例中为4)时,这意味着不允许进一步的水平分裂。类似地,高度等于MinBTSize的二叉树节点意味着对于该二叉树节点不允许进一步的垂直分裂。如上所述,二叉树的叶节点被称为CU,并且根据预测和变换被进一步处理而无需进一步分割。
图3是示出可执行本公开的技术的实例视频编码器200的框图。图3是出于解释的目的而提供的,并且不应被认为是对本公开中广泛示例和描述的技术的限制。出于解释的目的,本公开在视频译码标准(例如正在开发中的HEVC视频译码标准和H.266视频译码标准)的上下文中描述视频编码器200。然而,本公开的技术不限于这些视频译码标准,并且通常适用于视频编码和解码。
在图3的实例中,视频编码器200包含视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、解码图片缓冲器(DPB)218和熵编码单元220。
视频数据存储器230可以存储将由视频编码器200的组件编码的视频数据。视频编码器200可以接收存储在视频数据存储器230中的来自(例如)视频源104(图1)的视频数据。DPB 218可以用作参考图片存储器,所述参考图片存储器存储用于由视频编码器200预测后续视频数据的参考视频数据。视频数据存储器230和DPB 218可以由各种存储器件中的任何一种形成,例如动态随机存取存储器(DRAM),包含同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)或其它类型的存储装置。视频数据存储器230和DPB 218可以由同一存储装置或单独的存储器装置提供。在各种实例中,视频数据存储器230可与视频编码器200的其它组件一起在芯片上,如所示的,或相对于那些组件在芯片外。
在本公开中,对视频数据存储器230的引用不应被解释为限于视频编码器200内部的存储器,除非特别如此描述,或者视频编码器200外部的存储器,除非特别如此描述。相反,对视频数据存储器230的引用应理解为存储视频编码器200接收用于编码的视频数据(例如,当前块的待编码的视频数据)的参考存储器。图1的存储器106还可以提供对来自视频编码器200的各个单元的输出的临时存储。
说明图3的各种单元以帮助理解由视频编码器200执行的操作。这些单元可以实现为固定功能电路、可编程电路或其组合。固定功能电路指的是提供特定功能的电路,并且预设在可以执行的操作上。可编程电路指的是可被编程以执行各种任务并在可执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使可编程电路以软件或固件的指令所定义的方式操作的软件或固件。固定功能电路可以执行软件指令(例如,接收参数或输出参数),但是固定功能电路执行的操作类型通常是不可变的。在一些实例中,一或多个单元可以是不同的电路块(固定功能或可编程),并且在一些实例中,一或多个单元可以是集成电路。
视频编码器200可包含算术逻辑单元(ALU)、初等函数单元(EFU)、数字电路、模拟电路和/或由可编程电路形成的可编程核心。在使用由可编程电路执行的软件来执行视频编码器200的操作的实例中,存储器106(图1)可以存储视频编码器200接收并执行的软件的目标代码,或者视频编码器200内的另一存储器(未示出)可以存储这样的指令。
视频数据存储器230经配置以存储所接收的视频数据。视频编码器200可从视频数据存储器230检索视频数据的图片并且将视频数据提供到残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是待编码的原始视频数据。
模式选择单元202包含运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可包含用以根据其它预测模式执行视频预测的额外功能单元。作为实例,模式选择单元202可包含调色板单元、块内复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(LM)单元等。
模式选择单元202通常协调多个编码次数以测试编码参数的组合和这些组合的所得速率失真值。编码参数可包含将CTU分割为CU、用于CU的预测模式、用于CU的残差数据的变换类型、用于CU的残差数据的量化参数等。模式选择单元202可最终选择速率失真值优于其它经测试组合的编码参数的组合。
视频编码器200可以将从视频数据存储器230检索到的图片分割成一系列CTU,并且将一或多个CTU封装在切片内。模式选择单元202可以根据树结构(例如上述HEVC的QTBT结构或四叉树结构)来分割图片的CTU。如上所述,视频编码器200可以通过根据树结构分割CTU来形成一或多个CU。这种CU通常也可以称为“视频块”或“块”。
一般来说,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226)以生成用于当前块(例如,当前CU,或在HEVC中,PU和TU的重叠部分)的预测块。对于当前块的帧间预测,运动估计单元222可以执行运动搜索以识别一或多个参考图片(例如,存储在DPB 218中的一或多个先前译码的图片)中的一或多个紧密匹配的参考块。具体地说,运动估计单元222可以例如根据绝对差和(SAD)、平方差和(SSD)、平均绝对差(MAD)、均方差(MSD)等来计算表示潜在参考块与当前块有多相似的值。运动估计单元222通常可以使用当前块与所考虑的参考块之间的逐个样本差异来执行这些计算。运动估计单元222可以识别具有由这些计算产生的最低值的参考块,其指示最紧密匹配当前块的参考块。
运动估计单元222可以形成一或多个运动向量(MV),所述运动向量定义参考块在参考图片中的位置(相对于当前块在当前图片中的位置)。运动估计单元222接着可以将运动向量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可以提供单个运动向量,而对于双向帧间预测,运动估计单元222可以提供两个运动向量。运动补偿单元224接着可使用运动向量生成预测块。例如,运动补偿单元224可以使用运动向量来检索参考块的数据。作为另一实例,如果运动向量具有分数样本精度,那么运动补偿单元224可根据一或多个内插滤波器内插预测块的值。此外,对于双向帧间预测,运动补偿单元224可检索由相应运动向量识别的两个参考块的数据且(例如)通过逐个样本求平均或加权求平均来组合所检索的数据。
作为另一实例,对于帧内预测或帧内预测译码,帧内预测单元226可从邻近当前块的样本生成预测块。例如,对于方向模式,帧内预测单元226通常可以在数学上组合相邻样本的值,并且跨当前块定义的方向上填充这些计算值,以产生预测块。作为另一实例,对于DC模式,帧内预测单元226可计算与当前块相邻的样本的平均值,并且生成预测块以包含预测块的每一个样本的此所得平均值。
模式选择单元202将预测块提供到残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的原始未译码版本,并且从模式选择单元202接收预测块。残差生成单元204计算当前块与预测块之间的逐个样本差异。所得的逐个样本差异定义当前块的残差块。在一些实例中,残差生成单元204还可确定残差块中的样本值之间的差以使用残差脉码调制(RDPCM)生成残差块。在一些实例中,可使用执行二进制减法的一或多个减法器电路来形成残差生成单元204。
在模式选择单元202将CU分割为PU的实例中,每一PU可与亮度预测单元和相应的色度预测单元相关联。视频编码器200和视频解码器300可支持具有各种大小的PU。如上所述,CU的大小可以指CU的亮度译码块的大小,而PU的大小可以指PU的亮度预测单元的大小。假设特定CU的大小为2N×2N,那么视频编码器200可支持用于帧内预测的2N×2N或N×N的PU大小,并且支持用于帧间预测的2N×2N、2N×N、N×2N、N×N或类似大小的对称PU大小。视频编码器20和视频解码器30还可支持用于帧间预测的2N×nU、2N×nD、nL×2N以及nR×2N的PU大小的不对称分割。
在模式选择单元不进一步将CU分割成PU的实例中,每一CU可与亮度译码块和相应的色度译码块相关联。如上所述,CU的大小可以指CU的亮度译码块的大小。视频编码器200和视频解码器300可支持2N×2N、2N×N或N×2N的CU大小。
对于其它视频译码技术,例如块内复制模式译码、仿射模式译码、线性模型(LM)模式译码、360度视频译码(作为少数实例),模式选择单元202经由与译码技术相关联的相应单元生成正被编码的当前块的预测块。在一些实例(例如,调色板模式译码)中,模式选择单元202可能不生成预测块,而是生成指示基于选定调色板来重构块的方式的句法元素。在这样的模式中,模式选择单元202可以将这些句法元素提供给熵编码单元220以进行编码。
如上所述,残差生成单元204接收当前块和相应预测块的视频数据。残差生成单元204接着生成用于当前块的残差块。为了生成残差块,残差生成单元204计算预测块与当前块之间的逐个样本差异。
变换处理单元206将一或多个变换应用于残差块以产生变换系数的块(本文中称为“变换系数块”)。变换处理单元206可将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以将离散余弦变换(DCT)、方向变换、卡洛变换(KLT)或概念上类似的变换应用于残差块。在一些实例中,变换处理单元206可对残差块执行多个变换,例如初级变换和次级变换,例如旋转变换。在一些实例中,变换处理单元206不将变换应用于残差块。
量化单元208可以量化变换系数块中的变换系数,以产生经量化的变换系数块。量化单元208可根据与当前块相关联的量化参数(QP)值来量化变换系数块的变换系数。视频编码器200(例如,经由模式选择单元202)可通过调整与CU相关联的QP值来调整应用于与当前块相关联的系数块的量化程度。量化可引入信息损失,且因此,经量化的变换系数可具有比由变换处理单元206产生的原始变换系数低的精度。
逆量化单元210和逆变换处理单元212可以分别对经量化的变换系数块应用逆量化和逆变换,以根据变换系数块重构残差块。重构单元214可基于重构的残差块和由模式选择单元202生成的预测块来产生对应于当前块的重构块(虽然可能具有某种程度的失真)。例如,重构单元214可将重构的残差块的样本添加到来自由模式选择单元202生成的预测块的对应样本,以产生重构块。
滤波器单元216可对重构块执行一或多个滤波器操作。例如,滤波器单元216可执行去块操作以减少沿着CU的边缘的成块伪影。在一些实例中,可以跳过滤波器单元216的操作。
视频编码器200将重构块存储在DPB 218中。例如,在不需要滤波器单元216的操作的实例中,重构单元214可以将重构块存储到DPB 218。在需要滤波器单元216的操作的实例中,滤波器单元216可将经滤波的重构块存储到DPB 218。运动估计单元222和运动补偿单元224可以从DPB 218中检索参考图片以对随后编码的图片的块进行帧间预测,所述参考图片是从重构的(并且可能被滤波的)块形成。另外,帧内预测单元226可以使用当前图片的DPB218中的重构块来对当前图片中的其它块进行帧内预测。
一般来说,熵编码单元220可对从视频编码器200的其它功能组件接收的句法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的经量化变换系数块进行熵编码。作为另一实例,熵编码单元220可对来自模式选择单元202的预测句法元素(例如,用于帧间预测的运动信息或用于帧内预测的模内信息)进行熵编码。熵编码单元220可对句法元素(其为视频数据的另一实例)执行一或多个熵编码操作以生成经熵编码的数据。例如,熵编码单元220可以对数据执行上下文自适应可变长度译码(CAVLC)操作、CABAC操作、变量到变量(V2V)长度译码操作、基于句法的上下文自适应二进制算术译码(SBAC)操作、概率区间分割熵(PIPE)译码操作、指数哥伦布编码操作或另一类型的熵编码操作。在一些实例中,熵编码单元220可在句法元素未被熵编码的旁路模式中操作。
视频编码器200可以输出位流,所述位流包含重构切片或图片的块所需的经熵编码的句法元素。具体地说,熵编码单元220可以输出位流。
以上描述的操作是相对于块来描述的。这种描述应当被理解为用于亮度译码块和/或色度译码块的操作。如上所述,在一些实例中,亮度译码块和色度译码块是CU的亮度分量和色度分量。在一些实例中,亮度译码块和色度译码块是PU的亮度分量和色度分量。
在一些实例中,不需要针对色度译码块重复针对亮度译码块执行的操作。作为一个实例,识别亮度译码块的运动向量(MV)和参考图片的操作不需要重复用于识别色度块的MV和参考图片。相反,可缩放亮度译码块的MV以确定色度块的MV,并且参考图片可以是相同的。作为另一个实例,对于亮度译码块和色度译码块,帧内预测过程可以是相同的。
视频编码器200表示经配置以对视频数据进行编码的装置的实例,所述装置包含经配置以存储视频数据的存储器以及一或多个处理单元,所述处理单元在电路中实现并且经配置以用信号发送360度视频的信息作为句法结构的一部分以及用信号发送非360度视频的信息作为同一句法结构的一部分。例如,视频编码器200可以用信号发送指示经译码位流包含360度视频的信息(例如,sps_360Video_extension_flag)作为句法结构的一部分,并且基于所述位流包含360度视频来用信号发送360度视频的信息作为同一句法结构或不同句法结构的一部分(例如,基于sps_360Video_extension_flag为真来用信号发送sps_360Video_extension())。
视频编码器200可用信号发送非360度视频的信息(例如,表1中所示的句法元素)作为同一句法结构的一部分。在一些实例中,视频编码器200可经配置以用信号发送指示经译码位流包含360度视频的信息,作为即使在不包含360度视频时也使用的句法结构的一部分。因此,所述句法结构可以是用于用信号发送非360度视频信息并且还可以用于用信号发送360度视频信息的句法结构。例如,所述句法结构形成符合标准的位流的一部分,而不管所述符合标准的位流是否包含360度视频。例如,句法结构可用于编码和解码仅携带非360度视频数据、仅携带360度视频数据或同时携带非360度视频数据和360度视频数据的位流。
所述句法结构包含一或多个句法元素,所述句法元素一起可以形成以下中的一或多个:序列参数集(SPS)、SPS扩展、图片参数集(PPS)、PPS扩展、视频参数集(VPS)、VPS扩展、图片标头、切片标头、图块标头或补充增强信息(SEI)消息。作为一个实例,句法结构是一起形成SPS扩展的一或多个句法元素。作为一个实例,句法结构是一起形成VPS的一或多个句法元素。
在一些实例中,指示经译码位流包含360度视频的信息是扩展位,所述扩展位是句法结构的先前保留的位。例如,在SPS扩展中,N位可以被保留并且不被分配用于任何句法元素(例如,标准定义了N个附加位,所述附加位在SPS扩展内可用并且不被分配给任何其它句法元素)。指示经译码位流包含360度视频的信息是先前为SPS扩展保留的N个位之一。
在一些实例中,视频编码器200可经配置以基于经译码位流包含360度视频来用信号发送指示几何投影的信息(例如,如表2中所示)作为句法结构的一部分、用信号发送360度视频的信息。视频编码器200还可以用信号发送指示几何投影的组装排列和所述几何投影的面的旋转度中的一或多个的信息。
视频编码器200可以用信号发送指示位流是否包含360度视频的附加信息(例如,信号sps_360Video_extension_flag)的句法元素,作为句法结构的一部分。如果句法元素指示位流包含360度视频的附加信息(例如,信号sps_360Video_extension_flag为真),那么视频编码器200可以用信号发送指示几何投影(例如,geometry_type)的信息。在一个实例中,视频编码器200可以用信号发送指示几何投影的信息作为包含sps_360Video_extension_flag的同一句法结构的一部分。在一个实例中,视频编码器200可以用信号发送指示几何投影的信息作为sps_360Video_extension_flag的不同句法结构的一部分。
图4是示出可执行本公开的技术的实例视频解码器300的框图。图4是出于解释的目的而提供的,并且不对本公开中广泛示例和描述的技术进行限制。出于解释的目的,本公开描述视频解码器300,根据VVC的JEM和HEVC的技术进行描述。然而,本公开的技术可由配置成其它视频译码标准的视频译码装置执行。
在图4的实例中,视频解码器300包含译码图片缓冲器(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和解码图片缓冲器(DPB)314。预测处理单元304包含运动补偿单元316和帧内预测单元318。预测处理单元304可包含用以根据其它预测模式执行预测的添加单元。作为实例,预测处理单元304可包含调色板单元、块内复制单元(其可形成运动补偿单元316的一部分)、仿射单元、线性模型(LM)单元、360度视频解码单元等。在其它实例中,视频解码器300可包含更多、更少或不同的功能组件。
CPB存储器320可以存储将由视频解码器300的组件进行解码的视频数据,例如经编码视频位流。例如,存储在CPB存储器320中的视频数据可以从计算机可读媒体110(图1)获得。CPB存储器320可以包含存储来自经编码视频位流的经编码视频数据(例如,句法元素)的CPB。此外,CPB存储器320可以存储除了经译码图片的句法元素之外的视频数据,例如表示来自视频解码器300的各个单元的输出的临时数据。DPB 314通常存储解码的图片,当对经编码视频位流的后续数据或图片进行解码时,视频解码器300可以输出和/或使用所述解码的图片作为参考视频数据。CPB存储器320和DPB 314可以由各种存储器件中的任何一种形成,例如动态随机存取存储器(DRAM),包含同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)或其它类型的存储装置。CPB存储器320和DPB 314可以由同一存储装置或单独的存储器装置提供。在各种实例中,CPB存储器320可以与视频解码器300的其它组件一起在芯片上,或者相对于那些组件在芯片外。
附加地或可替换地,在一些实例中,视频解码器300可以从存储器120(图1)检索经译码视频数据。即,存储器120可以如上所述与CPB存储器320一起存储数据。同样地,当视频解码器300的一些或全部功能以软件实现以由视频解码器300的处理电路执行时,存储器120可以存储将由视频解码器300执行的指令。
说明图4中所示的各种单元以帮助理解由视频解码器300执行的操作。这些单元可以实现为固定功能电路、可编程电路或其组合。类似于图3,固定功能电路指的是提供特定功能的电路,并且预设在可以执行的操作上。可编程电路指的是可被编程以执行各种任务并在可执行的操作中提供灵活功能的电路。例如,可编程电路可以执行使可编程电路以软件或固件的指令所定义的方式操作的软件或固件。固定功能电路可以执行软件指令(例如,接收参数或输出参数),但是固定功能电路执行的操作类型通常是不可变的。在一些实例中,一或多个单元可以是不同的电路块(固定功能或可编程),并且在一些实例中,一或多个单元可以是集成电路。
视频解码器300可包含ALU、EFU、数字电路、模拟电路和/或由可编程电路形成的可编程核心。在视频解码器300的操作由在可编程电路上执行的软件执行的实例中,片上或片外存储器可存储视频解码器300接收并执行的软件的指令(例如,目标代码)。
熵解码单元302可以从CPB接收经编码视频数据,并且对视频数据进行熵解码以再现句法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和滤波器单元312可基于从位流提取的句法元素来生成经解码的视频数据。
一般来说,视频解码器300在逐块的基础上重构图片。视频解码器300可单独对每一块执行重构操作(其中当前正被重构(即,解码)的块可被称为“当前块”)。
熵解码单元302可以对定义经量化的变换系数块的经量化变换系数的句法元素以及变换信息(如量化参数(QP)和/或变换模式指示)进行熵解码。逆量化单元306可使用与经量化的变换系数块相关联的QP来确定量化程度,并且同样地,确定逆量化单元306要应用的逆量化程度。例如,逆量化单元306可以执行逐位左移操作以对经量化的变换系数进行逆量化。逆量化单元306由此可以形成包含变换系数的变换系数块。
在逆量化单元306形成变换系数块之后,逆变换处理单元308可将一或多个逆变换应用于变换系数块以生成与当前块相关联的残差块。例如,逆变换处理单元308可以将逆DCT、逆整数变换、逆卡洛变换(KLT)、逆旋转变换、逆方向变换或另一逆变换应用于系数块。
此外,预测处理单元304根据由熵解码单元302进行熵解码的预测信息句法元素来生成预测块。例如,如果预测信息句法元素指示当前块被帧间预测,那么运动补偿单元316可生成预测块。在这种情况下,预测信息句法元素可以指示DPB 314中的从中检索参考块的参考图片,以及标识参考块在参考图片中的位置(相对于当前块在当前图片中的位置)的运动向量。运动补偿单元316通常可以基本上类似于针对运动补偿单元224(图3)所描述的方式来执行帧间预测过程。
作为另一实例,如果预测信息句法元素指示当前块被帧内预测,那么帧内预测单元318可根据由预测信息句法元素指示的帧内预测模式来生成预测块。此外,帧内预测单元318通常可以以基本上类似于针对帧内预测单元226(图3)所描述的方式来执行帧内预测过程。帧内预测单元318可以从DPB 314检索与当前块相邻的样本的数据。
重构单元310可使用预测块和残差块重构当前块。例如,重构单元310可将残差块的样本添加到预测块的对应样本以重构当前块。
滤波器单元312可对重构块执行一或多个滤波器操作。例如,滤波器单元312可执行去块操作以减少沿着经重构块的边缘的成块伪影。滤波器单元312的操作不一定在所有实例中执行。
视频解码器300可将重构块存储在DPB 314中。如上所述,DPB 314可以向预测处理单元304提供参考信息,例如用于帧内预测的当前图片的样本和用于后续运动补偿的先前解码的图像。此外,视频解码器300可以从DPB输出经解码的图片,用于随后在显示装置(例如图1的显示装置118)上呈现。
以此方式,视频解码器300表示视频解码装置的实例,所述视频解码装置包含:存储器,其经配置以存储视频数据;以及一或多个处理单元,其在电路中实现并且经配置以接收360度视频的信息作为句法结构的一部分,并且接收非360度视频的信息作为同一句法结构的一部分。例如,视频解码器300可以接收指示经译码位流包含360度视频的信息(例如,sps_360Video_extension_flag)作为句法结构的一部分,并且基于所述经译码位流包含360度视频的信息的接收来接收360度视频的信息作为同一句法结构或不同句法结构的一部分(例如,基于sps_360Video_extension_flag为真来接收sps_360Video_extension())。
视频解码器300可接收非360度视频的信息(例如,表1中所示的句法元素)作为同一句法结构的一部分。在一些实例中,视频解码器300可经配置以接收指示经译码位流包含360度视频的信息,作为即使在不包含360度视频时也使用的句法结构的一部分。如上所述,所述句法结构可以是用于用信号发送非360度视频信息并且还可以用于用信号发送360度视频信息的句法结构。例如,所述句法结构形成符合标准的位流的一部分,而不管所述符合标准的位流是否包含360度视频。因此,所述句法结构可用于编码和解码仅携带非360度视频数据、仅携带360度视频数据或同时携带非360度视频数据和360度视频数据的位流。
所述句法结构包含一或多个句法元素,所述句法元素一起可以形成以下中的一或多个:序列参数集(SPS)、SPS扩展、图片参数集(PPS)、PPS扩展、视频参数集(VPS)、VPS扩展、图片标头、切片标头、图块标头或补充增强信息(SEI)消息。作为一个实例,句法结构是一起形成SPS扩展的一或多个句法元素。作为一个实例,句法结构是一起形成VPS的一或多个句法元素。
在一些实例中,指示经译码位流包含360度视频的信息是扩展位,所述扩展位是句法结构的先前保留的位。例如,在SPS扩展中,N位可以被保留并且不被分配用于任何句法元素(例如,标准定义了N个附加位,所述附加位在SPS扩展内可用并且不被分配给任何其它句法元素)。指示经译码位流包含360度视频的信息是先前为SPS扩展保留的N个位之一。
在一些实例中,视频解码器300可经配置以基于经译码位流包含360度视频来接收指示几何投影的信息(例如,如表2中所示)作为句法结构的一部分、用信号发送360度视频的信息。视频解码器300还可以接收指示几何投影的组装排列和所述几何投影的面的旋转度中的一或多个的信息。
视频解码器300可以接收指示位流是否包含360度视频的附加信息(例如,信号sps_360Video_extension_flag)的句法元素,作为句法结构的一部分。如果句法元素指示位流包含360度视频的附加信息(例如,信号sps_360Video_extension_flag为真),那么视频解码器300可以接收指示几何投影(例如,geometry_type)的信息。在一个实例中,视频解码器300可以接收指示几何投影的信息作为包含sps_360Video_extension_flag的同一句法结构的一部分。在一个实例中,视频解码器300可以接收指示几何投影的信息作为包含sps_360Video_extension_flag的不同句法结构的一部分。
图5是示出编码视频数据的实例方法的流程图。视频数据存储器230(或视频编码器200的某一其它本地存储器或可能视频编码器200外部的存储器)可存储句法结构的句法元素的视频数据。视频编码器200包含以固定功能或可编程的电路实现的一或多个处理单元。视频编码器200经配置以用信号发送指示经译码位流包含360度视频的信息作为句法结构的一部分(400)。例如,视频编码器200可以用信号发送sps_360Video_extension_flag。
在一些实例中,句法结构包含一或多个句法元素,所述句法元素一起形成以下中的一或多个:序列参数集(SPS)、SPS扩展、图片参数集(PPS)、PPS扩展、视频参数集(VPS)、VPS扩展、图片标头、切片标头、图块标头或补充增强信息(SEI)消息。例如,句法结构包含一起形成序列参数集(SPS)扩展的一或多个句法元素。作为另一实例,句法结构包含一起形成视频参数集(VPS)的一或多个句法元素。
指示经译码位流包含360度视频的信息可以是扩展位,所述扩展位是句法结构的先前保留的位。例如,SPS扩展可定义N个保留的位,保留所述位以被分配用于指示附加信息。指示经译码位流包含360度视频的信息可以利用这N个保留的位之一。
在一些实例中,视频编码器200可以用信号发送指示经译码位流包含360度视频的信息,作为即使在不包含360度视频时也使用的句法结构的一部分。以某种方式,即使视频解码器类型未经配置以对360度视频进行解码,这种视频解码器类型仍然可经配置以在不输出错误的情况下处理句法结构。而且,如果使用类似扩展的句法结构,那么将在360度视频的信息之前接收未对360度视频进行解码的视频解码器类型的信息,从而允许这些视频解码器类型无错误地操作。因此,句法结构可以是用于用信号发送非360度视频信息的句法结构,并且还可以用于用信号发送360度视频信息(例如,句法结构形成符合标准的位流的一部分,而不管符合标准的位流是否包含360度视频)。例如,句法结构可用于编码和解码仅携带非360度视频数据、仅携带360度视频数据或同时携带非360度视频数据和360度视频数据的位流。
视频编码器200可经配置以基于所述经译码位流包含360度视频来用信号发送360度视频的信息(402)。例如,视频编码器200可以用信号发送指示几何投影的信息。而且,视频编码器200可以用信号发送指示几何投影的组装排列和所述几何投影的面的旋转度中的一或多个的信息。
在一些实例中,视频编码器200可以基于经译码位流包含360度视频以同一句法结构或不同句法结构来用信号发送360度视频的信息。例如,几何投影的信息可以在与指示经译码位流包含360度视频的信息相同的参数集中(例如,两者都在SPS扩展中)。作为另一实例,几何投影的信息可以在与指示经译码位流包含360度视频的信息不同的参数集中(例如,一个在SPS扩展中而另一个在VPS中)。
视频编码器200可经配置以用信号发送非360度视频的信息作为同一句法结构的一部分(404)。例如,如表1所示,当sps_range_extension_flag和/或sps_multilayer_extension_flag为真时,视频编码器200可以用信号发送非360度视频,例如sps_range_extension_flag、sps_multilayer_extension_flag及其相应信息。非360度视频的这种信息与指示经译码位流包含360度视频的信息(例如,sps_360Video_extension_flag)在相同的参数集(例如,SPS扩展)中。
视频编码器200可以对360度视频和非360度视频数据进行编码(406)。例如,视频编码器200可以利用HEVC标准的技术或正在开发的VVC标准的技术。在一些实例中,视频编码器200可确定正被编码的视频数据块的参考块,确定参考块与正被编码的块之间的残差数据,并且用信号发送残差数据连同用以确定参考块的位置的信息。
图6是示出解码视频数据的实例方法的流程图。例如,存储器(例如CPB存储器320、DPB存储器314、视频解码器300的一些其它本地存储器、视频解码器300外部的存储器)经配置以存储视频数据。视频解码器300包含以固定功能或可编程的电路实现的一或多个处理单元。视频解码器300经配置以接收指示经译码位流包含360度视频的信息作为在所述存储器中存储为视频数据的句法结构的一部分(500)。例如,视频解码器300可以接收sps_360Video_extension_flag。
在一些实例中,句法结构包含一或多个句法元素,所述句法元素一起形成以下中的一或多个:序列参数集(SPS)、SPS扩展、图片参数集(PPS)、PPS扩展、视频参数集(VPS)、VPS扩展、图片标头、切片标头、图块标头或补充增强信息(SEI)消息。例如,句法结构包含一起形成序列参数集(SPS)扩展的一或多个句法元素。作为另一实例,句法结构包含一起形成视频参数集(VPS)的一或多个句法元素。
指示经译码位流包含360度视频的信息可以是扩展位,所述扩展位是句法结构的先前保留的位。例如,SPS扩展可定义N个保留的位,保留所述位以被分配用于指示附加信息。指示经译码位流包含360度视频的信息可以利用这N个保留的位之一。
在一些实例中,视频解码器300可以接收指示经译码位流包含360度视频的信息,作为即使在不包含360度视频时也使用的句法结构的一部分。以某种方式,即使视频解码器类型未经配置以对360度视频进行解码,这种视频解码器类型仍然可经配置以在不输出错误的情况下处理句法结构。而且,如果使用类似扩展的句法结构,那么将在360度视频的信息之前接收未对360度视频进行解码的视频解码器类型的信息,从而允许这些视频解码器类型无错误地操作。如上所述,所述句法结构可以是用于用信号发送非360度视频信息并且还可以用于用信号发送360度视频信息的句法结构。例如,所述句法结构形成符合标准的位流的一部分,而不管所述符合标准的位流是否包含360度视频。因此,所述句法结构可用于编码和解码仅携带非360度视频数据、仅携带360度视频数据或同时携带非360度视频数据和360度视频数据的位流。
视频解码器300可经配置以基于对经译码位流包含360度视频的信息的接收来接收360度视频的信息(502)。例如,视频解码器300可以接收指示几何投影的信息。而且,视频解码器300可以接收指示几何投影的组装排列和所述几何投影的面的旋转度中的一或多个的信息。
在一些实例中,视频解码器300可以基于经译码位流包含360度视频的信息的接收以同一句法结构或不同句法结构接收360度视频的信息。例如,几何投影的信息可以在与指示经译码位流包含360度视频的信息相同的参数集中(例如,两者都在SPS扩展中)。作为另一实例,几何投影的信息可以在与指示经译码位流包含360度视频的信息不同的参数集中(例如,一个在SPS扩展中而另一个在VPS中)。
视频解码器300可经配置以接收非360度视频的信息作为同一句法结构的一部分(504)。例如,如表1所示,当sps_range_extension_flag和/或sps_multilayer_extension_flag为真时,视频解码器300可以接收非360度视频,例如sps_range_extension_flag、sps_multilayer_extension_flag及其相应信息。非360度视频的这种信息与指示经译码位流包含360度视频的信息(例如,sps_360Video_extension_flag)在相同的参数集(例如,SPS扩展)中。
视频解码器300可经配置以对360度视频数据和非360度视频数据进行解码(506)。例如,视频解码器300可以利用HEVC标准的技术或正在开发的VVC标准的技术。在一些实例中,视频解码器300可接收用于残差块的信息和用以确定参考块的位置的信息。视频解码器300可确定正被解码的视频数据块的参考块,并基于所接收的确定残差数据。视频解码器300可基于参考块和残差数据来重构视频数据块。
应认识到,取决于实例,本文中所描述的任何技术的某些动作或事件可以不同顺序执行,可被添加、合并或整个省去(例如,并非所有描述的动作或事件对于技术的实践是必需的)。此外,在某些实例中,动作或事件可例如通过多线程处理、中断处理或多处理器来同时地执行,而不是顺序地执行。
在一或多个实例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果以软件实施,那么功能可作为一或多个指令或代码而存储于计算机可读媒体上或经由所述计算机可读媒体进行传输,并且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,所述计算机可读存储媒体对应于例如数据存储媒体的有形媒体,或包含例如根据通信协议促进将计算机程序从一个位置传送到另一位置的任何介质的通信介质。以此方式,计算机可读媒体通常可以对应于(1)非暂时性的有形计算机可读存储媒体或(2)例如信号或载波的通信媒体。数据存储媒体可以是任何可用媒体,可由一或多个计算机或一或多个处理器访问以检索用于实施本公开中所描述的技术的指令、代码和/或数据结构。计算机程序产品可以包含计算机可读媒体。
作为实例而非限制,此计算机可读媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储装置、闪存,或可用于存储指令或数据结构形式的所需程序代码并可通过计算机访问的任何其它媒体。而且,任何连接被适当地称为计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(DSL)或诸如红外线、无线电和微波的无线技术从网站、服务器或其它远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或诸如红外线、无线电以及微波的无线技术被包含在媒体的定义中。然而,应当理解,计算机可读存储媒体和数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而是被定向到非暂时性有形存储媒体。如本文中所使用的磁盘和光盘包含压缩光盘(CD)、激光光盘、光盘、数字通用光盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地再现数据,而光盘用激光光学地再现数据。以上各者的组合也应包含在计算机可读媒体的范围内。
指令可由一或多个处理器执行,例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效集成或离散逻辑电路。因此,本文使用的术语“处理器”可以指任何前述结构或适合于实现本文描述的技术的任何其它结构。另外,在一些方面中,本文中所描述的功能性可提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或并入组合编解码器中。此外,所述技术可以在一或多个电路或逻辑元件中完全实现。
本公开的技术可在各种装置或设备(包含无线手机、集成电路(IC)或一组IC(例如,芯片组))中实现。在本公开中描述各种组件、模块或单元以强调经配置以执行所公开技术的装置的功能方面,但未必需要由不同硬件单元实现。相反,如上所述,各种单元可合并成编解码器硬件单元,或由包含如上所述的一或多个处理器的互操作硬件单元的集合结合合适的软件和/或固件来提供。
已经描述了各种实例。这些实例和其它实例在以下权利要求的范围内。
Claims (30)
1.一种解码视频数据的方法,所述方法包括:
接收指示经译码位流包含360度视频的信息作为句法结构的一部分;
基于对所述经译码位流包含360度视频的所述信息的接收来接收360度视频的信息;
接收非360度视频的信息作为同一句法结构的一部分;以及
解码所述360度视频和所述非360度视频。
2.根据权利要求1所述的方法,其中所述句法结构形成符合标准的位流的一部分,而不管所述符合标准的位流是否包含360度视频。
3.根据权利要求1所述的方法,其中所述句法结构包括一或多个句法元素,所述句法元素一起形成以下中的一或多个:
序列参数集SPS;
SPS扩展;
图片参数集PPS;
PPS扩展;
视频参数集VPS;
VPS扩展;
图片标头;
切片标头;
图块标头;或者
补充增强信息SEI消息。
4.根据权利要求1所述的方法,其中所述句法结构包括一起形成序列参数集SPS扩展的一或多个句法元素。
5.根据权利要求1所述的方法,其中所述句法结构包括一起形成视频参数集VPS的一或多个句法元素。
6.根据权利要求1所述的方法,其中指示所述经译码位流包含360度视频的所述信息包括所述句法结构的扩展位。
7.根据权利要求1所述的方法,其中基于对所述经译码位流包含360度视频的所述信息的所述接收来接收所述360度视频的信息包括接收指示几何投影的信息。
8.根据权利要求7所述的方法,其进一步包括:
接收指示所述几何投影的组装排列和所述几何投影的面的旋转度中的一或多个的信息。
9.根据权利要求1所述的方法,其中基于对所述经译码位流包含360度视频的所述信息的所述接收来接收所述360度视频的信息包括:基于对所述经译码位流包含360度视频的所述信息的所述接收以所述同一句法结构或不同句法结构来接收所述360度视频的信息。
10.一种编码视频数据的方法,所述方法包括:
用信号发送指示经译码位流包含360度视频的信息作为句法结构的一部分;
基于所述经译码位流包含360度视频来用信号发送所述360度视频的信息;
用信号发送非360度视频的信息作为同一句法结构的一部分;以及
编码所述360度视频和所述非360度视频。
11.根据权利要求10所述的方法,其中所述句法结构形成符合标准的位流的一部分,而不管所述符合标准的位流是否包含360度视频。
12.根据权利要求10所述的方法,其中所述句法结构包括一或多个句法元素,所述句法元素一起形成以下中的一或多个:
序列参数集SPS;
SPS扩展;
图片参数集PPS;
PPS扩展;
视频参数集VPS;
VPS扩展;
图片标头;
切片标头;
图块标头;或者
补充增强信息SEI消息。
13.根据权利要求10所述的方法,其中所述句法结构包括一起形成序列参数集SPS扩展的一或多个句法元素。
14.根据权利要求10所述的方法,其中所述句法结构包括一起形成视频参数集VPS的一或多个句法元素。
15.根据权利要求10所述的方法,其中指示所述经译码位流包含360度视频的所述信息包括所述句法结构的扩展位。
16.根据权利要求10所述的方法,其中基于所述经译码位流包含360度视频来用信号发送所述360度视频的信息包括用信号发送指示几何投影的信息。
17.根据权利要求16所述的方法,其进一步包括:
用信号发送指示所述几何投影的组装排列和所述几何投影的面的旋转度中的一或多个的信息。
18.根据权利要求10所述的方法,其中基于所述经译码位流包含360度视频来用信号发送所述360度视频的信息包括:基于所述经译码位流包含360度视频以所述同一句法结构或不同句法结构来用信号发送所述360度视频的信息。
19.一种用于解码视频数据的装置,所述装置包括:
存储器,其经配置以存储视频数据;以及
视频解码器,其包括以固定功能或可编程的电路实现的一或多个处理单元,并且经配置以:
接收指示经译码位流包含360度视频的信息作为在所述存储器中存储为视频数据的句法结构的一部分;
基于对所述经译码位流包含360度视频的所述信息的接收来接收360度视频的信息;
接收非360度视频的信息作为同一句法结构的一部分;并且
解码所述360度视频和所述非360度视频。
20.根据权利要求19所述的装置,其中所述句法结构形成符合标准的位流的一部分,而不管所述符合标准的位流是否包含360度视频。
21.根据权利要求19所述的装置,其中所述句法结构包括一或多个句法元素,所述句法元素一起形成以下中的一或多个:
序列参数集SPS;
SPS扩展;
图片参数集PPS;
PPS扩展;
视频参数集VPS;
VPS扩展;
图片标头;
切片标头;
图块标头;或者
补充增强信息SEI消息。
22.根据权利要求19所述的装置,其中所述句法结构包括一起形成序列参数集SPS扩展的一或多个句法元素。
23.根据权利要求19所述的装置,其中所述句法结构包括一起形成视频参数集VPS的一或多个句法元素。
24.根据权利要求19所述的装置,其中指示所述经译码位流包含360度视频的所述信息包括所述句法结构的扩展位。
25.根据权利要求19所述的装置,其中为了基于对所述经译码位流包含360度视频的所述信息的所述接收来接收所述360度视频的信息,所述视频解码器经配置以接收指示几何投影的信息。
26.根据权利要求25所述的装置,其中所述视频解码器经配置以:
接收指示所述几何投影的组装排列和所述几何投影的面的旋转度中的一或多个的信息。
27.根据权利要求19所述的装置,其中为了基于对所述经译码位流包含360度视频的所述信息的所述接收来接收所述360度视频的信息,所述视频译码器经配置以基于所述经译码位流包含360度视频的所述信息的所述接收以所述同一句法结构或不同句法结构来接收所述360度视频的信息。
28.一种其上存储有指令的计算机可读存储媒体,所述指令在被执行时使得用于解码视频数据的装置的一或多个处理器:
接收指示经译码位流包含360度视频的信息作为句法结构的一部分;
基于对所述经译码位流包含360度视频的所述信息的接收来接收360度视频的信息;
接收非360度视频的信息作为同一句法结构的一部分;并且
解码所述360度视频和所述非360度视频。
29.根据权利要求28所述的计算机可读存储媒体,其中所述句法结构形成符合标准的位流的一部分,而不管所述符合标准的位流是否包含360度视频。
30.根据权利要求25所述的计算机可读存储媒体,其中使得一或多个处理器基于对所述经译码位流包含360度视频的所述信息的所述接收来接收所述360度视频的信息的所述指令包括使得一或多个处理器接收指示几何投影的信息的指令。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862630701P | 2018-02-14 | 2018-02-14 | |
US62/630,701 | 2018-02-14 | ||
US16/274,674 | 2019-02-13 | ||
US16/274,674 US10779006B2 (en) | 2018-02-14 | 2019-02-13 | Signaling 360-degree video information |
PCT/US2019/018072 WO2019161102A1 (en) | 2018-02-14 | 2019-02-14 | Signaling 360-degree video information |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111713106A true CN111713106A (zh) | 2020-09-25 |
Family
ID=67541276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980012999.2A Pending CN111713106A (zh) | 2018-02-14 | 2019-02-14 | 用信号发送360度视频信息 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10779006B2 (zh) |
CN (1) | CN111713106A (zh) |
WO (1) | WO2019161102A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10839480B2 (en) * | 2017-03-22 | 2020-11-17 | Qualcomm Incorporated | Sphere equator projection for efficient compression of 360-degree video |
CN115209153B (zh) * | 2019-09-24 | 2023-06-06 | 华为技术有限公司 | 编码器、解码器及对应方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106127680A (zh) * | 2016-06-29 | 2016-11-16 | 深圳市优象计算技术有限公司 | 一种720度全景视频快速浏览方法 |
CN106537921A (zh) * | 2014-06-20 | 2017-03-22 | 高通股份有限公司 | 用于在参数集中选择性地用信号表示不同数目的视频信号信息语法结构的系统和方法 |
US20170336705A1 (en) * | 2016-05-19 | 2017-11-23 | Avago Technologies General Ip (Singapore) Pte. Ltd. | 360 degree video capture and playback |
US20170339392A1 (en) * | 2016-05-20 | 2017-11-23 | Qualcomm Incorporated | Circular fisheye video in virtual reality |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150103925A1 (en) * | 2013-10-15 | 2015-04-16 | Qualcomm Incorporated | Parallel extensions of parameter sets |
WO2017116952A1 (en) * | 2015-12-29 | 2017-07-06 | Dolby Laboratories Licensing Corporation | Viewport independent image coding and rendering |
US10249019B2 (en) * | 2016-05-06 | 2019-04-02 | Mediatek Inc. | Method and apparatus for mapping omnidirectional image to a layout output format |
US10602191B2 (en) * | 2016-05-13 | 2020-03-24 | Gopro, Inc. | Apparatus and methods for video compression |
US10681326B2 (en) * | 2016-05-19 | 2020-06-09 | AVAGO TECHNOLOGlES INTERNATIONAL SALES PTE. LIMITED | 360 degree video system with coordinate compression |
-
2019
- 2019-02-13 US US16/274,674 patent/US10779006B2/en active Active
- 2019-02-14 WO PCT/US2019/018072 patent/WO2019161102A1/en active Application Filing
- 2019-02-14 CN CN201980012999.2A patent/CN111713106A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106537921A (zh) * | 2014-06-20 | 2017-03-22 | 高通股份有限公司 | 用于在参数集中选择性地用信号表示不同数目的视频信号信息语法结构的系统和方法 |
US20170336705A1 (en) * | 2016-05-19 | 2017-11-23 | Avago Technologies General Ip (Singapore) Pte. Ltd. | 360 degree video capture and playback |
US20170339392A1 (en) * | 2016-05-20 | 2017-11-23 | Qualcomm Incorporated | Circular fisheye video in virtual reality |
CN106127680A (zh) * | 2016-06-29 | 2016-11-16 | 深圳市优象计算技术有限公司 | 一种720度全景视频快速浏览方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190253733A1 (en) | 2019-08-15 |
WO2019161102A1 (en) | 2019-08-22 |
US10779006B2 (en) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112514386B (zh) | 网格编解码量化系数编解码 | |
CN115315957A (zh) | 视频译码中的带色度缩放的亮度映射(lmcs) | |
US10764605B2 (en) | Intra prediction for 360-degree video | |
CN113853784A (zh) | 用于视频译码的多个自适应环路滤波器集合 | |
US10897617B2 (en) | Rounding of motion vectors for adaptive motion vector difference resolution and increased motion vector storage precision in video coding | |
CN113557734A (zh) | 视频译码中的系数域块差分脉冲译码调制 | |
CN113728650A (zh) | 自适应环路滤波器集合索引信令 | |
CN114342389A (zh) | 视频编解码和变换单元的以高层语法信令通知的最大和最小块大小 | |
CN114223202A (zh) | 低频不可分离变换(lfnst)信令 | |
US10999596B2 (en) | Unification of affine motion field derivation and affine motion compensation | |
CN113545054A (zh) | 视频编解码中子块变换的简化 | |
CN113632483A (zh) | 用于视频编解码的受约束的仿射运动继承 | |
CN114128283A (zh) | 用于视频编解码的自适应参数集的存储器约束 | |
CN114846796A (zh) | 用于视频译码中的参考图片重采样的环绕偏移 | |
CN114375575A (zh) | 用于视频编解码的高层语法中的子图片信令 | |
CN113940067A (zh) | 用于视频编解码中的自适应环路滤波器的裁剪索引编解码 | |
CN113906756A (zh) | 视频编码和解码中的空间可扩展性支持 | |
US20210314567A1 (en) | Block partitioning for image and video coding | |
US10779006B2 (en) | Signaling 360-degree video information | |
CN115428462A (zh) | 用于视频译码中的变换跳过块的高级约束 | |
CN114982240A (zh) | 用于视频译码的多重变换集信令 | |
CN114868400A (zh) | 用于视频译码中的常规变换系数的基于方程的莱斯参数推导 | |
CN114930821A (zh) | 视频编解码中的自适应色彩变换的qp偏移的灵活信令通知 | |
CN114402602A (zh) | 用于视频编解码的算术编解码器字节填料信令 | |
US11895336B2 (en) | Picture orientation and quality metrics supplemental enhancement information message for 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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200925 |
|
WD01 | Invention patent application deemed withdrawn after publication |