JP2004328771A - エンコーディング装置及び方法、デコーディング装置及び方法、並びに記録媒体 - Google Patents
エンコーディング装置及び方法、デコーディング装置及び方法、並びに記録媒体 Download PDFInfo
- Publication number
- JP2004328771A JP2004328771A JP2004148290A JP2004148290A JP2004328771A JP 2004328771 A JP2004328771 A JP 2004328771A JP 2004148290 A JP2004148290 A JP 2004148290A JP 2004148290 A JP2004148290 A JP 2004148290A JP 2004328771 A JP2004328771 A JP 2004328771A
- Authority
- JP
- Japan
- Prior art keywords
- video data
- data
- encoded stream
- encoding
- input video
- 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.)
- Pending
Links
Images
Landscapes
- Television Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【課題】
本発明は、入力ビデオデータを符号化するためエンコーディングシステム及び符号化ストリームをデコードするためのデコーディングシステムに関する。具体的には、MPEGエンコーディング処理及びMPEGデコーディング処理を繰り返したとしても、ビデオデータに付加されているアンシラリーデータやビデオデータ固有の情報が無くならないように、符号化ストリームと一緒に伝送するためのシステム及び方法を提供するものである。
【解決手段】
MPEGエンコーダは、その入力ビデオデータに付加されているアンシラリーデータを抽出し、抽出したアンシラリーデータを符号化ストリーム中にAn−cillary_data()として挿入することによって、符号化ストリームと一緒にこのアンシラリーデータを伝送する。MPEGデコーダは、符号化ストリームからアンシラリーデータを抽出し、MPEGデコーディング処理によって生成されたベースバンドビデオデータに抽出したアンシラリーデータを付加する。
【選択図】図6
本発明は、入力ビデオデータを符号化するためエンコーディングシステム及び符号化ストリームをデコードするためのデコーディングシステムに関する。具体的には、MPEGエンコーディング処理及びMPEGデコーディング処理を繰り返したとしても、ビデオデータに付加されているアンシラリーデータやビデオデータ固有の情報が無くならないように、符号化ストリームと一緒に伝送するためのシステム及び方法を提供するものである。
【解決手段】
MPEGエンコーダは、その入力ビデオデータに付加されているアンシラリーデータを抽出し、抽出したアンシラリーデータを符号化ストリーム中にAn−cillary_data()として挿入することによって、符号化ストリームと一緒にこのアンシラリーデータを伝送する。MPEGデコーダは、符号化ストリームからアンシラリーデータを抽出し、MPEGデコーディング処理によって生成されたベースバンドビデオデータに抽出したアンシラリーデータを付加する。
【選択図】図6
Description
本発明は入力ビデオデータを符号化するためエンコーディングシステム及び符号化ストリームをデコードするためのデコーディングシステムに関する。
近年、テレビジョンプログラムを制作及び放送する放送局においては、ビデオデータを圧縮/ 符号化するために、ISO/IEC 13818として規定されているMPEG(Moving Picture Experts Group)技術が一般的に使われるようになってきた。特に、ビデオカメラなどによって生成されたビデオデータを、テープやディスクなどのランダムアクセス可能な記録媒体素材に記録する場合や、放送局内において制作されたビデオプログラムを、ケーブルや衛星を介して伝送する場合には、このMPEGがデファクトスタンダードになりつつある。
このMPEG技術は、ピクチャ間の予測符号化方式を用いることによって、圧縮効率を向上させることができる符号化技術である。具体的には、MPEG規格においては、フレーム内予測やフレーム予測を組み合わせた複数の予測符号化を採用しており、その予測方式に従って、各ピクチャはIピクチャ(Intra Picture)、Pピクチャ(PredictivePicture)、またはBピクチャ(Bidirectionallypredictive Picture)のいずれかのピクチャタイプを使用してエンコード処理が行われる。Iピクチャは、他のピクチャからの予測が行われず、フレーム内符号化処理されたピクチャであり、Pピクチャは、時間的に前(過去)のIピクチャ又はPピクチャからフレーム間順方向予測符号化されたピクチャであり、Bピクチャは、時間的に前(過去)のIピクチャ又はPピクチャと、時間的に後(未来)のIピクチャ又はPピクチャとの両方向のピクチャから双方向予測符号化されたピクチャである。
図1は、放送局内及放送局間におけるビデオプロセッシングシステムの一例を示している。前述したように、放送局内や放送局間では、送信側システムとして設けられた第1のビデオプロセッサ1から、受信側システムとしてもうけられた第2のビデオプロセッサ4ヘ、ソースビデオデータを伝送するために、送信システムと受信システムとの間において、図1のようにMPEGエンコーダ及びMPEGデコーダを使用することが提案されている。
第1のビデオプロセッサ1は、D1フォーマットのコンポーネント形式のベースバンドビデオ等のソースビデオデータを受け取り、そのソースビデオデータに対して、編集処理、特殊効果処理、合成処理などを行うための装置である。さらには、このビデオプロセッサ1は、クローズドキャプションやテレテキストデータ等の補助データ(アンシラリーデータ)を受け取り、そのアンシラリーデータをソースビデオデータのブランキング期間に付加する処理も行う。従って、ビデオプロセッサ1から出力されるビデオデータのブランキング期間には、アンシラリーデータが埋め込まれて(エンベデッド)されている。
MPEGエンコーダ2は、ビデオプロセッサ1からビデオデータを受け取り、そのビデオデータをエンコードすることによって符号化ストリームを生成する。この符号化ストリームは、エレメンタリーストリームとも称される。誰もが知っているように、テレビジョン信号というのは、アクティブビデオエリアと呼ばれる実際のビデオデータエリアの上下及び左右に垂直ブランキング期間及び水平ブランキング期間が設けられており、上述したアンシラリーデータは、このブランキング区間に挿入されている。
しかしながら、MPEG規格では、入力ビデオデータの中において、実際に画素が存在するアクティブビデオエリアのみを符号化しなければいけないと規定されている。つまり、符号化ストリームは、入力ビデオデータのアクティブエリアのみを符号化処理したデータであって、その符号化ストリームにはブランキング期間に重畳されていたアンシラリーデーは含まれていないのである。言いかえると、MPEGエンコーダ2によって入力ビデオデータの符号化処理を行うことによって、入力ビデオデータに重畳されていたアンシラリーデータが無くなってしまうということである。
MPEGデコーダ3は、MPEGエンコーダから符号化ストリームを受け取り、この符号化ストリームをデコードして復号化ビデオデータを生成する。復号化ビデオデータは、第2のビデオプロセッサ4に供給される。このMPEGデコーダ3に供給された符号化ストリーム中には、アンシラリーデータに関する情報が含まれていないので、当然ながら、この復号化ビデオデータにもアンシラリーデータに関する情報が含まれていない。
つまり、送出側システムから受信側システムにビデオデータを伝送する途中において、MPEGエンコード処理及びMPEGデコード処理を行った場合には、送出側である第1のビデオプロセッサ1から受信側である第2のビデオプロセッサ4には、アクティブエリアに相当するビデオデータは伝送することはできるが、第1のビデオプロセッサにおいてビデオデータのブランキング期間に付加したアンシラリーデータは伝送されなという問題が発生する。
さらに言うと、送出側システムから受信側システムにビデオデータを伝送する途中において、MPEGエンコード処理及びMPEGデコード処理を行った場合には、アクティブエリアのビデオデータしか伝送されないということは、ソースビデオデータが有している固有の情報も受信側システムに伝送されないという問題もある。このソースビデオデータに係る固有の情報とは、ソースビデオデータそのものが持っている情報であって、例えば、全画素エリアに対するブランキングエリアの位置又はアクティブビデオエリアの位置などである。具体的には、ソースビデオデータの全画素エリアの垂直方向において何ライン目からアクティブビデオのラインが始まり、全画素エリアの水平方向において何ピクセル目からアクティブビデオエリアが始まるのかを示す情報である。
次に、図2を参照して、3−2プルダウン処理が行われたビデオデータに関する処理ついて説明する。図2は、24Hzのフレーム周波数を有するビデオデータと30Hzのフレーム周波数を有するビデオデータの両方のビデオデータに関する処理を行う場合の、放送局内及び又は放送局間におけるビデオプロセッシングシステムの一例を示している。
3−2プルダウン処理回路5は、24Hz(毎秒24コマ)のフレームレートのビデオデータを受け取って、30Hz(毎秒30コマ)のフレームレートのビデオデータを生成するための回路である。映画等において使用されているフィルム素材は、劇場用として、24Hz(毎秒24コマ)のフレームレートで光学フィルム上に記録された素材であって、29.97Hzのフレームレートを有するNTSC方式のテレビジョン信号とはフレームレートが全く異なっている。従って、フィルム素材をテレビジョン信号に変換するために、24コマから30フレームを生成する処理が行われている。
図3A及び図3Bを参照して、この3−2プルダウン処理について説明する。図3Aは、24Hzのフレームレートのソースビデオデータを表し、図3Bは、3−2プルダウン処理によって30Hzのフレームレートに変換されたビデオデータを表している。図3A及び図3Bに示すように、3−2プルダウン処理においては、フィールドF1のトップフィールドt1をリピートすることによってリピートフィールドt1´を作成し、フレームF3のボトムフィールドb3をリピートすることによってリピートフィールドb3´を生成する。つまり、3−2プルダウン処理は、2個のフィールドを、所定のシーケンスで3個のフィールドに変換することによって、24Hzのビデオデータを30Hzのビデオデータに変換する処理なのである。
第1のビデオプロセッサ1は、図1において説明したように、30Hzのソースビデオデータを受け取り、そのソースビデオデータに対して、編集処理、特殊効果処理、合成処理などを行うための装置である。さらには、このビデオプロセッサ1は、クローズドキャプションやテレテキストデータ等の補助データ(アンシラリーデータ)を受け取り、そのアンシラリーデータをソースビデオデータのブランキング期間に付加する処理も行う。アンシラリーデータを付加する処理は、30Hzのフレーム周波数を有するビデオデータに対して行われる処理であるので、30Hzのフレーム周波数を有するビデオデータに含まれる全フィールド対して、アンシラリーデータが付加される。つまり、トップフィールドt1、t2、……及びボトムフィールドb1、b2、……だけに、アンシラリーデータが付加されるのではなくて、リピートフィールドt1´及びリピートフィールドb3´にもアンシラリーデータが付加されるのである。
逆3−2プルダウン処理回路6は、上述した3−2プルダウン処理により得られた30Hzのフレームレートのビデオデータを受け取って、24Hzのフレームレートのビデオデータを生成するための回路である。具体的には、逆3−2プルダウン処理回路7は、図3Cに示すように、逆3−2プルダウン処理によって挿入されたリピートフィールドt1´及びb3´を除去するための回路である。この、逆3−2プルダウン処理回路7は、MPEGエンコード処理を行う前に行われなければいけない処理である。なぜなら、このリピートフィールドは、3−2プルダウン処理によって挿入された冗長なフィールドであって、削除したとしても何ら画質劣化が発生しないからである。
MPEGエンコーダ2は、図1において説明したMPEGエンコーダ2と同じであって、逆プルダウン処理回路6から24Hzのビデオデータを受け取り、そのビデオデータをエンコードすることによって符号化ストリームを生成する。
しかしながら、MPEG規格では、入力ビデオデータの中において、実際に画素が存在するアクティブビデオエリアのみを符号化しなければいけないと規定されている。つまり、符号化ストリームは、入力ビデオデータのアクティブエリアのみを符号化処理したデータであって、その符号化ストリームにはブランキング期間に重畳されていたアンシラリーデーは含まれていないのである。言いかえると、MPEGエンコーダ2によって入力ビデオデータの符号化処理を行うことによって、入力ビデオデータに重畳されていたアンシラリーデータが無くなってしまうということである。
MPEGデコーダ3は、図1において説明したMPEGデコーダ3と同じであって、MPEGエンコーダから符号化ストリームを受け取り、この符号化ストリームをデコードして復号化ビデオデータを生成する。尚、MPEG規格においては、符号化ストリーム中には、フレーム構造を表すデータとして、Repeat_first_field及びTop_field_firstというフラグが設定さてれおり、MPEGデコーダはこのフラグに基づいてデコード処理を行うので、復号化ビデオデータは30Hzのフレームレートを有したビデオデータである。
以上の説明から理解できるように、送信側システムのプロセッサにおいて、30Hzのフレームレートを有するビデオデータにアンシラリーデータを付加したとしても、MPEGエンコード処理のために必要な処理である逆3−2プルダウン処理を行うと、30Hzのフレームレートを有するビデオデータからリピートフィールドが除去されてしまう。つまり、そのリピートフィールドに付加したアンシラリーデータまでも除去されてしまうということである。従って、送出側システムから受信側システムにビデオデータを伝送する途中において、逆3−2プルダウン処理を行った場合には、その逆3−2プルダウン処理によってリピートフィールドそのものが除去されてしまうので、送出側である第1のビデオプロセッサ1から受信側である第2のビデオプロセッサ4には、そのリピートフィールドに付加したアンシラリーデータに関する情報が伝送されないという問題が発生する。
本発明は、入力ビデオデータを符号化するためのエンコーディングシステム及び符号化ストリームをデコードするためのデコーディングシステムに関する。具体的には、MPEGエンコーディング処理及びMPEGデコーディング処理を繰り返したとしても、ビデオデータに付加されているアンシラリーデータやビデオデータ固有の情報が無くならないように、符号化ストリームと一緒に伝送するためのシステム及び方法を提供するものである。
MPEGエンコーダは、その入力ビデオデータに付加されているのアンシラリーデータを抽出し、抽出したアンシラリーデータを符号化ストリーム中に An−cillary_data( )として挿入することによって、符号化ストリームと一緒にこのアンシラリーデータを伝送する。 MPEGデコーダは、符号化ストリームからアンシラリーデータを抽出し、MPEGデコーディング処理によって生成されたベースバンドビデオデータに抽出したアンシラリーデータを付加する。
入力ビデオデータをエンコードするためのエンコーディング装置において、入力ビデオデータから、ビデオデータのブランキング期間に付加されているアンシラリーデータを抽出し、入力ビデオデータをエンコードし、符号化ストリームを生成し、符号化ストリーム中に上記アンシラリーデータが挿入されるように、上記符号化手段をコントロールする。
入力ビデオデータをエンコードすることによって生成された符号化ストリームをデコードするためのデコーディング装置において、符号化ストリームから、符号化ストリーム中に含まれていアンシラリーデータを抽出し、符号化ストリームをデコードし、復号化ビデオデータを生成し、復号化ビデオデータのブランキング期間に、アンシラリーデータを多重化する。
入力ビデオデータを符号化することによって生成された符号化ストリームをデコードするためのデコーディング装置において、符号化ストリームのシンタックスを解析することによって、符号化ストリーム中に含まれていアンシラリーデータを得、符号化ストリームをデコードし、復号化ビデオデータを生成し、入力ビデオデータと符号化ビデオデータとが同じアンシラリーデータを有するように、復号化ビデオデータにアンシラリーデータを多重化する。
入力ビデオデータを符号化することによって生成された符号化ストリームをデコードするためのデコーディング装置において、符号化ストリームのピクチャエリアに含まれていアンシラリーデータを、符号化ストリームから得、符号化ストリームをデコードし、復号化ビデオデータを生成し、復号化ビデオデータとアンシラリーデータとを多重化することによって、入力ビデオデータを同じデータを生成する。
入力ビデオデータを符号化するエンコーディング手段と、符号化手段によって符号化された符号化ストリームを受け取って、符号化ストリームを復号化し復号化ビデオデータを生成するデコーディング手段とを備えたコーディングシステムにおいて、エンコーディング手段は、符号化ストリームを生成するために上記入力ビデオデータを符号化する手段と、入力ビデオデータに付与されているアンシラリーデータを符号化ストリーム中に挿入する手段とを備え、デコーディング手段は、復号化ビデオデータを生成するために符号化ストリームを復号化する手段と、符号化ストリームと共に伝送されてきたアンシラリーデータを、復号化ビデオデータに多重化する手段とを備える。
図4は、メイン放送局141及び地方放送局171からなる放送システムを表している図である。
メイン放送局141には、複数のエディティング/プロセッシングスタジオ145A〜145D、複数のMPEGエンコーダ142A〜142D と、複数のMPEGデコーダ144A〜144Dと、少なくとも1つのマルチプレクサ162Aと少なくとも1つのデマルチプセクサ161Aとを備えている。また、この放送局内141には、SMPTE305Mとして定義されているSDTI−CP(Serial Data TransferInterface−Content Package)ネットワーク150を備え、各MPEGエンコーダ、各MPEGデコーダ、マルチプレクサ162A及びデマルチプレクサ161Aが、SDTI−CPネットワーク150を介してエレメンタリーストリームを送受信するすることができる。SDTI−CPは、MPEGのエレメンタリーストリームを伝送するために提案された通信フォーマットであって、SMPTE305Mとして定義されている。尚、このSDTI−CPネットワーク150上に転送されたエレメンタリーストリームは、ES_over_SDTI−CPと表現されている。
エディティング/プロセッシングスタジオ145A〜145Dは、ビデオサーバー、ビデオ編集機、特殊効果装置及びビデオスイッチャなどを備えているスタジオである。MPEGデコーダから復号化されたべーバンドのビデオデータを受け取り、そのベースバンドのビデオデータに対して、編集や画像処理を行ったあと、編集ビデオデータ又は画像処理ビデオデータを、MPEGエンコーダに出力する。すなわち、エディティング/プロセッシングスタジオ145A〜145Dは、符号化ストリームのストリームプロセッシングではなく、ベースバンドビデオ信号の編集や画像処理を行うためのプロセッシングユニットでる。
MPEGエンコーダ142A〜142Dは、エディティング/プロセッシングスタジオ145A〜145Dからベースバンドの入力ビデオ信号を受け取り、その入力ビデオデータを、前述したMPEG規格に従ってエンコードし、エレメンタリーストリーム(ES)を生成するための装置である。MPEGエンコーダによって生成されたエレメンタリーストリームは、SDTI−CPネットワーク150を介して、MPEGデコーダ144A〜144DのうちのいずれかのMPEGデコーダ又はマルチプレクサ162Aに供給される。
MPEGデコーダ144A〜144Dは、MPEGエンコーダ142A〜142D又はデマルチプレクサ161Aから、SDTI−CPネットワーク150を介して供給されたエレメンタリーストリームを受け取り、MPEG規格に基づいてデコード処理を行う。マルチプレクサ162Aは、メイン放送局内141において制作された複数のビデオプログラムを地方局171又は各家庭に配信するために、多重化することによって一つのトランスポートストリームを生成するための回路である。具体的には、SDTI−CPネットワーク150を介して複数のビデオプログラムに対応する複数のエレメンタリーストリーム受けとり、各エレメンタリーストリームをパケット化することによってパケッタイズドエレメンタリーストリームを生成し、そのパケッタイズドエレメンタリーストリームからトランスポートストリームパケットを生成する。複数のビデオプログラムから生成されたトランスポートストリームパケットを多重化することによって、マルチプレクサ162Aは多重化されたトランスポートストリームを生成する。尚、このマルチプレクサ162Aの構成及び処理については、後述する。
複数のビデオプログラムの伝送先が地方局171の場合には、マルチプレクサ162Aによって生成された多重化トランスポートストリームは、地方局171のデマルチプレクサ161BにATMや衛星回線などのネットワークを介して供給される。地方局171は、規模こそメイン局141と異なるが、全く同じシステム構成を有しているので、詳細については説明を省略する。
複数のビデオプログラムの伝送先が地方局171の場合には、マルチプレクサ162Aによって生成された多重化トランスポートストリームは、各家庭のセットトップボックス内に設けられているMPEGデコーダ170Aに、ATMや衛星回線などのネットワークを介して供給され、デコードされたビデオデータがTVセットに供給される。
図5は、放送局内においてSDTI−CPネットワークを介して伝送されるエレメンタリーストリームと、公衆ネットワークを介しで伝送されるトランスポートストリームとの違いを表している。
放送局内においては、エレメンタリーストリームは、SDTI−CPネットワークを使用して伝送される。このSDTI−CPネットワーク150は、SMPTE259Mによって規格化されているSDI(Serial Data Interface)をベースとした270Mbpsの伝送速度を可能にしている通信フォーマットであって、MPEG方式のエレメンタリストリーム(ES)をそのまま伝送することが可能であり、スタジオ内のような閉じたネットワークに適している。具体的には、図5Aに示すように、ビデオデータのフレーム単位で、ビデオデータ「V」とオーディオデータ「A」がパッキングされており、フレームシンク(点線)により区切られたフレーム境界で、簡単に編集を行うことができる。
放送局間の伝送や公衆ネットワークを使用する際には、トランスポートストリームの形態でビデオデータが伝送される。トランスポートストリームは、伝送容量の少ない公衆ネットワークにおいてもデータ転送を可能にするために、図5Bに示すように、ビデオデータやオーディオなどのすべてのコンテンツは、188バイトの単位にパッキングされて伝送される。同様に、「V」はビデオデータのトランスポートストリームパケットと示し、「A」はオーディオデータのトランスポートストリームパケットを示し、空白は空きデータのパケットを示している。
次に、図6を参照して、MPEGエンコーダ142A〜142Dについて説明する。
まず最初に、このMPEGエンコーダに供給される入力ビデオデータについて補足する。この実施例においては、この入力ビデオデータは、24Hzのフレームレートを有していたソースビデオデータに対して、3−2プルダウン処理を行うことによって生成された30Hzのビデオデータである。具体的には、24Hzのフレームレートを有したオリジナルのソースビデオデータは、各フレームF1、F2、……がそれぞれ2つのフィールド(トップフィールドt1、t2、……及びボトムフィールドb1、b2、……)から構成されいるビデオデータであって、3−2プルダウン処理では、図7A に示すように、トップフィールドファーストである第1のフレームF1ではトップフィールドt1を繰り返してリピートフィールドt1´を生成することにより3フィールドで1つのフレームを構成し、また、ボトムフィールドファーストである第3のフレームF3ではボトムフィールドb3を繰り返してリピートフィールドb3´を生成する。このようにして、3−2プルダウン処理では、3フィールド構成のフレームと2フィールド構成のフレームを交互に繰り返すことにより、フレームレートが24Hzのソースビデオデータから、図7Aのようなフレームレートが30Hzのビデオデータを生成することができる。
尚、この実施例では、入力ビデオデータが、3−2プルダウン処理によって生成された入力ビデオデータの例を示しているが、本発明は、入力ビデオデータが3−2プルダウンされたビデオデータの実施例に限られるものではなく、オリジナルソースビデオが30Hzのフレームレートを有するビデオデータであって、3−2プルダウン処理が施されていないビデオデータの場合であっても問題無く適用できるものである。
図6に示されたMPEGエンコーダは、補助データ分離回路101、フィールドカウンタ102、逆3−2プルダウン回路103、エンコーディングコントローラー104、動きベクトル検出回路105、スイッチ回路111、DCT回路112、量子化回路113、逆量子化回路114、逆DCT回路115、加算回路116、メモリ117及び118、動き補償回路119、演算回路120、121、122、可変長符号化回路125及び送信バッファ126を備えている。
補助データ分離回路101は、入力ビデオデータのブランキング期間から、アンシラリーデータを抽出する回路である。具体的には、図8に示したように、入力ビデオデータの垂直ブランキング期間に挿入されているアンシラリーデータと、そのアンシラリーデータが挿入されているライン番号を抽出する。このアンシラリーデータとしては、テレテキストデータ、クローズドキャプションデータ、SMPTE RP164において定義されているVITC(Vertical Interval Time Code)やRP196において定義されているLTC(Linear Time Code)等であるが、これのみに限定する必要はない。本実施例においては、抽出したアンシラリーデータに関する情報は、Ancillary_dataとしてコントローラ104に供給されるとともに、ライン番号に関する情報は、Line_numberとしてコントローラ104に供給される。また、VITCに関する情報は、Time_code_1としてコントローラ104に供給され、LTCに関する情報は、Time_code_2としてコントローラ104に供給される。
また、補助データ分離回路101は、入力ビデオデータが有する固有情報を入力ビデオデータから抽出する。この固有情報とは、例えば、図8に示したように、入力ビデオデータの全画素エリアAR1に対するアクティブビデオエリアAR2が存在する位置を示すデータであり、具体的には、アクティブビデオエリアの垂直方向の開始位置を示すライン数及び水平方向の開始位置を示すサンプル数などである。本実施例においては、アクティブビデオエリアの垂直方向の位置に関する情報は、V−phase アクティブビデオエリアの水平方向の位置に関する情報は、H−phase としてコントローラ104に供給される。その他の固有情報の例としては、入力ビデオデータに付与されたソース名称、撮影場所、撮影時間などである。
補助データ分離部101から出力された入力ビデオデータは、続くフィールドカウンタ102に供給される。フィールドカウンタ102は、入力ビデオデータの各フレームを構成するフィールドを各フレームごとにカウントする回路である。フィールドカウンタ102は、そのフレ−ム毎のカウント情報を、Field_IDとしてコントローラ104に供給する。たとえは、図7Aに示したような入力ビデオデータがこのフィールドカウンタ102に供給された場合には、フレームF1には3つのフィールドが存在するので、カウント情報として、「0」、「1」及び「2」のField_IDが出力され、フレームF2には2つのフィールドが存在するので、カウント情報として、「0」及び「1」のField_IDが出力される。
さらに、このフィールドカウンタ102は、入力ビデオデータのフィールドをカウントすることによってカウントアップされる2つのカウンタを備え、このカウンタによるカウント値に関する情報をPTS_counter及びDTS_counterとしてコントローラ104に出力する。PESヘッダを生成するときに、PTS_counter はプレゼンテーションタイムスタンプ(PTS)を生成するための情報として使用され、DTS_counterはデコーディングタイムスタンプ(DTS)を生成するための情報として使用される。
このPTS_counter及びDTS_counterについて、図9を参照して詳細に説明する。図9は、入力ビデオデータの各フレームのフレーム構造と、各フレームにおけるPTS_counter及びDTS_counterの関係を示している図である。図9について詳細に説明する前に、Repeat_first_field及びTop_field_firstフラグについて補足しておく。Repeat_first_fieldのフラグの”1”は、MPEGデコード時に、リピートフィールドを作成する必要があることを意味し、Repeat_first_fieldのフラグの”0”は、MPEGデコード時に、リピートフィールドを作成する必要がないことを意味する。Top_field_firstのフラグは、フレームを構成するフィールドのうち、最初のフィールドがトップフィールドであるのか、またはボトムフィールドであるのかを表している。Top_field_firstフラグの”1”は、トップフィールドがボトムフィールドより時間的に早いフレーム構造であることを表しており、Top_field_firstフラグの”0”は、ボトムフィールドがトップフィールドより時間的に早いフレーム構造であることを表している。図9Aは、図7Aにおいて説明した入力ビデオデータに関するフレーム構造について説明するための図である。具体的には、最初のフレームF1をデコードする際に、単純にトップフィールドとボトムフィールドからなるフレームを生成するのではなく、トップフィールドをコピーしてリピートフィールドを作成することで、3フィールドからなるフレームを生成する必要がある。従って、対応するRepeat_first_fieldのフラグは”1”となり、Top_field_firstのフラグは”1”となる。
フレームF2のデコード処理においては、リピートフィールドを生成する必要がないので、Repeat_first_fieldのフラグは”0”とされ、ボトムフィールドがトップフィールドより時間的に早いフレームであるため、Top_field_firstのフラグは”0”とされる。
フレームF3のデコード処理においては、そのボトムフィールドをコピーしてリピートフィールドが作成され、符号化フレームが3フィールドに変換されなければいけない。従って、Repeat_first_fieldのフラグは”1”とされ、Top_field_firstのフラグは”0”とされる。フレームF4のデコード処理において、リピートフィールドが作成する必要はないので、Repeat_first_fieldのフラグは”0”とされ、Top_field_firstのフラグは1とされる。さて、上述したように、PTS_counterはPTSの基になるタイムスタンプ情報であるので、入力ビデオデータのフレーム順と一致している情報でなければいけない。具体的には、このPTS_counterは、0から127まで増加した後、再び0に戻るカウント動作を行うカウンターによって生成される値である。従って、カウンタPTS_counterの値は、図9Bに示すように変化する。具体的に説明すると、入力ビデオデータにおいて、最初のフレームF1はIピクチャであり、最初に表示しなければいけないピクチャであるので、PTS_counterの値は”0”である。2番目のフレームF2のPTS_counterの値は、フレームF1のPTS_counterの値”0”に、フレームF1に含まれているフィールド数“3”を加算した値”3”(=0+3)となる。3番目のフレームF3のPTS_counterの値は、フレームF2のPTS_counterの値”3”に、フレームF2に含まれているフィールド数“2”を加算した値”5”(=3+2)となる。4番目のフレームF4のPTS_counterの値は、フレームF3のPTS_counterの値”5”に、フレームF2に含まれているフィールド数“3”を加算した値”8”(=5+3)となる。フレームF5以降のPTS_counterの値も同様に算出される。さらに、DTS_counterは、DTSの基になるタイムスタンプ情報であるので、入力ビデオデータのフレーム順では無くて、符号化ストリーム中のピクチャ順と一致する情報でなければいけない。
図9Cを参照して、具体的に説明すると、最初のフレームF1は、Iピクチャであるので、フレームF1が表示される表示タイミングよりフレームF1がデコードされるタイミングが1フレーム分だけ早くなくてはいけない。すなわち、フレームF1の前のフレームF0は2つのフィールドから構成されているため、 DTS_counterの値は、表示タイムスタンプPTS_counter=0を基準時間としたとき、基準時間“0”より“3”フィールド分だけ前の値”125”となる。尚、DTS_counterは27(=128)のモジュロで表されるため、その値は0から127の間の値を循環する。
フレームF1の次に符号化されるフレームF4のDTS_counterの値は、フレームF1のDTS_counterの値“125”に、フレームF1のフィールド数“3”を加えた値“0”(=128=125+3)となる。次に符号化されるフレームF2はBピクチャであるため、DTS_counterの値は、PTS_counterと同じ値になり、その値は”3”となる。同様に、次に符号化されるフレームF3もBピクチャであるので、DTS_counterの値は、PTS_counterの値と同一とされ、その値は”5”とされる。以下、フレームF7以降のDTS_counterの値も、同様に算出されるので、ここでは、その説明を省略する。フィールドカウンター102は、上述した決まりに従って、PTS_counter及びDTS_counterを生成し、コントローラ104に供給する。
逆3−2プルダウン回路103は、フィールドカウンタ102から出力されたビデオデータを受け取り、逆3−2プルダウン処理を行う。この逆3−2プルダウン処理回路103は、図7Aに示すような3−2プルダウン処理により得られた30Hzのフレームレートのビデオデータを受け取って、24Hzのフレームレートのビデオデータを生成するための回路である。具体的には、逆3−2プルダウン処理回路7は、図7Bに示すように、3−2プルダウン処理によって挿入されたリピートフィールドt1´及びb3´を除去することによって、30Hzのフレームレートのビデオデータを、24Hzのフレームレートのビデオデータに変換する。逆プルダウン処理回路103は、リピートフィールドを除去する際に、供給されたビデオデータのフレーム構造を解析し、所定間隔で出現するリピートフィールドであると認定したフィールドのみを除去するようにしている。よって、逆プルダウン処理回路103は、ビデオデータのフレーム構造を解析したときに、フレーム構造を表す情報として、Repeat_first_fieldとTop_field_firstのフラグを生成し、コントローラ104に供給する。
動きベクトル検出回路105は、逆3−2プルダウン処理回路103から出力されたビデオデータを、マクロブロック単位で受け取り、予め設定されている所定のシーケンスに従って、各フレームの画像データを、Iピクチャ、Pピクチャ、又はBピクチャとして処理する。シーケンシャルに入力される各フレームの画像を、I、P又はBのいずれのピクチャとして処理するかは、オペレータによって指定されるGOP構造に基づいて予め定められている。検出された動きベクトルMVは、コントローラ104及び動き補償回路119に供給される。スイッチ回路111は、画像内予測モードが設定されたとき、スイッチを接点aに切り換える。従って、このマクロブロックデータは、Iピクチャのデータと同様に、DCT回路112、量子化回路113、可変長符号化回路125及び送信バッファ126を介して伝送路に伝送される。また、この量子化データは、逆量子化回路114、逆DCT回路115、及び演算器116を介しての後方予測画像用のフレームメモリ117に供給される。また、前方予測モードが設定された場合、スイッチ111が接点bに切り換えられると共に、前方予測画像用のフレームメモリ118に記憶されている画像データ(この場合Iピクチャの画像データ)が読み出され、動き補償回路119により、動きベクトル検出回路105から供給されている動きベクトルMVに基づいて動き補償が行われる。すなわち、動き補償回路119は、前方予測モードの設定が指令されたとき、前方予測画像用のメモリ118の読出しアドレスを、動きベクトル検出回路105が、現在出力しているマクロブロックの位置に対応する位置から動きベクトルに対応する分だけずらしてデータを読み出し、予測画像データを生成する。動き補償回路119より出力された予測画像データは、演算器120に供給される。演算器120は、参照画像のマクロブロックのデータから、動き補償回路119より供給された、このマクロブロックに対応する予測画像データを減算し、その差分(予測誤差)を出力する。この差分データは、DCT回路112、量子化回路113、可変長符号化回路125及び送信バッファ126を介して伝送路に伝送される。また、この差分データは、逆量子化回路114、及びIDCT回路115により局所的に復号され、演算器116に入力される。この演算器116にはまた、演算器120に供給されている予測画像データと同一のデータが供給されている。演算器116は、IDCT回路115が出力する差分データに、動き補償回路119が出力する予測画像データを加算する。これにより、元の(復号した)Pピクチャの画像データが得られる。このPピクチャの画像データは、フレームメモリの後方予測画像部117に供給されて記憶される。動きベクトル検出回路105は、このように、IピクチャとPピクチャのデータが前方予測画像部118と後方予測画像部117にそれぞれ記憶された後、次にBピクチャの処理を実行する。画像内予測モード又は前方予測モードの時、スイッチ111は接点a又はbに切り換えられる。このとき、Pピクチャにおける場合と同様の処理が行われ、データが伝送される。これに対して、後方予測モード又は両方向予測モードが設定されたとき、スイッチ111は接点c又はdにそれぞれ切り換えられる。スイッチ111が接点cに切り換えられている後方予測モードのとき、後方予測画像部117に記憶されている画像(現在の場合、Pピクチャの画像)データが読み出され、動き補償回路119により、動きベクトル検出回路105が出力する動きベクトルに対応して動き補償される。すなわち、動き補償回路119は、後方予測モードの設定が指定されたとき、後方予測画像部117の読み出しアドレスを、動きベクトル105が、現在出力しているマクロブロックの位置に対応する位置から動きベクトルに対応する分だけずらしてデータを読み出し、予測画像データを生成する。動き補償回路119より出力された予測画像データは、演算器121に供給される。演算器121は、参照画像のマクロブロックのデータから、動き補償回路119より供給された予測画像データを減算し、その差分を出力する。この差分データは、DCT回路112、量子化回路113、可変長符号化回路125及び送信バッファ126を介して伝送路に伝送される。スイッチ111が接点dに切り換えられている両方向予測モードのとき、前方予測画像部118に記憶されている画像(現在の場合、Iピクチャの画像)データと、後方予測画像部117に記憶されている画像(現在の場合、Pピクチャの画像)データが読み出され、動き補償回路119により、動きベクトル検出回路105が出力する動きベクトルに対応して動き補償される。すなわち、動き補償回路119は、両方向予測モードの設定が指定されたとき、前方予測画像部118と後方予測画像部117の読み出しアドレスを、動きベクトル検出回路105がいま出力しているマクロブロックの位置に対応する位置から動きベクトル(この場合の動きベクトルは、前方予測画像用と後方予測画像用の2つとなる)に対応する分だけずらしてデータを読み出し、予測画像データを生成する。動き補償回路119より出力された予測画像データは、演算器122に供給される。演算器122は、動きベクトル検出回路105より供給された参照画像のマクロブロックのデータから、動き補償回路119より供給された予測画像データの平均値を減算し、その差分を出力する。この差分データは、DCT回路112、量子化回路113、可変長符号化回路125及び送信バッファ126を介して伝送路に伝送される。
Bピチクャの画像は、他の画像の予測画像とされることがないため、フレームメモリ117、118には記憶されない。コントローラ104は、上述した予測モードに関する処理、DCTモードに関する処理及び量子化に関する処理に携わる全ての回路をコントロールする。さらには、コントローラ104は、各ピクチャのエンコーディング処理において発生した、動きベクトル、ピクチャタイプ、予測モード、DCTモード、量子化ステップなどの全てのコーディングパラメータを、可変長符号化回路125に供給する。
また、コントローラ104は、補助データ分離回路101から、V−phase、H−phase、Time_code1、Time_code2、Ancillary_data及びLine_numberに関する情報を受け取ると共に、フィールドカウンタ102からDTS_counterPTS_counter及びField_IDに関する情報を受け取る。コントローラ104は、受け取った、V−phase、H−phase、Time_code1、Time_code2、Ancillary_data、Line_number、DTS_counterPTS_counter及びField_IDに関する情報を、MPEG_ES_editing_information(i)として可変長符号化回路125に供給する。
可変長符号化回路125は、量子化回路113から量子化されたDCT係数及びコントローラ104から供給されたコーディングパラメータを可変長符号化すると共に、MPEG規格において定められているエレメンタリーストリームのシンタックスに従って、符号化ストリームを生成する。
実施例の特徴ある点として、さらに、可変長符号化回路125は、コントローラ104からMPEG_ES_editing_information(i)として供給された情報を可変長符号化し、符号化ストリーム中に挿入する処理を行う。符号化ストリームのシンタックス及びMPEG_ES_editing_information(i)のシンタックスについては、詳しくは後述する。
次に、図10乃至図26を参照してビットストリームのシンタックスについて説明する。尚、図26は、図10から図25において説明している詳細なシンタックスを、より理解しやすい形式でMPEG符号化ストリームのデータ構造を示している説明図である。図10は、MPEGのビデオストリームのシンタックスを表わした図である。MPEGエンコーダ42は、この図10に示されたシンタックスに従った符号化エレメンタリストリームを生成する。以下に説明するシンタックスにおいて、関数や条件文は細活字で表わされ、データエレメントは、太活字で表されている。データ項目は、その名称、ビット長およびそのタイプ・伝送順序を示すニーモニック(Mnemonic)で記述されている。
まず、この図10に示されているシンタックスにおいて使用されている関数について説明する。実際には、この図10に示されているシンタックスは、MPEGデコーダ44側において、伝送されてきた符号化ビットストリームから所定の意味のあるデータエレメントを抽出するために使用されるシンタックスである。MPEGエンコーダ42側において使用されるシンタックスは、図10に示されたシンタックスからif文やwhile文等の条件文を省略したシンタックスである。
video_sequence()において最初に記述されているnext_start_code()は、ビットストリーム中に記述されているスタートコードを探すための関数である。この図10に示されたシンタックスに従って生成された符号化ストリームには、まず最初に、sequence_header()とsequence_extension()によって定義されたデータエレメントが記述されている。このsequence_header()は、MPEGビットストリームのシーケンスレイヤのヘッダデータを定義するための関数であって、sequence_extension()は、MPEGビットストリームのシーケンスレイヤの拡張データを定義するための関数である。sequence_extension()の次に配置されているdo{ }while構文は、while文によって定義されている条件が真である間、do文の{ }内の関数に基いて記述されたデータエレメントが符号化データストリーム中に記述されていることを示す構文である。このwhile文に使用されているnextbits()は、ビットストリーム中に記述されているビット又はビット列と、参照されるデータエレメントとを比較するための関数である。この図10に示されたシンタックスの例では、nextbits()は、ビットストリーム中のビット列とビデオシーケンスの終わりを示すsequence_end_codeとを比較し、ビットストリーム中のビット列とsequence_end_codeとが一致しないときに、このwhile文の条件が真となる。従って、sequence_extension()の次に配置されているdo{ }while構文は、ビットストリーム中に、ビデオシーケンスの終わりを示すsequence_end_codeが現れない間、do文中の関数によって定義されたデータエレメントが符号化ビットストリーム中に記述されていることを示している。符号化ビットストリームにおいて、sequence_extension()によって定義された各データエレメントの次には、extension_and_user_data(0)によって定義されたデータエレメントが記述されている。このextension_and_user_data(0)は、MPEGビットストリームのシーケンスレイヤにおける拡張データとユーザデータを定義するための関数である。このextension_and_user_data(0)の次に配置されているdo{ }while構文は、while文によって定義されている条件が真である間、do文の{ }内の関数に基いて記述されたデータエレメントが、ビットストリームに記述されていることを示す関数である。このwhile文において使用されているnextbits()は、ビットストリーム中に現れるビット又はビット列と、picture_start_code又はgroup_start_codeとの一致を判断するための関数であるって、ビットストリーム中に現れるビット又はビット列と、picture_start_code又はgroup_start_codeとが一致する場合には、while文によって定義された条件が真となる。よって、このdo{ }while構文は、符号化ビットストリーム中において、picture_start_code又はgroup_start_codeが現れた場合には、そのスタートコードの次に、do文中の関数によって定義されたデータエレメントのコードが記述されていることを示している。このdo文の最初に記述されているif文は、符号化ビットストリーム中にgroup_start_codeが現れた場合、という条件を示しいる。このif文による条件は真である場合には、符号化ビットストリーム中には、このgroup_start_codeの次にgroup_of_picture_header()およびextension_and_user_data(1)によって定義されているデータエレメントが順に記述されている。このgroup_of_picture_header()は、MPEG符号化ビットストリームのGOPレイヤのヘッダデータを定義するための関数であって、extension_and_user_data(1)は、MPEG符号化ビットストリームのGOPレイヤの拡張データおよびユーザデータを定義するための関数である。さらに、この符号化ビットストリームにおいて、group_of_picture_header()およびextension_and_user_data(1)によって定義されているデータエレメントの次には、picture_header()とpicture_coding_extension()によって定義されたデータエレメントが記述されている。もちろん、先に説明したif文の条件が真とならない場合には、group_of_picture_header()およびextension_and_user_data(1)によって定義されているデータエレメントは記述されていないので、extension_and_user_data(0)によって定義されているデータエレメントの次に、picture_header()、picture_coding_extension()およびextension_and_user_data(2)によって定義されたデータエレメントが記述されている。このpicture_header()は、MPEG符号化ビットストリームのピクチャレイヤのヘッダデータを定義するための関数であって、picture_coding_extension()は、MPEG符号化ビットストリームのピクチャレイヤの第1の拡張データを定義するための関数である。extension_and_user_data(2)は、MPEG符号化ビットストリームのピクチャレイヤの拡張データおよびユーザデータを定義するための関数である。このextension_and_user_data(2)によって定義されるユーザデータは、ピクチャレイヤに記述されているデータであって、各ピクチャ毎に記述することのできるデータである。符号化ビットストリームにおいて、ピクチャレイヤのユーザデータの次には、picture_data()によって定義されるデータエレメントが記述されている。このpicture_data()は、スライスレイヤおよびマクロブロックレイヤに関するデータエレメントを記述するための関数である。このpicture_data()の次に記述されているwhile文は、このwhile文によって定義されている条件が真である間、次のif文の条件判断を行うための関数である。このwhile文において使用されているnextbits()は、符号化ビットストリーム中に、picture_start_code又はgroup_start_codeが記述されているか否かを判断するための関数であって、ビットストリーム中にpicture_start_code又はgroup_start_codeが記述されている場合には、このwhile文によって定義された条件が真となる。
次のif文は、符号化ビットストリーム中にsequence_end_codeが記述されているか否かを判断するための条件文であって、sequence_end_codeが記述されていないのであれば、sequence_header()とsequence_extension()とによって定義されたデータエレメントが記述されていることを示している。sequence_end_codeは符号化ビデオストリームのシーケンスの終わりを示すコードであるので、符号化ストリームが終了しない限り、符号化ストリーム中にはsequence_header()とsequence_extension()とによって定義されたデータエレメントが記述されている。このsequence_header()とsequence_extension()によって記述されたデータエレメントは、ビデオストリームのシーケンスの先頭に記述されたsequence_header()とsequence_extension()によって記述されたデータエレメントと全く同じである。このように同じデータをストリーム中に記述する理由は、ビットストリーム受信装置側でデータストリームの途中(例えばピクチャレイヤに対応するビットストリーム部分)から受信が開始された場合に、シーケンスレイヤのデータを受信できなくなり、ストリームをデコード出来なくなることを防止するためである。この最後のsequence_header()とsequence_extension()とによって定義されたデータエレメントの次、つまり、データストリームの最後には、シーケンスの終わりを示す2ビットのsequence_end_codeが記述されている。以下に、sequence_header()、sequence_extension()、extension_and_user_data(0)、group_of_picture_header()、picture_header()、picture_coding_extension()、およびpicture_data()について詳細に説明する。図11は、sequence_header()のシンタックスを説明するための図である。このsequence_header()によって定義されたデータエレメントは、sequence_header_code、horizontal_size_value、vertical_size_value、aspect_ratio_information、frame_rate_code、bit_rate_value、marker_bit、vbv_buffer_size_value、constrained_parameter_flag、load_intra_quantizer_matrix、intra_quantizer_matrix[64]、load_non_intra_quantizer_matrix、およびnon_intra_quantizer_matrix等である。sequence_header_codeは、シーケンスレイヤのスタート同期コードを表すデータである。horizontal_size_valueは、画像の水平方向の画素数の下位12ビットから成るデータである。vertical_size_valueは、画像の縦のライン数の下位12ビットからなるデータである。aspect_ratio_informationは、画素のアスペクト比(縦横比)または表示画面アスペクト比を表すデータである。frame_rate_codeは、画像の表示周期を表すデータである。bit_rate_valueは、発生ビット量に対する制限のためのビット・レートの下位18ビット(400bsp単位で切り上げる)データである。marker_bitは、スタートコードエミュレーションを防止するために挿入されるビットデータである。vbv_buffer_size_valueは、発生符号量制御用の仮想バッファ(ビデオバッファベリファイヤー)の大きさを決める値の下位10ビットデータである。constrained_parameter_flagは、各パラメータが制限以内であることを示すデータである。load_intra_quantizer_matrixは、イントラMB用量子化マトリックス・データの存在を示すデータである。intra_quantizer_matrix[64]は、イントラMB用量子化マトリックスの値を示すデータである。load_non_intra_quantizer_matrixは、非イントラMB用量子化マトリックス・データの存在を示すデータである。non_intra_quantizer_matrixは、非イントラMB用量子化マトリックスの値を表すデータである。
図12はsequence_extension()のシンタックスを説明するための図である。このsequence_extension()によって定義されたデータエレメントとは、extension_start_code、extension_start_code_identifier、profile_and_level_indication、progressive_sequence、chroma_format、horizontal_size_extension、vertical_size_extension、bit_rate_extension、vbv_buffer_size_extension、low_delay、frame_rate_extension_n、およびframe_rate_extension_d等のデータエレメントである。
extension_start_codeは、エクステンションデータのスタート同期コードを表すデータである。extension_start_code_identifierは、どの拡張データが送られるかを示すデータである。profile_and_level_indicationは、ビデオデータのプロファイルとレベルを指定するためのデータである。progressive_sequenceは、ビデオデータが順次走査であることを示すデータである。chroma_formatは、ビデオデータの色差フォーマットを指定するためのデータである。horizontal_size_extensionは、シーケンスヘッダのhorizntal_size_valueに加える上位2ビットのデータである。vertical_size_extensionは、シーケンスヘッダのvertical_size_value加える上位2ビットのデータである。bit_rate_extensionは、シーケンスヘッダのbit_rate_valueに加える上位12ビットのデータである。vbv_buffer_size_extensionは、シーケンスヘッダのvbv_buffer_size_valueに加える上位8ビットのデータである。low_delayは、Bピクチャを含まないことを示すデータである。frame_rate_extension_nは、シーケンスヘッダのframe_rate_codeと組み合わせてフレームレートを得るためのデータである。frame_rate_extension_dは、シーケンスヘッダのframe_rate_codeと組み合わせてフレームレートを得るためのデータである。図13は、extension_and_user_data(i)のシンタックスを説明するための図である。このextension_and_user_data(i)は、「i」が1以外のときは、extension_data()によって定義されるデータエレメントは記述せずに、user_data()によって定義されるデータエレメントのみを記述する。よって、extension_and_user_data(0)は、user_data()によって定義されるデータエレメントのみを記述する。まず、図13に示されているシンタックスにおいて使用されている関数について説明する。nextbits()は、ビットストリーム中に現れるビットまたはビット列と、次に復号されるデータエレメントとを比較するための関数である。図14のuser_data()は、本実施例の特徴のあつ点を説明している図である。図14に示すように、user_data()は、user_data_start_code,V−phase(),H−phase(),Time_code(),Picture_order(),Ancillary_data(),history_data(),およびuser_data()に関するデータエレメントを記述するための関数である。user_data_start_codeは、MPEG方式のビットストリームのピクチャレイヤのユーザデータエリアの開始を示すためのスタートコードである。このuser_data_start_codeの次に記述されているif文は、user_data(i)のiが”0”のとき、次に記述されているwhile構文を実行する。このwhile構文は、ビットストリーム中に、23個の”0”とそれに続く”1”から構成される24ビットのデータが現れない限り真となる。この23個の”0”とそれに続く”1”から構成される24ビットのデータは、すべてのスタートコードの先頭に付与されるデータであって、すべてのスタートコードは、この24ビットの後ろに設けられることによって、nextbits()は、ビットストリーム中において、各スタートコードの位置を見つけることができる。while構文が真のとき、user_data(i)のiが”0”のときをしめしているので、これはシーケンスレイヤのextntion_and_user_data(0)を示すことになる。つまり、図26において、シーケンスレイヤにおいて、extntion_and_user_data(0)205に関するデータエレメントが記述されていることを示している。その次に記述されているif文のnextbits()は、V−Phaseを示すビット列(Data_ID)を検出すると、そのビット列(Data_ID)の次ビットからV−Phase()で示されるV−Phaseのデータエレメントが記述されていることを知る。次のElseif文のnextbits()は、H−Phaseを示すビット列(Data_ID)を検出すると、そのビット列(Data_ID)の次ビットからH−Phase()で示されるH−Phaseのデータエレメントが記述されていることを知る。
つまり、図26に示したようにV−Phase()220及びH−Phase()221に関するデータエレメントは、シーケンスレイヤのユーザデータエリアに記述されているということを意味する。ここで、図15に示すように、V−PhaseのData_IDは、”01”を表すビット列であり、H−PhaseのData_IDは、”02”を表すビット列である。ビットストリームに記述されるV−Phase()のシンタックスについて、図16を参照して説明する。まず、Data_IDは、前述したように、そのData_IDの次のビット列のデータエレメントがV−Phaseであることを表す8ビットのデータであり、図15で示した値”01”である。V−Phaseは、画像信号のフレームにおいて、符号化される最初のラインを示す16ビットのデータである。言いかえると、V−Phaseは、アクティブビデオエリアの垂直方向のライン位置を示すデータである。
ビットストリームに記述されるH−Phase()のシンタックスについて、図17を参照して説明する。まず、Data_IDは、前述したように、そのData_IDの次のビット列のデータエレメントがH−Phaseであることを表す8ビットのデータであり、図15で示した値”02”である。H−Phaseは、画像信号フレームにおいて、符号化される最初のサンプルを示す8ビットのデータである。言いかえると、H−Phaseは、アクティブビデオエリアの水平方向の画素サンプル位置を示すデータである。
図14に戻って、次のElse if文は、extntion_and_user_data(i)のiが2のとき、次に記述されているwhile構文を実行する。while構文の内容は前述した場合と同様であるので、ここではその説明を省略する。while構文が真のとき、次のif文において、nextbits()は、Time code1を示すビット列を検出するか、または、Time code2を示すビット列を検出すると、そのビット列の次ビットからTime_code()で示されるTime codeのデータエレメントが記述されていることを知る。つまり、extntion_and_user_data(i)のiが2のときとは、このユーザデータがピクチャレイヤにあることを意味し、つまり、図26に示すように、このTime_code()241によって表されるデータエレメントは、ピクチャレイヤのユーザーで^タエリアに記述されているデータであるということである。
Time code1のData_IDは、図15に示すように、”03”を表すビット列であり、Time code1のデータは、画像の垂直ブランキング期間に挿入されたタイムコードを示す、VITC(Vertical Interval Time Code)である。Time code2のData_IDは、図15に示すように、”04”を表すビット列であり、Timecode2のデータは、記録媒体のタイムコードトラックに記録されたタイムコードを示す、LTC(Longitudinal Time Code又はLinear Time Code)である。
図18及び図19は、Timecode()のシンタックスを示している図である。図18に示されているように、タイムコードは、72ビットのデータで表されており、図19具体的なデータ構造を示している
図19において、color_frame_flagは、カラーフレーム情報に関するコントロールフラグを表わし、次のDrop_frame_flagは、ドロップフレームに関するコントロールフラグを表わしている。次の3ビット目から8ビット目までの6ビットは、タイムコードの‘フレーム’の部分を表わし、field_phaseは、フェイズコレクションに関するコントロールフラグを表わし、10ビット目から16ビット目までの7ビットは、タイムコードの‘秒’の部分を表わしている。17ビット目、34ビット目、51ビット目及び68ビット目の‘1’は、前述したように0が23個連続しないようにするためのマーカービットであって、このように所定間隔でマーカービットを挿入することによって、スタートコードエミュレーションを防止することができる。
18ビット目、26ビット目及び27ビット目のbinary_groupは、バイナリグループに関するコントロールフラグを表わし、19ビット目から25ビット目の7ビットは、タイムコードの‘分’の部分を表わし、28ビット目から33ビット目の6ビットは、タイムコードの‘時’の部分を表わしている。
図14のElseif文において、nextbits()は、Picture Orderを示すビット列を検出すると、そのビット列の次ビットからPicture_Order()で示されるPicture_Orderのデータエレメントが記述されていることを知る。ここで、Picture_Order()のData_IDは、図15に示すように、”05”を表すビット列である。実際に、エンコーダでエレメンタリストリーム(ES)に挿入するPicture_Order()のシンタックスを、図20を参照して説明する。まず、Data_IDは前述したように、そのData_ID以降のデータがPicture_Orderのデータであることを示す8ビットのデータであり、その値は”05”である。DTS_presenceは、符号化順序DTS_counterの有無を表す1ビットのデータである。例えば、BピクチャのようにDTS_counter=PTS_counterとなる場合、表示順序PTS_counterのみが存在し、DTS_presenceのビットは”0”となる。逆に、PピクチャおよびIピクチャの場合、符号化順序DTS_counterと表示順序PTS_counterは同一ではないので、表示順序PTS_counterと符号化順序DTS_counterの双方が存在し、DTS_presenceのビットは1となる。尚、Picture_Order()に関するデータエレメントは、図26に示したように、Time_Code()と同じように、ピクチャレイヤのユーザーデータエリアに記述されている。PTS_counterは、前述したように、MPEGエンコーダ内のフィールドカウンタ102によって生成される値であって、入力ビデオデータにおいて1フィールドが入力されるごとにカウントアップを行う、表示順序を表す7ビットのデータである。この7ビットのデータは、0から127までの値をとるモジュロである。if文以降は、DTS_presenceのビットが1のとき、すなわち、PピクチャおよびIピクチャのとき、DTS_counterのカウントアップが実行される。Marker_bitsは、user dataの記述されたビット列が、偶然に前述したスタートコードと一致し、画像破錠を引き起こす可能正が高い、スタートコードエミュレーションを防止するために、16ビットごとに挿入されるビットである。DTS_counterは、MPEGエンコーダ内のフィールドカウンタ102によって生成される値で、1フィールド分の符号化画像データが符号化されるごとにカウントアップを行う、符号化順序を表す7ビットのデータである。この7ビットのデータは、0から127までの値をとるモジュロである。図14に戻って、その次に記述されているwhile構文も、内容は前述した場合と同様であるので、ここではその説明を省略する。while構文が真のとき、次のif文において、nextbits()は、Ancillarydataを示すビット列を検出すると、そのビット列の次ビットからAncillary_data()で示されるAncillary dataのデータエレメントが記述されていることを知る。Ancillary_data()のData_IDは、図15に示すように、”07”を表すビット列である。尚、Ancillary_data()に関するデータエレメントは、図26に示したように、Picture_Order()やTime_Code()と同じように、ピクチャレイヤのユーザーデータエリアに記述されている。この補助データに識別子を付加するancillary dataのシンタックスを図21を参照して説明する。Ancillary_data()はピクチャレイヤのuser dataとして挿入され、データとしてはField識別子(Field_ID)、ラインの番号(Line_number)およびアンシラリーデータ(ancillary data)が挿入される。Data_IDは、user data領域において、ancillary dataであることを示す8ビットのデータであり、その値は図15に示したように”07”である。Field_IDは2ビットのデータであり、入力ビデオデータがプログレッシブビデオであるか否かを示すフラグであるprogressive_sequence_flagの値が”0”のとき、つまり、入力ビデオがインターレースのビデオデータであるとき、符号化フレーム内のフィールドごとにField_IDが付加される。
このField _IDについて、図7を参照して説明する。
repeat_first_fieldに”0”が設定されているとき、この符号化フレームにはフィールドが2枚存在し、Field_IDは、最初のフィールドに”0”、およびその次のフィールドに”1”が設定される。repeat_first_fieldに”1”が設定されているとき、この符号化フレームにはフィールドが3枚存在し、Field_IDとしては、最初のフィールドに”0”が設定され、それ以降のフィールドに”1”,”2”が設定される。図7Cを参照して、さらに詳しく説明する。図7Cの符号化ストリームは、図7Bに示される入力ビデオデータを符号化したときの、符号化ストリームに関する図である。この符号化ストリームは、複数のアクセスユニット(AU1、AU2...)からなるエレメンタリーストリームから構成されており、図7Cは、そのエレメンタリーストリーム中にアンシタリーデータとField_IDに関する情報が記述されていることを示している図である。
この符号化ストリームは、フレームF1に関しては、Field_IDとして0、1及び2が設定されている。つまり、Field_ID=0のときに、そのフィールドに関連するアンシラリーデータ「0」がストリーム中に記述され、Field_ID=1のときに、そのフィールドに関連するアンシラリーデータ「1」がストリーム中に記述され、Field_ID=2のときに、そのフィールドに関連するアンシラリーデータ「2」がストリーム中に記述される。つまり、フレームF1に関するピクチャにおいて、図26に示すように、Ancillary_data()243に関するデータエレメントは、フレームF1内のフィールド数だけ繰り返されることを意味している。
Field_IDは、progressive_sequence_flagの値が”1”のとき、つまり入力ビデオデータが1であるとき、符号化フレームごとに付加される。Field_IDには、repeat_first_fieldとTop_field_firstにともに”0”が設定されているとき、その符号化フレームは1枚のprogressive frameが存在するので、値”0”が設定され、repeat_first_fieldに値”1”およびTop_field_firstに値”0”が設定されているとき、その符号化フレームは2枚のprogressive frameが存在するので、値”0”,”1”が設定され、repeat_first_fieldとTop_field_firstにともに”1”が設定されているとき、その符号化フレームは3枚のprogressive frameが存在するので、値”0”乃至”2”が設定される。Line_numberは、14ビットのデータであり、各フレームにおけるアンシラリーデータが記述されている、ITU−R BT.656−3,SMPTE274M,SMPTE293M,SMPTE296Mで規定されたライン番号を示す。Ancillary_data_lengthは、16ビットのデータであり、ancillary_data_payloadのデータ長を示す。Ancillary_data_payloadは、22ビットのデータからなる補助データの内容を表しており、Ancillary_data_payloadのAncillary_data_lengthの値がjの値(初期値0)より大きいとき、値j(Ancillary_data_lengthのデータ長)を1だけインクリメントして、そのjの値のビット列目から記述される。次のWhile構文は、bytealigned()のためのシンタックスを表しており、次のデータがbytealigned()でないとき(While構文が真のとき)、Zero_bit(1ビットのデータ”0”)を記述する。図14に戻って、次のElse if文において、nextbits()は、History dataを示すビット列を検出すると、そのビット列の次ビットからHistory_data()で示されるHistory dataのデータエレメントが記述されていることを知る。History_data()のData_IDは、図15に示すように、”08”を表すビット列であり、Data_IDが”08”で示されるデータは、符号化パラメータの履歴情報を含むHistory dataを表している。このHistory_data()については、US特許出願09/265723に詳しく説明されているので、ここでは省略する。最後のif文において、nextbits()は、user data を示すビット列を検出すると、そのビット列の次ビットからuser_data()で示されるuser_dataのデータエレメントが記述されていることを知る。図14のnextbits()が、それぞれのデータエレメントが記述されていることを知るビット列は、図15に示すData_IDとして記述されている。ただし、Data_IDとして”00”を使用することは禁止されている。Data_IDが”80”で示されるデータは、制御フラグを表しており、Data_IDが”FF”で示されるデータは、user dataを表している。図22は、group_of_picture_header()のシンタックスを説明するための図である。このgroup_of_picture_header()によって定義されたデータエレメントは、group_start_code、time_code、closed_gop、およびbroken_linkから構成される。group_start_codeは、GOPレイヤの開始同期コードを示すデータである。time_codeは、GOPの先頭ピクチャのシーケンスの先頭からの時間を示すタイムコードである。closed_gopは、GOP内の画像が他のGOPから独立再生可能なことを示すフラグデータである。broken_linkは、編集などのためにGOP内の先頭のBピクチャが正確に再生できないことを示すフラグデータである。
extension_and_user_data(1)は、extension_and_user_data(0)と同じように、user_data()によって定義されるデータエレメントのみを記述するための関数である。次に、図23乃至図25を参照して、符号化ストリームのピクチャレイヤに関するデータエレメントを記述するためのpicture_header()、picture_coding_extension()、およびpicture_data()について説明する。図23はpicture_headr()のシンタックスを説明するための図である。このpicture_headr()によって定義されたデータエレメントは、picture_start_code、temporal_reference、picture_coding_type、vbv_delay、full_pel_forward_vector、forward_f_code、full_pel_backward_vector、backward_f_code、extra_bit_picture、およびextra_information_pictureである。具体的には、picture_start_codeは、ピクチャレイヤの開始同期コードを表すデータである。temporal_referenceは、ピクチャの表示順を示す番号で、GOPの先頭でリセットされるデータである。picture_coding_typeは、ピクチャタイプを示すデータである。vbv_delayは、VBVバッファの初期状態を示すデータであって、各ピクチャ毎に設定されている。送信側システムから受信側システムに伝送された符号化エレメンタリストリームのピクチャは、受信側システムに設けられたVBVバッファにバッファリングされ、DTS(Decoding Time Stamp)によって指定された時刻に、このVBVバッファから引き出され(読み出され)、デコーダに供給される。vbv_delayによって定義される時間は、復号化対象のピクチャがVBVバッファにバッファリングされ始めてから、符号化対象のピクチャがVBVバッファから引き出されるまでの時間、つまりDTSによって指定された時刻までの時間を意味する。このピクチャヘッダに格納されたvbv_delayを使用することによって、VBVバッファのデータ占有量が不連続にならないシームレスなスプライシングが実現できる。full_pel_forward_vectorは、順方向動きベクトルの精度が整数単位か半画素単位かを示すデータである。forward_f_codeは、順方向動きベクトル探索範囲を表すデータである。full_pel_backward_vectorは、逆方向動きベクトルの精度が整数単位か半画素単位かを示すデータである。backward_f_codeは、逆方向動きベクトル探索範囲を表すデータである。extra_bit_pictureは、後続する追加情報の存在を示すフラグである。このextra_bit_pictureが「1」の場合には、次にextra_information_pictureが存在し、extra_bit_pictureが「0」の場合には、これに続くデータが無いことを示している。extra_information_pictureは、規格において予約された情報である。図24は、picture_coding_extension()のシンタックスを説明するための図である。このpicture_coding_extension()によって定義されたデータエレメントは、extension_start_code、extension_start_code_identifier、f_code[0][0]、f_code[0][1]、f_code[1][0]、f_code[1][1]、intra_dc_precision、picture_structure、top_field_first、frame_predictive_frame_dct、concealment_motion_vectors、q_scale_type、intra_vlc_format、alternate_scan、repeat_first_field、chroma_420_type、progressive_frame、composite_display_flag、v_axis、field_sequence、sub_carrier、burst_amplitude、およびsub_carrier_phaseから構成される。
extension_start_codeは、ピクチャレイヤのエクステンションデータのスタートを示す開始コードである。extension_start_code_identifierは、どの拡張データが送られるかを示すコードである。f_code[0][0]は、フォアード方向の水平動きベクトル探索範囲を表すデータである。f_code[0][1]は、フォアード方向の垂直動きベクトル探索範囲を表すデータである。f_code[1][0]は、バックワード方向の水平動きベクトル探索範囲を表すデータである。f_code[1][1]は、バックワード方向の垂直動きベクトル探索範囲を表すデータである。intra_dc_precisionは、DC係数の精度を表すデータである。picture _structureは、フレームストラクチャかフィールドストラクチャかを示すデータである。これは、フィールドストラクチャの場合は、上位フィールドか下位フィールドかもあわせて示す。top_field_firstは、フレームストラクチャの場合、最初のフィールドがトップフィールドであるのか、ボトムフィールドであるのかを示すフラグである。frame_predictive_frame_dctは、フレーム・ストラクチャの場合、フレーム・モードDCTの予測がフレーム・モードだけであることを示すデータである。concealment_motion_vectorsは、イントラマクロブロックに伝送エラーを隠蔽するための動きベクトルがついていることを示すデータである。q_scale_typeは、線形量子化スケールを利用するか、非線形量子化スケールを利用するかを示すデータである。intra_vlc_formatは、イントラマクロブロックに、別の2次元VLC(可変長符号)を使うかどうかを示すデータである。alternate_scanは、ジグザグスキャンを使うか、オルタネート・スキャンを使うかの選択を表すデータである。repeat_first_fieldは、復号化時にリピートフィールドを生成するか否かを示すフラグであって、復号化時の処理において、repeat_first_fieldが「1」の場合にはリピートフィールドを生成し、repeat_first_fieldが「0」の場合にはリピートフィールドを生成しないという処理が行われる。chroma_420_typeは、信号フォーマットが4:2:0の場合、次のprogressive_frameと同じ値、そうでない場合は0を表すデータである。progressive_frameは、そのピクチャが、順次走査できているかどうかを示すデータである。composite_display_flagは、ソース信号がコンポジット信号であったかどうかを示すデータである。v_axisは、ソース信号が、PALの場合に使われるデータである。field_sequenceは、ソース信号が、PALの場合に使われるデータである。sub_carrierは、ソース信号が、PALの場合に使われるデータである。burst_amplitudeは、ソース信号が、PALの場合に使われるデータである。sub_carrier_phaseは、ソース信号が、PALの場合に使われるデータである。図25は、picture_data()のシンタックスを説明するための図である。このpicture_data()によって定義されるデータエレメントは、slice()によって定義されるデータエレメントである。但し、ビットストリーム中に、slice()のスタートコードを示すslice_start_codeが存在しない場合には、このslice()によって定義されるデータエレメントはビットストリーム中に記述されていない。
slice()は、スライスレイヤに関するデータエレメントを記述するための関数であって、具体的には、slice_start_code、slice_quantiser_scale_code、intra_slice_flag、intra_slice、reserved_bits、extra_bit_slice、extra_information_slice、およびextra_bit_slice等のデータエレメントと、macroblock()によって定義されるデータエレメントを記述するための関数である。
slice_start_codeは、slice()によって定義されるデータエレメントのスタートを示すスタートコードである。slice_quantiser_scale_codeは、このスライスレイヤに存在するマクロブロックに対して設定された量子化ステップサイズを示すデータである。しかし、各マクロブロック毎に、quantiser_scale_codeが設定されている場合には、各マクロブロックに対して設定されたmacroblock_quantiser_scale_codeのデータが優先して使用される。intra_slice_flagは、ビットストリーム中にintra_sliceおよびreserved_bitsが存在するか否かを示すフラグである。intra_sliceは、スライスレイヤ中にノンイントラマクロブロックが存在するか否かを示すデータである。スライスレイヤにおけるマクロブロックのいずれかがノンイントラマクロブロックである場合には、intra_sliceは「0」となり、スライスレイヤにおけるマクロブロックの全てがノンイントラマクロブロックである場合には、intra_sliceは「1」となる。reserved_bitsは、7ビットのデータであって「0」の値を取る。extra_bit_sliceは、符号化ストリームとして追加の情報が存在することを示すフラグであって、次にextra_information_sliceが存在する場合には「1」に設定される。追加の情報が存在しない場合には「0」に設定される。macroblock()は、マクロブロックレイヤに関するデータエレメントを記述するための関数であって、具体的には、macroblock_escape、macroblock_address_increment、およびmacroblock_quantiser_scale_code等のデータエレメントと、macroblock_modes()、およびmacroblock_vecters(s)によって定義されたデータエレメントを記述するための関数である。macroblock_escapeは、参照マクロブロックと前のマクロブロックとの水平方向の差が34以上であるか否かを示す固定ビット列である。参照マクロブロックと前のマクロブロックとの水平方向の差が34以上の場合には、macroblock_address_incrementの値に33をプラスする。macroblock_address_incrementは、参照マクロブロックと前のマクロブロックとの水平方向の差を示すデータである。もし、このmacroblock_address_incrementの前にmacroblock_escapeが1つ存在するのであれば、このmacroblock_address_incrementの値に33をプラスした値が、実際の参照マクロブロックと前のマクロブロックとの水平方向の差分を示すデータとなる。macroblock_quantiser_scale_codeは、各マクロブロック毎に設定された量子化ステップサイズである。各スライスレイヤには、スライスレイヤの量子化ステップサイズを示すslice_quantiser_scale_codeが設定されているが、参照マクロブロックに対してmacroblock_quantiser_scale_codeが設定されている場合には、この量子化ステップサイズを選択する。
次に、図27を参照して、マルチプレクサ162Aについて説明する。
マルチプレクサ162Aは、複数のパケッタイザ301−309と、複数のトランスポートストリーム生成回路(TS Gen.)311−319と、複数のシステムターゲットデコーダバッファ(STD Buffer)321−329と、多重化回路330と、多重化コントローラ300とを備えている。
パケッタイザ301−309は、MPEGエンコーダからそれぞれ出力されたエレメンタリーストリームを受け取り、エレメンタリーストリームをパケット化することによってパケッタイズドエレメンタリーストリーム(PES)を生成する。
図28は、エレメンタリーストリーム(ES)、パケッタイズドエレメンタリーストリーム(PES)、そして、トランスポートトリームパケットの関連を説明するための図である。
ソースビデオデータを符号化すると、例えば図28Bに示すような、各アクセスユニッテAU1、AU2、………から構成されるエレメンタリーストリームが形成される。図28Cは、パケッタイザーのパケット化処理に関して説明している図であって、パケッタイザーは、複数のアクセスユニットをパッキングし、そのパケットの先頭部分にPESヘッダを付加する。
図29は、このPESヘッダを説明するための図面である。図29に示すように、PESヘッダは、パケット開始コード、ストリームID、パケット長、記号「10」、フラグ制御コード、PESヘッダ長、コンディショナルコーディングから構成される。MPEG規格では、このコンディショナルコーディングに、プレゼンテーションタイムスタンプ(PTS)及びデコーディングタイムスタンプ(DTS)の情報を入れないといけないと決められている。トランスポートストリーム生成回路(TS Gen.)311−319は、パケッタイザ301−309から出力されたパッケタイズドエレメンタリーストリームから、図28Dに示すように、188バイトのトランスポートストリームパケットからなるトランスポートストリームをそれぞれ生成する。
システムターゲットデコーダバッファ(STD Buffer)321−329は、トランスポートストリーム生成回路311−319から出力されたトランスポートストリームを受け取り、バッファリングする。このSTDバッファは、MPEGデコーダ側の受信バッファがオーバーフロー及びアンダーフローしないようにシュミレーションを目的として設けられたバッファであって、MPEG規格によって決まっている固定容量のバッファである。多重化回路330は、システムターゲットデコーダバッファ321−329から、トランスポートストリームをそれぞれ受け取り、コントローラ300によって設定されたスケージューリングに従って多重化処理を実行する。
次に、各パケッタイザーの詳細な構成及び処理について、図27及び図30を参照して説明する。
各パケッタイザは、受け取ったエレメンタリストリームをバッファリングするためのバッファ341と、その受け取ったエレメンタリストリームのシンタックスをパージング(解析)するためのパージング回路342と、バッファから出力されたエレメンタリーストリームをパケット化するパケット化回路343を備えている。
パージング回路342は、エレメンタリーストリームから、そのエレメンタリーストリーム中に記述されたPTS_counter及びDTS_counterを抽出し、そのPTS_counter及びDTS_counterをパケット化回路343に供給する。具体的には、パージング回路342は、受け取ったエレメンタリーストリームを可変長符号化し、ストリーム中に含まれているスタートコードなどの特殊なデータエレメントを検索する。このパージング処理は、PTS_counter及びDTS_counterを抽出することが目的であるので、シーケンスレイヤはGOPレイヤのスタートコードは無視し、まず、ピクチャレイヤのスタートコードを検索する。次に、32ビットのuser_data_start_codeをストリーム中から見つけることによってピクチャレイヤのユーザデータエリアを見つけることができる。次に、このユーザデータエリアにおいて、Picture_order()に関するデータエレメントを見つけるために、“05”Data_IDを探す。このPicture_order()関数の10ビット目から16ビット目及び17ビット目から23ビット目には、PTS_counterとDTS_counterが夫々記述されているので、パージング回路342、このPTS_counterとDTS_counterとを抜き出して、パケット化回路343に供給する。パケット化回路343は、パージング回路342からPTS_counter及びDTS_counterを受け取り、このPTS_counter及びDTS_counterに関する情報に基づいてPTSとDTSを新たに生成する。本実施例では、PTSの値としてPTS_counterの値そのものを使用し、DTSの値として、DTS_counterの値そのものを使用するようにしている。
図30は、本実施例のパケタイザを使用した場合において発生する最小遅延について説明するための図である。図30Aは、入力ビデオデータを表し、図30Bは、その入力ビデオデータを符号化した際のエレメンタリーストリームを表しており、図30Cは、本実施例のMPEGエンコーダによって生成した符号化ストリームを使用し、本実施例のパケッタイザーを使用した際の、パケッタイズドエレメンタリーストリームを表している。この図30Aと図30Bについては、図2A及び図2Bと同じである。しかしながら、図2Cと図30Cを比較すると理解できるように、従来は、PTSを決定するパケッタイズドエレメンタリーストリームを生成する、つまり、PTSを決定するためには、IピクチャをPピクチャの間に存在するBピクチャの数をNとすると(N+2)フレーム分の遅延が発生していたという問題については説明済みである。
本実施例のエンコーディング方法及びパケット化方法によれば、符号化ストリームからPTSを決定する遅延を1フレーム時間に押さえることができる。さらに、IピクチャをPピクチャの間に存在するBピクチャの数に限らず、IピクチャをPピクチャの間に何枚ものBピクチャが存在していたとしても、1フレームの最小遅延となる。また、図27のような9チャンネル用のパケッタイザを設計しようとしたときに、9個のフレームメモリで実現できるという、極めて大きな効果がある。
次に、図31を参照して、MPEGデコーダ144A−144Dについて説明する。各MPEGデコーダは、受信バッファ401と、可変長復号化回路402と、逆量子化回路403と、逆DCT回路404と、コントローラ405と、演算回路411と、動き補償回路412と、メモリ413及び414と、送信バッファ415と、バースバンドビデオ生成回路416と、多重化回路417とを備えている。
可変長復号回路402は、受信バッファからエレメンタリーストリームを受け取り、そのエレメンタリーストリームに対して可変長復号化処理を行うことによって所定のデータ長を有したデータエレメントからなるストリームを生成する。さらに、可変長復号回路402は、可変長復号化されたデータストリームのシンタックスをパージング(解析)することによって、ストリーム中から全てのコーディングパラメータを抽出し、コントローラ405に供給する。ストリーム中に重畳することがMPEG規格によって義務付けられているコーディングパラメータの例としては、ピクチャタイプ、動きベクトル、予測モード、DCTモード、量子化スケールコード、量子化テーブル情報等であって、基本的には、この符号化ストリームを生成する符号化処理において発生したパラメータである。
本実施例のユニークな点は、可変長符号化回路402は、上述したMPEG規格によって定められているコーディングパラメータだけではなく、エレメンタリーストリームのユーザーデータエリアにMPEG_ES_Editing_information()として記述されている情報を抽出することが、本実施例の特徴である。具体的には、符号化ストリーム中のシーケンスレイヤのユーザデータエリアには、V−phase()H−phase()に関する情報がMPEG_ES_Editing_information()として記述されており、符号化ストリーム中のピクチャレイヤのユーザデータエリアには、Time_code()、Picture_order()、Ancillary_data()、History_data()に関する情報がMPEG_ES_Editing_information()として記述されており、可変長符号化回路402は、ストリーム中から、これらのV−phase()H−phase()、Time_code()、Picture_order()、Ancillary_data()及びHistory_data()に関連する情報を抽出し、コントローラ405に供給する。
逆量子化回路403は、可変長復号化回路402より供給された可変長復号化されたDCT係数データを、同じく可変長復号化回路402から供給された量子化スケールに基づいて逆量子化し、逆DCT回路404に出力する。
逆DCT回路404は、逆量子化回路403から供給された量子化DCT係数に対して、逆離散コサイン変換処理を施し、逆DCTされた画像データとして、演算器411に供給される。逆DCT回路404より演算器411に供給された画像データが、Iピクチャのデータである場合、そのデータは演算器411より出力され、演算器411の後に入力される画像データ(Pピクチャ又はBピクチャのデータ)の予測画像データ生成のために、フレームメモリの前方予測画像部414に供給されて記憶される。逆DCT回路404より供給された画像データが、その1フレーム前の画像データを予測画像データとするPピクチャのデータであり、前方予測モードのデータである場合、フレームメモリの前方予測画像部414に記憶されている、1フレーム前の画像データ(Iピクチャのデータ)が読み出され、動き補償回路412で可変長復号化回路402より出力された動きベクトルに対応する動き補償が施される。そして、演算器411において、逆DCT回路404より供給された画像データ(差分のデータ)と加算され、出力される。この加算されたデータ、すなわち、復号されたPピクチャのデータは、演算器411に後に入力される画像データ(Bピクチャ又はPピクチャのデータ)の予測画像データ生成のために、フレームメモリの後方予測画像部413に供給されて記憶される。Pピクチャのデータであっても、画像内予測モードのデータは、Iピクチャのデータと同様に、演算器411において処理は行われず、そのまま後方予測画像部413に記憶される。このPピクチャは、次のBピクチャの次に表示されるべき画像であるため、この時点では、まだフォーマット変換回路32へ出力されない(上述したように、Bピクチャの後に入力されたPピクチャが、Bピクチャより先に処理され、伝送されている)。逆DCT回路404より供給された画像データが、Bピクチャのデータである場合、可変長復号化回路402より供給された予測モードに対応して、フレームメモリの前方予測画像部414に記憶されているIピクチャの画像データ(前方予測モードの場合)、後方予測画像部413に記憶されているPピクチャの画像データ(後方予測モードの場合)、又は、その両方の画像データ(両方向予測モードの場合)が読み出され、動き補償回路412において、可変長復号化回路402より出力された動きベクトルに対応する動き補償が施されて、予測画像が生成される。但し、動き補償を必要としない場合(画像内予測モードの場合)、予測画像は生成されない。このようにして、動き補償回路412で動き補償が施されたデータは、演算器411において、逆DCT回路404の出力と加算される。この加算出力は、バッファ415を介してベースバンドビデオ生成回路416に供給される。この送信バッファ415から出力されるビデオデータは、アクティブビデオエリアのみのビデオデータであってブランキング期間などの補助的データは付与されていない。
コントローラ405は、可変長復号化回路402から供給されたピクチャタイプ、動きベクトル、予測モード、DCTモード、量子化スケールコード、量子化テーブル情報等のコーディングパラメータに関する情報にもとづいて、上述した各回路のオペレーションをコントロールする。
さらには、コントローラ405は、可変長符号化回路402からMPEG_ES_Editing_information()として供給されたV−phase及びH−phaseに関する情報に基づいて、ベースバンドビデオ生成回路416をコントロールする。符号化ストリーム中から抽出されたV−phaseは、入力ビデオデータの全画素エリアにおけるアクティブビデオエリアの垂直方向の位置を示しており、また、そのH−phaseは、入力ビデオデータの全画素エリアにおけるアクティブビデオエリアの水平方向の位置を示している。よって、コントローラ405は、バッファ415から出力された復号化ビデオデータを、ブランキングイメージを有した全画素エリア上に、V−phase及びH−phaseによって示される垂直及び水平位置にマッピングするようにベースバンドビデオ生成回路をコントロールする、または、V−phase及びH−phaseによって示される垂直及び水平位置に基づいて、アクティブエリアの復号ビデオデータと、全画素エリアのブランキングイメージを合成するようにベースバンドビデオ生成回路をコントロールする。その結果、ベースバンドビデオ生成回路416から出力されるビデオデータは、MPEGエンコーダに供給された入力ビデオデータのブランキング期間と全く同じブランキング期間を有している。
コントローラは405は、符号化ストリームから抽出されたAncillary_data、Line_unmber、Field_ID、Time_code_1及びTime_code_2を供給する、又はField_IDに基づいて、Ancillary_data、Time_code_1又はTime_code_2の多重化回路417の多重化処理をコントロールする。具体的には、既に図7Cにおいて説明したように、Field_IDはフィールド毎に付与されたAncillary_dataと関連付けされているので、多重化回路417はこのField_IDによって同定されるフィールドのブランキング期間に、Field_IDと関連付けられているAncillary_dataを重畳する。例えば、Field_IDが「2」の場合には、フレームにおいて3番目のフィールドであることがわかるので、符号化ストリーム中において、Field_IDが「2」に関連するアンシラリーデータとして伝送されてきたAncillary_dataを、Field_IDが「2」の3番目のフィールドのブランキング期間に重畳する。多重化回路417は、さらに、Ancillary_dataをブランキング期間に重畳する際、Ancillary_dataと一緒に伝送されているLine_unmberによって指定されるライン位置に、そのAncillary_dataを重畳する。
従って、多重化回路417から出力されたビデオデータは、MPEGエンコーダに供給された入力ビデオデータと全く同じブランキング期間、全く同じ位置のアクティブビデオエリア、全く同じライン位置にかつ同じ内容のアンシラリデータを有している。
よって、本実施例によれば、ビデオデータを送信側システムから受信側システムに伝送する際に、MPEGエンコード及びデコード処理を行ったとしても、そのコーディング処理によって入力ビデオデータがそもそも有している固有情報や入力ビデオデータに付加されたアンシラリーデータが無くなることはない。
本発明は放送局等で頻繁にビデオデータをエンコード及びデコードする際に利用できる。
1……ビデオプロセッサ、2……MPEGエンコーダ、3……MPEGデコーダ、5……3−2プルダウン処理回路、6……逆3−2プルダウン処理回路、104……コントローラ、105……動き検出回路、112……DCT回路、113……量子化回路、119……動き補償回路、125……可変長符号化回路、126……送信バッファ、142A……MPEGエンコーダ、300……多重化コントローラ、301、302、309……パケッタイザ、330……マルチプレクサ。
Claims (49)
- 入力ビデオデータをエンコードするためのエンコーディング装置において、
上記入力ビデオデータから、上記ビデオデータのブランキング期間に付加されているアンシラリーデータを抽出する抽出手段と、
上記入力ビデオデータをエンコードし、符号化ストリームを生成する符号化手段と、
上記符号化ストリーム中に上記アンシラリーデータが挿入されるように、上記符号化手段をコントロールするコントロール手段と
を備えたことを特徴とするエンコーディング装置。 - 上記コントロール手段は、上記アンシラリーデータを上記符号化ストリームのピクチャレイヤのユーザーデータエリヤに記述することを特徴とする請求項1に記載のエンコーディング装置。
- 上記コントロール手段は、上記符号化ストリームのピクチャレイヤのextension_and_user_data(i)中に、上記アンシラリーデータを記述することを特徴とする請求項1に記載のエンコーディング装置。
- 上記コントロール手段は、上記符号化ストリームのピクチャレイヤのユーザデータエリアに、上記アンシラリーデータをフィールド単位又はフレーム単位に記述するように上記符号化手段をコントロールすることを特徴とする請求項1に記載のエンコーディング装置。
- 上記コントロール手段は、上記入力ビデオデータにおいて上記アンシラリーデータが挿入されていたフィールドを示すフィールドIDと、上記アンシラリーデータとを関連付けて上記ピクチャレイヤに記述するように上記符号化手段をコントロールすることを特徴とする請求項1に記載のエンコーディング装置。
- 上記コントロール手段は、上記入力ビデオデータにおいて上記アンシラリーデータが挿入されていたフィールドを示すフィールドIDと、上記アンシラリーデータが挿入されていたライン番号と、上記アンシラリーデータとを関連付けて上記ピクチャレイヤに記述するように上記符号化手段をコントロールすることを特徴とする請求項1に記載のエンコーディング装置。
- 上記入力ビデオデータの1フレームが複数のフィールドから構成され、
上記コントロール手段は、上記符号化ストリームのピクチャレイヤに、各フィールド毎に上記アンシラリーデータを夫々記述することを特徴とする請求項1に記載のエンコーディング装置。 - 上記符号化ストリーム中に記述される上記アンシラリーデータは、可変長符号化されたデータストリームであることを特徴とする請求項1に記載のエンコーディング装置。
- 上記アンシラリーデータは、クローズドキャプションデータ及び/又はテレテキストデータであることを特徴とする請求項1に記載のエンコーディング装置。
- 上記アンシラリーデータは、上記符号化ストリームのピクチャレイヤにおいて、Ancillary_data()によって表されるシンタックスに基づいて記述されることを特徴とする請求項1に記載のエンコーディング装置。
- 上記入力ビデオデータは、3−2プルダウン処理された30Hzのビデオデータであって、
上記抽出手段と上記符号化手段との間に接続され、上記入力ビデオデータに対して、逆3−2プルダウン処理を行うことによって逆プルダウン処理されたビデオデータを生成するための逆プルダウン手段をさらに備えたことを特徴とする請求項1に記載のエンコーディング装置。 - 入力ビデオデータをエンコードするためのエンコーディング方法において、
上記入力ビデオデータから、上記ビデオデータのブランキング期間に付加されているアンシラリーデータを抽出するステップと、
上記入力ビデオデータをエンコードし、符号化ストリームを生成するステップと、
上記符号化ストリーム中に上記アンシラリーデータが挿入されるように、上記符号化手段をコントロールするステップと
を備えたことを特徴とするエンコーディング方法。 - 入力ビデオデータをエンコードするためのエンコーディング装置において、
上記入力ビデオデータから、上記ビデオデータのブランキング期間に付加されているアンシラリーデータを抽出する手段と、
上記入力ビデオデータをエンコードし、符号化ストリームを生成する手段と、
上記符号化ストリームと一緒に上記アンシラリーデータが伝送されるように、上記符号化ストリーム中に上記アンシラリーデータを挿入する手段と
を備えたことを特徴とするエンコーディング装置。 - 入力ビデオデータをエンコードするためのエンコーディング方法において、
上記入力ビデオデータから、上記ビデオデータのブランキング期間に付加されているアンシラリーデータを抽出するステップと、
上記入力ビデオデータをエンコードし、符号化ストリームを生成するステップと、
上記符号化ストリームと一緒に上記アンシラリーデータが伝送されるように、上記符号化ストリーム中に上記アンシラリーデータを挿入するステップと
を備えたことを特徴とするエンコーディング方法。 - 入力ビデオデータをエンコードするためのエンコーディング装置において、
上記入力ビデオデータから、上記ビデオデータのブランキング期間に付加されているアンシラリーデータを抽出する手段と、
上記入力ビデオデータのアクティブエリアをエンコードすることによって、符号化ストリームを生成する手段と、
上記アンシラリーデータを上記符号化ストリーム中に記述することによって、上記符号化ストリームと一緒に上記アンシラリーデータを伝送する手段と
を備えたことを特徴とするエンコーディング装置。 - 入力ビデオデータをエンコードするためのエンコーディング方法において、
上記入力ビデオデータから、上記ビデオデータのブランキング期間に付加されているアンシラリーデータを抽出するステップと、
上記入力ビデオデータのアクティブエリアをエンコードすることによって、符号化ストリームを生成するステップと、
上記アンシラリーデータを上記符号化ストリーム中に記述することによって、上記符号化ストリームと一緒に上記アンシラリーデータを伝送するステップと
を備えたことを特徴とするエンコーディング方法。 - 入力ビデオデータをエンコードするためのエンコーディング装置において、
上記入力ビデオデータが有している固有情報を上記入力ビデオデータから抽出する抽出手段と、
上記入力ビデオデータをエンコードし、符号化ストリームを生成する符号化手段と、上記符号化ストリームと一緒に上記固有情報が伝送されるように、上記符号化ストリーム中に上記固有情報を挿入する手段と
を備えたことを特徴をするエンコーディング装置。 - 上記固有情報は、上記符号化ストリームのシーケンスレイヤのユーザデータエリヤに挿入されることを特徴とする請求項17に記載のエンコーディング装置。
- 上記固有情報は、上記入力ビデオデータにおけるアクティブビデオのスタート位置を示す情報であって、
上記符号化手段は、上記アクティブビデオのビデオデータを符号化することを特徴とする請求項17に記載のエンコーディング装置。 - 上記固有情報は、上記符号化ストリームのシーケンスレイヤにおいて、V_phase()とH_phase()によって表されるシンタックスに基づいて記述されることを特徴とする請求項17に記載のエンコーディング装置。
- 入力ビデオデータをエンコードするためのエンコーディング方法において、
上記入力ビデオデータが有している固有情報を上記入力ビデオデータから抽出するステップと、
上記入力ビデオデータをエンコードし、符号化ストリームを生成するステップと、
上記符号化ストリームと一緒に上記固有情報が伝送されるように、上記符号化ストリーム中に上記固有情報を挿入するステップと
を備えたことを特徴とするエンコーディング方法。 - 入力ビデオデータをエンコードするためのエンコーディング装置において、
上記入力ビデオデータに対するアクティブビデオのフェーズを示すフェーズ情報を、上記入力ビデオデータから得る手段と、
上記入力ビデオデータをエンコードし、符号化ストリームを生成する手段と、
上記符号化ストリームと一緒に上記フェーズ情報が伝送されるように、上記符号化ストリームに上記フェーズ情報を付加する手段と
を備えたことを特徴とするエンコーディング装置。 - 入力ビデオデータをエンコードするためのエンコーディング方法において、
上記入力ビデオデータに対するアクティブビデオのフェーズを示すフェーズ情報を、上記入力ビデオデータから得るステップと、
上記入力ビデオデータをエンコードし、符号化ストリームを生成するステップと、
上記符号化ストリームと一緒に上記フェーズ情報が伝送されるように、上記符号化ストリームに上記フェーズ情報を付加するステップと
を備えたことを特徴とするエンコーディング方法。 - 入力ビデオデータをエンコードするためのエンコーディング装置において、
上記入力ビデオデータに対するアクティブビデオのフェーズを示すフェーズ情報を、上記入力ビデオデータから得る手段と、
上記入力ビデオデータをエンコードし、符号化ストリームを生成する手段と、
上記符号化ストリームのシーケンスレイヤに上記フェーズ情報を記述する手段と
を備えたことを特徴とするエンコーディング装置。 - 入力ビデオデータをエンコードするためのエンコーディング方法において、
上記入力ビデオデータに対するアクティブビデオのフェーズを示すフェーズ情報を、上記入力ビデオデータから得るステップと、
上記入力ビデオデータをエンコードし、符号化ストリームを生成するステップと、
上記符号化ストリームのシーケンスレイヤに上記フェーズ情報を記述するステップと
を備えたことを特徴とするエンコーディング方法。 - 入力ビデオデータをエンコードすることによって生成された符号化ストリームをデコードするためのデコーディング装置において、
上記符号化ストリームから、上記符号化ストリーム中に含まれているアンシラリーデータを抽出する抽出手段と、
上記符号化ストリームをデコードし、復号化ビデオデータを生成する復号化手段と、
上記復号化ビデオデータのブランキング期間に、上記アンシラリーデータを多重化する多重化手段と
を備えたことを特徴とするデコーディング装置。 - 上記抽出手段は、上記符号化ストリームのシンタックスをパージングすることによって、上記符号化ストリームのピクチャレイヤのユーザデータエリアから上記アンシラリーデータを抽出することを特徴とする請求項26に記載のデコーデイング装置。
- 上記符号化ストリーム中には、上記入力ビデオデータにおいて上記アンシラリーデータが挿入されていたフィールドを示すフィールドIDが上記アンシラリーデータと関連付けて記述されており、
上記多重化手段は、上記フィールドIDによって指定されたフィールドに上記アンシラリーデータを多重化することを特徴とする請求項26に記載のデコーデイング装置。 - 上記符号化ストリーム中には、上記入力ビデオデータにおいて上記アンシラリーデータが挿入されていたラインを示すライン番号が上記アンシラリーデータと関連付けて記述されており、
上記多重化手段は、上記ライン番号によって指定されるラインに、上記アンシラリーデータを多重化することを特徴とする請求項26に記載のデコーディング装置。 - 上記アンシラリーデータは、上記符号化ストリームのピクチャレイヤのAncillary_data()の中に記述されていることを特徴とする請求項26に記載のデコーディング装置。
- 入力ビデオデータをエンコードすることによって生成された符号化ストリームをデコードするためのデコーディング方法において、
上記符号化ストリームから、上記符号化ストリーム中に含まれているアンシラリーデータを抽出するステップと、
上記符号化ストリームをデコードし、復号化ビデオデータを生成するステップと、
上記復号化ビデオデータのブランキング期間に、上記アンシラリーデータを多重化するステップと
を備えたことを特徴とするデコーディング方法。 - 入力ビデオデータを符号化することによって生成された符号化ストリームをデコードするためのデコーディング装置において、
上記符号化ストリームのシンタックスを解析することによって、上記符号化ストリーム中に含まれているアンシラリーデータを得る手段と、
上記符号化ストリームをデコードし、復号化ビデオデータを生成する復号化手段と、
上記入力ビデオデータと上記符号化ビデオデータとが同じアンシラリーデータを有するように、上記復号化ビデオデータに上記アンシラリーデータを多重化する手段と
を備えたことを特徴とするデコーディング装置。 - 入力ビデオデータを符号化することによって生成された符号化ストリームをデコードするためのデコーディング方法において、
上記符号化ストリームのシンタックスを解析することによって、上記符号化ストリーム中に含まれているアンシラリーデータを得るステップと、
上記符号化ストリームをデコードし、復号化ビデオデータを生成するステップと、
上記入力ビデオデータと上記符号化ビデオデータとが同じアンシラリーデータを有するように、上記復号化ビデオデータに上記アンシラリーデータを多重化するステップと
を備えたことを特徴とするデコーディング方法。 - 入力ビデオデータを符号化することによって生成された符号化ストリームをデコードするためのデコーディング装置において、
上記符号化ストリームのピクチャエリアに含まれているアンシラリーデータを、上記符号化ストリームから得る手段と、
上記符号化ストリームをデコードし、復号化ビデオデータを生成する復号化手段と、
上記復号化ビデオデータと上記アンシラリーデータとを多重化することによって、上記入力ビデオデータを同じデータを生成する手段と
を備えたことを特徴とするデコーディング装置。 - 入力ビデオデータを符号化することによって生成された符号化ストリームをデコードするためのデコーディング方法において、
上記符号化ストリームのピクチャエリアに含まれているアンシラリーデータを、上記符号化ストリームから得るステップと、
上記符号化ストリームをデコードし、復号化ビデオデータを生成するステップと、
上記復号化ビデオデータと上記アンシラリーデータとを多重化することによって、上記入力ビデオデータを同じデータを生成するステップと
を備えたことを特徴とするデコーディング方法。 - 入力ビデオデータをエンコードすることによって生成された符号化ストリームをデコードするためのデコーディング装置において、
上記符号化ストリームから、上記符号化ストリーム中に含まれている情報であって、上記入力ビデオデータの固有情報を抽出する抽出手段と、
上記符号化ストリームをデコードし、復号化ビデオデータを生成する復号化手段と、
上記固有情報に基づいて、上記復号化ビデオデータからベースバンドビデオデータを生成する生成手段と
を備えたことを特徴とするデコーディング装置。 - 上記抽出手段は、上記符号化ストリームのシンタックスをパージングすることによって、上記符号化ストリームのシーケンスレイヤのユーザデータエリアから上記固有情報を抽出することを特徴とする請求項36に記載のデコーディング装置。
- 上記固有情報は、上記入力ビデオデータにおけるアクティブビデオの位置を示す情報であって、上記符号化ストリームのシーケンスレイヤにおいて、V_phase()とH_phase()によって表されるシンタックスに基づいて記述されていることを特徴とする請求項36に記載のデコーディング装置。
- 上記固有情報は、上記入力ビデオデータにおけるアクティブビデオの位置を示す情報であって、
上記生成手段は、上記固有情報に基づいて、上記入力ビデオデータにおけるアクティブビデオの位置と同じ位置に、上記復号化ビデオデータがマッピングされたベースバンドビデオデータを生成することを特徴とする請求項36に記載のデコーディング装置。 - 上記固有情報は、上記入力ビデオデータにおけるアクティブビデオの位置を示す情報であって、
上記生成手段は、上記固有情報に基づいて、上記復号化ビデオデータに対してブランキング期間を付加することによってベースバンドビデオデータを生成することを特徴とする請求項36に記載のデコーディング装置。 - 入力ビデオデータをエンコードすることによって生成された符号化ストリームをデコードするためのデコーディング方法において、
上記符号化ストリームから、上記符号化ストリーム中に含まれている情報であって、上記入力ビデオデータの固有情報を抽出するステップと、
上記符号化ストリームをデコードし、復号化ビデオデータを生成するステップと、
上記固有情報に基づいて、上記復号化ビデオデータからベースバンドビデオデータを生成するステップと
を備えたことを特徴とするデコーディング方法。 - 入力ビデオデータをエンコードすることによって生成された符号化ストリームをデコードするためのデコーディング装置において、
上記符号化ストリームから、上記符号化ストリーム中に含まれている情報であって、上記入力ビデオデータの固有情報を抽出する抽出手段と、
上記符号化ストリームをデコードし、復号化ビデオデータを生成する復号化手段と、
上記固有情報に基づいて、上記復号化ビデオデータを処理する手段と
を備えたことを特徴とするデコーディング装置。 - 入力ビデオデータをエンコードすることによって生成された符号化ストリームをデコードするためのデコーディング方法において、
上記符号化ストリームから、上記符号化ストリーム中に含まれている情報であって、上記入力ビデオデータの固有情報を抽出するステップと、
上記符号化ストリームをデコードし、復号化ビデオデータを生成するステップと、
上記固有情報に基づいて、上記復号化ビデオデータを処理するステップと
を備えたことを特徴とするデコーディング方法。 - 入力ビデオデータをエンコードすることによって生成された符号化ストリームをデコードするためのデコーディング装置において、
上記符号化ストリームから、上記符号化ストリーム中に含まれている情報であって、上記入力ビデオデータの固有情報を抽出する抽出手段と、
上記符号化ストリームをデコードし、復号化ビデオデータを生成する復号化手段と、上記固有情報に基づいて、上記復号化ビデオデータを処理する手段と
を備えたことを特徴とするデコーディング装置。 - 入力ビデオデータをエンコードすることによって生成された符号化ストリームをデコードするためのデコーディング方法において、
上記符号化ストリームから、上記符号化ストリーム中に含まれている情報であって、上記入力ビデオデータの固有情報を抽出するステップと、
上記符号化ストリームをデコードし、復号化ビデオデータを生成するステップと、
上記固有情報に基づいて、上記復号化ビデオデータを処理するステップと
を備えたことを特徴とするデコーディング方法。 - 入力ビデオデータを符号化するエンコーディング手段と、上記符号化手段によって符号化された符号化ストリームを受け取って、上記符号化ストリームを復号化し復号化ビデオデータを生成するデコーディング手段とを備えたコーディングシステムにおいて、
上記エンコーディング手段は、
上記符号化ストリームを生成するために上記入力ビデオデータを符号化する手段と、
上記入力ビデオデータに付与されているアンシラリーデータを上記符号化ストリーム中に挿入する手段とを備え、
上記デコーディング手段は、
上記復号化ビデオデータを生成するために上記符号化ストリームを復号化する手段と、
上記符号化ストリームと共に伝送されてきたアンシラリーデータを、上記復号化ビデオデータに多重化する手段とを備えていることを特徴とするコーディングシステム。 - 入力ビデオデータを符号化するエンコーディングプロセスと、上記エンコーディングプロセスによって符号化された符号化ストリームを受け取って、上記符号化ストリームを復号化するデコーディングプロセスとを行うコーディングシステムを使用して、上記入力ビデオデータに対して符号化プロセス及び復号化プロセスを行うためのコーディング方法において、
上記エンコーディングプロセスは、
上記符号化ストリームを生成するために上記入力ビデオデータを符号化するステップと、上記入力ビデオデータに関連するアンシラリーデータを上記符号化ストリーム中に挿入するステップとを含み、
上記デコーディングプロセスは、
上記復号化ビデオデータを生成するために上記符号化ストリームを復号化するステップと、上記符号化ストリームと共に伝送されてきたアンシラリーデータを、上記復号化ビデオデータに多重化するステップとを含んでいる
ことを特徴とするコーディング方法。 - 入力ビデオデータを符号化するエンコーディング手段と、上記符号化手段によって符号化された符号化ストリームを受け取って、上記符号化ストリームを復号化し復号化ビデオデータを生成するデコーディング手段とを備えたコーディングシステムにおいて、
上記エンコーディング手段は、
上記符号化ストリームを生成するために上記入力ビデオデータを符号化する手段と、上記入力ビデオデータが有している固有情報を上記符号化ストリーム中に挿入する手段とを備え、
上記デコーディング手段は、
上記復号化ビデオデータを生成するために上記符号化ストリームを復号化する手段と、上記符号化ストリームと共に伝送されてきた固有情報に基づいて、上記復号化ビデオデータを処理する手段とを備えたことを特徴とするコーディングシステム。 - 入力ビデオデータを符号化するエンコーディングプロセスと、上記エンコーディングプロセスによって符号化された符号化ストリームを受け取って、上記符号化ストリームを復号化するデコーディングプロセスとを行うコーディングシステムを使用して、上記入力ビデオデータに対して符号化プロセス及び復号化プロセスを行うためのコーディング方法において、
上記エンコーディングプロセスは、
上記符号化ストリームを生成するために上記入力ビデオデータを符号化するステップと、上記入力ビデオデータに関連する固有情報を上記符号化ストリーム中に挿入するステップとを含み、
上記デコーディングプロセスは、
上記復号化ビデオデータを生成するために上記符号化ストリームを復号化するステップと、上記符号化ストリームと共に伝送されてきた固有情報に基づいて、上記復号化ビデオデータを処理するステップとを含んでいることを特徴とするコーディング方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004148290A JP2004328771A (ja) | 1999-02-05 | 2004-05-18 | エンコーディング装置及び方法、デコーディング装置及び方法、並びに記録媒体 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2937899 | 1999-02-05 | ||
JP2004148290A JP2004328771A (ja) | 1999-02-05 | 2004-05-18 | エンコーディング装置及び方法、デコーディング装置及び方法、並びに記録媒体 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000597953 Division | 2000-02-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004328771A true JP2004328771A (ja) | 2004-11-18 |
Family
ID=33512719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004148290A Pending JP2004328771A (ja) | 1999-02-05 | 2004-05-18 | エンコーディング装置及び方法、デコーディング装置及び方法、並びに記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004328771A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378128B2 (en) | 2008-01-11 | 2016-06-28 | International Business Machines Corporation | Dynamic address translation with fetch protection in an emulated environment |
-
2004
- 2004-05-18 JP JP2004148290A patent/JP2004328771A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378128B2 (en) | 2008-01-11 | 2016-06-28 | International Business Machines Corporation | Dynamic address translation with fetch protection in an emulated environment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6671323B1 (en) | Encoding device, encoding method, decoding device, decoding method, coding system and coding method | |
US8160134B2 (en) | Encoding system and method, decoding system and method, multiplexing apparatus and method, and display system and method | |
EP0944249B1 (en) | Encoded stream splicing device and method, and an encoded stream generating device and method | |
JP3672185B2 (ja) | コーディングシステム及びこれを用いた装置並びに記録媒体 | |
US7209636B2 (en) | Encoded stream generating apparatus and method, data transmission system and method, and editing system and method | |
JP3694888B2 (ja) | 復号装置および方法、符号化装置および方法、情報処理装置および方法、並びに記録媒体 | |
KR101293425B1 (ko) | Mvc 동작점 특성들의 시그널링 | |
US8780999B2 (en) | Assembling multiview video coding sub-BITSTREAMS in MPEG-2 systems | |
US8411746B2 (en) | Multiview video coding over MPEG-2 systems | |
RU2678149C2 (ru) | Устройство кодирования, способ кодирования, передающее устройство, устройство декодирования, способ декодирования и приёмное устройство | |
JP2008035294A (ja) | 画像データ記録装置及び画像データ符号化装置 | |
US20030103765A1 (en) | MPEG recording apparatus, recording medium and transmission method | |
JP3874153B2 (ja) | 再符号化装置および再符号化方法、符号化装置および符号化方法、復号装置および復号方法、並びに、記録媒体 | |
JP2005304065A (ja) | 復号装置および復号方法、符号化装置および符号化方法、情報処理装置および情報処理方法、並びに、記録媒体 | |
JP2004328771A (ja) | エンコーディング装置及び方法、デコーディング装置及び方法、並びに記録媒体 | |
JP3584460B2 (ja) | ビットストリーム変換装置および方法、並びに提供媒体 | |
JP2000228768A (ja) | デジタル信号伝送装置および方法、並びに提供媒体 | |
JP2000228769A (ja) | デジタル信号伝送装置および方法、デジタル信号受信装置および方法、並びに提供媒体 | |
JP2006109513A (ja) | 符号化装置および方法、並びに記録媒体 | |
JP2007259492A (ja) | 情報処理装置および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070316 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070515 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071221 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080411 |