(57)【特許請求の範囲】
【請求項１】
各画像フレームが複数のセグメントを有する一連の画像フレームを表す符号化されたビットストリームの中にビジュアル要素を挿入するトランスコーディング方法であって、
符号化されたビットストリームを受け取るステップと、
前記符号化されたビットストリームを部分的に復号化するステップと、
前記部分的に復号化されたビットストリームの中にビジュアル要素を挿入するステップと、
前記部分的に復号化されたビットストリームの中への前記ビジュアル要素の挿入により、動きベクトルが影響されるどうかを判定するステップと、
前記動きベクトルが影響されるとき、前記動きベクトルをゼロに設定するか、または前記動きベクトルを廃棄するステップと、
前記部分的に復号化されたビットストリームを再符号化するステップと、
前記再符号化されたビットストリーム内の各フレームが前記符号化されたビットストリーム内の対応する各フレームと同じ数のビットを含むように前記再符号化されたビットストリームの出力ビットレートを制御し、前記再符号化されたビットストリームを出力するステップと、
から成り、
前記出力ビットレートを制御することは、
前記符号化されたビットストリーム内のフレームに対する第１のビットカウントを計算するステップと、
前記再符号化されたビットストリーム内の対応するフレームに対する第２のビットカウントを計算するステップと、
前記第１のビットカウントと前記第２のビットカウントの差を計算するステップと、
前記再符号化されたビットストリームの前記出力ビットレートを変更して、前記計算されたビットカウントの差を前記再符号化されたビットストリームから除去するステップであって、前記出力ビットレートの変更は、前記再符号化されたビットストリーム内のランダムに選択された開始点で開始するステップと、
を含む、前記トランスコーディング方法。
【請求項２】
前記出力ビットレートを変更することは、
前記再符号化されたビットストリームの量子化スケール係数を調節するステップと、
前記再符号化されたビットストリームの複数の部分を前記調節された量子化スケールに従って再量子化するステップと、を含む請求項１記載のトランスコーディング方法。
【請求項３】
前記再量子化により生じる歪みが、後続の影響を受ける領域を再符号化することにより補償される、請求項２記載のトランスコーディング方法。
【請求項４】
前記計算されたビットカウントの差が除去されると、前記出力ビットレートの変更を終了するステップを更に含む、請求項１記載のトランスコーディング方法。
【請求項５】
前記変更を終了するステップは、
前記計算されたビットカウントの差が再符号化されたビットストリーム内の所定の点で除去されるかどうかを判定するステップを含む、請求項４記載のトランスコーディング方法。
【請求項６】
前記所定の点がマクロブロック・スライスの中間点である、請求項５記載のトランスコーディング方法。
【請求項７】
前記所定の点がマクロブロック・スライスの終点である、請求項５記載のトランスコーディング方法。
【請求項８】
前記出力ビットレートを変更することは、
前記開始点をランダムに選択することを含む、請求項１記載のトランスコーディング方法。
【請求項９】
一連の画像フレームを表す符号化されたビットストリームの挿入領域にビジュアル要素を挿入するためのトランスコーディング方法であって、
第１の符号化されたビットストリームを受信するステップと、
前記第１の符号化されたビットストリームのコピーを復号化して、画像フレームのセグメントの位置を決定するステップと、
前記挿入領域を前記セグメントの位置と比較して、前記ビジュアル要素が前記セグメントと重なるかどうかを判定するステップと、
前記ビジュアル要素が前記セグメントと重なっている場合、前記ビジュアル要素と前記セグメントを組み合わせるステップと、
前記ビジュアル要素と前記セグメントとの組合せによって動きベクトルが影響されるかどうかを判定するステップと、
前記動きベクトルが影響されるとき、前記動きベクトルをゼロに設定するか、または前記動きベクトルを廃棄するステップと、
前記セグメントを再符号化するステップと、
前記第１の符号化されたビットストリームと前記再符号化されたセグメントとの組合せである第２の符号化されたビットストリーム内の各フレームが前記第１の符号化されたビットストリーム内の対応する各フレームと同じ数のビットを含むように前記第２の符号化されたビットストリームの出力ビットレートを制御して、前記第２の符号化されたビットストリームを出力するステップと、
から成り、前記出力ビットレートを制御することは、
前記第１の符号化されたビットストリーム内のフレームに対する第１のビットカウントを計算するステップと、
前記第２の符号化されたビットストリーム内の対応するフレームに対する第２のビットカウントを計算するステップと、
前記第１のビットカウントと前記第２のビットカウントとの差を計算するステップと、
前記第２の符号化されたビットストリームの前記出力ビットレートを変更して、前記計算されたビットカウントの差を前記第２の符号化されたビットストリームから除去するステップであって、前記出力ビットレートの変更は、前記第２の符号化されたビットストリーム内のランダムな開始点で開始するステップと、
を含む、前記トランスコーディング方法。
【請求項１０】
符号化されたビットストリームの挿入領域にビジュアル要素を挿入するためのトランスコーディング方法であって、
画像を表す第１の符号化されたビットストリームを受信するステップと、
前記第１の符号化されたビットストリームのコピーを復号化して、前記画像の個々のセグメントの特徴を抽出するステップと、
前記セグメントの前記特徴を前記挿入領域と比較して、前記画像への前記ビジュアル要素の挿入が前記セグメントに影響するかどうかを判定するステップと、
該影響されるセグメントを再符号化するステップと、
前記第１の符号化されたビットストリームと前記再符号化されたセグメントとの組合せである第２の符号化されたビットストリームを出力するステップと、
前記第１の符号化されたビットストリームに対する第１のビットカウントを計算するステップと、
前記第２の符号化されたビットストリームに対する第２のビットカウントを計算するステップと、
前記第１のビットカウントと前記第２のビットカウントとの差を計算するステップと、
変更によって生じうる知覚的問題を最小化するために、前記第２の符号化されたビットストリームの出力ビットレートの変更を開始する前記第２の符号化されたビットストリーム内の開始点を、ランダムに選択するステップと、
前記ランダムに選択された開始点で前記第２の符号化されたビットストリームの前記出力ビットレートを変更して、前記計算された差を前記第２の符号化されたビットストリームから除去するステップと、
から成る、前記トランスコーディング方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
一般に、本発明は、符号化されたビットストリームを変更するプロセスに関する。特に、本発明は動画グループ・タイプ２（ＭＰＥＧ２）の符号化ビデオ・ビットストリームの中にビジュアル要素を挿入するプロセスに向けられている。
【０００２】
【従来の技術】
放送局は伝統的に、視聴者に放送されるビデオ信号の中にビジュアル要素（ｖｉｓｕａｌ  ｅｌｅｍｅｎｔ：例えば、ロゴ、局の識別文字、ビデオ・シーケンスなど）を挿入する。圧縮されたビデオ・ストリームの伝送が出現する前は、放送画像の中にロゴを挿入することは、選択されたビデオ・フレームの一部分の上にロゴを重ねるという比較的簡単な手順であった。しかしながら、圧縮されたビデオストリーム（例えば、ＭＰＥＧの符号化ビデオストリーム）の伝送の出現に伴ない、符号化されたビデオストリーム内で放送画像にロゴを挿入することは時間的従属性に起因して複雑な処理になっている。特に、ビデオストリーム内の各フレームはもはや、画像を再構成するのに必要なすべての情報を含んでいない。画像の再構成に必要なすべての情報を含んでいるのはビデオストリーム内でほんの少数のフレーム（例えば、Ｉフレーム）にすぎない。他の「予測（ｐｒｅｄｉｃｔｉｖｅ）」フレーム（例えば、ＰフレームとＢフレーム）は、予測フレームの再構成に必要な完全なフレーム（例えば、Ｉフレーム）の各部分を標準とする（これについては、以下に詳細に説明する）。
【０００３】
【発明が解決しようとする課題】
ＭＰＥＧの符号化ビデオストリーム中にロゴを挿入する１つの方法は、ビデオストリームを復号化し  画素領域内にロゴを挿入し、ビデオストリームを再符号化することである。しかしながら、ビデオストリーム全体を復号化しそして再符号化するというプロセスは幾つかの欠点を有する。１つの欠点は、復号化と再符号化のプロセスは、ビデオストリーム中に誤りを生じるので、画質の低下を生じる。これらの誤りの一部は、符号化技術の幾つか（例えば、量子化および逆量子化）の非可逆的な性質によるものである。別の欠点は、ビデオストリーム全体の復号化と再符号化には相当な量の計算を必要とすることである。
【０００４】
上述した欠点に加えて、ＭＰＥＧの符号化ビデオストリーム中にロゴを挿入する際、別の困難に遭遇する。ロゴの挿入はビデオストリームのビットカウントに影響を及ぼす。特に、ロゴの挿入により、ビデオストリームのビットカウントは増加または減少し、ビデオ・バッファ・ベリファイア（Ｖｉｄｅｏ  Ｂｕｆｆｅｒ  Ｖｅｒｉｆｉｅｒ：ＶＢＶ）に影響を及ぼす。具体的に言うと、ＭＰＥＧ規格の下で、デコーダの入力バッファはサイズを固定しており、一定のチャンネルのビットレート（画像が表示される割合）と、変動するＭＰＥＧ符号化ビット・レート（圧縮された画像がパスされる割合）との間の遷移を扱う。データはバッファを通って流れ、アンダーフローとオーバーフローの状態が回避されることが好ましい。しかしながら、ＭＰＥＧの符号化ビデオストリームのビットカウントを変更すると、ダウンストリームのデコーダの入力バッファ内にアンダーフローもしくはオーバーフローの状態を生じる。
【０００５】
本発明は、上述した欠点および問題を解決することに向けられている。
【０００６】
【課題を解決するための手段】
本発明によると、符号化されたビットストリームの復号化を最小限度にして、この符号化ビットストリーム中にビジュアル要素を挿入するためのトランスコーディング（ｔｒａｎｓｃｏｄｉｎｇ）方法が提供される。このトランスコーディング方法には、画像を含んでいる符号化ビットストリームを受け取るステップと、ビットストリームのコピーを部分的に復号化するステップと、ビットストリーム内の画像のセグメントがビジュアル要素の挿入により影響を受けるかどうかを判定するステップと、再符号化されたビットストリームを出力するステップと、から成る。符号化されたビットストリームおよび再符号化されたビットストリームはＭＰＥＧの符号化ビットストリームである。この再符号化ビットストリームを出力するには、ビットレート制御プロセスを使用して、再符号化ビットストリーム内の最初の処理点をランダムに選択し、再符号化ビットストリームを、変更された量子化表を使用して再量子化し、スライスレベル停止規準を使用して、ビットレートの制御を選択的に開始しまたは終了する。
【０００７】
本発明の１つの有利な実施例では、一連の画像フレームを表す符号化されたビットストリーム中にビジュアル要素を挿入するためのトランスコーディング方法が提供される。このトランスコーディング方法は、符号化されたビットストリームを受け取るステップと、この符号化ビットストリームを部分的に復号化するステップと、部分的に復号化されたビットストリーム中にビジュアル要素を挿入するステップと、ビジュアル要素が挿入された後で、部分的に復号化されたビットストリームを再符号化するステップと、再符号化されたビットストリームを出力するステップと、を含む。
【０００８】
本発明の別の有利な実施例では、一連の画像フレームを表す符号化ビットストリームの挿入領域の中にビジュアル要素を挿入するトランスコーディング方法が提供される。このトランスコーディング方法は、符号化された第１のビットストリームを受け取るステップと、この第１の符号化ビットストリームのコピーを復号化し、画像フレームの或るセグメントの位置を確認するステップと、挿入領域と前記セグメントの位置を比較して、ビジュアル要素の挿入が前記セグメントに影響を及ぼすかどうかを判別するステップと、ビジュアル要素の挿入が前記セグメントに影響を及ぼすならば前記セグメントを再符号化するステップと、前記第１の符号化ビットストリームと再符号化セグメントの組合せである第２の符号化ビットストリームを出力するステップと、を含む。
【０００９】
本発明の更なる有利な実施例では、符号化ビットストリームの挿入領域の中にビジュアル要素を挿入するトランスコーディング方法が提供される。このトランスコーディング方法は、画像を表す第１の符号化されたビットストリームを受け取るステップと、前記第１の符号化ビットストリームのコピーを復号化して、画像の各セグメントの特性を検出するステップと、前記挿入領域と各セグメントの特性を比較して、画像中へのビジュアル要素の挿入が前記各セグメントに影響を及ぼすかどうかを判別するステップと、影響を受けるセグメントを再符号化するステップと、前記第１の符号化ビットストリームと再符号化セグメントとの組合せである第２の符号化ビットストリームを出力して、該第２の符号化ビットストリームが第１の符号化ビットストリームと同数のビットを含むようにするステップと、を含む。
【００１０】
本発明の特性および利点は、例えば、以下の説明から一層明らかになる。
【００１１】
【発明の実施の形態】
図１に、例示的画像１０およびロゴ１２を示す。画像１０は、Ｉ、ＰまたはＢ構造を有するフィールド・ピクチャまたはフレーム・ピクチャの中に含まれる。明確にし且つ参照し易くするために、フレーム・ピクチャのみについて以下に説明する。画像１０内の挿入領域１４はロゴ１２が挿入される位置である。Ｉ構造を有するフレームは、静止画像として符号化されたフレームに類似している。従って、Ｉフレームには、その中に含まれる画像の再構成のために必要とされるすべての画像データが含まれる。Ｐ構造を有するフレームは予測されるフレームとして知られており、再構成のために、ごく最近に再構成されたＩフレームまたはＰフレーム内に含まれる画像データを必要とする。Ｂ構造を有するフレームは二方向性フレームとして知られており、最も接近した２つのＩフレームおよび／またはＰフレーム（１つは過去におけるもの、１つは未来におけるもの）から予測される。従って、Ｂフレームは、再構成のために、他の２つのフレーム（Ｉおよび／またはＰフレーム）内に含まれている画像データを必要とする。
【００１２】
図２について説明すると、画像１０は、Ｉ、ＰまたはＢフレームとして符号化され、一連のマクロブロック・スライス１６として、符号化ビットストリーム内に送られる。各マクロブロック・スライス１６は、画素マクロブロック１８から成る水平グループの輝度データとクロマ・データを含んでいる。各画素マクロブロック１８のサイズは１６ｘ１６画素（図示せず）で、輝度の４ブロック２０、および同じ領域（ａｒｅａ）のクロミナンスの２ブロック（１つはＣｒ、１つはＣｂ）で構成される。従って、本発明の方法を実施するトランスコーダは符号化ビデオ・ビットストリームを、一連のマクロブロック・スライス１６として受け取る。トランスコーダは例示されていないが、従来のＭＰＥＧトランスコーダで本発明を実施することは当業者の能力の範囲内で考えられる。
【００１３】
図２に関連して、図３に、本発明のロゴ挿入プロセスの全体を示す。ロゴ挿入プロセス２２は、ロゴ挿入パス２４とビットレート（ｂｉｔ  ｒａｔｅ）制御パス２６を含む。以下に詳細に説明するように、ロゴ挿入パス２４は復号化ステップ２８と再符号化ステップ３０を含む。一般に、復号化ステップ２８は、入来する符号化されたビデオストリームを部分的に復号化するステップと、ビデオストリームのセグメント（例えば、マクロブロック・スライス１６、マクロブロック１８、またはブロック２０）がロゴの挿入領域１４と重なっているか、あるいはロゴ１２の挿入により影響を受けるかどうかを確かめるステップを含む。もしこのセグメントがロゴ１２の挿入により影響を受けなければ、この符号化セグメントは、復号化ステップ２８と再符号化ステップ３０をバイパスし、一時的なバッファ内に貯えられる。しかしながら、もしこのセグメント（例えば、マクロブロック・スライス１７）がロゴ１２の挿入により影響を受けるなら、そのセグメントの影響を受ける部分は、復号化ステップ２８の間、画素領域（ｐｉｘｅｌ  ｄｏｍａｉｎ）まで復号化され、ロゴ１２は、その復号化されたセグメントのうちの影響を受ける部分と合成されるか、またはその影響を受ける部分の中に同化される。その後、再符号化ステップ３０の間、ロゴ１２またはロゴに関連するデータ（例えば、動きベクトル情報）を含んでいるそのセグメントは再符号化され、一時的なバッファ内に貯えられる。
【００１４】
次に、ビットレート制御パス２６の間、ビデオストリームの符号化され且つ再符号化されたセグメントは一時的なバッファから出力され、再符号化されたセグメントは、符号化されたビデオストリーム内の元の位置に挿入される。復号化ステップ３２の間、この符号化されたビデオ・ビットストリームの各セグメントはＤＣＴ領域（ｄｏｍａｉｎ）まで復号化される。ＤＣＴ領域で、各セグメントのＤＣＴ係数は、異なる量子化スケーラ（ｓｃａｌｅｒ）を使用して再量子化される（以下に詳細に説明する）。再量子化後、復号化されたセグメントは、再符号化ステップ３４の間、再符号化され、一時的なバッファ内に貯えられる。再符号化されたセグメントは次に、再量子化されたセグメントの特性に基づき動作可能にまたは動作不能にされる選択的レート制御（ｒａｔｅ  ｃｏｎｔｒｏｌ）を介して、出力される（以下に詳細に説明する）。
【００１５】
ロゴ挿入パス２４はビットレート制御パス２６とは別個のものとして図示されているが、ロゴ挿入プロセス２２全体の計算上のコストを更に減少させるためにロゴ挿入パス２４とビットレート制御パス２６が統合されるよう当業者は容易に構成できるであろう。しかしながら、ロゴ挿入パス２４とビットレート制御パス２６は、明確にし参照し易くするために、且つ本発明の理解を容易にするために、異なる別個のパスとして図示されている。
【００１６】
図２に関連して、図４に、本発明の挿入方法で部分的に復号化するプロセス３８を示す。入来するビットストリーム４０内のデータは最高レベルでトランスコーダを通過する。ロゴ１２の挿入領域１４と重ならない（または、挿入領域１４に影響されない）符号化されたマクロブロック・スライス１６は、マクロブロック・スライス領域４６内のトランスコーダを通過し、符号化マクロブロック・スライスとして貯えられる。マクロブロック・スライス（例えば、マクロブロック・スライス１７）の一部がロゴの挿入領域１４と重なる（または、ロゴの挿入領域１４に影響される）ことが判明すると、そのマクロブロック・スライスはマクロブロック領域４８の中に復号化される。ロゴの挿入領域１４と重ならないマクロブロック１８はマクロブロック領域４８内のトランスコーダを通過して、符号化マクロブロックとして貯えられる。更に、ロゴの挿入領域１４に影響される動きベクトルはマクロブロック領域４８内で処理される（以下に詳細に説明する）。このバイパス・プロセスは画素領域４４まで継続し、ここで、マクロブロック・スライスの重なっている部分における画素はロゴ１２と合成される。その後、これらの画素はマクロブロック・スライス領域４６まで再符号化される。符号化されそして再符号化されたブロックは、再符号化されたマクロブロックの中に組み入れられる。符号化されそして再符号化されたマクロブロックは、再符号化されたマクロブロック・スライスの中に組み入れられる。符号化されそして再符号化されたマクロブロック・スライスは、出て行くビットストリーム４２内でパスされる。従って、部分的に復号化する本発明のプロセス３８は、ビットストリーム全体を完全に復号化せずに、ＭＰＥＧビットストリーム４０の中にロゴ１２を容易に挿入するので、複雑さ、コスト、時間、およびロゴ挿入の間に伝統的に遭遇する、再符号化に伴う損失を減少させる。
【００１７】
図５に、ビジュアル要素挿入プロセス５０の概観を示す。図５のステップ５２で、トランスコーダは入来するフレームを調べて、それがＩフレームであるかどうかを確かめる。Ｉフレームであれば、ステップ５４で、トランスコーダは図６に示すプロセスを実行する。Ｉフレームでなければ、ステップ５６で、トランスコーダは入来するフレームがＰフレームであるかを確かめる。それがＰフレームであれば、ステップ５８でトランスコーダは図７に示すプロセスを実行する。入来するフレームがＰフレームでなければ、ステップ６０で、トランスコーダはそれがＢフレームであると判定し、図８に示すプロセスを実行する。フレームのタイプは、符号化された各フレームに伴うピクチャまたはフレームのヘッダ・データを調べて確かめられる。入来するフレーム中にビジュアル要素が挿入された後、ステップ６２でトランスコーダは図５に示すプロセスを繰り返し、次の入来するフレームのタイプを確かめる。このプロセスは、入来するビットストリーム中にビジュアル要素の挿入が完了するまで継続する（以下に詳細に説明する）。
【００１８】
図６に、Ｉフレーム挿入プロセス７０を示す。最初にステップ７２で、トランスコーダは、入来するＩフレームのマクロブロック・スライスの符号化されたビットを貯えそしてコピーする。次にステップ７４でトランスコーダは、そのマクロブロック・スライスのこの符号化ビットのコピーを復号化し、復号化されたスライスのコピーを２つメモリに貯える。第１のコピーはメモリの“Ｒｅｆ（ｓｌｉｃｅ＿ｐｏｓ）”ブロック内に貯えられる。メモリの“Ｒｅｆ（ｓｌｉｃｅ＿ｐｏｓ）”ブロック内に貯えられたこの復号化マクロブロック・スライスは、標準ＭＰＥＧデコーダで行なわれるように、後のフレーム内のマクロブロックを復号化するのに利用される。第２のコピーはメモリの“Ｒｅｆ＿ｗ＿ｌｏｇｏ（ｓｌｉｃｅ＿ｐｏｓ）”ブロック内に貯えられて、ロゴの挿入で影響を受ける後のフレーム内のマクロブロックを再符号化するのに利用される（以下に詳しく説明する）。ステップ７６で、トランスコーダは、復号化されたマクロブロック・スライスがロゴの挿入領域１４と重なるかどうかを確かめる。重ならなければ、ステップ７８で、トランスコーダは前に貯えられたマクロブロック・スライスの符号化ビットをパス（通過）させる。もし重なるなら、ステップ８０でトランスコーダは、ロゴ１２の重なっている部分とマクロブロック・スライス（例えば、マクロブロック・スライス１７）を組み合せて、メモリの“Ｒｅｆ＿ｗ＿ｌｏｇｏ（ｓｌｉｃｅ＿ｐｏｓ）”ブロックの前の内容にこの新しいデータを上書きする。この組合せステップ（ｃｏｍｂｉｎｉｎｇ  ｓｔｅｐ）は置換えまたは混合操作を表すが、これだけに限定されない。また、マクロブロック領域内でマクロブロック・スライスの代りにロゴ１２のマクロブロック部分で置き換えることは、画素領域内でマクロブロック・スライスの代りにロゴ１２の画素部分で置き換えるよりも、少ない計算で済むので、この組合せステップが置換え操作であるならば、ロゴ１２は符号化された形態（例えば、符号化されたマクロブロック）にするのが有利である。不必要な計算を更に減らすために、ロゴの挿入領域１４は、重なっているマクロブロック・スライスの上下の境界と整合するような寸法とし、ロゴの置換え操作全体がマクロブロック領域内で生じるようにする。ステップ８２で、トランスコーダは、ロゴ１２と重なっているマクロブロック・スライスとの組合せを再符号化し、ステップ８４で、上述のように、この再符号化された組合せをパスさせる。ＤＣ量子化値は、マクロブロック・スライスについてＤＰＣＭ（差分ＰＣＭ）を受ける。従って、ロゴを含んでいるマクロブロックのＤＣ量子化値の変化を明らかにするために、再符号化されたマクロブロック（すなわち、ロゴ１２の一部分と組み合わされそして再符号化されたマクロブロック）の右側のマクロブロックも再符号化されなければならない。次に、ステップ８６で、トランスコーダは、現在のマクロブロック・スライスがそのＩフレーム内で最後のマクロブロック・スライスであるか確かめる。もしそうでなければ、ステップ８８で、トランスコーダはステップ７２に戻り、そのＩフレームの符号化された次のマクロブロック・スライスを貯えそしてコピーする。もしそうであれ���、ステップ９０で、トランスコーダは図５に示すプロセスに戻り、次のフレームを調べ始める。
【００１９】
図７に、Ｐフレーム挿入プロセス９２を示す。最初に、ステップ９４で、トランスコーダは、入来するＰフレームのマクロブロック・スライスの符号化されたビットを貯えそしてコピーする。次に、ステップ９６で、トランスコーダはマクロブロック・スライスのこの符号化ビットのコピーを復号化し、復号化されたスライスのコピーを２つ貯える。最初のコピーはメモリの“Ｒｅｆ（ｓｌｉｃｅ＿ｐｏｓ）”ブロック内に貯えられ、メモリの“Ｒｅｆ（ｓｌｉｃｅ＿ｐｏｓ）”ブロック内に貯えられたこの復号化マクロブロック・スライスは、標準ＭＰＥＧデコーダで行なわれるように、後のフレーム内でマクロブロックを復号化するのに利用される。Ｐフレーム・セグメントを完全に復号化することが開示されているが、ロゴ１２の挿入で影響を受ける後のフレームの再符号化に他の技術を使用することも本発明の範囲内で考えられる。例えば、トランスコーダは、符号化されたＰフレームを貯え、必要に応じて、Ｐフレームの選択された部分を復号化することもできる。第２のコピーはメモリの“Ｒｅｆ＿ｗ＿ｌｏｇｏ（ｓｌｉｃｅ＿ｐｏｓ）”ブロック内に貯えられ、ロゴの挿入で影響を受ける後のフレーム内でマクロブロックを再符号化するのに利用される（以下に詳細に説明する）。
【００２０】
ステップ９８で、トランスコーダは、復号化されたマクロブロック・スライスの第２のコピーの位置がロゴの挿入領域１４と重なるかどうかを確かめる。もし重なれば、ステップ１００でトランスコーダは、重なっているロゴ１２の部分とマクロブロック・スライス（例えば、マクロブロック・スライス１７）を組み合せて、メモリの“Ｒｅｆ＿ｗ＿ｌｏｇｏ（ｓｌｉｃｅ＿ｐｏｓ）”ブロックの前の内容にこの新しいデータを上書きする。その後、ステップ１０２で、トランスコーダは、そのロゴを含んでいる前に符号化されたアンカー（ａｎｃｈｏｒ）フレーム（例えば、ＩフレームまたはＰフレーム）を使用して、重なっているマクロブロック・スライスとロゴ１２の組合せを再符号化し、ステップ１０４で、前述したように、この再符号化された組合せをパスさせる。前述のように、この組合せは置換えまたは混合操作を表しているが、これだけに限定されない。これに代る別の方法では、動きベクイトルの検索プロセスの計算上のコストを避けるために、トランスコーダは、重なっているマクロブロックに関連する動きベクトルをゼロに設定する。何れの場合にも、動きベクトルとＤＣ量子化値はマクロブロック・スライスついてＤＰＣＭを受ける。従って、もし動きベクトルおよび／またはマクロブロックが再符号化されると、その動きベクトルおよび／またはマクロブロックの再符号化を明らかにするために、次の飛ばされない動きベクトルおよび／またはマクロブロックは差分的に符号化されなければならない。
【００２１】
トランスコーダは、重なりがないことを確認すると、ステップ１０６で、ロゴの挿入領域１４を指し示す動きベクトルがマクロブロック・スライス内にあるかどうかを確認する。もしなければ、ステップ１０８で、トランスコーダは、前に貯えられた符号化されたマクロブロック・スライスをパスさせる。もしあれば、ステップ１１０で、トランスコーダは、メモリの“Ｒｅｆ  ｗ／ｌｏｇｏ”ブロック内に前に貯えられた標準フレームを使用して、影響を受けたマクロブロックを再符号化する。前に貯えられたマクロブロックは、ロゴの挿入により貯えられ変更された前のＩまたはＰフレームのマクロブロックである。これに代る別の方法では、トランスコーダは、ロゴの挿入領域１４を指し示す動きベクトルをゼロに設定する。この別の方法では、影響を受けたマクロブロックを再符号化するのに必要とされる計算を減少させる。更に、計算コストを減少させるために、動きベクトル外挿技術も利用される。１つの例示的な動きベクトル外挿技術は、１９９８年２月２０に出願された「ビデオ・シーケンスをトランスコードするための動きベクトル外挿」という名称の、本出願人による米国特許出願第０２６１４０号に開示されており、参考として本文中に組み入れられている。何れの場合にも、動きベクトルとＤＣ量子化値はマクロブロック・スライスについてＤＰＣＭを受ける。従って、動きベクトルおよび／またはマクロブロックが再符号化されるならば、動きベクトルおよび／またはマクロブロックの再符号化を明らかにするために、次の飛ばされない動きベクトルおよび／またはマクロブロックは差分的に符号化されなければならない。ステップ１０４で、トランスコーダは再符号化されたマクロブロック・スライスをパスさせる。
【００２２】
貯えられたマクロブロック・スライスまたは再符号化されたマクロブロック・スライスがパスされた後、ステップ１１２で、トランスコーダは、現在のマクロブロック・スライスがそのＰフレーム内で最後のマクロブロック・スライスであるかどうかを確認する。もし最後でなければ、ステップ１１４で、トランスコーダはステップ９４に戻り、そのＰフレーム内の次の符号化されたマクロブロック・スライスを貯えそしてコピーする。もし最後であれば、ステップ１１６で、トランスコーダは図５のプロセスに戻り、次のフレームを調べ始める。
【００２３】
図８に、Ｂフレーム挿入プロセス１１８を示す。最初に、ステップ１２０で、トランスコーダは、入来するＢフレームの符号化されたマクロブロックを貯えコピーする。次にステップ１２２で、トランスコーダは、ロゴ１２の挿入領域１４がマクロブロック・スライスのｆコード・レンジ（ｆ‐ｃｏｄｅ  ｒａｎｇｅ）内にあるかどうかを確認する。ｆコード・レンジはピクチャ・ヘッダ内に含まれている。ｆコード・レンジ内になければ、ステップ１２４で、トランスコーダは貯えられたマクロブロック・スライスをパスさせ、ステップ１２６で、現在のマクロブロック・スライスがそのＢフレーム内で最後のマクロブロック・スライスであるかどうかを確認する。もし現在のマクロブロック・スライスがそのＢフレーム内で最後のマクロブロック・スライスでなければ、ステップ１２８で、トランスコーダはステップ１２０に戻り、そのＢフレーム内の次の符号化されたマクロブロック・スライスを貯えコピーする。もし現在のマクロブロック・スライスがそのＢフレーム内で最後のマクロブロック・スライスであれば、ステップ１３０で、トランスコーダは図５に示すプロセスに戻り、次のフレームを調べ始める。
【００２４】
もしロゴ１２の挿入領域１４がｆコード・レンジ内にあれば、ステップ１３２で、トランスコーダはそのマクロブロック・スライスがロゴ１２の挿入領域１４と重なるかどうかを判定する。もし重なれば、ステップ１３４で、トランスコーダはそのマクロブロック・スライスを復号化し、ステップ１３６で、ロゴ１２とマクロブロック・スライス（例えば、マクロブロック・スライス１７）の重なっている部分を組み合せる。その後ステップ１３８で、トランスコーダは、ロゴ１２を含んでいる前に符号化されたアンカーフレーム（例えば、Ｉフレームおよび／またはＰフレーム）を使用して、ロゴ１２と重なっているマクロブロック・スライスとの組合せを再符号化する。前に述べたように、この組合せは、置換えまたは混合操作を表すが、それだけに限定されない。これに代わる別の方法では、動きベクトル検索プロセスの計算上のコストを避けるためにトランスコーダは、重なっている各マクロブロックに関連する動きベクトルをゼロに設定する。何れの場合にも、上述したように、次の飛ばされない動きベクトルおよび／またはマクロブロックは差分的に符号化されなければならない。
【００２５】
ステップ１３２で、マクロブロック・スライスがロゴ１２の挿入領域１４と重ならないことをトランスコーダが判定すると、ステップ１４２で、トランスコーダは、そのマクロブロック・スライス内の各マクロブロックについて動きベクトルを獲得する。次にステップ１４４で、トランスコーダは、ロゴ１２の挿入領域１４を指し示す動きベクトルがあるかどうかを確認する。もしなければ、ステップ１２４で、トランスコーダは、前に貯えられた符号化されたマクロブロック・スライスをパスさせ、ステップ１２６で、現在のマクロブロック・スライスがそのＢフレーム内で最後のマクロブロック・スライスであるかどうかを確認する。もし挿入領域１４を指し示す動きベクイトルがあれば、ステップ１４６で、トランスコーダはそのマクロブロック・スライスの関連する部分（すなわち、関連する動きベクトルを有するマクロブロック）を復号化し、ステップ１３８で、メモリの“Ｒｅｆ  ｗ／ｌｏｇｏ”ブロック内に前に貯えられ影響を受けた標準フレームを再符号化する。上述したように、前に貯えられたマクロブロックは、ロゴの挿入により貯えられ変更された前のＩまたはＰフレームのマクロブロックである。これに代る別の方法では、トランスコーダは各マクロブロックの動きベクトル（前方および後方への）を調べて、挿入領域１４を指し示さない動きベクトルが存在するかどうかを確認する。このような動きベクトルが検出されると、トランスコーダは、そのマクロブロックについての他のすべての動きベクトルを廃棄する。これに代る別の方法では、トランスコーダは、影響を受けた各マクロブロックの動きベクトルをゼロに設定する。この別の何れの方法でも、影響を受けたマクロブロックを再符号化するのに必要とされる計算が減少される。何れの場合にも、上述したように、次の飛ばされない動きベクトルおよび／またはマクロブロックは差分的に符号化されなければならない。その後ステップ１４０で、トランスコーダは、再符号化されたマクロブロック・スライスをパスさせ、ステップ１２６で、現在のマクロブロック・スライスがそのＢフレーム内で最後のマクロブロック・スライスであるかどうかを確認する。
【００２６】
図９、図１０、図１１に、本発明のビットレート制御パス２７を更に詳細に示す。上述したように、入来する符号化されたビットストリームの影響を受けるセグメントは、レート制御パス２６に先立ち、部分的に復号化されロゴ挿入のために再符号化される。具体的に言うと、Ｉフレームについて影響を受ける領域は、ロゴ挿入領域１４と重なるスライスを含んでいる領域である。ＰおよびＢフレームについて影響を受ける領域は、ロゴ挿入領域１４と重なるマクロブロック、またはロゴ挿入領域１４を指し示す動きベクトルを有するマクロブロックを含んでいるスライスを包含する領域である。そのため、出て行くビットストリームの有するビットカウントは、元の入来するビットストリームの有するビットカウントと同じでないかもしれない。しかしながら、入力および出力のビットストリームについて同じビットカウントを維持することは、幾つかの理由で望ましい。１つの理由は、各フレーム（例えば、Ｉ、ＰまたはＢフレーム）について同じビットカウントが維持されると、トランスポートストリーム・ヘッダ内のデータ（例えば、ＤＴＳデータ、ＰＴＳデータなど）が変化しないので、出て行くビットストリームについてこのトランスポートストリーム・ヘッダを再使用できることである。別の理由は、両方のビットストリームのフレームについてビットカウントが同じであれば、入来するビットストリームのＶＢＶ遵守（ｃｏｍｐｌｉａｎｃｅ）が、出て行くビットストリームについて維持されることである。従って、レート制御パス２６は、このトランスポートストリーム・ヘッダの再使用を許し、このビデオ・ビットストリームのビデオ・バッファ・ベリファイア（Ｖｉｄｅｏ  Ｂｕｆｆｅｒ  Ｖｅｒｉｆｉｅｒ：ＶＢＶ）遵守を維持する。しかしながら、ビットレート制御パス２６は本発明の例示的なビットレート制御プロセスであって、特許請求の範囲に記載される本発明の趣旨と範囲から離れることなく、トランスポートストリーム・ヘッダの再使用および／またはＶＢＶ遵守を容易にするために、他のレート制御プロセスを使用することもできる。
【００２７】
図９のステップ１５０で、トランスコーダは最初に、元の入力ビットストリーム内のフレームのビットカウント（すなわち、ロゴ１２の挿入に先立つビデオ・ビットストリーム内のフレームのビットカウント）を計算する。次に、ステップ１５２で、トランスコーダは、ロゴ１２の挿入により影響を受ける出力ビットストリーム内の対応するフレームのビットカウントを計算すると共に、その対応するフレームのマクロブロック・スライスのビットカウントを計算する。ステップ１５４で、トランスコーダは、出力ビットストリームと入力ビットストリーム内のフレームのビットカウントの差（デルタ）を計算する。デルタは、出力ビットストリーム内のフレームのビット数（ロゴの挿入後）と入力ビットストリーム内のフレームのビット数（ロゴの挿入前）と等しくなるようにするために増加または減少させなければならない出力ビットストリームのビット数を表す。ステップ１５６で、トランスコーダはデルタが負であるかどうかを判定する。デルタが負であれば、入力ビットストリーム内のビット数は出力ビットストリーム内のビット数よりも大きく、ステップ１５８で、トランスコーダは、出力ビットストリームと入力ビットストリームが等しくなるようにするために、出力ビットストリームの中に擬似ビットを挿入する。その後ステップ１６０でトランスコーダは、再符号化されたフレームのマクロブロック・スライスを出力する。
【００２８】
デルタが負でなければ、ステップ１６２でトランスコーダはデルタがゼロであるか確かめる。デルタがゼロであれば、入力ビットストリーム内のビット数と出力ビットストリーム内のビット数は等しく、ステップ１６４で、トランスコーダは、レート制御を使用せずに、マクロブロック・スライスを出力する。
【００２９】
デルタが正であれば、図１０のステップ１６６でトランスコーダは、ビットレート制御のために、スライスのスタート位置をランダムに選択する。デルタが正であれば、出力ビットストリーム内のビット数は入力ビットストリーム内のビット数よりも大きく、トランスコーダは出力ビットストリーム内のビット数を減らさなければならない。スライスのスタート位置をランダムに選択することにより、トランスコーダは、スライスの最初の位置が絶えずゆがめられているときに生じる問題、例えば、周期的パターンまたはブリージング（ｂｒｅａｔｈｉｎｇ）誤差、を最小限度に抑える。しかしながら、固定された方法あるいは順次的な方法でマクロブロック・スライスを処理することは本発明の範囲内で考えられる。次に、ステップ１６８で、トランスコーダは選択されたスライスをメモリ・バッファから回収し、選択されたスライスをＤＣＴ領域まで復号化する。その後ステップ１７０で、トランスコーダは復号化されたスライス内の各マクロブロックの量子化スケールを調節し、ステップ１７２で、復号化されたスライス内のマクロブロックのＤＣＴデータを再量子化する。この調節では、ＤＣＴ係数を所定の整数で割り、量子化スケールにこの同じ整数を掛ける。この所定の整数は、現在のフレーム内のマクロブロック・スライスの処理の間、変化しない固定された整数であるか、または現在のフレームについて処理されるスライスの数の増加につれて増大する可変整数である。各スライスごとにこの所定の整数を増大させると、レート制御により処理されるマクロブロック・スライスの数が減少されるので、各フレームのビット・レートを制御するための計算上の複雑さと処理時間が減少される。固定された整数を使用する１つの例示的な調節では、ＤＣＴ係数を２で割り、量子化スケールに２を掛ける。ＤＣＴ係数を２で割ると、一般に、係数値が小さくなると、必要とされるコードは短くなる傾向があるので、ビットカウントは減少される。係数をその近似値に戻すために、量子化スケールに２を掛けてから、再量子化する。ステップ１７４で、トランスコーダは、再量子化されたＤＣＴデータをビデオ・ビットストリームの中に再符号化し、ステップ１７６で、そのビットストリームを出力する。
【００３０】
図１１のステップ１７８で、トランスコーダによるレート制御パス２６が継続し、出て行くスライスのビットカウントの記録を維持し、元のスライスのビットカウント（再量子化前）と現在のスライスのビットカウント（再量子化後）の差を最初の所定の位置（例えば、そのスライスの中間点）で計算する。次にステップ１８０で、トランスコーダは、計算された差が前に計算されたデルタ値よりも大きいか等しいことを確認する。そうであれば、ステップ１８２で、トランスコーダは、現在のフレームについてのビットレート制御を終了し、元の量子化値を使用して、そのフレームの残りの部分をパスさせる。現在のフレーム内で出力されたビット数（すなわち、ロゴ挿入後）は元のフレーム内のビット数（ロゴ挿入前）よりも小さいか等しいので、このレート制御は終了される。必要に応じて、擬似ビットが出力ビットストリームの中に挿入される。もし計算された差が前に計算されたデルタ値よりも小さければ、ステップ１８４で、トランスコーダは、レート制御によりそのスライスを処理し続ける。次にステップ１８６で、トランスコーダは、元のスライス（再量子化前）と現在のスライス（再量子化後）のビットカウントの差を第２の所定の位置（そのスライスの終点）で計算する。ステップ１８８でトランスコーダは、計算された差が前に計算されたデルタ値よりも大きいか等しいことを確認する。そうであれば、ステップ１９０でトランスコーダは現在のフレームのビットレート制御を終了し、元の量子化値を使用してそのフレームの残りの部分をパスさせる。現在のフレーム内で出力されたビット数（ロゴ挿入後）は元のフレーム内のビット数（ロゴの挿入前）よりも小さいか等しいので、このレート制御は終了する。再び、必要に応じて、擬似ビットがこの出力ビットストリームの中に挿入される。もし計算された差が前に計算されたデルタ値以下であれば、トランスコーダはステップ１６８に戻り、レート制御により次のスライスを処理し続ける。
【００３１】
マクロブロックが再量子化されるとき、歪みを生じることがある。この歪みは、動き補償のために再量子化されたマクロブロックを使用する他のマクロブロックに伝播する。この歪みは重大ではないが、この歪みを補償することが望ましいアプリケーションもある。補償するために、再量子化された領域を指し示すその後のマクロブロックは、ロゴの挿入について前に述べたのと同様な方法で、再符号化されなければならない。
【００３２】
本発明は、好ましい実施例に関して説明されたが、特許請求項の範囲に記載された本発明の趣旨と範囲から離れることなく、これらの実施例に種々の変更がなされることは明らかである。
【図面の簡単な説明】
【図１】本発明の例示的画像およびロゴを示す。
【図２】図１の画像における画素マクロブロック・スライス、マクロブロック、およびブロックを示す。
【図３】本発明のロゴ挿入プロセスを示すブロック図である。
【図４】本発明のバイパス・プロセスを示す流れ図である。
【図５】本発明のフレーム確認プロセスを示すフローチャートである。
【図６】本発明のＩフレームについてロゴ挿入プロセスを示すフローチャートである。
【図７】本発明のＰフレームについてロゴ挿入プロセスを示すフローチャートである。
【図８】本発明のＢフレームについてロゴ挿入プロセスを示すフローチャートである。
【図９】本発明のレート制御プロセスを示すフローチャートである。
【図１０】本発明のレート制御プロセスを示すフローチャートである。
【図１１】本発明のレート制御プロセスを示すフローチャートである。
【符号の説明】
１０  画像
１２  ロゴ
１４  ロゴ挿入領域
１６  マクロブロック・スライス
１７  マクロブロック・スライス
１８  画素マクロブロック
２０  ４つのブロック
２２  ロゴ挿入プロセス
２４  ロゴ挿入パス
２６  ビットレート制御パス
２８  ロゴ挿入のための復号化
３０  ロゴ挿入のための再符号化
３２  ビットレート制御のための復号化
３４  ビットレート制御のための再符号化
３８  部分的に復号化するプロセス
【図１】
0005071918.tif 000002
【図２】
0005071918.tif 000003
【図３】
0005071918.tif 000004
【図４】
0005071918.tif 000005
【図５】
0005071918.tif 000006
【図６】
0005071918.tif 000007
【図７】
0005071918.tif 000008
【図８】
0005071918.tif 000009
【図９】
0005071918.tif 000010
【図１０】
0005071918.tif 000011
【図１１】
0005071918.tif 000012