JP2008527472A - How to process multimedia streams - Google Patents
How to process multimedia streams Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5055—Allocation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing 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/234309—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
- H04N21/2355—Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling 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/23608—Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
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,
単方向トランスコーディングの別の例は、ボイスメールである。ある人が、オフィスにいないことを発呼者に知らせるため、そのボイスメール・システムにメッセージを記録することを望み得る。その人は、メッセージを保存したいか、それとも再び録音したいかを決定するために、メッセージを再生することを望み得る。その人は、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,
多方向トランスコーディングは、たとえば三者テレビ会議時など、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
多くの場合において、図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
一実施形態では、コンピュータ・システムは、システム・メモリ204に格納されており、またプロセッサ200によって操作/実行されるMSPMS206を含む。異なる実施形態では、MSPMS206は、処理が必要とする速度(たとえばリアルタイムや非リアルタイム)、ストリームを含む異なる成分(たとえばオーディオ成分、音声成分、ビデオ成分、データ成分および制御成分)のそれぞれに関連付けられた優先度、およびマルチメディア・ストリームを実際に処理する特定の装置の割当てなど、マルチメディア・ストリーム処理に関する複数の管理決定を制御し得る。異なる実施形態では、実際にマルチメディア・ストリームを処理する装置は、他にも多くの可能な処理装置があるが、特に挙げると、デジタル信号プロセッサ、ネットワーク・サーバ、リモート・デスクトップ・コンピュータ、または図2に示すコンピュータ・システム(プロセッサ200を含む)があり得る。
In one embodiment, the computer system includes an
MCH202もまた、グラフィックス・モジュール208に結合される。ICH 210は、ハード・ドライブ212およびI/Oバス214に結合される。I/Oバス214は、ネットワークとのインターフェースを取るネットワーク・インターフェース・カードに結合される。異なる実施形態では、ネットワークは、ローカル・エリア・ネットワーク、公衆電話システム、インターネット、広域ネットワーク、ワイヤレス・ネットワーク、またはコンピューティング装置間でデータを送り届けることができる他の任意のネットワークがあり得る。
The
図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
それぞれのパケットは、複数の成分を含み得る。パケットの各成分は、ストリームに関する、ある情報のタイプからなる。たとえば、オーディオ/ビデオ・ストリーム用のパケットは、音声成分と、別個のビデオ成分とを含むことができる。異なる例では、ストリーム内で命令を送信するデータ成分、(特定の音声情報に対して)音楽およびバックグラウンド・ノイズ情報を含む一般的なオーディオ成分、ならびに他のタイプの制御情報もあるが特に挙げると、セキュリティ情報、認証情報およびサービス品質(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,
次いで、プロセス割当てユニット306は、1またはそれ以上のストリーム成分のそれぞれを、1またはそれ以上のアルゴリズム・プロセス(308,310,312,314)を含む処理論理に割り当てる。「アルゴリズム・プロセス」は、マルチメディア・ストリームの1またはそれ以上の成分を何らかのやり方で修正することができる方法またはプロセスである。アルゴリズム・プロセスの例には、特に挙げると、マルチメディア・ストリームの成分をトランスコードする方法、マルチメディア・ストリームの特定の成分を除外する方法、マルチメディア・ストリームの成分の処理を遅延させる方法、リアルタイム・トランスポート・プロトコル(RTP:real−time transport protocol)ストリームをバッファリングする方法が含まれる。
The
しばしば、特定のタスクを完了するために、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
たとえば、テレビ会議において、ビデオ成分が使用可能でない場合、オーディオ通信が依然として実行可能な代案であるが、しかし、オーディオ成分が使用可能でない場合、通信の効率は、単にビデオ供給を伴い、劇的に減少する。別の例では、多成分パケットのマルチメディア・ストリーム中のビデオ成分は通常、最も大きい帯域幅および演算能力を消費し、したがって、アルゴリズム・プロセスは、単にビデオをリアルタイムでトランスコードすることができてもよく、あるいはそれは、他の成分(おそらくオーディオ、音声、データおよび制御成分)のすべてをリアルタイムでトランスコードすることができてもよく、したがって、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
別の実施形態では、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
別の実施形態では、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,
現在の例では、プロセス割当てユニット306は、MPEG4からMPEG2にトランスコードするアルゴリズム・プロセスにビデオ成分を割り当てる。各パケットのビデオ成分が1またはそれ以上のアルゴリズム・プロセスによって処理されると、ビデオ成分(すなわち新しいMPEG2形式ビデオ・ストリーム)は、ストリーム・ラッパー・ユニット316に送信される。一実施形態では、ストリーム・ラッパー・ユニット316は、個別の成分をカプセル化して、宛先に送信されるパケット化形式に戻す。一実施形態では、ストリーム・ラッパー・ユニット316は、1またはそれ以上のアルゴリズム・プロセスの出力としてストリーム・ラッパー・ユニット316が受信する各成分の宛先アドレスなどの情報を、ストリーム・アンラッパー・ユニット304から直接に得る。別の実施形態では、ストリーム・ラッパー・ユニット316は、成分単位の優先度情報および成分単位のパケット組合せ情報などの情報を、プロセス割当てユニット306から直接に受信する。成分単位の優先度情報は、ストリーム・ラッパー・ユニット316は、アルゴリズム・プロセスのうちの1または複数から到着する異なる成分のラッピングおよび送信を優先することを可能にする。成分単位のパケット組合せ情報は、ストリーム・ラッパー・ユニット316が、複数の成分を単一のパケットに組み込むことを可能にし、あるいは個別の成分は、より高い優先度などの理由により、別個のパケットにラップされ送信されることを可能にする。
In the current example,
現在の例では、ストリーム・ラッパー・ユニット316は、新しくトランスコードされたMPEG2ビデオ成分を受信し、宛先アドレス情報および他の任意の関連情報を付けて成分を再びラッピングし、宛先318にストリームを送信する。
In the current example,
一実施形態では、所与の成分をどのアルゴリズム・プロセスに割り当てるか決定するとき、プロセス割当てユニット306は、他の情報もあるが特に挙げると、アルゴリズム・プロセスが実行される各コンピュータ・システムのネットワーク接続性およびスループット、各コンピュータ・システムが使用可能にする空きリソースの量、そのそれぞれのコンピュータ・システム内の各アルゴリズム・プロセスの優先度を含めた情報を考慮に入れる。この実施形態では、プロセス割当てユニット306は、各コンピュータ・システム内で実行されるアルゴリズム・プロセスから(図3の破線矢印)、それぞれのコンピュータ・システムに関する情報を受信する。それぞれのアルゴリズム・プロセスに関するコンピュータ・システム情報を用いて、プロセス割当てユニット306(および一般にMSPMS)は、ストリームの知覚されるどんな性能低下をも最小限に抑えまたは取り除くために、どのようにしてストリーム内の各成分をできるだけ効率的に処理するか決定することができる。したがって、上記で示したように、MSPMSは、成分の優先度、および使用可能なシステム・リソースに応じて、ストリームの成分をリアルタイムで処理することも、非リアルタイムで処理することも、成分を全く処理しないこともある。
In one embodiment, when deciding which algorithm process to assign a given component to, the
図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
図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
図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
図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
図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
この実施形態では、ビデオ成分804は、バッファ#1(808)に送信され、音声成分806は、バッファ#2(810)に送信される。この実施形態では、アルゴリズム・プロセス812は、単一の成分を、バッファ#1(808)またはバッファ#2(810)のいずれかから一度に1つ取る。どのバッファから取るかについての決定は、各バッファ内で待機する個別の成分に割り当てられた優先度に依存する。アルゴリズム・プロセス812が個別の成分のトランスコーディングを終了すると、トランスコードされた成分は、ヘッダ(814または816)に再び付けられ、個別のビデオまたは音声成分パケット(818または820)は、宛先822に送信される。
In this embodiment,
一実施形態では、ヘッダは、ストリーム・ラッパー・ユニット(図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,
たとえば、両方のアルゴリズム・プロセスが常駐するコンピュータ・システムは、インターネットからワームを受信し、ウィルス保護ソフトウェア・プログラムを実行するプロセスは、ビデオ・トランスコーディング・アルゴリズム・プロセスまたは音声トランスコーディング・アルゴリズム・プロセスのいずれかよりも一時的に優先する。したがって、この場合、それぞれのアルゴリズム・プロセスは、アルゴリズム・プロセス(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,
一実施形態では、ヘッダは、ストリーム・ラッパー・ユニット(図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
音声成分がビデオ成分よりも高いトランスコーディング優先度を有する場合、特定のビデオ・フレームが除外され(すなわち除去され)なければならない。したがって、一実施形態では、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
図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.
Claims (50)
前記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またはそれ以上の成分のそれぞれを少なくとも、前記パケットが前記ストリームのソース装置によって送信されるレートで処理する段階と、
を含むことを特徴とする請求項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またはそれ以上の成分のそれぞれを別個のプロセスに割り当てる段階と、
を含むことを特徴とする請求項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:
各パケット内のリアルタイム処理を必要としない前記成分のそれぞれに対して許容可能な最大遅延を決定する段階と、
各パケット内のリアルタイム処理を必要としない前記成分のそれぞれを別個のプロセスに割り当てる段階であって、各プロセスは前記許容可能な遅延時間内にそれぞれの各成分を処理するのに必要な処理量を少なくとも提供する、段階と、
をさらに含むことを特徴とする請求項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:
少なくとも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:
宛先装置が必要とする前記ストリームの形式を決定する段階と、
前記ソース装置のストリームの形式が前記必要とされる宛先装置ストリームの形式と同じである場合、前記ストリームを処理せずに前記ソース装置と前記宛先装置との間で前記ストリームを直接に送信する段階と、
をさらに含むことを特徴とする請求項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:
前記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またはそれ以上の成分のそれぞれを、前記パケットが前記ストリーム・ソース装置によって送信されるレートで少なくとも処理する段階と、
を含むことを特徴とする請求項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またはそれ以上の成分のそれぞれを別個のプロセスに割り当てる段階と、
を含むことを特徴とする請求項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:
各パケット内のリアルタイム処理を必要としない前記成分のそれぞれに対して許容可能な最大遅延を決定する段階と、
各パケット内のリアルタイム処理を必要としない前記成分のそれぞれを別個のプロセスに割り当てる段階であって、それぞれのプロセスは、前記許容可能な遅延時間内にそれぞれの各成分を処理するのに必要な処理量を少なくとも提供する段階と、
をさらに含むことを特徴とする請求項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:
少なくとも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:
宛先装置が必要とする前記ストリームの形式を決定する段階と、
前記ソース装置のストリームの形式が前記必要とされる宛先装置ストリームの形式と同じである場合、前記ストリームを処理せずに前記ソース装置と前記宛先装置との間で前記ストリームを直接に送信する段階と、
をさらに含むことを特徴とする請求項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またはそれ以上の成分のそれぞれを、前記パケットが前記ストリーム・ソース装置によって送信されるレートで少なくとも処理する段階と、
を含むことを特徴とする請求項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またはそれ以上の成分のそれぞれを別個のプロセスに割り当てる段階と、
を含むことを特徴とする請求項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:
少なくとも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:
宛先装置が必要とする前記ストリームの形式を決定する段階と、
前記ソース装置のストリームの形式が前記必要とされる宛先装置ストリームの形式と同じである場合、前記ストリームを処理せずに前記ソース装置と前記宛先装置との間で前記ストリームを直接に送信する段階と、
をさらに含むことを特徴とする請求項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:
各パケット内のリアルタイム処理を必要としない前記成分のそれぞれに対して許容可能な最大遅延を決定する段階と、
各パケット内のリアルタイム処理を必要としない前記成分のそれぞれを別個のプロセスに割り当てる段階であって、各プロセスは、前記許容可能な遅延時間内にそれぞれの各成分を処理するのに必要な処理量を少なくとも提供する段階と、
をさらに含むことを特徴とする請求項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つを第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.
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)
| 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)
| 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)
| 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 |
-
2004
- 2004-12-22 US US11/023,258 patent/US20060133513A1/en not_active Abandoned
-
2005
- 2005-12-20 JP JP2007548413A patent/JP2008527472A/en active Pending
- 2005-12-20 EP EP05854927A patent/EP1851966A2/en not_active Ceased
- 2005-12-20 CN CNA2005800443117A patent/CN101088294A/en active Pending
- 2005-12-20 WO PCT/US2005/046288 patent/WO2006069122A2/en active Application Filing
- 2005-12-21 CN CN2005101191524A patent/CN1805427B/en not_active Expired - Fee Related
Patent Citations (8)
| 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 |