CN1531342A - 用于无线手执设备的多媒体流系统 - Google Patents
用于无线手执设备的多媒体流系统 Download PDFInfo
- Publication number
- CN1531342A CN1531342A CNA2004100399431A CN200410039943A CN1531342A CN 1531342 A CN1531342 A CN 1531342A CN A2004100399431 A CNA2004100399431 A CN A2004100399431A CN 200410039943 A CN200410039943 A CN 200410039943A CN 1531342 A CN1531342 A CN 1531342A
- Authority
- CN
- China
- Prior art keywords
- client computer
- data
- server
- video
- convened
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- G—PHYSICS
- G04—HOROLOGY
- G04B—MECHANICALLY-DRIVEN CLOCKS OR WATCHES; MECHANICAL PARTS OF CLOCKS OR WATCHES IN GENERAL; TIME PIECES USING THE POSITION OF THE SUN, MOON OR STARS
- G04B37/00—Cases
- G04B37/0008—Cases for pocket watches and wrist watches
- G04B37/0033—Cases for pocket watches and wrist watches with cover or bottom which can slide or turn (without a spring action)
-
- G—PHYSICS
- G04—HOROLOGY
- G04B—MECHANICALLY-DRIVEN CLOCKS OR WATCHES; MECHANICAL PARTS OF CLOCKS OR WATCHES IN GENERAL; TIME PIECES USING THE POSITION OF THE SUN, MOON OR STARS
- G04B45/00—Time pieces of which the indicating means or cases provoke special effects, e.g. aesthetic effects
- G04B45/0069—Cases and fixed parts with a special shape
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种能够显示接收的视频数据的客户机。所述客户机包括配置为接收视频数据并将视频数据请求传送到服务器的网络输入/输出(IO)组件。调度线程组件配置为解码并显示所述视频数据。读者线程组件配置为通过所述网络IO获取所述视频数据。读者线程还配置为从与所述读者线程组件相关联的缓冲区向所述调度线程组件提供所述接收的视频数据。本发明还包括了用于流式传送视频/音频数据的系统、在服务器与客户机之间传送视频/音频数据的方法和计算机可读媒体。
Description
发明背景
发明领域
本发明一般涉及多媒体流式传输,更具体地说,涉及配置为适应客户机/服务器配置以在无线手持设备的低功率约束特征下交换音频/视频流的系统。
相关技术说明
便携式电子设备正不断得到增强以执行更多的功能。无线连网已扩展了这些设备的功能和要求。例如,蜂窝电话可带有彩色显示屏,并可用于播放通过无线网络从服务器下载的游戏。因为便携式电子设备的资源受约束,例如,因为功率和内存约束,所以双向点对点流协议必须配置为在与便携式电子设备相关联的约束内进行操作。
图1是无线网络上客户机/服务器关系的简化示意图。服务器100通过网络102将数据传送到客户机104。异常发生时,流协议往往将责任归于服务器100和客户机104。例如,如果客户机104未接收到由服务器100发送的分组,则客户机和服务器会进行通信以重传分组。服务器100维护每个客户机的状态,因此,服务器根据由服务器维护的客户机状态确定发送的分组。维护每个客户机的状态减少了服务器100可支持的客户机数量。更具体地说,服务器实现的状态维护消耗了计算能力,否则这些计算能力可用于为其他客户机服务。因此,所服务的客户机越多,维护状态所需的计算能力就越高。此外,用于通过网络传输数据的通信协议未配置为适应电池供电的设备的低功率要求。例如,就与无线连网相关的突发特征而言,诸如传输控制协议(TCP)之类具有交付保证的通信协议是一种浪费。此外,通信协议往往不适应无线手持设备可用的适中的内存量。
因此,需要解决先有技术的这些问题,以提供一种配置为适应手持电子设备约束特征的通信协议。
发明概述
一般地说,本发明通过提供旨在适应手持电子设备约束的流协议而满足了这些需要。应理解本发明可以多种方式实施,包括作为一种方法、一个系统、计算机可读媒体或一种设备实施。下面描述了本发明的几个发明实施例。
在一个实施例中,提供了配置为支持多媒体流式传输的系统。所述系统包括客户机和服务器。客户机与读者线程组件和调度线程组件相关联。读者线程组件与用于存储所述客户机所接收的数据的缓冲区相关联。读者线程组件还配置为执行网络输入/输出功能。调度线程组件允许解码和显示多媒体数据流。调度线程还配置为从缓冲区获取访问单元。服务器通过网络与客户机通信,并且服务器配置为将客户机指定的访问单元传送到客户机。
在另一实施例中,提供了用于流式传输数字视频/音频数据的系统。所述系统包括配置为维护客户机状态的客户机。所述系统还包括通过网络与客户机通信的服务器。用户数据报协议(UDP)使得客户机与服务器之间能够通过网络进行通信。UDP协议定义了配置为至少包含一个访问单元(AU)的分组。每个AU表示一个视频/音频数据帧。视频/音频数据帧从服务器传送到客户机。数据帧的传输是根据客户机维护的状态,由从客户机传送到服务器的发送分组启动。服务器响应收到的发送分组,传输发送分组中指定的视频数据帧。
在另一实施例中,提供了可显示接收的视频数据的客户机。所述客户机包括配置为接收视频数据并将视频数据请求传送到服务器的网络输入/输出(IO)组件。调度线程组件配置为解码并显示所述视频数据。读者线程组件配置为通过网络IO获取所述视频数据。读者线程还配置为从与读者线程组件相关联的缓冲区向调度线程组件提供接收的视频数据。
在另一实施例中,提供了一种由服务器向客户机传送视频/音频数据的方法。所述方法开始时是由客户机向服务器发送呼叫以标识流会话。随后,为响应从客户机收到的呼叫,从服务器将初始对象描述符(IOD)传送到客户机。接着,响应收到的IOD而启动数据传送。所述数据传送启动包括将表示流会话数据起始序列和流会话数据量的数据传送到服务器。起始序列和流会话数据量由客户机确定。随后,服务器为响应接收到表示起始序列和流会话数据量的数据,向客户机提供包含视频/音频数据的访问单元。
在又一实施例中,提供了具有用于从服务器将视频/音频数据传送到客户机的程序指令的计算机可读媒体。所述计算机可读媒体包括从客户机将呼叫传送到服务器以标识流会话的程序指令以及响应从客户机接收到的呼叫,从服务器将初始对象描述符(IOD)传送到客户机的程序指令。它包括了响应接收到的IOD,用于启动数据传送的程序指令。启动数据传送的程序指令包括将表示流会话数据起始序列和流会话数据量的数据传送到服务器的程序指令。它还包括响应收到的表示流会话数据起始序列和数据量的数据,向客户机提供包含视频/音频数据的访问单元的程序指令。
通过结合附图,阅读以示例方式描述本发明原理的详细说明,就可明白本发明的其他方面和优点。
附图简述
通过以下结合附图的详细说明,可容易地理解本发明,其中类似的标号表示类似的组件。
图1是无线网络上客户机/服务器关系的简化示意图;
图2是根据本发明一个实施例的客户机/服务器关系的简化示意图,其中接合了配置为适应低功率手持设备的特有约束和特征的流协议;
图3是根据本发明一个实施例,包括视频/音频数据的用户数据报协议(UDP)分组的简化示意图;
图4是根据本发明一个实施例,说明从客户机传送到服务器以请求将分组数据发送到客户机的请求配置的简化示意图;
图5是根据本发明一个实施例,表示客户机配置的简化示意图;
图6是根据本发明一个实施例,说明调度线程所用算法的方法操作的流程图;
图7是根据本发明一个实施例,说明读者线程定期调用的进程函数的方法操作的流程图;
图8是根据本发明一个实施例,说明将视频/音频数据从服务器传送到客户机的方法操作的流程图。
优选实施例详细说明
本文描述了配置为支持多媒体流式传输以进行从发送单元到接收单元的双向点对点流式传输的系统发明。然而,本领域的技术人员将明白,本发明可在不具有一些或全部这些特定细节的情况下实施。在其他情况下,未详细描述众所周知的过程操作以突出本发明。图1在“发明背景”部分描述。在本文中使用的期限(term)指参考值的+/-10%。
本发明的实施例提供了用于在客户机与服务器之间进行数据传送的系统和通信协议。客户机在本文中指播放或显示例如多媒体流等数据的设备,而服务器指发送多媒体数据流的设备。应理解在双向点对点流中,两个端点均可同时充当客户机和服务器。多媒体流协议与例如移动图像专家组(MPEG)-4标准等特定格式的数字视频和音频相关。通信协议还用于低功率手持设备。示范性低功率手持设备包括蜂窝电话、个人数字助理(PDA)、便携式个人计算机、万维网图形输入板(Web Tablet)、膝上型计算机等等。
图2是根据本发明一个实施例的客户机/服务器关系简化示意图,其中接合了配置为适应低功率手持设备的特有约束和特征的流协议。如上所述,在双向点对点流式传输中,两个端点均可同时充当客户机和服务器。因此,服务器和客户机均必须配置为在低功率手持设备内运行。服务器110配置为服务于来自其文件系统114的的预先存在的流,或者它要通过缓冲区112服务于实时编码器116所生成的流。流数据通过无线或有线网络118传送到客户机120。客户机120包括显示屏124中的缓冲区122。应理解,客户机120最适合确定客户机中正在进行的操作。也就是说,客户机可最好地确定是否存在坏连接、需要的数据、客户机具有的容量多大等等。因此,本文所述实施例利用了客户机知识,即由客户机向服务器提供信息以指示客户机需要的内容,而不是由服务器维护客户机的状态。此外,客户机端增加的计算不会伴随很大的代价。因此,由于服务器无需保持每个客户机的状态而能够为其他客户机服务,这对服务器有利。
图3是根据本发明一个实施例,包括视频/音频数据的用户数据报协议(UDP)分组的简化示意图。UPD分组30包括包含图像数据的访问单元(AU)132a-132n。此外,从AU1132a、AU2132b到AUn132n的每个访问单元包含视频/音频数据帧。在一个实施例中,视频/音频数据采用MPEG-4标准格式。然而,在另一实施例中,UDP分组130的大小是不定的,最大分组大小为8192字节。UDP协议130允许分组包含64千字节的数据,但此限制通常在现实网络中较低。应理解本文所述的流协议针对的是低比特率视频,即每秒128千比特或更低比特率的视频。因此,由于服务器不维护每个客户机的状态,客户机将发起呼叫并指定要传送到客户机的数据。相应地,服务器发送UDP分组130中所示的请求信息。因此,通过如本文所述,在例如UDP等不保证交付协议之上构建系统,更好地适应了移动设备的突发特征。
图4是根据本发明一个实施例,说明从客户机传送到服务器以请求将分组数据发送到客户机的请求配置的简化示意图。在一个实施例中,当客户机启动数据传送,然后将SEND(发送)分组发送到服务器时包括了请求。SEND分组指示起始序列号并且也可能指示跳跃列表。例如,图4的块136指示了起始序列号40。由于客户机可能已经具有对应于块138中区域51-80和块142中区域116-165的数据,因此,SEND分组数据可包括跳跃列表。跳跃列表将指示发送在块136中指定的分组40-50和在块140中指定的分组81-115,同时跳过在块138中指定的分组51-80和在块142中指定的分组116-135。
在一个实施例中,下面所示的不同分组在首部以空结束行格式化。在此实施例中,在最后一行后将会有两个NULI。对于带有除首部中协议信息以外的数据的分组,如初始对象描述符(IOD)分组和访问单元(AU)分组,数据始终于固定偏移处开始。在一个实施例中,偏移为512字节。如下面表1所示,不同的分组包括OPEN分组、IOD分组、AU分组、SEND分组和CLOSE分组。相应地,协议的设计简单,并且满足具有灵活性却未使协议带有大量选项的目标。也就是说,系统的智能在于客户机和服务器而不是在于协议。如下面进一步解释所述,客户机选择SEND分组中的值,随后服务器基于手持设备的约束,智能地选择访问单元分组中要发送的内容。
表1OPENsession-id stream-name IOD session-idAUsession-id [au-num offset] *SENDsession-id req-num available slots available-buff-in-bvtesstart-seq-num[skip-seq-num numtoSkip] *CLOSEsession-id |
表1包括不同类型的分组以及在各类型的分组内获取的信息。表1中带有*号的方括号中的值表示可能存在零个或零个以上这些用NULL分开的值。在一个实施例中,由SEND分组的
skip-seq-num numToSkip数据表示的总跳跃行数小于设为256的最大跳跃行数。如上所述,在另一实施例中,对于IOD和AU分组,数据从设为512的偏移处开始。
图5是根据本发明一个实施例,表示客户机配置的简化示意图。客户机120配置为接收包含访问单元AU1132a到AUn132n的UDP分组130。网络输入/输出块150接收输入UDP分组130。读者线程块152也称为RT,它配置为执行网络输入/输出。调度线程块154也称为ST,它与读者线程块152通信。调度线程块154配置为解码并显示视频数据流。在一个实施例中,调度线程块154请求读者线程块152显示图像所需的下一访问单元。如果该访问单元在缓冲区156中,则将该访问单元传递到调度线程154,以便解码并最终在显示屏158上显示。如果该访问单元不在缓冲区156中,则读者线程块152使用称为preferbuffering(优选缓冲)的参数。Preferbuffering参数是表示用户是否宁愿以持续播放时可能跳过若干访问单元为代价而不愿错过该流的任何部分的百分比指示。视preferbuffering参数的值而定,读者线程152将等待一定时间以确定是否可获取所需的访问单元,这将在下面更详细地加以解释。如果读者线程块152无法获取所需的数据,则读者线程将返回空数据并且解码器的错误隐藏算法将提供数据以填充空数据。
图6是根据本发明一个实施例,说明调度线程中所用算法的方法操作的流程图。该方法从操作170开始,其中获取了下一访问单元。在一个实施例中,下一访问单元是从与读者线程相关联的缓冲区获取的。该方法随后前进到操作172,在该操作中将视频流数据解码,然后在操作174中显示解码的视频流数据。应理解此处可使用任何适用的解码算法。在一个实施例中,访问单元中包含的数据按照移动图像专家组(MPEG)-4格式来格式化。该方法从操作174前进到操作176,在该操作中,调度线程会在由播放速率预定的时间内休眠。例如,如果播放速率是每秒15帧,则调度线程将休眠大约1/15秒的时间。该方法随后转到判决操作178,在该操作中确定流是否结束。如果流未结束,则该方法回到操作170,以便如上所述继续获取下一访问单元。如果流已结束,则该方法终止。表2显示了伪码,该伪码还可通过图6所示的流程图来说明。
表2While(流尚未结束)do获取下一AU(从RT的缓冲区)解码并显示在播放速率确定的时间内休眠 |
图7是根据本发明一个实施例,说明读者线程定期调用的进程函数所用的方法操作的流程图。在一个实施例中,process()函数的调用周期设为200毫秒。应理解,下述进程函数也可在网络层检测到输入分组的其他时间调用。该进程函数使用称为read-packet(读取分组)函数和have-enough-buffered函数的两个帮助函数。表3到表5中显示了每个这些函数的注释伪码。表3提供了称为readpacket()函数的帮助函数伪码。表4提供了称为haveEnoughBuffered()函数的帮助函数伪码。表5提供了称为proces()函数的帮助函数伪码。参照图7描述了process()函数伪码的替代图解。
表3readPacket(){while(“真”){从网络读取分组:如果分组不可用,则退出循环并返回;解析分组;如果是CLOSE分组,则设置标志以通知RT并退出循环;如果它是AU分组,则对于分组中的每个AU将AU复制到RT的缓冲区中,记下获取此AU的时间} |
表4haveEnoughBuffered(){如果要为AU使用B缓冲槽,并且如果从下一所需AU开始的缓冲区占用率(即可用AU)至少为(preferBuffering*B/200),则返回“真”,否则返回“假”。} |
表5process(){如果由于已知数据可读取而调用此函数,则调用readPacket();如果ST正等待AU准备就绪如果缓冲区中的确有该AU如果在时间T1(算法参数)之前获得AU,或者如果haveEnoughBuffered()为“真”,则发信号唤醒ST并获取AU如果我们没有AU,但最近通过在足够近(参数T2)的时间内发送SEND分组以向服务器请求该AU,则返回否则不存在紧急情况如果haveEnoughBuffered()为“真”,则返回此时,发送请求:ST正等待AU或者缓冲区相当空创建SEND分组以请求从尚不具有且尚未到期的下一AU号 |
开始的AU。同时指示空闲的缓冲槽数。尽最大可能使用 [skip-seq-num numToSkip] *行在SEND分组中指示已具有的AU。例如,如果我们请求从编号50开始的AU,但缓冲区中已经具有AU 51-57和64-68(这可能因分组丢失而出现),则跳跃行将为:517645如果可用AU分段太多(要求很长的跳跃列表来指出它们全部),则客户机只需选择在结尾修整跳跃列表。向服务器发送SEND分组。 |
应理解,通过改变表3、表4和表5中提供的一些参数,可修改客户机行为。在haveEnoughBuffered()函数的伪码中使用的参数B表示客户机缓冲槽数。在一个实施例中,每个访问单元(AU)有一个缓冲槽。在另一实施例中,B等于32。参数preferbuffering是何时显示视频数据或者接收并缓冲更多视频数据的百分比指示符。因此,preferbuffering参数充当缓冲区占用率阈值,并在haveEnoughBuffered()函数中使用。在一个实施例中,process()函数中使用的参数T1设为图像帧之间的一半时间。参数T2表示客户机在发送另一请求时愿意等待请求的AU到达的时间。在一个实施例中,T2设为与因定期或检测到输入分组而连续三次调用process()函数所用时间相等的动态时间量。
在一个实施例中,readpacket()函数配置为基本上读尽连接端上可用的所有数据。也就是说,readpacket()函数从例如图5的网络I/O等网络连接读取所有数据,并将读取的所有数据放入缓冲区中相应的缓冲槽内。进程函数在网络层通过套接字调用。在一个实施例中,与该套接字相关的事件,如具有要读取的数据,触发对进程函数的调用。应理解,事件可通过标志传送到进程函数。也就是说,在调用process()函数时,由于定期调用或者由于通过标志而知道数据可用,process()函数将知道它是否被调用。此标志信息用于图7的判决操作180中。
图7所示的方法从判决操作180开始,在该操作中确定是否因已知数据可用而调用了数据。如果因为已知数据可用而调用了数据,则该方法前进到操作182,在该操作中调用读取分组函数。例如,在客户机的缓冲区中数据可用,因此,readpacket()函数将复制并读取该数据。如果不是因为已知数据可用而调用了数据,则该方法前进到判决操作184,在该操作中确定调度线程是否正在等待访问单元准备就绪。如果调度线程在判决操作184中等待访问单元准备就绪,则该方法前进到判决操作186,在该操作中确定访问单元是否在缓冲区中。如果访问单元在缓冲区中,则该方法转到判决操作188,在该操作中确定是否在时间窗T1前获得了访问单元。如果访问单元是在时间窗T1前获取的,则该方法前进到操作190,在该操作中向发信号调度线程,以使其醒来并获取访问单元。
然后,图7的方法继续到操作196,在该操作中发送请求到服务器,请求从客户机尚不具有且尚未到期的下一访问单元开始的至少一个访问单元。此处,在一个实施例中客户机可指示空闲的缓冲槽数。在另一实施例中,客户机将指示除客户机已具有的起始序列之外的访问单元数。也就是说,此处可包括跳跃列表。例如,表1的SEND分组在传送到服务器时可包括此数据。因此,客户机维护其自己的状态而不是由服务器维护状态。如果在时间窗T1内未获取访问单元,则返回判决操作188,随后该方法继续到判决操作194,在该操作中确定have-enough-buffered函数是否返回了“真”值。如果have-enough-buffered函数返回了“真”值,则该方法转到操作190,在该操作中调度线程会收到信号,以便醒来并获取访问单元。该方法随后如上所述从操作190继续。如果确定缓冲区中没有访问单元,则返回判决操作186,随后该方法继续到判决操作192。在判决操作192中,确定客户机是否在时间窗T2内向服务器请求了该特定访问单元。如果服务器未在时间窗T2内请求该访问单元,则该方法前进到操作196,并如上所述继续。如果客户机确实在时间窗口内请求了访问单元,则该方法会终止,即客户机等待接收访问单元。回到判决操作184,如果调度线程未正在等待访问单元准备就绪,则该方法前进到判决操作198,在该操作中确定have-enough-buffered函数返回的值是否为“真”。如果have-enough-buffered函数返回的值是“真”,则该方法会终止。如果have-enough-buffered函数未返回“真”值,则该方法前进到操作196并如上所述继续。应理解图7以图示方式说明了表5的伪码。
图8是根据本发明一个实施例,说明将视频/音频数据从服务器传送到客户机的方法操作的流程图。该方法从操作210开始,在该操作中由客户机向服务器发送呼叫以标识流会话。此处,从客户机到服务器的呼叫配置为如上所述的OPEN分组。该方法然后前进到操作212,在该操作中为响应从客户机收到的呼叫,由服务器向客户机传送初始对象描述符(IOD)分组。如上所述,初始对象描述符分组包含从固定偏移处开始的数据,并且数据是内容特定的。在一个实施例中,IOD分组包括描述一组基本流的信息,并且还传送访问该内容所需处理资源而需要的配置文件和级别信息集。然后该方法继续到操作214,在该操作中从客户机向服务器传送一个或多个呼叫。此处,从客户机到服务器的呼叫可指示所需的访问单元数据以及缓冲区可用性和占用率。此外,可从客户机传输结束会话的请求到服务器,即结束分组。
图8中的方法然后转到判决操作216,在该操作中确定是否从客户机向服务器发送了结束会话的请求。如果发送了结束会话的请求,则该方法在会话结束时终止。如果未发送结束会话的请求,则该方法前进到操作218,在该操作中向服务器发送一个或多个呼叫。在操作214中时,从客户机到服务器的呼叫可指示所需的访问单元数据以及缓冲区可用性和占用率。或者,可从客户机向服务器发送结束会话的请求,即结束分组。该方法然后继续到判决操作220,在该操作中确定结束会话的请求是否从客户机发送到服务器。如果发送了结束会话的请求,则该方法在会话结束时终止。如果未发送结束会话的请求,则该方法返回操作214并如上所述重复。应理解客户机启动了数据传送。在一个实施例中,客户机通过向服务器发送SEND分组,指示客户机所需的AU以及如上所述的缓冲区占用和可用性信息。在另一实施例中,音频/视频数据在AU分组内从服务器发送到客户机。
客户机可设有快进和/或快退功能。这里,就快进或快退功能而言,仅对内部(I)帧而非预测(P)帧和双向(B)帧作了说明。由于客户机没有告知哪些帧是I帧的信息,因此,客户机要从服务器请求该信息。例如,客户机可发送分组,以请求服务器提供I帧号列表。然后服务器作出响应,提供I帧号列表或第一个I帧号以及I帧的周期。客户机请求可称为摘要请求分组,而服务器响应可称为摘要响应分组。因此,摘要请求分组和摘要响应分组是可添加到表1所述分组类型的两种其他类型的分组。
概括地说,上述发明描述了通过简化的通信协议交换视频/音频数据的客户机/服务器关系。所述通信协议经调整以适应无线连网和有关设备的特征。也就是说,系统是建立在诸如UDP等不保证交付的低级协议之上的。同时还适应了手持电子设备配备的显示屏的视频尺寸小的特征。例如,具有176像素×144行的四分之一公用中分辨率图像格式(QCIF)和具有352像素×288行的公用中分辨率图像格式(CIF)通常用于如上所述的手持电子设备上的显示屏。这种低比特率和低分辨率视频的多个访问单元(每个含一个数据帧)可装在单个UDP分组内。上述的系统配置利用了此特征,具体是通过允许客户机将多个请求合在单个UDP分组内和允许服务器将多个响应合在单个UDP分组内来利用的。因此,极大地减少了连网开销和分段内存访问,从而降低了功耗。在一个实施例中,客户机,即手持电子设备是功率可伸缩的。也就是说,在手持设备电池的可用电力减少时,设备的视频解码器切换为消耗更少电力的视频解码配置。有关视频解码器功率可伸缩性的更详细的信息,请参阅题为“功率可伸缩的数字视频解码”(POWER SCALABLE DIGITAL VDEODECODING)、于2003年2月7日提交的、序号为10/360977的美国专利申请。此申请通过引用全部结合于本文中。
应理解本文所述的系统和通信协议针对的是低比特率,即小于每秒128千比特的比特率。但是,上述实施例可应用到更高的比特率。还应理解上述实施例可用软件或硬件实现。对于软件实现,读者线程和调度线程模块可作为并发运行的单独线程实现。对于硬件实现,读者线程和调度线程模块可采用使读者线程和调度线程模块并行运行的控制逻辑来实现。
理解了上述实施例,应理解本发明可采用各种涉及存储在计算机系统中的数据的计算机控制的操作。这些操作包括需要具体处理物理量的操作。这些量通常但并不一定采用可加以存储、传送、组合、比较以及其他处理的电信号或磁信号的形式。此外,执行的处理在术语上常称为诸如展现、识别、确定或比较。
上述发明可通过其他计算机系统配置来实现,包括手持设备、微处理器系统、基于微处理器或可编程的消费电子、微型计算机、大型计算机等。本发明也可在分布式计算机环境中实现,在这些环境中,由通过通信网络链接的远程处理设备执行任务。
本发明也可具体体现为计算机可读媒体上的计算机可读代码。计算机可读媒体是可存储数据的任何数据存储设备,这些数据然后可由计算机系统读取。计算机可读媒体还包括含有计算机代码的电磁载波。计算机可读媒体的示例包括硬盘驱动器、网络连接存储系统(NAS)、只读存储器、随机存取存储器、CD-ROM、CD-R、CR-RW、磁带以及其他光学和非光学数据存储设备。计算机可读媒体也可分布在网络连接的计算机系统上,以便以分布方式存储和执行计算机可读代码。
虽然为便于理解在一定程度上详细描述了上述发明,但可理解在不脱离随附权利要求书范围的情况下可实现某些改变和修改。因此,本发明实施例应视为说明性而非限制性的,并且本发明并不限于本文提供的细节,而是可在所附权利要求书范围及其等效范围内进行修改。在权利要求书中,除非权利要求书中明确指明,否则,各单元和/或步骤并不暗示任何特定的操作顺序。
Claims (30)
1.一种配置为支持多媒体流式传输的系统,它包括:
客户机,所述客户机与读者线程组件和调度线程组件相关联;所述读者线程组件与用于存储所述客户机所接收的数据的缓冲区相关联;所述读者线程组件还配置为执行网络输入/输出功能;所述调度线程组件允许解码和显示多媒体数据流;所述调度线程还配置为从所述缓冲区获取访问单元;以及
通过网络与所述客户机通信的服务器,所述服务器配置为将所述客户机指定的访问单元传送到所述客户机。
2.如权利要求1所述的系统,其特征在于所述读者线程配置为通过将发送分组传送到所述服务器而启动到所述客户机的数据传送。
3.如权利要求2所述的系统,其特征在于所述发送分组包括指示图像数据帧的起始序列号、在所述起始序列号后请求发送到所述客户机的图像数据帧数,以及所述客户机已存储的、在所述请求的帧数内的跳跃列表指出的图像数据帧。
4.如权利要求1所述的系统,其特征在于所述客户机是可实现功率可伸缩性的无线手持设备,所述功率可伸缩性在所述无线手持设备的可用电力下降时使视频质量下降。
5.如权利要求1所述的系统,其特征在于所述访问单元包含在配置为通过用户数据报协议(UDP)经所述网络传输的分组内。
6.用于流式传输数字视频/音频数据的系统,它包括:
配置为维护所述客户机状态的客户机;
通过网络与所述客户机通信的服务器;
通过所述网络在所述客户机与所述服务器之间实现通信的用户数据报协议(UDP);所述UDP协议定义了配置为至少包含一个访问单元(AU)的分组;每个所述至少一个AU表示视频/音频数据的一个帧;所述视频/音频数据的一个帧从所述服务器传送到所述客户机;所述一个数据帧的传输是根据所述客户机维护的所述状态,由从所述客户机传送到所述服务器的发送分组启动的,其特征在于所述服务器响应收到的所述发送分组,传输所述发送分组中指定的所述视频数据的一个帧。
7.如权利要求6所述的系统,其特征在于所述客户机的所述状态包括与所述客户机需要的视频/音频数据起始帧相关联的数据、与从所述起始帧开始的视频/音频数据序列相关联的数据以及与所述客户机已存储的部分所述视频/音频数据序列相关联的数据。
8.如权利要求6所述的系统,其特征在于所述客户机与所述服务器通过无线网络通信。
9.如权利要求6所述的系统,其特征在于所述分组的格式带有空的结束行。
10.一种能够显示接收的视频数据的客户机,它包括:
配置为接收视频数据并传输视频数据请求到服务器的网络输入/输出(IO)组件;
配置为解码并显示所述视频数据的调度线程组件;以及
配置为通过所述网络IO获取所述视频数据的读者线程组件;所述读者线程还配置为从与所述读者线程组件相关联的缓冲区向所述调度线程组件提供所述接收的视频数据。
11.如权利要求10所述的客户机,其特征在于所述读者线程组件调用进程函数以获取所述视频数据。
12.如权利要求11所述的客户机,其特征在于所述进程函数确定所述视频数据是否在所述缓冲区中。
13.如权利要求10所述的客户机,其特征在于所述读者线程组件调用帮助函数以请求数据,所述帮助函数指定为所述客户机请求的数据开始点和数据量。
14.如权利要求10所述的客户机,其特征在于所述读者线程组件调用帮助函数以读取存储在所述缓冲区中的数据。
15.一种由服务器向客户机传送视频/音频数据的方法,它包括:
由所述客户机向所述服务器发送呼叫以标识流会话;
为响应从所述客户机收到的所述呼叫,从所述服务器将初始对象描述符(IOD)传送到所述客户机;
响应收到的所述IOD而启动数据传送,所述启动包括:
将表示所述流会话数据起始序列和流会话数据量的数据传送到所述服务器,所述起始序列和所述流会话数据量由所述客户机确定;以及
为响应接收到表示所述起始序列和所述流会话数据量的数据,向所述客户机提供包含所述视频/音频数据的访问单元。
16.如权利要求15所述的方法,其特征在于为响应接收到的所述OID而启动所述数据传送的所述方法操作包括:
调用进程函数;
确定在与所述客户机相关联的缓冲区中所需流会话数据是否可用;
如果所需的流会话数据不可用,则所述方法包括发送请求以获取所述需要的流会话数据。
17.如权利要求15所述的方法,其特征在于所述呼叫是指示会话标识和流会话名称的OPEN分组。
18.如权利要求15所述的方法,其特征在于所述IOD指定所述客户机访问所述流会话访问所需处理资源而需要的配置文件和级别信息集。
19.如权利要求15所述的方法,其特征在于所述SEND分组由所述客户机用于将流会话数据的所述起始序列和所述数据量传送到所述服务器。
20.如权利要求19所述的方法,其特征在于所述SEND分组包括跳跃列表,所述跳跃列表指示所述客户机可访问的所述流会话数据部分。
21.如权利要求15所述的方法,其特征在于所述访问单元在分组中从所述服务器传送到所述客户机,每个所述分组包含一个或多个访问单元,每个访问单元对应于所述流会话视频/音频数据的单个帧。
22.如权利要求15所述的方法,其特征在于所述系统建立在用户数据报协议上。
23.如权利要求16所述的方法,其特征在于所述进程函数由与所述客户机相关联的读者线程定期调用。
24.如权利要求16所述的方法,其特征在于所述进程函数确定所述访问单元在与所述客户机相关联的缓冲区内是否可用;以及
如果所述访问单元可用,则所述方法包括从与所述客户机相关联的缓冲区和网络连接之一读取所述访问单元;
如果所述访问单元不可用,则所述方法包括确定是否已超出缓冲区占用率阈值,其中,如果已超出所述缓冲区占用率阈值,则从所述客户机发送请求到所述服务器,以请求其他访问单元。
25.如权利要求24所述的方法,其特征在于如果未超出所述缓冲区占用率阈值,则客户机等待所述访问单元变为可用。
26.一种具有用于从服务器将视频/音频数据传送到客户机的程序指令的计算机可读媒体,它包括:
从所述客户机将呼叫传送到所述服务器以标识流会话的程序指令;
用于响应从所述客户机接收到的所述呼叫,从所述服务器将初始对象描述符(IOD)传送到所述客户机的程序指令;
用于响应接收到的所述IOD而启动数据传送的程序指令,所述程序指令包括:
将表示流会话数据起始序列和所述流会话数据量的数据传送到所述服务器的程序指令,所述起始序列和所述数据量由所述客户机确定;以及响应收到的表示所述流会话数据起始序列和数据量的数据,向所述客户机提供包含所述视频/音频数据的访问单元的程序指令。
27.如权利要求26所述的计算机可读媒体,其特征在于为响应接收的所述IOD而启动数据传送的所述程序指令包括,
调用进程函数的程序指令;
确定在与所述客户机相关联的缓冲区中所需的流会话数据是否可用的程序指令;以及
如果所述所需的流会话数据不可用,则发送所述所需流会话数据请求的程序指令。
28.如权利要求27所述的计算机可读媒体,其特征在于调用所述进程函数的所述程序指令由与所述客户机相关联的读者线程定期调用。
29.如权利要求27所述的计算机可读媒体,其特征在于所述进程函数的所述程序指令确定在与所述客户机相关联的缓冲区内所述访问单元是否可用。
30.如权利要求29所述的计算机可读媒体,其特征在于还包括:
如果所述访问单元可用,则从与所述客户机相关联的缓冲区和网络连接之一读取所述访问单元的程序指令;以及
如果所述访问单元不可用,则确定是否已超出缓冲区占用率阈值的程序指令,其中,如果已超出所述缓冲区占用率阈值,则执行从所述服务器请求其他访问单元的程序指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/390310 | 2003-03-14 | ||
US10/390,130 US20040181611A1 (en) | 2003-03-14 | 2003-03-14 | Multimedia streaming system for wireless handheld devices |
US10/390130 | 2003-03-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1531342A true CN1531342A (zh) | 2004-09-22 |
CN100446562C CN100446562C (zh) | 2008-12-24 |
Family
ID=32962345
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100399431A Expired - Fee Related CN100446562C (zh) | 2003-03-14 | 2004-03-12 | 用于无线手执设备的多媒体流系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20040181611A1 (zh) |
KR (1) | KR100589725B1 (zh) |
CN (1) | CN100446562C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104159142A (zh) * | 2014-08-06 | 2014-11-19 | 乐视网信息技术(北京)股份有限公司 | 一种设备的视频软解码方法和装置 |
CN113906722A (zh) * | 2019-06-07 | 2022-01-07 | 伊顿智能动力有限公司 | 用于向多个远程装置的多线程数据传输的系统和方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100384181C (zh) * | 2004-11-09 | 2008-04-23 | 北京中星微电子有限公司 | 一种ip网络环境下的多路音频缓冲处理的方法 |
CN100375091C (zh) * | 2004-11-16 | 2008-03-12 | 萧学文 | 一种基于brew平台实现声音流式播放的方法及系统 |
KR100757195B1 (ko) * | 2005-12-26 | 2007-09-07 | 주식회사 팬택 | 순차 조각 다운로드를 이용한 가변 비트율 의사스트리밍방법 |
US20090172187A1 (en) * | 2007-12-31 | 2009-07-02 | Eetay Natan | Techniques to enable firewall bypass for open mobile alliance device management server-initiated notifications in wireless networks |
CN103891303B (zh) * | 2011-08-16 | 2018-03-09 | 黛斯悌尼软件产品有限公司 | 基于脚本的视频呈现 |
CN105872696A (zh) * | 2016-03-29 | 2016-08-17 | 杭州施强网络科技有限公司 | 一种流媒体直播中音频数据送解播放方法 |
US10785279B2 (en) * | 2016-12-29 | 2020-09-22 | Facebook, Inc. | Video encoding using starve mode |
CN106658117A (zh) * | 2016-12-30 | 2017-05-10 | 百度在线网络技术(北京)有限公司 | 音/视频数据的处理方法及装置 |
CN110832875B (zh) * | 2018-07-23 | 2022-02-22 | 深圳市大疆创新科技有限公司 | 视频处理方法、终端设备、机器可读存储介质 |
CN111954067B (zh) * | 2020-09-01 | 2022-10-04 | 杭州视洞科技有限公司 | 一种提高视频渲染效率与用户交互流畅度的方法 |
CN113079402B (zh) * | 2021-03-30 | 2023-06-23 | 苏州博动戎影医疗科技有限公司 | 一种图像显示方法、装置、设备及存储介质 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5649299A (en) * | 1993-10-27 | 1997-07-15 | Motorola, Inc. | Apparatus and method for adapting a digital radiotelephone system to increased subscriber traffic |
US5469471A (en) * | 1994-02-01 | 1995-11-21 | Qualcomm Incorporated | Method and apparatus for providing a communication link quality indication |
US6005600A (en) * | 1996-10-18 | 1999-12-21 | Silcon Graphics, Inc. | High-performance player for distributed, time-based media |
IL123819A (en) * | 1998-03-24 | 2001-09-13 | Geo Interactive Media Group Lt | Network media streaming |
GB2350973A (en) * | 1999-06-11 | 2000-12-13 | Nokia Mobile Phones Ltd | Simultaneously fetching page content and link content in a mobile web browser |
US6845398B1 (en) * | 1999-08-02 | 2005-01-18 | Lucent Technologies Inc. | Wireless multimedia player |
US6407680B1 (en) * | 2000-12-22 | 2002-06-18 | Generic Media, Inc. | Distributed on-demand media transcoding system and method |
US20020106998A1 (en) * | 2001-02-05 | 2002-08-08 | Presley Herbert L. | Wireless rich media conferencing |
US20020116500A1 (en) * | 2001-02-22 | 2002-08-22 | Arora Akhil K. | Protocol for wireless devices |
JP2005231377A (ja) * | 2001-06-13 | 2005-09-02 | Honda Motor Co Ltd | 点検状況確認システム |
KR20030018950A (ko) * | 2001-08-31 | 2003-03-06 | 에스케이 텔레콤주식회사 | 이동전화 단말기를 녹음기로 사용하는 방법 |
US7453897B2 (en) * | 2001-10-03 | 2008-11-18 | Global Ip Solutions, Inc. | Network media playout |
KR100420601B1 (ko) * | 2001-11-22 | 2004-03-02 | 에스케이 텔레콤주식회사 | 비디오 데이터 스트리밍 서비스 방법 |
US6789123B2 (en) * | 2001-12-28 | 2004-09-07 | Microsoft Corporation | System and method for delivery of dynamically scalable audio/video content over a network |
US8117328B2 (en) * | 2002-06-25 | 2012-02-14 | Microsoft Corporation | System and method for automatically recovering from failed network connections in streaming media scenarios |
US7085576B2 (en) * | 2002-12-30 | 2006-08-01 | Motorola, Inc. | Method and apparatus for providing streaming information to a wireless mobile wireless device |
-
2003
- 2003-03-14 US US10/390,130 patent/US20040181611A1/en not_active Abandoned
-
2004
- 2004-01-09 KR KR1020040001493A patent/KR100589725B1/ko not_active IP Right Cessation
- 2004-03-12 CN CNB2004100399431A patent/CN100446562C/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104159142A (zh) * | 2014-08-06 | 2014-11-19 | 乐视网信息技术(北京)股份有限公司 | 一种设备的视频软解码方法和装置 |
CN113906722A (zh) * | 2019-06-07 | 2022-01-07 | 伊顿智能动力有限公司 | 用于向多个远程装置的多线程数据传输的系统和方法 |
CN113906722B (zh) * | 2019-06-07 | 2024-04-02 | 伊顿智能动力有限公司 | 用于向多个远程装置的多线程数据传输的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100446562C (zh) | 2008-12-24 |
KR100589725B1 (ko) | 2006-06-15 |
US20040181611A1 (en) | 2004-09-16 |
KR20040080942A (ko) | 2004-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110769278B (zh) | 一种分布式视频转码方法及系统 | |
US7213075B2 (en) | Application server and streaming server streaming multimedia file in a client specific format | |
KR100492567B1 (ko) | 이동통신 시스템의 http 기반 비디오 스트리밍 장치및 방법 | |
US7627886B2 (en) | Systems and methods for displaying video streams | |
CN100446562C (zh) | 用于无线手执设备的多媒体流系统 | |
CN100359945C (zh) | 运动图像分配系统、运动图像分配设备及方法 | |
WO2000056077A1 (en) | Media coding for loss recovery with remotely predicted data units | |
CN108810657B (zh) | 一种设置视频封面的方法和系统 | |
CN1798383A (zh) | 用于提供终端中的广播流的暂停功能的装置和方法 | |
CN101047722A (zh) | 媒体文件推送系统及方法 | |
EP0683951A1 (en) | Multimedia distribution system | |
CN102480618A (zh) | 实现h264视频编码格式播放优化的方法及系统 | |
CN110996160B (zh) | 视频处理方法、装置、电子设备及计算机可读取存储介质 | |
CN109889894A (zh) | 媒体文件解码方法、装置及存储介质 | |
KR20050085639A (ko) | 이미지들의 프레젠테이션 품질을 개선하기 위한 버퍼아키텍쳐를 제공하는 방법 및 장치 | |
CN111163335B (zh) | 一种分布式服务器的视频处理方法及装置 | |
US20020147827A1 (en) | Method, system and computer program product for streaming of data | |
CN1468002A (zh) | 基于因特网的流媒体压缩、传输与存贮系统 | |
WO2012142108A2 (en) | Streaming portions of a quilted graphic 2d image representation for rendering into a digital asset | |
EP2377277A2 (en) | Method and system for deterministic packet drop | |
EP1430401B1 (en) | Extended content storage method and apparatus | |
US8233535B2 (en) | Region-based processing of predicted pixels | |
WO2012142130A1 (en) | Encoding digital assets as an image | |
CN106341691B (zh) | 基于大数据的数据处理方法及装置 | |
CN115375530B (zh) | 一种多gpu协同渲染方法、系统、装置及存储介质 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081224 Termination date: 20140312 |