JP3423942B2 - データ処理システム - Google Patents
データ処理システムInfo
- Publication number
- JP3423942B2 JP3423942B2 JP2002137983A JP2002137983A JP3423942B2 JP 3423942 B2 JP3423942 B2 JP 3423942B2 JP 2002137983 A JP2002137983 A JP 2002137983A JP 2002137983 A JP2002137983 A JP 2002137983A JP 3423942 B2 JP3423942 B2 JP 3423942B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- token
- stage
- signal
- pipeline
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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
- H04N19/423—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 characterised by memory arrangements
-
- 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/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/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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
- Complex Calculations (AREA)
- Television Systems (AREA)
Description
入力信号を復号及び/又は伸長するように機能するデー
タ処理システムに関する。
6,724号明細書に記載されているものがある。この
装置は複数の計算モジュールから成り、好ましい実施例
では、合計4個の計算モジュールが並列に接続されてい
る。個々の計算モジュールは、処理装置と、デュアルポ
ートメモリと、スクラッチパッドメモリと、アービトレ
ーション機構で構成されている。第1のバスはこれらの
計算モジュールとホストプロセッサを接続する。この装
置は、ホストプロセッサと計算モジュールに第2のバス
を介して接続された共用メモリを有する。
は、コンパクトディスク媒体に記録され従来のビデオフ
レーム速度で複号される、送信用の完全フォーマットを
開示している。圧縮中、フレームの領域は、各領域固有
の最適なフィルコーディング方法を選択するために個々
に分析される。領域復号化時間を推定し圧縮閾値を最適
化する。領域の大きさと位置を示す領域記述コードはデ
ータストリームの第1セグメントでグループ化される。
領域の画素振幅を示す領域フィルコードはフィルコード
の種類によりグループ化され、データストリームのその
他のセグメントに置かれる。各データストリームセグメ
ントはそれぞれの統計分布に応じて符号化された可変長
を有し、データフレーム形成のためにフォーマット化さ
れる。フレームのバイト数は逆フレーム列分析により決
定される補助データの追加により少なくなり、コンパク
トディスクの再生中の一時停止を最少にするために選択
される平均数を提供する。これによりコンパクトディス
クの予測不可能なシークモード待機時間特性を回避す
る。デコーダは、データストリームのそれぞれのセグメ
ントを別々に可変長符号するためのコードストリームの
統計的情報に応答する可変長のデコーダを含む。領域位
置データは領域記述データから得られ、フィルコードの
種類(例えば相対値、絶対値、2項及びDPCM)を検
出することにより選ばれる複数の領域特定デコーダに対
して領域フィルコードと共に供給される。そして復号さ
れた領域画素は、後の表示用にビットマップ形式で格納
される。
は、ディジタルTV信号用の画像データをシーン・モデ
ルを利用して縮小する方法が開示されている。ここで
は、順次供給される画像信号は符号化され、時間t−1
で既に符号化されているシーンからの前フレームは基準
として画像格納部に存在し、フレームからフレームの情
報は増幅係数、移動係数及び適応的に得られたクアド
(4本)ツリー分割構造からなる。システムが初期化さ
れると、均一な、所定の階調値又は規定の輝度値として
ハーフ・トーン表現された画像が、送信機側のコーダの
画像格納部及び受信機側のデコーダの画像格納部に全て
の画素(ピクセル)に対して同様にして書き込まれる。
コーダの画像格納部及びデコーダの画像格納部の両方は
それぞれに対するフィードバックにより、コーダ及びデ
コーダ内の画像格納部の内容が可変サイズのブロックで
読み出され、輝度値1より大きいかそれ未満の係数によ
り増幅され、この画像格納部の別のアドレスに書き込み
可能に動作する。それにより、可変サイズのブロックは
公知のクアドツリー構造に応じて編成される。
は、HDTV信号の符号化/復号化装置が開示されてい
る。この装置は、圧縮されたビデオデータを表わす階層
構造の符号化語CWと、この符号化語CWが表わすデー
タの種類を規定する、対応する符号化語Tを提供するた
めの高品質ビデオソース信号に応答する圧縮回路を含
む。符号化語CWとTに応答する優先選択回路は符号化
語CWを高優先度及び低優先度符号化語列に分解し、そ
れにより高位及び低位の優先符号化語列は、夫々画像再
生に対して比較的重要度の高いそして低い圧縮ビデオデ
ータに対応することになる。高優先度及び低優先度符号
化語列に応答する転送プロセッサは、それぞれ高優先度
及び低優先度符号化語の高優先度及び低優先度転送ブロ
ックを形成する。各転送ブロックはヘッダと、符号化語
CWとエラー検出チェックビットを含む。個々の転送ブ
ロックは、追加のエラーチェックデータを供給する前方
エラーチェック回路に供給する。その後、この高優先度
及び低優先度データはモデムに供給され、対応する送信
用の搬送波を直交振幅変調する。
は、奇数及び偶数フィールドのビデオ信号がフレーム内
圧縮モードとフレーム間圧縮モードで順番に独立して圧
縮され、次に送信用にインターリーブされた圧縮画像デ
ータを復号するビデオ復号システムが開示されている。
奇数及び偶数フィールドは独立して復号される。有効な
復号された奇数/偶数フィールドデータが無い期間で
は、偶数/奇数フィールドデータは利用不可の奇数/偶
数フィールドデータに代用される。偶数/奇数フィール
ドのデータを独立して復号し、反対のフィールドのデー
タを利用不可のデータに代用することは、システム起動
時及びチャンネル変化中の画像表示待機時間を減少する
には有効に使用され得る。
は、符号化されたビデオデータを信号送信用の転送ブロ
ックに分割するビデオ信号符号化システムが開示されて
いる。送信されたデータが紛失又は壊れたときに受信機
がデータストリームへの再進入ポイントを決定可能にす
るヘッダデータ提供のおかげで、その転送ブロックフォ
ーマットは受信機側での信号回復を向上させる。再進入
ポイントは、対応する転送ブロック内の符号化ビデオデ
ータ中に挿入される二次的転送ヘッダを提供することに
より最大になる。
は、デシメーション(decimation)、補間及び整形機能の
内の一つ又はそれ以上の機能を提供するために1フィー
ルド分の画像データサンプルを処理する方法が開示され
ている。これはJPEG圧縮システムに利用されている
アレイ変換プロセッサ等により実現される。データサン
プルのブロックは、デシメーション及び補間処理の両方
で離散偶数コサイン変換(DECT)により変換され、
その後、周波数項の数が変更される。デシメーションの
場合は、周波数項の数は減少され、この後、逆変換が実
施され元のデータブロックを示すサンプルポイントの縮
小サイズのマトリックスを生成する。補間処理の場合
は、零値の追加周波数成分が周波数成分アレーに挿入さ
れ、その後の逆変換によりスペクトル帯域幅の増加無し
に一連の拡大データサンプルを生成する。周波数領域内
でのデータ及びフィルタカーネルの変換の乗算を伴う畳
込み又はフィルタ処理により実現される整形処理の場合
は、処理済みデータサンプルの一連のブロックを発生さ
せる逆変換が提供される。カーネルの空間記号は、線形
位相フィルタに対して成分数を減少させることにより変
更され、零挿入されてデータブロックのサンプル数と同
じになる。これに続いて、零挿入されたカーネルマトリ
ックスの離散奇数コサイン変換(DOCT)が形成され
る。
は、電話回線帯域制限アナログチャンネルを介してログ
マップビデオ画像を送信するシステム及び方法が開示さ
れている。ログマップ画像内の画素構成は、中心に画素
がより集中する人間の目のセンサの幾何学的配置に一致
するようになっている。この送信機は周波数帯をチャン
ネルに分割し、1個又は2個の画素を各チャンネルに割
り当てる。例えば、3KHzの音声品質電話回線は、そ
れぞれ3.9Hzの間隔を持つ768個のチャンネルに
分割される。各チャンネルは直交位相の2個の搬送波か
ら成るので、各チャンネルは2個の画素を運ぶことが可
能である。幾つかのチャンネルは、受信機が受信信号の
位相と大きさの両方を検出できるようにする特殊校正信
号用に確保されている。センサと画素が発振器群に直結
され、受信機が各チャンネルを連続して受信できる場合
には、この受信機は送信機と同期をとる必要が無い。F
FTアルゴリズムは、受信機が第1のフレームと同期を
とり、その後フレーム期間毎に後続のフレームを得る連
続動作の場合に対する高速離散近似を実行する。フレー
ム期間はサンプリング期間と比べて比較的低いので、一
旦第1フレームが検出されると、受信機がフレーム同期
を失うことはありそうもない。試験的ビデオ電話では、
1秒に4個のフレームを送信し、1440個の画素ログ
マップ画像に対し直交符号化を実施し、秒速40,00
0ビット以上の有効データ転送速度が得られた。
は、奇数及び偶数フィールドのビデオ信号がフレーム内
圧縮モードとフレーム間圧縮モードで順番に独立して圧
縮された奇数及び偶数フィールドのビデオ信号を有する
ビデオ圧縮システムが開示されている。独立して圧縮さ
れたデータの奇数及び偶数フィールドは、フレーム内偶
数フィールドが圧縮されたデータはフレーム内奇数フィ
ールドが圧縮された連続するフィールド間の途中で発生
するように送信のためにインターリーブされる。受信機
にとっては、インターリーブされた一連のフィールドに
より、送信データ量を増やすことなく符号化のための信
号への進入ポイント数が2倍になる。
は、リアルタイムで圧縮/復号のためにビデオデータを
処理する装置及び方法が開示されている。この装置は複
数の計算モジュールから成り、好ましい実施例では、合
計4個の計算モジュールが並列に接続されている。個々
の計算モジュールは、処理装置と、デュアルポートメモ
リと、スクラッチパッドメモリと、アービトレーション
機構で構成されている。第1のバスはこれらの計算モジ
ュールとホストプロセッサを接続する。最後に、この装
置はホストプロセッサと計算モジュールに第2のバスを
介して接続された共用メモリを有する。この方法は、各
処理装置が処理するために画像の部分割当てを行う。
は、提案されているISO/IECMPEG基準の使用
に適している開示される。これには、協動する3個の構
成要素又はサブシステムが含まれる。その画像に割り付
けられたビット数を考慮して最適の視覚品質を提供する
ために、この3個の構成要素又はサブシステムは入力さ
れるディジタル動画列を可変順応的に前処理し、ビット
を画像に順番に割り付けし、変換係数を画像の異なる領
域にビデオ順に適応的に量子化する。
は、コンピュータシステムでの動画列のフレーム冗長度
を除去する方法が開示されている。この方法は動画列の
第1番目の場面変化を検出する工程と、第1画像にとっ
て完全な場面情報を含む第1キーフレームを発生する工
程から成る。好ましい実施例に於いては、この第1キー
フレームは「前向き」キーフレーム又はイントラフレー
ムとして知られており、通常CCITT準拠圧縮ビデオ
データ内に存在している。この処理は少なくとも1個の
中間圧縮フレームを発生する工程を具備し、該少なくと
も1個の中間圧縮フレームは、前記動画列内で時間的に
第1画像に続く少なくとも1個の画像に対して第1画像
との差情報を含む。この少なくとも1個の画像はインタ
ーフレームとして知られている。最後に、動画列におけ
る第2場面変化を検出する工程と、第2場面変化の直前
に表示される画像にとって完全な場面情報を含む第2キ
ーフレームを発生する工程がある。この第2キーフレー
ムは「後向き」キーフレームとして知られている。前記
第1キーフレームと少なくとも1個の中間圧縮フレーム
は順方向再生のために連結されており、前記第2キーフ
レームと前記中間圧縮フレームは逆方向再生のために連
結されている。画像が順方向再生される時には、前記イ
ントラフレームは、完全場面情報を発生するのに利用さ
れることもある。この場面が逆再生される時には、完全
場面情報を再生するのに後方向キーフレームが使用され
る。
は、所定数の公知の画像・ピラミッドステージから成る
第1回路装置が、前記所定数と同数の新規な動画・ベク
トルステージから成る第2回路装置と共に開示されてい
る。これらの装置は費用効果の高い階層的動画分析(H
MA)をリアルタイムで、最少システム処理遅延及び/
又は最少システム処理遅延を利用して及び/又は最少ハ
ードウェア構造で行う。特に、比較的高いフレーム速度
(例えば、秒速30フレーム)で発生する連続的所定画
素濃度画像データフレームの継続入力列からの比較的高
解像度画像データに応答して、前記第1及び第2回路装
置は、ある処理システム遅延後に、同じフレーム速度で
発生する連続的所定画素濃度ベクトルデータの継続出力
列を得る。各ベクトルデータフレームは各対の連続画像
フレーム間で起こる画像の動きを示している。
は、リアルタイムビデオ符号化システムに画像を一度だ
け符号化しながら、フレーム毎に所望数のビットを精確
に送出させ、例えば通信チャンネルを介して送信される
画像を表わす係数を量子化するのに使用される量子化ス
テップサイズを更新する方法と装置が開示されている。
このデータは、複数のブロックを有するセクタに分割さ
れる。このブロックは、例えばDCT符号化を用いて符
号化され、各ブロック毎に係数列を発生する。この係数
は量子化され、データを記述するのに要するビット数は
量子化ステップに依っては、かなり変動する。各セクタ
のデータの送信の終了時には、この特定グループのデー
タと関連する選ばれた数のセクタに対して、使用された
実際の累積ビット数は、使用される所望の累積ビット数
と比較される。本システムは、例えば画像を表わす複数
のセクタに対して最終的所望のデータビット数を得るた
めに、量子化ステップサイズを再調整する。量子化ステ
ップサイズを再新して所望のビット割り付けを決定する
ため様々な方法が開示されている。
pers)No.2、1984年10月/11月号のヨンM.
チョン(Chong, Yong M)著の論文、「デジタル画像処理
のデータフローアーキテクチャ」(A Data-Flow Archite
cture for Digital Image Processing)には、画像処理
に特に設計されたリアルタイムでの信号処理システムが
開示されている。具体的には、固定長のアドレスフィー
ルドを有する固定の1ワード長であるトークンをベース
にしたデータフローアーキテクチャが開示されている。
トークンはデータフィールド、制御フィールド、および
タグから構成されている。トークンのタグフィールド
は、更に、プロセッサアドレスフィールドおよび識別子
フィールドとに分けられる。プロセッサアドレスフィー
ドは、トークンを正しくデータプロセッサに送出するた
めに用いられ、識別子フィールドは、データプロセッサ
にどのような処理を行うべきかを知らされるためにデー
タにラベルを付ける目的に用いられる。この様にして,
識別子フィールドは、データプロセッサに対しての指示
として作用する。システムは各トークンを、モジュール
番号(MN)を使って特定のデータフロープロセッサに
送る。このMNが特別なステージのMNと一致する場合
は、適切な演算をデータに対して行う。もし一致しない
場合は、トークンは出力データバスに送られる。
its)のVo1.23、No.1、1988年2月号の、キ
モリ(Kimori)他著の「自己調整回路による弾性パイプラ
イン機構」(An Elastic Pipeline Mechanism by Self-T
imed Circuits)では、自己調整回路を有する弾性パイプ
ラインが開示されている。非同期のパイプラインは複数
のパイプラインステージを具備する。各パイプラインス
テージは、パイプラインステージ特有の論理演算を行う
組み合わせ論理回路に続いて設けられている。入力デー
タッラチグループにより構成される。データラッチに
は、このパイプラインステージに伴うデータ転送制御回
路から生成されるトリガ信号が同時に供給される。デー
タ転送制御回路は相互に連結してチェーンを形成し、こ
れを介して送信信号線並びに肯定応答信号線により、後
段のパイプライン間のデータ転送をハンドシェークモー
ドに制御している。また、現在のパイプラインステージ
のオペランドに対して行う演算を選択するために、通常
デコーダが各ステージに設けられている。更に、複雑な
復号処理を予めコード処理するために、また、論理回路
にとって重大なl経路の問題を軽減するために、前段に
デコーダを配置することもできる。サブモジュール間の
相互作用は完全に局所化した決定に基づき決められ、ま
た、各サブモジュールが独自にデータバッファリング及
び自己調整データ転送を同時に行えるので、パイプライ
ンの柔軟性により、いかなる集中制御も除去される。最
後に、パイプラインの柔軟性増すために、空のパイプラ
インステージを、占有されているパイプラインステージ
間に設け、各ステージ間での信頼性のあるデータ転送を
確保している。
ステージと、処理ステージの中で制御、データ機能を実
行する相互作用インターフェース制御トークンの形態の
ユニバーサル適応ユニットを具備し、処理ステージが構
成、処理において向上した柔軟性を与えられているデー
タ処理システムを提供することを目的とする。
システムは、入力情報ストリームを受け入れる入力処理
ステージ及び出力情報ストリームを生成する出力処理ス
テージを含む複数の処理ステージを含むデータ処理シス
テムであって、前記入力処理ステージは前記入力情報ス
トリームに基づき、前記複数の処理ステージ間の制御及
び/又はデータ機能のための1又は2以上のトークンを
発生するものであり、前記複数の処理ステージのうち1
又は2以上の処理ステージは1又は2以上のトークンを
発生し及び/又は変換するものであり、前記トークン
は、可変長トークン又は固定長トークンであり、かつ前
記入力情報ストリームに含まれるデータを含んでおり、
前記トークンの少なくとも1つは、前記入力情報ストリ
ームの少なくとも1つに含まれるデータに関する制御情
報を含み、前記処理ステージの少なくとも1つは前記制
御情報に応じて再構成され、該再構成された処理ステー
ジは前記制御情報に応じて前記入力情報ストリームの少
なくとも1つに含まれるデータを含む1つ又は2以上の
トークンを処理する、ことを特徴とするデータ処理シス
テムである。
語が頻繁に使用されるので、以下にその用語の一般的説
明をする。
リックス、又は64DCT係数(ソース、量子化又は逆
量子化)。
で規定されるような三原色に係わる2個の色差信号の1
個を表わす1つのマトリックス、ブロック、又は1個の
画素。色差信号に使用される符号はCrとCbである。
タエレメント。
で規定しているところの、一連の1個以上の画像の符号
化表記。
順番。この順番は必ずしも表示順番と同一である必要は
無い。
は画像を構成する3つのマトリックス(輝度と2個のク
ロミナンス)の内の1つからの1個の画素。
れるビット数を減少すること。
入力された符号化ビットストリームを読みだし復号化さ
れた画像又は音声サンプルを発生する処理。
一般的には、これは画像がエンコーダに入力された順番
と同じである。
いないが、入力画像列又は音声サンプルを読みだし、本
明細書で定義されている有効な符号化ビットストリーム
を発生する処理。
又は画像からの情報だけを使用するマクロブロック又は
画像の符号化。
マトリックス、ブロック、又は1個の画素で、ビットス
トリームで規定されるような三原色に係わるもの。輝度
信号に使用される符号はYである。
の輝度データと、画像の輝度成分の16×16部分から
の2つ(4:2:0クロマフォーマット用)、4つ
(4:2:2クロマフォーマット用)又は8つ(4:
4:4クロマフォーマット用)の対応する8×8ブロッ
クのクロミナンスデータ。マクロブロックは画素データ
を言う場合もあり、画素値と、本明細書のこの部分に定
義されているシンタックスのマクロブロックヘッダに規
定されているその他のデータエレメントの符号化された
ものを言う場合もある。通常の知識を有する当業者にと
って、その使用は文脈からも明らかである。
予測効率を向上させること。この予測は動画ベクトルを
使用し、予測エラー信号の作成に使用される、以前に復
号化された画素値を含む過去の及び/又は未来の基準画
像にオフセットを提供する。動画ベクトル:現在の画像
の座標位置から基準画像の座標へのオフセットを提供す
る動画補償に使用される2次元ベクトル。
ロック又は画像それ自体からの情報と別の時刻に発生し
たマクロブロックと画像からの情報も使用するマクロブ
ロック又は画像の符号化。
又は再構成された画像データ。ソース又は再構成された
画像はそれぞれ輝度と2個のクロミナンス信号を表わす
8ビットの数値を有する3個の四角マトリックスから成
る。先進のビデオでは、画像はフレームと同じであり、
インターレースされたビデオでは、文脈により画像はフ
レーム、又はそのフレームの先頭のフィールド又は最後
のフィールドを指す。
いる画素値又はデータエレメントを予測すること。
されたトークンに応答して、自己を再構成し各種作業を
するステージ。
めの相互作用インターフェースメッセンジャのパッケー
ジの形式のユニバーサル適応ユニット。
ークな符号化ビットストリームに挿入された32ビット
の符号。これらの符号は、符号化シンタックス内の構造
の幾つかを識別することを含めた幾つかの目的に使用さ
れる。
語を頻繁なイベントに割り当てる、あるいはより長いコ
ード語を頻繁ではないイベントに割り当てる符号化のた
めの逆処理。
像。
ステージの中で制御、データ機能を実行する相互作用イ
ンターフェース制御トークンの形態のユニバーサル適応
ユニットを具備し、処理ステージが構成、処理において
向上した柔軟性を与えられているデータ処理システムが
提供される。
理システムの実施例を説明する。
タ処理システムに使われる最も一般的な機能に関する概
説として、図1は、6ステージパイプラインの6サイク
ルの大幅に簡素化された説明図である。(以下に更に詳
細に説明するように、パイプラインの好ましい実施例に
は、図1には示されない幾つかの有利な機能が含れ
る。)図面を参照することとし、図面に含まれる種々の
図を通じて、同じ参照番号は同じか又は対応するエレメ
ントを示し、そして、更に詳細には、図1は、本発明を
実施した場合の6サイクルのブロックダイアグラムであ
る。ボックスの各列は1つのサイクルを示し、そして、
異なるステージの各々はそれぞれAからFまでに分類さ
れる。斜線を引いた各ボックスは、対応するステージが
有効なデータ、即ち、パイプラインステージの1つにお
いて処理されるべきデータを保持することを示す。処理
(データの操作なしの単純な転送以外の何も含まれない
こともあり得る)の後で、有効なデータは、有効出力デ
ータとしてパイプラインから転送される。
は、6つよりも多いか又は少ないパイプラインステージ
が含まれることがあることに注意されたい。当然気が付
くように、本発明は、任意の個数のパイプラインステー
ジの場合に使用可能である。更に、データは、1つより
も多いステージにおいて処理しても差し支えなく、そし
て、ステージが異なれば処理時間も異なることがあり得
る。
る)に加えて、パイプラインのは、2つの転送制御信
号、即ち、「VALID」(有効)信号及び「ACCE
PT」(許容)信号が含まれる。これらの信号は、パイ
プライン内のデータ転送を制御するために使われる。隣
接するステージを接続する2本のラインのうちの上側の
ラインとして図示されるVALID信号は、各パイプラ
インステージから最寄りの隣接デバイスまで順方向すな
わち下流方向に供給される。このデバイスは、他のパイ
プラインステージ、または或る別のシステムであっても
差し支えない。例えば、最後のパイプラインステージ
は、そのデータを次の処理回路構成に供給しても差し支
えない。隣接するステージを接続する2本のラインのう
ちの下側のラインとして図示されるACCEPT信号
は、もう一方の上流方向に向かって前のデバイスまで供
給する。
パイプラインシステムは、好ましい実施例に示すよう
に、次に示す特性の1つかそれ以上の特性を持つ。
ち、特定のパイプラインステージに起きた遅延に起因し
て他のパイプラインステージに引き起こされる外乱は可
能な限り小さな外乱である。連続したパイプラインステ
ージは処理を継続することが可能であり、従って、遅延
したステージに後続するデータの流れには間隙を生じる
ことを意味する。同様に、先行するパイプラインステー
ジも、出来る限り継続可能である。この場合、データス
トリーム中の間隙は、出来る限り、データの流れから除
去される。
これらの信号は最寄りの隣接パイプラインステージに限
り伝播するように組織される。データの流れと同じ方向
に流れる信号の場合には、前記のステージは直ぐ後に続
くステージである。データの流れと逆方向へ流れる信号
の場合には、前記のステージは直ぐ前のステージであ
る。
なるタイプのデータが、当該パイプライン内で処理され
るようにコード化される。この符号化は、可変サイズの
データパケットを収容し、そして、パケットのサイズ
は、前もって既知である必要はない。
ーヘッドはできる限り小さい。
能にとって必要な最小個数のデータタイプのみを認識す
ることが各パイプラインステージにとって可能である。
ただし、パイプラインステージは、前記のデータタイプ
を認識しない場合であっても、これら全てのデータタイ
プを連続したステージに供給することが可能でなくては
ならない。これが可能であれば、隣接しないパイプライ
ンステージ間の通信を可能にする。
ンが有り、複数本の単線または数本の平行線のいずれで
あっても、各パイプラインステージに対して導入または
導出するデータバスを形成する。以下に極めて詳細に説
明および図解するように、データは、パイプラインのス
テージに対して、データラインを介して、転入、転出、
及びステージ間で転送される。
の先行デバイスからのデータ及び制御信号を受信可能で
あることに注意されたい。この場合の先行デバイスと
は、例えば、デジタルイメージ送信システムの受信回
路、他のパイプライン等を意味する。他方において、第
1のパイプラインステージは、当該パイプラインにおい
て処理されるデータの全部または一部を生成可能であ
る。実際問題として、以下に詳しく説明するように、
「ステージ」は、何もしないシステム(単にデータを供
給するだけ)又は全システム(例えば、他のパイプライ
ン、または多重システム或は多重パイプライン)を含む
任意の処理回路を含んでも差し支えなく、そして、「ス
テージ」は、必要に応じて、データを生成、変更、及び
削除可能である。パイプラインステージが当該パイプラ
インを通って下方に転送される有効なデータを含む場
合、データ妥当性を示すVALID信号は、直ぐ後続す
る次のパイプラインステージより更に遠くに転送される
要がない。従って、2線インターフェースは、当該シス
テムの対を構成する全てパイプラインステージの間に含
まれる。即ち、いわゆる他のデバイスが含まれ、そし
て、データが、この種デバイスとパイプラインとの間で
転送される場合には、先行デバイスと第1ステージとの
間、及び後続デバイスと最後のステージとの間の2線イ
ンターフェースが含まれる。 信号の各々、即ち、AC
CEPT、及びVALIDは、HIGH、及びLOWの
値を持つ。これらの値は、各々、「H」、及び「L」と
略記される。本発明を実現する場合、パイプラインの最
も一般的なアプリケーションは、通常、デジタルであ
る。この種のデジタルとして実現した場合、例えば、H
IGH値は論理的「1」であり、そして、LOW値は論
理的「0」であっても差し支えない。ただし、システム
は、デジタルとして実現するよう制限される訳ではな
く、アナログとして実現した場合、HIGH値は、或る
電圧、または他の類似の設定スレショルド以上の量であ
っても差し支えなく、LOW値は、同一又は他のスレシ
ョルド以下(或いは以上)の対応する信号によって示さ
れても差し支えない。デジタルアプリケーションの場合
には、本発明は、例えば、CMOS、バイポーラ等のよ
うなあらゆる既知の技術を用いて実現することが可能で
ある。
に個別の記憶そうち及びワイヤを使用する必要はない。
デジタル実施例においてこれは真である。データの「妥
当性」の指示がデータと共に記憶されることだけが必要
とされる全てである。単に一例として挙げると、デジタ
ル値によって表されるデジタルテレビ画像においては、
国際規格CCIR601に規定されているように、ある
特定の値は許容されていない。このシステムにおいて
は、画像のサンプルを表すために8ビット2進数が使用
され、そして、ゼロ及び255の値は使用してはならな
い。
まれたパイプラインにおいて処理される必要がある場合
には、これらの値の1つ(例えば、ゼロ)は、パイプラ
イン内の特定のステージにおけるデータが有効でないこ
とを示すために使われることになる。従って、あらゆる
ゼロでないデータは有効であるとみなされるべきであ
る。この例においては、識別可能であって、しかも、関
連しているデータの「有効性」を記憶しつつあると言う
ことのできる特定のラッチは無い。それにも拘わらず、
データの妥当性は、データと共に記憶される。
ID信号の状態は、上側の右向き矢印上において
「H」、または「L」として示される。従って、ステー
ジAからステージBへのVALID信号はLOWであ
り、そして、ステージDからステージEへのVALID
信号はHIGHである。各ステージへのACCEPT信
号の状態は、下側の左向き矢印上に「H」、または
「L」として示される。従って、ステージEからステー
ジDへのACCEPT信号はHIGHであり、一方、ス
テージFへのパイプラインの下流に接続されたデバイス
からのACCEPT信号はLOWである。
向かうACCEPT信号がHIGHである場合にはいつ
でも、データは、1サイクル期間中に1つのステージか
らもう一方のステージまで転送される(以下に説明す
る)。2つのステージ間におけるACCEPT信号がL
OWである場合には、データは、これらのステージの間
で転送されない。
がつけられている場合には、対応するパイプラインステ
ージは、例えば、有効な出力データを含むものと仮定さ
れる。同様に、当該ステージから次のステージまで供給
されるVALID信号はHIGHである。ステージB、
D、及びEが有効なデータを含む場合におけるパイプラ
インを図1に示す。ステージA、C、及びFは、有効な
データを含まない。開始点においては、パイプラインス
テージAへのVALID信号はHIGHであり、パイプ
ラインへの伝送回線上のデータが有効であることを意味
する。
ステージFへのACCEPT信号はLOWであり、従っ
て、有効であると有効でないとに拘わらず、ステージF
からデータは転送されない。有効および無効データがパ
イプラインステージ間において転送されることに注意さ
れたい。価値のないデータを保管する無効データは重ね
書きされ、それにより、無効データをパイプラインから
除去する。ただし、有効データは処理用または例えば、
パイプラインステージ、当該パイプラインからのデータ
を受け取るパイプラインに接続されたデバイスまたはシ
ステムのような下流のデバイスにおいて使用するために
保管されなければならないので、有効データは重ね書き
されてはならない。
ジEは有効なデータD1を含み、ステージDは有効なデ
ータD2を含み、ステージBは有効なデータD3を含
み、そして、上流パイプラインと接続されたデバイス
(図示せず)は、当該パイプラインに転送され、そし
て、処理されるべきデータD4を含む。上流デバイスに
加えて、ステージB、D、及びEは有効なデータを含
み、従って、これらのステージまたはデバイスからそれ
ぞれ後続するデバイスへのVALID信号はHIGHで
ある。ただし、ステージA、C、及びFからのVALI
D信号は、これらのステージが有効なデータを含まない
ので、LOWである。
スが、パイプラインからデータを受取入れる準備が整っ
ていないものと仮定する。デバイスは、対応するACC
EPT信号をLOWにセットすることにより、この状態
をステージFに送信する。ただし、ステージF自体は有
効なデータを含まず、従って、先行ステージEからデー
タを受け入れることができる。従って、ステージFから
ステージEへのACCEPT信号はHIGHにセットさ
れる。
み、そして、ステージFは、このデータを受け入れる準
備が整っている。従って、有効なデータD1が最初にス
テージFへ転送される限りステージEは新しいデータを
受け入れることができる。換言すれば、ステージFはデ
ータを下流に転送することができないが、他の全てのス
テージは、あらゆる有効なデータを重ね書き又は失うこ
となしに下流に転送できる。従って、サイクル1の終点
において、データは右へ1のステップだけ「シフトされ
る」ことが可能である。この状態をサイクル2に示す。
サイクル2に新しいデータを受け入れる準備がまだ整っ
ていないので、ステージFへのACCEPT信号はまだ
LOWである。従って、ステージFは新しいデータを受
け入れることが出来ない。理由は、そうすると、有効な
データD1が重ね書きされ、そして、失われるからであ
る。従って、ステージEは同様に有効なデータD2を含
むので、ステージEからステージDへのACCEPT信
号の場合と同様に、ステージFからステージEへのAC
CEPT信号はLOWになる。ただし、AからDまでの
全てのステージは新しいデータを受け入れることが可能
であり(これらのステージが有効なデータを含まない
か、或いは、これらのデータは、それらの有効なデータ
を下流にシフトし、そして、新しいデータを受け入れる
ことができるので)、そして、これらのステージは、そ
れぞれ対応するACCEPT信号をHIGHにセットす
ることによってこの条件を直前を先行する隣接ステージ
に送信する。
サイクル2の後のパイプラインの状態を図1に示す。一
例として、下流のデバイスがステージFから新しいデー
タを受け入れる準備がまだ整っていないものと仮定する
(ステージFへのACCPT信号はLOWである)。従
って、ステージE及びF、まだ「ブロック」されている
が、サイクル3においては、ステージDは有効なデータ
D3受領済みであり、このステージに以前から在った無
効のデータの重ね書きが完了している。サイクル3にお
いてステージDはデータD3を供給することができない
ので、このステージは新しいデータを受け入れることが
できず、従って、ステージCへのACCEPT信号をL
OWにセットする。ただし、ステージA−Cは新しいデ
ータを受け入れる準備が整っており、そして、対応する
ACCEPT信号をHIGHにセットすることによって
これを送信する。データD4はステージAからステージ
Bにシフトされてしまっていることに注意されたい。
いて新しいデータを受け入れる準備が整った状態になる
と仮定することとする。この下流デバイスは、ステージ
へのFACCEPT信号をHIGHにセットすることに
よって、このことを、パイプラインに送信する。ステー
ジC−Fは有効なデータを含むが、これらのステージ
は、この状態で、データを下流にシフトすることが可能
であり、従って、新しいデータを受け入れることが可能
である。従って、各ステージはデータを1ステップだけ
下流にステップすることができるので、これらのステー
ジは、それぞれ対応するACCEPT信号をHIGHの
外にセットする。
ステージF)へのACCEPT信号がHIGHである限
り、図1に示すパイプラインは、硬直パイプラインとし
て作動し、そして、各サイクルごとにデータを1ステッ
プだけシフトするだけである。従って、サイクル4にお
いてステージFに含まれるデータD1は、サイクル5に
おいて、パイプラインから次のデバイスにシフトされ、
そして、他の全てのデータは1ステップだけ下流にシフ
トされる。
がサイクル5においてLOWになると仮定する。これ
は、再度説明すれば、ステージD−Fが新しいデータを
受け入れることができず、そして、これらのステージか
ら直前の先行隣接ステージへのACCEPT信号はLO
Wになる。従って、データD2、D3、及びD4は、下
流にシフト出来ないが、データD5は可能である。従っ
て、サイクル5の後のパイプラインの対応する状態はサ
イクル6として図1に示される。
理ステージを「フィルアップ(充満)」するパイプライ
ンの能力は高度に有利である。理由は、この能力によっ
て、パイプラインの処理ステージが相互に結合から解放
されるからである。換言すれば、パイプラインステージ
のデータを受け入れる準備が整っていない場合であって
も、パイプライン全体は、停止するか、または遅延ステ
ージを待つ必要がない。そればかりでなく、1つのステ
ージが有効なデータを受け入れることができない場合
に、当該ステージは、単に、パイプライン内の時間的な
「壁」を形成するに過ぎない。この状態になっても、
「壁」の下流のステージは、パイプラインに接続された
回路に有効なデータを前進させ続けルコトサエ可能であ
り、そして、「壁」の左側のステージは、依然として、
有効なデータを受け入れ、そして、下流に向かって転送
することができる。数個のパイプラインステージが一時
的に新しいデータを受け入れることが出来ない場合、他
のステージは、正常作動を継続できる。特に、パイプラ
インは、その次のステージが新しいデータを受け入れる
準備が整っていないので前進させることの出来ない有効
なデータがステージAにまだ含まれていない限りデータ
をその最初のステージAに受け入れ続けることが可能で
ある。この例に示すように、1つ又は複数の処理ステー
ジかブロックされた状態においても、データは、パイプ
ライン、及びステージの間に転送可能である。
ラインステージが、それらの直後に隣接するステージか
ら受け取るACCEPT信号を記憶しないものと仮定す
る。その代りに、下流ステージへのACCEPT信号が
LOWになると、このLOW信号は、有効なデータを含
まない最も近いパイプラインステージまで流れをさかの
ぼって伝播される。例えば、図1を参照して、ステージ
FへのACCEPT信号がサイクル1においてLOWに
なるものと仮定する。サイクル2において、LOW信号
は、ステージFからステージDに戻って伝播する。
ジDにラッチされている場合、ACCEPT信号は、流
れをさかのぼる方向に4つのステージをステージCまで
伝播する。サイクル4においてステージFへのACCE
PT信号がHIGHになる場合には、この信号は、流れ
に逆らってステージCまで伝播する。換言すれば、AC
CEPT信号の変化は、4つのステージを通って後方に
伝播しなければならない。ただし、図1に示す実施例に
おいて、新しいデータを受け入れることができる中間ス
テージがある場合には、ACCEPT信号は、パイプラ
インの始点まで全経路を後方に伝播する必要はない。
ンステージは、意図的でない重ね書きを実施することな
しに、ステージ間でデータを転送可能にするためには、
依然として、個別の入力、及び出力データラッチを必要
とする。更に、図1に示すパイプラインは「圧縮」可能
であるが、下流パイプラインステージがブロックされる
場合、即ち、これらのステージが含むデータをこれらの
ステージが供給できない場合、パイプラインは、有効な
データを含むステージの間に有効なデータを含まないス
テージを提供するために、「膨張」しない。そうではな
くて、圧縮する能力は、第1のパイプラインステージに
有効なデータが所在しない期間に相当するサイクルに依
存する。
へのACCEPT信号がLOWのままであり、そして、
有効なデータによってパイプラインステージA及び3が
満たされた場合、有効なデータがステージAに所在し続
ける限り、パイプラインは、それ以上圧縮不可能であ
り、そして、有効な入力データは失われることがある。
それにも拘わらず、図1に示すパイプラインは、データ
が失われる危険を軽減する。理由は、有効なデータを含
まないパイプラインステージがある限り当該パイプライ
ンは圧縮可能であることに因る。
共に可能であり、そして、ACCEPT信号の伝播を最
も近い先行ステージまに制限する回路を有するパイプラ
インの他の実施例を図2、図3に示す。この実施例を実
現するための回路について以下に詳しく説明及び図説す
るが、図2、図3は、この実施例の作動原理を図説する
ために役立つ。
すパイプライン実施例への入力データ及びACCEPT
信号は、図1に示すパイプライン実施例の場合と同じで
ある。従って、ステージE、D、及びBは、それぞれ、
有効なデータD1、D2、及びD3を有する。ステージ
FへのACCEPT信号はLOWであり、データD4
は、開始パイプラインステージAに供給される。図2、
図3には、各近隣の一対のパイプラインステージの各隣
接する対になったステージを接続する3本の線が示され
る。バスであっても差し支えない最上位置の線はデータ
ラインである。中央の線はVALID信号がこれを通っ
て転送されラインであり、最下位の線は、これを通って
ACCEPT信号が転送されるラインである。更に、以
前の場合と同様に、ステージFへのACCEPT信号
は、サイクル4中を除き、LOWのままである。更に、
サイクル4において、付加的データD5がパイプライン
に供給される。
ージは、このパイプラインの実施例における各ステージ
が一次および第2データ記憶エレメントを含むことを図
説するために2つの半分部分に分割された1つのブロッ
クとして表される。図2、図3において、一次データ記
憶装置は、各ステージの右半分として示される。ただ
し、この記述は説明のみ目的とするものであり、このよ
うに制限されることを意図したものではないことを理解
されたい。
CCEPT信号がHIGHである限り、データは、任意
の所定サイクル期間中に、当該ステージの一次記憶エレ
メントから、その次のステージの二次記憶装置エレメン
トに転送される。従って、ステージFへのACCEPT
信号はLOWであるが、全ての他のステージへのACC
EPT信号はHIGHであり、その結果、データD1、
D2、及びD3はサイクル2において1つのステージだ
け前方にシフトされ、そして、データD4は、第1のス
テージAにシフトされる。
イン実施例は、図1に示すパイプライン実施例と同様の
方法において作動する。ただし、ステージFへのACC
EPT信号がLOWであってもステージFからステージ
EへののACCEPT信号はHIGHである。以下に説
明するように、二次記憶装置エレメントがあるために、
LOW ACCEPT信号にとって、ステージFを越え
て上流まで伝播することは必要ではない。更に、ステー
ジEへのACCEPT信号をHIGHのままに残すこと
によって、ステージF信号は、新しいデータを受け入れ
る準備が整っていることを送信する。ステージFは、サ
イクル3において、その一次記憶エレメント内のデータ
D1を下流に転送することは出来ない(ステージFへの
ACCEPT信号はLOWである)ので、従って、ステ
ージEは、データD2を、ステージFの二次記憶エレメ
ントに転送する。ステージFの一次および二次両記憶装
置エレメントは、この状態において、供給できない有効
なデータを含むので、ステージFからステージEへのA
CCEPT信号はLOWにセットされる。従って、これ
は、LOW ACCEPT信号が、サイクル2に対して
ただ1ステージだけ後方に伝播することを表し、この場
合、このACCEPT信号は、図1に示す実施例におけ
るステージCまでの全行程を後方に伝播されていなけれ
ばならない。ステージA−Eは、それらのデータを供給
できるので、当該ステージからそれらの直前隣接ステー
ジへのACCEPT信号がHIGHにセットされる。従
って、データD3及びD4は右へステージ1つだけシフ
トされる。その結果、サイクル4において、データは、
それぞれステージE及びステージCの一次データ記憶エ
レメントにロードされる。ステージEは、この段階にお
いて、その一次記憶エレメント内に有効なデータD3を
含んでいるが、その二次記憶装置エレメントは、一切の
有効なデータを重ね書きする危険なしに、他のデータを
記憶するために、依然として、使用できる。
ージFへのACCEPT信号が、サイクル4においてH
IGHになると仮定する。このことは、パイプラインが
データを供給する下流のデバイスがパイプラインからデ
ータを受け入れる準備が整っていることを示す。ただ
し、ステージFのACCEPT信号はLOWにセットさ
れているので、ステージFが新しいデータを受け入れる
準備ができていないことをEステージに示す。各サイク
ル期間におけるACCEPT信号は、次のサイクルにお
てが何が起きるか、即ち、データが供給されるか(AC
CEPT HIGH)どうか、或いは、データが所定の
場所に残らなければならないか(ACCEPT LO
W)どうか、を示すことを考察されたい。従って、サイ
クル4からサイクル5までの間に、データD1がステー
ジFからその次のデバイスまで供給され、データD2が
ステージFの二次記憶装置から一次記憶装置までシフト
されるが、しかし、ステージEにおけるデータD3はス
テージFへ転送されない。その次のステージのACCE
PT信号はHIGHであるので、データD4及びD5は
通常通り、次のパイプラインステージに転送されること
が可能である。
ラインの状態を比較することにより、二次記憶装置エレ
メントを装備することによって、図2、図3に示された
パイプライン実施例が膨張可能となること、即ち、デー
タ記憶エレメントを、その中に有効なデータが前進でき
るように解放することが分かる。例えば、これらのデー
タブロックのデータは、ステージFへのACCEPT信
号がHIGHになるまで転送出来ないので、サイクル4
において、データブロックD1、D2、及びD3は「固
体の壁」を形成する。ただし、この信号が一旦HIGH
になれば、データD1はパイプラインからシフトされ、
データD2はステージFの一次記憶エレメント内にシフ
トされ、そして、その次のデバイスがデータD2を受け
取ることが出来ず、そして、パイプラインがも一度「圧
縮」しなければならない場合、ステージFの二次記憶装
置エレメントは自由になって新しいデータを受け入れる
ことができる状態になる。これをサイクル6に示す。こ
のサイクルの期間中に、データD3は、ステージFの二
次記憶装置エレメント内にシフトされ、そして、データ
D4は、通常通り、ステージDからステージEに供給さ
れる。
の好ましい実施例を全体的に示す。この好ましい実施例
は、位相がφ0およびφ1の2相非重複クロックを用い
て、図2、図3に示す構造を実現する。2相クロックが
好ましいが、本発明の様々な実施例を、2相以上のクロ
ックを用いてドライブすることも可能であることを理解
されたい。
パイプラインステージは、一次および二次記憶装置エレ
メントを示す2つの個別ボックスを持つものとして図示
される。更に、VALID信号及びデータラインは、以
前の場合と同様に、様々なパイプラインステージを接続
するが、説明を容易にするために、図4、図5、図6、
図7にはACCEPT信号のみを示す。或るACCEP
T信号の1つのクロック位相中における状態の変化は、
LOWからHICHへの変化は上向き矢印を用いて図
4、図5、図6、図7に示される。同様に、HIGHか
らLOWへの変化は、下向き矢印で示される。1つの記
憶エレメントからもう1つの記憶エレメント一方へのデ
ータの転送は、大きい開いた矢印によって示される。任
意の所定ステージの一次或いは二次記憶エレメントから
のVALID信号は、記憶エレメントが有効なデータを
含む場合には必ずHIGHであるものと仮定される。
クルは、非重複クロック位相φ0及びφ1の1つの全周
期で構成されるものとして示される。以下に更に詳細に
説明されるように、データは、クロックサイクルφ1の
期間中に、二次記憶エレメント(各ステージにおける左
のボックスとして示す)から一次記憶エレメント(各ス
テージにおける右のボックスとして示す)に転送され、
他方において、データは、クロックサイクルφ0の期間
中に、1つのステージの二次記憶エレメントからソノ次
のステージの一次記憶エレメントに転送される。同様
に、図4、図5、図6、図7は、各ステージにおける一
次および二次記憶エレメントは、ACCEPT信号がス
テージからステージへ供給されると同じ方法においてA
CCEPT信号を供給するように内部受入れラインを経
てさらに接続されることを示す。このようにして、二次
記憶エレメントは、そのデータを一次記憶エレメントに
いつ供給出来るかを知るはずである。
φ1位相を示す。このサイク中に、それぞれステージ
E、D、及びBの二次記憶エレメントに既にシフトされ
ているデータD1、D2、及びD3はそれぞれのステー
ジの一次記憶エレメントにシフトされる。従って、サイ
クル1のφ0位相中における、パイプラインのコンフィ
ギュレーションは、図2のサイクル1の場合と同じであ
る。以前と同様に、ステージFへのACCEPT信号は
LOWであるものと仮定される。ただし、図4、図5、
図6、図7に示すように、ステージFの一次記憶エレメ
ントへのACCEPT信号はLOWであるが、 この記
憶エレメントは有効なデータを含まないので、この記憶
エレメントはACCEPT信号をその二次記憶エレメン
ト内にHIGHにセットする。
データを含まないので、ACCEPT信号は、ステージ
Fの二次記憶エレメントからステージEの一次記憶エレ
メントへの中に同じくHIGHにセットされる。以前と
同様に、ステージFの一次記憶エレメントはデータを受
け入れることができるので、全ての上流一次および二次
記憶エレメントにおけるデータは、一切のデータが重ね
書きさっれることなしに、下流にシフト可能である。1
つのステージからその次のステージまでのデータのシフ
トは、サイクル2における次のφ0位相期間中に行われ
る。例えば、ステージEの一次記憶エレメントに含まれ
る有効なデータD1は、ステージFの二次記憶エレメン
トにシフトされ、データD4はパイプライン内、即ち、
ステージAの二次記憶エレメント内にシフトされる、等
々。
クル2におけるφ0位相期間中には有効なデータをまだ
含まず、従って、一次記憶エレメントからステージFの
二次記憶エレメントへのACCEPT信号はHIGHの
ままである。従って、サイクル2におけるφ0位相期間
中、データは、更に1ステップだけ右へ、即ち、各ステ
ージ内の二次記憶エレメントから一次記憶エレメントま
でシフト可能である。ただし、有効なデータが、一度、
ステージFの一次記憶エレメントにロードされ、下流デ
バイスからのステージFへのACCEPTがまだLOW
である場合には、有効なデータD1を重ね書きおよび破
壊することなしに、ステージFの二次記憶エレメントか
らデータをシフトすることは出来ない。従って、一次記
憶エレメントからステージFの二次記憶エレメントへの
ACCEPT信号はLOWになる。ただし、二次記憶装
置は有効なデータを含まず、そして、そのACCEPT
信号出力はHIGHであったので、データD2は、ステ
ージFの二次憶装置にまだシフト可能である。
それより前の全てのステージ内においてシフト可能であ
るが、データD2をステージFの一次記憶エレメント内
にシフトすることは出来ない。ただし、有効なデータ
が、一旦、二次記憶エレメント内にロードされると、ス
テージFはこのデータを供給することができない。ステ
ージFはこのイベントを、そのACCEPT信号をLO
Wの外にセットすることにより送信する。
のままであると仮定すると、Fステージの上流のデータ
は、次の有効なデータブロックD3がステージEの一次
記憶エレメントに到達するまで、ステージの間、及びそ
れぞれのクロック位相のステージ内においてシフトされ
ることが可能である。図に示すように、サイクル4のφ
1位相期間中にこの状態に到達する。
のステージEの一次記憶エレメントへのロードが完了す
る。このデータは更にシフト不可能であるので、ステー
ジEの一次記憶エレメントからのACCEPT信号はL
OWにセットされる。上流データは正常にシフト可能で
ある。
パイプラインの下流でに接続されたデバイスがパイプラ
インデータを受け入れることができると仮定することと
する。このデバイスは、サイクル4のφ1位相期間中に
ACCEPT信号をパイプラインステージF内にHIG
Hにセットすることによってこのイベントを送信する。
ここにおいて、ステージFの一次記憶エレメントはデー
タを右にシフトし、そして、ステージFの一次記憶エレ
メントは、同様に、新しいデータを受け入れることが可
能である。従って、データD1は、サイクル5のφ1位
相期間中にシフトされたので、ステージFの一次記憶エ
レメントは、セーブされなければならないデータを既に
含んでいない。従って、サイクル5のφ1位相期間中
に、データD2は、ステージF内において、二次記憶エ
レメントから一次記憶エレメントへシフトされる。ステ
ージFの二次記憶エレメントは、ACCEPT信号をス
テージEの一次記憶エレメント内にHIGHにセットす
ることによって新しいデータ及び信号を受け入れること
ができる。1つのステージ内における、即ち、その二次
からその一次記憶エレメントへのデータの転送期間中
に、両組の記憶エレメントは同じデータを含むが、二次
記憶エレメント内のデータは一次記憶エレメント内に同
様に保持されるので、二次記憶エレメント内のこのデー
タは、データ損失なしに、重ね書き可能である。1つの
ステージの一次記憶エレメントからその次のステージの
二次記憶エレメントへのデータ転送に関しても同様に真
である。
中、それステージFの一次記憶エレメントへのACCE
PT信号がLOWになるものと仮定する。これは、ステ
ージFがパイプラインからデータD2を転送移すること
ができないことを意味する。従って、ステージFは、有
効なデータD2の重ね書きを防止するために、その二次
記憶エレメントからその一時記憶エレメントへのACC
EPT信号をLOWにセットする。ただし、ステージF
の二次記憶エレメントに記憶されたデータD2は、損失
なしに重ね書きされることは不可能であり、そして、そ
の結果、データD3は、サイクル6のφ0相期間中にス
テージFの二次記憶エレメント内に転送される。データ
D4及びD5は、正常状態として下流にシフトされるこ
とは出来ない。有効なデータD3が、データD2と共に
一度ステージFに記憶されると、ステージFの一次記憶
エレメントへのACCEPT信号がLOWである限り、
あらゆる二次記憶エレメントは新しいデータを受け入れ
ることが出来ず、そして、二次記憶エレメントは、ステ
ージEへのACCEPT信号をLOWにセットすること
によってこれを送信する。
CEPT信号がLOWからHIGHへ、あるいは、その
逆に変化する場合、この変化は、パイプライン内におい
て、直前を先行する記憶エレメントより更に上流まで伝
播してはならない(同一ステージ内か、或いは、先行パ
イプラインステージ内)。更に、この変化は、当該パイ
プライン内において、クロック位相につき1つの記憶エ
レメントブロックだけ上流に伝播する。
図6、図7に示すパイプライン構造における「1つのス
テージ」のコンセプトは、ある程度知覚に関わる問題で
ある。データがステージの間に所在する場合には、当該
データは、ステージ内において(二次記憶エレメントか
ら一次記憶エレメントまで)転送され(上流ステージの
一次記憶エレメントから隣接下流ステージの二次記憶エ
レメントへ)されるので、1つのステージは、図4、図
5、図6、図7に示す場合の代わりに、「二次記憶エレ
メント」によって後続される「一次」記憶エレメントか
ら成ると考えて差し支えない。従って、「一次」および
「二次」記憶エレメントのコンセプトは、殆どラベリン
グの問題である。図4、図5、図6、図7において、デ
ータが1つのステージからその次のステージ又はデバイ
スに転送される場合に、一次記憶エレメントは、それか
らデータが取り出されるエレメントであり、そして、
「二次」記憶エレメントは、同一ステージに対して「入
力」記憶エレメントであり得るので、「一次」記憶エレ
メントは、「出力」記憶エレメントとして参照すること
も出来る。
ついて説明する場合、ACCEPT及びVALID信号
の制御の下でのデータの転送についてのみ言及した。更
に、各パイプラインステージの内部記憶エレメント間で
供給する以前に、或いは、その次のパイプラインステー
ジに供給する以前に、各パイプラインステージは、それ
が任意に受け取ったデータも同様に処理することが可能
であることを理解されたい。従って、更に図4、図5、
図6、図7をも一度参照して、パイプラインステージは
入力及び出力記憶エレメントを含み、そして、その記憶
エレメントに記憶されたデータを任意に処理するパイプ
ラインの一部として定義できる。
「デバイス」は、ある種の他のタイプのハードウェア構
造である必要はなく、むしろ、他のパイプラインそのも
の又はその部分であっても差し支えない。以下に説明す
るように、パイプラインステージは、下流の記憶エレメ
ントの全てが有効なデータで満たされた場合のみなら
ず、ステージがそのデータの処理を終了するために複数
のクロック位相を必要とする場合にも、そのACCEP
T信号をLOWにセットすることができる。これは、パ
イプラインステージがその記憶エレメントの1つ又は両
方内に有効なデータを作る場合にも、同様に起こり得
る。換言すれば、ステージにとって、直ぐ下流の記憶エ
レメントが、供給不可能な有効なデータを含むか否かに
基づいてACCEPT信号を単に供給することは必要で
ない。むしろ、ACCEPT信号自体も、隣接記憶エレ
メント間のデータ用通路を制御するために、当該ステー
ジ内において、或いは、当該ステージにとって外部の回
路によって、変更可能である。VALID信号は、類似
の方法において同様に処理可能である。
CCEPT信号の各々に対してそれぞれ1本のワイヤ)
の大きな利点は、パイプラインをその開始ステージまで
全経路を後方に向かって伝播するために必要な制御信号
なしで、パイプラインを制御する能力を持つことであ
る。図1のサイクル3を再度参照することとし、例え
ば、ステージFは、データを受け入れることができない
ことをステージEに「告げ」るが、ステージEはステー
ジDに告げ、そして、ステージDはステージCに告げ
る。実際問題として、含まれる有効なデータよりも多く
のステージが有る場合には、この信号がパイプラインに
沿って更に遠くまで後方に伝播する可能性がある。図
4、図5、図6、図7に示す実施例、サイクル3におい
て、LOW ACCEPT信号は、ステージEより上流
には一切伝播せず、その一次記憶エレメントまでにとど
まる。
該設計を実現するために必要なシリコン部分に特に添付
することなしに、この融通性を達成することができる。
一般に、データ記憶のために使われるパイプラインにお
ける各ラッチは、余分にトランジスタ1つだけを必要と
する(極めて能率的にシリコンに適合する)。更に、各
半ステージにおいてデータラッチと関連するACCEP
T及びVALID信号を処理するために、余分に2つの
ラッチ及び少数のゲートを追加することが好ましい。
ージを実現するハードウェア構造を図8に示す。
ションとしての組合わせ論理回路においてそれ以上の操
作を行うか、又は、行うことなしに)パイプラインを通
って並列に8ビットデータを転送するものと仮定する。
ただし、本発明を実現するためには、1ビットデータ又
は8ビット未満のデータのいずれかを用いることができ
ることを理解されたい。更に、本実施例に従った2線イ
ンターフェースは、あらゆる幅のデータバスと共に使用
することに適しており、そして、データバスの幅は、特
定アプリケーションの必要性に応じて、ステージ毎に異
なることもあり得る。この実施例に従ったインターフェ
ースは、アナログ信号を処理するためにも使用できる。
タイミング配置を使用可能であるが、インターフェース
は、2相非重複クロックによって制御されることが好ま
しい。図8〜図16において、これらのクロック位相信
号は、PH0及びPH1として参照される。図8におい
て、各クロック位相信号用に1本のラインを示す。
Nデータを介してパイプラインステージに入力され、そ
して、出力データバスOUTデータを介してその次のパ
イプラインステージ、或いは、その次の受信回路へ転送
される。入力データは、先ず、集合的にLDINとして
参照され上記の二次記憶エレメントを構成する一連の入
力ラッチ(各入力データ信号にたいして1つ)に以下に
示す方法によってロードされる。
ッチのQ出力は、それらのD入力をフォローする、即
ち、クロック入力がHIGHである場合、即ち、論理
「1」レベルにおいて全てのラッチのQ出力がロードさ
れる。更に、Q出力は、それらの最後の値を保持する。
換言すれば、Q出力は、それらの対応するクロック信号
の降下落端で「ラッチ」される。
又は2つの非重複クロック信号PH0又はPH1(図
9、図10に示すように)、又は、これらのクロック信
号PH0、PH1のうちの1つ、及び1つの論理信号の
理的AND組合わせを持つ。ただし、本発明は、ラッチ
動作の適切なタイミングを保証するために従来の方法が
適用される限り、クロック信号の上昇端でラッチ作動す
るラッチ、或いは、他の既知のラッチ用配置を提供する
ことによって同程度に良好に作動する。
タは、任意かつオプションとしての組み合わせ論理回路
B1を経て供給し、この組み合わせ論理回路は、入力ラ
ッチLDINからの出力データを中間データに変換する
ために提供されることもあり、次に、この中間データは
後で出力データラッチLDOUTにロードされ、この出
力データラッチは上記の一次記憶エレメントから成る。
は、OUTデータとしてその次のデバイスまで下流方向
に供給される以前に任意かつオプションとしての組み合
わせ論理回路B2を経て同様に供給することが可能であ
る。その次のデバイスとは、他のパイプラインステー
ジ、或いは、パイプラインに接続された他のデバイスで
あっても差し支えない。
ステージは、同様に、妥当性検査入力ラッチLVIN、
妥当性検査出力ラッチLVOUT、受入れ入力ラッチL
AIN、及び受入れ出力ラッチLAOUTを含む。これ
らの4つのラッチの各々は、簡単な単一ステージラッチ
であることが好ましい。ラッチU/IN、LVOUT、
LAIN、及びLAOUTからの出力は、それぞれ、Q
VIN、QVOUT、QAIN、QAOUTである。妥
当性検査入力ラッチからの出力信号QVINは、入力と
して直接、或は、中間論理デバイス又は信号を変更する
回路を経て妥当性検査出力ラッチLVOUTへ接続され
る。
信号QVOUTは、その次のステージの妥当性検査入力
ラッチQVINの入力へ、直接、又は、中間デバイス又
は論理回路を経て接続しても差し支えない。この場合の
デバイスは、妥当性検査信号を変更するデバイスであっ
ても差し支えない。この出力QVINは、同様に、論理
ゲート(以下に説明する)に接続され、この論理ゲート
の出力は、受入れ入力ラッチLAINの入力に接続され
る。受入れ出力ラッチLAOUTからの出力QAOUT
は、任意に他の論理ゲートを経て類似の論理ゲート(以
下に説明する)に接続される。
VOUTは、後続するステージによってIN VALI
D信号として受け取られることの出来るOUT VAL
IDを形成するか、或いは、単にパイプラインに接続さ
れる後続回路に有効なデータを指示する。その次の回路
またはステージのデータ受け入れ準備は、信号OUTA
CCEPTとして各ステージに指示され、この信号は、
好ましくは以下に説明する論理回路を経て、受入れ出力
ラッチLAOUTに入力として接続される。同様に、受
入れ出力ラッチLAOUTの出力QAUTは、好ましく
は以下に説明する論理回路を経て、受入れ入力ラッチL
AINに入力として接続される。
LVINからの出力信号QVIN、QVOUTは、それ
ぞれ、受入れラッチLAIU、LAOUTへの入力を形
成するために、受入れ信号QAOUT、OUT ACC
EPT1とそれぞれ組合わされる。図8に示す実施例に
おいて、これらの入力信号は、それぞれの受入れ出力信
号QAOUT、OUT ACCEPTの論理的逆とし
て、それぞれの妥当性検査信号QVIN、QVOUTの
論理NAND組み合わせとして形成される。従来の論理
ゲートNAND1、及びUAND2は、NAND動作を
実施し、そして、インバータINV1、INV2は、そ
れぞれの受入れ信号の論理的逆を形成する。 デジタル
設計技術において周知であるように、NANDゲートの
任意又は全ての入力信号が論理「0」状態にある場合、
NANDゲートからの出力は論理「1」である。従っ
て、NANDゲートの全ての入力が論理「1」状態にあ
る場合に限り、NANDゲートからの出力は論理「0」
である。当該技術分野において同様に周知であるよう
に、例えばINV1のようなデジタルインバータの出力
は、その入力信号が「0」である場合に、論理「1」で
あり、そして、その入力信号が「1」である場合に
「0」である。
には、NANDゲートNAND1への入力は、QVI
N、及びNOT(QAOUT)である。既知の技術を用
いて、受入れラッチLAINへの入力は、次のとおりに
分解できる。
T))=NOT(QVIN)OR QAQUT換言すれ
ば、信号QVINは「0」であるか、或いは、信号QA
QUTが「1」であるか、或は、両方の場合に、インバ
ータINV1、及びNANDゲートNAND1の組み合
わせは論理「1」である。従って、ゲートNAND1及
びインバータINV1は、その入力の1つが受入れラッ
チLAOUTのQAOUT出力に直接結合され、いま1
つの入力が妥当性検査入力ラッチLVINの出力信号Q
VINの反転に結合されている1つの単一ORゲートに
よって実現可能である。
あるように、妥当性検査及び受入れラッチとしての使用
に適する多くのラッチは、2つの出力Q、及びNOT
(Q)、すなわち、Q、及びその論理的逆を持つことが
できる。従って、この種のラッチを選定した場合には、
OPゲート(従って)への1つの入力は、妥当性検査ラ
ッチLVINのNOT(Q)出力に直接結合されること
が可能である。ゲートNAND1及びインバータINV
1は、周知の従来の技術を用いて実現することが出来
る。ただし、使用されるラッチのアーキテクチャに応じ
て、出力を反転することのないラッチを使用し、そし
て、その代りにゲートNAND1、及びインバータIN
V1を提供することが更に効率的である場合もあり得
る。これら両者は、同様に、シリコンデバイスにおいて
能率的に実現可能である。従って、Q信号、及び/又
は、その論理的逆を生成するために任意の既知の配置を
使用することができる。
0、及び入力側におけるPH1)及び同じ側の受入れラ
ッチからの出力が論理「1」である場合、データ、及び
妥当性検査ラッチLDIN、LDOUT、LVIN、及
びLVOUTは、それらのそれぞれのデータ入力をロー
ドする。従って、クロック信号(入力ラッチLDIN及
びLVINに対するPH0)、及びそれぞれの受入れラ
ッチ(この場合のLAIN)の出力は、論理的ANDの
方法に使用され、そして、それらが双方共に論理「1」
である場合に限り、データはロードされる。
のアプリケーションにおいて、ラッチのローディング
(図に示すCK、または作動化「入力」を経て)を制御
する論理的AND演算は、それぞれの作動化入力信号
(例えば、ラッチLVIN、及びLDINのためのPH
0、及びQAIN)をラッチの入力ラインに直列接続さ
れたMOSトランジスタへのゲートに接続することによ
り従来の方法において容易に実現可能である。従って、
実際の論理ANDゲートを提供することが必要であり、
これによって、高速アプリケーションにおける伝播遅延
に起因するタイミングの問題を引き起こす可能性があ
る。従って、図に示すANDゲートは、様々なラッチの
作動化信号を生成するために実施されるべき論理関数を
指示するに過ぎない。
「1」である場合に限りデータラッチLDINは入力デ
ータをロードする。このデータラッチは、これら2つの
信号のどちらかが「0」になる場合に、このデータをラ
ッチする。
力)側におけるデータ及び妥当性検査ラッチをクロック
するためにはクロック位相信号PH0またはPH1の1
つだけが用いられるが、もう一方のクロック位相信号
は、同じ側における受入れラッチをクロックするために
直接用いられる。換言すれば、パイプラインステージの
いずれかの側(入力、または出力)の受入れラッチは、
同じ側のデータ及び妥当性検査ラッチを用いて、その
「位相外れ」をクロックされることが好ましい。例え
ば、PH0は、データラッチLDIN及び妥当性検査ラ
ッチLVIN用のクロック信号CKを生成するために使
われるが、PH1は、受入れ入力ラッチをコロックする
ために用いられる。
補されたパイプラインの作動例として、当該回路への入
力においては、先行パイプラインステージ、或いは、伝
送デバイスのどちらからも、最初には、有効なデータは
提供されないものと仮定する。換言すれば、当該システ
ムは極めて最近リセットされたので、図に示すステージ
への妥当性検査入力信号IN VALIDはまだ「1」
になっていないものと仮定する。更に、システムが最後
にリセットされた時から、数回のクロックサイクルが発
生し、そして、その結果として、当該回路は定常に到達
したものと仮定する。従って、クロックPH0のその次
の正の期間中、妥当性検査ラッチLVINからの妥当性
検査入力信号QVINは「0」としてロードされる。従
って、クロック信号PH1のその次の正の期間中、受入
れ入力ラッチLAIN(ゲートNAND1、または他の
同等のゲートを介して)への入力は、「1」としてロー
ドされる。すなわち、データ入力ラッチLDINにおけ
るデータは有効でないので、当該ステージは(当該ステ
ージは一切のデータ価値保管を保持しないので)、当該
ステージが入力データの受け入れ準備が整っていること
を送信する。
ッチLDIN及びLVINを作動可能にするために信号
IN ACCEPTが用いられることに注意されたい。
この時点において、信号IN ACCEPTは「1」で
あるので、これらのラッチは、従来の透過ラッチとして
効果的に作用し、その結果として、INデータバス上の
あらゆるデータは、クロック信号PHDが「1」になる
と直ちに、単に、データラッチLDINにロードされ
る。勿論、その受入れラッチからの出力QAOUTが
「1」である限り、この無効データも、同様に、その次
に後続するパイプラインステージのその次のデータラッ
チLDOUTにロードされる。
んでいない限り、それぞれのクロック信号のその次の正
の周期中、このラッチは、提供されるあらゆるデータを
受け入れる、即ち、「ロード」する。一方、そのような
無効のデータは、対応する受入れラッチからの受入れ信
号がそれに対してLOW(即ち、「0」)であるような
一切のステージにロードされない。更に、妥当性検査ラ
ッチへの対応するINVALID(或いは、QVIN)
信号がローである限り、妥当性検査ラッチからの出力信
号(その次の妥当性検査ラッチへの妥当性検査入力信号
を形成する)は「0」のままである。
場合には、妥当性検査信号IN VALIDが「1」ま
で上昇することによってこれを指示する。次に、対応す
る妥当性検査ラッチの出力は、各クロック位相信号のそ
の次の上昇端において「1」まで上昇する。例えば、ク
ロック位相信号PH0のその次の上昇端において、対応
するIN VALID信号がHIGHになる(すなわ
ち、「1」に上昇する)場合、ラッチLVINの妥当性
検査入力信号QVINは「1」に上昇する。
DINが有効なデータを含んでいるものと仮定する。デ
ータ出力ラッチLDOUTの新しいデータを受け入れる
準備が整っている場合には、その受入れ信号QAOUT
は「1」である。この場合、クロック信号PH1のその
次の正の周期中に、データラッチLDOUT及び妥当性
検査ラッチLOUTは作動可能化され、そして、データ
ラッチLDOUTは、その入力に所在するデータをロー
ドする。クロック信号は非重複性であるので、上記の動
作は、もう一方のクロック信号PH0のその次の上昇端
以前に発生する。従って、PH0のその次の上昇端にお
いて、先行データラッチ(LDIN)は、データ出力ラ
ッチLDOUTが、ラッチLDINから転送されたデー
タを安全にラッチし終わるまで、先行ステージからの新
しい入力データにおいてラッチしない。
動するので、データを受け取り可能なデータラッチ(ス
テージ内、或いは、隣接ステージ間)の全ての隣接対に
よって同じシーケンスが続けられる。未だ供給できない
有効なデータを含んでいるために、新しいデータを受け
入れる準備が整っていないあらゆるデータラッチは、L
OWである出力受入れ信号(その受入れラッチLAから
のQA出力)を持ち、そして、そのデータラッチLDI
N或いはLDOUTはロードされない。従って、所定の
ステージ、又は、或るステージの一方の側(入力、また
は出力)の受入れ信号(受入れラッチからの出力)がL
OWである限り、その対応するデータラッチはロードさ
れない。
図8に示す。この図に示す例において、リセット信号N
OTRESET0は、妥当性検査出力ラッチLVOUT
の反転リセット入力(反転は、従来通り、小さい丸によ
って示す)に接続される。周知のように、これは、リセ
ット信号NOTRESET0が「0」になるときはいつ
でも、妥当性検査ラッチLVOUTが「0」を出力する
ように強制されることを意味する。リセット信号がロー
になる(「0」になる)場合にラッチをリセットするこ
との1つの利点は、伝送の遮断によてラッチをリセット
することである。この場合、有効な伝送が始まり、そし
て、リセット信号がHIGHになる時にはいつでも、こ
れらのラッチは「空の」状態、或いは、リセットされた
状態である。従って、リセット信号NOTRESET0
はデジタル「オン/オフ」スイッチとして作動する。従
って、この信号は、パイプラインを作動化するためには
HIGH値でなければならない。
するラッチの全てをリセットすることが必要ではないこ
とに注意されたい。図8に示すように、妥当性検査入力
ラッチLVINは、リセット信号NOTRESET0に
よって直接リセットされず、間接的にリセットされる。
リセット信号NOTRESET0が「0」に降下するも
のと仮定する。受入れ出力ラッチLAOUT(ゲートN
AND1を経て)への入力がHIGHになると、その以
前の状態には無関係に、妥当性検査出力信号QVOUT
も同様に「0」まで降下する。同様に、受入れ出力信号
QAOUTも「1」に上昇する。次に、このQAOUT
値「1」は、「1」として、妥当性検査入力信号QVI
N状態には無関係に、受入れ入力ラッチ入力LAINへ
転送される。次に、受入れ入力信号QAINは、Nクロ
ック信号PH1の次の立ち上がりエッジにおいて「1」
まで上昇する。妥当性検査信号IN VALIDが正し
く「0」にリセットされたと仮定すれば、妥当性検査ラ
ッチLVINが直接リセットされていたならば、実施さ
れた時に、クロック信号PH0の次の立ち上がりエッジ
において、妥当性検査ラッチLVINからの出力は
「0」になる。
ッチをリセットするためには、各ステージ(最終ステー
ジを含む)のただ1つの側においてのみ妥当性検査ラッ
チをリセットすることだけが必要である。事実、多くの
アプリケーションにおいて、他の全ての妥当性検査ラッ
チをリセットすることは必要でない。即ち、リセット信
号NOTRESET0が、クロックの双方の位相PH
0、PH1の完全な1サイクルよりも長い期間に亙って
所在することが保証可能である場合には、「自動リセッ
ト」(リセット信号の後方伝播)が、先行パイプライン
ステージにおける妥当性検査ラッチ期間に対して発生す
る。実際問題としては、少なくとも所在するパイプライ
ンステージの数と同数のクロックの双方の位相の全サイ
クル数の期間中に亙りリセット信号が保持される場合、
最終パイプラインステージにおける妥当性検査出力ラッ
チを直接リセットすることだけが必要である。
0、PH1の間の関係、リセット信号の効果、データの
保持、及び妥当性検査および受入れ信号の種々異なる順
序に対して図8に示す実施例におけるパイプラインステ
ージの図示された2つの側、及びその間へのデータの転
送を示す。図9、図10のタイミングダイアグラムに示
す例においては、データラッチLDIN、LDOUTか
らの出力は、介在している論理ブロックB1、B2によ
るこれ以上の操作なしで供給されるものと仮定されてい
る。これは一例として示すものであり、制約的な意味を
もつものではない。あらゆる組み合わせ的論理構造は、
連続したパイプラインステージのデータラッチの間、又
は、1つの単一パイプラインステージの入力と出力側と
の間に含ませることが可能であることを理解されたい。
入力データに関して実際に図示されている値(例えば、
HEXデータワード「aa」、または「04」)も同様
に単に図解例に過ぎない。データラッチ又は他の記憶デ
バイスが、各ビット又は入力ワードの値を収容およびラ
ッチまたは記憶可能である限り、上記のように、入力デ
ータバスの幅は任意である(そして、アナログであって
も差し支えない)。 好ましいデータ構造 ― 「トークン」 図8に示すサンプルアプリケーションにおいて、組み合
わせ論理ブロックB1、B2、等々を介して入力データ
を供給可能にすることからステージを除外する制御回路
が無いので、各ステージは、全ての入力データを処理す
る。更に大きい融通性を提供するために、本発明は、シ
ステム全体を通じてデータ及び制御情報を配分するため
に「トークン」が使われるようなデータ構造を有する。
各トークンは、1つまたは複数のトークンワードブロッ
クに分割された一連の2進ビットから成る。更に、ビッ
トは、次に示す3つのタイプのいずれかの1つに相当す
る、即ち、アドレスビット(A)、データビット
(D)、または拡張ビット(B)である。単に例とし
て、必ずしも制約的な意味をもつことなく、データが、
1ビット拡張ビットラインを有する0ビットバスを介し
てワードとして転送されるものと仮定する。4ワードト
ークンの例を伝送順に次に示す。 第1番目のワード E A A A D D D D D 第2番目のワード E D D D D D D D D 第3番目のワード E D D D D D D D D 第4番目のワード E D D D D D D D D 拡張ビットEは、各データワードへの追加(好ましく
は)として使われることに注意されたい。更にアドレス
フィールドの長さは可変であっても差し支えなく、そし
て、第1ワードの拡張ビットの直後に伝送されることが
好ましい。
進)デジタルデータの1つ又は複数のワードから成る。
これらのワードの各々は、好ましくは並列に順序立てて
転送される。ただし、この転送方法は必ずしも必要で
く、既知の技術を用いて直列データ転送も可能である。
例えば、動画構文解析系において、制御情報は並列に伝
送され、この場合、データは直列に伝送される。
好ましくは開始時において、トークンに含まれるデータ
のタイプを識別する1つのアドレスフィールド(A‐ビ
ットのストリング)を持つ。殆どのアプリケーションに
おいて、1つの単一ワード、または1つのワードの部分
は、アドレスフィールド全体を転送するために十分であ
る。しかし、アドレスフィールド全体を受け取り、そし
て、デコードするのに充分な長さを持つ部分的なアドレ
スフィールドのある程度の表現を記憶することができる
ような対応するパイプラインステージに論理回路が含ま
れていさえすれば、前記に条件は、本発明にとって必ず
しも必要でない。
用線または専用レジスタを必要としないことに注意され
たい。アドレスフィールドは、データビットを用いて伝
送されることに注意されたい。以下に説明するように、
特定のアドレスフィールドによって作動化されることが
意図されていない場合、即ち、ステージが遅延なしにト
ークンに沿って供給可能である場合には、パイプライン
ステージは減速されない。
りのデータは、トークンの使用によって制約されない。
これらのDデータビットは、任意の値をとることが可能
であり、そして、これらのビットに付けられ意味はここ
では重要でない。即ち、データの意味は、例えば、特定
の時点に当該データがシステム内のどこに配置されてい
たかによって、変化することが可能である。アドレスフ
ィールドの後に添付されたデータビットDの数は、必要
なだけ長くても短くても差し支えなく、そして、トーク
ンが異なれば、データワードの数が大幅に変化すること
がある。アドレスフィールド、及び拡張ビットは、パイ
プラインステージに対して、制御信号を運ぶために使わ
れる。データフィールド内のワード(Dビットのストリ
ング)の数は随意で差し支えないので、データフィール
ドにおいて運ばれる情報も、それに応じて変化可能であ
る。従って、以下の説明は、アドレス及び拡張ビットの
使用に向けられる。本発明において、回路内の多数のブ
ロックが、比較的簡単な構成にまとめて接続されている
場合、トークンは特に有用なデータ構造である。最もシ
ンプルなコンフィギュレーションは、例えば、その1つ
が図1に示されているような、処理ステップのパイプラ
インである。ただし、トークンの使用は、パイプライン
構造における使用にのみ制約されない。
を表すものと再度仮定する。図1のパイプラインにおい
て、データは図の左から右に流れる。データは、マシン
に入り、そして、処理ステージAに供給する。このステ
ージはデータを修正する場合もあれば、しない場合もあ
り、そして、データをステージBへ供給する。修正され
る場合には、複雑であることもあり、そして、一般に、
任意のステージに流入するデータアイテムの数は、流出
数と同じでない。ステージBは、再びデータを修正し、
そして、それをステージCに供給する、等々。この種の
設計の場合には、データにとって、反対方向に流れるこ
とは不可能である。従って、例えば、ステージCはデー
タをステージAに供給できない。この制約条件は、完全
に受け入れられる場合が多い。
続されていない場合であっても、ステージAが情報をス
テージCに伝達することができることは非常に望まし
い。ステージAとCの通信はステージBをへる場合に限
られる。トークンの1つの利点は、トークンがこの種類
の通信を達成する能力を備えていることである。トーク
ンを認識しないあらゆる処理ステージは変更しないトー
クンをその次のブロックに単に供給するに過ぎない。
トークンにおけるアドレス及びデータフィールドと共に
伝送されるので、処理ステージは、そのアドレスを復号
化しなければならないことを一切必要とせずに、トーク
ン(随意の長さであり得る)を供給することができる。
この例によれば、HIGH(「1」)である拡張ビット
をその中に含むあらゆるトークンには、同じトークンの
一部である後続ワードによって後続される。この後続ワ
ードも、同様に、拡張ビットを持ち、このビットは、ト
ークン内に更に別のトークンワードがあるかどうかを示
す。ステージがその拡張ビットがLOW(1つの
「0」)であるようなトークンワードに遭遇した場合に
は、そのトークンワードが当該トークンの最後ワードで
あることが分かる。従って、その次のワードは、新しい
トークンの第1のワードであると仮定される。
有用であるが、トークンは、更に複雑なコンフィギュレ
ーションの処理エレメントに適用可能であることが分か
ることに注意されたい。更に複雑な処理エレメントの例
を次に示す。
拡張ビットを与えることにより所定のトークンの最後の
ワードを送信するために、拡張ビットの状態を使用する
必要はない。好ましい実現計画への1つの代替案は、ト
ークンの最後のワードの代りにトークンの第1のワード
を示すように拡張ビットを移動させることである。これ
は、符号復号化ハードウェアを適切に改造することによ
って達成できる。
ードを送信するために本発明の拡張ビットを用いた場合
の利点は、トークンが拡張ビットを持っているかどうか
に応じて、回路のブロックの作動様式を修正することが
有用である場合が多い。前記の論旨の例は、量子化表
(一般にはメモリーデバイス)に記憶された動画量子化
値を処理するステージを作動化するトークンである。例
えば、64の8ビット任意2進整数を含む表である。
ステージにロードするためには、「QUANT・テーブ
ル」トークンが量子化器に送られる。そのような場合、
例えば、トークンは、65のトークンワードから成る。
第1のワードは、コード「QUANT・テーブル」を含
む、即ち、量子化表を作る。これには、量子化表の整数
である64のワードが後続する。
量子化表を伝送することが時おり必要である。この機能
を達成するために、拡張ワードなしのQUANT・テー
ブルトークンを量子化器ステージに送ることが出来る。
このトークンを見て、そして、その第1のワードの拡張
ビットがLOWであることに気が付いた場合、量子化器
ステージは、その量子化表を読みとり、そして、64の
量子化表値を含むQUANT・テーブルトークンを作成
することが出来る。第64番目の量子化表の値に相当す
るLOW拡張ビットによって当該トークンの新規な終端
が示されるまで、当該拡張ビットがHIGHであり、そ
して、HIGH拡張ビットの状態で当該トークンが継続
するように、第1のワード(LOWであった)の拡張ビ
ットが変更される。これは、システムを通って一般的な
方法で進行し、そして、ビットの流れの中にコード化さ
れる。
子化器は、QUANT・テーブルトークンの第1ワード
がその拡張ビットをセット済みであるか否かに応じて、
新規な量子化表をそれ自体のメモリーデバイスにロード
するか、或いは、その表を読みとることのどちらかが可
能である。
第1のトークンワードか或は最後のトークンワードのど
ちらを送信するかの選定は、その中でパイプラインが使
用されるシステムに依存する。両代替案共に、本発明に
従って可能である。
ークンの開始に際して長さカウントを含むことである。
例えば、トークンが非常に長い場合、この種の装置が効
率的であることもある。例えば、所定のアプリケーショ
ンにおける一般的なトークンの長さは1000ワードで
あるものと仮定する。図に示す拡張ビット案(各トーク
ンワード添付されたビットを持つ)を用いた場合、トー
クンは、全ての拡張ビットを含むために、1000の付
加的ビットが必要である。ただし、2進フォームにおい
てトークンの長さをコード化するためには、僅かに10
ビットが必要である。
験によれば、短いトークンの用途も多いことが判明して
いる。ここでは、好ましい拡張ビット案が有利である。
トークンの長さがわずかの1ワードである場合には、こ
れを送信するために、わずか1ビットが必要とされる。
ただし、カウント案には、前記の場合と同じ10ビット
を必要とする。
いトークンに対して非能率的である。2)トークンに対
して最大の長さの点で制約する(1023ワード未満で
あれば、僅かに10ビットでカウント可能である)3)
カウントを生成する(おそらくトークン開始時ある)以
前にトークンの長さが既知でなければならない。4)ト
ークンを扱う全ての回路ブロックは、ワードをカウント
するためのハードウェアを備える必要がある。5)カウ
ントが腐敗した場合(データ伝送エラーのために)、回
復が達成可能かどうかが明瞭でない。
示す。1)未認識トークンは、拡張ビットのみを考察す
ることによって正しく供給出来るので、パイプラインス
テージは、全てのトークンを復号化する回路ブロックを
備える必要がない。2)拡張ビットの符号化は、全ての
トークンに関して同じである。3)トークンの長さに関
して限界がない。4)この計画案は、短いトークンに対
して効率的である(トークンの長さを表すためのオーバ
ーヘッドに関して)。5)エラー回復が自然に達成され
る。拡張ビットが腐敗した場合には、1つのランダムト
ークンが生成されるか「(「1」から「0」までの腐敗
した拡張ビットに関して)、或いは、トークンは失われ
る(腐食拡張ビットは「0」から「1」まで)。更に、
問題は関係するトークンに限って局部的に所在する。当
該トークンの後で、正しい動作が自動的に再開される。
ても差し支えない。これによって、最も一般的なトーク
ンを非常に少ない数のワードに圧搾することが可能であ
るので、高度に有利である。これは、全ての処理ステー
ジが全バンド幅で連続的に作動可能であることを保証す
るので、結果的に、動画データパイプラインシステムに
おいて非常に重要である。
ールドを可能にするために、ランダムデータが後続する
短いアドレスが、長めのアドレスと決して混同されない
ようにアドレスが選定される。アドレスフィールドをコ
ード化するための好ましい技術(意図したパイプライン
ステージを作動化するための「コード」としても役立
つ)は、ハフマンによって最初に開示され通称「ハフマ
ンコード」と呼ばれる周知の技術である。ただし、当該
技術分野における通常の熟練者であれば、他の符号化案
を用いても成功するであろうと言うことは理解される筈
である。
いてよく理解されているが、一般的な背景を提供するた
めに次の例を示す。
れたワードから成る(例えば本発明のようなデジタルシ
ステムの文脈においては、記号は、一般に2進数字であ
る)。コードワードの長さは可変であり、そして、ハフ
マンコードワードの特殊な性質は、短めのコードワード
を形成する記号で始まる長めのコードワードは有り得な
いようにコードワードが選択されることである。本発明
に基づけば、トークンアドレスフィールドは、既知のハ
フマン符号化技術を用いて選定されることが(必ずしも
必要ではないが)好ましい。
ークンの最上位ビット(MSB)においてアドレスフィ
ールドが始まることが好ましい。(MSBに関する明示
は任意であり、そして、本案は、MSBに関する様々な
明示を収容するように修正可能である。)アドレスフィ
ールドは、より重要度の低い隣接ビットを介して継続す
る。特定のアプリケーションにおいて、トークンアドレ
スが複数のトークンワードを必要とする場合には、あら
ゆる所定のワード内の最下位のビットであるアドレスフ
ィールドは、その次のワードの最上位ビットにおいて継
続する。アドレスフィールドの最小の長さは1ビットで
ある。
するためには、数種の既知ハードウェア構造のうちの任
意の1つを使用することが出来る。この種の構造の1つ
は、マイクロプログラムされた状態マシンである。ただ
し、既知のマイクロプロセッサ、または他のデバイスを
使用しても差し支えない。
点は、予測されなかった必要性への適応性を備えている
ことである。例えば、新規なトークンが導入される場
合、この導入は極く少数のパイプラインステージにのみ
影響するのが一般的である。最も有り得る場合は、僅か
に2つのステージ、または回路ブロックが影響されるこ
とである。即ち、一方のブロックはまず第一にトークン
を生成し、そして、いま一方のブロック又はステージ
は、この新しいトークンを扱うために新規に設計、或い
は、修正されたものである。その他のパイプラインステ
ージは、一切改造する必要のないことに注意しされた
い。それどころか、これらのステージは、この新規なト
ークンを認識せず、従って、改造されないトークンを供
給するので、これらのステージの設計を改造することな
しに、新規なトークンを扱うことができる。
響されない状態にしておく能力を持つことは本発明の明
瞭な利点である。1つのチップ・セット内の幾つかの半
導体チップを、前記のチップ・セット内の前記以外の幾
つかの半導体チップを設計面において改良することによ
り、完全に影響を受けない状態にしてをくことが可能で
ある。これは、顧客およびチップメーカー両方の立場か
ら有利である。改造が、設計変更によって全てのチップ
が影響されることを意味するとしても(集積化の進歩レ
ベルが徐々に高くなり、システム内におけるチップの個
数が低下するような条件)、同じ設計を再使用できるの
で、市販されるまでに要する時間の点において、達成可
能な程度よりも優れていると言うかなりの利点が残され
る。
クンセットを拡張することが必要となった場合に起きる
条件に注意されたい。この場合においてさえも、既存の
設計を改造することは未だ必要でない。パイプラインス
テージにおけるトークンデコーダは、この種トークンの
第1ワードを復号化することを試み、そして、第1ワー
ドがトークンを認識しないことを結論する。次に、この
トークンデコーダは、この動作を正しく実施するために
拡張ビットを用いることによって改造されたトークンを
供給する。このトークンデコーダは、第2ワードは、こ
のトークンデコーダが認識しないトークンのデータフィ
ールドの一部であると「仮定する」ので、(当該トーク
ンがアドレスビットを含むとしても)このトークンデコ
ーダは、当該トークンの第2のワードを復号化しようと
試行しない。
は接続された回路ブロックはトークンを改造する。これ
は、一般に、ただし、必要条件としてではなく、トーク
ンデータフィールドを改造する形をとる。更に、特定の
データワードを除去するか、或いは、新規なデータワー
ドを付加するかいずれかの方法により、改造しようとす
るトークン内のデータワードの個数を変更するのが一般
的である。場合によっては、トークンは、トークンの流
れから完全に除去される。
ラインステージは、一般に、2、3のトークンを復号化
する(トークンによって作動化される)に過ぎない。即
ち、ステージは、他のトークンを認識せず、そして、他
のトークンを変更しないで供給する。非常に多くの場
合、ただ1つのトークン、即ち、データトークンワード
自体が復号化される。
ステージのオペレーションは、自体の過去のオペレーシ
ョンの結果に依存する。従って、ステージの「状態」
は、その前の状態に依存する。換言すれば、ステージ
は、記憶された状態情報に依存し、このことは、当該ス
テージが、1つ又はそれ以上前のクロックサイクルにお
けるそれ自身のヒストリに関するいくらかの情報を保持
しなければならないことを述べる他の方法である。本発
明は、この種の「状態マシン」ステージを含むパイプラ
インにおける使用、並びに、データパスにおけるラッチ
が簡単なパイプラインラッチであるようなアプリケーシ
ョンにおける使用に良く適する。
この種「状態マシン」(state machine)回路に対して適
合性を有することは、発明の重要な利点である。これ
は、データパスがステートマシンによって制御されつつ
ある場合に特に真である。この場合、上記の2線インタ
ーフェース技術は、マシンの「現行状態」がパイプライ
ンにおいて制御中のデータと歩調を合わせて留まってい
ることを保証するために使用できる。
ためにパイプラインステージに含まれる回路の1つの例
の簡素化された構成図を図11に示す。この図は、「状
態マシン」の特性を持つパイプラインステージを示す。
トークンの各ワードは1つの「拡張ビット」を含み、こ
のビットは、当該トークン内にこれより多くのワードが
あればHIGHであり、或いは、これがトークンの最終
ワードであるばLOWである。これがトークンの最終ワ
ードである場合には、その次の有効なデータワードは、
新規なトークンの開始であり、従って、そのアドレスは
復号化されなければならない。従って、あらゆる所定の
ワードにおけるトークンアドレスを復号化するかどうか
に関する決定は、前の拡張ビットの値を知ることに依存
する。
インターフェース(受入れ、及び妥当性検査信号、及び
ラッチと共に)は図示しないこととし、そして、回路を
リセットすることを扱う全ての詳細については省略する
こととする。以前と同様に、8ビットデータワードは、
制約のためでなく、単なる例として仮定される。
は、データビット及び拡張ビットを1つのパイプライン
ステージだけ遅延させる。更に、このステージは、デー
タトークンを復号化する。回路出力にデータトークンの
第1ワードが供給される時点において、信号「データA
DDR」が作られ、そして、HIGHにセットされる。
データビットは、ラッチLDIN及びLDOUTによっ
て遅延され、これらラッチの各々は、この例(8入力8
出力ラッチに対応する)に使われる8データビットに対
して8回繰り返される。同様に、拡張ビットは、拡張ビ
ットラッチLEIN、及びLEOUTによって遅延され
る。
拡張ビットの最も最近の状態を記憶するために備えられ
る。拡張ビットの値はLEINにロードされ、そして、
非重複クロック位相信号PH1のその次の立ち上がりエ
ッジにおいてLEOUTにロードされる。従って、ラッ
チLEOUTは、現行拡張ビットの値を含むが、非重複
2相クロックの後半期間中のみに限られる。ただし、ラ
ッチLEPREVは、この拡張ビット値をクロック信号
PH0、即ち、拡張ビット入力ラッチLEINを作動可
能にする同一信号のその次の立ち上がりエッジにおいて
ロードする。従って、ラッチLEPPEVの出力QEP
REVは、前のPH0クロック位相の期間中、拡張ビッ
トの値を保持する。反転Q出力からのデータワード出力
の5ビットにラッチLDINの非反転MD[2]を加え
た結果は、一連の論理ゲートNAND1、NAND2、
及びNOR1における前の拡張ビット値QEPPEVと
組合わされる。これらのオペレーションについては、デ
ジタル設計技術の分野において周知である。称呼「NM
D[m]」は、ミッドデータワードMD[7:0]のビ
ットmの論理的な反転を示す。既知のブール代数技術を
用いると、前の拡張ビットが「0」(QPPEV=
「0」)である場合に限りこの論理ブロック(NOR1
からの出力)からの出力信号SAはHIGH(「1」)
であるということが示され得るそして、非反転Qラッチ
(オリジナルの入力ワード)LDINの出力におけるデ
ータワード構造は「000001xx」であることが分
かる。即ち、5つの高位ビットであるMD[7]−MD
[3]ビットは全て「0」であり、そして、ビットMD
[2]は「1」であり、そして、ゼロ‐ワン位置におけ
るビットはあらゆる任意の値を持つ。
(「xx」の4つの順列がある)、SA、及びひいて
は、入力SAがその入力に接続されているアドレス信号
ラッチLADDRの出力をHIGHにする。換言すれ
ば、このステージは、4つの可能な適正トークンの1つ
が供給される場合、及び前の拡張ビットがゼロであった
場合、すなわち、前のデータワードが、前の一連のトー
クンワードにおける最終ワードであって、現行トークン
ワードが現行トークンにおける第1トークンワードであ
ることを意味する場合に限り、作動化信号(データAD
DP「1」)を供給する。
PREVがLOWである場合、ラッチLDINの出力に
おける値は、新規なトークンの第1ワードである。ゲー
トNAND1、NAND2、及びNOR1は、データト
ークン(000001xx)を復号化する。ただし、こ
のアドレス復号化信号SAは、信号データADDRが出
力データOUTデータ、及びOUTEXTNと同じタイ
ミングを持つように、ラッチLADOPにおいて遅延さ
れる。
ージの別の簡単な例を図12に示す。この例は、前の出
力拡張ビットOUTEXTNの値を示すために信号LA
STOUTEXTNを生成する。それぞれ現行および最
終拡張ビットラッチLEOUT及びLEPPEVへの2
つの作動可能化信号(CK入力における)のうちの1つ
の信号は、データが有効なであり、そして、受け入れら
れつつある場合に(出力妥当性検査および受入れラッチ
LVOUT及びLAOUTからのQ出力はそれぞれHI
GHである)、これらのラッチがこれらのラッチに対す
る新規な値だけをロードするように、ゲートAND1か
ら派生する。このようにして、これらの信号は有効な拡
張ビットのみを保持し、そして、有効でないデータと関
連している真でない値はこれらの信号にはロードされな
い。図12に示す実施例において、2線有効/受入れ可
能ロジックは、下流の受入れ信号、及び妥当性検査ラッ
チLVIN及びLVOUTそれぞれの非反転出力から成
る入力信号を供給されるOR1及びOR2ゲートを含
む。これは、ラッチが反転出力を持つ場合に、図8にお
けるゲートNAND1/2、及びINV1/2が置き換
え可能であるような1つの方法を示す。
ジの非常に簡単な例、即ち、ただ1つの単一ビットの状
態に依存する例であるが、パイプラインステージ間にお
いてデータが実際に転送される場合に限り、状態情報を
保持する全てのラッチが更新されることは全体的に真で
ある。換言すれば、データが双方共有効であり、そし
て、その次のステージによって受け入れられつつある場
合に限られる。従って、この種のラッチが適切にリセッ
トされていることを保証するために、注意しなけばなら
ない。
用することは、パイプラインを介してデータを転送する
ための周知の符号化技術よりも数々の利点を提供する。
クンの効率的な表現を提供するために、トークンのアド
レスフィールドの長さは可変であっても差し支えない
(そして、例えば、ハフマン符号化を利用できる)。
ある符号化を行うことにより、所定のパイプラインステ
ージにおけるトークンデコーダ回路により当該トークン
が認識されない場合であっても、トークンの終了が(従
って、その次のトークンのスタートが)正しく処理され
ることを可能にする(簡単で非操作的な転送を含む)。
ち、変更されないままでトークンを供給するための)規
則及びハードウェア構造により1つのステージとパイプ
ライン内の最も近い隣接ステージでない下流のステージ
との間の通信を可能にする。更に、これは、既存のパイ
プラインステージの大規模な再設計を必要とすることな
くトークンセットの将来における変更を可能にするの
で、パイプラインの拡張可能性および効率的適応性を増
大する。本発明のトークンは、以上および以下において
説明されるように、2線インターフェースと共に使用し
た場合に、特に有用である。
ラインステージの機能について次に説明する。ステージ
が予定されたトークン(この例においてデータトークン
と称する)を処理しつつある場合に、当該ステージは、
このトークンにおけるデータトークンのアドレスフィー
ルドを含む第1ワード以外の全てのワードを二重化す
る。一方、ステージが、他の種類の任意のトークンを処
理しつつある場合、当該ステージは、全てのワードを削
除する。全体的な効果は、出力において、データトーク
ンのみが現れ、そして、これらのトークン内の各ワード
は2度繰り返される。
は、図4、図5、図6、及び図7に示す遥かに簡単な構
造に示されている部品と同じであっても差し支えない。
このことは重要な利点を例証する。僅かに改造するか、
或は、一切の改造なしに、同じ2線インターフェースを
使用できるので、更に複雑なパイプラインステージであ
っても、融通性および弾力性に関して同じ利点を有す
る。
ジは、所定のアプリケーションにおいてパイプラインス
テージが遂行することのできる無数にある異なるタイプ
のオペレーションのほんの一例に過ぎない。ただし、こ
の「二重化ステージ」は、「ボトルネック」を形成する
可能性があり、その結果として、この実施例に基づくパ
イプラインが「一緒にパックとなる」ようなテージを示
す。
を遂行するために比較的長い時間を要するか、或いは、
パイプラインにおいて、受け取ったよりも、より多くの
データを作るあらゆるステージであり得る。更に、この
例は、この実施例に基づいた2線受け入れ/有効インタ
ーフェースが異なるアプリケーションに非常に容易に適
応可能であることを示す。
図11の例に示すように各々ステージの入力および出力
における拡張ビットの状態をラッチする2つのラッチL
EIN及びLEOUTを持つ。図13、図14に示すよ
うに、入力拡張ラッチLEINは、入力データラッチL
DIN及び妥当性検査信号IN VALIDと共に同期
的にクロックされる。 参照を容易にするために、二重
化ステージに含まれる種々のラッチは、それぞれ特有の
出力信号と共に対を構成する。
DINからの出力は、MIDデータと称する中間データ
を形成する。この中間データワードは、中間受入れ信号
(図13、図14において「MID ACCEPT」と
参照)がHIGHにセットされている場合に限りデータ
出力ラッチLDOUTにロードされる。
N、LAOUTの下の回路部分は、データを二重化する
ために使われる様々な内部制御信号を生成するために、
基礎的なパイプライン構造に付加される回路である。こ
れらの信号には、当該回路が有効なデータトークンを処
理中であることを示す「データトークン」信号、及びデ
ータの二重化を制御するために使われるNOT DUP
LICATE信号が含まれる。回路がデータトークンを
処理中である場合には、NOT DUPLICATE信
号はHIGH状態とLOW状態の間でトグルし、そし
て、これによって、当該トークン内の各ワードを1度
(1度に限る)二重化させる。回路が有効なデータトー
クンを処理中である場合には、NOT DUPLICA
TE信号はHIGH状態に保持される。従って、これ
は、処理されつつあるトークンワードが二重化されない
ことを意味する。
間データワードの上位6ビット、及びラッチLI1から
の出力信号QI1は、 フォーム入力から論理ゲートN
OR1、NOR2、NAND18のグループへの入力を
形成する。ゲートNAND18からの出力信号はS1と
表示される。周知のブール代数を用いて、出力信号QI
1が「1」であり、そして、MIDデータワードが次に
示す構造を持つ間合いに限り信号S1が「0」であると
いうことを示すことが出来る。「000001xx」即
ち、上位5ビットは全て「0」であり、ビットMIDデ
ータ[2]は「1」であり、そして、MIDデータ
[1]におけるビット及びMIDデータ[0]位置はあ
らゆる任意の値を持つ。従って、信号S1は、MIDデ
ータ信号が予定された構造を持ち、そして、ラッチLI
1からの出力が「1」である場合に限りローである「ト
ークン識別信号」として作用する。ラッチLI1、及び
その出力QI1の性質について以下に更に説明する。
値をラッチする機能を遂行し(「MID EXTN」及
び信号S4として表示)、そして、この値をクロック位
相PH0のその次の立ち上がりエッジにおいてラッチL
I1にロードする。このラッチの出力はビットQI1で
あり、そして、信号S1を形成するトークン復号化論理
グループへの入力の1つである。既に説明したように、
信号S1は、信号QI1が「1」である場合に「0」ま
でただ降下する(そして、MIDデータ信号は予定され
た構造を持つ)。従って、信号S1は、最後の拡張ビッ
トが「0」であった場合には何時でも「0」までただ降
下し、前のトークンが終了したことを示す。従って、M
IDデータワードは、新しいトークンにおける第1デー
タワードである。
ートNAND20、及びNAND22と共に、信号デー
タトークンのための記憶装置を形成する。正常な条件に
おいて、NAND20への入力における信号QI1、及
びNAND22への入力における信号S1は、両方共論
理「1」である。再度ブール代数の技術により、この条
件において、これらのNANDゲートがインバータと同
じ方法において作動することがわかる。すなわち、ラッ
チLI2の出力からの信号Q12は、NAND20にお
いて反転され、そして、次に、この信号は、NAND2
2によって再び反転されて信号S2を形成する。この場
合、この通路には2つの論理的反転があるので、信号S
2は、QI2と同じ値を持つ。
ータトークンがLI2への入力を形成するということが
分かる。その結果、QH1及びS1は両方共HIGHで
あるという条件に留まる限り、信号データトークンは、
その状態(「0」、または「1」)を保持する。クロッ
ク信号PH0、及びPH1がラッチ(それぞれL12、
及びLO2)をクロックしつつある場合にも、これは真
である。信号QI1、及びS1の1つ、または双方共に
「0」である場合、データトークンの値は変化可能であ
るに過ぎない。
トが「0」であった場合に信号QI1は「0」である。
従って、NIDデータ値がトークンの第1ワードである
場合には何時でも、前期の信号は「0」である(そし
て、当該トークン用のアドレスフィールドが含まれ
る)。この条件において、信号S1は、「0」または
「1」のいずれかである。既に早期に説明したように、
MIDデータワードがこの例においてはデータトークン
を示す予定された構造を持つ場合には、信号S1は
「0」である。MIDデータワードが他の構造を持つ場
合には(当該トークンがデータトークンでない他のトー
クンであることを示す)、S1は「1」である。
場合には、これは、データトークン以外のトークンが在
ることを示す。デジタル電子工学の分野において周知さ
れているように、NAND20の出力は「1」である。
NANDゲートNAND22はこれを反転し(既に説明
したように)、そして、信号S2は「0」である。その
結果、この「0」値は、その次のPH1クロック位相の
開始に際してラッチLO2にロードされ、そして、デー
タトークン信号は「0」になり、当該回路がデータトー
クンの処理中でないことを示す。
「0」であり、それによりデータトークンを示す場合に
は、(NAND20の出力からのNAND22への他の
入力であるにも拘わらず)信号S2は「1」である。そ
の結果、この「1」値は、その次のPH1クロック位相
の開始に際してラッチLO2にロードされ、そして、デ
ータトークン信号は「1」になり、当該回路がデータト
ークンを処理中であることを示す。
号QO3)は、クロックPH0のその次の立ち上がりエ
ッジにおいてラッチL13にロードされる。ラッチLI
3からの出力信号QI3は、信号S3を形成するため
に、ゲートNAND24における出力信号Q12と組合
わされる。以前同様ブール代数を用いて、信号QI2及
びQI3両方の値「1」である場合に限り、信号S3が
「0」であることが分かる。信号QI2が「0」になる
場合、即ち、データトークン信号が「0」である場合、
信号53は「1」になる。換言すれば、有効なデータト
ークン(QI2=0)がない場合、或いは、データワー
ドが二重化(QI3=0)ではない場合、信号S3はハ
イになる。
ク信号以上に亙ってHIGHのままであるものと仮定す
る。NOT DUPLICATE信号(QO3)はラッ
チLI3に「フィードバック」され、そして、ゲートN
AND24によって反転される(その別の入力QI2は
HIGHに保持される)ので、出力信号QO3は「0」
と「1」との間でトグルする。ただし、有効なデータト
ークンが無い場合には、信号QI2は「0」であり、そ
して、DATEトークン信号がもう一度「1」になるま
で信号S3及び出力QO3はHIGHに強制される。出
力QO3(NOT DUPLICATE信号)は同様に
フィードバックされ、そして、信号QA1及びQO3の
両方の値が「1」である場合に限りそれらの出力が
「1」であるような一連の論理ゲート(一緒にANDゲ
ートを形成するNAND16及びINV16)における
受入れラッチLAINからの出力QA1と組合わされ
る。図13、図14に示すように、ANDゲート(ゲー
トINV16にによって後続されるゲートNAND1
6)からの出力も同様に受入れ信号INACCEPTを
形成する。この受入れ信号は、すでに述べたように、2
線インターフェース構造において用いられる。
LDIN、LEIN、及びLVINに対する作動可能化
信号として用いられる。その結果、NOTDUPLIC
ATE信号がローである場合には、受入れ信号IN A
CCEPTもローであり、そして、これら3つのラッチ
全てが無能化され、そして、それらの出力に記憶された
値を保持する。NOT DUPLICATE信号がHI
GHになる時まで、ステージは、新しいデータを受け入
れない。これは、受入れラッチLAINからの出力をハ
イに強制するために、上記の必要条件に追加される。
クン信号QO2が「1」である)限り、信号QO3は、
HIGH状態とLOW状態の間でトグルする。その結
果、入力ラッチが作動化され、そして、長くとも、両方
のクロック位相PH0、PH1の1つおきの完全サイク
ルの期間に亙ってデータ受け入れ可能となる。「HIG
H」OUT ACCEPT信号によって指示されるよう
に、その次のステージのデータ受け入れ準備が整うこと
と言う追加的条件は、勿論、依然として満足されていな
ければならない。従って、少なくとも2つの全クロック
サイクルの期間に亙って、出力ラッチLDOUTは、同
じデータワードを出力バスOUTデータに配置する。有
効なデータトークン(QO2 HIGH)が所在し、そ
して、妥当性検査信号QVOUTがHIGHである場合
に限りOUT VALID信号は「1」である。
信号QEINは、信号S4を形成するために、一連の論
理ゲート(INV10、及びNAND10)において信
号S3と組合わされる。データトークンの表示期間中、
各データワードMIDデータは、それを出力ラッチLD
OUTに2度ロードすることによって反復される。これ
らの第1の期間中、S4は、NAND10の作用によっ
て「1」に強制される。信号S4は、OUTデータ
[7:0]を形成するためにMIDデータがLDOUT
にロードされるのと同時にOUTEXTNを形成するた
めに、ラッチLEOUTにロードされる。
がLEOUTにロードされ、関連しているOUTEXT
Nがハイに強制されるが、2番目には、OUTEXTN
は信号QEINと同じである。ここで、QEINがロー
であることが既知である1つのトークンの最終ワードの
期間中における条件について考察することとする。第一
の期間中、MIDデータがLDOUTにロードされ、O
UTEXTNは「1」であり、そして、第2の期間中、
OUTEXTNは「0」であって、当該トークンの真の
終了を示す。
QVINは、信号S5を形成するために、同様のゲート
組合わせ(INVl2、及びNANDl2)において信
号QI3と組合わされる。周知のブール技術を用いるこ
とにより、妥当性検査信号QVINがHIGHである場
合、或いは、信号QI3がローである場合(データが二
重化であることを示す)のいずれかの場合において、信
号S5がHIGHであることがわかる。MIDデータが
LDOUTにロードされ、そして、中間拡張ビット(信
号S4)がLEOUTにロードされると同時に、信号S
5が妥当性検査出力ラッチLVOUTにロードされる。
同様に、信号S5は、出力妥当性検査信号OUT VA
LIDを形成するために、論理ゲートNAND30、及
びINV30における信号QO2(データトークン信
号)と組合わされる。既に早期に述べたように、有効な
トークンが在り、そして、妥当性検査信号QVOUTが
ハイである場合に限り、OUT VALIDはHIGH
である。
号は、ラッチLOl、LO2、及びLO3に対して2つ
の作動可能化信号のうちの1つとして用いられる信号S
6を形成するために周知のAND機能を遂行する一連の
論理ゲート(NAND26、及びINV26)における
信号S5と結合される。MID ACCEPT信号がH
IGHであり、そして、妥当性検査信号QVINがハイ
であるか、或いは、トークンが二重化であるか(QI3
は「0」である)いずれかの場合に信号S6は「1」に
上昇する。信号MID ACCEPTがHIGHである
場合には、ステージの入力において有効な入力データが
ロードされる時にはいつでも、クロック信号PH1がハ
イである場合、或いは、ラッチされたデータが二重化で
ある場合、ラッチLO1−LO3は作動可能化される。
テージが、妥当性検査および受入れ信号の制御の下にス
テージ間のデータを受け取り、そして、転送することが
分かる。ただし、前の実施例の場合のように、入力側に
おける受入れラッチLAINからの出力信号がトグルす
る二重化信号と結合されることは例外であり、その結
果、データワードは、新規なワードが受け入れられる以
前に2度出力される。
な各種論理ゲートは、勿論、等価論理回路(この場合に
は、1つの単一ANDゲート)によって置き換えること
が可能である。同様に、例えば、ラッチLEIN、及び
LVINの出力が反転されつつある場合には、インバー
タINV10、及びINV12は必要でない。その代わ
りに、ゲートNAND10、及びNAND12への対応
する入力は、これらのラッチの反転している出力に直接
結合することが可能である。適切な論理演算が遂行され
る限り、ステージは、同じ方法において動作する。デー
タワード、及び拡張ビットは、依然として二重化され
る。
の第3位置に「1」を配置し、そして、5つの高位ビッ
トに「0」を配置するまでは、図に示すステージが遂行
する二重化機能は実施されないことに注意されい。(勿
論、他の論理ゲートおよび図に示すNOR1、NOR
2、NND18ゲート以外の接続を選定することによ
り、必要とされるパターンは容易に変更および設定可能
である。)更に、図13、図14に示すように、第1デ
ータワードが記述の構造を持たない限り、OUT VA
LID信号は、トークン全体の期間中に亙って、ローに
強制される。これは、二重化プロセスを起こさせる1つ
のトークンを除く全てのトークンがトークンの流れから
削除させるような効果を発揮する。その理由は、出力端
子(OUTDATA、OUTEXTN、及びOUT V
ALID)に接続されたデバイスは、これらのトークン
を有効なデータとして認識しないからである。以前と同
様に、当該ステージにおける双方の妥当性検査ラッチL
VIN、LVOUTは、1つの単一コンダクタNOTR
ESETO、及び下流ラッチLVOUTの1つの単一リ
セット入力Rにより、上流の妥当性検査ラッチをその次
のクロックサイクルにおいてローに強制させるように後
方に伝播するリセット信号を用いてリセットされること
が可能である。
トークンに含まれるデータの二重化は、回路がACCE
PT及びVALID信号を操作可能であり、その結果と
して、当該入力に到達するよりもより多くのデータがパ
イプラインステージから離れることの一例としてのみ役
立つに過ぎないことに注意されたい。同様に、流れから
データを除去するために回路がVALID信号を操作可
能であることを示す方法を単に説明するだけのために、
図13、図14に示す例においては、全ての非データト
ークンが除去される。ただし、最も典型的なアプリケー
ションにおいて、パイプラインステージは、当該パイプ
ラインステージが認識しないあらゆるトークンを修正す
る事なく簡単に供給する。その結果、パイプラインの更
に下流の他のステージが、必要に応じて、前記のトーク
ンに作用することが可能である。図15及び図16は、
図13及び図14に示すデータ二重化回路のためのタイ
ミングダイアグラムの一例を示す。このタイミングダイ
アグラムは、2相クロック信号、様々な内部および外部
制御信号、及びステージの入力側と出力側との間でデー
タをクロックし、そして、データを二重化する方法との
間の関係を示す。さてここで、図17を更に詳細に参照
することとし、この図には、現在の本発明の1つの態様
にに基づく再構成可能なプロセスステージを示す。
力を受け取る。入力ラッチ34からの第1出力は、ライ
ン32を介して、トークンデコードサブシステム33に
供給される。入力ラッチ34からの第2出力は、ライン
35を介して、第1入力としてプロセシングユニット3
6に供給される。トークンデコード33からの第1の出
力は、ライン37を介して、第2の入力として、プロセ
シングユニット36に供給される。トークンデコード3
3からの第2出力は、ライン40を介して、アクション
識別ユニット39に供給される。更に、アクション識別
ユニット39は、ライン46を介してレジスタ43及び
44から入力を受け取る。レジスタ43、及び44は、
全体として、マシンの状態を保持する。この状態は、以
前に受け取られたトークンのヒストリによって決定され
る。アクション識別ユニット39からの出力は、ライン
38を介して、第3の入力としてプロセシングユニット
36に供給される。プロセシングユニット36からの出
力は、出力ラッチ41に供給される。出力ラッチ41か
らの出力は、第2バス42を介して供給される。
ートコード検出器(SCD)51は、2線インターフェ
ース52を介して入力を受け取る。この入力は、データ
トークンの形式であるか、或いは、データの流れ内のデ
ータビットであるかのいずれかである。スタートコード
検出器51からの第1出力は、ライン53を介して、第
1論理先入れ先出し方式バッファ(FIFO)54に供
給される。第1FIFO54からの出力は、ライン55
を介して、第1の入力として、ハフマンデコーダ56に
論理的に供給される。スタートコード検出器51からの
第2出力は、ライン57を介して、第1入力として、D
RAMインターフェース58に供給される。さらに、D
RAMインターフェース58は、ライン60を介して、
バッファマネージャ59から入力を受け取る。信号は、
ライン61を介して、DRAMインターフェース58に
より、外部DRAM(図示せず)に対して送信および受
信される。DRAMインターフェース58からの第1出
力は、ライン62を介して、第1物理入力として、ハフ
マンデコーダ56に供給される。ハフマンデコーダ56
からの出力は、データ(ITOD)64までインデック
スに入力としてライン63をを介して回される。ハフマ
ンデコーダ56及びITOD64は、1つの論理ユニッ
トとして一緒に作動する。ITOD64からの出力は、
ライン65を介して算術論理ユニット(ALU)66に
供給される。ALU66からの第1出力は、ライン70
を介して、読出し専用メモリ(ROM)ステートマシン
68に供給される。ROMステートマシン68からの出
力は、ライン69を介して、第2物理入力として、ハフ
マンデコーダ56に供給される。ALU66からの第2
の出力は、ライン70を介してトークンフォーマット部
(TF)71に供給される。
1は、ライン72を介して第2のFIFO73に供給さ
れる。第2のFIFO73からの出力は、第1の入力と
して、ライン74を介して、逆モデラー75に供給され
る。T/F71からの第2の出力は、ライン76を介し
て、第3の入力として、DRAMインターフェース58
に供給される。DRAMインターフェース58からの第
3出力は、ライン77を介して、第2の入力として、逆
モデラ75に供給される。逆モデラ75からの出力は、
逆量子化器79への入力として、ライン78を介して供
給される。逆量子化器79からの出力は、ライン80を
介して、逆入力として、逆ジグザグ81(IZZ)に供
給される。IZZ81からの出力は、ライン82を介し
て、離散逆コサイン変換83(IDCT)への入力とし
て供給される。IDCT83からの出力は、ライン84
を介して、時間デコーダ(図19)に供給される。
とし、本発明に基づく時間デコーダがこの図に示され
る。フォーク91は、ライン92を介して、入力とし
て、IDCT83(図18)からの出力を受け取る。フ
ォーク91からの第1出力として、例えば、モーション
ベクトル等のような制御トークンは、ライン93を介し
て、アドレス発生器94に供給される。更に、データト
ークンは、カウントする目的で、アドレス発生器94に
供給される。このデータは、フォーク91からの第2の
出力として、ライン95を介してFIFO96に供給さ
れる。次に、FIFO96からの出力は、ライン97を
介して、第1の入力として加算器98に供給される。ア
ドレス発生器94からの出力は、第1入力として、ライ
ン99を介して、DRAMインターフェース100に供
給される。信号は、ライン91を介して、DRAMイン
ターフェース100により、外部DRAM(図示され
ず)に対して、送信および受信される。DRAMインタ
ーフェース100からの第1出力は、ライン102を介
して、予測フィルタ103に供給される。予測フィルタ
103からの出力は、ライン104を介して、第2入力
として、加算器98に供給される。加算器98からの第
1出力は、ライン105を介して出力セレクタ106に
供給される。加算器98からの第2の出力は、ライン1
07を介して、第2の入力としてDRAMインターフェ
ース100に供給される。DRAMインターフェース1
00からの第2出力は、第2入力として、ライン108
を介して、出力セレクタ104に供給される。出力セレ
クタ104からの出力は、ライン109を介して、動画
フォーマッティング部(図20)に供給される。
し、フォーク111は、ライン112を介して、出力セ
レクタ106(図19)からの入力を受け取る。フォー
ク111からの第1の出力として、ライン113を介し
てアドレス発生器114は制御トークンを供給される。
アドレス発生器114からの出力は、第1入力として、
ライン115を介してDRAMインターフェース116
に供給される。フォーク111からの第2出力としての
データは、ライン117を介して、第2入力として、D
RAMインターフェース116に供給される。信号は、
ライン118を介して、DRAMインターフェース11
6により、外部DRAM(図示されず)に対して、送信
および受信される。DRAMインターフェース116か
らの出力は、ライン119を介して、表示パイプ120
に供給される。
を有しても差し支えないことは、前述の説明から明白で
ある。
し、MPEG規格においては、1つのピクチャ131は
1つ又は複数のスライス132として符号化される。各
スライス132は、複数のブロック133を有し、そし
て、各列において列毎に左から右に符号化される。図に
示すように、各スライス132のスパンはブロック13
3の中の正確に1行132であるか、ブロック133の
中の1行より少ないB、Cか、またはブロック133の
複数行Cであっても差し支えない。
H.261規格においては、コモン中間フォーマット
(CIF)が用いられ、ピクチャ141は、各列が2つ
のグループのブロック(GOB)142を含む6列とし
て符号化される。GOB142は、3列または6列いず
れかの限定されない数のブロック143によって構成さ
れる。各GOB142は、矢印144によって示される
Z字形方向にジグザグに符号化される。その結果、GO
B142は、各列において、列毎に左から右に向かって
処理される。
し、MPEG及びCIFの両方に関し、エンコーダの出
力は、データストリーム151の形をとることが分か
る。デコーダは、このデータストリーム151を受け取
る。次に、デコーダは、イメージを符号化するために使
われたフォーマットに応じてイメージを復元することが
できる。デコーダが、各規格に関するスタート及びエン
ドポイントを認識可能にするためには、データストリー
ム151は、33ブロック152の長さに分割される。
デコーダ56(図18)からテーブル選択可能な値の領
域を表す。これらの値は、MPEGデコーダ及びH.2
61デコーダに対して重複可能な値であり、1つの単一
テーブル選択によって、特定のMPEG及び特定のH.
261フォーマットの両方が復号化されることを示す。
同様に、これらの値はMPEGデコーダ及びJPEGデ
コーダに対して重複可能な値であり、1つの単一テーブ
ル選択によって、特定のMPEG及び特定のJPEGフ
ォーマットの両方が復号化されることを示す。更に、
H.26l値とJPEG値は重複せず、単独で双方のフ
ォーマットを復号化するような単一テーブル選択が存在
しないことを示す。
し、この図は、本発明の実施に基づいた可変長ピクチャ
データの概要を示す。処理されるべき第1のピクチャ1
61は、第1ピクチャ・スタートトークン162、長さ
の限定されない第1ピクチャ情報163、及び第1ピク
チャ・エンドトークン164を有する。処理されるべき
第2のピクチャ165は、第2ピクチャ・スタートトー
クン166、長さの限定されない第2ピクチャ情報16
7、及び第2ピクチャ・エンドトークン168を有す
る。ピクチャ・スタートトークン162及び166は、
ピクチャ161及び165のプロセッサに対するスター
トを示す。同様に、ピクチャ・エンドトークン164及
び168は、ピクチャ161及び165のプロセッサに
対するエンドを意味する。これにより、プロセッサは、
可変長さのピクチャ画像163及び167を処理するこ
とが可能となる。
イン172を介して入力を受け取る。スプリット171
からの第1出力はライン173を介して、アドレス発生
器174に供給される。アドレス発生器174によって
生成されたアドレスは、ライン175を介して、DRA
Mインターフェース176に供給される。信号は、ライ
ン177を介して、DRAMインターフェース176に
より、外部DRAM(図示されず)に対して、送信およ
び受信される。DRAMインターフェース176からの
第1出力は、ライン178を介して、予測フィルタ17
9に供給される。予測フィルタ179からの出力は、第
1入力として、ライン180を介して、加算器181に
供給される。スプリット171からの第2出力は、ライ
ン182を介して、先入れ先出し方式バッファ(FIF
O)183への入力として供給される。FIFO183
からの出力は、ライン184を介して、加算器181へ
の第2入力として供給される。加算器181からの出力
は、ライン185を介して、ライト信号発生器186に
供給される。ライト信号発生器186からの第1出力
は、ライン187を介して、DRAMインターフェース
176に供給される。ライト信号発生器186からの第
2出力は、ライン188を介して、リード信号発生器1
89への第1入力として供給される。DRAMインター
フェース176からの第2出力は、ライン190を介し
て、リード信号発生器189への第2入力として供給さ
れる。リード信号発生器189からの信号はライン19
1を介して動画フォーマッティング(図26には図示せ
ず)へ供給される。
フォーワード予測フィルタ201は、第1入力として、
202を介して、加算器203に供給される。バックワ
ード予測フィルタ204は、第2入力として、ライン2
05を介して、加算器203に供給される。加算器20
3からの出力は、ライン206を介して供給される。図
28に示すように、スライス211は、1又は複数のマ
クロブロック212を有する。結果的に、各マクロブロ
ック212は、4つのルミナンス輝度ブロック213、
及び2つのクロミナンスブロック214を有し、そし
て、ピクセルのもとの16×16ブロックに関する情報
を有する。4つのルミナンスブロック213及び2つの
クロミナンスブロック214の各々のサイズは8×8ピ
クセルである。4つのルミナンスブロック213は、1
ピクセル画素をピクセルのもとの16×16ブロックの
ルミナンス(Y)情報の1ピクセル毎のマッピングを有
する。1つのクロミナンスブロック214は、青色信号
(Cu/b)のクロミナンスレベルの表示を含み、そし
て、いま1つのクロミナンスブロック21は、赤色信号
(Cv/r)のクロミナンスレベルの表示を含む。各ク
ロミナンスレベルは、各8×8クロミナンスブロック2
14が、ピクセルのもとの16×16ブロック全体に関
するその色信号のクロミナンスレベルを含むように、サ
ブサンプルされる。
ード検出器の構造及び機能が明白になるはずである。バ
リューレジスタ221は、ライン222を介してイメー
ジデータを受け取る。ライン222の幅は8ビットであ
り、一度に8ビットの並列伝送を可能にする。バリュー
レジスタ222からの出力は、ライン223を介して、
デコードレジスタ224に直列に供給される。デコード
レジスタ224からの第1の出力は、ライン226を介
して、検出器225に供給される。ライン226の幅は
24ビットであり、一度に24ビットの並列伝送を可能
にする。検出器225は、1つの「1」バリューによっ
て後続される23の「ゼロ」バリューの規格から独立し
たスタートコードに対応するイメージの存在または欠如
を検出する。8ビットデータバリューイメージは、有効
なスタートコードイメージに後続する。スタートコード
イメージの存在が検出されると、検出器225は、ライ
ン227を介してスタートイメージをバリューデコーダ
228に伝送する。
は、ライン229を介して、バリューデコードシフトレ
ジスタ230に直列に供給される。バリューデコードシ
フトレジスタ230は、ビット長15の1つのデータバ
リューイメージを保持することができる。部分領域23
1によって示されるように、スタートコードイメージに
後続する8ビットデータバリューは、バリューデコード
シフトレジスタ230の右にシフトされる。以下におい
て検討するように、このプロセスは、スタートコードイ
メージの重複を排除する。バリューデコードシフトレジ
スタ230からの第1出力は、ライン232を介して、
バリューデコーダ228に供給される。ライン232の
幅は15ビットであり、一度に15ビットの並列伝送を
可能にする。バリューデコーダ228は、第1のルック
アップテーブル(図示されず)を用いてバリューイメー
ジを復号化する。バリューデコードシフトレジスタ23
0からの第2出力は、ライン235を介してインデック
ス/トークンコンバータ234にフラグを供給するバリ
ューデコーダ228に供給される。更に、バリューデコ
ーダ228は、ライン236を介して、インデックス/
トークンコンバータ234に情報を供給する。情報は、
第1ルックアップテーブルから入手されるデータバリュ
ーイメージ、或いは、スタートコードインデックスイメ
ージのいずれかである。フラグは、情報が供給されるフ
ォームを示す。ライン236の幅は15ビットであり、
一度に15ビットの並列伝送を可能にする。本発明にお
いてこの場合における幅として15ビットが選定された
が、他の長さのビットを使用しても差し支えないことが
理解されるはずである。インデックス/トークンコンバ
ータ234は、ユーザ用マニュアルの表12−3に与え
られたルックアップテーブル(図示されず)を用いて情
報をトークンイメージに変換する。インデック/トーク
ンスコンバータ234によって生成されたトークンイメ
ージは、ライン237を介して出力される。ライン23
7の幅は15ビットであり、一度に15ビットの並列伝
送が可能である。
成るデータストリーム241は、スタートコード検出器
(図30に図示されず)に入力される。第1スタートコ
ードイメージ243は、スタートコード検出器によって
検出される。次に、スタートコード検出器は、第1デー
タバリューイメージ244を受け取る。第1データバリ
ューイメージ244を処理する以前に、スタートコード
検出器が、長さ246において第1データバリューイメ
ージ244と重複する第2スタートコードイメージ24
5を検出することもあり得る。これが起きると、スター
トコード検出器は第1データバリューイメージ244を
処理せず、そして、その代りに、第2データバリューイ
メージ247を受け取り、そして、処理する。
ライン252を介して第1入力としてのデータを受け取
る。ライン252の幅は15ビットであり、一度に15
ビットの並列伝送を可能のにする。同様に、フラグ発生
器251は、ライン253を介して、第2の入力として
フラグを受け取り、そして、第1の2線インターフェー
ス254を介して入力有効イメージを受け取る。フラグ
発生器251からの第1出力は、ライン255を介し
て、入力有効レジスタ(図示されず)に供給される。フ
ラグ発生器521からの第2出力は、ライン256を介
して、デコードインデックス257に供給される。デコ
ードインデックス257は次の4つの出力を生成する。
即ち、ピクチャスタートイメージはライン258を介し
て出力され、ピクチャナンバーイメージはライン259
を介して出力され、インサートイメージはライン260
を介して出力され、そして、リプレースイメージはライ
ン261を介して出力される。フラグ発生器251から
のデータはライン262aを介して供給される。ヘッダ
発生器263は、リプレースイメージを生成するたにル
ックアップテーブルを使用し、このリプレースイメージ
は262bを介して供給される。エクストラワード発生
器264は、インサートイメージを生成するためにMP
Uを使用し、インサートイメージはライン262cを介
して供給される。ライン262aは、出力ラッチ265
への第1入力である262ラインを形成するために結合
する。出力ラッチ265は、ライン266を介してデー
タを出力する。ライン266の幅は15ビットであり、
一度に15ビットの並列伝送を可能にする。
ン268を介して、第1ORゲート267への第1入力
としてイメージを供給する。インサートイメージは、ラ
イン269を介して、第1ORゲート267への第2入
力として供給される。第1ORゲート267からの出力
は、ライン271を介して、第1ANDゲート270へ
の第1入力として供給される。リムーブイメージの論理
否定は、ライン272を介して、第1ANDゲート27
0への第2入力として供給され、そして、ライン273
を介して、出力ラッチ265への第2入力として、供給
される。出力ラッチ265は、第2の2線インターフェ
ース274を介して出力有効イメージを供給する。出力
アクセプトイメージは、第2の2線インターフェース2
74を介して、出力アクセプトラッチ275により受け
取られる。出力アクセプトラッチ275からの出力は、
ライン276を介して、出力アクセプトレジスタ(図示
されず)に供給される。
は、ライン278を介して、第1入力として、第2OR
ゲート277にイメージを供給する。入力有効レジスタ
からの出力の論理否定は、ライン279を介して、第2
ORゲート277への第2入力として供給される。リム
ーブイメージは、ライン280を介して、第3入力とし
て、第2ORゲート277に供給される。第2ORゲー
ト277からの出力は、ライン282を介して、第2A
NDゲート281への第1入力として供給される。イン
サートイメージの論理否定は、ライン283を介して、
第2ANDゲート281への第2入力として供給され
る。第2ANDゲート281からの出力は、ライン28
4を介して、入力アクセプトラッチ285へ供給され
る。入力アクセプトラッチ285からの出力は、第1の
2線インターフェース254を介して供給される。 表600 フォーマット 受信画像 トークン 1 H.261 シーケンススタート シーケンススタート MPEG ピクチャ・スタート グループスタート JPEG 無し ピクチャ・スタート ピクチャデータ 2 H.261 無し ピクチャエンド MPEG 無し パディング JPEG 無し フラッシュ ストップ・アフタ・ピクチャ 特定マシン独立制御トークンにおける標準信号の存在と
欠如との間の関係を示す表600に示すように、スター
トコード検出器51によるイメージの検波は一連のマシ
ン独立制御トークンを生成する。「受信イメージ」カラ
ムにリストされた各イメージは、「生成トークン」カラ
ムのグループにリストされた全てのマシン独立制御トー
クンの生成をスタートする。表600の1行目に示すよ
うに、H.261処理期間中に「シーケンススタート」
イメージが受け取られるか、或は、PEC処理期間中に
「ピクチャ・スタート」イメージが受け取られる場合に
はいつでも、4つの制御トークンの全グループが生成さ
れ、各々がその対応する1つまたは複数のデータバリュ
ーによって後続される。更に、表600の2行目に示す
ように、4つの制御トークンの第2グループは、スター
トコード検出器51によって受け取られるイメージにか
かわりなく適切な時間に生成される。 表601 表示順序 I1 B2 B3 P4 B5 B6 P7 B8 B9 I10 送信順序 I1 P4 B2 B3 P7 B5 B6 I10 B8 B9 伝送されたピクチャと表示されたピクチャとの間のタイ
ミング関係を示す表601の1行に示すように、ピクチ
ャフレームは、番号順にディスプレイされる。ただし、
メモリーに記憶しなければならないフレームの数を減少
するために、フレームは、異なる順序で送信される。イ
ントラフレーム(Iフレーム)から分析を始めることは
有益である。I1フレームは、ディスプレイされるべき
順序に送信される。次に、その次の予測されるフレーム
(Pフレーム)P4が送信される。次に、I1フレーム
とP4フレームとの間にディスプレイされるべき双方向
的に補間されるあらゆるフレーム(Bフレーム)が送信
される。これらのフレームをフレームB2及びB3によ
って表す。これにより、送信済みのBフレームに、前の
フレーム(フォーワード予測)または将来のフレーム
(バックワード予測)を参照させることが可能にする。
I1フレームとP4フレームとの間にディスプレイされ
るべき全てのBフレームを送信した後で、次のPフレー
ムであるP7が送信される。次に、P4とP7フレーム
との間にディスプレイされるべきB5及びB6に対応す
る全てのBフレームが送信される。次に、その次のIフ
レームである110が送信される。最終的に、P7と1
10フレームとの間にディスプレイされるべきフレーム
B8及びB9に対応する全てのBフレームが送信され
る。この順序でフレームを送信するためには、あらゆる
一時にただ2つのフレームをメモリーに保持することが
必要であり、そして、中間のBフレームをディスプレイ
するために次のPフレーム又はIフレームの送信をデコ
ーダに待機させることを必要としない。
に、特徴、目的、及び利点に関するこれ以上の情報は、
当該技術分野における通常の熟練者であれば、本発明の
例証的な実施例について追加的に継続される詳細な記述
から容易に明白になるはずである。この詳細な内容につ
いては、説明を明瞭かつ利便にするために、次に示すセ
クションにまとめて記述することとする。
JPEG静止画の復号化3.動画の伸長4.RAMメモ
リーマップ5.ビットストリームの特性6.再構成可能
なプロセッシングステージ7.多重規格符号化8.多重
規格プロセッシング回路 ― 第2オペレーションモー
ド9.スタートコード検出器10.トークン11.DR
AMインターフェース12.予測フィルタ13.アクセ
シングレジスタ14.マイクロプロセッサインターフェ
ース(MPI)15.MPIリードタイミング16.M
PIライトタイミング17.キーホールアドレスロケー
ション18.ピクチャエンド19.フラッシングオペレ
ーション20.フラッシュ機能21.ピクチャ後ストッ
プ22.多重規格サーチモード23.逆モデラ24.逆
量子化器25.ハフマンデコーダ及びパーザー(parser)
(構文解析系)26.種々の別個のコサイントランスフ
ォーマ27.バッファマネージャ 1.多重規格コンフィギュレーション 前述の米国特許第5,212,742号明細書に示した
ように、様々な圧縮規格、即ち、JPEG、MPEG、
及びH.261が周知であるので、これらの規格の詳細
な仕様について、ここでは繰り返さない。
なってコード化された様々なピクチャデータビットスト
リームを伸長することが可能である。コード化に関する
異なる各規格において、単独で作動する空間デコーダの
出力、或いは、組合わされて作動する空間デコーダ及び
時間デコーダの直列出力に供給されたデータを扱い(続
いて更に詳細に説明されるように)、そして、コンピュ
ータにおけるディスプレイ又は動画ディスプレイシステ
ムを含む他のディスプレイシステムを含めて使用するた
めにこの出力をリフォーマッィングするには、或る程度
規制された形の出力フォーマッティング部が必要であ
る。このフォーマッティングすることを実現する方法
は、コード化規格、及び/又は、選定されたディスプレ
イのタイプの間で大幅に変化する。
図17〜図19に関して以前に述べたように、フォーマ
ット化されたデータのブロック、即ち、第1のデコーダ
(空間デコーダ)、又は、第1のデコーダ(空間デコー
ダ)と第2のデコーダ(時間デコーダ)との組み合わせ
のどちらかからの出力を記憶し、そして、複号された情
報を、ラスタ順に、メモリーに対して書き込み、及び/
又は、書き出すために、アドレス発生器が用いられる。
以下に説明する動画フォーマッティング部は、広い範囲
に亙る出力信号組合わせを提供する。
ーダ実施例において、空間デコーダ及び時間デコーダ
は、MPEG符号化信号およびH.261動画符号復号
化システムの両方を実現することを必要とする。これら
双方のデバイスのDRAMインターフェースは、小さい
ピクチャフォーマットを用い、そして、低いコード化デ
ータレートにおいて運用している場合には、必要とされ
るDRAMの量を少なくするために構成可能である。こ
れらのDRAMの再構成については、DRAMインター
フェースに関連して以下において更に説明することとす
る。一般に、各々の時間デコーダ及び空間デコーダ回路
によって1つの単一4メガバイトDRAMが必要とされ
る。
チャ内で必要とされる全ての処理を遂行する。これによ
り、1つのピクチャ内の冗長度が減少される。
到着前に到着するピクチャに関係する主体となる当該ピ
クチャ、並びに、主体とされるピクチャの到着後に到着
するピクチャとの間の冗長性を減少させる。時間デコー
ダの1つの態様は、これら全てのピクチャと関連したデ
ータを読み取るために必要な複雑なアドレス機能を、出
来るだけ少ない個数の回路を使用し、そして、高速およ
び改良された精度を以て、扱うアドレスデコードネット
ワークを提供することである。
ータは、ハフマンデコーダ及びパーザーに先行するスタ
ートコード検出器、FIFO、第2のFIFOレジス
タ、逆モデラー、逆量子化器、逆ジグザグ及び逆DCT
を介して到着する。2つのFIFOは、チップ上に所在
する必要はない。一実施例において、データは、チップ
上に所在するFIFOを通って流れない。データは、D
RAMインターフェースに供給され、そして、FIFO
−IN記憶レジスタ及びFIFO−OUTレジスタは、
両方の場合に、チップ外に所在する。オペレーションが
規格とは完全に独立しているこれらのレジスタについて
は、続いて更に詳細に説明する。
大多数は、用いられる特定の規格から実際に独立してお
り、そして、DRAMインターフェース58、DRAM
インターフェースのためにアドレスを生成するバッファ
マネージャ59、逆モデラー75、逆ジグザグ8l、及
び逆DCT83を含む。ハフマンデコーダ及びパーザー
内の規格から独立したユニットは、ALU66及びトー
クンフォーマッティング部71を含む。
トには、DRAMインターフェース100、フォーク9
1、FIFOレジスタ96、加算器98、及び出力セレ
クタ106が含まれる。規格従属ユニットは、H.26
1とMPECにおいて異なるアドレス発生器94、及び
H.261及びMPEGの両方に適合するように再構成
可能な予測フィルタ103である。JPEGデータは、
一切変更されない機械全体を通って流れる。
プのハイレベル構成図を示す。このチップの殆どの部分
は規格から独立している。規格によって影響される僅か
な項目は、MPEG又はJPEGと異なるH.261の
場合にはDRAMにデータが記入される方法であり、そ
して、H.261においては、全ての単一ピクチャをコ
ード化する必要はない。ピクチャを何時ディスプレイし
ようと意図するかに関するいくらかの情報を提供し、そ
して、動画フォーマッティング部におけるロジックのア
ドレス発生タイプによっても扱われる時間基準として参
照されるいくらかのタイミング情報がある。
路の残りの部分は、色空間変換の全て、アップサンプリ
ングフィルタ、及びガンマ補正RAMの全てを含み、そ
して、用いられる特定の圧縮規格から完全に独立してい
る。
に依存し、この圧縮規格において、前記検出器は、当該
規格の各々に対して、ビットストリームにおける種々の
異なるスタートコードパターンを認識しなければならな
い。例えば、H.261は16ビットスタートコードを
持ち、MPECは24ビットスタートコード持ち、そし
て、JPEGは他のスタートコードとはかなり異なるマ
ーカコードを使用する。いったん、スタートコード検出
器がこれらの異なるスタートコードを認識してしまえ
ば、そのオペレーションは、圧縮規格から本質的に独立
する。例えば、種々の異なるカテゴリのマーカを認識す
る回路は別として、オペレーションの多くは、3つの異
なる圧縮規格の間で非常に類似している。
びパーザー内に位置するステートマシン518(図1
8)である。この場合、実際の回路構成は、3つの圧縮
規格の各々に関してほとんど同じである。実際、オペレ
ーションにおいて規格によって影響される唯一のエレメ
ントは、マシンのリセットアドレスである。単にパーザ
ーがリセットされる場合には、パーザーは、各規格に関
して異なるアドレスへジャンプする。実際、認識される
4つの規格がある。これらの規格は、H.261、JP
EG、MPEG、及び他の1つ規格であり、最後の規格
の場合、パーザーは、テストのために使われる1つのコ
ードに入る。この事実は、回路がほとんど全ての態様に
おいて同じであり、各々の規格に関するマイクロコード
によるプログラムが異なるだけである。従って、1つの
プログラムがH.261において作動しており、そし
て、別の異なる1つのプログラムがランしている場合、
これらのプログラムの間には重複はない。これは、JP
EGに関しても真であり、第3の完全に独立したプログ
ラムである。
ユニット64と共に機能するハフマンデコーダ56であ
る。これら2つのユニットは、ハフマン復号化を遂行す
るために、協同作動する。この場合、ハフマン復号化の
ために使われるアルゴリズムは、圧縮規格に関係なく同
じである。変化は、どちらの表が用いられるかと言うこ
と、および、ハフマンデコーダに入来するデータが反転
されているかどうかと言うことである。更に、ハフマン
デコーダ自体、符号化規格のいくらかの態様を理解する
ステートマシンを含む。これらの異なるオペレーション
は、パーザーステートマシンから入来する命令に応答し
て選定される。パーザーステートマシンは、3つの圧縮
規格の各々に対して異なるプログラムによって作動し、
そして、作動中の規格に適合する異なる時点において、
正しい命令をハフマンデコーダに供給する。
ットは、逆量子化器79であり、この場合、逆量子化器
が遂行する数学は異なる規格の各々に対して異なる。こ
の際に、コーディング・スタンダードトークンは復号化
され、そして、逆量子化器79は、どちらの規格の下で
作動中であるかを記憶する。次に、当該イベントの後に
起き、他のコーディング・スタンダードの前に起きかも
しれないあらゆる後続データトークンは、逆量子化器内
に記憶されているコーディング・スタンダードによって
示された方法によって扱われる。詳細な記述において言
及する表は、異なる規格における異なるパラメータを示
し、これらの異なるパラメータ又は数学にどの回路が対
応するかを示す。
9及び図20に示す各々のサブシステムに対して同じで
ない。図18に示すハフマンデコーダの前或いは後の2
つのFIFOに対してアドレスを生成するアドレス生成
方法は、コード化規格に応じて変化しない。H.261
の場合であっても、当該チップ上で起きるアドレス生成
は変わらない。本質的に、これらの規格の間の差は、M
PEGとJPEGとの差であり、マクロブロックの組織
は、ピクチャを横断して水平に伸びる線状の行内に配置
される。図21に示すように、第1のマクロブロックA
が1行をカバーする。マクロブロックBは1行未満をカ
バーする。マクロブロックCは複数行をカバーする。M
PEGにおいては、スライスに分割され、そして、1つ
のスライスが1つの水平行Aである場合もあり、或い
は、1つのスライスが水平行Bの一部である場合もあ
り、或いは、1つのスライスが1つの行からその次の行
に伸びる場合、Cもあり得る。これらのスライスの各々
は、マクロブロックの列で構成される。
クのグループ(GOB)に分割されるので、組織はいく
ぶん異なる。ブロックのグループは、高さが3列のマク
ロブロックに相当し、幅が11マクロブロックに相当す
る。CIPピクチャの場合には、この種の12のブロッ
クグループがある。ただし、1つの上に他の1つと言う
ように組織されていない。そうではなくて、高さ6ブロ
ックのグループが前後2グループ配置される。即ち、垂
直に6GOB及び水平2GOBが配置される。
を遂行する場合、既に示したように、マクロブロックは
順番にアドレスされる。更に詳細には、アドレスは行に
沿って進行し、そして、行の終端において、その次の行
がスタートすられる。H.261の場合には、ブロック
の順序は、ブロックのグループ内において記述された順
序と同じであるが、しかし、その次のブロックグループ
に動く際にそれは、ほとんどジグザグである。
提供する。それは、空間デコーダ及び動画フォーマッテ
ィング部におけるアドレス生成を、H.261用に変更
する方法である。情報がDRAMに記入されるときはい
つでも、これが達成される。前述のアドレス生成シーケ
ンスに関する知識によって記入されるので、RAMにお
ける物理的に配置される場所は、同じサイズのMPEG
ピクチャの場合と厳密に同じである。従って、メモリー
における情報の物理的配置は、MPEGシーケンスであ
った場合と同じであるので、DRAMから読取りを行う
ための全てのアドレス生成回路は、例えば予測を形成す
る場合、H.261規格の場合であることを理解する必
要はない。このように、全ての場合に、データの記入の
みが影響される。
生している事柄と異なる何かであるように見えるH.2
61に対して抽象化が行われる。即ち、ブロックの各グ
ループは概念的に拡張され、その結果、11×3マクロ
ブロックである長方形の代わりに、マクロブロックは、
高さが1マクロブロックであり長さが33ブロック(図
23)のブロックグループに拡張される。こうすること
により、ブロックのグループ通じてカウントするために
時間デコーダにおいて用いられるカウント技法と全く同
じ技法が、MPFG用としても用いられる。
スライスとの間に合致が存在するように回路が設計され
る。スタートコード検出器の後でH.261データが処
理される場合、各ブロックグループは、スライススター
トコードによって先行される。その次のブロックグルー
プは、その次のスライススタートコードによって先行さ
れる。この構造を通ってカウントするために時間デコー
ダ内においてカウントが行われる場合は、高さが1マク
ロブロックであって長さが33マクロブロックのグルー
プであるかのように見える。同様に回路は10間隔おき
にカウントするが、これで十分である。第11番目のマ
クロブロック又は第22番目のマクロブロックをカウン
トすると、幾つかのカウンタをリセットする。各マクロ
ブロックをカウントアップし、そして、11に到達する
と、ゼロにリセットする別のカウンタを備えた簡単な回
路によってこれが達成される。マイクロコードは、それ
を尋問し、そして、その作用を実施する。本発明の時間
デコーダにおける全ての回路は、マクロブロックの物理
的配置に関して、圧縮規格から本質的に独立している。
が有り、そして、回路は、適切な時点において適切な規
格を適応するために適切な表を選定する。各規格は複数
の表を持ち、そして、回路は、任意の所定時点において
表の集合の中から選定する。任意の1つの規格内におい
て、回路は、一時に1つの表を選定し、また、別の一時
に別の表を選定する。異なる規格内においては、回路
は、異なる表の集合を選定する。図24に関する検討の
際に既に指摘したように、これらの表の間には或る程度
の交差がある。例えば、MPEGに用いられる表の1つ
は、JPEGにおいても同様に用いられる。これらの表
は、完全に分離した集合ではない。図24は、H.26
1集合、MPEG集合、及びJPEG集合を示す。H.
261集合とMPEG集合との間には非常に大きい重複
があることに注意されたい。これらの規格が使用する表
は全く共通する。MPEGとJPEGとの間には僅かな
重複があり、そして、H.261とJPEGとの間には
全く重複がないので、これらの規格は完全に異なる表の
集合を持つ。
ニットは圧縮規格から独立している。或る1つのユニッ
トが規格独立的である場合には、この種のユニットは、
どのコーディング・スタンダードが処理されつつあるか
を記憶している必要がない。規格従属的な全てのユニッ
トは、コーディング・スタンダードトークンがこれらの
ユニットを流れる際に、圧縮規格を記憶している。第1
の符号化規格においてコード化/復号化された情報はマ
シン全体に配分され、そして、マシンが規格を変更しつ
つある場合には、マイクロプロセッサ制御される前のマ
シンは、一般に、H.261圧縮規格に従って機能する
ことを選定する。この種の前のマシンにおけるMPU
は、圧縮規格が変更中のマシン内における複数の異なる
場所において信号を生成する。MPUは、異なる時点に
おいて変更を行い、そしてパイプライン全体を通じてフ
ラッシュする。
のユニットとして配置されたスタートコード検出器にお
いてコーディング・スタンダードトークンの変化を起こ
させることにより、圧縮規格のこの変化を容易に取り扱
うことができる。トークンは、あるコード化規格が開始
されつつあることを表明し、そして、当該制御情報は、
マシンを下流に向かって流れ、そして、適切な時点にお
いて他の全てのレジスタを構成する。MPUは、各レジ
スタをプログラムする必要がない。
ットを用いて予測を形成する方法を告げる。どの圧縮規
格が運用中であるかに応じて、回路は、当該規格内に発
見される情報をビットストリームから予測モードトーク
ンへ変換する。この処理は、ハフマンデコーダ、及びパ
ーザーステートマシンによって行われ、この場合に、特
定の条件に基づくビットを操作することは容易である。
スタートコード検出器は、この予測モードトークンを生
成する。次に、トークンは、マシンを下流に向かって、
予測形成に責任のあるデバイスである時間デコーダの回
路まで流れる。ある規格内のビットは3つの異なる規格
内において変化しないので、空間デコーダの回路は、ト
ークンがその中で運用されている規格がどの規格である
かを知ることなしに、当該トークンを解釈する。空間デ
コーダは、当該トークンに応答して告げられたことだけ
を行う。これらのトークンを所有し、そして、それらを
適切に使うことによって、マシンにおける他のユニット
の設計が簡素化される。プログラムは幾分複雑になるこ
ともあり得るが、多重規格に対して設計困難なハードワ
イヤロジックをこの場合に使用することができる利益が
得られる。
詳細には、使用圧縮規格には無関係なコード化動画信号
の伸長に関する。
システムにおいて、第1の符号化された信号(MPE
G、またはH.261符号化動画信号)を復号化するた
めに第2のデコーダ回路(時間デコーダ)と組み合わせ
て第1の符号化された信号(JPEG符号化動画信号)
を復号化するための第1のデコーダ回路(空間デコー
ダ)を提供することである。JPEG符号復号化のため
には時間デコーダを必要としない。
イプラインデコーダ及び伸長システムを使用することに
より異なる方法で符号化された複数の信号の伸長を容易
にする。符号復号化および伸長パイプラインプロセッサ
は、独特の、そして、単一パイプラインデコーダ及び処
理システムと完全に互換性のある技術を用いて多重規格
符号化動画信号の扱いを可能にする特殊なコンフィギュ
レーションに組織されている。空間デコーダは時間デコ
ーダと組合わされ、そして、動画フォーマッティング部
は、動画ディスプレイをドライブするために用いられ
る。
るために、空間デコーダと動画フォーマッティング部の
組み合わせを使用することである。圧縮規格から独立し
た空間デコーダは、1つの単一ピクチャの境界内におい
て全てのデータ処理を遂行する。この種のデコーダは、
パイプラインを通過し、そして、関連している等速呼出
記憶装置、メモリーに対して情報の記憶および検索を扱
うための規格から独立したアドレス生成回路内に配分さ
れる内部ピクチャデータの空間伸長を扱う。静止画像デ
ータは、空間デコーダの出力において復号化され、そし
て、この出力は、ディスプレイ端末に出力を供給する多
重規格構成可能動画フォーマッティング部の入力として
用いられる。同様の画像の第1のシーケンスにおいて、
画像が空間デコーダの出力に到達するまでは、空間デコ
ーダの出力における伸長された各画像は同じビット長さ
である。画像の第2シーケンスは、完全に異なる画像サ
イズであっても差し支えなく、従って、第1の長さと比
較した場合に、長さが異なっても差し支えない。再度説
明すれば、この種画像が空間デコーダの出力に到達する
までは、類似した画像のこの種の第2シーケンスは全て
ビット長さが同じである。
ットストリームを、規格から独立した再構成可能なパイ
プラインプロセッサとして作動するように選定および組
織化され、順序立てて配置された再構成可能な複数の処
理ステージと組合わされた一連の制御トークン及びデー
タトークンに内部的に組織化することである。
M無し1つの単一空間デコーダは、基底線JPEGイメ
ージを急速に復号化することが出来る。空間デコーダ
は、基底線JPEG符号化規格の全ての機能をサポート
する。ただし、復号化可能なイメージサイズは、装備さ
れた出力バッファのサイズによって制限されることもあ
る。空間デコーダ回路は、情報のメモリーへの記憶を扱
うための機械従属、規格から独立したアドレス生成回路
を有する等速呼出記憶装置回路を含む。
た動画を復号化するためには時間デコーダを必要としな
い。従って、データトークンによって運ばれる信号は、
JPEGオペレーション用として時間デコーダが構成さ
れている場合には、それ以上処理することなしに、時間
デコーダを通って直接供給される。
動画デマルチプレクサ回路(HD&VDM)と組み合わ
されて作動するための、例えばバッファメモリー回路の
ような、1対のメモリー回路を空間デコーダ内に提供す
ることである。、第1の緩衝記憶装置は、HD & V
DMの前に配置され、そして、第2の緩衝記憶装置は、
HD & VDAの後に配置される。KD & VDM
は、2進1及び0出構成されるビットストリームを復号
化する。これらの数値は、規格符号化されたビットスト
リーム内に所在し、そして、当該ビットストリームを、
下流において使用される数に変換する。2バッファシス
テムの利点は、多重伸長システムを実現するために使用
できることである。これら2つのバッファについては、
ハフマンデコーダの確認済み実施例と組み合わせて、こ
の後で詳細に説明される。
フマンデコーダと組み合わせて作動する第1のフォーワ
ードバッファの上流に配置されたスタートコード検出器
回路と組合わされることである。この組み合わせの1つ
の利点は、入力ビットストリーム、特にパディングを扱
う場合に、ビットストリームに加えられなければならな
い融通性が増大することである。これらの確認済みコン
ポーネント、スタートコード検出器、メモリーバッフ
ァ、及びハフマンデコーダを配置すると、入力ビットス
トリームにおける特定のシーケンスの扱いを強化する。
更に、チップ外DRAMは、JPEG符号化された動画
画像をリアルタイムに復号化するために用いられる。D
RAMと共に使われるバッファのサイズ及び速度は、動
画符号化されたデータレートに依存する。
いる空間デコーダと関連するDRAMに記憶するために
必要な規格従属タイプの全ての情報を識別する。
ある場合には、更に、時間デコーダが必要である。時間
デコーダは、空間デコーダにおいて復号化されたデータ
を現在復号化されつつあるピクチャ像の後でディスプレ
イすることを意図されている既に復号化済みの画像と組
み合わせる。時間デコーダは、画像符号化データストリ
ームにおいて、この時間的に置き換えられた情報を識別
するための情報を受け取る。時間デコーダは、時間的お
よび空間的に配置された情報をアドレスし、情報を検索
し、現在復号化されつつあり、そして、完了し、そし
て、ディスプレイスクリーンをドライブするために動画
フォーマッティング部への伝送に適した結果的な画像を
終了させる画像を用いて1つの画像内に配置された情報
を復号化するような方法によって情報を組み合わせる。
その代りに、結果的な画像は、後続する画像の時間的復
号化のためにその後で使用するために記憶しておくこと
ができる。
つつある画像に対して早期及び/又は後期のいずれかに
おいて画像間の処理を実施する。時間デコーダは、当該
画像の符号化された表示内に符号化されない情報を再導
入する。理由は、当該情報が冗長であり、そして、デコ
ーダにおいて既に利用可能であることに因る。更に詳細
には、あらゆる所定の画像が、前後両方において当該情
報を時間的に囲むような類似の情報を含むことが可能で
ある。 運動補償が適用されるならば、この類似性を更
に大きくすることができる。時間デコーダ及び伸長回路
は、同様に、関連した画像の間の冗長度を減少させる。
は、空間デコーダからの規格従属出力情報を扱うために
用いられる。1つの単一画像に関するこの規格従属情報
は、空間デコーダによって処理された伸長された出力情
報が、第1の画像の時間的な位置に関して時間的に配置
された空間的に復号化された画像情報の空間的に復号化
された情報パケットの1つの画像を組み合わせるため
に、更に他のマシンに従属し規格から独立したアドレス
生成回路を有する他の等速呼出記憶装置によって他のD
RAMレジスタに記憶されるような方法において、DR
AMの幾つかの領域の間に配分される。
との出来る多重規格回路においては、更に大きい論理D
RAMバッファは、MPEGに適合可能な更に大きい画
像フォーマットをサポートすることが要求される場合も
あり得る。
ける直列パイプラインを通って移動中である。本発明の
1つの形において、アドレス復号化回路は、ブロック境
界に沿ってこれらの画素ブロックを扱う(記憶および検
索する)。更に、アドレス復号化回路は、境界を横断し
て行われる8×8画素ブロックの記憶および検索を扱
う。この汎用性については、以下において更に完全に説
明することとする。
遅延なしに扱うために、第1のデコーダ回路(空間デコ
ーダ)の出力を直接動画フォーマッティング部に供給し
ても差し支えない。
による遅延に対して、画像データのブロックを順序付け
し直す。後で説明するように、アドレス復号化回路はこ
の順序付けし直しを実施可能にする。
重要な特徴は、画像の選択から得られた処理中の画像よ
りも早期に、或いは、遅れて到着した画像情報を合計す
ることである。
る場合、ピクチャは次に示す内容のいずれかを意味す
る。
ある。
行われたプロセス段階を加算した結果として得られる最
終的な復号化済みのピクチャである。
済みのピクチャである。
クチャ・スタートトークンとその次のピクチャ・エンド
トークンとの間のデータの範囲である。
て処理された後で、情報は、ピクチャ記憶場所にディス
プレイされるか、或いは、書き戻される。次に、この情
報は、別の異なる符号化済みデータピクチャを処理する
際に用いられる更なる基準として保持される。視覚的デ
ィスプレイのための MPEG符号化されたピクチャの
再配列には、可所要のスクランブルされたピクチャは、
時間デコーダの再配列機能を変えることによって達成さ
れる能性が包含される。
ング部は、全て、外部DRAMを使用する。これら全て
の3つのデバイスには同じDRAMが用いられることが
好ましい。これら3つ全てのデバイスがDRAMを用
い、更に、3つ全てのデバイスがアドレス発生器と共に
DRAMインターフェースを使用する場合であっても、
各々がDRAMにおいて実現するものは同じでない。即
ち、各チップ、例えば、空間デコーダ及び時間デコーダ
は、同じ物理的な外部DRAMを使用する場合であって
も、異なるDRAMインターフェース及びアドレス生成
回路を有する。
内に2つのFIFOを実現する。再び図18を参照する
こととし、一方のFIFO54は、ハフマンデコーダ5
6及びパーザーの前に配置され、そして、他方は、ハフ
マンデコーダ及びパーザーの後に配置される。FIFO
は、比較的直截な方法において実現される。DRAMの
特殊な部分は、各FIFOに対して、その中にFIFO
を実現するための物理的メモリーとして控除しておかれ
る。
8と関連しているアドレス発生器は、2つのポインタを
使用して、FIFOアドレスのトラックを管理する。1
つのポインタは、FIFOに記憶されている第1ワード
を指し、もう一方のポインタは、FIFOに記憶されて
いる最後のワードを指し示す。従って、所定のワードへ
の読み/書き操作を可能にする。読み、又は、書き操作
における実施過程において物理的メモリーの終端に到達
した場合には、アドレス発生器は、物理的メモリーのス
タートに対して「ラップアラウンド(wraps around)」す
る。
はH.261)が指定されていても、本発明にかかる時
間デコーダは、2つの完全なピクチャ又はフレームを記
憶することができなければならない。説明を簡易にする
ために、その中に2つのフレームを記憶しようとするD
RAMの物理的メモリーを2つの半分部分に分割するも
のとし、各半分は、それぞれ、(適切なポインタを用い
て)2つのピクチャのうちの特定の1つに対する専用と
する。
ャを用いる、即ち、イントラ(I)、予測(P)、及び
双方向補間(B)である。既に述べたように、Bピクチ
ャは、2つのピクチャからの予測に基づく。一方のピク
チャは未来から、そして、いま一方は過去から得られ
る。Iピクチャは、時間デコーダによるそれ以上の復号
化を必要としないが、しかし、P及びBピクチャを復号
化する際に後で使用するために、2つのピクチャバッフ
ァのうちの1つに記憶されなければならない。Pピクチ
ャの復号化には、既に復号化済みのP又はIピクチャか
ら予測を形成することが必要である。復号化されたPピ
クチャは、P及びBピクチャの復号化に用いるために1
つのピクチャに記憶される。Bピクチャは、両方のピク
チャバッファからの予測を要求することができる。ただ
し、Bピクチャは外部DRAMに記憶される。
時間デコーダから出力されないことに注意されたい。そ
の代りに、I及びPピクチャは、ピクチャバッファの1
つに記入され、そして、次のIまたはPピクチャが、復
号化のために、到着する場合に限り、読み出される。換
言すれば、フラッシングに関する本セクションの以降に
おいて更に説明されるように、時間デコーダは、2つの
ピクチャバッファから前のピクチャをフラッシュするた
めに、その次のPまたはIピクチャを信頼する。要する
に、空間デコーダは、PまたはIピクチャをフラッシュ
するために、動画シーケンスの終端において偽のIまた
はPを供給することが出来る。結果的に、次の動画シー
ケンスがスタートするとき、この偽ピクチャはフラッシ
ュされる。 Bピクチャの復号化に際して、ピークメモ
リー帯域幅のロードが起きる。最悪の状態は、全ての予
測が半画素の精度を以て作成され、両方のピクチャバッ
ファから供給されるこの種の予測からBフレームが形成
される場合である。
MPEGピクチャの再順序付けを提供するように、構成
することができる。このピクチャ再順序付けにより、デ
ータストリーム内のその次のPまたはIピクチャの時間
デコーダによる復号化がスタートする時まで、P及びI
ピクチャの出力は遅延する。
と、ピクチャがピクチャバッファに記入されるにつれ
て、特定のトークンは一時的にチップに記憶される。ピ
クチャがディスプレイ用に読出されると、これらの記憶
されているトークンが検索される。時間デコーダの出力
において、新規に復号化されたPまたはIピクチャのデ
ータトークンは、より旧いPまたはIピクチャと交換さ
れる。
のピクチャからのみ予測を製作する。各ピクチャが復号
化されるにつれて、2つのピクチャバッファの1つに記
入され、次のピクチャ復号化に使用可能となる。必要と
される唯一のDRAMメモリーオペレーションは、8×
8ブロックを書くことであり、そして、整数精度のモー
ションベクトルによって予測を形成することである。
3つのフレーム又はピクチャを記憶する。ピクチャの反
復またはスキップするような機能を収容するために、3
つのピクチャが記憶される必要がある。
符号化されたデーアストリームのビットストリーム特性
を再検討することは有用である。理由は、これらの特性
は、空間デコーダ及び時間デコーダの回路によって扱わ
れなければならないからである。例えば、1つ又は複数
の圧縮規格の下において、当該規格の圧縮比率は、1つ
のピクチャの複数のピクチャを符号化するために使用さ
れるビットの数を変えることによって達成される。ビッ
ト数は、広い範囲に亙って変化し得る。詳細には、この
ことは、1つのピクチャの基準ピクチャを符号化するた
めに使われるビットストリームの長さは、1つの単位長
さとして識別可能であり、他のピクチャは、多数の単位
の長さであっても差し支えなく、第3のピクチャが当該
単位の部分であることも可能である。
H.261)のうちのいずれも、ピクチャ像を終了する
方法を定義せず、次のピクチャがスタートする時、現在
のピクチャが終わることが黙認されている。更に、規格
(特にH.261)は、エンコーダによって不完全なピ
クチャが生成されることを可能にする。
・エンドを用いることによって1つのピクチャのエンド
を示す方法が提供される。スタートコード検出器から離
れる静止符号化データは、ピクチャ・スタートトークン
によってスタートし、そして、ピクチャ・エンドトーク
ンによって終了するが、長さが大幅に変化するピクチャ
から成る。ここに(第1と第2のピクチャとの間)伝送
された他の情報があるかもしれないが、第1のピクチャ
が終了したことは既知である。
ームは、所定のシーケンスに対して長さ(ビット数)が
同じであり、依然としてピクチャスタート、及びピクチ
ャエンドのピクチャから成る。ピクチャスタートとピク
チャエンドとの間の時間の長さは変化しても差し支えな
い。
均一なこれらのピクチャを受け取り、そして、ドライブ
されつつあるディスプレイのタイプによって決定される
固定ピクチャレートにおいて、これらをスクリーン上に
ディスプレイする。例えば、PAL−NTSCテレビジ
ョン規格のように種々異なるディスプレイレートが世界
中で使用されている。これは、独特の方法において、ピ
クチャを選択的にドロッピングまたは反復することによ
って達成される。普通の「フレームレートコンバー
タ」、例えば、2−3プルダウンは、固定入力ピクチャ
レートによって動作するが、動画フォーマッティング部
は可変入力ピクチャレートを扱うことができる。
ージ(RPS)は、2線インターフェース33、及び入
力ラッチ34から入来するトークンを受け取るために用
いられるトークンデコード回路32を有する。トークン
デコード回路33の出力は、2線インターフェース36
及びアクション識別回路39を介して処理回路35に供
給される。処理回路35は、アクション識別回路の制御
の下におけるデータ処理に適する。処理が完了した後
で、処理回路36は、出力ラッチ41を介し完成された
信号を2線インターフェースバス40の出力に接続す
る。
インターフェースバス40を介してトークンデコード回
路33から供給されるか、及び/又は、それぞれ2線イ
ンターフェースバス46を介してメモリー回路43及び
44から供給される入力を持つ。トークンデコード回路
33からのトークンは、アクション識別回路39及び処
理回路36に同時に供給される。アクション識別機能並
びにRPSについては、本明細書のこの次の部分におい
て表及び図を用いて更に詳細に説明される。
は、図18、図19、及び図20に記載されている規格
から独立した回路ではないステージを示す。データフロ
ーは、トークンデコーダ32を介し、処理ステージ35
を介し、そして、出力ラッチ41を介して2線インター
フェース回路42に流れる。制御トークンがRPSによ
り認識される場合には、トークンデコード回路33にお
いて復号化され、そして、適切なアクションが行われ
る。認識されない場合には、出力回路41を介して、2
線インターフェース回路42に、変化なしに供給され
る。現在の発明は、パイプラインを介して制御トークン
の動きを制御するための2線ワイヤインターフェース回
路を持つパイプラインプロセッサとして機能する。本発
明のこの特徴については、以前に出願された欧州特許出
願第92306038.8号に更に詳細に開示済みであ
る。
3は、2線インターフェース42を経て現在入来中のト
ークンがデータトークンまたは制御トークンのいずれで
あるかを識別するために用いられる。トークンがトーク
ンデコーダ回路33によって調べられていることが認識
された場合には、実施されるべきアクションを示す適切
なインデックス信号またはフラグ信号によって、アクシ
ョン識別回路39に出力される。それと同時に、トーク
ンデコード回路33は、適切なフラグまたはインデック
ス信号を処理回路に供給し、アクション識別回路39に
よって扱われつつあるトークンの存在を処理回路に対し
て警告する。制御トークンも同様に処理されても差し支
えない。
トークンについては、この後において更に詳細に説明さ
れる。本明細書のこの部分に関しては、制御トークンに
よって運ばれるアドレスはデコーダ33において復号化
され、そして、アクション識別回路39内に含まれるレ
ジスタにアクセスするために用いられることに注意する
だけで十分である。調査されつつあるトークンが認識さ
れた制御トークンである場合には、アクション識別回路
39は、ステートマシン全体に亙って制御信号を配分す
るために、その再構成状態回路を使用する。既に言及し
たように、これは、アクション識別デコーダのステート
マシンを作動化し、このデコーダはデコーダ自体を再構
成する。例えば、前記デコーダが符号化規格を変更する
こともあり得る。このようにして、アクション識別回路
39は、図17に示すステートマシンを介して供給しつ
つある特定の規格を扱うための所要のアクションを復号
化する。
制御されている処理回路36は、この事象を引き起こす
ために適切である場合にデータトークンのデータフィー
ルドに含まれる情報を処理する準備を整える。多くの場
合、制御トークンが最初に到達し、アクション識別回路
39を再構成し、そして、次に処理回路36によって処
理されるデータトークンが直ぐ後に続く。制御トークン
は、プロセシングユニット36内において処理済みのデ
ータトークンの直ぐ前を先行する出力2線インターフェ
イス42を介して出力ラッチ回路41を出る。
は、ヒストリステートを保持するステートマシンであ
る。レジスタ43及び44は、トークンデコーダ33か
ら復号化され、そして、これらのレジスタに記憶されて
いる情報を保持する。この種のレジスタは、必要に応じ
て、オンチップ又はオフチップのいずれであっても差し
支えない。これら複数のステートレジスタは、アクショ
ン識別に接続されたアクション識別回路39において現
在識別されつつあるアクション情報を含む。このアクシ
ョン情報は、以前に復号化されたトークンから記憶さ
れ、そして、選定されるアクション影響することが可能
である。接続40は、トークンデコード33からアクシ
ョン識別ブロック39まで直線的に接続する。これは、
アクションがトークンデコード回路33によって現在処
理されつつあるトークンによっても影響され得ることを
示すことを意図したものである。
タ処理を示す。データ処理は、アクション識別回路39
によって構成されるように行われる。アクションは、条
件の数によって影響され、そして、既に復号化済みのト
ークンから全体的に得られた情報によって影響され、或
いは、更に詳細には、レジスタ43及び44において既
に復号化済みのトークンから記憶された情報、処理中の
現行トークン、及びアクション識別ユニット39がそれ
自身で獲得したステートおよびヒストリ情報によって影
響される。それによって制御トークンとデータトークン
との間の区別が示される。
クンは、当該RPSユニットによって制御トークンとし
て見られる。この場合、これらのトークンは幾分後の時
点においてRPSのオペレーションに影響するはずであ
る。トークンの他の集合は、RPSによってデータトー
クンとして見られる。この種のデータトークンは、特定
回路の設計、既に復号化済みのトークン、及びアクショ
ン識別ユニット39の状態によって決定されるような方
法においてRPSによって処理される情報を含む。
ルに対する或る特定のトークンの集合および他のトーク
ンの集合をデータとして識別するが、これは特定の当該
RPSのビューである。別のPPSは、同じトークンに
対して別の異なったビューを持つことが可能である。一
方においては、いくらかのトークンは、1つのRPSユ
ニットによってデータトークンとして見られ、他方にお
いては、別のRPSユニットによって実際に制御トーク
ンであるものとして決定されることが可能である。例え
ば、量子化表情報は、少なくともハフマンデコーダ及び
ステートマシンに関する限りにおいては、データであ
る。理由は、当該情報はその入力にコード化されたデー
タとして到着し、一連の8ビットワードに書式化され、
そして、処理パイプラインを下流に移動する量子化表ト
ークン(QUANTテーブル)と呼ばれるトークンに形
作られるからである。当該マシンに関する限りにおいて
は、全ての情報はデータであったはずであり、当該情報
はハンドリングデータであって、或る種のデータを別の
種類のデータに変換し、これは明らかに、当該マシンの
当該部分によって遂行される処理機能である。ただし、
当該情報が逆量子化器に到着すると、逆量子化器は、複
数のレジスタである当該トークン内にその情報を記憶す
る。実際、64個の8ビット数があり、そして、多数の
レジスタがあるので、一般に、多数のレジスタが存在す
るかも知れない。この情報は、制御情報として見なさ
れ、従って、情報は各データワードに乗算する数に影響
するので、当該制御情報は、その次のデータトークンに
おいて行われる処理に影響する。1つのステージは当該
トークンをデータであると見なし、そして、他のステー
ジは当該トークンを制御であると見なした例がある。
場合、マシンを通過するデータであるものと見なされ
る。重要な態様の1つは、一般に、トークンデコーダを
有する回路の各ステージが特定のトークンの集合を探し
ており、そして、当該ステージが認識しないトークン
は、変化しないままでステージを通過し、そして、パイ
プラインを下流に移動することである。その結果、現行
ステージに後続する下流ステージがこれらのトークンを
見ると言う利点があり、これらのトークンに応答可能で
ある。これは、重要な特徴である。すなわち、隣接して
いないブロックに対してトークンメカニズムを用いるこ
とによりブロックの間の通信が可能である。
ステージは、各々の規格にとって必要なオペレーション
を行うことができる範囲内において、処理能力を持つこ
と、及び所定の時点において行われなければならないオ
ペレーションに関してトークンとして制御を遂行できる
ことである。この能力を提供するために、異なるステー
ジの間において異なる1つの処理エレメントがある。パ
ーザーのステートマシンROMにおいて、3つの完全に
異なる分離されたプログラムがある。各プログラムは扱
われる各規格に対応する。どのプログラムが実行される
かはコーディング・スタンダードトークンに依存する。
換言すれば、これら3つのプログラムの各々は、その内
部に、復号化及びコーディング・スタンダード規格トー
クンの両方を扱う能力もつ。これらのプログラムの各々
が、次に解釈されるべき符号化規格がどちらであるかを
理解した場合、これらのプログラムは、マイクロコード
ROM内の当該プログラムのためのスタートアドレスへ
リテラルにジャンプする。これが、ステージが多重規格
性を扱う方法である。
る。第1に、スタートマーカコードの長さを検出するた
めのシフトレジスタを再構成するためにビットストリー
ム内のビットのどのパターンが、スタートコード、また
はマーカーコードとして認識されるかが影響される。第
2に、当該スタートまたはマーカコードが何を意味する
かを表示する1つの情報がマイクロコード内に所在す
る。ビットの符号化は、3つの規格の間で異なることを
思い出されたい。従って、マイクロコードは、そのコン
プレッサ規格に特有の表において、当該規格標準から独
立しているもの、即ち、入来コードを表すトークンのタ
イプを参照する。大抵の場合に、様々な規格の各々は、
当該規格が生成する特定のコードを提供するので、この
トークンは、一般に、当該規格から独立している。
量子化器は、乗算および加算を行い、そして、パラメー
タによって構成される3つ全ての圧縮規格を実行する能
力を持つ。例えば、制御装置内のROMにおけるフラグ
ビットは、逆量子化器に対して、定数Kを加えるかどう
かを告げる。別のフラグは、逆量子化器に対して、他の
定数を加えるかどうかを告げる。逆量子化器は、トーク
ンが量子化器によって供給される場合、レジスタ内にコ
ーディング・スタンダードトークンを記憶する。それ以
降にデータトークンが通過する場合には、逆量子化器
は、当該規格が何であるかを記憶し、そして、適切なオ
ペレーションを行うために処理エレメントに供給する必
要のあるパラメータを探索する。例えば、逆量子化器
は、特定の圧縮規格に対してKが0にセットされるか、
或いは、1にセットされるかを探索し、そして、その結
果をその処理回路に供給する。同様の意味において、ハ
フマンデコーダ56は、その中に多数の表を持ち、その
幾つかはJPEG用であり、その幾つかはH.261用
であり、その幾つかはMPEG用である。実際、これら
の表の大多数は、これらの圧縮規格の1つ以上に役立
つ。どの表が使われるかは、当該規格のシンタックスに
依存する。ハフマンデコーダは、どの表を使うかを告げ
るステートマシンからのコマンドを受け取ることによ
り、作動する。従って、ハフマンデコーダは、それに入
力され、記憶され、そして、どの符号化が実施されつつ
あるかを表明する1つの状態をそれ自体は直接持たな
い。そうでなくて、一緒になってそれらの中に情報を含
むパーザーステートマシンとハフマンデコーダの組み合
わせである。
ス生成は、改造され、そして、図17に示す場合に類似
し、多数の情報は、例えば符号化規格のようなトークン
から復号化される。同様に、符号化規格および付加的情
報はレジスタに記録され、そして、当該情報がシステム
内のマクロブロックを通過して、1つ1つカウントする
場合にはアドレス発生器ステートマシンの進行に影響す
る。最後のステージは、2つのモードH.261、また
はMPEGのどちらかで作動し、そして、容易に識別さ
れる予測フィルタ407−9(図26)である。
ークンに複数のワードを有する。この場合、拡張ビット
として知られる1つのビットがセットされ、追加情報を
運ぶためのトークン内における付加ワードの使用を指定
する。これらの付加制御ビットのうちの或るものは、対
応するステートマシンにおいて1組の規格から独立した
インデックス信号を作成するために使用される情報を示
すインデックスを含む。トークンの残りの部分は、パイ
プラインプロセッサを通過する全てのデータストリーム
に対して標準となる内部の処理制御機能を示し、そし
て、識別するために使用される。
は、マシン全体に亙って配分された相対トークン復号化
回路によって復号化される現行符号化規格を保持するた
めに使われ、そして、新しい符号化規格の下で動作する
ことが適切である場合にはいつでもマシン全体に亙るス
テージのアクション識別回路39を再構成するために使
われる。更に、トークン符号化回路は、当該回路が扱う
ように設計された選定された規格の1つと制御トークン
が関係があるかどうかを示すことができる。
及びJPEGマーカにはは8ビットバリューが後続す
る。H.261スタートコードのは4ビットバリューが
後続する。この文脈において、スタートコード検出器5
1は、MPEGスタートコードか又はJPEGマーカー
のいずれかを検出することによって、次の8ビットがス
タートコードと関連している値を含むことを示す。次
に、前記検出器は、独立的に、MPEGスタートコード
またはJPEGマーカーのいずれであり、そして、H.
261スタートコードでないことを示す信号を作成する
ことがっできる。この第1の場合において、8ビットバ
リューはデコード回路に入力され、デコード回路の一部
は、当該回路を通過するトークンを扱うために現行回路
内において使用されるインデックス及びフラグを示す信
号を作成する。これは、その後においてどちらの規格が
扱われつつあるかを決定するために参照される制御トー
クンの部分を挿入するためにも使われる。この意味にお
いて、制御トークンは、MPEG規格、並びに、同伴デ
ータに作用するオペレーションのタイプを示す部分と関
係があることを示す部分を含む。既に検討したように、
この情報は、その目的のために作られた様々な規格によ
って必要とされる機能を遂行るために用いられる処理ス
テージを再構成するために、システムにおいて利用され
る。
て、このコードはスタートコードのすぐ後に後続する4
ビットバリューと関連する。スタートコード検出器は、
この値をトークン発生器ステートマシンに供給する。こ
の値は、3ビットスタート数を作る8ビットデコーダに
供給される。スタート数は、当該バリューによって示さ
れるように、ピクチャ数のピクチャ・スタートを識別す
るために用いられる。更に、システムは、既に述べた2
線インターフェースの原理の下で作動する多重並列処理
パイプラインを含む。各々のステージは、一般に図17
に示す形をとるマシンを含む。トークンデコードステー
ジ33は、アクション識別回路39、またはプロセシン
グユニット36にステートマシンを適宜エントリさせつ
つあるトークンを導くために用いられる。プロセシング
ユニットは、次の以前の制御トークンによって現行符号
化規格を扱うために必要な形に再構成済みであり、現行
規格は、処理ステージに現在エントリされつつあり、そ
して、次のデータトークンによって運ばれる。更に、本
発明のこの態様に基づき、処理パイプラインにおける連
続したステートマシンは、1つの符号化規格、即ち、
H.261の下で機能することが可能であり、一方、前
のステージは、例えばMPEGのような個別規格の下で
動作することが可能である。制御トークン及びデータト
ークンの両方を運ぶために同じ2線インターフェースが
使われる。
再構成可能な処理ステージと共に多数の符号化規格を復
号化することを要求される制御トークンを用いる。更に
詳細には、ピクチャが実際に終了する時点を指示するこ
とは重要であるので、ピクチャ・エンド制御トークンが
用いられる。従って、多重規格マシンを設計する場合に
は、どの規格復号化技術を使用するかを示す付加的制御
トークンを多重規格パイプライン内に作ることが必要で
ある。この種の制御トークンはピクチャ・エンドトーク
ンである。このピクチャ・エンドトークンは、バッファ
をフラッシュするように強制し、そして、デコーダを介
して現行ピクチャをディスプレイへ押し出すために、現
行ピクチャが終了したことを示すために使われる。
ペレーションモード すでに述べたスタートコード検出器の形の圧縮規格従属
回路は、適切なバスを介して、圧縮規格から独立した回
路に適宜相互接続される。規格従属回路は、同じバス及
び付加的バスを介して、従属独立組み合わせ回路に接続
される。規格から独立した回路は、規格従属独立回路に
付加的入力を供給し、同時に、規格従属独立回路は規格
から独立した回路に情報を後方提供する。規格から独立
した回路からの情報は、他の適当なバスを介して、出力
に供給される。表600は、規格従属スタートコード検
出器51への入力に適用される多重規格には各符号化さ
れたビットストリーム内に規格従属的な意味を持つ特定
のビットストリームが含まれることを示す。
器は、MPEG、JPEG、及びH.261ビットトリ
ームを扱い、そして、残りのデコーダにとって有意であ
る一連の所有権トークンを前記ストリームから生成する
ことができる。多重規格の復号化が達成される一例とし
て示せば、MPEG(1、及び2)ピクチャ・スタート
コード、H.261ピクチャ・スタートコード、及びJ
PEGスタートオブスキャン(SOS)マーカは、スタ
ートコード検出器によって等価として扱われ、そして、
これら全てが内部ピクチャ・スタートトークンを生成す
る。同様の方法において、MPEGシーケンススタート
コード、及びJPSG 501(スタートオブイメー
ジ)マーカは、両方共、マシンシーケンススタートトー
クンを生成する。ただし、H.261規格は等価スター
トコードを持たない。従って、スタートコード検出器
は、第1のH.261ピクチャ・スタートコードに応答
して、シーケンススタートトークンを生成する。
には、直接使用されない。むしろ、例えば、マシンピク
チャ・スタートトークンは、ビットストリームに含まれ
るピクチャ・スタートイメージに等価であると思われて
いる。更に、次の事柄を念頭に置かれたい、即ち、マシ
ンピクチャ・スタート自体は、規格におけるピクチャ・
スタートの直接的なイメージではない。むしろ、それ
は、各々の圧縮コード化規格におけるイメージのオペレ
ーションをエミュレートする規格から独立した復号化機
能を提供するために他の制御トークンと組み合わせて使
われる制御トークンである。制御トークンによって運ば
れた情報に基づく回路の再構成と結合した制御トークン
の組み合わせ、及び更に、それぞれのステートマシンの
トークン復号化回路部分によって生成されたインデック
ス及び/又はフラグとの組み合わせは、独特である。典
型的な再構成可能なステートマシンについては次に続い
て説明される。
カラムには規格イメージのグループの名前が示される。
右カラムには、当該規格イメージ内には存在しないか、
又は、使用されない規格符号化された信号のエミュレー
ションに用いられるマシン従属制御トークンが示され
る。
600に記載されている規格信号の任意の1つを復号化
する場合、マシンシーケンススタート信号はスタートコ
ード検出器によって生成されることが分かる。スタート
コード検出器は、システム全体に亙って用いられる2線
インターフェースへ供給するために、シーケンススター
ト、グループスタート、シーケンスエンド、スライスス
タート、ユーザー―データ、エクストラ―データ、及び
ピクチャ・スタートトークンを作る。これらの制御トー
クンと共に作動するこれらの各ステージは、トークンの
内容によって構成されるか、或は、トークンの内容によ
って作られるインデックスによって構成され、そして、
ピクチャデータトークンが当該ステーションに到着する
場合に受信されると予測されるデータを扱う準備が整え
られる。
うな圧縮規格の1つは、そのデータストリーム内にシー
ケンスイメージスタートを持たず、そのデータストリー
ム内にピクチャ・エンドイメージも持たない。スタート
コード検出器は、入来ビットストリーム内にピクチャ・
エンドポイントを示し、そして、PICTUtZEEN
Dトークンを作る。この点に関して、本発明のシステム
は、本発明の実現において使用するために選定された各
々のレジスタの位置に情報の1ビットを含むように完全
にパックされたデータワードを運ぶことを意図する。こ
の目的のために、2つのスタートコードの間で供給され
るビット数として15ビットが選定された。勿論、当該
技術分野における通常の熟練者であれば、15ビットよ
り多いか少ないいずれの選択を行うことも可能であるこ
とが理解できるはずである。換言すれば、スタートコー
ド検出器からDRAMインターフェースへ供給される全
てのデータワードが15ビットであることは、適切なオ
ペレーションのために必要とされる。従って、スタート
コード検出器は、データトークンの最終ワード挿入され
るパディングと称する余分のビットを作る。説明のため
には、15データビットが選定された。
レーションを行うためには、多数の2進1が後続する2
進0は、15ビットデータワードを完成するために、自
動的に挿入される。次に、このデータは、コード化され
たデータバッファを介して供給され、そして、パディン
グを除去するハフマンデコーダに供給される。従って、
任意の数のビットが、固定したサイズ及び幅のバッファ
を供給可能である。
スを識別するためにスライススタート制御トークンが使
われる。スライススタート制御トークンは、ピクチャを
更に小さい領域に分割するために用いられる。この領域
のサイズは、エンコーダによって選定され、そして、ス
タートコード検出器は、スタートコード検出器から下流
に位置するマシン従属ステートステージに対して、受信
ピクチャを更に小さい領域に分割するために、スライス
スタートコードのこの唯一のパターンを識別する。領域
のサイズは、スタートコード検出器で識別され、そし
て、符号化されたピクチャを伸長するために再組合わせ
回路及び制御トークンによって使用されるエンコーダに
よって選択される。スライススタートコードは、主とし
てエラー回復のために使われる。
の方法を提供し、そして、これについては、続いて更に
詳細に説明される。スタートコード検出器をコード化さ
れたデータバッファの前に配置すれば、コード化データ
バッファの後、そして、ハフマンデコーダ及び動画デマ
ルチプレクサ前にスタートコード検出器を配置する場合
と比較して、多数の利点が得られる。第1のバッファの
前にスタートコード検出器を設置した場合には、1)ト
ークンの組立てが可能であり、2)例えばスタートコー
ドのような規格制御信号の復号化が可能であり、3)デ
ータがバッファに入る前に、ビットストリームのパッド
が可能であり、そして、4)バッファを空にするため
に、制御トークンの適切なシーケンスを作り、利用可能
なデータをバッファからハフマンデコーダに入れること
が可能である。
制御トークンの殆どは、様々なピクチャ、及び動画符号
化規格の構文エレメントを直接反映する。スタートコー
ド検出器は、構文エレメントを制御トークンに変換す
る。これらの自然トークンに加えて、幾つかの一意的、
及び/又は、マシン従属トークンが生成される。一意的
なトークンには、本発明のシステムにより使用するため
に特に設計され、内部的にも外部的にも一意的であり、
そして、本発明の多重規格性に関して補助するために用
いられるトークンが含まれる。この種の一意的なトーク
ンの例には、ピクチャ・エンド、及びコーディング・ス
タンダードが含まれる。
的な差の幾つかを除去するため、及びエラー条件と協調
作動するために導入される。自動トークン生成は、規格
従属データの順次分析の後で行われる。従って、空間デ
コーダは、空間デコーダの入力に直接供給されたトーク
ン、即ち、SCD、並びに、コード化されたデータにお
けるスタートコードの検出に続いて生成されたトークン
に平等に応答する。本発明の多重規格性を制御するため
に一連のエキストラトークンが2線インターフェースに
挿入される。
ームは、規格従属非データ識別可能ビットパターンを含
み、これらのパターンの1つを、今後、スタートイメー
ジ、及び/又は、規格従属コードと呼ぶこととする。J
PEGにおいては、同様の機能はマーカコードによって
提供される。これらのスタート/マーカコードは、コー
ド化されたデータストリームの構文の重要な部分を識別
する。スタートコード検出器によって行われるスタート
/マーカコードの分析は、コード化されたデータ解析の
最初のステージである。
トストリーム全体を復号化することなしにパターンを識
別できるように設計される。従って、それらのパターン
は、エラー回復及びデコーダスタートを援助するために
本発明に基づいて使用できる。スタートコード検出器
は、コード化されたデータ構成内のエラーを検出し、そ
して、デコーダのスタートを援助するための、機能を提
供する。スタートコード検出器のエラー検出能力につい
ては、デコーダのスタート過程につれて、この後で詳細
に説明される。
トストリームの特性、及び本発明のアドレッシング特性
との関係に関する説明であった。次の記述は、スタート
コード検出器に関する規格従属コード化データのビット
ストリームの特性の説明である。
圧縮仕様を識別するために選定された独特のスタートコ
ードコンフィギュレーション、またはイメージを用い
る。各々のスタートコードは、スタートコードバリュー
を持つ。スタートコードバリューは、当該規格の言語内
においてスタートコードと関連するオペレーションのタ
イプを識別するために用いられる。本発明の多重規格デ
コーダにおいては、既に述べたように、その互換性は、
制御トークン及びデータトークンコンフィギュレーショ
ンに基づく。フラグ信号を含むインデックス信号は、各
ステートマシン内において回路生成され、そして、以下
に適宜説明することとする。
は、マーカコード、並びに、データワードと対照的な他
の規格ワードは、当該マシンにおいて使用される制御、
及び/又は、データトークンの内容に関して、コード、
及び/又は、マシン従属コードの使用との混乱を回避す
るために、イメージとして識別されることが少なくな
い。同様に、スタートコードと言う用語は、JPEGマ
ーカコード並びにMPEG及びH.261に関する包括
的な用語として用いられることが多い。マーカコードと
スタートは同じ目的に役立つ。更に、「フラッシュ」(f
lush)と言う用語は、フラッシュトークンを意味する場
合と、そして、動詞として、例えば、スタートコード検
出器シフトレジスタをフラッシュする場合(「フラッシ
ュ済み」信号を含む)のように、両方の意味に用いられ
る。混乱を回避するために、フラッシュトークンは必ず
大文字で書かれる。用語(動詞、または名詞)の他の全
ての使用は小文字による。
トリームは、長さの変化するデータ及びスタートイメー
ジを含む。スタートイメージは、規格に応じて即座に後
続する当該データに対してどのオペレーションが実施さ
れるべきかを告げる値を一緒に運ぶ。ただし、多重規格
に対して互換性が必要とされる本発明の多重規格パイプ
ライン処理システムにおいて、システムは、全ての規格
において全ての機能を扱うために最適化されている。従
って、多くの条件において、一意的なスタート制御トー
クンは、符号化された信号規格イメージの値に含まれる
値に関してのみ互換性があるばかりでなく、当該技術分
野において周知のように各規格に対して指定されたパラ
メータによる表示に従って、規格のオペレーションをエ
ミュレートするために各種ステージを制御可能でなくて
はならない。この種の規格は、全て、参照資料として本
明細書に組み込まれる。
わせることによって規格ビットストリームに含まれる非
データ情報をエミュレートするトークンの間の関係を理
解することが重要である。フラグ信号を含むインデック
ス信号の個別の集合は当該ステートマシン内におけるい
くらかの処理を扱うために各ステートマシンによって生
成される。規格に運ばれる値は、規格データ及び非デー
タ信号の扱いをエミュレートするようにマシンの従属制
御信号にアクセスするために使用できる。例えば、スラ
イススタートトークンは2ワードトークンであり、従っ
て、既に述べたように、2線インターフェースに入力さ
れる。
ば、ディスク、テープ等のような、スタートコード検出
器51(図18)内における第1機能ステージに8ビッ
トのデータを供給するあらゆる適当なデータソースから
のデータソースであっても差し支えない。スタートコー
ド検出器は3つのシフトレジスタを有する、即ち、第1
のシフトレジスタは、8ビット幅であり、その次は24
ビット幅であり、そして、その次は15ビット幅であ
る。各々のレジスタは、2線インターフェースの一部で
ある。データソースからのデータは、1つのタイミング
サイクル期間中に、1つの単一8ビットバイトとして第
1レジスタにロードされる。その後で、第1シフトレジ
スタの内容は、一時に1ビットずつ、デコード(第2)
シフトレジスタにシフトされる。24サイクル後に、2
4ビットレジスタは満杯になる。8サイクル毎に、8ビ
ットバイトが、第1シフトレジスタにロードされる。各
バイトは、バリューシフトレジスタ221(図29)に
ロードされ、そして、付加的な8サイクルは、バリュー
シフトレジスタを空にし、そして、シフトレジスタ23
1をロードするために用いられる。シフトレジスタ23
1を空にするためには8サイクルが用いられ、従って、
これらの3オペレーション、または24サイクルの後
で、24ビットレジスタ内にはまだ3バイトがある。バ
リューデコードシフトレジスタ230はまだ空である。
クチャ・スタートワードがあるものと仮定すれば、検出
サイクルは、ピクチャスタートコードパターンを認識
し、そして、その出力としてスタート信号を供給する。
一度、検出器がスタートを検出すれば、それに続くバイ
トは、当該スタートコードと関連した値であり、そし
て、これは、現在バリューレジスタ221にシッティン
グ(sitting)中である。
ドであると識別済みであるので、これ以上プロセシング
が起きないことを保証するために、これらの3バイトを
用いて、2線インターフェースから、この内容を除去し
なければならない。デコードレジスタは空にされ、そし
て、バリューデコードシフトレジスタ230は、当該値
がこの種レジスタまでシフトされるのを待つ。
トレジスタの低位ビット位置の内容は、ピクチャ・スタ
ートと関連した値を含む。標準ピクチャ・スタート信号
と等価の空間デコーダは、SD ピクチャ・スタート信
号と呼ばれる。ここにおいて、SD ピクチャ・スター
ト信号自体はトークンヘッダに含まれようとしており、
そして、この値は、トークンヘッダに対する拡張ワード
に含まれようとしている。 10.トークン 本発明の実現に際して、トークンは、制御、及び/又
は、データ機能に対する対話型インターフェースメッセ
ンジャパッケージの形式の万能順応ユニットであり、そ
して、1つの認識済みトークンに応答して様々なオペレ
ーションを行うためにそれ自体を再構成する1つのステ
ージである再構成可能なプロセシングステージ(RP
S)と共に使用するために改作される。トークンは、様
々な機能を達成するために処理ステージに応じて位置従
属又は位置独立のいずれかであっても差し支えない。更
に、トークンは、処理ステージによって変化させられ、
その次に、更に別の機能を達成するためにパイプライン
を下流方向に供給されるので、変質性であっても差し支
えない。トークンは、ステージの全て又は全てよりも少
ない部分と対話し、そして、この観点からすれば、隣
接、及び/又は、非隣接のステージと対話するた見なし
ても差し支えない。トークンは、幾つかの機能に対して
は位置従属であり、そして、他の機能に対しては位置独
立であっても差し支えなく、そして、或るステージとの
特定の対話は、当該ステージの以前における処理ヒスト
リによって調整可能である。
コーダにおいてピクチャエンドを送信する方法である。
立ハードウェアと制御トークンとの混合体を用いてMP
EG、JPEG、及びH.261データストリームを1
つの単一デコーダにマッピングする方法である。
ス、及び強化されたエラー回復を可能にするMPEG、
JPEG、及びH.261データストリームを検索する
ための技術である。
復号化のクリアエンドを達成する方法であり、ピクチャ
のエンドを送信し、そして、デコーダパイプライン、即
ち、チャネルの変更をクリアする。
サイズ固定幅のバッファを通って任意の数のビットを供
給させる方法である。
使用する可変構成を有するパイプライン処理システムに
向けられる。2線システムと組合わせた制御トークン及
びデータトークンの使用は、制御トークンを使わないシ
ステムと比較して拡張された作動能力を有することを可
能にする多重規格システムの達成を容易にする。
の回路よって生成され、そして、取り扱うために直列パ
イプラインプロセッサ内に供給する多数の異なるタイプ
の規格従属信号のオペレーションをエミュレートする。
直列プロセッサによる処理及び次に示す項目に関する考
察を行うために選定される多重規格の全てのパラメータ
を検討する技術が用いられる。即ち、1)それらの類似
性、2)それらの相違、3)それらの必要性、及び必要
条件、及び4)直列プロセッサに送り込まれる全ての規
格信号を効果的に処理するための正しいトークン機能の
選定。トークンの機能は規格をエミュレートすることで
ある。制御トークン機能は、部分的には規格従属信号間
のエミュレーション/翻訳として、及びパイプラインプ
ロセッサを介して制御情報を伝えるためのエレメントと
して使われる。
格を識別し、そして、マイクロプロセッサインターフェ
ースを用いることによって専用回路を作るために周知の
技術に従って専用マシンが設計される。マイクロプロセ
ッサからの信号は、専用下流コンポーネントを介してデ
ータの流れを制御するために用いられる。この伸長機能
の選択、タイミング、及び組織化は、マイクロプロセッ
サから入来する信号によって援助された固定論理回路に
よる制御の下に行われる。
制御トークンの制御の下に下流機能ステージを構成す
る。MPUからの必要な、及び/又は、代替制御を入手
するためにオプションが提供される。
ッサを介して情報を伝達するための優れたフォーマット
を提供し、そして、作成する。以下に示す好ましい実施
例において選定され、そして、使用される設計において
は、トークンの各ワードの幅は最小限8ビットであり、
そして、1つの単一トークンは、1つ又は複数のワード
を越えて拡張することが出来る。トークンの幅は、可変
であり、そして、ビット数は任意に選定することが出来
る。拡張ビットは、トークンが現行ワードを越えて拡張
されるかどうか、即ち、トークンの最終ワード以外のト
ークンの全てのワードにおけるビットが2進1にセット
されているかどうかを示す。トークンの第1ワードがゼ
ロの拡張ビットを持つ場合には、これは、トークンの長
さは僅かに1ワードであることを示す。
ット7においてスタートするアドレスフィールドによっ
て識別される。アドレスフィールドは、長さが可変であ
って、そして、複数のワードを越えて拡張することが潜
在的に可能である。好ましい実施例において、アドレス
の長さは8ビット以内である。ただし、これは、本発明
における制限条件でなく、これらのトークンの使用によ
って達成されるように選定された処理過程の大きさを意
味する。ワード1及び2における拡張ビットが1つの1
であり、付加ワードの後続を意味することは拡張ビット
識別ラベルによって示されることに注意されたい。ワー
ド3における拡張ビットはゼロであり、従って、当該ト
ークンのエンドを示す。
例えば、9ビットのトークンワードに拡張ビットを加え
て合計10ビットが用いられる。本発明の設計におい
て、出力バスの幅は可変である。空間デコーダからの出
力の幅は9ビットであるか、または拡張ビット含まれる
場合には10ビット出ある。好ましい実施例において、
これらの余分なビットを利用する唯一のトークンはデー
タトークンであり、全ての他のトークンは、この余分な
ビットを無視する。これは、制限条件ではなく、単に実
施例に過ぎないことを理解されたい。
ギュレーションを使用することにより、これらのデータ
トークンによって運ばれつつある1つのワードにおける
ビットの数によって表されるデータの長さを変えること
が可能である。例えば、データトークンのワードにおけ
るデータビットは、この直列伸長プロセッサ全体を通じ
て使用される等速呼出記憶装置にアクセスする際に使用
するために、同一データトークンの他のワードにおける
データビットと組み合わせて11ビット、或いは、10
ビットのアドレスを形成可能であることは検討済みであ
る。これによって、広い範囲に亙り汎用性を持つことを
容易にし、可変性が追加される。
つの処理ステージから次の処理ステージにデータを運
ぶ。従って、このトークンの特性は、デコーダを通過す
る際に変化する。例えば、空間デコーダへの入力におい
て、データトークンは、8ビットワードにパックされた
ビット直列符号化動画データを運ぶ。ここでは、各トー
クンの長さには制限がない。ただし、本発明のこの態様
の汎用性を例示するために(空間デコーダ回路の出力に
おいて)、各データトークンは、ちょうど64ワードを
持ち、そして、各ワードは9ビット幅であるものとす
る。更に詳細には、規格符号化信号は、長さの異なるメ
ッセージに対して、画像の異なる強度および詳細をコー
ド化することを可能にする。グループの第1画像は、プ
ロセシングユニット最多情報を提供する必要があるの
で、通常、最も長い数のデータビットを持つ。結果とし
て、第1画像は、できる限り多くの情報の伸長をスター
トすることが出来る。後続するワードは、走査情報フィ
ールドにおける第2の位置に関して第1ワードと比較し
た場合に違った信号を含むので、一般に、長さが短い。
規格符号化システムの要請に従い、可変量のデータが空
間デコーダの入力に供給されるように、ワードは、相互
に散在させられる。ただし、空間デコーダが機能した後
において、情報は、スクリーン上のディスプレイに適し
たピクチャフォーマットレートにおいてその出力に供給
される。例えば、NTSC、PAL、及びSECAMの
ような様々なディスプレイシステムと全世界に亙ってイ
ンターフェイスするために空間デコーダの時間に関する
出力レートは変化可能である。動画フォーマッティング
部は、この可変ピクチャレートをディスプレイに適した
一定のピクチャレートに変換する。ただし、ピクチャデ
ータは、依然として、64ワードから成るデータトーク
ンによって運ばれる。
能DRAMインターフェースが用いられる。一般に、各
チップ上のDRAMインターフェースは実質的に同じで
ある。ただし、インターフェースは、チャネル優先権を
扱う方法が、相互に異なる。このインターフェースは、
空間デコーダ、時間デコーダ、及び動画フォーマッティ
ング部によって使用される外部DRAMを直接ドライブ
するように設計されている。一般に、DRAMインター
フェースをこれらのシステムのDRAMに接続するに
は、外部のロジック、バッファ、またはコンポーネント
は必要でない。
の2つの方法により構成可能である。1.種々異なるD
RAMタイプを収容するように、詳細なタイミングのイ
ンターフェースを構成することが出来る。
ードオフを提供するように、DRAMへのデータインタ
ーフェースの幅を構成することが出来る。
ステム内の各々3つのチップ上で実現される規格から独
立したブロックである。再び、これらのチップは、空間
デコーダ、時間デコーダ、及び動画フォーマッティング
部である。図18、図19、図20を再度参照すること
とし、これらの図は、DRAMインターフェースと、そ
れぞれ、空間デコーダ、時間デコーダ、及び動画フォー
マッティング部の残りのブロックとの間の関係を表すブ
ロック図である。各チップにおいて、DRAMインター
フェースは外部DRAMにチップを接続する。現在で
は、必要とされる比較的大量のDRAMをチップ上に作
成することは実際的でないので、外部DRAMが使用さ
れる。(注記:各チップは、自身の外部DRAM及び自
身のDRAMインターフェースを持つ。)更に、DRA
Mインターフェイスが圧縮規格独立である場合には、多
重規格H.261、JPEG、及びMPEGの各々を実
現するように、インターフェースを構成しなければなら
ない。多重規格オペレーション用としてのDRAMイン
ターフェースをどのように再構成するかについては、後
で更に詳細に説明される。
ンを理解するには、DRAMインターフェースとアドレ
ス発生器との間の関係、及び2線インターフェースを用
いてこれら両者の間でどのように交信するかということ
を理解することが必要である。
発生器は、DRAMをアドレスするために(例えば、D
RAM内の特定アドレスに対して読み書きを行う場合)
DRAMインターフェースが必要とするアドレスを生成
する。2線インターフェースを使用する場合、DRAM
インターフェースが(パイプラインにおける先行ステー
ジから)双方のデータ、及び有効なアドレス(アドレス
発生器から)を持つ場合に限り読むこと、及び書くこと
が起きる。個別のアドレス発生器の使用は、後で更に検
討するように、アドレス発生器及びDRAMインターフ
ェース両方の構成を簡素化する。
スは、アドレス発生器、および、それを介してデータが
供給されるステージのクロックの両方に同期するクロッ
クから操作可能である。操作の非同期性を扱うためには
特殊な技術が必要とされている。
ースと64バイトのブロックにおけるチップの残りの部
分との間に転送される(時間デコーダにおける予測デー
タだけは唯一の例外である)。転送は、「スイングバッ
ファ」として知られているデバイスによって行われる。
スイングバッファは、本質的に、1つのRAMを満たす
か、或いは、空にし、同時に一方ではチップの他の部品
がもう一方のRAMを空にするか、或いは、満たすDR
AMインターフェースを用いてダブルバッファされたコ
ンフィギュレーションにおいて操作される1対のRAM
である。アドレス発生器からのアドレスを運ぶ個別のバ
スは各スイングバッファと関連する。
スイングバッファを持つが、これらのスイングバッファ
の機能は各場合毎に異なる。空間デコーダにおいては、
1つのスイングバッファは、コード化されたデータをD
RAMに転送すために使われ、も1つのスイングバッフ
ァはDRAMからコード化されたデータを読むために用
いられ、第3のスイングバッファは、トークン化された
データをDRAMへ転送するために使用され、そして、
第4のスイングバッファはトークン化されたデータをD
RAMから読み出すために用いられる。ただし、時間デ
コーダにおいては、1つのスイングバッファは、イント
ラ又は予測ピクチャデータをDRAMに書き込むために
使われ、第2のスイングバッファはイントラ又は予測デ
ータをDRAMから読み出すために用いられ、そして、
他の2つは、前方、及び後方への予測データを読み取る
ために使われる。動画フォーマッティング部において
は、1つのスイングバッファは、データをDRAMへ転
送するために使われ、そして、他の3つは、DRAMか
らデータを読むために使われ、輝度(Y)、及び赤およ
び青の色差データ(各々、Cr、及びCb)用として1
つずつ使用される。 1つの書き込みスイングバッフ
ァ、及び1つの読み取りスイングバッファを有する1つ
の仮想DRAMインターフェースのオペレーションにつ
いて、次のセクションにおいて説明することとする。本
質的に、これは、空間デコーダのDRAMインターフェ
ースのオペレーションと同じである。オペレーションに
ついては図32に示す。
Mインターフェース302、及びデータを供給するチッ
プの残りのステージの間の制御インターフェースは全て
2線インターフェースであることを示す。アドレス発生
器301は、制御トークンを受信する結果としてアドレ
スを生成するか、或いは、単にアドレスの固定したシー
ケンスを生成(例えば、空間デコーダのFIFOバッフ
ァ用)しても差し支えない。DRAMインターフェース
は、アドレス発生器301と関連している2線インター
フェースを特別な方法で扱う。アクセプトラインがアド
レスを受信する準備が整った場合にアクセプトをハイに
保持する代わりに、アドレスラインは、アドレス発生器
による有効なアドレス供給を待ち、当該アドレスを処理
し、そして、1クロック周期に亙ってアクセプトライン
をハイにセットする。このように、リクェスト/肯定応
答(PEQ/ACK)プロトコルが実現される。
特徴は、アドレス発生器301、及びデータを供給、或
いは、受け入れるステージと独立して通信することので
きる能力である。例えば、アドレス発生器は、書込みス
イングバッファ(図33)におけるデータと関連してい
るアドレスを生成しても差し支えないが、しかし、書込
みスイングバッファが外部DRAMへの記入準備が整っ
たデータのブロックが存在することを送信する時までア
クションは行われない。同様に、書込みスイングバッフ
ァは、外部DRAMへの記入準備が整っているものデー
タのブロックを含んでも差し支えないが、アドレスが、
アドレス発生器301から当該バスに供給される時ま
で、アクションは行われない。更に、書込みスイングバ
ッファにおけるRAMの1つが一度データで満たされる
と、データ入力が停動される(2線インターフェース受
け入れ信号がLOWにセットされる)以前に、他のRA
Mは完全に満たされ、そして、DRAMインターフェー
ス側に「スイング」されることもあり得る。
302のオペレーションを理解する際、適切に構成され
たシステムにおいて、DRAMインターフェースは、ス
イングバッファと外部DRAM303との間において、
スイングバッファとチップの残りの部分との間の全ての
平均データレートの合計と少なくとも同等のデータレー
トを以てデータ転送が可能であることに注意することが
重要である。
ちらのスイングバッファが次にサービスするかを決定す
る。一般に、これは、「ラウンドロビン」(roundrobin)
(即ち、次にサービスを受けるスイングバッファは、最
も最近でない順番であった次の利用可能なスイングバッ
ファである)、或いは、優先位エンコーダ(即ち、この
場合、幾つかのスイングバッファが他のものより更に高
い優先位を持つ)のいずれかである。双方の場合に、他
の全てのリクエストより更に高い優先位を持つ追加リク
エストはリフッレシュリクエスト発生器から入来する。
リフレッシュリクエストは、マイクロプロセッサインタ
ーフェースを介してプログラム可能なリフレシュカウン
タから生成される。
図には、書込みスイングバッファの構成図が示される。
書込みスイングバッファインターフェースには、第1R
AM311、及び第2RAM312の2つのブロックが
含まれる。ここで更に検討するように、データは、書込
みアドレス303、及び制御部314による制御の下
で、前のステージからRAM311及びRAM312に
記入される。RAM311、及びRAM312から、デ
ータは、DRAM315に記入される。DRAMへのデ
ータ記入中は、ここで更に説明されるように、DRAM
行アドレスは、アドレス発生器によって供給され、そし
て、列アドレスは、書込みアドレス及び制御部によって
供給される。オペレーションにおいて、有効なデータ
は、入力316に供給される(データイン)。一般に、
データは、前のステージから受け取られる。各々のデー
タは、DRAMインターフェースによって受け入れられ
るにつれて、RAM311に記入され、そして、書込み
アドレス制御部は、RAM311をインクリメントし、
次の1つのデータのRAM311への記入を可能にす
る。データのRAM311への記入は、それ以上データ
が無いか、或いは、RAM311が満杯になるまで、継
続される。RAM311が一杯である場合には、入力側
は、制御を断念し、そして、RAM311の読み取り準
備が整っていることを示すために、信号を読み取り側に
送る。従って、この信号は、2つの非同期クロックレジ
ームの間を供給し、3つの同期化フリップフロップを介
して供給する。RAM312が空であるものと仮定すれ
ば、入力側に到着するデータの次の項目はRAM312
に記入される。そうでない場合には、RAM312が空
になった場合にこれが起きる。ラウンドロビン又は優先
位エンコーダが(特定のチップによってどちらが使用さ
れるか応じて)読み取られる順番に当たるスイングバッ
ファを指示した場合、DRAMインターフェースは、R
AM311の内容を読み、そして、それらを外部DRA
Mに記入する。次に、信号は、非同期インターフェース
を通って後方に送られ、RAM311が再度満杯にされ
る準備が整っていることを示す。
を空にし、そして、入力側がRAM312を満たす以前
に、それを「スイング」する場合には、データのスイン
グバッファによる連続受け入れが可能である。そうでな
い場合には、RAM2が満杯である場合には、スイング
バッファは、RAM311が、入力側による使用のため
に後方に「スイング」されるまで、その受け入信号をロ
ーにセットする。
のオペレーションは、入力データと出力データが反転す
る点を除けば、同じである。
用可能なメモリーバンド幅を最大限にするように設計さ
れている。データの各8×8ブロックは、同一DRAM
ページに記憶される。このようにして、DRAM高速ペ
ージアクセスモードを完全に利用できる。この場合、1
つの行アドレスが供給され、多くの列アドレスがこれに
続く。特に、行アドレスは、アドレス発生器によって供
給されるが、列アドレスは、後で検討するように、DR
AMインターフェースによって供給される。更に、外部
DRAMへのデータバスの幅が8、16、または32ビ
ットであることを可能にする機能が提供される。従っ
て、DRAMの使用量は、特定用途のサイズ及びバンド
幅必要条件にマッチさせることができる。
上のDRAMインターフェースがどのように作動するか
と言うこと)、アドレス発生器は、読み取り、及び書込
みスイングバッファの各々に対するブロックアドレスを
DRAMインターフェースに供給する。このアドレス
は、DRAMのための行アドレスとして使われる。6ビ
ットの列アドレスは、DRAMインターフェース自体に
よって供給され、そして、これらのビットは、スイング
バッファRAMのためのアドレスとして同様に使われ
る。スイングバッファへのデータバスの幅は32ビット
である。従って、外部DRAMへのバス幅が32ビット
未満である場合には、2或いは4の外部のDRAMアク
セスは、書込みスイングバッファから次のワードが読み
取られる以前、或いは、次のワードが読み取りスイング
バッファに記入される以前に、行われなければならない
(読取り、及び書込みは、外部DRAMに対する転送の
方向を意味する)。
グ部の場合においては、条件は更に複雑である。時間デ
コーダのアドレッシングは、このセクションにおいて更
に検討するようにその予測的態様のために、更に複雑で
ある。動画フォーマッティング部に関して本セクション
において更に検討されるように、多重動画出力規格態様
のために、動画フォーマッティングのアドレッシングは
更に複雑である。
スイングバッファを持つ。その中の2つは復号化済みイ
ント及び予測(Iお呼びP)ピクチャデータの読み取り
及び書き込みを実行するために用いられる。これらは、
既に説明したように作動する。もう一方の2つは、予測
データを受け取るために使われる。これらのバッファは
更に興味深い。
クトルにx及びyとして指定されているように、処理済
みブロックの位置から偏る。従って、検索されるべきデ
ータブロックは、符号化された(そしてDRAMに書き
込まれた)ので、一般に、当該データのブロック境界と
一致しない。これは、図34に示すように、陰を付けた
部分は形成されつつあるブロックを表し、点線で示すア
ウトラインは、それに基づいて予測がなされつつあるブ
ッロックを表す。アドレス発生器は、モーションベクト
ルによって指定されたアドレスを、大きい矢印で示すよ
うに、オフセットされたブロック(ブロックの全数)に
変換し、また、小さな矢印によって示すようにオフセッ
トされたピクセルに変換する。
索されるべきブロックのアドレスを形成するために、フ
レームポインタ、ベースブロックアドレス、及びベクト
ルオフセットが加えられる。ピクセルオフセットがゼロ
である場合には、ただ1つのリクエストが生成される。
x又はy次元のいずれかにオフセットがある場合には、
2つのリクエスト、即ち、もとのブロックアドレス及び
直ぐ下のブロックアドレスが生成される。x及びyにオ
フセットのある場合には、4つのリクエストが生成され
る。検索されるべき各々のブロックに関して、図の例に
最もよく示されているように、アドレス発生器は、スタ
ート、及びストップアドレスを計算する。
セット(1,1)について考察することとする。アドレ
ス発生器は、図においてAからDまでにラベル表示され
る4つのリクエストを作る。解決すべき問題は、行アド
レスの所要のシーケンスをいかに高速に供給するかと言
うことである。解答は、次に示すように「スタート/ス
トップ」技術を使用することである。
とする。読み取りは、位置(7,7)においてスタート
し、位置(1,1)において終了しなければならない。
現段階において、一時に1バイトが読み取られつつある
ものと仮定する(即ち、8ビットDRAMインターフェ
ース)。座標対におけるx値は、アドレスの3つのLS
Bを形成し、y値は3つのMSBを形成する。x及びy
スタートバリューは双方共に1であり、アドレスに9を
提供する。データはこのアドレスから読み取られ、そし
て、x値はインクリメントされる。プロセスは、x値が
そのストップバリューに到達する時まで繰り返され、到
達した時点において、yバリューは1だけインクリメン
トされ、そして、xスタートバリューは再ロードされ、
1つのアドレス17を与える。データの各バイトが読み
取られるにつれて、xバリューは、ストップバリューに
到着するまで、再びインクリメントされる。x及びyの
両バリューがそれらのストップバリューに到達するま
で、プロセスは繰り返される。このようにして、9、1
0、11、12、13、14、15、17...23、
25、…、31、33、…、57、…、63のアドレス
シーケンスが生成される。
スタート及びストップ座標は(1、0)及び(7、0)
であり、ブロックCに対しては(0、1)及び(0、
7)であり、、そして、ブロックDに対しては(0、
0)及び(0、0)である。
かである。明らかに、ブロックAを観察すれば、アドレ
ス9から読み取られたデータは、スイングバッファのア
ドレス0に記入されなければならず、アドレス10から
のデータは、スイングバッファのアドレス1に記入され
なければならない。等々。同様に、ブロックBにおける
アドレス8から読み取られたデータは、スイングバッフ
ァにおけるアドレス15に記入されなければならず、そ
して、アドレス16からのデータは、スイングバッファ
におけるアドレス15に記入されなければならない。こ
の機能は、次に概説するように、非常に簡単に実現でき
る。
読取り開始に際して、スイングバッファアドレスレジス
タは、ストップバリューの逆値がロードされる。yの逆
ストップバリューは3つのMSBを形成し、そして、x
の逆ストップバリューは3つのLSBを形成する。この
場合、DRAMインターフェースは外部DRAMにおけ
るアドレス9を読みつつあるが、スイングバッファアド
レスはゼロである。表500「予測アドレッシング」に
示すように、外部DRAMアドレスレジスタがインクリ
メントされるにつれて、スイングバッファアドレスレジ
スタもインクリレメントされる。
ターフェースに集中してきた。16または32ビットイ
ンターフェースの場合には、2、3のささいな修正が行
われなければならない。最初に、ピクセルオフセットベ
クトルは、それが16または32ビット境界を指すよう
に「クリップ」しなければならない。ここで用いてきた
例において、ブロックAに関しては、読み取られた第1
のDRAMはアドレス0を指し、そして、アドレス0か
ら3までのデータが読み取られる。2番目に、不要デー
タは放棄されなければならない。これは、データ全てを
スイングバッファに書き込み(この場合、スイングバッ
ファは、8ビットの場合に必要であったよりも物理的に
差に大きくなければならない)、そして、オフセットと
共に読み取ることにより遂行される。MPEG半画素補
間を実施する場合には、x及び/又はyにおける9バイ
トが、DRAMインターフェースから読み取られなけれ
ばならない。この場合、アドレス発生器は、適切なスタ
ート及びストップアドレスを提供する。DRAMインタ
ーフェースにおいてはいくらかの付加ロジックが用いら
れるが、しかし、DRAMインターフェースが作動する
方法には基本的な変化はない。 本発明の時間デコーダ
DRAMインターフェースに関して注意すべき最後の点
は、データに関してどのような処理を実施することが必
要とされるかを示すために、予測フィルタに付加情報が
提供されなければならないことである。必要な処理の内
容を次に示す。
の最後のバイトを示す「最終バイト信号」。
9バイト)を示す2つのビット。
号。
るにつれて、最終バイトフラグが生成可能である。他の
信号は、アドレス発生器から得られ、そして、予測フィ
ルタブロックによってデータがスイングバッファから読
み出されるにつれて、信号がデータの正しいブロックと
組合わされるように、DRAMインターフェースを経て
パイプに通される。
タは、ブロックにおける外部DRAMに記入されるが、
しかし、ラスタ順に読み出される。書き込みは、空間デ
コーダに関して既に説明した場合と全く同じであるが、
しかし、読取りは少しだけ更に複雑である。
るデータは、少なくとも8つのブロックのデータが1つ
の単一ページに適合するように組織される。これら8つ
のブロックは8つの連続した水平ブロックである。ラス
タ化に際して、8つの連続したブロックの各々から8つ
のバイトが読み出され、そして、スイングバッファに記
入されることが必要である(即ち、8ブロックの各々に
おける同じ列)。
て、1バイト幅のインターフェースを仮定する)、yア
ドレス(3MSBS)の場合と同様にxアドレス(3L
SBS)はゼロにセットされる。次に、最初の8バイト
が各々読みとられるにつれて、xアドレスはインクリメ
ントされる。この時点において、アドレスの上位部分
(ビット6及びそれ以上―LSB=ビット0)のトップ
部品はインクリメントされ、xアドレス(3LSBS)
はゼロにリセットされる。64バイトが読み出されるま
で、このプロセスは繰り返される。外部DRAMへのイ
ンターフェース幅が16または32ビットである場合に
は、xアドレスは、1だけインクリメントされる代わり
に、単に、それぞれ2又は4だけインクリメントされ
る。
み取られるが、アドレス発生器は、64バイト未満が読
み取られなければならないことを、DRAMインターフ
ェースに送信することができる(これは、ラスタライン
の開始または終了に際して必要とされことがある)。こ
れは、スタート及びストップバリューを使用することに
よって達成される。スタートバリューは、アドレスのト
ップ部分用に使われる(ビット6以上)そして、読取り
が停止されなければならない時を示す信号を生成するた
めに、ストップバリューは、スタートバリューと比較さ
れる。
ック周期の4分の1の精度に置くために、本発明におけ
るDRAMインターフェースタイミングブロックはタイ
ミングチェーンを使用する。位相クロックされたループ
から得られる2つの直交クロックが用いられる。これら
のクロックは、組合わされて、概念上の2xクロックを
形成する。従って、あらゆる1つのチェーンは、並列接
続された2xクロックと反対の位相を持つ2つのシフト
レジスタによって作られる。
して1つのチェーンがあり、そして、いま1つのチェー
ンは、リード/ライト/リフレッシュサイクル用であ
る。各サイクルの長さは、マイクロプロセッサインター
フェースを介してプログラム可能であり、その後におい
て、ページスタートチェーンは固定した長さを持ち、そ
して、ページスタートの期間中に、サイクルチェーンの
長さは適宜変化する。
そして、パルスが作られる。パルスは、チェーンに沿っ
て移動し、そして、DRAMインターフェースからの状
態情報によって方向付けされる。パルスは、DRAMイ
ンターフェースクロックを生成する。各DRAMインタ
ーフェースクロック周期は、DRAMの1つのサイクル
と一致する。従って、DRAMサイクルの長さが異なる
場合には、DRAMインターフェースクロックは定速で
はない。
チェーンからのパルスをDRAMインターフェースから
の情報と組み合わせ、例えば、notcas、notr
as、notwe、notbeのような出力ストローブ
及びイネイブルを生成する。12.予測フィルタ再び図
19、図20、図21において、そして、更に詳細には
図40において、時間デコーダの構成図が示される。こ
れには、予測フィルタが含まれる。予測フィルタと時間
デコーダの残りのエレメントとの間の関係を図26に更
に詳細に示す。予測フィルタの構造の本質は、図27及
び図37に示される。予測フィルタのオペレーションに
関する詳細な記述は、本セクションの「発明の更に詳細
な記述」に記載されている。
MPEG及びH.26lモードにおいて使用されるが、
JPEGモードでは使用されない。JPEGモードにお
ける場合を思い起こされたい。即ち、時間デコーダは、
空間デコーダによって達成される範囲を越えて一切の実
質的な復号化を行うことなく、動画フォーマット部を通
ってデータを供給させるに過ぎない。再び図27を参照
することとし、MPEGモードにおいて、フォーワー
ド、及びバックワード予測フィルタは同じであり、そし
て、それぞれのMPEGフォーワード、及びバックワー
ド予測ブロックを濾過する。ただし、H.261はバッ
クワード予測を使わないので、H.261モードにおい
ては、フォーワード予測フィルタのみが使われる。
質的に同じである。再び図17及び505を参照するこ
ととし、更に詳細には図37を参照することとする。図
には、予測フィルタの構造のブロック図が示される。各
予測フィルタは、直列配置された4つのステージを有す
る。データは、フォーマットステージ505−7に入力
され、そして、容易にろ過され得るフォーマットにされ
る。次のステージ505−2において、I−D予測が、
X座標上で行われる。必要な輸送が次元バッファステー
ジ505−3によって行われた後で、I−D予測は、ス
テージ505−4におけるY座標上で行われる。ステー
ジがどのようにして濾過作用を実施するかについて更に
詳細に説明することとする。濾過作用に要求される条件
については圧縮規格によって定義されている。H.26
1の場合において、現実に行われる濾過作用は、ローパ
スフィルタの場合に類似する。
ションは、MPEG又はH.261フィルタリングのい
ずれかを遂行するために予測フィルタは再構成可能であ
るか、或いは、JPEGモードにおいては全く濾過作用
を実施しないことを必要とする。3チップシステムの他
の多くの再構成可能な態様と同様に、予測フィルタは、
トークンによって再構成される。トークンは、アドレス
発生器にオペレーションの特定モードについて通知する
ためにも使用される。この場合、アドレス発生器は、M
PEGとJPEGとの間では著しく変化する必要なデー
タのアドレスを予測フィルタに供給することができる。
セッサインターフェース(MPI)における大抵のレジ
スタは、当該インターフェースが関連しているステージ
が停止している場合に限り、修正可能である。従って、
レジスタのグループは、一般に、アクセスレジスタと関
連している。アクセスレジスタにおける値がゼロである
場合には、特定の当該アクセスレジスタと関連している
レジスタのグループは、修正してはならない。1をアク
セスレジスタに記入すると、ステージが停止されること
を要求する。ただし、ステージは即座に停止出来ないの
で、従って、ステージアクセスレジスタは、停止される
まで、値ゼロを保持する。
機能を遂行するために用いられるあらゆるユーザーソフ
トウェアは、「1をリクエストアクセスレジスタに記入
する後において」アクセスレジスタから1が読み取られ
る時まで待たねばならない。ユーザーが1つの値をコン
フィギュレーションレジスタに記入する場合には、これ
と同時に、そのアクセスレジスタがゼロにセットされる
まで、結果は不明である。
ス 空間デコーダ及び時間デコーダにおける全ての回路にお
いて、規格バイト幅を持つマイクロプロセッサインター
フェース(MPI)が用いられる。MPIは、様々な空
間、及び時間デコーダクロックと共に非同期的に動作す
る。表37を参照して、この表には、このインターフェ
ースにおいて用いられる様々なMPI信号が示される。
信号のキャラクタは、入力出力欄に示され、信号の名前
は、信号名欄に示され、そして、信号機能の説明は記述
欄に示される。MPIの電気仕様は表38に関して示さ
れる。全ての仕様はタイプ別に分類され、そして、記号
欄には3つのタイプが示される。これらの記号が何を表
すかについては、パラメータ欄に示される。現実の仕様
は、それぞれの欄に、最小、最大、及び単位において示
される。
る。欄の見出しは、表38の場合と同じである。DC電
気特性は、表40に関して示され、そして、表38、及
び表39の場合と同じ欄題が用いられる。
62に関して示す。図の各ラインは、対応する信号名に
よってラベル付され、そして、タイミングはナノセカン
ドで示す。完全なマイクロプロセッサインターフェース
のリードタイミング特性は、表41に関して示す。欄番
号は、特性欄に記載された信号名に対応する信号を示
す。MIN、及びMAXによって識別された欄は、当該
信号が利用可能な時間の最大量を示す時間の最小長さを
提供する。単位欄は、信号について説明するために用い
られた測定単位を示す。
は、図63に関して示される。この図は、MPIライト
タイミングと関連した各個別信号名を示す。名前、信号
の特性、及び他の様々な物理的特性は、表42に関して
示される。
は、キーホールレジスタの後ろに配置されている。キー
ホールレジスタは、それと関連している2つのレジスタ
を持つ。第1のレジスタは、キーホールアドレスレジス
タであり、そして、第2のレジスタは、キーホールデー
タレジスタである。キーホールアドレスは、拡張アドレ
ススペース内の場所を指定する。キーホールデータレジ
スタへの読取りまたは書込みオペレーションは、キーホ
ールアドレスレジスタによって指定された場所にアクセ
スする。キーホールデータレジスタにアクセスした後
で、関連キーホールアドレスレジスタはインクリメント
する。拡張されたアドレススペース内のランダムアクセ
スは、各アクセスに対して、キーホールアドレスレジス
タに新しい値を書き込むことによってのみ可能である。
本発明の範囲内の回路は、複数のキーホールマップ持つ
こともあり得る。それにもかかわらず、異なるキーホー
ル間の対話はない。
使われる空間デコーダの全般的な構成図を示す。ピクチ
ャ・エンドの機能に関する記述は、この構成図全体に亙
って適用される。ピクチャ・エンド機能は、H.261
符号化ピクチャ情報、MPEG及びJPEG信号を扱う
ことができるという多重規格における利点を有する。
図は、既に説明した2線インターフェースによって相互
接続される。各々の機能ブロックは、図17に関して示
すステートマシンコンフィギュレーションに基づいて作
動するように配列されている。
は、ピクチャ・エンド制御トークンを生成するスタート
コード検出器において開始する。ピクチャ・エンド制御
トークンは、スタートアップ制御回路を経て、変更され
ないまま、DRAMインターフェースに供給される。こ
の場合、前記トークンは、DRAMインターフェースに
おけるライトスイングバッファをフラッシュするために
用いられる。スイングバッファの内容は、このバッファ
が満杯になった場合に限りRAMに書き込まれることを
思い起こされたい。ただし、バッファが満杯でない点に
おいても終了し、ピクチャデータの固着を起こさせるこ
ともあり得る。ピクチャ・エンドトークンは、データを
スイングバッファの外に強制する。
マシンは、各圧縮規格に対して異なって動作する。更に
詳細には、マシン従属アクションサイクルに従って作動
する場合について十分に説明することとする。各圧縮規
格に対して、制御トークン、及び/又は、MPUからの
出力信号の組合わせにより、利用可能な全アクションサ
イクルの合計数を選定することが可能であり、或いは、
利用可能な全アクションサイクルの合計数は、制御トー
クン自体の設計によっても選定可能である。この点に関
して、本発明は、全ての情報が上流のブロックに収集さ
れてしまうまで、情報が次のブロックに入ることを延期
させるように組織されている。データを次のステージま
で供給させる準備が整うまで、システムは待機する。こ
のようにして、ピクチャ・エンド信号は、コード化され
たデータバッファに供給され、そして、ピクチャ・エン
ド信号の制御部分は、データバッファの内容の読み取り
引き起こし、そして、ハフマンデコーダ及び動画デマル
チプレクサ回路に供給される。
は、ハフマンデコーダデマルチプレクサによる使用に関
して、ハフマンデコーダ及び動画デマルチプレクサ回路
に供給される信号の一般的に予測される全範囲、及び/
又は、数を持ったことが無い場合であっても、ピクチャ
の終端をこの制御トークンが識別することである。この
条件において、コード化されたデータバッファに保持さ
れている情報は、完全ピクチャとして、ハフマンデコー
ダ、及び動画デマルチプレクサに供給される。このよう
にして、ハフマンデコーダ、及び動画デマルチプレクサ
のステートマシンは、システム設計に応じて依然として
データを扱うことができる。
は、オフチップDRAM、またはスイングバッファに浮
遊情報が不用意に残留しないように、コード化データバ
ッファを完全に空にするその能力である。
エラー回復におけるその用途である。例えば、コード化
データバッファに保持されているデータの量が1つの単
一画像に関して空間情報を示すために一般的に用いられ
る量よりも少ないものと仮定すると、最後の画像は、ス
イングバッファが満杯になるまでデータバッファに保持
されるが、しかし、定義によれば、バッファは決して満
杯にならない。或る点において、マシンは、エラー条件
が退去することを決定する。従って、ピクチャ・エンド
トークンは、復号化され、そして、コード化データバッ
ファにおけるデータがハフマンデコーダ及び動画デマル
チプレクサに供給されるように強制する範囲内におい
て、最後の画像は復号化可能であり、そして、情報はバ
ッファから空にされる。結果的に、マシンは、エラー回
復モードに入らず、そして、コード化されたデータの処
理を首尾よくし継続する。
の利点は、直列パイプラインプロセッサが割り込みなし
データの処理を継続することである。ピクチャ・エンド
トークンを使用することにより、直列パイプラインプロ
セッサは、予測された量未満のデータを扱うように構成
され、そして、その結果として、処理を継続する。一般
に、先行技術によるマシンは、エラー条件に起因して停
止する。既に述べたように、コード化データバッファ
は、その記憶領域にマクロブロックが入来するにつれて
これらをカウントする。更に、ハフマンデコーダ及び動
画デマルチプレクサは、一般に、各画像を復号化する際
に予測される情報量を知っている、即ち、ハフマンデコ
ード及び動画デマルチプレクサのステートマシン部分
は、各画像回復サイクル期間中に処理するブロック数を
知っている。正しい数のブロックがコード化データバッ
ファから到着しない場合には、一般に、エラー回復ルー
チンが結果として成立する。ただし、ハフマンデコーダ
及び動画デマルチプレクサを再構成するピクチャ・エン
ド制御トークンを用いることにより、この制御トークン
は、再構成によって、マンデコーダ及び動画デマルチプ
レクサに実際に適切な量の情報を扱いつつあることを告
げるので、機能し続けることができる。
マネージャーのトークンデコーダ部分は、スタートコー
ド検出器によって生成されたピクチャ・エンド制御トー
クンを検出する。正常作動状態においては、既に述べた
ように、スイングバッファの正常なオペレーションに関
して、バッファレジスタは、満杯になり、そして、空に
される。再び、データで部分的に満ちているスイングバ
ッファは、スイングバッファが完全に満たされるまで、
及び/又は、空になる時間を知る時まで、空にならな
い。ピクチャ・エンド制御トークンは、バッファマネー
ジャのトークンデコーダ部分において復号化され、そし
て、部分的に満ちているスイングバッファの中味をコー
ド化データバッファに流す。これは、究極的に、直接、
或いは、DRAMインターフェースを介して、ハフマン
デコーダ、及び動画デマルチプレクサへ供給される。
ュトークンに関連したその機能である。フラッシュトー
クンは、ステートマシンの再構成制御、或いは、システ
ムへのデータパスのいずれとも関連しない。むしろ、こ
のトークンは、マシン従属のステートマシンによって扱
うために、前の部分的信号を完全なものにする。各々の
ステートマシンは、フラッシュ制御トークンを、処理さ
れてはならない情報として認識する。従って、フラッシ
ュトークンは、コード化データバッファの残りの空の部
品の全てを満たすために使われ、そして、情報の十分な
集合がハフマンデコーダ及び動画デマルチプレクサに送
られることを可能にするために使用される。このよう
に、フラッシュトークンは、バッファに対してパディン
グ様に作用する。
は、フラッシュトークンを認識し、そして、フラッシュ
トークンがそれに押し込んだ偽りのデータを無視する。
次に、ハフマンデコーダは、ピクチャ・エンドトークン
及びフラッシュトークンの到着前に存在する場合に最後
のピクチャバッファのデータ内容にのみ作用する。ピク
チャ・エンドトークン単独の、或いは、フラッシュトー
クンと組合わされた用途の更なる利点は、ハフマンデコ
ーダ回路の再構成、及び/又は、再組織である。ピクチ
ャ・エンドトークンの到着に際して、ハフマンデコーダ
回路は、最後の画像を復号化するために通常予測される
情報より少ない情報を持つことを知る。ハフマンデコー
ド回路は、最後の画像に含まれる情報の処理を終了し、
そして、この情報をDRAMインターフェースを介して
逆モデラーへ出力する。最後の画像の識別に際して、ハ
フマンデコーダは、クリーンナップモードになり、そし
て、次の画像情報の到着に対して再調整する。
プロセッサ全体を通って供給するため、そして、バッフ
ァは空であること、及び他の回路が新しいデータの到着
を待つように再構成されるということを保証するために
使用される。更に詳細には、本発明は、ピクチャ・エン
ドトークンの組合せ、パディングワード、及び現行ピク
チャのフォームに対する画像処理が完成することを直列
パイプラインプロセッサに指示するフラッシュトークン
を有する。その後において、様々なステートマシンは、
新しく扱うために新しいデータの到着を待つように再構
成することを必要とする。更に、フラッシュトークン
は、システムに対して、特殊リセットとして作用するこ
とに注意されたい。フラッシュトークンは、通過に際し
て、各ステージをリセットする。しかし、次のステージ
の処理継続を可能にする。これは、データの損失を防止
する。換言すれば、フラッシュトークンは、絶対的リセ
ットとは対照的に可変リセットである。
ンにおける論理的な点において直列パイプラインの伸長
回路を閉鎖するために用いられる。この時点において、
ピクチャ・エンドトークンが生成され、データがデータ
入力ラインからの入来を完了、そして、パディングオペ
レーションが完成したことを示す。パディング機能は、
空のデータトークンを部分的に満たす。次に、フラッシ
ュトークンは、生成され、直列パイプラインシステムを
通って供給し、そして、レジスタから全ての情報を押し
出し、、そして、レジスタがそれらの中立スタンバイ状
態に戻ることを強制する。次に、ストップ・アフタ・ピ
クチャイベントが生成され、そして、ユーザ又はシステ
ムのいずれかがこの状態をクリアする時まで、入力は受
け入れられない。換言すれば、ピクチャ・エンドトーク
ンはピクチャの終了を送信し、同時に、ストップ・アフ
タ・ピクチャオペレーションは、全ての現行処理が終わ
ったことを送信する。
るように直列パイプラインプロセッサへの入力を再構成
するために用いられるSEARCHNODE制御トーク
ンの使用である。サーチモードがセットされている場
合、スタートコード検出器は、特定のスタートコード、
或いは、圧縮規格の任意の1つに使用されるマーカのみ
を探索する。ただし、他のデータビットストリームから
の他のイメージをこの目的のために使用できることを理
解されたい。従って、これらのイメージは、本発明全体
に亙って、制御トークンの組合わせ、及び同様の処理を
提供するために再構成回路と共にデータトークンを使う
ことが可能である他の実施例に変更するために使用でき
る。
に示す場合を含む多くの条件において便利である、即
ち、1)データビットストリームの切断が起きた場合、
2)ユーザが意図的にチャネルを変えることによりデー
タビットストリームを切断する場合、例えば、ケーブル
搬送圧縮デジタル動画によるデータの到着、或いは、
3)例えば、光学ディスク、または動画ディスクのよう
な制御可能なデータソースからの高速な順方向または逆
方向のユーザ作動化による場合。一般に、サーチモード
は、直列パイプラインの正常な処理をマシンが割込みを
予測しない点においてユーザが中断する場合に便利であ
る。
れている場合、スタートコード検出器は、マシン独立ト
ークンを作るために適した入来するスタートイメージを
捜す。規格従属スタートイメージの識別以前にスタート
コード検出器に入来する全てのデータは、無意味であ
り、そして、マシンがこの情報を待っている場合にマシ
ンはアイドリング状態であとして、放棄される。
ギュレーション構成の任意の1つを仮定可能である。例
えば、これらのコンフィギュレーションの1つは、ピク
チャのグループ或いはより高位のスタートコードに関す
る探索を可能にする。このパターンによって、スタート
コード検出器は、その全ての入力を放棄し、そして、グ
ループスタート規格イメージを捜す。この種のイメージ
が識別される場合には、スタートコード検出器は、グル
ープスタートトークンを生成し、そして、サーチモード
は自動的にリセットされる。
動画デマルチプレクス回路は、規格独立セットアップ信
号を含む入力信号、並びに、コーディング・スタンダー
ド信号の組合わせと共に作動することに注意することが
重要である。コーディング・スタンダード信号は、ハフ
マンデコーダ、及び動画デマルチプレクス回路による要
請に従って、入って来るビットストリームから直接に情
報を伝達しつつある。ただし、一方では、ハフマンデコ
ーダ、及び動画デマルチプレクス回路は、規格独立シー
ケンス信号のオペレーションの下に機能する。
あり、そして、規格従属入力をハフマンデコーダ及び動
画デマルチプレクサに運ぶ際に実際の信号自体を運ぶ代
りに特殊制御トークンが用いられるように設計できたの
で、このオペレーションモードが選定された。
そして、3つ全ての規格に対して同じである。一般に、
トークンバッファにおけるデータトークンは、量子化さ
れた係数の値に関する情報、及び表示される係数の間の
ゼロの数に関する情報を含む(ランレングス符号化の1
つの形)。本発明の逆モデラは、トークンと共に使用す
るように適応させられており、そして、各データトーク
ンが必須条件としての64バリューを含むようにゼロの
実行に関する情報を簡単に拡大する。その後における、
データトークン内の値は、逆量子化器によって使用でき
る量子化された係数である。
とされるエレメントであるが、ICセット全体が多重規
格データを扱うことができるような方法において実現さ
れた。更に、逆量子化器は、トークンと共に使用できる
ように適応済みである。逆量子化器は、逆モデラと逆D
CT(IDCT)との間に配置される。例えば、本発明
において、逆量子化器における加算器は、データがID
CTに移動する以前に、画素デコード数に定数を加える
ために使われる。
いられる各規格に応じて変化する画素復号化数を使う。
情報を正しく復号化するために、データがIDCT入り
を継続する以前に逆量子化器によって値1024がデコ
ード数に加算される。
を標準化するために既に逆量子化器内に所在する加算器
を使用することにより種々の規格によって圧縮されたデ
ータを扱うためにICに回路またはソフトウェアを追加
する必要性を排除する。多重規格オペレーション用の準
備整える他のオペレーションは、「量子化後機能」の期
間中間に行われ、後で検討することとする。
れ、そして、逆量子化器によって行われることが必要な
様々な標準化ルーチンは、以下において詳細に識別され
る。これらの「量子化後」機能は全て、回路の重複を回
避し、そして、ICが多重規格復号化データを扱うこと
ができるように実現される。
文解析器) 再び図18及び図36を参照することとし、空間デコー
ダは、様々な圧縮規格に従ってハフマンコード化された
データを復号化するためのハフマンデコーダを有する。
規格JPBG、MPEG、及びH.261の各々は、特
定のデータがハフマン符号化されていることを要求する
が、一方において、各規格が要求するハフマン復号化法
の相違は重要な意味をもつ。本発明の空間デコーダにお
いては、各規格に対して1つずつ合計3つの個別ハフマ
ンデコーダを設計して作成する事なく、本発明は、各ハ
フマンデコーダの共通態様を識別し、そして、これらの
共通態様のみを1度だけ作成することにより、貴重なダ
イスペースを節約する。更に、賢明な多重部品アルゴリ
ズム、即ち、他の規格に対して共通性を持つ各ハフマン
デコーダの態様の共通性を一層強化するようなアルゴリ
ズムが用いられる。要約すれば、ハフマンデコーダ32
1は、図36に示す他のユニットと共に作動する。これ
らの他のユニットとは、パーザステートマシン322、
インシフタ323、データインデックスユニット32
4、ALU325、及びトークンフォーマッティング部
326である。既に述べたように、これらのブロックの
間の接続は、2線インターフェースによって管理され
る。これらのユニットがどのように機能するかというこ
とについては続いて更に詳細に記述することとし、ここ
では、本発明に基づくハフマンデコーダの多重規格オペ
レーションを支援する特定の態様に焦点を合わせて説明
する。
ーザの他のブロックのオペレーショを統合するように作
用するプログラム可能なステートマシンである。パーザ
ステートマシンは、データに応答して、データと並列配
置されて他のブロックへ供給される制御ワードを生成す
ることにより、この制御ワードが作用する他のブロック
を制御する。ブロックは2線インターフェースを介して
接続されるので関連データと並置して制御ワードを供給
することは、有用であるばかりでなく、必須である。こ
のように、データとコントロールは同時に到着する。制
御ワードの通過は、制御ラインによって図36に示すよ
うに、ブロックを接続するデータラインの下を通る。特
にこのコードワードは、復号化されつつある特定の規格
を識別する。
遂行する。特に、ハフマンデコーダ321は、データイ
ンデックス部324及びALU325の特定の機能を制
御できるステートマシンを含む。ハフマンデコーダによ
るこれらのユニットの制御は、ブロックレベル情報を正
しく復号化するために必要である。パーザステートマシ
ン322にこれらの決定を行わせると時間がかかり過ぎ
る。
は、データビットをハフマンデコーダに読み取る際にコ
ード化されたデータビットを反転する能力である。この
能力は、H.261ハフマンスタイルコードを復号化す
るために必要とされる。理由は、H.261(実質的に
は、MPEG)によって用いられる特定タイプのハフマ
ンコードは、JPEGによって用いられるコードと反対
の極性を持つことによる。従って、インバータを使用す
ることにより、ハフマンデコーダが使用する表と同一の
表を3つ全ての規格に対して実質的に使用可能にする。
ハフマンデコーダが3つ全ての規格を実現する方法の他
の態様については、「発明の更に詳細な説明」のセクシ
ョンにおいて更に詳細に説明する。
重部品アルゴリズムの第2の部分を遂行する。このユニ
ットは、実際のハフマン復号化データを提供するルック
アップテーブル(参照用表)を含む。この表へのエント
リは、ハフマンデコーダによって生成されたインデクス
数に基づいて組織される。
残りの部分を実現する。特に、ALUは、符号拡張を扱
う。更に、ALUは、ベクトル予測及びDC予測を保持
するレジスタファイルを含む。このファイルの使用につ
いては、予測フィルタに関係したセクションにおいて記
述する。更に、ALUは、空間デコーダによって復号化
されつつあるピクチャの構造を介してカウントするカウ
ンタを含む。特に、ピクチャの次元は、カウンタと関連
するレジスタにプログラムされ、「ピクチャ・スター
ト」、及びマクロ‐ブロックコード開始の検出を容易に
する。
326(TF)は復号化されたデータをデータトークン
にアセンブルする。これらのトークンは、次に、時空間
デコーダにおける残りのステージまたはブロックに供給
される。
ード検出器を供給するデータを緩衝するFIFOからデ
ータを受け取る。インシフタが受け取るデータには、一
般に、2つのタイプがある、即ち、「トークン」のセク
ションにおいて更に検討されるように、データトーク
ン、及びスタートコード検出器によってそれぞれのトー
クンと交換されるスタートコードである。データの殆ど
は、復号化を必要とするデータトークンであることに注
意されたい。
にデータを供給する一方、制御トークンを並列に供給す
る。ハフマンデコーダにおいて、ハフマン符号化された
データは、多重部品アルゴリズムの第1の部分に従って
復号化される。特に、特定のハフマンコードは、識別さ
れ、次に、インデクス数と交換される。
他のブロックによる特別な扱いを必要とする特定のデー
タを識別する。このデータは、ブロックエンド及びエス
ケープを含む。本発明において、時間は、データインデ
ックスユニットにおいてではなく、ハフマンデコーダに
おいてこれらを検出することによって節約される。次
に、このインデクス数は、データインデックスユニット
324に供給される。データインデックスユニットは、
本質的には、ルックアップテーブルである。アルゴリズ
ムの1つの態様に基づくルックアップテーブルは、JP
EGによって指定されたハフマンコードテーブルと大差
無い。一般に、概して、それは、JPEGが代替JPE
G表を転送するために指定するフォーマットは圧縮デー
タフォーマットである。
ータは、データインデックスユニット324から、付随
制御ワードと共に、既に述べたオペレーションを実施す
るALU 504−5に供給される。
らトークンフォーマット部326(TF)に供給され
る。トークンフォーマット部において、データは、必要
に応じて、トークンを形成するために、制御ワードと組
合わされる。次に、トークンは、空間デコーダのその次
のステージに運ばれる。この時点において、システムに
よって使われると同数のトークンがあることに注意され
たい。
該ピクチャのDC成分の周波数に関係したデータを伸長
する。特定のピクチャが圧縮されつつある場合、ピクチ
ャにおける光の周波数(振動数)は量子化され、記憶す
る必要のある情報の全体量を減少させる。IDCTは、
この量子化されたデータを用いて、それを伸長し、周波
数情報に戻す。
るピクチャの部分に作用する。このデータに適用された
数学は、データをコード化するために用いられる特定の
規格によって主として管理される。ただし、本発明にお
ける重要な用途としては、回路の不必要な重複を回避す
るために、規格の間の共通の数理的機能から構成される
ことである。 特定のスケーリングオーダを用いること
により、アルゴリズムの上部と下部との間の対称性を増
大させ、それによって、共通数理機能を再使用でき、回
路の追加必要性が排除される。
答する。IDCTの第1の部分は、処理に対してデータ
トークンのサイズが正しいことを保証するために、入来
データをチェックする。実際、エラーがさほど大きくな
いならば、トークンストリームは、条件により訂正可能
である。
り、そして、データ到着のタイミング、ディスプレイ、
及びフレームレートに関する情報をアドレス発生器に供
給する。多重バッファは、表示およびディスプレイの両
レートの変更を可能にするために用いられる。表示およ
びディスプレイレートは、一般に、コード化されたデー
タ、及び情報がディスプレイされつつあるモニタに従っ
て変化する。データ到着レートは、一般に、符号化、復
号化、またはデータを作るために用いられる原材料に含
まれる誤差に応じて変化する。情報は、バッファマネジ
ャに到着すると、伸長される。ただし、データは、伸長
回路にとって有用であるが、使用中の特定のディスプレ
イユニットにとっては有用でないような順序に配列され
る。データのブロックがバッファマネジャに入力される
と、バッファマネジャは、ディスプレイ装置が使用でき
る順序にデータのブロックが配置できるように、情報を
アドレス発生器へ供給する。これにより、バッファマネ
ジャは、使用中の特定ディスプレイ装置にデータブロッ
クを表示できるように入来するデータブロックを調節す
るために必要なフレームレート変換を用いる。
報を主としてアドレス発生器に供給する。ただし、シス
テムの他のエレメントをインターフェースすることも必
要である。例えば、結果としてこれらのトークンを書込
みアドレス発生器に供給するバッファマネジャへトーク
ンを転送する入力FIFOとのインターフェースがあ
る。
アドレス発生器ともインターフェイスし、ディスプレイ
装置が新しいデータをディスプレイする準備が整ってい
るかどうかに関する情報を受け取る。同様に、バッファ
マネジャは、バッファからのディスプレイ用の情報をデ
ィスプレイアドレス発生器がクリアしたことを確認す
る。
ファが空であるか、満ちているか、使用準備が整ってい
るか、或いは、使用中であるかどうかを記憶し、更に、
各バッファにおける特定データと関連する表示数を記憶
する。このようにして、バッファマネジャは、一時にた
だ1つのバッファをディスプレイ準備が整った状態にす
ることによって、部分的に、バッファの状態を決定す
る。いったん、バッファがディスプレイされると、バッ
ファは、「空の」状態にある。バッファマネジャは、ピ
クチャ・スタート、フラッシュ、有効なトークン、また
はアクセストークンを受け取ると、各バッファの状態、
及び新しいデータの受け入れ準備について決定する。例
えば、ピクチャ・スタートトークンは、新しいデータを
受け入れることが可能なバッファを見付けるために、バ
ッファマネジャに各バッファを経て循環させる。
るトークンによって指示される多重規格必要条件を扱う
ように構成可能である。例えば、H.26l規格標準に
おいて、ディスプレイ期間中に、データは、スキップ可
能である。この種のトークンがバッファマネジャに到着
した場合には、スキップされるべきデータは、それが記
憶されているバッファからフラッシュされる。
って、データは、当該データをコード化するために使わ
れる圧縮規格、データが復号化される速度、及び使用中
の特定タイプのディスプレイ装置に従って効果的にディ
スプレイされることが可能である。
常の熟練者にとって、全ての付随的な特徴、目的、及び
利点を備えた本発明を実現させるに充分な程度の詳細さ
を以て、全体的な概念、システムの実現、及び本発明の
様々な態様のオペレーションについて適切に説明してい
ると確信する。ただし、本発明、及び本発明の様々な実
施例の一層具体的かつ商業的な実現方法と関連した追加
的な詳細を更に徹底的に理解することを容易にするため
には、一層の記述及び説明を以下に継続して示すことが
が好ましい。
ットのより詳細な説明である。説明はA、B、Cの3つ
の部分に分かれる。
に、追加開示を以下のセクションに再度示すこととす
る。
関する記述。
AMインターフェース・マイクロプロセッサインターフ
ェース・クロック・空間デコーダチップの記述・時間デ
コーダチップの記述 セクション A.1 「本記述の利用方法」 第1の記述セクションは、チップ・セットの使用に関連
した電気設計上の問題の大部分を対象とする。
慣例が用いられる。その例を次に示す。
2:0まで *融通性を持つクロマサンプリングフォーマット *全体JPEG基底線復号化 *グルーレスページモードDRAMAインターフェース *208のピンPQFPパッケージ *独立コード化データ、及びデコーダクロック *再オーダMPEGピクチャシーケンス 動画デコーダファミリーは、高分解能度デジタル動画デ
コーダを実現するための低チップカウント解決方法を提
供する。現在、チップ・セットは、3つの異なる動画及
びピクチャ符号化システム、即ち、JPEG、MPE
G、及びH.261をサポートするように構成可能であ
る。
トされる。720×480、30Hz、4:2:2 J
PEG符号化動画がリアルタイムに復号化可能である。
CIF H.261動画が復号化可能である。740×
480、30Hz、4:2:0までのフォーマットを持
つ全特機能MPEG動画が復号化可能である。
ぎず、そして、必ずしも本発明の1実施例の制限条件を
示すものではない。従って、他の値、及び/又は、範囲
を使用しても差し支えないことを理解されたい。
ション」 A.2.1.1 「出力フォーマット化」以下に示す各々の例において、
出力フォーマッティング部の形は、場合によっては、空
間デコーダまたは時間デコーダの出力に供給されるデー
タを用いること、そして、コンピュータ又はディスプレ
イシステムに対してフォーマットし直すことが要求され
る。このフォーマット化の詳細は、アプリケーションに
より異なる。一例として簡単な場合には、デコーダチッ
プによってブロックフォーマット化されたデータ出力を
用いて、そして、そのデータ出力をラスタ順に書込むた
めのアドレス発生器を必要とするだけである。
囲に亙って出力フォーマット化機能を提供する1つの単
一チップVLSIデバイスである。
化」 オフチップでないDRAMを備えた1つの単一空間デコ
ーダは、基底線JPEGイメージを高速に復号化可能す
ることが出来る。空間デコーダは、基底線JPEGの全
ての機能をサポートする。ただし、復号化可能なイメー
ジサイズは、ユーザーによって供給された出力バッファ
のサイズによって制限されこともあり得る。出力フォー
マッティング部の特性は、クロマサンプリングフォーマ
ット、及びサポート可能な色空間を制限することもあり
得る。
り、JPEG符号化動画をリアルタイムに復号化するこ
とが可能である。必要とされるバッファのサイズ及びス
ピードは、動画及びコード化データのレートに依存す
る。時間デコーダは、JPEG符号化動画を復号化する
必要はない。ただし、時間デコーダが多重規格デコーダ
チップ・セット上に在る場合に、システムがJPEGオ
ペレーション用に構成されている場合には、変更または
修正なしで、時間デコーダを介してデータを単に供給す
るに過ぎない。
ーダを実現するために両方共必要である。双方のデバイ
ス上のDRAMインターフェースは、小さいピクチャフ
ォーマットにおいて低コード化データレートで作動する
場合に、適切なオペレーションのために必要とされるD
RAMの量を軽減することができるように構成可能であ
る。一般に、各々の空間デコーダ及び時間デコーダは、
1つの単一4Mb(例えば、512k×8)DRAMを
必要とする。
ギュレーションは、H.261の場合と同じである。た
だし、当該技術分野における通常の熟練者であれば理解
できるように、MPEGにおいて利用可能な更に大きい
ピクチャフォーマットをサポートするためには、更に大
きいDRAMバッファが要求されることもあり得る。
トを介して情報を伝達するために、拡張可能なフォーマ
ットを提供する。本発明においては、トークンの各ワー
ドの最小幅は8ビットであるが、当該技術分野における
通常の熟練者であれば、トークンの幅は任意であっても
差し支えないことを理解するはずである。更に、1つの
トークンは、1又は複数のワードに亙って拡張可能であ
り、これは、各ワードにおける拡張ビットを用いて達成
される。
継続するかどうかを示す。トークンの最後のワード以外
の全てのワードは1にセットされる。トークンの第1の
ワードが0の拡張ビットを持つ場合には、これは、当該
トークンの長さがわずかに1ワードであることを示す。
ドのビット7においてスタートするアドレスフィールド
によって識別される。アドレスフィールドの長さは可変
であり、そして、複数のワードに亙って潜在的に拡張可
能である(ただし、現在のチップにおいては長さが8ビ
ットを超過するアドレスは無いので、当該技術分野にお
ける通常の熟練者であれば、この場合にも、アドレスの
長さは任意であり得ることを理解するはずである)。
よりも多いビットを転送する。例えば、空間デコーダの
出力の幅は9ビットである(拡張ビットを含み10ビッ
ト)。これらの追加ビットを利用する唯一のトークンは
データトークンである。データトークンは、システムの
特定場所において処理を実施するために必要なビットと
同数のビットを持つことができる。他の全てのトークン
は、追加ビットを無視する。
ジにデータを運ぶ。従って、このトークンの特性は、デ
コーダを通過するにつれて変化する。更に、データトー
クンによって運ばれるデータの意味は、当該データトー
クンがシステム内のどこにあるかによって変化する、す
なわち、データは位置依存性である。この点に関して、
データは、当該データトークンが空間デコーダ内のどこ
に所在するかに応じて周波数領域データ又は画素領域デ
ータのいずれかであり得る。例えば、空間デコーダの入
力において、データトークンは、8ビットのワードにパ
ックされたビット直列コード化動画データを持つ。この
点においては、各トークンの長さには制限がない。ただ
し、対照的に、空間デコーダの出力においては、各デー
タトークンは、各ワードの幅が9ビットであるちょうど
64のワードを持つ。
ータの使用」 用途によっては、回路は、デコーダ又はチップ・セット
の入力または出力に直接接続することが必要である。大
抵の場合、データトークンを収集し、そして、同期化情
報(例えば、PICTURE STARTのような)を
提供する2、3のトークンを検出することで充分であ
る。この点に関しては、以下のセクションA.16「空
間デコーダの出力への接続」及びA.19「時間デコー
ダの出力への接続」を参照されたい。
が何時スタートするかを識別するためには、拡張ビット
に関するアクティビティを観察するだけで充分である。
再び、拡張ビットは、現行トークンの最後のワードを送
信する。更に、トークンを識別するために、アドレスフ
ィールドをテストすることが出来る。不必要または認識
されなかったトークンは、それらの内容を知ることなし
に、消費可能(そして、破棄可能)である。ただし、認
識されたトークンは、適切なアクションを起こさせる。
ード化されたデータのバイトとして、或いは、データト
ークンにおいて供給可能である(セクションA.10
「コード化データ入力」参照)。コード化データポー
ト、或いは、マイクロプロセッサインターフェースを介
してトークンを供給することは、デコーダチップ・セッ
トの多数の特徴がデータストリームから構成されること
を可能にする。これは、マイクロプロセッサインターフ
ェースを介してコンフィギュレーションを実施すること
の代替案を提供する。
ーダ及び時間デコーダチップにおいて実現されるトーク
ンについて詳しく説明する。 注記:「r」は、現在予約されているビットを意味し、
そして、値は0である。特記されない限り、全ての整数
は符号無しである。
ット整数である。この2ビットフィールドは、一般に、
データトークンにおけるヘッダの一部分として配置され
る。MPEG、及びH.261の場合には、相互関係は
非常に簡単である。
PEGの場合には、条件は更に複雑である。デコーダチ
ップは、各スキャンにおいて最大4種までの異なる色成
分を可能にする。色成分の仕様がデコーダに到着するに
つれて、IDは順次に割当てられる。
リング数」 4種の色成の各々に関しては、マクロブロックにおいて
水平および垂直に配列されるブロックの数に関する仕様
がある。この仕様には、2ビットの整数を含むブロック
数より1つだけ少ない2ビット整数が含まれる。例え
ば、MPEG(或いはH.26l)における4:2:0
クロマサンプリング(図45)の成分IDの配列を表1
3に示す。
成分IDへの成分割当は、用途によって異なる。セクシ
ョンA.3.5.1参照。
合には、JPEGは、そのマクロブロックに対して2:
1:1構造を必要とする。
づき、例えば、データトークン及びQUANTテーブル
トークンは、デコーダチップ・セット内におけるそれら
の「拡張フォーム」に使用される。拡張フォームにおい
て、トークンは、いくらかのデータを含む。データトー
クンの場合には、この種トークンは、コード化データま
たはピクセルデータを含むことができる。QUANTテ
ーブルトークンの場合には、これらのトークンは、量子
化器表情報を含む。
は、本発明においては「空である」として定義される。
このトークンフォーマットは、同一トークンの拡張バー
ジョンによって続いて満たされる場所をトークンストリ
ーム内に提供する。このフォーマットは、主としてエン
コーダに適用可能であり、従って、これについては、こ
れ以上詳しく説明しない。
る部分集合を使用する。
ス」 A.4.1 「2線インターフェース、及びトークンポ
ート」 チップ・セットにおいては、情報の流れを制御するため
に、簡単な2線有効/受入れプロトコルが用いられる。
送信側及び受信側においてクロック発生準備が整ってい
ることが観察される場合に、データは、ブロック間にお
いて単に転送されるだけである。
いない3)送信側の準備が整っていない送信側の準備が
整っていない場合には(上記の3)送信側の準備が整っ
ていない)場合には、受信側の入力は待たなければなら
ない。受信側の準備が整っていない場合には(上記の
2)受信側の準備が整っていない)場合には、受信側に
よって受け入れられる時まで送信側はその出力に同じデ
ータを供給し続ける。
れる場合には、ブロック間の2線インターフェースはト
ークンポートと呼ばれる。
プを接続するために2線インターフェースを使う。更
に、空間デコーダへのコード化されたデータ入力も、同
様に、2線インターフェースである。
の幅は、関係インターフェースの必要性に応じて変化す
る(図44「8ビットより広いインターフェース上のト
ークン」参照)。例えば、12ビットの係数は、僅か9
ビットを出力するだけで、離散逆コサイン変換器(ID
CT)に入力される。
れる他の3つの信号がある。
*拡張信号(extension) A.4.3.1 「拡張信号」 拡張信号は、すでに述べたトークン拡張ビットに対応す
る。
である。
ラックの長さを最小限にするために、相互に近接して配
置されなければならない。場所的に可能な限り、トラッ
クの長さは、25mm以下に保持されなければならな
い。PCBトラックキャパシタンスは、最小限度に保持
されなければならない。
クスルーを最小限にするように設計されなければならな
い。何等かのクロックスルーがある場合には、「受信チ
ップ」が、「送信チップ」より前にクロックを見るよう
に、配列しなければならない。
てのチップは、同一デジタル電源から作動しなければな
らない。
グ」
デコーダクロックから作動する空間デコーダのコード化
データポートとの間の2線インターフェースを示す。こ
の2線インターフェースはデコーダクロックに対して非
同期であっても差し支えないコード化データクロックか
ら作動可能なので、これはオプションである。セクショ
ンA.10.5、「コード化されたデータクロック」を
参照されたい。同様に、イメージフォーマッティング部
のディスプレイインターフェースは、メインデコーダク
ロックに対して非同期であるクロックから作動可能であ
る。
用する。VIHminはVDDの約70%であり、VILmaxはV
DDの約30%である。表19に示す値は、VDDが最悪の
場合におけるVIH、及びVILの値である。VDD=5.0
±0.25V。
クロックはチップのデコーダクロックである。空間デコ
ーダへのコード化データポート入力は例外である。これ
は、符号化クロックによって制御される。クロック信号
についてはここで更に説明することとする。
フェース」A.5.1 「DRAMインターフェース」
1つの単一高性能、構成可能DRAMインターフェース
は、各々の動画デコーダチップにおいて使用される。一
般に、各チップ上のDRAMインターフェースは実質的
に同じである。ただし、インターフェースは、チャネル
優先権を扱う方法において相互に異なる。インターフェ
ースは、各々のデコーダチップによって使われるDRA
Mを直接ドライブするように設計されている。一般に、
外部の論理、バッファ、またはコンポーネントは、DR
AMインターフェースを大抵のシステムにおけるDRA
Mに接続するためには不必要である。
方法において構成可能である。
様々な異なるタイプのDRAMを収容するように構成可
能である。
異なるアプリケーションにおけるコスト/性能トレード
オフを提供するように構成可能である。
の構成」 一般に、DRAMインターフェースと関連したレジスタ
の3つのグループがある、即ち、インターフェースタイ
ミング・コンフィグレーション・レジスタ、バス・コン
フィグレーション・レジスタ、及びリフレシュ・コンフ
ィグレーション・レジスタである。リフレシュ・コンフ
ィグレーション・レジスタ表23に示すレジスタは最後
に構成されなければならない。
ーフェースは、1組のデフォルトタイミングパラメータ
(最も遅い作動モードに対応する)を用いて動作を開始
する。初めに、DRAMインターフェイスは、リフレシ
ュサイクル(他の全ての転送を除く)を連続的に実行す
る。これは、値がリフレッシュ・インターバルに記入さ
れるまで、継続する。次に、DRAMインターフェース
は、リフレシュサイクル間の他のタイプの転送を行うこ
とができる。
ション」 バスコンフィグレーション22におけるレジスタは、イ
ンターフェースによるデータ転送が試みられていない場
合に限り、行われるべきである。インターフェースは、
リセットのすぐ後、値がリフレッシュインタバルに記入
される以前に、この条件に置かれる。インターフェース
は後で、転送が試みられていない場合に限り、必要に応
じて、再構成可能である。時間デコーダチップアクセス
レジスタ(A.18.3.1)、及び空間デコーダ・バ
ッファマネージャアクセス・レジスタ(A.13.1.
1)参照。
ミングの構成」 本発明に基づき、インターフェースタイミング構成情報
の修正は、インターフェースタイミングアクセスレジス
タによって制御される。このレジスタに1を記入する
と、インターフェースタイミングレジスタ21に示す)
が修正可能になる。インターフェースタイミングアクセ
ス=1である間に、DRAMインターフェースは、その
以前のコンフィギュレーションにより作動し続ける。1
を記入した後で、任意のインターフェースタイミングレ
ジスタに記入する以前において、インターフェースタイ
ミングアクセスから1が読戻し可能になるまで、ユーザ
ーは待たねばならない。
ンターフェースタイミングアクセスに0が記入されなけ
ればならない。次に、新しいコンフィギュレーション
は、DRAMインターフェースへ転送される。
ギュレーション」本発明にかかるDRAMインターフェ
ースのリフレッシュインタバルは、リセットに続いて一
度だけ構成可能である。リフレッシュ・インターバルが
構成されるまで、インターフェースは、リフレッシュサ
イクルを連続的に実行する。これは、あらゆる他のデー
タ転送を阻止する。リフレッシュ・インターバルに値が
記入された後で、データ転送はスタート可能である。
に、DRAMは、一般に、最初に電源を入れた後で、1
00マイクロ秒と500マイクロ秒との間に「ポーズ
(休止)」を必要とし、そして、正常作動が可能になる
前に、多数のリフレッシュサイクルが後続する。従っ
て、リフレッシュ・インターバルに値を記入する前に、
これらのDRAMスタート必要条件を満足させなければ
ならない。
ンレジスタへのリードアクセス」 本発明の全てのDRAMインターフェースレジスタは読
み取り可能である。
グ(チック)」 DRAMインターフェースタイミングは、デバイス(デ
コーダクロック)の入力クロックレートの4倍のレート
においてランするクロックから得られるこのクロック
は、オンチップPLLによって生成される。
クの周期をチックと称する。
タ」
AMインターフェースは高速ページモードを用いる。3
つの異なるタイプのアクセスがサポートされる。
ト)* リフレッシュ各々のリード又はライトアクセス
は、1から64バイトまでの1つのバーストを1つの単
一DRAMページアドレスへ転送する。リード及びライ
ト転送は、1つの単一アクセス内において混合されるこ
となく、そして、連続する各アクセスは、新しいDRA
Mページへのランダムアクセスとして扱われる。
分を有する。
まり、そして、1つ又は複数のデータ転送サイクルが後
続する。更に、アクセススタート及びデータ転送サイク
ルの両方のリード、ライト、及びリフレッシュ変形(バ
リアント)がある。
が完成すると、インターフェースは、そのデフォルト状
態に入り(A.5.7.3参照)、そして、新しいアク
セスのスタート準備が整うまで、この状態に留まる。最
後のアクセスが終了して新しいアクセスの開始準備が整
った場合、直ちに新しいアクセスが始まる。
クセススタートは、リード又はライト転送のためのペー
ジアドレスを提供し、そして、ある程度の初期信号条件
を確立する。本発明に基づき、3つの異なるアクセスス
タートがある。
ト* リフレッシュのスタート
レジスタRASフォーリング、及びページスタートレン
グスによって制御される。OE、及びDRAMデータ
[31:0]の状態は、前のデータ転送の終了からRA
Sが降下するまで保持される。アクセススタートの3つ
の異なるタイプは、RASが降下した場合に、これらが
OE及びDRAMデータ[31:0]をドライブする方
法が異なるに過ぎない。参照図52。
おいては、異なるタイプのデータ転送サイクルがある。
ージ遅れ書込みサイクル(Fast page late write cycle)
* リフレッシュサイクル リフレッシュのスタートは、1つの単一リフレッシュサ
イクルによってのみ後続可能である。読み取り(或い
は、書き込み)のスタートは、1つ又は複数の高速ペー
ジ読み取り(或いは、書き込み)サイクルによって後続
可能である。読み取りサイクルのスタートに際して、C
ASはハイにドライブされ、そして、新しい列アドレス
がドライブされる。
WEは、最初の書込み転送のスタートに際してローにド
ライブされ、そして、最後の書き込み転送のエンドま
で、ローに留どまる。出力データは、アドレスによって
ドライブされる。
はリフレッシュサイクルのスタートによって開始される
ので、リフレッシュサイクル期間中には、インターフェ
ース信号は活動しない。リフレッシュサイクルの目的
は、DRAMによって必要とされる最小RASロー期間
に適合することである。
フォルト状態」本発明におけるインターフェース信号
は、アクセスのエンドにおいてデフォルト状態に入る。
態に留まる。
る。
ジスタ、DRAMデータwidthは、DRAMインタ
ーフェースのデータパスの幅が構成されることを可能に
する。これは、小さいピクチャフォーマットで使用する
場合、DRAMコストを最小限にすることを可能にす
る。
めに24ビット内部アドレスの中間区分から取られるビ
ット数は、ローアドレスビット・レジスタによって構成
される。
トアドレスが生成される。列及び行アドレスを形成する
ためにこのアドレスをどのように使用するかは、データ
バスの幅、及び行アドレス用に選定されたビット数に依
存する。コンフィギュレーションによっては、全ての内
部アドレスビットを使用することが許されないので、
「隠れビット」が作成される。
分から抽出される。従って、これにより、DRAMが自
然にリフッレッュされる速度が最大になる。
ラム)アドレスの最下位の4から6までのビットは、最
大64バイトまでの高速ページモード転送用アドレスを
提供するために使われる。これらの転送を制御するため
に要求されるアドレスビット数は、データバスの幅に依
存する(A.5.8参照)。
バンクにアクセスするための行アドレス復号化」DRA
Mのただ1つの単一バンクが用いられる場合には、使用
される行アドレスの幅は、用いられるDRAMのタイプ
に依存する。一般に1つの単一DRAMバンクによって
供給可能であるよりもより多くのメモリーを必要とすり
アプリケーションの場合には、より広い行アドレスを構
成することが可能であり、従って、1つの単一DRAM
バンクを選定するために、幾つかの行アドレスビットを
復号化することが可能である。
から抽出される。DRAMのバンクを選定するために、
行アドレスの幾つかのビットが復号化される場合には、
これらの「バンク選定ビット」がとることのできる全て
の値がDRAMの1つのバンクを選定しなければならな
い。そうでない場合には、アドレススペース内に孔が残
される。
スの作動可能化」本発明においては、DRAMインター
フェース上の全ての出力信号を高インピーダンスにする
ためには2つの方法がある。即ち、DRAMenabl
eレジスタをセットする方法及びDRAMenable
信号による方法である。DRAMインターフェース上の
ドライバを作動させるためには、これらのレジスタ及び
信号は、両方共に、ロジック1でなければならない。ど
ちらかがローであれば、インターフェースは高インピー
ダンスになる。
ピーダンスである場合には、オンチップデータ処理は終
結させられない。従って、チップがDRAMへのアクセ
スを試みた場合にはエラーが発生し、同時に、インター
フェースは高インピーダンスである。
スを高インピーダンスにする能力は、他のデバイスをテ
ストするか、或いは、空間デコーダ(又は、時間デコー
ダ)が使用中でない場合、空間デコーダ(又は、時間デ
コーダ)によって制御されるDRAMを使用するために
備えられる。正常作動期間中において、他のデバイスに
よるメモリーの共有が可能であるようには意図されてい
ない。
レッシュ・レジスタに記入することにより無能化しない
限り、DRAMインターフェースは、レジスタリフレッ
シュ・インターバルによって決定されたインタバルおい
て/RAS/リフレッシュサイクルの以前の/CAS/
を使用し、DRAMを自動的にリフッレシュする。ここ
で、/信号名/は信号の反転信号を示す。
は、16デコーダクロックサイクルの周期内におけるリ
フレッシュサイクル間のインタバル(間隔)を指定す
る。レンジ1.255における値は構成可能である。値
0は、リセットの後で自動的にロードされ、そして、
(いったん、作動可能化されれば)有効なリフレッシュ
インタバルが構成されるまで、DRAMインターフェイ
スが、リフレッシュサイクルを連続的に実行することを
強制する。リフレッシュ・インターバルは、各リセット
の後で、ただ1度だけ構成されることが推奨される。
RAMインターフェースは、DRAMをリフッレシュす
ることが不可能となる。ただし、デコーダチップによっ
て必要とされるリセット時間は十分に短く、その結果、
これらのデコーダチップをリセットし、そして、次に、
DRAMの内容が崩壊する以前に、DRAMインターフ
ェースを再構成することが可能であるはずである。
RAMインターフェースの出力のドライブ強度は、3ビ
ットレジスタCASストレングス、RASストレング
ス、addrストレングス、DRAMデータストレング
ス、及びOEWEストレングスを用いてユーザーにより
構成可能である。この3ビット値のMSBは、高速或い
は低速エッジレートのいずれかを選択する。より重要度
の低い2つのビットは、異なる負荷キャパシタンスのた
めの出力を構成する。
そして、これは、24pFにより負荷した場合、GND
とVDDとの間の信号をドライブするために約10nsを
必要とするような出力を構成する。
成された場合、その出力は、表32から表35までに指
定されたAC電気特性に適合する。適切に構成された場
合、各出力は、その負荷に概略マッチし、従って、信号
過渡の後に最小のオーバシュートが発生する。
ンに提示される全ての情報は、単に本発明の1実施例を
示すに過ぎず、一例として記載されているものであっ
て、必ずしも制限的意味を持たない。
特にこの実施例のみに関して、動作の信頼性を保証する
ためには、この表に示す値未満の応力を使用しなければ
ならない。
は、/CAS/信号の上昇につれて、DRAMデータ
[31:0]をサンプルする。
ェース(MPI)」標準バイト幅マイクロプロセッサイ
ンターフェース(MPI)は、動画デコーダチップ・セ
ットにおける全てのチップに用いられる。ただし、当該
技術分野における通常の熟練者であれば、他の幅のマイ
クロプロセッサインターフェースであっても同様に使用
可能であることが理解されるはずである。MPIは、様
々なデコーダチップクロックと同期的に作動する。
は、ユーザーが観察しようとする可能性のあるオンチッ
プ条件を示すために使われる用語である。イベントは、
エラーを示すことが可能であるか、或いは、ユーザーの
ソフトウェアにとって有益である場合もあり得る。
2つの単一ビットレジスタがある。これらは、条件イベ
ントレジスタ及び条件マスクレジスタである。
タ」条件イベントレジスタは、1ビット読み/書きレジ
スタであり、その値は、回路内に発生する条件によって
1にセットされる。条件が単に一時的であり、そして、
現在では過ぎ去ってしまった場合であってもレジスタは
1にセットされる。従って、レジスタは、ユーザーのソ
フトウェアによってリセットされるまで、1にセットさ
れたままであることを保証される(或いは、チップ全体
がリセットされる)。
ゼロにセットされる。
レジスタを変更されない状態に留める。
以前にユーザーソフトウェアによってゼロにセットされ
なければならない。
リセットされるであろう。
条件マスクレジスタは、対応する条件イベントレジスタ
がセットされ場合、割込みリクエストの生成を可能にす
る1ビット読み/書きレジスタである。既に条件イベン
トがセットされている場合、条件マスクに1が記入され
ると、割込みリクエストが即座に発行される。
リアされる。
割込みリクエストを生成した後で動作を中止し、そし
て、条件イベント又は条件マスクレジスタのいずれかが
クリアされた後で動作を再開する。
ット」イベントビット、及びマスクビットは、メモリマ
ップ内の連続したバイト内の対応するビット位置に常に
グループとして配置される表61、表141参照)。こ
れは、どのイベントが割込みを生成したかを識別するた
めに、割込みサービスソフトウェアが、マスクとしての
マスクレジスタから読み取られた値を、イベントレジス
タ内の値に対するマスクとして使用することを可能にす
る。
マスク」各チップは、チップ上のイベント活動を要約す
る1つの単一グローバルイベントビットを持つ。チップ
イベントレジスタは、それらのマスクビットに1を持つ
全てのオンチップイベントのORを提供する。
による割込みの生成を可能にする。チップマスクビット
における0は、あらゆるオンチップイベントが割込みリ
クエストを生成することを防止する。
影響しない。全てのイベント(どちらかのマスクビット
に1を記入することによって作動化される)がクリアさ
れた場合に限り、チップはクリアされる。
ベントビット及びチップイベントマスクの両方がセット
されている場合に、/irq/信号が表明される。
抵抗器を必要とするアクティブローのオープンコレクタ
出力である。活動中である場合、/irq/出力は、1
00オーム以下のインピーダンスによってプルダウンさ
れる。
ルアップ抵抗器が適当であることが理解されるはずであ
る。
A.6.4.1 「アクセスを可能にするストッピング
回路」本発明における大部分のレジスタは、レジスタが
関連しているブロックが停止されている場合に限り、修
正が可能である。従って、レジスタのグループは、一般
に、アクセスレジスタと関連している。
クセスレジスタと関連したレジスタのグループが修正さ
れてはならないことを示す。アクセスレジスタに1を記
入すると、ブロックが停止されることを要求する。ただ
し、ブロックは即座に停止しなくても差し支えなく、そ
して、当該ブロックのアクセスレジスタは、当該ブロッ
クが停止するまで、値0を保持する。
を要求するために1を記入した後で)、アクセスレジス
タから1が読み取られるまで、待つはずである。アクセ
スレジスタは0にセットされた状態において、ユーザー
がコンフィギュレーションレジスタに値を記入すると、
結果は不定である。
タ」メモリマップ内の任意のバイトの最下位ビットは、
信号データ[0]と関連しているビットである。
スタは、メモリマップ内の2つ又は4ついずれか連続し
たバイト位置に亙って分割される。バイトの順序は、図
64に示すように「ビッグエンディアン」である。ただ
し、しかしながら仮定は、オーダについて行われないバ
イトがマルチバイトレジスタに記入される順序に関して
は仮定は一切設定されていない。
用ビットを除くメモリマップ内の未使用ビットは、読み
取りに際して0を返す。この場合、レジスタ内の最上位
のビットは符号拡張される。例えば、符号付きの12ビ
ットレジスタは、16ビットメモリマップ位置(2バイ
ト)を満たすために、符号拡張される。符号無し12ビ
ット整数を保持する16ビットメモリマップ位置は、そ
の最上位ビットから0を返す。
レス位置」本発明において、アクセス頻度の小さいメモ
リマップ位置は、「キーホール」の背後に配置される。
「キーホール」は、関連した2つのレジスタを持つ、即
ち、キーホールアドレスレジスタ、及びキーホールデー
タレジスタである。
ススペース内の位置を指定する。キーホールデータレジ
スタに対する読取り、または書込み動作は、キーホール
アドレスレジスタによって指定された位置にアクセスす
る。
ホールデータレジスタにアクセスした後で、インクリメ
ントする。拡張されたアドレススペース内でのランダム
アクセスは、新しいバリュー値を各アクセスに対するキ
ーホールアドレスレジスタに新しい値を記入することに
よってのみ可能である。
「キーホールされた」メモリマップを備えていても差し
支えない。異なるキーホールの間にはインタラクション
はない。
5.1 「未使用レジスタ」「使用せず」と記載された
レジスタ又はビットは、本デバイスの実現に使用されな
かったメモリマップ内の位置である。一般に、これらの
位置からは値0が読み取り可能である。これらの位置に
0を記入しても影響しない。
ば理解出来るように、将来における変形製品との互換性
をこの種の製品に維持させるためには、ユーザーのソフ
トウェアが、未使用の位置から読み取られた値に依存し
てはならないことが推奨される。同様に、デバイスの構
成に際しては、この種の位置は、回避するか、或いは、
値0にセットするべきである。
様に、本発明において「予約済み」と記載されたレジス
タ又はビットは、デバイスの作動態様にはドキュメント
化された影響は及ぼさない。
に、「テストレジスタ」と記載されたレジスタ又はビッ
トは、当該デバイスの被テスト性の様々な態様を制御す
る。従って、これらのレジスタは、当該デバイスの標準
的な用途には使用されず、そして、標準的なデバイスコ
ンフィギュレーション及び制御ソフトウェアによってア
クセスされる必要はない。
に基づき、多くの異なるクロックは、動画デコーダシス
テムにおいて識別可能である。クロックの例を、図65
に示す。
の異なるクロックレジームの間を供給するにつれて、そ
れぞれ新しいクロックに再同期化(オンチップ)する。
本発明において、あらゆる入力クロックの最大周波数は
30MHzである。ただし、当該技術分野における通常
に習熟者であれば、30MHzより大きい周波数を含む
他の周波数であっても同様に使用可能であることは、当
然理解できるはずである。各チップにおいて、マイクロ
プロセッサインターフェース(MPI)は、チップクロ
ックに対して非同期的に作動する。更に、イメージフォ
ーマッティング部は、復号化された動画のピクチャレー
トに同期した低い周波数のオーディオクロックを生成す
ることが出来る。従って、このクロックは、オーディオ
/動画同期を供給するために使用できる。
号」空間デコーダは、2つの異なる(そして、非同期的
である可能性のある)クロック入力を持つ。
ダはただ1つのクロック入力を持つ。
はCMOS入力である。VIHminはVDDの約70%であ
り、そして、VILmaxはVDDの約30%である。表46
に示す値は、それぞれVDDの最悪条件におけるVIH及び
VILの値である。VDD=5.0±0.25VA.7.
3.2 「クロックの安定性」本発明において、DRA
Mインターフェース及びチップ間インターフェースをド
ライブするために用いられるクロックは、入力クロック
信号から得られる。これらのインターフェースのための
タイミング仕様は、入力クロックタイミングが±100
psの範囲内で安定しているものと仮定する。
ードの設置密度が高くなるにつれて、例えば「ベッドオ
ブナイル(bed-of-nails)」技法を用いた回路内テスト
のような従来の方法によって部品間の接続を検査するこ
とはますます困難になる。アクセス問題の解決および方
法論の標準化の試みとして、ジョイントテストアクショ
ングループ(JTAG)が形成された。このグループの
仕事の集大成が現在では規格1149.1としてIEE
Eによって採用されている「標準テストアクセスポート
及び境界走査アーキテクチャ」である。空間デコーダ及
び時間デコーダは、この規格に適合する。
ンを直列接続する境界スキャンチェーンを利用する。テ
スト回路は、正常作動状態においては即応型(透明)で
ある、しかし、テストモードにおいて境界スキャンチェ
ーンはテストパターンをシフトイン可能にし、そして、
デバイスのピンに供給可能にする。JTAGデバイスへ
の入力において回路ボードに現れる結果的な信号は、比
較的簡単なテスト装置によって走査およびチェックされ
ることが可能である。この方法により、回路ボード上の
ロジックの領域と同様に部品間接続はテスト可能であ
る。
ンを有するテストアクセスポート(TAP)を介して実
施される。trst(テストリセット)ピンは、デバイ
スがテストモードにおいてはパワーアップしないことを
保証するためにJTAG回路をリセットする。tck
(テストクロック)ピンは、クロック直列テストパター
ンを、tdi(テストデータ入力)ピンへクロックし、
そして、tdo(テストデータ出力)ピンからクロック
するために用いられる。最後に、JTAG回路の操作モ
ードは、該当するビットのシーケンスをtms(テスト
モードセレクト)ピンへクロックすることによりセット
される。
いて付加的特徴を提供するために拡張可能である。空間
デコーダ及び時間デコーダには、3つのJTAG必須命
令を含めて9つのユーザインストラクション(命令)が
ある。追加命令(エクストラインストラクション)は、
特定の程度の内部デバイステストの実施を可能にし、そ
して、付加的な外部テストの融通性を提供する。例え
ば、全てのデバイス出力は、簡単なJTAGシーケンス
によってフロートするように作成可能である。
用方法の詳細については、個別のJTAGアプリケーシ
ョンノートを参照されたい。
るJTAGピンの接続」
ル」A.8.2.1 「規則」下記の条項が注記される
が、全ての規則が適合する。
オペレーション*デコーダーMPEG、JPEG、及び
H.26l*コード化データレートは25Mb/sまで
*動画データレートは21MB/sまで*柔軟なクロマ
サンプリングフォーマット*全JPEG基底線復号化*
グルーレスDRAMインターフェース*単一+5V電源
*208ピンPQFPパッケージ*最大消費電力2.5
W*独立したコード化データ及びデコーダクロック*標
準ページモードDRAMを使用 空間デコーダは、様々なJPEG、MPEG、及びH.
261ピクチャ及び動画復号化アプリケーションにおい
て使用するための構成可能なVLSIデコーダチップで
ある。
ンフィギュレーションにおいて、空間デコーダは、1つ
の単一チップ、高速JPEGデコーダである。DRAM
を加えることにより、空間デコーダがJPEG符号化動
画を復号化することを可能にする。720×480、3
0Hz、4:2:2「JPEG動画」が、リアルタイム
に復号化可能である。
コーダは、H.26l、及びMPEG(同様に、JPE
G)を復号化するために使用できる。704×480、
30Hz、4:2:0MPEG動画が復号化可能であ
る。
したものでたって、必ずしも制限的意図を持つものでな
く、本発明に基づく1実施例のための典型的な値である
ことを再度注記しておく。従って、当該技術分野におけ
る通常の習熟者であれば、他の値、及び/又は、を使用
可能であることを理解するはずである。
ncとラベルの付いたピンは現在使われていないピンを
表す。これらのピンは、接続しない状態にしておかねば
ならない。
ン」当該技術分野における通常の習熟者であれば理解さ
れるように、装備されている全てのVDD及びGNDピン
は、それぞれ該当する電源に接続されなければならな
い。全てのVDD及びGNDピンが正しく使用されていな
い限り、デバイスの正しい作動は保証不可能である。
トピンの接続」空間デコーダの9つのピンは、内部テス
ト用として予約済みである。
クションA.8.1参照。
プ」
に基づくシステムは、処理するためにどの動画規格が入
力されつつあるかを知らなければならない。今後、本シ
ステムは、先在しているトークン、又は、生バイトデー
タのいずれかを受け入れることができる。この生バイト
データは、次に、スタートコード検出器によってトーク
ン内に配置可能である。
レーショントークンは、次に示す2つのルートを介して
空間デコーダに供給可能である。
ロセッサインターフェース(MPI)使用するルートの
選定は、アプリケーション及びシステム環境に依存す
る。例えば、データレートが低い場合には、デコーダチ
ップ・セットを制御し、そして、システムビットストリ
ームを多重化する両方の目的のために、1つの単一マイ
クロプロセッサを使用することが可能である。この場
合、MPIを介してコード化データを入力をすることも
可能である。代りに、コード化データレートが高い場合
には、コード化データはコード化データポートを介して
供給されなければならない。
ード化データポート入力との混合体を使用することが適
当である。
ド、即ち、トークンモード及びバイトモードにおいて使
用可能である。
発明において、バイトモードがローである場合には、コ
ード化データポートは、正常な方法におけるトークンポ
ートとして作動し、そして、コード化有効及びコード化
アクセプトの制御の下にトークンを受け入れる。このイ
ンターフェースの電気的動作の詳細についてはセクショ
ンA.4を参照されたい。
コード化extn、及びコード化有効と同時に、即ち、
コード化clockの立ち上がりエッジにおいてサンプ
ルされる。
し、バイトモードがハイであれば、データの1つのバイ
トは、 2線インターフェース制御信号コード化有効、
及びコード化アクセプトの制御の下にデータ[7:0]
において転送される。この場合、コード化extnは無
視される。続いて、バイトは、入力モードが変更される
時まで、オンチップにおいて、データトークンに組み立
てられる。
ークンの第1のワード(ヘッド)2)供給されたトーク
ンの最後のワード(コード化extnはローになる)
3)バイトモードにおいて供給されたデータの第1のバ
イト。新しいデータトークンは、オンチップにおいて自
動的に作成される。
供給」トークンは、コード化データ入力レジスタにアク
セスすることによってMPIを介して空間デコーダに供
給可能である。
クンの記入」本発明のコード化データレジスタは、効率
的なデータ転送を可能にするために、メモリマップ内に
おいて2バイトにグループ化される。8データビット、
コード化データ[7:0]は1つの場所に配置され、ま
た、制御レジスタ、コード化ビズィ、enable m
pi入力、及びコード化extnは別の場所に配置され
る。表62、表63参照)。
た場合、1つの値がコード化データ[7:0]に記入さ
れる度に、現行トークンは、コード化extnの現行値
を用いれ拡張される。あらゆるトークンの最後のワード
がコード化データ[7:0]に記入される前に、コード
化extnを0にセットすることに関してはソフトウェ
アに責任がある。
tnに1を、又、コード化データ[7:0]に0x04
を記入することによってスタートされる。次に、この新
しいデータトークンのスタートは、処理のために、空間
デコーダへ供給する。
[7:0]に記入される度に、現行トークンが拡張され
る。例えば、別のトークンを導入するために、現行トー
クンを終わらせる場合に限り、コード化extnは、再
度アクセスされる必要がある。現行トークンの最後のワ
ードは、現行トークンの最後のワードのコード化データ
[7:0]への記入によって後続されるコード化ext
nへの0記入によって示される。
ェースがより多くのデータを受け入れる準備が整ってい
るかどうかを判定するために、コード化ビジィは検査さ
れなければならない。
ング」適当な事前措置が講じられていることを条件とし
て、データ入力モードを動的に変えることが可能であ
る。一般に、任意の1つのルートを介したトークンの転
送は、スイッチングモード前に完了していなければなら
ない。
て、データトークンヘッダはオンチップにおいて生成可
能である。バイトモードにおいて更に転送された全ての
バイトは、今後、入力モードが変化するまでこのデータ
トークンに添付される。データトークンは必要なだけ多
くのビットを含むことができることを思い起こされた
い。
及び信号、コード化アクセプトは、当該空間デコーダが
どのインターフェースにおいてデータを受け入れようと
しているかを示す。これらの信号を正しく観察すること
により、データが失われていないことが保証される。
レート」本発明において、入力回路は、トークンをスタ
ートコード検出器に供給する(セクションA.11参
照)。スタートコード検出器は、データを、データトー
クンビットとして直列的に分析する。検出器の処理正常
レートは、(コード化clockの)クロックサイクル
につき1ビットである。従って、デコーダは、コード化
clockの8サイクル毎に、コード化データの1バイ
トを復号化する。ただし、例えば、非データトークンが
供給される場合、或いは、コード化データ内にスタート
コードが現れた場合のように、追加処理サイクルが必要
とされることもある。この種のイベントが発生した場
合、スタートコード検出器は、短時間に亙って、それ以
上の情報の受け入れが不能となる。
タは、第1ロジックコード化データバッファに供給す
る。このバッファがいっぱいになった場合、スタートコ
ード検出器は、それ以上の情報を受け入れることができ
なくなる。
は、他のトークン)は、コード化データポートにおい
て、又は、MPIを介して受け入れられる。この場合、
スタートコード検出器は、それ以上の情報を受け入れる
ことができない状態のままである。これは、信号コード
化アクセプト及びレジスタコード化ビジィの状態によっ
て示される。
化ビジィを用いることにより、ユーザーにとって、コー
ド化情報が一切失われないことが保証される。ただし、
当該技術分野における通常の習熟者であれば、空間デコ
ーダがデータ受け入れ不能である場合、システムは、新
しく到着するコード化データを緩衝するか、(或いは、
新しいデータの到着を停止する)ことを理解できるはず
である。
ク」本発明に基づき、空間デコーダにおけるコード化デ
ータポート、入力回路、及び他の機能は、コード化cl
ockによって制御される。更に、このクロックは、メ
インデコーダクロックに対して非同期であっても差し支
えない。データ転送は、オンチップにおけるデコーダク
ロックに同期する。
検出器」A.11.1 「スタートコード」当該技術分
野において周知であるように、MPEG及びH.261
コード化動画ストリームは、スタートコードと呼ばれる
識別可能なビットパターンを含む。JPEGにおいて
は、同様の機能は、マーカコードによって提供される。
スタート/マーカコードは、コード化データストリーム
のシンタックスの有意部分を識別する。スタートコード
検出器によって行われるスタート/マーカコードの分析
は、コード化データのパージングにおいては第1段階で
ある。スタートコード検出器は、入力回路に後続する空
間デコーダにおける第1ブロックである。
トストリーム全体を復号化することなしに識別可能であ
るように設計される。従って、スタート/マーカコード
パターンは、本発明に従い、エラー回復及びデコーダス
タートを助けるために使用できる。スタートコード検出
器は、コード化データ構造内においてエラーを検出し、
そして、デコーダのスタートを援助するための機能を提
供する。
ジスタ」既に検討したように、多数のスタートコード検
出器レジスタは、スタートコード検出器によって常時使
用される。従って、データを処理するスタートコード検
出器がデータを処理しつつある場合に、これらのレジス
タにアクセスすることは、信頼度が低い。そのレジスタ
へのアクセス以前におけるスタートコード検出器の停止
を保証することに関しては、ユーザの責任である。
は、スタートコード検出器を停止させ、ひいては、その
レジスタへのアクセスを可能にするために使用される。
スタートコード検出器は、割込みを生成した後で、停止
する。
の廃棄をいつ開始可能であるかと言うことに関しては、
更に制約条件がある。これらの制約条件については、
A.11.8、及びA.11.5.1に記述済みであ
る。
換」正常作動におけるスタートコード検出器の機能は、
データストリーム内のスタートコードを識別し、そし
て、その次に、これらのコードを該当するスタートコー
ドトークンに変換することである。最も簡単な場合、デ
ータは、1つの長い単一データトークンとしてスタート
コード検出器に供給される。スタートコード検出器の出
力は、スタートコードトークンを割り込み配置された多
数の短かめのデータトークンである。
ード検出器への入力データは、多数の短かめのデータト
ークンに分割可能である。コード化データをデータトー
クンに分割する方法に関しては、nを整数とした場合、
各データトークンは8xnビットを含まなければならな
いと言うこと以外には、制約は無い。
入力に直接供給可能である。この場合、トークンは、処
理することなしに、スタートコード検出器を介して空間
デコーダの他のステージへ供給される。これらのトーク
ンは、コード化データ内において、スタートコード位置
の直前に限り挿入可能である。
ーマット」本発明のスタートコード検出器によれば、3
つの異なるスタートコードフォーマットが認識される。
これは、レジスタスタートコードディテクタコーディン
グスタンダードを介して構成される。
スタートコードを検出した場、スタートコード検出器
は、当該スタートコードと関連した値を検討し、そし
て、適切なトークンを生成する。一般に、トークンは、
関連MPEGシンタックスにちなんで命名される。ただ
し、当該技術分野における通常の習熟者であれば、トー
クンは、付加的ネーミングフォーマットに従うことを理
解するはずある。現在選定されている符号化規格は、ス
タートコード値と生成されたトークンとの間の関係を構
成する。この関係を表92に示す。
格は、符号化規格によればその使用が現在確定していな
いデータストリーム内へのデータ埋め込みを可能にする
多数のメカニズムを提供する。これは、特定メーカーに
追加的な使い易さを提供する特定の「ユーザデータ」ア
プリケーションと見なすことも可能であり、その代り
に、「拡張データ」と見なしても差し支えない。符号化
規格オーソリティとしては、将来において符号化規格に
機能を追加するために拡張データを使用する権利を留保
した。
PEGにおいては、ユーザ及び拡張データのブロックに
マーカコードを先行させる。ただし、H.261におい
ては、コード化データ内の追加情報ビットによって示さ
れる「追加情報」を挿入する。MPEGにおいては、こ
れら双方の技術を使用できる。
によって先行されるユーザ及び拡張データのMPEG/
JPEGブロックは、スタートコード検出器によって検
出可能である。H.261/MPEGの「追加情報」
は、本発明のハフマンデコーダによって検出される。
A.14.7「追加情報の受信」を参照されたい。
ンデータ、及びdiscardユーザデータは、ユーザ
データ及び拡張データを放棄するようにスタートコード
検出器を構成することが可能である。このデータがスタ
ートコード検出器で放棄されない場合には、このデータ
が動画デマックスに到達した時にアクセスすることが出
来る。A.l4.6、「ユーザ及び拡張データの受信」
を参照されたい。
線機能をサポートする。JPEGの非基線機能は、空間
デコーダによる拡張データと見なされる。従って、非基
底線JPEGにとって、データに先行する全てのJPE
Gマーカコードは拡張データとして扱われる。
JPEGは、ダウンロードされたハフマン及び量子化器
表をサポートする。JPEGデータにおいて、これらの
表の定義は、マーカコードDNL及びDQTによって先
行される。スタートコード検出器は、これらのマーカコ
ードが検出された場合、トークンDHTMARKER及
びDQTMARKERを生成する。これらのトークン
は、動画デマックスに対して、後続するデータトークン
がハフマン又は量子化器表について記述するコード化デ
ータを含むことを示す(JPEGにおいて記述されたフ
ォーマットを用いる)。
コード検出器は、コード化データ内の特定エラーを検出
可能であり、そして、エラーが検出された後においてデ
コーダによる回復を可能にする幾らかの機能を提供する
(A.11.8、「スタートコードの探索」参照)。
カウント」大抵のJPEGマーカコードは、それらと関
連した16ビット長さのカウントフィールドを持つ。こ
のフィールドは、どの程度の量がデータがこのマーカコ
ードと関連しているかを示す。0及び1の長さカウント
は不当である。不当長さは、データエラーに後続する場
合に限り発生する。本発明において、イリーガルレング
スカウントマスクが1にセットされている場合、不当長
さの発生は、割込みを生成する。
は、JPEGにおいてスタートコードを検索することが
困難であるため、付加的なアプリケーション特定データ
を必要とするものと推測される。段落A.11.8.1
参照)。
ードの重複」本発明において、スタートコードの重複
は、データエラーに後続する場合に限り発生する。MP
EG配列バイト重複スタートコードを図73に示す。こ
の場合、スタートコード検出器は、先ず、ピクチャ・ス
タートコードのように見えるパターンを見る。次に、ス
タートコード検出器は、このピクチャ・スタートコード
がグループスタートと重複していることを見る。従っ
て、スタートコード検出器は、重複スタートイベントを
生成する。更に、オーバーラッピングスタートマスクが
1にセットされている場合には、スタートコード検出器
は、割込み、及び停止を生成する。
か、及びデータエラーはどちらの原因であったかを判定
することは不可能である。ただし、本発明に基づくスタ
ートコード検出器は、最初のスタートコードを放棄し、
そして、重複スタートコードイベントがサービスされた
後で「第2のスタートコードが正しいものとして」第2
のスタートコードの復号化を続行する。一連の重複スタ
ートコードが所在する場合には、スタートコード検出器
は、最後のコードを除くこれら全てのコードを破棄する
(各重複スタートコードに関するイベントを生成す
る)。
ラーが可能である(H.261、またはおそらくはMP
EG)。この場合、イグノア・ノンアラインの状態も同
様に考察されなければならない。図74は、見付かった
最初のスタートコードは配列バイトであるが、しかし、
非配列スタートコードと重複する例を示す。イグノア・
ノンアラインが1にセットされている場合には、2番目
の重複スタートコードは、スタートコード検出器によっ
てデータとして扱われる。従って、重複スタートコード
イベントは発生しない。これにより、発生しているかも
知れないデータ通信エラーが隠される。イグノア・ノン
アラインが0にセットされている場合には、スタートコ
ード検出器は第2の非配列スタートコードを見る。そし
て、それが第1のスタートコードと重複していることを
見る。
ド」スタートコード検出器は、認識されないスタートコ
ードが検出された場合、割込みを生成することが出来る
(アンレコグナイズドスタートマスク=1であれば)。
この割込みの原因となったスタートコード値は、レジス
タスタートバリューから読み取り可能である。
ラー)は、チャネルエラー又はメディアエラーを示すた
めに、MPEGデコーダシステムにおいて使用される。
例えば、訂正不可能なエラーが検出された場合には、こ
のスタートコードは、ECC回路によってデータに挿入
されることもあり得る。
本発明において、特定のコード化データパターン(エラ
ー条件を示すことが多い)は、前述のエラー条件の中の
1つ以上を短い期間中に起こさせる。従って、エラー条
件に関してスタートコード検出器がコード化データを調
査順序をつぎに示す。
トコード3)未認識スタートコード 従って、非配列スタートコードがもう一方の後の方のス
タートコードと重複する場合には、生成された最初のイ
ベントは、非配列スタートコードと関連する。このイベ
ントがサービスされた後において、スタートコード検出
器の動作は継続し、短期間後に、重複スタートコードを
検出する。
テストが完了した後で、スタートコード検出器は単にス
タートコードを認識することを試みる。
び停止」スタートコード検出器は、現行復号化タスクを
完全に完了することを可能にし、そして、新しいタスク
をスタート可能にする機能を提供する。
レートする値を含むことができるので、JPEGコード
化動画を用いるこれらの技術を使用することには制限が
ある(A.11.8.1参照)。
了」現行ピクチャに関するデータが完了してしまえば、
割込みおよび停止を生成するようにスタートコード検出
器を構成することができる。これは、ストップアフタピ
クチャ=1、及びストップアフタピクチャマスク=1を
セットすることによって行われる。
一旦供給すると、フラッシュトークンが生成され(A.
11.7.2)、割込みが生成され、そして、スタート
コード検出器が停止する。完成したばかりのピクチャ
は、通常の方法で復号化されることに注意されたい。ア
プリケーションによっては、デコーダチップ・セットの
出力に到着したフラッシュを検出することが適切である
場合もあり得る。この出力の到着は現行動画シーケンス
の終了を示す。例えば、ディスプレイは、最後のピクチ
ャ出力に固着することもあり得る。
ィアとデコードチップとの間にユーザによって実現され
たバッファに「トラップ」されている「古い」動画シー
ケンスからのデータもあり得る。レジスタdiscar
dallデータをセットすると、空間デコーダにこのデ
ータを消費させ、そして、破棄させる。これは、フラッ
シュトークンがスタートコード検出器に到達するか、或
いは、discardallデータがマイクロプロセッ
サインターフェースを介してリセットされる時まで、継
続する。
が放棄されると、この段階において、新しいシーケンス
に従って、デコーダが動作を開始する準備が整う。
card)開始時期」discardallデータレジスタ
に1が記入された直後に全モード破棄がスタートする。
スタートコード検出器がデータを活発に処理している場
合にこれが行われると、結果は予言不可能である。
タートイベント等)のうちのいずれかが割込みを生成し
た後で、全モード破棄は安全に開始されることが可能で
ある。
開始」或るコード化データ内のどこで新しいコード化動
画シーケンスがスタートするかが未知である場合には、
スタートコード探索メカニズムを使用できる。このメカ
ニズムは、シーケンスのスタートに先行するあらゆる不
必要なデータを放棄する。A.11.8を参照された
い。
ンプ」このセクションでは、前記の幾つかの技術のアプ
リケーションを示す。目的は、1つのコード化動画シー
ケンスの一部分からもう他の部分へ「ジャンプする」こ
とである。この例において、ファイリングシステムは、
データの「ブロック」へのアクセスを可能にするに過ぎ
ない。このブロック構造は、ディスク又はブロックエラ
ー補正システムのセクタサイズから得ることも出来る。
従って、コード化動画データにおける入り口及び出口の
位置は、ファイリングシステムブロック構造と関係がな
い場合もあり得る。
rdallデータメカニズムは、古い動画シーケンスか
らの不必要なデータの破棄を可能にする。最後のファイ
リングシステムデータブロックの終了後、フラッシュト
ークンを挿入することにより、discardallデ
ータモードはリセットされる。次に、スタートコード探
索モードは、適当な入り口に先行する次のデータブロッ
ク内のあらゆるデータを放棄するために使用される。
分野において周知であるように、異なる符号化計画は、
データストリーム中のスタート/マーカコードのバイト
整列に関して全く異なる見解を持つ。例えば、H.26
1は通信を直列ビットとして見る。従って、スタートコ
ードのバイト整列に関してはコンセプトがない。イグノ
ア・ノンアライン=0をセットすることによって、スタ
ートコード検出器は、任意のビット整列のスタートコー
ドを検出することができる。ノンアラインスタートマス
ク=0をセットすることによって、スタートコード非配
列割込みが抑圧される。
バイト整列が保証されているコンピュータ環境用として
設計された。従って、マーカコードは、バイトが整列し
た場合に限り検出されるべきである。符号化規格がJP
EGとして構成された場合には、イグノア・ノンアライ
ンレジスタは無視され、そして、非整列スタートイベン
トは決して生成されない。ただし、将来の製品との互換
性を保証するためにイグノア・ノンアライン=1、及び
ノンアラインスタートマスク=0をセットすることが推
奨される。
びコンピュータ(バイト指向)システムの両方の必要性
を満たすように設計された。MPEGデータ内のスター
トコードは、通常、整列バイトでなければならない。た
だし、規格は、スタートコードに関して直列ビット探索
が可能であるように設計されている(MPEGビットパ
ターンは、どのようなビット整列であっても、スタート
コードでない限り、スタートコードのようには見えな
い)。従って、MPEGデコーダは、直列データ通信に
おけるバイト整列の損失を許容するように設計可能であ
る。
は、通常、既に通信エラーが発生していたことを示す。
エラーが直列ビット通信システムにおける「ビット‐ス
リップ」である場合には、このエラーを含むデータは既
にデコーダへ供給されている。このエラーは、デコーダ
内において他のエラーを引き起こす可能性があるものと
推測される。ただし、スタートコード検出器に到着する
新しいデータは、この整列が失われた後で、続いて復号
化可能である。
ラインスタートマスク=1をセットすることにより、非
整列スタートコードが検出された場合には、割込みが生
成可能である。責任の所在はアプリケーションに依存す
る。後続する全てのスタートコードは非整列である(バ
イト整列が復元されるまで)。従って、バイト整列が失
われた後で、ノンアラインスタートマスク=0をセット
することが適切であることもあり得る。
て、スタートコード検出器によって出力されたトークン
の大部分は、様々なピクチャ及び動画コード化規格の構
文エレメントを直接反映する。これらの「自然」トーク
ンに加えて、幾つかの有用な「発明された」トークンが
生成される。これらの所有権を主張できるトークンの例
はピクチャ・エンド、及びコーディング・スタンダード
である。更に、符号化規格の間の或る程度の構文的な差
を除去し、そして、エラー条件の下で整頓するために、
トークンが導入される。
の直列分析の後で行われる(図70「スタートコード検
出器」参照)。従って、システムは、スタートコード検
出器を介して空間デコーダの入力に直接供給されたトー
クン及びコード化データ内のスタートコードの検出に後
続するスタートコード検出器によって生成されたトーク
ンに平等に応答する。
示」一般に、符号化規格は、ピクチャの終了を明白には
送信しない。ただし、本発明のスタートコード検出器
は、現行ピクチャが完了したことを示す情報を検出した
場合、ピクチャ・エンドトークンを生成する。 ピクチ
ャ・エンドを生成させるトークンを次に示す。シーケン
ススタート、グループスタート、ピクチャ・スタート、
シーケンスエンド、及びフラッシュ。
ョン後の停止」レジスタストップアフタピクチャがセッ
トされている場合には、スタートコード検出器は、ピク
チャ・エンドトークンが供給した後で停止する。ただ
し、フラッシュトークンは、デコーダを介してコード化
データの末端を「プッシュ」し、そして、システムをリ
セットするために、ピクチャ・エンドの後で挿入され
る。A.11.5.1を参照されたい。
ンススタートの導入」H.261は、シーケンススター
トに等価な構文エレメントを持たない表92参照)。イ
ンサートシーケンススタートレジスタがセットされてい
る場合、スタートコード検出器は、その次のピクチャ・
スタートの前に1つのシーケンススタートトークンがあ
ることを保証する、即ち、スタートコード検出器がピク
チャ・スタートの前にシーケンススタートを見ない場合
には、一方のトークンが導入される。一方が既に存在す
る場合には、シーケンススタートは導入されない。
使用してはならない。
る符号化規格の設定」スタートコード検出器を離れる全
てのシーケンススタートトークンは、コーディング・ス
タンダードトークンによって常に先行される。このトー
クンには、スタートコード検出器の現行符号化規格がロ
ードされる。これは、各新しい動画シーケンス用にセッ
トされたデコーダチップ全体に対して符号化規格をセッ
トする。
本発明に基づくスタートコード検出器は、コード化デー
タストリーム中の特定のタイプのスタートコードを探索
するために使用できる。これは、デコーダが、いくらか
のコード化データの構文内において、指定されたレベル
からの復号化を再開始することを可能にする(それに先
行するあらゆるデータを放棄した後において)。このた
めのアプリケーションを次に示す。
アクセスの場合)コード化データファイルにジャンプし
た後におけるデコーダのスタート。
るために、データ内の既知の点を探索する。
ーションのスタートコードサーチに関して探索されたM
PEGスタートコードを示す。等価H.26l及びJP
EGスタート/マーカコードは、表92に見ることが出
来る。
合、スタートコード検出器は、指定されたスタートコー
ドが検出されるまで、入来する全てのデータを破棄する
ことを開始する。次に、スタートコードサーチレジスタ
は0にリセットし、そして、正常作動が継続する。
スタートコードサーチレジスタに記入された後で、即座
に開始する。スタートコード検出器がデータを活発に処
理している時にこれが行われた場合には、結果は予測不
可能である。従って、スタートコードサーチを開始する
以前に、一切のデータが処理されていないようにスター
トコード検出器が停止されていなければならない。任意
のスタートコード検出器イベント(非整列スタートイベ
ント等)が割込みの生成を完了したばかりである場合に
は、スタートコード検出器は、常にこの条件にある。
ートコードサーチを使用する場合の制限」殆どのJPE
Gマーカコードは、それらと関連した16ビット長カウ
ントフィールドを持つ。このフィールドは、マーカコー
ドと関連しているデータセグメントの長さを示す。この
セグメントがマーカコードをエミュレートする値を含ん
でいても差し支えない。正常動作において、スタートコ
ード検出器は、データのこれらのセグメント内のスター
トコードを探さない。
アクセスがこの種セグメントに「ランドする」する場合
には、スタートコード探索メカニズムを高信頼度を以て
使用することは出来ない。一般に、JPEGコード化動
画は、ランダムアクセスのための入り口を識別するため
に付加的な外部情報を必要とする。
ート制御」A.12.1「デコーダスタートの概観」デ
コーダにおいて、動画ディスプレイは、コード化データ
が最初に利用可能になった後で、通常、短い時間だけ遅
れてディスプレイされる。この遅延の期間中、コード化
データは、デコーダ内のバッファに集積する。バッフア
をこのように予充満することによって、復号化期間中に
バッファが決して空にならないことを保証し、ひいて
は、デコーダが、規則的な間隔を以て、新しいピクチャ
を復号化することができることを保証する。
めには2つの機能が必要とされる。第1に、どれだけの
量のデータがデコーダに供給されたかを測るメカニズム
がなくてはならない。2番目に、新しい動画ストリーム
のディスプレイを防止するためのメカニズムがなければ
ならない。本発明の空間デコーダは、どれだけの量のデ
ータが到着したかを測定するために、その入力の近くに
ビットカウンタを備え、そして、出力されつつある新し
い動画ストリームがスタートすることを防止するため
に、その出力の近くに出力ゲートを備える。
つのレベルがある。
御*上級制御 出力ゲートを常に開いた状態に保持することにより、コ
ード化データがデコーダに到着し始めた後において、で
きる限り早期にピクチャ出力がスタートする。これは、
静止画像を復号化する場合、或いは、ディスプレイが何
か他のメカニズムによって遅延されつつある場合に適す
る。
の時点において、デコーダのバッファ内に幾つの短い動
画ストリームが収容可能かということである。大抵のア
プリケーションにとっては基礎的制御で十分である。た
だし、上級制御は、ユーザソフトウェアが、数個の非常
に短い動画ストリームのスタートのデコーダによる管理
を援助することを可能にする。
リファイア」MPEGは、一定データレートシステム用
「動画バッファベリファイア(VBV)」について記述
する。VBV情報を用いることにより、デコーダは、ピ
クチャをディスプレイを開始する以前に、そのバッファ
を予充満することが可能になる。再度説明すれば、この
予充満により、デコーダのバッファが、復号化期間中に
決して空にならないことが保証される。
delayパラメータを持つ。このパラメータは、第1
のピクチャが復号化される以前に、「理想デコーダ」の
コード化データバッファがコード化データでいっぱいに
なるために必要な時間を規定する。第1のピクチャのた
めのスタート遅延に注意すれば、後続する全てのピクチ
ャの必要条件には自動的に適合する。
要条件を遅延として規定する。ただし、一定ビットレー
トシステムにおいては、この遅延は、ビットカウントに
容易に変換できる。これは、本発明の空間デコーダのス
タート制御動作の基礎である。
アプリケーションにおいて、ストリームという用語は、
MPEGにおけるシーケンスという用語との混乱を避け
るために使われる。従って、ストリームは、アプリケー
ションにとって関心のある動画データの量を意味する。
従って、1つのストリームが多数のMPEGシーケンス
であるか、或いは、1つのピクチャでありうる。
は、1つのストリーム内の第1ピクチャに関するVBV
必要条件に適合することに関係する。当該ストリーム内
の後続ピクチャの必要条件には自動的に適合する。
いた状態を維持するように構成可能である。静止画像が
復号化されつつある場合、或いは、動画デコーダのスタ
ートを管理するために他の何等かのメカニズムが利用可
能である場合には、このコンフィギュレーション構成が
適切である。
ーションを次に示す(スタートアップアクセスに1を記
入することによってスタート制御ロジックへのアクセス
が得られる)。
イネーブルストリーム=1をセットする* 全てのデ
コーダスタートイベントマスクレジスタが0にセットさ
れ、それらのレジスタの割込みを無能にするることを保
証する(これは、リセット後のデフォルト状態であ
る)。(これが出力ゲートを開いた状態に保持する理由
についての説明に関してはA.12.7.1を参照され
たい)。
て、殆どのMPEG動画アプリケーションにとっては、
スタートロジックの基礎的な制御で充分である。このモ
ードにおいて、ビットカウンタは出力ゲートと直接通信
する。フラッシュトークンによって指示されるように、
動画ストリームのエンドが出力ゲートを供給する時、出
力ゲートは自動的に閉じる。ストリームがそのスタート
ビットカウントを達成した時にビットカウンタ回路によ
り1つのイネイブルが供給されるまで、当該ゲートは閉
じた状態を維持する。
レーションを次に示す(スタートアップアクセスに1を
記入することによりスタート制御ロジックへのアクセス
が得られる)。
ビットカウントプリスケールをセットする。
カウンタflushedtooearlyマスク=1を
セットする。
必要とされる。
vbv遅延値を得るための動画デマルチプレクスサービ
ス。
ushed too earlyサービス。
化する時(即ち、フラッシュ後において第1ピクチャが
動画デマルチプレクサに到着する時)、この動画デマル
チプレクサ(別名動画パーザ)は割込みを生成すること
が出来る。割込みサービスルーチンは、ビットカウント
ターゲット用の適切な値を計算し、そして、それを記入
しなければならない。ビットカウンタがこの目標に到達
した時、このビットカウンタは、ビットカウンタと出力
ゲートとの間の短いキューに1つのイネイブルを挿入す
る。出力ゲートが開くと、このゲートはこのキューから
1つのイネイブルを除去する。
直後における新ストリームの開始」一例として、終わろ
うとしていMPEGストリームをAと呼び、そして、開
始しようとしているMPEGストリームをBと呼ぶこと
とする。Aのエンドの後でフラッシュトークンが挿入さ
れなければならない。このトークンは、そのコード化デ
ータの最後のデータをデコードを通って押し、、デコー
ダの様々なセクションに新しいストリームが予測される
ことを警告する。
みであり、Aは既にそのスタート条件に適合した状態で
ある。フラッシュの後で、ビットカウンタは、ストリー
ムB内のビットをカウントし始める。動画デマックス
が、ストリームB内の第1ピクチャからvbv遅延を復
号化し終わると、割込みが生成されて、ビットカウンタ
を構成可能にする。
シュが出力ゲートを通過するにつれて、ゲートが閉じ
る。ゲートは、Bがそのスタート条件に適合するまで、
閉じた状態を維持する。例えば、ストリームB及びバッ
ファの深さのためのスタート遅延のような多数の要因に
応じて、出力ゲートが閉じた時、Bが既にそのスタート
条件条件に適合済みであることが可能である。この場
合、1つのイネイブルはキュー内において待機してお
り、そして、出力ゲートは即座に開く。そうでない場合
には、ストリームBは、そのスタート必要条件に適合す
るまで、待たなければならない。
続」ビットカウンタと出力ゲートとの間に位置するキュ
ーの容量は、3つの個別動画ストリームをそれらのスタ
ート条件に適合可能にし、そして、復号化を終了させる
ために前のストリームを待つことを可能にするために十
分である。本発明において、非常に短いストリームが復
号化されつつある場合、、或いは、オフチップバッファ
が復号化中のピクチャフォーマットと比較して非常に大
きい場合に限りこの条件が発生する。
れつつあり、そして、出力ゲートは開いている。ストリ
ームB及びCは、それらのスタート条件に適合し、そし
て、空間デコーダによって管理されたバッファ内に完全
に含まれる。ストリームDは、空間デコーダの入力に依
然として到着しつつある。
ュー内に在る。従って、ストリームAが完了する、Bは
即座にスタート可能である。同様に、CはBの直後に後
続可能である。
Aが出力ゲートを依然として通過中である場合には、1
つのイネイブルがキューに加えられ、キューを満たす。
Dのエンドがビットカウンタを通過する時までに、一切
のイナイブルがキューから除去されなかった場合には
(すなわち、Aは、出力ゲートを通過中であるし)、新
しいストリームは、ビットカウンタを経てスタートする
ことが出来ない。Bが出力ゲートを供給できるように出
力ゲートは開いた状態にあるので、Aが完了し、そし
て、1つのイネイブルがキューから除去されるまで、コ
ード化データは、入力において、ホールドアップされ
る。
き、スタートロジックの上級制御は、A.12.6「基
礎動作」において記述されているようにユーザーソフト
ウェアが作動可能化キューの長さを制限なしに拡張する
ことを可能にする。動画デコーダが、A.12.6.2
「短いストリームの連続」において記述されているより
も長い一連の短い動画ストリームを収容しなければなら
ない場合に限り、このレベルの制御が必要とされる。
ィギュレーション構成に加えて、リセットの後で、次に
示すコンフィギュレーションが必要とされる(スタート
upアクセスに1を記入することによってスタート制御
ロジックへのアクセスが得られる)。
た場合、割込みを作動可能化するためにアクセプトイネ
ーブルマスク=1をセットする。
された場合、割込みを作動可能化するためにターゲット
metマスク=1をセットする。
チンが必要とされる。
ーチンは、そのオフチップ作動可能化キューに1つのイ
ネイブル加えなければならない。
の作動態様」イネーブルストリームレジスタに1を記入
すると、1つのイネイブルが短いキューにロードされ
る。
ッシュが出力ゲートを通過すると、ゲートは閉じる。利
用可能な1つのイネイブルがキューのエンドに在る場合
には、ゲートが開いて、そして、アクセプトイネーブル
イベントを生成する。アクセプトイネーブルマスクが1
にセットされる場合には、割込みが生成可能であり、そ
して、キューのエンドから1つのイネイブルが除去され
る(レジスタイネーブルストリームはリセットされ
る)。
ロにセットされる場合には、アクセプトイネーブルイベ
ントに続いて割込みは生成されず、そして、当該イネイ
ブルはキューのエンドから除去されない。このメカニズ
ムは、A.12.5に述べられているように、出力ゲー
トを開いた状態に保つために使用できる。
カウンタは、フラッシュトークンがこのカウンタを通過
した後で、カウントを開始する。このフラッシュトーク
ンは、現行動画ストリームのエンドを示す。この点に関
して、ビットカウンタは、ビットカウントtarget
レジスタにセットされているビットカウント目標に適合
するまでカウントを継続する。次に、目標適合イベント
が生成され、そして、ビットカウンタがゼロにリセット
し、そして、次のフラッシュトークンを待つ。
(255)に到達すると、インクリメントを停止する。
ール」本発明において、ビットカウンタを1度インクリ
メントするには2の(bit count prescale+1)乗×512
ビットが必要である。更に、ビットカウントプリスケー
ルは、0と7との間に値を保持できる3ビットレジスタ
である。
されているので(例えば、スタートコード)、ビットカ
ウントは近似的であり、従って、非データトークンを含
む。
シュ」ビットカウント目標の達成以前に、フラッシュト
ークンがビットカウンタに到着する場合には、割込みの
原因となり得るイベントが生成される(カウンタflu
shedtooearlyマスク=1である場合)。割
込みが生成されれば、ビットカウンタ回路が停止し、そ
れ以上のデータ入力を阻止する。このイベントが発生し
た後において何時出力ゲートを開くかを決定するのはユ
ーザソフトウェアの責任である。ビットカウント目標と
して0を記入することによって開くように出力ゲートを
作成することが出来る。2、3のピクチャだけ継続する
動画ストリームの復号化を試行する場合に限り、これら
の情況が発生するはずである。
空間デコーダは、2つの論理的データバッファ、即ち、
コード化データバッファ(CDB)及びトークンバッフ
ァ(TB)を管理する。
ンデコーダの入力との間でコード化データを緩衝する。
これは、低データレートコード化動画データに対して緩
衝作用を提供する。TBは、ハフマンデコーダの出力と
空間動画復号化回路(逆モデラ、量子化器、及びDC
T)の入力との間のデータを緩衝する。この2番目の論
理的バッファは、変動するデータ量を持つピクチャの処
理を収容するために処理時間が拡張を含むことを可能に
する。
オフチップDRAMアレイに保持される。これらのバッ
ファ用アドレスは、バッファマネージャによって生成さ
れる。
スタ」空間デコーダバッファマネージャーは、デバイス
がリセットされた直後に、1度だけ構成されるように意
図されている。正常作動中は、バッファマネージャの再
構成に関する必要条件はない。
で、バッファマネージャは停止させられ(バッファマネ
ジャアクセスレジスタを1にセットする)、コンフィギ
ュレーション化を待つ。レジスタが構成された後で、バ
ッファマネジャアクセスは0にセット可能であり、復号
化を開始することができる。
ージャに使用されているレジスタは、殆どの場合、高信
頼度を以てアクセスすることは不可能である。あらゆる
バッファマネージャーレジスタにアクセスしようとする
場合には、それ以前に、バッファマネジャアクセスを1
にセットしなければならない。これは、バッファマネジ
ャアクセスから値1が読み取られるまで、待ちプロトコ
ルに従うことを必須にする。バッファの条件を監視する
ために、例えばcdbfull、及びcdbempty
のようなレジスタをポーリングする場合、アクセスの確
保および放棄に要する時間について考慮しなければなら
ない。
値」一般に、データは、空間デコーダとオフチップDR
AMとの間において64バイトのバーストとして転送さ
れる(DRAMの高速ページモードを用いる)。全ての
バッファポインタ及び長さレジスタは、これらの64バ
イト(512ビット)データのブロックを意味する。従
って、バッファマネージャの18ビットレジスタは、2
56kブロック線形アドレススペース(即ち、128M
b)を記述する。
ースの幅(8、16、または32ビット)からは独立し
ている。
スタの使用」空間デコーダバッファマネージャは、2つ
の類似したバッファを定義する2組のレジスタを持つ。
バッファリミットレジスタは、メモリースペースの物理
的な上限界を定義する。全てのアドレスは、この数を法
として計算される。
バッファの範囲は、2つのレジスタ、即ち、バッファベ
ース(cdbbase、及びtbbase)、及びバッ
ファ長さ(cdblength、及びtblengt
h)により定義される。バッファが使用可能になるため
には、ここまでに記述した全てのレジスタがそれ以前に
構成されていなければならない。
タにおいて視ることができる。バッファリードレジスタ
(cdbread、及びtbread)は、そこから次
にデータが読み出されるバッファベースからのオフセッ
トを示す。バッファナンバーレジスタ(cdbnumb
er、及びtbnumber)は、バッファによって現
在保持されているデータの量を示す。状態ビットcdb
full、tbfull、cdbempty、及びtb
emptyは、バッファが満杯か、或いは、空であるか
を示す。
に、前述の全てのレジスタに関する単位は512ビット
のデータブロックである。従って、コード化データバッ
ファ内のビット数を求めるためには、cdbnumbe
rから読み出された値は、512を乗じなければならな
い。
タイム」必要条件が適用されない静止画像用アプリケー
ション(例えば、JPEGを使用)は、バッファマネー
ジャによってサポートされた大きいオフチップバッファ
を必要としない。この場合、コード化データバッファ及
びトークンバッファに128ビットストリームオンチッ
プFIFOを供給するためにバッファマネージャを無視
するように(レジスタゼロバッファに1を記入すること
によって)DRAMインターフェースを構成可能であ
る。
ータレートにおける小さいピクチャフォーマットによる
動作を操作するアプリケーションに適する場合もあり得
る。
インターフェースの一部であるので、DRAMインター
フェースのポストリセット構成化の期間中に限ってセッ
トされなければならない。
ン」バッファを介して行われるデータ転送は、ハンドシ
ェークプロトコルによって制御される。従って、バッフ
ァが満杯であるか、又は、空である場合にはデータエラ
ーが発生しないことが保証される。バッファが満杯であ
る場合には、データをバッファに送ろうとする回路は、
バッファにスペースができるまで、停止させられる。バ
ッファが満杯状態を継続する場合には、当該バッファの
上流に配置された更に処理し続けるステージは、空間デ
コーダがその入力ポートにおいてデータを受け入れるこ
とが出来なくなるまで、停止する。同様に、バッファが
空である場合には、バッファからデータを除去しようと
する回路は、データが利用可能になる時まで、停止す
る。
タ及びトークンバッファの位置およびサイズは、バッフ
ァベース及び長さレジスタによって指定される。これら
のレジスタを構成すること、及び2つのバッファの間の
メモリー用法に矛盾がないことを保証することはユーザ
の責任である。
クサ」動画パーザとも呼ばれる動画デマルチプレクサ
は、コード化データをスタートコード検出器によってス
タートされたトークンに変換するというタスクを完了す
る。動画デマルチプレクサには4つの主要処理ブロック
がある、即ち、パーザステートマシン、ハフマンデコー
ダ(ITODを含む)、マクロブロックカウンタ、及び
ALUである。
画データの構文に従い、そして、他のユニットを指示す
る。ハフマンデコーダは、可変長コード化(VL0)デ
ータを整数に変換する。マクロブロックカウンタは、現
在復号化されつつあるピクチャセクションのトラックを
保持する。ALUは、必要な算術計算を行う。
ジスタ」
ークンの生成」動画デマルチプレクサ内の多数のレジス
タは、コード化されたピクチャ/動画データにおいて通
常伝達されるパラメータに直接関係する値を保持する。
例えば、水平画素レジスタは、MPEGシーケンスヘッ
ダ情報、水平サイズ、及びJPEGフレームヘッダパラ
メータ、Xに対応する。これらのレジスタは、当該コー
ド化データが復号化される時、動画デマルチプレクサに
よってロードされる。同様に、これらのレジスタもトー
クンと関連する。
平サイズと関連する。トークンは、コード化データが復
号化される時(又は、直後も)、動画デマルチプレクサ
によって生成される。同様に、トークンは、空間デコー
ダの入力に直接に供給可能である。この場合、トークン
が持つ値は、当該トークンと関連した動画デマルチプレ
クサを構成する。
チャの次元は、空間デコーダに対して2つの異なる単
位、即ち、ピクセル及びマクロブロックとして記述され
る。JPEG及びMPEGは双方共、ピクチャ次元をピ
クセルとして伝達する。ピクセルとして次元を伝達する
ことにより、有効なデータを含むバッファの領域を決定
する。この場合の当該領域は全バッファサイズより小さ
くても差し支えない。マクロブロックとして次元を伝達
することにより、デコーダによって必要とされるバッフ
ァのサイズを決定する。マクロブロック次元は、ピクセ
ルの次元からユーザによって求められなければならな
い。この情報と関連している空間デコーダレジスタを次
に示す、即ち、水平画素、垂直画素、水平マクロブロッ
ク、及び垂直マクロブロックである。
n、v n、maxh、max v、及びmax co
mponent idは、マクロブロックの合成(JP
EGにおけるコード化最小単位)を指定する。各々は、
0から3までの範囲内に値を保持することの出来る1つ
の2ビットのレジスタである。max compone
nt idを除く全てのレジスタは、1から4までのブ
ロックカウントを指定する。例えば、レジスタmax
hが1を保持する場合、マクロブロックの幅は2ブロッ
クである。同様に、max component id
は、関係する異った色成分の数を指定する。
PEGスタイルハフマン表記述」本発明において、ハフ
マン表記述は、エンコーダとデコーダとの間で表記述を
伝達するために、JPEGによって使われるフォーマッ
トを介して空間デコーダに提供される。各表記述には2
つのエレメント、即ち、BITS及びHUFFVALが
ある。ユーザーは、表がコード化される方法についての
完全な記述に関して、JPEG仕様に案内される。
TSは、VLCの各長さを用いて幾つの異なる記号が符
号化されるかについて記述する値を示す表である。各エ
ントリは1つの8ビット値である。JPEGは、VLC
の長さとして最大16ビットまでを許可する。従って、
各表に16個のエントリがある。
VLCが存在するかを記述し、他方、BITS[1]
は、幾つの異なる2ビットVLCが存在するかを記述す
る、等々。
L」HUFFVALは、VLCの長さの増大順に整列さ
れた8ビットデータ値の表である。この表のサイズは、
VLCによってコード化可能な異なる記号の数に依存す
る。
のフォーマットに対してコード化又は復号化される方法
について更に詳細に記述する。
コンフィギュレーション」JPEGビットストリームに
おいて、AC及びDC係数をコード化するために使われ
るハフマン表の記述にはDHTマーカが先行する。スタ
ートコード検出器がDHTマーカを認識する場合、検出
器は、DHTマーカトークンを生成し、そして、次に後
続するデータトークン内にハフマン表記述を配置する
(A.11.3.4参照)。
ハフマン表の構成は、空間デコーダの入力にデータ及び
DHTマーカトークンを供給することによって達成可能
であり、同時に、空間デコーダはJPEGオペレーショ
ンに対して構成される。このメカニズムは、MPEGオ
ペレーションのために必要とされるDC係数ハフマン表
を構成するために使用出来るが、ただし、表がダウンロ
ードされると同時に、空間デコーダの符号化規格はJP
EGにセットされなければならない。
ョン」AC及びDC係数ハフマン表は、同様に、MPI
を介してレジスタに直接記入することが可能である。表
104を参照されたい。
及びdc bits1[l5:0]は、表0x00及び
0x01用のBITS値を保持する。
及びac bits1[15:0]は、表0x10及び
0x11用のBITS値を保持する。
1:0]及びdchuffval1[11:0]は、表
0x00及び0x01用のHUFFVAL値を保持す
る。
1:0]及びachuffval1[161:0]は、
表0x10及び0x11用のHUFFVAL値を保持す
る。
デマルチプレクサは、MPEG、JPEG、及びH.2
61の必要条件をサポートする。符号化規格は、スター
トコード検出器によって生成されたCODINCSTA
NDARDトークンによって自動的に構成される。
表」H.261を復号化するために必要とされる全ての
ハフマン表は、空間デコーダ内のROMに保持され、更
に詳細には、動画デマルチプレクサのパーザステートマ
シン内に保持されるので、ユーザーの介入を必要としな
い。
の構造」H.261は、わずか2つのピクチャフォーマ
ット、即ち、CIF及びQCIFをサポートするものと
して定義される。使用中のピクチャフォーマットは、ビ
ットストリームのPTYPEセクションにおいて送信さ
れる。このデータは、空間デコーダによって復号化され
ると、H261ピクチャタイプレジスタ及びピクチャタ
イプトークン内に配置される。更に、全てのピクチャ及
びマクロブロック構成レジスタは自動的に構成される。
トークン内に配置され表109〜表112参照)、そし
て、これによって、他のデコーダチップ(例えば、時間
デコーダ)が正しく構成されていることを保証する。
表」MPEGを復号化するために必要なハフマンコード
化表の大多数は、空間デコーダ内のROM内に保持され
るので(パーザステートマシン内であることを再度述べ
ておく)、ユーザの介入を必要としない。イントラルマ
クロブロックのDC係数を復号化するために必要な表は
例外である。1つはクロマ用、そして、他の1つはルマ
用として2つの表が必要とされる。これらの表は、復号
化が始まる前に、ユーザソフトウェアによって構成され
なければならない。
成するために必要とされるトークンのシーケンスを示
す。その代りに、MPIを介してこの情報をレジスタに
記入することにより、同じ結果が得られる。
共にどのDC係数ハフマン表を使用するかを制御する。
表116は、MPEGオペレーション用としてどのよう
に構成されなければならないかを示す。これは、MPI
を介するか、或いは、MPEGDCHテーブルトークン
を用いることによって直接行うことが可能である。
G用に定義されたマクロブロックの構成は、H.261
によって用いられる構造と同じである。ピクチャの次元
はコード化データにコード化される。
合、マクロブロックの特性は、表115に指示されたよ
うに構成されなければならない。これは、指示されたよ
うにレジスタに記入するか、或いは、等価のトークンを
空間デコーダの入力に供給することによって行うことが
可能である表109〜表112参照)。
方法は、アプリケーションに依存する。復号化開始前に
ピクチャフォーマットが既知である場合には、表115
に示されるピクチャ構成レジスタは、適切な値を用いて
初期化可能である。その代りに、ピクチャ次元は、コー
ド化データから復号化することが可能であり、そして、
空間デコーダを構成するために使用することが可能であ
る。この場合、ユーザは、パーザーエラーMPEGシー
ケンスをサポートしなければならない。A.14.8
「MPEGシーケンス層における変化」参照。
PEG内には、デコーダを操作するために必要な制御ソ
フトウェアの複雑さを大幅に変更する多数のエンコーダ
オプションがある。一般に、空間デコーダは、次に示す
条件に適合する場合に必要とされるサポートが最小限で
あるように設計されている。* フレーム当たりの色成
分の数が5未満であること(Nf≦4)。
表」更に、JPEGは、ハフマンコード化表がダウンロ
ードされることを可能にする。これらの表は、係数を記
述するVLCを復号化する場合に用いられる。DC係数
を復号化するために走査当たり2つの表が許可され、そ
して、AC係数用にも2つの表が許可される。
ある、即ち、交換フォーマット、圧縮されたイメージデ
ータ用短縮フォーマット、及び表データ用短縮フォーマ
ットである。交換フォーマットファイルには、圧縮され
たイメージデータ及びイメージデータを復号化するため
に必要な全ての表(ハフマン、量子化等)の定義の両者
が含まれる。短縮されたイメージデータフォーマットフ
ァイルは、表定義を省略する。短縮された表フォーマッ
トファイルは表の定義のみを含む。
を受け入れる。ただし、必要とされる全ての表が定義済
みである場合には、短縮されたイメージデータファイル
のみが復号化可能である。他の2つのタイプのJPEG
ファイルのうちのどちらかを介してこの定義は実施可能
であり、或は、その代りに、ユーザソフトウェアによっ
て表をセットアップすることが可能である。
用する場合、各スキャンの前に表の定義がコード化デー
タ内に(エンコーダによって)配置される。これらの定
義は、当該走査および後続する走査期間中に使用するた
めに、空間デコーダによって自動的にロードされる。
は、ある共通に使用される記号が特別に区分される。こ
れらの記号は、大きさ0のDC係数、ブロックAC係数
のエンド、及び16のゼロAC係数のランである。これ
ら特別なケース用の値は、該当するレジスタに記入され
なければならない。
スタdc huff n及びac huff nは、ど
の色成分と共にどのAC及びDC係数ハフマン表を用い
るかを制御する。JPEGオペレーション期間中、これ
らの関係は、走査ヘッダシンタックスのTDj及びTaj
フィールドによって定義される。
構造」空間デコーダによってサポートされた基底線JP
EG復号化には明白な2つのレベルがある、即ち、フレ
ーム当たり4成分まで(Nf≦4)のレベル、及びフレ
ーム当たり4成分より大きい(Nf>4)レベルであ
る。Nf>4を使用する場合には、必要とされる制御ソ
フトウェアは更に複合になる。
EGフレームヘッダに含まれるフレーム成分仕様パラメ
ータは、これらの復号化に際してマクロブロック構成レ
ジスタを構成する表115参照)。4つの異なる色成分
を復号化するために必要な全ての仕様が定義されるの
で、ユーザの介入は必要としない。
詳細に関しては、JPEG仕様を研究されたい。同様
に、JPEGピクチャフォーマットに関してはセクショ
ンA.16.1に簡単に記述されている。
を持つJPEG」空間デコーダは、最大256の異なる
色成分(JPEGにより許可される最大数)を含むJP
EGファイルの復号化が可能である。ただし、4成分よ
り多い色成分を復号化しようとする場合には、付加的な
ユーザ介入が必要とされる。JPEGにおいては、あら
ゆる走査において最大限4成分までが許可されるに過ぎ
ない。
ト」既に述べたように、空間デコーダは、JPEG及び
MPEGによって定義されたフォーマットよりも多いピ
クチャフォーマットをサポートする。
10ブロックよりも多いブロックを含まないように、最
小コード化単位を制限する。空間デコーダは、ブロック
数hn、ブロック数v n、max h、及びmax
vによって記述可能な任意の最小コード化単位を処理す
ることが出来るので、この限界は、空間デコーダには適
用されない。
ロックに関してのみ定義される表115参照)。ただ
し、空間デコーダは、3つの他の成分マクロブロック構
造(例えば4:2:2)を処理可能である。
ー」動画デマルチプレクサは、2つのタイプのイベン
ト、即ち、パーザイベント及びハフマンイベントを生成
可能である。イベント及び割込みをの扱う方法の記述に
関しては、A.6.3「割込み」を参照されたい。
ハフマンイベントは、ハフマンデコーダによって生成さ
れる。ハフマンイベント及びハフマンマスクにおいて指
示されるイベントは、割込みが生成されるかどうかを決
定する。ハフマンマスクが1にセットされる場合には、
割込みが生成され、そして、ハフマンデコーダが停止す
る。レジスタハフマンエラーコード[2:0]は、イベ
ントの原因を示す値を保持する。
ントに1が記入される場合には、ハフマンデコーダは、
エラーからの回復を試行する。同様に、ハフマンマスク
が0にセットされた場合には(割込みをマスクし、そし
て、ハフマンデコーダを停止させない)、ハフマンデコ
ーダは、エラーからの回復を自動的に試行する。
ーザイベントは、パーザによって生成される。このイベ
ントは、パーザイベントにおいて指示される。それ以降
においては、割込みが生成されるかどうかは、パーザー
マスクによって決定される。パーザーマスクが1にセッ
トされている場合には、割込みが生成され、そして、パ
ーザは停止する。レジスタパーザーエラーコード[7:
0]は、イベントの原因を指示する値を保持する。
ントに1が記入される場合には、ハフマンデコーダは、
エラーからの回復を試行する。同様に、ハフマンマスク
が0にセットされた場合には(割込みをマスクし、そし
て、ハフマンデコーダを停止させない)、ハフマンデコ
ーダは、エラーからの回復を自動的に試行する。
ントに1を記入する場合には、パーザは、オペレーショ
ンを再開する。イベントがビットストリームエラーを指
示した場合には、動画デマルチプレクサは、エラーから
の回復を試行する。
は、パーザは、そのイベントビットをセットするが、割
込み又は停止は生成しない。パーザは、オペレーション
を継続し、そして、エラーからの自動的な回復を試行す
る。
集合を使用する。
MPEG及びJPEGは、ユーザデータ及び拡張データ
を埋め込むための同様のメカニズムを用いる。データ
は、スタート/マーカコードによって先行される。アプ
リケーションが当該データに関心を持たない場合には、
スタートコード検出器が、このデータを削除するように
構成可能である(A.11.3.3参照)。
別」パーザイベント、ERREXTENSIONトーク
ン、及びERRユーザトークンは、動画デマルチプレク
サにおけるEXTENSIONデータ、またはユーザデ
ータトークンの到着を示す。これらのトークンがスター
トコード検出器によって生成された場合には(A.1
1.3.3参照)、これらのトークンは、スタートコー
ド検出器にトークンを生成させたスタート/マーカコー
ドの値を持つ表92参照)。この値は、パーザ割込みを
サポートしている間に、rom revisionレジ
スタを読むことによって読み取り可能である。パーザー
イベントに1が記入されるまで動画デマルチプレクサ
は、停止状態を維持する(A.6.3、「割込み」参
照)。
XTENSIONデータ、及びユーザデータトークン
は、拡張データ又はユーザデータを持つデータトークン
により直ちに後続されるものと予測される。動画デマル
チプレクサは、このデータトークンの到着によって、E
RREXTENSIONデータ又はERRユーザデータ
パーザイベントのいずれかを生成する。データトークン
の第1のバイトは、割込みをサービスしている間に、r
om revisionレジスタを読むことによって読
み取り可能である。
は、イベントがクリアされた後における行動態様を決定
する。このレジスタが値0を保持する場合には、データ
トークンにおけるあらゆる残りのデータは動画デマルチ
プレクサによって消費され、そして、イベントは一切生
成されない。継続が1にセットされている場合には、拡
張の各バイト又はユーザデータが動画デマルチプレクサ
に到着するにつれてイベントが生成される。これは、デ
ータトークンが使い果たされるか、或いは、継続が0に
セットされるまで継続する。
イトは、継続の状態に関係なく、romrevisio
nレジスタを介して常に呈示される。
読み終えたことを示すイベントは無い。
61及びMPEGは、符号化規格を拡張する情報がブロ
ック(H.261)又はスライス(MPEG)のピクチ
ャ及びグループ内に埋め込まれることを可能にする。こ
のメカニズムは、拡張データ及びユーザデータ用メカニ
ズムと異なる(セクションA.14.6に記述済み)。
スタートコードはデータに先行しないので、スタートコ
ード検出器によって削除されることが可能である。
イベントERRPSPARE、及びERR GSPAR
Eは、この情報の検出を指示する。MPEGオペレーシ
ョン期間中の対応するイベントはERR EXTRAピ
クチャ、及びERR EXTRAスライスである。
の第1のバイトは、レジスタromrevisionを
介して経て呈示される。
は、イベントがクリアされた後の行動態様を決定する。
このレジスタ値0を保持する場合には、あらゆる残りの
追加情報は動画デマルチプレクサによって消費され、そ
して、一切のイベントが生成されない。継続が1にセッ
トされている場合には、追加情報の各バイトが動画デマ
ルチプレクサに到着するにつれて、イベントが生成され
る。この継続は、追加情報が使い果たされるか、或い
は、継続が0にセットされるまで継続する。
イトは、継続の状態に関係なく、romrevisio
nレジスタを介して常に呈示され。2)拡張/ユーザデ
ータの最後のバイトを読み終えたことを示すイベントは
無い。
Oトークンの生成」MPEGオペレーション期間中、レ
ジスタフィールドinfoが1にセットされている場合
には、あらゆるextra informationピ
クチャの第1のバイトは、FIELD INFOトーク
ン内に配置される。この行動態様は、MPEGの標準化
アクティビティによってカバーされない。FIELD
INFOトークンの定義を表4〜表11に示す。
る場合には、extrainformationピクチ
ャの第1のバイトに対して一切のパーザイベントが生成
されない。ただし、extra informatio
nピクチャのあらゆる後続バイトに対してイベントが生
成される。extra informationピクチ
ャの1つの単一バイトだけがある場合には、パーザイベ
ントは一切発生しない。
おける変化」MPEGシーケンスヘッダは、復号化され
ようとしている動画の次に示す特性を記述する。
ペクトレシオ*ピクチャレート*コード化データレート
*動画バッファベリファイアのバッファサイズ 空間デコーダがシーケンスヘッダを復号化する際に、こ
れら任意のパラメータが変化する場合には、パーザイベ
ントERR MPEGシーケンスが生成される。
化」ピクチャサイズが変化した場合、ユーザのソフトウ
ェアは、horizpels、及びvertpelsに
おける値を読み取り、そして、レジスタhorizma
croblocks、及びvertmacrobloc
ksにロードするための新しい値を計算する。
発明に基づき、トークンバッファの出力と空間デコーダ
の出力との間で空間復号化が発生する。
ト、即ち、逆モデラ、逆量子化器、及び逆離散コサイン
トランスフォーマがある。このセクションの入力(トー
クンバッファから)において、データトークンは、量子
化された係数のラン及びレベル表現を含む。出力(逆D
CTの)において、データトークンはピクセル情報の8
×8ブロックを含む。
ファ内のデータトークンは、量子化された係数の値、及
び表示された係数の間のゼロの数に関する情報を含む。
逆モデラは、各データトークンが64の値を含むよう
に、ゼロのランに関する情報を拡大する。この段階にお
いて、データトークンにおける値は量子化された係数で
ある。
化規格には関係なく、同じである。コンフィギュレーシ
ョンは一切不要である。
ての必要条件を一層良く理解するために、読者は、任意
のピクチャコード化規格を調査することが可能である。
において、量子化器は、DCT係数の分解能度を低下さ
せるためにDCT出力を分割する。デコーダにおける逆
量子化器の機能は、元の値に近似するように復元するた
めに、これらの量子化されたDCT係数に乗算を施すこ
とである。
要」異なる符号化規格の各々によって用いられる量子化
計画には重要な差がある。各々の規格によって用いられ
る量子化計画について詳細に理解するためには、読者
は、関連符号化規格文書を研究されたい。
なる規格の必要条件に適合するように、逆量子化器のオ
ペレーションを構成する。正常オペレーションにおい
て、このコード化レジスタは、コーディング・スタンダ
ードトークンによって自動的にロードされる。コード化
規格のコンフィギュレーションに関する一層の情報に関
しては、セクションA.21.1を参照されたい。
れた係数に乗算する数のソースである。これらについて
は、次に概説される。更に、ここには説明されていない
が、必要な算術演算(丸める、等)において詳細な相違
がある。
Qの概観」H.261において、係数を調整するため
に、1つの単一「スケールファクタ」が用いられる。エ
ンコーダは、作成されるデータレートを調整するため
に、このスケールファクタを定期的に変更できる。イン
トラコード化ブロック内の「DC」係数には、わずかに
異なる規則が適用される。
の概観」基底線JPEGは、各走査において最大4つま
での異なる色成分を含むピクチャを許容する。これらの
4つの色成分に対しては、64エントリ量子化表が指定
可能である。これらの表の各エントリは、64の量子化
された係数のうちの1つに対して「スケール」ファクタ
として使用できる。
EGデータ内に含まれ、そして、量子化表に自動的にロ
ードされる。
の概観」MPEGは、H.261及びJPEG量子化技
術を用いる。JPEGの場合と同様に、各々64のエン
トリを備えた4つの量子化表が使用可能である。ただ
し、表の使用方法は全く異なる。
び非イントラである。各データタイプに対して異なった
表が用いられる。2つの「デフォルト」表が、MPEG
によって定義される。1つはイントラデータ用であり、
いま1つは非イントラデータ用である表130、及び表
131参照)。これらのデフォルト表は、MPEG復号
化が可能になる以前に、空間デコーダの量子化表メモリ
ーに記入されなければならない。
ド」量子化表を許可する。1つは、イントラデータと共
に使用するためであり、いま1つは、非イントラデータ
と共に使用するためである。これらの表に対する値は、
MPEGデータストリーム内に含まれ、そして、量子化
表メモリ自動的にロードされる。
によって修正される。
タ」
以前に、iqアクセスレジスタがセットされなければな
らない。iqアクセスが0にセットされている間に、表
に読み取りが試行された場合には、量子化表メモリは値
ゼロを返す。
正常オペレーションにおいては、コーディング・スタン
ダードトークンによって自動的に構成されるので、逆量
子化器の符号化規格を構成する必要はない。
子化器表は使用されない。特別なコンフィギュレーショ
ンは必要とされない。JPEGオペレーションに対して
は、逆量子化器によって必要とされる表は、コード化デ
ータから抽出された情報によって自動的にロードされな
ければならない。MPEGオペレーションは、デフォル
ト量子化表がロードされることを必要とする。このロー
ディングは、iqアクセスが1にセットされている間に
行われなければならない。表130内の値は、逆量子化
器の拡張アドレススペースの場所0x00から0x3F
までに記入されなければならない(キーホールレジスタ
iqキーホールアドレス、及びiqキーホールデータを
介してアクセス可能)。同様に、表131の値は、逆量
子化器の拡張アドレススペースの場所0x40から0x
7Fまでに記入されなければならない。
介して逆量子化器表を構成する代りに、これらの逆量子
化器表をトークンによって初期化することが可能であ
る。これらのトークンは、コード化されたデータポート
又はMPIのいずれかによって供給可能である。
表3〜表11に記述される。前記トークンは、表の4
(0〜3)つの場所のいずれがトークンによって定義さ
れるかを指定する1つの2ビットフィールドttを持
つ。MPEGオペレーションに対しては、表0及び1の
デフォルトの定義がロードされることが必要である。
EG及びMPEGの両方に対しては、量子化表エントリ
は、8ビットの数である。255から1までの値は正当
である。値0は不当である。
量子化表の値は、「ジグザグ」走査順序において用いら
れる(符号化規格参照)。表は、64の値を持つ一次元
アレイと見なされなければならない(8×8アレイでは
ない)。低いアドレスにおける表のエントリは、低い周
波数DCT係数に対応する。
ンによって所持される場合には、トークンヘッダの後の
第1の値は、「DC」係数用の表エントリである。
ジスタ」
散変換プロセッサは、CCITT勧告H.26l、IE
EE仕様P1180に規定された必要条件に適合し、そ
して、MPEGの現行改訂案に記述された必要条件に適
合する。
コード化規格が用いられるかに関係なく、同じである。
ユーザによるコンフィギュレーションは一切不要であ
る。
トがある。
者は、任意のピクチャ符号化規格を調査することができ
る。
力への接続」空間デコーダの出力は、幅9ビットのデー
タワードの標準トークンポートである。インターフェー
スの電気的行動態様に関する詳細な情報についてはセク
ションA.4を参照されたい。
規格に依存する。一例として、本開示のこのセクション
においては、JPEGオペレーション用に構成する際
に、空間デコーダの出力について考察する。時間デコー
ダは、JPEGの復号化結果として得られるトークンシ
ーケンスを修正しないので、このセクションにおいて
は、JPEGオペレーション期間中に時間デコーダの出
力において観察されるトークンシーケンスについて記述
する。
共時間デコーダの使用を必要とする。MPEG及びH.
261オペレーション用に構成されている場合における
時間デコーダ出力への接続に関する情報についてはセク
ションA.19を参照されたい。 更に、このセクショ
ンにおいては、空間デコーダの出力においていずれのト
ークンが利用できるか及び当該出力をディスプレイする
ための回路設計に際していずれのトークンが最も有用で
あるかを識別する。他のトークンも存在するが、それら
の出力はディスプレイ不要なので、ここでは検討しな
い。このセクションにおいて集中的に検討する項目を次
に示す。
方法。
法。
別方法。
場所を識別する方法A.16.1 「JPEGピクチャ
の構造」このセクションでは、JPEG構文の特徴につ
いて概観する。詳細については符号化規格を参照された
い。
るための様々なメカニズムを提供する。JPEGは、動
画をコード化するメカニズムを提供するためにピクチャ
の集りをまとめてコード化する方法を記述しようと試み
ない。
の基底線としての順次的な作動モードをサポートする。
この構文には主要な3つのレベル、即ち、イメージ、フ
レーム、及びスキャンがある。順次的な1つのイメージ
はただ1つの単一フレームを含む。1つのフレームは、
1から256までの間の異なるイメージ(色)成分を含
むことが出来る。これらのイメージ成分は様々な方法に
おいてスキャンに集めることが出来る。各スキャンは1
から4までの間のイメージ成分を含むことができる(図
90「JPEG基底線としての順次的構造の概観」参
照)。スキャンが1つの単一イメージ成分を含む場合に
は、非インタリーブドスキャンであり、複数のイメージ
成分を含む場合には、インタリーブドスキャンである。
1つのフレームは、インタリーブドキャンと非インタリ
ーブドスキャンの混合物を含むことができる。フレーム
が含むことのできるスキャンの数は、フレームが含むこ
とのできるイメージ成分の数に関する256の限界によ
って決定される。 1つのインタリーブドスキャン内に
おいて、データは、MPEG及びH.261に用いられ
るマクロブロックに相似する最小コード化単位(MC
U)に組織される。これらのMOUは、ピクチャ内にお
いてラスタ順に配置される。非インタリーブドスキャン
におけるMCUは、1つの単一8×8ブロックである。
この場合にも、MCUはラスタ組織化される。
成分を含むJPEGデータを容易に復号化することが出
来る。大きい数の成分について記述するファイルも、同
様に復号化することが出来る。ただし、復号化される成
分の次の1組を収容するためには、スキャンの間におい
て或る程度の再構成が要求されることもあり得る。
PEGマーカコードは、スタートコード検出器によって
トークンと指定された相似のMPEGに変換される表9
2、及び図91「トークン化されたJPEGピクチャ」
参照)。
30、MH7オペレーション。
時間復号化を提供する。
ーマット。
0、30Hz、4:2:0。
マット。
能。
lue-less DRAM interface)。
ンパニオンチップであり、そして、H.261、及びM
PEGによって必要とされる時間復号化を提供する。
1によって必要とされる全ての予測形成機能を実行す
る。1つの単一4Mb DRAM(例えば、512k×
8)を用いて、時間デコーダは、CIF及びQCIF
H.261動画を復号化することができる。8Mb D
RAM(例えば、2つの256k×16)を用いると、
704×480、30Hz、4:2:0MPEG動画を
復号化することができる。
は時間デコーダを必要としない。時間デコーダが多重規
格デコーダに含まれる場合には、当該時間デコーダは、
復号化済みJPEGピクチャをその出力まで供給する。
注記:前述の値は、本発明の1実施例の一例を示すに過
ぎず、必ずしも制限を意図するものではない。本発明の
範囲から逸脱することなしに、他の値及び範囲を用いる
ことが可能であることが理解されるはずである。
「nc」とラベル表示されているピンは、現在本発明に
は使用されず、将来の製品のために予約されているピン
である。これらのピンは、接続しないで残しておかねば
ならない。これらのピンは、VDD、GND、相互、また
は他のあらゆる信号と接続してはならない。
ン]当然理解されるように、全てのVDD及びGNDピン
は該当する電源に接続されなければならない。全てのV
DD及びGNDピンが正しく使用されていなければ、デバ
イスは正しく作動しない。
ストピンの接続]時間デコーダの9つのピンは、内部テ
スト用として予約済みである。
セクションA.8.1参照。
A.18.1 「データ入力」時間デコーダの入力デー
タポートは9ビット幅のデータワードを持つ標準のトー
クンポートである。ほとんどの応用例において、これは
空間デコーダの出力トークンポートに直接接続される。
このインターフェースの電気的行為に関する詳細な情報
については、セクションA.4を参照せよ。
ビデオピクチャフォーマットに関するパラメーターは、
空間デコーダによって発生されるトークンにより、時間
デコーダ内のレジスタに自動的にロードされる。
セッサインターフェースを介して)アプリケーション依
存要素を形成しなければならない。
ータ処理が行われていない時にのみ、時間デコーダを形
成すべきである。これはリセットが解除された後のディ
フォルトステートである。チップアクセスレジスタに1
を書き込むことにより、時間デコーダを停止して再形成
できる。形成が完了した後、チップアクセスに0を書き
込まねばならない。
かに関する詳細は、セクションA.5.3を参照せよ。
ェース」DRAMインターフェースのタイミングは予測
的に符号化されたビデオ(例えばH.261またはMP
EG)を解読できるようになる前に形成されなければな
らない。セクションA.5「DRAMインターフェー
ス」を参照せよ。
クチャバッファポインタ(18ビット)及び成分オフセ
ット(17ビット)レジスタはバイトアドレスではな
く、ブロック(8×8バイト)アドレスを明記する。
憶割当」予測的に符号化されたビデオ(H.261もし
くはMPEG)を解読するため、時間デコーダは2つの
ピクチャバッファを処理しなければならない。これらの
バッファが如何に使用されるかに関する詳細について
は、セクションA.18.4及びA.18.4.4を参
照せよ。
ることなく)必要なビデオフォーマットの単一ピクチャ
を記憶するために、ピクチャバッファポインタ(pic
ture buffer 0及びpicture bu
ffer1)の各々の上に充分な記憶があることを確か
めねばならない。通常、ピクチャバッファポインタの1
つが0(つまり記憶の底部)に設定され、他の1つが記
憶スペースの中間を指すように設定される。
はH.261用の通常の形成」H.261及びMPEG
は両者共、異なる色成分間の比4:1:1(つまり、い
ずれかのクロミナンス成分にあるピクセルの4倍の輝度
ピクセルがある)を使用する。
されているように、成分0は輝度成分であり、成分1及
び2はクロミナンスである。
0がピクチャバッファポインタにおいて始まるように、
component offset 0を0に設定す
る。同様に、component offset 1は
ピクチャバッファサイズの4/6に設定し、compo
nent offset 2はピクチャバッファサイズ
の5/6に設定することができよう。
再整理(re-ordering)」MPEGは3つの異なるピクチ
ャタイプを使用する:イントラ(I)、予想された
(P)、及び二方向的に補間された(B)。Bピクチャ
は2つのピクチャ:未来からのものと過去からのものか
らの予想に基づいている。ピクチャの順序は、Bピクチ
ャの解読が求められる前に、I及びPピクチャが符号化
されたデータから解読されるように、エンコーダで修正
される。
表示される前に修正されなければならない。時間デコー
ダは(レジスタMPEG reordering=1に
設定することによりより)このピクチャ再整理を提供す
ることができる。あるいは、ユーザーは彼の表示インタ
ーフェース機能の一部としてピクチャ再整理を実行した
いと望むかもしれない。ピクチャ再整理を提供するよう
に時間デコーダを形成することにより、解読され得るビ
デオ解像度を低減させるかもしれない。A.18.5を
参照せよ。
コーディング及びMPEGデコーディングの予測形成要
件は全く異なっている。コーディングスタンダードトー
クンは時間デコーダが異なる基準の予測要件を収容する
ように自動的に形成する。
ョン」JPEGオペレーション用に形成されると、JP
EGは時間デコーディングを必要としないので、予測は
行われない。
ション」H.261では、予測はデコーディングされた
ピクチャからのみ行われる。動きベクトルは整数ピクセ
ルの精度に条件として指定されるだけである。エンコー
ダは低域フィルターが予測結果に適用されるように指定
することができる。
て、それは次のピクチャをデコーディングする際に使用
できるように、オフチップDRAM内のピクチャバッフ
ァに書き込まれる。デコーディングされたピクチャはオ
フチップDRAMに書き込まれるにつれて、時間デコー
ダの出力に現れる。
ーションについては、読出し装置はH.261スタンダ
ードに向けられる。本発明の時間デコーダはH.261
の要件を完全に遵守している。
ン(再整理を伴わない)時間デコーダのオペレーション
は3つの異なるMPEGピクチャタイプ(I、P、B)
の各々に対して変化する。Iピクチャは時間デコーダに
よる更なるデコーディングを必要としないが、後にP及
びBピクチャをデコーディングする際に使用されるため
にピクチャバッファ(フレーム記憶装置)に記憶されな
ければならない。
デコーディングされたPもしくはIピクチャからの予測
を形成する必要がある。解読されたPピクチャはP及び
Bピクチャを解読する際に使用するため、ピクチャバッ
ファの中に記憶される。MPEGは動きベクトルが半ピ
クセルの精度に指定されるようにする。オンチップフィ
ルタはこの半ピクセル精度を支持するための補間を提供
する。
予測を要求することができる。Pピクチャと同様に、半
ピクセル動きベクトル解像度精度はピクチャ情報のオン
チップ補間を要求する。Bピクチャはオフチップバッフ
ァには記憶されない。それらは一時的なものにすぎな
い。
るにつれて、時間デコーダの出力ポートに現れる。従っ
て、ピクチャシーケンスは符号化されたMPEGデータ
におけるものと同じである(図94の上位部分を参
照)。
ーションについては、提案されているMPEGスタンダ
ードの草案を参照せよ。本発明の時間デコーダによりこ
れらの要件が満たされる。
ョン(再整理を伴う)」ピクチャ再整理を伴うMPEG
オペレーション(MPEG reordering=
1)のために形成されると、予測形成オペレーションは
上述のセクションA.18.4.3におけるのと同様で
ある。しかしながら、ピクチャシーケンスを再整理する
ために付加的なデータ伝送が実施される。
A.18.4.3において記した通りである。しかしな
がら、I及びPピクチャはデコーディングされた時に出
力されない。その代わりに、(前述のように)オフチッ
プバッファに書き込まれ、次のIもしくはPピクチャが
デコーディングのために届いた時にのみ読み出される。
A.18.4.4.1 「デコーダスタートアップ特
性」次のP(もしくはI)ピクチャのデコーディングが
スタートされるまで、最初のIピクチャの出力が遅らさ
れる。このことはビデオデコーダのスタートアップ特性
を概算する時に考慮されなければならない。
性」時間デコーダは前のピクチャをそのオフチップバッ
ファ(フレーム記憶装置)からフラッシュするために、
次のPもしくはIピクチャに依存する。これはビデオシ
ーケンスの終了時、及び新しいビデオシーケンスをスタ
ートする時に結果が現れる。空間デコーダは最後のP
(もしくはI)ピクチャをフラッシュするために、ビデ
オシーケンスの終了時に「偽の」I/Pピクチャを作り
出すための便宜を提供する。しかしながら、この「偽
の」ピクチャは次のビデオシーケンスが始まるとフラッ
シュされる。
制するためのオプションを提供する。これは、新ビデオ
シーケンスが旧シーケンスの完了後直ちにデコーダに供
給されることが知られている場合に有用である。この新
シーケンス内の最初のピクチャは前のシーケンスの最後
のピクチャをフラッシュすることになる。
をデコーディングする時に、時間デコーダが支持するこ
とができるビデオ解像度は、そのDRAMインターフェ
ースのメモリー帯域幅により制限される。MPEGにと
って、2つの場合を考慮する必要がある:MPEGピク
チャ再整理を伴う場合と、伴わない場合である。
8.5.3はMPEG規約の現行の草案により要求され
る最悪の場合の要件について論じている。より低いメモ
リー帯域幅の要件を持つMPEGのサブセットが企図さ
れる。例えば、整数解像度動きベクトルだけを用いて、
もしくはその代わりに、Bピクチャを使用せずに、メモ
リー帯域幅の要件を重大に低減させる。該かるサブセッ
トについての分析はここでは行わない。
ェースの特性]DRAMインターフェースを横切ってデ
ータを伝送するために取られるサイクル数は要因数に依
存する:・使用されるDRAMに適合させるためのDR
AMインターフェースのタイミング形成・データバス幅
(8、16または32ビット)・データ伝送タイプ:・
8×8ブロックの読出しまたは書込み・半ピクセル精度
に対する予測のため・整数ピクセル精度に対する予測の
ためDRAMインターフェースの詳細な形成に関する情
報に関しては、セクションA.5、「DRAMインター
フェース」を参照せよ。
幾つのDRAMインターフェース「サイクル」が必要で
あるかを示している。
な」DRAMのために評価する。この例では、27MH
zクロックであると仮定する。ここでは27MHzを使
用するが、それに制限するものではないことを認識すべ
きである。アクセススタートには11ティック(102
ns)が必要であり、データ伝送には6ティック(56
ns)が必要である。
PEG解像度」ピークメモリー帯域幅のロードはBピク
チャをデコーディングする時に発生する。「最悪の場合
の」シナリオでは、Bフレームは両方のピクチャバッフ
ァからの予測から形成され、全ての予測は半ピクセル精
度に対するものである。
ンターフェースを介して)2つの正確な半ピクセル精度
予測のために必要なデータを読むために、DRAMイン
ターフェース3815nsが必要であることが解る。時
間デコーダが支持することができる解像度は、1ピクチ
ャ時間内に遂行できるこれらの予測数によって決定され
る。本例では、時間デコーダは1つの33msピクチャ
周期に(例えば、30Hzビデオのために)8737の
8×8ブロックを処理することができる。
0であれば、(4:2:0のクロマサンプリングを考慮
すれば)各ピクチャは7920の8×8ブロックを包含
する。このビデオフォーマットは(DRAMリフレッシ
ュ等の他の要因を考慮に入れる前に)利用できるDRA
Mインターフェース帯域幅の約91%を消費する。従っ
て、時間デコーダはこのビデオフォーマットを支持する
ことができる。
G解像度」MPEGピクチャ再整理を用いれば、Pピク
チャがデコーディングされている間に、最悪の場合のシ
ナリオと遭遇する。この時間の間に、DRAMインター
フェース上に3回のロードが行われる:・形態予測・結
果を書き戻す・以前のPまたはIピクチャを読み出す。
ト幅のインターフェースが利用できる場合に、これら各
々の仕事のために必要な回数を見い出すことができる。
予測形成には1907ns/nが必要である一方、読出
し及び書込みには各々991nsが必要であり、全体で
3889nsを必要とする。これは時間デコーダが33
ms周期の間に8485の8×8ブロックを処理できる
ようにする。
には、(リフレッシュを無視して)利用できるメモリー
帯域幅のほぼ93%を使用することになる。
61は30Hzまでのピクチャ率でCIF(352×2
88)とQCIF(172×144)の2つのピクチャ
フォーマットを支持するだけである。CIFピクチャは
2376の8×8ブロックを包含する。唯一必要なメモ
リーオペレーションは8×8ブロックの配線と、整数精
度動きベクトルでの予測形成である。
ための表153からの数字例を用いて、各ブロックに書
き込むために3657nsを必要とする一方、1ブロッ
クの予測形成には3963ns/nが必要であり、全体
でブロック毎に7620nsが必要であることが解る。
1つのCIFピクチャのための処理時間は約18msで
あり、30Hzのビデオを支持するために必要な33m
sよりかなり少なくなっている。
るJPEGビデオの解像度は発明の空間デコーダもしく
は表示インターフェースの能力により決定される。時間
デコーダはJPEG解像度に影響を及ぼさない。
A.18.6.1「チップストップ」本発明では、チッ
プアクセスに1を書き込むと、時間デコーダがオペレー
ションを停止して再形成ができるようにすることを求め
る。一度受け入れられると、通常時間デコーダは現在の
ビデオシーケンスのエンドに達するまでオペレーション
を続ける。その後、時間デコーダは停止される。
が発生する。chip stopped mask=1
であれば、割り込みが発生する。
発明の時間デコーダは誤差データに対する予測を加える
アダーを具備する。誤差データバイト数と予測データバ
イト数との間に差がある場合、カウントエラーイベント
が発生する。
場合、割り込みが発生し、予測形成が停止する。
を書き込むと、イベントをクリアして時間デコーダが進
めるようにする。その後エラーを発生させたDATAト
ークンが続く。しかしながら、エラーを発生させたDA
TAトークンは正しい長さ(46バイト)のものではな
いであろう。これは更なる問題を容易に発生させるであ
ろう。このように、カウントエラーは重大なハードウェ
アエラーが発生した場合にのみ生じるべきである。
力への接続」時間デコーダの出力は8ビット幅のデータ
ワードを持つ標準のトークンポートである。インターフ
ェースの電気的行為に関するより詳細な情報については
セクションA.4を参照せよ。
使用されるコーディングスタンダードに依存し、MPE
Gの場合には、ピクチャが再整理されるか否かによるで
あろう。本セクションは時間デコーダの出力においてど
のトークンが利用できるか、またその出力を表示するた
めの回路を設計する際にどれが最も有用であるかを特定
する。他のトークンも存在するであろうが、出力を表示
する必要がないので、それらに関してはここでは論じな
い。
げて論じる:・シーケンスのスタート及びエンドを如何
にして特定できるか、・ピクチャのスタート及びエンド
を如何にして特定できるか、・ピクチャをいつ表示する
かを如何にして特定するか、・ピクチャデータを表示の
どこに置くべきかを如何にして特定するか。
データのデコーディング時に、時間デコーダにより出力
されるトークンシーケンスは、空間デコーダの出力にお
いて見られるものと同一である。JPEGは時間デコー
ダによる処理を必要としないことを思いだしてほしい。
しかしながら、時間デコーダは(空間デコーダにおける
IDCTの限定された算術精度から生じる)負のバリュ
ーのために、イントラデータトークンを調べ、それらを
0に置き換える。
力シーケンスについての詳細な議論はセクションA.1
6を参照せよ。
9.2.1 「セッションのスタートとエンド」H.2
61はビデオデータ内のビデオストリームのスタート及
びエンドを合図しない。それにもかかわらず、これはア
プリケーションによって暗示される。例えば、電気通信
が接続されるとシーケンスが始まり、ラインが遮断され
ると終了する。このように、ビデオシンタックスにおい
て最も高いレイヤは「ピクチャレイヤ」である。
ド検出器は、最初のピクチャスタートの前に、シーケン
ススタートとコーディングスタンダードトークンが自動
的に挿入されるようにする。セクションA.11.7.
3及びA.11.7.4を参照せよ。
ば、ラインが遮断された時に)、ユーザーは符号化デー
タの終了後、フラッシュトークンを挿入しなければなら
ない。これには多くの効果がある(A.31.1を参
照):・それは最後のピクチャの終わりを合図するため
に、ピクチャエンドが発せられることを保証する。
を通して押されることを保証する。A.19.2.2
「ピクチャの取得」各ピクチャはシンタックスレイヤと
称されるエレメントの階層から成る。H.261をデコ
ーディングする時、時間デコーダの出力におけるトーク
ンのシーケンスはこの構造を反映する。
ピクチャの前にピクチャスタートトークンが置かれ、ピ
クチャのすぐ後にピクチャエンドトークンが続く。H.
261は当然ピクチャエンドを含まない。このトークン
は空間デコーダのスタートコード検出器により自動的に
挿入される。ピクチャスタートトークンの後に、時間標
準トークン及びピクチャタイプトークンが続くであろ
う。時間標準トークンは、ピクチャがいつ表示されるべ
きかを指示する10ビット数を支持し(その内5LSB
だけがH.261において使用される)。H.261エ
ンコーダは(低いデータ率を達成するために)シーケン
スからピクチャを省略することができるので、この点は
表示システムによって研究されるべきである。ピクチャ
の省略は、連続するピクチャ間の1つ以上の分だけ増加
する時間基準によって検出され得る。
フォーマットに関する情報を有する。表示システムはこ
の情報を調べ、CIFもしくはQCIFピクチャがデコ
ーディングされているか否かを検出することができる。
しかしながら、ハフマンデコーダ内のレジスタを調べる
ことにより、ピクチャフォーマットに関する情報も利用
できる。<Xref:ハフマンデコーダセクション>
A.19.2.2.2 「ブロックレイヤのグループ」
各H.261ピクチャは多数の「ブロックグループ」に
より構成される。その各々の前に、(H.261のグル
ープNo.とグループスタートコードから引き出され
た)スライススタートトークンが置かれる。このトーク
ンは表示のどこにブロックのグループを置くべきかを指
示する8ビット値を所有している。これはデータエラー
の後デコーダが再び同時性を持つ機会を提供する。更
に、それは、ピクチャを描写するために付加的な情報を
必要としないピクチャエリアがあれば、ブロックを飛び
越す機構をエンコーダに提供する。空間デコーダ及び時
間デコーダは各ピクチャが正しい数のブロックを含み、
それらのブロックが正しい位置にあることを確実にする
ため、既にこの情報を使用しているので、スライススタ
ートが時間デコーダの出力に達する時までに、その情報
は効果的に冗長となっている。こうして、ピクチャのス
タート以来出力されてきたブロック数を数えることによ
り、時間デコーダにより出力されるデータブロックをど
こに置くべきかを計算することが可能となる。
H.261のブロック数のグループより1つ少ない数で
ある(詳細な情報についてはH.261基準を参照せ
よ)。図103はCIF及びQCIFピクチャ内のH.
261ブロックグループの位置付けを示している。
ナンバリングはスライススタートにより支持されるもの
と同じである。これはこれらのグループをナンバリング
するためのH.261規定とは異なる。
スライススタートと最初のマクロブロックとの間に、他
のトークンがあってもよい。それらはピクチャデータを
表示する必要がないので、無視できる。
レイヤ」ブロックの各グループ内のマクロブロックのシ
ーケンスはH.261により限定される。各マクロブロ
ックの位置を説明する特別なトークン情報はない。ユー
ザーは各情報をどこに表示するかを決定するためにマク
ロブロックシーケンスを通して数えなければならない。
グループに配置されるシーケンスを示している。
を包含する。6個の各グループに含まれるデータトーク
ンのシーケンスはH.261のマクロブロック構造によ
り限定される。各データトークンは1つの色成分の8×
8ピクセルエリアのために正確に64データバイトを含
むべきである。色成分はデータトークン内の2ビットの
数の中に含まれる(セクションA.3.5.1参照)。
しかしながら、H.261内の色成分のシーケンスは限
定される。
きベクトル、量子化器スケール係数等に関する情報を伝
達する多くのトークンが置かれる。これらのトークンは
ピクチャが表示されるようにする必要がないので、無視
することができる。
のために64データバイトを包含する。これらはラスタ
状態である。
はそのシンタックスの中に多くのレイヤを含む。これら
はビデオシーケンスやピクチャグループ等の概念を具体
化する。
レイヤ」シーケンスは多重エントリポイント(シーケン
ススタート)を持つことができるが、1つだけの出口ポ
イント(シーケンス・エンド)を持つべきである。MP
EGシーケンスヘッダコードが解読される時、空間デコ
ーダはコーディングスタンダードトークン及びそれに続
くシーケンススタートトークンを生じさせる。
ット等を記述するシーケンスヘッダ情報の多くのトーク
ンがあるであろう。シーケンスヘッダにおいて合図され
る情報については草案のMPEGスタンダードを参照
し、このデータが如何にしてトークンに変換されるかに
関する情報については表3〜表11を参照せよ。ビデオ
フォーマットを記述するこの情報は、ハフマンデコーダ
内のレジスタにおいても利用できる。
ケンス内において、もしそのシーケンスが数個のエント
リポイントを持っていれば、数回発生するかもしれな
い。
ープ」ピクチャのMPEGグループはシーケンススター
ト時点で提供されるものに、異なるタイプの「エント
リ」ポイントを提供する。シーケンスヘッダはピクチャ
/ビデオフォーマットに関する情報を提供する。従っ
て、デコーダがシーケンスにおいて使用されるビデオフ
ォーマットの知識を持たない場合、シーケンススタート
で開始しなければならない。しかしながら、一度ビデオ
フォーマットがデコーダの中に構成されると、どのグル
ープのピクチャの位置であってもデコーディングを開始
することができるようにするべきである。
しない。しかしながら、多くのアプリケーションにおい
て、1つのグループは、ランダムアクセスの合理的な粒
子を提供するときに、約0.5秒に相当する。
タートトークンにより指示される。グループスタートの
後で提供されるヘッダ情報は2つの有益なトークン:T
IME CODE及びBROKEN CLOSEDを含
む。
ード情報のサブセットを所有する。これはビデオデコー
ダを他の信号に同期させる際に有用であるかもしれな
い。BROKEN CLOSEDはMPEGのclos
ed gapとbrokenlinkビットを所有す
る。ランダムアクセスの含意及び編集されたビデオシー
ケンスのデコーディングに関しては、セクションA.1
9.3.8を参照せよ。A.19.3.3 ピクチャレ
イヤ新しいピクチャのスタートはピクチャスタートトー
クンにより指示される。このトークンの後には、時間標
準トークン及びピクチャタイプトークンがある。時間デ
コーダがピクチャ再整理を提供するように構成されない
場合、一時的な基準情報が有用であるかもしれない。ピ
クチャタイプの情報は、表示システムが特にオープンG
OPのスタートでBピクチャを処理したい場合に有用で
あるかもしれない(セクション A.19.3.8参
照)。
る。
クションA.19.2.2.2はH.261において使
用されるブロックグループについて論じている。MPE
Gにおけるスライスは同様の機能を果たす。しかしなが
ら、スライス構造は基準によって固定されない。スライ
ススタートトークンが所有する8ビット値は、MPEG
が伝達する「スライス垂直位置」より1つ少ない値であ
る。スライスレイヤの説明に関しては、MPEGスタン
ダード草案を参照せよ。
ャが正しい数のブロックを正しい位置に含んでいること
を確実にするため、既にこの情報を使用しているので、
スライススタートが時間デコーダの出力に達する時まで
に、その情報は効果的に冗長となっている。こうして、
ピクチャのスタート以来出力されてきたブロック数を数
えることにより、時間デコーダにより出力されるデータ
ブロックをどこに置くべきかを計算することが可能とな
る。
関する議論については、セクションA.19.3.7を
参照せよ。
ヤ」各マクロブロックは6ブロックを含む。これらは
(MPEG規約の草案により明記されるように)ラスタ
状態で時間デコーダの出力に現れる。
マクロブロックは6個のデータトークンを包含する。6
個の各グループに含まれるデータトークンのシーケンス
はMPEG規約草案(これはH.261のマクロブロッ
ク構造と同じである)により限定される。各データトー
クンは1つの色成分の8×8ピクセルエリアのために正
確に64データバイトを含むべきである。色成分はデー
タトークン内の2ビットの数の中に含まれる(A.3.
5.1参照)。しかしながら、MPEG内の色成分のシ
ーケンスは限定される。
きベクトル、量子化器スケール係数等に関する情報を伝
達する多くのトークンが置かれる。これらのトークンは
ピクチャが表示されるようにする必要がないので、無視
することができる。
整理の効果」A.18.3.5において説明したよう
に、時間デコーダはMPEGピクチャ再整理を提供する
(MPEG reordering=1)ように構成す
ることができる。データストリームにおける次のP/I
ピクチャが時間デコーダによりデコーディングがスター
トされるまで、P及びIピクチャの出力は遅らされる。
時間デコーダの出力時に、新たにデコーディングされた
P/Iピクチャのデータトークンは、旧P/Iピクチャ
からのデータトークンで置き換えられる。
がオフチップピクチャバッファに書き込まれるにつれ
て、ピクチャのピクチャスタート、時間標準、及びピク
チャタイプのトークンが一時的にオンチップに記憶され
る。ピクチャが表示のために読み出されると、これらの
記憶されたトークンが検索される。従って、再整理され
たP/Iピクチャはピクチャスタート、時間標準、及び
ピクチャタイプのための正しいバリューを持っている。
はリオーダされない。再整理されたP/Iピクチャが表
示のために読み出されるにつれて、それはたったいまデ
コーディングされたばかりのピクチャの低い方のレベル
の非データトークンを拾い上げる。このように、これら
のサブピクチャレイヤのトークンは無視されるべきであ
る。
び編集済みシーケンス」空間デコーダは編集済みMPE
Gビデオデータ及び、MPEGビデオデータへのランダ
ムアクセス後の正しいビデオデコーディングを助ける設
備を提供する。A.19.3.8.1 「オープンGO
P」ピクチャグループ(GOP)は前のGOPの中のP
ピクチャから予測されるBピクチャでスタートすること
ができる。これを「オープンGOP」と呼ぶ。図116
はこれを図示している。ピクチャ17及び18は第2の
GOPのスタートにあるBピクチャである。GOPが
「開かれる」と、エンコーダはPピクチャ16及びIピ
クチャ19からの予測を用いて、これら2つのピクチャ
を符号化することができる。あるいはその代わりに、エ
ンコーダはIピクチャ19からのみの予測を用いるよう
に制限することができるであろう。この場合、第2のG
OPは「閉鎖GOP」と呼ばれる。
コーディングをスタートすると、そのGOPは既にPピ
クチャ16をデコーディングしているので、そのGOP
がたとえ開かれていても、第2のGOPに遭遇しても何
の問題も起こらないであろう。しかしながら、デコーダ
がランダムアクセスを行い、第2のGOPにおいてデコ
ーディングをスタートする場合、それらがP16に依存
していれば(つまり、GOPが開かれていれば)、それ
はB17及びB18をデコーディングできない。
初のGOPとしてオープンGOPに遭遇するか、あるい
はフラッシュトークンを受け取れば、オープンGOPへ
のランダムアクセスが発生したと仮定される。この場
合、ハフマンデコーダは通常の方法でBピクチャのため
にデータを消費するであろう。しかしながら、それはI
ピクチャから離れた(0、0)動きベクトルで予測され
るBピクチャを出力するであろう。その結果、(上記の
例における)ピクチャB17及びB18がI19と同一
になるであろう。
維持を確実にする。更に、それはBピクチャが他のデー
タチャネルにより予期される出力ストリーム内の位置に
おける出力の中に存在することを確実にする。例えば、
MPEGシステムレイヤはオーディオデータに関する表
示時間情報をビデオデータに提供する。ビデオ表示時間
のスタンプはGOPにおける最初の表示ピクチャ、つま
り時間基準0のピクチャを指示する。上記の例では、第
2のGOPに対するランダムアクセスの後、最初に表示
されるピクチャはB17である。
G closedgopビットを所有する。従って、時
間デコーダの出力において、Bピクチャの出力が本物で
あるか、あるいは「代用品」が空間デコーダによって導
入されていたか否かを判断することが可能である。ある
アプリケーションはこれらの「代用品」のピクチャが存
在する時、特別な処置を講ずることを希望するかもしれ
ない。
プリケーションがMPEGビデオシーケンスを編集する
場合、それは2つのGOP間の関係を破壊するかもしれ
ない。編集後のGOPがオープンGOPであれば、それ
はGOPの始まりにおいてBピクチャを正しくデコーデ
ィングすることはもはやできないであろう。MPEGデ
ータを編集するアプリケーションは、編集後のGOPに
おいてbroken linkビットを設定し、デコー
ダにこれらのBピクチャをデコーディングできないこと
を指示することができる。
OPに遭遇した場合、ハフマンデコーダは通常の方法で
Bピクチャのためにデータをデコーディングするであろ
う。しかしながら、それはIピクチャから離れた(0、
0)動きベクトルで予測されたBピクチャを出力するで
あろう。その結果、(上記の例における)ピクチャB1
7及びB18はI19と同一になるであろう。
Gのbrokenlinkビットを所有する。従って、
時間デコーダの出力において、Bピクチャの出力が本物
であるか、あるいは空間デコーダによって導入されてい
た「代用品」であるか否かを判断することが可能であ
る。あるアプリケーションはこれらの「代用品」のピク
チャが存在する時、特別な処置を講ずることを希望する
かもしれない。セクションA.20 「後書込みDRA
Mインターフェース」インターフェースは2つの方法で
構成できる:インターフェースの詳細なタイミングは種
々の異なるDRAMタイプを収容するように構成するこ
とができる。
/性能のトレードオフを提供するように構成することが
できる。
本発明では、DRAMインターフェースタイミングは装
置の入力クロック率の4倍で動くクロック(decod
er clock)から引き出される。このクロックは
オンチップPLLによって作られる。
ティックと称する。
ーション」」インターフェースはDRAMの高速ページ
モードを使用する。3つの異なるタイプのアクセスが支
持される:・読出し・書込み・リフレッシュ 各々の読出しもしくは書込みアクセスは1つのDRAM
ページアドレスにおいて1〜64バイトのバーストを伝
送する。読出し及び書込み伝送は1つのアクセスにおい
て混合されない。各々の連続アクセスは新しいDRAM
ページへのランダムアクセスとして処理される。
スは2つの部分で構成される:・アクセススタート・デ
ータ伝送 各アクセスはアクセススタートによって開始され、その
後1つかそれ以上のデータ伝送サイクルが続く。アクセ
ススタート及びデータ伝送サイクル両方の読出し、書込
み及びリフレッシュの変形がある。
わりに、インターフェースはディフォルト状態になり、
新しいアクセスがスタートする準備ができるまでこの状
態のままである。最後のアクセスが完了した時、新しい
アクセスのスタート準備ができると、その新しいアクセ
スは直ちにスタートする。
アクセススタートは読出しまたは書込み伝送用にページ
アドレスを提供し、幾つかの初期信号状態を設定する。
3つの異なるアクセススタートがある:・リード・スタ
ート・ライト・スタート・リフレッシュ・スタート 各々の場合において、/RAS/のタイミング及びロー
アドレスはレジスタRAS fallingとpage
start lengthによって制御される。/O
E/及びDRAM data[31:0]の状態は、以
前のデータ伝送の終了時から/RAS/になるまで保持
される。3つの異なるタイプのアクセススタートは、/
RAS/になる時に/OE/及びDRAM data
[31:0]を駆動させる方法が異なるだけである。図
118を参照せよ。
には3つの異なるタイプがある:・高速ページリードサ
イクル・高速ページ遅延書込サイクル・リフレッシュサ
イクル リフレッシュスタートの次には1つのリフレッシュサイ
クルだけが続く。リード(またはライト)スタートの次
には、1つかそれ以上の高速ページリード(またはライ
ト)サイクルが続く。
がハイとされ、新しいカラムアドレスが駆動される。
は/CAS/の後1ティックだけローとされる。出力デ
ータはアドレスの後1ティック駆動される。
レッシュサイクルがリフレッシュサイクルスタートによ
り始められ、リフレッシュサイクル中は如何なるインタ
ーフェース信号活動もない。リフレッシュサイクルの目
的はDRAMが必要とする最低の/RAS/低周期を満
たすことである。
ィフォルト状態」インターフェース信号はアクセスの終
了時にディフォルト状態に入る:・/RAS/、/CA
S/、及び/WE/は高い・データ及び/OE/はそれ
以前の状態のままである・addrは安定したままであ
る A.20.4 「データバス幅」2ビットのレジスタD
RAM data widthはDRAMインターフェ
ースのデータ通路の幅が構成されるようにする。これは
小さなピクチャフォーマットで作業をする時、DRAM
費用を最小にする。
ットのアドレスが作られる。このアドレスがロー及びカ
ラムアドレスを形成するためどのように使用されるか
は、データバス幅及びローアドレスのために選択される
ビット数により異なる。ある構成では内部のアドレスビ
ットの総ての使用を許さない(従って、「隠れビット」
が作られる)。
き出される。これはDRAMが自然にリフレッシュされ
る率を最大にする。
アドレスビット」64バイトまでの高速ページモード伝
送用のアドレスを提供するために、最も重要でない4〜
6ビットのカラムアドレスが使用される。これらの伝送
を制御するために必要なアドレスビット数はデータバス
の幅により異なる。(A.20.4を参照)A.20.
5.2 「ローアドレスビット」ローアドレスを提供す
るため24ビットの内部アドレスの中間セクションから
取られるビット数は、レジスタrow address
bitsによって形成される。
イプ、及びローアドレスのMSBがDRAMの多重バン
クにアクセスするためのデコーディングされたオフチッ
プであるか否かにより異なる。
ら引き出される。ローアドレスのあるビットがDRAM
バンクを選択するためにデコーディングされる場合、こ
れらの「バンクセレクトビット」の全ての可能なバリュ
ーがDRAMバンクを選択しなければならない。そうで
なければ、アドレス空間に空孔が残されることになる。
ble)」DRAMインターフェース上の全ての出力信号を
高インピーダンスにするには2通りの方法がある。DR
AM enableレジスタ及びDRAM enabl
e信号である。レジスタ及び信号共DRAMインターフ
ェースが操作するためロジック1でなければならない。
いずれかが低ければ、インターフェースが高インピーダ
ンスにされ、インターフェースを介してのデータ伝送が
停止される。
ンスにもっていく能力は、空間デコーダ(もしくは時間
デコーダ)が使用されていない時に、他の装置が空間デ
コーダ(もしくは時間デコーダ)によって制御されるD
RAMをテストまたは使用できるようにするために提供
され、他の装置が通常のオペレーション中にメモリーを
共有できるようにするためではない。
no refreshに書き込むことにより不能化され
ない限り、DRAMインターフェースはレジスタref
resh intervalにより決定される間隔で、
/RAS/リフレッシュサイクルの前の/CAS/を使
用して、DRAMを自動的にレフレッシュする。
ューは16decoder clockサイクルの期間
におけるリフレッシュサイクル間の間隔を指定する。1
〜255の範囲のバリューを選択することができる。バ
リュー0はリセット後自動的にロードされ、(一度イネ
ーブルとされると)有効なリフレッシュ間隔が形成され
るまで、DRAMインターフェースが連続してリフレッ
シュサイクルを実行するように強制する。refres
h intervalが各リセット後一度だけ形成され
るようにすることが薦められる。
ターフェースの出力の駆動力は3ビットレジスタ/CA
S/ strength、/RAS/ strengt
h、addr strengthを用いて、ユーザーに
より形成される。この3ビットバリューのMSBは高速
もしくは低速のエッジ率のいずれかを選択する。2つの
重要性の低いビットが異なるロードキャパシタンスのた
めの出力を形成する。
り、12pFでロードされる場合、GNDとVDD間の駆
動信号に対しておよそ10nsを取る出力を形成する。
れは表168〜表169に明記されるAC電気特性を満
たすであろう。適切に形成された場合、各出力はその負
荷にほぼ適合し、従って最小のオーバーシュートが信号
遷移後に発生するであろう。
後、DRAMインターフェース形成レジスタは全てそれ
らのディフォルトバリューにリセットされる。これらの
ディフォルト構成の内最も重要なものを以下に記す:・
DRAMインターフェースが不能化(disable)され、高
インピーダンスに行くことが許される。
形成され、それはインターフェースが再可能化された
後、連続的なリフレッシュサイクルの実行を意味する。
の形成に設定される。
れ、その後通常オペレーションが可能となる前に多数の
リフレッシュサイクルが続いた後、100μs〜500
μs間の「休止」を要求する。
ースはDRAMenable信号及びDRAM ena
bleレジスタの両方が設定されるまで不活性化され
る。これらが設定された時、DRAMインターフェース
はDRAMインターフェースが形成されるまで、(使用
されるクロック周波数に応じて、ほぼ400ns毎に)
リフレッシュサイクルを実行するであろう。
た必要な数のリフレッシュサイクルがデータ伝送を試み
る前に発生したことを確かめるため、DRAMインター
フェースを可能化した後充分な時間があるように、DR
AMの「休止」を確実にするための責任がある。
ーフェースはDRAMをリフレッシュすることができな
い。しかしながら、デコーダチップが要求するリセット
タイムは、それらをリセットでき、その後DRAMの内
容が崩壊する前にDRAMインターフェースを再可能化
することができる程度に充分短くなっている。これはデ
バッギング中に必要とされるかもしれない。
1 「展望」図18において前述したように、スタート
コード検出器(SCD)は空間デコーダ上の最初のブロ
ックである。その基本的な目的は入力データストリーム
の中でMPEG、JPEG及びH.261のスタートコ
ードを検出し、それらを関連トークンと置き換えること
である。それは更にマイクロプロセッサインターフェー
スを介して入力データストリームへのユーザーアクセス
を可能にし、トークンデータストリームの予備フォーマ
ッティング及び「整頓」を遂行する。SCDは生のバイ
トデータもしくはトークンフォーマットに既に組み立て
られたデータのいずれかを受け取ることができることを
思いだしてほしい。
H.261、及びJPEGに対して、各々24、16及
び8ビットである。スタートコード検出器はマイクロプ
ロセッサインターフェース(upi)もしくはトークン
/バイトポートのいずれかからバイトで入力データを受
け取り、それを3つのシフトレジスタを通して移動させ
る。第1のレジスタは8ビットの並直列アウトであり、
第2のレジスタはプログラム可能な長さ(16もしくは
24ビット)で、スタートコードが検出される場所であ
り、第3のレジスタは15ビット幅で、データを15ビ
ットのトークンに再フォーマッティングするために使用
される。更に、第2及び第3のSRと並列に動く2つの
「タグ」シフトレジスタ(SR)がある。これらはデー
タSR内で連合するビットが良いか悪いかを指示するた
めのタグを含む。データトークンの一部ではなくSCD
により認識されない入力バイトが、シフトレジスタをバ
イパスできるようにし、3つの全てのシフトレジスタが
フラッシュされ(空になり)、内容が首尾良く出力され
た時に、出力される。認識された非データトークンはS
CD、スプリングトラップ、セットフラグを形成するた
めに使用される。更にそれらはシフトレジスタをバイパ
スし、変更されずに出力される。
ド検出器のためのハードウェアは10個のステートマシ
ーンで構成される。
c.sch.iplm.M)」入力回路は3つのオペレ
ーションモード:トークン、バイト及びマイクロプロセ
ッサインターフェースを持つ。これらのモードはデータ
が生のバイトストリーム(であるが2線式インターフェ
ースを使用する)ものとして、トークンストリームとし
て、あるいはupiを介したユーザーによって入力され
るようにする。全ての場合に、入力回路は適切な場合に
データトークンヘッダを発生させることにより、常に正
しいデータトークンを出力する。upiモードへの/か
らの遷移はシステムクロックに同期化され、upiはア
クセスを得る前のデータストリームにおける安全ポイン
トまで待たされる。バイトモードピンは入力回路がトー
クンモードであるか、もしくはバイトモードであるかを
決定する。更に、どの基準が解読されているかに関する
システムに対する初期通知(従ってコーディングスタン
ダードトークンが発せられる)が3モードのいずれかに
おいて行われ得る。B.1.2.2 「トークンデコー
ダ(scdipnew.sch、scdipnem.
M)」このブロックは入力トークンをデコーディング
し、他のブロックにコマンドを発する。
ラッシュされた後、二線インターフェースを介して全て
のブロックに送られる。これは1つのデータストリーム
から別のデータストリームまでの変化がSCD中ずっと
正しいポイントで発生することを確実にする。この原則
はコーディングスタンダードにおける変化が新しいスト
リームの前に全チップを通して流れることができるよう
に、表示中ずっと適用される。
eg.sch、scdjpegm.M)」JPEGにお
けるスタートコード(マーカー)は充分異なっており、
JPEGは全て自身に対するステートマシーンを持って
いる。本発明において、このブロックがJPEGマーカ
ー検出、長さのカウント/チェック、及びデータの除去
の全てを処理する。検出されたJPEGマーカーはスタ
ートコード(v nottを持つ、後述のテキスト参
照)としてフラグ表示され、scdipnewからのコ
マンドはオーバーライドされ、バイパスするように強い
られる。オペレーションはコードで最も良く説明され
る。 switch(state) { case(LOOKING): if(input=0xff) { state=GETVALUE;/*Found a marker*/ remove;/*Marker gets removed*/ } state=LOOKING; break; case(GETVALUE); if(input=0xff) { state=GETVALUE;/*Overlapping markers*/ remove; } else if(input=0x0−0) { state=LOOKING;/*Wasn’t a marker/ insert(0×ff);/Put the 0×ff back/ } else { command=BYPASS;/override command/ if(lc)/Dose the marker have a length count/ state=GETLC0; else state=LOOKING; break; case(GETLC0): loadlc0;/Load the top length count byte/ state=GETLC1; remove; break; case(GETLC1) loadlc1; remove; state=DECLC; break; case(DECLC): lcnt=lcnt−2 state=CHECKLC; break; case(CHECKLC): if(lcnt=0) state=LOOKING;/No more to do/ else if(lcnt<0) state=LOOKING;/generate Illegal Length Error/ else state=COUNT; break; case(COUNT): decrement length count until1 if(lc<=1) state=LOOKING; } B.1.2.4 「入力シフター(scinshft.
sch、scinshm.M)」このブロックの基本オ
ペレーションは全く簡単である。このブロックは入力回
路からデータバイトを取り出し、シフトレジスタにロー
ドし、それをシフトする。しかしながら、それは入力デ
コーダからのコマンドにも従い、バイパスモードへの/
からの遷移を処理する(他のSRをフラッシュする)B
YPASSコマンドを受け取ると、連合するバイトはシ
フトレジスタにロードされない。その代わりに、「ラビ
ッシュ(rubbish)」(タグ=1)がシフトされ、他のシ
フトレジスタに保持されているデータを出力させるよう
に強いる。その後、ブロックはこの「ラビッシュ」がト
ークン発生器に現れたことを示す「フラッシュされた」
信号を待つ。入力バイトは次にトークン発生器に直接送
られる。
(scdetect.sch、scdetm.M)」こ
のブロックは16もしくは24ビットのスタートコード
検出ロジック及び「有効な内容」検出ロジックにプログ
ラム可能な2つのシフトレジスタを含む。MPEGスタ
ートコードは完全な24ビットを要求するが、H.26
1は16ビットだけを要求する。
り、SRには(二線インターフェースの意味で)ギャッ
プもしくは失速はないが、第2のSRはデータSR内の
ビットが有効か否かを指示するタグを有するが、それら
が包含するビットはフラッシュされる一方、無効(ラビ
ッシュ)であってもよい。スタートコードが検出される
と、タグシフトレジスタのビットが検出器SRの内容を
無効にするために設定される。
ならない限り検出され得ない。非バイト整列スタートコ
ードが検出され、フラグ表示されてもよい。更に、スタ
ートコードが検出されると、重なっているスタートコー
ドが調べ上げられるまで非整列スタートコードは明確に
フラグ表示され得ない。この機能を果たすため、検出さ
れたスタートコード(バイトがそれに続く)の「バリュ
ー」がscinshiftとscdetectを通して
右に、そしてscoshiftシフトされる。別のスタ
ートコードを検出せずにscoshiftに達すると、
除去されたのは重なっているスタートコードであり、そ
れは有効なスタートコードとしてフラグ表示される。
shift.sch、scoshm.M)」出力シフタ
ーの基本オペレーションはscdetectから直列デ
ータ(及びタグ)を取り出し、それを15ビットのワー
ドに詰め、出力することである。他の機能は以下の通り
である:B.1.2.6.1 「データパディング」出
力は15ビットワードで構成されるが、入力は任意の数
のビットで構成できる。従って、フラッシュするために
は、最後のワードを15ビットまでにするためにビット
を追加する必要がある。これら追加ビットはパディング
と呼ばれ、ハフマンブロックによって認識され除去され
ねばならない。パディングは次のように定義される:最
後のデータビットの後、「ゼロ」が挿入され、15ビッ
トワードを作り上げるために充分な「もの」がそれに続
く。
ークンの終わりであることを指示するために、低拡張ビ
ットで出力される。
生」本発明によれば、「フラッシュ」オペレーションの
発生は、全てのSRがフラッシュされる時を検出し、そ
れを入力シフターに合図することを含む。入力シフター
により挿入された「ラビッシュ」が出力シフターのエン
ドに達し、出力シフターがそのパディングを完了する
と、「フラッシュされた」信号が発せられる。この「フ
ラッシュされた」信号は入力シフターがバイパスモード
に入ることが安全である前に、トークン発生器を通過し
なければならない。
ードのフラグ表示」scdetectがスタートコード
を発見したことを指示すると、パディングが遂行され、
現在のデータが出力される。スタートコードバリュー
(次のバイト)が検出器を通してシフトされ、重なって
いるスタートコードを除去する。別のスタートコードが
検出されずに「バリュー」が出力シフターに達すると、
それは重ねられず、そのバリューはそれがスタートコー
ドバリューであることを示すフラグv not t(ValueNotToken)を付けて送
られる。しかしながら、別のスタートコードが(scd
etectにより)検出される一方、出力シフターがそ
のバリューを待っていると、オーバーラッピングエラー
が発せられる。この場合、第1のバリューは捨てられ、
システムは第2のバリューを待つ。このバリューも重ね
ることができ、こうして非重複スタートコードが見つか
るまで同じ手順が繰り返されるようにする。
後の整頓(tydingup)」適切なスタートコードを検出し出
力した後、(ラビッシュでない)データが到着し始める
と、新しいデータヘッダが作られる。
器(sctokrec.sch、sctokrem.
M)」データストリーム発生器は、1つはバイパスされ
たトークンのためのscinshiftから、他の1つは
詰め込まれたデータ及びスタートコードのためのsco
shiftからの二線インターフェース入力を持つ。2
つのソース間の切り替えは、(いずれかのソースから
の)現在のトークンが(到着した低拡張ビットを)完了
した後にのみ許される。
ためのスタートバリュー(scdromhw.sch、
schrom.M)」スタートバリューをトークンに変
換するプロセスは2段階で行われる。このブロックは5
20の奇数の位置コードを16のコーディングスタンダ
ードの独立インデックスに減少させるコーディングスタ
ンダード依存問題点を主に取り扱う。初期に述べたよう
に、(JPEGのバリューを含む)スタートバリューは
他の全てのデータからフラグ(value not t
oken)によって識別される。v not tが高け
れば、このブロックは4または8ビットバリューをコー
ディングスタンダードに応じて、スタンダードから独立
している4ビットのstart numberに変換
し、未認識のスタートコードをフラグ表示する。スター
ト数は次の通りである:
(sconvert.sch、sconverm.
M)」変換の第2段階において上記スタート数(もしく
はインデックス)がトークンに変換される。このブロッ
クは更に拡張及びユーザーデータを適切に捨てるトーク
ン拡張及びサーチモードを処理する。
ストリームに入る手段である。サーチモードは8つのバ
リューの1つに設定できる: 0 : 通常のオペレーション - 次のスタートコー
ドを見つける。
コーダに関しては実施されない。
ンタックスにおいてより高い)が検出されるまで、デー
タが捨てられるようにする。
LICEスタートトークンにトークン拡張を加える。
UMBER、ピクチャの4ビットカウントで拡張され
る。
直位置)で拡張される。これはスタートコードマイナス
1(MPEG、H.261)、及びマイナスOXDO
(JPEG)の「バリュー」である。
ォーマッティング(scinsert.sch、sci
nserx.M)」本発明では、データストリームフォ
ーマッティングはピクチャエンド、フラッシュ、コーデ
ィングスタンダード、シーケンススタートのトークンの
条件付き挿入、及びSTOP AFTER PICTUREイベントの発生に関する。その機能はソ
フトウェアにおいて最も良く簡略化され説明できる: switch(input data) case(FLUSH) 1.if(in picture) output=PICTURE END 2.output=FLUSH 3.if(in picture & stop after picture) sap error=HIGH in picture=FALSE; 4.in picture=FALSE; break case(SEQUENCE START) 1.if(in picture) output=PICTURE END 2.if(in picture & stop after picture) 2a.output=FLUSH 2b.sap error=HIGH in picture=FALSE 3.output=CODING STANDARD 4.output=standard 5.output=SEQUENCE START 6.in−picture=FALSE; break case(SEQUENCE END) case(GROUP START): 1.if(in picture) output=PICTURE END 2.if(in picture & stop after picture) 2a.output=FLUSH 2b.sap error=HIGH in picture=FALSE 3.output=SEQUENCE END or GROUP START 4.in−picture=FALSE; break case(PICTURE END) 1.output=PICTURE END 2.if(stop after picture) 2a.output=FLUSH 2b.sap error=HIGH 3.in−picture=FALSE break case(PICTURE START) 1.if(in picture) output=PICTURE END 2.if(in picture & stop after picture) 2a.output=FLUSH 2b.sap error=HIGH 3.if(insert sequence start) 3a.output=CODING START 3b.output=standard 3c.output=SEQUENCE START insert sequence start=FALSE 4.output=PICTURE START in picture=TRUE break default:Just pass it through セクションB.2 「ハフマンデコーダ及びパーザー(p
arser)」B.2.1 「概論」本セクションは本発明に
よるハフマンデコーダ及びパーザー回路について説明す
る。
の高レベルのブロック線図を示す。明瞭さのために、本
線図では多くの信号及びバスを省略しており、特にデー
タが(図示された大きなループ内で)後方に送られる場
所が幾つかある。
パーザーは、プログラム可能ステートマシーンによって
制御される(線図の底部に沿って示される)多くの専用
処理ブロックで構成される。
号化データバッファから受け取られる。この時点で、本
質的に遭遇するであろう2つのタイプの情報がある:デ
ータトークンが所有する符号化データ、及びスタートコ
ード検出器により各々のトークンと既に置き換えられて
いるスタードコードである。他のトークンと遭遇する可
能性もあるが、(データトークン以外の)全てのトーク
ンは同じ方法で処理される。トークン(スタートコー
ド)は(H.261、JPEGもしくはMPEGにおい
て)多数のデータがこれから符号化されるにつれて、特
別な場合として処理される。
てのデータが直列形態(ビットバイビット)でハフマン
デコーダに伝送される。もちろん、このデータはハフマ
ン符号化されない多くのフィールドを含むが、固定長に
より符号化される。それにもかかわらず、このデータは
ハフマンデコーダに直列に送られる。ハフマン符号化デ
ータの場合、ハフマンデコーダは実際のハフマンコード
がインデックス数で置き換えられるデコーディングの第
1ステージだけを実行する。解読される特別なコード表
にNディストリクトハフマンコードがある場合、この
「ハフマンインデックス」の範囲は0〜N−1である。
更に、ハフマンデコーダは”no op”、つまり「ノ
ーオペレーション」モードを有し、それはハフマンデコ
ーダによる処理なしに、データまたはトークン情報に沿
って次のステージに送られるようにする。
ルックアップオペレーションを実行する比較的簡単な回
路ブロックである。それはハフマンデコーディングプロ
セスの第2ステージからその名前を取り出し、そこでハ
フマンデコーダにおいて得たインデックス数が簡単なテ
ーブルルックアップによって実際の解読データに変換さ
れる。データユニットインデックス部はハフマンデコー
ダと協動して1つの論理ユニットとして作用する。
ータに他の変換を加えるために提供される。データユニ
ットインデックス部は比較的任意のマッピングに適して
おり、ALUは算術がよりふさわしい場所に使用でき
る。ALUはデコーディングアルゴリスムの様々な部分
を実施するために操作できるレジスタファイルを具備す
る。特に、ベクトル予測及びDC予測を保持するレジス
タががこのブロックに含まれる。ALUはオペランドセ
レクションロジックを持つ単純なアダーのまわりに基礎
づけられる。更に、それはサイン拡張タイプのオペレー
ション用専用回路を含む。シフトオペレーションが実行
されやすいが、これはシリアル様式で遂行され、バレル
シフタは存在しないであろう。
部は、ビデオパーザー内の最後のブロックであり、解読
済みデータを残りのデコーダに送ることができるトーク
ンに最終的に組み込む仕事をする。この時点で、この特
定のピクチャ用のデコーダにより使用されるであろう多
くのトークンがある。
スと共に使用されているパーザーステートマシーンは、
他のブロックのオペレーションを調製する仕事をする。
本質的に、それは非常に単純なステートマシーンであ
り、他のブロックに送られる非常に広範囲の「マクロコ
ード」制御ワードを作り出す。図127は指令ワードが
ブロックからブロックへとデータの側を通過する。これ
が実情であり、異なるブロック間の伝送が2線式インタ
ーフェースによって制御されることを理解することが重
要である。
ク間に2線式インターフェースがある。更に、ハフマン
デコーダはシリアル、データと共に、また制御トークン
と共に作動し、インシフタは一度に1ビットずつデータ
を入力する。従って、2つのモードのオペレーションが
ある。データがデータトークンを介してハフマンデコー
ダに入力されると、そのデータは一度に1ビットずつシ
フタを通過する。更に、インシフタとハフマンデコーダ
の間に2線式インターフェースがある。しかしながら、
他のトークンは一度に(シリアルに)1ビットの形態で
シフトされず、むしろトークンのヘッダにおいてシフト
される。データトークンが入力されると、アドレス情報
を含むヘッダが削除され、そのアドレスの次のデータが
一度に1ビットでシフトされる。データトークンではな
い場合、全トークン、ヘッダ及び全てのものが一度に全
てハフマンデコーダに表示される。
ンターフェースは2つの有効なラインを持つ点で異例の
ことであることを理解することが重要である。1つのラ
インはシリアル式に有効で、他方のラインはトークン式
に有効である。更に、両ライントークンが同時に断定す
ることはできないかもしれない。片方のラインが断定さ
れるか、あるいは有効なデータが存在しなければ、2つ
の有効ラインがあってもどちらも断定できないこともあ
り、他の方向には1つだけのアクセプトワイヤがあるこ
とを認識すべきである。しかしながら、これは問題とは
ならない。ハフマンデコーダは現在のシンタックスに基
づいて次に為されるべき必要に応じて、シリアルデータ
もしくはトークン情報のいずれを望んでいるかを知るこ
とができる。従って、有効なアクセプト信号がそれに応
じて設定され、Acceptがハフマンデコーダからイ
ンシフタに送られる。適切なデータもしくはトークンが
存在すれば、インシフタは有効な信号を送る。例えば、
典型的な指令はハフマンコードを解読し、それをデータ
ユニットインデックス部において変換し、その結果をA
LUにおいて修正することができ、この結果がトークン
ワードに形成される。これを実施するための全ての情報
を含む1つのマイクロコード指令ワードが作られる。コ
マンドはハフマンデコーダに直接送られ、ハフマンデコ
ーダは完全な記号を解読し終えるまで、「インシフト」
ブロックからデータビットを1つずつ要求する。制御ト
ークンは並列に入力される。これが一度発生すると、解
読されたインデックスバリューは元のマイクロコードワ
ードと共にデータユニットインデックス部に送られる。
ハフマンデコーダはこのオペレーションを実行するため
に数個のサイクルを必要とし、実際、サイクル数は解読
されるデータによって決定される。データユニットイン
デックス部は次にマイクロコード指令ワードにおいて特
定された表を用いて、このバリューをマッピングする。
このバリューは元のマイクロコードワードと共に再び次
のブロック、ALUに送られる。ALUが適切なオペレ
ーションを完了する(サイクル数はやはりデータ従属で
あるかもしれない)と、ALUはトークンワードを形成
する方法を制御するマイクロコードワードと共に、トー
クンフォーマッティングブロックに適切なデータを送
る。
パーザーステートマシーンに送り返される「条件コー
ド」を持つ。これはステートマシーンが条件付きジャン
プ指令を実行できるようにする。事実、全ての指令は条
件付きジャンプ指令である:選択できる条件の1つがバ
リュー”False”に配線される。この条件を選択す
ることにより、「ノージャンプ」指令を構成することが
できる。
ング部は2つの入力:ALUからのデータフィールド及
び/もしくはパーザーステートマシーンから入る一定フ
ィールドを持つ。それに加えて、1つのソースからどの
程度のビットを取り、全体で8ビットのために他のソー
スからの残りのビットで満たすべきかをトークンフォー
マッティング部に告げる指令がある。例えば、HORI
ZONTAL SIZEはHORIZONTAL SI
ZEトークンとしてそれを特定する不変のアドレスであ
る8ビットフィールドを持つ。この場合、8ビットは一
定のフィールドから得られ、ALUから得られるデータ
はない。しかしながら、それがデータトークンであれ
ば、一定のフィールドから6ビットを容易に得られるで
あろうし、低い方の2ビットはALUからの色成分を示
す。従って、トークンフォーマッティング部はこの情報
を得、それを残りのシステムで使用するためにトークン
の中に置く。上記の例において、各ソースからのビット
数は単に説明目的のためであり、当業者であればいずれ
のソースからのビット数をも変更できることを認識する
であろうということに注目すべきである。
するために使用されるカウンタバンクを含む。ピクチャ
のディメンションは、レジスタバンクの一部として「マ
イクロプログラマ」に現れるカウンタと連合するレジス
タにプログラムされる。幾つかの条件コードはこのカウ
ンタバンクから出力され、それは「ピクチャ・スター
ト」、「マクロブロック・スタート」等に基づく条件付
きジャンプを可能にする。
ーンも「デマルチプレックスステートマシーン」と称さ
れることである。両用語が本文書において使用される。
のパイプラインステージデータパス“hfidp”と制
御Zcells“hfi”で構成される非常に単純な回
路である。
ンデコーディングが起こる。このステージにおいて、デ
ータトークンだけが認識される。データトークンに含ま
れるデータは一度に1ビットだけハフマンデコーダにシ
フトされる。第2のパイプラインステージはシフトレジ
スタである。データトークンのラストワードにおいて、
符号化データバッファを通して任意のビット数を伝達す
ることができるように、特別なコーディングが発生す
る。ラストデータワードにおいて可能な全てのパターン
を以下に記す。
フトされるにつれて、ビットパターン「0に続く全ての
数」が探される(パディング)。これはシフトレジスタ
における残りのビットが有効ではなく、捨てられること
を示す。この動作はデータトークンのラストワードにお
いてのみ発生することに注目。
フマンデコーダに並列で送られる。それらは第2のパイ
プラインステージにもロードされるが、シフトは発生し
ない。データヘッダは捨てられ、ハフマンには全く送ら
れないことに注目。2つの「有効な」ワイヤ(out
valid及びserial valid)が提供され
る。1つだけが所定の時間に断定され、それはどのタイ
プのデータがその瞬間に表示されるかを指示する。
ンデコーダは多数のオペレーションモードを持つ。最も
顕著なものはそれがハフマンコードを解読し、それらを
ハフマンインデックス数に換えることである。それに加
えて、ハフマンデコーダは指令ワードにより決定される
長さの固定長コードを(ビットに)解読することができ
る。ハフマンデコーダは更にインシフトブロックからの
トークンを受け取ることができる。
マシーンである。これはブロックレベルの情報を解読す
る時に使用される。これはパーザーステートマシーンが
決定をするのに長くかかりすぎるからである(なぜな
ら、それはデータに関する決定をし、新しいコマンドを
出す前に、データユニットインデックス部とALUを通
ってデータが流れるのを待たなければならないからであ
る)。このステートマシーンが使用される場合、ハフマ
ンデコーダ自体がデータユニットインデックス部とAL
Uにコマンドを発する。ハフマンデコーダステートマシ
ーンはマイクロコード指令ビットの全てを制御すること
ができないので、他のブロックに全範囲のコマンドを発
することができない。
論」ハフマンコードを解読する時、本発明のハフマンデ
コーダは入力コードをハフマンインデックス数に解読す
るために、演算手順を使用する。この数は(N個のエン
トリを持つコード表に対して)0〜N−1の間である。
ビットは入力シフタから1つずつ受け取られる。
に、多くのテーブルが必要である。これらはコード(1
〜16ビット)において可能な各ビット数のために、そ
の長さのコードがどれ程あるかを明記する。予期される
ように、この情報は典型的に一般的なハフマンコードを
明記するために充分ではない。しかしながら、MPE
G、H.261及びJPEGにおいて、ハフマンコード
はこの情報だけでハフマンコード表を明記することがで
きるように選択される。これには不運なことに1つだけ
例外がある:MPEGにおいても使用されるH.261
からのTcoefficientテーブルである。これ
は他の場所で説明される付加的なテーブルを必要とする
(例外はスタートコードエミュレーションを避けるため
にH.261に計画的に導入された)。
はJPEGに伝達されるものと正確に同一であることを
認識することが重要である。これはハフマンデコーダの
他のデザインが伝達されたものから内部テーブルの作成
を要求したかもしれない一方で、これらのテーブルが直
接使用されることを可能にする。これは変換のために追
加記憶装置及び追加プロセシングを要求したであろう。
MPEG及びH.261のテーブルは(上述の例外はあ
るが)同じように説明でき、マルチスタンダードデコー
ダは実用的になる。
グプロセスを説明する: int total=0; int s=0; int bit=0; unsigned long code=0; int index=0; while(index>=total) { if(bit>=max bits) fall(”huff decode: ran off end of huff table\n”); code=(code<<1)Inext bit0; index=code−s+total; total+=codes per bit[bit]; s=(s+codes per bit[bit])<<1; bit++; } 一般に、特定の中間バリューはそれらが必要になる前に
クロックフェイズで計算できるという事実に利点がある
が、プロセスはシリコン実装の中に直接マッピングされ
る。
otaln−’sn 運悪くハードウェアでは、「シフト済み」変数が変数
“S”の代わりに使用される一連の修正された式を使用
することがより簡単であることが解った。この場合:し
かしながら、ハードウェアでは、「シフト済み」変数が
変数“S”の代わりに使用される一連の修正された式を
使用することがより簡単であることが解った。この場
合: EQ5. shiftedn+1=2shiftedn+c
pbn 次のことが解る: EQ6. in=2shiftedn 従って、これを式4に再び置き換えると、次の式が作ら
れる: EQ7. indexn+1=2(coden−shift
edn)+totaln+bitn 「インデックス」の連続する値を計算することに加え
て、計算がいつ完了するかを知ることが必要である。”
C”コードフラグメントから: EQ8. indexn+1<totaln+1の時に完了す
ることが解る。
n−cpbn<0の時に完了することが解る。
Q.7及びEQ.9における共通の用語、(coden
−shiftedn)は、これらの式の残りが評価され
て最終結果、及び計算が「完了した」という情報を出す
1フェイズ前に計算される。
特に行動編集済みコードハフマンデコーダ、及びsm4
codeプロジェクトにおいて、“C”フラグメントは
ほぼ直接的に使用されるが、変数“S”は実際上「シフ
ト済み」と称される。このように、「シフト済み」と呼
ばれる2つの異なる変数がある。“C”コードの1つ
と、ハードウェア実装における他の1つである。これら
2つの変数は2つの要因により異なる。
転」ハフマンコードを正しく解読するために必要な情報
がもう1つある。これは符号化データの極性である。
H.261とJPEGは反対の規定を使用することが解
る。これはH.261のスタートコードはゼロビットで
あるのに対し、JPEGのマーカーバイトは1ビットで
あるという事実から生じる。
H.261スタイルのハフマンコードを解読するため
に、ハフマンデコーダの中に読み込まれる時に、符号化
データビットを反転させることが必要である。これは排
他的ORゲートを用いる明白な方法で行われる。固定長
コードを解読する時、データは反転されないので、反転
はハフマンコードのためにのみ行われることに注目。
る。H.261から引き継がれる局面では、H.261
規定が使用される。JPEG(DCイントラ係数のデコ
ーディング)から引き継がれる局面では、JPEG規定
が使用される。
261及びMPEGにおける変換係数表を使用する時、
幾つかの変則がある。第1に、MPEGテーブルはH.
261テーブルのスーパーセットである。本発明のハー
ドウェア実装において、2つのスタンダード間に引かれ
る区別はなく、これはテーブル(つまりMPEGコー
ド)の拡張部分からのコードを含むH.261ストリー
ムが「正しい」方法で解読されるであろうということを
意味する。もちろん、圧縮スタンダードの他の局面も同
様に解読される。例えば、これらの拡張コードはH.2
61におけるスタートコードエミュレーションを生じさ
せるであろう。
bitテーブルを用いる通常の方法では説明できないこ
とを意味する変則を持つ。この変則は6ビット長のコー
ドで発生する。これらのコードワードは交替コードワー
ドで系統的に置き換えられる。エンコーダにおいては、
正しい結果が第1のエンコーディングによって通常の方
法で得られる。次に、6ビットまたはそれ以上の長さの
全てのコードのために、簡単なテーブルルックアップオ
ペレーションにより、最初の6ビットが別の6ビットで
置き換えられる。本発明によるデコーダでは、デコーデ
ィングプロセスは6番目のビットが解読される直前に割
り込まれ、コードワードはテーブルルックアップを用い
て置き換えられ、デコーディングが続けられる。
あるだけであり、従って必要なルックアップテーブルは
非常に小さい。更に、オペレーションはコードの上位2
ビットがオペレーションによって変更されないという事
実によって助けられる。その結果、真のルックアップテ
ーブルを使用する必要がなくなる。その代わりに、小さ
なゲート集団が配線され、適切な変換が行われる。これ
を行うモジュールは”hftcfrng”と呼ばれる。
可能性のあるコードセットからの各コードがそのセット
からの別のコードで置き換えられる(新コードが導入さ
れない、あるいは旧コードが省略される)ので、このタ
イプのコード置換は本文では「リング」と規定される。
特な実装が行われる。この場合、ブロック・エンドコー
ドが発生することは不可能であり、従って、最も一般的
に発生する記号が、そうでなければブロック・エンドと
して解釈されるであろうコードを使用できるように、テ
ーブルが修正される。これにより1ビットを節約でき
る。本発明によるデコーディング用の構成で、これは容
易に収容される。簡単に言えば、「インデックス」がバ
リューゼロであれば、第1係数の第1ビットのために、
デコーディングは終了したとみなされる。更に、1ビッ
トだけを解読後は、「インデックス」用には2つの可能
性のあるバリュー、ゼロと1だけがあり、1ビットをテ
ストすることだけが必要である。
ーのサイズ」本発明のハフマンデコーダは16ビットま
でのハフマンコードを処理することができる。しかしな
がら、デコーディングマシーンは8ビット幅である。こ
れは解読されるハフマンインデックス数値が最大でも2
55であることが解っているから可能である。事実、こ
れは拡張JPEGにおいてのみ発生でき、現在のアプリ
ケーションでは、その限界は幾分低め(しかし、128
より大きいので、7ビットでは不充分)である。
「インデックス」の最終値だけでなく、全ての中間値も
0〜255の範囲にあることが解る。しかしながら非合
法的コード、つまり(おそらくデータ誤差のため)現在
のコード表にはないコードを解読しようとする企てに対
しては、インデックス値は255を越えることがある。
我々は8ビットマシーンを使用しているので、デコーデ
ィング・エンドで、「インデックス」の最終値が255
を越えない。なぜなら、誤差が発生したことを我々に告
げるより重要なビットが捨てられているからである。こ
のため、デコーディング中のインデックス値が255を
越える(つまり、インデックスを形成するアダーからの
キャリー)時にはいつでも、誤差が発生し、デコーディ
ングが放棄される。
ビットレジスタで充分であるハフマンコードを解読する
ためには、これは必要ではない。これらの上位ビットは
12ビットまで読み出すことができる固定長コードのた
めに必要である。
オペレーション」固定長コードのために、「ビット毎の
コード」バリューがゼロになるように強いられる。これ
はオペレーションを通して「全体の」と「シフト済み」
がゼロのままであり、従って、「インデックス」はコー
ドと同じである。事実、アダー等は8ビットバリューだ
けが「インデックス」のために作られるようにする。こ
のため、固定長コードを解読する時に、出力ワードの上
位ビットは「コード」レジスタから直接取られる。ハフ
マンコードを解読する時、これら上位ビットはゼロにな
るように強いられる。
う事実は明白な方法で計算される。コンパレータは所望
のビット数を「ビット」カウンタと比較する。
ータ」本発明によるパーザーステートマシーンは一般に
かなり高レベルのデコーディングのためにのみ使用され
る。8ビットずつのデータブロック内の非常に低レベル
のデコーディングは、直接にはこのステートマシーンに
よって処理されない。パーザーステートマシーンは「ブ
ロックを解読する」形態のハフマンデコーダにコマンド
を出す。ハフマンデコーダ、データユニットインデック
ス部、及びALUは(基本的にハフマンデコーダ内にあ
る)専用ステートマシーンの制御下に、共に作動する。
この配置はエントロピーコード化係数データの高性能の
デコーディングを可能にする。更に本オペレーションモ
ードにおいて操作される他のフィードバックパスがあ
る。例えば、SIZE及びRUN情報を提供するために
VLCが解読されるJPEGデコーディングにおいて
は、SIZE情報はデータユニットインデックス部の出
力から直接ハフマンデコーダに送り返され、どれほど多
くのFLCビットを読むべきかをハフマンデコーダに指
示する。それに加えて、幾つかの加速装置が実装され
る。例えば、同じ例を用いて、データインデックスステ
ージの前にハフマンインデックスバリューを考察するこ
とにより、ゼロのSIZEを生じる全てのVLCバリュ
ーが明白に捕獲される。これは非ゼロSIZEバリュー
の場合、ハフマンデコーダが実際のSIZEバリューが
解る前に、1つのFLCビットを読むために進むことが
できることを意味する。これは最初のFLCビットの読
出しがデータユニットインデックス部においてテーブル
ルックアップを遂行するために必要な1つのクロックサ
イクルに重なるので、如何なるクロックサイクルも浪費
されないことを意味する。
261のAC係数データ」図133はAC係数がMPE
G及びH.261において解読される方法を示してい
る。ハフマンデコーダのオペレーションを詳細に示すフ
ローチャートが図128に示されている。
スタートする。通常のイベントでは、ハフマンインデッ
クスは6ビットRUN及び係数の絶対値を表すバリュー
に直接マッピングされる。その後、FLC1ビットが読
まれ、係数のサインを出す。ALUは係数の絶対値をこ
のサインビットで組み立て、係数の最終値を提供する。
・マグニチュードであるので、このオペレーションには
ほとんど困難なことがない。RUNバリューは6ビット
の補助バスに送られる一方、係数バリュー(レベル)は
通常のデータバスに送られる。
インデックスオペレーションの前に解読されたインデッ
クスバリューを考察することにより捕獲される。これら
はブロック・エンド(EOB)とエスケープコード化デ
ータである。EOBの場合、これが発生したという事実
はトークンフォーマッティング部が開かれたデータトー
クンを正しく閉じることができるように、データユニッ
トインデックス部及びALUブロックを通って送られ
る。
る。最初の6ビットのRUNが読み出され、これらはデ
ータユニットインデックス部を通って直接送られ、AL
Uに記憶される。その後、FLC1ビットが読み出され
る。これはMPEG及びH.261において説明される
エスケープの8ビットの内、最も重要なビットであり、
レベルのサインを与える。ネガティブバリュー対ポジテ
ィブバリューのためにALUに異なるコマンドを送る必
要があるので、そのサインは本実装において明白に読み
出される。これはALUがビットストリーム内の2つの
補数値をサインマグニチュードに変換できるようにす
る。いずれの場合にも、残りのFLC7ビットがその後
読み出される。これがバリューゼロであれば、更に8ビ
ットを読まなければならない。
ートマシーンは自身の制御のため、またデータユニット
インデックス部、ALU、及びトークンフォーマッティ
ング部をも制御するためにコマンドを発生させる責任が
ある。図133に示すように、ハフマンデコーダの指令
は3つのソース;パーザーステートマシーン、ハフマン
ステートマシーン、もしくはパーザーステートマシーン
から以前に受け取ったレジスタに記憶されている指令の
1つから送られる。本質的に、(ハフマンステートマシ
ーンに制御を引き継がせ、係数を読ませる)パーザース
テートマシーンからの原始指令は、レジスタに保持され
る、つまり、新しいVLCが必要になる度に、使用され
る。デコーディングのための他の全ての指令はハフマン
ステートマシーンによって供給される。
数データ」これはJPEGのDC係数データと同様に処
理される。同じ(ロード可能な)テーブルが使用され、
その内容が正しいことを保証することが制御マイクロプ
ロセッサの責任である。MPEGスタンダードとの唯一
の現実的な差は、(JPEGの場合と同様に)プレディ
クタがゼロに設定され、その補正が逆量子化器において
行われることである。
タ」図129は本発明に従い、JPEGのAC係数を解
読するためのハードウェアを示すブロック線図である。
DC係数用のプロセスは本質的にJPEGプロセスを簡
略化したものであるので、線図はAC及びDC係数両方
のために作用する。MPEGのAC係数用の前の線図に
現実に加えられる唯一のことは、”SSSS”フィール
ドが送り返され、読み出されるFLCビット数を指定す
るため、ハフマンデコーダコマンドの一部として使用で
きることである。残りのコマンドはハフマンステートマ
シーンによって供給される。
コーディング用のフローチャートを描いている。
が、プロセスは適切なテーブル(2つのACテーブルが
ある)を用いて、VLCを読み出すことで開始する。ハ
フマンインデックスは次にデータユニットインデックス
部内のRUN及びSIZEバリューに変換される。2つ
のバリューはハフマンインデックスステージで捕獲され
るが、これらはEOB及びZRL用である。これらは唯
一如何なるFLCビットも読まれない2つのバリューで
ある。デコードインデックスがこれら2つのバリューの
ものではない場合、ハフマンデコーダは直ちにFLC1
ビットを読み出す一方、データユニットインデックス部
がルックアップオペレーションを完了して、実際にどの
程度のビットが必要であるかを決定するのを待つ。EO
Bの場合、ハフマンデコーダ内のハフマンステートマシ
ーンが遂行する更なるプロセシングは必要ではなく、別
のコマンドがパーザーステートマシーンから読み出され
る。ZRLの場合、如何なるFLCビットも必要ではな
いが、ブロックは完了されない。この場合、ハフマンデ
コーダは(以前と同じテーブルを用いて)更なるVLC
の解読を直ちに開始する。
バリューを検出するのに、特別な問題がある。これはハ
フマンテーブルが(H.261やMPEGと異なり)ダ
ウンロード可能であるからである。2個のJPEGのA
Cテーブルの各々のために、(1つはZRL用に、1つ
はEOB用に)2個のレジスタが提供される。これらは
テーブルがダウンロードされる時にロードされる。それ
らは適切な記号と連合するインデックスバリューを保持
する。
適切なサイン・マグニチュードバリューに変換しなけれ
ばならない。これらはテーブルがダウンロードされる時
にロードされる。それらは適切な記号と連合するインデ
ックスバリューを保持する。ALUはSIZEビットの
FLCコードを適切なサイン・マグニチュードバリュー
に変換しなければならない。これはまず間違ったサイン
でそのバリューをサイン拡張することにより行われる。
サインビットが新たに設定されると、次に残りのビット
が逆にされる(1の補数)。
物はないので、ハフマンデコーディングステージにおけ
る意志決定の方が幾分容易である。ゼロのFLCビット
が読まれるようにする唯一の記号はゼロのDC差を示す
ものである。これは再びハフマンインデックスステージ
において捕獲され、(ダウンロード可能な)JPEGの
各DCテーブル用にこのインデックスを保持するため、
レジスタが提供される。
最後のDC係数値のコピーを保持することにより、最終
的な解読済みDC係数を形成するという仕事をする。4
つの活性色成分の各々のために1つずつ、計4個のプレ
ディクタが必要である。DC差が解読されると、ALU
は適切なプレディクタを加えて、解読された値を形成す
る。これはやはりその色成分の次のDC差のためのプレ
ディクタとして記憶される。DC係数は(DCオフセッ
トのため)サインされるので、2補数からサイン・マグ
ニチュードへの変換が必要である。その後、そのバリュ
ーはゼロのRUNと共に出力される。事実、このラスト
ステージの一部を遂行せよという指令はハフマンステー
トマシーンによって供給されない。それらは単にパーザ
ーステートマシーンによって実行される。
LUはまずFLCのSIZEビットからDC差を生成し
なければならない。しかしながら、この場合、2つの補
数値がプレディクタに加算されることが求められる。こ
れは前述のように、まず間違ったサインでサイン拡張す
ることにより形成される。その結果が負であれば、正し
い値を形成するために1を加算しなければならない。も
ちろん、これはアダーの中にキャリーを詰め込むことに
よりプレディクタと同時に加算され得る。
ついては説明する価値がある。検出される誤差には実際
上4つのソースがある:・テーブル・エンドから外れ
る。
ある。
ある。
て発生する。ビットカウンタが16に達する(合法的バ
リューは0〜15である)場合、最長の合法的ハフマン
コードが16ビットであるので、誤差が発生する。「イ
ンデックス」の中間値が255を越える場合、セクショ
ンB.2.2.1.3において説明したように、誤差が
発生する。
リアルデータに遭遇する時に発生する。第3のものは反
対の状態が生じる時に発生する。
に多くの係数がある場合に発生する。これは実際にはデ
ータユニットインデックス部において検出される。
差はハフマン誤差レジスタにおいて注目され、パーザー
ステートマシーンが割り込まれる。誤差を処理し、回復
のために必要なコマンドを発することがパーザーステー
トマシーンの責任である。
り込み時に、ハフマンはパーザーステートマシーンと協
動する。ハフマンデコーダがパーザーステートマシーン
に割り込むと、新しいコマンドがパーザーステートマシ
ーンの出力においてアクセプトされるのを待つことがで
きる。ハフマンデコーダはパーザーステートマシーンに
割り込んだ後、2つの全サイクルのためにこのコマンド
をアクセプトしないであろう。これにより、パーザース
テートマシーンは(今は実行されるべきではない)そこ
にあるコマンドを取り除き、適切なものと置き換えるこ
とができる。これら2つのサイクルの後、ハフマンデコ
ーダはは通常のオペレーションを再び開始し、有効なコ
マンドがそこにあればそのコマンドを受け入れる。そう
でなければ、パーザーステートマシーンが有効なコマン
ドを示すまで何もしないであろう。
「ハフマン誤差」イベントビットが設定され、マスクビ
ットが設定されれば、ブロックは停止し、制御マイクロ
プロセッサは通常の方法で割り込まれるであろう。
実際には誤差ではないことがある。このようなことが発
生する最も重要な状況は、マクロブロックアドレスを読
んでいる時である。MPEG、H.261及びJPEG
のシンタックスにおいて、期待されるマクロブロックア
ドレスの代わりにトークンが発生するのは合法的であ
る。合法的方法でこうしたことが発生すれば、ハフマン
誤差レジスタにゼロがロードされる(誤差が無いことを
意味する)が、パーザーステートマシーンはまだ割り込
まれたままである。パーザーステートマシーンのコード
はこのno errorの状況を認識し、それに従って
応答する。この場合、「ハフマン誤差」イベントビット
は設定されず、ブロックはプロセシングを停止しないで
あろう。
まず、トークンは直ちに発生し、シリアルビットは前進
しない。この場合、「シリアルが期待される時のトーク
ン誤差」が発生したであろうが、その代わりに、no
error誤差が前述したような方法で発生する。
ビットがある。この場合、決定が為される。トークンの
前にある全てのビットがバリュー1を持っていた場合、
(H.261及びMPEGでは、コード化データは反転
されるので、コード化データファイルにはゼロビットが
あることを思いだしてほしい)、ノーエラーが発生す
る。しかしながら、それらの内のどれかがゼロであれ
ば、それらは有効なスタッフィングビットではなく、こ
うして誤差が発生し、「シリアルが期待される場合のト
ークン」誤差が発生する。
ある。この場合、同じ決定が為される。全ての16ビッ
トが1であれば、それらはパディングビットとして処理
され、no error誤差が発生する。それらの内の
いずれかがゼロであった場合、「ハフマンテーブルを外
れる」誤差が発生する。
はJPEGである。ハフマンテーブルもしくは量子化器
テーブルのいずれかを処理する場合、如何なる数のテー
ブルも同じマーカーセグメントの中に発生することがで
きる。ハフマンデコーダはいくつのテーブルがあるのか
を知ることができない。このため、各テーブルが完了し
た後、ハフマンデコーダは別のFLC4ビットを読み出
し、それを新しいテーブルナンバーであると仮定する。
しかしながら、新しいマーカーセグメントがスタートす
ると、4ビットFLCの代わりにトークンに遭遇するで
あろう。この要件は予測されず、従ってIgnore
Errorsコマンドビットが加えられた。
フマンデコーダブロック及びそれらの定義を制御するた
め、パーザーステートマシーンが使用するビットをここ
に示す。データユニットインデックス部コマンドビット
もこのテーブルに含まれる。マイクロプログラマの視点
から、ハフマンデコーダ及びデータユニットインデック
ス部は1つの凝縮した論理ブロックとして作用する。
は、Ignore Errors、Download、
Alutab、Token、First Coeff、
Special and VLCが全てゼロである。B
ypassはデータインデックス変換が発生しないよう
に設定される。
のビットを読むべきかを指示する。ナンバー0〜12は
合法的である。バリューゼロは(期待されたであろうよ
うに)実際にゼロビットを読み、従ってこの指令はハフ
マンデコーダNOP指令である。バリュー13、14、
15は作動せず、バリュー15はハフマンステートマシ
ーンが制御下にあり、読まれるべきFLCのビット数と
して”SSSS”の使用を表示する時に使用される。
のモードでは、Ignore Errors、Down
load、Alutab、Token、First C
oeff、and Specialがゼロであり、VL
Cは1である。通常、Bypassはデータインデック
ス変換が発生するように設定される。
Coefficient、及びSpecialは全て
ゼロであり、VLCは1である。
ように使用すべきテーブルを指示する。
ル)の場合、ビット1は使用されず、テーブル選択が2
回発生することに注目。非ベースラインJPEGデコー
ダが作られる場合、4個のDCテーブルと4個のACテ
ーブルがあり、テーブル[1]が必要となる。
がH.261スタイルのテーブルとして正しく読まれる
ために、入力データは使用される時に反転される。テー
ブル[3:0]=0の場合、適切なRing修正も適用
される。
したように、ゼロビットのFLCを読み出す動作がNo
Operation指令として使用される。入力ポー
トからは如何なるデータ(トークンまたはシリアルのい
ずれ)も読み出されず、ハフマンデコーダは指令ワード
と共にゼロのデータ値を出力する。
ient第1係数」H.261及びMPEGのTCoe
fficientテーブルはブロックの1番目の係数の
ために使用される特別な非ハフマンコードを持つ。ブロ
ック・スタートにおいてTCoefficientをデ
コードするために、First Coefficien
tビットがVLC指令と共にテーブルゼロに設定されて
もよい。First Coefficientビットの
多くの効果の1つはこのコードがデコードされることを
可能にすることである。
icient VLCを読むために、「簡単な」コマン
ドを発することは異例であることに注目。これは通常S
pecial Bitを設定することにより、制御がハ
フマンデコーダに手渡されるからである。
読出し」トークンワードを読むために、Tokenビッ
トは1に設定すべきである。Special及びFir
st Coefficientビットはゼロであるべき
である。テーブル[0]ビットを正しく作用させる場
合、VLCビットも設定されるべきである。
びテーブル[2]は以下のようにトークン読出し行為を
修正するために使用される:
ークンの前のシリアルデータの存在はエラーであると考
えられ、そのような信号が発せられる。
シリアルデータはトークンワードに遭遇するまで捨てら
れる。このシリアルデータの存在故にエラーは発生しな
いであろう。
ングビットは捨てられるであろう。もちろん、パディン
グビットの極性を知ることが必要である。これはVLC
データの読出しのための場合と全く同様の方法でテーブ
ル[3]により決定される。テーブル[3]がゼロであ
るなら、入力データはまず反転され、それからどれかの
「1」ビットが捨てられる。テーブル[3]が1に設定
される場合、入力データは反転されず、「1」ビットが
捨てられる。テーブル[3]ビットに応じてデータを反
転するという動作はVLCビットでは条件付きであるの
で、このビットは1に設定されなければならない。パデ
ィングビットでないビットに遭遇する(つまり、H.2
61及びMPEGにおける「1」ビットである)場合、
誤差が報告される。
だけが読まれることに注目。拡張ビットの状態は無視さ
れ、このビットをテストし、それに従って行動すること
はデマルチプレクサの責任である。マルチプルワードを
読む指令も提供される - 特別指令に関するセクション
を参照せよ。
テーブルを指定する」Alutabビットが設定される
と、ALUレジスタファイル内のレジスタを使用して実
際に使用されるテーブルナンバーを決定することができ
る。VLCビットと共にコマンドで供給されるテーブル
ナンバーはどのALUレジスタが使用されるかを決定す
る:
めに正しいビット数が読まれる。r sizeがゼロで
あれば、NOP指令が生じる。
ナンバーは1に設定されたテーブル[3]であり、結果
的に生じるナンバーはJPEGテーブルの1つを引用す
る。B.2.2.4.7 「特別指令」今まで説明して
きた全ての指令(もしくはオペレーションモード)は
「単純な」指令として考慮される。受け取られる各コマ
ンドのために、(シリアルデータもしくはトークンデー
タのいずれであっても)適切な量の入力データが読ま
れ、結果として生じるデータが出力される。誤差が検出
されなければ、正確に1つの出力がコマンド毎に発生す
るであろう。
ードが1つのコマンドのために発生することができるこ
とに特徴がある。この機能を果たすために、ハフマンデ
コーダの内部ステートマシーンが制御を行い、パーザー
が要求した指令が完了したと決定するまで、必要に応じ
てそれ自身指令を出すであろう。
になるシーケンスの最初の実際の指令は1に設定される
Specialビットで出される。これは全てのシーケ
ンスが独得の最初の指令を持たねばならないことを意味
する。この企ての利点は、パーザーから受け取るコマン
ドに基づいて要求されるルックアップオペレーションな
しに、シーケンスの最初の実際の指令が利用できること
である。
oefficient・JPEG DC・JPEG A
C・Token 第1のものはブロック・エンド記号が読まれるまで、
H.261及びMPEG変換係数等を読む。ブロックが
非イントラブロックである場合、このコマンドは全ブロ
ックを読むであろう。この場合、First Coef
ficientビットは第1の係数トリックが適用され
るように設定されるべきである。ブロックがイントラブ
ロックであれば、DCタームが既に読まれているべきで
あり、First Coefficientビットはゼ
ロであるべきである。
CタームはFLC8ビットバリューを読むために「単純
な」指令を用いて読まれる。MPEGでは、下記におい
て説明するJPEG DCの特別指令が使用される。J
PEG DCコマンドは(VLCにより示されるFLC
のSSSSビットを含む)JPEGスタイルのDCター
ムを読むために使用される。First Coeffi
cientビットはデータユニットインデックス部にお
いて(係数の数をカウントする)カウンタがリセットさ
れるために設定されなければならない。JPEG AC
コマンドはDCタームの後、EOBに遭遇するか、もし
くは64番目の係数が読まれるまで、ブロックの残りを
読むために使用される。
めに使用される。トークンワードは拡張ビットが明白に
なるまで読まれる。それは未認識のトークンを処理する
便利な方法である。
ブル」本発明では、ハフマンデコーダテーブルはDow
nloadビットを用いてダウンロードすることができ
る。最初のステップはダウンロードすべきテーブルを指
名することである。これはDownloadビットセッ
トとFirst Coeffビットセットで、FLCを
読むためのコマンドを出すことによって行われる。これ
はNOPとして処理され、従って如何なるビットも実際
には読まれないが、テーブルナンバーはレジスタに記憶
され、次のダウンローディングにおいてどのテーブルが
ロードされるかを特定するために使用される。
ずれかをロードすることができ、テーブル[3]はそれ
が(ハフマンデコーダ自体における)codes−pe
r−bitテーブルであるか、ロードされるデータイン
デックステーブルであるかを決定する。
oadビットセット(及びFirst Coeffビッ
トゼロ)で、必要な数の(常に8ビットである)FLC
を読むためのコマンドを出すことにより、データはその
テーブルの中にダウンロードされる。これは符号化デー
タが指名されたテーブルの中に書き込まれるようにす
る。アドレスカウンタは維持され、データは現在のアド
レスに書き込まれ、次にアドレスカウンタが増加され
る。アドレスカウンタはテーブルが指名される時はいつ
でもゼロにリセットされる。
ドする時は、データ及びアドレスが監視される。アドレ
スはハフマンインデックスナンバーである一方、そのア
ドレスにロードされるデータは最終的に解読される記号
であることに注目。この情報は関係のある記号のために
ハフマンインデックスナンバーを保持するレジスタを自
動的にロードするために使用される。従って、JPEG
ACテーブルにおいて、ZRLに対応するバリューを
持つデータが認識される時、現在のアドレスはテーブル
ナンバーによって指示されるように、レジスタCEDH
KEY ZRL INDEX0またはCED H K
EY ZRL INDEX1に書き込まれる。
ェイズ後に、codes−per−bitテーブルに書
き込まれるので、このフェイズ中にテーブルからデータ
を読むことはできない。従って、テーブルダウンロード
指令の後、直ちに出されるVLCを読もうとする指令は
失敗するであろう。実際のアプリケーションにおいて
(つまり、JPEGを行う時)、該かるシーケンスが発
生する理由はない。しかしながら、これを行うシミュレ
ーションテストを構築することは可能である。
ーン」本発明によるハフマンステートマシーンはある場
合に内部的に作られるハフマンデコーダコマンドを提供
するために作用する。内部ステートマシーンによって作
られ得る全てのコマンドはデマルチプレクサによりハフ
マンデコーダに提供され得る。
ある。コマンドがハフマンデコーダに出されると、それ
は一連の補助ラッチに記憶され、後に再使用することが
できる。更にコマンドはハフマンデコーダによって実行
され、ハフマンステートマシーンによって分析される。
コマンドが公知の指令シーケンスの最初のものであると
認識され、SPECIALビットが設定されると、ハフ
マンデコーダステートマシーンはパーザーステートマシ
ーンからハフマンデコーダの制御を引き継ぐ。この時点
で、ハフマンデコーダ用の指令には3つのソースがあ
る:1)パーザーステートマシーン:このチョイスは特
別指令の完了時(例えば、EOBが解読された時)に行
われ、次のデマルチプレクサコマンドがアクセプトされ
る。
ステートマシーンは任意のコマンドを持つことができ
る。
指令をスタートするために出される原始指令。
ユニットインデックス部からのフィードバックによって
提供されることが可能であり、これはハフマンステート
マシーンROM内のフィールドを取り替えるであろう。
ンバーは(例えば、AC及びDCテーブルナンバー及び
F−ナンバーの場合)ALUレジスタファイルから得ら
れるバリューによって提供される。これらのバリューは
補助コマンド記憶装置に記憶され、そのコマンドが後に
再使用される時、テーブルナンバーは記憶されたもので
ある。カウンタは通常次のブロックを引用するために進
んでいるので、それはALUから再びリカバーされな
い。
つつあるデータ次第であるので、決定はサイクルの最後
の方で行われることが必要である。従って、一般的な構
造は可能な指令の全てが並列に準備され、サイクル後半
のマルチプレクシングが実際の指令を決定するようにな
っている。
ンデコーダが使用するであろう指令を決定することに加
え、ステートマシーンROMも、現在のデータがデータ
ユニットインデックス部とそれからALUへと通過する
時に、現在のデータに付けられるであろう指令を決定す
ることに注目。全く同じ方法で、これら3つの指令全て
が並列に準備され、チョイスがサイクル後半で行われ
る。
ンデコーダ指令のための3つのチョイスに対応する、指
令のこの部分のために3つのチョイスがある。
指令。
ステートマシーンはデータユニットインデックス部のた
めに任意の指令を提供することができる。
出す原始指令。
タ」EOBコンパレータの出力は本質的に定数指令のセ
レクションがデータユニットインデックス部に表示され
るように強制し、次のハフマン指令がパーザーからの次
の指令であるようにさせるであろう。コンパレータの正
確な機能はハフマンステートマシーンROM内のビット
によって制御される。
CのJPEGテーブルにEOB記号のインデックスを保
持する4個のレジスタがある。DCテーブルの場合、も
ちろんブロック・エンド記号はないが、ゼロサイズの記
号があり、それはDCゼロ差によって作られる。これは
EOB記号の場合と全く同様にFLCのゼロビットが読
まれるようにするので、それらは全く同様に処理され
る。
バリューに加えて、定数値1も使用できる。これはH.
261及びMPEGにおけるEOB記号のインデックス
ナンバーである。
タ」本発明では、これは汎用コンパレータである。それ
はハフマンステートマシーン指令もしくはI to D
によって使用されるためのオリジナル指令のいずれかを
選択させる。
ューがある。2つはレジスタの中にあり、ZRLコード
のインデックスをACテーブルの中に保持する。他の2
つのバリューは定数であり、1つはバリューゼロであ
り、他の1つは12(MPEG及びH.261における
ESCAPEのインデックス)である。定数ゼロはFL
Cの場合に使用される。定数12はテーブルナンバーが
8より小さい時(及びVLC)はいつでも使用される。
2つのレジスタの1つはテーブルナンバーの低オーダー
ビットにより判断されて、テーブルナンバーが7より大
きい場合(及びVLC)に使用される。
パレータを可能化するために提供され、また別のビット
がその動作を反転するために提供される。指令の中のT
OKENビットが設定された場合、コンパレータ出力は
無視され、拡張ビットによって置き換えられる。これは
トークンの終わりまで続けられる。
マシーンROM」ハフマンステートマシーン内の指令フ
ィールドは次の通りである: nxtstate[4:0] 次のサイクルにおいて使用するアドレスである。このア
ドレスは修正することができる。 statect 1次のステートアドレスの修正を可能にする。ゼロであ
れば、ステートマシーンアドレスは修正されず、そうで
なければ、アドレスのLSBが次の2つのコンパレータ
のいずれかのバリューで置き換えられる:
始コマンド」として選択されると、ステートマシーンは
コマンドのために適切なものとしてロケーション0、
1、2または3にジャンプするであろう。 eobct[1:0] これは次のようなEOBコンパレータ及びextnビッ
トに基づいて次のハフマン指令のセレクションを制御す
る:
のセレクションを制御する。条件が合えば、ステートマ
シーン指令を取り、そうでなければ原始指令をリランす
る。いずれの場合にも、eobctl+条件がデマルチ
プレクサ指令を取れば、これ(eobctl+)は次の
ように優先権を持つ:
あれば、これはハフマンデコーダによって使用されるテ
ーブルナンバーである。しかしながら、ZRLコンパレ
ータが適合すれば、zrltab[3:0]フィールド
が優先して使用される。
のテーブルナンバーが使用される必要がない場合、sm
tab[3:0]及びzrltab[3:0]は同じバ
リューを持つであろう。しかしながら、これはLsim
において奇妙なシミュレーション問題を導く可能性があ
ることに注目。MPEGの場合、ZRLのためにハフマ
ンインデックスナンバーを指示するレジスタをロードす
る明らかな必要はない(JPEGのみの構成)。しかし
ながら、これらは今も選択され、ZRLコンパレータが
「未知」であるかもしれない(従ってどちらが選択され
ようと重大ではない)全ての場合に、smtab[3:
0]及びzrltab[3:0]は同じバリューを持つ
という事実にもかかわらず、ZRLコンパレータは「未
知」となり、次のステートも「未知」になるであろう。 zrltab[3:0] これは選択された指令がステートマシーン指令であれ
ば、ハフマンデコーダによって使用されるであろうテー
ブルナンバーである。しかしながら、ZRLコンパレー
タが適合すれば、zrltab[3:0]フィールドが
優先して使用される。
ば、ハフマンデコーダによって使用されるVLCビット
である。 aluzrl[1:0] このフィールドはALUに送られる指令のセレクション
を制御する。それは(指令シーケンスのスタートで記憶
された)パーザーステートマシーンからのコマンドであ
っても、あるいはステートマシーンからのコマンドであ
ってもよい:
れる指令の修正を制御する。これは単にALU出力モー
ドをzinputに強制する。これは任意のチョイスで
ある;noneから離れた出力モードであれば何でも良
い。これはブロック・エンドコマンドワードがトークン
フォーマッティング部に送られ、そこでそれはデータト
ークンの適切なフォーマッティングを制御する:
らはALUの説明において適切に文書化される。
マシーンの修正」ステートマシーンの1つの態様では、
データユニットインデックス部は、エスケープコード化
されたTcoefficientのRUN部分がいつデ
ータユニットインデックス部に送られるかを「知る」必
要がある。これは制御ROM内の適切なビットを用いて
達成できる一方、ROMの変更を避けるため、別のアプ
ローチが使用されてきた。この点に関して、ROMに入
るアドレスは監視され、アドレスバリュー5が検出され
る。これはRUNフィールドを処理するROMにおいて
指名される適切な場所である。もちろん、他の被選択ア
ドレスバリューを使用するようにROMをプログラムし
ようと思えばできたことは自明であろう。更に、制御R
OMのビットを使用する前述のアプローチも利用できた
であろう。
発明では、ハフマンデコーダはhdと呼ばれ、hdは実
際にデータユニットインデックス部を含む(これは編集
されたコード生成の制限により必要とされる)。従っ
て、hdは次の主要ブロックを含む;
易に理解できる、図面の詳細な部分において示した様々
なサブシステムエリアの全体的な説明により行われる。
2線式インターフェース制御用のロジックは通常2線式
インターフェースにより制御される3ポート:データ入
力、データ出力、及びコマンドを含む。それに加えて、
入力シフタからの2つの「有効な」線がある:トークン
がin data[7:0]に表示されることを指示す
るtoken validと、データがシリアル上に表
示されることを指示するserial validであ
る。
イネーブルである。最も重要なものはph1ラッチに対
するイネーブルであるe1である。ph0ラッチの多く
は可能化されないが、2つのイネーブルがこれらのため
に提供され、それらはシリアルデータと関連するe0と
トークンデータと関連するe0tである。
otdone、及びそれらのph0バリアントのdon
e0とnotdone0)は、原始ハフマンコマンドが
完了する時を指示する。ハフマンステートマシーンコマ
ンドが実行される場合、doneは全ステートマシーン
コマンドを含む各原始コマンドの完了時に認定されるで
あろう。信号notnewは、全ハフマンステートマシ
ーンコマンドが完了するまで、パーザーステートマシー
ンからの新しいコマンドのアクセプタンスを防止する。
る情報の制御に関して、sizeフィールド用の制御ロ
ジックはJPEG係数デコーディング中にハフマンデコ
ーダに送り返される。これは実際には2つの方法で起こ
る。サイズが正確に1であれば、これは専用信号not
fbone0に送り返される。そうでなければ、データ
ユニットインデックス部の出力から送り返される。(o
utdata[3:0]及び信号fbvalid1はこ
れが発生するのを指示する。フェッドバックデータのコ
マンドレジスタ(シート10)へのマルチプレクシング
を制御するために信号muxsizeが生み出され
る。)それに加えて、正確に64の係数がデコードされ
たフィードバックがある。JPEGにおいてEOBはこ
の場合にコード化されないので、信号forceeob
が作られる。類似により、上述したように、フィードバ
ックサイズ用の信号と共に、これが実施されるには実際
2つの方法がある。通常のフィードバックが行われる
(jpegeob)場合、データがフィードバックされ
るにつれて、ラッチi−971だけがロードされ、新し
いパーザーステートマシーンコマンドがアクセプトされ
るまでクリアされない。信号forceeobはハフマ
ンコードがデコードされるまで実際に作られない。この
ように、固定長コード(つまり、サイズビット)は影響
を受けないが、次のハフマンコード化情報は強制された
ブロック・エンドにより置き換えられる。サイズが1で
あり、jpegeob0が使用された場合、1ビットだ
けが読み出されるので、i−1255とi−1256は
正確な時間まで信号を遅らせる。注目すべきことは、ゼ
ロサイズを持つ唯一の記号はEOBとZRLであるの
で、この状況においてゼロサイズが発生することが不可
能であるということである。
(Tcoeffテーブルを用いるハフマンデコーディン
グ)、mba tab0(MBAテーブルを用いるハフ
マンデコーディング)、及びnop(ノーオペレーショ
ン)を作るためのコマンドのかなりランダムなデコーデ
ィングである。nopを発生させるにはいくつかの理由
がある。サイズゼロの固定長コードはその一つであり、
forceeob信号もその一つであり(EOBを合図
するために出力が作られても、入力シフタから如何なる
データも読み出されるべきではないので)、最後にテー
ブルダウンロード指名が第三の理由である。
れる)notfrczeroは、NOP指令が使用され
る時に、その結果がゼロであることを保証する。更に、
invertはハフマンデコーディングの前にシリアル
ビットが反転されるべきである時を指示する(セクショ
ン B.2.2.1.1を参照)。ringは変換係数
ringが適用されるべき時を指示する(セクション
B.2.2.1.2を参照)。
−bit ROMのアドレスに関して達成される。これ
らは小さなデータパスROMから構築される。信号は二
重(例えば、cshaとcsla)にされる。アドレス
は選択されるブロックへのUPIアクセスに応じて、ビ
ットカウンタ(bit[3:0])もしくはマイクロプ
ロセッサインターフェースアドレス(key addr
[3:0])から取ることができる。
(EOB、ZRL等)用のハフマンインデックスバリュ
ーを保持するもののようなレジスタのUPI読み出しに
関する。更に含まれるのは、これらのレジスタ及びco
des−per−bit RAMのUPI読み出し用の
トライステートドライバー制御である。
要なビット数のために提供される。first bit
はTcoeffの第1の係数トリックに関連して使用さ
れ、bit fiveはTcoeffテーブルの中にリ
ングを適用することに関係する。EOBコンパレータが
デコードされたインデックスバリューに適合する動作を
シミュレートするためのforceeobの使用に注
目。
シフタから読まれる場合、関連extnビットはそれと
共に読まれる。そうでなければ、extnの最後のバリ
ューは保存される。これはトークンが読まれた後いつで
も、マイクロコードプログラムによるextnビットの
テストを可能にする。
出力データの上位4ビットがゼロになるように強いられ
る。これらは固定長コードをデコーディングする時に有
効なバリューを持つだけなので、それらはVLC、トー
クンをデコーディングする時、あるいはNOP指令が何
等かの理由で実施される時はゼロにされる。
出し、done信号を発する。本質的に、doneであ
る理由には2つのグループがある;通常の理由と、例外
的な理由である。これらは各々2つの三路マルチプレク
サの1つによって処理される。
常の理由を処理する。FLCの場合、信号ndnflc
が使用される。これはビットカウンタをテーブルナンバ
ーと比較するコンパレータの出力である。VLCの場
合、信号ndnvlcが使用される。これは演算データ
パスからの出力であり、式9を直接的に反映する。NO
P指令またはトークンの場合、1つのサイクルだけが必
要であり、従って、システムは無条件にdoneであ
る。
274)が例外的な場合を処理する。JPEGデコーデ
ィングにおいてデコーダがサイズのフィードバックを期
待している(fbexpctd0)場合、1つだけのビ
ットが必要なのでデコーダはdoneである。デコーダ
がTcoeffテーブルを用いて最初の係数の第1ビッ
トを処理している場合、現在のインデックスのビットゼ
ロがゼロである場合、それはdoneである(セクショ
ンB.2.2.1.2を参照)。これらの条件のいずれ
も満たされない場合、doneであるための例外的な理
由はない。
done状態を変形させる。i−570(つまり、デー
タが有効ではない)により生じる状態がdoneを強い
る。これは少しおかしく思われるかもしれない。それは
基本的に、第1のコマンドの(doneが全てのカウン
タ、レジスタ等をリセットする)ための準備のために、
マシーンをdone状態にならせるためにリセット後使
用される。
に必要である。誤差を検出すれば、doneがとにかく
強いられるので、通常のdone信号は使用できない。
doneの使用は結合フィードバックループを与えるで
あろう。
差状態を検出する回路によって行われる。これらはi−
1190において共に0Redである。この場合、i−
1193、i−585及びi−584は3ビットのハフ
マン誤差レジスタを構成する。「実際の」誤差がない場
合に誤差を不能化するi−1253及びi−1254に
注目(セクション B.2.2.3を参照)。
は関連する回路と共に、誤差検出後最初のコマンドのア
クセプタンスを制御する単純なステートマシーンを提供
する。
トインデックス部及びALUにおいてパイプライン遅延
に合わせるため遅延される。
インデックス部に送られる実際のバイパス信号である。
それは固定長コードがデコードされる時はいつでも、ハ
フマンステートマシーンがバイパスしなければならない
ように制御される時に修正される。
ザーステートマシーンに(コンディションコードを)フ
ィードバックするようにさせるビットである。更に、ハ
フマンステートマシーンが制御されている時、信号は
(原始コマンドの1つが完了する都度為されるよりもむ
しろ)一度だけ認定されることが重要である。
指令ビットが増分を明記する場合)ALUがブロックカ
ウンタのステップを踏むようにさせるビットである。こ
れも一度だけ認定されなければならない。
変換にデータを出力するALU指令のためにのみ認定さ
れねばならない。そうでなければ、カウンタはトークン
変換への最初の出力前に増分され、データトークンにお
いてccという不正確なバリューを生じるかもしれな
い。
クンフォーマッティング部に出力される場合、alun
ode[1]もしくはalunode[0]のいずれか
が低くなるであろう。
ンステートマシーンデータパスを示す。更にハフマンス
テートマシーンROMの出力を読むためのUPIデコー
ドがある。
プレクシングが提供される(セクションB2.2.4.
6を参照)。
Uoutsrc指令フィールドをnon−noneに強
いる処理をする(セクションB.2.2.5.3、al
ueobの説明を参照)。
コマンドレジスタに関して、コマンドの各ビットはコマ
ンドの可能なソース間の選択をする関連マルチプレクサ
を有する。4つの制御信号はこのセレクションを制御す
る:Selholdはレジスタに現在のステートを保持
するようにさせる。
から新しいコマンドをロードさせる。これは更に後の使
用のために、元のパーザーステートマシーンのコマンド
を保持するレジスタのローディングをも可能にする。
ーンのコマンドを保持するレジスタからコマンドのロー
ディングを起こさせる。
ROMからのコマンドのローディングを起こさせる。
ーがデータユニットインデックス部の出力データからも
ロードされるので、状況はそれより少し複雑である(s
elholdt及びmuxsize)。
の中に現在のアドレスを保持する。ロジックは可能な4
つのコマンドのどれが実行されているかを検出する。こ
れらの信号は新しいコマンドの場合スタートアドレスの
下位2ビットを形成するために組み合わされる。
出力が無意味である(通常はコマンドが「単純な」コマ
ンドであるため)時を検出する。信号notignor
eromはステートマシーンのオペレーションを効果的
に不能化し、特にALUに送られる指令の修正を不能化
する。
のステートマシーンの制限されたジャンピング能力を制
御する。
シーンROMへと信号を追いやるために提供される。こ
れはデータパススタイルの結合ROMである。
B2.2.5.4において説明される。
の記号のためにハフマンインデックスナンバーを保持す
るレジスタの準備をする。これらのレジスタはUPIま
たはデータパスからロードすることができる。cent
er(es[4:0]及びzs[3:0]におけるデコ
ーディングはデコードハフマンインデックスと比較する
ためにどのレジスタまたは一定バリューかを選択するマ
ルチプレクサのためにセレクト信号を発生させている。
クに関して。ここでは、ハフマンステートマシーンRO
Mからの「指令」ビットは、次に何をすべきか、またA
LU用の指令ワードを如何に修正するかを決定するた
め、様々な条件と組み合わされる。
oldはハフマンデコーダコマンドレジスタのオペレー
ションを制御するため、シート10上で使用される。そ
れらはここではハフマンインデックスコンパレータ(n
eobmatch及びnzrlmatch)と共に、ス
テートマシーンROM(セクションB.2.2.5.3
において説明される)の中の制御ビットから明らかな方
法で作られる。
セレクションが行われる。実際のマルチプレクシングは
ハフマンステートマシーンデータパスhfstdpにお
いて行われる。4つの制御信号が発生される。
aluseldmx(パーザーステートマシーン指令を
選択する)もしくはaluselsm(ハフマンステー
トマシーン指令を選択する)のいずれか1つが作られる
であろう。それに加えて、ALU指令のoutsrcフ
ィールドがそれをzinputに押しやるために修正さ
れる。
されたテーブルナンバーを保持する。デコーディングは
codes−per−bit RAMのために提供され
る。追加デコーディングは、ハフマンインデックスナン
バーレジスタが自動的にロードされるように、EOM及
びZRL等の記号がダウンロードされる時を認識する。
FLCを読む時に、いつ正しい数のビットが読まれてい
るかを検出する。B.2.2.6.2 「“hddp”
の説明」コンパレータはハフマンインデックスの特別な
バリューを検出する。レジスタはダウンロード可能なテ
ーブル用のバリューを保持する。マルチプレクサ(me
ob[7:0]及びmzr[7:0])は使用すべきバ
リューを選択し、exclusive−orゲート及び
ゲーティングがコンパレータを構成する。
2.2.1において説明した式を直接評価する。更なる
説明はここでは不要であると考えられる。排他的論理和
はセクションB.2.2.1.1において説明したデー
タ(i−807)を反転するために使用される。
マルチプレクシングアレンジメントはセクションB.
2.2.1.2において説明したring置換を履行す
る。
化シリアルデータ(index[7:0])とトークン
データ(ntoken0[7:0])間のマルチプレク
シングに関して、ハフマンインデックスバリューはZR
L及びEOB記号の中で決定される。
それらのマルチプレクシングは使用すべきテーブルを決
定するために使用される。テーブルセレクト情報が遅れ
て到着するので、このアレンジメントが使用される。そ
の後全てのテーブルがアクセスされ、正しいテーブルが
選択される。
して、codes−per−bitROMの最終マルチ
プレクシング及びcodes−per−bit RAM
の出力はブロックhdcpbramの内部で起こる。
の説明」本発明において、Hdstdpは2つのモジュ
ールから成る。hdstdelは適切なパイプラインス
テージまで、例えば、それらがALU及びトークン変換
に供給される時まで、パーザーステートマシーン制御ビ
ットを遅らせることに関係がある。それはALUに送ら
れる指令ワードの約半分だけを処理し、残りは他のモジ
ュールhdstmodにより処理される。
ンROMを含む。この指令の数ビットはハフマンステー
トマシーン制御ロジックにより使用される。残りのビッ
トは(パーザーステートマシーンからの)ALU指令ワ
ードのhdstdelにおいて処理されない部分を置き
換えるために使用される。
必要ではない。パイプラインディレイレジスタだけがあ
る。
M及びALU指令を修正するマルチプレクサにより処理
される。回路の残部はハフマンステートマシーンROM
出力の半分に対するUPI読み取りアクセスに関係す
る。バッファも制御信号のために使用される。
グ」本発明によるハフマンデコーダトークンフォマッテ
ィングは、ハフマンブロックの終了部にある。その機能
は、その名前が示す通り、ハフマンデコーダからのデー
タを適当なトークン構造にフォーマットすることであ
る。入力データはマイクロインストラクションワードコ
マンドフィールドの制御下、マイクロインストラクショ
ンワードの中のデータで多重送信される。ブロックは2
つの操作モード;データワードとデータトークンを持っ
ているB.2.3.1 「マイクロインストラクション
ワード」
入力の最上位8ビットが出力に送られる。底部8ビット
はマスクフィールドに応じて、入力の底部8ビット、マ
イクロインストラクションワードのトークンフィール
ド、もしくはその両者の混合物のいずれかである。マス
クは、out data[16:8]=indata
[16:8]out data{7:0]=(Toke
n[7:0]&(ff<<mask))in data
[7:0]のミックスにおける入力ビット数を表す。
力データは入力データに等しい。本モードはnon−デ
ータトークンにおける出力ワードに用いられる。マスク
を0に設定すると、out data[7:0]はマイ
クロインストラクションワードのトークンフィールドと
なる。本モードは如何なるデータも含まないトークンヘ
ッダを出力するために使用される。トークンヘッダがデ
ータを含む場合、データビット数はマスクフィールドに
より与えられる。
ut extn=in extnとなり、そうでなけれ
ば、out extn=De.Btであり、Ebはdo
n’t careである。B.2.3.2.2 「デー
タトークン」本モードはデータトークンとフォーマッテ
ィングするために使用され、信号、first coe
fficientに応じて2つの関数がある。リセット
において、first coefficientが設定
される。最初のデータ係数がcmdを1に設定したマイ
クロインストラクションワードと共に到着すると、ou
t data[16:2]は0x1に設定され、out
data[1:0]はマイクロインストラクションワ
ードのBtフィールドの値を取る。これはデータトーク
ンのヘッダである。このワードがアクセプトされると、
コマンドを伴う係数がレジスタRLにロードされ、fi
rst coefficientがEbの値を取る。次
の係数が到着すると、out data[16:0]は
RLに記憶された前の係数を取る。これはブロック・エ
ンドに遭遇する時、Ebが設定され、first co
efficientが設定され、次のデータトークン、
つまり If(first coefficient) { out data[16:2] = 0x1 out data[1:0] = Bt[1:0] RL[16:0] = in data[16:0] } else { out data[16:0] = RL[16:0] RL[16:0] = in data[16:0] } out extn = −Ebの準備が整うことを確実
にする。
ば、指令ビットのほとんどは通常の方法でパーザーステ
ートマシーンによって供給される。しかしながら、実際
には2つのフィールドが他の回路により供給される。上
述のBtフィールドはALUブロックの出力に直接接続
される。この2つのビットフィールドはccもしくはc
olor componentの現在のバリューを与え
る。こうして、データトークンヘッダが構築されると、
最も低いオーダーの2ビットがALUカウンタから直接
色成分を取り出す。第2に、ブロック・エンド記号id
がデコードされる時はいつでも(あるいはブロック内の
最後の係数がコード化されるので、1が仮定されるJP
EGの場合)、Ebビットがハフマンデコーダにおいて
認定される。
信号が引き出される。それはトークンに関して、通常の
方法でトークンワードと共に拡張ビットが供給される時
に意味を持つだけである。
ン」本発明のパーザーステートマシーンは実際非常に単
純な回路片である。複雑なのはマイクロコードROMの
プログラミングであり、それはセクション B.2.5
において論じる。
持するレジスタから構成される。このアドレスはマイク
ロコードROMにおいてルックアップされ、マイクロコ
ードワードを作り出す。更に、アドレスは単純なインク
リメンタにおいて増分され、この増分されたアドレスは
次のステートのために使用される2つの可能なアドレス
の1つである。他方のアドレスはマイクロコードROM
自体の中のフィールドである。このように、各指令は潜
在的にジャンプ指令であり、プログラムにおいて明記さ
れるロケーションにジャンプすることができる。ジャン
プが行われなければ、制御はROM内の次のロケーショ
ンへと進む。
が提供される。これらのコンディションの1つが(マイ
クロコードROM内のフィールドにより)選択され、そ
れに加えて、(やはりマイクロコードROM内のビット
により)反転され得る。結果的に生じる信号が増分され
たアドレスまたはマイクロコードROM内のジャンプア
ドレスのいずれかを選択する。コンディションの1つは
Falseとして評価するため配線される。このコンデ
ィションが選択されると、ジャンプは発生しない。ある
いはその代わりに、このコンディションが選択され、反
転されて、ジャンプ、つまり無条件ジャンプが常に発生
する。
明による2線式インターフェース制御は本ブロックでは
少し異例である。パーザーステートマシーンとハフマン
デコーダ間に2線式インターフェースがある。これはコ
マンドの進行を制御するために使用される。パーザース
テートマシーンはROMから次のコマンドを読むために
前進する前に、所定のコマンドがアクセプトされるまで
待つであろう。それに加えて、コンディションコードが
ALUからのワイヤを通して送り返される。
ットを持ち、それはフィードバックを待つべきことを明
記できるようにする。これが発生した場合、その指令が
ハフマンデコーダによりアクセプトされた後、ALUか
らのフィードバックワイヤが認定されるまで新しいコマ
ンドは表示されない。このワイヤ、fb validは
現在ALUにより供給されているコンディションコード
が、それらがフィードバックを待つことを求めるコマン
ドと関連するデータを反映するという意味で有効である
ことを指示する。
プロセシング)の結果として、特別なデータ片にジャン
プするための次のステートを決定する条件付きジャンプ
コマンドを構築する際に、その特徴が利用される。2線
式制御では、あるコマンドが所定のプロセシングブロッ
ク(つまり、この場合はALU)に到達する時が不確か
であるので、この便宜なくしては、パイプライン内のデ
ータに依存するコンディションをテストすることは出来
ないであろう。
わけではない。ある指令はデータパイプラインの必要な
く実行できる。これらはジャンプ指令である傾向があ
る。マイクロコードROM内のビットは指令がハフマン
デコーダに表示されるか否かを選択する。そうでなけれ
ば、ハフマンデコーダが指令をアクセプトする必要はな
く、従って、パイプラインが失速していても、こうした
状況で実行を続けることができる。
ーステートマシーンの中に2つのイベントビットが置か
れる。1つはハフマンイベントと称され、他の1つはパ
ーザーイベントと称される。
イベントにより監視される「コンディション」はマイク
ロコードROM内のビットにすぎない。このように、指
令はこのビットを設定することによりパーザーイベント
を生じさせることができる。典型的に、これを行う指令
は適当な定数をrom controlレジスタに書き
込み、割り込みサービスルーチンが割り込みの原因を判
断することができるようにする。
いは、イベントがマスクアウトされた場合直ちに)、制
御は停止したポイントでリカバーする。そのイベントを
起こさせた指令がジャンプ指令を持っている(その状態
が本物であると評価する)場合、ジャンプは通常の方法
で行われる。従って、ジャンプをコード化することによ
り、サービス後に、誤差ハンドラにジャンプすることが
できる。
される状態は3つのハフマン誤差ビットのORである。
現実に、この状態は非常に単純な方法でパーザーイベン
トに対して処理される。しかしながら、ハフマンデコー
ダからの追加ワイヤ、huffintrptは誤差が発
生する時はいつでも認定される。これはマイクロコード
プログラムにおいて制御を誤差ハンドラにジャンプさせ
る。
ケンスは割り込み発生とブロック・ストップを含む。サ
ービシング後、制御は誤差ハンドラに伝送される。ca
llメカニズムは無く、通常の割り込みとは異なり、誤
差処理に続いて発生する誤差の前にマイクロコードの中
のポイントに戻ることは不可能である。
fintrptを認定することができる。これはセクシ
ョン B.2.2.3において論じたように、no−e
rror誤差の特別な場合に発生する。この場合、如何
なる割り込みも(マイクロプロセッサインターフェース
に)発生せず、制御は(マイクロコード内の)誤差ハン
ドラに送られる。ハフマン誤差レジスタはこの場合明ら
かであるので、マイクロコード誤差ハンドラは、こうし
た状況であることを決定し、これに応じて応答すること
ができる。
マイクロコードROMには幾つかの特別なロケーション
がある。ROM内の最初の4つのロケーションは主プロ
グラムへのエントリポイントである。制御はリセット時
にこれら4つのロケーションの1つに進む。ジャンプす
べきロケーションはALUレジスタ、coding s
td.において選択されるコーディングスタンダードに
より決定される。このロケーションが真のリセットによ
りそれ自体ゼロにリセットされるので、制御はロケーシ
ョンゼロに進む。しかしながら、CED H TRAC
E内のUPIレジスタビットCED H TRACE
RSTを用いてパーザーステートマシーンだけをリセッ
トすることができる。この場合、codingstdレ
ジスタはリセットされず、制御は最初の4つのロケーシ
ョンの適当な1つに進む。
0x007)はハフマン割り込みが起こる時に使用され
る。典型的に、実際の誤差ハンドラがこれらのロケーシ
ョンの各々に置かれる。ここでも、ロケーションの選択
はコーディングスタンダードの結果として為される。
の助けとして、トレースメカニズムが実装される。これ
はマイクロコードがシングルステップ化されるようにす
る。レジスタCED H TRACE内のビットCED
H TRACE EVENTとCED H TRACE MASKがこれ
を制御する。その名前が示すように、それらは非常に良
く似た方法で通常のイベントビットに対して作用する。
しかしながら、幾つかの違い(特に、UPI割り込みが
生じないこと)により、それらは他のイベントビットと
一緒にグループ分けされることはない。
設定される時にトレーシングメカニズムがオンにされ
る。各マイクロコード指令がROMから読まれた後、し
かしそれがハフマンデコーダに表示される前に、トレー
スイベントが発生する。この場合、CED H TRA
CE EVENTが1になる。如何なる割り込みも生じ
ないので、それが登録されなければならない。全マイク
ロコードワードがレジスタCED H KEY DMX
WORD 0〜CED HKEY DMXWORD 9において利用できる。その指令は必
要であれば、この時点で修正できる。CED H TR
ACE EVENTに1を書き込むと、その指令を実行
させ、CED H TRACE EVENTをクリアす
る。この後すぐに、実施すべき次のマイクロコードワー
ドがROMから読み出され、新しいトレースイベントが
発生する。
コードはアッセンブラhppを用いてプログラムされる
が、それは非常に単純なツールで、抜取りの大部分がマ
クロプリプロセッサを使用して行われる。標準のCプリ
プロセッサcppがこの目的のために使用される。
ず、これはトークンを定義するtokens.hを含
む。次に、regfile.hはALUレジスタmap
を定義する。fields.uはマイクロコードワード
内の様々なフィールドを定義し、フィールド内の各々の
可能なビットパターンのために定義された記号リストを
提供する。次に、コードの中で使用されるラベルが定義
される。このステップの後、基本的な指令を明確にする
多数のcppmacrosを定義するために、inst
r.uが含まれる。次に、errors.hがパーザー
イベントを定義するナンバーを定義する。次に、unw
ord.uはマイクロコードワードを構築するためにフ
ィールドが置かれるオーダーを定義する。
ログラム自体である。
は、ucode.uにおいて定義される様々な指令を説
明する。多くの場合、1つのテーマ(特にALU指令)
に関して変形が少ないので、全ての指令に関する説明を
ここで行うわけではない。
タインデックス指令」本発明では、ハフマンデコーダは
H NOP指令を使用する。それはノーオペレーション
指令である。ハフマンは如何なるデータもデコードされ
ないという意味において、何もしない。この指令により
作られるデータは常にゼロである。従って、関連指令は
ALUに送られる。
SRCH、H TOKSKIP PAD、H TOKS
KIP JPAD、H TOKPASS及びH TOK
READである。これらは総て入力シフタからのトーク
ンを読み出し、それらを残りのマシーンに送る。H T
OKREADは1つのトークンワードを読む。H TO
KPASSはゼロextnビットまでの全トークンを読
むために使用できる。関連コマンドはトークンの各ワー
ドのために繰り返される。HTOKSRCHはトークン
の前の全てのシリアルデータを捨て、1つのトークンワ
ードを読む。H TOKSKIP PADはパディング
ビット(H.261及びMPEG)をとばし、1つのト
ークンワードを読む。H TOKSKIPJPADはJ
PEGパディングのために同じことをする。
コードを読む。
c、例えばH VLC(tcoeff)として送られ
る)指示されたテーブルを用いて、vicを読む。
同様であるが、ignore errorsビットが設
定される。
LCと同様であるが、ハフマンインデックスが無修正の
データユニットインデックス部を通して送られるよう
に、バイパスビットが設定される。
Uレジスタr fwd r sizeとr bwd r
sizeにより各々指示されるサイズのFLCを読
む。
数、ALUからのテーブルナンバーを読む。
OE/FFは変換係数を読む。HDCTC/OE/FF
において、第1のcoeffビットが設定され、non
−intraブロックのためのものである一方、H T
C/OE/FFはDCタームが読まれた後のintra
ブロックのためである。
ウンロードのためのテーブルを指名する。
それらを指名されたテーブルにダウンロードする。
には、詳細に説明するにはあまりに多くのALU指令が
ありすぎる。Mnemonics構築される基本的な方
法について論じ、これにより指令が読めるようになるべ
きである。更に、これらは当業者の一人で有れば容易に
理解できるものでなければならない。
タを移動させることに関係し、従って、一般的な「ロー
ド」指令が使用される。Mnemonicにおいて、A
LDxyは、yの内容がxにロードされる、つまりデ
スティネーションが先に記録され、ソースが次にくるこ
とが解る。
ポートからのデータをロードする。ALUレジスタファ
イルが指定されると、MnemonicはLDAF(R
A)がレジスタファイル内のロケーションRAの内容を
Aにロードするようにアドレスを取るであろう。
動かされるにつれて、データを修正する能力を有する。
この場合、算術はソースデータの一部として指示され
る。従って、Mnemonic LDA AADDF
(RA)は、Aレジスタの現在の内容プラス、レジスタ
ファイル内の指示されたロケーションの内容をAにロー
ドする。別の例はLDA ISGXRであり、それは入
力データを取り、サインはRUNレジスタの中で指示さ
れるビットから伸び、Aレジスタにその結果を記憶す
る。
デスティネーションが指定される。ここでも、例とし
て、LDF LDA ASUBC(RA)では、Aマイ
ナス定数の結果をAレジスタ及びレジスタファイルの両
方にロードする。
めに存在する。例えば、CLRAはAレジスタをクリア
するために使用され、RMBCはマクロブロックカウン
タをリセットするために使用される。これらはかなり自
明であり、instr.uの中のコメントにおいて説明
される。
常の動作に加えてトークンフォマッティングに出力され
ることを指示するために、接尾辞Oを使用することであ
る。このように、LDFI O(RA)は入力データを
記憶し、更にそれをトークンフォマッティングに送る。
あるいはその代わりに、所望であれば、これはLDF
LDO I(RA)であってもよいであろう。B.2.
5.1.3「トークンフォマッティング指令」これはT
NOP「ノーオペレーション」指令である。これは実
際には、ノーオペレーション指令を構築することは不可
能なので、誤称である。しかしながら、これはALUが
トークンフォマッティングに出力されないので、その指
令が重要ではない時に使用される。
指令と共にのみ使用される)データトークンワードを出
力する。
トに基づいてトークンワードを生み出す。
であるが、拡張ビットは1である。T OPD(NB)
は一定フィールドから来るビットの残部と共に、出力の
底部NBビットからのデータのNBビット。
であるが、拡張ビットが高い。
ートハンドである。
ショートハンドである。
マシーン指令」この指令、D NOPはノーオペレーシ
ョン、つまり、アドレスは普通に増加し、パーザーステ
ートマシーンは何も特別なことをしない。指令の残部は
データパイプラインに送られる。待機は発生しない。
が、フィードバックが発生するのを待つ。
DDR)及びDJNX(ADDR)のようなMnemo
nicsは、条件が満たされればジャンプする。指令は
ハフマンデコーダに出力されない。
DDR)及びDXJNX(ADDR)のようなMnem
onics。これらは上記の単純な相対物と同様である
が、その指令はハフマンデコーダに出力される。
(ADDR)等のMnemonics。これらの指令は
ハフマンデコーダに出力され、パーザーは状態を評価す
る前に、ALUからのフィードバックを待つ。
めに使用される。
ためである。これはイベントを引き起こし、ラベルdf
ltを持つロケーションにジャンプする。この指令はR
OMを満たすために使用され、未使用のロケーションが
トラップされるので、実行されてはならない。
誤差からのリカバリを企てると仮定されるラベルsrc
h dispatchにジャンプする。セクションB.
3 「ハフマンデコーダALU」B.3.1 「序文」
本発明によれば、ハフマンデコーダALUサブブロック
はハフマンデコーダブロック用の全般的な算術的及び論
理的機能性を提供する。それは加算及び減算操作、様々
なタイプのサイン拡張操作、及び入力データのrun−
sign−levelトリプルズへのフォーマッティン
グを行う能力を有する。更に、それはその正確な操作及
び構成が、入力データと同期的に、つまり2線式インタ
ーフェース制御下に、ALUに到着するマイクロインス
トラクションワードにより明記される柔軟な構造を有す
る。
力ポートに加えて、ALUは6ビットランポート及び
(実際にはトークンバスの上にある)8ビット一定ポー
トを持つ。これらの全ては、マイクロインストラクショ
ンワードを除き、ALUデータパスを通して各々の幅の
バスを駆動する。拡張ビットを表し、17ビットラン・
サイン・レベルと共に出力される(out data)
マイクロインストラクションワード内に1ビットがあ
る。ALUデータパスの各端に2線式インターフェース
と、それら自身の有効な信号、cc validと共に
出力される一連のコンディションコードがある。ALU
を介して他のハフマンデコーダサブブロック及びマイク
ロプロセッサインターフェースにアクセス可能なレジス
タファイルがある。
る。それは以下の構成要素を含む: 入力ブロック 出力ブロック コンディションコードブロック ソースマルチプレクシングを備えたAレジスタ ソースマルチプレクシングを備えたRunレジスタ(6
ビット) ソースマルチプレクシングを備えたアダー/サブトラク
ター ソースマルチプレクシングを備えたサイン拡張ロジック レジスタファイル (出力ブロックを除き)これらのブロックの各々はその
出力をデータパスを通って走るバス上に押しやり、これ
らのバスは次にブロックソース用のマルチプレクシング
への入力として使用される。例えば、アダーはAレジス
タに対する可能な入力の1つである、それ自身のデータ
パスのバスを有する。同様に、Aレジスタはアダーに対
する可能な入力の1つを形成するそれ自身のバスを有す
る。この点で、マイクロインストラクションワードに関
するセクション7において明記したように、全ての可能
性のサブセットだけが存在する。
令もしくはサイン拡張ベース指令のいずれかを実行する
ことが可能である。更に、それらのオペレーションが厳
密に平行である場合に限り、それらの両方を単一サイク
ルにおいて実行してもさしつかえない。換言すれば、加
算してサイン拡張、あるいはサイン拡張して加算のシー
ケンスは許されない。レジスタファイルは単一サイクル
において読み取られるか書き込まれるが、その両方はで
きない。
ータレジスタの最も重要性の少ない11ビットがサイン
フィールド及びレベルフィールドにラッチされる。
ーションをプログラムすることができる。この点で、必
要なサイクル数はレジスタファイルロケーションの内容
により決められ、そのアドレスはマイクロインストラク
ションにおいて明記され、反復カウンタが1にまで減少
する間に、同じオペレーションが繰り返し実行される。
この設備は、典型的に、左方向のシフトを行うために使
用され、アダーを用いてAレジスタをそれ自体に加算
し、その結果をAレジスタに戻して記憶する。
ブブロック」これは12ビット幅のアダーであり、その
input2への任意反転と、carry−inビット
の任意セッティングを持つ。出力は12ビットの合計で
あり、carry−outは使用されない。オペレーシ
ョンには7つのモードがある:・ADD:セットのキャ
リーをゼロに加算する:input1 + input
2・ADC:セットのキャリーを1に加算する:inp
ut1 + input2+1・SBC:input2
を反転し、セットのキャリーをゼロに:input1−
input2 − 1・SUB:input2を反転
し、セットのキャリーを1に:input1 − in
put2・TCI:input2<0であれば、SUB
を使用し、そうでなければADDを使用する。これは2
の補数値からマグニチュードバリューを得るために、ゼ
ロに設定されるinput1と共に使用される。
れば、ADCを行い、そうでなければADDを行う。
t1<0であれば、ADCを行い、そうでなければSB
Cを行う。
これは様々なモードでサインがサイズ入力からの入力デ
ータを拡張する12ビットユニットである。サイズは0
〜11までの4ビットバリューである(0は最も重要で
ないビットに関し、11は最も重要なビットに関す
る)。出力は12ビット修正データバリューであり、
「サイン」ビットである。
ze−thビット以上の全てのビットは、size−t
hビットの値を取る。下記のもの全ては変化せずそのま
まである。サインはsize−thビットの値を取る。
例えば: data = 1010 1010 1010 size = 2 output = 0000 0000 0010、 sign=0 SGXMOD=INVERSEでは、size−thビ
ット以上の全てのビットは、size−thビットの逆
数を取る一方、下記のもの全ては変化せずそのままであ
る。サインはsize−thビットの逆数を取る。例え
ば: data = 1010 1010 1010 size = 0 output = 1111 1111 1111、 sign=1SGXMODE=DIFMAGでは、si
ze−thビットがゼロであれば、size−thビッ
ト以下の全てのビットは反転される一方、上記の全ての
ものは変化せずそのままである。size−thビット
が1であれば、全てのビットは変化せずに残る。両方の
場合に、サインはsize−thビットの逆数を取る。
これはAC差バリューのマグニチュードを得るために使
用される。例えば: data = 0000 1010 1010 size = 2output = 0000 101
0 1101、 sign=1 data = 0000 1010 1010 size = 1 output = 0000 1010 1101、 sign=0SGXMODE=DIFCOMPでは、s
ize−thビット以上の(ではあるがsize−th
ビットは含まない)全てのビットはsize−thビッ
トの逆数を取り、一方それ以下の全てのビットは変化せ
ずに残る。サインはsize−thビットの逆数を取
る。これはDC差バリューのために2つの補数値を取る
ために使用される。例えば: data = 1010 1010 1010 size = 0 output = 1111 1111 1110、 sign=1 B.3.5 「コンディションコード」ハフマンブロッ
クが使用するコンディションコードの2つのバイト(1
6ビット)があり、その内特定のビットがALU/レジ
スタファイルによって作られる。これらはサインコンデ
ィションコード、ゼロコンディションコード、拡張コン
ディションコード、及び変化検出ビットである。これら
のコードの最後の2つは、パーザーによって他のものと
同じようには使用されないので、実際にはコンディショ
ンコードではない。
ードはパーザーが更新するように指令を出す時に更新さ
れ、これら各々の指令のために、コンディションコード
有効信号が一度だけ高いパルスで送られる。
されるサイン拡張サイン出力であり、一方、ゼロコンデ
ィションコードはAレジスタへの入力がゼロである場合
に、1に設定される。拡張コンディションコードはOU
TSRCとは無関係にラッチされる入力拡張ビットであ
る。
ョンタイプを評価するために使用され得る:・結果は定
数に等しい − サブトラクトを使用し、ゼロコンディ
ション・結果はレジスタ値に等しい − サブトラクト
を使用し、ゼロコンディション・レジスタは定数に等し
い − サブトラクトを使用し、ゼロコンディション・
レジスタビットセット − サイン拡張を使用し、サイ
ンコンディション・結果ビットセット − サイン拡張
を使用し、サインコンディションサイン拡張及びサイン
コンディションコードの組合せを使用する場合、従来の
論理ANDの場合のように多重ビットを評価するという
より、1つの特定のビットを評価することだけが可能で
あることに注目。
ンディションコードとして同じロジックを使用して作ら
れるが、関連する有効な信号を持ってはいない。マイク
ロインストラクション内のビットは、レジスタファイル
に最近書き込まれたバリューが既に存在しているものと
異なる(2つのクロックサイクルが必要であり、まずR
EG−MODEをREADに設定し、次にREGMOD
EをWRITEに設定することを意味する)場合に、変
化検出ビットを更新すべきであることを指示する。次
に、変更されたバリューが検出された場合、マイクロプ
ロセッサの割り込みが開始される。変化検出ビットは通
常の方法でChangeDetectを起動させること
によりリセットされるが、REGMODEはREADに
設定される。
記参照)ハードワイヤードマクロブロックカウンタ構造
も、次のようなコンディションコードを作り出す:Mb
Start、Pattern Code、Resta
rt及びPic Start。
タファイル用のアドレスマップを下記に示す。それはA
LUデータパス及びUPIの両方に共通である7ビット
アドレススペースを使用する。多くのロケーションはA
LUによってアクセスすることができず、これらは典型
的にハードワイヤードマクロブロック構造の中のカウン
タであり、ALU自体の中のレジスタである。後者のレ
ジスタは専用のアクセスを持っているが、UPI用のア
ドレスマップの一部を形成する。(表において0によっ
てオーバーサイズが表示される)あるマルチバイトのロ
ケーションは、1つのALUアドレスと、多重UPIア
ドレスを持つ。同様に、成分カウント、CC(表ではI
で指示される)によりインデックスされるレジスタグル
ープは、ALUにより1つのロケーションとして処理さ
れる。これは初期設定及びリセッティングのため、また
ブロックレベルのオペレーションのためにマイクロプロ
グラミングを容易にする。
ー)を除き、全てのロケーションはリード/ライトであ
り、全てのカウンタは指令ワード内のビットによってゼ
ロにリセットされる。パターンコードレジスタは右方向
シフトの能力を持ち、その最も重要でないビットがPa
ttern Codeコンディションビットを形成す
る。ハードワイヤードマクロブロック構造の全てのレジ
スタは表中Mで表示され、更にカウンタ(n−ビット)
であるものはCnという注釈が付けられる。
ンサブシステムコーディングスタンダードの他の部分、
2つのr−sizeロケーション、及びハフマンデコー
ダに対するac huffテーブル及びdc huff
テーブルの各々のための1つのロケーション(1ビット
ワード)にハードワイヤードされる内容を持つ。
びUPIの両方でアクセス可能であることを示し、そう
でなければ、それらはUPIアクセスだけを持つ。AL
UによりCCを通して指示されないレジスタグループ
は、指令ワードの中で明記される1つのALUアドレス
を持つことができ、CCはアクセスすべきグループ内の
物理的ロケーションを選択するデータトークンあろう。
ALUアドレスは、従来は最初のアドレスを使用すべき
であったが、グループ内のどのレジスタのものであって
もよい。これは、実際にはどちらのアドレスであっても
充分であるが、ペアのアドレスのうち低い方のアドレス
を使用して、アクセスされるべきマルチバイトのロケー
ションの場合にもあてはまる。ロケーション2E及び2
Fはトップレベルのアドレスマップ(Tで表示される)
において、つまりキーホールレジスタを通してだけでは
なく、アクセス可能であることに注目。これら2つのロ
ケーションもゼロにリセットされる。
良するため、4つの「バンク」に物理的に区画される
が、これは如何なる方法でもアドレシングに影響を及ぼ
さない。主テーブルはMPEG用のアロケーションを示
し、2つの繰り返されるセクションがJPEGとH.2
61用のバリエーションを各々提供する。
発明によれば、ALUマイクロインストラクションワー
ドは多くのフィールドに分けられ、その各々が上記構造
の異なる局面を制御する。指令ワードの中で使用される
全ビット数は36であり、(拡張ビット入力のためには
プラス1)及びフィールドを横切る最小限度のエンコー
ディングが採用され、ハードウェア構成の最大限度の柔
軟性が維持される。指令ワードは下記に詳述するように
区画される。ディフォルトフィールドバリュー、つま
り、ALUもしくはレジスタファイルのステートを変更
しないものがイタリック体で示されている。
「序文」本文書は本発明によるバッファマネージャの
目的、動作及び実装を説明する(bman)。
はDRAMインターフェース用に4つのアドレスを提供
する。これらのアドレスはDRAM内のページアドレス
である。DRAMインターフェースはDRAM内に2つ
のFIFO、コード化データバッファとトークンデータ
バッファを維持する。従って、4つのアドレスのため
に、各バッファのためのリードアドレスとライトアドレ
スがある。
ァマネージャはDRAMインターフェースとマイクロプ
ロセッサに対してのみ接続される。マイクロプロセッサ
はB.4.4において示される「初期設定レジスタ」を
設定するためだけに使用する必要がある。DRAMイン
ターフェースを備えたインターフェースは、各アドレス
のためにREQuest/ACKnowledgeプロ
トコールにより制御される4つの18ビットアドレスで
ある。(バッファマネージャはデータパスの中にはない
ので、バッファマネージャは2線式インターフェースが
欠けている。)更に、バッファマネージャはDRAMイ
ンターフェースクロック発生器をオフにし、DRAMイ
ンターフェーススキャンチェインをオンにする。
用のリードアドレス及びライトアドレスは9個の18ビ
ットレジスタから作られる:−初期設定レジスタ(マイ
クロプロセッサからのRW)・BASECB − コー
ド化データバッファのベースアドレス・LENGTHC
B − (コード化データバッファのページにおける)
最大サイズ・BASETB − トークンデータバッフ
ァのベースアドレスLENGTHTB − トークンデ
ータバッファの(ページにおける)最大サイズ・LIM
IT − DRAMの(ページにおける)サイズダイナ
ミックレジスタ(マイクロプロセッサからのRO)・R
EADCB − BASECBに関するコード化データ
バッファリードポインタ・NUMBERCB− REA
DCBに関するコード化データバッファライトポインタ
・READTB −BASETBに関するトークンデー
タバッファリードポインタ・NUMBERTB − R
EADTBに関するトークンデータバッファライトポイ
ンタアドレスを計算するには:−readaddr=
(BASE+READ)mod LIMITwrite
addr=(((READ+NUMBER)mod L
ENGTH)+BA SE)mod LIMITバッフ
ァがDRAMのまわりを包むことがあるので、mod
LIMITという用語が用いられる。
は、バッファマネージャはスノーパがDRAMインター
フェース接合部を監視するリングの中で接続される3つ
のトップレベルのモジュールで構成される。モジュール
はbmprtize(プライオリティ)、bminst
r(指令)であり、bmrecalc(再計算)はその
オーダーのリングの中に配置され、omsnoop(ス
ノーパ)はアドレス出力の上に配置される。
ACKプロトコール、バッファ用のFULL/EMPT
Yフラグを処理し、各アドレスのステート、つまり、i
sit a valid address?を維持す
る。この情報から、それは(もしある場合)どのアドレ
スを再計算すべきであるかをbminstrに命じる。
更に、それはFULL/EMPTYフラグを示すBUF
CSR(status)マイクロプロセッサレジスタ
を操作し、またマイクロプロセッサライトアクセスをバ
ッファマネージャレジスタに対して制御する、bufa
ccessマイクロプロセッサレジスタを操作する。
tizeによりアドレスを計算するように命じられる
と、6つの指令(2サイクル毎に1つ)を出して、アド
レスを計算するためにbmrecalcを制御する。
strの指令の下、アドレスを再計算する。それは2サ
イクル毎に指令を動かし、初期設定レジスタ及びダイナ
ミックレジスタの全て及び加算、減算及びモジュラスが
できる単純なALUを含む。それはそれが検出するFU
LL/EMPTYステートのSbmprtizeを知ら
せ、それが完了すると、アドレスを計算する。
6.1 「Bmprtize」リセットにおいて、bu
f accessマイクロプロセッサレジスタは1に設
定され、初期設定レジスタの設定を可能にする。buf
accessが1を読み戻している間は、如何なるア
ドレス計算も開始されない。なぜなら、有効な初期設定
レジスタがなければ、それらの計算は無意味だからであ
る。
る(それにゼロを書き込む)と、その目的は全ての4つ
のアドレスを有効にすることであるので、mbprti
zeは(それらを再計算して)全てのアドレスを有効に
するように務める。この段階で、バッファマネージャは
「スターティングアップ」であり(つまり、全てのアド
レスがまだ計算されていない)、こうして如何なるリク
エストも認定されない。全てのアドレスが一度有効にな
ると、スタートアップが終了し、全てのリクエストが認
定される。この時点から、アドレスが無効になる(一度
使用され認識されているので)と、それは再計算される
ことになる。
ではない。なぜなら、バッファマネージャが12サイク
ル毎にアドレスを再計算することができる一方、DRA
Mインターフェースは最高の場合で、各17サイクル毎
にアドレスを使用することができるからである。従っ
て、スタートアップ後、一度に1つのアドレスだけが無
効となる。従って、bmprtizeは現在計算されて
いない無効アドレスを再計算するであろう。
cessが認定される度に再入力されるので、マイクロ
プロセッサアクセス中は如何なるアドレスもDRAMイ
ンターフェースに供給されない。
ュール、BminstrはMOD12サイクルカウンタ
(アドレスを作るためにそれが取るサイクル数)を含
む。偶数サイクルが指令を開始するのに対して、奇数サ
イクルが指令を終了することに注目。それがリードもし
くはライト計算であるか否かと共に、上位3ビットは次
のように、bmrecalcのための指令にデコードさ
れる:リードアドレスのために:
の中に保持される。
イクルカウンタはゼロで空転し、こうしてレジスタのい
ずれにも書き込まない指令を生じさせる。これは如何な
る影響も与えない。
ジュール、Bmrecalcは2クロックサイクル毎に
1つのオペレーションを遂行する。それは偶数カウンタ
サイクル(start alu cyc)上のbmin
str(及びそのバッファとioタイプ)からの指令の
中でラッチし、奇数カウンタサイクル(end alu
cyc)上のオペレーション結果をラッチする。オペ
レーション結果は常に、指令が明記するレジスタに加え
て、Accumレジスタの中に記憶される。更に、en
d alu cyc上で、bmrecalcはたったい
ま計算されたアドレスの使用がバッファをフルにする
か、エンプティにするかに関して、またいつアドレス及
びfull/emptyがうまく計算されるかに関して
bmprtizeに通知する(load addr)。
果のサインビットを使用して計算される。
スではないが、Amod Bが次のように実施され:
(A>B? (A−B):A)しかしながら、これは次
の場合に間違っているだけであり、A>(2B−1)こ
れは決して起こらない。
ュール、BmsnoopはDRAMインターフェースに
供給されるアドレスを監視する4つの18ビットスーパ
ー・スノーパで構成される。スノーパは外部DRAMの
オンチップテストを可能にするため、superでなけ
ればならない(つまり、クロックラニングでアクセスで
きなければならない)。これらのスノーパはREQ/A
CKシステム上で作用しなければならず、従って、装置
上の他のものとは異なる。
対抗するものとして、このインターフェース上で使用さ
れる。なぜなら、情報をセンダーに送り返す(つまり受
取を知らせる)ことが必須であり、アクセプトはそれを
しないからである。従って、これはFIFOポインタを
厳密に監視する。
のマイクロプロセッサのライトアクセスを得るために、
bufaccessに1を書き込むべきであり、buf
accessが1を読み返す時にアクセスが得られ
る。逆に、マイクロプロセッサのライトアクセスを放棄
するために、ゼロをbuf accessに書き込むべ
きである。buf accessがゼロを読み返す時に
アクセスが得られる。buf accessは1にリセ
ットされることに注目。
定レジスタはいつでも読むことができるが、ダイナミッ
クレジスタがマイクロプロセッサを変化させていないこ
とを保証するため、ライトアクセスを得なければならな
い。
ことが意図されている。それらを書き直すことにより、
バッファを間違って操作させることになるかもしれな
い。しかしながら、オン・ザ・フライのバッファの長さ
を増加させ、適時にバッファマネージャに新しい長さを
使用させることが企図されている。初期設定レジスタ内
のバリューが、例えば、バッファがオーバーラップしな
いことを感じられるかどうかを見るために如何なるチェ
ックも今まで行われてはいない。これはユーザーの責任
である。
スタビットも示さない。
ーのDRAMインターフェースの上に置き、Lsimに
おいて、またトップレベルのチップシミュレーションの
一部としてC−コードにおいて実施された。
テストカバリッジはbmsnoop内のスノーパ、ダイ
ナミックレジスタ(B.4.4に示した)を通してであ
り、DRAMインターフェーススキャンチェインの一部
であるスキャンチェインを用いて行われる。セクション
B.5 「逆モデラ」B.5.1「序文」本文書は本発
明による逆モデラ(imodel)及びトークンフォマ
ッティング(hsppk)の目的、動作及び実行につい
て説明する。
型部分であるが、機能的には逆モデラの一部である。従
って、本セクションで論じた方がよい。
は、imodelとhsppkの間にあり、多量のデー
タを全てオフチップDRAMに包含することができる。
このメモリーの効率的な使用を確実にするため、データ
は16ビットフォーマットでなければならない。トーク
ンフォマッティングはハフマンデコーダからのデータを
トークンバッファのためにこのフォーマットに「パッ
ク」する。従って、逆モデラはトークンバッファフォー
マットからデータを「取り出す」(アンパック)。
「ラン/レベル」コードからゼロデータのランに、そし
てレベルに拡張することである。それに加えて、逆モデ
ラはデータトークンが少なくとも64の係数を持ち、ス
タートアップクライテリアを満たしていないストリーム
を停止させるための「ゲート」を提供することを保証す
る。
5.3.1 「Hsppk」本発明では、Hsppkは
入力としてハフマンデコーダを、そして出力としてトー
クンバッファを持つ。両インターフェースは2線式タイ
プのものであり、入力は17ビットのトークンポートで
あり、出力は16ビットの「パックされたデータ」プラ
スFLUSH信号である。それに加えて、Hsppkは
ハフマンクロック発生器からクロックされるので、ハフ
マンスキャンチェインに接続される。B.5.3.2
「Imodel」Imodelは入力としてトークンバ
ッファスタートアップ出力ゲートロジック(bsog
l)を持ち、出力として逆量子化器を持つ。トークンバ
ッファからの入力は16ビットの「パックされたデー
タ」プラスblock end信号であり、bsogl
からの入力は1つのwirestream enabl
eである。出力は11ビットのトークンポートである。
全てのインターフェースは2線式プロトコールにより制
御される。Imodelはそれ自体のクロック発生器と
スキャンチェインを持つ。
けに対するマイクロプロセッサアクセスを持つ。
4.1 「Hsppk」Hsppkはハフマンから17
ビットデータを受け取り、トークンバッファに16ビッ
トデータを出力する。これはまず入力データを12ビッ
トワードに切り捨てるかスプリットし、次にこれらのワ
ードを16ビットのフォーマットにパックすることによ
り達成される。
グ」Hsppkは逆ハフマンから17ビットデータを受
け取る。このデータは以下のフォーマットを使って17
ビットにフォーマットされる。
ト;Rはランビット;Lはレングスビット(サインマグ
ニチュードで示した)あるいはnon−データトークン
ビット;xはdon’t careである。
以下の形態を取る:ExxxxxxLLLLLLLLL
LLしかしながら、データトークンは以下の形態で各ワ
ードの中にラン及びレベルを持つ:ERRRRRRLL
LLLLLLLLLこれは次のフォーマットに分けられ
る: ERRRRRRLLLLLLLLLLL−>F
RRRRRR00000 Format 1、ELLL
LLLLLLLLFormat 0aあるいは、ランが
ゼロフォーマットであれば、0が使用され: E00
0000LLLLLLLLLLL−>FLLLLLLL
LLLL Format 0フォーマット0において、
拡張ビットが失われ、1であると仮定されることが解
る。従って、拡張がゼロである場合、それは使用できな
い。この場合、フォーマット1は無条件に使用できる。
リッティングの後、全てのデータワードは12ビット幅
である。4つの全ての12ビットワードは3つの16ビ
ットワードに「パック」される:
明のDRAMインターフェースはブロック、32の16
ビット「パック済み」ワードを集め、バッファに書き込
む。これは、ブロックが部分的にしか完了していない場
合、データをストリームの終わりでDRAMインターフ
ェースの中に張り付けることができることを意味してい
る。従って、フラッシングメカニズムが必要である。従
って、.Hsppkは現在の部分的完了ブロックを無条
件に書き込むようにDRAMインターフェースに信号を
送る。
ッカー)」Imupは3つの機能を果たす:4)その1
6ビットのフォーマットからのデータを12ビットワー
ドにアンパックする。
を維持する。
込むことにより、DRAMインターフェースがフラッシ
ュする時、役に立たないデータはブロックに残ったまま
である。Imupはブロックの終わりまで、役に立たな
いデータを、つまりフラッシュトークンからの全てのデ
ータを削除しなければならない。
れるまで、データを引き留める。ブロックからのデータ
出力は、「有効な」(stream enable)が
バッファスタートアップから各々の異なるストリームの
ためにアクセプトされるという条件付きである。従っ
て、12ビットデータがhsppkに出力される。B.
5.4.2.2 「Imex (EXpander)」
本発明では、Imexは全てのランレングスコードをゼ
ロのランと、それに続くレベルに拡張する。
Dder)」Impadは全てのデータトークンボディ
が64(もしくはそれ以上)のワードを含むことを確実
にする。それはトークンの最後のワードをゼロでパディ
ングすることにより行われる。データトークンはボディ
において64以上のワードを持つためにチェックされな
い。
5.1 「Hsppk」典型的に、1サイクルにおいて
スプリッティングとパッキングが行われる。
グ」まず、フォーマットが決定される: IF (datatoken) IF (lastformat==1) use format 0a; ELSE IF (run==0) use format 0; ELSE use format 1; そしてフォーマットビットが決定される: format 0 format bit = 0; format 0a format bit = extension bit; format 1 format bit = 1; format 1が使用される場合、コードレベルがま
だ出力されなければならないので、次のサイクルにおい
て新しいデータをアクセプトすべきではない。 B.5.5.1.2 「パッキング」パッキング手順は
4つの有効なデータ入力毎に循環する。16ビットワー
ドの出力は保持されている最後の有効なワードとそれに
続くワードから形成される。これが有効でない場合、出
力も有効ではない。手順は以下の通りである:
有効ではないので出力されない。
によって維持される。それはスプリッタからの有効なデ
ータ及びアクセプトされた出力によって増分される。
d)トークンが受け取られ、トークン自体が出力の準備
が整うと、フラッシュ信号がDRAMインターフェース
に出力され、有効なサイクルをゼロにリセットする。フ
ラッシュトークンがサイクル3以外のものに到達する
と、トークン自体が出力することを保証するため、フラ
ッシュ信号は有効なサイクルを遅らせなければならな
い。
5.5.2.1 「Imup(アンパッカー)」パッカ
ーの場合と同様に、最後の有効な入力が記憶され、次の
入力と組み合わされて、アンパッキングを可能にする。
によって維持される。アンパック済みデータはトークン
のデータ、フラッシュ及びそれからデコードされたピク
チャエンドを含む。それに加えて、フォーマット及び拡
張ビットがアンパック済みデータからデコードされる。
(lastformat==1) 11 databo
dyformat=databody &&(form
atbit && lastformatbit)トー
クンデコーディングのため、またimexに送られるた
めに。
d)トークンがアンパックされ、imexに出力され、
ブロック・エンド信号がDRAMインターフェースから
受け取られるまで、全てのデータが削除される(Val
idは低くされる)。
pander)」本発明によれば、imexはラン/レ
ベルコードを外へ拡大するための、4つのステートマシ
ーンである。ステートマシーンは次の通りである:・ス
テート0:ランカウントをランコードからロードする。
ゼロを出力する。
ル;ディフォルトステート。
Dder)」Impadはimexにより、データトー
クンヘッダに関して知らされる。次に、それがトークン
ボディの中の係数の数をカウントする。64の係数にな
る前に、トークンが終了すると、ゼロ係数がトークン・
エンドで挿入され、それを64係数になるように完了さ
せる。例えば、未拡張データヘッダがそれらの後に挿入
された64のゼロ係数を持っている。64以上の係数を
持つデータトークンはimpadによって影響されな
い。
del及びhsppkはそれらのスノーパを除き、マイ
クロプロセッサレジスタを持たない。
張ビット;D=データビット。
ムはLsimシミュレーションを通して流れる。
odelに対するテストカバリッジはトークンバッファ
出力スノーパを通してであり、出力においては、imo
del自体のスノーパを通してである。ロジックはim
odel自体のスキャンチェインでカバーされる。
を通してアクセスできる。ロジックはハフマンスキャン
チェインを通して見ることができる。セクションB.6
「バッファスタートアップ」B.6.1 「序文」本
セクションは本発明によるバッファスタートアップの方
法及び実行について説明する。
ムを円滑にかつ連続的に表示できることを保証するた
め、デコーディングを開始できる前に、一定量のデータ
を集めなければならない。これをスタートアップ条件と
呼ぶ。コーディングスタンダードはほぼ集められること
が必要なデータ量に翻訳され得るVBVディレイを指定
する。全てのストリームはそのデータがトークンバッフ
ァから進み、デコーディングを可能にする前に、そのス
タートアップ条件を満たすことを確実にすることが、
「バッファスタートアップ」の目的である。それは、ト
ークンバッファの出力(つまり、逆モデラ)において、
概念的なゲート(出力ゲート)によりバッファの中に保
持される。そのスタートアップ条件が一度満たされる
と、このゲートはストリームのために開かれるだけであ
る。
ntbit(バッファスタートアップビットカウンタ)
はデータパスの中にあり、2線式インターフェースによ
り通信し、マイクロプロセッサに接続される。更に、そ
れは2線式インターフェースでbsogl(バッファス
タートアップ出力ゲートロジック)に分岐する。Bso
glは2線式インターフェースを介して、出力ゲートを
実行するimup(逆モデラアンパッカー)を制御す
る。B.6.4 「ブロック構造」Bscntbitは
スタートコード検出器とコード化データバッファとの間
のデータパスにある。この1つのサイクルブロックはブ
ロックを出る有効なデータワードをカウントし、この数
をマイクロプロセッサからロードされるであろうスター
トアップ条件(またはターゲット)と比較する。ターゲ
ットが満たされると、bsoglが伝えられる。データ
はbscntbitによって影響されない。Bsogl
はbscntbitとimup(逆モデラ内)の間にあ
る。事実上、それはストリームがそれらのターゲットを
満たしたことを示すインジケータの列である。列は別の
「インジケータ」がimupにアクセプトされる時に、
バッファを出るストリーム(つまり、imupでデータ
ストリーム内に受け取られるフラッシュトークン)によ
って動かされる。列が空であれば(つまり、そのスター
トアップターゲットを満たしたバッファにストリームが
なければ)、imup内のストリームは立ち往生させら
れる。
これはbsoglの中の列を壊すことによって無限に拡
大でき、マイクロプロセッサがその列を監視できるよう
にする。これらの列のメカニズムは内部列及び外部列と
各々称される。
5.1 「Bsbitcnt(バッファスタートアップ
ビットカウンタ)」Bscntbitはバッファスター
トアップに入力される全ての有効なワードをカウントす
る。カウンタ(bsctr)は16〜24ビット幅のプ
ログラム可能カウンタである。更に、bsctrはそれ
に充分な速度を与えるためにキャリールックアヘッド回
路を具備する。Bsctrの幅はced bs pre
scaleによってプログラムされる。それはビットを
8〜16高くすることにより行われ、それにより常にキ
ャリーが送られるようになる。従って、それらのビット
は効果的に使用されないままである。bsctrの上位
8ビットがターゲット(ced bs target)
との比較のために使用される。
bs target)がbscmpにより行われる。
ダの中にあり、マイクロプロセッサにより計算される時
に、ストリームから引き出される。従って、それはスト
リーム・スタート後に設定されるだけであろう。スター
トアップ前に、targetvalidは低く設定され
る。ced bs targetへの書き込みはtar
get validを高く設定し、bscmpにおける
比較が行われるようにする。比較がced bs co
unt≧ced bs targetであることを示す
と、target validは低く設定される。ター
ゲットは満たされた。
セットされる。それはストリーム・エンドでリセットし
ないことに注意。それに加えて、それがストリーム・エ
ンドの前であれば、カウンティングはターゲットが満た
された後に不能化される。カウントは255で飽和す
る。
ュ)がbsbitcntにおいて検出されると、abs
flush eventが作られる。ターゲットが満
たされる前にストリームが終了すると、追加イベント
(bs flush before target m
et event)が作られる。これらのイベントが発
生すると、ブロックは立ち往生させられる。これによ
り、ユーザーは次のストリームのターゲットサーチをや
り直すことができ、あるいはbsflush befo
re target met eventイベントの場
合、次のいずれかである:1)target metを
強いるであろうゼロのターゲットを書き込むあるいは
2)ターゲットが満たされず、最後のストリームと組み
合わされたこれがターゲットに達するまで、次のストリ
ームを進ませることに注目。この次のストリームのため
のターゲットはそれに応じて調整されるべきである。
スタートアップ出力ゲートロジック)」前述したよう
に、Bsoglはストリームがそのターゲットを満たし
たことを指示するインジケータ列である。列タイプはc
ed bsqueue(内部(0)または外部(1))
によって設定される。これは内部列を選択するためのリ
セットである。列の深さはコード化データバッファ、ハ
フマン及びトークンバッファにおいて存在できる満たさ
れたストリームの最大数を決定する。この数に達すると
(つまり、列が一杯になると)、bsoglはデータパ
スをbsbitcntで立ち往生させる。
如何なる動作も必要としない。しかしながら、列の深さ
を増加させる必要があれば、(設定されるべきced
bsqueueへのアクセスを得るためにced bs
accessを設定し、target met ev
ent及びstream endeventが可能化さ
れ、アクセスが放棄されることにより)外部列を設定で
きる。
れるカウント)は内部列に挿入される。外部列は2つの
イベント:target met event及びst
ream end eventにより維持される。これ
らは単に各々servicequeue input、
service queue output、及びレジ
スタced bs enable nxt strea
mと称される。事実上、target met eve
ntは列を供給する内部列のアップストリーム・エンド
である。同様に、ced bs enable nxt
streamは列を消費する内部列のダウンストリー
ム・エンドである。同様に、stream end e
ventはダウンストリーム列を供給するためのリクエ
ストであり;stream end eventはce
d bs enable nxt streamをリセ
ットする。2つのイベントは次のようにサービスされる
べきである: /*TARGET MET EVENT*/ j= micro read(CED BS ENABLE NXT STM ): if(j==0)/*Is next stream enabled?*/ (/*no, enable it*/ micro write (CED BS ENABLE NXT STM,1); printf(”enable next stream (queue =0x%x)\n”,(context−>queue)) ; } else /*yes, increment the queue of ”target met” streams*/ { queue++; printf(”stream already enabled (queue=0x%x)\n”,(context−>queue)); } /*STREAM EVENT*/ if(queue>0) /*are there any ”target mets” left?*/ (/*yes, decrement the queue and enable another stream*/queue−−; micro write (CED BS ENABLE NXT STM,1); printf(”enable next stream (queue =0x%x)\n”,(context−>queue)); } else printf(”queue empty cannot enable next stream (queue=0x%x)\ n”,queue); micro write (CED EVENT 1,1 << BS STREAM END EVENT); /*clear event*/ 列タイプは随時(上述の手段により)内部から外部へと
変更することができるが、外部列が(上記”queue
==0から)空である時は、リセットされるべきced
bs queueへのアクセスを得るため、ced
bs accessを設定し、target met
event及びstream endeventをマス
クし、アクセスを放棄することにより、外部から内部へ
と変更することだけができる。
ェックを不能にし、ced bsqueue(外部)を
設定し、target met event及びstr
eam end eventをマスクし、ced bs
enable nxtstreamを設定する。この
方法で、全てのストリームが常に可能化される。B.
6.6 「マイクロプロセッサレジスタ」
レジスタビットであり、・rは予約済みレジスタビット
であり、・これらのレジスタへのアクセスを得るため、
割り込みサービスルーチンの場合でなければ、ced
bs accessは1に設定され、それが1を読み戻
すまで登録されなければならない。cedbs acc
essをゼロに設定することによりアクセスが放棄され
る。
ェース」B.7.1 「展望」本発明において、空間デ
コーダ、時間デコーダ及びビデオフォーマッティング部
は各々その特別なチップのためにDRAMインターフェ
ースブロックを含む。3つの装置全てにおいて、DRA
Mインターフェースの機能は、チップから外部DRAM
へのデータ伝送、及びアドレス発生器により供給される
ブロックアドレスを介して外部DRAMからチップへの
データ伝送である。
ドレス発生器に対して、またそれを通してデータが送ら
れる様々なブロックのクロックに対して非同期であるク
ロックから操作する。しかしながら、クロックはほぼ同
じ周期で操作するので、この非同期性は容易に処理でき
る。
64バイトのブロック内の残りのチップとの間に伝送さ
れる(唯一の例外は時間デコーダにおける予測データで
ある)。伝送は「スイングバッファ」として知られる装
置によって発生する。これは本質的にダブルバッファー
ド構成において操作される一対のDRAMであり、DR
AMインターフェースが1つのRAMを満たしたり、あ
るいは空にする一方、チップの別の部分が他のRAMを
空にしたり、満たしたりする。アドレス発生器からアド
レスを運ぶ別のバスが各スイングバッファと連合する。
が、これらのスイングバッファの機能は各々の場合によ
り異なる。空間デコーダの場合、1つのスイングバッフ
ァがコード化データをDRAMに伝送するために使用さ
れ、別のスイングバッファがDRAMからコード化デー
タを読むために使用され、三番目のスイングバッファが
トークン化されたデータをDRAMに伝送するために使
用され、四番目のスイングバッファがDRAMからトー
クン化されたデータを読むために使用される。時間デコ
ーダにおいては、1つのスイングバッファがイントラも
しくは予測されたピクチャデータをDRAMに書き込む
ために使用され、二番目のバッファがDRAMからイン
トラもしくは予測されたピクチャデータを読むために使
用され、他の2つのバッファが予測データを前方及び後
方に読むために使用される。ビデオフォーマッティング
部においては、1つのスイングバッファがデータをDR
AMに伝送するために使用され、他の3つのスイングバ
ッファがDRAMからデータを読むために使用され、各
々がルミナンス(Y)、赤及び青の色差データ(各々C
r及びCb)のためである。
インターフェースのオペレーションを説明し、それは空
間デコーダDRAMインターフェースのオペレーション
と本質的に同じである、1つのライトスイングバッファ
と1つのリードスイングバッファを持っている。これは
図140の「DRAMインターフェース」に図示してい
る。
フェース」図140において、アドレス発生器に対する
インターフェース、及びデータを供給し、データを取る
ブロックに対するインターフェースは全て2線式インタ
ーフェースである。アドレス発生器は制御トークンの受
取の結果としてアドレスを発生させるか、あるいは単に
アドレスの固定シーケンスを発生させることができる。
DRAMインターフェースは特別の方法で、アドレス発
生器と連合する2線式インターフェースを処理する。ア
ドレスを受け取る準備ができた時にアクセプトラインを
高く保持する代わりに、DRAMインターフェースはア
ドレス発生器が有効なアドレスを供給し、そのアドレス
を処理し、1つのクロック周期の間アクセプトラインを
高く設定する。こうして、リクエスト/アクノレッジ
(REQ/ACK)プロトコールを実行する。
は、アドレス発生器及び他のブロックとは完全に別個に
データを提供/アクセプトするブロックと連絡する能力
である。例えば、アドレス発生器はライトスイングバッ
ファにおいてデータと関連するアドレスを発生させるこ
とができるが、ライトスイングバッファが外部DRAM
に書き込まれる用意が整ったデータブロックがあること
を合図しないとどのような行動も取らないであろう。し
かしながら、アドレス発生器からの適当なバスにアドレ
スが供給されない限り、どのような行動も取られない。
更に、ライトスイングバッファ内のRAMの1つが一度
データで満たされると、他のRAMもデータ入力が立ち
往生させられる(2線式インターフェースアクセプト信
号が低く設定される)前に、完全に満たされ、DRAM
インターフェースに「スイング」される。
レーションを理解する際に注目すべき重要なことは、適
切に構成されたシステムにおいて、少なくともスイング
バッファと残りのチップ間の全ての平均データ速度の合
計と同程度に速く、DRAMインターフェースがスイン
グバッファと外部DRAMの間にデータを伝送すること
ができることである。
スするのはどのスイングバッファかを決定する方法を含
む。一般に、これは「ラウンドロビン」であるか、もし
くはプライオリティエンコーダのいずれかであり、ラウ
ンドロビンの場合、サービスされるスイングバッファが
最近めったに順番が回ってこなかった次に利用できるス
イングバッファであり、プライオリティエンコーダの場
合、いくつかのスイングバッファが他のバッファより高
い優先順位を持つ。両方の場合において、他の全てのリ
クエストより高い優先順位を持つリフレッシュリクエス
ト発生器から追加リクエストが来るであろう。リフレッ
シュリクエストはマイクロプロセッサインターフェース
を介してプログラム可能なリフレッシュカウンタから発
生される。
141はライトスイングバッファを示す。オペレーショ
ンは次の通りである:1)有効なデータは入力(dat
a in)において表示される。各データ片がアクセプ
トされるにつれて、それはRAM1に書き込まれ、アド
レスが増分される。
は制御をあきらめ、RAM1が読み出される準備ができ
たことを指示するためリードサイドに信号を送る。この
信号は2つの非同期クロックレジームの間を通り、従っ
て3つの同期フリップフロップを通過する。
イテムは、まだ空であるRAM2に書き込まれる。
ィエンコーダが、このスイングバッファを読む番である
ことを指示すると、DRAMインターフェースはRAM
1の内容を読み、それらを外部DRAMに書き込む。そ
うすれば、(2)と同様に、信号が非同期インターフェ
ースを横切って送り返され、RAM1にもう一度書き込
む準備ができたことを指示する。
を空にし、入力サイドがRAM2を満たす前にそれを
「スイング」すれば、データは連続的にスイングバッフ
ァによりアクセプトされることができ、そうでなけれ
ば、RAM2が満たされた時、RAM1が入力サイドに
より使用されるために「スイングバック」されるまで、
スイングバッファはそのアクセプト信号を低く設定する
であろう。
も同様であるが、入力と出力のデータバスが逆である。
ングバッファのアドレシング」DRAMインターフェー
スは利用可能なメモリー帯域幅を最大にするように設計
される。従って、各8×8データブロックが同じDRA
Mページに記憶されるように配置される。この方法で、
DRAM高速ページアクセスモードを完全に使用でき、
その場合1つのローアドレスが供給され、続いて多くの
カラムアドレスが供給される。それに加えて、外部DR
AMに対するデータバスが8、16、または32ビット
幅にでき、使用されるDRAM量が特別なアプリケーシ
ョンのサイズ及び帯域幅の要件に適合できるようにする
ための便宜が提供される。
ースがどのように作用するかを示す)この例では、アド
レス発生器は、リードスイングバッファとライトスイン
グバッファの各々のために、DRAMインターフェース
にブロックアドレスを提供する。このアドレスはDRA
M用のローアドレスとして使用される。カラムアドレス
の6ビットはDRAMインターフェース自体により供給
され、これらのビットは更にスイングバッファRAM用
のアドレスとしても使用される。スイングバッファに対
するデータバスは32ビット幅であり、従って、外部D
RAMに対するバス幅が32ビットより狭い場合、次の
ワードがライトスイングバッファから読まれる前に、あ
るいは次のワードがリードスイングバッファに書き込ま
れる前に(リード及びライトは外部DRAMに対する伝
送方向に関係する)、2つから4つの外部DRAMアク
セスが行われなければならない。
グ部の場合は、状況はもっと複雑である。これらについ
ては下記において別に説明する。
タイミング」本発明において、DRAMインターフェー
スタイミングブロックは、DRAM信号のエッジをシス
テムクロック周期の正確に1/4に置くためにタイミン
グチェインを使用する。フェイズロックループからの2
つの直角クロックが使用される。これらは概念的な2x
クロックを形成するために組み合わされる。いずれか1
つのチェインが、2xクロックの反対のフェイズ上で並
列する2つのシフトレジスタから作られる。
めに1つのフェイズがあり、リード/ライト/リフレッ
シュサイクルのために別のフェイズがある。各サイクル
の長さはマイクロプロセッサインターフェースを介して
プログラム可能であり、その後ページスタートチェイン
が固定長を持ち、サイクルチェインの長さはページスタ
ート中に適当に変化する。
れ、パルスが作られる。このパルスはチェインに沿って
移動し、DRAMインターフェースからのステート情報
により方向付けられる。DRAMインターフェースクロ
ックはこのパルスにより発生される。各DRAMインタ
ーフェースクロック周期はDRAMの1サイクルに対応
する。このように、DRAMサイクルが異なる長さを持
つので、DRAMインターフェースクロックは一定速度
ではない。
からのパルスをDRAMインターフェースからの情報と
組合せ、出力ストローブ及びイネーブル(notca
s、notras、notwe、notoe)を発生さ
せる。
8.1 「序文」本文書は本発明による逆量子化器(i
q)の目的、動作及び実行について説明する。
された係数からの係数、量子化重量、及びステップサイ
ズを再構築し、その全てがデータストリーム内で送信さ
れる。
データパスにおいて逆モデラと逆DCTの間にあり、マ
イクロプロセッサに接続される。データパス接続は2線
式インターフェースを介して行われる。入力データは1
0ビット幅であり、出力データは11ビット幅である。
8.4.1 「H261式」
ン以外の全てのトークンは量子化されないiqを通過し
なければならない。そこで: Floor(a)は整数を次のように戻す:(a−1)
<floor(a)≦aa≧0, a≦floor
(a)<(a+i) a≦0Qiは量子化係数であ
る。
ける値である。
ある。
(0≦j≦3)である。
スタンダード」上記スタンダード及びそれらのバリエー
ションの全て(更にiqによって変更されてはならない
制御データ)は1つの式にマップできる:OUTPUT
=(2INPUT+k)(xy)/16以下の追加ポ
スト逆量子化機能がある:・1024を加算する・サイ
ンマグニチュードから2の補数表示への変換・全ての偶
数をゼロに向かって最も近い奇数にラウンドする・結果
を+2047または−2048に飽和させる。
変数k、x及びy、及びそれらが使用するその関数は表
219、表220に示す。
スタンダード」
表219、表220から、マルチスタンダード逆量子化
器用に1つの構造を使用できることが解る。その算術的
ブロック線図を図142「算術的ブロック」に示す:算
術的ブロック用の制御は2つのセクションに機能的に分
割することができる:・ステータスレジスタまたは量子
化テーブルにロードするためのトークンのデコーディン
グ、・ステータスレジスタの制御信号へのデコーディン
グ。
のiqcbのバンクを制御するiqcaにおいてデコー
ドされる。それは更にiqram内の4つの量子化テー
ブルへのアクセスを制御する。算術、つまり、2つの乗
算器とポスト関数はiqarithにある。iq用の完
全なブロック線図を図143に示す。
6.1 「Iqca」発明において、iqcaはトーク
ンをigram及びiqcb内のレジスタ用制御信号に
デコードするために使用されるステートマシーンであ
る。ステートマシーンは各々の新しいトークンによって
リセットされるので、各トークン用のステートマシーン
として説明した方がよい。例えば: QUANT SCALE(B.8.7.4、QUANT
SCALEを参照)及びQUANT TABLE
(B.8.7.6 QUANT TABLEを参照)用
のコードは以下の通りである: if (tokenheader==QUANT SCALE) { sprintf(preport, "QUANT SCALE"); reg addr=ADDR IQ QUANT SCALE; rnotw=WRITE; enable=1; } if(tokenheader==QUANT TABLE) /*QUANT TABLE token*/ switch(substate) { case 0: /*quantisation table header*/ sprintf(preport, "QUANT TABLE %s s0", (headerextn ? "(full)" : "(empty)")); nextsubstate=1; insertnext=(headerextn ? 0:1); reg addr=ADDR IQ COMPONENT; rnotw=WRITE; enable=1; break; case 1: /*quantisation table body*/ sprintf(preport, "QUANT TABLE %s s1", (headerextn ? "(full)" : "(empty)")); nextsubstate=1; insertnext=(headerextn ? 0 : (qtm addr 63==0)); reg addr=USE QTM; rnotw=(headerextn ? WRITE : READ); enable=1; break; default: sprintf(preport, ERROR in iq quantisation table tokendecoder (substate %x)\n, substate); break; } } サブステートがトークン内のステートである場合、QU
ANT SCALEは、例えば1つのサブステートだけ
を持つ。しかしながら、QUANT TABLEは2つ
のサブステートを持ち、1つはヘッダであり、他の1つ
はトークンボディである。
る。未認識トークンは如何なるワードラインも発生させ
ないし、PLAにもディフォルト(無害な)制御を出力
させない。
ンタからアドレスをiqramに供給し、例えば未拡張
QUANT TABLE(B.8.7.4を参照)にお
いて、ワードをストリームに挿入する。これは出力を有
効に保つ一方で、入力を止めることによって達成され
る。続くブロック(iqcbまたはiqarith)に
おいて正しいデータでワードを満たすことができる。
て制御されるデータパス内の1サイクルである。
て、iqcbはiqステータスレジスタを保持する。i
qcaの制御下、iqcbはこれらをデータパスから/
へとロードもしくはアンロードする。
及びポスト量子化機能を制御するため、iqarith
のために制御ワイヤにデコードされる(表219、表2
20を参照)。
れ、ポスト量子化機能に送られる。更に、データパス上
のゼロバリューワードがここで検出される。その後算術
は無視され、ゼロがデータパスにマックスされる。これ
はiqの「ゼロイン;ゼロアウト」スペックに従う最も
簡単な方法である。
ccessが1に設定され、1を読み戻す時にのみ、マ
イクロプロセッサからアクセス可能である。この状況で
は、iqcbはデータパスを停止させ、こうしてレジス
タが安定したバリューを持ち、如何なるデータもデータ
パスにおいて転換されない。
て制御されるデータパス内の1サイクルである。
mは各々が648ビットである4つの量子化テーブルマ
トリックス(QTM)に対して支持しなければならな
い。従って、それはサイクル毎に1リードまたは1ライ
トが可能な、2568ビットの6トランジスターRAM
である。RAMはその制御を受け取る2線式インターフ
ェースロジックにより囲まれ、iqcaからデータを書
き込む。それはiqarithにデータを読み出す。同
様に、iqramはiqcbと同じデータパス内のサイ
クルを占める。
す時、マイクロプロセッサから読み出され、書き込まれ
る。RAMはキーホールレジスタ、iqqtmkeyh
oleの背後に置かれ、iq qtm keyhole
addrによってアドレスされる。iq qtm k
eyholeへのアクセスはiq qtm keyho
le addr内に保持される、それが指すアドレスを
増分させるであろう。同様に、iq qtm keyh
ole addrは直接書き込むことができる。
arithは3つのサイクルに亙ってパイプラインでつ
ながれ、スプリットされる3つの機能があることに注
意。機能については下記において論じる(図140を参
照)。
はデータパス乗算器に供給される5(X)x8(Y)ビ
ットのキャリセーブ未サイン乗算器である。乗数及び被
乗数はiqcbからの制御ワイヤで選択される。乗法は
第1サイクルにあり、分解アダーは第2サイクルにあ
る。
のデータはQUANT TABLEをデータパスに読み
出すために、データパスにマックスされ得る。
パス乗算器」この13(XY)×12(データパス)ビ
ットのキャリセーブ未サイン乗算器はブロックの3サイ
クルに亙ってスプリットされる。第1サイクルに3つの
部分積、第2サイクルに7つ、第3サイクルに残りの2
つである。
(non coefficient)であるか、あるい
は+2047/−2048に飽和されるので、上位12
ビットは分解される必要がない。従って、分解アダーは
たった2ビット幅である。高いオーダーのビットの残り
に関して、ゼロ検出がサチュレーション信号として充分
である。
能」ポスト量子化機能は、・1024を加算する・サイ
ンマグニチュードから2の補数表示に変換する・全ての
偶数をゼロに向かって最も近い奇数にラウンドする・結
果を+2047または−2048に飽和させる・出力を
ゼロに設定する(B.8.6.2を参照)。
行される(第2と第3のサイクルにパイプラインでつな
がれる)。このことから、各機能が必要とするものが何
であるかが解り、これらは1つのアダーの上に結合され
る。
れた時に互いに依存し合うので、これらを再プログラミ
ングする際に注意しなければならない。
+1024は第3のサイクルの終わりでデータパスにマ
ックスされる。
の説明は逆量子化器が応答する各トークンtpのため
の、逆量子化器の行為を定義する。全ての場合に、トー
クンは逆量子化器の出力に送られる。ほとんどの場合、
トークンは下記に記す例外を除き、逆量子化器によって
修正されない。全ての未認識トークンは逆量子化器の出
力に未修正のまま送られる。
このトークンはレジスタiq prediction
mode[1:0]及びiq mpegindirec
tion[1:0]がゼロに設定されるようにする。
ード」このトークンはデコードされる現在のスタンダー
ド(MPEG、JPEGまたはH.261)に基づい
て、iq standard[1:0]に適切なバリュ
ーがロードされるようにする。
クンはiq prediction mode[1:
0]をロードする。予測モードトークンは2つ以上のビ
ットを所有するが、逆量子化器は2つの最低オーダーの
ビットへのアクセスを必要とするだけである。これらは
ブロックがイントラコード化されているか否かを判断す
る。
トークンはiqquant scale[4:0]をロ
ードする。
る。トークンヘッドは色成分を識別する2つのビットを
含み、これらはiq component[1:0]に
ロードされる。次の64のトークンワードは量子化係数
を含む。これらは逆量子化プロセスの結果として修正さ
れ、再構築された係数と置き換えられる。
在しない場合、逆量子化器の行為は限定されない。
は量子化係数を所有する。これらはサイン・マグニチュ
ードフォーマットにおいて11ビット(10ビット+サ
インビット)で表示される。バリュー「マイナスゼロ」
は使用されるべきではないが、正確にゼロと解釈され
る。
は再構築された係数を所有する。これらは2の補数フォ
ーマットにおいて12ビット(11ビット+サインビッ
ト)で表示される。入力におけるデータトークンは、逆
量子化器の入力において持ったのと同じ数のトークン拡
張ワードを持つであろう。
ANT TABLE)」このトークンは新しい量子化テ
ーブルをロードするため、あるいは現在のテーブルを読
み出すために使用できる。逆量子化器においては、典型
的に、トークンはビットストリームからデコードされた
新しいテーブルをロードするために使用されるであろ
う。現在のテーブルを読み出す動作は、そのテーブルが
ビットストリームにおいてエンコードされることになる
場合、エンコーダの前方の量子化器において有用であ
る。
ーブルナンバーを特定する2つのビットを含む。これら
はiq component[1:0]の中に置かれ
る。このレジスタは今では色成分ではなく、「テーブル
ナンバー」を含んでいることに注意。
合、逆量子化器はそこに正確に64の拡張トークンワー
ドがあることを期待する。各々が量子化テーブルバリュ
ーとして解釈され、ロケーションゼロで始まる適切なテ
ーブルの連続するロケーションの中に置かれる。各拡張
トークンワードの9番目のビットが無視される。トーク
ンは更に通常の方法で、未修正のまま、逆量子化器の出
力にも送られる。
場合、逆量子化器はロケーションゼロで始まる適切なテ
ーブルの連続するロケーションを読み出すであろう。各
ロケーションは拡張トークンワードになる(9番目のビ
ットはゼロになる)。このオペレーションの終わりで、
トークンは正確に64の拡張トークンワードを含むであ
ろう。
ーションは、ゼロと64を除く全ての拡張ワードナンバ
ーのために限定されない。
クト」このトークンはiq jpeg indirec
tionへの/からのテーブルナンバーに対して、色成
分の翻訳をロードする/アンロードするために使用され
る。これらの翻訳はJPEG及び他のスタンダードにお
いて使用される。
特定する2つのビットを含む。これらはiq comp
onent[1:0]に置かれる。
合、トークンは1つの拡張ワード、iq jpeg i
ndirection[2iq component
[1:0]+1:2iq component[1:
0]]ロケーションに書き込まれる最も低い2ビットを
含む。たった今読み出されたばかりのバリューがトーク
ン拡張ワードになる(上位7ビットがゼロになる)。こ
のオペレーションの終了時に、トークンは正確に1つの
トークン拡張ワードを含むであろう。
ークンはMPEGスタンダードを介してのプロセシング
の間に、ディフォルトもしくはユーザーが限定する量子
化テーブルを使用するか否かを定義するために使用され
る。トークンヘッドは2ビットを含む。ヘッダーのビッ
ト0はiq mpeg indirectionが書き
込まれる場合どちらのビットに書き込まれるかを決定す
る。ビット1はそのロケーションに書き込まれる。
[1:0]レジスタはシーケンススタートトークンによ
ってクリアされるので、ユーザー限定量子化テーブルが
ビットストリーム内に送られた場合、このトークンを使
用することだけが必要であろう。
タ」B.8.8.1 「iq access」いずれか
のiqレジスタへのマイクロプロセッサアクセスを得る
ために、iqaccessは1に設定されなければなら
ず、それが1を読み返すまで登録されなければならない
(B.8.6.2を参照)。これをすることを怠ると、
読まれているレジスタがデータパスによってまだ制御さ
れている状態になり、安定しない。igramの場合、
アクセスはロックアウトされ、ゼロを読み戻す。
御をデータパスに手放すことになる。
standard[1:0]」このレジスタは逆量子化
器によって実行されるコーディングスタンダードを保持
する。
ってロードされる。
メモリーマップに8ビットが割り当てられており、将来
の実装では上記スタンダード以上のものを処理すること
ができるようになろう。
direction[1:0]」この2ビットレジスタ
はMPEGデコーディングオペレーションの間に、どの
量子化テーブルが使用される予定であるかを記録するた
めに使用される。
[0]はイントラコード化ブロックのために使用される
テーブルを制御する。それが0であれば、量子化テーブ
ル0が使用され、ディフォルト量子化テーブルを含むこ
とが期待される。それが1であれば、量子化テーブル2
が使用され、ユーザー限定量子化テーブルを含むことが
期待される。
ELECTトークンによってロードされ、シーケンスス
タートトークンによって0に設定される。
direction[7:0]」この8ビットレジスタ
はJPEGスキャンにおいて発生する4つの可能な色成
分の各々のために、どの4つの量子化テーブルを使用す
るかを決定する。
されるテーブルナンバーを保持する。
されるテーブルナンバーを保持する。
されるテーブルナンバーを保持する。
されるテーブルナンバーを保持する。
ELECTトークンによって影響される。
cale[4:0]」このレジスタは量子化スケール関
数の現在のバリューを保持する。このレジスタはQUA
NT SCALEトークンによってロードされる。
nt[1:0]」このレジスタは量子化テーブルマトリ
ックス(QTM)ナンバーに翻訳されるバリューを保持
する。それはトークンナンバーによってロードされる。
理されようとしているブロックの色成分がロードされる
ようにする。この情報はQTMナンバーを決定するた
め、JPEG及びJPEGバリエーションにおいてのみ
使用され、それはreference to iq j
peg indirection[7:0]で処理す
る。他のスタンダードでは、iq component
[1:0]が無視される。JPEGテーブルセレクトト
ークンはこのレジスタに色成分をロードさせる。その
後、それはトークンボディによってアクセスされるiq
jpeg indirection[7:0]へのインデックスと
して使用される。
QTMナンバーをロードさせる。このテーブルはその後
(トークンの拡張フォームが使用される場合)、トーク
ンからロードされるか、または適当に拡張されたトーク
ンを形成するためにテーブルから読み出される。
ion mode[1:0]」この2ビットレジスタは
それに続くブロックのために使用される予測モードを保
持する。逆量子化器がこの情報を利用する唯一の利用法
は、イントラコーディングが使用されるか否かを決定す
ることである。レジスタの両ビット共0であれば、次の
ブロックはイントラコード化されている。
てロードされる。このレジスタはシーケンススタートト
ークンによって0に設定される。
[1:0]はJPEG及びJPEGバリエーションモー
ドにおけるオペレーションに何の影響も与えない。
direction[7:0]」Iq jpeg i
ndirectionはQTMナンバーに色成分を翻訳
するためのルックアップ表として使用される。従って、
iq componentは、表222に示すように、
iq jpeg indirectionに対するイン
デックスとして使用される。
拡張フォームが使用される場合、JPEGテーブルセレ
クトトークンによって直接書き込まれる。
非拡張フォームが使用される場合、JPEGテーブルセ
レクトトークンによって直接読み出される。
able[3:0][63:0][7:0]」4つの量
子化テーブルがあり、各々が64のロケーションを持
つ。各ロケーションは8ビットバリューである。バリュ
ー0は如何なるロケーションにおいても使用されるべき
ではない。
ramにおいて説明したRAMとして実装される。
ンを用いてロードできる。
キャンオーダーで記憶されることに注意。多くの文書は
方形の8×8のナンバーアレイとして量子化テーブルバ
リューを表示している。通常、DCタームは左上位にあ
り、水平の周波数が左から右へと増加し、垂直の周波数
が上から下へと増加する。該かるテーブルは、ナンバー
が連続するiを持つ量子化テーブルの中に置かれるにつ
れて、ジグザグスキャンパスに沿って読まれなければな
らない。
タマップ」
るテストカバリッジは逆量子化器の出力スノーパを通し
てであり、出力においては逆量子化器自体のスノーパを
通してである。ロジックは逆量子化器自体のスキャンチ
ェインによってカバーされる。
accessに関係なくigramに対するアクセス
が得られる。セクションB.9 「IDCT」B.9.
1 「序文」逆離散コサイン変換(IDCT)ブロック
をここで説明する目的は、IDCT用のエンジニアリン
グ情報源を提供することである。それは以下の情報を含
む。・IDCTの目的及び主な特徴・それがどのように
設計され、実証されたか・構造 更に、その目的はそうした説明が以下の作業を容易にす
る、あるいは助けるために当業者に充分な情報を提供す
ることである。
Tの認識・別の装置へのIDCTの統合・IDCTシリ
コン用のテストプログラムの開発・IDCTの修正、再
設計もしくは維持・順方向DCTブロックの開発B.
9.2 「展望」離散コサイン変換/ジグザグ(DCT
/ZZ)はピクセルのブロック上で変換を行い、各ブロ
ックは高さ8ピクセル×幅8ピクセルのスクリーンエリ
アを表示する。変換の目的は、周波数によって分類され
る周波数領域においてピクセルブロックを表示すること
である。目はピクチャ内のDC成分に敏感であるが、高
周波成分に対してはあまり敏感ではないので、周波数デ
ータは目の感度に従って、各成分が別個にマグニチュー
ドを減少させるようにする。マグニチュード減少プロセ
スは量子化として知られている。量子化プロセスはピク
チャに含まれる情報を減少させる、つまり、量子化プロ
セスは損失性である。損失性プロセスはある種の情報を
削除することにより全体的なデータ圧縮を行う。周波数
データは高周波が0に量子化されやすくするように分類
され、全てが連続して現れる。連続する0は、ランレン
グスコーディングは一般的に損失性のプロセスではない
が、ランレングスコーディング計画を使用することによ
り量子化されるデータをコーディングすることが、更な
るデータ圧縮を生じさせることを意味する。
グRAMまたはIZZ、及びIDCTを含む)が分類さ
れる周波数データを取り、それを空間的データに変換す
る。この逆分類プロセスはIZZの機能である。
クチャ減圧システムは、ピクセルを整数として指定す
る。これはIDCTブロックが整数値を取り、また整数
値を生じなければならないことを意味する。しかしなが
ら、IDCTの関数は整数に基づいていないので、内部
のナンバー表示は内部精度を維持するため分数部分を使
用する。完全な浮動小数点計算が好ましいが、ここに記
載する実装では固定小数点計算を使用する。固定小数点
計算を使用すると少しばかり精度の損失があるが、この
実装に関する精度はH.261及びIEEEによって指
定される精度を越えている。
れば、主なデザイン目標は最小のシリコンエリアを使用
する機能的に正確なIDCTブロックを設計することで
あった。更に、デザインは指定された操作条件の下で3
0MHzのクロック速度でランすることが求められてい
たが、更に将来に対する適用性も持つべきであると考え
られた。より高いクロック率が将来必要となるであろう
し、デザインの構造は可能な所ではこれを可能にするも
のである。
の説明」IDCTブロックは以下のインターフェースを
持っている。
ト・ビット幅のトークンデータ出力ポート・マイクロプ
ロセッサインターフェースポート・システムサービス入
力ポート・テストインターフェース・再同期信号 両トークンデータポートは前述した標準の2線式インタ
ーフェース型である。図示した幅はポートの全ワイヤ数
ではなく、データ表示におけるビット数を指している。
それに加えて、入力トークンデータポートに連合するの
は、前のブロックの出力に対する再同期のために使用さ
れるクロック信号及びリセット信号である。更に、出力
トークンデータポートに連合し、次に続くブロックによ
って使用される2つの再同期クロックがある。
準であり、4ビットのアドレスを使用する。更に、3つ
の外部的にデコードされるセレクト入力があり、それら
はイベント、内部レジスタ、及びテストレジスタ用のア
ドレススペースを選択するために使用される。このメカ
ニズムはIDCTアドレススペースを異なるチップ内の
異なる位置にマップするためのフレキシビリティを提供
する。更に、1つのイベント出力、idctevent
と、2つのi/o信号、nderrdとnserrdが
あり、それらはIDCT及びマイクロプロセッサの非デ
ータバスの適当なビットに外部的に接続されるイベント
トライステートデータワイヤである。
ク信号とリセット入力信号、及び2フェイズオーバーラ
イドクロック及び関連するクロックオーバーライドモー
ドセレクト入力で構成される。
ク信号及びリセット信号、スキャンパスデータ、制御信
号及びramtestとchiptest入力で構成さ
れる。
の指定された機能を果たすためにマイクロプロセッサの
アクセスを必要としないので、マイクロプロセッサポー
トは不活性である。同様に、テストインターフェースは
テストもしくは確認が必要な場合にのみ活性である。
的基盤」ビデオ帯域幅圧縮において、入力データはピク
チャの方形部分を表示する。従って、適用される変換は
二次元でなければならない。二次元変換は効果的に計算
するのは困難であるが、二次元DCTは分離できるプロ
パティを持っている。分離可能な変換は他の次元とは別
に各次元に沿って計算され得る。これを実行するには、
ハードウェアにマッピングするために特に設計される一
次元のIDCTアルゴリズムを使用し;そのアルゴリズ
ムはソフトウェアモデルには適切ではない。一次元アル
ゴリズムは二次元の結果を得るために連続的に適用され
る。
Tの演算的定義は以下の通りである:
行い、2つのN×Nマトリックスを連続して二度掛ける
のに等しい。一次元DCTは演算的に2つのNNマトリ
ックスを掛けるのに等しい。演算的に、二次元の場合
は:Y=[XC]TC式中、Cはコサインの項のマトリ
ックスである。
操作の項で説明されることがある。マトリックスの説明
は変換の演算的約分のために便利であるが、これは記法
を簡単にするだけであることを強調しておかなければな
らない。2/Nの項がDCレベルを支配することに注
意。定数c(j)及びc(k)は正規化関数として知ら
れている。
ム」下記に続けて詳細に説明するように、実際のIDC
T変換を計算するために使用されるアルゴリズムは「高
速」アルゴリズムであるべきである。使用されるアルゴ
リズムは効率的なハードウェア構造及び実装のために最
適化される。アルゴリズムの主な特徴は、1つの乗法を
取り除くための=2スケーリングの使用、及び上位及び
下位セクションの間により大きな対称を生じさせるため
に設計されるアルゴリズムの変換である。この対称は最
も高価な演算部の多くを効率的に再使用できるようにす
る。
いて、上位半分と下位半分の間の対称は中間部分で明ら
かである。アダーとサブトラクターの最後のカラムも対
称部分を有しており、アダーとサブトラクターは比較的
低価格で組み合わせることができる(4つのアダー/サ
ブトラクターは図示されるような4つのアダーと4つの
サブトラクターよりかなり小さくなる)。
算されることに注目。これは最後の二次元の答えが2に
よって概算されることを意味する。これは最終的なサチ
ュレーション及びシフティングによるラウンディングス
テージにおいて容易に訂正できる。
数点Cにおいてコード化され、この結果は(明瞭なマト
リックス乗法を用いて)基準IDCTと比較された。次
のステージはC(タイミング情報は含まれない)におけ
るアルゴリズムのビット正確整数バージョンをコード化
するために使用され、それはアルゴリズムがシリコン上
に実装されるであろう時に、アルゴリズムの性能及び精
度を確認するために使用できたであろう。許容できる変
換の間違いはH.261スタンダードにおいて明記され
ており、この方法はビット正確モデルを実行し、伝えら
れる精度を測定するために使用される。
ン間の共通性を図示する方法で、全体的なIDCT構造
を示し、更に中間結果を記憶することが必要なポイント
を示している。回路は上位セクション及び下位セクショ
ンが別個に計算されるようにするため時分割多重化され
ている。
たように、IDCTアルゴリズムは効率的な構造のため
に最適化される。その結果生じる構造の主な特徴は次の
通りである:・高価な演算操作の重要な再使用・少数の
乗算器、全てが多目的というよりむしろ一定係数である
(乗算器サイズを減少させ、別の係数記憶の必要性を除
去する)・少数のラッチ、構造をパイプラインでつなぐ
ためにわずかに必要である・パイプラインステージ毎に
1つの分解操作だけが必要であるようにオペレーション
が配置される・自然のオーダーで結果を生じるように配
置できる・複雑なクロスバースイッチングもしくは重要
なマルチプレクシングがない(両者共、最終的な実装に
おいて高価である)・2つのキャリセーブオペレーショ
ン(1つは加算、1つは減算)を取り除くために、分解
結果から引き出される利点・各ステージが4クロックサ
イクルを取る、つまり非常に高速の(大きな)演算操作
の必要性を除去することを可能にする構造・小さくて遅
い波及的桁上げから、大きくて高速のキャリルックアヘ
ッドバージョンへと単に分解操作を変更することによ
り、現行の30MHzピクセルクロックオペレーション
よりはるかに高速のオペレーションを支持するであろう
構造。分解操作は各ステージにおいて必要な時間の最大
部分を必要とするので、これらのオペレーションだけを
スピードアップすることは全体的なオペレーションスピ
ードに重大な影響を及ぼす一方、変換の全体的なサイズ
の増加は比較的小さくてすむ。更に、速度の増加はパイ
プライニングの深さを増加させることによっても達成で
きる。
あり、効率的である。
は、アルゴリズムが小さな一組のハードウェア資源にマ
ップされ、必要な性能が得られる方法を示している。こ
の構造の制御は「制御シフトレジスタ」をデータフロー
パイプラインに適合させることにより達成される。この
制御はデザインに対して明瞭であり、シリコンレイアウ
トにおいて効率的である。
ch,sel byp等)は、ラッチを制御するために
使用される様々なイネーブル信号であり、信号が流れ
る。ラッチに対するクロック信号は図示されていない。
必要な精度基準を満たせるようにするという点から、幾
つかの実装に関する詳細が重要となる。一般に使用され
る技術は主として2つのクラスに分かれる。
より、各々の中間状態で固定ワード幅を持つ最大ダイナ
ミックレンジの保持。
ことによる精度増加ではなく)演算オペレーションの選
択操作により精度を達成するために、精度要件の統計的
定義の利用。
するために充分な大きさにされた固定ワード幅で単に固
定小数点を実行することから成ったであろう。不運なこ
とに、このアプローチは結果的により大きなワード幅を
生じさせ、従って大きな変換を生じさせる。本発明にお
いて使用されるアプローチは、特別の中間値のために利
用できるダイナミックレンジを最大限利用する方法で、
変換を通じて固定小数点位置が変化できるようにし、最
大限可能な精度を達成する。
で、全体的な精度を改善するためにどの中間値に対して
も選択的調整が行われ得る。選択される調整はLSB計
算の単なる操作であり、それはほとんど費用のかからな
いものである。この技術の代替案としては、ワード幅を
増やすことがあるが、かなりの費用がかかる。調整は最
終的な結果が以前に所定の方向と反対方向に行く傾向が
見い出されていれば、効果的にその結果に対して所定の
方向に加重値を与えることである。結果の断片的な部分
を調整することにより、これらの結果の全体的な平均を
効果的にシフトすることができる。
明」IDCTのブロック線図はトークンストリームのプ
ロセシングに関連する全てのブロックを示す。この線
図、図147はクロッキング、テスト及びマイクロプロ
セッサアクセス、及びイベントメカニズムを詳細には示
していない。テストアクセスを提供するために使用され
るスノーパブロックは線図において図示されていない。
ー」最初のブロックはデータ誤差チェッカー及びコレク
ターであり、12ビット幅のトークンストリームを選び
/作り出し、このストリームを分析し、データトークン
をチェックするdecheckと呼ばれる。他の全ての
トークンは無視され、直接送られる。遂行されるチェッ
クは64に等しくない拡張数を持つデータトークンのた
めに行われる。可能な誤差はdeficient(不
足)(<64拡張)、jdct too few event、及びsupernumerary
(過剰)(>64拡張)、idct too many
eventと呼ばれる。該かる誤差は標準のイベント
メカニズムで合図されるが、ブロックもトークンストリ
ームの操作により簡単な誤差リカバリを試みる。不足誤
差の場合、データトークンは「0」バリュー拡張が詰め
られ(入力受け入れを停止し、挿入を実行する)、正確
な64拡張を作り上げる。過剰誤差の場合、拡張ビット
は64番目の拡張に「0」が強制され、全ての余分な拡
張はトークンストリームから取り除かれる。
ーダの次のブロックは逆ジグザグRAM、izzであ
り、これも12ビット幅のトークンストリームを選び/
作り出す。他の全てのブロックと同様、ストリームは分
析されるが、データトークンだけが認識される。他の全
てのトークンは変更されずに送られる。データトークン
も送られるが、拡張オーダーが変更される。このブロッ
クは正確なデータトークン(つまり、64拡張のみ)を
頼りとする。これが真実のものでなければ、オペレーシ
ョンは指定されない。再配置は標準の逆ジグザグパター
ンに従って行われ、IDCT出力において水平に走査さ
れるデータを提供するためにディフォルトによって行わ
れる。更に垂直に走査される出力を提供するためオーダ
リングを変更することも可能である。標準のIZZオー
ダリングに加えて、このブロックは各8ワードローの余
分な再配置を実行する。これはIDCT一次元変換ブロ
ックの特別な要件の故に行われ、(0、1、2、3、
4、5、6、7)というオーダーではなく、(1、3、
5、7、0、2、4、6)というオーダーで出力される
ローを生じる。
グ部」次のブロックは入力フォーマッティング部、ip
fmtであり、それはIDCT変換の第1次元のため
にデータ入力を形成する。このブロックは12ビット幅
のトークンストリーム入力と22ビット幅のトークンス
トリーム出力を持つ。データトークンはIDCT変換標
準22ビット幅ワードにおける正しい有効へと整数部分
を動かすために、左にシフトされ、分数部分は0に設定
される。これはこのポイントにおいて10ビット分数が
あることを意味する。他の全てのトークンはシフトされ
ず、余分な未使用のビットは単に0に設定される。
次元」図示されている次のブロックは最初の1次元ID
CT変換ブロック、onedである。これは22ビット
幅のトークンストリームを入力/出力し、通常のよう
に、ストリームは分析され、データトークンが認識され
る。他の全てのトークンは無変更のまま送られる。デー
タトークンは、8x8の逆離散コサイン変換の1次元実
行を果たす、パイプラインでつながれたデータパスを通
過する。第1次元の出力には、データワード内に7ビッ
ト分数がある。他の全てのトークンは単にデータ変換待
ち時間に適合し、出力前にトークンストリームに組み換
えられる単なるシフトレジスタデータパスを通過する。
Mtramはそれがトークンストリームを処理する方法
において、逆ジグザグRAMと多くの面で似ている。処
理されるトークンの幅(22ビット)及び遂行される再
配置は異なるが、他の面では同じように作用し、実際に
その制御ロジックの多くを共有する。ここでも、行(R
OW)は列(Column)のローへの基本的スワッピ
ングと共に、次のIDCT次元の要件のために付加的に
再配置される。
元」図示されている次のブロックは1次元IDCT変換
ブロックの別の例であり、全ての面で第1次元と同じで
ある。この次元の出力には、4ビット分数がある。B.
9.8.7「ラウンドとサチュレーション」ラウンド・
サチュレーションブロック、rasは22ビット固定小
数点フォーマットのデータ拡張を含む22ビット幅のト
ークンストリームを選び、9ビット幅のトークンストリ
ームを出力するが、その場合データ拡張は(+ve無限
大に向かって)整数にラウンドされ、9ビットの2の補
数表示に飽和されており、他の全てのトークンは直接送
られる。
説」B.9.9.1 「標準のブロック構造」トークン
ストリームを処理する全てのブロックのために、図14
8に示すような標準の概念的な構造がある。これはトー
クンストリームの操作を遂行するセクションから2線式
インターフェースラッチを分離する。この構造上のバリ
エーションには、余分な内部ブロック(RAMコア等)
が含まれる。図示した幾つかのブロックでは、全ての
「データパス」ロジックを一緒にグルーピングするとい
う要件のため、その構造は(今も実際に存在するにもか
かわらず)概略図においてあまり明瞭にはされず、これ
を全ての標準のセルロジックから分離する。ras等の
非常に簡単なブロックの場合、論理的操作をせずに、ラ
ッチされたoutacceptを直接入力2線式ラッチ
に置くことができる。
タ誤差チェッキング/リカバリ」トークンストリーム内
の最初のブロックは、ブロック線図展望セクションで明
記したように、データチェッキングと訂正を行う。検出
される誤差は標準のイベントメカニズムで処理され、そ
れはイベントにマスクすることができ、ブロックは誤差
が検出される時、リカバリ手順で続けるか、あるいはイ
ベントマスクステータス次第で停止することができる。
IDCTは正しくないデータトークンを見るべきではな
いので、それが試みるリカバリは重大な問題であるかも
しれないものを含もうとするかなり簡単な試みにすぎな
い。
の深さがあり、zcellsにおいて完全に実行され
る。入力2線式インターフェースラッチは「フロント」
タイプのものであり、(IDCTの前にある)このブロ
ックがその前にあるものとは別の電源組織の上にある
時、全ての入力がトランジスタゲートに到達して安全な
オペレーションができるようにすることを意味してい
る。このブロックはトークンストリームを分析し、非デ
ータトークンを直接送ることによって作用する。データ
トークンが発見されると、カウントはヘッダの後見つけ
られた拡張数からスタートする。カウントが63ではな
い時、拡張ビットが「0」であると見い出されると、誤
差信号が発せられ(それはイベントロジックに行き)、
そのイベント用のマスクビットの状態次第で、dech
eckが停止される(つまり、もはや入力をアクセプト
しないか、出力を発しない)か、あるいは誤差リカバリ
を開始する。deficient誤差用のリカバリメカ
ニズムは、正しい拡張数のトークンストリームへの挿入
を制御するためにカウンタを使用する(挿入されるバリ
ューは常に「0」である)。明らかに、入力はアクセプ
トされないが、一方でこの挿入は続けられる。64番目
の拡張の拡張ビットが「0」ではないと見い出される
と、supernumerary誤差が発せられ、デー
タトークンは拡張ビットを「0」に強制することによっ
て完了され、「1」に設定された拡張ビットを持つ全て
の後に続くワードは、データをアクセプトし続けるが出
力を無効にすることによって、トークンストリームから
削除される。
いならば)永続的ではなく、つまり誤差信号は、誤差が
検出されたポイントから、リカバリが完了するまで、活
性のまま残るだけである。これは、最低限度の1つの完
全なサイクルであり、無限大に過剰なデータトークンの
場合に永久に存続できる。
AMの再配置」izz(逆ジグザグRAM)及びtra
m(転置RAM)は、同じ機能のバリエーションを遂行
し、違いより類似性の方を多く持っているので、ここで
は一緒に考慮する。これらのブロックはトークンストリ
ームを選び、他の全てのトークンを無変更のまま送る一
方で、データトークンの拡張を再配置する。処理される
拡張幅及び再配置のシーケンスは異なるが、各RAM用
の制御ロジックの大きなセクションは同じであり、実際
に各RAM用の概略図において例証される「コモン制
御」ブロックに組織化される。幅の違いはこの制御セク
ションには何の影響も及ぼさないので、RAMコア及び
適当な幅の2線式インターフェースブロックと共に、各
RAM用に異なる「シーケンスアドレス発生器」を使用
することだけが必要である。
Oのものと同じである。このことはトークンレベルにお
いて本当であり、出力オーダーに対する特別な修正はデ
ータトークンの拡張ワードのために行われる。FIFO
の深さは128ステージである。これはデータトークン
の出力スタートが検出された後FIFOの出力が支持さ
れるので、システムを通じて持続できる30MHzのた
めの要件を満たすことが必要である。これは、使用され
る再配置シーケンスの特徴が、再配置出力を始めること
ができる前に、FIFOに完全な64拡張ブロックが集
められることを要求しているからである。より正確に言
えば、逆ジグザグと転置シーケンス用の必要な最低限の
数が異なっており、両者の場合64より幾分少ない。し
かしながら、2のベキではない長さを持つFIFOを制
御するという複雑性は、RAMコアにおける小さな節約
が、必要な制御ロジックの付加的な複雑さより重要であ
ろうということを意味する。RAMコアは1つの30M
Hzサイクルにおいて(同じアドレスまたは別のアドレ
スへの)リード及びライトができるようにするデザイン
で実行される。これはRAMが内部60MHzのサイク
ル時間で効果的に操作することを意味する。再配置オペ
レーションは0〜63の範囲で、しかし自然のオーダー
ではなく、リードアドレスの特別なシーケンスを発生さ
せることにより(sequenceaddress g
eneration)遂行される。必要なシーケンスは
(8回の水平または垂直スキャニングのための)標準ジ
グザグシーケンスによって、あるいは通常のマトリック
ス転置のために必要なシーケンスによって指定される。
これらの標準シーケンスは、IDCT変換1次元ブロッ
クの要件の故に、奇数/偶数フォーマット内で各ローを
出力するための要件(つまり、(0、1、2、3、4、
5、6、7)ではなく(1、3、5、7、0、2、4、
6))によってその後更に再配置される。
ム的に全く明瞭である。直接的な転置シーケンス発生は
単にロー及びカラムアドレスの別々の発生を必要とする
だけであり、それらは共にカウンタで実行される。ロー
再配置の要件は単に、ローアドレスが自然のカウンタで
はなく、、むしろ簡単な特殊なステートマシーンで発生
されるということを意味する。
発生するため、あまり明瞭ではない。この事実の故に、
アドレスの全64ビットバリューを保持するために小さ
なROMが使用され、これは水平と垂直のスキャンモー
ド間で変化するために、スワップされ得るローとカラム
のカウンタでアドレスされる。ROMベースの発生器は
非常に素早く設計され、順方向ジグザグ(ROM再プロ
グラム)を実行するか、もしくは他の代替的なシーケン
スを将来加えることは些細なことであるという利点をも
有する。
IDCT変換」このブロックは20ステージのパイプラ
イン深さを持ち、パイプラインは停止されると剛性にな
る。この剛性はデザインを大きく簡略化し、パイプライ
ンの深さはそれほど大きくないので、全体的な力に過度
に影響を及ぼすべきではなく、両次元は一定量のバッフ
ァリングを提供するRAMの後を引き継ぐ。
されるべき)データトークン拡張及び無変更のまま送ら
れるべき他の全てのアイテムのために、内部的に別のパ
スを有する。概略図は特別な方法で描かれていることに
注意。まず、全てのデータパスロジックを一緒にグルー
プ分けするという要件の故に、次に、自動的に編集され
たコード発生を可能にするという要件(これはトップレ
ベルで制御ロジックを説明する)の故に。
らデータ拡張とその他のバリューが、出力2線式インタ
ーフェースラッチブロックの前のマルチプレクサで組換
えされる前に、2つの異なる並列パスを通って各々送ら
れる。変換データパスを通してバリューを無変更のまま
送ることはできないので、並列パスが必要である。変換
データパスの待ち時間は、トークンストリームの残りを
処理するために、簡単なシフトレジスタと適合される。
リームを分析し、トークンのスプリッティングと組換え
を制御する必要がある。その他の主なセクションは変換
データパスを制御する。このデータパスの制御用の主メ
カニズムはデータパスパイプラインを適合させる制御シ
フトレジスタであり、データパスパイプラインの各ステ
ージ用に必要な制御信号を提供するためにタップが外さ
れる。
ー、つまり8のグループに関するオペレーションをスタ
ートすることだけができるという要件を持つ。ローの中
間で無効なデータ(Gaps)を処理することはできな
いが、事実上、izz及びtramのオペレーションは
完全なデータブロックが64の有効な拡張バリューの割
り込みなしのシーケンスとして出力されることを保証す
る。
変換データパスの微細構造、t dpは図150におい
て以前に図示した。一部の詳細(例えばクロッキング、
シフト等)は図示していないことに注意。しかしなが
ら、この線図はパイプラインのどのステージにおいて
も、データパスが4つのバリューに関して同時に操作す
る方法を図示している。基本的なデータパスのサブ構
造、つまり、3つの主要セクション(例えば、プリコモ
ン、コモン、ポストコモン)も、演算及びラッチリソー
スが必要になるにつれて、見ることができる。指名され
た制御信号は制御シフトレジスタステートのデコードで
順序付けされるパイプラインラッチ(及び加算/減算セ
レクタ)用のイネーブルである。各パイプラインステー
ジは長さにおいて実際に4つのクロックサイクルである
ことに注意。
ラインに中間結果を記憶し、出力を順番に並べることが
必要な多くのラッチステージがある。幾つかのラッチは
マックシングタイプ(muxing type)、つまりそれらは条
件付きで1つより多くのソースからロードされ得る。全
てのラッチは可能化タイプのものである、つまり、別々
のクロックとイネーブル入力がある。これは作られたク
ロックスキームが適用された場合に生じるであろう不均
斉という問題を考慮しなければならないというより、正
しいタイミングでイネーブル信号を発生させることの方
がたやすいことを意味する。
ある。
出力)・キャリセーブアダー・キャリセーブサブトラク
ター・分解アダー・分解アダー/サブトラクター全ての
演算は2の補数表示で行われる。これは通常の(分解さ
れた)形態もしくはキャリセーブの形態(つまり、その
合計が実際のバリューを表示する2つの数字)であって
よい。全ての数字は記憶の前に分解され、これは時間の
点から最も高価なオペレーションであるので、1つの分
解オペレーションだけがパイプラインステージ毎に行わ
れる。分解オペレーションはここで行われ、全てのオペ
レーションが簡単な波及的桁上げを使用する。これは分
解器が非常に小さいが、比較的遅いことを意味する。分
解は各ステージにおいて全体の時間を支配するので、高
速分解演算装置を使用して全体の変換をスピードアップ
する機会が明らかにある。
ィングとサチュレーション」本発明では、rasブロッ
クは第2次元onedの出力から22ビットの固定小数
点ナンバーを選択し、これらを正確に丸められ飽和され
た必要な9ビットの符号化済み整数結果に換えるという
仕事を果たす。このブロックは更に、スキーム(2/N
ターム)内の固有の必要な4で割る作業を遂行し、更に
2次元の各々において遂行される=2のプリスケーリン
グを補うために必要な2で割る作業を遂行する。この8
で割る作業は固定小数点位置が予測された以上に残され
た3ビットであると解釈される、つまりその結果を15
ビットの整数表示と(4ビット分数ではなくむしろ)7
ビット分数として処理することを含蓄している。実行さ
れるラウンディングモードは「正の無限大にラウンドす
る」、つまり、正確に0.5の分数に1を加算すること
である。これは実行するための最も簡単なラウンディン
グモードであるので、基本的に行われる。ラウンディン
グ(整数部分の条件付き増分)が完了した後、9ビット
のサイン済み結果がこの範囲内において最大または最小
バリューに飽和される必要があるかどうかを見るため
に、この結果が検査される。これは元の整数値の上位ビ
ットと共に実施される増分の検査によって行われる。
析され、ラウンドとサチュレーションオペレーションが
データトークン拡張値に対してのみ適用される。ブロッ
クは深さが2ステージのパイプラインを持ち、完全にz
cellsで実行される。
IDCTレジスタセレクトデコーダ」このブロックは
4つのマイクロプロセッサインターフェースアドレスラ
イン及びsel test入力を、個々のブロックテス
トアクセス用のセレクトライン(スノーパ及びRAM)
にデコードする簡単なデコーダである。ブロックはzc
ells結合ロジックのみで構成される。デコードされ
るセレクトは表227に示す。
ジスタとイベント」発明のこのブロックはデータの不足
誤差及び過剰誤差、及びIDCT出力が垂直に走査され
るように、izz再配置変更を行うために使用できる単
一メモリーマップ済みビットvscanを処理する標準
イベントロジックブロックの例を含む。このビットはバ
リュー「0」にリセットされる、つまりディフォルトモ
ードが水平にスキャンアウトされる。2つの可能なイベ
ントは割り込みとして使用できるidctevent信
号を形成するために、共にORされる。レジスタ及びイ
ベントのアドレス及びビット位置に関しては、セクショ
ンB.9.10を参照せよ。
CTにおいて2つの「標準」タイプ(clkgen)の
クロック発生器が使用される。これは2つの別々のスキ
ャンパスがあるように実施される。クロック発生器はi
dctcga及びidctcgbと称される。機能的
に、唯一の違いはidctcgbがnotrstl信号
を発生させる必要がないことである。2つのクロック発
生器におけるクロックとリセット出力の各々のためのバ
ッファリング量は、各々のクロックもしくはリセットに
よって駆動される実際のロードに適合するように個々に
調整される。適合されるロードは最終レイアウトのゲー
ト及びトラックキャパシタンスから実際に測定された。
ace andRoute(BPR)が実行された時の
利点は、これらのトラックは有効電流を運ぶので、より
重く負荷されたクロック(ph0 bとph1 b)用
のクロック分配ツリーの最初のセクションのトラック幅
を増加させるために、対話式大域ルーティング特徴の能
力から引き出された。
ク」IDCTが2つの別個のスキャンチェインと2つの
クロック発生器を持つので、標準JTAG制御ブロッ
ク、jspctleには2つの場合がある。これらはテ
ストポートと2つのスキャンパス間をつなぎ合わせる。
タ」IDCTは2つのイベントを発生させることがで
き、1つの制御ビットを持つ。2つのイベントとは、不
正確なデータトークンが検出された場合に、IDCTの
前のdecheckブロックによって発生されるいdc
t too feweventとidct too m
any eventである。1つの制御ビットは垂直に
走査される出力でIDCTを操作することが必要な場合
に設定されるvscanである。従って、このビットは
izzブロックを制御する。全てのイベントロジック及
びメモリーマップ制御ビットはブロックidctreg
sの中に置かれる。
次のロケーションに置かれる。トライステートi/oワ
イヤはn derrdであり、これらのロケーションを
適宜にリード及びライトするためにn serrdが使
用される。
デザインアプローチ」全てのIDCTブロックのデザイ
ンにおいて、発明によれば、統一された簡単なロジック
デザイン戦略があり、それは素早く明瞭な方法で「安全
な」設計を行うことが可能であるということを意味した
であろう。多数の制御ロジックのために、マスター・ス
レーブだけを用いる簡単なスキームが採用された。非同
期的なセット/リセット入力だけが正しいシステムリセ
ットに接続された。同じ機能をより効率的に遂行するた
めに利口な非標準型回路構成を提供することも可能であ
ったかもしれないが、このスキームは次のような利点を
持っている。
・操作速度はかなり明らかであり(ラッチ→ロジック→
ラッチ→ロジックスタイルのデザイン参照)、自動分析
に従う・グリッチは問題ではない(SRラッチを参照)
・初期設定のためにシステムリセットだけを使用する・
スキャンパスが正しく作用できるようにする・自動的に
従うCコード発生を可能にする 透明なd−タイプのラッチが使用された多数の場所があ
り、これらは下記に記した。
フェースラッチ」スタンダードブロック構造は入力及び
出力の2線式インターフェースのためにラッチを使用す
る。出力2線式ラッチと次に続く入力2線式ラッチの間
にはロジックは存在しない。
フェース」ROM回路のタイミング要件の故に、ラッチ
はROMの出力におけるIZZシーケンス発生器におい
て使用される。
及び制御シフトレジスタ」完全なマスター・スレーブ装
置としてあらゆるパイプライン記憶ステージを実装する
ことが可能であるが、必要とされる記憶量の故に、ラッ
チを使用することにより得られる重大な節約がある。し
かしながら、このスキームはユーザーが幾つかの要素を
考慮することを求めている。
使用されるため、両フェイズの制御信号を作り出さなけ
ればならない(つまり、このシフトレジスタにおいてラ
ッチを使用する必要)・タイミング分析はラッチの使用
により複雑になる・1つのラッチが同じフェイズの別の
ラッチに出力するので、t postcはもはや自動的
に編集済みコードを作り出さないであろう(イネーブル
のタイミングの故に、これは回路の問題ではない)にも
かかわらず、ラッチの使用により節約されるエリアは本
発明においてこれらの要素を受け入れることを価値のあ
るものにしている。
ッサインターフェース」本インターフェースの性質のた
め、イベント及びレジスタブロックidctregs及
びRAMコア用のキーホールロジックにおいて、ラッチ
(及びリシンクロナイザー)のための要件がある。
制御」これらのスタンダードブロックはラッチを利用す
る。
題」IDCTデザイン(スタンダードセル、データパス
ライブラリ、RAM、ROM等)において使用されたラ
イブラリセルのデザインにおいて為された仕事は別にし
て、IDCTにおいてトランジスタレベル回路デザイン
のための要件はない。(Hspiceを用いる)回路シ
ミュレーションは変換データパスにおいて幾つかの公知
のクリティカルパスの中から実行され、Hspiceは
更に許容される最大長に近いパスの場合に、クリティカ
ルパスアナリシス(CPA)ツールの結果を確認するた
めにも使用された。
完全に静的である(つまり、我々はシステムクロックを
無期限に停止することができる)が、テストクロックが
停止される(または非常に低速にされる)時に衰えるで
あろう走査可能なラッチに動的なノードがあることに注
意。Vt降下(例えば、マックス出力)を呈する幾つか
のノードの非再生性のために、IDCTは静的な場合に
「マイクロ・パワー」ではないであろう。
チ」本発明のレイアウト実行に対する全体的アプローチ
は、多くのzcellと少数のマクロブロックで構成さ
れた完全なIDCTをレイアウトするために、BPR
(幾つかのマニュアル干渉)を使用することであった。
これらのマクロブロックは手動編集されたレイアウト
(例えば、RAM、ROM、クロック発生器、データパ
ス)であったか、もしくはonedブロックの場合、更
なるzcell及びデータパスからBPRを使用して構
築されていた。
れた。それに加えて、kdplibセルの局部的に限定
されたレイアウトバリエーションが定義され、これが価
値のあるサイズベネフィットを提供すると認められた場
合に使用された。各々のonedブロック、oned
dにおいて使用されるデータパスは、デザインの中のは
るかに最大の1エレメントであり、このデータパスのサ
イズ(高さ)を最適化するためにかなりの努力が払われ
た。
リングが相互連絡が処理される方法に影響を及ぼすの
で、変換データパスの組織、t dpはむしろ決定的で
ある。最大許容値(理想的には8、非常に不便であるが
10も可能である)があるので、最も密集したポイント
で発生するovers(サブブロックに接続しない垂直
ワイヤ)の数を最小にすることが重要である。データパ
スは3つの主要なサブセクションに論理的にスプリット
され、こうしてデータパスレイアウトが実行される。各
サブセクションにおいて、現に4つの並列するデータフ
ローがあり(それは様々なポイントで組み合わされ)、
従って、各サブセクション内でデータ・フロー(そし
て、全てのエレメントの位置)を組織する多くの方法が
ある。各サブセクション内のブロックのオーダリング、
及び論理バスの物理的バスピッチへの割当は、正確に接
続されるであろうレイアウトを達成することを可能にす
るために、レイアウトが始まる前に注意深く算出され
た。
アルゴリズムのトップレベルの照合から最終レイアウト
チェックまで、多くのレベルにおいて為された。
われ、完全精度及びビット正確整数モデルが開発され
た。H.261精度規格に対する適合性を立証し、変換
構造内の計算のダイナミックレンジを測定するため、ビ
ット正確モデルに関して様々なテストが実施された。
ンはサブブロックの動作説明(例えば、データパス及び
RAMの制御)を前進させた。該かる説明は、そのブロ
ックの概略的説明のデザインに移動する前に、Lsim
においてシミュレートされた。ある場合(例えば、RA
M、クロック発生器)には、動作説明はトップレベルの
シミュレーションのためにも使用された。
の戦略は、そのレベルで適切にシミュレートするであろ
う全てのもののために概略図をシミュレートすることで
あった。ローレベルのライブラリセル(つまり、zce
ll及びkdplib)は、この結果がはるかに小さく
素早いシミュレーションであるので、主としてその行動
科学的説明を用いてシミュレートされた。それに加え
て、動作ライブラリセルはある回路の構造問題を強調す
ることができるタイミングチェックという特徴を提供す
る。信頼チェックとして、ライブラリセルのトランジス
タ解説を用いて、あるシミュレーションが実施された。
全てのロジックシミュレーションはゼロディレイ方式で
行われ、従って機能上の性能を照合することが意図され
ていた。リアルタイミングの行動の照合は他の技術を用
いて行われた。
C Timingモードを用いて)Lsimスイッチレ
ベルシミュレーションが行われたが、更に他の潜在的な
トランジスタレベルの問題(例えば、グリッチ高感度回
路)のためのチェックを提供する。
照合技術はCPAツール、datechk用のpath
オプションの使用であった。これはより長い信号パスを
識別する(あるものはすでに知られていた)ために使用
され、ある重大な場合にCPA分析を照合するためにH
spiceが使用された。
クンのフローにより訓練されているので、ほとんどのL
simシミュレーションは標準のソース→ブロック→シ
ンク方法論で行われた。マイクロプロセッサインターフ
ェース(構成、イベント及びテストロジック)を通して
アクサスされる特徴、及びJTAG/スキャンを介して
アクセスされるテスト特徴をテストするために、付加的
なシミュレーションも必要である。
り標準のソース→ブロック→シンク方法及びLsim照
合において使用された同じトークンストリームの多くを
用いて、全IDCTのために当業者によって容易に達成
され得る。
サポート」本セクションはテスティング用及び各々のブ
ロックが如何にテストされるかの分析用に提供されるメ
カニズムを扱う。
ニズムは次の通りである:・RAMコアへのマイクロプ
ロセッサアクセス・スノーパブロックへのマイクロプロ
セッサアクセス・制御及びデータパスロジックへのスキ
ャンパスアクセスIDCTには2つの「スノーパ」ブロ
ックと1つの「スーパースノーパ」ブロックがある。図
149はスノーパブロックの位置と他のマイクロプロセ
ッサのテストアクセスを示している。
トークンフローに関するそれらの行動をテストする目的
で、各々の主要ブロックを隔離することが可能である。
マイクロプロセッサアクセスを用いて、如何なるブロッ
クに対するトークン入力をも制御し、隔離されているそ
のブロックのトークンポート出力を観察することが可能
である。更に、各ブロックの制御セクションにおける
(ほとんど)全てのフリップフロップとラッチを通過
し、またoned変換データパスパイプラインの場合に
データパスラッチの一部を通過する2つの別々のスキャ
ンパスがある。2つのスキャンパスはaとbと表示さ
れ、前者はdecheckブロックからipfmtブロ
ックへと動き、後者は最初のonedブロックからra
sブロックへと動く。
適切なメモリーマップされたロケーションをアクセスす
ることにより可能である。(適当なものとしてramt
est入力を用いて)RAMコアの場合にも同じことが
言える。スキャンパスは通常の方法でJTAGポートを
通してアクセスされる。
論じる。
のブロックは入力と出力の2線式インターフェース用の
2つのラッチがプロセシングブロックを囲む標準構造
(図148を参照)を持つ。通常のように、これらの2
線式ラッチは可能化される時はいつでも単にデータを通
り過ぎ、テストされるロジックの深さを持たないので、
如何なる走査も2線式ラッチに対して行われない。この
ブロックでは、「制御」セクションは全てがスキャンパ
スaの上にあるzcellの1ステージパイプラインか
ら成る。制御セクション内のロジックは比較的シンプル
であり、ほとんどの複雑なパスはおそらく6ビット増分
器が使用されるデータ拡張カウントの発生においてであ
る。
クは標準構造の変形であり、2線式インターフェースラ
ッチと制御セクションに加えられるRAMコアブロック
を含む。制御セクションはアドレスシーケンス発生のた
めに使用されるzcellと小さなROMで実装され
る。全てのzcellはスキャンパスa上にあり、RO
Mアドレスへのアクセス及びzcellラッチを介した
データがある。更に、ロジック、例えばナンバーの発生
プラス増分または減少する能力のためのロジックがあ
る。それに加えて、リードアドレス発生のために使用さ
れる7ビットのフルアダーがある。RAMコアはキーホ
ールレジスタを通して、マイクロプロセッサインターフ
ェースを介してアクセス可能である。表225、表22
6を参照。
ブロックも標準構造を持っている。制御ロジックはかな
り簡単なzcellロジック(全てがスキャンパスa上
にある)で実装されるが、ここでのロジックは非常に浅
くシンプルであるので、データのラッチング及びシフテ
ィング/マックシングは、直接的なアクセスなしにデー
タパスにおいて行われる。
も、このブロックは標準構造に従い、ランダムロジック
とデータパスセクションに分かれる。zcellロジッ
クは比較的明瞭であり、全てのzcellがスキャンパ
スa上にある。変換パイプラインデータパス用の制御信
号は、スキャンパス上にあるzcellラッチで構成さ
れる長いシフトレジスタから引き出される。それに加え
て、幾つかのパイプラインラッチがスキャンパス上にあ
り、これはパイプラインの幾つかのステージ(例えば、
乗算器とアダー)間のロジックがかなり深いものである
ことから行われる。非データトークンはシフトレジスタ
に沿って送られ、データパスとして実装され、これらの
ステージのいずれに対するテストアクセスも存在しな
い。
ロックはizzブロックと酷似している。しかしなが
ら、この場合、アドレスシーケンスアドレス発生におい
て使用されるROMはない。これはアルゴリズム的に実
行される。全てのzcell制御ステートはデータパス
b上にある。
ロックは標準構造に従い、完全にzcellで実行され
る。最も複雑な論理機能はラウンディングアップ時に使
用される8ビット増分器である。他の全てのロジックは
かなりシンプルである。全てのステートはスキャンパス
b上にある。
ブロック」IDCTのトップレベルに現れる他の幾つか
のブロックがある。スノーパはJTAG制御ブロックで
あるのと同様、明らかにテストアクセスロジックの一部
でもある。更に、特別なテストアクセスを持たない2つ
のクロック発生器がある(但し、それらは様々なテスト
特徴を支持している)。ブロックidctselsはマ
イクロプロセッサアドレスをデコーディングするための
組合わせzcellロジックであり、ブロックidct
regsはマイクロプロセッサアクセス可能イベント、
及びIDCT関連制御ビットを含む。
0.1 「時間デコーダの展望」本発明による時間デコ
ーダの内部構造を図151に示す。
(及びブロック内の多くのデータフロー)は2線式イン
ターフェースによって制御され(詳細については技術参
考書及びセクションを参照)、図151内の各々の矢印
は2線式インターフェースを表す。入ってくるトークン
ストリームは、外部システムクロックからのデータをフ
ェイズロックループ(ph0/ph1)から引き出され
る内部クロックに同期させる入力インターフェースを通
過する。トークンストリームは次にトップフォークを介
して2つのパスにスプリットされる;1つのストリーム
はアドレス発生器に進み、他のストリームは256ワー
ドFIFOに進む。FIFOはデータをバッファする一
方、前のIまたはPフレームからのデータはDRAMか
ら引き出され、予測アダー(P及びBフレーム)内の空
間デコーダからの入力誤差データに加えられる前に、予
測フィルタにおいてプロセスされる。MPEGデコーデ
ィングの間に、出力フレームが正しいオーダーにあるよ
うに、フレーム再配置データがI及びPフレームのため
に引き出されなければならない。再配置されたデータは
リードラダーブロック内のストリームに挿入される。
ード予測、再配置、リード及びライトバックのために別
々のアドレスを発生させ、ライトバックされるデータは
ライトラダーブロック内のストリームからスプリットさ
れる。最後に、データは出力インターフェースブロック
内の外部クロックに再同期化される。
部マイクロプロセッサインターフェース(UPI)バス
に接続される。これはマイクロプロセッサインターフェ
ースブロック内の外部マイクロプロセッサインターフェ
ース(MPI)から引き出される。このブロックはそれ
に関連するチップ内の様々なブロックのためにアドレス
デコードを持つ。更に、マイクロプロセッサインターフ
ェースと連合するのはイベントロジックである。
テスト関連である。第1に、IEE1149.1(JT
AG)インターフェースがJTAGバウンダリスキャン
特徴に対すると共に、内部スキャンパスに対するインタ
ーフェースを提供する。第2に、テストモードの間に、
マイクロプロセッサインターフェースを介してデータフ
ローに対する侵入的アクセスを可能にする2線式インタ
ーフェースステージが、パイプライン構造内の戦略ポイ
ントに含まれる。
テスト及び関連問題」B.11.1 「クロック様式」
チップ内の個々の機能的ブロックを考慮する前に、チッ
プ内のクロック様式及びそれらの関係を認識することが
有益であろう。
とんどのブロックはフェイズロックループ(PLL)か
らの信号pllsysclkに同期して動く。これに対
する例外はDRAMインターフェースであり、そのタイ
ミングはiftimeサブブロックに同期する必要によ
って支配され、このサブブロックはDRAM制御信号
(notwe、notoe、notcas、notra
s)を発生させる。このブロックのコアは2フェイズ・
ノンオーバーラッピングクロックclk0とclk1に
よりクロックされ、それらはPLL cki0、cki
1及びclkg0、ckg1から別個に供給されるクア
ドラチュア2フェイズクロックから引き出される。
ェースクロックが残りのチップ内のクロックに同期する
ので、DRAMインターフェースと残りのチップ間のイ
ンターフェースにおいて、(実際上可能な限り)準安定
行為の可能性を除去するための対応策が取られた。同期
化は2つの領域で発生する:アドレス発生器の出力イン
ターフェースにおいて(addrgen/predre
ad/psgsync、addrgen/ip wrt
2/sync18及びaddrgen/iprd2/s
ync18)、及びDRAMインターフェース内のスイ
ング・バッファーRAMの「スインギング」を制御する
ブロックにおいてである(DRAMインターフェースに
関するセクション参照)。各々の場合に、同期化プロセ
スは3つの直列準安定ハードフリップフロップによって
達成される。注意すべきことは、これはclk0/cl
k1がアドレス発生器の出力ステージにおいて使用され
ることを意味することである。
えて、pllsysclkから2フェイズ・ノンオーバ
ーラッピングクロック(ph0、ph1)を発生させる
多くの別個のクロック発生器がある。アドレス発生器、
予測フィルタ及びDRAMインターフェースは各々自身
のクロック発生器を持っており;残りのチップはコモン
クロック発生器から離れて動かされる。こうした理由に
は2つの部分がある。第1に、個々のクロック発生器に
かかる容量性負荷を減少させ、より小さなクロックドラ
イバと減少したクロックルーティング幅を可能にする。
第2に、各々のスキャンパスはクロック発生器によって
制御され、従って、クロック発生器の数の増加により短
いスキャンパスを使用できるようになる。
て動かされる信号を再同期化することが必要である。な
ぜなら、異なるクロック発生器から引き出されるノンオ
ーバーラッピングクロック間の重要でないスキューがイ
ンターフェースにおいてアンダーラップが発生したこと
を意味するであろうからである。各「スノーパ」ブロッ
ク(セクション B.11.4を参照)に内蔵された回
路が、こうしたことが発生しないことを保証し、スノー
パブロックは、トークンデコードブロックにおいて再同
期化が行われるアドレス発生器の前を除いて、全てのク
ロック様式間の境界に置かれた。
クロック発生器は通常のモード及びスキャンテストモー
ドで、オペレーションができるようにする多くの異なる
クロックを発生させる。スキャンテストモードでのクロ
ックの制御は他のセクションで詳細に説明するが、注目
すべきことは、クロック発生器(tph0、tph1、
tckm、tcks)により発せられるクロックの幾つ
かは、通常概略図の原始記号に加えられない。これはこ
れらのクロックを正確に接続するポストプロセッサによ
り、スキャンパスが自動的に作られるからである。機能
的な観点から見ると、ポストプロセッサが概略図に示さ
れたものとは異なるクロックを接続したという事実は無
視することができる;行為は同じである。
ックは多くの異なる方法で引き出すことができる。表2
29はピンpllselect及びオーバーライドのス
テートにより様々なモードを選択できる様子を示してい
る。
ターフェースの全体的な機能性については技術参考書に
おいて詳細に説明する。しかしながら、2線式インター
フェースは時間デコーダ内の全てのブロック間の通信の
ために使用され、ほとんどのブロックは多くのパイプラ
インステージで構成され、その全ては2線式インターフ
ェースステージである。従って、多くの概略図を解釈で
きるためには、2線式インターフェースの内部実装を理
解することが重要である。一般的に、これらの内部パイ
プラインステージは図152に示すように構成される。
を示しており、これが通常使用される配置である。しか
しながら、多くのステージが一緒に置かれる時、「ステ
ージ」をラッチ−ラッチ−ロジック(多くの技術者にと
って良く知られているモード)と考えることも有効であ
る。ラッチ−ロジック−ラッチ配置の使用は全てのブロ
ック間通信が、ブロックを送る際にも受け取る際にも、
ロジックを間に挟まずに、ラッチ対ラッチであるように
できる。
を取り除き、データと有効信号を直接ラッチ間に接続し
out validとout acceptがゲートさ
れるのと同様に、入力上のNORゲートに直接ラッチさ
れたinvalidをinacceptラッチに接続す
ることにより、簡単な2線式インターフェースFIFO
ステージが構築できる。データと有効信号は次に対応す
るアクセプト信号が高い時に伝搬する。図示した方法で
in validをoutacceptoregで論理
和をとることにより、データはout accept
regが低くても、in validが低い場合にアク
セプトされる。この方法で、ストール(低い信号をアク
セプトする)が発生する時はいつでも、gaps(有効
なビットが低いデータ)がパイプラインから取り除かれ
る。
を挿入し、inacceptとout validはデ
ータもしくはブロックのステートに従属できる。図示し
た配置では、ブロック内のあらゆるステートが、ph1
によって可能化されるマスターと、ph0によって可能
化されるスレーブを備えた、マスター・スレーブ装置内
に保持されることが標準である。
ーパブロックは半導体チップ内の様々なポイントにおい
てマイクロプロセッサインターフェースを介してデータ
ストリームへのアクセスを可能にする。スノーパブロッ
クには2つのタイプがある。普通のスノーパはクロック
が直接制御され得るテストモードにおいてのみアクセス
可能である。「スーパースノーパ」は、クロックが動い
ている間もアクセス可能であり、マイクロプロセッサバ
スからの非同期データを内部チップクロックに同期化さ
せる回路を包含している。表230は時間デコーダ内の
全てのスノーパのロケーションとタイプを記載してい
る。
載する。JTAGインターフェースのオペレーションの
詳細はJTAG文書に記載する。
B.12.1 「トップフォーク」本発明によれば、ト
ップフォークは2つの異なる機能を果たす。第1に、デ
ータストリームを2つの異なるストリームに分岐する:
1つはアドレス発生器に、他の1つをFIFOに、第2
に、チップを配置できるように、チップのスターティン
グ手段及びストッピング手段を提供する。
単である。同じデータがアドレス発生器とFIFOに表
示され、アクセプトが前のステージに送り返される前に
両ブロックによってアクセプトされていなければならな
い。このように、フォークの2つのブランチのvali
dsが他のブランチからのアクセプトに従属する。チッ
プが停止状態にある場合、両ブランチに対するvali
dsは低く保たれる。配置ビットがhighに設定され
るまで、半導体チップは、in acceptがlow
に保たれた状態で、パワーアップする(poweru
p,電力増加)。これはユーザーがチップを配置してし
まうまで如何なるデータもアクセプトされないことを保
証する。ユーザーが他の時にチップを配置する必要があ
る場合、ユーザーは配置ビットを設定し、チップが現在
のストリームを完了してしまうまで待たなければならな
い。ストッピングプロセスは次の通りである:1)配置
ビットが設定されていれば、トップフォークによってフ
ラッシュトークンが検出された後、如何なるデータもア
クセプトされない。
到達する時には、チップはストリームのプロセシングを
完了しているであろう。これは信号seqdoneを高
くさせる。
クロプロセッサが読むことができるイベントビットを設
定する。イベント信号はイベントブロックによってマス
クされ得る。
では、アドレス発生器(addrgen)はフレーム内
のブロック数をカウントし、DRAMデータ伝送用の正
しいアドレスシーケンスを発生させる責任がある。アド
レス発生器の入力は(トップフォークを介しての)トー
クン入力ポートからのトークンストリームであり、DR
AMインターフェースに対するその出力は、リクエスト
/アクノレッジプロトコールにより制御されるアドレス
及び他の情報から成る。
下の通りである:・トークンデコード・ブロックカウン
ティング及びDRAMブロックアドレスの発生・モーシ
ョンベクトルデータのアドレスオフセットへの変換・予
測伝送用のリクエスト及びアドレス発生器・再配置リー
ドアドレス発生器・ライトアドレス発生器 B.12.2.1 「トークンデコード(tokde
c)」トークンデコーダにおいて、コーディングスタン
ダードに連合するトークン、フレーム、ブロック情報、
及びモーションベクトルがデコードされる。ストリーム
から抽出される情報は一連のレジスタに記憶され、それ
はupiを介してアクセスされ得る。データトークンヘ
ッダの検出は次のブロックに合図され、ブロックカウン
ティング及びアドレス発生を可能化する。JPEGを動
かしている時は何も起こらない。
ングスタンダード・データ・DEFINE MAX S
AMPLING・DEFINE SAMPLING・H
ORIZONTAL MBS・MVD BACKWAR
DS・MVD FORWARDS・ピクチャスタート・
ピクチャタイプ・予測モード このブロックは更にリクエスト発生器からの情報を組み
合わせて、フレームポインタのトグリングを制御し、入
力ストリームをストール(失速)させる。新しいフレー
ムが(ピクチャスタートトークンの形態で)入力に現れ
ると、ストリームはストールされるが、前のフレームに
関連するライトバックもしくは再配置リードは不完全で
ある。
ンタ(mblkcntr)」本発明のマクロブロックカ
ウンタはフレーム内のマクロブロックの水平位置及び垂
直位置を指す4つの基本的カウンタから成る。時間の始
まりにおいて、また各ピクチャスタートに際して、全て
のカウンタは0に設定される。データトークンヘッダが
到着すると、カウンタは増分し、トークンヘッダ及びフ
レーム構造内の色成分ナンバーに従ってリセットされ
る。このフレーム構造はトークンデコーダ内のサンプリ
ングレジスタによって説明される。
次のように進行する。水平ブロックカウントはマクロブ
ロックの幅に達するまで、同じ成分の新しいデータトー
クンの各々に増分され、その後リセットする。垂直ブロ
ックカウントはマクロブロックの高さに達するまで、こ
のリセットによって増分され、その後リセットする。こ
れが発生すると、次の色成分を待つ。従って、このシー
ケンスはマクロブロック − おそらく各成分によって
異なるでろう、マクロブロックの水平と垂直のサイズに
おける成分の各々に対して繰り返される。ある成分に対
して、期待されるより少ないブロックが受け取られた場
合でも、カウントは誤差なしに次の成分へと進むであろ
う。
ューより少ない場合、水平マクロブロックカウントが増
分される。(所定の色成分に対して期待された以上のブ
ロック数が現れた時にも、カウンタはより高い成分イン
デックスを期待しているので、こうしたことが発生する
であろう。)この水平カウントはカウントがマクロブロ
ック内のピクチャ幅に達する時にリセットされる。この
リセットは垂直マクロブロックカウントを増分させる。
のマクロブロックをカウントする能力がある。この場
合、マクロブロックとブロック・グループと呼ばれるピ
クチャとの間の特別レベルの階層がある。これは11マ
クロブロック幅と3マクロブロックの深さであり、ピク
チャは常に2グループ幅である。トークンデコーダはピ
クチャタイプトークンからCIFビットを引出し、これ
をマクロブロックカウンタに送り、ブロック・グループ
をカウントするよう指示する。成分毎にブロック数が少
ないか、もしくは多すぎる場合、上記のような反応が引
き起こされるであろう。
kcalc)」ブロック計算はマクロブロック及びマク
ロブロック内ブロックの座標をピクチャ内のブロックの
位置用座標に変換する、つまり階層レベルを崩壊する。
もちろん、これは異なる色成分のサンプリング率を考慮
しなければならない(knockout)。 B.12.2.4 「ベースブロックアドレス(bsb
lkadr)」blkcalcからの情報は色成分オフ
セットと共に、線形DRAMアドレス空間内のブロック
アドレスを計算するために使用される。本質的に、所定
の色成分のために、線形ブロックアドレスは垂直ブロッ
ク数xピクチャ幅+水平ブロック数である。これはベー
スブロックアドレスを形成するために色成分オフセット
に加算される。
(vec pipe)」トークンデコーダによって表示
されるモーションベクトル情報は、水平及び垂直のピク
セルオフセット座標の形態である。つまり、フォワード
及びバックワードベクトルの各々のために、それが予測
されているブロックに形成されるブロックから半ピクセ
ルの転置を与える(x、y)がある。これらの座標は正
または負であってよいことに注意。それらはまず各色成
分のサンプリングに従って概算され、ブロック及び新し
いピクセルオフセット座標を形成するために使用され
る。図154において、陰部分が形成されつつあるブロ
ックを表す。点線の輪郭はそこからそれが来ることが予
測されているブロックである。大きな矢印はブロックオ
フセット−予測ブロックのオリジンを含むDRAMブロ
ックへの水平及び垂直のベクトル、この場合(1、4)
を示す。小さな矢印は新しいピクセルオフセット−その
DRAMブロック内の予測ブロックオリジンの位置を示
す。DRAMブロックが8×8バイトであるので、ピク
セルオフセットは(7、2)であるように見える。
クベクトルオフセットを線形ベクトルオフセットに変換
する。ピクセル情報は(x、y)座標(pix inf
o)として予測リクエスト発生器に送られる。
レームポインタ、ベースブロックアドレス、及びベクト
ルオフセットは加算されて、DRAM(Inblkad
3)から引き出されるアドレスを形成する。ピクセルオ
フセットが0であれば、1つのリクエストだけが発せら
れる。x、またはy次元のいずれかにおいてオフセット
があれば、2つのリクエスト−オリジナルブロックアド
レス、及びすぐ右かあるいは真下のもののいずれか−が
発せられる。x及びyの両方にオフセットがあれば、4
つのリクエストが発せられる。チップクロック様式とD
RAMインターフェースクロック様式間の同期は第1の
加算(Inblkad3)と、適当なリクエストを発す
るステートマシーンとの間で起きる。このように、ステ
ートマシーン(psgstate)はDRAMインター
フェースクロックによってクロックされ、その走査され
たエレメントはDRAMインターフェーススキャンチェ
インの一部を形成する。
スト及びライトリクエスト」ここではピクセルオフセッ
トが含まれないので、各アドレスは関連フレームポイン
タにベースブロックアドレスを加算することにより形成
される。再配置リードは予測及びデータが他のフレーム
記憶装置に書き戻されるので、同じフレーム記憶装置を
使用する。各ブロックはリード及びライトデータの伝送
が対応するアドレスにおける予測伝送を遅らせる傾向が
あるので、アドレスを記憶するため短FIFOを具備す
る。(これはリード/ライトデータが予測データよりチ
ップデータフローに沿ったストリームと相互作用するか
らである。)更に、各ブロックはチップクロックとDR
AMインターフェースクロック間の同期化を含む。
Mは2つのフレーム記憶装置として配置され、各々が3
つの色成分を含む。フレーム記憶装置ポインタ及び各フ
レーム内の色成分オフセットがupiを介してプログラ
ムされなければならない。
は、スノーパは次のように配置される:・blkcal
cとbsblkadrの間−このインターフェースは水
平と垂直のブロック座標、適切な色成分オフセット、及
び(その成分用の)ブロック内のピクチャ幅から成る。
アドレス。
フセット、予測モード、色成分及びH.261オペレー
ションに関する情報と共に、ブロック内のピクセルオフ
セット。
ト」の項で説明したように、物理的ブロックアドレスス
ーパースノーパは、外部DRAMのテスト中に使用する
ため、再配置リード及びライトリクエスト発生器の中に
置かれる。詳細についてはDRAMインターフェースセ
クションを参照。
enブロックはそれ自体のスキャンチェインを持ってお
り、そのクロッキングはブロック自体のクロック発生器
(adclkgen)により制御される。ブロックの後
端にあるリクエスト発生器はDRAMインターフェース
クロック様式の範囲内にあることに注意。
よる予測フィルタの全体的な構造は図155に示す。フ
ォワード及びバックワードフィルタは同じものであり、
MPEGフォワード/バックワード予測ブロックをフィ
ルタリングする。H.261モードではフォワードフィ
ルタだけが使用される(バックワードフィルタのh26
1 on入力はH.261ストリームがバックワード予
測を含まないので、永久的に低くあるべきである)。全
体的な予測フィルタブロックは2線式インターフェース
ステージのパイプラインで構成される。
測フィルタは他の予測フィルタとは完全に独立して作用
し、有効データがその入力に現れるとすぐにデータを処
理する。図156から明らかなように、予測フィルタは
4つの別個のブロックから成り、その内の2つは同じも
のである。これらのブロックのオペレーションについて
はMPEG及びH.261のオペレーションのために独
立して説明する方がよいであろう。H.261は最も複
雑であるので、最初に説明する。
レーション」使用される1次元フィルタ式は以下の通り
である: Fi =(xi+1+2xi+xi-1)/4 (i≦i≦6) Fi = xi (その他のi) これはx予測フィルタにより8×8ブロックの各ローに
適用され、y予測フィルタにより各カラムに適用され
る。これが達成されるメカニズムは図157に図示する
が、それは基本的にpfltldd概略図を表す。フィ
ルタは3つの2線式インターフェースパイプラインステ
ージから成る。ローの最初と最後のピクセルのために、
レジスタAとCがリセットされ、データはレジスタB、
D、Fを無変更のまま通過する(BとDの内容は0に加
えられる)。B×2muxの制御はレジスタbの出力が
1だけ左にシフトされるようにセットされる。このシフ
ティングはどのイベントにおいても常にシフトされる1
つの場所に加えられるものである。こうして、全ての値
に4が(後にこれ以上が)掛けられる。他の全てのピク
セルのために、xi+1がレジスタCにロードされ、xiが
レジスタBに、そしてxi-1がレジスタAにロードされ
る。図157から解るように、その後H.261フィル
タ式が実行される。垂直フィルタリングが3つの水平グ
ループにおいて遂行されるので(下記のディメンション
バッファに関するノートを参照)、ローにおける最初と
最後のピクセルを別個に処理する必要がない。ロー内の
ピクセルの制御及びカウンティングは各1次元フィルタ
に関連する制御ロジックによって遂行される。その結果
が4で割られていないことに注意すべきである。演算上
の精度が失われないように、水平及び垂直のフィルタリ
ングが行われた後、予測フィルタアダー(セクション
B.12.4.2)の入力において、16で割る(4だ
け右にシフトする)作業が行われる。レジスタDA、D
D、DFが制御情報をパイプラインに送る。これはh2
61 onとlast byteを含む。
クの内、フォーマッティングの機能は単にデータが正し
いオーダーでx−フィルタに表示されることを確実にす
ることである。上記から解るように、これには単に3ス
テージのシフトレジスタが必要であり、第1のステージ
はレジスタCの入力に接続され、第2のステージはレジ
スタBに、第3のステージはレジスタAに接続される。
ションバッファがデータをバッファリングし、3つの垂
直ピクセルのグループがy−フィルタに表示されるよう
にする。これら3つのグループはまだ水平に処理される
が、予測フィルタ内では如何なる転置も発生しない。図
158に関連して、ピクセルがディメンションバッファ
から出力されるシーケンスを表231、表232に示
す。
PEGオペレーションの間に、予測フィルタは簡単な半
ピクセル補間を行う: Fi =(xi+xi+1)/2 (0≦i≦8,半ピクセル) Fi = xi (0≦i≦7,整数ピクセル) h261 on入力が低くなければ、これはディフォル
トフィルタオペレーションである。1次元フィルタへの
信号dimが低ければ、整数ピクセル補間が実行される
であろう。従って、h261 onが低く、xdim及
びydimが低ければ、全てのピクセルはフィルタリン
グを行わずに直接送られる。1次元フィルタへのdim
信号が高い時に、ロー(またはカラム)が8ピクセル幅
(もしくはそれ以上)になることが明らかな必要条件で
ある。これは表233において要約されている。
ィルタのオペレーションは、H.261のローにおける
最初と最後のピクセルのためであるのと同様、MPEG
インターピクセルのためである。MPEG半ピクセルオ
ペレーションのために、レジスタAは永久的にリセット
され、レジスタCの出力は1だけ左にシフトされる(レ
ジスタBの出力は常に1だけ左にシフトされる)。こう
して、2個のクロックの後、レジスタFは(2B+2
C)を含み、それは必要な結果の4倍であるが、これは
xフィルタ及びyフィルタを通過した数が4だけ右にシ
フトされる予測フィルタアダーの入力において処理され
る。
ッファの機能はMPEGにおいてもシンプルである。フ
ォーマッティングは2個の有効なピクセルを集め、それ
らを半ピクセル補間のためにx−フィルタに送らなけれ
ばならない;ディメンションバッファは1つのローをバ
ッファすることだけが必要である。注目に値すること
は、データがx−フィルタを通過した後、フィルタリン
グオペレーションが9−ピクセルローを8−ピクセルロ
ーに変換するので、ローの中に8個のピクセルだけが存
在することである。「失われた」ピクセルはデータスト
リーム内のギャップで置き換えられる。半ピクセル補間
を遂行する時、x−フィルタは各ローの終わりに(各8
個のピクセルの後に)ギャップを挿入し;y−フィルタ
はブロックの終わりに8個のギャップを挿入する。この
ことは、ブロックの終わりで、8個もしくは9個のギャ
ップ・グループがデータトークンヘッダ、及びFIFO
から来るストリーム内のデータトークン間の他のトーク
ンと整列することから、重要である。これは9x9のブ
ロックがフィルタリングされる時に発生する、チップを
通じて最悪の場合を最小限に抑える。
ー」MPEGオペレーションの間に、初期のピクチャ、
後期のピクチャ、または両者の平均を用いて予測が形成
される。初期のフレームから形成される予測はフォワー
ド予測と呼ばれ、後期のフレームから形成される予測は
バックワード予測と呼ばれる。予測フィルタアダー(p
fadd)の機能は、どちらのフィルター済み予測値を
使用するか(フォワード、バックワードもしくはその両
方)、そしてフォワードまたはバックワードフィルター
ド予測もしくは両者の平均のいずれを通過するかを決定
することである(正の無限大に向かってラウンドされ
る)。
アップ時に、もしくは現在の予測ブロックの最後のバイ
トを指示するfwd 1st byte及び/もしくは
bwd 1st byte信号が活性になった後、変更
できるだけである。現在のブロックがフォワード予測で
あれば、fwd 1st byteだけが調べられる。
もしそれがバックワード予測であれば、bwd 1st
byteだけが調べられる。もしそれが二方向性の予
測であれば、fwd 1stbyte及びbwd 1s
t byteが調べられる。
予測値を使用するかを決定する。随時、これらの信号の
両方が活性であっても、もしくは両方共活性でなくとも
よい。スタートアップ時に、あるいは、ブロックの入力
に有効なデータが存在しない時にギャップがあれば、ブ
ロックはどちらの信号も活性でない時にステートに入
る。
るのに2つの基準が使用される:フォワードブロックも
しくはバックワードブロックのいずれが二方向性の予測
ペアの一部であるかを指示する信号fwd ima t
winとbwd ima twin、及びバスfwd
p num[1:0]及びbwdp num[1:0]
である。これらのバスは各々の新しい予測ブロックもし
くは予測ブロックペアのために、1だけ増分する数字を
含む。これらのブロックが必要であるのは、例えば、2
つのフォワード予測ブロックとそれに続く二方向性の予
測ブロックがある場合、第2のフォワード予測ブロック
の前に予測フィルタアダーの入力に到達するように、D
RAMインターフェースは充分以前に二方向性予測のバ
ックワードブロックを引き出すことができるからであ
る。同様に、他のシーケンスのバックワード及びフォワ
ード予測も予測フィルタアダーの入力においてシーケン
スから出ることができる。このように、次の予測モード
は次のように決定される:1)有効フォワードデータが
存在し、fwd ima twinが高ければ、ブロッ
クは有効バックワードデータがbwd ima twi
nセットと共に到着するまでストールし、それから各予
測バリューペアを平均化するブロックを通過する。
wd ima twinが高ければ、ブロックは有効フ
ォワードデータがfwd ima twinセットと共
に到着するまでストールし、それから上述のように進
む。フォワード及びバックワードデータが共に有効であ
れば、ストールは行われない。
fwd imatwinが設定されなければ、fwd
p numが調べられる。これが(pred numに
記憶されている)前の予測+1からの数字と等しけれ
ば、予測モードがフォワードに設定される。
が、bwd imatwinが設定されなければ、bw
d p numが調べられる。これが(prednum
に記憶されている)前の予測+1からの数字と等しけれ
ば、予測モードがバックワードに設定される。
arly valid信号が使用され、新しいブロック
からの最初のデータが到着する前に予測フィルタアダー
モードを設定することができることに注意。これはパイ
プラインに如何なるストールも導入されないことを保証
する。
号はフィルタリングされたデータと共に、フォワード及
びバックワード予測フィルタパイプラインに沿って送ら
れない。これは以下の理由からである:1)これらの信
号は、fwd 1st byte及び/もしくはbwd
1st byteが有効である時にのみ調べられる。
それにより、各予測フィルタにおいて約25の3ビット
パイプラインステージを節約できる。
であるので、fwd 1st byte及び/もしくは
bwd 1st byteが予測フィルタアダーに到着
する時に、有効である。
する1クロック前に調べられる。
O」予測アダー(パダー)は予測フィルタからのデータ
を誤差データに加算することにより、予測済みフレーム
を形成する。アドレス発生器、DRAMインターフェー
ス及び予測フィルタを通る入力からのディレイを補償す
るため、誤差データはパダーに達する前に256ワード
FIFO(sfifo)を通過する。
モードトークン、及びデータトークンは、いつ予測ブロ
ックが形成されるかを決定するためにデコードされる。
8ビットの予測データはデータトークン内の9ビットの
2の補数誤差データに加算される。その結果は0〜25
5の範囲に制限され、次のブロックに進む。このデータ
制限はJPEGを含む全てのイントラコード化データに
も適用されることに注意。
予測フィルタから到着するデータにおける不整合を検出
するためのメカニズムを含む。理論上は、フィルタから
のデータ量は、予測を含むFIFOからのデータトーク
ン数に正確に対応していなければならない。重大な機能
不全の場合、パダーがリカバリを試みる。
クの終わりがinextn及びf1 last入力によ
って、各々マークされる。フィルタデータの終わりがデ
ータトークンの終了前に検出された場合、残りのトーク
ンは変更されずに出力を続ける。他方、フィルタブロッ
クがデータトークンより長い場合、全ての過剰フィルタ
データがアクセプトされ、捨てられるまで入力はストー
ルされる。
れらのブロックに送り、またトークン出力ポートにこれ
らの出力を直接送るようにチップが構成されるので、F
IFOもしくは予測アダーのいずれにもスノーパはな
い。
ー」B.12.5.1 「ライトラダー(wrudde
r)」ライトラダーは予測アダーから来る全てのトーク
ンをリードラダーに送る。更に、それはMPEGのIま
たはPピクチャ内の全てのデータブロック、及びH.2
61とDRAMインターフェース内の全てのデータブロ
ックを送るので、アドレス発生器の制御下に外部フレー
ム記憶装置にそれらをライトバックすることができる。
ライトバックデータはDRAMインターフェースに行く
途中のスノーパを通過するが、全ての基本的な機能性は
1つの2線式インターフェースステージ内に包含され
る。
する:
イトがDRAMインターフェースに出力される。データ
トークンの終わりは低くなるin extnによって検
出され、これはフラッシュ信号をDRAMインターフェ
ーススイングバッファに送るようにする。通常のオペレ
ーションでは、これはスイングバッファがとにかくスイ
ングするであろうポイントと整列するであろうが、デー
タトークンが64バイトのデータを含んでいなければ、
これはリカバリメカニズムを提供する(但し、次の2〜
3の出力ピクチャが不正確であるかもしれない)。
udder)」本発明のリードラダーは次の3つの機能
を持ち、主要な2つの機能はMPEGにおけるピクチャ
シーケンス再配置に関するものである:1)外部フレー
ム記憶装置からリードバックされたデータを正しい位置
でトークンストリームに挿入すること。
ャヘッダ情報を再配置すること。
より、トークンストリームの終わりを検出すること(セ
クション B.12.1「トップフォーク」を参照)。
ている。全体のブロックは標準2線式インターフェース
技術から作られる。入力インターフェースラッチ内のト
ークンはデコードされ、これらのデコードはブロックオ
ペレーションを決定する:
して始められるが、レジスタのステートに関わらず、コ
ーディングスタンダードがMPEGでなければ禁じられ
る。同じMPIレジスタがアドレス発生器が再配置アド
レスを発生しているかどうかを制御し、このように再配
置はこのブロックからの出力である。リードラダーがど
のように作用するかを理解するため、トークンのシーケ
ンスが以下の通りであることを念頭において、入力と出
力の制御ロジックを別々に考慮する:・コーディングス
タンダード・シーケンススタート・ピクチャスタート・
時間標準・ピクチャタイプ・データトークンと他のトー
クンを含むピクチャ・ピクチャエンド・...・ピクチ
ャスタート・... B.12.5.2.1 「入力制御ロジック」パワーア
ップから、全てのトークンは、IもしくはPピクチャ用
の最初のピクチャタイプトークンに遭遇するまで、FI
FO1(現在の入力FIFOと呼ばれる)に進む。次
に、FIFO2が現在の入力FIFOになり、Iもしく
はPピクチャ用の次のピクチャタイプに遭遇するまで全
ての入力がそれに向けられ、FIFO1が再び現在の入
力FIFOになる。I及びPピクチャ内で、データトー
クンを除き、ピクチャタイプとピクチャエンドの間の全
てのトークンが捨てられる。これは何の意味も持たない
であろう再配置されたストリームにおいて、モーション
ベクトルが間違ったピクチャと連合することを防止す
る。
にFIFOに挿入され、特定のトークンヘッダの存在を
指示する。これによりFIFOの出力に関するトークン
デコーディングを行う必要がなくなる。
ク」パワーアップから、ピクチャスタートコードに遭遇
するまで、トークンはFIFO1(現在の出力FIFO
と呼ばれる)アクセプトされ、その後FIFO2が現在
のFIFOになる。セクション B.12.5.2.1において、この段階で3つのピク
チャヘッダトークン、ピクチャスタート、時間標準、ピ
クチャスタートがFIFO1に保持されていることが解
る。現在の出力FIFOはIもしくはPフレームにおい
てピクチャスタートコードと遭遇する度にスワップされ
る。従って、3つのピクチャヘッダトークンは次のIも
しくはPフレームまで記憶され、次のIもしくはPフレ
ームでは、それらは正確に再配置されたデータと連合す
るようになるであろう。Bピクチャは再配置されず、如
何なるトークンも捨てられずに通り過ぎる。ピクチャエ
ンドを含む最初のピクチャ内の全てのトークンが捨てら
れる。
ームのデータトークンに含まれるデータはDRAMイン
ターフェースからの再配置されたデータで置き換えられ
る。最初のピクチャの間、「再配置された」データは再
配置されたデータ入力に存在する。なぜなら、アドレス
発生器がDRAMインターフェースにそれを引き出すよ
うに要請するからである。これはハッシュと考えられ、
捨てられる。
ーフェース」B.13.1 「展望」本発明では、空間
デコーダ、時間デコーダ及びビデオフォーマッティング
は各々その特別なチップのためにDRAMインターフェ
ースブロックを具備する。3つ全ての装置において、D
RAMインターフェースの機能は、チップからのデータ
を外部DRAMに伝送し、アドレス発生器により供給さ
れるブロックアドレスを介して、外部DRAMからのデ
ータをチップ内へと伝送することである。
ドレス発生器、及びデータがそれを通って送られる様々
なブロックのクロックに非同期的であるクロックから操
作する。しかしながら、クロックはほぼ同じ周波数で操
作するので、この非同期化は容易に処理される。
と64バイトのブロック内の残りのチップとの間に伝送
される(唯一の例外は、時間デコーダ内の予測データで
ある)。伝送は「スイングバッファ」として知られる装
置によって行われる。これは本質的にダブルバッファさ
れた配置において操作される一組のRAMであり、DR
AMインターフェースが1つのRAMを詰めるか空にし
ている間に、別のチップ部分が他のRAMを空にする
か、詰めている。アドレス発生器からアドレスを運ぶ別
のバスが各々のスイングバッファと連合する。
が、これらのスイングバッファの機能は各々の場合で異
なる。空間デコーダにおいて、コード化データをDRA
Mに伝送するために1つのスイングバッファが使用さ
れ、DRAMからコード化データを読むために別のスイ
ングバッファが使用され、トークン化データをDRAM
に伝送するために3番目のスイングバッファが、またD
RAMからトークン化データを読むために4番目のスイ
ングバッファが使用される。時間デコーダにおいては、
イントラもしくは予測されたピクチャデータをDRAM
に書き込むために1つのスイングバッファが使用され、
DRAMからイントラもしくは予測されたピクチャデー
タを読むために2番目のスイングバッファが使用され、
他の2つはフォワード及びバックワード予測データを読
むために使用される。ビデオフォーマッティングにおい
ては、1つのスイングバッファがDRAMにデータを伝
送するために使用され、他の3つがDRAMからデータ
を読むために使用されるが、それは各々輝度(Y)、及
び赤と青の色差データ(各々Cr及びCb)である。D
RAMインターフェースの一般的な特徴のオペレーショ
ンについては、空間デコーダー文書において記載してい
る。次のセクションは時間デコーダに特有の特徴につい
て説明する。
ンターフェース」セクション B.13.1で述べたよ
うに、時間デコーダは4つのスイングバッファを持ち:
2つはデコード化イントラ及び予測化(I及びP)ピク
チャデータをリード/ライトするために使用され、これ
らは上述したように操作する。他の2つは予測データを
引き出すために使用される。
モーションベクトルによって指定されて処理されている
ブロックの位置からオフセットしている。このように、
引き出されるべきデータブロックは一般にそれがエンコ
ードされた(そしてDRAMに書き込まれた)ようにデ
ータのブロック境界に対応してはいないであろう。これ
は図160に図示しているが、陰領域は形成されつつあ
るブロックを表している。点線の輪郭はそこからそれが
予測されているブロックを示す。アドレス発生器は大き
な矢印で示すように、ブロックオフセット(ブロックの
全数)に対するモーションベクトルによって指定される
アドレスを変換し、小さな矢印で示すように、ピクセル
オフセットに対するモーションベクトルによって指定さ
れるアドレスを変換する。
タ、ベースブロックアドレス、及びベクトルオフセット
はDRAMから引き出されるブロックのアドレスを形成
するために加算される。ピクセルオフセットが0であれ
ば、1つのリクエストだけが発せられる。xまたはy次
元のいずれかにおいてオフセットがあれば、2つのリク
エスト−オリジナルブロックアドレス、及びすぐ右かあ
るいは真下のもののいずれか−が発せられる。x及びy
の両方にオフセットがあれば、4つのリクエストが発せ
られる。引き出されるべき各々のブロックのために、ア
ドレス発生器はスタート/ストップアドレスのパラメー
ターを計算し、それらをDRAMインターフェースに送
る。これらのスタート/ストップアドレスの使用につい
ては、下記において概略するように実例によって説明す
るのが良いであろう。
(1、1)のピクセルオフセットを考えてみよう。アド
レス発生器は、図においてAからDのラベルが貼られた
4つのリクエストをする。解決すべき問題は求められる
ローアドレスのシーケンスを如何にすばやく提供するか
である。解決法は「スタート/ストップ」技術を使用す
ることであり、これについて説明する。
ーディングは位置(1、1)でスタートし、位置(7、
7)で終了しなければならない。しばらく、1バイトが
一度に(つまり、8ビットのDRAMインターフェー
ス)読まれていると仮定する。座標ペアのxバリューは
アドレスの3LSBを形成し、yバリューは3つのMS
Bを形成する。x及びyのスタートバリューは共に1で
あり、アドレス9を与える。データはこのアドレスから
読まれ、xバリューは増分される。プロセスはxバリュ
ーがそのストップバリューに達するまで繰り返される。
この時点で、yバリューは1だけ増分され、xスタート
バリューは再ロードされ、アドレス17を与える。デー
タの各バイトが読まれるにつれて、xバリューはストッ
プバリューに達するまで再び増分される。xとyバリュ
ーが共にそのストップバリューに達するまで、プロセス
が繰り返される。こうして、9、10、11、12、1
3、14、15、17、...23、25、...、3
1、33、...、...、57、...、63のアド
レスシーケンスが生成される。
トップ座標は:(1、0)及び(7、0)であり、ブロ
ックC用には:(0、1)及び(0、7)であり、ブロ
ックD用には:(0、0)及び(0、0)である。
ということである。明らかに、ブロックAを見ると、ア
ドレス9から読まれるデータはスイングバッファのアド
レス0に書かれるべきであり、アドレス10から読まれ
るデータはスイングバッファのアドレス15に書かれる
べきである等である。同様に、ブロックBのアドレス8
から読まれるデータはスイングバッファのアドレス15
に書かれるべきであり、アドレス16から読まれるデー
タはスイングバッファのアドレス15に書かれるべきで
ある。この機能は下記に概略するように、非常に簡単な
実行であることが解る。
のスタートにおいて、スイングバッファアドレスレジス
タには、ストップバリューの逆がロードされ、y逆スト
ップバリューは3つのMSBを形成し、x逆ストップバ
リューは3つのLSBを形成する。この場合、DRAM
インターフェースが外部DRAM内のアドレス9を読ん
でいる間、スイングバッファアドレスは0である。その
後、外部DRAMアドレスレジスタが増分されるにつれ
て、表236に図示するように、スイングバッファアド
レスレジスタが増分される:
中心にしていた。16または32ビットのインターフェ
ースの場合、少しばかり修正をしなければならない。ま
ず、ピクセルオフセットベクトルはそれが16または3
2ビットバイナリーを指すように「クリップ」されなけ
ればならない。今まで使用してきた例において、ブロッ
クA用に、最初のDRAMリードはアドレス0を指し、
アドレス0〜3の中のデータが読まれるであろう。次
に、望まれていないデータは捨てられなければならな
い。これは全てのデータをスイングバッファに書き込み
(これは今では8ビットの場合に必要であったものより
物理的に大きくなっているにちがいない)、オフセット
で読むことによって遂行される。MPEG半ピクセル補
間を行う時、x及び/yの中の9バイトがDRAMイン
ターフェースから読まれなければならない。この場合、
アドレス発生器は適切なスタートとストップアドレスを
提供し、DRAMインターフェース内の幾つかの追加ロ
ジックが使用されるが、DRAMインターフェースが操
作する方法には基本的な変更はない。
関して注意すべき最後のポイントは、データに関してど
のようなプロセシングが求められているかを指示するた
め、予測フィルタに追加情報を提供しなければならない
ことである。これには次の点が含まれる:・(64、7
2または81バイトの)伝送の最後のバイトを指示する
「最後のバイト」信号・H.261フラグ・二方向性の
予測フラグ・ブロックの次元を指示する2ビット(x及
びyにおける8または9バイト)・ブロックのオーダー
を指示するための2ビットのナンバー最後のバイトフラ
グはデータがスイングバッファから読まれる時に生成さ
れる。他の信号はアドレス発生器から引き出され、予測
フィルタブロックによってスイングバッファから読まれ
るにつれて、それらが正しいデータブロックと連合する
ように、DRAMインターフェースを通してパイプ接続
される。
B.14.1 「序文」本文書は本発明によるマイクロ
プロセッサインターフェースのオペレーションの正しい
認識を読者に与えることを目的とする。インターフェー
スは基本的に空間デコーダ及び時間デコーダに関するも
のと同じであり、唯一の違いはアドレスラインの数であ
る。
ロプロセッサ内部ロジックである。関連概略図は以下の
通りである:UPIUPI101UPI102DINL
OGICDINCELLUPINTDETMONOVR
LPWRTGENREADGENVREFCKT回路U
PI、UPI101、UPI102は、UPI01が7
ビットのアドレス入力を持ち、8番目のビットが大地に
ハードワイヤードされる一方、他の2つが8ビットのア
ドレス入力を持つこと以外は総て同じである。入力/出
力信号ここで説明する信号は(UPIに関して定義され
た)UPIモジュールに対する全ての入力及び出力のリ
ストであり、これらの信号のソースもしくは目的地を詳
細に記す注を付記している:NOTRSTInputG
lobalチップリセット、活性低、パッド入力ドライ
バから。
低、パッド入力ドライバから(Schmitt)。
低、パッド入力ドライバから(Schmitt)。
Write信号、パッド入力ドライバから(Schmi
tt)。
ress bus信号、パッド入力ドライバから(Sc
hmitt)。
ut databus、二方向性マイクロプロセッサデ
ータピンの入力パッドドライバから(TTLin)。
Read notWrite信号、マイクロプロセッサ
インターフェースによりアクセスされる内部回路へ(メ
モリーマップ参照)。
The Internal Address Bus、
マイクロプロセッサインターフェースによりアクセスさ
れる全ての回路へ(メモリーマップ参照)。
utputTheInternal Data bu
s、マイクロプロセッサインターフェースによりアクセ
スされる全ての回路へ(メモリーマップ参照)及びマイ
クロプロセッサデータ出力パッドへ。内部データバスは
チップのピン上のデータと逆であるデータを伝送する。
イスメモリーマップ内のロケーションの読み取りを指示
する内部タイミング信号である。
部メモリーマップ内のロケーションの書き込みを指示す
る内部信号である。
nはそれらがトライステートであるべきことを指示する
マイクロプロセッサデータ出力パッドに接続する内部信
号である。一般的なコメント:UPI概略図は6個の小
さなモジュールで構成される:NONOVRLP、UP
IN、DINLOGIC、VREFCKT、READG
EN、WRTGEN。信号の全体的なリストから注意す
べきことは、チップ上の他の全てのタイミング信号と同
期するマイクロプロセッサバスタイミング信号以外のマ
イクロプロセッサインターフェースと連合するクロック
信号はないということである。従って、マイクロプロセ
ッサのオペレーション、及び外部制御により強制するこ
とができるもの以外の残りのデバイスのオペレーション
との間に、如何なるタイミング関係も仮定されるべきで
はない。例えば、テストシステム上でのマイクロプロセ
ッサインターフェースへのアクセシングに対して、外部
システムクロックのストッピング。
接な関係は、幾つかの内部タイミングがセルフタイムで
あることである。つまり、ある信号のディレイはUPI
ブロックに対して内部的に制御される。
ドレス、データ、イネーブル、及びリード/ライト信号
を取り、それらが内部回路を正しく動かすことができる
ようにそれらをフォーマットすることである。メモリー
マップに対するアクセスを定義する内部信号は、INT
RNOTW INT ADDR[...]、INTD
BUS[...]、及びREAD STRとWRITE
STRである。これらの信号のタイミング関係は、リ
ードサイクルとライトサイクル用に下記に示す。データ
シート定義及び下記の線図は常にチップイネーブルサイ
クルを示しているが、回路オペレーションはイネーブル
が低く保持され、アドレスは連続的リードまたはライト
オペレーションを行うために循環され得るようになって
いることに注意すべきである。この機能はアドレス遷移
回路の故に可能である。
STR、WRITE STRの存在は幾らかの冗長度を
反映している。それは内部回路が別々のREAD STRとWRITE STRのいずれかを使用する(そ
してINT RNOTWを無視する)、あるいはINT
RNOTWと別個のストローブ信号(ストローブ信号
はREAD STR及びWRITE STRのORから
引き出される)を使用することができるようにする。
プレチャージされ、それは更に内部データバスが駆動さ
れていない時、延長された期間の間、0XFF状態にデ
ィフォルトするように抵抗型プルアップを持つ。内部デ
ータバスはピン上のデータの逆であるので、これはそれ
らが可能化される時、外部ピン上の0x00に翻訳す
る。これは、メモリーマップ内のホールであるレジスタ
もしくはレジスタのビットに外部サイクルがアクセスす
る場合、出力データは限定され、Lowであることを意
味する。
的な変化検出ブロックである。それは1ビットの変化検
出回路であるTDETと呼ばれるサブ回路を含む。UP
INは各アドレスビットのためにTDETモジュール
を、そして各々のイネーブル信号のためにrnotwを
持つ。UPINは更に、変化検出回路の出力を共にゲー
トするためにある種の結合ロジックを含む。このゲーテ
ィングは以下の信号を発生させる:TRAN− 入力信
号の1つへの遷移を指示する、そしてUPD DONE
− 遷移が完了し、サイクルが実行され得ることを指示
する。
とを指示する。
ある。2つのラッチと2つの専用ORゲートから成る。
第1のラッチは信号SAMPLEによってクロックさ
れ、第2のラッチは信号UPDATEによってクロック
される。これら2つのノンオーバーラッピング信号はモ
ジュールNONOVRLPから来る。一般的なオペレー
ションは入力遷移がCHANGEを生じさせ、次にそれ
がSAMPLEを生じさせるように行われる。SAMP
LEがHIGHの間に全ての入力変化がアクセプトさ
れ、入力変化が止まる時に、CHANGEが低くなり、
SAMPLEがLOWになり、それはUPDATEをH
IGHにし、それは次にデータを出力ラッチに伝送し、
UPD DONEを指示する。
TRANを入力し、SMAPLEとUPDATEを発生
させるノンオーバーラッピングクロック発生器である。
UPDATEの出力上の外部ゲーティングはライトパル
スが完了してしまうまで、UPDATEがHIGHにな
るのを停止させる。
タ入力回路DINCELLの8段階と、TRISTAT
EPAD信号を駆動させる幾つかのゲーティングで構成
される。これは出力データポートがEnable1がL
OWであり、Enable2がLOWであり、Rnot
WがHIGHであり、内部readstrがHIGHの
場合にのみ駆動するであろうことを指示する。
ッチと内部データバスを駆動させるトライステートドラ
イバから成る。信号DATAHOLDがHIGHであ
り、Enable1とEnable2の両方がLOWで
ある時に、入力パッドからのデータがラッチされる。ト
ライステートドライバは内部信号INT RNOTWが
LOWである時にはいつでも、内部データバスを駆動す
る。内部データバスはトランジスタをプレチャージし、
バスプルアップもこのモジュールに含まれる。
E STRと、データラッチのためにラッチ信号DAT
AHOLDを発生させる。ライトストローブはセルフタ
イム信号であるが、セルフタイムディレイはVREFC
KTにおいて定義される。タイミング回路RESETW
RITEからの出力はWRITESTR信号を終了させ
るために使用される。レジスタに書き込む実際のライト
パルスはアクセスサイクルが終わった後にのみ生じるこ
とに注意すべきである。これはチップに対するデータ入
力がサイクルのバックエッジの上でのみサンプルされる
からである。従って、データは通常のアクセスサイクル
が終了した後でのみ有効である。
示す通り、READ STRを発生させ、更に、内部デ
ータバスをプレチャージするために使用されるPREC
H信号を発生させる。PRECH信号もセルフタイム信
号であり、その期間はVREFCKT、及び内部データ
バスの電圧に依存する。READSTRはセルフタイム
ではないが、プレチャージ期間の終わりからサイクルの
終わりまで続く。プレチャージ回路はインバータを使用
するが、その伝送特徴はそれらが逆相にする前に供給電
圧のほぼ75%の電圧を必要とするように、バイアスさ
れる。この回路はREAD STRが始まる前に、内部
バスが正しくプレチャージされることを保証する。内部
バスが既にプレチャージされている場合、ゼロ幅になる
傾向があるPRECHパルスを停止させるために、タイ
ミング回路は信号RESETREADを介して、最低の
幅を保証する。
ーフェースのセルフタイミングを制御する唯一の回路で
ある。両ディレイ、WRITE STRの1/Widt
h及びPRECHの2/WidthはPトランジスタを
通る電流によって制御される。このPトランジスタのゲ
ートは信号VREFによって制御され、この電圧は25
kΩの拡散型トランジスタによって設定される。
「序文」本発明によるイメージフォーマッティング部の
構造を図164に示す。1つはライティング用、1つは
リーディング用に2個のアドレス発生器、2個のアドレ
ス発生器を管理し、フレーム率変換を提供するバッファ
マネージャ、垂直及び水平のアンサンプラを含むデータ
プロセシングパイプライン、色空間変換及びガンマ補
正、そしてプロセシングパイプラインの出力を調整する
最終制御ブロックがある。
ージフォーマッティング部の入力に到達するトークンは
FIFOにおいて緩衝され、バッファマネージャに伝送
される。このブロックは新しいピクチャの到着を検出
し、各ピクチャを記憶するべきバッファの利用可能性を
判断する。利用できるバッファがあれば、それが到着す
るピクチャに割り当てられ、そのインデックスがライト
アドレス発生器に伝送される。利用できるバッファがな
ければ、入ってくるピクチャはいずれかのバッファが利
用できるようになるまでストールされる。全てのトーク
ンはライトアドレス発生器に送られる。
ディスプレイシステムから受け取る度に、新しいディス
プレイバッファインデックスのためにバッファマネージ
ャに対してリクエストが為される。完全なピクチャデー
タを含むバッファがあれば、そしてそのピクチャが表示
のための準備が整ったと思われる場合、バッファのイン
デックスがディスプレイアドレス発生器に送られる。そ
うでなければ、バッファマネージャは表示されるべき最
後のバッファインデックスを送る。スタートアップ時
に、最初のバッファが一杯になるまでインデックスとし
て0が送られる。(各ピクチャが入力される時に計算さ
れる)ピクチャの数が、エンコーディングフレーム率が
与えられるディスプレイ(提示数)で予測されるピクチ
ャ数より大きいか等しい場合、ピクチャは表示のための
準備が整っている。予測される数はピクチャクロックパ
ルスをカウントすることにより決定され、その場合ピク
チャクロックはクロック分配器により局部的に、あるい
は外部で発生させることができる。この技術はフレーム
率変換(例えば、2−3プルダウン)を可能にする。
れ、その数は2個であっても3個であってもよい。フレ
ーム率変換が行われることになっている場合は3個必要
である。
イトアドレス発生器はバッファマネージャからトークン
を受け取り、各々の新しいデータトークンの到着を検出
する。各データトークンが到着するにつれて、アドレス
発生器は到着するブロックを記憶するためのDRAMイ
ンターフェース用に新しいアドレスを計算する。生のデ
ータはその後DRAMインターフェースに送られ、そこ
でスイングバッファに書き込まれる。DRAMアドレス
はブロックアドレス、及びDRAM内のピクチャまたは
ブロックのラスターとして組織されるピクチャである。
しかしながら、入ってくるピクチャデータは実際に組織
化されるマイクロプロセッサのシーケンスであるので、
アドレス発生アルゴリスムはマイクロプロセッサ内のブ
ロックの下位ローのための(ブロック内)ライン幅オフ
セットを考慮しなければならない。
バッファインデックスは記憶されるピクチャ全体のため
にアドレスオフセットとして使用される。更に、各成分
は指定されたバッファ内の別のエリアに記憶されるの
で、成分オフセットは計算の中でも使用される。
ードアドレス発生器(dispaddr)はトークンの
受取及び発生を行わず、アドレスだけを発生させる。V
SYNCに答え、アドレス発生器はfield inf
o、read start、sync mode、及び
lsb invertに応じて、バッファマネージャか
らのバッファインデックスを要請する。インデックスを
受け取ると、3セットのアドレス、各成分用に、ラスタ
ーオーダーで読み込まれる現在のピクチャ用に1つづつ
のアドレスを発生させる。異なるセットアップは:イン
ターレース/順送り型ディスプレイ、及び/もしくは垂
直のアンサンプリング、及び(インターレースディスプ
レイに対する)フィールド同期化を可能にする。下位レ
ベルでは、リードアドレス発生器はベースアドレスをブ
ロックアドレス、及びDRAMのページ構造と互換性の
ある3つの成分の各々のためのバイトカウントのシーケ
ンスに変換する。DRAMインターフェースに提供され
るアドレスはブロックスタート及びブロックエンドカウ
ントと共にページ及びラインアドレスである。
Mインターフェースからのデータは出力パイプラインに
供給される。3つの成分ストリームはまず垂直に補間さ
れ、次に水平に補間される。補間の後、3つの成分は等
しい割合(4:4:4)になっていなければならず、色
空間変換器及び色ルックアップ表/ガンマ補正に送られ
る。出力インターフェースはディスプレイがHSYSC
に達するまでこの時点でストリームを保持することがで
きる。その後、出力コントローラは3つの成分を必要に
応じて多重送信し、1つ、2つまたは3つの8ビットバ
スに向ける。
に、イメージフォーマッティング部と連合する2つの主
要なタイミング様式がある。第1に、チップのフロント
エンド(アドレス発生器及びバッファマネージャ、プラ
スDRAMインターフェースのフロントエンド)のため
にタイミングを提供するシステムクロックがある。第2
に、バックエンド(DRAMインターフェース出力、及
び出力パイプライン全体)のために全てのタイミングを
駆動させるピクセルクロックがある。
チップクロック発生器を駆動させる。FIFO、バッフ
ァマネージャ、及びリードアドレス発生器は同じクロッ
ク(DΦ)から操作し、ライトアドレス発生器は同様
の、しかし別個のクロック(WΦ)を用いる。データは
内部DRAMインターフェースクロック(outΦ)上
のDRAMインターフェースにクロックされる。DΦ、
WΦ、及びoutΦは全てsyscikから発生され
る。
ターフェース自体のクロックによってDRAMインター
フェースにクロックされる。
フェースから読み出され、NEΦによって表示されるク
ロック上で操作する、bushy ne(その物理的ロ
ケーションの故に、ノースイースト)と呼ばれる出力パ
イプラインのセクションに伝送される。前方のガンマR
AMからのパイプラインセクションは別ではあるが類似
したクロック(RΦ)上でクロックされる。bifR
Φ、NEΦ、RΦは全てピクセルクロック、pixin
から引き出される。
ーフェースの全ては付属のスノーパもしくはスーパース
ノーパの何れかを持っている。これはタイミング様式と
必要なアクセスのタイプに依存する。別個ではあるが類
似したタイミング様式間のブロック境界はそれに連合す
るリタイミングラッチを持っている。
2.1 「序文」本発明によるバッファ管理ブロックの
目的は、ピクチャデータのライティング及びリーディン
グ用に2つか3つの外部バッファを特定するインデック
スをアドレス発生器に供給することである。これらのイ
ンデックスの割当ては、各々がオペレーションにおいて
タイミング様式の1つの影響を表す3つの主要な要素に
より影響される。これらはピクチャデータがイメージフ
ォーマッティング部への入力に到着する率(コード化デ
ータ率)、データが表示される率(表示データ率)、及
びエンコード化ビデオシーケンスのフレーム率(提示
率)である。
ステムは、システムのタイミング束縛があるとすれば、
最善の可能なフレームシーケンスを達成するために、フ
レームが必要に応じて繰り返されるかスキップされるよ
うに、提示率及び表示率が異なる(例えば、2−3プル
ダウン)ようにできる。ピクチャがデコードするため利
用可能な表示時間より長くかかる場合、他の全てが「キ
ャッチアップ」する間、前のフレームが繰り返されるよ
うに、デコーディングにおける困難さを表すピクチャを
同じような方法で収容することができる。2バッファシ
ステムでは、3つのタイミング様式がロックされなけれ
ばならない−それはスラックを処理するためのフレキシ
ビリティを提供する第3のバッファである。
と連合する特定のステータス情報を維持することにより
操作する。これはバッファが使用中であるか、バッファ
にデータが一杯詰まっているか、あるいは表示の準備が
できているかを指示するフラグ、またバッファにおいて
現在記憶されているピクチャシーケンス内のピクチャ数
を指示するフラグを含む。提示数も記録されるが、これ
はピクチャクロックパルスが受け取られる度に増分する
数であり、エンコード化シーケンスのフレーム率に基づ
いて表示されることが現在予測されているピクチャ数を
表す。
書き込まれるバッファ)は、ピクチャスタートトークン
が入力において検出される度に割り当てられる。このバ
ッファにはその後IN USEのフラグが付けられる。
ピクチャエンドに達すると、アライバルバッファは割当
から外され(0にリセットされ)、ピクチャ数と提示数
の間の関係に応じて、FULLもしくはREADYのフ
ラグが付けられるバッファとなる。
ンターフェースを介して、vsyncの度に一度、新し
いディスプレイバッファをリクエストする。READY
というフラグが付けられたバッファがあれば、それはバ
ッファマネージャによって表示されるために割り当てら
れるであろう。READYバッファがなければ、前に表
示されたバッファが繰り返される。
そのピクチャナンバーと提示数の間の関係を調べること
により、完全なピクチャを含むあらゆるバッファのRE
ADY−nessがテストされる。バッファは順番に考
慮される。あるバッファがREADYであると思われる
時、これは自動的に前にREADYというフラグが付け
られていたバッファのREADY−nessをキャンセ
ルする。その後、前のバッファにはEMPTYというフ
ラグが付けられる。後に考慮されるバッファにおいて、
割当計画によって後のピクチャ数が記憶されるので、こ
うしたことがうまく行く。
ャが指示されると、H.261内の時間標準トークンが
バッファのピクチャ数を修正させる。しかしながら、こ
うした特徴は、企図されてはいるが、現在のところ含ま
れてはいない。同様に、MPEG内の時間標準も何の影
響も持たない。
MPTYであるか、あるいはディスプレイバッファとし
て割り当てられるまで、入力をストールさせる。その
後、提示数とピクチャ数がリセットされ、新しいシーケ
ンスを始めることができる。
3.1 「インターフェース」C.2.3.1.1
「bm frontに対するインターフェース」全ての
データは入力FIFO、bm frontからバッファ
マネージャに入力される。この伝送は2線式インターフ
ェースを介して行われ、データは8ビット幅プラス拡張
ビットである。バッファマネージャに到着する全てのデ
ータは完全なトークンであると保証される。これは提示
数の連続プロセシング、及びデータストリーム内に有効
ギャップがある場合のディスプレイバッファリクエスト
のための必要条件である。
に対するインターフェース」トークン(8ビットデー
タ、1ビット拡張)は2線式インターフェースを介して
ライトアドレス発生器に伝送される。ピクチャスタート
トークンがwaddrgenに到着すると同時に、正し
いインデックスがアドレス発生器のために利用できるよ
うに、アライバルバッファインデックスも同じインター
フェース上で伝送される。
に対するインターフェース」リードアドレス発生器への
インターフェースは、「リクエスト」と「アクノレッ
ジ」信号として各々行動すると考えられる2つの別々の
2線式インターフェースから成る。しかしながら、いず
れかの端にある2つの2線式ベースのステートマシーン
の故に、単線式は適当ではない。
dispaddrインターフェースと連合する。まず、
dis−paddrはバッファマネージャへのdrq
valid入力を認定することにより、表示装置からv
syncに答えるリクエストを呼び出す。次に、バッフ
ァマネージャがそのステートマシーン内の適切なポイン
トに達すると、バッファマネージャはリクエストをアク
セプトし、表示されるバッファの割当に努める。その
後、disp validワイヤが認定され、バッファ
インデックスが伝送されるが、これは典型的に、dis
paddrによって直ちにアクセプトされる。更に、現
在のインデックスと連合するフィールド数が前のフィー
ルド数と無関係にリセットされなければならないことを
指示する、この最後の2線式インターフェース(rst
fld)と連合する追加ワイヤがある。
サインターフェース」バッファマネージャブロックは8
ビットのデータバス及びリード/ライトストローブと共
に、4ビットのマイクロプロセッサアドレススペースを
使用する。2つのセレクト信号があり、1つはユーザー
アクセス可能ローケーションを指示し、他方は通常の操
作状態の下でアクセスを必要とすべきではないテストロ
ケーションを指示する。
ァマネージャは2つの異なるイベント、インデックスフ
ァウンドとレイトアライバルを作り出すことができる。
この内最初のものは、ピクチャが到着した時に認定さ
れ、そのピクチャスタート拡張バイト(ピクチャインデ
ックス)はセットアップ時にBU BM TARGET
IXレジスタに書き込まれる値と適合する。第2のピ
クチャ数は現在の提示数より小さい、つまりバッファマ
ネージャまでのシステムパイプラインにおけるプロセシ
ングは提示要件を満たして行くように処理してはいな
い。
ク」本発明では、ピクチャクロックは提示数カウンタに
対するクロック信号であり、オンチップで発生される
か、あるいは外部ソース(通常はディスプレイシステ
ム)から引き出される。バッファマネージャはこれらの
信号の両方をアクセプトし、pclk ext(バッフ
ァマネージャの制御レジスタ内のビット)の値に基づい
て1つを選択する。この信号は更に、イメージフォーマ
ッティング部がそれ自体のピクチャクロックを生じさせ
ている場合、この信号もチップからの出力として利用で
きるように、パッドpicoutpad用のイネーブル
として作用する。
のセクションはバッファマネージャ概略図(bmlog
ic)を作成する様々なハードウェアブロックについて
説明する。
ク(bm input)」このモジュールはバッファマ
ネージャの4つの2線式インターフェース(入力データ
と出力データ、drq valid/accept及び
disp valid/accept)と連合するハー
ドウェアの全てを含む。入力データレジスタはそれに付
属する幾つかのトークンデコーディングハードウェアと
共に図示した。bm tokdecに対する入力にある
信号vheaderは、ヘッダが有効であろう(つま
り、トークンのまん中ではない)ポイントでのみトーク
ンデコーダ出力が認定されることを確実にするために使
用される。rtimdブロックは、パイプライン内の次
のブロック用の二重の入力データレジスタに隣接する出
力データレジスタとして作用する。これは異なるクロッ
ク発生器故のタイミング差を説明する。信号goとng
oはデータvalid、accept及びnotsto
ppedのANDに基づいており、入力もしくは出力に
おいて何かが「大破」された場合を指示するため、ステ
ートマシーン内のどこかで使用される。このモジュール
のディスプレイインデックス部分はデータに関する等価
「ゴー」(go)信号と共に、2線式インターフェース
から成る。rst fldビットもここで発生し、これ
は設定された場合、disp validが1サイクル
のために高くなるまで高いままである信号である。その
後、それはリセットされる。それに加えて、フラッシュ
トークンがディスプレイバッファによって、全ての外部
バッファにEMPTYまたはIN USEのフラグを付
けさせた後、rst fldがリセットされる。これは
ピクチャ数と提示数の両方がリセットされるのと同じポ
イントである。
スタと連合する少量の追加回路がある。この回路は入力
データレジスタがBU BM TARGIXに書き込ま
れるものと等しい値を持ち、それがイベント発生のため
に使用されることを指示する信号を作り出す。
ック(bm index)」インデックスブロックは主
として、様々な戦略的バッファインデックスを表示する
2ビットレジスタから成る。これらはarr buf、
到着するピクチャデータが書き込まれるバッファ、di
sp buf、そこからピクチャデータが表示のために
読み出されるバッファ、及びrdy buf、バッファ
がdispaddrによってリクエストされた場合、表
示され得るほとんどの現在までのピクチャを含むバッフ
ァインデックスである。更に、buf ixを含むレジ
スタがあり、これはバッファに対する一般的なポインタ
として使用される。このレジスタは増分され(マックス
にD入力)、それらのステータスを調べるバッファを通
って循環する、あるいはステータスを変更する必要があ
る場合、arrbuf、disp buf、またはrd
y bufの1つの値が指定される。これらのレジスタ
(ph0バージョン)の全ては、テストアドレススペー
スの一部として、マイクロプロセッサからアクセス可能
である。old ixはbufixのリタイムドバージ
ョンであり、バッファステータス及びim stusブ
ロック内のピクチャ数レジスタを可能化するために使用
される。buf ix及びold ixは共にこのブロ
ックから出力される3つの信号(各々が値1〜3を保持
することができる)にデコードされる。他の出力はbu
f ixがarr bufもしくはdisp bufの
いずれかと同じ値を持っているかどうかを指示し、また
rdy buf及びdisp bufのいずれかが値0
を持っているかどうかを指示する。0はバッファに対す
る参照符号ではない。それは単に現在割り当てられるa
rrival/display/readyバッファが
ないことを指示するだけである。
々の2線式インターフェース出力アクセプトレジスタに
よって可能化される。
バッファインデックス(buf ix)がセットアップ
時に制御レジスタに書き込まれる値によって限定される
ように、使用中の最大インデックスに等しいか否かを判
断するために使用される。制御レジスタ内の「1」は3
バッファシステムを指示し、「0」は2バッファシステ
ムを指示する。
ス」バッファステータス内の主要な成分はステータスと
各々のバッファ用のピクチャ数レジスタである。3つの
グループの各々はマスター・スレーブ配置であり、その
場合、スレーブは3つのレジスタのバンクであり、マス
ターはその出力が(レジスタenablesを使用し
て、old ixによって切り換えられる)スレーブの
1つに向けられる1つのレジスタである。マスターに対
する可能な入力の1つは(bmlogicレベルでbu
f ixによってインデックスされる)異なるスレーブ
出力の間で多重送信される。bmlogicレベルでデ
コードされるバッファステータスはステートマシーンロ
ジックにおいて使用されるため、表237に示された値
のいずれをも取ることができ、あるいはその前の値を再
循環させることができる。ピクチャ数は前の値または1
だけ(または1+デルタ、H.261の場合に実際のも
のと予測される時間リファレンス間の差)増分された前
の値を取ることができる。この値はブロックに存在する
8ビットアダーによって供給される。このアダーに対す
る最初の入力はthis pnum、現在書き込まれて
いるデータのピクチャ数である。
古くなっている)それら自身の前のピクチャ数ではな
く、現在(または前の)ピクチャ数に基づいて容易に更
新できるように、これは別個に(それ自身のマスター・
スレーブ配置に)記憶される必要がある。this p
numは−1にリセットされ、最初のピクチャが到着す
る時、アダーから出力に加算されるので、最初のバッフ
ァピクチャ数レジスタへの入力は0である。
給すべき時間リファレンスブロックの欠如により、デル
タは0に接続される。
提示数レジスタは、提示数が最後に調べられてから変化
していることを指示するため、ステートマシーンにおい
て使用される関連提示フラグを持つ。こうしたことが必
要であるのは、ピクチャクロックが本質的に同期的であ
り、如何なるステートにおいても活性であり得るからで
あり、これらが提示数に関係するからではない。本ブロ
ック内の回路の残りはピクチャクロックパルスが発生し
たことを検出し、この事実を「覚えておく」ことに関係
する。この方法で、提示数は更新することが有効である
時に更新することができる。イベントの代表的シーケン
スを図165に示す。信号incr prnはリタイム
ドピクチャクロックライジングエッジの1サイクル後に
活性となり、ステートが入ってくるまで持続し、その間
に提示数を修正することができる。これは信号en p
rnumによって指示される。特定のステートの間にの
み提示数の更新ができるようにした理由は、それが信号
rdystを提供するためのstandard−cel
l、not−very−fast8ビットアダーを含む
ロジックのかなりの量を駆動させるために使用されるか
らである。従って、それは次に続くステートがその結果
を使用していないステートの間にのみ変更されなければ
ならない。
ス」本発明による時間リファレンスブロックは、イメー
ジフォーマッティング部の現在の態様からは省略されて
いるが、説明の完全性のためにそのオペレーションにつ
いてここで説明する。
ータストリーム内のトークンにおいて受け取った時間リ
ファレンスバリューと、「予測された」時間リファレン
ス(1+前のバリュー)の間の差を計算することであ
る。これによりH.261においてフレームをスキップ
することができる。時間リファレンストークンは全ての
non−H.261ストリームにおいて無視される。計
算されたバリューはバッファ用のピクチャ数を計算する
ためにステータスブロックにおいて使用される。bml
ogicからのブロックを省略する効果は、H.261
ストリームが幾つかのピクチャ数をスキップすべきであ
ると指示しても、ピクチャ数がどのシーケンスにおいて
も常に連続していることである。
ができる)ブロックの主要な成分はtr、exptr及
びデルタ用のレジスタである。発明においては、trは
0にリセットされ、適当な場合に入力データレジスタか
らロードされるものである。同様に、exptrは−1
にリセットされ、時間リファレンスステートのシーケン
スの間に、1またはデルタだけ増分される。それに加え
て、デルタは0にリセットされ、他の2つのレジスタの
間の差がロードされる。3つの全てのレジスタはフラッ
シュトークンの後リセットされる。このブロック内のア
ダーはデルタとexptrの両方の計算のために、つま
り減算及び加算操作のために各々使用され、信号del
ta calcによって制御される。
m uregs)」バッファマネージャ用の制御レジス
タはブロックbm urgesにある。これらはアクセ
スビットレジスタ、(外部バッファの最大数及び内部/
外部ピクチャクロックを限定する)セットアップレジス
タ、及びターゲットインデックスレジスタである。アク
セスビットは予測されたように同期化される。信号st
opd 0、stopd 1、及びnstopd 1は
アクセスビットのOR及び2個のイベントストップビッ
トから引き出される。全てのbmlogic用のUpi
アドレスデコーディングはブロックbm udecによ
って行われ、それはイメージフォーマッティング部のト
ップレベルのアドレスデコードからの2つのセレクト信
号と共に、upiデータバスの下位4ビットを取る。
シーン」ステートマシーンロジックは元々それ自体のブ
ロック、bm stateを占有していた。しかしなが
ら、コード発生理由のため、今では平板化され、bml
ogic概略図のシート2の上にある。
る。これはデコーディング、他のbmlogicブロッ
クの制御用のロジック信号の発生、及びステートマシー
ンを通るルートを選択するために使用されるフラグ、f
rom ps及びfromflを含む新しいステートエ
ンコーディングを含む。bm stus及びbmind
ex用にマックス制御信号を作るための別個のブロック
がある。
号には、タイピング及び参照のしやすさのために簡単な
アルファベット名を与えてきた。それらの全てを、それ
らが表すロジック表現と共に表238〜表241にリス
トアップする。更にそれらはbmlogicの行動M.
解説(bmlogic.M)におけるコメントとしても
現されている。
(bminfo)」本発明では、バッファステータス情
報、インデックスバリュー、及び提示数をシミュレーシ
ョン中に観察できるように、モジュール、bminfo
が含まれる。それはMの中に書き込まれ、その入力の1
つが変化する度に出力を生じさせる。
プ」バッファマネージャのアドレススペースは2つのエ
リア、ユーザー・アクセシブルとテストにスプリットさ
れる。従って、トップレベルにおけるレンジデコードか
ら引き出される2つの別個のイネーブルワイヤがある。
表242はユーザー・アクセシブルレジスタを示し、表
243はテストスペースの内容を示す。
244に詳述するように、バッファマネージャのステー
トマシーンには19のステートがある。これらは図16
6に示すように、また行動解説bmlogic.Mにも
記載するように相互作用する。
トはPRES0であり、主ループが初期に循環されるよ
うに、フラグは0に設定される。
シーンの主ループが図167に示すようなステート(主
な線図−図166において強調している)から成る。ス
テートPRES0とPRES1は信号presflgを
介してピクチャクロックを検出することに関係する。2
個のサイクルはそれらが全てrdyst、C.2.3.
2.4において説明したアダー出力信号のバリューに依
存するので、テスト用に含めることができる。提示フラ
グが検出された場合、全てのバッファは可能な「レディ
ネス」のために調べられ、そうでなければ、ステートマ
シーンはステートDRQに進む。PRES0−PRES
1ループの回りの各サイクルは異なるバッファを調べ、
フル及びレディ条件をチェックする。これらが満たされ
ると、前のレディバッファ(もし存在していれば)がク
リアされ、新しいレディバッファが割り当てられ、その
ステータスが更新される。このプロセスは全てのバッフ
ァが調べられる(インデックス==max buf)ま
で繰り返され、それからステートが前進する。以下のい
ずれかが当てはまれば、バッファ は表示される準備が整ったと考えられる: (pic num>pres nu m) &&(pic num−pres num)>=128) or (pic num<pres num) &&(pres num−pic num)<=128) or pic num==pres num ステートDRQはディスプレイバッファ用のリクエスト(drq valid reg && disp acc reg)をチェックする。もし如何なるリクエスト もなければ、ステートは(通常は、後述するように、ス
テートTOKENに)進む。そうでなければ、ディスプ
レイバッファインデックスが以下のように発せられる。
レディバッファがなければ、前のインデックスが再発行
され、あるいは、前のディスプレイバッファがなけれ
ば、ゼロインデックス(ゼロ)が発せられる。バッファ
が表示される準備が整っていれば、そのインデックスが
出され、そのステートが更新される。必要であれば、前
のディスプレイバッファがクリアされる。ステートマシ
ーンはその後以前のように前進する。
るための典型的なオプションである。有効な入力があ
り、出力がストールされていなければ、トークンは(後
のセクションで説明する)戦略的バリューのために調べ
られ、そうでなければ、制御はステートPRES0に戻
る。
プから分岐するだけである。これらについては以下のセ
クションにおいて説明する。
ックスの割当」PRES0−PRES1ループの間に、
バッファがレディであると判断されれば、前のレディバ
ッファは空にされる。なぜなら、いつでも1つだけのバ
ッファがレディと指定され得るからである。ステートV
ACATE RDYはそのステートをVACANTに設
定することにより、古いレディバッファをクリアし、制
御がPRES0ステートに戻る時、全てのバッファのレ
ディネスがテストされるように、バッファインデックス
を1にリセットする。こうすることの理由は、インデッ
クスが今では前のレディバッファを指しており(それを
クリアする目的)、我々の意図する新しいレディバッフ
ァインデックスの記録がないからである。従って、全て
のバッファを再テストすることが必要である。
インデックスの割当」ディスプレイバッファインデック
スの割当はステートDRQ(ステートUSERDY)か
ら直接、あるいは古いディスプレイバッファステートを
クリアするステートVACATE DISPを介して行
われる。選ばれたディスプレイバッファはIN USE
というフラグが付けられ、rdy bufのバリューが
0に設定され、ステートDRQに戻るためにインデック
スは1にリセットされる。更に、disp bufに必
要なインデックスが与えられ、2線式インターフェース
ワイヤ(disp validとdrq acc)がそ
れに応じて制御される。ステートTOKEN、FLUS
H、ALLOC間の決定がステートUSE RDYにお
いて為される必要がないようにするためだけに、制御は
ステートDRQに戻る。
取った時のオペレーション」ピクチャエンドトークンを
受け取ると、制御はステートTOKENからステートピ
クチャエンドに移り、そこで、インデックスがまだ現在
のアライバルバッファを指していない場合、そこを指す
ように設定され、そのステートが更新され得る。out
acc reg及びen fullが当てはまると仮
定すれば、ステータスを後述するように更新することが
できる。そうでなければ、制御はそれらが共に当てはま
るまでステートピクチャエンドに残る。en full
信号がライトアドレス発生器によって供給され、スイン
グバッファがスイングしたことを、つまり最後のブロッ
クがうまく書き込まれ、従ってバッファステータスを更
新しても安全であることを指示する。
テストされ、テストの結果に応じてステータスFULL
またはREADYのいずれかが与えられる。それがレデ
ィであれば、rdy bufにそのインデックスのバリ
ューが与えられ、set la ev信号(レイトアラ
イバルイベント)が高く設定される(予測されるディス
プレイがデコーディングの適時に前に進んだことを指示
する)。arr bufの新しいバリューは今は0であ
り、前のレディバッファがそのステータスをクリアする
必要があれば、インデックスはそこを指すように設定さ
れ、制御はステートVACATE RDYに移動する。
そうでなければ、インデックスは1にリセットされ、制
御は主ループのスタートに戻る。
け取った時のオペレーション(アライバルバッファの割
当)」ピクチャスタートトークンがステートTOKEN
の間に到着すると、フラグfrom psが設定され、
ステートTOKENの代わりにステートALLOCを巡
視するように、ベーシックステートマシーンループを変
更させる。ステートALLOCはアライバルバッファ
(その中に到着するピクチャデータを書き込むことがで
きる)の割当に関係し、そのステータスがVACANT
であるものを見つけるまでバッファを通って循環する。
バッファはデータ2線式インターフェースの上に出力さ
れるので、out acc regが高い場合にのみ割
り当てられる。従って、ループのまわりの循環はこれが
本当にそうした場合になるまで続くであろう。適当なア
ライバルバッファが見つけられると、インデックスはa
rrbufに割り当てられ、そのステータスにはIN
USEというフラグが付けられる。インデックスは1に
設定され、フラグfrom psがリセットされ、ステ
ートはNEW EXP TRに進む用に設定される。
(ピクチャスタートに続くワードに含まれる)ピクチャ
のインデックスがチェックされ、それがtarg ix
(セットアップで指定されたターゲットインデックス)
と同じであるか否かが判断され、もしそうであれば、s
et if+ ev(インッデクスファウンドイベン
ト)が高く設定される。
SET ARRIX、及びNEWPIC NUMが新し
く予測される時間リファレンス及び入ってくるデータ用
のピクチャ数を設定する。正しいピクチャ数レジスタが
更新される(thispnumも更新されることに注
意)ように、中間ステートはインデックスをarr b
ufに設定する。その後制御は、低い拡張に遭遇するま
で、(好ましい2線式インターフェース信号を仮定し
て)データを出力するステートOUTPUTTAILに
進む。この時点で、主ループは再スタートされる。これ
は全データブロック(64アイテム)が出力されること
を意味し、その間に提示フラグもしくはディスプレイリ
クエスト用のテストは行われない。
た時の動作」データストリーム内のフラッシュトークン
はシーケンス情報(提示数、ピクチャ数、rstfl
d)をリセットすべきことを指示する。これはFLUS
Hに導く全てのデータが正しく処理された時にのみ発生
することができる。従って、FLUSHを受け取った
後、全てのフレームがディスプレイに手渡された、つま
り、1つのバッファを除いて全てのバッファがステータ
スEMPTYを持ち、その1つのバッファが(ディスプ
レイバッファとして)IN USEであることが確実に
なるまで、バッファの全てのステータスを監視すること
が必要である。その時点で、「新しいシーケンス」を安
全に使用することができる。
おいて検出されると、フラグfrom flが設定さ
れ、ステートトークンの代わりにステートフラッシュを
巡視するように、ベーシックステートマシーンループを
変更させる。ステートFLUSHは各バッファのステー
タスを順に調べ、それがVACANTもしくはディスプ
レイとしてIN USEになるのを待つ。ステートマシ
ーンは条件が当てはまるまで、単にループのまわりを循
環し、それからそのインデックスを増分して、全てのバ
ッファを訪問してしまうまでプロセスを繰り返す。最後
のバッファが条件を満たすと、提示数、ピクチャ数、及
び全ての時間リファレンスレジスタがそれらのリセット
値rst fldが1に設定されると仮定する。フラグ
fromflがリセットされ、通常の主ループオペレー
ションが再び始められる。
時の動作」時間標準トークンに遭遇すると、H.261
ビットのチェックが行われ、設定されると、4つのステ
ートTEMP REF0〜TEMP REF3を巡視す
る。これらは次のオペレーションを遂行する。
in datareg; TEMP REF1:delta=temp ref−
exp tr;index=arr buf; TEMP REF2:exp tr=delta+ex
p tr; TEMP REF3:pic num[i]=this
pnum+delta;index=1. C.2.4.9 「他のトークンとテール」ステートト
ークンは上記において概略したもの以外の全ての場合に
おいて、ステートOUTPUT TAILに制御を送
る。最後のトークンワードに遭遇する(inextn
regが低い)まで制御はここに留まり、主ループはそ
れから再突入される。
C.2.5.1 「バッファマネージャ入力をストール
するステートマシーン」この要件はピクチャクロックと
ディスプレイバッファリクエストの「同期的」タイミン
グイベントを繰り返しチェックする。これらのチェック
の間に、バッファマネージャ入力をストールさせること
の必要性は、バッファマネージャの入力に連続的なデー
タ供給がある時、バッファマネージャを通るデータ率に
制限があることを意味する。典型的なステートシーケン
スはPRES0、PRES1、DRQ、TOKEN、O
UTPUT TAILであり、OUTPUT TAIL
を除き、各々が1サイクル続く。これは各64データア
イテムのブロックのために、入力がストールされている
間(ステートPRES0、PRES1、DRQの間)3
サイクルのオーバーヘッドがあり、それによって3/6
4もしくはほぼ5%だけライト速度を遅くさせることを
意味する。このオーバーヘッドの数は、ステートマシー
ンの補助ブランチが最悪の場合の条件下で実行される
時、時には13サイクルまで増加させることができる。
このように多くのオーバーヘッドはフレーム毎に一度の
ベースで適用できるだけであることに注意。
為」C.2.3.2.4に示す概略図により図示される
bm presの特別な態様は、提示数がupiアクセ
ス中に自由に動くことを意味する。アクセスを廃棄する
時の提示数がアクセスを得た時の提示数と同じであるこ
とが求められる場合、これはアクセスが認められた後の
提示数を読み、それをアクセスが廃棄される直前に書き
戻すことによって成し遂げられる。注意すべきことは、
これは非同期的であり、従って更に効果性を確かめるた
めに、そのアクセスを数回繰り返すことが望ましいこと
である。
ンス数」モジュールbm tref(図示せず)はbmlogicの中に含まれる
べきである。H.261時間リファレンスバリューは、
bmtrefからのデルタ入力をbm stusモジュ
ールに向けさせることにより正しく処理される。デルタ
入力は、フレームが常に連続する場合に0に結び付ける
ことができる。
生」C.3.1 「序文」本発明によるライトアドレス
発生ハードウェアの機能は、バッファに書き込むべきデ
ータ用のブロックアドレスを作り出すことである。これ
はバッファのベースアドレス、ストリーム内で指示され
る成分、マクロブロック内の水平と垂直のサンプリン
グ、ピクチャディメンション及びコーディングスタンダ
ードを考慮する。データはマクロブロックの形態で到着
するが、ディスプレイのためにラインを容易に検索でき
るように記憶されなければならない。
クが(データトークンが指示する)データストリームに
到着する度に、ライトアドレス発生器は新しいブロック
アドレスを作るように要請される。アドレスが実際に必
要になる前に、64までのデータワードを(スイングバ
ッファ内の)DRAMインターフェースによって記憶す
ることができるので、直ちにアドレスを作ることが必要
ではない。これは様々なアドレス成分を連続サイクル内
の現在の合計に加算することができ、従って如何なるハ
ードウェア乗算器のための必要事項をも除去することが
できることを意味する。マクロブロックカウンタ機能は
重要な端末値を記憶し、各ブロックアドレス計算の後の
比較及び条件付き更新用のオペランドである、レジスタ
ファイル内のカウントを動かすことによって達成され
る。
考えてみると、予測されるアドレスシーケンスは標準の
データストリーム及びH.261のようなデータストリ
ームの双方から引き出すことができる。これらを下記に
示す。スライスが充分な幅を持たない(11よりむしろ
3マクロブロックである)が、ここでは便利さのために
同じ「半ピクチャ幅スライス」コンセプトを使用し、シ
ーケンスは「H.261タイプ」のものであると仮定す
るので、フォーマットは実際にはH.261規定に準じ
てはいないことに注意。データはフルマクロブロック、
図示した例では4:2:0として到着し、各成分は指定
されたバッファのそれ自身のエリアに記憶される。 標準アドレスシーケンス: 000,001,00C,00D,100,200; 002,003,00E,00F,101,201; 004,005,010,011,102,202; 006,007,012,013,103,203; 008,009,014,015,104,105; 00A,00B,016,017,105,205; 018,019,024,025,106,107; 01A,01B,026,..........08
0,081,08C,08D,122,222; 082,083,08E,08F,123,223; H.261型シーケンス: 000,001,00C,00D,100,200; 002,003,00E,00F,101,201; 004,005,010,011,102,202; 018,019,024,025,106,107; 01A,01B,026,027,107,207; 01C,01D,028,029,108,208; 030,031,03C,03D,10C,20C; 032,033,03E,03F,10D,20D; 034,035,040,041,10E,20E; 006,007,012,013,103,203; 008,009,014,015,104,105; 00A,00B,016,017,105,205; 01E,01F,02A,02B,109,209; 020,021,02C,02D,10A,20A; 022,023,02E,02F,10B,20B; 036,037,042,043,10F,20F; 038,039,044,045,110,210; 03A,03B,046,047,111,211; 048,049,054,055,112,212; 04A,04B,056,..........06
A,06B,076,077,11D,21D; 07E,07F,08A,08B,121,221; 080,081,08C,08D,122,222; 082,083,08E,08F,123,223; C.3.3 「アーキテクチュア」C.3.3.1
「インターフェース」C.3.3.1.1 「バッファ
マネージャに対するインターフェース」バッファマネー
ジャはデータ及びバッファインデックスを直接ライトア
ドレス発生器に出力する。これは2線式インターフェー
スの制御下に行われる。ある方法では、ライトアドレス
発生器ブロックをバッファマネージャの拡張と考えるこ
とができる。なぜなら、その両者が非常に密接につなが
れるからである。しかしながら、それらは2つの別個の
(しかし類似した)クロック発生器から操作する。
するインターフェース」ライトアドレス発生器はDRA
Mインターフェース用のデータとアドレスを提供する。
これらの各々はそれら自身の2線式インターフェースを
持ち、dramifは異なるクロック様式においてその
各々を使用する。特に、アドレスはライトアドレス発生
器クロックに関連しないクロック上でdramifにク
ロックされる。従って、それは出力において同期化され
る。
サインターフェース」ライトアドレス発生器は8ビット
のデータバス及びリード/ライトストローブと共に、3
ビットのマイクロプロセッサアドレススペースを使用す
る。レジスタアクセス用に1つのセレクトビットがあ
る。
アドレス発生器は5個の異なるイベントを作り出すこと
ができる。2個はデータストリーム(hmbsとvmb
s)に現れるピクチャサイズ情報に答え、3個はDEF
INE SAMPLINGトークン(各成分のために1
イベント)に答える。
レス発生器の構造を概略図waddrgen.schに
示す。それはデータパス、幾つかの制御ロジック、及び
スノーパと同期化から成る。
adpath)」データパスは本文書のC.5章におい
て説明したタイプのものであり、18ビットのアダー/
サブトラクター、及びレジスタファイル(C.3.3.
4を参照)から成り、制御ロジックにおいて使用するた
め(アダーの出力に基づく)ゼロフラグを作り出す。
発明の制御ロジックはレジスタファイルロード及びドラ
イブ信号、アダー制御信号、2線式インターフェース信
号の全てを発生させるため、ハーデウェアで構成され、
更に書き込み可能制御レジスタを含む。
化」スーパースノーパがデータとアドレスポートの両方
に存在する。データパス内のスノーパはzcellsか
らのスノーパとして制御される。アドレスはライトアド
レス発生器クロックとdramifのclk様式との間
で同期化を持つ。Syncifsは2線式インターフェ
ース信号用のzcellsにおいて使用され、簡略化さ
れたシンクロナイザーがアドレス用のデータパスにおい
て使用される。
ートマシーン」C.3.3.3.1 「入力/出力ブロ
ック(wa inout)」このブロックは(トークン
デコード用の)入力データ用ラッチ及び(4つの方法で
デコーディングするための)アライバルバッファインデ
ックスと共に、入力と2つの出力の2線式インターフェ
ースを含む。
御ブロック(wafc)」フラグfc(最初のサイク
ル)がここに維持され、ステートマシーンが2サイクル
オペレーション(つまり、加算を含むオペレーション)
の中間にあるかどうかを指示する。
a comp)」別のアドレスが各成分内のデータブロ
ックのために必要とされ、このブロックは入力ストリー
ムにおいて受け取られるデータヘッダのタイプに基づい
て考慮中の現在の成分を維持する。
(wa mod3)」H.261データストリーム用
のアドレスシーケンスを発生させる時、スクリーンに沿
って半分までマクロブロックの3つのローをカウントす
る必要がある(C.3.2を参照)。これはマクロブロ
ックの新しいローが巡視される度に増分されるモジュロ
−3カウンタを維持することによって達成される。
a uregs)」モジュールwa uregsはステ
ップアップレジスタ及びコーディングスタンダードレジ
スタを含み、後者はデータストリームからロードされ
る。セットアップレジスタは3ビット:QCIF(1s
b)と、データストリーム内で予測される最大量の成分
(ビット1及び2)を使用する。更に、アクセスビット
はこのブロックにあり(いつものように同期化され)、
「ストップド」ビットはアクセスビット及びイベントス
トップビットのORとして、階層(walogic)の
次の上のレベルにおいて引き出される。マイクロプロセ
ッサアドレスデコーディングは、リード及びライトスト
ローブ、セレクトワイヤ、及びアドレスバスの低い方の
2ビットを取るブロックwa udecによって行われ
る。
ーン(wa state)」このブロック内のロジック
は幾つかの別個のエリアに分けられる。ステートデコー
ド、新しいステートエンコード、「中間」ロジック信号
の起源、データパス制御信号(drivea、driv
eb、load、アダー制御及びセレクト信号)、乗算
器制御、2線式インターフェース制御、及び5つのイベ
ント信号である。
つのイベントビットは入力に達する特定のトークンの結
果として発生される。重要なことは、各々の場合に、イ
ベントサービスルーチンが新しく受け取ったバリューに
基づいて計算を行うので、イベントが発生される前に全
トークンが受け取られることである。このため、各々の
ビットはイベントハードウェアに入力される前に全サイ
クルによって遅延される。
プ」ライトアドレス発生器ブロックには2セットのレジ
スタがある。これらは標準のセルセクションに置かれる
トップレベルのセットアップタイプのレジスタであり、
キーホールデータパスレジスタである。これらを表24
5及び表246〜表256に各々リストアップする。
は、アドレス計算の前にピクチャサイズパラメータをロ
ードしなければならないものと、様々な(水平及び垂直
の)ブロック及びマクロブロックカウントの現在の合計
を含むものである。ピクチャサイズパラメータはライト
アドレス発生器により発生される割り込みに答えてロー
ドされ得る、つまり、ピクチャサイズまたはサンプリン
グトークンのいずれかがデータストリームに現れる時に
ロードされ得る。あるいは、ピクチャサイズがデータス
トリームを受け取る前に知られている場合、リセット後
にそれらを書き込むことができる。セットアップの例を
セクションC.13に記すが、ピクチャサイズパラメー
タレジスタについては次のセクションにおいて定義す
る。
ログラミング」次のデータパスレジスタは、アドレス計
算が進行される前に、正しいピクチャサイズ情報を含ん
でいなければならない。それらを図171に図示する。
IN BLOCKS:これはブロックにおいて、入って
くるピクチャの半分の幅を定義する。
はマクロブロックにおいて、入ってくるピクチャの幅を
定義する。
はマクロブロックにおいて、入ってくるピクチャの高さ
を定義する。
ROW:これはマクロブロックの1つの全幅のローにお
ける最後のマクロブロックの左上位のブロックのブロッ
ク数を定義する。ブロックナンバリングは左端のマクロ
ブロックの左上コーナーの0からスタートし、フレーム
を横切って各ブロック毎に増加し、マクロブロックロー
内の次のブロック・ローへと続く。
HALF ROW:これは前のアイテムと同様である
が、マクロブロックの半幅のローにおける最後のマクロ
ブロックの左上位のブロックのブロック数を定義する。
MB:これはマクロブロックのロー内の最後のブロッ
クのローにおける左端のブロックのブロック数を定義す
る。7)WADDR BLOCKS PER MB R
OW:これはマクロブロックの1つの全幅のローに含ま
れる全ブロック数を定義する。
W:これはピクチャ内のマクロブロックの最後のローに
おける左端のマクロブロックの左上位のブロックアドレ
スを定義する。
るピクチャのブロックの幅を定義する。
つのマクロブロック内のブロックのローにおける右端の
ブロックのブロック数を定義する。
ロックにおける、1つのマクロブロックの高さ−1を定
義する。
レジスタをプログラムしなければならない。これらのレ
ジスタは3バッファベースのレジスタ、及びn成分オフ
セットレジスタであり、この場合、nはデータストリー
ムにおいて予測される成分数である(それはデータスト
リームにおいて定義することができ、1最小限及び3最
大限であり得る)。
ロックアドレスを指定することに注意。これは最終アド
レスがブロックアドレスであると予測され、計算は累積
アルゴリズムに基づくからである。
レジスタバリューを生じる:1)WADDR HALF
WIDTH IN BLOCKS=0x16 2)WADDR MBS WIDE=0x16 3)WADDR MBS HIGH=0x12 4)WADDR LAST MB IN ROW=0x
2A 5)WADDR LAST MB IN HALF R
OW=0x14 6)WADDR LAST ROW IN MB=0x
2C 7)WADDR BLOCKS PER MB ROW
=0x58 8)WADDR LAST MB ROW=0x5D8 9)WADDR HBS=0x2C 10)WADDR MAXVB=1 11)WADDR KAXHB=1 C.3.5 ステートマシーンのオペレーション バッファマネージャのステートマシーンには19のステ
ートがあり、詳細は表257、表258に記す。これら
は図173に示すように、また行動解説、bmlogi
c.Mにおいて説明するように相互作用する。
生器ステートマシーンの主セクションについては、図1
73の左側に図示している。データトークンを受け取る
と、ステートマシーンはステートIDLEからステート
ADDR1に、そして順にステートADDR5へと移動
し、そこから2線式インターフェースの制御で18ビッ
トのブロックアドレスを出力する。ステートADDR1
〜ADDR5により遂行される計算は以下の通りであ
る: BU WADDR SCRATCH=BU BUFFE
Rn BASE+BU COMPm OFFSET; BU WADDR SCRATCH=BU WADDR
SCRATCH+BU WADDR VMBADD
R; BU WADDR SCRATCH=BU WADDR
−SCRACTH+BU WADDR HMBADD
R; BU WADDR SCRATCH=BU+WADDR
SCRACTH+BU WADDR VBADDR; out addr=BU WADDR SCRACTH
+BU WADDR HB; 1)BU WADDR VMBADDR:マクロブロッ
クのローの左端のマクロブロックの(左上位のブロッ
ク)ブロックアドレス、そこにアドレスが計算されるブ
ロックが含まれる。
マクロブロックのカラムの上位マクロブロックの(左上
位のブロック)ブロックアドレス、そこにアドレスが計
算されるブロックが含まれる。
ロックのローの左端の、マクロブロックロー内のブロッ
クアドレス、そこにアドレスが計算されるブロックが含
まれる。
計算されるブロックの、マクロブロック内の水平ブロッ
ク数。
中間結果の一時的記憶のために使用されるスクラッチレ
ジスタ。
が0x62Dであるブロックの計算を取り上げると、以
下の計算シーケンスが発生する: スクラッチ=BUFFERn BASE+COMPm
OFFSET;(0と仮定) スクラッチ=0+0x5D8; スクラッチ=0x5D8+0x28; スクラッチ=0x600+0x2C; ブロックアドレス=0x62C+1=0x62D; 様々なレジスタの内容を図に示す。
ーションパラメータの計算」アドレスが出力されたら、
ステートマシーンは上記の様々なスクリーンロケーショ
ンパラメータを更新するために計算を実行し続ける。ス
テートHB及びMB0〜MB6が計算を行い、あるポイ
ントにおいてステートデータに制御を伝送し、ステート
データからデータトークンの残りが出力される。
ペアは現在のカウントとその終末値との差を計算し、0
フラグを発生させる。第2のペアはレジスタをリセット
するか、あるいは(スクリーンサイズから引き出される
セットアップレジスタにおけるバリューに基づいて)固
定オフセットを加算する。いずれの場合にも、考慮中の
カウントがその終末値に達すると(つまり、0フラグが
設定されると)、制御はステートのMBシーケンスを下
方へと続ける。そうでなければ、全てのカウントは正し
い(次のアドレス計算の準備が整っている)とみなさ
れ、制御はステートデータを伝送する。
ートは、完了するため(標準のリップル・キャリアダー
の使用を許す)2つのサイクルを取り、これはアダーベ
ースのステートのために1と0の間で交替するフラグ、
fc(最初のサイクル)の使用により達成される。
計算ステートの全てが、好ましい2線式インターフェー
ス条件を仮定して、データが出力されるようにする。
(MPEG−スタイル)シーケンス」オペレーションの
シーケンスは以下の通りである(0フラグはアダーの出
力に基づく): ステートHB及びMB0: スクラッチ=hb−maxhb; if (z) hb=0; else { hb=hb + 1 new state=DATA; } ステートMB1及びMB2: スクラッチ=vb addr−last row in mb; if (z) vb addr=0; else { vb addr=vb addr + width in blocks; new state=DATA; } ステートMB3及びMB4: スクラッチ=hmb addr−last mb in row; if (z) hmb addr=0; else { hmb addr=hmb addr + maxhb; new state=DATA; } ステートMB5及びMB6: スクラッチ=vmb addr−last mb row; if (!z) vmb addr=vmb addr + blocks per mb row; (vmb addrは、ピクチャエンドが計算から推論
される時より、ピクチャスタートトークンが検出された
後に、リセットされる。) C.3.5.2.2 「H.261用計算シーケンス」
H.261計算用シーケンスはステートMB4における
標準シーケンスから分岐する: ステートHB及びMB0:上記の通り ステートHB1及びMB2:上記の通り ステートHB3及びMB4: スクラッチ=hmb addr−last mb in row; if(z&(mod3==2))/*end of slice on right of screen*/ { hmb addr=0; new state=MB5; } else if(z)/*end of row on right of screen*/ { hmb addr=half width in blocks; new state=MB4A; } else { スクラッチ=hmb addr −last mb in half row; new state=MB4B; } ステートMB4A: vmb addr=vmb addr + blocks per mb row; new state=DATA; ステート(MB4)及びMB4B: (scratch=hmb addr −last mb in half row;) if(z&(mod3==2))/*end of slice on left of screen*/ { hmb addr=hmb addr + maxhb; new state=MB4C; } else if(z) /*end of row on left of screen*/ { hmb addr=0; new state=MB4A; } else { hmb addr=hmb addr + maxhb; new state=DATA; } ステートMB4C及びMB4D: vmb addr=vmb addr −blocks per mb row; vmb addr=vmb addr −blocks per mb row; new state=DATA; ステートMB5及びMB6:上記の通りC.3.5.3
「ピクチャスタートトークン上のオペレーション」ピ
クチャスタートトークンを受け取ると、制御はステート
PIC ST1にに進み、そこでvb addrレジス
タ(BU WADDR VBADDR)が0にリセット
される。ステートPIC ST2及びPIC ST3の
各々が各成分のために一度づつ巡視され、hmb ad
drとvmb addrを各々リセットする。次に制御
はステートOUTPUT TAILを介してIDLEに
戻る。 C.3.5.4 「DEFINE SAMPLINGト
ークン上のオペレーション」DEFINE SAMPL
INGトークンを受け取ると、成分レジスタには最も重
要でない2ビットの入力データがロードされる。それに
加えて、ステートHSAMP及びVSAMPを介して、
その成分用のmaxhbレジスタ及びmaxvbレジス
タがロードされる。更に、適切な定義サンプリングイベ
ントビットがトリガーされる(全トークンが書き込まれ
るようにするため1サイクルだけ遅延される)。
MBS及びVERTICAL MBS上のオペレーシ
ョン」HORIZONTAL MBS及びVERTIC
AL MBSの各々が到着すると、トークンに含まれる
14ビットバリューが2つのサイクルで適切なレジスタ
に書き込まれる。関連イベントビットがトリガーされ、
1サイクル分遅延される。
ィングスタンダードトークンが検出され、トップレベル
のBU WADDR COD STDレジスタに入力デ
ータが書き込まれるようにする。これがデコードされ、
(H261ではなく)nh261フラグがバッファマネ
ージャブロックにハードワイヤードされる。他の全ての
トークンが制御をステートOUTPUT TAILに動
かし、トークンが完了するまでそのステートがデータを
アクセプトする。しかしながら、それは如何なるデータ
も実際には出力しないことに注意。
器」C.4.1「展望」本発明のリードアドレス発生器
は4つのステートマシーン/データパスブロックから成
る。まず、dlineがラインアドレスを発生させ、そ
れらを他の3つの(各成分用に1つづつの)同じページ
/ブロックアドレス発生器、dramctlsに分配す
る。全てのブロックは2線式インターフェースによって
つながれる。オペレーションモードは飛び越し/順送り
型、最初のフィールド上位/下位、及び上位/下位/両
方のフレームスタートの全ての組合せを含む。表25
9、表260はdispadr制御レジスタの名前、ア
ドレス、及びリセットステートを示し、セクションC.
13において両アドレス発生器用のプログラミングの例
を示す。
line)」このブロックは各成分のためにラインアド
レス発生器を計算する。表259、表260はdlin
eにおける18ビットのデータパスレジスタを示す。
びADDR register name DISP
nameレジスタの区別はdispaddrのみにおい
てであり、DRAMから読み出される表示エリアに対し
てそのレジスタが特別であることを意味する。ADDR
nameはそのレジスタが外部バッファの構造に関す
る何かを説明することを意味する。
本的オペレーションは: if (vsync start)/*first active cycle of vsync*/ { comp=0 DISP VB CNT COMP[comp]=0; LINE[comp]=BUFFER BASE[comp]+0; LINE[comp]=LINE[comp] +DISP COMP OFFSET[comp]; while (VB CNT COMP[comp] <DISP VBS COMP[comp]) { while (line count[comp]<8) { { while (comp<3) { →OUTPUT LINE[comp] to dramctl[comp] line[comp]=LINE[comp] +ADDR HBS COMP[comp]; comp=comp+1; } line count[comp]=line count[comp] +1; } VB CNT COMP[comp]=VB CNT COMP[comp] +1; line count[comp]==0; } }
ションは下記の表に示すdispaddr制御レジスタ
により修正される。
W[成分]」これら3つのレジスタは、各成分のため
に、読まれることになっているブロックの最後のローの
中のライン数を決定する。このように、リードウインド
ーの高さは任意のライン数であってよい。ウインドーの
上端、左端及び右端がブロック境界上にあり、出力コン
トローラが余分なラインをクリップする(捨てる)こと
ができるので、これはバックアップの特徴である。
CCESS」これはdispaddr全体のためのアク
セスビットである。このロケーションに「1」を書き込
むと、dispaddrがクロックに同期して停止され
る。このステートに達すると、全てのdispaddr
レジスタに対する非同期upiアクセスを遂行しても安
全である。アクセスビットが「1」になるまで、upi
がデータパスレジスタから能動的に締め出されることに
注意。現在の表示またはデータパスオペレーションを崩
壊させることなくdispaddrに対するアクセスを
達成するために、アクセスは以下の状況下でのみ与えら
れ、リリースされる。
サイクルオペレーションを完了した場合(1回のオペレ
ーションを行った場合)、そして出力コントローラから
の「安全」信号が高い場合にのみアクセスが認められる
であろう。この信号は表示ウインドの下のスクリーン上
のエリアを表し、出力コントローラ(dispaddr
ではない)においてプログラムされる。従って、dis
paddrに対するアクセスを得ようとする前に、出力
コントローラをプログラムすることが必要であることに
注意。
高い時、もしくはvsyncの間にのみリリースされる
であろう。これは表示が活性ウインドーにあまりに近付
いてスタートしないことを保証する。
ス、ディスプレイ・エンドまで登録、dispaddr
を修正、及びアクセスをリリース等をリクエストできる
ようにする。ソフトウェアがあまりに遅く、vsync
の後までアクセスビットをリリースしない場合、dis
paddrは次の安全な期間までスタートしないであろ
う。ボーダーカラーは(つまらないものというよりむし
ろ)この「失われた」ピクチャの間に表示されるであろ
う。C.4.3.3 「DISPADDRCTLO
[7:0]」以下の説明を読む際に、飛び越しデータと
飛び越し表示の間の区別を理解することが重要である。
る。トップレベルレジスタはフィールド・ピクチャ(各
々のバッファが1つのフィールドを含む)とフレーム
(飛び越されていようとなかろうと、各々のバッファが
全体のフレームを含む)を支持する。
以下の制御ビットを含む:SYNC MODE[1:
0]飛び越し表示では、トップからボトムフィールドに
言及するvsyncsはfield infoピンによ
って区別される。このような状況では、fieldin
fo=HIGHがトップフィールドを意味する。これら
2つの制御ビットが、どのvsyncs dispad
drがバッファマネージャから新しいディスプレイバッ
ファをリクエストするかを決定し、こうして(データが
飛び越された場合)バッファ内のフィールドをディスプ
レイ上のフィールドと同期化する: 0:トップフィールド上の新しいディスプレイバッファ 1:ボトムフィールド 2:両フィールド 3:両フィールド スタートアップ時に、dispaddrはあらゆるvs
ync上のバッファマネージャからバッファを要請する
であろう。バッファが準備できるまで、dispadd
rは0(ノーディスプレイ)バッファを受け取るであろ
う。最終的に良いバッファインデックスを受け取ると、
dispaddrはそれがディスプレイ上のどこにある
かに関して何の知識も持っていない。従って、ディスプ
レイスタートアップを正しいvsyncと同期させる必
要があるかもしれない。
はどのvsyncディスプレイ上で実際スタートするか
を決定する。更に、ディスプレイバッファインデックス
を受け取った後、dispaddrはディスプレイ上の
フィールドをバッファ内のフィールドと整列させるため
に、現在のvsyncを「居残らせ」てもよい。
IVE 0:Progressive(順送り型) 1:Interlaced(飛び越し) 順送りモードでは、全てのラインがバッファのディスプ
レイエリアから読まれる。飛び越しモードでは、交互の
ラインが読まれる。リーディングが最初のラインからス
タートするか、二番目のラインからスタートするかはf
ield info次第である。(飛び越し)フィール
ド・ピクチャでは、システムが各バッファからの全ての
ラインを読みたいと望むので、このビットのセッティン
グは順送り型であろうということに注意。field
infoと第1/第2のライン間のマッピングはlsb
invert(歴史的な理由からそう名付けられた)
により反転されてもよい。
られるfield info信号を反転する。このよう
に、リーディングはフレームの正しいライン上でスター
トされ、エンコーダ、ディスプレイ、またはトップレベ
ルレジスタが採用する規定に関わりなく、ディスプレイ
に整列させられてもよい。
二度読ませる(ビット0が成分0に影響を与える等)。
これは垂直のアンサンプリングの最初の部分を形成す
る。それはQFIFから601への変換のために要求さ
れる8回の色アンサンプリングに使用される。
のため(表示されるものに対立するものとして)読まれ
るライン数の比率をプログラムするために使用される。
4:4:4のデータ1:成分0ラインの二倍、つまり
4:2:0。
mctls) ラインアドレスを通過する時、これらのブロックは一連
のページ/ラインアドレス、及びラインに沿って読むべ
きブロックを発生させる。8ブロックの最低ページ幅が
常に仮定され、結果的に生じる出力はページアドレス、
3ビットライン数、3ビットブロックスタート、及び3
ビットブロックストップアドレスで構成される。(ライ
ン数はdlineによって計算され、無修正のdram
ctlsを通して送られる。)このように、ライン5の
48ピクセルを読み取ることは、左から3番目のブロッ
ク(任意のラインに沿った任意のポイント)から始まる
ページ0xaaを形成し、DRAMインターフェースに
送られるアドレスは以下の通りであろう:ページ
=0xaa ライン =5 ブロック・スタート=2 ブロック・ストップ=7 これら3つのマシーンの各々は5個のデータパスレジス
タを持つ。これらを表259、表260に示す。各dr
amct1の基本行動は以下の通りである: ブロック・スタート=2ブロック・ストップ=7 これら3つのマシーンの各々は5個のデータパスレジス
タを持つ。これらを表259、表260に示す。各dr
amct1の基本行動は以下の通りである: while (true) { CNT LEFT=0; GET A NEW LINE ADDRESS from dline; BLOCK ADDR=input block addr+0; PAGE ADDR=input page addr+0; CNT LEFT=DISP HBS+0; while (CNT LEFT>BLOCKS LEFT) { BLOCKS LEFT=8−BLOCK ADDR; →output PAGE ADDR, start=BLOCK ADDR, stop=7. PAGE ADDR=PAGE ADDR+1; BLOCK ADDR=0; CNT LEFT=CNT LEFT−BLOCKS LEFT: } /*Last Page of line*/ CNT LEFT=CNT LEFT+BLOCK ADDR; CNT LEFT=CNT LEFT−1; → output PAGE ADDR, start=BLOCK ADDR, stop=CNT LEFT }
を開始する前にプログラムされなければならない。
用は、4:2nの飛び越しディスプレイを与え、ライン
リピートは同期化されず、トップフィールド(fiel
d info=HIGH)でスタートするであろう。図
168、「SIF(22x18のマクロブロック)ピク
チャを含むバッファ0」は典型的なSIFピクチャ用の
バッファセットアップを示す。(この例については、
C.13章で詳細に説明する)。この例において、DI
SP HBS COMPnはADDR HBS COM
Pnに等しく、同様に垂直のレジスタDISP VBS
COMPn及び等価ライトアドレス発生器レジスタが等
しい、つまり、読まれるべきエリアは全バッファである
ことに注意。
ー処理 バッファの一部(ウインドー)のみを読むようにdis
paddrをプログラムすることが可能である。ウイン
ドーのサイズは、レジスタDISP HBS、DISP
VBS、COMPONENT OFFSET、及びL
INES INLAST ROWにより各成分のために
プログラムされる。図169、「ディスプレイウインド
ーを備えたSIF成分0」は、これが如何にして(成分
0だけのために)達成されるかを示している。
の通りであろう: BUFFER BASE0=0x00 DISP COMP OFFSET0=0x2D DISP VBS COMP0=0x22 ADDR HBS COMP0=0x2C DISP HBS COMP0=0x2A 注: ・ウインドーはブロック境界上でのみスタート及びスト
ップできる。本例では、7に等しいLINES IN LAST ROWを残した(全てが8であることを意味
する)。
は実用的ではない。調和するために、他の2つの成分の
ためのウインドーエッジはブロック境界上に存在するこ
とができないであろう。
4:4:4ではない場合に停止するであろう。これはこ
れらのリードウインドーがアンサンプラと共に、これを
達成するようにプログラムされなければならないことを
意味する。 セクションC.5 「アドレス発生用のデータパス」d
ispaddr及びwaddrgenにおいて使用され
るデータパスは構造及び幅(18ビット)が同じであ
り、レジスタ数、ある種のマスキング、及びステートマ
シーンに戻されるフラグが異なるだけである。1スライ
スの回路を図174、「データパスのスライス」に示
す。レジスタは唯一ドライブAまたはBバスに指定さ
れ、それらはコントローラにおいて最大限活用されて、
使用(指定)される。全てのレジスタはCバスからロー
ド可能であるが、全ての「ロード」信号が駆動されるわ
けではない。アダーを含む全てのオペレーションはアダ
ーに通常の波及的桁上げを持たせる2つのサイクルをカ
バーする。図175、「データパスの2サイクルオペレ
ーション」において、Aバスレジスタにロードバックさ
れる2個のレジスタの2個のサイクルの合計に対するタ
イミングを示す。様々なフラグがccode発生を可能
にするために、データパス内でph0化される。同じ理
由から、データパス概略図の構造は少し普通ではない。
(A及びBバス上への)全てのレジスタ用のトライステ
ートは、セル内の結合パスを除去する1つのブロックに
おいてであるので、より良いccode発生を可能にす
る。データパスに対するupiアクセスを得るために、
アクセスビットはこれがなければupiがロックアウト
されるように設定されなければならない。Upiアクセ
スはリード及びライトとは異なる:・ライティング:ア
クセスビットが設定されると、全てのロード信号は不能
化され、一連の3バイトアドレスドライトストローブの
1つがレジスタの1つの適切なバイトに動かされる。U
piデータバスはデータパスを垂直に進み(複写され
る、2−8−8ビット)、18ビットレジスタが3個の
別のバイトライトとして書き込まれる。
用して行われる。ここでも、アクセスビットが設定され
なければならない。アドレスレジスタはAまたはBバス
上に動かされ、upiバイトセレクトが関連バスからバ
イトを取り上げ、それをupiバス上へと動かす。
がA及びBバスにそれらの値を保持するように要求し、
upiアクセスがこれらを崩壊させるので、アクセスは
いずれかのデータパスオペレーションのスタート前に、
ステートマシーンを制御することによってのみ与えられ
なければならない。
ジスタは、トップレベルアドレス0x28(msb)の
9ビット幅のキーホールを通して、キーホール用には0
x29(lsb)であり、データ用には0x2Aを通し
てアドレスされる。キーホールアドレスを表282〜表
300に示す。
rとwaddrgen)内の全てのアドレスレジスタは
ブロック化アドレスを包含する。ピクセルアドレスは決
して使用されず、ラインアドレスを包含する唯一のレジ
スタは、3個のLINES INLAST ROWレジ
スタである。
で重複される、例えば、BUFFER BASE0はd
ispaddrとwaddrgen用のアドレススペー
スにおいて発生する。これらは両方共ローディングを必
要とする2個の別々のレジスタである。これにより、表
示ウインドー処理(表示記憶装置の一部だけを読む)が
可能となり、3成分ビデオ以外のフォーマット表示が容
易になる。
ェース」C.6.1 「展望」本発明においては、空間
デコーダ、時間デコーダ、及びビデオフォーマッティン
グ部がその特別なチップのために各々データトークンブ
ロックを含む。3個全ての装置において、DRAMイン
ターフェースの機能はチップから外部DRAMへ、そし
て外部DRAMからチップへと、アドレス発生器により
供給されるブロックアドレスを介してデータを伝送する
ことである。
ドレス発生器に対して、そしてそれを通してデータが送
られる様々なブロックのクロックに対して、非同期的で
あるクロックから操作する。しかしながら、この非同期
性はクロックがほぼ同じ周波数で操作するので、容易に
処理される。
64バイトのブロック内の残りのチップとの間で伝送さ
れる(唯一の例外は時間デコーダ内の予測データであ
る)。伝送は「スイングバッファ」として知られる装置
によって行われる。これは本質的にダブルバッファされ
た配置で操作される一対のRAMであり、DRAMイン
ターフェースが1つのRAMを詰めるか空にしている間
に、チップの他の部分が他のRAMを空にするか詰めて
いる。アドレス発生器からアドレスを運ぶ別のバスが各
々のスイングバッファと連合する。
持つが、これらのスイングバッファの機能は各々の場合
により異なる。空間デコーダにおいて、コード化データ
をDRAMに伝送するために1つのスイングバッファが
使用され、DRAMからコード化データを読むために別
のスイングバッファが使用され、トークン化データをD
RAMに伝送するために3番目のスイングバッファが、
またDRAMからトークン化データを読むために4番目
のスイングバッファが使用される。時間デコーダにおい
ては、イントラもしくは予測されたピクチャデータをD
RAMに書き込むために1つのスイングバッファが使用
され、DRAMからイントラもしくは予測されたピクチ
ャデータを読むために2番目のスイングバッファが使用
され、他の2つはフォワード及びバックワード予測デー
タを読むために使用される。ビデオフォーマッティング
部においては、1つのスイングバッファがDRAMにデ
ータを伝送するために使用され、他の3つがDRAMか
らデータを読むために使用されるが、それは各々輝度
(Y)、及び赤と青の色差データ(各々Cr及びCb)
である。
のオペレーションについては、空間デコーダー文書にお
いて記載している。次のセクションは本発明によるDR
AMインターフェースの特徴、特にビデオフォーマッテ
ィング部に特有の特徴について説明する。
部DRAMインターフェース」ビデオフォーマッティン
グ部において、データはブロックで外部DRAMに書き
込まれるが、ラスターオーダーで読み出される。ライテ
ィングは空間デコーダに関して既に説明したことと正確
に同じであるが、リーディングは少々複雑である。
のデータは少なくとも8ブロックのデータが1ページに
収まるように組織化される。これら8ブロックは8個の
連続的な水平ブロックである。ラスター化する際に、8
個の連続ブロックの各々から8バイトを読み出し、それ
をスイングバッファに書き込む(つまり、8ブロックの
各々に同じロー)ことが必要である。
幅のインターフェースを仮定する)と、xアドレス(3
LSB)が0に設定され、yアドレス(3MSB)も同
様である。xアドレスは次に、最初の8バイトの各々が
読み出されるにつれて増分される。この時点で、アドレ
スの上位部分(ビット6以上−LSB=ビット0)が増
分され、xアドレス(3LSB)は0にリセットされ
る。このプロセスは64バイトが読み出されるまで繰り
返される。外部DRAMに対する16または32ビット
幅のインターフェースでは、xアドレスは1の代わりに
2または4だけ単に増分される。
まれるが、64以下のバイトが読まれるべきである(こ
れはラスターラインの始まりまたは終わりにおいて要求
される)という信号をDRAMインターフェースに送る
ことができる。これはスタート及びストップバリューを
使用して行われる。スタートバリューはアドレスの上位
部分(6ビット以上)のために使用され、ストップバリ
ューがこれと比較され、リーディングをストップすべき
であることを指示する信号が発せられる。
ング」C.7.1「序文」1つの色成分のピクセルのラ
スタースキャンがその入力にあるとすれば、本発明によ
る垂直アンサンプラは高さの2倍の出力スキャンを提供
することができる。モードセレクションにより、出力ピ
クセルバリューを多くの方法で形成することができる。
ス: ・out valid・out accept ・out data[9:0] ・out lastmode[2:0] nupdata[7:0]、upaddr、upsel
[3:0]、uprstr、upwstr ramtest tdin、tdout、tph0、tckm、tcks ph0、ph1、notrst0 C.7.3 「モード」 入力バスモード[2:0]により選択。
れない。
は10ビットバリューとして表示され、バイトとしては
表示されない。ラウンディングもしくは打ち切りはこの
ブロックでは行われない。必要に応じて、バリューは同
じ範囲を使用するために左にシフトされる。
ブロックは単にFIFO記憶装置として作用する。出力
ピクセル数は入力ピクセル数と全く同じである。バリュ
ーは2だけ左にシフトされる。
t」入力スキャン内のあらゆるラインは高さの2倍の出
力スキャンを作るために繰り返される。ここでも、ピク
セルバリューは2だけ左にシフトされる。
ンは2つの出力ラインを作り出す。この「下位」モード
では、これら2つのラインの2番目のもの(ディスプレ
イ上の下の方)が入力ラインと同じである。ペアの最初
のものは現在の入力ラインと前の入力ラインの平均であ
る。前のラインが使用されていない場合の最初の入力ラ
インの場合、入力ラインが繰り返される。
共に配置される場所を選択すべきである。
C)/2C(C+D)/2D C.7.3.4 「モード5:Upper」「下位」モ
ードと同様であるが、この場合入力ラインは出力ペアの
上位を形成し、下位は隣接する入力ラインの平均であ
る。最後の出力ラインは最後の入力ラインの繰り返しで
ある。
共に配置される場所を選択すべきである。
/2C(C+D)/2DD C.7.3.5 「モード6:Central」この
「中央」モードは彩度サンプルが輝度サンプルとの中間
にある状況に対応する。出力彩度ピクセルを輝度ピクセ
ルと共に配置するために、重み付き平均を使用して出力
ラインを形成する。
B)/4D(3B+C)/4(B+3C)/4
(3C+D)/4(C+3D)/4D C.7.4 「作用の仕方」仮想的にaとbで指定され
る2つのラインストアがある。FIFO及びrepea
tモードでは、ラインストアaだけが使用される。各ス
トアは512ピクセルまでのラインを収容できる(垂直
アップサンプリングは水平アップサンプリングの前に行
われるべきである)。FIFOモードにはラインの長さ
に関する制約がない。
line内の入力信号は、入力ラインの終わりとピクチ
ャの終わりを指示するために使用される。in las
tpelにおいては、入力信号は各ラインの最後のピク
セルと強く一致すべきである。in lastline
においては、入力信号はピクチャの最後のラインの最後
のピクセルと強く一致すべきである。
の最後のピクセルと強く一致する。repeatモード
では、各ラインはストアaに書き込まれる。ラインは次
に2度読み出される。2度目に読み出される時、次のラ
インの書き込みをスタートしてもよい。
lモードでは、ラインはストアa及びbに交互に書き込
まれる。ピクチャの最初のラインは常にストアaに書き
込まれる。2個の小さなステートマシーン、各ストア用
に1つづつ、が各々のストアに何があるか、そしてどの
出力ラインが形成されているかを記憶する。これらのス
テートからリードとライトのリクエスト、及び次のライ
ンをいつ現在のデータにオーバーライトするかを決定す
る信号がラインストアRAMに発せられる。
(lastaddr)がライトアドレスを記憶し、それ
によって、出力ラインの形成のためにライン長を提供す
る。C.7.5 「UPI」このブロックは2個の51
2x8ビットのRAMアレイを含み、それは典型的な方
法でマイクロプロセッサインターフェースを介してアク
セスされ得る。マイクロプロセッサアクセスを持つレジ
スタはない。
ラ」C.8.1「展望」本発明においては、トップレベ
ルレジスタは、各色成分のために1つづつ、3個の同じ
水平アップ・サンプラを具備する。3個全ては別々に制
御されるので、1つだけについてここで説明する。ユー
ザーの観点から、唯一の違いは各水平アップ・サンプラ
がメモリーマップ内の異なるアドレスセットにマップさ
れることである。
ングを組み合わせたオペレーションを遂行する。全てに
おいて、4つのオペレーションモードがある。
ップ・サンプラ用のアドレスマップは12個の13ビッ
ト係数レジスタと1個の2ビットモードレジスタに対応
する25のロケーションから構成される。モードレジス
タに書き込まれるナンバーが、表264に概略するよう
に、オペレーションモードを決定する。モードに応じ
て、一部または全部の係数レジスタを使用できる。等価
FIRフィルタについて下記に説明する。
nは1、2、または4クロック期間の間一定に保持され
る。各モードのためにプログラムされる実際の係数は以
下の通りである:
する時にはプログラムする必要がない。
各ラインの最初と最後のピクセルがフィルタリングの前
に繰り返される。例えば、2によってアップ・サンプリ
ングをする場合、各ラインの最初と最後のピクセルが2
度ではなく、4度複製される。フィルタ内の残留データ
が各ラインの終わりで捨てられるので、ピクセル数の出
力は常に正確に入力ストリーム内の数字の1倍、2倍ま
たは4倍である。
プルと一致して置かれるか、あるいは入力サンプルから
シフトされて置かれる。あるサンプルモードでの係数値
の幾つかの例を下記に記す。“−”は係数値が「気にし
なくてよい」であることを指示する。全ての値を16進
法で示す。
プ・サンプラのデータパスを図177に示す。
場合を取り上げ、下記に概略する。それに加えて、×2
アップ・サンプリングと×1フィルタリング(モード2
及び1)はこれの変質ケースであり、全フィルタを迂回
し(モード0)、データは図示するように、入力ラッチ
から出力ラッチへと最後のマックスを介して直接進む。
れる場合ラッチ(L)、それは4クロック期間の間保持
される。
れた)係数レジスタは、それぞれ順番に、4個の(PI
PEというラベルが貼られた)パイプラインレジスタの
2セットがクロックされるのと同時に、1クロック期間
の間乗算器の上に多重送信される。こうして、入力デー
タXnのために、最初のPIPEにバリューc00.X
n、c01.Xn、c02.Xn、c03.Xnが詰められ
るであろう。
にXnを掛け、第3の乗算器が順にその係数全てにXnを
掛けるであろう。
うことが解るであろう。
り出す。各出力ピクセルが12入力ピクセルの重み付き
バリューに依存するので(3つしか異なるバリューは存
在しないが)、これは×4アップ・サンプルされた入力
ピクセル上に12タップフィルタを実装するものとして
考えられる。
レーションは本質的に同じであるが、入力データが2ク
ロック期間の間だけ保持されることが異なる。更に、2
個だけの係数が使用され、PIPEブロックは図示した
乗算器によって短くされる。×1フィルタリング用に、
入力は1クロック期間の間だけ保持される。期待される
ように、1つの係数と1つのPIPEステージが使用さ
れる。
て少々説明する。
に、データパス幅及び係数幅(13ビットの2の補数)
が選ばれ、同じ乗算器を使用することができる。これら
の幅は水平アップ・サンプラのためにこれ以上適切なも
のはない。
プレクサは、UPIリードバックと共有される。これは
概略図の構造において(基本的にCCODE発生におけ
る困難さの故に)ある種の複雑さを導き出すが、実際の
回路はそれより小さなものである。
ャリセーブ乗算器が使用され、その結果は終わりの時点
で分解されるだけである。
の入力上にある時、入力におけるデータ量の2倍もしく
は4倍の量を作り出すことができる1つの2線式インタ
ーフェースステージと見なすことができる。UPIを介
してプラグラムされるモードが、プログラム可能シフト
レジスタ(bob)の長さを決定する。選択されるモー
ドはクロック期間毎、2クロック期間毎、あるいは4ク
ロック期間毎に出力パルスを生み出す。次にこれは主ス
テートマシーンを制御するが、そのステートは更に(2
線式インターフェース用に)in valid、out
accept、及び信号in lastによって決定
される。この信号は垂直アップ・サンプラから送られ、
各ラインの最後のピクセル用に高くなる。これは各ライ
ンの最初と最後のピクセルが2度複製されるようにし、
(ラインが完了した直後に、パイプラインが部分的に処
理された冗長データを含む)ライン間のパイプラインを
クリアする。
C.9.1 「展望」本発明における色空間コンバータ
(CSC)は入ってくる9ビットデータに3×3マトリ
ックスのかけ算を行い、その後加算を行う:
タとなり、cnmが係数である。概略図において名前は
信号名に対応するので、マトリックス係数に関して、少
々型破りのネーミングは慎重にするべきである。
実行することができるが、これらの変換の限定されたセ
ットがトップレベルレジスタにおいて使用される。デザ
イン色空間変換は以下の通りである:ER,EG,EB
→ Y,CR,CBR,G,B → Y,CR,CB
Y,CR,CB → ER,EG,EBY,CR,CB →
R,G,B式中、R、G及びBは範囲(0..51
1)内にあり、他の全ての量は(32..470)の範
囲にある。トップレベルレジスタCSCに対する入力
は、Y、CR、CBであるので、これらの式の内3番目と
4番目の式だけが関連する。
ットデータ用には、全ての出力がアルゴリズムの全浮動
小数点シミュレーションにより作られるバリューの+1
または−1ビット以内であるように選ばれた(これは達
成し得る最良の精度である)。これはcx0−cx3用
に13ビットの2の補数係数を与え、cx4用に14ビ
ットの2の補数係数を与えた。全てのデザイン変換用の
係数を下記に、10進法と6進法の両方で記す。
ER+0.587EG+0.0114EBそして、以下の
色差式から計算される:CR=ER−YCB=EB−YR、
G及びBにおける式はこれらの量の全範囲を考慮した
後、これらから引き出される。
リセット後、c01、c12、c23が1に設定され、
他の全ての係数が0に設定される。こうして、y0=x
0、y1=x1、y2=x2、及び全てのデータが無変
更のまま送られる。色空間変換を選択するには、単に
(例えば、表270、表271からの)適当な係数をア
ドレスマップ内に指定されるロケーションに書き込むだ
けでよい。
ta0..2に対応し、y0..2はout data
0..2に対応する。ユーザーはCSCに対する入力デ
ータを4:4:4にアップ・サンプルしなければならな
いことを覚えておくべきである。これを怠ると、色空間
変換が何の意味も持たなくなるばかりでなく、チップも
ロックするであろう。
力プラス(またはマイナス)定数の可能な組み合わせか
ら形成され得ることである。このように、所定の色空間
変換のために、出力オーダーを変換マトリックス(係数
が書き込まれるアドレス)内のローをスワッピングする
ことにより変更できる。
ために、CSCが作動することは保証されている。他の
変換を用いる場合、ユーザーは以下の事項を覚えておか
ねばならない:1)計算の中間結果が(サインビットを
除き)10ビット以上の精度を要求する場合、ハードウ
ェアは作動しないであろう。
ートされる。つまり、0以下の数が0で置き換えられ、
511以上の数が511で置き換えられる。サチュレー
ションロジックの実行は、結果がわずかに511を越え
ているか、わずかに0以下であると仮定する。CSCが
不正確にプログラムされた場合、出力が常に(あるいは
ほとんどの場合)サチュレートするように見えることが
共通のきざしであろう。
造を図178に図示するが、スペース上の制約から、3
つの「コンポーネント」の内2つだけを示した。図中、
「レジスタ」もしくはRはマスター・スレーブレジスタ
を示し、「ラッチ」もしくはLは透明ラッチを示す。
リード・ライトUPIレジスタにロードされる。オペレ
ーションを理解するために、左端の「コンポーネント」
(出力out data0を作り出す)に関して、以下
のシーケンスを考慮する:1)データは入力x0−2
(in data0−2)に到達する。これは入力色空
間における1つのピクセルを表す。これがラッチされ
る。
インレジスタにラッチする。x1及びx2が1つのレジ
スタ上を移動する。
c01)に加算し、次のパイプラインレジスタにラッチ
する。x2が1つのレジスタ上を移動する。
結果に加算し、(x1.c01+x2.c02+x3.
c03)を生み出す。その結果を次のパイプラインレジ
スタにラッチする。
ータは乗算器を通してキャリセーブフォーマットの中に
保持されているので、このアダーも乗算器チェインから
のデータを分解するために使用される。その結果を次の
パイプラインレジスタにラッチする。
チュレートすることである。これを行うために、部分的
結果が分解アダーからサチュレートブロックに送られ
る。
式において明記したように、その結果がy0であること
が解る。同様に、y1とy2が同じ方法で形成される。
3個の乗算器を使用した。これにより効率的なレイアウ
トを達成でき、部分的結果がデータパスを下り、同じ入
力データが各出力に1つづつの3つの並列する同じデー
タパスを横切って送られた。セクションC.9.2にお
いて説明したリセットステートを達成するために、3つ
の「コンポーネント」の各々を異なる方法でリセットし
なければならない。3セットの概略図と3つのわずかに
異なるレイアウトを持つことを避けるため、これはトッ
プレベルで高または低につながれるUPIレジスタに対
する入力を持つことにより達成される。
たない。にもかかわらず、各々のパイプラインステージ
は2線式インターフェースステージであるので、それら
の関連制御(in accept=out accep
t r+lin validr)を持つ有効ラッチ及び
アクセプトラッチのチェインがある。従って、CSCは
5ステージの深さの2線式インターフェースであり、ス
トールされた場合10レベルのデータを保持することが
できる。
ック発生器から外れるので、CSCの出力は再同期化ラ
ッチを含む。
ラ」C.10.1「序文」本発明による出力コントロー
ラは以下の機能を果たす: ・3モードの1つにおいてデータを提供する ・24ビット 4:4:4 ・16ビット 4:2:2 ・8ビット 4:2:2 ・vsyncとhsyncパルスにより、またプログラ
ムされたタイミングレジスタにより定義されるビデオ表
示ウインドーにデータを整列させる ・必要に応じて、ビデオウインドーのまわりのボーダー
を加える C.10.2 「ポート」入力2線式インターフェー
ス: ・in valid ・in accept ・in data[23:0]出力2線式インターフェ
ース: ・out valid ・out accept ・out data[23:0] ・out active ・out window・out comp[1:0]
in vsync、in hsyncnupdata[7:
0]、upaddr[4:0]、upsel、rst
r、wstr、tdin、tdout、tph0、tc
km、tcks chiptest、ph0、ph1、
notrst0、notrst1 C.10.3 「アウトモード」出力のフォーマットは
opmodeレジスタに書き込むことにより、選択され
る。
ドは24ビットの4:4:4RGBもしくはYCrCb
である。入力データは直接出力に進む。
れらのモードは4:2:2のYCrCbを表す。In
data[23:16]がYであると仮定すると、in
data[15:8]はCrであり、indata
[7:0]はCbである。
ビットのYCrCbにおいて、Yはout data
[15:8]上に表示される。CrとCbはout data[7:0]上で、Cbを最初にして、時分割多
重化される。Outdata[23:16]は使用され
ない。
ットのYCrCbにおいて、Y、Cr及びCbはCb、
Y、Cr、Yのオーダーで、out data[7:
0]上で時分割多重化される。Out data[2
3:16]は使用されない。
デオディスプレイウインドーにデータを置くために、以
下のレジスタが使用される。
最初のラインの前に、vsyncパルスに続くhsyn
cパルス数 ・hdelay−hsyncと、ビデオまたはボーダー
の最初のピクセルとの間のクロックサイクル数 ・height−ラインにおけるビデオウインドーの高
さ ・width−ピクセルにおけるビデオウインドーの幅 ・north、south−ラインにおけるビデオウイ
ンドーの上及び下の各々のボーダーの高さ、 ・west、east−ピクセルにおけるビデオウイン
ドーの左及び右に対する各々のボーダー幅最小のvde
layは0である。最初のhsyncは最初の活動的ラ
インである。hdelayにプログラムされ得る最小値
は2である。しかしながら、inhsyncから最初の
活動的出力ピクセルまでの実際のディレイはhdela
y+1サイクルであることに注意。
きる。ボーダーの色はレジスタにborder r、b
order g、及びborder bを書くことによ
って選択される。ボーダーの外側のエリアの色はレジス
タにblank r 、blank g、blank
bを書くことによって選択される。出力モード1及び2
において遂行されるマルチプレクシングもボーダー及び
ブランクコンポーネントに影響を与えるであろう。つま
り、これらのレジスタのバリューはin data[2
3:16]、in data[15:8]、及びind
ata[7:0]に対応する。
activeは出力データが活性ウインドー、つまりビ
デオデータまたはボーダーの一部であることを指示す
る。
デオウインドーの一部であることを指示する。
出力モード1及び2のout data[7:0]の上
に存在することを指示する。モード1においては、0=
Cb、1=Crである。モード2においては、0=Y、
1=Cr、2=Cbである。C.10.5 「2線式モ
ード」本発明の2線式モードは2線式レジスタに1を書
き込むことによって選択される。それはリセットに引き
続いては選択されない。2線式モードでは、出力タイミ
ングレジスタとsync信号が無視され、ブロックを通
るデータフローはout acceptによって制御さ
れる。通常のオペレーションでは、out accep
tは両方につながれるべきであることに注意。
のアクセスを含むブロックの出力上にスーパースノーパ
がある。C.10.7 「作用の仕方」2個の同じダウ
ンカウンタがディスプレイにおける現在の位置を覚えて
いる。Vcountはhsyncs上で減少し、vsy
nc上の、あるいはその終末カウントにおける適当なタ
イミングレジスタからロードする。Hcountはあら
ゆるピクセル上で減少し、hsync上で、あるいはそ
の終末カウントにおいてロードする。出力モード2で
は、1つのピクセルが2個のクロックサイクルに対応す
ることに注意。
器」C.11.1「展望」本発明におけるトップレベル
レジスタは、1つはPICTURE CLKを発生させ
るため、1つはAUDIO CLKを発生させるため
に、2個の同じクロック分周器を含む。クロック分周器
は同じであり、別々に制御される。従って、1つだけを
ここで取り上げて説明する。ユーザーの観点から、唯一
の違いは各クロック分周器の除数レジスタがメモリーマ
ップ内のアドレスの異なるセットにマップされることで
ある。
分配クロック周波数を提供することであり、偶数のマー
ク対スペース比のための要件はない。
範囲にあることが求められるので、最小除数が16であ
るという制約付きで24ビットを用いて表すことができ
る。これはクロック分周器が除数/2を用いて、(1つ
のsysclkサイクル内に)等しいマーク対スペース
比を接近させるであろうからである。利用できる最大ク
ロック周波数はsysclkであるので、利用できる最
大分配周波数はsysclk/2である。更に、4個の
カウンタが縦続で使用されるので、除数/2は決して8
以下であってはならず、そうでなければ分配されるクロ
ック出力は正のパワーレールに駆動されるであろう。
各クロック分周器用のアドレスマップは3個の8ビット
除数レジスタと1個の1ビットアクセスレジスタに対応
する4つのロケーションから構成される。クロック分周
器は無活動のものをパワーアップし、その除数レジスタ
に対するアクセス完了によって活性化される。
に従ったオーダーで書き込まれてよい。クロック分周器
はそのアクセスビットにおける同期化0〜1遷移を感知
することにより活性化される。遷移が初めて感知される
と、クロック分周器はリセット状態から出て、分配され
たクロックを発生させる。(除数も変更されていると仮
定して)それに続く遷移は、クロック分周器を単にその
新しい周波数on−the−flyにロックさせるであ
ろう。一度活性化されると、クロック分周器を停止させ
る方法はチップRESET以外にない。
る。
クロック分周器は、1カウンタが桁上げするにつれて、
それが次のカウンタを順に活性化させるように縦続され
る4個の22ビットカウンタとして実装される。カウン
タは桁上げの前に除数/4のバリューをカウントダウン
するので、各カウンタがそれを順に取り上げ、分配クロ
ック周波数のパルスを発生させるであろう。
ードし、これがカウントダウンされてほぼ等しいマーク
対スペース比分配クロックを作り出す。各々のカウンタ
が前のカウンタにより活性化される時、除数レジスタか
ら再ロードするにつれて、これは単に除数の内容を変更
することによって、分配クロック周波数をオン・ザ・フ
ライで変更することができるようにする。
ーを正確に制御し、各カウンタが別個のクロックセット
によってクロックされ得るようにするため、それ自身の
独立したクロック発生器によってクロックされる。
バリューの発生器を制御し、更にPLLからクロック発
生器へと正しいソースクロックを多重送信する。カウン
タは除数のバリューに応じて異なるクロックによりクロ
ックされる。これは異なる除数バリューが、PLLから
提供されるクロックの異なる組合せを用いてそのエッジ
が配置される分配クロックを作り出すであろうからであ
る。
ることによりクロック分周器をテストすることができ
る。これはPLLによって発生されるクロックに対抗す
るものとして、sysclkによりクロックされるクロ
ック分周器におけるクロック化ロジックの全てを強制す
る効果を持つ。
に設計されているので、チップが上記のように動かされ
る限り、標準のJTAGアクセスを用いて引続きテスト
され得る。
一方、CHIPTESTがHighに保持される場合、
クロック分周器の機能性は保証されない。
プ」C.12.1「トップレベルアドレスマップ」注:
−1)表273〜表281に記載するトップレベルアド
レスマップ用のレジスタはデザインの中で使用される名
前である。それらは必ずしもデータシートに現れる名前
でなくてもよい。
で、ここにリストアップするロケーションの多くはテス
ト用のみのロケーションを含む。
アドレス発生器キーホール表に関する注:1)アドレス
発生器キーホール内の全てのレジスタは、それらの幅に
関わらず、4バイトのアドレススペースを取る。省略ア
ドレス(0x00、0x04等)は常に0を読み返す。
はwaddrgen)のアクセスビットはこのキーホー
ルにアクセスする前に設定されなければならない。
C.13.1 「序文」以下の様式化されたコード片
は、ライトアドレス発生器からのピクチャサイズ割り込
みに答えるために必要なプロセシングを示す。ピクチャ
サイズパラメータは、HORIZONTAL MBSト
ークン、VERTICAL MBSトークン、及び(各
コンポーネントのために)DEFINE SAMPLI
NGトークンを送り、その結果としてライトアドレス発
生器割り込みを生じさせることにより、on−the−
flyで変更できることに注意。これらのトークンは如
何なるオーダーで到着してもよく、一般的に、いずれも
がピクチャサイズパラメータの全ての再計算を必要とす
るべきである。しかしながら、セットアップ時に、計算
を実行する前に、全てのイベントの到着を検出する方が
効率的であろう。
ータレジスタに特別なバリューを書き込むことができる
ので、トークンに答える割り込み処理に依存する必要が
ない。このため、SIFピクチャ用の適当なレジスタバ
リューも与えられる。
用の割り込み処理5個のピクチャサイズイベントがあ
り、各々の応答の主たるものを下記に記す: それに加えて、一貫したピクチャサイズパラメータを保
持するためには、以下の計算が必要である: if (hmbs event||vmbs event|| def samp0 event|| def samp1 event|| def samp2 event) { for (i=0; i<max component; i++) { hbs[i]=addr hbs[i]= (maxhb[i]+1) mbs wide; half width in blocks[i]= ((maxhb[i]+1) mbs wide)/2; last mb in row[i]= hbs[i]−(maxhb[i]+1); last mb in half row[i]= half width in blocks[i] −(maxhb[i]+1); last row in mb[i]= hbs[i] maxvb[i]; blocks per mb row[i]= last row in mb[i] + hbs[i]; last mb row[i]= blocks per mb row[i] (mbs high−1); ピクチャサイズパラメータに答えて、(表示ウインドー
サイズ等の)dispaddrレジスタバリューを修正
することが厳密に必要であるが、これはアプリケーショ
ンの必要条件に依存することが望ましい。
スタバリュー」SIF用の上記割り込み処理の後、全て
のピクチャサイズレジスタに含まれるバリュー、4:
2:0ストリームは以下の通りである: C.13.3.1 「一次バリュー」 BU WADDR MBS WIDE=0x16 BU WADDR MBS HIGH=0x12 BU WADDR COMP0 MAXHB=0x01 BU WADDR COMP1 MAXHB=0x00 BU WADDR COMP2 MAXHB=0x00 BU WADDR COMP0 MAXVB=0x01 BU WADDR COMP1 MAXVB=0x00 BU WADDR COMP2 MAXVB=0x00 C.13.3.2 「二次バリュー−計算後」 BU WADDR COMP0 HBS=0x2C BU WADDR COMP1 HBS=0x16 BU WADDR COMP2 HBS=0x16 BU ADDR COMP0 HBS=0x2C BU ADDR COMP1 HBS=0x16 BU ADDR COMP2 HBS=0x16 BU WADDR COMP0 HALF WIDTH
IN BLOCKS=0x16 BU WADDR COMP1 HALF WIDTH
IN BLOCKS=0x03 BU WADDR COMP2 HALF WIDTH
IN BLOCKS=0x03 BU WADDR COMP0 LAST MB IN
ROW=0x2A BU WADDR COMP1 LAST MB IN
ROW=0x15 BU WADDR COMP2 LAST MB IN
ROW=0x15 BU WADDR COMP0 LAST MB IN
HALF ROW=0x14 BU WADDR COMP1 LAST MB IN
HALF ROW=0x0A BU WADDR COMP2 LAST MB IN
HALF ROW=0x0A BU WADDR COMP0 LAST ROW I
N MB=0x2C BU WADDR COMP1 LAST ROW I
N MB=0x0 BU WADDR COMP2 LAST ROW I
N MB=0x0 BU WADDR COMP0 BLOCKS PER
MB ROW=0x58 BU WADDR COMP1 BLOCKS PER
MB ROW=0x16 BU WADDR COMP2 BLOCKS PER
MB ROW=0x16 BU WADDR COMP0 LAST MB RO
W=0x5D8 BU WADDR COMP1 LAST MB RO
W=0x176 BU WADDR COMP2 LAST MB RO
W=0x176 これらのバリューがセットアップ時にはっきりと書き込
まれることになっている場合、ほとんどのロケーション
の多重バイト特性を考慮に入れなければならないことに
注意。
ムは、長い間望まれてきたプロセシングステージにおけ
る制御及び/もしくはデータ機能のための、複数のプロ
セシングステージ及び対話式インターフェイシングトー
クンの形態での万能順応装置を持つ改良システムであ
り、それによってプロセシングステージは構成及びプロ
セシングのフレキシビリティを高められる。
マシーンとして配置される2線式インターフェースによ
り相互接続される複数のステージを持つ、多標準ビデオ
減圧装置を具備する。制御トークン及びデータトークン
はトークンフォーマットで制御とデータの両方を運ぶた
めに1つの2線式インターフェースを通過する。トーク
ンデコード回路は、そのステージに関する制御トークン
として特定のトークンを認識し、パイプラインに沿って
未認識の制御トークンを送るために、特定のステージに
配置される。再配置プロセシング回路は選ばれたステー
ジに配置され、特定されたデータトークンを処理するた
めに該かるステージを再配置するための認識済み制御ト
ークンに反応する。該かるシステムを実装するために、
広範囲に亙る独特なサブ支持システム回路とプロセシン
グ技術を開示する。
示して説明してきたが、発明の精神及び範囲を逸脱する
ことなく、様々な修正が可能であることが自明であろ
う。従って、添付クレームによる制限以外は、図示した
形態によって本発明が制限されるものではない。
複数の処理ステージと、処理ステージの中で制御、デー
タ機能を実行する相互作用インターフェース制御トーク
ンの形態のユニバーサル適応ユニットを具備し、処理ス
テージが構成、処理において向上した柔軟性を与えられ
ているパイプラインシステムが提供される。
の6段パイプラインの6サイクルを示す図。
に応答して圧縮、及び伸長が出来る方法を示すために各
ステージが二次データ格納部を含むパイプラインを示す
図。
に応答して圧縮、及び伸長が出来る方法を示すために各
ステージが二次データ格納部を含むパイプラインを示す
図。
するパイプラインの好ましい実施例のステージ間のデー
タ転送の制御を示す図。
するパイプラインの好ましい実施例のステージ間のデー
タ転送の制御を示す図。
するパイプラインの好ましい実施例のステージ間のデー
タ転送の制御を示す図。
するパイプラインの好ましい実施例のステージ間のデー
タ転送の制御を示す図。
ラインステージの基本的実施例及び2配線転送制御を有
する2個の連続するパイプライン処理ステージを示すブ
ロック図。
タイミング信号と、入出力データと、内部制御信号間の
関係を示すタイミング図の一例。
るタイミング信号と、入出力データと、内部制御信号間
の関係を示すタイミング図の一例。
イプラインステージの一例を示すブロック図。
プラインステージのブロック図。
の2配線転送制御の使用を示すブロック図。
の2配線転送制御の使用を示すブロック図。
る2相クロックと、2配線転送制御信号と、その他の内
部データ及び制御信号を示すタイミング図の一例。
る2相クロックと、2配線転送制御信号と、その他の内
部データ及び制御信号を示すタイミング図の一例。
ップ。
ップ。
プ。
図。
ク図。
図。
ッダ発生器と、追加ワード発生器と、出力ラッチの関係
を示すブロック図。
ロック図。
トを示す挿絵図。
図。
装置を示すブロック図。
図。
クンを示す図。
図。
図。
図。
さを持つDRAM(9ビットアドレス)の例を示す図。
示す図。
ラメータを示す図。
ータを示す図。
ータを示す図。
を示す図。
示す図。
を示す図。
りを示す図。
リームを示す図。
算する方法を示す図。
図。
かを示す図。
かを示す図。
かを示す図。
図。
ドレスを抽出するかを示す図。
を示す図。
パラメータを示す図。
メータを示す図。
メータを示す図。
ローチャートを示す図。
ック図。
図を示す図。
ェースを示す図。
示す図。
図。
図。
ブロック図。
示す図。
スタ群のブロック図。
を示す図。
図。
図。
含むバッファ0を示す図。
ット例を示す図。
含むバッファ0を示す図。
ロセッシングユニット、39…アクション識別部、41
…出力ラッチ、43,44…レジスタ。
Claims (4)
- 【請求項1】 入力情報ストリームを受け入れる入力処
理ステージ及び出力情報ストリームを生成する出力処理
ステージを含む複数の処理ステージを含むデータ処理シ
ステムであって、 前記入力処理ステージは前記入力情報ストリームに基づ
き、前記複数の処理ステージ間の制御及び/又はデータ
機能のための1又は2以上のトークンを発生するもので
あり、 前記複数の処理ステージのうち1又は2以上の処理ステ
ージは1又は2以上のトークンを発生し及び/又は変換
するものであり、 前記トークンは、可変長トークン又は固定長トークンで
あり、かつ前記入力情報ストリームに含まれるデータを
含んでおり、 前記トークンの少なくとも1つは、前記入力情報ストリ
ームの少なくとも1つに含まれるデータに関する制御情
報を含み、 前記処理ステージの少なくとも1つは前記制御情報に応
じて再構成され、 該再構成された処理ステージは前記制御情報に応じて前
記入力情報ストリームの少なくとも1つに含まれるデー
タを含む1つ又は2以上のトークンを処理する、 ことを特徴とするデータ処理システム。 - 【請求項2】 請求項1記載のデータ処理システムであ
って、 前記入力情報ストリームは符号化データを含み、 前記制御情報は前記前記符号化データに対応する工業規
格を識別し、 前記制御情報を含むトークンは、該識別された工業規格
に従って、前記処理ステージの少なくとも1つを、前記
可変長トークン又は固定長トークンの少なくとも1つに
含まれる前記符号化データを復号するように再構成す
る、 ことを特徴とするデータ処理システム。 - 【請求項3】 前記工業規格は、MPEG又はJPEG
であることを特徴とする請求項2記載のデータ処理シス
テム。 - 【請求項4】 請求項1記載のデータ処理システムであ
って、 前記入力情報ストリームは符号化データを含み、 前記制御情報は前記符号化データの複号の同期のための
タイミング情報を含み、 前記制御情報を含むトークンは、前記タイミング情報に
応じて、前記処理ステージの少なくとも1つを、前記可
変長トークン又は固定長トークンの少なくとも1つに含
まれる前記符号化データを復号するように再構成する、 ことを特徴とするデータ処理システム。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9405914A GB9405914D0 (en) | 1994-03-24 | 1994-03-24 | Video decompression |
GB9504046A GB2288520B (en) | 1994-03-24 | 1995-02-28 | Pipeline |
GB9405914.4 | 1995-02-28 | ||
GB9504046.5 | 1995-02-28 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7090012A Division JPH0897725A (ja) | 1994-03-24 | 1995-03-24 | パイプラインシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003143018A JP2003143018A (ja) | 2003-05-16 |
JP3423942B2 true JP3423942B2 (ja) | 2003-07-07 |
Family
ID=26304580
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7090012A Pending JPH0897725A (ja) | 1994-03-24 | 1995-03-24 | パイプラインシステム |
JP2002137983A Expired - Lifetime JP3423942B2 (ja) | 1994-03-24 | 2002-05-14 | データ処理システム |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7090012A Pending JPH0897725A (ja) | 1994-03-24 | 1995-03-24 | パイプラインシステム |
Country Status (5)
Country | Link |
---|---|
JP (2) | JPH0897725A (ja) |
KR (1) | KR100304511B1 (ja) |
CN (1) | CN1114489A (ja) |
CA (1) | CA2145423A1 (ja) |
GB (1) | GB2288520B (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3263807B2 (ja) * | 1996-09-09 | 2002-03-11 | ソニー株式会社 | 画像符号化装置および画像符号化方法 |
US20030159152A1 (en) | 2001-10-23 | 2003-08-21 | Shu Lin | Fast motion trick mode using dummy bidirectional predictive pictures |
US8284844B2 (en) | 2002-04-01 | 2012-10-09 | Broadcom Corporation | Video decoding system supporting multiple standards |
US8731054B2 (en) * | 2004-05-04 | 2014-05-20 | Qualcomm Incorporated | Method and apparatus for weighted prediction in predictive frames |
KR100711088B1 (ko) * | 2005-04-13 | 2007-04-24 | 광주과학기술원 | 동화상 인코더를 위한 정수 변환 장치 |
US8401073B2 (en) | 2007-03-28 | 2013-03-19 | Panasonic Corporation | Inverse quantization circuit, inverse quantization method and image reproducing apparatus |
US8194977B2 (en) * | 2008-12-09 | 2012-06-05 | Microsoft Corporation | Remote desktop protocol compression acceleration using single instruction, multiple dispatch instructions |
US20150049099A1 (en) | 2013-08-13 | 2015-02-19 | Mediatek Inc. | Data processing apparatus for transmitting/receiving compressed pixel data groups of picture over display interface and related data processing method |
GB2534420B (en) * | 2015-01-26 | 2021-01-13 | Advanced Risc Mach Ltd | Data processing systems |
CN112817889B (zh) * | 2019-11-15 | 2024-06-21 | 合肥美亚光电技术股份有限公司 | 一种数据的采集方法及系统 |
CN111064912B (zh) * | 2019-12-20 | 2022-03-22 | 江苏芯盛智能科技有限公司 | 一种帧格式变换电路与方法 |
CN113747060B (zh) * | 2021-08-12 | 2022-10-21 | 荣耀终端有限公司 | 图像处理的方法、设备、存储介质 |
CN114580628A (zh) * | 2022-03-14 | 2022-06-03 | 北京宏景智驾科技有限公司 | 一种神经网络卷积层的高效量化加速方法及硬件电路 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2059724B (en) * | 1979-09-28 | 1984-04-04 | Racal Datacom Ltd | Data transmission systems |
JPS61194989A (ja) * | 1985-02-22 | 1986-08-29 | Mitsubishi Electric Corp | 静止画伝送装置 |
US4680581A (en) * | 1985-03-28 | 1987-07-14 | Honeywell Inc. | Local area network special function frames |
GB8618060D0 (en) * | 1986-07-24 | 1986-12-17 | Gec Avionics | Data processing apparatus |
EP0255767A3 (en) * | 1986-07-31 | 1990-04-04 | AT&T Corp. | Selective broadcasting arrangement for local area networks |
JPH0695986A (ja) * | 1992-06-19 | 1994-04-08 | Westinghouse Electric Corp <We> | リアルタイムデータ・イメージングネットワークシステム及びその操作方法 |
DE69229338T2 (de) * | 1992-06-30 | 1999-12-16 | Discovision Associates, Irvine | Datenpipelinesystem |
FR2695278B1 (fr) * | 1992-08-26 | 1994-10-14 | Euro Cp Sarl | Procédé d'échange d'informations, en particulier entre équipements d'un local, et unité fonctionnelle et installation s'y rapportant. |
-
1995
- 1995-02-28 GB GB9504046A patent/GB2288520B/en not_active Expired - Lifetime
- 1995-03-23 CA CA002145423A patent/CA2145423A1/en not_active Abandoned
- 1995-03-23 KR KR1019950006170A patent/KR100304511B1/ko not_active IP Right Cessation
- 1995-03-24 CN CN95103200A patent/CN1114489A/zh active Pending
- 1995-03-24 JP JP7090012A patent/JPH0897725A/ja active Pending
-
2002
- 2002-05-14 JP JP2002137983A patent/JP3423942B2/ja not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
松本恵治ほか,画像処理分野をねらったデータフロー型プロセサLSI,日経エレクトロニクス,日本,日経マグロウヒル社,1984年 4月 9日,NIKKEI ELECTRONICS 1984.4.9,pp181−218 |
Also Published As
Publication number | Publication date |
---|---|
JP2003143018A (ja) | 2003-05-16 |
GB2288520B (en) | 1998-10-14 |
GB9504046D0 (en) | 1995-04-19 |
JPH0897725A (ja) | 1996-04-12 |
GB2288520A (en) | 1995-10-18 |
KR100304511B1 (ko) | 2001-12-01 |
KR950033894A (ko) | 1995-12-26 |
CN1114489A (zh) | 1996-01-03 |
CA2145423A1 (en) | 1995-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6263422B1 (en) | Pipeline processing machine with interactive stages operable in response to tokens and system and methods relating thereto | |
US20020066007A1 (en) | Multistandard video decoder and decompression system for processing encoded bit streams including pipeline processing and methods relating thereto | |
JP3302527B2 (ja) | 再構成可能なプロセッシングシステム | |
EP0674443A2 (en) | Start code detector for image sequences | |
US7095783B1 (en) | Multistandard video decoder and decompression system for processing encoded bit streams including start codes and methods relating thereto | |
JP3170744B2 (ja) | スタートコード検出器 | |
JP3423942B2 (ja) | データ処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090425 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090425 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100425 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110425 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110425 Year of fee payment: 8 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110425 Year of fee payment: 8 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110425 Year of fee payment: 8 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110425 Year of fee payment: 8 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110425 Year of fee payment: 8 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110425 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120425 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120425 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130425 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140425 Year of fee payment: 11 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |