CN110754091A - 用于360度视频编码的解块滤波 - Google Patents

用于360度视频编码的解块滤波 Download PDF

Info

Publication number
CN110754091A
CN110754091A CN201880040446.3A CN201880040446A CN110754091A CN 110754091 A CN110754091 A CN 110754091A CN 201880040446 A CN201880040446 A CN 201880040446A CN 110754091 A CN110754091 A CN 110754091A
Authority
CN
China
Prior art keywords
picture
blocks
boundary
video
block
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.)
Granted
Application number
CN201880040446.3A
Other languages
English (en)
Other versions
CN110754091B (zh
Inventor
F·亨利
G·范德奥维拉
M·Z·科班
M·卡切维奇
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN110754091A publication Critical patent/CN110754091A/zh
Application granted granted Critical
Publication of CN110754091B publication Critical patent/CN110754091B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • 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
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • 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/176Methods 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 block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

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

Abstract

一种解码360度视频的方法,其包含:接收指示投影到2D图片上的360度视频图片的视频数据,所述2D图片被划分成多个块;预测所述2D图片的所述块中的第一块;和基于所述360度视频图片中的所述块中的所述第一块和所述块中的第二块之间的边界的位置对沿所述块中的所述第一块的边界的像素进行解块滤波。

Description

用于360度视频编码的解块滤波
本申请要求2017年7月5日提交的美国临时申请第62/528,938号、2017年12月20日提交的美国临时申请第62/608,395号和2018年7月3日提交的美国申请第16/026,350号的权益,其每一个的全部内容通过引用并入本文。
技术领域
本公开涉及编码和解码视频数据。
背景技术
数字视频功能可以并入各种装置中,包含数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、膝上型计算机或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏机、蜂窝或卫星无线电电话、所谓的“智能电话”、视频电话会议装置、视频流式传输装置等。数字视频装置实施视频编码技术,例如由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分,高级视频编码(AVC)、ITU-T H.265(也被称为高效视频编码(HEVC))定义的标准以及此些标准的扩展中描述的那些。通过实施此些视频编码技术,视频装置可以更有效地传输、接收、编码、解码和/或存储数字视频信息。
视频编码技术包含空间(图片内)预测和/或时间(图片间)预测,以减少或去除视频序列中固有的冗余。对于基于块的视频编码,可以将视频切片(例如,视频图片或视频图片的一部分)分割成视频块,所述视频块也可以被称为编码树单元(CTU)、编码单元(CU)和/或编码节点。图片的帧内编码(I)切片中的视频块使用相对于同一图片中的相邻块中的参考样本的空间预测进行编码。图片的帧间编码(P或B)切片中的视频块可以使用相对于同一图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。图片可以被称为帧,并且参考图片可以被称为参考帧。
在基于块的视频编码系统(例如,上述)中,在编码块之间的边界处可能出现视觉上明显的伪像。较旧的系统应用后滤波器来减少此些解码后的伪像。编码系统(例如,AVC和HEVC)包含环内解块滤波器。在环内解块滤波器中,滤波块用于预测其它图片的帧间预测块(换句话说,在应用解块滤波之后,解码图片放置在编码器/解码器的解码图片缓冲器中)。例如,在HEVC中,基于某些标准对块边界附近的像素进行解块:1)块边界是预测单元或变换单元边界;2)边界强度度量大于零;和3)指示块边界两侧的信号变化的度量低于指定阈值。也可以基于边界附近的本地信号标准进行强或弱滤波决策。“强”滤波器是比“正常”滤波器沿边界影响更多像素的滤波器。
最近,已经开发了用于编码和传输360度视频(例如,用于VR应用)的技术。由于VR视频技术的最新发展,由用户体验的视频环境已经变得与主体(视频本身)一样重要。此VR视频技术可以使用360度视频技术,其涉及360度视频图形的实时流式传输和/或360度视频从360度摄像机或网站到实时视频显示器(例如,VR头戴式显示器(HMD))的实时流式传输。VR HMD允许用户通过旋转头部改变视角来体验周围发生的动作。为了创建360度视频,可以使用一组特殊的相机同时记录场景的所有360度,或者可以将多个视图(例如,视频和/或计算机生成的图像)拼接在一起以形成图像。
在视频数据已被编码之后,视频数据可被打包以进行传输或存储。视频数据可以被组装成符合多种标准中的任何一种的视频文件,例如国际标准化组织(ISO)基础媒体文件格式及其扩展(例如,AVC文件格式)。
发明内容
通常,本公开涉及用于编码和解码视频数据的技术。在一些实例中,本公开描述了用于将解块滤波器应用于利用投影(例如,等量矩形投影(ERP)、立方体贴图投影(CMP)和/或调整立方体贴图投影(ACP))产生的360度视频数据的技术。在一些实例中,可以在投影之后将360度视频数据打包成一帧。打包视频数据在整个打包帧中可能不连续,从而在尝试应用滤波技术(例如,解块滤波)时引起问题。本公开的示范性技术可以利用图片边界和立方体面边界处的像素连续性来改善解块性能。
在一个实例中,本公开描述了一种解码360度视频的方法,所述方法包括:接收指示投影到2D图片上的360度视频图片的视频数据,所述2D图片被划分成多个块;预测所述2D图片的所述块中的第一块;和基于所述360度视频图片中的所述块中的所述第一块和所述块中的第二块之间的所述边界的位置对沿所述块中的所述第一块的边界的像素进行解块滤波。
在另一个实例中,本公开描述了一种被配置成解码360度视频的设备,所述设备包括:存储器,其被配置成存储所述360度视频;和与所述存储器通信的一或多个处理器,所述一或多个处理器被配置成:接收指示投影到2D图片上的所述360度视频图片的视频数据,所述2D图片被划分成多个块;预测所述2D图片的所述块中的第一块;和基于所述360度视频图片中的所述块中的所述第一块和所述块中的第二块之间的所述边界的位置对沿所述块中的所述第一块的边界的像素进行解块滤波。
在另一个实例中,本公开描述了一种编码360度视频的方法,其包括:将360度视频图片投影到2D图片上;将所述2D图片划分成多个块;预测所述2D图片的所述块中的第一块;和基于所述360度视频图片中的所述块中的所述第一块和所述块中的第二块之间的所述边界的位置对沿所述块中的所述第一块的边界的像素进行解块滤波。
在另一个实例中,本公开描述了一种非暂时性计算机可读存储媒体,其存储指令,所述指令在被执行时使被配置成解码视频数据的装置的一或多个处理器进行以下操作:接收指示投影到2D图片上的360度视频图片的视频数据,所述2D图片被划分成多个块;预测所述2D图片的所述块中的第一块;和基于所述360度视频图片中的所述块中的所述第一块和所述块中的第二块之间的所述边界的位置对沿所述块中的所述第一块的边界的像素进行解块滤波。
一或多个实例的细节在附图和以下描述中阐述。根据描述和附图并且根据权利要求书,其它特征、目的和优点将是显而易见的。
附图说明
图1是示出了被配置成进行本公开的技术的示范性视频编码和解码系统的框图。
图2A和2B是示出了用于呈现360度和/或全景视频数据的显示模型的表示的概念图。
图3示出了利用等量矩形投影(ERP)打包的360度视频的一帧。
图4A和图4B描绘了由于在图片边界处未进行解块而引起的利用ERP的360度视频数据中的视觉伪像。
图5是示出了360度视频的示范性3x2打包结构的概念图。
图6示出了360度视频数据中的伪像。
图7A和图7B描绘了由于利用立方体贴图投影的360度视频的立方体面边界处未进行解块而引起的视觉伪像。
图8是示出了可以在解块滤波中使用的当前块和配对相邻块的概念图。
图9示出了利用等量矩形投影打包的360度视频数据的图片的一个实例。
图10示出了投影360度视频数据的立方体和2D矩形图片中的示范性3x2紧凑表示。
图11示出了立方体贴图投影到使用4x3表示的2D矩形图片中的一个实例。
图12示出了利用3x2立方体贴图投影打包的360度视频数据的图片的相邻边缘的一个实例。
图13示出了利用4x3立方体贴图投影打包的360度视频数据的图片的相邻边缘的一个实例。
图14示出了沿利用等量矩形投影的360度视频数据的顶部边界的块P和块Q之间的示范性像素配对。
图15示出了沿利用等量矩形投影的360度视频数据的底部边界的块P和块Q之间的示范性像素配对。
图16示出了沿利用等量矩形投影的360度视频数据的左侧边界的块P和块Q之间的示范性像素配对。
图17示出了沿利用等量矩形投影的360度视频数据的右侧边界的块P和块Q之间的示范性像素配对。
图18是示出了在图片的不同部分中使用不同滤波器的概念图。
图19描绘了边界强度推导的示范性过程。
图20是示出了被配置成进行本公开的技术的示范性视频编码器的框图。
图21是示出了被配置成进行本公开的技术的示范性视频解码器的框图。
图22是示出了本公开的示范性编码方法的流程图。
图23是示出了本公开的示范性解码方法的流程图。
具体实施方式
通常,本公开涉及用于编码和解码视频数据的技术。在一些实例中,本公开描述了用于将解块滤波器应用于利用投影(例如,等量矩形投影(ERP)、立方体贴图投影(CMP)和/或调整立方体贴图投影(ACP))产生的360度视频数据的技术。在一些实例中,可以在投影之后将360度视频数据打包成一帧。打包视频数据在整个打包帧中可能不连续,从而在尝试应用滤波技术(例如,解块滤波)时引起问题。本公开的示范性技术可以利用图片边界和立方体面边界处的像素连续性来改善解块性能。
图1是示出了可以利用用于对360度视频数据进行解块滤波的技术的示范性视频编码和解码系统10的框图。如图1中所示,系统10包含源装置12,其提供编码视频数据,以便稍后由目的装置14解码。特别地,源装置12经由计算机可读媒体16将视频数据提供给目的装置14。源装置12和目的装置14可以包括多种装置中的任何一种,包含台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、电话手持机(例如,所谓的“智能”电话)、所谓的“智能”平板、电视、相机、显示装置、数字媒体播放器、视频游戏机、视频流式传输装置等。在一些情况下,源装置12和目的装置14可以被配备用于无线通信。
目的装置14可以经由计算机可读媒体16接收待解码的编码视频数据。计算机可读媒体16可以包括能够将编码视频数据从源装置12移动到目的装置14的任何类型的媒体或装置。在一个实例中,计算机可读媒体16可以包括通信媒体,以使源装置12能够将编码视频数据直接实时地传输到目的装置14。可以根据通信标准(例如,无线通信协议)来调制编码视频数据,并且将其传输到目的装置14。通信媒体可以包括任何无线或有线通信媒体,例如射频(RF)频谱或一或多个物理传输线。通信媒体可以形成基于分组的网络(例如,局域网、广域网或全球网(例如,因特网))的一部分。通信媒体可以包含路由器、交换机、基站或有助于从源装置12到目的装置14的通信的任何其它设备。
在一些实例中,编码数据可以从输出接口22输出到存储装置。类似地,可以通过输入接口28从存储装置访问编码数据。存储装置可以包含各种分布式或本地访问的数据存储媒体中的任何一种,例如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪速存储器、易失性或非易失性存储器、或用于存储编码视频数据的任何其它合适的数字存储媒体。在另一个实例中,存储装置可以对应于文件服务器或另一中间存储装置,其可以存储由源装置12生成的编码视频。目的装置14可以经由流式传输或下载来从存储装置访问存储的视频数据。文件服务器可以是能够存储编码视频数据并将所述编码视频数据传输到目的装置14的任何类型的服务器。示范性文件服务器包含web服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)装置或本地磁盘驱动器。目的装置14可以通过任何标准数据连接(包含互联网连接)来访问编码视频数据。这可以包含适合于访问存储在文件服务器上的编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。来自存储装置的编码视频数据的传输可以是流式传输、下载传输或其组合。
本公开的用于对360度视频数据进行解块滤波的技术不必限于无线应用或设置。所述技术可以应用于视频编码,以支持多种多媒体应用中的任何一种,例如空中电视广播、电缆电视传输、卫星电视传输、互联网流式视频传输(例如,通过HTTP的动态自适应流式传输(DASH))、编码到数据存储媒体上的数字视频、存储在数据存储媒体上的数字视频的解码或其它应用。在一些实例中,系统10可以被配置成支持单向或双向视频传输,以支持应用(例如,视频流式传输、视频回放、视频广播和/或视频电话)。
在图1的实例中,源装置12包含视频源18、视频编码器20和输出接口22。目的装置14包含输入接口28、视频解码器30、显示装置32和区域确定单元34。在其它实例中,源装置和目的装置可以包含其它组件或布置。例如,源装置12可以从外部视频源18(例如,外部相机)接收视频数据。同样,目的装置14可以与外部显示装置接口连接,而不是包含集成显示装置。
图1所示的系统10仅是一个实例。用于对360度视频数据进行解块滤波的技术可以由任何数字视频编码和/或解码装置进行。尽管通常本公开的技术由视频编码装置进行,但是所述技术也可以由通常被称为“CODEC”的视频编码器/解码器进行。源装置12和目的装置14仅是此些编码装置的实例,其中源装置12生成编码视频数据以传输到目的装置14。在一些实例中,装置12、14可以以基本上对称的方式操作,使得装置12、14中的每一个都包含视频编码和解码组件。因此,系统10可以支持视频装置12、14之间的单向或双向视频传输,例如用于视频流式传输、视频回放、视频广播或视频电话。
源装置12的视频源18可以包含视频捕获装置(例如,摄像机)、含有先前捕获的视频的视频档案和/或视频馈送接口,以从视频内容提供商接收视频。作为另一替代方案,视频源18可以生成基于计算机图形的数据作为源视频,或直播视频、存档视频和计算机生成视频的组合。在一些情况下,如果视频源18是摄像机,则源装置12和目的装置14可以形成所谓的相机电话或视频电话。然而,如上所述,本公开中描述的技术通常可以应用于视频编码,并且可以应用于无线和/或有线应用。在每种情况下,捕获的、预捕获的或计算机生成的视频可以由视频编码器20编码。然后,编码视频信息可以由输出接口22输出到计算机可读媒体16上。
在本公开的实例中,视频源18可以被配置成捕获360度视频数据。例如,视频源18可以是相机组,其通常由指向不同方向并且理想地共同覆盖相机组周围的所有视点的多个单独相机组成。视频源18可以进一步被配置成进行图像拼接,其中由多个单独相机拍摄的视频图片在时域中同步并在空间域中拼接以成为球形视频,但是被映射为矩形格式,例如等量矩形贴图(例如,世界地图)或立方体贴图。
在一个实例中,视频编码器20可以以多种分辨率(例如6k、4k、HD(1080p)和720p)对整个360度全景的数据进行编码。也就是说,视频编码器20可以以这些多种分辨率中的每一种对每个区域(或“图块(tile)”)的视频数据进行编码。以这种方式,图块粒度对于每种分辨率可以是相同的。视频编码器20在编码各种分辨率时可以避免层间依赖性。因此,视频解码器30可以以选择性的方式(例如,如由区域确定单元34所选择)以不同的分辨率对图块的视频数据进行解码。例如,区域确定单元34可以为用户当前视点的中心处的区域选择最高可用分辨率。远离当前视点的中心,解码分辨率可能会逐渐降低。也就是说,区域确定单元34可以为距当前视点的中心较远的区域(图块)选择成比例地降低的分辨率。因此,视频解码器30可以针对用户当前视点后面的图块以最低可用分辨率对视频数据进行解码。
计算机可读媒体16可以包含瞬态媒体(例如,无线广播或有线网络传输)或存储媒体(即非暂时性存储媒体)(例如,硬盘、闪存驱动器、压缩盘、数字视频盘、蓝光盘或其它计算机可读媒体)。在一些实例中,网络服务器(未示出)可以例如经由网络传输从源装置12接收编码视频数据,并将编码视频数据提供给目的装置14。类似地,媒体生产设施(例如,盘冲压设施)的计算装置可以从源装置12接收编码视频数据,并生产含有编码视频数据的盘。因此,在各个实例中,计算机可读媒体16可以被理解为包含各种形式的一或多种计算机可读媒体。
目的装置14的输入接口28从计算机可读媒体16接收信息。计算机可读媒体16的信息可以包含由视频编码器20定义的句法信息,所述句法信息还由视频解码器30使用,包含描述块和其它编码单元的特性和/或处理的句法元素。显示装置32将解码视频数据显示给用户,并且可以包括多种显示装置中的任何一种,例如阴极射线管(CRT)、液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或其它类型的显示装置。
根据本公开的示范性技术,输出接口22和输入接口28可以对应于网络接口,例如实施一或多种网络协议(例如,以太网)的网络接口卡(NIC)。计算机可读媒体16可以对应于可以遍历专用或公共网络(例如,因特网)的网络连接。
显示装置32可以对应于全景显示器。例如,显示装置32可以对应于头戴式显示器(HMD)或基本上或完全包围用户的一或多个屏幕。区域确定单元34可以被配置成确定显示装置32的多个区域。例如,显示装置32可以包含多个图块,例如,对应于球形显示器(或可以模拟球形显示器的显示器,例如HMD)的立方体面的一或多个部分。
区域确定单元34可以确定用户的视觉焦点(图1中未示出)所指向的一或多个区域。区域确定单元34可以使输入接口28检索用户的视觉焦点所指向的显示装置32的区域的第一子集的视频数据。
目的装置14可以包含被配置成存储检索视频数据的存储器,例如硬盘和/或缓冲器。此存储器可以包含在视频解码器30内、在区域确定单元34内或目的装置14内的其它地方。
视频编码器20和视频解码器30可以根据视频编码标准(例如,高效视频编码(HEVC)标准(也被称为ITU-T H.265)或由联合视频专家小组(JVET)所研究的新H.266标准)操作。可替代地,视频编码器20和视频解码器30可以根据其它专有或工业标准(例如,ITU-TH.264标准(可替代地被称为MPEG-4第10部分,高级视频编码(AVC)))或此些标准的扩展操作。然而,本公开的技术不限于任何特定的编码标准。视频编码标准的其它实例包含MPEG-2和ITU-T H.263。尽管未在图1中示出,但在一些方面中,视频编码器20和视频解码器30可以各自与音频编码器和解码器集成在一起,并且可以包含适当的MUX-DEMUX单元或其它硬件和软件,以在通用数据流或不同数据流中处理音频和视频的编码。如果适用,MUX-DEMUX单元可以符合ITU H.223多路复用器协议或其它协议(例如,用户数据报协议(UDP))。通常,视频解码器30进行与视频编码器20进行的处理基本上相似但互逆的处理,以对编码数据进行解码。
视频编码器20和视频解码器30各自可以被实施为各种合适的编码器或解码器电路系统中的任何一种,例如包含一或多个处理器(例如,一或多个微处理器、数字信号处理器(DSP))、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任意组合。当所述技术以软件部分地实施时,装置可以在合适的非暂时性计算机可读媒体中存储软件的指令,并使用一或多个处理器在硬件中执行指令以进行本公开的技术。因此,编码器或解码器可以由包括一或多个处理器的各种集成处理电路系统中的任何一种形成,所述集成处理电路系统被实施为固定硬件处理电路系统、可编程处理电路系统和/或固定和可编程处理电路系统的组合。视频编码器20和视频解码器30中的每一个可以包含在一或多个编码器或解码器中,其中任一个可以作为组合编码器/解码器(CODEC)的一部分集成在相应的装置中。包含视频编码器20、视频解码器30和/或区域确定单元34的装置可以包括集成电路、微处理器和/或无线通信装置(例如,蜂窝电话)。
下面参考HEVC标准描述了各种视频编码技术。然而,本公开的用于对360度视频数据进行解块滤波的技术可以与与360度视频一起使用的任何视频编码技术一起使用,包含未来的视频编码标准(例如,H.266)。
在HEVC和其它视频编码规范中,视频序列通常包含一系列图片。图片也可以被称为“帧”。包含360度视频数据的帧或球体的图片可以包含三个样本阵列,表示为SL、SCb和SCr。SL是亮度样本的二维阵列(即块)。SCb是Cb色彩纯度样本的二维阵列。SCr是Cr色彩纯度样本的二维阵列。色彩纯度样本在本文中也可以被称为“色度”样本。在其它情况下,图片可以是单色的,并且可以仅包含亮度样本的阵列。
为了生成图片的编码表示,视频编码器20可以生成一组编码树单元(CTU)。每个CTU可以包括亮度样本的编码树块、色度样本的两个相应编码树块以及用于对编码树块的样本进行编码的句法结构。在单色图片或具有三个不同的色彩平面的图片中,CTU可以包括单个编码树块和用于对编码树块的样本进行编码的句法结构。编码树块可以是样本的NxN块。CTU也可以被称为“树块”或“最大编码单元”(LCU)。HEVC的CTU可以大体上类似于其它标准(例如,H.264/AVC)的宏块。然而,CTU不必限于特定大小,并且可以包含一或多个编码单元(CU)。切片可以包含以光栅扫描顺序连续排序的整数个CTU。
CTB含有四叉树,其节点是编码单元。在HEVC主规范中,CTB的大小的范围可以为16x16到64x64(但是在技术上可以支持8x8 CTB大小)。编码单元(CU)可以与CTB大小相同,但可以小至8x8。每个编码单元以一种模式编码。当CU被帧间编码时,其可以被进一步分割成2或4个预测单元(PU),或者当进一步分割不适用时仅变为一个PU。当一个CU中存在两个PU时,它们可以是一半大小的矩形,也可以是CU的1/4或3/4大小的两个矩形大小。
为了生成编码CTU,视频编码器20可以对CTU的编码树块递归地进行四叉树分割,以将编码树块划分成编码块,因此名称为“编码树单元”。编码块可以是样本的NxN块。CU可以包括具有亮度样本阵列、Cb样本阵列和Cr样本阵列的图片的亮度样本的编码块和色度样本的两个相应编码块以及用于对所述编码块的样本进行编码的句法结构。在单色图片或具有三个不同的色彩平面的图片中,CU可以包括单个编码块和用于对编码块的样本进行编码的句法结构。
视频编码器20可以将CU的编码块分割成一或多个预测块。预测块是在其上应用相同的预测的样本的矩形(即正方形或非正方形)块。CU的预测单元(PU)可以包括亮度样本的预测块、色度样本的两个相应预测块以及用于预测所述预测块的句法结构。在单色图片或具有三个不同的色彩平面的图片中,PU可以包括单个预测块和用于预测所述预测块的句法结构。视频编码器20可以为CU的每个PU的亮度、Cb和Cr预测块生成预测性亮度、Cb和Cr块。
视频编码器20可以使用帧内预测或帧间预测来生成PU的预测性块。如果视频编码器20使用帧内预测来生成PU的预测性块,则视频编码器20可以基于与PU相关联的图片的解码样本来生成PU的预测性块。如果视频编码器20使用帧间预测来生成PU的预测性块,则视频编码器20可以基于除与PU相关联的图片之外的一或多个图片的解码样本来生成PU的预测性块。当CU被帧间编码时,每个PU可以存在一组运动信息。另外,可以用唯一的帧间预测模式对每个PU进行编码以导出运动信息集合。
在视频编码器20生成CU的一或多个PU的预测性亮度、Cb和Cr块之后,视频编码器20可以生成CU的亮度残差块。CU的亮度残差块中的每个样本表示CU的预测性亮度块中的一个中的亮度样本和CU的原始亮度编码块中的相应样本之间的差。另外,视频编码器20可以生成CU的Cb残差块。CU的Cb残差块中的每个样本可以表示CU的预测性Cb块中的一个中的Cb样本和CU的原始Cb编码块中的相应样本之间的差。视频编码器20还可以生成CU的Cr残差块。CU的Cr残差块中的每个样本可以表示CU的预测性Cr块中的一个中的Cr样本和CU的原始Cr编码块中的相应样本之间的差。
此外,视频编码器20可以使用四叉树分割来将CU的亮度、Cb和Cr残差块分解成一或多个亮度、Cb和Cr变换块。变换块是在其上应用相同变换的样本的矩形(例如,正方形或非正方形)块。CU的变换单元(TU)可以包括亮度样本的变换块、色度样本的两个相应变换块以及用于变换所述变换块样本的句法结构。因此,CU的每个TU可以与亮度变换块、Cb变换块和Cr变换块相关联。与TU相关联的亮度转换块可以是CU的亮度残差块的子块。Cb变换块可以是CU的Cb残差块的子块。Cr变换块可以是CU的Cr残差块的子块。在单色图片或具有三个不同的色彩平面的图片中,TU可以包括单个变换块和用于变换所述变换块的样本的句法结构。
视频编码器20可以将一或多个变换应用于TU的亮度变换块以生成TU的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可以将一或多个变换应用于TU的Cb变换块以生成TU的Cb系数块。视频编码器20可以将一或多个变换应用于TU的Cr变换块以生成TU的Cr系数块。
在生成系数块(例如,亮度系数块、Cb系数块或Cr系数块)之后,视频编码器20可以量化系数块。量化通常是指对变换系数进行量化以可能减少用于表示变换系数的数据量,从而提供进一步的压缩的过程。在视频编码器20量化系数块之后,视频编码器20可以熵编码指示量化变换系数的句法元素。例如,视频编码器20可以对指示量化变换系数的句法元素进行上下文自适应二进制算术编码(CABAC)。
视频编码器20可以输出包含形成编码图片和相关联的数据的表示的比特序列的比特流。比特流可以包括NAL单元的序列。NAL单元是一种句法结构,其含有NAL单元中的数据的类型的指示和以RBSP的形式含有所述数据的字节(必要时,穿插有竞争防止位)。每个NAL单元包含NAL单元头,并且封装RBSP。NAL单元头可以包含指示NAL单元类型代码的句法元素。由NAL单元的NAL单元头指定的NAL单元类型代码指示NAL单元的类型。RBSP可以是含有封装在NAL单元内的整数个字节的句法结构。在一些情况下,RBSP包含零位。
不同类型的NAL单元可以封装不同类型的RBSP。例如,第一类型的NAL单元可以封装PPS的RBSP,第二类型的NAL单元可以封装编码切片的RBSP,第三类型的NAL单元可以封装SEI消息的RBSP,等等。封装视频编码数据的RBSP(与参数集和SEI消息的RBSP相反)的NAL单元可以被称为VCL NAL单元。
视频解码器30可以接收由视频编码器20生成的比特流。此外,视频解码器30可以解析比特流以从所述比特流获得句法元素。视频解码器30可以至少部分地基于从比特流获得的句法元素来重构视频数据的图片。重构视频数据的过程通常可以与视频编码器20进行的过程互逆。此外,视频解码器30可以对与当前CU的TU相关联的系数块进行反量化。视频解码器30可以对系数块进行反变换以重构与当前CU的TU相关联的变换块。视频解码器30可以通过将当前CU的PU的预测性块的样本加上当前CU的TU的变换块的相应样本来重构当前CU的编码块。通过重构图片的每个CU的编码块,视频解码器30可以重构图片。
图2A和2B是示出了用于呈现全景和/或360度视频数据的显示模型的表示的概念图。图2A示出了立方体贴图投影(CMP)100的一个实例,而图2B示出了等量矩形投影(ERP)110。
在图2A中,立方体104的6个面102A-102F(面102)中的每一个都被划分成四个图块(总共24个图块)。然而,在一些实例中,每个面可以仅包含一个图块。可见面(即面102A、102B和102C)的图块被标记为图块106A-106L。特别地,面102C被划分成图块106A-106D,面102B被划分成图块106E-106H,并且面102A被划分成图块106I-106L。出于可读性的目的,在图2A中未标记隐藏面(即面102D、102E和102F)的图块,但是应理解,面102D-102F也被划分成图块。“图块”也可以被称为区域。图2A中的每个立方体面102对应于90度乘90度的视野(FoV)。球体的任意90x90度图块都可能需要以高分辨率解码全景图的1/3。FoV很少跨越八个图块。因此,可以在不损失视觉质量的情况下将高分辨率解码的跨度限制为八个或更少的图块。
图2B示出了画布118,其被划分成八个图块116A-116H。在本实例中,当用户注视球体的“极点”(例如北极点112,其中用户注视北极点112时的视野由区域114表示)时,画布118的整个上半部分(即图块116A-116D)将需要以高分辨率进行解码。将图块116A-116D分解为更多的垂直图块将无助于解决问题。因此,在本实例中,全景图的一半将需要以高分辨率进行解码。
如上所讨论,可以使用投影和映射来在2D贴图(例如,可以被编码的视频数据的帧或图片)上表示3D表面(例如,360度视频的球体)。例如,对于360度视频应用,使用投影来将球体上表示的360度视频数据映射到二维视频帧上。通常,视频编码器20和/或源装置12可以使用立方体图投影来将360度视频的球体表面上的点映射到与球体表面相切的平面(例如,立方体面)上的点。例如如图2A中所示。通过使用各种打包方案打包视频数据,可以将所得的立方体映射到2D帧。视频编码器20和/或源装置12还可以使用等量矩形投影来将360度视频的球体源上的点映射到2D平面上的点,例如如图2B中所示。尽管本公开讨论了将球形360度视频投影到立方体的六个面上或使用等量矩形投影,但是应当理解,本公开的技术可以与其它类型的投影一起使用,包含其它基于立方体的投影以及到其它形状的投影。
在本公开的一些实例中,视频编码器20可以被配置成生成一或多个句法元素,并在指示所使用的投影的类型的编码视频比特流中将其用信号发送。视频解码器30可以被配置成接收并解析所述一或多个句法元素以确定投影。在其它实例中,可以预先确定待使用的投影,并将其存储在视频编码器20和视频解码器30处。视频解码器30可以被配置成使用与视频编码器20相同的投影来重构360度视频数据的球体。
视频编码器20和视频解码器30可以被配置成使用2D视频的压缩方案(例如,AVC和HEVC)分别对360度视频数据进行编码和解码。通常,在2D视频压缩中,不对图片边界处的块的所有边界应用解块过程。这是预期的,因为图片边界处的块在边界的外边缘处没有相邻块。图3示出了利用等量矩形投影(ERP)打包的360度视频的一帧。如图3中所示,不对帧150的边界进行解块(即不对帧150的边界处的像素应用解块滤波)。
此外,HEVC解块过程仅采用了两种滤波器:正常(即弱)滤波器和强滤波器。在HEVC中,正常滤波器和强滤波器的使用受到限制,在每个方向上只能更改至多4个像素的像素值(例如,在对垂直边界进行解块的情况下,更改左侧的4个像素和右侧的4个像素)。由于ERP投影在从球体投影到2D时会在到达极点时拉伸360度视频内容,因此具有固定的滤波器大小(即至多4个像素)可能是不够的。
因此,在利用ERP投影的360度视频的图片边界处未进行解块可能会导致360度视频的每个极点处和360度视频的后侧处的可见伪像,如图4A和图4B所描绘。在360度视频的后侧处,在左侧和右侧图片边界处未进行解块可能会导致可见线160,如图4A中所描绘。在360度视频的极点区域(即北极点和南极点),在顶部和底部图片边界处未进行解块以及固定的滤波器和由滤波器滤波的固定数量的受影响像素可能会导致集中在每个极点处的可见径向斑点162,如图4B中所示。
对于利用CMP投影编码的360度视频数据,也可能存在类似的问题。如上所讨论,对360度视频进行编码可以使用2D视频的压缩方案,例如AVC和HEVC。对于利用CMP投影的360度视频,AVC和HEVC中使用的当前解块算法具有以下描述几个问题。
例如,在CMP投影的紧凑表示中(例如,3x2面布置),在2D图片中相邻的一些立方体面在球体域中可能实际上不相邻。图5示出了视频编码器20和视频解码器30可以用来打包360度视频数据的立方体贴图投影的3x2帧打包的一个实例。如图5中所示,可以将360度视频数据的帧的立方体贴图投影的六个面打包成帧200。帧200是数据结构并且可以被认为类似于360度视频数据的帧或图片,并且可以类似于2D视频数据的帧或图片(例如,HEVC图片)进行处理。然而,帧200包含来自360度视频数据到立方体的投影的六个面中的每个面的视频数据。
如图5中所示,左侧立方体面202的视频数据被打包在帧200的左上角,前侧立方体面204的视频数据被打包在帧200的中上部,右侧立方体面206的视频数据被打包在帧200的右上角,底部立方体面208的视频数据被打包在帧200的左下角,后侧立方体面210的视频数据被打包在帧200的中下部,并且顶部立方体面212被打包在帧200的右下角。如图5中所示,左侧、前侧、右侧、底部、后侧和顶部的立方体面的文本布置还指示帧200内的视频数据的定向。应当理解,帧200的3x2打包布置仅是一个实例,并且可以使用立方体面的其它顺序和定向。
在本公开的一些实例中,视频编码器20可以被配置成生成一或多个句法元素,并在指示用于打包到帧200的立方体贴图投影的打包方案的编码视频比特流中将其用信号发送。视频解码器30可以被配置成接收并解析所述一或多个句法元素以确定打包方案。在其它实例中,可以预先确定待使用的打包方案,并将其存储在视频编码器20和视频解码器30处。
在生成和打包立方体贴图投影和/或ACP时,可能会出现沿每个立方体面的边缘的不连续或变形。变形是由所使用的投影技术引起的,而不连续可能是由打包方案而造成的。由于所使用的投影技术,变形经常会在某些立方体面边界处发生(例如,左侧和前侧立方体面之间或前侧和右侧立方体面之间的变形)。
三个立方体面的顶部行是连续的,代表左侧、前侧和右侧面。类似地,三个立方体面的底部行代表顶部、后侧和底部立方体面。然而,底部行旋转了90度。因此,可能会出现沿立方体面的边界的不连续。例如,即使它们相邻,前侧立方体面204的底部处的视频数据可能也不会直接流到后侧立方体面210的顶部边缘。
如上所讨论,在立方体贴图投影的示范性紧凑表示中,图片的上部中的立方体面在球体域中实际上不是图片的下部中的立方体面的直接相邻立方体面。然而,由于它们在2D域中彼此紧邻放置,因此在编码期间,可能应用或不应用解块。由于此布置,存在至少两个问题。当特定的编码比特流使用低量化参数(QP)值时,当前的HEVC解块算法可以检测到3x2紧凑表示的顶部和底部行的边界处的块不具有连续内容。因此,将不会在所述边界处应用解块。沿所述边界未进行解块可能会导致可见伪像。当特定的编码比特流使用高QP值时,当前的HEVC解块算法可能会将解块应用于所述边界,并且这可能会导致更多可见伪像(相较于先前点导致的伪像)。图6将此伪像示出为在虚线椭圆170中突出显示的可见线。
在2D视频压缩中,通常不将解块过程应用于图片边界处的块的所有边界,这是预期的,因为这些块在其一个边界处不具有相邻块。对于利用立方体贴图投影的360度视频,在图片边界处未进行解块可能会在一些立方体面边界处导致可见伪像。图7A示出了由于利用立方体贴图投影的360度视频的顶部边界处未进行解块而引起的在椭圆162中突出显示的伪像。图7B示出了由于利用立方体贴图投影的360度视频的最左侧边界处未进行解块而引起的在椭圆164中突出显示的伪像。
本公开描述了用于对根据等量矩形或立方体贴图投影投影和打包的360度视频数据(例如,像素的亮度和/或色度样本)进行解块滤波的技术。本公开的技术可以解决投影的360度视频数据的部分在打包2D帧中不连续时解块滤波的问题。
根据本公开的一些实例,视频编码器20和视频解码器30可以被配置成在位于面边界处的块的所有边缘/边界处应用解块。请注意,不同的投影可能在图片中具有不同数量的面。例如,对于等量矩形投影,每个图片只有一个面,而对于立方体贴图投影,每个图片具有6个面。由于对于等量矩形投影,每个图片具有一个面,因此在本文档的其余部分中,术语图片和面可以互换使用。在将关于等量矩形投影讨论的公开技术应用于其它投影(例如,立方体贴图投影)的实例中,应推断出适当的替换。
在2D视频的解块过程的一些实例中,视频编码器20和视频解码器30可以针对配对块Q对块P进行解块,所述配对块Q可以是P的直接相邻块。图8示出了待用于解块的紧邻于相邻配对块Q182的块P180。块P180包含十六个像素P30-P03。每个像素标号中的第一个数字(例如,P30中的3)表示所述块中的列,每个像素标号中的下标(例如,P30中的0)表示所述行块。将块P和Q中的每个像素配对,使得PXy与QXy配对。
图9示出了利用等量矩形投影打包的360度视频数据的图片190的一个实例。在解块滤波的一些实例(例如,HEVC)中,不对以字母标号A-F示出的块进行解块,因为它们在2D图片的边缘上。然而,由于等量矩形投影,图片190中具有相同字母标号的块实际上在360度视频的球体中是相邻的,即使它们在由投影产生的2D图片中不相邻。也就是说,当在图片190中表现的360度视频数据被转换回360度视频数据的球体时,两个块A将相邻,两个块B将相邻,两个块C将相邻,等等。图9中的字母标号块仅是一个实例。由于等量矩形投影,沿图片190的左侧和右侧边缘的块在360度视频中可能具有相邻块。同样地,沿图片190的顶部和底部边缘的块在360度视频中可能具有相邻块。因此,根据本公开的一个实例,视频编码器20和视频解码器30可以被配置成对在360度视频中相邻的块对进行解块。
作为一个实例,视频解码器30可以被配置成接收指示投影到2D图片上的360度视频图片的视频数据,所述2D图片被划分成多个块。在图9的实例中,2D图片190是等量矩形投影。然后,视频解码器30可以对2D图片的块进行任何数量的预测过程以解码所述块。在解码之后,视频解码器30可以基于360度视频图片中的所述块中的第一块和第二块之间的边界的位置对沿图片的第一块和第二块的边界的像素进行解块滤波。在图9的实例中,视频解码器30可以将两个块A作为解块对进行解块,视频解码器30可以将两个块B作为解块对进行解块,视频解码器30可以将两个块C作为解块对进行解块,视频解码器30可以将两个块D作为解块对进行解块,视频解码器30可以将两个块E作为解块对进行解块,并且视频解码器30可以将两个块F作为解块对进行解块。视频编码器20可以对视频编码器重构环中的重构图片进行相同的解块过程。
在一些实例中,视频编码器20和视频解码器30可以被配置成取决于边界(例如,在构成360度视频中的边缘的块对中的相对位置(在投影到2d矩形图片之前))而应用较强和较宽的解块(即相较于当前在HEVC解块中在每个方向上最多4个像素,滤波器改变更多像素值)。在图9中,待应用不同的(例如,较强和/或较宽的)滤波的示范性块对用相同的字母标记。这里和以下实例中使用的较强滤波器是指具有较强平滑作用的低通滤波器,例如调整滤波器系数以更强地滤波高频分量。这里和以下实例中使用的较宽滤波器是指使用在每个方向上从边界应用于多于指定数量的像素(例如,HEVC解块中指定的多于4个像素)的滤波器。
类似的技术可以应用于利用立方体贴图投影打包的360度视频数据。例如,视频编码器20和视频解码器30可以基于360度视频图片中的所述块中的第一块和第二块之间的边界的位置对沿图片的第一块和第二块的边界(例如,立方体面边界)的像素进行解块滤波。也就是说,为了在利用立方体贴图投影和其它衍生投影的360度视频的编码和/或解码期间进行解块,在一些实例中,视频编码器20和视频解码器30可以被配置成在每个面的所有边缘/边界处进行解块。实际上,与使用不兼容的块对不正确地应用解块的其它系统相比,这可以通过在位于紧凑表示的图片边界和中间边界的块的边缘/边界处应用解块来简化。
例如,视频编码器20和视频解码器30可以被配置成可以基于360度视频图片中的边界的位置对沿第一块的边界的像素应用解块滤波。视频编码器20和视频解码器30可以被配置成确定第一块和第二块是边界待根据特定解块滤波器(不同于2D图片的所述块中的第一块和其它块,所述第一块和其它块可以不进行解块滤波或不同地进行解块滤波)进行解块(或根本不进行解块)的块对。与等量矩形投影的实例一样,视频编码器20和视频解码器30可以被配置成对在360度视频的球体中实际上彼此相邻的块对应用解块滤波,即使此些块在360度视频数据的2D投影中彼此不相邻。
图10示出了投影的360度视频数据的立方体240和在2D矩形帧200中的示范性3x2紧凑表示(例如,在上文图5中所述)。图11示出了使用4x3表示的立方体贴图投影到2D矩形图片250中的一个实例。请注意,立方体的立方体面在2D帧中的布置方式可以存在多种变型。
图12示出了利用立方体贴图投影打包的360度视频数据的图片260的一个实例。在解块滤波(例如,HEVC)的一些实例中,不对在图片260的外边缘上示出的块进行解块,因为它们在2D图片的边缘上。此外,将对在不连续的立方体面(例如,左/下边缘,前/后边缘,右/上边缘)的边界上的块进行解块,即使沿此些边缘的视频数据在360度视频的球体中不连续。此些过程可能在编码360度视频数据中产生不期望的伪像。
由于立方体贴图投影,图片260中具有相同字母标号的块实际上在360度视频的球体中是相邻的,即使它们在由投影产生的2D图片中不相邻。也就是说,当在图片260中表示的360度视频数据被转换回360度视频数据的球体时,两个块A将相邻,两个块B将相邻,两个块C将相邻,等等。图12中的字母标号块仅是一个实例。由于立方体贴图投影,沿立方体面边缘的具有相同字母标号的所有块在360度视频中可能是相邻块。
因此,根据本公开的一个实例,视频编码器20和视频解码器30可以被配置成对在360度视频中相邻的块对进行解块。在一些实例中,对于立方体面边界处的块,用于对边缘进行解块的块配对在图12中被示出为用相同字母标记的边缘。
视频解码器30可以被配置成接收指示投影到2D图片上的360度视频图片的视频数据,所述2D图片被划分成多个块。在图12的实例中,2D图片260是立方体贴图投影。然后,视频解码器30可以对2D图片的块进行任何数量的预测过程以解码所述块。在解码之后,视频解码器30可以基于360度视频图片中的所述块中的第一块和第二块之间的边界的位置对沿图片的第一块和第二块的边界的像素应用解块滤波。
在图12的实例中,视频解码器30可以将两个块A作为解块对进行解块,视频解码器30可以将两个块B作为解块对进行解块,视频解码器30可以将两个块C作为解块对进行解块,视频解码器30可以将两个块D作为解块对进行解块,视频解码器30可以将两个块E作为解块对进行解块,视频解码器30可以将两个块F作为解块对进行解块,视频解码器30可以将两个块G作为解块对进行解块,并且视频解码器30可以将两个块H作为解块对进行解块。视频编码器20可以对视频编码器重构环中的重构图片进行相同的解块过程。可以沿图13中所示的4x3表示的字母标号边缘进行类似的过程。
可以利用与上述两个实例相同的原理来调整其它表示变型的解块块对。特别地,对于360度视频到2D块上的特定投影,针对每个2D投影块边缘,基于360度视频中的块的相邻块将解块滤波应用于边缘。因此,在一些此类实例中,仍然可以对图片边缘处的2D块进行解块。
下面描述了对360度视频数据的等量矩形投影的面边界进行解块的另外的实例。在第一实例中,视频编码器20和视频解码器30可以被配置成对等量矩形投影的图片的顶部和底部边界进行解块。对于图片的顶部边界,水平边缘的一个示范性解块滤波器如下。设W表示图片的宽度。对于两个块P和Q,其中块Q位于P的右侧(即可能与P直接相邻或不直接相邻),并且具有宽度WP的块P相对于图片帧的左上角位于(Xp,0)(即块P的最顶部、最左侧像素)。块Q的位置(即(XQ,0))可以计算如下:
XQ=W-XP-WP
图14示出了沿利用等量矩形投影的360度视频数据的顶部边界的块P 300和块Q302之间的示范性像素配对。
类似的方法可以应用于面的底部边界。设W和H表示图片的宽度和高度。对于两个块P和Q,其中块Q位于P的右侧(即可能与块P直接相邻或不直接相邻),并且具有宽度WP和高度HP的块P位于(XP,H-HP)。块Q的位置(即(XQ,H-HP))可以计算如下:
XQ=W-XP-WP
图15示出了沿利用等量矩形投影的360度视频数据的底部边界的块P 304和块Q306之间的示范性像素配对。
视频编码器20和视频解码器30还可以被配置成在利用等量矩形投影的360度视频数据的图片的最左侧和最右侧边界处进行解块。对于图片的最左侧边界,根据一个实例,对垂直边缘的解块如下进行。
设W表示图片的宽度。对于两个块P和Q,其中块Q位于P的右侧(即不直接相邻),并且具有宽度WP的块P相对于图片帧的左上角位于(0,YP)。块Q的位置(即(XQ,YQ))可以计算如下:
XQ=W-WP
YQ=YP
图16示出了沿利用等量矩形投影的360度视频数据的左侧边界的块P 308和块Q310之间的示范性像素配对。
类似的方法可以应用于图片的最右侧边界。设W表示图片的宽度。对于两个块P和Q,其中块Q位于P的左侧(即不直接相邻),并且具有宽度WP的块P相对于图片帧的左上角位于(W-WP,YP)。块Q的位置(即(XQ,YQ))可以计算如下:
XQ=0
YQ=YP
图17示出了沿利用等量矩形投影的360度视频数据的右侧边界的块P 312和块Q314之间的示范性像素配对。
在本公开的其它实例中,视频编码器20和视频解码器30可以被配置成利用较强平滑滤波器和较宽滤波器进行360度视频数据的图片的解块。为了应用较强和较宽滤波器,根据本公开的一些实例,视频编码器20和视频解码器30可以被配置成将利用ERP投影的360度视频帧划分成三个或三个以上部分(例如,一个中间区域和两个极点区域),如图18中的图片330中所示。对于中间区域,可以使用一种类型的解块滤波,例如可以使用现有的解块滤波器,例如来自HEVC的滤波器。对于极点区域,在一些实例中,解块包含应用较强低通滤波器(即相对于HEVC解块滤波器,对输入像素值提供更平滑的效果的滤波器)。用于极点区域的本较强低通滤波器可以任选地包含较宽滤波器(例如,相较于当前在HEVC中最多4个像素改变更多像素值的滤波器)。取决于示范性使用情况,中间区域和每个极点区域之间的划分可以是固定的,也可以基于所解块的图片内容进行自适应划分。在一些情况下,可以将中间区域定义为大部分或全部图片,使得解块变得与现有算法相同;另一方面,在一些实例中,两个极点区域都可以大至图片大小的一半。
在一些实例中,视频编码器20和视频解码器30可以基于图片内块的位置来自适应地确定针对极点区域的较强和较宽滤波器的选择。例如,对于北极点区域(例如,图片的顶部边界附近),可以利用较强和较宽滤波器对两个块的边界进行解块(相较于更靠近图片的中间的两个其它块的边界),并且对于南极点区域中的边界反之亦然(例如,图片的底部边界附近)。
在一些实例中,以上关于等量矩形投影描述的各种特征也可以与立方体贴图投影适当组合使用。
在一些实例中,视频编码器20和视频解码器30可以适当地调整边界强度计算,因为与P和Q块相关联的编码单元(CU)和变换单元(TU)可能实际上彼此不相邻。例如,可以使用信息(例如,CU的编码模式、参考图片的数量、运动矢量值和TU的边缘和系数中的一或多个)进行本边界强度计算。例如,图19描绘了边界强度推导的示范性过程。视频编码器20和视频解码器30可以使用图19中使用的一或多个因子来进行利用等量矩形投影或立方体贴图投影等的360度视频的边界强度推导。
例如,视频编码器20和视频解码器30可以确定P块或Q块是否在帧内CU中(400)。如果是(Y),则视频编码器20和视频解码器30可以确定边界强度(Bs)为二(例如,指数为2的边界强度)。如果否(N),则视频编码器20和视频解码器30可以确定TU边缘和P或Q块是否在具有非零变换系数水平的TU中(402)。如果是,则视频编码器20和视频解码器30可以确定边界强度(Bs)为一(例如,指数为1的边界强度)。如果否,则视频编码器20和视频解码器30可以进行过程404的确定。也就是说,如果过程404的任何以下条件为真,则视频编码器20和视频解码器30可以确定边界强度(Bs)为一(例如,指数为1的边界强度)。如果以下所有条件都不为真,则视频编码器20和视频解码器30可以确定边界强度(Bs)为零(例如,指数为0的边界强度)。
条件是:
(1)P或Q块具有不同的参考图片或不同数量的运动矢量;或
(2)P和Q块各自具有一个运动矢量,并且X方向上的P运动矢量减去X方向上的Q运动矢量的绝对值大于等于一,或Y方向上的P运动矢量减去Y方向上的Q运动矢量的绝对值大于等于一;或
(3)P和Q块各自具有两个运动矢量,并且至少一个运动矢量对满足X方向上的P运动矢量减去X方向上的Q运动矢量的绝对值大于或等于一,或Y方向上的P运动矢量减去Y方向上的Q运动矢量的绝对值大于或等于一。
任选地,这些360度视频的具体边界强度可以确定待应用于360度视频帧或立方体面边界的滤波器类型。任选地或此外,滤波器可以具有各种性质,例如使用此些因子选择的滤波强度或滤波器宽度。
图20是示出了可以实施本公开的技术的视频编码器20的一个实例的框图。视频编码器20可以进行视频切片内的视频块的帧内和帧间编码。帧内编码依赖于空间预测以减少或去除给定视频帧或图片内视频中的空间冗余。帧间编码依赖于时间预测以减少或去除视频序列的相邻帧或图片内视频中的时间冗余。帧内模式(I模式)可以是指几种基于空间的编码模式中的任何一种。帧间模式(例如,单向预测(P模式)或双向预测(B模式))可以是指几种基于时间的编码模式中的任何一种。
如图20中所示,视频编码器20接收待编码的视频数据的当前帧。在本公开的实例中,视频帧可以是360度视频数据的帧。360度视频数据的帧可以是由360度视频数据的球体的立方体贴图投影或等量矩形投影形成的打包立方体面。
在图20的实例中,视频编码器20包含视频数据存储器49、模式选择单元40、参考图片存储器64(也可以称为解码图片缓冲器(DPB))、加法器50、变换处理单元52、量化单元54、解块单元63和熵编码单元56。模式选择单元40又包含运动补偿单元44、运动估计单元42、帧内预测单元46和分割单元48。对于视频块重构,视频编码器20还包含反量化单元58、反变换单元60和加法器62。
视频数据存储器49可以被配置成存储待编码的视频数据,包含360度视频数据的球体。
解块单元63可以被配置成根据上述技术对块和立方体面边界进行滤波以从重构视频去除块状伪像。解块单元63可以对加法器62的输出进行滤波。除了解块滤波器之外,还可以使用另外的滤波器(环内或环后)。为了简洁起见,此些滤波器未示出,但是如果需要,可以对加法器62的输出进行滤波(如环内滤波器)。
在编码过程期间,视频编码器20接收待编码的视频帧或切片。帧或切片可以被划分成多个视频块。运动估计单元42和运动补偿单元44相对于一或多个参考帧中的一或多个块进行接收到的视频块的帧间预测编码,以提供时间预测。帧内预测单元46可以可替代地使用与待编码的块相同的帧或切片中的一或多个相邻块的像素来对接收到的视频块进行帧内预测,以提供空间预测。视频编码器20可以进行多个编码遍(pass),例如以针对视频数据的每一块选择适当的编码模式。
此外,分割单元48可以基于对先前编码遍中的先前分割方案的评价,将视频数据的块分割成子块。例如,分割单元48可以首先将帧或切片分割成LCU,并且基于率-失真分析(例如,率-失真优化)将每个LCU分割成子CU。模式选择单元40可以进一步产生指示将LCU分割成子CU的四叉树数据结构。四叉树的叶节点CU可以包含一或多个PU和一或多个TU。
模式选择单元40可以例如基于误差结果选择一个预测模式(帧内或帧间),并且将所得的预测块提供给加法器50以生成残差数据,并且提供给加法器62以重构编码块以用作参考帧。模式选择单元40还向熵编码单元56提供句法元素,例如运动矢量、帧内模式指示符、分割信息和其它此类句法信息。
运动估计单元42和运动补偿单元44可以高度集成,但是出于概念性目的而被分别示出。由运动估计单元42进行的运动估计是生成运动矢量的过程,其估计视频块的运动。例如,运动矢量可以指示视频块的PU相对于参考帧(或其它编码单元)内的预测性块相对于当前帧(或其它编码单元)内所编码的当前块在当前视频帧或图片中的位移。预测性块是被发现在像素差方面与待编码的块紧密匹配的块,所述像素差可以由绝对差之和(SAD)、平方差之和(SSD)或其它差度量来确定。在一些实例中,视频编码器20可以计算存储在参考图片存储器64中的参考图片的子整数像素位置的值。例如,视频编码器20可以插入参考图片的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可以进行相对于全部像素位置和分数像素位置的运动搜索,并且以分数像素精度输出运动矢量。
运动估计单元42通过将PU的位置与参考图片的预测性块的位置进行比较来计算帧间编码切片中的视频块的PU的运动矢量。可以从第一参考图片列表(列表0)或第二参考图片列表(列表1)选择参考图片,第一参考图片列表或第二参考图片列表中的每一个标识存储在参考图片存储器64中的一或多个参考图片。运动估计单元42将计算运动矢量发送到熵编码单元56和运动补偿单元44。
由运动补偿单元44进行的运动补偿可以涉及基于由运动估计单元42确定的运动矢量来获取或生成预测性块。此外,在一些实例中,运动估计单元42和运动补偿单元44可以在功能上集成。在接收到当前视频块的PU的运动矢量时,运动补偿单元44可以在一个参考图片列表中定位运动矢量指向的预测性块。加法器50通过用所编码的当前视频块的像素值减去预测性块的像素值来形成残差视频块,从而形成像素差值,如下所讨论。通常,运动估计单元42进行相对于亮度分量的运动估计,并且运动补偿单元44将基于亮度分量计算的运动矢量用于色度分量和亮度分量。模式选择单元40还可以生成与视频块和视频切片相关联的句法元素,以供视频解码器30在视频切片的视频块的解码中使用。
如上所述,帧内预测单元46可以对当前块进行帧内预测,以替代由运动估计单元42和运动补偿单元44进行的帧间预测。特别地,帧内预测单元46可以确定用于对当前块进行编码的帧内预测模式。在一些实例中,帧内预测单元46可以例如在单独的编码遍期间使用各种帧内预测模式对当前块进行编码,并且帧内预测单元46(在一些实例中,模式选择单元40)可以从测试模式选择适当的帧内预测模式使用。
例如,帧内预测单元46可以使用针对各种测试帧内预测模式的率-失真分析来计算率-失真值,并且在测试模式中选择具有最佳率-失真特性的帧内预测模式。率-失真分析通常确定编码块与原始未编码块(其经过编码以产生所述编码块)之间的失真(或误差)量以及用于产生编码块的比特率(即比特的数量)。帧内预测单元46可以根据各个编码块的失真和率来计算比率,以确定哪个帧内预测模式表现出所述块的最佳率-失真值。
在为块选择帧内预测模式之后,帧内预测单元46可以将指示针对所述块的所选帧内预测模式的信息提供给熵编码单元56。熵编码单元56可以对指示所选帧内预测模式的信息进行编码。视频编码器20可以在传输比特流配置数据中包含各个编码块的编码上下文的定义以及供每个上下文使用的最可能的帧内预测模式、帧内预测模式索引表和修改后的帧内预测模式索引表的指示,所述比特流配置数据可以包含多个帧内预测模式索引表和多个修改后的帧内预测模式索引表(也被称为码字映射表)。
视频编码器20通过所编码的原始视频块减去来自模式选择单元40的预测数据来形成残差视频块。加法器50表示进行本减法运算的一或多个组件。变换处理单元52将变换(例如,离散余弦变换(DCT)或概念上类似的变换)应用于残差块,从而产生包括变换系数值的视频块。可以使用小波变换、整数变换、子带变换、离散正弦变换(DST)或其它类型的变换来代替DCT。在任何情况下,变换处理单元52将变换应用于残差块,从而产生变换系数块。变换可以将残差信息从像素域转换到变换域(例如,频域)。变换处理单元52可以将所得的变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步降低比特率。量化过程可以减小与一些或所有系数相关联的比特深度。可以通过调整量化参数来修改量化程度。
在量化之后,熵编码单元56对量化变换系数进行熵编码。例如,熵编码单元56可以进行上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、基于句法的上下文自适应二进制算术编码(SBAC)、概率区间分割熵(PIPE)编码或另外的熵编码技术。在基于上下文的熵编码的情况下,上下文可以基于相邻块。在由熵编码单元56进行熵编码之后,可以将编码比特流传输到另一装置(例如,视频解码器30),或者将其存档以用于稍后的传输或检索。
反量化单元58和反变换单元60分别应用反量化和反变换以在像素域中重构残差块。特别地,加法器62将重构的残差块加上由运动补偿单元44或帧内预测单元46较早产生的运动补偿预测块,以产生重构视频块,以存储在参考图片存储器64中。重构视频块可以由运动估计单元42和运动补偿单元44用作参考块来对后续视频帧中的块进行帧间编码。
图21是示出了可以实施本公开的技术的视频解码器30的一个实例的框图。在图21的实例中,视频解码器30包含视频数据存储器71、熵解码单元70、运动补偿单元72、帧内预测单元74、反量化单元76、反变换单元78、参考图片存储器82、解块单元83和加法器80。在一些实例中,视频解码器30可以进行通常与关于视频编码器20(图20)描述的编码遍互逆的解码遍。运动补偿单元72可以基于从熵解码单元70接收的运动矢量来生成预测数据,而帧内预测单元74可以基于从熵解码单元70接收的帧内预测模式指示符来生成预测数据。
视频数据存储器71可以被配置成存储待解码的视频数据,包含编码360度视频数据的打包帧。
如图21中所示,视频解码器接收包含待解码的视频数据的当前编码帧的编码视频比特流。在本公开的实例中,编码视频帧可以是360度视频数据的编码帧。360度视频数据的编码帧可以是由360度视频数据的球体的立方体贴图投影或等量矩形投影形成的打包立方体面。
在解码过程期间,视频解码器30从视频编码器20接收表示编码视频切片的视频块和相关联的句法元素的编码视频比特流。视频解码器30的熵解码单元70对比特流进行熵解码以生成量化系数、运动矢量或帧内预测模式指示符和其它句法元素。熵解码单元70将运动矢量和其它句法元素转发到运动补偿单元72。视频解码器30可以接收视频切片水平和/或视频块水平的句法元素。
当视频切片被编码为帧内编码(I)切片时,帧内预测单元74可以基于来自当前帧或图片的先前解码块的信号发送帧内预测模式和数据来生成当前视频切片的视频块的预测数据。当视频帧被编码为帧间编码(例如,B或P)切片时,运动补偿单元72基于从熵解码单元70接收的运动矢量和其它句法元素来产生当前视频切片的视频块的预测性块。预测性块可以由一个参考图片列表内的一个参考图片产生。视频解码器30可以基于存储在参考图片存储器82中的参考图片使用默认构建技术来构建参考帧列表(列表0和列表1)。
运动补偿单元72通过解析运动矢量和其它句法元素来确定当前视频切片的视频块的预测信息,并且使用预测信息来产生所解码的当前视频块的预测性块。例如,运动补偿单元72使用一些接收到的句法元素来确定用于对视频切片的视频块进行编码的预测模式(例如,帧内或帧间预测)、帧间预测切片类型(例如,B切片或P切片)、切片的一或多个参考图片列表的构造信息、切片的每个帧间编码视频块的运动矢量、切片的每个帧间编码视频块的帧间预测状态以及其它信息,以对当前视频切片中的视频块进行解码。
运动补偿单元72还可以基于用于子像素精度的插值滤波器来进行插值。运动补偿单元72可以使用在视频块的编码期间由视频编码器20使用的插值滤波器来计算参考块的次整数像素的插入值。在本情况下,运动补偿单元72可以从接收的句法元素确定由视频编码器20使用的插值滤波器,并且使用插值滤波器来产生预测性块。此外,运动补偿单元72可以被配置成进行本公开的任何或所有技术(单独地或以任何组合)。
反量化单元76对在比特流中提供并由熵解码单元70解码的量化变换系数进行反量化(即去量化)。反量化过程可以包含对于视频切片中的每个视频块使用由视频解码器30计算的量化参数QPY来确定量化程度,并同样地确定应当应用的反量化程度。
反变换单元78将反变换(例如,反DCT、反整数变换或概念上类似的反变换过程)应用于变换系数,以便在像素域中产生残差块。
在运动补偿单元72基于运动矢量和其它句法元素生成当前视频块的预测性块之后,视频解码器30通过将来自反变换单元78的残差块与由运动补偿单元72生成的相应预测性块相加来形成解码视频块。加法器80表示进行本加法运算的一或多个组件。
解块单元83可以被配置成根据上述技术对块和立方体面边界进行滤波以从重构视频去除块状伪像。解块单元83可以对加法器80的输出进行滤波。除了解块滤波器之外,还可以使用另外的滤波器(环内或环后)。为了简洁起见,此些滤波器未示出,但是如果需要,可以对加法器80的输出进行滤波(如环内滤波器)。
然后,将给定帧或图片中的解码视频块存储在参考图片存储器82中,所述参考图片存储器82存储用于后续运动补偿的参考图片。参考图片存储器82还存储解码视频,以供稍后呈现在显示装置(例如,图1的显示装置32)上。例如,参考图片存储器82可以存储解码图片。
图22是示出了本公开的示范性编码方法的流程图。图22的技术可以由视频编码器20的一或多个结构组件进行。
在本公开的一个实例中,视频编码器20可以被配置成将360度视频图片投影到2D图片上(2200),并且将2D图片划分成多个块(2202)。视频编码器20可以进一步被配置成预测2D图片的所述块中的第一块(2204),并且基于360度视频图片中的所述块中的第一块和所述块中的第二块之间的边界的位置对沿所述块中的第一块的边界的像素进行解块滤波(2206)。在一些实例中,视频编码器20可以被配置成对2D图片的像素的亮度样本和/或色度样本中的一或两种进行解块滤波。
图23是示出了本公开的示范性解码方法的流程图。图23的技术可以由视频解码器30的一或多个结构组件进行。
在本公开的一个实例中,视频解码器30可以被配置成接收指示投影到2D图片上的360度视频图片的视频数据,所述2D图片被划分成多个块(2300),并且预测2D图片的所述块中的第一块(2302)。视频解码器30可以进一步被配置成基于360度视频图片中的所述块中的第一块和所述块中的第二块之间的边界的位置对沿所述块中的第一块的边界的像素进行解块滤波(2304)。在一些实例中,视频解码器30可以被配置成对2D图片的像素的亮度样本和/或色度样本中的一或两种进行解块滤波。
在本公开的一个实例中,所述解块滤波包括待放置在解码图片缓冲器中的所述2D图片的所述块的环内滤波。也就是说,视频解码器30可以被配置成在将2D图片放置在解码图片缓冲器中之前进行解块滤波。
在本公开的另一实例中,基于所述360度视频图片中的所述边界的位置对沿所述块中的所述第一块的所述边界的像素进行解块滤波包括:确定所述块中的所述第一块和所述块中的所述第二块是所述边界待根据特定解块滤波器(不同于所述2D图片的所述块中的所述第一块和所述块中的其它块)进行解块的块对。
在本公开的另一实例中,基于所述360度视频图片中的所述边界的位置对沿所述块中的所述第一块的所述边界的像素进行解块滤波包括:基于所述360度视频图片中的所述边界的位置确定所述滤波的像素中的宽度。视频解码器30可以被配置成基于所确定的宽度来应用所述解块滤波器。
在本公开的另一实例中,基于所述360度视频图片中的所述边界的位置对沿所述块中的所述第一块的所述边界的像素进行解块滤波包括:基于所述360度视频图片中的所述边界的位置确定所述滤波的强度。视频解码器30可以被配置成基于所确定的强度来应用所述解块滤波器。
在本公开的另一实例中,所述块中的所述第一块在图片边界处,并且所述边界是所述块的顶部、底部、左侧或右侧边界中的至少一个。
在本公开的另一实例中,基于所述360度视频图片中的所述边界的位置对沿所述块中的所述第一块的所述边界的像素进行解块滤波包括:确定所述块中的所述第一块在所述图片的多个部分中的一个部分中,其中取决于所确定的所述多个部分中的一个部分来不同地应用所述解块滤波。
在本公开的另一实例中,根据等量矩形投影将所述360度图片投影到所述2D图片上,并且所述部分包括与所述360度视频图片的极点区域相关联的至少两个部分和所述两个极点区域之间的至少一个中间部分。
在本公开的另一实例中,取决于所确定的所述多个部分中的一个部分来不同地应用所述解块滤波包括:应用较宽或较强滤波器(相较于所述360度视频图片的其它部分中的边界)中的一或两种。
在本公开的另一实例中,视频解码器30可以进一步被配置成确定所述块中的所述第二块在所述图片的所述多个部分中的第二部分中,其中取决于所确定的所述多个部分中的第一部分和第二部分来不同地应用所述解块滤波。
结合本文公开的实例描述的各个说明性逻辑块、模块、电路和算法步骤可以被实施为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,上面已经大体上根据其功能描述了各个说明性组件、块、模块、电路和步骤。将此功能实施为硬件还是软件取决于特定应用和施加于整个系统的设计约束。技术人员可以针对每个特定应用以不同方式实施所描述的功能,但是此些实施决定不应被解释为导致脱离本公开的范围。
应当认识到,取决于实例,本文描述的任何技术的某些动作或事件可以以不同的顺序进行,可以添加、合并或完全省略(例如,并非所有描述的动作或事件都是技术的实践所必需的)。此外,在某些实例中,动作或事件可以例如通过多线程处理、中断处理或多个处理器并行地而不是顺序地进行。
在一或多个实例中,可以在硬件、软件、固件或其任意组合中实施所描述的功能。如果在软件中实施,则功能可以作为一或多个指令或代码存储在计算机可读媒体上或通过计算机可读媒体传输,并且由基于硬件的处理单元执行。计算机可读媒体可以包含对应于有形媒体(例如,数据存储媒体)的计算机可读存储媒体或通信媒体(包含例如根据通信协议促进计算机程序从一个地方转移到另一个地方的任何媒体)。以这种方式,计算机可读媒体通常可以对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体(例如,信号或载波)。数据存储媒体可以是可以由一或多个计算机或一或多个处理器访问以检索指令、代码和/或数据结构以实施本公开中描述的技术的任何可用媒体。计算机程序产品可以包含计算机可读媒体。
作为实例而非限制,此些计算机可读存储媒体可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置、闪速存储器、或可以用于以指令或数据结构的形式存储所需的程序代码并且可以由计算机访问的任何其它媒体。而且,任何连接都被适当地称为计算机可读媒体。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(例如,红外、无线电和微波)从网站、服务器或其它远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或无线技术(例如,红外、无线电和微波)包含在媒体的定义中。然而,应当理解,计算机可读存储媒体和数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而是涉及非暂时性有形存储媒体。本文使用的盘(disk/disc)包含压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘和蓝光盘,其中盘(disk)通常以磁性方式复制数据,而盘(disc)利用激光以光学方式复制数据。上述的组合也应包含在计算机可读媒体的范围内。
指令可以由一或多个处理器(例如,一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效的集成或离散逻辑电路系统)执行。因此,本文使用的术语“处理器”可以是指任何前述结构或适合于实施本文所述技术的任何其它结构。另外,在一些方面,本文描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块内提供,或并入组合编解码器中。同样,所述技术可以在一或多个电路或逻辑元件中完全实施。
通用处理器可以是微处理器;但是在替代方案中,处理器也可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以被实施为计算装置的组合,例如DSP和微处理器的组合、多个微处理器、一或多个微处理器与DSP核心的结合或任何其它此种配置。因此,本文使用的术语“处理器”可以是指任何前述结构、前述结构的任何组合、或适合于实施本文所述的技术的任何其它结构或设备。另外,在一些方面,本文所描述的功能可以在被配置用于编码和解码的专用软件模块或硬件模块内提供,或并入组合视频编码器-解码器(CODEC)中。
本公开的技术可以在多种装置或设备(包含无线手持机、集成电路(IC)或一组IC(例如,芯片组))中实施。在本公开中描述了各个组件、模块或单元以强调被配置成进行所公开的技术的装置的功能方面,但其不一定需要由不同硬件单元来实现。相反,如上所述,各个单元可以在编解码器硬件单元中组合,或者由互操作性硬件单元的集合(包含如上所述的一或多个处理器与合适的软件和/或固件的结合)提供。
已经描述了各个实例。这些和其它实例在以下权利要求的范围内。

Claims (22)

1.一种解码360度视频的方法,所述方法包括:
接收指示投影到2D图片上的360度视频图片的视频数据,所述2D图片被划分成多个块;
预测所述2D图片的所述块中的第一块;和
基于所述360度视频图片中的所述块中的所述第一块和所述块中的第二块之间的边界的位置对沿所述块中的所述第一块的边界的像素进行解块滤波。
2.根据权利要求1所述的方法,其中所述解块滤波包括待放置在解码图片缓冲器中的所述2D图片的所述块的环内滤波。
3.根据权利要求1所述的方法,其中基于所述360度视频图片中的所述边界的位置对沿所述块中的所述第一块的所述边界的像素进行解块滤波包括:确定所述块中的所述第一块和所述块中的所述第二块是所述边界待根据特定解块滤波器进行解块的块对,所述特定解块滤波器不同于用于所述2D图片的所述块中的所述第一块和所述块中的其它块的解块滤波器。
4.根据权利要求1所述的方法,其中基于所述360度视频图片中的所述边界的位置对沿所述块中的所述第一块的所述边界的像素进行解块滤波包括:基于所述360度视频图片中的所述边界的位置确定所述滤波的像素中的宽度。
5.根据权利要求1所述的方法,其中基于所述360度视频图片中的所述边界的所述位置对沿所述块中的所述第一块的所述边界的像素进行解块滤波包括:基于所述360度视频图片中的所述边界的所述位置确定所述滤波的强度。
6.根据权利要求1所述的方法,其中所述块中的所述第一块在图片边界处,并且所述边界是所述块的顶部、底部、左侧或右侧边界中的至少一个。
7.根据权利要求1所述的方法,其中基于所述360度视频图片中的所述边界的所述位置对沿所述块中的所述第一块的所述边界的像素进行解块滤波包括:确定所述块中的所述第一块在所述图片的多个部分中的一个部分中,其中取决于所述多个部分中的所确定的一个部分来不同地应用所述解块滤波。
8.根据权利要求7所述的方法,其中根据等量矩形投影将所述360度图片投影到所述2D图片上,并且其中所述部分包括与所述360度视频图片的极点区域相关联的至少两个部分和所述两个极点区域之间的至少一个中间部分。
9.根据权利要求7所述的方法,其中取决于所述多个部分中的所确定的一个部分来不同地应用所述解块滤波包括:相较于所述360度视频图片的其它部分中的边界应用较宽或较强的滤波器中的一或两种。
10.根据权利要求7所述的方法,其进一步包括确定所述块中的所述第二块在所述图片的所述多个部分中的第二部分中,其中取决于所述多个部分中的所确定的第一部分和第二部分来不同地应用所述解块滤波。
11.一种被配置成解码360度视频的设备,所述设备包括:
存储器,其被配置成存储所述360度视频;和
与所述存储器通信的一或多个处理器,所述一或多个处理器被配置成:
接收指示投影到2D图片上的所述360度视频图片的视频数据,所述2D图片被划分成多个块;
预测所述2D图片的所述块中的第一块;和
基于所述360度视频图片中的所述块中的所述第一块和所述块中的第二块之间的边界的位置对沿所述块中的所述第一块的边界的像素进行解块滤波。
12.根据权利要求11所述的设备,其中为了进行解块滤波,所述一或多个处理器进一步被配置成对待放置在解码图片缓冲器中的所述2D图片的所述块进行环内滤波。
13.根据权利要求11所述的设备,其中为了基于所述360度视频图片中的所述边界的所述位置对沿所述块中的所述第一块的所述边界的像素进行解块滤波,所述一或多个处理器进一步被配置成确定所述块中的所述第一块和所述块中的所述第二块是所述边界待根据特定解块滤波器进行解块的块对,所述特定解块滤波器不同于用于所述2D图片的所述块中的所述第一块和所述块中的其它块的解块滤波器。
14.根据权利要求11所述的设备,其中为了基于所述360度视频图片中的所述边界的所述位置对沿所述块中的所述第一块的所述边界的像素进行解块滤波,所述一或多个处理器进一步被配置成基于所述360度视频图片中的所述边界的位置确定所述滤波的像素中的宽度。
15.根据权利要求11所述的设备,其中为了基于所述360度视频图片中的所述边界的所述位置对沿所述块中的所述第一块的所述边界的像素进行解块滤波,所述一或多个处理器进一步被配置成基于所述360度视频图片中的所述边界的位置确定所述滤波的强度。
16.根据权利要求11所述的设备,其中所述块中的所述第一块在图片边界处,并且所述边界是所述块的顶部、底部、左侧或右侧边界中的至少一个。
17.根据权利要求11所述的设备,其中为了基于所述360度视频图片中的所述边界的所述位置对沿所述块中的所述第一块的所述边界的像素进行解块滤波,所述一或多个处理器进一步被配置成确定所述块中的所述第一块在所述图片的多个部分中的一个部分中,其中取决于所述多个部分中的所确定的一个部分来不同地应用所述解块滤波。
18.根据权利要求17所述的设备,其中根据等量矩形投影将所述360度图片投影到所述2D图片上,并且其中所述部分包括与所述360度视频图片的极点区域相关联的至少两个部分和所述两个极点区域之间的至少一个中间部分。
19.根据权利要求17所述的设备,其中为了取决于所述多个部分中的所确定的一个部分来不同地应用所述解块滤波,所述一或多个处理器进一步被配置成应用相较于所述360度视频图片的其它部分中的边界较宽或较强的滤波器中的一或两种。
20.根据权利要求17所述的设备,其中所述一或多个处理器进一步被配置成确定所述块中的所述第二块在所述图片的所述多个部分中的第二部分中,其中取决于所述多个部分中的所确定的第一部分和第二部分来不同地应用所述解块滤波。
21.一种编码360度视频的方法,其包括:
将360度视频图片投影到2D图片上;
将所述2D图片划分成多个块;
预测所述2D图片的所述块中的第一块;和
基于所述360度视频图片中的所述块中的所述第一块和所述块中的第二块之间的边界的位置对沿所述块中的所述第一块的边界的像素进行解块滤波。
22.一种非暂时性计算机可读存储媒体,其存储指令,所述指令在被执行时使被配置成解码视频数据的装置的一或多个处理器进行以下操作:
接收指示投影到2D图片上的360度视频图片的视频数据,所述2D图片被划分成多个块;
预测所述2D图片的所述块中的第一块;和
基于所述360度视频图片中的所述块中的所述第一块和所述块中的第二块之间的边界的位置对沿所述块中的所述第一块的边界的像素进行解块滤波。
CN201880040446.3A 2017-07-05 2018-07-05 用于360度视频编码的解块滤波 Active CN110754091B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201762528938P 2017-07-05 2017-07-05
US62/528,938 2017-07-05
US201762608395P 2017-12-20 2017-12-20
US62/608,395 2017-12-20
US16/026,350 2018-07-03
US16/026,350 US10798417B2 (en) 2017-07-05 2018-07-03 Deblock filtering for 360-degree video coding
PCT/US2018/040897 WO2019010289A1 (en) 2017-07-05 2018-07-05 UNBLOCKING FILTERING FOR 360 DEGREE VIDEO CODING

Publications (2)

Publication Number Publication Date
CN110754091A true CN110754091A (zh) 2020-02-04
CN110754091B CN110754091B (zh) 2023-11-07

Family

ID=64902959

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880040446.3A Active CN110754091B (zh) 2017-07-05 2018-07-05 用于360度视频编码的解块滤波

Country Status (3)

Country Link
US (1) US10798417B2 (zh)
CN (1) CN110754091B (zh)
WO (1) WO2019010289A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3322149B1 (en) * 2016-11-10 2023-09-13 Tata Consultancy Services Limited Customized map generation with real time messages and locations from concurrent users
US11212438B2 (en) 2018-02-14 2021-12-28 Qualcomm Incorporated Loop filter padding for 360-degree video coding
US10922783B2 (en) * 2018-03-02 2021-02-16 Mediatek Inc. Cube-based projection method that applies different mapping functions to different square projection faces, different axes, and/or different locations of axis
TWI690728B (zh) 2018-03-02 2020-04-11 聯發科技股份有限公司 用於處理包括堆疊在具有填充的基於立方體的投影佈局中的投影面的基於投影的圖框的方法
US10715832B2 (en) * 2018-03-16 2020-07-14 Mediatek Inc. Method and apparatus of block partition for VR360 video coding
EP3895425A4 (en) * 2018-12-14 2021-12-15 ZTE Corporation PROCESSING AN IMMERSIVE VIDEO BITSTREAM
KR20220140706A (ko) * 2020-02-17 2022-10-18 인텔 코포레이션 컨볼루션 신경망(cnn) 기반 필터를 사용한 360도 비디오의 향상

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160014421A1 (en) * 2014-07-14 2016-01-14 Apple Inc. Encoding blocks in video frames containing text using histograms of gradients
GB201604346D0 (en) * 2016-03-15 2016-04-27 Nokia Technologies Oy A method, an appratus and a computer program product for coding a 360-degree panoramic images and video
WO2016064862A1 (en) * 2014-10-20 2016-04-28 Google Inc. Continuous prediction domain
US20170085917A1 (en) * 2015-09-23 2017-03-23 Nokia Technologies Oy Method, an apparatus and a computer program product for coding a 360-degree panoramic video

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10104361B2 (en) 2014-11-14 2018-10-16 Samsung Electronics Co., Ltd. Coding of 360 degree videos using region adaptive smoothing
US10375371B2 (en) 2016-07-15 2019-08-06 Mediatek Inc. Method and apparatus for filtering 360-degree video boundaries
US20180242016A1 (en) * 2017-02-21 2018-08-23 Intel Corporation Deblock filtering for 360 video
US10848761B2 (en) * 2017-06-29 2020-11-24 Qualcomm Incorporated Reducing seam artifacts in 360-degree video

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160014421A1 (en) * 2014-07-14 2016-01-14 Apple Inc. Encoding blocks in video frames containing text using histograms of gradients
WO2016064862A1 (en) * 2014-10-20 2016-04-28 Google Inc. Continuous prediction domain
US20170085917A1 (en) * 2015-09-23 2017-03-23 Nokia Technologies Oy Method, an apparatus and a computer program product for coding a 360-degree panoramic video
GB201604346D0 (en) * 2016-03-15 2016-04-27 Nokia Technologies Oy A method, an appratus and a computer program product for coding a 360-degree panoramic images and video
WO2017158236A2 (en) * 2016-03-15 2017-09-21 Nokia Technologies Oy A method, an apparatus and a computer program product for coding a 360-degree panoramic images and video

Also Published As

Publication number Publication date
US20190014347A1 (en) 2019-01-10
US10798417B2 (en) 2020-10-06
WO2019010289A1 (en) 2019-01-10
CN110754091B (zh) 2023-11-07

Similar Documents

Publication Publication Date Title
US10484682B2 (en) Reference picture derivation and motion compensation for 360-degree video coding
CN109716765B (zh) 用于视频译码中的帧内预测的经改进内插滤波器
KR102155362B1 (ko) 필터 정보 예측을 이용한 영상 부호화/복호화 방법 및 장치
KR102546382B1 (ko) 비디오 코딩을 위한 가변 수의 인트라 모드들
US11212438B2 (en) Loop filter padding for 360-degree video coding
TWI827609B (zh) 基於區塊之自適應迴路濾波器(alf)之設計及發信令
CN110754091B (zh) 用于360度视频编码的解块滤波
JP6342402B2 (ja) スケーラブルビデオコード化におけるダウンサンプリング位相情報の信号伝達
CN112369027A (zh) 具有用于帧内预测的多条参考线的位置相关帧内预测组合
CN113711595B (zh) 针对帧内预测模式推导的基于块的量化残差域脉冲编解码调制分配
EP2859722B1 (en) Adaptive upsampling filters for video compression
TW201841502A (zh) 用於視訊寫碼之框內預測技術
KR20180113527A (ko) 비디오 코딩을 위한 필터들에 대한 기하학적 변환들
TWI527440B (zh) 在視訊寫碼中針對高效率視訊寫碼(hevc)延伸之多層之低複雜度支援
KR102301450B1 (ko) 비디오 정보의 스케일러블 코딩을 위한 디바이스 및 방법
US10721465B2 (en) Motion compensation for cubemap packed frames
TW201714455A (zh) 內區塊複製合併模式及不可用內區塊複製參考區域之填充
KR20190006174A (ko) 필터링 정보의 시그널링
KR20160135226A (ko) 비디오 코딩에서 인트라 블록 카피를 위한 검색 영역 결정
US9591254B2 (en) Device and method for processing video data
MX2013014123A (es) Modelado de contexto eficiente de memoria.
WO2014025697A1 (en) Adaptive up-sampling filter for scalable video coding
JP2019534631A (ja) ピークサンプル適応オフセット
US20190320172A1 (en) Hardware-friendly sample adaptive offset (sao) and adaptive loop filter (alf) for video coding
CN113615178A (zh) 视频译码中的色度帧内预测

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
GR01 Patent grant
GR01 Patent grant