[go: up one dir, main page]

JP2008527472A - How to process multimedia streams - Google Patents

How to process multimedia streams Download PDF

Info

Publication number
JP2008527472A
JP2008527472A JP2007548413A JP2007548413A JP2008527472A JP 2008527472 A JP2008527472 A JP 2008527472A JP 2007548413 A JP2007548413 A JP 2007548413A JP 2007548413 A JP2007548413 A JP 2007548413A JP 2008527472 A JP2008527472 A JP 2008527472A
Authority
JP
Japan
Prior art keywords
components
stream
real
component
packet
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.)
Pending
Application number
JP2007548413A
Other languages
Japanese (ja)
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2008527472A publication Critical patent/JP2008527472A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2355Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23608Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Computer And Data Communications (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

方法、機械読取り可能な媒体、システムおよび装置が開示される。一実施形態では、この方法は、マルチメディア・ストリームを含む1またはそれ以上の成分がリアルタイム処理を必要とするかどうかを判断すること、1またはそれ以上の成分のうちの少なくとも1つがリアルタイム処理を必要とする場合、リアルタイム処理を必要とする1またはそれ以上の成分を1またはそれ以上のリアルタイム・プロセスに割り当てること、および残余のあらゆる成分を1またはそれ以上の非リアルタイム・プロセスに割り当てることを含む。  Methods, machine readable media, systems and devices are disclosed. In one embodiment, the method determines whether one or more components comprising the multimedia stream require real-time processing, at least one of the one or more components performs real-time processing. If needed, including assigning one or more components that require real-time processing to one or more real-time processes and assigning any remaining components to one or more non-real-time processes .

Description

本発明は、マルチメディア・ストリームの処理に関する。より詳細には、本発明は、マルチメディア・ストリームを処理するためのアルゴリズム・プロセスの知的選択に関する。   The present invention relates to processing multimedia streams. More particularly, the present invention relates to intelligent selection of algorithmic processes for processing multimedia streams.

音楽ダウンロード、ビデオ録画、および電話での会話時など、マルチメディア・ストリームとの対話(interaction)は、社会に普及している。これらのストリームを送受信するために設計された電子装置のタイプは、ストリーム自体の形式と同じくらい様々である。ある電子装置のユーザが別の電子装置のユーザに情報を送信する場合、通信が有効に行われるには、形式が互いに互換性を有することが必要である。多くの場合、2つの電子装置が使用する形式は全く互換性がなく、したがって、2つの装置間で移動する情報を変換するために、中間の装置が使用されなければならない。トランスコーダと呼ばれる装置は、ある形式のマルチメディア・ストリームを別の形式に変換し、したがって人々は互いに容易に通信し、これらの異なる装置および異なるマルチメディア・ストリーム形式をそのまま使用することができる。トランスコーディングは現在、単方向、双方向、または多方向ストリーム用など、様々な異なるシナリオにおいて使用される。   Interactions with multimedia streams, such as music downloads, video recordings, and telephone conversations, are prevalent in society. The types of electronic devices designed to send and receive these streams are as varied as the format of the streams themselves. When a user of one electronic device transmits information to a user of another electronic device, the formats need to be compatible with each other in order for communication to take place effectively. In many cases, the formats used by the two electronic devices are not interchangeable, and therefore an intermediate device must be used to convert information that travels between the two devices. Devices called transcoders convert one type of multimedia stream to another, so people can easily communicate with each other and use these different devices and different multimedia stream formats as they are. Transcoding is currently used in a variety of different scenarios, such as for unidirectional, bidirectional, or multidirectional streams.

単方向トランスコーディングは、ある装置がマルチメディア・ストリームを別の装置に送信する状況において使用される。ビデオ・メッセージングおよびビデオ・ストリーミングは、単方向トランスコーディングの例である。図1Aは、マルチメディア・ストリームの単方向トランスコーディングを必要とし得るトランザクションの一例を示す。この例では、ビデオ・ストリーム100は、第1のコンピュータ102から第2のコンピュータ104に送信される。第1のコンピュータ102からのビデオは、とりわけMPEG2、MPEG4、GSM(global system for mobile communications:移動通信用グローバル・システム)またはAMR(adaptive multi−rate:適応マルチレート)を含めて、多くの異なる可能な形式のうちの1つに符号化される。第2のコンピュータ104は、ストリーミング・ビデオを受信し復号し、ビデオモニタ上に表示する。   Unidirectional transcoding is used in situations where one device transmits a multimedia stream to another device. Video messaging and video streaming are examples of unidirectional transcoding. FIG. 1A shows an example of a transaction that may require unidirectional transcoding of a multimedia stream. In this example, video stream 100 is transmitted from first computer 102 to second computer 104. Video from the first computer 102 can have many different possibilities, including MPEG2, MPEG4, GSM (global system for mobile communications) or AMR (adaptive multi-rate), among others. Encoded into one of the following formats. The second computer 104 receives and decodes the streaming video and displays it on the video monitor.

単方向トランスコーディングの別の例は、ボイスメールである。ある人が、オフィスにいないことを発呼者に知らせるため、そのボイスメール・システムにメッセージを記録することを望み得る。その人は、メッセージを保存したいか、それとも再び録音したいかを決定するために、メッセージを再生することを望み得る。その人は、G.711形式の電話を通して話すことができ、ボイスメール・システムは、WAVファイルにメッセージを記録することがある。この場合もやはり、トランスコーディング・ステップが必要である。   Another example of unidirectional transcoding is voicemail. A person may want to record a message in his voicemail system to inform the caller that he is not in the office. The person may wish to play the message to decide whether he wants to save the message or record again. The person You can speak through a 711 phone, and the voicemail system may record the message in a WAV file. Again, a transcoding step is necessary.

双方向トランスコーディングは、潜在的にはビデオ通話やオーディオ(たとえば電話)通話時など、2つの装置が互いにストリームを送信するときに使用される。図1Bは、マルチメディア・ストリームの双方向トランスコーディングを必要とし得る双方向ビデオ通話の例を示す。この例では、ビデオ・ストリーム110は、第1のコンピュータ112から第2のコンピュータ114に、また第2のコンピュータ114から第1のコンピュータ110に送信される。   Bidirectional transcoding is used when two devices send streams to each other, potentially during a video call or audio (eg, telephone) call. FIG. 1B shows an example of a bi-directional video call that may require bi-directional transcoding of a multimedia stream. In this example, video stream 110 is transmitted from first computer 112 to second computer 114 and from second computer 114 to first computer 110.

多方向トランスコーディングは、たとえば三者テレビ会議時など、3つ以上の装置が互いにストリームを送信するときに使用される。図1Cは、多方向トランスコーディングを必要とし得る三者テレビ会議の一例を示す。この例では、まさに図1Bの例のように、複数のコンピュータが互いの間でビデオ・ストリームを送受信する。この例では、第1のコンピュータ122、第2のコンピュータ124および携帯型のモバイル・コンピュータ/携帯電話126は、互いの間でストリーム120を送受信する。   Multi-directional transcoding is used when more than two devices send streams to each other, for example during a three-party video conference. FIG. 1C shows an example of a three-party video conference that may require multi-directional transcoding. In this example, multiple computers send and receive video streams between each other, just as in the example of FIG. 1B. In this example, a first computer 122, a second computer 124, and a portable mobile computer / cell phone 126 send and receive a stream 120 between each other.

多くの場合において、図1A、図1Bおよび図1Cに示されたコンピュータはそれぞれ、マルチメディア・ストリームを異なる形式で符号化し復号し得る。たとえば、図1Cの2つのコンピュータ(130,132)は、MPEG4形式のストリームを符号化し復号し得るが、モバイル・コンピュータ/携帯電話134は、MPEG4を符号化または復号できないことがあり、そうではなく、GSM形式ストリームだけを符号化し復号する。この場合、3つの装置のそれぞれから来るストリームを傍受し、ストリームを各宛先装置の固有の形式に変換するために、トランスコーディング装置が使用され得る。   In many cases, each of the computers shown in FIGS. 1A, 1B, and 1C may encode and decode multimedia streams in different formats. For example, the two computers (130, 132) of FIG. 1C may encode and decode a stream in MPEG4 format, but the mobile computer / cell phone 134 may or may not be able to encode or decode MPEG4. Only GSM format streams are encoded and decoded. In this case, a transcoding device may be used to intercept the stream coming from each of the three devices and convert the stream into a unique format for each destination device.

ビデオ・ストリームは、トランスコーダがどこで必要とされ得るかについての多くの可能な例のうちの単に1つである。たとえば、固定電話を使用する人が、携帯電話上の友人に電話をかける場合、必要なトラスコーディング・ステップがある。標準の固定電話は一般に、G.711形式を使用して動作する。呼に応答する友人は一般に、GSM、AMRまたは他の携帯電話音声形式の技術を有する。したがって、2人の友人が互いに話を聞くためには、彼らが話している間、トランスコーディング・ステップが必要である。   A video stream is just one of many possible examples of where a transcoder may be needed. For example, if a person using a landline phone calls a friend on a mobile phone, there is a necessary truss coding step. Standard landline phones are generally G.P. It operates using the 711 format. Friends answering calls typically have GSM, AMR or other mobile phone voice format technologies. Thus, in order for two friends to hear each other, a transcoding step is required while they are speaking.

これらのトランスコーディングの例の多くに必要な処理能力は、非常に様々である。一部の例ではリアルタイムのトランスコーディングが必要であるが、他では必要ない。「リアルタイム」は、トランスコードされていないマルチメディア・ストリームがトランスコーダに到達するのと同じレートでマルチメディア・ストリームをトランスコードし、出力するためにトランスコーダに必要とされるおよその速度を指す。したがって、音声ストリームをリアルタイムでトランスコードするには、人が言葉を実際に発するレートで音声情報をトランスコードすることが必要である。したがって、固定電話線と携帯電話線とを介して互いに話している2人の友人は、リアルタイムで互いに話しており、オーディオの遅延が許容され得ないので、リアルタイムでトランスコードされる形式をもたなければならない。三者のテレビ会議は、リアルタイムでトランスコードされる必要がある3つのストリームがあるだけでなく、ストリームが、単に純粋な音声成分パケットよりもパケット当たり遥かに多い情報である音声およびビデオ成分を含むパケットで構成されるので、さらに多くの処理能力を必要とする。   The processing power required for many of these transcoding examples varies greatly. Some examples require real-time transcoding, while others do not. “Real-time” refers to the approximate speed required for the transcoder to transcode and output the multimedia stream at the same rate that the untranscoded multimedia stream reaches the transcoder. . Therefore, transcoding an audio stream in real time requires transcoding audio information at a rate at which a person actually speaks. Thus, two friends talking to each other over landline and mobile phone lines are talking to each other in real time and have a form that is transcoded in real time because audio delay cannot be tolerated. There must be. Three-party video conferencing not only has three streams that need to be transcoded in real time, but the stream contains much more information per packet than just pure audio component packets. Since it consists of packets, it requires more processing power.

現在、リアルタイムのトランスコーディング・システムは通常、パケット内のどんな形の情報もリアルタイムでトランスコードされ得ることを保証するために、専用デジタル信号プロセッサを備えたサーバなど、非常に強力なプロセッサを使用する。多くの場合、この量の処理能力は必要ない。オフィス不在メッセージを記録しており、次いでその記録を調べる人は、リアルタイムでは操作していない。人が電話に向かって話すときと、調べている間にその記録された音声を聞くときとの間には、複数秒の範囲の遅延がある。   Currently, real-time transcoding systems typically use very powerful processors, such as servers with dedicated digital signal processors, to ensure that any form of information in a packet can be transcoded in real time. . In many cases this amount of processing power is not necessary. The person who records the office absence message and then examines the record is not operating in real time. There is a delay in the range of multiple seconds between when a person speaks into the phone and when he hears the recorded voice while examining.

非リアルタイムのオフラインのやり方でトランスコーディングを実施するトランスコーディング・システムもある。パーソナル・コンピュータ上のユーザは、DVDに格納するために、VHSテープをAVIファイルに変換し得る。最後に、トランスコーディングが全く行われない実装形態があり、たとえば生ビデオ、音声またはオーディオ形式のストリームが、ネットワークを介して送信されることができる。このタイプのストリームは、生形式のストリームが圧縮されておらず、非常に多くのネットワーク帯域幅を必要とするので、効率的ではない。   Some transcoding systems perform transcoding in a non-real-time offline manner. A user on a personal computer can convert a VHS tape to an AVI file for storage on a DVD. Finally, there are implementations in which no transcoding is performed, for example a stream of raw video, audio or audio format can be transmitted over the network. This type of stream is not efficient because the raw stream is not compressed and requires a great deal of network bandwidth.

本発明は、例示するために示されており、添付の図面の諸図によって限定されるものでない。図面では、同じ参照符号は、類似の要素を示す。   The present invention has been shown by way of example and is not limited by the figures of the accompanying drawings. In the drawings, like reference numbers indicate like elements.

マルチメディア・ストリームを処理するための有効な方法の実施形態が開示される。以下の説明では、複数の特定の詳細について述べる。しかし、諸実施形態は、これらの特定の詳細事項がなくても実施され得ることが理解されよう。他の場合では、よく知られている要素、応用例および技術は、本発明を不明瞭にしないようにするため、詳細には論じられない。   An embodiment of an effective method for processing a multimedia stream is disclosed. In the following description, a number of specific details are set forth. However, it will be understood that embodiments may be practiced without these specific details. In other instances, well-known elements, applications and techniques will not be discussed in detail so as not to obscure the present invention.

図2は、マルチメディア・ストリーム処理管理システム(MSPMS:multimedia stream processing management system)を備えたコンピュータ・システムの一実施形態のブロック図である。コンピュータ・システムは、プロセッサ200と、メモリ・コントローラ・ハブ(MCH:memory controller hub)202と、I/Oコントローラ・ハブ(ICH:I/O controller hub)210とを含む。MCH 202およびICH 210は、チップセットを含む。プロセッサ200は、ホスト・バスを介してMCH 202に結合される。MCH 202は、システム・メモリ204に結合される。異なる実施形態では、システム・メモリは、同期ダイナミック・ランダム・アクセス・メモリ(SDRAM:synchronous dynamic random access memory)、ダブル・データ・レートSDRAM(DDR SDRAM:double data rate SDRAM)、ラムバスDRAM(RDRAM:Rambus DRAM)、またはメイン・システム・メモリの他の多くの形式のうちの1つがあり得る。   FIG. 2 is a block diagram of one embodiment of a computer system that includes a multimedia stream processing management system (MSPMS). The computer system includes a processor 200, a memory controller hub (MCH) 202, and an I / O controller hub (ICH) 210. MCH 202 and ICH 210 include a chipset. The processor 200 is coupled to the MCH 202 via a host bus. MCH 202 is coupled to system memory 204. In different embodiments, the system memory may be synchronous dynamic random access memory (SDRAM), double data rate SDRAM (DDR SDRAM), Rambus DRAM (RDRAM: Rambus). DRAM), or one of many other forms of main system memory.

一実施形態では、コンピュータ・システムは、システム・メモリ204に格納されており、またプロセッサ200によって操作/実行されるMSPMS206を含む。異なる実施形態では、MSPMS206は、処理が必要とする速度(たとえばリアルタイムや非リアルタイム)、ストリームを含む異なる成分(たとえばオーディオ成分、音声成分、ビデオ成分、データ成分および制御成分)のそれぞれに関連付けられた優先度、およびマルチメディア・ストリームを実際に処理する特定の装置の割当てなど、マルチメディア・ストリーム処理に関する複数の管理決定を制御し得る。異なる実施形態では、実際にマルチメディア・ストリームを処理する装置は、他にも多くの可能な処理装置があるが、特に挙げると、デジタル信号プロセッサ、ネットワーク・サーバ、リモート・デスクトップ・コンピュータ、または図2に示すコンピュータ・システム(プロセッサ200を含む)があり得る。   In one embodiment, the computer system includes an MSPMS 206 that is stored in the system memory 204 and that is operated / executed by the processor 200. In different embodiments, the MSPMS 206 is associated with the speed required for processing (eg, real time or non-real time), each of the different components including the stream (eg, audio component, audio component, video component, data component and control component). Multiple management decisions regarding multimedia stream processing may be controlled, such as priority and assignment of specific devices that actually process the multimedia stream. In different embodiments, there are many other possible processing devices that actually process the multimedia stream, especially digital signal processors, network servers, remote desktop computers, or diagrams. 2 may include the computer system (including processor 200).

MCH202もまた、グラフィックス・モジュール208に結合される。ICH 210は、ハード・ドライブ212およびI/Oバス214に結合される。I/Oバス214は、ネットワークとのインターフェースを取るネットワーク・インターフェース・カードに結合される。異なる実施形態では、ネットワークは、ローカル・エリア・ネットワーク、公衆電話システム、インターネット、広域ネットワーク、ワイヤレス・ネットワーク、またはコンピューティング装置間でデータを送り届けることができる他の任意のネットワークがあり得る。   The MCH 202 is also coupled to the graphics module 208. The ICH 210 is coupled to the hard drive 212 and the I / O bus 214. The I / O bus 214 is coupled to a network interface card that interfaces with the network. In different embodiments, the network can be a local area network, a public telephone system, the Internet, a wide area network, a wireless network, or any other network that can deliver data between computing devices.

図3は、マルチメディア・ストリーム処理管理システム(MSPMS)の一実施形態を示す。この実施形態では、MSPMSの処理論理300は、マルチメディア・ストリーム・ソース302と宛先318との間に位置する。ソース302は、マルチメディア・ストリームを生成し符号化し、ネットワークを介して宛先装置318に送信する。ストリームは、複数の連続するパケットで構成される。   FIG. 3 illustrates one embodiment of a multimedia stream processing management system (MSPMS). In this embodiment, the MSPMS processing logic 300 is located between the multimedia stream source 302 and the destination 318. The source 302 generates and encodes the multimedia stream and sends it to the destination device 318 over the network. A stream is composed of a plurality of consecutive packets.

それぞれのパケットは、複数の成分を含み得る。パケットの各成分は、ストリームに関する、ある情報のタイプからなる。たとえば、オーディオ/ビデオ・ストリーム用のパケットは、音声成分と、別個のビデオ成分とを含むことができる。異なる例では、ストリーム内で命令を送信するデータ成分、(特定の音声情報に対して)音楽およびバックグラウンド・ノイズ情報を含む一般的なオーディオ成分、ならびに他のタイプの制御情報もあるが特に挙げると、セキュリティ情報、認証情報およびサービス品質(QOS:quality of service)情報を含み得る制御成分など、マルチメディア・ストリームをやはり構成する他の成分があり得る。パケット内の各成分は、その成分について所定量の情報を含む。パケット当たりの成分ごとの情報量は通常、時間で測定される。たとえば、マルチメディア・ストリームの個別のパケット内の音声成分は、100ミリ秒の記録された音声からなり得る。成分情報とは別に、それぞれのパケットはヘッダ情報を含み、このヘッダ情報は、パケットが正確な宛先へとルーティングされることを可能にするためのアドレス情報を含む。   Each packet may include multiple components. Each component of the packet consists of some type of information about the stream. For example, a packet for an audio / video stream can include an audio component and a separate video component. Different examples are specifically mentioned, although there are also data components that send instructions in the stream, general audio components including music and background noise information (for specific audio information), and other types of control information. And other components that also make up the multimedia stream, such as control components that may include security information, authentication information, and quality of service (QOS) information. Each component in the packet contains a predetermined amount of information about that component. The amount of information per component per packet is usually measured in time. For example, the audio component in individual packets of a multimedia stream can consist of 100 milliseconds of recorded audio. Apart from the component information, each packet includes header information, which includes address information to allow the packet to be routed to the correct destination.

図3に戻ると、たとえばソース302は、MPEG2形式を必要とする宛先318にMPEG4形式のビデオ・ストリームを送信しており、次いでストリームは、宛先318に到着する前にトランスコードされなければならない。この実施形態では、MSPMS処理論理300は、ストリームを傍受する。ストリームは、ストリーム・アンラッパー・ユニット304に入る。ストリーム・アンラッパー・ユニット304は、ストリームを、その個別の成分へとラップ解除する(unwrap)。ストリームの個別の成分は、プロセス割当てユニット306にルーティングされる。現在の例では、ビデオ成分はラップ解除され、プロセス割当てユニット306に送信される。一実施形態では、ヘッダ・アドレス情報は、ストリーム・アンラッパー・ユニット304からストリーム・ラッパー・ユニット316に直接送信される。   Returning to FIG. 3, for example, source 302 is sending a video stream in MPEG 4 format to a destination 318 that requires MPEG 2 format, which must then be transcoded before arriving at destination 318. In this embodiment, MSPMS processing logic 300 intercepts the stream. The stream enters the stream unwrapper unit 304. The stream unwrapper unit 304 unwraps the stream into its individual components. Individual components of the stream are routed to the process allocation unit 306. In the current example, the video component is unwrapped and sent to the process allocation unit 306. In one embodiment, the header address information is sent directly from the stream unwrapper unit 304 to the stream wrapper unit 316.

次いで、プロセス割当てユニット306は、1またはそれ以上のストリーム成分のそれぞれを、1またはそれ以上のアルゴリズム・プロセス(308,310,312,314)を含む処理論理に割り当てる。「アルゴリズム・プロセス」は、マルチメディア・ストリームの1またはそれ以上の成分を何らかのやり方で修正することができる方法またはプロセスである。アルゴリズム・プロセスの例には、特に挙げると、マルチメディア・ストリームの成分をトランスコードする方法、マルチメディア・ストリームの特定の成分を除外する方法、マルチメディア・ストリームの成分の処理を遅延させる方法、リアルタイム・トランスポート・プロトコル(RTP:real−time transport protocol)ストリームをバッファリングする方法が含まれる。   The process allocation unit 306 then assigns each of the one or more stream components to processing logic that includes one or more algorithm processes (308, 310, 312, 314). An “algorithm process” is a method or process that can modify one or more components of a multimedia stream in some way. Examples of algorithmic processes include, among other things, a method for transcoding multimedia stream components, a method for excluding certain components of a multimedia stream, a method for delaying processing of components of a multimedia stream, A method for buffering a real-time transport protocol (RTP) stream is included.

しばしば、特定のタスクを完了するために、2つ以上のアルゴリズム・プロセスが使用されなければならない。たとえば、ユーザが、ボイスメールを残すことを望み得る。ユーザは、電話番号を呼び出し、ボイスメール・システムが、呼に応答する。ユーザがメッセージを残すとき、第1のアルゴリズム・プロセスは、RTPストリームを介して来る実際の音声データをバッファリングすることがあり、第2のアルゴリズム・プロセスは、ユーザ・メッセージ中に電話のいずれかのボタンが押下されるときを検出するために発信音を監視することがあり(デュアル・トーン・マルチ周波数(DTMF:dual−tone multi−frequency)検出)、また第3のアルゴリズム・プロセスは、より格納しやすい形式にRTPストリームをトランスコードすることがある。この場合、RTPストリーム・バッファおよびDTMF検出アルゴリズム・プロセスは、有効なユーザ対話を生成するためにリアルタイムで操作されなければならず、そうでない場合、ボイスメールは有用なものとならず、トランスコーディング・プロセスは、単に使用可能なときに(on an available basis)バッファから情報を取り出す。したがって、RTPおよびDTMFのアルゴリズム・プロセスは、トランスコーディング・プロセスよりも高い優先度を有することがあり、それらのプロセスは、MSPMSによって、それに応じて管理される。   Often, more than one algorithmic process must be used to complete a particular task. For example, the user may wish to leave a voicemail. The user calls the telephone number and the voicemail system answers the call. When the user leaves a message, the first algorithm process may buffer the actual voice data coming through the RTP stream, and the second algorithm process may either The dial tone may be monitored to detect when the button is pressed (dual-tone multi-frequency (DTMF) detection), and the third algorithm process is more The RTP stream may be transcoded into a format that is easy to store. In this case, the RTP stream buffer and DTMF detection algorithm process must be operated in real time to generate a valid user interaction, otherwise voicemail will not be useful and transcoding The process simply retrieves the information from the buffer when it is available (on an available basis). Thus, the RTP and DTMF algorithm processes may have higher priority than the transcoding process, and those processes are managed accordingly by the MSPMS.

一実施形態では、アルゴリズム・プロセスの優先順位付けは、ユーザの知覚に関する成分の重要性に基づいて遂行され得る。上記の例では、ボイスメールのユーザ対話は、ユーザの声の明瞭な記録を維持するための機能を優先する。したがって、RTPストリームのバッファリングは、RTPストリームのいずれかの部分を除外すると情報の損失が生じ、メッセージの一部またはすべてにおいてユーザの声が聞こえなくなるので、そのストリームを異なる形式にトランスコードするよりも明らかに遥かに重要である。したがって、一実施形態では、N個のアルゴリズム・プロセスがあり、そのそれぞれは、ストリーム成分の処理を異なるやり方で遂行し得る。一実施形態では、それぞれのアルゴリズム・プロセスは、各成分の重要性に基づいて、それに送信される成分の処理を優先順位付けする。したがって、この実施形態では、プロセス割当てユニット306が単一のアルゴリズム優先順位付けプロセスに2つ以上の成分を割り当てる場合、その2つ以上の成分は、それらの優先度の順序で処理される。異なる実施形態では、優先度は、ネットワーク伝送速度、ユーザがストリームを理解できるようにするための異なる成分の相対的重要性、他の成分との関係における成分の帯域幅消費、または任意の数の他の要因など、要因を考慮に入れるアルゴリズムに基づいて決定され得る。   In one embodiment, prioritization of algorithm processes may be performed based on the importance of components with respect to user perception. In the above example, voicemail user interaction prioritizes the ability to maintain a clear record of the user's voice. RTP stream buffering is therefore more than transcoding the stream to a different format because removing any part of the RTP stream results in loss of information and makes the user's voice inaudible in some or all of the messages. Is obviously much more important. Thus, in one embodiment, there are N algorithm processes, each of which may perform processing of stream components in different ways. In one embodiment, each algorithm process prioritizes the processing of components transmitted to it based on the importance of each component. Thus, in this embodiment, if the process assignment unit 306 assigns more than one component to a single algorithm prioritization process, the two or more components are processed in order of their priority. In different embodiments, the priority may be the network transmission rate, the relative importance of the different components to allow the user to understand the stream, the bandwidth consumption of the components in relation to other components, or any number of It can be determined based on an algorithm that takes into account factors, such as other factors.

たとえば、テレビ会議において、ビデオ成分が使用可能でない場合、オーディオ通信が依然として実行可能な代案であるが、しかし、オーディオ成分が使用可能でない場合、通信の効率は、単にビデオ供給を伴い、劇的に減少する。別の例では、多成分パケットのマルチメディア・ストリーム中のビデオ成分は通常、最も大きい帯域幅および演算能力を消費し、したがって、アルゴリズム・プロセスは、単にビデオをリアルタイムでトランスコードすることができてもよく、あるいはそれは、他の成分(おそらくオーディオ、音声、データおよび制御成分)のすべてをリアルタイムでトランスコードすることができてもよく、したがって、4つの成分は、単に1つの成分よりも優先することがある。さらに、すべての成分をリアルタイムで、またはさらには遅延型(非リアルタイム)のやり方で処理するためのリソースが使用可能でない場合、別のオプションは、より低い優先度の成分のある割合を除外することである。したがって、ビデオ成分が最低の優先度である場合、1つおき(または2つおき、3つおきなど)のパケット化成分だけを処理する特定のアルゴリズム・プロセスに成分を割り当てることの決定は、プロセス割当てユニット306によって行われることができ、それによって、より低いフレーム・レートがもたらされる。   For example, in video conferencing, if video components are not available, audio communication is still a viable alternative, but if audio components are not available, the efficiency of the communication is simply accompanied by a video supply and dramatically Decrease. In another example, the video component in a multi-component packet multimedia stream typically consumes the most bandwidth and computing power, so the algorithm process can simply transcode the video in real time. Or it may be able to transcode all of the other components (probably audio, voice, data and control components) in real time, so four components take precedence over just one component Sometimes. In addition, if resources are not available to process all components in real time or even in a delayed (non-real time) manner, another option is to exclude a certain percentage of lower priority components It is. Thus, if the video component is of the lowest priority, the decision to assign the component to a particular algorithm process that processes only every other (or every second, every third, etc.) packetized component is a process. Can be performed by the allocation unit 306, which results in a lower frame rate.

別の実施形態では、N個のアルゴリズム・プロセスのうちの2つ以上は、単一のコンピュータ・システム上で実行する。この実施形態では、2つ以上の各成分もまた、割り当てられたそれ自体の優先度レベルを有する。したがって、一例では、マルチメディア・ストリームは、それぞれがプロセス割当てユニット306によって別個のアルゴリズム・プロセスに割り当てられたビデオ成分と音声成分とを有する場合、音声成分プロセスは、コンピュータ・システム内で、ビデオ成分プロセスより高い操作優先度を有し得る。この場合、コンピュータ・システムが両方のプロセスを同時に実行できるほど十分なリソースを有していない場合、ビデオ成分プロセスは、音声成分プロセスが1またはそれ以上のマルチメディア・ストリーム・パケットの音声成分の処理を完了する間、遅延される。別の実施形態では、N個のアルゴリズム・プロセスはそれぞれ、ローカル・コンピュータ・システム内のそれ自体のスレッド上で実行される。この実施形態では、ローカル・コンピュータ・システムは、それぞれのスレッドに、各プロセス・スレッドに割り当てられた成分の優先度に一致する特定の優先度を割り当て得る。   In another embodiment, two or more of the N algorithm processes execute on a single computer system. In this embodiment, each of the two or more components also has its own priority level assigned. Thus, in one example, if the multimedia stream has a video component and an audio component, each assigned to a separate algorithm process by the process assignment unit 306, the audio component process It may have a higher operational priority than the process. In this case, if the computer system does not have sufficient resources to run both processes simultaneously, the video component process will process the audio component of one or more multimedia stream packets. Will be delayed while completing. In another embodiment, each of the N algorithm processes is executed on its own thread in the local computer system. In this embodiment, the local computer system may assign each thread a specific priority that matches the priority of the component assigned to each process thread.

別の実施形態では、N個のアルゴリズム・プロセスのうちの2つ以上は、2つ以上の別個のコンピュータ・システム上で実行される。この実施形態では、プロセス割当てユニット306は、最も多い使用可能リソースを備えたコンピュータ・システム上で実行されるアルゴリズム・プロセスのうちの1または複数を使用し得る。別の実施形態では、1つの成分は、2つ以上のアルゴリズム・プロセスに割り当てられ得る。この実施形態では、プロセス割当てユニット306は、ストリーム内の単一の成分内の情報を複数の部分に分割し、それぞれの部分を別個のアルゴリズム・プロセスに割り当てる。一実施形態では、プロセス割当てユニット306は、パケット単位レベルで2つのアルゴリズム・プロセス間で成分情報の送信を交互に行う(すなわち、第1のパケットの成分はアルゴリズム・プロセス1に送信され、第2のパケットの成分は、アルゴリズム・プロセス2に送信され、第3のパケットの成分は、アルゴリズム・プロセス3に送信されるなど)。   In another embodiment, two or more of the N algorithm processes are executed on two or more separate computer systems. In this embodiment, process allocation unit 306 may use one or more of the algorithmic processes that run on the computer system with the most available resources. In another embodiment, a component may be assigned to more than one algorithm process. In this embodiment, the process allocation unit 306 divides the information in a single component in the stream into multiple parts and assigns each part to a separate algorithm process. In one embodiment, the process allocation unit 306 alternately transmits component information between the two algorithm processes at the per-packet level (ie, the component of the first packet is transmitted to the algorithm process 1 and the second Component of the second packet is sent to algorithm process 2, the component of the third packet is sent to algorithm process 3, etc.).

現在の例では、プロセス割当てユニット306は、MPEG4からMPEG2にトランスコードするアルゴリズム・プロセスにビデオ成分を割り当てる。各パケットのビデオ成分が1またはそれ以上のアルゴリズム・プロセスによって処理されると、ビデオ成分(すなわち新しいMPEG2形式ビデオ・ストリーム)は、ストリーム・ラッパー・ユニット316に送信される。一実施形態では、ストリーム・ラッパー・ユニット316は、個別の成分をカプセル化して、宛先に送信されるパケット化形式に戻す。一実施形態では、ストリーム・ラッパー・ユニット316は、1またはそれ以上のアルゴリズム・プロセスの出力としてストリーム・ラッパー・ユニット316が受信する各成分の宛先アドレスなどの情報を、ストリーム・アンラッパー・ユニット304から直接に得る。別の実施形態では、ストリーム・ラッパー・ユニット316は、成分単位の優先度情報および成分単位のパケット組合せ情報などの情報を、プロセス割当てユニット306から直接に受信する。成分単位の優先度情報は、ストリーム・ラッパー・ユニット316は、アルゴリズム・プロセスのうちの1または複数から到着する異なる成分のラッピングおよび送信を優先することを可能にする。成分単位のパケット組合せ情報は、ストリーム・ラッパー・ユニット316が、複数の成分を単一のパケットに組み込むことを可能にし、あるいは個別の成分は、より高い優先度などの理由により、別個のパケットにラップされ送信されることを可能にする。   In the current example, process allocation unit 306 allocates video components to an algorithmic process that transcodes from MPEG4 to MPEG2. As the video component of each packet is processed by one or more algorithmic processes, the video component (ie, a new MPEG2 format video stream) is sent to the stream wrapper unit 316. In one embodiment, the stream wrapper unit 316 encapsulates the individual components back into a packetized form that is sent to the destination. In one embodiment, the stream wrapper unit 316 provides information such as the destination address of each component received by the stream wrapper unit 316 as the output of one or more algorithm processes, the stream unwrapper unit 304. Get directly from. In another embodiment, the stream wrapper unit 316 receives information such as component-based priority information and component-based packet combination information directly from the process allocation unit 306. Per-component priority information allows the stream wrapper unit 316 to prioritize the wrapping and transmission of different components arriving from one or more of the algorithm processes. Component-by-component packet combination information allows the stream wrapper unit 316 to incorporate multiple components into a single packet, or individual components to separate packets for reasons such as higher priority. Allows to be wrapped and transmitted.

現在の例では、ストリーム・ラッパー・ユニット316は、新しくトランスコードされたMPEG2ビデオ成分を受信し、宛先アドレス情報および他の任意の関連情報を付けて成分を再びラッピングし、宛先318にストリームを送信する。   In the current example, stream wrapper unit 316 receives the newly transcoded MPEG2 video component, wraps the component again with destination address information and any other relevant information, and sends the stream to destination 318. To do.

一実施形態では、所与の成分をどのアルゴリズム・プロセスに割り当てるか決定するとき、プロセス割当てユニット306は、他の情報もあるが特に挙げると、アルゴリズム・プロセスが実行される各コンピュータ・システムのネットワーク接続性およびスループット、各コンピュータ・システムが使用可能にする空きリソースの量、そのそれぞれのコンピュータ・システム内の各アルゴリズム・プロセスの優先度を含めた情報を考慮に入れる。この実施形態では、プロセス割当てユニット306は、各コンピュータ・システム内で実行されるアルゴリズム・プロセスから(図3の破線矢印)、それぞれのコンピュータ・システムに関する情報を受信する。それぞれのアルゴリズム・プロセスに関するコンピュータ・システム情報を用いて、プロセス割当てユニット306(および一般にMSPMS)は、ストリームの知覚されるどんな性能低下をも最小限に抑えまたは取り除くために、どのようにしてストリーム内の各成分をできるだけ効率的に処理するか決定することができる。したがって、上記で示したように、MSPMSは、成分の優先度、および使用可能なシステム・リソースに応じて、ストリームの成分をリアルタイムで処理することも、非リアルタイムで処理することも、成分を全く処理しないこともある。   In one embodiment, when deciding which algorithm process to assign a given component to, the process assignment unit 306 includes, among other information, the network of each computer system on which the algorithm process is executed, among other things. It takes into account information including connectivity and throughput, the amount of free resources available to each computer system, and the priority of each algorithm process within that respective computer system. In this embodiment, the process allocation unit 306 receives information about each computer system from the algorithmic processes that are executed within each computer system (dashed arrows in FIG. 3). Using computer system information about each algorithm process, the process allocation unit 306 (and generally MSPMS) can use the in-stream to minimize or eliminate any perceived performance degradation of the stream. Can be determined as efficiently as possible. Therefore, as indicated above, MSPMS can process the components of the stream in real-time, non-real-time, or not at all, depending on the component priority and available system resources. It may not be processed.

図4から図9は、ビデオおよび音声成分を伴うマルチメディア・ストリームの処理に関するMSPMS処理論理決定の複数の例を示す。これらの例では、この機能は、ストリーム内の各成分がトランスコーディングを必要とすることを示すが、異なる実施形態では、ビデオ・ストリームの一部またはすべてについて、部分的なトランスコーディングが許容可能であることも、トランスコーディングが全く行われないことが許容可能であることもある。さらに、ストリームの成分の処理は、RTPストリームのバッファリング、DTMF検出、または他の多くのマルチメディア・ストリーム処理機能のうちのいずれか1つなど、単なるトランスコーディング以外の他の多くの機能を含み得る。したがって、図4から図9のトランスコーディングの実施例は、単に例示的な実施例であり、それらは、マルチメディア・ストリームを伴って行われる任意の数の他のプロセスの代わりに用いられ得る。さらに、これらの実施例は、ストリーム内の単一のパケットについて説明するが、諸実施形態は、潜在的にはストリーム内のすべてのパケットについてプロセスを繰り返すことを含む。   FIGS. 4-9 illustrate multiple examples of MSPMS processing logic decisions for processing multimedia streams with video and audio components. In these examples, this function indicates that each component in the stream requires transcoding, but in different embodiments, partial transcoding is acceptable for some or all of the video stream. In some cases, it may be acceptable that no transcoding is performed. In addition, the processing of stream components includes many other functions other than just transcoding, such as RTP stream buffering, DTMF detection, or any one of many other multimedia stream processing functions. obtain. Accordingly, the transcoding embodiments of FIGS. 4-9 are merely exemplary embodiments, and they can be used in place of any number of other processes performed with a multimedia stream. Further, although these examples describe a single packet in the stream, embodiments potentially include repeating the process for all packets in the stream.

図4は、マルチメディア・ストリーム・パケットを単一のアルゴリズム・プロセスを用いてトランスコードする方法の一実施形態を示す。この実施形態では、ソース500は、ネットワークを介してマルチメディア・ストリーム・パケット502を送信する。パケット502は、パケットの宛先に関するすべてのルーティングおよびアドレス情報を有するヘッダ504を含む。この実施形態では、パケットは、ビデオ成分506および音声成分508を含む。一実施形態では、ビデオ成分は、1つのビデオ・フレーム(すなわち静止画像)を含み、音声成分は、1つの音声フレーム(すなわち100ミリ秒の音声情報)を含む。一実施形態では、ヘッダ404は削除され、ビデオおよび音声成分だけを含むパケット410は、アルゴリズム・プロセス412に送信される。アルゴリズム・プロセス412は、各成分中の情報をトランスコードし、トランスコードされたビデオおよび音声成分だけを含む新しいパケットを出力する。ヘッダ404は、アルゴリズム・プロセスをバイパス414し、宛先418に送信される新しいパケット416の生成のため、トランスコードされたパケットに再び付けられ得る。この実施形態では、単一のアルゴリズム・プロセス412は、ビデオおよび音声成分を有するパケットのマルチメディア・ストリームを(リアルタイムで)トランスコードすることができる。一実施形態では、ヘッダ404は、ストリーム・ラッパー・ユニット(図3、316)によって、ストリーム・アンラッパー・ユニット(図3、304)およびプロセス割当てユニット(図3、306)から提供された情報に基づいて修正される。別の実施形態では、ヘッダ404は、パケットから削除されず、パケットは、完全なヘッダ404を付けてアルゴリズム・プロセスに送信される。   FIG. 4 illustrates one embodiment of a method for transcoding multimedia stream packets using a single algorithm process. In this embodiment, the source 500 sends a multimedia stream packet 502 over the network. Packet 502 includes a header 504 with all routing and address information regarding the destination of the packet. In this embodiment, the packet includes a video component 506 and an audio component 508. In one embodiment, the video component includes one video frame (ie, a still image) and the audio component includes one audio frame (ie, 100 milliseconds of audio information). In one embodiment, the header 404 is removed and a packet 410 containing only video and audio components is sent to the algorithm process 412. Algorithm process 412 transcodes the information in each component and outputs a new packet containing only the transcoded video and audio components. The header 404 can be reattached to the transcoded packet to bypass the algorithm process 414 and generate a new packet 416 that is sent to the destination 418. In this embodiment, a single algorithm process 412 can transcode (in real-time) a multimedia stream of packets having video and audio components. In one embodiment, the header 404 contains information provided by the stream wrapper unit (FIGS. 3, 316) from the stream unwrapper unit (FIGS. 3, 304) and the process allocation unit (FIG. 3, 306). Modified based on. In another embodiment, the header 404 is not removed from the packet and the packet is sent to the algorithm process with the complete header 404.

図5は、マルチメディア・ストリーム・パケットを複数のアルゴリズム・プロセスを用いてトランスコードする方法の一実施形態を示す。この実施形態では、ソース500は、ネットワークを介してマルチメディア・ストリーム・パケット502を送信する。パケット502は、(図4で上述したように)ビデオ成分と音声成分とを含む。一実施形態では、ヘッダは削除され、パケット内のそれぞれ異なる成分も分離される。ビデオ成分504は、ビデオ・トランスコーディングのためアルゴリズム・プロセス#1(508)に送信され、音声成分506は、音声トランスコーディングのためアルゴリズム・プロセス#2(510)に送信される。異なる実施形態では、アルゴリズム・プロセス#1(508)および#2(510)は、同じコンピューティング装置に置かれることも、異なるコンピューティング装置に置かれることもある。アルゴリズム・プロセス#1(508)および#2(510)は、そのそれぞれのビデオおよび音声成分のトランスコーディングを完了するとき、トランスコーディング・プロセス(512,514)をバイパスしたヘッダは、トランスコードされた別個のビデオおよび音声成分パケット(516,518)に再び付けられ得る。ビデオ成分パケット516および音声成分パケット518は、宛先520に別々に到達する。一実施形態では、ヘッダは、ストリーム・ラッパー・ユニット(図3、316)によって、ストリーム・アンラッパー・ユニット(図3、304)およびプロセス割当てユニット(図3、306)から提供された情報に基づいて修正される。別の実施形態では、ヘッダはパケットから削除されず、パケットは、ヘッダが完全な状態でアルゴリズム・プロセスに送信される。したがって、アルゴリズム・プロセス自体は、ヘッダを修正し得る。   FIG. 5 illustrates one embodiment of a method for transcoding multimedia stream packets using multiple algorithm processes. In this embodiment, the source 500 sends a multimedia stream packet 502 over the network. Packet 502 includes a video component and an audio component (as described above in FIG. 4). In one embodiment, the header is removed and each different component in the packet is separated. Video component 504 is sent to algorithm process # 1 (508) for video transcoding, and audio component 506 is sent to algorithm process # 2 (510) for audio transcoding. In different embodiments, algorithm processes # 1 (508) and # 2 (510) may be located on the same computing device or on different computing devices. When algorithm processes # 1 (508) and # 2 (510) complete transcoding of their respective video and audio components, the header that bypassed the transcoding process (512, 514) was transcoded. Separate video and audio component packets (516, 518) may be reattached. Video component packet 516 and audio component packet 518 arrive at destination 520 separately. In one embodiment, the header is based on information provided by the stream wrapper unit (FIGS. 3, 316) from the stream unwrapper unit (FIGS. 3, 304) and the process allocation unit (FIG. 3, 306). Will be corrected. In another embodiment, the header is not removed from the packet and the packet is sent to the algorithm process with the header complete. Thus, the algorithm process itself can modify the header.

図6は、マルチメディア・ストリーム・パケットを複数のアルゴリズム・プロセスを用いてトランスコードする方法の別の実施形態を示す。この実施形態では、ソース600は、ネットワークを介してマルチメディア・ストリーム・パケット602を送信する。パケット602は、(図4で上述したように)ビデオ成分と音声成分とを含む。ヘッダは削除され、パケット内のそれぞれ異なる成分も分離される。ビデオ成分604は、ビデオ・トランスコーディングのためアルゴリズム・プロセス#1(608)に送信され、音声成分606は、音声トランスコーディングのためアルゴリズム・プロセス#2(610)に送信される。アルゴリズム・プロセス#1(608)および#2(610)は、そのそれぞれのビデオおよび音声成分トランスコーディングを完了するとき、ビデオ成分および音声成分を多成分パケット614内に再び付ける。トランスコーディング・プロセスをバイパスしたヘッダは、多成分パケット614に再び付けられ、パケットは、宛先616に送信される。この実施形態では、トランコードされたいずれかの成分パケットは、もう一方のアルゴリズム・プロセスからの対応するパケットを所定の時間量より多く待たなければならない場合、パケット614は、最初に終了したアルゴリズム・プロセス内のどんなボトルネックをも最小限に抑えるため、ストリーム・ラッパー・ユニット(図3、316)によって、単に1つの成分を付けて宛先に送信される。一実施形態では、ヘッダは、ストリーム・ラッパー・ユニット(図3、316)よって、ストリーム・アンラッパー・ユニット(図3、304)およびプロセス割当てユニット(図3、306)から提供された情報に基づいて修正される。別の実施形態では、ヘッダはパケットから削除されず、パケットは、ヘッダが完全な状態でアルゴリズム・プロセスに送信される。したがって、アルゴリズム・プロセス自体は、ヘッダを修正し得る。   FIG. 6 illustrates another embodiment of a method for transcoding multimedia stream packets using multiple algorithm processes. In this embodiment, the source 600 sends a multimedia stream packet 602 over the network. Packet 602 includes a video component and an audio component (as described above in FIG. 4). The header is removed and different components in the packet are separated. Video component 604 is sent to algorithm process # 1 (608) for video transcoding, and audio component 606 is sent to algorithm process # 2 (610) for audio transcoding. When algorithm processes # 1 (608) and # 2 (610) complete their respective video and audio component transcoding, they reattach the video and audio components in multi-component packet 614. The header that bypassed the transcoding process is reattached to the multi-component packet 614 and the packet is sent to the destination 616. In this embodiment, if any transcoded component packet has to wait more than a predetermined amount of time for the corresponding packet from the other algorithm process, the packet 614 To minimize any bottlenecks in the process, the stream wrapper unit (FIGS. 3, 316) is simply sent with one component to the destination. In one embodiment, the header is based on information provided by the stream wrapper unit (FIGS. 3, 316) from the stream unwrapper unit (FIGS. 3, 304) and the process allocation unit (FIG. 3, 306). Will be corrected. In another embodiment, the header is not removed from the packet and the packet is sent to the algorithm process with the header complete. Thus, the algorithm process itself can modify the header.

図7は、1つのアルゴリズム・プロセスおよび1つのバッファを用いてマルチメディア・ストリーム・パケットをトランスコードする方法の一実施形態を示す。この実施形態では、ソース700は、ネットワークを介してマルチメディア・ストリーム・パケット702を送信する。パケット702は、(図4で上述したように)ビデオ成分と音声成分とを含む。ヘッダは削除され、パケット内のそれぞれ異なる成分も分離される。この実施形態では、音声成分704は、ビデオ成分706よりも優先し、したがって、音声成分704はアルゴリズム・プロセス710に直接送信され、ビデオ成分706は、アルゴリズム・プロセス710が音声成分704のトランスコーディングを完了するのを待つために、バッファ708に送信される。音声成分704のトランスコーディング・プロセスが終了すると、バッファ708は、格納されたビデオ成分706を、トランスコーディングのためアルゴリズム・プロセス710に解放する。音声成分またはビデオ成分のトランスコーディングが終了すると、トランスコードされた成分はヘッダ(712,714)に再び付けられ、個別のビデオまたは音声成分パケット(716,718)は、宛先720に送信される。一実施形態では、ヘッダは、ストリーム・ラッパー・ユニット(図3、316)によって、ストリーム・アンラッパー・ユニット(図3、304)およびプロセス割当てユニット(図3、306)から提供された情報に基づいて修正される。別の実施形態では、ヘッダはパケットから削除されず、パケットは、ヘッダが完全な状態でアルゴリズム・プロセスに送信される。したがって、アルゴリズム・プロセス自体は、ヘッダを修正し得る。   FIG. 7 illustrates one embodiment of a method for transcoding multimedia stream packets using one algorithm process and one buffer. In this embodiment, the source 700 sends a multimedia stream packet 702 over the network. Packet 702 includes video and audio components (as described above in FIG. 4). The header is removed and different components in the packet are separated. In this embodiment, audio component 704 takes precedence over video component 706, so audio component 704 is sent directly to algorithm process 710, and video component 706 is transmitted by algorithm process 710 to transcode audio component 704. Sent to buffer 708 to wait for completion. When the transcoding process of audio component 704 is complete, buffer 708 releases the stored video component 706 to algorithm process 710 for transcoding. When the transcoding of the audio or video component is complete, the transcoded component is reattached to the header (712, 714) and the individual video or audio component packet (716, 718) is sent to the destination 720. In one embodiment, the header is based on information provided by the stream wrapper unit (FIGS. 3, 316) from the stream unwrapper unit (FIGS. 3, 304) and the process allocation unit (FIG. 3, 306). Will be corrected. In another embodiment, the header is not removed from the packet and the packet is sent to the algorithm process with the header complete. Thus, the algorithm process itself can modify the header.

図8は、1つのアルゴリズム・プロセスおよび複数のバッファを用いてマルチメディア・ストリーム・パケットをトランスコードする方法の一実施形態を示す。この実施形態では、ソース800は、ネットワークを介してマルチメディア・ストリーム・パケット802を送信する。パケット802は、(図4で上述したように)ビデオ成分と音声成分とを含む。ヘッダは削除され、パケット内のそれぞれ異なる成分も分離される。この実施形態では、1つのアルゴリズム・プロセス812だけが存在する。さらに、成分の優先度は、特定の状況に基づいてリアルタイムで変更され得る。この場合、ビデオ成分の優先度および音声成分の優先度は、トランスコーディング操作中、互いに対して増加することも、減少することもある。したがって、いずれかの成分は、アルゴリズム・プロセス812による他の成分のトランスコーディングの終了を待つ能力を有することを可能にするために、2つのバッファが使用される。   FIG. 8 illustrates one embodiment of a method for transcoding multimedia stream packets using one algorithm process and multiple buffers. In this embodiment, the source 800 sends a multimedia stream packet 802 over the network. Packet 802 includes a video component and an audio component (as described above in FIG. 4). The header is removed and different components in the packet are separated. In this embodiment, there is only one algorithm process 812. Furthermore, the priority of the components can be changed in real time based on the specific situation. In this case, the priority of the video component and the priority of the audio component may increase or decrease relative to each other during the transcoding operation. Thus, two buffers are used to allow any component to have the ability to wait for the algorithm process 812 to finish transcoding other components.

この実施形態では、ビデオ成分804は、バッファ#1(808)に送信され、音声成分806は、バッファ#2(810)に送信される。この実施形態では、アルゴリズム・プロセス812は、単一の成分を、バッファ#1(808)またはバッファ#2(810)のいずれかから一度に1つ取る。どのバッファから取るかについての決定は、各バッファ内で待機する個別の成分に割り当てられた優先度に依存する。アルゴリズム・プロセス812が個別の成分のトランスコーディングを終了すると、トランスコードされた成分は、ヘッダ(814または816)に再び付けられ、個別のビデオまたは音声成分パケット(818または820)は、宛先822に送信される。   In this embodiment, video component 804 is sent to buffer # 1 (808) and audio component 806 is sent to buffer # 2 (810). In this embodiment, algorithm process 812 takes a single component one at a time from either buffer # 1 (808) or buffer # 2 (810). The decision as to which buffer to take depends on the priority assigned to the individual components waiting in each buffer. When the algorithm process 812 finishes transcoding individual components, the transcoded components are reattached to the header (814 or 816) and the individual video or audio component packets (818 or 820) are sent to the destination 822. Sent.

一実施形態では、ヘッダは、ストリーム・ラッパー・ユニット(図3、316)によって、ストリーム・アンラッパー・ユニット(図3、304)およびプロセス割当てユニット(図3、306)から提供された情報に基づいて修正される。別の実施形態では、ヘッダはパケットから削除されず、パケットは、ヘッダが完全な状態でアルゴリズム・プロセスに送信される。したがって、アルゴリズム・プロセス自体は、ヘッダを修正し得る。   In one embodiment, the header is based on information provided by the stream wrapper unit (FIGS. 3, 316) from the stream unwrapper unit (FIGS. 3, 304) and the process allocation unit (FIG. 3, 306). Will be corrected. In another embodiment, the header is not removed from the packet and the packet is sent to the algorithm process with the header complete. Thus, the algorithm process itself can modify the header.

図9は、複数のアルゴリズム・プロセスおよび複数のバッファを用いてマルチメディア・ストリーム・パケットをトランスコードする方法の一実施形態を示す。この実施形態では、ソース900は、ネットワークを介してマルチメディア・ストリーム・パケット902を送信する。パケット902は、(図5で上述したように)ビデオ成分と音声成分とを含む。ヘッダは削除され、パケット内のそれぞれ異なる成分も分離される。この実施形態では、2つのアルゴリズム・プロセス(912,914)が存在する。さらに、成分の優先度は、特定の状況に基づいてリアルタイムで変更され得る。一実施形態では、アルゴリズム・プロセス#1(912)および#2(914)は、同じコンピュータ・システム上ではあるが、個別のプロセス内に置かれる。この場合、ビデオ・トランスコーディング・プロセスの優先度および音声トランスコーディング・プロセスの優先度は、互いに対してだけでなく、コンピュータ・システム上で実行されている他のプロセスに対しても増加しまたは減少し得る。   FIG. 9 illustrates one embodiment of a method for transcoding multimedia stream packets using multiple algorithm processes and multiple buffers. In this embodiment, source 900 transmits a multimedia stream packet 902 over the network. Packet 902 includes video and audio components (as described above in FIG. 5). The header is removed and different components in the packet are separated. In this embodiment, there are two algorithm processes (912, 914). Furthermore, the priority of the components can be changed in real time based on the specific situation. In one embodiment, algorithm processes # 1 (912) and # 2 (914) are on the same computer system but in separate processes. In this case, the priority of the video transcoding process and the priority of the audio transcoding process increase or decrease not only with respect to each other but also with respect to other processes running on the computer system. Can do.

たとえば、両方のアルゴリズム・プロセスが常駐するコンピュータ・システムは、インターネットからワームを受信し、ウィルス保護ソフトウェア・プログラムを実行するプロセスは、ビデオ・トランスコーディング・アルゴリズム・プロセスまたは音声トランスコーディング・アルゴリズム・プロセスのいずれかよりも一時的に優先する。したがって、この場合、それぞれのアルゴリズム・プロセスは、アルゴリズム・プロセス(912,914)がシステム上で高い優先度を再び得るのを待つ能力を両方の成分が有することを可能にするために、それ自体のバッファを有する。   For example, a computer system in which both algorithm processes reside will receive a worm from the Internet and a process that executes a virus protection software program may be a video transcoding algorithm process or an audio transcoding algorithm process. Temporarily takes precedence over either. Thus, in this case, each algorithm process itself will allow both components to have the ability to wait for the algorithm process (912, 914) to regain high priority on the system. It has a buffer.

この実施形態では、ビデオ成分904は、バッファ#1(908)に送信され、音声成分906は、バッファ#2(910)に送信される。この実施形態では、アルゴリズム・プロセス#1(912)は、バッファ#1(908)から個別のビデオ成分を取り、アルゴリズム・プロセス#2(914)は、バッファ#2(910)から個別の音声成分を取る。いずれかのアルゴリズム・プロセスが個別の成分のトランスコーディングを終了すると、トランスコードされた成分はそのヘッダ(916または918)に再び付けられ、個別のビデオまたは音声成分パケット(920または922)は、宛先924に送信される。   In this embodiment, video component 904 is sent to buffer # 1 (908) and audio component 906 is sent to buffer # 2 (910). In this embodiment, algorithm process # 1 (912) takes individual video components from buffer # 1 (908), and algorithm process # 2 (914) uses individual audio components from buffer # 2 (910). I take the. When any algorithm process finishes transcoding the individual component, the transcoded component is reattached to its header (916 or 918) and the individual video or audio component packet (920 or 922) is sent to the destination. Sent to 924.

一実施形態では、ヘッダは、ストリーム・ラッパー・ユニット(図3、316)によって、ストリーム・アンラッパー・ユニット(図3、304)およびプロセス割当てユニット(図3、306)から提供された情報に基づいて修正される。別の実施形態では、ヘッダは、パケットから削除されず、パケットは、ヘッダが完全な状態でアルゴリズム・プロセスに送信される。したがって、アルゴリズム・プロセス自体は、ヘッダを修正し得る。   In one embodiment, the header is based on information provided by the stream wrapper unit (FIGS. 3, 316) from the stream unwrapper unit (FIGS. 3, 304) and the process allocation unit (FIG. 3, 306). Will be corrected. In another embodiment, the header is not removed from the packet and the packet is sent to the algorithm process with the header complete. Thus, the algorithm process itself can modify the header.

図10は、成分優先度、および処理能力の制限に基づいて、個別の成分を除外するアルゴリズム・プロセスの一実施形態を示す。この実施形態では、ビデオ成分のストリーム1000(すなわちビデオ・フレーム)および音声成分のストリーム1002(すなわち音声フレーム)は、アルゴリズム・プロセス1004に入力される。したがって、この実施形態のアルゴリズム・プロセス1004は、図8に示されたアルゴリズム・プロセスに類似する。この実施形態では、アルゴリズム・プロセス1004は、あらゆる音声フレームおよびあらゆるビデオ・フレームに遅れずについていくための処理能力を有していない。したがって、トランスコーディング作業の一部を行うことができるアルゴリズム・プロセスを備えた他のシステムがない場合には、ストリームのリアルタイム性を維持するため、特定のフレームが除外されなければならない。   FIG. 10 illustrates one embodiment of an algorithmic process that excludes individual components based on component priority and processing power limitations. In this embodiment, a stream of video components 1000 (ie, video frames) and an audio component stream 1002 (ie, audio frames) are input to an algorithm process 1004. Accordingly, the algorithm process 1004 of this embodiment is similar to the algorithm process shown in FIG. In this embodiment, the algorithm process 1004 does not have the processing power to keep up with every audio frame and every video frame. Thus, in the absence of other systems with algorithmic processes that can perform part of the transcoding operation, certain frames must be excluded to maintain the real-time nature of the stream.

音声成分がビデオ成分よりも高いトランスコーディング優先度を有する場合、特定のビデオ・フレームが除外され(すなわち除去され)なければならない。したがって、一実施形態では、4つのビデオ・フレームのストリーム1000および4つの音声フレームのストリーム1002は、アルゴリズム・プロセス1004に入力される。アルゴリズム・プロセス1004は、すべての音声フレームをトランスコードし、音声出力ストリーム1006でそれを順番に送出する。またアルゴリズム・プロセス1004は、その残りの処理能力を使用して、できるだけ多くのビデオ・フレームをトランスコードし、ビデオ出力ストリーム1008でそれを順番に送出する。この場合、アルゴリズム・プロセス1004は、ストリームのリアルタイム面を維持するために、1つおきのビデオ・フレームを除外する。したがって、音声ストリームは、明瞭で完全であり、ビデオ・ストリームは、そのフレーム・レートが半分に減少されている。   If the audio component has a higher transcoding priority than the video component, certain video frames must be excluded (ie removed). Thus, in one embodiment, a stream of four video frames 1000 and a stream of four audio frames 1002 are input to an algorithm process 1004. The algorithm process 1004 transcodes all audio frames and sends them out in sequence in the audio output stream 1006. The algorithm process 1004 also uses the remaining processing power to transcode as many video frames as possible and send them in sequence in the video output stream 1008. In this case, the algorithm process 1004 excludes every other video frame in order to maintain the real-time aspect of the stream. Thus, the audio stream is clear and complete and the video stream has its frame rate reduced by half.

図11は、マルチメディア・ストリームの成分をリアルタイムおよび非リアルタイムのアルゴリズム・プロセスに割り当てる方法の一実施形態のフローチャートである。この方法は、ハードウェア(回路、専用論理など)、ソフトウェア(たとえば汎用コンピュータ・システムまたは専用機械上で実行される)、あるいは両方の組合せを含み得る処理論理によって実施される。図11を参照すると、この方法は、処理論理が、マルチメディア・ストリームを含む1またはそれ以上の成分がリアルタイム処理を必要とするかどうかを判断することから開始する(ブロック1100)。処理論理が、リアルタイム処理が必要であると決定する場合(ブロック1102)、処理論理はリアルタイム処理を必要とする1またはそれ以上の成分を1またはそれ以上のリアルタイムのアルゴリズム・プロセスに割り当てる(ブロック1104)。最後に、処理論理は、残余のあらゆる成分を、1またはそれ以上の非リアルタイム・アルゴリズム・プロセスに割り当て(ブロック1106)、この方法は終了される。   FIG. 11 is a flowchart of one embodiment of a method for assigning components of a multimedia stream to real-time and non-real-time algorithm processes. The method is implemented by processing logic that may include hardware (circuitry, dedicated logic, etc.), software (eg, executed on a general purpose computer system or a dedicated machine), or a combination of both. Referring to FIG. 11, the method begins with processing logic determining whether one or more components comprising a multimedia stream require real-time processing (block 1100). If the processing logic determines that real-time processing is required (block 1102), the processing logic assigns one or more components that require real-time processing to one or more real-time algorithm processes (block 1104). ). Finally, processing logic assigns any remaining components to one or more non-real time algorithm processes (block 1106) and the method is terminated.

図12は、マルチメディア・ストリームの成分をリアルタイム・プロセスに割り当てる方法の別の実施形態のフローチャートである。この方法は、ハードウェア(回路、専用論理など)、ソフトウェア(たとえば汎用コンピュータ・システムまたは専用機械上で実行される)、あるいは両方の組合せを含み得る処理論理によって実施される。図12を参照すると、この方法は、処理論理がパケットをその1またはそれ以上の成分にラップ解除することから開始する(ブロック1200)。次いで、処理論理は、各パケット内のリアルタイム処理を必要とする1またはそれ以上の成分のそれぞれをリアルタイムで処理するのに必要な処理量を決定する(ブロック1202)。最後に、処理論理は、各パケット内のリアルタイム処理を必要とする1またはそれ以上の成分のそれぞれを別個のリアルタイム・プロセスに割り当て(ブロック1204)、この方法は終了される。   FIG. 12 is a flowchart of another embodiment of a method for assigning components of a multimedia stream to a real-time process. The method is implemented by processing logic that may include hardware (circuitry, dedicated logic, etc.), software (eg, executed on a general purpose computer system or a dedicated machine), or a combination of both. Referring to FIG. 12, the method begins with processing logic unwrapping a packet into its one or more components (block 1200). Processing logic then determines the amount of processing required to process each of the one or more components that require real-time processing within each packet in real time (block 1202). Finally, processing logic assigns each of the one or more components that require real-time processing within each packet to a separate real-time process (block 1204) and the method ends.

図13は、トランスコーディング・プロセスからマルチメディア・ストリームの成分を除外する方法の一実施形態のフローチャートである。この方法は、ハードウェア(回路、専用論理など)、ソフトウェア(たとえば汎用コンピュータ・システムまたは専用機械上で実行される)、あるいは両方の組合せを含み得る処理論理によって実施される。図13を参照すると、この方法は、処理論理がパケットをその1またはそれ以上の成分にラップ解除することから開始する(ブロック1300)。次いで、処理論理は、ラップ解除されたパケットのすべての成分がリアルタイムでトランスコードされ得るかどうかを判断する(ブロック1302)。そうすることができる場合、この方法は終了される。そうでない場合、処理論理は、第1の成分について検査する(ブロック1304)。成分が検査されると、処理論理は、成分が除外され得るかどうかを判断する(ブロック1306)。   FIG. 13 is a flowchart of one embodiment of a method for excluding components of a multimedia stream from the transcoding process. The method is implemented by processing logic that may include hardware (circuitry, dedicated logic, etc.), software (eg, executed on a general purpose computer system or a dedicated machine), or a combination of both. Referring to FIG. 13, the method begins with processing logic unwrapping a packet into its one or more components (block 1300). Processing logic then determines whether all components of the unwrapped packet can be transcoded in real time (block 1302). If so, the method is terminated. Otherwise, processing logic checks for the first component (block 1304). Once the component is examined, processing logic determines whether the component can be excluded (block 1306).

成分が除外され得るかどうかの判断は、成分の処理優先度、および除外された連続した成分フレームの数など、複数の要素に基づいて行われ得る。たとえば、図10で論じたように、アルゴリズム・プロセスがすべてをリアルタイムで処理する処理能力を有するとは限らない場合、どの成分を除外し、またそれをいつ除外するかについての決定が行われなければならない。1つおきにフレームを除外することによってビデオ成分をその標準のフレーム・レートの半分に除去することは、15フレームを連続して除去し、次いで15フレームを連続してトランスコードすることより異論が少ない。最終結果は、同じ数のフレームであるが、視聴経験の質は、それらの2つの別個のオプションについて異なる。   The determination of whether a component can be excluded can be made based on a number of factors, such as the processing priority of the component and the number of consecutive component frames excluded. For example, as discussed in FIG. 10, if an algorithm process does not have the processing power to process everything in real time, a decision must be made as to which components to exclude and when to exclude them. I must. Removing video components by half of their standard frame rate by excluding every other frame is more objectionable than removing 15 frames consecutively and then transcoding 15 frames consecutively. Few. The end result is the same number of frames, but the quality of the viewing experience is different for those two separate options.

図13を参照すると、成分が除外され得る場合、処理論理は、成分を除外する(ブロック1308)。次いで、処理論理は、すべての成分が検査されたかどうかを判断する(ブロック1310)。そうである場合、この方法は終了される。そうでない場合、処理論理は、次の成分を検査する(ブロック1312)。最終的には、ラップ解除されたパケットのすべての成分が検査され、この方法は終了する。別の実施形態では、ストリームから1またはそれ以上の成分を除外するかどうかを判断することは、単にトランスコードすること以外のマルチメディア・ストリーム・プロセスに関する決定を含み得る。したがって、トランスコーディングは、一例として使用されており、マルチメディア・ストリームに対して実施され得る1またはそれ以上の他の機能と置き換えられ得る。   Referring to FIG. 13, if a component can be excluded, processing logic excludes the component (block 1308). Processing logic then determines whether all components have been examined (block 1310). If so, the method is terminated. Otherwise, processing logic checks the next component (block 1312). Eventually, all components of the unwrapped packet are examined and the method ends. In another embodiment, determining whether to exclude one or more components from a stream may include a decision regarding a multimedia stream process other than simply transcoding. Thus, transcoding is used as an example and may be replaced with one or more other functions that may be performed on a multimedia stream.

図14は、ストリームのトランスコーディングをスキップする方法の一実施形態のフローチャートである。この方法は、ハードウェア(回路、専用論理など)、ソフトウェア(たとえば汎用コンピュータ・システムまたは専用機械上で実行される)、あるいは両方の組合せを含み得る処理論理によって実施される。図14を参照すると、この方法は、処理論理は、ソース装置から送信されたストリームの形式を決定することから開始する(ブロック1500)。次いで、処理論理は、宛先装置が必要とするストリームの形式を決定する(ブロック1502)。次いで、処理論理は、2つの形式が同じかどうかを判断する(ブロック1504)。形式が同じでない場合、処理論理は、ストリームをトランスコードし(ブロック1506)、プロセスは終了される。そうではなく、形式が同じである場合、処理論理は、ストリームをトランスコードせず、その代わりにストリームをソースから宛先に直接に送信し(ブロック1508)、この方法は終了される。   FIG. 14 is a flowchart of an embodiment of a method for skipping transcoding of a stream. The method is implemented by processing logic that may include hardware (circuitry, dedicated logic, etc.), software (eg, executed on a general purpose computer system or a dedicated machine), or a combination of both. Referring to FIG. 14, the method begins with processing logic determining the format of the stream transmitted from the source device (block 1500). Processing logic then determines the type of stream required by the destination device (block 1502). Processing logic then determines whether the two forms are the same (block 1504). If the formats are not the same, processing logic transcodes the stream (block 1506) and the process ends. Otherwise, if the formats are the same, processing logic does not transcode the stream, but instead sends the stream directly from the source to the destination (block 1508), and the method ends.

図15は、リアルタイム処理は必要としないが、決定された最大時間遅延の前の処理を必要とするマルチメディア・ストリームの成分を、決定された最大時間遅延内に処理することができるプロセスに割り当てる方法の一実施形態のフローチャートである。この方法は、ハードウェア(回路、専用論理など)、ソフトウェア(たとえば汎用コンピュータ・システムまたは専用機械上で実行される)、あるいは両方の組合せを含み得る処理論理によって実施される。図15を参照すると、この方法は、処理論理が、リアルタイム処理を必要としないパケット内の成分のそれぞれに許容可能な最大遅延を決定することから開始する(ブロック1500)。異なる実施形態では、許容可能な最大処理遅延の決定は、マルチメディア・ストリームが使用されているトランザクションのタイプ、伝送媒体の速度(たとえば電子メール内に添付された音声メールの必要な処理速度が電子メールの固有の遅延に制限される)を含めた複数の要因、ならびに他の複数の要因に基づいて行われ得る。次いで、処理論理は、リアルタイム処理を必要としない成分のそれぞれを別個のプロセスに割り当て、各プロセスが、それぞれの各成分を許容可能な遅延時間内に処理するのに必要な処理量を少なくとも提供し(ブロック1502)、この方法は終了される。   FIG. 15 assigns components of a multimedia stream that do not require real-time processing but that require processing prior to the determined maximum time delay to processes that can be processed within the determined maximum time delay. 2 is a flowchart of an embodiment of a method. The method is implemented by processing logic that may include hardware (circuitry, dedicated logic, etc.), software (eg, executed on a general purpose computer system or a dedicated machine), or a combination of both. Referring to FIG. 15, the method begins with processing logic determining a maximum delay allowed for each component in a packet that does not require real-time processing (block 1500). In different embodiments, the determination of the maximum allowable processing delay depends on the type of transaction in which the multimedia stream is used, the speed of the transmission medium (e.g., the required processing speed for voice mail attached within the email is electronic May be based on multiple factors, including those that are limited to the inherent delay of the mail, as well as other factors. The processing logic then assigns each of the components that do not require real-time processing to a separate process, and each process provides at least the amount of processing necessary to process each respective component within an acceptable delay time. (Block 1502), the method ends.

上記の例示的な実施形態の多くにおいて、パケットは、主にビデオおよび音声成分を扱うものであった。他の実施形態では、パケットは、ビデオ、オーディオ、音声、データ、制御、または他の考えられる任意のパケット・タイプのうちのいずれか1または複数を含む。さらに、例示的な諸実施形態は、2つの成分だけを含むパケットを参照していた。他の実施形態では、パケットは、考えられる任意の数の成分(すなわち1つ以上の成分)を含み得る。最後に、多くの例示的な実施形態では、単一のアルゴリズム・プロセスが、単一のタイプのすべての成分を処理する役割を担っていた。他の実施形態では、2つ以上のアルゴリズム・プロセスは、単一のタイプの成分に割り当てられ得る。したがって、多くの実施形態において、2つ以上のアルゴリズム・プロセスは、処理の役割を交換し、したがって、それぞれのアルゴリズム・プロセスは、単一のタイプの他のあらゆるパケット化成分を1つおきに(または2つおき、3つおきになど)処理することができる。   In many of the exemplary embodiments described above, the packets were primarily dealing with video and audio components. In other embodiments, the packet includes any one or more of video, audio, voice, data, control, or any other possible packet type. Further, the exemplary embodiments have referred to packets that contain only two components. In other embodiments, a packet may include any number of possible components (ie, one or more components). Finally, in many exemplary embodiments, a single algorithm process was responsible for processing all components of a single type. In other embodiments, more than one algorithm process may be assigned to a single type of component. Thus, in many embodiments, two or more algorithm processes exchange processing roles, and each algorithm process therefore replaces every other packetized component of a single type with every other ( Or every second, every third, etc.).

したがって、マルチメディア・ストリームを処理するための有効な方法についての実施形態が開示される。これらの実施形態について、その具体的な例示的実施形態を参照して述べた。しかし、この開示の利点を得る者には、本明細書で述べた諸実施形態のより広い精神および範囲から逸脱せずに、これらの実施形態に様々な修正および変更が行われ得ることが明らかである。したがって、本明細書および図面は、限定的ではなく、例示的な意味で考えられるべきである。   Accordingly, embodiments for an effective method for processing a multimedia stream are disclosed. These embodiments have been described with reference to specific exemplary embodiments thereof. However, it will be apparent to those skilled in the art that various modifications and variations can be made to these embodiments without departing from the broader spirit and scope of the embodiments described herein. It is. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.

マルチメディア・ストリームの単方向トランスコーディングを必要とし得るトランザクションの一例を示す図である。FIG. 6 illustrates an example of a transaction that may require unidirectional transcoding of a multimedia stream. マルチメディア・ストリームの双方向トランスコーディングを必要とし得る双方向ビデオ通話の一例を示す図である。FIG. 2 illustrates an example of a bidirectional video call that may require bidirectional transcoding of a multimedia stream. 多方向トランスコーディングを必要とし得る三者テレビ会議の一例を示す図である。FIG. 6 illustrates an example of a three-party video conference that may require multi-directional transcoding. マルチメディア・ストリーム処理管理システム(MSPMS)を備えたコンピュータ・システムの一実施形態のブロック図である。1 is a block diagram of one embodiment of a computer system with a multimedia stream processing management system (MSPMS). マルチメディア・ストリーム処理管理システム(MSPMS)の一実施形態を示す図である。1 illustrates one embodiment of a multimedia stream processing management system (MSPMS). FIG. マルチメディア・ストリーム・パケットを単一のアルゴリズム・プロセスを用いてトランスコードする方法の一実施形態を示す図である。FIG. 3 illustrates one embodiment of a method for transcoding multimedia stream packets using a single algorithm process. マルチメディア・ストリーム・パケットを複数のアルゴリズム・プロセスを用いてトランスコードする方法の一実施形態を示す図である。FIG. 3 illustrates one embodiment of a method for transcoding multimedia stream packets using multiple algorithm processes. マルチメディア・ストリーム・パケットを複数のアルゴリズム・プロセスを用いてトランスコードする方法の別の実施形態を示す図である。FIG. 6 illustrates another embodiment of a method for transcoding multimedia stream packets using multiple algorithm processes. マルチメディア・ストリーム・パケットを1つのアルゴリズム・プロセスおよび1つのバッファを用いてトランスコードする方法の一実施形態を示す図である。FIG. 6 illustrates one embodiment of a method for transcoding multimedia stream packets using one algorithm process and one buffer. マルチメディア・ストリーム・パケットを1つのアルゴリズム・プロセスおよび複数のバッファを用いてトランスコードする方法の一実施形態を示す図である。FIG. 6 illustrates one embodiment of a method for transcoding multimedia stream packets using one algorithm process and multiple buffers. マルチメディア・ストリーム・パケットを複数のアルゴリズム・プロセスおよび複数のバッファを用いてトランスコードする方法の一実施形態を示す図である。FIG. 3 illustrates one embodiment of a method for transcoding multimedia stream packets using multiple algorithm processes and multiple buffers. 成分優先度および処理能力制限に基づいて個別の成分を除外するアルゴリズム・プロセスの一実施形態を示す図である。FIG. 6 illustrates one embodiment of an algorithm process that excludes individual components based on component priority and processing capability limitations. マルチメディア・ストリームの成分をリアルタイムおよび非リアルタイムのアルゴリズム・プロセスに割り当てる方法の一実施形態のフローチャートである。2 is a flowchart of one embodiment of a method for assigning components of a multimedia stream to real-time and non-real-time algorithm processes. マルチメディア・ストリームの成分をリアルタイムのプロセスに割り当てる方法の別の実施形態のフローチャートである。6 is a flowchart of another embodiment of a method for assigning components of a multimedia stream to a real-time process. トランスコーディング・プロセスからマルチメディア・ストリームの成分を除外する方法の一実施形態のフローチャートである。2 is a flowchart of one embodiment of a method for excluding components of a multimedia stream from a transcoding process. ストリームのトランスコーディングをスキップする方法の一実施形態のフローチャートである。6 is a flowchart of an embodiment of a method for skipping transcoding of a stream. リアルタイム処理は必要としないが、決定された最大時間遅延の前の処理を必要とするマルチメディア・ストリームの成分を、決定された最大時間遅延内に処理することができるプロセスに割り当てる方法の一実施形態のフローチャートである。An implementation of a method for assigning a component of a multimedia stream that does not require real-time processing, but that requires processing before a determined maximum time delay, to a process that can be processed within the determined maximum time delay It is a flowchart of a form.

Claims (50)

マルチメディア・ストリームを含む1またはそれ以上の成分がリアルタイム処理を必要とするかどうかを判断する段階と、
前記1またはそれ以上の成分のうちの少なくとも1つがリアルタイム処理を必要とする場合、リアルタイム処理を必要とする前記1またはそれ以上の成分を1またはそれ以上のリアルタイム・プロセスに割り当てる段階と、
残余のあらゆる成分を1またはそれ以上の非リアルタイム・プロセスに割り当てる段階と、
を含むことを特徴とする方法。
Determining whether one or more components comprising the multimedia stream require real-time processing;
Assigning said one or more components requiring real-time processing to one or more real-time processes if at least one of said one or more components requires real-time processing;
Assigning any remaining components to one or more non-real-time processes;
A method comprising the steps of:
前記マルチメディア・ストリームは複数のパケットを含み、各パケットは、前記1またはそれ以上の成分のすべてのパケット化された部分を有することを特徴とする請求項1記載の方法。   The method of claim 1, wherein the multimedia stream includes a plurality of packets, each packet having all packetized portions of the one or more components. 前記1またはそれ以上の成分のそれぞれは、ビデオ情報、オーディオ情報、音声情報、データ情報、および、制御情報のうちの1または複数を含むことを特徴とする請求項2記載の方法。   The method of claim 2, wherein each of the one or more components includes one or more of video information, audio information, audio information, data information, and control information. リアルタイム処理は、
前記パケットが前記ストリームのソース装置によって送信されるレートを決定する段階と、
各パケットを含む前記1またはそれ以上の成分のそれぞれを少なくとも、前記パケットが前記ストリームのソース装置によって送信されるレートで処理する段階と、
を含むことを特徴とする請求項2記載の方法。
Real-time processing
Determining the rate at which the packets are transmitted by the source device of the stream;
Processing each of the one or more components comprising each packet at least at a rate at which the packets are transmitted by the source device of the stream;
The method of claim 2 comprising:
リアルタイム処理を必要とする前記ストリームの前記1またはそれ以上の成分を1またはそれ以上のリアルタイム・プロセスに割り当てる段階は、
前記ストリーム内の各パケットをその1またはそれ以上の成分にラップ解除する段階と、
各パケット内のリアルタイム処理を必要とする前記1またはそれ以上の成分のそれぞれをリアルタイムで処理するのに必要な処理量を決定する段階と、
各パケット内のリアルタイム処理を必要とする前記1またはそれ以上の成分のそれぞれを別個のプロセスに割り当てる段階と、
を含むことを特徴とする請求項4記載の方法。
Assigning the one or more components of the stream in need of real-time processing to one or more real-time processes comprises:
Unwrapping each packet in the stream into its one or more components;
Determining the amount of processing required to process each of the one or more components that require real-time processing in each packet in real time;
Assigning each of the one or more components requiring real-time processing within each packet to a separate process;
The method of claim 4 comprising:
プロセスは、コンピューティング装置上で実行可能なスレッドを含むことを特徴とする請求項5記載の方法。   The method of claim 5, wherein the process includes a thread that is executable on the computing device. 各パケット内の前記1またはそれ以上の成分のそれぞれを別個のコンピューティング装置上のプロセスに割り当てる段階をさらに含むことを特徴とする請求項5記載の方法。   The method of claim 5, further comprising assigning each of the one or more components in each packet to a process on a separate computing device. 成分に優先度レベルを割り当てる段階をさらに含み、前記優先度レベルは、前記成分の情報の重要性に基づいて計算されることを特徴とする請求項3記載の方法。   4. The method of claim 3, further comprising assigning a priority level to a component, wherein the priority level is calculated based on the importance of the component information. 残余のあらゆる成分を1またはそれ以上の非リアルタイム・プロセスに割り当てる段階は、
各パケット内のリアルタイム処理を必要としない前記成分のそれぞれに対して許容可能な最大遅延を決定する段階と、
各パケット内のリアルタイム処理を必要としない前記成分のそれぞれを別個のプロセスに割り当てる段階であって、各プロセスは前記許容可能な遅延時間内にそれぞれの各成分を処理するのに必要な処理量を少なくとも提供する、段階と、
をさらに含むことを特徴とする請求項8記載の方法。
Assigning any remaining components to one or more non-real-time processes includes
Determining the maximum delay allowed for each of the components that do not require real-time processing in each packet;
Assigning each of the components that do not require real-time processing within each packet to a separate process, each process having the amount of processing required to process each component within the allowable delay time. Providing at least a stage, and
The method of claim 8 further comprising:
パケットの複数の前記成分を順次処理する段階をさらに含み、処理される前記成分の順序は成分の優先度レベル順であり、最高の優先度レベル成分が最初に処理され、最低の優先度レベル成分が最後に処理されることを特徴とする請求項8記載の方法。   Sequentially processing a plurality of said components of a packet, the order of the processed components being in order of priority level of the components, with the highest priority level component being processed first and the lowest priority level component 9. The method of claim 8, wherein is processed last. パケット生成直後にパケットの前記ストリームをリアルタイムで格納装置内に一時的に格納することによって、低優先度レベルのパケット成分の情報損失を防ぐ段階をさらに含むことを特徴とする請求項10記載の方法。   11. The method of claim 10, further comprising preventing information loss of low priority level packet components by temporarily storing the stream of packets in a storage device in real time immediately after packet generation. . 前記ストリームの前記成分のすべてがリアルタイムで処理可能であるとは限らない場合、少なくとも1つのパケットからの少なくとも1つの成分が処理から除外され得るかどうかを判断する段階と、
少なくとも1つの成分が除外され得る場合、前記成分を除外する段階と、
をさらに含むことを特徴とする請求項8記載の方法。
Determining whether at least one component from at least one packet can be excluded from processing if not all of the components of the stream are processable in real time;
If at least one component can be excluded, excluding said component;
The method of claim 8 further comprising:
最低優先度レベルを有する前記成分を除外する段階をさらに含むことを特徴とする請求項12記載の方法。   The method of claim 12, further comprising excluding the component having the lowest priority level. 除外された同じ成分を含む最大数の連続したパケットを設定する段階をさらに含むことを特徴とする請求項13記載の方法。   The method of claim 13, further comprising setting a maximum number of consecutive packets including the same excluded component. ソース装置から送信された前記ストリームの形式を決定する段階と、
宛先装置が必要とする前記ストリームの形式を決定する段階と、
前記ソース装置のストリームの形式が前記必要とされる宛先装置ストリームの形式と同じである場合、前記ストリームを処理せずに前記ソース装置と前記宛先装置との間で前記ストリームを直接に送信する段階と、
をさらに含むことを特徴とする請求項1記載の方法。
Determining the format of the stream transmitted from the source device;
Determining the format of the stream required by the destination device;
If the source device stream format is the same as the required destination device stream format, transmitting the stream directly between the source device and the destination device without processing the stream When,
The method of claim 1 further comprising:
2またはそれ以上の成分を同じプロセスに割り当てる段階をさらに含み、それぞれの成分の優先度が処理の順序を決めることを特徴とする請求項8記載の方法。   9. The method of claim 8, further comprising assigning two or more components to the same process, wherein the priority of each component determines the order of processing. マルチメディア・ストリームを含む1またはそれ以上の成分がリアルタイム・トランスコーディングを必要とするかどうかを判断する段階と、
前記1またはそれ以上の成分のうちの少なくとも1つがリアルタイム・トランスコーディングを必要とする場合、リアルタイム・トランスコーディングを必要とする前記1またはそれ以上の成分を1またはそれ以上のリアルタイム・プロセスに割り当てる段階と、
残余のあらゆる成分を1またはそれ以上の非リアルタイム・プロセスに割り当てる段階と、
をさらに含むことを特徴とする請求項1記載の方法。
Determining whether one or more components comprising the multimedia stream require real-time transcoding;
If at least one of the one or more components requires real-time transcoding, assigning the one or more components requiring real-time transcoding to one or more real-time processes When,
Assigning any remaining components to one or more non-real-time processes;
The method of claim 1 further comprising:
命令をその上に実装した機械読取り可能な媒体において、機械によって実行されるとき、前記機械は、
マルチメディア・ストリームを含む1またはそれ以上の成分がリアルタイム処理を必要とするかどうかを判断する段階と、
前記1またはそれ以上の成分のうちの少なくとも1つがリアルタイム処理を必要とする場合、リアルタイム処理を必要とする前記1またはそれ以上の成分を1またはそれ以上のリアルタイム・プロセスに割り当てる段階と、
残余のあらゆる成分を1またはそれ以上の非リアルタイム・プロセスに割り当てる段階と、
を含む方法を実施することを特徴とする機械読取り可能な媒体。
When executed by a machine on a machine-readable medium having instructions thereon, the machine
Determining whether one or more components comprising the multimedia stream require real-time processing;
Assigning said one or more components requiring real-time processing to one or more real-time processes if at least one of said one or more components requires real-time processing;
Assigning any remaining components to one or more non-real-time processes;
A machine-readable medium, characterized in that a method comprising:
前記マルチメディア・ストリームは複数のパケットを含み、それぞれのパケットは、前記1またはそれ以上の成分のすべてのパケット化された部分を有することを特徴とする請求項18記載の機械読取り可能な媒体。   The machine-readable medium of claim 18, wherein the multimedia stream includes a plurality of packets, each packet having all packetized portions of the one or more components. 前記1またはそれ以上の成分のそれぞれは、ビデオ情報、オーディオ情報、音声情報、データ情報、および、制御情報を含むリストからの情報のタイプを含むことを特徴とする請求項19記載の機械読取り可能な媒体。   The machine readable machine of claim 19, wherein each of the one or more components includes a type of information from a list including video information, audio information, audio information, data information, and control information. Medium. リアルタイム処理は、
前記パケットがストリームのソース装置によって送信されるレートを決定する段階と、
各パケットを含む前記1またはそれ以上の成分のそれぞれを、前記パケットが前記ストリーム・ソース装置によって送信されるレートで少なくとも処理する段階と、
を含むことを特徴とする請求項19記載の機械読取り可能な媒体。
Real-time processing
Determining the rate at which the packets are transmitted by the source device of the stream;
Processing each of the one or more components comprising each packet at least at a rate at which the packets are transmitted by the stream source device;
The machine-readable medium of claim 19, comprising:
リアルタイム処理を必要とする前記ストリームの前記1またはそれ以上の成分を1またはそれ以上のリアルタイム・プロセスに割り当てる段階は、
前記ストリーム内の各パケットをその1またはそれ以上の成分にラップ解除する段階と、
各パケットを含む前記1またはそれ以上の成分のそれぞれをリアルタイムで処理するのに必要な処理量を決定する段階と、
各パケット内の前記1またはそれ以上の成分のそれぞれを別個のプロセスに割り当てる段階と、
を含むことを特徴とする請求項21記載の機械読取り可能な媒体。
Assigning the one or more components of the stream in need of real-time processing to one or more real-time processes comprises:
Unwrapping each packet in the stream into its one or more components;
Determining the amount of processing required to process each of the one or more components comprising each packet in real time;
Assigning each of the one or more components in each packet to a separate process;
The machine-readable medium of claim 21, comprising:
成分に優先度レベルを割り当てる段階をさらに含み、前記優先度レベルが前記成分の情報の重要性に基づいて計算されることを特徴とする請求項20記載の機械読取り可能な媒体。   21. The machine-readable medium of claim 20, further comprising assigning a priority level to a component, wherein the priority level is calculated based on the importance of the component information. 残余のあらゆる成分を1またはそれ以上の非リアルタイム・プロセスに割り当てる段階は、
各パケット内のリアルタイム処理を必要としない前記成分のそれぞれに対して許容可能な最大遅延を決定する段階と、
各パケット内のリアルタイム処理を必要としない前記成分のそれぞれを別個のプロセスに割り当てる段階であって、それぞれのプロセスは、前記許容可能な遅延時間内にそれぞれの各成分を処理するのに必要な処理量を少なくとも提供する段階と、
をさらに含むことを特徴とする請求項23記載の機械読取り可能な媒体。
Assigning any remaining components to one or more non-real-time processes includes
Determining the maximum delay allowed for each of the components that do not require real-time processing in each packet;
Assigning each of the components that do not require real-time processing in each packet to a separate process, each process processing necessary to process each respective component within the allowable delay time Providing at least an amount;
24. The machine-readable medium of claim 23, further comprising:
パケットの複数の前記成分を順次処理する段階さらに含み、処理される前記成分の順序が成分の優先度レベル順であり、最高の優先度レベル成分が最初に処理され、最低の優先度レベル成分が最後に処理されることを特徴とする請求項23記載の機械読取り可能な媒体。   Sequentially processing a plurality of said components of a packet, wherein the order of the processed components is in order of priority of components, the highest priority level component is processed first, and the lowest priority level component is 24. The machine readable medium of claim 23, which is processed last. 前記ストリームの前記成分のすべてがリアルタイムで処理可能であるとは限らない場合、少なくとも1つのパケットからの少なくとも1つの成分が処理から除外され得るかどうかを判断する段階と、
少なくとも1つの成分が除外され得る場合、前記成分を除外する段階と、
をさらに含むことを特徴とする請求項23記載の機械読取り可能な媒体。
Determining whether at least one component from at least one packet can be excluded from processing if not all of the components of the stream are processable in real time;
If at least one component can be excluded, excluding said component;
24. The machine-readable medium of claim 23, further comprising:
最低優先度レベルを有する前記成分を除外する段階をさらに含むことを特徴とする請求項26記載の機械読取り可能な媒体。   27. The machine-readable medium of claim 26, further comprising excluding the component having the lowest priority level. 除外された同じ成分を含む最大数の連続したパケットを設定する段階をさらに含むことを特徴とする請求項27記載の機械読取り可能な媒体。   28. The machine-readable medium of claim 27, further comprising setting a maximum number of consecutive packets that include the same excluded component. ソース装置から送信された前記ストリームの形式を決定する段階と、
宛先装置が必要とする前記ストリームの形式を決定する段階と、
前記ソース装置のストリームの形式が前記必要とされる宛先装置ストリームの形式と同じである場合、前記ストリームを処理せずに前記ソース装置と前記宛先装置との間で前記ストリームを直接に送信する段階と、
をさらに含むことを特徴とする請求項18記載の機械読取り可能な媒体。
Determining the format of the stream transmitted from the source device;
Determining the format of the stream required by the destination device;
If the source device stream format is the same as the required destination device stream format, transmitting the stream directly between the source device and the destination device without processing the stream When,
The machine-readable medium of claim 18, further comprising:
バスと、
前記バスに結合されたプロセッサと、
前記バスに結合されたネットワーク・インターフェース・カードと、
前記プロセッサに結合されたメモリであって、前記プロセッサによって実行されると、
マルチメディア・ストリームを含む1またはそれ以上の成分がリアルタイム処理を必要とするかどうか判断し、
前記1またはそれ以上の成分のうちの少なくとも1つがリアルタイム処理を必要とする場合、リアルタイム処理を必要とする前記1またはそれ以上の成分を1またはそれ以上のリアルタイム・プロセスに割り当て、
残余のあらゆる成分を1またはそれ以上の非リアルタイム・プロセスに割り当てる、
命令を格納するために適応したメモリと、
を含むことを特徴とするシステム。
With bus,
A processor coupled to the bus;
A network interface card coupled to the bus;
A memory coupled to the processor when executed by the processor;
Determine whether one or more components comprising the multimedia stream require real-time processing;
Assigning the one or more components requiring real-time processing to one or more real-time processes if at least one of the one or more components requires real-time processing;
Assign any remaining components to one or more non-real-time processes;
Memory adapted to store instructions; and
A system characterized by including.
前記マルチメディア・ストリームは複数のパケットを含み、それぞれのパケットは前記1またはそれ以上の成分のすべてのパケット化された部分を有することを特徴とする請求項30記載のシステム。   The system of claim 30, wherein the multimedia stream includes a plurality of packets, each packet having all packetized portions of the one or more components. 前記1またはそれ以上の成分のそれぞれは、ビデオ情報、オーディオ情報、音声情報、データ情報、および、制御情報を含むリストからのある情報のタイプを含むことを特徴とする請求項31記載のシステム。   32. The system of claim 31, wherein each of the one or more components includes a type of information from a list that includes video information, audio information, audio information, data information, and control information. リアルタイム処理は、
前記パケットがストリームのソース装置によって送信されるレートを決定する段階と、
各パケットを含む前記1またはそれ以上の成分のそれぞれを、前記パケットが前記ストリーム・ソース装置によって送信されるレートで少なくとも処理する段階と、
を含むことを特徴とする請求項32記載のシステム。
Real-time processing
Determining the rate at which the packets are transmitted by the source device of the stream;
Processing each of the one or more components comprising each packet at least at a rate at which the packets are transmitted by the stream source device;
35. The system of claim 32, comprising:
リアルタイム処理を必要とする前記ストリームの前記1またはそれ以上の成分を1またはそれ以上のリアルタイム・プロセスに割り当てる段階は、
前記ストリーム内の各パケットをその1またはそれ以上の成分にラップ解除する段階と、
各パケットを含む前記1またはそれ以上の成分のそれぞれをリアルタイムで処理するのに必要な処理量を決定する段階と、
各パケット内の前記1またはそれ以上の成分のそれぞれを別個のプロセスに割り当てる段階と、
を含むことを特徴とする請求項33記載のシステム。
Assigning the one or more components of the stream in need of real-time processing to one or more real-time processes comprises:
Unwrapping each packet in the stream into its one or more components;
Determining the amount of processing required to process each of the one or more components comprising each packet in real time;
Assigning each of the one or more components in each packet to a separate process;
34. The system of claim 33, comprising:
プロセスは、コンピューティング装置上で実行可能なスレッドを含むことを特徴とする請求項34記載のシステム。   The system of claim 34, wherein the process includes a thread that is executable on the computing device. 各パケット内の前記1またはそれ以上の成分のそれぞれを別個のコンピューティング装置上のプロセスに割り当てる段階をさらに含むことを特徴とする請求項34記載のシステム。   35. The system of claim 34, further comprising assigning each of the one or more components in each packet to a process on a separate computing device. 成分に優先度レベルを割り当てる段階をさらに含み、前記優先度レベルが前記成分の情報の重要性に基づいて計算されることを特徴とする請求項32記載のシステム。   The system of claim 32, further comprising assigning a priority level to a component, wherein the priority level is calculated based on the importance of the component information. パケットの複数の前記成分を順次処理する段階をさらに含み、処理される前記成分の順序が成分の優先度レベル順であり、最高の優先度レベル成分が最初に処理され、最低の優先度レベル成分が最後に処理されることを特徴とする請求項37記載のシステム。   Sequentially processing a plurality of said components of a packet, wherein the order of the processed components is in order of priority level of the components, the highest priority level component is processed first, and the lowest priority level component 38. The system of claim 37, wherein is processed last. パケット生成直後にパケットの前記ストリームをリアルタイムで格納装置内に一時的に格納することによって、低優先度レベルのパケット成分の情報損失を防ぐ段階をさらに含むことを特徴とする請求項38記載のシステム。   39. The system of claim 38, further comprising preventing information loss of low priority level packet components by temporarily storing the stream of packets in a storage device in real time immediately after packet generation. . 前記ストリームの前記成分のすべてがリアルタイムで処理可能であるとは限らない場合、少なくとも1つのパケットからの少なくとも1つの成分が処理から除外され得るかどうかを判断する段階と、
少なくとも1つの成分が除外され得る場合、前記成分を除外する段階と、
をさらに含むことを特徴とする請求項38記載のシステム。
Determining whether at least one component from at least one packet can be excluded from processing if not all of the components of the stream are processable in real time;
If at least one component can be excluded, excluding said component;
40. The system of claim 38, further comprising:
最低優先度レベルを有する前記成分を除外する段階をさらに含むことを特徴とする請求項40記載のシステム。   41. The system of claim 40, further comprising excluding the component having the lowest priority level. 除外された同じ成分を含む最大数の連続したパケットを設定する段階をさらに含むことを特徴とする請求項41記載のシステム。   42. The system of claim 41, further comprising setting a maximum number of consecutive packets that include the same excluded component. ソース装置から送信された前記ストリームの形式を決定する段階と、
宛先装置が必要とする前記ストリームの形式を決定する段階と、
前記ソース装置のストリームの形式が前記必要とされる宛先装置ストリームの形式と同じである場合、前記ストリームを処理せずに前記ソース装置と前記宛先装置との間で前記ストリームを直接に送信する段階と、
をさらに含むことを特徴とする請求項30記載のシステム。
Determining the format of the stream transmitted from the source device;
Determining the format of the stream required by the destination device;
If the source device stream format is the same as the required destination device stream format, transmitting the stream directly between the source device and the destination device without processing the stream When,
32. The system of claim 30, further comprising:
残余のあらゆる成分を1またはそれ以上の非リアルタイム・プロセスに割り当てる段階は、
各パケット内のリアルタイム処理を必要としない前記成分のそれぞれに対して許容可能な最大遅延を決定する段階と、
各パケット内のリアルタイム処理を必要としない前記成分のそれぞれを別個のプロセスに割り当てる段階であって、各プロセスは、前記許容可能な遅延時間内にそれぞれの各成分を処理するのに必要な処理量を少なくとも提供する段階と、
をさらに含むことを特徴とする請求項34記載のシステム。
Assigning any remaining components to one or more non-real-time processes includes
Determining the maximum delay allowed for each of the components that do not require real-time processing in each packet;
Assigning each of the components that do not require real-time processing in each packet to a separate process, each process requiring the amount of processing required to process each component within the allowable delay time Providing at least
35. The system of claim 34, further comprising:
第1のマルチメディア・ストリームをその個別の成分にラップ解除するために動作可能なストリーム・アンラッパー・ユニットと、
前記1またはそれ以上の成分のそれぞれを1またはそれ以上のプロセスに割り当てるために動作可能なプロセス割当てユニットと、
前記1またはそれ以上の個別の成分のそれぞれを処理するために動作可能なアルゴリズム処理論理と、
前記処理された1またはそれ以上の個別の成分のうちの少なくとも1つを第2のマルチメディア・ストリームにラップするために動作可能なストリーム・ラッパー・ユニットと、
を含むことを特徴とする装置。
A stream unwrapper unit operable to unwrap the first multimedia stream into its individual components;
A process allocation unit operable to allocate each of the one or more components to one or more processes;
Algorithm processing logic operable to process each of the one or more individual components;
A stream wrapper unit operable to wrap at least one of the processed one or more individual components into a second multimedia stream;
The apparatus characterized by including.
前記プロセス割当てユニットは、各成分の優先度を決定し、最高の優先度を有する前記成分に最高優先度のプロセスを割り当てるためにさらに動作可能であることを特徴とする請求項45記載の装置。   46. The apparatus of claim 45, wherein the process allocation unit is further operable to determine a priority for each component and assign a highest priority process to the component having the highest priority. 前記プロセス割当てユニットは、前記1またはそれ以上の個別の成分のそれぞれをラップする優先度に関する情報を前記ストリーム・アンラッパー・ユニットに送信するためにさらに動作可能であることを特徴とする請求項45記載の装置。   46. The process allocation unit is further operable to send information about the priority of wrapping each of the one or more individual components to the stream unwrapper unit. The device described. 前記アルゴリズム処理論理は、前記1またはそれ以上の個別の成分のそれぞれを処理するための前記アルゴリズム処理論理に使用可能なリソースに関する情報を送信するためにさらに動作可能であることを特徴とする請求項45記載の装置。   The algorithm processing logic is further operable to transmit information regarding resources available to the algorithm processing logic for processing each of the one or more individual components. 45. The apparatus according to 45. 前記ストリーム・ラッパー・ユニットは、前記1またはそれ以上の個別の成分のそれぞれを前記成分の優先度順にラップするためにさらに動作可能であることを特徴とする請求項47記載の装置。   48. The apparatus of claim 47, wherein the stream wrapper unit is further operable to wrap each of the one or more individual components in order of priority of the components. 前記ストリーム・ラッパー・ユニットは、前記ラップされた1またはそれ以上の成分のそれぞれを宛先装置に送信するためにさらに動作可能であることを特徴とする請求項45記載の装置。   46. The apparatus of claim 45, wherein the stream wrapper unit is further operable to transmit each of the wrapped one or more components to a destination device.
JP2007548413A 2004-12-22 2005-12-20 How to process multimedia streams Pending JP2008527472A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/023,258 US20060133513A1 (en) 2004-12-22 2004-12-22 Method for processing multimedia streams
PCT/US2005/046288 WO2006069122A2 (en) 2004-12-22 2005-12-20 Method for processing multimedia streams

Publications (1)

Publication Number Publication Date
JP2008527472A true JP2008527472A (en) 2008-07-24

Family

ID=36129877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007548413A Pending JP2008527472A (en) 2004-12-22 2005-12-20 How to process multimedia streams

Country Status (5)

Country Link
US (1) US20060133513A1 (en)
EP (1) EP1851966A2 (en)
JP (1) JP2008527472A (en)
CN (2) CN101088294A (en)
WO (1) WO2006069122A2 (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7092735B2 (en) * 2002-03-22 2006-08-15 Osann Jr Robert Video-voicemail solution for wireless communication devices
US9446305B2 (en) 2002-12-10 2016-09-20 Sony Interactive Entertainment America Llc System and method for improving the graphics performance of hosted applications
US7555540B2 (en) 2003-06-25 2009-06-30 Microsoft Corporation Media foundation media processor
US20060133513A1 (en) * 2004-12-22 2006-06-22 Kounnas Michael K Method for processing multimedia streams
US9462333B2 (en) * 2010-09-27 2016-10-04 Intel Corporation Method for processing multimedia streams
US7827554B2 (en) * 2005-06-20 2010-11-02 Microsoft Corporation Multi-thread multimedia processing
KR101235272B1 (en) * 2006-04-05 2013-02-20 삼성전자주식회사 Method and apparatus for trans-coding by media server and requesting trans-coding by control point
US8225320B2 (en) * 2006-08-31 2012-07-17 Advanced Simulation Technology, Inc. Processing data using continuous processing task and binary routine
US9813562B1 (en) * 2010-09-01 2017-11-07 Sprint Communications Company L.P. Dual tone multi-frequency transcoding server for use by multiple session border controllers
CN102073545B (en) * 2011-02-28 2013-02-13 中国人民解放军国防科学技术大学 Process scheduling method and device for preventing user interface stuck screen in operating system
KR101822940B1 (en) * 2011-12-12 2018-01-29 엘지전자 주식회사 Method and device for executing a device management command based on an execution time
WO2013148595A2 (en) * 2012-03-26 2013-10-03 Onlive, Inc. System and method for improving the graphics performance of hosted applications
US10341673B2 (en) * 2013-05-08 2019-07-02 Integrated Device Technology, Inc. Apparatuses, methods, and content distribution system for transcoding bitstreams using first and second transcoders
WO2018033350A1 (en) 2016-08-16 2018-02-22 British Telecommunications Public Limited Company Reconfigured virtual machine to mitigate attack
US11423144B2 (en) 2016-08-16 2022-08-23 British Telecommunications Public Limited Company Mitigating security attacks in virtualized computing environments
GB2553597A (en) * 2016-09-07 2018-03-14 Cisco Tech Inc Multimedia processing in IP networks

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06259386A (en) * 1993-03-02 1994-09-16 Toshiba Corp Resource managing system
JPH10240548A (en) * 1997-03-03 1998-09-11 Toshiba Corp Task scheduling apparatus and method
JP2001516995A (en) * 1997-09-11 2001-10-02 サイエンティフィック−アトランタ, インコーポレイテッド Bitstream splicer with variable rate output
JP2002510162A (en) * 1998-01-14 2002-04-02 スカイストリーム コーポレイション Transport stream remultiplexer with video program
JP2002185943A (en) * 2000-12-12 2002-06-28 Nec Corp Broadcasting viewing method, broadcasting transmission server, portable terminal and multi-spot speaking and broadcasting control viewing equipment
JP2003264592A (en) * 2002-01-29 2003-09-19 Acme Packet Inc System and method for collecting statistics in a packet network
WO2003087961A1 (en) * 2002-04-05 2003-10-23 Matsushita Electric Industrial Co., Ltd. Improved utilization of data broadcasting technology with handheld control apparatus
JP2003533712A (en) * 2000-04-11 2003-11-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Data stream adaptation server

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052384A (en) * 1997-03-21 2000-04-18 Scientific-Atlanta, Inc. Using a receiver model to multiplex variable-rate bit streams having timing constraints
US6351471B1 (en) * 1998-01-14 2002-02-26 Skystream Networks Inc. Brandwidth optimization of video program bearing transport streams
JP2955561B1 (en) * 1998-05-29 1999-10-04 株式会社ディジタル・ビジョン・ラボラトリーズ Stream communication system and stream transfer control method
US6584509B2 (en) * 1998-06-23 2003-06-24 Intel Corporation Recognizing audio and video streams over PPP links in the absence of an announcement protocol
US6483543B1 (en) * 1998-07-27 2002-11-19 Cisco Technology, Inc. System and method for transcoding multiple channels of compressed video streams using a self-contained data unit
US7088725B1 (en) * 1999-06-30 2006-08-08 Sony Corporation Method and apparatus for transcoding, and medium
ES2557892T3 (en) * 1999-07-15 2016-01-29 Telefonaktiebolaget Lm Ericsson (Publ) Admission control and packet data traffic planning
US6438135B1 (en) * 1999-10-21 2002-08-20 Advanced Micro Devices, Inc. Dynamic weighted round robin queuing
US6747991B1 (en) * 2000-04-26 2004-06-08 Carnegie Mellon University Filter and method for adaptively modifying the bit rate of synchronized video and audio streams to meet packet-switched network bandwidth constraints
US6847656B1 (en) * 2000-09-25 2005-01-25 General Instrument Corporation Statistical remultiplexing with bandwidth allocation among different transcoding channels
US6793625B2 (en) * 2000-11-13 2004-09-21 Draeger Medical Systems, Inc. Method and apparatus for concurrently displaying respective images representing real-time data and non real-time data
US20020121443A1 (en) * 2000-11-13 2002-09-05 Genoptix Methods for the combined electrical and optical identification, characterization and/or sorting of particles
US7164680B2 (en) * 2001-06-04 2007-01-16 Koninklijke Philips Electronics N.V. Scheme for supporting real-time packetization and retransmission in rate-based streaming applications
KR100408044B1 (en) * 2001-11-07 2003-12-01 엘지전자 주식회사 Traffic control system and method in atm switch
KR100462321B1 (en) * 2002-12-16 2004-12-17 한국전자통신연구원 system for down-link packet scheduling of mobile connuvication and method thereof, its program stored recording medium
US20060133513A1 (en) * 2004-12-22 2006-06-22 Kounnas Michael K Method for processing multimedia streams

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06259386A (en) * 1993-03-02 1994-09-16 Toshiba Corp Resource managing system
JPH10240548A (en) * 1997-03-03 1998-09-11 Toshiba Corp Task scheduling apparatus and method
JP2001516995A (en) * 1997-09-11 2001-10-02 サイエンティフィック−アトランタ, インコーポレイテッド Bitstream splicer with variable rate output
JP2002510162A (en) * 1998-01-14 2002-04-02 スカイストリーム コーポレイション Transport stream remultiplexer with video program
JP2003533712A (en) * 2000-04-11 2003-11-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Data stream adaptation server
JP2002185943A (en) * 2000-12-12 2002-06-28 Nec Corp Broadcasting viewing method, broadcasting transmission server, portable terminal and multi-spot speaking and broadcasting control viewing equipment
JP2003264592A (en) * 2002-01-29 2003-09-19 Acme Packet Inc System and method for collecting statistics in a packet network
WO2003087961A1 (en) * 2002-04-05 2003-10-23 Matsushita Electric Industrial Co., Ltd. Improved utilization of data broadcasting technology with handheld control apparatus

Also Published As

Publication number Publication date
EP1851966A2 (en) 2007-11-07
WO2006069122A3 (en) 2006-09-14
US20060133513A1 (en) 2006-06-22
CN101088294A (en) 2007-12-12
CN1805427B (en) 2011-12-14
CN1805427A (en) 2006-07-19
WO2006069122A2 (en) 2006-06-29

Similar Documents

Publication Publication Date Title
US7817557B2 (en) Method and system for buffering audio/video data
US8713167B1 (en) Distributive data capture
US7617337B1 (en) VoIP quality tradeoff system
US8433050B1 (en) Optimizing conference quality with diverse codecs
EP1496700B1 (en) Apparatus, method and computer program for supporting video conferencing in a communication system
US20180302515A1 (en) Seamless codec switching
US20190259404A1 (en) Encoding an audio stream
JP2008527472A (en) How to process multimedia streams
US20120030682A1 (en) Dynamic Priority Assessment of Multimedia for Allocation of Recording and Delivery Resources
US20070206505A1 (en) Adjusting CODEC parameters during emergency calls
US20080225844A1 (en) Method of transmitting data in a communication system
US9826072B1 (en) Network-terminal interoperation using compatible payloads
US7865634B2 (en) Managing a buffer for media processing
US20170085614A1 (en) Method for processing multimedia streams
US8792393B2 (en) Optimizing conferencing performance
US7113514B2 (en) Apparatus and method for implementing a packet based teleconference bridge
JP4496755B2 (en) COMMUNICATION PROCESSING DEVICE, COMMUNICATION PROCESSING METHOD, AND COMPUTER PROGRAM
US8170006B2 (en) Digital telecommunications system, program product for, and method of managing such a system
US9578283B1 (en) Audio level based management of communication resources
JP2004304410A (en) Communication processing apparatus, communication processing method, and computer program
WO2014046239A1 (en) Communication system, method, server device and terminal

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091109

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100209

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100217

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100309

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100316

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100409

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100416

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100510

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100607

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100907

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100914

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101006

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101014

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110117