CN108702503B - 用于提供视频比特流的方法及装置 - Google Patents

用于提供视频比特流的方法及装置 Download PDF

Info

Publication number
CN108702503B
CN108702503B CN201780011723.3A CN201780011723A CN108702503B CN 108702503 B CN108702503 B CN 108702503B CN 201780011723 A CN201780011723 A CN 201780011723A CN 108702503 B CN108702503 B CN 108702503B
Authority
CN
China
Prior art keywords
tile
tile set
map
layer
track
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.)
Active
Application number
CN201780011723.3A
Other languages
English (en)
Other versions
CN108702503A (zh
Inventor
M·汉努卡塞拉
A·阿明卢
A·扎雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Technologies Oy
Original Assignee
Nokia Technologies Oy
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Technologies Oy filed Critical Nokia Technologies Oy
Publication of CN108702503A publication Critical patent/CN108702503A/zh
Application granted granted Critical
Publication of CN108702503B publication Critical patent/CN108702503B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/136Incoming video signal characteristics or properties
    • 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/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/188Methods 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 a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440245Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format

Landscapes

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

Abstract

一种方法包括:获得包括运动受限图块集的全图轨道或比特流;以及基于运动受限图块集,构造或生成指令以构造符合全图的图块集轨道或比特流。

Description

用于提供视频比特流的方法及装置
技术领域
本发明涉及用于视频编码和解码的装置、方法及计算机程序。
背景技术
在许多显示情境中,仅需要显示部分图,而仅需要解码剩余图但不显示。这些显示情境例如包括具有约100度视场的典型头戴式显示器(HMD)显示器,而用于HMD消费的输入视频通常覆盖整个360度。典型的平板观看环境显示高达40度的视场。当在这样的显示器上显示宽FOV内容(例如,“鱼眼”)时,可优选显示空间子集而不是整个图。
传统上,编码图需要被完全解码,因为它们具有很强的空间依赖性(例如,帧内预测)、熵编码依赖性、环路滤波依赖性和时空依赖性(指向不同图部分的运动矢量)。运动受限图块集使能与其它图块集独立地解码图块集;然而,由于编码图块集可以与比特流中的其它编码数据交织,并且由于参数集和报头(例如,切片片段报头)用于整个比特流,因此需要专用解码过程以解码特定的运动受限图块集,而同时省略其它图块的解码。
在用于360度视频的传统流传输布置中,完整的360度视频被传输。例如,整个等矩形全景被传输。然而,在许多显示环境中(诸如HMD上的消费),一次仅显示360度视频的一个子集。因此,流传输比特率用于未显示的图区域。这可能导致网络和/或接入链路拥塞和重新缓冲的风险和/或对显示的图区域的一部分使用相对低的质量。
发明内容
现在为了至少缓解上述问题,本文引入了一种用于生成视频比特流的改进的方法。
根据第一方面的一种方法包括:获得包括运动受限图块集的全图轨道或比特流;以及基于运动受限图块集,构造符合全图的图块集轨道或比特流。
根据第二方面的一种方法包括:获得包括运动受限图块集的全图轨道或比特流;以及基于所述运动受限图块集,生成指令以构造符合全图的图块集轨道或比特流。
根据实施例,运动受限图块集的特征在于:包含在一个或多个切片片段中,切片片段还包含在运动受限图块集以外的图块,所述构造或者生成指令以构造包括:将在运动受限图块集的右侧的图块列添加到符合全图的图块集轨道或比特流中或者添加到构造符合全图的图块集轨道或比特流的指令中。
根据实施例,所述方法还包括用所添加的图块列中的图块来控制切片片段的终止。
根据实施例,所述方法还包括在所添加的图块列的最后一个图块中指示切片片段的终止。
根据实施例,所述方法还包括将关于一致性裁剪窗口的信息添加到符合全图的图块集轨道或比特流中或者添加到构造符合全图的图块集轨道或比特流的指令中,其中,一致性裁剪窗口导致解码以从解码输出中排除所添加的图块列。
根据实施例,运动受限图块集的特征在于:包含在一个或多个切片片段中,切片片段还包含在运动受限图块集以外的图块,所述构造或者生成指令以构造包括:识别运动受限图块集内的最右侧图块,最右侧图块不是包含最右侧图块的第一切片片段的最后一个图块;以及修改最右侧图块,以使其导致第一切片的终止。
根据第三方面的一种方法包括:获得所构造的符合全图的图块集或比特流,或者获得构造符合全图的图块集轨道或比特流的指令;以及在媒体呈现描述中生成从符合全图的图块集轨道形成的第一呈现(Representation)的信息。
根据实施例,所述方法还包括:在媒体呈现描述中生成从符合全图的轨道或比特流形成的第二呈现的信息;将第一呈现和第二呈现关联到媒体呈现描述中的同一参考空间中;以及指示在媒体呈现描述中第一呈现相对于第二呈现的位置和大小。
根据实施例,构造符合全图的图块集轨道的指令包括从全图轨道或比特流中提取基本单元的一部分的提取器。
根据实施例,所述基本单元是网络抽象层(NAL)单元。
根据实施例,构造或生成指令以构造符合全图的图块集轨道或比特流包括当与全图轨道或比特流中的参数集和/或切片片段报头相比较时,完全或部分地重写所述参数集和/或切片片段报头。
根据实施例,构造符合全图的图块集轨道或比特流的指令导致片段或子片段序列。
根据第四方面的一种方法包括:从媒体呈现描述和/或媒体文件中获得第一符合全图的图块集轨道的第一特性;基于第一特性,确定获得第一符合全图的图块集轨道的一部分或全部;以及获得第一符合全图的图块集轨道的一部分或全部。
根据实施例,所述方法还包括解码和播放第一符合全图的图块集轨道的一部分或全部。
根据实施例,所述方法还包括在第一特性内获得覆盖空间区域的信息或者覆盖视场和视图定向两者的信息,其中,所述确定基于覆盖空间区域或者覆盖视场和视图定向两者。
根据一个实施例,所述方法还包括:从媒体呈现描述和/或从媒体文件中获得第二符合全图的图块集轨道的第二特性;从第一和第二特性中断定与第一符合全图的图块集轨道相比,第二符合全图的图块集轨道具有更低的空间分辨率、比特率、图像质量、每颜色分量的位深、动态范围和/或色域;从第一和第二特性断定第一和第二符合全图的图块集轨道表示内容的不同空间部分;基于上述断定,确定获得第二符合全图的图块集轨道的一部分或全部;以及获得第二符合全图的图块集轨道的一部分或全部。进一步的方面至少包括被设置为执行上述方法的装置和计算机程序产品/存储在非暂时性存储器介质上的代码。
附图说明
为了更好地理解本发明,现在将通过示例的方式参考附图,其中:
图1示意性地示出采用本发明的实施例的电子设备;
图2示意性地示出适用于采用本发明的实施例的用户设备;
图3进一步示意性地示出使用无线和有线网络连接连接的采用本发明的实施例的电子设备;
图4示意性地示出适用于实现本发明的实施例的编码器;
图5示出在DASH中使用的层次数据模型的示例;
图6a和图6b示出根据本发明的实施例的生成用于构造比特流的指令以及构造比特流的流程图。
图7示出本发明的各种实施例的基础概念;
图8示出运动受限图块集的划分的示例;
图9示出根据实施例的生成用于构造符合全图的图块集轨道的指令的过程;
图10示出根据实施例的文件结构的示例;
图11a和图11b示出根据实施例的在文件中布置不同轨道的数据块的示例,以及根据实施例的构造器运算符的示例;
图12示出根据实施例的MPD生成的示例;
图13示出将实施例应用于具有不同空间分辨率的相同内容的不同版本的示例;
图14示出将实施例应用于具有不同空间分辨率的相同内容的不同伸缩层的示例;
图15示出应用于立体视频编码的实施例的示例;
图16示出应用于具有视点间预测的立体视频编码的实施例的示例;
图17示出根据实施例的分段器提示生成的示例;
图18示出根据实施例的分段器提示轨道或分段器文件的示例;
图19示出根据实施例的服务器或分段器的操作;
图20示出涉及生成预构造图块集轨道的实施例的示例;
图21示出根据实施例的在文件中布置预构造图块集轨道和全图轨道的数据块的示例;
图22示出适用于实现本发明的实施例的解码器的示意图;
图23示出其中可实现各种实施例的示例性多媒体通信***的示意图。
具体实施方式
以下进一步详细描述了用于降低流传输可伸缩视频比特流的下游比特率的适用的装置和可能的机制。在这方面,首先参考图1和图2,其中图1示出了根据示例性实施例的视频编码***的框图,作为示例性装置或电子设备50的示意性框图,其可以集成根据本发明的实施例的编解码器。图2示出了根据示例性实施例的装置的布局。接下来将解释图1和图2中的元件。
电子设备50例如可以是无线通信***的移动终端或用户设备。然而,应当理解,本发明的实施例可以在可能需要编码和解码或编码或解码视频图像的任何电子设备或装置内实现。
装置50可包括用于集成和保护设备的壳体30。装置50还可包括采用液晶显示器形式的显示器32。在本发明的其它实施例中,显示器可以是适用于显示图像或视频的任何适合的显示技术。装置50还可以包括小键盘34。在本发明的其它实施例中,可以采用任何适合的数据或用户界面机制。例如,用户界面可以实现为作为触敏显示器的一部分的虚拟键盘或数据输入***。
该装置可以包括麦克风36或任何适合的音频输入,其可以是数字或模拟信号输入。装置50还可以包括音频输出设备,在本发明的实施例中,音频输出设备可以是耳机38、扬声器或模拟音频或数字音频输出连接中的任何一个。装置50还可以包括电池40(或者在本发明的其它实施例中,该设备可以由任何适合的移动能量设备供电,诸如太阳能电池、燃料电池或发条发电机)。该装置还可以包括能够记录或捕获图像和/或视频的相机42。装置50还可以包括红外端口,其用于与其它设备进行短距离视线通信。在其它实施例中,装置50还可以包括任何适合的短距离通信方案,例如,蓝牙无线连接或USB/火线有线连接。
装置50可以包括用于控制装置50的控制器56或处理器。控制器56可以连接到存储器58,在本发明的实施例中,存储器58可以以图像和音频数据的形式存储数据和/或还可以存储用于在控制器56上实现的指令。控制器26还可以连接到编解码器电路54,编解码器电路54适用于执行音频和/或视频数据的编码和解码,或者协助由控制器执行的编码和解码。
装置50还可以包括读卡器48和智能卡46,例如UICC和UICC读取器,其用于提供用户信息并且适用于提供用于在网络上对用户进行认证和授权的认证信息。
装置50可以包括无线接口电路52,其连接到控制器并且适用于生成无线通信信号,例如用于与蜂窝通信网络、无线通信***或无线局域网进行通信。装置50还可以包括连接到无线接口电路52的天线44,其用于将在无线接口电路52处产生的射频信号发送到其它装置,以及用于从其它装置接收射频信号。
装置50可以包括能够记录或检测单个帧的相机,其然后将这些帧传递到编解码器54或控制器以进行处理。该装置可以在传输和/或存储之前从另一个设备接收用于处理的视频图像数据。装置50还可以无线地或通过有线连接接收用于编码/解码的图像。
关于图3,其中示出了可以使用本发明的实施例的***的示例。***10包括可以通过一个或多个网络进行通信的多个通信设备。***10可以包括有线或无线网络的任何组合,这些网络包括但不限于无线蜂窝电话网络(诸如GSM、UMTS、CDMA网络等)、诸如由任一IEEE 802.x标准定义的无线局域网(WLAN)、蓝牙个人局域网、以太网局域网、令牌环局域网、广域网和因特网。
***10可以包括适用于实现本发明的实施例的有线和无线通信设备和/或装置50。
例如,图3中所示的***示出了移动电话网络11以及因特网28的表示。到因特网28的连接可以包括但不限于长距离无线连接、短距离无线连接、以及各种有线连接,包括但不限于电话线、电缆线、电力线和类似的通信路径。
***10中示出的示例性通信设备可以包括但不限于电子设备或装置50,个人数字助理(PDA)和移动电话14的组合、PDA 16、集成消息传送设备(IMD)18、台式计算机20、笔记本计算机22。当被正在移动的个人携带时,装置50可以是静止的或移动的。装置50还可以位于一种运输模式中,包括但不限于汽车、卡车、出租车、公共汽车、火车、船、飞机、自行车、摩托车或任何类似的适合的运输模式。
实施例还可以在机顶盒中实现,即,可/可以不具有显示或无线能力的数字TV接收器;在具有编码器/解码器实现的硬件或软件或两者的组合的平板计算机或(膝上型)个人计算机(PC)中实现;在各种操作***中实现;以及在芯片组、处理器、DSP和/或提供基于硬件/软件的编码的嵌入式***中实现。
一些或其它装置可以发送和接收呼叫和消息,并通过到基站24的无线连接25与服务提供商通信。基站24可以连接到允许移动电话网络11与因特网28之间进行通信的网络服务器26。该***可以包括附加的通信设备和各种类型的通信设备。
通信设备可以使用各种传输技术进行通信,包括但不限于码分多址(CDMA)、全球移动通信***(GSM)、通用移动电信***(UMTS)、时分多址(TDMA)、频分多址(FDMA)、传输控制协议-因特网协议(TCP-IP)、短消息服务(SMS)、多媒体消息服务(MMS)、电子邮件、即时消息服务(IMS)、蓝牙、IEEE 802.11和任何类似的无线通信技术。实现本发明的各种实施例时所涉及的通信设备可以使用各种介质进行通信,包括但不限于无线电、红外线、激光、电缆连接和任何适合的连接。
实时传输协议(RTP)广泛用于诸如音频和视频的定时媒体的实时传输。RTP可以在用户数据报协议(UDP)之上运行,而UDP又可以在因特网协议(IP)之上运行。RTP在因特网工程任务组(IETF)请求注释(RFC)3550中规定,其可从www.ietf.org/rfc/rfc3550.txt获得。在RTP传输中,媒体数据被封装到RTP分组中。通常,每种媒体类型或媒体编码格式具有专用RTP有效载荷格式。
RTP会话是与RTP通信的一组参与者之间的关联。它是一个群组通信信道,其可以承载多个RTP流。RTP流是包括媒体数据的RTP分组流。RTP流由属于特定RTP会话的SSRC标识。SSRC是指同步源或同步源标识符,它是RTP分组报头中的32位SSRC字段。同步源的特征在于来自同步源的所有分组形成相同定时和序列号空间的一部分,因此接收器可以通过同步源对分组(packet)进行分组(group)以进行播放。同步源的示例包括从诸如麦克风或相机或RTP混合器的信号源获得的分组流的发送器。每个RTP流由SSRC标识,该SSRC在RTP会话中是唯一的。
在ISO/IEC 13818-1中或等效地在ITU-T建议H.222.0中规定的MPEG-2传输流(TS)是用于在复用流中承载音频、视频和其它媒体以及程序元数据或其它元数据的格式。分组标识符(PID)用于标识TS内的基本流(也就是封装的基本流)。
可用的媒体文件格式标准包括ISO基本媒体文件格式(ISO/IEC 14496-12,其可以缩写为ISOBMFF)、MPEG-4文件格式(ISO/IEC 14496-14,也被称为MP4格式)、用于NAL单元结构化视频的文件格式(ISO/IEC 14496-15)和3GPP文件格式(3GPP TS 26.244,也被称为3GP格式)。ISOBMFF是派生所有上述文件格式的基础(不包括ISOBMFF本身)。
下面将ISOBMFF的一些概念、结构和规范描述为容器文件格式的示例,在其基础上可以实现实施例。本发明的各方面不限于ISOBMFF,而是针对在其上可以部分或全部实现本发明的一个可能的基础而进行描述。
ISOBMFF中的一个构建块被称为框。每个框可具有报头和有效载荷。框报头以字节为单位指示框的类型和框的大小。一个框可包括其它框,ISO文件格式规定在特定类型的框内允许哪些框类型。此外,在每个文件中一些框的存在可能是强制性的,而其它框的存在可能是可选的。此外,对于一些框类型,可允许在一个文件中存在多个框。因此,ISOBMFF可被认为是规定框的层次结构。ISO基本媒体文件的每个框可由四字符代码(4CC,四个CC)标识。一个四字符代码可互换地由一个32位无符号整数来表示(通过假设某种字符到8位值的转换、某种位顺序和某种字节顺序)。报头可提供关于框的类型和大小的信息。
根据ISOBMFF,文件可包括可封装在单独的框中的媒体数据和元数据。在示例性实施例中,可在媒体数据(mdat)框中提供媒体数据,可使用电影(moov)框(也被称为“MovieBox”)来封装元数据。在某些情况下,为了使文件可操作,可能需要存在mdat框和moov框这两者。电影(moov)框可包括一个或多个轨道,并且每个轨道可驻留在一个对应的轨道(trak)框中。每个轨道都与处理器相关联,由指定轨道类型的四字符代码标识。视频、音频和图像序列轨道可被统称为媒体轨道,它们包含基本媒体流。其它轨道类型包括提示轨道和定时元数据轨道。轨道包括样本,诸如音频或视频帧。媒体轨道是指根据媒体压缩格式(及其到ISOBMFF的封装)格式化的样本(其也可被称为媒体样本)。提示轨道是指提示样本,其包含用于构建通过所指示的通信协议传输的分组的操作指令。操作指令可包括用于分组报头构建的指导,并且可包括分组有效载荷构建。在分组有效载荷构建中,可引用驻留在其它轨道或项中的数据。因此,例如,驻留在其它轨道或项中的数据可通过关于在分组构建过程中特定轨道或项中的哪个数据被指示复制到分组中的引用来指示。定时元数据轨道可指代描述引用的媒体和/或提示样本的样本。对于一个媒体类型的呈现,可选择一个媒体轨道。
'trak'框包含样本表框。样本表框例如包括轨道中的媒体样本的所有时间和数据索引。样本表框需包含样本描述框。样本描述框包括条目计数字段,规定在框中包括的样本条目数。样本描述框需包含至少一个样本条目。样本条目格式取决于轨道的处理器类型。样本条目提供关于所使用的编码类型和该编码所需的任何初始化信息的详细信息。
电影片段特征可以使得能够将可能以其它方式驻留在电影框中的元数据拆分为多个部分(piece)。每个部分可以对应于轨道的某一时段。换言之,电影片段特征可以使得能够交织文件元数据和媒体数据。因此,可以限制电影框的大小并且实现以上提及的使用实例。
在一些示例中,电影片段的媒体样本可以驻留在mdat框中。然而,对于电影片段的元数据,可以提供moof框。moof框可以包括先前已经在moov框中的某个播放时间的时长的信息。moov框本身仍然可以表示有效的电影,但此外,它可以包括指示电影片段将在相同文件中跟随的mvex框。电影片段可以扩展在时间上与moov框相关联的呈现。
在电影片段内可以有一组轨道片段,其包括每个轨道从“零”到多个的任何地方。轨道片段则可包括从“零”到多个轨道运行的任何地方,每个轨道运行文件是该轨道的连续运行样本(因此与块相类似)。在这些结构内,许多字段是可选的,并且可以默认。可包括在moof框中的元数据可限于可包括在moov框中的元数据的子集,并且在某些情况下可进行不同地编码。关于可包括在moof框中的框的详细信息可从ISOBMFF规范中找到。自包含电影片段可被定义为由按照文件顺序是连续的moof框和mdat框组成,其中mdat框包含电影片段(moof框为其提供元数据)的样本,并且不包含任何其它电影片段(即,任何其它moof框)的样本。
采用ISOBMFF及其派生格式(诸如用于NAL单元结构化视频的文件格式(ISO/IEC14496-15))的样本分组可基于分组标准而被定义为将轨道中的每个样本指定成一个样本群组的成员。按照样本分组的样本群组不限于连续样本,而可包含非相邻的样本。由于对轨道中的样本可以有多个样本分组,因此每个样本分组都可具有指示分组类型的类型字段。样本分组可由两个所链接的数据结构表示:(1)“SampleToGroupBox”(sbgp框)表示指定样本到样本群组;(2)“SampleGroupDescriptionBox”(sgpd框)包含描述群组属性的每个样本群组的样本群组条目。基于不同的分组标准,可以有多个“SampleToGroupBox”和“SampleGroupDescriptionBox”的实例。这些实例可通过用于指示分组类型的类型字段来进行区分。可以使用“grouping_type”的值来链接'sbgp'和'sgpd'框,在某些框的版本中,也可以使用“grouping_type_parameter”的值来链接。'sbgp'框指示特定样本所属的样本群组描述条目的索引。
Matroska文件格式能够(但不限于)将视频、音频、图片或字幕轨道中的任何一个存储在一个文件中。Matroska文件扩展名包括用于视频的“.mkv”(具有字幕和音频),用于立体视频的“.mk3d”,用于仅音频文件的“.mka”和仅用于字幕的“.mks”。Matroska可被用作派生文件格式(诸如WebM)的基本格式。
Matroska使用可扩展二进制元语言(EBML)作为基础。EBML规定了由XML原理启发的二进制和八位字节(字节)对齐格式。EBML本身是二进制标记技术的广义描述。Matroska文件由构成EBML“文档”的元素组成。这些元素包括元素ID、元素大小的描述符和二进制数据本身。元素可嵌套。Matroska的分段元素是其它最高级别(级别1)元素的容器。Matroska文件可包括一个分段,但不限于由一个分段构成。Matroska文件中的多媒体数据被组织为集群(或集群元素),每个集群通常包含几秒钟的多媒体数据。集群包括块群组元素,而块群组元素又包括块元素。提示元素包括可协助随机访问或查找的元数据,并且可包括用于查找点的文件指针或相应的时间戳。
视频编解码器包括编码器和解码器,编码器将输入视频转换成适合于存储/传输的压缩表示,解码器可以将压缩视频表示解压缩回可视形式。视频编码器和/或视频解码器也可以彼此分离,即不需要形成编解码器。通常,编码器丢弃原始视频序列中的一些信息,以便以更紧凑的形式(即,以更低的比特率)来表示视频。视频编码器可用于对图像序列进行编码,如随后所定义的,而视频解码器可用于对编码的图像序列进行解码。视频编码器或视频编码器的帧内编码部分或图像编码器可用于对图像进行编码,而视频解码器或视频解码器的帧间解码部分或图像解码器可用于对编码的图像进行解码。
典型的混合视频编码器,例如ITU-T H.263和H.264的许多编码器实现,在两个阶段中对视频信息进行编码。首先,例如通过运动补偿装置(找到并指示与正被编码的块紧密对应的先前编码的视频帧之一中的区域)或通过空间装置(使用将以特定方式进行编码的块周围的像素值)预测特定图区域(或“块”)中的像素值。其次,对预测误差(即预测像素块与原始像素块之间的差异)进行编码。这通常通过使用特定变换(例如,离散余弦变换(DCT)或其变形)对像素值中的差异进行变换,对系数进行量化以及对量化系数进行熵编码来实现。通过改变量化过程的保真度,编码器可以控制像素表示的精确度(图像质量)与所得到的编码的视频表示的大小(文件大小或传输比特率)之间的平衡。
帧间预测(也可称为时间预测、运动补偿或运动补偿预测)减少了时间冗余。在帧间预测中,预测源是先前解码的图。帧内预测利用了相同图内的相邻像素可能相关的事实。帧内预测可以在空间或变换域中执行,即,可以预测样本值或变换系数。帧内预测通常在其中不应用帧间预测的帧内编码中使用。
编码过程的一个结果是一组编码参数,诸如运动矢量和量化的变换系数。如果首先从空间或时间上相邻的参数预测大量参数,则可以更有效地对这些参数进行熵编码。例如,运动矢量可以从空间相邻的运动矢量进行预测,并且可以仅对相对于运动矢量预测器的差进行编码。编码参数的预测和帧内预测可以统称为图内预测。
图4示出了适用于采用本发明的实施例的视频编码器的框图。图4示出了用于两层的编码器,但是应当理解,所示出的编码器可以类似地简化为仅编码一层或者扩展为编码多于两层。图4示出了视频编码器的实施例,其包括用于基础层的第一编码器部分500和用于增强层的第二编码器部分502。第一编码器部分500和第二编码器部分502中的每一个可以包括用于对输入图进行编码的类似元件。编码器部分500、502可以包括像素预测器302、402,预测误差编码器303、403和预测误差解码器304、404。图4还示出了像素预测器302、402的实施例,其包括帧间预测器306、406,帧内预测器308、408,模式选择器310、410,滤波器316、416和参考帧存储器318、418。第一编码器部分500的像素预测器302接收视频流的300个基础层图像,这些图像在帧间预测器306(其确定图像与运动补偿参考帧318之间的差异)和帧内预测器308(其仅基于当前帧或图的已处理部分来确定图像块的预测)两者处进行编码。帧间预测器和帧内预测器两者的输出被传递到模式选择器310。帧内预测器308可以具有多于一个的帧内预测模式。因此,每个模式可以执行帧内预测并向模式选择器310提供预测信号。模式选择器310还接收基础层图300的副本。相应地,第二编码器部分502的像素预测器402接收视频流的400个增强层图像,这些图像在帧间预测器406(其确定图像与运动补偿参考帧418之间的差异)和帧内预测器408(其仅基于当前帧或图的已处理部分来确定图像块的预测)两者处进行编码。帧间预测器和帧内预测器两者的输出被传递到模式选择器410。帧内预测器408可以具有多于一个的帧内预测模式。因此,每个模式可以执行帧内预测并向模式选择器410提供预测信号。模式选择器410还接收增强层图400的副本。
根据选择哪种编码模式来编码当前块,帧间预测器306、406的输出或可选的帧内预测器模式之一的输出或模式选择器内的表面编码器的输出被传递到模式选择器310、410的输出端。模式选择器的输出被传递到第一求和设备321、421。第一求和设备可以从基础层图300/增强层图400中减去像素预测器302、402的输出以产生第一预测误差信号320、420,其被输入到预测误差编码器303、403。
像素预测器302、402还从初步重建器339、439接收图像块312、412的预测表示与预测误差解码器304、404的输出338、438的组合。初步重建图像314、414可以被传递到帧内预测器308、408和滤波器316、416。接收初步表示的滤波器316、416可以对初步表示进行滤波并输出可以保存在参考帧存储器318、418中的最终重建图像340、440。参考帧存储器318可以连接到帧间预测器306以用作参考图像,在帧间预测操作中将未来的基础层图300与该参考图像进行比较。根据一些实施例,在选择基础层并且将其指示为用于层间样本预测和/或增强层的层间运动信息预测的源的情况下,参考帧存储器318还可以连接到帧间预测器406以用作参考图像,在帧间预测操作中将未来的增强层图400与该参考图像进行比较。此外,参考帧存储器418可以连接到帧间预测器406以用作参考图像,在帧间预测操作中将未来的增强层图400与该参考图像进行比较。
根据一些实施例,在选择基础层并且将其指示为用于预测增强层的滤波参数的源的情况下,可以将来自第一编码器部分500的滤波器316的滤波参数提供给第二编码器部分502。
预测误差编码器303、403包括变换单元342、442和量化器344、444。变换单元342、442将第一预测误差信号320、420变换到变换域。例如,变换是DCT变换。量化器344、444量化变换域信号(例如,DCT系数)以形成量化系数。
预测误差解码器304、404接收来自预测误差编码器303、403的输出,并执行预测误差编码器303、403的相反处理,以产生解码的预测误差信号338、438,当在第二求和设备339、439处与图像块312、412的预测表示组合时,这些解码的预测误差信号338、438产生初步重建图像314、414。可以认为预测误差解码器包括去量化器361、461,其对量化的系数值(例如,DCT系数)进行去量化,以重建变换信号,而逆变换单元363、463,其对重建的变换信号执行逆变换,其中逆变换单元363、463的输出包含重建的块。预测误差解码器还可以包括块滤波器,其可以根据进一步解码的信息和滤波器参数对重建的块进行滤波。
熵编码器330、430接收预测误差编码器303、403的输出,并且可以对信号执行适合的熵编码/可变长度编码,以提供误差检测和校正能力。熵编码器330、430的输出可以通过例如复用器508***比特流。
H.264/AVC标准由国际电信联盟电信标准化部门(ITU-T)的视频编码专家组(VCEG)和国际标准化组织(ISO)/国际电工委员会(IEC)的运动图像专家组(MPEG)的联合视频组(JVT)开发。H.264/AVC标准由这两个母标准化组织发布,它被称为ITU-T建议H.264和ISO/IEC国际标准14496-10,也被称为MPEG-4第10部分高级视频编码(AVC)。H.264/AVC标准有多个版本,其中在规范中纳入新的扩展或特征。这些扩展包括可伸缩视频编码(SVC)和多视点视频编码(MVC)。
高效视频编码(H.265/HEVC,也被称为HEVC)标准的版本1由VCEG和MPEG的联合协作小组-视频编码(JCT-VC)开发。该标准由两个母标准化组织发布,并且被称为ITU-T建议H.265和ISO/IEC国际标准23008-2,也被称为MPEG-H第2部分高效视频编码(HEVC)。H.265/HEVC的版本2包括可伸缩、多视点和保真度范围扩展,其可以分别缩写为SHVC、MV-HEVC和REXT。H.265/HEVC的版本2作为ITU-T H.265建议(10/2014)和ISO/IEC 23008-2的版本2发布。目前正在进行标准化项目以开发对H.265/HEVC的进一步扩展,包括三维和屏幕内容编码扩展,其可以分别缩写为3D-HEVC和SCC。
SHVC、MV-HEVC和3D-HEVC使用在HEVC标准的版本2的附录F中规定的公共基础规范。该公共基础例如包括高级语法和语义,例如规定比特流的层的一些特性,诸如层间依赖性,以及解码过程,诸如包括层间参考图的参考图列表构造和用于多层比特流的图顺序计数推导。附录F也可用于现在的HEVC的后续多层扩展。应当理解,即使视频编码器、视频解码器、编码方法、解码方法、比特流结构和/或实施例可以在下文中参考特定扩展(例如SHVC和/或MV-HEVC)来描述,它们也通常适用于HEVC的任何多层扩展,甚至更一般地适用于任何多层视频编码方案。
在本节中将一些关键定义、比特流和编码结构以及H.264/AVC和HEVC的概念描述为视频编码器、解码器、编码方法、解码方法和比特流结构的示例,其中这些实施例可被实现。这些关键定义、比特流和编码结构以及H.264/AVC的概念与在HEVC中的相同——因此,它们在下面被联合地描述。本发明的各方面不限于H.264/AVC或HEVC,而是针对在其上可以部分或全部实现本发明的一个可能的基础而进行描述。
与许多早期视频编码标准类似,在H.264/AVC和HEVC中规定了比特流语法和语义以及用于无差错比特流的解码过程。没有规定编码过程,但编码器必须生成符合的比特流。可以使用假设参考解码器(HRD)来验证比特流和解码器一致性。这些标准包含有助于处理传输错误和丢失的编码工具,但是这些工具的使用在编码中是可选的,并且没有规定用于错误比特流的解码过程。
在现有标准的描述以及示例性实施例的描述中,语法元素可被定义为比特流中表示的数据的元素。语法结构可被定义为以特定顺序一起存在于比特流中的“零”个或多个语法元素。在现有标准的描述以及示例性实施例的描述中,可以使用短语“由外部装置”或“通过外部装置”。例如,可以“由外部装置”向解码过程提供诸如在解码过程中使用的语法结构或变量值的实体。短语“由外部装置”可以指示实体不包括在由编码器创建的比特流中,而是例如使用控制协议从比特流向外传送。它可以替代地或附加地意味着实体不是由编码器创建的,而是例如可以在使用解码器的播放器或解码控制逻辑等中创建。解码器可以具有用于输入外部装置的接口,诸如变量值。
用于输入到H.264/AVC或HEVC编码器的基本单元和H.264/AVC或HEVC解码器的输出分别是图。作为编码器的输入而提供的图也可被称为源图,而由解码器解码的图可被称为解码图。
源图和解码图每个均包括一个或多个样本阵列,诸如以下多组样本阵列中的一个:
-仅亮度(Y)(单色)。
-亮度和两个色度(YCbCr或YCgCo)。
-绿色、蓝色和红色(GBR,也称为RGB)。
-表示其它未指定的单色或三刺激颜色采样(例如,YZX,也称为XYZ)的阵列。
在下文中,这些阵列可被称为亮度(或L或Y)和色度,其中,两个色度阵列可被称为Cb和Cr;无论使用的实际颜色表示方法是什么。使用的实际颜色表示方法例如可以在编码比特流中指示,例如使用H.264/AVC和/或HEVC的视频可用性信息(VUI)语法。分量可被定义为来自三个样本阵列(亮度和两个色度)之一的阵列或单个样本,或者构成单色格式的图的阵列或该阵列的单个样本。
在H.264/AVC和HEVC中,图可以是帧或段(field)。帧包括亮度样本矩阵,并且可包括对应的色度样本。段是帧的一组交替的样本行,并且可以在源信号交织时被用作编码器的输入。色度样本阵列可以不存在(因此可能在使用单色采样),或者与亮度样本阵列相比,色度样本阵列可以进行二次采样。色度格式可总结如下:
-在单色采样中,只有一个样本阵列,其可以名义上被认为是亮度阵列。
-在4:2:0采样中,两个色度阵列中的每一个都具有亮度阵列的一半高度和一半宽度。
-在4:2:2采样中,两个色度阵列中的每一个都具有亮度阵列的相同高度和一半宽度。
-在4:4:4采样中,在没有使用单独的颜色平面时,两个色度阵列中的每一个都具有与亮度阵列相同的高度和宽度。
在H.264/AVC和HEVC中,可以将样本阵列作为单独的颜色平面编码到比特流中并且分别从比特流中对被单独编码的颜色平面进行解码。当使用单独的颜色平面时,它们中的每一个都作为具有单色采样的图被(编码器和/或解码器)单独地处理。
分割(partitioning)可被定义为将集合划分成多个子集,使得集合中的每个元素恰好在子集之一中。
在H.264/AVC中,宏块是亮度样本的16×16块和色度样本的对应块。例如,在4:2:0采样模式中,对于每个色度分量,宏块包含一个8×8色度样本块。在H.264/AVC中,图被分割为一个或多个切片组,并且一个切片组包含一个或多个切片。在H.264/AVC中,切片由在特定切片组内的光栅扫描中的连续排序的整数个宏块组成。
当描述HEVC编码和/或解码的操作时,可以使用以下术语。可以将编码块定义为针对N的某个值的N×N个样本块,如此将编码树块划分成编码块便是分割。可以将编码树块(CTB)定义为针对N的某个值的N×N个样本块,如此将分量划分成编码树块便是分割。编码树单元(CTU)可被定义为亮度样本的编码树块,具有三个样本阵列的图的色度样本的两个对应的编码树块,或者单色图或使用三个单独的颜色平面和用于编码样本的语法结构编码的图的样本的编码树块。编码单元(CU)可被定义为亮度样本的编码块,具有三个样本阵列的图的色度样本的两个对应编码块,或者单色图或使用三个单独的颜色平面和用于编码样本的语法结构编码的图的样本的编码块。
在一些视频编解码器(诸如高效视频编码(HEVC)编解码器)中,视频图被划分成覆盖图区域的编码单元(CU)。CU包括定义CU内的样本的预测过程的一个或多个预测单元(PU)以及定义所述CU中的样本的预测误差编码过程的一个或多个变换单元(TU)。通常,CU由方形样本块组成,其大小可从预定义的一组可能的CU大小中选择。具有最大允许大小的CU可以被命名为LCU(最大编码单元)或编码树单元(CTU),并且视频图被划分成非重叠的LCU。LCU可以进一步划分成更小的CU的组合,例如,通过递归地划分LCU和所得到的CU。每个所得到的CU通常具有至少一个PU和至少一个与之相关联的TU。每个PU和TU可以进一步被划分成更小的PU和TU,以分别增加预测和预测误差编码过程的粒度。每个PU具有与之相关联的预测信息,该信息定义将对该PU内的像素应用何种类型的预测(例如,用于帧间预测PU的运动矢量信息和用于帧内预测PU的帧内预测方向性信息)。
每个TU可以与描述所述TU内的样本的预测误差解码过程的信息(例如包括DCT系数信息)相关联。通常在CU级用信号通知是否对每个CU应用预测误差编码。在没有与CU相关联的预测误差残差的情况下,可以认为没有用于所述CU的TU。通常在比特流中用信号通知图像被划分成CU以及CU被划分成PU和TU,从而允许解码器再现这些单元的预期结构。
在HEVC中,图可以被分割为图块,图块是矩形的并且包含整数个LCU。在HEVC中,分割为图块形成包括一个或多个图块列以及一个或多个图块行的图块网格。编码的图块是字节对齐的,这可以通过在编码的图块的终止处添加字节对齐位来实现。
在HEVC中,切片被定义为包含在一个独立的切片片段中的整数个编码树单元并且所有后续相关切片片段(如果有)位于同一访问单元内的下一个独立切片(如果有)之前。在HEVC中,切片片段被定义为在图块扫描中连续排序并包含在单个NAL单元中的整数个编码树单元。将每个图划分成切片片段是分割。在HEVC中,独立的切片片段被定义为是这样的切片片段:对于该切片片段,不根据前一切片片段的值断定切片片段报头的语法元素的值,而相关切片片段被定义为是这样的切片片段:对于该切片片段,根据解码顺序中的前一独立切片片段的值断定切片片段报头的一些语法元素的值。在HEVC中,切片报头被定义为作为当前切片片段或者作为位于当前相关切片片段之前的独立切片片段的独立切片片段的切片片段报头,而切片片段报头被定义为编码的切片片段的一部分,其包含与切片片段中表示的第一或所有编码树单元有关的数据元素。以图块内或图内(如果未使用图块)的LCU的光栅扫描顺序扫描CU。在LCU内,CU具有特定的扫描顺序。
在HEVC中,图块包含整数个编码树单元,并且可以由包含在多于一个的切片中的编码树单元组成。类似地,切片可以由包含在多于一个的图块中的编码树单元组成。在HEVC中,切片中的所有编码树单元属于相同的图块和/或图块中的所有编码树单元属于相同的切片。此外,在HEVC中,切片片段中的所有编码树单元属于相同的图块和/或图块中的所有编码树单元属于相同的切片片段。
运动受限图块集使得帧间预测过程在编码中受到约束,如此在运动受限图块集以外没有样本值,以及在使用运动受限图块集以外的一个或多个样本导出的部分样本位置处没有样本值,这被用于运动受限图块集内的任何样本的帧间预测。
需要指出,在帧间预测中使用的样本位置是饱和的,使得在图以外的位置也要以其它方式饱和以指向图的对应边界样本。因此,如果图块边界也是图边界,则运动矢量可以有效地穿过该边界,或者运动矢量可以有效地引起部分样本内插,其将指向该边界以外的位置,因为样本位置饱和到边界上。
HEVC的时间运动受限图块集SEI消息可用于指示比特流中运动受限图块集的存在。
层间受限图块集使得层间预测过程在编码中受到约束,如此在每个关联的参考图块集以外没有样本值,以及在使用每个关联的参考图块集以外的一个或多个样本导出的部分样本位置处没有样本值,这被用于层间受限图块集内的任何样本的层间预测。
解码器通过应用类似于编码器的预测装置来重建输出视频,以形成像素块的预测表示(使用由编码器创建并存储在压缩表示中的运动或空间信息)和预测误差解码(预测误差编码的逆操作,其在空间像素域中恢复量化的预测误差信号)。在应用预测和预测误差解码装置之后,解码器对预测和预测误差信号(像素值)求和以形成输出视频帧。解码器(和编码器)还可以应用附加的滤波装置,以在传递输出视频进行显示和/或将其存储为视频序列中即将到来的帧的预测参考之前改进输出视频的质量。
滤波例如可以包括以下中的一个或多个:去块、样本自适应偏移(SAO)和/或自适应环路滤波(ALF)。H.264/AVC包括去块,而HEVC包括去块和SAO。
在典型的视频编解码器中,用与每个运动补偿图像块(诸如预测单元)相关联的运动矢量来指示运动信息。这些运动矢量中的每一个表示将要编码(在编码器侧)或解码(在解码器侧)的图中的图像块与先前编码或解码图之一中的预测源块的位移。为了有效地表示运动矢量,通常相对于块特定预测运动矢量差分地编码这些运动矢量。在典型的视频编解码器中,采用预定义的方式创建预测的运动矢量,例如计算相邻块的编码或解码的运动矢量的中值。创建运动矢量预测的另一种方式是根据时间参考图中的相邻块和/或共同定位的块生成候选预测列表,并信号通知所选择的候选者作为运动矢量预测器。除了预测运动矢量值之外,还可以预测哪个参考图用于运动补偿预测,并且该预测信息例如可以由先前编码/解码的图的参考索引表示。通常根据时间参考图中的相邻块和/或共同定位的块预测参考索引。此外,典型的高效视频编解码器采用附加的运动信息编码/解码机制,通常称为合并模式,其中预测包括每个可用参考图列表的运动矢量和对应的参考图索引的所有运动场信息,并且在不做任何修改/更正的情况下使用这些信息。类似地,使用时间参考图中的相邻块和/或共同定位块的运动场信息来执行预测运动场信息,并且在填充有可用的相邻/共同定位的块的运动场候选列表中用信号通知所使用的运动场信息。
典型的视频编解码器使得能够使用单向预测(uni-prediction),其中单个预测块用于被编(解)码的块,以及使得能够使用双向预测(bi-prediction),其中两个预测块被组合以形成用于被编(解)码的块的预测。一些视频编解码器支持加权预测,其中在添加残差信息之前对预测块的样本值进行加权。例如,可以应用乘法加权因子和附加偏移。在由一些视频编解码器实现的显式加权预测中,例如可以在每个可允许参考图索引的切片报头中对加权因子和偏移进行编码。在由一些视频编解码器实现的隐式加权预测中,加权因子和/或偏移不是编码的,而是例如基于参考图的相对图顺序计数(POC)距离而导出的。
在典型的视频编解码器中,首先用变换内核(如DCT)变换运动补偿之后的预测残差,然后对其进行编码。这样做的原因在于:在残差和变换之间通常仍存在一些相关性,在许多情况下,变换可以帮助降低这种相关性并提供更有效的编码。
典型的视频编码器利用拉格朗日(Lagrangian)成本函数来找到最佳编码模式,例如,期望的宏块模式和相关联的运动矢量。这种成本函数使用加权因子λ将由有损编码方法引起的(精确的或估计的)图像失真与表示图像区域中的像素值所需的(精确的或估计的)信息量联系在一起:
C=D+λR(1)
其中,C是最小化的拉格朗日成本,D是考虑模式和运动矢量的图像失真(例如,均方误差),R是表示在解码器中重建图像块所需数据所需的比特数(包括表示候选运动矢量的数据量)。
视频编码标准和规范可以允许编码器将编码图划分为编码切片等和/或图块等。通常在切片边界和图块边界上禁用图内预测。因此,切片和图块可以被视为将编码图划分为可独立解码的部分的方式。在H.264/AVC和HEVC中,可以在切片边界上禁用图内预测,而在HEVC中,可以在图块边界上禁用图内预测。因此,切片可以被视为将编码图划分为可独立解码的部分的方式,因此切片通常被视为用于传输的基本单元,并且还可以用作用于并行化的基本单元。图块可以被视为用于编码和/或解码中的并行化的基本单元。在许多情况下,编码器可以在比特流中指示在切片边界或图块边界上(单独或共同针对切片和图块边界)关闭哪些类型的图内预测,并且解码器操作例如在断定哪些预测源可用时考虑该信息。例如,如果相邻宏块或CU驻留在不同切片中,则可将来自相邻宏块或CU的样本视为不可用于帧内预测。
分别用于H.264/AVC或HEVC编码器的输出和H.264/AVC或HEVC解码器的输入的基本单元是网络抽象层(NAL)单元。为了通过面向分组的网络进行传输或者存储到结构化文件中,可以将NAL单元封装到分组或类似的结构中。NAL单元可被定义为包含要遵循的数据类型的指示以及包含此数据的字节的语法结构,所述数据的形式为按需穿插有防止竞争字节的原始字节序列载荷(RBSP)。RBSP可被定义为包含封装在NAL单元中的整数个字节的语法结构。RBSP要么为空,要么具有数据位串的形式,所述数据位包含语法元素,语法元素其后跟随RBSP停止位,停止位其后跟随零个或多个等于“0”的后续位。NAL单元由报头和有效载荷组成。
在HEVC中,双字节NAL单元报头用于所有特定的NAL单元类型。NAL单元报头包含一个保留位、六位NAL单元类型指示、用于时间级别的三位“nuh_temporal_id_plus1”指示(可能需要大于或等于“1”)以及六位“nuh_layer_id”语法元素。“temporal_id_plus1”语法元素可以被视为NAL单元的时间标识符,并且可以如下地导出基于“零”的“TemporalId”变量:TemporalId=temporal_id_plus1-1。等于“0”的“TemporalId”对应于最低时间级别。“temporal_id_plus1”的值必需是非零的,以避免涉及两个NAL单元报头字节的起始码仿效。通过排除具有大于或等于所选值的“TemporalId”的所有VCL NAL单元并且包括所有其它VCL NAL单元而创建的比特流保持一致性。因此,具有等于“TID”的“TemporalId”的图不使用具有大于“TID”的“TemporalId”的任何图作为帧间预测参考。子层或时间子层可被定义为时间可伸缩比特流的时间伸缩层,其由具有“TemporalId”变量的特定值的VCL NAL单元和相关联的非VCL NAL单元组成。“nuh_layer_id”可以被理解为伸缩层标识符。
NAL单元可被归类为视频编码层(VCL)NAL单元和非VCL NAL单元。在H.264/AVC中,编码切片NAL单元包含表示一个或多个编码宏块的语法元素,每个编码宏块对应于未压缩的图中的样本块。在HEVC中,VCL NAL单元包含表示一个或多个CU的语法元素。
在HEVC中,可以将编码切片NAL单元指示为以下类型之一:
Figure GDA0003797469080000231
Figure GDA0003797469080000241
在HEVC中,图类型的缩写可以定义如下:拖尾(TRAIL)图、时间子层访问(TSA)、逐步时间子层访问(STSA)、随机访问可解码前导(RADL)图、随机访问跳过前导(RASL)图、断链访问(BLA)图、瞬时解码刷新(IDR)图、干净随机访问(CRA)图。
随机访问点(RAP)图(其也可被称为帧内随机访问点(IRAP)图)是这样的图:其中每个切片或切片片段具有16到23(包括16和23)范围内的“nal_unit_type”。独立层中的IRAP图仅包含帧内编码的切片。属于具有“nuh_layer_id”值“currLayerId”的预测层的IRAP图可以包含P、B和I切片,不能使用来自具有“nuh_layer_id”等于“currLayerId”的其它图的帧间预测,而可以使用来自其直接参考层的层间预测。在当前版本的HEVC中,IRAP图可以是BLA图、CRA图或IDR图。包含基础层的比特流中的第一个图是基础层的IRAP图。如果必要的参数集在需要激活时可用,则可以正确地解码解码顺序中的独立层的IRAP图和独立层的所有后续非RASL图,而无需执行解码顺序中的IRAP图之前的任何图的解码过程。当必要的参数集在需要激活时可用时以及当具有“nuh_layer_id”等于“currLayerId”的层的每个直接参考层的解码已被初始化时(即,当对于“refLayerId”,“LayerInitializedFlag[refLayerId]”等于“1”时,其中“refLayerId”等于具有“nuh_layer_id”等于“currLayerId”的层的直接参考层的所有“nuh_layer_id”值),解码顺序中属于具有“nuh_layer_id”值“currLayerId”的预测层的IRAP图和“nuh_layer_id”等于“currLayerId”的所有后续非RASL图可以正确地被解码,而不对解码顺序中的IRAP图之前的“nuh_layer_id”等于“currLayerId”的任何图执行解码过程。比特流中可能存在仅包含非IRAP图的帧内编码的切片的图。
在HEVC中,CRA图可以是解码顺序中的比特流中的第一图,或者可以随后出现在比特流中。HEVC中的CRA图允许所谓的前导图按照解码顺序位于CRA图之后,但在输出顺序中位于CRA图之前。一些前导图,即所谓的RASL图,可以使用在CRA图之前解码的图作为参考。如果在CRA图上执行随机访问,则解码和输出顺序中位于CRA图后面的图是可解码的,因此与IDR图的干净随机访问功能类似地实现干净随机访问。
CRA图可以具有关联的RADL或RASL图。当CRA图是解码顺序中的比特流中的第一图时,CRA图是解码顺序中的编码的视频序列的第一图,并且任何相关联的RASL图不由解码器输出并且可能不可解码,因为它们可能包含对比特流中不存在的图的引用。
前导图是在输出顺序中位于相关联的RAP图之前的图。相关联的RAP图是解码顺序中的先前RAP图(如果存在)。前导图是RADL图或RASL图。
所有RASL图是相关联的BLA或CRA图的前导图。当相关联的RAP图是BLA图或者是比特流中的第一编码图时,RASL图不被输出并且可能无法正确地被解码,因为RASL图可能包含对比特流中不存在的图的引用。然而,如果解码已经从RASL图的相关联的RAP图之前的RAP图开始,则可以正确地解码RASL图。RASL图不用作非RASL图的解码过程的参考图。当存在时,所有RASL图在解码顺序中位于同一相关联的RAP图的所有拖尾图之前。在HEVC标准的一些草案中,RASL图被称为标记丢弃(TFD)图。
所有RADL图都是前导图。RADL图不用作用于同一相关联的RAP图的拖尾图的解码过程的参考图。当存在时,所有RADL图在解码顺序中位于同一相关联的RAP图的所有拖尾图之前。RADL图不引用在解码顺序中位于相关联的RAP图之前的任何图,因此当解码从相关联的RAP图开始时可以正确地被解码。
当从CRA图开始的比特流的一部分包括在另一比特流中时,与CRA图相关联的RASL图可能无法正确地被解码,因为它们的一些参考图可能不存在于组合比特流中。为了使这种拼接操作简单,可以改变CRA图的NAL单元类型以指示它是BLA图。与BLA图相关联的RASL图可能无法正确地被解码,因此不会被输出/显示。此外,可以从解码中省略与BLA图相关联的RASL图。
BLA图可以是解码顺序中的比特流中的第一图,或者可以随后出现在比特流中。每个BLA图开始新的编码视频序列,并且对解码过程具有与IDR图类似的效果。然而,BLA图包含指定非空参考图集的语法元素。当BLA图具有等于“BLA_W_LP”的“nal_unit_type”时,它可能具有相关联的RASL图,该RASL图不被解码器输出并且可能不可解码,因为它们可能包含对比特流中不存在的图的引用。当BLA图具有等于“BLA_W_LP”的“nal_unit_type”时,它还可以具有被指定进行解码的相关联的RADL图。当BLA图具有等于“BLA_W_RADL”的“nal_unit_type”时,它不具有相关联的RASL图,但是可以具有被指定进行解码的相关联的RADL图。当BLA图具有等于“BLA_N_LP”的“nal_unit_type”时,它不具有任何相关联的前导图。
具有等于“IDR_N_LP”的“nal_unit_type”的IDR图不具有存在于比特流中的相关联的前导图。具有等于“IDR_W_LP”的“nal_unit_type”的IDR图不具有存在于比特流中的相关联RASL图,但是可以在比特流中具有相关联的RADL图。
当“nal_unit_type”的值等于“TRAIL_N”、“TSA_N”、“STSA_N”、“RADL_N”、“RASL_N”、“RSV_VCL_N10”、“RSV_VCL_N12”或“RSV_VCL_N14”时,解码的图不用作相同时间子层的任何其它图的参考。也即是说,在HEVC中,当“nal_unit_type”的值等于“TRAIL_N”、“TSA_N”、“STSA_N”、“RADL_N”、“RASL_N”、“RSV_VCL_N10”、“RSV_VCL_N12”或“RSV_VCL_N14”时,解码图不包括在具有相同的“TemporalId”值的任何图的“RefPicSetStCurrBefore”、“RefPicSetStCurrAfter”和“RefPicSetLtCurr”中的任一项中。可以丢弃具有等于“TRAIL_N”、“TSA_N”、“STSA_N”、“RADL_N”、“RASL_N”、“RSV_VCL_N10”、“RSV_VCL_N12”或“RSV_VCL_N14”的“nal_unit_type”的编码图,而不影响具有相同的“TemporalId”值的其它图的可解码性。
拖尾图可被定义为在输出顺序中位于相关联的RAP图之后的图。任何作为拖尾图的图都没有等于“RADL_N”、“RADL_R”、“RASL_N”或“RASL_R”的“nal_unit_type”。作为前导图的任何图可以被约束为在解码顺序中位于与同一RAP图相关联的所有拖尾图之前。在比特流中不存在与具有等于“BLA_W_RADL”或“BLA_N_LP”的“nal_unit_type”的BLA图相关联的RASL图。在比特流中不存在与具有等于“BLA_N_LP”的“nal_unit_type”的BLA图相关联或者与具有等于“IDR_N_LP”的“nal_unit_type”的IDR图相关联的RADL图。与CRA或BLA图相关联的任何RASL图可被约束为在输出顺序中位于与CRA或BLA图相关联的任何RADL图之前。与CRA图相关联的任何RASL图可以被约束为在输出顺序中位于在解码顺序中位于CRA图之前的任何其它RAP图之后。
在HEVC中存在两种图类型:TSA和STSA图类型,其可用于指示时间子层切换点。如果在TSA或STSA图(不包括)以及TSA或STSA图具有等于N+1的“TemporalId”之前已经解码具有最多为N的“TemporalId”的时间子层,则TSA或STSA图能够解码具有等于N+1的“TemporalId”的所有后续图(在解码顺序中)。TSA图类型可以对TSA图本身以及在解码顺序中位于TSA图之后的同一子层中的所有图施加限制。这些图中的任何一个都不被允许根据在解码顺序中位于TSA图之前的同一子层中的任何图使用帧间预测。TSA定义可以进一步对在解码顺序中位于TSA图之后的更高子层中的图施加限制。如果该图与TSA图属于同一子层或属于比TSA图更高的子层,则这些图中的任何一个都不被允许引用在解码顺序中位于TSA图之前的图。TSA图具有大于“0”的“TemporalId”。STSA类似于TSA图,但是不对在解码顺序中位于STSA图之后的较高子层中的图施加限制,因此仅向上切换到STSA图驻留的子层。
非VCL NAL单元例如可以是以下类型之一:序列参数集、图参数集、补充增强信息(SEI)NAL单元、访问单元分隔符、序列NAL单元的终止、比特流NAL单元的终止、或填充器数据NAL单元。可能需要参数组来重建解码图,而许多其它非VCL NAL单元对于解码样本值的重建不是必需的。
通过编码视频序列保持不变的参数可以包括在序列参数集中。除了解码过程可能需要的参数之外,序列参数集可以可选地包含视频可用性信息(VUI),其包括对于缓冲、图输出定时、渲染和资源预留可能重要的参数。在HEVC中,序列参数集RBSP包括可由一个或多个图参数集RBSP或包含缓冲周期SEI消息的一个或多个SEI NAL单元引用的参数。图参数集包含在多个编码的图中可能未改变的这些参数。图参数集RBSP可以包括可以由一个或多个编码的图的编码的切片NAL单元引用的参数。
在HEVC中,视频参数集(VPS)可被定义为包含应用于“零”个或更多个整个编码的视频序列的语法元素的语法结构,这些编码的视频序列由在SPS中找到的语法元素(该语法元素被在PPS中找到的语法元素引用,而后者被在每个切片片段报头中找到的语法元素引用)的内容确定。视频参数集RBSP可以包括可被一个或多个序列参数集RBSP引用的参数。
视频参数集(VPS)、序列参数集(SPS)和图参数集(PPS)之间的关系和层次可以描述如下。VPS在参数集层次结构中以及可伸缩性和/或3D视频的上下文中位于SPS上面的一级。VPS可以包括整个编码视频序列中的所有(伸缩或视点)层上的所有切片的公共参数。SPS包括整个编码的视频序列中的特定(伸缩或视点)层中的所有切片的公共参数,并且可以由多个(伸缩或视点)层共享。PPS包括特定层表示中的所有切片的公共参数(一个访问单元中的一个伸缩或视点层的表示),并且可能由多个层表示中的所有切片共享。
VPS可以提供有关比特流中的层的依赖关系的信息,以及适用于整个编码视频序列中的所有(伸缩或视点)层上的所有切片的许多其它信息。VPS可以被认为包括两个部分:基础VPS和VPS扩展,其中VPS扩展可以可选地存在。在HEVC中,可以认为基础VPS包括不具有vps_extension()语法结构的video_parameter_set_rbsp()语法结构。video_parameter_set_rbsp()语法结构主要是针对HEVC版本1规定的,并且包括可用于基础层解码的语法元素。在HEVC中,可以认为VPS扩展包括vps_extension()语法结构。vps_extension()语法结构在HEVC版本2中规定,主要用于多层扩展,并且包括可用于解码一个或多个非基础层的语法元素,诸如指示层依赖关系的语法元素。
VPS扩展中的语法元素“max_tid_il_ref_pics_plus1”可用于指示非IRAP图不被用作层间预测的参考,并且指示如果不是这样,则哪些时间子层不被用作层间预测的参考:“max_tid_il_ref_pics_plus1[i][j]”等于“0”规定了具有等于“layer_id_in_nuh[i]”的“nuh_layer_id”的非IRAP图不用作具有等于“layer_id_in_nuh[j]”的“nuh_layer_id”的图的层间预测的源图。“max_tid_il_ref_pics_plus1[i][j]”大于“0”规定了具有等于“layer_id_in_nuh[i]”的“nuh_layer_id”和大于“max_tid_il_ref_pics_plus1[i][j]-1”的“TemporalId”的图不用作具有等于“layer_id_in_nuh[j]”的“nuh_layer_id”的图的层间预测的源图。当不存在时,断定“max_tid_il_ref_pics_plus1[i][j]”的值等于“7”。
H.264/AVC和HEVC语法允许参数集的许多实例,并且每个实例用唯一标识符标识。为了限制参数集所需的内存使用,参数集标识符的值范围受到限制。在H.264/AVC和HEVC中,每个切片报头包括对于包含切片的图的解码活动的图参数集的标识符,并且每个图参数集包含活动的序列参数集的标识符。因此,图和序列参数集的传输不必与切片的传输精确地同步。相反,在引用活动的序列和图参数集之前在任何时刻接收到它们就足够了,这允许使用比用于切片数据的协议更可靠的传输机制来“带外”传输参数集。例如,参数集可以作为参数包含在实时传输协议(RTP)会话的会话描述中。如果参数集是在带内发送的,则可以重传它们以改进错误稳健性。
带外传输、信令或存储可以附加地或替代地用于传输错误容忍之外的其它目的,诸如便利访问或会话协商。例如,符合ISOBMFF的文件中的轨道的样本条目可以包括参数集,而比特流中的编码数据存储在文件的其它地方或另一文件中。短语“沿着比特流”(例如,沿着比特流进行指示)可在权利要求和所描述的实施例中用于是指采用带外数据与比特流相关联的方式的带外传输、信令或存储。短语“沿着比特流进行解码”等可以是指对与比特流相关联的所涉及的带外数据(其可以从带外传输、信令或存储中获得)进行解码。编码图是图的编码表示。
在HEVC中,编码图可被定义为包含图的所有编码树单元的图的编码表示。在HEVC中,访问单元(AU)可被定义为一组NAL单元,这些单元根据特定的分类规则彼此相关联,在解码顺序中是连续的,并且至多包含具有任何特定的“nuh_layer_id”的一个图。除了包含编码图的VCL NAL单元之外,访问单元还可以包含非VCL NAL单元。
可能需要编码图以特定顺序出现在访问单元内。例如,可能需要具有等于“nuhLayerIdA”的“nuh_layer_id”的编码图在解码顺序中位于同一访问单元中的具有大于“nuhLayerIdA”的“nuh_layer_id”的所有编码图之前。AU通常包含表示相同输出时间和/或捕获时间的所有编码图。
比特流可被定义为NAL单元流或字节流形式的比特序列,其形成编码图和形成一个或多个编码视频序列的相关数据的表示。第一比特流之后可以是相同逻辑信道中的第二比特流,诸如在相同文件中或在通信协议的相同连接中。基本流(在视频编码的上下文中)可被定义为一个或多个比特流的序列。第一比特流的终止可以由特定NAL单元指示,该NAL单元可以被称为比特流终止(EOB)NAL单元并且是比特流的最后一个NAL单元。在HEVC及其当前的草案扩展中,EOB NAL单元需要使“nuh_layer_id”等于“0”。
在H.264/AVC和HEVC中已经针对不提供成帧结构的传输或存储环境规定了字节流格式。字节流格式通过在每个NAL单元前面附加起始码将NAL单元彼此分开。为了避免错误检测NAL单元边界,编码器运行面向字节的起始码仿效阻止算法,如果起始码在其它情况下出现,则向NAL单元有效载荷添加仿效阻止字节。例如,为了在面向分组与流的***之间支持直接的网关操作,无论是否使用字节流格式,都可以始终执行起始码仿效阻止。字节流格式的位顺序可以规定为从第一字节的最高有效位(MSB)开始,继续到第一字节的最低有效位(LSB),然后继续到第二字节的MSB,以此类推。可以认为字节流格式由字节流NAL单元语法结构序列组成。每个字节流NAL单元语法结构可以被认为包含一个起始码前缀,后跟一个NAL单元语法结构,即,如果引用语法元素名称,则后跟“nal_unit”(“NumBytesInNalUnit”)语法结构。字节流NAL单元还可以包含附加的“zero_byte”语法元素。它还可以包含一个或多个附加的“trailing_zero_8bits”语法元素。当字节流NAL单元是比特流中的第一字节流NAL单元时,它还可以包含一个或多个附加的“leading_zero_8bits”语法元素。字节流NAL单元的语法可以规定如下:
Figure GDA0003797469080000321
可能需要字节流中的字节流NAL单元的顺序遵循包含在字节流NAL单元中的NAL单元的解码顺序。语法元素的语义可以如下规定。“leading_zero_8bits”是等于0x00的字节。“leading_zero_8bits”语法元素只能出现在比特流的第一字节流NAL单元中,因为位于NAL单元语法结构之后且位于四字节序列0x00000001之前(将被解释为后跟“start_code_prefix_one_3bytes”的“zero_byte”)的任何等于0x00的字节将被认为是“trailing_zero_8bits”语法元素,该语法元素是前一字节流NAL单元的一部分。“zero_byte”是等于0x00的单个字节。“start_code_prefix_one_3bytes”是等于0x000001的3字节固定值序列。该语法元素可以被称为起始码前缀(或简称为起始码)。“trailing_zero_8bits”是等于0x00的字节。
NAL单元可被定义为包含要遵循的数据类型的指示,以及包含RBSP形式的数据(其根据需要内插有仿效阻止字节)的字节的语法结构。原始字节序列有效载荷(RBSP)可被定义为包含封装在NAL单元中的整数个字节的语法结构。RBSP是空的或具有数据位串的形式,该数据位串包含语法元素,其后是RBSP停止位,随后是“零”个或更多个等于“0”的后续位。
NAL单元由报头和有效载荷组成。在H.264/AVC和HEVC中,NAL单元报头指示NAL单元的类型。
接下来提供“nal_unit”(“NumBytesInNalUnit”)语法结构的HEVC语法作为NAL单元的语法的示例。
Figure GDA0003797469080000331
在HEVC中,编码的视频序列(CVS)例如可被定义为一系列访问单元,这些访问单元按解码顺序包括“NoRaslOutputFlag”等于“1”的IRAP访问单元,随后是“零”个或多个访问单元,这些访问单元不是IRR访问单元并且“NoRaslOutputFlag”等于“1”,其中包括到“NoRaslOutputFlag”等于“1”的IRAP访问单元之前的所有后续访问单元,但不包括作为“NoRaslOutputFlag”等于“1”的IRAP访问单元的任何后续访问单元。IRAP访问单元可被定义为其中基础层图是IRAP图的访问单元。“NoRaslOutputFlag”的值对于每个IDR图、每个BLA图以及作为解码顺序中的比特流中的该特定层中的第一图的每个IRAP图等于“1”,是在解码顺序中具有相同的“nuh_layer_id”值的NAL单元序列的终止之后的第一IRAP图。在多层HEVC中,当每个IRAP图的“nuh_layer_id”使得“LayerInitializedFlag[nuh_layer_id]”等于“0”,并且使得“LayerInitializedFlag[refLayerId]”对于等于“IdDirectRefLayer[nuh_layer_id][j]”的“refLayerId”的所有值等于“1”时,“NoRaslOutputFlag”的值对于每个IRAP图等于“1”,其中j在0到NumDirectRefLayers[nuh_layer_id]-1的范围内,包括0和NumDirectRefLayers[nuh_layer_id]-1。否则,“NoRaslOutputFlag”的值等于“HandleCraAsBlaFlag”。“NoRaslOutputFlag”等于“1”具有以下影响:解码器不输出与被设置“NoRaslOutputFlag”的IRAP图相关联的RASL图。可以专门从能够控制解码器的外部实体(诸如播放器或接收器)向解码器提供“HandleCraAsBlaFlag”的值。“HandleCraAsBlaFlag”可以被例如寻求比特流中的新位置或调谐到广播并开始解码,然后从CRA图开始解码的播放器设置为“1”。当“HandleCraAsBlaFlag”对于CRA图等于“1”时,CRA图就像BLA图一样被处理和解码。
在HEVC中,当特定NAL单元(可以被称为序列终止(EOS)NAL单元)出现在比特流中并且“nuh_layer_id”等于“0”时,可以附加地或替代地(对于上面的说明)规定终止编码视频序列。
可以如下定义图组(GOP)及其特性。无论是否解码任何先前的图,都可以解码GOP。开放GOP是这样一个图组:其中当从开放GOP的初始帧内图开始解码时,在输出顺序中位于初始帧内图之前的图可能无法被正确地解码。换句话说,开放GOP的图可以(在帧间预测中)引用属于先前GOP的图。HEVC解码器可以识别开始开放GOP的帧内图,因为特定NAL单元类型(CRA NAL单元类型)可用于其编码切片。封闭GOP是这样一个图组:其中当从封闭GOP的初始帧内图开始解码时,可以正确地解码所有图。换句话说,封闭GOP中的图不引用先前GOP中的任何图。在H.264/AVC和HEVC中,封闭GOP可以从IDR图开始。在HEVC中,封闭GOP也可以从“BLA_W_RADL”或“BLA_N_LP”图开始。与封闭GOP编码结构相比,开放GOP编码结构在压缩方面可能更有效,这是由于参考图的选择具有更大的灵活性。
图结构(SOP)可被定义为在解码顺序中连续的一个或多个编码图,其中解码顺序中的第一编码的图是最低时间子层处的参考图,并且可能除了解码顺序中的第一编码的图之外,没有任何编码的图是RAP图。前一SOP中的所有图在解码顺序中位于当前SOP中的所有图之前,并且下一SOP中的所有图在解码顺序中位于当前SOP中的所有图之后。SOP可以表示分层和重复的帧间预测结构。术语“图组(GOP)”有时可以与术语“SOP”互换地使用并且具有与SOP相同的语义。
H.264/AVC和HEVC的比特流语法指示特定图是否用于任何其它图的帧间预测的参考图。具有任何编码类型(I、P、B)的图在H.264/AVC和HEVC中可以是参考图或非参考图。
在HEVC中,使用参考图集(RPS)语法结构和解码过程。对图有效或活动的参考图集包括用作图的参考的所有参考图,以及对于解码顺序中的任何后续图保持标记为“用于参考”的所有参考图。参考图集有六个子集,分别被称为“RefPicSetStCurr0”(又称为“RefPicSetStCurrBefore”)、“RefPicSetStCurr1”(又称为“RefPicSetStCurrAfter”)、“RefPicSetStFoll0”、“RefPicSetStFoll1”、“RefPicSetLtCurr”以及“RefPicSetLtFoll”。“RefPicSetStFoll0”和“RefPicSetStFoll1”也可以被视为共同形成一个子集“RefPicSetStFoll”。六个子集的注释如下。“Curr”是指包括在当前图的参考图列表中的参考图,因此可以用作当前图的帧间预测参考。“Foll”是指未包括在当前图的参考图列表中,但是可以在解码顺序中的后续图中用作参考图的参考图。“St”是指短期参考图,其通常可以通过其POC值的一定数量的最低有效位来识别。“Lt”是指长期参考图,其被具体地识别,并且通常其相对于当前图的POC值的差大于可以由所提到的特定数量的最低有效位表示的差。“0”是指POC值小于当前图的POC值的那些参考图。“1”是指POC值大于当前图的POC值的那些参考图。“RefPicSetStCurr0”、“RefPicSetStCurr1”、“RefPicSetStFoll0”和“RefPicSetStFoll1”统称为参考图集的短期子集。“RefPicSetLtCurr”和“RefPicSetLtFoll”统称为参考图集的长期子集。
在HEVC中,可以在序列参数集中规定参考图集,并且考虑通过参考图集的索引在切片报头中使用参考图集。还可以在切片报头中规定参考图集。参考图集可以独立编码,或者可以根据另一参考图集(被称为帧间RPS预测)预测。在这两种类型的参考图集编码中,另外针对每个参考图发送标志(“used_by_curr_pic_X_flag”),该标志指示参考图被当前图引用(包括在*Curr列表中)还是不被当前图引用(包括在*Foll中列表中)。包括在由当前切片使用的参考图集中的图被标记为“用于参考”,并且不在由当前切片使用的参考图集中的图被标记为“未用于参考”。如果当前图是IDR图,则“RefPicSetStCurr0”、“RefPicSetStCurr1”、“RefPicSetStFoll0”、“RefPicSetStFoll1”、“RefPicSetLtCurr”和“RefPicSetLtFoll”都被设置为空。
可以在编码器和/或解码器中使用解码图缓冲器(DPB)。缓冲解码的图有两个原因:用于帧间预测中的参考以及用于将解码图重新排序成输出顺序。由于H.264/AVC和HEVC为参考图标记和输出重新排序提供了很大的灵活性,因此用于参考图缓冲和输出图缓冲的单独的缓冲器可能浪费存储器资源。因此,DPB可以包括用于参考图和输出重新排序的统一解码图缓冲过程。当解码图不再用作参考并且不需要输出时,可以从DPB移除解码图。
在H.264/AVC和HEVC的许多编码模式中,用于帧间预测的参考图由参考图列表的索引来指示。该索引可以用可变长度编码来编码,这通常使得较小的索引针对对应的语法元素具有较短的值。在H.264/AVC和HEVC中,针对每个双向预测(B)切片生成两个参考图列表(参考图列表0和参考图列表1),并且针对每个帧间编码(P)切片形成一个参考图列表(参考图列表0)。
参考图列表(诸如参考图列表0和参考图列表1)通常经由两个步骤构造:首先,生成初始参考图列表。初始参考图列表例如可以基于“frame_num”、POC、“temporal_id”(或“TemporalId”等)或有关预测层次结构(诸如GOP结构)的信息或其任何组合来生成。接着,可以通过包含在切片报头中的参考图列表重新排序(RPLR)命令(也被称为参考图列表修改语法结构)对初始参考图列表进行重新排序。如果使用参考图集,则可以初始化参考图列表0以首先包含“RefPicSetStCurr0”,然后包含“RefPicSetStCurr1”,接着包含“RefPicSetLtCurr”。可以初始化参考图列表1以首先包含“RefPicSetStCurr1”,然后包含“RefPicSetStCurr0”。在HEVC中,可以通过参考图列表修改语法结构来修改初始参考图列表,其中可以通过列表的条目索引来识别初始参考图列表中的图。换句话说,在HEVC中,参考图列表修改被编码为以下语法结构:该语法结构包括最终参考图列表中的每个条目上的循环,其中每个循环条目是初始参考图列表的固定长度编码索引并且指示最终参考图列表中的以升序排列的图。
包括H.264/AVC和HEVC在内的许多编码标准可以具有解码过程以派生参考图列表的参考图索引,该索引可用于指示多个参考图中的哪一个用于特定块的帧间预测。在一些帧间编码模式中,参考图索引可以由编码器编码到比特流中,在另一些帧间编码模式中,例如可以使用相邻块导出(例如,通过编码器和解码器)该参考图索引。
为了在比特流中有效地表示运动矢量,可以相对于块特定的预测运动矢量差分地编码运动矢量。在许多视频编解码器中,预测的运动矢量以预定方式创建,例如通过计算相邻块的编码或解码运动矢量的中值。创建运动矢量预测的另一方式(有时被称为高级运动矢量预测(AMVP))是根据时间参考图中的相邻块和/或共同定位的块生成候选预测的列表,并且信号通知所选择的候选者作为运动矢量预测器。除了预测运动矢量值之外,还可以预测先前编码/解码的图的参考索引。通常根据时间参考图中的相邻块和/或共同定位的块预测参考索引。通常禁止跨切片边界的运动矢量差分编码。
可伸缩视频编码可以指示这样的编码结构:其中一个比特流可以包含内容的多个表示,例如,以不同的比特率、分辨率或帧速率。在这些情况下,接收器可以根据其特性(例如,最匹配显示设备的分辨率)提取所需的表示。或者,服务器或网络元件可以根据例如接收器的网络特性或处理能力提取要发送到接收器的比特流的部分。可以通过仅解码可伸缩比特流的某些部分来产生有意义的解码表示。可伸缩比特流通常包括“基础层”,其提供可用的最低质量视频,以及一个或多个增强层,这些增强层在与较低层一起接收和解码时增强视频质量。为了提高增强层的编码效率,该层的编码表示通常取决于较低层。例如。可以根据较低层预测增强层的运动和模式信息。类似地,较低层的像素数据可用于创建增强层的预测。
在一些可伸缩视频编码方案中,视频信号可被编码到基础层以及一个或多个增强层中。增强层例如可以增强时间分辨率(即,帧速率)、空间分辨率,或仅增强由另一层或其一部分表示的视频内容的质量。每个层连同其所有相关层是视频信号的一个表示,例如,以特定空间分辨率,时间分辨率和质量层级进行表示。在本文中,我们将伸缩层及其所有相关层称为“伸缩层表示”。可以提取和解码对应于伸缩层表示的可伸缩比特流的部分,以便以特定保真度产生原始信号的表示。
可伸缩性模式或可伸缩性维度可包括但不限于以下内容:
-质量可伸缩性:基础层图以低于增强层图的质量被编码,这例如可以在基础层中使用比在增强层中更大量化参数值(即,用于变换系数量化的更大量化步长)来实现。
-空间可伸缩性:基础层图以低于增强层图的分辨率(即,具有更少的样本)被编码。空间可伸缩性和质量可伸缩性,特别是其粗粒度可伸缩性类型,有时可被视为相同类型的可伸缩性。
-位深可伸缩性:基础层图以低于增强层图的位深(例如,10或12比特)的位深(例如,8比特)被编码。
-动态范围可伸缩性:伸缩层表示使用不同色调映射函数和/或不同光学传递函数获得的不同动态范围和/或图像。
-色度格式可伸缩性:基础层图在色度样本阵列(例如,以4:2:0色度格式编码)中提供的空间分辨率低于在增强层图(例如,以4:4:4格式)中提供的空间分辨率。
-色域可扩展性:增强层图具有比基础层图更丰富/更宽的颜色表示范围——例如,增强层可以具有UHDTV(ITU-R BT.2020)色域,基础层可以具有ITU-R BT.709色域。
-查看可伸缩性,也可被称为多视点编码。基础层表示第一视图,而增强层表示第二视图。
-深度可伸缩性,其也可被称为深度增强编码。比特流的一个层或一些层可以表示纹理视图,而其它一个或多个层可以表示深度视图。
-感兴趣区域可扩展性(如下所述)。
-交织到渐进可伸缩性(也被称为段到帧(field-to-frame)可伸缩性):基础层的编码的交织源内容材料通过增强层增强以表示渐进源内容。
-混合编解码器可伸缩性(也被称为编码标准可伸缩性):在混合编解码器可伸缩性中,基础层和增强层的比特流语法、语义和解码过程在不同的视频编码标准中规定。因此,基础层图根据与增强层图不同的编码标准或格式来编码。例如,基础层可以用H.264/AVC编码,增强层可以用HEVC多层扩展编码。
应当理解,许多可伸缩性类型可以组合并一起应用。例如,可以组合色域可伸缩性和位深可伸缩性。
术语“层”可以在任何类型的可伸缩性的上下文中使用,包括视图可伸缩性和深度增强。增强层可以指示任何类型的增强,诸如SNR、空间、多视点、深度、位深、色度格式和/或色域增强。基础层可以指示任何类型的基础视频序列,诸如基础视图、SNR/空间可伸缩性的基础层,或深度增强视频编码的纹理基础视图。
目前正在研究和开发用于提供三维(3D)视频内容的各种技术。可以认为在立体视频或双视点视频中,为左眼呈现一个视频序列或视图,而为右眼呈现平行的视图。对于能够进行视点切换的应用或对于同时呈现大量视图并且让观看者从不同视点观看内容的自动立体显示器,可能需要两个以上的平行视图。
“视图”可被定义为表示一个相机或视点的图序列。表示视图的图也可以称作视图分量。换句话说,视图分量可被定义为单个访问单元中的视图的编码表示。在多视点视频编码中,多于一个的视图在比特流中进行编码。由于视图通常旨在被显示在立体或多视点自动立体显示器上或者被用于其它3D布置,因此它们通常表示相同的场景,并且它们在内容方面部分重叠,尽管表示对内容的不同视点。因此,可以在多视点视频编码中使用视点间预测以利用视点间相关性并提高压缩效率。实现视点间预测的一种方式是将一个或多个其它视图的一个或多个解码图包括在驻留在第一视图内的正被编码或解码的图的参考图列表中。视图可伸缩性可以指这种多视点视频编码或多视点视频比特流,其使得能够移除或省略一个或多个编码视图,而所得到的比特流保持一致性并且表示具有比原始更少的视图数量的视频。感兴趣区域(ROI)编码可被定义为是指以更高保真度对视频内的特定区域进行编码。
ROI可伸缩性可被定义为这样一种可伸缩性:其中增强层仅增强参考层图的一部分,例如,在空间上、在质量方面、在位深方面和/或沿着其它可扩展性维度增强。由于ROI可伸缩性可以与其它类型的可伸缩性一起使用,因此可以考虑形成可伸缩性类型的不同分类。对于具有不同要求的ROI编码存在若干不同的应用,这可以通过使用ROI可伸缩性来实现。例如,可以发送增强层以增强基础层中的区域的质量和/或分辨率。接收增强和基础层比特流的解码器可以同时解码这两个层并将解码图叠加在彼此之上并显示最终图。
可以断定参考层图和增强层图的空间对应关系,或者可以用一种或多种类型的所谓参考层位置偏移来指示参考层图和增强层图的空间对应关系。在HEVC中,参考层位置偏移可以由编码器包括在PPS中并且由解码器从PPS解码。参考层位置偏移可用于但不限于实现ROI可伸缩性。参考层位置偏移可以包括伸缩的参考层偏移、参考区域偏移和重采样相位集中的一个或多个。伸缩的参考层偏移可被视为指定当前图中的与参考层中的解码图中的参考区域的左上亮度样本并置的样本之间的水平和垂直偏移,以及当前图中的与参考层中的解码图中的参考区域的右下亮度样本并置的样本之间的水平和垂直偏移。另一种方式是考虑伸缩的参考层偏移指定上采样的参考区域的角样本相对于增强层图的相应角样本的位置。可以对伸缩的参考层偏移值进行签名。参考区域偏移可被视为指定参考层中的解码图中的参考区域的左上亮度样本与相同解码图的左上亮度样本之间的水平和垂直偏移以及参考层中的解码图中的参考区域的右下亮度样本与相同解码图的右下亮度样本之间的水平和垂直偏移。可以对参考区域偏移进行签名。重采样相位集可被视为指定在层间预测的源图的重采样过程中使用的相位偏移。可以针对亮度和色度分量提供不同的相位偏移。
在帧兼容立体视频(也被称为立体视频的帧封装)中,在编码器侧执行将立体对空间封装到单个帧中,作为编码的预处理步骤,然后使用传统的2D视频编码方案编码帧封装的帧。由解码器产生的输出帧包含立体对的组成帧。
在典型的操作模式中,每个视图的原始帧和封装的单个帧的空间分辨率具有相同的分辨率。在这种情况下,编码器在封装操作之前对立体视频的两个视图进行下采样。空间封装例如可以使用并排(side-by-side)或上下(top-bottom)格式,并且应当相应地执行下采样。
例如,由于以下原因,帧封装可优于多视点视频编码(例如,H.264/AVC的MVC扩展或H.265/HEVC的MV-HEVC扩展):
-后期制作工作流程可针对单个视频信号进行定制。一些后期制作工具可能无法处理两个单独的图序列和/或可能无法使单独的图序列保持彼此同步。
-分发***,例如传输协议,可能仅支持单个编码序列和/或可能无法使单独的编码序列彼此同步和/或可能需要更多缓冲或延迟来使单独的编码序列保持彼此同步。
-利用多视点视频编码工具对比特流进行解码可能需要支持播放器中不可用的特定的编码模式。例如,许多智能手机支持H.265/HEVC Main配置文件解码,但无法处理H.265/HEVC Multiview Main配置文件解码,即使它与Main配置文件相比只需要高级添加。
一些可伸缩视频编码方案可能要求IRAP图跨层对齐,使得访问单元中的所有图都是IRAP图或者访问单元中没有任何图是IRAP图。其它可伸缩视频编码方案(例如HEVC的多层扩展)可以允许未对齐的IRAP图(即访问单元中的一个或多个图)是IRAP图,而访问单元中的一个或多个其它图不是IRAP图。具有IRAP图或类似可跨层对齐的图的可伸缩比特流例如可用于在基础层中提供更频繁的IRAP图,其中这些图具有更小的编码大小,例如因为它们具有更小的空间分辨率。用于解码的分层启动过程或机制可以包括在视频解码方案中。因此,当基础层包含IRAP图时,解码器可以开始解码比特流,并且当其它层包含IRAP图时,解码器可以逐步开始解码其它层。换句话说,在解码机制或过程的分层启动中,当在解码过程中解码来自附加的增强层的后续图时,解码器逐渐增加解码层的数量(其中层可表示空间分辨率、质量水平、视点、诸如深度的附加要素,或其组合的增强)。可以将解码层数量的逐渐增加视为例如图像质量的逐步改进(在质量和空间可伸缩性的情况下)。
分层启动机制可以在特定增强层中针对解码顺序中的第一图的参考图生成不可用图。或者,解码器可以省略在解码顺序中位于IRAP图(其中从IRAP图开始进行层解码)之前的图的解码。可以省略的这些图可以由编码器或比特流内的另一实体特定标记。例如,可以针对其使用一个或多个特定的NAL单元类型。无论是通过NAL单元类型特定标记,还是例如由解码器断定,这些图都可被称为跨层随机访问跳过(CL-RAS)图。解码器可以省略所生成的不可用图和解码的CL-RAS图的输出。
可以以两种基本方式支持可伸缩性。通过引入新的编码模式以根据可伸缩表示的较低层执行像素值或语法的预测,或者通过将较低层图放置到较高层的参考图缓冲器(例如,解码图缓冲器DPB)中。第一种方法可能更灵活,因此在大多数情况下可以提供更好的编码效率。然而,第二种基于参考帧的可伸缩性方法可以在对单层编解码器具有最小改变的情况下有效地实现,同时仍然实现大部分可用的编码效率增益。基本上,基于参考帧的可伸缩性编解码器可以通过针对所有层使用相同的硬件或软件实现来实现,只需注意外部装置对DPB的管理。
用于质量可伸缩性(也被称为信噪比或SNR)和/或空间可伸缩性的可伸缩视频编码器可以按照下面的方式实现。对于基础层,可以使用传统的不可伸缩视频编码器和解码器。基础层的重建/解码图包括在参考图缓冲器和/或增强层的参考图列表中。在空间可伸缩性的情况下,可以在将重建/解码的基础层图***到增强层图的参考图列表之前对其进行上采样。可以将基础层解码的图***到参考图列表中,用于类似于增强层的解码的参考图那样对增强层图进行编码/解码。因此,编码器可以选择基础层参考图作为帧间预测参考,并且在编码比特流中指示其与参考图索引一起使用。解码器从比特流(例如,从参考图索引)解码基础层图用作增强层的帧间预测参考。当解码的基础层图用作增强层的预测参考时,将其称为层间参考图。
虽然上一段描述了具有两个可伸缩性层(增强层和基础层)的可伸缩视频编解码器,但是需要理解,该描述可以推广到具有多于两层的可伸缩性层级中的任何两个层。在这种情况下,第二增强层可以取决于编码和/或解码过程中的第一增强层,因此第一增强层可以被视为第二增强层的编码和/或解码的基础层。此外,需要理解,可以存在来自增强层的参考图缓冲器和参考图列表中的多于一个层的层间参考图,并且可以认为这些层间参考图中的每一个都驻留在被编码和/或解码的增强层的基础层或参考层中。此外,需要理解,可以替代地或附加地进行参考层图上采样之外的其它类型的层间处理。例如,参考层图样本的位深可以被转换为增强层的位深和/或样本值可以经历从参考层的颜色空间到增强层的颜色空间的映射。
可伸缩视频编码和/或解码方案可以使用多环编码和/或解码,其特征如下所述。在编码/解码中,可以重建/解码基础层图以用作编码/解码顺序中的位于同一层的后续图的运动补偿参考图或用作层间(或视点间或分量间)预测的参考。重建/解码的基础层图可以存储在DPB中。同样可以重建/解码增强层图以用作编码/解码顺序中的位于同一层的后续图的运动补偿参考图或用作更高增强层(如果有)层间(或视点间或分量间)预测的参考。除了重建/解码的样本值之外,基础/参考层的语法元素值或从基础/参考层的语法元素值导出的变量可用于层间/分量间/视点间预测。
可以将层间预测定义为取决于与来自当前图(被编码或解码)的层不同的层的参考图的数据元素(例如,样本值或运动矢量)的预测。存在许多类型的层间预测,并且可以在可伸缩视频编码器/解码器中应用。可用的层间预测类型例如可以取决于对比特流或比特流内的特定层进行编码所基于的编码配置文件,或者当解码时,可以取决于比特流或比特流内的特定层被指示符合的编码配置文件。替代地或附加地,可用的层间预测类型可取决于可伸缩性类型或正在使用的可伸缩编解码器或视频编码标准修订(例如,SHVC、MV-HEVC或3D-HEVC)的类型。
层间预测的类型可以包括但不限于以下中的一个或多个:层间样本预测、层间运动预测、层间残差预测。在层间样本预测中,用于层间预测的源图的重建样本值的至少一个子集被用作预测当前图的样本值的参考。在层间运动预测中,用于层间预测的源图的运动矢量的至少一个子集被用作预测当前图的运动矢量的参考。通常,预测与运动矢量相关联的参考图的信息也包括在层间运动预测中。例如,运动矢量的参考图的参考索引可以是层间预测的和/或图顺序计数或参考图的任何其它标识可以是层间预测的。在一些情况下,层间运动预测还可以包括块编码模式、报头信息、块分割和/或其它类似参数的预测。在一些情况下,编码参数预测(诸如块分割的层间预测)可以被视为另一类型的层间预测。在层间残差预测中,用于层间预测的源图的所选块的预测误差或残差用于预测当前图。在诸如3D-HEVC的多视点加(plus)深度编码中,可以应用跨分量层间预测,其中第一类型的图(诸如深度图)可以影响第二类型的图(诸如传统的纹理图)的层间预测。例如,可应用视差补偿的层间样本值和/或运动预测,其中视差可至少部分地从深度图导出。
直接参考层可被定义为可用于另一层的层间预测的层,其中该层是该另一层的直接参考层。直接预测层可被定义为另一层是其直接参考层的层。间接参考层可被定义为不是第二层的直接参考层而是第三层的直接参考层,该第三层是另一层的直接参考层或直接参考层的间接参考层,其中该层是另一层的间接参考层。间接预测层可被定义为另一层是其间接参考层的层。独立层可被定义为不具有直接参考层的层。换句话说,不使用层间预测来预测独立层。非基础层可被定义为基础层以外的任何其它层,并且基础层可被定义为比特流中的最低层。独立的非基础层可被定义为既是独立层又是非基础层的层。
用于层间预测的源图可被定义为解码图,该解码图是可用作预测当前图的参考图的层间参考图,或者用于导出可用作预测当前图的参考图的层间参考图。在多层HEVC扩展中,层间参考图包括在当前图的层间参考图集中。层间参考图可被定义为可用于当前图的层间预测的参考图。在编码和/或解码过程中,层间参考图可以被视为长期参考图。
可能需要用于层间预测的源图与当前图在同一访问单元中。在某些情况下,例如当不需要重采样、运动场映射或其它层间处理时,用于层间预测的源图和相应的层间参考图可以是相同的。在某些情况下,例如当需要重新采样以使参考层的采样网格与当前图(被编码或解码)的层的采样网格匹配时,应用层间处理以从用于层间预测的源图导出层间参考图。在下面的段落中描述了这种层间处理的示例。
层间样本预测可以包括用于层间预测的源图的样本阵列的重采样。编码器和/或解码器例如可以基于增强层及其参考层构成的对的参考层位置偏移推导出该对的水平可伸缩因子(例如,存储在变量“ScaleFactorX”中)和垂直可伸缩因子(例如,存储在变量“ScaleFactorY”中)。如果可伸缩因子中的任一个或全部两个不等于“1”,则可以重采样用于层间预测的源图以生成用于预测增强层图的层间参考图。用于重采样的过程和/或滤波器例如可以在编码标准中预定义和/或在比特流中由编码器指示(例如,作为预定义的重采样过程或滤波器中的索引)和/或由解码器从比特流解码。不同的重采样过程可以由编码器指示和/或由解码器解码和/或由编码器和/或解码器根据可伸缩因子的值断定。例如,当两个可伸缩因子都小于“1”时,可以断定预定义的下采样过程;当两个可伸缩因子都大于“1”时,可以断定预定义的上采样过程。附加地或替代地,不同的重采样过程可以由编码器指示和/或由解码器解码和/或由编码器和/或解码器根据处理哪个样本阵列来断定。例如,可以断定第一重采样过程用于亮度样本阵列,并且可以断定第二重采样过程用于色度样本阵列。
SHVC允许使用基于3D查找表(LUT)的加权预测或颜色映射过程来实现(但不限于)色域可伸缩性。3D LUT方法可以描述如下。每个颜色分量的样本值范围可以首先划分成两个范围,形成高达2x2x2的八分圆,然后可以进一步将亮度范围划分成四个部分,从而产生高达8x2x2的八分圆。在每个八分圆内,应用交叉颜色分量线性模型来执行颜色映射。对于每个八分圆,将四个顶点编码到比特流中和/或从比特流解码,以表示八分圆内的线性模型。对于每个颜色分量,颜色映射表被分别编码到比特流中和/或从比特流中解码。颜色映射可以被认为涉及三个步骤:首先,确定给定参考层样本三元组(Y,Cb,Cr)所属的八分圆。其次,可以通过应用颜色分量调整过程来对齐亮度和色度的样本位置。第三,应用为所确定的八分圆指定的线性映射。映射可以具有跨分量性质,即,一个颜色分量的输入值可以影响另一颜色分量的映射值。附加地,如果还需要层间重采样,则重采样过程的输入是已经颜色映射的图。颜色映射可以(但不需要)将具有第一位深的样本映射到具有另一位深的样本。
可以根据下面的方式实现层间运动预测。诸如H.265/HEVC的TMVP的时间运动矢量预测过程可用于利用不同层之间的运动数据的冗余。可以通过下面的方式实现此目的:当对经解码的基础层图进行上采样时,基础层图的运动数据也被映射到增强层的分辨率。如果增强层图利用根据基础层图的运动矢量预测,例如,通过诸如H.265/HEVC的TMVP的时间运动矢量预测机制,则对应的运动矢量预测器源自映射的基础层运动场。这样,可以利用不同层的运动数据之间的相关性来提高可伸缩视频编码器的编码效率。在SHVC等中,可以通过将层间参考图设置为用于TMVP推导的并置参考图来执行层间运动预测。
与MVC类似,在MV-HEVC中,视点间参考图可以包括在正被编码或解码的当前图的参考图列表中。SHVC使用多环解码操作(与H.264/AVC的SVC扩展不同)。可以认为SHVC使用基于参考索引的方法,即,层间参考图可以包括在正被编码或解码的当前图的一个或多个参考图列表中(如上所述)。
对于增强层编码,HEVC基础层的概念和编码工具可用于SHVC、MV-HEVC等中。然而,在参考层中采用已经编码的数据(包括重建的图样本和运动参数,也被称为运动信息)以便有效地编码增强层的附加层间预测工具可以集成到SHVC、MV-HEVC和/或相似的编解码器中。
编码标准或***可以是指术语“操作点”或类似的术语,其可以指示下面执行解码操作的伸缩层和/或子层和/或可以与包括被解码的伸缩层和/或子层的子比特流相关联。在HEVC中,操作点被定义为通过子比特流提取过程操作而根据另一比特流创建的比特流,其中另一比特流、目标最高“TemporalId”和目标层标识符列表作为输入。
HEVC的VPS规定了层集和这些层集的HRD参数。层集可以在子比特流提取过程中用作目标层标识符列表。在HEVC中,层集可以被定义为在通过子比特流提取过程操作而根据另一比特流创建的比特流内表示的一组层,其中另一比特流、等于“6”的目标最高“TemporalId”、等于与层集相关联的层标识符列表的目标层标识符列表作为输入。
输出层可以被定义为其解码图通过解码过程输出的层。输出层可以取决于多层比特流的哪个子集被解码。通过解码过程输出的图可以被进一步处理,例如,可以执行从YUV颜色空间到RGB的颜色空间转换,并且可以显示它们。然而,进一步的处理和/或显示可以被认为是解码器和/或解码过程的外部处理,并且可能不会发生。
在多层视频比特流中,操作点定义可以包括考虑目标输出层集。例如,操作点可以被定义为通过子比特流提取过程操作而根据另一比特流创建的比特流,其中另一比特流、目标最高时间子层(例如,目标最高“TemporalId”)和目标层标识符列表作为输入,并且与输出层集相关联。可替代地,当引用操作点和相关联的输出层集时,可以使用诸如输出操作点的另一术语。例如,在MV-HEVC/SHVC中,输出操作点可以被定义为通过子比特流提取过程操作而根据输入比特流创建的比特流,其中输入比特流、目标最高“TemporalId”和目标层标识符列表作为输入,并且与输出层集相关联。
输出层集(OLS)可以被定义为由特定的层集之一的层组成的层集,其中该层集中的一个或多个层被指示为输出层。输出层可以被定义为输出层集的一层,其中当解码器和/或HRD使用该输出层集作为目标输出层集执行操作时,输出该层。在MV-HEVC/SHVC中,变量“TargetOlsIdx”可以通过将“TargetOlsIdx”设置为等于作为目标输出层集的输出层集的索引来指定哪个输出层集是目标输出层集。目标输出层集可以被定义为索引等于“TargetOlsIdx”的输出层集。“TargetOlsIdx”例如可以由HRD设置和/或可以由外部装置设置,例如由播放器等通过解码器提供的接口设置。在MV-HEVC/SHVC中,输出层可以被定义为当“TargetOlsIdx”等于输出层集的索引时输出的输出层集的层。
发送器、网关、客户端等可以选择可伸缩视频比特流的发送层和/或子层。术语“层提取”、“层的提取”或“层向下切换”可以是指发送的层少于发送器、网关、客户端等接收的比特流中可用层。层向上切换可以是指与发送器、网关、客户端等执行层向上切换之前发送的层相比发送更多的层,即重新开始传输先前在层向下切换时停止传输的一个或多个层。类似于层向下切换和/或向上切换,发送器、网关、客户端等可以执行时间子层的向下和/或向上切换。发送器、网关、客户端等也可以执行层和子层的向下切换和/或向上切换。层和子层的向下切换和/或向上切换可以在同一访问单元等中执行(即,几乎同时地),或者可以在不同的访问单元等中执行(即,实际上在不同的时间)。
虽然恒定的输出层集非常适于其中最高层在每个访问单元中保持不变的用例和比特流,但是它们可能不支持最高层在不同访问单元之间变化的用例。因此,已经提出了编码器可以指定在比特流内使用替代输出层,并且响应于替代输出层的指定用途,解码器在同一访问单元中的输出层内没有图的情况下从替代输出层输出解码图。存在多种有关如何指示替代输出层的可能性。例如,如HEVC中所规定的,替代输出层集机制可以被约束为仅用于仅包含一个输出层的输出层集,并且输出层设置标志(HEVC中的“alt_output_layer_flag[olsIdx]”)可用于指定输出层的任何直接或间接参考层可以用作输出层集的输出层的替代输出层。当支持多于一个的替代输出层时,可以指定输出在向下一直到所指示的最小替代输出层的层标识符的降序中位于访问单元中的第一直接或间接层间参考图。
根据当前在ISO/IEC 14496-15中定义的样本条目代码(例如,“hvc1”、“hev1”)的样本由一系列没有起始码的NAL单元组成,每个单元以其字节计数为前缀。字节计数字段的长度可以在样本条目中指示。
因特网媒体类型(也被称为MIME(多用途因特网邮件扩展)类型)被各种应用用于识别资源或文件的类型。MIME类型由媒体类型、子类型和零个或多个可选参数组成。
如上所述,MIME是电子邮件协议的扩展,其使得能够在因特网上发送和接收不同种类的数据文件,例如,视频和音频、图像、软件等。因特网媒体类型是用于在因特网上指示文件包含的数据类型的标识符。这种因特网媒体类型也可被称为内容类型。存在几种可以指示不同媒体格式的MIME类型/子类型组合。内容类型信息可以在媒体传输开始时由发送实体包括在MIME报头中。因此,接收实体可能需要检查这种媒体内容的细节以确定在给定可用的编解码器集的情况下是否可以呈现特定元素。尤其是当终端***具有有限的资源,或者与终端***的连接具有有限的带宽时,仅从内容类型知道是否可以呈现内容可能是有帮助的。
两个参数“codecs”和“profiles”被规定用于各种MIME类型或类型/子类型组合,以允许明确指定由包含在其中的媒体格式采用的编解码器,或整个容器格式的配置文件。
通过用指示呈现所包含的媒体的特定编解码器标记内容,接收***可以确定终端***是否支持编解码器,如果不支持,则可以采取适当的动作(例如拒绝内容,发送情况通知,将内容转码为支持的类型,获取和安装所需的编解码器,进一步检查以确定是否足以支持所指示的编解码器的子集等)。对于从ISOBMFF导出的文件格式,可以认为“codecs”参数包括一个或多个列表项的逗号分隔列表。当“codecs”参数的列表项表示ISOBMFF兼容文件的轨道时,列表项可以包括轨道的样本条目的四字符代码。列表项还可以指示由轨道样本包含的比特流符合的编码配置文件(例如,HEVC Main配置文件)。
配置文件MIME参数可以向接收器提供内容符合的规范的总体指示。这表明容器格式及其内容与某些规范的兼容性。接收器可以通过检查它支持哪些声明的配置文件及其含义来计算出它可以处理和呈现内容的程度。可以指定ISOBMFF文件的“profile”参数以包括包含在文件中的兼容类型(brand)列表。
统一资源标识符(URI)可被定义为用于标识资源名称的字符串。这种标识使得能够使用特定协议通过网络与资源的表示进行交互。通过指定URI的具体语法和相关协议的方案定义URI。统一资源定位符(URL)和统一资源名称(URN)是URI的形式。URL可以被定义为标识Web资源并指定对资源表示进行操作或获得资源表示的方式,从而指定资源的主要访问机制和网络位置的URI。URN可以定义为在特定名称空间中按名称标识资源的URI。URN可用于在不暗示资源位置或访问方式的情况下识别资源。
超文本传输协议(HTTP)已被广泛用于通过因特网,诸如在视频流传输应用中传送实时多媒体内容。
针对基于HTTP的自适应流传输(诸如
Figure GDA0003797469080000501
平滑流传输、
Figure GDA0003797469080000503
自适应HTTP实时流传输和
Figure GDA0003797469080000502
动态流传输等)的若干商业方案已经被启动,并且已经开展了标准化项目。自适应HTTP流传输(AHS)在第三代合作伙伴计划(3GPP)分组交换流传输(PSS)服务(3GPP TS26.234发布9:“透明端到端分组交换流传输服务(PSS);协议和编解码器”)中首先被标准化。MPEG将3GPP AHS发布9作为MPEG DASH标准(ISO/IEC 23009-1:“基于HTTP的动态自适应流传输(DASH)-第1部分:媒体呈现描述和片段格式”,国际标准,第2版,2014年)的起点。MPEG DASH和3GPP-DASH在技术上彼此接近,因此可以将其统称为DASH。以下将DASH的一些概念、格式和操作描述为其中可以实现实施例的视频流传输***的示例。本发明的各方面不限于DASH,而是针对在其上可以部分或全部实现本发明的一个可能的基础而进行描述。
在DASH中,多媒体内容可被存储在HTTP服务器上并且可使用HTTP传送。内容可以两部分存储在服务器上:媒体呈现描述(MPD),其描述可用内容、其各种替代、它们的URL地址以及其它特征的清单;以及片段,其在单个或多个文件中以块的形式的包含实际多媒体比特流。MPD为客户端提供建立HTTP上的动态自适应流传输的必要信息。MPD包含描述诸如每个片段的HTTP统一资源定位符(URL)的媒体呈现的信息以做出GET片段请求。为了播放内容,DASH客户端例如可通过使用HTTP、电子邮件、拇指驱动器、广播或其它传输方法来获取MPD。通过解析MPD,DASH客户端可了解节目定时、媒体内容可用性、媒体类型、分辨率、最小和最大带宽、以及多媒体要素的各种编码替代的存在、可访问性特征和所需的数字权限管理(DRM)、网络上的媒体要素位置、以及其它内容特征。使用该信息,DASH客户端可选择适当的编码替代,并通过例如使用HTTP GET请求取回片段来开始流传输内容。在适当缓冲以容许网络吞吐量变化后,客户端可继续取回后续片段,并且还监控网络带宽波动。客户端可通过取回不同替代(具有较低或较高比特率)的片段以维持足够的缓冲来决定如何适应可用带宽。
在DASH中,层次数据模型被用于构建媒体呈现,如图5所示。媒体呈现由一个或多个时段的序列组成,每个时段包含一个或多个群组,每个群组包含一个或多个自适应集,每个自适应集包含一个或多个呈现;每个呈现由一个或多个片段组成。呈现是媒体内容或其子集的替代选择之一,其通常因编码选择而不同,例如,因比特率、分辨率、语言、编解码器等而不同。片段包含某时长的媒体数据,以及以解码和呈现所包括的媒体内容的元数据。片段由URI标识,并且通常可以通过HTTP GET请求来请求。片段可被定义为与HTTP-URL相关联的并且可选地与由MPD规定的字节范围相关联的数据单元。
DASH MPD符合可扩展标记语言(XML),并且因此通过在XML中定义的元素和属性来规定。可以使用以下约定来规定MPD:在XML文档中的元素可以通过大写的第一个字母来标识,并且可以以粗体显示为元素。为了表示元素“Element1”被包含在另一个元素“Element2”中,可以写成“Element2.Element1”。如果元素的名称由两个或更多的组合词组成,则可以使用驼峰式格式(camel-casing),例如“ImportantElement”。元素可以只出现一次,或者可以通过<minOccurs>...<maxOccurs>来定义最小和最大存在(occurrence)。XML文档中的属性可以通过小写的第一个字母来标识,并且它们前面可以有'@'符号,例如,“@attribute”。为了指向元素“Element”中包含的特定属性“@attribute”,可以写成“Element@attribute”。如果属性的名称由两个或更多的组合词组成,则可以在第一个词之后使用驼峰式格式,例如,“@veryImportantAttribute”。属性可能已经在XML中指定如强制(M)、可选(O)的状态,可选具有默认值(OD)和有条件强制(CM)。
在DASH中,独立呈现可以被定义为可以独立于任何其它呈现来处理的呈现。独立呈现可以被理解为包括独立比特流或比特流的独立层。从属呈现可以被定义为这样的呈现:对于该呈现,来自其补充呈现的片段对于呈现和/或解码所包含的媒体内容要素是必需的。从属呈现可以被理解为例如包括预测的可伸缩比特流层。补充呈现可以被定义为补充至少一个从属呈现的呈现。补充呈现可以是独立呈现或从属呈现。从属呈现可以由包含“@dependencyId”属性的“Representation”元素描述。从属呈现可以被视为正常呈现,只是它们依赖于一组补充呈现以进行解码和/或呈现。“@dependencyId”包含所有补充呈现的“@id”属性的值,即,呈现和/或解码包含在该从属呈现中的媒体内容要素所必需的呈现。
在DASH的上下文中可以使用以下定义:媒体内容要素或媒体要素可被定义为媒体内容的一个连续要素,其具有可被单独编码到媒体流中的指定媒体要素类型。媒体内容可被定义为一个媒体内容时段或媒体内容时段的连续序列。媒体内容要素类型可被定义为诸如音频、视频或文本的单一类型的媒体内容。媒体流可被定义为媒体内容要素的编码版本。
初始化片段可以被定义为包含呈现封装在媒体片段中的媒体流所必需的元数据的片段。在基于ISOBMFF的片段格式中,初始化片段可以包括电影框('moov'),其可能不包括任何样本的元数据,即样本的任何元数据在'moof'框中提供。
媒体片段包含用于以正常速度播放的特定时长的媒体数据,这种时长被称为媒体片段时长或片段时长。内容制作者或服务提供者可以根据服务的期望特性来选择片段时长。例如,可以在实时服务中使用相对较短的片段时长来实现短的端到端延时。其原因是片段时长通常是DASH客户端感知的端到端延时的下限,因为片段是生成DASH的媒体数据的离散单元。内容生成通常以使得整个媒体数据片段可用于服务器的方式完成。此外,许多客户端实现使用片段作为GET请求的单位。因此,在现场服务的典型布置中,仅当媒体片段的整个时长可用以及编码和封装到片段中时,DASH客户端才能请求片段。对于按需服务,可以使用不同的段时长选择策略。
片段可以进一步分为子片段,例如以支持下载多个部分的段。可能需要子片段包含完整的访问单元。子片段可以通过片段索引框添加索引,该片段索引框包含用于映射每个子片段的呈现时间范围和字节范围的信息。片段索引框还可以通过发信号通知其时长和字节偏移来描述片段中的子片段和流访问点。DASH客户端可以使用从片段索引框获得的信息来使用字节范围HTTP请求对特定子片段进行HTTP GET请求。如果使用相对长的片段时长,则可以使用子片段来保持HTTP响应的大小合理且灵活以用于比特率自适应。片段的索引信息可以放在该片段开报头的单个框中,或者分布在该片段中的许多索引框中。可以使用不同的传播方法,诸如层次、菊花链以及混合。该技术可以避免在片段的开报头添加大框,因此可以防止可能的初始下载延迟。
子呈现被嵌入在正常呈现中并且由“SubRepresentation”元素描述。“SubRepresentation”元素包含在“Representation”元素中。“SubRepresentation”元素描述嵌入在呈现中的一个或多个媒体内容要素的属性。它例如可以描述嵌入式音频要素的确切特性(例如,编解码器、采样率等)、嵌入式字幕(例如,编解码器)或者它可以描述一些嵌入式低质量视频层(例如,一些较低的帧速率等)。子呈现和呈现共享一些共同的属性和元素。如果“SubRepresentation”元素中存在“@level”属性,则以下内容适用:
-子呈现提供了访问包含它们的呈现的较低质量版本的能力。在这种情况下,子呈现例如允许在复用呈现中提取音轨,或者如果以较低的帧速率提供,则允许有效的快进或倒带操作;
-初始化片段和/或媒体片段和/或索引片段应提供足够的信息,以便可以通过HTTP部分GET请求轻松访问数据。提供此类信息的详细信息由所使用的媒体格式定义。
-当使用ISOBMFF片段时,以下内容适用:
ο初始化片段包含级别分配框。
ο针对每个子片段提供子片段索引框('ssix')。
ο属性“@level”指定与子片段索引中所描述的子呈现相关联的级别。呈现、子呈现和级别指定('leva')框中的信息包含有关将媒体数据分配到各级别的信息。
ο媒体数据应当有顺序,使得每个级别与较低级别相比提供增强。
如果不存在“@level”属性,则“SubRepresentation”元素仅用于提供对呈现中嵌入的媒体流的更详细描述。
ISOBMFF包括用于指定文件子集的所谓的级别机制。级别遵循依赖性层级,以使得映射到级别n的样本可以依赖于级别m的任何样本,其中m<=n,并且不依赖于级别p的任何样本,其中p>n。例如,可以根据时间子层(例如,SVC或MVC的“temporal_id”或HEVC的“TemporalId”)来指定级别。级别可以在电影延伸('mvex')框中包含的级别指定('leva')框中公布。无法为初始电影指定级别。当级别指定框出现时,它适用于初始电影之后的所有电影片段。对于级别指定框的上下文,一部分(fraction)被定义为包含一个或多个电影片段框和关联的媒体数据框,可能仅包括最后一个媒体数据的初始部分。在一部分内,每个级别的数据连续出现。一部分内的多个级别的数据以级别值的递增顺序出现。一部分中的所有数据都应当指定级别。级别指定框提供从特征(诸如伸缩层或时间子层)到级别的映射。可以通过轨道、轨道内的子轨道或轨道的样本分组来指定特征。例如,时间级别样本分组可用于指示图到时间级别的映射,这些时间级别等同于HEVC中的时间子层。也即是说,可以使用时间级别样本分组将特定“TemporalId”值的HEVC图映射到特定时间级别(并且可以针对所有“TemporalId”值重复地相同)。然后,级别指定框可以在所指示的到级别的映射中引用时间级别样本分组。级别指定框包括语法元素“padding_flag”。“padding_flag”等于“1”表示可以通过以下方式形成符合的部分:级联一部分内的任何正整数个级别并在最后一个媒体数据框中填充“零”字节,直到在最后一个媒体数据框的报头中指示的完整大小。例如,当每个部分包含相同视频比特流的两个或更多个AVC、SVC或MVC轨道时,“padding_flag”可以被设置为等于“1”,一部分的每个轨道的样本是连续的并且在媒体数据框中采用解码顺序,并且第一AVC、SVC或MVC级别的样本包含提取器NAL单元,用于包括来自同一部分的其它级别的视频编码NAL单元。
子片段索引框('ssix')提供从级别(由级别指定框指定)到索引子片段的字节范围的映射。换句话说,此框提供了一个紧凑的索引,用于指示子片段中的数据如何根据级别排序成部分子片段。它使客户端能够通过下载子片段中的数据范围轻松访问部分子片段的数据。当子片段索引框存在时,子片段中的每个字节都被指定级别。如果范围与级别指定中的任何信息都没有关联,则可以使用未包括在级别指定中的任何级别。针对每个仅索引叶子子片段(即仅索引子片段而没有片段索引)的片段索引框,存在0或1个子片段索引框。子片段索引框(如果有)是关联的子片段索引框之后的下一个框。子片段索引框记录在刚好前面的子片段索引框中指示的子片段。可以将每个级别精确地指定给一个部分子片段,即一个级别的字节范围是连续的。通过增加子片段内的数量来指定部分子片段的级别,即,部分子片段的样本可以取决于同一子片段中的前一部分子片段的任何样本,而不是相反。例如,每个部分子片段包含具有相同时间子层的样本,并且部分子片段在子片段内以增加的时间子层顺序出现。当以这种方式访问部分子片段时,最终的媒体数据框可能是不完整的,即,访问的数据少于媒体数据框指示的长度指示。可能需要调整媒体数据框的长度,或者可以使用填充。级别指定框中的“padding_flag”指示是否可以用“零”替换此缺失数据。如果不可以,则指定未被访问的级别的样本的样本数据不存在,应当注意这一点。
可能要求对于依赖于补充呈现Y的任何从属呈现X,每当m不等于n时,X的第m个子片段和Y的第n个子片段不重叠。可能要求对于从属呈现,初始化片段与从属呈现(按照在“@dependencyId”属性中提供的顺序,每个从属呈现的前面具有每个补充呈现的对应子片段)的子片段序列的级联应当表示符合在此从属呈现的“@mimeType”属性中指定的媒体格式的子片段序列。
MPEG-DASH为ISOBMFF和MPEG-2传输流两者定义了片段容器格式。其它规范可基于其它容器格式来规定片段格式。例如,已经提出了基于Matroska容器文件格式的片段格式,并且可以总结如下。当Matroska文件作为DASH片段等而被传送时,DASH单元和Matroska单元的关联可被规定如下。(DASH的)子片段可被定义为Matroska封装的内容的一个或多个连续集群。可能要求DASH的初始化片段包括EBML报头、(Matroska的)片段报头、(Matroska的)片段信息和轨道,并且可以可选地包括其它层1元素和填充。DASH的片段索引可以包括Matroska的线索元素。
SRD在MPEG-DASH的规范附录H中规定。以下包含SRD规范的一些摘录。
SRD方案允许媒体呈现描述作者表达空间对象之间的空间关系。空间对象由自适应集或子呈现来表示。作为示例,空间关系可以表明视频表示另一全帧视频(例如,感兴趣的区域或图块)的空间部分。
使用“@schemeIdUri”等于“urn:mpeg:dash:srd:2014”的“SupplementalProperty”和/或“EssentialProperty”描述符来提供与包含空间对象相关联的空间关系信息。SRD应排它地包含在这两个MPD元素(“AdaptationSet”和“SubRepresentation”)中。
为了保持与旧版客户端的兼容性,MPD需要使用“SupplementalProperty”和“EssentialProperty”,以便在丢弃包含“EssentialProperty”的元素后,旧版客户端可以解释至少一个呈现。
子呈现级别SRD可用于表示一个呈现(诸如HEVC平铺(tiling)流)中的空间对象。在这种情况下,SRD描述符可以出现在自适应集以及子呈现级别中。
使用SRD方案的“SupplementalProperty”或“EssentialProperty”元素的“@value”是SRD参数值的逗号分隔列表。需要具有SRD参数“source_id”、“object_x”、“object_y”、“object_width”和“object_height”,并且需要有条件地或可选地具有SRD参数“total_width”、“total_height”和“spatial_set_id”。
“source_id”是十进制表示中的非负整数,提供内容源的标识符。“source_id”参数在时段内为内容源提供唯一标识符。它隐式定义了与此源相关联的坐标系。该坐标系使用任意原点(0;0);x轴从左到右定向,y轴从上到下定向。共享相同“source_id”值的所有SRD具有相同的原点和轴方向。使用具有不同“source_id”值的SRD的空间对象的空间关系未定义。
对于给定的“source_id”值,定义了参考空间,其对应于包含整个源内容的矩形区域,其左上角位于坐标系的原点。SRD中的“total_width”和“total_height”值提供以任意单位表示的此参考空间的大小。“total_width”是十进制表示中的非负整数,以任意单位表示参考空间的宽度。“total_height”是十进制表示中的非负整数,以任意单位表示参考空间的高度。允许MPD中没有覆盖整个内容源的空间对象,例如,当整个源内容由两个单独的视频表示时。
“object_x”是十进制表示中的非负整数,以任意单位表示空间对象的左上角的水平位置。“object_y”是十进制表示中的非负整数,以任意单位表示空间对象左上角的垂直位置。“object_width”是十进制表示中的非负整数,以任意单位表示空间对象的宽度。“object_height”是十进制表示中的非负整数,以任意单位表示空间对象的高度。“object_x”和“object_y”参数(分别是“object_width”和“object_height”)表示与源相关联的坐标系中的相关空间对象的2D位置(分别是2D大小)。“object_x”、“object_y”、“object_width”和“object_height”参数的值相对于上述“total_width”和“total_height”参数的值。在考虑参考空间的大小之后,即在用各自描述符的“object_x”和“object_width”值除以“total_width”值,以及用“object_y”和“object_height”值除以“total_height”值之后,可以比较共享相同“source_id”值的SRD的位置(object_x,object_y)和大小(object_width,object_height)。可以在不同的描述符中使用不同的“total_width”和“total_height”值,以针对相同的参考空间以不同的单位提供位置和大小信息。
“spatial_set_id”是十进制表示中的非负整数,其提供一组空间对象的标识符。当不存在时,与该描述符相关联的空间对象不属于任何空间集,并且不给出任何空间集信息。MPD作者可以使用“spatial_set_id”参数表示给定“source_id”中的某些空间对象具有特定的空间关系。例如,MPD作者可以在相同分辨率级别上对应于图块的所有自适应集进行分组。这样,DASH客户端可以使用“spatial_set_id”参数来快速选择空间相关的空间对象。
用于将水平覆盖360度视场和垂直覆盖180度视场(因此表示球形)的全景图像映射到矩形二维图像平面的特定投影被称为等矩形投影。在这种情况下,水平坐标可以被认为等同于经度,而垂直坐标可以被认为等同于纬度,不应用任何变换或伸缩。在某些情况下,具有360度水平视场但小于180度垂直视场的全景内容可被视为等矩形投影的特殊情况,其中球形的极区未被映射到二维图像平面上。在某些情况下,全景可具有小于360度的水平视场和高达180度的垂直视场,同时以其它方式具有等矩形投影格式的特性。
全景图(诸如等矩形全景图)可以是立体的。在立体全景格式中,一个全景图可以表示左视图,而另一图(同一时刻或访问单元的图)可以表示右视图。当在诸如虚拟现实耳机的立体显示装置上显示立体全景时,可以以适当的视角和视场向左眼显示左视图全景,并且可以类似地向右眼显示右视图全景。在立体全景中,可以假设立体观看朝向全景的赤道(即,垂直于最中心像素行)发生,导致视角的绝对倾斜度越大,立体三维呈现的正确性越差。
在立方体映射(cubemap)投影格式中,将球形视频投影到立方体的六个面(也被称为侧面)上。可以通过以下方式生成立方体映射:例如首先从视点渲染球形场景六次,其中视图由表示每个立方体面的90度视锥来定义。立方体侧面可以帧封装到同一帧中,或者每个立方体侧面可以单独处理(例如,在编码中)。可能具有许多可能的顺序来将立方体侧面定位到帧上和/或立方体侧面可以旋转或镜像。可以选择用于帧封装的帧宽度和高度以“紧密地”适合立方体侧面,例如在3x 2立方体侧网格处,或者可以包括未使用的组成帧,例如在4x 3立方体侧网格处。
立方体映射可以是立体的。立体立方体映射例如可以通过将立体全景的每个视图重新投影到立方体映射格式来实现。
在许多显示情境中,仅需要显示部分图,而剩余的图需要解码但不显示。这些显示情况包括:
-典型的报头戴式显示器(HMD)显示100度视场,而用于HMD消费的输入视频通常覆盖整个360度。
-典型的平板观看环境显示器,达到40度视场。当在这样的显示器上显示宽FOV内容(例如,鱼眼)时,可优选显示空间子集而不是整个图。
现在,为了至少减轻上述缺点,在下文中提出了一种用于实现运动受限图块集的符合标准的解码的方法。
在图6a中所示的方法中,获得包括运动受限图块集的全图轨道或比特流(600),以及基于运动受限图块集,生成指令以构造符合全图的图块集轨道或比特流(602)。该方法可以由文件生成器(例如图23的1530或1570)执行。
在该方法中,如图6b中所公开的,获得包括运动受限图块集的全图轨道或比特流(610),以及基于运动受限图块集,构造符合全图的图块集轨道或比特流(612)。该方法可以由文件解析器(例如图23的1580)或播放器在解码之前执行,或者由流媒体服务器(例如图23的1540)执行。
图7示出了实施例的基础概念的示例。作为该方法的输入,获得包含一个或多个运动受限图块集的比特流700。例如,可以使用等矩形全景视频序列(700,在顶部)或帧封装的鱼眼多视点序列(700,在底部)作为输入。运动受限图块集是可以包含一个或多个图块的矩形图块集。在图7中,白色矩形表示图块边界。运动受限图块集的编码以如下方式完成:限制帧间预测过程,以使得在运动受限图块集以外没有样本值,以及在使用运动受限图块集以外的一个或多个样本值推导的部分样本位置处没有样本值被用于运动受限图块集内的任何样本的帧间预测。
然后,在702中,选择运动受限图块的子集来根据输入比特流的运动受限图块集,构造或生成指令以构造符合全图的图块集轨道或比特流。当构造符合全图的图块集轨道或比特流时,例如可以在流传输之时或之前,在流媒体服务器(例如图23的1540)中完成步骤702,或者在解码之前,在文件解析器(例如图23的1580)或播放器中完成步骤702。当生成构造符合全图的图块集轨道或比特流的指令时,例如可以由文件生成器(例如,图23的1530或1570)完成步骤702。该方法的输出是基于运动受限图块集而构造的符合全图的图块集轨道704或比特流,其中符合全图的图块集轨道或比特流是可解码的,因此由标准视频解码器706(如H.265/HEVC解码器)解码。或者,输出可以是构造基于运动受限图块集而构造的符合全图的图块集轨道或比特流的指令。
一些示例用(但不限于)图8中所示的运动受限图块集的划分来说明。在图8中,值“1..8”指示图块集的位置。方括号中的值表示包含图块集的图。在一些实施例中,片段或子片段包括图N到N+M(包括N和N+M),而不包括其它图。
图9示出了包括生成构造符合全图的图块集轨道的指令的过程。在“文件/片段封装”中,具有运动受限图块集的比特流被封装到容器文件或片段中(例如,用于DASH传送)。在“所构造的图块集轨道生成”中,参考容器文件或片段中的运动受限图块集的轨道生成所构造的图块集轨道。
可以示出上述过程的结果(参考但不限于ISOBMFF),其中图10中所示的逻辑文件结构包含全图轨道和一个或多个所构造的图块集轨道。根据来自全图轨道的构造器操作符,通过借助引用包括样本来创建一个或多个所构造的图块集轨道。
轨道的样本数据可以物理地排列在文件内的块或轨道运行中。例如,每个轨道中从样本N开始的(M+1)个样本可以分别是不与任何其它块或轨道运行的数据交织的块或轨道运行。这些分别具有不同轨道的块或轨道运行例如可以在文件中连续排序。这在图11a中示出(参考但不限于ISOBMFF)。
操作“Constr”代表构造文件格式样本的指令。“Constr”例如可以包含一个或多个NAL单元类结构,每个结构在文件格式样本中导致一个NAL单元。图11b示出了VCL NAL单元的构造器运算符的示例。
在本说明书中,当解释各种实施例时,可以使用以下术语及其定义。
所构造的图块集轨道是图块集轨道,例如根据ISOBMFF的轨道,包含构造器,这些构造器在执行时导致图块集比特流。
构造器是一组指令,其在执行时根据基础样本格式导致有效的样本数据。
提取器是构造器,其在执行时复制指示轨道的指示样本的指示字节范围的样本数据。借助引用包括可以被定义为提取器等,其在执行时复制指示轨道的指示样本的指示字节范围的样本数据。
符合全图的图块集{track|bitstream}是符合全图{track|bitstream}格式的图块集{track|bitstream}。在此,注释{optionA|optionB}示出了替代方案,即“optionA”或“optionB”,它在所有选择中一致地选择。使用全图轨道的解析和解码过程,符合全图的图块集轨道可以像任何全图轨道一样地播放。使用全图比特流的解码过程,可以像任何全图比特流那样解码符合全图的比特流。
全图轨道是表示原始比特流(包括其所有图块)的轨道。
内联构造器是一个构造器,其在执行时返回它包含的样本数据。例如,内联构造器可以包括用于重写新切片报头的一组指令。短语“内联”可用于指示包括在轨道样本中的编码数据。
NAL单元类结构是指具有NAL单元的特性的结构,只是不执行起始码仿效阻止。
预先构造的图块集轨道是包含内联样本数据的图块集轨道。
图块集比特流是包含原始比特流的图块集但不表示整个原始比特流的比特流。
图块集轨道是表示原始比特流的图块集但不表示整个原始比特流的轨道。
在下文中描述了涉及图块集比特流构造,或包括构造图块集比特流的指令的所构造的图块集轨道的生成的各种实施例。实施例尤其适用于HEVC,但不限于此。
在实施例中,从全图比特流中提取用于运动受限图块集的编码数据,并且在所提取的运动受限图块集的右侧添加图块列。该所添加的图块列可以被称为虚拟图块列。
在实施例中,从全图比特流中提取用于运动受限图块集的编码数据,并且在所提取的运动受限图块集下方添加图块行。该所添加的图块行可以被称为虚拟图块行。例如,当运动受限图块集的宽度等于全图比特流的宽度或者当运动受限图块集的所有图块位于同一切片片段中时,可以使用该实施例。
在实施例中,虚拟图块列或虚拟图块行被指示为从解码的输出图中排除。例如,例如包括在序列级别数据(诸如序列参数集)中的一致性裁剪窗口(如在HEVC中所规定的)等可用于排除虚拟图块列或虚拟图块行,并且包括所提取的运动受限图块集。
在实施例中,虚拟图块列或虚拟图块行中的图块用于指示虚拟图块是否终止切片片段。
在包括虚拟图块列添加的实施例中,以终止切片片段的方式生成每个虚拟图块。在运动受限图块集中的下一图块行的第一(即最左侧)图块之前添加切片片段报头。
在包括虚拟图块列添加的实施例中,当虚拟图块是所构造的图的解码顺序中的最后一个图块时,或者当运动受限图块集中的下一图块行的第一(即最左侧)图块包括在运动受限图块集中的当前图块行的最右侧图块以外的切片片段中时,以虚拟图块终止切片片段的方式生成虚拟图块。否则,以不终止切片片段的方式生成虚拟图块。
在包括虚拟图块列添加的实施例中,可以研究包括运动受限图块集的图块的切片片段的切片片段报头。如果通过研究或通过其它方式(例如,预定义的约束)发现切片片段报头基本上相同,则以仅在开始时包括切片片段报头的方式生成所构造的图,作为所构造的图的解码顺序中的最后一个虚拟图块的虚拟图块以其终止切片片段的方式生成,其它虚拟图块以不终止切片片段的方式生成。
在包括虚拟图块行添加的实施例中,作为所构造的图的解码顺序中的最后一个虚拟图块的虚拟图块以其终止切片片段的方式生成,其它虚拟图块以不终止切片片段的方式生成。
HEVC的slice_segment_data()的语法结构规定如下,其中ae(v)指示通过算术编码(即HEVC中的上下文自适应二进制算术编码(CABAC))编码的语法元素:
Figure GDA0003797469080000641
在可应用于HEVC或类似语法的实施例中,在虚拟图块的解码顺序中的最后一个CTU之后通过将“end_of_slice_segment_flag”设置为等于“1”来生成终止切片片段的虚拟图块。通过将“end_of_slice_segment_flag”设置为等于“0”(并且将“end_of_subset_one_bit”设置为等于“1”,如上面的语法中所指示的)来生成不终止切片片段的虚拟图块。
在实施例中,虚拟图块列的宽度被设置为等于一个CTU。在实施例中,虚拟图块行的高度被设置为等于一个CTU。
在实施例中,以有效压缩的方式编码虚拟图块。例如,可以编码虚拟图块的编码单元且不存在预测误差数据。可以使用尽可能大的CU尺寸;例如,在HEVC中,“split_cu_flag[][]”可以在虚拟图块中被设置为等于“0”。对于帧内编码的HEVC虚拟图块,“rqt_root_cbf”可以被设置为等于“0”(假设未使用PCM模式)。对于帧间编码的HEVC虚拟图块,“cu_skip_flag[][]”可以被设置为等于“1”。
下面描述涉及通过重写图块尾部(tail)(即,从图块的结束开始到图块的起始的多个字节),根据全图比特流构造图块集比特流的各种实施例。
在实施例中,图块集由运动受限图块集的最右侧图块组成,其具有小于全图比特流的图宽度的宽度。每个所述最右侧图块被设置为终止图块集比特流中的切片片段。在运动受限图块集中的下一图块行的第一(即最左侧)图块之前添加切片片段报头。
在实施例中,对于每个包含运动受限图块集的图块的切片片段,图块集包括一个图块,其中该一个图块是对应的切片片段的运动受限图块集的解码顺序中的最后一个图块。图块集中的每个图块被设置为终止图块集比特流中的切片片段,并且如果随后是运动受限图块集中的下一图块,则添加切片片段报头。
在实施例中,可以研究包括运动受限图块集的图块的切片片段的切片片段报头。如果通过研究或通过其它方式(例如,预定义的约束)发现切片片段报头基本上相同,则以仅在开始时包括切片片段报头的方式生成所构造的图。对于在运动受限图块集的最后一个图块以外的图块,指示切片片段未终止,而对于运动受限图块集的最后一个图块,指示切片片段终止。
下文描述了涉及通过重写图块尾部构造图块集轨道的各种实施例。
在实施例中,对图块的两个版本进行编码,否则这两个版本相同但第一版本终止切片片段(或在一些实施例中终止切片)而第二版本不终止切片片段(或在一些实施例中不终止切片)。适合全图比特流的目的的版本包含在全图比特流中。断定相同版本还是其它版本适合图块集比特流的目的,例如如上所述。在相同版本适合图块集比特流的目的的情况下,图块借助引用包括在图块集轨道中。在其它版本适合图块集比特流的目的的情况下,全图比特流的图块借助引用包括在图块集轨道中,但不包括图块的尾部(例如,最后一个字节),其中以其它方式指示切片片段的终止。图块的尾部内联地包括在图块集轨道中。
在实施例中,全图比特流被部分或完全地执行熵解码(例如,如上所述),并且断定切片片段的终止的指示针对图块集比特流的目的具有正确的值(例如,如上所述)。在切片片段的终止针对图块集比特流的目的具有正确的值的情况下,图块借助引用包括在图块集轨道中。在切片片段的终止针对图块集比特流的目的不具有正确的值的情况下,全图比特流的图块借助引用包括在图块集轨道中,但不包括图块的尾部(例如,最后一个字节)。图块通过变化地指示切片片段的终止(例如,如上所述)被部分或完全地执行熵解码,并且熵编码的图块的尾部内联地包括在图块集轨道中。
如上所述,当使用字节流格式来发送或存储视频数据时(例如在H.264/AVC或HEVC中规定的),应当考虑起始码仿效和起始码仿效阻止处理。
当根据全图比特流中非连续的图块构造图块集比特流或者当将数据添加到未在全图比特流中的图块集比特流中时(例如,添加切片片段报头),可能发生起始码仿效。因此,在这些情况下应当注意包括起始码仿效阻止手段。
当根据全图比特流中非连续的图块构造图块集比特流或者当将数据添加到未在全图比特流中的图块集比特流中时(例如,添加切片片段报头),可能发生错误的起始码仿效阻止语法元素。当图块集比特流中的三个字节的序列包含来自不同原点的字节(例如,非连续图块)并且在HEVC用例下等于0x000003时,或者更一般地,等于起始码仿效阻止字节值模式时,解码器错误地断定三个字节的最后一个字节是仿效阻止字节。因此,在这些情况下,应注意避免错误的起始码仿效阻止手段。
在实施例中,从全图比特流的编码的视频数据(例如,HEVC中的VCL NAL单元)中移除起始码仿效阻止语法元素(例如,HEVC中的“emulation_prevention_three_byte”语法元素),从而导致处理的全图比特流。然后,根据已处理的全图比特流构造中间图块集比特流,例如,如在其它实施例中所述的。将起始码仿效阻止语法元素添加到中间图块集比特流以形成图块集比特流。
在实施例中,分析在将要构造的图块集比特流中来自不同源的任何两个或更多个连续数据部分是否形成起始码或错误的起始码仿效阻止,在这种情况下,起始码仿效阻止被添加到图块集比特流中。
在实施例中,如上述实施例所总结的,需要在图块集比特流中添加的起始码仿效阻止语法内联地包括在图块集轨道中。
以上通过图9所示的实施例可以伴随在下面给出和并且在图12中示出的MPD生成。与图9中所示的整体配置相比,例如基于在文件/片段封装中创建(子)片段的配置和/或创建运动受限图块集的配置,生成包括有关图块集轨道及其片段或子片段的信息的MPD。替代地或附加地,MPD生成可以作为有关所生成的构造图块集的输入信息,例如,它们相对于全图的空间位置和大小。
在实施例中,全图轨道对应于第一呈现,而所构造的图块集轨道(具有对全图轨道的引用)对应于第二呈现。在MPD生成中,第一呈现被指示在第一自适应集中,第二呈现被指示在第二自适应集中。
在实施例中,第一SRD包括在第一自适应集中,第二SRD包括在第二自适应集中。第一SRD和第二SRD指示自适应集具有相同的参考空间,例如,如上所述通过具有相同的“source_id”值。由所构造的图块集轨道表示的运动受限图块集的位置和大小相对于可在第一SRD中指示的全图维度在第二SRD中指示。
在实施例中,播放器例如基于如上所述第一自适应集和第二自适应集具有相同的“source_id”值,断定第一自适应集和第二自适应集表示相同的参考空间。播放器进一步断定第一自适应集相对于第二自适应集的相对大小和位置。基于例如主要观看方向和主要显示视场,播放器选择最适合其观看条件的自适应集。
在ISO/IEC 14496-15(“ISO基本媒体文件格式的网络抽象层(NAL)单元结构化视频的载体”)中,提取器结构用于提取一个或多个整个NAL单元。出于在此描述的实施例的目的,需要提取部分(非整个)NAL单元,这可以通过如上定义的提取器构造器来实现。NAL单元类结构可以被定义为包括其执行导致一个或多个整个NAL单元的构造器。可以通过ISO/IEC14496-15的提取器结构中的以下更改来实现该特征,但是需要理解,实施例不限于该语法或语义。
Figure GDA0003797469080000681
更改为:
Figure GDA0003797469080000682
在此,“track_ref_index”指示从中提取数据的轨道,“sample_offset”指示从中提取数据的样本,“data_offset”指示从中开始提取数据的样本内的偏移,“data_length”指示要提取的字节数量。“NALUnitHeader”结构包含NAL单元报头。
“InlineNALUnitData”结构包含将要包括在所构造的NAL单元中的数据字节。
Figure GDA0003797469080000691
在此,“length”是将要包括在所构造的NAL单元中的字节数量,而“inline_data”是将要包括在所构造的NAL单元中的数据字节。
为了构造NAL单元,可以提供至少两个不同的选项。在第一选项中,重新定义HEVC的提取器,以便可以从多个范围构造它们。范围可以是“ExtractorPayload”或“InlineNALUnitData”..
语法可以如下:
Figure GDA0003797469080000692
在第二选项中,规定了“NALUnitConstructor”结构。解析“NALUnitConstructor”导致一个或多个整个NAL单元。
Figure GDA0003797469080000701
“NALUnitHeader”的语义与“Extractor”的语义相同,只是使用另一“nal_unit_type”值,例如,使用等于“50”的“nal_unit_type”。
与提取一个或多个整个NAL单元的提取器的正常使用相比,由第一选项引起的更改的成本是一个附加字节。由于此成本适中,因此第一选项可能优于单独的“NALUnitConstructor”结构的第二选项。
在两个选项中,“nal_unit_extent_type”等于“0”指定下一范围是“ExtractorPayload”。“nal_unit_extent_type”等于“1”指定范围是“InlineNALUnitData”。保留大于“1”的值。
可能需要在支持某些样本条目四字符代码(诸如“hvc2”和“hev2”)的播放器中支持所提出的提取器或NAL单元构造器结构的解析。
在实施例中,生成所构造的图块集轨道,其中包括所提出的提取器或NAL单元构造器结构,其从全图轨道提取运动受限图块集(例如,具有样本条目代码“hvc1”或“hev1”)。所构造的图块集轨道可以具有样本条目代码,例如“hvc2”或“hev2”,其指示基础编码格式,诸如HEVC,以及提取器或NAL单元构造器结构的使用。
在实施例中,播放器确定解析、解码和播放符合全图的图块集轨道,例如用“hvc2”或“hev2”样本条目代码标记。播放器解析或执行包括在轨道样本中的构造器,以获得符合全图的图块集比特流。然后,播放器利用传统的解码过程(例如HEVC解码过程)对符合全图的图块集比特流进行解码。
在下文中描述了涉及通过HEVC或具有类似特征的任何其它编解码器的实现的各种实施例。
在实施例中,通过以下修改中的一个或多个从原始比特流复制符合全图的图块集轨道的参数集:
-所指示的级别可以被设置为足以用于图块集解码而不是全图解码的值。时间运动受限图块集SEI消息可以包含适合在修改的参数集中使用的级别值(“mcts_level_idc[i]”)。
-图宽度和高度可以设置为与图块集,而不是整个图匹配的值。
-一致性裁剪窗口可以被设置为与图块集匹配的值,或者可以被指示为在输出图块集比特流的全图区域的情况下不存在。
-可以针对图块集而不是针对全图指示图块网格。
在实施例中,参数集包括在图块集轨道的样本条目描述中。在实施例中,参数集被包括在图块集轨道的样本中(替代地或附加地,在图块集轨道的样本条目描述中包括参数集)。在实施例中,参数集内联地包括在样本中。在实施例中,参数集在样本中构造,替代地或附加地包括在样本中内联地包括参数集。例如,可以从另一轨道的样本中提取参数集的一部分,并且可以使用内联构造器来包括参数集的另一部分。
在实施例中,使用内联构造器包括图块集轨道的NAL单元报头。
在实施例中,使用内联构造器将切片片段报头包括在图块集轨道的样本中。在实施例中,附加地或替代地包括通过内联构造器包括切片片段报头,可以从另一轨道提取切片片段报头。例如,可以从另一轨道的样本中提取片段报头部分的一部分,并且可以使用内联构造器包括片段报头部的另一部分。与原始全图比特流的相应切片片段报头相比较,可能需要修改以下一个或多个:
-图的第一切片的指示(在HEVC中,“first_slice_segment_in_pic_flag”);
-切片地址或切片的第一块(例如,CTU)的位置(在HEVC中,“slice_segment_address”);
-条目点偏移(每个指向图块的开始),当存在时以及当切片片段中的图块数量改变时。
在实施例中,当运动受限图块集中的图块行不以切片片段报头开始并且运动受限图块集的宽度小于原始全图比特流的图宽度时,将切片片段报头添加到图块集轨道中。
从以上可以明显看出,该方法可以以协调的方式应用于相同内容的若干编码版本。图13示出了如何根据内容相同,但是分辨率不同的两个H.265/HEVC比特流构造运动受限图块集轨道/比特流。
编码版本例如可以在以下一个或多个方面不同:
-比特率
-图像质量,可以通过使用不同的量化参数值获得
-空间分辨率
-每个颜色分量的位深
-动态范围
-色域
例如,考虑如图13中所示的以不同空间分辨率编码的相同内容的两个版本,然后在实施例中,在空间上并置这两个版本中的运动受限图块集的边界。这使得能够创建具有不同分辨率的空间非重叠的图块集轨道或比特流。在实施例中,这两个版本中的运动受限图块集的边界不需要在空间上并置。可以通过不同分辨率的图块集轨道或比特流之间的重叠不存在或适度的方式选择不同分辨率的运动受限图块集,例如用于流传输和/或解码。
根据高分辨率版本构造一个或多个高分辨率图块集轨道或比特流。根据低分辨率版本构造一个或多个低分辨率图块集轨道或比特流。在实施例中,图块集轨道或比特流以覆盖内容的整个图区域(或等效地覆盖整个视场)的方式构造。在另一个实施例中,图块集轨道或比特流以覆盖用于显示的足够视场的方式构造,其中考虑了观看方向后续可能的变化。在实施例中,高分辨率图块集轨道可以根据覆盖当前观看方向和视场的运动受限图块集构造。
从以上可以明显看出,该方法可以以协调的方式应用于相同内容的若干编码层。图14示出了如何根据内容相同,但分辨率不同的两个H.265/HEVC伸缩层构造运动受限图块集轨道/比特流。
编码版本例如可以在以下一个或多个方面不同:
-比特率
-图像质量,可以通过使用不同的量化参数值获得
-空间分辨率
-每个颜色分量的位深
-动态范围
-色域
例如考虑到以不同空间分辨率编码的相同内容的两个层,则不需要使用图块或运动受限图块来编码基础层。基础层可以用另一个编解码器编码,例如H.264/AVC。不对基础层执行图块集轨道或比特流构造。
预测层使用根据基础层的层间预测。
根据预测层构造一个或多个高分辨率图块集轨道或层。在实施例中,高分辨率图块集轨道或层可以根据覆盖当前观看方向和视场的运动受限图块集构造。
在实施例中,参考层位置偏移(诸如伸缩的参考层偏移等)被***图块集轨道或比特流中(例如,图参数集中)以指示预测层对应的基础层图区域部分。在实施例中,解码器根据图块集轨道或比特流(例如,根据图参数集)解码参考层位置偏移(诸如伸缩的参考层偏移)等以断定预测层对应的基础层图区域部分。解码器或显示过程可以使用该信息从要显示的解码基础层和增强层图中选择样本。例如,如果增强层图未完全覆盖显示所需的视场,则可以选择未被增强层覆盖的基础层图的部分进行显示。
在实施例中,基础层用运动受限图块(与预测层的图块并置)进行编码。此外,在编码中限制层间预测,使得预测层中的图块的层间预测不需要基础层中的并置图块以外的样本值或运动矢量信息。基础层或基础层轨道以针对基础层和预测层构造并置的运动受限图块集的方式进行层或图块集轨道构造。
图15示出了应用于立体视频编码的实施例。需要指出,虽然示例性附图示出了立体等矩形全景,但是该方法不限于该格式,而是同样适用于其它立体格式,诸如立体立方体映射格式。还应当注意,虽然以下附图示出了双视点编码,但该方法不限于两个视点,还适用于具有两个以上视点的多视点编码。
在图15中,一个视点(例如,左视点)使用或不使用运动受限图块进行编码,并且可以用任何编解码器编码,例如HEVC(例如,Main配置文件)或H.264/AVC。另一视点使用运动受限图块进行编码,并且根据另一视点构造一个或多个图块集轨道或比特流。视点不需要具有相同的空间分辨率或其它特性(例如,比特率、图像质量、每个颜色分量的位深、动态范围和/或色域)。
播放器例如可以基于当前观看方向选择要被流传输和/或解码的图块集轨道或比特流。当一个视点被完全传输时,播放器可以通过仅显示来自一个视点的内容(在没有来自另一视点的相应内容的情况下)来处理观看方向的突然变化。
在实施例中,使用运动受限图块对全部两个视点进行编码,并且根据每个视点构造一个或多个图块集轨道或比特流。视点不需要具有相同的空间分辨率或其它特性(例如,比特率、图像质量、每个颜色分量的位深、动态范围和/或色域)。
播放器例如可以基于当前观看方向选择要流传输和/或根据每个视点解码的图块集轨道或比特流。该实施例可适用于例如观看方向的快速变化不可能或不会发生的观看环境。
在实施例中,两个视点都通过多个分辨率进行编码,如上面在“基于运动受限图块集的多分辨率部分图解码”实施例中所描述的。对于一个视点或全部两个视点,播放器选择要以高分辨率流传输和/或解码的视点的一个或多个运动受限图块集,同时以低分辨率流传输和/或解码剩余(即,非并置)图块集中的部分或全部。
可以将这些实施例应用于具有视点之间的视点间预测的立体和多视点视频编码。该方法不限于任何特定格式,而是同样适用于任何立体或多视点格式,例如立体等矩形全景格式和立体立方体映射格式。
在实施例中,一个视点(例如,左视点)使用或不使用运动受限图块进行编码,并且可以用任何编解码器编码,例如HEVC(例如,Main配置文件)或H.264/AVC。另一视点使用运动受限图块进行编码,并且根据该另一视点构造一个或多个图块集轨道或比特流。视点间预测在视点之间应用。
播放器例如可以基于当前观看方向选择要被流传输和/或解码的图块集轨道或比特流。当一个视点被完全传输时,播放器可以通过仅显示来自一个视点的内容(在没有来自另一视点的相应内容的情况下)来处理观看方向的突然变化。
该实施例要求编码格式和解码能力以支持具有不同空间分辨率的视点。需要指出,例如MV-HEVC不允许这样做。通常,视点间预测可以包括层间处理,诸如针对不同位深的伸缩或者重采样样本阵列和/或运动场,因此视图不需要具有特性(例如,每个颜色分量的位深、动态范围和/或色域)。
在图16中示出了另一个实施例。基本视点(例如左视点)用运动受限图块进行编码。根据基本视点构造一个或多个图块集轨道或比特流。预测视点根据基本视点,通过视点间预测进行编码。使用运动受限图块对预测视点进行编码,这些运动受限图块还是层间受限图块。层间受限图块以仅将基本视点中的并置图块的样本和运动数据用作视点间预测参考的方式进行约束。根据预测视点构造一个或多个图块集轨道或比特流。
当根据视点构造并置的图块集轨道或层时,所得到的图块集轨道和比特流符合符合全图的。例如,当基本视点符合HEVC Main配置文件并且预测视点符合HEVC MultiviewMain配置文件时,所得到的图块集轨道和比特流中的基本视点和预测视点也分别符合HEVCMain配置文件和HEVC Multiview Main配置文件。
播放器例如可以基于当前观看方向选择要流传输和/或根据全部两个视点解码的图块集轨道或比特流。该实施例可适用于例如观看方向的快速变化不可能或不会发生的观看环境。
在实施例中,编码多于一个的多视点比特流,每个多视点比特流具有不同的分辨率和/或其它特性(例如,比特率、图像质量、每个颜色分量的位深、动态范围和/或色域)。对于一个视点或全部两个视点,播放器选择要以高分辨率流传输和/或解码的视点的一个或多个运动受限图块集,同时以低分辨率流传输和/或解码剩余(即,非并置)图块集中的部分或全部。例如,播放器可以基于当前观看方向选择要以高分辨率流传输和解码的一个或多个运动受限图块集。
用于分段器提示生成的实施例在图17中示出。步骤“用运动受限图块集进行编码”和“文件/片段封装”如在其它实施例中描述的那样操作。步骤“分段器提示生成”创建指令(其也可被称为提示),根据这些指令可以生成用于图块集轨道的片段或子片段。指令例如可以包括构造器列表,这些构造器旨在按顺序执行。可能存在不同类型的构造器,例如包含要包括在根据指令生成的片段或子片段中的数据的内联构造器,以及通过引用另一文件或轨道在指示的字节位置(可以通过识别样本和样本内的字节位置来指示)处复制数据的提取器,以及通过引用复制的指示字节范围。
在实施例中,文件/片段封装生成预构造的图块集轨道,这些轨道可以是符合符合全图的的。此外,文件/片段封装生成所构造的全图轨道,这些轨道使用预构造的图块集轨道作为构造的参考。指令可以与片段或媒体文件存储在同一文件中,或者它们可以存储在单独的片段提示文件中。指令的格式可以但不必符合ISOBMFF(或者更一般地是用于片段或媒体文件的格式)。例如,指令可以根据ISOBMFF形成轨道(例如可被称为MPEG-DASH片段提示轨道),并且轨道的每个样本可以提供构造片段或子片段的指令。
在实施例中,生成MPD,其包括有关根据分段器提示构造的图块集轨道及其片段或子片段的信息。MPD生成可以类似于先前在“MPD生成”部分中所描述的内容。
在实施例中,全图轨道(如果有)对应于第一呈现,图块集轨道对应于第二呈现。在MPD生成中,第一呈现被指示在第一自适应集中,第二呈现被指示在第二自适应集中。
在实施例中,第一SRD包括在第一自适应集中,第二SRD包括在第二自适应集中。第一SRD和第二SRD指示自适应集具有相同的参考空间,例如,如上所述通过具有相同的“source_id”值。由图块集轨道表示的运动受限图块集的位置和大小相对于可在第一SRD中指示的全图维度在第二SRD中指示。
在实施例中,播放器例如基于如上所述第一自适应集和第二自适应集具有相同的“source_id”值,断定第一自适应集和第二自适应集表示相同的参考空间。播放器进一步断定第一自适应集相对于第二自适应集的相对大小和位置。基于例如主要观看方向和主要显示视场,播放器选择最适合其观看条件的自适应集。
图18示出了分段器提示轨道或分段器文件,其中构造器从全图轨道提取运动受限图块集。
在实施例中,可以将URL信息添加到分段器提示轨道或分段器文件,使得能够将分段器提示轨道(例如,提示样本)或分段器文件的正确部分匹配到在请求中使用并且根据MPD信息和/或先前的(子)片段(例如,字节范围信息)断定的URL。URL信息例如可以使用URL模板方案包括在内,该URL模板方案与MPD模式中使用的URL模板方案类似或相同,或者根据可以通过解码分段器提示轨道或分段器文件而生成的每个(子)片段包括URL。
图19示出了服务器或分段器操作,其中根据实施例,服务器或在操作上与服务器相连接的分段器解析分段器提示。分段器例如可以是由HTTP服务器启动的服务器端脚本。服务器或分段器根据所解析的提示解析分段器提示并生成片段或子片段。片段或子片段是有效的预构造图块集轨道的一部分。
在实施例中,服务器和/或分段器例如通过HTTP GET请求接收所请求的(子)片段的URL。服务器或分段器解析包括在分段器提示轨道或分段器文件中的URL信息,以找到与所请求的(子)片段的URL匹配的指令或提示。然后,服务器或分段器执行这些找到的指令或提示以创建所请求的(子)片段。然后,服务器或分段器通过发送所创建的(子)片段来响应该请求,例如,在响应HTTP GET请求中。
在实施例中,生成具体标记的指令或提示作为用于初始化片段的“分段器提示生成”的一部分。当解码时,该指令或提示生成预构造的图块集轨道的初始化片段。初始化片段例如可以包括“FileTypeBox”和“MovieBox”。
在实施例中,文件/片段封装生成预构造的图块集轨道,这些轨道可以是符合符合全图的的。此外,文件/片段封装生成所构造的全图轨道,这些轨道使用预构造的图块集轨道作为构造的参考。
在实施例中,生成MPD,其包括有关预构造的图块集轨道,使用预构造的图块集轨道作为构造的参考的所构造的全图轨道的信息。在实施例中,以类似于上文针对根据分段器提示和全图轨道构造的图块集轨道所描述的方式生成MPD。
在实施例中,预构造的图块集轨道的电影片段的样本以第一预构造的图块集轨道的样本在第二预构造的图块集的样本之前的方式连续地布置,依此类推。所构造的全图轨道的样本位于用作构造的参考的预构造的图块集轨道的样本之后。例如可以通过使用ISOBMFF的“SubsegmentIndexBox”指示不同轨道的样本之间的边界。文件编写器可以包括“LevelAssingmentBox”等以指示“SubsegmentIndexBox”所指示的基于轨道的级别正在使用中。
在图20中示出的实施例中,MPD生成包括有关基于片段生成的级别包括到MPD中的“SubRepresentation”的信息。例如,MIME类型和/或空间关系信息(例如,SRD)可以包括在MPD中。为对应于预构造的图块集轨道的“SubRepresentation”指示的MIME类型可以指示足以用于解码相关运动受限图块集的配置文件和级别。每个预构造的图块集轨道的空间关系信息可以指示其相对于所指示的全图尺寸的位置和大小。这些信息可以使用在MPEG-DASH中规定的“SubRepresentation”级别SRD来传送。
图21中示出了上述过程的结果(参考但不限于ISOBMFF)。
在实施例中,上述接收片段的播放器执行如下操作:播放器例如根据MPEG-DASH中规定的“SubRepresentation”级别SRD解析预构造的图块集轨道的空间关系信息。基于所解析的空间关系信息,播放器例如基于片段或子片段动态地确定所请求的预构造的图块集轨道。播放器获得片段或子片段的开始,其包含指示级别之间(即预构造的图块集轨道之间)的字节边界的“SubsegmentIndexBox”等。播放器相应地断定要请求的字节范围,并相应地发出请求,例如HTTP GET请求。作为来自服务器侧的响应,播放器获得预构造的图块集轨道的请求数据,然后对这些数据进行解码并播放。
在实施例中,基本视点(例如,左视点)用运动受限图块集进行编码。预测视点同样是用运动受限图块集进行编码的。运动受限图块集的边界可以在视点之间对齐(但通常不需要对齐)。预测视点中的图块集也受到层间约束,使得层间预测仅使用基本视点的相应图块集内的样本值。限制视点间预测,使得仅基本视点的子集可以用作视点间预测的参考。该子集可被称为视点间参考子集。例如,视点间参考子集可以包括基本视点的IRAP图,并且IRAP图可以跨视点对齐,即,当基本视点中存在IRAP图时,同一访问单元的预测视点中也存在IRAP图,反之亦然。
在图块集轨道/比特流构造阶段中,根据基本视点构造一个或多个图块集轨道或比特流(例如,如在例如涉及图16的其它实施例中所描述的)。根据预测视点构造一个或多个图块集轨道或比特流(例如,如在例如涉及图16的其它实施例中所描述的)。当根据视点构造并置的图块集轨道或层时,所得到的图块集轨道和比特流是符合符合全图的的。例如,当基本视点符合HEVC Main配置文件并且预测视点符合HEVC Multiview Main配置文件时,所得到的图块集轨道和比特流中的基本视点和预测视点也分别符合HEVC Main配置文件和HEVC Multiview Main配置文件。
可以提取图块集轨道或比特流的基本视点部分,除非在前一阶段已经完成此操作。
在被称为“将预测层重写为单视点配置文件比特流”的阶段中,预测视点的所构造的图块集轨道或比特流被处理为符合单视点配置文件。通过借助引用将基本视点数据包括在第二视点轨道中来生成第二视点轨道。通过引用包括的该数据完全或部分地包括基本视点的视点间参考子集,可根据该基本视点来预测预测视点的编码图。第二视点轨道还内联地包括(在一些实施例中)或借助引用(在其它实施例中)包括预测视点的编码数据。第二视点轨道的样本可以包括构造器,例如提取器和内联构造器。指示第二视点轨道符合单视点解码过程,诸如HEVC Main配置文件解码。
该实施例的输出是基本视点符合全图的图块集轨道或比特流以及第二视点符合全图的图块集轨道或比特流。因此,通过标准视频解码器(诸如H.265/HEVC解码器)可以解码符合全图的图块集轨道或比特流。替代地,输出可以是构造基视点和第二视点符合全图的图块集轨道或比特流的指令。
可以以相反的顺序执行实施例的这些阶段,这意味着可以颠倒构造图块集轨道/比特流和将预测层重写为单视点配置文件比特流的顺序。换句话说,首先可以生成(全图的)单视点比特流,然后可以生成单视点图块集比特流。
实施例的这些阶段可以基本上组合成一个操作。例如,可以生成相同的轨道以提取预测视点的图块集并且借助引用包括视点间参考子集。换句话说,相同的轨道或样本可以同时执行构造图块集以及将多视点比特流重写为单视点比特流。
在上文中,已经关于等矩形全景视频格式(在单像或立体版本方面)描述了一些实施例。需要理解,实施例不限于等矩形全景格式。实施例可以类似地应用于任何图或视频格式,包括但不限于例如以下格式:
-传统的二维图像格式,例如用传统的镜头和传感器捕获的图像格式。该格式可以是直线的
-鱼眼图像格式,例如用鱼眼镜头捕获,覆盖宽视场,诸如约180度
-立方体映射格式,采用单像或立体版本
-多视点帧封装格式,其中不同相机的图在编码之前被封装(作为组成帧)到相同的帧中,并且可以在解码之后从解码的帧中提取。组成帧可以表示例如上述任何格式,例如,传统的二维图像、鱼眼图像、来自单像或立体立方体映射的立方体映射侧面,或立体全景格式的视图。
在实施例中,以针对鱼眼图像区域的空间子集编码运动受限图块集的方式将任何上述实施例应用于单视点或帧封装的鱼眼图。与鱼眼图类似,该实施例可以应用于任何其它类型的宽视场图。空间子集例如可以表示适合在传统平板显示器上显示的图像区域。运动受限图块集以外的其它图块不需要是运动受限的,即可以参考参考图中的运动受限图块集内的样本来使用帧间预测。如在其它实施例中所描述的,构造运动受限图块集的图块集轨道和/或比特流。
播放器例如可以基于对能够显示近似或精确匹配运动受限图块集的视场的观看或显示设备的了解选择流传输和/或解码构造的运动受限图块集轨道或比特流。
在可以通过上述实施例应用的实施例中,对于具有或不具有可伸缩视频编码的多分辨率部分图像解码实施例,可以在不同的分辨率或层中使用不同的图呈现格式。例如,内容的低分辨率版本或基础层可以使用等矩形全景格式,而内容的高分辨率版本或预测层可以使用立方体映射格式。
在实施例中,在编码时选择运动受限图块集以匹配帧封装呈现格式的组成帧边界。例如,如果立方体映射以帧封装格式表示,则每个立方体映射侧面是其自己的组成帧,并且每个组成帧可以被编码为运动受限图块集。
在实施例中,内容通过立方体映射格式以至少两种分辨率进行编码。在实施例中,播放器根据主要观看方向选择高分辨率立方体映射侧面的子集的运动受限图块集。假设用具有约100度视场的头戴式显示器进行观看,播放器例如可以选择多达三个立方体图侧面以便以高分辨率进行流传输和/或解码。将要流传输和/或解码的剩余立方体图侧面可以从低分辨率版本中选择,或者可以从流传输和/或解码中省略。
在实施例中,基于观看设备的预期或已知视场和/或观看行为,在编码时选择运动受限图块集的大小。例如,可以假设当使用头戴式显示器观看时,典型的垂直头部方向大致在球形视频的赤道上。
在实施例中,360度全景视频被划分为12个运动受限图块,每个图块覆盖90度的水平视场(即,相等宽度的四个图块列),最顶部的图块行覆盖45度的垂直视场,中间的图块行覆盖90度的垂直视场,而底部图块行覆盖45度的垂直视场。假设头戴式显示器上的视场约为100度,则四个图块集的流传输和/或解码通常足以覆盖显示所需的视场,尤其是当低分辨率版本或基础层可用于覆盖显示图的侧面上的任何可能缺少的区域时。
在实施例中,360度全景视频被划分为8个运动受限图块,每个图块水平和垂直地覆盖90度。假设头戴式显示器上的视场约为100度,则四个图块集的流传输和/或解码通常足以覆盖显示所需的视场,尤其是当低分辨率版本或基础层可用于覆盖显示图的侧面上的任何可能缺少的区域时。
在实施例中,360度全景视频被划分为12个运动受限图块,每个图块覆盖90度的水平视场(即,相等宽度的四个图块列),最顶部的图块行覆盖30度的垂直视场,中间的图块行覆盖120度的垂直视场,而底部图块行覆盖30度的垂直视场。假设头戴式显示器上的视场约为100度并且大致笔直地向前扫视(而不是向上或向下),两个图块集的流传输和/或解码通常足以覆盖所需的视场,尤其是当低分辨率版本或基础层可用于覆盖显示图的侧面上的任何可能缺少的区域时。
需要理解,在潜在的运动受限图块分割的上述实施例中的视场的值只是示例,例如可以以CTU行和/或列与运动受限图块边界匹配的方式选择精确的值。实施例不限于所提到的图块数量或视场值。
在实施例中,一组图块共同形成运动受限图块集。在例如可应用于上述12个图块分割的实施例中,顶部图块行形成一个运动受限图块集(而顶部图块行的图块不需要单独地进行运动约束),和/或底部图块行形成一个运动受限图块集(而底部图块行的图块不需要单独进行运动约束)。
需要指出,可以将若干图块集组合成相同构造的图块集轨道或比特流。在实施例中,彼此不相邻的第一运动受限图块集和第二运动受限图块集被组合成相同构造的图块集轨道或比特流。在实施例中,全图比特流的最左侧图块或图块集与全图比特流的最右侧图块或图块集被组合成相同构造的图块集轨道或比特流。这样的组合特别适合360度全景视频,在这种情况下,最右侧图块可以位于相同图块行的最左侧图块的左边的所构造的图块集轨道或比特流中,以保持空间连续性。
图22示出了适合采用本发明的实施例的视频解码器的框图。图22示出了双层解码器的结构,但是应当理解,解码操作可以类似地用在单层解码器中。
视频解码器550包括用于基本视点分量的第一解码器部分552和用于非基本视点分量的第二解码器部分554。框556示出了解复用器,用于将有关基本视点分量的信息传送到第一解码器部分552,以及用于将有关非基本视点分量的信息传送到第二解码器部分554。参考标号P'n代表图像块的预测表示。参考标号D'n代表重建的预测误差信号。框704、804示出了初步重建图像(I'n)。参考标号R'n代表最终重建图像。块703、803示出了逆变换(T-1)。框702、802示出了逆量化(Q-1)。框701、801示出了熵解码(E-1)。框705、805示出了参考帧存储器(RFM)。框706、806示出了预测(P)(帧间预测或帧内预测)。框707、807示出了滤波(F)。框708、808可用于将解码的预测误差信息与预测的基本视点/非基本视点分量组合以获得初步重建图像(I'n)。可以从第一解码器部分552输出709初步重建和滤波的基本视点图像,可以从第二解码器部分554输出809初步重建和滤波的基本视点图像。
在此,解码器应当被解释为覆盖能够执行解码操作的任何操作单元,诸如播放器、接收器、网关、解复用器和/或解码器。
图23是可以在其中实现各种实施例的示例性多媒体通信***的图形表示。数据源1510以模拟、未压缩数字或压缩数字的格式或这些格式的任何组合提供源信号。编码器1520可以包括预处理或者与预处理连接,诸如数据格式转换和/或源信号的滤波。编码器1520将源信号编码为编码的媒体比特流。需要指出,可以直接或间接地从位于几乎任何类型的网络内的远程设备接收要解码的比特流。此外,可以从本地硬件或软件接收比特流。编码器1520能够编码多于一种的媒体类型,诸如音频和视频,或者可能需要不止一个编码器1520来编码源信号的不同媒体类型。编码器1520还可以获得合成产生的输入,诸如图形和文本,或者它能够产生合成媒体的编码的比特流。在下文中,仅考虑一种媒体类型的一个编码的媒体比特流的处理以简化描述。然而,需要指出,通常实时广播服务包括若干流(通常至少一个音频、视频和文本字幕流)。还需要指出,该***可包括许多编码器,但在附图中仅示出一个编码器1520以简化描述,但不缺乏一般性。应当进一步理解,尽管在本文中包含的文本和示例具体地描述了编码过程,但是本领域的技术人员将理解,相同的概念和原理也适用于相应的解码过程,反之亦然。
可以将编码的媒体比特流传送到存储设备1530。存储设备1530可以包括用于存储编码的媒体比特流的任何类型的大容量存储器。存储设备1530中编码的媒体比特流的格式可以是基本的自包含比特流格式,或者一个或多个编码的媒体比特流可以封装到容器文件中,或者编码的媒体比特流可以封装成适用于DASH(或类似的流媒体***)并存储为一系列片段的片段格式。如果将一个或多个媒体比特流封装在容器文件中,则可以使用文件生成器(图中未示出)将一个或多个媒体比特流存储在文件中并创建文件格式元数据,这种元数据也可以存储在文件中。编码器1520或存储设备1530可以包括文件生成器,或者文件生成器可操作地连接到编码器1520或存储设备1530。一些***“实时”操作,即省略存储编码的媒体比特流以及将其从编码器1520传送到发送器1540。然后,可以根据需要将编码的媒体比特流传送到发送器1540,也被称为服务器。在传输中使用的格式可以是基本的自包含比特流格式、分组流格式、适用于DASH(或类似流传输***)的片段格式,或者可以将一个或多个编码的媒体比特流封装到容器文件中。编码器1520、存储设备1530和服务器1540可以驻留在相同的物理设备中,或者它们可以包括在单独的设备中。编码器1520和服务器1540可以处理实时内容,在这种情况下,编码的媒体比特流通常不是永久存储的,而是在内容编码器1520和/或服务器1540中稍微缓冲一段时间以减缓处理延迟、传输延迟和编码媒体比特率的变化。
服务器1540使用通信协议栈发送编码的媒体比特流。该协议栈可以包括但不限于实时传输协议(RTP)、用户数据报协议(UDP)、超文本传输协议(HTTP)、传输控制协议(TCP)和因特网协议(IP)中的一个或多个。当通信协议栈是面向分组的时,服务器1540将编码的媒体比特流封装成分组。例如,当使用RTP时,服务器1540根据RTP有效载荷格式将编码的媒体比特流封装成RTP分组。通常,每种媒体类型都具有专用的RTP有效载荷格式。再次需要指出,***可以包含一个以上的服务器1540,但是为了简单起见,以下描述仅考虑一个服务器1540。
如果媒体内容被封装在存储设备1530的容器文件中或用于将数据输入到发送器1540,则发送器1540可以包括或可操作地附着到“发送文件解析器”(图中未示出)。特别地,如果容器文件不是这样传输的,但是至少一个所包含的编码的媒体比特流被封装以便通过通信协议传输,则发送文件解析器定位编码的媒体比特流的适当部分以通过通信协议传送。发送文件解析器还可以帮助针对通信协议创建正确的格式,例如分组报报头和有效载荷。多媒体容器文件可以包含封装指令,例如ISOBMFF中的提示轨道,用于在通信协议上封装至少一个所包含的媒体比特流。
服务器1540可以通过或可以不通过通信网络连接到网关1550,通信网络例如可以是CDN、因特网和/或一个或多个接入网络的组合。网关也可以被称为或可替代地被称为中间设备。对于DASH,网关可以是(CDN的)边缘服务器或Web代理。需要指出,***通常可以包括任何数量的网关或类似设备,但是为了简单起见,以下描述仅考虑一个网关1550。网关1550可以执行不同类型的功能,例如将根据一个通信协议栈到另一通信协议栈的分组流转换,合并和分叉数据流,以及根据下行链路和/或接收器能力控制数据流,诸如根据主要的下行链路网络条件控制所转发的流的比特率。
该***包括一个或多个接收器1560,其通常能够接收、解调发送信号并将发送信号解封装成编码的媒体比特流。编码的媒体比特流可以被传送到记录存储器1570。记录存储器1570可以包括任何类型的大容量存储器以存储编码的媒体比特流。记录存储器1570可以替代地或附加地包括计算存储器,例如随机存取存储器。记录存储器1570中的编码的媒体比特流的格式可以是基本的自包含比特流格式,或者一个或多个编码的媒体比特流可以封装到容器文件中。如果存在彼此相关联的多个编码的媒体比特流,诸如音频流和视频流,则通常使用容器文件,并且接收器1560包括或附着到容器文件生成器,该容器文件生成器根据输入流产生容器文件。一些***“实时”操作,即省略记录存储器1570以及将编码的媒体比例流从接收器1560直接传送到解码器1580。在一些***中,只有所记录的流的最近部分,例如,所记录的流的最近10分钟的摘录被保存在记录存储器1570中,而任何先前所记录的数据被从记录存储器1570中丢弃。
编码的媒体比特流可以从记录存储器1570传送到解码器1580。如果有许多编码的媒体比特流,例如彼此相关联并封装到容器文件中的音频流和视频流或单个媒体比特流被封装在容器文件中例如以便于访问,使用文件解析器(图中未示出)从容器文件中解封装每个编码的媒体比特流。记录存储器1570或解码器1580可以包括文件解析器,或者文件解析器附着到记录存储器1570或解码器1580。还需要指出,***可以包括许多解码器,但是这里仅讨论一个解码器1580以简化描述而不缺乏一般性。
编码的媒体比特流可以由解码器1580进一步处理,解码器1580的输出是一个或多个未压缩媒体流。最后,例如,呈现器1590可以用扬声器或显示器再现未压缩的媒体流。接收器1560、记录存储器1570、解码器1580和呈现器1590可以驻留在相同的物理设备中,或者它们可以包括在单独的设备中。
发送器1540和/或网关1550可以被配置为执行不同呈现之间的切换,例如用于视点切换、比特率自适应和/或快速启动,和/或发送器1540和/或网关1550可以被配置为选择所发送的呈现。不同呈现之间的切换可能出于多种原因而发生,例如响应于接收器1560的请求或传送比特流的网络的主要条件,诸如吞吐量。来自接收器的请求例如可以是与先前不同的呈现对片段或子片段的请求,对发送的可伸缩性层和/或子层的改变的请求,或者对相比之前的呈现设备具有不同功能的呈现设备的改变的请求。对片段的请求可以是HTTPGET请求。对子片段的请求可以是具有字节范围的HTTP GET请求。附加地或替代地,比特率调整或比特率自适应例如可用于在流媒体服务中提供所谓的快速启动(其中所传输的流的比特率在启动之后低于信道比特率),或者随机访问流传输以便立即开始播放并实现容忍偶发分组延迟和/或重传的缓冲器占用水平。比特率自适应可以包括以各种顺序发生的多个呈现或层向上切换和呈现或层向下切换操作。
解码器1580可以被配置为执行不同呈现之间的切换,例如用于视点切换、比特率自适应和/或快速启动,和/或解码器1580可以被配置为选择所发送的呈现。不同呈现之间的切换可能出于多种原因而发生,例如以实现更快的解码操作或者调整发送的比特流,例如,就比特率而言,调整传输比特流的网络的主要条件(诸如吞吐量)。例如,如果包括解码器1580的设备是多任务设备并且将计算资源用于解码可伸缩视频比特流之外的其它目的,则可能需要更快的解码操作。在另一个示例中,当以比正常播放速度更快的速度(例如,比正常实时播放速度快两到三倍)播放内容时,可能需要更快的解码操作。解码器操作的速度可以在解码或重放期间改变,例如作为对从正常播放速度到快进播放或相反切换的变化的响应,因此可以以各种顺序进行多个层向上切换和层向下切换操作。
在上文中,已经参考术语切片片段描述了一些实施例。需要理解,实施例类似地适用于其它类似的图分割单元。例如,一些编码方案可能不包括切片片段的概念,但是可以具有切片的概念,如在包括H.264/AVC和HEVC的视频编码标准中所定义的,在这种情况下,实施例适用于切片。
在上文中,已经关于高分辨率和/或低分辨率图块集轨道、比特流和/或层描述了一些实施例。需要理解,作为区分空间分辨率的附加或替代,可以在实施例中使用术语高分辨率来指示导致比术语低分辨率更高的质量感知,例如在以下一个或多个方面:
-图像质量,可以通过使用不同的量化参数值获得
-每个颜色分量的位深
-动态范围
-色域
在上文中,已经关于两个层描述了一些实施例。需要理解,实施例类似地适用于两个以上的层。
在上文中,已经关于HEVC和/或HEVC规范中使用的术语描述了一些实施例。需要理解,实施例类似地适用于其它编解码器和编码格式以及与上述实施例中使用的术语具有等效性或相似性的其它术语。
在上文中,已经关于ISOBMFF和/或从ISOBMFF导出的格式描述了一些实施例。需要理解,实施例类似地适用于其它文件和片段格式,诸如Matroska文件格式。
在上文中,已经关于MPEG-DASH或DASH描述了一些实施例。需要理解,实施例类似地适用于其它形式的HTTP流传输,诸如Apple HTTP实时流传输(HLS)。
在上文中,已经通过引用术语流传输描述了一些实施例。需要理解,实施例类似地适用于其它形式的视频传输,例如渐进式下载、文件提交和会话视频通信,诸如视频电话。
在上文中,已经参考编码器描述了示例性实施例,需要理解,所得到的比特流和解码器可以在其中具有对应的元件。同样地,在已经参考解码器描述了示例性实施例的情况下,需要理解,编码器可以具有用于生成要由解码器解码的比特流的结构和/或计算机程序。
上面描述的本发明的实施例根据单独的编码器和解码器装置描述编解码器,以帮助理解所涉及的过程。然而,应当理解,装置、结构和操作可以实现为单个编码器-解码器装置/结构/操作。此外,编码器和解码器可以共享一些或所有公共元件。
尽管以上示例描述了在电子设备内的编解码器内操作的本发明的实施例,但是应当理解,权利要求中限定的本发明可以实现为任何视频编解码器的一部分。因此,例如,本发明的实施例可以在视频编解码器中实现,该视频编解码器可以在固定或有线通信路径上实现视频编码。
因此,用户设备可以包括视频编解码器,诸如以上在本发明的实施例中描述的那些。应当理解,术语用户设备旨在覆盖任何适合类型的无线用户设备,诸如移动电话、便携式数据处理设备或便携式网络浏览器。
此外,公共陆地移动网络(PLMN)的元件还可以包括上述视频编解码器。
通常,本发明的各种实施例可以用硬件或专用电路、软件、逻辑或其任何组合来实现。例如,一些方面可以用硬件来实现,而其它方面可以用由控制器、微处理器或其它计算设备执行的固件或软件来实现,但本发明不限于此。尽管可以将本发明的各个方面示出和描述为框图、流程图或使用一些其它图形表示,但是容易理解,这里描述的这些框、装置、***、技术或方法可以用作为非限制性示例的硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其它计算设备,或其中一些组合来实现。
本发明的实施例可以由移动设备的数据处理器可执行的计算机软件实现,例如在处理器实体中,或通过硬件,或通过软件和硬件的组合。此外,在这方面,需要指出,附图中的逻辑流程的任何框都可以表示程序步骤,或互连的逻辑电路、框和功能,或程序步骤和逻辑电路、框和功能的组合。软件可以存储在诸如在处理器内实现的存储器芯片或存储器块的物理介质上,诸如硬盘或软盘的磁介质上,以及诸如DVD及其数据变体CD的光介质上。
存储器可以是适用于本地技术环境的任何类型,并且可以使用任何适合的数据存储技术来实现,诸如基于半导体的存储器设备、磁存储器设备和***、光存储器设备和***、固定存储器和可移除存储器。数据处理器可以是适用于本地技术环境的任何类型,并且可以包括作为非限制性示例的通用计算机、专用计算机、微处理器、数字信号处理器(DSP)和基于多核处理器架构的处理器中的一个或多个。
可以在诸如集成电路模块的各种组件中实现本发明的实施例。集成电路的设计基本上是高度自动化的过程。复杂且功能强大的软件工具可用于将逻辑级设计转换为准备在半导体衬底上蚀刻和形成的半导体电路设计。
程序(诸如位于加利福尼亚州山景城的Synopsys,Inc.和加利福尼亚州圣何塞的Cadence Design公司提供的程序)使用完善的设计规则以及预存储的设计模块库自动路由导体并定位半导体芯片上的元件。一旦完成半导体电路的设计,就可以将所得到的标准化电子格式(例如,Opus、GDSII等)的设计传输到半导体制造工厂或“fab”进行制造。
以上描述已经通过示例和非限制性示例提供了对本发明示例性实施例的全面和信息性描述。然而,当结合附图和所附权利要求阅读时,鉴于前面的描述,各种修改和调整对相关领域的技术人员可变得显而易见。然而,所有这些和类似的本发明教导的修改仍将落入本发明的范围内。

Claims (15)

1.一种用于提供视频比特流的方法,包括:
获得全图比特流,所述全图比特流包括:
-编码图片,每个编码图片包括编码树单元网格并且被划分为一个或多个图块,所述一个或多个图块包含整数个编码树单元并形成矩形,以及
-运动受限图块集,所述运动受限图块集以以下方式包括每编码图片的一个或多个图块:在所述运动受限图块集内的任何样本的预测中不参考在所述运动受限图块集以外的样本值;
其特征在于:
基于所述运动受限图块集,生成指令以构造符合全图的图块集轨道,其中,所述符合全图的图块集轨道能够使用全图轨道的解析和解码过程作为任意全图轨道播放,所述指令包括从所述全图轨道中提取基本单元的一部分的提取器,其中,所述基本单元是网络抽象层(NAL)单元;以及
在所述指令中包括提取器结构,所述提取器结构包括内联构造器结构和从符合全图的图块集轨道中提取运动受限图块集的构造器结构,所述内联构造器结构包括网络抽象层报头和切片片段报头中的一个或两者。
2.根据权利要求1所述的方法,其中,所述运动受限图块集的特征在于:包含在一个或多个切片片段中,所述切片片段还包含在所述运动受限图块集以外的图块,
所述生成指令以构造包括:
将在所述运动受限图块集的右侧的图块列添加到所述符合全图的图块集轨道中或者添加到构造符合全图的图块集轨道的所述指令中。
3.根据权利要求2所述的方法,还包括:
用所添加的图块列中的图块来控制切片片段的终止。
4.根据权利要求2所述的方法,还包括:
在所添加的图块列中的最后一个图块中指示切片片段的终止。
5.根据权利要求2所述的方法,还包括:
将关于一致性裁剪窗口的信息添加到所述符合全图的图块集轨道中或者添加到构造符合全图的图块集轨道的所述指令中,其中,所述一致性裁剪窗口导致解码以从解码输出中排除所添加的图块列。
6.根据权利要求1所述的方法,其中,所述运动受限图块集的特征在于:包含在一个或多个切片片段中,所述切片片段还包含在所述运动受限图块集以外的图块,
所述生成指令以构造包括:
识别所述运动受限图块集内的最右侧图块,所述最右侧图块不是包含所述最右侧图块的第一切片片段的最后一个图块;以及
修改所述最右侧图块,以使其导致所述第一切片的终止。
7.根据权利要求1所述的方法,其中,生成指令以构造符合全图的图块集轨道包括:当与所述全图轨道中的参数集和/或切片片段报头相比较时,完全或部分地重写所述参数集和/或切片片段报头。
8.根据权利要求1所述的方法,其中,构造符合全图的图块集轨道的所述指令导致片段或子片段序列。
9.根据权利要求8所述的方法,其中,片段的统一资源定位符用导致所述片段的所述指令的子集来指示。
10.一种用于提供视频比特流的方法,包括:
从媒体呈现描述和/或媒体文件中获得第一符合全图的图块集轨道的第一特性,其中,所述符合全图的图块集轨道能够使用全图轨道的解析和解码过程作为任意全图轨道播放;
其特征在于:
基于所述第一特性,确定获得所述第一符合全图的图块集轨道的一部分或全部,其中,所述第一符合全图的图块集轨道是基于运动受限图块集,所述运动受限图块集以以下方式包括每编码图片的一个或多个图块:在所述运动受限图块集内的任何样本的预测中不参考在所述运动受限图块集以外的样本值;以及
通过提取包括从所述全图轨道中提取基本单元的一部分的提取器以及提取器结构,获得所述第一符合全图的图块集轨道的所述一部分或全部,其中,所述基本单元是网络抽象层(NAL)单元,所述提取器结构包括内联构造器结构和从符合全图的图块集轨道中提取运动受限图块集的构造器结构,所述内联构造器结构包括网络抽象层报头和切片片段报头中的一个或两者。
11.根据权利要求10所述的方法,还包括:
解码和播放所述第一符合全图的图块集轨道的所述一部分或全部。
12.根据权利要求10所述的方法,还包括:
在所述第一特性内获得覆盖空间区域的信息或者覆盖视场和视图定向两者的信息,其中,所述确定基于所述覆盖空间区域或者所述覆盖视场和所述视图定向两者。
13.根据权利要求10所述的方法,还包括:
从媒体呈现描述和/或媒体文件中获得第二符合全图的图块集轨道的第二特性;
从所述第一特性和所述第二特性中断定与所述第一符合全图的图块集轨道相比,所述第二符合全图的图块集轨道具有更低的空间分辨率、比特率、图像质量、每颜色分量的位深、动态范围和/或色域;
从所述第一特性和所述第二特性中断定所述第一符合全图的图块集轨道和所述第二符合全图的图块集轨道表示内容的不同空间部分;
基于上述断定,确定获得所述第二符合全图的图块集轨道的一部分或全部;以及
获得所述第二符合全图的图块集轨道的所述一部分或全部。
14.一种用于提供视频比特流的装置,包括:
至少一个处理器;以及
至少一个存储器,所述至少一个存储器在其上存储有代码,所述代码在由所述至少一个处理器执行时使所述装置执行根据权利要求1至13中任一项所述的方法。
15.一种计算机可读存储介质,在其上存储有由装置使用的代码,所述代码在由处理器执行时使所述装置执行根据权利要求1至13中任一项所述的方法。
CN201780011723.3A 2016-02-17 2017-02-14 用于提供视频比特流的方法及装置 Active CN108702503B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FI20165114A FI20165114A (fi) 2016-02-17 2016-02-17 Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten
FI20165114 2016-02-17
PCT/FI2017/050086 WO2017140945A1 (en) 2016-02-17 2017-02-14 An apparatus, a method and a computer program for video coding and decoding

Publications (2)

Publication Number Publication Date
CN108702503A CN108702503A (zh) 2018-10-23
CN108702503B true CN108702503B (zh) 2022-12-06

Family

ID=59625625

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780011723.3A Active CN108702503B (zh) 2016-02-17 2017-02-14 用于提供视频比特流的方法及装置

Country Status (7)

Country Link
US (1) US11323723B2 (zh)
EP (1) EP3417612A4 (zh)
KR (1) KR102089457B1 (zh)
CN (1) CN108702503B (zh)
FI (1) FI20165114A (zh)
PH (1) PH12018501385A1 (zh)
WO (1) WO2017140945A1 (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180054613A1 (en) 2016-08-22 2018-02-22 Mediatek Inc. Video encoding method and apparatus with in-loop filtering process not applied to reconstructed blocks located at image content discontinuity edge and associated video decoding method and apparatus
US11172005B2 (en) 2016-09-09 2021-11-09 Nokia Technologies Oy Method and apparatus for controlled observation point and orientation selection audiovisual content
WO2018083378A1 (en) 2016-11-01 2018-05-11 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
KR20200005539A (ko) * 2017-04-11 2020-01-15 브이아이디 스케일, 인크. 면 연속성을 사용하는 360 도 비디오 코딩
WO2019002662A1 (en) 2017-06-26 2019-01-03 Nokia Technologies Oy APPARATUS, METHOD AND COMPUTER PROGRAM FOR OMNIDIRECTIONAL VIDEO
EP3422724B1 (en) 2017-06-26 2024-05-01 Nokia Technologies Oy An apparatus, a method and a computer program for omnidirectional video
CN109587478B (zh) * 2017-09-29 2023-03-31 华为技术有限公司 一种媒体信息的处理方法及装置
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
WO2019073112A1 (en) 2017-10-09 2019-04-18 Nokia Technologies Oy APPARATUS, METHOD, AND COMPUTER PROGRAM FOR VIDEO ENCODING AND DECODING
US10659815B2 (en) 2018-03-08 2020-05-19 At&T Intellectual Property I, L.P. Method of dynamic adaptive streaming for 360-degree videos
EP4274234A3 (en) 2018-04-03 2024-02-28 Huawei Technologies Co., Ltd. File format signaling of error mitigation in sub-picture bitstream based viewport dependent video coding
GB2572996A (en) * 2018-04-19 2019-10-23 Nokia Technologies Oy Processing video patches for three-dimensional content
US10623791B2 (en) 2018-06-01 2020-04-14 At&T Intellectual Property I, L.P. Field of view prediction in live panoramic video streaming
US10812774B2 (en) 2018-06-06 2020-10-20 At&T Intellectual Property I, L.P. Methods and devices for adapting the rate of video content streaming
US10616621B2 (en) 2018-06-29 2020-04-07 At&T Intellectual Property I, L.P. Methods and devices for determining multipath routing for panoramic video content
US11019361B2 (en) 2018-08-13 2021-05-25 At&T Intellectual Property I, L.P. Methods, systems and devices for adjusting panoramic view of a camera for capturing video content
US10708494B2 (en) 2018-08-13 2020-07-07 At&T Intellectual Property I, L.P. Methods, systems and devices for adjusting panoramic video content
SG11202101229VA (en) * 2018-08-24 2021-03-30 Samsung Electronics Co Ltd Video decoding method and apparatus, and video encoding method and apparatus
CN113170238B (zh) * 2018-09-12 2023-08-01 诺基亚技术有限公司 用于视频编码和解码的装置、方法和计算机程序
GB2579389B (en) 2018-11-29 2022-07-27 Canon Kk Method, device and computer program for encapsulating media data into a media file
CN109587409B (zh) * 2018-12-10 2021-08-06 威创集团股份有限公司 视频处理器自适应级联方法、装置及***
EP3668096A1 (en) 2018-12-11 2020-06-17 Axis AB Method and device for encoding a sequence of image frames using a first and a second encoder
EP4084490A1 (en) * 2019-01-02 2022-11-02 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
US11889085B2 (en) * 2019-03-08 2024-01-30 Telefonaktiebolaget Lm Ericsson (Publ) Methods providing encoding/decoding of dependent/independent partitions and related devices
EP3942813B1 (en) * 2019-03-20 2024-05-01 V-Nova International Limited Temporal signalling for video coding technology
CA3146230A1 (en) * 2019-07-08 2020-10-22 Huawei Technologies Co., Ltd. Handling of multiple picture size and conformance windows for reference picture resampling in video coding
US20220279191A1 (en) * 2019-08-16 2022-09-01 Google Llc Face-based frame packing for video calls
EP4035413A4 (en) * 2019-09-23 2022-12-14 Telefonaktiebolaget LM Ericsson (publ.) PROVIDING SEGMENT PRESENCE INFORMATION
US11290756B2 (en) * 2019-09-23 2022-03-29 Google Llc Interruptible video transcoding
US20210192019A1 (en) * 2019-12-18 2021-06-24 Booz Allen Hamilton Inc. System and method for digital steganography purification
EP3852341B1 (en) * 2020-01-20 2023-08-30 Shenzhen Transsion Holdings Co., Ltd. Information sharing method, device and non-transitory computer readable storage medium thereof
CN111298427A (zh) * 2020-02-04 2020-06-19 南京大学 一种在虚拟现实云游戏***中降低画面抖动的方法
JP2023518751A (ja) 2020-03-19 2023-05-08 バイトダンス インコーポレイテッド ピクチャコーディングのためのイントラランダムアクセスポイント
BR112022018960A2 (pt) 2020-03-21 2022-11-16 Beijing Bytedance Network Tech Co Ltd Método de processamento de vídeo, aparelho para processamento de dados de vídeo, meios de armazenamento e de gravação não transitórios legíveis por computador
CN111586414B (zh) * 2020-04-07 2022-04-15 南京师范大学 一种基于svc和dash的360°视频流调度方法
US11445270B2 (en) * 2020-04-15 2022-09-13 Comcast Cable Communications, Llc Content information for manifest determination
JP2023522115A (ja) 2020-04-19 2023-05-26 北京字節跳動網絡技術有限公司 変換スキップ残差コーディング
WO2021254379A1 (en) 2020-06-20 2021-12-23 Beijing Bytedance Network Technology Co., Ltd. Inter layer prediction with different coding block size
EP4205383A4 (en) * 2020-09-29 2024-02-28 Beijing Bytedance Network Technology Co., Ltd. SIGNALING OF AUXILIARY INFORMATION
US11528707B2 (en) 2021-04-26 2022-12-13 Nokia Technologies Oy Primary and secondary beams based channel access
US11483368B1 (en) 2021-07-06 2022-10-25 City University Of Hong Kong Video streaming method and system
CN117678222A (zh) * 2021-10-06 2024-03-08 英特尔公司 用于减少沉浸式视频中视口切换期间的时延的方法和设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080095228A1 (en) 2006-10-20 2008-04-24 Nokia Corporation System and method for providing picture output indications in video coding
BR112012011581A2 (pt) 2009-11-04 2017-09-19 Huawei Tech Co Ltd sistema e método para streaming de conteúdo de mídia
KR20120010089A (ko) 2010-07-20 2012-02-02 삼성전자주식회사 Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치
CN103650501B (zh) 2011-08-25 2017-10-27 太阳专利托管公司 使用瓦片编码方案对视频进行编码、提取和解码的方法和装置
US9749627B2 (en) 2013-04-08 2017-08-29 Microsoft Technology Licensing, Llc Control data for motion-constrained tile set
GB2516224A (en) * 2013-07-11 2015-01-21 Nokia Corp An apparatus, a method and a computer program for video coding and decoding
EP2824884A1 (en) 2013-07-12 2015-01-14 Alcatel Lucent A video client for smooth display of a panoramic video
KR102107270B1 (ko) * 2013-07-15 2020-05-06 소니 주식회사 상호작용성을 위한 모션-구속된 타일 세트들 sei 메시지의 확장들
US9628528B2 (en) 2013-07-19 2017-04-18 Electronics And Telecommunications Research Institute Apparatus and method for providing content
GB2519746B (en) 2013-10-22 2016-12-14 Canon Kk Method, device and computer program for encapsulating scalable partitioned timed media data
JP6572222B2 (ja) * 2014-01-07 2019-09-04 キヤノン株式会社 メディアファイルの生成方法、生成装置、及びプログラム
US10205950B2 (en) 2014-02-21 2019-02-12 Panasonic Corporation Image decoding method, image encoding method, image decoding apparatus, and image encoding apparatus
GB2524531B (en) 2014-03-25 2018-02-07 Canon Kk Methods, devices, and computer programs for improving streaming of partitioned timed media data
US10694192B2 (en) * 2014-06-27 2020-06-23 Koninklijke Kpn N.V. HEVC-tiled video streaming
CN106664443B (zh) 2014-06-27 2020-03-24 皇家Kpn公司 根据hevc拼贴视频流确定感兴趣区域
TWI762260B (zh) * 2016-02-09 2022-04-21 弗勞恩霍夫爾協會 用於圖像/視訊資料串流而允許有效可縮減性或有效隨機存取之技術
WO2017188714A1 (ko) * 2016-04-26 2017-11-02 엘지전자 주식회사 360도 비디오를 전송하는 방법, 360도 비디오를 수신하는 방법, 360도 비디오 전송 장치, 360도 비디오 수신 장치

Also Published As

Publication number Publication date
WO2017140945A1 (en) 2017-08-24
KR20180113584A (ko) 2018-10-16
US11323723B2 (en) 2022-05-03
CN108702503A (zh) 2018-10-23
US20210227231A1 (en) 2021-07-22
FI20165114A (fi) 2017-08-18
EP3417612A1 (en) 2018-12-26
PH12018501385A1 (en) 2019-02-27
KR102089457B1 (ko) 2020-03-17
EP3417612A4 (en) 2019-11-06

Similar Documents

Publication Publication Date Title
CN108702503B (zh) 用于提供视频比特流的方法及装置
US10893256B2 (en) Apparatus, a method and a computer program for omnidirectional video
US11671588B2 (en) Apparatus, a method and a computer program for video coding and decoding
US20200177809A1 (en) Method and an apparatus and a computer program for encoding media content
US11689705B2 (en) Apparatus, a method and a computer program for omnidirectional video
US11140417B2 (en) Apparatus, a method and a computer program for video coding and decoding
CN107431819B (zh) 用于视频解码的方法、装置、计算机可读存储介质及视频解码器
EP4084490A1 (en) An apparatus, a method and a computer program for video coding and decoding
CN107113476B (zh) 用于视频流的方法、装置以及计算机可读存储介质
US20210194946A1 (en) An apparatus, a method and a computer program for video coding and decoding
EP3349467B1 (en) An apparatus, a method and a computer program for video coding and decoding
EP3346709A1 (en) An apparatus, a method and a computer program for video coding and decoding
WO2017140948A1 (en) An apparatus, a method and a computer program for video coding and decoding
WO2017140946A1 (en) An apparatus, a method and a computer program for video coding and decoding
WO2017093611A1 (en) A method for video encoding/decoding and an apparatus and a computer program product for implementing the method
WO2019141907A1 (en) An apparatus, a method and a computer program for omnidirectional video
WO2016185090A1 (en) An apparatus, a method and a computer program for video coding and decoding
WO2018115572A2 (en) An apparatus, a method and a computer program for video coding and decoding
CN115211131A (zh) 用于全向视频的装置、方法及计算机程序
WO2020201632A1 (en) An apparatus, a method and a computer program for omnidirectional video
US11909983B2 (en) Apparatus, a method and a computer program for video coding and decoding

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant