説明

データレート調整装置、データ配信システム、及びプログラム

【課題】ビットスタッフィングによる伝送データ量の増加を抑制しつつ、データ列の伝送レートを調整する。
【解決手段】画像データ配信システム3は、画像符号化装置1と配信側モデム2とを備えている。ここで、配信側モデム2は、入力されたデータ列を送信する送信部と、送信部が送信するデータ列に、同一値のビットが所定個数連続している所定ビット列が含まれていた場合に、その同一値のビットとは異なる値のビットを、そのデータ列における当該所定ビット列の次に挿入しておくビットスタッフィング処理部とを備えている。このとき、画像符号化装置1に、その所定ビット列とは異なるビット列を、配信側モデム2に入力されるデータ列に追加して、当該データ列の配信における配信データレートを調整するデータレート調整部を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像や音声などを表現しているデータ列(ストリーム)の伝送技術に関する。
【背景技術】
【0002】
昨今、インターネット通信を始めとする様々な通信手段を介して、映像データをリアルタイムで伝送するストリーム配信の需要が高まっている。このような配信の手法のひとつに、H.264規格(ITU-T Rec.H.264|ISO/IEC 14496-10 AVC)で規定の映像符号化と、MPEG−2システムの規格(ISO/IEC 13818-1 )で規定のトランスポートストリームによるデータ多重化とを利用するものが知られている。この手法を利用した映像データのリアルタイム配信は、デジタルテレビジョン放送やインターネットテレビ等で、一般的に行われている。
【0003】
なお、本願では、上述のH.264の規格(ITU-T Rec.H.264|ISO/IEC 14496-10 AVC)を単に「H.264規格」と称することとし、上述のMPEG−2システムの規格(ISO/IEC 13818-1)を単に「MPEG−2システム規格」と称することとする。また、本明細書においては、トランスポートストリームを単に「TS」と称することがある。
【0004】
データ配信における一般的な要望として、データ伝送路での伝送可能帯域の範囲内で可能な限り高画質な映像を配信するというものがある。そのような利用シーンでの符号化方式として、CBR(固定ビットレート:Constant Bit Rate)と呼ばれる、システム全体のレートを固定してネットワークに配信する手法が、通常採用される。
【0005】
上述したH.264規格とMPEG−2システム規格とを利用した、CBRの下での映像データのリアルタイム配信のために、符号化レートを固定して画像を符号化する符号化部が備えている画像バッファ部のデータ管理の例について、図1を用いて説明する。
【0006】
図1において、横軸は時間の経過を表しており、縦軸は、画像バッファ部内に蓄えられた符号化データの蓄積データ量(バッファデータ量)を表している。
この符号化部では、画像の符号化が完了する度に、符号化データが一括して画像バッファ部に蓄えられる。その一方で、CBRにより指定されている符号化レートに従った一定の割合で符号化データが読み出される。従って、画像バッファ部でのバッファデータ量の時間変化は、図1に描かれているように遷移する。
【0007】
この画像バッファ部において、符号化データの生成量が符号化データの読み出しレートに対して少ないと、バッファデータ量が減少していき、やがては枯渇してしまうことになる。そこで、符号化データの生成量が所定量に満たない場合には、その符号化データとは無関係のデータ(スタッフ:stuff)を、符号化データと共に画像バッファ部に蓄えるようにして、バッファ量の枯渇を防止する。
【0008】
このスタッフデータとしては、H.264規格の項目7.4.1において、nal_unit_type 12として規定されている、フィラーデータ(Filler Data)が使用される。このフィラーデータの値は、H.264規格の項目7.4.2.7において、0xff(すなわち2進数で「11111111」)と規定されている。
【0009】
ところで、データ配信における配信元と配信先との間の通信形態として、様々なものがある。このような通信形態のひとつとして、広域通信網(WAN:Wide Area Network )などで標準的に使用されている1対1の通信プロトコルである、PPP(Point to Point)接続が知られている。PPP接続による通信は、RFC(Request For Comment)にも記載されているように(RFC1662 PPP in HDLC-like Framing)、HLDC(ハイレベルデータリンク制御手順:High level Data Link Control Procedures )をベースにして作られたものである。
【0010】
このPPP接続による通信では、ビットスタッフィング機能を用いて効率的なデータ伝送を可能としている。このビットスタッフィング機能について説明する。
HLDC手順では、フラグ同期方式で同期を取ることで、データ受信側の応答確認を待たずに連続してデータ伝送を行えるようにして、データ伝送を高速化している。
【0011】
図2は、HLDC手順でのデータ伝送に使用されるデータフレームの構造である。
図2に図解されているように、このデータフレームは、フラグシーケンス、アドレス部、制御部、情報部、及びフレーム検査シーケンスを有しており、伝送対象のデータ列は、このうちの情報部に格納される。このデータフレームにおけるフラグシーケンスについて説明する。
【0012】
フラグシーケンスは、データフレームの先頭及び末尾に配置されるデータ列であり、2進数で「01111110」なるビット列で構成される。データ受信側では、データフレームをデータ送信側より受信すると、受信したデータフレームから、このフラグシーケンスを検出し、このフラグシーケンスに基づいてデータの同期を取るようにする。
【0013】
但し、この場合において、データフレーム中のフラグシーケンス以外のデータ列に、フラグシーケンスと同一のビット列が存在していると、データ受信側では、このビット列をフラグシーケンスと誤認してしまう。そこで、データ送信側では、フラグシーケンス以外のデータ列でビット「1」が5個連続する場合には、図3の[A]のように、その次にビット「0」を強制的に挿入してビット列の変換を行っておく。一方、データ受信側では、受信したデータフレーム中のフラグシーケンス以外のデータ列でビット「1」が5個連続していた場合には、図3の[B]のように、その次のビット「0」を強制的に削除してビット列の逆変換を行う。このようにして、フラグシーケンスと一致するビット列を、他のビット列に変換してからデータフレームを構成することで、受信側でのフラグシーケンスの誤認を防止する機能が、ビットスタッフィング機能である。
【0014】
なお、このビットスタッフィング機能は、HDLC手順にのみ利用されているものではなく、デジタルデータを伝送する各種の伝送方式で利用されている。例えば、情報の符号化方式としてNRZI(Non Return to Zero Inverted)を採用しているUSB(Universal Serial Bus)では、伝送データ列中にビット「1」が連続すると、伝送信号に状態変化がなくなるため、送信側と受信側との同期がずれてきてしまう。そこで、伝送データ列中にビット「1」が所定数連続する場合に、ビット「0」を挿入するビットスタッフィングを行って同期検出を可能にし、送信側と受信側との同期のずれを抑制するようにしている。
【0015】
なお、本願に関して、この他にも、幾つかの技術が知られている。
そのような技術のひとつは、映像信号の符号化レートと回線レートとの違いにより出力バッファ部内のデータ残量が徐々に低減して行く過程において、出力バッファ部内データ残量の不足をNULLパケットで補充するというものである。
【0016】
また、そのような技術の別のひとつとして、PHS(Personal Handy-phone System )のデータ通信プロトコルであるPIAFS(PHS Internet Access Forum Standard)を使用しデータ通信を行う装置に利用される技術が知られている。この技術は、PIAFSフレームのうち無効データにより埋められている部分に、代わりに、別の送信情報を含ませるというものである。
【0017】
また、そのような技術の更に別のひとつとして、所定のレートでパケット出力を行うデータ伝送装置に利用される技術が知られている。この技術では、出力すべき時刻についての情報を持つパケットを生成する。そして、パケットの出力時刻を計時するタイマを備えるようにし、時刻情報を含まないパケットは所定のパケット間隔で順次出力すると共に、時刻情報を持つパケットは、このタイマ値に基づいて出力を行うようにするというものである。
【先行技術文献】
【特許文献】
【0018】
【特許文献1】特開平11−298893号公報
【特許文献2】特開2002−186031号公報
【特許文献3】特開2005−27006号公報
【発明の概要】
【発明が解決しようとする課題】
【0019】
前述したCBRの下での映像データのリアルタイム配信に、ビットスタッフィング機能を利用する伝送方式を使用すると、配信先で映像を正常に再生できないことがある。この現象について、説明する。
【0020】
図4は、映像データ配信システムの各部から出力されるデータ列のデータ量の変化を模式的に図解したものである。
H.264規格で規定の映像符号化を行う符号化部は、CBRの下で、図示されている各NAL(Network Abstraction Layer)ユニットを出力する。NALユニットとは、符号化データや、その符号化データの復号に必要なパラメータ・セット等をカプセル化したデータ列である。図4には、AU(Access Unit )デリミタ、SPS(Sequence Parameter Set)、PPS(Picture Parameter Set )、Video、フィラーの各NALユニットが示されている。このうちのフィラーNALは、前述したフィラーデータが格納されるNALユニットであり、値:0xffで埋め尽くされている。
【0021】
MPEG−2システム規格で規定のTSによる多重化を行う多重化部は、まず、符号化部が出力する各NALユニットのひとまとまり(アクセスユニット)を、PES(Packetized Elementary Stream)パケットに多重化する。PESパケットは、符号化部が出力するアクセスユニットを格納するPESペイロードに、所定のヘッダ情報(PESヘッダ)が付加されたデータ構造を有している。多重化部は、次に、このPESパケットを、各々188バイトのTSパケットに多重化する。TSパケットは、PESパケットを分割したデータ列を格納するTSペイロードに、所定のヘッダ情報(TSヘッダ)が付加されたデータ構造を有している。従って、PESパケットにおける前述したフィラーNALの格納部分を格納したTSパケットのTSペイロードも、値:0xffのフィラーデータで埋め尽くされることになる。
【0022】
このようにして多重化部から出力されるTSパケットは、モデムを介してWAN等の通信ネットワークへ送信される。このモデムがHLDC手順によるフラグ同期方式を採用している場合には、TSパケットに対し、ビット「1」が5連続するデータ列の次にビット「0」を強制的に挿入する前述したビットスタッフィングがこのモデムで実行される。このとき、PESパケットにおける前述したフィラーNALの格納部分を格納したTSパケットは、TSペイロードが値:0xffのフィラーデータで埋め尽くされているため、ビットスタッフィングによるビット「0」の挿入が多数回行われることになる。この結果、モデムから通信ネットワークに送出されるデータ量は、多重化部から出力されたTSパケットのデータ量から大幅に増加する。
【0023】
このような、ビットスタッフィング機能により発生する伝送データ量の増加について、図5を参照しながら更に説明する。
図5において、横軸は時間の経過を表しており、縦軸は、ビットレート(単位時間当たりのデータ量)を表している。
【0024】
図5の例では、CBRとして9Mbpsが設定されており、符号化部では、生成した4Mbpsの符号化データに対し、5Mbpsの割合でフィラーデータを挿入した場合を示している。この場合には、前述したビットスタッフィングによって、5Mbps×1/5=1Mbpsの割合で「0」データの挿入が行われる(ヘッダ情報等に対するビットスタッフィングは無視するものとする)。従って、この場合、モデムから通信ネットワークに送出されるデータ量は、
4Mbps+5Mbps+1Mbps=10Mbps
となる。従って、この場合であれば、通信ネットワークの許容伝送量が10Mbpsあれば、映像データを正常に配信先まで配信することができ、映像を正常に再生することができる。
【0025】
次に、例えばカラーバーの静止画の映像を符号化する場合を考える。このような映像では、符号化部で生成される符号化データ量は少なくなるため、符号化部では、上記の場合よりも多くのフィラーデータが挿入されることになる。例えば、CBRの設定として上記の場合と同様に9Mbpsが設定されており、符号化部では、生成した2Mbpsの符号化データに対し、7Mbpsの割合でフィラーデータを挿入した場合を想定する。この場合では、前述したビットスタッフィングによって、7Mbps×1/5=1.4Mbpsの割合で「0」データの挿入が行われることになる。すると、この場合、モデムから通信ネットワークに送出されるデータ量は、
2Mbps+7Mbps+1.4Mbps=10.4Mbps
となる。従って、この場合において、通信ネットワークの許容伝送量が10Mbpsであると、全ての映像データを正常に配信先まで配信することはできないため、映像の正常な再生ができなくなってしまう。
【0026】
本発明は上述した問題に鑑みてなされたものであり、その解決しようとする課題は、ビットスタッフィングによる伝送データ量の増加を抑制しつつ、データ列の伝送レートを調整することである。
【課題を解決するための手段】
【0027】
本明細書で後述するデータレート調整装置のひとつは、データレート調整装置とデータ送信装置とを有するデータ配信システムにおけるデータレート調整装置である。この構成において、該データ送信装置は、送信手段とビットスタッフィング手段とを有するものであり、該データレート調整装置は、データレート調整手段を有するものである。このうち、送信手段は、入力されたデータ列を送信するものである。また、ビットスタッフィング手段は、該送信手段が送信するデータ列に、同一値のビットが所定個数連続している所定ビット列が含まれていた場合に、該同一値のビットとは異なる値のビットを、該データ列における該所定ビット列の次に挿入しておくものである。そして、データレート調整手段は、該所定ビット列とは異なるビット列を、該データ送信装置に入力されるデータ列に追加して、該データ列の配信における配信データレートを調整するものである。
【0028】
また、本明細書で後述するプログラムのひとつは、データレート調整装置とデータ送信装置とを有するデータ配信システムにおけるデータレート調整装置として演算処理装置を機能させるためのプログラムである。ここで、該データ送信装置は、送信手段とビットスタッフィング手段とを有するものである。このうち、送信手段は、入力されたデータ列を送信するものである。また、ビットスタッフィング手段は、該送信手段が送信するデータ列に、同一値のビットが所定個数連続している所定ビット列が含まれていた場合に、該同一値のビットとは異なる値のビットを、該データ列における該所定ビット列の次に挿入しておくものである。ここで、このプログラムは、該演算処理装置に、作成処理、取得処理、データレート調整処理、及び出力処理を行わせる。このうち、作成処理は、該所定ビット列とは異なるビット列を作成する処理であり、取得処理は、データ列の入力を取得する処理である。そして、データレート調整処理は、該取得処理で取得したデータ列に、該所定ビット列とは異なるビット列を追加して、該データ列の配信における配信データレートを調整する処理である。また、出力処理は、該データレート調整処理による調整後のデータ列を出力して該データ送信装置に入力させる処理である。
【発明の効果】
【0029】
本明細書で後述するデータレート調整装置は、ビットスタッフィングによる伝送データ量の増加を抑制しつつ、データ列の伝送レートを調整することができる。
【図面の簡単な説明】
【0030】
【図1】画像バッファ部でのデータ管理の例を説明する図である。
【図2】HLDC手順でのデータ伝送に使用されるデータフレームの構造図である。
【図3】ビットスタッフィング機能を説明する図である。
【図4】映像データ配信システムの各部から出力されるデータ列のデータ量の変化の模式図である。
【図5】ビットスタッフィング機能により発生する伝送データ量の増加を説明する図である。
【図6】画像データ伝送システムの全体構成図である。
【図7】画像符号化装置の構成図である。
【図8】配信側モデムの構成図である。
【図9】画像符号化装置の各構成要素の処理シーケンスを表した模式図である。
【図10】配信側モデムの各構成要素の処理シーケンスを表した模式図である。
【図11A】符号化部の構成図の第一の例である。
【図11B】多重化部の構成図の第一の例である。
【図12A】図11Aの構成を有する符号化部の各構成要素の処理シーケンスを表した模式図である。
【図12B】図11Bの構成を有する多重化部の各構成要素の処理シーケンスを表した模式図である。
【図13】NULLTS作成部による配信データレートの調整の効果を説明する図である。
【図14】コンピュータの標準的な構成例を表した構成図である。
【図15】NULLTS作成処理の処理内容を図解したフローチャートである。
【図16A】符号化部の構成図の第二の例である。
【図16B】多重化部の構成図の第二の例である。
【図17A】図16Aの構成を有する符号化部の各構成要素の処理シーケンスを表した模式図である。
【図17B】図16Bの構成を有する多重化部の各構成要素の処理シーケンスを表した模式図である。
【図18】SEINAL作成部による配信データレートの調整の効果を説明する図である。
【図19】SEINAL作成処理の処理内容を図解したフローチャートである。
【図20】符号化部の構成図の第二の例である。
【図21】図20の構成を有する符号化部の各構成要素の処理シーケンスを表した模式図である。
【図22】無指定NAL作成部による配信データレートの調整の効果を説明する図である。
【図23】無指定NAL作成処理の処理内容を図解したフローチャートである。
【発明を実施するための形態】
【0031】
以下、本発明の実施の形態を図面に基づいて説明する。各実施例は、処理として矛盾のない範囲で適宜組み合わせることが可能である。
図6には、画像データ伝送システムの全体構成が図解されている。この画像データ伝送システムは、映像データをリアルタイムで伝送するストリーム配信を行うシステムである。
【0032】
図6において、画像符号化装置1と配信側モデム2とで画像データ配信システム3を構成しており、受信側モデム4と画像再生装置5とで画像データ受信システム6を構成している。
【0033】
画像データ配信システム3は、ビデオカメラ等から出力される映像信号に対し映像符号化を行い、得られた符号化データを通信ネットワーク7へ送出する。一方、画像データ受信システム6は、画像データ配信システム3が送出した符号化データを受信してデコードして、得られた映像を表示する。
【0034】
図6を更に説明する。
画像符号化装置1は、入力された映像信号に対し、H.264規格で規定の映像符号化を行い、得られた映像データ列に対し、MPEG−2システム規格で規定のTSによるデータ多重化を行う。
【0035】
配信側モデム2は、通信ネットワーク7を介して、画像データ受信システム6の受信側モデム4との間でPPP接続による通信を行い、画像符号化装置1から出力される多重化映像データ列を受信側モデム4へ送付するデータ送信装置である。
【0036】
受信側モデム4は、画像データ配信システム3の配信側モデム2から送付された多重化映像データ列を受信して画像再生装置5へ出力する。
画像再生装置5は、受信側モデム4から受け取った多重化映像データ列を、画像符号化装置1での映像符号化方式及びデータ多重化方式に応じてデコードして画像符号化装置1に入力された映像信号を再現する。そして、その映像信号で表現されている映像をディスプレイ装置に表示させる。
【0037】
次に、図6における画像データ配信システム3について、より詳細に説明する。
図7には、画像符号化装置1の構成が図解されている。
この画像符号化装置1は、画像入力部11、符号化部12、多重化部13、画像配信部14、及び制御部15を備えている。
【0038】
画像入力部11は、ビデオカメラ等の外部の装置から出力されて画像符号化装置1に入力される映像信号の取り込みを行う。
符号化部12は、画像入力部11が取り込んだ映像信号に対する、H.264規格で規定の映像符号化を、制御部15により予め指定されている符号化レートに従って行う。この映像符号化により得られた画像データは、符号化部12が備えている(FIFO:First In First Out)メモリである画像バッファ部12−1に蓄えられる。
【0039】
多重化部13は、画像バッファ部12−1に蓄えられている画像データを一定の割合で読み出して、MPEG−2システム規格で規定のTSによる多重化を行う。
画像配信部14は、多重化部13から出力される画像データ列(TSパケット)を、配信側モデム2へ出力する。
【0040】
画像符号化装置1は、以上の構成要素を備えている。
なお、これらの画像符号化装置1の構成要素のうちの符号化部12若しくは多重化部13は、画像データ配信システム3による映像データ列の配信における配信データレートを調整するデータレート調整装置10としても動作する。この動作については後述する。
【0041】
次に図8について説明する。図8には、データ送信装置である配信側モデム2の構成が図解されている。この配信側モデム2は、データ列入力部21、ビットスタッフィング処理部22、フォーマット変換部23、及び送信部24を備えている。
【0042】
データ列入力部21は、画像符号化装置1から出力されて配信側モデム2に入力される映像データ列の取り込みを行う。
ビットスタッフィング処理部22は、データ列入力部21が取り込んだ映像データ列に対し、ビットスタッフィング処理を施す。すなわち、ビットスタッフィング処理部22は、この映像データ列において、ビット「1」が所定個(この実施形態では5個)連続する箇所(「所定ビット列」と称することとする)の検出を行う。そして、この所定ビット列が映像データ列に含まれていた場合には、ビット「0」(ビット「1」とは異なる値)を、その映像データ列における所定ビット列の次に挿入する。
【0043】
フォーマット変換部23は、ビットスタッフィング処理後の映像データ列のフォーマット変換を行う。すなわち、フォーマット変換部23は、この映像データ列を、図2に示したデータフレームの情報部に格納すると共に、フラグシーケンス、アドレス部、制御部、及びフレーム検査シーケンスを追加して、図2のデータフレームを作成する。なお、本実施形態において、配信側モデム2と受信側モデム4との間でのフラグ同期制御でのデータ列伝送に使用されるフラグシーケンスは、図2に示されているように、2進数で「01111110」なるビット列とする。
【0044】
送信部24は、フォーマット変換部23によってフォーマット変換された映像データ列を、画像データ受信システム6へ宛てて、通信ネットワーク7に送信する。
配信側モデム2は、以上の構成要素を備えている。
【0045】
次に、以上のような構成要素を備えている画像データ配信システム3の動作について、図9及び図10を参照しながら説明する。なお、図9は、画像符号化装置1の各構成要素についての処理シーケンスを表しており、図10は、配信側モデム2の各構成要素についての処理シーケンスを表している。
【0046】
図9において、まず、S101では、制御部15が、画サイズ情報及び符号化ビットレート情報を、符号化部12及び多重化部13に通知する動作を行う。符号化部12及び多重化部13は、制御部15から通知されたこれらの情報に従って各自の動作を行う。
【0047】
次に、外部の装置から画像符号化装置1に映像信号が入力されると、画像入力部11は、S102において、この映像信号の取り込み動作を開始し、続くS103において、取り込んだ映像信号を符号化部12に渡す。
【0048】
次に、符号化部12は、映像信号を画像入力部11から受け取ると、S104において、この映像信号に対する、H.264規格で規定の映像符号化処理動作を開始する。なお、この映像符号化処理は、制御部15から通知された画サイズ情報及び符号化ビットレートに従って行われる。そして、続くS105において、この映像符号化処理により得られた符号化画像データを画像バッファ部12−1に渡す。
【0049】
次に、画像バッファ部12−1は、符号化画像データを符号化部12から受け取ると、S106において、この符号化画像データの蓄積動作を開始する。
次に、多重化部13は、画像バッファ部12−1での符号化画像データの蓄積量が所定量を超えると、S107において、画像バッファ部12−1で蓄積していた符号化画像データの読み出し動作を行う。そして、S108において、MPEG−2システム規格で規定のTSによる多重化処理動作を開始し、続くS109において、多重化された符号化画像データ(画像データ列)を画像配信部14に渡して画像符号化装置1から出力させる。
【0050】
次に、図10において、画像符号化装置1から配信側モデム2に画像データ列が入力されると、データ列入力部21は、S201において、この画像データ列の取り込み動作を開始する。そして、続くS202において、取り込んだ画像データ列をビットスタッフィング処理部22に渡す。
【0051】
次に、ビットスタッフィング処理部22は、画像データ列をデータ列入力部21から受け取ると、S203において、この画像データ列に対する前述したビットスタッフィング処理動作を開始する。そして、続くS204において、このビットスタッフィング処理を施した後の画像データ列をフォーマット変換部23に渡す。
【0052】
次に、フォーマット変換部23は、ビットスタッフィング処理後の画像データ列をビットスタッフィング処理部22から受け取ると、S205において、この画像データ列に対する前述したフォーマット変換動作を開始する。そして、続くS206において、フォーマット変換を施した後の画像データ列を送信部24に渡し、この画像データ列を、画像データ受信システム6へ宛てて、通信ネットワーク7に送信させる。
【0053】
次に、符号化部12及び多重化部13の構成の詳細と、これらにより行われる、映像データ列の配信における配信データレートの調整動作の手法とについての実施形態を、幾つか説明する。
【0054】
まず図11A及び図11Bについて説明する。これらには、符号化部12及び多重化部13の構成の第一の例が、それぞれ図解されている。
図11Aに図解されている符号化部12は、前述した画像バッファ部12−1と、AU・SPS・PPS・VideoNAL作成部(以下、「各種NAL作成部」と称する)12−2とを備えている。
【0055】
各種NAL作成部12−2は、画像入力部11が取り込んだ映像信号に対してH.264規格で規定の映像符号化を行い、得られた画像データを、データの種類に応じてカプセル化して各種のNALユニットを作成する。
【0056】
より具体的には、各種NAL作成部12−2では、画像データを、H.264規格で規定されている、AUデリミタ、SPS、PPS、及びVideoの各NALユニットにカプセル化する。このうち、AUデリミタNALには、アクセスユニット(各種NAL作成部12−2が作成する各種NALユニットのひとまとまり)の先頭を示す情報が格納される。SPSNALには、画像シーケンス(1つのアクセスユニット中に符号化データが含まれる、動画像を構成する画像複数枚のひとまとまりのグループ)全体での符号化に関する各種情報が格納される。PPSNALには、ピクチャ(動画像を構成する各画像)の符号化に関する各種情報が格納される。そして、VideoNALには、映像符号化により生成される、各ピクチャの生の符号化データが格納される。
【0057】
各種NAL作成部12−2は、以上のようにして各種NALユニットにカプセル化された画像データ、すなわち、符号化された映像データが格納されているNALユニットの集合体である画像データを画像バッファ部12−1へ出力する。画像バッファ部12−1は、この画像データを蓄える。
【0058】
一方、図11Bに図解されている多重化部13の構成は、符号化部12が図11Aの構成を備えている場合のものであり、PES作成部13−1、TS作成部13−2、及びNULLTS作成部13−3を備えている。
【0059】
PES作成部13−1は、画像バッファ部12−1に蓄えられている画像データを格納している、MPEG−2システム規格で規定のPESパケットを作成する。より具体的には、PES作成部13−1は、前述したアクセスユニット単位で画像データ(特に、ES(Elementary Stream)データと称する)をPESペイロードに格納すると共に、所定のヘッダ情報(PESヘッダ)を付加してPESパケットを作成する。
【0060】
TS作成部13−2は、PES作成部13−1が作成したPESパケットを格納している、MPEG−2システム規格で規定のTSパケットを作成する。より具体的には、TS作成部13−2は、PESパケットを分割したデータ列をTSペイロードに格納すると共に、所定のヘッダ情報(TSヘッダ)を付加して、各々188バイトのデータ量であるTSパケット群を作成する。
【0061】
NULLTS作成部13−3は、MPEG−2システム規格で規定されている、188バイトのデータ量であるTSパケットであって、前述した所定ビット列を含まないビット列がTSペイロードに格納されているものを作成する。特に、本実施形態では、NULLTS作成部13−3がTSペイロードに格納するビット列として、前述した所定ビット列(本実施形態では、2進数で「11111」)を含まない、例えば0x55(すなわち2進数で「01010101」)の繰り返しとする。ビット列の例は0x55に限るものではなく、例えば0xAA(すなわち2進数で「10101010」)などでも良い。即ちビットスタッフィングの処理対象となるビット列(本実施形態では、2進数で「11111」)を含まないビット列であれば良い。このようにしておくことで、配信側モデム2のビットスタッフィング処理部22がビットスタッフィング処理を行っても、このビット列に対してはビット「0」の挿入を行わないので、ビットスタッフィングによる伝送データ量の増加が抑制される。
【0062】
なお、このとき、NULLTS作成部13−3は、作成するTSパケットのTSヘッダに含まれている、当該TSパケットのペイロードに格納されているデータの種類を示すパケットIDを、ヌルパケット(Null Packet)を示す値に設定する。なお、MPEG−2システム規格では、項目2.4.3.3において、ヌルパケットを示すパケットIDは、0x1fffと定義されている。規格上、このヌルパケットであるTSパケット(以下、「NULLTSパケット」と称する)のペイロードには任意のデータを格納することができ、また、符号化データのデコードの際には無視される。従って、上述したようなビット列をペイロードに格納したTSパケットが、画像データ受信システム6での画像再生に影響を及ぼすことはない。
【0063】
NULLTS作成部13−3により作成されたNULLTSパケットは、TS作成部13−2が作成したTSパケット群と共に(例えばNULLTS作成部13−3がTSパケット群の末尾にNULLTSパケットを追加して)、画像配信部14へと出力される。
【0064】
なお、NULLTS作成部13−3は、NULLTSパケットの作成量の調整も行う。この調整は、このNULLTSパケットの作成量とTS作成部13−2によるTSパケットの作成量との総和が、画像データ配信システム3から画像データ受信システム6への画像データ列の配信レートになるように行われる。なお、制御部15が多重化部13に通知する前述した符号化ビットレートは、この配信レートを表しているものとし、NULLTS作成部13−3は、この通知とTSパケットの作成量とに基づいて、NULLTSパケットの作成量を調整する。NULLTS作成部13−3は、このようにして、画像データ配信システム3から画像データ受信システム6への画像データ列の配信における配信データレートの調整を行う。
【0065】
次に、図11A及び図11Bの構成を有する符号化部12及び多重化部13の動作について、図12A及び図12Bを参照しながら説明する。なお、図12Aは、図11Aの構成を有する符号化部12の各構成要素についての処理シーケンスを表しており、図12Bは、図11Bの構成を有する多重化部13の各構成要素についての処理シーケンスを表している。
【0066】
まず、前述した図9のS103において、取り込んだ映像信号が画像入力部11から符号化部12に渡される。すると、図12AのS111において、各種NAL作成部12−2は、この映像信号の入力を受け取ると、この映像信号から各種NALユニットを作成して画像バッファ部12−1に蓄える処理を行う。より具体的には、各種NAL作成部12−2は、S112においてAUデリミタNALを作成して画像バッファ部12−1に蓄える処理を行い、続くS113においてSPSNALを作成して画像バッファ部12−1に蓄える処理を行う。そして更に、続くS114においてPPSNALを作成して画像バッファ部12−1に蓄える処理を行い、続く115においてVideoNALを作成して画像バッファ部12−1に蓄える処理を行う。
【0067】
その後、S116において、以上のようにして画像バッファ部12−1に蓄えられた各種NALユニットが、多重化部13により順に読み出され、ESデータとして多重化部13へと出力される。
【0068】
次に、図12BのS121において、このESデータの入力を受け取ると、PES作成部13−1は、S122において、このESデータからPESパケットを作成して、TS作成部13−2へ出力する処理を行う。また、PES作成部13−1は、この処理により作成したPESパケットを、S123において、NULLTS作成部13−3へ出力する処理も行う。
【0069】
次に、PESパケットをPES作成部13−1から受け取ったTS作成部13−2は、S124において、このPESパケットを格納したTSパケット群を作成する処理を行う。一方、PESパケットをPES作成部13−1から受け取ったNULLTS作成部13−3は、S125において、NULLTSパケットを作成して、TSパケット群と共に出力する処理を行う。ここで、NULLTS作成部13−3は、まず、受け取ったPESパケットから作成部13−2によるTSパケットの作成量を算出する。そして、得られた作成量を、制御部15から通知されている前述した配信レートに相当する配送データ量から減算することで、このときのNULLTSパケットの作成量を決定する。なお、TSパケットのサイズが188バイトの固定長であり、TSヘッダのサイズが4バイトの固定長であることを利用すれば、TS作成部13−2でのTSパケットの作成量をPESパケットのデータ量から算出することは容易である。また、この算出の代わりに、PESパケットのデータ量とTS作成部13−2でのTSパケットの作成量との対応関係を示したテーブルを予め用意しておき、このテーブルを参照して、受け取ったPESパケットのデータ量からTSパケットの作成量を求めてもよい。
【0070】
ここで図13について説明する。図13は、符号化部12及び多重化部13がそれぞれ図11A及び図11Bのように構成されている画像符号化装置1を備えた画像データ配信システム3の各部から出力されるデータ列のデータ量の変化を模式的に図解したものである。この図13を前述した図4と対比して、NULLTS作成部13−3による配信データレートの調整の効果を説明する。
【0071】
前述したように、図4においては、配信データレートの調整のために、前述したフィラーデータを、符号化データと共に画像バッファ部に蓄えるようにしていた。従って、PESパケットにおける前述したフィラーNALの格納部分を格納したTSパケットは、TSペイロードが値:0xffのフィラーデータで埋め尽くされている。このため、ビットスタッフィングによるビット「0」の挿入が多数回行われる結果、モデムから送出されるデータ量は、多重化部から出力されたTSパケットのデータ量から大幅に増加する。
【0072】
一方、NULLTS作成部13−3によるNULLTSパケットの作成量を調整して配信データレートを調整する場合には、NULLTSパケットのペイロード内に所定ビット列が存在しないので、ビットスタッフィングによるビット「0」の挿入は行われない。従って、図13に図解されているように、配信側モデム2から送出されるデータ量の、多重化部13から出力されたTSパケット(NULLTSパケットを含む)のデータ量からの増加が抑制される。
【0073】
ここで図14について説明する。図14には、コンピュータの標準的な構成例が図解されている。このようなコンピュータに所定の制御プログラムを実行させることで、図11BにおけるNULLTS作成部13−3を、当該コンピュータで構成することも可能である。
【0074】
図14に示したコンピュータは、MPU31、ROM32、RAM33、ハードディスク装置34、入力装置35、表示装置36、インタフェース装置37、及び記録媒体駆動装置38を備えて構成されている。これらの構成要素はいずれもバス39に接続されており、MPU31の管理の下で各種のデータを相互に授受することができる。
【0075】
MPU(Micro Processing Unit)31は、このコンピュータ全体の動作を制御する演算処理装置である。
ROM(Read Only Memory)32は、所定の基本制御プログラムが予め記録されている読み出し専用半導体メモリである。MPU31は、この基本制御プログラムをコンピュータの起動時に読み出して実行することにより、このコンピュータの各構成要素の動作制御が可能になる。
【0076】
RAM(Random Access Memory)33は、MPU31が各種の制御プログラムを実行する際に、必要に応じて作業用記憶領域として使用する、随時書き込み読み出し可能な半導体メモリである。
【0077】
ハードディスク装置34は、MPU31によって実行される各種の制御プログラム、後述する各種のデータテーブル、及び各パンフレットの画像データを記憶しておく記憶装置である。MPU31は、ハードディスク装置34に記憶されている所定の制御プログラムを読み出して実行することにより、後述する各種の制御処理を行えるようになる。
【0078】
入力装置35は、例えばキーボード装置やマウス装置であり、コンピュータの使用者により操作されると、その操作内容に対応付けられている使用者からの各種情報の入力を取得し、取得した入力情報をMPU31に送付する。
【0079】
表示装置36は例えば液晶ディスプレイであり、MPU31から送付される表示データに応じて各種のテキストや画像を表示する。
インタフェース装置37は、多重化部13の他の構成要素や画像符号化装置1の各構成要素との間で各種データの授受の管理を行う。
【0080】
記録媒体駆動装置38は、可搬型記録媒体40に記録されている各種の制御プログラムやデータの読み出しを行う装置である。MPU31は、可搬型記録媒体40に記録されている所定の制御プログラムを、記録媒体駆動装置38を介して読み出して実行することによって、後述する各種の制御処理を行うようにすることもできる。なお、可搬型記録媒体40としては、例えばCD−ROM(Compact Disc Read Only Memory)やDVD−ROM(Digital Versatile Disc Read Only Memory)などがある。
【0081】
このようなコンピュータでNULLTS作成部13−3を構成する場合には、まず、後述するNULLTS作成処理をMPU31に行わせるための制御プログラムを作成する。作成された制御プログラムはハードディスク装置34若しくは可搬型記録媒体40に予め格納しておく。そして、MPU31に所定の指示を与えてこの制御プログラムを読み出させて実行させる。こうすることで、図14のコンピュータにおけるMPU31がNULLTS作成部13−3として機能する。
【0082】
次に図15について説明する。図15は、コンピュータをNULLTS作成部13−3として機能させるためにMPU31に行わせるNULLTS作成処理の処理内容をフローチャートで図解したものである。
【0083】
図15の処理が開始されると、MPU31は、まず、S131において、制御部15から通知される符号化ビットレート(前述した配信レート)を受信する処理を行う。
次に、S132において、MPU31は、PESパケットをPES作成部13−1から受信する処理を行い、続くS133において、このPESパケットを受信したか否かを判定する処理を行う。ここで、MPU31は、PESパケットを受信したと判定したとき(判定結果がYesのとき)にはS134に処理を進める。一方、MPU31は、PESパケットを受信していないと判定したとき(判定結果がNoのとき)にはS132へ処理を戻し、PESパケットの受信処理を再度試みる。
【0084】
次に、S134において、MPU31は、S131の処理で受信した配信データレートと、S132の処理で受信したPESパケットとから、NULLTSパケットの作成量を決定する処理を行う。この処理では、まず、受け取ったPESパケットから作成部13−2によるTSパケットの作成量を前述したようにして算出する。そして、得られた作成量を、受信した配信レートに相当する配送データ量から減算することで、このときのNULLTSパケットの作成量を決定する。なお、この処理においては、前述したように、PESパケットのデータ量とTSパケットの作成量との対応関係を示したテーブルを予め用意しておき、このテーブルを参照して、作成部13−2によるTSパケットの作成量を求めるようにしてもよい。
【0085】
次に、S135において、MPU31は、前述した所定ビット列(本実施形態では、2進数で「11111」)を含まない、0x55(すなわち2進数で「01010101」)の繰り返しのビット列をTSパケットにおけるTSペイロードに格納する処理を行う。そして、続くS136において、パケットIDを、ヌルパケット(Null Packet)を示す値に設定した所定のTSヘッダを、このTSペイロードに付加してNULLTSパケットを1つ作成する処理をMPU31が行う。
【0086】
次に、S137では、S135及びS136の処理によるNULLTSパケットの作成量が、S134の処理による作成量の決定値に達したか否かを判定する処理をMPU31が行う。ここで、MPU31は、作成量が決定値に達したと判定したとき(判定結果がYesのとき)には、NULLTSパケットの作成を終了してS138に処理を進める。一方、MPU31は、作成量が決定値に達していないと判定したとき(判定結果がNoのとき)には、S135へ処理を戻し、S135及びS136の処理によるNULLTSパケットの作成を再度行う。
【0087】
次に、S138では、MPU31は、TS作成部13−2が作成したTSパケット群を取得する処理を行う。そして、続くS139において、S135及びS136の処理の繰り返しにより作成した全てのNULLTSパケットを、取得したTSパケット群に続けてその末尾に追加した上で、それらを画像配信部14へ出力する処理を行う。その後、S139の処理が完了したときには、MPU31は、処理をS132へ戻し、PESパケットのPES作成部13−1からの受信処理以降の処理を改めて実行する。
【0088】
以上までの処理がNULLTS作成処理である。この処理をMPU31に行わせることにより、図14の構成を有するコンピュータで、図11BにおけるNULLTS作成部13−3を構成することが可能になる。NULLTS作成部13−3では、ビットスタッフィング機能のデータ挿入対象となるビット列を生成しない。即ち、画像符号化装置1により出力されるデータは、配信レートを満たすデータでありながら、配信側モデム2におけるビットスタッフィング処理でデータ挿入の対象となるビット列を生成させないデータである。そのため、ビットスタッフィング機能により発生する伝送データ量の増加を抑制しつつ、データ列の伝送レートを調整することができる。
【0089】
なお、図14の構成を有するコンピュータで、NULLTS作成部13−3を構成するのみならず、画像符号化装置1の各構成要素の一部若しくは全部を構成することも可能である。このようにするには、NULLTS作成部13−3を構成する場合と同様に、まず、画像符号化装置1の各構成要素が提供する機能において行われる各種の処理をMPU31に行わせるための制御プログラムを作成しておく。そして、作成された制御プログラムをハードディスク装置34若しくは可搬型記録媒体40に予め格納しておき、その後にMPU31に所定の指示を与えてこの制御プログラムを読み出させて実行させればよい。
【0090】
次に図16A及び図16Bについて説明する。これらには、符号化部12及び多重化部13の構成の第二の例が、それぞれ図解されている。
図16Aに図解されている符号化部12は、図11Aの第一の構成と同様の画像バッファ部12−1及び各種NAL作成部12−2に加えて、SEINAL作成部12−3を更に備えている。
【0091】
画像バッファ部12−1及び各種NAL作成部12−2は、図11Aの第一の構成と同様のものであるので、ここでの詳細な説明は省略する。但し、この第二の構成において、各種NAL作成部12−2は、作成した画像データ量の情報をSEINAL作成部12−3に通知する。
【0092】
SEINAL作成部12−3は、H.264規格の項目7.4.1においてnal_unit_type 6 として規定されている、SEI(Supplemental Enhancement Information)を格納するためのNALユニットである、SEINALを作成する。ここで、SEIとは、H.264規格の項目7.4.2.3で規定されている、符号化データのデコードには必須ではない情報である。但し、SEINAL作成部12−3は、作成するSEINALに格納するSEIを、前述した所定ビット列を含まないビット列とする。特に、本実施形態では、SEINAL作成部12−3がSEINALに格納するビット列として、前述した所定ビット列(本実施形態では、2進数で「11111」)を含まない、例えば0x55(すなわち2進数で「01010101」)の繰り返しとする。ビット列の例は0x55に限るものではなく、例えば0xAA(すなわち2進数で「10101010」)などでも良い。即ちビットスタッフィングの処理対象となるビット列(本実施形態では、2進数で「11111」)を含まないビット列であれば良い。このようにしておくことで、配信側モデム2のビットスタッフィング処理部22がビットスタッフィング処理を行っても、このビット列に対してはビット「0」の挿入を行わないので、ビットスタッフィングによる伝送データ量の増加が抑制される。
【0093】
なお、H.264規格では、付属書の項目D.1において、SEINALにおけるデータの格納構造について、複数種類の定義がされている(SEI payload syntax)。SEINAL作成部12−3は、作成するSEINALのヘッダ情報に含まれている、当該SEINALにおけるこのデータの格納構造を示すペイロードタイプを、未登録の任意のユーザデータ(User Data Unregistered)を示す値に設定する。なお、H.264規格では、未登録の任意のユーザデータを示すペイロードタイプの値は「5」と定義されている。規格上、ペイロードタイプが未登録の任意のユーザデータに設定されているSEINALには、任意のデータを格納することができ、また、符号化データのデコードの際には無視される。従って、上述したようなビット列を格納したSEINALが、画像データ受信システム6での画像再生に影響を及ぼすことはない。
【0094】
SEINAL作成部12−3により作成されたSEINALは、各種NAL作成部12−2が作成した画像データ(符号化された映像データが格納されている各種NALユニットの集合体)と共に、画像バッファ部12−1へと出力される。このために、SEINAL作成部12−3は、例えば、各種NAL作成部12−2が作成した各種NALユニットの集合体における他のNALユニットとVideoNALとの出力の間に、作成したSEINALを画像バッファ部12−1に出力する。
【0095】
なお、SEINAL作成部12−3は、SEINALに格納する上述したSEIのデータ量の調整も行う。この調整は、作成するSEINALのデータ量と各種NAL作成部12−2が作成した上述の画像データのデータ量との総和が、画像データ配信システム3から画像データ受信システム6への画像データ列の配信レートになるように行われる。なお、制御部15が符号化部12に通知する前述した符号化ビットレートは、この配信レートを表しているものとし、SEINAL作成部12−3は、この通知と各種NAL作成部12−2が作成した画像データ量とに基づいて、SEIのデータ量を調整する。SEINAL作成部12−3は、このようにして、画像データ配信システム3から画像データ受信システム6への画像データ列の配信における配信データレートの調整を行う。
【0096】
一方、図16Bに図解されている多重化部13の構成は、符号化部12が図16Aの構成を備えている場合のものである。この図16Bの構成は、図11Bの第一の構成と同様のPES作成部13−1及びTS作成部13−2を備えているが、NULLTS作成部13−3は削除されている。
【0097】
PES作成部13−1及びTS作成部13−2は、図11Bの第一の構成と同様のものであるので、ここでの詳細な説明は省略する。なお、TS作成部13−2は、作成したTSパケット群を画像配信部14へ出力する。
【0098】
次に、図16A及び図16Bの構成を有する符号化部12及び多重化部13の動作について、図17A及び図17Bを参照しながら説明する。なお、図17Aは、図16Aの構成を有する符号化部12の各構成要素についての処理シーケンスを表しており、図17Bは、図16Bの構成を有する多重化部13の各構成要素についての処理シーケンスを表している。
【0099】
なお、図17A及び図17Bにおいて、図12A若しくは図12Bに示した符号化部12及び多重化部13の第一の構成の場合における処理シーケンスでのものと同様の処理内容については同一の符号をしている。
【0100】
まず、前述した図9のS103において、取り込んだ映像信号が画像入力部11から符号化部12に渡される。すると、図12AのS111において、各種NAL作成部12−2は、この映像信号の入力を受け取ると、この映像信号から各種NALユニットを作成して画像バッファ部12−1に蓄える処理を行う。より具体的には、各種NAL作成部12−2は、S112においてAUデリミタNALを作成して画像バッファ部12−1に蓄える処理を行い、続くS113においてSPSNALを作成して画像バッファ部12−1に蓄える処理を行う。そして更に、続くS114においてPPSNALを作成して画像バッファ部12−1に蓄える処理を行い、続く115においてVideoNALを作成して画像バッファ部12−1に蓄える処理を行う。
【0101】
但し、図17Aにおいては、S115の処理でVideoNALが作成されてから画像バッファ部12−1に蓄えられるまでの間に、S117として、SEINAL作成部12−3が前述したSEINALを作成して、画像バッファ部12−1に蓄える処理を行う。ここで、SEINAL作成部12−3は、各種NAL作成部12−2から通知される、作成した画像データ量を、制御部15から通知される前述した配信レートに相当する配送データ量から減算することで、このときのSEINALのデータ量を決定する。なお、SEIのデータ量は、SEINALのデータ量の決定値から、SEINALのヘッダ情報のデータ量を更に減算して決定する。
【0102】
その後、S116において、以上のようにして画像バッファ部12−1に蓄えられた各種NALユニットが、多重化部13により順に読み出され、ESデータとして多重化部13へと出力される。
【0103】
次に、図17BのS121において、このESデータの入力を受け取ると、PES作成部13−1は、S122において、このESデータからPESパケットを作成して、TS作成部13−2へ出力する処理を行う。
【0104】
次に、PESパケットをPES作成部13−1から受け取ったTS作成部13−2は、S124において、このPESパケットを格納したTSパケット群を作成して出力する処理を行う。
【0105】
ここで図18について説明する。図18は、符号化部12及び多重化部13がそれぞれ図16A及び図16Bのように構成されている画像符号化装置1を備えた画像データ配信システム3の各部から出力されるデータ列のデータ量の変化を模式的に図解したものである。この図18を前述した図4と対比して、SEINAL作成部12−3による配信データレートの調整の効果を説明する。
【0106】
前述したように、図4においては、配信データレートの調整のために、前述したフィラーデータを、符号化データと共に画像バッファ部に蓄えるようにしていた。従って、PESパケットにおける前述したフィラーNALの格納部分を格納したTSパケットは、TSペイロードが値:0xffのフィラーデータで埋め尽くされている。このため、ビットスタッフィングによるビット「0」の挿入が多数回行われる結果、モデムから送出されるデータ量は、多重化部から出力されたTSパケットのデータ量から大幅に増加する。
【0107】
一方、SEINAL作成部12−3による前述したSEINALのデータ量を調整して配信データレートを調整する場合には、SEINALのペイロード内に所定ビット列が存在しないので、ビットスタッフィングによるビット「0」の挿入は行われない。従って、図18に図解されているように、配信側モデム2から送出されるデータ量の、多重化部13から出力されたTSパケットのデータ量からの増加が抑制される。
【0108】
なお、図14に図解されているような、標準的な構成を有するコンピュータに所定の制御プログラムを実行させることで、図16AにおけるSEINAL作成部12−3を、当該コンピュータで構成することも可能である。このようにする場合には、まず、後述するSEINAL作成処理をMPU31に行わせるための制御プログラムを作成する。作成された制御プログラムはハードディスク装置34若しくは可搬型記録媒体40に予め格納しておく。そして、MPU31に所定の指示を与えてこの制御プログラムを読み出させて実行させる。こうすることで、図14のコンピュータにおけるMPU31がSEINAL作成部12−3として機能する。
【0109】
ここで図19について説明する。図19は、コンピュータをSEINAL作成部12−3として機能させるためにMPU31に行わせるSEINAL作成処理の処理内容をフローチャートで図解したものである。
【0110】
図19の処理が開始されると、MPU31は、まず、S141において、制御部15から通知される符号化ビットレート(前述した配信レート)を受信する処理を行う。
次に、S142において、MPU31は、各種NAL作成部12−2から通知される、当該各種NAL作成部12−2が作成した画像データ量の情報を受信する処理を行い、続くS143において、この情報を受信したか否かを判定する処理を行う。ここで、MPU31は、この画像データ量の情報を受信したと判定したとき(判定結果がYesのとき)にはS144に処理を進める。一方、MPU31は、この画像データ量の情報を受信していないと判定したとき(判定結果がNoのとき)にはS142へ処理を戻し、この画像データ量の情報の受信処理を再度試みる。
【0111】
次に、S144において、MPU31は、S141の処理で受信した配信データレートと、S142の処理で受信した作成画像データ量情報とから、作成するSEINALに格納するSEIのデータ量を決定する処理を行う。この処理では、受信した作成画像データ量情報を、受信した配信レートに相当する配送データ量から減算し、その減算結果から、SEINALのヘッダ情報のデータ量を更に減算する処理を行うことで、SEIのデータ量を決定する。
【0112】
次に、S145において、MPU31は、前述した所定ビット列(本実施形態では、2進数で「11111」)を含まない、0x55(すなわち2進数で「01010101」)の繰り返しのビット列をSEINALのペイロードに格納する処理を行う。そして、続くS146において、所定のヘッダ情報をこのペイロードに付加してSEINALを作成する処理をMPU31が行う。なお、このヘッダ情報では、前述したペイロードタイプ及びNALユニットタイプを、それぞれ、未登録の任意のユーザデータ(User Data Unregistered)及びSEINALを示す値に設定しておく。
【0113】
次に、S147において、MPU31は、S145及びS146の処理により作成したSEINALを、各種NAL作成部12−2が作成したPPSNALに続けて(すなわち、VideoNALの前に)、画像バッファ部に格納する処理を行う。その後、S147の処理が完了したときには、MPU31は、処理をS142へ戻し、各種NAL作成部12−2が作成した画像データ量の情報の受信処理以降の処理を改めて実行する。
【0114】
SEINAL作成部12−3では、ビットスタッフィング機能のデータ挿入対象となるビット列を生成しない。即ち、画像符号化装置1により出力されるデータは、配信レートを満たすデータでありながら、配信側モデム2におけるビットスタッフィング処理でデータ挿入の対象となるビット列を生成させないデータである。そのため、ビットスタッフィング機能により発生する伝送データ量の増加を抑制しつつ、データ列の伝送レートを調整することができる。
【0115】
以上までの処理がSEINAL作成処理である。この処理をMPU31に行わせることにより、図14の構成を有するコンピュータで、図16AにおけるSEINAL作成部12−3を構成することが可能になる。
【0116】
なお、図14の構成を有するコンピュータで、SEINAL作成部12−3を構成するのみならず、画像符号化装置1の各構成要素の一部若しくは全部を構成することも可能であることは、前述したとおりである。
【0117】
ところで、符号化部12を図16Aに図解されているように構成する代わりに、図20に図解されているように構成しても、映像データ列の配信における配信データレートの調整を行うことができる。次に、この図20に図解されている、符号化部12の構成の第三の例について説明する。
【0118】
図20に図解されている符号化部12が備えている構成は、図16Aの第二の構成におけるSEINAL作成部12−3が、無指定NAL12−4に置き換えられたものである。
【0119】
画像バッファ部12−1及び各種NAL作成部12−2は、図11Aの第一の構成と同様のものであるので、ここでの詳細な説明は省略する。但し、この第三の構成においても、各種NAL作成部12−2は、作成した画像データ量の情報を無指定NAL作成部12−4に通知する。
【0120】
無指定NAL作成部12−4は、H.264規格の項目7.4.1においてnal_unit_type 0 若しくは、24〜31として規定されている、格納データの内容が指定なし(unspecified )とされている種類のNALユニットを作成する。なお、以下の説明では、このNALユニットを「無指定NAL」と称することとする。
【0121】
但し、無指定NAL作成部12−4は、作成する無指定NALに格納するデータ列を、前述した所定ビット列を含まないビット列とする。特に、本実施形態では、無指定NAL作成部12−4が無指定NALに格納するビット列として、前述した所定ビット列(本実施形態では、2進数で「11111」)を含まない、例えば0x55(すなわち2進数で「01010101」)の繰り返しとする。ビット列の例は0x55に限るものではなく、例えば0xAA(すなわち2進数で「10101010」)などでも良い。即ちビットスタッフィングの処理対象となるビット列(本実施形態では、2進数で「11111」)を含まないビット列であれば良い。このようにしておくことで、配信側モデム2のビットスタッフィング処理部22がビットスタッフィング処理を行っても、このビット列に対してはビット「0」の挿入を行わないので、ビットスタッフィングによる伝送データ量の増加が抑制される。
【0122】
無指定NAL作成部12−4により作成された無指定NALは、各種NAL作成部12−2が作成した画像データ(符号化された映像データが格納されている各種NALユニットの集合体)と共に、画像バッファ部12−1へと出力される。このために、無指定NAL作成部12−4は、例えば、各種NAL作成部12−2が作成した各種NALユニットの集合体の出力の後に追加して、作成したSEINALを画像バッファ部12−1に出力する。
【0123】
なお、無指定NAL作成部12−4は、無指定NALに格納する上述したビット列の量の調整も行う。この調整は、作成する無指定NALのデータ量と各種NAL作成部12−2が作成した上述の画像データのデータ量との総和が、画像データ配信システム3から画像データ受信システム6への画像データ列の配信レートになるように行われる。なお、制御部15が符号化部12に通知する前述した符号化ビットレートは、この配信レートを表しているものとし、無指定NAL作成部12−4は、この通知と各種NAL作成部12−2が作成した画像データ量とに基づいて、上述したビット列の量を調整する。無指定NAL作成部12−4は、このようにして、画像データ配信システム3から画像データ受信システム6への画像データ列の配信における配信データレートの調整を行う。
【0124】
なお、符号化部12が図20の構成を備えている場合における多重化部13の構成は、図16Bに図解されている第二の構成と同一のものでよい。
次に、図20の構成を有する符号化部12の動作について、図21を参照しながら説明する。なお、図21は、図20Aの構成を有する符号化部12の各構成要素についての処理シーケンスを表している。
【0125】
なお、図21において、図12A及び図17Aに示した符号化部12の第一及び第二の構成の場合における処理シーケンスでのものと同様の処理内容については同一の符号をしている。
【0126】
まず、前述した図9のS103において、取り込んだ映像信号が画像入力部11から符号化部12に渡される。すると、図21のS111において、各種NAL作成部12−2は、この映像信号の入力を受け取ると、この映像信号から各種NALユニットを作成して画像バッファ部12−1に蓄える処理を行う。より具体的には、各種NAL作成部12−2は、S112においてAUデリミタNALを作成して画像バッファ部12−1に蓄える処理を行い、続くS113においてSPSNALを作成して画像バッファ部12−1に蓄える処理を行う。そして更に、続くS114においてPPSNALを作成して画像バッファ部12−1に蓄える処理を行い、続く115においてVideoNALを作成して画像バッファ部12−1に蓄える処理を行う。
【0127】
次に、図21においては、S118として、無指定NAL作成部12−4が前述した無指定NALを作成して、画像バッファ部12−1に蓄える処理を行う。ここで、無指定NAL作成部12−4は、各種NAL作成部12−2から通知される、作成した画像データ量を、制御部15から通知される前述した配信レートに相当する配送データ量から減算することで、このときの無指定NALのデータ量を決定する。なお、無指定NALに格納するビット列のデータ量は、無指定NALのデータ量の決定値から、無指定NALのヘッダ情報のデータ量を更に減算して決定する。
【0128】
その後、S116において、以上のようにして画像バッファ部12−1に蓄えられた各種NALユニットが、多重化部13により順に読み出され、ESデータとして多重化部13へと出力される。
【0129】
なお、その後の多重化部13での処理シーケンスは、図17に示したものと同一であるので、説明は省略する。
次に図22について説明する。図22は、符号化部12及び多重化部13がそれぞれ図20及び図16Bのように構成されている画像符号化装置1を備えた画像データ配信システム3の各部から出力されるデータ列のデータ量の変化を模式的に図解したものである。この図18を前述した図4と対比して、無指定NAL作成部12−4による配信データレートの調整の効果を説明する。
【0130】
前述したように、図4においては、配信データレートの調整のために、前述したフィラーデータを、符号化データと共に画像バッファ部に蓄えるようにしていた。従って、PESパケットにおける前述したフィラーNALの格納部分を格納したTSパケットは、TSペイロードが値:0xffのフィラーデータで埋め尽くされている。このため、ビットスタッフィングによるビット「0」の挿入が多数回行われる結果、モデムから送出されるデータ量は、多重化部から出力されたTSパケットのデータ量から大幅に増加する。
【0131】
一方、無指定NAL作成部12−4による前述した無指定NALのデータ量を調整して配信データレートを調整する場合には、無指定NALのペイロード内に所定ビット列が存在しないので、ビットスタッフィングによるビット「0」の挿入は行われない。従って、図18に図解されているように、配信側モデム2から送出されるデータ量の、多重化部13から出力されたTSパケットのデータ量からの増加が抑制される。
【0132】
なお、図14に図解されているような、標準的な構成を有するコンピュータに所定の制御プログラムを実行させることで、図20における無指定NAL作成部12−4を、当該コンピュータで構成することも可能である。このようにする場合には、まず、後述する無指定NAL作成処理をMPU31に行わせるための制御プログラムを作成する。作成された制御プログラムはハードディスク装置34若しくは可搬型記録媒体40に予め格納しておく。そして、MPU31に所定の指示を与えてこの制御プログラムを読み出させて実行させる。こうすることで、図14のコンピュータにおけるMPU31が無指定NAL作成部12−4として機能する。
【0133】
ここで図23について説明する。図23は、コンピュータを無指定NAL作成部12−4として機能させるためにMPU31に行わせる無指定NAL作成処理の処理内容をフローチャートで図解したものである。
【0134】
図23の処理が開始されると、MPU31は、まず、S151において、制御部15から通知される符号化ビットレート(前述した配信レート)を受信する処理を行う。
次に、S152において、MPU31は、各種NAL作成部12−2から通知される、当該各種NAL作成部12−2が作成した画像データ量の情報を受信する処理を行い、続くS153において、この情報を受信したか否かを判定する処理を行う。ここで、MPU31は、この画像データ量の情報を受信したと判定したとき(判定結果がYesのとき)にはS154に処理を進める。一方、MPU31は、この画像データ量の情報を受信していないと判定したとき(判定結果がNoのとき)にはS152へ処理を戻し、この画像データ量の情報の受信処理を再度試みる。
【0135】
次に、S154において、MPU31は、S151の処理で受信した配信データレートと、S152の処理で受信した作成画像データ量情報とから、作成する無指定NALに格納するビット列のデータ量を決定する処理を行う。この処理では、受信した作成画像データ量情報を、受信した配信レートに相当する配送データ量から減算し、その減算結果から、無指定NALのヘッダ情報のデータ量を更に減算する処理を行うことで、当該ビット列のデータ量を決定する。
【0136】
次に、S155において、MPU31は、前述した所定ビット列(本実施形態では、2進数で「11111」)を含まない、0x55(すなわち2進数で「01010101」)の繰り返しのビット列を無指定NALのペイロードに格納する処理を行う。そして、続くS156において、所定のヘッダ情報をこのペイロードに付加してSEINALを作成する処理をMPU31が行う。なお、このヘッダ情報では、前述したNALユニットタイプを、指定なし(unspecified )を示す値に設定しておく。
【0137】
次に、S157において、MPU31は、S155及びS156の処理により作成した無指定NALを、各種NAL作成部12−2が作成した画像データ(符号化データが格納されているNALユニットの集合体)に続けて、画像バッファ部に格納する処理を行う。その後、S157の処理が完了したときには、MPU31は、処理をS152へ戻し、各種NAL作成部12−2が作成した画像データ量の情報の受信処理以降の処理を改めて実行する。
【0138】
無指定NAL作成部12−4では、ビットスタッフィング機能のデータ挿入対象となるビット列を生成しない。即ち、画像符号化装置1により出力されるデータは、配信レートを満たすデータでありながら、配信側モデム2におけるビットスタッフィング処理でデータ挿入の対象となるビット列を生成させないデータである。そのため、ビットスタッフィング機能により発生する伝送データ量の増加を抑制しつつ、データ列の伝送レートを調整することができる。
【0139】
以上までの処理が無指定NAL作成処理である。この処理をMPU31に行わせることにより、図14の構成を有するコンピュータで、図20における無指定NAL作成部12−4を構成することが可能になる。
【0140】
なお、図14の構成を有するコンピュータで、無指定NAL作成部12−4を構成するのみならず、画像符号化装置1の各構成要素の一部若しくは全部を構成することも可能であることは、前述したとおりである。
【0141】
なお、本発明は、これまでに説明した実施の形態に限定されるものではなく、実施段階では、その要旨を変更しない範囲で種々変形することが可能である。
例えば、上述した実施形態では、H.264規格で規定の映像符号化により得られた画像データ列の配信における配信データレートを調整する画像符号化装置1について説明した。この代わりに、他の映像符号化方式に得られた画像データ列の配信における配信データレートの調整に本発明を使用することも可能である。更には、画像データ列以外のデータ列の伝送における伝送データレートの調整に本発明を使用することも可能である。
【0142】
また、上述した実施形態では、PPP接続におけるHLDC手順でのデータ伝送時におけるビットスタッフィングにより発生する伝送データ量の増加を抑制する画像符号化装置1について説明した。この代わりに、例えばUSB等の、デジタルデータ列を伝送する各種の伝送方式において行われるビットスタッフィングにより発生する伝送データ量の増加の抑制に本発明を使用することも可能である。
【0143】
なお、以上までに説明した実施形態に関し、更に以下の付記を開示する。
(付記1)
データレート調整装置とデータ送信装置とを有するデータ配信システムにおけるデータレート調整装置であって、
該データ送信装置は、
入力されたデータ列を送信する送信手段と、
該送信手段が送信するデータ列に、同一値のビットが所定個数連続している所定ビット列が含まれていた場合に、該同一値のビットとは異なる値のビットを、該データ列における該所定ビット列の次に挿入しておくビットスタッフィング手段と、
を有しており、
該データレート調整装置は、該所定ビット列とは異なるビット列を、該データ送信装置に入力されるデータ列に追加して、該データ列の配信における配信データレートを調整するデータレート調整手段を有する、
ことを特徴とするデータレート調整装置。
(付記2)
該所定ビット列は、該送信手段が送信するデータ列に追加される、フラグ同期制御でのデータ列伝送に使用するフラグであることを特徴とする付記1に記載のデータレート調整装置。
(付記3)
該データ列は、MPEG−2システム規格においてデータ多重化方式として規定されているであるトランスポートストリームであり、
該データレート調整手段は、該所定ビット列を含まないビット列がペイロードに格納されているトランスポートストリームパケットを該トランスポートストリームに追加して、該配信データレートを調整する、
ことを特徴とする付記1又は2に記載のデータレート調整装置。
(付記4)
該データレート調整手段は、該トランスポートストリームパケットのヘッダ情報に含まれている、該トランスポートストリームパケットのペイロードに格納されているデータの種類を示すパケットIDを、ヌルパケット(Null Packet)を示す値に設定することを特徴とする付記3に記載のデータレート調整装置。
(付記5)
該データ列は、符号化された映像データが格納されている、H.264規格で規定されているNAL(Network Abstraction Layer)ユニットの集合体であり、
該データレート調整手段は、該所定ビット列を含まないビット列が格納されているNALユニットを、該データ列であるNALユニットの集合体に追加して、該配信データレートを調整する、
ことを特徴とする付記1又は2に記載のデータレート調整装置。
(付記6)
該データレート調整手段は、H.264規格で規定されているNALユニットの種類のうちのひとつであるSEI(Supplemental Enhancement Information)NALに、該所定ビット列を含まないビット列を格納したものを、該データ列であるNALユニットの集合体に追加して、該配信データレートを調整することを特徴とする付記5に記載のデータレート調整装置。
(付記7)
該SEINALは、該SEINALのヘッダ情報に含まれている、該SEINALにおけるデータの格納構造を示すペイロードタイプを、未登録の任意のユーザデータ(User Data Unregistered)を示す値に設定することを特徴とする付記6に記載のデータレート調整装置。
(付記8)
該データレート調整手段は、H.264規格で未定義とされている種類のNALユニットのペイロードに、該所定ビット列を含まないビット列を格納したものを、該データ列であるNALユニットの集合体に追加して、該配信データレートを調整することを特徴とする付記5に記載のデータレート調整装置。
(付記9)
データレート調整装置とデータ送信装置とを有するデータ配信システムにおけるデータレート調整装置として演算処理装置を機能させるためのプログラムであって、
該データ送信装置は、
入力されたデータ列を送信する送信手段と、
該送信手段が送信するデータ列に、同一値のビットが所定個数連続している所定ビット列が含まれていた場合に、該同一値のビットとは異なる値のビットを、該データ列における該所定ビット列の次に挿入しておくビットスタッフィング手段と、
を有しており、
該演算処理装置に、
該所定ビット列とは異なるビット列を作成する作成処理、
データ列の入力を取得する取得処理、
該取得処理で取得したデータ列に、該所定ビット列とは異なるビット列を追加して、該データ列の配信における配信データレートを調整するデータレート調整処理、及び、
該データレート調整処理による調整後のデータ列を出力して該データ送信装置に入力させる出力処理、
を行わせる、
ことを特徴とするプログラム。
(付記10)
該所定ビット列は、該送信手段が送信するデータ列に追加される、フラグ同期制御でのデータ列伝送に使用するフラグであることを特徴とする付記9に記載のプログラム。
(付記11)
該データ列は、MPEG−2システム規格においてデータ多重化方式として規定されているであるトランスポートストリームであり、
該データレート調整処理は、該所定ビット列を含まないビット列がペイロードに格納されているトランスポートストリームパケットを該トランスポートストリームに追加して、該配信データレートを調整する、
ことを特徴とする付記9又は10に記載のプログラム。
(付記12)
該データレート調整処理は、該トランスポートストリームパケットのヘッダ情報に含まれている、該トランスポートストリームパケットのペイロードに格納されているデータの種類を示すパケットIDを、ヌルパケット(Null Packet)を示す値に設定することを特徴とする付記11に記載のプログラム。
(付記13)
該データ列は、符号化された映像データが格納されている、H.264規格で規定されているNAL(Network Abstraction Layer)ユニットの集合体であり、
該データレート調整処理は、該所定ビット列を含まないビット列が格納されているNALユニットを、該データ列であるNALユニットの集合体に追加して、該配信データレートを調整する、
ことを特徴とする付記9又は10に記載のプログラム。
(付記14)
該データレート調整処理は、H.264規格で規定されているNALユニットの種類のうちのひとつであるSEI(Supplemental Enhancement Information)NALに、該所定ビット列を含まないビット列を格納したものを、該データ列であるNALユニットの集合体に追加して、該配信データレートを調整することを特徴とする付記13に記載のプログラム。
(付記15)
該SEINALは、該SEINALのヘッダ情報に含まれている、該SEINALにおけるデータの格納構造を示すペイロードタイプを、未登録の任意のユーザデータ(User Data Unregistered)を示す値に設定することを特徴とする付記14に記載のプログラム。
(付記16)
該データレート調整処理は、H.264規格で未定義とされている種類のNALユニットのペイロードに、該所定ビット列を含まないビット列を格納したものを、該データ列であるNALユニットの集合体に追加して、該配信データレートを調整することを特徴とする付記13に記載のプログラム。
(付記17)
データレート調整装置とデータ送信装置とを有するデータ配信システムであって、
該データ送信装置は、
入力されたデータ列を送信する送信手段と、
該送信手段が送信するデータ列に、同一値のビットが所定個数連続している所定ビット列が含まれていた場合に、該同一値のビットとは異なる値のビットを、該データ列における該所定ビット列の次に挿入しておくビットスタッフィング手段と、
を有しており、
該データレート調整装置は、該所定ビット列とは異なるビット列を、該データ送信装置に入力されるデータ列に追加して、該データ列の配信における配信データレートを調整するデータレート調整手段を有する、
ことを特徴とするデータ配信システム。
【符号の説明】
【0144】
1 画像符号化装置
2 配信側モデム
3 画像データ配信システム
4 受信側モデム
5 画像再生装置
6 画像データ受信システム
7 通信ネットワーク
10 データレート調整装置
11 画像入力部
12 符号化部
12−1 画像バッファ部
12−2 各種NAL作成部
12−3 SEINAL作成部
12−4 無指定NAL作成部
13 多重化部
13−1 PES作成部
13−2 TS作成部
13−3 NULLTS作成部
14 画像配信部
15 制御部
21 データ列入力部
22 ビットスタッフィング処理部
23 フォーマット変換部
24 送信部
31 MPU
32 ROM
33 RAM
34 ハードディスク装置
35 入力装置
36 表示装置
37 インタフェース装置
38 記録媒体駆動装置
39 バス
40 可搬型記録媒体

【特許請求の範囲】
【請求項1】
データレート調整装置とデータ送信装置とを有するデータ配信システムにおけるデータレート調整装置であって、
該データ送信装置は、
入力されたデータ列を送信する送信手段と、
該送信手段が送信するデータ列に、同一値のビットが所定個数連続している所定ビット列が含まれていた場合に、該同一値のビットとは異なる値のビットを、該データ列における該所定ビット列の次に挿入しておくビットスタッフィング手段と、
を有しており、
該データレート調整装置は、該所定ビット列とは異なるビット列を、該データ送信装置に入力されるデータ列に追加して、該データ列の配信における配信データレートを調整するデータレート調整手段を有する、
ことを特徴とするデータレート調整装置。
【請求項2】
該所定ビット列は、該送信手段が送信するデータ列に追加される、フラグ同期制御でのデータ列伝送に使用するフラグであることを特徴とする請求項1に記載のデータレート調整装置。
【請求項3】
該データ列は、MPEG−2システム規格においてデータ多重化方式として規定されているであるトランスポートストリームであり、
該データレート調整手段は、該所定ビット列を含まないビット列がペイロードに格納されているトランスポートストリームパケットを該トランスポートストリームに追加して、該配信データレートを調整する、
ことを特徴とする請求項1又は2に記載のデータレート調整装置。
【請求項4】
該データ列は、符号化された映像データが格納されている、H.264規格で規定されているNAL(Network Abstraction Layer)ユニットの集合体であり、
該データレート調整手段は、該所定ビット列を含まないビット列が格納されているNALユニットを、該データ列であるNALユニットの集合体に追加して、該配信データレートを調整する、
ことを特徴とする請求項1又は2に記載のデータレート調整装置。
【請求項5】
該データレート調整手段は、H.264規格で規定されているNALユニットの種類のうちのひとつであるSEI(Supplemental Enhancement Information)NALに、該所定ビット列を含まないビット列を格納したものを、該データ列であるNALユニットの集合体に追加して、該配信データレートを調整することを特徴とする請求項4に記載のデータレート調整装置。
【請求項6】
該データレート調整手段は、H.264規格で未定義とされている種類のNALユニットのペイロードに、該所定ビット列を含まないビット列を格納したものを、該データ列であるNALユニットの集合体に追加して、該配信データレートを調整することを特徴とする請求項4に記載のデータレート調整装置。
【請求項7】
データレート調整装置とデータ送信装置とを有するデータ配信システムにおけるデータレート調整装置として演算処理装置を機能させるためのプログラムであって、
該データ送信装置は、
入力されたデータ列を送信する送信手段と、
該送信手段が送信するデータ列に、同一値のビットが所定個数連続している所定ビット列が含まれていた場合に、該同一値のビットとは異なる値のビットを、該データ列における該所定ビット列の次に挿入しておくビットスタッフィング手段と、
を有しており、
該演算処理装置に、
該所定ビット列とは異なるビット列を作成する作成処理、
データ列の入力を取得する取得処理、
該取得処理で取得したデータ列に、該所定ビット列とは異なるビット列を追加して、該データ列の配信における配信データレートを調整するデータレート調整処理、及び、
該データレート調整処理による調整後のデータ列を出力して該データ送信装置に入力させる出力処理、
を行わせる、
ことを特徴とするプログラム。
【請求項8】
データレート調整装置とデータ送信装置とを有するデータ配信システムであって、
該データ送信装置は、
入力されたデータ列を送信する送信手段と、
該送信手段が送信するデータ列に、同一値のビットが所定個数連続している所定ビット列が含まれていた場合に、該同一値のビットとは異なる値のビットを、該データ列における該所定ビット列の次に挿入しておくビットスタッフィング手段と、
を有しており、
該データレート調整装置は、該所定ビット列とは異なるビット列を、該データ送信装置に入力されるデータ列に追加して、該データ列の配信における配信データレートを調整するデータレート調整手段を有する、
ことを特徴とするデータ配信システム。

【図1】
image rotate

【図2】
image rotate

【図4】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11A】
image rotate

【図11B】
image rotate

【図12A】
image rotate

【図12B】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16A】
image rotate

【図16B】
image rotate

【図17A】
image rotate

【図17B】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図3】
image rotate

【図5】
image rotate


【公開番号】特開2011−23965(P2011−23965A)
【公開日】平成23年2月3日(2011.2.3)
【国際特許分類】
【出願番号】特願2009−167058(P2009−167058)
【出願日】平成21年7月15日(2009.7.15)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】