CN103119934A - 一种流媒体传输装置 - Google Patents

一种流媒体传输装置 Download PDF

Info

Publication number
CN103119934A
CN103119934A CN2010800691673A CN201080069167A CN103119934A CN 103119934 A CN103119934 A CN 103119934A CN 2010800691673 A CN2010800691673 A CN 2010800691673A CN 201080069167 A CN201080069167 A CN 201080069167A CN 103119934 A CN103119934 A CN 103119934A
Authority
CN
China
Prior art keywords
file
signal
media
data
reference pointer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010800691673A
Other languages
English (en)
Other versions
CN103119934B (zh
Inventor
M·M·汉努克塞拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Oyj filed Critical Nokia Oyj
Publication of CN103119934A publication Critical patent/CN103119934A/zh
Application granted granted Critical
Publication of CN103119934B publication Critical patent/CN103119934B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing 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 decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • H04N21/6336Control signals issued by server directed to the network components or client directed to client directed to decoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8455Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

一种装置,包括至少一个处理器和至少一个包括计算机程序代码的存储器,该至少一个存储器和计算机程序代码被配置为与至少一个处理器一起使装置至少执行:确定至少第一信号和相关联的第二信号;在第一文件中存储第一信号;在第一文件中并且与第一信号相关联地生成位置引用指针;以及在由引用指针所指示的位置处存储与第一信号相关联的第二信号。

Description

一种流媒体传输装置
技术领域
本发明涉及流媒体传输装置及方法,而且特别但不专用于渐进流媒体传输(progressive media streaming)装置及方法。
背景技术
流媒体是在由流传输提供商或服务器提供的同时不断由终端用户或客户端接收并呈现给终端用户或客户端的多媒体。例如能够在远程通信网络上,例如采用远程通信系统来实现流媒体系统以流传输Internet电视。
流媒体传输的一种发展是渐进下载。渐进下载是用于描述当从计算机启动时通常利用HTTP协议从服务器向客户端的数字媒体文件传输的术语。使用渐进下载的客户端或消费者能够在下载完成之前开始媒体回放。流传输媒体和渐进下载之间的关键区别在于数字媒体数据如何由正在访问数字媒体的客户端或者终端用户设备接收和存储。
能够渐进下载回放的客户端媒体播放器的依赖位于文件标题中完整的元数据以及当从web服务器下载时数字媒体文件的本地缓冲。在当确定量的数据对于本地回放设备来说可用的点处,媒体播放器可以开始播放媒体。例如,该确定量已缓冲数据可以基于接收比特率和将媒体编码成文件的比特率来估计。此外,该确定量缓冲可在假设满足或达到确定的接收比特率的编码器设定中由内容提供商嵌入文件内。
终端用户体验与流传输媒体相似,然而数字文件通常被下载至终端用户设备的物理驱动器上。例如,如果将数字媒体嵌入网页或设定在用于回放的媒体播放器参数中的存储目录内,则数字文件通常存储在相关的web浏览器的临时文件夹中。如果回放速率超过文件下载的速率,则数字媒体文件可能卡顿(stutter)或停止回放。然后可在进一步下载之后再次开始播放文件。
元数据以及拟渐进下载的文件中的媒体数据以将不同流的媒体数据在文件中交织并且将流近似同步这样的方式交织。而且,经常将元数据和媒体数据交织,使得用于接收位于文件起始处的元数据所需的初始缓冲延迟减小。可在3GPP文件格式的渐进下载配置文件中找到可如何将ISO基本媒体文件格式及其衍生格式限制为可渐进下载的例子。
然而,存在与传统渐进下载相关的几个问题。
首先,由于文件的比特率通常远大于可用网络吞吐量,因此传统渐进下载客户端不能有效播放具有用于所有版本的单个元数据文件和在同一文件中的所有媒体数据的文件。如果媒体数据相比于元数据位于不同文件中,那么接收所有版本元数据的开销延迟回放的开始并可导致在回放期间的中断和额外缓冲。此外,接收到的元数据文件包含对未被接收的媒体内容的该版本的引用,因此元数据文件不完全兼容。
第二,元数据和覆盖确定的演示回放范围的每个片段(fragment)和内容的每个版本(比特率)的相应媒体数据位于它们各自的文件中。将内容如此分块为大组小文件用于静态HTTP流传输的可能实现。例如,将持续时间为20分钟并具有10个可能演示(5个视频比特率和2种音频语言)的内容文件分块为1秒钟的小内容片(piece),将产生12000个小文件。这构成web服务器的负担,其不得不处理如此大量的小文件。
第三,当一个文件仅包含一个片段时,传统渐进下载客户端不能播放文件。
第四,与通过CGI执行命令的动态流传输服务器可操作地连接的常规web服务器一般意味着新创建进程的启用。尤其是当程序还需要注释或编译时,开启进程可产生比产生输出的实际工作占用更多的时间和存储器。如果常常调用命令,则产生的工作量会迅速压垮web服务器。
可通过使用例如以C/C++编写的那些已编译的CGI程序减少涉及解释的开销,而不是使用Perl或其他脚本语言。可通过例如快速CGI的解决方案、或者通过在使用特殊扩展模块的web服务器内部整体运行应用代码,减少涉及进程创建的开销。普通web服务器改善其自身的扩展机制,该机制允许在web服务器自身内部运行的第三方软件,例如Apache模块、网景(Netscape)NSAPI插件、IIS ISAPI插件。然而,容易编译的CGI程序的使用或对web服务器的专用扩展使得流传输服务器解决方案是平台专用的,并且由此更难与其它web服务器和/或操作系统平台对接。
第五,当前动态HTTP流传输服务器对于平台是专用的,因而更难与其它操作系统平台对接。不得不对HTTP服务器协议栈实施并且不能使用充分测试的、可升级和稳健的(robust)web服务器。
此外,如果服务器是状态维持的,那么其计算复杂性要高于无状态服务器。
第六,关于目前使用的传输文件格式,传送的文件与根据现有的用于文件回放的文件格式所格式化的文件相类似,但是目前的文件播放器不能用于播放传输文件。如果想要将传输文件用作回放文件,那么必须在接收端将传输文件转换为现有的用于文件回放的文件格式。转换过程可能有问题,而且可能不是直接的。
发明内容
本申请出于目前提出的流传输系统是柔性的的考虑。
本申请的实施例旨在解决上述问题。
根据第一方面,提供有一种方法,包括:确定至少第一信号和相关联的第二信号;在第一文件中存储第一信号;在第一文件中并与第一信号相关联地生成位置引用指针;并在由引用指针指示的位置处存储与第一信号相关联的第二信号。
可将第一信号配置为可独立于第二信号译码。
第一信号可以是基本媒体演示(base media representation)并且第二信号可以是与基本媒体演示相关联的增强媒体演示。
增强媒体演示可以是以下中的至少一个:时间分辨率增强的媒体演示、更大量视图增强的媒体演示、空间分辨率增强的媒体演示、以及质量增强的媒体演示。
位置可以包括另一文件中的位置,其中引用指针包括条件提取单元。
位置可以包括第一文件中的位置,其中引用指针可以包括提取单元。
该方法可进一步包括在由引用指针所指示的位置处生成指向第一文件中的第一信号位置的另一引用指针。
另一引用指针可以包括提取单元。
该方法可进一步包括在第一文件中存储与第一信号和第二信号相关联的元数据。
该方法可进一步包括在另一文件中存储与第一信号和第二信号相关联的元数据,其中元数据可以包括指向第一信号和第二信号的位置的指针。
该方法可进一步包括:确定网络带宽;并在网络上传送第一信号和至少第二信号的子集。
该方法可进一步包括:生成修补指示器,该指示器配置为指示解码器以连接(concatenate)第一信号和第二信号。
该方法可进一步包括:生成修补指示器,该指示器配置为指示接收器以连接第一信号和第二信号。
该方法可进一步包括:生成修补指示器,该指示器配置为指示文件分析器以连接第一信号和第二信号。
根据第二方面,提供有一种方法,包括:接收包括第一信号和位置引用指针的至少第一文件;基于第一信号生成至少第一可播放信号。
第一信号可以包括基本媒体演示。
该方法可进一步包括:确定位置内容包括第二信号,第二信号可以包括增强媒体演示;以及基于第一信号和第二信号生成第一可播放信号。
增强媒体演示可以是以下中的至少一个:时间分辨率增强的媒体演示、更大量视图增强的媒体演示、空间分辨率增强的媒体演示、以及质量增强的媒体演示。
位置可以包括另一文件中的位置,其中引用指针可包括条件提取单元。
位置可以包括第一文件中的位置,其中引用指针可以包括提取单元。
该方法可进一步包括在由引用指针所指示的位置处确定指向第一文件位置中的第一信号的另一引用指针。
另一引用指针可以包括提取单元。
该方法可进一步包括在第一文件中确定与至少第一信号相关联的元数据。
该方法可进一步包括在另一文件中确定与第一信号相关联的元数据,其中元数据可以包括指向第一信号的位置的指针。
该方法还包括:确定网络带宽;确定至少第二信号的子集;并在网络上请求第一信号和至少第二信号的子集。
根据第三方面,提供有一种装置,该装置包括至少一个处理器和至少一个包括计算机程序代码的存储器,该至少一个存储器和计算机程序代码被配置为与至少一个处理器一起使该装置至少执行:确定至少第一信号和相关联的第二信号;在第一文件中存储第一信号;在第一文件中并与第一信号相关联地生成位置引用指针;并在由引用指针所指示的位置处存储与第一信号相关联的第二信号。
可将第一信号配置为可独立于第二信号译码。
第一信号可以是基本媒体演示并且第二信号可以是与基本媒体演示相关联的增强媒体演示。
增强媒体演示可以是以下中的至少一个:时间分辨率增强的媒体演示、更大量视图增强的媒体演示、空间分辨率增强的媒体演示以及质量增强的媒体演示。
位置可以包括另一文件中的位置,其中引用指针可包括条件提取单元。
位置可以包括第一文件中的位置,其中引用指针可以包括提取单元。
可进一步使得该装置执行在由引用指针所指示的位置处生成指向第一文件中的第一信号位置的另一引用指针。
另一引用指针可以包括提取单元。
可进一步使得该装置执行在第一文件中存储与第一信号和第二信号相关联的元数据。
可进一步使得该装置执行在另一文件中存储与第一信号和第二信号相关联的元数据,其中元数据包括指向第一信号和第二信号的位置的指针。
可进一步使得该装置执行:确定网络带宽;并在网络上传输第一信号和至少第二信号的子集。
可进一步使得该装置执行:生成修补指示器,该修补指示器配置为指示解码器以连接第一信号和第二信号。
可进一步使得该装置执行:生成修补指示器,该修补指示器配置为指示接收器以连接第一信号和第二信号。
可进一步使得该装置执行:生成修补指示器,该修补指示器配置为指示文件分析器以连接第一信号和第二信号。
根据第四方面,提供有一种装置,包括至少一个处理器和至少一个包括计算机程序代码的存储器,该至少一个存储器和计算机程序代码被配置为与至少一个处理器一起使得该装置至少执行:接收包括第一信号和位置引用指针的至少第一文件;并且基于第一信号生成至少第一可播放信号。
第一信号可以包括基本媒体演示。
可进一步使得该装置执行:确定包括第二信号的位置内容,第二信号包括增强媒体演示;以及基于第一信号和第二信号生成第一可播放信号。
增强媒体演示可以是以下中的至少一个:时间分辨率增强的媒体演示、更大量视图增强的媒体演示、空间分辨率增强的媒体演示以及质量增强的媒体演示。
位置可以包括另一文件中的位置,并且引用指针可包括条件提取单元。
位置可以包括第一文件中的位置,并且引用指针可以包括提取单元。
可进一步使得该装置执行在由引用指针所指示的位置处确定指向第一文件中的第一信号位置的另一引用指针。
另一引用指针可以包括提取单元。
可进一步使得该装置执行在第一文件中确定与至少第一信号相关联的元数据。
可进一步使得该装置执行在另一文件中确定与第一信号相关联的元数据,其中元数据包括指向第一信号的位置的指针。
可进一步使得该装置执行:确定网络带宽;确定至少第二信号的子集;并在网络上请求第一信号和至少第二信号的子集。
根据第五方面,提供有一种装置,包括:文件确定器,被配置为确定至少第一信号和相关联的第二信号;文件生成器,被配置为在第一文件中存储第一信号;指针生成器,被配置为在第一文件中并与第一信号相关联地生成位置引用指针;以及另一文件生成器,被配置为在由引用指针所指示的位置处存储与第一信号相关联的第二信号。
可将第一信号配置为可独立于第二信号译码。
第一信号可以是基本媒体演示,并且第二信号可以是与基本媒体演示相关联的增强媒体演示。
增强媒体演示可以是以下中的至少一个:时间分辨率增强的媒体演示、更大量视图增强的媒体演示、空间分辨率增强的媒体演示、以及质量增强的媒体演示。
位置可以包括另一文件中的位置,其中引用指针可包括条件提取单元。
位置可以包括第一文件中的位置,其中引用指针可以包括提取单元。
该装置可包括另一指针生成器,该生成器被配置为在由引用指针所指示的位置处生成指向第一文件中的第一信号位置的另一引用指针。
另一引用指针可以包括提取单元。
该文件生成器可进一步配置为在第一文件中存储与第一信号和第二信号相关联的元数据。
该装置可包括元数据文件生成器,该生成器被配置为在另一文件中存储与第一信号和第二信号相关联的元数据,其中元数据包括至少一个指向第一信号和第二信号的位置的指针。
该装置可包括网络监视器,该监视器被配置为确定网络带宽;以及传输器,配置为在网络上传输第一信号和至少第二信号的子集。
该装置可包括指示器生成器,该生成器被配置为生成修补指示器,该指示器被配置为指示解码器以连接第一信号和第二信号。
该装置可包括指示器生成器,该生成器被配置为生成修补指示器,该指示器被配置为指示接收器以连接第一信号和第二信号。
该装置可包括指示器生成器,该生成器被配置为生成修补指示器,该指示器被配置为指示文件分析器以连接第一信号和第二信号。
根据第六方面,提供有一种装置,包括:输入,被配置为接收包括第一信号和位置引用指针的至少第一文件;以及解码器,被配置为基于第一信号生成至少第一可播放信号。
第一信号可以包括基本媒体演示。
该解码器可进一步包括指针解码器,该解码器被配置为确定位置内容包括第二信号,第二信号包括增强媒体演示,其中解码器进一步配置为基于第一信号和第二信号生成第一可播放信号。
增强媒体演示可以是以下中的至少一个:时间分辨率增强的媒体演示、更大量视图增强的媒体演示、空间分辨率增强的媒体演示、以及质量增强的媒体演示。
位置可以包括另一文件中的位置,并且引用指针可包括条件提取单元。
位置可以包括第一文件中的位置,并且引用指针可以包括提取单元。
该解码器可进一步包括另一指针解码器,该解码器被配置为在由引用指针所指示的位置处确定指向第一文件中的第一信号位置的另一引用指针。
另一引用指针可以包括提取单元。
该设备可进一步包括元数据解码器,该解码器被配置为在第一文件中确定与至少第一信号相关联的元数据。
该设备可进一步包括另一元数据解码器,该解码器被配置为在另一文件中确定与第一信号相关联的元数据,其中元数据包括指向第一信号位置的指针。
该设备可进一步包括:网络监视器,被配置为确定网络带宽;输入进一步配置为确定至少第二信号的子集的接收;以及请求生成器,被配置为在网络上请求第一信号和至少第二信号的子集。
根据第七方面,提供有一种装置,包括:信号处理部件,用于确定至少第一信号和相关联的第二信号;文件处理部件,用于在第一文件中存储第一信号;连接部件,用于在第一文件中并与第一信号相关联地生成位置引用指针;以及其中文件处理部件进一步在由引用指针所指示的位置处存储与第一信号相关联的第二信号。
可将第一信号配置为可独立于第二信号译码。
第一信号可以是基本媒体演示,并且第二信号可以是与基本媒体演示相关联的增强媒体演示。
增强媒体演示可以是以下中的至少一个:时间分辨率增强的媒体演示、更大量视图增强的媒体演示、空间分辨率增强的媒体演示、以及质量增强的媒体演示。
位置可以包括另一文件中的位置,其中引用指针可包括条件提取单元。
位置可以包括第一文件中的位置,其中引用指针可以包括提取单元。
该装置可包括另一连接部件,用于在由引用指针所指示的位置处生成指向第一文件位置中的第一信号的另一引用指针。
另一引用指针可以包括提取单元。
该文件处理部件可以进一步在第一文件中存储与第一信号和第二信号相关联的元数据。
该装置可包括元数据文件处理部件,用于在另一文件中存储与第一信号和第二信号相关联的元数据,其中元数据包括至少一个指向第一信号和第二信号的位置的指针。
该装置可包括:网络监视器部件,用于确定网络带宽;输出部件,用于基于网络监视部件在网络上输出第一信号和至少第二信号的子集。
该装置可包括:指示器生成器部件,用于生成修补指示器,该指示器被配置为指示解码器以连接第一信号和第二信号。
该装置可包括:指示器生成器部件,用于生成修补指示器,该指示器被配置为指示接收器以连接第一信号和第二信号。
该设备可包括:指示器生成器部件,用于生成修补指示器,该指示器被配置为指示文件分析器以连接第一信号和第二信号。
根据第八方面,提供有一种装置,包括:输入部件,用于接收包括第一信号和位置引用指针的至少第一文件;以及解码部件,用于基于第一信号生成至少第一可播放信号。
第一信号可以包括基本媒体演示。
该解码部件可包括指针解码器部件,用于确定包括第二信号的位置内容,第二信号包括增强媒体演示,其中解码部件进一步基于第一信号和第二信号生成第一可播放信号。
增强媒体演示可以是以下中的至少一个:时间分辨率增强的媒体演示、更大量视图增强的媒体演示、空间分辨率增强的媒体演示、以及质量增强的媒体演示。
位置可以包括另一文件中的位置,并且引用指针可包括条件提取单元。
位置可以包括第一文件中的位置,并且引用指针可以包括提取单元。
该解码部件可进一步包括另一指针解码器部件,用于在由引用指针所指示的位置处确定指向第一文件位置中的第一信号的另一引用指针。
另一引用指针可以包括提取单元。
该装置可进一步包括元数据解码器部件,用于在第一文件中确定与至少第一信号相关联的元数据。
该装置可进一步包括另一元数据解码器部件,用于在另一文件中确定与第一信号相关联的元数据,其中元数据包括指向第一信号的位置的指针。
该装置可进一步包括:网络监视部件,用于确定网络带宽;输入确定部件,用于确定至少第二信号的子集;以及请求生成部件,用于在网络上请求第一信号和至少第二信号的子集。
根据第九方面,提供有一种方法,包括:生成至少一个包括媒体数据的文件,其中媒体数据包括第一媒体数据部分和第二媒体数据部分,并且第一媒体数据片可独立于第二媒体数据片解码。
生成可进一步包括:将第一样本生成在至少一个文件中,该样本包括第一数据单元和第二数据单元,第一数据单元包括第一媒体数据片,第二数据单元包括条件数据引用指针。
生成可进一步包括:将第二媒体数据片生成在至少一个文件中,并设定条件数据引用指针指向第二媒体数据片。
第一文件可包括至少一个:符合第一文件格式的文件,其中忽略条件数据引用指针;以及符合第二文件格式的文件,其中解析条件数据引用指针。
该至少一个文件包括第一文件和第二文件,其中生成包括将样本生成到第一文件中、以及将第二媒体数据片生成到第二文件中。
根据第十方面,提供有一种方法,包括:提供指示第一文件段(segment)和第二文件段的转换的指示器,第一文件段包括媒体数据部分(section),其中指示器进一步指示在不完全时何时修补媒体数据部分。
该方法可进一步包括提供另一指示器,以指示第一文件段和第二文件段连接以形成修补的连续文件。
根据第十一方面,提供有一种方法,包括:请求包括至少一个共同包括媒体数据部分的文件段的传输;接收至少一个文件段;确定媒体数据部分是不完整的;当媒体数据部分不完整时修补媒体数据部分,并将修补的媒体数据部分连接成文件。
媒体数据部分可包括媒体数据部分的尺寸的指示。
确定媒体部分不完全可进一步包括:当媒体数据部分的尺寸的指示大于媒体数据部分的尺寸时,确定媒体数据部分是不完全的。
该至少一个文件部分可进一步包括文件元数据,并且文件元数据可包括媒体数据的字节范围的引用。
当字节范围在至少一个文件段中至少部分缺失时,确定媒体数据部分是不完全的。
根据第十一方面,提供有一种方法,包括:确定是否请求在至少一个文件内的字节范围;请求包括媒体数据的至少第一文件的传输,该至少第一文件包括样本,该样本包括第一数据单元和第二数据单元,该第一数据单元包括第一媒体数据片,第二数据单元包括数据引用指针,该数据引用指针指向至少一个文件内部的字节范围;接收该样本;以及将样本写入至少第二文件。
该方法可进一步包括将至少一个元素代替字节范围写入至少第二文件,该至少一个单元包括字节范围的省略指示。
根据第十二方面,提供有一种方法,用于解析包含媒体数据的至少一个文件,该至少一个文件包括样本,该样本包括第一数据单元和第二数据单元,该第一数据单元包括第一媒体数据片,该第二数据单元包括条件数据引用指针,该方法包括:从样本提取第一数据单元或第一媒体数据片,识别条件数据引用指针的目标字节范围是否包括存在于至少一个文件中的媒体数据;并且,当目标字节范围包含媒体数据时从目标字节范围中提取第二媒体数据片。
该方法可进一步包括:将第一数据单元或第一媒体数据片插入存取单元;当目标字节范围包含在至少一个文件中存在的媒体数据时,将第二媒体数据片附加至存取单元内。
该方法可进一步包括:解码存取单元。
该方法可进一步包括:基于在指示不存在媒体数据的目标字节范围中的至少一个元素或者基于位于不存在的文件中的目标字节范围,识别目标字节范围不包含媒体数据。
该方法可进一步包括:解码第一数据单元或第一媒体数据片;以及当目标字节范围包括存在于至少一个文件中的媒体数据时解码第二媒体数据片。
一种电子设备,可包括上述装置。
一种芯片组,可包括上述装置。
附图简要说明
为了更好地理解本发明,现在通过示例的方式对附图作出参考,其中:
图1a示意性示出适于采用本申请的某些实施例的系统;
图1b示意性示出适于采用本申请的某些实施例的电子设备。
图2示意性示出如采用本申请某些实施例的图1a中示出的系统操作。
图3更详细地示意性示出在图1a中示出的文件生成器和文件封装器。
图4示意性示出根据本申请的某些实施例的文件生成器的操作。
图5示意性示出根据本申请的某些实施例的文件封装器的操作。
图6示出根据本申请的某些实施例由文件封装器生成的示例文件格式。
图7示意性示出根据本申请的某些进一步实施例的文件封装器的操作。
图8示出根据本申请的某些进一步实施例由文件封装器生成的示例文件格式。
图9示意性示出根据本申请的某些附加实施例的文件封装器的操作。
图10示出根据本申请的某些附加实施例由文件封装器生成的示例文件格式。
图11示意性示出根据本申请的某些补充实施例的文件封装器的操作。
图12示出根据本申请的某些补充实施例由文件封装器生成的示例文件格式。
图13更详细地示意性示出图1a中示出的文件封装器。
图14示意性示出适用于采用本申请实施例的静态HTTP服务器配置。
图15示意性示出适用于采用本申请实施例的半静态HTTP服务器配置。
图16示意性示出适用于在本申请实施例中采用的时间可伸缩视频(temporal scalable video)。
图17示出示例NAL文件结构的示意图。
具体实施方式
下面更详细地描述用于可伸缩渐进下载和流传输媒体装置的规定的可能机制。在这一点上,首先参考图1a和图1b,其中图1a示出可结合本申请实施例的示例流传输系统的示意性方框图,图1b示出适用于在图1a和图2中示出的系统内实施的示例装置,图2描述图1a中示出的系统的示例操作。
某些实施例中流传输系统10可包括服务器1和客户端3,其被配置为通过合适的通讯协议耦接。在下面的例子中,服务器1和客户端3耦接并且采用超文本传输协议(HTTP)应用层通讯协议进行通讯。然而,应当理解可以采用任意适合的应用层通讯协议。
关于图1b,示出一种电子设备或装置11,其根据本申请的实施例可用在图1a中示出的系统内作为服务器1和/或客户端3和/或HTTP缓存105中的至少一个。
例如当装置11用作例如客户端3时,装置11可以是无线通讯系统的移动终端或用户设备。在另一实施例中,作为客户端操作的装置11可以是音频-视频设备,例如摄像机、电视(TV)接收器、录音机或如mp3录音机/播放器的音频播放器、媒体录像机(也公知为mp4录像机/播放器)、或任何适用于媒体信号处理的计算机。
装置11包括处理器21,其耦接至收发器(RX/TX)13、用户接口(UI)15和存储器22。
在某些实施例中,处理器21被配置为执行各种程序代码。在某些实施例中,所执行的程序代码包括当作为服务器1实现时用于编码媒体数据信号的媒体编码代码或者当作为客户端3实现时用于解码媒体数据的媒体解码代码。在某些实施例中,所执行的程序代码或程序例如可存储在任何时候需要时由处理器21检索的存储器22中。在某些实施例中,程序代码可存储在存储器的程序代码部分23中。在某些实施例中,存储器22可以进一步包括用于存储例如根据本发明已被编码/或等待解码数据的数据的数据存储部分24。
实施例中的编码或解码代码可以硬件或软件实现。
在某些实施例中,装置11包括用户接口15或用于使用户能够例如经由键盘直接向装置11输入命令、和/或例如经由显示器从装置11获得信息的用户接口部件。在某些实施例中,触摸屏可向用户接口既提供输入又提供输出功能。在某些实施例中,装置11进一步包括适用于例如经由有线或无线通信网络与其它设备实现通信的收发器13。
还应当理解,装置10的结构可以多种方式补充及变形。
在某些实施例中,客户端3可包括HTTP流传输客户端107,其被配置为能够在适当的通讯链接上产生和输出HTTP请求5,例如获得例如视频或音频剪辑的特定媒体文件的请求。如下面将讨论的HTTP请求可经由HTTP缓存105传输至服务器1。
在某些实施例中,HTTP流传输客户端被配置为执行HTTP流水线操作。HTTP流水线操作是一种不需等待相应应答而将多个HTTP请求写出到单个套接字的技术。流水线操作仅仅在HTTP/1.1被支持,而不被1.0支持。由于通常可以将多个HTTP请求放入同一个(传输控制协议)TCP包中,因此HTTP流水线操作允许在网络上发送更少的TCP包,降低网络负载。
在某些实施例中,TCP连接通过以下四组识别:服务器IP地址、服务器端口号、客户端IP地址和客户端端口号。由于每个客户端进程被分配不同的端口号,因此从同一客户端1向同一服务器3的多个同时的TCP连接是可能的。因此,即使请求都访问同一服务器进程(例如在专用于HTTP的端口80的Web服务器进程),请求都具有不同的客户端套接字并表示唯一连接。这实现了从同一计算机向同一Web站点多个同时的请求。
通过步骤151在图2中示出生成请求的操作。
然后可在网络上将请求输出到服务器1。把请求传送到服务器1的操作在图2中通过步骤153示出。
在某些实施例中,服务器包括HTTP流传输服务器103。HTTP流传输服务器103被配置为接收HTTP请求并且控制对接收到的HTTP请求的响应的产生。
在服务器上接收请求的操作在图2中通过步骤161示出。
在某些实施例中,通过控制文件生成和文件封装,HTTP流传输服务器103能够响应来自HTTP流传输客户端107的HTTP请求。HTTP流传输服务器103还可被配置为输出和传输根据传输文件格式格式化的和在HTTP请求中封装的一个或多个媒体演示文件。
在某些实施例中,HTTP流传输服务器103可通过HTTP服务器1400实现,该HTTP服务器1400被配置为以在例如常规web服务器中可找到的“静态”模式操作。在模式中操作的系统的示例在图14中示出。在该模式中,内容提供商1401能够向服务/内容通知服务器1405提供内容,这可由包括服务/内容发现者1409的客户端3经由URL发现。HTTP流传输客户端107可请求来自HTTP服务器1400的一个或多个演示(内容)文件。该文件可根据服务器文件格式被格式化以被全部或部分传输。这些实施例中的HTTP服务器1400不需要通过任何方式编制内容。在该替代实施例中内容编制器1403从内容提供商1401接收内容并进一步(可能离线)通过内容编制器1403完成编制。
在某些实施例中,HTTP流传输服务器103可实现为与动态流传输服务器1503可操作地连接的分离常规web HTTP服务器1400。该系统在图15中示出,由此内容提供商1401被配置为向存储部件1501提供内容。在某些实施例中,动态流服务器1503被配置为基于来自客户端的请求动态地编制流传输内容到客户端,例如经由HTTP服务器1400(以及在某些实施例中经由HTTP缓存105)的HTTP流传输客户端107。在某些实施例中,在HTTP服务器1400和HTTP流传输客户端107之间的HTTP流传输接口1509基于HTTP协议并定义HTTP流传输的请求和响应的语法和语义。例如,HTTP流传输的请求/响应基于HTTP GET请求/响应。
在这些实施例中,HTTP服务器1400和动态流传输服务器1503的组合被配置为解释输入的HTTP GET请求并识别来自给定内容的所请求的媒体样本。在HTTP服务器1400和存储部件1501之间的内容交付描述接口(content delivery description interface)确保能够访问内容交付描述。在某些实施例中,可由内容提供商或服务提供商提供内容交付描述(也称为媒体演示描述)。它给出关于访问相关内容的设备的信息。特别地,它描述是否内容可经由HTTP流传输存取以及如何执行存取。通常经由HTTP GET请求/响应来检索内容交付描述。在某些实施例中,在HTTP服务器1400和动态流传输服务器1503之间的接口是公共网关接口(CGI)1507,其是标准化的并且在web服务器和动态内容生成服务器之间广泛采用的接口。在某些实施例中,在HTTP服务器1400和动态流传输服务器1503之间的接口可以是演示性状态转移(Representational State Transfer,REST)接口,这是可能的并将能够构建更多的可缓存资源定位符。
REST接口是用于例如万维网的分布超媒体系统的软件架构类型。REST型架构由彼此之间传送请求和响应的客户端和服务器构成。请求和响应围绕“资源”的“演示”的转移而建立。资源可以是任何可寻址的连贯、有含义的概念。资源表述通常是捕捉资源的当前和未来状态的文档。在任意特定时刻,客户端在应用状态之间或者“休息时”之间转换。在休息状态的客户端能够与其用户相互作用,但不会产生负载并且不会消耗在服务器组或网络上的每个客户端的存储。当准备转换为新状态时,客户端开始发出请求。当一个或多个请求未完成时,认为客户端将要转换状态。每个应用状态的演示包含可被用于下一时刻客户端选择以开启新的状态转换的链接。
公共网关接口(CGI)是定义web服务器软件可如何将网页生成授权给控制台应用程序的标准(参见RFC3875:CGI版本1.1)。该应用程序是公知的CGI脚本;虽然经常采用脚本语言,但是他们可以任意编程语言编写。web服务器的任务通过分析请求内容(主要在其URL中)、确定响应发送的适当文档、并将其返回至客户端,从而响应由客户(通常为网页浏览者)所发出的网页请求。如果请求识别磁盘上的文件,服务器可仅返回文件的内容。另外,文档的内容可在远程组成(be composed on the fly)。一种实现方式是使控制台应用程序计算文档的内容,并告知web服务器使用该控制台应用程序。CGI指定在web服务器和该控制台应用程序之间传输哪个信息和如何传输。
接着,HTTP服务器1400和动态流传输服务器1503组合在内容文件中或从实时流中定位所请求的媒体样本。然后HTTP服务器1400和动态流传输服务器1503组合在容器中提取并封装所请求的媒体样本。随后,新形成的具有媒体样本的容器被传送到HTTP GET响应主体的客户端。
此外在某些实施例中,动态HTTP流传输服务器103可以通过将HTTP服务器和动态流传输服务器在功能上合并成单个服务器1来实现,随后将描述该单个服务器的操作。此外,在某些实施例中,动态HTTP流传输服务器103可保持状态。
另外在某些实施例中,HTTP流传输服务器103可被配置为在两种操作模式中实现HTTP流传输:静态HTTP流传输和动态HTTP流传输。在静态HTTP流传输的情况下,预先或独立于服务器编制内容。无需由服务器调整媒体数据的结构以适应客户端的需求。常规的处于“静态”模式的web服务器(即HTTP服务器)仅可在静态HTTP流传输模式中操作。在动态HTTP流传输的情况下,在服务器处基于接收非缓存请求来动态编制内容。常规的web服务器与动态流传输服务器可操作地连接,并且动态HTTP流传输服务器可在动态HTTP流传输模式中工作。
在某些实施例中,服务器1可以包括文件生成器100。响应于来自HTTP流传输服务器的103的控制,文件生成器100确定所需的文件和数据。在某些实施例中,文件生成器是内容生成器。在该实施例中,文件生成器可包括一个或多个产生可伸缩媒体比特流的媒体编码器。在某些其他实施例中,文件生成器100是在其中能够检索相关媒体数据的存储部件,并且在进一步实施例中,文件生成器100是耦接到用于选择性检索数据和文件生成的存储部件的处理器部件。
关于图3,示出根据本申请的实施例的文件生成器100或任意适当信号处理部件的示意图。另外图4中示出根据某些实施例的文件生成器的操作。在某些实施例中,文件生成器100包括基本媒体数据生成器301和增强媒体数据生成器303。文件生成器100的基本媒体数据生成器301被配置为将可伸缩媒体比特流分割或生成为基本媒体数据部分。基本媒体数据代表可解码的基本质量版本(base-quality version)的媒体数据。例如,其可以是可伸缩媒体流的基本层或多视图媒体流的基本层演示。
图4中通过步骤401示出可伸缩媒体数据到基本媒体数据的生成/确定/分割。
文件生成器100的增强媒体数据生成器303另外被配置为将可伸缩媒体分割/生成为增强媒体数据部分。例如,增强媒体数据可以是可伸缩媒体流或多视图媒体流的一个或多个非基本视图的增强层演示。
图4中通过步骤402示出可伸缩媒体数据到增强媒体数据的生成/确定/分割。
应当理解为在某些实施例中增强媒体数据生成器303另外可生成增强媒体数据的进一步细分(sub-division),例如第一增强层和第二增强层,藉此每个进一步的层是对媒体信号的进一步增强。另外在某些实施例中,各层以类似于基本和增强层处理的方式被分别处理,如在下文关于文件封装器101所描述的。
然后文件生成器100向文件封装器101输出基本和增强媒体数据。图4中通过步骤403示出向文件封装器101输出基本和增强媒体数据。
在某些实施例中,服务器包括文件封装器101。在某些实施例中,文件封装器101可将媒体演示的媒体比特流作为输入并将比特流封装在一个或多个容器文件中。在某些实施例中,文件封装器101还可将媒体比特流转换成一个或多个文件,其可由HTTP流服务器处理。根据服务器文件格式9,格式化文件封装器的输出。
在某些实施例中,文件封装器101能够生成适用于容器文件的服务器文件格式,其可由HTTP流传输服务器管理并用于生成HTTP请求的响应。
多媒体容器文件格式是多媒体内容的产生、处理、传输和消费链条中的重要元素。在编码格式或基本流格式和容器文件格式之间存在实质差异。编码格式与将内容信息编码成比特流的具体编码算法行为有关。容器文件格式包括以能够用于本地解码和回放来存取、作为文件传输或以流传输的所有利用各种存储和传输结构这样的方式编制所生成的比特流的部件。而且,文件格式可有助于媒体的交换和编辑、以及将接收的实时流记录成文件。
关于图13,示出根据本申请的实施例的文件封装器101或任一适合的文件处理和/或链接部件。在某些实施例中,文件封装器101包括元数据封装器305、基本媒体数据封装器307和增强媒体数据封装器309,它们耦接以在文件生成器100的输出上操作从而输出由现有渐进下载客户端和能够适合比特率的HTTP流传输客户端可存取的服务器文件。
该格式还可与利用文件段作为传输文件格式的现有自适应HTTP流传输方案相结合使用。本申请的实施例使得以服务器文件既可以传统方式渐进下载又可作为源使用以产生用于自适应HTTP流传输的文件段的方式的可伸缩媒体编码的使用成为可能。而且,本申请的实施例使得所接收到的文件段能够直接转换为已有互换文件格式。
在某些实施例中,文件生成器100和文件封装器101被组合成单个文件生成器/封装器。在某些实施例中,文件生成器100和/或文件封装器101并不被视为服务器1的一部分,而是可替代包含在例如视频编辑软件的内容生成工具中。
关于图5,示出根据本申请的某些实施例的文件封装器101的操作。
在某些实施例中,文件封装器101被配置为从文件生成器100接收基本和增强媒体数据。
图5中通过步骤501示出接收基本和增强媒体数据的操作。
在某些实施例中,元数据封装器305可封装与第一文件中的媒体相关联的元数据。而且,在某些实施例中,基本媒体数据封装器307将基本媒体数据作为文件轨道(track)封装或存储到第一文件中。为了简化下面的例子,下文中仅说明一种媒体类型,视频,虽然典型的多媒体演示包含多于一种连续媒体类型,例如音频和视频媒体,并且在某些实施例中每种媒体类型均可以与下文描述的相类似的方式处理,或在某些进一步实施例中处理组合的媒体类型。在某些实施例中,封装器可表示为用于信号封装的文件处理部件以及用于生成和配置如本申请中描述的指针的链接部件。
在某些实施例中,媒体数据是可伸缩的媒体数据。例如在某些实施例中,本发明采用高级视频编码(H.264/AVC)标准文件的可伸缩视频编码(SVC)。
SVC在国际电信联盟电信标准化部门(ITU-T)和国际标准化组织(ISO)/国际电工委员会(IEC)联合技术委员会1(JTC1)共同制定的H.264/AVC的附件G中具体规定。
在可伸缩视频代码中,可将视频信号编码到基本层和一个或多个增强层中。增强层增强了时间分辨率(即帧率)、空间分辨率、或仅由其他层或其部分表示的视频内容的质量。每层与其全部附属层一起是在确定空间分辨率、时间分辨率和质量水平下的视频信号的一个演示。
可伸缩层与其全部附属层一起可称为“可伸缩层演示”。可将对应于可伸缩层演示的部分可伸缩比特流提取和解码以产生确定保真水平的原始信号的演示。
在某些实施例中,视频信号以精细粒度(颗粒度)可伸缩(FGS)方式编码,其可以在确定位置后、或甚至在任意位置截断增强层中的数据,并且其中每个截断位置可包括显示逐渐增强的视频质量的附加数据。
在某些实施例中,视频信号以粗粒度(颗粒度)可伸缩(CGS)方式编码,在其中不能在确定位置之后截断增强层中的数据。CGS共同包括传统质量(SNR)可伸缩和空间可伸缩。
而且,在某些实施例,视频信号以中粒度(颗粒度)可伸缩(MGS)方式编码,在其中质量增强图像通过具有大于0的quality_id语法元素,与SNR伸缩层图像类似地编码,但由与FGS层图像类似的高级语法元素指示。
在某些实施例中,SVC采用层间预测机制,其中可从并非当前重构层的层中预测确定信息。可层间预测的信息包括内部结构(intra texture)、移动和残余数据。层间移动预测包括块编码模式的预测、标题信息等,其中来自较低层的移动可用于较高层的预测。在内部编码的例子中,能够从周边的宏块(macroblock)或从较低层的协同定位的宏块预测。这些预测技术不需使用来自先前编码的存取单元的信息,并因此被称为内部预测技术。而且,来自较低层的残余数据还可用于当前层的预测。
在某些实施例中,SVC指定为单循环解码公知的概念。通过采用约束内部结构预测模式实现单循环解码,由此可将层间内部结构预测应用于位于内部宏块内部的基本层的对应块的宏块(MB)中。基本上与此同时,基本层中的这些内部宏块采用约束内部预测(即,具有等于1的语法元素constrained_intra_pred_flag)。
在采用单循环解码的该实施例中,解码器需要对期望回放的可伸缩层(称作期望层或对象层)执行运动补偿和整体图像重构,从而大幅降低解码的复杂性。由于未用于层间预测(不论是层间内部结构预测,层间运动预测或层间残余预测)的全部或部分宏块数据对于期望层重构不是必需的,因此除期望层之外的所有层不需要完全解码。
在某些实施例中,需要单个解码循环用于大多数图像的解码,而在某些实施例中,可以选择性地将第二解码循环用于重构基本演示,该演示需要作为预测参数但不用于输出或显示,且其重构仅用于所谓的关键图像(在某些实施例中该变量store_ref_base_pic_flag的值等于1)。
在某些实施例中,SVC文件中的可伸缩结构可由三个语法元素:temporal_id、dependency_id和quality_id来表征。在某些实施例中,语法元素temporal_id指示时间可伸缩层级,或间接指示帧率。包含较小的最大temporal_id值的图像的可伸缩层演示具有相比包含更大的最大temporal_id的图像的可伸缩层演示更小的帧率。另外,给定时间层典型地取决于较低时间层(即,具有较小temporal_id值的时间层),而不取决于任何更高的时间层。在某些实施例中,语法元素dependency_id指示CGS层间编码相关性层级(如先前所述,其包括SNR和空间可伸缩性)。在任一时间级位置,较小dependency_id值的图像可用于编码具有较高dependency_id值的图像的层间预测。语法元素quality_id用于指示FGS或MGS层的质量级别层次。在任意时间位置,且使用相同的dependency_id值,具有等于QL的quality_id的图像利用具有等于QL-1的quality_id的图像用于层间预测。在某些实施例中,具有大于0的quality_id的编码片段(coded slice)可被编码为可截断FGS片段或不可截断MGS片段。此外,在某些实施例中,priority_id指定各个视频编码NAL单元的优先权标识符。
在SVC标准中规定了子比特流提取过程。子比特流提取过程将SVC比特流转换为具有视频编码层NAL单元的子集的另一SVC或H.264/AVC比特流。子集被规定为目标priority_id、quality_id、temporal_id和/或priority_id的值。所得到的比特流不包含比目标值更大的priority_id、quality_id、temporal_id和/或priority_id的值。文件生成器100和/或文件封装器101可利用子比特流提取过程用于将可伸缩媒体分割为基本媒体数据部分和增强媒体数据部分。
在某些实施例中,MVC文件的可伸缩特性由三个语法元素表征:temporal_id、priority_id和view_id。temporal_id和priority_id与SVC中的相应语法元素相似。view_id指示相关视频编码NAL单元的视图或源相机(source camera)。MVC标准中规定子比特流提取过程,作为输入包含在所得到的比特流子集中的目标temporal_id和priority_id以及一列view_id值。文件生成器100和/或文件封装器101可利用子比特流提取过程用于将可伸缩媒体分割为基本媒体数据部分和增强媒体数据部分。
在某些实施例中,具有相同dependency_id值的一个存取单元中的所有数据单元(即SVC内容中的网络抽象层单元或NAL单元)被称为相关单元或相关演示。在一个相关单元内部,具有相同quality_id值的所有数据单元可被称为质量单元或层演示。
基本演示,也公知为解码基本图像,是从具有等于0的quality_id的相关单元以及将store_ref_base_pic_flag设置为等于0的视频编码层(VCL)NAL单元解码得到的已解码图像。增强演示,也称作已解码图像,也可从常规解码过程得到,其中作为最高相关性演示存在的所有层演示均被解码。
每个H.264/AVC VCL NAL单元(具有范围从1-5的NAL单元类型)在SVC比特流中在前面加上前缀NAL单元。根据某些实施例的兼容H.264/AVC解码器的实现因此忽略前缀NAL单元。在某些实施例中,前缀NAL单元包括temporal_id值并由此包括SVC解码器,例如文件播放器109,其解码基本层,能够从前缀NAL单元中获知时间可伸缩层级。而且,前缀NAL单元包括用于基本演示的参考图像标记命令。
此外在某些实施例中,SVC文件可执行与H.264/AVC相同的机制以提供时间可伸缩性。在某些实施例中,通过给定调节帧率的复杂性来提供在时域中的视频质量的细化。
在某些实施例中,时间可伸缩性可通过利用MPEG-1视频中的B图像在视频编码数据内部执行。当B图像从按照显示顺序,一个在B图像前而另一个在B图像后的两个图像进行双预测时,编码译码器利用两个预测块从平均样本方式的两个参考图像以得到最终的预测块。在某些实施例中,B图像并非参考图像,换句话说,它并不用于通过其他图像的图像间预测参考。因此,在某些实施例中,可丢弃B图像以获得具有更低帧率的时间可伸缩点。可以执行相同的机制以提供用于MPEG-2视频、H.263和MPEG-4视频文件的时间可伸缩性。
H.264/AVC实施例中的时间可伸缩性的实现与B图像或已变化的B片段的概念不同。在H.264/AVC标准中,B片段的定义是可使用在相同片段内部的已解码样本的内部预测或来自在先解码的参考图像的帧间预测,使用至多两个运动向量和参考指标来预测每个块的样本值来解码的片段。因此在这些实施例中,传统B图像概念的双向预测特性和非参考图像特性不再有效,因为在某些实施例中,B片段中的块可从以显示顺序在同一方向中的两个参考图像预测,且包含B片段的图像可指用于图像间预测的其他图像。
然而,在某些实施例中,可通过利用非参考图像和/或分级图像间预测结构来得到H.264/AVC、SVC和MVC的时间可伸缩性。通过丢弃非参考图像,仅利用非参考图像能够得到与采用传统MPEG-1/2/4的B图像相似的时间可伸缩性。因此例如在某些实施例中执行的分级编码结构可得到灵活的时间可伸缩性。
参见图16,示出可在本申请的实施例中采用的典型分级编码结构。虽然该示例中示出四级时间可伸缩性,但是应当理解在本申请的某些实施例中可实现多于或少于四级。显示顺序由表示为图像顺序计数(POC)1601的值指示。时间结构由表示为时间级别(TL)1607的值表示,其等于temporal_id值。I或P图像1603,也称作关键图像,在某些实施例中以解码顺序被编码成一组图像(GOP)1605中的第一图像。在图16中,示出两组图像1605a和1605b。当关键图像被帧间编码时,前一关键图像用作图像间预测的参考。这些图像对应于时间可伸缩结构中的最低时间级别(图中表示为TL1607)且与最低帧率相关。在这些实施例中,较高时间级别的图像可仅利用相同或较低时间级别的图像用于图像间预测。在这些实施例中,通过丢弃确定时间级别值和之后的图像,分级编码结构实现对应于不同帧率的时间可伸缩性。在图16中,图像0、8和16具有最低时间级别(TL=0),图像4和12具有下一最低时间级别(TL=1),图像2、6、10和15具有再下一最低时间级别(TL=2),而图像1、3、5、7、9、11、13和15具有最高时间级别(TL=3)。这些不同时间级别的图像可用于生成不同帧率的比特流。例如在某些实施例中,当解码全部时间级别时文件读取器能够生成30Hz的帧率,仅利用最高至TL=2的图像可生成15Hz的帧率,利用最高至TL=1的图像可生成7.5Hz的帧率,以及利用TL=0的图像可生成3.75Hz的帧率。由此,通过丢弃某些时间级别的图像,可以得到其他帧率。具有较低时间级别或较低帧率的时间可伸缩层也可称为较低时间层。
上述分级B图像编码结构是用于时间可伸缩性的最典型编码结构。然而,应当指出更为灵活的编码结构也是可以的。例如在某些实施例中,GOP尺寸不必是在时间上的常数。在某些实施例中,其他的例子未将时间增强层图像作为B片段编码,因为他们也可被编码为P片段。
在某些实现H.264/AVC的实施例中,时间级别可由补充增强信息(SEI)的子顺序信息中的子顺序层数来用信号指示。在某些实现SVC的实施例中,时间级别可由语法元素temporal_id在网络抽象层(NAL)单元头部中来用信号指示。在某些实施例中,每个时间级别的比特率和帧率信息可在可伸缩性信息SEI消息中用信号指示。
在本申请的某些实施例中,文件生成器/封装器被配置为执行可包括空间可伸缩性和信噪比(SNR或保真度)可伸缩性的粗粒度可伸缩性(CGS)。在某些实施例中空间可伸缩性支持具有不同分辨率的视频演示。对于每个时刻的视频编码层(VCL)的网络抽象层(NAL)单元被编码在同一存取单元中,且这些VCL NAL单元可对应于不同的分辨率。在解码期间,例如在某些实施例中在文件读取器内部,低分辨率VCL NAL单元提供运动区域和可由高分辨率图像的最终解码和重构可选择性继承的残差。与之前的视频压缩标准相比,SVC的空间可伸缩性在某些实施例中概括为使基本层能够成为增强层的裁切和缩放版本。
在本申请的某些实施例中,文件生成器/封装器被配置为实现MGS质量层,其可以与FGS质量层类似的方式用quality_id数据元素指示。在这些实施例中,文件生成器/封装器可为每个相关单元(具有相同的dependency_id)生成具有等于0的quality_id的层和具有大于0的quality_id的其它层。取决于片段是否作为可截断片段编码层,具有大于0的quality_id值的层可以是MGS层或FGS层。
在某些实施FGS增强层的实施例中,仅采用层间预测。因此,FGS增强层可任意截断而不会导致解码次序的任何错误传播。然而,由于仅低质量图像用于帧间预测参考,这些实施例可具有低的压缩效率。由此,在某些实施例中可利用FGS增强图像作为帧间预测参考,当某些FGS数据丢弃时可能出现编码-解码错位,也称作漂移。
在某些实施例中,应当理解FGS NAL单元可任意裁切或截断,并且MGS NAL单元可任意裁切(不能被截断)而不会影响比特流的一致性。如上所述,当在编码期间将FGS或MGS数据用于帧间预测参考时,在某些实施例中数据的裁切或截断导致在解码器侧和编码器侧的解码图像之间的错位。该错位也被称为漂移。
在某些实施例中,为了控制由于FGS或MGS数据的裁切或截断的漂移,在确定的相关单元中,基本演示(通过仅解码具有等于0的quality_id和所有取决于较低层数据的CGS图像)存储在解码的图像缓冲中。此外在该实施例中,当对具有相同dependency_id值的后来的相关单元编码时,所有NAL单元,包括FGS或MGS NAL单元,利用帧间预测参考的基本演示。因此,由于在前存取单元中的FGS或MGS NAL单元的裁切或截断的全部漂移在该存取单元中停止。对于具有相同dependency_id值的其他相关单元来说,为了高的编码效率,所有NAL单元利用帧间预测参考的解码图像。
在某些实施例中,每个网络抽象层(NAL)单元在NAL单元头部包括语法元素use_ref_base_pic_flag。当该元素值等于1时,在帧间预测过程期间,NAL单元的解码利用参考图像的基本演示。在该实施例中语法元素store_ref_base_pic_flag规定是(等于1时)否(等于0时)存储当前图像的基本演示用于帧间预测所用的未来图像。
在某些实施例中,具有大于0的quality_id的NAL单元被配置为不含有与参考图像列表结构和加权预测相关的语法元素。换句话说,语法元素num_ref_active_lx_minus1(x=0或1),参考图像列表的重新排序语法表以及加权预测语法表不存在。因此,在这些实施例中,当必要时MGS或FGS层必须从同一相关单元的具有等于0的quality_id的NAL单元中继承这些语法元素。
在某些实施例中,文件生成器/封装器和HTTP服务器可被配置为以基于ISO基本媒体文件格式的ISO/IEC14496-15的AVC文件格式编码媒体文件。
在该实施例中生成的AVC流是各自被分割为大量的网络抽象层(NAL)单元的存取单元序列。在AVC文件中,存取单元的所有NAL单元形成文件格式样本,以及在文件中,每个NAL单元马上在前面加上其字节尺寸。
关于图17示出AVC样本的结构。在该实施例中,样本1700包括一组网络抽象层(NAL)单元。每个NAL单元包括长度字段1701,其被配置为指示后面的NAL单元的字节长度。在某些实施例中,长度字段可被配置为是1、2或4个字节。而且,每个NAL单元包括NAL数据单元,例如存取单元分隔符NAL单元703,SEI NAL单元1705,片NAL单元(主编码图像)1707和片NAL单元(冗余编码图像)1709。
在某些实施例中,以与AVC文件格式类似的方式生成SVC和MVC文件格式。而且,由于能以与AVC相兼容的方式操作SVC和MVC编码解码器,SVC和MVC文件格式也可以在AVC兼容方式中使用。然而,存在一些SVC专用和MVC专用的结构以实现可伸缩和多视图操作。
在图5中通过步骤503示出第一文件样本数据中封装基本媒体数据的操作。
增强媒体数据封装器309此外被配置为在第一文件样本数据内部生成和封装条件数据引用指针。在某些实施例中,条件数据引用指针可包括条件提取器NAL单元(Cond.Extr.NAL单元)。提取器NAL单元被配置为提供一种方法以在描述相同可伸缩或多视图流的多轨道中共享数据并由此不会过度扩大文件。
在图5中通过步骤505示出在第一文件样本数据中封装条件数据引用的操作。
在该实施例中,提取器NAL单元实现为在样本内作为全部其他NAL单元驻留的在线结构。提取器NAL单元类型专用于文件格式。在某些实施例中,其NAL单元类型值选自对于本申请用途的H.264/AVC中保留的那些NAL单元类型值。可选地,在某些实施例中,条件数据引用指针可使用相同的标识符值作为非条件数据引用指针,例如SVC和MVC文件格式的提取器NAL单元。然而,由数据引用指针指向的数据可包括该标识符值,其禁用引用包含的数据。在SVC和MVC文件格式中,由提取器NAL单元指向的数据可指示为包含零尺寸NAL单元。可选地,由数据引用指针指向的文件不必存在并由此不从文件提取数据。
在某些实施例中,提取器NAL单元可与其他NAL单元类似地构建。
在该实施例中,提取器NAL单元包括从另一轨道的样本复制确定的数据片以代替解码所经过的存取单元中的提取器NAL单元来解码的指令。换句话说,提取器NAL单元是指向已链接轨道中的一个的时间并行样本的字节范围的运行可解引用(de-referenceable)的指针。
在某些实施例中,提取器NAL单元实现不同类型的轨道。例如,在某些实施例中,H.264/AVC基本层或比特流的基本视图可包含在作为视频编码NAL单元的样本中,而增强层或非基本视图可分别包含在提取器NAL单元中。这一轨道与AVC文件读取器和H.264/AVC解码器兼容。
在某些实施例中,提取器NAL单元中的语法可以是:
Figure BDA00002934235300291
Figure BDA00002934235300301
在某些实施例中NALUnitHeader()与视频编码NAL单元具有相同格式。
track_ref_index指定要使用的‘scal’类型的轨道引用索引以查找从中提取数据的轨道。在从中提取数据的轨道中的样本暂时对准或略早于媒体解码时间轴,即利用取样时间(time-to-sample)表,通过由具有包含提取器的样本的sample_offset指定的偏移来调整。第一轨道引用具有索引值1;值0被保留。
sample_offset给出将用作信息源的链接轨道中样本的相关索引。样本0(0)是具有相比包含提取器的样本解码时间相同或稍早的解码时间的样本;样本1(1)是后一样本,样本-1(负1)是前一样本,以此类推。
data_offset是要复制的参考样本内部第一字节的偏移。如果提取从该样本数据的第一字节开始,偏移值取0。偏移将引用NAL单元长度字段的开始。
data_length是要复制的字节数。如果该字段取值0,那么复制整个单个引用NAL单元(即,要复制的长度取自由数据偏移引用的长度字段,在聚合的情况下通过additional_bytes字段增加)。
lengthSizeMinusOne在轨道的样本输入中指定。
在某些实施例中,条件提取器NAL单元的语法包括数据引用索引,其指向数据引用框(reference box)的数据引用输入,其指定要提取的增强数据存在于的文件或URL。此外,条件提取器NAL单元包括与有数据引用索引所指示的文件开始相关的字节偏移。
例如,在某些实施例中,条件提取器NAL单元的语法具体如下:
Figure BDA00002934235300302
Figure BDA00002934235300311
增强演示的数据由此位于第二文件中。数据不必封装为样本,但通常每个NAL单元前面有指示下一NAL单元的字节长度的语法元素。在该实施例中,不必指定增强演示的轨道。
然后在某些实施例中,文件封装器的增强媒体数据封装器309可将增强媒体数据存储在由条件数据引用指示的位置处的第二文件中。
在图5中通过步骤507示出在由条件数据引用所引用的第二文件样本数据中封装增强媒体数据的操作。
在某些实施例中,文件封装器101能够生成用于所有版本(例如用于多比特率)的内容/媒体文件的单个元数据文件。
例如,所有版本内容的元数据可存在于同一文件中。在某些实施例中,例如同一文件可被划分为覆盖确定回放演示范围的片段。在某些实施例中,媒体数据可以存在于同一文件中或者可位于由元数据所指向的外部文件中。
在某些实施例中,文件封装器101可生成用于每个版本的元数据文件。单一版本(比特率)内容的元数据由此可存在于同一文件中,例如内容可被划分成覆盖确定的回放演示范围的片段。媒体数据可存在于同一文件中或可位于由元数据所指向的外部文件中。
在ISO基本媒体文件格式中的基本构件块称作框(box)。每个框具有标题和有效载荷(payload)。框标题指示框的类型和以字节形式的框尺寸。框可以封入其他框,并且ISO文件格式指定哪种框类型在确定类型的框内部被允许。此外,某些框强制存在于每个文件中,而其他的是可选的。而且,对于某些框类型,允许文件中存在多于一个框。能够推断出ISO基本媒体文件格式指定了分级框结构。
关于图6,可示出根据本申请某些实施例的简化文件结构。根据ISO文件格式族,文件201可包含分别封入分离框、媒体数据(mdat)框231和电影(moov)框205的媒体数据和元数据。
在某些实施例中,电影框(moov)205包括一个或多个轨道,并且每个轨道存在于一个轨道框中。轨道可以是下列类型之一:媒体、提示(hint)、定时(timed)元数据。媒体轨道指向根据媒体压缩格式(以及其到ISO基本媒体文件格式的封装)格式化的样本。提示轨道指向指示样本,包含用于构件基于指定通讯协议的传输包(packet)的详尽(cookbook)指令。详尽指令可包含用于包标题结构的导引,并包括包有效负载结构。另外,提示轨道可以是接收提示轨道,其样本表示当他们基于通讯协议被接收的包。
在包有效负载结构中,可引用存在于其他轨道或项目中的数据。换句话说,在包构造过程期间复制哪片特定轨道或项目中的数据到包中可通过引用指示。定时元数据轨道指向描述所指向的媒体和/或提示样本。对于一种媒体类型的演示,通常选择一个媒体轨道。
轨道样本可与由样本的指示解码顺序加1的样本数隐含相关。第一轨道样本可与样本数1相关。
应当注意,ISO基本媒体文件格式并不限于包含在一个文件中的演示,而是可以包含在不同文件中。一个文件包含用于整个演示的元数据。这个文件还可以包含所有媒体数据,由此演示是自足的(self-contained)。其他文件,如果用到的话,不需格式化为ISO基本媒体文件格式,用于包含媒体数据,也可包含未使用的媒体数据或其他信息。ISO基本媒体文件格式仅涉及演示文件的结构。媒体数据文件格式仅被限制为ISO基本媒体文件格式或其衍生格式,其中媒体文件的媒体数据必须被格式化为在ISO基本媒体文件格式或其衍生格式中指定。
在某些实施例中,指向外部文件的能力也可通过下面的数据引用来实现。每个轨道中包含的样本描述框包括样本输入列表,每个提供关于所采用编码类型的具体信息以及该编码所必需的任意初始化信息。程序块(chunk)的全部样本和轨道片段的全部样本采用相同的样本输入。程序块是一个轨道的相邻样本序列。也包括在每个轨道中的数据引用框包含一URL、URN、以及包含元数据的自引用文件的索引列表。由此样本输入可指向数据引用块的一个索引,从而指示包含各个程序块或轨道片段样本的文件。
在图6的例子中,元数据和基本媒体数据存储在第一文件201中,并由指针链接至增强层文件251或多个文件。在某些实施例中,元数据被分割成覆盖确定回放期间的片段。如果文件包含相互可选择的轨道,例如以不同比特率编码的相同内容,图6图示出用于所有版本的单一元数据文件的情况;否则,其可图示用于每个版本的一个元数据文件的情况。
在某些实施例中,第一或基本媒体/元数据文件201可包含第一类型标题(ftyp)203,其指示文件的主要类型(brand)和文件符合的兼容类型。而且,在某些实施例中,基本媒体/元数据文件201包含电影框(moov)205,其含有电影信息和其包含的轨道。尤其在某些实施例中,电影框205可包含电影框标题(mvhd)207和至少一个轨道(track)209。每个轨道另外可包括数据引用框(dref)211,其说明轨道媒体数据的位置。在本例中,数据引用框包括两个引用,一个如实线所示指向增强层文件251、第二个如虚线指向基本层数据(mdat)231。
在某些实施例中,电影框(moov)205还可包含电影扩展框(mvex),其可提供包括片段的分段电影的全部持续期间。电影扩展框(mvex)还可包括与轨道框相关的轨道扩展框(trex)。
在某些实施例中,如图6所示,基本媒体/元数据文件包括电影片段框(moof)221。
在某些实施例中,当将内容记录到ISO文件时,如果记录应用程序崩溃、没有磁盘空间或出现其他事件,可由文件封装器采用电影片段以避免丢失数据。没有电影片段,由于文件格式要求全部元数据(电影框)写入文件的一连续区域中,因此可能发生数据丢失。而且,在某些实施例中,文件封装器在生成期间能够确定对于可用的存储尺寸可能不存在充足数量的RAM以缓冲电影框。不采用电影片段,文件封装器将不得不执行关闭电影并重新计算电影框内容的耗时任务。
在某些实施例中,利用常规的ISO文件分析算法,电影片段能够同时记录和回放文件。此外在某些实施例中,电影片段的采用需要比渐进下载更少的初始化缓冲持续时间。换句话说,当使用电影片段时的文件的同时接收和回放和初始电影框在与具有相同媒体内容但未采用电影片段构建的文件相比时通常更小。
在某些实施例中,文件封装器101可被配置为采用使moov框的元数据能够被分割为多个片的电影片段,每个片对应于轨道的确定时间段。换句话说,在某些实施例中,文件封装器101可交织文件元数据和媒体数据。因此,能够限制在该实施例中的moov框的尺寸。
在某些如上所述的实施例中,如果mdat框与moov框位于相同文件中,那么文件封装器101可封装mdat框中电影片段的媒体样本。在某些实施例中,可为moof框提供电影片段的元数据。在某些实施例中,moof框包括回放时间的确定时序时间的信息(可位于moov框中)。
在某些实施例中,moov框205表示有效电影,但此外,它包含指示同一文件中后续电影片段的mvex框。电影片段延伸在时间上与moov框205相关的演示。
在moof框中包含的元数据被限定为可包括在moov框中的元数据的子集,且在某些实施例中与电影框不同编码。
在某些实施例中,电影片段框(moof)221包含电影片段标题(mfhd)223和至少一个每个都记录轨道样本的连续运行的轨道片段框(traf)225。轨道片段框(traf)225还包含轨道片段标题框(tfhd)227和至少一个轨道片段运行框(trun)229。轨道片段标题框(tfhd)227指示在轨道片段内部使用的样本描述。样本描述指示所采用的数据引用输入,在该情况中其指向含有电影框并也指向电影片段框的同一文件。在某些实施例中,轨道片段标题框(tfhd)227可进一步指示轨道片段的样本数据的基本字节偏移,其在某些实施例中位于在电影片段框之后的mdat框内部。因此,在某些实施例中,基本字节偏移和轨道运行框指示文件内部样本的确切位置。
在某些实施例中,第一或基本媒体/元数据文件201包含包括至少一个样本232的媒体数据框(mdat)231。每个样本包括基本媒体数据部分(basedep.rep.)235和实现为条件提取NAL单元237的条件数据引用指针或多个指针。每个条件提取NAL单元有条件地指向261增强层文件251的相关从属增强媒体数据部分253。
图6中还示出第二或增强层文件251,其包含至少一个相关的增强媒体部分253,其通过指针261由条件提取NAL单元237引用并位于第一或基本媒体/元数据文件201内部。
接着,文件封装器101可以适当的服务器文件格式将文件输出到HTTP流传输服务器103。在某些实施例中,如上所述适当的服务器文件格式为ISO基本媒体文件格式或包括数据引用特性的衍生。
图2中,通过步骤163示出关于请求的文件确定/文件封装操作。
在某些实施例中,服务器1可包括HTTP流传输服务器103。在某些实施例中,HTTP流传输服务器103可被配置为接收一个或多个媒体演示文件作为输入。根据服务器文件格式对输入文件格式化。
如图1a所示,HTTP流传输服务器103被配置为将要以传输文件格式接口7传送到HTTP流传输客户端107的内容输出。在某些实施例中,传输文件格式与现有的适于文件回放的文件格式兼容。例如在某些实施例中,HTTP流传输服务器被配置为生成与ISO基本媒体文件格式或3GPP文件格式的渐进下载配置文件兼容的文件。在某些实施例中,传输文件格式可与服务器文件格式兼容,并且由此在某些实施例中服务器文件可不经传输文件格式接口7修正而被传输至HTTP流传输客户端107。
在某些实施例中,HTTP流传输服务器103被配置为生成与根据用于文件回放的现有文件格式来格式化的文件相类似的文件。例如,在某些实施例中,HTTP流传输服务器103被配置为生成服务器文件的文件片段,其在某些实施例中可不是单独地用于回放自足。
在某些实施例中,HTTP流传输服务器103被配置为生成要被传输的文件,其与可用于文件回放的现有文件格式兼容,但是文件仅部分传输因而该文件的回放需要处理部分文件的意识和能力。
在某些实施例中,HTTP流传输服务器能以传输文件格式生成文件,其使将传输的文件能够被转换为与用于文件回放的现有文件格式兼容。
例如在某些实施例中,当使用没有动态流传输服务器的常规web服务器时,HTTP流传输服务器103被配置为在网络上输出符合ISO基本媒体文件格式或包括条件数据引用特性的衍生格式的文件。而且,在某些实施例中,当使用没有动态流传输服务器的常规web服务器时,HTTP流传输服务器103被配置为在网络上输出使用片段(例如,作为按照3GPP自适应HTTP流传输或微软的IIS平滑流传输)的传输文件。
由此,在本申请的实施例中,HTTP流传输服务器103可传输根据上述格式化的片段。换句话说,片段可包含条件数据引用指针,其指未被传输的该字节偏移。
图2中通过步骤164示出以传输文件格式的文件输出。
在某些实施例中,系统10可选择性地包括一个或多个HTTP缓存105。在这些实施例中,HTTP缓存105是常规web缓存,其存储HTTP请求和对于HTTP请求的响应以减小带宽使用、服务器负荷以及察觉的延迟。在某些实施例中,HTTP缓存105可确定在前的特定HTTP请求的接收以及响应于HTTP请求的存储,然后可向请求者(HTTP客户端)提供响应,而不必向HTTP流传输服务器103转发请求。
在某些实施例中,客户端1被配置为接收对HTTP请求的响应。在某些实施例中,HTTP流传输客户端107还被配置为从服务器1接受以适当传输文件格式形式的响应数据。在某些实施例中,数据可如上所述经由HTTP缓存105接收。
因此,在某些实施例中,HTTP流传输客户端107被配置为接收媒体演示文件。在某些实施例中,HTTP流传输客户端107还被配置为向文件播放器或某些存储部件输出一个或多个文件。
在某些实施例中,由于增强媒体数据存在于与包括基本媒体数据和文件格式元数据的第一文件分离的第二文件中,可建立两个同步的TCP连接,一个用于获取第一文件而第二个用于获取第二文件。无字节范围的HTTP GET请求可对第一文件发出。在某些实施例中,HTTP流传输客户端可基于位于第一文件的电影框中的比特率和其他信息以及第一文件的接收比特率来估计是否实时接收第二文件。第二文件的诸如比特率信息也可通过其他方式获得,例如从媒体演示说明(MPD)或可伸缩性信息SEI消息。
如果估计能够实时接收整个文件,那么无字节范围的HTTP GET请求可对第二文件发出。HTTP流传输客户端也可基于位于电影框中的信息,例如SVC和MVC样本组描述,来确定可实时接收的第二文件的子集。可发送具有恰当的字节范围的HTTP GET请求以获得第二文件的子集。恰当的字节范围可以基于数据引用指针和其他轨道片段标题来确定。可流水线处理第二文件不同字节范围的多个HTTP GET请求。在某些实施例中,HTTP流传输客户端107可在解码前后监测接收比特率和缓存占用并再估计可实时接收的第二文件的子集。
在图2中通过步骤171示出接收文件的操作。
在某些实施例中,HTTP流传输客户端107进一步被配置为将作为交换文件格式11的文件输出至文件播放器或某些存储部件。交换文件格式11在某些实施例中例如可以是传输文件格式,而在另外一些实施例中可以是用于文件回放的文件格式。在某些实施例中交换文件格式可与服务器文件格式兼容,并且因此如果某些实施例中服务器文件以传输文件格式接口7未作调整而传送至HTTP流传输客户端107,那么所接收到的未经调整的服务器文件可以是交换文件。
在某些实施例中,HTTP流传输客户端107被配置为推测或估计适当的接收文件缓冲时间,以及在该缓冲时间之后允许文件播放器开始媒体提供。在该实施例中,HTTP流传输客户端107不必生成与媒体演示的比特率适应相关的原始请求。在某些实施例中,某些HTTP流传输客户端107工具可监测客户端的演示缓冲状态并生成与比特率适应相关的请求,从而保证不中断的演示提供。
而且,客户端3包括可操作地连接至HTTP流传输客户端107的文件播放器109。在某些实施例中,HTTP流传输客户端107可包括文件播放器。在某些实施例中文件播放器109被配置为解析文件、解码媒体流、并提供解码的媒体流。在某些实施例中,文件播放器109还可存储已接收的文件用于进一步使用并且在该实施例中为文件存储使用交换文件格式。
适当的交换文件格式例如可以是ISO基本媒体文件格式或包括数据引用特性的衍生格式,现有的播放器至少可播放未使用数据引用特性封装到文件中的基本质量内容。在某些实施例中,HTTP流传输客户端执行第二类型文件的转换。
因此,在某些实施例中HTTP流传输客户端107接收第一文件(元数据/基本媒体文件)和至少第二文件的子集(增强层文件),其中以实现连续回放而不中断的速度或比特率接受媒体数据这样的方式确定子集。
因此,在这些实施例中,某些条件数据引用指针可指向未接收的第二文件的这些部分,并由此这些数据不会纳入参考。另外在某些情况中,作为渐进下载客户端的HTTP流传输客户端107可仅接收仅包含基本媒体数据的第一文件。然而,当条件数据引用指针指向的数据被忽略时,渐进下载客户端能够播放基本媒体数据。
因此,在某些实施例中,HTTP流传输客户端107可采用禁用纳入参考的数据标识符数值代替未接收的增强媒体数据的字节范围。
HTTP流传输客户端107和/或文件播放器109在解析时处理由条件数据引用指针指向的数据块。在这些实施例中,HTTP流传输客户端107和/或文件播放器109确定是否存在数据块(即,由于比特率不适合而未被接收),并且在不存在引用的数据块处,忽略条件数据引用指针。如果存在数据块,则HTTP流传输客户端107和/或文件播放器109可纳入参考由条件数据引用指针所引用的样本数据。
不同于其他提取器NAL单元或某些提示轨道结构类型,条件数据引用指针条件为其指向的数据存在。提取器NAL单元和使用纳入参考的数据的提示轨道结构是无条件的,即指向的数据必须存在;反之,文件无效。
图2中,通过步骤173示出播放文件的操作。
关于图7示出根据本发明一些其他实施例的文件封装器101的操作。这些实施例特别适用于生成在单个文件中包含用于向客户端演示的全部比特流的文件结构。如果网络输出量满足或超过全部比特流的比特率,该文件可以渐进地下载并且可不中断地播放。
图8进一步示出根据本申请的这些实施例生成的示例文件。为了简化例子,图中仅存在一种媒体类型,但是典型的多媒体演示可以包含多于一种连续媒体类型,例如能够被处理的音频和视频。
在某些实施例中,文件封装器101被配置为接收来自文件生成器100的基本和增强媒体数据。
图7中通过步骤501示出接收基本和增强媒体数据的操作。
在某些实施例中,元数据封装器305将媒体相关元数据封装在第一文件中。此外,在某些实施例中,基本媒体数据封装器307封装将基本媒体数据封装入第一文件中作为文件的轨道。
图7中,通过步骤503示出在第一文件样本数据中封装基本媒体数据的操作。
另外,增强媒体数据封装器309被配置为在第一文件数据样本内部生成和封装数据引用指针。在某些实施例中,数据引用指针可包括提取器NAL单元。提取器NAL单元被配置为向描述相同可伸缩或多视图流的多轨道提供共享数据的方式,因此不会过度增大文件。数据引用指针耦合到下文描述的增强媒体数据位置的位置。
图7中,通过步骤705示出将数据引用封装在第一文件样本数据中的操作。
接着,在某些实施例中,文件封装器的增强媒体数据封装器309可将增强媒体数据储存于由数据引用指针所指示的位置处的第一文件中。
图7中通过步骤707示出将增强媒体数据封装到由数据引用所引用的第一文件另一样本数据的操作。
而且,在某些实施例中,增强媒体数据封装器309被配置为将另一数据引用指针封装在指向相关基本媒体数据样本位置的第一文件另一样本中。在某些实施例中,另一条件数据引用指针包括另一提取器NAL单元。
图7中,通过步骤709示出将另一数据引用封装在第一文件另一样本数据中的操作。在某些实施例中,图7的步骤709不存在或是可选的。
图8中示出根据本申请这些实施例的简化文件结构。依据文件格式的ISO族,文件201可包含封入分离框,分别为媒体数据(mdat)框231和电影(moov)框205中的媒体数据和元数据。对于可操作的文件,这些框都必定存在。
在某些实施例中,电影框(moov)205包括一个或多个轨道,每个轨道存在于一个轨道框中。
在该例中,没有在电影框设置对样本的引用。换句话说,电影框既不包含样本尺寸框、也不包含程序块偏移框。在该例中,生成两个用于媒体比特流的轨道、基本媒体轨道和增强媒体轨道。实施例中可使用样本描述avc1、avc2、svc1、mvc1、或mvc2用于由现有解析器识别的基本媒体轨道和增强媒体轨道。
在某些实施例中,如图8所示,基本媒体/元数据文件包含电影片段框(moof)221。图8中示出的电影片段框(moof)包含两个轨道片段框(traf)。每个轨道片段框225包括轨道片段标题框(tfhd)和许多轨道片段运行框(trun)。轨道片段运行框指定轨道片段运行的样本的位置。在本例中,所提到的样本位于电影框之后的mdat框中。不同的轨道样本在不同的轨道片段中运行。如果存在多个轨道片段在电影框内部的每个轨道上运行,那么不同轨道的轨道片段可以在mdat框内部交织运行。
在某些实施例中,媒体/元数据文件201包含媒体数据框(mdat)231,其包含在基本媒体轨道中表示SVC的样本232或类似存取单元,并包含两部分:基本层相关演示235和提取器NAL单元237。该实施例中提取器NAL单元237指向或引用263至增强媒体轨道,其包括增强层的NAL单元。增强媒体轨道的样本242也表示SVC存取单元,并包含两部分:提取器NAL单元245和增强媒体数据247,例如dependency_id大于0的相关演示。提取器NAL单元245指向或引用265至基本媒体轨道中所包含的基本层相关演示235。
在该实施例中,传统渐进下载客户端能够接收整个文件,并由此解析提取器NAL单元生成的所有引用。而且,在该实施例中,如果自适应HTTP流传输客户端存储所接收的文件供以后使用,某些实施例中的客户端可通过指示轨道的潜在部分接收并因此与更早的分析器不兼容的新样本描述,例如svcp或mvcp来代替增强数据轨道的样本输入类型。应当知道读取用相同样本类型svcp、mvcp等标记的轨道的文件分析器,某些样本不需包含编码的媒体数据或可不存在,并由此该轨道无需解码。如果存在多个可选轨道,文件分析器不会选择采用样本描述svcp、mvcp等标记的轨道用于解码,而是选择采用样本描述avc1等标记的轨道,其中媒体数据在全部样本中存在。
在某些实施例中,自适应HTTP流传输客户端自适应地接收或确定不接收增强媒体轨道运行的轨道片段。在某些实施例中,自适应HTTP流传输客户端自适应地接收或确定不接收增强媒体轨道运行的轨道片段子集。因此在某些实施例中,客户端可通过由冗余NAL单元代替指向他们的提取器NAL单元、或通过在重构文件内部通过作为零尺寸NAL单元序列解释的零来代替未接收的轨道片段的运行或未接收的轨道片段子集的运行来生成一致的文件。因此,在某些实施例中,当提取器NAL单元引用一个或多个零尺寸NAL单元时,他们所有都被文件分析器或类似的读取、剖析、解码、和/或播放文件忽略。服务器和客户端通常可保留在完整文件(即与服务器文件中相同)内的涉及字节偏移的文件元数据。
在某些实施例中,以丢失部分或采用零尺寸NAL单元或指示分析器的其他元素修补增强媒体数据以忽略由后续数据传输补充的元素这样的方式,由自适应HTTP流传输客户端接收文件。后续数据传输至少涉及文件中丢失或修补的增强媒体数据的那些部分。在文件的最初解码和回放之前,不必进行后续数据传输。
而且,在某些实施例中,服务器格式文件可设置为在其中基于相同可伸缩媒体流形成一个或多个演示。该服务器格式文件使增强媒体数据的不同子集能够被传输。在某些实施例中,段持续时间可由每一对电影片段框和随后的mdat框来确定。段由电影片段框和后面的mdat框的对于不同演示而不同的子集形成。上面示出的文件封装器被配置为以分层形式设置每个mdat框中的媒体数据,由此基本媒体数据首先出现,随后是增强媒体数据,潜在地再后是另一增强媒体数据,等等。
在某些实施例中,生成例如MPD文件的清单文件以指示每个演示的特性。在该实施例中HTTP流传输服务器将片段的URL(如由MPD文件所允许的)转换为包含相应电影片段框和随后的mdat框子集的字节范围。
接着,该实施例中的HTTP流传输客户端和/或文件播放器被配置为与本申请其他实施例类似地处理条件数据引用指针,换句话说不接收数据引用指针所引用的数据,就忽略该数据引用指针。
在某些实施例中,如何将传输文件格式的片段转换为交换文件的指示包含在例如MPD文件的清单文件中。在本申请的某些实施例中,该指示可被设置为指示后续处理用于生成交换文件的数值。可不完整地接受片段的mdat框,且段的轨道片段运行框可指向未被接收的mdat框内部的字节偏移。该实施例中,可通过向mdat框的未接收字节偏移写入预定值来首先修补mdat框。预定值指示媒体数据不存在。对于AVC、SVC、和MVC轨道,预设值是0,解释为零尺寸NAL单元。然后,连接具有修补mdat框的段以形成变换文件。
下表表示如3GPP TS26.234v9.2.0的条款12.2.5.2的表2中详细说明的媒体演示说明的语义,还包含根据用下划线类型指示的实施例的文件重构字段。符号:M=强制,O=可选,OD=预设值可选,CM=有条件强制。
Figure BDA00002934235300421
Figure BDA00002934235300431
Figure BDA00002934235300441
Figure BDA00002934235300451
Figure BDA00002934235300461
Figure BDA00002934235300471
Figure BDA00002934235300481
Figure BDA00002934235300491
Figure BDA00002934235300501
在增强媒体数据存在于相同的文件作为基本媒体数据和文件格式元数据的该实施例中,通常在HTTP服务器和客户端之间建立一个或两个TCP连接。在使用两个TCP连接的某些实施例中,通常使用一个TCP连接以下载基本媒体数据和文件格式元数据,而另一TCP连接通常用于下载增强媒体数据。具有字节范围的流水线HTTP GET请求通常用在TCP连接两者中。估计能够实时接收的增强媒体数据的子集两者,并与前述类似地发出HTTP GET请求。
在使用一个TCP连接的某些实施例中,如前所述估计能够实时接收的增强媒体数据的子集。发出流水线HTTP GET请求以得到文件格式元数据、基本媒体数据和增强媒体数据。单个HTTP GET请求在一个或多个数据类型间变化:文件格式元数据、基本媒体数据或增强媒体数据。流水线HTTP GET请求的数目通常保持适中,以用来当期望传输媒体比特率变化(并因此请求字节范围)时避免TCP连接终止。
关于图9示出根据本申请的某些补充实施例的文件封装器101的操作。
图10示出根据本申请的这些补充实施例生成的示例文件。为了简化例子,图中仅存在一种媒体类型,虽然典型的多媒体演示包含多于一种连续的媒体类型,例如可生成音频和视频。
在某些实施例中,文件封装器101被配置为接收来自文件生成器100的基本和增强媒体数据。
图9中,通过步骤501示出接受基本和增强媒体数据的操作。
在某些实施例中,元数据封装器305可将与媒体相关的元数据封装在第一文件中。而且,在某些实施例中,基本媒体数据封装器307将基本媒体数据作为文件轨道封装在第一文件中。
图9中,通过步骤503示出将基本媒体数据封装在第一文件中样本数据中的操作。
此外,增强媒体数据封装器309被配置为在第一文件样本数据内生成并封装条件数据引用指针。在某些实施例中,条件数据引用指针可包含类似指定为提取器NAL单元语法的条件提取器NAL单元的语法。同一比特流存在至少两个轨道:一个轨道包括比特流的基本演示,例如基本层或基本视图,另一轨道包括比特流的增强演示或整个比特流。
来自增强演示轨道的增强数据被有条件地提取以包含在基本演示中。换句话说,基本演示样本包含条件提取器NAL单元,其指向含有增强显示的轨道。
在某些实施例中,在条件提取器NAL单元中的样本对准在解码时完成,即仅使用时间-样本表和关于轨道片段标题的信息,随后是样本数的计数偏移。
在某些实施例中,条件提取器NAL单元的语法指定如下:
Figure BDA00002934235300521
语法元素的语义与提取器NAL单元的相应语法元素的语义相同。
在某些实施例中,以类似于图6的方式,增强演示样本位于第二文件中。增强演示轨道元数据位于与图6所示的演示的电影框和轨道片段框相同的文件中。
增强演示样本通常包括引用使用一个或多个提取器NAL单元的样本的基本相关演示或基本视图。
图9中,通过步骤505示出将条件数据引用封装在第一文件样本数据中的操作。
接着,在某些实施例中,文件封装器的增强媒体数据封装器309可在有条件数据引用指针所指示的位置处将增强媒体数据存储在第二文件中。
图9中,通过步骤507示出将增强媒体数据封装在由条件数据引用所引用的第二文件另一样本数据中的操作。
而且,在这些实施例中,增强媒体数据封装器309被配置为将数据引用指针封装在指向相关的基本媒体数据样本位置的第一文件另一样本中。在某些实施例中,数据引用指针包括提取器NAL单元。
图9中,通过步骤909示出将数据引用封装在第一文件另一样本数据中的操作。
图10中示出根据本申请的这些实施例的简化文件结构。如图10中示出的文件结构不同于图6中示出的文件结构,其中增强层文件251中的每个样本271包含增强媒体数据演示253,其从条件数据引用237指向267,并还包括将269指向基本媒体数据235的提取器NAL单元273。
关于图11示出根据本申请的某些补充实施例的文件封装器101的操作。
图12图示出根据本申请的这些补充实施例生成的示例文件。为了简化例子,图中仅存在一种媒体类型,但是典型多媒体演示包含多于一种连续的媒体类型,例如可生成的音频和视频。
在某些实施例中,文件封装器101被配置为接收来自文件生成器100的基本和增强媒体数据。
图11中,通过步骤501示出接受基本和增强媒体数据的操作。
基本媒体数据封装器307将基本媒体数据作为文件轨道封装在第一文件(基本层文件)中。
图11中,通过步骤1103示出将基本媒体数据封装在第一文件样本数据中的操作。
而且,增强媒体数据封装器309被配置为在第一文件样本数据内生成和封装条件数据引用指针。在某些实施例中,条件数据引用指针可包含类似地指定提取器NAL单元语法的条件提取器NAL单元语法。
图11中,通过步骤1105示出将条件数据引用封装在第一文件样本数据中的操作。
接着,在某些实施例中,文件封装器的增强媒体数据封装器309可将增强媒体数据存储在第二文件(增强层文件或经增强的层文件)中由条件数据引用指针所指示的位置处。
图11中,通过步骤1107示出将增强媒体数据封装在由条件数据引用所引用的第二文件另一样本数据中的操作。
在某些实施例中,元数据封装器305可将包括指示相关基本层和增强层文件位置的dref字段的元数据封装在元数据文件中
图12中示出根据本申请这些实施例的简化文件结构。如图10中示出的文件结构与图6中示出的文件结构的不同在于基本层的每个样本现在位于与元数据文件分离的基本层文件中。
在某些实施例中,增强媒体轨道的样本数据不需表示为可解码样本,即使其与可解码样本类似地格式化,例如AVC/SVC/MVC长度字段和NAL单元对。换句话说,基本媒体数据不必参考包含在样本中。当基本媒体数据未纳入参考在增强媒体轨道样本中时,在该实施例中能节约一些存储空间和传输带宽。该不可解码轨道的样本描述类型可以不同于现有的样本描述类型。
这些实施例可应用于视频以外的其它媒体类型。例如,本发明可用于音频,例如MPEG-4高级音频编码(AAC)及其扩展。不同的可伸缩性类型可应用于音频编码并与本发明一起使用,例如通道数、扩展带宽和质量可伸缩性。
实施例还可应用于利用例如提取器NAL单元的数据引用指针隐含而非明显地完成存取单元重构的文件结构。在隐含存取单元重构中,关于轨道相关性的信息可用于确定来自不同轨道的样本数据放置在存取单元中的顺序。例如轨道参数“dpnd”用于指示在MPEG-4音频轨道之间的相关性。如果轨道类型为MP4AudioEnhancementSampleEntry,那么“dpnd”轨道参数是强制性的并指示强相关性,即含有引用的轨道不能没有引用轨道而被解码。其它信息也可用于确定样本数据放置在存取单元中的顺序。在MVC文件格式中,允许通过样本描述的解码器配置记录的标记explicit_au_track来指示存取单元是否需要明显或隐含地重构。如果隐含存取单元重构采用MVC,NAL单元必须以在MVC规范中所允许的次序进行排序。当本发明采用隐含完成存取单元重构的文件结构时,未接收的增强媒体轨道的样本可用指示这些样本的增强媒体数据不存在的元素所代替,并由此必须在隐含存取单元重构中忽略。例如,在MVC中,数值0可用于所指示的零长度样本。
本申请的实施例还可应用于存在超过一个含有增强媒体数据的比特流子集的文件结构。例如,SVC比特流的每个dependency_id值可致力于其自身的增强媒体数据的比特流子集。
应当理解用户设备拟覆盖任意适合类型的无线用户设备,例如移动电话、便携式数据处理设备或便携式web浏览器。
通常,本发明的各种实施例可以硬件或专用电路、软件、逻辑或其任意组合实现。例如,某些方面可以硬件实现,而其他方面可以可由控制器、微处理器或其他计算设备执行的固件或软件实现,虽然本发明并未对其作出限制。本发明的各方面可作为方框图、流程图、或采用其他图示演示图示和描述。很好理解此处描述的这些框图、装置、系统、技术或方法可以作为非限制性示例,以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备、或其组合来实现。
因此,服务器1和/或客户端3的至少某些实施例可以是包含至少一个处理器和至少一个包括计算机程序代码的存储器的装置,至少一个存储器和计算机程序代码被配置为执行图2、4、5、7、9、11和/或类似中的一个或多个操作。
本申请的实施例可由移动设备的数据处理器可执行的计算机软件来实现,例如以处理器实体、或由硬件、或由软件和硬件的组合实现。此外在这方面还应当注意到,如附图中的逻辑流程的任何方框可代表程序步骤、或互连的逻辑电路、方框和功能、或程序步骤和逻辑电路、方框和功能的组合。
因此,服务器1和/或客户端3的至少某些实施例可以是用指令解码的计算机可读媒体,该指令当由计算机执行时完成图2、4、5、7、9、11和/或类似的一个或多个操作。
存储器可以是适用于本地技术环境的任意类型,且可利用任意适合的数据存储技术来实现,例如基于半导体的存储器设备、磁性存储设备和系统、光学存储器设备和系统、固定存储器和可移动存储器。数据处理器可以是适用于本地技术环境的任意类型,并且可包括一个或多个通用计算机、专用计算机、微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、门级电路和基于多核处理器架构的处理器作为非限制示例。
本发明的实施例可以例如集成电路模块的各种组件实施。集成电路的设计大体上是一个高度自动化的过程。复杂和有效的软件工具可用于将逻辑级别设计转化为可用来在半导体基底上蚀刻和形成的半导体电路设计。
如California的Mountain View的Synopsys有限公司和California的San Jose的Cadence Design提供的那些程序,在半导体芯片上利用已充分建立的设计规则以及预存储的设计模块库自动布线和放置器件。半导体电路设计一旦完成,以标准化电子格式的合成设计(例如Opus,GDSII等)可传送给半导体制造工厂或“fab”制造。
如在本申请中所使用的,术语“电路”指所有以下内容:
(a)仅有硬件的电路实现(例如仅以模拟和/或数字电路实现),和
(b)电路和软件(和/或固件)的结合,例如:(i)处理器的组合或(ii)部分处理器/软件(包括数字信号处理器)、软件和共同工作的存储器以使例如移动电话或服务器的装置执行各种功能,和
(c)电路,例如微处理器或部分微处理器,其需要用于操作的软件或固件,即使软件或固件并非在物理上存在。
“电路”的定义适用于本申请中所有该术语的使用,包括任何权利要求。作为本申请中使用的其它例子,术语“电路”也将覆盖主要为处理器(或多处理器)或部分处理器和其(或它们的)随附软件和/或固件的实现。术语“电路”还将覆盖,例如如果可应用于特定权利要求元素,基带集成电路或用于移动电话的应用处理器集成电路或类似的服务器中的集成电路、手机网络设备或其它网络设备。
前面的描述通过典型和非限制性例子提供了本申请典型实施例的全面和详细的描述。然而,当结合附图和所附权利要求阅读时,基于前述描述的各种修改和改变对于相关领域的技术人员来说是显而易见的。然而,本发明教导的所有这样和类似的修改将仍然落入在如所附权利要求限定的本申请的范围内。

Claims (44)

1.一种方法,包括:
确定至少第一信号和相关联的第二信号;
将所述第一信号存储在第一文件中;
在所述第一文件中并与所述第一信号相关联地生成位置引用指针;以及
在由所述引用指针所指示的位置处存储与所述第一信号相关联的所述第二信号。
2.如权利要求1所述的方法,其中所述第一信号被配置为可独立于所述第二信号解码。
3.如权利要求1和2所述的方法,其中所述第一信号是基本媒体演示,并且所述第二信号是与所述基本媒体演示相关联的增强媒体演示。
4.如权利要求3所述的方法,其中所述增强媒体演示是如下的至少一个:
时间分辨率增强的媒体演示;
更大量视图增强的媒体演示;
空间分辨率增强的媒体演示;和
质量增强的媒体演示。
5.如权利要求1至4所述的方法,其中所述位置包括另一文件中的位置,其中所述引用指针包括条件提取单元。
6.如权利要求1至4所述的方法,其中所述位置包括所述第一文件中的位置,其中所述引用指针包括提取单元。
7.如权利要求1至6所述的方法,还包括在由所述引用指针所指示的位置处生成指向所述第一文件中的所述第一信号位置的另一引用指针。
8.如权利要求7所述的方法,其中所述另一引用指针包括提取单元。
9.如权利要求1至8所述的方法,还包括在所述第一文件中存储与所述第一信号和所述第二信号相关联的元数据。
10.如权利要求1至9所述的方法,还包括在另一文件中存储与所述第一信号和所述第二信号相关联的元数据,其中所述元数据包括指向所述第一信号和所述第二信号的位置的指针。
11.如权利要求1至10所述的方法,还包括:
确定网络带宽;在网络上传输所述第一文件和至少所述第二信号的子集。
12.如权利要求1至11所述的方法,还包括:
生成修补指示器,该修补指示器被配置为指示解码器以连接所述第一信号和所述第二信号。
13.一种方法,包括:
接收包括第一信号和位置引用指针的至少第一文件;
基于所述第一信号生成至少第一可播放信号。
14.如权利要求13所述的方法,其中所述第一信号包括基本媒体演示。
15.如权利要求13所述的方法,还包括:
确定包括第二信号的位置内容,所述第二信号包括增强媒体演示;和
基于所述第一信号和所述第二信号生成所述第一可播放信号。
16.如权利要求15所述的方法,其中所述增强媒体演示是下述中的至少一个:
时间分辨率增强的媒体演示;
更大量视图增强的媒体演示;
空间分辨率增强的媒体演示;以及
质量增强的媒体演示。
17.如权利要求13至16所述的方法,其中所述位置包括另一文件中的位置,其中所述引用指针包括条件提取单元。
18.如权利要求13至16所述的方法,其中所述位置包括所述第一文件中的位置,其中所述引用指针包括提取单元。
19.如权利要求13至18所述的方法,还包括在由所述引用指针所指示的位置处确定指向所述第一文件中的所述第一信号位置的另一引用指针。
20.如权利要求19所述的方法,其中所述另一引用指针包括提取单元。
21.如权利要求13至20所述的方法,还包括在所述第一文件中确定与至少所述第一信号相关联的元数据。
22.如权利要求13至20所述的方法,还包括在另一文件中确定与所述第一信号相关联的元数据,其中所述元数据包括指向所述第一信号的位置的指针。
23.一种装置,包括至少一个处理器和至少一个包括计算机程序代码的存储器,所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置至少执行:
确定至少第一信号和相关联的第二信号;
在第一文件中存储所述第一信号;
在所述第一文件中并与所述第一信号相关联地生成位置引用指针;和
在由所述引用指针所指示的位置处存储与所述第一信号相关联的所述第二信号。
24.如权利要求23所述的装置,其中所述第一信号被配置为可独立于所述第二信号解码。
25.如权利要求23和24所述的装置,其中所述第一信号是基本媒体演示,并且所述第二信号是与所述基本媒体演示相关联的增强媒体演示。
26.如权利要求25所述的装置,其中所述增强媒体演示是以下中的至少一个:
时间分辨率增强的媒体演示;
更大量视图增强的媒体演示;
空间分辨率增强的媒体演示;和
质量增强的媒体演示。
27.如权利要求23至26所述的装置,其中所述位置包括另一文件中的位置,其中所述引用指针包括条件提取单元。
28.如权利要求23至26所述的装置,其中所述位置包括所述第一文件中的位置,其中所述引用指针包括提取单元。
29.如权利要求23至28所述的装置,还使其执行在由所述引用指针所指示的位置处生成指向所述第一文件中的所述第一信号位置的另一引用指针。
30.如权利要求29所述的装置,其中所述另一引用指针包括提取单元。
31.如权利要求23至30所述的装置,还使其执行在所述第一文件中存储与所述第一信号和所述第二信号相关联的元数据。
32.如权利要求23至31所述的装置,还使其执行在另一文件中存储与所述第一信号和所述第二信号相关联的元数据,其中所述元数据包括指向所述第一信号和所述第二信号的位置的指针。
33.如权利要求23至32所述的装置,还使其执行:
确定网络带宽;和
在网络上传输所述第一文件和至少所述第二信号的子集。
34.如权利要求23至33所述的装置,还使其执行:
生成修补指示器,该修补指示器被配置为指示解码器以连接所述第一信号和所述第二信号。
35.一种装置,包括至少一个处理器和至少一个包括计算机程序代码的存储器,所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装置至少执行:
接收包括第一信号和位置引用指针的至少第一文件;
基于所述第一信号生成至少第一可播放信号。
36.如权利要求35所述的装置,其中所述第一信号包括基本媒体演示。
37.如权利要求36所述的装置,还使其执行:
确定包括第二信号的位置内容,所述第二信号包括增强媒体演示;和
基于所述第一信号和所述第二信号生成所述第一可播放信号。
38.如权利要求37所述的装置,其中所述增强媒体演示是以下中的至少一个:
时间分辨率增强的媒体演示;
更大量视图增强的媒体演示;
空间分辨率增强的媒体演示;和
质量增强的媒体演示。
39.如权利要求35至38所述的装置,其中所述位置包括另一文件中的位置,其中所述引用指针包括条件提取单元。
40.如权利要求35至38所述的装置,其中所述位置包括所述第一文件中的位置,其中所述引用指针包括提取单元。
41.如权利要求35至30所述的设备,还使其执行在由所述引用指针所指示的位置处确定指向所述第一文件中的所述第一信号位置的另一引用指针。
42.如权利要求41所述的装置,其中所述另一引用指针包括提取单元。
43.如权利要求35至42所述的装置,还使其执行在所述第一文件中确定与至少所述第一信号相关联的元数据。
44.如权利要求35至42所述的装置,还使其执行在另一文件中确定与所述第一信号相关联的元数据,其中所述元数据包括指向所述第一信号的位置的指针。
CN201080069167.3A 2010-07-20 2010-07-20 一种流媒体传输装置 Expired - Fee Related CN103119934B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2010/053309 WO2012010928A1 (en) 2010-07-20 2010-07-20 A media streaming apparatus

Publications (2)

Publication Number Publication Date
CN103119934A true CN103119934A (zh) 2013-05-22
CN103119934B CN103119934B (zh) 2017-02-22

Family

ID=45496564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080069167.3A Expired - Fee Related CN103119934B (zh) 2010-07-20 2010-07-20 一种流媒体传输装置

Country Status (4)

Country Link
US (1) US9769230B2 (zh)
EP (1) EP2596633B1 (zh)
CN (1) CN103119934B (zh)
WO (1) WO2012010928A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105359536A (zh) * 2013-07-17 2016-02-24 索尼公司 内容供给装置、内容供给方法、程序、终端装置、以及内容供给系统
CN106559573A (zh) * 2016-11-11 2017-04-05 努比亚技术有限公司 移动终端及多媒体数据处理方法

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2406954A1 (en) * 2009-03-13 2012-01-18 Telefonaktiebolaget L M Ericsson (PUBL) Technique for bringing encoded data items into conformity with a scalable coding protocol
CA2786812C (en) * 2010-01-18 2018-03-20 Telefonaktiebolaget L M Ericsson (Publ) Method and arrangement for supporting playout of content
KR20120034550A (ko) 2010-07-20 2012-04-12 한국전자통신연구원 스트리밍 컨텐츠 제공 장치 및 방법
US9467493B2 (en) 2010-09-06 2016-10-11 Electronics And Telecommunication Research Institute Apparatus and method for providing streaming content
KR101739272B1 (ko) * 2011-01-18 2017-05-24 삼성전자주식회사 멀티미디어 스트리밍 시스템에서 컨텐트의 저장 및 재생을 위한 장치 및 방법
US9860293B2 (en) * 2011-03-16 2018-01-02 Electronics And Telecommunications Research Institute Apparatus and method for providing streaming content using representations
US8977778B2 (en) * 2011-08-29 2015-03-10 Latakoo, Inc. Compressing, transcoding, sending, and retrieving video and audio files in a server-based system and related systems and methods
KR20130107861A (ko) * 2012-03-23 2013-10-02 한국전자통신연구원 인터 레이어 인트라 예측 방법 및 장치
US9438883B2 (en) * 2012-04-09 2016-09-06 Intel Corporation Quality of experience reporting for combined unicast-multicast/broadcast streaming of media content
US9912941B2 (en) 2012-07-02 2018-03-06 Sony Corporation Video coding system with temporal layers and method of operation thereof
US10110890B2 (en) 2012-07-02 2018-10-23 Sony Corporation Video coding system with low delay and method of operation thereof
US9444794B2 (en) * 2012-07-03 2016-09-13 Futurewei Technologies, Inc. Low-latency secure segment encryption and authentication interface
US9154785B2 (en) * 2012-10-08 2015-10-06 Qualcomm Incorporated Sub-bitstream applicability to nested SEI messages in video coding
US9973559B2 (en) * 2013-05-29 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for presenting content streams to a client device
WO2015054634A2 (en) * 2013-10-11 2015-04-16 Vid Scale, Inc. High level syntax for hevc extensions
JP6239102B2 (ja) * 2013-10-25 2017-11-29 華為技術有限公司Huawei Technologies Co.,Ltd. アダプティブ・ストリーミングにおいてリプレゼンテーション(Representation)を関連付けるシステムおよび方法
US20150189097A1 (en) * 2013-12-31 2015-07-02 Alcatel-Lucent Usa Inc. Vectored charging data record (cdr) reconciliation
JP2015136057A (ja) * 2014-01-17 2015-07-27 ソニー株式会社 通信装置、通信データ生成方法、および通信データ処理方法
DE102014113430A1 (de) * 2014-09-17 2016-03-17 Bundesdruckerei Gmbh Verteilte Datenspeicherung mittels Berechtigungstoken
EP3248350B1 (en) * 2015-01-23 2018-04-04 Telefonaktiebolaget LM Ericsson (publ) Transmission resource distribution for streaming of variable bitrate encoded media data
US10412138B2 (en) 2015-03-02 2019-09-10 Qualcomm Incorporated Indication for partial segment
US10659507B2 (en) * 2015-03-02 2020-05-19 Qualcomm Incorporated Indication for partial segment
US10749930B2 (en) 2015-03-02 2020-08-18 Qualcomm Incorporated Indication for partial segment
GB2538998A (en) * 2015-06-03 2016-12-07 Nokia Technologies Oy A method, an apparatus, a computer program for video coding
GB2538997A (en) * 2015-06-03 2016-12-07 Nokia Technologies Oy A method, an apparatus, a computer program for video coding
US20160373771A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Design of tracks and operation point signaling in layered hevc file format
US10638179B2 (en) * 2015-08-06 2020-04-28 At&T Intellectual Property I, L.P. Content insertion in streaming media content
US10771843B2 (en) 2015-12-15 2020-09-08 Telefonaktiebolaget Lm Ericsson (Publ) Media distribution with sample variants for normalized encryption
CN108605152B (zh) * 2016-02-09 2021-07-16 索尼公司 发送装置、发送方法、接收装置和接收方法
GB2549997B (en) * 2016-04-19 2019-07-03 Cisco Tech Inc Management of content delivery in an IP network
US10432686B1 (en) 2016-06-13 2019-10-01 Amazon Technologies, Inc. Streaming media file management
CN106331853B (zh) * 2016-08-31 2019-10-25 福建星网视易信息系统有限公司 多媒体解封装方法及装置
GB2560921B (en) * 2017-03-27 2020-04-08 Canon Kk Method and apparatus for encoding media data comprising generated content
FR3070566B1 (fr) * 2017-08-30 2020-09-04 Sagemcom Broadband Sas Procede de recuperation d'un fichier cible d'un logiciel d'exploitation et dispositif d'utilisation
US11695817B2 (en) 2019-03-20 2023-07-04 Qualcomm Incorporated Methods and apparatus to facilitate using a streaming manifest including a profile indication
CN117834916A (zh) 2020-05-22 2024-04-05 字节跳动有限公司 访问单元中图片信息的信令
CN115668929A (zh) * 2020-05-22 2023-01-31 字节跳动有限公司 视频子比特流提取过程中的sei消息处理
CN117528004A (zh) 2020-06-09 2024-02-06 字节跳动有限公司 多层视频比特流的子比特流提取
GB2617048B (en) * 2021-01-06 2024-10-23 Canon Kk Method and apparatus for encapsulating uncompressed images and uncompressed video data into a file

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136457A1 (en) * 2004-11-29 2006-06-22 Park Seung W Method for supporting scalable progressive downloading of video signal
US20070022215A1 (en) * 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
CN101459847A (zh) * 2007-12-13 2009-06-17 联发科技股份有限公司 编码器、解码器、视频帧编码方法及比特流解码方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7519274B2 (en) * 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US8472792B2 (en) * 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US20060153300A1 (en) * 2005-01-12 2006-07-13 Nokia Corporation Method and system for motion vector prediction in scalable video coding
EP1869888B1 (en) * 2005-04-13 2016-07-06 Nokia Technologies Oy Method, device and system for effectively coding and decoding of video data
US9635396B2 (en) * 2005-10-11 2017-04-25 Nokia Technologies Oy System and method for efficient scalable stream adaptation
WO2007080223A1 (en) * 2006-01-10 2007-07-19 Nokia Corporation Buffering of decoded reference pictures
US20070230564A1 (en) * 2006-03-29 2007-10-04 Qualcomm Incorporated Video processing with scalability
US20080013623A1 (en) * 2006-07-17 2008-01-17 Nokia Corporation Scalable video coding and decoding
US20080095228A1 (en) * 2006-10-20 2008-04-24 Nokia Corporation System and method for providing picture output indications in video coding
RU2426267C2 (ru) * 2007-01-08 2011-08-10 Нокиа Корпорейшн Усовершенствованное межуровневое предсказание для расширенной пространственной масштабируемости при кодировании видеосигнала
US8976871B2 (en) * 2009-09-16 2015-03-10 Qualcomm Incorporated Media extractor tracks for file format track selection
EP2580920A1 (en) 2010-06-14 2013-04-17 Thomson Licensing Method and apparatus for encapsulating coded multi-component video
US20140254681A1 (en) * 2013-03-08 2014-09-11 Nokia Corporation Apparatus, a method and a computer program for video coding and decoding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136457A1 (en) * 2004-11-29 2006-06-22 Park Seung W Method for supporting scalable progressive downloading of video signal
US20070022215A1 (en) * 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
CN101459847A (zh) * 2007-12-13 2009-06-17 联发科技股份有限公司 编码器、解码器、视频帧编码方法及比特流解码方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105359536A (zh) * 2013-07-17 2016-02-24 索尼公司 内容供给装置、内容供给方法、程序、终端装置、以及内容供给系统
US10530710B2 (en) 2013-07-17 2020-01-07 Saturn Licensing Llc Content supply device, content supply method, program, terminal device, and content supply system
US11075855B2 (en) 2013-07-17 2021-07-27 Saturn Licensing Llc Content supply device, content supply method, program, terminal device, and content supply system
CN106559573A (zh) * 2016-11-11 2017-04-05 努比亚技术有限公司 移动终端及多媒体数据处理方法
CN106559573B (zh) * 2016-11-11 2019-09-06 努比亚技术有限公司 移动终端及多媒体数据处理方法

Also Published As

Publication number Publication date
CN103119934B (zh) 2017-02-22
EP2596633A4 (en) 2014-01-15
US20130191550A1 (en) 2013-07-25
WO2012010928A1 (en) 2012-01-26
EP2596633B1 (en) 2016-11-23
US9769230B2 (en) 2017-09-19
EP2596633A1 (en) 2013-05-29

Similar Documents

Publication Publication Date Title
CN103119934A (zh) 一种流媒体传输装置
CN102986218B (zh) 用于串流视频数据的视频切换
CN105744295B (zh) 提供用于串流传输视频数据的序列数据集
RU2434277C2 (ru) Запись потока мультимедийных данных в трек указаний о приеме контейнерного медиафайла
CN102132562B (zh) 用于轨道和轨道子集归组的方法和设备
CN100419748C (zh) 一种计算方法和采用该方法的装置和系统
TWI676387B (zh) 多層位元流之檔案中之參數集信令
RU2541155C2 (ru) Размещение фрагментов субтрека для потоковой передачи видеоданных
KR101620151B1 (ko) 클라이언트와, 콘텐트 생성기 엔티티 및 미디어 스트리밍을 위한 이들의 방법
CN103782601A (zh) 用于视频编码和解码的方法和设备
TWI699115B (zh) 用於視訊之改良式限制方案設計
US20030163781A1 (en) Method and apparatus for supporting advanced coding formats in media files
US20060233247A1 (en) Storing SVC streams in the AVC file format
TWI482498B (zh) 媒體檔案之多重解碼時間發訊技術
CN108605168A (zh) 在媒体文件中虚拟现实视频的存储
US20040167925A1 (en) Method and apparatus for supporting advanced coding formats in media files
CN107431810A (zh) 用于图像编码和解码的装置、方法和计算机程序
CN109792567A (zh) 用于发送遗失或损坏视频数据信号的系统及方法
CN103069799A (zh) 发信号通知用于多路复用视频分量的数据
US20030163477A1 (en) Method and apparatus for supporting advanced coding formats in media files
JP2013532441A (ja) 符号化マルチコンポーネント・ビデオをカプセル化する方法および装置
KR20130107266A (ko) 코딩된 다중 성분 비디오를 캡슐화하는 방법 및 장치
WO2023194816A1 (en) Method and apparatus for tracking group entry information
JP2013534101A (ja) 符号化マルチコンポーネント・ビデオをカプセル化する方法および装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20151229

Address after: Espoo, Finland

Applicant after: Technology Co., Ltd. of Nokia

Address before: Espoo, Finland

Applicant before: Nokia Oyj

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170222

Termination date: 20180720

CF01 Termination of patent right due to non-payment of annual fee