(57)【特許請求の範囲】
【請求項１】
ＭＰＥＧ準拠のビデオデータストリーム内のイメージを、再配置メカニズムによって再配置する方法であって、
基準フレームとしての背景イメージ内の第１の位置に描写されるＰフレームとしての第１のイメージを有する表示イメージを含むビデオデータであって符号化されたビデオデータを第１のバッファ内に記憶する段階と、
前記表示イメージを変更するために前記第１の位置から第２の位置に前記第１のイメージを再配置することが、再配置前後において前記第１のイメージデータの１バイト以内でのビット位置の変化を生じるかどうかを判定する段階と、
前記第１のバッファから前記ビデオデータを読み出す段階と、
前記第１のイメージを前記第１の位置から第２の位置に再配置するために前記ビデオデータを修正する段階と、
前記再配置が前記ビット位置の変化を生じる場合に、前記再配置された第１のイメージのビット位置を再配置前の第１のイメージのビット位置に戻すため、１以上のスタッフィングビットを生成して前記ビデオデータを修正する段階と、
復号化時に前記スタッフィングビットが前記表示されるイメージに実質的に影響を与えないように前記スタッフィングビットを符号化する段階と、
前記修正されたビデオデータを第２のバッファ内に記憶する段階と
を含む方法。
【請求項２】
前記再配置前の第１のイメージがイントラ符号化されたＰフレームを含み、前記基準フレームがＭＰＥＧフレームである請求項１に記載の方法。
【請求項３】
前記スタッフィングビットが非イントラデータとして符号化され、前記方法がさらに、前記Ｐフレームが非イントラ量子化マトリックスを含まない場合に、該非イントラ量子化マトリックスを生成する段階を含む請求項２に記載の方法。
【請求項４】
前記再配置された第１のイメージに対応する修正Ｐフレームを作成する段階をさらに有し、この修正Ｐフレームを作成する段階が、前記再配置された第１のイメージデータを含まない前記修正Ｐフレームのスライスに対して、及び前記第１のイメージデータを含む前記修正Ｐフレームの各スライスに対して空のスライスを生成する段階をさらに含み、前記方法がさらに、
前記第２の位置が、前記第１の位置と比較して前記第１のイメージの垂直位置の変化を生じる場合に、前記スライスを新たな位置に再配置するために、修正された垂直位置コードを使用して新しいスライスヘッダを生成する段階と、
長さが前記スタッフィングビットの数に等しいビット数を有した第１のＤＣＴ係数であって、選択された第１のＤＣＴ係数と関連するＭＰＥＧコードによって、再構成の時にゼロとなる第１のＤＣＴ係数を使用して生成されたスタッフィングマクロブロックを生成する段階と、
前記第１のイメージを前記第２の位置へ水平方向に再配置するために最初のマクロブロックの新しいアドレス増分を生成する段階と、
前記スタッフィングマクロブロックを前記最初のマクロブロックの前に挿入する段階と、
前記最初のマクロブロックに続くマクロブロックを前記第１のバッファから読み出すとともに、その読み出したマクロブロックを前記第２のバッファに格納することを含む、前記最初のマクロブロックに続くマクロブロックを追加する段階と、
最後のマクロブロックを生成する段階と
を含む請求項３に記載の方法。
【請求項５】
ｑｕｎｔｉｚｅｒ＿ｓｃａｌｅ＿ｃｏｄｅを使用して前記最初のマクロブロックが符号化される場合には、前記アドレス増分を８で割った時の余りである、アドレス増分のモジュラ長を７から減算したものに等しい数として、前記スタッフィングビットのビット数を計算する段階と、
ｑｕｎｔｉｚｅｒ＿ｓｃａｌｅ＿ｃｏｄｅを使用して、前記最初のマクロブロックが符号化されない場合には、（１−（前記アドレス増分のモジュラ長））のモジュラ長に等しい数として、前記スタッフィングビットのビット数を計算する段階と、
前記マクロブロックが、そのマクロブロックに対応するスライスヘッダのｑｕｎｔｉｚｅｒ＿ｓｃａｌｅ＿ｃｏｄｅの値と等しくなるように値が選定されたｑｕｎｔｉｚｅｒ＿ｓｃａｌｅ＿ｃｏｄｅをまだ含んでいない場合に、ｑｕｎｔｉｚｅｒ＿ｓｃａｌｅ＿ｃｏｄｅを前記最初のマクロブロックに追加する段階と、
前記最初のマクロブロックのｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅを０００００１の２進値と等しく設定する段階と
をさらに含む請求項４に記載の方法。
【請求項６】
前記Ｐフレームのピクチャヘッダがｑ＿ｓｃａｌｅ＿ｔｙｐｅ＝１を有する場合に、３２よりも小さい値の全ての係数を使用して前記マトリックスを生成する段階と、
前記ピクチャヘッダがｑ＿ｓｃａｌｅ＿ｔｙｐｅ＝０を有する場合に、１６よりも小さい値を使用して前記係数の全てを生成する段階と
をさらに含む請求項４に記載の方法。
【請求項７】
前記スタッフィングマクロブロックが、２進値００００１に等しいｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅと、２進値００００１に等しいｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ＿ｃｏｄｅとを使用して生成される請求項４に記載の方法。
【請求項８】
ビデオデータストリーム内のイメージを再配置するように構成された装置であって、
基準フレームとしての背景イメージ内の第１の位置に描写されたＰフレームとしての第１のイメージを有する表示イメージを含むビデオデータであって、符号化されたビデオデータを記憶するように構成された記憶装置と、
再配置メカニズムと、
を備え、前記再配置メカニズムが、
前記表示イメージを変更するために前記第１の位置から第２の位置に前記第１のイメージを再配置することが、再配置前後において前記第１のイメージデータの１バイト以内でのビット位置の変化を生じるかどうかを判定し、
前記第１のイメージを前記第１の位置から第２の位置に再配置するために前記ビデオデータを修正し、
前記再配置することが前記ビット位置の変化を生じると判定された場合に、前記再配置された第１のイメージのビット位置が再配置前の第１のイメージのビット位置に復元されるように１以上のスタッフィングビットを生成して前記ビデオデータを修正し、
復号化時に前記スタッフィングビットが前記表示イメージに実質的に影響を与えないように前記スタッフィングビットを符号化し、
前記修正されたビデオデータを第２のバッファ内に記憶する
ように構成されることを特徴とする装置。
【請求項９】
再配置前の第１のイメージがイントラ符号化されたＰフレームを含み、前記基準フレームがＭＰＥＧフレームである請求項８に記載の装置。
【請求項１０】
前記再配置メカニズムがさらに、
前記スタッフィングビットを非イントラデータとして符号化し、
前記Ｐフレームが非イントラ量子化マトリックスを含まない場合に非イントラ量子化マトリックスを生成する
ように構成される請求項９に記載の装置。
【請求項１１】
前記再配置メカニズムが、前記再配置される第１のイメージに対応する修正Ｐフレームを生成するよう構成され、さらに、この再配置メカニズムが、前記再配置された第１のイメージデータを含まない前記修正Ｐフレームのスライスに対して、及び前記第１のイメージデータを含む前記修正Ｐフレームの各スライスに対して空のスライスを生成するようさらに構成され、前記メカニズムがさらに、
前記第２の位置が、前記第１の位置と比較して前記第１のイメージの垂直位置の変化を表すとの判定に応答して、前記スライスを新たな位置に再配置するために、修正された垂直位置コードを有する新しいスライスヘッダを生成し、
前記スタッフィングビットの数に等しいビット数を有する第１のＤＣＴ係数であって、選択されたＤＣＴ計数とその関連するＭＰＥＧコードを用いて再構成の時にゼロとなる第１のＤＣＴ係数を使用して生成されたスタッフィングマクロブロックを生成し、
前記第１のイメージを前記第２の位置へ水平方向に再配置するために最初のマクロブロックの新しいアドレス増分を生成し、
前記スタッフィングマクロブロックを前記最初のマクロブロックの前に挿入し、
前記最初のマクロブロックに続くマクロブロックを追加することであって、前記第１のバッファから前記追加すべきマクロブロックを読み出すとともに、その読み出したマクロブロックを前記第２のバッファに格納し、
最後のマクロブロックを生成する
ように構成される請求項１０に記載の装置。
【請求項１２】
前記再配置メカニズムが、
ｑｕｎｔｉｚｅｒ＿ｓｃａｌｅ＿ｃｏｄｅを使用して前記最初のマクロブロックが符号化される場合には、前記アドレス増分を８で割った時の余りである、アドレス増分のモジュラ長を７から減算したものに等しい数として、前記スタッフィングビットのビット数を計算し、
ｑｕｎｔｉｚｅｒ＿ｓｃａｌｅ＿ｃｏｄｅを使用して、前記最初のマクロブロックが符号化されない場合には、（１−（前記アドレス増分のモジュラ長））のモジュラ長に等しい数として、前記スタッフィングビットのビット数を計算し、
前記マクロブロックが、該マクロブロックに対応するスライスヘッダのｑｕｎｔｉｚｅｒ＿ｓｃａｌｅ＿ｃｏｄｅの値と等しくなるように値が選定されたｑｕｎｔｉｚｅｒ＿ｓｃａｌｅ＿ｃｏｄｅをまだ含んでいない場合に、ｑｕｎｔｉｚｅｒ＿ｓｃａｌｅ＿ｃｏｄｅを前記最初のマクロブロックに追加し、
前記最初のマクロブロックのｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅを０００００１の２進値と等しく設定する、
ようにさらに構成される請求項１１に記載の装置。
【請求項１３】
前記再配置メカニズムが、
前記Ｐフレームのピクチャヘッダがｑ＿ｓｃａｌｅ＿ｔｙｐｅ＝１を有する場合に、３２よりも小さい値の全ての係数を使用して前記マトリックスを生成し、
前記ピクチャヘッダがｑ＿ｓｃａｌｅ＿ｔｙｐｅ＝０を有する場合に、１６よりも小さい値を使用して前記係数の全てを生成する
ようにさらに構成される請求項１１に記載の装置。
【請求項１４】
前記メカニズムが、２進値００００１に等しいｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅと、２進値００００１に等しいｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ＿ｃｏｄｅとを使用して前記スタッフィングマクロブロックを生成するように構成される請求項１１に記載の装置。
【請求項１５】
前記ビデオデータストリームが、テレビジョン放送信号、インターネット、及び局所記憶媒体からなるグループの１つから前記装置によって取得される請求項１１に記載の装置。
【請求項１６】
プログラム命令を含むコンピュータ可読記憶媒体であって、
前記プログラム命令が、コンピュータに、
基準フレームとしての背景イメージ内の第１の位置に描写されたＰフレームとしての第１のイメージを有する表示イメージを含むビデオデータであって符号化されたビデオデータを第１のバッファ内に記憶すること、
前記表示イメージを変更するために前記第１の位置から第２の位置に前記第１のイメージを再配置することが、再配置前後の第１のイメージの間で前記第１のイメージデータの１バイト以内でのビット位置の変化を生じるかどうかを判定すること、
前記第１のバッファから前記ビデオデータを読み出すこと、
前記第１のイメージを前記第１の位置から第２の位置に再配置するために前記ビデオデータを修正すること、
前記再配置が前記ビット位置の変化を生じるとの判定に応答して、前記再配置された第１のイメージのビット位置が再配置前の第１のイメージのビット位置に復元されるように１以上のスタッフィングビットを生成して前記ビデオデータを修正すること、
復号化時に前記スタッフィングビットが前記表示されるイメージに実質的に影響を与えないように前記スタッフィングビットを符号化すること、
前記修正されたビデオデータを第２のバッファ内に記憶することと
を行わせることを特徴とする媒体。
【請求項１７】
前記プログラム命令がさらに、
前記第２の位置が、前記第１の位置と比較して前記第１のイメージの垂直位置の変化を表すとの判定に応答して、前記スライスを新たな位置に再配置するために、修正された垂直位置コードを有する新しいスライスヘッダを生成すること、
前記スタッフィングビットの数に等しいビット数を有する第１のＤＣＴ係数であって、選択されたＤＣＴ計数とその関連するＭＰＥＧコードを用いて再構成の時にゼロとなる第１のＤＣＴ係数を使用して生成されたスタッフィングマクロブロックを生成すること、
前記第１のイメージを前記第２の位置へ水平方向に再配置するために最初のマクロブロックの新しいアドレス増分を生成すること、
前記スタッフィングマクロブロックを前記最初のマクロブロックの前に挿入すること、
前記最初のマクロブロックに続くマクロブロックを追加することであって、前記第１のバッファから前記追加すべきマクロブロックを読み出すとともに、その読み出したマクロブロックを前記第２のバッファに格納すること、
最後のマクロブロックを生成することと
を行わせる請求項１６に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はビデオ処理の分野に関し、より具体的には、ビデオ表示におけるイメージの再配置に関する。
【背景技術】
【０００２】
テレビジョン放送、インタラクティブテレビ用途、インターネットウエブブラウザ、その他のマルチメディア用途では、バナー広告がますます一般的で重要になってきた。これらの広告により広告（アド）表示が、商取引、情報、その他の目的の視聴者を引きつけることができる。インタラクティブ用途では、バナー広告は通常、表示の背景イメージの上側の部分を占める。多くの場合、背景はＭＰＥＧ  Ｉフレームとして符号化され、バナー広告はビットマップ又はＭＰＥＧ  Ｐフレームのいずれかで符号化される。
【０００３】
バナー広告がビットマップ又はＭＰＥＧ  Ｐフレームで符号化されるかどうかにより、種々の問題又は制約が生じる可能性がある。例えば、ビットマップのバナー広告は、セットトップボックスの表示画面（ＳＴＢ  ＯＳＤ）のような、受信装置固有の制約のために色の解像度が制限される場合があった。さらに、ビットマップはＪＰＥＧイメージとして符号化されるので、イメージの圧縮解除のために追加の処理時間が必要となる。一方、ＭＰＥＧ  Ｐフレームとして符号化されたバナー広告は、はるかに高い色の解像度を有するので、通常は、受信装置内のＭＰＥＧハードウエアによって復号化することができる。しかしながら、ＭＰＥＧ  Ｐフレームとして符号化されたバナー広告を使用するときには、広告のスクリーン上への配置がより困難となる。ＳＴＢがＭＰＥＧ  Ｐフレームバナー広告を所望の位置に移動させることができるメカニズムがない場合には、Ｐフレームを通常、各々の新しい表示位置に対して再送信する必要がある。さらに、使用されているＭＰＥＧ  Ｐデコーダは、ストリームを適切に復号化するためには有効なＭＰＥＧストリームを必要とするので、ＭＰＥＧ  Ｐフレームバナー広告に対する新しい位置の選択が制限される。例えば、新しい位置の選択はマクロブロック（ＭＢ）境界上の位置に制限される場合がある。さらに、Ｐフレームの新しい位置への移動は、イメージデータマクロブロックのビット位置の変化を生じることがある。このような場合、通常は、計算プロセスの遅いビットシフトが必要とされることになる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従って、データストリーム内のバナー広告又は他のイメージを再配置するための方法とメカニズムが望まれる。
【課題を解決するための手段】
【０００５】
ビデオイメージを再配置するための方法とメカニズムが意図される。１つの実施態様では、イメージを元の位置から別の位置に移動させる。元のイメージを記述するデータは、第１のバッファ内に記憶される。第１のバッファに対する読み出しと書き込みは、通常は固定境界上で行われる。本方法は、イメージデータを解析して、所望の再配置が元のイメージに対して変化したイメージデータのビット位置を生じるかどうかを確定する段階を含む。ビット位置が変更されることの確定に応答して、新しいデータを追加することによって元のイメージデータを修正して、イメージデータをその元の位置に戻す。本方法はさらに、復号時に新しいデータが結果として得られるイメージに悪影響を与えないようにその新しいデータを符号化する段階を提供する。修正されたイメージデータは、第２のバッファに書き込まれ、修正されなかったイメージデータは、第１のバッファから第２のバッファにコピーされる。
【０００６】
１つの実施態様では、イメージは、ＭＰＥＧ−２ベース環境におけるＰフレームによって表され、対応するＩフレームは、イメージが表示される背景を表す。Ｐフレームイメージのビット位置が再配置によって変更されることになる場合には、本方法は、イメージデータを含むこれらのスライスに対してスタッフィングビットの態様の新しいデータを追加する段階を含む。本方法はさらに、イメージによって占有されていないＰフレームの部分に対して新しい「空の」スライスを生成する段階、スライスを含む各イメージの第１のマクロブロックのアドレス増分を修正する段階、残りのイメージマクロブロックをこれらのそれぞれのスライスに追加する段階、さらにスライスの残りにスキップドマクロブロックを書き込む段階を含む。さらに、イメージの垂直位置の変更の確定に応答して、本方法はイメージデータを含むスライスに対してスライスの垂直位置のコードを修正する段階を含む。
【０００７】
１つの実施態様では、本方法は、Ｐフレームイメージをイントラデータとして符号化する段階、新しいデータを非イントラデータとして符号化する段階、復号時に新しいデータに対してゼロ係数を生成するように構成された、非イントラ量子化マトリックスを生成する段階を含む。さらにまた、本方法は、特定の境界に基づいて、必要とされるビットのスタッフィングの量を計算する段階をも含んでいる。１つの実施態様では、ビット位置がバイト境界に対して確定され、計算はこれをベースに行われる。
【０００８】
さらに、上述の方法に従ってビデオイメージを再配置するように構成されたメカニズムが意図される。１つの実施態様では、そのメカニズムは、イメージの再配置のプログラム命令を実行するように構成された汎用プロセッサを備える。メカニズムは、元のビデオイメージを記憶するように構成された第１のバッファと、元のイメージの修正バージョンを記憶するための第２のバッファとを含む。１つの実施態様では、元のＰフレームイメージが第１のバッファ内に記憶される。メカニズムは、イメージに対して新しい所望の位置を示すデータを受け取る。メカニズムは、元のデータを解析して、バイト内のイメージビット位置がイメージの再配置の結果として変更されるかどうかを確定する。ビット位置が変更されることになる確定に応答して、本メカニズムはイメージデータをその元のビット位置に戻すのに必要とされる、幾つかのスタッフィングビットを計算する。次いで、非イントラデータを符号化したスタッフィングマクロブロックが、イメージデータを含む各スライスに対して生成される。スタッフィングマクロブロックの視覚的効果を無効にするように構成された、非イントラ量子化マトリックスが生成される。メカニズムはさらに、イメージスライスの垂直位置のコードを修正し、各スライスのイメージデータの第１のマクロブロックを修正して、イメージを新しい位置に再配置するように構成される。
【発明を実施するための最良の形態】
【０００９】
本方法及び手法の他の多くの実施形態並びに特徴を本明細書で説明する。
本発明の他の目的及び利点は、添付図面を参照して以下の詳細な説明を読むと明らかになるであろう。
本発明は種々の修正及び代替形態が可能であるが、その特定の実施形態を各図面で例証として示し、本明細書で詳細に説明する。しかしながら、図面及び詳細な説明は、本発明を開示された特定の形態に限定することを意図するものではなく、本発明は、添付の請求項によって定義された本発明の精神及び範囲内に包含される全ての修正、均等物、代替形態を保護することを意図するものである点を理解すべきである。
【００１０】
システムの概要
図１を参照すると、テレビジョンシステム１００の１つの実施形態が示されている。図示された実施形態では、受信機３０Ａ−３０Ｎは、幾つかのプログラムソース及び／又はインタラクティブコンテンツのソースに結合される。本明細書で特定の参照番号の後に符号が示される要素は、集合的に参照番号単独で参照される。例えば、受信機３０Ａ−３０Ｎはまとめて受信機３０として参照されることになる。受信機３０は、任意の数の適切な装置を備えることができ、このような装置の例には、セットトップボックス（ＳＴＢ）、テレビジョン（ＴＶ）、ビデオカセットレコーダ（ＶＣＲ）、パーソナルビデオレコーダ（ＰＶＲ）、個人用携帯型情報端末（ＰＤＡ）、パーソナルコンピュータ（ＰＣ）、ビデオゲームコンソール、又はモバイル／携帯電話が含まれる。
【００１１】
図１の実施形態には、送信媒体１７やバックチャンネル２６を介して受信機３０に結合された放送局１６が含まれる。加えて、受信機３０は、ネットワーク２０を介してソース１８やソース１９に結合されている。さらに放送局１６は、リモートソース１３とインターネット６０に結合されている。送信媒体１７は、衛星ベースシステム２３、ケーブルベースシステム２４、地上波又は複数マルチポイント配信サービス（ＭＭＤＳ）ベースシステム２５、これらの組み合わせ、又は他の好適な送信システムを含むことができる。
【００１２】
図１の実施形態では、放送局１６は、データベース、アプリケーションサーバ、その他のオーディオ／ビデオソース、又は他のデータソースを含むことができる。１つの実施形態では、コンテンツはソースで生成される。それらのソースは、こうしたコンテンツを生成するように構成されたオーサリングステーションを含んでいる。オーサリングステーションは、インタラクティブコンテンツの開発を支援するソフトウエアで構成されたコンピュータワークステーションを含む。オーサリングステーションは、放送局１６の一部とすることができ、この場合、生成されたコンテンツの転送は、ローカルコンピュータネットワーク又は同様の構成を介して行うことができる。代替として、オーサリングステーションは、放送局１６から遠隔に配置（１３）してもよい。オーサリングステーションが放送局１６に直接結合されない実施形態では、ソース１３によって生成されたコンテンツは、インターネット、放送、ケーブルなどを介して放送局１６に転送することができる。幾つかの場合には、遠隔の場所１３で生成されたコンテンツは、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、又はフラッシュメモリデバイスなどの記憶媒体に最初に転送して、データベース又は他の記憶装置に記憶することができる、より一般的な手段を介して放送局１６にトランスポートされる。
【００１３】
受信及び／又は生成に続いて、コンテンツを、放送送信ネットワークを通じて受信機３０に配信することができる。基本的にこのネットワークは、種々のソースからコンテンツを組み立て、必要に応じてコンテンツを処理（例えばデジタル化、圧縮、パケット化する）する放送局１６と、放送局１６からコンテンツを受信してこれを受信機３０に送る送信ネットワーク１７とからなる。第２の配信メカニズムが、受信機３０と何らかのサーバの形態とすることができるソース１８との間で直接のポイント・ツー・ポイント接続１３８を含んでもよい。この接続１３８は、通常の電話回線、ケーブル、無線、又は他の方法を介して行うことができる。第３の配信メカニズムもまた、ポイント・ツー・ポイント接続１３６とすることができるが、ソース１９から受信機３０までのコンテンツの送信は、１つ又はそれ以上の共有されたネットワークを介して（例えばインターネット上で）行われる。図１は同様に、任意選択的にソース１８及び／又はソース１９に結合することができる放送局１６を示す。このような結合によって、コンテンツを受信機３０に転送する際に、放送局１６がソース１８又はソース１９と協働して機能することができる。図１に同様に示されているのは、バックチャンネル（すなわち戻り経路）２６であり、これによって受信機３０は、放送局１６との間でデータを送信したり及び／又は受信したりすることができる。バックチャンネル２６は、電話回線、ケーブル、無線、又は他の接続を含むことができる。データは多くの異なる共有ネットワークを通してルーティングすることができるので、データは、ソースから受信機に送信されるときに何度も読み出し、記憶し、書き込みをすることができる点を留意すべきである。
【００１４】
図示の例では、放送局（ヘッドエンド）１６は、アプリケーションサーバ２５０と、事前に生成されたインタラクティブコンテンツを収容することができるデータベース２３０とを含む。コンテンツ処理メカニズム２００とサーバ２５０は、インターネット６０に結合されている。データベース２３０、サーバ２５０、インターネット６０、ソース１３は、受信コンテンツを処理し、処理されたコンテンツをマルチプレクサに送るように構成されているコンテンツ処理メカニズム２００に結合されている。マルチプレクサはオーディオ／ビデオ信号を受信するように結合され、さらに、広告、イメージ、及び／又は他の送信用データを供給するよう構成されたメタデータ／ＡＤインジェクタ２６０に結合されている。マルチプレクサ２２０は、受信信号を多重化し、その多重化信号をネットワーク通信オペレータ１７に送り、続いてその信号を１つ又はそれ以上の受信機に送る。上記の記述では、インタラクティブコンテンツのソースが放送局１６にあるものとして説明しているが、代替の実施形態では、データベース２３０とコンテンツ処理メカニズム２００は、ネットワーク通信オペレータの場所に常駐させることができる。このような代替実施形態の例は、送信の前にインタラクティブコンテンツを放送信号に挿入するケーブルステーションとすることができる。
【００１５】
次に図２を参照すると、本明細書で説明される方法を適用することができるビデオストリーム３００の１つの実施形態が図示されている。当業者であれば、放送システムがパケット化エレメンタリストリームを含むトランスポートストリームの形態のＭＰＥＧデータを送信することができ、他のシステムは、ＭＰＥＧデータストリームを送信するための他の手法を用いることができることを理解するであろう。ビデオストリーム３００は一般に、ＭＰＥＧ−２規格に適合するが、異なる圧縮技術を使用する代替のストリームフォーマットも同様に利用できる。図２の例では、ビデオストリーム３００は、シーケンスヘッダ、拡張、ピクチャ群（ＧＯＰ：group of picture）、シーケンス終了コードを備えたシーケンス３１０を含むように示されている。ＧＯＰ３２０は、ヘッダと１つ又はそれ以上のピクチャを含む。ピクチャ３３０は、ヘッダ、符号化拡張、拡張及びユーザデータ、さらに１つ又はそれ以上のスライスを含む。スライス３４０が図示されており、ヘッダと複数のマクロブロックを含む。マクロブロック３５０は、ヘッダと複数のブロックを含む。最後に、ブロック３６０は、差分ＤＣ係数、ランレベル可変長符号化（ＶＬＣ）、ブロック終了を含むように示される。
【００１６】
上述のように、ＭＰＥＧデータストリームは、バナー広告、又はＰフレームの形態で送信される他のイメージを含むことができる。図３はイメージのＰフレーム５１０と背景のＩフレーム５００との間の関係を説明する１つの実施形態を示す。通常、バナー広告と他のイメージは、幅がｗピクセル（５２０）で高さがｈピクセル（５２２）の長方形のイメージとして表される。イメージがＰフレームにおいて符号化された実施形態では、ｗとｈは両方とも、マクロブロック長の増分（すなわち１６ピクセル増分）として指定することができる。従って、ｗ％１６＝ｈ％１６＝０（ここで％は係数演算）である。さらに、このようなイメージは、イメージの左上コーナを示すｘ座標（５３０）とｙ座標（５３２）を含む。イメージの左上コーナは、Ｐフレームイメージのラスタスキャンの順番の開始位置と一致する場合が多い。１つの実施形態では、Ｐフレームイメージ５１０は、イントラ符号化マクロブロックだけを使用して符号化される。Ｉフレームでは、背景イメージを送る必要がない点に留意されたい。背景イメージを転送するためには、むしろ、任意の有効な基準フレームが利用される。
【００１７】
図４は、Ｐフレームイメージの再配置を示す。Ｉフレーム５００に対するＰフレームイメージ５１０の元の位置を表す第１のピクチャ４０１が示されており、第２のピクチャ４０３が再配置された後のイメージ５１０を示している。図示の例では、第１のイメージ４０１は、Ｉフレーム５００に対して座標（ｘ１，ｙ１）に配置されたＰフレーム５１０を示す。第２のイメージ４０３は、Ｐフレームイメージ５１０が新しい位置（ｘ２，ｙ２）に再配置されたこと以外は、４０１と同じイメージを示す。１つの実施形態では、第１のイメージ４０１は、クライアント装置（テレビジョンセットトップボックスなど）によって受信されたイメージを表し、第２のイメージは、クライアント装置がＰフレームイメージ５１０を新しい場所（ｘ２，ｙ２）に再配置した後のイメージを表す。しかしながら、以下の説明は、セットトップボックスによる再配置を参照するが、Ｐフレームイメージの再配置は、本明細書で説明される方法とメカニズムによる、送信チェーン内の任意の場所で、及びこのような再配置を行うように構成された任意の好適な装置によって行うことができることは理解されるべきである。
【００１８】
１つの実施形態では、座標系を、ピクチャの左上コーナが座標（ｘ、ｙ）＝（０，０）で指定されるように設定することができる。新しい座標は、関連する特定のデータフォーマットに最適な増分で指定することができる。ＭＰＥＧ−２の場合、新しい座標は、マクロブロックの増分で指定することができる。画像のピクセル解像度が特定のシステム構成に応じて異なるが、例えば、マクロブロックは一般に、１６×１６ピクセルの領域に対応する。したがって、座標（ｘ、ｙ）＝（２，４）は、ピクセル位置（３２，６４）を表すことになる。説明の目的で、このような系を想定する。しかしながら、本明細書で説明される方法とメカニズムは同様に他のシステムにも適用することができることは当業者であれば理解するであろう。また、テレビジョン放送システムのＭＰＥＧ−２フレームピクチャについての検討を説明するが、他のシステムや圧縮手法も同様に適用できる。例えば、ビデオは、インターネット経由、他のコンピュータネットワーク経由、或いはホームＤＶＤシステム内で転送することができる。さらに、本明細書で説明する方法とメカニズムは必要に応じてＭＰＥＧ−２フィールドピクチャにも適応することができる点を当業者であれば理解するであろう。こうした多くの選択肢が実現可能であり、またそれを意図している。
【００１９】
次に図５を参照すると、ＭＰＥＧ形式のピクチャ５４０のより詳細な図が提供されている。図示の実施形態では、ピクチャ５４０は、背景上に重畳されたバナー広告を含む。しかしながら、視聴者には目に見えないであろうが、ピクチャ５４０は、実際には幾つかのイメージ「スライス」５５０を含んでいる。この例のバナー広告は、単一のスライス５５２に含まれるように示されているが、このようなイメージは複数のスライス内に含むことができる。さらに、ピクチャ５４０は２つの別々のイメージフレームから生成されている。図５では、ピクチャ５４０の背景がＭＰＥＧ  Ｉフレーム５４２Ａによって提供され、バナー広告のイメージはＭＰＥＧ  Ｐフレーム５４２Ｂによって提供される。一般的に言えば、フレーム５４２Ａ−５４２Ｂの各々は、ピクチャ５４０のスライス５５０に対応する、同じ数のスライスを記述するデータを含む。しかしながら、フレーム５４２Ａ−５４２Ｂの各々は、異なる量のデータを含むことができ、これらのスライスを異なる様態で表示することができる。
【００２０】
図５で分かるように、Ｐフレーム５４２Ｂは、バナー広告に対応するイメージデータを含まない幾つかの「空の」スライスを記述する。さらに、Ｐフレーム５４２Ｂにおいて示されるバナー広告は、広告が含まれるスライス５５４Ｂ全体には書き込まれていない。一方、この特定の例では、Ｉフレーム５４２Ａは、全てのスライスに背景イメージデータを含む。一般的に言えば、フレーム５４２Ａ−５４２Ｂが組み合わせられると、Ｐフレーム５４２Ｂで「空」と認識された領域は、Ｉフレーム５４２Ａにおいて対応する位置のデータを反映する。他方、バナー広告データを含むスライス５５４Ｂの該当する部分は、スライス５５４Ａの対応する部分と何らかの方法で組み合わせられる。このようにしてピクチャ５４０を生成することができる。
【００２１】
バナー広告の画像を、不透明度が変化したり、他の視覚的効果を有する、下にある背景と組み合わせる場合、バナー広告のイメージは背景の対応する場所を完全に覆うことが望ましいであろう。バナー広告が背景イメージの対応する場所を単純に覆うことになる実施形態では、結果として得られるピクチャ内にバナー広告のイメージを生成する際に背景イメージのビジュアルコンテンツが使用されないように、バナーイメージを符号化する。ＭＰＥＧ符号化を使用する実施形態では、フレーム内符号化マクロブロックだけを使用してバナーイメージを符号化することによってこれを達成することができる。このように、バナーイメージのマクロブロックは、背景イメージの対応するマクロブロックを単純に置き換えることができる。
【００２２】
図６は、ＭＰＥＧ  Ｐフレーム６４２の１つの実施形態を示す。既に説明されたように、Ｐフレーム６４２は、スライス６５４に区分化されて示されている。加えて、スライス６５４の各々は、マクロブロック６５６にさらに区分化されて示されている。１つのスライス６７０、ここではイメージ６８０を含むスライスがより詳細に示されている。図示の実施例では、スライス６７０は、ヘッダ６９０、最初のマクロブロック６９２、幾つかのスキップドマクロブロック６９４、イメージマクロブロック６９６、別のスキップドマクロブロック６９８、最後のマクロブロック６９９を含む。イメージマクロブロック６９６の最初のマクロブロックのマクロブロックアドレスの増分を適切な値に設定することによって、マクロブロック６９４のスキップを達成することができることを当業者であれば理解するであろう。このように、スキップドマクロブロックの各々に対して符号化されたＰフレーム内にデータを明示的に含むことは必要ではない。図６の実施例では、スキップドマクロブロック６９４は、バナー広告６８０を配置するのが望ましい、ピクチャの左側からの距離に対応することができる。
【００２３】
図７は、図６のバナー広告６８０の再配置を例示する。図７はバナー広告をより右に再配置することを示している。図７に示されるようにイメージを再配置する１つの方法は、イメージデータ６９６の最初のマクロブロックのマクロブロックアドレス増分を修正することである。例えば、最初のマクロブロックアドレスの増分は、図６に示されたような、Ｎマクロブロック６９４がスキップしたことを示すと想定する。ピクチャの左側からより遠い位置２０のマクロブロック（すなわち、水平方向で右側への再配置）が必要とされた場合、マクロブロックアドレスの増分は、Ｎ＋２０のマクロブロックを反映する値を使用して修正することができる。スライスの残りは、イメージ６８０の右に対してスキップドマクロブロックの数を減らすように適切に生成することができる。このような手法は、比較的単純と思われるが、以下に説明するように、別の問題が生じる場合がある。
【００２４】
上述のようなイメージの再配置が必要とされるシステムでは、システム自体の特性に基づく特定の制約が存在する可能性がある。例えば、テレビジョンシステムに関しては次の段階を行うことができる。テレビジョンのヘッドエンドは、ＭＰＥＧ又は他の圧縮ビデオデータを含む放送データストリームを生成して送信する。放送データストリームの受信に続いて、セットトップボックスがデータをその構成部分に逆多重することができる。このような構成部分の１つは、ＭＰＥＧ符号化されたビデオストリームを含んでいる。最も単純な場合は、受信したＭＰＥＧデータを単にバッファして、必要に応じて復号化することである。しかしながら、上述のようにＰフレームのイメージの位置を修正することを要求される場合には、追加の段階が必要となる。１つの実施形態では、受信したＭＰＥＧ符号化データはバッファ内に記憶される。次に、再配置のメカニズム（ハードウエア、ソフトウエア、又はこれらの組み合わせ）がバッファからデータを読み出し、イメージを再配置するために符号化データを修正し、修正された符号化データを再記憶する。続いて、修正されたデータを復号化する。
【００２５】
上述の再配置メカニズムは通常、従来のハードウエア及び／又はソフトウエア要素の使用を含むことになるので、このような構成要素に固有の全ての制約を考慮しなければならない。存在する可能性があるこうした制約の１つは、コンピュータ装置がデータにアクセスする方法を含む。一般的に言えば、処理ユニットは、バイト境界上でメモリデバイスをアドレス指定するように設計されている。所与のバイト内での特定のビットへのアクセスは、一般に、少なくとも全体のバイトの読み出しに続いて、所望のビットにアクセスする操作（シフトなどの）を含む。一方で、ＭＰＥＧ又は他のデータストリームは通常、配列された又はされていないバイトであるデータの識別可能なデータユニットを含む。再配置のメカニズムがバイト配列データアクセス（読み出し及び／又は書き込み）により制約されるので、ＭＰＥＧ又は他のデータストリームを処理する際に問題が発生する。
【００２６】
図８は、再配置メカニズムのアドレス指定制約がＰフレームイメージの再配置にどのように影響を及ぼす可能性があるかについての１つの実施形態を示す。図示の実施形態では、含まれるイメージを再配置する前に、スライス８０２のビットストリーム表現が図示されている。同様に、含まれるイメージを再配置するように修正された後のスライス８０４のビットストリーム表現が示されている。説明を容易にするために、元のスライス８０２は第１のバッファ内に記憶され、修正されたスライス８０４は第２のバッファ内に記憶されると想定する。しかしながら、２つの別々のバッファを使用する必要はない。元のデータを新しいデータで上書きすることも同様に企図される。このような場合には、同じ記憶場所のほとんど又は全てが再利用されていても、２つの別々のバッファの記述を使用することができる。同様に、一般に各スライス内のビット位置に対する基準として役立つ対応するバッファのアドレス位置８１０が（１０進法で）示される。
【００２７】
１つの実施形態では、図８に示されたデータは、可変長符号化形式を使用する。例えば、データがＭＰＥＧ−２で符号化されると想定すると、マクロブロックアドレス増分は、可変長符号化される。他の圧縮手法は、可変長符号化を異なる方法で使用することができる。図７のように、バナー広告が右に水平に再配置されるものを想定する。１つの実施形態では、これは、図８に示されるようにイメージの第１のマクロブロック（ＭＢ１）のマクロブロックアドレス増分（ＭＢＡＩ）を修正８２０することによって、少なくとも部分的に達成することができる。ＭＢＡＩが可変長符号化を使用する実施形態では、ＭＢＡＩによって表される値の修正により、同様にＭＢＡＩを表すのに使用されるビット数を変える。結果的に、スライス８０４内で修正されたＭＢ１に続く全てのマクロブロックがＭＢ１内のビット数の変さらに続いてシフトする。
【００２８】
スライス８０４のマクロブロックＭＢ２−ＭＢｎが変更されないままであると想定すると、元のスライス８０２から新しいスライス８０４にこれらのブロックを単にコピーすることが望ましい。しかしながら、シフトがデータのビット位置を変更しているので、単純にコピーすることができない可能性がある。例えば、スライスヘッダ、スライスの最初のＭＢ、新しいスライス８０４に対して新しく修正されたＭＢ１をコピーした後で、新しいスライス内のＭＢ２のデータがビット位置７５で始まる。メカニズムがバイト境界上のデータをアドレス指定する可能性があるので、メカニズムはコピーされるべきＭＢ２データを含むバイトの最後の５ビットで１バイトのデータをスライス８０４の場所７５に書き込むことができる。ビット７２−７５は、ＭＢ１データを上書きするのを防ぐためにマスクすることができる。しかしながら、元のスライス８０２では、ＭＢ２のデータはビット位置７０で始まる。結果的に、バイトの最後の５ビットがＭＢ２の最初の５ビットを含むように１バイトのデータを読み込む単純な方法は存在しない。スライス８０２内の位置６４から読み込まれた１バイトは、バイトの最後の２ビット位置にＭＢ２の最初の２ビットを有することになる。従って、スライス８０２からの少なくとも２バイトの読み出し（位置６４及び７２への読み出し）に続くビットの左シフトは、ＭＢ２の最初の５ビットをバイトの最後の５ビット位置に移動させるために必要となる。さらに、残りのマクロブロックに対しても同様のシフトが必要となる。
【００２９】
上述のデータの読み出しとシフトは、所望のスライス８０４を得るための１つの手段であるが、ビットのシフトを必要としない手法が望ましい場合もある。図９はビットのシフトを必要としない方法を示す。図８に示すシフト問題は、コピーされるべきデータの相対的ビット位置の変化から生じるので、その解決策は、新しいデータを修正されたスライスに加えることにより、データを元の相対ビット位置に戻すことを含む。そのため、例えば、コピーされるべき元のデータが１バイト内のビット位置２で始まり、修正がこのデータをビット位置６にシフトしていた場合には、該データの前に４ビットを追加して、該データをビット位置２に戻すことになる。データのビット位置の復元は、ほとんどのデータを最初のスライスから新しいスライスへ単純にコピーすることが可能となる。このようにして、イメージの再配置に伴う処理はより効率的に行うことができる。
【００３０】
図９の修正されたスライス８０６では、新しいデータ８３０（「スタッフィングビット」）が、マクロブロックデータＭＢ１−ＭＢｎをその元のビット位置に復元するためにスライスに追加されている。この例では、スライス８０６の最初のＭＢが修正されており、以下で説明される。しかしながら、図９で分かるように、元のビット位置にデータを保持することにより、元のスライス８０２から新しいスライス８０６への直接コピーが容易になる。例えば、位置６４で始まる元のスライスからのデータは、シフトを必要とせずに位置７２で始まる新しいスライスに直接コピーすることができる。元のスライス８０２から新しいスライス８０６へのマクロブロックＭＢ１の最初の部分のコピーは、適切なマスキングを行って、元のスライス位置５６からの読み出しに続いて新しいスライス位置６４への書き込みにより達成することができる。
【００３１】
有効なビットストリームを維持しながら、結果として得られるイメージの視覚的効果に悪い影響又は著しい影響を及ぼさずにＰフレームイメージを再配置するためには、種々の要因を考慮しなければならない。例えば、Ｐフレームイメージに追加のデータ（例えば、マクロブロック）が付加される場合、結果として得られる、変更を意図していないピクチャの部分が変更される可能性がある。従って、上記の問題を発生することなく所望の結果が得られるように取り組む必要がある。１つの実施形態では、Ｐフレームイメージはイントラ符号化であり、フレームに追加された全ての新しいデータは非イントラ符号化（インター符号化）である。追加されたデータはさらに符号化され、対応するマクロブロックデータ係数は、ゼロ係数又は得られるピクチャに悪影響を与えない係数のいずれかを使用して復号化する。換言すれば、追加されたデータが、結果として得られるピクチャに影響を与えないか、又は通常の視聴条件では感知できない影響しか与えず、或いは視覚的に許容できる場合には、結果として得られるイメージは、実質的な影響を与えないものとみなすことができる。
【００３２】
図１０は、本方法をより一般的に示し、ＭＰＥＧ符号化データ以外のビデオデータに適用できることを説明している。図９と同様に、図１０は、１０１０Ａ修正前と１０１０Ｂ修正後のビデオデータのスライスを示す。図示の実施形態では、ビデオデータは、ビデオ表示全体の水平スライスに対応するスライスを示す。元のスライス１０１０Ａは、垂直位置コード１０１２Ａ、水平位置コード１０１４Ａ、イメージデータ１０２０Ａ、さらにオプションの追加データ１０１６Ａを含む。垂直位置コード１０１２Ａを用いて、スライス１０１０Ａのピクチャ内の垂直位置を示すことができる。垂直位置コードがスライス１０１２Ａの始めにあるように示されているが、他の実施形態では、このデータを他の場所に含むことができる。ＭＰＥＧ符号化を使用する実施形態では、垂直位置コードは所与のスライスヘッダ内に含めることができる。
【００３３】
また、スライス１０１０Ａには、イメージデータ１０２０Ａを水平方向に配置するのに使用することができる水平位置コード１０１４Ａが示されている。例えば１つの実施形態では、イメージデータ１０２０Ａ自体は、水平位置情報を含まなくても良い。このような実施形態では、水平位置コード１０１４Ａは、イメージ１０２０Ａが始まるピクチャの左側からの距離を示すのに役立つ。代わりに、イメージデータ１０２０Ａが（相対的又は絶対的な）水平位置情報を含むことができる。絶対位置コードが使用される場合、一般には、このようなコードは全て、任意の再配置を反映するように修正される。一方、相対位置コードが使用される場合、このような位置コードの最初を修正するだけで十分である。例えばＭＰＥＧベースのシステムでは、イメージデータ１０２０Ａは、１つ又はそれ以上のマクロブロックを備え、その各々がマクロブロックアドレス増分値の形態で相対的な水平位置コードを含み、第１のマクロブロックアドレス増分の修正は、スライス内の当該マクロブロック及び全ての後続のマクロブロックを再配置するよう機能することができる。追加データ１０１６Ａは、ＭＰＥＧシステム内のスキップドマクロブロックを表し、又は特定の符号化手法に好適な他の任意のデータを示すことができる。
【００３４】
既に述べたように、ＭＰＥＧ符号化と他の符号化手法では可変長コードが使用される。結果的に、イメージデータの元のビット位置を変更する表示コードの修正は、修正されたデータを適切に記憶するために１つ又はそれ以上のシフト操作を行うことが必要となることがある。上記の検討では、水平表示コード（すなわち、ＭＰＥＧマクロブロックアドレス増分）の修正が説明された。しかしながら、可変長コードはさらに別の方法で使用することができ、このようなシステムが本明細書で記載された方法とメカニズムを使用できる点は注目される。例えば、可変長符号化を使用して垂直位置のコードを符号化するシステムでは、追加のデータを使用してイメージデータを元のビット位置に戻すことができる。
【００３５】
図１０では、スライス１０１０Ｂは、可変長コードの長さの変化を補正する修正後の元のスライスを示す。既に説明された「スタッフィングビット」は、イメージデータを元のビット位置へ再配置することが必要な場合に使用される。図示の例では、垂直１０１２Ｂ及び水平１０１４Ｂ位置コードの両方がイメージを再配置するために修正されている。スタッフィングビット１０３０を使用して、スライス１０１０Ｂ内で生じる可変長コードの全ての数の変化を補正できることが注目される。さらに、スタッフィングビットは、再配置されるべきデータの前にある限りは、一般にスライス内の任意の場所にあってもよい。
【００３６】
次に図１１を参照し、以下でＭＰＥＧ−２ベースのシステムに関する特定の実施形態を検討する。図１１は、ＭＰＥＧ  Ｐフレーム内で符号化されたイメージを再配置する方法の概要を提供する。１つの実施形態では、Ｐフレームは、イントラ符号化されたイメージを含む。Ｐフレームの処理中に、Ｐフレームデータが解析され（ブロック１１０２）、フレームのピクチャヘッダを修正することができる。１つの実施形態では、イメージの再配置により異なるビット位置に移動される対応データが生じることが判定される場合には、ピクチャヘッダの修正を実行する。一般的に言えば、再配置のメカニズムは、イメージを再配置するための新しい位置情報（例えば座標ｘ、ｙ）を受け取る。新しい位置情報を元の位置情報と比較することにより、ビット位置の変化が生じることが確定されることができる。
【００３７】
ビット位置の変化が再配置から生じることが確定された場合には、データをその元のビット位置に戻すために、「スタッフィングビット」の形態の追加データが付加される。結果として生じるピクチャに対してスタッフィングビットが悪影響を与えるのを防ぐために、スタッフィングビットは非イントラ符号化され、ピクチャヘッダの修正が必要となる。１つの実施形態では、イメージヘッダは、逆量子化時にゼロ係数を生成するように構成された非イントラ量子化器マトリックスを追加するように修正する。このように、追加されたスタッフィングビットは、結果として得られるピクチャに影響しない。Ｐフレームはイントラスライス（非イントラマクロブロックではない）として符号化されるので、新しい非イントラマトリックスの追加は、Ｐフレームイントラ符号化マクロブロックに影響しない点に留意されたい。さらにＰフレームのスライス内の他の全てのマクロブロックが一般に、どちらかにスキップされている（又はＭＣ、符号化されていない）ので、追加された量子化マトリックスはこれらのどちらにも影響を与えない。
【００３８】
ブロック１１０２の処理に続いて、イメージで占有されないＰフレームのこれらのスライスに対して、空のスライスが生成される（ブロック１１０４）。スタッフィングビットが必要とされる場合には、イメージデータをその元のビット位置に戻すために必要とされるスタッフィングビットの数が計算される（ブロック１１０６）。次いで、イメージの各Ｐフレームスライスに対して、ブロック１１１０−１１１８の処理が実行される。スライスの垂直位置が修正されていた場合には、新しい垂直位置コードを有する新しいスライスヘッダが生成される（ブロック１１１０）。次に、スライスの最初のマクロブロックが、イメージを新しい位置に水平に再配置するよう修正する（ブロック１１１２）。次いで、必要な数のビットを追加して後続のイメージデータをその元のビット位置に再配置するように構成された、新しい「スタッフィング」マクロブロックが生成される（ブロック１１１４）。新しいスタッフィングマクロブロックデータは、結果として得られるイメージに影響を与えないように、上述のように非イントラ符号化される。次に、イメージの残りのマクロブロックがスライスデータに加えられる（ブロック１１１６）。元のビット位置が記憶されているので、大部分のイメージマクロブロックを、元のスライスデータ位置から直接読み出しにより追加して、新しいスライスデータ位置に記憶することができる。最終的に、スライス内でイメージデータに続いてデータを生成することができる（例えばスキップされたブロック）（ブロック１１１８）。図１１に示す処理段階は、異なる順番で実行してもよく、さらに１つ又はそれ以上の段階、或いは各段階の一部を同時に実行してもよい点に留意されたい。
【００３９】
再配置方法の概要が提供されたので、次により詳細な処理について説明する。以下の検討において、イメージ（例えばバナー広告）の所望の位置を（ｘ、ｙ）で表し、ここで、所望の位置は、マクロブロック境界（すなわち、ｘ％１６＝ｙ％１６＝０）上にあるものとする。以下、イメージをスクリーン上の所望の位置（ｘ、ｙ）に配置するためにＭＰＥＧフレームを修正するアルゴリズムの１つの実施形態を説明する。最初に、バナー広告は、開始位置が第１の列と第１の行（ｘ＝０とｙ＝０）であるイントラマクロブロックの行としてのＭＰＥＧ  Ｐフレームとして符号化することができる。しかしながら、以下の説明から理解されるように、アルゴリズムは、Ｐフレームイメージの開始位置がゼロでない場合でも適用可能である。Ｐフレームは通常、組み合わされた背景のＩフレームとバナーＰフレームが有効なＭＰＥＧ２ビデオストリームであるように選択される、符号化パラメータを使用して符号化される。
【００４０】
段階１  スタッフィングデータビットを追加するかどうかの確定
テレビジョンシステムにおける受信装置は、テレビジョン放送ストリームを介して受信されたイメージを再配置するように構成された、ハードウエア及び／又はソフトウエア（すなわち再配置メカニズム）を含む。このメカニズムは、所望の再配置位置（ｘ、ｙ）を受信し、この新しい位置を受信されたイメージの位置と比較するように構成されている。一般に、そのメカニズムは、イメージが異なるビット位置を有する新しい位置ｘに移動されているかどうかを確定する。例えば、メモリアクセスの細分性がバイト境界上にある実施形態では、現在の位置ｘ％８≠新しい位置ｘ％８の場合、ビット位置が変わり、スタッフィングビットが必要とされる。スタッフィングビットを必要とすることが確定すると、非イントラ量子化マトリックスが使用され、ピクチャヘッダを段階２で修正する。一方、スタッフィングビットを必要としないことが確定すると、非イントラ量子化マトリックスは使用されず、段階２、５、７をスキップする。
【００４１】
段階２  Ｐフレームのピクチャヘッダの解析及び修正
最初に、本方法は、Ｐフレームのピクチャヘッダを解析して、特定の修正を行うかどうかを確定する段階を含む。一般的に言えば、以下の方法は、結果として得られるピクチャに潜在的に影響を及ぼす可能性があるＰフレームに新しいデータ（スタッフィングビット）を追加する段階を含むので、各段階は、追加されたデータが結果として得られるピクチャの視覚的効果に望ましくない形で影響を与えないことを保証するように行う必要がある。１つの実施形態では、全ての追加データは、非イントラデータとして符号化され、逆量子化の際に追加データのＤＣＴ係数がゼロ又は無視できるように適切な非イントラ量子化マトリックスが選択される。ＭＰＥＧベースの実施形態では、適切な非イントラ量子化マトリックスが存在することを保証するために、この方法はピクチャヘッダの解析と、場合によっては修正とを必要とする。
【００４２】
Ｐフレームピクチャヘッダの解析時には、適切な非イントラ量子化マトリックスが存在することを保証するために、以下の手法が使用される。
１．IF(q_scale_type=1)THEN
a. IF(extension_and_user_data already exists)THEN
i.  IF(using default non_intra_quantizer_matrix)[i.e.,load_non_in                   tra_quantizer_matrix=0],
THEN
Done with Step2,go to Step3.
ii.  ELSE set load_non_intra_quantizer_matrix=1 and load non_intra                   _quantizer_matrix with all coefficients<32.
b. ELSE[extension_and_user_data does not exist]
i. add extension_and_user_data,
ii. set load_non_intra_quantizer_matrix=1,and
iii. add non_intra_quantizer_matrix with all coefficients<32.
２．ELSE[q_scale_type=0]
a. IF(extension_and_user_data already exists)THEN
i. set load_non_intra_quantizer_matrix=1 and load non_intra_quanti                 zer_matrix with all coefficients<16.
b. ELSE
i. add extension_and_user_data,
ii. set load_non_intra_quantizer_matrix=1,
iii. add non_intra_quantizer_matrix with all coefficients<16.
【００４３】
段階３  空のスライスの生成
１つの実施形態では、空のスライスは以下の特性を有するスライスとして定義することができる。
１．スライスはマクロブロックの１つの行を占有する。
２．スライス内の最初と最後のマクロブロックを除いて、スライス内の他の全てのマクロブロックはスキップされて符号化されないか、又は最初と最後のマクロブロックは、マクロブロック形式＝００１（ＭＣ、符号化されない）及びｍｖｓ＝０（ゼロ運動ベクトル）で符号化され、その結果、スライスマクロブロックはＩフレームから共配置されたマクロブロックのコピーである。
アルゴリズムの残りの段階は次のように要約することができる。イメージデータを含む各スライスに対して、
１．スライスの最初のマクロブロックを修正してイメージを所望の位置に配置する。
２．必要なスタッフィングビットの数を計算し、イメージデータをその元のビット位置に戻す。
３．選択された係数を使用して、元の最初のマクロブロックの前に挿入された新しい最初のマクロブロックを構築し、
ａ．スタッフィングビットの所望の数を得る。
ｂ．再構成された係数を確実にゼロにする。
４．スライスイメージデータを追加する。
５．残りのスライスをスキップされた、又は（ＭＶ、符号化されない）マクロブロックで満たす。
【００４４】
段階４  イメージの再配置のためのイメージスライスの元の最初のＭＢを修正
イメージを所望の位置に再配置するために、元のスライスの最初のマクロブロックは修正される。スタッフィングマクロブロックは、元の最初のマクロブロックの前に挿入されるので、修正された元の最初のマクロブロックは、新しいスライスでは２番目のマクロブロックになる点を留意すべきである。元の最初のマクロブロックの修正は以下のように実行することができる。
１．イメージを新しい位置に再配置するために、ＭＢのｍａｃｒｏｂｌｏｃｋ＿ａｄｄｒｅｓｓ＿ｉｎｃｒｅｍｅｎｔ（ＭＢＡＩ）を計算して、（ｘ／１６）＝ｎ＊１１＋（１から１１）ビット（ここでｎ＝必要なＭＢエスケープコードの数）に設定する。
２．ｍａｃｒｏｂｌｏｃｋ＿ｔｙｐｅ＝”０００００１ｂ”（Ｉｎｔｒａ＋ｍｂｑ）に設定する。
３．ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ＿ｃｏｄｅを元の最初のＭＢと同じ値に設定する。
【００４５】
段階５  必要なビットスタッフィングの計算
アルゴリズムは、Ｐフレームイメージデータをその元のビット位置に記憶するのに必要なビットのスタッフィングの量を計算する。一般的に言えば、必要なスタッフィングビット（ｓビット）の量は次のように要約することができる。
１．元のスライスの最初のマクロブロックが、ｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ＿ｃｏｄｅを使用して符号化される場合、ＴＨＥＮ
ａ．イメージデータの第１の係数のスライス内のビット位置＝（スライスヘッダ内の＃ビット＋ＭＢヘッダ内の＃ビット）％８＝（３８＋１２）％８＝２、及び、
ｂ．必要なスタッフィングビットの数は、ｓビット＝７−ｌｅｎ（ここでｌｅｎは段階４で計算された新しいＭＢＡＩの長さ％８である）である。
２．ＥＬＳＥ
ａ．イメージデータの第１の係数のスライス内のビット位置＝（３８＋６）％８＝４、及び、
ｂ．必要なスタッフィングビットの数は、ｓビット＝（１−ｌｅｎ）％８である。
次に、上記のスタッフィングビットの値の決定する方法を説明する。一般的に言えば、スライスヘッダは次のように示される。
コードワード            ビット数      実際のコード
slice_start_code        ３２         "0x000001XX"（１６進）
quantizer_scale_code     ５            "xxxxxb"
extra_bit_slice          １            "0b"
従って、スライスヘッダ内のビットの合計数＝３２＋５＋１＝３８。
ここで、イントラスライス内の最初のマクロブロックが量子化スケールコードを使用して符号化されるかどうかに応じて、ビットスタッフィングの量が変動する可能性がある。
【００４６】
段階５Ａ  最初のマクロブロックが量子化スケールコードを使用して符号化される場合
元の最初のマクロブロックヘッダは以下の通りである。
コードワード                  ビット数    実際のコード
macroblock_address_increment    １      "1b"
macroblock_type                 ６      "000001b"Intra+mbq
quantizer_scale_code            ５        "xxxxxb"
従って、第１のマクロブロックの第１の係数のビット位置（バイト内、各バイトが０−７の番号のビットの場合）は、
[３８ビット（スライスヘッダサイズ）＋１２ビット（マクロブロックヘッダサイズ））％８＝５０％８＝２で始まる。
ｘがＰフレームイメージの最初のマクロブロックの所望の開始ピクセル位置であると想定すると、ｋ＝ｘ／１６＋１はｋ番目のマクロブロックのマクロブロック位置である。ＭＰＥＧマクロブロックアドレス増分可変長コードテーブルを使用すると、アルゴリズムは、マクロブロック＿アドレス＿増分コードワードの可変長コード（ＶＬＣ）ＶＬＣ（ｋ−１）を認識する。
【００４７】
以下の説明では次のことを想定する。
ｋ−１はマクロブロックアドレス増分の数である。
ＶＬＣ（ｋ−１）はマクロブロックアドレス増分の可変長コードである。
ＬｅｎはＶＣＬ（ｋ−１）のモジュラ長である（すなわち、Ｌｅｎ＝ｌｅｎｇｔｈ（ＶＣＬ（ｋ−１））％８）。
Ｓビットは必要なスタッフィングビットの数である。
従って、第１の係数のビット位置を２と想定すると、（ｌｅｎ＋１１＋Ｓビット）％８＝２である。ここで、１１はマクロブロック形式と量子化スケールコードのビットの組み合わされた数である。上式を操作すると、次式が得られる。
(len+11+sbit)%8 =(len+8+3+sbit)%8
=(len+3+sbit+8)%8
=((len+3+sbit)%8+8%8)%8[(a+b)%c=(a%c+b%c)%cであるので]
=((len+3+sbit)%8+0)%8
=((len+3+sbit)%8)%8
=(len+3+sbit)%8
→       (len+3+sbit)%8=2
sbit     =(2-3-len)%8
sbit     =(8+2-3-len)%8    [a%c=(a+c)%cであるので]
=(7-len)%8
ｌｅｎが０と７の間にあるので、（７−ｌｅｎ）も０と７の間にあり、％８は落とすことができる。従ってｓｂｉｔ＝７−ｌｅｎである。
【００４８】
必要なスタッフィングビットの数をｓｂｉｔ＝（７−ｌｅｎ）とすると、修正された最初のマクロブロック（新しいスタッフィングマクロブロックの加算後、第２のマクロブロックになる）は以下のようになる。
コードワード                  ビット数            実際のコード
macroblock_address_increment  n*11+(1 to 11)
（ここでｎは必要なマクロブロック・エスケープコードの番後）
macroblock_type                ６                "000001b"Intra+mbq
quantizer_scale_code           ５                "xxxxxb"
【００４９】
段階５Ｂ  ｑｕａｎｔ＿ｓｃａｌｅ＿ｃｏｄｅなしで最初のマクロブロックが符号化された場合
ｑｕａｎｔ＿ｓｃａｌｅ＿ｃｏｄｅなしで最初のマクロブロックが符号化された場合は、以下の通りである。
コードワード                    ビット数    実際のコード
macroblock_address_increment    １        "1b"
macroblock_type]                ５        "00011b"Intra
従って、最初のマクロブロックの第１の係数のビット位置は、
（３８ビット（スライスヘッダ）＋６ビット（マクロブロックヘッダ））％８＝４４％８＝４で始まる。
【００５０】
スタッフィングビットは、ｑｕａｎｔ＿ｓｃａｌｅ＿ｃｏｄｅをスライスヘッダ内に記憶するために、元の最初のマクロブロックの前に配置されたスタッフィングマクロブロック（異なるｑｕａｎｔ＿ｓｃａｌｅ＿ｃｏｄｅを有する）によって生成されるので、この元の最初のマクロブロックは以下のように修正される。
コードワード                    ビット数          実際のコード
macroblock_address_increment  n*11+(1to11)
macroblock_type                 ６                "00011b"Intra
quantizer_scale_code            ５                "xxxxxb"
ここでｑｕａｎｔ＿ｓｃａｌｅ＿ｃｏｄｅはスライスヘッダで使用されたのと同じものとして選択される。
ここでも同様に以下を想定する。
ｋ−１：マクロブロックアドレス増分の数
ＶＬＣ（ｋ−１）：マクロブロックアドレス増分の可変長コード
ｌｅｎ：長さ（ＶＬＣ（ｋ−１））％８：ＶＬＣ（ｋ−１）のモジュラ長
ｓｂｉｔ：必要なビットスタッフィングの数
(len+6+5+sbit)%8=4
→       (len+3+sbit)%8=4
→       sbit=(1-len)%8
従って、必要なスタッフィングビットの数＝（１−ｌｅｎ）％８である。
【００５１】
段階６  新しいスライスヘッダの生成
イメージの再配置がイメージの垂直位置の変化をもたらす場合には、影響を受けたスライスの垂直位置コードが修正される。アルゴリズムは、Ｐフレームイントラスライス情報を使用して新しいスライスヘッダを生成する。ｙ／１６＋１である新しい位置に、ｓｌｉｃｅ＿ｖｅｒｔｉｃａｌ＿ｐｏｓｉｔｉｏｎが設定される場合を除き、新しいスライスヘッダは一般に、元のものと同じ符号化パラメータを有する。
従って、新しいスライスヘッダは以下のようになる。
コードワード          ビット数    実際のコード
slice_start_code       ３２     "0x000001XX"
quantizer_scale_code    ５       "xxxxxb"
extra_bit_slice         １          "0b"
ここで、ＸＸ＝ｙ／１６＋１であり、１６進で表示される。
【００５２】
段階７  最初の「スタッフィング」マクロブロックの生成
必要なスタッフィングビットを生成するために、アルゴリズムは以下のビットパターンを用いて、新しい最初のマクロブロックである、「スタッフィング」マクロブロックを生成する。
コードワード                    ビット数    実際のコード
macroblock_address_increment      １              "1b"
macroblock_type                   ５      "000001b"NoMC+coded+mbq
quantizer_scale_code              ５      "00001b"
macroblock_pattern                ５      "01011"cbp=1(First Y block)
First DCT coefficient            sbit    図２の表から選択
（長さが一致するｓビットの最初のＤＣＴ係数を図２の表から選択する）
ＥＯＢ                            ２      "10b"
【００５３】
この例では、スタッフィングマクロブロックは、再構成後の全ての係数が０になり、追加されたマクロブロックが符号化されたピクチャに影響を与えないように、動き補償なしでｑｕａｎｔｉｚｅｒ＿ｓｃａｌｅ／ｃｏｄｅを１として符号化される。再構成後にゼロ係数となる他の値及び符号化を選択することができる点は当業者であれば理解するであろう。このような代替形態は全て含まれる。この例では、係数は、必要なスタッフィングビットの数を与えるのに図１２の表から選択される。図１２の表は、同様の効果を得ることができる多くの実施形態の１つに過ぎないことを示していることに留意すべきである。ＭＰＥＧ−２ＶＬＣ表からのコードワードの別の選択もまた、再構成された係数＝０をもたらすことができる。さらに、他の圧縮手法を使用する実施形態では、符号化された係数は、再構成された係数＝０をもたらすように適切に選択することができる。
【００５４】
最初のＤＣＴ係数の長さの選択では、以下のことを確認することができる。スタッフィングビットであるｓビットの数は、上述のように決定されている。また、スライスヘッダと上記マクロブロックのビットの数（最初のＤＣＴ係数の長さを除く）も同様に決定される。この知識に基づいて、最初のＤＣＴ係数の所望の長さは以下のようにｓビットに等しいことを示すことができる。
（３８（スライスヘッダのビット）＋１６（マクロブロックヘッダのビット）＋最初のＤＣＴ係数の長さ＋２（ＥＯＢ内のビット）％８＝ｓビット（必要なスタッフィングビット）。
従って、
（５６＋最初のＤＣＴ係数の長さ）％８＝ｓビット、
及び
最初のＤＣＴ係数の長さ＝ｓビットである。
【００５５】
１つの実施形態では、元のＰイントラスライスが、水平位置＝０で符号化される点に留意されたい。従って、所望の水平位置（ｘ）が０である場合、ビットスタッフィングは必要ではなく、アルゴリズムは、単にスライスヘッダの後にビットをコピーすることだけが可能である。
【００５６】
上記の実施形態では、以下に例証されるように再構成された非イントラ係数はすべてゼロである。一般的に言えば、全ての非イントラ係数に対する再構成の式ｃ[ｍ][ｎ]は、以下に説明するものとすることができる。
c[m][n]=((2*level[m][n]+sign[m][n])*quantizer_scale x NonIntra Qmatrix[m][n])/32
上記のアルゴリズムに従って、ＤＣＴ係数コードワードは、ｌｅｖｅｌ[ｍ][ｎ]＝１及びｓｉｇｎ[ｍ][ｎ]＝−１であるように選択される。従って、係数は以下のようになる。
c[m][n]=(quantizer_scale x NonIntra Qmatrix[m][n])/32
最初のケースで次の値が与えられると、
q_scale_type=1,
quantizer_scale=1,
NonIntra Qmatrix[m][n]=16  （全てのｍ、ｎに対して）
再構成された係数は、全ての非イントラ係数に対して、
c[m][n]=16/32=0
である。
もしくは、第２のケースで、次の値が与えられると、
q_scale_type=0,
quantizer_scale=2,
NonIntra Qmatrix[m][n]=1  （全てのｍ、ｎに対して）
再構成された係数は、
c[m][n]=(2x1)/32=2/32=0（全ての非イントラ係数に対して）である。
【００５７】
上述のように、ゼロ係数は厳密には必要ではない。他の実施形態は、非ゼロ係数を生成する値を用いることができるが、これは依然として追加データによって実質的に影響されないピクチャをもたらす。
【００５８】
段階８  追加マクロブロック
スタッフィングマクロブロックの生成に続いて、スタッフィングマクロブロックの後に、スライス内のイメージデータの残りのマクロブロックが追加される。元のスライスの最初のマクロブロック（第２のマクロブロックは新しいスライスである）は、段階４で説明されたように（必要であれば）修正される。一般的に言えば、追加されることになるマクロブロックは、第１のバッファ内に記憶され、新しいスライスに対しては第２のバッファ内に記憶された元のスライスから読み出すことができる。マクロブロックデータの元のビット位置が既に戻されているので、大多数のデータに対して直接コピーを使用することができ、ビットシフトを回避することができる。
【００５９】
段階９  スライスの残りの生成
段階８でマクロブロックデータを追加後、スライスの残りの部分を生成することができる。１つの実施形態では、残りのマクロブロックはスキップされ、最後のマクロブロックは、ＭＣであり符号化されないマクロブロック形式＝００１を有する。
【００６０】
段階１０  フレーム全体について繰り返す
アルゴリズムは、全体のＰフレームのバナーイメージを対象範囲とする全てのスライスが生成されるまで繰り返す。
イメージの再配置後の最終のＰフレーム１３５０の１つの例が図１３に示される。図示の実施形態では、空のスライス１３０２Ａ−１３０２Ｂが、イメージ１３１０の前後の両方に生成されている。この例のイメージ１３１０は、図中で見易いように二重線で描かれている。このようなイメージデータを含むスライスに対して新しいスライス１３０４が生成されている。イメージが垂直方向で位置を変えた場合、イメージデータを含むスライス１３０４の位置は、元のＰフレームに対して変化する。
【００６１】
さらに図１３には、イメージ１３１０の修正された可能性があるマクロブロック１３２０が示されている。イメージの水平位置が変えられていた場合には、例示のスタッフィングマクロブロックにはスライス１３０４が追加され、イメージのマクロブロック１３２０は、所望の位置を得るためにマクロブロックの適切な数をスキップするよう修正されている。最終的に、イメージスライス内の最後のマクロブロック１３３０は、スキップされることになるイメージのマクロブロックに続きマクロブロックの数を示す。
【００６２】
次に図１４を参照すると、上述のイメージを再配置する方法の１つの実施形態が示されている。イントラ符号化されたＰフレーム符号化イメージとイメージの新しい位置を記述するデータが最初に受信される（ブロック１４００）。このデータは、テレビジョンシステムの放送を介して、又はインターネットなどのネットワークを介して受信することができ、ＤＶＤ記憶媒体又は他の方法で読み出すことができる。符号化されたデータの受信に続いて、次の処理の準備のために、Ｐフレーム符号化データを、第１の位置に記憶する。イメージの新しい位置を記述するデータを同様に受け取るか、局所的に実行されるアプリケーションによって生成するか、あるいは他の任意の適切な方法で受け取る。
【００６３】
次に、非イントラ量子化マトリックスが使用されるかどうかを確定するために、符号化されたフレームのピクチャヘッダを解析する（意思決定ブロック１４０２）。一般的に言えば、新しい位置が、新しいデータの追加を必要とするもの（例えば、イメージデータのビット位置を記憶するためのスタッフィングマクロブロック）へのイメージ位置の変化を示す場合、新しいデータは、非イントラデータとして符号化されることになり、非イントラ量子化マトリックスは、復号化されたイメージに対して新しいデータが悪影響を与えないことを保証するよう適切に選択される。
【００６４】
非イントラ量子化マトリックスが示されないことが確定すると、ピクチャヘッダの適切な修正（ブロック１４０４）を行う。表示されたｑ＿ｓｃａｌｅ＿ｔｙｐｅ＝１の場合、非イントラ量子化マトリックスがその全ての係数を３２未満の値に設定して追加される。一方で、ｑ＿ｓｃａｌｅ＿ｔｙｐｅ＝０の場合、非イントラ量子化マトリックスが、その全ての係数を１６未満の値に設定して追加される。ピクチャヘッダの修正に続いて（必要であれば）、イメージによって占有されていないＰフレームのこれらの部分に対して空のスライスが生成される（段階１４０６）。
【００６５】
次に、イメージデータを含むＰフレームの各スライスに対して、開始（ブロック１４０８）と終了（ブロック１４２４）のブロックが表示されたループが実行される。イメージデータをその元のビット位置に戻すためにビットのスタッフィングが必要な場合、ビットスタッフィングの量が決定される（ブロック１４１０）。次に、検討中のスライスに対して新しいスライスヘッダが生成され、スタッフィングビットが必要な場合はスタッフィングマクロブロックが生成される（ブロック１４１２）。イメージの垂直位置が変わっていた場合、スライスヘッダに含まれる垂直位置コードが修正される。
【００６６】
スライスヘッダの修正とスタッフィングマクロブロックの生成後、イメージを所望の位置に再配置するために、元の最初のマクロブロックのマクロブロックアドレス増分が修正される（ブロック１４１４）。加えて、元の最初のマクロブロックが、ｑｕａｎｔ＿ｓｃａｌｅ＿ｃｏｄｅを使用して符号化されていない場合、スライスヘッダの値と等しい値を使用して、ｑｕａｎｔ＿ｓｃａｌｅ＿ｃｏｄｅを含むように修正される（ブロック１４１８）。元のマクロブロックの修正に続いて、修正された元の最初のマクロブロックとスライスの残りのイメージデータのマクロブロックが、スタッフィングマクロブロックに続いて追加される（ブロック１４２０）。最終的にスライスの残りの部分が生成される。１つの実施形態では、スライスの残りのマクロブロックはスキップされ、最後のマクロブロックはゼロｍｖｓで非ＭＣ符号化される。
【００６７】
上記の説明では、イメージが垂直方向で上又は下に、或いは水平方向で右に再配置されるように一般に想定された。このような実施形態では、元のＰフレームイメージは、水平（ｘ）位置＝０に配置することができる。このようにして、任意の水平位置への再配置を行うことができる。しかしながら、上記の方法とメカニズムは同様にイメージの左への再配置に適用することができる点に留意されたい。例えば、元のＰフレームイメージの水平位置がゼロより大きく（すなわち左端ではなく）、イメージを左に向けて再配置することが望まれる場合には、このような再配置は、イメージデータの元のビット位置を変更することができる。既に説明されたように、データのビット位置を戻すためにスタッフィングマクロブロックを使用することができる。しかしながら、元の最初のマクロブロックのマクロブロックアドレス増分を修正するのではなく、第２のマクロブロックのアドレス増分を修正して、より少ないマクロブロックをスキップするようにすることができる。結果として、イメージは左に再配置されることになる。上述のようにスライスの残りの書き込みを続けることができる。
【００６８】
またさらに、他の処置を同様に行うことができる。例えば、所望の再配置がイメージの一部においてフレームの制約を超えた移動を生じる場合には、所定の措置を開始することができる。例えば、エラーメッセージを発生させることができ、イメージを可能な限り境界を越えないで再配置させることができ、又は他の任意の適切な措置が考えられる。任意の数のこのような措置が可能であり企図される。
【００６９】
次に図１５を参照すると、上述の説明に従って、イメージを再配置するように構成された装置１５１２（「クライアント」）の１つの実施形態が示されている。図１５は、セットトップボックス１５１２の形態のクライアント１５１２を図示しているが、他の装置も同様に企図される。例えば、上記の説明に従って動作するように構成された他の装置には、ディジタルビデオレコーダ、個人用携帯型情報端末、パーソナルコンピュータ、ビデオゲームコンソール、モバイル／携帯電話、ギャンブル又は娯楽用装置、などをも含む。一般的に言えば、クライアント１５１２は、放送信号のような第１の信号１５７０を受信し、ディスプレイ又は記録装置などに第２の信号１５８０を送信するように構成される。図示の実施形態では、クライアント１５１２は外部大容量記憶装置１５１８に結合されている。クライアント１５１２は、制御ユニット１５３０、フロントエンド１５２６、戻りチャンネル１５３８、トランスポートステージ１５２８、ＡＶステージ１５３４を含む。同様に、ＯＳ及び／又はミドルウエア１５４４、メッセージ処理エンジン１５３６、アプリケーション１５４２、バッファ１５４６Ａを含むメモリ１５９０が示されている。同様に、Ｉ／Ｏインターフェース１５４０及び条件付きアクセス（ＣＡ）モジュール１５３２が示されている。Ｉ／Ｏインターフェース１５４０は、遠隔制御装置又は他の装置を介して、ユーザとの対話を検出するように構成されている。制御ユニット１５３０は、汎用マイクロプロセッサ、特定用途回路、メモリ（例えばＲＡＭ）、その他の構成要素を含むことができる。
【００７０】
１つの実施形態では、アプリケーション１５４２、ＯＳ／ミドルウエア１５４４、ＣＡモジュール１５３２、メッセージ処理エンジン１５３６は、セットトップボックス１５１２のメモリデバイス内に記憶することができるコードを含む。さらに、ＣＡモジュール１５３２は、セットトップボックス１５１２によってアクセス可能な特定のプログラム又はサービスへのアクセスを制御するよう構成されたソフトウエアを含む。メッセージ処理エンジン１５３６がメモリ１５９０に記憶されており、制御ユニット１５３０によって実行可能なプログラムコードとして示されているが、他の実施形態も実現可能であり企図される点は理解されるであろう。例えば、メッセージ処理エンジン１５３６は、回路又はハードウエアとソフトウエアの組み合わせを含む。例えば、メッセージ処理エンジン１５３６は、プログラム命令を実行する処理装置を含む。さらに、メッセージ処理エンジン１５３６は、受信ユニットに結合することができる外部装置として構成することができる。例えば、このような外部装置は、既存の装置に対してメッセージ処理機能を追加するように構成された、拡張モジュールを含む。
【００７１】
一般的に言えば、クライアント１５１２は、ディジタルデータを含む信号を受信して圧縮解除するように動作可能である。処理されるべき信号は、放送１５７０、インターネット１５７２、局所記憶媒体１５１８などを介して受信することができる。圧縮解除された信号は、テレビジョン表示用のＰＡＬ、ＳＥＣＡＭ、又はＮＴＳＣフォーマット信号などのアナログ信号に変換され、又はデジタル表示装置で使用するためのディジタルフォーマットとされる。図１５に示されるように、クライアント１５１２は、受信信号１５７０からのオーディオ、ビデオ、その他のデータを受信するように動作可能なフロントエンド回路１５２６を含む。受信された放送信号１５７０は、アナログディジタル（Ａ／Ｄ）変換器とチューナ／復調器を備えるフロントエンド１５２６でクライアント１５１２に供給される。フロントエンド１５２６は、特定の周波数を選択して通過させ、復調し、アナログ信号をディジタルフォーマットに変換することができる。上述のように、アナログデータをディジタルデータに変換することができるが、受信信号は、このような変換を必要としないディジタルデータをも含む。次に、デジタル化された出力はトランスポートステージ１５２８に送られ、そのステージでデータをさらに処理し、表示のためにデータの一部分をオーディオビジュアル（ＡＶ）ステージ１５３４に送り、別の部分を制御プロセッサ１５３０に送る。さらに、ＣＡモジュール１５３２は、トランスポートステージ１５２８からデータを受け取ることができ、スクランブル解除された信号又は他の信号をＡＶステージ１５３４に条件付きで送ることができる。信号方式情報及び制御情報を、オーディオビデオデータと共に同様に放送に含めることができ、クライアント１５１２内のソフトウエアによって操作することができる。
【００７２】
クライアント１５１２によって受信されたオーディオビデオ信号及びプログラム制御信号は、実行可能なアプリケーションのほかに、ユーザインターフェースを介して視聴者によってアクセス可能なテレビジョンプログラム、メタデータ、メニュー選定を含む。赤外線遠隔制御ユニット、クライアント上の制御パネル、又はテレビジョンのスクリーン上に表示されたメニューから選択するために用いる装置を含む、種々の方法で視聴者はクライアント１５１２を管理することができる。視聴者が行う選択と入力は、クライアント上で実行される１つ又はそれ以上の幾つかのアプリケーションに対するものである。上述のように、放送信号１５７０は、フロントエンド１５２６を介して受信され、トランスポートステージ１５２８によってフィルタ処理される。ユニキャスト又はマルチキャスト信号は一般に、戻りチャンネル１５３８を介して受信する。クライアント１５１２上で実行するアプリケーション１５２８は、種々の方法で到達する。例えば、放送信号１５７０を介して、戻りチャンネルのリソースインターフェース１５３８を介して、又は記憶装置１５１８を介してアプリケーションを受信することができる。記憶装置１５１８を介して受信されたアプリケーションは、オリジナルはクライアント１５１２から出たものであり、又は別のソースから前もってダウンロードして、記憶装置１５１８に記憶しておくことができる。
【００７３】
１つの実施形態では、クライアント１５１２は、ＭＰＥＧビデオ、オーディオ、データを復号化することができる衛星受信器、又は衛星統合デコーダ／受信器に使用するディジタルセットトップボックスとして構成することができる。例えば、クライアント１５１２は、直交振幅変調（ＱＡＭ）、４相位相変調（ＱＰＳＫ）、符号化直交周波数分割多重（ＣＯＦＤＭ）、又は８−残留側波帯（ＶＳＢ）を使用してブロードバンド通信をサポートするディジタルビデオチャンネルを受信し、双方向信号発信及びメッセージング用のチャンネルを制御するように構成することができる。ディジタルチャンネルは、圧縮され符号化されたマルチプログラムＭＰＥＧ（動画のための標準規格化グループ）トランスポートストリームを搬送することができる。トランスポートステージ１５２８は、トランスポートストリームから所望のプログラムを抽出し、オーディオ、ビデオ、データ成分を分離して、１つ又はそれ以上のオーディオデコーダ、１つ又はそれ以上のビデオデコーダ、及び任意選択的にＲＡＭ（又は他の形式のメモリ）、又はハードディスクなどのストリームを処理する装置にルーティングされる。クライアント１５１２と記憶装置１５１８（並びに放送サービスプロバイダからの任意のデータ及び信号）は、アナログ、デジタル、又はアナログとディジタルデータの両方に適合するように構成されることは理解されるべきである。受信されたアナログデータを記憶するために、ディジタルフォーマットへの変換を行うことができる。
【００７４】
ビデオデータを、ＡＶステージ１５３４及び／又はメモリ１５９０にルーティングすることができる。１つの実施形態では、制御ユニット１５３０は、再配置コードを実行するよう動作する汎用プロセッサである。このような再配置コードは、オペレーティングシステムの一部、ミドルウエア、及び／又はエンドユーザ形式のアプリケーションの全体部分とすることができる。このような実施形態では、トランスポートステージ１５２８は、逆多重化されたビデオデータをメモリ１５９０のバッファ（１５４６Ａ−１５４６Ｂ）、又はＡＶステージ１５３４に送ることができる。次いで、制御ユニット１５３０は、上述のようにイメージを再配置するよう動作する。一般的に言えば、再配置プロセス自体は，符号化されたビデオデータの復号化前の追加の事前処理段階として見ることができる。上述のように、この事前処理は、１つのバッファからの元のデータの読み出し、データの修正、及び修正されたデータの別のバッファへの書き込みを含む。他の実施形態は、汎用プロセッサに依存せず、多くはイメージの再配置に特に向けられた回路１５３５を組み込むことができる。既に述べられたように、ハードウエア及び／又はソフトウエアの任意の好適な組み合わせが可能であり、それらの使用も意図されている。
【００７５】
記憶装置１５１８は、任意選択的にクライアント１５１２に結合され、ビデオ、オーディオ、実行可能なコード、メタデータ、その他のデータを記憶することができる。記憶装置１５１８はクライアント１５１２に内蔵させてもよく、又は恒久的接続又は着脱可能接続により外部的に接続させてもよい（例えば、ＩＥＥＥ１３９４−１９９５接続を介して）。さらに、記憶装置１５１８は、ハードディスクドライブ、ＤＶＤドライブ、磁気テープ、光磁気ディスク、フラッシュメモリ、又は半導体メモリなどの、任意の好適な形式の記憶装置を含むことができる。加えて、装置１５１８のような１つ以上の記憶装置をクライアント１５１２に取り付けることができる。クライアント１５１２及び／又は記憶装置１５１８を、さらにテレビジョンセットに組み込むことができる。記憶装置１５１８内に記憶されるプログラム命令などの実行可能なデータは、取り出して実行することができる。１つの実施形態では、取り出されたデータは、例えばゲームショー、広告、又はインターネットベースのオンラインゲームに対応する他のアプリケーション又は受信信号と同期して実行するか、又は他の方法で使用することができる。もしくは、取り出されたデータは、ビデオオンデマンド、銀行取引、メール、又は電子プログラムガイド（ＥＰＧ）などのために別々に実行又は使用することができる。
【００７６】
本明細書で説明されたクライアント１５１２やシステム１５０は、例証に過ぎない点を理解すべきである。放送システム１００とクライアント１５１２は、本発明の範囲から逸脱することなく、本明細書で説明されたものとは異なるものであってもよい。さらに、図１５のクライアント１５１２に示された種々の構成要素は、記憶装置１５１８をクライアント１５１２内に一体的に配置するように、組み合わせることができる。種々の代替形態が実施可能であり、企図される。まださらに、図１５に示された装置は、エンドユーザ形式の装置を意味するが、本明細書で説明された方法とメカニズムは、伝送ストリームに沿った多くの場所で実行することができる。例えば、テレビジョンのヘッドエンド、インターネットなどのネットワークの特定のノード、又は他の任意の適切な場所で再配置を実行することができる。
【００７７】
上記に加えて、種々の実施形態はさらに、搬送媒体に応じて上記の説明、従って実行される命令及び／又はデータの受信、送信、又は記憶を含むことができる。一般的に言えば、搬送媒体は、放送システムで使用され、或いはネットワーク及び／又は無線リンクのような通信媒体を介して送られる、電気、磁気、又はデジタル信号のような送信媒体又は信号を含むことができる。例えば、ネットワークオペレータは、放送システムを介してプログラム命令を記述する信号を送ることができる。もしくは、送られる信号は、プログラム命令を実行させるように構成された、１つ又はそれ以上の「トリガー」を含むことができる。また、搬送媒体は、ディスク、ＤＶＤ、又はＣＤ−ＲＯＭなどの磁気又は光学媒体、ＲＡＭ（例えば、ＳＤＲＡＭ、ＲＤＲＡＭ、ＳＲＡＭなど）、ＲＯＭなどの揮発性又は不揮発性媒体といった記憶媒体又はメモリ媒体を含むことができる。
【００７８】
上記の実施形態は単に例証として意図されていることは理解すべきである。多くの代替構成が可能であり企図される。本明細書に説明された方法とメカニズムは、テレビジョンシステムの関連で利用可能であるだけでなく、ウエブブラウザ、インタラクティブゲーム、携帯型コンピュータ装置、並びに他の関連でも使用することができる点を理解されたい。さらに、以下の検討はＭＰＥＧ−２データストリームに関する方法を説明しているが、本方法とメカニズムはさらに他のデータストリームフォーマット又は規格に適用可能である。
【図面の簡単な説明】
【００７９】
【図１】テレビジョン放送システムの１つの実施形態を示す図。
【図２】ビデオストリームの１つの実施形態を示す図。
【図３】組み合わされたＰフレームとＩフレームを示す図。
【図４】Ｐフレームイメージの再配置を示す図。
【図５】ピクチャとフレームの１つの実施形態を示す図。
【図６】フレームとスライスの１つの実施形態を示す図。
【図７】イメージの再配置及びスライスの修正を示す図。
【図８】修正されたスライスの１つの実施形態を示す図。
【図９】修正されたスライスの１つの実施形態を示す図。
【図１０】ビットスタッフィングの１つの実施形態を示す図。
【図１１】イメージを再配置するための方法の１つの実施形態を示す図。
【図１２】スタッフィングビットコードワードを示すテーブルの１つの実施形態を示す図。
【図１３】修正後のＰフレームの１つの実施形態を示す図。
【図１４】イメージを再配置するための方法の１つの実施形態を示す図。
【図１５】イメージを再配置するように構成された装置の１つの実施形態を示す図。
【図１】
0004546249.tif 000002
【図２】
0004546249.tif 000003
【図３】
0004546249.tif 000004
【図４】
0004546249.tif 000005
【図５】
0004546249.tif 000006
【図６】
0004546249.tif 000007
【図７】
0004546249.tif 000008
【図８】
0004546249.tif 000009
【図９】
0004546249.tif 000010
【図１０】
0004546249.tif 000011
【図１１】
0004546249.tif 000012
【図１２】
0004546249.tif 000013
【図１３】
0004546249.tif 000014
【図１４】
0004546249.tif 000015
【図１５】
0004546249.tif 000016