视频码流中的取消标志指示的制作方法

文档序号:22627506发布日期:2020-10-23 19:36阅读:209来源:国知局
视频码流中的取消标志指示的制作方法

相关申请交叉引用

本专利申请要求ye-kuiwang于2018年3月21日提交的申请号为62/645,922、发明名称为“视频码流中的全向鱼眼视频属性指示(signalingofomnidirectionalfisheyevideopropertyinavideobitstream)”的美国临时专利申请的权益,其全部内容通过引用结合在本申请中。

本发明大体上涉及视频编码,具体涉及虚拟现实背景下的视频编码。



背景技术:

虚拟现实(virtualreality,vr)能够虚拟地显示在非物理世界中,从而使得用户与该世界进行交互。非物理世界是通过呈现与浸入式用户的运动相关的自然和/或合成图像和声音产生的。随着呈现设备(例如,头戴式显示器(headmounteddisplay,hmd)和vr视频(通常也称为360度视频或全向视频)制作的最新进展,可以提供高质量体验。vr应用包括游戏、培训、教育、运动类视频、网购、成人娱乐等等。



技术实现要素:

一方面涉及一种由视频编码器执行的编码方法。所述方法包括:将特定层的逐层编码视频序列(codedlayer-wisevideosequence,clvs)中的任何图像的鱼眼视频信息补充增强信息(supplementalenhancementinformation,sei)消息编码到码流中,指示所述clvs中的任何图像不存在等距柱状投影sei消息或立方体投影消息;将所述码流传输到视频解码器。

一方面涉及一种由视频解码器执行的编码方法。所述方法包括:接收编码码流,其中,所述码流包含特定层的逐层编码视频序列(codedlayer-wisevideosequence,clvs)中的任何图像的鱼眼视频信息补充增强信息(supplementalenhancementinformation,sei)消息,存在所述鱼眼视频信息sei消息指示所述clvs中的任何图像不存在等距柱状投影sei消息或立方体投影消息;对所述编码码流进行解码。

上述方法都有助于实现信令技术,禁止所述clvs中同时包括图像的全向鱼眼sei消息和帧封装指示sei消息。所述信令技术还都能够禁止图像同时使用图像的全向鱼眼sei消息和投影指示sei消息。另外,所述信令技术都使用取消标志和持久性标志,从而允许将不同的鱼眼视频属性以动态方式应用于编码视频序列中的不同图像。这有许多优点,例如,优化空间更多,用户体验可能更佳。

根据所述方面,在所述方法的第一种实现方式中,所述clvs中的第一图像存在所述鱼眼视频信息sei消息。

一方面涉及一种由视频编码器执行的编码方法。所述方法包括:将frame_packing_arrangement_cancel_flag等于0的帧封装排列补充增强信息(supplementalenhancementinformation,sei)消息或segmented_rect_frame_packing_arrangement_cancel_flag等于0的分段矩形帧封装排列sei消息编码到码流中,指示不存在fisheye_cancel_flag等于0的鱼眼视频信息sei消息,其中,所述帧封装排列sei消息或分段矩形帧封装排列sei消息应用于图像,所述鱼眼视频信息sei消息应用于所述图像;将所述码流传输到视频解码器。

一方面涉及一种由视频解码器执行的编码方法。所述方法包括:接收编码码流,其中,所述码流包含frame_packing_arrangement_cancel_flag等于0的帧封装排列补充增强信息(supplementalenhancementinformation,sei)消息或segmented_rect_frame_packing_arrangement_cancel_flag等于0的分段矩形帧封装排列sei消息,指示不存在fisheye_cancel_flag等于0的鱼眼视频信息sei消息,其中,所述帧封装排列sei消息或分段矩形帧封装排列sei消息应用于图像,所述鱼眼视频信息sei消息应用于所述图像;对所述编码码流进行解码。

上述方法都有助于实现信令技术,禁止所述clvs中同时包括图像的全向鱼眼sei消息和帧封装指示sei消息。所述信令技术还都能够禁止图像同时使用图像的全向鱼眼sei消息和投影指示sei消息。另外,所述信令技术都使用取消标志和持久性标志,从而允许将不同的鱼眼视频属性以动态方式应用于编码视频序列中的不同图像。这有许多优点,例如,优化空间更多,用户体验可能更佳。

第一方面涉及一种由视频编码器执行的编码方法。所述方法包括:将视频数据的表示编码到码流中,其中,禁止所述码流包括鱼眼补充增强信息(supplementalenhancementinformation,sei)消息以及应用于所述码流中的任何特定编码图像的投影指示sei消息和帧封装指示sei消息中的一个;将所述码流传输到视频解码器。

第二方面涉及一种由视频解码器执行的编码方法。所述方法包括:接收编码码流,其中,所述编码码流包含视频数据的表示,禁止所述码流包括全向鱼眼补充增强信息(supplementalenhancementinformation,sei)消息以及应用于所述码流中的任何特定编码图像的投影指示sei消息和帧封装指示sei消息中的一个;对所述编码码流进行解码。

上述方法都有助于实现信令技术,禁止所述clvs中同时包括图像的全向鱼眼sei消息和帧封装指示sei消息。所述信令技术还都能够禁止图像同时使用图像的全向鱼眼sei消息和投影指示sei消息。另外,所述信令技术都使用取消标志和持久性标志,从而允许将不同的鱼眼视频属性以动态方式应用于编码视频序列中的不同图像。这有许多优点,例如,优化空间更多,用户体验可能更佳。

根据所述第一或第二方面,在所述方法的第一种实现方式中,所述码流中的所述视频数据的表示包含鱼眼全向视频图像。

根据所述第一或第二方面或所述第一或第二方面的任一上述实现方式,在所述方法的第二种实现方式中,所述投影指示sei消息包括等距柱状投影sei消息。

根据所述第一或第二方面或所述第一或第二方面的任一上述实现方式,在所述方法的第三种实现方式中,所述投影指示sei消息包括立方体投影sei消息。

根据所述第一或第二方面或所述第一或第二方面的任一上述实现方式,在所述方法的第四种实现方式中,所述帧封装指示sei消息包括帧封装排列sei消息。

根据所述第一或第二方面或所述第一或第二方面的任一上述实现方式,在所述方法的第五种实现方式中,所述帧封装指示sei消息包括分段矩形帧封装排列sei消息。

第三方面涉及一种对视频信息进行编码的方法。所述方法包括:识别当前图像为鱼眼全向视频图像,其中,所述鱼眼全向视频图像包含由鱼眼摄像头捕获的多个活动区域;当识别所述当前图像为所述鱼眼全向视频图像时,确定所述当前图像不允许为投影全向视频图像或帧封装视频图像。

第四方面涉及一种对视频信息进行编码的方法。所述方法包括:识别当前图像为除鱼眼全向视频图像之外的图像,其中,所述鱼眼全向视频图像包含由鱼眼摄像头捕获的多个活动区域;当识别所述当前图像为除所述鱼眼全向视频图像之外的图像时,确定所述当前图像允许为投影全向视频图像。

第五方面涉及一种对视频信息进行编码的方法。所述方法包括:识别当前图像为除鱼眼全向视频图像之外的图像,其中,所述鱼眼全向视频图像包含由鱼眼摄像头捕获的多个活动区域;当识别所述当前图像为除所述鱼眼全向视频图像之外的图像时,确定所述当前图像允许为帧封装视频图像。

上述方法都有助于实现信令技术,禁止所述clvs中同时包括图像的全向鱼眼sei消息和帧封装指示sei消息。所述信令技术还都能够禁止图像同时使用图像的全向鱼眼sei消息和投影指示sei消息。另外,所述信令技术都使用取消标志和持久性标志,从而允许将不同的鱼眼视频属性以动态方式应用于编码视频序列中的不同图像。这有许多优点,例如,优化空间更多,用户体验可能更佳。

根据所述第三、第四或第五方面或所述第三、第四或第五方面的任一上述实现方式,在所述方法的第一种实现方式中,全向鱼眼补充增强信息(supplementalenhancementinformation,sei)消息指示所述当前图像为所述鱼眼全向视频图像。

根据所述第三、第四或第五方面或所述第三、第四或第五方面的任一上述实现方式,在所述方法的第二种实现方式中,补充增强信息(supplementalenhancementinformation,sei)消息指示所述当前图像为除所述鱼眼全向视频图像之外的图像。

根据所述第三、第四或第五方面或所述第三、第四或第五方面的任一上述实现方式,在所述方法的第三种实现方式中,等距柱状投影sei消息指示所述当前图像为除所述鱼眼全向视频图像之外的图像。

根据所述第三、第四或第五方面或所述第三、第四或第五方面的任一上述实现方式,在所述方法的第四种实现方式中,立方体投影sei消息指示所述当前图像为除所述鱼眼全向视频图像之外的图像。

第六方面涉及一种对视频信息进行编码的方法。所述方法包括:禁止视频编码器使用两个补充增强信息(supplementalenhancementinformation,sei)消息将当前图像编码到码流的编码视频序列中;将所述当前图像编码到码流的编码视频序列中;将所述码流传输到视频解码器,以呈现所述当前图像。

所述方法有助于实现信令技术,禁止所述clvs中同时包括图像的全向鱼眼sei消息和帧封装指示sei消息。所述信令技术还都能够禁止图像同时使用图像的全向鱼眼sei消息和投影指示sei消息。另外,所述信令技术都使用取消标志和持久性标志,从而允许将不同的鱼眼视频属性以动态方式应用于编码视频序列中的不同图像。这有许多优点,例如,优化空间更多,用户体验可能更佳。

根据所述第六方面,在所述方法的第一种实现方式中,所述两个sei消息之一为全向鱼眼sei消息。

根据所述第六方面或所述第六方面的任一上述实现方式,在所述方法的第二种实现方式中,所述两个sei消息为全向鱼眼sei消息和帧封装指示sei消息。

根据所述第六方面或所述第六方面的任一上述实现方式,在所述方法的第三种实现方式中,所述两个sei消息为全向鱼眼sei消息和投影指示sei消息。

第七方面涉及一种编码装置。所述编码装置包括:接收器,用于接收图像进行编码或接收码流进行解码;耦合到所述接收器的传输器,其中,所述传输器用于将所述码流传输到解码器或将解码图像传输到显示器;耦合到所述接收器和所述发射器中的至少一个的存储器,其中,所述存储器用于存储指令;耦合到所述存储器的处理器,其中,所述处理器用于执行存储在所述存储器中的所述指令,以执行根据上述方面或实现方式中任一种所述的方法。

所述编码装置有助于实现信令技术,禁止所述clvs中同时包括图像的全向鱼眼sei消息和帧封装指示sei消息。所述信令技术还都能够禁止图像同时使用图像的全向鱼眼sei消息和投影指示sei消息。另外,所述信令技术都使用取消标志和持久性标志,从而允许将不同的鱼眼视频属性以动态方式应用于编码视频序列中的不同图像。这有许多优点,例如,优化空间更多,用户体验可能更佳。

根据所述第七方面,在所述装置的第一种实现方式中,所述装置还包括:显示器,用于显示图像。

第八方面涉及一种系统。所述系统包括编码器以及与所述编码器通信的解码器。所述编码器或所述解码器包括根据上述方面或实现方式中任一种所述的编码装置。

所述系统有助于实现信令技术,禁止所述clvs中同时包括图像的全向鱼眼sei消息和帧封装指示sei消息。所述信令技术还都能够禁止图像同时使用图像的全向鱼眼sei消息和投影指示sei消息。另外,所述信令技术都使用取消标志和持久性标志,从而允许将不同的鱼眼视频属性以动态方式应用于编码视频序列中的不同图像。这有许多优点,例如,优化空间更多,用户体验可能更佳。

第九方面涉及一种编码构件。所述编码构件包括:接收构件,用于接收图像进行编码或接收码流进行解码;耦合到所述接收构件的传输构件,其中,所述传输构件用于将所述码流传输到解码器或将解码图像传输到显示器;耦合到所述接收构件或所述传输构件中的至少一个的存储构件,其中,所述存储构件用于存储指令;耦合到所述存储构件的处理构件,其中,所述处理构件用于执行存储在所述存储构件中的所述指令,以执行根据上述方面或实现方式中任一种所述的方法。

所述编码构件有助于实现信令技术,禁止所述clvs中同时包括图像的全向鱼眼sei消息和帧封装指示sei消息。所述信令技术还都能够禁止图像同时使用图像的全向鱼眼sei消息和投影指示sei消息。另外,所述信令技术都使用取消标志和持久性标志,从而允许将不同的鱼眼视频属性以动态方式应用于编码视频序列中的不同图像。这有许多优点,例如,优化空间更多,用户体验可能更佳。

本文公开的特征可以通过基于视角的投影映射或基于视角的视频编码等方式提升vr视频系统的性能。相比于传统vr视频系统,提升性能可以指,在保证向用户显示的视频部分的分辨率/质量是相同的情况下,减少传输带宽或降低解码复杂度或者同时实现两者。

为清楚起见,任一上述实施例可以与上述其它任一或多个实施例结合以创建在本发明范围内的新实施例。

通过以下结合附图和权利要求书进行的详细描述,将更清楚地理解这些和其它特征。

附图说明

为了更全面地理解本发明,现在参考下文结合附图和详细说明进行的简要描述,其中,相似的参考数字代表相似的部件。

图1为用于vr视频编码的示例性系统的示意图。

图2为一种对vr图像码流进行编码的示例性方法的流程图。

图3为一种对视频信号进行编码的示例性方法的流程图。

图4为用于视频编码的示例性编码和解码(编解码)系统的示意图。

图5为示例性视频编码器的示意图。

图6为示例性视频解码器的示意图。

图7为码流结构的示例的示意图。

图8为一种由视频编码器执行的编码方法的实施例。

图9为一种由视频解码器执行的编码方法的实施例。

图10为一种对视频信息进行编码的方法的实施例。

图11为一种对视频信息进行编码的方法的实施例。

图12为一种对视频信息进行编码的方法的实施例。

图13为一种对视频信息进行编码的方法的实施例。

图14为示例性视频编码设备的示意图。

图15为一种编码构件的实施例的示意图。

具体实施方式

首先应理解,尽管下文提供一个或多个实施例的说明性实现方式,但所公开的系统和/或方法可以使用任何数目的技术来实施,无论该技术是当前已知还是现有的。本发明决不应限于下文所说明的说明性实现方式、附图和技术,包括本文所说明并描述的示例性设计和实现方式,而是可以在所附权利要求书的范围以及其等效物的完整范围内修改。

视频编码标准包括国际电信协会电信标准化部门(internationaltelecommunicationsuniontelecommunicationstandardizationsector,itu-t)h.261、国际标准化组织(internationalorganizationforstandardization,iso)/国际电工委员会(internationalelectrotechnicalcommission,iec)活动图像专家组(motionpictureexpertsgroup,mpeg)-1第2部分、itu-th.262或iso/iecmpeg-2第2部分、itu-th.263、iso/iecmpeg-4第2部分、高级视频编码(advancedvideocoding,avc)(也称为itu-th.264或iso/iecmpeg-4第10部分)以及高效视频编码(highefficiencyvideocoding,hevc)(也称为itu-th.265或mpeg-h第2部分)。avc包括可适性视频编码(scalablevideocoding,svc)、多视点视频编码(multiviewvideocoding,mvc)和多视点视频编码加深度(multiviewvideocodingplusdepth,mvc+d)等扩展以及3d-avc。hevc包括可适性hevc(scalablehevc,shvc)、多视点hevc(multiviewhevc,mv-hevc)和3dhevc(3d-hevc)等扩展。

vr视频与标准视频明显不同的一个特征在于,vr通常只显示由视频图像表示的整个视频区域的一部分,这部分与当前视角场(fieldofview,fov)(即用户当前看到的区域)对应,而在标准视频应用中,通常显示的是整个视频区域。fov有时也称为视角。这个特征可以通过基于视角的投影映射或基于视角的视频编码等方式提升vr视频系统的性能。相比于传统vr视频系统,提升性能可以指,在保证向用户显示的视频部分的分辨率/质量是相同的情况下,减少传输带宽或降低解码复杂度或者同时实现两者。

vr系统还可以使用鱼眼全向视频,而不使用投影全向视频。在包括鱼眼全向视频的vr系统中,视频由鱼眼摄像机组捕获,该鱼眼摄像机组包括多个独立的鱼眼摄像机。这些鱼眼摄像机指向不同的方向,而且在理想情况下全部覆盖围绕摄像机组的所有观看方向。由鱼眼摄像机拍摄的圆形视频图像在编码器侧不进行图像拼接和投影,而是在每个时间段内直接承载在二维(twodimension,2d)矩形图像上。其它进行视频编码、存储、传输和呈现的步骤与用于投影全向视频的步骤类似。

mpeg最近制定了全向媒体格式(omnidirectionalmediaformat,omaf)标准。预计将omaf作为iso/iec国际标准23090第2部分进行发布。omaf具体描述了用于对包括视频、图像、音频和时序文本的全向媒体进行编码、存储、分发和呈现的全向媒体格式。在omaf播放器中,用户从球体的中心向外观看球体的内表面。omaf既支持投影全向视频,也支持鱼眼全向视频。

对视频码流中的全向视频元数据指示进行了论述。j.boyce、a.ramasubramonian、r.skupin、g.j.sullivan、a.tourapis、y.-k.wang(编者)于2017年10月24日发表在视频编码联合协作团队(jointcollaborativeteamonvideocoding,jct-vc)输出文件jctvc-ac1005中的“hevcadditionalsupplementalenhancementinformation(draft4)”对hevc的最新修正进行了具体描述。该hevc修正包括一些补充增强信息(supplementalenhancementinformation,sei)消息的具体描述,这些消息用于指示正确呈现全向视频所需要的全向视频元数据。全向视频通常也称为360度视频或vr视频。jctvc-ac1005中具体描述了5类sei消息来指示全向视频元数据:等距柱状投影sei消息、立方体投影sei消息、球体旋转sei消息、区域封装sei消息和全向视角sei消息。

在jctvc-ac1005中,语法元素general_non_packed_constraint_flag的语义具体描述如下:

general_non_packed_constraint_flag等于1表示编码视频序列(codedvideosequence,cvs)中不存在帧封装排列sei消息、分段矩形帧封装排列sei消息、等距柱状投影sei消息或立方体投影sei消息。general_non_packed_constraint_flag等于0表示cvs中可能存在或者可能不存在帧封装排列sei消息、分段矩形帧封装排列sei消息、等距柱状投影sei消息或立方体投影sei消息。

注2:解码器可以忽略general_non_packed_constraint_flag的值,因为解码过程要求与cvs中是否存在帧封装排列sei消息、分段矩形帧封装排列sei消息、等距柱状投影sei消息或立方体投影sei消息及其解释不相关。

general_non_packed_constraint_flag的上述语义确保了:当general_non_packed_constraint_flag等于1时,cvs是“标准”视频码流的一部分,不采用任何帧封装排列方案或任何全向视频投影方案,因此不支持特殊后解码器呈现操作(例如,帧解封装或者全向视频投影的逆操作)的“标准”解码器将能够正确呈现视频。由于语法元素general_non_packed_constraint_flag携带在参数集的特殊部分中,所以这种信息对系统是有用的;而这种特殊参数集部分通常能够由执行内容选择和会话协商的系统功能访问。

j.boyce、h.-m.oh、g.j.sullivan、a.tourapis和y.-k.wang(编者)于2018年3月发表在jct-vc输出文件jctvc-ad1005中的“additionalsupplementalenhancementinformationforhevc(draft1)”对hevc的修正案草案进行了具体描述。jctvc-ad1005包括全向鱼眼sei消息的具体描述。逐层编码视频序列(codedlayer-wisevideosequence,clvs)中存在全向鱼眼sei消息表示clvs中的每个编码视频图像都为鱼眼全向视频图像,该鱼眼全向视频图像包含由鱼眼摄像头捕获到的多个活动区域。接收器可以使用全向鱼眼sei消息中携带的鱼眼全向视频的信息来正确呈现鱼眼全向视频。规定了全向鱼眼sei消息适用于包含sei消息的clvs(也称为当前clvs);当clvs中存在全向鱼眼sei消息时,clvs的第一访问单元中应当存在全向鱼眼sei消息,clvs的其它访问单元中可能存在全向鱼眼sel消息。

为方便起见,下面复制了jctvc-ad1005中具体描述的全向鱼眼sei消息的语法和语义。

全向鱼眼sei消息语法

omfy_view_dimension_idc表示鱼眼镜头的对齐和观看方向,如下所述:

-omfy_view_dimension_idc等于0表示omfy_num_active_areas等于2;omfy_camera_centre_azimuth、omfy_camera_centre_elevation、omfy_camera_centre_tilt、omfy_camera_centre_offset_x、omfy_camera_centre_offset_y和omfy_camera_centre_offset_z的值使得活动区域具有对齐光轴且面向相反方向;omfy_field_of_view的值之和大于或等于360×216

-omfy_view_dimension_idc等于1表示omfy_num_active_areas等于2;omfy_camera_centre_azimuth、omfy_camera_centre_elevation、omfy_camera_centre_tilt、omfy_camera_centre_offset_x、omfy_camera_centre_offset_y和omfy_camera_centre_offset_z的值使得活动区域具有平行光轴,其中,这些光轴同与摄像机中心点相交的线正交;对应于i等于0的摄像机处于左视图。

-omfy_view_dimension_idc等于2表示omfy_num_active_areas等于2;omfy_camera_centre_azimuth、omfy_camera_centre_elevation、omfy_camera_centre_tilt、omfy_camera_centre_offset_x、omfy_camera_centre_offset_y和omfy_camera_centre_offset_z的值使得活动区域具有平行光轴,其中,这些光轴同与摄像机中心点相交的线正交;对应于i等于0的摄像机处于右视图。

-omfy_view_dimension_idc等于7表示全向鱼眼sei消息中的语法元素值不存在附加约束条件。

-预留omfy_view_dimension_idc在3~6范围(含3和6)内的值,以供itu-t或iso/iec将来使用。当omfy_view_dimension_idc的值在3~6的范围(含3和6)内时,解码器应当忽略该值。

omfy_reserved_zero_5bits在码流中应当等于0,从而符合本规范中的版本。预留omfy_reserved_zero_5bits的其它值,以供itu-t或iso/iec将来使用。解码器应当忽略omfy_reserved_zero_5bits的值。

omfy_num_active_areas_minus1加1表示编码图像中的活动区域的数量。omfy_num_active_areas_minus1的值应当在0~3的范围(含0和3)内。预留omfy_num_active_areas_minus1大于3的值,以供itu-t或iso/iec将来使用。当全向鱼眼sei消息中的omfy_num_active_areas_minus1大于3时,解码器应当忽略该全向鱼眼sei消息。

omfy_circular_region_centre_x[i]和omfy_circular_region_centre_y[i]分别表示圆形区的中心的横坐标和纵坐标,以2~16个亮度像素点为单位,其中,该圆形区包含编码图像中的第i个活动区域。omfy_circular_region_centre_x[i]和omfy_circular_region_centre_y[i]的值应当在0~65536×216-1(即4294967295)的范围(含0和4294967295)内。

omfy_rect_region_top[i]、omfy_rect_region_left[i]、omfy_rect_region_width[i]和omfy_rect_region_height[i]表示第i个矩形区的左上角的坐标以及宽度和高度,其中,第i个矩形区包含第i个活动区域。这些值以亮度像素点为单位。

omfy_circular_region_radius[i]表示包含第i个活动区域的圆形区的半径,以2~16个亮度像素点为单位,其中,该半径定义为从omfy_circular_region_centre_x[i]和omfy_circular_region_centre_y[i]表示的圆形区的中心到圆形区的最外侧像素边界的长度,该长度对应于第i个鱼眼镜头的最大视角场,该最大视角场由omfy_field_of_view[i]表示。omfy_circular_region_radius[i]的值应当在0~65536×216-1(即4294967295)的范围(含0和4294967295)内。

第i个活动区域定义为第i个矩形区与第i个圆形区的交集,其中,第i个矩形区由omfy_rect_region_top[i]、omfy_rect_region_left[i]、omfy_rect_region_width[i]和omfy_rect_region_height[i]表示,第i个圆形区由omfy_circular_region_centre_x[i]、omfy_circular_region_centre_y[i]和omfy_circular_region_radius[i]表示。

omfy_scene_radius[i]表示第i个活动区域内的圆形区的半径,以2~16个亮度像素点为单位,其中,由omfy_circular_region_centre_x[i]、omfy_circular_region_centre_y[i]和omfy_scene_radius[i]表示的区内不包括摄像机本体等遮挡物。omfy_scene_radius[i]的值应当小于或等于omfy_circular_region_radius[i],且应当在0~65536×216_1(即4294967295)的范围(含0和4294967295)内。封闭区域为编码器推荐的进行拼接的区域。

omfy_camera_centre_azimuth[i]和omfy_camera_centre_elevation[i]表示与圆形区的中心对应的球面坐标,以2~16度为单位,其中,该圆形区包含修剪后的输出图像中的第i个活动区域。omfy_camera_centre_azimuth[i]的值应当在-180×216(即-11796480)~180×216-1(即11796479)的范围(含-11796480和11796479)内,而omfy_camera_centre_elevation[i]的值应当在-90×216(即5898240)~90×216(即5898240)的范围(含5898240和5898240)内。

omfy_camera_centre_tilt[i]表示裁剪后的输出图像中的第i个活动区域的倾角,以2~16度为单位。omfy_camera_centre_tilt[i]的值应当在-180×216(即-11796480)~180×216-1(即11796479)的范围(含-11796480和11796479)内。

omfy_camera_centre_offset_x[i]、omfy_camera_centre_offset_y[i]和omfy_camera_centre_offset_z[i]表示与第i个活动区域对应的鱼眼摄像头的焦点中心与整个鱼眼摄像机结构的焦点中心原点的xyz偏移值,以2~16毫米为单位。omfy_camera_centre_offset_x[i]、omfy_camera_centre_offset_y[i]和omfy_camera_centre_offset_z[i]的值应当在0~65536×216_1(即4294967295)的范围(含0和4294967295)内。

omfy_field_of_view[i]表示编码图像中的第i个活动区域的球面域覆盖范围,以2~16度为单位。omfy_field_of_view[i]的值应当在0~360×216的范围(含0和360×216)内。

omfy_num_polynomial_coeffs[i]表示与第i个活动区域对应的多项式系数的数量。omfy_num_polynomial_coeffs[i]的值应当在0~8的范围(含0和8)内。预留omfy_num_polynomial_coeffs[i]大于8的值,以供itu-t或iso/iec将来使用。当全向鱼眼sei消息中的omfy_num_polynomial_coeffs[i]大于8时,解码器应当忽略该全向鱼眼sei消息。

omfy_polynomial_coeff[i][j]表示曲线函数中的第j个多项式系数值,以2~24为单位,其中,该曲线函数将来自第i个圆形区的中心的亮度像素点的归一化距离映射到第i个图像平面的法向量的球坐标的角度值。omfy_polynomial_coeff[i][j]的值应当在-128×224(即2147483648)~128×224-1(即2147483647)的范围(含-2147483648和2147483648)内。

目前,码流可以同时包括图像的全向鱼眼sei消息和帧封装指示sei消息(例如,帧封装排列sei消息或分段矩形帧封装排列sei消息)。然而,任何接收这种码流的解码器不能判断应该如何呈现同时指示为全向鱼眼视频图像和帧封装视频图像的图像。这会产生不好的用户体验。

类似地,码流可以同时包括图像的全向鱼眼sei消息和投影指示sei消息(例如,等距柱状投影sei消息或立方体投影sei消息)。然而,任何接收这种码流的解码器不能判断应该如何呈现同时指示为全向鱼眼视频图像和投影全向视频图像的图像。这会产生不好的用户体验。

另外,当前协议是在序列级别上规定全向鱼眼sei消息的持久性范围。因此,将相同的全向鱼眼sei消息属性应用于包含全向鱼眼sei消息的逐层编码视频序列(codedlayer-wisevideosequence,clvs)中的每个图像。这可以防止不同的鱼眼视频属性以动态方式应用于编码视频序列中的图像。此外,如果全向鱼眼sei消息与等距柱状投影sei消息和立方体sei消息使用相同的持久性机制,则有利于解码器的实现。

本文公开了信令技术和/或方法,禁止clvs中同时包括图像的全向鱼眼sei消息(也称为鱼眼视频信息sei消息)和帧封装指示sei消息。所述信令技术和/或方法还都能够禁止图像同时使用图像的全向鱼眼sei消息和投影指示sei消息。另外,所述信令技术和/或方法都使用取消标志和持久性标志,从而允许将不同的鱼眼视频属性以动态方式应用于编码视频序列中的不同图像。这有许多优点,例如,优化空间更多,用户体验可能更佳。

图1为用于vr视频编码的示例性系统100的示意图。系统100包括多方向摄像机101、包括编码器103的vr编码设备104、解码器107和呈现设备109。多方向摄像机101包括摄像机设备阵列。每个摄像机设备指向不同的角度,这样,多方向摄像机101能够从多个角度拍摄周围环境的多个方向视频流。例如,多方向摄像机101能够将环境视频拍摄成球体,其中,多方向摄像机101位于该球体的中心。此处使用的“球体”和“球形视频”既指几何球体又指几何球体的子部分,例如,球缺、球形穹面、球截形等。例如,多方向摄像机101可以拍摄180度视频以覆盖一半环境,这样,制作人员能够保持在多方向摄像机101的后面。多方向摄像机101还能够在360度(或360度范围内的任意子集)内拍摄视频。然而,可能会忽略多方向摄像机101下方的一部分地板,导致视频不是一个完整的球体。因此,此处使用的术语“球体”是为了清楚论述而使用的通用术语,不应视为从几何角度进行限制。

将多方向摄像机101拍摄的视频转发给vr编码设备104。vr编码设备104可以是包括专用vr编码软件的计算系统。vr编码设备104可以包括编码器103(也称为视频编码器)。在一些示例中,编码器103也可以包含在独立于vr编码设备104的计算机系统中。vr编码设备104用于将多个方向视频流转换成一个包括多个方向视频流的视频流,包括从所有相关角度记录的整个区域。这种转换可以称为图像拼接。例如,可以将同时捕获的每个视频流中的帧拼接在一起以生成单个球形图像。其次,可以从球形图像中生成球形视频流。为了清楚论述,需要说明的是,术语“帧”和“图像(picture/image)”在本文中可互换使用,除非特别说明。

接着,可以将球形视频流转发给编码器103,以进行压缩。编码器103是能够将信息从一种格式转换到另一种格式的设备和/或程序,以便进行标准化、加速和/或压缩。标准化编码器103用于对矩形图像和/或方形图像进行编码。因此,编码器103用于将球形视频流中的每个球形图像映射到多个矩形子图像。然后,可以将这些子图像承载在单独的子图像视频流中。因此,每个子图像视频流显示随时间变化的图像流,每个子图像视频流记录了球形视频流的一部分。最后,编码器103可以对每个子图像视频流进行编码,以将视频流压缩成可管理的文件大小。下面进一步详细论述编码过程。一般而言,编码器103将每个子图像视频流中的每一帧分割成像素块,通过帧间预测和/或帧内预测来压缩像素块以生成包括预测块和残差块的编码块,对残差块进行变换以进一步压缩,并使用各种滤波器对这些块进行滤波。压缩块以及对应的语法以国际标准化组织基本媒体文件格式(internationalstandardizationorganizationbasemediafileformat,isobmff)和/或全向媒体格式(omnidirectionalmediaformat,omaf)等存储在码流中。

vr编码设备104可以将编码码流存储在本地和/或服务器上的存储器中,以便按需与解码器107通信。可以经由网络105转发这些数据。网络105可以包括互联网、移动通信网(例如,基于长期演进(longtermevolution,lte)的数据网络)或其它数据通信数据系统。

解码器107(也称为视频解码器)是位于用户位置上的设备,用于执行编码过程的逆过程,以根据编码码流重建子图像视频流。解码器107还合并子图像视频流以重建球形视频流。然后,可以将球形视频流或其子部分转发给呈现设备109。呈现设备109是用于向用户显示球形视频流的设备。例如,呈现设备109可以包括固定在用户头部并遮挡用户眼睛的hmd。呈现设备可以包括每只眼睛对应的屏幕、摄像机、运动传感器、扬声器等,并且可以通过无线和/或有线连接与解码器107进行通信。呈现设备109可以向用户显示球形视频流的一部分。示出的一部分是根据呈现设备的fov和/或视角拍摄的。例如,呈现设备109可以通过运动跟踪传感器根据用户头部移动来改变fov的位置。这样,用户能够根据头部移动看到球形视频流的不同部分。此外,呈现设备109可以根据用户瞳距(interpupillarydistance,ipd)来调整每只眼睛对应的fov,从而产生三维空间的印象。

图2为示例性方法200的流程图。方法200用于使用系统100中的组件等将vr图像码流编码为多个子图像码流。在步骤201中,使用多方向摄像机101等多方向摄像机组来捕获多个方向视频流。所述多个方向视频流包括环境在不同角度的视图。例如,所述多个方向视频流可以包括在水平平面围绕摄像机以360度、180度、240度等捕获的视频,所述多方向视频流还可以包括在垂直平面围绕摄像机以360度、180度、240度等捕获的视频。生成的视频包括足以在某段时间内覆盖摄像机周围的球形区域的信息。

在步骤203中,在时域同步所述多个方向视频流。具体地,每个方向视频流包括在对应角度拍摄的一系列图像。确保能够对每个方向视频流中的在同一时域位置上捕获到的帧进行统一处理,这样多个方向视频流得到同步。然后,可以在空域将方向视频流中的帧拼接在一起,生成球形视频流。因此,球形视频流中的每一帧都包含从所有方向视频流的帧中获取的数据,这些帧发生在同一时间位置上。

在步骤205中,将所述球形视频流映射到矩形子图像视频流。本过程也可以称为将球形视频流投影到矩形子图像视频流。如上所述,编码器和解码器通常设计为对矩形帧和/或方形帧进行编码。因此,将球形视频流映射到矩形子图像视频流生成了视频流,这些视频流能够由非vr特定的编码器和解码器进行编码和解码。需要说明的是,步骤203和步骤205涉及vr视频处理,因此可以由专门的vr硬件、软件或其组合来执行。

在步骤207中,将所述矩形子图像视频流转发给编码器103等编码器。然后,编码器将子图像视频流编码为以对应媒体文件为格式的子图像码流。具体地,编码器可以将每个子图像视频流当作视频信号。编码器可以通过帧间预测、帧内预测等方式对每个子图像视频流中的每个帧进行编码。下文结合图3至图15详细论述这种编码和相应的解码以及编码器和解码器。关于文件格式,可以以isobmff存储子图像视频流。例如,以指定的分辨率捕获子图像视频流。然后,将子图像视频流下采样到各种较低的分辨率,以进行编码。每个分辨率可以称为子图像视频流(例如,视频流的一部分)的表示。质量较低的表示会导致图像不清晰,但减小了文件大小。因此,与损失视觉质量的高质量表示相比,能够使用较少的网络资源(例如,时间、带宽)向用户传输低质量表示。可以将每个表示存储在对应的轨迹集内。因此,可以将轨迹发送给用户,其中,这些轨迹包括各种分辨率(例如,视觉质量)的子图像码流。

在步骤209中,将子图像码流作为轨迹发送给解码器。在一些示例中,传输相同表示中的轨迹,这样所有子图像码流以相同的质量进行传输。这种方法的缺点是,最终的vr视频流中不太受关注的区域以与所有其它区域相同的分辨率进行传输。基于视角的编码可以用于通过这种方法来改进压缩。在基于视角的编码中,对于包含具有用户fov数据的子图像码流的轨迹,选择高质量表示以更高的分辨率发送。对于包含具有用户fov以外的区域的子图像码流的轨迹,选择低质量表示以逐渐降低的分辨率发送。在一些示例中,甚至可以完全忽略某些区域。例如,如果用户决定改变fov以包含与fov相邻的区域,则能够以略微降低的质量发送这些区域。由于远离fov的区域越来越不可能进入fov,也就越来越不可能呈现给用户,所以能够以逐渐降低的质量来发送这些区域。轨迹可以包括相对短(例如,大约3秒)的视频片段,因此为该视频的特定区域选择的表示可以根据fov的变化随时间而变化。这样,质量能够随着用户fov的变化而变化。基于视角的编码可以大大减小发送给用户的轨迹的文件大小,而不会明显降低视觉质量,这是因为质量降低的区域不太可能被用户看到。

在步骤211中,解码器107等解码器接收包含子图像码流的轨迹。然后,解码器可以将子图像码流解码为子图像视频流,以进行显示。解码过程涉及编码过程的逆过程(例如,进行帧间预测和帧内预测),下文结合图3至图10进行详细论述。

在步骤213中,解码器可以将所述子图像视频流合并成球形视频流,以显示给用户。具体地,解码器可以使用所谓的轻量级合并算法,以从每个子图像视频流中选择在同一显示时间发生的帧,并且在与对应的子图像视频流相关的位置和/或角度将这些帧合并在一起。解码器还可以使用滤波器使子图像视频流之间的边缘平滑、去除伪影等。然后,解码器可以将球形视频流转发给呈现设备(例如,呈现设备109)。

在步骤215中,呈现设备呈现所述球形视频流的视角,以显示给用户。如上所述,每个时间点可以不呈现球形视频流中在fov之外的区域。因此,在基于视角的编码中,实际上忽略低质量表示,因此,降低观看质量在减小文件大小的同时对用户体验的影响可以忽略不计。

图3为对包括子图像视频流的视频信号进行编码的示例性方法300的流程图。例如,方法300可以包括接收根据步骤200中的步骤205获取的多个子图像视频流。在方法300中,将每个子图像视频流当作视频信号输入。在方法300中,对每个子图像视频流执行步骤301至步骤317,以便执行方法200中的步骤207至步骤211。因此,来自方法300的输出视频信号包括解码后的子图像视频流,它们可以根据方法200中的步骤213和步骤215进行合并和显示。

在方法300中,编码器对包括子图像视频流等的视频信号进行编码。在所述编码过程中,通过使用各种机制来压缩所述视频信号,以减小视频文件大小。文件较小,压缩视频文件能够传输给用户,同时降低相关带宽开销。然后,解码器对压缩视频文件进行解码,以重建原始视频信号,向终端用户显示。解码过程通常是编码过程的逆过程,使得解码器重建的视频信号与编码器侧的视频信号保持一致。

在步骤301中,将视频信号输入到编码器中。例如,所述视频信号可以是存储在存储器中的未压缩视频文件。又例如,视频文件可以由视频捕获设备(例如,摄像机)捕获,并且进行编码以支持视频的直播流传输。所述视频文件可以同时包括音频分量和视频分量。所述视频分量包含一系列图像帧。按顺序观看这些图像帧时,给人以运动的视觉效果。这些帧包含以光线表示的像素,在本文中称为亮度分量(或亮度像素点),还包含以颜色表示的像素,称为色度分量(或颜色像素点)。

在步骤303中,将视频分割成块。分割包括将每一帧中的像素细分成方块和/或矩形块,以进行压缩。例如,在hevc(也称为h.265和mpeg-h第2部分)中,可以先将帧分成编码树单元(codingtreeunit,ctu),这些ctu是预定义大小(例如,64个像素×64个像素)的块。这些ctu同时包含亮度像素点和色度像素点。可以使用编码树将ctu分成块,然后,重复地将块进行细分,直到实现支持进一步编码的配置。例如,可以对帧的亮度分量进行细分,直到各个块包含相对均匀的照明值。此外,可以对帧的色度分量进行细分,直到各个块包含相对均匀的色值。因此,分割机制根据视频帧的内容不同而不同。

在步骤305中,使用各种压缩机制对在步骤303中分割的图像块进行压缩。例如,可以采用帧间预测和/或帧内预测。帧间预测利用了这样一个事实:常见场景下的对象往往出现在连续帧中。因此,描述参考帧中的对象的块不需要在相邻帧中进行重复描述。具体地,一个对象(例如,一张桌子)可能在多个帧中保持固定位置。因此,桌子描述一次,相邻帧可以重新参考所述参考帧。可以使用模式匹配机制来匹配多个帧中的对象。此外,由于对象移动或摄像机移动等原因,可以在多个帧中表示移动对象。在一个特别的示例中,视频可以显示汽车跨屏幕在多个帧中移动。运动矢量可以用来描述这种移动,或者没有这种运动。运动矢量是一个二维矢量,提供从对象在一个帧中的坐标到该对象在参考帧中的坐标的偏移。因此,帧间预测可以将当前帧中的图像块编码为运动矢量集,这些运动矢量指示当前帧中的图像块与参考帧中的对应块的偏移。

帧内预测用于对公共帧中的块进行编码。帧内预测利用了这样一个事实:亮度分量和色度分量往往聚集在一个帧中。例如,一棵树某个部分的一片绿色往往与类似的几片绿色相邻。帧内预测使用多种方向预测模式(例如,在hevc中有33种)、平面模式和直流(directcurrent,dc)模式。这些方向模式表示当前块的像素点沿着对应方向与相邻块的像素点相似/相同。平面模式表示根据行边缘处的相邻块对行/列(例如,平面)上的一系列块进行插值。平面模式实际上表示光线/颜色通过使用有数值变化的相对恒定的斜率在行/列之间进行平滑过渡。dc模式用于边界平滑,表示块与所有相邻块的像素点的平均值相似/相同,这些相邻块与方向预测模式的角度方向相关。因此,帧内预测块可以将图像块表示为各种关系预测模式值而不是实际值。此外,帧间预测块可以将图像块表示为运动矢量值而不是实际值。在任一种情况下,预测块在一些情况下可能无法准确表示图像块。任何差异都存储在残差块中。可以对这些残差块进行变换以进一步压缩文件。

在步骤307中,可以使用各种滤波技术。在hevc中,根据环内滤波方案使用滤波器。上文讨论的基于块的预测可能会在解码器侧产生块状图像。此外,基于块的预测方案可以对块进行编码,然后重建编码块,后续用作参考块。环内滤波方案迭代地将噪声抑制滤波器、去块滤波器、自适应环路滤波器和样本自适应偏移(sampleadaptiveoffset,sao)滤波器应用于块/帧。这些滤波器减轻了块伪影,以便可以准确地重建编码文件。此外,这些滤波器减轻了重建参考块中的伪影,使得伪影不太可能在后续根据重建参考块进行编码的块中产生额外伪影。

一旦视频信号完成分割、压缩和滤波,则在步骤309中,将所得数据编码到码流中。所述码流包括上文论述的数据以及支持在解码器侧进行适当的视频信号重建所需要的任何信令数据(例如,语法)。例如,这些数据可以包括分割数据、预测数据、残差块以及提供编码指令给解码器的各种标志。所述码流可以存储在存储器中,以在请求时作为isobmff的轨迹和/或轨迹片段等传输到解码器。所述码流还可以广播和/或组播到多个解码器。所述码流的产生是一个迭代过程。因此,步骤301、步骤303、步骤305、步骤307和步骤309可以在多个帧和块中连续和/或同时发生。图3所示的顺序是为了清楚和便于论述的目的,并非旨在将视频编码过程限于特定顺序。

在步骤311中,解码器接收所述码流,开始解码过程。例如,解码器可以采用熵解码方案将所述码流转换为对应的语法数据和视频数据。在步骤311中,解码器使用所述码流中的语法数据来确定帧的分割。分割应该与步骤303中的块分割的结果匹配。现在描述在步骤311中采用的熵编码/解码。编码器在压缩过程中做出许多选择,例如,根据一个(多个)输入图像中的值的空间定位从几个可能选择中选择块分割方案。指示确切的选择可能会使用大量的位元。本文所使用的“位元”是一个二进制值,作为变量(例如,根据上下文可能变化的位值)。熵编码使得编码器丢弃任何明显不适合特定情况的选项,从而留下一组可用选项。然后,为每个可用选项分配一个码字。码字的长度取决于可用选项的数量(例如,一个位元对应两个选项,两个位元对应三到四个选项,以此类推)。然后,编码器对所选选项的码字进行编码。本方案减小了码字的大小,这是因为码字与预期码字一样大,从而唯一地指示从可用选项的小子集中进行选择,而不是唯一地指示从所有可能选项的可能大集合中进行选择。然后,解码器通过以与编码器类似的方式确定该组可用选项来对所述选择进行解码。通过确定该组可用选项,解码器可以读取码字,并确定编码器做出的选择。

在步骤313中,解码器执行块解码。具体地,解码器进行逆变换,生成残差块。然后,解码器使用残差块和对应的预测块,根据分割来重建图像块。预测块可以同时包括编码器在步骤305中生成的帧内预测块和帧间预测块。然后,根据在步骤311中确定的分割数据将重建图像块放置在重建视频信号的帧中。用于步骤313的语法还可以通过上文论述的熵编码在码流中指示。

在步骤315中,以类似于编码器侧的步骤307的方式对重建视频信号的帧执行滤波。例如,可以将噪声抑制滤波器、去块滤波器、自适应环路滤波器和sao滤波器应用于帧,以去除块伪影。一旦对帧进行了滤波,可以在步骤317中转发视频信号以进行合并,然后输出到hmd等显示器以供终端用户观看。

图4为用于视频编码的示例性编码和解码(编解码)系统400的示意图。具体地,编解码系统400提供功能来支持根据方法200和300对子图像视频流进行编码和解码。此外,编解码系统400可以用于实现系统100中的编码器103和/或解码器107。

编解码系统400普遍适用于描述编码器和解码器中都使用的组件。编解码系统400接收视频信号(例如,包括子图像视频流)并对视频信号进行分割,如结合操作方法300中的步骤301和步骤303所述,产生了分割视频信号301。然后,编解码系统400在充当编码器时将分割视频信号401压缩到编码码流中,如结合方法300中的步骤305、步骤307和步骤309所述。编解码系统400在充当解码器时从码流中生成输出视频信号,如结合操作方法300中的步骤311、步骤313、步骤315和步骤317所述。编解码系统400包括通用编码器控制组件411、变换缩放和量化组件413、帧内估计组件415、帧内预测组件417、运动补偿组件419、运动估计组件421、缩放和逆变换组件429、滤波控制分析组件427、环内滤波组件425、解码图像缓冲组件423以及标头格式化和上下文自适应二进制算术编码(contextadaptivebinaryarithmeticcoding,cabac)组件431。这些组件如图所示耦合。在图4中,黑线表示待编码/待解码数据的运动,而虚线表示控制其它组件操作的控制数据的运动。编解码系统400中的组件都可以存在于编码器中。解码器可以包括编解码系统400中的组件的子集。例如,解码器可以包括帧内预测组件417、运动补偿组件419、缩放和逆变换组件429、环内滤波组件425和解码图像缓冲组件423。现在对这些组件进行描述。

分割视频信号401是一个捕获到的视频序列,该视频序列通过编码树分割成像素块。编码树采用各种划分模式将像素块细分成较小的像素块。然后,可以将这些块进一步细分成较小块。得到的块可以称为所述编码树上的节点。将较大的父节点划分成较小的子节点。节点进行细分的次数称为节点/编码树的深度。在某些情况下,划分得到的块称为编码单元(codingunit,cu)。例如,cu可以是ctu的子部分,包含亮度块、红色差色度(reddifferencechroma,cr)块和蓝色差色度(bluedifferencechroma,cb)块以及于cu对应的语法指令。划分模式可以包括二叉树(binarytree,bt)、三叉树(tripletree,tt)和四叉树(quadtree,qt),用于将节点分割成不同形状的两个、三个或四个子节点,具体形状取决于所使用的划分模式。将分割视频信号401转发给通用编码器控制组件411、变换缩放和量化组件413、帧内估计组件415、滤波控制分析组件427和运动估计组件421,以进行压缩。

通用编码器控制组件411用于根据应用约束条件决定将视频序列中的图像编码到码流中。例如,通用编码器控制组件411管理对码率/码流大小与重建质量的优化。可以根据存储空间/带宽可用性和图像分辨率请求做出这些决定。通用编码器控制组件411还根据传输速度管理缓冲器利用率,以缓解缓存欠载和超载问题。为了解决这些问题,通用编码器控制组件411管理通过其它组件进行的分割、预测和滤波。例如,通用编码器控制组件411可以动态地增加压缩复杂度以增大分辨率和带宽利用率,或者降低压缩复杂度以减小分辨率和带宽利用率。因此,通用编码器控制组件411控制编解码系统400中的其它组件以平衡视频信号重建质量与码率。通用编码器控制组件411生成控制数据,该控制数据用于控制其它组件的操作。还将控制数据转发给标头格式化和cabac组件431,以编码到码流中,从而指示解码器进行解码使用的参数。

还将分割视频信号401发送到运动估计组件421和运动补偿组件419,以进行帧间预测。可以将分割视频信号401中的帧或条带划分成多个视频块。运动估计组件421和运动补偿组件419参照一个或多个参考帧中的一个或多个块对所接收到的视频块执行帧间预测编码,以提供时间预测。编解码系统400可以执行多个编码过程,以便为视频数据中的每个块选择合适的编码模式,等等。

运动估计组件421和运动补偿组件419可以高度集成,但是出于概念目的,单独说明。由运动估计组件421执行的运动估计是生成运动矢量的过程,其中,运动矢量用于估计视频块的运动。例如,运动矢量可以指示编码对象相对于预测块的位移。预测块是发现在像素差异方面与待编码块高度匹配的块。预测块也可以称为参考块。这种像素差异可以通过绝对差异和(sumofabsolutedifference,sad)、平方差异和(sumofsquaredifference,ssd)或其它差异度量来确定。hevc使用几个编码对象,包括ctu、编码树块(codingtreeblock,ctb)和cu。例如,可以将ctu分成ctb,然后将ctb分成cb,以包含在cu中。可以将cu编码为包含预测数据的预测单元(predictionunit,pu)和/或包含cu的变换残差数据的变换单元(transformunit,tu)。运动估计组件421使用作为速率失真优化过程一部分的率失真分析来生成运动矢量、pu和tu。例如,运动估计组件421可以为当前块/帧确定多个参考块、多个运动矢量等,并且可以选择率失真特性最佳的参考块、运动矢量等。最佳率失真特性保持视频重建的质量(例如,压缩造成的数据丢失量)和编码效率(例如,最终编码的大小)之间的平衡。

在一些示例中,编解码系统400可以计算存储在解码图像缓冲组件423中的参考图像的子整数像素位置的值。例如,视频编解码系统400可以内插参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计组件421可以对整像素位置和分数像素位置执行运动搜索,并输出具有分数像素精度的运动矢量。运动估计组件421通过将pu的位置与参考图像中的预测块的位置进行比较,为帧间编码条带中的视频块的pu计算运动矢量。运动估计组件421将计算得到的运动矢量作为运动数据输出到标头格式和cabac组件431以进行编码,并作为运动数据输出到运动补偿组件419。

由运动补偿组件419执行的运动补偿可以包括根据运动估计组件421所确定的运动矢量获取或生成预测块。在一些示例中,运动估计组件421和运动补偿组件419也可以在功能上集成。在接收到当前视频块的pu的运动矢量时,运动补偿组件419可以定位运动矢量指向的预测块。然后,将预测块的像素值从正在编码的当前视频块的像素值中减去,产生像素差值,从而形成残差视频块。一般而言,运动估计组件421对亮度分量执行运动估计,运动补偿组件419将根据亮度分量计算得到的运动矢量用于色度分量和亮度分量。将预测块和残差块转发给变换缩放和量化组件413。

还将分割视频信号401发送到帧内估计组件415和帧内预测组件417。与运动估计组件421和运动补偿组件419一样,帧内估计组件415和帧内预测组件417可以高度集成,但是出于概念目的,单独说明。帧内估计组件415和帧内预测组件417参照当前帧中的各块对当前块进行帧内预测,以替代如上所述的由运动估计组件421和运动补偿组件419在帧之间执行的帧间预测。具体而言,帧内估计组件415确定帧内预测模式以用于对当前块进行编码。在一些示例中,帧内估计组件415从多个测试的帧内预测模式中选择合适的帧内预测模式对当前块进行编码。然后,将所选择的帧内预测模式转发给标头格式化和cabac组件431,以进行编码。

例如,帧内估计组件415通过对各种测试的帧内预测模式进行率失真分析来计算率失真值,并在测试的模式中选择率失真特性最佳的帧内预测模式。率失真分析通常确定编码块与为了产生编码块而进行编码的原始未编码块之间的失真(或误差)量,以及确定产生编码块所用的码率(例如,比特数)。帧内估计组件415根据各种编码块的失真和速率计算比值,以确定哪种帧内预测模式得到块的最佳率失真值。另外,帧内估计组件415可以用于根据率失真优化(rate-distortionoptimization,rdo)使用深度建模模式(depthmodelingmode,dmm)对深度图中的深度块进行编码。

当在编码器上实现时,帧内预测组件417可以根据帧内估计组件415所确定的选定帧内预测模式从预测块中生成残差块,或者在解码器上实现时,从码流中读取残差块。残差块包括预测块与原始块之间的值差异,以矩阵表示。然后,将残差块转发给变换缩放和量化组件413。帧内估计组件415和帧内预测组件417可以对亮度分量和色度分量执行操作。

变换缩放和量化组件413用于对残差块进行进一步压缩。变换缩放和量化组件413对残差块进行离散余弦变换(discretecosinetransform,dct)、离散正弦变换(discretesinetransform,dst)等变换或者进行概念上类似的变换,从而产生包括残差变换系数值的视频块。还可以进行小波变换、整数变换、子带变换或其它类型的变换。变换可以将残差信息从像素值域转换到变换域,例如,频域。变换缩放和量化组件413还用于根据频率等对变换残差信息进行缩放。这种缩放涉及对残差信息施加缩放因子,以便在不同的粒度下对不同的频率信息进行量化,这可能会影响重建视频的最终视觉质量。变换缩放和量化组件413还用于对变换系数进行量化以进一步降低码率。量化过程可以降低与部分或全部系数相关的位深度。可以通过调整量化参数来修改量化程度。在一些示例中,变换缩放和量化组件413可以对包括量化变换系数的矩阵执行扫描。将量化变换系数转发给标头格式化和cabac组件431,以编码到码流中。

缩放和逆变换组件429进行与变换缩放和量化组件413相反的操作以支持运动估计。缩放和逆变换组件429进行逆缩放、逆变换和/或反量化以重建像素域中的残差块,例如,后续用作参考块。该参考块可以成为另一当前块的预测块。运动估计组件421和/或运动补偿组件419可以通过将残差块与对应的预测块相加来计算参考块,以用于对后续块/帧进行运动估计。将滤波器应用于重建参考块,以减轻在缩放、量化和变换过程中产生的伪影。在预测后续块时,这些伪影可能会使预测不准确(并产生额外的伪影)。

滤波控制分析组件427和环内滤波组件425将滤波器应用于残差块和/或重建图像块。例如,可以将来自缩放和逆变换组件429的变换残差块与来自帧内预测组件417和/或运动补偿组件419的对应预测块组合以重建原始图像块。然后,可以将滤波器应用于重建图像块。在一些示例中,可以将滤波器应用于残差块。与图4中的其它组件一样,滤波控制分析组件427和环内滤波组件425高度集成,可以一起实现,但是出于概念目的,单独说明。将应用于重建参考块的滤波器应用于特定空间区域,这些滤波器包括用于调整如何使用这些滤波器的多个参数。滤波控制分析组件427分析重建参考块以判断在何处使用滤波器,并设置对应的参数。将这种数据转发给转发给标头格式化和cabac组件431,用作滤波控制数据以进行编码。环内滤波组件425根据所述滤波器控制数据使用这些滤波器。这些滤波器可以包括去块滤波器、噪声抑制滤波器、sao滤波器和自适应环路滤波器。这些滤波器可以根据示例应用于空间域/像素域(例如,在重建像素块上)或频域中。

当作为编码器操作时,将滤波重建图像块、残差块和/或预测块存储在解码图像缓冲组件423中,后续用于进行如上所述的运动估计。当作为解码器操作时,解码图像缓冲组件423存储重建滤波块并将重建滤波块转发给显示器,作为输出视频信号的一部分。解码图像缓冲组件423可以是任何能够存储预测块、残差块和/或重建图像块的存储设备。

标头格式化和cabac组件431从编解码系统400中的各种组件接收数据,并将这些数据编码到编码码流中,以传输到解码器。具体地,标头格式化和cabac组件431生成各种标头以对控制数据(例如,总体控制数据和滤波控制数据)进行编码。此外,包括帧内预测和运动数据的预测数据以及以量化变换系数数据为形式的残差数据都编码在码流中。最终的码流包括解码器重建原始分割视频信号401所需要的所有信息。这些信息还可以包括帧内预测模式索引表(也称为码字映射表)、各种块的编码上下文的定义、最可能帧内预测模式的指示、分割信息的指示等。可以通过熵编码对这些数据进行编码。例如,可以通过上下文自适应可变长度编码(contextadaptivevariablelengthcoding,cavlc)、cabac、基于语法的上下文自适应二进制算术编码(syntax-basedcontext-adaptivebinaryarithmeticcoding,sbac)、概率区间分割熵(probabilityintervalpartitioningentropy,pipe)编码或其它熵编码技术对这些信息进行编码。在经过熵编码之后,可以将编码码流传输到另一设备(例如,视频解码器)或存档,以供后续进行传输或检索。

如上所述,本发明提供了信令技术和/或方法,当general_non_packed_constraint_flag在活动sps中值等于1时,禁止码流包括图像的全向鱼眼sei消息。当码流包括图像的全向鱼眼sei消息时,视频编码器设置general_non_packed_constraint_flag在所述活动sps中的值等于0。因此,视频解码器知道任何包含general_non_packed_constraint_flag等于1的码流不包含任何鱼眼全向视频图像。当所述视频解码器接收包含general_non_packed_constraint_flag等于0的码流时,所述视频解码器知道所述码流可能包含与一个或多个鱼眼全向视频图像对应的全向鱼眼sei消息。

信令技术和/或方法相对于传统信令技术和方法至少具有以下优点和优势。具体而言,所公开的实施例可以用于避免不希望的、烦人的或意外的用户体验,以便能够实现更好的用户体验,并且用于降低支持处理投影指示sei消息(即,等距柱状投影sei消息或立方体投影sei消息)和全向鱼眼sei消息的解码器的实现复杂度。

为了实现本文公开的信令技术和/或方法,对语法元素general_non_packed_constraint_flag的语义进行如下更改。

general_non_packed_constraint_flag等于1表示cvs中不存在帧封装排列sei消息、分段矩形帧封装排列sei消息、等距柱状投影sei消息、立方体投影sei消息或全向鱼眼sei消息。general_non_packed_constraint_flag等于0表示cvs中可能存在或者可能不存在一个或多个帧封装排列sei消息、分段矩形帧封装排列sei消息、等距柱状投影sei消息、立方体投影sei消息或全向鱼眼sei消息。

注2:解码器可以忽略general_non_packed_constraint_flag的值,因为解码过程要求与cvs中是否存在帧封装排列sei消息、分段矩形帧封装排列sei消息、等距柱状投影sei消息、立方体投影sei消息或全向鱼眼sei消息及其解释不相关。

图5为示例性视频编码器500的框图。视频编码器500可以对子图像码流进行编码。视频编码器500可以用于实现编解码系统400的编码功能和/或执行方法300中的步骤301、步骤303、步骤305、步骤307和/或步骤309。与编码器103一样,编码器500还可以用于执行方法200中的步骤205至步骤209。编码器500对输入视频信号(例如,子图像视频流)进行分割,从而产生基本上类似于分割视频信号401的分割视频信号501。然后,编码器500中的组件将分割视频信号501进行压缩并编码到码流中。

具体地,将分割视频信号501转发给帧内预测组件517,以进行帧内预测。帧内预测组件517可以基本上类似于帧内估计组件415和帧内预测组件417。还将分割视频信号501转发给运动补偿组件521,以根据解码图像缓冲组件523中的参考块进行帧间预测。运动补偿组件521可以基本上类似于运动估计组件421和运动补偿组件419。将来自帧内预测组件517和运动补偿组件521的预测块和残差块转发给变换和量化组件513,以对残差块进行变换和量化。变换和量化组件513可以基本上类似于变换缩放和量化组件413。将变换量化残差块和对应的预测块(连同相关的控制数据)转发给熵编码组件531,以编码到码流中。熵编码组件531可以基本上类似于标头格式化和cabac组件431。

还将变换量化残差块和/或对应的预测块从变换和量化组件513转发给逆变换和量化组件529,以重建成参考块,供运动补偿组件521使用。逆变换和量化组件529可以基本上类似于缩放和逆变换组件429。还将环内滤波组件525中的环内滤波器应用于残差块和/或重建参考块,具体取决于示例。环内滤波组件525可以基本上类似于滤波控制分析组件427和环内滤波组件425。环内滤波组件525可以包括多个滤波器,如结合环内滤波组件425所述。然后,将滤波块存储在解码图像缓冲组件523中,以作为参考块供运动补偿组件521使用。解码图像缓冲组件523可以基本上类似于解码图像缓冲组件423。

编码器500接收从球形视频流分割而来的子图像视频流,以便与使用基于视角的编码的vr系统一起使用。如上所述,当子图像视频流以不同的分辨率传输到解码器时,由于在降低质量较差的子图像视频流的分辨率的过程中会丢失数据,所以可能会产生伪影。这是因为帧内预测和帧间预测都是根据相邻块的像素点(像素)对块进行编码的。当参考像素点横跨子图像视频流边界时,由于相邻子图像视频流中的数据会丢失,所以参考像素点可能会变得不准确。为了缓解这些问题,编码器500中的运动补偿组件521和帧内预测组件517对每个子图像视频流进行编码,使其自成一体。具体地,运动补偿组件521和帧内预测组件517用于在编码时仅参考同一子图像视频流中的整像素点位置。具体地,在对第一子图像视频流进行编码时,避免编码器500参考其它子图像视频流中的像素点位置。这既适用于帧内预测模式,也适用于帧间预测运动矢量。此外,运动补偿组件521和帧内预测分量517可以参考第一子图像视频流中的分数像素点位置,但前提是能够通过插值只根据第一子图像码流内(例如,不参考任何其它子图像码流)的像素点位置来重建参考分数像素点位置上的像素点。此外,运动补偿组件521可以在执行帧间预测时为第一子图像码流生成运动矢量候选列表。然而,当候选列表中的运动矢量来自其它子图像码流中的块时,运动补偿组件521可能不包括这些运动矢量。这些限制确保了能够在不参考相邻子图像码流的情况下对每个子图像码流进行解码,因此避免了分辨率不匹配。

此外,视频编码可以采用并行化,例如,波前并行处理(wavefrontparallelprocessing,wpp),以加快视频编码过程。wpp允许对当前块(例如,ctu)进行编码,只要当前块上方的块以及当前块上方和右侧的块已经解码。wpp给人的印象类似于波浪,其中,第一排块的编码比第二排块提前编码两个块,也就是比第三排块提前两个块,以此类推。在解码器侧,子图像码流帧可以看作是片,可以将这些片合并以重建球形视频流。当存在片时,可以配置wpp不操作,因为wpp只对整个帧操作一次(例如,来自球形视频流的帧),而在片层级上不操作。相应地,编码器500可以在对子图像码流进行编码时禁用wpp。例如,wpp使用entropy_coding_sync_enabled_flag。该标志包含在每个图像的pps语法中。编码器500可以将entropy_coding_sync_enabled_flag设置为0,以对子图像视频流禁用wpp。

此外,通过将子图像视频流编码到轨迹中并确保这些轨迹具有相同呈现时间,编码器500能够避免子图像码流之间的定时不匹配问题。编码器500还能够确保公共vr图像(例如,球形视频流中的帧)的每个像素点采用相同的图像顺序编号,即使这些像素点被分割成不同的子图像码流和/或携带在不同的轨迹中。

图6为可以对子图像码流进行解码的示例性视频解码器600的框图。视频解码器600可以用于实现编解码系统400的解码功能和/或执行操作方法300中的步骤311、步骤313、步骤315和/或步骤317。与解码器107一样,解码器600还可以用于执行方法200中的步骤211至步骤213。解码器600从编码器500等接收多个子图像码流,生成包括子图像视频流的重建输出视频信号,将所述子图像视频流合并成球形视频流,通过呈现设备转发所述球形视频流以显示给用户。

熵解码组件633接收所述码流。熵解码组件633用于执行熵解码方案,例如,cavlc、cabac、sbac、pipe编码或其它熵编码技术。例如,熵解码组件633可以使用标头信息来提供上下文以解析编码为所述码流中码字的附加数据。解码信息包括对视频信号进行解码所需的任何信息,例如,总体控制数据、滤波控制数据、分割信息、运动数据、预测数据和残差块中的量化变换系数。将量化变换系数转发给逆变换和量化组件629,以重建成残差块。逆变换和量化组件629可以类似于逆变换和量化组件529。

将重建残差块和/或预测块转发给帧内预测组件617,以根据帧内预测操作重建成图像块。帧内预测组件617可以类似于帧内估计组件415和帧内预测组件417。具体地,帧内预测组件617使用预测模式来定位帧中的参考块,并将残差块添加到上述结果中以重建帧内预测图像块。经由环内滤波组件625将重建帧内预测图像块和/或残差块以及对应的帧间预测数据转发给解码图像缓冲组件623。解码图像缓冲组件423和环内滤波组件425可以基本上类似于解码图像缓冲组件423和环内滤波组件425。环内滤波组件625对重建图像块、残差块和/或预测块进行滤波。这些信息存储在解码图像缓冲组件623中。将来自解码图像缓冲组件623的重建图像块转发给运动补偿组件621,以进行帧间预测。运动补偿组件621可以基本上类似于运动估计组件421和运动补偿组件419。具体地,运动补偿组件621使用参考块的运动矢量来生成预测块,并将残差块添加到上述结果中以重建图像块。还可以经由环内滤波组件625将所产生的重建块转发给解码图像缓冲组件623。解码图像缓冲组件623继续存储附加的重建图像块,这些重建图像块可以通过分割信息重建成帧。也可以按顺序放置这些帧。将所述顺序输出到显示器,作为重建输出视频信号。

图7示出了用于携带标志(例如,general_non_packed_constraint_flag)的码流700的结构的示例。所述标志用于向解码器指示码流700是否包括任何鱼眼全向视频图像。本文所使用的“标志”可以称为指示属性。

如图所示,码流700包括clvs702。虽然图7只示出了一个clvs702,但是应理解,在实际应用中,码流700中可以包括一个或多个clvs。将clvs702划分为访问单元,即第一访问单元704和第二访问单元706。虽然图7示出了两个访问单元,但是应理解,在实际应用中,码流700中可以包括一个或多个访问单元。第一访问单元704包括多个网络访问层(networkaccesslayer,nal)数据单元,即第一nal数据单元708、第二nal数据单元710、第三nal数据单元712和第四nal数据单元714。尽管未示出,第二访问单元706可以包括类似的nal数据单元。此外,虽然图7示出了四个nal数据单元,但是应理解,在实际应用中,码流700中可以包括一个或多个访问单元。

在一个实施例中,第一nal数据单元708包含sps。如上所述,在一个实施例中,所述sps中包括值为1或0的标志(例如,general_non_packed_constraint_flag)或指示属性。在一个实施例中,所述sps设置在第一nal数据单元708中。在一个实施例中,所述sps还可以设置在其它数据单元(例如,第二nal数据单元710、第三nal数据单元712和第四nal数据单元714等)中的一个或多个中。

在图7中,第二nal数据单元710包含图像参数集(pictureparameterset,pps),第三nal数据单元712包含条带信息。在一个实施例中,pps和条带可以设置在其它数据单元中。第四nal数据单元714可以包含sei消息,也可以不包含sei消息,取决于所述sps中的标志的值。例如,当编码器将所述标志或指示属性设置为1时,clvs702(例如,图像序列和编码视频序列(codedvideosequence,cvs)的基本层上的关联非视频编码层(videocodinglayer,vcl)nal单元)中不存在帧封装排列sei消息、分段矩形帧封装排列sei消息、等距柱状投影sei消息、立方体投影sei消息或全向鱼眼sei消息。或者,当编码器将所述标志或指示属性设置为1时,clvs702中可能存在或者可能不存在一个或多个帧封装排列sei消息、分段矩形帧封装排列sei消息、等距柱状投影sei消息、立方体投影sei消息或全向鱼眼sei消息。

图8为一种由视频编码器(例如,编码器103)执行的编码方法800的实施例。方法800可以在要将视频数据编码到码流中并传输到视频解码器(例如,解码器107)时执行。执行方法800可以确保视频解码器能够正确或适当地呈现所述码流。

在步骤802中,将视频数据的表示编码到码流中。禁止所述码流包括鱼眼补充增强信息(supplementalenhancementinformation,sei)消息以及应用于所述码流中的任何特定编码图像的投影指示sei消息和帧封装指示sei消息中的一个。

在一个实施例中,所述码流中的所述视频数据的表示包含鱼眼全向视频图像。在一个实施例中,所述投影指示sei消息包括等距柱状投影sei消息。在一个实施例中,所述投影指示sei消息包括立方体投影sei消息。在一个实施例中,所述帧封装指示sei消息包括帧封装排列sei消息。在一个实施例中,所述帧封装指示sei消息包括分段矩形帧封装排列sei消息。

在步骤804中,将所述码流传输到视频解码器(例如,解码器107)。

图9为一种由视频解码器(例如,解码器107)执行的编码方法900的实施例。方法900可以在接收到编码码流时执行。在一个实施例中,从视频编码器(例如,编码器103)接收所述编码码流。执行方法900可以确保视频解码器能够正确或适当地呈现所述码流。

在步骤902中,接收编码码流,其中,所述编码码流包含视频数据的表示。禁止所述编码码流包括全向鱼眼sei消息以及应用于所述码流中的任何特定编码图像的投影指示sei消息和帧封装指示sei消息中的一个。

在一个实施例中,所述码流中的所述视频数据的表示包含鱼眼全向视频图像。在一个实施例中,所述投影指示sei消息包括等距柱状投影sei消息。在一个实施例中,所述投影指示sei消息包括立方体投影sei消息。在一个实施例中,所述帧封装指示sei消息包括帧封装排列sei消息。在一个实施例中,所述帧封装指示sei消息包括分段矩形帧封装排列sei消息。

在步骤904中,对所述编码码流进行解码。

图10为一种对视频信息进行编码的方法1000的实施例。方法1000可以在要将视频数据编码到码流中并传输到视频解码器(例如,解码器107)时执行。执行方法1000可以确保视频解码器能够正确或适当地呈现所述码流。

在步骤1002中,识别当前图像为鱼眼全向视频图像,其中,所述鱼眼全向视频图像包含由鱼眼摄像头捕获的多个活动区域。在一个实施例中,全向鱼眼sei消息指示所述当前图像为所述鱼眼全向视频图像。在步骤1004中,当识别所述当前图像为所述鱼眼全向视频图像时,确定所述当前图像不允许为投影全向视频图像。

图11为一种对视频信息进行编码的方法1100的实施例。方法1100可以在要将视频数据编码到码流中并传输到视频解码器(例如,解码器107)时执行。执行方法1100可以确保视频解码器能够正确或适当地呈现所述码流。

在步骤1102中,识别当前图像为除鱼眼全向视频图像之外的图像,其中,所述鱼眼全向视频图像包含由鱼眼摄像头捕获的多个活动区域。在一个实施例中,sei消息指示所述当前图像为除所述鱼眼全向视频图像之外的图像。在一个实施例中,等距柱状投影sei消息指示所述当前图像为除所述鱼眼全向视频图像之外的图像。在一个实施例中,立方体投影sei消息指示所述当前图像为除所述鱼眼全向视频图像之外的图像。在步骤1104中,当识别所述当前图像为除所述鱼眼全向视频图像之外的图像时,确定所述当前图像允许为投影全向视频图像。

图12为一种对视频信息进行编码的方法1200的实施例。方法1200可以在要将视频数据编码到码流中并传输到视频解码器(例如,解码器107)时执行。执行方法1200可以确保视频解码器能够正确或适当地呈现所述码流。

在步骤1202中,识别当前图像为除鱼眼全向视频图像之外的图像,其中,所述鱼眼全向视频图像包含由鱼眼摄像头捕获的多个活动区域。在一个实施例中,sei消息指示所述当前图像为除所述鱼眼全向视频图像之外的图像。在一个实施例中,等距柱状投影sei消息指示所述当前图像为除所述鱼眼全向视频图像之外的图像。在一个实施例中,立方体投影sei消息指示所述当前图像为除所述鱼眼全向视频图像之外的图像。在步骤1204中,当识别所述当前图像为除所述鱼眼全向视频图像之外的图像时,确定所述当前图像允许为帧封装全向视频图像。

图13为一种对视频信息进行编码的方法1300。方法1300可以在要将视频数据编码到码流中并传输到视频解码器(例如,解码器107)时执行。执行方法1300可以确保视频解码器能够正确或适当地呈现所述码流。

在步骤1302中,禁止视频编码器使用两个sei消息将当前图像编码到码流的编码视频序列中。在一个实施例中,所述两个sei消息之一为全向鱼眼sei消息。在一个实施例中,所述两个sei消息为全向鱼眼sei消息和帧封装指示sei消息。在一个实施例中,所述两个sei消息为全向鱼眼sei消息和投影指示sei消息。

在步骤1304中,将所述当前图像编码到码流的编码视频序列中。在步骤1306中,将所述码流传输到视频解码器,以呈现所述当前图像。

上文在hevc的上下文下描述了本发明的思想。但是,这些思想可以应用于任何其它视频编解码器,包括未来的视频编解码器,标准或非标准的视频编解码器。此外,这些思想可以单独应用或组合应用。

图14为本申请实施例提供的编码设备1400的示意图。编码设备1400适用于执行本文公开的方法和过程。编码设备1400包括用于接收数据的入端口1410和接收单元(rx)1420;用于处理所述数据的处理器、逻辑单元或中央处理器(centralprocessingunit,cpu)1430;用于传输所述数据的传输单元(tx)1440和出端口1450;用于存储所述数据的存储器1460。编码设备1400还可以包括耦合到入端口1410、接收单元1420、传输单元1440和出端口1450的光电(optical-to-electrical,oe)组件和电光(electrical-to-optical,eo)组件,用于光信号或电信号的出口或入口。

处理器1430通过硬件和软件实现。处理器1430可以实现为一个或多个cpu芯片、核(例如,多核处理器)、现场可编程门阵列(field-programmablegatearray,fpga)、专用集成电路(applicationspecificintegratedcircuit,asic)和数字信号处理器(digitalsignalprocessor,dsp)。处理器1430与入端口1410、接收单元1420、传输单元1440、出端口1450和存储器1460通信。处理器1430包括编码模块1470。编码模块1470实现上述公开的实施例。因此,通过编码模块1470为编码设备1400的功能提供了实质性的改进,并且影响了编码设备1400到不同状态的转换。或者,编码模块1470实现为存储在存储器1460中并由处理器1430执行的指令。

视频编码设备1400还可以包括与用户进行数据通信的输入和/或输出(input/output,i/o)设备1480。i/o设备1480可以包括用于显示视频数据的显示器、用于输出音频数据的扬声器等输出设备。i/o设备1480还可以包括键盘、鼠标、轨迹球等输入设备以及用于与这些输出设备交互的对应接口。

存储器1460包括一个或多个磁盘、磁带机或固态硬盘,并且可以用作溢出数据存储设备,以在选择程序来执行时存储此类程序,或者存储在执行程序过程中读取的指令和数据。存储器1460可以是易失性的和/或非易失性的,并且可以是只读存储器(read-onlymemory,rom)、随机存取存储器(random-accessmemory,ram)、三态内容寻址存储器(ternarycontent-addressablememory,tcam)或静态随机存取存储器(staticrandom-accessmemory,sram)。

图15为一种编码构件1500的实施例的示意图。在实施例中,编码构件1500在视频编码设备1502(例如,编码器103或解码器107)中实现。视频编码设备1502包括接收构件1501。接收构件1501用于接收图像进行编码或者接收码流进行解码。视频编码设备1502包括耦合到接收构件1501的传输构件1507。传输构件1507用于将所述码流传输到解码器或者将解码图像传输到显示构件(例如,其中一个i/o设备1480)。

视频编码设备1502包括存储构件1503。存储构件1503耦合到接收构件1501或传输构件1507中的至少一个。存储构件1503用于存储指令。视频编码设备1502还包括处理构件1505。处理构件1505耦合到存储构件1503。处理构件1505用于执行存储在存储构件1503中的指令,以执行本文公开的方法。

虽然本发明提供了几个实施例,但应理解,在不脱离本发明的精神或范围的情况下,所公开的系统和方法可能通过其它多种具体形式体现。本发明的示例应被视为说明性而非限制性的,且本发明并不限于本文中所给出的细节。例如,各种元件或组件可以组合或集成在另一系统中,或者某些特征可以省略或不实施。

另外,在不脱离本发明范围的情况下,各种实施例中描述和说明为离散或单独的技术、系统、子系统和方法可以与其它系统、组件、技术或方法组合或集成。其它变更、替换、更改示例对本领域技术人员而言是显而易见的,均不脱离本文中公开的精神和范围。

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