JP2006506909A - データストリーム内のイメージの配置 - Google Patents

データストリーム内のイメージの配置 Download PDF

Info

Publication number
JP2006506909A
JP2006506909A JP2004553724A JP2004553724A JP2006506909A JP 2006506909 A JP2006506909 A JP 2006506909A JP 2004553724 A JP2004553724 A JP 2004553724A JP 2004553724 A JP2004553724 A JP 2004553724A JP 2006506909 A JP2006506909 A JP 2006506909A
Authority
JP
Japan
Prior art keywords
image
macroblock
data
frame
stuffing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004553724A
Other languages
English (en)
Other versions
JP4546249B2 (ja
Inventor
ズデプスキー,ジョエル
ラム,ワイ−マン
Original Assignee
オープンティブイ・インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オープンティブイ・インコーポレーテッド filed Critical オープンティブイ・インコーポレーテッド
Publication of JP2006506909A publication Critical patent/JP2006506909A/ja
Application granted granted Critical
Publication of JP4546249B2 publication Critical patent/JP4546249B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

ビットシフトを必要とすることなく、圧縮されたデータストリーム内でビデオイメージを再配置するための方法とメカニズム。Pフレームイメージは、元の位置から別の位置に再配置される。Pフレームイメージデータが解析されて、再配置が元のイメージ位置に対して変化したイメージデータビット位置を生じるかどうかを確定する。ビット位置が変更されることの確定に応答して、スタッフィングビットをスタッフィングマクロブロックの形態で追加することによって元のイメージデータを修正し、イメージデータをその最初のビット位置に戻す。Pフレームは、イントラ符号化され、スタッフィングマクロブロックは非イントラ符号化される。非イントラ量子化マトリックスは、復号時にスタッフィングマクロブロックデータが最終的なイメージに悪影響を与えないように選択される。イメージデータの元のビット位置を維持することにより、元のPフレームから新しいPフレームへの修正されないデータの直接コピーが容易になる。

Description

本発明はビデオ処理の分野に関し、より具体的には、ビデオ表示におけるイメージの再配置に関する。
テレビジョン放送、インタラクティブテレビ用途、インターネットウエブブラウザ、その他のマルチメディア用途では、バナー広告がますます一般的で重要になってきた。これらの広告により広告(アド)表示が、商取引、情報、その他の目的の視聴者を引きつけることができる。インタラクティブ用途では、バナー広告は通常、表示の背景イメージの上側の部分を占める。多くの場合、背景はMPEG Iフレームとして符号化され、バナー広告はビットマップ又はMPEG Pフレームのいずれかで符号化される。
バナー広告がビットマップ又はMPEG Pフレームで符号化されるかどうかにより、種々の問題又は制約が生じる可能性がある。例えば、ビットマップのバナー広告は、セットトップボックスの表示画面(STB OSD)のような、受信装置固有の制約のために色の解像度が制限される場合があった。さらに、ビットマップはJPEGイメージとして符号化されるので、イメージの圧縮解除のために追加の処理時間が必要となる。一方、MPEG Pフレームとして符号化されたバナー広告は、はるかに高い色の解像度を有するので、通常は、受信装置内のMPEGハードウエアによって復号化することができる。しかしながら、MPEG Pフレームとして符号化されたバナー広告を使用するときには、広告のスクリーン上への配置がより困難となる。STBがMPEG Pフレームバナー広告を所望の位置に移動させることができるメカニズムがない場合には、Pフレームを通常、各々の新しい表示位置に対して再送信する必要がある。さらに、使用されているMPEG Pデコーダは、ストリームを適切に復号化するためには有効なMPEGストリームを必要とするので、MPEG Pフレームバナー広告に対する新しい位置の選択が制限される。例えば、新しい位置の選択はマクロブロック(MB)境界上の位置に制限される場合がある。さらに、Pフレームの新しい位置への移動は、イメージデータマクロブロックのビット位置の変化を生じることがある。このような場合、通常は、計算プロセスの遅いビットシフトが必要とされることになる。
従って、データストリーム内のバナー広告又は他のイメージを再配置するための方法とメカニズムが望まれる。
ビデオイメージを再配置するための方法とメカニズムが意図される。1つの実施態様では、イメージを元の位置から別の位置に移動させる。元のイメージを記述するデータは、第1のバッファ内に記憶される。第1のバッファに対する読み出しと書き込みは、通常は固定境界上で行われる。本方法は、イメージデータを解析して、所望の再配置が元のイメージに対して変化したイメージデータのビット位置を生じるかどうかを確定する段階を含む。ビット位置が変更されることの確定に応答して、新しいデータを追加することによって元のイメージデータを修正して、イメージデータをその元の位置に戻す。本方法はさらに、復号時に新しいデータが結果として得られるイメージに悪影響を与えないようにその新しいデータを符号化する段階を提供する。修正されたイメージデータは、第2のバッファに書き込まれ、修正されなかったイメージデータは、第1のバッファから第2のバッファにコピーされる。
1つの実施態様では、イメージは、MPEG−2ベース環境におけるPフレームによって表され、対応するIフレームは、イメージが表示される背景を表す。Pフレームイメージのビット位置が再配置によって変更されることになる場合には、本方法は、イメージデータを含むこれらのスライスに対してスタッフィングビットの態様の新しいデータを追加する段階を含む。本方法はさらに、イメージによって占有されていないPフレームの部分に対して新しい「空の」スライスを生成する段階、スライスを含む各イメージの第1のマクロブロックのアドレス増分を修正する段階、残りのイメージマクロブロックをこれらのそれぞれのスライスに追加する段階、さらにスライスの残りにスキップドマクロブロックを書き込む段階を含む。さらに、イメージの垂直位置の変更の確定に応答して、本方法はイメージデータを含むスライスに対してスライスの垂直位置のコードを修正する段階を含む。
1つの実施態様では、本方法は、Pフレームイメージをイントラデータとして符号化する段階、新しいデータを非イントラデータとして符号化する段階、復号時に新しいデータに対してゼロ係数を生成するように構成された、非イントラ量子化マトリックスを生成する段階を含む。さらにまた、本方法は、特定の境界に基づいて、必要とされるビットのスタッフィングの量を計算する段階をも含んでいる。1つの実施態様では、ビット位置がバイト境界に対して確定され、計算はこれをベースに行われる。
さらに、上述の方法に従ってビデオイメージを再配置するように構成されたメカニズムが意図される。1つの実施態様では、そのメカニズムは、イメージの再配置のプログラム命令を実行するように構成された汎用プロセッサを備える。メカニズムは、元のビデオイメージを記憶するように構成された第1のバッファと、元のイメージの修正バージョンを記憶するための第2のバッファとを含む。1つの実施態様では、元のPフレームイメージが第1のバッファ内に記憶される。メカニズムは、イメージに対して新しい所望の位置を示すデータを受け取る。メカニズムは、元のデータを解析して、バイト内のイメージビット位置がイメージの再配置の結果として変更されるかどうかを確定する。ビット位置が変更されることになる確定に応答して、本メカニズムはイメージデータをその元のビット位置に戻すのに必要とされる、幾つかのスタッフィングビットを計算する。次いで、非イントラデータを符号化したスタッフィングマクロブロックが、イメージデータを含む各スライスに対して生成される。スタッフィングマクロブロックの視覚的効果を無効にするように構成された、非イントラ量子化マトリックスが生成される。メカニズムはさらに、イメージスライスの垂直位置のコードを修正し、各スライスのイメージデータの第1のマクロブロックを修正して、イメージを新しい位置に再配置するように構成される。
本方法及び手法の他の多くの実施形態並びに特徴を本明細書で説明する。
本発明の他の目的及び利点は、添付図面を参照して以下の詳細な説明を読むと明らかになるであろう。
本発明は種々の修正及び代替形態が可能であるが、その特定の実施形態を各図面で例証として示し、本明細書で詳細に説明する。しかしながら、図面及び詳細な説明は、本発明を開示された特定の形態に限定することを意図するものではなく、本発明は、添付の請求項によって定義された本発明の精神及び範囲内に包含される全ての修正、均等物、代替形態を保護することを意図するものである点を理解すべきである。
システムの概要
図1を参照すると、テレビジョンシステム100の1つの実施形態が示されている。図示された実施形態では、受信機30A−30Nは、幾つかのプログラムソース及び/又はインタラクティブコンテンツのソースに結合される。本明細書で特定の参照番号の後に符号が示される要素は、集合的に参照番号単独で参照される。例えば、受信機30A−30Nはまとめて受信機30として参照されることになる。受信機30は、任意の数の適切な装置を備えることができ、このような装置の例には、セットトップボックス(STB)、テレビジョン(TV)、ビデオカセットレコーダ(VCR)、パーソナルビデオレコーダ(PVR)、個人用携帯型情報端末(PDA)、パーソナルコンピュータ(PC)、ビデオゲームコンソール、又はモバイル/携帯電話が含まれる。
図1の実施形態には、送信媒体17やバックチャンネル26を介して受信機30に結合された放送局16が含まれる。加えて、受信機30は、ネットワーク20を介してソース18やソース19に結合されている。さらに放送局16は、リモートソース13とインターネット60に結合されている。送信媒体17は、衛星ベースシステム23、ケーブルベースシステム24、地上波又は複数マルチポイント配信サービス(MMDS)ベースシステム25、これらの組み合わせ、又は他の好適な送信システムを含むことができる。
図1の実施形態では、放送局16は、データベース、アプリケーションサーバ、その他のオーディオ/ビデオソース、又は他のデータソースを含むことができる。1つの実施形態では、コンテンツはソースで生成される。それらのソースは、こうしたコンテンツを生成するように構成されたオーサリングステーションを含んでいる。オーサリングステーションは、インタラクティブコンテンツの開発を支援するソフトウエアで構成されたコンピュータワークステーションを含む。オーサリングステーションは、放送局16の一部とすることができ、この場合、生成されたコンテンツの転送は、ローカルコンピュータネットワーク又は同様の構成を介して行うことができる。代替として、オーサリングステーションは、放送局16から遠隔に配置(13)してもよい。オーサリングステーションが放送局16に直接結合されない実施形態では、ソース13によって生成されたコンテンツは、インターネット、放送、ケーブルなどを介して放送局16に転送することができる。幾つかの場合には、遠隔の場所13で生成されたコンテンツは、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、又はフラッシュメモリデバイスなどの記憶媒体に最初に転送して、データベース又は他の記憶装置に記憶することができる、より一般的な手段を介して放送局16にトランスポートされる。
受信及び/又は生成に続いて、コンテンツを、放送送信ネットワークを通じて受信機30に配信することができる。基本的にこのネットワークは、種々のソースからコンテンツを組み立て、必要に応じてコンテンツを処理(例えばデジタル化、圧縮、パケット化する)する放送局16と、放送局16からコンテンツを受信してこれを受信機30に送る送信ネットワーク17とからなる。第2の配信メカニズムが、受信機30と何らかのサーバの形態とすることができるソース18との間で直接のポイント・ツー・ポイント接続138を含んでもよい。この接続138は、通常の電話回線、ケーブル、無線、又は他の方法を介して行うことができる。第3の配信メカニズムもまた、ポイント・ツー・ポイント接続136とすることができるが、ソース19から受信機30までのコンテンツの送信は、1つ又はそれ以上の共有されたネットワークを介して(例えばインターネット上で)行われる。図1は同様に、任意選択的にソース18及び/又はソース19に結合することができる放送局16を示す。このような結合によって、コンテンツを受信機30に転送する際に、放送局16がソース18又はソース19と協働して機能することができる。図1に同様に示されているのは、バックチャンネル(すなわち戻り経路)26であり、これによって受信機30は、放送局16との間でデータを送信したり及び/又は受信したりすることができる。バックチャンネル26は、電話回線、ケーブル、無線、又は他の接続を含むことができる。データは多くの異なる共有ネットワークを通してルーティングすることができるので、データは、ソースから受信機に送信されるときに何度も読み出し、記憶し、書き込みをすることができる点を留意すべきである。
図示の例では、放送局(ヘッドエンド)16は、アプリケーションサーバ250と、事前に生成されたインタラクティブコンテンツを収容することができるデータベース230とを含む。コンテンツ処理メカニズム200とサーバ250は、インターネット60に結合されている。データベース230、サーバ250、インターネット60、ソース13は、受信コンテンツを処理し、処理されたコンテンツをマルチプレクサに送るように構成されているコンテンツ処理メカニズム200に結合されている。マルチプレクサはオーディオ/ビデオ信号を受信するように結合され、さらに、広告、イメージ、及び/又は他の送信用データを供給するよう構成されたメタデータ/ADインジェクタ260に結合されている。マルチプレクサ220は、受信信号を多重化し、その多重化信号をネットワーク通信オペレータ17に送り、続いてその信号を1つ又はそれ以上の受信機に送る。上記の記述では、インタラクティブコンテンツのソースが放送局16にあるものとして説明しているが、代替の実施形態では、データベース230とコンテンツ処理メカニズム200は、ネットワーク通信オペレータの場所に常駐させることができる。このような代替実施形態の例は、送信の前にインタラクティブコンテンツを放送信号に挿入するケーブルステーションとすることができる。
次に図2を参照すると、本明細書で説明される方法を適用することができるビデオストリーム300の1つの実施形態が図示されている。当業者であれば、放送システムがパケット化エレメンタリストリームを含むトランスポートストリームの形態のMPEGデータを送信することができ、他のシステムは、MPEGデータストリームを送信するための他の手法を用いることができることを理解するであろう。ビデオストリーム300は一般に、MPEG−2規格に適合するが、異なる圧縮技術を使用する代替のストリームフォーマットも同様に利用できる。図2の例では、ビデオストリーム300は、シーケンスヘッダ、拡張、ピクチャ群(GOP:group of picture)、シーケンス終了コードを備えたシーケンス310を含むように示されている。GOP320は、ヘッダと1つ又はそれ以上のピクチャを含む。ピクチャ330は、ヘッダ、符号化拡張、拡張及びユーザデータ、さらに1つ又はそれ以上のスライスを含む。スライス340が図示されており、ヘッダと複数のマクロブロックを含む。マクロブロック350は、ヘッダと複数のブロックを含む。最後に、ブロック360は、差分DC係数、ランレベル可変長符号化(VLC)、ブロック終了を含むように示される。
上述のように、MPEGデータストリームは、バナー広告、又はPフレームの形態で送信される他のイメージを含むことができる。図3はイメージのPフレーム510と背景のIフレーム500との間の関係を説明する1つの実施形態を示す。通常、バナー広告と他のイメージは、幅がwピクセル(520)で高さがhピクセル(522)の長方形のイメージとして表される。イメージがPフレームにおいて符号化された実施形態では、wとhは両方とも、マクロブロック長の増分(すなわち16ピクセル増分)として指定することができる。従って、w%16=h%16=0(ここで%は係数演算)である。さらに、このようなイメージは、イメージの左上コーナを示すx座標(530)とy座標(532)を含む。イメージの左上コーナは、Pフレームイメージのラスタスキャンの順番の開始位置と一致する場合が多い。1つの実施形態では、Pフレームイメージ510は、イントラ符号化マクロブロックだけを使用して符号化される。Iフレームでは、背景イメージを送る必要がない点に留意されたい。背景イメージを転送するためには、むしろ、任意の有効な基準フレームが利用される。
図4は、Pフレームイメージの再配置を示す。Iフレーム500に対するPフレームイメージ510の元の位置を表す第1のピクチャ401が示されており、第2のピクチャ403が再配置された後のイメージ510を示している。図示の例では、第1のイメージ401は、Iフレーム500に対して座標(x1,y1)に配置されたPフレーム510を示す。第2のイメージ403は、Pフレームイメージ510が新しい位置(x2,y2)に再配置されたこと以外は、401と同じイメージを示す。1つの実施形態では、第1のイメージ401は、クライアント装置(テレビジョンセットトップボックスなど)によって受信されたイメージを表し、第2のイメージは、クライアント装置がPフレームイメージ510を新しい場所(x2,y2)に再配置した後のイメージを表す。しかしながら、以下の説明は、セットトップボックスによる再配置を参照するが、Pフレームイメージの再配置は、本明細書で説明される方法とメカニズムによる、送信チェーン内の任意の場所で、及びこのような再配置を行うように構成された任意の好適な装置によって行うことができることは理解されるべきである。
1つの実施形態では、座標系を、ピクチャの左上コーナが座標(x、y)=(0,0)で指定されるように設定することができる。新しい座標は、関連する特定のデータフォーマットに最適な増分で指定することができる。MPEG−2の場合、新しい座標は、マクロブロックの増分で指定することができる。画像のピクセル解像度が特定のシステム構成に応じて異なるが、例えば、マクロブロックは一般に、16×16ピクセルの領域に対応する。したがって、座標(x、y)=(2,4)は、ピクセル位置(32,64)を表すことになる。説明の目的で、このような系を想定する。しかしながら、本明細書で説明される方法とメカニズムは同様に他のシステムにも適用することができることは当業者であれば理解するであろう。また、テレビジョン放送システムのMPEG−2フレームピクチャについての検討を説明するが、他のシステムや圧縮手法も同様に適用できる。例えば、ビデオは、インターネット経由、他のコンピュータネットワーク経由、或いはホームDVDシステム内で転送することができる。さらに、本明細書で説明する方法とメカニズムは必要に応じてMPEG−2フィールドピクチャにも適応することができる点を当業者であれば理解するであろう。こうした多くの選択肢が実現可能であり、またそれを意図している。
次に図5を参照すると、MPEG形式のピクチャ540のより詳細な図が提供されている。図示の実施形態では、ピクチャ540は、背景上に重畳されたバナー広告を含む。しかしながら、視聴者には目に見えないであろうが、ピクチャ540は、実際には幾つかのイメージ「スライス」550を含んでいる。この例のバナー広告は、単一のスライス552に含まれるように示されているが、このようなイメージは複数のスライス内に含むことができる。さらに、ピクチャ540は2つの別々のイメージフレームから生成されている。図5では、ピクチャ540の背景がMPEG Iフレーム542Aによって提供され、バナー広告のイメージはMPEG Pフレーム542Bによって提供される。一般的に言えば、フレーム542A−542Bの各々は、ピクチャ540のスライス550に対応する、同じ数のスライスを記述するデータを含む。しかしながら、フレーム542A−542Bの各々は、異なる量のデータを含むことができ、これらのスライスを異なる様態で表示することができる。
図5で分かるように、Pフレーム542Bは、バナー広告に対応するイメージデータを含まない幾つかの「空の」スライスを記述する。さらに、Pフレーム542Bにおいて示されるバナー広告は、広告が含まれるスライス554B全体には書き込まれていない。一方、この特定の例では、Iフレーム542Aは、全てのスライスに背景イメージデータを含む。一般的に言えば、フレーム542A−542Bが組み合わせられると、Pフレーム542Bで「空」と認識された領域は、Iフレーム542Aにおいて対応する位置のデータを反映する。他方、バナー広告データを含むスライス554Bの該当する部分は、スライス554Aの対応する部分と何らかの方法で組み合わせられる。このようにしてピクチャ540を生成することができる。
バナー広告の画像を、不透明度が変化したり、他の視覚的効果を有する、下にある背景と組み合わせる場合、バナー広告のイメージは背景の対応する場所を完全に覆うことが望ましいであろう。バナー広告が背景イメージの対応する場所を単純に覆うことになる実施形態では、結果として得られるピクチャ内にバナー広告のイメージを生成する際に背景イメージのビジュアルコンテンツが使用されないように、バナーイメージを符号化する。MPEG符号化を使用する実施形態では、フレーム内符号化マクロブロックだけを使用してバナーイメージを符号化することによってこれを達成することができる。このように、バナーイメージのマクロブロックは、背景イメージの対応するマクロブロックを単純に置き換えることができる。
図6は、MPEG Pフレーム642の1つの実施形態を示す。既に説明されたように、Pフレーム642は、スライス654に区分化されて示されている。加えて、スライス654の各々は、マクロブロック656にさらに区分化されて示されている。1つのスライス670、ここではイメージ680を含むスライスがより詳細に示されている。図示の実施例では、スライス670は、ヘッダ690、最初のマクロブロック692、幾つかのスキップドマクロブロック694、イメージマクロブロック696、別のスキップドマクロブロック698、最後のマクロブロック699を含む。イメージマクロブロック696の最初のマクロブロックのマクロブロックアドレスの増分を適切な値に設定することによって、マクロブロック694のスキップを達成することができることを当業者であれば理解するであろう。このように、スキップドマクロブロックの各々に対して符号化されたPフレーム内にデータを明示的に含むことは必要ではない。図6の実施例では、スキップドマクロブロック694は、バナー広告680を配置するのが望ましい、ピクチャの左側からの距離に対応することができる。
図7は、図6のバナー広告680の再配置を例示する。図7はバナー広告をより右に再配置することを示している。図7に示されるようにイメージを再配置する1つの方法は、イメージデータ696の最初のマクロブロックのマクロブロックアドレス増分を修正することである。例えば、最初のマクロブロックアドレスの増分は、図6に示されたような、Nマクロブロック694がスキップしたことを示すと想定する。ピクチャの左側からより遠い位置20のマクロブロック(すなわち、水平方向で右側への再配置)が必要とされた場合、マクロブロックアドレスの増分は、N+20のマクロブロックを反映する値を使用して修正することができる。スライスの残りは、イメージ680の右に対してスキップドマクロブロックの数を減らすように適切に生成することができる。このような手法は、比較的単純と思われるが、以下に説明するように、別の問題が生じる場合がある。
上述のようなイメージの再配置が必要とされるシステムでは、システム自体の特性に基づく特定の制約が存在する可能性がある。例えば、テレビジョンシステムに関しては次の段階を行うことができる。テレビジョンのヘッドエンドは、MPEG又は他の圧縮ビデオデータを含む放送データストリームを生成して送信する。放送データストリームの受信に続いて、セットトップボックスがデータをその構成部分に逆多重することができる。このような構成部分の1つは、MPEG符号化されたビデオストリームを含んでいる。最も単純な場合は、受信したMPEGデータを単にバッファして、必要に応じて復号化することである。しかしながら、上述のようにPフレームのイメージの位置を修正することを要求される場合には、追加の段階が必要となる。1つの実施形態では、受信したMPEG符号化データはバッファ内に記憶される。次に、再配置のメカニズム(ハードウエア、ソフトウエア、又はこれらの組み合わせ)がバッファからデータを読み出し、イメージを再配置するために符号化データを修正し、修正された符号化データを再記憶する。続いて、修正されたデータを復号化する。
上述の再配置メカニズムは通常、従来のハードウエア及び/又はソフトウエア要素の使用を含むことになるので、このような構成要素に固有の全ての制約を考慮しなければならない。存在する可能性があるこうした制約の1つは、コンピュータ装置がデータにアクセスする方法を含む。一般的に言えば、処理ユニットは、バイト境界上でメモリデバイスをアドレス指定するように設計されている。所与のバイト内での特定のビットへのアクセスは、一般に、少なくとも全体のバイトの読み出しに続いて、所望のビットにアクセスする操作(シフトなどの)を含む。一方で、MPEG又は他のデータストリームは通常、配列された又はされていないバイトであるデータの識別可能なデータユニットを含む。再配置のメカニズムがバイト配列データアクセス(読み出し及び/又は書き込み)により制約されるので、MPEG又は他のデータストリームを処理する際に問題が発生する。
図8は、再配置メカニズムのアドレス指定制約がPフレームイメージの再配置にどのように影響を及ぼす可能性があるかについての1つの実施形態を示す。図示の実施形態では、含まれるイメージを再配置する前に、スライス802のビットストリーム表現が図示されている。同様に、含まれるイメージを再配置するように修正された後のスライス804のビットストリーム表現が示されている。説明を容易にするために、元のスライス802は第1のバッファ内に記憶され、修正されたスライス804は第2のバッファ内に記憶されると想定する。しかしながら、2つの別々のバッファを使用する必要はない。元のデータを新しいデータで上書きすることも同様に企図される。このような場合には、同じ記憶場所のほとんど又は全てが再利用されていても、2つの別々のバッファの記述を使用することができる。同様に、一般に各スライス内のビット位置に対する基準として役立つ対応するバッファのアドレス位置810が(10進法で)示される。
1つの実施形態では、図8に示されたデータは、可変長符号化形式を使用する。例えば、データがMPEG−2で符号化されると想定すると、マクロブロックアドレス増分は、可変長符号化される。他の圧縮手法は、可変長符号化を異なる方法で使用することができる。図7のように、バナー広告が右に水平に再配置されるものを想定する。1つの実施形態では、これは、図8に示されるようにイメージの第1のマクロブロック(MB1)のマクロブロックアドレス増分(MBAI)を修正820することによって、少なくとも部分的に達成することができる。MBAIが可変長符号化を使用する実施形態では、MBAIによって表される値の修正により、同様にMBAIを表すのに使用されるビット数を変える。結果的に、スライス804内で修正されたMB1に続く全てのマクロブロックがMB1内のビット数の変さらに続いてシフトする。
スライス804のマクロブロックMB2−MBnが変更されないままであると想定すると、元のスライス802から新しいスライス804にこれらのブロックを単にコピーすることが望ましい。しかしながら、シフトがデータのビット位置を変更しているので、単純にコピーすることができない可能性がある。例えば、スライスヘッダ、スライスの最初のMB、新しいスライス804に対して新しく修正されたMB1をコピーした後で、新しいスライス内のMB2のデータがビット位置75で始まる。メカニズムがバイト境界上のデータをアドレス指定する可能性があるので、メカニズムはコピーされるべきMB2データを含むバイトの最後の5ビットで1バイトのデータをスライス804の場所75に書き込むことができる。ビット72−75は、MB1データを上書きするのを防ぐためにマスクすることができる。しかしながら、元のスライス802では、MB2のデータはビット位置70で始まる。結果的に、バイトの最後の5ビットがMB2の最初の5ビットを含むように1バイトのデータを読み込む単純な方法は存在しない。スライス802内の位置64から読み込まれた1バイトは、バイトの最後の2ビット位置にMB2の最初の2ビットを有することになる。従って、スライス802からの少なくとも2バイトの読み出し(位置64及び72への読み出し)に続くビットの左シフトは、MB2の最初の5ビットをバイトの最後の5ビット位置に移動させるために必要となる。さらに、残りのマクロブロックに対しても同様のシフトが必要となる。
上述のデータの読み出しとシフトは、所望のスライス804を得るための1つの手段であるが、ビットのシフトを必要としない手法が望ましい場合もある。図9はビットのシフトを必要としない方法を示す。図8に示すシフト問題は、コピーされるべきデータの相対的ビット位置の変化から生じるので、その解決策は、新しいデータを修正されたスライスに加えることにより、データを元の相対ビット位置に戻すことを含む。そのため、例えば、コピーされるべき元のデータが1バイト内のビット位置2で始まり、修正がこのデータをビット位置6にシフトしていた場合には、該データの前に4ビットを追加して、該データをビット位置2に戻すことになる。データのビット位置の復元は、ほとんどのデータを最初のスライスから新しいスライスへ単純にコピーすることが可能となる。このようにして、イメージの再配置に伴う処理はより効率的に行うことができる。
図9の修正されたスライス806では、新しいデータ830(「スタッフィングビット」)が、マクロブロックデータMB1−MBnをその元のビット位置に復元するためにスライスに追加されている。この例では、スライス806の最初のMBが修正されており、以下で説明される。しかしながら、図9で分かるように、元のビット位置にデータを保持することにより、元のスライス802から新しいスライス806への直接コピーが容易になる。例えば、位置64で始まる元のスライスからのデータは、シフトを必要とせずに位置72で始まる新しいスライスに直接コピーすることができる。元のスライス802から新しいスライス806へのマクロブロックMB1の最初の部分のコピーは、適切なマスキングを行って、元のスライス位置56からの読み出しに続いて新しいスライス位置64への書き込みにより達成することができる。
有効なビットストリームを維持しながら、結果として得られるイメージの視覚的効果に悪い影響又は著しい影響を及ぼさずにPフレームイメージを再配置するためには、種々の要因を考慮しなければならない。例えば、Pフレームイメージに追加のデータ(例えば、マクロブロック)が付加される場合、結果として得られる、変更を意図していないピクチャの部分が変更される可能性がある。従って、上記の問題を発生することなく所望の結果が得られるように取り組む必要がある。1つの実施形態では、Pフレームイメージはイントラ符号化であり、フレームに追加された全ての新しいデータは非イントラ符号化(インター符号化)である。追加されたデータはさらに符号化され、対応するマクロブロックデータ係数は、ゼロ係数又は得られるピクチャに悪影響を与えない係数のいずれかを使用して復号化する。換言すれば、追加されたデータが、結果として得られるピクチャに影響を与えないか、又は通常の視聴条件では感知できない影響しか与えず、或いは視覚的に許容できる場合には、結果として得られるイメージは、実質的な影響を与えないものとみなすことができる。
図10は、本方法をより一般的に示し、MPEG符号化データ以外のビデオデータに適用できることを説明している。図9と同様に、図10は、1010A修正前と1010B修正後のビデオデータのスライスを示す。図示の実施形態では、ビデオデータは、ビデオ表示全体の水平スライスに対応するスライスを示す。元のスライス1010Aは、垂直位置コード1012A、水平位置コード1014A、イメージデータ1020A、さらにオプションの追加データ1016Aを含む。垂直位置コード1012Aを用いて、スライス1010Aのピクチャ内の垂直位置を示すことができる。垂直位置コードがスライス1012Aの始めにあるように示されているが、他の実施形態では、このデータを他の場所に含むことができる。MPEG符号化を使用する実施形態では、垂直位置コードは所与のスライスヘッダ内に含めることができる。
また、スライス1010Aには、イメージデータ1020Aを水平方向に配置するのに使用することができる水平位置コード1014Aが示されている。例えば1つの実施形態では、イメージデータ1020A自体は、水平位置情報を含まなくても良い。このような実施形態では、水平位置コード1014Aは、イメージ1020Aが始まるピクチャの左側からの距離を示すのに役立つ。代わりに、イメージデータ1020Aが(相対的又は絶対的な)水平位置情報を含むことができる。絶対位置コードが使用される場合、一般には、このようなコードは全て、任意の再配置を反映するように修正される。一方、相対位置コードが使用される場合、このような位置コードの最初を修正するだけで十分である。例えばMPEGベースのシステムでは、イメージデータ1020Aは、1つ又はそれ以上のマクロブロックを備え、その各々がマクロブロックアドレス増分値の形態で相対的な水平位置コードを含み、第1のマクロブロックアドレス増分の修正は、スライス内の当該マクロブロック及び全ての後続のマクロブロックを再配置するよう機能することができる。追加データ1016Aは、MPEGシステム内のスキップドマクロブロックを表し、又は特定の符号化手法に好適な他の任意のデータを示すことができる。
既に述べたように、MPEG符号化と他の符号化手法では可変長コードが使用される。結果的に、イメージデータの元のビット位置を変更する表示コードの修正は、修正されたデータを適切に記憶するために1つ又はそれ以上のシフト操作を行うことが必要となることがある。上記の検討では、水平表示コード(すなわち、MPEGマクロブロックアドレス増分)の修正が説明された。しかしながら、可変長コードはさらに別の方法で使用することができ、このようなシステムが本明細書で記載された方法とメカニズムを使用できる点は注目される。例えば、可変長符号化を使用して垂直位置のコードを符号化するシステムでは、追加のデータを使用してイメージデータを元のビット位置に戻すことができる。
図10では、スライス1010Bは、可変長コードの長さの変化を補正する修正後の元のスライスを示す。既に説明された「スタッフィングビット」は、イメージデータを元のビット位置へ再配置することが必要な場合に使用される。図示の例では、垂直1012B及び水平1014B位置コードの両方がイメージを再配置するために修正されている。スタッフィングビット1030を使用して、スライス1010B内で生じる可変長コードの全ての数の変化を補正できることが注目される。さらに、スタッフィングビットは、再配置されるべきデータの前にある限りは、一般にスライス内の任意の場所にあってもよい。
次に図11を参照し、以下でMPEG−2ベースのシステムに関する特定の実施形態を検討する。図11は、MPEG Pフレーム内で符号化されたイメージを再配置する方法の概要を提供する。1つの実施形態では、Pフレームは、イントラ符号化されたイメージを含む。Pフレームの処理中に、Pフレームデータが解析され(ブロック1102)、フレームのピクチャヘッダを修正することができる。1つの実施形態では、イメージの再配置により異なるビット位置に移動される対応データが生じることが判定される場合には、ピクチャヘッダの修正を実行する。一般的に言えば、再配置のメカニズムは、イメージを再配置するための新しい位置情報(例えば座標x、y)を受け取る。新しい位置情報を元の位置情報と比較することにより、ビット位置の変化が生じることが確定されることができる。
ビット位置の変化が再配置から生じることが確定された場合には、データをその元のビット位置に戻すために、「スタッフィングビット」の形態の追加データが付加される。結果として生じるピクチャに対してスタッフィングビットが悪影響を与えるのを防ぐために、スタッフィングビットは非イントラ符号化され、ピクチャヘッダの修正が必要となる。1つの実施形態では、イメージヘッダは、逆量子化時にゼロ係数を生成するように構成された非イントラ量子化器マトリックスを追加するように修正する。このように、追加されたスタッフィングビットは、結果として得られるピクチャに影響しない。Pフレームはイントラスライス(非イントラマクロブロックではない)として符号化されるので、新しい非イントラマトリックスの追加は、Pフレームイントラ符号化マクロブロックに影響しない点に留意されたい。さらにPフレームのスライス内の他の全てのマクロブロックが一般に、どちらかにスキップされている(又はMC、符号化されていない)ので、追加された量子化マトリックスはこれらのどちらにも影響を与えない。
ブロック1102の処理に続いて、イメージで占有されないPフレームのこれらのスライスに対して、空のスライスが生成される(ブロック1104)。スタッフィングビットが必要とされる場合には、イメージデータをその元のビット位置に戻すために必要とされるスタッフィングビットの数が計算される(ブロック1106)。次いで、イメージの各Pフレームスライスに対して、ブロック1110−1118の処理が実行される。スライスの垂直位置が修正されていた場合には、新しい垂直位置コードを有する新しいスライスヘッダが生成される(ブロック1110)。次に、スライスの最初のマクロブロックが、イメージを新しい位置に水平に再配置するよう修正する(ブロック1112)。次いで、必要な数のビットを追加して後続のイメージデータをその元のビット位置に再配置するように構成された、新しい「スタッフィング」マクロブロックが生成される(ブロック1114)。新しいスタッフィングマクロブロックデータは、結果として得られるイメージに影響を与えないように、上述のように非イントラ符号化される。次に、イメージの残りのマクロブロックがスライスデータに加えられる(ブロック1116)。元のビット位置が記憶されているので、大部分のイメージマクロブロックを、元のスライスデータ位置から直接読み出しにより追加して、新しいスライスデータ位置に記憶することができる。最終的に、スライス内でイメージデータに続いてデータを生成することができる(例えばスキップされたブロック)(ブロック1118)。図11に示す処理段階は、異なる順番で実行してもよく、さらに1つ又はそれ以上の段階、或いは各段階の一部を同時に実行してもよい点に留意されたい。
再配置方法の概要が提供されたので、次により詳細な処理について説明する。以下の検討において、イメージ(例えばバナー広告)の所望の位置を(x、y)で表し、ここで、所望の位置は、マクロブロック境界(すなわち、x%16=y%16=0)上にあるものとする。以下、イメージをスクリーン上の所望の位置(x、y)に配置するためにMPEGフレームを修正するアルゴリズムの1つの実施形態を説明する。最初に、バナー広告は、開始位置が第1の列と第1の行(x=0とy=0)であるイントラマクロブロックの行としてのMPEG Pフレームとして符号化することができる。しかしながら、以下の説明から理解されるように、アルゴリズムは、Pフレームイメージの開始位置がゼロでない場合でも適用可能である。Pフレームは通常、組み合わされた背景のIフレームとバナーPフレームが有効なMPEG2ビデオストリームであるように選択される、符号化パラメータを使用して符号化される。
段階1 スタッフィングデータビットを追加するかどうかの確定
テレビジョンシステムにおける受信装置は、テレビジョン放送ストリームを介して受信されたイメージを再配置するように構成された、ハードウエア及び/又はソフトウエア(すなわち再配置メカニズム)を含む。このメカニズムは、所望の再配置位置(x、y)を受信し、この新しい位置を受信されたイメージの位置と比較するように構成されている。一般に、そのメカニズムは、イメージが異なるビット位置を有する新しい位置xに移動されているかどうかを確定する。例えば、メモリアクセスの細分性がバイト境界上にある実施形態では、現在の位置x%8≠新しい位置x%8の場合、ビット位置が変わり、スタッフィングビットが必要とされる。スタッフィングビットを必要とすることが確定すると、非イントラ量子化マトリックスが使用され、ピクチャヘッダを段階2で修正する。一方、スタッフィングビットを必要としないことが確定すると、非イントラ量子化マトリックスは使用されず、段階2、5、7をスキップする。
段階2 Pフレームのピクチャヘッダの解析及び修正
最初に、本方法は、Pフレームのピクチャヘッダを解析して、特定の修正を行うかどうかを確定する段階を含む。一般的に言えば、以下の方法は、結果として得られるピクチャに潜在的に影響を及ぼす可能性があるPフレームに新しいデータ(スタッフィングビット)を追加する段階を含むので、各段階は、追加されたデータが結果として得られるピクチャの視覚的効果に望ましくない形で影響を与えないことを保証するように行う必要がある。1つの実施形態では、全ての追加データは、非イントラデータとして符号化され、逆量子化の際に追加データのDCT係数がゼロ又は無視できるように適切な非イントラ量子化マトリックスが選択される。MPEGベースの実施形態では、適切な非イントラ量子化マトリックスが存在することを保証するために、この方法はピクチャヘッダの解析と、場合によっては修正とを必要とする。
Pフレームピクチャヘッダの解析時には、適切な非イントラ量子化マトリックスが存在することを保証するために、以下の手法が使用される。
1.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.
2.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.
段階3 空のスライスの生成
1つの実施形態では、空のスライスは以下の特性を有するスライスとして定義することができる。
1.スライスはマクロブロックの1つの行を占有する。
2.スライス内の最初と最後のマクロブロックを除いて、スライス内の他の全てのマクロブロックはスキップされて符号化されないか、又は最初と最後のマクロブロックは、マクロブロック形式=001(MC、符号化されない)及びmvs=0(ゼロ運動ベクトル)で符号化され、その結果、スライスマクロブロックはIフレームから共配置されたマクロブロックのコピーである。
アルゴリズムの残りの段階は次のように要約することができる。イメージデータを含む各スライスに対して、
1.スライスの最初のマクロブロックを修正してイメージを所望の位置に配置する。
2.必要なスタッフィングビットの数を計算し、イメージデータをその元のビット位置に戻す。
3.選択された係数を使用して、元の最初のマクロブロックの前に挿入された新しい最初のマクロブロックを構築し、
a.スタッフィングビットの所望の数を得る。
b.再構成された係数を確実にゼロにする。
4.スライスイメージデータを追加する。
5.残りのスライスをスキップされた、又は(MV、符号化されない)マクロブロックで満たす。
段階4 イメージの再配置のためのイメージスライスの元の最初のMBを修正
イメージを所望の位置に再配置するために、元のスライスの最初のマクロブロックは修正される。スタッフィングマクロブロックは、元の最初のマクロブロックの前に挿入されるので、修正された元の最初のマクロブロックは、新しいスライスでは2番目のマクロブロックになる点を留意すべきである。元の最初のマクロブロックの修正は以下のように実行することができる。
1.イメージを新しい位置に再配置するために、MBのmacroblock_address_increment(MBAI)を計算して、(x/16)=n*11+(1から11)ビット(ここでn=必要なMBエスケープコードの数)に設定する。
2.macroblock_type=”000001b”(Intra+mbq)に設定する。
3.quantizer_scale_codeを元の最初のMBと同じ値に設定する。
段階5 必要なビットスタッフィングの計算
アルゴリズムは、Pフレームイメージデータをその元のビット位置に記憶するのに必要なビットのスタッフィングの量を計算する。一般的に言えば、必要なスタッフィングビット(sビット)の量は次のように要約することができる。
1.元のスライスの最初のマクロブロックが、quantizer_scale_codeを使用して符号化される場合、THEN
a.イメージデータの第1の係数のスライス内のビット位置=(スライスヘッダ内の#ビット+MBヘッダ内の#ビット)%8=(38+12)%8=2、及び、
b.必要なスタッフィングビットの数は、sビット=7−len(ここでlenは段階4で計算された新しいMBAIの長さ%8である)である。
2.ELSE
a.イメージデータの第1の係数のスライス内のビット位置=(38+6)%8=4、及び、
b.必要なスタッフィングビットの数は、sビット=(1−len)%8である。
次に、上記のスタッフィングビットの値の決定する方法を説明する。一般的に言えば、スライスヘッダは次のように示される。
コードワード ビット数 実際のコード

slice_start_code 32 "0x000001XX"(16進)
quantizer_scale_code 5 "xxxxxb"
extra_bit_slice 1 "0b"

従って、スライスヘッダ内のビットの合計数=32+5+1=38。
ここで、イントラスライス内の最初のマクロブロックが量子化スケールコードを使用して符号化されるかどうかに応じて、ビットスタッフィングの量が変動する可能性がある。
段階5A 最初のマクロブロックが量子化スケールコードを使用して符号化される場合
元の最初のマクロブロックヘッダは以下の通りである。
コードワード ビット数 実際のコード

macroblock_address_increment 1 "1b"
macroblock_type 6 "000001b"Intra+mbq
quantizer_scale_code 5 "xxxxxb"

従って、第1のマクロブロックの第1の係数のビット位置(バイト内、各バイトが0−7の番号のビットの場合)は、
[38ビット(スライスヘッダサイズ)+12ビット(マクロブロックヘッダサイズ))%8=50%8=2で始まる。
xがPフレームイメージの最初のマクロブロックの所望の開始ピクセル位置であると想定すると、k=x/16+1はk番目のマクロブロックのマクロブロック位置である。MPEGマクロブロックアドレス増分可変長コードテーブルを使用すると、アルゴリズムは、マクロブロック_アドレス_増分コードワードの可変長コード(VLC)VLC(k−1)を認識する。
以下の説明では次のことを想定する。
k−1はマクロブロックアドレス増分の数である。
VLC(k−1)はマクロブロックアドレス増分の可変長コードである。
LenはVCL(k−1)のモジュラ長である(すなわち、Len=length(VCL(k−1))%8)。
Sビットは必要なスタッフィングビットの数である。
従って、第1の係数のビット位置を2と想定すると、(len+11+Sビット)%8=2である。ここで、11はマクロブロック形式と量子化スケールコードのビットの組み合わされた数である。上式を操作すると、次式が得られる。
(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
lenが0と7の間にあるので、(7−len)も0と7の間にあり、%8は落とすことができる。従ってsbit=7−lenである。
必要なスタッフィングビットの数をsbit=(7−len)とすると、修正された最初のマクロブロック(新しいスタッフィングマクロブロックの加算後、第2のマクロブロックになる)は以下のようになる。
コードワード ビット数 実際のコード

macroblock_address_increment n*11+(1 to 11)
(ここでnは必要なマクロブロック・エスケープコードの番後)
macroblock_type 6 "000001b"Intra+mbq
quantizer_scale_code 5 "xxxxxb"
段階5B quant_scale_codeなしで最初のマクロブロックが符号化された場合
quant_scale_codeなしで最初のマクロブロックが符号化された場合は、以下の通りである。
コードワード ビット数 実際のコード

macroblock_address_increment 1 "1b"
macroblock_type] 5 "00011b"Intra

従って、最初のマクロブロックの第1の係数のビット位置は、
(38ビット(スライスヘッダ)+6ビット(マクロブロックヘッダ))%8=44%8=4で始まる。
スタッフィングビットは、quant_scale_codeをスライスヘッダ内に記憶するために、元の最初のマクロブロックの前に配置されたスタッフィングマクロブロック(異なるquant_scale_codeを有する)によって生成されるので、この元の最初のマクロブロックは以下のように修正される。
コードワード ビット数 実際のコード

macroblock_address_increment n*11+(1to11)
macroblock_type 6 "00011b"Intra
quantizer_scale_code 5 "xxxxxb"

ここでquant_scale_codeはスライスヘッダで使用されたのと同じものとして選択される。
ここでも同様に以下を想定する。
k−1:マクロブロックアドレス増分の数
VLC(k−1):マクロブロックアドレス増分の可変長コード
len:長さ(VLC(k−1))%8:VLC(k−1)のモジュラ長
sbit:必要なビットスタッフィングの数
(len+6+5+sbit)%8=4
→ (len+3+sbit)%8=4
→ sbit=(1-len)%8
従って、必要なスタッフィングビットの数=(1−len)%8である。
段階6 新しいスライスヘッダの生成
イメージの再配置がイメージの垂直位置の変化をもたらす場合には、影響を受けたスライスの垂直位置コードが修正される。アルゴリズムは、Pフレームイントラスライス情報を使用して新しいスライスヘッダを生成する。y/16+1である新しい位置に、slice_vertical_positionが設定される場合を除き、新しいスライスヘッダは一般に、元のものと同じ符号化パラメータを有する。
従って、新しいスライスヘッダは以下のようになる。
コードワード ビット数 実際のコード

slice_start_code 32 "0x000001XX"
quantizer_scale_code 5 "xxxxxb"
extra_bit_slice 1 "0b"

ここで、XX=y/16+1であり、16進で表示される。
段階7 最初の「スタッフィング」マクロブロックの生成
必要なスタッフィングビットを生成するために、アルゴリズムは以下のビットパターンを用いて、新しい最初のマクロブロックである、「スタッフィング」マクロブロックを生成する。
コードワード ビット数 実際のコード

macroblock_address_increment 1 "1b"
macroblock_type 5 "000001b"NoMC+coded+mbq
quantizer_scale_code 5 "00001b"
macroblock_pattern 5 "01011"cbp=1(First Y block)
First DCT coefficient sbit 図2の表から選択
(長さが一致するsビットの最初のDCT係数を図2の表から選択する)
EOB 2 "10b"
この例では、スタッフィングマクロブロックは、再構成後の全ての係数が0になり、追加されたマクロブロックが符号化されたピクチャに影響を与えないように、動き補償なしでquantizer_scale/codeを1として符号化される。再構成後にゼロ係数となる他の値及び符号化を選択することができる点は当業者であれば理解するであろう。このような代替形態は全て含まれる。この例では、係数は、必要なスタッフィングビットの数を与えるのに図12の表から選択される。図12の表は、同様の効果を得ることができる多くの実施形態の1つに過ぎないことを示していることに留意すべきである。MPEG−2VLC表からのコードワードの別の選択もまた、再構成された係数=0をもたらすことができる。さらに、他の圧縮手法を使用する実施形態では、符号化された係数は、再構成された係数=0をもたらすように適切に選択することができる。
最初のDCT係数の長さの選択では、以下のことを確認することができる。スタッフィングビットであるsビットの数は、上述のように決定されている。また、スライスヘッダと上記マクロブロックのビットの数(最初のDCT係数の長さを除く)も同様に決定される。この知識に基づいて、最初のDCT係数の所望の長さは以下のようにsビットに等しいことを示すことができる。
(38(スライスヘッダのビット)+16(マクロブロックヘッダのビット)+最初のDCT係数の長さ+2(EOB内のビット)%8=sビット(必要なスタッフィングビット)。
従って、
(56+最初のDCT係数の長さ)%8=sビット、
及び
最初のDCT係数の長さ=sビットである。
1つの実施形態では、元のPイントラスライスが、水平位置=0で符号化される点に留意されたい。従って、所望の水平位置(x)が0である場合、ビットスタッフィングは必要ではなく、アルゴリズムは、単にスライスヘッダの後にビットをコピーすることだけが可能である。
上記の実施形態では、以下に例証されるように再構成された非イントラ係数はすべてゼロである。一般的に言えば、全ての非イントラ係数に対する再構成の式c[m][n]は、以下に説明するものとすることができる。
c[m][n]=((2*level[m][n]+sign[m][n])*quantizer_scale x NonIntra Qmatrix[m][n])/32
上記のアルゴリズムに従って、DCT係数コードワードは、level[m][n]=1及びsign[m][n]=−1であるように選択される。従って、係数は以下のようになる。
c[m][n]=(quantizer_scale x NonIntra Qmatrix[m][n])/32
最初のケースで次の値が与えられると、
q_scale_type=1,
quantizer_scale=1,
NonIntra Qmatrix[m][n]=16 (全てのm、nに対して)
再構成された係数は、全ての非イントラ係数に対して、
c[m][n]=16/32=0
である。
もしくは、第2のケースで、次の値が与えられると、
q_scale_type=0,
quantizer_scale=2,
NonIntra Qmatrix[m][n]=1 (全てのm、nに対して)
再構成された係数は、
c[m][n]=(2x1)/32=2/32=0(全ての非イントラ係数に対して)である。
上述のように、ゼロ係数は厳密には必要ではない。他の実施形態は、非ゼロ係数を生成する値を用いることができるが、これは依然として追加データによって実質的に影響されないピクチャをもたらす。
段階8 追加マクロブロック
スタッフィングマクロブロックの生成に続いて、スタッフィングマクロブロックの後に、スライス内のイメージデータの残りのマクロブロックが追加される。元のスライスの最初のマクロブロック(第2のマクロブロックは新しいスライスである)は、段階4で説明されたように(必要であれば)修正される。一般的に言えば、追加されることになるマクロブロックは、第1のバッファ内に記憶され、新しいスライスに対しては第2のバッファ内に記憶された元のスライスから読み出すことができる。マクロブロックデータの元のビット位置が既に戻されているので、大多数のデータに対して直接コピーを使用することができ、ビットシフトを回避することができる。
段階9 スライスの残りの生成
段階8でマクロブロックデータを追加後、スライスの残りの部分を生成することができる。1つの実施形態では、残りのマクロブロックはスキップされ、最後のマクロブロックは、MCであり符号化されないマクロブロック形式=001を有する。
段階10 フレーム全体について繰り返す
アルゴリズムは、全体のPフレームのバナーイメージを対象範囲とする全てのスライスが生成されるまで繰り返す。
イメージの再配置後の最終のPフレーム1350の1つの例が図13に示される。図示の実施形態では、空のスライス1302A−1302Bが、イメージ1310の前後の両方に生成されている。この例のイメージ1310は、図中で見易いように二重線で描かれている。このようなイメージデータを含むスライスに対して新しいスライス1304が生成されている。イメージが垂直方向で位置を変えた場合、イメージデータを含むスライス1304の位置は、元のPフレームに対して変化する。
さらに図13には、イメージ1310の修正された可能性があるマクロブロック1320が示されている。イメージの水平位置が変えられていた場合には、例示のスタッフィングマクロブロックにはスライス1304が追加され、イメージのマクロブロック1320は、所望の位置を得るためにマクロブロックの適切な数をスキップするよう修正されている。最終的に、イメージスライス内の最後のマクロブロック1330は、スキップされることになるイメージのマクロブロックに続きマクロブロックの数を示す。
次に図14を参照すると、上述のイメージを再配置する方法の1つの実施形態が示されている。イントラ符号化されたPフレーム符号化イメージとイメージの新しい位置を記述するデータが最初に受信される(ブロック1400)。このデータは、テレビジョンシステムの放送を介して、又はインターネットなどのネットワークを介して受信することができ、DVD記憶媒体又は他の方法で読み出すことができる。符号化されたデータの受信に続いて、次の処理の準備のために、Pフレーム符号化データを、第1の位置に記憶する。イメージの新しい位置を記述するデータを同様に受け取るか、局所的に実行されるアプリケーションによって生成するか、あるいは他の任意の適切な方法で受け取る。
次に、非イントラ量子化マトリックスが使用されるかどうかを確定するために、符号化されたフレームのピクチャヘッダを解析する(意思決定ブロック1402)。一般的に言えば、新しい位置が、新しいデータの追加を必要とするもの(例えば、イメージデータのビット位置を記憶するためのスタッフィングマクロブロック)へのイメージ位置の変化を示す場合、新しいデータは、非イントラデータとして符号化されることになり、非イントラ量子化マトリックスは、復号化されたイメージに対して新しいデータが悪影響を与えないことを保証するよう適切に選択される。
非イントラ量子化マトリックスが示されないことが確定すると、ピクチャヘッダの適切な修正(ブロック1404)を行う。表示されたq_scale_type=1の場合、非イントラ量子化マトリックスがその全ての係数を32未満の値に設定して追加される。一方で、q_scale_type=0の場合、非イントラ量子化マトリックスが、その全ての係数を16未満の値に設定して追加される。ピクチャヘッダの修正に続いて(必要であれば)、イメージによって占有されていないPフレームのこれらの部分に対して空のスライスが生成される(段階1406)。
次に、イメージデータを含むPフレームの各スライスに対して、開始(ブロック1408)と終了(ブロック1424)のブロックが表示されたループが実行される。イメージデータをその元のビット位置に戻すためにビットのスタッフィングが必要な場合、ビットスタッフィングの量が決定される(ブロック1410)。次に、検討中のスライスに対して新しいスライスヘッダが生成され、スタッフィングビットが必要な場合はスタッフィングマクロブロックが生成される(ブロック1412)。イメージの垂直位置が変わっていた場合、スライスヘッダに含まれる垂直位置コードが修正される。
スライスヘッダの修正とスタッフィングマクロブロックの生成後、イメージを所望の位置に再配置するために、元の最初のマクロブロックのマクロブロックアドレス増分が修正される(ブロック1414)。加えて、元の最初のマクロブロックが、quant_scale_codeを使用して符号化されていない場合、スライスヘッダの値と等しい値を使用して、quant_scale_codeを含むように修正される(ブロック1418)。元のマクロブロックの修正に続いて、修正された元の最初のマクロブロックとスライスの残りのイメージデータのマクロブロックが、スタッフィングマクロブロックに続いて追加される(ブロック1420)。最終的にスライスの残りの部分が生成される。1つの実施形態では、スライスの残りのマクロブロックはスキップされ、最後のマクロブロックはゼロmvsで非MC符号化される。
上記の説明では、イメージが垂直方向で上又は下に、或いは水平方向で右に再配置されるように一般に想定された。このような実施形態では、元のPフレームイメージは、水平(x)位置=0に配置することができる。このようにして、任意の水平位置への再配置を行うことができる。しかしながら、上記の方法とメカニズムは同様にイメージの左への再配置に適用することができる点に留意されたい。例えば、元のPフレームイメージの水平位置がゼロより大きく(すなわち左端ではなく)、イメージを左に向けて再配置することが望まれる場合には、このような再配置は、イメージデータの元のビット位置を変更することができる。既に説明されたように、データのビット位置を戻すためにスタッフィングマクロブロックを使用することができる。しかしながら、元の最初のマクロブロックのマクロブロックアドレス増分を修正するのではなく、第2のマクロブロックのアドレス増分を修正して、より少ないマクロブロックをスキップするようにすることができる。結果として、イメージは左に再配置されることになる。上述のようにスライスの残りの書き込みを続けることができる。
またさらに、他の処置を同様に行うことができる。例えば、所望の再配置がイメージの一部においてフレームの制約を超えた移動を生じる場合には、所定の措置を開始することができる。例えば、エラーメッセージを発生させることができ、イメージを可能な限り境界を越えないで再配置させることができ、又は他の任意の適切な措置が考えられる。任意の数のこのような措置が可能であり企図される。
次に図15を参照すると、上述の説明に従って、イメージを再配置するように構成された装置1512(「クライアント」)の1つの実施形態が示されている。図15は、セットトップボックス1512の形態のクライアント1512を図示しているが、他の装置も同様に企図される。例えば、上記の説明に従って動作するように構成された他の装置には、ディジタルビデオレコーダ、個人用携帯型情報端末、パーソナルコンピュータ、ビデオゲームコンソール、モバイル/携帯電話、ギャンブル又は娯楽用装置、などをも含む。一般的に言えば、クライアント1512は、放送信号のような第1の信号1570を受信し、ディスプレイ又は記録装置などに第2の信号1580を送信するように構成される。図示の実施形態では、クライアント1512は外部大容量記憶装置1518に結合されている。クライアント1512は、制御ユニット1530、フロントエンド1526、戻りチャンネル1538、トランスポートステージ1528、AVステージ1534を含む。同様に、OS及び/又はミドルウエア1544、メッセージ処理エンジン1536、アプリケーション1542、バッファ1546Aを含むメモリ1590が示されている。同様に、I/Oインターフェース1540及び条件付きアクセス(CA)モジュール1532が示されている。I/Oインターフェース1540は、遠隔制御装置又は他の装置を介して、ユーザとの対話を検出するように構成されている。制御ユニット1530は、汎用マイクロプロセッサ、特定用途回路、メモリ(例えばRAM)、その他の構成要素を含むことができる。
1つの実施形態では、アプリケーション1542、OS/ミドルウエア1544、CAモジュール1532、メッセージ処理エンジン1536は、セットトップボックス1512のメモリデバイス内に記憶することができるコードを含む。さらに、CAモジュール1532は、セットトップボックス1512によってアクセス可能な特定のプログラム又はサービスへのアクセスを制御するよう構成されたソフトウエアを含む。メッセージ処理エンジン1536がメモリ1590に記憶されており、制御ユニット1530によって実行可能なプログラムコードとして示されているが、他の実施形態も実現可能であり企図される点は理解されるであろう。例えば、メッセージ処理エンジン1536は、回路又はハードウエアとソフトウエアの組み合わせを含む。例えば、メッセージ処理エンジン1536は、プログラム命令を実行する処理装置を含む。さらに、メッセージ処理エンジン1536は、受信ユニットに結合することができる外部装置として構成することができる。例えば、このような外部装置は、既存の装置に対してメッセージ処理機能を追加するように構成された、拡張モジュールを含む。
一般的に言えば、クライアント1512は、ディジタルデータを含む信号を受信して圧縮解除するように動作可能である。処理されるべき信号は、放送1570、インターネット1572、局所記憶媒体1518などを介して受信することができる。圧縮解除された信号は、テレビジョン表示用のPAL、SECAM、又はNTSCフォーマット信号などのアナログ信号に変換され、又はデジタル表示装置で使用するためのディジタルフォーマットとされる。図15に示されるように、クライアント1512は、受信信号1570からのオーディオ、ビデオ、その他のデータを受信するように動作可能なフロントエンド回路1526を含む。受信された放送信号1570は、アナログディジタル(A/D)変換器とチューナ/復調器を備えるフロントエンド1526でクライアント1512に供給される。フロントエンド1526は、特定の周波数を選択して通過させ、復調し、アナログ信号をディジタルフォーマットに変換することができる。上述のように、アナログデータをディジタルデータに変換することができるが、受信信号は、このような変換を必要としないディジタルデータをも含む。次に、デジタル化された出力はトランスポートステージ1528に送られ、そのステージでデータをさらに処理し、表示のためにデータの一部分をオーディオビジュアル(AV)ステージ1534に送り、別の部分を制御プロセッサ1530に送る。さらに、CAモジュール1532は、トランスポートステージ1528からデータを受け取ることができ、スクランブル解除された信号又は他の信号をAVステージ1534に条件付きで送ることができる。信号方式情報及び制御情報を、オーディオビデオデータと共に同様に放送に含めることができ、クライアント1512内のソフトウエアによって操作することができる。
クライアント1512によって受信されたオーディオビデオ信号及びプログラム制御信号は、実行可能なアプリケーションのほかに、ユーザインターフェースを介して視聴者によってアクセス可能なテレビジョンプログラム、メタデータ、メニュー選定を含む。赤外線遠隔制御ユニット、クライアント上の制御パネル、又はテレビジョンのスクリーン上に表示されたメニューから選択するために用いる装置を含む、種々の方法で視聴者はクライアント1512を管理することができる。視聴者が行う選択と入力は、クライアント上で実行される1つ又はそれ以上の幾つかのアプリケーションに対するものである。上述のように、放送信号1570は、フロントエンド1526を介して受信され、トランスポートステージ1528によってフィルタ処理される。ユニキャスト又はマルチキャスト信号は一般に、戻りチャンネル1538を介して受信する。クライアント1512上で実行するアプリケーション1528は、種々の方法で到達する。例えば、放送信号1570を介して、戻りチャンネルのリソースインターフェース1538を介して、又は記憶装置1518を介してアプリケーションを受信することができる。記憶装置1518を介して受信されたアプリケーションは、オリジナルはクライアント1512から出たものであり、又は別のソースから前もってダウンロードして、記憶装置1518に記憶しておくことができる。
1つの実施形態では、クライアント1512は、MPEGビデオ、オーディオ、データを復号化することができる衛星受信器、又は衛星統合デコーダ/受信器に使用するディジタルセットトップボックスとして構成することができる。例えば、クライアント1512は、直交振幅変調(QAM)、4相位相変調(QPSK)、符号化直交周波数分割多重(COFDM)、又は8−残留側波帯(VSB)を使用してブロードバンド通信をサポートするディジタルビデオチャンネルを受信し、双方向信号発信及びメッセージング用のチャンネルを制御するように構成することができる。ディジタルチャンネルは、圧縮され符号化されたマルチプログラムMPEG(動画のための標準規格化グループ)トランスポートストリームを搬送することができる。トランスポートステージ1528は、トランスポートストリームから所望のプログラムを抽出し、オーディオ、ビデオ、データ成分を分離して、1つ又はそれ以上のオーディオデコーダ、1つ又はそれ以上のビデオデコーダ、及び任意選択的にRAM(又は他の形式のメモリ)、又はハードディスクなどのストリームを処理する装置にルーティングされる。クライアント1512と記憶装置1518(並びに放送サービスプロバイダからの任意のデータ及び信号)は、アナログ、デジタル、又はアナログとディジタルデータの両方に適合するように構成されることは理解されるべきである。受信されたアナログデータを記憶するために、ディジタルフォーマットへの変換を行うことができる。
ビデオデータを、AVステージ1534及び/又はメモリ1590にルーティングすることができる。1つの実施形態では、制御ユニット1530は、再配置コードを実行するよう動作する汎用プロセッサである。このような再配置コードは、オペレーティングシステムの一部、ミドルウエア、及び/又はエンドユーザ形式のアプリケーションの全体部分とすることができる。このような実施形態では、トランスポートステージ1528は、逆多重化されたビデオデータをメモリ1590のバッファ(1546A−1546B)、又はAVステージ1534に送ることができる。次いで、制御ユニット1530は、上述のようにイメージを再配置するよう動作する。一般的に言えば、再配置プロセス自体は,符号化されたビデオデータの復号化前の追加の事前処理段階として見ることができる。上述のように、この事前処理は、1つのバッファからの元のデータの読み出し、データの修正、及び修正されたデータの別のバッファへの書き込みを含む。他の実施形態は、汎用プロセッサに依存せず、多くはイメージの再配置に特に向けられた回路1535を組み込むことができる。既に述べられたように、ハードウエア及び/又はソフトウエアの任意の好適な組み合わせが可能であり、それらの使用も意図されている。
記憶装置1518は、任意選択的にクライアント1512に結合され、ビデオ、オーディオ、実行可能なコード、メタデータ、その他のデータを記憶することができる。記憶装置1518はクライアント1512に内蔵させてもよく、又は恒久的接続又は着脱可能接続により外部的に接続させてもよい(例えば、IEEE1394−1995接続を介して)。さらに、記憶装置1518は、ハードディスクドライブ、DVDドライブ、磁気テープ、光磁気ディスク、フラッシュメモリ、又は半導体メモリなどの、任意の好適な形式の記憶装置を含むことができる。加えて、装置1518のような1つ以上の記憶装置をクライアント1512に取り付けることができる。クライアント1512及び/又は記憶装置1518を、さらにテレビジョンセットに組み込むことができる。記憶装置1518内に記憶されるプログラム命令などの実行可能なデータは、取り出して実行することができる。1つの実施形態では、取り出されたデータは、例えばゲームショー、広告、又はインターネットベースのオンラインゲームに対応する他のアプリケーション又は受信信号と同期して実行するか、又は他の方法で使用することができる。もしくは、取り出されたデータは、ビデオオンデマンド、銀行取引、メール、又は電子プログラムガイド(EPG)などのために別々に実行又は使用することができる。
本明細書で説明されたクライアント1512やシステム150は、例証に過ぎない点を理解すべきである。放送システム100とクライアント1512は、本発明の範囲から逸脱することなく、本明細書で説明されたものとは異なるものであってもよい。さらに、図15のクライアント1512に示された種々の構成要素は、記憶装置1518をクライアント1512内に一体的に配置するように、組み合わせることができる。種々の代替形態が実施可能であり、企図される。まださらに、図15に示された装置は、エンドユーザ形式の装置を意味するが、本明細書で説明された方法とメカニズムは、伝送ストリームに沿った多くの場所で実行することができる。例えば、テレビジョンのヘッドエンド、インターネットなどのネットワークの特定のノード、又は他の任意の適切な場所で再配置を実行することができる。
上記に加えて、種々の実施形態はさらに、搬送媒体に応じて上記の説明、従って実行される命令及び/又はデータの受信、送信、又は記憶を含むことができる。一般的に言えば、搬送媒体は、放送システムで使用され、或いはネットワーク及び/又は無線リンクのような通信媒体を介して送られる、電気、磁気、又はデジタル信号のような送信媒体又は信号を含むことができる。例えば、ネットワークオペレータは、放送システムを介してプログラム命令を記述する信号を送ることができる。もしくは、送られる信号は、プログラム命令を実行させるように構成された、1つ又はそれ以上の「トリガー」を含むことができる。また、搬送媒体は、ディスク、DVD、又はCD−ROMなどの磁気又は光学媒体、RAM(例えば、SDRAM、RDRAM、SRAMなど)、ROMなどの揮発性又は不揮発性媒体といった記憶媒体又はメモリ媒体を含むことができる。
上記の実施形態は単に例証として意図されていることは理解すべきである。多くの代替構成が可能であり企図される。本明細書に説明された方法とメカニズムは、テレビジョンシステムの関連で利用可能であるだけでなく、ウエブブラウザ、インタラクティブゲーム、携帯型コンピュータ装置、並びに他の関連でも使用することができる点を理解されたい。さらに、以下の検討はMPEG−2データストリームに関する方法を説明しているが、本方法とメカニズムはさらに他のデータストリームフォーマット又は規格に適用可能である。
テレビジョン放送システムの1つの実施形態を示す図。 ビデオストリームの1つの実施形態を示す図。 組み合わされたPフレームとIフレームを示す図。 Pフレームイメージの再配置を示す図。 ピクチャとフレームの1つの実施形態を示す図。 フレームとスライスの1つの実施形態を示す図。 イメージの再配置及びスライスの修正を示す図。 修正されたスライスの1つの実施形態を示す図。 修正されたスライスの1つの実施形態を示す図。 ビットスタッフィングの1つの実施形態を示す図。 イメージを再配置するための方法の1つの実施形態を示す図。 スタッフィングビットコードワードを示すテーブルの1つの実施形態を示す図。 修正後のPフレームの1つの実施形態を示す図。 イメージを再配置するための方法の1つの実施形態を示す図。 イメージを再配置するように構成された装置の1つの実施形態を示す図。

Claims (20)

  1. ビデオデータストリームのイメージを再配置する方法であって、
    表示されるイメージにおける第1の位置での第1のイメージの表示を含む符号化されたビデオデータを第1のバッファ内に記憶する段階と、
    前記第1のイメージを前記表示されたイメージにおける第2の位置に再配置することが、前記符号化された第1のイメージのビット位置の変化を生じるかどうかを確定する段階であって、そのビット位置が第1の数のビットに対して確定される段階と、
    前記第1のバッファから前記ビデオデータを読み出す段階と、
    前記第1のイメージを再配置するために前記ビデオデータを修正する段階と、
    前記再配置が前記ビット位置の変化を生じることの確定に応答して、前記符号化された第1のイメージデータを前記ビット位置に戻すように構成された1つ又はそれ以上のスタッフィングビットを生成することによって前記ビデオデータを修正する段階と、
    復号化時に前記スタッフィングビットが前記表示されたイメージに実質的に影響を与えないように前記スタッフィングビットを符号化する段階と、
    前記修正されたビデオデータを第2のバッファ内に記憶する段階と
    を含む方法。
  2. 前記ビデオデータストリームがMPEG−2データストリームであり、前記第1のバッファ内に記憶された前記ビデオデータがイントラ符号化されたPフレームを含み、前記第2のバッファ内の修正されたビデオデータが前記Pフレームの修正バージョンである請求項1に記載の方法。
  3. 前記Pフレームによって表された前記第1のイメージが前記表示されたイメージにおける背景イメージ上に重ね合わされ、前記背景イメージが別個の基準フレーム内で送られる請求項2に記載の方法。
  4. 前記スタッフィングビットが非イントラデータとして符号化され、前記方法がさらに、非イントラ量子化マトリックスが前記Pフレームによって表されないことの確定に応答して、前記マトリックスを生成する段階を含む請求項3に記載の方法。
  5. 前記再配置された第1のイメージデータを含まない前記修正されたPフレームのスライスに対して、及び前記第1のイメージデータを含む前記修正されたPフレームの各スライスに対して空のスライスを生成する段階をさらに含み、前記方法がさらに、
    前記第2の位置が、前記第1の位置と比較した前記第1のイメージの垂直位置の変化を表すことの確定に応答して、前記スライスを前記第2の位置に再配置するために、修正された垂直位置コードを使用して新しいスライスヘッダを生成する段階と、
    長さが前記スタッフィングビットの数に等しく、再配置の時にゼロである第1のDCT係数を使用して生成されたスタッフィングマクロブロックを生成する段階と、
    前記第1のイメージを前記第2の位置に水平方向で再配置するために第1のマクロブロックの新しいアドレス増分を生成する段階と、
    前記スタッフィングマクロブロックを前記第1のマクロブロックの前に挿入する段階と、
    前記第1のバッファから前記第2のバッファまで前記第1のマクロブロックに続くマクロブロックを追加する段階と、
    最後のマクロブロックを生成する段階と
    を含む請求項4に記載の方法。
  6. quntizer_scale_codeを使用して前記第1のマクロブロックが符号化されることの確定に応答して、前記スタッフィングビットの数に対して確定された前記アドレス増分のモジュラ長を7から減算したものに等しい、前記スタッフィングビット数を計算する段階と、
    quntizer_scale_codeを使用して、前記第1のマクロブロックが符号化されないことの確定に応答して、前記ビット数に対して確定された1マイナス前記アドレス増分のモジュラ長に等しい、前記スタッフィングビット数を計算する段階と、
    前記マクロブロックが、そのマクロブロックに対応するスライスヘッダの値と等しくなるように値が選定されたquntizer_scale_codeをまだ含んでいない場合に、quntizer_scale_codeを前記第1のマクロブロックに追加する段階と、
    前記第1のマクロブロックのmacroblock_typeを000001の2進値と等しく設定する段階と
    をさらに含む請求項5に記載の方法。
  7. 前記Pフレームのピクチャヘッダがq_scale_type=1を有することの確定に応答して、32よりも小さい値の全ての係数を使用して前記マトリックスを生成する段階と、
    前記ピクチャヘッダがq_scale_type=0を有することの確定に応答して、16よりも小さい値を使用して前記係数の全てを生成する段階と
    をさらに含む請求項5に記載の方法。
  8. 前記スタッフィングマクロブロックが、2進値00001に等しいmacroblock_typeと、2進値00001に等しいquantizer_scale_codeとを使用して生成される請求項5に記載の方法。
  9. ビデオデータストリーム内のイメージを再配置するように構成された装置であって、
    表示されたイメージにおける第1の位置での第1のイメージの表示を含む、符号化されたビデオデータを記憶するように構成された記憶装置と、
    再配置メカニズムと、
    を備え、前記再配置メカニズムが、
    前記第1のイメージを前記表示されたイメージにおける第2の位置に再配置することが、前記符号化された第1のイメージのビットのビット位置の変化を生じるかどうかを確定し、そのビット位置は第1の数に対して確定され、
    前記第1のバッファから前記ビデオデータを読み出し、
    前記第1のイメージを前記第2の位置に再配置するために前記ビデオデータを修正し、
    前記再配置が前記ビット位置の変化を生じることの確定に応答して、前記符号化された第1のイメージデータを前記ビット位置に戻すように構成された1つ又はそれ以上のスタッフィングビットを生成することによって前記ビデオデータを修正し、
    復号化時に前記スタッフィングビットが前記表示されたイメージに実質的に影響を与えないように前記スタッフィングビットを符号化し、
    前記修正されたビデオデータを第2のバッファ内に記憶する
    ように構成されることを特徴とする装置。
  10. 前記ビデオデータストリームがMPEG−2データストリームであり、前記第1のバッファ内に記憶された前記ビデオデータがイントラ符号化されたPフレームを含み、前記第2のバッファ内の修正されたビデオデータが前記Pフレームの修正バージョンである請求項9に記載の装置。
  11. Pフレームによって表された前記第1のイメージが前記表示されたイメージにおける背景イメージ上に重ね合わされ、前記背景イメージが別の基準フレーム内で転送される請求項10に記載の装置。
  12. 前記再配置メカニズムがさらに、
    前記スタッフィングビットを非イントラデータとして符号化し、
    非イントラ量子化マトリックスが前記Pフレームによって表されないことの確定に応答して前記マトリックスを生成する
    ように構成される請求項11に記載の装置。
  13. 前記再配置メカニズムが、前記再配置された第1のイメージデータを含まない前記修正されたPフレームのスライスに対して、及び前記第1のイメージデータを含む前記修正されたPフレームの各スライスに対して空のスライスを生成するようさらに構成され、前記メカニズムがさらに、
    前記第2の位置が、前記第1の位置と比較した前記第1のイメージの垂直位置の変化を表すことの確定に応答して、前記スライスを前記第2の位置に再配置するために、修正された垂直位置コードを使用して新しいスライスヘッダを生成し、
    長さが前記スタッフィングビットの数に等しく、再配置の時にゼロである第1のDCT係数を使用して生成されたスタッフィングマクロブロックを生成し、
    前記第1のイメージを前記第2の位置に水平方向で再配置するために第1のマクロブロックの新しいアドレス増分を生成し、
    前記スタッフィングマクロブロックを前記第1のマクロブロックの前に挿入し、
    前記第1のバッファから前記第2のバッファまで前記第1のマクロブロックに続くマクロブロックを追加し、
    最後のマクロブロックを生成する
    ように構成される請求項12に記載の装置。
  14. 前記再配置メカニズムが、
    quntizer_scale_codeを使用して前記第1のマクロブロックが符号化されることの確定に応答して、前記スタッフィングビットの数に対して確定された前記アドレス増分のモジュラ長を7から減算したものに等しい、前記スタッフィングビット数を計算し、
    quntizer_scale_codeを使用して、前記第1のマクロブロックが符号化されないことの確定に応答して、前記ビット数に対して確定された1マイナス前記アドレス増分のモジュラ長に等しい、前記スタッフィングビット数を計算し、
    前記マクロブロックが、該マクロブロックに対応するスライスヘッダの値と等しくなるように値が選定されたquntizer_scale_codeをまだ含んでいない場合に、quntizer_scale_codeを前記第1のマクロブロックに追加し、
    前記第1のマクロブロックのmacroblock_typeを000001の2進値と等しく設定する、
    ようにさらに構成される請求項13に記載の装置。
  15. 前記再配置メカニズムが、
    前記Pフレームのピクチャヘッダがq_scale_type=1を有することの確定に応答して、32よりも小さい値の全ての係数を使用して前記マトリックスを生成し、
    前記ピクチャヘッダがq_scale_type=0を有することの確定に応答して、16よりも小さい値を使用して前記係数の全てを生成する
    ようにさらに構成される請求項13に記載の装置。
  16. 前記メカニズムが、2進値00001に等しいmacroblock_typeと、2進値00001に等しいquantizer_scale_codeとを使用して前記スタッフィングマクロブロックを生成するように構成される請求項13に記載の装置。
  17. 前記ビデオデータストリームが、テレビジョン放送信号、インターネット、及び局所記憶媒体からなるグループの1つから前記装置によって取得される請求項13に記載の装置。
  18. プログラム命令を含む搬送媒体であって、
    前記プログラム命令が、
    表示されたイメージにおける第1の位置での第1のイメージの表示を含む符号化されたビデオデータを第1のバッファ内に記憶し、
    ビット位置が第1の数に対して確定されるものであり、前記第1のイメージを前記表示されたイメージにおける第2の位置に再配置することが、前記符号化された第1のイメージのビットの前記ビット位置の変化を生じるかどうかを確定し、
    前記第1のバッファから前記ビデオデータを読み出し、
    前記第1のイメージを前記第2の位置へ再配置するために前記ビデオデータを修正し、
    前記再配置が前記ビット位置の変化を生じることの確定に応答して、前記符号化された第1のイメージデータを前記ビット位置に戻すように構成された1つ又はそれ以上のスタッフィングビットを生成することによって前記ビデオデータを修正し、
    復号化時に前記スタッフィングビットが前記表示されたイメージに実質的に影響を与えないように前記スタッフィングビットを符号化し、
    前記修正されたビデオデータを第2のバッファ内に記憶する
    ように実行可能であることを特徴とする媒体。
  19. 前記ビデオデータストリームがMPEG−2データストリームを含み、前記表示されたイメージが背景上に重ね合わされた前記第1のイメージを含み、前記第1のイメージはイントラ符号化されたPフレームによって表され、前記背景イメージがIフレームによって表される請求項18に記載の搬送媒体。
  20. 前記プログラム命令がさらに、
    前記マトリックスが前記Pフレームによって表されないことの確定に応答して非イントラ量子化マトリックスを生成し、
    前記再配置された第1のイメージデータを含まない前記修正されたPフレームのスライスに対して、及び前記第1のイメージデータを含む前記修正されたPフレームの各スライスに対して空のスライスを生成し、
    前記第2の位置が、前記第1の位置と比較した前記第1のイメージの垂直位置の変化を表すことの確定に応答して、前記スライスを前記第2の位置に再配置するために、修正された垂直位置コードを使用して新しいスライスヘッダを生成し、
    長さが前記スタッフィングビットの数に等しく、再配置の時にゼロである第1のDCT係数を使用して生成された、非イントラデータとして符号化されたスタッフィングマクロブロックを生成し、
    前記第1のイメージを前記第2の位置に水平方向で再配置するために第1のマクロブロックのアドレス増分を修正し、
    前記スタッフィングマクロブロックを前記第1のマクロブロックの前に挿入し、
    前記第1のバッファから前記第2のバッファまで前記第1のマクロブロックに続くマクロブロックを追加し、
    最後のマクロブロックを生成する、
    ように実行可能である請求項19に記載の搬送媒体。
JP2004553724A 2002-11-14 2003-11-14 データストリーム内のイメージの配置 Expired - Lifetime JP4546249B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42611202P 2002-11-14 2002-11-14
PCT/US2003/036519 WO2004047062A2 (en) 2002-11-14 2003-11-14 Positioning of images in a data stream

Publications (2)

Publication Number Publication Date
JP2006506909A true JP2006506909A (ja) 2006-02-23
JP4546249B2 JP4546249B2 (ja) 2010-09-15

Family

ID=32326313

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004553724A Expired - Lifetime JP4546249B2 (ja) 2002-11-14 2003-11-14 データストリーム内のイメージの配置

Country Status (5)

Country Link
US (1) US7012963B2 (ja)
EP (1) EP1579694A4 (ja)
JP (1) JP4546249B2 (ja)
AU (1) AU2003297277B2 (ja)
WO (1) WO2004047062A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008035655A1 (en) * 2006-09-19 2008-03-27 Panasonic Corporation Recording device, recording method, recording program, and integrated circuit
JP2009534922A (ja) * 2006-04-20 2009-09-24 トムソン ライセンシング 冗長ビデオ符号化方法および装置
KR101396340B1 (ko) 2008-05-01 2014-05-19 삼성전자주식회사 디지털 촬영장치, 그 제어방법 및 이를 실행시키기 위한프로그램을 저장한 기록매체

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9865017B2 (en) 2003-12-23 2018-01-09 Opentv, Inc. System and method for providing interactive advertisement
US10032192B2 (en) * 2003-12-23 2018-07-24 Roku, Inc. Automatic localization of advertisements
US10387920B2 (en) 2003-12-23 2019-08-20 Roku, Inc. System and method for offering and billing advertisement opportunities
US8427494B2 (en) * 2004-01-30 2013-04-23 Nvidia Corporation Variable-length coding data transfer interface
EP2164256B1 (en) * 2004-04-02 2014-08-20 NDS Limited System for providing visable messages during PVR trick mode playback
KR101019482B1 (ko) * 2004-09-17 2011-03-07 엘지전자 주식회사 디지털 tv의 채널 전환 장치 및 방법
US20060256868A1 (en) * 2005-05-16 2006-11-16 Ensequence, Inc. Methods and systems for repositioning mpeg image content without recoding
EP1911278A2 (en) * 2005-08-04 2008-04-16 Nds Limited Advanced digital tv system
US9516326B1 (en) 2005-12-09 2016-12-06 Nvidia Corporation Method for rotating macro-blocks of a frame of a video stream
KR101366092B1 (ko) 2006-10-13 2014-02-21 삼성전자주식회사 다시점 영상의 부호화, 복호화 방법 및 장치
US8705374B1 (en) * 2006-10-31 2014-04-22 At&T Intellectual Property Ii, L.P. Method and apparatus for isolating label-switched path impairments
US8548261B2 (en) 2007-04-11 2013-10-01 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding multi-view image
US8725504B1 (en) 2007-06-06 2014-05-13 Nvidia Corporation Inverse quantization in audio decoding
US8726125B1 (en) 2007-06-06 2014-05-13 Nvidia Corporation Reducing interpolation error
US8477852B2 (en) * 2007-06-20 2013-07-02 Nvidia Corporation Uniform video decoding and display
US8849051B2 (en) * 2007-09-17 2014-09-30 Nvidia Corporation Decoding variable length codes in JPEG applications
US8502709B2 (en) * 2007-09-17 2013-08-06 Nvidia Corporation Decoding variable length codes in media applications
EP2061249B1 (en) * 2007-11-13 2018-12-26 Alcatel Lucent Method and arrangement for personalized video encoding
US8704834B2 (en) * 2007-12-03 2014-04-22 Nvidia Corporation Synchronization of video input data streams and video output data streams
US8687875B2 (en) * 2007-12-03 2014-04-01 Nvidia Corporation Comparator based acceleration for media quantization
US8934539B2 (en) * 2007-12-03 2015-01-13 Nvidia Corporation Vector processor acceleration for media quantization
US8769423B2 (en) 2008-04-30 2014-07-01 Beyondvia Technologies Content distribution systems and methods using digital images
US10304126B2 (en) 2008-04-30 2019-05-28 Beyondvia Technologies Visual communication systems and methods designing and building entire experiences
US9310980B2 (en) 2012-08-21 2016-04-12 Beyondvia Technologies Systems and methods for performance comparisons utilizing an infinite cylinder user interface
US9305026B2 (en) 2008-04-30 2016-04-05 Beyondvia Technologies Systems and methods for digital images utilizing an infinite cylinder user interface
US8671327B2 (en) 2008-09-28 2014-03-11 Sandisk Technologies Inc. Method and system for adaptive coding in flash memories
US8675417B2 (en) * 2008-09-28 2014-03-18 Ramot At Tel Aviv University Ltd. Method and system for adaptive coding in flash memories
US9307267B2 (en) * 2008-12-11 2016-04-05 Nvidia Corporation Techniques for scalable dynamic data encoding and decoding
JP5605608B2 (ja) * 2010-03-30 2014-10-15 ソニー株式会社 送信装置及び方法、並びにプログラム
US9014269B2 (en) * 2010-09-30 2015-04-21 General Instrument Corporation Method and apparatus for managing bit rate
US8989499B2 (en) * 2010-10-20 2015-03-24 Comcast Cable Communications, Llc Detection of transitions between text and non-text frames in a video stream
US9204189B1 (en) * 2011-07-14 2015-12-01 Google Inc. Using a conditional access module for TV viewership information
US20130272428A1 (en) * 2012-04-16 2013-10-17 Sharp Laboratories Of America, Inc. Video decoder for copy slices
US10346624B2 (en) 2013-10-10 2019-07-09 Elwha Llc Methods, systems, and devices for obscuring entities depicted in captured images
US9799036B2 (en) 2013-10-10 2017-10-24 Elwha Llc Devices, methods, and systems for managing representations of entities through use of privacy indicators
US20150106195A1 (en) * 2013-10-10 2015-04-16 Elwha Llc Methods, systems, and devices for handling inserted data into captured images
US10013564B2 (en) 2013-10-10 2018-07-03 Elwha Llc Methods, systems, and devices for handling image capture devices and captured images
US20150104004A1 (en) 2013-10-10 2015-04-16 Elwha Llc Methods, systems, and devices for delivering image data from captured images to devices
US10185841B2 (en) 2013-10-10 2019-01-22 Elwha Llc Devices, methods, and systems for managing representations of entities through use of privacy beacons
US10542258B2 (en) * 2016-01-25 2020-01-21 Google Llc Tile copying for video compression
KR102248185B1 (ko) * 2016-02-02 2021-05-04 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 비디오 스트리밍의 관심 장면 섹션 및 영역 처리
CN108667462A (zh) * 2017-04-02 2018-10-16 田雪松 位置编码的解码方法及装置
CN108874468B (zh) * 2018-06-20 2021-03-26 深圳市腾讯网络信息技术有限公司 应用程序的加载方法、装置、计算机设备及存储介质
CN117499664B (zh) * 2023-12-29 2024-03-19 南京博润类脑智能技术有限公司 一种基于比特替换的图像数据嵌入和提取方法、装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11243542A (ja) * 1997-11-11 1999-09-07 Matsushita Electric Ind Co Ltd マルチメディア情報編集装置
JP2000078543A (ja) * 1998-08-31 2000-03-14 Victor Co Of Japan Ltd 画像圧縮符号化ストリーム合成方法及び装置
JP2000341587A (ja) * 1999-05-25 2000-12-08 Sony Corp 画像処理装置及び方法
WO2001056293A1 (en) * 2000-01-28 2001-08-02 Open Tv, Inc. Interactive television system and method for simultaneous transmission and rendering of multiple mpeg-encoded video streams
JP2002135774A (ja) * 2000-10-24 2002-05-10 Matsushita Electric Ind Co Ltd 圧縮映像情報の伝送装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5649032A (en) * 1994-11-14 1997-07-15 David Sarnoff Research Center, Inc. System for automatically aligning images to form a mosaic image
US5691768A (en) * 1995-07-07 1997-11-25 Lucent Technologies, Inc. Multiple resolution, multi-stream video system using a single standard decoder
US5995146A (en) * 1997-01-24 1999-11-30 Pathway, Inc. Multiple video screen display system
US5867208A (en) * 1997-10-28 1999-02-02 Sun Microsystems, Inc. Encoding system and method for scrolling encoded MPEG stills in an interactive television application
US6078328A (en) * 1998-06-08 2000-06-20 Digital Video Express, Lp Compressed video graphics system and methodology
EP0987897A3 (en) * 1998-08-25 2005-07-13 Matsushita Electric Industrial Co., Ltd. Moving picture synthesizing device
US6522694B1 (en) * 1998-10-09 2003-02-18 Matsushita Electric Industrial Co., Ltd. Programmable filter for removing stuffing bits from an MPEG-2 bit-stream
US6366617B1 (en) * 1998-10-09 2002-04-02 Matsushita Electric Industrial Co., Ltd. Programmable filter for removing selected user data from an MPEG-2 bit stream
US6704359B1 (en) * 1999-04-15 2004-03-09 Diva Systems Corp. Efficient encoding algorithms for delivery of server-centric interactive program guide
US7206029B2 (en) * 2000-12-15 2007-04-17 Koninklijke Philips Electronics N.V. Picture-in-picture repositioning and/or resizing based on video content analysis

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11243542A (ja) * 1997-11-11 1999-09-07 Matsushita Electric Ind Co Ltd マルチメディア情報編集装置
JP2000078543A (ja) * 1998-08-31 2000-03-14 Victor Co Of Japan Ltd 画像圧縮符号化ストリーム合成方法及び装置
JP2000341587A (ja) * 1999-05-25 2000-12-08 Sony Corp 画像処理装置及び方法
WO2001056293A1 (en) * 2000-01-28 2001-08-02 Open Tv, Inc. Interactive television system and method for simultaneous transmission and rendering of multiple mpeg-encoded video streams
JP2002135774A (ja) * 2000-10-24 2002-05-10 Matsushita Electric Ind Co Ltd 圧縮映像情報の伝送装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009534922A (ja) * 2006-04-20 2009-09-24 トムソン ライセンシング 冗長ビデオ符号化方法および装置
US9300956B2 (en) 2006-04-20 2016-03-29 Thomson Licensing Method and apparatus for redundant video encoding
WO2008035655A1 (en) * 2006-09-19 2008-03-27 Panasonic Corporation Recording device, recording method, recording program, and integrated circuit
KR101396340B1 (ko) 2008-05-01 2014-05-19 삼성전자주식회사 디지털 촬영장치, 그 제어방법 및 이를 실행시키기 위한프로그램을 저장한 기록매체

Also Published As

Publication number Publication date
EP1579694A2 (en) 2005-09-28
AU2003297277B2 (en) 2007-07-19
WO2004047062A3 (en) 2005-02-24
US7012963B2 (en) 2006-03-14
US20040096002A1 (en) 2004-05-20
WO2004047062A2 (en) 2004-06-03
EP1579694A4 (en) 2009-10-28
AU2003297277A1 (en) 2004-06-15
JP4546249B2 (ja) 2010-09-15

Similar Documents

Publication Publication Date Title
JP4546249B2 (ja) データストリーム内のイメージの配置
US9113233B2 (en) System, apparatus, and method for preparing images for integration and combining images into an integrated image
US6980594B2 (en) Generation of MPEG slow motion playout
US9843760B2 (en) Video stream composed of combined video frames and methods and systems for its generation, transmission, reception and reproduction
US20060256865A1 (en) Flexible use of MPEG encoded images
US20040111526A1 (en) Compositing MPEG video streams for combined image display
KR101217430B1 (ko) 고속 채널 변경
JP2000078471A (ja) 可処分フレ―ムのみを使用したロゴ挿入
US20100135384A1 (en) Creation and handling of a bitstream comprising video frames and auxiliary data
US20090028237A1 (en) Broadcasting processing apparatus and control method thereof
US20060109380A1 (en) Television display unit
US7352810B2 (en) Coding process and device for the displaying of a zoomed MPEG2 coded image
US20060092325A1 (en) Television display unit
KR101075969B1 (ko) 비디오 시퀀스 내에서 에러 전달을 예방하기 위한 방법 및 장치
JP2820630B2 (ja) 画像復号装置
US9219930B1 (en) Method and system for timing media stream modifications
Premaratne et al. Copyright protection scheme for digital television content
JP2000197045A (ja) デジタル放送再生システム
KR20080054034A (ko) 방송 수신기 및 수신 제한 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090331

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090630

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100405

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100601

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100701

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4546249

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term