CN1353524A - 用于在网络中发送音频/视频数据的设备和方法 - Google Patents

用于在网络中发送音频/视频数据的设备和方法 Download PDF

Info

Publication number
CN1353524A
CN1353524A CN01137403A CN01137403A CN1353524A CN 1353524 A CN1353524 A CN 1353524A CN 01137403 A CN01137403 A CN 01137403A CN 01137403 A CN01137403 A CN 01137403A CN 1353524 A CN1353524 A CN 1353524A
Authority
CN
China
Prior art keywords
frame data
user
transmission buffer
under
cipher key
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
CN01137403A
Other languages
English (en)
Other versions
CN1205783C (zh
Inventor
许准爀
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.)
ADIS Co Ltd
Original Assignee
ADIS Co Ltd
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 ADIS Co Ltd filed Critical ADIS Co Ltd
Publication of CN1353524A publication Critical patent/CN1353524A/zh
Application granted granted Critical
Publication of CN1205783C publication Critical patent/CN1205783C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • 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/64Addressing
    • H04N21/6405Multicasting
    • 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64746Control signals issued by the network directed to the server or the client
    • H04N21/64761Control signals issued by the network directed to the server or the client directed to the server
    • H04N21/64769Control signals issued by the network directed to the server or the client directed to the server for rate control

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

公开了在网络中发送音频和视频(A/V)数据的设备和方法,该设备包括:编码器/发送缓冲器,将从服务器中每个信道输入的A/V数据编码并存储为适合网络状态的适当大小,服务器为连到网络的用户提供单信道或多信道A/V数据;用户发送控制器,将编码的存储数据发送给用户,当将每个用户发送控制器分配给连到服务器的每个用户时,由按照组的网络状态发送编码数据的用户发送控制器对用户分组。所述方法包括步骤:将单信道或多信道A/V数据发送到编码器/发送缓冲器;编码并存储该A/V数据;通过分组的用户发送控制器将编码的存储数据发送给连到网络的用户。即使用户数量迅速增加,本发明也能在不对服务器形成大负载的情况下为用户提供最优化的服务。

Description

用于在网络中发送音频/ 视频数据的设备和方法
                     交叉参考文献
本申请以韩国专利申请No.2000-67127为优先权,该申请是按照35U.S.C.§119的要求,于2000年11月3日提交的,在此将该申请的全文引用为参考文献。
                         发明领域
本发明涉及一种在网络中发送音频和视频(Audio and Video,A/V)数据的设备和方法,更具体讲,涉及一种用于通过网络,在对服务器没有大负载的情况下,适当地发送A/V数据的设备和方法。在这种情况下,尤其在互联网或VOD(Video On Demand,点播视频)广播中,即使连接到服务器的用户数量增加,服务器也能为众多用户提供单信道或多信道A/V数据。
                         背景技术
在某些情况下,由于用户本身远离提供A/V数据的服务器,因此,用户必须通过网络接收A/V数据。针对这种情况,网络工作组(Network WorkingGroup)已经制定了RTP(Real Time Protocol,实时协议)作为通过网络高效地发送多媒体数据如A/V数据的标准。
在通过RTP协议提供多媒体数据的情况下,服务器将多媒体数据发送到每个用户时不检查每个用户的网络状态,例如,不检查数据发送速率如56k、200k或300k等。如图1所示,代之以单独的转译器(translator)进行这种检查。换句话说,转译器3将从服务器1发送的A/V数据解码,并且按照服务器1以及每个用户2的网络状态再次将所发送的A/V数据解码,服务器1用于在网络上将A/V数据从多媒体设备发送到用户2。
这种发送方法要求物理上独立的转译器3以及服务器1,该转译器3设置于从服务器1到每个用户2之间的网络上,这是一种在费用和管理上都效率较差的方法。
此外,还有另一种发送方法,即服务器通过检查网络状态直接进行数据发送,这是一种与上述不同的发送方法。在这种情况下,在服务器以各种方式将数据编码以减小可通过网络发送的数据的大小之后,服务器发送数据,并且,每个接收到经过编码的数据的用户再次将该数据解码。
在从服务器到每个用户的网络状态之间是有差异的,例如,网络中的速度、带宽及稳定性等。因此,最好是将经过编码的、可通过网络发送的数据大小调整为适合每个用户的网络状态。
因此,如图2所示,当服务器1向连接到网络上的用户提供A/V数据的时候,在服务器1中有在数量上分别对应于用户发送控制器(1~n)的编码器/发送缓冲器(1~n)。编码器/发送缓冲器(1~n)将从每个信道(1~m)输入的A/V数据编码并存储,其大小适合网络状态。
但是,随着连接到服务器1的用户数量的增加,换句话说,随着连接的用户(n)的增加,上述方法需要的编码器/发送缓冲器(1~n)的数量按照信道数(m)×用户数(n)增加。因此,由于服务器的负载过大,上述方法不能为用户提供正常的发送服务。
                        发明内容
为了解决上述问题,本发明的优选实施例提供了一种用于在服务器中适当地将众多用户分组的方法,考虑到众多用户中每个用户的网络状态,将具有相似网络状态的用户分在同一个组中。在上述情况下,服务器将单信道或多信道A/V数据发送到众多用户。此外,该方法提供的编码器/发送缓冲器的数量等于分组的组数,并且按照所分的组产生适当的数据大小,以便在服务器负载不大的情况下,将数据发送到众多用户。换句话说,当信道数为m,组数为k时,编码器/发送缓冲器的数量等于信道数(m)乘以组数(k),这将足以实现在不考虑用户数量的情况下发送数据。
为了达到上述目的,本发明的优选实施例提供了一种包括编码器/发送缓冲器以及用户发送控制器的A/V数据发送设备。当服务器向连接到网络上的用户提供单信道或多信道A/V数据时,在服务器中的编码器/发送缓冲器以适合网络状态的适当大小将从每个信道输入的A/V数据编码/存储。用户发送控制器将在编码器/发送缓冲器中所存储的经过编码的每个数据发送到用户。
在这种情况下,A/V数据发送设备将用户发送控制器分配给每个连接到服务器的用户并且将用户发送控制器分组,其中,用户发送控制器的各个组分别具有编码器/发送缓冲器,并且按照网络状态发送经过编码的数据。
本发明的另一个实施例提供了一种方法,该方法包括以下步骤:将单信道或多信道A/V数据发送到服务器中的编码器/发送缓冲器的步骤;将由前一步骤的编码器/发送缓冲器发送的A/V数据编码并存储的步骤;以及,通过分组的用户发送控制器将前一步骤中存储的经过编码的数据发送到连接到网络上的各用户的步骤。
具体来说,为了达到本发明的目的,本发明提供了一种用于在网络中发送音频和视频(A/V)数据的设备,该设备包括编码器/发送缓冲器以及用户发送控制器,其中,当每个用户发送控制器被分配给连接到服务器的每个用户的时候,利用用户发送控制器对用户进行分组,这些用户发送控制器用于按照组的网络状态来发送编码的数据。
编码器/发送缓冲器将从服务器中的每个信道输入的A/V数据编码并存储为适合网络状态的适当的大小,该服务器用于对连接到网络的用户提供单信道或多信道的A/V数据。用户发送控制器将存储在编码器/发送缓冲器上的经过编码的数据发送给用户。
此外,按照本发明,一组的用户发送控制器包括一个编码器和一个发送缓冲器。
为了达到本发明的目的,本发明提供了一种用于在网络中发送音频和视频(A/V)数据的方法,包括以下步骤:将单信道或多信道A/V数据发送到编码器和发送缓冲器的步骤;将发送到编码器和发送缓冲器的A/V数据编码并存储的步骤;以及,将存储的经过编码的数据通过被分组的用户发送控制器发送到每个连接到网络上的用户的步骤。
根据本发明,将A/V数据编码并存储的步骤以及将经过编码的数据存储到发送缓冲器中的步骤被重复执行。
根据本发明,在检查发送缓冲器之后,将A/V数据编码的步骤将新的数据编码,从而避免对数据进行不必要的编码。
根据本发明,将A/V数据编码的步骤包括:确定是否需要有密钥帧数据的步骤;以及根据该确定结果,将数据编码为密钥帧数据或参考帧数据的步骤。
根据本发明,所述方法还包括:在将参考帧数据编码之后检查是否连续编码了‘s’个数目的参考帧数据的步骤;以及,在连续编码了‘s’个数目的参考帧数据的情况下记住(memorize)要生成密钥帧数据的步骤。
根据本发明,确定是否需要将新数据编码的步骤由最后生成的帧数据是否被发送来决定。
根据本发明,确定是否需要将新数据编码的步骤包括:确定是否需要将密钥帧数据编码的步骤;以及确定最后生成的帧数据是否被发送的步骤。
根据本发明,确定是否需要将新数据编码的步骤包括:确定网络状态的步骤;以及在网络状态好的情况下,确定最后生成的‘n’个帧数据中的至少一个是否被发送或正在被发送到用户中的一个的步骤。
根据本发明,确定是否需要将新数据编码的步骤包括:确定是否需要密钥帧数据的步骤;在不需要密钥帧数据的情况下,确定网络发送速度是否足够快的步骤;在网络发送速度足够快的情况下,确定最后生成的‘n’个帧数据中的至少一个是否被发送或正在被发送到用户中的一个的步骤;以及在网络发送速度不够快的情况下,确定是否发送最后生成的帧数据的步骤。
根据本发明,将发送到编码器/发送缓冲器的A/V数据进行编码并存储的步骤包括:计算添加到发送缓冲器的帧数据的大小的步骤;检查在发送缓冲器上用于添加帧数据的使用区域的步骤;以及将帧数据存储在发送缓冲器上的使用区域的步骤。
根据本发明,将帧数据存储到发送缓冲器的步骤包括:确定在使用区域中是否有另一个帧数据以及这个将被破坏的帧数据是否也正在被发送到某个用户的步骤;在正在发送这个将被破坏的帧数据的情况下,确定密钥帧数据是否在发送缓冲器中的步骤;在没有发送密钥帧数据的情况下,记住要在下一次将密钥帧数据编码的步骤;以及将被记住的密钥帧数据存储到发送缓冲器中的步骤。
根据本发明,通过分组的用户发送控制器将存储的经过编码的数据发送到连接到网络上的每个用户的步骤包括:将用户发送控制器初始化的步骤;确定是否有下一个可发送给用户的帧数据的步骤;在下一个可发送给用户的数据在发送缓冲器中的情况下,将帧数据从发送缓冲器拷贝到附加存储器中的步骤;将被拷贝的数据发送给用户的步骤;以及在发送数据之后,确定网络是否被连接的步骤。
根据本发明,通过分组的用户发送缓冲器将存储的经过编码的数据发送给连接到网络上的每个用户的步骤包括:将用户发送缓冲器初始化的步骤;确定是否有下一个可发送给用户的帧数据的步骤;在可发送给用户的帧数据处在发送缓冲器中的情况下,检查发送缓冲器的下一个可发送帧数据的区域,而不是将帧数据拷贝到附加存储器,从而减少存储器随着用户的增加的使用量的步骤;发送在发送缓冲器的区域中的帧数据的步骤;在发送的同时,确定帧数据区域是否被另一个帧数据再次使用的步骤;在帧数据区域被再次使用的情况下,通知用户前面发送的数据是错误数据的步骤;以及确定网络是否被连接的步骤。
根据本发明,发送帧数据的步骤包括:通知开始使用的步骤;以及通知完成使用的步骤。
根据本发明,所述方法还包括:在网络被连接的情况下,考虑到网络状态而自动将当前分组改变为适当分组的步骤。
根据本发明,确定下一个可发送给用户的帧数据是否处在发送缓冲器中的步骤包括:确定下一个可发送给用户的帧数据是否在指定信道的发送缓冲器中的步骤。
根据本发明,在多信道的情况下,确定下一个可发送帧数据是否处在发送缓冲器中的步骤包括:主要参照被发送信道或被查询信道,来选择信道‘i’作为下一个检查信道的步骤;确定设备是否从所选择的信道‘i’检查了所有信道的步骤;在存在未检查信道的情况下,确定信道‘i’是否为用户服务的步骤;以及在该信道为用户服务的情况下,通过确定下一个可发送给用户的帧数据是否在该信道发送缓冲器中,来选择信道‘i’的步骤。
根据本发明,在通过考虑信道之间的同步,将最早生成的信道首先发送的情况下,所述方法还包括:确定在设备完成检查所有信道之后,可发送信道是否固定的步骤;以及在确定可发送给用户的帧数据是否处在该信道的发送缓冲器中之后,确定信道‘i’的生成时间是否早于其它信道的生成时间的步骤。
根据本发明,所述方法还包括:确定帧数据的生成时间与当前时间之间的差异是否小于预定时间T,以更适合信道之间的同步的步骤;以及在它们之间的差异不小于预定时间T的情况下,记住要在下一次生成密钥帧数据的步骤。
根据本发明,所述确定可发送给用户的下一帧数据是否在发送缓冲器中的步骤包括:在可发送信道固定的情况下,详细确定是否是初始发送的步骤;在是初始发送的情况下,确定发送缓冲器是否为空的步骤;在发送缓冲器不为空的情况下,在发送缓冲器中选择任意一个帧数据作为可发送帧数据,而在发送缓冲器为空的情况下,没有可发送帧数据的步骤;在不是初始发送的情况下,用前面发送给用户的帧数据的信息确定下一个可发送帧数据是否准备好的步骤;以及在准备好下一个可发送帧数据的情况下,发送下一个帧数据,而在下一个可发送帧数据没有准备好的情况下,没有下一个可发送帧数据的步骤。
根据本发明,所述确定下一个可发送给用户的帧数据是否在发送缓冲器中的步骤包括:在密钥帧数据与参考帧数据不是分别编码并且可发送信道被固定的情况下,用前面发送给用户的帧数据的信息检查下一个可发送帧数据是否在发送缓冲器中的步骤;在准备好下一个被发送的帧数据的情况下,检查是否有比下一个被发送的帧数据更晚生成的帧数据的步骤;在有比下一个被发送的帧数据更晚生成的帧数据的情况下,选择最后生成的帧数据作为下一个可发送的帧数据的步骤;在密钥帧数据与参考帧数据被分别编码的情况下,确定密钥帧数据的生成是否迟于最近被发送给用户的密钥帧数据的步骤;以及在有更近生成的密钥帧数据的情况下,选择最后生成的密钥帧数据作为下一个帧数据的步骤。
根据本发明,所述确定下一个可发送给用户的帧数据是否处在发送缓冲器中的步骤包括:确定是否是用于用户的初始发送状态的步骤;在是初始发送的情况下,确定是否有密钥帧数据的步骤;以及在没有密钥帧数据的情况下,记住要生成密钥帧数据的步骤。
根据本发明,所述确定下一个可发送给用户的帧数据是否在发送缓冲器中的步骤包括:当可发送信道固定,不用将可发送帧数据从发送缓冲器拷贝到附加存储器就发送发送缓冲器中的可发送帧数据时,确定在发送缓冲器中的前面发送的帧数据的发送缓冲器的区域是否被再次使用,从而减少随着用户的增加而导致的存储器使用量的步骤;在密钥帧数据和参考帧数据被分别编码的情况下,确定密钥帧数据的生成是否迟于前面发送给用户的密钥帧数据,而在密钥帧数据和参考帧数据不是被分别编码并且发送缓冲器的区域被再次使用的情况下,将状态改变为初始发送状态的步骤;在最近没有最后生成的密钥帧数据的情况下,记住要通过编码器生成密钥帧数据的步骤;以及在最近有最后生成的密钥帧数据的情况下,确定下一个可发送帧数据的步骤。
                          附图说明
为了更完整地理解本发明及其优点,结合附图参阅下面的描述,附图中,相同的标号表示相同的部分,其中:
图1为在常规网络中通过转译器的A/V数据发送设备的框图;
图2为通过网络上的常规服务器的A/V数据发送设备的框图;
图3为按照本发明优选实施例的,通过网络上的服务器的A/V数据发送设备的框图;
图4为按照本发明优选实施例的,在网络中A/V数据发送方法的流程图;
图5为按照本发明优选实施例的,用于通过对数据进行编码生成帧数据的编码器的流程图;
图5A为按照本发明优选实施例的,用于确定是否需要对新的帧数据进行编码的编码器的流程图;
图5B为按照本发明优选实施例的,当编码器将帧数据分别编码为密钥帧(key frame)数据和参考帧(reference frame)数据时的编码器的流程图;
图5C为示出了在图5B中,用于确定是否需要将新的帧数据编码的例子流程图;
图5D为示出了用于使用图5B中的条件5的例子的流程图;
图5E为示出了用于使用图5C中的条件5的例子的流程图;
图6为按照本发明优选实施例的,确定是否需要将新的帧数据编码的详细流程图;
图6A为示出了用于在图6中,将帧数据分别编码为密钥帧数据和参考帧数据的例子的流程图;
图6B为示出了按照本发明优选实施例的,使用用于确定是否需要将新的帧数据编码的条件2的例子的流程图;
图6C为示出了用于在图6B中,将帧数据分别编码为密钥帧数据和参考帧数据的例子的流程图;
图7为按照本发明的优选实施例的,用于将新的帧数据存储到发送缓冲器的详细流程图;
图7A为示出了按照本发明的优选实施例的,用于通过使用条件4将帧数据存储到发送缓冲器的例子的流程图;
图8为示出了按照本发明优选实施例的,将帧数据发送到每个用户的用户发送控制器的流程图;
图8A为示出了按照本发明的优选实施例的,使用考虑因素5的用户发送控制器的例子的流程图;
图8B为示出了在图8中,使用考虑因素1或考虑因素2的用户发送控制器的例子的流程图;
图8C为示出了在图8A中,又使用了考虑因素1或考虑因素2的用户发送控制器的例子的流程图;
图8D为示出了在图8中,又使用了考虑因素4的用户发送控制器的例子的流程图;
图8E为示出了在图8A中,又使用了考虑因素4的用户发送控制器的例子的流程图;
图8F为示出了在图8B中,又使用了考虑因素4的用户发送控制器的例子的流程图;
图8G为示出了在图8C中,又使用了考虑因素4的用户发送控制器的例子的流程图;
图9为按照本发明优选实施例的,用于确定下一个可发送帧数据是否在用户发送缓冲器中的详细流程图;
图9A为示出了按照本发明优选实施例的,使用多信道确定下一个可发送帧数据是否在用户发送控制器中的例子的流程图;
图9B为示出了按照本发明优选实施例的,使用考虑因素3确定下一个可发送帧数据是否在用户发送控制器中的例子的流程图;
图9C为示出了按照本发明优选实施例的,使用条件2确定下一个可发送帧数据是否在用户发送控制器中的例子的流程图;
图10为按照本发明优选实施例的,当确定信道和用户时,用于确定可发送帧数据是否在用户发送缓冲器中的详细流程图;
图10A为示出了按照本发明优选实施例的,当确定信道和用户时,使用考虑因素6确定可发送帧数据是否在用户发送缓冲器中的例子的流程图;
图10B为示出了按照本发明优选实施例的,当确定信道和用户时,使用条件1确定可发送帧数据是否在用户发送缓冲器中的例子的流程图;
图10C为示出了按照本发明优选实施例的,当确定信道和用户时,使用考虑因素6和条件1确定可发送帧数据是否在用户发送缓冲器中的例子的流程图;
图10D为示出了按照本发明优选实施例的,当确定信道和用户时,使用条件3确定可发送帧数据是否在用户发送缓冲器中的例子的流程图;
图10E为示出了按照本发明优选实施例的,当确定信道和用户时,使用考虑因素6和条件3确定可发送帧数据是否在用户发送缓冲器中的例子的流程图;
图10F为示出了按照本发明优选实施例的,当确定信道和用户时,使用条件1和条件3确定可发送帧数据是否在用户发送缓冲器中的例子的流程图;以及
图10G为示出了按照本发明优选实施例的,当确定信道和用户时,共同使用考虑因素6、条件1和条件3确定可发送帧数据是否在用户发送缓冲器中的例子的流程图。
                       具体实施方式
下面将详细描述本发明的优选实施例,这些实施例的例子在附图中示出。
图3为按照本发明的优选实施例的,在网络上的服务器中的A/V数据发送设备的框图。所述A/V数据发送设备包括:服务器30、编码器31和发送缓冲器32、以及用户发送控制器33。服务器30为连接到网络上的用户提供A/V数据。编码器31和发送缓冲器32以适合于网络状态的大小将从服务器30中各个信道输入的A/V数据编码/存储。根据网络状态,连接到编码器31和发送缓冲器32的用户发送控制器被分配给每个用户并且被分组,并且发送经过编码的数据。
图4为按照本发明的优选实施例的,在网络中A/V数据发送方法的流程图。所述A/V数据发送方法包括:步骤400,用于将单信道或多信道A/V数据发送到编码器31和发送缓冲器32;步骤410,用于将编码器/发送缓冲器31和32中的A/V数据编码并存储;以及步骤420,用于通过分组的用户发送控制器将在步骤410中存储的经过编码的数据发送到每个连接到网络上的用户。
在A/V数据被发送到服务器30中的编码器/发送缓冲器31和32之后,象上述所说明的那样,本发明以帧为单位将单信道或多信道A/V数据编码。
换句话说,帧是用于划分经过编码的输入数据的单位,并且帧数据被编码为两种类型。一种类型是经过编码的密钥帧数据,而另一种类型是经过编码的参考帧数据。
虽然不要任何其它信息,就可以将密钥帧数据直接解码,但是只有借助于其它帧数据,才可以将参考帧数据解码。在下面说明中,帧数据表示经过编码的数据。
在将用户发送控制器33分组并且将编码器/发送缓冲器(31和32)分配给每个组之后,当将单信道或多信道数据发送给用户时,将检查下列内容:
<考虑因素1>在不再有可发送给用户的数据的条件下,编码器仅将输入数据编码。
<考虑因素2>当应用考虑因素1的条件时,检查网络状态,从而就总体性能而言,在网络状态好的条件下,将更多的帧数据预先编码。
<考虑因素3>在所述设备处理多信道数据并且信道之间的同步很重要如实况广播的条件下,各个信道当中的帧数据的生成时间彼此不应有很大不同。
<考虑因素4>在根据网络状态划分发送组之后,在网络状态改变的情况下,自动重新组织分组。
<考虑因素5>如果没有为可发送给用户的帧数据准备附加的存储空间,利用为每个组准备的发送缓冲器32,减少所述设备的存储器的使用量。
<考虑因素6>在发送缓冲器32具有多于一个的可发送给用户的帧数据的情况下,将最后的帧数据发送给用户。
设备可以应用上述考虑因素1~6当中的一个或几个考虑。
在通过利用用于每个组的一个编码器/发送缓冲器31和32将帧数据发送给一个组中的许多用户的情况下,通过检查每个用户的大量情况,生成适当的密钥帧数据是很重要的。
上述的原因在于:密钥帧数据比参考帧数据相对更大,并且生成最小数量的密钥帧数据比减小可通过网络发送的数据的大小更可取。
当然,由于将参考帧数据解码需要其它帧数据,因此,所有的帧数据可以被编码为密钥帧数据并且被发送。
本发明按照下列条件生成密钥帧数据:
<条件1>在新用户连接到网络或者连接的用户将服务的信道改变为另一个新的信道的情况下,在预定信道没有任何适当的可发送密钥帧数据的情况下,生成密钥帧数据。
<条件2>当应用考虑因素3,如设备处理多信道数据或者各个信道之间的同步很重要时,在数据生成时间与当前时间之间的差异长于预定时间的情况下,生成密钥帧数据。
<条件3>当使新的帧数据按照发送缓冲器的预定大小再次使用帧数据区域发送给用户,并且在将帧数据发送给用户之后没有生成密钥帧数据时,生成新的密钥帧数据。
<条件4>当应用考虑因素5,比如使新的帧数据按照发送缓冲器的预定大小再次使用帧数据区域发送给用户,并且在将帧数据发送给用户之后没有生成密钥帧数据时,生成新的密钥帧数据。
<条件5>由于在解码中利用密钥帧数据很有益处,因此,每当生成最大预定数量的参考帧数据之后,生成新的密钥帧数据。
在上述条件1~5当中,设备可以有选择地应用一个或几个条件。
可以以几种方法进行用户发送控制器33的分组组织。
<方法1-人工选择>
连接到网络的用户根据网络状态选择组。换句话说,当用户与服务器连接时,用户确认他自己的网络状态并且由此在预先安排的组当中选择一个合适的组。
<方法2-自动选择之后固定>
当用户与服务器连接时,在设备检查了用户的网络状态并且将用户分配给合适的组之后,用户一直保持在该组中直到用户断开连接为止。
<方法3-自动选择之后改变>
当用户连接到服务器时,在设备检查了用户的网络状态并且将用户分配给合适的组之后,由于该设备不断地检查用户的网络状态,因而将用户动态地移动到任何一个合适的组。
此外,还有用于通过检查网络状态确定网络状态较好或较差的一种直接方法和一种间接方法。
<网络检查方法1-直接方法>
由描述在一秒钟内发送数据平均数量的带宽,或者由描述发送平均时间的等待时间(latency),来直接检查网络状态的好坏。
<网络检查方法2-间接方法>
当用户的网络状态比任何其他用户的网络状态都差时,会出现频繁要求密钥帧数据的现象,并且出现密钥帧数据生成条件当中的多个条件,如条件2、条件3和条件4等。因此可以间接检查网络状态。
用户可以通过结合一个或几个检查方法来检查网络状态从而选择组,并且最后得到说明每个用户的网络状态的值。这些值成正比或成反比地说明网络处在好的状态。
每个组具有说明网络状态的最大值和最小值。在用户的说明网络状态的值处于某组的最大和最小值范围内的情况下,将用户分配到该组。
图5为按照本发明的优选实施例的,用于通过将数据编码以生成帧数据的编码器的流程图。图5A为按照本发明的优选实施例的,用于确定是否需要将新的帧数据编码的编码器的流程图。此外,图5B为按照本发明的优选实施例的,当编码器将帧数据分别编码为密钥帧数据和参考帧数据时,编码器的流程图。
首先,在步骤410的编码程序中,步骤500将编码器31初始化。步骤501将通过单信道或多信道输入的A/V数据编码成帧数据。步骤502将经过编码的帧数据存储在发送缓冲器32中并且重复上述程序,将其它帧数据存储到发送缓冲器32。
在通过应用考虑因素1或考虑因素2,步骤410不过多地将数据编码的情况下,如图5A所示,步骤503确定是否需要对新数据编码。
步骤503确定是否需要将新数据编码。在需要将新数据编码并且编码器31将所有的数据不仅编码为密钥帧数据而且编码为参考帧数据的情况下,如图5B所示,步骤504确定是否需要密钥帧数据。接下来,根据步骤504的决定,步骤505将数据编码为密钥帧数据,步骤506将数据编码为参考帧数据。在上述步骤505和步骤506中经过编码的密钥帧数据和参考帧数据被存储到发送缓冲器32。此时,根据对前述密钥帧数据生成条件1~5的结合以及应用的情况,决定是否需要密钥帧数据。
图5C为示出了在图5B中应用考虑因素1或考虑因素2的例子的流程图。如图5B所示,在步骤503确定了是否需要将新帧数据编码之后,步骤504确定是否需要密钥帧数据。根据前面步骤504的决定,步骤505将数据编码为密钥帧数据,步骤506将数据编码为参考帧数据。在上述步骤505和步骤506中经过编码的密钥帧数据和参考帧数据被存储到发送缓冲器32。
图5D为示出了使用图5B中的条件5的例子的流程图。在步骤506将参考帧数据编码之后,执行步骤507和508。步骤507决定是否连续编码‘s’个数目的参考帧数据。根据步骤507的决定,步骤508者将经过编码的参考帧数据存储在发送缓冲器32中,或者记住要在下一次生成密钥帧数据。
图5E为示出了使用图5C中的条件5的例子的流程图。首先,步骤503确定是否需要将新的帧数据编码。接下来的步骤504确定是否需要密钥帧数据。按照步骤504的决定,步骤505将密钥帧数据编码。步骤506将参考帧数据编码,并且在对参考帧数据进行编码的同时,步骤507确定是否连续编码了‘s’个数目的参考帧数据。根据步骤507的决定,步骤508将经过编码的参考帧数据存储在发送缓冲器32中,或者记住要在下一次生成密钥帧数据。
图6为按照本发明优选实施例的,用于确定是否需要将新的帧数据编码的详细流程图。确定是否需要将新的帧数据编码的步骤503包括确定将最后生成的帧数据发送给谁的步骤600。
图6A为示出了在图6中分别将密钥帧数据和参考帧数据编码的例子的流程图。图6A示出了步骤601和步骤600。当输入数据不仅被编码为密钥帧数据而且被编码为参考帧数据时,步骤601确定是否需要将密钥帧数据编码。步骤600确定将最后生成的帧数据发送给谁。
图6B示出了按照本发明优选实施例的,使用用于确定是否需要编码出新的帧数据的条件2的例子的流程图。首先,步骤602确定网络状态是否好。步骤603确定最后生成的‘n’个帧数据中的一个是否已经被发送给用户或正在被发送给用户。当最后生成的‘n’个帧数据中的一个已经被发送给用户或正在被发送给用户时,将新的帧数据编码。当最后生成的‘n’个帧数据中的一个没有被发送给用户或不是正在被发送给用户时,不将新的帧数据编码。
图6C为示出了按照本发明的优选实施例的,分别将密钥帧数据和参考帧数据编码的例子的流程图。当图6B中的所有数据不仅被编码为密钥帧数据而且被编码为参考帧数据时,请求帧数据的情况包括确定是否需要将新的密钥帧数据编码的步骤601。
图7为按照本发明的优选实施例的,用于将新的帧数据存储到发送缓冲器的详细流程图。首先,步骤700计算存储到发送缓冲器中的帧数据的大小。接下来,步骤701确定发送缓冲器中的用于存储新的帧数据的区域并且步骤702将帧数据存储到发送缓冲器。
当数据不仅被编码为密钥帧数据,而且被编码为参考帧数据,并且通过网络将帧数据发送给用户时,需要将被发送的帧数据从发送缓冲器拷贝到附加的指定数据。如果不拷贝帧数据,则在发送帧数据的同时,发送缓冲器的用于发送帧数据的区域能够被其它帧数据破坏。为了避免这种情况,必须有存储器空间,用于存储对应于每个用户的一个帧数据。但是,众多的用户会导致存储器的使用过多。
图7A为示出了按照本发明的优选实施例的,用于通过使用条件4,将帧数据存储到发送缓冲器的例子的流程图。与密钥帧数据不同,参考帧数据不能被独立解码,但是可以利用其它被发送的数据将其解码。
因此,当附加存储器没有被用来将帧数据发送给每个用户时,步骤700计算存储在发送缓冲器中的帧数据的大小。接下来,步骤701确定存储用于新的帧数据的发送缓冲器的区域,并且,步骤703确定另一个帧数据是否在所使用区域中以及是否正在被发送给用户中的一个。当正在发送给用户中的一个的帧数据的区域被再次使用时,用于将数据发送给用户的信息将被丢失。因此,下一次发送的数据将是密钥帧数据。
根据上述说明,步骤704确定密钥帧数据是否在发送缓冲器中。当密钥帧数据不在发送缓冲器中时,步骤705记住要在下一次将密钥帧数据编码,并且步骤702将帧数据存储到发送缓冲器中。
在将所有数据编码为密钥帧数据的情况下,即使没有使用用于发送帧数据的附加存储器,由于所有数据为密钥帧数据,因而不需要其它考虑因素。
用于通过分组的用户发送控制器,将存储在发送缓冲器中的经过编码的数据发送给每个连接到网络上的用户的程序为:用于每个用户的发送控制器接收来自在一个组中共享的发送缓冲器的帧数据,并且将该帧数据通过网络发送给用户。
图8为示出了按照本发明的优选实施例的,用户发送控制器将帧数据发送给每个用户的流程图。当用户通过网络连接时,步骤800将用户发送控制器初始化。此外,步骤801确定是否有下一个可发送帧数据。
当有可发送给用户的帧数据时,步骤802将发送缓冲器中的帧数据拷贝到附加存储器。步骤803将被拷贝的数据发送给用户,并且步骤804确定在本次发送之后,网络是否被连接。如果网络被连接,通过重复上述程序将数据发送给用户。如果网络断开连接,则关闭用户发送控制器。
图8A为示出了按照本发明的优选实施例的,用户发送控制器使用考虑因素5的例子的流程图。换句话说,如果本次没有用于将帧数据发送给每个用户的附加存储空间,则利用为每个组准备的发送缓冲器来减少设备存储器的使用。
因此,在图8的发送缓冲器中,通过应用步骤802,不将帧数据拷贝到附加存储器。但是,步骤806仅检查存储器区域。在执行了用于发送帧数据的步骤803之后,步骤807确定在发送帧数据时,另一个帧数据是否再次使用帧数据区域。如果帧数据区域被再次使用,则步骤808通知用户前面发送的数据是错误数据,并且步骤804确定网络是否被连接。
但是,如果帧数据区域没有被再次使用,则在检查网络是否被连接的同时,继续发送下一个帧数据。
图8B为示出了在图8中用户发送控制器使用考虑因素1或考虑因素2的例子的流程图。当用户连接到网络上并且网络状态为好时,步骤800将用户发送控制器初始化。此外,步骤801确定是否有下一个可发送给用户的帧数据。
当有可发送给用户的帧数据时,步骤802将发送缓冲器中的帧数据拷贝到附加存储器。在使用帧数据之前,步骤809通知该设备开始使用帧数据。换句话说,步骤809通知设备已经使用了或正在使用发送缓冲器中的帧数据。在使用帧数据结束之后,步骤810通知该设备,并且步骤804确定网络是否被连接。
图8C为示出了在图8A中,用户发送控制器又使用了考虑因素1或考虑因素2的例子的流程图。换句话说,如图8A所示,如果没有为发送帧数据准备任何附加存储空间,通过利用为每个用户准备的发送缓冲器,使设备存储器的使用较小。为了使设备知道发送缓冲器中的帧数据被使用或正在被使用,应用考虑因素1或考虑因素2,在使用发送缓冲器之前,步骤809通知设备使用开始。接下来,步骤803将帧数据发送给用户,步骤810通知帧数据使用结束。
图8D、图8E、图8F和图8G对图8、图8A、图8B和图8C分别增加了步骤811,在发送一个帧数据之后,步骤811通过检查当前的网络状态,自动地将用户从当前组改变到某一个合适的组。
图9为按照本发明优选实施例的,用于确定下一个可发送帧数据是否在用户发送缓冲器中的详细流程图。取代用于确定下一个可发送帧数据是否存在的步骤801,而执行主要用于确定下一个可发送帧数据是否在当前信道的用户发送缓冲器中的步骤900。
图9A为示出了按照本发明优选实施例的,使用多信道来确定在用户发送缓冲器中是否有下一个可发送帧数据的例子的流程图。步骤901利用参照前面的发送信道或查询信道的信息,主要选择信道‘i’作为下一个可查询信道。步骤902利用所选择的信道‘i’确定设备是否检查完所有信道。当该设备检查完所有信道时,则没有可发送帧数据。
但是,当该设备没有检查完所有信道时,步骤903确定信道‘i’是否正在为用户服务。当目前信道‘i’没有为用户服务时,该设备再次选择可查询信道‘i’检查下一个信道。当用户使用信道‘i’时,步骤900确定下一个可发送给用户的帧数据是否在信道‘i’的发送缓冲器中。当下一个可发送帧数据在发送缓冲器中时,步骤904选择信道‘i’作为发送信道。接下来,下一次发送在信道‘i’中准备的帧数据。
图9B为示出了按照本发明优选实施例的,使用考虑因素3的,用于确定是否有下一个可发送给用户的帧数据的例子的流程图。在多信道的情况下,为了适合信道之间的同步,在图9B中的流程图表示首先将具有最早生成时间的信道发送。步骤901利用前面的发送信道或查询信道的信息选择信道‘i’作为下一个信道。步骤902确定是否通过信道‘i’检查完所有信道。当该设备检查完所有信道时,步骤907确定该设备是否将可发送信道固定。
但是,当该设备没有处理完所有信道时,步骤903确定所选择的信道‘i’是否为用户服务。当所选择信道‘i’目前不是正在为用户服务时,步骤901检查下一个信道。
反之,被选择信道‘i’目前正在为用户服务,步骤900确定下一个可发送给用户的帧数据是否在该信道的发送缓冲器中。当没有可发送帧数据时,步骤901检查下一个信道。
但是,当下一个可发送帧数据处在发送缓冲器中时,步骤906确定信道‘i’的生成时间是否早于其它信道的生成时间。如果信道‘i’的生成时间早于其它信道,则步骤904选择信道‘i’作为下一个可发送信道。反之,如果信道‘i’的生成时间不早于其它信道,则步骤901检查下一个信道。
图9C为示出了按照本发明优选实施例的,使用条件2的,用于确定是否存在下一个可发送给用户的帧数据的例子的流程图。换句话说,在多信道的情况下,为了适合信道之间的同步,当所生成的帧数据的生成时间与当前时间之间的差异大于预定时间T时,该设备记住要生成新的密钥帧数据。此外,为了保持信道之间的更好同步,该设备首先发送生成时间最早的信道。图9C为说明这样的实施例的流程图。步骤901利用发送信道或者查询信道的信息选择信道‘i’作为下一个可检查信道。步骤902确定该设备是否检查完所有信道。当该设备处理完所有信道时,步骤907确定是否固定可发送信道。
但是,当该设备没有处理完所有信道时,步骤903确定所选择的信道‘i’目前是否正在服务。当信道‘i’目前不是正在为用户服务时,步骤901检查下一个信道。
反之,当该信道目前正在为用户服务时,步骤900确定下一个可发送给用户的帧数据是否在该信道的发送缓冲器中。当没有下一个可发送帧数据时,步骤901检查下一个信道。
但是,当有下一个可发送帧数据时,步骤905确定信道‘i’的该帧数据的生成时间与当前时间之间的差异是否小于预定时间T。当这些时间之间的差异不小于时间T时,步骤908记住要在下一次生成密钥帧数据。
但是,当这些时间之间的差异小于时间T时,步骤906确定信道‘i’的生成时间是否早于到现在为止已被检查的其它信道的生成时间。当信道‘i’的生成时间早于其它信道的生成时间时,步骤904选择信道‘i’作为下一个可发送的信道。当信道‘i’的生成时间不早于其它信道时,步骤901检查下一个信道。
图10为按照本发明优选实施例的,当信道和用户确定时,用于确定是否存在可发送给用户发送缓冲器的帧数据的详细流程图。步骤1000确定它是否为初始发送。
初始发送意味着:在用户连接之后,或者当用户将信道改变为新的信道时,首先从该信道发送帧数据。
步骤1001确定在初始发送中,发送缓冲器是否空。当发送缓冲器是空的时,没有下一个可发送帧数据。当发送缓冲器不空时,步骤1002选择任意一个在发送缓冲器上的帧数据作为可发送帧数据。
选择帧数据可以以几种方式进行。例如,可以选择首先生成的帧数据,也可以选择最后生成的帧数据。
但是,在不是初始发送的情况下,步骤1003利用前面发送给用户的帧数据确定是否准备好下一个可发送帧数据。如果否,则没有下一个可发送帧数据。如果是,则步骤1004选择准备的下一个帧数据作为可发送数据。
图10A为示出了按照本发明优选实施例的,在用于确定可发送给用户发送缓冲器的帧数据是否存在的步骤900中,使用考虑因素6的例子的流程图。在发送缓冲器中有几个帧数据的情况下,最后的帧数据被选为下一个可发送帧数据。用于将发送缓冲器中的任意一个帧数据选为可发送帧数据的步骤1002变为用于将发送缓冲器中的最后生成的帧数据选为下一个可发送帧数据的步骤1006。接下来,当准备好下一个帧数据时,步骤1005确定是否存在比下一个帧数据更迟生成的帧数据。如果是,步骤1006选择较迟生成的帧数据作为发送缓冲器中的可发送帧数据。如果否,步骤1004选择下一个帧数据作为可发送帧数据。
图10B为示出了按照本发明优选实施例的,在用于确定可发送帧数据是否在用户发送缓冲器中的步骤900中,使用条件1的例子的流程图。在分别将密钥帧数据和参考帧数据编码的情况下,步骤1000确定在发送缓冲器中的可发送帧数据是否是初始发送。此时,当预定信道被初始化时,步骤1007确定是否有密钥帧数据。此外,当没有密钥帧数据时,步骤1009记住要生成密钥帧数据。
当有密钥帧数据时,步骤1008选择密钥帧数据作为下一个可发送帧数据。
但是,如果不是初始发送,步骤1010确定发送缓冲器中的发送前面帧数据的区域是否被再次使用。如果是,步骤1011将用户认作初始发送状态,在下一次发送密钥帧数据。因此,没有可发送帧数据。
反之,如果否,步骤1003确定是否准备好下一个帧数据。当准备好下一个帧数据时,步骤1004选择下一个帧数据作为可发送帧数据。此外,当没有准备下一个帧数据时,则没有可发送帧数据。
图10C为示出了按照本发明优选实施例的,在用于确定可发送帧数据是否在用户发送缓冲器中的步骤900中,使用考虑因素6和条件1的例子的流程图。在不是初始发送,并且有若干密钥帧数据的情况下,步骤1015确定是否有比最近发送的密钥帧数据更迟的密钥帧数据生成。如果是,步骤1016选择较迟的密钥帧数据作为可发送帧数据。
图10D为示出了按照本发明优选实施例的,在用于确定可发送帧数据是否在用户发送缓冲器中的步骤900中,使用条件3的例子的流程图。换句话说,当新的帧数据使用发送缓冲器中发送给用户的帧数据的区域,并且没有新生成的密钥帧数据时,生成密钥帧数据。确切地说,该程序如下所述。步骤1000确定它是否为初始发送。在初始发送的情况下,步骤1007确定是否有密钥帧数据。当没有密钥帧数据时,则没有可发送帧数据。当有密钥帧数据时,步骤1008选择任意一个密钥帧数据作为下一个可发送帧数据。
当不是初始发送时,步骤1010确定前面发送帧数据的发送缓冲器的区域是否被再次使用。当前面发送帧数据的发送缓冲器的区域没有被再次使用时,则步骤1003确定是否准备好下一个帧数据。
当准备好下一个帧数据时,步骤1004选择下一个帧数据作为可发送帧数据。反之,当没有准备帧数据时,则没有可发送帧数据。
如果前面发送帧数据的发送缓冲器的区域被再次使用,步骤1015确定是否生成比最近发送的密钥帧数据更迟的密钥帧数据,并且,如果生成了更迟的密钥帧数据,则步骤1018将该密钥帧数据选择为下一个可发送帧数据。
如果没有生成更迟的密钥帧数据,则步骤1009记住要在下一次生成密钥帧数据,并且在这种情况下,没有可发送帧数据。
图10E为示出了按照本发明优选实施例的,使用用于确定可发送帧数据是否在用户发送缓冲器中的考虑因素6和条件3的例子的流程图。在有几个可发送帧数据的情况下,最后生成的帧数据被选为下一个可发送帧数据。此外,当新的帧数据再次使用在发送缓冲器中的发送给用户的帧数据的区域,并且没有新生成的密钥帧数据时,生成密钥帧数据。
首先,步骤1000确定它是否是初始发送。如果是初始发送,则步骤1007确定是否有密钥帧数据。由此,当没有密钥帧数据时,没有可发送帧数据。
在有密钥帧数据的情况下,步骤1016选择最后的密钥帧数据作为下一个可发送帧数据。此外,如果不是初始发送,步骤1015确定比最近发送给用户的密钥帧数据更迟的密钥帧数据是否生成。此时,如果生成了较迟的帧数据,则步骤1016将较迟的密钥帧数据作为下一个可发送帧数据。
当没有生成较迟的密钥帧数据时,步骤1010确定发送缓冲器的前面发送密钥帧数据的区域是否被再次使用。当该区域没有被再次使用时,步骤1003确定是否准备好下一个帧数据。当准备好下一个帧数据时,步骤1004选择下一个帧数据作为可发送帧数据。
反之,当没有准备下一个帧数据时,则没有可发送帧数据。当前面用于发送帧数据的发送缓冲器的区域被再次使用时,步骤1009记住要在下一次生成密钥帧数据。在这种情况下,没有可发送帧数据。
图10F为示出了按照本发明优选实施例的,使用用于确定可发送帧数据是否在用户发送缓冲器中的条件1和条件3的例子的流程图。通过对图10D附加使用条件1,如果在初始发送中没有密钥帧数据,则步骤1009记住在下一个编码时间里生成密钥帧数据。
图10G为示出了按照本发明优选实施例的,共同使用用于确定是否有可发送帧数据的考虑因素6、条件1和条件3的例子的流程图。通过对图10E附加使用条件1,如果在初始发送中没有密钥帧数据,则步骤1009记住要在下一次编码时间里生成密钥帧数据。
如以上说明中所描述的,即使用户数量迅速增加,本发明也能在不对服务器系统形成大的负载的情况下,为用户提供最优化的服务之一。根据网络状态,通过将每个用户分组,可以实现将A/V数据编码,从而生成适当大小的数据。因此,在众多用户通过网络连接到服务器上,向用户提供单信道或多信道A/V数据的场合,不需要在服务器中为每个用户分别准备一个编码器和一个发送缓冲器。
尽管本发明是参照优选实施例来具体描述的,但本领域技术人员应该理解,在不脱离本发明的精神和范围的情况下,可以对其形式和细节进行前述的和其它的修改。

Claims (36)

1.一种用于在网络中发送音频和视频(A/V)数据的设备,该设备包括:
编码器/发送缓冲器,用于将从服务器中的每个信道输入的A/V数据编码并存储为适合网络状态的适当大小,所述服务器为连接到网络上的用户提供单信道或多信道的A/V数据;以及
用户发送控制器,用于将在编码器/发送缓冲器中存储的经过编码的数据发送给用户;
其中,当将每个用户发送控制器分配给连接到服务器的每个用户时,利用用户发送控制器对用户进行分组,这些用户发送控制器用于按照组的网络状态来发送编码的数据。
2.如权利要求1所述的设备,其中,一组用户发送控制器包含一个编码器和一个发送缓冲器。
3.一种用于在网络中发送音频和视频(A/V)数据的方法,该方法包括:
将单信道或多信道A/V数据发送到编码器/发送缓冲器的步骤;
将发送到编码器和发送缓冲器的A/V数据编码并且存储的步骤;以及
通过分组的用户发送控制器将所存储的经过编码的数据发送到连接到网络上的用户的步骤。
4.如权利要求3所述的方法,其中,所述的将A/V数据编码并存储的步骤以及所述的将经过编码的数据存储到发送缓冲器的步骤被重复执行。
5.如权利要求4所述的方法,其中,在检查发送缓冲器之后,所述的将A/V数据编码的步骤将新的数据编码,从而避免对数据进行不必要的编码。
6.如权利要求4所述的方法,其中,所述的将A/V数据编码的步骤包括:
确定是否需要密钥帧数据的步骤;以及
按照所述确定的结果,将数据编码为密钥帧数据或参考帧数据的步骤。
7.如权利要求6所述的方法,所述方法还包括:
在将参考帧数据编码之后检查是否连续编码了‘s’个数目的参考帧数据的步骤;以及
在连续编码了‘s’个数目的参考帧数据的情况下记住要生成密钥帧数据的步骤。
8.如权利要求4所述的方法,其中,所述的将A/V数据编码的步骤包括:
确定是否需要将新数据编码的步骤;
当需要对新数据编码时,确定是否需要密钥帧数据的步骤;以及
按照所述确定的结果,将新数据编码为密钥帧数据或参考帧数据的步骤。
9.如权利要求8所述的方法,所述方法还包括:
在将参考帧数据编码之后检查是否连续编码了‘s’个数目的参考帧数据的步骤;以及
在连续编码了‘s’个数目的参考帧数据的情况下记住要生成密钥帧数据的步骤。
10.如权利要求8所述的方法,其中,所述的确定是否需要将新数据编码的步骤是由最后生成的帧数据是否被发送所决定的。
11.如权利要求9所述的方法,其中,所述的确定是否需要将新数据编码的步骤是由最后生成的帧数据是否被发送所决定的。
12.如权利要求7所述的方法,其中,所述的确定是否需要将新数据编码的步骤包括:
确定是否需要将密钥帧数据编码的步骤;以及
确定是否发送最后生成的帧数据的步骤。
13.如权利要求7所述的方法,其中,所述的确定是否需要将新数据编码的步骤包括:
确定网络状态的步骤;以及
在网络状态好的情况下,确定最后生成的‘n’个帧数据中的至少一个是否被发送或正在被发送到多个用户中的一个的步骤。
14.如权利要求7所述的方法,其中,所述的确定是否需要对新数据编码的步骤包括:
确定是否需要密钥帧数据的步骤;
在不需要密钥帧数据的情况下,确定网络发送速度是否足够快的步骤;
在网络发送速度足够快的情况下,确定最后生成的‘n’个帧数据中的至少一个是否被发送或正在被发送到多个用户中的一个的步骤;以及
在网络发送速度不够快的情况下,确定是否发送最后生成的帧数据的步骤。
15.如权利要求3所述的方法,其中,所述的将发送到编码器和发送缓冲器的A/V数据编码并存储的步骤包括:
计算被添加到发送缓冲器的帧数据的大小的步骤;
检查在发送缓冲器上用于所添加的帧数据的使用区域的步骤;以及
将所述帧数据存储到发送缓冲器中的所述使用区域的步骤。
16.如权利要求4所述的方法,其中,所述将帧数据存储到所述发送缓冲器的步骤包括:
确定在所述使用区域中是否有另一个帧数据以及这个将被破坏的帧数据是否也正在被发送到某个用户的步骤;
在正在发送这个将被破坏的帧数据的情况下,确定密钥帧数据是否在发送缓冲器中的步骤;
在没有发送密钥帧数据的情况下,记住要在下一次将密钥帧数据编码的步骤;以及
将被记住的密钥帧数据存储到发送缓冲器中的步骤。
17.如权利要求3所述的方法,其中,所述通过分组的用户发送控制器将所述存储的经过编码的数据发送到每一个连接到网络上的用户的步骤包括:
将用户发送控制器初始化的步骤;
确定是否有下一个可发送给用户的帧数据的步骤;
在下一个可发送给用户的数据在发送缓冲器中的情况下,将帧数据从发送缓冲器拷贝到附加存储器中的步骤;
将被拷贝的数据发送给用户的步骤;以及
在发送数据之后,确定网络是否被连接的步骤。
18.如权利要求3所述的方法,其中,所述的通过分组的用户发送控制器将所述存储的经过编码的数据发送到每一个连接到网络上的用户的步骤包括:
将用户发送缓冲器初始化的步骤;
确定是否有下一个可发送给用户的帧数据的步骤;
在可发送给用户的帧数据处在发送缓冲器中的情况下,检查发送缓冲器中的下一个可发送帧数据的区域,而不是将帧数据拷贝到附加存储器,从而减少存储器随着用户的增加的使用量的步骤;
发送在发送缓冲器的区域中的帧数据的步骤;
在发送的同时,确定帧数据区域是否被另一个帧数据再次使用的步骤;
在帧数据区域被再次使用的情况下,通知用户前面发送的数据是错误数据的步骤;以及
确定网络是否被连接的步骤。
19.如权利要求15所述的方法,其中,所述的发送帧数据的步骤包括:
通知使用开始的步骤;以及
通知使用结束的步骤。
20.如权利要求15所述的方法,其中,所述的将帧数据发送给用户的步骤包括:
通知使用开始的步骤;以及
通知使用结束的步骤。
21.如权利要求17所述的方法,所述方法还包括:在网络被连接的情况下,考虑到网络状态而自动将当前分组改变为适当分组的步骤。
22.如权利要求18所述的方法,所述方法还包括:在网络被连接的情况下,考虑到网络状态而自动将当前分组改变为适当分组的步骤。
23.如权利要求17所述的方法,其中,所述的确定下一个可发送给用户的帧数据是否处在发送缓冲器中的步骤包括:
确定下一个可发送给用户的帧数据是否在指定信道的发送缓冲器中的步骤。
24.如权利要求18所述的方法,其中,所述的确定下一个可发送给用户的帧数据是否处在发送缓冲器中的步骤包括:
确定下一个可发送给用户的帧数据是否在指定信道的发送缓冲器中的步骤。
25.如权利要求17所述的方法,在多信道的情况下,确定下一个可发送的帧数据是否处在发送缓冲器中的步骤包括:
主要参照被发送信道或被查询信道,来选择信道‘i’作为下一个检查信道的步骤;
确定设备是否从所选择的信道‘i’检查了所有信道的步骤;
在存在未检查信道的情况下,确定信道‘i’是否为用户服务的步骤;以及
在该信道为用户服务的情况下,通过确定下一个可发送给用户的帧数据是否处在该信道发送缓冲器中,来选择信道‘i’的步骤。
26.如权利要求18所述的方法,在多信道的情况下,确定下一个可发送的帧数据是否处在发送缓冲器中的步骤包括:
主要参照被发送信道或被查询信道,来选择信道‘i’作为下一个检查信道的步骤;
确定设备是否从所选择的信道‘i’检查了所有信道的步骤;
在存在未检查信道的情况下,确定信道‘i’是否为用户服务的步骤;以及
在该信道为用户服务的情况下,通过确定下一个可发送给用户的帧数据是否处在该信道发送缓冲器中,来选择信道‘i’的步骤。
27.如权利要求21所述的方法,在通过考虑信道之间的同步,将最早生成的信道首先发送的情况下,所述方法还包括:
确定在设备完成检查所有信道之后,是否固定可发送信道的步骤;以及
在确定可发送给用户的帧数据是否处在该信道的发送缓冲器中之后,确定信道‘i’的生成时间是否早于其它信道的生成时间的步骤。
28.如权利要求22所述的方法,所述方法还包括:
确定帧数据的生成时间与当前时间之间的差异是否小于预定时间T,以更适合信道之间的同步的步骤;以及
在它们之间的差异不小于预定时间T的情况下,记住要在下一次生成密钥帧数据的步骤。
29.如权利要求17所述的方法,其中,所述的确定下一个可发送给用户的帧数据是否处在发送缓冲器中的步骤包括:
在可发送信道被固定的情况下,详细确定是否是初始发送的步骤;
在是初始发送的情况下,确定发送缓冲器是否为空的步骤;
在发送缓冲器不为空的情况下,在发送缓冲器中选择任意一个帧数据作为可发送帧数据,而在发送缓冲器为空的情况下,没有可发送帧数据的步骤;
在不是初始发送的情况下,用前面发送给用户的帧数据的信息确定下一个可发送帧数据是否准备好的步骤;以及
在准备好下一个可发送帧数据的情况下,发送下一个帧数据,而在下一个可发送帧数据没有准备好的情况下,没有下一个可发送帧数据的步骤。
30.如权利要求18所述的方法,其中,所述的确定下一个可发送给用户的帧数据是否处在发送缓冲器中的步骤包括:
在可发送信道被固定的情况下,详细确定是否是初始发送的步骤;
在是初始发送的情况下,确定发送缓冲器是否为空的步骤;
在发送缓冲器不为空的情况下,在发送缓冲器中选择任意一个帧数据作为可发送帧数据,而在发送缓冲器为空的情况下,没有可发送帧数据的步骤;
在不是初始发送的情况下,用前面发送给用户的帧数据的信息确定下一个可发送帧数据是否准备好的步骤;以及
在准备好下一个可发送帧数据的情况下,发送下一个帧数据,而在下一个可发送帧数据没有准备好的情况下,没有下一个可发送帧数据的步骤。
31.如权利要求17所述的方法,其中,所述的确定下一个可发送给用户的帧数据是否处在发送缓冲器中的步骤包括:
在密钥帧数据与参考帧数据不是分别编码并且可发送信道被固定的情况下,用前面发送给用户的帧数据的信息检查下一个可发送帧数据是否在发送缓冲器中的步骤;
在准备好下一个被发送的帧数据的情况下,检查是否有比下一个被发送的帧数据更晚生成的帧数据的步骤;
在有比下一个被发送的帧数据更晚生成的帧数据的情况下,选择最后生成的帧数据作为下一个可发送的帧数据的步骤;
在密钥帧数据与参考帧数据被分别编码的情况下,确定密钥帧数据的生成是否迟于最近被发送给用户的密钥帧数据的步骤;以及
在有更近生成的密钥帧数据的情况下,选择最后生成的密钥帧数据作为下一个帧数据的步骤。
32.如权利要求18所述的方法,其中,所述的确定下一个可发送给用户的帧数据是否处在发送缓冲器中的步骤包括:
在密钥帧数据与参考帧数据不是分别编码并且可发送信道被固定的情况下,用前面发送给用户的帧数据的信息检查下一个可发送帧数据是否在发送缓冲器中的步骤;
在准备好下一个被发送的帧数据的情况下,检查是否有比下一个被发送的帧数据更晚生成的帧数据的步骤;
在有比下一个被发送的帧数据更晚生成的帧数据的情况下,选择最后生成的帧数据作为下一个可发送的帧数据的步骤;
在密钥帧数据与参考帧数据被分别编码的情况下,确定密钥帧数据的生成是否迟于最近被发送给用户的密钥帧数据的步骤;以及
在有更近生成的密钥帧数据的情况下,选择最后生成的密钥帧数据作为下一个帧数据的步骤。
33.如权利要求17所述的方法,其中,所述的确定下一个可发送给用户的帧数据是否处在发送缓冲器中的步骤包括:
确定是否是用于用户的初始发送状态的步骤;
在是初始发送的情况下,确定是否有密钥帧数据的步骤;以及
在没有密钥帧数据的情况下,记住要生成密钥帧数据的步骤。
34.如权利要求18所述的方法,其中,所述的确定下一个可发送给用户的帧数据是否处在发送缓冲器中的步骤包括:
确定是否是用于用户的初始发送状态的步骤;
在是初始发送的情况下,确定是否有密钥帧数据的步骤;以及
在没有密钥帧数据的情况下,记住要生成密钥帧数据的步骤。
35.如权利要求17所述的方法,其中,所述的确定下一个可发送给用户的帧数据是否处在发送缓冲器中的步骤包括:
当可发送信道固定,不用将可发送帧数据从发送缓冲器拷贝到附加存储器就发送发送缓冲器中的可发送帧数据时,确定在发送缓冲器中的前面发送的帧数据的发送缓冲器的区域是否被再次使用,从而减少随着用户的增加而导致的存储器使用量的步骤;
在密钥帧数据和参考帧数据被分别编码的情况下,确定密钥帧数据的生成是否迟于前面发送给用户的密钥帧数据,而在密钥帧数据和参考帧数据不是被分别编码并且发送缓冲器的区域被再次使用的情况下,将状态改变为初始发送状态的步骤;
在最近没有最后生成的密钥帧数据的情况下,记住要通过编码器生成密钥帧数据的步骤;以及
在最近有最后生成的密钥帧数据的情况下,确定下一个可发送帧数据的步骤。
36.如权利要求18所述的方法,其中,所述的确定下一个可发送给用户的帧数据是否处在发送缓冲器中的步骤包括:
当可发送信道固定,不用将可发送帧数据从发送缓冲器拷贝到附加存储器就发送发送缓冲器中的可发送帧数据时,确定在发送缓冲器中的前面发送的帧数据的发送缓冲器的区域是否被再次使用,从而减少随着用户的增加而导致的存储器使用量的步骤;
在密钥帧数据和参考帧数据被分别编码的情况下,确定密钥帧数据的生成是否迟于前面发送给用户的密钥帧数据,而在密钥帧数据和参考帧数据不是被分别编码并且发送缓冲器的区域被再次使用的情况下,将状态改变为初始发送状态的步骤;
在最近没有最后生成的密钥帧数据的情况下,记住要通过编码器生成密钥帧数据的步骤;以及
在最近有最后生成的密钥帧数据的情况下,确定下一个可发送帧数据的步骤。
CNB011374039A 2000-11-13 2001-11-13 用于在网络中发送音频/视频数据的设备和方法 Expired - Fee Related CN1205783C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR67127/2000 2000-11-13
KR67127/00 2000-11-13
KR10-2000-0067127A KR100372525B1 (ko) 2000-11-13 2000-11-13 네트워크상에서 음성 및 영상 데이터 전송 장치 및 그 방법

Publications (2)

Publication Number Publication Date
CN1353524A true CN1353524A (zh) 2002-06-12
CN1205783C CN1205783C (zh) 2005-06-08

Family

ID=19698607

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB011374039A Expired - Fee Related CN1205783C (zh) 2000-11-13 2001-11-13 用于在网络中发送音频/视频数据的设备和方法

Country Status (3)

Country Link
US (1) US20020091849A1 (zh)
KR (1) KR100372525B1 (zh)
CN (1) CN1205783C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100456673C (zh) * 2003-07-15 2009-01-28 三星电子株式会社 移动专用网络环境中有效发送接收数据的网络设备和方法
US7581018B2 (en) 2003-10-13 2009-08-25 Lg Electronics Inc. Server system for performing communication over wireless network
WO2017035803A1 (zh) * 2015-09-02 2017-03-09 深圳好视网络科技有限公司 一种视频编码系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100428659B1 (ko) * 2001-07-20 2004-04-28 엘지전자 주식회사 데이터 통신망의 더블 버퍼를 이용한 데이터 업레이트장치 및 그 방법
US7620699B1 (en) * 2002-07-26 2009-11-17 Paltalk Holdings, Inc. Method and system for managing high-bandwidth data sharing
KR100480518B1 (ko) * 2004-02-16 2005-04-07 (주)피카소정보통신 영상 데이터 인코딩 또는 디코딩 방법 및 그 장치
US8122145B2 (en) 2004-05-17 2012-02-21 Nokia Corporation System, method and computer program product for grouping clients and transferring content in accordance with the same
KR100861594B1 (ko) * 2007-04-23 2008-10-07 주식회사 케이티프리텔 멀티미디어 데이터 전송률 제어 장치 및 그 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH066388A (ja) * 1992-06-23 1994-01-14 Nec Corp 不等長符号化伝送方式
US5434913A (en) * 1993-11-24 1995-07-18 Intel Corporation Audio subsystem for computer-based conferencing system
KR970000668B1 (ko) * 1994-02-21 1997-01-16 재단법인 한국전자통신연구소 비동기 전달 모드(atm) 망에서의 폭주를 예방하기 위한 트래픽 출력 억제 장치 및 방법
JPH07264196A (ja) * 1994-03-18 1995-10-13 Nec Corp マルチ・メディア・サーバ
JP3053781B2 (ja) * 1997-03-18 2000-06-19 沖電気工業株式会社 動画像圧縮符号の復号方法及び復号装置
US6552749B1 (en) * 1999-01-29 2003-04-22 Intel Corporation Method and apparatus for video motion compensation, reduction and color formatting
US6981050B1 (en) * 1999-02-11 2005-12-27 Loudeye Corp. Digital remote recorder
US7159235B2 (en) * 2000-01-28 2007-01-02 Sedna Patent Services, Llc Method and apparatus for content distribution via non-homogeneous access networks
KR100332320B1 (ko) * 2000-04-28 2002-04-12 이재황 병렬형 제어구조의 웹-캐스팅 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100456673C (zh) * 2003-07-15 2009-01-28 三星电子株式会社 移动专用网络环境中有效发送接收数据的网络设备和方法
US7581018B2 (en) 2003-10-13 2009-08-25 Lg Electronics Inc. Server system for performing communication over wireless network
WO2017035803A1 (zh) * 2015-09-02 2017-03-09 深圳好视网络科技有限公司 一种视频编码系统

Also Published As

Publication number Publication date
US20020091849A1 (en) 2002-07-11
KR100372525B1 (ko) 2003-02-19
KR20020037124A (ko) 2002-05-18
CN1205783C (zh) 2005-06-08

Similar Documents

Publication Publication Date Title
CN1264333C (zh) 视频编码方法及设备、视频译码方法及设备
CN1164089C (zh) 数字广播中转换节目的方法及数字广播接收装置
CN1736107A (zh) 视频发送系统、视频发送装置、视频接收装置和视频发送方法
CN1242620C (zh) 用于数字视频记录的基于代码转换器的自适应量化
CN1268143C (zh) 移动通信系统中多媒体广播/多播服务的设备和方法
CN1118767C (zh) 用于在显示屏幕上显示多个图像的方法和系统以及使用该方法的服务器和远程监控系统
CN1233165C (zh) Mpeg编码装置和mpeg解码装置以及编码程序
CN101077010A (zh) 用于通过无线网络的数字视频传输的方法和系统
CN1784003A (zh) 内容递送系统、通信装置、通信方法和程序
CN1315118A (zh) 压缩与未经压缩的数字视频信号的统计式多路转接的动态位分配
CN1863168A (zh) 发射和接收系统,发射器,发射发法,接收器,接收方法
CN101052127A (zh) 信息处理装置、信息处理方法、记录介质和程序
CN1319996A (zh) 图像编码和解码设备及其方法、图像记录和图像传送设备
CN1364353A (zh) 移动通信系统中依据无线链接协议重发数据的设备和方法
CN1878002A (zh) 数字信号编码装置、数字信号解码装置、数字信号算术编码方法及数字信号算术解码方法
CN1681324A (zh) 快速通道改变
CN1859562A (zh) 视频点播方法、系统、服务器和终端
CN1357200A (zh) 使用多个可编程处理器的多信道mpeg视频代码转换器
CN1205154A (zh) 图像声音解码装置和图像声音编码装置以及信息传输系统
CN101056401A (zh) 信息传送设备和信息传送方法
CN1929422A (zh) 通信处理设备、通信控制方法及计算机程序
CN1917649A (zh) 一种支持多音轨的方法、系统及流媒体服务器
CN1205783C (zh) 用于在网络中发送音频/视频数据的设备和方法
CN1714554A (zh) 视听媒体编码系统
CN1214592C (zh) 多通道数据直接内存访问系统和方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050608

Termination date: 20171113