CN102318348B - 数据流的块划分 - Google Patents

数据流的块划分 Download PDF

Info

Publication number
CN102318348B
CN102318348B CN201080008019.0A CN201080008019A CN102318348B CN 102318348 B CN102318348 B CN 102318348B CN 201080008019 A CN201080008019 A CN 201080008019A CN 102318348 B CN102318348 B CN 102318348B
Authority
CN
China
Prior art keywords
data flow
block
described data
piece
stream
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.)
Expired - Fee Related
Application number
CN201080008019.0A
Other languages
English (en)
Other versions
CN102318348A (zh
Inventor
P·帕克扎得
M·G·卢比
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN102318348A publication Critical patent/CN102318348A/zh
Application granted granted Critical
Publication of CN102318348B publication Critical patent/CN102318348B/zh
Expired - Fee Related 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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • 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
    • H04L65/70Media network packetisation
    • 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/80Responding to QoS
    • 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/4383Accessing a communication channel
    • H04N21/4384Accessing a communication channel involving operations to reduce the access time, e.g. fast-tuning for reducing channel switching latency

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种用于服务从发射机到接收机的数据流的方法包括:确定数据流的底层结构;确定至少一个目标,所述至少一个目标选自以下各项构成的组:(1)根据该底层结构来减小接收机首次开始从发射机接收数据流的时间与接收机能够开始不中断地消费数据流的块的时间之间的启动延迟,(2)减小为发送该数据流所需要的传输带宽,和(3)确保数据流的块满足预定的块约束;以及遵照该至少一个目标和底层结构来传送数据流的块。

Description

数据流的块划分
相关申请的交叉引用
本申请要求2009年2月13日提交的题为“Optimal Block PartitioningMethods for a Data Stream(用于数据流的最优块划分方法)”的美国临时申请No.61/152,551的权益,该临时申请被转让给本申请受让人并出于所有目的通过援引明确纳入于此。
背景
本公开涉及媒体或数据的流送,尤其涉及块划分。
在流送应用中,能够以最小的延迟量来使用收到数据往往是关键的。例如,在流送媒体时,接收机需要能够尽快开始播放媒体,并且不应当在该流中由于数据不足的可预见事件而稍后中断播放。流送应用中的另一重要约束是需要最小化或减小用于发送该流的传输带宽。这种需要可能出现,因为例如可用带宽是有限的,在较高带宽处发送是较昂贵的,或者竞争的数据流共享可用带宽。
在许多流送应用中,数据流具有确定如何在接收机处消费该数据流的底层结构。例如,在视频流送中,数据流可包括数据帧序列。每一帧中的数据被用来在特定的时间点处显示视频帧,其中显示视频帧被认为是在消费数据流。对于高效率的视频压缩,数据帧可依赖于显示相似外观的视频帧的其他数据帧。帧数据的发送次序可不同于这些帧的显示次序,即帧数据通常是在发送了该帧直接和间接依赖的所有帧数据之后才发送的。为了在这些类型的流送应用中提供对数据流不中断的消费,接连视频帧的显示可能需要间隔非常固定的时间区间(例如,每秒24帧),并且流中为显示帧所需要的所有数据需要在该帧的显示时间之前抵达接收机。因此,与接收机处的数据消费模型相组合的数据流的底层结构确定数据需要何时抵达接收机以不中断地消费数据流。
在流送应用中,将原始数据流划分成块往往是有利的。例如,在具有分组丢失的链路上进行流送时,前向纠错(FEC)码可被应用于每个块以提供对分组丢失或错误的保护。作为另一示例,加密方案可被应用于每个块以保护流在暴露链路上的传输。在此类情况下,将流划分成满足某些块目标的块是有利的,例如,在应用FEC时,能够以将附加带宽用于FEC传输的代价来提供最大保护,或者在应用加密时,能够分散对接收机处的解密的处理要求。
在这些应用中,数据流在接收机处在全部块的诸单元中可供消费是常见的情形。即,直到包括块的所有数据在接收机处都可用,该块内的数据在接收机处才可供消费。因此,块划分方法可能影响为达成数据流的不中断消费以及数据流的传输和消费的其他方面所需要的启动延迟和传输带宽。
所需要的是满足块目标而同时达成最小启动延迟并使用最小传输带宽来达成数据流的不中断消费的块划分方法。
在一些流送应用中,接收机可能需要能够从流内的数个起始点中的任何一个起始点加入和开始消费数据流。因此,还需要满足以上目标并且还允许接收机从流内的数个起始点中的任何一个起始点开始消费数据流的块划分方法。
概述
根据本公开的用于服务从发射机到接收机的数据流的示例性方法包括:确定数据流的底层结构;确定至少一个目标,所述至少一个目标选自以下各项构成的组:(1)根据底层结构来减小接收机首次开始从发射机接收数据流的时间与接收机能够开始不中断地消费数据流的块的时间之间的启动延迟,(2)减小为发送数据流所需要的传输带宽,和(3)确保数据流的块满足预定的块约束;以及遵照该至少一个目标和底层结构来传送数据流的块。
此类方法的实施例可包括特征,其中预定的块约束包括每个块的大小大于给定的最小块大小且小于给定的最大块大小的约束。
一种用于确定用于服务从发射机到接收机的比特数据流的块划分的示例性方法包括:将数据流的第一块的起始位置定义为数据流中的第一比特位置;在给定第一块在数据流的第一比特位置处开始的前提下,迭代地为从数据流的第一块到数据流的末个可能的块中的每个块确定跟随在当前块之后的下一接连块的候选起始位置的第一集合,直至数据流的末个比特位置之后的首个比特位置在为该下一接连块确定的候选起始位置的第一集合中,并且将数据流的末个块定义为当前块;将数据流的末个块的终点定义为数据流的末个比特位置之后的首个比特位置;为从数据流的末个块之前的块到数据流的第一块中的每个块确定(1)在给定第一块在数据流的第一比特位置开始的前提下跟随在当前块之后的下一接连块的候选起始位置的第一集合与(2)在给定紧随该下一接连块之后的块在该下一接连块的终点处开始的前提下跟随在当前块之后的下一接连块的候选起始位置的第二集合的交集,并且将数据流的当前块的终点定义为交集中的比特位置;以及将块划分确定为数据流中的每个块的终点。
此类方法的实施例可包括以下特征中的一个或更多个。数据流的末个可能的块是从数据流的大小和数据流的块的最小块大小确定的。数据流是由累积流大小函数定义的,而用于服务数据流的通信链路是由累积链路容量函数定义的;并且块划分是在给定累积流大小函数和累积链路容量函数的前提下用减小的关于数据流的不中断呈现的启动延迟来确定的。数据流是由累积流大小函数定义的,并且目标启动延迟被确定以服务数据流;以及块划分是在给定累积流大小函数和目标启动延迟的前提下用确保数据流的不中断呈现的减小的传输带宽来确定的。用于服务数据流的通信链路是由累积链路容量函数定义的,并且目标启动延迟被确定以服务数据流;以及块划分是在给定累积链路容量函数和目标启动延迟的前提下用可能的编码集合中确保数据流的不中断呈现的最高质量数据流编码来确定的。
一种用于确定用于服务从发射机到接收机的比特数据流的全局块划分的示例性方法,该数据流是由全局累积流大小函数定义的且具有多个查找点,每个查找点是数据流中接收机能够在预定的启动延迟内开始消费数据流的点,该方法包括:将数据流分成多个查找块,每个查找块是由相应的局部累积流大小函数定义的,其中特定查找点的一侧上的数据以独立于该特定查找点的另一侧上的数据的方式来解码;为该多个查找块中的每个查找块递归地定义相应的小于或等于预定的启动延迟的有效启动延迟;为该多个查找块中的每个查找块确定确保相应查找块以相应的有效启动延迟来不中断呈现的局部块划分;以及将全局块划分确定为数据流中的该多个查找块中的每个查找块的局部块划分。
一种用于服务数据流的示例性服务器包括:处理器,配置成确定数据流的底层结构,确定至少一个目标,所述至少一个目标选自以下各项构成的组:(1)根据底层结构来减小接收机首次开始从发射机接收数据流的时间与接收机能够开始不中断地消费数据流的块的时间之间的启动延迟,(2)减小为发送数据流所需要的传输带宽,和(3)确保数据流的块满足预定的块约束;以及耦合至处理器的发射机,该发射机被配置成遵照该至少一个目标和底层结构来传送数据流的块。
此类服务器的实施例可包括以下特征中的一个或更多个。预定的块约束包括每个块的大小大于给定的最小块大小且小于给定的最大块大小的约束。数据流包括视频内容,并且数据流的块是使用用户数据报协议来传送的。
一种用于确定用于服务从发射机到接收机的比特数据流的块划分的示例性服务器包括处理器,该处理器被配置成定义数据流的第一块的起始位置;通过迭代地为从该第一块到数据流的末个可能的块中的每个块确定跟随在当前块之后的下一接连块的候选起始位置的第一集合来确定数据流的末个块;定义数据流的末个块的终点;为从数据流的末个块之前的块到数据流的第一块中的每个块,迭代地将数据流的当前块的终点定义为该第一集合与跟随在该当前块之后的下一接连块的候选起始位置的第二集合的交集中的比特位置;以及将块划分确定为数据流中的每个块的终点。
此类服务器的实施例可包括以下特征中的一个或更多个。服务器包括耦合至处理器的用于存储候选起始位置的第一集合的存储器。服务器包括耦合至处理器的用于存储作为数据流来服务的内容的存储设备。数据流是由累积流大小函数定义的,而用于服务数据流的通信链路是由累积链路容量函数定义的;并且块划分是在给定累积流大小函数和累积链路容量函数的前提下用减小的关于数据流的不中断呈现的启动延迟来确定的。数据流是由累积流大小函数定义的,并且目标启动延迟被确定以服务数据流;以及块划分是在给定累积流大小函数和目标启动延迟的前提下用确保数据流的不中断呈现的减小的传输带宽来确定的。用于服务数据流的通信链路是由累积链路容量函数定义的,并且目标启动延迟被确定以服务数据流;以及块划分是在给定累积链路容量函数和目标启动延迟的前提下用可能的编码集合中确保数据流的不中断呈现的最高质量数据流编码来确定的。
一种用于确定用于服务从发射机到接收机的比特数据流的全局块划分的示例性服务器,该数据流是由全局累积流大小函数定义的且具有多个查找点,每个查找点是数据流中接收机能够在预定的启动延迟内开始消费数据流的点,该服务器包括处理器,该处理器被配置成将数据流分成多个查找块,每个查找块是由相应的局部累积流大小函数定义的,其中特定查找点的一侧上的数据以独立于该特定查找点的另一侧上的数据的方式来解码;为该多个查找块中的每个查找块递归地定义相应的小于或等于预定的启动延迟的有效启动延迟;为该多个查找块中的每个查找块确定确保相应查找块以相应的有效启动延迟来不中断呈现的局部块划分;以及将全局块划分确定为数据流中的该多个查找块中的每个查找块的局部块划分。
一种示例性计算机程序产品包括存储处理器可读指令的处理器可读介质,这些指令被配置成使处理器:确定数据流的底层结构;确定至少一个目标,所述至少一个目标选自以下各项构成的组:(1)根据底层结构来减小接收机首次开始从发射机接收数据流的时间与接收机能够开始不中断地消费数据流的块的时间之间的启动延迟,(2)减小为发送数据流所需要的传输带宽,和(3)确保数据流的块满足预定的块约束;以及确定用于服务从发射机到接收机的数据流的块划分,其中该块划分确保传送和接收数据流的块遵照该至少一个目标和底层结构。
此类计算机程序产品的实施例可包括特征,其中预定的块约束包括每个块的大小大于给定的最小块大小且小于给定的最大块大小的约束。
一种示例性计算机程序产品包括存储处理器可读指令的处理器可读介质,这些指令被配置成使处理器:将数据流的第一块的起始位置定义为数据流中的第一比特位置;在给定第一块在数据流的第一比特位置处开始的前提下,迭代地为从数据流的第一块到数据流的末个可能的块中的每个块确定跟随在当前块之后的下一接连块的候选起始位置的第一集合,直至数据流的末个比特位置之后的首个比特位置在为该下一接连块确定的候选起始位置的第一集合中,并且将数据流的末个块定义为当前块;将数据流的末个块的终点定义为数据流的末个比特位置之后的首个比特位置;为从数据流的末个块之前的块到数据流的第一块中的每个块确定(1)在给定第一块在数据流的第一比特位置开始的前提下跟随在当前块之后的下一接连块的候选起始位置的第一集合与(2)在给定紧随该下一接连块之后的块在该下一接连块的终点处开始的前提下跟随在当前块之后的下一接连块的候选起始位置的第二集合的交集,并且将数据流的当前块的终点定义为交集中的比特位置;以及将块划分确定为数据流中的每个块的终点。
此类计算机程序产品的实施例可包括以下特征中的一个或更多个。数据流的末个可能的块是从数据流的大小和数据流的块的最小块大小确定的。数据流是由累积流大小函数定义的,而用于服务数据流的通信链路是由累积链路容量函数定义的;并且块划分是在给定累积流大小函数和累积链路容量函数的前提下用减小的关于数据流的不中断呈现的启动延迟来确定的。数据流是由累积流大小函数定义的,并且目标启动延迟被确定以服务数据流;以及块划分是在给定累积流大小函数和目标启动延迟的前提下用确保数据流的不中断呈现的减小的传输带宽来确定的。用于服务数据流的通信链路是由累积链路容量函数定义的,并且目标启动延迟被确定以服务数据流;以及块划分是在给定累积链路容量函数和目标启动延迟的前提下用可能的编码集合中确保数据流的不中断呈现的最高质量数据流编码来确定的。
一种示例性计算机程序产品包括存储处理器可读指令的处理器可读介质,这些指令被配置成使处理器:将具有多个查找点的数据流分成多个查找块,每个查找点是数据流中接收机能够在预定的启动延迟内开始消费数据流的点,其中特定查找点的一侧上的数据以独立于该特定查找点的另一侧上的数据的方式来解码;为该多个查找块中的每个查找块递归地定义相应的小于或等于预定的启动延迟的有效启动延迟;为该多个查找块中的每个查找块确定确保相应查找块以相应的有效启动延迟来不中断呈现的局部块划分;以及将用于服务数据流的全局块划分确定为数据流中的该多个查找块中的每个查找块的局部块划分。
一种被配置成服务从发射机到接收机的数据流的示例性设备包括:用于确定数据流的底层结构的装置;用于根据底层结构确定至少一个目标的装置,所述至少一个目标选自以下各项构成的组:(1)根据底层结构来减小接收机首次开始从发射机接收数据流的时间与接收机能够开始不中断地消费数据流的块的时间之间的启动延迟,(2)减小为发送数据流所需要的传输带宽,和(3)确保数据流的块满足预定的块约束;以及用于遵照该至少一个目标和底层结构来传送数据流的块的装置。
此类设备的实施例可包括特征,其中预定的块约束包括每个块的大小大于给定的最小块大小且小于给定的最大块大小的约束。
一种被配置成确定用于服务从发射机到接收机的比特数据流的块划分的示例性设备包括:用于将数据流的第一块的起始位置定义为数据流中的第一比特位置的装置;用于在给定第一块在数据流的第一比特位置处开始的前提下,迭代地为从数据流的第一块到数据流的末个可能的块中的每个块确定跟随在当前块之后的下一接连块的候选起始位置的第一集合,直至数据流的末个比特位置之后的首个比特位置在为该下一接连块确定的候选起始位置的第一集合中,并且将数据流的末个块定义为当前块的装置;用于将数据流的末个块的终点定义为数据流的末个比特位置之后的首个比特位置的装置;为从数据流的末个块之前的块到数据流的第一块中的每个块,用于确定(1)在给定第一块在数据流的第一比特位置开始的前提下跟随在当前块之后的下一接连块的候选起始位置的第一集合与(2)在给定紧随该下一接连块之后的块在该下一接连块的终点处开始的前提下跟随在当前块之后的下一接连块的候选起始位置的第二集合的交集的装置,用于将数据流的当前块的终点定义为交集中的比特位置的装置;以及用于将块划分确定为数据流中的每个块的终点的装置。
此类设备的实施例可包括以下特征中的一个或更多个。数据流的末个可能的块是从数据流的大小和数据流的块的最小块大小确定的。数据流是由累积流大小函数定义的,而用于服务数据流的通信链路是由累积链路容量函数定义的;并且块划分是在给定累积流大小函数和累积链路容量函数的前提下用减小的关于数据流的不中断呈现的启动延迟来确定的。数据流是由累积流大小函数定义的,并且目标启动延迟被确定以服务数据流;以及块划分是在给定累积流大小函数和目标启动延迟的前提下用确保数据流的不中断呈现的减小的传输带宽来确定的。用于服务数据流的通信链路是由累积链路容量函数定义的,并且目标启动延迟被确定以服务数据流;以及块划分是在给定累积链路容量函数和目标启动延迟的前提下用可能的编码集合中确保数据流的不中断呈现的最高质量数据流编码来确定的。
一种被配置成确定用于服务从发射机到接收机的比特数据流的全局块划分的示例性设备,该数据流是由全局累积流大小函数定义的且具有多个查找点,每个查找点是数据流中接收机能够在预定的启动延迟内开始消费数据流的点,该设备包括:用于将数据流分成多个查找块的装置,每个查找块是由相应的局部累积流大小函数定义的,其中特定查找点的一侧上的数据以独立于该特定查找点的另一侧上的数据的方式来解码;用于为该多个查找块中的每个查找块递归地定义相应的小于或等于预定的启动延迟的有效启动延迟的装置;用于为该多个查找块中的每个查找块确定确保相应查找块以相应的有效启动延迟来不中断呈现的局部块划分的装置;以及用于将全局块划分确定为数据流中的该多个查找块中的每个查找块的局部块划分的装置。
由本文中描述的块划分方法提供的能力包括以下内容。本文中描述的块划分方法在计算上可高效率地实现。对于要被流送的数据的给定的底层发送次序和消费结构,本文中描述的块划分方法以在接收机处接收经分块的数据流的启动延迟为最小的方式来划分数据流。另外,当这些块划分方法结合基于由本文中描述的块划分方法提供的块结构来编码的块FEC编码一起使用时,为提供给定程度的流损坏的保护所需要的附加传输带宽是最小的。即使在接收机从数据流内的任意点开始接收数据流或请求数据流的情况下,也能达成这些益处。即使在数据流速率可随时间变化的情况下也能够达成这些益处。
附图简述
图1是解说可变比特率(VBR)数据流的瞬时和平均呈现率的标绘。
图2是解说启动延迟与链路容量之间典型的折衷曲线的标绘。
图3是解说累积流大小(CSS)函数和累积链路容量(CLC)函数的示例的标绘。
图4是解说用于单个数据流的两个分块累积流大小(BCSS)函数的示例的标绘。
图5是解说减小关于固定传输带宽的启动延迟的几何解读的标绘。
图6是解说减小关于固定启动延迟的传输带宽的几何解读的标绘。
图7是解说提高关于固定启动延迟和固定传输带宽的数据流编码质量的几何解读的标绘。
图8是解说用于确定数据流的块的可能的起始位置集合的投影操作的几何解读的标绘。
图9是确定用于服务数据流的块划分的过程的框流程图。
图10是解说数据流的块的不可能的起始位置的几何解读的标绘。
图11是解说关于数据流中的多个起始点的示例有效启动延迟的标绘。
图12是确定用于服务具有多个起始点的数据流的全局块划分的过程的框流程图。
详细描述
本文中描述的技术提供了用于服务从发射机到接收机的数据流的机制,其中数据流的块的传输和接收遵照数据流的底层结构和为服务数据流所确定的一个或多个目标。关于服务数据流的目标包括根据底层结构来减小接收机首次开始从发射机接收数据流的时间与接收机能够开始不中断地消费数据流的块的时间之间的启动延迟;减小为发送数据流所需要的传输带宽;以及确保数据流的块满足预定的块约束。还描述了用于确定用于服务数据流的全局块划分的技术,其中数据流具有多个可能的查找点,接收机能够在这些查找点处在最大启动延迟内开始消费数据流。其他实施例均落在本公开和权利要求的范围之内。
对于实时流送应用,发射机服务要在接收机处接收并以最小延迟量消费的数据流。一种应用是媒体流送,其中媒体内容预期在流送发起之后不久被显示或呈现。尽管本公开包括来自媒体流送的示例,但是所提出的这些问题的范围和本文中描述的方法适用于媒体应用之外的其他应用,并且包括在其中在流送数据时不中断地消费数据流的任何实时流送应用。然而,为了便于参考,本公开包括一般而言应用于媒体流送应用的术语。除非另外声明,术语数据流的“消费”、“呈现”和“显示”在下文中可互换地使用。除非另外声明,为了便于参考,在下文中,数据的大小以比特为单位来表达,时间以秒为单位来表达,并且速率以比特每秒的单位来表达。
有许多在其中可使用所公开的技术的环境。一个示例为在广播/多播网络上去往接收机的音频/流送视频,其中数据流同时可供许多接收机使用。在此示例中,由于接收机可在各种时间点处加入或离开该流,因而减小或最小化接收机加入该流的时间与视频首次可供消费的时间之间的启动时间是重要的。例如,在用户首次请求开始查看视频流时,在用户请求查看该流之后视频要多久才出现在接收机设备的观看屏上对于所提供的如由用户感知的服务质量而言是至关重要的,而启动时间是此时间的贡献因素。作为另一示例,当用户正在查看一个流并决定“改变信道”和查看不同的流时,首个视频要多久才停止出现在接收机设备的观看屏上并且第二流要多久才开始显示在接收机设备上对于所提供的如由用户感知的服务质量而言是至关重要的,而启动时间是此时间的贡献因素。另一示例是单播网络上的音频/视频流送,其中个体接收机请求数据流,并可例如响应于最终用户对视频流进行采样和来回跳跃以查看该视频流的不同部分而请求在该数据流内的不同点处开始消费该数据流。底层分组传输协议可以是用户数据报协议(UDP)上的运动图像专家组-2(MPEG-2)、UDP上的实时传输协议(RTP)、超文本传输协议/传输控制协议(HTTP/TCP)、UDP上的数据报拥塞控制协议(DCCP)、或各种其他传输协议中的任一种。在所有这些情形中,使用FEC编码来保护流以保护不受流内损坏的影响,例如,在使用UDP或RTP时保护不受分组丢失的影响,或者在使用HTTP时保护不受时间损失的影响,如更详细地在2009年9月22日提交的题为“Enhanced Block-Request Streaming System(增强型块-请求流送系统)”的美国临时申请No.61/244,767中描述的,该临时申请出于所有目的通过援引明确纳入于此。
例如,当数据流是MPEG-2视频编码或H.263或H.264视频编码时,并且当数据流是音频和视频数据的组合时,底层数据发送和消费结构可能相当复杂。另外,在这些示例中,流内的数据发送次序往往不同于数据消费结构。例如,图像组(GOP)的典型消费次序可以为I-B-B-B-P-B-B-B-P,其中这里I是指I帧或即帧内编码帧,P是指P帧或即预测编码帧,而B是指B帧或即双向预测编码帧。在此示例中,P帧依赖于I帧,而B帧依赖于周围的I帧和P帧。此序列的发送次序可以取而代之为I-P-B-B-B-P-B-B-B。即,即使此示例中的每个P帧是在依赖于该P帧的三个B帧之后显示的,该P帧也是在这三个B帧之前发送的。因此,块划分方法需要能够计及各种发送次序和消费结构。有各种不同类型的可对其应用本文中描述的方法的数据流,例如,遥感数据流,在命令和控制中用于操作远程车辆或设备的数据流,和各种其他类型的数据流,其中结构太多以至于无法在本文中列出。本文中描述的块划分方法应用于任何数目的不同类型的具有不同发送和消费结构的数据流。原始数据本身甚至不必被认为是流。例如,高清晰度地图的数据可被组织成不同分辨率的阶层并可作为流来向最终用户发送,该流是以允许当数据流的第一部分抵达和被消费时以低分辨率快速显示该流且在数据流的其他部分抵达和被消费时逐渐完善和更新地图的显示的发送次序和消费次序来组织的。
在其中可使用本文中描述的块划分方法的环境包括实时流送,其中这些方法能被快速地应用于数据流的各部分是重要的,因为数据流是使用尽可能少的计算资源来生成的。块划分方法还可应用于已处理内容的按需流送,其中整个数据流在数据被流送之前可供处理。对于按需流送情形而言,可以按计算上高效率的方式应用块划分方法也是重要的,因为可能有有限的计算资源可供应用块划分方法,并且可能有大量要对其应用这些方法的数据流。
许多不同的平台可支持从源到目的地的流送数据。源可以是计算机、服务器、客户端、无线电广播塔、无线发射机、启用网络的设备、等等。目的地可以是计算机、服务器、客户端、无线电接收机、电视机、无线设备、电话、启用网络的设备、等等。源和目的地可由(无噪声或有损的)信道分开,该信道是有线、无线、或时间信道中的一者或多者(例如,其中流被存储在存储器中作为源并且从形成该存储器的设备或媒体读取作为目的地)。
可以使用其他硬件、软件、固件等。可以根据实施本文中描述的操作方法的指令来对这些平台进行编程。
在流送应用中,数据可能需要被划分成多个毗连块,其中可在接收机处接收到足够的数据时解码每个块以恢复该块。例如,每个块可使用FEC码来编码以保护不受分组丢失或错误的影响。作为另一示例,可以为安全性而加密每个块。
对这些块往往有约束。对于经FEC编码的块的示例,较短的块提供较少的擦除保护并且更易受到网络上突发的分组丢失或错误的影响。因此,编码至少指定的最小大小的FEC块往往是优选的。对数据流内的块边界的位置的特定选择在下文中被称为“块划分”。遵循诸如最小块大小之类的指定的块约束的块划分被称为“可行的”划分。
许多应用使用本质为可变比特速率(VBR)的数据流。在视频流送情形中,例如,视频的高动作部分比视频的静态部分需要更多数据被编码,并因此需要更高带宽以进行实时传送。使用VBR编码,例如,为每秒视频编码的数据量可能在不同的视频部分中显著变化。通常,VBR比恒定比特速率(CBR)编码提供高效得多的视频编码,如通过为相对于所显示的视频的质量而编码整个视频所需要的数据量测得的。不仅如此,最现代的视频编码技术涉及参考方法,其中为了编码效率,一些帧是相对于其他帧差分地描述的。被参考的帧比被差分地描述的帧大得多,从而对逐帧层面处的比特率的变化作贡献。
数据流的VBR本质与数据流的消费有关。即,VBR本质指示接收机处数据消费的速率的可变性,该可变性确保了不中断的消费。例如,消费的速率有时可以为每秒5兆比特(Mbps),而在其他时间,消费的速率可以为1Mbps。VBR本质的数据流仍能够使用固定量的传输带宽来传送。例如,发射机可按一致的3Mbps的比特率来发送VBR本质的数据流。因此,有时,数据流以比数据流被消费的速率慢的速率抵达接收机,而在其他时间,数据流以比数据流被消费的速率快的速率抵达接收机。
图1解说了示例VBR流的瞬时消费或呈现速率110,其中使用水平虚线来描绘呈现平均比特率(ABR)120。
对于给定的数据流,在用于流送的链路的容量与发射机开始数据流的传输的时间同接收机能够开始该流的不中断呈现之间的延迟(下文中被称为“启动延迟”)之间存在折衷。如果接收机继续以链路容量或低于链路容量来接收该流,那么接收机在其需要消费、呈现或显示该流的任何部分时已接收到该部分的情况下能够提供该流的“不中断呈现”。对于给定的数据流,链路容量和启动延迟的确保不中断的呈现的组合被称为“可达成”对。
如果链路容量与数据流的平均比特率相比较而言非常大,那么接收机能够在非常短的时间量内接收数据的大部分并将继续以高于消费或呈现速率的速率进行接收。在这种情景中,可达成非常小的启动延迟。在另一情景中,如果链路容量与流的平均比特率相比较而言非常小,那么接收机将直到已接收到该数据流的大多数数据才能够开始呈现。如果接收机在此时间之前开始,那么接收机将需要在数据流的中间中断消费或呈现,并且因此,启动延迟可能很大。
对于给定的数据流,链路容量与启动延迟之间的折衷对于几乎所有实际应用而言是凸和递减函数,如图2中所解说的。
对于给定的数据流,每个可行的块划分对应于特定的容量对延迟折衷曲线。
本文中描述的装置、系统和方法确定可达成的链路容量和启动延迟的组合,并寻找确保特定的可达成对的可行的块划分。
数据流的规范表示
为了便于描述本文中的装置、系统和方法,可以按规范的形式来表示数据流的呈现时间的底层结构。假定数据流的固定的数据传输次序。定义“累积流大小”函数L(t)(下文中称为CSS函数),取流中的呈现时间t作为自变量,并返回数据流的需要被接收以直至和包括时间t呈现该流的初始部分的大小(以比特计)。为了便于描述,当在接收机处呈现数据流的第一部分时,假定呈现时间为0,并且因此L(t)表示在接收机首次开始呈现数据流之后数据流的需要在时间t内被接收和呈现的初始比特的数目。
在一些情形中,发生比特呈现的呈现时间可以基本上是连续的,而在其他情形中,发生比特呈现的呈现时间可以在离散的时间点处且可能在时间上均匀地间隔。在时间上均匀间隔的呈现时间的示例是旨在精确地以每秒24帧播放的视频流,在这种情形中,以1/24秒的均匀间隔的时间间隔来消费诸比特。其他帧速率是可能的,并且每秒24帧的速率仅是示例。
CSS函数可以与应用于数据流的任何块划分方法的选择无关,并且是呈现时间t的非递减函数。即,每当t1<t2时,数据流的L(t2)个初始比特足以呈现直至t2,这包括直至t1的呈现,并且因此L(t2)≥L(t1)。CSS函数的替换解读可通过它的逆L-1(s)进行,对于数据流的每个初始部分(该初始部分由其大小s来标识),L-1(s)给出数据流的该初始部分的可呈现的历时量。此逆函数也是非递减函数。
作为另一示例,考虑根据运动图像专家组(MPEG)标准编码的视频流,其具有三种类型的帧:内(I)帧或关键帧,其不参考任何其他帧;预测(P)帧,其可参考过去呈现的I帧和P帧;以及双向(B)帧,其既可参考过去呈现的I帧和P帧也可参考将来呈现的I帧和P帧。GoP内的帧的采样模式可以如下:I1-B2-P3-B4-P5-B6-P7-B8-P9-...-Pn,其中每个帧之后的索引表示该帧的呈现次序。例如,如果以固定的帧速率来呈现视频,那么每个索引表示每个接连的呈现时间之间固定的时间消耗量。作为示例,如果帧速率为每秒24帧,那么每一帧将在前一帧之后的1/24秒呈现。因此,在此示例中,带有索引1的帧具有呈现时间0,并且每个随后索引的帧i具有呈现时间(i-1)/24秒。虽然此处给出了MPEG示例,但是本公开的主题内容并不被如此限定。
通常,视频数据流中的帧的传输次序是解码次序,因为这使为在接收机处解码视频所需要的缓冲器空间的数量最小化而不影响需要被接收以允许不中断的呈现的数据流的数目。继续以上示例,假定每一B帧仅参考毗邻的P帧,以上模式的解码次序(并由此传输次序)为:I1-P3-B2-P5-B4-P7-B6-P9-B8...
由s(i)来表示带有索引i的帧的以比特计的大小,此数据流示例的CSS函数为:
L(0)=s(1);
L(1/24)=L(2/24)=L(0)+s(2)+s(3);
L(3/24)=L(4/24)=L(2/24)+s(4)+s(5);
L(5/24)=L(6/24)=L(4/24)+s(6)+s(7);
L(7/24)=L(8/24)=L(6/24)+s(8)+s(9),等等。
在以上示例中,呈现时间是离散的,并且可以仅在那些离散点上定义CSS函数L(t)。然而,为与遍及本公开描述的连续情形的一致性,根据L(t)的先前定义,L(t)被给定为连续时间变量t的函数。因此,如果t1和t2是流的两个接连的离散呈现时间,则定义对于所有的t1≤t<t2,L(t)=L(t1)。
CSS函数一般而言捕获关于流的所有相关呈现时间信息,包括流的瞬时呈现速率的任何变化,以及按预定义的传输次序的采样之间可能的呈现依赖性。每个数据流可由CSS函数来表示。用于确定链路容量和启动延迟的可达成对的技术可以根据任意的CSS函数来开发并被应用于给定数据流的特定CSS函数。
类似的函数可被定义以表示流送链路容量。“累积链路容量”函数(下文中称为CLC函数)是非递减函数C(t),其具有传输时间t时的作为可在链路上直至传输时间t传送的最大数据量的值。即,C(t)是瞬时链路容量从传输时间0直到时间t的积分。类似地,C-1(s)被定义为在链路上传送数据流的s个比特所需要的时间。
对于具有固定容量r(例如,以每秒比特为单位)的链路,C(t)可被表示为具有斜率r的线,即对于传输时间t,C(t)=r×t。
在具有CLC函数C(t)的链路上,如果对于流中所有的呈现时间t,L(t)≤C(t+d),那么具有CSS函数C(t)的流在启动延迟d之后的不中断呈现是可能的。这是因为在每个传输时间(t+d),接收机在启动延迟开始之后已开始呈现数据d秒之后,需要在首个t秒内已接收到数据流的初始部分的至少L(t)个比特。然而,如果使用分块,则这种状况不计及对以下描述的块划分方法的附加约束。
图3显示了以上状况的图形解读,其中d=5/24秒且r=96000比特每秒,其中对应于CLC函数C(t+d)320的线始终在CSS函数L(t)310的曲线上方。这些步骤解说了对应于以上示例的特定数据流CSS,其中s(1)=10,000比特,s(2)=2,000比特,s(3)=6,000比特,s(4)=1,500比特,s(5)=5,000比特,s(6)=3,000比特,s(7)=7,000比特,s(8)=2,500比特,并且s(9)=8,000比特。因此,关于此数据流示例的CSS函数L(t)310为:
L(0)=s(1)=10,000比特;
L(1/24)=L(2/24)=L(0)+s(2)+s(3)=18,000比特;
L(3/24)=L(4/24)=L(2/24)+s(4)+s(5)=24,500比特;
L(5/24)=L(6/24)=L(4/24)+s(6)+s(7)=34,500比特;
L(7/24)=L(8/24)=L(6/24)+s(8)+s(9)=45,000比特,等等。
具有块划分的数据流的规范表示
当数据流被划分成块时,例如,因为在逐块的基础上对流应用FEC或加密,所以往往数据流的块仅可在已接收到该整个块时被呈现或消费。因此,块划分方法对数据流的应用往往导致具有“块累积流大小”函数B(t)(下文中称为BCSS函数)的分块数据流。BCSS函数B(t)使流中的呈现时间t作为自变量,并返回数据流的需要被接收以直至和包括时间t呈现该流的初始部分的大小(以比特计)。数据流的诸部分需要在块基础上呈现,即,一旦作为数据的一部分的整个块已抵达,就可呈现数据。
BCSS函数B(t)类似于CSS函数L(t),除了块结构添加了对数据何时需要可供呈现的附加约束之外。因此,数据流的BCSS函数B(t)始终位于相同数据流的CSS函数L(t)上方,而与源自对数据流应用块划分方法的块结构无关。在为支持数据流的不中断呈现所需要的可达成的启动延迟和链路带宽的意义下,具有在数据流的CSS函数L(t)的尽可能少地上方的BCSS函数B(t)是优选的。使用产生尽可能接近CSS函数L(t)并满足块约束的BCSS函数B(t)的块划分方法是下文中描述的块划分技术的目标之一。
考虑已对其应用块划分方法以产生具有BCSS函数B(t)的块结构的数据流。在具有CLC函数C(t)的链路上,如果对于流中所有的呈现时间t,B(t)≤C(t+d),那么在启动延迟d之后对流的不中断呈现是可能的。
图4中示出了相同数据流的BCSS函数的两个示例,B1(t)410和B2(t)420。对于以上讨论的示例,BCSS函数B1(t)410对应于第一块划分{{I1,P3,B2,P5},{B4,P7},{B6,P9,B8}},而BCSS函数B2(t)420对应于第二块划分{{I1,P3,B2},{P5,B4},{P7,B6},{P9,B8}}。如果这两个函数都满足块约束,那么BCSS函数B2(t)420要比BCSS函数B1(t)410优选,因为BCSS函数B2(t)420位于BCSS函数B1(t)410下方。例如,CLC函数C(t+d)430能为BCSS函数B2(t)420但不能为B1(t)410提供不中断的呈现。
确定链路容量和启动延迟的可达成对:
如以上讨论的,对于具有恒定容量r的链路,CLC函数C(t)可被表示为斜率为r的线。对于恒定容量r,寻找容量与启动延迟之间优选或最优折衷的问题具有简单的几何解。给出构思的适于三种不同的设计准则的三种变型:
1-对于具有已知容量r的链路和由CSS函数L(t)520描述的固定流,可以找到减小的或最小的启动延迟量。这是通过在L(t)520的曲线顶部滑动斜率为r的线(即,表示候选CLC函数510)直至该线和该曲线接触来达成的,如图5中所描绘的。经滑动的表示CLC函数C(t+d)530的线的x截距给出关于链路容量r的减小的可达成的启动延迟d540。CLC函数C(t+d)530是任何可行的块划分的下界。
2-对于对启动延迟d的目标约束和由CSS函数L(t)620描述的固定流,可找到为支持流的不中断呈现所需要的减小的或最小的链路容量。表示候选CLC函数610的线的x截距固定在(-d)处,并且该线被旋转直至该线接触L(t)620的曲线,如图6中所描绘的。经旋转的表示CLC函数C(t+d)630的线的斜率是关于所要求的启动延迟d的减小的可达成的链路容量。CLC函数C(t+d)630是任何可行的块划分的下界。
3-对于具有已知容量r的链路和对启动延迟d的目标约束,可以选择为不中断呈现而能够支持的最高质量内容编码。关于流的编码的候选CSS函数710可被表示为具有质量参数θ的Lθ(t)。斜率为r和x截距-d的线是固定的,其中该线表示CLC函数C(t+d)730。增大质量参数θ,而同时确保Lθ(t)710保留在CLC函数C(t+d)730以下,如图7中所描绘的。在确定了最高可达成的质量参数θ之后,可定义CSS函数L(t)720。CLC函数L(t)720是任何可行的块划分的上界。
满足最小块大小约束的块划分方法
如以上讨论的,可能存在对每个块具有最小大小约束的实际原因。令m表示此最小块大小。以上讨论的技术可被扩展以提供用于在块大小约束下确定链路容量和启动延迟的可达成对和用于确定达成给定对的可行的块划分的高效率方法。这些方法可例如被编程到源设备和/或目的地设备中,或者可以使用专用硬件。
假定已决定了启动延迟d,对于任何传输时间t>d,接收机需要能够呈现流直至呈现时间(t-d)。对于表示块b的可能的起始位置的s,其中s是数据流的直至和包括块b的首个比特的初始部分中的比特数,描述了确定紧随块b之后的块的确保块b是可行的可能的起始位置的方法。
参照图8,对于具有给定的CSS函数L(t)810的数据流和具有CLC函数C(t+d)820的链路,s的由PC(s)830表示的C-投影被定义为紧随在位置s处开始的块b之后的块的确保块b是可行的可能的起始位置的集合。因此,PC(s)被定义为:
PC(s)=[s+m,C(L-1(s)+d)]。(1)
表面上,PC(s)是以流中的位置(s+m)个比特开始(即,由于最小块大小m)并延伸直至可在从流的传输开始起的传输时间(L-1(s)+d)内接收到的最大数据量的(可能为空的)区间。在式(1),d是传输开始与呈现时间0之间的启动时间,并且L-1(s)是块b的首个比特的呈现时间。集合PC(s)830是空的,并且因此,如果s+m>C(L-1(s)+d),那么s不能是任何可行的块的开始。图8中描绘了投影操作的几何解读。
由于一般而言块的可能的起始位置多于单个位置,因而投影操作可被扩展到流中的位置子集T的更一般情形:
PC(T)=∪s∈TPC(s). (2)
n步投影被定义为从给定位置s开始已形成了n个块之后,下一块的可行的起始位置的集合。对于每个整数n>0,n步投影PC n(s)可递归地被定义为:
PC n(s)=PC(PC n-1(s)),(3)
其中PC 0(s)={s}。
定义逆投影运算符PC -1(s),其是后续块在位置s处开始的任何块的所有可行的起始位置的集合。
PC -1(s)=[L(C-1(s)-d),s-m]。(4)
式(4)的逆投影还可被扩展到流中的位置子集T:
PC -1(T)=∪s∈TPC -1(s)。(5)
对于给定的约束,如果满足下式(6),那么对流的直至数据流的末端位置e的不中断呈现是可行的:
e+1∈PC n(1),(6)
对于某个正数n。在式(6)中,n不能超过(1+e)/m,因为每个块具有最小大小m。
为了寻找可行的块划分,可以使用以下的前向和后向过程:
前向循环:
For n=1 to(1+e)/m:
计算并存储PC n(1)=PC(PC n-1(1))。
如果e+1∈PC n(1)(即,存在具有n个块的可行的块划分),
那么中断并开始后向循环。
End For
如果前向循环没有成功找到可行的n,那么没有达成块参数的约束的可行的块划分。
如果前向循环确实成功找到可行的n,那么执行后向循环:
后向循环:
设置sn=e+1
For i=n-1 down to 1:
计算PC -1(si+1)∩PC i(1)。通过构造,这是非空集合。
从此集合中捡选任何值并指派给si
End For
在完成了前向和后向过程之后,s1,s2,...,sn将可行的块划分定义为每个块的终点。
参照图9,确定用于服务从发射机到接收机的比特数据流的块划分的过程900包括示出的阶段。过程900描绘了以上提供的用于寻找可行的块划分的前向和后向过程的各阶段。然而,过程900仅是示例性的而不是限定性的。例如,可通过增加、移除或重新安排各阶段来改动过程900。
在阶段902处,处理器(例如,通信链路的源发射机侧上的处理器)将数据流的第一块的起始位置定义为数据流中的第一比特位置。参照以上提供的前向和后向过程中的前向循环,阶段902通过设置PC 0(1)={1}来将第一块(块1)的起始位置定义为数据流中的第一比特位置。
在阶段904处,处理器在给定第一块在数据流的第一比特位置处开始的前提下,迭代地为从第一块到数据流的末个可能的块中的每个块确定跟随在当前块之后的下一接连块的候选起始位置的第一集合。数据流的末个可能的块可以从数据流的大小e和数据流的块的最小块大小m确定。参照前向循环,阶段904从第一块(块1)到末个可能的块(块底[(1+e)/m])迭代地确定PC n(1)=PC(PC n-1(1))。候选起始位置的第一集合PC n(1)可被存储在存储器(例如,通信链路的源发射机侧上的存储器)中。
阶段904的迭代确定持续进行,直至数据流的末个比特位置e之后的首个比特位置在为下一接连块确定的候选起始位置的第一集合中。当此发生时,迭代终止,并且处理器将数据流的末个块定义为当前块。参照前向循环,阶段904在对于当前块(块n)而言e+1∈PC n(1)时终止迭代。处理器将数据流的末个块定义为块n。
在阶段906处,处理器将数据流的末个块的终点定义为数据流的末个比特位置之后的首个比特位置。参照以上提供的前向和后向过程的后向循环,阶段906定义sn=e+1。
在阶段908处,对于从数据流的末个块之前的块到数据流的第一块之中的每个块,处理器确定跟随在当前块之后的下一接连块的候选起始位置的两个集合的交集。第一集合是在给定第一块在数据流的第一比特位置处开始的前提下跟随在当前块之后的下一接连块的候选起始位置的集合。关于数据流中的块的第一集合是在阶段904处参照前向循环计算的。如果第一集合在阶段904处被存储,那么可检索第一集合以确定当前阶段中的交集。第二集合是在给定紧随下一接连块的块在该下一接连块的终点处开始的前提下跟随在当前块之后的下一接连块的候选起始位置的集合。参照后向循环,对于从数据流的块i=n-1向下到块i=1中的每个块,阶段908首先确定PC -1(si+1)∩PC i(1)。
继续阶段908,对于当前块,处理器将数据流的当前块的终点定义为交集的比特位置。参照后向循环,对于当前块(即,块i),阶段908随后将si定义为PC -1(si+1)∩PC i(1)中的比特位置。
在阶段910处,处理器将块划分确定为数据流中的每个块的终点。
以上过程完成关于前向循环的至多(1+e)/m个步骤和关于后向循环的(1+e)/m)-1个步骤。该过程需要足够的存储器以存储前向投影PC n(1)。
每个PC n(1)是呈现时间的区间或者区间的集合。此实情允许以非常高效率的方式来计算和存储前向投影集合。具体地,区间[s1,s2]的投影简示为:
PC([s1,s2])=[s1+m,C(L-1(s2)+d)]\{s:L-1(s-m)<C-1(s)-d}。(7)
在式(7)中,右手侧上的区间是通过由原始区间[s1,s2]的终点施加的下限和上限定义的。然而,传输完成时间C-1(s)-d超过关于最小块大小m的呈现约束时间L-1(s-m)的任何流位置s不能是块的起始位置。式(7)中经扣除的集合是这些不可能的起始位置的集合。图10中描绘了对块的不可能的起始位置的集合{s:L-1(s-m)<C-1(s)-d}的几何解读。
如以上讨论的,对区间的投影是诸区间的集合。该集合中区间的数目是通过L(t)+m的经移位曲线与表示CLC函数(t+d)的线相交的次数来确定的,其中每个C-1(s)-d对应于呈现时间t。具体地,对于CSS函数L(t)的最平滑曲线,L(t)+m的经移位曲线和表示CLC函数C(t+d)的线不会相交一次以上,并且因此对区间的投影保持单个区间。因此,每个投影可被减至投影区间的两个终点,这可加速计算并减少所需要的存储器存储。
确定可行的块划分
对于给定的CSS函数L(t)和固定的传输带宽r,如果具有BCSS函数B(t)的块划分能用启动延迟d1来达成,那么该块划分对于任何较大的启动延迟d2而言也可达成,因为L(t)的曲线与表示C(t+d)的线之间的面积严格地随d的增大而增大。类似地,对于固定的启动延迟d,如果具有BCSS函数B(t)的块划分能在具有容量r1的链路上达成,那么该块划分也能在具有较大的容量r2的链路上达成,因为L(t)的曲线与表示C(t+d)=r×(t+d)的线之间的面积也严格地随r的增大而增大。
另外,如果施加在块划分方法上的可行性约束满足关于最优参数的类似的“单调性”条件,——即,每当块划分对于最优参数的值x1和x2可行时,该块划分对于x1与x2之间的所有值都是可行的——,随后以上描述的方法可与对分搜索相组合以高效率地确定启动延迟、传输带宽和编码质量的最佳的或最优的可行的组合。
单调的可行性约束的示例为对块的最小和/或最大大小的约束。非单调约束的示例为对块的最小传输历时的限制,因为可行性随后依赖于作为最优参数的传输带宽。在该情形中,增大带宽具有将一些块的传输历时减小到低于可行性约束的潜力。
以下讨论的技术假定可行性约束在以上意义下是单调的。描述了三种感兴趣的用于确定块划分方法的场景。
在第一场景中,给定具有CSS函数L(t)的流和具有CLC函数C(t)的链路,可行的块划分方法是用关于流的不中断呈现的减小的或最小的启动延迟来确定的。
表示启动延迟的最小值d0和最大值d1,其中d1被假定是可达成的。例如,d0可被设为0,或者d0可被设为启动延迟的不受约束的下界,以上参照图5描述了该下界的确定。最大值d1可被设为启动延迟的最大可接受的值。对分搜索可如下执行:
Do
设置d=(d0+d1)/2。
以启动延迟d来运行用于确定不受约束的可行的块划分的前向和后向过程的前向循环。
如果d是可行的,
那么设置d1=d;
否则设置d0=d。
While d不可行或(d1-d0)>ε,对于较小的公差ε。
d在最佳或最优的可行的启动延迟的ε内。
运行前向和后向过程的后向循环以寻找可行的块划分。
在第二场景中,给定启动延迟d,可行的块划分方法是用减小的或最小的传输带宽来确定的,该传输带宽确保如由CSS函数L(t)表示的数据流的不中断呈现。减小的或最小的链路容量转换成减小的或最小的传输带宽。
表示传输带宽的最小值r0和最大值r1。例如,r0可被设为0,或者r0可被设为链路容量的不受约束的下界,以上参照图6描述了该下界的确定。最大值r1可被设为链路容量的最大可接受的值。执行类似于第一场景的对分搜索的对分搜索以寻找最佳或最优可行的传输带宽的ε内的速率r以及相应的可行的块划分。
在第三场景中,给定具有CLC函数C(t)的链路和固定的启动延迟d,可行的块划分方法是用可不中断地呈现的数据流的最高质量编码来确定的。
如以上参照图7所讨论的,用变量θ∈Θ来参数化编码质量,其中Θ是数据流的所有可能的编码的集合。Lθ(t)表示具有质量θ的编码的CSS函数。
为了在此场景中使用对分搜索,除了可行性约束的单调性之外,还假定流的编码是单调的,即,每当θ1<θ2(其中θ2具有较高质量),Lθ1(t)≤Lθ2(t)(对于呈现时间t的所有值)。执行类似于第一和第二场景的对分搜索的对分搜索,以寻找最高质量编码。在每次迭代时,对分搜索测试经排序的候选子集中具有中值质量变量θ的编码的可达成性。假定有限集Θ,对分搜索在n=log(|Θ|)次迭代之后终止。
如果以上讨论的单调性条件中的任一者未被满足,那么用于确定未受约束的可行的块划分的前向和反向过程的前向循环将需要在Θ的元素的O(|Θ|)上运行以寻找最高质量编码。
用于具有多个起始点的数据流的块划分方法
流送应用可允许接收机在流内多个不同的起始点(下文中称为“查找点”)处请求和消费数据。例如,在视频流送应用中,用户能够从流的中间观看视频以例如跳过观看过的部分或倒回以查看遗漏的部分是优选的。应当观察带宽和启动延迟约束以在预定义的查找点中的任何一个查找点处开始流。
通常,数据流的块划分不能在运行时以及响应于用户对不同起始点的请求而变。优选地,单个最佳或最优的块划分方法将为所有可能的查找点提供对带宽和启动延迟约束的同时保证。
一种可能的解决方案是使用以上所讨论的技术来寻找对整个流的优化了带宽和延迟约束以从流的开头开始的块划分,并随后为所有其他可能的查找点重新计算可达成的带宽-启动延迟对。此信息可被传达给接收机作为关于该流的被用于每个期望的起始点的附加元数据。
然而,这种块划分解决方案仅对于从开头开始的流送而言是最优的。对于相同的传输带宽,接收机需要完全不同的启动延迟时间以从不同的查找点开始是可能的,这可能是不期望的状况。
解决以上问题的另一解决方案是确定最佳或最优的块划分方法,该块划分方法同时为所有查找点确保给定的最大启动延迟连同给定的传输带宽。描述了一种用于确定此最佳或最优的块划分方法的高效率方法。
令t0<t1<...<tn为数据流内所有可能的查找点(以呈现时间为单位)为简单化,假定数据流中的解码依赖性跨每个查找点断开。即,对于每个查找点ti,在数据流中有使以下两个条件为真的位置g(ti):已接收到该流直至位置g(ti)的接收机能够呈现该流直至呈现时间ti;以及开始从位置g(ti)向前接收该流的接收机能够从呈现时间ti向前呈现该流。在视频编码环境中,此条件被称为“闭合GoP”结构,其中在跨这些查找点的帧之间没有参考。数据流从每个g(ti)开始(包括该g(ti))到后续的g(ti+1)(不包括该g(ti+1))的部分被表示为“查找块”。
新的源块(即,数据流的块)在每个查找块的开头处开始。如果不是这种情形,那么为了在查找点ti处开始,接收机需要接收并解码对于从时间ti向前的呈现而言不需要的数据,这可能会增大启动延迟。假定新的源块在每个查找块的开头处开始,全局块划分可被细分成个体查找块上较小的划分。
在一示例中,确定特定的块划分,其中在每个查找点处开始并在具有固定容量r的链路上流送,该流可在启动延迟d之后不中断地被呈现。该块划分对每个查找块的应用需要满足相同的条件(即,启动延迟d之后的不中断呈现),而与其他查找点无关。然而,一些查找块的传输可能耗费比其相应的呈现历时更多的时间。在该情形中,对于连续的呈现,如果接收机已开始从该查找点进行流送,那么下一查找块的传输将在相对于其开始呈现时间而言比传输已开始的时间稍晚的时间开始。换言之,下一查找块将不得不能以严格少于原始延迟d的有效启动延迟来呈现。用图11中的第一查找块1110解说了这种情况。延迟di可被视为来自查找块i的过度延迟,该过度延迟可被用作下一查找块i+1的头开始延迟。以下的经修改的块划分技术解决此状况。
参照图12并进一步参照图11,确定用于服务具有多个查找点的数据流的全局块划分的过程1200包括所示的阶段。该数据流由全局CSS函数L(t)定义。每个查找点是数据流中接收机能够在预定的启动延迟d内开始消费该数据流的点。然而,过程1200仅是示例性的而不是限定性的。例如,可通过增加、移除或重新安排各阶段来改动过程1200。
在阶段1202处,处理器(例如,通信链路的源发射机侧上的处理器)将数据流分成多个查找块,其中每个查找块由相应的局部CSS函数来定义。由原始的全局CSS函数L(t)定义的数据流被细分成查找块。对于每个查找块i=1,2,..,n,为呈现时间0≤t≤pi定义局部CSS函数Li(t)=L(t+ti-1)-L(ti-1),其中pi=ti-ti-1是查找块i的呈现历时。
查找块的每个终点可以是查找点、数据流的起点、或数据流的终点。特定查找点的一侧上的数据以独立于该特定查找点的另一侧上的数据的方式来解码。
在阶段1204处,处理器递归地为该多个查找块中的每个查找块定义相应的小于或等于预定的启动延迟d的有效启动延迟。每个查找块的有效启动延迟被如下递归地定义:
di=min(d,pi+di-1-C-1(Li(pi))),(8)
对于i=1,2,..,n并且d0=d。在式(8)中,pi+di-1表示从查找块i的传输的开始到查找块i+1的呈现的开始的时间。经扣除的项C-1(Li(pi))是查找块i的传输历时。差pi+di-1-C-1(Li(pi))是可潜在地被用作下一查找块i+1的头开始延迟的累积过度延迟。然而,因为每个查找块需要能以最大启动延迟d独立地呈现,所以有效启动延迟被确定为d的最小值和累积过度延迟。
图11解说了两个场景的示例,其中有效启动延迟小于或等于原始的目标延迟d。
表面上,每个查找块的有效启动延迟至多为d(即,对于流送在该查找块开始的情形),但是如果先前查找块的传输延伸超过先前查找块的相应的呈现历时,那么有效启动延迟将少于d。
如果对于每个查找块i而言存在用于以启动延迟di进行不中断呈现的可行的局部块划分,那么存在同时确保从查找点中的任何一个查找点开始的以至多为d的启动延迟得不中断呈现的可行的全局块划分。
在图12的阶段1206处,处理器为该多个查找块中的每个查找块确定确保相应查找块以相应的有效启动延迟来不中断呈现的局部块划分。
以上所描述的用于确定可行的全局块划分的技术可在每个查找块i上与其局部CSS函数Li(t)和经修改的有效启动延迟di联用,该有效启动延迟di是如以上所描述的从对启动延迟的原始约束d计算出的。
在阶段1208处,处理器将全局块划分确定为数据流中的该多个查找块中的每个查找块的相应的局部块划分。
注意,以上用于确定可行的全局块划分的技术是在整个数据流上用一个前向循环和一个后续循环有效地执行的;在此意义下,由该多个查找点施加的附加约束不会影响该技术的效率。
关于本描述的考量
结合本文公开描述的各种解说性逻辑框、模块、以及电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文中描述的功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或更多个微处理器、或任何其他此类配置。
结合本文公开描述的方法或算法的块可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中实施。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读写信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。
在一个或更多个示例性设计中,所描述的功能可以在硬件、由处理器执行的软件、固件、或其任何组合中实现。如果在由处理器执行的软件中实现,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被通用或专用计算机访问的任何可用介质。作为示例而非限定,计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能用来携带或存储指令或数据结构形式的合需程序代码手段且能由通用或专用计算机、或者通用或专用处理器访问的任何其他介质。并且,任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘和碟包括压缩碟(CD)、激光碟、光碟、数字通用碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据而碟(disc)用激光以光学方式再现数据。上述的组合也被包括在计算机可读介质的范围内。
提供了先前的描述以使得本领域任何技术人员皆能作出和/或使用所描述的装置、系统和方法。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。

Claims (10)

1.一种用于确定用于服务从发射机到接收机的比特数据流的块划分的方法,包括:
对于前向循环,将所述数据流的第一块的起始位置定义为所述数据流中的首个比特位置;
在给定所述第一块在所述数据流的所述首个比特位置处开始的前提下,迭代地为所述数据流的一个或多个块确定候选起始位置的第一集合,直至所述数据流的末个比特位置之后的所述首个比特位置在所述候选起始位置的第一集合中;
对于后向循环,将所述数据流的末个块的终点定义为所述数据流的所述首个比特位置;
迭代地确定(1)在给定所述第一块在所述数据流的所述首个比特位置开始的前提下所述数据流的一个或多个块的所述候选起始位置的第一集合与(2)对于所述后向循环中从所述数据流的所述末个块之前的块到所述数据流的所述第一块中的每个块,在给定紧随当前块之后的块在所述当前块的终点处开始的前提下所述数据流的一个或多个块的候选起始位置的第二集合的交集;
从所确定的交集选择一个或多个比特位置作为所述数据流的一个或多个块的终点;以及
将所述块划分确定为所述数据流中的每个块的终点。
2.如权利要求1所述的方法,其特征在于,所述数据流的块的最大数目是从所述数据流的大小和所述数据流的所述块的最小块大小确定的。
3.如权利要求1所述的方法,其特征在于,
所述数据流是由累积流大小函数定义的,并且用于服务所述数据流的通信链路是由累积链路容量函数定义的;以及
所述块划分是在给定所述累积流大小函数和所述累积链路容量函数的前提下用减小的关于所述数据流的不中断呈现的启动延迟来确定的。
4.如权利要求1所述的方法,其特征在于,
所述数据流是由累积流大小函数定义的,并且目标启动延迟被确定以服务所述数据流;以及
所述块划分是在给定所述累积流大小函数和所述目标启动延迟的前提下用减小的确保所述数据流的不中断呈现的传输带宽来确定的。
5.如权利要求1所述的方法,其特征在于,
用于服务所述数据流的通信链路是由累积链路容量函数定义的,并且目标启动延迟被确定以服务所述数据流;以及
所述块划分是在给定所述累积链路容量函数和所述目标启动延迟的前提下用可能的编码集合中确保所述数据流的不中断呈现的最高质量数据流编码来确定的。
6.一种被配置成确定用于服务从发射机到接收机的比特数据流的块划分的设备,所述设备包括:
用于对于前向循环将所述数据流的第一块的起始位置定义为所述数据流中的首个比特位置的装置;
用于在给定所述第一块在所述数据流的所述首个比特位置处开始的前提下,迭代地为所述数据流的一个或多个块确定候选起始位置的第一集合,直至所述数据流的末个比特位置之后的所述首个比特位置在所述候选起始位置的第一集合中的装置;
用于对于后向循环将所述数据流的末个块的终点定义为所述数据流的所述首个比特位置的装置;
用于确定(1)在给定所述第一块在所述数据流的所述首个比特位置开始的前提下所述数据流的一个或多个块的所述候选起始位置的第一集合与(2)对于所述后向循环中从所述数据流的所述末个块之前的块到所述数据流的所述第一块中的每个块,在给定紧随当前块之后的块在所述当前块的终点处开始的前提下所述数据流的一个或多个块的候选起始位置的第二集合的交集的装置;
用于从所确定的交集选择一个或多个比特位置作为所述数据流的一个或多个块的终点的装置;以及
用于将所述块划分确定为所述数据流中的每个块的终点的装置。
7.如权利要求6所述的设备,其特征在于,所述数据流的块的最大数目是从所述数据流的大小和所述数据流的所述块的最小块大小确定的。
8.如权利要求6所述的设备,其特征在于,
所述数据流是由累积流大小函数定义的,并且用于服务所述数据流的通信链路是由累积链路容量函数定义的;以及
所述块划分是在给定所述累积流大小函数和所述累积链路容量函数的前提下用减小的关于所述数据流的不中断呈现的启动延迟来确定的。
9.如权利要求6所述的设备,其特征在于,
所述数据流是由累积流大小函数定义的,并且目标启动延迟被确定以服务所述数据流;以及
所述块划分是在给定所述累积流大小函数和所述目标启动延迟的前提下用减小的确保所述数据流的不中断呈现的传输带宽来确定的。
10.如权利要求6所述的设备,其特征在于,
用于服务所述数据流的通信链路是由累积链路容量函数定义的,并且目标启动延迟被确定以服务所述数据流;以及
所述块划分是在给定所述累积链路容量函数和所述目标启动延迟的前提下用可能的编码集合中确保所述数据流的不中断呈现的最高质量数据流编码来确定的。
CN201080008019.0A 2009-02-13 2010-02-13 数据流的块划分 Expired - Fee Related CN102318348B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15255109P 2009-02-13 2009-02-13
US61/152,551 2009-02-13
US12/705,202 2010-02-12
US12/705,202 US20100211690A1 (en) 2009-02-13 2010-02-12 Block partitioning for a data stream
PCT/US2010/024207 WO2010094003A1 (en) 2009-02-13 2010-02-13 Block partitioning for a data stream

Publications (2)

Publication Number Publication Date
CN102318348A CN102318348A (zh) 2012-01-11
CN102318348B true CN102318348B (zh) 2015-04-01

Family

ID=42560848

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080008019.0A Expired - Fee Related CN102318348B (zh) 2009-02-13 2010-02-13 数据流的块划分

Country Status (6)

Country Link
US (1) US20100211690A1 (zh)
EP (1) EP2396968A1 (zh)
JP (2) JP2012518347A (zh)
CN (1) CN102318348B (zh)
TW (1) TW201110710A (zh)
WO (1) WO2010094003A1 (zh)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
JP4546246B2 (ja) 2002-10-05 2010-09-15 デジタル ファウンテン, インコーポレイテッド 連鎖的暗号化反応の系統的記号化および復号化
CN1954501B (zh) 2003-10-06 2010-06-16 数字方敦股份有限公司 通过通信信道接收从源发射的数据的方法
CN103124182B (zh) 2004-05-07 2017-05-10 数字方敦股份有限公司 文件下载和流系统
CN101686107B (zh) 2006-02-13 2014-08-13 数字方敦股份有限公司 使用可变fec开销和保护周期的流送和缓冲
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
WO2007134196A2 (en) 2006-05-10 2007-11-22 Digital Fountain, Inc. Code generator and decoder using hybrid codes
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
EP2203836A4 (en) 2007-09-12 2014-11-05 Digital Fountain Inc GENERATING AND COMMUNICATING SOURCE IDENTIFICATION INFORMATION TO ENABLE RELIABLE COMMUNICATIONS
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9917874B2 (en) * 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US9485546B2 (en) 2010-06-29 2016-11-01 Qualcomm Incorporated Signaling video samples for trick mode video representations
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US8806050B2 (en) 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
US8583054B2 (en) * 2010-12-25 2013-11-12 Intel Corporation Wireless display performance enhancement
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US8560635B1 (en) * 2011-03-30 2013-10-15 Google Inc. User experience of content rendering with time budgets
US9646141B2 (en) * 2011-06-22 2017-05-09 Netflix, Inc. Fast start of streaming digital media playback with deferred license retrieval
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
US20140089803A1 (en) * 2012-09-27 2014-03-27 John C. Weast Seek techniques for content playback
EP2907278B1 (en) 2012-10-11 2019-07-31 Samsung Electronics Co., Ltd. Apparatus and method for transmitting mmt packets in a broadcasting and communication system
US10366078B2 (en) * 2013-11-27 2019-07-30 The Regents Of The University Of California Data reduction methods, systems, and devices
CN106463562A (zh) * 2014-04-03 2017-02-22 天合光能发展有限公司 混合型全背接触式太阳能电池及其制造方法
KR20150128151A (ko) * 2014-05-08 2015-11-18 삼성전자주식회사 비디오 스트리밍 방법 및 이를 지원하는 전자 장치
US20160323351A1 (en) 2015-04-29 2016-11-03 Box, Inc. Low latency and low defect media file transcoding using optimized storage, retrieval, partitioning, and delivery techniques
CN105245317A (zh) * 2015-10-20 2016-01-13 北京小鸟听听科技有限公司 一种数据传输方法、发送端、接收端和数据传输系统
US11470131B2 (en) 2017-07-07 2022-10-11 Box, Inc. User device processing of information from a network-accessible collaboration system
CN111954007B (zh) * 2020-07-14 2022-03-25 烽火通信科技股份有限公司 Udp直播中vbr视频快速平滑发送方法与装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1714577A (zh) * 2002-11-18 2005-12-28 英国电讯有限公司 视频传输

Family Cites Families (113)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901319A (en) * 1988-03-18 1990-02-13 General Electric Company Transmission system with adaptive interleaving
US5379297A (en) * 1992-04-09 1995-01-03 Network Equipment Technologies, Inc. Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode
JP2576776B2 (ja) * 1993-11-10 1997-01-29 日本電気株式会社 パケット伝送方法・パケット伝送装置
US5566208A (en) * 1994-03-17 1996-10-15 Philips Electronics North America Corp. Encoder buffer having an effective size which varies automatically with the channel bit-rate
US5615741A (en) * 1995-01-31 1997-04-01 Baker Hughes Incorporated Packer inflation system
JP3651699B2 (ja) * 1995-04-09 2005-05-25 ソニー株式会社 復号化装置及び符号化復号化装置
US6012159A (en) * 1996-01-17 2000-01-04 Kencast, Inc. Method and system for error-free data transfer
US6044485A (en) * 1997-01-03 2000-03-28 Ericsson Inc. Transmitter method and transmission system using adaptive coding based on channel characteristics
US6011590A (en) * 1997-01-03 2000-01-04 Ncr Corporation Method of transmitting compressed information to minimize buffer space
US6014706A (en) * 1997-01-30 2000-01-11 Microsoft Corporation Methods and apparatus for implementing control functions in a streamed video display system
US6175944B1 (en) * 1997-07-15 2001-01-16 Lucent Technologies Inc. Methods and apparatus for packetizing data for transmission through an erasure broadcast channel
US6178536B1 (en) * 1997-08-14 2001-01-23 International Business Machines Corporation Coding scheme for file backup and systems based thereon
US6195777B1 (en) * 1997-11-06 2001-02-27 Compaq Computer Corporation Loss resilient code with double heavy tailed series of redundant layers
JP3472115B2 (ja) * 1997-11-25 2003-12-02 Kddi株式会社 マルチチャンネルを用いるビデオデータ伝送方法及びその装置
US5870412A (en) * 1997-12-12 1999-02-09 3Com Corporation Forward error correction system for packet based real time media
US6849803B1 (en) * 1998-01-15 2005-02-01 Arlington Industries, Inc. Electrical connector
US6185265B1 (en) * 1998-04-07 2001-02-06 Worldspace Management Corp. System for time division multiplexing broadcast channels with R-1/2 or R-3/4 convolutional coding for satellite transmission via on-board baseband processing payload or transparent payload
US6067646A (en) * 1998-04-17 2000-05-23 Ameritech Corporation Method and system for adaptive interleaving
US6018359A (en) * 1998-04-24 2000-01-25 Massachusetts Institute Of Technology System and method for multicast video-on-demand delivery system
US6307487B1 (en) * 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7068729B2 (en) * 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US6704370B1 (en) * 1998-10-09 2004-03-09 Nortel Networks Limited Interleaving methodology and apparatus for CDMA
US6637031B1 (en) * 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
US6223324B1 (en) * 1999-01-05 2001-04-24 Agere Systems Guardian Corp. Multiple program unequal error protection for digital audio broadcasting and other applications
US6226608B1 (en) * 1999-01-28 2001-05-01 Dolby Laboratories Licensing Corporation Data framing for adaptive-block-length coding system
US6041001A (en) * 1999-02-25 2000-03-21 Lexar Media, Inc. Method of increasing data reliability of a flash memory device without compromising compatibility
US6785323B1 (en) * 1999-11-22 2004-08-31 Ipr Licensing, Inc. Variable rate coding for forward link
US6535920B1 (en) * 1999-04-06 2003-03-18 Microsoft Corporation Analyzing, indexing and seeking of streaming information
FI113124B (fi) * 1999-04-29 2004-02-27 Nokia Corp Tiedonsiirto
KR100416996B1 (ko) * 1999-05-10 2004-02-05 삼성전자주식회사 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 데이터 송수신 장치 및 방법
JP4284774B2 (ja) * 1999-09-07 2009-06-24 ソニー株式会社 送信装置、受信装置、通信システム、送信方法及び通信方法
US6523147B1 (en) * 1999-11-11 2003-02-18 Ibiquity Digital Corporation Method and apparatus for forward error correction coding for an AM in-band on-channel digital audio broadcasting system
US6678855B1 (en) * 1999-12-02 2004-01-13 Microsoft Corporation Selecting K in a data transmission carousel using (N,K) forward error correction
US6694476B1 (en) * 2000-06-02 2004-02-17 Vitesse Semiconductor Corporation Reed-solomon encoder and decoder
US7490344B2 (en) * 2000-09-29 2009-02-10 Visible World, Inc. System and method for seamless switching
US7072971B2 (en) * 2000-11-13 2006-07-04 Digital Foundation, Inc. Scheduling of multiple files for serving on a server
US7240358B2 (en) * 2000-12-08 2007-07-03 Digital Fountain, Inc. Methods and apparatus for scheduling, serving, receiving media-on demand for clients, servers arranged according to constraints on resources
US7337231B1 (en) * 2000-12-18 2008-02-26 Nortel Networks Limited Providing media on demand
US6850736B2 (en) * 2000-12-21 2005-02-01 Tropian, Inc. Method and apparatus for reception quality indication in wireless communication
US7143433B1 (en) * 2000-12-27 2006-11-28 Infovalve Computing Inc. Video distribution system using dynamic segmenting of video data files
NO315887B1 (no) * 2001-01-04 2003-11-03 Fast Search & Transfer As Fremgangsmater ved overforing og soking av videoinformasjon
US20080059532A1 (en) * 2001-01-18 2008-03-06 Kazmi Syed N Method and system for managing digital content, including streaming media
US6868083B2 (en) * 2001-02-16 2005-03-15 Hewlett-Packard Development Company, L.P. Method and system for packet communication employing path diversity
US7010052B2 (en) * 2001-04-16 2006-03-07 The Ohio University Apparatus and method of CTCM encoding and decoding for a digital communication system
US6745364B2 (en) * 2001-06-28 2004-06-01 Microsoft Corporation Negotiated/dynamic error correction for streamed media
US6961890B2 (en) * 2001-08-16 2005-11-01 Hewlett-Packard Development Company, L.P. Dynamic variable-length error correction code
US6677846B2 (en) * 2001-09-05 2004-01-13 Sulo Enterprises Modular magnetic tool system
US7483489B2 (en) * 2002-01-30 2009-01-27 Nxp B.V. Streaming multimedia data over a network having a variable bandwith
FR2837332A1 (fr) * 2002-03-15 2003-09-19 Thomson Licensing Sa Dispositif et procede d'insertion de codes de correction d'erreurs et de reconstitution de flux de donnees, et produits correspondants
JP2005522965A (ja) * 2002-04-15 2005-07-28 ノキア コーポレイション 通信局のrlp論理層
EP2278719B1 (en) * 2002-06-11 2013-12-18 Digital Fountain, Inc. Decoding of chain reaction codes through inactivation
CA2492751C (en) * 2002-07-16 2012-06-12 Nokia Corporation A method for random access and gradual picture refresh in video coding
US6985459B2 (en) * 2002-08-21 2006-01-10 Qualcomm Incorporated Early transmission and playout of packets in wireless communication systems
EP1559229A1 (en) * 2002-10-30 2005-08-03 Koninklijke Philips Electronics N.V. Adaptative forward error control scheme
ATE410029T1 (de) * 2002-11-18 2008-10-15 British Telecomm Videoübertragung
US6897761B2 (en) * 2002-12-04 2005-05-24 Cts Corporation Ball grid array resistor network
US7324555B1 (en) * 2003-03-20 2008-01-29 Infovalue Computing, Inc. Streaming while fetching broadband video objects using heterogeneous and dynamic optimized segmentation size
US7610487B2 (en) * 2003-03-27 2009-10-27 Microsoft Corporation Human input security codes
US7266147B2 (en) * 2003-03-31 2007-09-04 Sharp Laboratories Of America, Inc. Hypothetical reference decoder
US20050041736A1 (en) * 2003-05-07 2005-02-24 Bernie Butler-Smith Stereoscopic television signal processing method, transmission system and viewer enhancements
US7391717B2 (en) * 2003-06-30 2008-06-24 Microsoft Corporation Streaming of variable bit rate multimedia content
US20050028067A1 (en) * 2003-07-31 2005-02-03 Weirauch Charles R. Data with multiple sets of error correction codes
IL157886A0 (en) * 2003-09-11 2009-02-11 Bamboo Mediacasting Ltd Secure multicast transmission
ATE479142T1 (de) * 2003-10-14 2010-09-15 Panasonic Corp Datenumsetzer
US7650036B2 (en) * 2003-10-16 2010-01-19 Sharp Laboratories Of America, Inc. System and method for three-dimensional video coding
US7168030B2 (en) * 2003-10-17 2007-01-23 Telefonaktiebolaget Lm Ericsson (Publ) Turbo code decoder with parity information update
EP1528808A3 (en) * 2003-10-27 2008-03-26 Matsushita Electric Industrial Co., Ltd. Apparatus for receiving a broadcast signal
CN103124182B (zh) * 2004-05-07 2017-05-10 数字方敦股份有限公司 文件下载和流系统
US20060037057A1 (en) * 2004-05-24 2006-02-16 Sharp Laboratories Of America, Inc. Method and system of enabling trick play modes using HTTP GET
US8112531B2 (en) * 2004-07-14 2012-02-07 Nokia Corporation Grouping of session objects
US7885337B2 (en) * 2004-08-23 2011-02-08 Qualcomm Incorporated Efficient video slicing
JP4405875B2 (ja) * 2004-08-25 2010-01-27 富士通株式会社 エラー訂正用データの生成方法及び生成装置並びに生成プログラム及び同プログラムを格納したコンピュータ読み取り可能な記録媒体
KR20060065482A (ko) * 2004-12-10 2006-06-14 마이크로소프트 코포레이션 스트리밍 미디어 데이터의 코딩 비트 레이트의 제어 시스템및 프로세스
EP1856911A4 (en) * 2005-03-07 2010-02-24 Ericsson Telefon Ab L M SWITCHING MULTIMEDIA CHANNELS
US7450064B2 (en) * 2005-03-22 2008-11-11 Qualcomm, Incorporated Methods and systems for deriving seed position of a subscriber station in support of unassisted GPS-type position determination in a wireless communication system
US8683066B2 (en) * 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US7676735B2 (en) * 2005-06-10 2010-03-09 Digital Fountain Inc. Forward error-correcting (FEC) coding and streaming
US7644335B2 (en) * 2005-06-10 2010-01-05 Qualcomm Incorporated In-place transformations with applications to encoding and decoding various classes of codes
US20070006274A1 (en) * 2005-06-30 2007-01-04 Toni Paila Transmission and reception of session packets
US20070022215A1 (en) * 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
JP3996631B2 (ja) * 2005-09-09 2007-10-24 松下電器産業株式会社 画像処理方法、画像記録方法、画像処理装置および画像ファイルフォーマット
US8879857B2 (en) * 2005-09-27 2014-11-04 Qualcomm Incorporated Redundant data encoding methods and device
US20070078876A1 (en) * 2005-09-30 2007-04-05 Yahoo! Inc. Generating a stream of media data containing portions of media files using location tags
US7164370B1 (en) * 2005-10-06 2007-01-16 Analog Devices, Inc. System and method for decoding data compressed in accordance with dictionary-based compression schemes
CN100442858C (zh) * 2005-10-11 2008-12-10 华为技术有限公司 分组网络中多媒体实时传输的唇同步方法及其装置
EP1969857B1 (en) * 2006-01-05 2012-03-28 Telefonaktiebolaget LM Ericsson (publ) Media container file management
EP1985022B1 (en) * 2006-02-08 2011-06-08 Thomson Licensing Decoding of raptor codes
JP5194465B2 (ja) * 2006-03-08 2013-05-08 Jfeスチール株式会社 塗装鋼板、加工品および薄型テレビ用パネルならびに塗装鋼板の製造方法
TWM302355U (en) * 2006-06-09 2006-12-11 Jia-Bau Jeng Fixation and cushion structure of knee joint
US9380096B2 (en) * 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9432433B2 (en) * 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US8209736B2 (en) * 2006-08-23 2012-06-26 Mediatek Inc. Systems and methods for managing television (TV) signals
US20080066136A1 (en) * 2006-08-24 2008-03-13 International Business Machines Corporation System and method for detecting topic shift boundaries in multimedia streams using joint audio, visual and text cues
JP2008109637A (ja) * 2006-09-25 2008-05-08 Toshiba Corp 動画像符号化装置及びその方法
US8428013B2 (en) * 2006-10-30 2013-04-23 Lg Electronics Inc. Method of performing random access in a wireless communcation system
WO2008084876A1 (en) * 2007-01-11 2008-07-17 Panasonic Corporation Method for trick playing on streamed and encrypted multimedia
US8126062B2 (en) * 2007-01-16 2012-02-28 Cisco Technology, Inc. Per multi-block partition breakpoint determining for hybrid variable length coding
JP2008283571A (ja) * 2007-05-11 2008-11-20 Ntt Docomo Inc コンテンツ配信装置、コンテンツ配信システム、およびコンテンツ配信方法
CN101690229A (zh) * 2007-06-26 2010-03-31 诺基亚公司 用于指示时间层切换点的系统和方法
US7917702B2 (en) * 2007-07-10 2011-03-29 Qualcomm Incorporated Data prefetch throttle
EP2203836A4 (en) * 2007-09-12 2014-11-05 Digital Fountain Inc GENERATING AND COMMUNICATING SOURCE IDENTIFICATION INFORMATION TO ENABLE RELIABLE COMMUNICATIONS
US8346959B2 (en) * 2007-09-28 2013-01-01 Sharp Laboratories Of America, Inc. Client-controlled adaptive streaming
US8855199B2 (en) * 2008-04-21 2014-10-07 Nokia Corporation Method and device for video coding and decoding
US8638796B2 (en) * 2008-08-22 2014-01-28 Cisco Technology, Inc. Re-ordering segments of a large number of segmented service flows
US8325796B2 (en) * 2008-09-11 2012-12-04 Google Inc. System and method for video coding using adaptive segmentation
US8743906B2 (en) * 2009-01-23 2014-06-03 Akamai Technologies, Inc. Scalable seamless digital video stream splicing
US8918533B2 (en) * 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) * 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
KR20120010089A (ko) * 2010-07-20 2012-02-02 삼성전자주식회사 Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치
US9131033B2 (en) * 2010-07-20 2015-09-08 Qualcomm Incoporated Providing sequence data sets for streaming video data
US9596447B2 (en) * 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US8806050B2 (en) * 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
KR101737325B1 (ko) * 2010-08-19 2017-05-22 삼성전자주식회사 멀티미디어 시스템에서 멀티미디어 서비스의 경험 품질 감소를 줄이는 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1714577A (zh) * 2002-11-18 2005-12-28 英国电讯有限公司 视频传输

Also Published As

Publication number Publication date
JP2014014107A (ja) 2014-01-23
JP5788442B2 (ja) 2015-09-30
US20100211690A1 (en) 2010-08-19
JP2012518347A (ja) 2012-08-09
EP2396968A1 (en) 2011-12-21
CN102318348A (zh) 2012-01-11
WO2010094003A1 (en) 2010-08-19
TW201110710A (en) 2011-03-16

Similar Documents

Publication Publication Date Title
CN102318348B (zh) 数据流的块划分
US10432982B2 (en) Adaptive bitrate streaming latency reduction
JP5536811B2 (ja) 動画像符号化装置及び動画像符号化方法
EP2649792B1 (en) Pre-buffering audio/video stream pairs
US8290036B2 (en) Method, apparatus and system for concurrent processing of multiple video streams
CN101904170B (zh) 用于传达视频流中的串接属性和图片顺序的方法和系统
US10958702B1 (en) Timeout optimization for streaming video
US20090110060A1 (en) Method and apparatus for performing lower complexity multiple bit rate video encoding using metadata
US8850498B1 (en) Media adaptive distribution system and method
CN105191322A (zh) 使用按需转码的多画面网络数字视频记录的系统和方法
CN102396225B (zh) 用于可靠实时传输的图像和视频的双模式压缩
WO2010023504A1 (en) A method of switching from a first encoded video stream to a second encoded video stream
US11350104B2 (en) Method for processing a set of images of a video sequence
US9258622B2 (en) Method of accessing a spatio-temporal part of a video sequence of images
KR20060011426A (ko) Av데이터 수신시 버퍼량을 컨텐츠 속성에 따라탄력적으로 조절하는 방법 및 장치
US20140226711A1 (en) System and method for self-adaptive streaming of multimedia content
KR20160028985A (ko) 적어도 2 개의 연속 세그먼트들로 스플릿되는 멀티미디어 컨텐츠를 수신하기 위한 방법 및 클라이언트 단말, 그리고 대응하는 컴퓨터 프로그램 제품 및 컴퓨터 판독가능 매체
US10002644B1 (en) Restructuring video streams to support random access playback
KR101240808B1 (ko) 결정론적 패킷 누락에 대한 방법 및 시스템
EP3210383A1 (en) Adaptive bitrate streaming latency reduction
CN101690232A (zh) 运动图像数据编码设备及其控制方法
Go et al. A systematic reallocation and prioritization scheme for error-resilient transmission of video packets
Kramer et al. Optimization of Interactive Live Free Viewpoint Multiview Video Streaming Bandwidth
CN118590722A (zh) 基于多连接的流媒体传输方法、装置及电子设备
Yu et al. Time utility function based packet scheduling algorithm for streaming scalable media

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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: 20150401

Termination date: 20190213

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