JP2004530357A - Data packet transfer method and apparatus in communication network - Google Patents

Data packet transfer method and apparatus in communication network Download PDF

Info

Publication number
JP2004530357A
JP2004530357A JP2002580586A JP2002580586A JP2004530357A JP 2004530357 A JP2004530357 A JP 2004530357A JP 2002580586 A JP2002580586 A JP 2002580586A JP 2002580586 A JP2002580586 A JP 2002580586A JP 2004530357 A JP2004530357 A JP 2004530357A
Authority
JP
Japan
Prior art keywords
data
state
format
unit
coding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002580586A
Other languages
Japanese (ja)
Other versions
JP4043952B2 (en
Inventor
バーグランド、ジャン
リンドバーグ、ピーター
Original Assignee
オペラックス エービー
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
Priority claimed from SE0101193A external-priority patent/SE0101193D0/en
Application filed by オペラックス エービー filed Critical オペラックス エービー
Publication of JP2004530357A publication Critical patent/JP2004530357A/en
Application granted granted Critical
Publication of JP4043952B2 publication Critical patent/JP4043952B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64707Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless for transferring content from a first network to a second network, e.g. between IP and wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques

Abstract

送信機(100)及び受信機(102)の間で通信されるデータをトランスコードするための方法及びトランスコーダ。第1フォーマット(F、IF)での情報を含むデータユニット(202、208)は、受信され、前のコード化データから抽出される現在のコード化状態(302、502、706)に基づき、第2フォーマット(IF、F’)の新規なデータユニット(208、210)にコード化される。新規な現在のコード化状態は、データユニット(202、500、700)がコード化される度に抽出される。受信されるデータユニットが、間違ったシーケンス順であれば、現在のコード化状態は、保存され、新規な擬似コード化状態(DS2’、ES2’、CS2’)が、次の受信データユニットをコード化するために抽出される。最終的に受信した不足データ(F2、S4)は、保存されたコード化状態に基づき、第2フォーマット(IF、F’)にコード化され、次に有効なデータとして使用され得る。このようにして、高品質をなおも維持しながら、遅延は最小限に抑えられ、かつジッタバッファは必要ない。
【選択図】図4
A method and transcoder for transcoding data communicated between a transmitter (100) and a receiver (102). A data unit (202, 208) containing information in a first format (F, IF) is received and extracted based on a current coding state (302, 502, 706) extracted from previous coded data. Encoded into new data units (208, 210) in two formats (IF, F '). A new current encoding state is extracted each time a data unit (202, 500, 700) is encoded. If the received data units are in the wrong sequence order, the current coding state is saved and the new pseudo-coding state (DS2 ', ES2', CS2 ') codes the next received data unit. Extracted to make The finally received missing data (F2, S4) may be coded into a second format (IF, F ') based on the stored coding state and then used as valid data. In this way, the delay is minimized while still maintaining high quality, and no jitter buffer is required.
[Selection diagram] FIG.

Description

【技術分野】
【0001】
本発明は、送信機から受信機へデータユニットを転送する方法及び装置に係る。特に、本発明は、トランスコーダに受信されたデータユニットの脱落又は非順序を補償することに関する。
【背景技術】
【0002】
最近、システム及びソリューションは、インターネットサーフィン及び電子メール等に加えて、電話、テレビ電話、テレビジョンビデオ分配器のような種々のサービスのデジタルエンコード情報のパケットに基づく伝送を提供するために発達している。これらのサービスは、様々な範囲で遅延に影響を受け易く、それ故に適切な伝送機構を選択するために分類されことが多い。電話及びテレビ電話のような最も遅延に影響を受け易い用途は、送信機から受信機へ約200ミリ秒以下の全伝送時間を要求する、リアルタイムサービスと呼ばれることがある。遅延に敏感でない用途、例えばインターネットからホームページのデータをダウンロードするような、は、ベストエフォートサービスと呼ばれ、2,3秒の伝送時間がたいてい許容できる。このようにして伝送手段が共有される時、リアルタイムデータはベストエフォートデータに対して概して優先権を与えられる。
【0003】
伝送する情報は、送信機側でデジタルエンコードされ、コード体系に従って特定のフォーマットのデータユニット、例えばデータパケット又はフレームに合わせられる。データユニットは、例えば種々のネットワーク、スイッチ、ゲートウェイ及びルータを含む、伝送路に沿って伝送ユニットとして扱われる。エンコードされた情報は、受信端で利用者に表示又は再生されるため、送信先で受信される時に、最終的にデコードされる。しかしながら、コード化基準の不一致により、送信及び受信装置は、多くの場合、互いに異なる特定のコード体系を使用することが可能なだけであり、送信機によってエンコードされた情報が、受信相手に達する前にある場所で再コード化される必要がある。この操作は、多くの場合トランスコードと呼ばれる。
【0004】
その上、伝送路に沿った異なるネットワーク及び/又は交換ノードは、異なる基準のフォーマット及びコード体系も使用してしまい、トランスコードの更なる必要性という結果を招く。このようにして伝送データは、最終受信機に達する前に数回再コード化されねばならなくなり得る。リアルタイムサービスに関して、かつある程度のメディアストリーミングサービスに関しても、全伝送路のノード内のトランスコード活動による遅延を最小限に抑えることが望ましい。例えば、200ミリ秒を超える遅延が、2つの当事者間の音声呼び出しにおいて導入されると、対話の流れは、相当に妨げられる。
【0005】
図1は、送信機100及び受信機102の間でデータを転送する代表的な通信概要を図解する。この簡略化された実施例において、ある時点での一方向のみの非対称伝送が考察される。対称伝送に関して、各当事者100及び102は、音声呼び出しのように、送信機及び受信機の両方となることが、当然に可能である。送信機100は、ローカルエリアネットワーク(LAN)、無線ネットワーク等でも良いアクセスネットワーク104に接続される。受信機102も同様に他のアクセスネットワーク106に接続される。各アクセスネットワーク104、106は、インターネット又は公衆交換電話網(PSTN)のような、1つ以上の公衆ネットワークを含み、中間通信システム112で通信するために、更にそれぞれのゲートウェイスイッチ108、110に接続される。
【0006】
送信機100は、伝送するデータをエンコードするために、第1コード体系を使用することが可能である。他方、受信機102は、受信したデータをデコードするために、第2コード体系を使用することが可能で、第2コード体系は、第1と異なる。更に、中間通信システム112は、通信されたデータを転送するために、コード体系が異なるところで、1つ以上の更なるコード体系を使用し得る。このようにして、通信されたデータが、それまで使用されたコード体系とは異なるコード体系を使用する新しいドメインに入る度に、再コード化されねばならないことは、明白である。
【0007】
例えば、トランスコードは、例えば時分割多重化(TDM)を使用するパケット交換ネットワークと回線交換ネットワークの間で行われねばならない。このようにしてデータは、伝送路内で更に伝送される前に受信される前のデータユニットから新規なデータユニットを作成するために、1つ以上のトランスコーダで転送される。ゲートウェイ108、110並びに図1の中間通信システム112内の他の交換ノードは、概して、かかるトランスコーダを含み得る。
【0008】
更に、1つ以上のネットワーク104、112、106が、パケットに基づく伝送を使用するならば、データパケットが間違った順序でトランスコーダで受信される潜在的危険性がある。パケットに基づく伝送で、各データパケットは、個々に処理され、かつ別個の伝送路を取り得、かつ/又は中間ノードで異なる遅延を受け得る。従ってバッファは、異なる遅延を伴って受信されるパケットを補償するために、多くの場合、トランスコーダ及び受信機内に配置され、時にはジッタバッファと呼ばれる。ジッタバッファは、トランスコード又はデコードされる前に順番が決められて配置される複数のデータパケットの受信を可能にする。次にパケットは、必要ならばその順番を再順序付けられる。もう一つの方法は、間違った順序で受信されたパケットを単に破棄することであるが、しかしながら品質劣化という結果を招く。パケットドメイン及びTDMドメインの間の中間ノードの受信機側は、概してジッタバッファを含む。
【0009】
ジッタバッファ技術は、伝送において不要な遅延を招いてしまう欠点を伴う。それは、TDMに基づく伝送が係る時、クロックタイミング基準も必要とする。更に、最終受信機102は、概してジッタバッファ又は類似するデコード機能を含み、伝送データの総待ち時間を増加させる。トランスコード機能は、データを処理し、かつトランスコードを実行するために必要な時間以上の待ち時間を加えるべきでない。しかしながら、あらゆるデータパケットが到着する度に順次トランスコードされるならば、結果として生じる品質は、間違った順序でデータパケットが到着する時に劣化してしまう。特に、多くのコード体系は、特別な大量のデータをデコードする時に履歴データに依存する。すなわち、以前デコードされたデータからの情報が次のデータをデコードするために使用されている。従って、全てのデータは、受信端で高品質を獲得するために、送信エンコーダから出力されたものと同じシーケンス順にデコードされねばならない。
【0010】
以上に概要を説明した欠点を克服し、かつ受信端でデコードされる時に、受信エンコードデータの高品質を達成し、同時に中間トランスコーダ内の伝送遅延を最小限に抑えることが、本発明の目的である。
【発明の開示】
【課題を解決するための手段】
【0011】
これらの目的は、トランスコーダ内の遅延を最小限に抑え、かつジッタバッファの必要性を除去するための単純な解決策によって達成され、その解決策により、間違ったシーケンス順で到着するデータユニットは、遅れて到着するデータを復元することによって補償される。
【0012】
方法及びトランスコーダユニットは、送信機及び最終受信機の間の伝送路内の通信データをトランスコードするために提供される。第1フォーマットでコード化情報を含むデータユニットは、受信され、前のコード化データから抽出された現在のコード化状態に基づき、第2フォーマットで新規なデータユニットにコード化される。新規な現在のコード化状態は、データユニットがコード化される度に、抽出される。
【0013】
各データユニットを受信する時に、受信データが間違ったシーケンス順にあるか検出されるが、これは、受信データのシーケンス順を示す情報を読み取ることによって行われ得る。これが当てはまるのならば、前のコード化データから抽出されたコード化状態は、保存され、新規な擬似コード化状態が、次の受信データユニットをコード化するために抽出される。
【0014】
不足データが、最終的に受信されるならば、それは、保存されたコード化状態に基づき、第2フォーマットにコード化され、コード化された不足データは、有効データとして使用され得る。保存されたコード化状態は、そのときに削除され得る。対応する不足データが、事前設定された時限内に受信されないならば、保存されたコード化状態はまた、削除され得るが、それはデータフロー特性に基づき得る。保存されたデコード状態の数が、事前設定された閾値に達したならば、保存されたコード化状態はまた、削除され得るが、それも同様にデータフロー特性に基づき得る。
【0015】
発明の手順は、受信データユニットをデコードするために使用され得るが、そこではコード化状態はデコード状態であり、かつ第2フォーマットは中間フォーマットである。次に受信データユニットは、新規なデータユニットにエンコードされる中間データセグメントに分割される中間データのストリームにデコードされ得る。
【0016】
発明の手順は、受信データユニットをエンコードするためにも使用され得るが、そこではコード化状態はエンコード状態であり、かつ第1フォーマットは中間フォーマットである。次に受信データユニットは、新規なデータユニットにエンコードされるデコードされた中間データを含み得る。
【0017】
受信データが間違ったシーケンス順にあるならば、誤り補正データが、前に受信したデータユニット及び現在のデコード状態から導き出され得るが、そこで新規な擬似コード化状態は、導き出された誤り補正データに基づいて抽出され得る。
【0018】
発明の手順は、送信機及び最終受信機の間の伝送路内に位置し、かつ手順を実行する手段を有するトランスコーダユニットにおいて実施され得る。
【0019】
発明の手順は、手順を実行するソフトウェアコード手段を含む、トランスコーダユニット内のコンピュータに直接ロード可能なコンピュータプログラム製品においても実施され得る。
【0020】
発明の手順は、あるいは、トランスコーダユニット内のコンピュータに手順を実行させるための読み取り可能なプログラムを含む、コンピュータの使用可能な媒体に記憶されたコンピュータプログラム製品において実施され得る。
【0021】
これから本発明を、より詳細に、図面を参照して記載する。
【発明を実施するための最良の形態】
【0022】
図1は、本発明が実施され得る、送信機100及び受信機102の間でデータを転送する上記の代表的な通信システムを図解する。当然、本発明は、多数の他のタイプの通信システムにも使用され得る。
【0023】
図2は、本発明によるデータをトランスコードする代表的なトランスコーダユニット200内のデータフローの略図である。第1コード体系に従ってエンコードされ、第1フォーマットFを有するデータ202は、データを第2フォーマットF’を有する第2コード体系にトランスコードするトランスコーダユニット200によって受信される。トランスコード方法は、この実施例において2つの操作、デコード操作204及びエンコード操作206に分割される。2つの操作の間に、データは、デコードされた中間フォーマットIF 208にある。しかしながら、いかなる中間フォーマットも使用せずに、第1フォーマットFの入力データ202を直接第2フォーマットF’に再コード化又はトランスコードすることが本発明の範囲内で可能である。データ210は、第2フォーマットF’にコード化された後、伝送路内の、図示されていない次のノードへ更に伝送される。更に、トランスコーダは、以下により詳細に記載する、コード化状態を記憶するメモリ212を含む。
【0024】
概して、入力データは、第1フォーマットFに従ってエンコードされるデータユニット、例えばパケット又はフレーム、にグループ分けされる。入力データは、パケット交換又は回線交換され得る。各入力データユニットは、受信トランスコーダユニット200によって読み取られる、シーケンス番号又はタイムスタンプのようなシーケンス順を示す情報を有するフィールド等を含む。通常、受信データユニットが最初に伝送されたような正しい順序で、かつデータ脱落なしに受信されるならば、そのデータユニットは、操作204において、次のフォーマットIF又はF’に順次デコードされる。
【0025】
この実施例は、図2を更に参照して、図3に図解され、そこにおいてF1、F2、F3...は、トランスコーダユニット200で正しい順序で受信される第1フォーマットFのデータパケット202である。データパケット202は、操作204において、中間フォーマットIFを有する中間データユニット300に別個にデコードされる。各データパケット202をデコードする時、一連の現在履歴デコード状態DS302として図3に示す前のデコード結果からの情報が使用される。デコード状態は、実データ以外に、実行されたデコード操作から抽出され、かつデータの幾つかの特性を反映する変数又はパラメータを含む。
【0026】
このようにして、受信データパケットF1は、前にデコードされたデータパケットのデコード結果、図示されていないが、から抽出される現在デコード状態DS0に基づき中間データユニットIF1にデコードされる204。デコード状態DS0を使用した後、新規なデコード状態DS1が、F1の最新のデコードから抽出される。次のデータパケットF2は、次に、最後のデコード状態DS1等に基づきIF2にデコードされる204。
【0027】
上記の記述において、現実には、パケット長は、異なり得るが、全ての入力データパケットが、等しい大きさを有することが一般的に想定される。その場合に、データは等しい大きさのユニットに再配列され得るが、トランスコード方法は、等しいパケット長を簡略化した場合と同じ原理を使用して扱われ得る。
【0028】
図3に図解するデコード方法は、正しいシーケンス順で受信されたデータパケットに係る。しかしながら、データパケットが、前のシーケンス番号よりも1つだけ増加した高いシーケンス番号を有して受信されるならば、不足パケットが、脱落又は遅延したことが想定され得る。あるいは、パケット順は、タイムスタンプ、又は情報を示す他のいかなる順序によっても示され得る。データパケットが、このようにして不足するならば、受信端での結果として生じる品質劣化を最小限に抑えるために、誤り補正機構が、呼び出され得る。誤り補正機構は、前のデータパケット及び前のデータパケットのデコードから抽出される最新のデコード状態に基づき、誤り補正データを導き出し得る。誤り補正は、実データが利用可能でない時、最も確からしいデータを作成することを試みる周知の手順である。概して誤り補正は、データフォーマットの所定の基準に従って実行され、又は基準が存在しないならば、独自の機構が使用され得る。
【0029】
本発明によれば、データが間違ったシーケンス順で受信される時、誤り補正機構が、呼び出され、かつ不足データパケットが、間違った順序ではあるが、最終的に出て来るならば、誤り補正前の最新のデコード状態が、後で使用されるために保存される。その場合に不足データパケットは、本発明により、保存されたデコード状態に基づきデコードされる。
【0030】
図4は、データパケットが間違ったシーケンス順で受信される時の、本発明による代表的なデコード手順を図解する。第1に、データパケットF1は、最新のデコード状態DS0に基づき中間データユニットIF1にデコードされ204、そこで新規なデコード状態DS1が、図3の前述の実施例のように抽出される。しかしながら、次には、前のシーケンス番号1よりも1つだけ増加した高いシーケンス番号3を有するデータパケットF3が来る。受信データパケットF3のシーケンス番号が誤りである、すなわち予期したよりも高いことを検出すると、誤り補正機構400が、前のデコード状態DS1に基づき、中間フォーマットでの誤り補正データ402を導き出し、新規な擬似デコード状態DS2’を抽出するために呼び出される。誤り補正は、デコード状態が実データが利用可能であるか否かに拘らず抽出され得るデコーダ機能であるので、擬似デコード状態DS2’は、他のデコード状態と同様に抽出され得る。
【0031】
次にデータパケットF3は、新規な擬似デコード状態DS2’に基づき中間データユニットIF3にデコードされる204。更に、前のデコード状態DS1は、トランスコーダユニット200内のメモリ212に保存される。新規なデコード状態DS3も、図示されていないが、次のシーケンス順のデータパケットをデコードする時に、後で使用するためにデータパケットF3のデコード204から抽出される。
【0032】
この実施例において、不足データパケットF2は、次に受信され、保存された前のデコード状態DS1に基づき、中間データユニットIF2にデコードされ得る204。使用された、保存されたデコード状態DS1は、その後にトランスコーダユニット200内のメモリ212から削除され得る。最後に、復元された中間データユニットIF2は、先に導き出された誤り補正データ402に取って代わり、IF1及びIF3の間に正しいシーケンス順で挿入される。しかしながら、不足データパケットF2が、例えば事前設定した時限内に受信されないなら、中間フォーマット208のデータが、トランスコーダユニット200内の第2フォーマットF’にエンコードされるとき206、誤り補正データ402が、有効なままであり得る。
【0033】
このようにして、第1フォーマットFでの1つ以上のデータユニットが、間違った順序でトランスコーダで受信されたとしても、有効にデコードされた中間データユニット300は、第2フォーマットF’に再度エンコードされる前に正しいシーケンス順で配置され得る。更に、この手順は、可能な限り高い品質を維持しながら、最小限の遅延で行われる。
【0034】
以上に記載した図4の実施例は、シーケンス外で受信される1つのデータパケットに関係した。複数のデータパケットが、複数の保存されたデコード状態を使用して、シーケンス外で受信されるならば、対応する手順が行われ得る。更に、保存されたデコード状態は、事前設定した時限に使用されないままであったならば、メモリ212から削除され得る。事前設定した削除時限は、時間が経てば変化する間違ったシーケンス順のデータパケット数などのデータフロー特性次第で更に設定可能であるか、適応性を有している。あるいは、同時に保存されるデコード状態数は、データフロー特性次第で同様に設定可能であるか、適応性を有している事前設定された閾値により最大にされ得る。保存されたデコード状態数が、事前設定された閾値に達したならば、個々の保存されたデコード状態をメモリ212から削除するために、機構が起動され得る。
【0035】
デコード操作204後に、中間データユニット300は、エンコード操作206に入力されるデータ208の連続ストリームに配置される。図2参照。次にトランスコーダユニット200は、データの利用可能性次第で、新規な第2コード体系又はフォーマットF’に従ってパケット、フレーム又はブロックのような新規なデータユニット、すなわち所定サイズのデータ部分に、中間データ208をエンコードする。中間データ208が、現在利用可能でないならば、エンコード方法は、利用可能になるまで単に延期され得る。第2フォーマットF’での新規なデータユニットは、最終的に、伝送路内の次のノードに伝送される。
【0036】
図5は、前のデコード操作204からの中間データユニットIF1、IF2、IF3...を含む中間データストリーム208のための本発明によるエンコード手順を図解する。第1に、中間データが受信され、第2フォーマットF’にエンコードされるために、必要ならば、新規な中間データセグメントS1、S2、S3...500に配置され得る。図中、垂直な破線によって示される新規な中間データセグメント500の大きさは、この実施例において、デコード操作204に由来する中間データユニット300の大きさと異なる。次に各新規な中間データセグメント又はユニット500は、前のエンコード操作から抽出される現在のエンコード状態ES 502に基づき、第2フォーマットF’の新規なデータユニット506にエンコードされる206。エンコード状態は、実データ以外に、実行されるエンコード操作から抽出され、かつデータをエンコードするために使用される変数又はパラメータを含む。
【0037】
このようにして、中間データセグメントS1は、図示されない、前にエンコードされた新規なデータパケットから抽出される最後のエンコード状態ES0に基づき、新規なデータユニットF’1にエンコードされる206。エンコード状態ES0を使用した後、新規なエンコード状態ES1が、F’1の最新のエンコードから抽出される。次の中間データセグメント又はユニットS2は、次に、最後のデコード状態DS1等に基づき、F’2にエンコードされる206。
【0038】
正しいシーケンス順の入力データパケット又はユニットが利用できなかった時、中間データユニット300は、「良好なデータ」が入力データパケット又はユニットのペイロードから直接作成され、かつ「誤り補正データ」が誤り補正機構400を使用することにより、最新のデコード状態から導き出されるように、それらの内容の性質に従って分類され得る。図5の実施例において、IF1及びIF2は「良好なデータ」を含み、一方でIF3は、斜線で示す図中の「誤り補正データ」を含む。従って、セグメントS1及びS2は、「良好なデータ」のみを含むが、セグメントS3及びS4は、中間データユニット300と中間データセグメント500との大きさの違いによる結果として、「良好なデータ」及び「誤り補正データ」の両方を含む。
【0039】
本発明の一局面によれば、中間データセグメント500は、データの分類次第で異なって処理され得る。このようにして、セグメント500が、少なくとも幾つかの「良好なデータ」を含むならば、セグメントは、エンコードされ、新規なエンコード状態がそれに応じて抽出される。図5に示す全てのセグメントS1−S4に関して、このことが当てはまる。
【0040】
しかしながら、セグメント全体が、「良好なデータ」を含まないならば、すなわち「誤り補正データ」のみを含むならば、セグメントは、単に破棄され、少なくとも部分的に「良好なデータ」から抽出される最新のエンコード状態が、保存される。このことは、図6aに図解され、そこにおいて「良好なデータ」を含むセグメントS1は、新規なデータユニットF’1にエンコードされ、新規なエンコード状態ES1が抽出される。次のセグメントS2は、「誤り補正データ」を含み、かつ「良好なデータ」を含まず、このことは図中の斜線によって示されるが、従って破棄される600。1つの新規なデータユニットがその結果、失われたと考えられる。最新のエンコード状態ES1は、不足データが最終的に到着するならば、後で使用するために保存される。
【0041】
図6bを参照して、「良好なデータ」を含むセグメントS1は、新規なデータユニットF’1にエンコードされ、ちょうど図6aの実施例のように、新規なエンコード状態ES1が抽出される。次に到着するセグメントS2は、「誤り補正データ」を含み、かつ「良好なデータ」を含まず、図中の斜線によって再び示される。他の実施態様によれば、セグメントS2は、利用可能な誤り補正データに基づき、擬似データユニット602に最初にエンコードされ、それは次に破棄される600。この場合、新規な擬似エンコード状態ES2’は、図示されていないが、S2のエンコードから抽出され、次のセグメントをエンコードするために使用される。この実施例において、不足データは最終的に、先に保存されたエンコード状態ES1に基づき、新規な有効データユニットF’2にエンコードされ、セグメントS4により遅く到着する。セグメントS1−S4のシーケンス順は、説明する目的で中間データストリームの分割から選択され、かつ実データのシーケンス順と混同されるべきでないことが注目されるべきである。このようにして、この実施例において、セグメントS4は、セグメントS2に含まれるべきであったデータを含む。
【0042】
次に復元された新規なデータユニットF’2は、伝送路内の次のノードに伝送され得る。更に、最終受信機は、多くの場合、デコードする前に正しいデータユニット順を復元することが可能なので、F’2を間違ったシーケンス位置、この場合F’3の後に送信することが可能である。
【0043】
図6bに関連した上記に記載の手順は、複数の保存されたエンコード状態を使用して、シーケンス外に到着する複数のセグメントに対しても実行され得る。その上、複数のデコード状態を保存するための上記に記載されたものと同じ機構が、複数のエンコード状態を保存するためにも、一般的に適用され得る。
【0044】
以上に記載した実施例は、第1フォーマットから中間フォーマットへの受信データを最初にデコードし、次に伝送のために、中間データを第2フォーマットにエンコードする2つの別個の操作を含む。しかしながら、本発明は、中間フォーマットを使用せずに、第1フォーマットの入力データを、直接第2フォーマットへ再コード化するためにも使用され得る。
【0045】
図7は、データユニットが間違ったシーケンス順で受信される時の、再コード化、又はトランスコード手順の本発明による最も一般的な場合を図解する。一般的に、F1、F2、F3...は、第1フォーマットFを有する入力データユニット700を示す。データユニット700は、第2フォーマットF’を有する、図中で一般的にF’1、F’2、F’3...と示される、新規なデータユニット704に操作702において別個にコード化される。「コード化」という表現は、デコード、トランスコード又はエンコードのいずれかを示すためにここでは使用される。各入力データユニット700をコード化する時、一連の現在履歴コード化状態CS706として図7に示される前のコード化結果からの情報が使用される。
【0046】
このようにして、第1フォーマットFのデータユニットF1は、現在コード化状態CS0に基づき、第2フォーマットF’の新規なデータユニットF’1にコード化され702、そこにおいて新規なコード化状態CS1が抽出される。次に受信されるデータユニットF3は、前のシーケンス番号1より1つだけ増加した高いシーケンス番号3を含む。受信データユニットF3のシーケンス番号が予期したよりも高いことを検出すると、第2フォーマットF’の擬似データ708が、新規な擬似コード化状態CS2’を抽出するために現在のコード化状態CS1に基づき作成される。次にデータユニットF3は、擬似コード化状態CS2’に基づき、新規なデータユニットF’3にコード化される702。更に、前のコード化状態CS1が、メモリ212に保存される。新規なコード化状態CS3もデータユニットF3のコード化702から新規なデータユニットF’3に抽出される。
【0047】
不足データユニットF2は、次に受信され、保存された前のコード化状態CS1に基づき、新規なデータユニットF’2にコード化され得る702。使用された、保存されたコード化状態CS1は、その後にメモリ212から削除され得る。最後に、復元されたデータユニットF’2は、有効なデータとして使用され、先に作成された擬似データ708は、破棄される。しかしながら、不足データユニットF2が、事前設定された時限内に受信されないならば、擬似データ708は、その実施次第で、有効データとして使用され得るか、又は破棄され得る。
【0048】
以上に記載したような本発明を使用することにより、伝送データの高品質を維持しながら、トランスコーダ内の遅延は、最小限に抑えられ、かつジッタバッファの必要性は、除去される。具体的には、間違ったシーケンス順で到着するデータユニットは、本発明により、遅く到着するデータを復元することによって補償される。本発明は、音声トランスコードに使用されることを第1に目指すが、例えばファックストランスコード、モデムデータ又はパケットに基づくビデオ信号にも使用され得る。
【0049】
発明の方法は、トランスコーダユニット200内のコンピュータに直接ロード可能な、又はコンピュータの使用可能な媒体に記憶されるコンピュータプログラム製品内に含まれるソフトウェアコードにおいて実施され得る。
【0050】
本発明は、特定の代表的な実施態様を参照して記載されたが、記載は、発明の概念を説明することのみが意図されており、かつ本発明の範囲を限定するように取られるべきでない。種々の代替物、修正及び同等物が、添付の特許請求の範囲によって定義される、本発明の精神から逸脱することなく使用され得る。
【図面の簡単な説明】
【0051】
【図1】データを転送するための代表的な通信システムの略図
【図2】トランスコーダ内のデータフローの略図
【図3】正しい順序で到着するデータパケットのデコードを図解する論理図式
【図4】データパケットが間違った順序で到着する時のデータのデコードを図解する論理図式
【図5】中間データのエンコードを図解する論理図式
【図6】データユニットが脱落する時のデータのエンコードを図解する論理図式(a)と不足データが遅く到着する時のデータのエンコードを図解する論理図式(b)
【図7】データユニットが間違った順序で到着する時のデータのトランスコードを全般的に図解する論理図式
【符号の説明】
【0052】
100 送信機
102 最終受信機
200 トランスコーダユニット
202 データユニット
204 コード化
206 コード化
208 中間データ
300 データユニット
302 コード化状態
402 誤り補正データ
500 データユニット
502 コード化状態
506 データユニット
700 データユニット
702 コード化
704 データユニット
706 コード化状態
CS2’ 擬似コード化状態
DS1 現在のデコード状態
DS2’ 擬似コード化状態
ES2’ 擬似コード化状態
F 第1フォーマット
F’ 第2フォーマット
F2 不足データ
F’2 コード化された不足データ
F3 受信データユニット
IF 中間フォーマット
IF2 コード化された不足データ
S3 受信データユニット
S4 不足データ
【Technical field】
[0001]
The present invention relates to a method and an apparatus for transferring a data unit from a transmitter to a receiver. In particular, the invention relates to compensating for missing or out-of-order data units received by the transcoder.
[Background Art]
[0002]
Recently, systems and solutions have evolved to provide packet-based transmission of digitally encoded information for various services such as telephones, videophones, television video distributors, as well as Internet surfing and e-mail. I have. These services are susceptible to delays in various ranges and are therefore often classified to select an appropriate transmission mechanism. The most delay-sensitive applications, such as telephones and videophones, are sometimes referred to as real-time services, which require a total transmission time of less than about 200 milliseconds from the transmitter to the receiver. Applications that are not delay sensitive, such as downloading home page data from the Internet, are referred to as best effort services, and transmission times of a few seconds are usually acceptable. In this way, when transmission means are shared, real-time data is generally given priority over best-effort data.
[0003]
The information to be transmitted is digitally encoded on the transmitter side and is tailored to data units of a particular format, for example data packets or frames, according to a coding scheme. Data units are treated as transmission units along a transmission path, including, for example, various networks, switches, gateways, and routers. The encoded information is displayed or played back to the user at the receiving end, so that when it is received at the destination, it is finally decoded. However, due to mismatching of the coding criteria, the transmitting and receiving devices can often only use specific coding schemes which are different from each other, so that the information encoded by the transmitter is Need to be re-coded at the location. This operation is often called transcoding.
[0004]
Moreover, different networks and / or switching nodes along the transmission line also use different standard formats and coding schemes, resulting in a further need for transcoding. In this way, the transmitted data may have to be recoded several times before reaching the final receiver. For real-time services and also for some media streaming services, it is desirable to minimize delays due to transcoding activity within nodes on all transmission paths. For example, if a delay of more than 200 milliseconds is introduced in a voice call between two parties, the flow of the dialogue will be significantly hindered.
[0005]
FIG. 1 illustrates a typical communication scheme for transferring data between a transmitter 100 and a receiver 102. In this simplified embodiment, an asymmetric transmission in only one direction at a time is considered. With symmetric transmission, it is of course possible for each party 100 and 102 to be both a transmitter and a receiver, such as a voice call. The transmitter 100 is connected to an access network 104, which may be a local area network (LAN), a wireless network, or the like. Receiver 102 is similarly connected to another access network 106. Each access network 104, 106 includes one or more public networks, such as the Internet or the Public Switched Telephone Network (PSTN), and further connects to respective gateway switches 108, 110 for communicating with the intermediate communication system 112. Is done.
[0006]
The transmitter 100 can use the first coding scheme to encode the data to be transmitted. On the other hand, receiver 102 can use a second coding scheme to decode the received data, where the second coding scheme is different from the first. Further, the intermediate communication system 112 may use one or more additional coding schemes where the coding schemes are different to transfer the communicated data. Thus, it is clear that each time the communicated data enters a new domain that uses a coding scheme different from the coding scheme used previously, it must be re-coded.
[0007]
For example, transcoding must occur between a packet-switched network and a circuit-switched network using, for example, time division multiplexing (TDM). In this way, data is transferred by one or more transcoders to create new data units from previously received data units before being further transmitted in the transmission path. The gateways 108, 110 and other switching nodes in the intermediate communication system 112 of FIG. 1 may generally include such transcoders.
[0008]
Furthermore, if one or more networks 104, 112, 106 use packet-based transmission, there is a potential risk that data packets will be received at the transcoder in the wrong order. With packet-based transmission, each data packet can be processed individually and take a separate transmission path and / or experience different delays at intermediate nodes. Thus, buffers are often located in transcoders and receivers to compensate for packets received with different delays, sometimes referred to as jitter buffers. The jitter buffer allows the reception of a plurality of data packets that are ordered and arranged before being transcoded or decoded. The packets are then reordered if necessary. Another approach is to simply discard the packets received out of order, but with the consequence of quality degradation. The receiver side of the intermediate node between the packet domain and the TDM domain generally includes a jitter buffer.
[0009]
Jitter buffer technology has the disadvantage of introducing unnecessary delay in transmission. It also requires a clock timing reference when TDM based transmission is involved. Further, the final receiver 102 generally includes a jitter buffer or similar decoding function to increase the total latency of the transmitted data. The transcoding function should not add more latency than is necessary to process the data and perform the transcoding. However, if every data packet is transcoded sequentially as it arrives, the resulting quality will degrade when the data packets arrive out of order. In particular, many coding schemes rely on historical data when decoding special large amounts of data. That is, information from previously decoded data is used to decode the next data. Therefore, all data must be decoded in the same sequence as that output from the transmitting encoder in order to obtain high quality at the receiving end.
[0010]
It is an object of the present invention to overcome the drawbacks outlined above and to achieve high quality of the received encoded data when decoded at the receiving end, while at the same time minimizing the transmission delay in the intermediate transcoder. It is.
DISCLOSURE OF THE INVENTION
[Means for Solving the Problems]
[0011]
These objectives are achieved by a simple solution to minimize the delay in the transcoder and eliminate the need for a jitter buffer, which ensures that data units arriving in the wrong sequence order , By recovering the data that arrives late.
[0012]
A method and a transcoder unit are provided for transcoding communication data in a transmission path between a transmitter and a final receiver. A data unit containing coded information in the first format is received and coded in the second format into a new data unit based on the current coding state extracted from the previous coded data. The new current encoding state is extracted each time a data unit is encoded.
[0013]
Upon receiving each data unit, it is detected whether the received data is in the wrong sequence order, which can be done by reading information indicating the sequence order of the received data. If this is the case, the coded state extracted from the previous coded data is saved and a new pseudo coded state is extracted to code the next received data unit.
[0014]
If the missing data is finally received, it is coded into a second format based on the saved coding state, and the coded missing data can be used as valid data. The saved coding state can then be deleted. If the corresponding missing data is not received within a preset time limit, the saved coding state may also be deleted, but it may be based on data flow characteristics. If the number of saved decoding states reaches a preset threshold, the saved coding states can also be deleted, but also based on data flow characteristics.
[0015]
The inventive procedure can be used to decode the received data unit, where the encoding state is the decoding state and the second format is the intermediate format. The received data unit may then be decoded into a stream of intermediate data that is split into intermediate data segments that are encoded into new data units.
[0016]
The inventive procedure can also be used to encode received data units, where the encoding state is the encoding state and the first format is the intermediate format. The received data unit may then include the decoded intermediate data encoded into a new data unit.
[0017]
If the received data is in the wrong sequence order, error correction data can be derived from the previously received data unit and the current decoding state, where the new pseudo-coding state is based on the derived error correction data. Can be extracted.
[0018]
The inventive procedure can be implemented in a transcoder unit located in the transmission path between the transmitter and the final receiver and having means for performing the procedure.
[0019]
The inventive procedure may also be embodied in a computer program product loadable directly on a computer in the transcoder unit, including software code means for performing the procedure.
[0020]
The inventive procedures may alternatively be embodied in a computer program product stored on a computer usable medium, including a readable program for causing a computer in a transcoder unit to perform the procedures.
[0021]
The invention will now be described in more detail with reference to the drawings.
BEST MODE FOR CARRYING OUT THE INVENTION
[0022]
FIG. 1 illustrates the exemplary communication system described above for transferring data between a transmitter 100 and a receiver 102 in which the present invention may be implemented. Of course, the present invention may be used for many other types of communication systems.
[0023]
FIG. 2 is a schematic diagram of the data flow in an exemplary transcoder unit 200 for transcoding data according to the present invention. Data 202 encoded according to a first coding scheme and having a first format F is received by a transcoder unit 200 that transcodes the data into a second coding scheme having a second format F ′. The transcoding method is divided in this embodiment into two operations, a decode operation 204 and an encode operation 206. Between the two operations, the data is in the decoded intermediate format IF 208. However, it is possible within the scope of the invention to recode or transcode the input data 202 of the first format F directly into the second format F 'without using any intermediate format. After being encoded in the second format F ′, the data 210 is further transmitted to the next node (not shown) in the transmission path. In addition, the transcoder includes a memory 212 for storing coding states, described in more detail below.
[0024]
Generally, input data is grouped into data units, eg, packets or frames, that are encoded according to a first format F. Input data can be packet-switched or circuit-switched. Each input data unit includes a field or the like, which is read by the receiving transcoder unit 200 and has information indicating a sequence order such as a sequence number or a time stamp. Normally, if the received data units are received in the correct order as transmitted first and without data loss, the data units are sequentially decoded in operation 204 to the next format IF or F '.
[0025]
This embodiment is further illustrated in FIG. 3 with further reference to FIG. 2, where F1, F2, F3. . . Is a first format F data packet 202 received in the correct order by the transcoder unit 200. Data packet 202 is separately decoded in operation 204 into an intermediate data unit 300 having an intermediate format IF. When decoding each data packet 202, information from the previous decode result shown in FIG. 3 is used as a series of current history decode states DS302. The decode state includes, besides the actual data, variables or parameters that are extracted from the performed decode operation and reflect some characteristic of the data.
[0026]
In this manner, the received data packet F1 is decoded 204 into the intermediate data unit IF1 based on the decoding result of the previously decoded data packet, not shown, but based on the current decoding state DS0 extracted from the data packet. After using the decode state DS0, a new decode state DS1 is extracted from the latest decode of F1. The next data packet F2 is then decoded 204 to IF2 based on the last decoding state DS1 and the like.
[0027]
In the above description, it is generally assumed that all input data packets have the same size, although in reality the packet lengths may vary. In that case, the data may be reordered into equally sized units, but the transcoding method may be handled using the same principles as simplifying equal packet lengths.
[0028]
The decoding method illustrated in FIG. 3 involves data packets received in the correct sequence order. However, if a data packet is received with a higher sequence number increased by one from the previous sequence number, it may be assumed that the missing packet has been dropped or delayed. Alternatively, the packet order may be indicated by a time stamp or any other order that indicates information. If data packets are short in this way, an error correction mechanism may be invoked to minimize the resulting quality degradation at the receiving end. The error correction mechanism may derive error correction data based on the previous data packet and the latest decoding state extracted from the decoding of the previous data packet. Error correction is a well-known procedure that attempts to create the most likely data when the actual data is not available. In general, error correction is performed according to predetermined criteria of the data format, or if no criteria exist, a proprietary mechanism may be used.
[0029]
According to the present invention, when data is received in the wrong sequence order, an error correction mechanism is invoked, and if the missing data packets are in the wrong order but eventually come out, the error correction The previous most recent decode state is saved for later use. In this case, the missing data packet is decoded according to the invention based on the stored decoding state.
[0030]
FIG. 4 illustrates an exemplary decoding procedure according to the present invention when data packets are received in the wrong sequence order. First, the data packet F1 is decoded 204 into an intermediate data unit IF1 based on the latest decoding state DS0, where a new decoding state DS1 is extracted as in the previous embodiment of FIG. However, next comes a data packet F3 having a high sequence number 3 which is increased by one from the previous sequence number 1. Upon detecting that the sequence number of the received data packet F3 is erroneous, that is, higher than expected, the error correction mechanism 400 derives error correction data 402 in an intermediate format based on the previous decoding state DS1, and generates a new Called to extract the pseudo decode state DS2 '. Since the error correction is a decoder function whose decoding state can be extracted irrespective of whether or not actual data is available, the pseudo decoding state DS2 'can be extracted similarly to other decoding states.
[0031]
Next, the data packet F3 is decoded 204 into an intermediate data unit IF3 based on the new pseudo decode state DS2 '. Further, the previous decoding state DS1 is stored in the memory 212 in the transcoder unit 200. The new decode state DS3 is also extracted, but not shown, from the decode 204 of the data packet F3 for later use when decoding the next sequence of data packets.
[0032]
In this embodiment, the missing data packet F2 may be decoded 204 into an intermediate data unit IF2 based on the previous received and stored previous decoding state DS1. The used saved decoding state DS1 may be subsequently deleted from the memory 212 in the transcoder unit 200. Finally, the recovered intermediate data unit IF2 replaces the previously derived error correction data 402 and is inserted between IF1 and IF3 in the correct sequence order. However, if the missing data packet F2 is not received, for example, within a preset time period, when the data in the intermediate format 208 is encoded 206 into the second format F ′ in the transcoder unit 200, the error correction data 402 May remain valid.
[0033]
In this way, even if one or more data units in the first format F are received by the transcoder in the wrong order, the effectively decoded intermediate data unit 300 will again be in the second format F '. They can be placed in the correct sequence order before being encoded. Furthermore, this procedure is performed with minimal delay while maintaining the highest possible quality.
[0034]
The embodiment of FIG. 4 described above involved one data packet received out of sequence. If multiple data packets are received out of sequence using multiple stored decoding states, a corresponding procedure may be performed. In addition, the saved decode state may be deleted from memory 212 if left unused for a preset time period. The preset deletion time limit may be further configurable or adaptive depending on data flow characteristics such as the number of data packets in the wrong sequence that changes over time. Alternatively, the number of simultaneously stored decode states can be similarly set depending on the data flow characteristics, or can be maximized by a preset threshold that is adaptive. If the number of saved decode states reaches a preset threshold, a mechanism may be invoked to delete individual saved decode states from memory 212.
[0035]
After the decoding operation 204, the intermediate data unit 300 is arranged in a continuous stream of data 208 input to the encoding operation 206. See FIG. The transcoder unit 200 then converts the intermediate data into new data units, such as packets, frames or blocks, ie data parts of a predetermined size, according to a new second coding scheme or format F ′, depending on the availability of the data. Encode 208. If the intermediate data 208 is not currently available, the encoding method may simply be deferred until it becomes available. The new data unit in the second format F 'is finally transmitted to the next node in the transmission path.
[0036]
FIG. 5 shows the intermediate data units IF1, IF2, IF3. . . 5 illustrates an encoding procedure according to the invention for an intermediate data stream 208 comprising First, new intermediate data segments S1, S2, S3... Are required, if necessary, to be received and encoded in a second format F '. . . 500. In the figure, the size of the new intermediate data segment 500, indicated by the vertical dashed line, differs in this embodiment from the size of the intermediate data unit 300 resulting from the decoding operation 204. Each new intermediate data segment or unit 500 is then encoded 206 into a new data unit 506 in the second format F ′ based on the current encoding state ES 502 extracted from the previous encoding operation. The encoding state includes, besides the actual data, variables or parameters extracted from the encoding operation to be performed and used to encode the data.
[0037]
In this way, the intermediate data segment S1 is encoded 206 into a new data unit F′1 based on the last encoding state ES0 extracted from the previously encoded new data packet, not shown. After using the encoding state ES0, a new encoding state ES1 is extracted from the latest encoding of F′1. The next intermediate data segment or unit S2 is then encoded 206 into F'2 based on the last decoding state DS1 etc.
[0038]
When an input data packet or unit in the correct sequence order is not available, the intermediate data unit 300 is such that "good data" is created directly from the payload of the input data packet or unit, and "error correction data" is the error correction mechanism. By using 400, it can be classified according to the nature of its content, as derived from the latest decoding state. In the embodiment of FIG. 5, IF1 and IF2 include "good data", while IF3 includes "error correction data" in the hatched diagram. Thus, segments S1 and S2 contain only "good data", while segments S3 and S4 contain "good data" and "good data" as a result of the difference in size between intermediate data unit 300 and intermediate data segment 500. Error correction data ".
[0039]
According to one aspect of the invention, intermediate data segment 500 may be treated differently depending on the classification of the data. Thus, if segment 500 contains at least some "good data", the segment is encoded and the new encoding state is extracted accordingly. This is true for all segments S1-S4 shown in FIG.
[0040]
However, if the entire segment does not contain "good data", i.e., only contains "error correction data", then the segment is simply discarded and at least partially extracted from the "good data". Is saved. This is illustrated in FIG. 6a, where the segment S1 containing "good data" is encoded into a new data unit F'1 and a new encoding state ES1 is extracted. The next segment S2 contains "error correction data" and does not contain "good data", which is indicated by the diagonal lines in the figure, but is therefore discarded 600. One new data unit is As a result, it is considered lost. The latest encoding state ES1 is saved for later use if the missing data finally arrives.
[0041]
Referring to FIG. 6b, a segment S1 containing "good data" is encoded into a new data unit F'1, and a new encoding state ES1 is extracted, just as in the embodiment of FIG. 6a. The next arriving segment S2 contains "error correction data" and does not contain "good data" and is again shown by the hatched lines in the figure. According to another embodiment, based on the available error correction data, segment S2 is first encoded into pseudo data unit 602, which is then discarded 600. In this case, a new pseudo-encoding state ES2 ', not shown, is extracted from the encoding of S2 and used to encode the next segment. In this embodiment, the missing data is finally encoded into a new valid data unit F′2 based on the previously saved encoding state ES1, arriving later at segment S4. It should be noted that the sequence order of the segments S1-S4 was selected from the division of the intermediate data stream for the purpose of explanation and should not be confused with the sequence order of the actual data. Thus, in this example, segment S4 contains the data that should have been included in segment S2.
[0042]
Next, the restored new data unit F'2 can be transmitted to the next node in the transmission path. Furthermore, the final receiver can often restore the correct data unit order before decoding, so that F'2 can be transmitted after the wrong sequence position, in this case F'3. .
[0043]
The procedure described above in connection with FIG. 6b may also be performed for multiple segments arriving out of sequence using multiple stored encoding states. Moreover, the same mechanism for storing multiple decoding states as described above may be generally applied for storing multiple encoding states.
[0044]
The embodiment described above involves two separate operations of first decoding the received data from the first format to the intermediate format and then encoding the intermediate data to the second format for transmission. However, the invention can also be used to recode input data of a first format directly into a second format without using an intermediate format.
[0045]
FIG. 7 illustrates the most general case according to the invention of a recoding or transcoding procedure when data units are received in the wrong sequence order. Generally, F1, F2, F3. . . Indicates an input data unit 700 having a first format F. The data unit 700 has a second format F ', generally F'1, F'2, F'3. . . , Are separately coded in operation 702 into a new data unit 704. The expression "coding" is used herein to indicate either decoding, transcoding or encoding. When encoding each input data unit 700, information from the previous encoding result shown in FIG. 7 is used as a series of current history encoding states CS706.
[0046]
In this way, the data unit F1 of the first format F is coded 702 into a new data unit F'1 of the second format F 'based on the current coding state CS0, where the new coding state CS1 Is extracted. The next received data unit F3 contains a higher sequence number 3 by one than the previous sequence number 1. Upon detecting that the sequence number of the received data unit F3 is higher than expected, the pseudo data 708 in the second format F 'is based on the current coding state CS1 to extract a new pseudo coding state CS2'. Created. Next, the data unit F3 is encoded 702 into a new data unit F'3 based on the pseudo-coded state CS2 '. Further, the previous coding state CS1 is stored in the memory 212. The new coding state CS3 is also extracted from the coding 702 of the data unit F3 into a new data unit F'3.
[0047]
The missing data unit F2 may then be encoded 702 into a new data unit F′2 based on the previous received and saved encoding state CS1. The used saved coding state CS1 can be subsequently deleted from the memory 212. Finally, the restored data unit F'2 is used as valid data, and the previously created pseudo data 708 is discarded. However, if missing data unit F2 is not received within a preset time period, pseudo data 708 may be used as valid data or discarded, depending on its implementation.
[0048]
By using the present invention as described above, the delay in the transcoder is minimized and the need for a jitter buffer is eliminated, while maintaining high quality of the transmitted data. Specifically, data units arriving in the wrong sequence order are compensated for by recovering late arriving data in accordance with the present invention. The invention is primarily aimed at being used for voice transcoding, but could also be used for video signals based on, for example, fax transcoding, modem data or packets.
[0049]
The inventive method may be implemented in software code contained in a computer program product that can be directly loaded on a computer in transcoder unit 200 or stored on a computer usable medium.
[0050]
Although the present invention has been described with reference to certain exemplary embodiments, the description is intended only to illustrate the concepts of the invention and should be taken to limit the scope of the invention. Not. Various alternatives, modifications and equivalents may be used without departing from the spirit of the invention, as defined by the appended claims.
[Brief description of the drawings]
[0051]
FIG. 1 is a schematic diagram of an exemplary communication system for transferring data.
FIG. 2 is a schematic diagram of a data flow in a transcoder.
FIG. 3 is a logic diagram illustrating the decoding of data packets arriving in the correct order.
FIG. 4 is a logic diagram illustrating decoding of data when data packets arrive out of order.
FIG. 5 is a logic diagram illustrating the encoding of intermediate data.
FIG. 6A is a logic diagram illustrating the encoding of data when a data unit is dropped, and FIG. 6B is a logic diagram illustrating encoding of data when missing data arrives late.
FIG. 7 is a logic diagram generally illustrating the transcoding of data when data units arrive out of order.
[Explanation of symbols]
[0052]
100 transmitter
102 Final receiver
200 transcoder unit
202 data units
204 coding
206 Coding
208 Intermediate data
300 data units
302 Encoding state
402 Error correction data
500 data units
502 Encoding state
506 data unit
700 data units
702 coding
704 data unit
706 coded state
CS2 'pseudo-coded state
DS1 Current decoding status
DS2 'pseudo-coded state
ES2 'pseudo-coded state
F 1st format
F '2nd format
F2 missing data
F'2 coded missing data
F3 Receive data unit
IF intermediate format
IF2 coded missing data
S3 Receive data unit
S4 Missing data

Claims (18)

‐A)第1フォーマット(F、IF)でコード化情報を含むデータユニット(202、500、700)を受信するステップと、
‐B)前のコード化データから抽出された現在のコード化状態(302、502、706)に基づき、第2フォーマット(IF、F’)で、前記受信データユニット(202、500、700)を新規なデータユニット(300、506、704)にコード化する(204、206、702)ステップと、
‐C)データユニット(202、500、700)がコード化される度に、新規な現在のコード化状態(302、502、706)を抽出するステップと、を含む送信機(100)と最終受信機(102)の間の伝送路内で通信データをトランスコードする方法であって、
‐D)受信データが間違ったシーケンス順にあるかを検出するステップと、間違ったシーケンス順にあるならば、
‐E)前記前のコード化データから抽出されたコード化状態(302、502、706)を保存し、次の受信データユニット(202、500、700)をコード化するために新規な擬似コード化状態(DS2’、ES2’、CS2’)を抽出するステップと、を有することを特徴とする方法。
-A) receiving a data unit (202, 500, 700) including coding information in a first format (F, IF);
-B) the received data units (202, 500, 700) in a second format (IF, F ') based on the current coding state (302, 502, 706) extracted from the previous coded data Encoding (204, 206, 702) into new data units (300, 506, 704);
-C) extracting a new current coding state (302, 502, 706) each time the data unit (202, 500, 700) is coded; Transcoding communication data in a transmission path between the devices (102),
-D) detecting whether the received data is in the wrong sequence order; and
-E) a new pseudo-coding to save the coding state (302, 502, 706) extracted from said previous coded data and to code the next received data unit (202, 500, 700) Extracting the states (DS2 ', ES2', CS2 ').
‐F)不足データ(F2、S4)を受信するステップと、
‐G)前記不足データ(F2、S4)を、前記保存されたコード化状態(302、502、706)に基づき、前記第2フォーマット(IF、F’)にコード化するステップと、
‐H)前記コード化された不足データ(IF2、F’2)を、有効データとして使用するステップと、を有することを特徴とする請求項1に記載の方法。
-F) receiving missing data (F2, S4);
-G) coding the missing data (F2, S4) into the second format (IF, F ') based on the stored coding state (302, 502, 706);
-H) using the coded missing data (IF2, F'2) as valid data.
前記保存されたコード化状態(302、502、706)は、ステップG)の後で削除されることを特徴とする請求項2に記載の方法。The method of claim 2, wherein the saved coded state (302, 502, 706) is deleted after step G). 対応する前記不足データが、事前設定された時限内に受信されないならば、前記保存されたコード化状態(302、502、706)は、削除されることを特徴とする請求項1に記載の方法。The method of claim 1, wherein the stored coded state (302, 502, 706) is deleted if the corresponding missing data is not received within a preset time period. . 前記事前設定された時限は、データフロー特性に基づくことを特徴とする請求項4に記載の方法。The method of claim 4, wherein the preset time period is based on data flow characteristics. 保存されたデコード状態の数が、事前設定された閾値に達したならば、前記保存されたコード化状態(302、502、706)は、削除されることを特徴とする請求項1に記載の方法。The method of claim 1, wherein the stored coding states (302, 502, 706) are deleted if a number of stored decoding states reaches a preset threshold. Method. 前記事前設定された閾値は、データフロー特性に基づくことを特徴とする請求項6に記載の方法。The method of claim 6, wherein the preset threshold is based on data flow characteristics. 前記受信データユニット(202)は、ステップB)でデコードされ、コード化状態はデコード状態(302)であり、かつ前記第2フォーマットは中間フォーマット(IF)であることを特徴とする請求項1から7のいずれかに記載の方法。2. The received data unit (202) is decoded in step B), the coding state is a decoding state (302), and the second format is an intermediate format (IF). 8. The method according to any one of 7. 前記受信データユニット(202)は、中間データセグメント(500)に分割される中間データ(208)のストリームにステップB)でデコードされることを特徴とする請求項8に記載の方法。The method according to claim 8, wherein the received data unit (202) is decoded in step B) into a stream of intermediate data (208) that is divided into intermediate data segments (500). 前記中間データセグメント(500)は、新規なデータユニット(506)にエンコードされることを特徴とする請求項9に記載の方法。The method of claim 9, wherein the intermediate data segment (500) is encoded into a new data unit (506). 前記受信データユニット(500)は、ステップB)でエンコードされ、コード化状態はエンコード状態(502)であり、かつ前記第1フォーマットは中間フォーマット(IF)であることを特徴とする請求項1から7のいずれかに記載の方法。2. The received data unit (500) is encoded in step B), the encoding state is an encoding state (502), and the first format is an intermediate format (IF). 8. The method according to any one of 7. 前記受信データユニット(500)は、新規なデータユニット(506)にステップB)でエンコードされるデコードされた中間データ(208)を含むことを特徴とする請求項11に記載の方法。The method of claim 11, wherein the received data unit (500) comprises decoded intermediate data (208) encoded in step B) into a new data unit (506). ステップE)で抽出された前記新規な擬似コード化状態(DS2’、ES2’、CS2’)は、次の受信データユニット(F3、S3)をコード化するために使用されることを特徴とする請求項1から12のいずれかに記載の方法。The new pseudo-coded state (DS2 ', ES2', CS2 ') extracted in step E) is used for coding the next received data unit (F3, S3). A method according to any of the preceding claims. ステップA)は、前記受信データ(202、500、700、F2、S4)のシーケンス順を示す情報を読み取るステップを含むことを特徴とする請求項1から13のいずれかに記載の方法。14. The method according to claim 1, wherein step A) comprises reading information indicating a sequence order of the received data (202, 500, 700, F2, S4). 受信データが間違ったシーケンス順にあるならば、誤り補正データ(402)が、前記先の受信データユニット及び前記現在のデコード状態(302、DS1)から導き出され、かつ前記新規な擬似コード化状態(DS2’、ES2’、CS2’)は、導き出された前記誤り補正データ(402)に基づいてステップE)で抽出されることを特徴とする請求項1から14のいずれかに記載の方法。If the received data is in the wrong sequence order, error correction data (402) is derived from the previous received data unit and the current decode state (302, DS1) and the new pseudo-coded state (DS2). 15. The method according to any of the preceding claims, wherein ', ES2', CS2 ') are extracted in step E) based on the derived error correction data (402). 前記送信機(100)及び前記最終受信機(102)の間の前記伝送路内に位置し、かつ請求項1から15のいずれかの方法を実行する手段を有するトランスコーダユニット(200)。A transcoder unit (200) located in the transmission path between the transmitter (100) and the final receiver (102) and having means for performing the method of any of the preceding claims. 請求項1から15のいずれかの方法を実行するソフトウェアコード手段を含む、トランスコーダユニット(200)内のコンピュータに直接ロード可能なコンピュータプログラム製品。Computer program product directly loadable on a computer in a transcoder unit (200), comprising software code means for performing the method of any of claims 1 to 15. トランスコーダユニット(200)内のコンピュータに、請求項1から15のいずれかの方法を実行させるための読み取り可能なプログラムを含む、コンピュータの使用可能な媒体に記憶されたコンピュータプログラム製品。A computer program product stored on a computer usable medium comprising a readable program for causing a computer in a transcoder unit (200) to perform the method of any of claims 1 to 15.
JP2002580586A 2001-04-03 2002-03-25 Method and apparatus for transferring data packet in communication network Expired - Fee Related JP4043952B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE0101193A SE0101193D0 (en) 2001-04-03 2001-04-03 A method to compensate for disordered media packets in a packet-to-packet based media transcoder system
SE0102667A SE523417C2 (en) 2001-04-03 2001-08-07 A method and apparatus for transmitting data packets in communication networks
PCT/SE2002/000590 WO2002082755A1 (en) 2001-04-03 2002-03-25 A method and apparatus for transferring data packets in communicaiton networks

Publications (2)

Publication Number Publication Date
JP2004530357A true JP2004530357A (en) 2004-09-30
JP4043952B2 JP4043952B2 (en) 2008-02-06

Family

ID=26655434

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002580586A Expired - Fee Related JP4043952B2 (en) 2001-04-03 2002-03-25 Method and apparatus for transferring data packet in communication network

Country Status (6)

Country Link
EP (1) EP1391091A1 (en)
JP (1) JP4043952B2 (en)
KR (1) KR20040014483A (en)
CA (1) CA2443079A1 (en)
SE (1) SE523417C2 (en)
WO (1) WO2002082755A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006066632A1 (en) * 2004-12-24 2006-06-29 Telecom Italia S.P.A. Media transcoding in multimedia delivery services

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745524A (en) * 1996-01-26 1998-04-28 Motorola, Inc. Self-initialized coder and method thereof
US6975629B2 (en) * 2000-03-22 2005-12-13 Texas Instruments Incorporated Processing packets based on deadline intervals

Also Published As

Publication number Publication date
JP4043952B2 (en) 2008-02-06
CA2443079A1 (en) 2002-10-17
KR20040014483A (en) 2004-02-14
SE0102667L (en) 2002-10-04
WO2002082755A1 (en) 2002-10-17
SE0102667D0 (en) 2001-08-07
EP1391091A1 (en) 2004-02-25
SE523417C2 (en) 2004-04-20

Similar Documents

Publication Publication Date Title
US7301928B2 (en) Wireless packet transfer apparatus and method
US6498865B1 (en) Method and device for control and compatible delivery of digitally compressed visual data in a heterogeneous communication network
US8249112B2 (en) Apparatus and method for coding an information signal into a data stream, converting the data stream and decoding the data stream
US7450601B2 (en) Method and communication apparatus for controlling a jitter buffer
EP1797661B1 (en) Assembling forward error correction frames
KR20070001267A (en) Audio communication method and device
EP1845691B1 (en) Media stream relay device and method
JP4748729B2 (en) Apparatus and method for preparing to transmit data and corresponding products
CN101523822A (en) Voice transmission apparatus
US7450593B2 (en) Clock difference compensation for a network
US7773633B2 (en) Apparatus and method of processing bitstream of embedded codec which is received in units of packets
CN101743724B (en) Method and node for the control of a connection in a communication network
JP2000307637A (en) Multimedia terminal device and inter-network connecting device
JP4043952B2 (en) Method and apparatus for transferring data packet in communication network
Masala et al. Rate-distortion optimized slicing, packetization and coding for error resilient video transmission
JP4400571B2 (en) Coding data processing method and gateway device in connection between different types of communication networks
JP2009111838A (en) Voice data transmission apparatus
JP2002141944A (en) Data transmission system and data transmission method, and program storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050221

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071001

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071024

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071114

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101122

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees