CN105144726B - 指示媒体内容的样本的标称范围的定制数据 - Google Patents

指示媒体内容的样本的标称范围的定制数据 Download PDF

Info

Publication number
CN105144726B
CN105144726B CN201380075262.8A CN201380075262A CN105144726B CN 105144726 B CN105144726 B CN 105144726B CN 201380075262 A CN201380075262 A CN 201380075262A CN 105144726 B CN105144726 B CN 105144726B
Authority
CN
China
Prior art keywords
media
video
content
sample
range
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
CN201380075262.8A
Other languages
English (en)
Other versions
CN105144726A (zh
Inventor
吴勇军
N.萨姆普迪
S.萨赫瓦尼
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105144726A publication Critical patent/CN105144726A/zh
Application granted granted Critical
Publication of CN105144726B publication Critical patent/CN105144726B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2383Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
    • 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/234309Processing 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 by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • 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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2351Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving encryption of additional data
    • 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/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4382Demodulation or channel decoding, e.g. QPSK demodulation
    • 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/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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • 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/440218Processing 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 by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4

Landscapes

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

Abstract

媒体处理工具将定制数据添加到基本媒体比特流或媒体容器中。定制数据指示媒体内容的样本的标称范围,但是在编解码器格式或媒体容器格式中并没有定义定制数据的含义。举例来说,定制数据指示标称范围是完全范围或有限范围。对于重放,媒体处理工具解析定制数据,并且确定媒体内容类型的指示。渲染引擎实施颜色转换操作,其逻辑至少部分地基于媒体内容类型而改变。通过这种方式,编解码器格式或媒体容器格式可以有效地被扩展以便支持完全标称范围媒体内容以及有限标称范围媒体内容,从而保留完全的或正确的颜色保真度,同时保持了对于编解码器格式或媒体容器格式的后向兼容性和遵循。

Description

指示媒体内容的样本的标称范围的定制数据
技术领域
本发明涉及媒体处理领域。
背景技术
计算机将媒体信息作为表示该信息的一系列数字来处理。举例来说,单一数字可以表示针对图片的每一个基本小区段的亮度的强度或者颜色分量(比如红色、绿色或蓝色)的强度,从而使得图片的数字表示由这样的数字的一个或更多阵列构成。每一个这样的数字可以被称作一个样本。对于彩色图像,常规上使用多于一个样本来表示每一个基本区段的颜色。针对基本区段的这些样本的集合可以被称作像素。举例来说,一个像素可以由表示红色、绿色和蓝色(或R、G和B)光的强度的三个样本构成。
样本深度是通常以比特来测量的属性,其指示可以被用来表示样本的数字的范围。当对于样本可能有更多数值时,质量可以更高,这是因为所述数字可以捕获更加细微的强度变化和/或更大的数值范围。标称范围(也被称作“颜色范围”)指示被用于样本的数值范围,其处在针对样本深度的可用范围内。举例来说,对于具有0……255的可用范围的8比特样本,标称范围出于某些目的可以是16……235(比如媒体编解码/解码或常规电视显示),出于某些目的可以是48……208,并且出于其他目的可以是0……255(比如在更加新的显示器上的视频编辑或观看)。
在不同处理阶段之间,样本可以在颜色空间之间被转换、在标称范围之间被缩放或者受到其他处理。举例来说,比如摄影机或屏幕捕获模块之类的视频源可以提供在颜色空间中的视频,所述颜色空间比如是对于每个8比特样本具有0……255的标称范围的RGB。所述样本可以被转换成对于每个8比特样本具有16……235的标称范围的YUV格式。YUV格式包括辉度(或Y)分量(其具有表示近似亮度数值的样本数值)以及多个色度(或者U和V)分量(其具有表示色差数值的样本数值)。
工程师使用压缩(也被称作源编解码或源编码)来降低数字视频的比特率。压缩通过把信息转换成更低比特率形式来减少存储和传送视频信息的成本。解压缩(也被称作解码)从压缩形式重建原始信息的版本。“编解码器”是编码器/解码器系统。在过去的二十年内已经采用了多种视频编解码器标准,其中包括H.261、H.262(MPEG-2或ISO/IEC 13818-2)、H.263、H.264(ISO/IEC 14496-10)标准、MPEG-1(ISO/IEC 11172-2)和MPEG-4 Visual(ISO/IEC 14496-2)标准、SMPTE 421M标准以及新兴的HEVC标准。视频编解码器标准通常定义用于已编码视频比特流的语法的选项,从而在编码和解码中使用特定特征时详解比特流中的参数。在许多情况下,视频编解码器标准还提供关于解码器为了在解码中获得正确的结果而应当实施的解码操作的细节。
一般来说,媒体容器格式规定如何组织针对一个或多个媒体流的已编码媒体内容以供存储、传送等等。连同标识出针对媒体内容的信息一起,媒体容器格式可以规定关于媒体内容的元数据、定时信息以及纠错信息。
一些视频编解码器格式和媒体容器格式仅支持针对视频的单一标称范围,比如YUV颜色空间中的16……235。但是视频源可能提供具有0……255的完全标称范围的视频,而不是比如16……235的有限范围。如果颜色空间和标称范围之间的转换没有被正确地应对,则由于对数值的限幅(clipping)或者由于将“有限范围”数值误作为“完全范围”数值重放,视频的质量可能受损。更一般来说,即使颜色空间和标称范围之间的转换被正确地应对,从完全标称范围到有限标称范围的转换也可能由于颜色保真度的损失而损害到质量。
发明内容
总的来说,这里所描述的创新提供了使用定制数据来指示媒体内容的样本的标称范围的方式。举例来说,编解码器格式或媒体容器格式可以有效地被扩展以支持完全标称范围视频内容(以及有限标称范围视频内容),从而保留完全的(或正确的)颜色保真度,同时保持对于编解码器格式或媒体容器格式的后向兼容性和遵循。
根据这里所描述的第一创新集合,媒体处理工具将定制数据添加到已编码媒体内容中,随后输出定制数据和已编码媒体内容。定制数据指示媒体内容的样本的标称范围。举例来说,定制数据指示样本的标称范围是以下各项的其中之一:(a)针对比特深度n的样本的由从0……2n-1的数值表征的完全范围,以及(b)由所述完全范围的一个子范围中的数值表征的有限范围。
所述媒体处理工具可以将定制数据作为一个或更多语法元素添加在基本媒体比特流中,从而使得保持了对于基本媒体比特流的格式的后向兼容性和遵循,其中,所述基本媒体比特流还包括用于已编码媒体内容的语法元素。举例来说,用于定制数据的一个或更多语法元素被添加在基本媒体比特流中以作为进入点用户数据,或者作为比特流语法的某一其他层级的用户数据。对于视频内容,所述媒体处理工具可以是视频编码器,其还接收由视频源提供的视频内容类型的指示,接收由视频源提供的输入视频内容,并且产生基本视频比特流,其中在所述产生期间基于视频内容类型添加用户数据。
或者,所述媒体处理工具可以将定制数据作为一个或更多字段添加在媒体容器中,从而使得保持了对于媒体容器的格式的后向兼容性和遵循,其中,所述媒体容器还包括在基本媒体比特流中的已编码媒体内容。举例来说,定制数据作为元数据对象的一个或更多字段被添加在媒体容器中。对于视频内容,所述媒体处理工具可以是容器格式信宿(sink)工具,其还接收由视频源提供的视频内容类型的指示,接收由视频编码器提供的已编码视频内容,并且将已编码视频内容格式化在媒体容器中,其中在所述格式化期间基于视频内容类型添加指示样本的标称范围的元数据。
根据这里所描述的第二创新集合,媒体处理工具接收定制数据和已编码媒体内容,随后对定制数据进行解析。定制数据指示媒体内容的样本的标称范围。媒体处理工具可以基于所述解析的结果确定并且提供媒体内容类型的指示。渲染引擎随后可以在样本上实施颜色转换操作,其中用于颜色转换操作的逻辑至少部分地基于媒体内容类型而改变。
定制数据可以被用信号通知成基本媒体比特流中的一个或更多语法元素,所述基本媒体比特流还包括用于已编码媒体内容的语法元素,其中保持了对于基本媒体比特流的格式的后向兼容性和遵循。对于视频内容,所述媒体处理工具可以是视频解码器,其对基本视频比特流进行处理(其中在该处理期间解析用于定制数据的一个或更多语法元素,并且该处理还包括对已编码视频内容进行解码),并且提供重建的视频内容以及视频内容类型的指示。
或者,定制数据可以被用信号通知成媒体容器中的一个或更多字段,所述媒体容器还包括在基本媒体比特流中的已编码媒体内容,其中保持了对于媒体容器的格式的后向兼容性和遵循。举例来说,定制数据在媒体容器中被用信号通知成元数据对象的一个或更多字段。对于视频内容,所述媒体处理工具可以是容器格式源工具,其对媒体容器中的已编码视频内容进行处理(其中在所述处理期间解析指示样本的标称范围的元数据),并且提供作为基本视频比特流的已编码视频内容以及视频内容类型的指示。
对于指示媒体内容的样本的标称范围的定制数据的使用可以被实施成一种方法的一部分,适于实施所述方法的计算系统的一部分,或者存储用于使得计算系统实施所述方法的计算机可执行指令的有形计算机可读介质的一部分。
通过后面参照附图进行的详细描述,本发明的前述和其他目的、特征和优点将变得更加显而易见。
附图说明
图1是可以在其中实施一些所描述的实施例的示例计算系统的图。
图2a和2b是可以在其中实施一些所描述的实施例的示例网络环境的图。
图3是可以与之相结合地实施一些所描述的实施例的第一示例系统的图。
图4是根据一种媒体容器格式的媒体容器的图,其中一个字段包括指示视频内容的样本的标称范围的元数据。
图5是图示出了属性资源管理器(explorer)的屏幕的图表,其中媒体容器的元数据对象的一个字段指示视频内容的样本的标称范围。
图6是可以与之相结合地实施一些所描述的实施例的第二示例系统的图。
图7是基本视频比特流的一部分的图,其中进入点用户数据指示视频内容的样本的标称范围。
图8是图示出了属性资源管理器的屏幕的图表,其中基本视频比特流中的进入点用户数据指示视频内容的样本的标称范围。
图9-11是图示出了用于添加定制数据的技术的流程图,所述定制数据指示比如视频内容之类的媒体内容的样本的标称范围。
图12-15是图示出了用于解析和/或使用定制数据的技术的流程图,所述定制数据指示比如视频内容之类的媒体内容的样本的标称范围。
具体实施方式
该具体实施方式给出了使用指示媒体内容的样本的标称范围的定制数据的各种方法。具体来说,该具体实施方式给出了用于有效地扩展编解码器格式或媒体容器格式以便支持完全标称范围视频内容以及有限范围视频内容的创新。这可以帮助保留完全的或正确的颜色保真度,同时保持后向兼容性以及对于编解码器格式或媒体容器格式的遵循。
比如摄影机、动画输出、屏幕捕获模块等视频源常常提供在比如RGB 0……255的完全范围内的视频。但是对于编码和解码,在许多情况下,视频被转换到具比如16……235的有限颜色范围的YUV颜色空间。一些视频编解码器格式仅支持单一标称范围YUV 16……235作为针对输入视频和重建的视频输出的内容类型。至于重放,许多类型的显示单元接受视频以用于在完全标称范围内输出。将(来自视频源的)完全标称范围视频内容转换成有限标称范围(以用于编码和解码)(此后,该有限标称范围转换回完全标称范围(用于输出)),可能导致在颜色保真度上的不必要损失。举例来说,可能丢失细粒度的灰度(shade ofgray)。
在示例的实现方式中,视频源可以提供具有比如RGB 0……255之类的完全标称范围的视频内容。视频内容可以被转换成完全范围的YUV格式(比如YUV 0……255)以用于编码和解码的目的。或者,视频内容可以被转换到有限范围的YUV格式(比如YUV 16……235或YUV 48……208)以用于编码和解码的目的。利用指示视频内容的标称范围(比如完全范围或者各种有限范围中的一个)的定制数据来标记视频内容。取决于实现方式,可以将定制数据添加到基本视频比特流或者添加到媒体容器,但是在编解码器格式或媒体容器格式中不定义定制数据的含义。无论如何,基本视频比特流和媒体容器都与辨识不出指示标称范围的定制数据的媒体处理工具(例如视频编码器、媒体容器信宿工具、媒体容器源工具、视频解码器)后向兼容。因此,视频编解码器格式(或媒体容器格式)被有效地扩展以支持完全标称范围视频以及具有各种有限标称范围的视频。
这里所描述的创新可以被应用于各种颜色空间和颜色范围,其中包括具有不同标称范围的RGB和YUV颜色空间。YUV格式包括辉度(或Y)分量(其具有表示近似亮度数值的样本数值)以及多个色度(或者U和V)分量(其具有表示色差数值的样本数值)。色差数值的精确定义(以及YUV颜色空间与比如RGB之类的另一个颜色空间之间的转换操作)取决于实现方式。这里所使用的术语YUV指示具有辉度(或照度(luminance))分量以及一个或更多色度(或色品(chrominance))分量的任何颜色空间,其中包括Y’UV、YIQ、Y’IQ和YDbDr以及比如YCbCr和YCoCg之类的变型。对于RGB、YUV或者另一个颜色空间,可以通过应用非线性传递特性函数(其通常被称作“γ预补偿”并且常常通过使用首要符号(prime symbol)来标示,但是为了印刷方便起见,常常省略首要符号)来调节所使用的分量信号度量。或者,所述分量信号度量可以处在与光幅度具有线性关系的域内。
虽然这里所描述的操作在某些地方被描述成由编码器(例如视频编码器)、解码器(例如视频解码器)、容器格式信宿工具或容器格式源工具来实施,但是在许多情况下,所述操作可以替换地由另一种类型的媒体处理工具来实施。这里所描述的一些示例涉及视频内容。更一般来说,可以对于图像内容(例如一般的静止图像内容、医学扫描内容、多光谱成像内容)或者另一种类型的媒体内容应用这里所描述的创新。
将参照特定于SMPTE 421M(VC-1)标准的语法元素和操作来说明这里所描述的其中一些创新。还可以针对其他编解码器标准或格式来实施这里所描述的创新。类似地,将参照特定于高级系统格式(“ASF”)规范的语法元素和操作来说明这里所描述的其中一些创新。还可以针对其他媒体容器格式来实施这里所描述的创新。
更一般来说,针对这里所描述的示例的各种替换方案是可能的。举例来说,可以通过改变所描述的方法动作的排序、通过分解、重复或者省略某些方法动作等等来改动这里所描述的其中一些方法。所公开的技术的各个方面可以被组合使用或者被分开使用。不同的实施例使用其中一项或更多项所描述的创新。这里所描述的其中一些创新解决在背景部分中所提到的其中一个或更多问题。通常来说,一种给定的技术/工具并不解决所有这样的问题。
I、示例计算系统
图1图示出了可以在其中实施所描述的其中几项创新的适当的计算系统100的一般化示例。计算系统100不意图暗示关于使用或功能的范围的任何限制,这是因为所述创新可以被实施在多种多样的通用或专用计算系统中。
参照图1,计算系统100包括一个或更多处理单元110,115和存储器120,125。处理单元110,115执行计算机可执行指令。处理单元可以是通用中央处理单元(“CPU”),专用集成电路(“ASIC”)中的处理器,或者任何其他类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以便提高处理能力。举例来说,图1示出了中央处理单元110以及图形处理单元或共处理单元115。有形存储器120,125可以是可由(多个)处理单元访问的易失性存储器(例如寄存器、高速缓存器、RAM)、非易失性存储器(例如ROM、EEPROM、闪存等等)或者二者的某种组合。存储器120,125按照适合于由(多个)处理单元执行的计算机可执行指令的形式来存储软件,该软件实施用于处理指示媒体内容的样本的标称范围的定制数据的一项或更多项创新。
计算系统可以具有附加的特征。举例来说,计算系统100包括存储装置140、一个或更多输入设备150、一个或更多输出设备160以及一个或更多通信连接170。比如总线、控制器或网络之类的互连机制(未示出)使计算系统100的组件互连。通常来说,操作系统软件(未示出)为执行在计算系统100中的其他软件提供操作环境,并且协调计算系统100的组件的活动。
有形存储装置140(其也被称作计算机可读存储装置)可以是可移除或不可移除的,并且包括磁盘、磁带或磁盒、CD-ROM、DVD或者可以被用来存储信息并且可以在计算系统100内被访问的任何其他介质。存储装置140存储软件的指令,该软件实施用于处理指示媒体内容的样本的标称范围的定制数据的一项或更多项创新。
(多个)输入设备150可以是比如键盘、鼠标、笔或轨迹球之类的触摸输入设备,语音输入设备,用于接收手势输入的触摸屏,扫描设备,或者向计算系统100提供输入的另一个设备。对于视频编码,(多个)输入设备150可以是摄影机、视频卡、TV调谐器卡或者接受按照模拟或数字形式的视频输入的类似设备,或者将视频样本读取到计算系统100中的CD-ROM或CD-RW。(多个)输出设备160可以是显示器、打印机、扬声器、CD写入器或者从计算系统100提供输出的另一个设备。
(多个)通信连接170允许通过通信介质与另一个计算实体进行通信。所述通信介质在已调数据信号中传达信息,比如计算机可执行指令、音频或视频输入或输出或者其他数据。已调数据信号是其一项或更多项特性按照将信息编码在信号中的这样的方式被设定或改变的信号。作为举例而非限制,通信介质可以使用电、光学、RF或其他载体。
可以在计算机可读介质的一般情境中描述所述创新。计算机可读介质是可以在计算环境内被访问的任何可用的有形介质。作为举例而非限制,对于计算系统100,计算机可读介质包括存储器120,125、存储装置140以及任何前述内容的组合。
可以在计算机可执行指令(其也被称作机器可读指令)的一般情境中描述所述创新,比如包括在程序模块(其也被称作计算机程序产品)中的在目标真实或虚拟处理器上的计算系统中被执行的那些计算机可执行指令。通常来说,程序模块包括实施特定任务或者实施特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等等。正如在各个实施例中所期望的那样,可以在程序模块之间组合或分割程序模块的功能。用于程序模块的计算机可执行指令可以在本地或分布式计算系统内执行。
术语“系统”和“设备”在这里可以被互换使用。除非上下文明确地另有所指,否则任一个术语都不意味着关于计算系统或计算设备的类型的任何限制。一般来说,计算系统或计算设备可以是本地的或分布式的,并且可以包括具有实施这里所描述的功能的软件的专用硬件和/或通用硬件的任意组合。
所公开的方法还可以使用被配置成实施任何所公开的方法的专用计算硬件来实施。举例来说,所公开的方法可以通过专门被设计或配置成实施任何所公开的方法的集成电路(例如,比如ASIC数字信号处理单元之类的ASIC,图形处理单元,或者比如现场可编程门阵列之类的可编程逻辑设备)来实施。
为了介绍的目的,本具体实施方式使用像“确定”、“提供”和“使用”一样的术语来描述计算系统中的计算机操作。这些术语是针对由计算机实施的操作的高层级抽象,并且不应当与由人类所实施的动作相混淆。对应于这些术语的实际计算机操作根据实现方式而变化。这里所使用的术语“由...提供”意味着任何形式的递送,不管是从某一实体直接递送还是通过一个或更多中介从某一实体间接递送。
II、示例网络环境
图2a和2b示出了包括视频编码器220和视频解码器270的示例网络环境201,202。编码器220和解码器270使用适当的通信协议通过网络250连接。网络250可以包括因特网或另一个计算机网络。
在图2a中所示的网络环境201中,每一个实时通信(“RTC”)工具210包括编码器220和解码器270二者以用于双向通信。给定的编码器220可以产生遵循SMPTE 421M标准、ISO/IEC 14496-10标准(其也已知为H.264或AVC)、HEVC标准、另一种标准或者私有格式的输出,其中,对应的解码器270接受来自编码器220的已编码数据。所述双向通信可以是视频会议、视频电话呼叫或者其他两方通信情形的一部分。虽然图2a中的网络环境201包括两个实时通信工具210,但是网络环境201可以替代地包括参与多方通信的三个或更多实时通信工具210。
实时通信工具210管理由编码器220进行的编码。图3和6(在相应的图中的上半部分)示出了可以被包括在实时通信工具210中的示例编码器系统。替换地,实时通信工具210使用另一种编码器系统。实时通信工具210还管理由解码器270进行的解码。图3和6还(在相应的图中的下半部分)示出了可以被包括在实时通信工具210中的示例解码器系统。替换地,实时通信工具210使用另一种解码器系统。
在图2b中示出的网络环境202中,编码工具212包括编码器220,其对视频进行编码以用于递送到包括解码器270的多个重放工具214。对于视频监管系统、web摄像机监视系统、远程桌面会议呈现或者其中视频被编码并且从一个位置被发送到一个或更多其他位置的其他情形,可以提供单向通信。虽然图2b中的网络环境202包括两个重放工具214,但是网络环境202可以包括更多或更少的重放工具214。一般来说,重放工具214与编码工具212进行通信,以便确定供重放工具214接收的视频流。重放工具214接收所述流,将所接收到的已编码数据缓存一个适当的时间段,并且开始解码和重放。
图3和6(在相应的图的上半部分)示出了可以被包括在编码工具212中的示例编码器系统。替换地,编码工具212使用另一种编码器系统。编码工具212还可以包括用于管理与一个或更多重放工具214的连接的服务器侧控制器逻辑。图3和6还(在相应的图的下半部分)示出了可以被包括在重放工具214中的示例解码器系统。替换地,重放工具214使用另一种解码器系统。重放工具214还可以包括用于管理与编码工具212的连接的客户端侧控制器逻辑。
图2a中示出的网络环境201可以包括具有多个编码器的多个RTC工具。图2b中示出的网络环境202可以包括具有多个编码器的多个编码工具。这样的编码器可以产生多个输出比特流,其由接合(splicing)工具接合成单一比特流。或者单一编码器可以产生多个比特流,其由接合工具接合成单一比特流。
III、作为媒体容器中的元数据的定制数据
图3是可以与之相结合地实施一些所描述的实施例的示例系统300的框图。在编码器侧,系统300包括媒体源310、编码器320和容器格式信宿330。在解码器侧,系统300包括容器格式源350、解码器360和渲染引擎370。
媒体源310提供媒体内容315。对于视频,媒体源310可以是摄影机、调谐器卡、存储介质、屏幕捕获模块、动画输出或者其他数字视频源。视频源通常产生视频帧的序列。对于逐行视频,帧是逐行视频帧。对于隔行视频,在示例实施例中,隔行视频帧在编码之前被去隔行。替换地,两个互补的隔行视频场被编码成隔行视频帧或单独的场。除了指示逐行视频帧之外,术语“帧”或“画面”还可以指示单一非配对的视频场、互补的视频场对、表示给定时间的视频对象的视频对象平面或者更大图像中的感兴趣区段。对于图像内容,媒体源310可以是图形输出、扫描仪、医学成像工具或者其他数字图像源。媒体源310还报告媒体类型318,该媒体类型318被提供到容器格式信宿330。举例来说,媒体类型318可以是YUV 0……255、YUV 16……235、YUV 48……208或者某种其他视频内容类型。
在编码器320之前,系统300可以包括用于存储媒体内容315的缓存器以及在编码之前对媒体内容315实施预处理(例如滤波)的预处理器。所述预处理还可以包括颜色空间转换、颜色范围缩放和/或其他处理。
编码器320接收由媒体源310提供的媒体内容315,并且产生在基本媒体比特流中的已编码媒体内容325以作为去到容器格式信宿330的输出。编码器320可以是能够在多种编码模式当中的任一种编码模式(比如用于实时通信的低等待时间编码模式、转码模式以及用于来自文件或流的媒体重放的常用编码模式)下操作的通用编码工具,或者其可以是适合于一种这样的编码模式的专用编码工具。编码器320可以被实施成操作系统模块,被实施成应用库的一部分,被实施成独立应用的一部分,或者使用专用硬件来实施。
一般来说,编码器320包括实施比如预测、频率变换、量化和熵编解码之类的编码任务的多个编码模块。由编码器320实施的确切操作可以根据编解码器格式而变化。对于视频,输出的已编码视频内容的格式可以是Windows Media Video格式、VC-1格式、MPEG-x格式(例如MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如H.261、H.262、H.263、H.264)、HEVC格式、VPx格式或其他格式。在示例实现方式中,编码器320是针对简单、主要或高级简档的VC-1编码器。对于图像,输出的已编码图像内容的格式可以是JPEG格式、JPEG-XR格式或其他格式。在示例实现方式中,编码器320的操作不根据媒体类型318而改变。举例来说,不管视频内容是YUV 48……208、YUV 16……235还是YUV 0……255,编码器320的操作都是相同的。
基本媒体比特流中的已编码媒体内容325被聚合并且缓存在临时已编码数据区域中。作为基本媒体比特流的语法的一部分,被聚合的已编码媒体内容325可以包括与已编码媒体内容325有关的媒体元数据。
容器格式信宿330接收在基本比特流中的已编码媒体内容325。容器格式信宿330根据容器格式将已编码媒体内容325组织在媒体容器335中,所述容器格式比如是ISO/IEC14496-12、ASF、WebM或者另一种容器格式。在示例实现方式中,容器格式信宿330是ASF信宿。取决于实现方式,容器格式信宿330可以将已编码媒体内容325打包以便作为媒体流传送,在这种情况下,容器格式信宿330添加语法元素以作为媒体传送流的语法的一部分。或者,容器格式信宿330可以根据媒体容器格式对已编码媒体内容325进行组织以便作为文件存储,在这种情况下,容器格式信宿330添加语法元素以作为媒体存储文件的语法的一部分。或者更一般来说,容器格式信宿330可以实施一种或更多种媒体系统多路复用协议或传输协议,在这种情况下,容器格式信宿330添加语法元素以作为所述(多种)协议的语法的一部分。容器格式信宿330可以被实施成操作系统模块,被实施成应用库的一部分,被实施成独立应用的一部分,或者使用专用硬件来实施。
容器格式信宿330还接收媒体类型318。容器格式信宿330包括用于处理媒体类型318以及将定制数据添加在媒体容器335中的逻辑,所述定制数据指示针对媒体类型318的标称范围。举例来说,容器格式信宿330将定制数据作为字段添加在媒体容器335中的元数据对象或其他对象中。
容器格式信宿330提供媒体容器335以用于输出到信道340。举例来说,媒体容器335是ASF文件,其具有基本视频比特流中的已编码视频内容以及指示视频内容的样本的标称范围的元数据。信道340代表存储装置、通信连接(例如通过因特网)或者用于输出的另一个信道。
容器格式源350接收并且处理媒体容器335。容器格式源350根据容器格式移除被组织在媒体容器335中的已编码媒体内容325,所述容器格式比如是ISO/IEC 14496-12、ASF、WebM或者另一种容器格式。在示例实现方式中,容器格式源350是ASF源。取决于实现方式,容器格式源350可以对已被聚合从而作为媒体流传送的已编码媒体内容进行解包,在这种情况下,容器格式源350对作为媒体传送流的语法的一部分被添加的语法元素进行解析。或者,容器格式源350可以将已被聚合从而作为文件存储的已编码媒体内容分开,在这种情况下,容器格式源350对作为媒体存储文件的语法的一部分被添加的语法元素进行解析。或者更一般来说,容器格式源350可以实施一种或更多种媒体系统多路分解协议或传输协议,在这种情况下,容器格式源350对作为所述(多种)协议的语法的一部分被添加的语法元素进行解析。容器格式源350可以被实施成操作系统模块,被实施成应用库的一部分,被实施成独立应用的一部分,或者使用专用硬件来实施。
容器格式源350包括用于处理指示针对媒体内容的样本的标称范围的定制数据的逻辑。容器格式源350对于在媒体容器335中用信号通知以便指示针对媒体内容的样本的标称范围的定制数据进行解析。举例来说,容器格式源350对来自媒体容器中的元数据对象或其他对象中的某一字段的定制数据进行解析。容器格式源350确定并且输出具有针对媒体内容的样本的标称范围的媒体类型318。
从容器格式源350输出的已编码媒体内容325被存储在临时已编码数据区域中,直到接收到足够数量的这样的数据为止。作为基本媒体比特流的语法的一部分,被缓存的已编码媒体内容325可以包括与已编码媒体内容325有关的媒体元数据。
解码器360接收由容器格式源350提供的已编码媒体内容325,并且产生重建的媒体内容365。解码器360可以是能够在多种解码模式当中的任一种解码模式(比如用于实时通信的低等待时间解码模式,用于来自文件或流的媒体重放的常用解码模式)下操作的通用解码工具,或者其可以是适合于一种这样的解码模式的专用解码工具。解码器360可以被实施成操作系统模块,被实施成应用库的一部分,被实施成独立应用的一部分,或者使用专用硬件来实施。
一般来说,解码器360包括实施比如熵解码、逆量化、逆频率变换和预测之类的解码任务的多个解码模块。由解码器360实施的确切操作可以根据编解码器格式而变化。对于视频,已编码视频内容的格式可以是Windows Media Video格式、VC-1格式、MPEG-x格式(例如MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如H.261、H.262、H.263、H.264)、HEVC格式、VPx格式或其他格式。在示例实现方式中,解码器360是针对简单、主要或高级简档的VC-1解码器。对于图像,已编码图像内容的格式可以是JPEG格式、JPEG-XR格式或其他格式。解码器360把由容器格式源350提供的媒体类型318递送到渲染引擎370。在示例实现方式中,解码器360的操作不根据媒体类型318而改变。举例来说,不管视频内容是YUV 48……208、YUV16……235还是YUV 0……255,解码器360的操作都是相同的。替换地,媒体类型318被从容器格式源350传达到渲染引擎370而不涉及解码器360。
已解码帧临时存储器存储区域可以包括用于重建的媒体内容365的多个帧缓存器存储区域。举例来说,已解码帧临时存储器存储区域缓存按照YUV 48……208、YUV 0……255或YUV 16……235格式的重建的视频帧。
渲染引擎370对重建的媒体内容365进行处理以用于输出。渲染引擎370包括用于处理媒体类型318的逻辑。在示例实现方式中,渲染引擎370包括颜色转换器和显示模块。颜色转换器可以把重建的媒体内容365从在编码/解码中使用的格式(比如YUV 0……255、YUV48……208或YUV 16……235)转换成用于显示的格式(比如RGB 0……255)。取决于媒体类型(318)和输出格式,颜色转换器可以使用不同的逻辑来解决不同的情况,例如(1)YUV0……255→RGB 0……255;(2)YUV 16……235→RGB 0……255;(3)YUV 0……255→RGB16……235;以及(4)YUV 16……235→RGB 16……235。所述逻辑对于这些情况可以是类似的,例如使用具有不同系数和/或不同限幅操作的3x3矩阵变换。颜色转换器可以包括用于其他的和/或附加的情况的逻辑。颜色转换器还可以应对针对传递函数、颜色特性等等的处理。
图4示出了媒体容器400,其中一个字段包括指示视频内容的样本的标称范围的定制数据。在高层级下,容器400包括报头对象(header object)410、数据对象(data object)480和索引对象(index object)490。报头对象410包括文件属性对象(file propertiesobject)420、两个流属性对象(stream properties object)430,432以及报头扩展对象(header extension object)440。报头扩展对象440包括两个扩展流属性对象(extendedstream properties object)450,452以及具有多项属性的元数据对象(metadata)460。所述性质之一(视频标称范围性质)指示视频标称范围是“完全的(full)”(例如YUV 0……255)还是“有限的(limited)”(例如YUV 16……235、YUV 48……208)。这可以是布尔数值或其他数据类型。替换地,视频标称范围性质指示其他的和/或附加的标称范围(例如多个可能的有限标称范围中的一个)。
图4中示出的媒体容器400可以包括其他的和/或附加的对象。指示视频内容的样本的标称范围的元数据可以被放置在媒体容器400中的其他位置处。图4总体上是基于ASF格式。替换地,根据另一种媒体容器格式来组织媒体容器400。
图5示出了根据ASF格式组织的媒体容器的元数据对象中的指示视频内容的样本的标称范围的字段的另一个视图500。实际上,ASF格式已被有效地扩展(通过使用定制数据)以支持用于视频内容的样本的完全标称范围。
在图5中详解了元数据对象的性质。所述性质包括针对两个流的属性“DeviceConformanceTemplate(设备遵循模板)”和“IsVBR”的数值,以及针对第二个流的属性“AspectRatioX(宽高比X)”和“AspectRatioY(宽高比Y)”的数值。性质“VideoNominalRange(视频标称范围)”指示针对第二个流的视频内容的样本的标称范围。VideoNominalRange性质具有类型DWORD并且指示视频标称范围是“完全的”(例如YUV0……255)还是“有限的”(例如YUV 16……235、YUV 48……208),但是可以替代地具有另一种数据类型。替换地,VideoNominalRange性质指示其他的和/或附加的标称范围(例如多个可能的有限标称范围中的一个)。
IV、作为基本媒体比特流中的用户数据的定制数据
图6是可以与之相结合地实施一些所描述的实施例的示例系统600的方图。在编码器侧,系统600包括媒体源610、编码器620和容器格式信宿630。在解码器侧,系统600包括容器格式源650、解码器660和渲染引擎670。
媒体源610提供媒体内容615。在这样做时,媒体源610总体上像图3的系统300中的媒体源310那样操作。针对图3的媒体源310所描述的实现方式选项同样应用于图6的媒体源610。媒体源610还报告媒体类型618,该媒体类型618被提供到编码器620。举例来说,媒体类型618可以是YUV 0……255、YUV 16……235、YUV 48……208或者某种其他视频内容类型。
在编码器620之前,系统600可以包括用于存储媒体内容615的缓存器以及在编码之前对媒体内容615实施预处理(例如滤波)的预处理器。所述预处理还可以包括颜色空间转换、颜色范围缩放和/或其他处理。
编码器620接收由媒体源610提供的媒体内容615,并且产生在基本视频比特流中的已编码媒体内容625以作为去到容器格式信宿630的输出。出于编码的目的,编码器620总体上像图3的编码器320那样操作。针对图3的编码器320所描述的实现方式选项同样应用于图6的编码器620,其不同之处在于,在示例实现方式中,编码器620是仅用于高级简档的VC-1编码器。与前面一样,在示例实现方式中,编码器620的核心编码操作不根据媒体类型618而改变。举例来说,不管视频内容是YUV 48……208、YUV 16……235还是YUV 0……255,编码器620的核心编码操作都是相同的。但是不同于图3的编码器320,编码器620接收并且处理媒体类型618。编码器620包括用于处理媒体类型618并且在基本媒体比特流中添加指示与媒体类型618相一致的标称范围的定制数据的逻辑。举例来说,编码器620将定制数据添加为基本视频比特流中的每个进入点的进入点用户数据。
基本媒体比特流(包括指示样本的标称范围的用户数据)中的已编码媒体内容(625)被缓存在临时已编码数据区域中。作为基本媒体比特流的语法的一部分,被聚合的已编码媒体内容625还可以包括与已编码媒体内容625有关的媒体元数据。
容器格式信宿630接收基本比特流中的已编码媒体内容625。容器格式信宿630根据容器格式将已编码媒体内容625组织在媒体容器635中,所述容器格式比如是ISO/IEC14496-12、ASF、WebM或者另一种容器格式。出于格式化的目的,容器格式信宿630总体上像图3的容器格式信宿330那样操作。针对图3的容器格式信宿330所描述的实现方式选项同样应用于图6的容器格式信宿630。但是不同于图3的容器格式信宿330,图6的容器格式信宿630不包括用于处理媒体类型并且在媒体容器635中添加指示标称范围的定制数据的逻辑。
容器格式信宿630提供媒体容器635以用于输出到信道640。举例来说,媒体容器635是ASF文件,其具有基本视频比特流中的已编码视频内容和指示视频内容的样本的标称范围的用户数据。信道640代表存储装置、通信连接(例如通过因特网)或者用于输出的另一个信道。
容器格式源650接收并且处理媒体容器635。容器格式源650根据容器格式移除被组织在媒体容器635中的已编码媒体内容625,所述容器格式比如是ISO/IEC 14496-12、ASF、WebM或者另一种容器格式。出于格式化的目的,容器格式源650总体上像图3的容器格式源350那样操作。针对图3的容器格式源350所描述的实现方式选项同样应用于图6的容器格式源650。但是不同于图3的容器格式源350,系统600中的容器格式源650不包括用于处理媒体容器中的指示媒体内容的样本的标称范围的定制数据的逻辑。
从容器格式源650输出的基本媒体比特流(包括指示样本的标称范围的用户数据)中的已编码媒体内容625被存储在临时已编码数据区域中,直到接收到足够数量的这样的数据为止。作为基本媒体比特流的语法的一部分,被缓存的已编码媒体内容625还可以包括与已编码媒体内容625有关的媒体元数据。
解码器660接收由容器格式源650提供的已编码媒体内容625,并且产生重建的媒体内容665。出于解码的目的,解码器660总体上像图3的解码器360那样操作。针对图3的解码器360所描述的实现方式选项同样应用于图6的解码器660,其不同之处在于,在示例实现方式中,解码器660是仅用于高级简档的VC-1解码器。与前面一样,在示例实现方式中,解码器660的核心解码操作不根据媒体类型618而改变。举例来说,不管视频内容是YUV 48……208、YUV 16……235还是YUV 0……255,解码器660的核心解码操作都是相同的。但是不同于图3的解码器(360),解码器660处理指示媒体内容的样本的标称范围的定制数据。解码器660包括用于解析基本媒体比特流中的指示媒体内容的样本的标称范围的用户数据并且确定媒体类型618的逻辑。举例来说,解码器660解析用像基本视频比特流中的每个进入点的进入点用户数据一样的信号通知的这样的定制数据。解码器660将媒体类型618递送到渲染引擎670。
已解码帧临时存储器存储区域可以包括用于重建的媒体内容665的多个帧缓存器存储区域。举例来说,已解码帧临时存储器存储区域缓存按照YUV 0……255、YUV 48……208或YUV 16……235格式的重建的视频帧。
渲染引擎670对重建的媒体内容665进行处理以用于输出。渲染引擎670包括用于处理媒体类型618的逻辑。渲染引擎670总体上像图3的渲染引擎370那样操作。针对图3的渲染引擎370所描述的实现方式选项同样应用于图6的渲染引擎670。
图7示出了基本视频比特流的一部分700,其中进入点用户数据指示视频内容的样本的标称范围。比特流的该部分700包括序列开始代码710、序列报头720、进入点开始代码730、进入点报头740、用户数据开始代码750、用户数据比特流数据单元(“BDU”)760和帧开始代码770,其后是帧的附加数据单元、其他进入点等等。一个进入点是一组帧。用户数据开始代码750将用户数据标记为进入点用户数据,其与用户数据在比特流中的位置相一致。用户数据BDU 760包括用户数据标识符761、用户数据762和冲洗(flushing)字节763。用户数据762可以是全局唯一标识符(“GUID”),其指示视频标称范围是“完全的”(例如YUV 0……255),但是替代地可以具有另一种数据类型。替换地,用户数据762指示其他的和/或附加的标称范围。
图7中示出的比特流的该部分700可以包括其他的和/或附加的数据单元。指示视频内容的样本的标称范围的用户数据可以被放置在比特流中的其他位置处,例如作为序列层级的用户数据或帧层级的用户数据。图7总体上是基于VC-1标准的高级简档的。替换地,根据另一种编解码器格式来组织比特流。
图8示出了指示根据VC-1标准的高级简档组织的基本视频比特流中的视频内容的样本的标称范围的进入点用户数据的另一个视图800。实际上,VC-1格式已被有效地扩展(通过使用定制数据)以支持用于视频内容的样本的完全标称范围。ASF是用于图8中描绘的VC-1比特流的容器格式。
在图8中详解了流属性对象的性质。“extra data(额外数据)”字段包括序列报头的数值(在序列开始代码0x00 00 01 0F之后),进入点报头的数值(在进入点开始代码0x0000 01 0E之后),以及进入点用户数据的数值(在进入点用户数据开始代码0x00 00 01 1E之后)。具体来说,进入点用户数据包括16字节的GUID 0xC8 02 31 D1 17 45 40 81 B8 6A42 1D 51 24 BC C0,其把该进入点的各帧标记成具有完全标称范围的样本。如果没有这样的进入点用户数据,作为默认选项,假设进入点的各帧具有预定的有限标称范围的样本。替换地,进入点用户数据被用来指示其他的和/或附加的标称范围。由于在进入点层级用信号通知指示标称范围的用户数据,因此标称范围可以从进入点到进入点而改变。替换地,在序列层级、帧层级或者比特流语法的某一其他层级用信号通知指示标称范围的用户数据。
在图8中图示出的用于VC-1比特流的ASF容器还可以包括指示标称范围的元数据以作为ASF容器中的元数据的一个字段。但是当在VC-1比特流中用信号通知指示视频标称范围的进入点用户数据时,ASF容器中的这样的元数据是冗余的。但是根据VC-1标准的简单和主要简档,已编码视频内容不被组织成BDU,也不通过与基本视频比特流的一部分相同的方式用信号来通知用户数据。相反,正如前面参照图3-5所描述的那样,可以将指示视频标称范围的定制数据作为元数据放置在媒体容器(例如ASF容器)中。
V、用于添加指示标称范围的定制数据的技术
图9示出了用于添加指示媒体内容的样本的标称范围的定制数据的一般化技术900。媒体编码器或容器格式信宿工具(比如前面参照图3或6描述的媒体编码器或容器格式信宿工具或者其他媒体处理工具)实施技术900。
媒体处理工具将定制数据添加930到已编码媒体内容。定制数据指示样本的标称范围。举例来说,定制数据指示样本的标称范围是以下各项的其中之一:(a)针对比特深度n的样本的由从0……2n-1的数值表征的完全范围,以及(b)由所述完全范围的一个子范围中的数值表征的有限范围。替换地,定制数据可以明确地把标称范围指示为所述范围的端点。或者,定制数据可以指示针对媒体内容的三个、四个或更多已定义的标称范围当中的选择。
指示样本的标称范围的定制数据可以作为一个或更多语法元素被添加在基本媒体比特流(其还包括用于已编码媒体内容的语法元素)中,从而使得保持了对于基本媒体比特流的格式的后向兼容性和遵循。举例来说,用于定制数据的所述一个或更多语法元素是进入点用户数据或者是在基本媒体比特流中的比特流语法的另一个层级下用信号通知的用户数据。在一些实现方式中,用户数据包括指示样本的标称范围的GUID数值。替换地,通过另一种方式对用户数据进行参数化。
或者,指示样本的标称范围的定制数据可以作为一个或更多字段被添加在还包括已编码媒体内容的媒体容器中,从而使得保持了对于媒体容器的格式的后向兼容性和遵循。举例来说,定制数据作为元数据对象或其他对象的一个或更多字段被添加在媒体容器中。
媒体处理工具输出940定制数据和已编码媒体内容。举例来说,定制数据和已编码媒体内容可以作为基本媒体比特流的一部分或者作为媒体容器的一部分被输出。
图10示出了用于添加指示视频内容的样本的标称范围的用户数据的示例技术1000。媒体编码器(比如前面参照图6描述的媒体编码器或者其他媒体编码器)实施技术1000。
编码器接收1010由视频源提供的视频内容类型的指示。举例来说,视频内容类型是YUV 0……255、YUV 48……208或YUV 16……235。编码器还接收1020由视频源提供的输入视频内容。编码器产生1030基本视频比特流。在这样做时,基于视频内容类型,编码器添加指示样本的标称范围的用户数据。编码器输出1040用户数据和已编码媒体内容以作为基本媒体比特流的一部分。
图11示出了用于添加指示视频内容的样本的标称范围的元数据的示例技术1100。容器格式信宿工具(比如前面参照图3描述的容器格式信宿工具或者其他容器格式信宿工具)实施技术1100。
容器格式信宿工具接收1110由视频源提供的视频内容类型的指示。举例来说,视频内容类型是YUV 0……255、YUV 48……208或YUV 16……235。容器格式信宿工具还接收1120由视频编码器提供的已编码视频内容。容器格式信宿工具在媒体容器中对已编码视频内容进行格式化1130。在这样做时,基于视频内容类型,容器格式信宿工具添加指示样本的标称范围的元数据。容器格式信宿工具随后输出1140元数据和已编码媒体内容以作为媒体容器的一部分。
VI、用于解析和使用指示标称范围的定制数据的技术
图12示出了用于解析指示媒体内容的样本的标称范围的定制数据的一般化技术1200。媒体解码器或容器格式源工具(比如前面参照图3或6描述的媒体解码器或容器格式源工具或者其他媒体处理工具)实施技术1200。
媒体处理工具接收1210定制数据和已编码媒体内容。定制数据指示媒体内容的样本的标称范围。举例来说,定制数据指示样本的标称范围是以下各项的其中之一:(a)针对比特深度n的样本的由从0……2n-1的数值表征的完全范围,以及(b)由所述完全范围的一个子范围中的数值表征的有限范围。替换地,定制数据可以明确地把标称范围指示为所述范围的端点。或者,定制数据可以指示用于媒体内容的三个、四个或更多已定义的标称范围当中的选择。媒体处理工具解析1220定制数据。
可以用像基本媒体比特流(其还包括用于已编码媒体内容的语法元素)中的一个或更多语法元素一样的信号通知指示样本的标称范围的定制数据,其中保持了对于基本媒体比特流的格式的后向兼容性和遵循。举例来说,用于定制数据的所述一个或更多语法元素是进入点用户数据或者是在基本媒体比特流中的比特流语法的另一个层级下用信号通知的用户数据。在一些实现方式中,用户数据包括指示样本的标称范围的GUID数值。替换地,通过另一种方式对用户数据进行参数化。
或者,可以用像媒体容器(其还包括已编码媒体内容)中的一个或更多字段一样的信号通知指示样本的标称范围的定制数据,其中保持了对于媒体容器的格式的后向兼容性和遵循。举例来说,定制数据作为元数据对象或其他对象的一个或更多字段被添加在媒体容器中。
图13示出了用于解析和使用指示媒体内容的样本的标称范围的定制数据的示例技术1300。媒体解码器或容器格式源工具(比如前面参照图3或6描述的媒体解码器或容器格式源工具或者其他媒体处理工具)实施技术1300。
媒体处理工具接收1310定制数据和已编码媒体内容。定制数据指示媒体内容的样本的标称范围。媒体处理工具基于对于定制数据的解析结果来确定1320媒体内容类型的指示。媒体处理工具提供1330媒体内容类型的指示。渲染引擎随后可以在样本上实施1340颜色转换操作,其中用于颜色转换操作的逻辑至少部分地基于媒体内容类型而改变。
图14示出了用于解析指示视频内容的样本的标称范围的用户数据的示例技术1400。媒体解码器(比如前面参照图6描述的媒体解码器或者其他媒体解码器)实施技术1400。
解码器接收1410包括用户数据和已编码视频内容的基本视频比特流。用户数据指示视频内容的样本的标称范围。解码器对基本视频比特流进行处理1420,从而解析用户数据并且对已编码视频内容进行解码。解码器提供1430重建的视频内容以及视频内容类型的指示。举例来说,解码器使得重建的视频内容和视频内容类型的指示可用于渲染引擎。
图15示出了用于解析指示视频内容的样本的标称范围的元数据的示例技术1500。容器格式源工具(比如前面参照图3描述的容器格式源工具或者其他容器格式源工具)实施技术1500。
容器格式源工具接收1510包括元数据和已编码视频内容的媒体容器。元数据指示视频内容的样本的标称范围。容器格式源工具对媒体容器进行处理1520,从而解析元数据。容器格式源工具提供1530作为基本视频比特流的已编码视频内容以及视频内容类型的指示。举例来说,容器格式源工具使得已编码视频内容可用于视频解码器,并且使得视频内容类型的指示可用于渲染引擎。
鉴于可以为之应用所公开的本发明的原理的许多可能的实施例,应当认识到,所说明的实施例仅仅是本发明的优选示例,而不应当被当作限制本发明的范围。相反,本发明的范围由所附权利要求书限定。因此,我们把进入到这些权利要求的范围和精神内的所有内容都作为我们的发明要求保护。

Claims (10)

1.一种在实施媒体处理工具的计算系统中的方法,其包括:
利用实施媒体处理工具的计算系统将范围数据添加到已编码媒体内容中,其中范围数据指示作为针对要编码的输入以及针对要解码的重建的输出的内容类型的已编码媒体内容的样本的标称范围,已编码媒体内容的样本具有样本深度,该样本深度指示已编码媒体内容的样本的数值的可用范围,其中,标称范围是针对内容类型的在已编码媒体内容的样本的样本深度的可用范围内的数值范围,并且其中范围数据指示针对标称范围的多个可能选项中的一个,所述针对标称范围的多个可能选项包括:
针对比特深度n的样本的由从0……2n-1的数值表征的完全范围;以及
由所述完全范围的一个子范围中的数值表征的有限范围;以及
从实施媒体处理工具的计算系统输出范围数据和已编码媒体内容。
2.如权利要求1的方法,其中,将范围数据作为一个或更多语法元素添加在基本媒体比特流中,从而使得保持了对于基本媒体比特流的格式的后向兼容性和遵循,其中所述基本媒体比特流还包括用于已编码媒体内容的语法元素。
3.如权利要求2的方法,其中,所述媒体内容是视频内容,其中,所述内容类型是视频内容类型,其中所述基本媒体比特流是基本视频比特流,其中所述媒体处理工具是视频编码器,并且其中所述方法还包括:
在实施媒体处理工具的计算系统处接收由视频源提供的视频内容类型的指示;
在实施媒体处理工具的计算系统处接收由视频源提供的针对要编码的输入的输入视频内容;以及
利用实施媒体处理工具的计算系统产生基本视频比特流,其中在所述产生期间基于视频内容类型添加用于范围数据的所述一个或更多语法元素。
4.如权利要求1的方法,其中,将范围数据作为一个或更多字段添加在媒体容器中,从而使得保持了对于媒体容器的格式的后向兼容性和遵循,其中,所述媒体容器还包括在基本媒体比特流中的已编码媒体内容。
5.如权利要求4的方法,其中,所述媒体内容是视频内容,其中所述内容类型是视频内容类型,其中所述媒体处理工具是容器格式信宿工具,并且其中所述方法还包括:
在实施媒体处理工具的计算系统处接收由视频源提供的视频内容类型的指示;在实施媒体处理工具的计算系统处接收由视频编码器提供的已编码视频内容;以及利用实施媒体处理工具的计算系统将已编码视频内容格式化在媒体容器中,其中在所述格式化期间基于视频内容类型添加用于范围数据的所述一个或更多字段。
6.一种包括存储器和一个或多个处理单元的计算系统,其中所述计算系统实施媒体处理工具,所述媒体处理工具被配置为实施媒体处理操作,所述媒体处理操作包括:
接收范围数据和已编码媒体内容,其中范围数据指示用于编码和解码的目的的根据样本的格式的已编码媒体内容的样本的标称范围,已编码媒体内容的样本具有样本深度,该样本深度指示已编码媒体类型的样本的数值的可用范围,其中,标称范围是针对样本的格式的在已编码媒体内容的样本的样本深度的可用范围内的数值范围,并且其中范围数据指示针对标称范围的多个可能选项中的一个,所述针对标称范围的多个可能选项包括:
针对比特深度n的样本的由从0……2n-1的数值表征的完全范围,以及
由所述完全范围的一个子范围中的数值表征的有限范围;以及
解析范围数据。
7.如权利要求6的计算系统,其中,所述范围数据被用信号通知成在基本媒体比特流中的一个或更多语法元素,所述基本媒体比特流还包括用于已编码媒体内容的语法元素,并且其中保持了对于基本媒体比特流的格式的后向兼容性和遵循。
8.如权利要求7的计算系统,其中,所述媒体内容是视频内容,其中所述基本媒体比特流是基本视频比特流,其中所述媒体处理工具是视频解码器,并且其中所述媒体处理操作还包括:
对基本视频比特流进行处理,其中在所述处理期间解析用于范围数据的所述一个或更多语法元素,并且其中所述处理还包括对已编码视频内容进行解码;以及
提供重建的视频内容以及视频内容类型的指示。
9.如权利要求6的计算系统,其中,所述范围数据被用信号通知成在媒体容器中的一个或更多字段,所述媒体容器还包括在基本媒体比特流中的已编码媒体内容,并且其中保持了对于媒体容器的格式的后向兼容性和遵循。
10.如权利要求9的计算系统,其中,所述媒体内容是视频内容,其中所述媒体处理工具是容器格式源工具,并且其中所述媒体处理操作还包括:
对媒体容器中的已编码视频内容进行处理,其中在所述处理期间解析用于范围数据的一个或更多字段;以及
提供作为基本视频比特流的已编码视频内容以及视频内容类型的指示。
CN201380075262.8A 2013-03-29 2013-09-06 指示媒体内容的样本的标称范围的定制数据 Active CN105144726B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/853919 2013-03-29
US13/853,919 US9521438B2 (en) 2013-03-29 2013-03-29 Custom data indicating nominal range of samples of media content
PCT/US2013/058351 WO2014158211A1 (en) 2013-03-29 2013-09-06 Custom data indicating nominal range of samples of media content

Publications (2)

Publication Number Publication Date
CN105144726A CN105144726A (zh) 2015-12-09
CN105144726B true CN105144726B (zh) 2018-10-12

Family

ID=49226539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380075262.8A Active CN105144726B (zh) 2013-03-29 2013-09-06 指示媒体内容的样本的标称范围的定制数据

Country Status (4)

Country Link
US (6) US9521438B2 (zh)
EP (2) EP3562165B1 (zh)
CN (1) CN105144726B (zh)
WO (1) WO2014158211A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111901599B (zh) * 2014-06-27 2024-05-14 松下知识产权经营株式会社 再现装置
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
CN105554587B (zh) * 2015-12-10 2018-08-31 青岛海信电器股份有限公司 一种显示控制方法、装置及显示装置
US10483266B2 (en) * 2017-04-20 2019-11-19 Taiwan Semiconductor Manufacturing Company, Ltd. Flexible merge scheme for source/drain epitaxy regions
US11240284B1 (en) * 2020-05-28 2022-02-01 Facebook, Inc. Systems and methods for application- and content-aware real-time video encoding
US20230085391A1 (en) * 2021-09-13 2023-03-16 Apple Inc. Systems and Methods for Luma or Chroma Statistics Collection

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101772961A (zh) * 2007-08-02 2010-07-07 索尼公司 图像处理装置
WO2012166382A2 (en) * 2011-05-27 2012-12-06 Dolby Laboratories Licensing Corporation Scalable systems for controlling color management comprising varying levels of metadata

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1993000771A1 (en) * 1991-06-27 1993-01-07 Nippon Hoso Kyokai Sub-sampling transmission system for improving transmitted picture quality in time-varying picture region of wide-band color picture signal
US6774908B2 (en) * 2000-10-03 2004-08-10 Creative Frontier Inc. System and method for tracking an object in a video and linking information thereto
JP3684158B2 (ja) 2001-01-29 2005-08-17 キヤノン株式会社 色情報処理方法およびプログラム
US20030098869A1 (en) * 2001-11-09 2003-05-29 Arnold Glenn Christopher Real time interactive video system
US7451229B2 (en) 2002-06-24 2008-11-11 Microsoft Corporation System and method for embedding a streaming media format header within a session description message
US7720096B2 (en) * 2005-10-13 2010-05-18 Microsoft Corporation RTP payload format for VC-1
US7831103B2 (en) 2006-03-17 2010-11-09 Tata Consultancy Services Limited Digital images
WO2008049446A1 (en) * 2006-10-25 2008-05-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Quality scalable coding
KR101365597B1 (ko) 2007-10-24 2014-02-20 삼성전자주식회사 영상 부호화장치 및 방법과 그 영상 복호화장치 및 방법
KR101599875B1 (ko) 2008-04-17 2016-03-14 삼성전자주식회사 멀티미디어의 컨텐트 특성에 기반한 멀티미디어 부호화 방법 및 장치, 멀티미디어의 컨텐트 특성에 기반한 멀티미디어 복호화 방법 및 장치
US9456111B2 (en) * 2010-06-15 2016-09-27 Mediatek Inc. System and method for content adaptive clipping
US9237363B2 (en) 2011-02-12 2016-01-12 Openwave Mobility, Inc. Dynamic injection of metadata into flash video

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101772961A (zh) * 2007-08-02 2010-07-07 索尼公司 图像处理装置
WO2012166382A2 (en) * 2011-05-27 2012-12-06 Dolby Laboratories Licensing Corporation Scalable systems for controlling color management comprising varying levels of metadata

Also Published As

Publication number Publication date
EP3562165B1 (en) 2021-06-16
EP3562165A1 (en) 2019-10-30
US10715847B2 (en) 2020-07-14
US20210377578A1 (en) 2021-12-02
US10075748B2 (en) 2018-09-11
US20240098320A1 (en) 2024-03-21
EP2979457B1 (en) 2018-12-26
US11838568B2 (en) 2023-12-05
US20170013286A1 (en) 2017-01-12
US20200304848A1 (en) 2020-09-24
EP2979457A1 (en) 2016-02-03
US9521438B2 (en) 2016-12-13
US20140294094A1 (en) 2014-10-02
WO2014158211A1 (en) 2014-10-02
CN105144726A (zh) 2015-12-09
US11115691B2 (en) 2021-09-07
US20190045237A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
CN105144726B (zh) 指示媒体内容的样本的标称范围的定制数据
TWI725299B (zh) 圖片檔處理方法、設備及儲存介質
TWI677232B (zh) 一種圖片檔處理方法、裝置及儲存介質
Dufaux et al. The JPEG XR image coding standard [Standards in a Nutshell]
JP6472429B2 (ja) Luma値を決定するための方法、装置、およびシステム
CN108965890B (zh) 用于标识前导画面的设备和方法
JP7053722B2 (ja) ビットストリーム内で、ldrピクチャのピクチャ/ビデオ・フォーマットと、このldrピクチャおよびイルミネーション・ピクチャから取得された復号済みのhdrピクチャのピクチャ/ビデオ・フォーマットとをシグナリングする方法および装置
JP6245888B2 (ja) エンコーダおよび符号化方法
TWI707309B (zh) 圖片文件處理方法、系統及儲存介質
CN103596009B (zh) 解码器及解码方法
CN109922344B (zh) 用于对高动态范围图像进行编码、解码和表示的技术
CN102074257A (zh) 软硬件结合解码的通用多媒体播放设备及其播放方法
EP2147554A1 (en) Bitstream decoding device and method
US20130114684A1 (en) Electronic devices for selective run-level coding and decoding
CN110769241B (zh) 视频帧处理方法、装置、用户端及存储介质
CN108711191A (zh) 一种视频处理方法和vr设备
CN114079823A (zh) 基于Flutter的视频渲染方法、装置、设备及介质
KR20180070593A (ko) 정보 데이터의 공통 세트에 의해 구동되는 후보 프로세스들의 세트로부터 비디오 데이터에 적용될 프로세스를 선택하기 위한 방법 및 디바이스
CN111131857A (zh) 图像压缩方法、装置及电子设备
CN103947202A (zh) 感知媒体编码
CN202111812U (zh) 软硬件结合解码的通用多媒体播放设备
KR20220027433A (ko) 딥러닝 네트워크 모델을 포함하는 멀티미디어 비트스트림 생성방법 및 그 장치

Legal Events

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