CN110419219A - 用于视频编码和解码的装置、方法和计算机程序 - Google Patents

用于视频编码和解码的装置、方法和计算机程序 Download PDF

Info

Publication number
CN110419219A
CN110419219A CN201780087822.XA CN201780087822A CN110419219A CN 110419219 A CN110419219 A CN 110419219A CN 201780087822 A CN201780087822 A CN 201780087822A CN 110419219 A CN110419219 A CN 110419219A
Authority
CN
China
Prior art keywords
image
prediction
rotation
video
coding
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
CN201780087822.XA
Other languages
English (en)
Inventor
A·阿明卢
M·汉努卡塞拉
R·加兹那维尤瓦拉里
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.)
Nokia Technologies Oy
Original Assignee
Nokia Technologies Oy
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 Nokia Technologies Oy filed Critical Nokia Technologies Oy
Publication of CN110419219A publication Critical patent/CN110419219A/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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/134Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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

Landscapes

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

Abstract

公开了用于视频编码和解码的各种方法、装置和计算机程序产品。在一些实施例中,第一重建图像被解释为坐标系中的第一三维图像。获得旋转并且第一三维图像被投影(612、614)到第一几何投影结构(613、615)上,该几何投影结构具有根据坐标系内的旋转的定向。通过将第一几何投影结构展开成第二几何投影结构来形成(616)第一参考图像,并且根据第一参考图像,至少预测第二重建图像的块。

Description

用于视频编码和解码的装置、方法和计算机程序
技术领域
本发明涉及用于视频编码和解码的装置、方法和计算机程序。
背景技术
本部分旨在提供权利要求中所述的本发明的背景或上下文。在本文中的描述可以包括可追求的概念,但并非是先前已经构思或追求的概念。因此,除非在本文中另行指出,否则在本部分中描述的内容不是本申请中的说明书和权利要求的现有技术,并且不因包括在本部分中而被认为是现有技术。
视频编码***可以包括将输入视频转换成适于存储/传输的压缩表示的编码器,以及可将压缩视频表示解压缩回可视形式的解码器。编码器可以丢弃原始视频序列中的一些信息,以便以更紧凑的形式来表示视频,例如,以使能采用比可能所需要的更低的比特率来存储/传输视频信息。
发明内容
一些实施例提供了用于编码和解码视频信息的方法。在本发明的一些实施例中,提供了一种用于视频编码和解码的方法、装置和计算机程序产品。
在详细描述中提供了本发明的示例的各个方面。
根据第一方面,提供了一种方法,其包括:
将第一重建图像解释为坐标系中的第一三维图像;
获得旋转;
将第一三维图像投影到第一几何投影结构上,该几何投影结构具有根据在坐标系内的旋转的定向;
形成第一参考图像,所述形成包括将第一几何投影结构展开成第二几何投影结构;
根据第一参考图像,至少预测第二重建图像的块。
根据第二方面,一种装置,包括至少一个处理器和至少一个存储器,所述至少一个存储器在其上存储有代码,该代码在由所述至少一个处理器执行时使得装置至少执行:
将第一重建图像解释为坐标系中的第一三维图像;
获得旋转;
将第一三维图像投影到第一几何投影结构上,该几何投影结构具有根据在坐标系内的旋转的定向;
形成第一参考图像,所述形成包括将第一几何投影结构展开成第二几何投影结构;
根据第一参考图像,至少预测第二重建图像的块。
根据第三方面,一种计算机可读介质,包括用于装置使用的代码,该代码在由处理器执行时使得装置执行:
将第一重建图像解释为坐标系中的第一三维图像;
获得旋转;
将第一三维图像投影到第一几何投影结构上,该几何投影结构具有根据在坐标系内的旋转的定向;
形成第一参考图像,所述形成包括将第一几何投影结构展开成第二几何投影结构;
根据第一参考图像,至少预测第二重建图像的块。
根据第四方面,一种装置,包括:
用于将第一重建图像解释为坐标系中的第一三维图像的装置;
用于获得旋转的装置;
用于将第一三维图像投影到第一几何投影结构上的装置,该几何投影结构具有根据在坐标系内的旋转的定向;
用于形成第一参考图像的装置,所述形成包括将第一几何投影结构展开成第二几何投影结构;
用于根据第一参考图像,至少预测第二重建图像的块的装置。
其它方面至少包括被设置为执行上述方法的装置以及存储在非暂时性存储介质上的计算机程序产品/代码。
附图说明
为了更全面地理解本发明的示例性实施例,现在参考结合附图的以下描述,其中:
图1a示出根据实施例的多相机***的示例的简化框图;
图1b示出根据实施例的多相机***的透视图;
图2a示出根据实施例的图像拼接、投影和映射过程;
图2b示出根据实施例的形成单像等距形全景图像的过程;
图3a示出根据实施例的具有规则网格的未处理参考帧;
图3b示出根据实施例的具有旋转角度1°的未处理参考帧;
图3c示出根据实施例的具有旋转角度5°的未处理参考帧;
图3d示出指示用于时间参考图像重采样的参考图像的每个角的位移的示例;
图4a示出适用于实现本发明的实施例的编码器的示意图;
图4b示出适用于实现本发明的实施例的解码器的示意图;
图5a示出根据实施例的视频编码方法;
图5b示出根据实施例的视频解码方法;
图6示出根据实施例的基于将要针对360度视频编码而编码的帧的相机方向来控制/重采样参考帧的示例;
图7a示出三维坐标系的示例;
图7b示出三维坐标系的另一个示例;
图8a示出根据实施例的循环外(out-of-the-loop)方法的示例;
图8b示出根据实施例的循环外方法的另一个示例;
图9示出根据实施例的解码视频的图像/帧的示例;
图10a示出根据实施例的编码方法的流程图;
图10b示出根据实施例的解码方法的流程图;
图11a示出根据实施例的候选运动向量预测器的空间候选源;
图11b示出根据实施例的候选运动向量预测器的时间候选源;
图12示出可在其中实现各种实施例的示例性多媒体通信***的示意图;
图13示意性地示出使用本发明的实施例的电子设备;
图14示意性地示出适用于使用本发明的实施例的用户设备;
图15进一步示意性地示出使用本发明的实施例的使用无线和有线网络连接而连接的电子设备。
具体实施方式
图1a和图1b示出了具有多个镜头和成像传感器的相机的示例,但是也可以使用其它类型的相机来捕获宽视图图像和/或宽视图视频。
在下文中,术语宽视图图像和宽视图视频分别意指图像和视频,它们包括具有相对大的,大于100度的视角的视觉信息。因此,在本说明书中,所谓的360全景图像/视频以及通过使用鱼眼镜头捕获的图像/视频也可被称为宽视图图像/视频。更一般地,宽视图图像/视频可以意指一种图像/视频,当视频的连续图像或帧之间的视图方向改变时,在这种图像/视频中可能发生某种投影失真,以使得可能需要进行变换以根据参考图像或参考帧查找出同位(co-located)像素。这随后将在本说明书中更详细地描述。
图1a的相机100包括两个或更多个相机单元102,并且能够捕获宽视图图像和/或宽视图视频。在该示例中,相机单元102的数量是八个,但是也可以少于八个或多于八个。每个相机单元102位于多相机***中的不同位置,并且可以具有相对于其它相机单元102的不同定向。作为示例,相机单元102可以具有全向星座,以使得它在3D空间中具有360视角。换句话说,这样的相机100能够看到场景的每个方向,以使得相机100周围的场景的每个点可被至少一个相机单元102观看。
图1a的相机100还可以包括用于控制相机100的操作的处理器104。还可以具有用于存储将由处理器104执行的数据和计算机代码的存储器106,以及用于以无线和/或有线方式例如与通信网络和/或其它设备进行通信的的收发机108。相机100还可以包括用户接口(UI)110,用于向用户显示信息,用于生成可听信号和/或用于接收用户输入。然而,相机100不需要包括每个上述特征,或者也可以包括其它特征。例如,可以具有用于调整和/或控制相机单元102的光学器件的电气和/或机械元件(未示出)。
图1a还示出了一些操作单元,这些操作单元例如可以在处理器的软件中、在硬件中或在两者中实现为计算机代码。聚焦控制单元114可以执行与调整一个或多个相机单元的光学***有关的操作,以获得满足目标规格或一些其它预定标准的聚焦。光学调节单元116可以根据由聚焦控制单元114所提供的指令来执行光学***或其一个或多个部分的移动。在此应当注意,光学***的实际调整不需要由装置来执行而是可以人工执行,其中,聚焦控制单元114可以向用户接口110提供信息以指示设备的用户如何调整光学***。
图1b示出了图1a的相机100的透视图。在图1b中,可以看到七个相机单元102a-102g,但是相机100可以包括从这个角度看不到的甚至更多个相机单元。图1b还示出了两个麦克风112a、112b,但是装置也可以包括一个或多于两个的麦克风。
在此应当注意,在本说明书中公开的实施例也可以用仅具有一个相机单元102或者少于或多于八个相机单元102a-102g的装置来实现。
根据实施例,相机100可以由另一个设备(未示出)控制,其中,相机100和另一个设备可以彼此通信,用户可以使用另一个设备的用户接口来输入命令、参数等,并且可以经由另一个设备的用户接口从相机100向用户提供信息。
术语360度视频或虚拟现实(VR)视频可以互换使用。它们可通常是指提供这种大视场的视频内容:在典型的显示布置中在单个时间点只显示视频的一部分。例如,可以在头戴式显示器(HMD)上观看虚拟现实视频,该头戴式显示器可以显示例如大约100度的视场(FOV)。可以基于头戴式显示器的方向来选择将要显示的虚拟现实视频内容的空间子集。在另一个示例中,假定平板观看环境,其中,例如可以显示高达40度的视场。当在这样的显示器上显示宽视场内容(例如,鱼眼)时,可以优选地显示空间子集而不是整个图像。
360度图像或视频内容例如可以如下地获取和准备。图像或视频可以由一组相机或者具有多个镜头和成像传感器的相机设备捕获。获取得到一组数字图像/视频信号。相机/镜头可以覆盖相机组或相机设备的中心点周围的所有方向。相同时间实例的图像被拼接、投影并映射到打包虚拟现实帧上。图像拼接、投影和映射过程的向下细分通过图2a示出并描述如下。输入图像201被拼接并投影202到三维投影结构(诸如球体或立方体)上。可以认为投影结构包括一个或多个表面,诸如其中的平面或部分。可以将投影结构定义为由一个或多个表面组成的三维结构,所捕获的虚拟现实图像/视频内容可被投影到所述一个或多个表面上,并且可以从其中形成相应的投影帧。投影结构上的图像数据被进一步布置到二维投影帧203上。术语投影可被定义为将一组输入图像投影到投影帧上的过程。可存在一组预先定义的投影帧的表示格式,例如包括等矩形全景和立方体图(cube map)表示格式。
可以应用区域式映射204,以将投影帧203映射到一个或多个打包虚拟现实帧205上。在一些情况下,区域式映射可被理解为等同于从投影帧中提取两个或更多个区域,可选地对所述区域应用几何变换(诸如旋转、镜像和/或重采样),以及将变换区域放置在打包虚拟现实帧内的空间非重叠区域(也称为组成帧分割)中。如果未应用区域式映射,则打包虚拟现实帧205可与投影帧203相同。否则,通过指示打包虚拟现实帧中的每个区域的位置、形状和大小而将投影帧的区域映射到打包虚拟现实帧上。术语映射可被定义为投影帧被映射到打包虚拟现实帧的过程。术语打包虚拟现实帧可被定义为从投影帧的映射而得到的帧。实际上,输入图像201可以在一个过程中被转换成打包虚拟现实帧205而无需中间步骤。
360度全景内容(即,图像和视频)水平覆盖成像设备的捕获位置周围的全360度视场。垂直视场可以变化,例如可以是180度。水平覆盖360度视场和垂直覆盖180度视场的全景图像可以通过已使用等矩形投影被映射到二维图像平面的球形来表示。在这种情况下,水平坐标可被认为等同于经度,而垂直坐标可被认为等同于纬度,而不应用变换或缩放。在一些情况下,具有360度水平视场但具有小于180度垂直视场的全景内容可被认为是等矩形投影的特例,其中,球形的极区域未被映射到二维图像平面上。在某些情况下,全景内容可具有小于360度的水平视场和高达180度的垂直视场,同时以其它方式具有等矩形投影格式的特性。
在立方体图投影格式中,球形视频被投影到立方体的六个面(也被称为侧面)上。可以通过以下方式生成立方体图:例如首先从视点渲染球形场景六次,其中视图由表示每个立方体面的90度视锥来定义。立方体侧面可以帧打包到同一帧中,或者每个立方体侧面可以单独处理(例如,在编码中)。可能具有许多可能的顺序来将立方体侧面定位到帧上和/或立方体侧面可以旋转或镜像。可以选择用于帧打包的帧宽度和高度以“紧密地”适合立方体侧面,例如在3x 2立方体侧网格处,或者可以包括未使用的组成帧,例如在4x 3立方体侧网格处。
根据一个实施例,在图2b中示出了形成单像等矩形全景图像的过程。一组输入图像211,诸如相机阵列或具有多个镜头和传感器102的相机设备100的鱼眼图像,被拼接212到球形图像213上。球形图像213进一步被投影214到圆柱体215上(没有顶面和底面)。圆柱体215被展开216以形成二维投影帧217。实际上,可以合并所示出的步骤中的一个或多个;例如,输入图像213可被直接投影到圆柱体217上而没有中间的投影到球体213和/或圆柱体215上。用于等矩形全景的投影结构可被认为是包括单个表面的圆柱体。
通常,360度内容可被映射到不同类型的实体几何结构上,诸如多面体(即,包括平面多边形面、直边和尖角或顶点的三维实体对象,例如,立方体或金字塔)、圆柱体(通过将球形图像投影到圆柱体上,如以上通过等矩形投影所述的)、圆柱体(直接地而无需首先投影到球形上)、圆锥体等,然后被展开成二维图像平面。二维图像平面也可被视为几何结构。换句话说,360度内容可被映射到第一几何结构上并且进一步被展开成第二几何结构。然而,可以直接获得从原始360度内容或从其它宽视图视觉内容到第二几何结构的转换。
在一些情况下,具有360度水平视场但具有小于180度垂直视场的全景内容可被认为是等矩形投影的特例,其中,球形的极区域未被映射到二维图像平面上。在某些情况下,全景图像可具有小于360度的水平视场和高达180度的垂直视场,同时以其它方式具有等矩形投影格式的特性。
实时传输协议(RTP)广泛用于诸如音频和视频的定时媒体的实时传输。RTP可以在用户数据报协议(UDP)之上运行,而UDP又可以在因特网协议(IP)之上运行。RTP在因特网工程任务组(IETF)请求注释(RFC)3550中规定,其可从www.ietf.org/rfc/rfc3550.txt获得。在RTP传输中,媒体数据被封装到RTP分组中。通常,每种媒体类型或媒体编码格式具有专用RTP有效载荷格式。
RTP会话是与RTP通信的一组参与者之间的关联。它是群组通信信道,其可以承载多个RTP流。RTP流是包括媒体数据的RTP分组流。RTP流由属于特定RTP会话的SSRC标识。SSRC是指同步源或同步源标识符,它是RTP分组报头中的32位SSRC字段。同步源的特征在于来自同步源的所有分组形成相同定时和序列号空间的一部分,因此接收器可以通过同步源对分组(packet)进行分组(group)以进行播放。同步源的示例包括从诸如麦克风或相机或RTP混合器的信号源获得的分组流的发送器。每个RTP流由SSRC标识,该SSRC在RTP会话中是唯一的。
视频编解码器可以包括编码器和解码器,编码器将输入视频转换成适合于存储/传输的压缩表示,解码器可以将压缩视频表示解压缩回可视形式。视频编码器和/或视频解码器也可以彼此分离,即不需要形成编解码器。通常,编码器丢弃原始视频序列中的一些信息,以便以更紧凑的形式(即,以更低的比特率)来表示视频。如随后所定义的,视频编码器可用于对图像序列进行编码,而视频解码器可用于对编码的图像序列进行解码。视频编码器或视频编码器的帧内编码部分或图像编码器可用于对图像进行编码,而视频解码器或视频解码器的帧间解码部分或图像解码器可用于对编码的图像进行解码。
一些混合视频编码器,例如ITU-T H.263和H.264的许多编码器实现,在两个阶段中对视频信息进行编码。首先,例如通过运动补偿装置(找到并指示与被编码的块紧密对应的先前编码的视频帧之一中的区域)或通过空间装置(使用将以特定方式进行编码的块周围的像素值)预测某一图像区域(或“块”)中的像素值。其次,对预测误差(即预测像素块与原始像素块之间的差异)进行编码。这通常通过使用特定变换(例如,离散余弦变换(DCT)或其变形)对像素值的差进行变换,对系数进行量化以及对量化系数进行熵编码来实现。通过改变量化过程的保真度,编码器可以控制像素表示的精确度(图像质量)与所得到的编码的视频表示的大小(文件大小或传输比特率)之间的平衡。
在时间预测中,预测的源是先前解码的图像(也称为参考图像)。在帧内块复制(也称为帧内块复制预测)中,与时间预测类似地应用预测,但是参考图像是当前图像,并且在预测过程中只能参考先前解码的样本。可以与时间预测类似地应用层间或视图间预测,但是参考图像分别是来自另一可伸缩层或来自另一视图的解码图像。在一些情况下,帧间预测可仅指时间预测,而在其它情况下,帧间预测可统指时间预测以及帧内块复制、层间预测和视图间预测中的任一个,前提是它们是用与时间预测相同或类似的方法执行的。帧间预测或时间预测有时可称为运动补偿或运动补偿预测。
帧内预测利用了同一图像内的相邻像素可能相关的事实。帧内预测可以在空间或变换域中执行,即,可以预测样本值或变换系数。帧内预测通常在其中不应用帧间预测的帧内编码中使用。
在编码方案中可以存在不同类型的帧内预测模式,编码器可例如基于块或编码单元基础从中选择并指示所使用的模式。例如,以块或编码单元为基础。解码器可以对所指示的帧内预测模式进行解码并且相应地重新构建预测块。例如,若干各自用于不同的角度方向的角度帧内预测模式是可用的。角度帧内预测可被认为是沿着线性预测方向来推断相邻块的边界样本。附加地或可替代地,平面预测模式可以是可用的。平面预测可被认为基本上形成预测块,其中,预测块的每个样本可被规定为当前块的左侧的相邻样本列中的垂直对齐样本和当前块的上方的相邻样本行中的水平对齐样本的平均值。附加地或可替代地,DC预测模式可以是可用的,其中,预测块基本上是一个或多个相邻块的平均样本值。
编码过程的一个结果是一组编码参数,诸如运动向量和量化的变换系数。如果首先根据空间或时间上相邻的参数预测多个参数,则可以更有效地对这些参数进行熵编码。例如,运动向量可以根据空间相邻的运动向量进行预测,并且可以仅对相对于运动向量预测器的差进行编码。编码参数的预测和帧内预测可以统称为图像内预测。
图4a示出了适用于使用本发明的实施例的视频编码器的框图。图4a示出了用于两层的编码器,但是应当理解,所示出的编码器可以类似地简化为仅编码一层或者扩展为编码多于两层。图4a示出了视频编码器的实施例,其包括用于基础层的第一编码器部分500和用于增强层的第二编码器部分502。第一编码器部分500和第二编码器部分502中的每一个可以包括用于编码输入图像的类似单元。编码器部分500、502可以包括像素预测器302、402,预测误差编码器303、403和预测误差解码器304、404。图4a还示出了像素预测器302、402的实施例,其包括帧间预测器306、406,帧内预测器308、408,模式选择器310、410,滤波器316、416和参考帧存储器318、418。第一编码器部分500的像素预测器302接收300视频流的个基础层图像,这些图像在帧间预测器306(其确定图像与运动补偿参考帧318之间的差异)和帧内预测器308(其仅基于当前帧或图像的已处理部分来确定图像块的预测)两者处进行编码。帧间预测器和帧内预测器两者的输出被传递到模式选择器310。帧内预测器308可以具有多于一个的帧内预测模式。因此,每个模式可以执行帧内预测并向模式选择器310提供预测信号。模式选择器310还接收基础层图像300的副本。对应地,第二编码器部分502的像素预测器402接收400视频流的增强层图像,这些图像在帧间预测器406(其确定图像与运动补偿参考帧418之间的差异)和帧内预测器408(其仅基于当前帧或图像的已处理部分来确定图像块的预测)两者处进行编码。帧间预测器和帧内预测器两者的输出被传递到模式选择器410。帧内预测器408可以具有多于一个的帧内预测模式。因此,每个模式可以执行帧内预测并向模式选择器410提供预测信号。模式选择器410还接收增强层图像400的副本。
根据选择哪种编码模式来编码当前块,帧间预测器306、406的输出或可选的帧内预测器模式之一的输出或模式选择器内的表面编码器的输出被传递到模式选择器310、410的输出端。模式选择器的输出被传递到第一求和设备321、421。第一求和设备可以从基础层图像300/增强层图像400中减去像素预测器302、402的输出以产生第一预测误差信号320、420,其被输入到预测误差编码器303、403。
像素预测器302、402还从初步重新构建器339、439接收图像块312、412的预测表示与预测误差解码器304、404的输出338、438的组合。初步重新构建图像314、414可以被传递到帧内预测器308、408和滤波器316、416。接收初步表示的滤波器316、416可以对初步表示进行滤波并输出可以保存在参考帧存储器318、418中的最终重新构建图像340、440。参考帧存储器318可以连接到帧间预测器306以用作在帧间预测操作中与未来的基础层图像300进行比较的参考图像。根据一些实施例,在选择基础层并且将其指示为用于增强层的层间样本预测和/或层间运动信息预测的源的情况下,参考帧存储器318还可以连接到帧间预测器406以用作在帧间预测操作中与未来的增强层图像400进行比较的参考图像。此外,参考帧存储器418可以连接到帧间预测器406以用作在帧间预测操作中与未来的增强层图像400进行比较的参考图像。
根据一些实施例,在选择基础层并且将其指示为用于预测增强层的滤波参数的源的情况下,可以将来自第一编码器部分500的滤波器316的滤波参数提供给第二编码器部分502。
预测误差编码器303、403包括变换单元342、442和量化器344、444。变换单元342、442将第一预测误差信号320、420变换到变换域。例如,变换是DCT变换。量化器344、444量化变换域信号(例如,DCT系数)以形成量化系数。
预测误差解码器304、404接收来自预测误差编码器303、403的输出,并执行预测误差编码器303、403的相反处理,以产生解码的预测误差信号338、438,当在第二求和设备339、439处与图像块312、412的预测表示组合时,这些解码的预测误差信号338、438产生初步重新构建图像314、414。可以认为预测误差解码器包括去量化器361、461,其对量化的系数值(例如,DCT系数)进行去量化,以重新构建变换信号,还包括逆变换单元363、463,其对重新构建变换信号执行逆变换,其中逆变换单元363、463的输出包含重新构建块。预测误差解码器还可以包括块滤波器,其可以根据进一步解码的信息和滤波器参数对重新构建块进行滤波。
熵编码器330、430接收预测误差编码器303、403的输出,并且可以对信号执行适合的熵编码/可变长度编码,以提供误差检测和校正能力。熵编码器330、430的输出可以通过例如复用器508***比特流。
图4b示出了适用于使用本发明的实施例的视频解码器的框图。图8示出了双层解码器的结构,但是应当理解,解码操作可以类似地在单层解码器中使用。
视频解码器550包括用于基础层图像的第一解码器部分552和用于增强层图像的第二解码器部分554。框556示出了解复用器,用于将有关基础层图像的信息传送到第一解码器部分552,以及用于将有关增强层图像的信息传送到第二解码器部分554。参考标号P'n代表图像块的预测表示。参考标号D'n代表重建预测误差信号。框704、804示出了初步重建图像(I'n)。参考标号R'n代表最终重建图像。块703、803示出了逆变换(T-1)。框702、802示出了逆量化(Q-1)。框700、800示出了熵解码(E-1)。框706、806示出了参考帧存储器(RFM)。框707、807示出了预测(P)(帧间预测或帧内预测)。框708、808示出了滤波(F)。框709、809可用于将解码的预测误差信息与预测的基础/增强层图像组合以获得初步重建图像(I'n)。可以从第一解码器部分552输出710初步重建和滤波的基础层图像,可以从第二解码器部分554输出810初步重建和滤波的增强层图像。
在本文中,解码器可被解释为覆盖能够执行解码操作的任何操作单元,诸如播放器、接收器、网关、解复用器和/或解码器。
H.264/AVC标准由国际电信联盟电信标准化部门(ITU-T)的视频编码专家组(VCEG)和国际标准化组织(ISO)/国际电工委员会(IEC)的运动图像专家组(MPEG)的联合视频组(JVT)开发。H.264/AVC标准由这两个母标准化组织发布,它被称为ITU-T建议H.264和ISO/IEC国际标准14496-10,也被称为MPEG-4第10部分高级视频编码(AVC)。H.264/AVC标准有多个版本,其中在规范中纳入新的扩展或特征。这些扩展包括可伸缩视频编码(SVC)和多视图视频编码(MVC)。
高效视频编码(H.265/HEVC,也被称为HEVC)标准的版本1由VCEG和MPEG的联合协作小组-视频编码(JCT-VC)开发。该标准由两个母标准化组织发布,并且被称为ITU-T建议H.265和ISO/IEC国际标准23008-2,也被称为MPEG-H第2部分高效视频编码(HEVC)。H.265/HEVC的版本2包括可伸缩、多视图、以及保真度范围扩展,其可以分别缩写为SHVC、MV-HEVC、以及REXT。H.265/HEVC的版本2作为ITU-T H.265建议(10/2014)和ISO/IEC 23008-2的版本2发布。对H.265/HEVC的进一步扩展包括三维和屏幕内容编码扩展,其可以分别缩写为3D-HEVC和SCC。
SHVC、MV-HEVC和3D-HEVC使用在HEVC标准的版本2的附录F中规定的公共基础规范。该公共基础例如包括高级语法和语义,例如规定比特流的层的一些特性,诸如层间依赖性,以及解码过程,诸如包括层间参考图像的参考图像列表构建和用于多层比特流的图像顺序计数推导。附录F也可用于现在的HEVC的后续多层扩展。应当理解,即使视频编码器、视频解码器、编码方法、解码方法、比特流结构和/或实施例可以在下文中参考特定扩展(例如SHVC和/或MV-HEVC)来描述,它们也通常适用于HEVC的任何多层扩展,甚至更一般地适用于任何多层视频编码方案。
在本节中将H.264/AVC和HEVC的一些关键定义、比特流和编码结构以及概念描述为其中可以实现实施例的视频编码器、解码器、编码方法、解码方法和比特流结构的示例。H.264/AVC的这些关键定义、比特流和编码结构以及概念与在HEVC中的相同——因此,它们在下面被联合地描述。本发明的各方面不限于H.264/AVC或HEVC,而是针对在其上可以部分或全部实现本发明的一个可能的基础而进行描述。
与许多早期视频编码标准类似,在H.264/AVC和HEVC中规定了比特流语法和语义以及用于无差错比特流的解码过程。没有规定编码过程,但编码器必须生成符合的比特流。可以使用假设参考解码器(HRD)来验证比特流和解码器一致性。这些标准包含有助于处理传输错误和丢失的编码工具,但是这些工具的使用在编码中是可选的,并且没有规定用于错误比特流的解码过程。
在现有标准的描述以及示例性实施例的描述中,语法元素可被定义为比特流中表示的数据的元素。语法结构可被定义为以特定顺序一起存在于比特流中的“零”个或多个语法元素。在现有标准的描述以及示例性实施例的描述中,可以使用短语“由外部装置”或“通过外部装置”。例如,可以“由外部装置”向解码过程提供诸如在解码过程中使用的语法结构或变量值的实体。短语“由外部装置”可以指示实体不包括在由编码器创建的比特流中,而是例如使用控制协议从比特流向外传送。它可以替代地或附加地意味着实体不是由编码器创建的,而是例如可以在使用解码器的播放器或解码控制逻辑等中创建。解码器可以具有用于输入外部装置的接口,诸如变量值。
H.264/AVC或HEVC编码器的输入和H.264/AVC或HEVC解码器的输出的基本单元分别是图像。作为编码器的输入而提供的图像也可被称为源图像,而由解码器解码的图像可被称为解码图像。
源图像和解码图像每个均包括一个或多个样本阵列,诸如以下多组样本阵列中的一个:
-仅亮度(Y)(单色)。
-亮度和两个色度(YCbCr或YCgCo)。
-绿色、蓝色和红色(GBR,也称为RGB)。
-表示其它未指定的单色或三刺激颜色采样(例如,YZX,也称为XYZ)的阵列。
在下文中,这些阵列可被称为亮度(或L或Y)和色度,其中,两个色度阵列可被称为Cb和Cr;无论使用的实际颜色表示方法是什么。使用的实际颜色表示方法例如可以在编码比特流中指示,例如使用H.264/AVC和/或HEVC的视频可用性信息(VUI)语法。分量可被定义为来自三个样本阵列(亮度和两个色度)之一的阵列或单个样本,或者构成单色格式的图像的阵列或该阵列的单个样本。
在H.264/AVC和HEVC中,图像可以是帧或场(field)。帧包括亮度样本矩阵,并且可包括对应的色度样本。场是帧的一组交替的样本行,并且可以在源信号交织时被用作编码器的输入。色度样本阵列可以不存在(因此可能在使用单色采样),或者与亮度样本阵列相比,色度样本阵列可以进行二次采样。色度格式可总结如下:
-在单色采样中,只有一个样本阵列,其可以名义上被认为是亮度阵列。
-在4:2:0采样中,两个色度阵列中的每一个都具有亮度阵列的一半高度和一半宽度。
-在4:2:2采样中,两个色度阵列中的每一个都具有亮度阵列的相同高度和一半宽度。
-在4:4:4采样中,在没有使用单独的颜色平面时,两个色度阵列中的每一个都具有与亮度阵列相同的高度和宽度。
在H.264/AVC和HEVC中,可以将样本阵列作为单独的颜色平面编码到比特流中并且分别从比特流中对被单独编码的颜色平面进行解码。当使用单独的颜色平面时,它们中的每一个都作为具有单色采样的图像被(编码器和/或解码器)单独地处理。
分割(partitioning)可被定义为将集合划分成多个子集,使得集合中的每个元素恰好在子集之一中。
在H.264/AVC中,宏块是16×16的亮度样本块和对应的色度样本块。例如,在4:2:0采样模式中,对于每个色度分量,宏块包含一个8×8色度样本块。在H.264/AVC中,图像被分割为一个或多个切片组(slice group),并且一个切片组包含一个或多个切片。在H.264/AVC中,切片由在特定切片组内的光栅扫描中的连续排序的整数个宏块组成。
当描述HEVC编码和/或解码的操作时,可以使用以下术语。可以将编码块定义为针对N的某个值的N×N个样本块,如此将编码树块划分成编码块便是分割。可以将编码树块(CTB)定义为针对N的某个值的N×N个样本块,如此将分量划分成编码树块便是分割。编码树单元(CTU)可被定义为亮度样本的编码树块,具有三个样本阵列的图像的色度样本的两个对应的编码树块,或者单色图像或使用三个单独的颜色平面和用于编码样本的语法结构编码的图像的样本的编码树块。编码单元(CU)可被定义为亮度样本的编码块,具有三个样本阵列的图像的色度样本的两个对应编码块,或者单色图像或使用三个单独的颜色平面和用于编码样本的语法结构编码的图像的样本的编码块。
在一些视频编解码器(诸如高效视频编码(HEVC)编解码器)中,视频图像被划分成覆盖图像区域的编码单元(CU)。CU包括定义CU内的样本的预测过程的一个或多个预测单元(PU)以及定义所述CU中的样本的预测误差编码过程的一个或多个变换单元(TU)。通常,CU由方形样本块组成,其大小可从预定义的一组可能的CU大小中选择。具有最大允许大小的CU可以被命名为LCU(最大编码单元)或编码树单元(CTU),并且视频图像被划分成非重叠的LCU。LCU可以进一步划分成更小的CU的组合,例如,通过递归地划分LCU和所得到的CU。每个所得到的CU通常具有至少一个PU和至少一个与之相关联的TU。每个PU和TU可以进一步被划分成更小的PU和TU,以分别增加预测和预测误差编码过程的粒度。每个PU具有与之相关联的预测信息,该信息定义将对该PU内的像素应用何种类型的预测(例如,用于帧间预测PU的运动向量信息和用于帧内预测PU的帧内预测方向性信息)。
每个TU可以与描述所述TU内的样本的预测误差解码过程的信息(例如包括DCT系数信息)相关联。通常在CU级传送是否对每个CU应用预测误差编码。在没有与CU相关联的预测误差残差的情况下,可以认为没有用于所述CU的TU。通常在比特流中传送图像被划分成CU以及CU被划分成PU和TU,从而允许解码器再现这些单元的预期结构。
在HEVC中,图像可被分割为图块(tile),图块是矩形的并且包含整数个LCU。在HEVC中,分割为图块形成包括一个或多个图块列以及一个或多个图块行的图块网格。编码的图块是字节对齐的,这可以通过在编码的图块的终止处添加字节对齐位来实现。
在HEVC中,分割为图块形成规则网格,其中,图块的高度和宽度彼此相差最多一个LCU。在HEVC中,切片被定义为包含在一个独立的切片片段中的整数个编码树单元并且所有后续相关切片片段(如果有)位于同一访问单元内的下一个独立切片(如果有)之前。在HEVC中,切片片段被定义为在图块扫描中连续排序并包含在单个NAL单元中的整数个编码树单元。将每个图像划分成切片片段是分割。在HEVC中,独立的切片片段被定义为是这样的切片片段:对于该切片片段,不根据前一切片片段的值断定切片片段报头的语法元素的值,而相关切片片段被定义为是这样的切片片段:对于该切片片段,根据解码顺序中的前一独立切片片段的值断定切片片段报头的一些语法元素的值。在HEVC中,切片报头被定义为作为当前切片片段或者作为位于当前相关切片片段之前的独立切片片段的独立切片片段的切片片段报头,而切片片段报头被定义为编码的切片片段的一部分,其包含与切片片段中表示的第一或所有编码树单元有关的数据元素。以图块内或图像内(如果未使用图块)的LCU的光栅扫描顺序扫描CU。在LCU内,CU具有特定的扫描顺序。
在HEVC中,图块包含整数个编码树单元,并且可以由包含在多于一个的切片中的编码树单元组成。类似地,切片可以由包含在多于一个的图块中的编码树单元组成。在HEVC中,切片中的所有编码树单元属于相同的图块和/或图块中的所有编码树单元属于相同的切片。此外,在HEVC中,切片片段中的所有编码树单元属于相同的图块和/或图块中的所有编码树单元属于相同的切片片段。
运动受限图块集(motion-constrained tile set)使得帧间预测过程在编码中受到约束,如此在运动受限图块集以外没有样本值,以及在使用运动受限图块集以外的一个或多个样本导出的部分(fractional)样本位置处没有样本值,这被用于运动受限图块集内的任何样本的帧间预测。
需要指出,在帧间预测中使用的样本位置被充满,使得在图像以外的位置也要以其它方式充满以指向图的对应边界样本。因此,如果图块边界也是图像边界,则运动向量可以有效地穿过该边界,或者运动向量可以有效地导致部分样本内插,其将指向该边界以外的位置,因为样本位置充满到边界上。
EVC的时间运动受限图块集SEI消息可用于指示比特流中运动受限图块集的存在。
层间受限图块集使得层间预测过程在编码中受到约束,如此在每个关联的参考图块集以外没有样本值,以及在使用每个关联的参考图块集以外的一个或多个样本导出的部分样本位置处没有样本值,这被用于层间受限图块集内的任何样本的层间预测。
HEVC的层间受限图块集SEI消息可用于指示比特流中的层间受限图块集的存在。
解码器通过应用类似于编码器的预测装置来重新构建输出视频,以形成像素块的预测表示(使用由编码器创建并存储在压缩表示中的运动或空间信息)和预测误差解码(预测误差编码的逆操作,其在空间像素域中恢复量化的预测误差信号)。在应用预测和预测误差解码装置之后,解码器对预测和预测误差信号(像素值)求和以形成输出视频帧。解码器(和编码器)还可以应用附加的滤波装置,以在传递输出视频进行显示和/或将其存储为视频序列中即将到来的帧的预测参考之前改进输出视频的质量。
滤波例如可以包括以下中的一个或多个:去块、样本自适应偏移(SAO)和/或自适应环路滤波(ALF)。H.264/AVC包括去块,而HEVC包括去块和SAO。
在典型的视频编解码器中,用与每个运动补偿图像块(诸如预测单元)相关联的运动向量来指示运动信息。这些运动向量中的每一个表示将要编码(在编码器侧)或解码(在解码器侧)的图像中的图像块与先前编码或解码图像之一中的预测源块的位移。为了有效地表示运动向量,通常相对于块特定预测运动向量差分地编码这些运动向量。在典型的视频编解码器中,采用预定义的方式创建预测的运动向量,例如计算相邻块的编码或解码的运动向量的中值。创建运动向量预测的另一种方式是根据时间参考图像中的相邻块和/或共同定位的块生成候选预测列表,并传送所选择的候选者作为运动向量预测器。除了预测运动向量值之外,还可以预测哪个参考图像用于运动补偿预测,并且该预测信息例如可以由先前编码/解码的图像的参考索引表示。通常根据时间参考图像中的相邻块和/或共同定位的块预测参考索引。此外,典型的高效视频编解码器采用附加的运动信息编码/解码机制,通常称为合并模式,其中包括每个可用参考图像列表的运动向量和对应的参考图像索引的所有运动场(motion field)信息被预测并在不做任何修改/更正的情况下使用。类似地,使用时间参考图像中的相邻块和/或共同定位块的运动场信息来执行预测运动场信息,并且在填充有可用的相邻/共同定位的块的运动场候选列表中传送所使用的运动场信息。
典型的视频编解码器使得能够使用单向预测(uni-prediction),其中单个预测块用于被编(解)码的块,以及使得能够使用双向预测(bi-prediction),其中两个预测块被组合以形成用于被编(解)码的块的预测。一些视频编解码器支持加权预测,其中在添加残差信息之前对预测块的样本值进行加权。例如,可以应用乘法加权因子和附加偏移。在由一些视频编解码器实现的显式加权预测中,例如可以在每个可允许参考图像索引的切片报头中对加权因子和偏移进行编码。在由一些视频编解码器实现的隐式加权预测中,加权因子和/或偏移不是编码的,而是例如基于参考图像的相对图像顺序计数(POC)距离而导出的。
在典型的视频编解码器中,首先用变换内核(如DCT)变换运动补偿之后的预测残差,然后对其进行编码。这样做的原因在于:在残差和变换之间通常仍存在一些相关性,在许多情况下,变换可以帮助降低这种相关性并提供更有效的编码。
典型的视频编码器利用拉格朗日(Lagrangian)成本函数来找到最佳编码模式,例如,期望的宏块模式和相关联的运动向量。这种成本函数使用加权因子λ将由有损编码方法引起的(精确的或估计的)图像失真与表示图像区域中的像素值所需的(精确的或估计的)信息量联系在一起:
C=D+λR (1)
其中,C是最小化的拉格朗日成本,D是考虑模式和运动向量的图像失真(例如,均方误差),R是表示在解码器中重新构建图像块所需数据所需的比特数(包括表示候选运动向量的数据量)。
视频编码标准和规范可以允许编码器将编码图像划分为编码切片等。通常在切片边界上禁用图像内预测。因此,切片可被视为将编码图像划分为可独立解码的部分的方式。在H.264/AVC和HEVC中,可以在切片边界上禁用图像内预测。因此,切片可以被视为将编码图像划分为可独立解码的部分的方式,因此切片通常被视为用于传输的基本单元。在许多情况下,编码器可以在比特流中指示在切片边界上关闭哪些类型的图像内预测,并且解码器操作例如在断定哪些预测源可用时考虑该信息。例如,如果相邻宏块或CU驻留在不同切片中,则可将来自相邻宏块或CU的样本视为不可用于帧内预测。
分别用于H.264/AVC或HEVC编码器的输出和H.264/AVC或HEVC解码器的输入的基本单元是网络抽象层(NAL)单元。为了通过面向分组的网络进行传输或者存储到结构化文件中,可以将NAL单元封装成分组或类似的结构。NAL单元可被定义为包含要遵循的数据类型的指示以及包含该数据的采用RBSP形式的字节的语法结构,如果需要,RBSP夹杂有起始码防止竞争字节。原始字节序列载荷(RBSP)可被定义为包含封装在NAL单元中的整数个字节的语法结构。RBSP要么为空,要么具有数据位串的形式,所述数据位包含语法元素,语法元素其后跟随RBSP停止位,停止位其后跟随零个或多个等于“0”的后续位。NAL单元由报头和有效载荷组成。
在HEVC中,双字节NAL单元报头用于所有特定的NAL单元类型。NAL单元报头包含一个保留位、六位NAL单元类型指示、用于时间级别的三位“nuh_temporal_id_plus1”指示(可被要求大于或等于“1”)以及六位“nuh_layer_id”语法元素。“temporal_id_plus1”语法元素可以被视为NAL单元的时间标识符,并且可以如下地导出基于“零”的“TemporalId”变量:TemporalId=temporal_id_plus1-1。等于0的“TemporalId”对应于最低时间级别。“temporal_id_plus1”的值必需是非“零”的,以避免涉及两个NAL单元报头字节的起始码仿效。通过排除具有大于或等于所选值的“TemporalId”的所有VCL NAL单元并且包括所有其它VCL NAL单元而创建的比特流保持一致性。因此,具有等于“TID”的“TemporalId”的图像不使用具有大于“TID”的“TemporalId”的任何图像作为帧间预测参考。子层或时间子层可被定义为时间可伸缩比特流的时间伸缩层,其由具有“TemporalId”变量的特定值的VCLNAL单元和相关联的非VCL NAL单元组成。“nuh_layer_id”可被理解为可伸缩性层标识符。
NAL单元可被归类为视频编码层(VCL)NAL单元和非VCL NAL单元。在H.264/AVC中,编码切片NAL单元包含表示一个或多个编码宏块的语法元素,每个编码宏块对应于未压缩图像中的样本块。在HEVC中,VCLNAL单元包含表示一个或多个CU的语法元素。
在HEVC中,可以将编码切片NAL单元指示为以下类型之一:
在HEVC中,图像类型的缩写可以定义如下:拖尾(TRAIL)图像、时间子层访问(TSA)、逐步时间子层访问(STSA)、随机访问可解码前导(RADL)图像、随机访问跳过前导(RASL)图像、断链访问(BLA)图像、瞬时解码刷新(IDR)图像、干净随机访问(CRA)图像。
随机访问点(RAP)图像(其也可被称为帧内随机访问点(IRAP)图像)是这样的图像:其中每个切片或切片片段具有16到23(包括16和23)范围内的“nal_unit_type”。独立层中的IRAP图像在其解码过程中不参考其自己以外的任何图像以用于帧间预测。当没有使用帧内块复制时,独立层中的IRAP图像只包含帧内编码的切片。属于具有“nuh_layer_id”值“currLayerId”的预测层的IRAP图像可以包含P、B和I切片,不能使用来自具有“nuh_layer_id”等于“currLayerId”的其它图像的帧间预测,而可以使用来自其直接参考层的层间预测。在当前版本的HEVC中,IRAP图像可以是BLA图像、CRA图像或IDR图像。包含基础层的比特流中的第一图像是基础层的IRAP图像。如果必要的参数集在需要激活时可用,则可以正确地解码解码顺序中的独立层的IRAP图像和独立层的所有后续非RASL图像,而无需执行解码顺序中的IRAP图像之前的任何图像的解码过程。当必要的参数集在需要激活时可用时以及当具有“nuh_layer_id”等于“currLayerId”的层的每个直接参考层的解码已被初始化时(即,当对于“refLayerId”,“LayerInitializedFlag[refLayerId]”等于“1”时,其中“refLayerId”等于具有“nuh_layer_id”等于“currLayerId”的层的直接参考层的所有“nuh_layer_id”值),解码顺序中属于具有“nuh_layer_id”值“currLayerId”的预测层的IRAP图像和“nuh_layer_id”等于“currLayerId”的所有后续非RASL图像可以正确地被解码,而不对解码顺序中的IRAP图像之前的“nuh_layer_id”等于“currLayerId”的任何图像执行解码过程。比特流中可能存在只包含非IRAP图像的帧内编码的切片的图像。
在HEVC中,CRA图像可以是解码顺序中的比特流中的第一图像,或者可以随后出现在比特流中。HEVC中的CRA图像允许所谓的前导图像按照解码顺序位于CRA图像之后,但在输出顺序中位于CRA图像之前。一些前导图像,即所谓的RASL图像,可以使用在CRA图像之前解码的图像作为参考。如果在CRA图像处执行随机访问,则解码和输出顺序中位于CRA图像后面的图像是可解码的,因此与IDR图像的干净随机访问功能类似地实现干净随机访问。
CRA图像可以具有关联的RADL或RASL图像。当CRA图像是解码顺序中的比特流中的第一图像时,CRA图像是解码顺序中的编码的视频序列的第一图像,并且任何相关联的RASL图像不由解码器输出并且可能不可解码,因为它们可能包含对比特流中不存在的图像的参考。
前导图像是在输出顺序中位于相关联的RAP图像之前的图像。相关联的RAP图像是解码顺序中的前一RAP图像(如果存在)。前导图像是RADL图像或RASL图像。
所有RASL图像是相关联的BLA或CRA图像的前导图像。当相关联的RAP图像是BLA图像或者是比特流中的第一编码图像时,RASL图像不被输出并且可能无法正确地被解码,因为RASL图像可能包含对比特流中不存在的图像的参考。然而,如果解码已经从RASL图像的相关联的RAP图像之前的RAP图像开始,则可以正确地解码RASL图像。RASL图像不用作非RASL图像的解码过程的参考图像。当存在时,所有RASL图像在解码顺序中位于同一相关联的RAP图像的所有拖尾图像之前。在HEVC标准的一些草案中,RASL图像被称为标记丢弃(TFD)图像。
所有RADL图像都是前导图像。RADL图像不用作用于同一相关联的RAP图像的拖尾图像的解码过程的参考图像。当存在时,所有RADL图像在解码顺序中位于同一相关联的RAP图像的所有拖尾图像之前。RADL图像不参考在解码顺序中位于相关联的RAP图像之前的任何图像,因此当解码从相关联的RAP图像开始时可以正确地被解码。
当从CRA图像开始的比特流的一部分包括在另一比特流中时,与CRA图像相关联的RASL图像可能无法正确地被解码,因为它们的一些参考图像可能不存在于组合比特流中。为了使这种拼接操作简单,可以改变CRA图像的NAL单元类型以指示它是BLA图像。与BLA图像相关联的RASL图像可能无法正确地被解码,因此不会被输出/显示。此外,可以从解码中省略与BLA图像相关联的RASL图像。
BLA图像可以是解码顺序中的比特流中的第一图像,或者可以随后出现在比特流中。每个BLA图像开始新的编码视频序列,并且对解码过程具有与IDR图像类似的效果。然而,BLA图像包含指定非空参考图集的语法元素。当BLA图像具有等于“BLA_W_LP”的“nal_unit_type”时,它可能具有相关联的RASL图像,该RASL图像不被解码器输出并且可能不可解码,因为它们可能包含对比特流中不存在的图的参考。当BLA图像具有等于“BLA_W_LP”的“nal_unit_type”时,它还可以具有被指定进行解码的相关联的RADL图像。当BLA图像具有等于“BLA_W_RADL”的“nal_unit_type”时,它不具有相关联的RASL图像,但是可以具有被指定进行解码的相关联的RADL图像。当BLA图像具有等于“BLA_N_LP”的“nal_unit_type”时,它不具有任何相关联的前导图像。
具有等于“IDR_N_LP”的“nal_unit_type”的IDR图像不具有存在于比特流中的相关联的前导图像。具有等于“IDR_W_LP”的“nal_unit_type”的IDR图像不具有存在于比特流中的相关联RASL图像,但是可以在比特流中具有相关联的RADL图像。
当“nal_unit_type”的值等于“TRAIL_N”、“TSA_N”、“STSA_N”、“RADL_N”、“RASL_N”、“RSV_VCL_N10”、“RSV_VCL_N12”或“RSV_VCL_N14”时,解码图像不用作相同时间子层的任何其它图像的参考。也即是说,在HEVC中,当“nal_unit_type”的值等于“TRAIL_N”、“TSA_N”、“STSA_N”、“RADL_N”、“RASL_N”、“RSV_VCL_N10”、“RSV_VCL_N12”或“RSV_VCL_N14”时,解码图像不包括在具有相同的“TemporalId”值的任何图像的“RefPicSetStCurrBefore”、“RefPicSetStCurrAfter”和“RefPicSetLtCurr”中的任一项中。可以丢弃具有等于“TRAIL_N”、“TSA_N”、“STSA_N”、“RADL_N”、“RASL_N”、“RSV_VCL_N10”、“RSV_VCL_N12”或“RSV_VCL_N14”的“nal_unit_type”的编码图像,而不影响具有相同的“TemporalId”值的其它图像的可解码性。
拖尾图像可被定义为在输出顺序中位于相关联的RAP图像之后的图像。任何作为拖尾图像的图像都没有等于“RADL_N”、“RADL_R”、“RASL_N”或“RASL_R”的“nal_unit_type”。作为前导图像的任何图像可被约束为在解码顺序中位于与同一RAP图像相关联的所有拖尾图像之前。在比特流中不存在与具有等于“BLA_W_RADL”或“BLA_N_LP”的“nal_unit_type”的BLA图像相关联的RASL图像。在比特流中不存在与具有等于“BLA_N_LP”的“nal_unit_type”的BLA图像相关联或者与具有等于“IDR_N_LP”的“nal_unit_type”的IDR图像相关联的RADL图像。与CRA或BLA图像相关联的任何RASL图像可被约束为在输出顺序中位于与CRA或BLA图像相关联的任何RADL图像之前。与CRA图像相关联的任何RASL图像可被约束为在输出顺序中位于在解码顺序中位于CRA图像之前的任何其它RAP图像之后。
在HEVC中存在两种图像类型:TSA和STSA图像类型,其可用于指示时间子层切换点。如果在TSA或STSA图像(不包括)以及TSA或STSA图像具有等于N+1的“TemporalId”之前已经解码具有最多为N的“TemporalId”的时间子层,则TSA或STSA图像能够解码具有等于N+1的“TemporalId”的所有后续图像(在解码顺序中)。TSA图像类型可以对TSA图像本身以及在解码顺序中位于TSA图像之后的同一子层中的所有图像施加限制。这些图像中的任何一个都不被允许根据在解码顺序中位于TSA图像之前的同一子层中的任何图像使用帧间预测。TSA定义可以进一步对在解码顺序中位于TSA图像之后的更高子层中的图像施加限制。如果该图像与TSA图像属于同一子层或属于比TSA图像更高的子层,则这些图像中的任何一个都不被允许参考在解码顺序中位于TSA图像之前的图像。TSA图像具有大于“0”的“TemporalId”。STSA类似于TSA图像,但是不对在解码顺序中位于STSA图像之后的较高子层中的图像施加限制,因此仅使能向上切换到STSA图像驻留的子层。
非VCL NAL单元例如可以是以下类型之一:序列参数集、图像参数集、补充增强信息(SEI)NAL单元、访问单元分隔符、序列NAL单元的终止、比特流NAL单元的终止、或填充器数据NAL单元。可能需要参数组来重新构建解码图像,而许多其它非VCL NAL单元对于解码样本值的重新构建不是必需的。
在编码视频序列中保持不变的参数可以包括在序列参数集中。除了解码过程可能需要的参数之外,序列参数集可以可选地包含视频可用性信息(VUI),其包括对于缓冲、图像输出定时、渲染和资源预留可能重要的参数。在HEVC中,序列参数集RBSP包括可由一个或多个图像参数集RBSP或包含缓冲周期SEI消息的一个或多个SEI NAL单元参考的参数。图像参数集包含在多个编码图像中可能未改变的这样的参数。图像参数集RBSP可以包括可以由一个或多个编码图像的编码切片NAL单元参考的参数。
在HEVC中,视频参数集(VPS)可被定义为包含应用于“零”个或更多个整个编码的视频序列的语法元素的语法结构,这些编码的视频序列由在SPS中找到的语法元素(该语法元素被在PPS中找到的语法元素参考,而后者被在每个切片片段报头中找到的语法元素参考)的内容确定。视频参数集RBSP可以包括可被一个或多个序列参数集RBSP参考的参数。
视频参数集(VPS)、序列参数集(SPS)和图像参数集(PPS)之间的关系和层次可以描述如下。VPS在参数集层次结构中以及可伸缩性和/或3D视频的上下文中位于SPS上面的一级。VPS可以包括整个编码视频序列中的所有(可伸缩性或视图)层上的所有切片的公共参数。SPS包括整个编码的视频序列中的特定(可伸缩性或视图)层中的所有切片的公共参数,并且可以由多个(可伸缩性或视图)层共享。PPS包括特定层表示中的所有切片的公共参数(一个访问单元中的一个可伸缩性或视图层的表示),并且可能由多个层表示中的所有切片共享。
VPS可以提供有关比特流中的层的依赖关系的信息,以及适用于整个编码视频序列中的所有(可伸缩性或视图)层上的所有切片的许多其它信息。VPS可以被认为包括两个部分:基础VPS和VPS扩展,其中VPS扩展可以可选地存在。在HEVC中,可以认为基础VPS包括video_parameter_set_rbsp()语法结构而不具有vps_extension()语法结构。video_parameter_set_rbsp()语法结构主要是针对HEVC版本1规定的,并且包括可用于基础层解码的语法元素。在HEVC中,可以认为VPS扩展包括vps_extension()语法结构。vps_extension()语法结构在HEVC版本2中规定,主要用于多层扩展,并且包括可用于解码一个或多个非基础层的语法元素,诸如指示层依赖关系的语法元素。
H.264/AVC和HEVC语法允许参数集的许多实例,并且每个实例用唯一标识符标识。为了限制参数集所需的内存使用,参数集标识符的值范围受到限制。在H.264/AVC和HEVC中,每个切片报头包括对于包含切片的图像的解码活动的图像参数集的标识符,并且每个图像参数集包含活动的序列参数集的标识符。因此,图像和序列参数集的传输不必与切片的传输精确地同步。相反,在参考活动的序列和图像参数集之前在任何时刻接收到它们就足够了,这允许使用比用于切片数据的协议更可靠的传输机制来“带外”传输参数集。例如,参数集可以作为参数包含在实时传输协议(RTP)会话的会话描述中。如果参数集是在带内发送的,则可以重传它们以改进错误稳健性。
带外传输、信令或存储可以附加地或替代地用于传输错误容忍之外的其它目的,诸如便利访问或会话协商。例如,符合ISOBMFF的文件中的轨道的样本条目可以包括参数集,而比特流中的编码数据存储在文件的其它地方或另一文件中。短语“沿着比特流”(例如,沿着比特流进行指示)可在权利要求和所描述的实施例中用于是指采用带外数据与比特流相关联的方式的带外传输、信令或存储。短语“沿着比特流进行解码”等可以是指对与比特流相关联的所涉及的带外数据(其可以从带外传输、信令或存储中获得)进行解码。编码图像是图像的编码表示。
在HEVC中,编码图像可被定义为包含图像的所有编码树单元的图像的编码表示。在HEVC中,访问单元(AU)可被定义为一组NAL单元,这些单元根据特定的分类规则彼此相关联,在解码顺序中是连续的,并且至多包含一个具有任何特定的“nuh_layer_id”的图像。除了包含编码图像的VCL NAL单元以外,访问单元还可以包含非VCL NAL单元。
可能需要编码图像以特定顺序出现在访问单元内。例如,可能需要具有等于“nuhLayerIdA”的“nuh_layer_id”的编码图像在解码顺序中位于同一访问单元中的具有大于“nuhLayerIdA”的“nuh_layer_id”的所有编码图像之前。AU通常包含表示相同输出时间和/或捕获时间的所有编码图像。
比特流可被定义为NAL单元流或字节流形式的比特序列,其形成编码图像和形成一个或多个编码视频序列的相关数据的表示。第一比特流之后可以是相同逻辑信道中的第二比特流,诸如在相同文件中或在通信协议的相同连接中。基本流(在视频编码的上下文中)可被定义为一个或多个比特流的序列。第一比特流的终止可以由特定NAL单元指示,该NAL单元可以被称为比特流终止(EOB)NAL单元并且是比特流的最后一个NAL单元。在HEVC及其当前的草案扩展中,EOB NAL单元被要求使“nuh_layer_id”等于“0”。
在H.264/AVC和HEVC中已经针对不提供成帧结构的传输或存储环境规定了字节流格式。字节流格式通过在每个NAL单元前面附加起始码将NAL单元彼此分开。为了避免错误检测NAL单元边界,编码器运行面向字节的起始码仿效阻止算法,如果起始码在其它情况下出现,则向NAL单元有效载荷添加仿效阻止字节。例如,为了在面向分组与流的***之间支持直接的网关操作,无论是否使用字节流格式,都可以始终执行起始码仿效阻止。字节流格式的位顺序可以规定为从第一字节的最高有效位(MSB)开始,继续到第一字节的最低有效位(LSB),然后继续到第二字节的MSB,以此类推。可以认为字节流格式由字节流NAL单元语法结构序列组成。每个字节流NAL单元语法结构可以被认为包含一个起始码前缀,后跟一个NAL单元语法结构,即,如果参考语法元素名称,则后跟“nal_unit”(“NumBytesInNalUnit”)语法结构。字节流NAL单元还可以包含附加的“zero_byte”语法元素。它还可以包含一个或多个附加的“trailing_zero_8bits”语法元素。当字节流NAL单元是比特流中的第一字节流NAL单元时,它还可以包含一个或多个附加的“leading_zero_8bits”语法元素。字节流NAL单元的语法可以规定如下:
可能需要字节流中的字节流NAL单元的顺序遵循包含在字节流NAL单元中的NAL单元的解码顺序。语法元素的语义可以如下规定。“leading_zero_8bits”是等于0x00的字节。“leading_zero_8bits”语法元素只能出现在比特流的第一字节流NAL单元中,因为位于NAL单元语法结构之后且位于四字节序列0x00000001之前(将被解释为后跟“start_code_prefix_one_3bytes”的“zero_byte”)的任何等于0x00的字节将被认为是“trailing_zero_8bits”语法元素,该语法元素是前一字节流NAL单元的一部分。“zero_byte”是等于0x00的单个字节。“start_code_prefix_one_3bytes”是等于0x000001的3字节固定值序列。该语法元素可以被称为起始码前缀(或简称为起始码)。“trailing_zero_8bits”是等于0x00的字节。
NAL单元可被定义为包含要遵循的数据类型的指示,以及包含RBSP形式的数据(其根据需要内插有仿效阻止字节)的字节的语法结构。原始字节序列有效载荷(RBSP)可被定义为包含封装在NAL单元中的整数个字节的语法结构。RBSP是空的或具有数据位串的形式,该数据位串包含语法元素,其后是RBSP停止位,随后是“零”个或更多个等于“0”的后续位。
NAL单元由报头和有效载荷组成。在H.264/AVC和HEVC中,NAL单元报头指示NAL单元的类型。
接下来提供“nal_unit”(“NumBytesInNalUnit”)语法结构的HEVC语法作为NAL单元的语法的示例。
在HEVC中,编码的视频序列(CVS)例如可被定义为一系列访问单元,这些访问单元按解码顺序包括“NoRaslOutputFlag”等于“1”的IRAP访问单元,随后是“零”个或多个访问单元,这些访问单元不是IRR访问单元并且“NoRaslOutputFlag”等于“1”,其中包括到“NoRaslOutputFlag”等于“1”的IRAP访问单元之前的所有后续访问单元,但不包括作为“NoRaslOutputFlag”等于“1”的IRAP访问单元的任何后续访问单元。IRAP访问单元可被定义为其中基础层图像是IRAP图像的访问单元。对于每个IDR图像、每个BLA图像以及每个IRAP图像,“NoRaslOutputFlag”的值等于“1”,其中IRAP图像是解码顺序中的比特流中的该特定层中的第一图像,是在解码顺序中具有相同的“nuh_layer_id”值的NAL单元序列的终止之后的第一IRAP图像。在多层HEVC中,当每个IRAP图像的“nuh_layer_id”使得“LayerInitializedFlag[nuh_layer_id]”等于“0”,并且使得“LayerInitializedFlag[refLayerId]”对于等于“IdDirectRefLayer[nuh_layer_id][j]”的“refLayerId”的所有值等于“1”时,对于每个IRAP图像“NoRaslOutputFlag”的值等于“1”,其中j在范围0到NumDirectRefLayers[nuh_layer_id]?1内,包括0和NumDirectRefLayers[nuh_layer_id]?1。否则,“NoRaslOutputFlag”的值等于“HandleCraAsBlaFlag”。“NoRaslOutputFlag”等于“1”具有以下影响:解码器不输出与被设置“NoRaslOutputFlag”的IRAP图像相关联的RASL图像。可存在从诸如播放器或接收器的能够控制解码器的外部实体向该解码器提供“HandleCraAsBlaFlag”的值的装置。HandleCraAsBlaFlag”可以被例如寻求比特流中的新位置或调谐到广播并开始解码,然后从CRA图像开始解码的播放器设置为“1”。当“HandleCraAsBlaFlag”对于CRA图像等于“1”时,CRA图像就像BLA图像一样地被处理和解码。
在HEVC中,当特定NAL单元(可以被称为序列终止(EOS)NAL单元)出现在比特流中并且“nuh_layer_id”等于“0”时,可以附加地或替代地(对于上面的说明)规定终止编码视频序列。
图像组(GOP)及其特性可被定义如下。无论是否解码任何先前的图像,都可以解码GOP。开放GOP是这样一个图像组:其中当从开放GOP的初始帧内图像开始解码时,在输出顺序中位于初始帧内图像之前的图像可能无法被正确地解码。换句话说,开放GOP的图像可能(在帧间预测中)参考属于前一GOP的图像。HEVC解码器可以识别开始开放GOP的帧内图像,因为特定NAL单元类型(CRA NAL单元类型)可用于其编码切片。封闭GOP是这样一个图像组:其中当从封闭GOP的初始帧内图像开始解码时,可以正确地解码所有图像。换句话说,封闭GOP中的图像不参考前一GOP中的任何图像。在H.264/AVC和HEVC中,封闭GOP可从IDR图像开始。在HEVC中,封闭GOP也可从“BLA_W_RADL”或“BLA_N_LP”图像开始。与封闭GOP编码结构相比,开放GOP编码结构在压缩方面可能更有效,这是由于参考图像的选择具有更大的灵活性。
图像结构(SOP)可被定义为在解码顺序中连续的一个或多个编码图像,其中解码顺序中的第一编码图像是最低时间子层处的参考图像,并且可能除了解码顺序中的第一编码图像以外,没有任何编码图像是RAP图像。前一SOP中的所有图像在解码顺序中位于当前SOP中的所有图像之前,并且下一SOP中的所有图像在解码顺序中位于当前SOP中的所有图像之后。SOP可以表示分层和重复的帧间预测结构。术语“图像组(GOP)”有时可以与术语“SOP”互换地使用并且具有与SOP相同的语义。
H.264/AVC和HEVC的比特流语法指示特定图像是否用于任何其它图像的帧间预测的参考图像。具有任何编码类型(I、P、B)的图像在H.264/AVC和HEVC中可以是参考图像或非参考图像。
在HEVC中,使用参考图像集(RPS)语法结构和解码过程。对图像有效或活动的参考图像集包括用作图像的参考的所有参考图像,以及对于解码顺序中的任何后续图像保持标记为“用于参考”的所有参考图像。参考图像集有六个子集,分别被称为“RefPicSetStCurr0”(又称为“RefPicSetStCurrBefore”)、“RefPicSetStCurr1”(又称为“RefPicSetStCurrAfter”)、“RefPicSetStFoll0”、“RefPicSetStFoll1”、“RefPicSetLtCurr”以及“RefPicSetLtFoll”。“RefPicSetStFoll0”和“RefPicSetStFoll1”也可以被视为共同形成一个子集“RefPicSetStFoll”。六个子集的注释如下。“Curr”是指包括在当前图像的参考图像列表中的参考图像,因此可以用作当前图像的帧间预测参考。“Foll”是指未包括在当前图像的参考图像列表中,但是可以在解码顺序中的后续图像中用作参考图像的参考图像。“St”是指短期参考图像,其通常可以通过其POC值的一定数量的最低有效位来识别。“Lt”是指长期参考图像,其被具体地识别,并且通常其相对于当前图像的POC值的差大于可以由所提到的特定数量的最低有效位表示的差。“0”是指POC值小于当前图像的POC值的那些参考图像。“1”是指POC值大于当前图像的POC值的那些参考图像。“RefPicSetStCurr0”、“RefPicSetStCurr1”、“RefPicSetStFoll0”和“RefPicSetStFoll1”统称为参考图像集的短期子集。“RefPicSetLtCurr”和“RefPicSetLtFoll”统称为参考图像集的长期子集。
在HEVC中,可以在序列参数集中规定参考图像集,并且考虑通过参考图像集的索引在切片报头中使用参考图像集。还可以在切片报头中规定参考图像集。参考图像集可以独立编码,或者可以根据另一参考图像集(被称为帧间RPS预测)预测。在这两种类型的参考图像集编码中,另外针对每个参考图像发送标志(“used_by_curr_pic_X_flag”),该标志指示参考图像被当前图像参考(包括在*Curr列表中)还是不被当前图像参考(包括在*Foll中列表中)。包括在由当前切片使用的参考图像集中的图像被标记为“用于参考”,并且不在由当前切片使用的参考图像集中的图像被标记为“未用于参考”。如果当前图像是IDR图像,则“RefPicSetStCurr0”、“RefPicSetStCurr1”、“RefPicSetStFoll0”、“RefPicSetStFoll1”、“RefPicSetLtCurr”和“RefPicSetLtFoll”都被设置为空。
可以在编码器和/或解码器中使用解码图像缓冲器(DPB)。缓冲解码图像有两个原因:用于帧间预测中的参考以及用于将解码图像重新排序成输出顺序。由于H.264/AVC和HEVC为参考图像标记和输出重新排序提供了很大的灵活性,因此用于参考图像缓冲和输出图像缓冲的单独的缓冲器可能浪费存储器资源。因此,DPB可以包括用于参考图像和输出重新排序的统一解码图像缓冲过程。当解码图像不再用作参考并且不需要输出时,可以从DPB移除解码图像。
在H.264/AVC和HEVC的许多编码模式中,用于帧间预测的参考图像由参考图像列表的索引来指示。该索引可以用可变长度编码来编码,这通常使得较小的索引针对对应的语法元素具有较短的值。在H.264/AVC和HEVC中,针对每个双向预测(B)切片生成两个参考图像列表(参考图像列表0和参考图像列表1),并且针对每个帧间编码(P)切片形成一个参考图像列表(参考图像列表0)。
参考图像列表(诸如参考图像列表0和参考图像列表1)通常经由两个步骤构建:首先,生成初始参考图像列表。初始参考图像列表例如可以基于“frame_num”、POC、“temporal_id”(或“TemporalId”等)或有关预测层次结构(诸如GOP结构)的信息或其任何组合来生成。接着,可以通过包含在切片报头中的参考图像列表重新排序(RPLR)命令(也被称为参考图像列表修改语法结构)对初始参考图像列表进行重新排序。如果使用参考图像集,则可以初始化参考图像列表0以首先包含“RefPicSetStCurr0”,然后包含“RefPicSetStCurr1”,接着包含“RefPicSetLtCurr”。可以初始化参考图像列表1以首先包含“RefPicSetStCurr1”,然后包含“RefPicSetStCurr0”。在HEVC中,可以通过参考图像列表修改语法结构来修改初始参考图像列表,其中可以通过列表的条目索引来识别初始参考图像列表中的图像。换句话说,在HEVC中,参考图像列表修改被编码为以下语法结构:该语法结构包括最终参考图像列表中的每个条目上的循环,其中每个循环条目是初始参考图像列表的固定长度编码索引并且指示最终参考图像列表中的以升序排列的图像。
包括H.264/AVC和HEVC在内的许多编码标准可以具有解码过程以派生参考图像列表的参考图像索引,该索引可用于指示多个参考图像中的哪一个用于特定块的帧间预测。在一些帧间编码模式中,参考图像索引可以由编码器编码到比特流中,在另一些帧间编码模式中,例如可以使用相邻块来导出(例如,通过编码器和解码器)该参考图像索引。
为了在比特流中有效地表示运动向量,可以相对于块特定的预测运动向量差分地编码运动向量。在许多视频编解码器中,预测的运动向量以预定方式创建,例如通过计算相邻块的编码或解码运动向量的中值。创建运动向量预测的另一方式(有时被称为高级运动向量预测(AMVP))是根据时间参考图像中的相邻块和/或共同定位的块生成候选预测的列表,并且传送所选择的候选者作为运动向量预测器。除了预测运动向量值以外,还可以预测先前编码/解码的图像的参考索引。通常根据时间参考图像中的相邻块和/或共同定位的块来预测参考索引。通常禁止切片边界上的运动向量差分编码。
解码图像的宽度和高度可以具有某些约束,例如以使得宽度和高度是(最小)编码单元大小的倍数。例如,HEVC,解码图像的宽度和高度是8个亮度样本的倍数。如果编码图像具有不满足这些约束的范围,则仍然可以用符合约束的图像大小来执行(解)编码,但是可以通过裁剪不必要的样本行和列来执行输出。在HEVC中,这种裁剪可以由编码器使用所谓的一致性裁剪窗口特征来控制。在SPS中(由编码器)规定一致性裁剪窗口,并且当输出图像时,要求解码器根据一致性裁剪窗口来裁剪解码图像。
可伸缩视频编码可以指示这样的编码结构:其中一个比特流可以包含内容的多个表示,例如,以不同的比特率、分辨率或帧速率。在这些情况下,接收器可以根据其特性(例如,最匹配显示设备的分辨率)提取所需的表示。可替代地,服务器或网络单元可以根据例如接收器的网络特性或处理能力提取要发送到接收器的比特流的部分。可以通过仅解码可伸缩比特流的某些部分来产生有意义的解码表示。可伸缩比特流通常包括“基础层”,其提供可用的最低质量视频,以及一个或多个增强层,这些增强层在与较低层一起接收和解码时增强视频质量。为了提高增强层的编码效率,该层的编码表示通常取决于较低层。例如。可以根据较低层预测增强层的运动和模式信息。类似地,较低层的像素数据可用于创建增强层的预测。
在一些可伸缩视频编码方案中,视频信号可被编码到基础层以及一个或多个增强层中。增强层例如可以增强时间分辨率(即,帧速率)、空间分辨率,或仅增强由另一层或其一部分表示的视频内容的质量。每个层连同其所有相关层是视频信号的一个表示,例如,以特定空间分辨率,时间分辨率和质量层级进行表示。在本文中,我们将伸缩层及其所有相关层称为“伸缩层表示”。可以提取和解码对应于伸缩层表示的可伸缩比特流的部分,以便以特定保真度产生原始信号的表示。
可伸缩性模式或可伸缩性维度可包括但不限于以下内容:
-质量可伸缩性:基础层图像以低于增强层图像的质量被编码,这例如可以在基础层中使用比在增强层中更大量化参数值(即,用于变换系数量化的更大量化步长)来实现。
-空间可伸缩性:基础层图像以低于增强层图像的分辨率(即,具有更少的样本)被编码。空间可伸缩性和质量可伸缩性,特别是其粗粒度可伸缩性类型,有时可被视为相同类型的可伸缩性。
-位深可伸缩性:基础层图像以低于增强层图像的位深(例如,10或12比特)的位深(例如,8比特)被编码。
-动态范围可伸缩性:伸缩层表示使用不同色调映射函数和/或不同光学传递函数获得的不同动态范围和/或图像。
-色度格式可伸缩性:基础层图像在色度样本阵列(例如,以4:2:0色度格式编码)中提供的空间分辨率低于在增强层图像(例如,以4:4:4格式)中提供的空间分辨率。
-色域可扩展性:增强层图像具有比基础层图像更丰富/更宽的颜色表示范围——例如,增强层可以具有UHDTV(ITU-R BT.2020)色域,基础层可以具有ITU-R BT.709色域。
-查看可伸缩性,也可被称为多视图编码。基础层表示第一视图,而增强层表示第二视图。
-深度可伸缩性,其也可被称为深度增强编码。比特流的一个层或一些层可以表示纹理视图,而其它一个或多个层可以表示深度视图。
-感兴趣区域可扩展性(如下所述)。
-隔行到逐行(interlaced-to-progressive)可伸缩性(也被称为场到帧(field-to-frame)可伸缩性):基础层的编码的隔行源内容材料通过增强层增强以表示逐行源内容。
-混合编解码器可伸缩性(也被称为编码标准可伸缩性):在混合编解码器可伸缩性中,基础层和增强层的比特流语法、语义和解码过程在不同的视频编码标准中规定。因此,基础层图像根据与增强层图像不同的编码标准或格式来编码。例如,基础层可以用H.264/AVC编码,增强层可以用HEVC多层扩展编码。
应当理解,许多可伸缩性类型可以组合并一起应用。例如,可以组合色域可伸缩性和位深可伸缩性。
术语层可以在任何类型的可伸缩性的上下文中使用,包括视图可伸缩性和深度增强。增强层可以指示任何类型的增强,诸如SNR、空间、多视图、深度、位深、色度格式和/或色域增强。基础层可以指示任何类型的基础视频序列,诸如基础视图、SNR/空间可伸缩性的基础层,或深度增强视频编码的纹理基础视图。
目前正在研究和开发用于提供三维(3D)视频内容的各种技术。可以认为在立体视频或双视图视频中,为左眼呈现一个视频序列或视图,而为右眼呈现平行的视图。对于能够进行视点切换的应用或对于同时呈现大量视图并且让观看者从不同视点观看内容的自动立体显示器,可能需要两个以上的平行视图。
视图可被定义为表示一个相机或视点的图像序列。表示视图的图像也可以称作视图分量。换句话说,视图分量可被定义为单个访问单元中的视图的编码表示。在多视图视频编码中,多于一个的视图在比特流中进行编码。由于视图通常旨在被显示在立体或多视图自动立体显示器上或者被用于其它3D布置,因此它们通常表示相同的场景,并且它们在内容方面部分重叠,尽管表示对内容的不同视点。因此,可以在多视图视频编码中使用视图间预测以利用视图间相关性并提高压缩效率。实现视图间预测的一种方式是将一个或多个其它视图的一个或多个解码图像包括在驻留在第一视图内的被编码或解码的图的参考图像列表中。视图可伸缩性可以指这种多视图视频编码或多视图视频比特流,其使得能够移除或省略一个或多个编码视图,而所得到的比特流保持一致性并且表示具有比原始更少的视图数量的视频。感兴趣区域(ROI)编码可被定义为是指以更高保真度对视频内的特定区域进行编码。
ROI可伸缩性可被定义为这样一种可伸缩性:其中增强层仅增强参考层图像的一部分,例如,在空间上、在质量方面、在位深方面和/或沿着其它可伸缩性维度增强。由于ROI可伸缩性可以与其它类型的可伸缩性一起使用,因此可以考虑形成可伸缩性类型的不同分类。对于具有不同要求的ROI编码存在若干不同的应用,这可以通过使用ROI可伸缩性来实现。例如,可以发送增强层以增强基础层中的区域的质量和/或分辨率。接收增强和基础层比特流的解码器可以同时解码这两个层并将解码图叠加在彼此之上并显示最终图像。
用于获得在立体视频方面的压缩改进的一个研究分支被称为非对称立体视频编码。非对称立体视频编码基于这样的理论:人类视觉***(HVS)融合立体图像对,以使得感知质量接近于更高质量视图的感知质量。因此,通过提供在两个编码视图之间的质量差异来获得压缩改进。在混合分辨率(MR)立体视频编码(也称为分辨率-非对称立体视频编码)中,视图中的一个与其它视图相比,具有更低的空间分辨率和/或已被低通滤波。
在信号处理中,图像重采样通常被理解为在水平或/和垂直方向上改变当前图像的采样率。重采样产生新图像,该图像在水平或/和垂直方向上通过不同数量的像素来表示。在某些应用中,图像重采样的过程等同于图像大小调整。通常,重采样被分为两个过程:下采样和上采样。
下采样或二次采样过程可被定义为降低信号的采样率,并且它通常导致在水平和/或垂直方向上的图像大小的减小。在图像下采样中,与输入图像的空间分辨率相比,输出图像的空间分辨率(即输出图像中的像素数量)降低。下采样率可被定义为下采样图像的水平或垂直分辨率除以用于下采样的输入图像的相应分辨率。下采样率可替代地可被定义为下采样图像中的样本数量除以用于下采样的输入图像中的样本数量。由于这两个定义不同,因此,术语“下采样率”可以进一步通过指示它是沿一个坐标轴还是两个坐标轴来指示(并且因此作为图像中的像素数量的比率)而进行表征。图像下采样例如可以通过抽取(decimation)来执行,即通过基于下采样率,在原始图像中的像素总数中选择特定数量的像素来执行。在一些实施例中,下采样可以包括低通滤波或其它滤波操作,其可以在图像抽取之前或之后执行。可以使用任何低通滤波方法,包括但不限于线性平均。
上采样过程可被定义为增加信号的采样率,并且它通常导致在水平和/或垂直方向上的图像大小的增加。在图像上采样中,与输入图像的空间分辨率相比,输出图像的空间分辨率(即输出图像中的像素数量)增加。上采样率可被定义为上采样图像的水平或垂直分辨率除以输入图像的相应分辨率。上采样率可替代地可被定义为上采样图像中的样本数量除以输入图像中的样本数量。由于这两个定义不同,术语“上采样率”可以进一步通过指示它是沿一个坐标轴还是两个坐标轴来指示(并且因此作为图像中的像素数量的比率)而进行表征。可以例如通过复制或内插像素值来执行图像上采样,以使得像素的总数增加。在一些实施例中,上采样可以包括滤波操作,诸如边缘增强滤波。
帧打包可被定义为包括将多于一个的输入图像(可被称为(输入)组成帧(constituent frame))排列成输出图像。通常,帧打包不限于任何特定类型的组成帧,或者组成帧不需要彼此具有特定关系。在许多情况下,帧打包用于将立体视频剪辑的组成帧排列成单个图像序列,如在下一段中更详细地说明的。排列可以包括将输入图像放置在输出图像内的空间非重叠区域中。例如,在并排(side-by-side)布置中,两个输入图像被彼此水平相邻地放置在输出图像内。该布置还可以包括将一个或多个输入图像分割成两个或更多个组成帧分割,以及将组成帧分割放置在输出图像内的空间非重叠区域中。输出图像或帧打包的输出图像的序列可以例如通过视频编码器被编码成比特流。比特流可以例如通过视频解码器进行解码。解码之后,解码器或后处理操作可以从解码图像中提取解码的组成帧,例如以用于显示。
在帧兼容立体视频(也被称为立体视频的帧打包)中,在编码器侧执行将立体对空间打包成单个帧,作为用于编码的预处理步骤,然后使用传统的2D视频编码方案对已帧打包的帧进行编码。由解码器产生的输出帧包含立体对的组成帧。
在典型的操作模式中,每个视图的原始帧和打包的单个帧的空间分辨率具有相同的分辨率。在这种情况下,编码器在打包操作之前对立体视频的两个视图进行下采样。空间打包例如可以使用并排或上下(top-bottom)格式,并且应当相应地执行下采样。
例如,由于以下原因,帧打包可优于多视图视频编码(例如,H.264/AVC的MVC扩展或H.265/HEVC的MV-HEVC扩展):
后期制作工作流程可针对单个视频信号进行定制。一些后期制作工具可能无法处理两个单独的图像序列和/或可能无法使单独的图像序列保持彼此同步。
分发***,例如传输协议,可能仅支持单个编码序列和/或可能无法使单独的编码序列彼此同步和/或可能需要更多缓冲或延迟来使单独的编码序列保持彼此同步。
利用多视图视频编码工具对比特流进行解码可能需要支持播放器中不可用的特定的编码模式。例如,许多智能电话支持H.265/HEVC主配置文件解码,但无法处理H.265/HEVC多视图主配置文件解码,即使它与主配置文件相比只需要高级添加。
例如,由于以下原因,帧打包在压缩性能(也称为速率失真性能)方面可能不如多视图视频编码。在帧打包中,在视图之间不支持视图间样本预测和视图间运动预测。此外,在帧打包中,可以次优地处理指向组成帧的边界以外(到另一个组成帧)或者导致使用组成帧的边界以外(在另一个组成帧内)的样本的子像素内插的运动向量。在传统的多视图视频编码中,在帧间预测和子像素内插中使用的样本位置可被充满到图像边界内,或者可等效地用边界样本值来填补重建图像中的图像边界以外的区域。
360度全景视频的捕获过程可以包括相机旋转。与先前的图像相比,这种相机旋转引起每个图像中的对象的位置和比例的变化,因此可能使压缩中的运动补偿效率低下。
当用手持式相机拍摄内容时,可能由抖动和其它小移动而引起少量旋转。例如,可以在360度视频中使用有意(intentional)旋转,以将移动的感兴趣区域(ROI)保持在观看的中心点(例如,在等矩形全景图像的中间)。在占据小于360度视场的内容中,可以类似地使用旋转以保持在图像区域内移动感兴趣区域。相机旋转可以是虚拟的,即,指导者可以在后期制作阶段选择旋转。
图3a-3c示出了等矩形全景图像的矩形网格241以及对应的所得到的相机旋转效果。在该示例中,相机旋转沿x、y和z轴在图3b中是1度,在图3c中是5度。未处理的参考帧具有规则网格,如图3a中所示。如果相机在当前帧中相对于参考帧旋转(例如,1度或5度),则应相应地旋转未处理的参考帧,例如,这得到图3b和图3c中所示的处理的参考帧中的一个。
这些示例表明当发生相机旋转时,基于块的平移运动补偿可能会失败。这些示例表明即使例如由手持式相机的无意移动而引起的少量旋转,也可能会导致图像严重变形(transformation)。换句话说,如果将要进行运动预测的帧(当前帧)和参考帧不具有相同的捕获位置,例如,由于相机在当前帧与参考帧的捕获时刻之间的移动,则当前帧中的像素和未处理的参考帧中的同位像素未必表示所捕获场景中的相同位置。因此,如果在确定运动向量候选之前在参考帧与当前帧之间没有进行变形(deformation),则运动向量可能指向参考帧中的不正确位置。
相机方向可以表征相机设备或相机装备相对于坐标系的定向。相机方向例如可以由旋转角度来指示,例如有时被称为关于正交坐标轴的偏航、俯仰和翻滚。
如图3d中所示,通过指示参考图像的每个角的位移,可以使用H.263附录P的可选参考图像重采样来重采样时间参考图像。双线性内插用于导出重采样样本值。这种编码模式可用于补偿全局运动。然而,H.263附录P所支持的翘曲(warping)可能无法对由相机旋转引起的360度视频中的变形进行建模。
弹性运动模型使用2D离散余弦基函数来表示运动场。可以通过对解码帧应用弹性运动模型来生成参考帧。然后,以常规方式使用所生成的参考帧作为用于预测的参考。类似的方法可以与其它复杂的运动模型一起使用,例如,仿射运动模型。
虽然复杂的运动模型比H.263附件P的方法更能够再现不同类型的几何变形,但是它们可能无法捕获由相机旋转而引起的针对360度视频的精确变形。
在下文中,根据实施例,将参考图6来解释基于将要针对360度视频编码而编码的帧的相机方向来控制/重采样参考帧的示例。解码图像611(或等效地,在编码器中的重建图像)被后向投影612到球体上。可替代地,后向投影可被称为映射或投影。后向投影可以包括作为中间步骤的向第一投影结构上进行投影。例如,如果解码图像611是等矩形全景图像,则可以首先将解码图像映射到圆柱体上,并从该圆柱体映射到球体上。在捕获到解码图像时,可以基于相机方向,选择第一投影结构613的定向,或者可替代地,第一投影结构可以具有默认定向。球形图像例如可以由一组样本来表示,每个样本具有诸如偏航和俯仰的球面坐标,以及样本值。在示例中,偏航值和俯仰值分别与解码的等矩形全景图像中的样本的x和y坐标成正比。
然后,将球形图像映射614到第二投影结构615上。如果在捕获到解码图像时第一投影结构613具有根据相机方向的定向,则第二投影结构可以具有与被编码或解码的图像的相机方向匹配的定向。如果第一投影结构具有默认定向,则第二投影结构可以具有与被编码或解码的当前图像与解码图像的相机方向的差异匹配的定向。相机方向可以直接从相机获取(例如,使用内置或附接到相机的陀螺仪和/或加速度计),或者可以基于参考帧来估计,或者它可以从比特流中获取或者关于相机方向的信息可能已经附带在帧上。
当使用等矩形全景格式时,投影结构是圆柱体。然而,本发明不限于等矩形投影或使用圆柱体作为投影结构。例如,可以替代地使用立方体图投影并且使用立方体作为投影结构。
然后,展开616第二投影结构615以形成二维图像617,可以使用二维图像617作为被编码或解码的图像的参考图像。可以将投影的参考图像临时存储到存储器中,以使得运动预测可以使用投影的参考图像。还可以将未修改的参考图像存储到帧存储器中,例如只要该参考图像将被用作参考即可。应当注意,当同一参考图像被用作将要被编码/解码的多于一个的图像的参考时,如果在图像已经被捕获到时它们具有不同的相机位置,则可能需要对将要被编码/解码的不同图像进行不同的投影。
可以将两个或更多个上述阶段合并为单个过程。例如,可以省略球形图像的形成,并且可以应用直接到旋转的投影结构的后向投影。
可能没有必要发送用于每个图像的映射的几何形状的信息,但是对于每个比特流或编码视频序列或其中几何形状保持不变的一些其它实体,发送一次几何形状的信息可能就足够了,或者可以使用编码器和解码器已知的固定格式,其中,可以根本不发送几何形状的信息。
根据实施例,可以针对每个图像发送旋转信息,以使得旋转信息指示图像与参考旋转(例如,在x、y和z方向中的每个方向上0度)的(绝对)旋转。参考图像的旋转与当前图像的旋转之间的差例如可以通过以特定顺序减去相应的旋转角度或者通过执行第一角度的反向投影来获得,随后进行第二角度的(正向)投影。
现在将参考图5a的简化框图和图10a的流程图来描述根据示例性实施例的视频编码方法。图5a的元件例如可以由图4a的编码器的第一编码器部分500实现,或者它们可以与第一编码器部分500分开。
首先将未压缩图像221(U0)编码222为帧内编码图像。可以使用常规的帧内图像编码过程。然后,将重建图像223存储224在解码图像缓冲器(DPB)中以用作帧间预测中的参考。
为了编码帧间帧225(未压缩图像Un,n>0,其中,n指示图像的(解)编码顺序),检查将要编码的当前帧和一个或多个参考帧的旋转信息(图10a中的框1002),以查找出当前帧与一个或多个参考帧的旋转是否存在差异。如果是,则如先前所描述的,基于相机旋转参数,对一个或多个参考帧进行旋转227和重采样1003,以形成控制的参考图像(帧)228,以使得控制的参考图像228的旋转对应于当前帧225的旋转。控制的参考图像228可被存储1004到存储器以用于帧间图像编码过程229。在编码期间或在编码之前的预处理步骤中,针对每个图像的相机旋转参数可以直接从相机获取或者可以根据先前的图像来估计(图5a中的框226)。然后,使用旋转的参考帧对当前帧进行编码229、1005。原始参考帧可以另外用在当前帧的编码229中。编码过程还可以执行解码1006以形成当前图像的重建图像,并且可被用作用于某些后续图像的参考图像。重建图像230(Rn,n>0)可被存储1007在解码图像缓冲器224(DPB)中。
通过将针对每个图像的相机旋转信息(例如,偏航、俯仰和翻滚)编码到比特流231中,可以将它们发送到解码器。
可以参考图5b的简化框图和图10b的流程图来描述根据本发明的视频解码方法。图5b的元件例如可以在图4b的解码器的第一解码器部分552中实现,或者它们可以与第一解码器部分552分开。
作为输入,获得1020包括编码图像的比特流231。当编码图像是帧内编码图像时,可以使用帧内图像解码过程232,从而产生重建图像233,其被存储在解码图像缓冲器234中。
当编码图像是帧间编码图像时,解码器可以对当前的解码图像的参考图像应用参考图像旋转/重采样操作235。为此,例如可以从比特流231或一些其它适当的源获得1021当前图像和参考帧的旋转信息。参考图像旋转/重采样操作235可以检查1022当前帧和参考帧的旋转信息,以查找出当前帧与参考帧的旋转是否存在差异。如果是,则参考帧被旋转和重采样1023以形成控制的参考图像(帧)236,以使得控制的参考图像236的旋转对应于当前帧的旋转。控制的参考图像236可被存储1024到存储器以用于图像间解码过程。
可以使用帧间图像解码过程237、1025,其中,作为或可用作用于预测的参考的至少一个参考图像是图像R0。解码可以产生重建图像238(Rn),其可被包括1026在解码图像缓冲器234中。
参考图8a示出了用于使用循环外方法进行编码的另一个实施例。输入811图像以用于编码,并且在形成投影帧814的拼接和投影步骤813中预先补偿相机方向812的变化。换句话说,无论相机方向如何,坐标系的定向和/或在拼接中使用的投影结构都在视频序列中保持不变。然后,可以将投影帧引入到区域式映射815以形成打包帧816。然后,可以对打包帧进行编码817并将其包括818在比特流819中。
相机方向可在比特流复用阶段818被包括在编码比特流中。比特流复用818可被视为编码的一部分或者可被视为单独的阶段。
参考图8b示出了用于编码的另一个实施例。在该实施例中,过程的输入821是投影帧的序列。对投影帧应用旋转补偿820,从而产生投影帧814(来自与最初在拼接和投影中使用的那些不同定向的投影结构)。例如,旋转补偿820可以采用与在上面结合图6所解释的相同方式来实现。否则,该实施例类似于在上面解释的图8a的实施例。
根据又一个实施例,可以如下假定固定旋转角度(例如,0度)。例如,存在若干所捕获的帧,其可以具有不同的旋转角度。因此,具有与固定旋转角度不同的旋转角度的每个帧可被旋转,以使得旋转角度变为固定旋转角度。之后,可以采用如上关于图8a或图8b所描述的直接方式,假定每个图像的旋转角度对应于固定旋转角度来执行运动预测。为了使解码器能够重建相机方向,用于所捕获的帧的固定旋转角度以及相机方向可在比特流复用阶段818被包括在编码比特流中。
参考图9示出了用于解码的实施例。比特流被输入911到解码器。比特流可以包括编码的投影帧和/或编码的打包VR帧。在比特流解复用阶段912中,从比特流中提取相机方向913。比特流解复用912可被视为解码的一部分或者可被视为单独的阶段。比特流解复用阶段912还从比特流中提取图像信息,并将其提供给解码阶段914。解码阶段914的输出包括打包VR帧915;然而,如果在编码侧中尚未应用区域式打包,则可以认为解码阶段的输出包括投影帧。如果解码阶段的输出包括打包VR帧,则可以对打包VR帧执行区域式向后映射916以形成投影帧。如果打包帧已经与投影帧相对应,则不需要执行区域式向后映射916。投影帧917可被提供给旋转补偿918以产生解码图像919,以用于在显示器上进行渲染,存储到存储器(例如,存储到解码图像缓冲器和/或参考帧存储器),进一步重传,和/或用于一些其它目的。
区域式向后映射可被规定或实现为一个过程,该过程将打包VR帧的区域映射到投影帧。元数据可被包括在比特流中或沿着比特流进行包括,其描述了从投影帧到打包VR帧的区域式映射。例如,在这样的元数据中可以包括投影帧的源矩形到打包VR帧中的目标矩形的映射。分别相对于目标矩形的宽度和高度的源矩形的宽度和高度可以分别指示水平和垂直重采样率。向后映射过程将打包VR帧的目标矩形(如元数据中所指示的)的样本映射到输出投影帧的源矩形(如元数据中所指示的)。向后映射过程可以包括根据源矩形和目标矩形的宽度和高度比的重采样。
在示例中,除了映射元数据之外或代替映射元数据,编码器或任何其它实体包括将元数据向后映射到比特流中或沿着比特流进行向后映射。向后映射元数据可以指示对例如从解码阶段914中得到的打包VR帧应用的过程,以实现输出投影帧(例如,917)。向后映射元数据例如可以包括如上所述的源和目标矩形,以及将要对打包VR帧的区域应用以获得输出投影帧中的区域的旋转和镜像。
旋转补偿可被认为是解码过程的一部分,例如,类似于根据HEVC中的一致性裁剪窗口进行裁剪。可替代地,旋转补偿可被认为是解码器以外的步骤。
旋转补偿可以与过程流水线中的后续步骤(诸如YUV到RGB的转换以及在显示器视图窗口上进行渲染)组合。
实施例不限于任何特定的坐标系。以下段落描述了可以使用的坐标系的一些示例。
图7a规定了用于定义偏航角、俯仰角和翻滚角的坐标轴。偏航在俯仰之前被应用,俯仰在翻滚之前被应用。偏航绕Y(纵向,向上)轴旋转,俯仰绕X(横向,左右)轴旋转,翻滚绕Z(从后到前)轴旋转。旋转是外在的(extrinsic),即,绕X、Y和Z固定参考轴。当看向原点时,角度逆时针增加。
在图7b中示出了另一个坐标系,其表示沿着每个轴在3D空间上的旋转。相机位于中心,即,位置(0,0,0),并且其旋转可以沿着至少一个轴。沿Y、X和Z轴的旋转分别被定义为偏航、翻滚和俯仰。
在所示出的坐标系或任何类似的坐标系中,例如可以采用以度为单位的浮点小数值来指示偏航、俯仰和滚转。可以针对偏航、俯仰和滚转而定义值范围。例如,可以要求偏航在0(包括0)到360(不包括360)的范围内;可以要求俯仰在-90到90的范围内,包括端值;以及可以要求翻滚在0(包括0)到360(不包括360)的范围内。
根据实施例,例如基于用于每组运动信息的相关联块坐标,将解码的运动场(或等效地,编码器中的重建运动场)后向投影到球体上。后向投影可以包括作为中间步骤的向第一投影结构上进行投影。例如,如果运动场是针对等矩形全景图像,则可以首先将运动场映射到圆柱体上,并从该圆柱体映射到球体上。当捕获到对应于运动场的解码图像时,可以基于相机方向来选择第一投影结构的定向,或者第一投影结构可以替代地具有默认定向。然后,将球面映射的运动场图像映射到第二投影结构上。如果在捕获到解码图像时第一投影结构具有根据相机方向的定向,则第二投影结构可以具有与被编码或解码的图像的相机方向匹配的定向。如果第一投影结构具有默认定向,则第二投影结构可以具有与被编码或解码的当前图像与解码图像的相机方向的差异匹配的定向。可以直接从相机获取相机方向(例如,使用内置或附接到相机的陀螺仪和/或加速度计),或者可以基于参考帧来估计相机方向,或者可以从比特流中取回相机方向或者关于相机方向的可能已附有帧的信息相机方向可以直接从相机获取(例如,使用内置或附接到相机的陀螺仪和/或加速度计),或者可以基于参考帧来估计,或者它可以从比特流中获取或者关于相机方向的信息可能已经附带在帧上。然后,基本上通过将第二投影结构展开成二维图像,被映射到第二投影结构上的运动场被映射到二维图像的参考运动场上。抽取或重采样可以是所述映射的一部分。例如,如果两组或更多组运动信息被映射到参考运动场的同一块上,则例如可以基于哪组被映射得更接近块的参考点(例如,最中间样本)来选择它们中的一个,或者可以对运动信息进行平均或内插,尤其是如果在被映射到参考运动场的同一块的那些运动信息组中使用相同的参考图像。参考运动场是或可用作用于HEVC的TMVP或者将参考图像的运动场用作用于当前图像的运动信息预测的源的类似过程的参考。
在下面将描述H.265/HEVC的运动向量预测,作为其中可应用多个实施例的***或方法的示例。
H.265/HEVC包括两个运动向量预测方案,即高级运动向量预测(AMVP)和合并(merge)模式。在AMVP或合并模式中,为PU导出运动向量候选列表。存在两种候选:空间候选和时间候选,其中,时间候选也可被称为TMVP候选。候选运动向量预测器的源在图11a和图11b中示出。X代表当前预测单元。图11a中的A0、A1、B0、B1、B2是空间候选,而图11b中的C0、C1是时间候选。包括或对应于图11b中的候选C0或C1的块可被称为并置块,无论哪个是用于时间候选的源。
候选列表推导例如可以如下地被执行,同时应当理解,对于候选列表推导可以存在其它可能性。如果候选列表的占用率不是最大值,则如果空间候选可用并且尚未存在于候选列表中,那么空间候选首先被包括在候选列表中。在这之后,如果候选列表的占用率尚还不是最大值,则时间候选被包括在候选列表中。如果候选的数量仍未达到最大允许数量,则添加组合的双向预测候选(对于B切片)和零运动向量。在候选列表被构建之后,编码器例如基于速率-失真优化(RDO)决策从候选中决定最终运动信息,并将所选择的候选的索引编码到比特流中。同样地,解码器从比特流解码所选择的候选的索引,构建候选列表,并使用解码的索引从候选列表中选择运动向量预测。
在H.265/HEVC中,AMVP和合并模式可被表征如下。在AMVP中,编码器指示是使用单向预测还是双向预测以及哪些参考图像被使用并且编码运动向量差。在合并模式中,仅将来自候选列表的被选候选编码到比特流中,以指示当前预测单元具有与所指示的预测相同的运动信息。因此,合并模式创建由共享相同运动信息的相邻预测块组成的区域,其仅针对每个区域传送一次。H.265/HEVC中的AMVP与合并模式之间的另一区别在于AMVP的候选的最大数量是2,而合并模式的候选的最大数量是5。
高级运动向量预测例如可以如下地操作,而例如通过不同候选位置集和具有候选位置集的候选位置,高级运动向量预测的其它类似实现也是可能的。可以导出两个空间运动向量预测(MVP),并且可以导出时间运动向量预测(TMVP)。它们可以在以下位置中进行选择:位于当前预测块(B0、B1、B2)上方的三个空间运动向量预测候选位置和左边的两个(A0、A1)。在每个候选位置集(B0、B1、B2)或(A0、A1)的预定义顺序中可用(例如,驻留在相同切片中、被帧间编码等)的第一运动向量预测可被选择以表示运动向量竞争中的预测方向(向上或向左)。用于时间运动向量预测的参考索引可以由切片报头中的编码器来指示(例如,被指示为“collocated_ref_idx”语法元素)。在潜在的时间候选位置的预定义顺序(例如,在顺序(C0,C1)中)中可用(例如,被帧间编码)的第一运动向量预测,可被选择为用于时间运动向量预测的源。可以根据时间运动向量预测的参考图像、以及共同定位图像和当前图像的图像顺序计数差的比来伸缩从共同定位图像中的第一可用候选位置获得的运动向量。此外,可以在候选之间执行冗余校验以移除相同的候选,这可导致在候选列表中包括零运动向量。例如通过指示空间运动向量预测的方向(向上或向左)或者选择时间运动向量预测候选,可以在比特流中指示运动向量预测。共同定位图像还可被称为并置图像、用于运动向量预测的源或用于运动向量预测的源图像。
合并模式/过程/机制例如可以如下地操作,而例如通过不同的候选位置集和具有候选位置集的候选位置,合并模式的其它类似实现也是可能的。
在合并模式/过程/机制中,其中预测并使用块/PU的所有运动信息而不进行任何修改/校正。用于PU的前述运动信息可以包括以下中的一个或多个:1)是否“仅使用参考图像列表列表0来单向预测PU”,或者“仅使用参考图像列表1来单向预测PU”,或者“使用参考图像列表0和列表1两者来双向预测PU”的信息;2)对应于参考图像列表0的运动向量值,其可以包括水平和垂直运动向量分量;3)参考图像列表0中的参考图像索引和/或与参考图像列表0对应的运动向量所指向的参考图像的标识符,其中参考图像的标识符例如可以是图像顺序计数值、层标识符值(用于层间预测),或者一对图像顺序计数值和层标识符值;4)参考图像的参考图像标记的信息,例如,参考图像是否被标记为“用于短期参考”或“用于长期参考”的信息;5)-7)分别与2)-4)相同,但用于参考图像列表1。
类似地,使用时间参考图像中的相邻块和/或共同定位块的运动信息来执行预测运动信息。通常被称为合并列表的列表可以通过包括与可用的相邻/共同定位块相关联的运动预测候选来构建,并且传送列表中的所选择的运动预测候选的索引,并且将所选择的候选的运动信息复制到当前PU的运动信息。当合并机制被用于整个CU并且用于CU的预测信号被用作重建信号时,即预测残差未被处理时,这种类型的CU编码/解码通常被称为跳过(skip)模式或者基于合并的跳过模式。除了跳过模式之外,合并机制也可被用于各个PU(不必是如在跳过模式中的整个CU),并且在这种情况下,可以利用预测残差以改进预测质量。这种类型的预测模式通常被称为合并间模式。
合并列表和/或用于AMVP的候选列表或者任何类似的运动向量候选列表中的候选之一可以是TMVP候选等,其可以从诸如例如在切片报头中指示的参考图像的被指示或推断的参考图像内的并置块导出。在HEVC中,根据切片报头中的“collocated_from_10_flag”语法元素来选择要用于获得并置分割的参考图像列表。当该标志等于“1”时,它指定包含并置分割的图像是从列表0导出的,否则图像是从列表1导出的。当“collocated_from_10_flag”不存在时,推断其等于“1”。切片报头中的“colloacated_ref_idx”指定包含并置分割的图像的参考索引。当当前切片是P切片时,“colloacated_ref_idx”参考列表0中的图像。当当前切片是B切片时,如果“collocated_from_10”是“1”,则“colloacated_ref_idx”参考列表0中的图像,否则它参考列表1中的图像。“collocated_ref_idx”总是参考有效列表条目,并且所得到的图像对于编码图像的所有切片是相同的。当“collocated_ref_idx”不存在时,推断其等于“0”。
在HEVC中,当运动编码模式是合并模式时,用于合并列表中的时间运动向量预测的所谓的目标参考索引被设置为“0”。当在HEVC中利用时间运动向量预测的运动编码模式是高级运动向量预测模式时,明确指示目标参考索引值(例如,按每个PU)。
在HEVC中,候选预测运动向量(PMV)的可用性可以如下地确定(对于空间和时间候选两者)(SRTP=短期参考图像,LRTP=长期参考图像):
在HEVC中,当已经确定目标参考索引值时,可以如下地导出用于时间运动向量预测的运动向量值:获得与当前预测单元的右下邻居(图11b中的位置C0)并置的块处的运动向量PMV。并置块所驻留的图像例如可以如上所述地根据切片报头中的所传送的参考索引进行确定。如果位置C0处的PMV不可用,则获得并置图像的位置C1(参见图11b)处的运动向量PMV。共同定位块处的所确定的可用运动向量PMV相对于第一图像顺序计数差和第二图像顺序计数差的比率被伸缩。在包含共同定位块的图像与共同定位块的运动向量的参考图像之间导出第一图像顺序计数差。在当前图像与目标参考图像之间导出第二图像顺序计数差。如果并置块的运动向量的目标参考图像和参考图像之一而非两者是长期参考图像(而另一个是短期参考图像),则可认为TMVP候选不可用。如果并置块的运动向量的目标参考图像和参考图像两者是长期参考图像,则可不应用基于POC的运动向量伸缩。
运动参数类型或运动信息可以包括但不限于以下类型中的一个或多个:
-预测类型(例如,帧内预测、单向预测、双向预测)和/或多个参考图像的指示;
-预测方向的指示,诸如帧间(也称为时间)预测、层间预测、视图间预测、视图合成预测(VSP)和分量间预测(其可按参考图像和/或预测类型进行指示,并且在一些实施例中,视图间和视图合成预测可被联合视为一个预测方向)和/或
-参考图像类型的指示,诸如短期参考图像和/或长期参考图像和/或层间参考图像(其可以例如按参考图像进行指示);
-参考图像列表的参考索引和/或参考图像的任何其它标识符(其可以例如按参考图像进行指示,并且其类型可以取决于预测方向和/或参考图像类型,并且可以通过诸如参考索引所应用的参考图像列表等的其它相关信息片段而随附);
-水平运动向量分量(其可以例如按预测块或参考索引等进行指示);
-垂直运动向量分量(其可以例如按预测块或参考索引等进行指示);
-诸如图像顺序计数差和/或包含运动参数或与之相关联的图像与其参考图像之间的相对相机间隔的一个或多个参数,其可用于在一个或多个运动向量预测过程中伸缩水平运动向量分量和/或垂直运动向量分量(其中,所述一个或多个参数可以例如按参考图像或参考索引等进行指示);
-运动参数和/或运动信息所应用的块的坐标,例如,亮度样本单元中的块的左上样本的坐标;
-运动参数和/或运动信息所应用的块的范围(例如,宽度和高度)。
通常,运动向量预测机制诸如上面作为示例示出的那些运动向量预测机制,可以包括某些预定义或所指示的运动参数的预测或继承。
与图像相关联的运动场可被认为包括针对图像每个编码块而生成的运动信息集。例如,可以通过块的坐标来访问运动场。与块相关联的一组运动信息例如可以对应于该块的左上或正中的样本位置。运动场例如可以用于TMVP或任何其它运动预测机制中,其中使用源或参考而不是当前(解)编码图像以用于预测。
图12是可以在其中实现各种实施例的示例性多媒体通信***的图形表示。数据源1510以模拟、未压缩数字或压缩数字的格式或这些格式的任何组合提供源信号。编码器1520可以包括预处理或者与预处理连接,诸如数据格式转换和/或源信号的滤波。编码器1520将源信号编码为编码的媒体比特流。需指出,可以直接或间接地从位于几乎任何类型的网络内的远程设备接收要解码的比特流。此外,可以从本地硬件或软件接收比特流。编码器1520能够编码多于一种的媒体类型,诸如音频和视频,或者可能需要不止一个编码器1520来编码源信号的不同媒体类型。编码器1520还可以获得合成产生的输入,诸如图形和文本,或者它能够产生合成媒体的编码的比特流。在下文中,仅考虑一种媒体类型的一个编码的媒体比特流的处理以简化描述。然而需指出,通常实时广播服务包括若干流(通常至少一个音频、视频和文本字幕流)。还需要指出,该***可包括许多编码器,但在附图中仅示出一个编码器1520以简化描述但不缺乏一般性。应当进一步理解,尽管在本文中包含的文本和示例具体地描述了编码过程,但是本领域的技术人员将理解,相同的概念和原理也适用于相应的解码过程,反之亦然。
可以将编码的媒体比特流传送到存储设备1530。存储设备1530可以包括用于存储编码的媒体比特流的任何类型的大容量存储器。存储设备1530中编码的媒体比特流的格式可以是基本的自包含比特流格式,或者一个或多个编码的媒体比特流可以封装到容器文件中,或者编码的媒体比特流可以封装成适用于DASH(或类似的流媒体***)并存储为一系列片段的片段格式。如果将一个或多个媒体比特流封装在容器文件中,则可以使用文件生成器(图中未示出)将一个或多个媒体比特流存储在文件中并创建文件格式元数据,这种元数据也可以存储在文件中。编码器1520或存储设备1530可以包括文件生成器,或者文件生成器可操作地连接到编码器1520或存储设备1530。一些***“实时”操作,即省略存储编码的媒体比特流以及将其从编码器1520传送到发送器1540。然后,可以根据需要将编码的媒体比特流传送到发送器1540,也被称为服务器。在传输中使用的格式可以是基本的自包含比特流格式、分组流格式、适用于DASH(或类似流传输***)的片段格式,或者可以将一个或多个编码的媒体比特流封装到容器文件中。编码器1520、存储设备1530和服务器1540可以驻留在相同的物理设备中,或者它们可以包括在单独的设备中。编码器1520和服务器1540可以处理实时内容,在这种情况下,编码的媒体比特流通常不是永久存储的,而是在内容编码器1520和/或服务器1540中稍微缓冲一段时间以减缓处理延迟、传输延迟和编码媒体比特率的变化。
服务器1540使用通信协议栈发送编码的媒体比特流。该协议栈可以包括但不限于实时传输协议(RTP)、用户数据报协议(UDP)、超文本传输协议(HTTP)、传输控制协议(TCP)和因特网协议(IP)中的一个或多个。当通信协议栈是面向分组的时,服务器1540将编码的媒体比特流封装成分组。例如,当使用RTP时,服务器1540根据RTP有效载荷格式将编码的媒体比特流封装成RTP分组。通常,每种媒体类型都具有专用的RTP有效载荷格式。再次需指出,***可以包含一个以上的服务器1540,但是为了简单起见,以下描述仅考虑一个服务器1540。
如果媒体内容被封装在存储设备1530的容器文件中或用于将数据输入到发送器1540,则发送器1540可以包括或可操作地附接到“发送文件解析器”(图中未示出)。特别地,如果容器文件不是这样传输的,但是至少一个所包含的编码的媒体比特流被封装以便通过通信协议传输,则发送文件解析器定位编码的媒体比特流的适当部分以通过通信协议传送。发送文件解析器还可以帮助针对通信协议创建正确的格式,例如分组报报头和有效载荷。多媒体容器文件可以包含封装指令,例如ISOBMFF中的提示轨道,用于在通信协议上封装至少一个所包含的媒体比特流。
服务器1540可以通过或可以不通过通信网络连接到网关1550,通信网络例如可以是CDN、因特网和/或一个或多个接入网络的组合。网关也可以被称为或可替代地被称为中间设备。对于DASH,网关可以是(CDN的)边缘服务器或Web代理。需指出,***通常可以包括任何数量的网关或类似设备,但是为了简单起见,以下描述仅考虑一个网关1550。网关1550可以执行不同类型的功能,例如将根据一个通信协议栈到另一通信协议栈的分组流转换,合并和分叉数据流,以及根据下行链路和/或接收器能力控制数据流,诸如根据主要的下行链路网络条件控制所转发的流的比特率。
该***包括一个或多个接收器1560,其通常能够接收、解调发送信号并将发送信号解封装成编码的媒体比特流。编码的媒体比特流可以被传送到记录存储设备1570。记录存储设备1570可以包括任何类型的大容量存储器以存储编码的媒体比特流。记录存储设备1570可以替代地或附加地包括计算存储器,例如随机存取存储器。记录存储设备1570中的编码的媒体比特流的格式可以是基本的自包含比特流格式,或者一个或多个编码的媒体比特流可以封装到容器文件中。如果存在彼此相关联的多个编码的媒体比特流,诸如音频流和视频流,则通常使用容器文件,并且接收器1560包括或附接到容器文件生成器,该容器文件生成器根据输入流产生容器文件。一些***“实时”操作,即省略记录存储设备1570以及将编码的媒体比例流从接收器1560直接传送到解码器1580。在一些***中,只有所记录的流的最近部分,例如,所记录的流的最近10分钟的摘录被保存在记录存储设备1570中,而任何先前所记录的数据被从记录存储设备1570中丢弃。
编码的媒体比特流可以从记录存储设备1570传送到解码器1580。如果有许多编码的媒体比特流,例如彼此相关联并封装到容器文件中的音频流和视频流或单个媒体比特流被封装在容器文件中例如以便于访问,使用文件解析器(图中未示出)从容器文件中解封装每个编码的媒体比特流。记录存储设备1570或解码器1580可以包括文件解析器,或者文件解析器附接到记录存储设备1570或解码器1580。还需要指出,***可以包括许多解码器,但是这里仅讨论一个解码器1580以简化描述而不缺乏一般性。
编码的媒体比特流可以由解码器1570进一步处理,解码器1570的输出是一个或多个未压缩媒体流。最后,例如,渲染器1590可以用扬声器或显示器再现未压缩媒体流。接收器1560、记录存储设备1570、解码器1570和渲染器1590可以驻留在相同的物理设备中,或者它们可以包括在单独的设备中。
发送器1540和/或网关1550可以被配置为执行不同表示之间的切换,例如用于视图切换、比特率自适应和/或快速启动,和/或发送器1540和/或网关1550可以被配置为选择所发送的表示。不同表示之间的切换可能出于多种原因而发生,例如响应于接收器1560的请求或传送比特流的网络的主要条件,诸如吞吐量。来自接收器的请求例如可以是与先前不同的表示对片段或子片段的请求,对发送的可伸缩性层和/或子层的改变的请求,或者对相比之前的表示设备具有不同功能的表示设备的改变的请求。对片段的请求可以是HTTPGET请求。对子片段的请求可以是具有字节范围的HTTP GET请求。附加地或可替代地,比特率调整或比特率自适应例如可用于在流媒体服务中提供所谓的快速启动(其中所传输的流的比特率在启动之后低于信道比特率),或者随机访问流传输以便立即开始播放并实现容忍偶发分组延迟和/或重传的缓冲器占用水平。比特率自适应可以包括以各种顺序发生的多个表示或层向上切换和表示或层向下切换操作。
解码器1580可以被配置为执行不同表示之间的切换,例如用于视图切换、比特率自适应和/或快速启动,和/或解码器1580可以被配置为选择所发送的表示。不同表示之间的切换可能出于多种原因而发生,例如以实现更快的解码操作或者调整发送的比特流,例如,就比特率而言,调整传输比特流的网络的主要条件(诸如吞吐量)。例如,如果包括解码器1580的设备是多任务设备并且将计算资源用于解码可伸缩视频比特流之外的其它目的,则可能需要更快的解码操作。在另一个示例中,当以比正常播放速度更快的速度(例如,比正常实时播放速度快两到三倍)播放内容时,可能需要更快的解码操作。解码器操作的速度可以在解码或重放期间改变,例如作为对从正常播放速度到快进播放或相反切换的变化的响应,因此可以以各种顺序进行多个层向上切换和层向下切换操作。
在上文中,已经参考术语块描述了一些实施例。需要理解,术语块可以在特定编解码器或编码格式中使用的术语的上下文中解释。例如,术语块可被解释为HEVC中的预测单元。需要理解,术语块可以基于其使用的上下文而进行不同地解释。例如,当在运动场的上下文中使用术语块时,它可被解释为与运动场的块网格匹配。
在上文中,已经参考例如在图6的步骤612中的在球体上的后向投影而描述了一些实施例。需要理解,在后向投影中同样可以使用除了球体之外的另一个投影结构。
在上文中,已经参考可由于源帧的拼接和投影而产生的投影帧描述了一些实施例。需要理解,用诸如鱼眼帧的任何非线性帧来代替投影帧,可以类似地实现实施例。作为示例,可以将鱼眼帧后向投影到投影结构上。例如,如果鱼眼帧在视场中覆盖180度,则它可被映射到是半球的投影结构上。
短语“沿着比特流”(例如,沿着比特流进行指示)可在权利要求和所描述的实施例中用于指代采用带外数据与比特流相关联的方式的带外传输、信令或存储。短语“沿着比特流进行解码”等可以指代对与比特流相关联的所涉及的带外数据(其可以从带外传输、信令或存储中获得)进行解码。在上文中,已经参考编码或包括比特流中的指示或元数据和/或解码来自比特流的指示或元数据而描述了一些实施例。需要理解,指示或元数据可以附加地或替代地沿着比特流进行编码或包括和/或沿着比特流进行解码。例如,指示或元数据可以包括在封装比特流的容器文件中或从其中进行解码。
已经参考短语相机和/或相机的方向和/或相机旋转而描述了一些实施例。需要理解,短语相机同样适用于相机装备或类似的多设备捕获***。还需要理解,相机例如在计算机生成的内容中可以是虚拟的,其中,可以从在创建计算机生成的内容中使用的建模参数中获得相机方向等。
在下面进一步详细描述用于实现本发明的实施例的适用装置和可能的机制。在此方面,首先参考图13,图13示出了在图14中示出的示例性装置或电子设备50的示意性框图,其可以包含根据本发明的实施例的发送器。
电子设备50例如可以是无线通信***的移动终端或用户设备。然而,应当理解,本发明的实施例可以在可能需要传输无线电频率信号的任何电子设备或装置内实现。
装置50可以包括用于集成和保护设备的壳体30。装置50还可以包括采用液晶显示器形式的显示器32。在本发明的其它实施例中,显示器可以是适用于显示图像或视频的任何适合的显示技术。装置50还可以包括键盘34。在本发明的其它实施例中,可以采用任何适合的数据或用户接口机制。例如,用户接口可以实现为作为触敏显示器的一部分的虚拟键盘或数据输入***。该装置可以包括麦克风36或任何适合的音频输入,其可以是数字或模拟信号输入。装置50还可以包括音频输出设备,在本发明的实施例中,音频输出设备可以是耳机38、扬声器或模拟音频或数字音频输出连接中的任何一个。装置50还可以包括电池40(或者在本发明的其它实施例中,该设备可以由任何适合的移动能量设备供电,诸如太阳能电池、燃料电池或发条发电机)。结合实施例讨论的术语电池也可以是这些移动能量设备中的一个。此外,装置50可以包括不同种类的能量设备的组合,例如可再充电电池和太阳能电池。装置50还可以包括红外端口41,其用于与其它设备进行短距离视线通信。在其它实施例中,装置50还可以包括任何适合的短距离通信方案,例如,蓝牙无线连接或USB/火线有线连接。
装置50可以包括用于控制装置50的控制器56或处理器。控制器56可以连接到存储器58,在本发明的实施例中,存储器58可以存储数据和/或还可以存储用于在控制器56上实现的指令。控制器56还可以连接到编解码器电路54,编解码器电路54适用于执行音频和/或视频数据的编码和解码,或者协助由控制器执行的编码和解码。
装置50还可以包括读卡器48和智能卡46,例如通用集成电路卡(UICC)读取器和通用集成电路卡,以用于提供用户信息并且适用于提供用于在网络上对用户进行认证和授权的认证信息。
装置50可以包括无线电接口电路52,其连接到控制器并且适用于生成无线通信信号,例如用于与蜂窝通信网络、无线通信***或无线局域网进行通信。装置50还可以包括连接到无线电接口电路52的天线60,以用于将在无线电接口电路52处产生的无线电频率信号发送到其它装置,以及从其它装置接收无线电频率信号。
在本发明的一些实施例中,装置50包括能够记录或检测成像的相机42。
关于图15示出了可以使用本发明的实施例的***的示例。***10包括可以通过一个或多个网络进行通信的多个通信设备。***10可以包括有线或无线网络的任何组合,这些网络包括但不限于无线蜂窝电话网络(诸如全球移动通信***(GSM)、通用移动电信***(UMTS)、基于长期演进(LTE)的网络、码分多址(CDMA)网络等)、诸如由IEEE 802.x标准中的任何一个定义的无线局域网(WLAN)、蓝牙个人局域网、以太网局域网、令牌环局域网、广域网和因特网。
例如,图15中所示的***示出了移动电话网络11以及因特网28的表示。到因特网28的连接可以包括但不限于长距离无线连接、短距离无线连接、以及各种有线连接,包括但不限于电话线、电缆线、电力线和类似的通信路径。
***10中示出的示例性通信设备可以包括但不限于电子设备或装置50,个人数字助理(PDA)和移动电话14的组合、PDA 16、集成消息传送设备(IMD)18、台式计算机20、笔记本计算机22、平板计算机。当被正在移动的个人携带时,装置50可以是静止的或移动的。装置50还可以位于一种运输模式中,包括但不限于汽车、卡车、出租车、公共汽车、火车、船、飞机、自行车、摩托车或任何类似的适合的运输模式。
一些或其它装置可以发送和接收呼叫和消息,并且通过到基站24的无线连接25与服务提供商通信。基站24可以连接到允许移动电话网络11与因特网28之间进行通信的网络服务器26。该***可以包括附加的通信设备和各种类型的通信设备。
通信设备可以使用各种传输技术进行通信,包括但不限于码分多址(CDMA)、全球移动通信***(GSM)、通用移动电信***(UMTS)、时分多址(TDMA)、频分多址(FDMA)、传输控制协议-因特网协议(TCP-IP)、短消息服务(SMS)、多媒体消息服务(MMS)、电子邮件、即时消息服务(IMS)、蓝牙、IEEE 802.11、长期演进无线通信技术(LTE)以及任何类似的无线通信技术。实现本发明的各种实施例时所涉及的通信设备可以使用各种介质进行通信,包括但不限于无线电、红外线、激光、电缆连接以及任何适合的连接。
虽然以上示例描述了在无线通信设备内操作的本发明的实施例,但是应当理解,如上所述的本发明可以实现为包括其中发送和接收无线电频率信号的电路的任何装置的一部分。因此,例如,本发明的实施例可以在移动电话、基站、诸如包括无线电频率通信装置(例如,无线局域网、蜂窝无线电等)的台式计算机或平板计算机的计算机中实现。
通常,本发明的各种实施例可以用硬件或专用电路或其任何组合来实现。虽然本发明的各个方面可被示出和描述为框图或使用一些其它图形表示,但是容易理解,这里描述的这些框、装置、***、技术或方法可以用作为非限制性示例的硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其它计算设备,或其中一些组合来实现。
可以在诸如集成电路模块的各种组件中实现本发明的实施例。集成电路的设计基本上是高度自动化的过程。复杂且功能强大的软件工具可用于将逻辑级设计转换为准备在半导体衬底上蚀刻和形成的半导体电路设计。
程序(诸如位于加利福尼亚州山景城的Synopsys,Inc.和加利福尼亚州圣何塞的Cadence Design公司提供的程序)使用完善的设计规则以及预存储的设计模块库自动路由导体并定位半导体芯片上的元件。一旦完成半导体电路的设计,就可以将所得到的标准化电子格式(例如,Opus、GDSII等)的设计传输到半导体制造工厂或“fab”进行制造。
以上描述已经通过示例和非限制性示例提供了对本发明示例性实施例的全面和信息性描述。然而,当结合附图和所附权利要求阅读时,鉴于前面的描述,各种修改和调整对相关领域的技术人员可变得显而易见。然而,所有这些和类似的本发明教导的修改仍将落入本发明的范围内。
在下文中将提供一些示例。
根据第一示例,提供了一种方法,其包括:
将第一重建图像解释为坐标系中的第一三维图像;
获得旋转;
将所述第一三维图像投影到第一几何投影结构上,所述几何投影结构具有根据在所述坐标系内的所述旋转的定向;
形成第一参考图像,所述形成包括将所述第一几何投影结构展开成第二几何投影结构;
根据所述第一参考图像,至少预测第二重建图像的块。
在一些实施例中,所述方法还包括:执行所述解释、所述投影、以及所述形成中的两个或更多个作为单个过程。
在所述方法的一些实施例中,所述第一重建图像和所述第二重建图像符合等距形全景表示格式。
在一些实施例中,所述方法还包括:
将第一编码图像解码成第一重建图像;以及
将第二编码图像解码成所述第二重建图像;其中,所述解码包括所述预测。
在一些实施例中,所述方法还包括:
解码指示所述旋转的一个或多个语法元素。
在一些实施例中,所述方法还包括:
将第一图像编码成第一编码图像,其中,所述编码包括重建所述第一重建图像;以及
将第二图像编码成第二编码图像;其中,所述编码包括重建所述第二重建图像和所述预测。
在一些实施例中,所述方法还包括:
当捕获所述第一图像源自的第一组输入图像时,获得所述装置的第一方向;
当捕获所述第二图像源自的第二组输入图像时,获得所述装置的第二方向;
基于所述第一方向和所述第二方向,导出所述旋转。
在一些实施例中,所述方法还包括:
基于所述第一图像和所述第二图像,估计所述旋转。
根据第二示例,提供了一种装置,其包括至少一个处理器和至少一个存储器,所述至少一个存储器在其上存储有代码,所述代码在由所述至少一个处理器执行时使得所述装置至少执行:
将第一重建图像解释为坐标系中的第一三维图像;
获得旋转;
将所述第一三维图像投影到第一几何投影结构上,所述几何投影结构具有根据在所述坐标系内的所述旋转的定向;
形成第一参考图像,所述形成包括将所述第一几何投影结构展开成第二几何投影结构;
根据所述第一参考图像,至少预测第二重建图像的块。
根据第三示例,提供了一种计算机可读存储介质,其包括用于装置使用的代码,所述代码在由处理器执行时使得所述装置执行:
将第一重建图像解释为坐标系中的第一三维图像;
获得旋转;
将所述第一三维图像投影到第一几何投影结构上,所述几何投影结构具有根据在所述坐标系内的所述旋转的定向;
形成第一参考图像,所述形成包括将所述第一几何投影结构展开成第二几何投影结构;
根据所述第一参考图像,至少预测第二重建图像的块。
根据第四示例,提供了一种装置,其包括:
用于将第一重建图像解释为坐标系中的第一三维图像的装置;
用于获得旋转的装置;
用于将所述第一三维图像投影到第一几何投影结构上的装置,所述几何投影结构具有根据在所述坐标系内的所述旋转的定向;
用于形成第一参考图像的装置,所述形成包括将所述第一几何投影结构展开成第二几何投影结构;
用于根据所述第一参考图像,至少预测第二重建图像的块的装置。
根据第五示例,提供了一种方法,其包括:
获得由相机捕获的图像;
获得所述相机的方向信息;
使用所述方向信息,参考坐标系在所述图像中补偿所述相机的方向;以及
通过使用投影结构,根据所述方向补偿图像形成投影帧。
在一些实施例中,所述方法还包括:
保持所述坐标系的定向不变。
在一些实施例中,所述方法还包括:
保持所述投影结构不变。
在一些实施例中,所述方法还包括:
区域式映射所述投影帧以形成打包帧。
在一些实施例中,所述方法还包括:
在比特流中包括所述相机的方向信息。
根据第六示例,提供了一种方法,其包括:
获得已基于由相机捕获的图像而形成的投影图像;
获得所述相机的方向信息;以及
使用所述方向信息,参考坐标系旋转所述投影图像。
在一些实施例中,所述方法还包括:
区域式映射所述投影帧以形成打包帧。
在一些实施例中,所述方法还包括:
在比特流中包括所述相机的方向信息。
根据第七示例,提供了一种方法,其包括:
接收已基于由相机捕获的图像而形成的编码投影图像;
解码所述编码图像以形成重建投影图像;
获得所述相机的方向信息;以及
使用所述方向信息,参考坐标系旋转所述重建投影图像。
在一些实施例中,其中,所述编码投影图像还已经进行区域式映射,并且,所述解码还包括:
解码所述编码图像以形成重建区域式映射图像;以及
将所述重建区域式映射图像区域式向后映射成所述重建投影图像。
在一些实施例中,所述方法还包括:
从比特流中获得所述相机的所述方向信息。
根据第八示例,提供了一种方法,其包括:
将运动场后向投影到第一投影结构上;
将所述运动场从所述第一投影结构后向投影到球体,以形成球面映射运动场图像;
将所述球面映射运动场图像映射到第二投影结构上;以及
将被映射到所述第二投影结构上的所述运动场映射到二维图像的参考运动场上。
在一些实施例中,所述方法还包括:
在运动信息预测中使用所述参考运动场。
在一些实施例中,所述方法还包括以下中的一个:
当捕获到对应于所述运动场的解码图像时,基于相机方向,选择所述第一投影结构的定向;
使用关于所述第一投影结构的默认定向。
在所述方法的一些实施例中:
当捕获到所述解码图像时,所述第一投影结构具有根据所述相机方向的定向;以及
所述第二投影结构具有与被编码或解码的图像的相机方向匹配的定向。
在所述方法的一些实施例中:
所述第一投影结构具有默认定向;以及
所述第二投影结构具有与被编码或解码的当前图像与所述解码图像的相机方向的差异匹配的定向。
在所述方法的一些实施例中,所述运动场针对等矩形全景图像,其中,所述方法还包括:
将所述运动场映射到圆柱体上;以及
将所述运动场从所述圆柱体映射到球体上。

Claims (18)

1.一种用于视频编码的方法,包括:
获得所述视频的第一重建图像作为坐标系中的第一三维图像;
获得第一旋转角度,其中,所述第一旋转角度是所述第一重建图像与参考旋转的绝对旋转;
获得第二旋转角度;
将所述第一三维图像投影到第一几何投影结构上的第一投影图像上;
基于所述第一旋转角度,将所述第一投影图像旋转到所述参考旋转以创建第二投影图像;
基于所述第二旋转角度,旋转所述第二投影图像以创建第三投影图像;
形成第一参考图像,所述形成包括将在所述第一几何投影结构上的所述第三投影图像展开到第二几何投影结构中;
根据所述第一参考图像,至少预测第二重建图像的块。
2.根据权利要求1所述的方法,还包括:
执行所述解释、所述投影、以及所述形成中的两个或更多个作为单个过程。
3.根据权利要求1所述的方法,其中,所述第一重建图像和所述第二重建图像符合等距形全景表示格式。
4.根据权利要求1至3中任一项所述的方法,还包括:
将第一编码图像解码成第一重建图像;以及
将第二编码图像解码成所述第二重建图像;其中,所述解码包括所述预测。
5.根据权利要求4所述的方法,还包括:
解码指示所述旋转的一个或多个语法元素。
6.根据权利要求1至3中任一项所述的方法,还包括:
将第一图像编码成第一编码图像,其中,所述编码包括重建所述第一重建图像;以及
将第二图像编码成第二编码图像;其中,所述编码包括重建所述第二重建图像和所述预测。
7.根据权利要求6所述的方法,还包括:
当捕获所述第一图像源自的第一组输入图像时,获得装置的第一方向;
当捕获所述第二图像源自的第二组输入图像时,获得所述装置的第二方向;
基于所述第一方向和所述第二方向,导出所述旋转。
8.根据权利要求6所述的方法,还包括:
基于所述第一图像和所述第二图像,估计所述旋转。
9.一种装置,包括至少一个处理器和至少一个存储器,所述至少一个存储器在其上存储有代码,所述代码在由所述至少一个处理器执行时使得所述装置至少执行:
获得视频的第一重建图像作为坐标系中的第一三维图像;
获得第一旋转角度,其中,所述第一旋转角度是所述第一重建图像与参考旋转的绝对旋转;
获得第二旋转角度;
将所述第一三维图像投影到第一几何投影结构上的第一投影图像上;
基于所述第一旋转角度,将所述第一投影图像旋转到所述参考旋转以创建第二投影图像;
基于所述第二旋转角度,旋转所述第二投影图像以创建第三投影图像;
形成第一参考图像,所述形成包括将在所述第一几何投影结构上的所述第三投影图像展开到第二几何投影结构中;
根据所述第一参考图像,至少预测第二重建图像的块。
10.根据权利要求9所述的装置,其中,所述至少一个存储器在其上存储有代码,所述代码在由所述至少一个处理器执行时使得所述装置至少执行:
执行所述解释、所述投影、以及所述形成中的两个或更多个作为单个过程。
11.根据权利要求9所述的装置,其中,所述第一重建图像和所述第二重建图像符合等距形全景表示格式。
12.根据权利要求9至11中任一项所述的装置,所述至少一个存储器在其上存储有代码,所述代码在由所述至少一个处理器执行时使得所述装置至少执行:
将第一编码图像解码成第一重建图像;以及
将第二编码图像解码成所述第二重建图像;其中,所述解码包括所述预测。
13.根据权利要求12所述的装置,所述至少一个存储器在其上存储有代码,所述代码在由所述至少一个处理器执行时使得所述装置至少执行:
解码指示所述旋转的一个或多个语法元素。
14.根据权利要求9至11中任一项所述的装置,所述至少一个存储器在其上存储有代码,所述代码在由所述至少一个处理器执行时使得所述装置至少执行:
将第一图像编码成第一编码图像,其中,所述编码包括重建所述第一重建图像;以及
将第二图像编码成第二编码图像;其中,所述编码包括重建所述第二重建图像和所述预测。
15.根据权利要求14所述的装置,所述至少一个存储器在其上存储有代码,所述代码在由所述至少一个处理器执行时使所述装置至少执行:
当捕获所述第一图像源自的第一组输入图像时,获得所述装置的第一方向;
当捕获所述第二图像源自的第二组输入图像时,获得所述装置的第二方向;
基于所述第一方向和所述第二方向,导出所述旋转。
16.根据权利要求14所述的装置,所述至少一个存储器在其上存储有代码,所述代码在由所述至少一个处理器执行时使得所述装置至少执行:
基于所述第一图像和所述第二图像,估计所述旋转。
17.一种计算机可读存储介质,包括用于装置使用的代码,所述代码在由处理器执行时使得所述装置至少执行:
获得视频的第一重建图像作为坐标系中的第一三维图像;
获得第一旋转角度,其中,所述第一旋转角度是所述第一重建图像与参考旋转的绝对旋转;
获得第二旋转角度;
将所述第一三维图像投影到第一几何投影结构上的第一投影图像上;
基于所述第一旋转角度,将所述第一投影图像旋转到所述参考旋转以创建第二投影图像;
基于所述第二旋转角度,旋转所述第二投影图像以创建第三投影图像;
形成第一参考图像,所述形成包括将在所述第一几何投影结构上的所述第三投影图像展开到第二几何投影结构中;
根据所述第一参考图像,至少预测第二重建图像的块。
18.一种装置,包括:
用于获得视频的第一重建图像作为坐标系中的第一三维图像的装置;
用于获得第一旋转角度的装置,其中,所述第一旋转角度是所述第一重建图像与参考旋转的绝对旋转;
用于获得第二旋转角度的装置;
用于将所述第一三维图像投影到第一几何投影结构上的第一投影图像上的装置;
用于基于所述第一旋转角度,将所述第一投影图像旋转到所述参考旋转以创建第二投影图像的装置;
用于基于所述第二旋转角度,旋转所述第二投影图像以创建第三投影图像的装置;
用于形成第一参考图像的装置,所述形成包括将在所述第一几何投影结构上的所述第三投影图像展开到第二几何投影结构中;
用于根据所述第一参考图像,至少预测第二重建图像的块的装置。
CN201780087822.XA 2017-01-03 2017-12-29 用于视频编码和解码的装置、方法和计算机程序 Pending CN110419219A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FI20175007 2017-01-03
FI20175007 2017-01-03
PCT/FI2017/050951 WO2018127625A1 (en) 2017-01-03 2017-12-29 An apparatus, a method and a computer program for video coding and decoding

Publications (1)

Publication Number Publication Date
CN110419219A true CN110419219A (zh) 2019-11-05

Family

ID=62789349

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780087822.XA Pending CN110419219A (zh) 2017-01-03 2017-12-29 用于视频编码和解码的装置、方法和计算机程序

Country Status (4)

Country Link
US (1) US20190349598A1 (zh)
EP (1) EP3566445A4 (zh)
CN (1) CN110419219A (zh)
WO (1) WO2018127625A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115211131A (zh) * 2020-01-02 2022-10-18 诺基亚技术有限公司 用于全向视频的装置、方法及计算机程序

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018128247A1 (ko) * 2017-01-03 2018-07-12 엘지전자 주식회사 360도 비디오에 대한 영상 코딩 시스템에서 인트라 예측 방법 및 장치
FR3072850B1 (fr) 2017-10-19 2021-06-04 Tdf Procedes de codage et de decodage d'un flux de donnees representatif d'une video omnidirectionnelle
CN109996072B (zh) * 2018-01-03 2021-10-15 华为技术有限公司 视频图像的处理方法及装置
EP3777179A1 (en) * 2018-04-12 2021-02-17 ARRIS Enterprises LLC Motion information storage for video coding and signaling
US11303923B2 (en) * 2018-06-15 2022-04-12 Intel Corporation Affine motion compensation for current picture referencing
WO2020009344A1 (ko) * 2018-07-06 2020-01-09 엘지전자 주식회사 360 비디오 데이터의 서브픽처 기반 처리 방법 및 그 장치
US10944984B2 (en) 2018-08-28 2021-03-09 Qualcomm Incorporated Affine motion prediction
EP3850850A1 (en) 2018-09-14 2021-07-21 Koninklijke KPN N.V. Video coding based on global motion compensated motion vector predictors
EP3906675A4 (en) * 2019-01-02 2022-11-30 Nokia Technologies Oy DEVICE, METHOD AND COMPUTER PROGRAM FOR VIDEO ENCODING AND DECODING
TWI700000B (zh) * 2019-01-29 2020-07-21 威盛電子股份有限公司 全景影片影像穩定方法及裝置與影像穩定演算法評估方法
KR102476057B1 (ko) 2019-09-04 2022-12-09 주식회사 윌러스표준기술연구소 클라우드 가상 현실을 위한 imu 센서 데이터를 활용한 비디오 인코딩 및 디코딩 가속 방법 및 장치
CN110677599B (zh) * 2019-09-30 2021-11-05 西安工程大学 一种重建360度全景视频图像的***和方法
US11363277B2 (en) * 2019-11-11 2022-06-14 Tencent America LLC Methods on affine inter prediction and deblocking
US11445176B2 (en) 2020-01-14 2022-09-13 Hfi Innovation Inc. Method and apparatus of scaling window constraint for worst case bandwidth consideration for reference picture resampling in video coding
WO2021233403A1 (en) 2020-05-21 2021-11-25 Beijing Bytedance Network Technology Co., Ltd. Scaling window in video coding
US11699001B2 (en) * 2020-10-13 2023-07-11 Flyreel, Inc. Generating measurements of physical structures and environments through automated analysis of sensor data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102845063A (zh) * 2010-02-08 2012-12-26 诺基亚公司 用于视频编码的设备、方法和计算机程序
US20150195573A1 (en) * 2014-01-07 2015-07-09 Nokia Corporation Apparatus, a method and a computer program for video coding and decoding
US9277122B1 (en) * 2015-08-13 2016-03-01 Legend3D, Inc. System and method for removing camera rotation from a panoramic video

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8988466B2 (en) * 2006-12-13 2015-03-24 Adobe Systems Incorporated Panoramic image straightening
US9918082B2 (en) * 2014-10-20 2018-03-13 Google Llc Continuous prediction domain

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102845063A (zh) * 2010-02-08 2012-12-26 诺基亚公司 用于视频编码的设备、方法和计算机程序
US20150195573A1 (en) * 2014-01-07 2015-07-09 Nokia Corporation Apparatus, a method and a computer program for video coding and decoding
US9277122B1 (en) * 2015-08-13 2016-03-01 Legend3D, Inc. System and method for removing camera rotation from a panoramic video

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHAN YUL PARK等: "《A Hybrid Motion Compensation for Wide and Fixed Field-of-view Image Sequences》", 《2012 IEEE INTERNATIONAL SYMPOSIUM ON BROADBAND MULTIMEDIA SYSTEMS AND BROADCASTING (BMSB)》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115211131A (zh) * 2020-01-02 2022-10-18 诺基亚技术有限公司 用于全向视频的装置、方法及计算机程序

Also Published As

Publication number Publication date
WO2018127625A1 (en) 2018-07-12
EP3566445A4 (en) 2020-09-02
EP3566445A1 (en) 2019-11-13
US20190349598A1 (en) 2019-11-14

Similar Documents

Publication Publication Date Title
CN110419219A (zh) 用于视频编码和解码的装置、方法和计算机程序
EP3422724B1 (en) An apparatus, a method and a computer program for omnidirectional video
US11082719B2 (en) Apparatus, a method and a computer program for omnidirectional video
CN108886620B (zh) 用于视频编码和解码的装置、方法及计算机程序
US10979727B2 (en) Apparatus, a method and a computer program for video coding and decoding
CN113170238B (zh) 用于视频编码和解码的装置、方法和计算机程序
CN106105220B (zh) 用于视频编码和解码的方法和装置
US20190268599A1 (en) An apparatus, a method and a computer program for video coding and decoding
KR101825575B1 (ko) 비디오 코딩 및 디코딩 방법 및 장치
CN108702503A (zh) 用于视频编码和解码的装置、方法及计算机程序
CN109155861A (zh) 用于编码媒体内容的方法和装置以及计算机程序
CN108293127A (zh) 用于视频编码和解码的装置、方法和计算机程序
CN108293136A (zh) 用于编码360度全景视频的方法、装置和计算机程序产品
KR20160134782A (ko) 비디오 코딩 및 디코딩용 방법 및 장치
CN104604223A (zh) 用于视频编码和解码的装置、方法和计算机程序
CN109792487B (zh) 用于视频编码和解码的装置、方法和计算机程序
JP2015535405A (ja) ビデオコーディングのための方法と装置
WO2017162911A1 (en) An apparatus, a method and a computer program for video coding and decoding

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20191105