CN112385242A - 用于媒体流的时间信令 - Google Patents
用于媒体流的时间信令 Download PDFInfo
- Publication number
- CN112385242A CN112385242A CN201980046379.0A CN201980046379A CN112385242A CN 112385242 A CN112385242 A CN 112385242A CN 201980046379 A CN201980046379 A CN 201980046379A CN 112385242 A CN112385242 A CN 112385242A
- Authority
- CN
- China
- Prior art keywords
- duration
- previous
- sample
- media sample
- media
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000011664 signaling Effects 0.000 title description 15
- 238000000034 method Methods 0.000 claims abstract description 146
- 238000012545 processing Methods 0.000 claims abstract description 54
- 230000002829 reductive effect Effects 0.000 claims abstract description 39
- 230000015654 memory Effects 0.000 claims description 25
- 238000009877 rendering Methods 0.000 claims description 23
- 230000002123 temporal effect Effects 0.000 abstract description 24
- 230000033001 locomotion Effects 0.000 description 98
- 239000010410 layer Substances 0.000 description 60
- 230000008569 process Effects 0.000 description 42
- 239000013598 vector Substances 0.000 description 39
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical compound C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 description 36
- 239000012634 fragment Substances 0.000 description 33
- 238000010586 diagram Methods 0.000 description 32
- 238000003860 storage Methods 0.000 description 29
- 238000013139 quantization Methods 0.000 description 26
- 230000005540 biological transmission Effects 0.000 description 21
- 238000004891 communication Methods 0.000 description 20
- 238000000638 solvent extraction Methods 0.000 description 19
- 230000003044 adaptive effect Effects 0.000 description 16
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 12
- 241000023320 Luma <angiosperm> Species 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 12
- 238000005192 partition Methods 0.000 description 12
- 238000013500 data storage Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 10
- 239000011449 brick Substances 0.000 description 9
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 230000002452 interceptive effect Effects 0.000 description 7
- 238000006073 displacement reaction Methods 0.000 description 6
- 238000005538 encapsulation Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 238000013467 fragmentation Methods 0.000 description 5
- 238000006062 fragmentation reaction Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241000985610 Forpus Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000007727 signaling mechanism Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26258—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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/4402—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/85406—Content authoring involving a specific file format, e.g. MP4 format
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
描述了用于处理诸如稀疏媒体内容的样本之类的媒体内容的系统和技术,稀疏媒体内容的样本的样本持续时间可能在解码这些样本时是未知的,该系统和技术包括在当前时间实例处获得包括至少当前时间分量的当前片段。从该当前时间分量获得针对至少一个媒体样本的经修改持续时间,该经修改持续时间指示先前片段的先前媒体样本的呈现将相对于该当前时间实例扩展或缩减的持续时间。该至少一个媒体样本在基于该经修改持续时间的持续时间内呈现。
Description
技术领域
本申请涉及用于媒体流的系统和方法。例如,本公开的各方面是针对媒体流的时间信令。
背景技术
许多设备和系统允许处理并输出媒体数据以供消耗。媒体数据可包括视频数据和/或音频数据。例如,数字视频数据可包括大量数据以满足消费者和视频提供者的需求。例如,视频数据的消费者需要最优质量(具有高保真度、分辨率、帧率等)的视频。结果,满足这些需求所需的大量视频数据对于处理和存储视频数据的通信网络和设备造成负担。
各种视频编码技术可用于压缩视频数据。根据一个或多个视频编码标准执行视频编码。例如,视频编码标准包括ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262或ISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、ITU-T H.264或ISO/IECMPEG-4 AVC,包括其可调式视频编码(SVC)和多视图视频编码(MVC)扩展;以及也称为ITU-TH.265和ISO/IEC23008-2的高效视频编码(HEVC),包括其可调式编码扩展(即,可调式高效视频编码SHVC)和多视图扩展(即,多视图高效视频编码MV-HEVC)。视频编码通常使用利用存在于视频图像或序列中的冗余的预测方法(例如,帧间预测、帧内预测等)。视频编码技术的重要目标为将视频数据压缩成使用较低比特率的形式,同时避免视频质量的降级或最小化视频质量的降级。
在视频数据已编码之后,可将视频数据封装以用于传输或存储。可将视频数据组装成符合多种标准(诸如国际标准化组织(ISO)基本媒体文件格式及其扩展,诸如ITU-TH.264/AVC)中的任一种的视频文件。这种封装视频数据可以多种方式运输,诸如使用网络流通过计算机网络传输。
发明内容
本文中描述用于提供用于媒体流(诸如低延时媒体流或其他媒体流)的时间信令的技术和系统。例如,技术和系统可呈现其样本持续时间可能在解码样本时是未知的样本(例如,稀疏媒体内容或其他媒体内容的样本)。根据一些示例,先前样本的样本持续时间可基于当前样本中提供的指示或信令而扩展或缩减。当前样本可包括当前正被处理的样本,并且先前样本可包括在当前样本之前接收、解码和/或渲染的样本。在一些示例中,先前样本可包括未知持续时间的稀疏内容。例如,先前样本可以是包含具有未知持续时间的字幕或其他稀疏媒体内容的媒体帧(例如视频帧)。包括先前样本的先前片段可包括先前样本的样本持续时间,其中样本持续时间被设定为合理的估计值。
一旦解码当前样本,就可获得经修改持续时间,当前样本可包括用于扩展或缩减先前样本的样本持续时间的信令。例如,如果在当前时间实例处解码包括当前样本的当前片段,则可从当前片段获得经修改持续时间。经修改持续时间可指示先前样本的呈现将相对于当前时间实例扩展或缩减的持续时间。至少一个媒体样本可在基于经修改持续时间的持续时间内由播放器设备呈现。例如,呈现至少一个媒体样本可包括在经扩展持续时间内呈现先前媒体样本或呈现在当前时间实例处开始的新媒体样本。在一些示例中,呈现至少一个媒体样本可包括缩减用于呈现先前媒体样本的样本持续时间。
根据至少一个示例,提供一种处理媒体内容的方法。该方法可包括在当前时间实例处获得包括至少当前时间分量的当前片段。该方法可进一步包括从该当前时间分量确定针对至少一个媒体样本的经修改持续时间,该经修改持续时间指示先前片段的先前媒体样本的呈现将相对于该当前时间实例扩展或缩减的持续时间。该方法可进一步包括在基于经修改持续时间的持续时间内呈现该至少一个媒体样本。
在另一示例中,提供一种用于处理媒体内容的装置。该装置包括存储器和实施于电路中的处理器。该装置被配置为并且可以在当前时间实例处获得包括至少当前时间分量的当前片段。该装置进一步被配置为并且可以从该当前时间分量确定针对至少一个媒体样本的经修改持续时间,该经修改持续时间指示先前片段的先前媒体样本的呈现将相对于该当前时间实例扩展或缩减的持续时间。该装置进一步被配置为并且可以在基于经修改持续时间的持续时间内呈现该至少一个媒体样本。
在另一示例中,提供一种其上存储有指令的非暂时性计算机可读介质,该指令在由一个或多个处理器执行时使得该一个或多个处理器:在当前时间实例处获得包括至少当前时间分量的当前片段;从该当前时间分量确定针对至少一个媒体样本的经修改持续时间,该经修改持续时间指示先前片段的先前媒体样本的呈现将相对于该当前时间实例扩展或缩减的持续时间;以及在基于该经修改持续时间的持续时间内呈现该至少一个媒体样本。
在另一示例中,提供一种用于处理媒体内容的装置。该装置包括:用于在当前时间实例处获得包括至少当前时间分量的当前片段的部件;用于从该当前时间分量确定针对至少一个媒体样本的经修改持续时间的部件,该经修改持续时间指示先前片段的先前媒体样本的呈现将相对于该当前时间实例扩展或缩减的持续时间;以及用于在基于该经修改持续时间的持续时间内呈现该至少一个媒体样本的部件。
在上文所描述的方法、装置和计算机可读介质的一些方面中,经修改持续时间包括扩展持续时间,该扩展持续时间指示该先前媒体样本的呈现将相对于当前时间实例扩展的持续时间。
在上文所描述的方法、装置和计算机可读介质的一些方面中,经修改持续时间包括缩减持续时间,该缩减持续时间指示该先前媒体样本的呈现将相对于当前时间实例缩减的持续时间。
在上文所描述的方法、装置和计算机可读介质的一些方面中,呈现该至少一个媒体样本包括将先前媒体样本的呈现的持续时间扩展至少该扩展持续时间。
在上文所描述的方法、装置和计算机可读介质的一些方面中,呈现该至少一个媒体样本包括在当前时间实例处将新的媒体样本至少呈现该扩展持续时间。
在上文所描述的方法、装置和计算机可读介质的一些方面中,呈现该至少一个媒体样本包括将先前媒体样本的呈现的持续时间缩减该缩减持续时间。
在上文所描述的方法、装置和计算机可读介质的一些方面中,在先前时间实例处获得先前媒体样本,该先前时间实例在当前时间实例之前。
在上文所描述的方法、装置和计算机可读介质的一些方面中,当前片段为不具有媒体样本数据的空片段。在一些示例中,当前片段包括冗余媒体样本,其中该冗余媒体样本匹配先前媒体样本。
在上文所描述的方法、装置和计算机可读介质的一些方面中,当前片段包括冗余媒体样本字段,该冗余媒体样本字段用于提供该冗余媒体样本的指示。
在上文所描述的方法、装置和计算机可读介质的一些方面中,呈现该至少一个媒体样本包括显示该至少一个媒体样本的视频内容。
在上文所描述的方法、装置和计算机可读介质的一些方面中,呈现该至少一个媒体样本包括呈现该至少一个媒体样本的音频内容。
在上文所描述的方法、装置和计算机可读介质的一些方面中,获得该当前片段包括接收和解码当前片段。
在上文所描述的方法、装置和计算机可读介质的一些方面中,当前片段包括播放轨片段解码时间逻辑框(tfdt)逻辑框,该tfdt逻辑框包括当前时间分量。
在上文所描述的方法、装置和计算机可读介质的一些方面中,当前时间分量包括baseMediaDecodeTime值。
在上文所描述的方法、装置和计算机可读介质的一些方面中,先前片段包括用于呈现先前媒体样本的样本持续时间,并且该样本持续时间包括预定合理的持续时间。
在上文所描述的方法、装置和计算机可读介质的一些方面中,该至少一个媒体样本包括稀疏内容,其中用于呈现该稀疏内容的持续时间在先前片段被解码时的先前时间实例处是未知的。
在上文所描述的方法、装置和计算机可读介质的一些方面中,该装置包括解码器。
在上文所描述的方法、装置和计算机可读介质的一些方面中,该装置包括用于呈现媒体内容的播放器设备。
根据至少一个示例,提供一种提供媒体内容的方法。该方法可包括在先前时间实例处提供包括先前媒体样本的先前片段,其中用于呈现该先前媒体样本的时间在该先前时间实例处是未知的。该方法可进一步包括在当前时间实例处提供包括至少当前时间分量的当前片段,其中该当前时间分量包括针对该先前媒体样本的经修改持续时间,该经修改持续时间指示该先前媒体样本的呈现将相对于该当前时间实例扩展或缩减的持续时间。
在另一示例中,提供一种用于提供媒体内容的装置。该装置包括存储器和实施于电路中的处理器。该处理器被配置为并且可以在先前时间实例处提供包括先前媒体样本的先前片段,其中用于呈现该先前媒体样本的持续时间在该先前时间实例处是未知的。该处理器进一步被配置为并且可以在当前时间实例处提供包括至少当前时间分量的当前片段,其中该当前时间分量包括针对该先前媒体样本的经修改持续时间,该经修改持续时间指示该先前媒体样本的呈现将相对于该当前时间实例扩展或缩减的持续时间。
在另一示例中,提供一种其上存储有指令的非暂时性计算机可读介质,该指令在由一个或多个处理器执行时使得该一个或多个处理器:在先前时间实例处提供包括先前媒体样本的先前片段,其中用于呈现该先前媒体样本的持续时间在该先前时间实例处是未知的;以及在当前时间实例处提供包括至少当前时间分量的当前片段,其中该当前时间分量包括针对该先前媒体样本的经修改持续时间,该经修改持续时间指示该先前媒体样本的呈现将相对于该当前时间实例扩展或缩减的持续时间。
在另一示例中,提供一种用于提供媒体内容的装置。该装置包括:用于在先前时间实例处提供包括先前媒体样本的先前片段的部件,其中用于呈现该先前媒体样本的持续时间在该先前时间实例处是未知的;以及用于在当前时间实例处提供包括至少当前时间分量的当前片段的部件,其中该当前时间分量包括针对该先前媒体样本的经修改持续时间,该经修改持续时间指示该先前媒体样本的呈现将相对于该当前时间实例扩展或缩减的持续时间。
该发明内容并不意图识别所要求主题的关键或基本特征,也不意图单独使用以确定所要求主题的范围。应参考本专利的整个说明书的适当部分、任何或所有附图以及每个权利要求来理解该主题。
在参考以下说明书、权利要求和所附附图时,前述内容连同其他特征和实施例将变得更显而易见。
附图说明
下文参考以下附图详细描述本发明的说明性实施例:
图1为示出根据一些示例的编码设备和解码设备的示例的框图;
图2为示出根据一些示例的遵循ISO基本媒体文件格式(ISO base media fileformat,ISOBMFF)的示例文件结构的图;
图3为示出根据一些示例的包含视频呈现的数据和元数据的ISO基本媒体文件(根据ISOBMFF格式化)的示例的图;
图4为示出根据一些示例的用于实时流媒体的分段的示例的图;
图5为示出根据一些示例的用于低延时实时流媒体的片段化的示例的图;
图6为示出根据一些示例的用于低延时实时流媒体的片段化的另一示例的图;
图7为示出根据一些示例的用于音频和视频的正常操作的DASH封装器的示例的图;
图8为示出根据一些示例的包括稀疏内容的媒体呈现的示例的图;
图9为示出根据一些示例的用于缩减稀疏内容的样本持续时间的处理媒体内容的示例的图;
图10为示出根据一些示例的用于扩展稀疏内容的样本持续时间的处理媒体内容的示例的图;
图11为示出根据一些示例的处理媒体内容的过程的示例的流程图;
图12为示出根据一些示例的提供媒体内容的过程的示例的流程图;
图13为示出根据一些示例的示例视频编码设备的框图;以及
图14为示出根据一些示例的示例视频解码设备的框图。
具体实施方式
下面提供本发明的某些方面和实施例。这些方面和实施例中的一些可独立地应用并且其中的一些可以组合地应用,这将对本领域技术人员显而易见。在以下描述中,出于解释的目的,阐述众多特定细节以便提供对本发明的实施例的透彻理解。然而,显而易见的是,各种实施例可在没有这些特定细节的情况下实践。附图和描述不意图为限定性的。
随后描述仅提供示范性实施例且并不意图限制本发明的范围、可应用性或配置。实际上,示范性实施例的随后描述将为本领域技术人员提供能够实施示范性实施例的描述。应理解,可在不背离如所附权利要求中所阐述的本申请的精神和范围的情况下对元素的功能和布置做出各种变化。
视频编码设备实施视频压缩技术以高效地编码和解码视频数据。视频压缩技术可包括应用不同预测模式(包括空间预测(例如,图帧内预测或帧内预测)、时间预测(例如,图帧间预测或帧间预测)、层间预测(跨视频数据的不同层)和/或其他预测技术)以缩减或移除视频序列的固有冗余。视频编码器可将原始视频序列的每个画面分割成被称作视频区块或编码单元(下文更详细地描述)的矩形区。可使用特定预测模式来编码这些视频区块。
视频区块可以用一种或多种方式分成一组或多组较小区块。区块可包括编码树区块、预测区块、变换区块和/或其他合适区块。除非另外指定,否则通常对“区块”的参考可以指这些视频区块(例如,编码树区块(CTB)、编码区块、预测区块、变换区块或其他合适区块或子区块,如将由本领域普通技术人员所理解的)。另外,这些区块中的每一个在本文中也可互换地称为“单元”(例如编码树单元(CTU)、编码单元、预测单元(PU)、变换单元(TU)等)。在一些情况下,单元可指示被编码于比特流中的编码逻辑单元,而区块可指示过程所指向的视频帧缓冲器的部分。
对于帧间预测模式,视频编码器可搜寻与定位在另一时间位置中的帧(或画面)(被称作参考帧或参考画面)中正被编码的区块类似的区块。视频编码器可将搜寻限定于距待编码的区块的某一空间位移。可使用包括水平位移分量和垂直位移分量的二维(2D)运动向量来定位最好匹配。对于帧内预测模式,视频编码器可基于来自同一画面内的先前经编码相邻区块的数据使用空间预测技术而形成预测区块。
视频编码器可确定预测误差。例如,预测可被确定为正被编码的区块与预测区块的图像样本或像素值之间的差。预测误差也可被称作残差。视频编码器也可将变换应用于预测误差(例如,离散余弦变换(DCT)或其他合适的变换)从而产生变换系数。在变换之后,视频编码器可量化变换系数。可使用语法元素来表示经量化变换系数和运动向量,并且其连同控制信息一起形成视频序列的经编码表示。在一些情况下,视频编码器可以对语法元素进行熵编码,从而进一步缩减其表示所需的比特数。
视频解码器可使用上文所论述的语法元素和控制信息来构建用于解码当前帧的预测性数据(例如,预测性区块)。例如,视频解码器可将预测区块与经压缩预测误差相加。视频解码器可通过使用经量化系数而加权变换基底函数来确定经压缩预测误差。重建帧与原始帧之间的差被称作重建误差。
本文中所描述的技术可应用于现有视频编解码器中的任何一个(例如高效视频编码(HEVC)、高级视频编码(AVC)或其他合适现有视频编解码器),和/或可以是用于正被开发的任何视频编码标准和/或将来视频编码标准(诸如多功能视频编码(VVC)、联合探索模型(JEM)和/或在开发中或将开发的其他视频编码标准)的高效编码工具。虽然本文中出于说明的目的使用视频编码来提供示例,但在一些情况下,可使用任何编码设备(诸如图像编码器(例如,JPEG编码器和/或解码器等)、视频编码器(例如,视频编码器和/或视频解码器)或其他合适的编码设备)执行本文中所描述的技术。
图1为示出包括编码设备104和解码设备112的系统100的示例的框图。编码设备104可以是源设备的部分,并且解码设备112可以是接收设备的部分。源设备和/或接收设备可包括电子设备,诸如移动或静止电话手机(例如,智能电话、蜂窝电话等)、台式计算机、膝上型或笔记本计算机、平板计算机、机顶盒、电视、摄影机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备、互联网协议(IP)摄影机或任何其他合适的电子设备。在一些示例中,源设备和接收设备可包括用于无线通信的一个或多个无线收发器。本文中所描述的编码技术适用于各种多媒体应用(包括流视频传输(例如,经由互联网)、电视广播或传输、编码数字视频以供存储于数据存储介质上、解码存储于数据存储介质上的数字视频、或其他应用)中的视频编码。在一些示例中,系统100可支持单向或双向视频传输以支持诸如视频会议、视频流、视频播放、视频广播、游戏和/或视频电话的应用。
编码设备104(或编码器)可用于使用视频编码标准或协议编码视频数据以产生经编码视频比特流。视频编码标准的示例包括ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-TH.262或ISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、ITU-T H.264(也称为ISO/IEC MPEG-4 AVC)(包括其可调式视频编码(SVC)和多视图视频编码(MVC)扩展)以及高效视频编码(HEVC)或ITU-TH.265。存在涉及多层视频编码的HEVC的各种扩展,包括范围和屏幕内容编码扩展、3D视频编码(3D-HEVC)和多视图扩展(MV-HEVC)以及可调式扩展(SHVC)。HEVC及其扩展已由ITU-T视频编码专家组(VCEG)和ISO/IEC动画专家组(MPEG)的视频编码联合协作小组(JCT-VC)以及3D视频编码扩展开发联合协作小组(JCT-3V)开发。
MPEG和ITU-T VCEG也已形成联合探索视频小组(JVET)以探索和开发用于下一代视频编码标准(称为多功能视频编码(VVC))的新的视频编码工具。参考软件称为VVC测试模型(VTM)。VVC的目标是提供对于现有HEVC标准的压缩效能的显著改善,辅助较高质量视频服务和新兴应用(例如360°全向沉浸式多媒体、高动态范围(HDR)视频等)的部署。
本文中所描述的许多实施例提供使用VTM、VVC、HEVC和/或其扩展的示例。然而,本文中所描述的技术和系统也可适用于其他编码标准,诸如AVC、MPEG、JPEG(或用于静止图像的其他编码标准)、其扩展,或已经可用或尚未可用或开发的其他合适编码标准。因此,虽然可参考特定视频编码标准描述本文中所描述的技术和系统,但一般本领域技术人员将了解,描述不应解译为仅适用于该特定标准。
参看图1,视频源102可将视频数据提供至编码设备104。视频源102可以是源设备的部分,或可以是除源设备以外的设备的部分。视频源102可包括视频捕获设备(例如,视频摄影机、摄影机电话、视频电话等)、包含经存储视频的视频存档、提供视频数据的视频服务器或内容提供商、从视频服务器或内容提供商接收视频的视频馈入接口、用于产生计算机图形视频数据的计算机图形系统、这些源的组合或任何其他合适的视频源。
来自视频源102的视频数据可包括一个或多个输入画面。画面也可被称为“帧”。画面或帧是在一些情况下作为视频的部分的静态图像。在一些示例中,来自视频源102的数据可以是并非视频的部分的静态图像。在HEVC、VVC以及其他视频编码规范中,视频序列可包括一系列画面。画面可包括三个图像样本数组,被表示为SL、SCb和SCr。SL为亮度图像样本的二维数组,SCb为Cb色度图像样本的二维数组并且SCr为Cr色度图像样本的二维数组。色度(Chrominance)图像样本在本文中也可被称作“色度(chroma)”图像样本。图像样本可以指像素的单独分量(例如亮度样本、色度蓝色样本、色度红色样本、蓝色样本、绿色样本、红色样本等)。像素可以指画面数组中的给定位置(例如被称作像素位置)的全部分量(例如包括亮度和色度图像样本)。在其他情况下,画面可以是单色并且可仅仅包括亮度图像样本的数组,在该情况下术语像素和图像样本可互换地使用。
编码设备104的编码器引擎106(或编码器)编码视频数据以产生经编码视频比特流。在一些示例中,经编码视频比特流(或“视频比特流”或“比特流”)是一系列的一个或多个经编码视频序列。经编码视频序列(CVS)包括一系列存取单元(AU),其始于在基础层中具有随机存取点画面且具有某些性质的AU,直到且不包括在基础层中具有随机存取点画面且具有某些性质的下一AU。例如,开始CVS的随机存取点画面的某些性质可包括等于1的RASL标志(例如,NoRaslOutputFlag)。否则,随机存取点画面(具有等于0的RASL标志)不开始CVS。存取单元(AU)包括一个或多个经编码画面和对应于共享相同输出时间的经编码画面的控制信息。画面的经编码条带在比特流层级囊封到称为网络抽象层(NAL)单元的数据单元中。例如,HEVC视频比特流可包括一个或多个CVS,该一个或多个CVS包括NAL单元。NAL单元中的每一个具有NAL单元标头。在一个示例中,标头对于H.264/AVC(除了多层扩展以外)来说为一个字节且对于HEVC来说为两个字节。NAL单元标头中的语法元素采取指定比特,并且因此对所有种类的系统和运输层可见,诸如运输流、实时运输(RTP)协议、文件格式等。
HEVC标准中存在两种类别的NAL单元,包括视频编码层(VCL)NAL单元和非VCL NAL单元。VCL NAL单元包括经编码画面数据的一个条带或条带片段(如下描述),并且非VCLNAL单元包括关于一个或多个经编码画面的控制信息。在一些情况下,NAL单元可被称作分组。HEVCAU包括含有经编码画面数据的VCL NAL单元以及对应于经编码画面数据的非VCLNAL单元(如果存在)。
NAL单元可包含形成视频数据的经编码表示(诸如,视频中的画面的经编码表示)的比特序列(例如,经编码视频比特流、比特流的CVS等)。编码器引擎106通过将每个画面分割成多个条带来产生画面的经编码表示。条带独立于其他条带,以使得在不依赖于来自同一画面内的其他条带的数据的情况下编码该条带中的信息。条带包括一个或多个条带片段,该一个或多个条带片段包括独立条带片段以及(如果存在)取决于先前条带片段的一个或多个相关条带片段。
在HEVC中,条带接着分割成亮度图像样本和色度图像样本的编码树区块(CTB)。亮度图像样本的CTB和色度图像样本的一个或多个CTB连同图像样本的语法被称作编码树单元(CTU)。CTU也可被称作“树区块”或“最大编码单元”(LCU)。CTU是用于HEVC编码的基本处理单元。CTU可被划分成具有不同大小的多个编码单元(CU)。CU包含被称作编码区块(CB)的亮度和色度图像样本数组。
亮度和色度CB可进一步被划分成预测区块(PB)。PB是使用相同运动参数进行帧间预测或区块内复制预测(当可用或被启用以供使用时)的亮度分量或色度分量的图像样本的区块。亮度PB和一个或多个色度PB连同相关联语法形成预测单元(PU)。对于帧间预测,一组运动参数(例如,一个或多个运动向量、参考索引等)在用于每个PU的比特流中被发信号通知并且被用于亮度PB和一个或多个色度PB的帧间预测。运动参数也可被称作运动信息。CB也可被分割成一个或多个变换区块(TB)。TB表示相同二维变换应用于其上以用于编码预测残差信号的色彩分量的图像样本的正方形区块。变换单元(TU)表示亮度和色度图像样本的TB以及对应语法元素。
CU的大小对应于编码模式的大小,并且可以是正方形形状。例如,CU的大小可以是8×8样本、16×16样本、32×32样本、64×64样本或达到相应CTU的大小的任何其他适当大小。短语“N×N”在本文中用于指代就垂直维度和水平维度而言的视频区块的图像样本或像素尺寸(例如,8像素×8像素或8样本×8样本)。可按列和行来配置区块中的图像样本或像素。在一些实施例中,区块在水平方向上可能不具有与在垂直方向上数目相同的图像样本或像素。与CU相关联的语法数据可描述例如将CU分割成一个或多个PU。分割模式可以在CU是被帧内预测模式编码还是被帧间预测模式编码之间有所不同。PU可被分割成非正方形形状。与CU相关联的语法数据也可描述(例如)根据CTU将CU分割成一个或多个TU。TU可以是正方形或非正方形形状。
根据HEVC标准,可使用变换单元(TU)来执行变换。TU可针对不同CU而变化。可基于给定CU内的PU的大小而对TU设定大小。TU可与PU大小相同或小于PU。在一些示例中,可使用被称为残差四叉树(RQT)的四叉树结构来将对应于CU的残差图像样本细分为较小单元。RQT的叶节点可对应于TU。与TU相关联的像素差值(或图像样本差值)可被变换以产生变换系数。变换系数可接着由编码器引擎106量化。
一旦视频数据的画面被分割成CU,编码器引擎106就使用预测模式来预测每个PU。接着从原始视频数据减去预测单元或预测区块以得到残差(如下描述)。对于每个CU,可使用语法数据在比特流内部发信号通知预测模式。预测模式可包括帧内预测(或画面内预测)或帧间预测(或画面间预测)。帧内预测使用画面内的空间相邻图像样本之间的相关性。例如,在使用帧内预测的情况下,使用(例如)DC预测以发现PU的平均值、使用平面预测以使平面表面拟合于PU、使用方向预测以从相邻数据外插或使用任何其他合适类型的预测,从而从同一画面中的相邻图像数据预测每个PU。帧间预测使用画面之间的时间相关性以便导出图像样本的区块的运动补偿预测。例如,在使用帧间预测的情况下,使用运动补偿预测从(按输出次序在当前画面之前或之后的)一个或多个参考画面中的图像数据预测每个PU。可以(例如)在CU层级决定是使用画面间预测还是使用画面内预测来编码画面区域。
编码器引擎106和解码器引擎116(如下更详细地描述)可被配置以根据VVC操作。根据VVC,视频编码器(诸如编码器引擎106和/或解码器引擎116)将画面分割成多个编码树单元(CTU)。视频编码器可根据树结构分割CTU,诸如四叉二叉树(QTBT)结构或多类型树(MTT)结构。QTBT结构移除多个分割类型的概念,诸如HEVC的CU、PU和TU之间的间距。QTBT结构包括两个层级:根据四叉树分割而分割的第一层级,以及根据二叉树分割而分割的第二层级。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于编码单元(CU)。
在MTT分割结构中,区块可使用四叉树分割、二叉树分割以及一个或多个类型的三叉树分割来分割。三叉树分割是其中区块被划分成三个子区块的分割。在一些示例中,三叉树分割在不经由中心划分原始区块的情况下将区块分成三个子区块。MTT中的分割类型(例如四叉树、二叉树和三叉树)可以是对称或不对称的。
在一些示例中,视频编码器可使用单个QTBT或MTT结构来表示亮度和色度分量中的每一个,而在其他示例中,视频编码器可使用两个或大于两个的QTBT或MTT结构,诸如用于亮度分量的一个QTBT或MTT结构以及用于两个色度分量的另一QTBT或MTT结构(或用于相应色度分量的两个QTBT和/或MTT结构)。
在VVC中,画面可以被分割成条带(slice)、画面块(tile)和砖块(brick)。一般而言,砖块可以是画面中的特定画面块内的CTU列的矩形区。画面块可以是画面中的特定画面块行和特定画面块列内的CTU的矩形区。画面块行是具有等于画面的高度的高度以及由画面参数集中的语法元素指定的宽度的CTU的矩形区。画面块列是具有由画面参数集中的语法元素指定的高度以及等于画面的宽度的宽度的CTU的矩形区。在一些情况下,画面块可以被分割成多个砖块,多个砖块中的每一个可包括画面块内的一个或多个CTU列。未分割成多个砖块的画面块也称作砖块。然而,作为画面块的真子集的砖块不被称作画面块。条带可以是被独占地包含在单个NAL单元中的画面的整数数量的砖块。在一些情况下,条带可包括多个完整画面块或仅包括一个画面块的完整砖块的连续序列。
视频编码器可被配置为使用根据HEVC的四叉树分割、QTBT分割、MTT分割或其他分割结构。出于说明性目的,本文中的描述可以指QTBT分割。然而,应理解本发明的技术也可应用于被配置为使用四叉树分割或其他类型的分割的视频编码器。
在一些示例中,画面的一个或多个条带被分配条带类型。条带类型包括I条带、P条带和B条带。I条带(帧内,可独立解码)是仅由帧内预测来编码的画面的条带,并且因此可独立解码,因为I条带仅需要帧内的数据来预测条带的任何预测单元或预测区块。P条带(单向预测帧)是可通过帧内预测和单向帧间预测来编码的画面的条带。通过帧内预测或帧间预测来编码P条带内的每个预测单元或预测区块。当帧间预测适用时,预测单元或预测区块仅由一个参考画面预测,并且因此参考图像样本仅来自一个帧的一个参考区。B条带(双向预测性帧)是可通过帧内预测和帧间预测(例如,双向预测或单向预测)来编码的画面的条带。B条带的预测单元或预测区块可从两个参考画面来双向预测,其中每个画面贡献一个参考区并且两个参考区的图像样本集合被加权(例如运用相等权重或运用不同权重)以产生双向预测区块的预测信号。如上文所解释,一个画面的条带被独立编码。在一些情况下,画面可被编码为仅一个条带。
如上文所提及,画面内预测使用画面内的空间相邻图像样本之间的相关性。画面间预测使用画面之间的时间相关性以便导出图像样本的区块的运动补偿预测。使用平移运动模型,先前解码的画面(参考画面)中的区块的位置由运动向量(△x,△y)指示,其中,△x指定参考区块相对于当前区块的位置的水平位移,△y指定参考区块相对于当前区块的位置的垂直位移。在一些情况下,运动向量(△x,△y)可以按照整数样本准确度(也称作整数准确度),在该情况下运动向量指向参考帧的整数像素网格(或整数像素取样网格)。在一些情况下,运动向量(△x,△y)可具有分数样本准确度(也被称作分数像素准确度或非整数准确度)以更准确地捕获基础对象的移动而不限于参考帧的整数像素网格。运动向量的准确度可由运动向量的量化层级来表达。例如,量化层级可以是整数准确度(例如,1像素)或分数像素准确度(例如,1/4像素、1/2像素或其他子像素值)。当对应运动向量具有分数样本准确度时,对参考画面应用内插以导出预测信号。例如,在整数位置处可用的图像样本可被滤波(例如使用一个或多个内插滤波器)以估计在分数位置处的值。先前经解码参考画面由参考画面列表的参考索引(refldx)指示。运动向量和参考索引可被称作运动参数。可执行两种画面间预测,包括单向预测和双向预测。
在帧间预测使用双向预测情况下,两组运动参数(△x0、y0、refIdx0以及△x1、y1、refIdx1)用于产生两个经运动补偿的预测(从相同参考画面或可能从不同参考画面)。例如,利用双向预测,每个预测区块使用两个运动补偿预测信号,并且产生B预测单元。接着组合两个运动补偿预测以得到最终运动补偿预测。例如,可通过取平均值来组合两个运动补偿预测。在另一示例中,可使用加权预测,在该情况下,不同权重可应用于每个运动补偿预测。可用于双向预测中的参考画面存储于两个单独列表(表示为列表0和列表1)中。可使用运动估计过程在编码器处导出运动参数。
在帧间预测使用单向预测情况下,一组运动参数(△x0、y0、refIdx0)用于从参考画面产生经运动补偿的预测。例如,利用单向预测,每一预测区块使用最多一个运动补偿预测信号,并且产生P预测单元。
PU可包括与预测过程相关的数据(例如,运动参数或其他合适数据)。例如,当使用帧内预测编码PU时,PU可包括描述用于PU的帧内预测模式的数据。作为另一示例,当使用帧间预测来编码PU时,PU可包括定义用于PU的运动向量的数据。定义用于PU的运动向量的数据可描述(例如)运动向量的水平分量(△x)、运动向量的垂直分量(△y)、用于运动向量的分辨率(例如,整数精度、四分之一像素精度或八分之一像素精度)、运动向量指向的参考画面、参考索引、用于运动向量的参考画面列表(例如,列表0、列表1或列表C),或其任何组合。
编码设备104接着可执行变换和量化。例如,在预测之后,编码器引擎106可计算对应于PU的残差值。残差值可包括正被编码的像素(或图像样本)的当前区块(PU)与用于预测当前区块的预测区块(例如,当前区块的预测版本)之间的像素差值(或图像样本差值)。例如,在产生预测区块(例如,使用帧间预测或帧内预测)之后,编码器引擎106可通过从当前区块减去由预测单元产生的预测区块来产生残差区块。残差区块包括量化当前区块的像素值(或图像样本值)与预测区块的像素值(或图像样本值)之间的差的一组像素差值(或图像样本差值)。在一些示例中,残差区块可以用二维区块格式(例如像素值或样本值的二维矩阵或数组)表示。在这种示例中,残差区块为像素值(或图像样本值)的二维表示。
使用区块变换来变换可在执行预测之后剩余的任何残差数据,该变换可基于离散余弦变换、离散正弦变换、整数变换、小波变换、其他合适的变换函数或其任何组合。在一些情况下,一个或多个区块变换(例如,大小32×32、16×16、8×8、4×4或其他合适大小)可应用于每个CU中的残差数据。在一些实施例中,TU可用于由编码器引擎106实施的变换和量化过程。给定的具有一个或多个PU的CU也可包括一个或多个TU。如下文进一步详细描述,可使用区块变换将残差值变换成变换系数,并且接着可使用TU来量化和扫描残差值以产生用于熵编码的串行化变换系数。
在一些实施例中,在使用CU的PU进行帧内预测性编码或帧间预测性编码之后,编码器引擎106可计算CU的TU的残差数据。PU可包括空间域(或像素域)中的像素数据(或图像样本)。在应用区块变换之后,TU可包括变换域中的系数。如先前所提及,残差数据可以对应于未经编码画面的像素与对应于PU的预测值之间的像素差值(或图像样本之间的图像样本差值)。编码器引擎106可形成包括CU的残差数据的TU,并且接着可对TU进行变换以产生CU的变换系数。
编码器引擎106可执行变换系数的量化。量化通过量化变换系数以减少用于表示系数的数据量而提供进一步压缩。例如,量化可缩减与系数中的一些或所有相关联的比特深度。在一个示例中,具有n位值的系数可在量化期间被四舍五入为m位值,其中n大于m。
在量化被执行后,经编码视频比特流包括经量化变换系数、预测信息(例如,预测模式、运动向量、区块向量等)、分割信息以及任何其他合适的数据,诸如其他语法数据。接着可由编码器引擎106对经编码视频比特流的不同元素进行熵编码。在一些示例中,编码器引擎106可使用预定义扫描次序来扫描经量化变换系数,以产生可被熵编码的串行化向量。在一些示例中,编码器引擎106可执行自适应扫描。在扫描经量化变换系数以形成向量(例如一维向量)之后,编码器引擎106可对该向量进行熵编码。例如,编码器引擎106可使用上下文自适应性可变长度编码、上下文自适应性二进制算术编码、基于语法的上下文自适应性二进制算术编码、概率区间分割熵编码或另一合适的熵编码技术。
编码设备104的输出110可经由通信链路120将组成经编码视频比特流数据的NAL单元发送至接收设备的解码设备112。解码设备112的输入114可接收NAL单元。通信链路120可包括由无线网络、有线网络或有线网络与无线网络的组合提供的信道。无线网络可包括任何无线接口或无线接口的组合,并且可包括任何适合的无线网络(例如,互联网或其他广域网、基于分组的网络、WiFiTM、射频(RF)、UWB、WiFi-Direct、蜂窝、长期演进(LTE)、WiMaxTM等)。有线网络可包括任何有线接口(例如,光纤、以太网络、电力线以太网络、经由同轴电缆的以太网络、数字信号线(DSL)等)。可使用各种装备(诸如基站、路由器、存取点、网桥、网关、交换器等)来实施有线和/或无线网络。可根据通信标准(诸如无线通信协议)调制经编码视频比特流数据,并且将其传输至接收设备。
在一些示例中,编码设备104可将经编码视频比特流数据存储于存储装置108中。输出110可从编码器引擎106或从存储装置108检索经编码视频比特流数据。存储装置108可包括多种分布式或本地存取的数据存储介质中的任一个。例如,存储装置108可包括硬盘驱动器、存储光盘、闪存、易失性或非易失性存储器或用于存储经编码视频数据的任何其他合适的数字存储介质。
解码设备112的输入114接收经编码视频比特流数据,并且可将视频比特流数据提供至解码器引擎116,或提供至存储装置118以供稍后由解码器引擎116使用。解码器引擎116可通过熵解码(例如,使用熵解码器)并且提取组成经编码视频数据的一个或多个经编码视频序列的元素来解码经编码视频比特流数据。解码器引擎116可接着重新按比例调整经编码视频比特流数据并且对经编码视频比特流数据执行反变换。残差数据接着传递至解码器引擎116的预测级。解码器引擎116接着预测像素或图像样本的区块(例如,PU)。在一些示例中,预测被添加至反变换的输出(残差数据)。
解码设备112可将经解码视频输出至视频目的地设备122,视频目的地设备可包括用于将经解码视频数据显示给内容的消费者的显示器或其他输出设备。在一些方面中,视频目的地设备122可以是包括解码设备112的接收设备的部分。在一些方面中,视频目的地设备122可以是不同于接收设备的分离设备的部分。
在一些实施例中,视频编码设备104和/或视频解码设备112可分别与音频编码设备和音频解码设备整合。视频编码设备104和/或视频解码设备112也可包括实施上文所描述的编码技术所必要的其他硬件或软件,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件或其任何组合。视频编码设备104和视频解码设备112可集成为相应设备中的组合式编码器/解码器(编解码器)的部分。下文参看图13描述编码设备104的特定细节的示例。下文参看图14描述解码设备112的特定细节的示例。
对HEVC标准的扩展包括多视图视频编码扩展(被称作MV-HEVC)和可调式视频编码扩展(被称作SHVC)。MV-HEVC和SHVC扩展共享分层编码的概念,其中不同层被包括在经编码视频比特流中。经编码视频序列中的每一层由唯一层标识符(ID)寻址。层ID可存在于NAL单元的标头中以识别NAL单元所相关联的层。在MV-HEVC中,不同层可表示视频比特流中的同一场景的不同视图。在SHVC中,提供以不同空间分辨率(或画面分辨率)或以不同重建保真度表示视频比特流的不同可扩展层。可扩展层可包括基础层(其中层ID=0)和一个或多个增强层(其中层ID=1,2,…n)。基础层可符合HEVC的第一版本的配置文件,并且表示比特流中的最低可用层。与基础层相比,增强层具有增加的空间分辨率、时间分辨率或帧率和/或重建保真度(或品质)。增强层被阶层式地组织,并且可(或可不)取决于较低层。在一些示例中,可使用单个标准编解码器来编码不同层(例如,使用HEVC、SHVC或其他编码标准编码所有层)。在一些示例中,可使用多标准编解码器来编码不同层。例如,可使用AVC来编码基础层,而可使用对HEVC标准的SHVC和/或MV-HEVC扩展来编码一个或多个增强层。
一般而言,层包括一组VCL NAL单元以及对应的一组非VCL NAL单元。NAL单元被分配特定层ID值。在层可取决于较低层的意义上,层可以是阶层式的。层集合指表示于比特流内的独立的层的集合,意味着在解码过程中层集合内的层可取决于层集合中的其他层,但并不取决于任何其他层来进行解码。因此,层集合中的层可形成可表示视频内容的独立比特流。可通过子比特流提取过程的操作从另一比特流获得层集合中的层的集合。层集合可对应于在解码器希望根据某些参数操作时要被解码的层集合。
如先前所描述,HEVC比特流包括NAL单元的群组,包括VCL NAL单元和非VCL NAL单元。VCL NAL单元包括形成经编码视频比特流的经编码画面数据。例如,形成经编码视频比特流的比特序列存在于VCL NAL单元中。除了其他信息以外,非VCL NAL单元也可包含具有与经编码视频比特流相关的高层级信息的参数集。例如,参数集可包括视频参数集(VPS)、序列参数集(SPS)和画面参数集(PPS)。参数集的目标的示例包括比特率效率、错误复原和提供系统层接口。每个条带参考单个作用中PPS、SPS和VPS以存取解码设备112可用于解码条带的信息。可针对每一参数集来编码标识符(ID),包括VPS ID、SPS ID和PPS ID。SPS包括SPS ID和VPS ID。PPS包括PPS ID和SPS ID。每一条带标头包括PPS ID。使用ID,可识别针对给定条带的活动参数集。
PPS包括适用于给定画面中的所有条带的信息。因此,画面中的所有条带参考同一PPS。不同画面中的条带也可参考同一PPS。SPS包括适用于同一经编码视频序列(CVS)或比特流中的所有画面的信息。如先前所描述,经编码视频序列是一系列存取单元(AU),其始于在基础层中且具有某些性质(上文所描述)的随机存取点画面(例如,瞬时解码参考(IDR)画面或断链存取(BLA)画面,或其他适当的随机存取点画面),直到且不包括具有在基础层中且具有某些性质的随机存取点画面的下一AU(或比特流的末端)。SPS中的信息可不在经编码视频序列内在画面间改变。经编码视频序列中的画面可使用同一SPS。VPS包括适用于经编码视频序列或比特流内的所有层的信息。VPS包括具有适用于全部经编码视频序列的语法元素的语法结构。在一些实施例中,可与经编码比特流一起带内传输VPS、SPS或PPS。在一些实施例中,可在与包含经编码视频数据的NAL单元分开的传输中带外传输VPS、SPS或PPS。
视频比特流也可包括补充增强信息(SEI)消息。例如,SEI NAL单元可以是视频比特流的部分。在一些情况下,SEI消息可包含解码过程未必需要的信息。例如,SEI消息中的信息对于解码器解码比特流的视频画面来说可能并不重要,但解码器可使用信息以改善画面的显示或处理(例如,经解码输出)。SEI消息中的信息可以是嵌入型元数据。在一个说明性示例中,SEI消息中的信息可由解码器侧实体使用以改善内容的可见性。在一些情况下,某些应用标准可强制这种SEI消息在比特流中的存在以使得符合应用标准的所有设备可达成质量的改善(例如,用于帧可兼容平面立体3DTV视频格式的帧封装SEI消息的携载,其中针对视频的每一帧携载SEI消息;恢复点SEI消息的处置;拉移式扫描矩形SEI消息在DVB中的使用;外加许多其他示例)。
如先前所描述,媒体格式可用于囊封经编码视频。媒体格式的一个示例包括ISO基本媒体文件格式(ISOBMFF,在IS0/IEC 14496-12中指定,IS0/IEC 14496-12特此以全文引用的方式并出于所有目的而并入)。也存在从ISOBMFF(ISO/IEC 14496-12)导出的其他媒体文件格式,包括MPEG-4文件格式(ISO/IEC 14496-14)、3GPP文件格式(3GPP TS 26.244)和AVC文件格式(ISO/IEC 14496-15)。例如,如上文所论述经编码的视频比特流可使用ISOBMFF、从ISOBMFF导出的文件格式、某其他文件格式和/或包括ISOBMFF的文件格式的组合来写入或封装至一个或多个文件中。ISOBMFF文件可使用视频播放器设备来播放,可由编码设备(或文件产生设备)传输且接着由播放器设备显示,可被存储,和/或可以任何其他适合的方式使用。
将ISOBMFF用作用于许多编解码器囊封格式(诸如,AVC文件格式等)以及用于许多多媒体容器格式(诸如,MPEG-4文件格式、3GPP文件格式(3GPP)、DVB文件格式等)的基础。连续媒体(例如,音频和视频)、静态媒体(例如,图像)以及元数据可存储于符合ISOBMFF的文件中。根据ISOBMFF结构化的文件可用于许多用途,包括本地媒体文件回放、远程文件的渐进式下载、用于经由HTTP的动态自适应流(DASH)的片段、待流式传输的内容的容器和该内容的封装指令、以及接收到的实时媒体流的记录、以及其他适合的用途。例如,尽管最初针对存储而设计,但ISOBMFF已证明用于媒体流(例如,用于渐进式下载或DASH)极有价值。为了流式传输的目的,可使用在ISOBMFF中定义的电影片段。
ISOBMFF被设计为以灵活且可扩展的格式包含计时媒体信息,该计时媒体信息促进媒体的互换、管理、编辑和呈现。媒体的呈现可在包含该呈现的系统“本地”,或该呈现可经由网络或其他流递送机制(例如DASH或其他适合的流式传输机制)。如由ISOBMFF规范所定义的“呈现”可包括与一序列画面相关的媒体文件,常常通过已由视频捕获设备顺序捕获而相关,或出于一些其他原因而相关。在一些示例中,呈现也可被称作电影、视频呈现或渲染。在一些示例中,呈现可包括音频。单个呈现可包含在一个或多个文件中,其中一个文件包含用于整个呈现的元数据。元数据包括信息,诸如时序和帧数据、描述词、指针、参数,以及描述呈现的其他信息。元数据自身并不包括视频和/或音频数据。除包含元数据的文件以外的文件无需根据ISOBMFF来格式化,并且仅仅需要被格式化以使得这些文件可由元数据参考。
ISO基本媒体文件的文件结构为对象定向式结构,并且文件中的单独对象的结构可直接从对象的类型来推断。ISOBMFF规范将ISO基本媒体文件中的对象称作“逻辑框(box)”。ISO基本媒体文件被构建为可包含其他逻辑框的一系列逻辑框。逻辑框为ISOBMFF中的基本语法结构,包括四字符编码逻辑框类型、逻辑框的字节数和有效负载。逻辑框可包括提供逻辑框的大小和类型的标头。大小描述逻辑框的整个大小,包括标头、字段以及被包含在逻辑框内的所有逻辑框。未由播放器设备识别的类型的逻辑框通常被忽略并跳过。
ISOBMFF文件可包含不同种类的逻辑框。例如,电影逻辑框(“moov”)包含文件中存在的连续媒体流的元数据,其中各媒体流在文件中被表示为播放轨(track)。将用于播放轨的元数据围封于播放轨逻辑框(“trak”)中,而将播放轨的媒体内容围封于媒体数据逻辑框(“mdat”)中或直接围封于单独文件中。可存在不同种类的追踪器。例如,ISOBMFF指定以下类型的播放轨:媒体播放轨,其包含基本媒体流;提示(hint)播放轨,其包括媒体传输指令或表示接收的分组流;以及计时元数据播放轨,其包括时间同步的元数据。
用于播放轨的媒体内容包括样本序列,诸如音频或视频存取单元或帧,被称作媒体样本。这种媒体样本与上文所描述的图像样本区分开,其中图像样本为像素的单独色彩分量。如本文所使用,术语“媒体样本”指与单个时间(例如单个时间点、时间范围或其他时间)相关联的媒体数据(音频或视频)。每一播放轨的元数据包括样本描述条目的列表,每个提供在播放轨中使用的编码或囊封格式以及对于处理该格式需要的初始化数据。每个样本与播放轨的样本描述条目中的一个相关联。
ISOBMFF使用各种机制来实现样本特定元数据的使用。样本表逻辑框(“stbl”)内的特定逻辑框已经标准化以响应共同需求。例如,同步样本逻辑框(“stss”)可用于列举播放轨的随机存取样本。样本分群机制实现根据四字符分群类型将样本映射成共享被指定为文件中的样本群组描述条目的同一性质的样本的群组。已在ISOBMFF中指定若干分群类型。
图2为示出具有遵循ISO基本媒体文件格式的示例文件结构的文件200的示例的图。ISO基本媒体文件200也可被称作媒体格式文件。媒体呈现可以(但未必总是)被包含在一个文件中,在该情况下媒体呈现自包含在文件中。文件200包括电影容器202(或“电影逻辑框”)。电影容器202可包含媒体的元数据,其可包括例如一个或多个视频播放轨和一个或多个音频播放轨。例如,视频播放轨210可包含关于视频的各层的信息,该信息可存储于一个或多个媒体信息容器214中。例如,媒体信息容器214可包括样本表,样本表提供关于视频的视频样本的信息。在各种实施中,视频数据块222和音频数据块224包含在媒体数据容器204中。在一些实施中,视频数据块222和音频数据块224可包含在一个或多个其他文件(除文件200以外)中。
在各种实施中,呈现(例如运动序列)可包含在若干文件中。所有时序和帧(例如位置和大小)信息可在ISO基本媒体文件中,并且辅助文件可基本上使用任何格式。
ISO文件具有逻辑结构、时间结构和物理结构。不同结构不需要被耦接。文件的逻辑结构具有又包含一组时间平行播放轨(例如视频播放轨210)的电影。文件的时间结构是:播放轨在时间上包含样本的序列,并且那些序列由可选编辑列表映射至整体电影的时刻表中。
文件的物理结构从媒体数据样本本身分离对于逻辑、时间和结构分解所需的数据。该结构信息在电影逻辑框(例如电影容器202)中集中,可能在时间上由电影片段逻辑框扩展。电影逻辑框记录样本的逻辑和时序关系,并且也包含样本所定位的位置的指针。指针可指向同一文件或另一文件中,该文件可由例如统一资源定位符(URL)等等参考。
每个媒体流被包含在对于该媒体类型专用的播放轨中。例如,在图2中所示出的示例中,电影容器202包括视频播放轨210和音频播放轨216。电影容器202也可包括提示播放轨218,提示播放轨218可包括来自视频播放轨210和/或音频播放轨216的传输指令,或可表示关于电影容器202或文件200的其他电影容器(图中未示出)中的其他播放轨的其他信息。每个播放轨可进一步按样本条目进行参数化。例如,在所示出的示例中,视频播放轨210包括媒体信息容器214,媒体信息容器214包括样本的表(被称作“样本表”)。样本条目包含准确媒体类型(例如,对流进行解码所需的解码器的类型)和解码器所需该媒体类型的任何参数化的“名称”。名称可呈四字符码(例如moov、trak或其他合适名称码)形式。存在用于各种媒体类型的经定义样本条目格式。样本条目可进一步包括对媒体数据容器204中的逻辑框220中的视频数据块(例如视频数据块222)的指针。逻辑框220包括交织的时间定序视频样本(组织成视频数据块,诸如视频数据块222)、音频帧(例如,在音频数据块224中)和提示指令(例如,在提示指令块226中)。
对于元数据的支持可采取不同形式。在一个示例中,计时元数据可存储于适当播放轨中,并且可按需要与由元数据描述的媒体数据同步。在第二示例中,存在对于附接至电影或单独播放轨的非计时元数据的一般支持。结构支持是一般的,并且如同在该媒体数据中,允许在文件中或另一文件中的其他处存储元数据资源。
在一些情况下,视频文件中的一个播放轨可包含多个层。视频播放轨也可包括播放轨标头(例如播放轨标头212),其可包含关于视频播放轨(例如视频播放轨210)的内容的一些信息。例如,播放轨标头可包括播放轨内容信息(也被称作“tcon”)逻辑框。tcon逻辑框可列出视频播放轨中的层和子层的全部。视频文件也可包括操作点信息逻辑框(也称作“oinf”逻辑框)。oinf逻辑框记录关于操作点的信息,诸如构成操作点的层和子层、操作点之间的相依性(如果存在)、配置文件、等级、操作点的层参数、和其他这种操作点相关信息。在一些情况下,操作点(operating point)也可被称作操作点(operation point)。
图3为示出根据ISOBMFF格式化的ISO基本媒体文件300的另一示例的图。ISO基本媒体文件300也可被称作媒体格式文件。ISO基本媒体文件300包含视频呈现的数据和元数据。在文件300的顶部层级处,包括有文件类型逻辑框310、电影逻辑框320和一个或多个片段330a、330b、330c至330n。可在该层级处包括但未在该示例中表示的其他逻辑框包括自由空间逻辑框、元数据逻辑框和媒体数据逻辑框等。
文件类型逻辑框310由逻辑框类型“ftyp”识别。文件类型逻辑框310通常尽可能早地置放于ISO基本媒体文件300中。文件类型逻辑框310识别最适合于解析文件的ISOBMFF规范。“最”在该情况下意味着,ISO基本媒体文件300可能已根据特定ISOBMFF规范而格式化,但很可能与规范的其他迭代兼容。该最合适规范被称作主流品牌。播放器设备可使用主流品牌来确定设备是否能够解码并显示文件的内容。文件类型逻辑框310也可包括版本号,该版本号可用于指示ISOBMFF规范的版本。文件类型逻辑框310也可包括兼容品牌的列表,该列表包括文件兼容的其他品牌的列表。ISO基本媒体文件可与大于一个主流品牌兼容。
当ISO基本媒体文件包括文件类型逻辑框(如ISO基本媒体文件300)时,仅存在一个文件类型逻辑框。在一些情况下,ISO基本媒体文件可省略文件类型逻辑框以便与其他早期播放器设备兼容。当ISO基本媒体文件不包括文件类型逻辑框时,播放器设备可假定预设主流品牌(例如,mp41)、次要版本(例如,“0”)和兼容品牌(例如,mp41、isom、iso2、avcl等)。
ISO基本媒体文件300进一步包括电影逻辑框320,电影逻辑框320包含用于呈现的元数据。电影逻辑框320由逻辑框类型“moov”识别。ISO/IEC 14496-12规定,包含在一个文件或多个文件中的呈现可包括仅一个电影逻辑框320。电影逻辑框通常靠近ISO基本媒体文件的开始(例如,如由ISO基本媒体文件300中的电影逻辑框320的置放指示)。电影逻辑框320包括电影标头逻辑框322,并且可包括一个或多个播放轨逻辑框324以及其他逻辑框。
由逻辑框类型“mvhd”识别的电影标头逻辑框322可包括与媒体无关且与作为整体的呈现相关的信息。例如,电影标头逻辑框322可包括信息,诸如产生时间、修改时间、时间标度和/或针对呈现的持续时间等。电影标头逻辑框322也可包括识别呈现中的下一播放轨的标识符。例如,在所示出的示例中,标识符可指向由电影逻辑框320包含的播放轨逻辑框324。
由逻辑框类型“trak”识别的播放轨逻辑框324可包含用于呈现的播放轨的信息。呈现可包括一个或多个播放轨,其中每一播放轨独立于呈现中的其他播放轨。每一播放轨可包括对于播放轨中的内容特定的时间和空间信息,并且每一播放轨可与媒体逻辑框相关联。播放轨中的数据可以是媒体数据,在该情况下,播放轨为媒体播放轨;或数据可以是用于流式传输协议的封装信息,在该情况下,播放轨为提示播放轨。例如,媒体数据包括视频和音频数据。在图3中所示的示例中,示例播放轨逻辑框324包括播放轨标头逻辑框324a和媒体逻辑框324b。播放轨逻辑框可包括其他逻辑框,诸如播放轨参考逻辑框、播放轨群组逻辑框、编辑逻辑框、用户数据逻辑框、元逻辑框等等。
由逻辑框类型“tkhd”识别的播放轨标头逻辑框324a可指定包含在播放轨逻辑框324中的播放轨的特性。例如,播放轨标头逻辑框324a可包括播放轨的产生时间、修改时间、持续时间、播放轨标识符、层标识符、群组标识符、音量、宽度和/或高度等。对于媒体播放轨,播放轨标头逻辑框324a可进一步识别播放轨是否被启用,播放轨是否应作为呈现的部分而播放,播放轨是否可用于预览呈现,以及播放轨的其他用途。播放轨的呈现通常假定为处于呈现的开始处。播放轨逻辑框324可包括编辑列表逻辑框(图中未示出),编辑列表逻辑框可包括显式时刻表图。时刻表图可指定播放轨的偏移时间等,其中偏移指示播放轨的在呈现开始之后的开始时间。
在所示出的示例中,播放轨逻辑框324也包括由逻辑框类型“mdia”识别的媒体逻辑框324b。媒体逻辑框324b可包含对象和关于播放轨中的媒体数据的信息。例如,媒体框324b可包含处理程序参考逻辑框,处理程序参考逻辑框可识别播放轨的媒体类型以及由其呈现播放轨中的媒体的过程。作为另一示例,媒体逻辑框324b可包含媒体信息逻辑框,其可指定播放轨中媒体的特性。媒体信息逻辑框可进一步包括如上文关于图2所描述的样本的表,其中每个样本描述包括例如样本的数据的位置的一块媒体数据(例如视频或音频数据)。样本的数据存储于下文进一步论述的媒体数据逻辑框中。如同大部分其他逻辑框一样,媒体逻辑框324b也可包括媒体标头逻辑框。
在所示出的示例中,示例ISO基本媒体文件300也包括呈现的多个片段330a、330b、330c至330n。片段也可被称作电影片段。片段(例如,在一些情况下其可包括共同媒体应用格式(CMAF)块)可在时间上扩展呈现。在一些示例中,片段可提供可能已包括于电影逻辑框(“moov”)中的信息。电影片段(或CMAF块)可包括至少电影片段逻辑框(由逻辑框类型“moof”识别),随后是媒体数据逻辑框(由逻辑框类型“mdat”识别)。例如,片段330a可包括电影片段(moof)逻辑框332和媒体数据(mdat)逻辑框338,并且可通过包括将另外存储于电影逻辑框320中的额外信息而扩展呈现。片段330a、330b、330c至330n并非为ISOBMFF逻辑框,但实际上描述电影片段逻辑框和由该电影片段逻辑框参考的媒体数据逻辑框(例如电影片段逻辑框332和由电影片段逻辑框332参考的媒体数据逻辑框338)。电影片段逻辑框332和媒体数据逻辑框338为顶部层级逻辑框,但这里被分群以指示电影片段逻辑框332与媒体数据逻辑框338之间的关系。在使用电影片段逻辑框(例如电影片段逻辑框332)的情况下,呈现可渐进地构建。
在一些示例中,电影片段逻辑框332可包括电影片段标头逻辑框334和播放轨片段逻辑框336以及这里未示出的其他逻辑框。由逻辑框类型“mfhd”识别的电影片段标头逻辑框334可包括序号。播放器设备可使用序号来验证片段330a包括数据的下一段以供呈现。在一些情况下,文件的内容或用于呈现的文件可无序地被提供至播放器设备。例如,网络分组可以按与最初传输的分组的次序不同的次序频繁地到达。在这些情况下,序号可辅助播放器设备确定片段的正确次序。
电影片段逻辑框332也可包括由逻辑框类型“traf”识别的一个或多个播放轨片段逻辑框336。电影片段逻辑框332可包括一组播放轨片段(每播放轨零个或多个)。播放轨片段可包含零或多个播放轨行程(track run),其中的每一个描述播放轨的样本的连续行程。除添加样本至播放轨外,播放轨片段可用于将空的时间添加至播放轨。
由逻辑框类型“mdat”识别的媒体数据逻辑框338包含媒体数据。在视频播放轨中,该媒体数据逻辑框338可包含视频帧、存取单元、NAL单元、或其他形式的视频数据。媒体数据逻辑框可替代地或另外地包括音频数据。呈现可包括包含在一个或多个单独文件中的零个或大于零个的媒体数据逻辑框。媒体数据由元数据描述。在所示出的示例中,媒体数据逻辑框338中的媒体数据可由包括于电影片段逻辑框332的播放轨片段逻辑框336中的元数据来描述。在其他示例中,媒体数据逻辑框中的媒体数据可由电影逻辑框320中的元数据来描述。元数据可以按在文件300内的绝对偏移来指代特定媒体数据,以使得媒体数据标头和/或媒体数据逻辑框338内的自由空间可被跳过。
ISO基本媒体文件300中的其他片段330b、330c至330n可包含与针对第一片段330a所示出的逻辑框类似的逻辑框,和/或可包含其他逻辑框。
如上文所提及,ISOBMFF包括经由网络支持流媒体数据,外加支持对媒体的本地播放。包括一个电影呈现的一个或多个文件可包括被称为提示播放轨的额外播放轨,该额外播放轨包含可辅助流服务器形成并传输作为分组的一个或多个文件的指令。例如,这些指令可包括用于服务器以供发送的数据(例如,标头信息)或对媒体数据的片段的参考。片段可包括ISO基本媒体文件格式文件的一部分,包括电影逻辑框以及相关联的媒体数据和其他逻辑框(如果存在)。片段也可包括ISO基本媒体文件格式文件的一部分,包括一个或多个电影片段逻辑框以及相关联的媒体数据和其他逻辑框(如果存在)。文件可包括用于不同流式传输协议的分离提示播放轨。提示播放轨也可在不需要重新格式化文件的情况下被添加至文件。
用于流媒体数据的一种方法是经由超文本传送协议(HTTP)或DASH(定义于ISO/IEC 23009-1:2014)的动态自适应流。被称为MPEG-DASH的DASH是启用媒体内容使用传统HTTP网页服务器的高质量流的自适应比特率流技术。DASH通过将媒体内容打断成一系列基于HTTP的小文件区段来操作,其中每个区段包含短时间间隔的内容。使用DASH,服务器可以按不同比特率提供媒体内容。正播放媒体的客户端设备可在下载下一区段时从替代性比特率当中做出选择,并且因此适应于改变的网络条件。DASH使用互联网的HTTP网页服务器基础架构来经由全球信息网递送内容。DASH独立于用于编码并解码媒体内容的编解码器,并且因此与诸如H.264和HEVC的编解码器等一起操作。
如上文所提及,ISO/IEC 14496-12ISO基本媒体文件格式(ISOBMFF)指定用于媒体的携载格式,并且在并非大多数情况下用于许多流应用(包括MPEG DASH)。MPEG DASH和共同媒体应用格式(CMAF)的这些应用也适合用于低延时流,低延时流具有将文件格式相关延迟向下缩减至音频和视频的典型样本持续时间(例如,相较于传统流中的秒数量级,在几十毫秒范围内)的目标。
传统上,对于实时流应用,“低延时”用于指秒数量级的封装延迟。为达成该效果,媒体文件可被分段成具有大致1至2秒的持续时间的可单独寻址区段。每个区段可例如由统一资源定位符(URL)寻址。
图4为示出根据ISOBMFF格式化的ISO基本媒体文件400的另一示例的图。ISO基本媒体文件400可被分段以用于实时流。ISO基本媒体文件400被示出为包含两个示例区段402x和402y。区段402x和402y可以是被顺序地流式传输的区段,其中区段402y紧接着区段402x。在示例中,区段402x和402y中的每一个包含单个电影片段,分别展示为片段430x和430y。片段430x和430y可包括相应电影片段(moof)逻辑框432x和432y,以及媒体数据(mdat)逻辑框438x和438y。单独的mdat逻辑框438x和438y可各自包含多于一个媒体数据样本,被展示为样本1至样本M,分别标记为mdat逻辑框438x中的样本440xa至440xm和mdat逻辑框438y中的样本440ya至440ym。mdat逻辑框438x至438y中的样本1至样本M可以是时间定序视频样本(例如组织成视频数据块)或音频帧。
文件格式相关延时可与ISO基本媒体文件400的格式相关联,其中片段430x和430y中的数据可仅在片段430x和430y的相应数据完全被编码之后由解码器或播放器设备解码。由于区段402x和402y中的每一个分别包含单个片段430x和430y,因此用于完全编码片段430x或430y的延时对应于相应区段402x或402y的持续时间。片段430x和430y的相应moof逻辑框432x和432y包含针对相应片段430x和430y中的全部样本的持续时间、大小等的信令。因此,将在相应moof逻辑框432x和432y可被完全重写之前,在编码器或封装器处需要来自全部M个样本(包括相应片段430x和430y中的最后样本M(440xm和440ym))的数据。将需要moof逻辑框432x和432y用于由解码器或播放器设备处理或解码相应片段430x和430y。因此,用于编码区段402x和402y的整个区段数据的时间可包括用于编码mdat逻辑框438x至438y中的样本1至样本M的全部的持续时间。用于编码样本1至样本M的全部的该持续时间可构成与区段402x至402y中的每一个相关联的显著延迟或文件格式相关延时。这种类型的延迟可存在于用于按需求播放视频的典型实时流示例中和/或其他媒体系统中。
图5为示出根据ISOBMFF格式化的ISO基本媒体文件500的另一示例的图。ISO基本媒体文件500可包括相对于图4的ISO基本媒体文件400的优化。例如,同与编码上文所论述的mdat逻辑框438x至438y中的样本1至样本M的全部相关联的延时相比,ISO基本媒体文件500的格式可导致较低延时。
如图所示,ISO基本媒体文件500的格式将每一区段划分成较大数目的片段(也称作区段的“片段化”),使得较少数目的样本在区段的每个片段中,而每个区段中的总样本数目可相同于或类似于ISO基本媒体文件400的数目。由于ISO基本媒体文件500的区段中的样本的数目可保持与ISO基本媒体文件400中相同,因此ISO基本媒体文件500中的区段的片段化不会不利地影响样本的寻址方案。在所示出的示例中,区段502x和502y被展示于ISO基本媒体文件500中。在一些示例中,区段502x和502y可被顺序地流式传输,其中区段502y紧接着区段502x。区段502x和502y可各自包括多个片段,诸如包括于区段502x中的片段530xa至530xm和包括于区段502y中的片段530ya至530ym。这些片段中的每一个可包括电影片段(moof)逻辑框和媒体数据(mdat)逻辑框,其中每个mdat逻辑框可包含单个样本。例如,片段530xa至530xm各自包含相应moof逻辑框532xa至532xm以及mdat逻辑框538xa至538xm,其中mdat逻辑框538xa至538xm中的每一个包含相应样本540xa至540xm。类似地,片段530ya至530ym各自包含相应moof逻辑框532ya至532ym以及mdat逻辑框538ya至538ym,其中mdat逻辑框538ya至538ym中的每一个包含相应样本540ya至540ym。虽然在mdat逻辑框538xa至538xm以及538ya至538ym中的每一个中示出单个样本,但在一些示例中,有可能mdat逻辑框中的每一个中具有较高数目但仍低数目的样本(例如每mdat逻辑框1至2个样本)。
在mdat逻辑框538xa至538xm以及538ya至538ym中的每一个中包含低数目的样本的情况下,与图4的片段430x至430y相比,可以按较低延时或较高速度解码相应片段530xa至530xm以及530ya至530ym。因此,可缩减图4的文件格式相关的延时,这是因为每一电影片段可由客户端或播放器设备解码。例如,完整区段的持续时间的文件格式相关的延迟被缩减至编码每一片段中的低数目样本的延迟。例如,在如区段502x中所示的片段530xa中的单个样本540xa的所示出的情况下,相较于多个样本的集合持续时间,用于解码片段530xa的延时可基于单个样本540xa的持续时间。尽管在区段502x至502y中包含较大数目的片段的情况下可存在用于区段502x至502y的延时的较小增加,但该增加可能对于典型高质量媒体比特率并不重要。
图6为示出根据ISOBMFF格式化的ISO基本媒体文件600的另一示例的图。ISO基本媒体文件600可包括图5的ISO基本媒体文件500的变化,其中ISO基本媒体文件600可包含单个区段602,而不是展示于图5的ISO基本媒体文件500中的多个区段502x至502y。单个区段602可被片段化以包括多个片段630a至630m,其中每一片段具有相应电影片段(moof)逻辑框632至632m以及媒体数据(mdat)逻辑框638a至638m。mdat逻辑框638a至638m可各自具有低数目的样本,诸如单个样本。例如,样本640a至640m可各自包含在如图所示的相应mdat逻辑框638a至638m中。类似于参看图5所论述的优化,图6的ISO基本媒体文件600中的片段化也可实现用于解码每一片段的低延时,这是因为延时是基于单个样本(或低数目的样本)的样本持续时间。
虽然ISO基本媒体文件600可由播放器设备使用以用于呈现传统媒体(诸如音频或视频),但存在稀疏媒体所涉及的难题。如将在下文进一步论述,稀疏媒体可包括字幕、交互式图形,或可在多个片段内保持不变的其他可显示内容。在呈现跨多个样本保持恒定的稀疏媒体时,移除样本并且接着可能提供具有相同内容的另一样本或许有可能,但因为样本被移除和被再呈现而也可导致诸如闪烁的非期望行为。对于包括于样本(诸如样本640a至640m)中的该稀疏媒体或稀疏播放轨,相关稀疏元数据(例如moof逻辑框632至632m、mdat逻辑框638a至638m等)可能需要被定制以解决这些难题。例如,可能期望在样本、区段、片段或文件的开始处(例如在随机存取点处)具有指示以渲染样本、区段、片段或文件直到另外指示为止。例如,指示604a可识别区段602的开始,指示604b可识别mdat逻辑框638a的开始,指示604c、604d和604e可分别识别片段630b、630c和630m的开始。然而,当前不存在用于提供指示(诸如指示604a至604e或其他)以用于根据ISOBMFF格式化的ISO基本媒体文件的现有机制
如前文所提及,媒体数据也可使用传统HTTP网页服务器使用经由超文本传送协议(HTTP)的动态自适应流(DASH)来流式传输和递送。例如,有可能每一电影片段或多个电影片段的串接要使用HTTP块传送来递送。HTTP块传送可允许媒体由DASH客户端设备(例如,播放器设备)请求。所请求媒体的区段可在区段完全被编码之前由主机或原点服务器递送至DASH客户端。允许这种HTTP块传送可缩减传送媒体数据时所涉及的延时或端对端延迟。
图7为示出DASH封装器700的示例的图。DASH封装器700可被配置用于使用HTTP块传送诸如视频和/或音频的媒体数据。服务器或主机设备(例如编码器)可传送待由DASH封装器700封装的媒体数据,其中DASH封装器可产生HTTP块以待传送至客户端或播放器设备(例如解码器)。在图7中展示可由DASH封装器700从编码器获得的各种媒体数据块。这些块可被提供为共同媒体应用格式(CMAF)块。这些CMAF块可包括CMAF标头(CH)706、具有随机存取的一个或多个CMAF初始块(CIC)704a、704b以及一个或多个CMAF非初始块(CNC)702a、702b、702c和702d。CIC 704a、704b可包括在区段的开始处包含的媒体数据,并且可作为HTTP块递送至客户端。CNC 702a至702d可作为同一区段的HTTP块递送。
例如,DASH封装器700可产生DASH区段720a和720b,每一区段包含根据从编码器接收到的媒体数据产生的HTTP块。例如,在DASH区段720a中,HTTP块722a至722c包括对应于从编码器接收到的CNC 702a至702b和CIC 704a的CNC 712a至712b和CIC 714a。类似地,在DASH区段720b中,HTTP块722d至722f包括对应于从编码器接收到的CNC 702c至702d和CIC704b的CNC 712c至712d和CIC 714b。媒体呈现描述(MPD)724可包括指令列表(例如可延伸标记语言(XML)文件),该指令列表包括关于媒体区段的信息,关于其他信息客户端设备可用来在媒体区段之间进行选择的、这些媒体区段的关系(例如媒体区段的次序)的信息,以及关于可由客户端设备需要的其他元数据的信息。例如,MPD724可包括每一媒体区段的地址(例如统一资源位置(URL)或其他类型的地址),并且也可提供用于初始化区段(IS)726的地址。IS 726可包括初始化客户端设备上的视频解码器所需要的信息。在一些情况下,IS726可不呈现。
然而,DASH封装器700的传统实施较不适用于稀疏播放轨的递送和呈现可涉及的低延时优化。例如,所传送的HTTP块的播放轨中的每个样本可具有相关联的解码时间。ISOBMFF指定解码时间被编码为解码时间增量。例如,样本的解码时间增量可包括相对于先前样本的解码时间的变化(例如,增加)。这些解码时间增量可包括于与样本相关的元数据中。例如,解码时间增量可包括于包含样本的片段的解码时间至样本(Stts)逻辑框中。解码时间增量在ISOBMFF规范(例如ISO/IEC 14496-12)的子条款8.6.1.2.1中被指定为:
DT(n+1)=DT(n)+STTS(n) 等式(1)
其中DT(n)为当前样本“n”的解码时间,并且STTS(n)包括待加入DT(n)以获得下一样本“n+1”的解码时间DT(n+1)的解码时间增量。
因此,解码时间增量可用于传达当前样本与下一样本之间的解码时间差至播放器设备。然而,能够编码当前样本n中的解码时间增量STTS(n)要求在编码当前样本时知晓后续样本的解码时间DT(n+1),以便确定相对于当前样本的解码时间DT(n)解码时间增量STTS(n)。虽然有可能知晓或确定典型媒体内容的后续样本的解码时间,但就此而言,稀疏媒体播放轨提出了难题。
例如,返回参看图6,当前样本可例如为片段630a的样本640a,其中片段630a可以是当前片段。下一样本可以是后续片段630b中的样本640b。对于典型媒体内容(诸如典型视频和/或音频文件),样本的持续时间是恒定的和/或已知的和/或可确定的。如果样本640a的持续时间是已知的并且片段630a的解码时间是已知的,则片段630b以及其中所包含的样本640b的解码时间可被估计或者是可确定的。因此,有可能获得样本640a与样本640b之间的解码时间增量并编码样本640a(或片段630a的元数据)的解码时间增量。然而,对于稀疏内容,知晓样本640a的持续时间和/或解码时间增量是不可确定的,如下文将参看图8进一步论述。
图8为示出媒体呈现800的示例的图。媒体呈现800可呈现于播放器设备中,其中自然场景的视频分量被渲染在播放器设备上。媒体呈现800也可包括音频分量,即使其尚未被示出。媒体呈现800也可包括稀疏内容,诸如公司标识802和字幕804。其他类型的稀疏内容可包括交互式图形、音频内容(诸如在不同持续时间内发声的报警或警报)等。对媒体呈现800中的典型媒体数据的参考不包括稀疏内容。例如,典型媒体数据可包括与正被呈现的景物相关的视频和/或音频,而不是公司标识802或字幕804。在一些示例中,稀疏内容可覆盖在媒体数据上,但这并不是必要的。
媒体呈现800中的媒体数据和稀疏内容可在一些示例中以ISO基本媒体文件格式提供至播放器设备。在一些示例中,媒体数据可由DASH封装器封装并作为HTTP块递送至播放器设备。在一些示例中,媒体数据可被编码在样本中,诸如在图4至图6的ISO基本媒体文件400、500、600中。例如,媒体数据可被编码于区段中并被进一步片段化,其中每一片段包括一个或多个样本。对于包含音频和/或视频内容的典型媒体数据,如上文所提及,即使每一样本的内容可改变,每一样本的持续时间仍可以是恒定的。
然而,对于稀疏内容,数据可在不同持续时间内保持相同。例如,在音频播放轨中可存在静音的不确定的空隙或周期。在另一示例中,可能不需要更新某一稀疏内容(诸如交互式内容),其中交互式屏幕可在可变时间段内保持静态。在又一示例中,可能不需要从一个片段至下一片段更新稀疏内容(诸如字幕804)。因此,对于该稀疏内容,在编码当前片段时知晓随后片段的第一样本的解码时间是一难题。
为解决与递送稀疏内容的低延时呈现相关联的问题,可能需要向播放器设备提供指示:播放器设备将要保持呈现样本中的稀疏内容直到播放器设备接收到新的样本为止。然而,当前ISOBMFF标准中不存在已知机制向播放器设备传达:播放器设备将要无限期地呈现样本传达。在样本持续时间不包括于样本的元数据中的情况下,播放器设备将在解码样本时不知晓要呈现样本多久。如果在解码样本时假定所估计的样本持续时间,则有可能在接收到新的样本之前仍可流逝所估计的样本持续时间。例如,在呈现字幕804的情况下,如果当前样本和新的样本包括相同字幕804,则播放器设备可在流逝了所估计的样本持续时间时停止呈现字幕804,并且接着可在接收到新的样本时恢复呈现相同字幕804。这可导致闪烁和不必要的处理负载。另一方面,所估计的样本持续时间也可能太长,使得在呈现样本比所需时间更久时出现误差。当前也不存在已知机制以在样本已经解码之后指示播放器设备缩减样本持续时间。
解决该难题的一种方法涉及轮询机制的使用,其中时间的分辨率可根据正被呈现的媒体的类型而定义。例如,时间分辨率可对于诸如交互式内容的稀疏内容设定为100毫秒(ms)。当不存在用于待呈现的交互式内容的数据时,空样本可在静音周期期间以每100ms一个样本的频率被发送。然而,存在以按该方式编码的ISO基本媒体格式文件的文件格式引发的显著的额外负担。例如,在大时间段内,编码没有数据的样本以及传输这些空样本以用于在播放器设备处呈现可能导致相关联的成本。另外,高质量内容可对较高准确度或较高刷新(或更新)速率提出要求,这意味着对于诸如字幕的稀疏内容,时间分辨率可能需要被设定为低得多的值以达成所需的用户体验。另外,基于较大时间分辨率的较低更新速率可能导致低准确度呈现,从而引起不良的用户体验。
另一方法可包括设定下一片段中的时间,该时间可对应于累积解码时间。该累积解码时间可设定于下一片段的baseMediaDecodeTime中,其中baseMediaDecodeTime可包括于ISO基本媒体格式文件的元数据中。计算当前片段中的样本的持续时间的总和。如果设定在下一片段的baseMediaDecodeTime中的累积解码时间超过当前片段中的样本的持续时间的总和,则当前片段的最后样本的持续时间被扩展。当前片段的最后样本的持续时间的扩展被设计为使当前片段中的样本的持续时间的总和等于设定于下一片段的baseMediaDecodeTime中的累积解码时间。因此,有可能在尚未知晓下一片段的解码时间时扩展当前片段的时间。
在一些示例中,设定下一片段的baseMediaDecodeTime中的累积解码时间可包括将下一片段的样本的持续时间设定为标称值(例如,包括于样本中的播放轨的典型样本持续时间)。例如,对于视频播放轨,该样本持续时间可基于视频播放轨的帧率而确定。随后,当该样本的实际样本持续时间变得已知时(例如当下一样本到达时),持续时间通过使用包括于baseMediaDecodeTime逻辑框中的信令来更新。
然而,根据该方法,可在不知晓下一片段的解码时间的情况下编码当前片段。由于播放器设备或解码器在解码当前片段中的样本时不具有关于下一片段的解码时间的信息,因此播放器设备可在已流逝样本的持续时间之后停止呈现当前片段中的样本。ISOBMFF规范当前不解决该问题。另外,该方法也可能遭遇用于缩减当前正被呈现的样本的持续时间的信令机制缺乏的处境。
本文中描述为上文所描述的问题提供解决方案的系统和方法。例如,先前样本的样本持续时间可基于当前样本中提供的指示或信令而扩展或缩减。当前样本可包括当前正被处理的样本,并且先前样本可包括在当前样本之前由客户端设备接收、解码和/或渲染的样本。先前样本可包括未知持续时间的稀疏内容。包括先前样本的先前片段可包括先前样本的样本持续时间,其中样本持续时间被设定为合理的估计值。先前样本可包括未知持续时间的稀疏播放轨。在一些示例中,合理的估计值可基于稀疏内容的类型而导出。
在一些情况下,合理的估计值可基于关于稀疏内容的类型的持续时间的经验或统计信息。在一些示例中,合理的估计值可包括标称估计值(例如包括于样本中的播放轨的典型样本持续时间)。例如,对于视频播放轨,该样本持续时间可基于视频播放轨的帧率而确定。随后,当该样本的实际样本持续时间变得已知时(例如当下一样本到达时),估计值可通过使用信令(诸如包括于baseMediaDecodeTime逻辑框中的信令)来更新。例如,在封装样本之后,当准确样本持续时间变得已知时(例如当下一样本到达时),封装器可包括用于缩减被发信号通知的样本持续时间或扩展被发信号通知的样本持续时间的信令。
例如,一旦解码当前样本,则可获得经修改持续时间,其可包括用于扩展或缩减先前样本的样本持续时间的信令。例如,如果在当前时间实例处解码包括当前样本的当前片段,则可从当前片段获得经修改持续时间。经修改持续时间可指示先前样本的呈现将相对于当前时间实例扩展或缩减的持续时间。至少一个媒体样本可在基于经修改持续时间的持续时间内由播放器设备呈现。例如,呈现至少一个媒体样本可包括在经扩展持续时间内呈现先前媒体样本或呈现在当前时间实例处开始的新媒体样本。在一些示例中,呈现至少一个媒体样本可包括缩减用于呈现先前媒体样本的样本持续时间。
图9为示出根据ISOBMFF格式化的ISO基本媒体文件900的示例的图。示例ISO基本媒体文件900可包括诸如片段910a至910d的多个片段。片段910a至910d可由主机设备编码并由播放器设备解码和呈现。在一些示例中,片段910a至910d可以不是ISOBMFF逻辑框,而实际上分别描述电影片段(moof)逻辑框902a至902d以及由moof逻辑框902a至902d参考的媒体数据(mdat)逻辑框906a至906d。
moof逻辑框902a至902d可扩展呈现,使得该呈现可被逐渐地构建。moof逻辑框902a至902d可各自包括额外字段,诸如电影片段标头逻辑框、播放轨片段逻辑框以及这里未说明的其他逻辑框。moof逻辑框902a至902d被展示以包括相应时间逻辑框904a至904d。时间逻辑框904a至904d可各自包含关于绝对时间、相对时间、持续时间等的一个或多个时间结构或值。
在一个示例中,时间逻辑框904a至904d中的一个或多个可包含TimeToSampleBox。在一些示例中,TimeToSampleBox可包括样本持续时间。样本持续时间是TimeToSampleBox中的持续时间(也称作“增量”)。播放轨的样本持续时间可以指播放轨中的样本的持续时间。播放轨可包括按解码次序的序列样本。每个样本可具有通过将先前样本的持续时间(如由电影片段中的TimeToSampleBox或等效字段中的值给定)加入至先前样本的解码时间而计算的解码时间。播放轨或片段中的第一样本的解码时间可定义为在时间零处。这形成播放轨的解码时刻表。在一些示例中,片段中的样本的样本持续时间可基于包含在后续片段中的修改信息而修改。例如,修改信息可从包含在后续片段中的播放轨片段解码时间(tfdt)获得。
在一些示例中,时间逻辑框904a至904d中的一个或多个也可包含具有一个或多个tfdt值的tfdt逻辑框。可用于发信号通知修改信息的示例tfdt值可包括绝对解码时间或baseMediaDecodeTime。baseMediaDecodeTime是等于媒体中的全部较早样本的解码持续时间的总和的整数,以媒体的时间标度来表达。在一些示例中,tfdt逻辑框可包括播放轨片段中的按解码次序的第一样本的在解码时刻表上测量的绝对解码时间。例如,当在文件中执行随机存取时,绝对解码时间可以是适用的。例如,在随机存取的情况下,如果已知绝对解码时间,则对先前片段中的全部在前样本的样本持续时间进行求和以找到片段中的第一样本的解码时间并不是必需的。在片段包含单个样本的示例中,baseMediaDecodeTime或由tfdt提供的绝对解码时间可提供样本的解码时间。在一些示例中,时间逻辑框904a至904d中的一个或多个可包括TrackFragmentBaseMediaDecodeTimeBox,其中tfdt逻辑框可呈现于TrackFragmentBaseMediaDecodeTimeBox的TrackFragmentBox容器内。
mdat逻辑框906a至906d可包含例如包括于相应样本908a至908d中的媒体数据。在视频播放轨中,媒体数据可包括视频帧、存取单元、NAL单元和/或其他形式的视频数据。媒体可替代地或另外地包括音频数据。呈现可包括包含在一个或多个单独文件中的零个或更多个的媒体数据逻辑框。在一些示例中,样本908a至908d中的一个或多个中的媒体数据可包括稀疏数据,诸如公司标识802、字幕804和/或任何其他类型的稀疏内容。
尽管未示出,但ISO基本媒体文件900可包括一个或多个区段,每一区段具有一个或多个片段。片段中的每一个可包括单个媒体样本,或在一些情况下,具有已知持续时间的多于一个样本可在每一片段之前。在所示的示例中,片段910a至910d被示出为每片段具有单个样本。每个片段具有moof逻辑框902a至902d以及mdat逻辑框906a至906d中的相应逻辑框(例如,片段910a具有mdat逻辑框906a和moof逻辑框902a,片段910b具有mdat逻辑框906b和moof逻辑框902b,等等)。片段910a至910d可分别在时间tl至t4处由播放器设备解码(例如,片段910a可在时间tl处被解码,片段910b可在时间t2处被解码,等等)。
在示例中,在时间tl处解码的、具有样本908a的片段910a可包括诸如典型媒体数据(与正被呈现的景物相关的视频和/或音频)的媒体数据或稀疏数据。在示例中,样本908a的样本持续时间可被修改或可保持未被修改。类似地,在时间t4处解码的、具有样本908d的片段910d可包括诸如典型媒体数据的媒体数据或稀疏数据。在示例中,样本1008a的样本持续时间可被修改或可保持未被修改。样本908a和908d的呈现可基于样本持续时间或从相应时间逻辑框904a和908d获得的其他时间信息。
在示例中,在时间t2处解码的样本908b的持续时间可被修改。出于说明示例方面起见,片段910b可被称作先前片段,并且其中的样本908b可被称作先前样本。样本908b可包括稀疏数据,诸如与字幕相关联的数据、交互式图形(例如标识)或其他稀疏数据。
根据示例方面,片段910b可具有与样本908b相关联的样本持续时间。该样本持续时间可基于估计值而被设定为合理的持续时间。合理持续时间的估计值可基于稀疏数据的类型和/或其他因素。可能期望根据需要来修改呈现样本908b的持续时间。在一个示例中,动态需要可在先前片段(片段910b)的解码时间t2之后出现以缩减用于内容插入的片段持续时间。例如,需要可在时间t2之后的时间t3处出现以插入第三方内容(例如广告、产品信息或其他数据)。如果样本持续时间(设定为合理的持续时间)大于t3-t2(在该情况下先前样本的呈现可扩展超过时间t3),则先前样本的样本持续时间可缩减。例如,缩减先前样本的样本持续时间可防止先前样本被呈现超过时间t3。
如上文所提及,先前样本(样本908b)的样本持续时间可被修改以缩减样本持续时间。在一个说明性示例中,为缩减被发信号通知的样本持续时间(例如在先前样本的时间逻辑框904b中),新的片段可具备修改信息。例如,新的片段可包括解码时间为t3的片段910c。片段910c被称作当前片段以示出示例方面。当前片段(片段910c)可包括时间逻辑框910c中的当前时间分量。
在一个说明性示例中,当前时间分量可以是包括由baseMediaDecodeTime字段发信号通知的更新解码时间或经修改解码时间的tfdt。在示例中,用于当前片段(片段910c)的tfdt可被编码或设定为t3。在一些示例中,片段910c不必包括样本。mdat逻辑框906c以及其中所包含的样本908c是以虚线逻辑框展示的,以指示片段910c中的其内含物为可选的。如果片段910c不包含任何样本数据,则片段910c可被称作空片段。不管样本数据是否呈现于当前片段(片段910c)中,解码器或播放器设备可基于tfdt值t3来修改先前样本的样本持续时间。例如,播放器设备可将先前样本(样本910b)的样本持续时间从合理持续时间(其被设定为时间t2)更新为经修改持续时间。在一些情况下,经修改持续时间可对应于t3-t2。因此,经修改持续时间可从扩展超过t3而缩减先前样本的样本持续时间。
在一些示例中,也可存在扩展先前样本的样本持续时间的需要。如将参看图10进一步解释,经修改持续时间可在后续片段(或当前片段)中被发信号通知以扩展先前样本的持续时间。在一些示例中,当前片段可包括包含在先前样本中的相同数据以影响扩展。因此,当前片段可包括被称作携载与先前样本相同的数据的冗余样本的当前样本。当前片段可包括具有设定为1的sample_has_redundancy的字段或逻辑框,或可包括指示当前样本为冗余样本的任何其他合适的值或机制。当前片段可在先前样本将被扩展的时间实例处发送。例如,当封装器(例如DASH封装器700)需要开始并发送新的片段但不存在待发送的新样本时,该性质的扩展可以是所需的。
图10为示出根据ISOBMFF格式化的ISO基本媒体文件1000的示例的图。ISO基本媒体文件1000在一些方面类似于图9的ISO基本媒体文件900,并且因而以下论述将更集中于ISO基本媒体文件1000与ISO基本媒体文件900的区别。ISO基本媒体文件1000也可包括分别由电影片段(moof)逻辑框1002a至1002d以及由moof逻辑框1002a至1002d参考的媒体数据(mdat)逻辑框1006a至1006d描述的、诸如片段1010a至1010d的多个片段。
moof逻辑框1002a至1002d被展示以包括相应时间逻辑框1004a至1004d。时间逻辑框1004a至1004d可各自包含关于绝对时间、相对时间、持续时间等的一个或多个时间结构或值。在一些示例中,时间逻辑框1004a至1004d中的一个或多个可包含样本持续时间。在一些示例中,时间逻辑框1004a至1004d中的一个或多个也可包含具有一个或多个tfdt值的tfdt逻辑框。可用于发信号通知修改信息的示例tfdt值可包括绝对解码时间或baseMediaDecodeTime。
mdat逻辑框1006a至1006d可包含例如包括于相应样本1008a至1008d中的媒体数据。在一些示例中,样本1008a至1008d中的一个或多个中的媒体数据可包括稀疏数据,诸如来自图8的公司标识802和/或字幕804,和/或任何其他类型的稀疏内容。
尽管未示出,但ISO基本媒体文件1000可包括一个或多个区段,每个区段具有一个或多个片段。在所示的示例中,示出片段1010a至1010d,每个片段具有moof逻辑框1002a至1002d以及mdat逻辑框1006a至1006d中的相应逻辑框。片段1010a至1010d可分别在时间tl至t4处由播放器设备解码。
在示例中,在时间tl处解码的、具有样本1008a的片段1010a可包括诸如典型媒体数据(与正被呈现的景物相关的视频和/或音频)的媒体数据或稀疏数据。在示例中,样本1008a的样本持续时间可被修改或可保持未被修改。样本1008a的呈现可基于样本持续时间或从时间逻辑框1004a获得的其他时间信息。
在示例中,在时间t2处解码的样本1008b的持续时间可被修改。出于说明示例方面起见,片段1010b可被称作先前片段,并且其中的样本1008b可被称作先前样本。样本1008b可包括稀疏数据。
根据一示例方面,片段1010b可具有与样本1008b相关联的样本持续时间。该样本持续时间可基于估计值设定为合理的持续时间。合理持续时间的估计值可以基于稀疏数据的类型和/或其他因素。在示例中,合理估计值可包括从时间t2扩展直到随后时间t3为止的持续时间。可能期望根据需要来修改呈现样本1008b的持续时间。在示例中,样本1008b的样本持续时间可被修改以从时间t3扩展至在时间t3之后的时间t4。例如,如先前所提及,当要发送的后续新的片段又不具有样本数据时,封装器(例如DASH封装器700)可能需要包含在先前片段中的先前样本的持续时间的扩展。以此方式扩展先前片段的持续时间可以允许连续流被维持直到新的区段的数据变得可用为止。在示例中,先前样本(样本1008b)的样本持续时间可如下文所描述而修改。
在一个说明性示例中,先前样本(样本1008b)的样本持续时间可被修改以增加样本持续时间。例如,为增加先前样本的样本持续时间以扩展经过时间t3,新的片段可具备修改信息。在示例中,新的片段可包括解码时间为t3的片段1010c。片段1010c被称作当前片段以示出其中片段1010c当前正被处理的示例方面。如先前所提及,当前片段(片段1010c)也可包括冗余样本,该冗余样本的样本数据匹配或重复先前样本(样本1010b)中的数据。当前片段(片段1010c)也可包括具有设定为1的sample_has_redundancy的字段或逻辑框(图中未示出),或可包括指示当前样本为冗余样本的任何其他合适的值或机制。
当前片段(片段1010c)也可包括时间逻辑框1010c中的当前时间分量。在示例中,当前时间分量可以是包括由baseMediaDecodeTime字段发信号通知的更新解码时间或经修改解码时间的tfdt。在示例中,用于当前片段(片段1010c)的tfdt可设定为t4。
在时间t3处,播放器设备或解码器可出于解码和呈现的目的基于例如设定为1的sample_has_redundancy字段而忽略冗余样本(样本1010c)。播放器设备或解码器也可将先前样本的样本持续时间从初始值或设定为t3-t2的合理估计值扩展至经扩展持续时间。经扩展持续时间可包括从时间t3至时间t4的、包含在当前片段1010c的tfdt字段中的持续时间。基于扩展,先前样本的持续时间因此可被修改至t4-t2。冗余样本以及出于解码和呈现的目的而忽略冗余样本的播放器设备的使用可允许先前样本的连续不间断的呈现。
在一些示例中,另一播放器设备可在时间t2之后的时间t3处开始接收样本。基于在时间t3处接收的片段1010c,该另一播放器设备也可解码并呈现包含在从时间t3至时间t4的片段1010c中的样本。例如,该另一播放器设备可忽略设定为1的sample_has_redundancy字段,这是因为该另一播放器设备在时间t3之前未接收样本,并且因此未接收先前样本(样本1008b)。然而,由于样本1008c中的数据与样本1008b中的数据相同,因此另一播放器设备可在时间t3处解码样本1008c,并且在从t3至t4的扩展持续时间内呈现样本1008c(与先前样本相同)。
在一些情况下,例外值可用于稀疏内容的低延时呈现。例如,例外值可被定义用于包含稀疏内容或其样本持续时间是未知的内容的媒体样本的样本持续时间。例外值可包括于包括这些媒体样本的片段中。一旦该例外值恰好为任一媒体样本的样本持续时间,则解码器或播放器设备可呈现媒体样本直到下一媒体样本的呈现时间为止。例外值的一个示例可以是0。例外值的另一示例可以是全部为1。
下一媒体样本的绝对解码时间可接着使用媒体解码时间逻辑框(例如使用tftd逻辑框或使用其baseMediaDecodeTime值)来发信号通知。下一媒体样本的呈现时间可基于组成偏移,其中组成偏移可包括解码至呈现时间的逐样本映射。在一些情况下,组成偏移可在组成时间至样本逻辑框(“ctts”)中提供。
另外,期望提供在文件或表示的末端处发信号通知渲染的终止以及媒体项(例如电影、节目或其他媒体项)的结束的能力。发信号通知呈现的终止和媒体项的结束可使用又一个例外来实施。这种例外可被称作文件结束例外。在一个说明性示例中,这种例外可通过发送具有样本持续时间(例如具有仅仅样本持续时间)的moof以及将样本持续时间设定为0来实施,以便发信号通知这是媒体文件的结束。例如,文件结束例外可指示样本为媒体文件的结束。
在区段结束处,呈现稀疏内容可能甚至更困难,这是由于需要区段边界来避免引起样本持续时间结束。另一例外信号可被提供,即发信号通知区段的结束,但呈现区段的样本将仅当呈现的终止被再次取消的指令不紧跟在后时才停止。这种例外可被称作区段结束例外。
图11为示出本文所描述的处理媒体内容的过程1100的实例的流程图。在一些示例中,过程1100可在解码器(例如图1或图14的解码设备112)或播放器设备(例如视频目的地设备122)处执行。
在1102处,过程1100包括在当前时间实例处获得包括至少当前时间分量的当前片段。例如,在时间t3处,图9的片段910c可由播放器设备获得,其中片段910c可包括时间904c。在另一示例中,图10的片段1010c可由播放器设备获得,其中片段1010c可包括时间1004c。
在1104处,过程1100包括从该当前时间分量确定针对至少一个媒体样本的经修改持续时间,该经修改持续时间指示先前片段的先前媒体样本的呈现将相对于该当前时间实例扩展或缩减的持续时间。在一些示例中,先前片段可包括用于呈现先前媒体样本的样本持续时间,其中该样本持续时间可已被设定为预定合理的持续时间。
例如,播放器设备可从baseMediaDecodeTime确定或解码包含在时间904c中的tftd字段中的时间(时间t3)。时间t3可对应于当前时间示例。播放器设备可确定包含在先前片段(片段910b)中的先前媒体样本(样本908b)的样本持续时间将相对于当前时间实例被缩减。例如,如先前片段910b的时间逻辑框904b中的样本持续时间字段中所指示,样本908b的样本持续时间可扩展经过时间t3。基于包含在当前时间分量中的时间t3,播放器设备可确定指示先前样本的样本持续时间将被缩减的持续时间的经修改持续时间。经修改持续时间可包括从扩展经过时间t3缩减样本持续时间,以使先前样本的样本持续时间为t3-t2。
在一些示例中,当前片段可以是不具有媒体样本数据的空片段。例如,片段910c可不包括图9中展示为可选字段的mdat逻辑框906c或样本908c。
在另一示例中,播放器设备可从baseMediaDecodeTime确定或解码包含在时间1004c中的tftd字段中的时间(时间t4)。播放器设备可确定包含在先前片段(片段1010b)中的先前媒体样本(样本1008b)的样本持续时间将相对于当前时间实例t3被扩展。例如,如先前片段1010b的时间逻辑框1004b中的样本持续时间字段中所指示,样本1008b的样本持续时间可扩展经过时间t3而至时间t4。基于包含在当前时间分量中的时间t4,播放器设备可确定指示先前样本的样本持续时间将扩展的持续时间的经修改持续时间。经修改持续时间可包括将样本持续时间从时间t3扩展至时间t4,以使先前样本的样本持续时间为t4-t2。
在一些示例中,当前片段可包括冗余媒体样本,其中该冗余媒体样本匹配先前媒体样本。例如,样本1008c可匹配或包含与图10中的样本1008b相同的样本数据。此外,在一些示例中,当前片段可包括冗余媒体样本字段,该冗余媒体样本字段用于提供该冗余媒体样本的指示。例如,片段1010c可包括诸如sample_has_redundancy之类的字段,sample_has_redundancy的值被设定为1以指示样本1008c为冗余样本。
在1106处,过程1100包括在基于该经修改持续时间的持续时间内呈现该至少一个媒体样本。例如,播放器设备可在从样本持续时间缩减一缩减持续时间的持续时间内呈现样本908b。例如,播放器设备可在持续时间t3-t2内呈现样本908b。在另一示例中,播放器设备可在从样本持续时间扩展一扩展持续时间的持续时间内呈现样本1008b。例如,播放器设备可在持续时间t4-t2内呈现样本1008b。在一些示例中,播放器设备可在扩展持续时间t4-t3内呈现在当前时间实例t3处开始的新的媒体样本。
在一些示例中,由播放器设备呈现的至少一个媒体样本可包括稀疏内容,其中用于呈现稀疏内容的持续时间在先前片段被解码时的先前时间实例处是未知的。例如,样本908b和/或1008b可包括稀疏内容,诸如图8中展示的公司标识802或字幕804。用于呈现稀疏内容的持续时间可在片段910b或1010b被解码的先前时间实例t2处并不由播放器设备知晓。
图12为示出如本文所描述的提供媒体内容的过程1200的实例的流程图。在一些示例中,过程1200可在编码器(例如图1或图13的解码设备104)处执行。
在1202处,过程1200包括在先前时间实例处提供包括先前媒体样本的先前片段,其中用于呈现该先前媒体样本的持续时间在该先前时间实例处是未知的。
例如,在图9中展示的时间实例t2处,包括样本908b的片段910b可被提供至解码器或播放器设备。在时间实例t2处,用于呈现样本908b的持续时间可能是未知的。样本908b可包括稀疏内容,并且持续时间可在时间实例t2处被设定为用于稀疏内容的合理的持续时间。
类似地,在另一示例中,在图10中展示的时间实例t2处,包括样本908b的片段1010b可被提供至解码器或播放器设备。在时间示例t2处,用于呈现样本1008b的持续时间可能是未知的。样本1008b可包括稀疏内容,并且持续时间可在时间实例t2处设定为用于稀疏内容的合理的持续时间。
在1204处,过程1200包括在当前时间实例处提供包括至少当前时间分量的当前片段,其中该当前时间分量包括针对该先前媒体样本的经修改持续时间,该经修改持续时间指示该先前媒体样本的呈现将相对于该当前时间实例扩展或缩减的持续时间。
例如,在图9中展示的时间实例t3处,包括时间逻辑框904c的片段910c可被提供至解码器或播放器设备。时间逻辑框904c可包括时间t3,时间t3可指示用于呈现样本908b的时间将被缩减至不扩展超过时间实例t3的持续时间。
在另一示例中,在图10中展示的时间实例t3处,包括时间逻辑框1004c的片段1010c可被提供至解码器或播放器设备。时间逻辑框1004c可包括时间t4,时间t4可指示用于呈现样本1008b的时间将被扩展至扩展超过时间实例t3而至时间实例t4的持续时间。
在一些实施中,本文中所描述的过程(或方法)可由计算设备或装置(诸如图1中展示的系统100)执行。例如,过程可由图1和图13中展示的编码设备104、由另一视频源侧设备或视频传输设备、由图1和图14中展示的解码设备112和/或由另一客户端侧设备(诸如播放器设备、显示器或任何其他客户端侧设备)执行。在一些情况下,计算设备或装置可包括处理器、微处理器、微计算机,或被配置为实施本文中所描述的过程的步骤的设备的其他组件。在一些示例中,计算设备或装置可包括被配置为捕获包括视频帧的视频数据(例如,视频序列)的摄影机。在一些示例中,捕获视频数据的摄影机或其他捕获设备与计算设备分离,在该情况下,计算设备接收或获得所捕获的视频数据。计算设备可进一步包括被配置为传达视频数据的网络接口。网络接口可被配置为传达基于网际网络协议(IP)的数据或其他类型的数据。在一些示例中,计算设备或装置可包括用于显示输出视频内容(诸如,视频比特流的画面的样本)的显示器。
计算设备的组件(例如一个或多个处理器、一个或多个微处理器、一个或多个微计算机和/或其他组件)可实施于电路中。例如,组件可包括电子电路或其他电子硬件和/或可使用电子电路或其他电子硬件来实施(电子电路或其他电子硬件可包括一个或多个可程序化电子电路(例如微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)和/或其他合适的电子电路)),和/或可包括计算机软件、固件或其任何组合和/或使用计算机软件、固件或其任何组合来实施,以执行本文中所描述的各种操作。
过程可关于逻辑流程图描述,其操作表示可在硬件、计算机指令或其组合中实施的操作的序列。在计算机指令的上下文中,操作表示存储于一个或多个计算机可读存储介质上的计算机可执行指令,该计算机可执行指令在由一个或多个处理器执行时执行所叙述的操作。通常,计算机可执行指令包括执行特定功能或实施特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的次序并不意图被理解为限制,并且任何数目的被描述操作可按任何次序和/或与实施过程并行地组合。
另外,过程可在被配置有可执行指令的一个或多个计算机系统的控制下执行,并且可被实施为共同在一个或多个处理器上实行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件实施或其组合。如上文所提及,代码可存储于计算机可读或机器可读存储介质上,例如,呈包括可由一个或多个处理器执行的多个指令的计算机程序的形式。计算机可读或机器可读存储介质可以是非暂时性的。
本文所论述的编码技术可实施于示例视频编码和解码系统(例如,系统100)中。在一些示例中,系统包括提供稍后由目的地设备解码的经编码视频数据的源设备。特别地,源设备经由计算机可读介质将视频数据提供至目的地设备。源设备和目的地设备可包括广泛范围的设备中的任何一个,包括桌面计算机、笔记本型(即,膝上型)计算机、平板计算机、机顶盒、电话手持机(诸如所谓的“智能”电话)、所谓“智能”平板计算机、电视机、摄影机、显示设备、数字媒体播放器、视频游戏控制面板、视频流设备等。在一些情况下,源设备和目的地设备可被装备以用于无线通信。
目的地设备可经由计算机可读介质接收待解码的经编码视频数据。计算机可读介质可包括能够将经编码视频数据从源设备移动至目的地设备的任何类型的介质或设备。在一个示例中,计算机可读介质可包括使得源设备能够实时地将经编码视频数据直接传输至目的地设备的通信介质。可根据通信标准(诸如,无线通信协议)调制经编码视频数据,并且将经编码视频数据传输至目的地设备。通信介质可包括任何无线或有线通信介质,诸如射频(RF)频谱或一个或多个实体传输线。通信介质可形成基于分组的网路(诸如,局域网络、广域网或诸如互联网的全局网络)的部分。通信介质可包括路由器、交换器、基地台或可用于促进从源设备至目的地设备的通信的任何其他装备。
在一些示例中,经编码数据可从输出接口输出至存储设备。类似地,可由输入接口从存储设备存取经编码数据。存储设备可包括多种分布式或本地存取的数据存储介质中的任何一个,诸如,硬盘机、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器或用于存储经编码视频数据的任何其他合适的数字存储介质。在另一示例中,存储设备可对应于文件服务器或可存储由源设备产生的经编码视频的另一中间存储设备。目的地设备可经由流式传输或下载从存储设备存取所存储的视频数据。文件服务器可以是能够存储经编码视频数据且将该经编码视频数据传输至目的地设备的任何类型的服务器。示例文件服务器包括网页服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)设备或本地磁盘机。目的地设备可经由任何标准数据连接(包括互联网连接)来存取经编码视频数据。该连接可包括适合于存取存储于文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、缆线数据机,等等),或两者的组合。从存储设备的经编码视频数据的传输可以是流传输、下载传输或其组合。
本发明的技术不必限于无线应用或设定。这些技术可应用于支持多种多媒体应用中的任何一个的视频编码,诸如,空中电视广播、有线电视传输、卫星电视传输、互联网流视频传输(诸如,经由HTTP动态自适应流(DASH))、被编码至数据存储介质上的数字视频、存储于数据存储介质上的数字视频的解码或其他应用。在一些示例中,系统可被配置以支持单向或双向视频传输从而支持诸如视频流、视频播放、视频广播和/或视频电话的应用。
在一个示例中,源设备包括视频源、视频编码器和输出接口。目的地设备可包括输入接口、视频解码器和显示设备。源设备的视频编码器可被配置为应用本文中所揭示的技术。在其他示例中,源设备和目的地设备可包括其他组件或配置。例如,源设备可从外部视频源(诸如,外部摄影机)接收视频数据。同样,目的地设备可与外部显示设备接口连接,而不是包括整合式显示设备。
以上示例系统仅为一个示例。用于平行地处理视频数据的技术可由任何数字视频编码和/或解码设备来执行。尽管本发明的技术一般由视频编码设备执行,但这些技术也可由视频编码器/解码器(通常被称作“编解码器”)执行。此外,本发明的技术也可由视频预处理器执行。源设备和目的地设备仅仅是其中源设备产生经编码视频数据以供传输至目的地设备的这种编码设备的示例。在一些示例中,源设备和目的地设备可以按大体上对称的方式操作,使得这些设备中的每一个包括视频编码和解码组件。因此,示例系统可支持视频设备之间的单向或双向视频传输,例如用于视频流、视频播放、视频广播或视频电话。
视频源可包括视频捕获设备,诸如视频摄影机、包含先前捕获的视频的视频存档和/或用于从视频内容提供商接收视频的视频馈入接口。作为另一替代方案,视频源可产生基于计算机图形的数据作为源视频,或实时视频、存档视频和计算机产生的视频的组合。在一些情况下,如果视频源为视频摄影机,则源设备和目的地设备可形成所谓摄影机电话或视频电话。然而,如上文所提及,本发明中所描述的技术一般可适用于视频编码,并且可适用于无线和/或有线应用。在每一情况下,可由视频编码器编码所捕获、被预捕获或计算机产生的视频。经编码视频信息接着可由输出接口输出至计算机可读介质上。
如所提及,计算机可读介质可包括暂时性介质,诸如无线广播或有线网络传输;或存储介质(即,非暂时性存储介质),诸如硬盘、闪存驱动器、压缩光盘、数字视频光盘、蓝光光盘或其他计算机可读介质。在一些示例中,网络服务器(图中未示出)可从源设备接收经编码视频数据且例如经由网络传输提供经编码视频数据至目的地设备。类似地,诸如光盘冲压设施的介质生产设施的计算设备可从源设备接收经编码视频数据且生产包含经编码视频数据的光盘。因此,在各种示例中,可理解计算机可读介质包括各种形式的一个或多个计算机可读介质。
目的地设备的输入接口从计算机可读介质接收信息。计算机可读介质的信息可包括由视频编码器定义的语法信息,语法信息也由视频解码器使用,语法信息包括描述区块和其他经编码单元(例如,画面群组(GOP))的特性和/或处理的语法元素。显示设备将经解码视频数据显示给用户,并且可包括多种显示设备中的任何一个,诸如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示设备。已描述本申请的各种实施例。
编码设备104和解码设备112的特定细节分别展示于图13和图14中。图13为示出可实施本发明中所描述的技术中的一个或多个的示例编码设备104的框图。编码设备104可(例如)产生本文中所描述的语法结构(例如,VPS、SPS、PPS或其他语法元素的语法结构)。编码设备104可执行视频条带内的视频区块的帧内预测和帧间预测编码。如先前所描述,帧内编码至少部分地依赖于空间预测以缩减或移除给定视频帧或画面内的空间冗余。帧间编码至少部分地依赖于时间预测以缩减或移除视频序列的邻近或周围帧内的时间冗余。帧内模式(I模式)可以指若干基于空间的压缩模式中的任何一个。帧间模式(诸如,单向预测(P模式)或双向预测(B模式))可指以若干基于时间的压缩模式中的任何一个。
编码设备104包括分割单元35、预测处理单元41、滤波器单元63、画面存储器64、求和器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41包括运动估计单元42、运动补偿单元44和帧内预测处理单元46。对于视频区块重建,编码设备104也包括反量化单元58、反变换处理单元60和求和器62。滤波器单元63意图表示一个或多个回路滤波器,诸如去块滤波器、自适应回路滤波器(ALF)和样本自适应偏移(SAO)滤波器。尽管滤波器单元63在图13中展示为回路滤波器,但在其他配置中,滤波器单元63可实施为后回路滤波器。后处理设备57可对由编码设备104产生的经编码视频数据执行额外处理。本发明的技术可在一些情况下由编码设备104实施。然而,在其他情况下,本发明的技术中的一个或多个可由后处理设备57实施。
如图13中所展示,编码设备104接收视频数据,并且分割单元35将数据分割成视频区块。分割也可包括(例如)根据LCU和CU的四叉树结构分割成条带、条带区段、画面块或其他较大单元,以及视频区块分割。编码设备104通常示出编码要编码的视频条带内的视频区块的组件。条带可划分成多个视频区块(且可能划分成被称作画面块的视频区块集合)。预测处理单元41可基于误差结果(例如,编码速率和失真等级等)选择多个可能编码模式中的一个(诸如,多个帧内预测编码模式中的一个或者多个帧间预测编码模式中的一个)以用于当前视频区块。预测处理单元41可将所得的被帧内编码或被帧间编码的区块提供至求和器50以产生残差区块数据且提供至求和器62以重建经编码区块以用作参考画面。
预测处理单元41内的帧内预测处理单元46可执行当前视频区块相对于与要编码的当前区块相同的帧或条带中的一个或多个相邻区块的帧内预测编码,以提供空间压缩。预测处理单元41内的运动估计单元42和运动补偿单元44执行当前视频区块相对于一个或多个参考画面中的一个或多个预测性区块的帧间预测性编码,以提供时间压缩。
运动估计单元42可被配置为根据视频序列的预定图案来确定用于视频条带的帧间预测模式。预定图案可将序列中的视频条带指定为P条带、B条带或GPB条带。运动估计单元42和运动补偿单元44可高度整合,但出于概念目的而单独示出。由运动估计单元42执行的运动估计是产生运动向量的过程,该运动向量估计视频区块的运动。运动向量(例如)可指示当前视频帧或画面内的视频区块的预测单元(PU)相对于参考画面内的预测性区块的位移。
预测性区块是就像素差(或图像样本差)而言被发现紧密地匹配要编码的视频区块的PU的区块,该像素差可由绝对差之和(SAD)、平方差之和(SSD)或其他差度量来确定。在一些示例中,编码设备104可计算存储于画面存储器64中的参考画面的子整数像素位置的值。例如,编码设备104可内插参考画面的四分之一像素位置、八分之一像素位置或其他分数像素位置的值。因此,运动估计单元42可执行关于全像素位置和分数像素位置的运动搜寻且输出具有分数像素精度的运动向量。
运动估计单元42通过比较PU的位置与参考画面的预测性区块的位置而计算被帧间编码的条带中的视频区块的PU的运动向量。参考画面可选自第一参考画面列表(列表0)或第二参考画面列表(列表1),这些列表中的每一个识别存储于画面存储器64中的一个或多个参考画面。运动估计单元42将所计算的运动向量发送至熵编码单元56和运动补偿单元44。
由运动补偿单元44执行的运动补偿可涉及基于由运动估计(可能执行内插至子像素精度)确定的运动向量而提取或产生预测性区块。在接收到当前视频区块的PU的运动向量之后,运动补偿单元44可在参考画面列表中找到运动向量所指向的预测性区块的位置。编码设备104通过从正被编码的当前视频区块的像素值减去预测性区块的像素值(或图像样本值)(从而形成像素差值(或图像样本差值))来形成残差视频区块。像素差值(或图像样本差值)形成区块的残差数据,并且可包括亮度和色度差分量两者。求和器50表示执行该减法运算的一个或多个组件。运动补偿单元44也可产生与视频区块和视频条带相关联的语法元素,以供解码设备112用于解码视频条带的视频区块。
如上文所描述,作为由运动估计单元42和运动补偿单元44执行的帧间预测的替代方案,帧内预测处理单元46可帧内预测当前区块。特定地,帧内预测处理单元46可确定帧内预测模式以用于编码当前区块。在一些示例中,帧内预测处理单元46可(例如)在分离的编码遍次(pass)期间使用各种帧内预测模式来编码当前区块,并且帧内预测处理单元46可从所测试模式中选择适当帧内预测模式来使用。例如,帧内预测处理单元46可使用对各种所测试帧内预测模式的速率-失真分析来计算速率-失真值,并且可在所测试模式间选择具有最佳速率-失真特性的帧内预测模式。速率-失真分析大体上确定经编码区块与原始未经编码区块(其经编码以产生经编码区块)之间的失真(或误差)量,以及用于产生经编码区块的比特率(即,比特的数目)。帧内预测处理单元46可根据各种经编码区块的失真和速率计算比率以确定哪一帧内预测模式展现该区块的最佳速率-失真值。
在任何情况下,在选择用于区块的帧内预测模式后,帧内预测处理单元46可将指示用于区块的所选帧内预测模式的信息提供至熵编码单元56。熵编码单元56可编码指示所选帧内预测模式的信息。编码设备104可将各种区块的编码上下文的定义以及待用于上下文中的每一个的最可能的帧内预测模式、帧内预测模式索引表以及经修改帧内预测模式索引表的指示包括在所传输的比特流配置数据中。比特流配置数据可包括多个帧内预测模式索引表以及多个经修改帧内预测模式索引表(也被称作码字映射表)。
在预测处理单元41经由帧间预测或帧内预测产生当前视频区块的预测性区块之后,编码设备104通过从当前视频区块减去预测性区块来形成残差视频区块。残差区块中的残差视频数据可包括于一个或多个TU中且被应用于变换处理单元52。变换处理单元52使用诸如离散余弦变换(DCT)的变换或概念上类似的变换将残差视频数据变换成残差变换系数。变换处理单元52可将残差视频数据从像素域转换至变换域(诸如,频域)。
变换处理单元52可将所得的变换系数发送至量化单元54。量化单元54量化变换系数以进一步减少比特率。量化程序可缩减与系数中的一些或所有相关联的比特深度。可通过调整量化参数来修改量化程度。在一些示例中,量化单元54可接着执行对包括经量化变换系数的矩阵的扫描。替代性地,熵编码单元56可执行扫描。
在量化之后,熵编码单元56对经量化变换系数进行熵编码。例如,熵编码单元56可执行上下文自适应性可变长度编码(CAVLC)、上下文自适应性二进制算术编码(CABAC)、基于语法的上下文自适应性二进制算术编码(SBAC)、概率区间分割熵(PIPE)编码或另一熵编码技术。在由熵编码单元56进行熵编码之后,经编码比特流可传输至解码设备112,或被存档以供稍后由解码设备112传输或由解码设备112检索。熵编码单元56也可对正被编码的当前视频条带的运动向量和其他语法元素进行熵编码。
反量化单元58和反变换处理单元60分别应用反量化和反变换以重建像素域中的残差区块以供稍后用作参考画面的参考区块。运动补偿单元44可通过将残差区块添加至参考画面列表内的参考画面中的一个的预测性区块来计算参考区块。运动补偿单元44也可将一个或多个内插滤波器应用于经重建残差区块以计算子整数像素值(或图像样本值)以供用于运动估计。求和器62将经重建残差区块添加至由运动补偿单元44产生的运动补偿预测区块,以产生用于存储于画面存储器64中的参考区块。参考区块可由运动估计单元42和运动补偿单元44用作参考区块以对后续视频帧或画面中的区块进行帧间预测。
以此方式,图13的编码设备104表示被配置为导出LIC参数、适应性地确定模板的大小和/或适应性地选择权重的视频编码器的实例。如上文所描述,编码设备104可(例如)导出LIC参数、适应性地确定模板的大小,和/或适应性地选择权重集合。例如,编码设备104可执行本文中所描述技术中的任何一个,包括上文参看图16、图17和图18所描述的过程。在一些情况下,本发明的技术中的一些也可由后处理设备57实施。
图14为示出示例解码设备112的框图。解码设备112包括熵解码单元80、预测处理单元81、反量化单元86、反变换处理单元88、求和器90、滤波器单元91和画面存储器92。预测处理单元81包括运动补偿单元82和帧内预测处理单元84。在一些示例中,解码设备112可执行大体上可逆于关于来自图13的编码设备104所描述的编码遍次的解码遍次。
在解码过程期间,解码设备112接收表示由编码设备104发送的经编码视频条带的视频区块和由编码设备104发送的相关联语法元素的经编码视频比特流。在一些实施例中,解码设备112可从编码设备104接收经编码视频比特流。在一些实施例中,解码设备112可从网络实体79(诸如,服务器、媒体感知网络组件(MANE)、视频编辑器/编接器或被配置为实施上文所描述的技术中的一个或多个的其他这种设备)接收经编码视频比特流。网络实体79可包括或可不包括编码设备104。在网络实体79将经编码视频比特流传输至解码设备112之前,本发明中所描述的技术中的一些可由网络实体79实施。在一些视频解码系统中,网络实体79和解码设备112可以是独立设备的部分,而在其他情况下,关于网络实体79描述的功能性可由包括解码设备112的同一设备执行。
解码设备112的熵解码单元80对比特流进行熵解码以产生经量化系数、运动向量和其他语法元素。熵解码单元80将运动向量和其他语法元素转发至预测处理单元81。解码设备112可接收在视频条带层级和/或视频区块层级的语法元素。熵解码单元80可处理并解析诸如VPS、SPS和PPS的一个或多个参数集中的固定长度语法元素和可变长度语法元素两者。
当视频条带被编码为帧内编码(I)条带时,预测处理单元81的帧内预测处理单元84可基于被发信号通知的帧内预测模式以及来自当前帧或画面的先前经解码区块的数据而产生当前视频条带的视频区块的预测数据。当将视频帧编码为帧间编码(即,B、P或GPB)条带时,预测处理单元81的运动补偿单元82基于运动向量和从熵解码单元80接收的其他语法元素而产生当前视频条带的视频区块的预测性区块。预测性区块可从参考画面列表内的参考画面中的一个产生。解码设备112可基于存储于画面存储器92中的参考画面使用默认构建技术来构建参考帧列表,即列表0和列表1。
运动补偿单元82通过解析运动向量和其他语法元素来确定用于当前视频条带的视频区块的预测信息,并使用该预测信息以产生经解码当前视频区块的预测性区块。例如,运动补偿单元82可使用参数集中的一个或多个语法元素以确定用于编码视频条带的视频区块的预测模式(例如,帧内预测或帧间预测)、帧间预测条带类型(例如,B条带、P条带或GPB条带)、条带的一个或多个参考画面列表的构建信息、条带的每个帧间编码视频区块的运动向量、条带的每个帧间编码视频区块的帧间预测状态,以及用于解码当前视频条带中的视频区块的其他信息。
运动补偿单元82也可执行基于内插滤波器的内插。运动补偿单元82可使用如在编码视频区块期间由编码设备104使用的内插滤波器来计算参考区块的子整数像素的内插值。在该情况下,运动补偿单元82可从所接收语法元素确定由编码设备104使用的内插滤波器,并且可使用内插滤波器来产生预测性区块。
反量化单元86反量化或解量化比特流中所提供的且由熵解码单元80解码的经量化变换系数。反量化过程可包括使用由编码设备104针对视频条带中的每个视频区块计算的量化参数来确定量化程度和同样应当应用的反量化程度。反变换处理单元88将反变换(例如,反DCT或其他合适的反变换)、反整数变换或概念上类似的反变换过程应用于变换系数以便在像素域中产生残差区块。
在运动补偿单元82基于运动向量和其他语法元素而产生当前视频区块的预测性区块之后,解码设备112通过将来自反变换处理单元88的残差区块与由运动补偿单元82产生的对应预测性区块求和而形成经解码视频区块。求和器90表示执行该求和运算的一个或多个组件。如果需要,也可使用回路滤波器(在编码回路中或在编码回路后)以使像素转变平滑,或以其他方式改善视频质量。滤波器单元91意图表示一个或多个回路滤波器,诸如,去块滤波器、自适应回路滤波器(ALF)和样本自适应偏移(SAO)滤波器。尽管滤波器单元91在图14中展示为回路滤波器,但在其他配置中,滤波器单元91可实施为后回路滤波器。给定帧或画面中的经解码视频区块接着存储于画面存储器92中,画面存储器92存储用于后续运动补偿的参考画面。画面存储器92也存储经解码视频以供稍后呈现于显示设备(诸如,图1中所展示的视频目的地设备122)上。
以此方式,图14的解码设备112表示被配置为导出LIC参数、适应性地确定模板的大小和/或适应性地选择权重的视频解码器的实例。如上文所描述,解码设备112可(例如)导出LIC参数,适应性地确定模板的大小,和/或适应性地选择权重集合。例如,解码设备112可执行本文中所描述的技术中的任何一个,包括上文参看图16、图17和图18所描述的过程。
如本文所用,术语“计算机可读介质”包括(但不限于)携带型或非携带型存储设备、光存储设备以及能够存储、包含或携载指令和/或数据的各种其他介质。计算机可读介质可包括非暂时性介质,其中可存储数据,并且不包括载波和/或无线地或经由有线连接传播的暂时性电子信号。非暂时性介质的示例可包括(但不限于)磁盘或磁带、诸如压缩光盘(CD)或数字通用光盘(DVD)的光学存储介质、闪存、存储器或存储器设备。计算机可读介质可具有存储于其上的代码和/或机器可执行指令,这些代码和/或机器可执行指令可表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类别,或指令、数据结构或程序语句的任何组合。一个码段可通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦接至另一码段或硬件电路。信息、自变量、参数、数据等可经由包括存储器共享、消息传递、令牌传递、网络传输等的任何合适方式来传递、转发或传输。
在一些实施例中,计算机可读存储设备、介质和存储器可包括包含比特流等的缆线或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确地排除诸如能量、载波信号、电磁波和信号本身的介质。
在以上描述中提供特定细节从而提供本文提供的实施例和示例的透彻理解。然而,一般本领域技术人员应理解,实施例可在无需这些具体细节的情况下实践。为了解释清楚起见,在一些情况下,本发明技术可呈现为包括单独功能区块,其包括含有软件或硬件和软件的组合中所体现的设备、设备组件、方法中的步骤或例程的功能区块。除各图中展示和/或本文中所描述的那些组件以外,可使用额外组件。例如,电路、系统、网络、过程和其他组件可以框图形式展示为组件以免在不必要的细节下与实施例混淆。在其他情况下,可在无不必要细节的情况下展示熟知电路、过程、算法、结构和技术以便避免混淆实施例。
单独实施例可在上文描述为描绘为流程图、数据流程图、结构图或框图的程序或方法。尽管流程图可能将操作描述为顺序过程,但许多操作可并行地或同时加以执行。另外,可再配置操作的次序。过程在其操作完成时终止,但可具有不包括于图中的额外步骤。过程可对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,其终止可对应于函数传回至调用函数或主函数。
可使用存储或以其他方式可从计算机可读介质获得的计算机可执行指令实施根据上文所描述的示例的过程和方法。这种指令可包括(例如)导致或以其他方式配置通用计算机、专用计算机或处理设备以执行某一功能或功能群组的指令和数据。可经由网络存取所使用的计算机资源的部分。计算机可执行指令可以是(例如)二进制中间格式指令,诸如,汇编语言、固件、源代码等。可用于存储指令、所使用信息和/或根据所描述示例的方法期间所产生的信息的计算机可读介质的示例包括磁盘或光盘、闪存、具备非易失性存储器的USB设备、网络连接存储设备等等。
实施根据这些公开内容的过程和方法的设备可包括硬件、软件、固件、中间软件、微码、硬件描述语言或其任何组合,并且可采取多种外观尺寸中的任何一个。当以软件、固件、中间软件或微码实施时,用于执行必要任务的程序代码或码段(例如,计算机程序产品)可存储于计算机可读或机器可读介质中。处理器可执行必要任务。外观尺寸的典型示例包括膝上型计算机、智能手机、移动电话、平板计算机设备或其他小外观尺寸个人计算机、个人数字助理、机架式设备、独立式设备等。本文中所描述的功能性也可体现于外围设备或附加卡。作为进一步的示例,该功能性也可实施于不同芯片或执行于单个设备中的不同过程中的电路板上。
该指令、用于运输这些指令的介质、用于实行这些媒体的计算资源,以及用于支持这些计算资源的其他结构为用于提供本发明中所描述的功能的示例部件。
在前述描述中,本申请的各方面是参考其特定实施例而描述的,但本领域技术人员将认识到本申请不限于此。因此,虽然本文中已详细描述本申请的说明性实施例,但应理解,本发明概念可以其他方式不同地体现并使用,并且所附权利要求意图解释为包括除先前技术所限制外的这些变化。上文所描述的本申请的各种特征和方面可单独地或联合地使用。另外,实施例可用于超出本文所描述的那些环境和应用的任何数目的环境和应用,而不脱离本说明书的更广精神和范围。因此,本说明书和附图被视为说明性的而不是限定性的。出于说明的目的,以特定次序描述方法。应了解,在替代实施例中,可以与所描述的次序不同的次序来执行这些方法。
普通技术人员将了解,在不脱离本说明书的范围的情况下,本文中所使用的小于(“<”)和大于(“>”)符号或术语可分别用小于或等于(“≤”)和大于或等于(“≥”)符号替换。
在组件被描述为“被配置为”执行某些操作的情况下,可(例如)通过设计电子电路或其他硬件以执行操作、通过程序化可程序化电子电路(例如,微处理器或其他合适的电子电路)以执行操作、或其任何组合来实现该配置。
短语“耦接至”是指直接地或间接地实体地连接至另一组件的任何组件,和/或直接地或间接地与另一组件(例如经由有线或无线连接和/或其他合适通信接口连接至其他组件)通信的任何组件。
列举集合“中的至少一个”的权利要求语言或其他语言指示该集合中的一个成分或该集合中的多个成分符合权利要求。例如,列举“A和B中的至少一个”的权利要求语言意味着A、B或A和B。
结合本文所揭示的实施例而描述的各种说明性逻辑区块、模块、电路和算法步骤可被实施为电子硬件、计算机软件、固件或其组合。为了清楚地说明硬件与软件的该可互换性,各种说明性组件、区块、模块、电路和步骤已在上文大体按其功能性加以了描述。该功能性实施为硬件或软件取决于特定应用和强加于整个系统的设计约束而定。本领域技术人员可针对每一特定应用而以变化的方式实施所描述的功能性,但不应将这种实施决策解译为致使脱离本申请的范围。
本文中所描述的技术也可实施于电子硬件、计算机软件、固件或其任何组合中。这种技术可实施于多种设备中的任何一个中,诸如,通用计算机、无线通信设备手机或具有多种用途(包括在无线通信设备手机和其他设备中的应用)的集成电路设备。可将描述为模块或组件的任何特征共同实施于整合式逻辑设备中或分开实施为离散但可互操作的逻辑设备。如果以软件实施,则这种技术可至少部分由包括含有指令的程序代码的计算机可读数据存储介质来实现,该指令在被执行时执行上文所描述方法中的一个或多个。计算机可读数据存储介质可形成计算机程序产品的部分,计算机程序产品可包括封装材料。计算机可读介质可包括存储器或数据存储介质,诸如,随机存取存储器(RAM),诸如,同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可程序化只读存储器(EEPROM)、闪存、磁性或光学数据存储介质等。另外或替代地,这些技术可至少部分地由计算机可读通信介质实现,该计算机可读通信介质携带或传达呈指令或数据结构的形式的且可由计算机存取、读取和/或实行的程序代码,诸如所传播的信号或波。
程序代码可由可包括一个或多个处理器的处理器执行,诸如,一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效集成或分立逻辑电路。这种处理器可被配置为执行本发明中所描述的技术中的任何一个。通用处理器可以是微处理器;但在替代方案中,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可实施为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或多个微处理器,或任何其他这种配置。因此,如本文中所使用的术语“处理器”可以指前述结构中的任何一个、前述结构的任何组合或适合于实施本文中所描述的技术的任何其他结构或装置。此外,在一些方面中,本文中描述的功能性可提供于被配置用于编码和解码的专用软件模块或硬件模块,或并入于组合的视频编码器-解码器(编解码器)中。
Claims (74)
1.一种处理媒体内容的方法,所述方法包括:
在当前时间实例处获得包括至少当前时间分量的当前片段;
从所述当前时间分量确定针对至少一个媒体样本的经修改持续时间,所述经修改持续时间指示先前片段的先前媒体样本的呈现将相对于所述当前时间实例扩展或缩减的持续时间;以及
在基于所述经修改持续时间的持续时间内呈现所述至少一个媒体样本。
2.如权利要求1所述的方法,其中,所述经修改持续时间包括扩展持续时间,所述扩展持续时间指示所述先前媒体样本的所述呈现将相对于所述当前时间实例扩展的持续时间。
3.如权利要求1所述的方法,其中,所述经修改持续时间包括缩减持续时间,所述缩减持续时间指示所述先前媒体样本的所述呈现将相对于所述当前时间实例缩减的持续时间。
4.如权利要求1所述的方法,其中,呈现所述至少一个媒体样本包括将所述先前媒体样本的呈现的持续时间扩展至少所述扩展持续时间。
5.如权利要求1所述的方法,其中,呈现所述至少一个媒体样本包括在所述当前时间实例处将新的媒体样本至少呈现所述扩展持续时间。
6.如权利要求1所述的方法,其中,呈现所述至少一个媒体样本包括将所述先前媒体样本的呈现的持续时间缩减所述缩减持续时间。
7.如权利要求1所述的方法,其中,所述先前媒体样本在先前时间实例处获得,所述先前时间实例在所述当前时间实例之前。
8.如权利要求1所述的方法,其中,所述当前片段为不具有媒体样本数据的空片段。
9.如权利要求1所述的方法,其中,所述当前片段包括冗余媒体样本,其中,所述冗余媒体样本匹配所述先前媒体样本。
10.如权利要求9所述的方法,其中,所述当前片段包括冗余媒体样本字段,所述冗余媒体样本字段用于提供所述冗余媒体样本的指示。
11.如权利要求1所述的方法,其中,呈现所述至少一个媒体样本包括显示所述至少一个媒体样本的视频内容。
12.如权利要求1所述的方法,其中,呈现所述至少一个媒体样本包括呈现所述至少一个媒体样本的音频内容。
13.如权利要求1所述的方法,其中,获得所述当前片段包括接收和解码所述当前片段。
14.如权利要求1所述的方法,其中,所述当前片段包括播放轨片段解码时间逻辑框(tfdt)逻辑框,所述tfdt逻辑框包括所述当前时间分量。
15.如权利要求1所述的方法,其中,所述当前时间分量包括baseMediaDecodeTime值。
16.如权利要求1所述的方法,其中,所述先前片段包括用于呈现所述先前媒体样本的样本持续时间,并且其中,所述样本持续时间包括预定合理的持续时间。
17.如权利要求1所述的方法,其中,所述至少一个媒体样本包括稀疏内容,其中,用于呈现所述稀疏内容的持续时间在所述先前片段被解码时的先前时间实例处是未知的。
18.一种用于处理媒体内容的装置,所述装置包括:
存储器;以及
处理器,其实施于电路中并被配置为:
在当前时间实例处获得包括至少当前时间分量的当前片段;
从所述当前时间分量确定针对至少一个媒体样本的经修改持续时间,所述经修改持续时间指示先前片段的先前媒体样本的呈现将相对于所述当前时间实例扩展或缩减的持续时间;以及
在基于所述经修改持续时间的持续时间内呈现所述至少一个媒体样本。
19.如权利要求18所述的装置,其中,所述经修改持续时间包括扩展持续时间,所述扩展持续时间指示所述先前媒体样本的所述呈现将相对于所述当前时间实例扩展的持续时间。
20.如权利要求18所述的装置,其中,所述经修改持续时间包括缩减持续时间,所述缩减持续时间指示所述先前媒体样本的所述呈现将相对于所述当前时间实例缩减的持续时间。
21.如权利要求18所述的装置,其中,呈现所述至少一个媒体样本包括将所述先前媒体样本的呈现的持续时间扩展至少所述扩展持续时间。
22.如权利要求18所述的装置,其中,呈现所述至少一个媒体样本包括在所述当前时间实例处将新的媒体样本至少呈现所述扩展持续时间。
23.如权利要求18所述的装置,其中,呈现所述至少一个媒体样本包括将所述先前媒体样本的呈现的持续时间缩减所述缩减持续时间。
24.如权利要求18所述的装置,其中,所述先前媒体样本在先前时间实例处获得,所述先前时间实例在所述当前时间实例之前。
25.如权利要求18所述的装置,其中,所述当前片段为不具有媒体样本数据的空片段。
26.如权利要求18所述的装置,其中,所述当前片段包括冗余媒体样本,其中,所述冗余媒体样本匹配所述先前媒体样本。
27.如权利要求26所述的装置,其中,所述当前片段包括冗余媒体样本字段,所述冗余媒体样本字段用于提供所述冗余媒体样本的指示。
28.如权利要求18所述的装置,其中,呈现所述至少一个媒体样本包括显示所述至少一个媒体样本的视频内容。
29.如权利要求18所述的装置,其中,呈现所述至少一个媒体样本包括呈现所述至少一个媒体样本的音频内容。
30.如权利要求18所述的装置,其中,获得所述当前片段包括接收和解码所述当前片段。
31.如权利要求18所述的装置,其中,所述当前片段包括播放轨片段解码时间逻辑框(tfdt)逻辑框,所述tfdt逻辑框包括所述当前时间分量。
32.如权利要求18所述的装置,其中,所述当前时间分量包括baseMediaDecodeTime值。
33.如权利要求18所述的装置,其中,所述先前片段包括用于呈现所述先前媒体样本的样本持续时间,并且其中,所述样本持续时间包括预定合理的持续时间。
34.如权利要求18所述的装置,其中,所述至少一个媒体样本包括稀疏内容,其中,用于呈现所述稀疏内容的持续时间在所述先前片段被解码时的先前时间实例处是未知的。
35.如权利要求18所述的装置,其中,所述装置包括解码器。
36.如权利要求18所述的装置,其中,所述装置包括用于呈现所述媒体内容的播放器设备。
37.一种其上存储有指令的非暂时性计算机可读介质,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器执行以下操作:
在当前时间实例处获得包括至少当前时间分量的当前片段;
从所述当前时间分量确定针对至少一个媒体样本的经修改持续时间,所述经修改持续时间指示先前片段的先前媒体样本的呈现将相对于所述当前时间实例扩展或缩减的持续时间;以及
在基于所述经修改持续时间的持续时间内呈现所述至少一个媒体样本。
38.如权利要求37所述的非暂时性计算机可读介质,其中,所述经修改持续时间包括扩展持续时间,所述扩展持续时间指示所述先前媒体样本的所述呈现将相对于所述当前时间实例扩展的持续时间。
39.如权利要求37所述的非暂时性计算机可读介质,其中,所述经修改持续时间包括缩减持续时间,所述缩减持续时间指示所述先前媒体样本的所述呈现将相对于所述当前时间实例缩减的持续时间。
40.如权利要求37所述的非暂时性计算机可读介质,其中,呈现所述至少一个媒体样本包括将所述先前媒体样本的呈现的持续时间扩展至少所述扩展持续时间。
41.如权利要求37所述的非暂时性计算机可读介质,其中,呈现所述至少一个媒体样本包括在所述当前时间实例处将新的媒体样本至少呈现所述扩展持续时间。
42.如权利要求37所述的非暂时性计算机可读介质,其中,呈现所述至少一个媒体样本包括将所述先前媒体样本的呈现的持续时间缩减所述缩减持续时间。
43.如权利要求37所述的非暂时性计算机可读介质,其中,所述先前媒体样本在先前时间实例处获得,所述先前时间实例在所述当前时间实例之前。
44.如权利要求37所述的非暂时性计算机可读介质,其中,所述当前片段为不具有媒体样本数据的空片段。
45.如权利要求37所述的非暂时性计算机可读介质,其中,所述当前片段包括冗余媒体样本,其中,所述冗余媒体样本匹配所述先前媒体样本。
46.如权利要求45所述的非暂时性计算机可读介质,其中,所述当前片段包括冗余媒体样本字段,所述冗余媒体样本字段用于提供所述冗余媒体样本的指示。
47.如权利要求37所述的非暂时性计算机可读介质,其中,呈现所述至少一个媒体样本包括显示所述至少一个媒体样本的视频内容。
48.如权利要求37所述的非暂时性计算机可读介质,其中,呈现所述至少一个媒体样本包括呈现所述至少一个媒体样本的音频内容。
49.如权利要求37所述的非暂时性计算机可读介质,其中,获得所述当前片段包括接收和解码所述当前片段。
50.如权利要求37所述的非暂时性计算机可读介质,其中,所述当前片段包括播放轨片段解码时间逻辑框(tfdt)逻辑框,所述tfdt逻辑框包括所述当前时间分量。
51.如权利要求37所述的非暂时性计算机可读介质,其中,所述当前时间分量包括baseMediaDecodeTime值。
52.如权利要求37所述的非暂时性计算机可读介质,其中,所述先前片段包括用于呈现所述先前媒体样本的样本持续时间,并且其中,所述样本持续时间包括预定合理的持续时间。
53.如权利要求37所述的非暂时性计算机可读介质,其中,所述至少一个媒体样本包括稀疏内容,其中,用于呈现所述稀疏内容的持续时间在所述先前片段被解码时的先前时间实例处是未知的。
54.一种用于处理媒体内容的装置,所述装置包括:
用于在当前时间实例处获得包括至少当前时间分量的当前片段的部件;
用于从所述当前时间分量确定针对至少一个媒体样本的经修改持续时间的部件,所述经修改持续时间指示先前片段的先前媒体样本的呈现将相对于所述当前时间实例扩展或缩减的持续时间;以及
用于在基于所述经修改持续时间的持续时间内呈现所述至少一个媒体样本的部件。
55.如权利要求54所述的装置,其中,所述经修改持续时间包括扩展持续时间,所述扩展持续时间指示所述先前媒体样本的所述呈现将相对于所述当前时间实例扩展的持续时间。
56.如权利要求54所述的装置,其中,所述经修改持续时间包括缩减持续时间,所述缩减持续时间指示所述先前媒体样本的所述呈现将相对于所述当前时间实例缩减的持续时间。
57.如权利要求54所述的装置,其中,用于呈现所述至少一个媒体样本的所述部件包括用于将所述先前媒体样本的呈现的持续时间扩展至少所述扩展持续时间的部件。
58.如权利要求54所述的装置,其中,用于呈现所述至少一个媒体样本的所述部件包括用于在所述当前时间实例处将新的媒体样本至少呈现所述扩展持续时间的部件。
59.如权利要求54所述的装置,其中,用于呈现所述至少一个媒体样本的所述部件包括用于将所述先前媒体样本的呈现的持续时间缩减所述缩减持续时间的部件。
60.如权利要求54所述的装置,其中,所述先前媒体样本在先前时间实例处获得,所述先前时间实例在所述当前时间实例之前。
61.如权利要求54所述的装置,其中,所述当前片段为不具有媒体样本数据的空片段。
62.如权利要求54所述的装置,其中,所述当前片段包括冗余媒体样本,其中,所述冗余媒体样本匹配所述先前媒体样本。
63.如权利要求62所述的装置,其中,所述当前片段包括冗余媒体样本字段,所述冗余媒体样本字段用于提供所述冗余媒体样本的指示。
64.如权利要求54所述的装置,其中,用于呈现所述至少一个媒体样本的所述部件包括用于显示所述至少一个媒体样本的视频内容的部件。
65.如权利要求54所述的装置,其中,用于呈现所述至少一个媒体样本的所述部件包括用于呈现所述至少一个媒体样本的音频内容的部件。
66.如权利要求54所述的装置,其中,用于获得所述当前片段的所述部件包括用于接收所述当前片段的部件和用于解码所述当前片段的部件。
67.如权利要求54所述的装置,其中,所述当前片段包括播放轨片段解码时间逻辑框(tfdt)逻辑框,所述tfdt逻辑框包括所述当前时间分量。
68.如权利要求54所述的装置,其中,所述当前时间分量包括baseMediaDecodeTime值。
69.如权利要求54所述的装置,其中,所述先前片段包括用于呈现所述先前媒体样本的样本持续时间,并且其中,所述样本持续时间包括预定合理的持续时间。
70.如权利要求54所述的装置,其中,所述至少一个媒体样本包括稀疏内容,其中,用于呈现所述稀疏内容的持续时间在所述先前片段被解码时的先前时间实例处是未知的。
71.一种提供媒体内容的方法,所述方法包括:
在先前时间实例处提供包括先前媒体样本的先前片段,其中用于呈现所述先前媒体样本的持续时间在所述先前时间实例处是未知的;以及
在当前时间实例处提供包括至少当前时间分量的当前片段,其中所述当前时间分量包括针对所述先前媒体样本的经修改持续时间,所述经修改持续时间指示所述先前媒体样本的呈现将相对于所述当前时间实例扩展或缩减的持续时间。
72.一种用于提供媒体内容的装置,所述装置包括:
存储器;以及
处理器,其实施于电路中并被配置为:
在先前时间实例处提供包括先前媒体样本的先前片段,其中用于呈现所述先前媒体样本的持续时间在所述先前时间实例处是未知的;以及
在当前时间实例处提供包括至少当前时间分量的当前片段,其中所述当前时间分量包括针对所述先前媒体样本的经修改持续时间,所述经修改持续时间指示所述先前媒体样本的呈现将相对于所述当前时间实例扩展或缩减的持续时间。
73.一种其上存储有指令的非暂时性计算机可读介质,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器执行以下操作:
在先前时间实例处提供包括先前媒体样本的先前片段,其中用于呈现所述先前媒体样本的持续时间在所述先前时间实例处是未知的;以及
在当前时间实例处提供包括至少当前时间分量的当前片段,其中所述当前时间分量包括针对所述先前媒体样本的经修改持续时间,所述经修改持续时间指示所述先前媒体样本的呈现将相对于所述当前时间实例扩展或缩减的持续时间。
74.一种用于提供媒体内容的装置,所述装置包括:
用于在先前时间实例处提供包括先前媒体样本的先前片段的部件,其中用于呈现所述先前媒体样本的持续时间在所述先前时间实例处是未知的;以及
用于在当前时间实例处提供包括至少当前时间分量的当前片段的部件,其中所述当前时间分量包括针对所述先前媒体样本的经修改持续时间,所述经修改持续时间指示所述先前媒体样本的呈现将相对于所述当前时间实例扩展或缩减的持续时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211005687.9A CN115550745A (zh) | 2018-07-11 | 2019-07-09 | 处理媒体内容的方法、装置和计算机可读介质 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862696547P | 2018-07-11 | 2018-07-11 | |
US62/696,547 | 2018-07-11 | ||
US16/505,598 US10986402B2 (en) | 2018-07-11 | 2019-07-08 | Time signaling for media streaming |
US16/505,598 | 2019-07-08 | ||
PCT/US2019/041079 WO2020014281A1 (en) | 2018-07-11 | 2019-07-09 | Time signaling for media streaming |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211005687.9A Division CN115550745A (zh) | 2018-07-11 | 2019-07-09 | 处理媒体内容的方法、装置和计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112385242A true CN112385242A (zh) | 2021-02-19 |
CN112385242B CN112385242B (zh) | 2022-09-02 |
Family
ID=69139850
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980046379.0A Active CN112385242B (zh) | 2018-07-11 | 2019-07-09 | 一种处理媒体内容的方法、装置及计算机可读存储介质 |
CN202211005687.9A Pending CN115550745A (zh) | 2018-07-11 | 2019-07-09 | 处理媒体内容的方法、装置和计算机可读介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211005687.9A Pending CN115550745A (zh) | 2018-07-11 | 2019-07-09 | 处理媒体内容的方法、装置和计算机可读介质 |
Country Status (7)
Country | Link |
---|---|
US (3) | US10986402B2 (zh) |
EP (1) | EP3821613A1 (zh) |
CN (2) | CN112385242B (zh) |
BR (1) | BR112021000131A2 (zh) |
SG (1) | SG11202012684XA (zh) |
TW (2) | TWI834686B (zh) |
WO (1) | WO2020014281A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115225909A (zh) * | 2021-04-18 | 2022-10-21 | 脸萌有限公司 | 通用媒体应用格式中的参数集 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10986402B2 (en) * | 2018-07-11 | 2021-04-20 | Qualcomm Incorporated | Time signaling for media streaming |
US10833092B2 (en) | 2019-01-23 | 2020-11-10 | Micron Technology, Inc. | Methods of incorporating leaker-devices into capacitor configurations to reduce cell disturb, and capacitor configurations incorporating leaker-devices |
GB2585052B (en) * | 2019-06-26 | 2023-07-26 | Canon Kk | Method and apparatus for encapsulating panorama images in a file |
EP4169261A1 (en) * | 2020-06-18 | 2023-04-26 | Nokia Technologies Oy | Method and apparatus for signaling multiple media data types |
CN116803084A (zh) * | 2020-12-21 | 2023-09-22 | 弗劳恩霍夫应用研究促进协会 | 使用用于编码视频序列的参数集的文件解析器、文件生成器、编码器、解码器、客户端、服务器及方法 |
CN116076073A (zh) * | 2021-09-02 | 2023-05-05 | 辉达公司 | 用于高性能视频编码的硬件编解码器加速器 |
CN116097649A (zh) | 2021-09-06 | 2023-05-09 | 辉达公司 | 无滤波相依性的视频帧的并行编码 |
US20230370682A1 (en) * | 2022-05-12 | 2023-11-16 | Apple Inc. | Techniques for elision of redundant transition content among tracks in media distribution |
US20240129537A1 (en) * | 2022-10-18 | 2024-04-18 | Tencent America LLC | Method and apparatus for signaling cmaf switching sets in isobmff |
US12238335B2 (en) | 2023-04-18 | 2025-02-25 | Nvidia Corporation | Efficient sub-pixel motion vector search for high-performance video encoding |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1729689A (zh) * | 2002-12-20 | 2006-02-01 | 松下电器产业株式会社 | 数据流格式变换方法及其记录方法 |
EP1765017A1 (en) * | 2005-09-20 | 2007-03-21 | Mediatek Inc. | Data processing methods and systems |
CN101536105A (zh) * | 2006-11-07 | 2009-09-16 | 微软公司 | 媒体内容呈现的时序方面 |
CN101669369A (zh) * | 2007-04-24 | 2010-03-10 | 诺基亚公司 | 媒体文件中的多个解码时间的信号传输 |
CN104040993A (zh) * | 2012-01-17 | 2014-09-10 | 瑞典爱立信有限公司 | 用于发送相应地接收媒体流的方法 |
US20150195327A1 (en) * | 2014-01-09 | 2015-07-09 | Samsung Electronics Co., Ltd. | Method and apparatus for streaming dash content over broadcast channels |
CN106134208A (zh) * | 2014-04-10 | 2016-11-16 | 索尼公司 | 发送设备、发送方法、接收设备以及接收方法 |
CN107077873A (zh) * | 2014-09-25 | 2017-08-18 | 微软技术许可有限责任公司 | 将样本元数据与媒体样本进行耦合 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7134039B2 (en) * | 2004-07-06 | 2006-11-07 | Magnum Semiconductor, Inc. | Recovery of real-time video data after power loss |
US8644675B2 (en) | 2008-06-06 | 2014-02-04 | Deluxe Digital Studios, Inc. | Methods and systems for use in providing playback of variable length content in a fixed length framework |
US20110292068A1 (en) | 2009-03-13 | 2011-12-01 | Sharp Kabushiki Kaisha | Image display method and image display apparatus |
WO2011056139A1 (en) * | 2009-11-06 | 2011-05-12 | Telefonaktiebolaget L M Ericsson (Publ). | File format for synchronized media |
US9485546B2 (en) * | 2010-06-29 | 2016-11-01 | Qualcomm Incorporated | Signaling video samples for trick mode video representations |
JP6968516B2 (ja) * | 2013-01-18 | 2021-11-17 | キヤノン株式会社 | 生成装置、生成方法、提供装置、提供方法、及び、プログラム |
US9786255B2 (en) | 2014-05-30 | 2017-10-10 | Nvidia Corporation | Dynamic frame repetition in a variable refresh rate system |
US20160373771A1 (en) | 2015-06-18 | 2016-12-22 | Qualcomm Incorporated | Design of tracks and operation point signaling in layered hevc file format |
WO2017093611A1 (en) * | 2015-12-02 | 2017-06-08 | Nokia Technologies Oy | A method for video encoding/decoding and an apparatus and a computer program product for implementing the method |
US10021438B2 (en) | 2015-12-09 | 2018-07-10 | Comcast Cable Communications, Llc | Synchronizing playback of segmented video content across multiple video playback devices |
US10701415B2 (en) | 2016-05-19 | 2020-06-30 | Arris Enterprises Llc | Method and apparatus for segmenting data |
US20180103271A1 (en) | 2016-10-10 | 2018-04-12 | Qualcomm Incorporated | Systems and methods for signaling missing or corrupted video data |
CN113965777B (zh) | 2017-12-08 | 2024-10-11 | 谷歌有限责任公司 | 组合数字视频内容的方法及系统 |
US11438647B2 (en) | 2018-05-11 | 2022-09-06 | Qualcomm Incorporated | Signaling missing sections of media data for network streaming in a manifest file |
US10986402B2 (en) | 2018-07-11 | 2021-04-20 | Qualcomm Incorporated | Time signaling for media streaming |
-
2019
- 2019-07-08 US US16/505,598 patent/US10986402B2/en active Active
- 2019-07-09 CN CN201980046379.0A patent/CN112385242B/zh active Active
- 2019-07-09 WO PCT/US2019/041079 patent/WO2020014281A1/en unknown
- 2019-07-09 EP EP19745896.1A patent/EP3821613A1/en active Pending
- 2019-07-09 SG SG11202012684XA patent/SG11202012684XA/en unknown
- 2019-07-09 BR BR112021000131-0A patent/BR112021000131A2/pt unknown
- 2019-07-09 CN CN202211005687.9A patent/CN115550745A/zh active Pending
- 2019-07-11 TW TW108124485A patent/TWI834686B/zh active
- 2019-07-11 TW TW112121880A patent/TWI857651B/zh active
-
2021
- 2021-03-24 US US17/211,554 patent/US11638062B2/en active Active
-
2023
- 2023-03-16 US US18/185,174 patent/US11997349B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1729689A (zh) * | 2002-12-20 | 2006-02-01 | 松下电器产业株式会社 | 数据流格式变换方法及其记录方法 |
EP1765017A1 (en) * | 2005-09-20 | 2007-03-21 | Mediatek Inc. | Data processing methods and systems |
CN101536105A (zh) * | 2006-11-07 | 2009-09-16 | 微软公司 | 媒体内容呈现的时序方面 |
CN101669369A (zh) * | 2007-04-24 | 2010-03-10 | 诺基亚公司 | 媒体文件中的多个解码时间的信号传输 |
CN104040993A (zh) * | 2012-01-17 | 2014-09-10 | 瑞典爱立信有限公司 | 用于发送相应地接收媒体流的方法 |
US20150195327A1 (en) * | 2014-01-09 | 2015-07-09 | Samsung Electronics Co., Ltd. | Method and apparatus for streaming dash content over broadcast channels |
CN106134208A (zh) * | 2014-04-10 | 2016-11-16 | 索尼公司 | 发送设备、发送方法、接收设备以及接收方法 |
CN107077873A (zh) * | 2014-09-25 | 2017-08-18 | 微软技术许可有限责任公司 | 将样本元数据与媒体样本进行耦合 |
Non-Patent Citations (1)
Title |
---|
MOTION PICTURE EXPERT GROUP ORISO/IEC JTC1/SC29/WG11: "Text of ISO/IEC 14496一12 5th edition", 《111. MPEG MEETING》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115225909A (zh) * | 2021-04-18 | 2022-10-21 | 脸萌有限公司 | 通用媒体应用格式中的参数集 |
CN115225910A (zh) * | 2021-04-18 | 2022-10-21 | 脸萌有限公司 | 封装和自适应视频流的约束 |
Also Published As
Publication number | Publication date |
---|---|
US11638062B2 (en) | 2023-04-25 |
CN115550745A (zh) | 2022-12-30 |
US20230224535A1 (en) | 2023-07-13 |
SG11202012684XA (en) | 2021-01-28 |
TWI834686B (zh) | 2024-03-11 |
TW202341744A (zh) | 2023-10-16 |
TW202007176A (zh) | 2020-02-01 |
TWI857651B (zh) | 2024-10-01 |
CN112385242B (zh) | 2022-09-02 |
EP3821613A1 (en) | 2021-05-19 |
US20210211766A1 (en) | 2021-07-08 |
US20200021883A1 (en) | 2020-01-16 |
BR112021000131A2 (pt) | 2021-04-06 |
US10986402B2 (en) | 2021-04-20 |
US11997349B2 (en) | 2024-05-28 |
WO2020014281A1 (en) | 2020-01-16 |
TW202423124A (zh) | 2024-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI834686B (zh) | 用於媒體串流之時間信令傳輸 | |
KR102614206B1 (ko) | 비디오 코딩을 위한 서브-픽처 비트스트림들을 포함한 비디오 컨텐츠의 시그널링 | |
CN109792567B (zh) | 用于发送遗失或损坏视频数据信号的系统及方法 | |
CN107750458B (zh) | 视频编码方法、编解码装置及介质 | |
JP6816166B2 (ja) | ビデオピクチャのための領域ネスティングメッセージを生成するための方法およびシステム | |
EP3566458B1 (en) | Improved restricted scheme design for video | |
EP3959877A1 (en) | Adaptation parameter sets (aps) for adaptive loop filter (alf) parameters | |
CN110809758A (zh) | 容器文件及视频位流中关注区域的增强信令发射 | |
TW202121899A (zh) | 針對局部雙樹的調色板預測器更新 | |
KR102603980B1 (ko) | 비디오 인코더, 비디오 디코더, 및 대응하는 방법들 | |
WO2023107790A1 (en) | Adaptive film grain synthesis | |
TWI871184B (zh) | 用於媒體串流之時間信令傳輸 | |
US12225219B2 (en) | Enhanced video decoder using tile-to-raster reordering | |
US20240236333A1 (en) | Early notification for a low latency video decoder | |
WO2024137116A1 (en) | Optimized storage scheme for cross-component adaptive loop filtering |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40046576 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |