CN118633287A - 编解码方法、装置、设备、及存储介质 - Google Patents

编解码方法、装置、设备、及存储介质 Download PDF

Info

Publication number
CN118633287A
CN118633287A CN202280090445.6A CN202280090445A CN118633287A CN 118633287 A CN118633287 A CN 118633287A CN 202280090445 A CN202280090445 A CN 202280090445A CN 118633287 A CN118633287 A CN 118633287A
Authority
CN
China
Prior art keywords
mosaic
mixed
splicing
heterogeneous
reconstructed
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
CN202280090445.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.)
Zhejiang University ZJU
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Zhejiang University ZJU
Guangdong Oppo Mobile Telecommunications Corp 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 Zhejiang University ZJU, Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Zhejiang University ZJU
Publication of CN118633287A publication Critical patent/CN118633287A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks

Landscapes

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

Abstract

本申请提供一种编解码方法、装置、设备、及存储介质,本申请通过将多种不同表达格式的视觉媒体内容对应的同构拼接图拼接在一张异构混合拼接图中,例如将多视点视频拼接图和点云拼接图拼接在一张异构混合拼接图中进行编解码,这样尽量减少了所需要调用的HEVC,VVC,AVC,AVS等二维视频编解码器的个数,减少了编解码代价,提高易用性。

Description

编解码方法、装置、设备、及存储介质 技术领域
本申请涉及图像处理技术领域,尤其涉及一种编解码方法、装置、设备、及存储介质。
背景技术
在三维应用场景中,例如虚拟现实(Virtual Reality,VR)、增强现实(Augmented Reality,AR)、混合现实(Mix Reality,MR)等应用场景中,在同一个场景中可能出现表达格式不同的视觉媒体对象。例如在同一个三维场景中存在,以视频表达场景背景与部分人物和物件、以三维点云或三维网格表达了另一部分人物。
在压缩编码时分别采用多视点视频编码、点云编码、网格编码,会比全部投影成多视点视频编码更能保持原表达格式的有效信息,提高观看时所渲染的观看视窗的质量,提高码率-质量的综合效率。
但是,目前的编解码技术是,对多视点视频、点云编码和网格网格分别进行编解码,其编解码过程中需要调用的编解码器个数较多,使得编解码代价大。
发明内容
本申请实施例提供了一种编解码方法、装置、设备、及存储介质,以降低编解码过程所调用的编解码器个数,降低编解码代价。
第一方面,本申请提供了一种编码方法,包括:
对多个视觉媒体内容分别进行处理,得到N个同构拼接图,所述多个视觉媒体内容中至少两个视觉媒体内容对应的表达格式不同,所述N为大于1的正整数;
将所述N个同构拼接图进行拼接,生成异构混合拼接图;
对所述异构混合拼接图进行编码,得到码流。
第二方面,本申请实施例提供一种解码方法,包括:
解码码流,得到重建异构混合拼接图;
对所述重建异构混合拼接图进行拆分,得到N个重建同构拼接图,所述N为大于1的正整数;
根据所述N个重建拼接图,得到多个重建视觉媒体内容,所述多个重建视觉媒体内容中至少两个重建视觉媒体内容对应的表达格式不同。
第三方面,本申请提供了一种编码装置,用于执行上述第一方面或其各实现方式中的方法。具体地,该预测装置包括用于执行上述第一方面或其各实现方式中的方法的功能单元。
第四方面,本申请提供了一种解码装置,用于执行上述第二方面或其各实现方式中的方法。具体地,该预测装置包括用于执行上述第二方面或其各实现方式中的方法的功能单元。
第五方面,提供了一种编码器,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,以执行上述第一方面或其各实现方式中的方法。
第六方面,提供了一种解码器,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,以执行上述第二方面或其各实现方式中的方法。
第七方面,提供了一种编解码系统,包括编码器和解码器。编码器用于执行上述第一方面或其各实现方式中的方法,解码器用于执行上述第二方面或其各实现方式中的方法。
第八方面,提供了一种芯片,用于实现上述第一方面至第二方面中的任一方面或其各实现方式中的方法。具体地,该芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片的设备执行如上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第九方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序使得计算机执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第十方面,提供了一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述第一方面至第二方面中的任一方面或其各实现方式中的方法。
第十一方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面至第二方面中的任 一方面或其各实现方式中的方法。
第十二方面,提供了一种码流,码流是基于上述第一方面的方法生成的。
基于以上技术方案,通过将多种不同表达格式的视觉媒体内容对应的拼接图拼接在一张异构混合拼接图中,例如将多视点视频拼接图和点云拼接图拼接在一张异构混合拼接图中进行编解码,这样尽量减少了所需要调用的HEVC,VVC,AVC,AVS等二维视频编解码器的个数,减少了编解码代价,提高易用性。
附图说明
图1为本申请实施例涉及的一种视频编解码系统的示意性框图;
图2A是本申请实施例涉及的视频编码器的示意性框图;
图2B是本申请实施例涉及的视频解码器的示意性框图;
图3A是多视点视频数据的组织和表达框架图;
图3B是多视点视频数据的拼接图像生成示意图;
图3C是点云数据的组织和表达框架图;
图3D至图3F为不同类型的点云数据示意图;
图4为多视点视频的编码示意图;
图5为多视点视频的解码示意图;
图6为本申请一实施例提供的编码方法流程示意图;
图7为本申请一实施例提供的编码过程示意图;
图8A为异构混合纹理拼接图;
图8B为异构混合几何和占用情况拼接图;
图9为本申请一实施例提供的混合编码过程示意图;
图10为本申请实施例涉及的一种语法结构示意图;
图11为本申请一编码过程示意图;
图12为本申请实施例涉及的另一种语法结构示意图;
图13为本申请另一编码过程示意图;
图14为本申请实施例涉及的另一种语法结构示意图;
图15为本申请另一编码过程示意图;
图16为本申请实一施例提供的解码方法流程示意图;
图17为本申请一实施例提供的混合解码过程示意图;
图18为本申请一解码过程示意图;
图19为本申请另一解码过程示意图;
图20为本申请另一解码过程示意图;
图21是本申请一实施例提供的编码装置的示意性框图;
图22是本申请一实施例提供的解码装置的示意性框图;
图23是本申请实施例提供的电子设备的示意性框图。
具体实施方式
本申请可应用于图像编解码领域、视频编解码领域、硬件视频编解码领域、专用电路视频编解码领域、实时视频编解码领域等。例如,本申请的方案可结合至音视频编码标准(audio video coding standard,简称AVS),例如,H.264/音视频编码(audio video coding,简称AVC)标准,H.265/高效视频编码(high efficiency video coding,简称HEVC)标准以及H.266/多功能视频编码(versatile video coding,简称VVC)标准。或者,本申请的方案可结合至其它专属或行业标准而操作,所述标准包含ITU-TH.261、ISO/IECMPEG-1Visual、ITU-TH.262或ISO/IECMPEG-2Visual、ITU-TH.263、ISO/IECMPEG-4Visual,ITU-TH.264(还称为ISO/IECMPEG-4AVC),包含可分级视频编解码(SVC)及多视图视频编解码(MVC)扩展。应理解,本申请的技术不限于任何特定编解码标准或技术。
高自由度沉浸式编码系统根据任务线可大致分为以下几个环节:数据采集、数据的组织与表达、数据编码压缩、数据解码重建、数据合成渲染,最终将目标数据呈现给用户。
本申请实施例涉及的编码主要为视频编解码,为了便于理解,首先结合图1对本申请实施例涉及的视频编解码系统进行介绍。
图1为本申请实施例涉及的一种视频编解码系统的示意性框图。需要说明的是,图1只是一种示例,本申请实施例的视频编解码系统包括但不限于图1所示。如图1所示,该视频编解码系统100包含编码设备110和解码设备120。其中编码设备用于对视频数据进行编码(可以理解成压缩)产生码流,并将码流传输给解码设备。解码设备对编码设备编码产生的码流进行解码,得到解码后的视频数据。
本申请实施例的编码设备110可以理解为具有视频编码功能的设备,解码设备120可以理解为具有视频解码功能的设备,即本申请实施例对编码设备110和解码设备120包括更广泛的装置,例如包含智能手机、台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机等。
在一些实施例中,编码设备110可以经由信道130将编码后的视频数据(如码流)传输给解码设备120。信道130可以包括能够将编码后的视频数据从编码设备110传输到解码设备120的一个或多个媒体和/或装置。
在一个实例中,信道130包括使编码设备110能够实时地将编码后的视频数据直接发射到解码设备120的一个或多个通信媒体。在此实例中,编码设备110可根据通信标准来调制编码后的视频数据,且将调制后的视频数据发射到解码设备120。其中通信媒体包含无线通信媒体,例如射频频谱,可选的,通信媒体还可以包含有线通信媒体,例如一根或多根物理传输线。
在另一实例中,信道130包括存储介质,该存储介质可以存储编码设备110编码后的视频数据。存储介质包含多种本地存取式数据存储介质,例如光盘、DVD、快闪存储器等。在该实例中,解码设备120可从该存储介质中获取编码后的视频数据。
在另一实例中,信道130可包含存储服务器,该存储服务器可以存储编码设备110编码后的视频数据。在此实例中,解码设备120可以从该存储服务器中下载存储的编码后的视频数据。可选的,该存储服务器可以存储编码后的视频数据且可以将该编码后的视频数据发射到解码设备120,例如web服务器(例如,用于网站)、文件传送协议(FTP)服务器等。
一些实施例中,编码设备110包含视频编码器112及输出接口113。其中,输出接口113可以包含调制器/解调器(调制解调器)和/或发射器。
在一些实施例中,编码设备110除了包括视频编码器112和输入接口113外,还可以包括视频源111。
视频源111可包含视频采集装置(例如,视频相机)、视频存档、视频输入接口、计算机图形系统中的至少一个,其中,视频输入接口用于从视频内容提供者处接收视频数据,计算机图形系统用于产生视频数据。
视频编码器112对来自视频源111的视频数据进行编码,产生码流。视频数据可包括一个或多个图像(picture)或图像序列(sequence of pictures)。码流以比特流的形式包含了图像或图像序列的编码信息。编码信息可以包含编码图像数据及相关联数据。相关联数据可包含序列参数集(sequence parameter set,简称SPS)、图像参数集(picture parameter set,简称PPS)及其它语法结构。SPS可含有应用于一个或多个序列的参数。PPS可含有应用于一个或多个图像的参数。语法结构是指码流中以指定次序排列的零个或多个语法元素的集合。
视频编码器112经由输出接口113将编码后的视频数据直接传输到解码设备120。编码后的视频数据还可存储于存储介质或存储服务器上,以供解码设备120后续读取。
在一些实施例中,解码设备120包含输入接口121和视频解码器122。
在一些实施例中,解码设备120除包括输入接口121和视频解码器122外,还可以包括显示装置123。
其中,输入接口121包含接收器及/或调制解调器。输入接口121可通过信道130接收编码后的视频数据。
视频解码器122用于对编码后的视频数据进行解码,得到解码后的视频数据,并将解码后的视频数据传输至显示装置123。
显示装置123显示解码后的视频数据。显示装置123可与解码设备120整合或在解码设备120外部。显示装置123可包括多种显示装置,例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或其它类型的显示装置。
此外,图1仅为实例,本申请实施例的技术方案不限于图1,例如本申请的技术还可以应用于单侧的视频编码或单侧的视频解码。
下面对本申请实施例涉及的视频编码框架进行介绍。
图2A是本申请实施例涉及的视频编码器的示意性框图。应理解,该视频编码器200可用于对图像进行有损压缩(lossy compression),也可用于对图像进行无损压缩(lossless compression)。该无损压缩可以是视觉无损压缩(visually lossless compression),也可以是数学无损压缩(mathematically lossless compression)。
该视频编码器200可应用于亮度色度(YCbCr,YUV)格式的图像数据上。例如,YUV比例可以为4:2:0、4:2:2或者4:4:4,Y表示明亮度(Luma),Cb(U)表示蓝色色度,Cr(V)表示红色色度,U和V表示为色度(Chroma)用于描述色彩及饱和度。例如,在颜色格式上,4:2:0表示每4个像素有4个亮度分量,2个色度分量(YYYYCbCr),4:2:2表示每4个像素有4个亮度分量,4个色度分量(YYYYCbCrCbCr),4:4:4表示全像素显示(YYYYCbCrCbCrCbCrCbCr)。
例如,该视频编码器200读取视频数据,针对视频数据中的每帧图像,将一帧图像划分成若干个编码树单元(coding tree unit,CTU),在一些例子中,CTB可被称作“树型块”、“最大编码单元”(Largest Coding unit,简称LCU)或“编码树型块”(coding tree block,简称CTB)。每一个CTU可以与图像内的具有相等大小的像素块相关联。每一像素可对应一个亮度(luminance或luma)采样及两个色度(chrominance或chroma)采样。因此,每一个CTU可与一个亮度采样块及两个色度采样块相关联。一个CTU大小例如为128×128、64×64、32×32等。一个CTU又可以继续被划分成若干个编码单元(Coding Unit,CU)进行编码,CU可以为矩形块也可以为方形块。CU可以进一步划分为预测单元(prediction Unit,简称PU)和变换单元(transform unit,简称TU),进而使得编码、预测、变换分离,处理的时候更灵活。在一种示例中,CTU以四叉树方式划分为CU,CU以四叉树方式划分为TU、PU。
视频编码器及视频解码器可支持各种PU大小。假定特定CU的大小为2N×2N,视频编码器及视频解码器可支持2N×2N或N×N的PU大小以用于帧内预测,且支持2N×2N、2N×N、N×2N、N×N或类似大小的对称PU以用于帧间预测。视频编码器及视频解码器还可支持2N×nU、2N×nD、nL×2N及nR×2N的不对称PU以用于帧间预测。
在一些实施例中,如图2A所示,该视频编码器200可包括:预测单元210、残差单元220、变换/量化单元230、反变换/量化单元240、重建单元250、环路滤波单元260、解码图像缓存270和熵编码单元280。需要说明的是,视频编码器200可包含更多、更少或不同的功能组件。
可选的,在本申请中,当前块(current block)可以称为当前编码单元(CU)或当前预测单元(PU)等。预测块也可称为预测图像块或图像预测块,重建图像块也可称为重建块或图像重建图像块。
在一些实施例中,预测单元210包括帧间预测单元211和帧内估计单元212。由于视频的一个帧中的相邻像素之间存在很强的相关性,在视频编解码技术中使用帧内预测的方法消除相邻像素之间的空间冗余。由于视频中的相邻帧之间存在着很强的相似性,在视频编解码技术中使用帧间预测方法消除相邻帧之间的时间冗余,从而提高编码效率。
帧间预测单元211可用于帧间预测,帧间预测可以包括运动估计(motion estimation)和运动补偿(motion compensation),可以参考不同帧的图像信息,帧间预测使用运动信息从参考帧中找到参考块,根据参考块生成预测块,用于消除时间冗余;帧间预测所使用的帧可以为P帧和/或B帧,P帧指的是向前预测帧,B帧指的是双向预测帧。帧间预测使用运动信息从参考帧中找到参考块,根据参考块生成预测块。运动信息包括参考帧所在的参考帧列表,参考帧索引,以及运动矢量。运动矢量可以是整像素的或者是分像素的,如果运动矢量是分像素的,那么需要在参考帧中使用插值滤波做出所需的分像素的块,这里把根据运动矢量找到的参考帧中的整像素或者分像素的块叫参考块。有的技术会直接把参考块作为预测块,有的技术会在参考块的基础上再处理生成预测块。在参考块的基础上再处理生成预测块也可以理解为把参考块作为预测块然后再在预测块的基础上处理生成新的预测块。
帧内估计单元212只参考同一帧图像的信息,预测当前码图像块内的像素信息,用于消除空间冗余。帧内预测所使用的帧可以为I帧。
帧内预测有多种预测模式,以国际数字视频编码标准H系列为例,H.264/AVC标准有8种角度预测模式和1种非角度预测模式,H.265/HEVC扩展到33种角度预测模式和2种非角度预测模式。HEVC使用的帧内预测模式有平面模式(Planar)、DC和33种角度模式,共35种预测模式。VVC使用的帧内模式有Planar、DC和65种角度模式,共67种预测模式。
需要说明的是,随着角度模式的增加,帧内预测将会更加精确,也更加符合对高清以及超高清数字视频发展的需求。
残差单元220可基于CU的像素块及CU的PU的预测块来产生CU的残差块。举例来说,残差单元220可产生CU的残差块,使得残差块中的每一采样具有等于以下两者之间的差的值:CU的像素块中的采样,及CU的PU的预测块中的对应采样。
变换/量化单元230可量化变换系数。变换/量化单元230可基于与CU相关联的量化参数(QP)值来量化与CU的TU相关联的变换系数。视频编码器200可通过调整与CU相关联的QP值来调整应用于与CU相关联的变换系数的量 化程度。
反变换/量化单元240可分别将逆量化及逆变换应用于量化后的变换系数,以从量化后的变换系数重建残差块。
重建单元250可将重建后的残差块的采样加到预测单元210产生的一个或多个预测块的对应采样,以产生与TU相关联的重建图像块。通过此方式重建CU的每一个TU的采样块,视频编码器200可重建CU的像素块。
环路滤波单元260用于对反变换与反量化后的像素进行处理,弥补失真信息,为后续编码像素提供更好的参考,例如可执行消块滤波操作以减少与CU相关联的像素块的块效应。
在一些实施例中,环路滤波单元260包括去块滤波单元和样点自适应补偿/自适应环路滤波(SAO/ALF)单元,其中去块滤波单元用于去方块效应,SAO/ALF单元用于去除振铃效应。
解码图像缓存270可存储重建后的像素块。帧间预测单元211可使用含有重建后的像素块的参考图像来对其它图像的PU执行帧间预测。另外,帧内估计单元212可使用解码图像缓存270中的重建后的像素块来对在与CU相同的图像中的其它PU执行帧内预测。
熵编码单元280可接收来自变换/量化单元230的量化后的变换系数。熵编码单元280可对量化后的变换系数执行一个或多个熵编码操作以产生熵编码后的数据。
图2B是本申请实施例涉及的视频解码器的示意性框图。
如图2B所示,视频解码器300包含:熵解码单元310、预测单元320、反量化/变换单元330、重建单元340、环路滤波单元350及解码图像缓存360。需要说明的是,视频解码器300可包含更多、更少或不同的功能组件。
视频解码器300可接收码流。熵解码单元310可解析码流以从码流提取语法元素。作为解析码流的一部分,熵解码单元310可解析码流中的经熵编码后的语法元素。预测单元320、反量化/变换单元330、重建单元340及环路滤波单元350可根据从码流中提取的语法元素来解码视频数据,即产生解码后的视频数据。
在一些实施例中,预测单元320包括帧间预测单元321和帧内估计单元322。
帧内估计单元322可执行帧内预测以产生PU的预测块。帧内估计单元322可使用帧内预测模式以基于空间相邻PU的像素块来产生PU的预测块。帧内估计单元322还可根据从码流解析的一个或多个语法元素来确定PU的帧内预测模式。
帧间预测单元321可根据从码流解析的语法元素来构造第一参考图像列表(列表0)及第二参考图像列表(列表1)。此外,如果PU使用帧间预测编码,则熵解码单元310可解析PU的运动信息。帧间预测单元321可根据PU的运动信息来确定PU的一个或多个参考块。帧间预测单元321可根据PU的一个或多个参考块来产生PU的预测块。
反量化/变换单元330可逆量化(即,解量化)与TU相关联的变换系数。反量化/变换单元330可使用与TU的CU相关联的QP值来确定量化程度。
在逆量化变换系数之后,反量化/变换单元330可将一个或多个逆变换应用于逆量化变换系数,以便产生与TU相关联的残差块。
重建单元340使用与CU的TU相关联的残差块及CU的PU的预测块以重建CU的像素块。例如,重建单元340可将残差块的采样加到预测块的对应采样以重建CU的像素块,得到重建图像块。
环路滤波单元350可执行消块滤波操作以减少与CU相关联的像素块的块效应。
视频解码器300可将CU的重建图像存储于解码图像缓存360中。视频解码器300可将解码图像缓存360中的重建图像作为参考图像用于后续预测,或者,将重建图像传输给显示装置呈现。
视频编解码的基本流程如下:在编码端,将一帧图像划分成块,针对当前块,预测单元210使用帧内预测或帧间预测产生当前块的预测块。残差单元220可基于预测块与当前块的原始块计算残差块,即预测块和当前块的原始块的差值,该残差块也可称为残差信息。该残差块经由变换/量化单元230变换与量化等过程,可以去除人眼不敏感的信息,以消除视觉冗余。可选的,经过变换/量化单元230变换与量化之前的残差块可称为时域残差块,经过变换/量化单元230变换与量化之后的时域残差块可称为频率残差块或频域残差块。熵编码单元280接收到变化量化单元230输出的量化后的变化系数,可对该量化后的变化系数进行熵编码,输出码流。例如,熵编码单元280可根据目标上下文模型以及二进制码流的概率信息消除字符冗余。
在解码端,熵解码单元310可解析码流得到当前块的预测信息、量化系数矩阵等,预测单元320基于预测信息对当前块使用帧内预测或帧间预测产生当前块的预测块。反量化/变换单元330使用从码流得到的量化系数矩阵,对量化系数矩阵进行反量化、反变换得到残差块。重建单元340将预测块和残差块相加得到重建块。重建块组成重建图像,环路滤波单元350基于图像或基于块对重建图像进行环路滤波,得到解码图像。编码端同样需要和解码端类似的操作 获得解码图像。该解码图像也可以称为重建图像,重建图像可以为后续的帧作为帧间预测的参考帧。
需要说明的是,编码端确定的块划分信息,以及预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息等在必要时携带在码流中。解码端通过解析码流及根据已有信息进行分析确定与编码端相同的块划分信息,预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息,从而保证编码端获得的解码图像和解码端获得的解码图像相同。
上述是基于块的混合编码框架下的视频编解码器的基本流程,随着技术的发展,该框架或流程的一些模块或步骤可能会被优化,本申请适用于该基于块的混合编码框架下的视频编解码器的基本流程,但不限于该框架及流程。
在一些应用场景中,在同一个三维场景中同时出现多种异构内容,例如出现多视点视频和点云。对于这种情况,目前的编解码方式至少包括如下两种:
方式一,对于多视点视频采用MPEG(Moving Picture Experts Group,动态图像专家组)沉浸式视频(MPEG Immersive Video,简称MIV)技术进行编解码,对于点云则采用点云视频压缩(Video based Point Cloud Compression,简称VPCC)技术进行编解码。
下面对MIV技术和VPCC技术进行介绍。
MIV技术:为了降低传输像素率的同时尽可能保留场景信息,以便保证有足够的信息用于渲染目标视图,MPEG-I采用的方案如图3A所示,选择有限数量视点作为基础视点且尽可能表达场景的可视范围,基础视点作为完整图像传输,去除剩余非基础视点与基础视点之间的冗余像素,即仅保留非重复表达的有效信息,再将有效信息提取为子块图像与基础视点图像进行重组织,形成更大的矩形图像,该矩形图像称为拼接图像,图3A和图3B给出拼接图像的生成示意过程。将拼接图像送入编解码器压缩重建,并且子块图像拼接信息有关的辅助数据也一并送入编码器形成码流。
VPCC的编码方法是将点云投影成二维图像或视频,将三维信息转换成二维信息编码。图3C是VPCC的编码框图,码流大致分为四个部分,几何码流是几何深度图编码产生的码流,用来表示点云的几何信息;属性码流是纹理图编码产生的码流,用来表示点云的属性信息;占用码流是占用图编码产生的码流,用来指示深度图和纹理图中的有效区域;这三种类型的视频都使用视频编码器进行编解码,如图3D至图3F所示。辅助信息码流是子块图像的附属信息编码产生的码流,即V3C标准中的patchdataunit相关的部分,指示了每个子块图像的位置和大小等信息。
方式二,多视点视频和点云均使用可视体视频编码(Visual Volumetric Video-based Coding,简称V3C)中的帧打包(frame packing)技术进行编解码。
下面对frame packing技术进行介绍。
以多视点视频为例,示例性的,如图4所示,编码端包括如下步骤:
步骤1,对获取的多视点视频进行编码时,经过一些前处理,生成多视点视频子块(patch),接着,将多视点视频子块进行组织,生成多视点视频拼接图。
例如,图4所示,将多视点视频输入TIMV中进行打包,输出多视点视频拼接图。TIMV为一种MIV的参考软件。本申请实施例的打包可以理解为拼接。
其中,多视点视频拼接图包括多视点视频纹理拼接图、多视点视频几何拼接图,即只包含多视点视频子块。
步骤2,将多视点视频拼接图输入帧打包器,输出多视点视频混合拼接图。
其中,多视点视频混合拼接图包括多视点视频纹理混合拼接图,多视点视频几何混合拼接图,多视点视频纹理与几何混合拼接图。
具体的,如图4所示,将多视点视频拼接图进行帧打包(framepacking),生成多视点视频混合拼接图,每个多视点视频拼接图占用多视点视频混合拼接图的一个区域(region)。相应地,在码流中要为每个区域传送一个标志pin_region_type_id_minus2,这个标志记录了当前区域属于多视点视频纹理拼接图还是多视点视频几何拼接图的信息,在解码端需要利用该信息。
步骤3,使用视频编码器对多视点视频混合拼接图进行编码,得到码流。
示例性的,如图5所示,解码端包括如下步骤:
步骤1,在多视点视频解码时,将获取的码流输入视频解码器中进行解码,得到重建多视点视频混合拼接图。
步骤2,将重建多视点视频混合拼接图输入帧解打包器中,输出重建多视点视频拼接图。
具体的,首先,从码流中获取标志pin_region_type_id_minus2,若确定该pin_region_type_id_minus2是V3C_AVD,则表示当前区域是多视点视频纹理拼接图,则将该当前区域拆分并输出为重建多视点视频纹理拼接图。
若确定该pin_region_type_id_minus2是V3C_GVD,则表示当前区域是多视点视频几何拼接图,将该当前区域拆 分并输出为重建多视点视频几何拼接图。
步骤3,对重建多视点视频拼接图进行解码,得到重建多视点视频。
具体是,对多视点视频纹理拼接图和多视点视频几何拼接图进行解码,得到重建多视点视频。
上面以多视点视频为例对framepacking技术进行解析介绍,对于点云进行framepacking编解码方式,与上述多视点视频基本相同,参照即可,例如使用TMC(一种VPCC的参考软件)对点云进行打包,得到点云拼接图,对点云拼接图输入帧打包器进行帧打包,得到点云混合拼接图,对点云混合拼接图进行拼接,得到点云码流,在此不再赘述。
下面对标准中与framepacking相关的语法进行介绍。
V3C单元头语法如表1所示:
表1
V3C单元头语义,如表2所示:
表2:V3C单元类型
拼接信息语法如表3所示:
表3
拼接信息语义:
打包后的视频帧可以划分为一个或多个矩形区域。一个区域应精确映射到一个地图集图块。打包视频帧的矩形区 域不允许重叠。
pin_codec_id[j]表示用于对ID为j的图集压缩打包视频数据的编解码器的标识符。pin_codec_id应在0到255的范围内,包括0到255。该编解码器可以通过组件编解码器映射SEI消息或通过本文档之外的方式来识别。
pin_occupancy_present_flag[j]等于0表示ID为j的图集的打包视频帧不包含具有占用数据的区域。pin_occupancy_present_flag[j]等于1表示ID为j的图集的打包视频帧确实包含具有占用数据的区域。当pin_occupancy_present_flag[j]不存在时,推断为等于0。
比特流一致性的要求是,如果pin_occupancy_present_flag[j]对于atlas ID j的atlas等于1,vps_occupancy_video_present_flag[j]对于atlas ID j相同的atlas应等于0。
pin_geometry_present_flag[j]等于0表示ID为j的图集的打包视频帧不包含具有几何数据的区域。pin_geometry_present_flag[j]等于1表示ID为j的图集的打包视频帧确实包含具有几何数据的区域。当pin_geometry_present_flag[j]不存在时,推断为等于0。
比特流一致性的要求是,如果pin_geometry_present_flag[j]对于ID为j的图集等于1,则vps_geometry_video_present_flag[j]对于ID为j的图集应等于0。
pin_attributes_present_flag[j]等于0表示ID为j的图集的打包视频帧不包含具有属性数据的区域。pin_attributes_present_flag[j]等于1表示ID为j的图集的打包视频帧确实包含具有属性数据的区域。当pin_attributes_present_flag[j]不存在时,推断为等于0。
比特流一致性的要求是,如果pin_attribute_present_flag[j]对于ID为j的图集等于1,vps_attribute_video_present_flag[j]对于ID为j的图集应等于0。
pin_occupancy_2d_bit_depth_minus1[j]加1表示标称2D位深度,包含占用数据的ID为j的图集的解码区域应转换到该标称2D位深度。pin_occupancy_MSB_align_flag[j]应在0到31的范围内,包括0和31。
pin_occupancy_MSB_align_flag[j]指示ID为j的图集的包含占用样本的解码区域如何转换为标称占用比特深度的样本,如附件B中所指定。
pin_lossy_occupancy_compression_threshold[j]指示用于从包含ID为j的图集的占用数据的解码区域导出二进制占用的阈值。pin_lossy_occupancy_compression_threshold[j]应在0到255的范围内,包括0和255。
pin_geometry_2d_bit_depth_minus1[j]加1表示标称2D位深度,ID为j的图集的包含几何数据的解码区域应转换到的标称2D位深度。pin_geometry_2d_bit_depth_minus1[j]应在0到31的范围内,包括0和31。
pin_geometry_MSB_align_flag[j]指示如何将ID为j的图集的包含几何样本的解码区域转换为标称占用位深度的样本,如附件B中所述。
pin_geometry_3d_coordinates_bit_depth_minus1[j]加1表示ID为j的图集的重建立体内容的几何坐标的位深度。pin_geometry_3d_coordinates_bit_depth_minus1[j]应在0到31的范围内,包括0和31。
pin_attribute_count[j]表示ID为j的图集的打包视频帧中存在的具有唯一属性类型的属性的数量。
pin_attribute_type_id[j][i]表示为ID为j的图集的打包视频帧的属性区域的第i个属性类型。表3描述了支持的属性类型列表。
pin_attribute_2d_bit_depth_minus1[j][k]加1表示对于ID为j的图集,包含属性索引为k的属性的区域应转换到的标称2D位深度。pin_attribute_2d_bit_depth_minus1[j][k]应在0到31的范围内,包括0和31。
pin_attribute_MSB_align_flag[j][k]指示如何将包含属性类型为k的属性的解码区域(对于ID为j的图集)转换为标称属性位深度的样本,如附件B中所述。
pin_attribute_map_absolute_coding_persistence_flag[j][k]等于1表示解码区域包含索引为k的属性的属性图,对应于ID为j的图集,在没有任何形式的地图预测的情况下进行编码。pin_attribute_map_absolute_coding_persistence_flag[j][i]等于0表示解码区域包含索引为k的属性的属性图,对应于ID为j的图集,应使用与用于ID为j的图集的几何分量相同的地图预测方法。如果pin_attribute_map_absolute_coding_persistence_flag[j][i]不存在,则应推断其值等于1。
3D数组AttributeMapAbsoluteCodingEnabledFlag指示是否要对属性的特定映射进行编码,有或没有预测,获得如下:
pin_attribute_dimension_minus1[j][k]加1表示ID为j的图集的包含索引为k的属性的区域的总维数(即通道数)。pin_attribute_dimension_minus1[j][i]应在0到63的范围内,包括0和63。
pin_attribute_dimension_partitions_minus1[j][k]加1表示对于ID为j的图集,包含索引为k的属性的区域的属性通道应分组的分区组数。pin_attribute_dimension_partitions_minus1[j][k]应在0到63的范围内,包括0到63。
pin_attribute_partition_channels_minus1[j][k][l]加1表示对于ID为j的图集的包含索引为k的属性的区域,分配给索引为l的维度分区组的通道数。对于所有维度分区组,ai_attribute_partition_channels_minus1[j][k][l]应在0到ai_attribute_dimension_minus1[j][k]的范围内。
pin_regions_count_minus1[j]加1表示ID为j的图集打包在一个视频帧中的区域数。pin_regions_count_minus1应在0到7的范围内,包括0到7。当不存在时,pin_regions_count_minus1的值被推断为等于0。
pin_region_tile_id[j][i]表示ID为j的图集的索引为i的区域的图块ID。
pin_region_type_id_minus2[j][i]加2表示对于ID为j的图集,索引为i的区域的ID。pin_region_type_id_minus2[j][i]的值应在0到2的范围内,包括0到2。
pin_region_top_left_x[j][i]以打包视频分量帧中的亮度样本为单位,为ID为j的图集的索引为i的区域指定左上样本的水平位置。当不存在时,pin_region_top_left_x[j][i]的值被推断为等于0。
pin_region_top_left_y[j][i]以打包视频分量帧中的亮度样本为单位,为ID为j的图集的索引为i的区域指定左上样本的垂直位置。当不存在时,pin_region_top_left_y[j][i]的值被推断为等于0。
pin_region_width_minus1[j][i]plus 1为ID为j的图集的索引为i的区域指定宽度,以亮度样本为单位。
pin_region_height_minus1[j][i]加1指定ID为j的图集的索引为i的区域指定高度,以亮度样本为单位。
pin_region_unpack_top_left_x[j][i]以解压缩视频分量帧中的亮度样本为单位,为ID j的图集的索引为i的区域指定左上样本的水平位置。当不存在时,pin_region_unpack_top_left_x[j][i]的值被推断为等于0。
pin_region_unpack_top_left_y[j][i]以解压缩视频分量帧中的亮度样本为单位,为ID j的图集的索引为i的区域指定左上样本的垂直位置。当不存在时,pin_region_unpack_top_left_y[j][i]的值被推断为等于0。
pin_region_rotation_flag[j][i]等于0表示不对ID为j的图集的索引为i的区域执行旋转。pin_region_rotation_flag[j][i]等于1表示ID为j的图集的索引为i的区域旋转了90度。
pin_region_map_index[j][i]指定ID为j的的图集索引为i的区域的地图索引。
pin_region_auxiliary_data_flag[j][i]等于1表示ID为j的图集索引为i的区域仅包含RAW和/或EOM编码点。pin_region_auxiliary_data_flag等于0表示ID为j的图集索引为i的区域可能包含RAW和/或EOM编码点。
pin_region_attr_type_id[j][i]表示ID为j的图集索引为i的区域的属性类型。表3描述了支持的属性列表。
pin_region_attr_partition_index[j][i]表示ID为j的图集索引为i的区域的属性分区索引。当不存在时,pin_region_attr_partition_index[j][i]的值被推断为等于0。
打包视频解码过程(Packed video decoding process):
ID为DecAtlasID的图集的打包视频分量的解码过程执行如下。
对于打包的视频分量,首先使用附件A中定义的配置文件或pin_codec_id[DecAtlasID]的值和子条款F.2.11中指定的分量编解码器映射SEI消息(如果存在)来确定编解码器。然后,根据相应的编码规范,使用存在于V3C比特流中的打包视频子比特流作为输入来调用打包视频解码过程。
这个过程的输出是:
– NumDecPckFrames,表示解码后打包视频帧的数量,
– 一个4D数组DecPckFrames,解码的打包视频帧,其中维度分别对应于解码的打包视频帧索引、组件索引、 行索引和列索引,以及
– 以下一维数组:
– DecPckBitDepth,表示打包的视频位深度,
– DecPckHeight,表示打包后的视频高度,
– DecPckWidth,表示打包后的视频宽度,
– DecPckChromaFormat,表示属性色度格式,
– DecPckChromaSamplingPosition,如果存在,指示ISO/IEC 23091-2中规定的视频色度采样位置,
– DecPckFullRange,如果存在,指示ISO/IEC 23091-2中规定的视频全范围代码点,
– DecPckColourPrimaries,如果存在,指示ISO/IEC 23091-2中规定的源原色的色度坐标,
– DecPckTransferCharacteristics,如果存在,指示ISO/IEC 23091-2中规定的传输特性,
– DecPckMatrixCoeffs,如果存在,指示ISO/IEC 23091-2中规定的矩阵系数,
– DecPckOutOrdIdx,表示打包的视频输出顺序索引,以及
– DecPckCompTime,表示打包的视频合成时间。
其中维度对应于解码的打包视频帧索引。
如果数组DecPckFullRange缺失,则其所有元素都应设置为1。
如果数组DecPckTransferCharacteristics的任何元素缺失或设置为值2,即未指定,则这些元素应设置为8,即线性。
如果数组DecPckChromaSamplingPosition缺失,则其所有元素都应设置为0。
如果数组DecPckColourPrimaries缺失,则其所有元素都应设置为2。
如果数组DecPckMatrixCoeffs缺失,则其所有元素都应设置为2。
数组DecPckChromaSamplingPosition、DecPckColourPrimaries、DecPckMatrixCoeffs、DecPckFullRange和DecPckTransferCharacteristics的值不得用于pin_region_type_id_minus2等于V3C_OVD、V3C_GVD和V3C_AVD且pin_region_attr_type_id等于ATTR_MATERIAL_ID的解码打包帧区域的任何进一步处理,或ATTR_NORMAL。
这些值应根据ISO/IEC 23091-2中相应的编码点进行解释。
注—任何现有的视频编码规范,如ISO/IEC 14496-10或ISO/IEC 23008-2或任何未来定义的视频编码规范,如果包含在pin_packed_codec_id中,都可以使用。
B.4解码拼接视频的拆解过程(Unpacking process of a decoded packed video)
B.4.1一般的,当色度格式DecPckChromaFormat为4:4:4时,适用B.4节中的过程。其他chroma fromats的过程超出了本文档的范围。让变量NumRegions、NumAttributes、NumPartitions、NumMaps设置如下:NumRegions=pin_regions_count_minus1[ConvAtlasID]NumAttributes=pin_attribute_count[ConvAtlasID]分区数=64NumMaps=vps_map_count_minus1[ConvAtlasID]注—为了简化解包过程的描述,变量NumPartitions设置为最大允许值。最大允许值可能会受到应用程序工具集配置文件的进一步限制。解包过程的优化实现可以根据packing_information()语法结构中的语法元素确定该变量的适当值。让大小为NumRegions、RegionTypeId、RegionPackedOffsetX、RegionPackedOffsetY、RegionWidth、RegionHeight、RegionUnpackedOffsetX、RegionUnpackedOffsetY、RegionMapIdx、RegionRotationFlag、RegionAuxilaryDataFlag、RegionAttrTypeID、RegionAttrPatritionIdx和RegionAttrPatritionChannels的一维数组设置如下:
for(i=0;i<NumRegions;i++){
RegionTypeId[i]=pin_region_type_id_minus2[ConvAtlasID][i]+2
RegionPackedOffsetX[i]=pin_region_top_left_x[ConvAtlasID][i]
RegionPackedOffsetY[i]=pin_region_top_left_y[ConvAtlasID][i]
RegionWidth[i]=pin_region_width_minus1[ConvAtlasID][i]+1
RegionHeight[i]=pin_region_height_minus1[ConvAtlasID][i]+1
RegionUnpackedOffsetX[i]=pin_region_unpacked_top_left_x[ConvAtlasID][i]
RegionUnpackedOffsetY[i]=pin_region_unpacked_top_left_y[ConvAtlasID][i]
RegionMapIdx[i]=pin_region_map_index[ConvAtlasID][i]
RegionRotationFlag[i]=pin_region_rotation_flag[ConvAtlasID][i]
RegionAuxilaryDataFlag[i]=pin_region_auxiliary_data_flag[j][i]
RegionAttrTypeID[i]=pin_region_attr_type_id[ConvAtlasID][i]
— 解包过程定义如下:调用B.4.2节来计算解包视频分量的分辨率。此过程的输出是变量unpckOccWidth、unpckOccHeight、unpckGeoAuxWidth和unpckGeoAuxHeight、一维数组unpckGeoWidth和unpckGeoHeight、二维数组unpckAttrAuxWidth和unpckAttrAuxHeight,以及3D数组unpckAttrWidth和unpckAttrHeight。
– 调用B.4.3子条款来初始化解包的视频分量帧。此过程的输入是变量unpckOccWidth、unpckOccHeight、unpckGeoAuxWidth和unpckGeoAuxHeight、一维数组unpckGeoWidth和unpckGeoHeight、二维数组unpckAttrAuxWidth和unpckAttrAuxHeight,以及3D数组unpckAttrWidth和unpckAttrHeight。该过程的输出是4D数组unpckOccFrames、5D数组unpckGeoFrames、4D数组unpckGeoAuxFrames、7D数组unpckAttrFrames、6D数组unpckAttrAuxFrames。–将数据复制到解包的视频分量帧,调用B.4.4子节。该过程的输入是4D数组unpckOccFrames、5D数组unpckGeoFrames、4D数组unpckGeoAuxFrames、7D数组unpckAttrFrames、6D数组unpckAttrAuxFrames。该过程的输出被更新为4D数组unpckOccFrames、5D数组unpckGeoFrames、4D数组unpckGeoAuxFrames、7D数组unpckAttrFrames、6D数组unpckAttrAuxFrames。作为子条款B.4.4输出的解包视频分量帧可以作为输入传递给子条款B.2中定义的标称格式转换过程。
B.4.2计算解包视频分量分辨率此过程计算解包视频组件的分辨率。这个过程的输出是:–变量unpckOccWidth、unpckOccHeight、unpckGeoAuxWidth和unpckGeoAuxHeight。–一维数组unpckGeoWidth和unpckGeoHeight,大小为NumMaps。–2D数组unpckAttrAuxWidth和unpckAttrAuxHeight,大小为NumAttributes×NumPartitions。–3D数组unpckAttrWidth和unpckAttrHeight,大小为NumAttributes×NumPartitions×NumMaps。让变量unpckOccWidth、unpckOccHeight、unpckGeoAuxWidth和unpckGeoAuxHeight初始化如下:unpckOccWidth=0unpckOccHeight=0unpckGeoAuxWidth=0unpckGeoAuxHeight=0让大小为NumMaps的一维数组unpckGeoWidth、unpckGeoHeight初始化如下:
让大小为NumAttributes×NumPartitions的二维数组unpckAttrAuxWidth和unpckAttrAuxHeight初始化如下:
Let 3D arrays unpckAttrWidth,unpckAttrHeight,of size NumAttributes×NumPartitions×NumMaps,be initialized as follows:
让包含解压缩视频分量维度的变量和数组计算如下:
B.4.3初始化解包视频分量帧此过程初始化解压缩的视频分量帧。
这个过程的输入是:
– 变量unpckOccWidth、unpckOccHeight、unpckGeoAuxWidth和unpckGeoAuxHeight。
– 一维数组unpckGeoWidth和unpckGeoHeight,大小为NumMaps。
– 2D数组unpckAttrAuxWidth和unpckAttrAuxHeight,大小为NumAttributes×NumPartitions。
– 3D数组unpckAttrWidth和unpckAttrHeight,大小为NumAttributes×NumPartitions×NumMaps。这个过程的输出是:
– 4D数组unpckOccFrames,表示解压缩的占用帧,其中维度分别对应占用视频帧索引、组件索引、行索引和列索引。
– 5D数组unpckGeoFrames,表示解压缩的几何视频帧,其中维度分别对应于地图索引、解码的几何视频帧索引、组件索引、行索引和列索引。
– 4D数组unpckGeoAuxFrames,表示解压后的辅助几何视频帧,其中维度分别对应解码后的辅助几何视频帧索引、分量索引、行索引和列索引。
– 7D数组unpckAttrFrames,表示解包后的属性视频帧,其中维度对应属性索引、属性分区索引、地图索引、解码后的属性视频帧索引、分量索引、行索引、列索引,分别。
– 6D数组unpckAttrAuxFrames,表示解包后的辅助属性视频帧,其中维度分别对应属性索引、属性分区索引、解码属性视频帧索引、分量索引、行索引和列索引让unpckOccFrames、unpckGeoAuxFrames、unpckAttrFrames和 unpckAttrAuxFrames初始化如下:
B.4.4将数据从打包区域复制到解包视频分量帧过程此过程根据区域类型将区域数据从打包帧复制到未打包帧结构。这个过程的输入是:–4D数组unpckOccFrames,表示解压缩的占用帧,其中维度分别对应占用视频帧索引、组件索引、行索引和列索引。–5D数组unpckGeoFrames,表示解压缩的几何视频帧,其中维度分别对应于地图索引、解码的几何视频帧索引、组件索引、行索引和列索引。–4D数组unpckGeoAuxFrames,表示解压后的辅助几何视频帧,其中维度分别对应解码后的辅助几何视频帧索引、分量索引、行索引和列索引。–7D数组unpckAttrFrames,表示解包后的属性视频帧,其中维度对应属性索引、属性分区索引、地图索引、解码后的属性视频帧索引、分量索引、行索引、列索引,分别。–6D数组unpckAttrAuxFrames,表示解包后的辅助属性视频帧,其中维度分别对应属性索引、属性分区索引、解码属性视频帧索引、分量索引、行索引和列索引这个过程的输出是:–更新的4D数组unpckOccFrames。–更新的5D数组unpckGeoFrames。–更新的4D数组unpckGeoAuxFrames。–更新的7D数组unpckAttrFrames。–更新的6D数组unpckAttrAuxFrames。以下适用:
目前,如果在同一个三维场景中同时出现多种不同表达格式的视觉媒体内容时,则对多种不同表达格式的视觉媒体内容分别进行编解码。例如,对于同一个三维场景中同时出现点云和多视点视频的情况,目前的打包技术是,对点云进行压缩,形成点云压缩码流(即一种V3C码流),对多视点视频信息压缩,得到多视点视频压缩码流(即另一种V3C码流),然后由系统层对压缩码流进行复接,得到融合的三维场景复接码流。解码时,对点云压缩码流和多视点视频压缩码流分别进行解码。由此可知,现有技术在对多种不同表达格式的视觉媒体内容进行编解码时,使用的编解码器多,编解码代价高。
为了解决上述技术问题,本申请实施例通过将多种不同表达格式的视觉媒体内容对应的拼接图拼接在一张异构混合拼接图中,例如将多视点视频拼接图和点云拼接图拼接在一张异构混合拼接图中进行编解码,这样尽量减少了所需要调用的HEVC,VVC,AVC,AVS等二维视频编码器的个数,减少了编解码代价,提高易用性。
下面结合图6,以编码端为例,对本申请实施例提供的视频编码方法进行介绍。
图6为本申请一实施例提供的编码方法流程示意图,如图6所示,本申请实施例的方法包括:
S601、对多个视觉媒体内容分别进行处理,得到N个同构拼接图。
其中,多个视觉媒体内容中至少两个视觉媒体内容对应的表达格式不同,N为大于1的正整数。
在三维应用场景中,例如虚拟现实(Virtual Reality,VR)、增强现实(Augmented Reality,AR)、混合现实(Mix Reality,MR)等应用场景中,在同一个场景中可能出现表达格式不同的视觉媒体对象,例如在同一个三维场景中存在,以视频表达场景背景与部分人物和物件、以三维点云或三维网格表达了另一部分人物。
本申请实施例的多个视觉媒体内容包括多视点视频、点云、网格等媒体内容。
在一些实施例中,上述多个视觉媒体内容为同一个三维空间中同时呈现的媒体内容。
在一些实施例中,上述多个视觉媒体内容为同一个三维空间中不同时间呈现媒体内容。
在一些实施例中,上述多个视觉媒体内容还可以是不同三维空间的媒体内容。
即本申请实施例中,对上述多个视觉媒体内容不做具体限制。
也就是说,本申请实施例的多个视觉媒体内容中至少两个视觉媒体内容对应的表达格式不同。
在一些实施例中,本申请实施例的多个视觉媒体内容的表达格式均不相同,例如,多个视觉媒体内容中包括点云和多视点视频。
在一些实施例中,本申请实施例的多个视觉媒体内容中部分视觉媒体内容的表达格式相同,部分视觉媒体内容的表达格式不同,例如多个视觉媒体内容包括两个点云和一个多视点视频。
为了提高压缩效率,本申请实施例在获得多个视觉媒体内容后,对这多个视觉媒体内容进行处理,例如打包(也称为拼接)处理,得到多个视觉媒体内容中每个视觉媒体内容对应的拼接图。
例如,多个视觉媒体内容中包括点云和多视点视频,对点云进行处理,得到点云拼接图,对多视点视频进行处理,得到多视点视频拼接图。
本申请实施例对多个视觉媒体内容分别进行处理,得到N个同构拼接图的方式不做限制。
本申请实施例所述的同构拼接图是指该拼接图中每个子块对应的表达格式均相同,例如一张同构拼接图中的各子块均为多视点视频子块,或者均为点云子块等同一表达格式的子块。
在一种可能的实现方式中,若多个拼接图包括多视点视频拼接图和点云拼接图,上述S601包括如下步骤:
S601-A、对获取的多视点视频进行投影和去冗余处理后,将不重复像素点连通成视频子块,且将视频子块拼接成多视点视频拼接图。
具体的,对于多视点视频,以MPEG-I为例,选择有限数量视点作为基础视点且尽可能表达场景的可视范围,基础视点作为完整图像传输,去除剩余非基础视点与基础视点之间的冗余像素,即仅保留非重复表达的有效信息,再将有效信息提取为子块图像与基础视点图像进行重组织,形成更大的矩形图像,该矩形图像称为多视点视频拼接图。
S601-B、对获取的点云进行平行投影,将投影面中的连通点组成点云子块,且将点云子块拼接成点云拼接图。
具体的,对于点云,将三维点云进行平行投影,得到二维点云,在投影面中,将二维点云中连通点组成点云子块,在将这些点云子块进行拼接,得到点云拼接图。
根据上述方法,得到N个同构拼接图后,执行如下S602和S603。
S602、将N个同构拼接图进行拼接,生成异构混合拼接图。
S603、对异构混合拼接图进行编码,得到码流。
如图7所示,本申请实施例中,为了减少编码器的个数,降低编码代价,在编码时,首先将多个视觉媒体内容分别进行处理(即打包),得到N个同构拼接图。接着,将表达格式不完全相同的N个同构拼接图拼接成一张异构混合拼接图,对该异构混合拼接图进行编码,得到码流。也就是说,本申请实施例通过将不同表达格式的同构拼接图拼接在一张异构混合拼接图中进行编码,在编码时,可以只调用一次视频编码器进行编码,进而减少了所需要调用的HEVC,VVC,AVC,AVS等二维视频编码器的个数,减少了编码代价,提高易用性。
为了与帧打包区分,本申请实施例中将N个同构拼接图拼接为异构混合拼接图的过程称为区域打包。
在一些实施例中,上述S603包括,采用视频编码器对异构混合拼接图进行编码,得到视频码流。
本申请实施例,将N个同构拼接图拼接拼接为异构混合拼接图时,生成混合拼接信息。这些混合编码信息在解码时需要,因此,需要将这些混编码信息进行编码。
在一些实施例中,本申请实施例中,还包括对混合拼接信息进行编码的步骤,即上述S603包括如下步骤:
S603-A、调用视频编码器,对异构混合拼接图进行视频编码,得到视频压缩子码流;
S603-B、对异构混合拼接图的混合拼接信息进行编码,得到混合拼接信息子码流;
S603-C、将视频压缩子码流和混合拼接信息子码流写入码流。
本申请实施例中,对异构混合拼接图进行视频编码,得到视频压缩子码流所使用的视频编码器,可以为上述图2A所示的视频编码器。也就是说,本申请实施例将异构混合拼接图作为一帧图像,首先进行块划分,接着使用帧内或帧间预测得到编码块的预测值,编码块的预测值和原始值进行相减,得到残差值,对残差值进行变换和量化处理后,得到视频压缩子码流。
同时,对异构混合拼接图的混合拼接信息进行编码,得到混合拼接信息子码流。本申请实施例对混合拼接信息进行编码的方式不做限制,例如使用等长编码或变长编码等常规数据压缩编码方式进行压缩。
最后,视频压缩子码流和混合拼接信息子码流写在同一个码流中,得到最终的码流。
也就是说,本申请实施例不仅实现在同一压缩码流中支持视频、点云、网格等异构信源格式,而且实现多视点视频拼接图和点云(或网络)拼接图等不同表达格式的拼接图同时存在于一张异构混合拼接图中,这样尽量减少了所需要调用的视频编码器的个数,减少了实现代价,提高易用性。
本申请实施例的异构混合拼接图包括多属性异构混合拼接图和单属性异构混合拼接图。
其中,多属性异构混合拼接图是指所包括的同构拼接图中至少两个同构拼接图的属性信息不同的异构混合拼接图,例如一张多属性异构混合拼接图中即包括属性信息的同构拼接图,又包括几何信息的同构拼接图。例如,一张多属性异构混合拼接图包括多视点视频纹理拼接图和点云几何拼接图,或者一张多属性异构混合拼接图中包括多视点视频纹理拼接图、点云几何拼接图、多视点视频几何拼接图,或者,一张多属性异构混合拼接图中包括多视点视频几何拼接图、点云几何纹理拼接图、点云纹理拼接图,等等。
其中,单属性异构混合拼接图是指包括的所有同构拼接图的属性信息均相同的异构混合拼接图。例如,一张单属性异构混合拼接图只包括属性信息的同构拼接图,或者一张单属性异构混合拼接图只包括几何信息的同构拼接图。例如,一张单属性异构混合拼接图只包括多视点视频纹理拼接图和点云纹理拼接图,或者一张单属性异构混合拼接图只包括多视点视频几何拼接图和点云几何拼接图。
本申请实施例对N个同构拼接图的表达格式不做限制。
在一些实施例中,N个同构拼接图包括多视点视频拼接图、点云拼接图和网格拼接图中的至少两个。
本申请实施例的点云、多视点视频和网格包括多个属性,例如包括几何属性和纹理属性,本申请实施例,将点云、多视点视频和网格中至少两个的任意一个属性或任意两个属性下的拼接图拼接在一张图中,得到异构混合拼接图。
即上述S602中,将N个同构拼接图进行拼接,生成异构混合拼接图,包括:
S602-A、对至少第一表达格式的单一属性拼接图和第二表达格式的单一属性拼接图进行拼接,得到异构混合拼接图。
其中,第一表达格式和第二表达格式均为多视点视频、点云和网络中的任意一个,且第一表达格式和所述第二表达格式不同。
多视点视频的单一属性拼接图包括多视点视频纹理拼接图和多视点视频几何拼接图等中的至少一个。
点云的单一属性拼接图包括点云纹理拼接图、点云几何拼接图和点云占用情况拼接图等中的至少一个。
网格的点云属性拼接图包括网格纹理拼接图、网格几何拼接图和网格占用情况拼接图等中的至少一个。
例如,将多视点视频几何拼接图、点云几何拼接图、网格几何拼接图中的至少两个拼接在一张图中,得到一张异构混合拼接图。该异构混合拼接图称为单属性异构混合拼接图。
再例如,将多视点视频纹理拼接图、点云纹理拼接图、网格纹理拼接图中的至少两个拼接在一张图中,得到一张异构混合拼接图。该异构混合拼接图称为单属性异构混合拼接图。
再例如,将多视点视频纹理拼接图,与点云几何拼接图和网格几何拼接图中的至少一个拼接在一张图中,得到一张异构混合拼接图。该异构混合拼接图称为多属性异构混合拼接图。
再例如,将多视点视频几何拼接图,与点云纹理拼接图、网格纹理拼接图中的至少一个拼接在一张图中,得到一张异构混合拼接图。该异构混合拼接图称为多属性异构混合拼接图。
再例如,将点云纹理拼接图,与多视点视频几何拼接图和网格几何拼接图中的至少一个拼接在一张图中,得到一张异构混合拼接图。该异构混合拼接图称为多属性异构混合拼接图。
再例如,将点云几何拼接图,与多视点视频纹理拼接图、网格纹理拼接图中的至少一个拼接在一张图中,得到一张异构混合拼接图。该异构混合拼接图称为多属性异构混合拼接图。
下面以第一表达格式为多视点视频,第二表达格式为点云为例,对上述S602-A进行介绍。
假设多视点视频的单一属性拼接图包括多视点视频纹理拼接图和多视点视频几何拼接图。
假设,点云的单一属性拼接图包括点云纹理拼接图、点云几何拼接图、点云占用情况拼接图。
本申请实施例中,上述S602-A的混合拼接方式包括但不限于如下几种:
方式一,将多视点视频纹理拼接图、多视点视频几何拼接图、点云纹理拼接图、点云几何拼接图和点云占用情况拼接图,均拼接在一张异构混合拼接图中。
方式二、按照预设的混合拼接方式,将多视点视频纹理拼接图、多视点视频几何拼接图、点云纹理拼接图、点云几何拼接图和点云占用情况拼接图进行拼接,得到M个异构混合拼接图。
本申请实施例中,将上述多视点视频拼接图包括多视点视频纹理拼接图和多视点视频几何拼接图,点云拼接图包括点云纹理拼接图、点云几何拼接图和点云占用情况拼接图进行混合拼接,得到M个异构混合拼接图至少包括如下几种示例:
示例1,将多视点视频纹理拼接图和点云纹理拼接图进行拼接,得到异构混合纹理拼接图,将多视点视频几何拼接图、点云几何拼接图和点云占用情况拼接图进行拼接,得到异构混合几何和占用情况拼接图。
举例说明,假设多个视觉媒体内容包括多视点视频、点云1和点云2,对多视点视频进行处理,得到多视点视频的拼接图,其中多视点视频的拼接图包括多视点视频纹理拼接图和多视点视频几何拼接图。对点云1进行处理,得到点云纹理拼接图1、点云几何拼接图1,点云1占用情况拼接图。对点云2进行处理,得到点云纹理拼接图2A、点云几何拼接图2A,点云2占用情况拼接图。可选的,可以将点云1占用情况拼接图和点云2占用情况拼接图合并为一个点云占用情况拼接图。
接着,将多视点视频纹理拼接图、点云纹理拼接图1和点云纹理拼接图2A进行混合拼接,得到异构混合纹理拼接图,如图8A所示。
将多视点视频几何拼接图、点云几何拼接图1、点云几何拼接图2A和点云占用情况拼接图进行拼接,得到异构混合几何和占用情况拼接图,例如图8B所示。
示例2,将多视点视频纹理拼接图和点云纹理拼接图进行拼接,得到异构混合纹理拼接图,将多视点视频几何拼接图和点云几何拼接图,得到异构混合几何拼接图,将点云占用情况拼接图单独作为一张混合拼接图。
示例3,将多视点视频纹理拼接图和点云纹理拼接图和点云占用情况拼接图进行拼接,得到一张子异构混合拼接图,将将多视点视频几何拼接图和点云几何拼接图进行拼接,得到另一张子异构混合拼接图。
示例4,将多视点视频纹理拼接图、点云纹理拼接图、多视点视频几何拼接图、点云几何拼接图和点云占用情况拼接图拼接在一张异构混合拼接图中。
需要说明的是,上述示例1至示例4只是一部分混合拼接方式,本申请实施例的混合拼接方式包括但不限于上述示例1至示例4。
在上述方式二中,根据上述方法,将按照预设的混合拼接方式,将多视点视频纹理拼接图、多视点视频几何拼接图、点云纹理拼接图、点云几何拼接图和点云占用情况拼接图进行拼接,得到M个异构混合拼接图后,对M个异构混合拼接图分别进行视频编码,得到视频压缩子码流。
例如,使用视频编码器对M子异构混合拼接图分别进行编码,得到视频压缩子码流。可选的,可以将M子异构混合拼接图中每一张异构混合拼接图作为一帧图像进行视频编码,得到视频压缩子码流。例如,使用视频编码器,对图8A所示的异构混合纹理拼接图和图8B所示异构混合几何和占用情况拼接图分别进行编码,得到视频压缩子码流。
本申请实施例中,在生成M个异构混合拼接图的同时,生成M个异构混合拼接图中每个异构混合拼接图对应的混合拼接信息。对M个异构混合拼接图的混合拼接信息进行编码,得到M个异构混合拼接图的混合拼接信息子码流。
例如,将M个异构混合拼接图中每个异构混合拼接图对应的混合拼接信息进行组合,形成一个完整的混合拼接信息,接着,对该完整的混合拼接信息进行编码,得到混合拼接信息子码流。
举例说明,如图9所示,以多视点视频和点云为例,对多视点视频进行处理,例如通过TMIV打包技术,得到多视点视频纹理拼接图和多视点视频几何拼接图。对点云进行处理,例如通过TMC2打包技术,得到点云纹理拼接图、点云几何拼接图和点云占用情况拼接图。接着,使用预设的混合拼接方式,将多视点视频纹理拼接图、多视点视频几何拼接图、点云纹理拼接图、点云几何拼接图和点云占用情况拼接图进行拼接,得到M个子异构混合拼接图。例如,使用区域打包技术,将多视点视频纹理拼接图和点云纹理拼接图进行拼接,得到异构混合纹理拼接图;将多视点视频几何拼接图、点云几何拼接图和点云占用情况拼接图进行拼接,得到异构混合几何和占用情况拼接图。然后,使用视频编码器,对异构混合纹理拼接图和异构混合几何和占用情况拼接图进行编码,得到视频压缩子码流,对混合拼接信息进行编码,得到混合拼接信息子码流。最后,将视频压缩子码流和混合拼接信息子码流写入同一个压缩码流中。
由于原来V3C标准中的framepacking仅支持将同构的纹理、几何、占用情况拼接图拼成一个混合的拼接图,也就是说仅支持将多视点视频拼接图打包成多视点混合拼接图,或者将点云拼接图打包成点云混合拼接图,因此原来V3C定义的packinformation(拼接信息)只包括判断拼接图(packed video)的每个区域属于纹理、几何或占用情况的标志位,而没有判断当前区域属于点云还是多视点视频的标志。因此,要想让V3C支持将多视点视频拼接图和点云拼接图打包成同一个异构混合拼接图,则需要在packinformation中增加新的语法元素,比如增加表示每个region是点云还是多视点图像的语法元素。
方案1,本申请实施例的混合拼接信息包括第一标志,该一标志用于指示异构混合拼接图中的第i个区域对应的表达格式类型,其中i为正整数。
可选的,可以使用pin_region_format_type_id表示第一标志。
本申请实施例中,通过对第一标志置不同的值来指示异构混合拼接图中的第i个区域对应的表达格式类型。
以N个同构拼接图包括多视点视频拼接图和点云拼接图为例,则本申请实施例还包括:若第i个区域的拼接图为多视点视频拼接图,则将第一标志的值置为第一数值。若第i个区域的拼接图为点云拼接图,则将第一标志的值置为第二数值。
本申请实施例对第一数值和第二数值的具体取值不做限制。
可选的,第一数值为0
可选的,第二数值为1
示例性的,第一标志的取值与表达格式类型之间的对应关系如表4所示:
表4
第一标志的取值 表达格式类型
0 多视点视频
1 点云
…… ……
即本申请实施例中,由于异构混合拼接图包括至少两个表达格式不同的拼接图,因此,在异构混合拼接图进行编码时,为了提高解码端的解码准确性,则在混合拼接信息中添加第一标志,通过该第一标志来指示异构混合拼接图中每个区域对应的表达格式类型。
在一些实施例中,该方案1的语法结构如图10所示,其中A:属性拼接图,G:几何拼接图,O:占用情况拼接图,P:点云,M:多视点视频。
在一种示例中,添加第一标志后的混合拼接信息如表5所示,需要说明的是,在该示例中,混合拼接信息复用表3所示的拼接信息,并在表3所示的拼接信息中添加第一标志,具体如表5所示。
表5
其中,pin_region_format_type_id[j][i]指示了ID为j的图集的索引为i的区域的表达格式类型。pin_region_format_type_id[j][i]等于0,则表示当前区域的表达格式为多视点视频;pin_region_format_type_id[j][i]等于1,则表示当前区域的表达格式为点云。
在该方案1中,在packing information中根据pin_region_format_type_id[j][i]来区分异构混合拼接图的某个region是多视点视频拼接图还是点云拼接图。
为了进一步说明本申请实施例的方法,下面以N个视觉媒体内容为多视点视频和点云为例,结合上述方案1,对本申请实施例的编码方法进行介绍,如图11所示,本申请实施例的编码方法包括如下步骤:
步骤11,对多视点视频通过视点间投影,擦除重复去冗余,将不重复像素连通成子块、子块拼接为多视点视频拼接图;点云通过平行投影,将投影面中的连通像素形成子块,子块拼接成点云点云拼接图。
步骤12,将多视点视频拼接图和点云拼接图进行拼接,生成异构混合拼接图。
进一步的,如果加入异构混合拼接图的当前区域的是多视点视频拼接图,则在混合拼接信息中将pin_region_format_type_id[j][i]置为0。
如果加入异构混合拼接图的当前区域的是点云拼接图,则在混合拼接信息中将pin_region_format_type_id[j][i]置为1。
步骤13,对异构混合拼接图进行视频编码,获得视频压缩子码流。
步骤14,多视点视频拼接图和点云拼接图拼接成异构混合拼接图的混合拼接信息编码形成混合拼接信息子码流;
步骤15,视频压缩码流和混合拼接信息码流写入压缩码流。
在该方案1中,编码端通过在混合拼接信息中的添加第一标志(pin_region_format_type_id),用于指示异构混合拼接图中的第i个区域的拼接图的表达格式类型。这样,解码端在解码时,可以根据混合拼接信息中的第一标志准确确定出异构混合拼接图中的当前区域的拼接图的表达格式类型,例如若第一标志的取值为第一数值时,则解码端确定异构混合拼接图中的当前区域的拼接图为多视点视频拼接图,若第一标志的取值为第二数值时,则解码端确定异构混合拼接图中的当前区域的拼接图为点云拼接图,进而使得解码端根据该第一标志实现准确解码。
方案2,在一些实施例中,此方案通过定义一种全新的v3c unit type使解码器在v3c unit header级别就可以根据v3c unit type来判断当前拼接图是否为异构混合拼接图。若v3c unit type=V3C_MVD,则表明当前当前拼接图是异构混合拼接图,后续再通过类似方案1中的设计的标志,区分异构混合拼接图每个区域的格式。相比方案1,方案2在V3C语法的更高层就标识了当前拼接图是否为异构混合拼接图,这对系统设计可能更为有利。
也就是说,本申请实施例的混合拼接信息包括第二标志,该第二标志用于指示当前混合拼接图是否为异构混合拼接图。
可选的,第二标志为全新标志。
可选的,第二标志可以复用已有的vuh_unit_type,也就是说,本申请实施例通过为vuh_unit_type赋不同的值,来指示当前混合拼接图是否为异构混合拼接图。
在一些实施例中,若当前混合拼接图为异构混合拼接图,则将第二标志置为预设值,例如令v3c unit type=V3C_MVD。
在一些实施例中,若确定第二标志的值为预设值,则在混合拼接信息中写入第一标志。也就是说,在确定当前混合拼接图为异构混合拼接图时,在混合拼接信息中写入第一标志,用于指示该异构混合拼接图的当前区域的拼接图为多视点视频拼接图或点云拼接图等不同表达格式的拼接图。
例如,若第i个区域的拼接图为多视点视频拼接图,则将第一标志的值置为第一数值;
再例如,若第i个区域的拼接图为点云拼接图,则将第一标志的值置为第二数值。
这样解码端在解码时,首先解码得到第二标志,若第二标志的取值为预设值时,才继续解码,得到第一标志,以将异构混合拼接图中的当前解码区域的拼接图解码为多视点视频拼接图或点云拼接图等不同表达格式的拼接图,实现准确解码。
在一些实施例中,若确定第二标志的值不为预设值,则跳过在混合拼接信息中写入第一标志。也就是说,若当前混合拼接图不是本申请实施例所述的异构混合拼接图时,则编码端将第二标志的值置为非预设值。以第二标志为vuh_unit_type为例,若当前混合拼接图不是异构混合拼接图时,则可以根据实际情况,确定第二标志的值,例如若当前混合拼接图为属性视频数据,则令vuh_unit_type==V3C_AVD,若当前混合拼接图为几何视频数据,则令vuh_unit_type==V3C_GVD等。
本申请实施例对第二标志在混合拼接信息中的具体写入位置不做限制。
在一种可能的实现方式中,第二标志位于混合拼接信息的单元头中。
在一些实施例中,方案2的语法元素如图12所示。
示例性的,本申请实施例将第二标志添加在上述表1所示的V3C单元头语法中,得到新的V3C单元头语法如表6所示:
表6 V3C单元头语法
上述表6所示的V3C单元标头的语义如表7所示,其中表7相比于上述表2,增加了V3C_MVD的语义。
表7:V3C单元类型
表8 V3C单元有效负载语法
表9 V3C通用参数集语法
对V3C通用参数集语法中的下方语句修改:
vps_extension_present_flag equal to 1specifies that the syntax elements vps_packing_information_present_flag,vps_miv_extension_present_flag,and vps_extension_6bits are present in the v3c_parameter_set()syntax structure.vps_extension_present_flag equal to 0specifies that these syntax elements are not present.
vps_extension_present_flag等于1指定语法元素vps_packing_information_present_flag、vps_miv_extension_present_flag和vps_extension_6bits存在于v3c_parameter_set()语法结构中。vps_extension_present_flag等于0表示这些语法元素不存在。
修改为:
vps_extension_present_flag equal to 1specifies that the syntax elements vps_packing_information_present_flag,vps_mixed_information_present_flag,vps_miv_extension_present_flag,and vps_extension_6bits are present in the v3c_parameter_set()syntax structure.vps_extension_present_flag equal to 0specifies that these syntax elements are not present.
vps_extension_present_flag等于1指定语法元素vps_packing_information_present_flag,vps_mixed_information_present_flag,vps_miv_extension_present_flag和vps_extension_6bits存在于v3c_parameter_set()语法结构中。vps_extension_present_flag等于0表示这些语法元素不存在。
并新增如下语句:
vps_mixed_information_present_flag equal to 1specifies that one or more instances of the mixed_information(j)syntax structure are present in the v3c_parameter_set()syntax structure.vps_mixed_information_present_flag equal to 0specifies that this syntax structure is not present.When not present,the value of vps_mixed_information_present_flag is inferred to be equal to 0.
vps_mixed_information_present_flag等于1指定在v3c_parameter_set()语法结构中存在一个或多个混合信息(j)语法结构实例。vps_mixed_information_present_flag等于0表示该语法结构不存在。当不存在时,vps_mixed_information_present_flag的值被推断为等于0。
相应的,本申请实施例给出了混合信息(Mixed_information)的语法结构,如表10所示,表10相对于上述表3所示的拼接信息,对混合信息进行重新定义,在表10中,使用min_region_format_type_id表示第一标志。
表10:混合信息语法
表10所示的混合信息的语义如下所示:
混合后的视频帧可以划分为一个或多个矩形区域。一个区域应精确映射到一个地图集图块。混合视频帧的矩形区域不允许重叠。
min_codec_id[j]表示用于对ID为j的图集压缩混合视频数据的编解码器的标识符。min_codec_id应在0到255的范围内,包括0到255。该编解码器可以通过组件编解码器映射SEI消息或通过本文档之外的方式来识别。
min_occupancy_present_flag[j]等于0表示ID为j的图集的混合视频帧不包含具有占用数据的区域。 min_occupancy_present_flag[j]等于1表示ID为j的图集的混合视频帧确实包含具有占用数据的区域。当min_occupancy_present_flag[j]不存在时,推断为等于0。
比特流一致性的要求是,如果min_occupancy_present_flag[j]对于atlas ID j的atlas等于1,vps_occupancy_video_present_flag[j]对于atlas ID j相同的atlas应等于0。
min_geometry_present_flag[j]等于0表示ID为j的图集的混合视频帧不包含具有几何数据的区域。min_geometry_present_flag[j]等于1表示ID为j的图集的混合视频帧确实包含具有几何数据的区域。当min_geometry_present_flag[j]不存在时,推断为等于0。
比特流一致性的要求是,如果min_geometry_present_flag[j]对于ID为j的图集等于1,则vps_geometry_video_present_flag[j]对于ID为j的图集应等于0。
min_attributes_present_flag[j]等于0表示ID为j的图集的混合视频帧不包含具有属性数据的区域。min_attributes_present_flag[j]等于1表示ID为j的图集的混合视频帧确实包含具有属性数据的区域。当min_attributes_present_flag[j]不存在时,推断为等于0。
比特流一致性的要求是,如果min_attribute_present_flag[j]对于ID为j的图集等于1,vps_attribute_video_present_flag[j]对于ID为j的图集应等于0。
min_occupancy_2d_bit_depth_minus1[j]加1表示标称2D位深度,包含占用数据的ID为j的图集的解码区域应转换到该标称2D位深度。min_occupancy_MSB_align_flag[j]应在0到31的范围内,包括0和31。
min_occupancy_MSB_align_flag[j]指示ID为j的图集的包含占用样本的解码区域如何转换为标称占用比特深度的样本,如附件B中所指定。
min_lossy_occupancy_compression_threshold[j]指示用于从包含ID为j的图集的占用数据的解码区域导出二进制占用的阈值。min_lossy_occupancy_compression_threshold[j]应在0到255的范围内,包括0和255。
min_geometry_2d_bit_depth_minus1[j]加1表示标称2D位深度,ID为j的图集的包含几何数据的解码区域应转换到的标称2D位深度。min_geometry_2d_bit_depth_minus1[j]应在0到31的范围内,包括0和31。
min_geometry_MSB_align_flag[j]指示如何将ID为j的图集的包含几何样本的解码区域转换为标称占用位深度的样本,如附件B中所述。
min_geometry_3d_coordinates_bit_depth_minus1[j]加1表示ID为j的图集的重建立体内容的几何坐标的位深度。min_geometry_3d_coordinates_bit_depth_minus1[j]应在0到31的范围内,包括0和31。
min_attribute_count[j]表示ID为j的图集的混合视频帧中存在的具有唯一属性类型的属性的数量。
min_attribute_type_id[j][i]表示为ID为j的图集的混合视频帧的属性区域的第i个属性类型。表3描述了支持的属性类型列表。
min_attribute_2d_bit_depth_minus1[j][k]加1表示对于ID为j的图集,包含属性索引为k的属性的区域应转换到的标称2D位深度。min_attribute_2d_bit_depth_minus1[j][k]应在0到31的范围内,包括0和31。
min_attribute_MSB_align_flag[j][k]指示如何将包含属性类型为k的属性的解码区域(对于ID为j的图集)转换为标称属性位深度的样本,如附件B中所述。
min_attribute_map_absolute_coding_persistence_flag[j][k]等于1表示解码区域包含索引为k的属性的属性图,对应于ID为j的图集,在没有任何形式的地图预测的情况下进行编码。min_attribute_map_absolute_coding_persistence_flag[j][i]等于0表示解码区域包含索引为k的属性的属性图,对应于ID为j的图集,应使用与用于ID为j的图集的几何分量相同的地图预测方法。如果min_attribute_map_absolute_coding_persistence_flag[j][i]不存在,则应推断其值等于1。
3D数组AttributeMapAbsoluteCodingEnabledFlag指示是否要对属性的特定映射进行编码,有或没有预测,获得如下:
min_attribute_dimension_minus1[j][k]加1表示ID为j的图集的包含索引为k的属性的区域的总维数(即通道数)。min_attribute_dimension_minus1[j][i]应在0到63的范围内,包括0和63。
min_attribute_dimension_partitions_minus1[j][k]加1表示对于ID为j的图集,包含索引为k的属性的区域的属性通道应分组的分区组数。min_attribute_dimension_partitions_minus1[j][k]应在0到63的范围内,包括0到63。
min_attribute_partition_channels_minus1[j][k][l]加1表示对于ID为j的图集的包含索引为k的属性的区域,分配给索引为l的维度分区组的通道数。对于所有维度分区组,ai_attribute_partition_channels_minus1[j][k][l]应在0到ai_attribute_dimension_minus1[j][k]的范围内。
min_regions_count_minus1[j]加1表示ID为j的图集混合在一个视频帧中的区域数。min_regions_count_minus1应在0到7的范围内,包括0到7。当不存在时,min_regions_count_minus1的值被推断为等于0。
min_region_tile_id[j][i]表示ID为j的图集的索引为i的区域的图块ID。
min_region_format_type_id[j][i]表示ID为j的图集索引为i的区域的格式类型。min_region_format_type_id[j][i]等于0,表示区域格式为多视角视频;等于1,区域格式为点云。
min_region_type_id_minus2[j][i]加2表示对于ID为j的图集,索引为i的区域的ID。min_region_type_id_minus2[j][i]的值应在0到2的范围内,包括0到2。
min_region_top_left_x[j][i]以混合视频分量帧中的亮度样本为单位,为ID为j的图集的索引为i的区域指定左上样本的水平位置。当不存在时,min_region_top_left_x[j][i]的值被推断为等于0。
min_region_top_left_y[j][i]以混合视频分量帧中的亮度样本为单位,为ID为j的图集的索引为i的区域指定左上样本的垂直位置。当不存在时,min_region_top_left_y[j][i]的值被推断为等于0。
min_region_width_minus1[j][i]plus 1为ID为j的图集的索引为i的区域指定宽度,以亮度样本为单位。
min_region_height_minus1[j][i]加1指定ID为j的图集的索引为i的区域指定高度,以亮度样本为单位。
min_region_unpack_top_left_x[j][i]以解压缩视频分量帧中的亮度样本为单位,为ID j的图集的索引为i的区域指定左上样本的水平位置。当不存在时,min_region_unpack_top_left_x[j][i]的值被推断为等于0。
min_region_unpack_top_left_y[j][i]以解压缩视频分量帧中的亮度样本为单位,为ID j的图集的索引为i的区域指定左上样本的垂直位置。当不存在时,min_region_unpack_top_left_y[j][i]的值被推断为等于0。
min_region_rotation_flag[j][i]等于0表示不对ID为j的图集的索引为i的区域执行旋转。min_region_rotation_flag[j][i]等于1表示ID为j的图集的索引为i的区域旋转了90度。
min_region_map_index[j][i]指定ID为j的的图集索引为i的区域的地图索引。
min_region_auxiliary_data_flag[j][i]等于1表示ID为j的图集索引为i的区域仅包含RAW和/或EOM编码点。min_region_auxiliary_data_flag等于0表示ID为j的图集索引为i的区域可能包含RAW和/或EOM编码点。
min_region_attr_type_id[j][i]表示ID为j的图集索引为i的区域的属性类型。表3描述了支持的属性列表。
min_region_attr_partition_index[j][i]表示ID为j的图集索引为i的区域的属性分区索引。当不存在时,min_region_attr_partition_index[j][i]的值被推断为等于0。
混合视频解码过程:
ID为DecAtlasID的图集的混合视频分量的解码过程如下。
对于混合视频分量,首先使用附件A中定义的配置文件或mix_codec_id[DecAtlasID]的值和子条款F.2.11中指定的分量编解码器映射SEI消息(如果存在)来确定编解码器。然后,根据相应的编码规范,使用存在于V3C比特流中的混合视频子比特流作为输入来调用混合视频解码过程。
这个过程的输出是:
– NumDecMixFrames,指示解码混合视频帧的数量
– a 4D array DecMixFrames,解码后的混合视频帧,其中维度分别对应于解码后的混合视频帧索引、分量索引、行索引和列索引,以及
– 以下的一维数组:
– DecMixBitDepth,指示混合视频的位宽,
– DecMixHeight,指示混合视频的高度,
– DecMixWidth,指示混合视频的宽度,
– DecMixChromaFormat,指示属性色度格式,
– DecMixChromaSamplingPosition,如果存在,指示ISO/IEC 23091-2中规定的视频色度采样位置,
– DecMixFullRange,如果存在,指示ISO/IEC 23091-2中规定的视频全范围代码点,
– DecMixColourPrimaries,如果存在,指示ISO/IEC 23091-2中规定的源原色的色度坐标,
– DecMixTransferCharacteristics,如果存在,指示ISO/IEC 23091-2中规定的传输特性,
– DecMixMatrixCoeffs,如果存在,指示ISO/IEC 23091-2中规定的矩阵系数,
– DecMixOutOrdIdx,指示混合视频输出顺序索引,以及
– DecMixCompTime,指示混合视频合成时间。
其中维度对应于解码的混合视频帧索引。
如果数组DecMixFullRange缺失,则其所有元素都应设置为1。
如果数组DecMixTransferCharacteristics的任何元素缺失或设置为值2,即未指定,则这些元素应设置为8,即线性。
如果数组DecMixChromaSamplingPosition缺失,则其所有元素都应设置为0。
如果数组DecMixColourPrimaries缺失,则其所有元素都应设置为2。
如果数组DecMixMatrixCoeffs缺失,则其所有元素都应设置为2。
数组DecMixChromaSamplingPosition、DecMixColourPrimaries、DecMixMatrixCoeffs、DecMixFullRange和DecMixTransferCharacteristics的值不应用于min_region_type_id_minus2等于V3C_OVD、V3C_GVD和V3C_AVD的min_region_attr_type_id等于ATTR_MATERIAL_ID的解码混合帧区域的任何进一步处理,或ATTR_NORMAL。
这些值应根据ISO/IEC 23091-2中相应的编码点进行解释。
需要注意的是,任何现有的视频编码规范,如ISO/IEC 14496-10或ISO/IEC 23008-2或任何未来定义的视频编码规范,如果包含在min_mixed_codec_id中,都可以使用。
在该方案2中,在v3c unit header级别就可以根据v3c unit type来判断当前拼接图是否为异构混合拼接图若v3c unit type=V3C_MVD,则表明当前当前拼接图是异构混合拼接图,后续再通过mixed information中的min_region_format_type_id[j][i]来区分异构混合拼接图的某个region是多视点视频拼接图还是点云拼接图。
为了进一步说明本申请实施例的方法,下面以N个视觉媒体内容为多视点视频和点云为例,结合上述方案2,对本申请实施例的编码方法进行介绍,如图13所示,本申请实施例的编码方法包括如下步骤:
步骤21,多视点视频通过视点间投影、擦除重复去冗余、不重复像素连通成子块、子块拼接为多视点视频拼接图,点云通过平行投影、投影面中的连通像素形成子块,子块拼接成点云点云拼接图。
步骤22,将多视点视频拼接图和点云拼接图进行拼接,生成异构混合拼接图,同时,令其v3c unit type=V3C_MVD。
进一步的,如果加入异构混合拼接图的当前区域的是多视点视频拼接图,则在混合拼接信息中将min_region_format_type_id[j][i]置为0。
如果加入异构混合拼接图的当前区域的是点云拼接图,则在混合拼接信息中将min_region_format_type_id[j][i]置为1。
步骤23,对异构混合拼接图进行视频编码,获得视频压缩子码流;
步骤24,将多视点视频拼接图和点云拼接图拼接成异构混合拼接图的混合拼接信息编码形成混合拼接信息子码流;
步骤25,将视频压缩码流和混合拼接信息码流写入压缩码流。
在该方案2中,通过设置更高一级的第二标志,用于指示当前混合拼接图是否为本申请实施例提出的异构混合拼接图,在确定当前混合拼接图为异构混合拼接图后,在混合拼接信息中写入第一标志,通过第一标志用于指示异构混合拼接图中的当前区域的拼接图的表达格式类型。这样,解码端在解码时,首先对第二标志进行解码,若第二标志指示当前混合拼接图为异构混合拼接图时,解码端再对第一标志进行解码,以确定异构混合拼接图的当前区域的拼接图的表达格式类型,进而实现准确解码。
方案3,此方案通过在原有四种v3c unit type(V3C_AVD,V3C_GVD,V3C_OVD,V3C_PVD)的基础上,示例 性的定义四种全新的v3c unit type(V3C_MAVD,V3C_MGVD,V3C_MOVD,V3C_MPVD),使解码器在v3c unit header级别就可以根据v3c unit type来判断当前拼接图是否为异构混合拼接图。若v3c unit type为上述四种新定义的v3c unit type中的一种,则表明当前当前拼接图是异构混合拼接图,后续再通过类似方案1中的设计的标志,区分异构混合拼接图每个区域的格式。
本申请实施例中,在混合拼接信息中写入第三标志,该第三标志用于指示用于指示当前混合拼接图是否为异构混合拼接图,以及属于哪一种异构混合拼接图。
示例性的,异构混合拼接图包括如下几种类型:异构混合占用情况拼接图、异构混合几何拼接图、异构混合属性拼接图、异构混合打包拼接图。
基于此,本申请实施例的方法还包括如下示例:
示例1,若编码端确定当前异构混合拼接图为异构混合占用情况拼接图,则令第三标志的取值为第一预设值,例如V3C_MAVD。
示例2,若编码端确定当前异构混合拼接图为异构混合几何拼接图,则令第三标志的取值为第二预设值,例如V3C_MGVD。
示例3,若编码端确定当前异构混合拼接图为异构混合属性拼接图,则令第三标志的取值为第三预设值,例如V3C_MGVD。
示例4,若编码端确定当前异构混合拼接图为异构混合打包拼接图,则令第三标志的取值为第四预设值,例如异构混合打包拼接图。
也就是说,在该方案3中,本申请实施例在混合信息中增加如下语法元素中的至少一个:V3C_MAVD,V3C_MGVD,V3C_MOVD,V3C_MPVD。
其中,V3C_MAVD用于指示当前混合拼接图为异构混合占用情况拼接图。例如指示该当前混合拼接图只包括多视点视频的占用情况拼接图和点云的占用情况拼接图。
V3C_MGVD用于指示当前混合拼接图为异构混合几何拼接图。例如指示该当前混合拼接图只包括多视点视频的几何拼接图和点云的几何拼接图。
V3C_MOVD用于指示当前混合拼接图为异构混合属性拼接图。例如指示该当前混合拼接图只包括多视点视频的纹理拼接图和点云的纹理拼接图。
V3C_MPVD用于指示当前混合拼接图为异构混合打包拼接图。可选的,异构混合打包拼接图也可以称为全属性异构混合拼接图。
例如指示该当前混合拼接图包括多视点视频的占用情况拼接图和点云的占用情况拼接图、多视点视频的几何拼接图和点云的几何拼接图,以及多视点视频的纹理拼接图和点云的纹理拼接图。
本申请实施例对上述第三标志的具体表示方式不做限制。
在一种示例中,上述第三标志为全新的一种标志。
在另一种示例中,上述第三标志复用已有的vuh_unit_type。
下面以第三标志复用已有的vuh_unit_type为例进行说明。
可选的,上述第三标志可以位于混合拼接信息的单元头中。
在一些实施例中,方案3的语法元素如图14所示。
本申请实施例中,编码端在确定第三标志指示所述当前混合拼接图为异构混合拼接图时,则在所述混合拼接信息中写入第一标志。
在一些实施例中,若编码端确定第三标志指示所述当前混合拼接图不是异构混合拼接图时,则跳过在混合拼接信息中写入第一标志。
添加第三标志的V3C单元头语法,如表12所示:
表12 V3C单元头语法
上述表12所示的V3C单元标头的语义如表13所示,其中表13相比于上述表2,增加了V3C_MVD的语义。V3C单元头语义如表13所示:
表13 V3C单元类型
V3C单元有效负载语法如表14所示:
表14 V3C unit payload syntax
V3C通用参数集语法如表15所示
表15 General V3C parameter set syntax
对V3C通用参数集语义中的下方语句修改:
vps_extension_present_flag等于1指定语法元素vps_packing_information_present_flag、vps_miv_extension_present_flag和vps_extension_6bits存在于v3c_parameter_set()语法结构中。vps_extension_present_flag等于0表示这些语法元素不存在。
修改为:
vps_extension_present_flag等于1指定语法元素vps_packing_information_present_flag,vps_mixed_occuapancy_information_present_flag,vps_mixed_geometry_information_present_flag,vps_mixed_attribute_information_present_flag,vps_mixed_packing_information_present_flag,vps_miv_extension_present_flag和vps_extension_6bits存在于v3c_parameter_set()语法结构中。vps_extension_present_flag等于0表示这些语法元素不存在。
并新增如下语句:
vps_mixed_occuapancy_video_present_flag[j]等于0表示ID为j的图集的混合打包视频帧不包含具有占用数据的区域。vps_mixed_occuapancy_video_present_flag[j]等于1表示ID为j的图集的混合打包视频帧确实包含具有占用数据的区域。当vps_mixed_occuapancy_video_present_flag[j]不存在时,推断为等于0。
比特流一致性的要求是,如果vps_mixed_occuapancy_video_present_flag[j]对于atlas ID j的atlas等于1,vps_occupancy_video_present_flag[j]对于atlas ID j相同的atlas应等于0。
vps_mixed_occuapancy_information_present_flag等于1指定在v3c_parameter_set()语法结构中存在一个或多个混合信息(j)语法结构实例。vps_mixed_occupancy_information_present_flag等于0表示该语法结构不存在。当不存 在时,vps_mixed_occupancy_information_present_flag的值被推断为等于0。
vps_mixed_geometry_video_present_flag[j]等于0表示ID为j的图集的混合打包视频帧不包含具有几何数据的区域。vps_mixed_geometry_video_present_flag[j]等于1表示ID为j的图集的混合打包视频帧确实包含具有几何数据的区域。当vps_mixed_geometry_video_present_flag[j]不存在时,推断为等于0。
比特流一致性的要求是,如果vps_mixed_geometry_video_present_flag[j]对于ID为j的图集等于1,则vps_geometry_video_present_flag[j]对于ID为j的图集应等于0。
vps_mixed_geometry_information_present_flag等于1指定在v3c_parameter_set()语法结构中存在一个或多个混合信息(j)语法结构实例。vps_mixed_geometry_information_present_flag等于0表示该语法结构不存在。当不存在时,vps_mixed_geometry_information_present_flag的值被推断为等于0。
vps_mixed_attribute_video_present_flag[j]等于0表示ID为j的图集的混合打包视频帧不包含具有属性数据的区域。vps_mixed_attribute_video_present_flag[j]等于1表示ID为j的图集的混合打包视频帧确实包含具有属性数据的区域。当vps_mixed_attribute_video_present_flag[j]不存在时,推断为等于0。
比特流一致性的要求是,如果vps_mixed_attribute_video_present_flag[j]对于ID为j的图集等于1,vps_attribute_video_present_flag[j]对于ID为j的图集应等于0。
vps_mixed_attribute_information_present_flag等于1指定在v3c_parameter_set()语法结构中存在一个或多个混合信息(j)语法结构实例。vps_mixed_attribute_information_present_flag等于0表示该语法结构不存在。当不存在时,vps_mixed_attribute_information_present_flag的值被推断为等于0。
vps_mixed_packing_information_present_flag等于1指定在v3c_parameter_set()语法结构中存在一个或多个混合信息(j)语法结构实例。vps_mixed_packing_information_present_flag等于0表示该语法结构不存在。当不存在时,vps_mixed_packing_information_present_flag的值被推断为等于0。
混合占用信息语法如表16所示:
表16 Mixed occupancy information syntax
混合占用信息语义(Mixed attribute information semantics)如下所示:
混合后的占用情况视频帧可以划分为一个或多个矩形区域。一个区域应精确映射到一个地图集图块。混合占用情况视频帧的矩形区域不允许重叠。
moi_codec_id[j]表示用于对ID为j的图集压缩混合占用情况视频数据的编解码器的标识符。moi_codec_id应在0到255的范围内,包括0到255。该编解码器可以通过组件编解码器映射SEI消息或通过本文档之外的方式来识别。
moi_occupancy_2d_bit_depth_minus1[j]加1表示标称2D位深度,包含占用数据的ID为j的图集的解码区域应转换到该标称2D位深度。moi_occupancy_MSB_align_flag[j]应在0到31的范围内,包括0和31。
moi_occupancy_MSB_align_flag[j]指示ID为j的图集的包含占用样本的解码区域如何转换为标称占用比特深度的样本,如附件B中所指定。
moi_lossy_occupancy_compression_threshold[j]指示用于从包含ID为j的图集的占用数据的解码区域导出二进制占用的阈值。moi_lossy_occupancy_compression_threshold[j]应在0到255的范围内,包括0和255。
moi_regions_count_minus1[j]加1表示ID为j的图集混合在一个视频帧中的区域数。moi_regions_count_minus1应在0到7的范围内,包括0到7。当不存在时,moi_regions_count_minus1的值被推断为等于0。
moi_region_tile_id[j][i]表示ID为j的图集的索引为i的区域的图块ID。
moi_region_format_type_id[j][i]表示ID为j的图集索引为i的区域的格式类型。moi_region_format_type_id[j][i]等于0,表示区域格式为多视角视频;等于1,区域格式为点云。
moi_region_top_left_x[j][i]以混合占用情况视频分量帧中的亮度样本为单位,为ID为j的图集的索引为i的区域指定左上样本的水平位置。当不存在时,moi_region_top_left_x[j][i]的值被推断为等于0。
moi_region_top_left_y[j][i]以混合占用情况视频分量帧中的亮度样本为单位,为ID为j的图集的索引为i的区域指定左上样本的垂直位置。当不存在时,moi_region_top_left_y[j][i]的值被推断为等于0。
moi_region_width_minus1[j][i]plus 1为ID为j的图集的索引为i的区域指定宽度,以亮度样本为单位。
moi_region_height_minus1[j][i]加1指定ID为j的图集的索引为i的区域指定高度,以亮度样本为单位。
moi_region_unpack_top_left_x[j][i]以解压缩视频分量帧中的亮度样本为单位,为ID j的图集的索引为i的区域指定左上样本的水平位置。当不存在时,moi_region_unpack_top_left_x[j][i]的值被推断为等于0。
moi_region_unpack_top_left_y[j][i]以解压缩视频分量帧中的亮度样本为单位,为ID j的图集的索引为i的区域指定左上样本的垂直位置。当不存在时,moi_region_unpack_top_left_y[j][i]的值被推断为等于0。
moi_region_rotation_flag[j][i]等于0表示不对ID为j的图集的索引为i的区域执行旋转。moi_region_rotation_flag[j][i]等于1表示ID为j的图集的索引为i的区域旋转了90度。
混合几何信息语法(Mixed geometry information syntax)如表17所示:
表17 Mixed geometry information syntax
混合几何信息语义如下所示:
混合后的几何视频帧可以划分为一个或多个矩形区域。一个区域应精确映射到一个地图集图块。混合几何视频帧的矩形区域不允许重叠。
mgi_codec_id[j]表示用于对ID为j的图集压缩混合几何视频数据的编解码器的标识符。mgi_codec_id应在0到255的范围内,包括0到255。该编解码器可以通过组件编解码器映射SEI消息或通过本文档之外的方式来识别。
mgi_geometry_2d_bit_depth_minus1[j]加1表示标称2D位深度,ID为j的图集的包含几何数据的解码区域应转换到的标称2D位深度。mgi_geometry_2d_bit_depth_minus1[j]应在0到31的范围内,包括0和31。
mgi_geometry_MSB_align_flag[j]指示如何将ID为j的图集的包含几何样本的解码区域转换为标称占用位深度的样本,如附件B中所述。
mgi_geometry_3d_coordinates_bit_depth_minus1[j]加1表示ID为j的图集的重建立体内容的几何坐标的位深度。mgi_geometry_3d_coordinates_bit_depth_minus1[j]应在0到31的范围内,包括0和31。
mgi_regions_count_minus1[j]加1表示ID为j的图集混合在一个视频帧中的区域数。mgi_regions_count_minus1应在0到7的范围内,包括0到7。当不存在时,mgi_regions_count_minus1的值被推断为等于0。
mgi_region_tile_id[j][i]表示ID为j的图集的索引为i的区域的图块ID。
mgi_region_format_type_id[j][i]表示ID为j的图集索引为i的区域的格式类型。mgi_region_format_type_id[j][i]等于0,表示区域格式为多视角视频;等于1,区域格式为点云。
mgi_region_top_left_x[j][i]以混合几何视频分量帧中的亮度样本为单位,为ID为j的图集的索引为i的区域指定左上样本的水平位置。当不存在时,mgi_region_top_left_x[j][i]的值被推断为等于0。
mgi_region_top_left_y[j][i]以混合几何视频分量帧中的亮度样本为单位,为ID为j的图集的索引为i的区域指定左上样本的垂直位置。当不存在时,mgi_region_top_left_y[j][i]的值被推断为等于0。
mgi_region_width_minus1[j][i]plus 1为ID为j的图集的索引为i的区域指定宽度,以亮度样本为单位。
mgi_region_height_minus1[j][i]加1指定ID为j的图集的索引为i的区域指定高度,以亮度样本为单位。
mgi_region_unpack_top_left_x[j][i]以解压缩视频分量帧中的亮度样本为单位,为ID j的图集的索引为i的区域指定左上样本的水平位置。当不存在时,mgi_region_unpack_top_left_x[j][i]的值被推断为等于0。
mgi_region_unpack_top_left_y[j][i]以解压缩视频分量帧中的亮度样本为单位,为ID j的图集的索引为i的区域指定左上样本的垂直位置。当不存在时,mgi_region_unpack_top_left_y[j][i]的值被推断为等于0。
mgi_region_rotation_flag[j][i]等于0表示不对ID为j的图集的索引为i的区域执行旋转。mgi_region_rotation_flag[j][i]等于1表示ID为j的图集的索引为i的区域旋转了90度。
mgi_region_map_index[j][i]指定ID为j的的图集索引为i的区域的地图索引。
mgi_region_auxiliary_data_flag[j][i]等于1表示ID为j的图集索引为i的区域仅包含RAW和/或EOM编码点。mgi_region_auxiliary_data_flag等于0表示ID为j的图集索引为i的区域可能包含RAW和/或EOM编码点。
混合属性信息语法(Mixed attribute information syntax)如表18所示:
表18 Mixed attribute information syntax
混合属性信息语义(Mixed attribute information semantics)
混合后的属性视频帧可以划分为一个或多个矩形区域。一个区域应精确映射到一个地图集图块。混合属性视频帧的矩形区域不允许重叠。
mai_codec_id[j]表示用于对ID为j的图集压缩混合属性视频数据的编解码器的标识符。mai_codec_id应在0到255的范围内,包括0到255。该编解码器可以通过组件编解码器映射SEI消息或通过本文档之外的方式来识别。
mai_attribute_count[j]表示ID为j的图集的混合属性视频帧中存在的具有唯一属性类型的属性的数量。
mai_attribute_type_id[j][i]表示为ID为j的图集的混合属性视频帧的属性区域的第i个属性类型。表3描述了支持的属性类型列表。
mai_attribute_2d_bit_depth_minus1[j][k]加1表示对于ID为j的图集,包含属性索引为k的属性的区域应转换到的标称2D位深度。mai_attribute_2d_bit_depth_minus1[j][k]应在0到31的范围内,包括0和31。
mai_attribute_MSB_align_flag[j][k]指示如何将包含属性类型为k的属性的解码区域(对于ID为j的图集)转换为标称属性位深度的样本,如附件B中所述。
mai_attribute_map_absolute_coding_persistence_flag[j][k]等于1表示解码区域包含索引为k的属性的属性图, 对应于ID为j的图集,在没有任何形式的地图预测的情况下进行编码。mai_attribute_map_absolute_coding_persistence_flag[j][i]等于0表示解码区域包含索引为k的属性的属性图,对应于ID为j的图集,应使用与用于ID为j的图集的几何分量相同的地图预测方法。如果mai_attribute_map_absolute_coding_persistence_flag[j][i]不存在,则应推断其值等于1。
3D数组AttributeMapAbsoluteCodingEnabledFlag指示是否要对属性的特定映射进行编码,有或没有预测,获得如下:
mai_attribute_dimension_minus1[j][k]加1表示ID为j的图集的包含索引为k的属性的区域的总维数(即通道数)。mai_attribute_dimension_minus1[j][i]应在0到63的范围内,包括0和63。
mai_attribute_dimension_partitions_minus1[j][k]加1表示对于ID为j的图集,包含索引为k的属性的区域的属性通道应分组的分区组数。mai_attribute_dimension_partitions_minus1[j][k]应在0到63的范围内,包括0到63。
mai_attribute_partition_channels_minus1[j][k][l]加1表示对于ID为j的图集的包含索引为k的属性的区域,分配给索引为l的维度分区组的通道数。对于所有维度分区组,ai_attribute_partition_channels_minus1[j][k][l]应在0到ai_attribute_dimension_minus1[j][k]的范围内。
mai_regions_count_minus1[j]加1表示ID为j的图集混合在一个视频帧中的区域数。mai_regions_count_minus1应在0到7的范围内,包括0到7。当不存在时,mai_regions_count_minus1的值被推断为等于0。
mai_region_tile_id[j][i]表示ID为j的图集的索引为i的区域的图块ID。
mai_region_format_type_id[j][i]表示ID为j的图集索引为i的区域的格式类型。mai_region_format_type_id[j][i]等于0,表示区域格式为多视角视频;等于1,区域格式为点云。
mai_region_top_left_x[j][i]以混合属性视频分量帧中的亮度样本为单位,为ID为j的图集的索引为i的区域指定左上样本的水平位置。当不存在时,mai_region_top_left_x[j][i]的值被推断为等于0。
mai_region_top_left_y[j][i]以混合属性视频分量帧中的亮度样本为单位,为ID为j的图集的索引为i的区域指定左上样本的垂直位置。当不存在时,mai_region_top_left_y[j][i]的值被推断为等于0。
mai_region_width_minus1[j][i]plus 1为ID为j的图集的索引为i的区域指定宽度,以亮度样本为单位。
mai_region_height_minus1[j][i]加1指定ID为j的图集的索引为i的区域指定高度,以亮度样本为单位。
mai_region_unpack_top_left_x[j][i]以解压缩视频分量帧中的亮度样本为单位,为ID j的图集的索引为i的区域指定左上样本的水平位置。当不存在时,mai_region_unpack_top_left_x[j][i]的值被推断为等于0。
mai_region_unpack_top_left_y[j][i]以解压缩视频分量帧中的亮度样本为单位,为ID j的图集的索引为i的区域指定左上样本的垂直位置。当不存在时,mai_region_unpack_top_left_y[j][i]的值被推断为等于0。
mai_region_rotation_flag[j][i]等于0表示不对ID为j的图集的索引为i的区域执行旋转。mai_region_rotation_flag[j][i]等于1表示ID为j的图集的索引为i的区域旋转了90度。
mai_region_map_index[j][i]指定ID为j的的图集索引为i的区域的地图索引。
mai_region_auxiliary_data_flag[j][i]等于1表示ID为j的图集索引为i的区域仅包含RAW和/或EOM编码点。mai_region_auxiliary_data_flag等于0表示ID为j的图集索引为i的区域可能包含RAW和/或EOM编码点。
mai_region_attr_type_id[j][i]表示ID为j的图集索引为i的区域的属性类型。表3描述了支持的属性列表。
mai_region_attr_partition_index[j][i]表示ID为j的图集索引为i的区域的属性分区索引。当不存在时,mai_region_attr_partition_index[j][i]的值被推断为等于0。
混合打包信息语法(Mixedpacking information syntax)如表19所示:
表18 Mixed packing information syntax
混合打包信息语义如下:
混合后的打包视频帧可以划分为一个或多个矩形区域。一个区域应精确映射到一个地图集图块。混合打包视频帧的矩形区域不允许重叠。
mpi_codec_id[j]表示用于对ID为j的图集压缩混合打包视频数据的编解码器的标识符。mpi_codec_id应在0到255的范围内,包括0到255。该编解码器可以通过组件编解码器映射SEI消息或通过本文档之外的方式来识别。
mpi_occupancy_present_flag[j]等于0表示ID为j的图集的混合打包视频帧不包含具有占用数据的区域。mpi_occupancy_present_flag[j]等于1表示ID为j的图集的混合打包视频帧确实包含具有占用数据的区域。当mpi_occupancy_present_flag[j]不存在时,推断为等于0。
比特流一致性的要求是,如果mpi_occupancy_present_flag[j]对于atlas ID j的atlas等于1,vps_occupancy_video_present_flag[j]对于atlas ID j相同的atlas应等于0。
mpi_geometry_present_flag[j]等于0表示ID为j的图集的混合打包视频帧不包含具有几何数据的区域。mpi_geometry_present_flag[j]等于1表示ID为j的图集的混合打包视频帧确实包含具有几何数据的区域。当mpi_geometry_present_flag[j]不存在时,推断为等于0。
比特流一致性的要求是,如果mpi_geometry_present_flag[j]对于ID为j的图集等于1,则vps_geometry_video_present_flag[j]对于ID为j的图集应等于0。
mpi_attributes_present_flag[j]等于0表示ID为j的图集的混合打包视频帧不包含具有属性数据的区域。mpi_attributes_present_flag[j]等于1表示ID为j的图集的混合打包视频帧确实包含具有属性数据的区域。当mpi_attributes_present_flag[j]不存在时,推断为等于0。
比特流一致性的要求是,如果mpi_attribute_present_flag[j]对于ID为j的图集等于1,vps_attribute_video_present_flag[j]对于ID为j的图集应等于0。
mpi_occupancy_2d_bit_depth_minus1[j]加1表示标称2D位深度,包含占用数据的ID为j的图集的解码区域应转换到该标称2D位深度。mpi_occupancy_MSB_align_flag[j]应在0到31的范围内,包括0和31。
mpi_occupancy_MSB_align_flag[j]指示ID为j的图集的包含占用样本的解码区域如何转换为标称占用比特深度的样本,如附件B中所指定。
mpi_lossy_occupancy_compression_threshold[j]指示用于从包含ID为j的图集的占用数据的解码区域导出二进制占用的阈值。mpi_lossy_occupancy_compression_threshold[j]应在0到255的范围内,包括0和255。
mpi_geometry_2d_bit_depth_minus1[j]加1表示标称2D位深度,ID为j的图集的包含几何数据的解码区域应转换到的标称2D位深度。mpi_geometry_2d_bit_depth_minus1[j]应在0到31的范围内,包括0和31。
mpi_geometry_MSB_align_flag[j]指示如何将ID为j的图集的包含几何样本的解码区域转换为标称占用位深度的样本,如附件B中所述。
mpi_geometry_3d_coordinates_bit_depth_minus1[j]加1表示ID为j的图集的重建立体内容的几何坐标的位深度。mpi_geometry_3d_coordinates_bit_depth_minus1[j]应在0到31的范围内,包括0和31。
mpi_attribute_count[j]表示ID为j的图集的混合打包视频帧中存在的具有唯一属性类型的属性的数量。
mpi_attribute_type_id[j][i]表示为ID为j的图集的混合打包视频帧的属性区域的第i个属性类型。表3描述了支持的属性类型列表。
mpi_attribute_2d_bit_depth_minus1[j][k]加1表示对于ID为j的图集,包含属性索引为k的属性的区域应转换到的标称2D位深度。mpi_attribute_2d_bit_depth_minus1[j][k]应在0到31的范围内,包括0和31。
mpi_attribute_MSB_align_flag[j][k]指示如何将包含属性类型为k的属性的解码区域(对于ID为j的图集)转换为标称属性位深度的样本,如附件B中所述。
mpi_attribute_map_absolute_coding_persistence_flag[j][k]等于1表示解码区域包含索引为k的属性的属性图,对应于ID为j的图集,在没有任何形式的地图预测的情况下进行编码。mpi_attribute_map_absolute_coding_persistence_flag[j][i]等于0表示解码区域包含索引为k的属性的属性图,对应于ID为j的图集,应使用与用于ID为j的图集的几何分量相同的地图预测方法。如果mpi_attribute_map_absolute_coding_persistence_flag[j][i]不存在,则应推断其值等于1。
3D数组AttributeMapAbsoluteCodingEnabledFlag指示是否要对属性的特定映射进行编码,有或没有预测,获得 如下:
mpi_attribute_dimension_minus1[j][k]加1表示ID为j的图集的包含索引为k的属性的区域的总维数(即通道数)。mpi_attribute_dimension_minus1[j][i]应在0到63的范围内,包括0和63。
mpi_attribute_dimension_partitions_minus1[j][k]加1表示对于ID为j的图集,包含索引为k的属性的区域的属性通道应分组的分区组数。mpi_attribute_dimension_partitions_minus1[j][k]应在0到63的范围内,包括0到63。
mpi_attribute_partition_channels_minus1[j][k][l]加1表示对于ID为j的图集的包含索引为k的属性的区域,分配给索引为l的维度分区组的通道数。对于所有维度分区组,ai_attribute_partition_channels_minus1[j][k][l]应在0到ai_attribute_dimension_minus1[j][k]的范围内。
mpi_regions_count_minus1[j]加1表示ID为j的图集混合在一个视频帧中的区域数。mpi_regions_count_minus1应在0到7的范围内,包括0到7。当不存在时,mpi_regions_count_minus1的值被推断为等于0。
mpi_region_tile_id[j][i]表示ID为j的图集的索引为i的区域的图块ID。
mpi_region_format_type_id[j][i]表示ID为j的图集索引为i的区域的格式类型。mpi_region_format_type_id[j][i]等于0,表示区域格式为多视角视频;等于1,区域格式为点云。
mpi_region_type_id_minus2[j][i]加2表示对于ID为j的图集,索引为i的区域的ID。mpi_region_type_id_minus2[j][i]的值应在0到2的范围内,包括0到2。
mpi_region_top_left_x[j][i]以混合打包视频分量帧中的亮度样本为单位,为ID为j的图集的索引为i的区域指定左上样本的水平位置。当不存在时,mpi_region_top_left_x[j][i]的值被推断为等于0。
mpi_region_top_left_y[j][i]以混合打包视频分量帧中的亮度样本为单位,为ID为j的图集的索引为i的区域指定左上样本的垂直位置。当不存在时,mpi_region_top_left_y[j][i]的值被推断为等于0。
mpi_region_width_minus1[j][i]plus 1为ID为j的图集的索引为i的区域指定宽度,以亮度样本为单位。
mpi_region_height_minus1[j][i]加1指定ID为j的图集的索引为i的区域指定高度,以亮度样本为单位。
mpi_region_unpack_top_left_x[j][i]以解压缩视频分量帧中的亮度样本为单位,为ID j的图集的索引为i的区域指定左上样本的水平位置。当不存在时,mpi_region_unpack_top_left_x[j][i]的值被推断为等于0。
mpi_region_unpack_top_left_y[j][i]以解压缩视频分量帧中的亮度样本为单位,为ID j的图集的索引为i的区域指定左上样本的垂直位置。当不存在时,mpi_region_unpack_top_left_y[j][i]的值被推断为等于0。
mpi_region_rotation_flag[j][i]等于0表示不对ID为j的图集的索引为i的区域执行旋转。mpi_region_rotation_flag[j][i]等于1表示ID为j的图集的索引为i的区域旋转了90度。
mpi_region_map_index[j][i]指定ID为j的的图集索引为i的区域的地图索引。
mpi_region_auxiliary_data_flag[j][i]等于1表示ID为j的图集索引为i的区域仅包含RAW和/或EOM编码点。mpi_region_auxiliary_data_flag等于0表示ID为j的图集索引为i的区域可能包含RAW和/或EOM编码点。
mpi_region_attr_type_id[j][i]表示ID为j的图集索引为i的区域的属性类型。表3描述了支持的属性列表。
mpi_region_attr_partition_index[j][i]表示ID为j的图集索引为i的区域的属性分区索引。当不存在时,mpi_region_attr_partition_index[j][i]的值被推断为等于0。
混合打包视频解码过程如下所示:
ID为DecAtlasID的图集的混合视频分量的解码过程如下。
对于混合视频分量,首先使用附件A中定义的配置文件或mpi_codec_id[DecAtlasID]的值和子条款F.2.11中指定的分量编解码器映射SEI消息(如果存在)来确定编解码器。然后,根据相应的编码规范,使用存在于V3C比特流中的混合视频子比特流作为输入来调用混合视频解码过程。
这个过程的输出是:
– NumDecMpkFrames,指示解码混合视频帧的数量
– a 4D array DecMpkFrames,解码后的混合视频帧,其中维度分别对应于解码后的混合视频帧索引、分量索引、行索引和列索引,以及
– 以下的一维数组:
– DecMpkBitDepth,指示混合视频的位宽,
– DecMpkHeight,指示混合视频的高度,
– DecMpkWidth,指示混合视频的宽度,
– DecMpkChromaFormat,指示属性色度格式,
– DecMpkChromaSamplingPosition,如果存在,指示ISO/IEC 23091-2中规定的视频色度采样位置,
– DecMpkFullRange,如果存在,指示ISO/IEC 23091-2中规定的视频全范围代码点,
– DecMpkColourPrimaries,如果存在,指示ISO/IEC 23091-2中规定的源原色的色度坐标,
– DecMpkTransferCharacteristics,如果存在,指示ISO/IEC 23091-2中规定的传输特性,
– DecMpkMatrixCoeffs,如果存在,指示ISO/IEC 23091-2中规定的矩阵系数,
– DecMpkOutOrdIdx,指示混合视频输出顺序索引,以及
– DecMpkCompTime,指示混合视频合成时间。
其中维度对应于解码的混合视频帧索引。
如果数组DecMpkFullRange缺失,则其所有元素都应设置为1。
如果数组DecMpkTransferCharacteristics的任何元素缺失或设置为值2,即未指定,则这些元素应设置为8,即线性。
如果数组DecMpkChromaSamplingPosition缺失,则其所有元素都应设置为0。
如果数组DecMpkColourPrimaries缺失,则其所有元素都应设置为2。
如果数组DecMpkMatrixCoeffs缺失,则其所有元素都应设置为2。
数组DecMpkChromaSamplingPosition、DecMpkColourPrimaries、DecMpkMatrixCoeffs、DecMpkFullRange和DecMpkTransferCharacteristics的值不应用于mpi_region_type_id_minus2等于V3C_OVD、V3C_GVD和V3C_AVD的mpi_region_attr_type_id等于ATTR_MATERIAL_ID的解码混合帧区域的任何进一步处理,或ATTR_NORMAL。
这些值应根据ISO/IEC 23091-2中相应的编码点进行解释。
注:任何现有的视频编码规范,如ISO/IEC 14496-10或ISO/IEC 23008-2或任何未来定义的视频编码规范,如果包含在mix_packed_codec_id中,都可以使用。
在该方案3中,在v3c unit header级别就可以根据v3c unit type来判断当前混合拼接图是否为异构混合拼接图。异构混合拼接图可能出现的情况有以下四种:
1)若v3c unit type=V3C_MOVD,则表明当前混合拼接图是异构混合占用情况拼接图,后续再通过mixedoccupancy information中的moi_region_format_type_id[j][i]来区分异构混合拼接图的某个region是多视点视频拼接图还是点云拼接图。
2)若v3c unit type=V3C_MGVD,则表明当前混合拼接图是异构混合几何拼接图,后续再通过mixedgeometry information中的mgi_region_format_type_id[j][i]来区分异构混合拼接图的某个region是多视点视频拼接图还是点云拼接图。
3)若v3c unit type=V3C_MAVD,则表明当前混合拼接图是异构混合属性拼接图,后续再通过mixedattribute information中的mai_region_format_type_id[j][i]来区分异构混合拼接图的某个region是多视点视频拼接图还是点云拼接图。
4)若v3c unit type=V3C_MPVD,则表明当前混合拼接图是异构混合打包拼接图,后续再通过mixedpacking information中的mpi_region_format_type_id[j][i]来区分异构混合拼接图的某个region是多视点视频拼接图还是点云拼接图。
为了进一步说明本申请实施例的方法,下面以N个视觉媒体内容为多视点视频和点云为例,结合上述方案3,对 本申请实施例的编码方法进行介绍,如图15所示,本申请实施例的编码方法包括如下步骤:
步骤31,多视点视频通过视点间投影、擦除重复去冗余、不重复像素连通成子块、子块拼接为多视点视频拼接图,点云通过平行投影、投影面中的连通像素形成子块,子块拼接成点云点云拼接图。
步骤32,将多视点视频拼接图和点云拼接图进行拼接,生成异构混合拼接图,同时,令其v3c unit type=V3C_MPVD。
进一步的,如果加入异构混合拼接图的当前区域的是多视点视频打包拼接图,则在混合拼接信息中将mpi_region_format_type_id[j][i]置为0。
如果加入异构混合拼接图的当前区域的是点云打包拼接图,则在混合拼接信息中将mpi_region_format_type_id[j][i]置为1。
步骤33,对异构混合拼接图进行视频编码,获得视频压缩子码流;
步骤34,将多视点视频打包拼接图和点云打包拼接图拼接成异构混合打包拼接图的混合拼接信息编码形成混合拼接信息子码流;
步骤35,将视频压缩码流和混合拼接信息码流写入压缩码流。
在该方案3中,通过设置更高一级的第三标志,用于指示当前混合拼接图是哪一种异构混合拼接图,在确定当前混合拼接图为某一种异构混合拼接图后,在混合拼接信息中写入第一标志,通过第一标志用于指示异构混合拼接图中的当前区域的拼接图的表达格式类型。这样,解码端在解码时,首先对第三标志进行解码,若第三标志指示当前混合拼接图为某一种异构混合拼接图时,解码端再对第一标志进行解码,以确定异构混合拼接图的当前区域的拼接图的表达格式类型,进而实现准确解码。
本申请实施例提供的编码方法,编码端通过对N个视觉媒体内容分别进行处理,得到N个拼接图,N个视觉媒体内容中至少两个视觉媒体内容对应的表达格式不同,N为大于1的正整数;将N个拼接图进行拼接,生成异构混合拼接图;对异构混合拼接图进行编码,得到码流。即本申请通过将多种不同表达格式的视觉媒体内容对应的拼接图拼接在一张异构混合拼接图中,例如将多视点视频拼接图和点云拼接图拼接在一张异构混合拼接图中进行编解码,这样尽量减少了所需要调用的HEVC,VVC,AVC,AVS等二维视频编码器的个数,减少了编码代价,提高易用性。
上文以编码端为例对本申请的编码方法进行介绍,下面以解码端为例进行说明。
图16为本申请实一施例提供的解码方法流程示意图。如图16所示,本申请实施例的解码方法包括:
S701、解码码流,得到重建异构混合拼接图。
S702、对重建异构混合拼接图进行拆分,得到N个重建同构拼接图,N为大于1的正整数;
S703、根据N个重建同构拼接图,得到多个重建视觉媒体内容。
其中,多个重建视觉媒体内容中至少两个重建视觉媒体内容对应的表达格式不同。
由上述可知,在编码时,将具有不同表达格式的拼接图拼接在一张异构混合拼接图进行编码。因此,解码端在获得码流后,对码流进行解码,得到重建异构混合拼接图,接着,对该重建异构混合拼接图进行拆分,得到N个重建同构拼接图,则N个重建同构拼接图中至少有两个拼接图对应的表达格式不同。最后,解码端对拆分后的N个重建同构拼接图进行重建等处理,得到多个重建视觉媒体内容。
本申请实施例中,将不同表达格式的多个同构拼接图拼接在一张异构混合拼接图中,这样在解码时,可以尽量减少所需要调用的HEVC,VVC,AVC,AVS等二维视频解码器的个数,减少了解码代价,提高易用性。
在一些实施例中,上述码流中包括视频压缩子码流,此时,上述S701包括如下步骤:
S701-A、解码视频压缩子码流,得到重建异构混合拼接图。
也就是说,本申请实施例的码流包括视频压缩子码流还可能包括其他内容,解码端获得码流后,对码流进行解析,得到码流所包括的视频压缩子码流。接着,对该视频压缩子码流进行解码,得到重建异构混合拼接图,例如,将该视频压缩子码流输入图2B所示的视频解码器中进行解码,得到重建异构混合拼接图。
为了提高解码的准确性,由上述可知,编码端将混合拼接信息写入码流,也就是说,本申请实施例的码流中除了上述视频压缩子码流外,还包括混合拼接信息子码流,此时,本申请实施例的解码方法还包括:解码混合拼接信息子码流,得到混合拼接信息。
对应的,上述S702包括如下步骤:
S702-A、根据混合拼接信息,对重建异构混合拼接图进行拆分,得到N个重建拼接图。
即本申请实施例,解码端对码流进行解析,得到视频压缩子码流和混合拼接信息子码流,接着,解码端对视频压缩子码流进行解码,得到重建异构混合拼接图,对混合拼接信息子码流进行解码,得到混合拼接信息。最后,使用混 合拼接信息,对重建异构混合拼接图进行拆分,得到N个重建同构拼接图。
在一些实施例中,重建异构混合拼接图包括多属性重建异构混合拼接图和单属性重建异构混合拼接图。
在一些实施例中,N个重建同构拼接图包括多视点视频重建拼接图、点云重建拼接图和网格重建拼接图中的至少两个。
基于此,上述S702-A包括如下步骤:
S702-A1、根据混合拼接信息,对重建异构混合拼接图进行拆分,至少得到第一表达格式的单一属性重建拼接图和第二表达格式的单一属性重建拼接图。
其中,第一表达格式和第二表达格式均为多视点视频、点云和网络中的任意一个,且第一表达格式和第二表达格式不同。
在一些实施例中,若第一表达格式为多视点视频,第二表达格式为点云,则上述S702-A1包括如下示例:
示例1,若重建异构混合拼接图为重建异构混合纹理拼接图,则根据混合拼接信息,对重建异构混合纹理拼接图进行拆分,得到多视点视频纹理重建拼接图和点云纹理重建拼接图。
示例2,若重建异构混合拼接图为重建异构混合几何和占用情况拼接图的混合拼接信息,则根据混合拼接信息,对重建异构混合几何和占用情况拼接图进行拆分,得到多视点视频几何重建拼接图、点云几何重建拼接图和点云占用情况重建拼接图。
根据上述方法,得到重建多视点视频纹理拼接图和重建点云纹理拼接图,以及重建多视点视频几何拼接图、重建点云几何拼接图和重建点云占用情况拼接图后,可以根据重建多视点视频纹理拼接图和重建多视点视频几何拼接图,得到重建多视点视频拼接图;
根据重建点云纹理拼接图、重建点云几何拼接图和重建点云占用情况拼接图,得到重建点云拼接图。
举例说明,如图17所示,解码端将码流输入视频解码器中,解码器对视频压缩子码流进行解码,得到重建异构混合纹理拼接图和重建异构混合几何和占用情况拼接图,对混合拼接信息子码流进行解码,得到混合拼接信息。接着,根据混合拼接信息对重建异构混合纹理拼接图进行拆分,例如使用区域解打包技术对重建异构混合纹理拼接图进行拆分,得到重建多视点视频纹理拼接图和重建点云纹理拼接图。根据混合拼接信息对重建异构混合几何和占用情况拼接图进行拆分,例如使用区域解打包技术,对重建异构混合几何和占用情况拼接图进行拆分,得到重建多视点视频几何拼接图、重建点云几何拼接图和重建点云占用情况拼接图。然后,根据重建多视点视频纹理拼接图和重建多视点视频几何拼接图,得到重建多视点视频拼接图,例如,使用TMIV解打包技术,对重建多视点视频纹理拼接图和重建多视点视频几何拼接图进行处理,得到重建多视点视频拼接图。根据重建点云纹理拼接图、重建点云几何拼接图和重建点云占用情况拼接图,得到重建点云拼接图,例如TMC2解打包技术,对重建点云纹理拼接图、重建点云几何拼接图和重建点云占用情况拼接图进行处理,得到重建点云拼接图。
由于本申请实施例的异构混合拼接图中的至少两个拼接图的表达格式不同,因此,为了提高解码准确性,本申请实施例的混合拼接信息包括第一标志,该第一标志用于指示异构混合拼接图中的第i个区域对应的表达格式类型,i为正整数。
此时,上述S702-A包括如下S702-A2和S702-A3的步骤:
S702-A2、针对重建异构混合拼接图中的第i个区域,从混合拼接信息中获取第i个区域对应的第一标志;
S702-A3、根据第i个区域对应的第一标志,将第i区域拆分为第i个区域对应的视觉媒体表达格式类型的重建拼接图。
以N个重建同构拼接图包括重建多视点视频拼接图和重建点云拼接图为例,上述S702-A3包括如下步骤:
S702-A31、若第一标志的取值为第一数值,则将第i区域拆分为重建多视点视频拼接图;
S702-A32、若第一标志的取值为第二数值,则将第i区域拆分为重建点云拼接图。
可选的,第一数值为0。
可选的,第二数值为1。
进一步的,下面通过具体实施例,对混合拼接信息中包括第一标志时的解码过程进行介绍。具体的,如图18所示,解码过程包括如下步骤:
步骤41,从压缩码流中,分别提取混合拼接信息子码流和视频压缩子码流。
步骤42,将混合拼接信息子码流解码后得到混合拼接信息。
步骤43,将视频压缩子码流输入到视频解码器,解码后输出重建异构混合拼接图。
步骤44,根据混合拼接信息中的第一标志,将重建异构混合拼接图,拆分并输出重建多视点视频拼接图和重建点云拼接图。
具体的,从混合拼接信息中获取第一标志pin_region_format_type_id[j][i]。
若确定pin_region_format_type_id[j][i]==0,则表示重建异构混合拼接图中的第i个区域(region)是属于多视点视频的,则将该第i个区域拆分并输出为重建多视点视频拼接图。
若确定pin_region_format_type_id[j][i]==1,则表示重建异构混合拼接图中的第i个区域(region)是属于点云的,则将该第i个区域拆分并输出为重建点云拼接图。
步骤45,重建多视点视频拼接图通过多视点视频解码生成重建多视点视频,重建点云拼接图通过点云解码生成重建点云。
本申请实施例中,通过在混合拼接信息中写入第一标志,解码端在解码时,可以根据混合拼接信息中的第一标志准确确定出异构混合拼接图中的当前区域的拼接图的表达格式类型,例如若第一标志的取值为第一数值时,则解码端确定异构混合拼接图中的当前区域的拼接图为多视点视频拼接图,若第一标志的取值为第二数值时,则解码端确定异构混合拼接图中的当前区域的拼接图为点云拼接图,进而使得解码端根据该第一标志实现准确解码。
在一些实施例中,混合拼接信息包括第二标志,该第二标志用于指示当前混合拼接图是否为异构混合拼接图。
可选的,第二标志位于混合拼接信息的单元头中。
此时,在执行上述S702-A2中从所述混合拼接信息中获取所述第i个区域对应的第一标志之前,本申请实施例首先从混合拼接信息中获取第二标志,并根据该第二标志,确定混合拼接信息中是否存在第一标志。
例如,解码端从混合拼接信息中获得第二标志,若该第二标志的取值为预设值,则说明当前混合拼接图为异构混合拼接图,此时,解码端从混合拼接信息中读取第i个区域对应的第一标志,并根据该第一标志的取值,确定第i个区域的拼接图对应的表达格式类型,例如第一标志的取值为第一数值时,确定第i个区域为多视点视频拼接图,若第一标志的取值为第二数值时,则确定第i个区域为点云拼接图。
在一些实施例中,若第二标志的取值不为所述预设值时,则说明当前混合拼接图不是异构混合拼接图,此时解码端跳过从混合拼接信息中获取第i个区域对应的第一标志的步骤。
本申请实施例中,在v3c unit header中写入第二标志,使得解码端可以在v3c unit header级别就可以根据v3c unit type来判断当前拼接图是否为异构混合拼接图。若第二标志v3c unit type=V3C_MVD,则表明当前当前拼接图是异构混合拼接图,后续再通过混合拼接信息(mixed information)中的第一标志min_region_format_type_id[j][i]来区分异构混合拼接图的某个region是多视点视频拼接图还是点云拼接图。
进一步的,下面通过具体实施例,对混合拼接信息中包括第二标志时的解码过程进行介绍。具体的,如图19所示,解码过程包括如下步骤:
步骤51,解析压缩码流,得到第二标志v3c unit type,若v3c unit type=V3C_MVD,则表明当前混合拼接图为异构混合拼接图,接着,从压缩码流中分别提取混合拼接信息子码流和视频压缩子码流。
步骤52,将混合拼接信息子码流解码后得到混合拼接信息。
步骤53,将视频压缩子码流输入到视频解码器,解码后输出重建异构混合拼接图。
步骤54,根据混合拼接信息中的第一标志,将重建异构混合拼接图,拆分并输出重建多视点视频拼接图和重建点云拼接图。
具体的,解码端从混合拼接信息中获取第一标志min_region_format_type_id[j][i]。
若确定min_region_format_type_id[j][i]==0,则表示重建异构混合拼接图的第i个区域(region)是属于多视点视频的,则将该第i个区域拆分并输出为重建多视点视频拼接图。
若确定min_region_format_type_id[j][i]==1,则表示重建异构混合拼接图的第i个区域(region)是属于点云的,则将该第i个区域拆分并输出为重建点云拼接图。
步骤55,重建多视点视频拼接图通过多视点视频解码生成重建多视点视频,重建点云拼接图通过点云解码生成重建点云。
本申请实施例,通过设置更高一级的第二标志,用于指示当前混合拼接图是否为本申请实施例提出的异构混合拼接图,这样,解码端在解码时,首先对第二标志进行解码,若第二标志指示当前混合拼接图为异构混合拼接图时,解码端再对第一标志进行解码,以确定异构混合拼接图的当前区域的拼接图的表达格式类型,进而实现准确解码。
在一些实施例中,混合拼接信息包括第三标志,该第三标志用于指示当前混合拼接图是否为异构混合拼接图,以及属于哪一种异构混合拼接图。
异构混合拼接图包括如下几种类型:异构混合占用情况拼接图、异构混合几何拼接图、异构混合属性拼接图、异构混合打包拼接图。
可选的,第三标志位于混合拼接信息的单元头中。
此时,在执行上述S702-A2中从所述混合拼接信息中获取所述第i个区域对应的第一标志之前,本申请实施例首先从混合拼接信息中获取第三标志,并根据该第三标志,确定混合拼接信息中是否存在第一标志。
例如,解码端从混合拼接信息中获得第三标志,若该第三标志的取值为第一预设值、第二预设值、第三预设值或第四预设值时,则从混合拼接信息中获取第i个区域对应的第一标志,第一预设值用于指示当前混合拼接图为异构混合占用情况拼接图,第二预设值用于指示当前混合拼接图为异构混合几何拼接图,第三预设值用于指示当前混合拼接图为异构混合属性拼接图,第四预设值用于指示当前混合拼接图为异构混合打包拼接图。接着,根据该第一标志的取值,确定第i个区域的拼接图对应的表达格式类型,例如第一标志的取值为第一数值时,确定第i个区域为多视点视频拼接图,若第一标志的取值为第二数值时,则确定第i个区域为点云拼接图。
在一些实施例中,若第三标志的取值不为第一预设值、第二预设值、第三预设值或第四预设值时,则说明当前混合拼接图不是异构混合拼接图,此时解码端跳过从混合拼接信息中获取第i个区域对应的第一标志的步骤。
本申请实施例中,在v3c unit header中写入第三标志,使得解码端可以在v3c unit header级别就可以根据v3c unit type来判断当前拼接图是否为异构混合拼接图,以及异构混合拼接图的类型。若第三标志v3c unit type为V3C_MAVD,V3C_MGVD,V3C_MOVD,或V3C_MPVD,则表明当前当前拼接图是异构混合拼接图,后续再通过混合拼接信息(mixed information)中的第一标志min_region_format_type_id[j][i]来区分异构混合拼接图的某个region是多视点视频拼接图还是点云拼接图。
进一步的,下面通过具体实施例,对混合拼接信息中包括第三标志时的解码过程进行介绍。具体的,如图20所示,解码过程包括如下步骤:
步骤61,解析压缩码流,得到第三标志v3c unit type,若v3c unit type=V3C_MPVD,则表明当前拼接图为异构混合打包拼接图,从压缩码流中分别提取混合拼接信息子码流和异构混合打包拼接图视频压缩子码流。
步骤62,将混合拼接信息子码流解码后得到混合拼接信息。
步骤63,将视频压缩子码流输入到视频解码器,解码后输出重建异构混合拼接图。
步骤64,根据混合拼接信息中的第一标志,将重建异构混合拼接图,拆分并输出重建多视点视频拼接图和重建点云拼接图。
具体的,解码端从混合拼接信息中获取第一标志min_region_format_type_id[j][i]。
若确定min_region_format_type_id[j][i]==0,则表示重建异构混合拼接图的第i个区域(region)是属于多视点视频的,则将该第i个区域拆分并输出为重建多视点视频拼接图。
若确定min_region_format_type_id[j][i]==1,则表示重建异构混合拼接图的第i个区域(region)是属于点云的,则将该第i个区域拆分并输出为重建点云拼接图。
步骤65,重建多视点视频拼接图通过多视点视频解码生成重建多视点视频,重建点云拼接图通过点云解码生成重建点云。
本申请实施例,通过设置更高一级的第三标志,用于指示当前混合拼接图是否为本申请实施例提出的异构混合拼接图,以及属于哪一种异构混合拼接图,这样,解码端在解码时,首先对第三标志进行解码,若第三标志指示当前混合拼接图为异构混合拼接图时,解码端再对第一标志进行解码,以确定异构混合拼接图的当前区域的拼接图的表达格式类型,进而实现准确解码。
本申请实施例提供的解码方法,解码端通过解码码流,得到重建异构混合拼接图;对重建异构混合拼接图进行拆分,得到N个重建拼接图,N为大于1的正整数;对N个重建拼接图分别进行解码,得到N个重建视觉媒体内容,N个重建视觉媒体内容中至少两个重建视觉媒体内容对应的表达格式不同。即本申请实施例,将不同表达格式的多个拼接图拼接在一张异构混合拼接图中,这样在解码时,保留来自不同表达格式的数据(点云等)的渲染优点,提高图像的合成质量的同时,可以尽量减少所需要调用的HEVC,VVC,AVC,AVS等二维视频解码器的个数,减少了解码代价,提高易用性。
应理解,图14至图19仅为本申请的示例,不应理解为对本申请的限制。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请 的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。另外,本申请实施例中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。具体地,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中字符“/”,一般表示前后关联对象是一种“或”的关系。
上文结合图6至图20,详细描述了本申请的方法实施例,下文结合图16至图18详细描述本申请的装置实施例。
图21为本申请一实施例提供的编码装置的示意性框图,该编码装置10应用于上述视频解码端。
如图21所示,编码装置10包括:
第一拼接单元11,用于对多个视觉媒体内容进行处理,得到N个同构拼接图,所述多个视觉媒体内容中至少两个视觉媒体内容对应的表达格式不同,所述N为大于1的正整数;
第二拼接单元12,用于将所述N个同构拼接图进行拼接,生成异构混合拼接图;
编码单元13,用于对所述异构混合拼接图进行编码,得到码流。
在一些实施例中,编码单元13,具体用于调用视频编码器,对所述异构混合拼接图进行视频编码,得到视频压缩子码流;对所述异构混合拼接图的混合拼接信息进行编码,得到混合拼接信息子码流;将所述视频压缩子码流和所述混合拼接信息子码流写入所述码流。
在一些实施例中,异构混合拼接图包括多属性异构混合拼接图和单属性异构混合拼接图。
在一些实施例中,所述N个同构拼接图包括多视点视频拼接图、点云拼接图和网格拼接图中的至少两个。
在一些实施例中,第二拼接单元12,具体用于对至少第一表达格式的单一属性拼接图和第二表达格式的单一属性拼接图进行拼接,得到所述异构混合拼接图,所述第一表达格式和所述第二表达格式均为多视点视频、点云和网络中的任意一个,且所述第一表达格式和所述第二表达格式不同。
在一些实施例中,若所述第一表达格式为多视点视频,所述第二表达格式为点云,所述第二拼接单元12,具体用于将多视点视频纹理拼接图和点云纹理拼接图进行拼接,得到异构混合纹理拼接图;或者,将多视点视频几何拼接图、点云几何拼接图和点云占用情况拼接图进行拼接,得到异构混合几何和占用情况拼接图。
在一些实施例中,所述混合拼接信息包括第一标志,所述第一标志用于指示所述异构混合拼接图中的第i个区域对应的表达格式类型,所述i为正整数。
在一些实施例中,若所述N个拼接图包括多视点视频拼接图和点云拼接图,所述第二拼接单元12,还用于方法若所述第i个区域的拼接图为所述多视点视频拼接图,则将所述第一标志的值置为第一数值;若所述第i个区域的拼接图为所述点云拼接图,则将所述第一标志的值置为第二数值。
在一些实施例中,所述混合拼接信息包括第二标志,所述第二标志用于指示当前混合拼接图是否为异构混合拼接图。
在一些实施例中,所述第二拼接单元12,还用于若所述当前混合拼接图为所述异构混合拼接图,则将所述第二标志置为预设值
在一些实施例中,所述第二拼接单元12,还用于若确定所述第二标志的值为所述预设值,则在所述混合拼接信息中写入第一标志。
在一些实施例中,所述第二拼接单元12,还用于若确定所述第二标志的值不为所述预设值时,则跳过在所述混合拼接信息中写入第一标志。
可选的,所述第二标志位于所述混合拼接信息的单元头中。
在一些实施例中,若所述N个拼接图包括多视点视频拼接图和点云拼接图,所述第一拼接单元11,具体用于对获取的多视点视频进行投影和去冗余处理后,将不重复像素点连通成视频子块,且将所述视频子块拼接成所述多视点视频拼接图;对获取的点云进行平行投影,将投影面中的连通点组成点云子块,且将所述点云子块拼接成所述点云拼接图。
可选的,所述N个视觉媒体内容为同一个三维空间中同时呈现的媒体内容。
在一些实施例中,所述混合拼接信息包括第三标志,所述第三标志用于指示当前混合拼接图是否为异构混合拼接 图,以及属于哪一种异构混合拼接图。
在一些实施例中,所述异构混合拼接图包括如下几种类型:异构混合占用情况拼接图、异构混合几何拼接图、异构混合属性拼接图、异构混合打包拼接图。
在一些实施例中,所述第二拼接单元12,具体用于若所述当前混合拼接图为所述异构混合占用情况拼接图,则将所述第三标志置为第一预设值;若所述当前混合拼接图为所述异构混合几何拼接图,则将所述第三标志置为第二预设值;若所述当前混合拼接图为所述异构混合属性拼接图,则将所述第三标志置为第三预设值;若所述当前混合拼接图为所述异构混合打包拼接图,则将所述第三标志置为第四预设值。
在一些实施例中,第二拼接单元12,还用于若确定所述第三标志指示所述当前混合拼接图为异构混合拼接图时,则在所述混合拼接信息中写入所述第一标志。
在一些实施例中,第二拼接单元12,还用于若确定所述第三标志指示所述当前混合拼接图不是异构混合拼接图时,则跳过在所述混合拼接信息中写入所述第一标志。
可选的,所述第三标志位于所述混合拼接信息的单元头中
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图21所示的装置10可以执行本申请实施例的编码端的编码方法,并且装置10中的各个单元的前述和其它操作和/或功能分别为了实现上述编码端的编码方法等各个方法中的相应流程,为了简洁,在此不再赘述。
图22是本申请一实施例提供的解码装置的示意性框图,该解码装置应用于上述解码端。
如图22所示,该解码装置20可以包括:
解码单元21,用于解码码流,得到重建异构混合拼接图;
第一拆分单元22,用于对所述重建异构混合拼接图进行拆分,得到N个重建同构拼接图,所述N为大于1的正整数;
处理单元23,用于根据所述N个同构重建拼接图,得到多个重建视觉媒体内容,所述多个重建视觉媒体内容中至少两个重建视觉媒体内容对应的表达格式不同。
在一些实施例中,所述码流包括视频压缩子码流,所述解码单元21,具体用于调用视频解码器对所述视频压缩子码流进行解码,得到所述重建异构混合拼接图。
在一些实施例中,所述码流还包括混合拼接信息子码流,所述解码单元21,还用于解码所述混合拼接信息子码流,得到混合拼接信息;
对应的,第一拆分单元22,具体用于根据所述混合拼接信息,对所述重建异构混合拼接图进行拆分,得到所述N个重建同构拼接图。
在一些实施例中,所述重建异构混合拼接图包括多属性重建异构混合拼接图和单属性重建异构混合拼接图。
在一些实施例中,所述N个重建同构拼接图包括多视点视频重建拼接图、点云重建拼接图和网格重建拼接图中的至少两个。
在一些实施例中,第一拆分单元22,具体用于根据所述混合拼接信息,对所述重建异构混合拼接图进行拆分,至少得到第一表达格式的单一属性重建拼接图和第二表达格式的单一属性重建拼接图,所述第一表达格式和所述第二表达格式均为多视点视频、点云和网络中的任意一个,且所述第一表达格式和所述第二表达格式不同。
在一些实施例中,若所述第一表达格式为多视点视频,所述第二表达格式为点云,则第一拆分单元22,具体用于若所述重建异构混合拼接图为重建异构混合纹理拼接图,则根据所述混合拼接信息,对所述重建异构混合纹理拼接图进行拆分,得到多视点视频纹理重建拼接图和点云纹理重建拼接图;若所述重建异构混合拼接图为重建异构混合几何和占用情况拼接图的混合拼接信息,则根据所述混合拼接信息,对所述重建异构混合几何和占用情况拼接图进行拆分,得到多视点视频几何重建拼接图、点云几何重建拼接图和点云占用情况重建拼接图。
在一些实施例中,所述混合拼接信息包括第一标志,所述第一标志用于指示所述异构混合拼接图中的第i个区域对应的表达格式类型,所述i为正整数。
在一些实施例中,所述第一拆分单元22,具体用于针对所述重建异构混合拼接图中的第i个区域,从所述混合拼接信息中获取所述第i个区域对应的第一标志;根据所述第i个区域对应的第一标志,将所述第i区域拆分为所述第i个区域对应的视觉媒体表达格式类型的重建拼接图。
在一些实施例中,若所述N个重建同构拼接图包括重建多视点视频拼接图和重建点云拼接图,所述第一拆分单元22,具体用于若所述第一标志的取值为第一数值,则将所述第i区域拆分为所述重建多视点视频拼接图;若所述第一标志的取值为第二数值,则将所述第i区域拆分为所述重建点云拼接图。
在一些实施例中,所述混合拼接信息包括第二标志,所述第二标志用于指示当前混合拼接图是否为异构混合拼接图。
在一些实施例中,所述从所述混合拼接信息中获取所述第i个区域对应的第一标志之前,所述第一拆分单元22,还用于从所述混合拼接信息中获取所述第二标志;若所述第二标志的取值为预设值时,则从所述混合拼接信息中获取所述第i个区域对应的第一标志,所述预设值用于指示当前混合拼接图为异构混合拼接图。
在一些实施例中,所述第一拆分单元22,还用于若所述第二标志的取值不为所述预设值时,则跳过从所述混合拼接信息中获取所述第i个区域对应的第一标志的步骤。
可选的,所述第二标志位于所述混合拼接信息的单元头中。
在一些实施例中,所述混合拼接信息包括第三标志,所述第三标志用于指示当前混合拼接图是否为异构混合拼接图,以及属于哪一种异构混合拼接图。
在一些实施例中,所述异构混合拼接图包括如下几种类型:异构混合占用情况拼接图、异构混合几何拼接图、异构混合属性拼接图、异构混合打包拼接图。
在一些实施例中,所述从所述混合拼接信息中获取所述第i个区域对应的第一标志之前,所述第一拆分单元22,还用于从所述混合拼接信息中获取所述第三标志;若所述第三标志的取值为第一预设值、第二预设值、第三预设值或第四预设值时,则从所述混合拼接信息中获取所述第i个区域对应的第一标志,所述第一预设值用于指示所述当前混合拼接图为所述异构混合占用情况拼接图,所述第二预设值用于指示所述当前混合拼接图为所述异构混合几何拼接图,所述第三预设值用于指示所述当前混合拼接图为所述异构混合属性拼接图,所述第四预设值用于指示所述当前混合拼接图为所述异构混合打包拼接图。
矮一些实施例中,所述第一拆分单元22,还用于若所述第三标志的取值不为所述第一预设值、第二预设值、第三预设值或第四预设值时,则跳过从所述混合拼接信息中获取所述第i个区域对应的第一标志的步骤。
可选的,所述第三标志位于所述混合拼接信息的单元头中。
可选的,所述N个视觉媒体内容为同一个三维空间中同时呈现的媒体内容。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图22所示的装置20可以对应于执行本申请实施例的解码端的预测方法中的相应主体,并且装置20中的各个单元的前述和其它操作和/或功能分别为了实现解码端的解码方法等各个方法中的相应流程,为了简洁,在此不再赘述。
上文中结合附图从功能单元的角度描述了本申请实施例的装置和系统。应理解,该功能单元可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件单元组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。可选地,软件单元可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图23是本申请实施例提供的电子设备的示意性框图。
如图23所示,该电子设备30可以为本申请实施例所述的视频编码器,或者视频解码器,该电子设备30可包括:
存储器33和处理器32,该存储器33用于存储计算机程序34,并将该程序代码34传输给该处理器32。换言之,该处理器32可以从存储器33中调用并运行计算机程序34,以实现本申请实施例中的方法。
例如,该处理器32可用于根据该计算机程序34中的指令执行上述方法200中的步骤。
在本申请的一些实施例中,该处理器32可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器33包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同 步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序34可以被分割成一个或多个单元,该一个或者多个单元被存储在该存储器33中,并由该处理器32执行,以完成本申请提供的方法。该一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序34在该电子设备30中的执行过程。
如图23所示,该电子设备30还可包括:
收发器33,该收发器33可连接至该处理器32或存储器33。
其中,处理器32可以控制该收发器33与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器33可以包括发射机和接收机。收发器33还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备30中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
本申请还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
本申请还提供了一种码流,该码流是根据上述编码方法生成的,可选的,该码流中包括上述第一标志,或者包括第一标志和第二标志。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本申请中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。

Claims (45)

  1. 一种编码方法,其特征在于,包括:
    对多个视觉媒体内容进行处理,得到N个同构拼接图,所述多个视觉媒体内容中至少两个视觉媒体内容对应的表达格式不同,所述N为大于1的正整数;
    将所述N个同构拼接图进行拼接,生成异构混合拼接图;
    对所述异构混合拼接图进行编码,得到码流。
  2. 根据权利要求1所述的方法,其特征在于,所述对所述异构混合拼接图进行编码,得到码流,包括:
    调用视频编码器,对所述异构混合拼接图进行视频编码,得到视频压缩子码流;
    对所述异构混合拼接图的混合拼接信息进行编码,得到混合拼接信息子码流;
    将所述视频压缩子码流和所述混合拼接信息子码流写入所述码流。
  3. 根据权利要求2所述的方法,其特征在于,所述异构混合拼接图包括多属性异构混合拼接图和单属性异构混合拼接图。
  4. 根据权利要求3所述的方法,其特征在于,所述N个同构拼接图包括多视点视频拼接图、点云拼接图和网格拼接图中的至少两个。
  5. 根据权利要求4所述的方法,其特征在于,所述将所述N个同构拼接图进行拼接,生成异构混合拼接图,包括:
    对至少第一表达格式的单一属性拼接图和第二表达格式的单一属性拼接图进行拼接,得到所述异构混合拼接图,所述第一表达格式和所述第二表达格式均为多视点视频、点云和网络中的任意一个,且所述第一表达格式和所述第二表达格式不同。
  6. 根据权利要求5所述的方法,其特征在于,若所述第一表达格式为多视点视频,所述第二表达格式为点云,则所述对至少第一表达格式的单一属性拼接图和第二表达格式的单一属性拼接图进行拼接,得到所述异构混合拼接图,包括:
    将多视点视频纹理拼接图和点云纹理拼接图进行拼接,得到异构混合纹理拼接图;或者,
    将多视点视频几何拼接图、点云几何拼接图和点云占用情况拼接图进行拼接,得到异构混合几何和占用情况拼接图。
  7. 根据权利要求2-6任一项所述的方法,其特征在于,所述混合拼接信息包括第一标志,所述第一标志用于指示所述异构混合拼接图中的第i个区域对应的表达格式类型,所述i为正整数。
  8. 根据权利要求7所述的方法,其特征在于,若所述N个拼接图包括多视点视频拼接图和点云拼接图,所述方法还包括:
    若所述第i个区域的拼接图为所述多视点视频拼接图,则将所述第一标志的值置为第一数值;
    若所述第i个区域的拼接图为所述点云拼接图,则将所述第一标志的值置为第二数值。
  9. 根据权利要求7所述的方法,其特征在于,所述混合拼接信息包括第二标志,所述第二标志用于指示当前混合拼接图是否为异构混合拼接图。
  10. 根据权利要求9所述的方法,其特征在于,所述方法还包括:
    若所述当前混合拼接图为所述异构混合拼接图,则将所述第二标志置为预设值。
  11. 根据权利要求10所述的方法,其特征在于,所述方法还包括:
    若确定所述第二标志的值为所述预设值,则在所述混合拼接信息中写入所述第一标志。
  12. 根据权利要求10所述的方法,其特征在于,所述方法还包括:
    若确定所述第二标志的值不为所述预设值时,则跳过在所述混合拼接信息中写入所述第一标志。
  13. 根据权利要求9所述的方法,其特征在于,所述第二标志位于所述混合拼接信息的单元头中。
  14. 根据权利要求7所述的方法,其特征在于,所述混合拼接信息包括第三标志,所述第三标志用于指示当前混合拼接图是否为异构混合拼接图,以及属于哪一种异构混合拼接图。
  15. 根据权利要求14所述的方法,其特征在于,所述异构混合拼接图包括如下几种类型:异构混合占用情况拼接图、异构混合几何拼接图、异构混合属性拼接图、异构混合打包拼接图。
  16. 根据权利要求15所述的方法,其特征在于,所述方法还包括:
    若所述当前混合拼接图为所述异构混合占用情况拼接图,则将所述第三标志置为第一预设值;
    若所述当前混合拼接图为所述异构混合几何拼接图,则将所述第三标志置为第二预设值;
    若所述当前混合拼接图为所述异构混合属性拼接图,则将所述第三标志置为第三预设值;
    若所述当前混合拼接图为所述异构混合打包拼接图,则将所述第三标志置为第四预设值。
  17. 根据权利要求14所述的方法,其特征在于,所述方法还包括:
    若确定所述第三标志指示所述当前混合拼接图为异构混合拼接图时,则在所述混合拼接信息中写入所述第一标志。
  18. 根据权利要求17所述的方法,其特征在于,所述方法还包括:
    若确定所述第三标志指示所述当前混合拼接图不是异构混合拼接图时,则跳过在所述混合拼接信息中写入所述第一标志。
  19. 根据权利要求14所述的方法,其特征在于,所述第三标志位于所述混合拼接信息的单元头中。
  20. 根据权利要求1-6任一项所述的方法,其特征在于,所述N个视觉媒体内容为同一个三维空间中同时呈现的媒体内容。
  21. 一种图像解码方法,其特征在于,包括:
    解码码流,得到重建异构混合拼接图;
    对所述重建异构混合拼接图进行拆分,得到N个重建同构拼接图,所述N为大于1的正整数;
    根据所述N个同构重建拼接图,得到多个重建视觉媒体内容,所述多个重建视觉媒体内容中至少两个重建视觉媒体内容对应的表达格式不同。
  22. 根据权利要求21所述的方法,其特征在于,所述码流包括视频压缩子码流,所述解码码流,得到重建异构混合拼接图,包括:
    调用视频解码器对所述视频压缩子码流进行解码,得到所述重建异构混合拼接图。
  23. 根据权利要求22所述的方法,其特征在于,所述码流还包括混合拼接信息子码流,所述方法还包括:
    解码所述混合拼接信息子码流,得到混合拼接信息;
    所述对所述重建异构混合拼接图进行拆分,得到N个重建同构拼接图,包括:
    根据所述混合拼接信息,对所述重建异构混合拼接图进行拆分,得到所述N个重建同构拼接图。
  24. 根据权利要求23所述的方法,其特征在于,所述重建异构混合拼接图包括多属性重建异构混合拼接图和单属性重建异构混合拼接图。
  25. 根据权利要求24所述的方法,其特征在于,所述N个重建同构拼接图包括多视点视频重建拼接图、点云重建拼接图和网格重建拼接图中的至少两个。
  26. 根据权利要求25所述的方法,其特征在于,所述根据所述混合拼接信息,对所述重建异构混合拼接图进行拆分,得到所述N个重建同构拼接图,包括:
    根据所述混合拼接信息,对所述重建异构混合拼接图进行拆分,至少得到第一表达格式的单一属性重建拼接图和第二表达格式的单一属性重建拼接图,所述第一表达格式和所述第二表达格式均为多视点视频、点云和网络中的任意一个,且所述第一表达格式和所述第二表达格式不同。
  27. 根据权利要求26所述的方法,其特征在于,若所述第一表达格式为多视点视频,所述第二表达格式为点云,则所述根据所述混合拼接信息,对所述重建异构混合拼接图进行拆分,至少得到第一表达格式的单一属性重建拼接图和第二表达格式的单一属性重建拼接图,包括:
    若所述重建异构混合拼接图为重建异构混合纹理拼接图,则根据所述混合拼接信息,对所述重建异构混合纹理拼接图进行拆分,得到多视点视频纹理重建拼接图和点云纹理重建拼接图;
    若所述重建异构混合拼接图为重建异构混合几何和占用情况拼接图的混合拼接信息,则根据所述混合拼接信息,对所述重建异构混合几何和占用情况拼接图进行拆分,得到多视点视频几何重建拼接图、点云几何重建拼接图和点云占用情况重建拼接图。
  28. 根据权利要求21-27任一项所述的方法,其特征在于,所述混合拼接信息包括第一标志,所述第一标志用于指示所述重建异构混合拼接图中的第i个区域对应的表达格式类型,所述i为正整数。
  29. 根据权利要求28所述的方法,其特征在于,所述根据所述混合拼接信息,对所述重建异构混合拼接图进行拆分,得到所述N个重建同构拼接图,包括:
    针对所述重建异构混合拼接图中的第i个区域,从所述混合拼接信息中获取所述第i个区域对应的第一标志;
    根据所述第i个区域对应的第一标志,将所述第i区域拆分为所述第i个区域对应的视觉媒体表达格式类型的重建拼接图。
  30. 根据权利要求29所述的方法,其特征在于,若所述N个重建同构拼接图包括重建多视点视频拼接图和重建点云拼接图,所述根据所述第i个区域对应的第一标志,将所述第i区域拆分为所述第i个区域对应的视觉媒体表达格式类型的重建拼接图,包括:
    若所述第一标志的取值为第一数值,则将所述第i区域拆分为所述重建多视点视频拼接图;
    若所述第一标志的取值为第二数值,则将所述第i区域拆分为所述重建点云拼接图。
  31. 根据权利要求29所述的方法,其特征在于,所述混合拼接信息包括第二标志,所述第二标志用于指示当前混合拼接图是否为异构混合拼接图。
  32. 根据权利要求31所述的方法,其特征在于,所述从所述混合拼接信息中获取所述第i个区域对应的第一标志之前,所述方法还包括:
    从所述混合拼接信息中获取所述第二标志;
    所述从所述混合拼接信息中获取所述第i个区域对应的第一标志,包括:
    若所述第二标志的取值为预设值时,则从所述混合拼接信息中获取所述第i个区域对应的第一标志,所述预设值用于指示当前混合拼接图为异构混合拼接图。
  33. 根据权利要求32所述的方法,其特征在于,所述方法还包括:
    若所述第二标志的取值不为所述预设值时,则跳过从所述混合拼接信息中获取所述第i个区域对应的第一标志的步骤。
  34. 根据权利要求31所述的方法,其特征在于,所述第二标志位于所述混合拼接信息的单元头中。
  35. 根据权利要求29所述的方法,其特征在于,所述混合拼接信息包括第三标志,所述第三标志用于指示当前混合拼接图是否为异构混合拼接图,以及属于哪一种异构混合拼接图。
  36. 根据权利要求35所述的方法,其特征在于,所述异构混合拼接图包括如下几种类型:异构混合占用情况拼接图、异构混合几何拼接图、异构混合属性拼接图、异构混合打包拼接图。
  37. 根据权利要求36所述的方法,其特征在于,所述从所述混合拼接信息中获取所述第i个区域对应的第一标志之前,所述方法还包括:
    从所述混合拼接信息中获取所述第三标志;
    所述从所述混合拼接信息中获取所述第i个区域对应的第一标志,包括:
    若所述第三标志的取值为第一预设值、第二预设值、第三预设值或第四预设值时,则从所述混合拼接信息中获取所述第i个区域对应的第一标志,所述第一预设值用于指示所述当前混合拼接图为所述异构混合占用情况拼接图,所述第二预设值用于指示所述当前混合拼接图为所述异构混合几何拼接图,所述第三预设值用于指示所述当前混合拼接图为所述异构混合属性拼接图,所述第四预设值用于指示所述当前混合拼接图为所述异构混合打包拼接图。
  38. 根据权利要求37所述的方法,其特征在于,所述方法还包括:
    若所述第三标志的取值不为所述第一预设值、第二预设值、第三预设值或第四预设值时,则跳过从所述混合拼接信息中获取所述第i个区域对应的第一标志的步骤。
  39. 根据权利要求35所述的方法,其特征在于,所述第三标志位于所述混合拼接信息的单元头中。
  40. 根据权利要求21-27任一项所述的方法,其特征在于,所述N个视觉媒体内容为同一个三维空间中同时呈现的媒体内容。
  41. 一种编码装置,其特征在于,包括:
    第一拼接单元,用于对多个视觉媒体内容分别进行处理,得到N个同构拼接图,所述多个视觉媒体内容中至少两个视觉媒体内容对应的表达格式不同,所述N为大于1的正整数;
    第二拼接单元,用于将所述N个同构拼接图进行拼接,生成异构混合拼接图;
    编码单元,用于对所述异构混合拼接图进行编码,得到码流。
  42. 一种解码装置,其特征在于,包括:
    解码单元,用于解码码流,得到重建异构混合拼接图;
    第一拆分单元,用于对所述重建异构混合拼接图进行拆分,得到N个重建同构拼接图,所述N为大于1的正整数;
    处理单元,用于根据所述N个重建同构拼接图,得到多个重建视觉媒体内容,所述多个重建视觉媒体内容中至少两个重建视觉媒体内容对应的表达格式不同。
  43. 一种电子设备,其特征在于,包括处理器和存储器;
    所示存储器用于存储计算机程序;
    所述处理器用于调用并运行所述存储器中存储的计算机程序,以实现上述权利要求1至20或21至40任一项所述的方法。
  44. 一种计算机可读存储介质,其特征在于,用于存储计算机程序;
    所述计算机程序使得计算机执行如上述权利要求1至20或21至40任一项所述的方法。
  45. 一种码流,其特征在于,所述码流是基于如上述权利要求1至20任一项所述的方法生成的。
CN202280090445.6A 2022-01-30 2022-01-30 编解码方法、装置、设备、及存储介质 Pending CN118633287A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2022/075260 WO2023142127A1 (zh) 2022-01-30 2022-01-30 编解码方法、装置、设备、及存储介质

Publications (1)

Publication Number Publication Date
CN118633287A true CN118633287A (zh) 2024-09-10

Family

ID=87470278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280090445.6A Pending CN118633287A (zh) 2022-01-30 2022-01-30 编解码方法、装置、设备、及存储介质

Country Status (2)

Country Link
CN (1) CN118633287A (zh)
WO (1) WO2023142127A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116916172B (zh) * 2023-09-11 2024-01-09 腾讯科技(深圳)有限公司 一种远程控制方法和相关装置
CN117579843B (zh) * 2024-01-17 2024-04-02 淘宝(中国)软件有限公司 视频编码处理方法及电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3338454A1 (en) * 2015-08-20 2018-06-27 Koninklijke KPN N.V. Forming one or more tile streams on the basis of one or more video streams
CN112188180B (zh) * 2019-07-05 2022-04-01 浙江大学 一种处理子块图像的方法及装置
US11450030B2 (en) * 2019-09-24 2022-09-20 Apple Inc. Three-dimensional mesh compression using a video encoder
CN112598572B (zh) * 2019-10-01 2022-04-15 浙江大学 一种筛选子块图像与处理单元的方法及装置

Also Published As

Publication number Publication date
WO2023142127A1 (zh) 2023-08-03

Similar Documents

Publication Publication Date Title
US11979605B2 (en) Attribute layers and signaling in point cloud coding
US11151742B2 (en) Point cloud data transmission apparatus, point cloud data transmission method, point cloud data reception apparatus, and point cloud data reception method
US11968393B2 (en) Point cloud data transmitting device, point cloud data transmitting method, point cloud data receiving device, and point cloud data receiving method
JP6698351B2 (ja) ビュー内でのおよびビューにわたる深度ルックアップテーブルの予測コーディング
CN115152223A (zh) 对用于视频编解码的高级语法的输出层集数据和一致性窗口数据进行编解码
CN115567716A (zh) 编码器、解码器及对应方法和装置
KR20210041528A (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
CN114902662A (zh) 用于视频译码的跨分量自适应环路滤波
WO2023142127A1 (zh) 编解码方法、装置、设备、及存储介质
CN115211114A (zh) 编码器、解码器和参数集中的指示和语义的对应方法
CN115152218A (zh) 简化条带头语法元素指示的编码器、解码器及对应方法
CN113273193A (zh) 用于分块配置指示的编码器,解码器及对应方法
CN114762336A (zh) 基于变换跳过和调色板编码相关信息的信令的图像或视频编码
CN113973210B (zh) 媒体文件封装方法、装置、设备及存储介质
CN114762339B (zh) 基于变换跳过和调色板编码相关高级语法元素的图像或视频编码
CN115299070A (zh) 编码器、解码器及对应的方法
CN114846789A (zh) 用于指示条带的图像分割信息的解码器及对应方法
WO2023201504A1 (zh) 编解码方法、装置、设备及存储介质
WO2024011386A1 (zh) 一种编解码方法、装置、编码器、解码器及存储介质
WO2024077806A1 (zh) 一种编解码方法、装置、编码器、解码器及存储介质
WO2024213012A1 (en) Visual volumetric video-based coding method, encoder and decoder
WO2024213011A1 (en) Visual volumetric video-based coding method, encoder and decoder
CN114762335B (zh) 基于变换跳过和调色板编码相关数据的图像或视频编码
US20240338857A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
WO2024151494A2 (en) Visual volumetric video-based coding method, encoder and decoder

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication