(57)【特許請求の範囲】
【請求項１】
入力された映像データをエンコードして映像ストリームを出力するエンコーダと、前記エンコーダから出力された映像ストリームをパケット化するパケット処理部と、を備え、
前記パケット処理部は、前記エンコーダにより第一のターゲットビットレートでエンコードした所定のＭＢ処理数のパケットを纏めたオリジナルデータ群と、前記オリジナルデータ群と同一データの冗長データとを作成し、前記オリジナルデータ群のビット数に応じて、伝送時の第二のターゲットビットレートを所定のMB処理数分に換算した第二のターゲットビット数を超えないように前記冗長データの挿入回数を制御するものであり、前記第一のターゲットビットレートは前記第二のターゲットビットレートより小さいことを特徴とする映像送信装置。
【請求項２】
入力された映像データをエンコードして映像ストリームを出力するエンコーダと、前記エンコーダから出力された映像ストリームをパケット化するパケット処理部と、を備え、
前記パケット処理部は、前記エンコーダにより第一のターゲットビットレートでエンコードした所定のＭＢ処理数のパケットを纏めたオリジナルデータ群と、前記オリジナルデータ群データエラーを訂正するための冗長データを作成し、前記オリジナルデータ群のビット数に応じて、伝送時の第二のターゲットビットレートを所定のMB処理数分に換算した第二のターゲットビット数を超えないように前記冗長データの挿入回数を制御するものであり、前記第一のターゲットビットレートは前記第二のターゲットビットレートより小さいことを特徴とする映像送信装置。
【請求項３】
請求項１または２に記載の映像送信装置において、
前記パケット処理部は、さらに映像ストリーム以外のデータをパケット化し多重化する機能を有し、前記オリジナルデータ群のビット数に応じて、挿入するパケットがターゲットビット数を超えないように前記映像ストリーム以外のデータを挿入することを特徴とする映像送信装置。
【請求項４】
請求項１乃至３のいずれかに記載の映像送信装置であって、前記オリジナルデータ群と前記冗長データの先頭に前記オリジナルデータ群と前記冗長データを識別する識別パケットを挿入することを特徴とする映像送信装置。
【請求項５】
請求項１乃至４のいずれかに記載の映像送信装置であって、さらに、前記映像ストリームをパケット化したものを複数纏めてフレームを生成し、前記フレームを伝送路に送信するフレーム送信部と、を備え、
前記フレーム送信部は、スタッフィングデータを挿入する機能を有し、所定のＭＢ処理数毎にアラインメントとする分のスタッフィングデータを挿入することを特徴とする映像送信装置。
【請求項６】
請求項１ないし５のいずれかに記載の映像送信装置において、さらに暗号化部を備え、伝送路にデータを出力する際に暗号化を施してデータを出力することを特徴とする映像送信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像送信装置、映像受信装置、および映像伝送システムに関するものである。
【背景技術】
【０００２】
本技術分野の背景技術として、例えば、特開平１０−３０８９３２号公報（特許文献１）がある。該公報には「［課題］データ伝送方法において、低遅延性及び映像の実時間性を保証した上で、映像データのエラー及びロスの回復を行うことが可能な技術を提供する。［解決手段］実時間で発生する映像データをノード・ノード間またはエンド・エンド間で高品質にかつリアルタイムに伝送するデータ伝送方法において、複数個の伝送パケットをひとまとめにしたものをブロックとし、受信側で、１ブロック内の各伝送パケットがすべて正しく受信されたことを表すＡＣＫ信号を含む確認応答、あるいは、１ブロック内のいずれかの伝送パケットが正しく受信されなかったことを表すＮＡＫ信号を含む確認応答をブロック単位で生成して送信側へ返送し、送信側で、前記受信側からのブロック単位の確認応答がＮＡＫ信号を含む場合に、再送が必要な伝送パケットのみを複数個コピーして受信側へ再送する。」と記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−３０８９３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来、車の後方を確認する車載カメラ等の映像伝送システムがある。運転手はカメラ映像をモニタで確認しながら運転を行うため、撮影からモニタ表示までの遅延を少なくし、低遅延でシステムを実現したい。ゲーム機、テレビ電話なども表示されたものに対して行動を行うため、映像送出から表示までの期間を低遅延で実現することが必要である。映像送出から表示するモニタまでの伝送できるビットレートが低い場合は、映像を送出する前に情報圧縮を行ない、モニタ側で圧縮伸張することでシステムを実現する。
【０００５】
特許文献１には、実時間で発生する映像ストリームを２点間で低遅延で伝送する装置が示されている。この装置では受信側から送信側に伝送単位のパケットが正しく受信された、もしくは失敗したことを示す応答を返し、送信側は応答に従いパケットを再送する。
上記特許文献１では、映像ストリームの伝送において、エラーを検知した後に映像データの再送要求を行い、エラー訂正を行うため、映像データが再送されるまでの間受信装置は映像データのデコード処理を行うことができず、データ伝送に遅延が生じる。
【０００６】
また、送信装置に多数の受信装置を接続し、ブロードキャストする場合、送信装置はエラー発生時に各受信装置の再送要求に個別に応答して再送することが極めて困難である。
【０００７】
本発明は、エラー耐性を備えつつ、遅延発生を抑制して映像データを伝送可能な映像伝送システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的は、特許請求の範囲に記載の発明により達成される。
【発明の効果】
【０００９】
本発明によれば、エラー耐性を備えつつ、遅延発生を抑制して映像データを伝送可能な映像伝送システムを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】第一の実施例における映像伝送システムの一例を示す概略図である。
【図２】第一の実施例における映像ストリームのデータ階層構造例を示す図である。
【図３】第一の実施例におけるデコーダの構成例を示す図である。
【図４】第一の実施例における伝送エラーが発生したときのＶＬＤ３３１のデコード出力例を示す図である。
【図５】第一の実施例におけるピクチャデータ構造例を示す図である。
【図６】第四の実施例におけるＴＳパケットの一例を示す図である。
【図７】第一の実施例におけるスライスＡのエラー訂正時間を示すパイプラインの一例を示す図である。
【図８】第三の実施例におけるＶＢＶのビット量の推移例を表す図である。
【図９】第一の実施例におけるデマルチプレクサ３１０の制御フロー例を示す図である。
【図１０】第一の実施例におけるスライス数とばらつき幅の関係の一例を示すグラフである。
【図１１】第一の実施例におけるスライス毎のビットレート例を示す図である。
【図１２】第一の実施例におけるスライス毎の冗長化の例を示す図である。
【図１３】第一の実施例におけるオーディオデータの挿入例を示す図である。
【図１４】第五の実施例における映像送信システムの一例を示す図である。
【図１５】第五の実施例における映像受信システムの一例を示す図である。
【図１６】第五の実施例におけるスタッフィング用のＴＳパケットを挿入例を示す図である。
【図１７】第四の実施例におけるＴＳパケットの生成方法の例を示す図である。
【図１８】第五の実施例におけるＴＳパケットの生成方法の一例を示す図である。
【図１９】図１８のＴＳパケットにおけるデータの欠落判定及び冗長データの破棄方法の一例を示す図である。
【図２０】第五の実施例におけるＴＳパケットの生成方法の一例を示す図である。
【図２１】図２０のＴＳパケットにおけるデータの欠落判定及び冗長データの破棄方法の一例を示す図である。
【図２２】第六の実施例における映像伝送システムの例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を図面を用いて説明する。
【実施例１】
【００１２】
図１は映像送信装置１００、ネットワーク２００、映像受信装置３００からなる映像伝送システムの一例を示す概略図である。
映像送信装置１００はエンコーダ１１０、バッファ１２０、マルチプレクサ１３０から構成される。
エンコーダ１１０は映像データを受け取り、符号化を行い映像ストリームを出力する。符号化の代表的な例としてはＭＰＥＧ２Ｖｉｄｅｏ（ＩＳＯ／ＩＥＣ１３８１８−２ Ｖｉｄｅｏ）などが知られている。
バッファ１２０はマルチプレクサ１３０が出力する映像ストリームを記憶する媒体である。
マルチプレクサ１３０はエンコーダ１１０から映像ストリームを受け取り、バッファ１２０に格納する。その後、バッファ１２０から映像ストリームを読み出し、伝送の単位であるパケットに分割してネットワーク２００に出力する。パケット化の例としてＭＰＥＧで規定されたＴＳ（Ｔｒａｎｓｐｏｒｔ  Ｓｔｒｅａｍ）パケットが知られている。
【００１３】
映像受信装置３００はデマルチプレクサ３１０、バッファ３２０、デコーダ３３０から構成される。
デマルチプレクサ３１０はネットワーク２００からパケットを受け取り、パケット受信処理、パケット解析処理、バッファ３２０書き込み処理、バッファ３２０読み出し処理を行い、デコーダ３３０に出力する。
バッファ３２０はデマルチプレクサ３１０が出力する映像ストリームを記憶する媒体である。
デコーダ３３０はデマルチプレクサ３１０から映像ストリームを受け取り、復号処理を行い映像データを出力する。また、伝送エラー検出時にエラー検出の制御情報を出力する。
【００１４】
映像ストリームは階層化されて符号化され、伝送が行われる。図２を用いて、ＭＰＥＧ−２規格を用いて映像を符号化し、伝送するときのデータ階層構造を説明する。
エンコーダ１１０は映像データを符号化の処理単位であるマクロブロック（ＭＢ）に分割し、動き予測符号化、周波数変換、量子化を行い、可変長符号化を行いマクロブロックデータ４１０を作成する。
スライス４２０はマクロブロックデータを１つ以上含むデータであり、映像ストリーム中で固有のコードであるスライスヘッダ４２１を持つ。
ピクチャ４３０はスライスを１つ以上含む表示画面を構成するデータであり、映像ストリーム中で固有のコードであるピクチャヘッダ４３１を持つ。
ＧＯＰ４４０はピクチャを１つ以上含むデータであり、先頭のピクチャデータはすべて画面内符号化が行われたマクロブロックで構成される。この場合、先頭のピクチャデータのみを用いて表示画面をデコードできる。続くピクチャに含まれるマクロブロックデータは先にデコードしたピクチャデータを参照し、動き補償を行う画面間符号化を選択可能である。ＧＯＰ４４０の先頭には映像ストリーム中で固有のコードであるＧＯＰヘッダ４４１を持つ。
シーケンス４５０はＧＯＰを１つ以上含むデータであり、エンコーダ１１０が出力する映像ストリームに等しい。シーケンス４５０の先頭には映像ストリーム中で固有のコードであるシーケンスヘッダ４５１を持つ。
シーケンス４５０はマルチプレクサ１３０にて、ＰＥＳ（Ｐａｃｋｅｔｉｚｅｄ Ｅｌｅｍｅｎｔａｒｙ Ｓｔｒｅａｍ：パケット化されたストリーム）４６０に分割され、ＰＥＳヘッダ４６１を付記される。
ＰＥＳ４６０は伝送する単位であるＴＳパケット４７０に分割される。ＴＳパケット４７０は１８８バイトの固定長のパケットであり、先頭に伝送するデータを区別するための識別番号であるＰＩＤや連続なカウンタでＴＳパケットのロスを検出するためのコンティニュティカウンタを含むＴＳヘッダ４７１が付記される。
【００１５】
図３はデコーダ３３０の構成を示す図である。
デコーダ３３０はＶＬＤ（Ｖａｒｉａｂｌｅ Ｌｅｎｇｔｈ Ｄｅｃｏｄｅ）３３１とＭＢ復号処理部３３２から構成される。
ＶＬＤ３３１は映像ストリーム、すなわちシーケンス４５０を受け取り、ＧＯＰヘッダ４４１、ピクチャヘッダ４３１、スライスヘッダ４２１を検出し、マクロブロックデータ４１０の先頭位置から、可変長復号を行う。
ＭＢ復号処理部３３２はＶＬＤ３３１から可変長復号を行った後のマクロブロックデータ４１０を受け取り、逆量子化、逆周波数変換、動き補償を行い、映像データを出力する。
【００１６】
ここで図４を用いて、映像ストリームの伝送において、伝送エラーが発生したときのＶＬＤ３３１のデコード処理を説明する。
図４（Ａ）はエンコーダ１１０が出力するスライスデータを示し、ＭＢ＃０からＭＢ＃ｎまでのマクロブロックデータを含む。
図４（Ｂ）は図４（Ａ）スライスデータをＴＳパケットに分割してネットワーク２００を通じて伝送するとき、エラー発生部４２２に相当するＴＳパケットが伝送エラーにより欠落したときにデコーダ３３０がネットワーク２００を通じて受け取るスライスデータを示す。
図４（Ｃ）はＶＬＤ３３１が図４（Ｂ）のスライスデータをデコードして解釈したマクロブロックデータの配置を示す。マクロブロックデータにはストリーム中で固有のコードであるヘッダ情報が付属していないため、ＶＬＤ３３１は図４（Ｂ）の映像ストリームをデコードする際、マクロブロックデータの境界が図４（Ａ）と一致しているか確認しながら可変長復号を行うことができない。従ってＭＢ＃３の可変長復号処理において、ＭＢ＃３先頭部分のデータの後に不連続となるＭＢ＃５の終端データ４２３を入力されてもＶＬＤ３３１はデータが不連続であることを認識せず処理を続行し、ＭＢ＃６の途中のデータを用いてスライスデータにＭＢ＃３Ｂのマクロブロックデータが含まれると認識する。以後、ＶＬＤ３３１は誤ったマクロブロックデータ境界を用いて可変長復号処理を進めるため、図４（Ａ）と異なるマクロブロックデータを出力する。
ＶＬＤ３３１はＭＢ＃（ｍ＋１）を可変長復号するため、スライスヘッダ４２４を読み込んだときにマクロブロック境界の認識を誤っていることを初めて検出できる。
【００１７】
図５に示す本実施例では、マルチプレクサ１３０は、ピクチャデータに含まれるスライスデータの後に同じスライスデータを冗長に出力するよう構成する。スライスデータに含まれるＭＢ数は、映像送信装置１００と映像受信装置３００で固定の数にあらかじめ定めておき、ＶＬＤ３３１はスライスＡ４３２を可変長復号処理する際、あらかじめ定めたＭＢ分のデータをデコードしたとき、映像ストリームの次のデータとして、映像ストリーム中で固有のコードであるスライスヘッダが存在するかを一致比較する。スライスヘッダと一致しない場合はデマルチプレクサ３１０とＭＢ復号処理部３３２にエラー検出の制御信号を送り、続いてデマルチプレクサ３１０から送られるスライスＡ４３３の可変長復号を行う。
図９に示すように、デマルチプレクサ３１０はエラー検出の制御信号を受け取った場合（Ｓ１０２）、冗長に出力されたスライスＡ４３３を出力し、エラー検出を受け取らない場合（Ｓ１０３）はスライスＢ４３４を出力する。
ＭＢ復号処理部３３２はエラー検出の制御信号を受け取った場合はスライスＡ４３２に含まれるマクロブロックデータの復号処理結果を破棄し、続いてＶＬＤ３３１から入力されるスライスＡ４３３に含まれるマクロブロックデータの復号処理を行い、その結果を出力する。
【００１８】
上記の例ではスライスデータに含まれるＭＢ数はあらかじめ定めておくとしたが、映像ストリームを送信する毎に映像送出装置１００と映像受信装置３００で通信を行い、スライスデータに含まれるＭＢ数を定めてもよい。
ＶＬＤ３３１はスライスＡ４３２を可変長復号処理する際、マクロブロックデータの処理途中でスライスヘッダを検出したときは、デマルチプレクサ３１０およびＭＢ復号処理部３３２にエラー検出の制御信号を送り、続くスライスＡ４３３の可変長復号を行うようにしてもよい。
【００１９】
本実施例の伝送システムでは、画面間参照を行なわないＩピクチャと、前方向予測のみ行なうＰピクチャを用いる。これにより、ピクチャデータをデコードする順番と表示する順番を同じにでき、デコードする順番を表示する順番に並べ替えることによる遅延を発生させることなく、表示開始までの時間を低遅延に抑えることができる。
【００２０】
また、ビットレートのばらつきをスライス単位で均一にレート制御することで、１ピクチャのエンコード処理が終了する前にスライスデータの伝送を開始し、バッファ３２０に数スライスに格納したところでデコードしても、バッファ１２０、バッファ３２０のアンダーフロー、オーバーフローを起こさないで、画像データをリアルタイムで出力することができる。例えば、各スライスごとのターゲット符号量に対してビットレートのばらつきがあっても、５スライスでターゲットビットレートへの収束が保証できれば、エンコーダ１１０で、５スライス分ストリームを生成した段階で多重化処理し、ターゲットビットレートで伝送し、映像受信装置３００で、同じく５スライス分データを受信した段階で、デコードを開始すればよい。数スライスでレートを収束させることは、スライスエンコード中の各ＭＢごとの量子化ステップをターゲットビットレートに対する余裕度を見ながら制御することで、一般に実現可能である。このように、数スライス低遅延伝送システムを原理上構築する事が可能である。１９２０ｘ１０８０のＨＤサイズの画像の１ＭＢライン（縦１６ライン）で１スライスを構築する場合、約０．５ｍｓが１スライスのディレイであり、上記のように５ラインでビットレートが収束する場合には、映像送信装置１００、映像受信装置３００で各々２．５ｍｓずつの遅延になるため、合計約５ｍｓという低遅延での伝送が可能となる。
【００２１】
次に、低遅延を保持しつつ、エラー耐性を上げる方法について述べる。
スライスデータを冗長に出力することによって、例えば伝送時に確率３０％でスライスデータの伝送エラーが発生する場合、いずれかのスライスデータは伝送エラーを起こさず伝送できる確率が上がる。すなわち、図５の例では２つのスライスデータを出力するので、２つのスライスともエラーが生じ、スライスデータが正しく伝送できない確率は、３０％ｘ３０％＝９％になる。このように、スライスデータに複数個転送することで、エラー耐性を高くする事が可能である。
【００２２】
また、図７に示すようにデマルチプレクサ３１０で行なわれるパケット受信処理、パケット解析処理、バッファ３２０書き込み処理、バッファ３２０読み出し処理、およびＶＬＤ３３１で行なわれる可変長復号処理はパイプライン化して処理される。図７（ａ）に示す従来例のようにデータの再送によってエラーを訂正する場合は、可変長復号処理でエラーを検出したとき、処理中のパイプラインを一旦クリアし、再送されるデータを待った上でパイプライン処理を再開する必要があり、スライスＡを正しく可変長復号するまでにｔ１の時間を要する。一方、図７（ｂ）に示す本実施例ではスライスデータは冗長に送られているので、ＶＬＤで伝送エラーを検知した場合、パイプライン処理をクリアせず処理が続行でき、ｔ２の時間でスライスＡを正しく可変長復号できる。デマルチプレクサ３３０、ＶＬＤ３３１は、映像ストリームのビットレートよりも高速に処理することが容易であり、エラー訂正を行なったスライスＡのデータを１スライス分のＶＬＤ処理遅延程度で得られる。伝送側のマルチプレクサ１３０の処理も同様にパイプライン化されているため、データを再送する場合、デコード側と同様の遅延が発生する。
【００２３】
よって本実施例に示す映像伝送システムは低遅延でかつエラー耐性の高い伝送システムを実現することができる。
【００２４】
また、映像ストリームにエラーが発生したときはスライスデータ単位で映像データを差し替えるので、デコーダのエラー訂正回路が不要となり、エラー訂正が低コストでできる。
【００２５】
また、映像ストリーム内で固有のコードであるスライスヘッダを冗長化するデータ群の単位としているので、確実にエラーを検知することができ、冗長データ群を用いたエラー訂正が可能になる。
【００２６】
また、映像ストリーム内で固有のコードであるスライスヘッダを用いてデコーダはデータ群のエラーを検出できるようになる。
【００２７】
なお、図１に示す例ではネットワーク２００に接続する映像受信装置３００を１つとしたが、２つ以上の映像受信装置を接続してもよい。本方式では映像受信装置でエラーが発生しても、映像送信装置１００に再送要求を行わずに訂正できるため、映像送信装置１００の負荷が増えることなく映像伝送システムを構成できる。
【００２８】
図４に示す例ではエラーの検出をスライスヘッダをきっかけに行ったが、ＶＬＤ３３１で可変長復号を行う際、復号を行うためのコードテーブルにない符号を検出したときにエラーとしてもよい。
【００２９】
図５に示す例ではピクチャデータに含まれる同じスライスデータを２つとしたが、エンコーダ１１０は３つ以上の同じスライスデータを含むよう符号化処理を行ってもよい。冗長に出力するスライスデータを増やすことで、冗長に出力したスライスにもエラーが含まれている場合でも、エラーのないスライスを低遅延で得ることが可能になる。
【００３０】
図５に示す例では1スライス毎に冗長なスライスを挿入しているが、複数スライス単位で冗長なスライス出力を行ってもよい。最初に送信するスライスデータと冗長に出力したスライスデータの間隔をあけることで特定の部分に集中してエラーが発生しても回避できるようになる。
【００３１】
実施例１で特に数ｍｓオーダーの低遅延化を実現しようとした場合の注意点を下記に述べる。通常は伝送路の制限や、ＴＳパケット生成の処理速度の制限などで処理できるデータの上限が決まっており、もし制限の上限以上のデータが発生した場合、データをバッファに蓄えることになりそれが遅延となる。さらに映像受信装置は、映像送信装置の遅延が一定であることを前提にデコードの開始タイミングとデコード画像の表示タイミングを制御しているため、デコード処理が終わる前に画像が表示されてしまうという問題が生じる。これを画像破綻と呼ぶ。この画像破綻が起こらないようにするには、スライスまたは所定ＭＢ数単位でレートを一定にして、遅延の無いようにしなければいけないが、一般的には少ないＭＢ数単位でレートを一定にすることは難しい。
【００３２】
ここで、図１０を用いて具体的に説明する。図１０はスライス数とばらつき幅のグラフを表している。スライス数とは、１ＭＢラインを１スライスとした時に、ターゲットビット数に収束させるスライスの数を表しており、例えばフルＨＤの画像を1ピクチャ毎にビット数を一定にしたい場合のスライス数は６８（１０８８／１６＝６８）となる。ばらつき幅とは、ターゲットビット数を平均値として計算した分散の値である。図１０よりターゲットビット数に収束させるスライス数を少なくすればするほど、ばらつき幅は大きくなり、逆にスライス数を多くするほどばらつき幅が小さいことがわかる。
【００３３】
数ｍｓオーダーの低遅延化を実現するためには、デコードの開始タイミングを早めるためにターゲットビット数に収束させるスライス数を少なくしたいが、画像破綻が起こらないようにするためには実際の発生ビット量の最大値までデコードを開始できないため、スライス数を少なくしても遅延時間を早くできない場合がある。例えば、１スライスのターゲットビット数を１Ｋｂｙｔｅ、実際の発生ビット数の最大値が３Ｋｂｙｔｅであるとすると、映像受信装置では３Ｋｂｙｔｅ分データがバッファに溜まるのを待ってからデコードを開始しなければいけないため、結局３Ｋｂｙｔｅ分（３スライス分）の遅延が発生してしまう。
【００３４】
上記問題点を解決する手法を以下に述べる。冗長データによりエラー耐性を強化することを行う映像伝送システムにおいては、オリジナルデータと冗長データの合計ビット数が一定になっていれば良いので、パケット処理部で発生ビット数に応じて冗長データの挿入回数を制御することで所定ＭＢ数単位のビット数を一定にする。前記パケット処理部とは、図１のブロック図ではマルチプレクサ１３０に相当し、映像ストリームからＴＳパケットを生成する機能と冗長データを作成する機能を持つ。
【００３５】
例として、伝送時の１スライスのターゲットビット数を４Ｋｂｙｔｅとして、オリジナルデータの他に３個の冗長データを送信したい場合、つまりエンコーダの１スライスのターゲットビット数を１Ｋｂｙｔｅに設定する場合について説明する。ここで、オリジナルデータとは、ストリームデータをＴＳパケット化したデータでり複数個のＴＳパケット群である。冗長データとは、ＴＳパケット内のストリームデータはオリジナルデータと同一のデータであり、ヘッダに関しては映像受信装置がオリジナルデータと冗長データを区別できるように変更する。
【００３６】
図１１は、１スライス毎のビット数の例を表している。１スライス毎のビット数は図１０のグラフの結果よりばらつき幅が大きくなる。そのため、１Ｋｂｙｔｅをターゲットビット数としてエンコードを行ったが、２スライス目は約１．６Ｋｂｙｔｅ、５スライス目は約２．５Ｋｂｙｔｅとなってしまっている。
【００３７】
図１２は、エンコードしたオリジナルデータと冗長データの合計が４Ｋｂｙｔｅとなるように、冗長データの挿入回数を制御した例である。２スライス目は１．６Ｋｂｙｔｅなので１個だけ冗長データを作成する。一方、５スライス目はオリジナルデータが２Ｋｂｙｔｅを超えており、冗長データを作成すると４Ｋｂｙｔｅを超えてしまうので、冗長データを作成しない。その他の１Ｋｂｙｔｅ以下のスライスは、３個の冗長データを作成すると、すべてのスライスを４Ｋｂｙｔｅ以内に抑えることができる。この冗長データの挿入回数を式で表すと、「伝送時の１スライスのターゲットビット数／１スライスエンコード後の発生ビット数」の小数点以下の値を切り捨てた整数値となる。
【００３８】
このように、発生したビット数に応じて冗長データの挿入回数を制御することで、１スライスと少ないＭＢ処理数でビット数を一定以下に抑えることが可能となる。１スライスのビット数が一定なので、映像受信装置では１スライス分のデータを受信した段階でデコード処理を開始することができる。そのため、１スライスの遅延という低遅延での伝送が可能となる。さらにターゲットビット数を超えることの無い範囲で最大限にエラー耐性を付けることが可能となる。
【００３９】
図１３は遅延を発生させることなくオーディオＴＳパケットの挿入する例を表している。前記パケット処理部（マルチプレクサ１３０）はさらにオーディオをＴＳパケット化する機能を持っているものとする。このパケット処理部では、オーディオＴＳパケットのビット数とターゲットビット数とを比較して、ターゲットビット数より少ない、かつオーディオＴＳパケットを挿入してもターゲットビット数を超えない場合にオーディオＴＳパケットを挿入する。図１３では、１ＫｂｙｔｅのオーディオＴＳパケットは５スライス目に挿入してもターゲットビット数を超えることがないので５スライス目に挿入している。このオーディオＴＳパケットは、リップシンクが取れなくならない範囲でビット数が少ないスライスにオーディオＴＳパケットを挿入することで、遅延を発生させることなくデータを伝送できる。図１３では、オーディオＴＳパケットを挿入する例を説明したが、オーディオＴＳパケットでなくても映像受信装置の制御用データでもよい。
【００４０】
以上実施例１では、冗長データのストリームデータはオリジナルデータと同一のデータとすると説明したが、デッドコピーでなく、エラー訂正符号や、オリジナルデータをさらに圧縮したデータなど、オリジナルデータにエラーが発生したときにオリジナルデータを復元できるデータであれば良い。さらに、この冗長データの作成方法は、オリジナルのデータ量に応じて変更しても良い。さらに、スライス単位で冗長化データを制御する例を説明したが、冗長化を行う単位は、所定のＭＢ処理単位、所定のＢｙｔｅ数単位、ＴＳパケット単位などの単位でもよい。
【実施例２】
【００４１】
本発明の第二の実施例では、デマルチプレクサにおけるエラー検出方法について述べる。構成は図１と同様であるため、説明を省略する。
【００４２】
図５に示す例ではスライスＡ４３２の直後にスライスＡ４３３が続くとしたが、本実施例では映像送信装置１００はスライスＡ４３２とスライスＡ４３３の間にスライスＡ４３２の情報、例えばチェックサム値、ＣＲＣ値、もしくはスライス長などの誤り検出符号を付加する。デマルチプレクサ３１０は映像ストリームを受信し、バッファ３２０に書き込む際にこれら誤り検出符号を用いてエラー検出を行う。スライスＡ４３２からエラーを検出し、スライスＡ４３３からはエラーを検出しなかった場合、デマルチプレクサ３１０はデコーダ３３０へスライスＡ４３３を出力する。
【００４３】
以上の処理により、本実施例に示す映像伝送システムは映像ストリームのエラー検出時、デマルチプレクサとデコーダの制御信号のやり取りが必要ないため、設計コストを低くできる。
【実施例３】
【００４４】
本発明の第三の実施例では、映像送信装置におけるエンコーダの符号化方法について述べる。構成は図１と同様であるため、説明を省略する。
【００４５】
エンコーダ１１０は映像データの符号化をＭＰＥＧ−２の形式で行う場合は、ＶＢＶ（Ｖｉｄｅｏ  Ｂｕｆｆｅｒｉｎｇ  Ｖｅｒｉｆｉｅｒ）と呼ばれるエンコーダとデコーダで共通のバッファモデルを想定し、映像ストリームのビットレート制御を行う。
【００４６】
図８にＶＢＶのビット量推移を示す。縦軸にＶＢＶが保持するビット量、横軸が時間である。ＶＢＶモデルでは、エンコーダが出力したビットをデコーダが瞬時に抜き取る制御を行った際、ＶＢＶの最大値であるＶＢＶｍａｘ値を上回らないこと、０値を下回らないことを検証する。ビット量変化５００に示すように、エンコーダはＶＢＶバッファモデルを満たすよう、映像ストリームの出力ビット量、もしくは量子化係数から出力ビット量を予測し、量子化係数の制御を行う。
【００４７】
図５に示すようにピクチャ層においてスライスＡを冗長に出力する場合、出力される映像ストリームのビットレートは冗長に出力しない場合の２倍となる。よって図８のビット量変化５０１に示すように出力ビットの傾きが２倍となる。本実施例に示すエンコーダ１１０は映像ストリームのビット量変化５００ではなく、出力ビット量５０１を想定し、ＶＢＶバッファがＶＢＶｍａｘを超えてオーバーフローしないよう、量子化係数の制御を行う。
【００４８】
以上の処理により、本実施例に示す映像伝送システムのストリームをデコードする際、ＶＢＶモデルがオーバーフロー/アンダーフローを起こすことなく、映像データの転送を継続することが可能となる。
【００４９】
本実施例では２つのスライスを含む例をあげたが、本発明の効果は冗長に出力する回数にかかわらず得られる。
【実施例４】
【００５０】
本発明の第四の実施例では、映像送信装置におけるマルチプレクサのＴＳパケット生成方法について述べる。構成は図１と同様であるため、説明を省略する。
【００５１】
図２に示すようにマルチプレクサ１３０が出力するＴＳパケットにはＴＳヘッダ４７１が含まれ、ＴＳパケットに含まれる映像ストリームを他ＴＳパケットに含まれるデータと区別するための識別番号であるＰＩＤが含まれる。
【００５２】
本実施例では、マルチプレクサ１３０は映像ストリームをスライス層のデータを第一のＰＩＤでＴＳパケットを出力した後に、第二のＰＩＤで同じスライス層のデータをＴＳパケット化して出力する。
【００５３】
図６にパケット化の例を示す。スライスＡ４３２は４つのＴＳパケットに分割されて送信される。先頭のＴＳパケットのＴＳヘッダ４７１に第一のＰＩＤが付加され、続くＴＳパケット群４７５にも第一のＰＩＤが付加される。ＴＳパケットヘッダ４７３には第二のＰＩＤが付加され、続くＴＳパケット群４７６にも第二のＰＩＤが付加される。ここで、スライスデータの断片であるＴＳペイロード４７２とＴＳペイロード４７４は同じデータが格納され、それぞれ続くＴＳペイロードも同様である。
【００５４】
デマルチプレクサ３１０は第一のＰＩＤと第二のＰＩＤの両方のＴＳパケットから映像ストリームを取り出し、バッファ３２０に領域を分けて格納する。デコーダ３３０は第一のＰＩＤのＴＳパケットをデコードし、デコードエラーを検出すると、第二のＰＩＤからＴＳパケットを読み出しデコードを行ないエラーを訂正する。
【００５５】
上記図６では、オリジナルデータは第一のＰＤＩ、冗長データは第二のＰＤＩを用いてスライス単位でオリジナルデータと冗長データを交互に送信する例を示したが、スライス単位ではなくＴＳパケット単位で交互にオリジナルデータと冗長データを送信してもよい。
【００５６】
以上の処理により、本実施例は第一の実施例と同様の効果が得られると共に、第一のＰＩＤの映像ストリームに限りデマルチプレクスした場合、通常のＭＰＥＧ−２ストリームと変わらないため、ネットワーク２００に２つのＰＩＤから得られる映像ストリームを用いてエラー訂正を行なわない、従来からある一般的な映像受信装置を接続できるようになる。
【００５７】
図１７にＴＳパケットの他の生成方法を示す。８００〜８２４はそれぞれ１つのＴＳパケットを表しておりヘッダ＋ペイロードの構成となっている。８０１〜８０４までのＴＳパケットはスライスＮｏ．０のオリジナルデータ、８１１〜８１４までのＴＳパケットはスライスＮｏ．０の冗長データ、８２１〜８２４までのＴＳパケットはスライスＮｏ．１のオリジナルデータを表している。また、横軸は時間を表しており、左の８００のＴＳパケットから順番に映像送信装置から出力される。
【００５８】
８００、８１０、８２０のＴＳパケットは、ストリームデータのＴＳパケットではなくオリジナルデータと冗長データを識別するための識別用ＴＳパケットを表し、スライスの先頭に挿入する。この識別用ＴＳパケットはオリジナルデータと冗長データを識別するためにＰＩＤを映像データのＰＩＤとは別の識別用ＰＩＤとする。この識別用ＴＳパケットをスライスの先頭に挿入することにより、映像受信装置では、識別用ＰＤＩのＴＳパケットを受信した場合、次の識別用ＰＩＤのＴＳパケットを受信するまでのＴＳパケットは、識別用ＰＩＤが示したデータ（オリジナルデータまたは冗長データ）として、バッファ３２０に領域を分けて格納する。
【００５９】
このように、スライスの先頭でオリジナルデータを表すＴＳパケット及び冗長データを表す識別用ＴＳパケットを挿入することで、オリジナルデータも冗長データも同一のＴＳパケットであっても映像受信装置で区別することが可能となる。
【００６０】
実施例４では、冗長データの挿入回数を１回の例で説明しているが、２回以上に増やすことも可能である。この場合のＰＩＤは、第三のＰＩＤ、第四のＰＩＤというようにＰＩＤを変えることで、映像受信装置で冗長データを区別することが可能となる。
【実施例５】
【００６１】
本発明の第５の実施例では、通信手段にＵＷＢ通信を採用した場合について述べる。
【００６２】
図１４はＵＷＢ映像送信装置６００である。エンコーダ６１０は入力画像をエンコードしてストリームを生成しバッファ６２０に格納する。マルチプレクサ６３０は、前記ストリームをバッファ６３０から読み出しオリジナルデータのＴＳパケットと、前記ストリームをコピーした冗長ＴＳパケットを生成し、バッファ６２０に格納する。ＭＡＣレイヤ制御部６４０は、前記ＴＳパケットをバッファから一定のデータ量読み出して、ＵＷＢ通信を行うために必要なフレーム（ヘッダや誤り訂正符号を付加）を生成しＰＨＹレイヤ制御部６５０へ送る。ＰＨＹレイヤ制御部は、前記フレームを変調してネットワーク６７０へ送信する。ここで、上記マルチプレクサ６１０とＭＡＣレイヤ制御部６４０とＰＨＹレイヤ制御部６５０を纏めて、フレーム送信部６６０と呼ぶ。
【００６３】
図１５はＵＷＢ映像受信装置６８０である。ＰＨＹレイヤ制御部６９０ではネットワーク６７０から受信したデータの復調を行う。ＭＡＣレイヤ制御部７００では、フレームに付けられた誤り訂正符号により、フレームにエラーがあるか否かを判別し、フレームにエラーがあり復元できない場合はそのフレーム内のデータは全て捨てられる。エラー無しまたはエラーがあったが誤り訂正が成功した場合にはバッファ７１０に復調したＴＳパケットが格納される。デマルチプレクサ７２０では、前記ＴＳパケットをストリームに変換しバッファ７１０に格納する。このとき、ＴＳパケットのＰＤＩやコンティニュティカウンタの連続性を用いてオリジナルＴＳパケットか冗長ＴＳパケットかを判別する。オリジナルＴＳパケットが欠落していない場合はオリジナルＴＳパケットをバッファに格納して、冗長ＴＳパケットを取り除く。また、オリジナルＴＳパケットが欠落していた場合は、冗長ＴＳパケットをオリジナルＴＳパケットとして使用する。ここで、上記ＰＨＹレイヤ制御部６９０とＭＡＣレイヤ制御部７００とでマルチプレクサ７２０を纏めて、フレーム受信部と呼ぶ。デコーダ７３０は、バッファ７１０に格納されたストリームをデコードし、デコード画像を外部に出力する。
【００６４】
このようにフレーム単位の誤り訂正処理を行いつつ通信を行う場合には、誤り訂正が出来ないエラーが発生したとき、フレーム単位でのデータ欠落が生じることとなる。そこでＵＷＢ送信装置６００のマルチプレクサ６３０では、ＭＡＣレイヤ制御部の処理単位であるフレーム毎に冗長データを作成することで冗長データがオリジナルデータと一緒に欠落してしまうのを防ぐことができる。また、実施例１と違いデコードを開始する前にエラーがあるか否かが分かるので、エラーが起こったスライス全てをデコードしない、正常なデータのところまでデコードするなど、幅広いエラー対策が可能となる。さらに、誤り判定の段階でエラーが発見されなかった場合は、そのフレームのビット誤りは無いことが保障されるので、実施例４のようにデマルチプレクサ処理後のバッファに冗長データの映像ストリームを保持しておく必要がなくなる。よって、デマルチプレクサ処理後のバッファの容量を小さくすることができる。
【００６５】
実施例５のＵＷＢ送信装置の場合、前記ＭＡＣレイヤ制御部７００では、１フレーム分のデータが溜まらないとフレームを伝送できない。例えば、フレームの伝送単位が５００ｂｙｔｅ、１ＭＢラインを１スライスとして１スライス目のストリームデータが２００ｂｙｔｅ、２スライス目のストリームデータが２５０ｂｙｔｅ、３スライス目のストリームデータが、２５０ｂｙｔｅ、冗長データを送信しないとする。この例では、ＭＡＣレイヤ制御部７００は、エンコーダが３スライス目の途中まで処理しないと５００ｂｙｔｅのストリームデータが溜まらず送信できないので、１スライス目のデータは２スライス弱遅延してしまう。また、１個の冗長化データを送信する場合、１スライス目のオリジナルデータと前記１スライス目のオリジナルデータをコピーした冗長データを合計しても４００ｂｙｔｅとなり、これは、フレームの送信単位の５００ｂｙｔｅ以内となるため同一のフレームに入ってしまう。ＵＷＢ通信などの無線伝送を使用した映像伝送システムにおいては、フレーム単位でデータ欠落が生じるので、この場合冗長データも同時に欠落してしまうため意味がなくなってしまう。そこで、この２つの問題点をスタッフィング用のＴＳパケットを挿入することで解決する。
【００６６】
図１６は上記例において１スライス目のオリジナルデータにスタッフィング用のＴＳパケットを挿入した例である。冗長データを送信する場合も、送信しない場合も、スライス単位でフレームの伝送単位である５００ｂｙｔｅになるようにスタッフィング用のＴＳパケットを挿入することで、上記２つの問題点を解決できる。ここで、前記スタッフィング用のＴＳパレットのヘッダのＰＩＤを映像ストリームのＴＳパケットとは違う値に変えることで、映像受信装置内でＰＩＤを確認するだけでスタッフィング用のＴＳパケットのみを除去することができる。
【００６７】
図１６では、映像受信装置のＰＩＤを識別してスタッフィング用のＴＳパケットを取り除くことができるように、スタッフィング用のＴＳパケットを挿入すると説明したが、ＴＳパケットでなく、スタッフィング用のデータでても良い。さらに、スライス単位ではなく所定のＭＢ処理数毎にスタッフィングデータを挿入しても良い。
【００６８】
次に、ＴＳパケットの具体的な作成方法について説明する。実施例５の映像伝送装置では、フレーム単位でデータを送信するため、冗長化の単位もフレーム単位となる。
【００６９】
図１８にＴＳパケットの作成方法の一例を挙げる。図１８の９００〜９２４の各々はＴＳパケットを表しており、９０１〜９０４と９２１〜９２４はオリジナルデータのＴＳパケット、９１１〜９１４のＴＳパケットは９０１〜９０４の冗長データを表しており、９０１〜９０４のＴＳパケットの完全なコピーである。９００と９１０と９２０は識別用ＴＳパケットを表しており、フレームの先頭に識別用ＴＳパケットを挿入している。さらに、ＰＩＤだけではパケットの欠落まで判定できないのでコンティニティカウンタを用いて欠落を判別する。具体的には、オリジナルデータと冗長データのフレームＮｏ０の識別用ＴＳパケットのコンティニティカウンタを０、フレームＮｏ．１の識別用ＴＳパケットのコンティニティカウンタを１、フレームＮｏ．２の識別用ＴＳパケットのコンティニティカウンタを２と連続の値とする。
【００７０】
図１９にデマルチプレクサ７２０でのデータの欠落の判定方法と冗長データの破棄方法のフローチャートを示す。まず、ステップＳ１００で入力されたＴＳパケットのＰＩＤが識別用ＰＩＤかを判定する。Ｙｅｓの場合はステップＳ１０１の処理を行い、Ｎｏの場合はステップＳ１０６の処理を行う。ステップＳ１０６ではパケット処理フラグがＯＮの場合にはＴＳパケットからストリームデータに変換する処理を行い、パケット処理フラグがＯＦＦの場合には、ＴＳパケットを破棄する。なお、前記パケット処理フラグは、前回の識別用ＴＳパケットの処理結果を保持した値であり、識別用ＴＳパケットの処理で書き換えを行う。ステップＳ１０１では、識別用ＴＳパケットのコンティニティカウンタが前回の識別用ＴＳパケットのコンティニティカウンタと比較して連続かを判定する。ステップＳ１０１の判定結果がＹｅｓの場合は、初めて到着したＴＳパケットのデータなので、ステップＳ１０２でパケット処理フラグをＯＮにする。一方、ステップＳ１０１の判定結果がＮｏの場合は、ステップＳ１０３の前回の識別用ＴＳパケットのコンティニティカウンタと同値かの判定を行う。ステップＳ１０３の判定結果がＮｏの場合は、パケットが欠落したことを意味するので、ステップＳ１０４のエラー処理を実行する。一方、ステップＳ１０３の判定結果がＹｅｓの場合は、前回の識別用ＴＳパケットで同一のデータを処理したこと（冗長データ）を意味するので、ステップＳ１０５でパケット処理フラグをＯＦＦにする。
【００７１】
上記では、コンティニティカウンタを用いてＴＳパケットの欠落を判別する例を示したが、コンティニティカウンタではなく、ペイロードにカウンタ値を挿入しても良い。ペイロードにカウンタ値を挿入することにより、４ビット幅のコンティニティカウンタを用いた場合、１６の倍数のフレームが欠落したときにエラーを検知できなかったが、ペイロードに４ビットよりも大きいカウンタ値を挿入した場合、パケット欠落のエラー検知率を上げることができる。
【００７２】
図２０に冗長データの作成方法の他の例を示す。９５１〜９５４と９７１〜９７４はオリジナルデータのＴＳパケットを表し、９６１〜９６４は９５１〜９５４の冗長データのＴＳパケットを表す。ここで、９６１〜９６４は９５１〜９５４の完全なコピーではなくデマルチプレクサ７２０でＴＳパケットの欠落検知と冗長データの破棄とを行えるように、ＴＳパケットのヘッダのみ変更する。具体的には、ＰＩＤをオリジナルデータと冗長データで異なるＰＩＤとする。また、コンティニティカウンタをオリジナルデータのフレーム単位でカウントアップするものとし、冗長データはオリジナルデータのコンティニティカウンタを用いる。図２０の例では、９５１〜９５４のＴＳパケットは、オリジナルデータなので第一のＰＩＤ、コンティニティカウンタは０とする。９６１〜９６４のＴＳパケットは、冗長データなので第二のＰＩＤ、コンティニティカウンタはオリジナルデータのコンティニティカウンタ０の冗長データなので０となる。９７１〜９７４のＴＳパケットは、オリジナルデータなので第一のＰＩＤ、コンティニティカウンタは次のオリジナルデータのフレームなので１となる。
【００７３】
図２１にデマルチプレクサ７２０でのデータの欠落の判定方法と冗長データの破棄方法のフローチャートを示す。図１９と同じ処理をするステップは同様の記号をつけている。まず、ステップＳ１０７で入力されたＴＳパケットのＰＩＤが前パケットと同じＰＩＤかつ同じコンティニティカウンタかを判定する。Ｙｅｓの場合はステップＳ１０６の処理を行い、Ｎｏの場合はステップＳ１０１の処理を行う。ステップＳ１０６はパケット処理フラグがＯＮの場合にはＴＳパケットからストリームデータに変換する処理を行い、パケット処理フラグがＯＦＦの場合には、ＴＳパケットを破棄する。なお、前記パケット処理フラグは、前回の処理結果を保持した値である。ステップＳ１０１では、識別用ＴＳパケットのコンティニティカウンタが前回のＴＳパケットのコンティニティカウンタと比較して連続かを判定する。ステップＳ１０１の判定結果がＹｅｓの場合は、初めて到着したＴＳパケットのデータなので、ステップＳ１０２でパケット処理フラグをＯＮにして、ステップＳ１０６の処理を行う。一方、ステップＳ１０１の判定結果がＮｏの場合は、ステップＳ１０３の前回の識別用ＴＳパケットのコンティニティカウンタと同値かの判定を行う。ステップＳ１０３の判定結果がＮｏの場合は、パケットが欠落したことを意味するので、ステップＳ１０４のエラー処理を実行する。一方、ステップＳ１０３の判定結果がＹｅｓの場合は、前回のＴＳパケットで同一のデータを処理したこと（冗長データ）を意味するので、ステップＳ１０５でパケット処理フラグをＯＦＦにして、ステップＳ１０６の処理を行う。
【００７４】
以上実施例５では、通信手段としてＵＷＢ通信を採用した例で説明したが、ＵＷＢ通信に限定されるものではなく、ＩＰ通信やフレーム単位の通信を行う別の通信方式でも良い。さらに、伝送中にエラーが発生し、訂正できなかった場合、そのフレームのデータを捨てると記載してあるが、そのデータを捨てずに後段に渡しても良い。さらに、実施例５は実施例１に記載の所定のＭＢ処理毎にエンコーダの発生ビット数に応じて冗長データの挿入回数を制御することも可能である。
【実施例６】
【００７５】
図２２は、映像送信装置からの出力時に暗号化したデータを出力する例である。図１と同一の機能のブロックは同一記号をつけて説明を省略する。暗号化部１４０は、入力データの暗号化を行い、暗号化データを出力する機能を有しており、復号化部３４０は前記暗号化データを前記入力データに逆変換する機能を有している。図２２は、マルチプレクサ１３０により生成したＴＳパケットをネットワークに送信する前に暗号化を行っており、映像受信装置では、復号部３４０において暗号化を解いた後にデマルチプレクサにデータを渡している。このように、映像送信装置で暗号化を行ったデータでデータを送信することで、第三者に見られても内容が分からないようにすることが可能となる。
【００７６】
なお、実施例６ではＴＳパケット毎に暗号化を施しているが、実施例５の場合はフレーム毎で暗号化を施す、ＴＳパケット毎に暗号化を施すなど、最終的に送信したデータの内容が暗号化されていれば、どこの位置に暗号化部を配置しても良い。
【符号の説明】
【００７７】
１００  映像送信装置
１１０  エンコーダ
１２０  バッファ
１３０  マルチプレクサ
２００  ネットワーク
３００  映像受信装置
３１０  デマルチプレクサ
３２０  バッファ
３３０  デコーダ
３３１  ＶＬＤ部
３３２  ＭＢ復号処理部
【図１】
0005553663.tif 000002
【図２】
0005553663.tif 000003
【図３】
0005553663.tif 000004
【図４】
0005553663.tif 000005
【図５】
0005553663.tif 000006
【図６】
0005553663.tif 000007
【図７】
0005553663.tif 000008
【図８】
0005553663.tif 000009
【図９】
0005553663.tif 000010
【図１０】
0005553663.tif 000011
【図１１】
0005553663.tif 000012
【図１２】
0005553663.tif 000013
【図１３】
0005553663.tif 000014
【図１４】
0005553663.tif 000015
【図１５】
0005553663.tif 000016
【図１６】
0005553663.tif 000017
【図１７】
0005553663.tif 000018
【図１８】
0005553663.tif 000019
【図１９】
0005553663.tif 000020
【図２０】
0005553663.tif 000021
【図２１】
0005553663.tif 000022
【図２２】
0005553663.tif 000023