CN108141611A - 任意观看角度的部分解码及虚拟现实视频的线帧缓存器降低 - Google Patents
任意观看角度的部分解码及虚拟现实视频的线帧缓存器降低 Download PDFInfo
- Publication number
- CN108141611A CN108141611A CN201680059890.0A CN201680059890A CN108141611A CN 108141611 A CN108141611 A CN 108141611A CN 201680059890 A CN201680059890 A CN 201680059890A CN 108141611 A CN108141611 A CN 108141611A
- Authority
- CN
- China
- Prior art keywords
- frame
- video
- cube
- block
- pixels
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 61
- 238000000034 method Methods 0.000 claims abstract description 28
- 239000012141 concentrate Substances 0.000 claims 2
- 238000003860 storage Methods 0.000 description 35
- 238000012545 processing Methods 0.000 description 31
- 230000011218 segmentation Effects 0.000 description 24
- 230000006870 function Effects 0.000 description 14
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 239000011521 glass Substances 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000011469 building brick Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000002041 carbon nanotube Substances 0.000 description 1
- 229910021393 carbon nanotube Inorganic materials 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000003760 hair shine Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000013442 quality metrics Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
- H04N19/426—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/88—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种方法及装置,其用于在视频的子区域被选择以用于观看时对视频帧进行部分解码。本方法识别并解码显示子区域所需的视频帧的数据单元和像素块,而绕过被识别为显示子区域所不需的数据单元和像素块。视频编码器接收包括对应于全尺寸360度虚拟现实图像的第一配置中的多个立方体表面。每个立方体表面对应于立方体的不同表面。编码器通过根据不同于第一配置的第二配置将多个立方体表面重新排列,重新格式化接收到的视频帧。第二配置重新排列立方体360度虚拟现实图像的6个表面,以为了完全利用线缓存器,并允许线缓存器比全尺寸360度虚拟现实图像窄。
Description
交叉引用
本发明主张在2015年10月13日提出申请号为62/240,693的美国临时专利申请和在2015年12月14日提出申请号为62/266,764的美国临时专利申请的优先权,其整体以引用方式并入本文中。
技术领域
本发明通常涉及电子装置中的视频编码和解码,且更具体而言,涉及允许任意观看角度或观看区域的虚拟现实视频应用。
背景技术
除非此处另有说明外,本部分所描述的方法相对于下面列出的权利要求而言不是现有技术,并且通过本部分的引入不被承认是现有技术。
360度虚拟现实(360-degree virtual reality,360VR)是变化的、增强的或者替代的环境的视听模拟。视觉现实视频环绕着用户,使得用户在向任何方向或者在任何任意观看角度上朝周围看时,感觉他或者她处于现实生活中。360VR视频产生独特的高质量且高分辨率的全景视频,以在用于各种应用的打印和全景虚拟旅游产业中的使用,例如,娱乐、导向训练(pilot training)、手术和在空间或者深水中的勘探。
发明内容
以下内容仅是示例性的,不用于以任何方式限制。也就是说,以下内容用于介绍本新颖且不明显技术所描述的概念、亮点、优点和优点。在下面的具体实施方式中进一步描述实施方式。因此,以下内容并不旨区别所要求的主题的基本特征,也不用于确定所要求主题的范围。
本发明一些实施例提供一种装置及方法,其用于在视频的子区域被选择以用于观看时对视频帧进行部分解码。具体地,根据本发明的方法或者装置可以识别并解码显示子区域所需的视频帧的数据单元和像素块,而绕过被识别为显示子区域所不需的数据单元和像素块。
在一些实施例中,解码器可以接收处于视频帧序列中的多个已编码视频帧,其中每个视频帧包括像素块集。视频帧序列可以包括主帧和参考主帧以用于编码的从帧。解码器可以接收在多个视频帧中选择特定视频帧的子区域的规格。当特定视频帧是主帧时,解码器全解码特定视频帧。当特定视频帧是从帧时,解码器可以通过解码特定视频帧中包含由规格选择的子区域的像素块子集,部分解码特定视频帧。解码器可以存储特定视频帧的已解码的多个像素块以用于显示。
在一些实施例中,编码器通过部分解码最大化性能增益,例如,通过最小化从帧中帧内编解码和/或帧内预测块的数量,可以被约束成产生已编码视频。在一些实施例中,编码器可以通过使用帧间预测,最小化从帧中帧内编解码和/或帧内预测块的数量。在一些实施例中,如果帧内预测块的相邻块均是帧间预测块,则编码器可以允许帧内预测块。
在一些实施例中,视频编码器可以接收球面格式或者立方体格式的360度虚拟现实视频帧。当接收到的360度虚拟现实视频帧处于立方体格式时,视频帧具有多个立方体面,每个对应于立方体的不同面。视频编码器可以通过重新排列多个立方体面,重新格式化360度虚拟现实视频帧。已重新格式化视频帧的立方体面被排列成:(i)6个立方体面的单列、(ii)每列三个立方体面的两列或者(iii)每行三个立方体面的两行。
附图说明
本发明提供了附图以更好地理解本发明,附图并入本发明且构成本发明的一部分。附图揭露了本发明的实施方式,并同说明书一起共同解释本发明的原理。可以理解的是,附图并不一定是按照比例绘制的,因而,某些绘制的元件可能同其在实际的实施方式中的尺寸不成比例,这样做可更清晰地阐释本发明的构思。
图1示出了基于任意选择的观看角度或者观看区域执行视频帧的部分解码的视频解码***。
图2概念性示出了基于特定观看区域的示例视频帧的部分解码。
图3示出了在将视频帧分割成不同类型的已编码数据单元的不同视频编码标准下的部分解码。
图4示出了特定观看区域的视频帧序列的部分解码。
图5和图6示出了主(master)帧与从(slave)帧之间的几种类型的预测结构。
图7示出了根据任意特定观看区域执行从帧的部分解码的示例解码器。
图8和图9概念性示出了基于任意特定观看区域的视频帧的部分解码的流程。
图10示出了一种示例视频编码器,其可被约束成产生通过部分解码最大化性能的已编码视频。
图11概念性示出了为用于任意观看区域的部分解码所优化的编码视频的流程。
图12示出了球面格式或者立方体格式的示例360VR图像。
图13更详细地示出了360VR图像的存储格式。
图14示出了立方体360VR图像的不同布局,其允许有效利用比全尺寸360VR图像更窄的线缓存器。
图15示出了将6个立方体360VR面重新排列成允许使用窄线缓存器的窄配置的视频编码器。
图16示出了在使用更窄线缓存器时接收连续立方体格式的原始360VR视频源的视频编码器。
图17示出了在编码期间被重新排列成一列布局的360VR立方体帧的编解码。
图18示出了将已重新排列帧分割成切片(slice)、方块(tile)或者子视频的分割。
图19示出了在编码期间被重新排列成两行三列的360VR立方体帧的编解码。
图20示出了用已重新排列立方体面对360VR视频进行解码的解码器。
图21概念性示出了对立方体格式的360VR视频进行编码和解码的流程。
图22概念性示出了在本发明一些实施例中实现的电子***。
图23描述了示例性解码器装置。
图24描述了示例性编码器装置。
具体实施方式
在下面详细的说明书中,为了透彻理解相关教示内容,通过举例的方式进行说明大量具体的细节。基于本文所描述的教示内容的任何改变、推导和/或拓展均在本发明的保护范围内。在一些例子中,为了避免不必要地混淆本发明的教示内容的方面,在相对较高的级别而无细节上描述已知的方法、程序、元件和/或关于此处所公开的一个或者多个示例性实施方式的电路。
尽管360VR视频对围绕用户周围的视觉环境进行编码,但是用户通常在特定观看角度处观看视频。换言之,不像用户被期望观看视频的整个显示区域的传统平面视频,360VR的用户被期望观看视频的整个显示区域的具体子区域。这种观看区域通常是每帧的相对较小的部分区域。尽管整个帧被解码并可用于观看,但帧的剩余区域将不被观看。这样,浪费了解码永不被用户观看的像素所消耗的计算资源。
I.任意观看区域的部分解码
本发明的一些实施例提供了在视频的子区域被选择以用于观看时部分解码视频帧的装置和方法。具体地,本方法或装置识别并解码显示子区域所需要的视频帧的已解码数据单元和像素块,而绕过被识别显示子区域所不需要的数据单元和像素块。由于部分解码是用于任意选择的子区域,所以其也称为区域解码。
对于一些实施例,图1示出了基于任意选择的观看角度或者观看区域执行视频帧的部分解码的视频解码***100。本视频解码***解码来自于已编码源110的视频帧,并在显示140处显示位于特定观看角度处的已解码视频。解码***100基于观看角度的观看区域规格(specification)105执行部分解码。如图所示,视频解码***100包括已编码视频源110、解码器120、显示缓存器130、用户接口150和显示设备140。在一些实施例中,视频解码***100及其各个组件是虚拟现实***(例如,虚拟现实眼镜199)的一部分。例如,用户接口150对应于感知并记录用户的运动的虚拟显示眼镜的位置传感器和运动传感器的集合,而显示设备140对应于虚拟显示眼镜的观看屏幕。解码器120、显示缓存器130和已编码视频源110由嵌入在眼镜中的处理电路组件和存储器电路组件实现。
已编码视频源110存储已编码视频115。在一些实施例中,已编码视频源110包括存储设备,其存储已编码视频115。在一些实施例中,已编码视频源110包括通信设备,其用于自外部源通过有线通信介质或者无线通信介质接收已编码视频115。
已编码视频115是表示视频的数据。已编码视频是比特流形式,根据视频编码标准以已压缩格式对视频进行编码,例如,H.26x(例如H.264、H.265等)、VPx(例如VP8、VP9等)。已编码视频被组成各种已编码数据单元,例如,图像组(group of pictures,GOP)、帧、切片、方块和/或像素块。对于一些视频标准,已编码数据单元被组成分层。例如,视频帧序列可以包括一个或多个已编码帧,已编码帧可以包括一个或多个切片(或者方块(tile)),以及方块可以包括一个或多个像素块。
一些已编码数据单元可以独立于其他已编码数据单元被解码。例如,已编码帧可以具有切片(或者方块),其不依存于同一帧处的其他切片(或者方块)以用于编码或者解码。当解码这种已编码帧时,解码器自由地并行解码切片,或者跳过先前切片以直接解码后续切片。
解码器120接收已编码视频115,并执行去压缩和/或解码。在一些实施例中,解码器120去压缩已编码视频115中的各个已编码数据单元,随后,重构来自于已去压缩数据单元的数据的像素块。随后,已重构像素块被放置在显示缓存器130中,以由显示设备140进行显示。
用户接口150接收表示用户观看的子区域或者用户的观看角度的用户输入(例如,通过虚拟现实眼镜的运动或位置,或者通过其他用户交互),并相应地生成观看区域规格105。观看区域规格105指定了观看区域在显示区域内的位置。(在一些实施例中,观看区域规格105也指定了观看区域的尺寸和形状)。用户接口150将观看区域规格105提供给解码器120和显示设备140。反过来,解码器120解码必需的数据单元和像素块,以重构由观看区域规格105指定的观看区域,而显示设备140显示此特定观看区域。
图2概念性示出了基于观看区域规格(例如,105)的示例视频帧200的部分解码的示例性实施例。示例视频帧200是由已编码视频115提供的全分辨率视频帧。在当已编码视频115是360VR视频时的情况中,示例视频帧200表示围绕用户周围的整个虚拟现实显示区域。部分解码由视频解码***100的解码器120执行。
如图所示,视频帧200被分割成像素块的二维阵列。每个像素块是像素的二维阵列。对于根据H.264格式而编码的视频,像素块称为宏块(16x16像素)。对于以H.265格式编码的视频,像素块可以称为64x64编码树单元,其可以被子分割为四叉树。对于VP9,像素块称为64x64超级块。
视频帧200也被分割成几个不同的分割,即211-214,每个分割对应于已编码视频115中各自的已编码数据单元。对于示例视频帧200,每个已编码数据单元对应于切片。(下面描述的图3示出了每个已编码数据单元对应于H.265中的切片或者VP9中的视频组中的子视频。)每个已编码数据单元包括用于重构分割内的像素块的已编码数据。
如图所示,观看区域规格105指定了观看区域205,其占用整个视频帧200的部分。观看区域205覆盖像素块集220(如阴影像素块所示)以及已编码数据单元212和已编码数据单元213。当对用于观看区域205的帧200进行部分解码时,解码器120去压缩已编码数据单元(切片)212和213,并重构像素块集220。其他像素块和已编码数据单元(即211和214)在部分解码流程期间被绕过,以节省计算资源。
在图2的示例中,当部分解码视频帧200以用于特定观看区域205时,解码器120去压缩整个切片212,由于切片212的最后一个像素块221是覆盖特定观看区域205的像素块之一,所以解码器去压缩整个切片212,以便获得重构像素块221所必需的数据。(整个切片212如阴影所示。)另一方面,切片213的最后两个像素块,即222和223,不覆盖特定观看区域205。因此,无需重构这两个像素块。因此,只要其具有来自于已编码数据单元213的必需数据以重构像素块224(其是覆盖观看区域205的切片213中的最后一个像素块),解码器就可以不对已编码数据单元213进行去压缩。
如所述,不同的视频编码标准提供不同的方式以将视频帧分割成多个已编码数据单元。然而,识别并解码必需的已编码数据单元和像素块的同一原理仍然使用。图3示出了在将视频帧分割成不同类型的已编码数据单元的不同视频编码标准下的部分解码。
图3显示了三种不同类型的分割的三种不同的视频帧301、视频帧302和视频帧303的部分解码。视频帧的每个分割是已编码数据单元,其可以独立于同一帧中的其他分割而被解码。视频帧301被分割成(H.264或H.265的)切片311-314。视频帧302被分割成(H.265的)方块321-329。视频帧303被分割成(H.264、H.265或VP9的)子视频331-335。本图显示了响应于识别观看区域305的观看区域规格105而被部分解码的这些帧中的每个。
如图所示,对于视频帧301,由于切片312和切片313覆盖观看区域350,而切片311和切片314没有覆盖,部分解码操作解码切片312和切片313,而跳过切片311和切片314的解码。对于视频帧302,部分解码操作解码方块324、方块325、方块327和方块328,而绕过方块321、方块322、方块323、方块326和方块329的解码。对于视频帧303,部分解码操作解码子视频334和子视频335,而绕过子视频331、子视频332和子视频333的解码。
为了实现更大编解码效率,大部分视频编码标准使用预测编解码,即通过参考另一视频帧中(帧间预测)或者同一帧中的其他地方中(帧内预测)的像素数据对像素块进行编码。相反,通过仅使用像素块内的信息(例如,变换样本)而不参考块外部的信息,帧内编解码对像素块的像素进行编码。另外,不参考另一帧的帧(即所有像素块被帧内编解码或者帧内预测)称为I帧,像素块可以参考先前的帧的帧称为P帧,而像素块可以参考先前和后续帧的帧称为B帧。已编码视频通常是包括I类型帧、P类型帧和B类型帧的视频帧序列。
在一些实施例中,用于任意特定观看区域的部分解码在视频序列上进行实现,其使用预测编解码。在这些实施例中的一些中,视频序列中的帧被分类为主帧或者从帧。主帧是完全被解码而不考虑任何特定观看区域的帧,从帧是可以基于观看区域规格而被部分解码的帧。从帧的像素块可以被编码为帧间预测块,其(通过使用运动矢量)参考主帧中的像素而不是其他从帧。
图4示出了特定观看区域的视频帧序列400的部分解码。如图所示,视频帧序列400具有主帧和从帧的混合,包括主帧411-414和从帧421。视频解码***已接收用于观看区域405的观看区域规格。
序列400中的每个主帧被完全解码,而不考虑特定观看区域。由于观看区域的规格由实时用户任意确定,所以完全解码每个主帧是必需的,是因为主帧的任何区域可以由后续从帧的特定观看区域进行参考。
图4示出了序列400中的示例从帧421的部分解码操作。从帧421使用主帧412和主帧413作为参考以用于重构。从帧421基于特定观看区域405,即仅覆盖观看区域405的从帧421中的像素块被解码并重构(如阴影所示)。像素块431是覆盖观看区域405的像素块之一,并因此由部分解码操作进行解码且重构。例如,像素块431是参考主帧412和主帧413中的区域441、区域442和/或区域443(不必是像素块)中的像素的帧间预测块。值得注意的是,主帧412和主帧413中的区域441、区域442和/或区域443不必覆盖特定观看区域405。因此,解码器完全解码主帧,而不考虑特定观看区域。
图5和图6示出了主帧与从帧之间的几种类型的预测结构。图5示出了具有不同主从预测结构的两种的视频序列501和视频序列502。视频序列501具有通用预测结构,其中每个从帧通过使用参考至少两个主帧(即先前和后续)的双向预测而被编码,即每个从帧是B帧。视频帧502具有较低延迟预测结构,其中每个从帧通过基于先前主帧仅使用前向预测而被编码,即每个从帧是P帧。
图6示出了具有不同主从预测结构的两种其他的视频序列601和视频序列602。视频序列601具有替代预测结构,其中每个从帧仅使用时间上最近主帧作为预测参考。视频序列602具有自适应预测结构,其中,如果存在从帧与具体主帧之间时间上的情景变化,根据情景变化的信息,视频编码器可以确定哪个主帧将被参考以用于编码从帧,即从帧不参考具体主帧。
部分解码从帧将解码***从必须解码位于特定观看区域外部且用户将不观看的部分从帧中解脱出来。由于主帧仍然必须被完全解码,所以部分解码的性能增益是基于特定观看区域的尺寸以及主帧的周期。例如,如果视频的分辨率是3840x2160,特定观看区域的尺寸是1280x720(其可以需要占用区域1536x864的已解码像素块),并且主帧的周期是6(即序列中每6个帧存在一个主帧),则仅像素块的30%将必须被解码。
对于一些实施例,图7示出了根据任意特定观看区域执行从帧的部分解码的示例性解码器。具体地,本图更详细地示出了解码***100的解码器120。
解码器120包括用于去压缩已编码数据单元的组件和用于重构像素块的组件。各种组件根据由用户接口150提供的观看区域规格105进行操作。
如图所示,解码器120接收已编码视频(例如,以比特流形式),并将已解码视频存储在显示缓存器130处,以由显示设备140进行显示。解码器120包括解析器710、像素块解码器720和参考帧缓存器730。像素块解码器720包括帧内预测器740和帧间预测器750。
解析器710用于解压比特流中的已编码数据单元。对于一些视频标准,已编码数据单元通过基于熵编解码的变长编解码(variable length coding,VLC)进行无损压缩。因此,解析器也称为变长解码器(variable length decoder,(VLD)。不同视频标准使用不同类型的熵编码。例如,H.264使用霍夫曼编解码,而H.265使用上下文自适应二进制算术编解码(context adaptive binary arithmetic coding,CABAC)。大部分最先进视频标准使用基于CABAC的熵编解码,以具有更少编解码比特。当部分解码帧(特别是从帧)时,解析器710将跳过不包括覆盖特定观看区域的任何像素块的已编码数据单元。
像素块解码器720用于基于存储在已编码数据单元中的信息(未压缩形式)重构像素块。像素块解码器720也依赖于用于解码一些像素块的预测。对于帧内预测的像素块,像素块解码器720通过参考同一帧内的相邻像素块,(通过使用帧内预测器740)重构像素块。对于帧间预测的像素块,像素块解码器720通过参考其他帧(例如,通过运动矢量并执行运动补偿),(通过使用帧间预测器750)重构像素块。
参考帧缓存器730存储已解码帧(以及已解码帧的已重构像素块)。当执行部分解码时,主帧被完全解码,随后被存储在参考帧缓存器730中,以便用作参考帧以用于重构从帧的像素块。
如所述,根据观看区域规格105,其指定了用户通过用户接口150任意选择的观看区域,解码器的不同组件执行部分解码操作。观看区域规格105反过来用于控制解析器710和像素块解码器720的操作。观看区域规格105也被转发给显示设备140,使得其了解已解码视频帧的哪个区域被选择为用于显示的观看区域。
视频解码器100识别出显示特定观看区域所必需的已编码数据单元和像素块。在图7中,此功能被概念性示出为部分解码控制器模块125,其使用观看区域规格150,并指导解析器710哪个已编码数据单元需要被压缩,以及指导像素解码器720哪个像素块需要被重构。在一些实施例中,识别哪个已编码数据单元来去压缩的功能由解析器710执行,其使用观看区域规格150以确定已编码数据单元是必须被解码还是可以被跳过。同样地,识别哪个像素块必须被解码的功能由像素块解码器720执行,其使用观看区域规格150以确定像素块是必须被重构还是可以被跳过。为了确保主帧被完全解码,解析器710和像素块解码器720均了解当前已解码帧是主帧还是从帧。
图8和图9概念性示出了基于任意特定观看区域的视频帧的部分解码的流程800和流程900。在一些实施例中,实现解码***100的一个或多个处理单元执行流程800或者流程900。在一些实施例中,通过执行具有对应于解码***100的各个组件的模块的软件,例如解析器710、像素块解码器720、部分解码控制器125等,执行流程800或者流程900的处理单元如是进行。注意的是,假设结果是基本相同的,则流程的步骤不被要求以如图8和图9所示的具体顺序被执行。
流程800开始于解码***100已接收已编码视频(即比特流),并执行解码操作以重构并显示单个帧。
流程800接收指定了观看区域的任意观看角度或者观看区域选择(在步骤810中),其是根据已编码视频的完全解码视频帧的子区域。
随后,流程800确定当前在被解码的帧是从帧还是主帧(在步骤820中)。在一些实施例中,视频比特流的编码器将确定帧是主帧还是从帧(用于部分解码的目的)嵌入到比特流内。在一些实施例中,解码器基于当前已解码帧后续是否将被参考,确定当前在被解码的帧应是主帧还是从帧。如果当前在被解码的帧是主帧,则本流程继续到步骤825。如果当前在被解码的帧是从帧,则本流程继续到步骤830。
在步骤825中,流程800完全解码当前帧。解码的结果,即已重构像素块被存储在用于显示的显示缓存器(例如,130)中,以及用于重构当前帧中的帧内预测像素块以及用于重构其他帧(从帧和主帧)中的帧间预测像素块的参考缓存器(例如,730)中。在一些实施例中,解码器中的存储设备或者存储器设备实现显示缓存器和参考缓存器。随后,本流程继续到步骤870。
在步骤830中,流程800在当前帧中识别出包含任意观看区域的像素块集。在一些实施例中,此像素块集是可以包含特定观看区域的最小像素块集。本流程也识别出解码已识别的像素块集所需的已编码数据单元(或者分割)集(在840中)。在一些实施例中,此已编码数据单元集是可以包含特定观看区域的最小像素块集。
随后,流程800解码已识别的已编码数据单元集(在步骤850中),并解码和/或重构已识别的像素块集(在步骤860中)。在一些实施例中,本流程解码已编码数据单元,以便获得用于重构已识别的像素块集的必需数据。已重构像素块被存储在显示缓存器130中以用于显示设备进行显示。这些已重构像素块是显示特定观看区域所必需的。位于观看区域外部的像素块不被重构。随后,本流程继续到步骤870。
在步骤870中,本流程基于接收到的观看区域规格,显示任意选择的观看区域。对于解码***100,显示设备140使用接收到的观看区域规格,以确定在显示缓存器130中的何处以检索用于显示的像素数据。随后,本流程结束。
流程900开始于在解码***100已接收已编码视频(即比特流),并执行解码操作以重构并显示单个帧。
流程900接收指定了观看区域的任意观看角度或者观看区域选择(在步骤910中),其是根据已编码视频的完全解码视频帧的子区域。
流程900确定当前在被解码的帧是从帧还是主帧(在步骤920中)。在一些实施例中,视频比特流的编码器将确定帧是主帧还是从帧(用于部分解码的目的)嵌入到比特流内。在一些实施例中,解码器基于当前已解码帧后续是否将被参考,确定当前在被解码的帧应是主帧还是从帧。如果当前在被解码的帧是主帧,则本流程继续到步骤925。如果当前在被解码的帧是从帧,则本流程继续到步骤930。
在步骤925中,流程900完全解码当前帧。解码的结果,即已重构像素块被存储在用于显示的显示缓存器(例如,130)中,以及用于重构当前帧中的帧内预测像素块以及用于重构其他帧(从帧和主帧)中的帧间预测像素块的参考缓存器(例如,730)中。随后,本流程继续到步骤970。
在步骤930中,本流程确定在被解码或去压缩的当前分割或者已编码数据单元是否覆盖特定观看区域,即具有显示具体区域所需的像素块。如果是,则本流程继续到步骤940。如果当前分割不覆盖特定观看区域,则流程900继续到步骤935。
在步骤935中,流程900跳过用于下一分割的当前分割的解码,是因为当前分割不包含重构特定观看区域的像素块所需的像素数据。随后,流程900继续到步骤950。
在步骤940中,流程900解码当前分割直到覆盖观看区域的所有像素块均被解码。换言之,一旦覆盖特定观看区域的当前分割内不存在其他像素块,当前分割的解码就立即停止。已重构像素块被存储在显示缓存器130中,以由显示设备140进行显示。
在步骤950中,流程900确定当前帧中是否存在还未被解码或者未被确定是否是显示特定观看区域所不必需的另一分割或已编码数据单元。如果当前帧中存在另一分割,则本流程返回到步骤930。如果不存在,则流程900继续到步骤970。
在步骤970中,本流程基于接收到的观看区域规格,显示任意选择的观看区域。对于解码***100,显示设备140使用接收到的观看区域规格,以确定在显示缓存器130中的何处以检索用于显示的像素数据。随后,本流程结束。
II.用于任意观看区域的编码视频
如所述,通过跳过显示特定观看区域所不必需的已编码数据单元和像素块,从帧的部分解码实现性能增益。换句话说,视频解码***能绕过且不解码的已编码数据单元和像素块越多,通过执行部分解码实现的性能增益越多。因此,从帧中的帧内预测像素块是不可取的,因为如果覆盖观看区域的像素块通过参考同一帧中的相邻像素块而被帧内预测,则尽管其不覆盖观看区域,但此像素块将必须被解码。另一方面,从帧中的帧间预测像素块是更可取的,因为其仅参考被完全解码或者重构而不考虑特定观看区域的主帧。
本发明的一些实施例提供一种编码器,其可以被约束成产生最大化部分解码的性能增益的已编码视频,例如,通过最小化从帧中使用帧内预测编码的像素块的数量。在一些实施例中,通过在从帧中仅使用帧间预测,编码器最小化帧内预测块的数量。在一些实施例中,如果其所有相邻块均是帧间预测,则编码器可以允许帧内预测块。这将阻止从帧中的一系列帧内预测块(一系列帧内预测块将通过部分解码阻碍性能增益,因为落入观看区域外部的很多像素块潜在地也将必须被解码)。
如所述,帧可以被分割成切片组/方块组/视频组。对于视频帧的切片组/方块组,切片/方块之间的视觉质量在视觉上可以是不同的。对视频帧的子视频组,这些单个子视频可以同时具有不同帧类型。另外,不同的子视频可以同时被编码成具有不同视觉质量。为了减少独立分割(例如,切片/方块/子视频)之间的分割分界线处的伪影,本发明的一些实施例提供了一种编码器,其可以被约束成要求独立分割(例如,切片/方块/子视频)以在相同的时间点同时具有相似视觉质量和/或相同的帧类型。一些实施例中的解码器被配置有后滤波器(post-filter),以进一步消除块伪影(blocky artifact)。
图10示出了可被约束成产生最大化部分解码性能的已编码视频的示例性视频编码器1000。视频编码器1000自视频源1005接收原始且未被编码的视频,并产生已编码视频1090以用于存储或者传输。视频编码器1000的操作受部分解码优化模式1050(其可以是存储的标志或者用户接口提供的信号)的影响,其约束编码器产生用于部分解码的优化的已编码视频。
如图所示,视频编码器1000包括像素块编码器1010、量化器1020、变长编码器(variable length encoder,VLE)1030和率控制器1040。部分解码优化模式1050控制率控制器1040和像素编码器1010的操作。
通过使用帧内编解码、帧内预测或者帧间预测,像素块编码器1010可以编码每个像素块。通过重构来自于已量化样本的像素块,像素块编码器1010执行预测编解码。像素块编码器1010也包括参考帧缓存器1015,以便执行帧间预测(例如,通过执行运动估计和运动补偿)。
在一些实施例中,当用设置的部分解码优化模式1050对从帧进行编码时,像素块编码器1010允许帧间预测模式,而不允许其他模式,例如,帧内预测。在一些实施例中,像素块编码器1010也将允许帧内预测,但仅用于相邻像素块被帧间预测的块。对于被分割成子视频组的帧,像素块编码器1010将确保所有子视频同时具有相同的帧类型。
量化器1020确定已变换样本如何用数字表示。量化精度越细,视频的质量越好,但越多比特将被需要以表示比特流中的数据。在一些实施例中,基于比特率对图像质量的折衷,率控制器1040控制量化器1020的操作。
变长编码器1030使用量化器1020的输出,并通过使用熵编码(例如,霍夫曼、CABAC等)执行无损压缩。
通过使用量化器1020来控制比特率,率控制器1040控制视频的质量。对于被分割成切片组/方块组/子视频组的视频,部分解码优化模式1050的设置使得率控制器1040控制不同切片/方块/子视频的比特率以具有相似视觉质量。
图11概念性示出了为(任意观看区域的)部分解码所优化的编码视频的流程1100。在一些实施例中,实现编码器***1000的一个或多个处理单元执行流程1100。在一些实施例中,通过执行具有对应于编码器1000的各个组件的模块的软件,例如,像素块编码器1010、量化器1020、可变的变长编码器1030、率控制器1040等,执行流程1100的处理单元如是进行。注意的是,假设结果是基本相同的,则流程的步骤不被要求以如图11所示的具体顺序被执行。
流程1100开始于编码器1000接收待编码的原始视频。流程1100接收原始视频的帧(在步骤1110)。在本发明的一实施例中,原始视频是360VR视频。流程1100也确定已编码视频是否将被优化以用于部分解码,例如,当部分解码优化模式1050被设置时。如果已编码视频将被优化以用于部分解码,则流程1100继续到步骤1130。否则流程1100继续到步骤1145。
在步骤1130中,流程1100调节帧的每个分割的率控制,以保证跨过不同分割(例如切片/方块/子视频)处的统一图像质量。
在步骤1140中,流程1100确定正被编码的当前帧是主帧还是从帧。在一些实施例中,编码器将位于固定时间间隔处的帧设计为主帧。在一些实施例中,在确定帧是否应是主帧还是从帧之前,编码器确定帧是否为I帧、B帧或者P帧。如果当前正被编码的帧将是主帧,以用于部分解码目的,则本流程继续到1145。如果当前正被编码的帧将是从帧,以用于部分解码目的,则本流程继续到步骤1150。
在步骤1145中,流程1100不对像素块的编码类型做任何特定要求。像素块可以被帧内编解码、帧内预测或者帧间预测,所有由编码器基于诸如图像内容或者率控制的考虑自行决定。随后,流程1100继续到步骤1160。
在步骤1150中,流程1100加载将每个像素块限制成仅通过一些编码类型进行编码的设置。在一些实施例中,这些设置允许帧间预测,而不允许帧内预测。在这些实施例中的一些中,仅当块的相邻像素块通过帧间预测而被编解码时,这些设置将允许像素块的帧内预测。对于被分割成子视频组的帧,这些设置保证不同子视频中的像素块具有相同的帧类型。随后,流程1100继续到步骤1160。
在步骤1160中,流程1100根据在步骤1145或者步骤1150处安装的编码模式设置,对帧的像素块进行编码。随后,流程1100结束(或者返回到步骤1110以接收另一原始视频帧)。
III.线缓存器降低
如所述,360VR是围绕着用户周围的虚拟现实视频,允许用户在任何方向或者任何观看角度上环顾。360VR内容的图像通常被编码、存储、传输且解码为2D图像。360VR图像可以以球面格式被存储,其中球面地围绕用户的虚拟现实以等角(equirectangular)形式被映射到二维平旦表面。360VR图像也可以以立方体格式被存储,其中每个虚拟现实图像包括6个立方体面(即上、下、左、右、前和后)。无论360VR图像是由球面格式表示还是立方体格式表示,图像都被分割成像素块以用于编码。图12示出了球面格式1210和立方体格式1220的示例360VR图像。本图也示出了立方体1230,其显示了立方体格式1220的不同表面(面)之间的空间关系。
图13更详细地示出了360VR图像的存储格式。具体地,本图显示了球面格式以及立方体格式的360VR图像的维数。本图也显示了立方体格式的360VR图像的分割
如图所示,以球面格式1310存储的360VR图像被转换成立方体格式1320。立方体格式的已转换图像1320具有6个正方形立方体面(cubic face),每个立方体面具有W/4个像素的宽度和W/4个像素的高度,形成了具有W个像素的整体宽度和3W/4个像素的高度的图像。在本示例中,球面格式的源360VR图像1310被显示为具有W的宽度和W/2的高度。然而,对于一些实施例,球面格式的源图像与其相应的立方体格式的已转换图像之间不存在像素上的固定关系。
值得注意的是,图像1320中的立方体格式的6个面/分割被排列或者布局,使得6个面的图像内容是连续的(即任何两个相邻面的内容跨过其共享边缘是连续的)。水平方向上的表面在后、左、前和右的序列中是连续的,而垂直方向上的面在上、左和下的序列中是连续的。然而,这种设计也使得图像1320具有空白且没有任何实际像素数据的区域(即不是立方体的表面之一),尤其是沿着顶行的正方形(即仅具有“上”分割的行)和沿着最后一行的正方形(即仅具有“下”分割的行)。
当重构视频帧时,视频解码器,例如120,(或视频编码器,例如1000),暂时将已重构像素线放置在线缓存器中,其由编码器或解码器中的存储器或者存储设备提供。当编码/解码后续像素块时,存储在线缓存器中的已重构像素数据用作用于帧内预测的参考像素。这种线缓存器的宽度通常与整个视频图像的宽度相同。这样,例如,支持360VR图像1310和360VR图像1320的解码或编码所需的线缓存器的宽度是W个像素。
为了线缓存器的节省成本设计,一些实施例将立方体360VR图像的6个面排列在一个布局中,其允许线缓存器比全尺寸的360VR图像更窄。图14示出了立方体360VR图像的不同布局,其允许有效利用比全尺寸360VR图像更窄的线缓存器。
图14示出了四种不同的布局,即1401-1404。第一布局1401示出了360VR立方体图像的传统排列以用于比较目的。其要求线缓存器具有360VR图像的全宽度(即W个像素)。
第二布局1402示出了360VR立方体图像的6个面被布局为单列的排列。此布局将解码360VR立方体图像所需的线缓存器(line buffer,LB)的宽度降低成一个立方体面的宽度,即W/4。
第三布局1403示出了360VR立方体图像的6个面被布局在三行两列配置中。此布局将解码360VR立方体图像所需的线缓存器的宽度降低成两个立方体面的宽度,即W/2。
第四布局1404示出了360VR立方体图像的6个面被布局在两行三列配置中。此布局将解码360VR立方体图像所需的线缓存器的宽度降低成三个立方体面的宽度,即3W/4。
值得注意的是,在三种降低线缓存器布局1402-1404中的每个中,6个面的内容不必连续。例如,在配置1402中,标记为UP、LT和BT的表面(即上、左和下)的内容是连续的,但是BT、FR、RT和BK(即下、前、右和后)的内容不是连续的。
在一些实施例中,用于360VR视频的编码器接收节省线缓存器宽带布局(例如,布局1402-1404)中的视频源,并使用更窄的线缓存器(例如,W/4)。这也允许解码器在解码视频时使用相应的更窄线缓存器。
图15示出了编码360VR视频的视频编码器,其中立方体格式的6个面被重新排列成允许在编码流程期间使用更窄线缓存器的布局。如图所示,视频编码器1000接收360VR视频源1505,其中立方体格式的6个面处于已重新排列的一列布局1510,即布局1402,其中立方体面以上、左、下、前、右和后的顺序被排列。已重新排列的视频的宽度是一个立方体面的宽度,即W/4个像素。编码流程使用线缓存器1550以存储必需的已重构像素线,以便执行帧内预测。由于已重新排列帧的宽度是W/4个像素,所以线缓存器也具有W/4个像素的宽度。
编码流程产生已编码视频1090,其存储包括360VR视频在窄布局中的6个立方体面的已编码帧。在一些实施例中,已编码视频1090采用符合视频编解码标准比特流的形式,例如,H.264、H.265或者VP9。
在一些实施例中,视频编码器接收传统的连续立方体格式(即图14的布局1401)或者球面格式(即图13的布局1310)的原始360VR视频源。在这些实施例中的一些中,通过重新排列这6个立方体面,编码器1000将原始360VR视频转换成更窄布局(例如,一列布局1402)。随后,具有已重新排列立方体布局的已转换视频通过使用更窄的线缓存器被编码。图16示出了在使用更窄线缓存器时接收连续立方体格式的原始360VR视频源的视频编码器。
如图所示,视频编码器1000接收传统连续格式的原始360VR视频1605。此原始传统连续格式可以是球面格式1310或者结合图13所述的立方体格式1320。转换器1508通过重新排列立方体格式的6个面,重新格式化原始360VR视频。这产生了具有一列布局(即布局1402)的已重新排列帧的已转换视频1610。随后,通过使用线缓存器1550,其由于已重新排列帧的宽度为W/4个像素而具有W/4的宽度,编码器1000对已转换视频1610执行编码流程。
图17示出了被重新排列成一列布局的360VR立方体帧1700的编解码。如图所示,重新排列的360VR帧1700被分割成像素块,并且像素块以光栅扫描顺序被编码/解码。由于已重新排列帧仅具有一列立方体面,编码器将编码一个立方体面的像素块,然后继续到下一个,具体按照上、左、下、前、右和后的顺序(根据图14的布局)。已重新排列帧的像素块也可以被分割成已编码数据单元,例如,切片、方块或者视频组。图18示出了将已重新排列帧1700分割成切片(在1801处)、方块(在1802处)或者子视频(在1803处)的分割。
如所述,360VR视频的6个立方体面也可以被排列成三行两列布局(即布局1403)或者两行三列布局(即布局1404)。图19示出了在编码期间被重新排列成两行三列布局的360VR立方体帧1900的编解码。
如图所示,编码流程沿着每行像素块进行。位于帧的顶端的像素块行跨过立方体面上、右和下,而位于帧的底端的像素块行跨过立方体面后、左和前(根据图14的示例)。由于每行跨过三个立方体面,所以编码和解码所需的线缓存器是3W/4个像素。图19也示出了将已重新排列帧1900分割成切片1至切片5的分割。每个切片可以跨过多个立方体表面。
返回到图15。由于已重新排列360VR帧包括6个立方体面,所以一些实施例中的编码器保证已重新排列360VR帧的所有分割和所有立方体面具有相似的视频质量。在一些实施例中,编码器执行率控制(在率控制器1040处),以保证不同的分割和不同的立方体面具有相似质量,例如,通过控制量化器1020。
图20示出了用重新排列立方体面对360VR视频进行解码的解码器。具体地,本图示出了在解码并显示360VR视频时的解码器100,其中每帧的立方体面被重新排列以用于通过线缓存器而降低存储器使用的目的。
如图所示,视频解码器120接收已编码视频110(作为比特流),其包括立方体面被重新排列以降低线缓存器宽度的已编码360VR帧。在所示的示例中,立方体表面是处于一列布局(即布局1402)。
解析器710接收并解析已编码视频110,像素块解码器720重构每帧的像素块。像素块解码器720包括线缓存器2025以用于暂时存储用于执行帧内预测(在750处)以用于重构帧2010的必需的已重构像素行。线缓存器2050仅需要W/4个像素宽,因为帧2010是具有立方体面在一个单列中的已重新排列帧。
像素块解码器720将已重构像素存储在参考帧缓存器730中以用于后续解码和/或显示缓存器130中以用于由显示设备140进行显示。在一些实施例中,显示缓存器130存储已重新排列窄格式(例如,布局1402)的已重构像素,并且为了重构原始连续格式(即布局1401)的显示帧2090,显示控制器将显示缓存器的部分选择到显示140。
图21概念性示出了对立方体格式的360VR视频进行编码的流程2101和解码的流程2102。流程2101是用于编码360VR视频,具体地通过将立方体360VR视频的6个面重新排列成窄格式。在一些实施例中,在将360VR视频编码成比特流时,编码器1000执行流程2101。在一些实施例中,实现编码器1000的一个或多个处理单元用于执行流程2101。在一些实施例中,通过执行具有对应于编码器1000的各个组件的模块的软件,例如,像素块编码器1010、量化器1020、变长编码器1030、率控制器1040、重新排列器1508等,执行流程2101的处理单元如是进行。注意的是,假设结果是基本相同的,则流程的步骤不被要求以如图21所示的具体顺序被执行。
流程2101开始于其接收原始360VR视频(在步骤2110中)。原始360VR视频具有已处于已重新排列立方体格式(例如,布局1402、布局1403或者布局1404)的帧,其中已重新排列帧的宽度比传统连续立方体格式的帧更窄。在一些实施例中,原始360VR视频处于传统连续立方体格式或者球面格式(如图13所示)。这些实施例中的一些中的流程2101将来自于传统连续格式的视频的帧重新排列成已重新排列立方体格式之一。
随后,通过使用窄线缓存器,流程2101将已重新排列帧编码为像素块(通过使用帧内编解码和预测)。在一些实施例中,预测编码操作需要来自于已量化样本的像素块的重构,并且重构使用线缓存器以暂时存储已重构像素块。已重新排列帧越窄,其允许越窄的线缓存器。
流程2101产生包括已编码像素块的已编码数据单元(在步骤2130中)。此已编码数据单元将帧分割成切片、方块或者视频组。随后,流程2101存储或者发送已编码数据单元作为已编码视频(在步骤2135中),即比特流。随后,流程2101结束。
流程2102用于解码360VR视频的比特流,其帧具有已重新排列窄格式(例如由流程2101所产生的这些)的立方体表面。在一些实施例中,在解码并显示360VR视频时,解码器100执行流程2102。在一些实施例中,实现解码器100的一个或多个处理单元用于执行流程2102。在一些实施例中,通过执行具有对应于解码***100的各个组件的模块的软件,例如解析器710、像素块解码器720、部分解码控制器125等,执行流程2102的处理单元如是进行。
流程2102开始于接收包括具有窄格式的已重新排列帧的360VR视频的已编码视频(即比特流)(在步骤2150中)。随后,本流程解析比特流中已编码数据单元以用于已重新排列帧(在步骤2155中)。
流程2102通过使用窄线缓存器,重构已重新排列帧的像素块(在步骤2160中)。重构使用线缓存器以暂时存储已重构像素块。已重新排列帧越窄,其允许越窄的线缓存器。
流程2102存储立方体面的已重构像素块(在步骤2165中)。流程2102基于立方体格式的6个面中的已重构像素,显示360VR视频帧(例如,在显示设备140处)(在步骤2175中)。随后,流程2102结束。
IV.电子***
很多上述的特征和应用可以被实现为软件处理,其被指定为记录在计算机可读存储介质(computer readable storage medium)(也被称为计算机可读介质)上的指令集。当这些指令由一个或者多个计算单元或者处理单元(例如,一个或者多个处理器、处理器核或者其他处理单元)来执行时,则这些指令使得该处理单元执行这些指令所表示的动作。计算机可读介质的示例包括但不限于CD-ROM、闪存驱动器(flash drive)、随机存取存储器(random access memory,RAM)芯片、硬盘、可擦写可编程只读存储器(erasableprogrammable read only memory,EPROM),电可擦除可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)等。该计算机可读介质不包括通过无线或有线连接的载波和电信号。
在本说明书中,术语“软件”意味着包括只读存储器中的固件或者存储在磁存储设备中的应用程序,该应用程序可以被读入到存储器中以用于处理器进行处理。同时,在一些实施例中,多个软件发明可以作为更大程序的子部分来实现,而保留不同的软件发明。在一些实施例中,多个软件发明可以作为独立的程序来实现。最后,一起实现此处所描述的软件发明的独立的程序的任何结合是在本发明的范围内。在一些实施例中,当被安装以在一个或者多个电子***上进行操作时,软件程序定义了一个或者多个特定的机器实现方式,该机器实现方式执行和实施该软件程序的操作。
图22概念性示出了在本发明一些实施例中实现的电子***2200。电子***2200可以是计算机(例如,台式电脑、个人电脑、平板电脑等)、电话、PDA或者其他种类的电子设备。这个电子***包括各种类型的计算机可读媒质和用于各种其他类型的计算机可读媒质的接口。电子***2200包括总线2205、处理单元2210、图像处理单元(graphics-processingunit,GPU)2215、***存储器2220、网络2225、只读存储器(read-only memory,ROM)2230、永久存储设备2235、输入设备2240和输出设备2245。
总线2205整体表示与大量的电子***2200通信连接的内部设备的所有***总线、外设总线和芯片组总线。例如,总线2205通过图像处理单元2215、只读存储器2230、***存储器2220和永久存储设备2235,与处理单元2210通信连接。
对于这些各种存储器单元,处理单元2210检索执行的指令和处理的数据,以执行本发明的处理。在不同实施例中,该处理单元可以是单个处理器或者多核处理器。某些指令被传输到图像处理单元2215并由其执行。图像处理单元2215可以卸载各种计算或补充由处理单元2210提供的图像处理。
只读存储器2230存储处理单元2210或者该电子***的其他模块所需要的静态数据和指令。另一方面,永久存储设备2235是一种读写存储器设备(read-and-writememory)。这个设备是一种非易失性(non-volatile)存储器单元,其即使在电子***2200关闭时也存储指令和数据。本发明的一些实施例使用大容量存储设备(例如磁盘或光盘及其相应的磁盘驱动器)作为永久存储设备2235。
其他实施例使用可移动存储设备(如软盘、闪存设备等,以及其相应的磁盘驱动器)作为永久存储设备。与永久存储设备2235一样,***存储器2220是一种读写存储器设备。但是,与存储设备2235不一样的是,该***存储器2220是一种易失性(volatile)读写存储器,例如随机读取存储器。该***存储器2220存储一些处理器在运行时需要的指令和数据。在一些实施例中,根据本发明的处理被存储在***存储器2220、永久存储设备2235和/或只读存储器2230中。例如,各种存储器单元包括用于根据一些实施例的处理多媒体剪辑的指令。对于这些各种存储器单元,处理单元2210检索执行的指令和处理的数据,以执行某些实施例的处理。
总线2205也连接到输入设备2240和输出设备2245。输入设备2240使得用户沟通信息并选择指令到该电子***上。该输入设备2240包括字母数字键盘和指点设备(也被称为“光标控制设备”),摄像机(如网络摄像机(webcam)),用于接收语音命令的麦克风或类似的设备等。输出设备2245显示由该电子***生成的图像或以其他方式输出的数据。输出设备2245包括打印机和显示设备,例如阴极射线管(cathode ray tube,CRT)或液晶显示器(liquid crystal display,LCD),以及扬声器或类似的音频输出设备。一些实施例包括诸如同时用作输入设备和输出设备的触摸屏等设备。
最后,如图22所示,总线2205也通过网络适配器(未示出)将电子***2200耦接到网络2225。在这个方式中,计算机可以是计算机网络(例如,局域网(local area network,LAN)、广域网(wide area network,WAN)或者内联网)或者网络的网络(例如互联网)的一部分。电子***2200的任一或者所有元件可以与本发明结合使用。
一些实施例包括电子元件,例如,微处理器、存储设备和存储器,其将计算机程序指令存储到机器可读介质或者计算机可读介质(可选地被称为计算机可读存储介质、机器可读介质或者机器可读存储介质)。计算机可读介质的一些实例包括RAM、ROM、只读光盘(read-only compact disc,CD-ROM),可刻录光盘(recordable compact disc,CD-R)、可擦写光盘(rewritable compact disc,CD-RW)、只读数字通用光盘(read-only digitalversatile disc)(例如,DVD-ROM,双层DVD-ROM)、各种可记录/可擦写DVD(例如DVD RAM、DVD-RW、DVD+RW等)、闪存(如SD卡、迷你SD卡,微SD卡等)、磁性和/或固态硬盘、只读和可刻录(Blu-)盘、超高密度光盘和其他任何光学介质或磁介质,以及软盘。计算机可读介质可以存储由至少一个处理单元执行的计算机程序,并且包括用于执行各种操作的指令集。计算机程序或计算机代码的示例包括机器代码,例如编译器产生的机器代码,以及包含由计算机、电子元件或微处理器使用注释器(interpreter)而执行的高级代码的文件。
当以上讨论主要是指执行软件的微处理器或多核处理器时,很多上述的功能和应用程序由一个或多个集成电路执行,如特定应用的集成电路(application specificintegrated circuit,ASIC)或现场可编程门阵列(field programmable gate array,FPGA)。在一些实施例中,这种集成电路执行存储在该电路本身上的指令。此外,一些实施例执行存储在可编程逻辑器件(programmable logic device,PLD),ROM或RAM设备中的软件。
如本发明的说明书和任一权利要求中所使用,术语“计算机”、“服务器”、“处理器”和“存储器”均指电子设备或其他技术设备。这些术语不包括人或群体。为了本说明书的目的,术语显示或显示装置指在电子设备上进行显示。如本发明的说明书和任一权利要求中所使用,术语“计算机可读介质”、“计算机可读媒质”和“机器可读介质”完全局限于有形的、物理的物体,其以计算机可读的形式存储信息。这些术语不包括任何无线信号、有线下载信号和其他任何短暂信号。
在结合许多具体细节的情况下描述了本发明时,本领域普通技术人员将认识到,本发明可以以其他具体形式而被实施,而不脱离本发明的精神。此外,大量的图(包括图8、图9、图11和图21)概念性示出了流程。这些流程的具体操作可以不以所示以及所描述的确切顺序来被执行。这些具体操作可用不在一个连续的操作系列中被执行,并且不同的具体操作可以在不同的实施例中被执行。另外,流程通过使用几个子流程而被实现,或者作为更大宏流程的部分。因此,本领域的技术人员将能理解的是,本发明不受前述说明性细节的限制,而是由附加权利要求加以界定。
示例装置
图23描述了根据本发明一些实施方式的示例性解码器装置2300。解码器装置2300可以运行、执行或者其他实施与为本文的视频解码***100所描述的概念、技术、方案、解决方案、情景、算法、方法、流程和方法相关的各种功能、任务和/或操作,包括结合图2-图6、图12-图24和图17-图19所述的示例方案和情景、结合图7和图20所述的示例结构示意图以及结合图9和图21所述的示例流程900和流程2102。
解码器装置2300可以包括如图23所示的组件中的一个、一些或者所有。装置2300可以优选地包括图23中未示出的额外组件。虽然对装置2300的操作是必需的,但这些额外组件与本发明不相关,并且因此不在图23中示出,以避免模糊本示图。
解码器装置2300可以是电子装置,其可以是,例如但不限于,便携设备(例如,智能手机、个人数字助理、数字摄像机等)、计算设备(例如,膝上电脑、笔记本电脑、平板电脑等)或者穿戴设备(例如,智能手表、智能手环、智能项链等)。可选地,装置2300可以以一个或多个集成电路(integrated-circuit,IC)芯片的形式来实现,例如,例如但不限于,一个或多个单核处理器、一个或多个多核处理器或者一个或多个复杂指令集计算(complex-instruction-set-computing,CISC)处理器。
解码器装置2300包括专用电路,包括通信电路2340、转换器电路2322和解码器电路2324。解码器电路2324执行解析器710的操作和像素块解码器720的操作,包括帧间预测740和帧内预测750。解码器电路2324也自用户接口2350接收输入数据,其可以包括观看区域105的规格。转换器电路2322用于将来自于窄立方体布局(即格式402、1403或者1404)的360VR视频帧重新格式化成传统连续立方体布局(即格式1401或者1320)或者球面布局(即格式1310)以用于显示。通信电路2340用于与外部源进行通信,并自外部源接收已编码视频110(即比特流)。(外部源可以是外部存储设备或者网络)。在一些实施例中,解码器装置2300不配置有转换器电路2322,并且解码器装置不改变用于显示的已解码视频帧的格式。
转换器电路2322、解码器电路2324和通信电路2340可以分别包括电子组件,包括一个或多个晶体管、一个或多个二极管、一个或多个电容器、一个或多个电阻器、一个或多个电感器、一个或多个记忆电阻和/或一个或多个变容管,其被配置且排列以实现根据本发明的具体目的。
解码器装置2300也包括存储或者存储器电路2330的集合。这些存储器电路可以包括触发器、锁存器、寄存器文件、静态和/或动态随机访问存储器。存储器电路2330实现参考帧缓存器730和线缓存器2050。在一些实施例中,存储器电路2330也实现显示缓存器130。
对于一些实施方式,转换器电路2322、解码器电路2324、通信电路2340和存储或存储器电路集2330可以是一个或多个处理器的组成部分(并且用于示意目的且不限于,这些电路被显示为处理器2310的组成部分)。处理器是专用计算设备,其被设计且配置以执行、运行或者实施专用算法、软件指令、计算和逻辑,以渲染或者影响根据本发明的360VR视频应用的解码。也就是说,处理器2310可以包括专用硬件(以及优选地,专用固件),其具体被设计且配置以先前不存在或者可用的一个或多个新方式渲染或者影响360VR视频的解码,例如,360VR视频帧的部分解码以及处理窄立方体布局的360VR视频帧。
在一些实施方式中,装置2300可用包括显示设备2360。显示设备2360可以用于显示文本图像、图形图像和/或视频图像。在一些实施方式中,显示设备240可以是平旦面板和/或触觉面板。显示设备240可以由任何合适的技术实现,例如,例如但不限于,液晶显示器(liquid crystal display,LCD)、等离子显示面板(plasma display panel,PDP)、发光二极管显示器(light-emitting diode display,LED)、有机发光二极管(light-emittingdiode,OLED)、电致发光显示器(electroluminescent display,ELD)、表面导电电子发射体显示器(surface-conduction electron-emitter display,SED)、场发射显示器(fieldemission display,FED)、激光器、碳纳米管、量子点显示、干涉式调制器显示器(interferometric modulator display,IMOD)和数字微快门显示器(digital micro-shutter display,DMS)。解码器电路2324可以操作性地耦接到显示设备2360,以提供360VR视频的已解码像素数据,以由显示设备2360进行显示。如所述,在进行显示之前,已解码像素数据被存储在显示缓存器130中。显示缓存器130可以在存储电路2330处或者显示设备2360处实现。
图24描述了根据本发明一些实施方式的示例性编码器装置2400。编码器装置2400可以运行、执行或者其他实施与为本文的视频编码***1000所描述的概念、技术、方案、解决方案、情景、算法、方法、流程和方法相关的各种功能、任务和/或操作,包括结合图2-图6、图12-图24和图17-图19所述的示例方案和情景、结合图10、图15和图16所述的示例结构示意图以及结合图11和图21所述的示例流程1100和流程2101。
编码器装置2400可以包括如图24所示的组件中的一个、一些或者所有。装置2400可以优选地包括图24中未示出的额外组件。虽然对装置2400的操作是必需的,但这些额外组件与本发明不相关,并且因此不在图24中示出,以为了避免模糊本示图。
编码器装置2400可以是电子装置,其可以是,例如但不限于,便携设备(例如,智能手机、个人数字助理、数字摄像机等)、计算设备(例如,膝上电脑、笔记本电脑、平板电脑等)或者穿戴设备(例如,智能手表、智能手环、智能项链等)。可选地,装置2400可以以一个或多个集成电路芯片的形式来实现,例如,例如但不限于,一个或多个单核处理器、一个或多个多核处理器或者一个或多个复杂指令集计算处理器。
编码器装置2400包括专用电路,包括通信电路2440、转换器电路2422和编码器电路2424。编码器电路2424执行像素块编码器1010的操作(包括帧间预测1040和帧内预测1050)、量化器1020的操作、VLE 1030的操作和率控制器1040的操作。编码器电路2424也自用户接口2450接收输入数据,其包括使能部分解码优化模式1050的控制信号。转换器电路2422用于将来自于传统连续立方体布局(即格式1401或者1320)或者球面布局(即格式1310)的360VR视频帧重新格式化成窄立方体布局(即格式402、1403或者1404)以用于编码,即执行转换器1508的功能以用于重新排列立方体面。通信电路2440用于与外部源进行通信,并自外部源接收原始视频1605。(外部源可以是外部存储设备或者网络)。在一些实施例中,编码器装置2400不配置有转换器电路2422,并且在编码之前,编码器装置不改变原始视频1605的布局或者格式。
转换器电路2422、编码器电路2424和通信电路2440可以分别包括电子组件,包括一个或多个晶体管、一个或多个二极管、一个或多个电容器、一个或多个电阻器、一个或多个电感器、一个或多个记忆电阻和/或一个或多个变容管,其被配置且排列以实现根据本发明的具体目的。
编码器装置2400也包括存储或者存储器电路2430的集合。这些存储器电路可以包括触发器、锁存器、寄存器文件、静态和/或动态随机访问存储器。存储器电路2430实现参考帧缓存器1015和线缓存器1550。
对于一些实施方式,转换器电路2422、编码器电路2424、通信电路2440和存储或存储器电路集2430可以是一个或多个处理器的组成部分(并且用于示意目的且不限于,这些电路被显示为处理器2410的组成部分)。处理器是专用计算设备,其被设计且配置以执行、运行或者实施专用算法、软件指令、计算和逻辑,以渲染或者影响根据本发明的360VR视频应用的编码。也就是说,处理器2410可以包括专用硬件(以及优选地,专用固件),其具体被设计且配置以先前不存在或者可用的一个或多个新方式渲染或者影响360VR视频的编码,例如,360VR视频帧的部分解码以及处理窄立方体布局的360VR视频帧。
附加说明
本文所描述的主题有时表示不同的组件,其包含在或者连接到其他不同的组件。可以理解的是,所描述的结构仅是示例,实际上可以由许多其他结构来实施,以实现相同的功能。从概念上讲,任何实现相同功能的组件的排列实际上是“相关联的”,以便实现所需的功能。因此,不论结构或中间部件,为实现特定的功能而组合的任何两个组件被视为“相互关联”,以实现所需的功能。同样,任何两个相关联的组件被看作是相互“可操作连接”或“可操作耦接”,以实现特定功能。任何能相互关联的两个组件也被视为相互“可操作地耦合”以实现特定功能。可操作连接的具体例子包括但不限于物理可配对和/或物理上相互作用的组件,和/或无线可交互和/或无线上相互作用的组件,和/或逻辑上相互作用和/或逻辑上可交互的组件。
此外,关于基本上任何复数和/或单数术语的使用,本领域的技术人员可以根据上下文和/或应用从复数转换为单数和/或从单数到复数。为清楚起见,本文明确规定了不同的单数/复数排列。
此外,本领域的技术人员可以理解,通常,本发明所使用的术语特别是权利要求中的,如权利要求的主题,通常用作“开放”术语,例如,“包括”应解释为“包括但不限于,“有”应理解为“至少有”“包括”应解释为“包括但不限于”等。本领域的技术人员可以进一步理解,若计划介绍特定数量的权利要求内容,将在权利要求内明确表示,并且,在没有这类内容时将不显示。例如,为帮助理解,下面附加权利要求可能包含短语“至少一个”和“一个或多个”,以介绍权利要求内容。然而,这些短语的使用不应理解为暗示使用不定冠词“a”或“an”介绍权利要求内容,而限制了任何特定的权利要求。甚至当相同的权利要求包括介绍性短语“一个或多个”或“至少有一个”,不定冠词,例如“a”或“an”,则应被解释为表示至少一个或者更多,对于用于介绍权利要求的明确描述的使用而言,同样成立。此外,即使明确引用特定数量的介绍性内容,本领域的技术人员可以认识到,这样的内容应被解释为表示所引用的数量,例如,没有其他修改的“两个引用”,意味着至少两个引用,或两个或两个以上的引用。此外,在使用类似于“A、B和C中的至少一个”的表述的情况下,通常如此表述是为了本领域的技术人员可以理解该表述,例如,“***包括A、B和C中的至少一个”将包括但不限于单独具有A的***,单独具有B的***,单独具有C的***,具有A和B的***,具有A和C的***,具有B和C的***,和/或具有A、B和C的***,等。本领域的技术人员进一步可理解,无论在说明书中、权利要求中或者附图中,由两个或两个以上的替代术语所表现的任何分隔的单词和/或短语应理解为,包括这些术语中的一个,其中一个,或者这两个术语的可能性。例如,“A或B”应理解为,“A”,或者“B”,或者“A和B”的可能性。
从前述可知,为了说明目的,此处已描述了各种实施方案,并且在不偏离本发明的范围和精神的情况下,可以进行各种变形。因此,此处所公开的各种实施方式不用于限制,权利要求表示真实的范围和精神。
Claims (27)
1.一种显示360度虚拟现实视频的方法,其特征在于,所述方法包括:
接收处于视频帧序列中的多个已编码视频帧,每个视频帧包括像素块集,其中所述视频帧序列包括多个主帧和多个从帧,其中每个从帧参考所述多个主帧中的至少一个以用于编码;
接收在所述多个视频帧中选择特定视频帧的子区域的规格;
当所述特定视频帧是主帧时,通过解码所述特定视频帧中的所有像素块,全解码所述特定视频帧;
当所述特定视频帧是从帧时,通过解码所述特定视频帧中包含由所述规格选择的所述子区域的像素块子集,部分解码所述特定视频帧,其中解码所述像素块子集包括参考一全解码主帧;以及
存储所述特定视频帧的已解码的多个像素块以用于显示。
2.如权利要求1中所述的显示360度虚拟现实视频的方法,其特征在于,每个视频帧被编码为数据单元集,其中部分解码所述特定视频帧包括:
对解码包含选择的所述子区域的所述像素块子集所需的所述特定视频帧的已编码数据单元子集进行解码。
3.如权利要求2中所述的显示360度虚拟现实视频的方法,其特征在于,每个已编码数据单元是视频帧的切片或者方块。
4.如权利要求1中所述的显示360度虚拟现实视频的方法,其特征在于,所述像素块子集中没有像素块是帧内预测块。
5.如权利要求1中所述的显示360度虚拟现实视频的方法,其特征在于,所述特定视频帧处于球面格式或者立方体格式,所述立方体格式包括多个立方体面且每个对应于立方体的不同面。
6.如权利要求5中所述的显示360度虚拟现实视频的方法,其特征在于,所述特定视频帧处于立方体格式,所述多个立方体面被排列成:(i)6个立方体面的单列、(ii)每列三个立方体面的两列或者(iii)每行三个立方体面的两行。
7.一种显示360度虚拟现实视频的装置,其特征在于,所述处理器包括:
通信电路,用于接收处于视频帧序列中的多个已编码视频帧,每个视频帧包括像素块集,其中所述视频帧序列包括多个主帧和多个从帧,其中每个从帧参考所述多个主帧中的至少一个以用于编码;
解码器电路,用于接收在所述多个视频帧中选择特定视频帧的子区域的规格,并基于所述规格解码所述特定视频帧,其中:
当所述特定视频帧是主帧时,所述解码器电路通过解码所述特定视频帧中的所有像素块,全解码所述特定视频帧;
当所述特定视频帧是从帧时,所述解码器电路通过解码所述特定视频帧中包含由所述规格选择的所述子区域的像素块子集,部分解码所述特定视频帧,其中解码所述像素块子集包括参考一全解码主帧;以及
存储器电路,用于存储所述特定视频帧的已解码的多个像素块以用于显示。
8.如权利要求7中所述的显示360度虚拟现实视频的装置,其特征在于,每个视频帧被编码为数据单元集,其中部分解码所述特定视频帧包括:
对解码包含选择的所述子区域的所述像素块子集所需的所述特定视频帧的已编码数据单元子集进行解码。
9.如权利要求8中所述的显示360度虚拟现实视频的装置,其特征在于,每个已编码数据单元是视频帧的切片或者方块。
10.如权利要求7中所述的显示360度虚拟现实视频的装置,其特征在于,所述像素块子集中没有像素块是帧内预测块。
11.如权利要求7中所述的显示360度虚拟现实视频的装置,其特征在于,所述特定视频帧处于球面格式或者立方体格式,所述立方体格式包括多个立方体面且每个对应于立方体的不同面。
12.如权利要求11中所述的显示360度虚拟现实视频的装置,其特征在于,所述特定视频帧处于立方体格式,所述多个立方体面被排列成:(i)6个立方体面的单列、(ii)每列三个立方体面的两列或者(iii)每行三个立方体面的两行。
13.一种方法,其特征在于,包括:
接收360度虚拟现实视频帧;以及
重新格式化所述视频帧,其中已重新格式化视频帧包括对应于立方体的不同面的多个立方体面;
其中,所述多个立方体面被排列成:(i)6个立方体面的单列、(ii)每列三个立方体面的两列或者(iii)每行三个立方体面的两行。
14.如权利要求13中所述的方法,其特征在于,
接收到的所述360度虚拟现实视频帧处于球面格式或者立方体格式;以及
当接收到的所述360度虚拟现实视频帧处于立方体格式,则接收到的所述360度虚拟现实视频帧的多个立方体面被排列成具有第一宽度的第一布局,并且所述已重新格式化视频帧的多个立方体面被排列成具有比所述第一宽度窄的第二宽度的第二布局。
15.如权利要求14中所述的方法,其特征在于,
所述第一布局的所述第一宽度是基于四个立方体面的宽度。
16.如权利要求14中所述的方法,其特征在于,
所述第二布局的所述第二宽度是基于一个立方体面或两个立方体面的宽度。
17.如权利要求14中所述的方法,其特征在于,还包括:
通过将多个参考像素存储在线缓存器处,并基于存储在所述线缓存器处的多个参考像素执行预测,对所述已重新格式化视频帧进行编码,其中所述线缓存器的宽度是基于所述第二宽度。
18.一种装置,其特征在于,包括:
通信电路,用于接收360度虚拟现实视频帧;以及
转换器电路,用于重新格式化所述视频帧,其中已重新格式化视频帧包括对应于立方体的不同面的多个立方体面;
其中,所述多个立方体面被排列成:(i)6个立方体面的单列、(ii)每列三个立方体面的两列或者(iii)每行三个立方体面的两行。
19.如权利要求18中所述的装置,其特征在于,
接收到的所述360度虚拟现实视频帧处于球面格式或者立方体格式;以及
当接收到的所述360度虚拟现实视频帧处于立方体格式,则接收到的所述360度虚拟现实视频帧的多个立方体面被排列成具有第一宽度的第一布局,并且所述已重新格式化视频帧的多个立方体面被排列成具有比所述第一宽度窄的第二宽度的第二布局。
20.如权利要求19中所述的装置,其特征在于,
所述第一布局的所述第一宽度是基于四个立方体面的宽度。
21.如权利要求19中所述的装置,其特征在于,
所述第二布局的所述第二宽度是基于一个立方体面或两个立方体面的宽度。
22.如权利要求19中所述的装置,其特征在于,还包括:
编码电路,用于通过将多个参考像素存储在线缓存器处,并基于存储在所述线缓存器处的多个参考像素执行预测,对所述已重新格式化视频帧进行编码,其中所述线缓存器的宽度是基于所述第二宽度。
23.一种装置,其特征在于,包括:
通信电路,用于接收360度虚拟现实视频帧,其中接收到的所述视频包括对应于立方体的不同面的多个立方体面;
其中,所述多个立方体面被排列成:(i)6个立方体面的单列、(ii)每列三个立方体面的两列或者(iii)每行三个立方体面的两行;以及
转换器电路,用于重新格式化所述360度虚拟现实视频帧。
24.如权利要求23中所述的装置,其特征在于,
接收到的所述视频帧的多个立方体面被排列成具有第一宽度的第一布局,其中已重新格式化360度虚拟现实视频帧的多个立方体面处于球面格式或者立方体格式,以及当已重新格式化360度虚拟现实视频帧处于所述立方体格式时,所述已重新格式化360度虚拟现实视频帧的多个立方体面被排列成具有比所述第一宽度宽的第二宽度的第二布局。
25.如权利要求24中所述的装置,其特征在于,
所述第二布局的所述第二宽度是基于四个立方体面的宽度。
26.如权利要求24中所述的装置,其特征在于,
所述第一布局的所述第一宽度是基于一个立方体面或两个立方体面的宽度。
27.如权利要求23中所述的装置,其特征在于,
接收到的所述360度虚拟现实视频帧是已编码视频帧;
其中,所述装置还包括:
解码器电路,用于通过将多个参考像素存储在线缓存器处,并基于存储在所述线缓存器处的多个参考像素执行像素块重构,对所述已编码视频帧进行解码,其中所述线缓存器的宽度是基于所述第一宽度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111283426.9A CN114205623A (zh) | 2015-10-13 | 2016-10-13 | 视频处理装置及相关视频处理方法 |
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562240693P | 2015-10-13 | 2015-10-13 | |
US62/240,693 | 2015-10-13 | ||
US201562266764P | 2015-12-14 | 2015-12-14 | |
US62/266,764 | 2015-12-14 | ||
US15/289,092 US20170026659A1 (en) | 2015-10-13 | 2016-10-07 | Partial Decoding For Arbitrary View Angle And Line Buffer Reduction For Virtual Reality Video |
US15/289,092 | 2016-10-07 | ||
PCT/CN2016/101992 WO2017063566A1 (en) | 2015-10-13 | 2016-10-13 | Partial decoding for arbitrary view angle and line buffer reduction for virtual reality video |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111283426.9A Division CN114205623A (zh) | 2015-10-13 | 2016-10-13 | 视频处理装置及相关视频处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108141611A true CN108141611A (zh) | 2018-06-08 |
Family
ID=57837531
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111283426.9A Pending CN114205623A (zh) | 2015-10-13 | 2016-10-13 | 视频处理装置及相关视频处理方法 |
CN201680059890.0A Pending CN108141611A (zh) | 2015-10-13 | 2016-10-13 | 任意观看角度的部分解码及虚拟现实视频的线帧缓存器降低 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111283426.9A Pending CN114205623A (zh) | 2015-10-13 | 2016-10-13 | 视频处理装置及相关视频处理方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20170026659A1 (zh) |
EP (2) | EP3334162B1 (zh) |
JP (1) | JP6560367B2 (zh) |
KR (1) | KR102189213B1 (zh) |
CN (2) | CN114205623A (zh) |
WO (1) | WO2017063566A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112351285A (zh) * | 2020-11-04 | 2021-02-09 | 北京金山云网络技术有限公司 | 视频编码、解码方法和装置、电子设备和存储介质 |
CN114745548A (zh) * | 2022-06-13 | 2022-07-12 | 山东交通学院 | 适用于船舶疏浚作业远程视频监控的图像处理方法 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10410376B1 (en) * | 2016-09-26 | 2019-09-10 | Amazon Technologies, Inc. | Virtual reality media content decoding of portions of image frames |
US10412412B1 (en) * | 2016-09-30 | 2019-09-10 | Amazon Technologies, Inc. | Using reference-only decoding of non-viewed sections of a projected video |
CN107945101B (zh) * | 2016-10-13 | 2021-01-29 | 华为技术有限公司 | 图像处理方法和装置 |
BR112019007501A2 (pt) | 2016-11-17 | 2019-07-02 | Intel Corp | rotação esférica para codificação de vídeo de visão ampla |
US10887572B2 (en) | 2016-11-17 | 2021-01-05 | Intel Corporation | Suggested viewport indication for panoramic video |
US10999602B2 (en) | 2016-12-23 | 2021-05-04 | Apple Inc. | Sphere projected motion estimation/compensation and mode decision |
US10609356B1 (en) | 2017-01-23 | 2020-03-31 | Amazon Technologies, Inc. | Using a temporal enhancement layer to encode and decode stereoscopic video content |
US11259046B2 (en) | 2017-02-15 | 2022-02-22 | Apple Inc. | Processing of equirectangular object data to compensate for distortion by spherical projections |
US10924747B2 (en) | 2017-02-27 | 2021-02-16 | Apple Inc. | Video coding techniques for multi-view video |
US10506196B2 (en) * | 2017-04-01 | 2019-12-10 | Intel Corporation | 360 neighbor-based quality selector, range adjuster, viewport manager, and motion estimator for graphics |
US10467775B1 (en) * | 2017-05-03 | 2019-11-05 | Amazon Technologies, Inc. | Identifying pixel locations using a transformation function |
US11093752B2 (en) | 2017-06-02 | 2021-08-17 | Apple Inc. | Object tracking in multi-view video |
US20190007672A1 (en) * | 2017-06-30 | 2019-01-03 | Bobby Gene Burrough | Method and Apparatus for Generating Dynamic Real-Time 3D Environment Projections |
US20190005709A1 (en) * | 2017-06-30 | 2019-01-03 | Apple Inc. | Techniques for Correction of Visual Artifacts in Multi-View Images |
US10754242B2 (en) * | 2017-06-30 | 2020-08-25 | Apple Inc. | Adaptive resolution and projection format in multi-direction video |
US10484682B2 (en) * | 2017-07-03 | 2019-11-19 | Qualcomm Incorporated | Reference picture derivation and motion compensation for 360-degree video coding |
US10614609B2 (en) * | 2017-07-19 | 2020-04-07 | Mediatek Inc. | Method and apparatus for reduction of artifacts at discontinuous boundaries in coded virtual-reality images |
CN109426332B (zh) * | 2017-08-23 | 2023-02-28 | 中兴通讯股份有限公司 | 一种信息处理方法、装置及虚拟现实设备 |
EP3457698A1 (en) * | 2017-09-18 | 2019-03-20 | Thomson Licensing | Method and apparatus for coding of omnidirectional video |
US10818087B2 (en) | 2017-10-02 | 2020-10-27 | At&T Intellectual Property I, L.P. | Selective streaming of immersive video based on field-of-view prediction |
CN118042095A (zh) * | 2017-10-09 | 2024-05-14 | 诺基亚技术有限公司 | 用于视频编码和解码的装置、方法和计算机程序 |
EP3720136A4 (en) * | 2017-11-30 | 2020-10-07 | Sony Corporation | TRANSMISSION DEVICE, TRANSMISSION PROCESS, RECEPTION DEVICE AND RECEPTION PROCESS |
US11069026B2 (en) * | 2018-03-02 | 2021-07-20 | Mediatek Inc. | Method for processing projection-based frame that includes projection faces packed in cube-based projection layout with padding |
US10659815B2 (en) | 2018-03-08 | 2020-05-19 | At&T Intellectual Property I, L.P. | Method of dynamic adaptive streaming for 360-degree videos |
GB2574575A (en) * | 2018-04-27 | 2019-12-18 | V Nova Int Ltd | Video decoder chipset |
KR20210118183A (ko) * | 2019-02-01 | 2021-09-29 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. | 서브픽처 또는 영역 단위 랜덤 액세스가 가능한 비디오 코덱 및 이를 이용한 비디오 합성을 위한 개념 |
KR102465403B1 (ko) * | 2022-01-24 | 2022-11-09 | 김태경 | 2d영상 및 360도 영상이 조합된 동영상 콘텐츠를 제공하는 방법 및 장치 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070172133A1 (en) * | 2003-12-08 | 2007-07-26 | Electronics And Telecommunications Research Instit | System and method for encoding and decoding an image using bitstream map and recording medium thereof |
CN101953158A (zh) * | 2008-02-14 | 2011-01-19 | 思科技术公司 | 针对全景视频会议中的均一质量的自适应量化 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3008416B2 (ja) * | 1989-11-28 | 2000-02-14 | ソニー株式会社 | 映像出力装置 |
US7369612B2 (en) * | 2000-12-11 | 2008-05-06 | Sony Corporation | Video decoder and method for using the same |
JP3472273B2 (ja) * | 2001-03-07 | 2003-12-02 | キヤノン株式会社 | 画像再生装置及び画像処理装置及び方法 |
CN1204757C (zh) * | 2003-04-22 | 2005-06-01 | 上海大学 | 一种立体视频流编码/解码器及其立体视频编解码*** |
US6968973B2 (en) * | 2003-05-31 | 2005-11-29 | Microsoft Corporation | System and process for viewing and navigating through an interactive video tour |
JP2005260464A (ja) * | 2004-03-10 | 2005-09-22 | Nippon Telegr & Teleph Corp <Ntt> | 画像符号化装置,画像復号装置,画像符号化方法,画像復号方法,画像符号化プログラム,画像復号プログラム,画像符号化プログラム記録媒体および画像復号プログラム記録媒体 |
EP1905244A4 (en) * | 2005-07-18 | 2010-12-01 | Korea Electronics Telecomm | PREDICTIVE ENCODING / DECODING DEVICE THROUGH SPATIO-TEMPORAL DIMENSIONAL REFERENCE IMAGE PADS AND METHOD OF USE |
CN101313589A (zh) * | 2005-09-27 | 2008-11-26 | 高通股份有限公司 | 冗余数据编码方法和装置 |
JP2007174568A (ja) * | 2005-12-26 | 2007-07-05 | Sanyo Electric Co Ltd | 符号化方法 |
US8553028B1 (en) * | 2007-10-29 | 2013-10-08 | Julian Michael Urbach | Efficiently implementing and displaying independent 3-dimensional interactive viewports of a virtual world on multiple client devices |
US20090300692A1 (en) * | 2008-06-02 | 2009-12-03 | Mavlankar Aditya A | Systems and methods for video streaming and display |
US8724707B2 (en) * | 2009-05-07 | 2014-05-13 | Qualcomm Incorporated | Video decoding using temporally constrained spatial dependency |
US8878996B2 (en) * | 2009-12-11 | 2014-11-04 | Motorola Mobility Llc | Selective decoding of an input stream |
US9124757B2 (en) * | 2010-10-04 | 2015-09-01 | Blue Jeans Networks, Inc. | Systems and methods for error resilient scheme for low latency H.264 video coding |
US8992318B2 (en) * | 2012-09-26 | 2015-03-31 | Igt | Wearable display system and method |
CN102945563B (zh) * | 2012-09-26 | 2017-05-24 | 天津游奕科技有限公司 | 一种全景视频的展示与交互***及方法 |
GB2558086B (en) * | 2014-03-25 | 2019-02-20 | Canon Kk | Methods, devices, and computer programs for improving streaming of partitioned timed media data |
US9986154B2 (en) * | 2014-05-21 | 2018-05-29 | Here Global B.V. | Developing a panoramic image |
US20160112713A1 (en) * | 2014-10-20 | 2016-04-21 | Google Inc. | Mapping spherical image to 2d representations |
US9918094B2 (en) * | 2014-10-20 | 2018-03-13 | Google Llc | Compressing and representing multi-view video |
KR20240044535A (ko) * | 2016-02-09 | 2024-04-04 | 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. | 효율적인 감소성 또는 효율적인 랜덤 액세스를 허용하는 픽처/비디오 데이터 스트림들에 대한 개념 |
US10334224B2 (en) * | 2016-02-19 | 2019-06-25 | Alcacruz Inc. | Systems and method for GPU based virtual reality video streaming server |
US10319071B2 (en) * | 2016-03-23 | 2019-06-11 | Qualcomm Incorporated | Truncated square pyramid geometry and frame packing structure for representing virtual reality video content |
FI20165257L (fi) * | 2016-03-24 | 2017-09-25 | Nokia Technologies Oy | Laitteisto, menetelmä ja tietokoneohjelma videokoodaukseen ja -dekoodaukseen |
EP3523784A1 (en) * | 2016-10-07 | 2019-08-14 | VID SCALE, Inc. | Geometry conversion and frame packing associated with 360-degree videos |
WO2018071666A1 (en) * | 2016-10-12 | 2018-04-19 | Arris Enterprises Llc | Coding schemes for virtual reality (vr) sequences |
-
2016
- 2016-10-07 US US15/289,092 patent/US20170026659A1/en not_active Abandoned
- 2016-10-13 EP EP18152528.8A patent/EP3334162B1/en active Active
- 2016-10-13 KR KR1020177033506A patent/KR102189213B1/ko active IP Right Grant
- 2016-10-13 WO PCT/CN2016/101992 patent/WO2017063566A1/en active Application Filing
- 2016-10-13 CN CN202111283426.9A patent/CN114205623A/zh active Pending
- 2016-10-13 EP EP16854943.4A patent/EP3275168A4/en not_active Ceased
- 2016-10-13 CN CN201680059890.0A patent/CN108141611A/zh active Pending
- 2016-10-13 JP JP2017560491A patent/JP6560367B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070172133A1 (en) * | 2003-12-08 | 2007-07-26 | Electronics And Telecommunications Research Instit | System and method for encoding and decoding an image using bitstream map and recording medium thereof |
CN101953158A (zh) * | 2008-02-14 | 2011-01-19 | 思科技术公司 | 针对全景视频会议中的均一质量的自适应量化 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112351285A (zh) * | 2020-11-04 | 2021-02-09 | 北京金山云网络技术有限公司 | 视频编码、解码方法和装置、电子设备和存储介质 |
CN112351285B (zh) * | 2020-11-04 | 2024-04-05 | 北京金山云网络技术有限公司 | 视频编码、解码方法和装置、电子设备和存储介质 |
CN114745548A (zh) * | 2022-06-13 | 2022-07-12 | 山东交通学院 | 适用于船舶疏浚作业远程视频监控的图像处理方法 |
CN114745548B (zh) * | 2022-06-13 | 2022-08-12 | 山东交通学院 | 适用于船舶疏浚作业远程视频监控的图像处理方法 |
Also Published As
Publication number | Publication date |
---|---|
KR102189213B1 (ko) | 2020-12-10 |
WO2017063566A1 (en) | 2017-04-20 |
US20170026659A1 (en) | 2017-01-26 |
JP2018520567A (ja) | 2018-07-26 |
JP6560367B2 (ja) | 2019-08-14 |
EP3334162A1 (en) | 2018-06-13 |
CN114205623A (zh) | 2022-03-18 |
EP3275168A4 (en) | 2018-06-13 |
KR20170139104A (ko) | 2017-12-18 |
EP3275168A1 (en) | 2018-01-31 |
EP3334162B1 (en) | 2020-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108141611A (zh) | 任意观看角度的部分解码及虚拟现实视频的线帧缓存器降低 | |
TWI690201B (zh) | 全方位視訊之解碼方法、編碼方法及電子設備 | |
CN104885471B (zh) | 用于下一代视频的编码/未编码的数据的内容自适应熵编码 | |
CN104854866B (zh) | 下一代视频的内容自适应、特性补偿预测 | |
CN110248196A (zh) | 用于调色板编解码的方法和设备 | |
TWI232682B (en) | Signal encoding method, signal decoding method, signal encoding device, signal decoding device, signal encoding program, and signal decoding program | |
JP7384831B2 (ja) | ビデオ符号化及び復号のための方法、装置及びコンピュータプログラム | |
SA515360220B1 (ar) | علامة كتلة مشفرة لتشفير نسق عينة 4:2:2 في تشفير فيديو | |
CN105230023A (zh) | 色彩空间、色彩采样率和/或比特深度的自适应切换 | |
CN105247867A (zh) | 用于不同层间预测类型的参考图片的独立重新采样及选择 | |
CN105393532A (zh) | 信息处理设备和方法 | |
JP2022520408A (ja) | ビデオ復号のための方法、装置、およびコンピュータプログラム | |
CN110248187A (zh) | 用于视频压缩中的方向性帧内预测的方法和设备 | |
CN108093255A (zh) | 视频编码设备和视频编码方法 | |
KR20210088693A (ko) | 임의의 ctu 크기에 대한 ibc 검색 범위 최적화를 사용하는 인코더, 디코더 및 대응하는 방법 | |
CN104126303A (zh) | 用于高效率视频译码的统一分割结构和信令方法 | |
Treib et al. | Interactive editing of gigasample terrain fields | |
CN105230021A (zh) | 屏幕内容的词典编码和解码 | |
CN107409212A (zh) | 用于编码和解码的使用变换系数的逐渐更新 | |
CN104168479A (zh) | 用于视频成码的切片级比特率控制 | |
CN107690806A (zh) | 视频编码方法和视频编码设备以及视频解码方法和视频解码设备 | |
US9483845B2 (en) | Extending prediction modes and performance of video codecs | |
CN101584220A (zh) | 对视频信号进行编码的方法和***、编码的视频信号、对视频信号进行解码的方法和*** | |
CN117426088A (zh) | 视频编解码方法、设备、***、及存储介质 | |
CN102497545A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180608 |
|
WD01 | Invention patent application deemed withdrawn after publication |