(57)【要約】【課題】  同一のサンプルの有効ビットデータが２つのパケットにまたがることを防止する。【解決手段】  シリアルデータ９をパラレルデータ１１に変換してパケットのペイロード部５２に格納するに際して、ペイロード部５２に格納するパラレルデータを１バイトとした場合、１サンプルの有効ビット数が３のときにはパラレルデータ１１を３つずつ、また、１サンプルの有効ビット数が２又は４のときにはパラレルデータを１つずつ、また、１サンプルの有効ビット数が５のときにはパラレルデータを５つずつペイロード部５２に格納するように決定して、同一のサンプルのビットデータ列が２つのパケットのペイロード部に格納されるのを防止する。また、これらパラレルデータ数の最小公倍数（１５）のパラレルデータ単位でペイロード部に格納するように決定して、１サンプルの有効ビット数がいずれの場合でも上記目的を達成する。【選択図】  図１
2005192031.tif 000002
【特許請求の範囲】
【請求項１】
シリアルデータをパラレルデータに変換して、当該パラレルデータをパケットのペイロード部に格納するパケット変換方法において、
シリアルデータからサンプルを構成する複数のビットデータ列を順次抽出し、抽出されたビットデータ列を所定ビット数のパラレルデータに変換して当該パラレルデータをペイロード部に格納するに際し、
１サンプルを構成するビット数とパラレルデータのビット数との関係から、各サンプルのビットデータ列の並びを保持するために同一のペイロード部に格納するパラレルデータの数を決定することを特徴とするシリアルデータのパケット変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シリアルデータをパラレルデータに変換してパケットのペイロード部に格納する技術に関し、例えば、国際規格団体である国際電気通信連合（ＩＴＵ-Ｔ）で勧告された音声圧縮符号化方式の１つであるＧ．７２６符号化方式で符号化した音声データストリームをネットワークを使って伝送するためのＩＰ（Internet Protocol）パケットのペイロード部に格納する際に用いて好適な技術に関する。
【背景技術】
【０００２】
例えば、音声データをネットワークを使って伝送するには、限られた帯域を効率良く使うために、デジタル化した音声データを圧縮符号化して生成したデータストリームをＩＰパケットに変換する必要がある。ＩＰパケットのフォーマットについてはインターネットに関連する標準文書「ＲＦＣ（Request for Comments）」のＲＦＣ１８８９及びＲＦＣ１８９０で記述されており、デファクトスタンダードになっている。
図５にＵＤＰ／ＩＰプロトコル（User Datagram Protocol/ Internet Protocol）を用いた伝送時のＩＰパケットの構成を示すように、ＩＰパケットはヘッダ部５１とペイロード部５２を含んでおり、ペイロード部５２が圧縮符号化して生成したデータを格納する部分である。また、ヘッダ部５１は、ＩＰアドレス等の基本情報を記した２０バイトのＩＰヘッダ５３、アプリケーションを識別するために必要なポート情報を記した８バイトのＵＤＰヘッダ５４、パケットの並び順やパケット毎の到着時間のずれなどを検出するための情報を記した１２バイトのＲＴＰヘッダ５５を含んでいる。なお、これらのヘッダは、後述するペイロード部５２をカプセリングするように、各プロトコル層でＲＴＰヘッダ５５、ＵＤＰヘッダ５４、ＩＰヘッダ５２が順に付加される。
【０００３】
ネットワークを使った音声データの圧縮符号化にはＩＴＵ-Ｔで勧告された符号化方式としてＧ．７２３．１符号化方式、Ｇ．７２９符号化方式、Ｇ．７２６符号化方式がある。
Ｇ．７２３．１符号化方式とＧ．７２９符号化方式は、人の声を合成し、入力音声を分析する技術を適用した線形予測符号化方式であり、サンプル単位の処理ではなく複数サンプルを集めたフレーム単位の処理を行う。一方、Ｇ．７２６符号化方式は、過去のデータから予測した予測データと入力データとの差分情報を送る適応差分符号化方式であり、サンプル単位で処理を行う。
これらの符号化方式はいずれも８ＫＨｚでサンプリングを行うが、生成されるデータ量は違うため、ビットレートは異なる。これら符号化方式によって生成される符号データを含むストリームは前記ＲＦＣ１８８９及びＲＦＣ１８９０に従ったフォーマットのデータに分割され、ペイロード部５２に格納される。例えば、ＲＦＣ１８８９ではパケットの長さはバイト単位と決められており、生成された符号データが複数パケットのペイロード部にまたがることは禁止されている。
【０００４】
一例として、図６にＧ.７２６符号化方式で圧縮符号化して生成した符号データを含むストリームをＩＰパケットのペイロード部５２に格納する方法を示す。
Ｇ.７２６符号化方式はサンプル単位の処理であり、１２５μｓ毎に１サンプルの符号データが２ビット又は３ビット又は４ビット又は５ビットストリームとなって生成される。なお、図６には、１サンプルの符号データが３ビットの場合を示している。
このため、生成されるサンプル単位の符号データをペイロード部５２に格納するには、各サンプル毎の符号データ６１、６２、６３、６４・・をストリームから抽出し、複数サンプル分まとめて１バイト単位のパラレルデータ６６に変換しなければならない。
しかしながら、この変換において、１サンプルの符号データが３ビット／サンプル又は５ビット／サンプルの場合、生成される符号データをＬＳＢ（Least Significant Bit：最下位ビット）側から詰めていくと、区切り良く８ビット（１バイト）に複数サンプル分の符号データが収まらず、２バイトにまたがってしまう。この結果、生成される符号データ（抽出したビットデータ列）を単純に複数サンプル分まとめて８ビット毎に区切ったパラレルデータ６６に収め、当該データ６６をペイロード部５２に格納すると、１サンプル内の符号データが２パケットにまたがってしまう場合が生ずる。
【０００５】
図７には、上記のようなＩＰパケット変換処理を行う装置の従来例を示してある。
この装置では、１２５μｓ間隔で符号化したバースト状ビットストリーム７１を、のシリアル／パラレル変換部（Ｓ/Ｐ部）７２で上記のように変換したパラレルデータをそのまま８ビットメモリ７３に書き込んでいる。このため、１サンプルの符号データが３ビット/サンプルの場合には、１アドレスに書きこまれる８ビットのデータの内、符号データ（有効な３ビット）を除く５ビットは無効ビットのデータが書きこまれることになる。
メモリ７３では、符号データを含んだパラレルデータを書き込むと、ライトアドレスをインクリメントして次の符号データを含むパラレルデータを書き込んでいく。一方、ＣＰＵ７４は、メモリ７３の蓄積データ量を示すフラグ７６に基づいて、イネーブル信号７７を使ってメモリ７３からデ-タ７５の読出しを行い、読み出したデータ７５に対して、符号データのビット情報７８に基づいて、ビットシフト処理部７９で符号データに相当するビットをシフト処理し、データ再変換部８０で符号データだけを抽出して再変換したバイト単位のデータ列に変換し、更に、パケット化処理部８１で、再変換したデータ列を複数サンプルの符号データの区切りと一致するような塊に区切って１サンプルの符号データが複数のパケットにまたがらないようにして、パケットのペイロード部５２にのせてＩＰパケット８２として送出している。
なお、従来、パケットデータの多重及び分離の制御を簡略化できるデータ多重化伝送方法が検討されている（特許文献１参照。）。
【特許文献１】特開平１１―２７５１４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記のように、例えば、Ｇ．７２６符号化方式により圧縮符号化した音声データをＩＰパケットにして送信するには、１サンプルの符号データを８ビットのデータとなるように、複数サンプル分をまとめなければならないが、この時、１サンプルの符号データが３ビット/サンプル又は５ビット/サンプルであると、複数サンプルまとめて８ビットずつ区切った１バイトのデータでは、１つのサンプルの符号データが２バイトにまたがってしまうことがある。
このことは、バイトデータを基本構成単位とするペイロード部において、１サンプルの符号データが２パケットにまたがることを意味しており、符号化方式で規定された規格に反してしまうこととなる。
このため、従来の処理方法では、１つのサンプルの符号データが２つのパケットにまたがることを回避するために、１サンプルに含む符号データ長（有効ビットデータ数）に依存してメモリ領域の有効領域を変動させて無駄にメモリ領域を使ってしまう事態や、符号データ長に依存してビットシフト処理を変えなければならず処理が複雑となるという事態を招いていた。
【０００７】
本発明は、上記従来の事情に鑑みなされたもので、メモリ領域の無駄な利用や複雑なビットシフト処理を招くことなく、１つのサンプルの有効ビットデータが２つのパケットにまたがって格納されてしまう事態を有効に回避することを目的としている。
また、本発明は、Ｇ．７２６符号化方式のように１サンプルの符号データが２パケットにまたがることを禁止している符号化方式に適用して好適であり、生成される符号データの符号データ長に依存することなくメモリ領域を有効に活用できるようにし、また、ＣＰＵで行っていたビットシフト処理を省くことを実現して、パケット化処理を容易化することを目的としている。
【課題を解決するための手段】
【０００８】
本発明は、シリアルデータをパラレルデータに変換して、当該パラレルデータをパケットのペイロード部に格納するパケット変換方法であって、シリアルデータからサンプルを構成する複数のビットデータ列を順次抽出し、抽出されたビットデータ列を所定ビット数のパラレルデータに変換して当該パラレルデータをペイロード部に格納するに際し、１サンプルを構成するビット数とパラレルデータのビット数との関係から、各サンプルのビットデータ列の並びを保持するために同一のペイロード部に格納するパラレルデータの数を決定することを特徴とする。
【０００９】
本発明はより具体的には、例えば、ペイロード部に格納するパラレルデータのビット数を８ビット（１バイト）とした場合、１サンプルを構成する有効なビット数が３のときにはパラレルデータを３つずつペイロード部に格納し、また、１サンプルを構成する有効なビット数が２又は４のときにはパラレルデータを１つずつペイロード部に格納し、また、１サンプルを構成する有効なビット数が５のときにはパラレルデータを５つずつペイロード部に格納するように決定して、パラレルデータのＬＳＢにサンプルを構成するビットデータ列のＬＳＢが位置するようにして、１つのサンプルのビットデータ列が２つのパケットのペイロード部に格納されるのを防止する。
【００１０】
更にはまた、本発明では、上記例の場合に、上記各パラレルデータ数（３、１、５）の最小公倍数（１５）のパラレルデータの単位で同一のペイロード部に格納するように決定して、１サンプルを構成する有効なビット数が２又は３又は４又は５のいずれの場合でも、１つのサンプルのビットデータ列は同じペイロード部に格納されて２つのペイロード部に分割格納されないようにする。
なお、本発明では、各サンプルのビットデータ列の並びを保持するために同一のペイロード部に格納するパラレルデータの数は、１サンプルを構成するビット数とパラレルデータのビット数との関係から設定すればよく、また、これら１サンプルを構成するビット数やパラレルデータのビット数はシステム側の必要に応じて設定される値である。
【発明の効果】
【００１１】
本発明によると、１つのサンプルを構成するビット数とパラレルデータのビット数との関係から同一のペイロード部に格納するパラレルデータの数を決定するようにしたため、メモリ領域の無駄な利用や複雑なビットシフト処理を招くことなく、１つのサンプルの有効ビットデータが２つのパケットにまたがって格納されてしまう事態を有効に回避することができる。
そして、本発明は、特にサンプル単位で処理を行うＧ.７２６符号化方式に適用して効果的であり、生成される符号データが２ビット/サンプル、３ビット/サンプル、４ビット/サンプル、５ビット/サンプルのいずれの場合においても、１つのサンプルの符号データが２つのパケットにまたがらないように保証するための処理を容易に実現することができる。
【発明を実施するための最良の形態】
【００１２】
本発明を実施例に基づいて具体的に説明する。なお、本実施例で説明するパケット変換装置は本発明に係る方法を実施するための装置の一例であり、本発明は種々な装置構成により実施することができる。
図１には、本発明の一実施例に係るパケット変換装置の要部構成を示してある。なお、本実施例は、本発明をＧ.７２６符号化方式に適用した例であり、ＩＰパケットのペイロード部５２に格納されるパラレルデータの単位は１バイト（８ビット）としている。
パケット変換装置は、メモリ部シリアルデータメモリ１、カウンタ部２、シリアル/パラレル（Ｓ／Ｐ）変換部３、パラレルデータメモリ４、パケット処理部５を備えている。
【００１３】
シリアルデータメモリ１には、入力データであるストリーム６と、メモリへの書き込みを許可するＷＥイネーブル信号７、メモリからの読出しを指示するＲＥイネーブル信号８が入力され、シリアルデータメモリ１からはストリームに含まれる各サンプルから有効ビットデータ（符号化データ）を抽出してなるシリアルデータ９が出力される。図２にはストリーム６とＷＥイネーブル信号７との関係をタイミングチャートで示しており、Ｇ．７２６符号化方式で生成されるストリーム６は１２５μsおきに１サンプルの符号データ６―１、６―２、６―３、・・・６―４、６―５・・・を含んだストリームデータであり、ＷＥイネーブル信号７は符号データの出力期間で高レベル（High）となる信号である。すなわち、図示の例では、ＷＥイネーブル信号７が高レベルとなることによって、３つのビットデータ列からなる符号データ６―１、６―２、６―３、・・・６―４、６―５がストリーム６から抽出されて順次シリアルデータメモリ１に格納される。
【００１４】
具体的には、シリアルメモリ１には、抽出された各サンプルの符号データが書き込まれ、図３に示すように、最初に抽出したサンプルの符号データ６−１のＬＳＢデータＡ[０]を先頭番地１−１に書き込み、データＡ[１]、データＡ[２]はメモリの深さ方向に１つずつインクリメントした番地１−２、１−３に順次書き込む。以降のサンプルの符号データＢ[０]、Ｂ[１]、Ｂ［２］、Ｃ［０］、Ｃ［１］、Ｃ[２]、・・・Ｈ [０]、Ｈ [１]、Ｈ[２]、Ｉ[０]、Ｉ[１]、Ｉ[２]、・・・についても同様である。
なお、本例では、１サンプルの符号データを３ビット/サンプルとし、各符号データ６―１、６―２、６―３、・・・６―４、６―５・・・がそれぞれＡ[２]、Ａ［１］、Ａ［０］、Ｂ[２]、Ｂ［１］、Ｂ［０］、Ｃ[２]、Ｃ[１]、Ｃ[０]、・・・Ｈ [２]、Ｈ [１]、Ｈ [０]、Ｉ[２]、Ｉ[１]、Ｉ[０]・・・である場合について主に説明するが、２ビット/サンプル、４ビット/サンプル、５ビット/サンプルのモードにおいて処理は同様である。
【００１５】
カウンタ部２は、ＷＥイネーブル信号７の高レベル/低レベル（High/Low）の状態変化と符号データのビット情報１０に基づいて、シリアルメモリ１に書き込まれたデータ量を計算し、所定量データが貯まったところでシリアルメモリ１からの読み出しを許可するＲＥイネーブル信号８を高レベル（High）にして、シリアルメモリ１に貯まったデータの順次読み出しを開始して、読み出したシリアルデータ９をパラレルデータ１１に変換するためにＳ／Ｐ変換部３に送る。
具体的には、図４に示すように、シリアルデータ９の先頭データとなる符号データ６−１のＬＳＢデータＡ[０]をパラレルデータのＬＳＢに置き、続くデータＡ[１]、Ａ[２]、Ｂ[０]、Ｂ[１]、Ｂ[２]を１ビットずつＭＳＢ（Most Significant Bit：最上位ビット）側にシフトして最初のパラレルデータ（Ｂｙｔｅ１）３−１に変換する。そして、最初のパラレルデータ（Ｂｙｔｅ１）３−１のＭＳＢに符号データ６３のデータＣ[１]がシフトされて当該パラレルデータがいっぱいとなると、データＣ[１]に続くデータＣ[２]は次のパラレルデータ（Ｂｙｔｅ２）３−２のＬＳＢにシフトし、同様の処理を繰返して、シリアルデータ９をパラレルデータ（Ｂｙｔｅ２）３−２、パラレルデータ（Ｂｙｔｅ３）３−３、パラレルデータ（Ｂｙｔｅ４）３−４・・に順次変換する。
【００１６】
ここで、変換したパラレルデータのＬＳＢに注目すると、図４に示すように、４つ目のパラレルデータ（Ｂｙｔｅ４）３−４で再び符号データのＬＳＢデータ（Ｉ[０]）がＬＢＳに位置している。つまり、１サンプルの符号データが３ビット/サンプルの時には、３バイト置き（Ｂｙｔｅ１〜Ｂｙｔｅ４）に符号データのＬＳＢデータのＬＳＢがパラレルデータのＬＳＢに位置する。なお、同様に、１サンプルの符号データが２ビット/サンプル又は４ビット/サンプルの時は、１バイト置きに、また、５ビット/サンプルの時には５バイト置きに符号データのＬＳＢデータがパラレルデータのＬＳＢの位置にくる。
したがって、これら３バイト、１バイト、５バイトの最小公倍数となる１５バイト置きにパラレルデータのＬＳＢの位置にサンプルの符号データのＬＳＢデータがくる。すなわち、１５バイトを１ブロックデータとみなすと、ブロックデータ間で同一のサンプルに含まれている符号データが分割されることはなく、当該ブロックデータの単位でパケットのペイロード部５２に格納すれば、各サンプルの符号データがパケット間で分割されることはない。
【００１７】
パラレルメモリ４は８ビット（１バイト）幅のメモリであり、前段のＳ／Ｐ部３から送られたパラレルデータ１１を一時的にバッファリングして後段のパケット処理部５に渡すためのメモリである。
パラレルメモリ４は、パラレルデータ１１が所定のデータ量書き込まれたときに、後段のパケット処理部５にフラグ１３で知らせる。パケット処理部５は、フラグ１３の状態をポーリングして監視しており、パラレルメモリ４にパラレルデータが所定量貯まったことを確認すると、ＲＥイネーブル信号１４を高レベル（High）にしてパラレルメモリ４からデータ１２を読み出す。この時、読み出すデータ１２はＬＳＢの位置に符号データのＬＳＢデータが位置するパラレルデータ（本例では、Ｂｙｔｅ１、Ｂｙｔｅ４・・）からとし、読み出す量は前記ブロックデータ（１５バイト）の整数倍とする。なお、読み出す量はブロックデータ（１５バイト）単位であればよく、何単位のブロックデータを読み出すかは、ペイロード長等に応じて任意に設定すればよい。
【００１８】
更に、パケット処理部５は、読み込んだブロック単位のパラレルデータ１２をパケットのペイロード部５２に格納し、ペイロード部が１５バイトの整数倍のＩＰパケット１５にしてネットワークに送信する。
ここで、ペイロード長を最小の１５バイトとした時のパケット遅延時間は１サンプルの符号データ長に依存するが、２ビット/サンプル時は７．５ｍｓ、３ビット/サンプル時は５ｍｓ、４ビット/サンプル時は３．７５ｍｓ、５ビット/サンプル時は３ｍｓであり、運用上支障ないレベルである。実際には１５バイトの整数倍が最適なパケットペイロード長になる。
上記のように、１サンプルの符号データＡ[０]、Ａ[１]、Ａ[２]、Ｂ[０]、Ｂ[１]、Ｂ[２]・・・を複数サンプルまとめて８ビットずつ機械的に区切ったパラレルデータとし、当該パラレルデータをペイロード部に格納しても、１パケットにおけるペイロード部の符号データは１サンプルの符号データ単位となるので、メモリ領域の無駄な利用や複雑なビットシフト処理を招くことなく、同一サンプルの符号データが２パケットにまたがってしまうことはない。しかも、上記のように最小公倍数のデータ単位とすることにより、サンプルの符号データ長に依存することなく運用することができ、符号データが２ビット/サンプル、３ビット/サンプル、４ビット/サンプル、５ビット/サンプルのいずれの場合においても、同一サンプルの符号データが２つのパケットにまたがらないように保証することができる。
【００１９】
ここで、上記実施例では、最小公倍数のデータ単位とすることによりサンプルの符号データ長に依存することなく運用できるようにしたが、本発明は、サンプルの符号データ長に応じてモード切り換えを行って、同一サンプルの符号データが２つのパケットにまたがらないように保証するようにしてもよい。
具体的には、上記と同様にパラレルデータのビット数が１バイトである場合を例にすると、同一サンプルの符号データがパケット間で分割されないようにできるのは、ストリームの符号長が２ビット/サンプル又は４ビット/サンプルの場合には１バイトの整数倍、３ビット/サンプルの場合は３バイトの整数倍、５ビット/サンプルの場合は５バイトの整数倍で、パラレルデータをペイロード部に格納するようにすればよいので、符号データのビット情報１０等で判定される符号データ長に応じて、ペイロード部に格納するパラレルデータの量を切り換えるようにしてもよい。
【００２０】
また、データ伝送効率は低下するが、本発明の目的である同一サンプルの符号データが２パケットにまたがってしまうことを防止するためには、パケットデータにダミービット（空データ）を入れて、１つのパケットデータ又は複数のパケットデータの単位でペイロード部に格納して本発明の目的を達成するようにしてもよい。
具体的には、例えば、ペイロード部が１バイトである場合に、３ビット/サンプルのモードでは、１バイトのパラレルデータに２つのサンプルの符号データ（合計６ビット）を入れて、残余の２ビットはダミーデータとするようにしてペイロードに格納する各パラレルデータを生成し、また、５ビット/サンプルのモードでは、１バイトのパラレルデータに１つのサンプルの符号データ（５ビット）を入れて、残余の３ビットはダミーデータとするようにしてペイロードに格納する各パラレルデータを生成すればよい。
なお、このような方法を採用した場合でも、ペイロード長の設定によりデータ伝送効率を向上させることが可能であり、例えば、５ビット/サンプルのモードで、ペイロード部を１２８バイト（１０２４ビット）に設定し、２０４個のサンプルの符号データ（合計１０２０ビット）を同一のパットのペイロード部に格納するようにすれば、ダミーデータはデータ総量に比して僅かな４ビットですむ。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施例に係るパケット変換装置の要部の構成図である。
【図２】本発明の一実施例に係る入力信号のタイミング図である。
【図３】本発明の一実施例に係るシリアルデータを説明する図である。
【図４】本発明の一実施例に係るパラレルデータを説明する図である。
【図５】パケットの構成を説明する図である。
【図６】Ｇ．７２６符号化方式のＩＰパケットの構成を説明する図である。
【図７】従来のパケット変換装置の構成図である。
【符号の説明】
【００２２】
１：シリアルデータメモリ、  ３：シリアル／パラレル変換部、
４：パラレルデータメモリ、  ５：パケット処理部、
６：ストリーム、  ９：シリアルデータ、
１１：パラレルデータ、
６−１、６−２、６−３、６−４、６−５：１サンプルの符号データ、
５２：パケットのペイロード部、
【図１】
2005192031.tif 000003
【図２】
2005192031.tif 000004
【図３】
2005192031.tif 000005
【図４】
2005192031.tif 000006
【図５】
2005192031.tif 000007
【図６】
2005192031.tif 000008
【図７】
2005192031.tif 000009