JP2002516501A - デジタル符号化されたビデオ信号を復号化する可変長デコーダ - Google Patents
デジタル符号化されたビデオ信号を復号化する可変長デコーダInfo
- Publication number
- JP2002516501A JP2002516501A JP2000550062A JP2000550062A JP2002516501A JP 2002516501 A JP2002516501 A JP 2002516501A JP 2000550062 A JP2000550062 A JP 2000550062A JP 2000550062 A JP2000550062 A JP 2000550062A JP 2002516501 A JP2002516501 A JP 2002516501A
- Authority
- JP
- Japan
- Prior art keywords
- variable length
- variable
- decoder
- decoding
- data
- 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.)
- Withdrawn
Links
- 230000033001 locomotion Effects 0.000 claims abstract description 86
- 239000013598 vector Substances 0.000 claims abstract description 64
- 238000000034 method Methods 0.000 claims abstract description 40
- 230000015654 memory Effects 0.000 claims description 75
- 230000008569 process Effects 0.000 abstract description 27
- 239000000872 buffer Substances 0.000 description 22
- 238000010586 diagram Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 10
- 230000004044 response Effects 0.000 description 10
- 238000012937 correction Methods 0.000 description 9
- 238000013139 quantization Methods 0.000 description 8
- 230000006837 decompression Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 238000000547 structure data Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 101100366707 Arabidopsis thaliana SSL11 gene Proteins 0.000 description 1
- 101100366562 Panax ginseng SS12 gene Proteins 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
(57)【要約】
MPEG−1及びMPEG−2準拠のビデオビットストリームを復号化する可変長デコーダ(VLD)(104)である。VLD(104)は、マイクロシーケンサ(134)と、新たなインストラクションセット(214a〜214g)を用いてMPEG復号化プロセスを制御するVLDコマンド復号化/実行ユニット(136)を備える。インストラクションセット(214a〜214g)は、ビデオデータを復号化するためのコマンドセットやフローコントロールインストラクションセットからなる。ロテータ/バレルシフタ(158)が設けられ、VLD(104)と、MPEG規格の可変長コード(VLC)テーブルを用いて可変長復号化を行う可変長テーブルデコーダ(186)に対して、ビデオビットストリームからの所定数の復号化ビットを使用可能とする。可変長テーブルデコーダ(186)は、VLCテーブルのすべてにおいてプレフィクスパターンマッチ方式を共用し、可変長コードを一連のサブテーブルに配置する。各サブテーブルはユニークプレフィクスパターンのいずれかに対応する。可変長コードは、ビデオデータビットストリームにおける先頭パターンを識別すると同時にその先頭パターンに対応するサブテーブルにアクセスすることにより復号化される。ランレングスと振幅レベルのDCT係数シンボルは圧縮された状態で記憶され、逆変換ユニット(208)で必要となると復号化される。動きベクトルも、動き補償ユニット(212)で必要となるまで記憶される。
Description
【0001】 相互参照 本願は、1998年5月18日に出願された係属中の仮特許出願60/085
,797の優先日を主張し、その開示内容を全体として参照することにより特に
本願に組み込むものとする。
,797の優先日を主張し、その開示内容を全体として参照することにより特に
本願に組み込むものとする。
【0002】 発明の分野 本発明はデジタル符号化されたビデオ信号の復号化に関し、特に、固定長の値
や可変長コードを用いて符号化されたビデオデータや制御情報を復号化するデコ
ーダに関する。
や可変長コードを用いて符号化されたビデオデータや制御情報を復号化するデコ
ーダに関する。
【0003】 発明の背景 近年、特に家庭用電子機器業界においてビデオ信号のデジタル送信が普及して
いる。このようなデジタルビデオ信号送信の使用や、例えばDVD(digital ve
rsatile disc)プレーヤやデジタルビデオ放送(DVB)セットトップボックス
での受信の普及により、送信された画像シーケンスの画質や、既存のNTSCや
PALアナログ送信システムにおけるビデオ信号の記憶、操作、表示をより効果
的に制御する性能が改善している。このような高性能化を促進するため、業界は
、国際標準化機構(ISO)に規定されるMPEG(Moving Picture Experts Gr
oup)によって提唱されるデジタルビデオ圧縮のフォーマット、すなわち、ISO
−11172−2(MPEG−1)及びISO−13818−2(MPEG−2
)という2つの規格で定義されたビデオビットストリームを符号化するためのシ
ンタックスを特定している。以下の説明では、これらの規格によるビデオ信号を
デジタル符号化するのに使用されるビットストリームシンタックスをより詳細に
説明するため、ISO−11172−2(MPEG−1)及びISO−1381
8−2(MPEG−2)を参照する。これらの規格はいずれも全体として参照す
ることにより、特に本明細書に組み込むものとする。
いる。このようなデジタルビデオ信号送信の使用や、例えばDVD(digital ve
rsatile disc)プレーヤやデジタルビデオ放送(DVB)セットトップボックス
での受信の普及により、送信された画像シーケンスの画質や、既存のNTSCや
PALアナログ送信システムにおけるビデオ信号の記憶、操作、表示をより効果
的に制御する性能が改善している。このような高性能化を促進するため、業界は
、国際標準化機構(ISO)に規定されるMPEG(Moving Picture Experts Gr
oup)によって提唱されるデジタルビデオ圧縮のフォーマット、すなわち、ISO
−11172−2(MPEG−1)及びISO−13818−2(MPEG−2
)という2つの規格で定義されたビデオビットストリームを符号化するためのシ
ンタックスを特定している。以下の説明では、これらの規格によるビデオ信号を
デジタル符号化するのに使用されるビットストリームシンタックスをより詳細に
説明するため、ISO−11172−2(MPEG−1)及びISO−1381
8−2(MPEG−2)を参照する。これらの規格はいずれも全体として参照す
ることにより、特に本明細書に組み込むものとする。
【0004】 MPEG−1及びMPEG−2により定義されるビットストリームシンタック
スは、ビットストリームにおける一般的な3種類の情報又はデータ、すなわち、
ビットストリームを定義するのに必要な制御情報と、送信された画像シーケンス
を適切に圧縮解除し再生するのに必要な制御情報と、符号化されたビデオデータ
とに関するものである。ビットストリーム制御情報は、ビットストリームがパケ
ット化されたビデオ又はオーディオデータであること、あるいは、ビットストリ
ームが例えばMPEG−1又はMPEG−2のいずれかを用いて符号化されたビ
デオ信号であることを識別することもできる。画像制御情報には、例えばフレー
ムの縦横のサイズ、すなわち、ライン毎の画素(ペル)数、フレーム毎のライン
数、フレーム又はフィールドレート、アスペクト比等が含まれる。以下により詳
細に説明するが、符号化されたビデオデータは、各フレーム又はフィールドの再
形成に必要な、DCT変換及び量子化が施されたクロミナンス及び輝度ペル値を
表す。
スは、ビットストリームにおける一般的な3種類の情報又はデータ、すなわち、
ビットストリームを定義するのに必要な制御情報と、送信された画像シーケンス
を適切に圧縮解除し再生するのに必要な制御情報と、符号化されたビデオデータ
とに関するものである。ビットストリーム制御情報は、ビットストリームがパケ
ット化されたビデオ又はオーディオデータであること、あるいは、ビットストリ
ームが例えばMPEG−1又はMPEG−2のいずれかを用いて符号化されたビ
デオ信号であることを識別することもできる。画像制御情報には、例えばフレー
ムの縦横のサイズ、すなわち、ライン毎の画素(ペル)数、フレーム毎のライン
数、フレーム又はフィールドレート、アスペクト比等が含まれる。以下により詳
細に説明するが、符号化されたビデオデータは、各フレーム又はフィールドの再
形成に必要な、DCT変換及び量子化が施されたクロミナンス及び輝度ペル値を
表す。
【0005】 MPEG−1及びMPEG−2はそれぞれ、空間的及び時間的冗長性を除去す
ることにより情報密度及び符号化効率を改善するように構成されたビットストリ
ームシンタックスを特定する。各MPEGピクチャは、16×16輝度ペル(Y
)、又は、4つの8×8変換ブロックのペルの2×2の列からなる一連のマクロ
ブロックに分割される。各マクロブロックは、さらに8×16クロミナンスペル
(U,V)、又は、2つの8×8ブロックのペルの1×2の列からなる。符号化
プロセスでは、8×8ペルブロックの離散的コサイン変換(DCT)符号化の後
に、量子化、ジグザグスキャン、ゼロであるラン(ランレングス)及び振幅レベ
ルの可変長符号化を行うことにより空間的冗長性が除去される。時間的冗長性を
除去するには動き補償予測を用いる。
ることにより情報密度及び符号化効率を改善するように構成されたビットストリ
ームシンタックスを特定する。各MPEGピクチャは、16×16輝度ペル(Y
)、又は、4つの8×8変換ブロックのペルの2×2の列からなる一連のマクロ
ブロックに分割される。各マクロブロックは、さらに8×16クロミナンスペル
(U,V)、又は、2つの8×8ブロックのペルの1×2の列からなる。符号化
プロセスでは、8×8ペルブロックの離散的コサイン変換(DCT)符号化の後
に、量子化、ジグザグスキャン、ゼロであるラン(ランレングス)及び振幅レベ
ルの可変長符号化を行うことにより空間的冗長性が除去される。時間的冗長性を
除去するには動き補償予測を用いる。
【0006】 ビデオに関しては、MPEGではイントラ(I)フレーム、順方向予測(P)
フレーム、双方向予測(B)フレームを考慮する。Iフレームは独立して符号化
され、3つのフレームタイプのうち符号化効率が最も悪い。PフレームはIフレ
ームより符号化効率が良く、その前に符号化されたI又はPフレームに関して符
号化される。Bフレームは3つのフレームタイプのうち符号化効率が最も良く、
前後のI又はPフレームの両方に関して符号化される。MPEGシステムにおけ
るフレームの符号化の順序は、フレームのプレゼンテーション順と必ずしも同じ
ではない。ビットストリームのヘッダにより、デコーダが動画のプレゼンテーシ
ョンのためのフレームの時間及びシーケンスを適切に復号化するために使用する
情報が得られる。
フレーム、双方向予測(B)フレームを考慮する。Iフレームは独立して符号化
され、3つのフレームタイプのうち符号化効率が最も悪い。PフレームはIフレ
ームより符号化効率が良く、その前に符号化されたI又はPフレームに関して符
号化される。Bフレームは3つのフレームタイプのうち符号化効率が最も良く、
前後のI又はPフレームの両方に関して符号化される。MPEGシステムにおけ
るフレームの符号化の順序は、フレームのプレゼンテーション順と必ずしも同じ
ではない。ビットストリームのヘッダにより、デコーダが動画のプレゼンテーシ
ョンのためのフレームの時間及びシーケンスを適切に復号化するために使用する
情報が得られる。
【0007】 デジタル送信されたビデオビットストリームを復号化するのに使用される一般
的なビデオデコーダは、ビットストリームのパージングを行ってMPEG可変長
コードテーブル(VLC)を用いて量子化DCT係数及び動きベクトルを復号化
するように構成された可変長デコーダ(VLD)を制御するためのマイクロコン
トローラ又はシーケンサを備えている。各ブロックの量子化係数値をそのブロッ
クの逆ジグザグを表す値のストリームに変換し、その値を逆量子化するには、逆
変換プロセッサを用いる。逆量子化されたDCT係数は、逆DCT変換を行って
クロミナンス及び輝度ペル値を回復する逆離散的コサイン変換(IDCT)プロ
セッサに供給される。そして、これらの値は復号化された動きベクトルと共に動
き補償(MC)プロセッサに供給され、動き補償プロセッサがMPEG圧縮解除
を行ってI、P、Bフレームをフルビデオフレームに変換する。
的なビデオデコーダは、ビットストリームのパージングを行ってMPEG可変長
コードテーブル(VLC)を用いて量子化DCT係数及び動きベクトルを復号化
するように構成された可変長デコーダ(VLD)を制御するためのマイクロコン
トローラ又はシーケンサを備えている。各ブロックの量子化係数値をそのブロッ
クの逆ジグザグを表す値のストリームに変換し、その値を逆量子化するには、逆
変換プロセッサを用いる。逆量子化されたDCT係数は、逆DCT変換を行って
クロミナンス及び輝度ペル値を回復する逆離散的コサイン変換(IDCT)プロ
セッサに供給される。そして、これらの値は復号化された動きベクトルと共に動
き補償(MC)プロセッサに供給され、動き補償プロセッサがMPEG圧縮解除
を行ってI、P、Bフレームをフルビデオフレームに変換する。
【0008】 MPEGシンタックス準拠のビットストリームのパージング及び復号化を行う
一般的なVLD構造では、ビデオビットストリームの所定数の未復号化ビットが
1以上のレジスタに記憶される。VLDは、これらのビットのうちの少数のビッ
トをレジスタから抽出し、最も左のビットが常にVLDにより抽出された最初の
ビットに整合するようになっている。そして、VLDはMPEG VLCテーブ
ルのうちの1つのルックアップを行い、可変長符号化データを復号化すると共に
コード長を得る。抽出されたビットにおける可変長コードを復号化した後、VL
Dはレジスタ内のビットに対してマスク/シフト/OR(MASK/SHIFT
/OR)処理を行い、レジスタ内の最も左の位置にある最初の未使用ビットの再
整合を行う。VLCテーブルは、通常、約2n×m個のメモリ位置を有する1以
上のPAL又はROMに含まれている。ここで、「n」はVLCテーブルのそれ
ぞれにおいて可能な最大可変コード長を表し、「m」はユニークVLCテーブル
数を表す。
一般的なVLD構造では、ビデオビットストリームの所定数の未復号化ビットが
1以上のレジスタに記憶される。VLDは、これらのビットのうちの少数のビッ
トをレジスタから抽出し、最も左のビットが常にVLDにより抽出された最初の
ビットに整合するようになっている。そして、VLDはMPEG VLCテーブ
ルのうちの1つのルックアップを行い、可変長符号化データを復号化すると共に
コード長を得る。抽出されたビットにおける可変長コードを復号化した後、VL
Dはレジスタ内のビットに対してマスク/シフト/OR(MASK/SHIFT
/OR)処理を行い、レジスタ内の最も左の位置にある最初の未使用ビットの再
整合を行う。VLCテーブルは、通常、約2n×m個のメモリ位置を有する1以
上のPAL又はROMに含まれている。ここで、「n」はVLCテーブルのそれ
ぞれにおいて可能な最大可変コード長を表し、「m」はユニークVLCテーブル
数を表す。
【0009】 なお、VLD構造によっては、復号化プロセス後の未使用ビットの整合に必要
なシフト/マスク/OR処理によりVLDの全体的な復号化速度が大幅に影響さ
れることは、当該分野の技術者にとっては明らかであろう。これらの処理はそれ
ぞれ1サイクル以上を必要とすることがあるため、各DCT係数シンボル(すな
わち、ランレングス及び振幅レベルの各対)を復号化して未使用ビットの再整合
を行うのにVLDが多数のサイクルを必要とするので、VLDの復号化効率は大
幅に低下してしまう。さらに、VLD構造によっては、各ユニークVLCテーブ
ルの各可変長コードが別々のメモリ位置に記憶されるので、VLCテーブルがV
LDのコストと複雑性を増加させてしまう。
なシフト/マスク/OR処理によりVLDの全体的な復号化速度が大幅に影響さ
れることは、当該分野の技術者にとっては明らかであろう。これらの処理はそれ
ぞれ1サイクル以上を必要とすることがあるため、各DCT係数シンボル(すな
わち、ランレングス及び振幅レベルの各対)を復号化して未使用ビットの再整合
を行うのにVLDが多数のサイクルを必要とするので、VLDの復号化効率は大
幅に低下してしまう。さらに、VLD構造によっては、各ユニークVLCテーブ
ルの各可変長コードが別々のメモリ位置に記憶されるので、VLCテーブルがV
LDのコストと複雑性を増加させてしまう。
【0010】 従って、MPEG−1又はMPEG−2規格により符号化された可変長DCT
係数及び動きベクトルを効率的に復号化するVLDが必要である。また、種々の
MPEG可変長コードを復号化するのに必要なメモリ量を最小限にするVLDが
必要である。さらに、所定のインストラクションセットに従ってマイクロシーケ
ンサからインストラクションを受信すると共にマスタコントローラからインスト
ラクションを受信するVLDが必要である。
係数及び動きベクトルを効率的に復号化するVLDが必要である。また、種々の
MPEG可変長コードを復号化するのに必要なメモリ量を最小限にするVLDが
必要である。さらに、所定のインストラクションセットに従ってマイクロシーケ
ンサからインストラクションを受信すると共にマスタコントローラからインスト
ラクションを受信するVLDが必要である。
【0011】 米国特許出願第5502493号(US-A-5,502,493)では、可変長デコーダに
より構成されるMPEG信号のデコーダを開示している。
より構成されるMPEG信号のデコーダを開示している。
【0012】 ITU−T勧告H.222.0、情報通信技術−動画及び関連するオーディオ
情報の一般的符号化:システム、1995年7月(ITU-T Recommendation H.222
.0, Information Technology - Generic Coding of Moving Pictures and Assoc
iated Audio Information: Systems, July 1995)(ISO/IEC国際規格1
3818−1と同一)では、オーディオ及びビデオデータが復号化の前にデマル
チプレクスされるシステムを開示している。
情報の一般的符号化:システム、1995年7月(ITU-T Recommendation H.222
.0, Information Technology - Generic Coding of Moving Pictures and Assoc
iated Audio Information: Systems, July 1995)(ISO/IEC国際規格1
3818−1と同一)では、オーディオ及びビデオデータが復号化の前にデマル
チプレクスされるシステムを開示している。
【0013】 また、米国特許出願第5604499号(US-A-5,604,499)では、圧縮された
ビデオデータを可変長コードテーブルを用いて復号化する可変長テーブルデコー
ダを開示している。
ビデオデータを可変長コードテーブルを用いて復号化する可変長テーブルデコー
ダを開示している。
【0014】 発明の概要 本発明は、特にMPEG−1及びMPEG−2シンタックス準拠のビデオビッ
トストリームを復号化するのに適した可変長ビデオデコーダにより実現される。
このビデオデコーダは、マクロブロックと個々のスライスからなるブロックレイ
ヤとを復号化してDCT係数値と動きベクトルを生成する、1サイクル当たり単
一イベントのスライスパージングエンジンとして構成される。
トストリームを復号化するのに適した可変長ビデオデコーダにより実現される。
このビデオデコーダは、マクロブロックと個々のスライスからなるブロックレイ
ヤとを復号化してDCT係数値と動きベクトルを生成する、1サイクル当たり単
一イベントのスライスパージングエンジンとして構成される。
【0015】 このビデオデコーダは、MPEG規格により可変長復号化プロセスを制御する
VLDコマンド復号化/実行ユニットとのインターフェースを行うマイクロシー
ケンサを備える。復号化プロセスにおいて、マイクロシーケンサは、可変長復号
化を行うVLDコマンド復号化/実行ユニットに対するコマンドの送出、又は、
インストラクションROMに記憶されるインストラクションセットを通して得ら
れるプログラムフローの制御のいずれかを行う。さらに、ビデオデコーダは、上
位レイヤパージングや復号化された画像シーケンスの再構成のための全体的な復
号化プロセスの制御を司るRISC CPUからのデコードインストラクション
を受信することができる。
VLDコマンド復号化/実行ユニットとのインターフェースを行うマイクロシー
ケンサを備える。復号化プロセスにおいて、マイクロシーケンサは、可変長復号
化を行うVLDコマンド復号化/実行ユニットに対するコマンドの送出、又は、
インストラクションROMに記憶されるインストラクションセットを通して得ら
れるプログラムフローの制御のいずれかを行う。さらに、ビデオデコーダは、上
位レイヤパージングや復号化された画像シーケンスの再構成のための全体的な復
号化プロセスの制御を司るRISC CPUからのデコードインストラクション
を受信することができる。
【0016】 符号化されたビデオデータはDRAMメモリに記憶され、チャネルバッファF
IFOを介してビデオデコーダに供給可能とされる。本発明によれば、これら符
号化されたビデオデータビットのうちの所定数が、ロテータ/バレルシフタ及び
ポインタレジスタを使用して、ビデオデコーダと可変長テーブルデコーダに対し
て認識可能とされる。バレルシフタ及びポインタレジスタは、ポインタアドレス
+31までのポインタアドレスからのビットをロテータ/バレルシフタデータと
して、ビデオデコーダと可変長テーブルデコーダの両方に対して認識可能とする
。ビデオデコーダは、ロテータ/バレルシフタデータの可変長コードを復号化し
て、各スライス毎に必要なDCT係数と動きベクトルを得る。可変長コードが復
号化された後、ロテータ/バレルシフタのポインタレジスタはインクリメントさ
れ、次の復号化サイクルの準備を行う。
IFOを介してビデオデコーダに供給可能とされる。本発明によれば、これら符
号化されたビデオデータビットのうちの所定数が、ロテータ/バレルシフタ及び
ポインタレジスタを使用して、ビデオデコーダと可変長テーブルデコーダに対し
て認識可能とされる。バレルシフタ及びポインタレジスタは、ポインタアドレス
+31までのポインタアドレスからのビットをロテータ/バレルシフタデータと
して、ビデオデコーダと可変長テーブルデコーダの両方に対して認識可能とする
。ビデオデコーダは、ロテータ/バレルシフタデータの可変長コードを復号化し
て、各スライス毎に必要なDCT係数と動きベクトルを得る。可変長コードが復
号化された後、ロテータ/バレルシフタのポインタレジスタはインクリメントさ
れ、次の復号化サイクルの準備を行う。
【0017】 また、本発明によれば、ビデオデコーダが各MPEG VLCテーブルにアク
セスして必要な復号化された値を得ることを可能にするため、新規な方式が提供
される。各MPEG VLCテーブルは、各テーブルにおいて識別されたユニー
クプレフィクスパターンにより定義される一連のサブテーブルに分割されている
。可変長復号化プロセスにおいて、抽出されたロテータ/バレルシフタデータの
32ビットが、可変長テーブルデコーダにおけるパターンマッチロジック及びM
UXコントロールに用いられ、ロテータ/バレルシフタデータのユニークプレフ
ィクスパターンを識別する。同時に、プレフィクスパターンの後のビットが、各
MPEG VLCテーブルのサブテーブルすべてに用いられる。可変長符号化さ
れたデータが復号化された後、可変長テーブルデコーダは復号化された値と有効
コードステータスビットを供給する。また、可変長テーブルデコーダは、ロテー
タ/バレルシフタのポインタレジスタにコード長信号を供給して、ポインタレジ
スタをコード長によりインクリメントする。
セスして必要な復号化された値を得ることを可能にするため、新規な方式が提供
される。各MPEG VLCテーブルは、各テーブルにおいて識別されたユニー
クプレフィクスパターンにより定義される一連のサブテーブルに分割されている
。可変長復号化プロセスにおいて、抽出されたロテータ/バレルシフタデータの
32ビットが、可変長テーブルデコーダにおけるパターンマッチロジック及びM
UXコントロールに用いられ、ロテータ/バレルシフタデータのユニークプレフ
ィクスパターンを識別する。同時に、プレフィクスパターンの後のビットが、各
MPEG VLCテーブルのサブテーブルすべてに用いられる。可変長符号化さ
れたデータが復号化された後、可変長テーブルデコーダは復号化された値と有効
コードステータスビットを供給する。また、可変長テーブルデコーダは、ロテー
タ/バレルシフタのポインタレジスタにコード長信号を供給して、ポインタレジ
スタをコード長によりインクリメントする。
【0018】 さらに、本発明によれば、復号化されたDCT係数は圧縮されたランレングス
と振幅レベルの対として、ランレベルデコーダ/FIFOに記憶される。ランレ
ベルデコーダ/FIFOは、ランレングスと振幅レベルの対の圧縮解除を行って
、逆変換ユニットで必要なDCT係数を得る。これにより、ハフマン符号化され
た可変長の対の復号化を、先に復号化されたランレベルの対のランレベル復号化
と同時に行うことが可能となる。動きベクトルは、動き補償ユニットで必要とな
るまでmv/dmvFIFOに記憶される。
と振幅レベルの対として、ランレベルデコーダ/FIFOに記憶される。ランレ
ベルデコーダ/FIFOは、ランレングスと振幅レベルの対の圧縮解除を行って
、逆変換ユニットで必要なDCT係数を得る。これにより、ハフマン符号化され
た可変長の対の復号化を、先に復号化されたランレベルの対のランレベル復号化
と同時に行うことが可能となる。動きベクトルは、動き補償ユニットで必要とな
るまでmv/dmvFIFOに記憶される。
【0019】 本発明の上述の及び他の特徴、目的、利点については、添付図面とその説明に
より明らかにされる。
より明らかにされる。
【0020】 好ましい実施例の詳細な説明 図面を参照して、特にFig.1を参照して、デジタル符号化されたビデオ信
号のオーディオ/ビデオ復号化や圧縮解除されたビデオ画像のプレゼンテーショ
ンを行うための種々の機能モジュール102〜112を備えた復号化システム1
00を示す。好ましくは、復号化システム100は、例えば、DVD(digital v
ersatile disk)やデジタルビデオ放送(DVB)セットトップボックス(STB
)等におけるデジタルオーディオ/ビデオ受信を目的とした特定用途向けIC(
ASIC)として構成される。なお、Fig.1に示す機能ユニットは例であり
、実際にはさらに機能ユニットを追加してもよい。機能ユニット102〜112
はそれぞれ、ダイナミックランダムアクセスメモリ(DRAM)である大型オフ
チップメモリ114と種々の方法でインタラクションを行う。DRAM114へ
のアクセスはASIC100上のメモリコントローラ116により制御される。
号のオーディオ/ビデオ復号化や圧縮解除されたビデオ画像のプレゼンテーショ
ンを行うための種々の機能モジュール102〜112を備えた復号化システム1
00を示す。好ましくは、復号化システム100は、例えば、DVD(digital v
ersatile disk)やデジタルビデオ放送(DVB)セットトップボックス(STB
)等におけるデジタルオーディオ/ビデオ受信を目的とした特定用途向けIC(
ASIC)として構成される。なお、Fig.1に示す機能ユニットは例であり
、実際にはさらに機能ユニットを追加してもよい。機能ユニット102〜112
はそれぞれ、ダイナミックランダムアクセスメモリ(DRAM)である大型オフ
チップメモリ114と種々の方法でインタラクションを行う。DRAM114へ
のアクセスはASIC100上のメモリコントローラ116により制御される。
【0021】 例として、ASIC100の機能ユニットのうちの幾つかについて説明する。
これらの機能ユニットには、好ましくはデジタル符号化されたビデオ/オーディ
オ入力信号をライン118にて最大で72Mbpsのデータレートで受信するプ
ログラマブル入力デマルチプレクサ102が含まれる。デジタル符号化されたビ
デオ/オーディオ信号は、パケットデータの構造を識別するための所定のビット
ストリームシンタックスを有する「パケット化エレメンタリストリーム」(PE
Sストリーム)として一般に知られているパケット化データのシリアルビットス
トリームである。デマルチプレクサ102は、供給されるデジタル符号化された
信号のパージングを行って、ビデオ、オーディオ、その他のデータのパケットに
分解し、メモリコントローラ116を用いてDRAM114内のバッファに入力
信号を記憶する。以下により詳細に説明するが、本発明の原理によるビデオデコ
ーダ104は、DRAM114内のバッファに記憶されたビデオデータと画像制
御情報を検索し、(DRAM114に頻繁且つ繰り返しアクセスすることにより
)そのビデオデータと制御情報を復号化し、その後、復号化されたビデオ情報を
出力エンコーダ108に供給して、バス120を介してモニタに出力されるよう
に機能する。出力エンコーダ108は、好ましくは、NTSCの場合、30fp
sで720×480画素の画像サイズを供給し、PALの場合、25fpsで7
20×576画素を供給するNTSC/PALエンコーダである。オーディオデ
コーダ106は、DRAM114からオーディオ情報を検索し、そのオーディオ
情報を出力するために復号化し、出力するためのオーディオ情報をバス122を
介してスピーカに供給する。また、ASIC100は、ライン124を介してホ
ストマイクロコントローラとのインターフェースを行い、ASIC100の動作
の監視及び制御をホストコンピュータに行わせるホストインターフェース110
を備えている。
これらの機能ユニットには、好ましくはデジタル符号化されたビデオ/オーディ
オ入力信号をライン118にて最大で72Mbpsのデータレートで受信するプ
ログラマブル入力デマルチプレクサ102が含まれる。デジタル符号化されたビ
デオ/オーディオ信号は、パケットデータの構造を識別するための所定のビット
ストリームシンタックスを有する「パケット化エレメンタリストリーム」(PE
Sストリーム)として一般に知られているパケット化データのシリアルビットス
トリームである。デマルチプレクサ102は、供給されるデジタル符号化された
信号のパージングを行って、ビデオ、オーディオ、その他のデータのパケットに
分解し、メモリコントローラ116を用いてDRAM114内のバッファに入力
信号を記憶する。以下により詳細に説明するが、本発明の原理によるビデオデコ
ーダ104は、DRAM114内のバッファに記憶されたビデオデータと画像制
御情報を検索し、(DRAM114に頻繁且つ繰り返しアクセスすることにより
)そのビデオデータと制御情報を復号化し、その後、復号化されたビデオ情報を
出力エンコーダ108に供給して、バス120を介してモニタに出力されるよう
に機能する。出力エンコーダ108は、好ましくは、NTSCの場合、30fp
sで720×480画素の画像サイズを供給し、PALの場合、25fpsで7
20×576画素を供給するNTSC/PALエンコーダである。オーディオデ
コーダ106は、DRAM114からオーディオ情報を検索し、そのオーディオ
情報を出力するために復号化し、出力するためのオーディオ情報をバス122を
介してスピーカに供給する。また、ASIC100は、ライン124を介してホ
ストマイクロコントローラとのインターフェースを行い、ASIC100の動作
の監視及び制御をホストコンピュータに行わせるホストインターフェース110
を備えている。
【0022】 上述の機能ユニット以外にも、ビデオデコーダ104により復号化されるメイ
ンビデオに伴うサブタイトルやその他の情報を含むサブピクチャビデオ情報を復
号化する、さらに1以上のビデオ復号化ユニットを備えてもよい。さらに、Rバ
ス126及びGバス128に接続されたOSD部により、ASIC100内で画
面表示を生成してもよい。画面表示は、ホストCPUの動作、及び/又は、AS
IC100が使用されている装置の再生又は受信状態に対するフィードバックを
与えるように、ホストCPUから受信したコマンドに応じて生成することができ
る。
ンビデオに伴うサブタイトルやその他の情報を含むサブピクチャビデオ情報を復
号化する、さらに1以上のビデオ復号化ユニットを備えてもよい。さらに、Rバ
ス126及びGバス128に接続されたOSD部により、ASIC100内で画
面表示を生成してもよい。画面表示は、ホストCPUの動作、及び/又は、AS
IC100が使用されている装置の再生又は受信状態に対するフィードバックを
与えるように、ホストCPUから受信したコマンドに応じて生成することができ
る。
【0023】 特定用途向けIC100の制御は、ASIC100上の他の各機能ユニットの
動作の制御及び監視を行う縮小命令セット中央処理装置(RISC CPU)1
12により行われる。RISC CPU112は、インストラクションメモリ1
30に記憶されている16ビットのインストラクションに応じる。インストラク
ションメモリ130は、ASIC100の比較的簡単なプログラムに適した40
96個の16ビットインストラクションを保持している。ASIC100により
実行される複雑なプログラムについては、DRAM114内のより大きなインス
トラクションバッファからプログラムメモリ130に対して、4096個のイン
ストラクションの「ページ」のスワップイン、スワップアウトを行えばよい。
動作の制御及び監視を行う縮小命令セット中央処理装置(RISC CPU)1
12により行われる。RISC CPU112は、インストラクションメモリ1
30に記憶されている16ビットのインストラクションに応じる。インストラク
ションメモリ130は、ASIC100の比較的簡単なプログラムに適した40
96個の16ビットインストラクションを保持している。ASIC100により
実行される複雑なプログラムについては、DRAM114内のより大きなインス
トラクションバッファからプログラムメモリ130に対して、4096個のイン
ストラクションの「ページ」のスワップイン、スワップアウトを行えばよい。
【0024】 Fig.1に示すように、RISC CPU112は、Rバス126及びGバ
ス128として知られる2つのメインバスを介してASIC100内の各機能ユ
ニットとインタラクションを行う。具体的には、各機能ユニットは、メモリコン
トローラ116に対して、そしてDRAM114に対してデータの検索及び供給
を行うための64ビットGバス128に接続されている。さらに、Gバス128
を介してある機能ユニットから他の機能ユニットに各ブロックのデータを転送し
てもよい。
ス128として知られる2つのメインバスを介してASIC100内の各機能ユ
ニットとインタラクションを行う。具体的には、各機能ユニットは、メモリコン
トローラ116に対して、そしてDRAM114に対してデータの検索及び供給
を行うための64ビットGバス128に接続されている。さらに、Gバス128
を介してある機能ユニットから他の機能ユニットに各ブロックのデータを転送し
てもよい。
【0025】 種々のコマンドの他、メモリアクセス又は転送の要求が、Rバス126を介し
てある機能ユニットから他の機能ユニットに送られる。Rバス126は、メモリ
アクセスを頻繁に行う機能ユニットにより使用される1以上の32ビットバス、
あるいは、幾つかの機能ユニットにより共有される単一の8ビット時間多重化バ
スにより構成されてもよい。Rバスコントローラ132は、Rバス126の使用
要求を受信し、必要に応じてこれらの要求を調整し、要求の優先順位が最も高い
機能ユニットに対してRバスへのアクセスを供給する。
てある機能ユニットから他の機能ユニットに送られる。Rバス126は、メモリ
アクセスを頻繁に行う機能ユニットにより使用される1以上の32ビットバス、
あるいは、幾つかの機能ユニットにより共有される単一の8ビット時間多重化バ
スにより構成されてもよい。Rバスコントローラ132は、Rバス126の使用
要求を受信し、必要に応じてこれらの要求を調整し、要求の優先順位が最も高い
機能ユニットに対してRバスへのアクセスを供給する。
【0026】 メモリアクセスが要求されると、要求した機能ユニット102〜112は、R
バス126を介してメモりコントローラ116に仮想アドレスを供給する。メモ
リアクセス要求は、単一のメモリ位置の供給を要求するものであってもよく、ま
た、要求に応じてアクセスされる多数のメモリ位置の識別を含むものであっても
よい。メモリコントローラ116は、要求に応じてDRAM114における識別
位置へのアクセスを管理することにより要求に応答する。多数のメモリアクセス
要求が未処理である場合、メモリコントローラ116は、その未処理の要求を調
整して、要求の優先順位が最も高い機能ユニットに対してアクセスを許可する。
要求に応じてのメモリコントローラ116の動作の詳細については、1997年
4月30日出願の米国特許出願第08/846590号(U.S. Patent applicat
ion Serial No. 08/846,590)「デジタルビデオのためのメモリアドレス生成(M
EMORY ADDRESS GENERATION FOR DIGITAL VIDEO)」に記載されており、本願では
、これを全体として参照することにより組み込むものとする。さらに、RISC CPU112の動作とその縮小命令セットの詳細については、1997年5月
30日出願の米国特許出願第08/865749号(U.S. Patent application
Serial No. 08/865,749)「デジタルオーディオ復号専用処理装置(SPECIAL PUR
POSE PROCESSOR FOR DIGITAL AUDIO VIDEO DECODING)」に記載されており、本
願では、これを全体として参照することにより組み込むものとする。
バス126を介してメモりコントローラ116に仮想アドレスを供給する。メモ
リアクセス要求は、単一のメモリ位置の供給を要求するものであってもよく、ま
た、要求に応じてアクセスされる多数のメモリ位置の識別を含むものであっても
よい。メモリコントローラ116は、要求に応じてDRAM114における識別
位置へのアクセスを管理することにより要求に応答する。多数のメモリアクセス
要求が未処理である場合、メモリコントローラ116は、その未処理の要求を調
整して、要求の優先順位が最も高い機能ユニットに対してアクセスを許可する。
要求に応じてのメモリコントローラ116の動作の詳細については、1997年
4月30日出願の米国特許出願第08/846590号(U.S. Patent applicat
ion Serial No. 08/846,590)「デジタルビデオのためのメモリアドレス生成(M
EMORY ADDRESS GENERATION FOR DIGITAL VIDEO)」に記載されており、本願では
、これを全体として参照することにより組み込むものとする。さらに、RISC CPU112の動作とその縮小命令セットの詳細については、1997年5月
30日出願の米国特許出願第08/865749号(U.S. Patent application
Serial No. 08/865,749)「デジタルオーディオ復号専用処理装置(SPECIAL PUR
POSE PROCESSOR FOR DIGITAL AUDIO VIDEO DECODING)」に記載されており、本
願では、これを全体として参照することにより組み込むものとする。
【0027】 さらに、Rバス126を介して、種々の機能ユニットの状態に関するデータが
使用可能である。機能ユニットは、Rバス126を介して識別された特定アドレ
スにてアクセスすることができるステータス情報を供給する。従って、例えば、
ビデオデコーダ104からステータスワードにアクセスするには、DEC_VALUEア
ドレスを識別するアクセス要求をRバスコントローラ132に供給する。これに
応じて、Rバスコントローラ132は、要求している機能ユニットに対してビデ
オデコーダ104のステータスワードを供給させる。
使用可能である。機能ユニットは、Rバス126を介して識別された特定アドレ
スにてアクセスすることができるステータス情報を供給する。従って、例えば、
ビデオデコーダ104からステータスワードにアクセスするには、DEC_VALUEア
ドレスを識別するアクセス要求をRバスコントローラ132に供給する。これに
応じて、Rバスコントローラ132は、要求している機能ユニットに対してビデ
オデコーダ104のステータスワードを供給させる。
【0028】 機能ブロックにはRバス126を介してコマンドも送られる。ある機能ブロッ
クにコマンドを供給するには、Rバスを介してその機能ユニットの特定アドレス
にコマンドを送る。従って、例えば、ビデオデコーダ104にコマンドを供給す
るには、VLD_CMDアドレスを識別するアクセス要求をRバスコントローラ132
に供給する。これに応じて、Rバスコントローラ132は、要求している機能ユ
ニットがRバス126にコマンドを供給することを可能にすると共に、ビデオデ
コーダ104のコマンドバッファ内にコマンドを受信させる。
クにコマンドを供給するには、Rバスを介してその機能ユニットの特定アドレス
にコマンドを送る。従って、例えば、ビデオデコーダ104にコマンドを供給す
るには、VLD_CMDアドレスを識別するアクセス要求をRバスコントローラ132
に供給する。これに応じて、Rバスコントローラ132は、要求している機能ユ
ニットがRバス126にコマンドを供給することを可能にすると共に、ビデオデ
コーダ104のコマンドバッファ内にコマンドを受信させる。
【0029】 ビデオデコーダ104は本発明の主要部であり、その動作や特徴についてはF
ig.2〜6Gに明確に示す。本発明の原理によれば、ビデオデコーダ104は
、特にMPEG−1及びMP@ML(Main Profile @ Main Level)MPEG−
2シンタックス準拠のデジタル符号化されたビデオ信号のビデオ復号化を行うよ
うに構成されている。本願において全体として参照することにより組み込まれた
ISO/IEC13182−2:1995(E)に記載されているように、MP
EG−2シンタックスは、特に、シーケンスレイヤ、グループオブピクチャレイ
ヤ、ピクチャレイヤ、スライスレイヤ、マクロブロックレイヤ、ブロックレイヤ
という6レイヤの画像シーケンスを表すビデオデータ及び制御情報の圧縮ビット
ストリームを定義する。符号化されたビットストリームにおける各レイヤには、
そのレイヤを識別すると共に、ビデオデコーダ104によりパージング及び復号
化を行う必要がある固定長データ値又は可変長ハフマン符号化データのいずれか
あるいは両方を与えるユニークスタートコードが含まれる。スライスレイヤより
上の画像制御情報の上位レイヤパージングは、RISC CPU112により行
われる。このようにして、RISC CPU112は、ビデオビットストリーム
において送信された画像シーケンスの圧縮解除、再構成、プレゼンテーションを
制御するための十分な情報を圧縮ビデオビットストリームから得る。
ig.2〜6Gに明確に示す。本発明の原理によれば、ビデオデコーダ104は
、特にMPEG−1及びMP@ML(Main Profile @ Main Level)MPEG−
2シンタックス準拠のデジタル符号化されたビデオ信号のビデオ復号化を行うよ
うに構成されている。本願において全体として参照することにより組み込まれた
ISO/IEC13182−2:1995(E)に記載されているように、MP
EG−2シンタックスは、特に、シーケンスレイヤ、グループオブピクチャレイ
ヤ、ピクチャレイヤ、スライスレイヤ、マクロブロックレイヤ、ブロックレイヤ
という6レイヤの画像シーケンスを表すビデオデータ及び制御情報の圧縮ビット
ストリームを定義する。符号化されたビットストリームにおける各レイヤには、
そのレイヤを識別すると共に、ビデオデコーダ104によりパージング及び復号
化を行う必要がある固定長データ値又は可変長ハフマン符号化データのいずれか
あるいは両方を与えるユニークスタートコードが含まれる。スライスレイヤより
上の画像制御情報の上位レイヤパージングは、RISC CPU112により行
われる。このようにして、RISC CPU112は、ビデオビットストリーム
において送信された画像シーケンスの圧縮解除、再構成、プレゼンテーションを
制御するための十分な情報を圧縮ビデオビットストリームから得る。
【0030】 次に、Fig.2及び2Aを参照して、ビデオデコーダ104のブロック図を
詳細に示す。以下に詳細に説明するが、ビデオデコーダ104の主な機能は、個
々のスライスのマクロブロック及びブロックレイヤを復号化するための、1サイ
クル当たり1順序シンボルのスライスパージングエンジンである。スライスエン
ドに達すると、RISC CPU112に割り込みが送られて、種々のメモリチ
ェックを行うと共に次のスライスの処理を命令する。ビデオデコーダ104は主
として、ライン138を介してVLDコマンド復号化/実行ユニット136との
インターフェースを行うマイクロシーケンサ134を通して制御される。マイク
ロシーケンサ134は、256×16インストラクションROM140とインス
トラクション復号化/制御ユニット142を備えている(Fig.2A参照)。
各スライス毎のマクロブロック及びブロックレイヤの復号化プロセスにおいて、
マイクロシーケンサ134は、VLDコマンド復号化/実行ユニット136にコ
マンドを送って可変長復号化を行うか、あるいは、インストラクションセットに
より与えられるプログラムフローを制御するようにプログラムされている。さら
に、VLDコマンド復号化/実行ユニット136は、Rバスインターフェース1
44、ライン146、マルチプレクサ148を介してRISC CPU112か
らインストラクションを直接受信してもよい。以下に詳細に説明するが、RIS
C CPU112、マイクロシーケンサ134、VLDコマンド復号化/実行ユ
ニット136は、VLD構造データパスの一部を構成する一連のVLDコマンド
インストラクションレジスタ(VCIレジスタ)150のコンテンツの読み出し
及び書き込みを行うことができる。
詳細に示す。以下に詳細に説明するが、ビデオデコーダ104の主な機能は、個
々のスライスのマクロブロック及びブロックレイヤを復号化するための、1サイ
クル当たり1順序シンボルのスライスパージングエンジンである。スライスエン
ドに達すると、RISC CPU112に割り込みが送られて、種々のメモリチ
ェックを行うと共に次のスライスの処理を命令する。ビデオデコーダ104は主
として、ライン138を介してVLDコマンド復号化/実行ユニット136との
インターフェースを行うマイクロシーケンサ134を通して制御される。マイク
ロシーケンサ134は、256×16インストラクションROM140とインス
トラクション復号化/制御ユニット142を備えている(Fig.2A参照)。
各スライス毎のマクロブロック及びブロックレイヤの復号化プロセスにおいて、
マイクロシーケンサ134は、VLDコマンド復号化/実行ユニット136にコ
マンドを送って可変長復号化を行うか、あるいは、インストラクションセットに
より与えられるプログラムフローを制御するようにプログラムされている。さら
に、VLDコマンド復号化/実行ユニット136は、Rバスインターフェース1
44、ライン146、マルチプレクサ148を介してRISC CPU112か
らインストラクションを直接受信してもよい。以下に詳細に説明するが、RIS
C CPU112、マイクロシーケンサ134、VLDコマンド復号化/実行ユ
ニット136は、VLD構造データパスの一部を構成する一連のVLDコマンド
インストラクションレジスタ(VCIレジスタ)150のコンテンツの読み出し
及び書き込みを行うことができる。
【0031】 上述のように、符号化されたビデオデータは、まずDRAM114に記憶され
る。符号化されたビデオデータは、Gバス128を介してビデオデコーダ104
からメモリコントローラ116までの各ユニットに使用可能とされる。ビデオデ
コーダ104は、16×64チャネルバッファFIFO152としてのGバスを
備え、このバッファFIFO152は、復号化プロセス中にそれがバッファFI
FO152が空になったり溢れたりしないように十分な量の符号化されたビデオ
ビットストリームを記憶する。
る。符号化されたビデオデータは、Gバス128を介してビデオデコーダ104
からメモリコントローラ116までの各ユニットに使用可能とされる。ビデオデ
コーダ104は、16×64チャネルバッファFIFO152としてのGバスを
備え、このバッファFIFO152は、復号化プロセス中にそれがバッファFI
FO152が空になったり溢れたりしないように十分な量の符号化されたビデオ
ビットストリームを記憶する。
【0032】 ビデオデコーダ104の主な機能の一つとして、ビデオビットストリームにお
ける可変長符号化されたデータを復号化することが挙げられる。可変長データは
、MPEG−1及びMPEG−2規格で定義されるVLCテーブルに従ってハフ
マン符号化される。本発明のVLDはMPEG VLCテーブルのうちの少なく
とも11個のテーブルをサポートする。すなわち、macroblock_type_I、macrobl
ock_type_P、macroblock_type_B、macroblock_type_D、macroblock_address_inc
rement、dct_dc_size_luma、dct_dc_size_chrominance、ac_table(テーブル0
及びテーブル1)、coded_block_pattern、motion_code、dmvector である。
ける可変長符号化されたデータを復号化することが挙げられる。可変長データは
、MPEG−1及びMPEG−2規格で定義されるVLCテーブルに従ってハフ
マン符号化される。本発明のVLDはMPEG VLCテーブルのうちの少なく
とも11個のテーブルをサポートする。すなわち、macroblock_type_I、macrobl
ock_type_P、macroblock_type_B、macroblock_type_D、macroblock_address_inc
rement、dct_dc_size_luma、dct_dc_size_chrominance、ac_table(テーブル0
及びテーブル1)、coded_block_pattern、motion_code、dmvector である。
【0033】 Fig.2に明確に示すように、チャネルバッファFIFO152は、チャネ
ルバッファFIFO152から各64ビットバスを介して一対のA、Bレジスタ
156A、156Bのそれぞれに64ビットのビデオデータを供給する。本発明
によれば、ポインタアドレス+31までのポインタアドレスからのビットをVL
Dコマンド復号化/実行ユニット136に対して認識可能にするため、ロテータ
/バレルシフタ158とポインタレジスタ160が設けられている。これら32
ビットは、ロテータ/バレルシフタデータ162としてVLDコマンド復号化/
実行ユニット136に供給される。
ルバッファFIFO152から各64ビットバスを介して一対のA、Bレジスタ
156A、156Bのそれぞれに64ビットのビデオデータを供給する。本発明
によれば、ポインタアドレス+31までのポインタアドレスからのビットをVL
Dコマンド復号化/実行ユニット136に対して認識可能にするため、ロテータ
/バレルシフタ158とポインタレジスタ160が設けられている。これら32
ビットは、ロテータ/バレルシフタデータ162としてVLDコマンド復号化/
実行ユニット136に供給される。
【0034】 Fig.2及び3を参照して、A、Bレジスタ156A、156Bは、128
ビットリングに接続され、Aレジスタのビット63からBレジスタのビット64
へのポインタの境界切り替えと、Bレジスタのビット127からAレジスタのビ
ット0への境界切り替えを可能にする。ポインタがAレジスタからBレジスタへ
切り替わるとき、Aレジスタのコンテンツは新たなデータによりリフレッシュさ
れる。同様に、ポインタがBレジスタからAレジスタへ切り替わるとき、Bレジ
スタのコンテンツは新たなデータによりリフレッシュされる。リングを回るポイ
ンタの動きを可能にすると共に128ビットのそれぞれをポインタに対してアク
セス可能にするため、Fig.3に示すバレルシフタ164は、2のべき乗分だ
けデータの左方向への種々のインクリメント的シフトを行うか、全くシフトを行
わない7つのセレクタステージを有している。第1ステージ166は、「ステー
ジ64/0」と称するもので、128ビットのそれぞれを左方向に64ビットシ
フトさせるか、全くシフトさせない128個のセレクタ(D0〜D127)を有
している。第2ステージ168は、「ステージ32/0」と称するもので、左方
向へ32ビット分のシフトを行うか、全くシフトを行わない95個のセレクタを
有している。第3ステージ170は、「ステージ16/0」と称するもので、左
方向へ16ビット分のシフトを行うか、全くシフトを行わない63個のセレクタ
を有している。第4ステージ172は、「ステージ8/0」と称するもので、左
方向へ8ビット分のシフトを行うか、全くシフトを行わない47個のセレクタを
有している。第5ステージ174は、「ステージ4/0」と称するもので、左方
向へ4ビット分のシフトを行うか、全くシフトを行わない39個のセレクタを有
している。第6ステージ176は、「ステージ2/0」と称するもので、左方向
へ2ビット分のシフトを行うか、全くシフトを行わない35個のセレクタを有し
ている。第7ステージ178は、「ステージ1/0」と称するもので、左方向へ
1ビット分のシフトを行うか、全くシフトを行わない33個のセレクタを有して
いる。
ビットリングに接続され、Aレジスタのビット63からBレジスタのビット64
へのポインタの境界切り替えと、Bレジスタのビット127からAレジスタのビ
ット0への境界切り替えを可能にする。ポインタがAレジスタからBレジスタへ
切り替わるとき、Aレジスタのコンテンツは新たなデータによりリフレッシュさ
れる。同様に、ポインタがBレジスタからAレジスタへ切り替わるとき、Bレジ
スタのコンテンツは新たなデータによりリフレッシュされる。リングを回るポイ
ンタの動きを可能にすると共に128ビットのそれぞれをポインタに対してアク
セス可能にするため、Fig.3に示すバレルシフタ164は、2のべき乗分だ
けデータの左方向への種々のインクリメント的シフトを行うか、全くシフトを行
わない7つのセレクタステージを有している。第1ステージ166は、「ステー
ジ64/0」と称するもので、128ビットのそれぞれを左方向に64ビットシ
フトさせるか、全くシフトさせない128個のセレクタ(D0〜D127)を有
している。第2ステージ168は、「ステージ32/0」と称するもので、左方
向へ32ビット分のシフトを行うか、全くシフトを行わない95個のセレクタを
有している。第3ステージ170は、「ステージ16/0」と称するもので、左
方向へ16ビット分のシフトを行うか、全くシフトを行わない63個のセレクタ
を有している。第4ステージ172は、「ステージ8/0」と称するもので、左
方向へ8ビット分のシフトを行うか、全くシフトを行わない47個のセレクタを
有している。第5ステージ174は、「ステージ4/0」と称するもので、左方
向へ4ビット分のシフトを行うか、全くシフトを行わない39個のセレクタを有
している。第6ステージ176は、「ステージ2/0」と称するもので、左方向
へ2ビット分のシフトを行うか、全くシフトを行わない35個のセレクタを有し
ている。第7ステージ178は、「ステージ1/0」と称するもので、左方向へ
1ビット分のシフトを行うか、全くシフトを行わない33個のセレクタを有して
いる。
【0035】 バレルシフタ164の構造により、A、Bレジスタ156A、156Bの12
8ビットのうちいずれか32ビットをロテータ/バレルシフタデータ162とし
てVLDコマンド復号化/実行ユニット136に対して使用可能とすることがで
きる。各ステージ166〜178では、左方向へのシフトを矢印180で示し、
シフトなしを矢印182で示している。バレルシフタ164に関して用いている
ように、「セレクタ」という用語が、先に詳細に説明した左シフト又はシフトな
しの動作を行ういかなる回路をも意味することは、当該分野の技術者にとっては
理解できるであろう。本発明によるバレルシフタ164の動作では、Fig.3
に仮想的な三角形182に示すように、種々のセレクタをステージ168〜17
8の幾つかから除くことができる。バレルシフタ164を対称的な長方形ではな
く台形に切ることにより、不要なセレクタを除去して、コストとハードウェアの
節約ができることがわかる。
8ビットのうちいずれか32ビットをロテータ/バレルシフタデータ162とし
てVLDコマンド復号化/実行ユニット136に対して使用可能とすることがで
きる。各ステージ166〜178では、左方向へのシフトを矢印180で示し、
シフトなしを矢印182で示している。バレルシフタ164に関して用いている
ように、「セレクタ」という用語が、先に詳細に説明した左シフト又はシフトな
しの動作を行ういかなる回路をも意味することは、当該分野の技術者にとっては
理解できるであろう。本発明によるバレルシフタ164の動作では、Fig.3
に仮想的な三角形182に示すように、種々のセレクタをステージ168〜17
8の幾つかから除くことができる。バレルシフタ164を対称的な長方形ではな
く台形に切ることにより、不要なセレクタを除去して、コストとハードウェアの
節約ができることがわかる。
【0036】 Fig.2及び5に明確に示すように、ロテータ/バレルシフタデータ162
の32ビットは、MPEG規格の可変長コード(VLC)テーブルを組み込んだ
可変長テーブルデコーダ184に対しても使用可能とされる。本発明によれば、
VLDコマンド復号化/実行ユニット136が11個のMPEG VLCテーブ
ルのそれぞれにアクセスすることを可能にする新規な方式が提供される。Fig
.4の"macroblock_address_increment"についてのVLCテーブルを例として、
可変コードにおける最初の「1」に至る「0」の数を定めるプレフィクスパター
ンと、すべてのユニークプレフィクスパターンからなるセットを発生させるのに
必要なエキストラロジックが各MPEG VLCテーブルにおいて識別されてい
る。
の32ビットは、MPEG規格の可変長コード(VLC)テーブルを組み込んだ
可変長テーブルデコーダ184に対しても使用可能とされる。本発明によれば、
VLDコマンド復号化/実行ユニット136が11個のMPEG VLCテーブ
ルのそれぞれにアクセスすることを可能にする新規な方式が提供される。Fig
.4の"macroblock_address_increment"についてのVLCテーブルを例として、
可変コードにおける最初の「1」に至る「0」の数を定めるプレフィクスパター
ンと、すべてのユニークプレフィクスパターンからなるセットを発生させるのに
必要なエキストラロジックが各MPEG VLCテーブルにおいて識別されてい
る。
【0037】 例えば、Fig.4の"macroblock_address_increment"テーブルでは、各可変
長コードが、K0、K1、K2、K3、K4_0、K4_1、K5_1、K5_ 01 、K5_001、K5_000、K6と定義されたプレフィクスパターンを
有している。K0は、最初の「1」の前に「0」がないことを示し、K1は、最
初の「1」の前に「0」が1つであることを示し、以下、K2、K3、K6につ
いても同様である。可変長コードの幾つかについては、すべてのユニークプレフ
ィクスパターンのセットを発生させるのに、K4_0、K4_1、K5_1、K 5_01 、K5_001、K5_000のように「1」の前に「0」が続いてい
るパターンの後にエキストラロジックが必要である。このように、各サブテーブ
ルがユニークプレフィクスパターンのいずれかに対応するように、サブテーブル
のセットをMPEG VLCテーブルのそれぞれにおいてプレフィクスパターン
により定義してもよい。さらに、各可変長コードは、可変長コードにおけるビッ
ト数を定めるコード長を有している。インクリメント値は、ピクチャの左端に対
する、あるスライスにおける最初のマクロブロックの水平位置、あるいは、最後
に送信されたマクロブロックからの差分インクリメント値を定義する"macrobloc
k_address_increment"の各可変長コードに関連している。この例から、当該分野
の技術者にとっては、他のMPEG VLCテーブルについてのプレフィクスパ
ターンとエキストラロジックがどのように定義されるかが容易にわかるであろう
。
長コードが、K0、K1、K2、K3、K4_0、K4_1、K5_1、K5_ 01 、K5_001、K5_000、K6と定義されたプレフィクスパターンを
有している。K0は、最初の「1」の前に「0」がないことを示し、K1は、最
初の「1」の前に「0」が1つであることを示し、以下、K2、K3、K6につ
いても同様である。可変長コードの幾つかについては、すべてのユニークプレフ
ィクスパターンのセットを発生させるのに、K4_0、K4_1、K5_1、K 5_01 、K5_001、K5_000のように「1」の前に「0」が続いてい
るパターンの後にエキストラロジックが必要である。このように、各サブテーブ
ルがユニークプレフィクスパターンのいずれかに対応するように、サブテーブル
のセットをMPEG VLCテーブルのそれぞれにおいてプレフィクスパターン
により定義してもよい。さらに、各可変長コードは、可変長コードにおけるビッ
ト数を定めるコード長を有している。インクリメント値は、ピクチャの左端に対
する、あるスライスにおける最初のマクロブロックの水平位置、あるいは、最後
に送信されたマクロブロックからの差分インクリメント値を定義する"macrobloc
k_address_increment"の各可変長コードに関連している。この例から、当該分野
の技術者にとっては、他のMPEG VLCテーブルについてのプレフィクスパ
ターンとエキストラロジックがどのように定義されるかが容易にわかるであろう
。
【0038】 次にFig.5に示す可変長テーブルデコーダ186を参照して、可変長復号
化プロセスにおいて、ロテータ/バレルシフタデータ162の32ビットがパタ
ーンマッチロジック及びMUXコントロール188に送られ、ロテータ/バレル
シフタデータ162におけるユニークプレフィクスパターンを識別する。識別さ
れたプレフィクスパターンマッチ、例えばK0、K1等は、11個のMPEG
VLCテーブルのそれぞれにおける各MUX192の出力を制御するための信号
[MUX CNTL」190として使用される。従って、パターンマッチロジッ
ク及びMUXコントロール188により決定されたプレフィクスパターンマッチ
は、Fig.5に示すような"macroblock_address_increment"や"motion_code"
のVLCテーブルを含む11個のMPEG VLCテーブルのすべての間で共用
され、それぞれのMUX192の出力を制御する。
化プロセスにおいて、ロテータ/バレルシフタデータ162の32ビットがパタ
ーンマッチロジック及びMUXコントロール188に送られ、ロテータ/バレル
シフタデータ162におけるユニークプレフィクスパターンを識別する。識別さ
れたプレフィクスパターンマッチ、例えばK0、K1等は、11個のMPEG
VLCテーブルのそれぞれにおける各MUX192の出力を制御するための信号
[MUX CNTL」190として使用される。従って、パターンマッチロジッ
ク及びMUXコントロール188により決定されたプレフィクスパターンマッチ
は、Fig.5に示すような"macroblock_address_increment"や"motion_code"
のVLCテーブルを含む11個のMPEG VLCテーブルのすべての間で共用
され、それぞれのMUX192の出力を制御する。
【0039】 以下に詳細に説明するが、ある時点で復号化されるVLCテーブルは、VLD
コマンド復号化/実行ユニット136により与えられる「VLCテーブル選択」
信号194により決定される。各MUX192に送られるMUX CNTL信号
190を定義するためにプレフィクスパターンマッチをパターンマッチロジック
及びMUXコントロール188により識別するのと同時に、バス196で示すよ
うに、ロテータ/バレルシフタデータ162の32ビットにおける先頭のパター
ンマッチ後のビットが、11個のMPEG VLCテーブルのそれぞれにおける
サブテーブルのすべてに同時に送られる。従って、"macroblock_address_increm
ent"のVLCテーブルが「VLCテーブル選択」信号194により選択され、プ
レフィクスパターンマッチがK5_1であり、バス196を介してサブテーブル
K5_1に「1」が適用された場合、MUX192は、(インクリメント値を示
す)復号値14と、(可変長コードにおけるビット数を示す)コード長8と、(
コードの有効性を示す)有効ステータスビットをVLDコマンド復号化/実行ユ
ニット136に出力する。従って、復号化プロセスの終了後、可変長テーブルデ
コーダ186は、復号化値198と有効コードステータスビット200からなる
2つの信号をVLDコマンド復号化/実行ユニット136に供給する。また、可
変長テーブルデコーダ186は、ライン204を介してポインタレジスタ160
にコード長信号202を供給して、コード長によりポインタレジスタをインクリ
メントする。可変長テーブルデコーダ186は、RAM又はROMであってもよ
いが、好ましくは配線による最適化ランダムロジックである。
コマンド復号化/実行ユニット136により与えられる「VLCテーブル選択」
信号194により決定される。各MUX192に送られるMUX CNTL信号
190を定義するためにプレフィクスパターンマッチをパターンマッチロジック
及びMUXコントロール188により識別するのと同時に、バス196で示すよ
うに、ロテータ/バレルシフタデータ162の32ビットにおける先頭のパター
ンマッチ後のビットが、11個のMPEG VLCテーブルのそれぞれにおける
サブテーブルのすべてに同時に送られる。従って、"macroblock_address_increm
ent"のVLCテーブルが「VLCテーブル選択」信号194により選択され、プ
レフィクスパターンマッチがK5_1であり、バス196を介してサブテーブル
K5_1に「1」が適用された場合、MUX192は、(インクリメント値を示
す)復号値14と、(可変長コードにおけるビット数を示す)コード長8と、(
コードの有効性を示す)有効ステータスビットをVLDコマンド復号化/実行ユ
ニット136に出力する。従って、復号化プロセスの終了後、可変長テーブルデ
コーダ186は、復号化値198と有効コードステータスビット200からなる
2つの信号をVLDコマンド復号化/実行ユニット136に供給する。また、可
変長テーブルデコーダ186は、ライン204を介してポインタレジスタ160
にコード長信号202を供給して、コード長によりポインタレジスタをインクリ
メントする。可変長テーブルデコーダ186は、RAM又はROMであってもよ
いが、好ましくは配線による最適化ランダムロジックである。
【0040】 次にFig.2及び3を参照し、可変長テーブルデコーダ186からのコード
長信号202を使用して、ポインタレジスタ160をインクリメントする。コー
ド長信号202は、バレルシフタ164によりバレルシフタにおける必要なシフ
トパターンを制御するのにも使用される。例えば、コード長信号202の値が1
3である場合、バレルシフタ164のステージ172(8/0)、174(4/
0)、178(1/0)が左方向に13ビットのシフトを生じることが可能とな
り、他のステージはシフトがない。バレルシフタ164によりシフト処理がおこ
なれた後、VLDコマンド復号化/実行ユニット136と可変長テーブルデコー
ダ186に対して新たなセットのロテータ/バレルシフタデータ162が認識可
能とされる。本発明の可変長テーブルデコーダ186とバレルシフタ164は、
MPEG可変長コードの効率的な復号化を行うと共にVLCテーブルのメモリ要
件を低減する。
長信号202を使用して、ポインタレジスタ160をインクリメントする。コー
ド長信号202は、バレルシフタ164によりバレルシフタにおける必要なシフ
トパターンを制御するのにも使用される。例えば、コード長信号202の値が1
3である場合、バレルシフタ164のステージ172(8/0)、174(4/
0)、178(1/0)が左方向に13ビットのシフトを生じることが可能とな
り、他のステージはシフトがない。バレルシフタ164によりシフト処理がおこ
なれた後、VLDコマンド復号化/実行ユニット136と可変長テーブルデコー
ダ186に対して新たなセットのロテータ/バレルシフタデータ162が認識可
能とされる。本発明の可変長テーブルデコーダ186とバレルシフタ164は、
MPEG可変長コードの効率的な復号化を行うと共にVLCテーブルのメモリ要
件を低減する。
【0041】 MPEG規格によれば、可変長符号化されたDCT係数は、Fig.2にシン
ボル<r、l>として示すようにランレングスと振幅レベルの対として復号化さ
れる。値「r」は、「l」により示される振幅レベルを有する係数の前のゼロ値
係数の数を表す。例えば、シンボル<5、2>は、係数値2の前にゼロが5つで
あることを示す。また、本発明によれば、ランレングスと振幅レベルの対が可変
長テーブルデコーダ186により復号化されると、ランレングスと振幅レベルの
対のシンボルは、VLDコマンド復号化/実行ユニット136から64×18ラ
ンレベルデコーダ/FIFO206に送られ、64×18ランレベルデコーダ/
FIFO206では、逆ジグザグ/逆量子化/逆DCT変換ユニット208で必
要となるまで、それらの対のシンボルを圧縮した対として記憶する。なお、圧縮
シンボルの数はDCT係数の数よりも少ないので、ランレベルデコーダ/FIF
O206は、先に復号化されたランレベルの対のランレベル復号化と同時に、ハ
フマン符号化された可変長対の復号化を行うことができる。
ボル<r、l>として示すようにランレングスと振幅レベルの対として復号化さ
れる。値「r」は、「l」により示される振幅レベルを有する係数の前のゼロ値
係数の数を表す。例えば、シンボル<5、2>は、係数値2の前にゼロが5つで
あることを示す。また、本発明によれば、ランレングスと振幅レベルの対が可変
長テーブルデコーダ186により復号化されると、ランレングスと振幅レベルの
対のシンボルは、VLDコマンド復号化/実行ユニット136から64×18ラ
ンレベルデコーダ/FIFO206に送られ、64×18ランレベルデコーダ/
FIFO206では、逆ジグザグ/逆量子化/逆DCT変換ユニット208で必
要となるまで、それらの対のシンボルを圧縮した対として記憶する。なお、圧縮
シンボルの数はDCT係数の数よりも少ないので、ランレベルデコーダ/FIF
O206は、先に復号化されたランレベルの対のランレベル復号化と同時に、ハ
フマン符号化された可変長対の復号化を行うことができる。
【0042】 また、Fig.2に示すように、復号化された動きベクトル「mv」と差分動
きベクトル「dmv」がVLDコマンド復号化/実行ユニット136から16×
13mv/dmvFIFO210に送られ、16×13mv/dmvFIFO2
10は、動き補償ユニット212で必要となるまでそれらを記憶する。本願では
、1997年12月30日出願の米国特許出第願09/001122号(U.S. P
atent Application Serial No. 09/001,122)「動き補償されたデジタルビデオ
復号及びこのためのバッファメモリアドレッシング(MOTION COMPENSATED DIGIT
AL VIDEO DECODING AND BUFFER MEMORY ADDRESSING THEREFOR)」を全体として
参照することにより組み込むが、これに詳細に記載されるように、復号化された
ビデオデータ値と動きベクトルは、動き補償ユニット212により組み合わせら
れて表示用の完全なI、P、Bフレームを形成する。VLDコマンド復号化/実
行ユニット136は、好ましくは動きベクトル、差分動きベクトル、マクロブロ
ックインクリメントアドレス、dc係数、ac係数の計算のためのステートマシ
ンを有している。
きベクトル「dmv」がVLDコマンド復号化/実行ユニット136から16×
13mv/dmvFIFO210に送られ、16×13mv/dmvFIFO2
10は、動き補償ユニット212で必要となるまでそれらを記憶する。本願では
、1997年12月30日出願の米国特許出第願09/001122号(U.S. P
atent Application Serial No. 09/001,122)「動き補償されたデジタルビデオ
復号及びこのためのバッファメモリアドレッシング(MOTION COMPENSATED DIGIT
AL VIDEO DECODING AND BUFFER MEMORY ADDRESSING THEREFOR)」を全体として
参照することにより組み込むが、これに詳細に記載されるように、復号化された
ビデオデータ値と動きベクトルは、動き補償ユニット212により組み合わせら
れて表示用の完全なI、P、Bフレームを形成する。VLDコマンド復号化/実
行ユニット136は、好ましくは動きベクトル、差分動きベクトル、マクロブロ
ックインクリメントアドレス、dc係数、ac係数の計算のためのステートマシ
ンを有している。
【0043】 Fig.2Aが、マイクロシーケンサ134とVLDコマンド復号化/実行ユ
ニット136との間の全体的なプログラムフローコントロールを示すの対して、
Fig.6A〜6Gは、ビデオデコーダ104のマイクロシーケンサ134によ
りサポートされるインストラクションセットを示す。特に、マイクロシーケンサ
のインストラクションセットは8つのインストラクション214a〜214gか
らなり、それぞれ3ビットのopコード216を有し、インストラクション21
4bは2つの異なるインストラクションを表す。Fig.6A〜6Gに示すイン
ストラクションのうち、インストラクション214bのインストラクションIC
MD及びCMDIのみが実行コマンドである。他の6つのインストラクション2
14a及び214c〜214gはすべて、以下に詳細に説明するが、フローコン
トロールインストラクションである。インストラクション214a〜214gの
ほとんどは、VCIレジスタ150において求めたデータからオフで動作する。
ニット136との間の全体的なプログラムフローコントロールを示すの対して、
Fig.6A〜6Gは、ビデオデコーダ104のマイクロシーケンサ134によ
りサポートされるインストラクションセットを示す。特に、マイクロシーケンサ
のインストラクションセットは8つのインストラクション214a〜214gか
らなり、それぞれ3ビットのopコード216を有し、インストラクション21
4bは2つの異なるインストラクションを表す。Fig.6A〜6Gに示すイン
ストラクションのうち、インストラクション214bのインストラクションIC
MD及びCMDIのみが実行コマンドである。他の6つのインストラクション2
14a及び214c〜214gはすべて、以下に詳細に説明するが、フローコン
トロールインストラクションである。インストラクション214a〜214gの
ほとんどは、VCIレジスタ150において求めたデータからオフで動作する。
【0044】 以下に示す表は、種々のVCIレジスタ150の記述を行うものである。表1
はVCIコントロールレジスタの記述を定義する。表2はマクロブロック及びブ
ロックレイヤレジスタの記述を定義する。表3は上位レイヤ復号化のためのピク
チャレイヤレジスタの記述を定義する。表3のレジスタはRISC CPU11
2により書かれている。表4はコントロール及びステータスレジスタの記述を定
義し、表5はプレディクタ及びステートマシンレジスタの記述を定義する。
はVCIコントロールレジスタの記述を定義する。表2はマクロブロック及びブ
ロックレイヤレジスタの記述を定義する。表3は上位レイヤ復号化のためのピク
チャレイヤレジスタの記述を定義する。表3のレジスタはRISC CPU11
2により書かれている。表4はコントロール及びステータスレジスタの記述を定
義し、表5はプレディクタ及びステートマシンレジスタの記述を定義する。
【0045】 表1:VCIコントロールレジスタの定義 名称 フィールド タイプ 記述 vci_addr [5:0] r/w VCI間接レジスタアドレス vci_data [15:0] r/w VCI間接レジスタアドレス
【0046】 VCIコントロールレジスタは、以下の表2〜5において定義されるVCI間
接レジスタにアクセスするのに使用される。RISC CPU112は、特定ア
ドレスのVCI間接レジスタのコンテンツの読み出し及び書き込みを行うように
VCI_addrレジスタをセットアップする。この読み出し及び書き込み動作
はVCI_dataレジスタにより行われる。
接レジスタにアクセスするのに使用される。RISC CPU112は、特定ア
ドレスのVCI間接レジスタのコンテンツの読み出し及び書き込みを行うように
VCI_addrレジスタをセットアップする。この読み出し及び書き込み動作
はVCI_dataレジスタにより行われる。
【0047】 表2:マクロブロックレベルのVCI間接レジスタの定義 名称 アドレス 幅 Dir 記述 vci_mba_x 0×00 7 r/w マクロブロックアドレスx次元 vci_mba_y 0×01 7 r/w マクロブロックアドレスy次元 vci_vld_out 0×02 16 r/w VLDの仮出力 vci_q_scale 0×03 5 r/w 量子化スケール情報 vci_cbp 0×04 8 r/w 符号化ブロックパターン
【0048】 表2:マクロブロックレベルのVCI間接レジスタの定義(続き) 名称 アドレス 幅 Dir 記述 vci_mtype 0×05 5 r/w マクロブロックタイプ vci_motype 0×06 3 r/w 復号化された動きのタイプ [0]mv_count 0:1ベクトル、1:2ベクトル [1]mv_format 0:フィールド、1:フレーム [2]dmv vci_dct_type 0×07 1 r/w dctタイプ 0:フレーム、1:フィールド vci_mvfsl 0×08 1 r/w 動き垂直フィールド選択1 reserved 0×09 1 リザーブ vci_temp_0 0×0a〜 r/w リザーブ 0×0f
【0049】 表3:ピクチャレベルレイヤのVCI間接レジスタの定義 名称 アドレス 幅 Dir 記述 vci_pic_init 0×10 26 r/w [25:24]:DC精度 −−>00:8ビット、01:9ビッ ト、10:10ビット、 −−>11:11ビット [23:20]:後方垂直fコード [19:16]:後方水平fコード [15:12]:前方垂直fコード [11:8]:前方水平fコード [7]:コンシールメント動きベクトル [6]:イントラvlcフォーマット [5]:frame_pred_frame_dct [4:2]:ピクチャ符号化タイプ (I,P,B,D) [1:0]:ピクチャストラクチャ (フィールド、フレーム) −−>[00]:リザーブ −−>[01]:トップフィールド −−>[10]:ボトムフィールド −−>[11]:フレーム vci_seq_init 0×11 10 r/w [10:4]:mb数×次元 [3]:0:レギュラー、 1:スペシャル−−blkタイプ [2]:0:mpeg2、1:mpeg1 [1:0]:クロマフォーマット −−>00:リザーブ、01:420、 10:422、 −−>11:444 vci_conceal 0×12 3 r/w コンシールメントカウント レジスタ vci_temp_1 0×13〜 r/w リザーブ 0×1f
【0050】 表4:コントロール及びステータスのVCI間接レジスタの定義 名称 アドレス 幅 Dir 記述 vci_cntl 0×20 2 r/w vciステートコントロールレジスタ [31:30]=00:ラン [31:30]=10:ホールト [31:30]=11:リセット vci_pc 0×21 8 r/w vciプログラムカウンタ vci_rom 0×22 16 r/w vci_rom出力ポート vci_dmvfifo_adr 0×23 3 r/w dmb_fifo読み出し/書き込みアド レス vci_dmvfifo 0×24 2 r/w dmv_fifoデータポート vci_pointer 0×25 7 r/w ロテータポインタ vci_dec_lped 0×26 12 r/w 輝度DC予測値。DClpredへの書き 込みは、DEC_modeレジスタにおけ るDC精度ビットにより示される定 数値へリセットする。 vci_dec_cpred 0×27 r/w クロマDC予測値。DEC_cpredへの 書き込みは、DEC_modeレジスタに おけるDC精度ビットにより示され る定数値にリセットする。 [23:12] V [11:10] U vci_temp_2 0×28〜 リザーブ 0×2f
【0051】 表5:プレディクタ及びステートマシンのVCI間接レジスタの定義 名称 アドレス 幅 Dir 記述 vci_mv_predfh0 0×30 13 r/w mvfs、動きベクトルプレディクタ 前方水平−ファースト vci_mv_predfv0 0×31 13 r/w mvfs、動きベクトルプレディクタ 前方垂直−ファースト vci_mv_predbh0 0×32 13 r/w mvfs、動きベクトルプレディクタ 後方垂直−ファースト vci_mv_predfh1 0×34 13 r/w mvfs、動きベクトルプレディクタ 前方水平−セカンド vci_mv_predfv1 0×35 13 r/w mvfs、動きベクトルプレディクタ 前方垂直−セカンド vci_mv_predbh1 0×36 13 r/w mvfs、動きベクトルプレディクタ 後方水平−セカンド vci_mv_predbv1 0×37 13 r/w mvfs、動きベクトルプレディクタ 後方垂直−セカンド vci_err_bits 0×38 10 r エラー条件 [9]motype_err [8]coef_err [7]rl_error [6]cbp_err [5]mv_err [4]mbi_err [3]mtype_err [2]get_ac_err [1]dctdcsz_chroma_err [0]dctdcsz_luma_err
【0052】 表5:プレディクタ及びステートマシンのVCI間接レジスタの定義(続き) 名称 アドレス 幅 Dir 記述 vci_stm 0×39 4 r ステートマシン: [14:12]vstate: motion vec STM [11:9]dc_cstate: dc STM [8:7]sc_state: start-code STM [6:3]ms_cstate: MB STM [2:0]lc_cstate: block STM vci_tmp_3 0×3a〜 0×3f
【0053】 表6は、Rバスインターフェース144を備えたVLDコントロールレジスタ
を定義する。
を定義する。
【0054】 表6:rバスインターフェースを備えたVLDレジスタ 名称 Dir ビットフィールド 記述 dec_value1 r/w [15:0] DECODE BLOCKコマンドを除くすべて のコマンドについての復号化値を保 持する。DECODE BLOCKコマンドはこ のフィールドの復号化DC係数を戻 す。 dec_value2 r/w この値は現在のラン及びレベルを保 持する。 [17:12] 復号化ランレングス [11:0] 復号化レベル mvfifo_adr r/w [4:0] mv_fifo読み出し/書き込みアドレ スビット4−0:読み出し、 1:書き込み mvfifo_data r/w [12:0] mv_fifoデータポート
【0055】 表6:rバスインターフェースを備えたVLDレジスタ(続き) 名称 Dir ビットフィールド 記述 vld_cntl r/w [31:30] 00:ラン、10:ホールト、 11:リセット vld_pic_hdr r/w [31:0]] ピクチャレベルパラメータ: [31:28]f_code[0][0](F,H) [27:24]f_code[0][1](F,V) [23:20]f_code[1][0](B,H) [19:16]f_code[1][1](B,V) [15:14]intra_dc_prec [13:12]pic_structure [11]topfld_first [10]frame_prediction_frame_dct [9]concealment_motion_vectors [8]q_scale_type [7]intra_vlc_format [6]alternate_scan [5]repeat_first_field [4]chroma_420 [3]progressive_frame [2:0]pic_type rlfifo_adr r/w [6:0] rl_fifo読み出し/書き込みアドレ スビット6−0:読み出し、 1:書き込み rlfifo_data r/w [17:0] rl_fifoデータポート vld_status r/w [10:0] ステータスビット [10]vld_busy [9]vld_mv_fifo_empty [8]vld_cfifo_empty [7:4]chfifo_wr_addr [3:0]chfifo_rd_addr vld_cmd r/w [7:0] cpuからの実行されるvldコマンド dec_status r/w [15] エラー。ビットストリームが検出さ れた場合にセット。スティッキービ ット。
【0056】 表6:rバスインターフェースを備えたVLDレジスタ(続き) 名称 Dir ビットフィールド 記述 [14] chan_fifo_empty チャネルFIFO空き [13:10] chan_fifo_wrprt チャネルFIFOライトポインタ [9:6] chan_fifo_rdptr チャネルFIFOリードポインタ [5:0] bitcnt デコーダビットストリームリ ードポインタ。デコーダにより次に読 み出されるビットの数。 vld_cmd r/w [7:0] cpuからのvldコマンド−このアドレ スがrバスインターフェースから書き 込まれるとvldコマンドが実行される 。
【0057】 表7は、Gバスインターフェースを備えたVLDコントロールレジスタを定義
する。
する。
【0058】 表7:gバスインターフェースを備えたVLDレジスタ 名称 Dir ビットフィールド 記述 word_fifo r/w [63:0] デコーダFIFOデータポート
【0059】 次にFig.6A〜6Gのマイクロシーケンサインストラクション214a〜
214gについて、TBIT(テストビット)インストラクション214aは、
VCIレジスタ220における("bitnum"218により与えられる)ビットのテ
ストを行い、4ビット前方相対アドレス222の値と等しい場合に分岐する。C
OMP(比較)インストラクション214cは、("msb"224のステータスに
より決定される)vci_vld_outレジスタの8msb又は8lsbのデータコンテ
ンツを即時データ226と比較し、その結果をフラグレジスタ228に保存する
。"st_code"230=1である場合、vci_vld_outレジスタのコンテンツはスター
トコードパターンと比較され、それらがマッチしてスタートコードが求められた
ことを示す場合に、フラグレジスタ228が設定される。BRANCHインスト
ラクション214dは、8ビットの分岐目標アドレス232に対する絶対分岐を
行う。"err"ビット234はvciエラーを示し、"halt"ビット236はvciコン
トロールレジスタをホールトステートに変更することを示す。SETF(フラグ
設定)インストラクション214eは、即時データ238に応じた値によりフラ
グレジスタの8lsbを設定する。INCM(インクリメントマクロブロック)
インストラクション214fは、VCIレジスタ240の下位バイトを即時デー
タ242と比較し、等しくなければストールする。フローコントロールインスト
ラクションの最後には、HALTインストラクション214gがビデオデコーダ
104のホールトを行い、vld_busy信号を取り下げる。
214gについて、TBIT(テストビット)インストラクション214aは、
VCIレジスタ220における("bitnum"218により与えられる)ビットのテ
ストを行い、4ビット前方相対アドレス222の値と等しい場合に分岐する。C
OMP(比較)インストラクション214cは、("msb"224のステータスに
より決定される)vci_vld_outレジスタの8msb又は8lsbのデータコンテ
ンツを即時データ226と比較し、その結果をフラグレジスタ228に保存する
。"st_code"230=1である場合、vci_vld_outレジスタのコンテンツはスター
トコードパターンと比較され、それらがマッチしてスタートコードが求められた
ことを示す場合に、フラグレジスタ228が設定される。BRANCHインスト
ラクション214dは、8ビットの分岐目標アドレス232に対する絶対分岐を
行う。"err"ビット234はvciエラーを示し、"halt"ビット236はvciコン
トロールレジスタをホールトステートに変更することを示す。SETF(フラグ
設定)インストラクション214eは、即時データ238に応じた値によりフラ
グレジスタの8lsbを設定する。INCM(インクリメントマクロブロック)
インストラクション214fは、VCIレジスタ240の下位バイトを即時デー
タ242と比較し、等しくなければストールする。フローコントロールインスト
ラクションの最後には、HALTインストラクション214gがビデオデコーダ
104のホールトを行い、vld_busy信号を取り下げる。
【0060】 ICMD及びCMDI(コマンド発生)インストラクション214bは、22
のコマンドのうちのいずれかをビデオデコーダ104に送り、出力をVCIレジ
スタ244に記憶する。ICMDインストラクションにより、マイクロシーケン
サ134はビデオデコーダ104にコマンドを送り、待機する。CMDIインス
トラクションは、マイクロシーケンサ134によりビデオデコーダ104へコマ
ンドを送り、マイクロコードをランし続ける。
のコマンドのうちのいずれかをビデオデコーダ104に送り、出力をVCIレジ
スタ244に記憶する。ICMDインストラクションにより、マイクロシーケン
サ134はビデオデコーダ104にコマンドを送り、待機する。CMDIインス
トラクションは、マイクロシーケンサ134によりビデオデコーダ104へコマ
ンドを送り、マイクロコードをランし続ける。
【0061】 ビデオデコーダ104に送られる種々のコマンドを表8に示す。
【0062】 表8:VLDコマンド OPコード シンボル 記述 0000 0001 <vld_escape> マクロブロックエスケープ 0000 0010 <vld_peek> ピーク−単にアップデートCCを実行し ない 0000 0011 <vld_startcode> ファーストスタートコード 0000 0100 <vld_mbi> マクロブロックアドレスインクリメント 0000 0101 <vld_cbp> 符号化ブロックパターン 0000 0110 <vld_intra_luma> イントラ輝度ブロックをラン 0000 0111 <vld_intra_chromau> イントラクロマUブロックをラン 0000 1000 <vld_intra>chromav> イントラクロマVブロックをラン 0000 1001 <vld_non_intra> 非イントラブロックをラン 0000 1010* <vld_mbs> マクロブロックスタート信号を発生 0000 1100* <vld_dpcm> 輝度及びクロマプレディクタをリセット 0000 1101* <vld_mv_pred> 動きベクトルプレディクタをリセット 0001 0000 <vld_dmv> デュアルプライム動きベクトルを得る 0001 0100 <vld_non_coded> 非符号化ブロックをラン 0001 0101 <vld_field_motype> 復号化フィールド動きタイプ 0001 0110 <vld_frame_motype> 復号化フレーム動きタイプ 0001 1000 <vld_mtypei> Iピクチャのマクロブロックタイプを得 る 0001 1001 <vld_mtypep> Pピクチャのマクロブロックタイプを得 る 0001 1010 <vld_mtypeb> Bピクチャのマクロブロックタイプを得 る 0001 1011 <vld_mtyped> Dピクチャのマクロブロックタイプを得 る 0010 xxxx <vld_get<bitxx> 次の1〜16ビット(0=>16)を得 る 0011 0xyz <vld_mvxyz> 動きベクトルを得る:x−前方、y−水 平、z−ファースト *:cmdiインストラクションから送る必要がある。
【0063】 表8のVLDコマンドは、多種多様の符号化に共通な自立的動作である。VL
Dインストラクションは、一般に、MPEG VLCテーブルからの値を得るた
めの可変長テーブル復号化コマンド、符号化ビデオデータからのパラメータ化さ
れたビット数を受信するためのインストラクション、又はブロック動作として分
類される。
Dインストラクションは、一般に、MPEG VLCテーブルからの値を得るた
めの可変長テーブル復号化コマンド、符号化ビデオデータからのパラメータ化さ
れたビット数を受信するためのインストラクション、又はブロック動作として分
類される。
【0064】 例えば、<vld_get_bitxx>コマンドは、ロテータ/バレルシフタ158から特
定数のビットを取り出し、取り出したビット数によりポインタレジスタ160を
インクリメントする。<vld_dmv>コマンドは、ビデオデータビットストリームか
らの3つのパラメータを用いてMPEG VLCテーブルのうちのいずれかから
動きベクトル値を取り出す。具体的には、各動きベクトルは前の動きベクトルと
予測の組み合わせとして記憶される。予測はそれ自体、(可変長符号化された)
商と(固定長符号の)余りとして符号化される。<vld_dmv>コマンドは、MPE
G VLCテーブルを介して商を復号化し、余りの位置と商の値を求めるのに使
用される。余りは<vld_get_bitxx>コマンドを用いて得られる。そして、商と余
りが組み合わせられて、動きベクトル成分を生成する。<vld_peek>コマンドは、
取り出したビット数によりポインタレジスタ160をインクリメントすることな
しに、ロテータ/バレルシフタ158からの特定数のビットを認識可能にする。
定数のビットを取り出し、取り出したビット数によりポインタレジスタ160を
インクリメントする。<vld_dmv>コマンドは、ビデオデータビットストリームか
らの3つのパラメータを用いてMPEG VLCテーブルのうちのいずれかから
動きベクトル値を取り出す。具体的には、各動きベクトルは前の動きベクトルと
予測の組み合わせとして記憶される。予測はそれ自体、(可変長符号化された)
商と(固定長符号の)余りとして符号化される。<vld_dmv>コマンドは、MPE
G VLCテーブルを介して商を復号化し、余りの位置と商の値を求めるのに使
用される。余りは<vld_get_bitxx>コマンドを用いて得られる。そして、商と余
りが組み合わせられて、動きベクトル成分を生成する。<vld_peek>コマンドは、
取り出したビット数によりポインタレジスタ160をインクリメントすることな
しに、ロテータ/バレルシフタ158からの特定数のビットを認識可能にする。
【0065】 本発明を種々の実施例を用いて説明し、これらの実施例については非常に詳細
に説明したが、当該分野の技術者にとってはさらなる利点及び変更が容易に明ら
かとなるであろう。従って、本発明は広義において、特定の詳細事項、代表的な
装置や方法、説明及び図示した具体例に限定されるものではない。従って、本願
の一般的発明概念の範囲を逸脱しない限り、このような詳細事項を変更してもよ
い。
に説明したが、当該分野の技術者にとってはさらなる利点及び変更が容易に明ら
かとなるであろう。従って、本発明は広義において、特定の詳細事項、代表的な
装置や方法、説明及び図示した具体例に限定されるものではない。従って、本願
の一般的発明概念の範囲を逸脱しない限り、このような詳細事項を変更してもよ
い。
【図1】 Fig.1は、本発明の原理に従ってデジタルオーディオ/ビデオ信号データ
の圧縮解除及び出力を行うビデオ/オーディオデコーダのブロック図である。
の圧縮解除及び出力を行うビデオ/オーディオデコーダのブロック図である。
【図2】 Fig.2は、デジタル符号化されたビデオデータ及び制御情報を復号化する
ための可変長デコーダ(VLD)により構成される、Fig.1に示す復号化シ
ステムにおけるビデオデコーダのブロック図である。
ための可変長デコーダ(VLD)により構成される、Fig.1に示す復号化シ
ステムにおけるビデオデコーダのブロック図である。
【図3】 Fig.2Aは、Fig.2に示すビデオデコーダのマイクロシーケンサとV
LDコマンド復号化/実行ユニットのブロック図である。
LDコマンド復号化/実行ユニットのブロック図である。
【図4】 Fig.3は、Fig.2の可変長デコーダ(VLD)コマンド復号化/実行
ユニットと可変長テーブルデコーダに、符号化されたビデオデータの32ビット
インクリメントを供給するロテータ/バレルシフタ回路の概略図である。
ユニットと可変長テーブルデコーダに、符号化されたビデオデータの32ビット
インクリメントを供給するロテータ/バレルシフタ回路の概略図である。
【図5】 Fig.4は、Fig.2の可変長デコーダ(VLD)コマンド復号化/実行
ユニットによりアクセスされる「macroblock_address_increment」可変長コード
(VLC)テーブルにおけるパターンマッチ構造を示す図である。
ユニットによりアクセスされる「macroblock_address_increment」可変長コード
(VLC)テーブルにおけるパターンマッチ構造を示す図である。
【図6】 Fig.5は、ビデオデータ圧縮解除プロセスにおいて可変長コード(VLC
)テーブルにアクセスするときにFig.2の可変長デコーダ(VLD)により
使用される復号化論理回路の機能ブロック図である。
)テーブルにアクセスするときにFig.2の可変長デコーダ(VLD)により
使用される復号化論理回路の機能ブロック図である。
【図7】 Fig.6Aは、TBITインストラクションのマイクロシーケンサインスト
ラクションフォーマットを示す図である。 Fig.6Bは、ICMD、CMDIインストラクションのマイクロシーケン
サインストラクションフォーマットを示す図である。 Fig.6Cは、COMPIインストラクションのマイクロシーケンサインス
トラクションフォーマットを示す図である。 Fig.6Dは、BRANCHインストラクションのマイクロシーケンサイン
ストラクションフォーマットを示す図である。 Fig.6Eは、SETFインストラクションのマイクロシーケンサインスト
ラクションフォーマットを示す図である。 Fig.6Fは、INCMインストラクションのマイクロシーケンサインスト
ラクションフォーマットを示す図である。 Fig.6Gは、HALTインストラクションのマイクロシーケンサインスト
ラクションフォーマットを示す図である。
ラクションフォーマットを示す図である。 Fig.6Bは、ICMD、CMDIインストラクションのマイクロシーケン
サインストラクションフォーマットを示す図である。 Fig.6Cは、COMPIインストラクションのマイクロシーケンサインス
トラクションフォーマットを示す図である。 Fig.6Dは、BRANCHインストラクションのマイクロシーケンサイン
ストラクションフォーマットを示す図である。 Fig.6Eは、SETFインストラクションのマイクロシーケンサインスト
ラクションフォーマットを示す図である。 Fig.6Fは、INCMインストラクションのマイクロシーケンサインスト
ラクションフォーマットを示す図である。 Fig.6Gは、HALTインストラクションのマイクロシーケンサインスト
ラクションフォーマットを示す図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年8月11日(2000.8.11)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0010
【補正方法】変更
【補正内容】
【0010】 従って、MPEG−1又はMPEG−2規格により符号化された可変長DCT
係数及び動きベクトルを効率的に復号化するVLDが必要である。また、種々の
MPEG可変長コードを復号化するのに必要なメモリ量を最小限にするVLDが
必要である。さらに、所定のインストラクションセットに従ってマイクロシーケ
ンサからインストラクションを受信すると共にマスタコントローラからインスト
ラクションを受信するVLDが必要である。 米国特許出願第5502493号(US-A-5,502,493)では、可変長デコーダに
より構成されるMPEG信号のデコーダを開示している。 ITU−T勧告H.222.0、情報通信技術−動画及び関連するオーディオ
情報の一般的符号化:システム、1995年7月(ITU-T Recommendation H.222
.0, Information Technology - Generic Coding of Moving Pictures and Assoc
iated Audio Information: Systems, July 1995)(ISO/IEC国際規格1
3818−1と同一)では、オーディオ及びビデオデータが復号化の前にデマル
チプレクスされるシステムを開示している。 また、米国特許出願第5604499号(US-A-5,604,499)では、圧縮された
ビデオデータを可変長コードテーブルを用いて復号化する可変長テーブルデコー
ダを開示している。
係数及び動きベクトルを効率的に復号化するVLDが必要である。また、種々の
MPEG可変長コードを復号化するのに必要なメモリ量を最小限にするVLDが
必要である。さらに、所定のインストラクションセットに従ってマイクロシーケ
ンサからインストラクションを受信すると共にマスタコントローラからインスト
ラクションを受信するVLDが必要である。 米国特許出願第5502493号(US-A-5,502,493)では、可変長デコーダに
より構成されるMPEG信号のデコーダを開示している。 ITU−T勧告H.222.0、情報通信技術−動画及び関連するオーディオ
情報の一般的符号化:システム、1995年7月(ITU-T Recommendation H.222
.0, Information Technology - Generic Coding of Moving Pictures and Assoc
iated Audio Information: Systems, July 1995)(ISO/IEC国際規格1
3818−1と同一)では、オーディオ及びビデオデータが復号化の前にデマル
チプレクスされるシステムを開示している。 また、米国特許出願第5604499号(US-A-5,604,499)では、圧縮された
ビデオデータを可変長コードテーブルを用いて復号化する可変長テーブルデコー
ダを開示している。
【手続補正書】
【提出日】平成12年11月20日(2000.11.20)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正内容】
【発明の名称】デジタル符号化されたビデオ信号を復号化する可変長デコーダ
【特許請求の範囲】
【発明の詳細な説明】
【0001】 相互参照 本願は、1998年5月18日に出願された係属中の仮特許出願60/085
,797の優先日を主張し、その開示内容を全体として参照することにより特に
本願に組み込むものとする。
,797の優先日を主張し、その開示内容を全体として参照することにより特に
本願に組み込むものとする。
【0002】 発明の分野 本発明はデジタル符号化されたビデオ信号の復号化に関し、特に、固定長の値
や可変長コードを用いて符号化されたビデオデータや制御情報を復号化するデコ
ーダに関する。
や可変長コードを用いて符号化されたビデオデータや制御情報を復号化するデコ
ーダに関する。
【0003】 発明の背景 近年、特に家庭用電子機器業界においてビデオ信号のデジタル送信が普及して
いる。このようなデジタルビデオ信号送信の使用や、例えばDVD(digital ve
rsatile disc)プレーヤやデジタルビデオ放送(DVB)セットトップボックス
での受信の普及により、送信された画像シーケンスの画質や、既存のNTSCや
PALアナログ送信システムにおけるビデオ信号の記憶、操作、表示をより効果
的に制御する性能が改善している。このような高性能化を促進するため、業界は
、国際標準化機構(ISO)に規定されるMPEG(Moving Picture Experts Gr
oup)によって提唱されるデジタルビデオ圧縮のフォーマット、すなわち、ISO
−11172−2(MPEG−1)及びISO−13818−2(MPEG−2
)という2つの規格で定義されたビデオビットストリームを符号化するためのシ
ンタックスを特定している。以下の説明では、これらの規格によるビデオ信号を
デジタル符号化するのに使用されるビットストリームシンタックスをより詳細に
説明するため、ISO−11172−2(MPEG−1)及びISO−1381
8−2(MPEG−2)を参照する。これらの規格はいずれも全体として参照す
ることにより、特に本明細書に組み込むものとする。
いる。このようなデジタルビデオ信号送信の使用や、例えばDVD(digital ve
rsatile disc)プレーヤやデジタルビデオ放送(DVB)セットトップボックス
での受信の普及により、送信された画像シーケンスの画質や、既存のNTSCや
PALアナログ送信システムにおけるビデオ信号の記憶、操作、表示をより効果
的に制御する性能が改善している。このような高性能化を促進するため、業界は
、国際標準化機構(ISO)に規定されるMPEG(Moving Picture Experts Gr
oup)によって提唱されるデジタルビデオ圧縮のフォーマット、すなわち、ISO
−11172−2(MPEG−1)及びISO−13818−2(MPEG−2
)という2つの規格で定義されたビデオビットストリームを符号化するためのシ
ンタックスを特定している。以下の説明では、これらの規格によるビデオ信号を
デジタル符号化するのに使用されるビットストリームシンタックスをより詳細に
説明するため、ISO−11172−2(MPEG−1)及びISO−1381
8−2(MPEG−2)を参照する。これらの規格はいずれも全体として参照す
ることにより、特に本明細書に組み込むものとする。
【0004】 MPEG−1及びMPEG−2により定義されるビットストリームシンタック
スは、ビットストリームにおける一般的な3種類の情報又はデータ、すなわち、
ビットストリームを定義するのに必要な制御情報と、送信された画像シーケンス
を適切に圧縮解除し再生するのに必要な制御情報と、符号化されたビデオデータ
とに関するものである。ビットストリーム制御情報は、ビットストリームがパケ
ット化されたビデオ又はオーディオデータであること、あるいは、ビットストリ
ームが例えばMPEG−1又はMPEG−2のいずれかを用いて符号化されたビ
デオ信号であることを識別することもできる。画像制御情報には、例えばフレー
ムの縦横のサイズ、すなわち、ライン毎の画素(ペル)数、フレーム毎のライン
数、フレーム又はフィールドレート、アスペクト比等が含まれる。以下により詳
細に説明するが、符号化されたビデオデータは、各フレーム又はフィールドの再
形成に必要な、DCT変換及び量子化が施されたクロミナンス及び輝度ペル値を
表す。
スは、ビットストリームにおける一般的な3種類の情報又はデータ、すなわち、
ビットストリームを定義するのに必要な制御情報と、送信された画像シーケンス
を適切に圧縮解除し再生するのに必要な制御情報と、符号化されたビデオデータ
とに関するものである。ビットストリーム制御情報は、ビットストリームがパケ
ット化されたビデオ又はオーディオデータであること、あるいは、ビットストリ
ームが例えばMPEG−1又はMPEG−2のいずれかを用いて符号化されたビ
デオ信号であることを識別することもできる。画像制御情報には、例えばフレー
ムの縦横のサイズ、すなわち、ライン毎の画素(ペル)数、フレーム毎のライン
数、フレーム又はフィールドレート、アスペクト比等が含まれる。以下により詳
細に説明するが、符号化されたビデオデータは、各フレーム又はフィールドの再
形成に必要な、DCT変換及び量子化が施されたクロミナンス及び輝度ペル値を
表す。
【0005】 MPEG−1及びMPEG−2はそれぞれ、空間的及び時間的冗長性を除去す
ることにより情報密度及び符号化効率を改善するように構成されたビットストリ
ームシンタックスを特定する。各MPEGピクチャは、16×16輝度ペル(Y
)、又は、4つの8×8変換ブロックのペルの2×2の列からなる一連のマクロ
ブロックに分割される。各マクロブロックは、さらに8×16クロミナンスペル
(U,V)、又は、2つの8×8ブロックのペルの1×2の列からなる。符号化
プロセスでは、8×8ペルブロックの離散的コサイン変換(DCT)符号化の後
に、量子化、ジグザグスキャン、ゼロであるラン(ランレングス)及び振幅レベ
ルの可変長符号化を行うことにより空間的冗長性が除去される。時間的冗長性を
除去するには動き補償予測を用いる。
ることにより情報密度及び符号化効率を改善するように構成されたビットストリ
ームシンタックスを特定する。各MPEGピクチャは、16×16輝度ペル(Y
)、又は、4つの8×8変換ブロックのペルの2×2の列からなる一連のマクロ
ブロックに分割される。各マクロブロックは、さらに8×16クロミナンスペル
(U,V)、又は、2つの8×8ブロックのペルの1×2の列からなる。符号化
プロセスでは、8×8ペルブロックの離散的コサイン変換(DCT)符号化の後
に、量子化、ジグザグスキャン、ゼロであるラン(ランレングス)及び振幅レベ
ルの可変長符号化を行うことにより空間的冗長性が除去される。時間的冗長性を
除去するには動き補償予測を用いる。
【0006】 ビデオに関しては、MPEGではイントラ(I)フレーム、順方向予測(P)
フレーム、双方向予測(B)フレームを考慮する。Iフレームは独立して符号化
され、3つのフレームタイプのうち符号化効率が最も悪い。PフレームはIフレ
ームより符号化効率が良く、その前に符号化されたI又はPフレームに関して符
号化される。Bフレームは3つのフレームタイプのうち符号化効率が最も良く、
前後のI又はPフレームの両方に関して符号化される。MPEGシステムにおけ
るフレームの符号化の順序は、フレームのプレゼンテーション順と必ずしも同じ
ではない。ビットストリームのヘッダにより、デコーダが動画のプレゼンテーシ
ョンのためのフレームの時間及びシーケンスを適切に復号化するために使用する
情報が得られる。
フレーム、双方向予測(B)フレームを考慮する。Iフレームは独立して符号化
され、3つのフレームタイプのうち符号化効率が最も悪い。PフレームはIフレ
ームより符号化効率が良く、その前に符号化されたI又はPフレームに関して符
号化される。Bフレームは3つのフレームタイプのうち符号化効率が最も良く、
前後のI又はPフレームの両方に関して符号化される。MPEGシステムにおけ
るフレームの符号化の順序は、フレームのプレゼンテーション順と必ずしも同じ
ではない。ビットストリームのヘッダにより、デコーダが動画のプレゼンテーシ
ョンのためのフレームの時間及びシーケンスを適切に復号化するために使用する
情報が得られる。
【0007】 デジタル送信されたビデオビットストリームを復号化するのに使用される一般
的なビデオデコーダは、ビットストリームのパージングを行ってMPEG可変長
コードテーブル(VLC)を用いて量子化DCT係数及び動きベクトルを復号化
するように構成された可変長デコーダ(VLD)を制御するためのマイクロコン
トローラ又はシーケンサを備えている。各ブロックの量子化係数値をそのブロッ
クの逆ジグザグを表す値のストリームに変換し、その値を逆量子化するには、逆
変換プロセッサを用いる。逆量子化されたDCT係数は、逆DCT変換を行って
クロミナンス及び輝度ペル値を回復する逆離散的コサイン変換(IDCT)プロ
セッサに供給される。そして、これらの値は復号化された動きベクトルと共に動
き補償(MC)プロセッサに供給され、動き補償プロセッサがMPEG圧縮解除
を行ってI、P、Bフレームをフルビデオフレームに変換する。
的なビデオデコーダは、ビットストリームのパージングを行ってMPEG可変長
コードテーブル(VLC)を用いて量子化DCT係数及び動きベクトルを復号化
するように構成された可変長デコーダ(VLD)を制御するためのマイクロコン
トローラ又はシーケンサを備えている。各ブロックの量子化係数値をそのブロッ
クの逆ジグザグを表す値のストリームに変換し、その値を逆量子化するには、逆
変換プロセッサを用いる。逆量子化されたDCT係数は、逆DCT変換を行って
クロミナンス及び輝度ペル値を回復する逆離散的コサイン変換(IDCT)プロ
セッサに供給される。そして、これらの値は復号化された動きベクトルと共に動
き補償(MC)プロセッサに供給され、動き補償プロセッサがMPEG圧縮解除
を行ってI、P、Bフレームをフルビデオフレームに変換する。
【0008】 MPEGシンタックス準拠のビットストリームのパージング及び復号化を行う
一般的なVLD構造では、ビデオビットストリームの所定数の未復号化ビットが
1以上のレジスタに記憶される。VLDは、これらのビットのうちの少数のビッ
トをレジスタから抽出し、最も左のビットが常にVLDにより抽出された最初の
ビットに整合するようになっている。そして、VLDはMPEG VLCテーブ
ルのうちの1つのルックアップを行い、可変長符号化データを復号化すると共に
コード長を得る。抽出されたビットにおける可変長コードを復号化した後、VL
Dはレジスタ内のビットに対してマスク/シフト/OR(MASK/SHIFT
/OR)処理を行い、レジスタ内の最も左の位置にある最初の未使用ビットの再
整合を行う。VLCテーブルは、通常、約2n×m個のメモリ位置を有する1以
上のPAL又はROMに含まれている。ここで、「n」はVLCテーブルのそれ
ぞれにおいて可能な最大可変コード長を表し、「m」はユニークVLCテーブル
数を表す。
一般的なVLD構造では、ビデオビットストリームの所定数の未復号化ビットが
1以上のレジスタに記憶される。VLDは、これらのビットのうちの少数のビッ
トをレジスタから抽出し、最も左のビットが常にVLDにより抽出された最初の
ビットに整合するようになっている。そして、VLDはMPEG VLCテーブ
ルのうちの1つのルックアップを行い、可変長符号化データを復号化すると共に
コード長を得る。抽出されたビットにおける可変長コードを復号化した後、VL
Dはレジスタ内のビットに対してマスク/シフト/OR(MASK/SHIFT
/OR)処理を行い、レジスタ内の最も左の位置にある最初の未使用ビットの再
整合を行う。VLCテーブルは、通常、約2n×m個のメモリ位置を有する1以
上のPAL又はROMに含まれている。ここで、「n」はVLCテーブルのそれ
ぞれにおいて可能な最大可変コード長を表し、「m」はユニークVLCテーブル
数を表す。
【0009】 なお、VLD構造によっては、復号化プロセス後の未使用ビットの整合に必要
なシフト/マスク/OR処理によりVLDの全体的な復号化速度が大幅に影響さ
れることは、当該分野の技術者にとっては明らかであろう。これらの処理はそれ
ぞれ1サイクル以上を必要とすることがあるため、各DCT係数シンボル(すな
わち、ランレングス及び振幅レベルの各対)を復号化して未使用ビットの再整合
を行うのにVLDが多数のサイクルを必要とするので、VLDの復号化効率は大
幅に低下してしまう。さらに、VLD構造によっては、各ユニークVLCテーブ
ルの各可変長コードが別々のメモリ位置に記憶されるので、VLCテーブルがV
LDのコストと複雑性を増加させてしまう。
なシフト/マスク/OR処理によりVLDの全体的な復号化速度が大幅に影響さ
れることは、当該分野の技術者にとっては明らかであろう。これらの処理はそれ
ぞれ1サイクル以上を必要とすることがあるため、各DCT係数シンボル(すな
わち、ランレングス及び振幅レベルの各対)を復号化して未使用ビットの再整合
を行うのにVLDが多数のサイクルを必要とするので、VLDの復号化効率は大
幅に低下してしまう。さらに、VLD構造によっては、各ユニークVLCテーブ
ルの各可変長コードが別々のメモリ位置に記憶されるので、VLCテーブルがV
LDのコストと複雑性を増加させてしまう。
【0010】 従って、MPEG−1又はMPEG−2規格により符号化された可変長DCT
係数及び動きベクトルを効率的に復号化するVLDが必要である。また、種々の
MPEG可変長コードを復号化するのに必要なメモリ量を最小限にするVLDが
必要である。さらに、所定のインストラクションセットに従ってマイクロシーケ
ンサからインストラクションを受信すると共にマスタコントローラからインスト
ラクションを受信するVLDが必要である。
係数及び動きベクトルを効率的に復号化するVLDが必要である。また、種々の
MPEG可変長コードを復号化するのに必要なメモリ量を最小限にするVLDが
必要である。さらに、所定のインストラクションセットに従ってマイクロシーケ
ンサからインストラクションを受信すると共にマスタコントローラからインスト
ラクションを受信するVLDが必要である。
【0011】 発明の概要 本発明は、特にMPEG−1及びMPEG−2シンタックス準拠のビデオビッ
トストリームを復号化するのに適した可変長ビデオデコーダにより実現される。
このビデオデコーダは、マクロブロックと個々のスライスからなるブロックレイ
ヤとを復号化してDCT係数値と動きベクトルを生成する、1サイクル当たり単
一イベントのスライスパージングエンジンとして構成される。
トストリームを復号化するのに適した可変長ビデオデコーダにより実現される。
このビデオデコーダは、マクロブロックと個々のスライスからなるブロックレイ
ヤとを復号化してDCT係数値と動きベクトルを生成する、1サイクル当たり単
一イベントのスライスパージングエンジンとして構成される。
【0012】 このビデオデコーダは、MPEG規格により可変長復号化プロセスを制御する
VLDコマンド復号化/実行ユニットとのインターフェースを行うマイクロシー
ケンサを備える。復号化プロセスにおいて、マイクロシーケンサは、可変長復号
化を行うVLDコマンド復号化/実行ユニットに対するコマンドの送出、又は、
インストラクションROMに記憶されるインストラクションセットを通して得ら
れるプログラムフローの制御のいずれかを行う。さらに、ビデオデコーダは、上
位レイヤパージングや復号化された画像シーケンスの再構成のための全体的な復
号化プロセスの制御を司るRISC CPUからのデコードインストラクション
を受信することができる。
VLDコマンド復号化/実行ユニットとのインターフェースを行うマイクロシー
ケンサを備える。復号化プロセスにおいて、マイクロシーケンサは、可変長復号
化を行うVLDコマンド復号化/実行ユニットに対するコマンドの送出、又は、
インストラクションROMに記憶されるインストラクションセットを通して得ら
れるプログラムフローの制御のいずれかを行う。さらに、ビデオデコーダは、上
位レイヤパージングや復号化された画像シーケンスの再構成のための全体的な復
号化プロセスの制御を司るRISC CPUからのデコードインストラクション
を受信することができる。
【0013】 符号化されたビデオデータはDRAMメモリに記憶され、チャネルバッファF
IFOを介してビデオデコーダに供給可能とされる。本発明によれば、これら符
号化されたビデオデータビットのうちの所定数が、ロテータ/バレルシフタ及び
ポインタレジスタを使用して、ビデオデコーダと可変長テーブルデコーダに対し
て認識可能とされる。バレルシフタ及びポインタレジスタは、ポインタアドレス
+31までのポインタアドレスからのビットをロテータ/バレルシフタデータと
して、ビデオデコーダと可変長テーブルデコーダの両方に対して認識可能とする
。ビデオデコーダは、ロテータ/バレルシフタデータの可変長コードを復号化し
て、各スライス毎に必要なDCT係数と動きベクトルを得る。可変長コードが復
号化された後、ロテータ/バレルシフタのポインタレジスタはインクリメントさ
れ、次の復号化サイクルの準備を行う。
IFOを介してビデオデコーダに供給可能とされる。本発明によれば、これら符
号化されたビデオデータビットのうちの所定数が、ロテータ/バレルシフタ及び
ポインタレジスタを使用して、ビデオデコーダと可変長テーブルデコーダに対し
て認識可能とされる。バレルシフタ及びポインタレジスタは、ポインタアドレス
+31までのポインタアドレスからのビットをロテータ/バレルシフタデータと
して、ビデオデコーダと可変長テーブルデコーダの両方に対して認識可能とする
。ビデオデコーダは、ロテータ/バレルシフタデータの可変長コードを復号化し
て、各スライス毎に必要なDCT係数と動きベクトルを得る。可変長コードが復
号化された後、ロテータ/バレルシフタのポインタレジスタはインクリメントさ
れ、次の復号化サイクルの準備を行う。
【0014】 また、本発明によれば、ビデオデコーダが各MPEG VLCテーブルにアク
セスして必要な復号化された値を得ることを可能にするため、新規な方式が提供
される。各MPEG VLCテーブルは、各テーブルにおいて識別されたユニー
クプレフィクスパターンにより定義される一連のサブテーブルに分割されている
。可変長復号化プロセスにおいて、抽出されたロテータ/バレルシフタデータの
32ビットが、可変長テーブルデコーダにおけるパターンマッチロジック及びM
UXコントロールに用いられ、ロテータ/バレルシフタデータのユニークプレフ
ィクスパターンを識別する。同時に、プレフィクスパターンの後のビットが、各
MPEG VLCテーブルのサブテーブルすべてに用いられる。可変長符号化さ
れたデータが復号化された後、可変長テーブルデコーダは復号化された値と有効
コードステータスビットを供給する。また、可変長テーブルデコーダは、ロテー
タ/バレルシフタのポインタレジスタにコード長信号を供給して、ポインタレジ
スタをコード長によりインクリメントする。
セスして必要な復号化された値を得ることを可能にするため、新規な方式が提供
される。各MPEG VLCテーブルは、各テーブルにおいて識別されたユニー
クプレフィクスパターンにより定義される一連のサブテーブルに分割されている
。可変長復号化プロセスにおいて、抽出されたロテータ/バレルシフタデータの
32ビットが、可変長テーブルデコーダにおけるパターンマッチロジック及びM
UXコントロールに用いられ、ロテータ/バレルシフタデータのユニークプレフ
ィクスパターンを識別する。同時に、プレフィクスパターンの後のビットが、各
MPEG VLCテーブルのサブテーブルすべてに用いられる。可変長符号化さ
れたデータが復号化された後、可変長テーブルデコーダは復号化された値と有効
コードステータスビットを供給する。また、可変長テーブルデコーダは、ロテー
タ/バレルシフタのポインタレジスタにコード長信号を供給して、ポインタレジ
スタをコード長によりインクリメントする。
【0015】 さらに、本発明によれば、復号化されたDCT係数は圧縮されたランレングス
と振幅レベルの対として、ランレベルデコーダ/FIFOに記憶される。ランレ
ベルデコーダ/FIFOは、ランレングスと振幅レベルの対の圧縮解除を行って
、逆変換ユニットで必要なDCT係数を得る。これにより、ハフマン符号化され
た可変長の対の復号化を、先に復号化されたランレベルの対のランレベル復号化
と同時に行うことが可能となる。動きベクトルは、動き補償ユニットで必要とな
るまでmv/dmvFIFOに記憶される。
と振幅レベルの対として、ランレベルデコーダ/FIFOに記憶される。ランレ
ベルデコーダ/FIFOは、ランレングスと振幅レベルの対の圧縮解除を行って
、逆変換ユニットで必要なDCT係数を得る。これにより、ハフマン符号化され
た可変長の対の復号化を、先に復号化されたランレベルの対のランレベル復号化
と同時に行うことが可能となる。動きベクトルは、動き補償ユニットで必要とな
るまでmv/dmvFIFOに記憶される。
【0016】 本発明の上述の及び他の特徴、目的、利点については、添付図面とその説明に
より明らかにされる。
より明らかにされる。
【0017】 好ましい実施例の詳細な説明 図面を参照して、特にFig.1を参照して、デジタル符号化されたビデオ信
号のオーディオ/ビデオ復号化や圧縮解除されたビデオ画像のプレゼンテーショ
ンを行うための種々の機能モジュール102〜112を備えた復号化システム1
00を示す。好ましくは、復号化システム100は、例えば、DVD(digital v
ersatile disk)やデジタルビデオ放送(DVB)セットトップボックス(STB
)等におけるデジタルオーディオ/ビデオ受信を目的とした特定用途向けIC(
ASIC)として構成される。なお、Fig.1に示す機能ユニットは例であり
、実際にはさらに機能ユニットを追加してもよい。機能ユニット102〜112
はそれぞれ、ダイナミックランダムアクセスメモリ(DRAM)である大型オフ
チップメモリ114と種々の方法でインタラクションを行う。DRAM114へ
のアクセスはASIC100上のメモリコントローラ116により制御される。
号のオーディオ/ビデオ復号化や圧縮解除されたビデオ画像のプレゼンテーショ
ンを行うための種々の機能モジュール102〜112を備えた復号化システム1
00を示す。好ましくは、復号化システム100は、例えば、DVD(digital v
ersatile disk)やデジタルビデオ放送(DVB)セットトップボックス(STB
)等におけるデジタルオーディオ/ビデオ受信を目的とした特定用途向けIC(
ASIC)として構成される。なお、Fig.1に示す機能ユニットは例であり
、実際にはさらに機能ユニットを追加してもよい。機能ユニット102〜112
はそれぞれ、ダイナミックランダムアクセスメモリ(DRAM)である大型オフ
チップメモリ114と種々の方法でインタラクションを行う。DRAM114へ
のアクセスはASIC100上のメモリコントローラ116により制御される。
【0018】 例として、ASIC100の機能ユニットのうちの幾つかについて説明する。
これらの機能ユニットには、好ましくはデジタル符号化されたビデオ/オーディ
オ入力信号をライン118にて最大で72Mbpsのデータレートで受信するプ
ログラマブル入力デマルチプレクサ102が含まれる。デジタル符号化されたビ
デオ/オーディオ信号は、パケットデータの構造を識別するための所定のビット
ストリームシンタックスを有する「パケット化エレメンタリストリーム」(PE
Sストリーム)として一般に知られているパケット化データのシリアルビットス
トリームである。デマルチプレクサ102は、供給されるデジタル符号化された
信号のパージングを行って、ビデオ、オーディオ、その他のデータのパケットに
分解し、メモリコントローラ116を用いてDRAM114内のバッファに入力
信号を記憶する。以下により詳細に説明するが、本発明の原理によるビデオデコ
ーダ104は、DRAM114内のバッファに記憶されたビデオデータと画像制
御情報を検索し、(DRAM114に頻繁且つ繰り返しアクセスすることにより
)そのビデオデータと制御情報を復号化し、その後、復号化されたビデオ情報を
出力エンコーダ108に供給して、バス120を介してモニタに出力されるよう
に機能する。出力エンコーダ108は、好ましくは、NTSCの場合、30fp
sで720×480画素の画像サイズを供給し、PALの場合、25fpsで7
20×576画素を供給するNTSC/PALエンコーダである。オーディオデ
コーダ106は、DRAM114からオーディオ情報を検索し、そのオーディオ
情報を出力するために復号化し、出力するためのオーディオ情報をバス122を
介してスピーカに供給する。また、ASIC100は、ライン124を介してホ
ストマイクロコントローラとのインターフェースを行い、ASIC100の動作
の監視及び制御をホストコンピュータに行わせるホストインターフェース110
を備えている。
これらの機能ユニットには、好ましくはデジタル符号化されたビデオ/オーディ
オ入力信号をライン118にて最大で72Mbpsのデータレートで受信するプ
ログラマブル入力デマルチプレクサ102が含まれる。デジタル符号化されたビ
デオ/オーディオ信号は、パケットデータの構造を識別するための所定のビット
ストリームシンタックスを有する「パケット化エレメンタリストリーム」(PE
Sストリーム)として一般に知られているパケット化データのシリアルビットス
トリームである。デマルチプレクサ102は、供給されるデジタル符号化された
信号のパージングを行って、ビデオ、オーディオ、その他のデータのパケットに
分解し、メモリコントローラ116を用いてDRAM114内のバッファに入力
信号を記憶する。以下により詳細に説明するが、本発明の原理によるビデオデコ
ーダ104は、DRAM114内のバッファに記憶されたビデオデータと画像制
御情報を検索し、(DRAM114に頻繁且つ繰り返しアクセスすることにより
)そのビデオデータと制御情報を復号化し、その後、復号化されたビデオ情報を
出力エンコーダ108に供給して、バス120を介してモニタに出力されるよう
に機能する。出力エンコーダ108は、好ましくは、NTSCの場合、30fp
sで720×480画素の画像サイズを供給し、PALの場合、25fpsで7
20×576画素を供給するNTSC/PALエンコーダである。オーディオデ
コーダ106は、DRAM114からオーディオ情報を検索し、そのオーディオ
情報を出力するために復号化し、出力するためのオーディオ情報をバス122を
介してスピーカに供給する。また、ASIC100は、ライン124を介してホ
ストマイクロコントローラとのインターフェースを行い、ASIC100の動作
の監視及び制御をホストコンピュータに行わせるホストインターフェース110
を備えている。
【0019】 上述の機能ユニット以外にも、ビデオデコーダ104により復号化されるメイ
ンビデオに伴うサブタイトルやその他の情報を含むサブピクチャビデオ情報を復
号化する、さらに1以上のビデオ復号化ユニットを備えてもよい。さらに、Rバ
ス126及びGバス128に接続されたOSD部により、ASIC100内で画
面表示を生成してもよい。画面表示は、ホストCPUの動作、及び/又は、AS
IC100が使用されている装置の再生又は受信状態に対するフィードバックを
与えるように、ホストCPUから受信したコマンドに応じて生成することができ
る。
ンビデオに伴うサブタイトルやその他の情報を含むサブピクチャビデオ情報を復
号化する、さらに1以上のビデオ復号化ユニットを備えてもよい。さらに、Rバ
ス126及びGバス128に接続されたOSD部により、ASIC100内で画
面表示を生成してもよい。画面表示は、ホストCPUの動作、及び/又は、AS
IC100が使用されている装置の再生又は受信状態に対するフィードバックを
与えるように、ホストCPUから受信したコマンドに応じて生成することができ
る。
【0020】 特定用途向けIC100の制御は、ASIC100上の他の各機能ユニットの
動作の制御及び監視を行う縮小命令セット中央処理装置(RISC CPU)1
12により行われる。RISC CPU112は、インストラクションメモリ1
30に記憶されている16ビットのインストラクションに応じる。インストラク
ションメモリ130は、ASIC100の比較的簡単なプログラムに適した40
96個の16ビットインストラクションを保持している。ASIC100により
実行される複雑なプログラムについては、DRAM114内のより大きなインス
トラクションバッファからプログラムメモリ130に対して、4096個のイン
ストラクションの「ページ」のスワップイン、スワップアウトを行えばよい。
動作の制御及び監視を行う縮小命令セット中央処理装置(RISC CPU)1
12により行われる。RISC CPU112は、インストラクションメモリ1
30に記憶されている16ビットのインストラクションに応じる。インストラク
ションメモリ130は、ASIC100の比較的簡単なプログラムに適した40
96個の16ビットインストラクションを保持している。ASIC100により
実行される複雑なプログラムについては、DRAM114内のより大きなインス
トラクションバッファからプログラムメモリ130に対して、4096個のイン
ストラクションの「ページ」のスワップイン、スワップアウトを行えばよい。
【0021】 Fig.1に示すように、RISC CPU112は、Rバス126及びGバ
ス128として知られる2つのメインバスを介してASIC100内の各機能ユ
ニットとインタラクションを行う。具体的には、各機能ユニットは、メモリコン
トローラ116に対して、そしてDRAM114に対してデータの検索及び供給
を行うための64ビットGバス128に接続されている。さらに、Gバス128
を介してある機能ユニットから他の機能ユニットに各ブロックのデータを転送し
てもよい。
ス128として知られる2つのメインバスを介してASIC100内の各機能ユ
ニットとインタラクションを行う。具体的には、各機能ユニットは、メモリコン
トローラ116に対して、そしてDRAM114に対してデータの検索及び供給
を行うための64ビットGバス128に接続されている。さらに、Gバス128
を介してある機能ユニットから他の機能ユニットに各ブロックのデータを転送し
てもよい。
【0022】 種々のコマンドの他、メモリアクセス又は転送の要求が、Rバス126を介し
てある機能ユニットから他の機能ユニットに送られる。Rバス126は、メモリ
アクセスを頻繁に行う機能ユニットにより使用される1以上の32ビットバス、
あるいは、幾つかの機能ユニットにより共有される単一の8ビット時間多重化バ
スにより構成されてもよい。Rバスコントローラ132は、Rバス126の使用
要求を受信し、必要に応じてこれらの要求を調整し、要求の優先順位が最も高い
機能ユニットに対してRバスへのアクセスを供給する。
てある機能ユニットから他の機能ユニットに送られる。Rバス126は、メモリ
アクセスを頻繁に行う機能ユニットにより使用される1以上の32ビットバス、
あるいは、幾つかの機能ユニットにより共有される単一の8ビット時間多重化バ
スにより構成されてもよい。Rバスコントローラ132は、Rバス126の使用
要求を受信し、必要に応じてこれらの要求を調整し、要求の優先順位が最も高い
機能ユニットに対してRバスへのアクセスを供給する。
【0023】 メモリアクセスが要求されると、要求した機能ユニット102〜112は、R
バス126を介してメモりコントローラ116に仮想アドレスを供給する。メモ
リアクセス要求は、単一のメモリ位置の供給を要求するものであってもよく、ま
た、要求に応じてアクセスされる多数のメモリ位置の識別を含むものであっても
よい。メモリコントローラ116は、要求に応じてDRAM114における識別
位置へのアクセスを管理することにより要求に応答する。多数のメモリアクセス
要求が未処理である場合、メモリコントローラ116は、その未処理の要求を調
整して、要求の優先順位が最も高い機能ユニットに対してアクセスを許可する。
要求に応じてのメモリコントローラ116の動作の詳細については、1997年
4月30日出願の米国特許出願第08/846590号(U.S. Patent applicat
ion Serial No. 08/846,590)「デジタルビデオのためのメモリアドレス生成(M
EMORY ADDRESS GENERATION FOR DIGITAL VIDEO)」に記載されており、本願では
、これを全体として参照することにより組み込むものとする。さらに、RISC CPU112の動作とその縮小命令セットの詳細については、1997年5月
30日出願の米国特許出願第08/865749号(U.S. Patent application
Serial No. 08/865,749)「デジタルオーディオ復号専用処理装置(SPECIAL PUR
POSE PROCESSOR FOR DIGITAL AUDIO VIDEO DECODING)」に記載されており、本
願では、これを全体として参照することにより組み込むものとする。
バス126を介してメモりコントローラ116に仮想アドレスを供給する。メモ
リアクセス要求は、単一のメモリ位置の供給を要求するものであってもよく、ま
た、要求に応じてアクセスされる多数のメモリ位置の識別を含むものであっても
よい。メモリコントローラ116は、要求に応じてDRAM114における識別
位置へのアクセスを管理することにより要求に応答する。多数のメモリアクセス
要求が未処理である場合、メモリコントローラ116は、その未処理の要求を調
整して、要求の優先順位が最も高い機能ユニットに対してアクセスを許可する。
要求に応じてのメモリコントローラ116の動作の詳細については、1997年
4月30日出願の米国特許出願第08/846590号(U.S. Patent applicat
ion Serial No. 08/846,590)「デジタルビデオのためのメモリアドレス生成(M
EMORY ADDRESS GENERATION FOR DIGITAL VIDEO)」に記載されており、本願では
、これを全体として参照することにより組み込むものとする。さらに、RISC CPU112の動作とその縮小命令セットの詳細については、1997年5月
30日出願の米国特許出願第08/865749号(U.S. Patent application
Serial No. 08/865,749)「デジタルオーディオ復号専用処理装置(SPECIAL PUR
POSE PROCESSOR FOR DIGITAL AUDIO VIDEO DECODING)」に記載されており、本
願では、これを全体として参照することにより組み込むものとする。
【0024】 さらに、Rバス126を介して、種々の機能ユニットの状態に関するデータが
使用可能である。機能ユニットは、Rバス126を介して識別された特定アドレ
スにてアクセスすることができるステータス情報を供給する。従って、例えば、
ビデオデコーダ104からステータスワードにアクセスするには、DEC_VALUEア
ドレスを識別するアクセス要求をRバスコントローラ132に供給する。これに
応じて、Rバスコントローラ132は、要求している機能ユニットに対してビデ
オデコーダ104のステータスワードを供給させる。
使用可能である。機能ユニットは、Rバス126を介して識別された特定アドレ
スにてアクセスすることができるステータス情報を供給する。従って、例えば、
ビデオデコーダ104からステータスワードにアクセスするには、DEC_VALUEア
ドレスを識別するアクセス要求をRバスコントローラ132に供給する。これに
応じて、Rバスコントローラ132は、要求している機能ユニットに対してビデ
オデコーダ104のステータスワードを供給させる。
【0025】 機能ブロックにはRバス126を介してコマンドも送られる。ある機能ブロッ
クにコマンドを供給するには、Rバスを介してその機能ユニットの特定アドレス
にコマンドを送る。従って、例えば、ビデオデコーダ104にコマンドを供給す
るには、VLD_CMDアドレスを識別するアクセス要求をRバスコントローラ132
に供給する。これに応じて、Rバスコントローラ132は、要求している機能ユ
ニットがRバス126にコマンドを供給することを可能にすると共に、ビデオデ
コーダ104のコマンドバッファ内にコマンドを受信させる。
クにコマンドを供給するには、Rバスを介してその機能ユニットの特定アドレス
にコマンドを送る。従って、例えば、ビデオデコーダ104にコマンドを供給す
るには、VLD_CMDアドレスを識別するアクセス要求をRバスコントローラ132
に供給する。これに応じて、Rバスコントローラ132は、要求している機能ユ
ニットがRバス126にコマンドを供給することを可能にすると共に、ビデオデ
コーダ104のコマンドバッファ内にコマンドを受信させる。
【0026】 ビデオデコーダ104は本発明の主要部であり、その動作や特徴についてはF
ig.2〜6Gに明確に示す。本発明の原理によれば、ビデオデコーダ104は
、特にMPEG−1及びMP@ML(Main Profile @ Main Level)MPEG−
2シンタックス準拠のデジタル符号化されたビデオ信号のビデオ復号化を行うよ
うに構成されている。本願において全体として参照することにより組み込まれた
ISO/IEC13182−2:1995(E)に記載されているように、MP
EG−2シンタックスは、特に、シーケンスレイヤ、グループオブピクチャレイ
ヤ、ピクチャレイヤ、スライスレイヤ、マクロブロックレイヤ、ブロックレイヤ
という6レイヤの画像シーケンスを表すビデオデータ及び制御情報の圧縮ビット
ストリームを定義する。符号化されたビットストリームにおける各レイヤには、
そのレイヤを識別すると共に、ビデオデコーダ104によりパージング及び復号
化を行う必要がある固定長データ値又は可変長ハフマン符号化データのいずれか
あるいは両方を与えるユニークスタートコードが含まれる。スライスレイヤより
上の画像制御情報の上位レイヤパージングは、RISC CPU112により行
われる。このようにして、RISC CPU112は、ビデオビットストリーム
において送信された画像シーケンスの圧縮解除、再構成、プレゼンテーションを
制御するための十分な情報を圧縮ビデオビットストリームから得る。
ig.2〜6Gに明確に示す。本発明の原理によれば、ビデオデコーダ104は
、特にMPEG−1及びMP@ML(Main Profile @ Main Level)MPEG−
2シンタックス準拠のデジタル符号化されたビデオ信号のビデオ復号化を行うよ
うに構成されている。本願において全体として参照することにより組み込まれた
ISO/IEC13182−2:1995(E)に記載されているように、MP
EG−2シンタックスは、特に、シーケンスレイヤ、グループオブピクチャレイ
ヤ、ピクチャレイヤ、スライスレイヤ、マクロブロックレイヤ、ブロックレイヤ
という6レイヤの画像シーケンスを表すビデオデータ及び制御情報の圧縮ビット
ストリームを定義する。符号化されたビットストリームにおける各レイヤには、
そのレイヤを識別すると共に、ビデオデコーダ104によりパージング及び復号
化を行う必要がある固定長データ値又は可変長ハフマン符号化データのいずれか
あるいは両方を与えるユニークスタートコードが含まれる。スライスレイヤより
上の画像制御情報の上位レイヤパージングは、RISC CPU112により行
われる。このようにして、RISC CPU112は、ビデオビットストリーム
において送信された画像シーケンスの圧縮解除、再構成、プレゼンテーションを
制御するための十分な情報を圧縮ビデオビットストリームから得る。
【0027】 次に、Fig.2及び2Aを参照して、ビデオデコーダ104のブロック図を
詳細に示す。以下に詳細に説明するが、ビデオデコーダ104の主な機能は、個
々のスライスのマクロブロック及びブロックレイヤを復号化するための、1サイ
クル当たり1順序シンボルのスライスパージングエンジンである。スライスエン
ドに達すると、RISC CPU112に割り込みが送られて、種々のメモリチ
ェックを行うと共に次のスライスの処理を命令する。ビデオデコーダ104は主
として、ライン138を介してVLDコマンド復号化/実行ユニット136との
インターフェースを行うマイクロシーケンサ134を通して制御される。マイク
ロシーケンサ134は、256×16インストラクションROM140とインス
トラクション復号化/制御ユニット142を備えている(Fig.2A参照)。
各スライス毎のマクロブロック及びブロックレイヤの復号化プロセスにおいて、
マイクロシーケンサ134は、VLDコマンド復号化/実行ユニット136にコ
マンドを送って可変長復号化を行うか、あるいは、インストラクションセットに
より与えられるプログラムフローを制御するようにプログラムされている。さら
に、VLDコマンド復号化/実行ユニット136は、Rバスインターフェース1
44、ライン146、マルチプレクサ148を介してRISC CPU112か
らインストラクションを直接受信してもよい。以下に詳細に説明するが、RIS
C CPU112、マイクロシーケンサ134、VLDコマンド復号化/実行ユ
ニット136は、VLD構造データパスの一部を構成する一連のVLDコマンド
インストラクションレジスタ(VCIレジスタ)150のコンテンツの読み出し
及び書き込みを行うことができる。
詳細に示す。以下に詳細に説明するが、ビデオデコーダ104の主な機能は、個
々のスライスのマクロブロック及びブロックレイヤを復号化するための、1サイ
クル当たり1順序シンボルのスライスパージングエンジンである。スライスエン
ドに達すると、RISC CPU112に割り込みが送られて、種々のメモリチ
ェックを行うと共に次のスライスの処理を命令する。ビデオデコーダ104は主
として、ライン138を介してVLDコマンド復号化/実行ユニット136との
インターフェースを行うマイクロシーケンサ134を通して制御される。マイク
ロシーケンサ134は、256×16インストラクションROM140とインス
トラクション復号化/制御ユニット142を備えている(Fig.2A参照)。
各スライス毎のマクロブロック及びブロックレイヤの復号化プロセスにおいて、
マイクロシーケンサ134は、VLDコマンド復号化/実行ユニット136にコ
マンドを送って可変長復号化を行うか、あるいは、インストラクションセットに
より与えられるプログラムフローを制御するようにプログラムされている。さら
に、VLDコマンド復号化/実行ユニット136は、Rバスインターフェース1
44、ライン146、マルチプレクサ148を介してRISC CPU112か
らインストラクションを直接受信してもよい。以下に詳細に説明するが、RIS
C CPU112、マイクロシーケンサ134、VLDコマンド復号化/実行ユ
ニット136は、VLD構造データパスの一部を構成する一連のVLDコマンド
インストラクションレジスタ(VCIレジスタ)150のコンテンツの読み出し
及び書き込みを行うことができる。
【0028】 上述のように、符号化されたビデオデータは、まずDRAM114に記憶され
る。符号化されたビデオデータは、Gバス128を介してビデオデコーダ104
からメモリコントローラ116までの各ユニットに使用可能とされる。ビデオデ
コーダ104は、16×64チャネルバッファFIFO152としてのGバスを
備え、このバッファFIFO152は、復号化プロセス中にそれがバッファFI
FO152が空になったり溢れたりしないように十分な量の符号化されたビデオ
ビットストリームを記憶する。
る。符号化されたビデオデータは、Gバス128を介してビデオデコーダ104
からメモリコントローラ116までの各ユニットに使用可能とされる。ビデオデ
コーダ104は、16×64チャネルバッファFIFO152としてのGバスを
備え、このバッファFIFO152は、復号化プロセス中にそれがバッファFI
FO152が空になったり溢れたりしないように十分な量の符号化されたビデオ
ビットストリームを記憶する。
【0029】 ビデオデコーダ104の主な機能の一つとして、ビデオビットストリームにお
ける可変長符号化されたデータを復号化することが挙げられる。可変長データは
、MPEG−1及びMPEG−2規格で定義されるVLCテーブルに従ってハフ
マン符号化される。本発明のVLDはMPEG VLCテーブルのうちの少なく
とも11個のテーブルをサポートする。すなわち、macroblock_type_I、macrobl
ock_type_P、macroblock_type_B、macroblock_type_D、macroblock_address_inc
rement、dct_dc_size_luma、dct_dc_size_chrominance、ac_table(テーブル0
及びテーブル1)、coded_block_pattern、motion_code、dmvector である。
ける可変長符号化されたデータを復号化することが挙げられる。可変長データは
、MPEG−1及びMPEG−2規格で定義されるVLCテーブルに従ってハフ
マン符号化される。本発明のVLDはMPEG VLCテーブルのうちの少なく
とも11個のテーブルをサポートする。すなわち、macroblock_type_I、macrobl
ock_type_P、macroblock_type_B、macroblock_type_D、macroblock_address_inc
rement、dct_dc_size_luma、dct_dc_size_chrominance、ac_table(テーブル0
及びテーブル1)、coded_block_pattern、motion_code、dmvector である。
【0030】 Fig.2に明確に示すように、チャネルバッファFIFO152は、チャネ
ルバッファFIFO152から各64ビットバスを介して一対のA、Bレジスタ
156A、156Bのそれぞれに64ビットのビデオデータを供給する。本発明
によれば、ポインタアドレス+31までのポインタアドレスからのビットをVL
Dコマンド復号化/実行ユニット136に対して認識可能にするため、ロテータ
/バレルシフタ158とポインタレジスタ160が設けられている。これら32
ビットは、ロテータ/バレルシフタデータ162としてVLDコマンド復号化/
実行ユニット136に供給される。
ルバッファFIFO152から各64ビットバスを介して一対のA、Bレジスタ
156A、156Bのそれぞれに64ビットのビデオデータを供給する。本発明
によれば、ポインタアドレス+31までのポインタアドレスからのビットをVL
Dコマンド復号化/実行ユニット136に対して認識可能にするため、ロテータ
/バレルシフタ158とポインタレジスタ160が設けられている。これら32
ビットは、ロテータ/バレルシフタデータ162としてVLDコマンド復号化/
実行ユニット136に供給される。
【0031】 Fig.2及び3を参照して、A、Bレジスタ156A、156Bは、128
ビットリングに接続され、Aレジスタのビット63からBレジスタのビット64
へのポインタの境界切り替えと、Bレジスタのビット127からAレジスタのビ
ット0への境界切り替えを可能にする。ポインタがAレジスタからBレジスタへ
切り替わるとき、Aレジスタのコンテンツは新たなデータによりリフレッシュさ
れる。同様に、ポインタがBレジスタからAレジスタへ切り替わるとき、Bレジ
スタのコンテンツは新たなデータによりリフレッシュされる。リングを回るポイ
ンタの動きを可能にすると共に128ビットのそれぞれをポインタに対してアク
セス可能にするため、Fig.3に示すバレルシフタ164は、2のべき乗分だ
けデータの左方向への種々のインクリメント的シフトを行うか、全くシフトを行
わない7つのセレクタステージを有している。第1ステージ166は、「ステー
ジ64/0」と称するもので、128ビットのそれぞれを左方向に64ビットシ
フトさせるか、全くシフトさせない128個のセレクタ(D0〜D127)を有
している。第2ステージ168は、「ステージ32/0」と称するもので、左方
向へ32ビット分のシフトを行うか、全くシフトを行わない95個のセレクタを
有している。第3ステージ170は、「ステージ16/0」と称するもので、左
方向へ16ビット分のシフトを行うか、全くシフトを行わない63個のセレクタ
を有している。第4ステージ172は、「ステージ8/0」と称するもので、左
方向へ8ビット分のシフトを行うか、全くシフトを行わない47個のセレクタを
有している。第5ステージ174は、「ステージ4/0」と称するもので、左方
向へ4ビット分のシフトを行うか、全くシフトを行わない39個のセレクタを有
している。第6ステージ176は、「ステージ2/0」と称するもので、左方向
へ2ビット分のシフトを行うか、全くシフトを行わない35個のセレクタを有し
ている。第7ステージ178は、「ステージ1/0」と称するもので、左方向へ
1ビット分のシフトを行うか、全くシフトを行わない33個のセレクタを有して
いる。
ビットリングに接続され、Aレジスタのビット63からBレジスタのビット64
へのポインタの境界切り替えと、Bレジスタのビット127からAレジスタのビ
ット0への境界切り替えを可能にする。ポインタがAレジスタからBレジスタへ
切り替わるとき、Aレジスタのコンテンツは新たなデータによりリフレッシュさ
れる。同様に、ポインタがBレジスタからAレジスタへ切り替わるとき、Bレジ
スタのコンテンツは新たなデータによりリフレッシュされる。リングを回るポイ
ンタの動きを可能にすると共に128ビットのそれぞれをポインタに対してアク
セス可能にするため、Fig.3に示すバレルシフタ164は、2のべき乗分だ
けデータの左方向への種々のインクリメント的シフトを行うか、全くシフトを行
わない7つのセレクタステージを有している。第1ステージ166は、「ステー
ジ64/0」と称するもので、128ビットのそれぞれを左方向に64ビットシ
フトさせるか、全くシフトさせない128個のセレクタ(D0〜D127)を有
している。第2ステージ168は、「ステージ32/0」と称するもので、左方
向へ32ビット分のシフトを行うか、全くシフトを行わない95個のセレクタを
有している。第3ステージ170は、「ステージ16/0」と称するもので、左
方向へ16ビット分のシフトを行うか、全くシフトを行わない63個のセレクタ
を有している。第4ステージ172は、「ステージ8/0」と称するもので、左
方向へ8ビット分のシフトを行うか、全くシフトを行わない47個のセレクタを
有している。第5ステージ174は、「ステージ4/0」と称するもので、左方
向へ4ビット分のシフトを行うか、全くシフトを行わない39個のセレクタを有
している。第6ステージ176は、「ステージ2/0」と称するもので、左方向
へ2ビット分のシフトを行うか、全くシフトを行わない35個のセレクタを有し
ている。第7ステージ178は、「ステージ1/0」と称するもので、左方向へ
1ビット分のシフトを行うか、全くシフトを行わない33個のセレクタを有して
いる。
【0032】 バレルシフタ164の構造により、A、Bレジスタ156A、156Bの12
8ビットのうちいずれか32ビットをロテータ/バレルシフタデータ162とし
てVLDコマンド復号化/実行ユニット136に対して使用可能とすることがで
きる。各ステージ166〜178では、左方向へのシフトを矢印180で示し、
シフトなしを矢印182で示している。バレルシフタ164に関して用いている
ように、「セレクタ」という用語が、先に詳細に説明した左シフト又はシフトな
しの動作を行ういかなる回路をも意味することは、当該分野の技術者にとっては
理解できるであろう。本発明によるバレルシフタ164の動作では、Fig.3
に仮想的な三角形182に示すように、種々のセレクタをステージ168〜17
8の幾つかから除くことができる。バレルシフタ164を対称的な長方形ではな
く台形に切ることにより、不要なセレクタを除去して、コストとハードウェアの
節約ができることがわかる。
8ビットのうちいずれか32ビットをロテータ/バレルシフタデータ162とし
てVLDコマンド復号化/実行ユニット136に対して使用可能とすることがで
きる。各ステージ166〜178では、左方向へのシフトを矢印180で示し、
シフトなしを矢印182で示している。バレルシフタ164に関して用いている
ように、「セレクタ」という用語が、先に詳細に説明した左シフト又はシフトな
しの動作を行ういかなる回路をも意味することは、当該分野の技術者にとっては
理解できるであろう。本発明によるバレルシフタ164の動作では、Fig.3
に仮想的な三角形182に示すように、種々のセレクタをステージ168〜17
8の幾つかから除くことができる。バレルシフタ164を対称的な長方形ではな
く台形に切ることにより、不要なセレクタを除去して、コストとハードウェアの
節約ができることがわかる。
【0033】 Fig.2及び5に明確に示すように、ロテータ/バレルシフタデータ162
の32ビットは、MPEG規格の可変長コード(VLC)テーブルを組み込んだ
可変長テーブルデコーダ184に対しても使用可能とされる。本発明によれば、
VLDコマンド復号化/実行ユニット136が11個のMPEG VLCテーブ
ルのそれぞれにアクセスすることを可能にする新規な方式が提供される。Fig
.4の"macroblock_address_increment"についてのVLCテーブルを例として、
可変コードにおける最初の「1」に至る「0」の数を定めるプレフィクスパター
ンと、すべてのユニークプレフィクスパターンからなるセットを発生させるのに
必要なエキストラロジックが各MPEG VLCテーブルにおいて識別されてい
る。
の32ビットは、MPEG規格の可変長コード(VLC)テーブルを組み込んだ
可変長テーブルデコーダ184に対しても使用可能とされる。本発明によれば、
VLDコマンド復号化/実行ユニット136が11個のMPEG VLCテーブ
ルのそれぞれにアクセスすることを可能にする新規な方式が提供される。Fig
.4の"macroblock_address_increment"についてのVLCテーブルを例として、
可変コードにおける最初の「1」に至る「0」の数を定めるプレフィクスパター
ンと、すべてのユニークプレフィクスパターンからなるセットを発生させるのに
必要なエキストラロジックが各MPEG VLCテーブルにおいて識別されてい
る。
【0034】 例えば、Fig.4の"macroblock_address_increment"テーブルでは、各可変
長コードが、K0、K1、K2、K3、K4_0、K4_1、K5_1、K5_ 01 、K5_001、K5_000、K6と定義されたプレフィクスパターンを
有している。K0は、最初の「1」の前に「0」がないことを示し、K1は、最
初の「1」の前に「0」が1つであることを示し、以下、K2、K3、K6につ
いても同様である。可変長コードの幾つかについては、すべてのユニークプレフ
ィクスパターンのセットを発生させるのに、K4_0、K4_1、K5_1、K 5_01 、K5_001、K5_000のように「1」の前に「0」が続いてい
るパターンの後にエキストラロジックが必要である。このように、各サブテーブ
ルがユニークプレフィクスパターンのいずれかに対応するように、サブテーブル
のセットをMPEG VLCテーブルのそれぞれにおいてプレフィクスパターン
により定義してもよい。さらに、各可変長コードは、可変長コードにおけるビッ
ト数を定めるコード長を有している。インクリメント値は、ピクチャの左端に対
する、あるスライスにおける最初のマクロブロックの水平位置、あるいは、最後
に送信されたマクロブロックからの差分インクリメント値を定義する"macrobloc
k_address_increment"の各可変長コードに関連している。この例から、当該分野
の技術者にとっては、他のMPEG VLCテーブルについてのプレフィクスパ
ターンとエキストラロジックがどのように定義されるかが容易にわかるであろう
。
長コードが、K0、K1、K2、K3、K4_0、K4_1、K5_1、K5_ 01 、K5_001、K5_000、K6と定義されたプレフィクスパターンを
有している。K0は、最初の「1」の前に「0」がないことを示し、K1は、最
初の「1」の前に「0」が1つであることを示し、以下、K2、K3、K6につ
いても同様である。可変長コードの幾つかについては、すべてのユニークプレフ
ィクスパターンのセットを発生させるのに、K4_0、K4_1、K5_1、K 5_01 、K5_001、K5_000のように「1」の前に「0」が続いてい
るパターンの後にエキストラロジックが必要である。このように、各サブテーブ
ルがユニークプレフィクスパターンのいずれかに対応するように、サブテーブル
のセットをMPEG VLCテーブルのそれぞれにおいてプレフィクスパターン
により定義してもよい。さらに、各可変長コードは、可変長コードにおけるビッ
ト数を定めるコード長を有している。インクリメント値は、ピクチャの左端に対
する、あるスライスにおける最初のマクロブロックの水平位置、あるいは、最後
に送信されたマクロブロックからの差分インクリメント値を定義する"macrobloc
k_address_increment"の各可変長コードに関連している。この例から、当該分野
の技術者にとっては、他のMPEG VLCテーブルについてのプレフィクスパ
ターンとエキストラロジックがどのように定義されるかが容易にわかるであろう
。
【0035】 次にFig.5に示す可変長テーブルデコーダ186を参照して、可変長復号
化プロセスにおいて、ロテータ/バレルシフタデータ162の32ビットがパタ
ーンマッチロジック及びMUXコントロール188に送られ、ロテータ/バレル
シフタデータ162におけるユニークプレフィクスパターンを識別する。識別さ
れたプレフィクスパターンマッチ、例えばK0、K1等は、11個のMPEG
VLCテーブルのそれぞれにおける各MUX192の出力を制御するための信号
[MUX CNTL」190として使用される。従って、パターンマッチロジッ
ク及びMUXコントロール188により決定されたプレフィクスパターンマッチ
は、Fig.5に示すような"macroblock_address_increment"や"motion_code"
のVLCテーブルを含む11個のMPEG VLCテーブルのすべての間で共用
され、それぞれのMUX192の出力を制御する。
化プロセスにおいて、ロテータ/バレルシフタデータ162の32ビットがパタ
ーンマッチロジック及びMUXコントロール188に送られ、ロテータ/バレル
シフタデータ162におけるユニークプレフィクスパターンを識別する。識別さ
れたプレフィクスパターンマッチ、例えばK0、K1等は、11個のMPEG
VLCテーブルのそれぞれにおける各MUX192の出力を制御するための信号
[MUX CNTL」190として使用される。従って、パターンマッチロジッ
ク及びMUXコントロール188により決定されたプレフィクスパターンマッチ
は、Fig.5に示すような"macroblock_address_increment"や"motion_code"
のVLCテーブルを含む11個のMPEG VLCテーブルのすべての間で共用
され、それぞれのMUX192の出力を制御する。
【0036】 以下に詳細に説明するが、ある時点で復号化されるVLCテーブルは、VLD
コマンド復号化/実行ユニット136により与えられる「VLCテーブル選択」
信号194により決定される。各MUX192に送られるMUX CNTL信号
190を定義するためにプレフィクスパターンマッチをパターンマッチロジック
及びMUXコントロール188により識別するのと同時に、バス196で示すよ
うに、ロテータ/バレルシフタデータ162の32ビットにおける先頭のパター
ンマッチ後のビットが、11個のMPEG VLCテーブルのそれぞれにおける
サブテーブルのすべてに同時に送られる。従って、"macroblock_address_increm
ent"のVLCテーブルが「VLCテーブル選択」信号194により選択され、プ
レフィクスパターンマッチがK5_1であり、バス196を介してサブテーブル
K5_1に「1」が適用された場合、MUX192は、(インクリメント値を示
す)復号値14と、(可変長コードにおけるビット数を示す)コード長8と、(
コードの有効性を示す)有効ステータスビットをVLDコマンド復号化/実行ユ
ニット136に出力する。従って、復号化プロセスの終了後、可変長テーブルデ
コーダ186は、復号化値198と有効コードステータスビット200からなる
2つの信号をVLDコマンド復号化/実行ユニット136に供給する。また、可
変長テーブルデコーダ186は、ライン204を介してポインタレジスタ160
にコード長信号202を供給して、コード長によりポインタレジスタをインクリ
メントする。可変長テーブルデコーダ186は、RAM又はROMであってもよ
いが、好ましくは配線による最適化ランダムロジックである。
コマンド復号化/実行ユニット136により与えられる「VLCテーブル選択」
信号194により決定される。各MUX192に送られるMUX CNTL信号
190を定義するためにプレフィクスパターンマッチをパターンマッチロジック
及びMUXコントロール188により識別するのと同時に、バス196で示すよ
うに、ロテータ/バレルシフタデータ162の32ビットにおける先頭のパター
ンマッチ後のビットが、11個のMPEG VLCテーブルのそれぞれにおける
サブテーブルのすべてに同時に送られる。従って、"macroblock_address_increm
ent"のVLCテーブルが「VLCテーブル選択」信号194により選択され、プ
レフィクスパターンマッチがK5_1であり、バス196を介してサブテーブル
K5_1に「1」が適用された場合、MUX192は、(インクリメント値を示
す)復号値14と、(可変長コードにおけるビット数を示す)コード長8と、(
コードの有効性を示す)有効ステータスビットをVLDコマンド復号化/実行ユ
ニット136に出力する。従って、復号化プロセスの終了後、可変長テーブルデ
コーダ186は、復号化値198と有効コードステータスビット200からなる
2つの信号をVLDコマンド復号化/実行ユニット136に供給する。また、可
変長テーブルデコーダ186は、ライン204を介してポインタレジスタ160
にコード長信号202を供給して、コード長によりポインタレジスタをインクリ
メントする。可変長テーブルデコーダ186は、RAM又はROMであってもよ
いが、好ましくは配線による最適化ランダムロジックである。
【0037】 次にFig.2及び3を参照し、可変長テーブルデコーダ186からのコード
長信号202を使用して、ポインタレジスタ160をインクリメントする。コー
ド長信号202は、バレルシフタ164によりバレルシフタにおける必要なシフ
トパターンを制御するのにも使用される。例えば、コード長信号202の値が1
3である場合、バレルシフタ164のステージ172(8/0)、174(4/
0)、178(1/0)が左方向に13ビットのシフトを生じることが可能とな
り、他のステージはシフトがない。バレルシフタ164によりシフト処理がおこ
なれた後、VLDコマンド復号化/実行ユニット136と可変長テーブルデコー
ダ186に対して新たなセットのロテータ/バレルシフタデータ162が認識可
能とされる。本発明の可変長テーブルデコーダ186とバレルシフタ164は、
MPEG可変長コードの効率的な復号化を行うと共にVLCテーブルのメモリ要
件を低減する。
長信号202を使用して、ポインタレジスタ160をインクリメントする。コー
ド長信号202は、バレルシフタ164によりバレルシフタにおける必要なシフ
トパターンを制御するのにも使用される。例えば、コード長信号202の値が1
3である場合、バレルシフタ164のステージ172(8/0)、174(4/
0)、178(1/0)が左方向に13ビットのシフトを生じることが可能とな
り、他のステージはシフトがない。バレルシフタ164によりシフト処理がおこ
なれた後、VLDコマンド復号化/実行ユニット136と可変長テーブルデコー
ダ186に対して新たなセットのロテータ/バレルシフタデータ162が認識可
能とされる。本発明の可変長テーブルデコーダ186とバレルシフタ164は、
MPEG可変長コードの効率的な復号化を行うと共にVLCテーブルのメモリ要
件を低減する。
【0038】 MPEG規格によれば、可変長符号化されたDCT係数は、Fig.2にシン
ボル<r、l>として示すようにランレングスと振幅レベルの対として復号化さ
れる。値「r」は、「l」により示される振幅レベルを有する係数の前のゼロ値
係数の数を表す。例えば、シンボル<5、2>は、係数値2の前にゼロが5つで
あることを示す。また、本発明によれば、ランレングスと振幅レベルの対が可変
長テーブルデコーダ186により復号化されると、ランレングスと振幅レベルの
対のシンボルは、VLDコマンド復号化/実行ユニット136から64×18ラ
ンレベルデコーダ/FIFO206に送られ、64×18ランレベルデコーダ/
FIFO206では、逆ジグザグ/逆量子化/逆DCT変換ユニット208で必
要となるまで、それらの対のシンボルを圧縮した対として記憶する。なお、圧縮
シンボルの数はDCT係数の数よりも少ないので、ランレベルデコーダ/FIF
O206は、先に復号化されたランレベルの対のランレベル復号化と同時に、ハ
フマン符号化された可変長対の復号化を行うことができる。
ボル<r、l>として示すようにランレングスと振幅レベルの対として復号化さ
れる。値「r」は、「l」により示される振幅レベルを有する係数の前のゼロ値
係数の数を表す。例えば、シンボル<5、2>は、係数値2の前にゼロが5つで
あることを示す。また、本発明によれば、ランレングスと振幅レベルの対が可変
長テーブルデコーダ186により復号化されると、ランレングスと振幅レベルの
対のシンボルは、VLDコマンド復号化/実行ユニット136から64×18ラ
ンレベルデコーダ/FIFO206に送られ、64×18ランレベルデコーダ/
FIFO206では、逆ジグザグ/逆量子化/逆DCT変換ユニット208で必
要となるまで、それらの対のシンボルを圧縮した対として記憶する。なお、圧縮
シンボルの数はDCT係数の数よりも少ないので、ランレベルデコーダ/FIF
O206は、先に復号化されたランレベルの対のランレベル復号化と同時に、ハ
フマン符号化された可変長対の復号化を行うことができる。
【0039】 また、Fig.2に示すように、復号化された動きベクトル「mv」と差分動
きベクトル「dmv」がVLDコマンド復号化/実行ユニット136から16×
13mv/dmvFIFO210に送られ、16×13mv/dmvFIFO2
10は、動き補償ユニット212で必要となるまでそれらを記憶する。本願では
、1997年12月30日出願の米国特許出第願09/001122号(U.S. P
atent Application Serial No. 09/001,122)「動き補償されたデジタルビデオ
復号及びこのためのバッファメモリアドレッシング(MOTION COMPENSATED DIGIT
AL VIDEO DECODING AND BUFFER MEMORY ADDRESSING THEREFOR)」を全体として
参照することにより組み込むが、これに詳細に記載されるように、復号化された
ビデオデータ値と動きベクトルは、動き補償ユニット212により組み合わせら
れて表示用の完全なI、P、Bフレームを形成する。VLDコマンド復号化/実
行ユニット136は、好ましくは動きベクトル、差分動きベクトル、マクロブロ
ックインクリメントアドレス、dc係数、ac係数の計算のためのステートマシ
ンを有している。
きベクトル「dmv」がVLDコマンド復号化/実行ユニット136から16×
13mv/dmvFIFO210に送られ、16×13mv/dmvFIFO2
10は、動き補償ユニット212で必要となるまでそれらを記憶する。本願では
、1997年12月30日出願の米国特許出第願09/001122号(U.S. P
atent Application Serial No. 09/001,122)「動き補償されたデジタルビデオ
復号及びこのためのバッファメモリアドレッシング(MOTION COMPENSATED DIGIT
AL VIDEO DECODING AND BUFFER MEMORY ADDRESSING THEREFOR)」を全体として
参照することにより組み込むが、これに詳細に記載されるように、復号化された
ビデオデータ値と動きベクトルは、動き補償ユニット212により組み合わせら
れて表示用の完全なI、P、Bフレームを形成する。VLDコマンド復号化/実
行ユニット136は、好ましくは動きベクトル、差分動きベクトル、マクロブロ
ックインクリメントアドレス、dc係数、ac係数の計算のためのステートマシ
ンを有している。
【0040】 Fig.2Aが、マイクロシーケンサ134とVLDコマンド復号化/実行ユ
ニット136との間の全体的なプログラムフローコントロールを示すの対して、
Fig.6A〜6Gは、ビデオデコーダ104のマイクロシーケンサ134によ
りサポートされるインストラクションセットを示す。特に、マイクロシーケンサ
のインストラクションセットは8つのインストラクション214a〜214gか
らなり、それぞれ3ビットのopコード216を有し、インストラクション21
4bは2つの異なるインストラクションを表す。Fig.6A〜6Gに示すイン
ストラクションのうち、インストラクション214bのインストラクションIC
MD及びCMDIのみが実行コマンドである。他の6つのインストラクション2
14a及び214c〜214gはすべて、以下に詳細に説明するが、フローコン
トロールインストラクションである。インストラクション214a〜214gの
ほとんどは、VCIレジスタ150において求めたデータからオフで動作する。
ニット136との間の全体的なプログラムフローコントロールを示すの対して、
Fig.6A〜6Gは、ビデオデコーダ104のマイクロシーケンサ134によ
りサポートされるインストラクションセットを示す。特に、マイクロシーケンサ
のインストラクションセットは8つのインストラクション214a〜214gか
らなり、それぞれ3ビットのopコード216を有し、インストラクション21
4bは2つの異なるインストラクションを表す。Fig.6A〜6Gに示すイン
ストラクションのうち、インストラクション214bのインストラクションIC
MD及びCMDIのみが実行コマンドである。他の6つのインストラクション2
14a及び214c〜214gはすべて、以下に詳細に説明するが、フローコン
トロールインストラクションである。インストラクション214a〜214gの
ほとんどは、VCIレジスタ150において求めたデータからオフで動作する。
【0041】 以下に示す表は、種々のVCIレジスタ150の記述を行うものである。表1
はVCIコントロールレジスタの記述を定義する。表2はマクロブロック及びブ
ロックレイヤレジスタの記述を定義する。表3は上位レイヤ復号化のためのピク
チャレイヤレジスタの記述を定義する。表3のレジスタはRISC CPU11
2により書かれている。表4はコントロール及びステータスレジスタの記述を定
義し、表5はプレディクタ及びステートマシンレジスタの記述を定義する。
はVCIコントロールレジスタの記述を定義する。表2はマクロブロック及びブ
ロックレイヤレジスタの記述を定義する。表3は上位レイヤ復号化のためのピク
チャレイヤレジスタの記述を定義する。表3のレジスタはRISC CPU11
2により書かれている。表4はコントロール及びステータスレジスタの記述を定
義し、表5はプレディクタ及びステートマシンレジスタの記述を定義する。
【0042】 表1:VCIコントロールレジスタの定義 名称 フィールド タイプ 記述 vci_addr [5:0] r/w VCI間接レジスタアドレス vci_data [15:0] r/w VCI間接レジスタアドレス
【0043】 VCIコントロールレジスタは、以下の表2〜5において定義されるVCI間
接レジスタにアクセスするのに使用される。RISC CPU112は、特定ア
ドレスのVCI間接レジスタのコンテンツの読み出し及び書き込みを行うように
VCI_addrレジスタをセットアップする。この読み出し及び書き込み動作
はVCI_dataレジスタにより行われる。
接レジスタにアクセスするのに使用される。RISC CPU112は、特定ア
ドレスのVCI間接レジスタのコンテンツの読み出し及び書き込みを行うように
VCI_addrレジスタをセットアップする。この読み出し及び書き込み動作
はVCI_dataレジスタにより行われる。
【0044】 表2:マクロブロックレベルのVCI間接レジスタの定義 名称 アドレス 幅 Dir 記述 vci_mba_x 0×00 7 r/w マクロブロックアドレスx次元 vci_mba_y 0×01 7 r/w マクロブロックアドレスy次元 vci_vld_out 0×02 16 r/w VLDの仮出力 vci_q_scale 0×03 5 r/w 量子化スケール情報 vci_cbp 0×04 8 r/w 符号化ブロックパターン
【0045】 表2:マクロブロックレベルのVCI間接レジスタの定義(続き) 名称 アドレス 幅 Dir 記述 vci_mtype 0×05 5 r/w マクロブロックタイプ vci_motype 0×06 3 r/w 復号化された動きのタイプ [0]mv_count 0:1ベクトル、1:2ベクトル [1]mv_format 0:フィールド、1:フレーム [2]dmv vci_dct_type 0×07 1 r/w dctタイプ 0:フレーム、1:フィールド vci_mvfsl 0×08 1 r/w 動き垂直フィールド選択1 reserved 0×09 1 リザーブ vci_temp_0 0×0a〜 r/w リザーブ 0×0f
【0046】 表3:ピクチャレベルレイヤのVCI間接レジスタの定義 名称 アドレス 幅 Dir 記述 vci_pic_init 0×10 26 r/w [25:24]:DC精度 −−>00:8ビット、01:9ビット 、10:10ビット、 −−>11:11ビット [23:20]:後方垂直fコード [19:16]:後方水平fコード [15:12]:前方垂直fコード [11:8]:前方水平fコード [7]:コンシールメント動きベクトル [6]:イントラvlcフォーマット [5]:frame_pred_frame_dct [4:2]:ピクチャ符号化タイプ (I,P,B,D) [1:0]:ピクチャストラクチャ (フィールド、フレーム) −−>[00]:リザーブ −−>[01]:トップフィールド −−>[10]:ボトムフィールド −−>[11]:フレーム vci_seq_init 0×11 10 r/w [10:4]:mb数×次元 [3]:0:レギュラー、 1:スペシャル−−blkタイプ [2]:0:mpeg2、1:mpeg1 [1:0]:クロマフォーマット −−>00:リザーブ、01:420、 10:422、 −−>11:444 vci_conceal 0×12 3 r/w コンシールメントカウント レジスタ vci_temp_1 0×13〜 r/w リザーブ 0×1f
【0047】 表4:コントロール及びステータスのVCI間接レジスタの定義 名称 アドレス 幅 Dir 記述 vci_cntl 0×20 2 r/w vciステートコントロールレジス タ [31:30]=00:ラン [31:30]=10:ホールト [31:30]=11:リセット vci_pc 0×21 8 r/w vciプログラムカウンタ vci_rom 0×22 16 r/w vci_rom出力ポート vci_dmvfifo_adr 0×23 3 r/w dmb_fifo読み出し/書き込みアド レス vci_dmvfifo 0×24 2 r/w dmv_fifoデータポート vci_pointer 0×25 7 r/w ロテータポインタ vci_dec_lped 0×26 12 r/w 輝度DC予測値。DClpredへの書き 込みは、DEC_modeレジスタにおけ るDC精度ビットにより示される定 数値へリセットする。 vci_dec_cpred 0×27 r/w クロマDC予測値。DEC_cpredへの 書き込みは、DEC_modeレジスタに おけるDC精度ビットにより示され る定数値にリセットする。 [23:12] V [11:10] U vci_temp_2 0×28〜 リザーブ 0×2f
【0048】 表5:プレディクタ及びステートマシンのVCI間接レジスタの定義 名称 アドレス 幅 Dir 記述 vci_mv_predfh0 0×30 13 r/w mvfs、動きベクトルプレディクタ 前方水平−ファースト vci_mv_predfv0 0×31 13 r/w mvfs、動きベクトルプレディクタ 前方垂直−ファースト vci_mv_predbh0 0×32 13 r/w mvfs、動きベクトルプレディクタ 後方垂直−ファースト vci_mv_predfh1 0×34 13 r/w mvfs、動きベクトルプレディクタ 前方水平−セカンド vci_mv_predfv1 0×35 13 r/w mvfs、動きベクトルプレディクタ 前方垂直−セカンド vci_mv_predbh1 0×36 13 r/w mvfs、動きベクトルプレディクタ 後方水平−セカンド vci_mv_predbv1 0×37 13 r/w mvfs、動きベクトルプレディクタ 後方垂直−セカンド vci_err_bits 0×38 10 r エラー条件 [9]motype_err [8]coef_err [7]rl_error [6]cbp_err [5]mv_err [4]mbi_err [3]mtype_err [2]get_ac_err [1]dctdcsz_chroma_err [0]dctdcsz_luma_err
【0049】 表5:プレディクタ及びステートマシンのVCI間接レジスタの定義(続き) 名称 アドレス 幅 Dir 記述 vci_stm 0×39 4 r ステートマシン: [14:12]vstate: motion vec STM [11:9]dc_cstate: dc STM [8:7]sc_state: start-code STM [6:3]ms_cstate: MB STM [2:0]lc_cstate: block STM vci_tmp_3 0×3a〜 0×3f
【0050】 表6は、Rバスインターフェース144を備えたVLDコントロールレジスタ
を定義する。
を定義する。
【0051】 表6:rバスインターフェースを備えたVLDレジスタ 名称 Dir ビットフィールド 記述 dec_value1 r/w [15:0] DECODE BLOCKコマンドを除くすべて のコマンドについての復号化値を保 持する。DECODE BLOCKコマンドはこ のフィールドの復号化DC係数を戻 す。 dec_value2 r/w この値は現在のラン及びレベルを保 持する。 [17:12] 復号化ランレングス [11:0] 復号化レベル mvfifo_adr r/w [4:0] mv_fifo読み出し/書き込みアドレ ス ビット4−0:読み出し、 1:書き込み mvfifo_data r/w [12:0] mv_fifoデータポート
【0052】 表6:rバスインターフェースを備えたVLDレジスタ(続き) 名称 Dir ビットフィールド 記述 vld_cntl r/w [31:30] 00:ラン、10:ホールト、 11:リセット vld_pic_hdr r/w [31:0]] ピクチャレベルパラメータ: [31:28]f_code[0][0](F,H) [27:24]f_code[0][1](F,V) [23:20]f_code[1][0](B,H) [19:16]f_code[1][1](B,V) [15:14]intra_dc_prec [13:12]pic_structure [11]topfld_first [10]frame_prediction_frame_dct [9]concealment_motion_vectors [8]q_scale_type [7]intra_vlc_format [6]alternate_scan [5]repeat_first_field [4]chroma_420 [3]progressive_frame [2:0]pic_type rlfifo_adr r/w [6:0] rl_fifo読み出し/書き込みアドレ スビット6−0:読み出し、 1:書き込み rlfifo_data r/w [17:0] rl_fifoデータポート vld_status r/w [10:0] ステータスビット [10]vld_busy [9]vld_mv_fifo_empty [8]vld_cfifo_empty [7:4]chfifo_wr_addr [3:0]chfifo_rd_addr vld_cmd r/w [7:0] cpuからの実行されるvldコマンド dec_status r/w [15] エラー。ビットストリームが検出さ れた場合にセット。スティッキービ ット。
【0053】 表6:rバスインターフェースを備えたVLDレジスタ(続き) 名称 Dir ビットフィールド 記述 [14] chan_fifo_empty チャネルFIFO空き [13:10] chan_fifo_wrprt チャネルFIFOライトポインタ [9:6] chan_fifo_rdptr チャネルFIFOリードポインタ [5:0] bitcnt デコーダビットストリームリ ードポインタ。デコーダにより次に読 み出されるビットの数。 vld_cmd r/w [7:0] cpuからのvldコマンド−このアドレ スがrバスインターフェースから書き 込まれるとvldコマンドが実行される 。
【0054】 表7は、Gバスインターフェースを備えたVLDコントロールレジスタを定義
する。
する。
【0055】 表7:gバスインターフェースを備えたVLDレジスタ 名称 Dir ビットフィールド 記述 word_fifo r/w [63:0] デコーダFIFOデータポート
【0056】 次にFig.6A〜6Gのマイクロシーケンサインストラクション214a〜
214gについて、TBIT(テストビット)インストラクション214aは、
VCIレジスタ220における("bitnum"218により与えられる)ビットのテ
ストを行い、4ビット前方相対アドレス222の値と等しい場合に分岐する。C
OMP(比較)インストラクション214cは、("msb"224のステータスに
より決定される)vci_vld_outレジスタの8msb又は8lsbのデータコンテ
ンツを即時データ226と比較し、その結果をフラグレジスタ228に保存する
。"st_code"230=1である場合、vci_vld_outレジスタのコンテンツはスター
トコードパターンと比較され、それらがマッチしてスタートコードが求められた
ことを示す場合に、フラグレジスタ228が設定される。BRANCHインスト
ラクション214dは、8ビットの分岐目標アドレス232に対する絶対分岐を
行う。"err"ビット234はvciエラーを示し、"halt"ビット236はvciコン
トロールレジスタをホールトステートに変更することを示す。SETF(フラグ
設定)インストラクション214eは、即時データ238に応じた値によりフラ
グレジスタの8lsbを設定する。INCM(インクリメントマクロブロック)
インストラクション214fは、VCIレジスタ240の下位バイトを即時デー
タ242と比較し、等しくなければストールする。フローコントロールインスト
ラクションの最後には、HALTインストラクション214gがビデオデコーダ
104のホールトを行い、vld_busy信号を取り下げる。
214gについて、TBIT(テストビット)インストラクション214aは、
VCIレジスタ220における("bitnum"218により与えられる)ビットのテ
ストを行い、4ビット前方相対アドレス222の値と等しい場合に分岐する。C
OMP(比較)インストラクション214cは、("msb"224のステータスに
より決定される)vci_vld_outレジスタの8msb又は8lsbのデータコンテ
ンツを即時データ226と比較し、その結果をフラグレジスタ228に保存する
。"st_code"230=1である場合、vci_vld_outレジスタのコンテンツはスター
トコードパターンと比較され、それらがマッチしてスタートコードが求められた
ことを示す場合に、フラグレジスタ228が設定される。BRANCHインスト
ラクション214dは、8ビットの分岐目標アドレス232に対する絶対分岐を
行う。"err"ビット234はvciエラーを示し、"halt"ビット236はvciコン
トロールレジスタをホールトステートに変更することを示す。SETF(フラグ
設定)インストラクション214eは、即時データ238に応じた値によりフラ
グレジスタの8lsbを設定する。INCM(インクリメントマクロブロック)
インストラクション214fは、VCIレジスタ240の下位バイトを即時デー
タ242と比較し、等しくなければストールする。フローコントロールインスト
ラクションの最後には、HALTインストラクション214gがビデオデコーダ
104のホールトを行い、vld_busy信号を取り下げる。
【0057】 ICMD及びCMDI(コマンド発生)インストラクション214bは、22
のコマンドのうちのいずれかをビデオデコーダ104に送り、出力をVCIレジ
スタ244に記憶する。ICMDインストラクションにより、マイクロシーケン
サ134はビデオデコーダ104にコマンドを送り、待機する。CMDIインス
トラクションは、マイクロシーケンサ134によりビデオデコーダ104へコマ
ンドを送り、マイクロコードをランし続ける。
のコマンドのうちのいずれかをビデオデコーダ104に送り、出力をVCIレジ
スタ244に記憶する。ICMDインストラクションにより、マイクロシーケン
サ134はビデオデコーダ104にコマンドを送り、待機する。CMDIインス
トラクションは、マイクロシーケンサ134によりビデオデコーダ104へコマ
ンドを送り、マイクロコードをランし続ける。
【0058】 ビデオデコーダ104に送られる種々のコマンドを表8に示す。
【0059】 表8:VLDコマンド OPコード シンボル 記述 0000 0001 <vld_escape> マクロブロックエスケープ 0000 0010 <vld_peek> ピーク−単にアップデートCCを実行し ない 0000 0011 <vld_startcode> ファーストスタートコード 0000 0100 <vld_mbi> マクロブロックアドレスインクリメント 0000 0101 <vld_cbp> 符号化ブロックパターン 0000 0110 <vld_intra_luma> イントラ輝度ブロックをラン 0000 0111 <vld_intra_chromau> イントラクロマUブロックをラン 0000 1000 <vld_intra>chromav> イントラクロマVブロックをラン 0000 1001 <vld_non_intra> 非イントラブロックをラン 0000 1010* <vld_mbs> マクロブロックスタート信号を発生 0000 1100* <vld_dpcm> 輝度及びクロマプレディクタをリセット 0000 1101* <vld_mv_pred> 動きベクトルプレディクタをリセット 0001 0000 <vld_dmv> デュアルプライム動きベクトルを得る 0001 0100 <vld_non_coded> 非符号化ブロックをラン 0001 0101 <vld_field_motype> 復号化フィールド動きタイプ 0001 0110 <vld_frame_motype> 復号化フレーム動きタイプ 0001 1000 <vld_mtypei> Iピクチャのマクロブロックタイプを得 る 0001 1001 <vld_mtypep> Pピクチャのマクロブロックタイプを得 る 0001 1010 <vld_mtypeb> Bピクチャのマクロブロックタイプを得 る 0001 1011 <vld_mtyped> Dピクチャのマクロブロックタイプを得 る 0010 xxxx <vld_get<bitxx> 次の1〜16ビット(0=>16)を得 る 0011 0xyz <vld_mvxyz> 動きベクトルを得る:x−前方、y−水 平、z−ファースト *:cmdiインストラクションから送る必要がある。
【0060】 表8のVLDコマンドは、多種多様の符号化に共通な自立的動作である。VL
Dインストラクションは、一般に、MPEG VLCテーブルからの値を得るた
めの可変長テーブル復号化コマンド、符号化ビデオデータからのパラメータ化さ
れたビット数を受信するためのインストラクション、又はブロック動作として分
類される。
Dインストラクションは、一般に、MPEG VLCテーブルからの値を得るた
めの可変長テーブル復号化コマンド、符号化ビデオデータからのパラメータ化さ
れたビット数を受信するためのインストラクション、又はブロック動作として分
類される。
【0061】 例えば、<vld_get_bitxx>コマンドは、ロテータ/バレルシフタ158から特
定数のビットを取り出し、取り出したビット数によりポインタレジスタ160を
インクリメントする。<vld_dmv>コマンドは、ビデオデータビットストリームか
らの3つのパラメータを用いてMPEG VLCテーブルのうちのいずれかから
動きベクトル値を取り出す。具体的には、各動きベクトルは前の動きベクトルと
予測の組み合わせとして記憶される。予測はそれ自体、(可変長符号化された)
商と(固定長符号の)余りとして符号化される。<vld_dmv>コマンドは、MPE
G VLCテーブルを介して商を復号化し、余りの位置と商の値を求めるのに使
用される。余りは<vld_get_bitxx>コマンドを用いて得られる。そして、商と余
りが組み合わせられて、動きベクトル成分を生成する。<vld_peek>コマンドは、
取り出したビット数によりポインタレジスタ160をインクリメントすることな
しに、ロテータ/バレルシフタ158からの特定数のビットを認識可能にする。
定数のビットを取り出し、取り出したビット数によりポインタレジスタ160を
インクリメントする。<vld_dmv>コマンドは、ビデオデータビットストリームか
らの3つのパラメータを用いてMPEG VLCテーブルのうちのいずれかから
動きベクトル値を取り出す。具体的には、各動きベクトルは前の動きベクトルと
予測の組み合わせとして記憶される。予測はそれ自体、(可変長符号化された)
商と(固定長符号の)余りとして符号化される。<vld_dmv>コマンドは、MPE
G VLCテーブルを介して商を復号化し、余りの位置と商の値を求めるのに使
用される。余りは<vld_get_bitxx>コマンドを用いて得られる。そして、商と余
りが組み合わせられて、動きベクトル成分を生成する。<vld_peek>コマンドは、
取り出したビット数によりポインタレジスタ160をインクリメントすることな
しに、ロテータ/バレルシフタ158からの特定数のビットを認識可能にする。
【0062】 本発明を種々の実施例を用いて説明し、これらの実施例については非常に詳細
に説明したが、当該分野の技術者にとってはさらなる利点及び変更が容易に明ら
かとなるであろう。従って、本発明は広義において、特定の詳細事項、代表的な
装置や方法、説明及び図示した具体例に限定されるものではない。従って、本願
の一般的発明概念の範囲を逸脱しない限り、このような詳細事項を変更してもよ
い。
に説明したが、当該分野の技術者にとってはさらなる利点及び変更が容易に明ら
かとなるであろう。従って、本発明は広義において、特定の詳細事項、代表的な
装置や方法、説明及び図示した具体例に限定されるものではない。従って、本願
の一般的発明概念の範囲を逸脱しない限り、このような詳細事項を変更してもよ
い。
【図面の簡単な説明】
【図1】 Fig.1は、本発明の原理に従ってデジタルオーディオ/ビデオ信号データ
の圧縮解除及び出力を行うビデオ/オーディオデコーダのブロック図である。
の圧縮解除及び出力を行うビデオ/オーディオデコーダのブロック図である。
【図2】 Fig.2は、デジタル符号化されたビデオデータ及び制御情報を復号化する
ための可変長デコーダ(VLD)により構成される、Fig.1に示す復号化シ
ステムにおけるビデオデコーダのブロック図である。
ための可変長デコーダ(VLD)により構成される、Fig.1に示す復号化シ
ステムにおけるビデオデコーダのブロック図である。
【図3】 Fig.2Aは、Fig.2に示すビデオデコーダのマイクロシーケンサとV
LDコマンド復号化/実行ユニットのブロック図である。
LDコマンド復号化/実行ユニットのブロック図である。
【図4】 Fig.3は、Fig.2の可変長デコーダ(VLD)コマンド復号化/実行
ユニットと可変長テーブルデコーダに、符号化されたビデオデータの32ビット
インクリメントを供給するロテータ/バレルシフタ回路の概略図である。
ユニットと可変長テーブルデコーダに、符号化されたビデオデータの32ビット
インクリメントを供給するロテータ/バレルシフタ回路の概略図である。
【図5】 Fig.4は、Fig.2の可変長デコーダ(VLD)コマンド復号化/実行
ユニットによりアクセスされる「macroblock_address_increment」可変長コード
(VLC)テーブルにおけるパターンマッチ構造を示す図である。
ユニットによりアクセスされる「macroblock_address_increment」可変長コード
(VLC)テーブルにおけるパターンマッチ構造を示す図である。
【図6】 Fig.5は、ビデオデータ圧縮解除プロセスにおいて可変長コード(VLC
)テーブルにアクセスするときにFig.2の可変長デコーダ(VLD)により
使用される復号化論理回路の機能ブロック図である。
)テーブルにアクセスするときにFig.2の可変長デコーダ(VLD)により
使用される復号化論理回路の機能ブロック図である。
【図7】 Fig.6Aは、TBITインストラクションのマイクロシーケンサインスト
ラクションフォーマットを示す図である。 Fig.6Bは、ICMD、CMDIインストラクションのマイクロシーケン
サインストラクションフォーマットを示す図である。 Fig.6Cは、COMPIインストラクションのマイクロシーケンサインス
トラクションフォーマットを示す図である。 Fig.6Dは、BRANCHインストラクションのマイクロシーケンサイン
ストラクションフォーマットを示す図である。 Fig.6Eは、SETFインストラクションのマイクロシーケンサインスト
ラクションフォーマットを示す図である。 Fig.6Fは、INCMインストラクションのマイクロシーケンサインスト
ラクションフォーマットを示す図である。 Fig.6Gは、HALTインストラクションのマイクロシーケンサインスト
ラクションフォーマットを示す図である。
ラクションフォーマットを示す図である。 Fig.6Bは、ICMD、CMDIインストラクションのマイクロシーケン
サインストラクションフォーマットを示す図である。 Fig.6Cは、COMPIインストラクションのマイクロシーケンサインス
トラクションフォーマットを示す図である。 Fig.6Dは、BRANCHインストラクションのマイクロシーケンサイン
ストラクションフォーマットを示す図である。 Fig.6Eは、SETFインストラクションのマイクロシーケンサインスト
ラクションフォーマットを示す図である。 Fig.6Fは、INCMインストラクションのマイクロシーケンサインスト
ラクションフォーマットを示す図である。 Fig.6Gは、HALTインストラクションのマイクロシーケンサインスト
ラクションフォーマットを示す図である。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,UG,ZW),E A(AM,AZ,BY,KG,KZ,MD,RU,TJ ,TM),AE,AL,AM,AT,AU,AZ,BA ,BB,BG,BR,BY,CA,CH,CN,CU, CZ,DE,DK,EE,ES,FI,GB,GD,G E,GH,GM,HR,HU,ID,IL,IN,IS ,JP,KE,KG,KP,KR,KZ,LC,LK, LR,LS,LT,LU,LV,MD,MG,MK,M N,MW,MX,NO,NZ,PL,PT,RO,RU ,SD,SE,SG,SI,SK,SL,TJ,TM, TR,TT,UA,UG,UZ,VN,YU,ZA,Z W (72)発明者 ガダー、シリシュ、シー アメリカ合衆国 カリフォルニア州 94132 サン ホセ ノース キャピタル アベニュー ナンバー 78 1265 Fターム(参考) 5C059 KK15 MA23 MC14 ME02 PP04 RC14 RC26 SS01 SS06 SS12 UA05 UA37 5J064 AA04 BA09 BA16 BB05 BC01 BC02 BC04 BC29 BD02 BD03 【要約の続き】 ットストリームにおける先頭パターンを識別すると同時 にその先頭パターンに対応するサブテーブルにアクセス することにより復号化される。ランレングスと振幅レベ ルのDCT係数シンボルは圧縮された状態で記憶され、 逆変換ユニット(208)で必要となると復号化され る。動きベクトルも、動き補償ユニット(212)で必 要となるまで記憶される。
Claims (20)
- 【請求項1】 送信されたフレームの画像エリアを表す複数の可変長符号化デ
ータからなる圧縮ビデオデータストリームを復号化する可変長デコーダ(104
)であって、 可変長符号化されたデータを記憶するメモリ(114)と、 メモリに接続され、メモリ(114)からの選択された可変長符号化データを
受信するコマンド復号化及び実行回路(136)と、 コマンド復号化及び実行回路(136)に接続され、コマンド復号化及び実行
回路(136)にコマンドを供給して可変長符号化データを対応する復号化値に
変換するシーケンサ(134)と、 コマンド復号化及び実行回路(136)に接続され、シーケンサ(134)と
は独立してコマンド復号化及び実行回路(136)にコマンドを供給して、コマ
ンド復号化及び実行回路(136)の復号化動作を制御するマスタコントローラ
(112)とを有し、 シーケンサ(134)とマスタコントローラ(112)に接続された複数のコ
マンドインストラクションレジスタ(150)が設けられ、シーケンサ(134
)とマスタコントローラ(112)はコマンドインストラクションレジスタ(1
50)のコンテンツの読み出し及び書き込みを行うことを特徴とする可変長デコ
ーダ(104)。 - 【請求項2】 シーケンサ(134)は、複数のインストラクションを記憶す
るメモリ(140)と、インストラクションメモリ(140)に接続されてメモ
リ(140)からのインストラクションを復号化すると共にコマンド復号化及び
実行回路(136)にコマンドを供給して可変長符号化データを対応する復号化
値に変換するインストラクション復号化及び制御回路(142)とを備えること
を特徴とする請求項1記載の可変長デコーダ(104)。 - 【請求項3】 コマンドインストラクションレジスタ(150)は、コマンド
復号化及び実行回路(142)に供給されたインストラクションに関連すること
を特徴とする請求項1記載の可変長デコーダ(104)。 - 【請求項4】 コマンド復号化及び実行回路(136)に接続され、可変長符
号化データを受信すると共に、対応する復号化値をコマンド復号化及び実行回路
(142)に供給する可変長テーブルデコーダ(186)をさらに有することを
特徴とする請求項1記載の可変長デコーダ(104)。 - 【請求項5】 コマンド復号化及び実行回路(136)は、MPEGシンタッ
クスに従った可変長符号化データを復号化することを特徴とする請求項1記載の
可変長デコーダ(104)。 - 【請求項6】 コマンド復号化及び実行回路(136)は、可変長符号化デー
タを復号化して、それぞれランレングス値と振幅レベル値とからなるDCT係数
シンボルを得ることを特徴とする請求項5記載の可変長デコーダ(104)。 - 【請求項7】 コマンド復号化及び実行回路(136)に接続され、DCT係
数シンボルを圧縮されたランレングスと振幅レベルの対として記憶するファース
トインファーストアウトメモリ及びデコーダ(206)をさらに有することを特
徴とする請求項6記載の可変長デコーダ(104)。 - 【請求項8】 ファーストインファーストアウトメモリ及びデコーダ(206
)に接続された逆DCT変換回路(208)をさらに有し、ファーストインファ
ーストアウトメモリ及びデコーダ(206)が、ランレングスと振幅レベルの対
の圧縮解除を行って、送信されたフレームの画像データを再構成する際にDCT
変換回路(208)により使用されるDCT係数を得ることを特徴とする請求項
7記載の可変長デコーダ(104)。 - 【請求項9】 コマンド復号化及び実行回路(136)は、可変長符号化デー
タを復号化して動きベクトル値を得ることを特徴とする請求項5記載の可変長デ
コーダ(104)。 - 【請求項10】 コマンド復号化及び実行回路(136)に接続され、動きベ
クトル値を記憶するファーストインファーストアウトメモリ(210)をさらに
有することを特徴とする請求項9記載の可変長デコーダ(104)。 - 【請求項11】 ファーストインファーストアウトメモリ(210)に接続さ
れた動き補償回路(212)をさらに有し、ファーストインファーストアウトメ
モリ(210)が、送信されたフレームの画像データを再構成する際に動き補償
回路(212)に動きベクトル値を供給することを特徴とする請求項10記載の
可変長デコーダ(104)。 - 【請求項12】 可変長コードテーブルを用いて、送信されたフレームの画像
エリアを表す可変長符号化データからなる圧縮ビデオデータを復号化する可変長
テーブルデコーダ(186)であって、 可変長符号化データを記憶するメモリ(156A、156B、162)と、 メモリ(156A、156B)に関連して、可変長符号化データの所定数のビ
ット(162)を認識可能にするシフタ回路(164)と、 メモリ(156A、156B)及びシフタ回路(164)に接続され、シフタ
回路(164)により認識可能とされた可変長符号化データ(162)における
ユニークプレフィクスパターンを識別するパターンマッチ回路(188)と、 複数の可変長コードのそれぞれに関連する復号化値を有し、可変長コードにお
けるユニークプレフィクスパターンにそれぞれ関連する複数のサブテーブルデー
タからなる可変長コードテーブルデータと、 パターンマッチ回路(188)に応じて、可変長符号化データにおける識別さ
れたプレフィクスパターンとマッチする可変長コードにおけるユニークプレフィ
クスパターンに関連するサブテーブルデータ回路から復号化値(198)を得る
と共に、識別されたプレフィクスパターン後の可変長符号化データにおける追加
データとマッチするユニークプレフィクスパターン後の可変長コードにおける追
加データを得る制御回路(190、192)とを有し、 シフタ回路(164)により認識可能とされた可変長符号化データ(162)
を、パターンマッチ回路(188)とサブテーブルデータ回路のそれぞれに接続
して、パターンマッチ回路(188)とサブテーブルデータ回路のそれぞれに対
して可変長符号化データを(162)を同時に送るデータパス(196)を設け
ることを特徴とする可変長テーブルデコーダ(186)。 - 【請求項13】 可変長コードのそれぞれが関連するコード長を有し、制御回
路(190、192)は、パターンマッチ回路(188)に応じて、可変長符号
化データにおける識別されたプレフィクスパターンとマッチする可変長コードに
おけるユニークプレフィクスパターンに関連するサブテーブルデータ回路からコ
ード長(202)を得ると共に、識別されたプレフィクスパターン後の可変長符
号化データにおける追加データとマッチするユニークプレフィクスパターン後の
可変長コードにおける追加データを得ることを特徴とする請求項12記載の可変
長テーブルデコーダ(186)。 - 【請求項14】 シフタ回路(164)は、メモリ(156A、156B)に
おける可変長符号化データを選択的にシフトする複数のセレクタ回路を有するこ
とを特徴とする請求項第12項記載の可変長テーブルデコーダ(186)。 - 【請求項15】 複数のセレクタ回路は複数のセレクタステージに配置され、
各セレクタステージが、2のべき乗でメモリ(156A、156B)における可
変長符号化データをシフトする、あるいは、可変長符号化データのシフトを全く
行わないことを特徴とする請求項14記載の可変長テーブルデコーダ(186)
。 - 【請求項16】 セレクタステージのうちの少なくとも1つは、前のセレクタ
ステージより少ないセレクタ回路を有することを特徴とする請求項15記載の可
変長テーブルデコーダ(186)。 - 【請求項17】 各セレクタステージは、その前のセレクタステージより少な
いセレクタ回路を有することを特徴とする請求項15記載の可変長テーブルデコ
ーダ(186)。 - 【請求項18】 シフタ回路(164)は、最後に得られたコード値に応じて
、得られたコード値と等しい数のビット分だけメモリ(156A、156B)に
おける可変長符号化データをシフトすることを特徴とする請求項14記載の可変
長テーブルデコーダ(186)。 - 【請求項19】 可変長コードテーブルを用いて、送信されたフレームの画像
エリアを表す複数の可変長符号化データからなる圧縮ビデオデータストリームを
復号化する方法であって、 複数の可変長コードのそれぞれに関連する復号化値を有する可変長コードテー
ブルを定義し、 可変長コードに関連する複数のユニークプレフィクスパターンを定義し、 各サブテーブルが可変長コードにおけるユニークプレフィクスパターンのうち
のいずれかに関連すると共にユニークプレフィクスパターンに関連する少なくと
も1つの復号化値とユニークプレフィクスパターン後の可変長コードにおける追
加データとを有するように構成された複数のサブテーブルを定義し、 可変長符号化データにおいて、可変長コードに関連するユニークプレフィクス
パターンのうちの1つを識別し、 複数のサブテーブルのそれぞれに対して可変長符号化データを同時に送り、 可変長符号化データにおける識別されたプレフィクスパターンとマッチする可
変長コードにおけるユニークプレフィクスパターンに関連するサブテーブルから
復号化値(198)を得ると共に、識別されたプレフィクスパターン後の可変長
符号化データにおける追加データとマッチするユニークプレフィクスパターン後
の可変長コードにおける追加データを得る 工程を有することを特徴とする方法。 - 【請求項20】 コード長を複数の可変長コードのそれぞれに関連させ、 可変長符号化データにおける識別されたプレフィクスパターンとマッチするプ
レフィクスパターンを有する可変長コードに関連するコード長(202)と、識
別されたプレフィクスパターン後の可変長符号化データにおける追加データとマ
ッチするプレフィクスパターン後の追加データとを得る 工程をさらに有すること特徴とする請求項19記載の方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8579798P | 1998-05-18 | 1998-05-18 | |
US60/085,797 | 1998-05-18 | ||
US09/280,437 US6704361B2 (en) | 1998-05-18 | 1999-03-29 | Variable length decoder for decoding digitally encoded video signals |
US09/280,437 | 1999-03-29 | ||
PCT/US1999/010659 WO1999060521A2 (en) | 1998-05-18 | 1999-05-14 | Variable length decoder for decoding digitally encoded video signals |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002516501A true JP2002516501A (ja) | 2002-06-04 |
Family
ID=26773091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000550062A Withdrawn JP2002516501A (ja) | 1998-05-18 | 1999-05-14 | デジタル符号化されたビデオ信号を復号化する可変長デコーダ |
Country Status (9)
Country | Link |
---|---|
US (1) | US6704361B2 (ja) |
EP (1) | EP1078533B1 (ja) |
JP (1) | JP2002516501A (ja) |
KR (1) | KR20010043480A (ja) |
CN (1) | CN1199472C (ja) |
AU (1) | AU3990899A (ja) |
CA (1) | CA2330566A1 (ja) |
DE (1) | DE69905565T2 (ja) |
WO (1) | WO1999060521A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005088840A1 (ja) * | 2004-03-12 | 2005-09-22 | Matsushita Electric Industrial Co., Ltd. | 可変長符号復号装置 |
US7924179B2 (en) | 2006-03-23 | 2011-04-12 | Nec Corporation | Variable-length code determining device and variable-length code decoding method |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6934338B1 (en) * | 1998-05-18 | 2005-08-23 | Sony Corporation | Variable length decoder for decoding digitally encoded video signals |
KR100457899B1 (ko) * | 2000-08-25 | 2004-11-18 | 마츠시타 덴끼 산교 가부시키가이샤 | 복호 장치, 표시 장치, 전자 장치, 무선 통신 단말 장치및 복호 방법 |
EP1193978A1 (fr) * | 2000-09-29 | 2002-04-03 | Koninklijke Philips Electronics N.V. | Procédé de rafraíchissement d'écran |
US6975809B1 (en) * | 2000-11-14 | 2005-12-13 | Ati International, S.R.L. | Method and apparatus for passing clear DVD data in a computer |
US7970645B2 (en) | 2001-02-23 | 2011-06-28 | Cox Communications, Inc. | Method and apparatus for providing targeted advertisements |
DE10140289A1 (de) * | 2001-08-16 | 2003-02-27 | Technotrend Ag | Verfahren und Vorrichtung zur Bandbreitenreduzierung |
US7046852B2 (en) * | 2001-09-13 | 2006-05-16 | Sharp Laboratories Of America, Inc. | Fast image decompression via look up table |
JP2003169327A (ja) * | 2001-11-30 | 2003-06-13 | Matsushita Electric Ind Co Ltd | ソフトウェアでのmpeg−2ビデオ可変長復号化方法 |
KR100450753B1 (ko) * | 2002-05-17 | 2004-10-01 | 한국전자통신연구원 | 프로세서와 연결된 프로그램 가능한 가변 길이 디코더 |
US7398276B2 (en) * | 2002-05-30 | 2008-07-08 | Microsoft Corporation | Parallel predictive compression and access of a sequential list of executable instructions |
US20040086117A1 (en) * | 2002-06-06 | 2004-05-06 | Petersen Mette Vesterager | Methods for improving unpredictability of output of pseudo-random number generators |
KR100522595B1 (ko) * | 2002-11-29 | 2005-10-19 | 삼성전자주식회사 | 엠펙 비디오 복호화방법 및 엠펙 비디오 복호화기 |
US8111753B2 (en) | 2003-02-06 | 2012-02-07 | Samsung Electronics Co., Ltd. | Video encoding method and video encoder for improving performance |
US7627039B2 (en) * | 2003-09-05 | 2009-12-01 | Realnetworks, Inc. | Parallel video decoding |
US7590059B2 (en) * | 2004-05-21 | 2009-09-15 | Broadcom Corp. | Multistandard video decoder |
CN100356793C (zh) * | 2005-06-09 | 2007-12-19 | 清华大学 | 多变长码并行解码器 |
KR100731640B1 (ko) * | 2005-12-23 | 2007-06-22 | 주식회사 텔레칩스 | 비트스트림 처리기 |
US8170109B2 (en) * | 2006-03-23 | 2012-05-01 | Nds Limited | System for analysis of motion |
ES2931465T3 (es) * | 2007-03-14 | 2022-12-29 | Nippon Telegraph & Telephone | Método y aparato de control de cuantificación, programa para el mismo y medio de almacenamiento que almacena el programa |
BRPI0808491B1 (pt) * | 2007-03-14 | 2020-08-04 | Nippon Telegraph And Telephone Corporation | Método e aparelho de controle de taxa de bits de codificação |
US9455739B2 (en) * | 2007-03-14 | 2016-09-27 | Nippon Telegraph And Telephone Corporation | Code amount estimating method and apparatus, and program and storage medium therefor |
JPWO2008111451A1 (ja) * | 2007-03-14 | 2010-06-24 | 日本電信電話株式会社 | 動きベクトル探索方法及び装置、そのプログラム並びにプログラムを記録した記録媒体 |
KR20080114388A (ko) * | 2007-06-27 | 2008-12-31 | 삼성전자주식회사 | 스케일러블 영상 부호화장치 및 방법과 그 영상 복호화장치및 방법 |
JP2010045598A (ja) * | 2008-08-12 | 2010-02-25 | Fujitsu Ltd | 可変長復号装置、及び、符号化装置 |
JP5067361B2 (ja) * | 2008-12-25 | 2012-11-07 | ソニー株式会社 | エンコーダ及びデコーダ、符号方法及び復号方法、並びに記録媒体 |
CN101505155B (zh) * | 2009-02-19 | 2012-07-04 | 中兴通讯股份有限公司 | 实现前缀码构造的装置和方法 |
US9490971B2 (en) * | 2012-12-28 | 2016-11-08 | Intel Corporation | Instruction for fast ZUC algorithm processing |
US9419792B2 (en) * | 2012-12-28 | 2016-08-16 | Intel Corporation | Instruction for accelerating SNOW 3G wireless security algorithm |
US9819359B1 (en) * | 2016-12-11 | 2017-11-14 | Microsoft Technology Licensing, Llc | Multi-symbol, multi-format, parallel symbol decoder for hardware decompression engines |
US11204768B2 (en) | 2019-11-06 | 2021-12-21 | Onnivation Llc | Instruction length based parallel instruction demarcator |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5614952A (en) | 1994-10-11 | 1997-03-25 | Hitachi America, Ltd. | Digital video decoder for decoding digital high definition and/or digital standard definition television signals |
US5815646A (en) | 1993-04-13 | 1998-09-29 | C-Cube Microsystems | Decompression processor for video applications |
FR2705805B1 (fr) | 1993-05-27 | 1996-06-28 | Sgs Thomson Microelectronics | Système de traitement d'images. |
US5608459A (en) | 1993-08-13 | 1997-03-04 | Texas Instruments Incorporated | Video data decoder having motion compensation and image memory circuitry on single substrate |
US5604499A (en) | 1993-12-28 | 1997-02-18 | Matsushita Electric Industrial Co., Ltd. | Variable-length decoding apparatus |
KR970003024B1 (ko) | 1994-02-28 | 1997-03-13 | 한국전기통신공사 | 병렬처리 패턴매칭을 이용한 가변부호길이에서 고속 재동기방법 |
US5557538A (en) | 1994-05-18 | 1996-09-17 | Zoran Microelectronics Ltd. | MPEG decoder |
US5502493A (en) | 1994-05-19 | 1996-03-26 | Matsushita Electric Corporation Of America | Variable length data decoder for use with MPEG encoded video data |
US5623311A (en) | 1994-10-28 | 1997-04-22 | Matsushita Electric Corporation Of America | MPEG video decoder having a high bandwidth memory |
US5623423A (en) | 1994-12-12 | 1997-04-22 | Univ. Of Texas | Apparatus and method for video decoding |
US5623308A (en) | 1995-07-07 | 1997-04-22 | Lucent Technologies Inc. | Multiple resolution, multi-stream video system using a single standard coder |
KR100207385B1 (ko) | 1995-08-31 | 1999-07-15 | 전주범 | 가변 길이 복호화 장치 |
-
1999
- 1999-03-29 US US09/280,437 patent/US6704361B2/en not_active Expired - Fee Related
- 1999-05-14 WO PCT/US1999/010659 patent/WO1999060521A2/en not_active Application Discontinuation
- 1999-05-14 AU AU39908/99A patent/AU3990899A/en not_active Abandoned
- 1999-05-14 CN CNB998064416A patent/CN1199472C/zh not_active Expired - Fee Related
- 1999-05-14 EP EP99923050A patent/EP1078533B1/en not_active Expired - Lifetime
- 1999-05-14 KR KR1020007012555A patent/KR20010043480A/ko not_active Application Discontinuation
- 1999-05-14 CA CA002330566A patent/CA2330566A1/en not_active Abandoned
- 1999-05-14 JP JP2000550062A patent/JP2002516501A/ja not_active Withdrawn
- 1999-05-14 DE DE69905565T patent/DE69905565T2/de not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005088840A1 (ja) * | 2004-03-12 | 2005-09-22 | Matsushita Electric Industrial Co., Ltd. | 可変長符号復号装置 |
JPWO2005088840A1 (ja) * | 2004-03-12 | 2008-01-31 | 松下電器産業株式会社 | 可変長符号復号装置 |
US7683807B2 (en) | 2004-03-12 | 2010-03-23 | Panasonic Corporation | Variable-length-code decoding device |
JP4516068B2 (ja) * | 2004-03-12 | 2010-08-04 | パナソニック株式会社 | 可変長符号復号装置 |
US7924179B2 (en) | 2006-03-23 | 2011-04-12 | Nec Corporation | Variable-length code determining device and variable-length code decoding method |
Also Published As
Publication number | Publication date |
---|---|
CN1199472C (zh) | 2005-04-27 |
CA2330566A1 (en) | 1999-11-25 |
AU3990899A (en) | 1999-12-06 |
DE69905565T2 (de) | 2003-12-11 |
EP1078533A2 (en) | 2001-02-28 |
US6704361B2 (en) | 2004-03-09 |
WO1999060521A2 (en) | 1999-11-25 |
DE69905565D1 (de) | 2003-04-03 |
CN1302512A (zh) | 2001-07-04 |
US20030043917A1 (en) | 2003-03-06 |
WO1999060521A3 (en) | 2000-03-16 |
EP1078533B1 (en) | 2003-02-26 |
KR20010043480A (ko) | 2001-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002516501A (ja) | デジタル符号化されたビデオ信号を復号化する可変長デコーダ | |
US6917652B2 (en) | Device and method for decoding video signal | |
US5668599A (en) | Memory management for an MPEG2 compliant decoder | |
US8817885B2 (en) | Method and apparatus for skipping pictures | |
US6141059A (en) | Method and apparatus for processing previously encoded video data involving data re-encoding. | |
KR100376607B1 (ko) | 통합 비디오 디코딩 시스템 및 그를 이용한 비디오 데이터의 인코딩 스트림 처리 방법과, 비디오 디코딩 시스템의 프레임 버퍼 할당 방법과, 기록 매체 | |
US5428396A (en) | Variable length coding/decoding method for motion vectors | |
JP3793225B2 (ja) | 低解像度hdtv受信機 | |
US6014178A (en) | Receiver having analog and digital video modes and receiving method thereof | |
US6091458A (en) | Receiver having analog and digital video modes and receiving method thereof | |
US6219381B1 (en) | Image processing apparatus and method for realizing trick play | |
US5850258A (en) | High level video decoding apparatus capable of decoding video data of a plurality of channels coded at a lower level | |
US6414608B1 (en) | Variable length code decoding device, digital broadcast receiving apparatus, and DVD reproducing apparatus | |
US20040028142A1 (en) | Video decoding system | |
US20010038669A1 (en) | Precise bit control apparatus with look-ahead for mpeg encoding | |
US20020009287A1 (en) | Method and apparatus for decoding and recording medium | |
US7227589B1 (en) | Method and apparatus for video decoding on a multiprocessor system | |
KR0157570B1 (ko) | 복수경로를 통해 mpeg2 비트열을 복호하는 복호화장치 | |
EP1340383A2 (en) | Scalable mpeg-2 video system | |
EP1292152B1 (en) | Image processing apparatus, and image processing method | |
JP2002542549A (ja) | コンピュータにおける高速ストリーミング媒体の処理装置及び方法 | |
JP2002524007A (ja) | イメージ圧縮方法および装置 | |
US6934338B1 (en) | Variable length decoder for decoding digitally encoded video signals | |
US6298091B1 (en) | Method to play audio and video clips through MPEG decoders | |
JP2002502159A (ja) | 高性能テレビジョン信号の符号化および復号化の方法と装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060801 |