JPH08228343A - スタートコード検出器 - Google Patents

スタートコード検出器

Info

Publication number
JPH08228343A
JPH08228343A JP7266752A JP26675295A JPH08228343A JP H08228343 A JPH08228343 A JP H08228343A JP 7266752 A JP7266752 A JP 7266752A JP 26675295 A JP26675295 A JP 26675295A JP H08228343 A JPH08228343 A JP H08228343A
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.)
Pending
Application number
JP7266752A
Other languages
English (en)
Inventor
Adrian Philip Wise
フィリップ ワイズ エイドリアン
Helen Rosemary Finch
ローズマリー フィンチ ヘレン
William Philip Robbins
フィリップ ロビンス ウィリアム
Kevin James Boyd
ジェームズ ボイド ケビン
William Sotheran Martin
ウィリアム ソザラン マルティン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Discovision Associates
Original Assignee
Discovision Associates
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GB9405914A external-priority patent/GB9405914D0/en
Application filed by Discovision Associates filed Critical Discovision Associates
Publication of JPH08228343A publication Critical patent/JPH08228343A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/423Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

(57)【要約】 【目的】本発明は複数の異なる符号化入力信号を復号及
び/又は伸長するように機能する伸長方法及び装置の改
良に関する。 【構成】多重規格ビデオ復号化装置は2配線インターフ
ェースにより接続され、パイプライン処理装置として配
置された複数の処理ステージ36を有する。制御トーク
ンとデータトークンは制御とデータの両方をトークンフ
ォーマットで送信するために2配線インターフェース3
1,42を介して送られる。トークン復号化回路33は
特定のトークンを特定ステージ固有の制御トークンとし
て認識するためと、認識されなかった制御トークンをパ
イプラインに沿って送るためにこの特定のステージに置
かれている。再構成処理回路は選択されたステージに置
かれ認識された制御トークンに応答してその様なステー
ジを再構成し認識された識別済みのデータトークンを扱
う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、複数の異なる符号化
入力信号を復号及び/又は伸長するように機能する伸長
方法及び装置のシステムに関する。以下に記載する実施
例は説明的なものとして選択されたものであり、複数の
符号映像の標準を符号化に関する。特に、この実施例は
JPEG、MPEG及びH.261として知られる公知
の標準の一つの復号化に関する。
【0002】本発明のシリアルパイプライン処理方式
は、独特且つ特殊な相互作用(インタラクティブ)のイ
ンターフェーストークンを制御トークンとデータトーク
ンの形態で、再構成可能パイプラインプロセッサとして
位置付けされている複数の適応伸長回路等に実施するた
めに使用される1個の2線バスから構成される。
【0003】
【従来の技術】従来技術の一つに、米国特許第5,21
6,724号明細書に記載されているものがある。この
装置は複数の計算モジュールから成り、好ましい実施例
では、合計4個の計算モジュールが並列に接続されてい
る。個々の計算モジュールは、処理装置と、デュアルポ
ートメモリと、スクラッチパッドメモリと、アービトレ
ーション機構で構成されている。第1のバスはこれらの
計算モジュールとホストプロセッサを接続する。この装
置は、ホストプロセッサと計算モジュールに第2のバス
を介して接続された共用メモリを有する。
【0004】米国特許第4,785,349明細書に
は、コンパクトディスク媒体に記録され従来のビデオフ
レーム速度で複号される、送信用の完全フォーマットを
開示している。圧縮中、フレームの領域は、各領域固有
の最適なフィルコーディング方法を選択するために個々
に分析される。領域復号化時間を推定し圧縮閾値を最適
化する。領域の大きさと位置を示す領域記述コードはデ
ータストリームの第1セグメントでグループ化される。
領域の画素振幅を示す領域フィルコードはフィルコード
の種類によりグループ化され、データストリームのその
他のセグメントに置かれる。各データストリームセグメ
ントはそれぞれの統計分布に応じて符号化された可変長
を有し、データフレーム形成のためにフォーマット化さ
れる。フレームのバイト数は逆フレーム列分析により決
定される補助データの追加により少なくなり、コンパク
トディスクの再生中の一時停止を最少にするために選択
される平均数を提供する。これによりコンパクトディス
クの予測不可能なシークモード待機時間特性を回避す
る。デコーダは、データストリームのそれぞれのセグメ
ントを別々に可変長符号するためのコードストリームの
統計的情報に応答する可変長のデコーダを含む。領域位
置データは領域記述データから得られ、フィルコードの
種類(例えば相対値、絶対値、2項及びDPCM)を検
出することにより選ばれる複数の領域特定デコーダに対
して領域フィルコードと共に供給される。そして復号さ
れた領域画素は、後の表示用にビットマップ形態で格納
される。
【0005】米国特許第4,922,341明細書に
は、ディジタルTV信号用の画像データをシーン・モデ
ルを利用して縮小する方法が開示されている。ここで
は、順次供給される画像信号は符号化され、時間t−1
で既に符号化されているシーンからの前フレームは基準
として画像格納部に存在し、フレームからフレームの情
報は増幅係数、移動係数及び適応的に得られたクアド
(4本)ツリー分割構造からなる。システムが初期化さ
れると、均一な、所定の階調値又は規定の輝度値として
ハーフ・トーン表現された画像が送信機側のコーダの画
像格納部及び受信機側のデコーダの画像格納部に全ての
画素(ピクセル)に対して同様にして書き込まれる。コ
ーダの画像格納部及びデコーダの画像格納部の両方はそ
れぞれに対するフィードバックにより、コーダ及びデコ
ーダ内の画像格納部の内容が可変サイズのブロックで読
み出され、輝度値1より大きいかそれ未満の係数により
増幅され、この画像格納部の別のアドレスに書き込み可
能に動作する。それにより、可変サイズのブロックは公
知のクアドツリー構造に応じて編成される。
【0006】米国特許第5,122,875号明細書に
は、HDTV信号の符号化/復号化装置が開示されてい
る。この装置は、圧縮されたビデオデータを表わす階層
構造の符号化語CWと、この符号化語CWが表わすデー
タの種類を規定する、対応する符号化語Tを提供するた
めの高品質ビデオソース信号に応答する圧縮回路を含
む。符号化語CWとTに応答する優先選択回路は符号化
語CWを高優先度及び低優先度符号化語列に分解し、そ
れにより高位及び低位の優先符号化語列は、夫々画像再
生に対して比較的重要度の高いそして低い圧縮ビデオデ
ータに対応することになる。高優先度及び低優先度符号
化語列に応答する転送プロセッサは、それぞれ高優先度
及び低優先度符号化語の高優先度及び低優先度転送ブロ
ックを形成する。各転送ブロックはヘッダと、符号化語
CWとエラー検出チェックビットを含む。個々の転送ブ
ロックは、追加のエラーチェックデータを供給する前方
エラーチェック回路に供給する。その後、この高優先度
及び低優先度データはモデムに供給され、対応する送信
用の搬送波を直交振幅変調する。
【0007】米国特許第5,146,325号明細書に
は、奇数及び偶数フィールドのビデオ信号がフレーム内
圧縮モードとフレーム間圧縮モードで順番に独立して圧
縮され、次に送信用にインターリーブされた圧縮画像デ
ータを復号するビデオ復号システムが開示されている。
奇数及び偶数フィールドは独立して復号される。有効な
復号された奇数/偶数フィールドデータが無い期間で
は、偶数/奇数フィールドデータは利用不可の奇数/偶
数フィールドデータに代用される。偶数/奇数フィール
ドのデータを独立して復号し、反対のフィールドのデー
タを利用不可のデータに代用することは、システム起動
時及びチャンネル変化中の画像表示待機時間を減少する
には有効に使用され得る。
【0008】米国特許第5,168,356号明細書に
は、符号化されたビデオデータを信号送信用の転送ブロ
ックに分割するビデオ信号符号化システムが開示されて
いる。送信されたデータが紛失又は壊れたときに受信機
がデータストリームへの再進入ポイントを決定可能にす
るヘッダデータ提供のおかげで、その転送ブロックフォ
ーマットは受信機側での信号回復を向上させる。再進入
ポイントは、対応する転送ブロック内の符号化ビデオデ
ータ中に挿入される二次的転送ヘッダを提供することに
より最大になる。
【0009】米国特許第5,168,375明細書に
は、デシメーション(decimation)、補間及び整形機能の
内の一つ又はそれ以上の機能を提供するために1フィー
ルド分の画像データサンプルを処理する方法が開示され
ている。これはJPEG圧縮システムに利用されている
アレイ変換プロセッサ等により実現される。データサン
プルのブロックは、デシメーション及び補間処理の両方
で離散偶数コサイン変換(DECT)により変換され、
その後、周波数項の数が変更される。デシメーションの
場合は、周波数項の数は減少され、この後、逆変換が実
施され元のデータブロックを示すサンプルポイントの縮
小サイズのマトリックスを生成する。補間処理の場合
は、零値の追加周波数成分が周波数成分アレーに挿入さ
れ、その後の逆変換によりスペクトル帯域幅の増加無し
に一連の拡大データサンプルを生成する。周波数領域内
でのデータ及びフィルタカーネルの変換の乗算を伴う畳
込み又はフィルタ処理により実現される整形処理の場合
は、処理済みデータサンプルの一連のブロックを発生さ
せる逆変換が提供される。カーネルの空間記号は、線形
位相フィルタに対して成分数を減少させることにより変
更され、零挿入されてデータブロックのサンプル数と同
じになる。これに続いて、零挿入されたカーネルマトリ
ックスの離散奇数コサイン変換(DOCT)が形成され
る。
【0010】米国特許第5,175,617号明細書に
は、電話回線帯域制限アナログチャンネルを介してログ
マップビデオ画像を送信するシステム及び方法が開示さ
れている。ログマップ画像内の画素構成は、中心に画素
がより集中する人間の目のセンサの幾何学的配置に一致
するようになっている。この送信機は周波数帯をチャン
ネルに分割し、1個又は2個の画素を各チャンネルに割
り当てる。例えば、3KHzの音声品質電話回線は、そ
れぞれ3.9Hzの間隔を持つ768個のチャンネルに
分割される。各チャンネルは直交位相の2個の搬送波か
ら成るので、各チャンネルは2個の画素を運ぶことが可
能である。幾つかのチャンネルは、受信機が受信信号の
位相と大きさの両方を検出できるようにする特殊校正信
号用に確保されている。センサと画素が発振器郡に直結
され、受信機が各チャンネルを連続して受信できる場合
には、この受信機は送信機と同期をとる必要が無い。F
FTアルゴリズムは、受信機が第1のフレームと同期を
とり、その後フレーム期間毎に後続のフレームを得る連
続動作の場合に対する高速離散近似を実行する。フレー
ム期間はサンプリング期間と比べて比較的低いので、一
旦第1フレームが検出されると、受信機がフレーム同期
を失うことはありそうもない。試験的ビデオ電話では、
1秒に4個のフレームを送信し、1440個の画素ログ
マップ画像に対し直交符号化を実施し、秒速40,00
0ビット以上の有効データ転送速度が得られた。
【0011】米国特許第5,185,819号明細書に
は、奇数及び偶数フィールドのビデオ信号がフレーム内
圧縮モードとフレーム間圧縮モードで順番に独立して圧
縮された奇数及び偶数フィールドのビデオ信号を有する
ビデオ圧縮システムが開示されている。独立して圧縮さ
れたデータの奇数及び偶数フィールドは、フレーム内偶
数フィールドが圧縮されたデータはフレーム内奇数フィ
ールドが圧縮された連続するフィールド間の途中で発生
するように送信のためにインターリーブされる。受信機
にとっては、インターリーブされた一連のフィールドに
より、送信データ量を増やすことなく符号化のための信
号への進入ポイント数が2倍になる。
【0012】米国特許第5,212,742号明細書に
は、リアルタイムで圧縮/復号のためにビデオデータを
処理する装置及び方法が開示されている。この装置は複
数の計算モジュールから成り、好ましい実施例では、合
計4個の計算モジュールが並列に接続されている。個々
の計算モジュールは、処理装置と、デュアルポートメモ
リと、スクラッチパッドメモリと、アービトレーション
機構で構成されている。第1のバスはこれらの計算モジ
ュールとホストプロセッサを接続する。最後に、この装
置はホストプロセッサと計算モジュールに第2のバスを
介して接続された共用メモリを有する。この方法は、各
処理装置が処理するために画像の部分割当てを行う。
【0013】米国特許第5,231,484号明細書に
は、提案されているISO/IECMPEG基準の使用
に適している開示される。これには、協動する3個の構
成要素又はサブシステムが含まれる。その画像に割り付
けられたビット数を考慮して最適の視覚品質を提供する
ために、この3個の構成要素又はサブシステムは入力さ
れるディジタル動画列を可変順応的に前処理し、ビット
を画像に順番に割り付けし、変換係数を画像の異なる領
域にビデオ順に適応的に量子化する。
【0014】米国特許第5,267,334号明細書に
は、コンピュータシステムでの動画列のフレーム冗長度
を除去する方法が開示されている。この方法は動画列の
第1番目の場面変化を検出する工程と、第1画像にとっ
て完全な場面情報を含む第1キーフレームを発生する工
程から成る。好ましい実施例に於いては、この第1キー
フレームは「前向き」キーフレーム又はイントラフレー
ムとして知られており、通常CCITT準拠圧縮ビデオ
データ内に存在している。この処理は少なくとも1個の
中間圧縮フレームを発生する工程を具備し、該少なくと
も1個の中間圧縮フレームは、前記動画列内で時間的に
第1画像に続く少なくとも1個の画像に対して第1画像
との差情報を含む。この少なくとも1個の画像はインタ
ーフレームとして知られている。最後に、動画列におけ
る第2場面変化を検出する工程と、第2場面変化の直前
に表示される画像にとって完全な場面情報を含む第2キ
ーフレームを発生する工程がある。この第2キーフレー
ムは「後向き」キーフレームとして知られている。前記
第1キーフレームと少なくとも1個の中間圧縮フレーム
は順方向再生のために連結されており、前記第2キーフ
レームと前記中間圧縮フレームは逆方向再生のために連
結されている。画像が順方向再生される時には、前記イ
ントラフレームは、完全場面情報を発生するのに利用さ
れることもある。この場面が逆再生される時には、完全
場面情報を再生するのに後方向キーフレームが使用され
る。
【0015】米国特許第5,276,513号明細書に
は、所定数の公知の画像・ピラミッドステージから成る
第1回路装置が前記所定数と同数の新規な動画・ベクト
ルステージから成る第2回路装置と共に開示されてい
る。これらの装置は費用効果の高い階層的動画分析(H
MA)をリアルタイムで、最少システム処理遅延及び/
又は最少システム処理遅延を利用して及び/又は最少ハ
ードウェア構造で行う。特に、比較的高いフレーム速度
(例えば、秒速30フレーム)で発生する連続的所定画
素濃度画像データフレームの継続入力列からの比較的高
解像度画像データに応答して、前記第1及び第2回路装
置は、ある処理システム遅延後に、同じフレーム速度で
発生する連続的所定画素濃度ベクトルデータの継続出力
列を得る。各ベクトルデータフレームは各対の連続画像
フレーム間で起こる画像の動きを示している。
【0016】米国特許第5,283,646号明細書に
は、リアルタイムビデオ符号化システムに画像を一度だ
け符号化しながら、フレーム毎に所望数のビットを精確
に送出させ、例えば通信チャンネルを介して送信される
画像を表わす係数を量子化するのに使用される量子化ス
テップサイズを更新する方法と装置が開示されている。
このデータは、複数のブロックを有するセクタに分割さ
れる。このブロックは、例えばDCT符号化を用いて符
号化され、各ブロック毎に係数列を発生する。この係数
は量子化され、データを記述するのに要するビット数は
量子化ステップに依っては、かなり変動する。各セクタ
のデータの送信の終了時には、この特定グループのデー
タと関連する選ばれた数のセクタに対して、使用された
実際の累積ビット数は、使用される所望の累積ビット数
と比較される。本システムは、例えば画像を表わす複数
のセクタに対して最終的所望のデータビット数を得るた
めに、量子化ステップサイズを再調整する。量子化ステ
ップサイズを再新して所望のビット割り付けを決定する
ため様々な方法が開示されている。
【0017】ウエスコン技術論文(Wescon Technical Pa
pers)No.2、1984年10月/11月号のヨンM.
チョン(Chong, Yong M)著の論文、「ディジタル画像処
理のデータフローアーキテクチャ」(A Data-Flow Archi
tecture for Digital Image Processing)には、画像処
理に特に設計されたリアルタイムでの信号処理システム
が開示されている。具体的には、固定長のアドレスフィ
ールドを有する固定の1ワード長であるトークンをベー
スにしたデータフローアーキテクチャが開示されてい
る。トークンはデータフィールド、制御フィールド、お
よびタグから構成されている。トークンのタグフィール
ドは、更に、プロセッサアドレスフィールドおよび識別
子フィールドとに分けられる。プロセッサアドレスフィ
ードは、トークンを正しくデータプロセッサに送出する
ために用いられ、識別子フィールドは、データプロセッ
サにどのような処理を行うべきかを知らされるためにデ
ータにラベルを付ける目的に用いられる。この様にし
て,識別子フィールドは、データプロセッサに対しての
指示として作用する。システムは各トークンを、モジュ
ール番号(MN)を使って特定のデータフロープロセッ
サに送る。このMNが特別なステージのMNと一致する
場合は、適切な演算をデータに対して行う。もし一致し
ない場合は、トークンは出力データバスに送られる。
【0018】IEEE J固体回路(Solid-State Circu
its)のVo1.23、No.1、1988年2月号の、キ
モリ(Kimori)他著の「自己調整回路による弾性パイプラ
イン機構」(An Elastic Pipeline Mechanism by Self-T
imed Circuits)では、自己調整回路を有する弾性パイプ
ラインが開示されている。非同期のパイプラインは複数
のパイプラインステージを具備する。各パイプラインス
テージは、パイプラインステージ特有の論理演算を行う
組み合わせ論理回路に続いて設けられている。入力デー
タッラチグループにより構成される。データラッチに
は、このパイプラインステージに伴うデータ転送制御回
路から生成されるトリガ信号が同時に供給される。デー
タ転送制御回路は相互に連結してチェーンを形成し、こ
れを介して送信信号線並びに肯定応答信号線により、後
段のパイプライン間のデータ転送をハンドシェークモー
ドに制御している。また、現在のパイプラインステージ
のオペランドに対して行う演算を選択するために、通常
デコーダが各ステージに設けられている。更に、複雑な
復号処理を予めコード処理するために、また、論理回路
にとって重大なl経路の問題を軽減するために、前段に
デコーダを配置することもできる。サブモジュール間の
相互作用は完全に局所化した決定に基づき決められ、ま
た、各サブモジュールが独自にデータバッファリング及
び自己調整データ転送を同時にデータ転送を同時に行え
るので、パイプラインの柔軟性により、いかなる集中制
御も除去される。最後に、パイプラインの柔軟性を増す
ために、空のパイプラインステージを、占有されている
パイプラインステージ間に設け、各ステージ間での信頼
性のあるデータ転送を確保している。
【0019】米国特許第5,278,646号明細書は
各サブブロックに含まれる係数の数が選択可能であり、
各レイヤ内の係数の数を示すコードが各符号化ビデオシ
ーケンスの始めのビットストリーム挿入されている改良
されたデコード技術を開示している。この技術によれ
ば、選択された数の係数から連続スキャンに沿って各ス
ケールについてのサブブロックを形成することにより、
最も高位の解像度(resolution)レイヤにおけるゼロ係数
のオリジナルのランを不変とすることができる。これら
のサブブロックは逆離散コサイン変換を適当なゼロ埋め
込み(padding)により、あるいは各スケールから余分な
係数を廃棄することにより得られた正方形のサブブロッ
クに適用することにより標準形態で復号化される。この
技術は、さらに、明白なエンドオブブロック信号を分離
ブロックに与え、大部分の場合、明白なエンドオブブロ
ック信号を復号することを不要とすることにより復号効
率を向上する。
【0020】米国特許第4,903,018号明細書は
構造的に関連した多重データシーケンスを圧縮/伸長す
る方法、及びデータ処理システムを開示する。データシ
ーケンス中の所定数の連続するデータ要素に共通な特性
を示すために分析が構造についてなされているデータセ
ットに特有のものである。データ要素の代わりに、拡張
の間に再び復号化されるコードが使われる。共通の特性
は、データシーケンスの数において同じ次数を有するデ
ータ要素を分析することにより求められる。拡張の期
間、コードを復号化することにより得られたデータ要素
はこれらのデータ要素の次数に基づいたこれらのデータ
シリーズの次数に基づいてデータシリーズ中で位づけら
れる。この方法を実行するデータ処理システムは格納マ
トリクス26と、関連するラインシーケンスにおいて格
納マトリクス26のラインアドレスを有するインデック
ス格納28とを具備する。
【0021】米国特許第4,334,246号明細書は
伝送、格納のための前もった圧縮にに続いてビデオを圧
縮する回路、及び方法を開示する。ここでは、ラスタ入
力スキャナにより発生されたオリジナルビデオは2ライ
ンの1ショット予測器によって動作し、ランレングス符
号化を用いて4、8、または12ビットのコードワード
に符号化され、1ビットデータワードにパックされる。
そして、伸長器は16ビットデータワードを結合しデー
タをアンパックし、各コードワードに分離し、コードワ
ードを全てが0の4ビットの多数のニブルに変換し、デ
コードデータを構成する1、または複数のビット1を有
するニブルを終端し、デプレディクタビットを生成する
ために現在スキャン中のラインの実際のビデオと現在の
ラインの以前のビデオビットとを調べ、最終的な実際の
ビデオを生成するためにデコードデータとデプレディク
タビットとを比較する。
【0022】米国特許第5,060,242号明細書
は、どんなデータの損失もなく伝送効率を高めるために
隙間なく強固にパックされる可変長コードワードを生成
するために信号をDPCM符号化し、そして信号をハフ
マン、ランレングス符号化する画像信号処理装置を開示
する。この強固にパックされたワードを処理する装置は
バレルシフタ(barrel shifter)を有し、そのシフトモジ
ュラスはアキュムレータ受信コードワード長情報により
制御される。ORゲートがシフタに接続され、レジスタ
はゲートに接続される。この強固にパックされ相関を無
くされたディジタル信号を処理する装置はアンパッキン
グのためのバレルシフタ、アキュムレータと、ハフマン
デコーダ、ランレングスデコーダと、逆DCPMでコー
ダを具備する。
【0023】米国特許第5,168,375号明細書
は、JPEG圧縮システムで採用されているようなアレ
イ変換プロセッサを使用して達成されるデシメーショ
ン、補間、シャープニングの1つ、または複数の機能を
提供するために、画像データサンプルのフィールドを処
理する方法を開示する。データサンプルのブロックはデ
シメーション、補間処理の両方において離散偶数コサイ
ン変換(DECT)により変換される。その後、周波数
項の数が変更される。デシメーションの場合は、周波数
項の数は減少され、その後、オリジナルデータブロック
を表わす減縮されたサイズのサンプルポイントを生成す
るために逆変換される。補間の場合は、ゼロ値を有する
付加的な周波数成分が周波数成分のアレイに挿入され
る。その後の逆変換はスペクトラム帯域を増加すること
なく拡大されたデータサンプリングセットを生成する。
データの変換と周波数領域におけるフィルタカーネルと
の乗算を含むコンボリューション、あるいはフィルタリ
ング操作により実現されるシャープニングの場合は、処
理済みのデータサンプルのブロックセットに帰する逆変
換処理を含む。ブロックは重複され、指定されたサンプ
ルが節約され、重複部分から余分なサンプルが捨てられ
る。線形位相フィルタについてのカーネルの空間表現は
成分数を減少することにより変更される。データブロッ
クのサンプル数を等しくするためにゼロが埋め込まれ
る。この後、埋め込まれたカーネルマトリックスの離散
奇数コサイン変換が行なわれる。
【0024】米国特許第5,231,486号明細書
は、高レベル、低レベルのプライオリティ可変長符号化
データワードを含むビットストリームを処理する高解像
度ビデオシステムを開示する。コードデータはそれぞれ
のデータパッキングユニットにより高プライオリティデ
ータパックと低プライオリティデータパックに分離され
る。コードデータは両パッキングユニットに連続して供
給される。コードデータの高プライオリティ成分長と低
プライオリティ成分長を表わす高プライオリティ長デー
タと低プライオリティ長データは高プライオリティデー
タパッカー、低プライオリティデータパッカーにそれぞ
れ供給される。高プライオリティデータが第1の出力パ
スを介して出力されるためにパックされる時、低プライ
オリティデータはゼロとされる。低プライオリティデー
タが第2の出力パスを介して出力されるためにパックさ
れる時、高プライオリティデータはゼロとされる。
【0025】米国特許第5,287,178号明細書
は、符号化ビデオデータをヘッダ部とデータパック部と
を有するトランスポートブロックに分割する信号処理部
を含むビデオ信号符号化システムを開示する。このシス
テムは記述されたシーケンスを始める信号処理をイネー
ブル化するために、記述された非同時位相シーケンスに
おいて、グローバルリセットの後に、システム構成要素
のリセットを解除するリセット制御回路も具備する。位
相リセット解除シーケンスは有効データがデータライン
を送信されていることが検出されると開始する。
【0026】米国特許第5,124,790号(Nakayam
a)明細書は、イメージメモリとともに使用される逆量子
化器を開示する。逆量子化器は差分予測符号化(DPC
M)符号データを復号するために通常の使い方で使用さ
れる。
【0027】米国特許第5,136,371号(Savatie
r et al.)明細書は、バッファのフル状態により決定さ
れ、可変であるアジャスタブル量子化レベルを有する逆
量子化器に関する。この従来技術の特徴は、最大のアジ
ャスタブルなデータレートを達成できることである。バ
ッファのオーバーフロー、あるいはアンダーフローは各
ブロックが符号化された後に再計算される量子化レベル
を用いて量子化器152、逆量子化器156の量子化ス
テップサイズを適応させることにより回避できる。量子
化レベルは、全バッファサイズに対するフレームについ
て既に符号化されたデータの量の関数として計算され
る。このように、量子化レベルはデコーダによって好ま
しく再計算され、伝送されることはない。
【0028】米国特許第5,142,380号(Sakagam
i et al.)明細書は、固体撮像素子を用いた電子スチル
カメラにより撮影されたような静止画についての画像圧
縮装置を開示する。ここで、用いられる量子化器は輝度
信号Yについての量子化マトリックスの閾値を格納する
記憶手段と、クロミナンス信号I,Qについての量子化
マトリックスの閾値を格納するROM15に接続され
る。
【0029】米国特許第5,193,002号(Guichar
d et al.)明細書は、CCITT規格H.261に関連
し、リアルタイムで画像信号を符号化/復号化する装置
を開示する。ディジタル信号プロセッサはダイレクト量
子化、逆量子化を行なう。
【0030】米国特許第5,241,383号(Chen et
al.)明細書は、量子化パラメータを調整することによ
り実現される疑似コンスタントビットレートビデオ符号
化装置を開示する。量子化器32で用いられる量子化パ
ラメータは符号化回路により発生されるコードビットの
量を増加、または減少させるために周期的に調整され
る。次のピクチャグループを符号化するための量子化パ
ラメータの変化量は以前のピクチャグループの推定コー
ドビット数における以前のピクチャグループに対して符
号化回路により発生される実際のコードビット数の間で
測定された偏差によって決められる。符号化回路により
発生されるコードビット数は量子化ステップサイズを制
御することにより制御される。一般に、小さい量子化ス
テップサイズは多いコードビット数をもたらし、大きな
量子化ステップサイズは少ないコードビット数をもたら
す。
【0031】米国特許第5,113,255号明細書(N
agata et al.)、米国特許第5,126,842号明細
書(Andrews et al.)、米国特許第5,253,058号
明細書(Gharavi)、米国特許第5,260,782号明
細書(Hui)、米国特許第5,212,742号明細書(No
rmile et al.)は背景技術と一般的な技術の説明のため
に引用される。
【0032】
【発明が解決しようとする課題】本発明は、入力と、出
力と、前記入力と出力との間にある複数の処理ステージ
を有するパイプラインシステムにおいて、複数の処理ス
テージはパイプラインに沿ってトークンを伝送する2線
式のインターフェースにより相互接続され、制御トーク
ン、データトークンはパイプラインの中の全ての処理ス
テージとインターフェースし、パイプラインの中の選択
された処理ステージと相互作用するユニバーサル適応ユ
ニットの形態であり、パイプラインの処理ステージは構
成と処理において向上した柔軟性を与えられていること
を特徴とする改良されたパイプラインシステムに関す
る。本発明によれば、処理ステージは少なくとも1つの
トークンの認識に応答するように構成される。1つの処
理ステージは入力を受けてトークンを発生/変換するス
タートコード検出器である。
【0033】本発明のトークンは、ピクチャのスタート
が次のデータトークンに後くことを指示するピクチャス
タートコードトークン、個々のピクチャのエンドを指示
するピクチャエンドトークン、バッファをクリアしシス
テムをリセットするフラッシュトークン、複数のピクチ
ャ圧縮/伸長規格のうちの選択された1つに従って処理
を実施するためにシステムを調整するコーディングスタ
ンダードトークンである。さらに、本発明は、ハフマン
デコーダと、インデックス/データ(ITOD)ステー
ジと、演算論理ユニット(ALU)と、システムの直後
に続くデータバッファ手段とを具備し、データサイズが
変化するビデオピクチャのための時間間隔が制御可能で
ある、ビデオデータの復号化のためのパイプラインシス
テムに関する。本発明によれば、処理ステージは入力デ
ータストリームを受信し、特定のビットストリームパタ
ーンを認識する手段を具備し、処理ステージはランダム
アクセスとエラー回復を容易にする。さらに、本発明
は、ピクチャデータデコーディングに対して明確な終了
を達成し、ピクチャのエンドを指示し、パイプラインを
クリアするピクチャストップアフタオペレーションを行
なう手段を具備する。改良されたパイプラインシステム
は、固定サイズかつ固定幅のバッファと、バッファを通
って任意の数のビットを通過させるためにバッファをパ
ディングする手段を具備する。本発明は、さらに、ラン
レングスコードを含むデータストリームを有し、ランレ
ベルコードを1つのレベルによって後続されるゼロデー
タの1つのランまで拡張するために、トークンからのデ
ータストリームによって作動化される逆モデラ手段を具
備し、指定された数の値によって各トークンが表現され
る。さらに、本発明は逆モデラステージと、逆離散コサ
イン変換ステージと、逆モデラステージと逆離散コサイ
ン変換ステージとの間に配置され、データ処理のための
トークン表に応答する処理ステージとを具備する。
【0034】さらに、本発明は改良されたパイプライン
システムにおいて、H.261、JPEGまたはMPE
G規格いずれかのハフマンコード化条件に基づいてコー
ド化されたデータワードをデコードするハフマンデコー
ド手段を具備し、データワードは、それに基づいてデー
タワードがコード化されたハフマンコード規格を識別す
る識別子を含み、さらに、ハフマンコード化データワー
ドを受け取る手段と、受信したデータワードのハフマン
コード化をどの規格が管理したかを決定するために識別
子を読む手段と、必要に応じて、ハフマンコード化デー
タワードをH.261又はMPEGハフマンコード化済
みであると識別する識別子の読み取りに応答して、ハフ
マンコード化データワード受信手段に作動可能に接続さ
れ、指数生成手段から指数を受け取り、各JPEGハフ
マンコード化データワードと関連した指数を生成する手
段と、JPEGハフマン表情報を伝達するためにJPE
G規格に基づいて使用されたフォーマットを持つハフマ
ンコード表を含む参照用表を操作し、受信した指数に対
応してデコードされたデータワードを出力する手段とを
具備する。
【0035】
【課題を解決するための手段】簡単に且つ一般的に、本
発明は、入力と、出力と、この入力と出力間にある複数
の処理ステージを有するパイプラインシステムにおい
て、処理ステージはパイプラインに沿ってトークンを伝
送するために2線インターフェースにより相互接続さ
れ、制御トークン、データトークンはパイプラインの中
の全ての処理ステージとインターフェースし、パイプラ
インの中の選択された処理ステージと相互作用するユニ
バーサル適応ユニットの形態であり、処理ステージは構
成と処理において向上した柔軟性を与えられている。
【0036】パイプラインの中の各処理ステージは第1
次、第2次記憶手段の両方を有していてもよい。処理ス
テージは選択されたトークンに認識に応じて再構成され
る。パイプラインのトークンはダイナミックに適応的で
あり、機能を実行する処理ステージに応じて位置する
か、あるいは機能を実行する処理ステージに無関係に位
置する。
【0037】本発明のパイプラインにおいては、トーク
ンはステージとインターフェースすることにより変更さ
れることもある。トークンはパイプラインの全てのステ
ージと相互作用することもあるし、あるいは全てよりは
少ない特定のステージのみと相互作用する場合もある。
パイプライン中のトークンは隣接するステージと相互作
用することもあるし、あるいは隣接しないステージと相
互作用する場合もある。トークンは処理ステージを再構
成する。そのようなトークンはある機能に従属して位置
することもあるし、他の機能とは無関係に位置すること
もある。
【0038】トークンは更に、このトークンに追加のワ
ードが存在することを示し、該トークン内の最終ワード
を識別する拡張ビットを含んでも良い。トークンのアド
レスフィールドは可変長でも良いし、典型的にはホフマ
ン符号化されている。
【0039】トークンは処理ステージにより発生され
る。パイプライントークンは処理ステージに転送するデ
ータを含んでいても良いし、トークンはデータが無くて
も良い。あるトークンはデータトークンとして識別さ
れ、パイプラインの処理ステージにデータを与える。他
のトークンは制御トークンとして識別され、処理ステー
ジを調整する。この調整は処理ステージの再構成を含
む。さらに、他のトークンはデータの供給と調整の両方
を処理ステージに対して実施する。トークンのいずれか
はパイプラインの処理ステージに対する符号化標準を識
別する。他のトークンは処理ステージ間でどんな符号化
標準にも依存せず動作する。トークンは処理ステージに
よる連続する変更も可能である。
【0040】処理ステージと協動してのトークンの相互
作用の柔軟性は内部構造に対する処理ステージの大きな
機能分散を容易にし、トークンの柔軟性はシステム拡張
及び/又は変更を容易にする。この点について、トーク
ンは処理ステージ内の複数の機能を容易にすることもで
きる。トークンはハードウェアに基づいてもソフトウェ
アに基づいても良い。トークンは、データと制御を同時
に処理ステージに提供にする。
【0041】本発明によれば、単一のビットストリーム
中に伝達され、制御コードと対応するデータとがそれぞ
れ符号化された対を有し、ディジタルビットのシリアル
ビットストリームとしての複数の符号化ビットストリー
ムを扱うための、2線インターフェースにより複数の処
理ステージが相互接続されたパイプラインシステムにお
いて、単一のシリアルビットストリームに応答し制御ト
ークンとデータトークンを発生し、2線インターフェー
スに与えるスタートコード検出手段と、所定の処理ステ
ージに設けられ、トークンを該ステージに特有な制御ト
ークンとして認識し、パイプラインに沿って不認識の制
御トークンを通過させるトークンデコード手段と、識別
されたデータトークンを扱うために、認識された制御ト
ークンに応答し特定のステージを再構成する再構成デコ
ード・パーザー処理手段とを具備することを特徴とす
る。
【0042】本発明によれば、1つのステージは入力を
受信しトークンを発生/変換するように構成されたスタ
ートコード検出器であり、スタートコード検出器はデー
タに応答し、トークンを生成し、スタートコードを検
索、検出し、その結果に応答してトークンを発生し、重
複スタートトークンを検出可能であり、第1のスタート
コードが無視され、第2のスタートコードがスタートコ
ードトークンの生成のために使われる。
【0043】スタートコード検出器ステージは検索モー
ドでは入力データを検索し、選択されたスタートコード
を見つける。検出器は入力データストリーム中の中断を
検索し、検索は外部のデータソースからのデータに対し
て行なわれる。スタートコード検出器ステージはスター
トコードトークン、ピクチャスタートトークン、スライ
ススタートトークン、ピクチャエンドトークン、シーケ
ンススタートトークン、シーケンスエンドトークン、お
よび/またはグループスタートトークンを生成する。ス
タートコード検出器ステージはトークンの最後のワード
にビットを埋め込むパディング機能を実行する。
【0044】スタートコード検出器は、ディジタルビッ
トの直列ビットストリームとして配列されて別々にコー
ド化された複数のビットストリームを扱い、そして別々
にコード化されたスタートコードの対および前記直列ビ
ットストリームによって運ばれるデータを有するマシン
において、直列接続された第1、第2、第3ステージを
有するスタートコード検出器サブシステムを具備し、レ
ジスタの各々はビットストリームから異なる数のビット
を記憶し、第1のレジスタは1つの値を記憶し、第2レ
ジスタ及び第1レジスタに含まれる値と関連したスター
トコードを識別する第1のデコード手段と、この値を第
3レジスタの予め決められたエンドにシフトする回路手
段と、第3レジスタからデータを並列に受け入れるため
に配列された第2のデコード手段とを具備する。
【0045】第2デコード手段に応答し、スタートコー
ドに関連した値のデコードの結果として記憶されている
1、または複数の制御トークンを出力するメモリを具備
する。レジスタ化らのデータの有効性を示すタグを扱う
複数のタグシフトレジスタが設けられている。システム
は、さらに、マイクロプロセッサインターフェース化ら
の入力データストリームをアクセスする手段と、データ
ストリームをフォーマッティング/組織化する手段を具
備する。
【0046】本発明によれば、スタートコード検出器は
異なって復号化されたビットストリームに関連する可変
幅のスタートコードを識別する。検出器は入力データス
トリームから複数のデータトークンを発生する。システ
ムはパイプラインシステムであり、スタートコード検出
器はパイプラインシステムの第1ステージとして配置さ
れる。
【0047】本発明は、複数の処理ステージと、処理ス
テージ間における制御機能及び/又はデータ機能のため
の相互作用インタフェーストークンの形態の万能適応ユ
ニットを具備し、トークンはピクチャのスタートが次の
データトークンにおいて後続することを指示するピクチ
ャスタートコードトークンであるシステムを提供する。
【0048】トークンは個々のピクチャのエンドを指示
するピクチャエンドトークンである。
【0049】トークンはバッファをクリアし、入力から
出力までシステムを下流に進行するつれてシステムをリ
セットするフラッシュトークンである。フラッシュトー
クンはパイプラインを下流側に進行するにつれてステー
ジを可変的にリセットする。トークンがは数のピクチャ
圧縮/伸長規格のうちの選択された1つに従って処理を
実施するためにシステムを調整するコーディングスタン
ダードトークンである。
【0050】コーディングスタンダードトークンはピク
チャ規格としてJPEG、及び/又は他の適当な規格を
指示する。少なくともいくつかの処理ステージはコーデ
ィングスタンダードトークンに応答して再構成される。
【0051】システムの処理ステージの1つはハフマン
デコーダ・パーザーであり、コーディングスタンダード
トークンに応答して、パーザーはコーディングスタンダ
ードトークンにより指定されるピクチャ規格を扱うプロ
グラムの位置に対応したアドレス位置にリセットされ
る。リセットアドレスはハフマンデコーダ・パーザーを
テストするために使われるメモリ位置に対応するコーデ
ィングスタンダード制御トークンにより選択可能であ
る。
【0052】ハフマンデコーダはデコードステージと、
インデックス/データステージとを具備し、パーザース
テージは、特別に識別されたコーディング標準に必要な
テーブルを選択するためにインデックス/データステー
ジに指示を送り、入来したデータが反転されたか否かを
示す。
【0053】上述したトークンは相互作用メタモルフィ
クインターフェーストークンであってもよい。
【0054】本発明は、ハフマンデコーダ、インデック
ス/データユニット、演算論理ユニット、システムの直
後に続くデータバッファ手段とを具備し、データサイズ
が変化するビデオピクチャのための時間間隔が制御可能
であるビデオデータデコードシステムを提供する。
【0055】本発明は、処理ステージを相互接続する2
線インタフェースを具備し、インタフェースはデータに
関する直列処理および制御に関する並列処理を可能にす
る空間デコーダを提供する。
【0056】上述したように、本発明のシステムは複数
のピクチャ規格の各々に対して記憶された個別のプログ
ラムを持つROMを具備し、プログラムはトークンによ
って選択可能であり、複数のピクチャ規格に対する処理
の実施を容易にする。
【0057】本発明の空間デコーダシステムはトークン
をフォーマットするトークンフォーマッタを具備し、そ
の結果、データトークンが作成される。
【0058】本発明のシステムは、デコードステージ
と、識別された特定のコーディング規格に対して必要な
表を選択するためのインストラクションをインデックス
/データユニットに送るパーザーステージを具備し、パ
ーザーステージは入来するデータが反転されるか否かを
指示する。表は、適当なテーブルを多重使用を可能とす
るメモリ内に配列されている。
【0059】本発明は、入力データストリームを有し、
入力データストリームを受信する処理ステージを具備
し、処理ステージは指定されたビットストリームパター
ンを認識する手段を具備し、ランダムアクセス及びエラ
ー回復が容易であるパイプラインシステムを提供する。
本発明によれば、処理ステージはスタートコード検出器
であり、ビットストリームパターンはスタートコードを
含む。そのため、本発明はランダムアクセス及び強化さ
れたエラー回復を行なうために単一の直列データストリ
ームとして配列された異なる符号化データストリームを
探索するサーチモード手段を具備する。
【0060】本発明は、ピクチャデータデコーディング
に対して明確な終了を実現するためにピクチャアフタス
トップオペレーションを行い、ピクチャエンドを指示
し、パイプラインをクリアする手段を具備し、この手段
はピクチャエンドトークンとフラッシュトークンとの組
合せを発生するパイプラインマシンを提供する。
【0061】本発明のパイプラインマシンは、固定サイ
ズかつ固定幅のバッファと、バッファを通って任意の数
のビットを通過させるためにバッファをパディングする
手段を具備し、パディング手段はスタートコード検出器
である。
【0062】パディングはトークンの最後のワードに対
して行なわれ、パディングはワードサイズの均一性を確
実とする。本発明によれば、再構成ステージが空間デコ
ーダとして設けられ、パディング手段は空間デコーダに
よって処理されているピクチャデータに対して空間デコ
ーダの出力において各伸長ピクチャが同じビット長を持
つような充分な付加ビットを加える。
【0063】本発明は、ランレングスコードを含むデー
タストリームを有するシステムにおいて、トークンから
のデータストリームによって作動化され、ランレベルコ
ードを1つのレベルによって後続されるゼロデータの1
つのランまで拡張する逆モデラ手段を具備し、指定され
た数の値によって各トークンが表現されるシステムを提
供する。
【0064】逆モデラ手段は所定数の値が欠けているト
ークンを遮断し、好ましい実施例では所定数は64係数
である。
【0065】本発明を実施する装置は、ランレングスコ
ードを有するデータトークンを受け入れ、ランレングス
コードをデコードする拡張回路を具備する。パダー回路
は拡張回路と通信することによりデータトークンが所定
の長さを持つか否かを判定し、データトークンが所定の
長さよりも短い場合には所定長さに到達するまでデータ
トークンにデータ単位を加える。バイパス回路はデータ
トークン以外のトークンを拡張回路およびパダー回路を
回避させる。
【0066】本発明によれば、バッファを効率的に満た
すためにデータを処理する方法において、下記のフォー
マットのうちの少なくとも1つを有し、第1の所定幅を
持つ第1のタイプのトークンを提供する: フォーマットA ― ExxxxxxLLLLLLLLLLL フォーマットB ― ERRRRRRLLLLLLLLLLL フォーマットC ― E000000LLLLLLLLLLL ここで、E=拡張ビット、F=特定フォーマット、R=
ランビット、L=レングスビット又は非データトーク
ン、x=「ドントケア」ビットである。
【0067】フォーマットAトークンをELLLLLL
LLLLLの形のフォーマット0aトークンに分割し、
フォーマットBトークンをFRRRRRR00000の
形のフォーマット1トークンおよびフォーマット0aデ
ータトークンに分割し、フォーマットCトークンをFL
LLLLLLLLLLの形のフォーマット0トークンに
分割し、フォーマット0、フォーマット0a、フォーマ
ット1トークンを第2の所定幅を有するバッファにパッ
クする。
【0068】さらに、本発明は、ビデオ圧縮/伸長規格
に対応する圧縮されたピクチャのグループに遅延時間を
供給するための装置において、圧縮されたピクチャを含
むデータワードが計数回路によりカウントされ、計数回
路と通信し、ビデオ伸長に関する規格に従って始動情報
を受け取り、始動情報を計数回路に伝達するマイクロプ
ロセッサを具備する。
【0069】データワードを受け入れ、データワードを
遅延する逆モデラ回路が計数回路と逆モデラ回路の中間
にある制御回路と通信し、制御回路は始動情報とデータ
のカウント済みワードとを比較し、制御回路に合図す
る。制御回路は始動基準に適合したデータワードに対応
する信号を待ち行列に入れ、逆モデラ遅延機能を制御す
る。
【0070】本発明は、逆モデラステージ及び逆離散コ
サイン変換ステージを有するパイプラインシステムにお
いて、逆モデラステージと逆離散コサイン変換ステージ
との間に配置され、データ処理のためのトークン表に応
答する処理ステージを特徴とする。
【0071】本発明のトークンは処理ステージから量子
化テーブルを発生させる量子化テーブルトークンであ
る。
【0072】本発明は、H.261、JPEGまたはM
PEG規格いずれかのハフマンコード化条件に基づいて
コード化されたデータワードをデコードする手段を具備
し、データワードは、それに基づいてデータワードがコ
ード化されたハフマンコード規格を識別する識別子を含
み、更にハフマンコード化データワードを受け取る手段
を具備し、受取り手段は、受信したデータワードのハフ
マンコード化をどの規格が管理したかを決定する識別子
を読む手段、必要に応じて、ハフマンコード化データワ
ードをH.261又はMPEGハフマンコード化済みで
あると識別する識別子の読み取りに応答して、データワ
ードをJPEGハフマンコード化したデータワードに変
換する手段を具備し、ハフマンコード化データワード受
信手段に作動可能に接続され、指数生成手段から指数を
受け取る各JPEGハフマンコード化データワードと関
連した指数を生成する手段と、JPEGハフマン表情報
を伝達するためにJPEG規格に基づいて使用されたフ
ォーマットを持つハフマンコード表を含む参照用表を操
作し、受信した指数に対応してデコードされたデータワ
ードを出力する手段とを具備するハフマンデコーダも提
供する。
【0073】さらに、本発明はH.261、JPEG、
または、MPEG規格いずれかのハフマンコード化条件
に基づいてコード化されたデータワードをデコードする
ための方法において、データワードはそれに基づいてコ
ード化されたハフマンコード規格を識別する識別子を含
むものとし、ハフマンコード化データワードを受け取る
過程を具備し、受け取る過程は、受信したデータワード
のハフマンコード化をどの規格が管理したかを決定する
識別子を読む過程、必要に応じて、H.261、また
は、MPEGハフマンコード化済みとしてハフマンコー
ド化データワードを識別する識別子の読み取りに応答し
てデータワードをJPEGハフマンコード化データワー
ドに変換する過程を含み、受信した各JPEGハフマン
コード化データワードと関連した指数を生成する過程
と、指数を受信する過程、受信した指数に対応してデコ
ードされたデータワードを生成する過程とを有し、JP
EGハフマン表情報を伝達するためにJPEG規格に基
づいて使用されたフォーマットを持つハフマンコード表
を含む参照用表を操作する過程とを具備することを特徴
とする。
【0074】以下の本発明の実施例の記載中、下記の用
語が頻繁に使用されるので、以下にその用語の一般的説
明をする。
【0075】用語説明 ブロック:8行8列の画素のマトリックス、又は64D
CT係数(ソース、量子化又は逆量子化)。
【0076】クロミナンス(成分):ビットストリーム
で規定されるような三原色に係わる2個の色差信号の1
個を表わす1つのマトリックス、ブロック、又は1個の
画素。色差信号に使用される符号はCrとCbである。
【0077】符号化表記:符号化形態で表わされたデー
タエレメント。
【0078】符号化ビデオビットストリーム:本明細書
で規定しているところの、一連の1個以上の画像の符号
化表記。
【0079】符号化順番:画像が送信され符号化される
順番。この順番は必ずしも表示順番と同一である必要は
無い。
【0080】成分:1つのマトリックス、ブロック、又
は画像を構成する3つのマトリックス(輝度と2個のク
ロミナンス)の内の1つからの1個の画素。
【0081】圧縮:1項目のデータを表わすのに使用さ
れるビット数を減少すること。
【0082】デコーダ:復号化処理の実施例。
【0083】復号化(処理):本明細書での定義では、
入力された符号化ビットストリームを読みだし復号化さ
れた画像又は音声サンプルを発生する処理。
【0084】表示順番:復号化画像が表示される順番。
一般的には、これは画像がエンコーダに入力された順番
と同じである。
【0085】符号化(処理):本明細書では特定されて
いないが、入力画像列又は音声サンプルを読みだし、本
明細書で定義されている有効な符号化ビットストリーム
を発生する処理。
【0086】イントラ(intra)符号化:マクロブロック
又は画像からの情報だけを使用するマクロブロック又は
画像の符号化。
【0087】輝度(成分):信号の白黒を表わす1つの
マトリックス、ブロック、又は1個の画素で、ビットス
トリームで規定されるような三原色に係わるもの。輝度
信号に使用される符号はYである。
【0088】マクロブロック:4つの、8×8ブロック
の輝度データと、画像の輝度成分の16×16部分から
の2つ(4:2:0クロマフォーマット用)、4つ
(4:2:2クロマフォーマット用)又は8つ(4:
4:4クロマフォーマット用)の対応する8×8ブロッ
クのクロミナンスデータ。マクロブロックは画素データ
を言う場合もあり、画素値と、本明細書のこの部分に定
義されているシンタックスのマクロブロックヘッダに規
定されているその他のデータエレメントの符号化された
ものを言う場合もある。通常の知識を有する当業者にと
って、その使用は文脈からも明らかである。
【0089】動画圧縮:動画ベクトルを使って画素値の
予測効率を向上させること。この予測は動画ベクトルを
使用し、予測エラー信号の作成に使用される、以前に復
号化された画素値を含む過去の及び/又は未来の基準画
像にオフセットを提供する。 動画ベクトル:現在の画像の座標位置から基準画像の座
標へのオフセットを提供する動画補償に使用される2次
元ベクトル。
【0090】非イントラ(non-intra)符号化:マクロブ
ロック又は画像それ自体からの情報と別の時刻に発生し
たマクロブロックと画像からの情報も使用するマクロブ
ロック又は画像の符号化。
【0091】画素:画像単位 ピクチャ:ソース、符号化又は再構成された画像デー
タ。ソース又は再構成された画像はそれぞれ輝度と2個
のクロミナンス信号を表わす8ビットの数値を有する3
個の四角マトリックスから成る。先進のビデオでは、画
像はフレームと同じであり、インターレースされたビデ
オでは、文脈により画像はフレーム、又はそのフレーム
の先頭のフィールド又は最後のフィールドを指す。
【0092】予測:予測器を使用して現在復号化されて
いる画素値又はデータエレメントを予測すること。
【0093】再構成可能処理ステージ(RPS):認識
されたトークンに応答して、自己を再構成し各種作業を
するステージ。
【0094】スライス:一連のマクロブロック。
【0095】トークン:制御及び/又はデータ機能のた
めの相互作用インターフェースメッセンジャのパッケー
ジの形態のユニバーサル適応ユニット。
【0096】開始コード(システム及びビデオ):ユニ
ークな符号化ビットストリームに挿入された32ビット
の符号。これらの符号は、符号化シンタックス内の構造
の幾つかを識別することを含めた幾つかの目的に使用さ
れる。
【0097】可変長符号化(VLC):より短いコード
語を頻繁なイベントに割り当てる、あるいはより長いコ
ード語を頻繁ではないイベントに割り当てる符号化のた
めの逆処理。
【0098】ビデオシーケンス:一連の1つ以上の画
像。
【0099】
【作用】本発明によれば、複数の処理ステージと、処理
ステージの中で制御、データ機能を実行する相互作用イ
ンターフェース制御トークンの形態のユニバーサル適応
ユニットを具備し、処理ステージが構成、処理において
向上した柔軟性を与えられているパイプラインシステム
が提供される。
【0100】
【実施例】以下、図面を参照して本発明によるパイプラ
インシステムの実施例を説明する。
【0101】本発明の好ましい実施例に用いられるパイ
プラインシステムに使われる最も一般的な機能に関する
概説として、図1は、6ステージパイプラインの6サイ
クルの大幅に簡素化された説明図である。(以下に更に
詳細に説明するように、パイプラインの好ましい実施例
には、図1には示されない幾つかの有利な機能が含れ
る。) 図面を参照することとし、図面に含まれる種々の図を通
じて、同じ参照番号は同じか又は対応するエレメントを
示し、そして、更に詳細には、図1は、本発明を実施し
た場合の6サイクルのブロックダイアグラムである。ボ
ックスの各列は1つのサイクルを示し、そして、異なる
ステージの各々はそれぞれAからFまでに分類される。
斜線を引いた各ボックスは、対応するステージが有効な
データ、即ち、パイプラインステージの1つにおいて処
理されるべきデータを保持することを示す。処理(デー
タの操作なしの単純な転送以外の何も含まれないことも
あり得る)の後で、有効なデータは、有効出力データと
してパイプラインから転送される。
【0102】実際のパイプラインアプリケーションに
は、6つよりも多いか又は少ないパイプラインステージ
が含まれることがあることに注意されたい。当然気が付
くように、本発明は、任意の個数のパイプラインステー
ジの場合に使用可能である。更に、データは、1つより
も多いステージにおいて処理しても差し支えなく、そし
て、ステージが異なれば処理時間も異なることがあり得
る。
【0103】クロック及びデータ信号(以下に説明す
る)に加えて、パイプラインのは、2つの転送制御信
号、即ち、「VALID」(有効)信号及び「ACCE
PT」(許容)信号が含まれる。これらの信号は、パイ
プライン内のデータ転送を制御するために使われる。隣
接するステージを接続する2本のラインのうちの上側の
ラインとして図示されるVALID信号は、各パイプラ
インステージから最寄りの隣接デバイスまで順方向すな
わち下流方向に供給される。このデバイスは、他のパイ
プラインステージ、または或る別のシステムであっても
差し支えない。例えば、最後のパイプラインステージ
は、そのデータを次の処理回路構成に供給しても差し支
えない。隣接するステージを接続する2本のラインのう
ちの下側のラインとして図示されるACCEPT信号
は、もう一方の上流方向に向かって前のデバイスまで供
給する。
【0104】本発明の実現に使用されるタイプのデータ
パイプラインシステムは、好ましい実施例に示すよう
に、次に示す特性の1つかそれ以上の特性を持つ。
【0105】1.パイプラインは「弾力性がある」、即
ち、特定のパイプラインステージに起きた遅延に起因し
て他のパイプラインステージに引き起こされる外乱は可
能な限り小さな外乱である。連続したパイプラインステ
ージは処理を継続することが可能であり、従って、遅延
したステージに後続するデータの流れには間隙を生じる
ことを意味する。同様に、先行するパイプラインステー
ジも、出来る限り継続可能である。この場合、データス
トリーム中の間隙は、出来る限り、データの流れから除
去される。
【0106】2.パイプラインを調停する制御信号は、
これらの信号は最寄りの隣接パイプラインステージに限
り伝播するように組織される。データの流れと同じ方向
に流れる信号の場合には、前記のステージは直ぐ後に続
くステージである。データの流れと逆方向へ流れる信号
の場合には、前記のステージは直ぐ前のステージであ
る。
【0107】3.パイプライン内のデータは、多数の異
なるタイプのデータが、当該パイプライン内で処理され
るようにコード化される。この符号化は、可変サイズの
データパケットを収容し、そして、パケットのサイズ
は、前もって既知である必要はない。
【0108】4.データのタイプ記述と関連するオーバ
ーヘッドはできる限り小さい。
【0109】5.パイプラインステージに要求される機
能にとって必要な最小個数のデータタイプのみを認識す
ることが各パイプラインステージにとって可能である。
ただし、パイプラインステージは、前記のデータタイプ
を認識しない場合であっても、これら全てのデータタイ
プを連続したステージに供給することが可能でなくては
ならない。これが可能であれば、隣接しないパイプライ
ンステージ間の通信を可能にする。
【0110】図1には図示されていないが、データライ
ンが有り、複数本の単線または数本の平行線のいずれで
あっても、各パイプラインステージに対して導入または
導出するデータバスを形成する。以下に極めて詳細に説
明および図解するように、データは、パイプラインのス
テージに対して、データラインを介して、転入、転出、
及びステージ間で転送される。
【0111】第1のパイプラインステージは、任意の形
の先行デバイスからのデータ及び制御信号を受信可能で
あることに注意されたい。この場合の先行デバイスと
は、例えば、デジタルイメージ送信システムの受信回
路、他のパイプライン等を意味する。他方において、第
1のパイプラインステージは、当該パイプラインにおい
て処理されるデータの全部または一部を生成可能であ
る。実際問題として、以下に詳しく説明するように、
「ステージ」は、何もしないシステム(単にデータを供
給するだけ)又は全システム(例えば、他のパイプライ
ン、または多重システム或は多重パイプライン)を含む
任意の処理回路を含んでも差し支えなく、そして、「ス
テージ」は、必要に応じて、データを生成、変更、及び
削除可能である。パイプラインステージが当該パイプラ
インを通って下方に転送される有効なデータを含む場
合、データ妥当性を示すVALID信号は、直ぐ後続す
る次のパイプラインステージより更に遠くに転送される
要がない。従って、2線インターフェースは、当該シス
テムの対を構成する全てパイプラインステージの間に含
まれる。即ち、いわゆる他のデバイスが含まれ、そし
て、データが、この種デバイスとパイプラインとの間で
転送される場合には、先行デバイスと第1ステージとの
間、及び後続デバイスと最後のステージとの間の2線イ
ンターフェースが含まれる。 信号の各々、即ち、AC
CEPT、及びVALIDは、HIGH、及びLOWの
値を持つ。これらの値は、各々、「H」、及び「L」と
略記される。本発明を実現する場合、パイプラインの最
も一般的なアプリケーションは、通常、デジタルであ
る。この種のデジタルとして実現した場合、例えば、H
IGH値は論理的「1」であり、そして、LOW値は論
理的「0」であっても差し支えない。ただし、システム
は、デジタルとして実現するよう制限される訳ではな
く、アナログとして実現した場合、HIGH値は、或る
電圧、または他の類似の設定スレショルド以上の量であ
っても差し支えなく、LOW値は、同一又は他のスレシ
ョルド以下(或いは以上)の対応する信号によって示さ
れても差し支えない。デジタルアプリケーションの場合
には、本発明は、例えば、CMOS、バイポーラ等のよ
うなあらゆる既知の技術を用いて実現することが可能で
ある。
【0112】VALID信号の記憶装置を提供するため
に個別の記憶そうち及びワイヤを使用する必要はない。
デジタル実施例においてこれは真である。データの「妥
当性」の指示がデータと共に記憶されることだけが必要
とされる全てである。単に一例として挙げると、デジタ
ル値によって表されるデジタルテレビ画像においては、
国際規格CCIR601に規定されているように、ある
特定の値は許容されていない。このシステムにおいて
は、画像のサンプルを表すために8ビット2進数が使用
され、そして、ゼロ及び255の値は使用してはならな
い。
【0113】この種の画像が、本発明の具体化に組み込
まれたパイプラインにおいて処理される必要がある場合
には、これらの値の1つ(例えば、ゼロ)は、パイプラ
イン内の特定のステージにおけるデータが有効でないこ
とを示すために使われることになる。従って、あらゆる
ゼロでないデータは有効であるとみなされるべきであ
る。この例においては、識別可能であって、しかも、関
連しているデータの「有効性」を記憶しつつあると言う
ことのできる特定のラッチは無い。それにも拘わらず、
データの妥当性は、データと共に記憶される。
【0114】図1に示すように、各ステージへのVAL
ID信号の状態は、上側の右向き矢印上において
「H」、または「L」として示される。従って、ステー
ジAからステージBへのVALID信号はLOWであ
り、そして、ステージDからステージEへのVALID
信号はHIGHである。各ステージへのACCEPT信
号の状態は、下側の左向き矢印上に「H」、または
「L」として示される。従って、ステージEからステー
ジDへのACCEPT信号はHIGHであり、一方、ス
テージFへのパイプラインの下流に接続されたデバイス
からのACCEPT信号はLOWである。
【0115】上流の隣接ステージから下流のステージへ
向かうACCEPT信号がHIGHである場合にはいつ
でも、データは、1サイクル期間中に1つのステージか
らもう一方のステージまで転送される(以下に説明す
る)。2つのステージ間におけるACCEPT信号がL
OWである場合には、データは、これらのステージの間
で転送されない。
【0116】再び図1を参照して、1つのボックスに陰
がつけられている場合には、対応するパイプラインステ
ージは、例えば、有効な出力データを含むものと仮定さ
れる。同様に、当該ステージから次のステージまで供給
されるVALID信号はHIGHである。ステージB、
D、及びEが有効なデータを含む場合におけるパイプラ
インを図1に示す。ステージA、C、及びFは、有効な
データを含まない。開始点においては、パイプラインス
テージAへのVALID信号はHIGHであり、パイプ
ラインへの伝送回線上のデータが有効であることを意味
する。
【0117】同様に、この時点において、パイプライン
ステージFへのACCEPT信号はLOWであり、従っ
て、有効であると有効でないとに拘わらず、ステージF
からデータは転送されない。有効および無効データがパ
イプラインステージ間において転送されることに注意さ
れたい。価値のないデータを保管する無効データは重ね
書きされ、それにより、無効データをパイプラインから
除去する。ただし、有効データは処理用または例えば、
パイプラインステージ、当該パイプラインからのデータ
を受け取るパイプラインに接続されたデバイスまたはシ
ステムのような下流のデバイスにおいて使用するために
保管されなければならないので、有効データは重ね書き
されてはならない。
【0118】図1に示すパイプラインにおいて、ステー
ジEは有効なデータD1を含み、ステージDは有効なデ
ータD2を含み、ステージBは有効なデータD3を含
み、そして、上流パイプラインと接続されたデバイス
(図示せず)は、当該パイプラインに転送され、そし
て、処理されるべきデータD4を含む。上流デバイスに
加えて、ステージB、D、及びEは有効なデータを含
み、従って、これらのステージまたはデバイスからそれ
ぞれ後続するデバイスへのVALID信号はHIGHで
ある。ただし、ステージA、C、及びFからのVALI
D信号は、これらのステージが有効なデータを含まない
ので、LOWである。
【0119】パイプラインから下流に接続されたデバイ
スが、パイプラインからデータを受取入れる準備が整っ
ていないものと仮定する。デバイスは、対応するACC
EPT信号をLOWにセットすることにより、この状態
をステージFに送信する。ただし、ステージF自体は有
効なデータを含まず、従って、先行ステージEからデー
タを受け入れることができる。従って、ステージFから
ステージEへのACCEPT信号はHIGHにセットさ
れる。
【0120】同様に、ステージEは有効なデータを含
み、そして、ステージFは、このデータを受け入れる準
備が整っている。従って、有効なデータD1が最初にス
テージFへ転送される限りステージEは新しいデータを
受け入れることができる。換言すれば、ステージFはデ
ータを下流に転送することができないが、他の全てのス
テージは、あらゆる有効なデータを重ね書き又は失うこ
となしに下流に転送できる。従って、サイクル1の終点
において、データは右へ1のステップだけ「シフトされ
る」ことが可能である。この状態をサイクル2に示す。
【0121】図に示す例において、下流のデバイスは、
サイクル2に新しいデータを受け入れる準備がまだ整っ
ていないので、ステージFへのACCEPT信号はまだ
LOWである。従って、ステージFは新しいデータを受
け入れることが出来ない。理由は、そうすると、有効な
データD1が重ね書きされ、そして、失われるからであ
る。従って、ステージEは同様に有効なデータD2を含
むので、ステージEからステージDへのACCEPT信
号の場合と同様に、ステージFからステージEへのAC
CEPT信号はLOWになる。ただし、AからDまでの
全てのステージは新しいデータを受け入れることが可能
であり(これらのステージが有効なデータを含まない
か、或いは、これらのデータは、それらの有効なデータ
を下流にシフトし、そして、新しいデータを受け入れる
ことができるので)、そして、これらのステージは、そ
れぞれ対応するACCEPT信号をHIGHにセットす
ることによってこの条件を直前を先行する隣接ステージ
に送信する。
【0122】サイクル3と行分類された期間中における
サイクル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にシフトされてしまっていることに注意されたい。
【0123】ここで、下流のデバイスがサイクル4にお
いて新しいデータを受け入れる準備が整った状態になる
と仮定することとする。この下流デバイスは、ステージ
へのFACCEPT信号をHIGHにセットすることに
よって、このことを、パイプラインに送信する。ステー
ジC−Fは有効なデータを含むが、これらのステージ
は、この状態で、データを下流にシフトすることが可能
であり、従って、新しいデータを受け入れることが可能
である。従って、各ステージはデータを1ステップだけ
下流にステップすることができるので、これらのステー
ジは、それぞれ対応するACCEPT信号をHIGHの
外にセットする。
【0124】最終のパイプラインステージ(この例では
ステージF)へのACCEPT信号がHIGHである限
り、図1に示すパイプラインは、硬直パイプラインとし
て作動し、そして、各サイクルごとにデータを1ステッ
プだけシフトするだけである。従って、サイクル4にお
いてステージFに含まれるデータD1は、サイクル5に
おいて、パイプラインから次のデバイスにシフトされ、
そして、他の全てのデータは1ステップだけ下流にシフ
トされる。
【0125】ここで、ステージFへのACCEPT信号
がサイクル5においてLOWになると仮定する。これ
は、再度説明すれば、ステージD−Fが新しいデータを
受け入れることができず、そして、これらのステージか
ら直前の先行隣接ステージへのACCEPT信号はLO
Wになる。従って、データD2、D3、及びD4は、下
流にシフト出来ないが、データD5は可能である。従っ
て、サイクル5の後のパイプラインの対応する状態はサ
イクル6として図1に示される。
【0126】本発明の好ましい実施例に従えば、空の処
理ステージを「フィルアップ(充満)」するパイプライ
ンの能力は高度に有利である。理由は、この能力によっ
て、パイプラインの処理ステージが相互に結合から解放
されるからである。換言すれば、パイプラインステージ
のデータを受け入れる準備が整っていない場合であって
も、パイプライン全体は、停止するか、または遅延ステ
ージを待つ必要がない。そればかりでなく、1つのステ
ージが有効なデータを受け入れることができない場合
に、当該ステージは、単に、パイプライン内の時間的な
「壁」を形成するに過ぎない。この状態になっても、
「壁」の下流のステージは、パイプラインに接続された
回路に有効なデータを前進させ続けルコトサエ可能であ
り、そして、「壁」の左側のステージは、依然として、
有効なデータを受け入れ、そして、下流に向かって転送
することができる。数個のパイプラインステージが一時
的に新しいデータを受け入れることが出来ない場合、他
のステージは、正常作動を継続できる。特に、パイプラ
インは、その次のステージが新しいデータを受け入れる
準備が整っていないので前進させることの出来ない有効
なデータがステージAにまだ含まれていない限りデータ
をその最初のステージAに受け入れ続けることが可能で
ある。この例に示すように、1つ又は複数の処理ステー
ジかブロックされた状態においても、データは、パイプ
ライン、及びステージの間に転送可能である。
【0127】図1に示す実施例において、種々のパイプ
ラインステージが、それらの直後に隣接するステージか
ら受け取るACCEPT信号を記憶しないものと仮定す
る。その代りに、下流ステージへのACCEPT信号が
LOWになると、このLOW信号は、有効なデータを含
まない最も近いパイプラインステージまで流れをさかの
ぼって伝播される。例えば、図1を参照して、ステージ
FへのACCEPT信号がサイクル1においてLOWに
なるものと仮定する。サイクル2において、LOW信号
は、ステージFからステージDに戻って伝播する。
【0128】サイクル3において、データD3がステー
ジDにラッチされている場合、ACCEPT信号は、流
れをさかのぼる方向に4つのステージをステージCまで
伝播する。サイクル4においてステージFへのACCE
PT信号がHIGHになる場合には、この信号は、流れ
に逆らってステージCまで伝播する。換言すれば、AC
CEPT信号の変化は、4つのステージを通って後方に
伝播しなければならない。ただし、図1に示す実施例に
おいて、新しいデータを受け入れることができる中間ス
テージがある場合には、ACCEPT信号は、パイプラ
インの始点まで全経路を後方に伝播する必要はない。
【0129】図1に示す実施例において、各パイプライ
ンステージは、意図的でない重ね書きを実施することな
しに、ステージ間でデータを転送可能にするためには、
依然として、個別の入力、及び出力データラッチを必要
とする。更に、図1に示すパイプラインは「圧縮」可能
であるが、下流パイプラインステージがブロックされる
場合、即ち、これらのステージが含むデータをこれらの
ステージが供給できない場合、パイプラインは、有効な
データを含むステージの間に有効なデータを含まないス
テージを提供するために、「膨張」しない。そうではな
くて、圧縮する能力は、第1のパイプラインステージに
有効なデータが所在しない期間に相当するサイクルに依
存する。
【0130】例えば、サイクル4において、ステージF
へのACCEPT信号がLOWのままであり、そして、
有効なデータによってパイプラインステージA及び3が
満たされた場合、有効なデータがステージAに所在し続
ける限り、パイプラインは、それ以上圧縮不可能であ
り、そして、有効な入力データは失われることがある。
それにも拘わらず、図1に示すパイプラインは、データ
が失われる危険を軽減する。理由は、有効なデータを含
まないパイプラインステージがある限り当該パイプライ
ンは圧縮可能であることに因る。
【0131】論理的方法において圧縮および膨張の両者
共に可能であり、そして、ACCEPT信号の伝播を最
も近い先行ステージまに制限する回路を有するパイプラ
インの他の実施例を図2、図3に示す。この実施例を実
現するための回路について以下に詳しく説明及び図説す
るが、図2、図3は、この実施例の作動原理を図説する
ために役立つ。
【0132】比較を容易にするために、図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がパイプライン
に供給される。
【0133】図2、図3において、各パイプラインステ
ージは、このパイプラインの実施例における各ステージ
が一次および第2データ記憶エレメントを含むことを図
説するために2つの半分部分に分割された1つのブロッ
クとして表される。図2、図3において、一次データ記
憶装置は、各ステージの右半分として示される。ただ
し、この記述は説明のみ目的とするものであり、このよ
うに制限されることを意図したものではないことを理解
されたい。
【0134】図2、図3に示すように、ステージへのA
CCEPT信号がHIGHである限り、データは、任意
の所定サイクル期間中に、当該ステージの一次記憶エレ
メントから、その次のステージの二次記憶装置エレメン
トに転送される。従って、ステージFへのACCEPT
信号はLOWであるが、全ての他のステージへのACC
EPT信号はHIGHであり、その結果、データD1、
D2、及びD3はサイクル2において1つのステージだ
け前方にシフトされ、そして、データD4は、第1のス
テージAにシフトされる。
【0135】この点までは、図2、図3に示すパイプラ
イン実施例は、図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を
含んでいるが、その二次記憶装置エレメントは、一切の
有効なデータを重ね書きする危険なしに、他のデータを
記憶するために、依然として、使用できる。
【0136】ここにおいて、以前の場合と同様に、ステ
ージ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は
通常通り、次のパイプラインステージに転送されること
が可能である。
【0137】サイクル4及びサイクル5におけるパイプ
ラインの状態を比較することにより、二次記憶装置エレ
メントを装備することによって、図2、図3に示された
パイプライン実施例が膨張可能となること、即ち、デー
タ記憶エレメントを、その中に有効なデータが前進でき
るように解放することが分かる。例えば、これらのデー
タブロックのデータは、ステージFへのACCEPT信
号がHIGHになるまで転送出来ないので、サイクル4
において、データブロックD1、D2、及びD3は「固
体の壁」を形成する。ただし、この信号が一旦HIGH
になれば、データD1はパイプラインからシフトされ、
データD2はステージFの一次記憶エレメント内にシフ
トされ、そして、その次のデバイスがデータD2を受け
取ることが出来ず、そして、パイプラインがも一度「圧
縮」しなければならない場合、ステージFの二次記憶装
置エレメントは自由になって新しいデータを受け入れる
ことができる状態になる。これをサイクル6に示す。こ
のサイクルの期間中に、データD3は、ステージFの二
次記憶装置エレメント内にシフトされ、そして、データ
D4は、通常通り、ステージDからステージEに供給さ
れる。
【0138】図4、図5、図6、図7は、パイプライン
の好ましい実施例を全体的に示す。この好ましい実施例
は、位相がφ0およびφ1の2相非重複クロックを用い
て、図2、図3に示す構造を実現する。2相クロックが
好ましいが、本発明の様々な実施例を、2相以上のクロ
ックを用いてドライブすることも可能であることを理解
されたい。
【0139】図4、図5、図6、図7に示すように、各
パイプラインステージは、一次および二次記憶装置エレ
メントを示す2つの個別ボックスを持つものとして図示
される。更に、VALID信号及びデータラインは、以
前の場合と同様に、様々なパイプラインステージを接続
するが、説明を容易にするために、図4、図5、図6、
図7にはACCEPT信号のみを示す。或るACCEP
T信号の1つのクロック位相中における状態の変化は、
LOWからHICHへの変化は上向き矢印を用いて図
4、図5、図6、図7に示される。同様に、HIGHか
らLOWへの変化は、下向き矢印で示される。1つの記
憶エレメントからもう1つの記憶エレメント一方へのデ
ータの転送は、大きい開いた矢印によって示される。任
意の所定ステージの一次或いは二次記憶エレメントから
のVALID信号は、記憶エレメントが有効なデータを
含む場合には必ずHIGHであるものと仮定される。
【0140】図4、図5、図6、図7において、各サイ
クルは、非重複クロック位相φ0及びφ1の1つの全周
期で構成されるものとして示される。以下に更に詳細に
説明されるように、データは、クロックサイクルφ1の
期間中に、二次記憶エレメント(各ステージにおける左
のボックスとして示す)から一次記憶エレメント(各ス
テージにおける右のボックスとして示す)に転送され、
他方において、データは、クロックサイクルφ0の期間
中に、1つのステージの二次記憶エレメントからソノ次
のステージの一次記憶エレメントに転送される。同様
に、図4、図5、図6、図7は、各ステージにおける一
次および二次記憶エレメントは、ACCEPT信号がス
テージからステージへ供給されると同じ方法においてA
CCEPT信号を供給するように内部受入れラインを経
てさらに接続されることを示す。このようにして、二次
記憶エレメントは、そのデータを一次記憶エレメントに
いつ供給出来るかを知るはずである。
【0141】図4、図5、図6、図7は、サイクル1の
φ1位相を示す。このサイク中に、それぞれステージ
E、D、及びBの二次記憶エレメントに既にシフトされ
ているデータD1、D2、及びD3はそれぞれのステー
ジの一次記憶エレメントにシフトされる。従って、サイ
クル1のφ0位相中における、パイプラインのコンフィ
ギュレーションは、図2のサイクル1の場合と同じであ
る。以前と同様に、ステージFへのACCEPT信号は
LOWであるものと仮定される。ただし、図4、図5、
図6、図7に示すように、ステージFの一次記憶エレメ
ントへのACCEPT信号はLOWであるが、 この記
憶エレメントは有効なデータを含まないので、この記憶
エレメントはACCEPT信号をその二次記憶エレメン
ト内にHIGHにセットする。
【0142】ステージFの二次記憶エレメントは有効な
データを含まないので、ACCEPT信号は、ステージ
Fの二次記憶エレメントからステージEの一次記憶エレ
メントへの中に同じくHIGHにセットされる。以前と
同様に、ステージFの一次記憶エレメントはデータを受
け入れることができるので、全ての上流一次および二次
記憶エレメントにおけるデータは、一切のデータが重ね
書きさっれることなしに、下流にシフト可能である。1
つのステージからその次のステージまでのデータのシフ
トは、サイクル2における次のφ0位相期間中に行われ
る。例えば、ステージEの一次記憶エレメントに含まれ
る有効なデータD1は、ステージFの二次記憶エレメン
トにシフトされ、データD4はパイプライン内、即ち、
ステージAの二次記憶エレメント内にシフトされる、等
々。
【0143】ステージFの一次記憶エレメントは、サイ
クル2におけるφ0位相期間中には有効なデータをまだ
含まず、従って、一次記憶エレメントからステージFの
二次記憶エレメントへのACCEPT信号はHIGHの
ままである。従って、サイクル2におけるφ0位相期間
中、データは、更に1ステップだけ右へ、即ち、各ステ
ージ内の二次記憶エレメントから一次記憶エレメントま
でシフト可能である。ただし、有効なデータが、一度、
ステージFの一次記憶エレメントにロードされ、下流デ
バイスからのステージFへのACCEPTがまだLOW
である場合には、有効なデータD1を重ね書きおよび破
壊することなしに、ステージFの二次記憶エレメントか
らデータをシフトすることは出来ない。従って、一次記
憶エレメントからステージFの二次記憶エレメントへの
ACCEPT信号はLOWになる。ただし、二次記憶装
置は有効なデータを含まず、そして、そのACCEPT
信号出力はHIGHであったので、データD2は、ステ
ージFの二次憶装置にまだシフト可能である。
【0144】サイクル3のφ1位相期間中は、データは
それより前の全てのステージ内においてシフト可能であ
るが、データD2をステージFの一次記憶エレメント内
にシフトすることは出来ない。ただし、有効なデータ
が、一旦、二次記憶エレメント内にロードされると、ス
テージFはこのデータを供給することができない。ステ
ージFはこのイベントを、そのACCEPT信号をLO
Wの外にセットすることにより送信する。
【0145】ステージFへのACCEPT信号がLOW
のままであると仮定すると、Fステージの上流のデータ
は、次の有効なデータブロックD3がステージEの一次
記憶エレメントに到達するまで、ステージの間、及びそ
れぞれのクロック位相のステージ内においてシフトされ
ることが可能である。図に示すように、サイクル4のφ
1位相期間中にこの状態に到達する。
【0146】サイクル5のφ位相期間中に、データD3
のステージEの一次記憶エレメントへのロードが完了す
る。このデータは更にシフト不可能であるので、ステー
ジEの一次記憶エレメントからのACCEPT信号はL
OWにセットされる。上流データは正常にシフト可能で
ある。
【0147】ここで、図2のサイクル5に示すように、
パイプラインの下流でに接続されたデバイスがパイプラ
インデータを受け入れることができると仮定することと
する。このデバイスは、サイクル4のφ1位相期間中に
ACCEPT信号をパイプラインステージF内にHIG
Hにセットすることによってこのイベントを送信する。
ここにおいて、ステージFの一次記憶エレメントはデー
タを右にシフトし、そして、ステージFの一次記憶エレ
メントは、同様に、新しいデータを受け入れることが可
能である。従って、データD1は、サイクル5のφ1位
相期間中にシフトされたので、ステージFの一次記憶エ
レメントは、セーブされなければならないデータを既に
含んでいない。従って、サイクル5のφ1位相期間中
に、データD2は、ステージF内において、二次記憶エ
レメントから一次記憶エレメントへシフトされる。ステ
ージFの二次記憶エレメントは、ACCEPT信号をス
テージEの一次記憶エレメント内にHIGHにセットす
ることによって新しいデータ及び信号を受け入れること
ができる。1つのステージ内における、即ち、その二次
からその一次記憶エレメントへのデータの転送期間中
に、両組の記憶エレメントは同じデータを含むが、二次
記憶エレメント内のデータは一次記憶エレメント内に同
様に保持されるので、二次記憶エレメント内のこのデー
タは、データ損失なしに、重ね書き可能である。1つの
ステージの一次記憶エレメントからその次のステージの
二次記憶エレメントへのデータ転送に関しても同様に真
である。
【0148】ここにおいて、サイクル5のφ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にセットすること
によってこれを送信する。
【0149】下流のデバイスからパイプラインへのAC
CEPT信号がLOWからHIGHへ、あるいは、その
逆に変化する場合、この変化は、パイプライン内におい
て、直前を先行する記憶エレメントより更に上流まで伝
播してはならない(同一ステージ内か、或いは、先行パ
イプラインステージ内)。更に、この変化は、当該パイ
プライン内において、クロック位相につき1つの記憶エ
レメントブロックだけ上流に伝播する。
【0150】この例に説明されるように、図4、図5、
図6、図7に示すパイプライン構造における「1つのス
テージ」のコンセプトは、ある程度知覚に関わる問題で
ある。データがステージの間に所在する場合には、当該
データは、ステージ内において(二次記憶エレメントか
ら一次記憶エレメントまで)転送され(上流ステージの
一次記憶エレメントから隣接下流ステージの二次記憶エ
レメントへ)されるので、1つのステージは、図4、図
5、図6、図7に示す場合の代わりに、「二次記憶エレ
メント」によって後続される「一次」記憶エレメントか
ら成ると考えて差し支えない。従って、「一次」および
「二次」記憶エレメントのコンセプトは、殆どラベリン
グの問題である。図4、図5、図6、図7において、デ
ータが1つのステージからその次のステージ又はデバイ
スに転送される場合に、一次記憶エレメントは、それか
らデータが取り出されるエレメントであり、そして、
「二次」記憶エレメントは、同一ステージに対して「入
力」記憶エレメントであり得るので、「一次」記憶エレ
メントは、「出力」記憶エレメントとして参照すること
も出来る。
【0151】図1、図3に示すように、前述の実施例に
ついて説明する場合、ACCEPT及びVALID信号
の制御の下でのデータの転送についてのみ言及した。更
に、各パイプラインステージの内部記憶エレメント間で
供給する以前に、或いは、その次のパイプラインステー
ジに供給する以前に、各パイプラインステージは、それ
が任意に受け取ったデータも同様に処理することが可能
であることを理解されたい。従って、更に図4、図5、
図6、図7をも一度参照して、パイプラインステージは
入力及び出力記憶エレメントを含み、そして、その記憶
エレメントに記憶されたデータを任意に処理するパイプ
ラインの一部として定義できる。
【0152】更に、パイプラインステージFから下流の
「デバイス」は、ある種の他のタイプのハードウェア構
造である必要はなく、むしろ、他のパイプラインそのも
の又はその部分であっても差し支えない。以下に説明す
るように、パイプラインステージは、下流の記憶エレメ
ントの全てが有効なデータで満たされた場合のみなら
ず、ステージがそのデータの処理を終了するために複数
のクロック位相を必要とする場合にも、そのACCEP
T信号をLOWにセットすることができる。これは、パ
イプラインステージがその記憶エレメントの1つ又は両
方内に有効なデータを作る場合にも、同様に起こり得
る。換言すれば、ステージにとって、直ぐ下流の記憶エ
レメントが、供給不可能な有効なデータを含むか否かに
基づいてACCEPT信号を単に供給することは必要で
ない。むしろ、ACCEPT信号自体も、隣接記憶エレ
メント間のデータ用通路を制御するために、当該ステー
ジ内において、或いは、当該ステージにとって外部の回
路によって、変更可能である。VALID信号は、類似
の方法において同様に処理可能である。
【0153】2線インターフェース(VALID及びA
CCEPT信号の各々に対してそれぞれ1本のワイヤ)
の大きな利点は、パイプラインをその開始ステージまで
全経路を後方に向かって伝播するために必要な制御信号
なしで、パイプラインを制御する能力を持つことであ
る。図1のサイクル3を再度参照することとし、例え
ば、ステージFは、データを受け入れることができない
ことをステージEに「告げ」るが、ステージEはステー
ジDに告げ、そして、ステージDはステージCに告げ
る。実際問題として、含まれる有効なデータよりも多く
のステージが有る場合には、この信号がパイプラインに
沿って更に遠くまで後方に伝播する可能性がある。図
4、図5、図6、図7に示す実施例、サイクル3におい
て、LOW ACCEPT信号は、ステージEより上流
には一切伝播せず、その一次記憶エレメントまでにとど
まる。
【0154】以下に説明するように、この実施例は、当
該設計を実現するために必要なシリコン部分に特に添付
することなしに、この融通性を達成することができる。
一般に、データ記憶のために使われるパイプラインにお
ける各ラッチは、余分にトランジスタ1つだけを必要と
する(極めて能率的にシリコンに適合する)。更に、各
半ステージにおいてデータラッチと関連するACCEP
T及びVALID信号を処理するために、余分に2つの
ラッチ及び少数のゲートを追加することが好ましい。
【0155】図4、図5、図6、図7に示すようにステ
ージを実現するハードウェア構造を図8に示す。
【0156】説明するための一例に過ぎないが、(オプ
ションとしての組合わせ論理回路においてそれ以上の操
作を行うか、又は、行うことなしに)パイプラインを通
って並列に8ビットデータを転送するものと仮定する。
ただし、本発明を実現するためには、1ビットデータ又
は8ビット未満のデータのいずれかを用いることができ
ることを理解されたい。更に、本実施例に従った2線イ
ンターフェースは、あらゆる幅のデータバスと共に使用
することに適しており、そして、データバスの幅は、特
定アプリケーションの必要性に応じて、ステージ毎に異
なることもあり得る。この実施例に従ったインターフェ
ースは、アナログ信号を処理するためにも使用できる。
【0157】既に検討したように、これとは別の従来の
タイミング配置を使用可能であるが、インターフェース
は、2相非重複クロックによって制御されることが好ま
しい。図8〜図16において、これらのクロック位相信
号は、PH0及びPH1として参照される。図8におい
て、各クロック位相信号用に1本のラインを示す。
【0158】入力データは、マルチビットデータバスI
Nデータを介してパイプラインステージに入力され、そ
して、出力データバスOUTデータを介してその次のパ
イプラインステージ、或いは、その次の受信回路へ転送
される。入力データは、先ず、集合的にLDINとして
参照され上記の二次記憶エレメントを構成する一連の入
力ラッチ(各入力データ信号にたいして1つ)に以下に
示す方法によってロードされる。
【0159】図に示す本実施例の例において、全てのラ
ッチのQ出力は、それらのD入力をフォローする、即
ち、クロック入力がHIGHである場合、即ち、論理
「1」レベルにおいて全てのラッチのQ出力がロードさ
れる。更に、Q出力は、それらの最後の値を保持する。
換言すれば、Q出力は、それらの対応するクロック信号
の降下落端で「ラッチ」される。
【0160】各ラッチは、そのクロックに対して、1つ
又は2つの非重複クロック信号PH0又はPH1(図
9、図10に示すように)、又は、これらのクロック信
号PH0、PH1のうちの1つ、及び1つの論理信号の
理的AND組合わせを持つ。ただし、本発明は、ラッチ
動作の適切なタイミングを保証するために従来の方法が
適用される限り、クロック信号の上昇端でラッチ作動す
るラッチ、或いは、他の既知のラッチ用配置を提供する
ことによって同程度に良好に作動する。
【0161】入力データラッチLDINからの出力デー
タは、任意かつオプションとしての組み合わせ論理回路
B1を経て供給し、この組み合わせ論理回路は、入力ラ
ッチLDINからの出力データを中間データに変換する
ために提供されることもあり、次に、この中間データは
後で出力データラッチLDOUTにロードされ、この出
力データラッチは上記の一次記憶エレメントから成る。
【0162】出力データラッチLDOUTからの出力
は、OUTデータとしてその次のデバイスまで下流方向
に供給される以前に任意かつオプションとしての組み合
わせ論理回路B2を経て同様に供給することが可能であ
る。その次のデバイスとは、他のパイプラインステー
ジ、或いは、パイプラインに接続された他のデバイスで
あっても差し支えない。
【0163】本発明の実現において、パイプラインの各
ステージは、同様に、妥当性検査入力ラッチLVIN、
妥当性検査出力ラッチLVOUT、受入れ入力ラッチL
AIN、及び受入れ出力ラッチLAOUTを含む。これ
らの4つのラッチの各々は、簡単な単一ステージラッチ
であることが好ましい。ラッチU/IN、LVOUT、
LAIN、及びLAOUTからの出力は、それぞれ、Q
VIN、QVOUT、QAIN、QAOUTである。妥
当性検査入力ラッチからの出力信号QVINは、入力と
して直接、或は、中間論理デバイス又は信号を変更する
回路を経て妥当性検査出力ラッチLVOUTへ接続され
る。
【0164】同様に、所定のステージの出力妥当性検査
信号QVOUTは、その次のステージの妥当性検査入力
ラッチQVINの入力へ、直接、又は、中間デバイス又
は論理回路を経て接続しても差し支えない。この場合の
デバイスは、妥当性検査信号を変更するデバイスであっ
ても差し支えない。この出力QVINは、同様に、論理
ゲート(以下に説明する)に接続され、この論理ゲート
の出力は、受入れ入力ラッチLAINの入力に接続され
る。受入れ出力ラッチLAOUTからの出力QAOUT
は、任意に他の論理ゲートを経て類似の論理ゲート(以
下に説明する)に接続される。
【0165】図8に示すように、出力妥当性検査信号Q
VOUTは、後続するステージによってIN VALI
D信号として受け取られることの出来るOUT VAL
IDを形成するか、或いは、単にパイプラインに接続さ
れる後続回路に有効なデータを指示する。その次の回路
またはステージのデータ受け入れ準備は、信号OUTA
CCEPTとして各ステージに指示され、この信号は、
好ましくは以下に説明する論理回路を経て、受入れ出力
ラッチLAOUTに入力として接続される。同様に、受
入れ出力ラッチLAOUTの出力QAUTは、好ましく
は以下に説明する論理回路を経て、受入れ入力ラッチL
AINに入力として接続される。
【0166】本発明を実現する際に、妥当性検査ラッチ
LVINからの出力信号QVIN、QVOUTは、それ
ぞれ、受入れラッチLAIU、LAQUTへの入力を形
成するために、受入れ信号QAOUT、OUT ACC
EPT1とそれぞれ組合わされる。図8に示す実施例に
おいて、これらの入力信号は、それぞれの受入れ出力信
号QACUT、OUT ACCEPTの論理的逆とし
て、それぞれの妥当性検査信号QVIN、QVOUTの
論理NAND組み合わせとして形成される。従来の論理
ゲートNAND1、及びUAND2は、NAND動作を
実施し、そして、インバータINV1、INV2は、そ
れぞれの受入れ信号の論理的逆を形成する。 デジタル
設計技術において周知であるように、NANDゲートの
任意又は全ての入力信号が論理「0」状態にある場合、
NANDゲートからの出力は論理「1」である。従っ
て、NANDゲートの全ての入力が論理「1」状態にあ
る場合に限り、NANDゲートからの出力は論理「0」
である。当該技術分野において同様に周知であるよう
に、例えばINV1のようなデジタルインバータの出力
は、その入力信号が「0」である場合に、論理「1」で
あり、そして、その入力信号が「1」である場合に
「0」である。
【0167】従って、「NOT」が2進反転を示す場合
には、NANDゲートNAND1への入力は、QVI
N、及びNOT(QACUT)である。既知の技術を用
いて、受入れラッチLAINへの入力は、次のとおりに
分解できる。
【0168】 NAND(QVIN,NOT(QAOUT)) =NOT(QVIN)OR QAQUT 換言すれば、信号QVINは「0」であるか、或いは、
信号QAQUTが「1」であるか、或は、両方の場合
に、インバータINV1、及びNANDゲートNAND
1の組み合わせは論理「1」である。従って、ゲートN
AND1及びインバータINV1は、その入力の1つが
受入れラッチLAOUTのQAOUT出力に直接結合さ
れ、いま1つの入力が妥当性検査入力ラッチLVINの
出力信号QVINの反転に結合されている1つの単一O
Rゲートによって実現可能である。
【0169】同様に、デジタル設計技術において周知で
あるように、妥当性検査及び受入れラッチとしての使用
に適する多くのラッチは、2つの出力Q、及びNOT
(Q)、すなわち、Q、及びその論理的逆を持つことが
できる。従って、この種のラッチを選定した場合には、
OPゲート(従って)への1つの入力は、妥当性検査ラ
ッチLVINのNOT(Q)出力に直接結合されること
が可能である。ゲートNAND1及びインバータINV
1は、周知の従来の技術を用いて実現することが出来
る。ただし、使用されるラッチのアーキテクチャに応じ
て、出力を反転することのないラッチを使用し、そし
て、その代りにゲートNAND1、及びインバータIN
V1を提供することが更に効率的である場合もあり得
る。これら両者は、同様に、シリコンデバイスにおいて
能率的に実現可能である。従って、Q信号、及び/又
は、その論理的逆を生成するために任意の既知の配置を
使用することができる。
【0170】双方のクロック信号(出力側におけるPH
0、及び入力側におけるPH1)及び同じ側の受入れラ
ッチからの出力が論理「1」である場合、データ、及び
妥当性検査ラッチLDIN、LDOUT、LVIN、及
びLVOUTは、それらのそれぞれのデータ入力をロー
ドする。従って、クロック信号(入力ラッチLDIN及
びLVINに対するPH0)、及びそれぞれの受入れラ
ッチ(この場合のLAIN)の出力は、論理的ANDの
方法に使用され、そして、それらが双方共に論理「1」
である場合に限り、データはロードされる。
【0171】例えば、ラッチのCMOS実現ような特定
のアプリケーションにおいて、ラッチのローディング
(図に示すCK、または作動化「入力」を経て)を制御
する論理的AND演算は、それぞれの作動化入力信号
(例えば、ラッチLVIN、及びLDINのためのPH
0、及びQAIN)をラッチの入力ラインに直列接続さ
れたMOSトランジスタへのゲートに接続することによ
り従来の方法において容易に実現可能である。従って、
実際の論理ANDゲートを提供することが必要であり、
これによって、高速アプリケーションにおける伝播遅延
に起因するタイミングの問題を引き起こす可能性があ
る。従って、図に示すANDゲートは、様々なラッチの
作動化信号を生成するために実施されるべき論理関数を
指示するに過ぎない。
【0172】従って、PH0及びQAINが双方共に
「1」である場合に限りデータラッチLDINは入力デ
ータをロードする。このデータラッチは、これら2つの
信号のどちらかが「0」になる場合に、このデータをラ
ッチする。
【0173】パイプラインステージの入力(および出
力)側におけるデータ及び妥当性検査ラッチをクロック
するためにはクロック位相信号PH0またはPH1の1
つだけが用いられるが、もう一方のクロック位相信号
は、同じ側における受入れラッチをクロックするために
直接用いられる。換言すれば、パイプラインステージの
いずれかの側(入力、または出力)の受入れラッチは、
同じ側のデータ及び妥当性検査ラッチを用いて、その
「位相外れ」をクロックされることが好ましい。例え
ば、PH0は、データラッチLDIN及び妥当性検査ラ
ッチLVIN用のクロック信号CKを生成するために使
われるが、PH1は、受入れ入力ラッチをコロックする
ために用いられる。
【0174】2線妥当性検査及び受入れ回路によって増
補されたパイプラインの作動例として、当該回路への入
力においては、先行パイプラインステージ、或いは、伝
送デバイスのどちらからも、最初には、有効なデータは
提供されないものと仮定する。換言すれば、当該システ
ムは極めて最近リセットされたので、図に示すステージ
への妥当性検査入力信号IN VALIDはまだ「1」
になっていないものと仮定する。更に、システムが最後
にリセットされた時から、数回のクロックサイクルが発
生し、そして、その結果として、当該回路は定常に到達
したものと仮定する。従って、クロックPH0のその次
の正の期間中、妥当性検査ラッチLVINからの妥当性
検査入力信号QVINは「0」としてロードされる。従
って、クロック信号PH1のその次の正の期間中、受入
れ入力ラッチLAIN(ゲートNAND1、または他の
同等のゲートを介して)への入力は、「1」としてロー
ドされる。すなわち、データ入力ラッチLOINにおけ
るデータは有効でないので、当該ステージは(当該ステ
ージは一切のデータ価値保管を保持しないので)、当該
ステージが入力データの受け入れ準備が整っていること
を送信する。
【0175】この例において、データ及び妥当性検査ラ
ッチLOIN及びLVINを作動可能にするために信号
IN ACCEPTが用いられることに注意されたい。
この時点において、信号IN ACCEPTは「1」で
あるので、これらのラッチは、従来の透過ラッチとして
効果的に作用し、その結果として、INデータバス上の
あらゆるデータは、クロック信号PHDが「1」になる
と直ちに、単に、データラッチLOINにロードされ
る。勿論、その受入れラッチからの出力QAOUTが
「1」である限り、この無効データも、同様に、その次
に後続するパイプラインステージのその次のデータラッ
チLDOUTにロードされる。
【0176】従って、データラッチが有効なデータを含
んでいない限り、それぞれのクロック信号のその次の正
の周期中、このラッチは、提供されるあらゆるデータを
受け入れる、即ち、「ロード」する。一方、そのような
無効のデータは、対応する受入れラッチからの受入れ信
号がそれに対してロー(即ち、「0」)であるような一
切のステージにロードされない。更に、妥当性検査ラッ
チへの対応するINVALID(或いは、QVIN)信
号がローである限り、妥当性検査ラッチからの出力信号
(その次の妥当性検査ラッチへの妥当性検査入力信号を
形成する)は「0」のままである。
【0177】データラッチへの入力データが有効である
場合には、妥当性検査信号IN VALIDが「1」ま
で上昇することによってこれを指示する。次に、対応す
る妥当性検査ラッチの出力は、各クロック位相信号のそ
の次の上昇端において「1」まで上昇する。例えば、ク
ロック位相信号PH0のその次の上昇端において、対応
するIN VALID信号がハイになる(すなわち、
「1」に上昇する)場合、ラッチLVINの妥当性検査
入力信号QVINは「1」に上昇する。
【0178】その代りに、ここで、データ入力ラッチL
DINが有効なデータを含んでいるものと仮定する。デ
ータ出力ラッチLDOUTの新しいデータを受け入れる
準備が整っている場合には、その受入れ信号QAOUT
は「1」である。この場合、クロック信号PH1のその
次の正の周期中に、データラッチLDOUT及び妥当性
検査ラッチVOLTは作動可能化され、そして、データ
ラッチLDOUTは、その入力に所在するデータをロー
ドする。クロック信号は非重複性であるので、上記の動
作は、もう一方のクロック信号PH0のその次の上昇端
以前に発生する。従って、PH0のその次の上昇端にお
いて、先行データラッチ(LDIN)は、データ出力ラ
ッチLOOUTが、ラッチLDINから転送されたデー
タを安全にラッチし終わるまで、先行ステージからの新
しい入力データにおいてラッチしない。
【0179】従って、クロックの交互位相に基づいて作
動するので、データを受け取り可能なデータラッチ(ス
テージ内、或いは、隣接ステージ間)の全ての隣接対に
よって同じシーケンスが続けられる。未だ供給できない
有効なデータを含んでいるために、新しいデータを受け
入れる準備が整っていないあらゆるデータラッチは、L
OWである出力受入れ信号(その受入れラッチLAから
のQA出力)を持ち、そして、そのデータラッチLDI
N或いはLDOUTはロードされない。従って、所定の
ステージ、又は、或るステージの一方の側(入力、また
は出力)の受入れ信号(受入れラッチからの出力)がL
OWである限り、その対応するデータラッチはロードさ
れない。
【0180】好ましい実施例に含まれるリセット機能を
図8に示す。この図に示す例において、リセット信号N
OTRESET0は、妥当性検査出力ラッチLVOUT
の反転リセット入力(反転は、従来通り、小さい丸によ
って示す)に接続される。周知のように、これは、リセ
ット信号NOTRESET0が「0」になるときはいつ
でも、妥当性検査ラッチLVOUTが「0」を出力する
ように強制されることを意味する。リセット信号がロー
になる(「0」になる)場合にラッチをリセットするこ
との1つの利点は、伝送の遮断によてラッチをリセット
することである。この場合、有効な伝送が始まり、そし
て、リセット信号がHIGHになる時にはいつでも、こ
れらのラッチは「空の」状態、或いは、リセットされた
状態である。従って、リセット信号NOTRESET0
はデジタル「オン/オフ」スイッチとして作動する。従
って、この信号は、パイプラインを作動化するためには
HIGH値でなければならない。
【0181】パイプラインにおいて有効なデータを保持
するラッチの全てをリセットすることが必要ではないこ
とに注意されたい。図8に示すように、妥当性検査入力
ラッチLVINは、リセット信号NOTRESET0に
よって直接リセットされず、間接的にリセットされる。
リセット信号NOTRESET0が「0」に降下するも
のと仮定する。受入れ出力ラッチLAQUT(ゲートN
AND1を経て)への入力がHIGHになると、その以
前の状態には無関係に、妥当性検査出力信号QVOUT
も同様に「0」まで降下する。同様に、受入れ出力信号
QAOUTも「1」に上昇する。次に、このQAOUT
値「1」は、「1」として、妥当性検査入力信号QVI
N状態には無関係に、受入れ入力ラッチ入力LAINへ
転送される。次に、受入れ入力信号QAIは、Nクロッ
ク信号PH1の次の立ち上がりエッジにおいて「1」ま
で上昇する。妥当性検査信号IN VALIDが正しく
「0」にリセットされたと仮定すれば、妥当性検査ラッ
チLVINが直接リセットされていた場合にはたなら
ば、実施された時に、クロック信号PH0の次の立ち上
がりエッジにおいて、妥当性検査ラッチLVINからの
出力は「C」になる。
【0182】この例が示すように、全ての妥当性検査ラ
ッチをリセットするためには、各ステージ(最終ステー
ジを含む)のただ1つの側においてのみ妥当性検査ラッ
チをリセットすることだけが必要である。事実、多くの
アプリケーションにおいて、他の全ての妥当性検査ラッ
チをリセットすることは必要でない。即ち、リセット信
号NOTRESET0が、クロックの双方の位相PH
0、PH1の完全な1サイクルよりも長い期間に亙って
所在することが保証可能である場合には、「自動リセッ
ト」(リセット信号の後方伝播)が、先行パイプライン
ステージにおける妥当性検査ラッチ期間に対して発生す
る。実際問題としては、少なくとも所在するパイプライ
ンステージの数と同数のクロックの双方の位相の全サイ
クル数の期間中に亙りリセット信号が保持される場合、
最終パイプラインステージにおける妥当性検査出力ラッ
チを直接リセットすることだけが必要である。
【0183】図9、図10は、非重複クロック信号PH
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ワードの拡張ビットの直後に伝送されることが
好ましい。
【0184】従って、トークンは、本発明における(2
進)デジタルデータの1つ又は複数のワードから成る。
これらのワードの各々は、好ましくは並列に順序立てて
転送される。ただし、この転送方法は必ずしも必要で
く、既知の技術を用いて直列データ転送も可能である。
例えば、動画構文解析系において、制御情報は並列に伝
送され、この場合、データは直列に伝送される。
【0185】例として図示するように、各トークンは、
好ましくは開始時において、トークンに含まれるデータ
のタイプを識別する1つのアドレスフィールド(A‐ビ
ットのストリング)を持つ。殆どのアプリケーションに
おいて、1つの単一ワード、または1つのワードの部分
は、アドレスフィールド全体を転送するために十分であ
る。しかし、アドレスフィールド全体を受け取り、そし
て、デコードするのに充分な長さを持つ部分的なアドレ
スフィールドのある程度の表現を記憶することができる
ような対応するパイプラインステージに論理回路が含ま
れていさえすれば、前記に条件は、本発明にとって必ず
しも必要でない。
【0186】アドレスフィールドを伝送するためには専
用線または専用レジスタを必要としないことに注意され
たい。アドレスフィールドは、データビットを用いて伝
送されることに注意されたい。以下に説明するように、
特定のアドレスフィールドによって作動化されることが
意図されていない場合、即ち、ステージが遅延なしにト
ークンに沿って供給可能である場合には、パイプライン
ステージは減速されない。
【0187】アドレスフィールドに続くトークン内の残
りのデータは、トークンの使用によって制約されない。
これらのDデータビットは、任意の値をとることが可能
であり、そして、これらのビットに付けられ意味はここ
では重要でない。即ち、データの意味は、例えば、特定
の時点に当該データがシステム内のどこに配置されてい
たかによって、変化することが可能である。アドレスフ
ィールドの後に添付されたデータビットDの数は、必要
なだけ長くても短くても差し支えなく、そして、トーク
ンが異なれば、データワードの数が大幅に変化すること
がある。アドレスフィールド、及び拡張ビットは、パイ
プラインステージに対して、制御信号を運ぶために使わ
れる。データフィールド内のワード(Dビットのストリ
ング)の数は随意で差し支えないので、データフィール
ドにおいて運ばれる情報も、それに応じて変化可能であ
る。従って、以下の説明は、アドレス及び拡張ビットの
使用に向けられる。本発明において、回路内の多数のブ
ロックが、比較的簡単な構成にまとめて接続されている
場合、トークンは特に有用なデータ構造である。最もシ
ンプルなコンフィギュレーションは、例えば、その1つ
が図1に示されているような、処理ステップのパイプラ
インである。ただし、トークンの使用は、パイプライン
構造における使用にのみ制約されない。
【0188】各ボックスは完全なパイプラインステージ
を表すものと再度仮定する。図1のパイプラインにおい
て、データは図の左から右に流れる。データは、マシン
に入り、そして、処理ステージAに供給する。このステ
ージはデータを修正する場合もあれば、しない場合もあ
り、そして、データをステージBへ供給する。修正され
る場合には、複雑であることもあり、そして、一般に、
任意のステージに流入するデータアイテムの数は、流出
数と同じでない。ステージBは、再びデータを修正し、
そして、それをステージCに供給する、等々。この種の
設計の場合には、データにとって、反対方向に流れるこ
とは不可能である。従って、例えば、ステージCはデー
タをステージAに供給できない。この制約条件は、完全
に受け入れられる場合が多い。
【0189】一方、これら2つのブロックの間が直接接
続されていない場合であっても、ステージAが情報をス
テージCに伝達することができることは非常に望まし
い。ステージAとCの通信はステージBをへる場合に限
られる。トークンの1つの利点は、トークンがこの種類
の通信を達成する能力を備えていることである。トーク
ンを認識しないあらゆる処理ステージは変更しないトー
クンをその次のブロックに単に供給するに過ぎない。
【0190】この例によれば、1つの拡張ビットは、各
トークンにおけるアドレス及びデータフィールドと共に
伝送されるので、処理ステージは、そのアドレスを復号
化しなければならないことを一切必要とせずに、トーク
ン(随意の長さであり得る)を供給することができる。
この例によれば、HIGH(「1」)である拡張ビット
をその中に含むあらゆるトークンには、同じトークンの
一部である後続ワードによって後続される。この後続ワ
ードも、同様に、拡張ビットを持ち、このビットは、ト
ークン内に更に別のトークンワードがあるかどうかを示
す。ステージがその拡張ビットがLOW(1つの
「0」)であるようなトークンワードに遭遇した場合に
は、そのトークンワードが当該トークンの最後ワードで
あることが分かる。従って、その次のワードは、新しい
トークンの第1のワードであると仮定される。
【0191】処理ステージの簡単なパイプラインは特に
有用であるが、トークンは、更に複雑なコンフィギュレ
ーションの処理エレメントに適用可能であることが分か
ることに注意されたい。更に複雑な処理エレメントの例
を次に示す。
【0192】本発明の場合には、「0」にセットされた
拡張ビットを与えることにより所定のトークンの最後の
ワードを送信するために、拡張ビットの状態を使用する
必要はない。好ましい実現計画への1つの代替案は、ト
ークンの最後のワードの代りにトークンの第1のワード
を示すように拡張ビットを移動させることである。これ
は、符号復号化ハードウェアを適切に改造することによ
って達成できる。
【0193】トークンの第1のワードでなくて最後のワ
ードを送信するために本発明の拡張ビットを用いた場合
の利点は、トークンが拡張ビットを持っているかどうか
に応じて、回路のブロックの作動様式を修正することが
有用である場合が多い。前記の論旨の例は、量子化表
(一般にはメモリーデバイス)に記憶された動画量子化
値を処理するステージを作動化するトークンである。例
えば、64の8ビット任意2進整数を含む表である。
【0194】新しい量子化表をパイプラインの量子化器
ステージにロードするためには、「QUANT・テーブ
ル」トークンが量子化器に送られる。そのような場合、
例えば、トークンは、65のトークンワードから成る。
第1のワードは、コード「QUANT・テーブル」を含
む、即ち、量子化表を作る。これには、量子化表の整数
である64のワードが後続する。
【0195】動画データをコード化する場合、この種の
量子化表を伝送することが時おり必要である。この機能
を達成するために、拡張ワードなしのQUANT・テー
ブルトークンを量子化器ステージに送ることが出来る。
このトークンを見て、そして、その第1のワードの拡張
ビットがLOWであることに気が付いた場合、量子化器
ステージは、その量子化表を読みとり、そして、64の
量子化表値を含むQUANT・テーブルトークンを作成
することが出来る。第64番目の量子化表の値に相当す
るLOW拡張ビットによって当該トークンの新規な終端
が示されるまで、当該拡張ビットがHIGHであり、そ
して、HIGH拡張ビットの状態で当該トークンが継続
するように、第1のワード(LOWであった)の拡張ビ
ットが変更される。これは、システムを通って一般的な
方法で進行し、そして、ビットの流れの中にコード化さ
れる。
【0196】この例を用いて説明を続けることとし、量
子化器は、QUANT・テーブルトークンの第1ワード
がその拡張ビットをセット済みであるか否かに応じて、
新規な量子化表をそれ自体のメモリーデバイスにロード
するか、或いは、その表を読みとることのどちらかが可
能である。
【0197】拡張ビットを使用して1つのトークン内の
第1のトークンワードか或は最後のトークンワードのど
ちらを送信するかの選定は、その中でパイプラインが使
用されるシステムに依存する。両代替案共に、本発明に
従って可能である。
【0198】好ましい拡張ビット案の別の代替案は、ト
ークンの開始に際して長さカウントを含むことである。
例えば、トークンが非常に長い場合、この種の装置が効
率的であることもある。例えば、所定のアプリケーショ
ンにおける一般的なトークンの長さは1000ワードで
あるものと仮定する。図に示す拡張ビット案(各トーク
ンワード添付されたビットを持つ)を用いた場合、トー
クンは、全ての拡張ビットを含むために、1000の付
加的ビットが必要である。ただし、2進フォームにおい
てトークンの長さをコード化するためには、僅かに10
ビットが必要である。
【0199】従って、長いトークンの用途はあるが、経
験によれば、短いトークンの用途も多いことが判明して
いる。ここでは、好ましい拡張ビット案が有利である。
トークンの長さわずかの1ワードである場合には、これ
を送信するために、わずか1ビットが必要とされる。た
だし、カウント案には、前記の場合と同じ10ビットを
必要とする。
【0200】長さカウント案の欠点を次に示す。1)短
いトークンに対して非能率的である。2)トークンに対
して最大の長さの点で制約する(1023ワード未満で
あれば、僅かに10ビットでカウント可能である)3)
カウントを生成する(おそらくトークン開始時ある)以
前にトークンの長さが既知でなければならない。4)ト
ークンを扱う全ての回路ブロックは、ワードをカウント
するためのハードウェアを備える必要がある。5)カウ
ントが腐敗した場合(データ伝送エラーのために)、回
復が達成可能かどうかが明瞭でない。
【0201】本発明に基づく拡張ビット案の利点を次に
示す。1)未認識トークンは、拡張ビットのみを考察す
ることによって正しく供給出来るので、パイプラインス
テージは、全てのトークンを復号化する回路ブロックを
備える必要がない。2)拡張ビットの符号化は、全ての
トークンに関して同じである。3)トークンの長さに関
して限界がない。4)この計画案は、短いトークンに対
して効率的である(トークンの長さを表すためのオーバ
ーヘッドに関して)。5)エラー回復が自然に達成され
る。拡張ビットが腐敗した場合には、1つのランダムト
ークンが生成されるか「(「1」から「0」までの腐敗
した拡張ビットに関して)、或いは、トークンは失われ
る(腐食拡張ビットは「0」から「1」まで)。更に、
問題は関係するトークンに限って局部的に所在する。当
該トークンの後で、正しい動作が自動的に再開される。
【0202】更に、アドレスフィールドの長さが変化し
ても差し支えない。これによって、最も一般的なトーク
ンを非常に少ない数のワードに圧搾することが可能であ
るので、高度に有利である。これは、全ての処理ステー
ジが全バンド幅で連続的に作動可能であることを保証す
るので、結果的に、動画データパイプラインシステムに
おいて非常に重要である。
【0203】本発明に基づき、可変長さのアドレスフィ
ールドを可能にするために、ランダムデータが後続する
短いアドレスが、長めのアドレスと決して混同されない
ようにアドレスが選定される。アドレスフィールドをコ
ード化するための好ましい技術(意図したパイプライン
ステージを作動化するための「コード」としても役立
つ)は、ハフマンによって最初に開示され通称「ハフマ
ンコード」と呼ばれる周知の技術である。ただし、当該
技術分野における通常の熟練者であれば、他の符号化案
を用いても成功するであろうと言うことは理解される筈
である。
【0204】ハフマン符号化はデジタル設計の分野にお
いてよく理解されているが、一般的な背景を提供するた
めに次の例を示す。
【0205】ハフマンコードは、記号列によって構成さ
れたワードから成る(例えば本発明のようなデジタルシ
ステムの文脈においては、記号は、一般に2進数字であ
る)。コードワードの長さは可変せあり、そして、ハフ
マンコードワードの特殊な性質は、短めのコードワード
を形成する記号で始まる長めのコードワードは有り得な
いようにコードワードが選択されることである。本発明
に基づけば、トークンアドレスフィールドは、既知のハ
フマン符号化技術を用いて選定されることが(必ずしも
必要ではないが)好ましい。
【0206】更に、本発明においては、第1のワードト
ークンの最上位ビット(MSB)においてアドレスフィ
ールドが始まることが好ましい。(MSBに関する明示
は任意であり、そして、本案は、MSBに関する様々な
明示を収容するように修正可能である。)アドレスフィ
ールドは、より重要度の低い隣接ビットを介して継続す
る。特定のアプリケーションにおいて、トークンアドレ
スが複数のトークンワードを必要とする場合には、あら
ゆる所定のワード内の最下位のビットであるアドレスフ
ィールドは、その次のワードの最上位ビットにおいて継
続する。アドレスフィールドの最小の長さは1ビットで
ある。
【0207】本発明において使用されるトークンを生成
するためには、数種の既知ハードウェア構造のうちの任
意の1つを使用することが出来る。この種の構造の1つ
は、マイクロプログラムされた状態マシンである。ただ
し、既知のマイクロプロセッサ、または他のデバイスを
使用しても差し支えない。
【0208】本発明に基づくトークン計画案の主要な利
点は、予測されなかった必要性への適応性を備えている
ことである。例えば、新規なトークンが導入される場
合、この導入は極く少数のパイプラインステージにのみ
影響するのが一般的である。最も有り得る場合は、僅か
に2つのステージ、または回路ブロックが影響されるこ
とである。即ち、一方のブロックはまず第一にトークン
を生成し、そして、いま一方のブロック又はステージ
は、この新しいトークンを扱うために新規に設計、或い
は、修正されたものである。その他のパイプラインステ
ージは、一切改造する必要のないことに注意しされた
い。それどころか、これらのステージは、この新規なト
ークンを認識せず、従って、改造されないトークンを供
給するので、これらのステージの設計を改造することな
しに、新規なトークンを扱うことができる。
【0209】設計済みの既存のデバイスを、実質的に影
響されない状態にしておく能力を持つことは本発明の明
瞭な利点である。1つのチップ・セット内の幾つかの半
導体チップを、前記のチップ・セット内の前記以外の幾
つかの半導体チップを設計面において改良することによ
り、完全に影響を受けない状態にしてをくことが可能で
ある。これは、顧客およびチップメーカー両方の立場か
ら有利である。改造が、設計変更によって全てのチップ
が影響されることを意味するとしても(集積化の進歩レ
ベルが徐々に高くなり、システム内におけるチップの個
数が低下するような条件)、同じ設計を再使用できるの
で、市販されるまでに要する時間の点において、達成可
能な程度よりも優れていると言うかなりの利点が残され
る。
【0210】特に、2ワードアドレスを含むようにトー
クンセットを拡張することが必要となった場合に起きる
条件に注意されたい。この場合においてさえも、既存の
設計を改造することは未だ必要でない。パイプラインス
テージにおけるトークンデコーダは、この種トークンの
第1ワードを復号化することを試み、そして、第1ワー
ドがトークンを認識しないことを結論する。次に、この
トークンデコーダは、この動作を正しく実施するために
拡張ビットを用いることによって改造されたトークンを
供給する。このトークンデコーダは、第2ワードは、こ
のトークンデコーダが認識しないトークンのデータフィ
ールドの一部であると「仮定する」ので、(当該トーク
ンがアドレスビットを含むとしても)このトークンデコ
ーダは、当該トークンの第2のワードを復号化しようと
試行しない。
【0211】多くの場合、パイプラインステージ、また
は接続された回路ブロックはトークンを改造する。これ
は、一般に、ただし、必要条件としてではなく、コーク
ンデータフィールドを改造する形をとる。更に、特定の
データワードを除去するか、或いは、新規なデータワー
ドを付加するかいずれかの方法により、改造しようとす
るトークン内のデータワードの個数を変更するのが一般
的である。場合によっては、トークンは、トークンの流
れから完全に除去される。
【0212】大抵のアプリケーションにおいて、パイプ
ラインステージは、一般に、2、3のトークンを復号化
する(トークンによって作動化される)に過ぎない。即
ち、ステージは、他のトークンを認識せず、そして、他
のトークンを変更しないで供給する。非常に多くの場
合、ただ1つのトークン、即ち、データトークンアード
自体が復号化される。
【0213】多くのアプリケーションにおいて、特別の
ステージのオペレーションは、自体の過去のオペレーシ
ョンの結果に依存する。従って、ステージの「状態」
は、その前の状態に依存する。換言すれば、ステージ
は、記憶された状態情報に依存し、このことは、当該ス
テージが、1つ又はそれ以上前のクロックサイクルにお
けるそれ自身のヒストリに関するいくらかの情報を保持
しなければならないことを述べる他の方法である。本発
明は、この種の「状態マシン」ステージを含むパイプラ
インにおける使用、並びに、データパスにおけるラッチ
が簡単なパイプラインラッチであるようなアプリケーシ
ョンにおける使用に良く適する。
【0214】本発明に基づく2線インターフェースが、
この種「状態マシン」(state machine)回路に対して適
合性を有することは、発明の重要な利点である。これ
は、データパスがステートマシンによって制御されつつ
ある場合に特に真である。この場合、上記の2線インタ
ーフェース技術は、マシンの「現行状態」がパイプライ
ンにおいて制御中のデータと歩調を合わせて留まってい
ることを保証するために使用できる。
【0215】トークンアドレスフィールドを復号化する
ためにパイプラインステージに含まれる回路の1つの例
の簡素化された構成図を図11に示す。この図は、「状
態マシン」の特性を持つパイプラインステージを示す。
トークンの各ワードは1つの「拡張ビット」を含み、こ
のビットは、当該トークン内にこれより多くのワードが
あればHIGHであり、或いは、これがトークンの最終
ワードであるばLOWである。これがトークンの最終ワ
ードである場合には、その次の有効なデータワードは、
新規なトークンの開始であり、従って、そのアドレスは
復号化されなければならない。従って、あらゆる所定の
ワードにおけるトークンアドレスを復号化するかどうか
に関する決定は、前の拡張ビットの値を知ることに依存
する。
【0216】図面を簡潔にする目的だけのために、2線
インターフェース(受入れ、及び妥当性検査信号、及び
ラッチと共に)は図示しないこととし、そして、回路を
リセットすることを扱う全ての詳細については省略する
こととする。以前と同様に、8ビットデータワードは、
制約のためでなく、単なる例として仮定される。
【0217】この一例としてのパイプラインステージ
は、データビット及び拡張ビットを1つのパイプライン
ステージだけ遅延させる。更に、このステージは、デー
タトークンを復号化する。回路出力にデータトークンの
第1ワードが供給される時点において、信号「データA
DDR」が作られ、そして、HIGHにセットされる。
データビットは、ラッチLDIN及びLDOUTによっ
て遅延され、これらラッチの各々は、この例(8入力8
出力ラッチに対応する)に使われる8データビットに対
して8回繰り返される。同様に、拡張ビットは、拡張ビ
ットラッチLEIN、及びLEOUTによって遅延され
る。
【0218】この例において、ラッチLEPREVは、
拡張ビットの最も最近の状態を記憶するために備えられ
る。拡張ビットの値は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」であり、そして、ゼロ‐ワン位置
におけるビットはあらゆる任意の値を持つ。
【0219】従って、4つの可能なデータワードは
(「xx」の4つの順列がある)、SA、及びひいて
は、入力SAがその入力に接続されているアドレス信号
ラッチLADDRの出力をHIGHにする。換言すれ
ば、このステージは、4つの可能な適正トークンの1つ
が供給される場合、及び前の拡張ビットがゼロであった
場合、すなわち、前のデータワードが、前の一連のトー
クンワードにおける最終ワードであって、現行トークン
ワードが現行トークンにおける第1トークンワードであ
ることを意味する場合に限り、作動化信号(データAD
DP「1」)を供給する。
【0220】従って、ラッチLEPREVからの信号Q
PREVがLOWである場合、ラッチLDINの出力に
おける値は、新規なトークンの第1ワードである。ゲー
トNAND1、NAND2、及びNOR1は、データト
ークン(000001xx)を復号化する。ただし、こ
のアドレス復号化信号SAは、信号データADDRが出
力データOUTデータ、及びOUTEXTNと同じタイ
ミングを持つように、ラッチLADOPにおいて遅延さ
れる。
【0221】本発明に基づく状態従属パイプラインステ
ージの別の簡単な例を図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つの方法を示す。
【0222】これは、「状態従属」パイプラインステー
ジの非常に簡単な例、即ち、ただ1つの単一ビットの状
態に依存する例であるが、パイプラインステージ間にお
いてデータが実際に転送される場合に限り、状態情報を
保持する全てのラッチが更新されることは全体的に真で
ある。換言すれば、データが双方共有効であり、そし
て、その次のステージによって受け入れられつつある場
合に限られる。従って、この種のラッチが適切にリセッ
トされていることを保証するために、注意しなけばなら
ない。
【0223】本発明に基づいてトークンを生成および使
用することは、パイプラインを介してデータを転送する
ための周知の符号化技術よりも数々の利点を提供する。
【0224】第1に、既に説明したように、一般のトー
クンの効率的な表現を提供するために、トークンのアド
レスフィールドの長さは可変であっても差し支えない
(そして、例えば、ハフマン符号化を利用できる)。
【0225】第2に、トークンの長さについて一貫性の
ある符号化を行うことにより、所定のパイプラインステ
ージにおけるトークンデコーダ回路により当該トークン
が認識されない場合であっても、トークンの終了が(従
って、その次のトークンのスタートが)正しく処理され
ることを可能にする(簡単で非操作的な転送を含む)。
【0226】第3に、未認識トークンを扱うための(即
ち、変更されないままでトークンを供給するための)規
則及びハードウェア構造により1つのステージとパイプ
ライン内の最も近い隣接ステージでない下流のステージ
との間の通信を可能にする。更に、これは、既存のパイ
プラインステージの大規模な再設計を必要とすることな
くトークンセットの将来における変更を可能にするの
で、パイプラインの拡張可能性および効率的適応性を増
大する。本発明のトークンは、以上および以下において
説明されるように、2線インターフェースと共に使用し
た場合に、特に有用である。
【0227】図13及び図14に示す例としてのパイプ
ラインステージの機能について次に説明する。ステージ
が予定されたトークン(この例においてデータトークン
と称する)を処理しつつある場合に、当該ステージは、
このトークンにおけるデータトークンのアドレスフィー
ルドを含む第1ワード以外の全てのワードを二重化す
る。一方、ステージが、他の種類の任意のトークンを処
理しつつある場合、当該ステージは、全てのワードを削
除する。全体的な効果は、出力において、データトーク
ンのみが現れ、そして、これらのトークン内の各ワード
は2度繰り返される。
【0228】ここに図示されたシステムの多数の部品
は、図4、図5、図6、及び図7に示す遙かに簡単な構
造に示されている部品と同じであっても差し支えない。
このことは重要な利点を例証する。僅かに改造するか、
或は、一切の改造なしに、同じ2線インターフェースを
使用できるので、更に複雑なパイプラインステージであ
っても、融通性および弾力性に関して同じ利点を有す
る。
【0229】図13、図14に示すデータ二重化ステー
ジは、所定のアプリケーションにおいてパイプラインス
テージが遂行することのできる無数にある異なるタイプ
のオペレーションのほんの一例に過ぎない。ただし、こ
の「二重化ステージ」は、「ボトルネック」を形成する
可能性があり、その結果として、この実施例に基づくパ
イプラインが「一緒にパックとなる」ようなテージを示
す。
【0230】「ボトルネック」は、そのオペレーション
を遂行するために比較的長い時間を要するか、或いは、
パイプラインにおいて、受け取ったよりも、より多くの
データを作るあらゆるステージであり得る。更に、この
例は、この実施例に基づいた2線受け入れ/有効インタ
ーフェースが異なるアプリケーションに非常に容易に適
応可能であることを示す。
【0231】図13、図14に示す二重化ステージは、
図11の例に示すように各々ステージの入力および出力
における拡張ビットの状態をラッチする2つのラッチL
EIN及びLEOUTを持つ。図13、図14に示すよ
うに、入力拡張ラッチLEINは、入力データラッチL
DIN及び妥当性検査信号IN VALIDと共に同期
的にクロックされる。 参照を容易にするために、二重
化ステージに含まれる種々のラッチは、それぞれ特有の
出力信号と共に対を構成する。
【0232】二重化ステージにおいて、データラッチL
DINからの出力は、MIDデータと称する中間データ
を形成する。この中間データワードは、中間受入れ信号
(図13、図14において「MID ACCEPT」と
参照)がHIGHにセットされている場合に限りデータ
出力ラッチLDOUTにロードされる。
【0233】図13、図14に示す受入れラッチLAI
N、LAOUTの下の回路部分は、データを二重化する
ために使われる様々な内部制御信号を生成するために、
基礎的なパイプライン構造に付加される回路である。こ
れらの信号には、当該回路が有効なデータトークンを処
理中であることを示す「データトークン」信号、及びデ
ータの二重化を制御するために使われるNOT DUP
LICATE信号が含まれる。回路がデータトークンを
処理中である場合には、NOT DUPLICATE信
号はHIGH状態とLOW状態の間でトグルし、そし
て、これによって、当該トークン内の各ワードを1度
(1度に限る)二重化させる。回路が有効なデータトー
クンを処理中である場合には、NOT DUPLICA
TE信号はHIGH状態に保持される。従って、これ
は、処理されつつあるトークンワードが二重化されない
ことを意味する。
【0234】図13、図14に示すように、8ビット中
間データワードの上位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の性質について以下に更に説明する。
【0235】ラッチLO1は、中間拡張ビットの最後の
値をラッチする機能を遂行し(「MID EXTN」及
び信号S4として表示)、そして、この値をクロック位
相PH0のその次の立ち上がりエッジにおいてラッチL
I1にロードする。このラッチの出力はビットQI1で
あり、そして、信号S1を形成するトークン復号化論理
グループへの入力の1つである。既に説明したように、
信号S1は、信号QI1が「1」である場合に「0」ま
でただ降下する(そして、MIDデータ信号は予定され
た構造を持つ)。従って、信号S1は、最後の拡張ビッ
トが「0」であった場合には何時でも「0」までただ降
下し、前のトークンが終了したことを示す。従って、M
IDデータワードは、新しいトークンにおける第1デー
タワードである。
【0236】ラッチLO2、及びL12は、NANDゲ
ートNAND20、及びNAND22と共に、信号デー
タトークンのための記憶装置を形成する。正常な条件に
おいて、NAND20への入力における信号QI1、及
びNAND22への入力における信号S1は、両方共論
理「1」である。再度ブール代数の技術により、この条
件において、これらのNANDゲートがインバータと同
じ方法において作動することがわかる。すなわち、ラッ
チLI2の出力からの信号Q12は、NAND20にお
いて反転され、そして、次に、この信号は、NAND2
2によって再び反転されて信号S2を形成する。この場
合、この通路には2つの論理的反転があるので、信号S
2は、QI2と同じ値を持つ。
【0237】どうように、ラッチLO2の出力における
信号データトークンがLI2への入力を形成するという
ことが分かる。その結果、QH1及びS1は両方共HI
GHであるという条件に留まる限り、信号データトーク
ンは、その状態(「0」、または「1」)を保持する。
クロック信号PH0、及びPH1がラッチ(それぞれL
12、及びLO2)をクロックしつつある場合にも、こ
れは真である。信号QI1、及びS1の1つ、または双
方共に「0」である場合、データトークンの値は変化可
能であるに過ぎない。
【0238】既に早期に説明したように、前の拡張ビッ
トが「0」であった場合に信号QI1は「0」である。
従って、NIDデータ値がトークンの第1ワードである
場合には何時でも、前期の信号は「0」である(そし
て、当該トークン用のアドレスフィールドが含まれ
る)。この条件において、信号S1は、「0」または
「1」のいずれかである。既に早期に説明したように、
MIDデータワードがこの例においてはデータトークン
を示す予定された構造を持つ場合には、信号S1は
「0」である。MIDデータワードが他の構造を持つ場
合には(当該トークンがデータトークンでない他のトー
クンであることを示す)、S1は「1」である。
【0239】QI1が「0」、及びS1が「1」である
場合には、これは、データトークン以外のトークンが在
ることを示す。デジタル電子工学の分野において周知さ
れているように、NAND20の出力は「1」である。
NANDゲートNAND22はこれを反転し(既に説明
したように)、そして、信号S2は「0」である。その
結果、この「0」値は、その次のPH1クロック位相の
開始に際してラッチLO2にロードされ、そして、デー
タトークン信号は「0」になり、当該回路がデータトー
クンの処理中でないことを示す。
【0240】QI1が「0」であり、そして、S0が
「0」であり、それによりデータトークンを示す場合に
は、(NAND20の出力からのNAND22への他の
入力であるにも拘わらず)信号S2は「1」である。そ
の結果、この「1」値は、その次のPH1クロック位相
の開始に際してラッチLO2にロードされ、そして、デ
ータトークン信号は「1」になり、当該回路がデータト
ークンを処理中であることを示す。
【0241】NOT DUPLICATE信号(出力信
号QO3)は、クロックPH0のその次の立ち上がりエ
ッジにおいてラッチL13にロードされる。ラッチLI
3からの出力信号QI3は、信号S3を形成するため
に、ゲートNAND24における出力信号Q12と組合
わされる。以前同様ブール代数を用いて、信号QI2及
びQI3両方の値「1」である場合に限り、信号S3が
「0」であることが分かる。信号QI2が「0」になる
場合、即ち、データトークン信号が「0」である場合、
信号53は「1」になる。換言すれば、有効なデータト
ークン(QI2=0)がない場合、或いは、データワー
ドが二重化(QI3=0)ではない場合、信号S3はハ
イになる。
【0242】ここで、データトークン信号が、1クロッ
ク信号以上に亙って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)からの出力も同様に受入れ信号IN ACCEPT
を形成する。この受入れ信号は、すでに述べたように、
2線インターフェース構造において用いられる。
【0243】受入れ信号IN ACCEPTは、ラッチ
LDIN、LEIN、及びLVINに対する作動可能化
信号として用いられる。その結果、NOT DUPLI
CATE信号がローである場合には、受入れ信号IN
ACCEPTもローであり、そして、これら3つのラッ
チ全てが無能化され、そして、それらの出力に記憶され
た値を保持する。NOT DUPLICATE信号がH
IGHになる時まで、ステージは、新しいデータを受け
入れない。これは、受入れラッチLAINからの出力を
ハイに強制するために、上記の必要条件に追加される。
【0244】有効なデータトークンが在る(データトー
クン信号QO2が「1」である)限り、信号QO3は、
HIGH状態とLOW状態の間でトグルする。その結
果、入力ラッチが作動化され、そして、長くとも、両方
のクロック位相PH0、PH1の1つおきの完全サイク
ルの期間に亙ってデータ受け入れ可能となる。「HIG
H」OUT ACCEPT信号によって指示されるよう
に、その次のステージのデータ受け入れ準備が整うこと
と言う追加的条件は、勿論、依然として満足されていな
ければならない。従って、少なくとも2つの全クロック
サイクルの期間に亙って、出力ラッチLDOUTは、同
じデータワードを出力バスOUTデータに配置する。有
効なデータトークン(QO2 HIGH)が所在し、そ
して、妥当性検査信号QVOUTがHIGHである場合
に限りOUT VALID信号は「1」である。
【0245】MIDデータに対応する拡張ビットである
信号QEINは、信号S4を形成するために、一連の論
理ゲート(INV10、及びNAND10)において信
号S3と組合わされる。データトークンの表示期間中、
各データワードMIDデータは、それを出力ラッチLD
OUTに2度ロードすることによって反復される。これ
らの第1の期間中、S4は、NAND10の作用によっ
て「1」に強制される。信号S4は、OUTデータ
[7:0]を形成するためにMIDデータがLDOUT
にロードされるのと同時にOUTEXTNを形成するた
めに、ラッチLEOUTにロードされる。
【0246】このように、最初には所定のMIDデータ
がLEOUTにロードされ、関連しているOUTEXT
Nがハイに強制されるが、2番目には、OUTEXTN
は信号QEINと同じである。ここで、QEINがロー
であることが既知である1つのトークンの最終ワードの
期間中における条件について考察することとする。第一
の期間中、MIDデータがLDOUTにロードされ、O
UTEXTNは「1」であり、そして、第2の期間中、
OUTEXTNは「0」であって、当該トークンの真の
終了を示す。
【0247】妥当性検査ラッチLVINからの出力信号
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
である。
【0248】本発明において、MID ACCEPT信
号は、ラッチ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は作動可能化される。
【0249】以上の検討から、図13、図14に示すス
テージが、妥当性検査および受入れ信号の制御の下にス
テージ間のデータを受け取り、そして、転送することが
分かる。ただし、前の実施例の場合のように、入力側に
おける受入れラッチLAINからの出力信号がトグルす
る二重化信号と結合されることは例外であり、その結
果、データワードは、新規なワードが受け入れられる以
前に2度出力される。
【0250】例えばNAND16及びINV16のよう
な各種論理ゲートは、勿論、等価論理回路(この場合に
は、1つの単一ANDゲート)によって置き換えること
が可能である。同様に、例えば、ラッチLEIN、及び
LVINの出力が反転されつつある場合には、インバー
タINV10、及びINV12は必要でない。その代わ
りに、ゲートNAND10、及びNAND12への対応
する入力は、これらのラッチの反転している出力に直接
結合することが可能である。適切な論理演算が遂行され
る限り、ステージは、同じ方法において動作する。デー
タワード、及び拡張ビットは、依然として二重化され
る。
【0251】トークンの第1データワードが当該ワード
の第3位置に「1」を配置し、そして、5つの高位ビッ
トに「0」を配置するまでは、図に示すステージが遂行
する二重化機能は実施されないことに注意されい。(勿
論、他の論理ゲートおよび図に示すNOR1、NOR
2、NND18ゲート以外の接続を選定することによ
り、必要とされるパターンは容易に変更および設定可能
である。) 更に、図13、図14に示すように、第1データワード
が記述の構造を持たない限り、OUT VALID信号
は、トークン全体の期間中に亙って、ローに強制され
る。これは、二重化プロセスを起こさせる1つのトーク
ンを除く全てのトークンがトークンの流れから削除させ
るような効果を発揮する。その理由は、出力端子(OU
Tデータ、OUTEXTN、及びOUT VALID)
に接続されたデバイスは、これらのトークンを有効なデ
ータとして認識しないからである。以前と同様に、当該
ステージにおける双方の妥当性検査ラッチLVIN、L
VOUTは、1つの単一コンダクタNOTRESET
O、及び下流ラッチLVOUTの1つの単一リセット入
力Rにより、上流の妥当性検査ラッチをその次のクロッ
クサイクルにおいてローに強制させるように後方に伝播
するリセット信号を用いてリセットされることが可能で
ある。
【0252】図13、図14に示す例において、データ
トークンに含まれるデータの二重化は、回路がACCE
PT及びVALID信号を操作可能であり、その結果と
して、当該入力に到達するよりもより多くのデータがパ
イプラインステージから離れることの一例としてのみ役
立つに過ぎないことに注意されたい。同様に、流れから
データを除去するために回路がVALID信号を操作可
能であることを示す方法を単に説明するだけのために、
図13、図14に示す例においては、全ての非データト
ークンが除去される。ただし、最も典型的なアプリケー
ションにおいて、パイプラインステージは、当該パイプ
ラインステージが認識しないあらゆるトークンを修正す
る事なく簡単に供給する。その結果、パイプラインの更
に下流の他のステージが、必要に応じて、前記のトーク
ンに作用することが可能である。図15及び図16は、
図13及び図14に示すデータ二重化回路のためのタイ
ミングダイアグラムの一例を示す。このタイミングダイ
アグラムは、2相クロック信号、様々な内部および外部
制御信号、及びステージの入力側と出力側との間でデー
タをクロックし、そして、データを二重化する方法との
間の関係を示す。さてここで、図17を更に詳細に参照
することとし、この図には、現在の本発明の1つの態様
にに基づく再構成可能なプロセスステージを示す。
【0253】入力ラッチ34は第1バス31を介して入
力を受け取る。入力ラッチ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を介して供給される。
【0254】ここで、図18を参照することとし、スタ
ートコード検出器(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に供給される。
【0255】本発明にかかるTFからの第1出力71
は、ライン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)に供給される。
【0256】ここで、更に詳細に図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)に供給される。
【0257】ここにおいて、図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
に供給される。
【0258】各ラインは、必要に応じて、複数のライン
を有しても差し支えないことは、前述の説明から明白で
ある。
【0259】ここにおいて、図21を参照することと
し、MPEG規格においては、1つのピクチャ131は
1つ又は複数のスライス132として符号化される。各
スライス132は、複数のブロック133を有し、そし
て、各列において列毎に左から右に符号化される。図に
示すように、各スライス132のスパンはブロック13
3の中の正確に1行132であるか、ブロック133の
中の1行より少ないB、Cか、またはブロック133の
複数行Cであっても差し支えない。
【0260】図22を参照することとし、JPEG及び
H.261規格においては、コモン中間フォーマット
(CIF)が用いられ、ピクチャ141は、各列が2つ
のグループのブロック(GOB)142を含む6列とし
て符号化される。GOB142は、3列または6列いず
れかの限定されない数のブロック143によって構成さ
れる。各GOB142は、矢印144によって示される
Z字形方向にジグザグに符号化される。その結果、GO
B142は、各列において、列毎に左から右に向かって
処理される。
【0261】ここにおいて、図23を参照することと
し、MPEG及びCIFの両方に関し、エンコーダの出
力は、データストリーム151の形をとることが分か
る。デコーダは、このデータストリーム151を受け取
る。次に、デコーダは、イメージを符号化するために使
われたフォーマットに応じてイメージを復元することが
できる。デコーダが、各規格に関するスタート及びエン
ドポイントを認識可能にするためには、データストリー
ム151は、33ブロック152の長さに分割される。
【0262】図24に示すベン図は、本発明のハフマン
デコーダ56(図18)からテーブル選択可能な値の領
域を表す。これらの値は、MPEGデコーダ及びH.2
61デコーダに対して重複可能な値であり、1つの単一
テーブル選択によって、特定のMPEG及び特定のH.
261フォーマットの両方が復号化されることを示す。
同様に、これらの値はMPEGデコーダ及びJPEGデ
コーダに対して重複可能な値であり、1つの単一テーブ
ル選択によって、特定のMPEG及び特定のJPEGフ
ォーマットの両方が復号化されることを示す。更に、
H.26l値とJPEG値は重複せず、単独で双方のフ
ォーマットを復号化するような単一テーブル選択が存在
しないことを示す。
【0263】さて、図25を更に詳細に参照することと
し、この図は、本発明の実施に基づいた可変長ピクチャ
データの概要を示す。処理されるべき第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を処理するこ
とが可能となる。
【0264】図26において、スプリット171は、ラ
イン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には図示せ
ず)へ供給される。
【0265】図27は、予測フィルタプロセスを示す。
フォーワード予測フィルタ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クロミナンスブロック
214が、ピクセルのもとの16×16ブロック全体に
関するその色信号のクロミナンスレベルを含むように、
サブサンプルされる。
【0266】図29を参照することにより、スタートコ
ード検出器の構造及び機能が明白になるはずである。バ
リューレジスタ221は、ライン222を介してイメー
ジデータを受け取る。ライン222の幅は8ビットであ
り、一度に8ビットの並列伝送を可能にする。バリュー
レジスタ222からの出力は、ライン223を介して、
デコードレジスタ224に直列に供給される。デコード
レジスタ224からの第1の出力は、ライン226を介
して、検出器225に供給される。ライン226の幅は
24ビットであり、一度に24ビットの並列伝送を可能
にする。検出器225は、1つの「1」バリューによっ
て後続される23の「ゼロ」バリューの規格から独立し
たスタートコードに対応するイメージの存在または欠如
を検出する。8ビットデータバリューイメージは、有効
なスタートコードイメージに後続する。スタートコード
イメージの存在が検出されると、検出器225は、ライ
ン227を介してスタートイメージをバリューデコーダ
228に伝送する。
【0267】デコードレジスタ224からの第2出力
は、ライン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記載の
場合と同様の第2ルックアップテーブル(図示されず)
を用いて情報をトークンイメージに変換する。インデッ
ク/トークンスコンバータ234によって生成されたト
ークンイメージは、ライン237を介して出力される。
ライン237の幅は15ビットであり、一度に15ビッ
トの並列伝送が可能である。
【0268】図30において、個々のビット242から
成るデータストリーム241は、スタートコード検出器
(図30に図示されず)に入力される。第1スタートコ
ードイメージ243は、スタートコード検出器によって
検出される。次に、スタートコード検出器は、第1デー
タバリューイメージ244を受け取る。第1データバリ
ューイメージ244を処理する以前に、スタートコード
検出器が、長さ246において第1データバリューイメ
ージ244と重複する第2スタートコードイメージ24
5を検出することもあり得る。これが起きると、スター
トコード検出器は第1データバリューイメージ244を
処理せず、そして、その代りに、第2データバリューイ
メージ247を受け取り、そして、処理する。
【0269】図31において、フラグ発生器251は、
ライン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ビットの並列伝送を可能にする。
【0270】入力有効レジスタ(図示されず)は、ライ
ン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を介して、出力アクセプトレジスタ(図示
されず)に供給される。
【0271】出力アクセプトレジスタ(図示されず)
は、ライン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フレームの送信をデコ
ーダに待機させることを必要としない。
【0272】本発明の構造及びオペレーション、並び
に、特徴、目的、及び利点に関するこれ以上の情報は、
当該技術分野における通常の熟練者であれば、本発明の
例証的な実施例について追加的に継続される詳細な記述
から容易に明白になるはずである。この詳細な内容につ
いては、説明を明瞭かつ利便にするために、次に示すセ
クションにまとめて記述することとする。
【0273】1.多重規格コンフィギュレーション 2.JPEG静止画のデ符号化 3.動画の伸長 4.RAMメモリーマップ 5.ビットストリームの特性 6.再構成可能なプロセッシングステージ 7.多重規格符号化 8.多重規格プロセッシング回路 ― 第2オペレーシ
ョンモード 9.スタートコード検出器 10.トークン 11.DRAMインターフェース 12.予測フィルタ 13.アクセシングレジスタ 14.マイクロプロセッサインターフェース(MPI) 15.MPIリードタイミング 16.MPIライトタイミング 17.キーホールアドレスロケーション 18.ピクチャエンド 19.フラッシングオペレーション 20.フラッシュ機能 21.ピクチャ後ストップ 22.多重規格サーチモード 23.逆モデラ 24.逆量子化器 25.ハフマンデコーダ及びパーザー(parser)(構文解
析系) 26.種々の別個のコサイントランスフォーマ 27.バッファマネージャ 1.多重規格コンフィギュレーション 前述の米国特許第5,212,742号明細書に示した
ように、様々な圧縮規格、即ち、JPEG、MPEG、
及びH.261が周知であるので、これらの規格の詳細
な仕様について、ここでは繰り返さない。
【0274】以前に言及したように、本発明は、種々異
なってコード化された様々なピクチャデータビットスト
リームを伸長することが可能である。コード化に関する
異なる各規格において、単独で作動する空間デコーダの
出力、或いは、組合わされて作動する空間デコーダ及び
時間デコーダの直列出力に供給されたデータを扱い(続
いて更に詳細に説明されるように)、そして、コンピュ
ータにおけるディスプレイ又は動画ディスプレイシステ
ムを含む他のディスプレイシステムを含めて使用するた
めにこの出力をリフォーマッィングするには、或る程度
規制された形の出力フォーマッティング部が必要であ
る。このフォーマッティングすることを実現する方法
は、コード化規格、及び/又は、選定されたディスプレ
イのタイプの間で大幅に変化する。
【0275】本発明に基づく第1の実施例においては、
図17〜図19に関して以前に述べたように、フォーマ
ット化されたデータのブロック、即ち、第1のデコーダ
(空間デコーダ)、又は、第1のデコーダ(空間デコー
ダ)と第2のデコーダ(時間デコーダ)との組み合わせ
のどちらかからの出力を記憶し、そして、複号された情
報を、ラスタ順に、メモリーに対して書き込み、及び/
又は、書き出すために、アドレス発生器が用いられる。
以下に説明する動画フォーマッティング部は、広い範囲
に亙る出力信号組合わせを提供する。
【0276】本発明にかかる好ましい多重規格動画デコ
ーダ実施例において、空間デコーダ及び時間デコーダ
は、MPEG符号化信号およびH.261動画符号復号
化システムの両方を実現することを必要とする。これら
双方のデバイスのDRAMインターフェースは、小さい
ピクチャフォーマットを用い、そして、低いコード化デ
ータレートにおいて運用している場合には、必要とされ
るDRAMの量を少なくするために構成可能である。こ
れらのDRAMの再構成については、DRAMインター
フェースに関連して以下において更に説明することとす
る。一般に、各々の時間デコーダ及び空間デコーダ回路
によって1つの単一4メガバイトDRAMが必要とされ
る。
【0277】本現在の空間デコーダは、1つの単一ピク
チャ内で必要とされる全ての処理を遂行する。これによ
り、1つのピクチャ内の冗長度が減少される。
【0278】時間デコーダは、主体とされるピクチャの
到着前に到着するピクチャに関係する主体となる当該ピ
クチャ、並びに、主体とされるピクチャの到着後に到着
するピクチャとの間の冗長性を減少させる。時間デコー
ダの1つの態様は、これら全てのピクチャと関連したデ
ータを読み取るために必要な複雑なアドレス機能を、出
来るだけ少ない個数の回路を使用し、そして、高速およ
び改良された精度を以て、扱うアドレスデコードネット
ワークを提供することである。
【0279】図18に関して以前に説明したように、デ
ータは、ハフマンデコーダ及びパーザーに先行するスタ
ートコード検出器、FIFO、第2のFIFOレジス
タ、逆モデラー、逆量子化器、逆ジグザグ及び逆DCT
を介して到着する。2つのFIFOは、チップ上に所在
する必要はない。一実施例において、データは、チップ
上に所在するFIFOを通って流れない。データは、D
RAMインターフェースに供給され、そして、FIFO
−IN記憶レジスタ及びFIFO−DUTレジスタは、
両方の場合に、チップ外に所在する。オペレーションが
規格とは完全に独立しているこれらのレジスタについて
は、続いて更に詳細に説明する。
【0280】図18に示すサブシステム及びステージの
大多数は、用いられる特定の規格から実際に独立してお
り、そして、DRAMインターフェース58、DRAM
インターフェースのためにアドレスを生成するバッファ
マネージャ59、逆モデラー75、逆ジグザグ8l、及
び逆DCT83を含む。ハフマンデコーダ及びパーザー
内の規格から独立したユニットは、ALU66及びトー
クンフォーマッティング部71を含む。
【0281】図19において、規格から独立したユニッ
トには、DRAMインターフェース100、フォーク9
1、FIFOレジスタ96、加算器98、及び出力セレ
クタ106が含まれる。規格従属ユニットは、H.26
1とMPECにおいて異なるアドレス発生器94、及び
H.261及びMPEGの両方に適合するように再構成
可能な予測フィルタ103である。JPEGデータは、
一切変更されない機械全体を通って流れる。
【0282】図20は、動画フォーマッティング部チッ
プのハイレベル構成図を示す。このチップの殆どの部分
は規格から独立している。規格によって影響される僅か
な項目は、MPEG又はJPEGと異なるH.261の
場合にはDRAMにデータが記入される方法であり、そ
して、H.261においては、全ての単一ピクチャをコ
ード化する必要はない。ピクチャを何時ディスプレイし
ようと意図するかに関するいくらかの情報を提供し、そ
して、動画フォーマッティング部におけるロジックのア
ドレス発生タイプによっても扱われる時間基準として参
照されるいくらかのタイミング情報がある。
【0283】動画フォーマッティング部に具現された回
路の残りの部分は、色空間変換の全て、アップサンプリ
ングフィルタ、及びガンマ補正RAMの全てを含み、そ
して、用いられる特定の圧縮規格から完全に独立してい
る。
【0284】本発明のスタートコード検出器は圧縮規格
に依存し、この圧縮規格において、前記検出器は、当該
規格の各々に対して、ビットストリームにおける種々の
異なるスタートコードパターンを認識しなければならな
い。例えば、H.261は16ビットスタートコードを
持ち、MPECは24ビットスタートコード持ち、そし
て、JPEGは他のスタートコードとはかなり異なるマ
ーカコードを使用する。いったん、スタートコード検出
器がこれらの異なるスタートコードを認識してしまえ
ば、そのオペレーションは、圧縮規格から本質的に独立
する。例えば、種々の異なるカテゴリのマーカを認識す
る回路は別として、オペレーションの多くは、3つの異
なる圧縮規格の間で非常に類似している。
【0285】次に示すユニットは、ハフマンデコーダ及
びパーザー内に位置するステートマシン518(図1
8)である。この場合、実際の回路構成は、3つの圧縮
規格の各々に関してほとんど同じである。実際、オペレ
ーションにおいて規格によって影響される唯一のエレメ
ントは、マシンのリセットアドレスである。単にパーザ
ーがリセットされる場合には、パーザーは、各規格に関
して異なるアドレスへジャンプする。実際、認識される
4つの規格がある。これらの規格は、H.261、JP
EG、MPEG、及び他の1つ規格であり、最後の規格
の場合、パーザーは、テストのために使われる1つのコ
ードに入る。この事実は、回路がほとんど全ての態様に
おいて同じであり、各々の規格に関するマイクロコード
によるプログラムが異なるだけである。従って、1つの
プログラムがH.261において作動しており、そし
て、別の異なる1つのプログラムがランしている場合、
これらのプログラムの間には重複はない。これは、JP
EGに関しても真であり、第3の完全に独立したプログ
ラムである。
【0286】次に示すユニットは、データインデックス
ユニット64と共に機能するハフマンデコーダ56であ
る。これら2つのユニットは、ハフマン復号化を遂行す
るために、協同作動する。この場合、ハフマン復号化の
ために使われるアルゴリズムは、圧縮規格に関係なく同
じである。変化は、どちらの表が用いられるかと言うこ
と、および、ハフマンデコーダに入来するデータが反転
されているかどうかと言うことである。更に、ハフマン
デコーダ自体、符号化規格のいくらかの態様を理解する
ステートマシンを含む。これらの異なるオペレーション
は、パーザーステートマシンから入来する命令に応答し
て選定される。パーザーステートマシンは、3つの圧縮
規格の各々に対して異なるプログラムによって作動し、
そして、作動中の規格に適合する異なる時点において、
正しい命令をハフマンデコーダに供給する。
【0287】圧縮規格に依存するチップ上の最後のユニ
ットは、逆量子化器79であり、この場合、逆量子化器
が遂行する数学は異なる規格の各々に対して異なる。こ
の際に、コーディング・スタンダードトークンは復号化
され、そして、逆量子化器79は、どちらの規格の下で
作動中であるかを記憶する。次に、当該イベントの後に
起き、他のコーディング・スタンダードの前に起きかも
しれないあらゆる後続データトークンは、逆量子化器内
に記憶されているコーディング・スタンダードによって
示された方法によって扱われる。詳細な記述において言
及する表は、異なる規格における異なるパラメータを示
し、これらの異なるパラメータ又は数学にどの回路が対
応するかを示す。
【0288】H.261に基づくアドレス生成は、図1
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もあり得る。これらのスライスの各々
は、マクロブロックの列で構成される。
【0289】H.261の場合には、ピクチャはブロッ
クのグループ(GOB)に分割されるので、組織はいく
ぶん異なる。ブロックのグループは、高さが3列のマク
ロブロックに相当し、幅が11マクロブロックに相当す
る。CIPピクチャの場合には、この種の12のブロッ
クグループがある。ただし、1つの上に他の1つと言う
ように組織されていない。そうではなくて、高さ6ブロ
ックのグループが前後2グループ配置される。即ち、垂
直に6GOB及び水平2GOBが配置される。
【0290】他の全ての規格において、アドレッシング
を遂行する場合、既に示したように、マクロブロックは
順番にアドレスされる。更に詳細には、アドレスは行に
沿って進行し、そして、行の終端において、その次の行
がスタートすられる。H.261の場合には、ブロック
の順序は、ブロックのグループ内において記述された順
序と同じであるが、しかし、その次のブロックグループ
に動く際にそれは、ほとんどジグザグである。
【0291】本発明は、前記の影響を扱うための回路を
提供する。それは、空間デコーダ及び動画フォーマッテ
ィング部におけるアドレス生成を、H.261用に変更
する方法である。情報がDRAMに記入されるときはい
つでも、これが達成される。前述のアドレス生成シーケ
ンスに関する知識によって記入されるので、RAMにお
ける物理的に配置される場所は、同じサイズのMPEG
ピクチャの場合と厳密に同じである。従って、メモリー
における情報の物理的配置は、MPEGシーケンスであ
った場合と同じであるので、DRAMから読取りを行う
ための全てのアドレス生成回路は、例えば予測を形成す
る場合、H.261規格の場合であることを理解する必
要はない。このように、全ての場合に、データの記入の
みが影響される。
【0292】時間デコーダにおいて、回路が、実際に発
生している事柄と異なる何かであるように見えるH.2
61に対して抽象化が行われる。即ち、ブロックの各グ
ループは概念的に拡張され、その結果、11×3マクロ
ブロックである長方形の代わりに、マクロブロックは、
高さが1マクロブロックであり長さが33ブロック(図
23)のブロックグループに拡張される。こうすること
により、ブロックのグループ通じてカウントするために
時間デコーダにおいて用いられるカウント技法と全く同
じ技法が、MPFG用としても用いられる。
【0293】ブロックのH.261グループとMPEG
スライスとの間に合致が存在するように回路が設計され
る。スタートコード検出器の後でH.261データが処
理される場合、各ブロックグループは、スライススター
トコードによって先行される。その次のブロックグルー
プは、その次のスライススタートコードによって先行さ
れる。この構造を通ってカウントするために時間デコー
ダ内においてカウントが行われる場合は、高さが1マク
ロブロックであって長さが33マクロブロックのグルー
プであるかのように見える。同様に回路は10間隔おき
にカウントするが、これで十分である。第11番目のマ
クロブロック又は第22番目のマクロブロックをカウン
トすると、幾つかのカウンタをリセットする。各マクロ
ブロックをカウントアップし、そして、11に到達する
と、ゼロにリセットする別のカウンタを備えた簡単な回
路によってこれが達成される。マイクロコードは、それ
を尋問し、そして、その作用を実施する。本発明の時間
デコーダにおける全ての回路は、マクロブロックの物理
的配置に関して、圧縮規格から本質的に独立している。
【0294】多重規格の適応性に関して多数の異なる表
が有り、そして、回路は、適切な時点において適切な規
格を適応するために適切な表を選定する。各規格は複数
の表を持ち、そして、回路は、任意の所定時点において
表の集合の中から選定する。任意の1つの規格内におい
て、回路は、一時に1つの表を選定し、また、別の一時
に別の表を選定する。異なる規格内においては、回路
は、異なる表の集合を選定する。図24に関する検討の
際に既に指摘したように、これらの表の間には或る程度
の交差がある。例えば、MPEGに用いられる表の1つ
は、JPEGにおいても同様に用いられる。これらの表
は、完全に分離した集合ではない。図24は、H.26
1集合、MPEG集合、及びJPEG集合を示す。H.
261集合とMPEG集合との間には非常に大きい重複
があることに注意されたい。これらの規格が使用する表
は全く共通する。MPEGとJPEGとの間には僅かな
重複があり、そして、H.261とJPEGとの間には
全く重複がないので、これらの規格は完全に異なる表の
集合を持つ。
【0295】既に指摘したように、大部分のシステムユ
ニットは圧縮規格から独立している。或る1つのユニッ
トが規格独立的である場合には、この種のユニットは、
どのコーディング・スタンダードが処理されつつあるか
を記憶している必要がない。規格従属的な全てのユニッ
トは、コーディング・スタンダードトークンがこれらの
ユニットを流れる際に、圧縮規格を記憶している。第1
の符号化規格においてコード化/復号化された情報はマ
シン全体に配分され、そして、マシンが規格を変更しつ
つある場合には、マイクロプロセッサ制御される前のマ
シンは、一般に、H.261圧縮規格に従って機能する
ことを選定する。この種の前のマシンにおけるMPU
は、圧縮規格が変更中のマシン内における複数の異なる
場所において信号を生成する。MPUは、異なる時点に
おいて変更を行い、そしてパイプライン全体を通じてフ
ラッシュする。
【0296】本発明に従い、パイプラインにおける第1
のユニットとして配置されたスタートコード検出器にお
いてコーディング・スタンダードトークンの変化を起こ
させることにより、圧縮規格のこの変化を容易に取り扱
うことができる。トークンは、あるコード化規格が開始
されつつあることを表明し、そして、当該制御情報は、
マシンを下流に向かって流れ、そして、適切な時点にお
いて他の全てのレジスタを構成する。MPUは、各レジ
スタをプログラムする必要がない。
【0297】予測トークンは、ビットストリーム内のビ
ットを用いて予測を形成する方法を告げる。どの圧縮規
格が運用中であるかに応じて、回路は、当該規格内に発
見される情報をビットストリームから予測モードトーク
ンへ変換する。この処理は、ハフマンデコーダ、及びパ
ーザーステートマシンによって行われ、この場合に、特
定の条件に基づくビットを操作することは容易である。
スタートコード検出器は、この予測モードトークンを生
成する。次に、トークンは、マシンを下流に向かって、
予測形成に責任のあるデバイスである時間デコーダの回
路まで流れる。ある規格内のビットは3つの異なる規格
内において変化しないので、空間デコーダの回路は、ト
ークンがその中で運用されている規格がどの規格である
かを知ることなしに、当該トークンを解釈する。空間デ
コーダは、当該トークンに応答して告げられたことだけ
を行う。これらのトークンを所有し、そして、それらを
適切に使うことによって、マシンにおける他のユニット
の設計が簡素化される。プログラムは幾分複雑になるこ
ともあり得るが、多重規格に対して設計困難なハードワ
イヤロジックをこの場合に使用することができる利益が
得られる。
【0298】2.JPEG静止画像の復号化 以前に指摘したように、本発明は信号伸長に関し、更に
詳細には、使用圧縮規格には無関係なコード化動画信号
の伸長に関する。
【0299】本発明の1つの態様は、パイプライン処理
システムにおいて、第1の符号化された信号(MPE
G、またはH.261符号化動画信号)を復号化するた
めに第2のデコーダ回路(時間デコーダ)と組み合わせ
て第1の符号化された信号(JPEG符号化動画信号)
を復号化するための第1のデコーダ回路(空間デコー
ダ)を提供することである。JPEG符号復号化のため
には時間デコーダを必要としない。
【0300】この点に関して、本発明は、1つの単一パ
イプラインデコーダ及び伸長システムを使用することに
より異なる方法で符号化された複数の信号の伸長を容易
にする。符号復号化および伸長パイプラインプロセッサ
は、独特の、そして、単一パイプラインデコーダ及び処
理システムと完全に互換性のある技術を用いて多重規格
符号化動画信号の扱いを可能にする特殊なコンフィギュ
レーションに組織されている。空間デコーダは時間デコ
ーダと組合わされ、そして、動画フォーマッティング部
は、動画ディスプレイをドライブするために用いられ
る。
【0301】本発明の他の態様は、静止画のみと使用す
るために、空間デコーダと動画フォーマッティング部の
組み合わせを使用することである。圧縮規格から独立し
た空間デコーダは、1つの単一ピクチャの境界内におい
て全てのデータ処理を遂行する。この種のデコーダは、
パイプラインを通過し、そして、関連している等速呼出
記憶装置、メモリーに対して情報の記憶および検索を扱
うための規格から独立したアドレス生成回路内に配分さ
れる内部ピクチャデータの空間伸長を扱う。静止画像デ
ータは、空間デコーダの出力において復号化され、そし
て、この出力は、ディスプレイ端末に出力を供給する多
重規格構成可能動画フォーマッティング部の入力として
用いられる。同様の画像の第1のシーケンスにおいて、
画像が空間デコーダの出力に到達するまでは、空間デコ
ーダの出力における伸長された各画像は同じビット長さ
である。画像の第2シーケンスは、完全に異なる画像サ
イズであっても差し支えなく、従って、第1の長さと比
較した場合に、長さが異なっても差し支えない。再度説
明すれば、この種画像が空間デコーダの出力に到達する
までは、類似した画像のこの種の第2シーケンスは全て
ビット長さが同じである。
【0302】本発明の他の態様は、入来する規格従属ビ
ットストリームを、規格から独立した再構成可能なパイ
プラインプロセッサとして作動するように選定および組
織化され、順序立てて配置された再構成可能な複数の処
理ステージと組合わされた一連の制御トークン及びデー
タトークンに内部的に組織化することである。
【0303】JPEG復号化に関して、チップ外DRA
M無し1つの単一空間デコーダは、基底線JPEGイメ
ージを急速に復号化することが出来る。空間デコーダ
は、基底線JPEG符号化規格の全ての機能をサポート
する。ただし、復号化可能なイメージサイズは、装備さ
れた出力バッファのサイズによって制限されることもあ
る。空間デコーダ回路は、情報のメモリーへの記憶を扱
うための機械従属、規格から独立したアドレス生成回路
を有する等速呼出記憶装置回路を含む。
【0304】既に指摘したように、JPEG符号化され
た動画を復号化するためには時間デコーダを必要としな
い。従って、データトークンによって運ばれる信号は、
JPEGオペレーション用として時間デコーダが構成さ
れている場合には、それ以上処理することなしに、時間
デコーダを通って直接供給される。
【0305】本発明の他の態様は、ハフマンデコーダ/
動画デマルチプレクサ回路(HD&VDM)と組み合わ
されて作動するための、例えばバッファメモリー回路の
ような、1対のメモリー回路を空間デコーダ内に提供す
ることである。、第1の緩衝記憶装置は、HD & V
DMの前に配置され、そして、第2の緩衝記憶装置は、
HD & VDAの後に配置される。KD & VDM
は、2進1及び0出構成されるビットストリームを復号
化する。これらの数値は、規格符号化されたビットスト
リーム内に所在し、そして、当該ビットストリームを、
下流において使用される数に変換する。2バッファシス
テムの利点は、多重伸長システムを実現するために使用
できることである。これら2つのバッファについては、
ハフマンデコーダの確認済み実施例と組み合わせて、こ
の後で詳細に説明される。
【0306】本多重規格伸長回路の更に別の態様は、ハ
フマンデコーダと組み合わせて作動する第1のフォーワ
ードバッファの上流に配置されたスタートコード検出器
回路と組合わされることである。この組み合わせの1つ
の利点は、入力ビットストリーム、特にパディングを扱
う場合に、ビットストリームに加えられなければならな
い融通性が増大することである。これらの確認済みコン
ポーネント、スタートコード検出器、メモリーバッフ
ァ、及びハフマンデコーダを配置すると、入力ビットス
トリームにおける特定のシーケンスの扱いを強化する。
更に、チップ外DRAMは、JPEG符号化された動
画画像をリアルタイムに復号化するために用いられる。
DRAMと共に使われるバッファのサイズ及び速度は、
動画符号化されたデータレートに依存する。
【0307】符号化規格は、規格から独立した回路を用
いる空間デコーダと関連するDRAMに記憶するために
必要な規格従属タイプの全ての情報を識別する。
【0308】3.動画伸長 本発明において、復号化過程を経て動画が伸長されつつ
ある場合には、更に、時間デコーダが必要である。時間
デコーダは、空間デコーダにおいて復号化されたデータ
を現在復号化されつつあるピクチャ像の後でディスプレ
イすることを意図されている既に復号化済みの画像と組
み合わせる。時間デコーダは、画像符号化データストリ
ームにおいて、この時間的に置き換えられた情報を識別
するための情報を受け取る。時間デコーダは、時間的お
よび空間的に配置された情報をアドレスし、情報を検索
し、現在復号化されつつあり、そして、完了し、そし
て、ディスプレイスクリーンをドライブするために動画
フォーマッティング部への伝送に適した結果的な画像を
終了させる画像を用いて1つの画像内に配置された情報
を復号化するような方法によって情報を組み合わせる。
その代りに、結果的な画像は、後続する画像の時間的復
号化のためにその後で使用するために記憶しておくこと
ができる。
【0309】一般に、時間デコーダは、現在復号化され
つつある画像に対して早期及び/又は後期のいずれかに
おいて画像間の処理を実施する。時間デコーダは、当該
画像の符号化された表示内に符号化されない情報を再導
入する。理由は、当該情報が冗長であり、そして、デコ
ーダにおいて既に利用可能であることに因る。更に詳細
には、あらゆる所定の画像が、前後両方において当該情
報を時間的に囲むような類似の情報を含むことが可能で
ある。 運動補償が適用されるならば、この類似性を更
に大きくすることができる。時間デコーダ及び伸長回路
は、同様に、関連した画像の間の冗長度を減少させる。
【0310】本発明の他の態様において、時間デコーダ
は、空間デコーダからの規格従属出力情報を扱うために
用いられる。1つの単一画像に関するこの規格従属情報
は、空間デコーダによって処理された伸長された出力情
報が、第1の画像の時間的な位置に関して時間的に配置
された空間的に復号化された画像情報の空間的に復号化
された情報パケットの1つの画像を組み合わせるため
に、更に他のマシンに従属し規格から独立したアドレス
生成回路を有する他の等速呼出記憶装置によって他のD
RAMレジスタに記憶されるような方法において、DR
AMの幾つかの領域の間に配分される。
【0311】MPEG符号化された信号を復号化するこ
との出来る多重規格回路においては、更に大きい論理D
RAMバッファは、MPEGに適合可能な更に大きい画
像フォーマットをサポートすることが要求される場合も
あり得る。
【0312】画像情報は、8画素×8画素ブロックにお
ける直列パイプラインを通って移動中である。本発明の
1つの形において、アドレス復号化回路は、ブロック境
界に沿ってこれらの画素ブロックを扱う(記憶および検
索する)。更に、アドレス復号化回路は、境界を横断し
て行われる8×8画素ブロックの記憶および検索を扱
う。この汎用性については、以下において更に完全に説
明することとする。
【0313】第2の時間デコーダは、同様に、信号処理
遅延なしに扱うために、第1のデコーダ回路(空間デコ
ーダ)の出力を直接動画フォーマッティング部に供給し
ても差し支えない。
【0314】更に、時間デコーダは、ディスプレイ回路
による遅延に対して、画像データのブロックを順序付け
し直す。後で説明するように、アドレス復号化回路はこ
の順序付けし直しを実施可能にする。
【0315】既に述べたように、時間デコーダの1つの
重要な特徴は、画像の選択から得られた処理中の画像よ
りも早期に、或いは、遅れて到着した画像情報を合計す
ることである。
【0316】この文脈においてピクチャについて記述す
る場合、ピクチャは次に示す内容のいずれかを意味す
る。
【0317】1.ピクチャの符号化されたデータ表示で
ある。
【0318】2.結果である、即ち、デコーダによって
行われたプロセス段階を加算した結果として得られる最
終的な復号化済みのピクチャである。
【0319】3.DRAMから読み出された既に復号化
済みのピクチャである。
【0320】4.空間的復号化の結果である。即ち、ピ
クチャ・スタートトークンとその次のピクチャ・エンド
トークンとの間のデータの範囲である。
【0321】ピクチャデータ情報が時間デコーダによっ
て処理された後で、情報は、ピクチャ記憶場所にディス
プレイされるか、或いは、書き戻される。次に、この情
報は、別の異なる符号化済みデータピクチャを処理する
際に用いられる更なる基準として保持される。視覚的デ
ィスプレイのための MPEG符号化されたピクチャの
再配列には、可所要のスクランブルされたピクチャは、
時間デコーダの再配列機能を変えることによって達成さ
れる能性が包含される。
【0322】4.RAMメモリーマップ 空間デコーダ、時間デコーダ、及び動画フォーマッティ
ング部は、全て、外部DRAMを使用する。これら全て
の3つのデバイスには同じDRAMが用いられることが
好ましい。これら3つ全てのデバイスがDRAMを用
い、更に、3つ全てのデバイスがアドレス発生器と共に
DRAMインターフェースを使用する場合であっても、
各々がDRAMにおいて実現するものは同じでない。即
ち、各チップ、例えば、空間デコーダ及び時間デコーダ
は、同じ物理的な外部DRAMを使用する場合であって
も、異なるDRAMインターフェース及びアドレス生成
回路を有する。
【0323】要するに、空間デコーダは、共通DRAM
内に2つのFIFOを実現する。再び図18を参照する
こととし、一方のFIFO54は、ハフマンデコーダ5
6及びパーザーの前に配置され、そして、他方は、ハフ
マンデコーダ及びパーザーの後に配置される。FIFO
は、比較的直截な方法において実現される。DRAMの
特殊な部分は、各FIFOに対して、その中にFIFO
を実現するための物理的メモリーとして控除しておかれ
る。
【0324】空間デコーダDRAMインターフェース5
8と関連しているアドレス発生器は、2つのポインタを
使用して、FIFOアドレスのトラックを管理する。1
つのポインタは、FIFOに記憶されている第1ワード
を指し、もう一方のポインタは、FIFOに記憶されて
いる最後のワードを指し示す。従って、所定のワードへ
の読み/書き操作を可能にする。読み、又は、書き操作
における実施過程において物理的メモリーの終端に到達
した場合には、アドレス発生器は、物理的メモリーのス
タートに対して「ラップアラウンド(wraps around)」す
る。
【0325】要するに、どの符号化規格(MPEGまた
はH.261)が指定されていても、本発明にかかる時
間デコーダは、2つの完全なピクチャ又はフレームを記
憶することができなければならない。説明を簡易にする
ために、その中に2つのフレームを記憶しようとするD
RAMの物理的メモリーを2つの半分部分に分割するも
のとし、各半分は、それぞれ、(適切なポインタを用い
て)2つのピクチャのうちの特定の1つに対する専用と
する。
【0326】MPEGは、3つの異なるタイプのピクチ
ャを用いる、即ち、イントラ(I)、予測(P)、及び
双方向補間(B)である。既に述べたように、Bピクチ
ャは、2つのピクチャからの予測に基づく。一方のピク
チャは未来から、そして、いま一方は過去から得られ
る。Iピクチャは、時間デコーダによるそれ以上の復号
化を必要としないが、しかし、P及びBピクチャを復号
化する際に後で使用するために、2つのピクチャバッフ
ァのうちの1つに記憶されなければならない。Pピクチ
ャの復号化には、既に復号化済みのP又はIピクチャか
ら予測を形成することが必要である。復号化されたPピ
クチャは、P及びBピクチャの復号化に用いるために1
つのピクチャに記憶される。Bピクチャは、両方のピク
チャバッファからの予測を要求することができる。ただ
し、Bピクチャは外部DRAMに記憶される。
【0327】I及びPピクチャが復号化される場合に、
時間デコーダから出力されないことに注意されたい。そ
の代りに、I及びPピクチャは、ピクチャバッファの1
つに記入され、そして、次のIまたはPピクチャが、復
号化のために、到着する場合に限り、読み出される。換
言すれば、フラッシングに関する本セクションの以降に
おいて更に説明されるように、時間デコーダは、2つの
ピクチャバッファから前のピクチャをフラッシュするた
めに、その次のPまたはIピクチャを信頼する。要する
に、空間デコーダは、PまたはIピクチャをフラッシュ
するために、動画シーケンスの終端において偽のIまた
はPを供給することが出来る。結果的に、次の動画シー
ケンスがスタートするとき、この偽ピクチャはフラッシ
ュされる。 Bピクチャの復号化に際して、ピークメモ
リー帯域幅のロードが起きる。最悪の状態は、全ての予
測が半画素の精度を以て作成され、両方のピクチャバッ
ファから供給されるこの種の予測からBフレームが形成
される場合である。
【0328】以前に記述したように、時間デコーダは、
MPEGピクチャの再順序付けを提供するように、構成
することができる。このピクチャ再順序付けにより、デ
ータストリーム内のその次のPまたはIピクチャの時間
デコーダによる復号化がスタートする時まで、P及びI
ピクチャの出力は遅延する。
【0329】PまたはIピクチャが再順序付けされる
と、ピクチャがピクチャバッファに記入されるにつれ
て、特定のトークンは一時的にチップに記憶される。ピ
クチャがディスプレイ用に読出されると、これらの記憶
されているトークンが検索される。時間デコーダの出力
において、新規に復号化されたPまたはIピクチャのデ
ータトークンは、より旧いPまたはIピクチャと交換さ
れる。
【0330】一方、H.261は、復号化されたばかり
のピクチャからのみ予測を製作する。各ピクチャが復号
化されるにつれて、2つのピクチャバッファの1つに記
入され、次のピクチャ復号化に使用可能となる。必要と
される唯一のDRAMメモリーオペレーションは、8×
8ブロックを書くことであり、そして、整数精度のモー
ションベクトルによって予測を形成することである。
【0331】要するに、動画フォーマッティング部は、
3つのフレーム又はピクチャを記憶する。ピクチャの反
復またはスキップするような機能を収容するために、3
つのピクチャが記憶される必要がある。
【0332】5.ビットストリームの特性 本発明にかかる空間デコーダを特に参照することとし、
符号化されたデーアストリームのビットストリーム特性
を再検討することは有用である。理由は、これらの特性
は、空間デコーダ及び時間デコーダの回路によって扱わ
れなければならないからである。例えば、1つ又は複数
の圧縮規格の下において、当該規格の圧縮比率は、1つ
のピクチャの複数のピクチャを符号化するために使用さ
れるビットの数を変えることによって達成される。ビッ
ト数は、広い範囲に亙って変化し得る。詳細には、この
ことは、1つのピクチャの基準ピクチャを符号化するた
めに使われるビットストリームの長さは、1つの単位長
さとして識別可能であり、他のピクチャは、多数の単位
の長さであっても差し支えなく、第3のピクチャが当該
単位の部分であることも可能である。
【0333】現行規格(MPEG1.2、JPEG、
H.261)のうちのいずれも、ピクチャ像を終了する
方法を定義せず、次のピクチャがスタートする時、現在
のピクチャが終わることが黙認されている。更に、規格
(特にH.261)は、エンコーダによって不完全なピ
クチャが生成されることを可能にする。
【0334】本発明に基づき、トークンの1つピクチャ
・エンドを用いることによって1つのピクチャのエンド
を示す方法が提供される。ウタートコード検出器から離
れる静止符号化データは、ピクチャ・スタートトークン
によってスタートし、そして、ピクチャ・エンドトーク
ンによって終了するが、長さが大幅に変化するピクチャ
から成る。ここに(第1と第2のピクチャとの間)伝送
された他の情報があるかもしれないが、第1のピクチャ
が終了したことは既知である。
【0335】空間デコーダの出力におけるデータストリ
ームは、所定のシーケンスに対して長さ(ビット数)が
同じであり、依然としてピクチャスタート、及びピクチ
ャエンドのピクチャから成る。ピクチャスタートとピク
チャエンドとの間の時間の長さは変化しても差し支えな
い。
【0336】動画フォーマッティング部は、時間的に不
均一なこれらのピクチャを受け取り、そして、ドライブ
されつつあるディスプレイのタイプによって決定される
固定ピクチャレートにおいて、これらをスクリーン上に
ディスプレイする。例えば、PAL−NTSCテレビジ
ョン規格のように種々異なるディスプレイレートが世界
中で使用されている。これは、独特の方法において、ク
チャを選択的にヅルーピングまたは反復することによっ
て達成される。普通の「フレームレートコンバータ」、
例えば、2−3プルダウンは、固定入力ピクチャレート
によって動作するが、動画フォーマッティング部は可変
入力ピクチャレートを扱うことができる。
【0337】6.再構成可能な処理ステージ 再び図17を参照することとし、再構成可能な処理ステ
ージ(RPS)は、2線インターフェース33、及び入
力ラッチ34から入来するトークンを受け取るために用
いられるトークンデコード回路32を有する。トークン
デコード回路33の出力は、2線インターフェース36
及びアクション識別回路39を介して処理回路35に供
給される。処理回路35は、アクション識別回路の制御
の下におけるデータ処理に適する。処理が完了した後
で、処理回路36は、出力ラッチ41を介し完成された
信号を2線インターフェースバス40の出力に接続す
る。
【0338】アクション識別デコード回路39は、2線
インターフェースバス40を介してトークンデコード回
路33から供給されるか、及び/又は、それぞれ2線イ
ンターフェースバス46を介してメモリー回路43及び
44から供給される入力を持つ。トークンデコード回路
33からのトークンは、アクション識別回路39及び処
理回路36に同時に供給される。アクション識別機能並
びにRPSについては、本明細書のこの次の部分におい
て表及び図を用いて更に詳細に説明される。
【0339】図17における機能ブロックダイアグラム
は、図18、図19、及び図20に記載されている規格
から独立した回路ではないステージを示す。データフロ
ーは、トークンデコーダ32を介し、処理ステージ35
を介し、そして、出力ラッチ41を介して2線インター
フェース回路42に流れる。制御トークンがRPSによ
り認識される場合には、トークンデコード回路33にお
いて復号化され、そして、適切なアクションが行われ
る。認識されない場合には、出力回路41を介して、2
線インターフェース回路42に、変化なしに供給され
る。現在の発明は、パイプラインを介して制御トークン
の動きを制御するための2線ワイヤインターフェース回
路を持つパイプラインプロセッサとして機能する。本発
明のこの特徴については、以前に出願された欧州特許出
願第92306038.8号に更に詳細に開示済みであ
る。
【0340】本発明において、トークンデコード回路3
3は、2線インターフェース42を経て現在入来中のト
ークンがデータトークンまたは制御トークンのいずれで
あるかを識別するために用いられる。トークンがトーク
ンデコーダ回路33によって調べられていることが認識
された場合には、実施されるべきアクションを示す適切
なインデックス信号またはフラグ信号によって、アクシ
ョン識別回路39に出力される。それと同時に、トーク
ンデコード回路33は、適切なフラグまたはインデック
ス信号を処理回路に供給し、アクション識別回路39に
よって扱われつつあるトークンの存在を処理回路に対し
て警告する。制御トークンも同様に処理されても差し支
えない。
【0341】本発明において使用可能な様々なタイプの
トークンについては、この後において更に詳細に説明さ
れる。本明細書のこの部分に関しては、制御トークンに
よって運ばれるアドレスはデコーダ33において復号化
され、そして、アクション識別回路39内に含まれるレ
ジスタにアクセスするために用いられることに注意する
だけで十分である。調査されつつあるトークンが認識さ
れた制御トークンである場合には、アクション識別回路
39は、ステートマシン全体に亙って制御信号を配分す
るために、その再構成状態回路を使用する。既に言及し
たように、これは、アクション識別デコーダのステート
マシンを作動化し、このデコーダはデコーダ自体を再構
成する。例えば、前記デコーダが符号化規格を変更する
こともあり得る。このようにして、アクション識別回路
39は、図17に示すステートマシンを介して供給しつ
つある特定の規格を扱うための所要のアクションを復号
化する。
【0342】同様に、アクション識別回路39によって
制御されている処理回路36は、この事象を引き起こす
ために適切である場合にデータトークンのデータフィー
ルドに含まれる情報を処理する準備を整える。多くの場
合、制御トークンが最初に到達し、アクション識別回路
39を再構成し、そして、次に処理回路36によって処
理されるデータトークンが直ぐ後に続く。制御トークン
は、プロセシングユニット36内において処理済みのデ
ータトークンの直ぐ前を先行する出力2線インターフェ
イス42を介して出力ラッチ回路41を出る。
【0343】本発明において、アクション識別回路39
は、ヒストリステートを保持するステートマシンであ
る。レジスタ43及び44は、トークンデコーダ33か
ら復号化され、そして、これらのレジスタに記憶されて
いる情報を保持する。この種のレジスタは、必要に応じ
て、オンチップ又はオフチップのいずれであっても差し
支えない。これら複数のステートレジスタは、アクショ
ン識別に接続されたアクション識別回路39において現
在識別されつつあるアクション情報を含む。このアクシ
ョン情報は、以前に復号化されたトークンから記憶さ
れ、そして、選定されるアクション影響することが可能
である。接続40は、トークンデコード33からアクシ
ョン識別ブロック39まで直線的に接続する。これは、
アクションがトークンデコード回路33によって現在処
理されつつあるトークンによっても影響され得ることを
示すことを意図したものである。
【0344】本発明に基づくトークン復号化およびデー
タ処理を示す。データ処理は、アクション識別回路39
によって構成されるように行われる。アクションは、条
件の数によって影響され、そして、既に復号化済みのト
ークンから全体的に得られた情報によって影響され、或
いは、更に詳細には、レジスタ43及び44において既
に復号化済みのトークンから記憶された情報、処理中の
現行トークン、及びアクション識別ユニット39がそれ
自身で獲得したステートおよびヒストリ情報によって影
響される。それによって制御トークンとデータトークン
との間の区別が示される。
【0345】あらゆるRPSにおいて、いくらかのトー
クンは、当該RPSユニットによって制御トークンとし
て見られる。この場合、これらのトークンは幾分後の時
点においてRPSのオペレーションに影響するはずであ
る。トークンの他の集合は、RPSによってデータトー
クンとして見られる。この種のデータトークンは、特定
回路の設計、既に復号化済みのトークン、及びアクショ
ン識別ユニット39の状態によって決定されるような方
法においてRPSによって処理される情報を含む。
【0346】特定のRPSは、特定のRPSコントロー
ルに対する或る特定のトークンの集合および他のトーク
ンの集合をデータとして識別するが、これは特定の当該
RPSのビューである。別のPPSは、同じトークンに
対して別の異なったビューを持つことが可能である。一
方においては、いくらかのトークンは、1つのRPSユ
ニットによってデータトークンとして見られ、他方にお
いては、別のRPSユニットによって実際に制御トーク
ンであるものとして決定されることが可能である。例え
ば、量子化表情報は、少なくともハフマンデコーダ及び
ステートマシンに関する限りにおいては、データであ
る。理由は、当該情報はその入力にコード化されたデー
タとして到着し、一連の8ビットワードに書式化され、
そして、処理パイプラインを下流に移動する量子化表ト
ークン(QUANTテーブル)と呼ばれるトークンに形
作られるからである。当該マシンに関する限りにおいて
は、全ての情報はデータであったはずであり、当該情報
はハンドリングデータであって、或る種のデータを別の
種類のデータに変換し、これは明らかに、当該マシンの
当該部分によって遂行される処理機能である。ただし、
当該情報が逆量子化器に到着すると、逆量子化器は、複
数のレジスタである当該トークン内にその情報を記憶す
る。実際、64個の8ビット数があり、そして、多数の
レジスタであるので、全体として、多数のレジスタが存
在可能である。この情報は、制御情報として見なされ、
従って、情報は各データワードに乗算する数に影響する
ので、当該制御情報は、その次のデータトークンにおい
て行われる処理に影響する。1つのステージは当該トー
クンをデータであると見なし、そして、他のステージは
当該トークンを制御であると見なした例がある。
【0347】本発明に基づくトークンデータは、殆どの
場合、マシンを通過するデータであるものと見なされ
る。重要な態様の1つは、一般に、トークンデコーダを
有する回路の各ステージが特定のトークンの集合を探し
ており、そして、当該ステージが認識しないトークン
は、変化しないままでステージを通過し、そして、パイ
プラインを下流に移動することである。その結果、現行
ステージに後続する下流ステージがこれらのトークンを
見ると言う利点があり、これらのトークンに応答可能で
ある。これは、重要な特徴である。すなわち、隣接して
いないブロックに対してトークンメカニズムを用いるこ
とによりブロックの間の通信が可能である。
【0348】本発明の他の重要な特徴は、回路の各々の
ステージは、各々の規格にとって必要なオペレーション
を行うことができる範囲内において、処理能力を持つこ
と、及び所定の時点において行われなければならないオ
ペレーションに関してトークンとして制御を遂行できる
ことである。この能力を提供するために、異なるステー
ジの間において異なる1つの処理エレメントがある。パ
ーザーのステートマシンROMにおいて、3つの完全に
異なる分離されたプログラムがある。各プログラムは扱
われる各規格に対応する。どのプログラムが実行される
かはコーディング・スタンダードトークンに依存する。
換言すれば、これら3つのプログラムの各々は、その内
部に、復号化及びコーディング・スタンダード規格トー
クンの両方を扱う能力もつ。これらのプログラムの各々
が、次に解釈されるべき符号化規格がどちらであるかを
理解した場合、これらのプログラムは、マイクロコード
ROM内の当該プログラムのためのスタートアドレスへ
リテラルにジャンプする。これが、ステージが多重規格
性を扱う方法である。
【0349】異なる規格によって2つの事柄が影響され
る。第1に、スタートマーカコードの長さを検出するた
めのシフトレジスタを再構成するためにビットストリー
ム内のビットのどのパターンが、スタートコード、また
はマーカーコードとして認識されるかが影響される。第
2に、当該スタートまたはマーカコードが何を意味する
かを表示する1つの情報がマイクロコード内に所在刷
る。ビットの符号化は、3つの規格の間で異なることを
思い出されたい。従って、マイクロコードは、そのコン
プレッサ規格に特有の表において、当該規格標準から独
立しているもの、即ち、入来コードを表すトークンのタ
イプを参照する。大抵の場合に、様々な規格の各々は、
当該規格が生成する特定のコードを提供するので、この
トークンは、一般に、当該規格から独立している。
【0350】逆量子化器79は数学的能力を持つ。量子
化器は、乗算および加算を行い、そして、パラメータに
よって構成される3つ全ての圧縮規格を実行する能力を
持つ。例えば、制御装置内のROMにおけるフラグビッ
トは、逆量子化器に対して、定数Kを加えるかどうかを
告げる。別のフラグは、逆量子化器に対して、他の定数
を加えるかどうかを告げる。逆量子化器は、トークンが
量子化器によって流れる場合、レジスタ内にコーディン
グ・スタンダードトークンを記憶する。それ以降にデー
タトークンが通過する場合には、逆量子化器は、当該規
格が何であるかを記憶し、そして、適切なオペレーショ
ンを行うために処理エレメントに供給する必要のあるパ
ラメータを探索する。例えば、逆量子化器は、特定の圧
縮規格に対してKが0にセットされるか、或いは、1に
セットされるかを探索し、そして、その結果をその処理
回路に供給する。同様の意味において、ハフマンデコー
ダ56は、その中に多数の表を持ち、その幾つかはJP
EG用であり、その幾つかはH.261用であり、その
幾つかはMPEG用である。実際、これらの表の大多数
は、これらの圧縮規格の1つ以上に役立つ。どの表が使
われるかは、当該規格のシンタックスに依存する。ハフ
マンデコーダは、どの表を使うかを告げるステートマシ
ンからのコマンドを受け取ることにより、作動する。従
って、ハフマンデコーダは、それに入力され、記憶さ
れ、そして、どの符号化が実施されつつあるかを表明す
る1つの状態をそれ自体は直接持たない。そうでなく
て、一緒になってそれらの中に情報を含むパーザーステ
ートマシンとハフマンデコーダの組み合わせである。
【0351】本発明の空間デコーダに関しては、アドレ
ス生成は、改造され、そして、図17に示す場合に類似
し、多数の情報は、例えば符号化規格のようなトークン
から復号化される。同様に、符号化規格および付加的情
報はレジスタに記録され、そして、当該情報がシステム
内のマクロブロックを通過して、1つ1つカウントする
場合にはアドレス発生器ステートマシンの進行に影響す
る。最後のステージは、2つのモードH.261、また
はMPEGのどちらかで作動し、そして、容易に識別さ
れる予測フィルタ407−9(図26)である。
【0352】7.多重規格符号化 更に詳細には、本発明に基づく制御トークンは、当該ト
ークンに複数のワードを有する。この場合、拡張ビット
として知られる1つのビットがセットされ、追加情報を
運ぶためのトークン内における付加ワードの使用を指定
する。これらの付加制御ビットのうちの或るものは、対
応するステートマシンにおいて1組の規格から独立した
インデックス信号を作成するために使用される情報を示
すインデックスを含む。トークンの残りの部分は、パイ
プラインプロセッサを通過する全てのデータストリーム
に対して標準となる内部の処理制御機能を示し、そし
て、識別するために使用される。
【0353】本発明の1つの形のにおいて、トークン拡
張は、マシン全体に亙って配分された相対トークン復号
化回路によって復号化される現行符号化規格を運ぶため
に使われ、そして、そして、新しい符号化規格の下で動
作することが適切である場合にはいつでもマシン全体に
亙るステージのアクション識別回路39を再構成するた
めに使われる。更に、トークン符号化回路は、当該回路
が扱うように設計された選定された規格の1つと制御ト
ークンが関係があるかどうかを示すことができる。
【0354】更に詳細には、MPEGスタートコード、
及びJPEGマーカにはは8ビットバリューが後続す
る。H.261スタートコードのは4ビットバリューが
後続する。この文脈において、スタートコード検出器5
1は、MPEGスタートコードか又はJPEGマーカー
のいずれかを検出することによって、次の8ビットがス
タートコードと関連している値を含むことを示す。次
に、前記検出器は、独立的に、MPEGスタートコード
またはJPEGマーカーのいずれであり、そして、H.
261スタートコードでないことを示す信号を作成する
ことがっできる。この第1の場合において、8ビットバ
リューはデコード回路に入力され、デコード回路の一部
は、当該回路を通過するトークンを扱うために現行回路
内において使用されるインデックス及びフラグを示す信
号を作成する。これは、その後においてどちらの規格が
扱われつつあるかを決定するために参照される制御トー
クンの部分を挿入するためにも使われる。この意味にお
いて、制御トークンは、MPEG規格、並びに、同伴デ
ータに作用するオペレーションのタイプを示す部分と関
係があることを示す部分を含む。既に検討したように、
この情報は、その目的のために作られた様々な規格によ
って必要とされる機能を遂行るために用いられる処理ス
テージを再構成するために、システムにおいて利用され
る。
【0355】例えば、H.261スタートコードに関し
て、このコードはスタートコードのすぐ後に後続する4
ビットバリューと関連する。スタートコード検出器は、
この値をトークン発生器ステートマシンに供給する。こ
の値は、3ビットスタート数を作る8ビットデコーダに
供給される。スタート数は、当該バリューによって示さ
れるように、ピクチャ数のピクチャ・スタートを識別す
るために用いられる。更に、システムは、既に述べた2
線インターフェースの原理の下で作動する多重並列処理
パイプラインを含む。各々のステージは、一般に図17
に示す形をとるマシンを含む。トークンデコードステー
ジ33は、アクション識別回路39、またはプロセシン
グユニット36にステートマシンを適宜エントリさせつ
つあるトークンを導くために用いられる。プロセシング
ユニットは、次の以前の制御トークンによって現行符号
化規格を扱うために必要な形に再構成済みであり、現行
規格は、処理ステージに現在エントリされつつあり、そ
して、次のデータトークンによって運ばれる。更に、本
発明のこの態様に基づき、処理パイプラインにおける連
続したステートマシンは、1つの符号化規格、即ち、
H.261の下で機能することが可能であり、一方、前
のステージは、例えばMPEGのような個別規格の下で
動作することが可能である。制御トークン及びデータト
ークンの両方を運ぶために同じ2線インターフェースが
使われる。
【0356】更に、本発明のシステムは、固定した数の
再構成可能な処理ステージと共に多数の符号化規格を復
号化することを要求される制御トークンを用いる。更に
詳細には、ピクチャが実際に終了する時点を指示するこ
とは重要であるので、ピクチャ・エンド制御トークンが
用いられる。従って、多重規格マシンを設計する場合に
は、どの規格復号化技術を使用するかを示す付加的制御
トークンを多重規格パイプライン内に作ることが必要で
ある。この種の制御トークンはピクチャ・エンドトーク
ンである。このピクチャ・エンドトークンは、バッファ
をフラッシュするように強制し、そして、デコーダを介
して現行ピクチャをディスプレイへ押し出すために、現
行ピクチャが終了したことを示すために使われる。
【0357】8.多重規格プロセッシング回路―第2オ
ペレーションモード すでに述べたスタートコード検出器の形の圧縮規格従属
回路は、適切なバスを介して、圧縮規格から独立した回
路に適宜相互接続される。規格従属回路は、同じバス及
び付加的バスを介して、従属独立組み合わせ回路に接続
される。規格から独立した回路は、規格従属独立回路に
付加的入力を供給し、同時に、規格従属独立回路は規格
から独立した回路に情報を後方提供する。規格から独立
した回路からの情報は、他の適当なバスを介して、出力
に供給される。表600は、規格従属スタートコード検
出器51への入力に適用される多重規格には各符号化さ
れたビットストリーム内に規格従属的な意味を持つ特定
のビットストリームが含まれることを示す。
【0358】9.スタートコード検出器 既に述べたように、本発明に基づくスタートコード検出
器は、MPEG、JPEG、及びH.261ビットトリ
ームを扱い、そして、残りのデコーダにとって有意であ
る一連の所有権トークンを前記ストリームから生成する
ことができる。多重規格の復号化が達成される一例とし
て示せば、MPEG(1、及び2)ピクチャ・スタート
コード、H.261ピクチャ・スタートコード、及びJ
PEGスタートオブスキャン(SOS)マーカは、スタ
ートコード検出器によって等価として扱われ、そして、
これら全てが内部ピクチャ・スタートトークンを生成す
る。同様の方法において、MPEGシーケンススタート
コード、及びJPSG 501(スタートオブイメー
ジ)マーカは、両方共、マシンシーケンススタートトー
クンを生成する。ただし、H.261規格は等価スター
トコードを持たない。従って、スタートコード検出器
は、第1のH.261ピクチャ・スタートコードに応答
して、シーケンススタートトークンを生成する。
【0359】前述のイメージは、いずれも、SCD以外
には、直接使用されない。むしろ、例えば、マシンピク
チャ・スタートトークンは、ビットストリームに含まれ
るピクチャ・スタートイメージに等価であると思われて
いる。更に、次の事柄を念頭に置かれたい、即ち、マシ
ンピクチャ・スタート自体は、規格におけるピクチャ・
スタートの直接的なイメージではない。むしろ、それ
は、各々の圧縮コード化規格におけるイメージのオペレ
ーションをエミュレートする規格から独立した復号化機
能を提供するために他の制御トークンと組み合わせて使
われる制御トークンである。制御トークンによって運ば
れた情報に基づく回路の再構成と結合した制御トークン
の組み合わせ、及び更に、それぞれのステートマシンの
トークン復号化回路部分によって生成されたインデック
ス及び/又はフラグとの組み合わせは、独特である。典
型的な再構成可能なステートマシンについては次に続い
て説明される。
【0360】再び、表600を参照することとし、左の
カラムには規格イメージのグループの名前が示される。
右カラムには、当該規格イメージ内には存在しないか、
又は、使用されない規格符号化された信号のエミュレー
ションに用いられるマシン従属制御トークンが示され
る。
【0361】表600において、既に述べたように、表
600に記載されている規格信号の任意の1つを復号化
する場合、マシンシーケンススタート信号はスタートコ
ード検出器によって生成されることが分かる。スタート
コード検出器は、システム全体に亙って用いられる2線
インターフェースへ供給するために、シーケンススター
ト、グループスタート、シーケンスエンド、スライスス
タート、ユーザー―データ、エクストラ―データ、及び
ピクチャ・スタートトークンを作る。これらの制御トー
クンと共に作動するこれらの各ステージは、トークンの
内容によって構成されるか、或は、トークンの内容によ
って作られるインデックスによって構成され、そして、
ピクチャデータトークンが当該ステーションに到着する
場合に受信されると予測されるデータを扱う準備が整え
られる。
【0362】既に述べたように、例えばH.261のよ
うな圧縮規格の1つは、そのデータストリーム内にシー
ケンスイメージスタートを持たず、そのデータストリー
ム内にピクチャ・エンドイメージも持たない。スタート
コード検出器は、入来ビットストリーム内にピクチャ・
エンドポイントを示し、そして、PICTUtZEEN
Dトークンを作る。この点に関して、本発明のシステム
は、本発明の実現において使用するために選定された各
々のレジスタの位置に情報の1ビットを含むように完全
にパックされたデータワードを運ぶことを意図する。こ
の目的のために、2つのスタートコードの間で供給され
るビット数として15ビットが選定された。勿論、当該
技術分野における通常の熟練者であれば、15ビットよ
り多いか少ないいずれの選択を行うことも可能であるこ
とが理解できるはずである。換言すれば、スタートコー
ド検出器からDRAMインターフェースへ供給される全
てのデータワードが15ビットであることは、適切なオ
ペレーションのために必要とされる。従って、スタート
コード検出器は、データトークンの最終ワード挿入され
るパディングと称する余分のビットを作る。説明のため
には、15データビットが選定された。
【0363】本発明に基づくパディング(padding)オペ
レーションを行うためには、多数の2進1が後続する2
進0は、15ビットデータワードを完成するために、自
動的に挿入される。次に、このデータは、コード化され
たデータバッファを介して供給され、そして、パディン
グを除去するハフマンデコーダに供給される。従って、
任意の数のビットが、固定したサイズ及び幅のバッファ
を供給可能である。
【0364】1つの実施例において、ピクチャのスライ
スを識別するためにスライススタート制御トークンが使
われる。スライススタート制御トークンは、ピクチャを
更に小さい領域に分割するために用いられる。この領域
のサイズは、エンコーダによって選定され、そして、ス
タートコード検出器は、スタートコード検出器から下流
に位置するマシン従属ステートステージに対して、受信
ピクチャを更に小さい領域に分割するために、スライス
スタートコードのこの唯一のパターンを識別する。領域
のサイズは、スタートコード検出器で識別され、そし
て、符号化されたピクチャを伸長するために再組合わせ
回路及び制御トークンによって使用されるエンコーダに
よって選択される。スライススタートコードは、主とし
てエラー回復のために使われる。
【0365】スタートコードは、デコーダを始める唯一
の方法を提供し、そして、これについては、続いて更に
詳細に説明される。スタートコード検出器をコード化さ
れたデータバッファの前に配置すれば、コード化データ
バッファの後、そして、ハフマンデコーダ及び動画dデ
マルチプレクサ前にスタートコード検出器を配置する場
合と比較して、多数の利点が得られる。第1のバッファ
の前にスタートコード検出器を設置した場合には、1)
トークンの組立てが可能であり、2)例えばスタートコ
ードのような規格制御信号の復号化が可能であり、3)
データがバッファに入る前に、ビットストリームのパッ
ドが可能であり、そして、4)バッファを空にするため
に、制御トークンの適切なシーケンスを作り、利用可能
なデータをバッファからハフマンデコーダに入れること
が可能である。
【0366】スタートコード検出器によって出力される
制御トークンの殆どは、様々なピクチャ、及び動画符号
化規格の構文エレメントを直接反映する。スタートコー
ド検出器は、構文エレメントを制御トークンに変換す
る。これらの自然トークンに加えて、幾つかの一意的、
及び/又は、マシン従属トークンが生成される。一意的
なトークンには、本発明のシステムにより使用するため
に特に設計され、内部的にも外部的にも一意的であり、
そして、本発明の多重規格性に関して補助するために用
いられるトークンが含まれる。この種の一意的なトーク
ンの例には、ピクチャ・エンド、及びコーディング・ス
タンダードが含まれる。
【0367】更に、トークンは、符号化規格の間の構文
的な差の幾つかを除去するため、及びエラー条件と協調
作動するために導入される。自動トークン生成は、規格
従属データの順次分析の後で行われる。従って、空間デ
コーダは、空間デコーダの入力に直接供給されたトーク
ン、即ち、SCD、並びに、コード化されたデータにお
けるスタートコードの検出に続いて生成されたトークン
に平等に応答する。本発明の多重規格性を制御するため
に一連のエキストラトークンが2線インターフェースに
挿入される。
【0368】MPEG及びH.26l符号化動画ストリ
ームは、規格従属非データ識別可能ビットパターンを含
み、これらのパターンの1つを、今後、スタートイメー
ジ、及び/又は、規格従属コードと呼ぶこととする。J
PEGにおいては、同様の機能はマーカコードによって
提供される。これらのスタートする/マーカコードは、
コード化されたデータストリームの構文の重要な部分を
識別する。スタートコード検出器によって行われるスタ
ート/マーカコードの分析は、コード化されたデータ解
析の最初のステージである。
【0369】スタート/マーカコードパターンは、ビッ
トストリーム全体を復号化することなしにパターンを識
別できるように設計される。従って、それらのパターン
は、エラー回復及びデコーダスタートを援助するために
本発明に基づいて使用できる。スタートコード検出器
は、コード化されたデータ構成内のエラーを検出し、そ
して、デコーダのスタートを援助するための、機能を提
供する。スタートコード検出器のエラー検出能力につい
ては、デコーダのスタート過程につれて、この後で詳細
に説明される。
【0370】前記の記述は、主として、マシン従属ビッ
トストリームの特性、及び本発明のアドレッシング特性
との関係に関する説明であった。次の記述は、スタート
コード検出器に関する規格従属コード化データのビット
ストリームの特性の説明である。
【0371】各々の規格圧縮符号化システムは、特定の
圧縮仕様を識別するために選定された独特のスタートコ
ードコンフィギュレーション、またはイメージを用い
る。各々のスタートコードは、スタートコードバリュー
を持つ。スタートコードバリューは、当該規格の言語内
においてスタートコードと関連するオペレーションのタ
イプを識別するために用いられる。本発明の多重規格デ
コーダにおいては、既に述べたように、その互換性は、
制御トークン及びデータトークンコンフィギュレーショ
ンに基づく。フラグ信号を含むインデックス信号は、各
ステートマシン内において回路生成され、そして、以下
に適宜説明することとする。
【0372】当該規格に含まれるスタート、及び/又
は、マーカコード、並びに、データワードと対照的な他
の規格ワードは、当該マシンにおいて使用される制御、
及び/又は、データトークンの内容に関して、コード、
及び/又は、マシン従属コードの使用との混乱を回避す
るために、イメージとして識別されることが少なくな
い。同様に、スタートコードと言う用語は、JPEGマ
ーカコード並びにMPEG及びH.261に関する包括
的な用語として用いられることが多い。マーカコードと
スタートは同じ目的に役立つ。更に、「フラッシュ」(f
lush)と言う用語は、使フラッシュトークンを意味する
場合と、そして、動詞として、例えば、スタートコード
検出器シフトレジスタをフラッシュする場合(「フラッ
シュ済み」信号を含む)のように、両方の意味に用いら
れる。混乱を回避するために、フラッシュトークンは必
ず大文字で書かれる。用語(動詞、または名詞)の他の
全ての使用は小文字による。
【0373】規格従属コード化済み入力ピクチャ入力ス
トリームは、長さの変化するデータ及びスタートイメー
ジを含む。スタートイメージは、規格に応じて即座に後
続する当該データに対してどのオペレーションが実施さ
れるべきかを告げる値を一緒に運ぶ。ただし、多重規格
に対して互換性が必要とされる本発明の多重規格パイプ
ライン処理システムにおいて、システムは、全ての規格
において全ての機能を扱うために最適化されている。従
って、多くの条件において、一意的なスタート制御トー
クンは、符号化された信号規格イメージの値に含まれる
値に関してのみ互換性があるばかりでなく、当該技術分
野において周知のように各規格に対して指定されたパラ
メータによる表示に従って、規格のオペレーションをエ
ミュレートするために各種ステージを制御可能でなくて
はならない。この種の規格は、全て、参照資料として本
明細書に組み込み済みである。
【0374】単独で、或いは、他の制御トークンと組合
わせることによって規格ビットストリームに含まれる非
データ情報をエミュレートするトークンの間の関係を理
解することが重要である。フラグ信号を含むインデック
ス信号の個別の集合は当該ステートマシン内におけるい
くらかの処理を扱うために各ステートマシンによって生
成される。規格に運ばれる値は、規格データ及び非デー
タ信号の扱いをエミュレートするようにマシンの従属制
御信号にアクセスするために使用できる。例えば、スラ
イススタートトークンは2ワードトークンであり、従っ
て、既に述べたように、2線インターフェースに入力さ
れる。
【0375】本発明のシステムへのデータ入力は、例え
ば、ディスク、テープ等のような、スタートコード検出
器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はまだ空である。
【0376】今24ビットシフトレジスタ内に1つのピ
クチャ・スタートワードがあるものと仮定すれば、検出
サイクルは、ピクチャスタートコードパターンを認識
し、そして、その出力としてスタート信号を供給する。
一度、検出器がスタートを検出すれば、それに続くバイ
トは、当該スタートコードと関連した値であり、そし
て、これは、現在バリューレジスタ221にシッティン
グ(sitting)中である。
【0377】検出シフトレジスタの内容はスタートコー
ドであると識別済みであるので、これ以上プロセシング
が起きないことを保証するために、これらの3バイトを
用いて、2線インターフェースから、この内容を除去し
なければならない。デコードレジスタは空にされ、そし
て、バリューデコードシフトレジスタ230は、当該値
がこの種レジスタまでシフトされるのを待つ。
【0378】この段階において、バリューデコードシフ
トレジスタの低位ビット位置の内容は、ピクチャ・スタ
ートと関連した値を含む。標準ピクチャ・スタート信号
と等価の空間デコーダは、SD ピクチャ・スタート信
号と呼ばれる。ここにおいて、SD ピクチャ・スター
ト信号自体はトークンヘッダに含まれようとしており、
そして、この値は、トークンヘッダに対する拡張ワード
に含まれようとしている。
【0379】10.トークン 本発明の実現に際して、トークンは、制御、及び/又
は、データ機能に対する対話型インターフェースメッセ
ンジャパッケージの形式の万能順応ユニットであり、そ
して、1つの認識済みトークンに応答して様々なオペレ
ーションを行うためにそれ自体を再構成する1つのステ
ージである再構成可能なプロセシングステージ(RP
S)と共に使用するために改作される。トークンは、様
々な機能を達成するために処理ステージに応じて位置従
属又は位置独立のいずれかであっても差し支えない。更
に、トークンは、処理ステージによって変化させられ、
その次に、更に別の機能を達成するためにパイプライン
を下流方向に供給されるので、変質性であっても差し支
えない。トークンは、ステージの全て又は全てよりも少
ない部分と対話し、そして、この観点からすれば、隣
接、及び/又は、非隣接のステージと対話するた見なし
ても差し支えない。トークンは、幾つかの機能に対して
は位置従属であり、そして、他の機能に対しては位置独
立であっても差し支えなく、そして、或るステージとの
特定の対話は、当該ステージの以前における処理ヒスト
リによって調整可能である。
【0380】ピクチャ・エンドトークンは、多重規格デ
コーダにおいてピクチャエンドを送信する方法である。
【0381】多重規格トークンは、規格従属及び規格独
立ハードウェアと制御トークンとの混合体を用いてMP
EG、JPEG、及びH.261データストリームを1
つの単一デコーダにマッピングする方法である。
【0382】サーチモードトークンは、ランダムアクセ
ス、及び強化されたエラー回復を可能にするMPEG、
JPEG、及びH.261データストリームを検索する
ための技術である。
【0383】ストップ・アフタ・ピクチャトークンは、
復号化のクリアエンドを達成する方法であり、ピクチャ
のエンドを送信し、そして、デコーダパイプライン、即
ち、チャネルの変更をクリアする。
【0384】更に、トークンをパッドすることは、固定
サイズ固定幅のバッファを通って任意の数のビットを供
給させる方法である。
【0385】本発明は、トークンおよび2線システムを
使用する可変構成を有するパイプライン処理システムに
向けられる。2線システムと組合わせた制御トークン及
びデータトークンの使用は、制御トークンを使わないシ
ステムと比較して拡張された作動能力を有することを可
能にする多重規格システムの達成を容易にする。
【0386】制御トークンは、デコーダプロセッサの中
の回路よって生成され、そして、取り扱うために直列パ
イプラインプロセッサ内に供給する多数の異なるタイプ
の規格従属信号のオペレーションをエミュレートする。
直列プロセッサによる処理及び次に示す項目に関する考
察を行うために選定される多重規格の全てのパラメータ
を検討する技術が用いられる。即ち、1)それらの類似
性、2)それらの相違、3)それらの必要性、及び必要
条件、及び4)直列プロセッサに送り込まれる全ての規
格信号を効果的に処理するための正しいトークン機能の
選定。トークンの機能は規格をエミュレートすることで
ある。制御トークン機能は、部分的には規格従属信号間
のエミュレーション/翻訳として、及びパイプラインプ
ロセッサを介して制御情報を伝えるためのエレメントと
して使われる。
【0387】先行該技術によるシステムにおいては、規
格を識別し、そして、マイクロプロセッサインターフェ
ースを用いることによって専用回路を作るために周知の
技術に従って専用マシンが設計される。マイクロプロセ
ッサからの信号は、専用下流コンポーネントを介してデ
ータの流れを制御するために用いられる。この伸長機能
の選択、タイミング、及び組織化は、マイクロプロセッ
サから入来する信号によって援助された固定論理回路に
よる制御の下に行われる。
【0388】これとは対照的に、本発明のシステムは、
制御トークンの制御の下に下流機能ステージを構成す
る。MPUからの必要な、及び/又は、代替制御を入手
するためにオプションが提供される。
【0389】トークンは、伸長回路パイプラインプロセ
ッサを介して情報を伝達するための優れたフォーマット
を提供し、そして、作成する。以下に示す好ましい実施
例において選定され、そして、使用される設計において
は、トークンの各ワードの幅は最小限8ビットであり、
そして、1つの単一トークンは、1つ又は複数のワード
を越えて拡張することが出来る。トークンの幅は、可変
であり、そして、ビット数は任意に選定することが出来
る。拡張ビットは、トークンが現行ワードを越えて拡張
されるかどうか、即ち、トークンの最終ワード以外のト
ークンの全てのワードにおいけるビットが2進1にセッ
トされているかどうかを示す。トークンの第1ワードが
ゼロの拡張ビットを持つ場合には、これは、トークンの
長さは僅かに1ワードであることを示す。
【0390】各トークンは、トークンの第1ワードのビ
ット7においてスタートするアドレスフィールドによっ
て識別される。アドレスフィールドは、長さが可変であ
って、そして、複数のワードを越えて拡張することが潜
在的に可能である。好ましい実施例において、アドレス
の長さは8ビット以内である。ただし、これは、本発明
における制限条件でなく、これらのトークンの使用によ
って達成されるように選定された処理過程の大きさを意
味する。ワード1及び2における拡張ビットが1つの1
であり、付加ワードの後続を意味することは拡張ビット
識別ラベルによって示されることに注意されたい。ワー
ド3における拡張ビットはゼロであり、従って、当該ト
ークンのエンドを示す。
【0391】更に、トークンは可変ビット長さである。
例えば、9ビットのトークンワードに拡張ビットを加え
て合計10ビットが用いられる。本発明の設計におい
て、出力バスの幅は可変である。空間デコーダからの出
力の幅は9ビットであるか、または拡張ビット含まれる
場合には10ビット出ある。好ましい実施例において、
これらの余分なビットを利用する唯一のトークンはデー
タトークンであり、全ての他のトークンは、このエキス
トラビットを無視する。これは、制限条件ではなく、単
に実施例に過ぎないことを理解されたい。
【0392】データトークン及び制御トークンコンフィ
ギュレーションを使用することにより、これらのデータ
トークンによって運ばれつつある1つのワードにおける
ビットの数によって表されるデータの長さを変えること
が可能である。例えば、データトークンのワードにおけ
るデータビットは、この直列伸長プロセッサ全体を通じ
て使用される等速呼出記憶装置にアクセスする際に使用
するために、同一データトークンの他のワードにおける
データビットと組み合わせて11ビット、或いは、10
ビットのアドレスを形成可能であることは検討済みであ
る。これによって、広い範囲に亙り汎用性を持つことを
容易にし、可変性が追加される。
【0393】既に述べたように、データトークンは、1
つの処理ステージから次の処理ステージにデータを運
ぶ。従って、このトークンの特性は、デコーダを通過す
る際に変化する。例えば、空間デコーダへの入力におい
て、データトークンは、8ビットワードにパックされた
ビット直列符号化動画データを運ぶ。ここでは、各トー
クンの長さには制限がない。ただし、本発明のこの態様
の汎用性を例示するために(空間デコーダ回路の出力に
おいて)、各データトークンは、ちょうど64ワードを
持ち、そして、各ワードは9ビット幅であるものとす
る。更に詳細には、規格符号化信号は、長さの異なるメ
ッセージに対して、画像の異なる強度および詳細をコー
ド化することを可能にする。グループの第1画像は、プ
ロセシングユニット最多情報を提供する必要があるの
で、通常、最も長い数のデータビットを持つ。結果とし
て、第1画像は、できる限り多くの情報の伸長をスター
トすることが出来る。後続するワードは、走査情報フィ
ールドにおける第2の位置に関して第1ワードと比較し
た場合に違った信号を含むので、一般に、長さが短い。
規格符号化システムの要請に従い、可変量のデータが空
間デコーダの入力に供給されるように、ワードは、相互
に散在させられる。ただし、空間デコーダが機能した後
において、情報は、スクリーン上のディスプレイに適し
たピクチャフォーマットレートにおいてその出力に供給
される。例えば、NTSC、PAL、及びSECAMの
ような様々なディスプレイシステムと全世界に亙ってイ
ンターフェイスするために空間デコーダの時間に関する
出力レートは変化可能である。動画フォーマッティング
部は、この可変ピクチャレートをディスプレイに適した
一定のピクチャレートに変換する。ただし、ピクチャデ
ータは、依然として、64ワードから成るデータトーク
ンによって運ばれる。
【0394】11.DRAMインターフェース 3個のデコーダチップの各々に1つの単一高性能構成可
能DRAMインターフェースが用いられる。一般に、各
チップ上のDRAMインターフェースは実質的に同じで
ある。ただし、インターフェースは、チャネル優先権を
扱う方法が、相互に異なる。このインターフェースは、
空間デコーダ、時間デコーダ、及び動画フォーマッティ
ング部によって使用される外部DRAMを直接ドライブ
するように設計されている。一般に、DRAMインター
フェースをこれらのシステムのDRAMに接続するに
は、外部のロジック、バッファ、またはコンポーネント
は必要でない。
【0395】本発明に基づき、インターフェースは、次
の2つの方法により構成可能である。 1.種々異なるDRAMタイプを収容するように、詳細
なタイミングのインターフェースを構成することが出来
る。
【0396】2.異なる用途に応じてコスト/性能トレ
ードオフを提供するように、DRAMへのデータインタ
ーフェースの幅を構成することが出来る。
【0397】一般に、DRAMインターフェースは、シ
ステム内の各々3つのチップ上で実現される規格から独
立したブロックである。再び、これらのチップは、空間
デコーダ、時間デコーダ、及び動画フォーマッティング
部である。図18、図19、図20を再度参照すること
とし、これらの図は、DRAMインターフェースと、そ
れぞれ、空間デコーダ、時間デコーダ、及び動画フォー
マッティング部の残りのブロックとの間の関係を表すブ
ロック図である。各チップにおいて、DRAMインター
フェースは外部DRAMにチップを接続する。現在で
は、必要とされる比較的大量のDRAMをチップ上に作
成することは実際的でないので、外部DRAMが使用さ
れる。(注記:各チップは、自身の外部DRAM及び自
身のDRAMインターフェースを持つ。)更に、DRA
Mインターフェイスが圧縮規格独立である場合には、多
重規格H.261、JPEG、及びMPEGの各々を実
現するように、インターフェースを構成しなければなら
ない。多重規格オペレーション用としてのDRAMイン
ターフェースをどのように再構成するかについては、後
で更に詳細に説明される。
【0398】DRAMインターフェースのオペレーショ
ンを理解するには、DRAMインターフェースとアドレ
ス発生器との間の関係、及び2線インターフェースを用
いてこれら両者の間でどのように交信するかということ
を理解することが必要である。
【0399】一般に、名前が意味するように、アドレス
発生器は、DRAMをアドレスするために(例えば、D
RAM内の特定特アドレスに対して読み書きを行う場
合)DRAMインターフェースが必要とするアドレスを
生成する。2線インターフェースを使用する場合、DR
AMインターフェースが(パイプラインにおける先行ス
テージから)双方のデータ、及び有効なアドレス(アド
レス発生器から)を持つ場合に限り読むこと、及び書く
ことが起きる。個別のアドレス発生器の使用は、後で更
に検討するように、アドレス発生器及びDRAMインタ
ーフェース両方の構成を簡素化する。
【0400】本発明において、DRAMインターフェー
スは、アドレス発生器、および、それを介してデータが
供給されるステージのクロックの両方に同期するクロッ
クから操作可能である。操作の非同期性を扱うためには
特殊な技術が必要とされている。
【0401】データは、一般に、DRAMインターフェ
ースと64バイトのブロックにおけるチップの残りの部
分との間に転送される(時間デコーダにおける予測デー
タだけは唯一の例外である)。転送は、「スイングバッ
ファ」として知られているデバイスによって行われる。
スイングバッファは、本質的に、1つのRAMを満たす
か、或いは、空にし、同時に一方ではチップの他の部品
がもう一方のラムを空にするか、或いは、満たすDRA
Mインターフェースを用いてダブルバッファされたコン
フィギュレーションにおいて操作される1対のRAMで
ある。アドレス発生器からのアドレスを運ぶ個別のバス
は各スイングバッファと関連する。
【0402】本発明において、各々のチップは、4つの
スイングバッファを持つが、これらのスイングバッファ
の機能は各場合毎に異なる。空間デコーダにおいては、
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に示す。
【0403】図32は、アドレス発生器301、DRA
Mインターフェース302、及びデータを供給するチッ
プの残りのステージの間の制御インターフェースは全て
2線インターフェースであることを示す。アドレス発生
器301は、制御トークンを受信する結果としてアドレ
スを生成するか、或いは、単にアドレスの固定したシー
ケンスを生成(例えば、空間デコーダのFIFOバッフ
ァ用)しても差し支えない。DRAMインターフェース
は、アドレス発生器301と関連している2線インター
フェースを特別な方法で扱う。アクセプトラインがアド
レスを受信する準備が整った場合にアクセプトをハイに
保持する代わりに、アドレスラインは、アドレス発生器
による有効なアドレス供給を待ち、当該アドレスを処理
し、そして、1クロック周期に亙ってアクセプトライン
をハイにセットする。このように、リクェスト/肯定応
答(PEQ/ACK)プロトコルが実現される。
【0404】DRAMインターフェース302の独特の
特徴は、アドレス発生器301、及びデータを供給、或
いは、受け入れるステージと独立して通信することので
きる能力である。例えば、アドレス発生器は、書込みス
イングバッファ(図33)におけるデータと関連してい
るアドレスを生成しても差し支えないが、しかし、書込
みスイングバッファが外部DRAMへの記入準備が整っ
たデータのブロックが存在することを送信する時までア
クションは行われない。同様に、書込みスイングバッフ
ァは、外部DRAMへの記入準備が整っているものデー
タのブロックを含んでも差し支えないが、アドレスが、
アドレス発生器301から当該バスに供給される時ま
で、アクションは行われない。更に、書込みスイングバ
ッファにおけるRAMの1つが一度データで満たされる
と、データ入力が停動される(2線インターフェース受
け入れ信号がローにセットされる)以前に、他のRAM
は完全に満たされ、そして、DRAMインターフェース
側に「スイング」されることもあり得る。
【0405】本発明にかかるDRAMインターフェイス
302のオペレーションを理解する際、適切に構成され
たシステムにおいて、DRAMインターフェースは、ス
イングバッファと外部DRAM303との間において、
スイングバッファとチップの残りの部分との間の全ての
平均データレートの合計と少なくとも同等のデータレー
トを以てデータ転送が可能であることに注意することが
重要である。
【0406】各DRAMインターフェース302は、ど
ちらのスイングバッファが次にサービスするかを決定す
る。一般に、これは、「ラウンドロビン」(round robi
n)(即ち、次にサービスを受けるスイングバッファは、
最も最近でない順番であった次の利用可能なスイングバ
ッファである)、或いは、優先位エンコーダ(即ち、こ
の場合、幾つかのスイングバッファが他のものより更に
高い優先位を持つ)のいずれかである。双方の場合に、
他の全てのリクエストより更に高い優先位を持つ追加リ
クエストはリフッレシュリクエスト発生器から入来す
る。リフレッシュリクエストは、マイクロプロセッサイ
ンターフェースを介してプログラム可能なリフレシュカ
ウンタから生成される。
【0407】ここで、図33を参照することとし、この
図には、書込みスイングバッファの構成図が示される。
書込みスイングバッファインターフェースには、第1R
AM311、及び第2RAM312の2つのブロックが
含まれる。ここで更に検討するように、データは、書込
みアドレス303、及び制御部314による制御の下
で、前のステージからRAM331及び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が再度満杯にされ
る準備が整っていることを示す。
【0408】DRAMインターフェースがRAM311
を空にし、そして、入力側がRAM312を満たす以前
に、それを「スイング」する場合には、データのスイン
グバッファによる連続受け入れが可能である。そうでな
い場合には、RAM2が満杯である場合には、スイング
バッファは、RAM311が、入力側による使用のため
に後方に「スイング」されるまで、その受け入信号をロ
ーにセットする。
【0409】本発明に基づく読み取りスイングバッファ
のオペレーションは、入力データと出力データが反転す
る点を除けば、同じである。
【0410】本発明のDRAMインターフェースは、利
用可能なメモリーバンド幅を最大限にするように設計さ
れている。データの各8×8ブロックは、同一DRAM
ページに記憶される。このようにして、DRAM高速ペ
ージアクセスモードを完全に利用できる。この場合、1
つの行アドレスが供給され、多くの列アドレスがこれに
続く。特に、行アドレスは、アドレス発生器によって供
給されるが、列アドレスは、後で検討するように、DR
AMインターフェースによって供給される。更に、外部
DRAMへのデータバスの幅が8、16、または32ビ
ットであることを可能にする機能が提供される。従っ
て、DRAMの使用量は、特定用途のサイズ及びバンド
幅必要条件にマッチさせることができる。
【0411】この例において(正確には、空間デコーダ
上のDRAMインターフェースがどのように作動するか
と言うこと)、アドレス発生器は、読み取り、及び書込
みスイングバッファの各々に対するブロックアドレスを
DRAMインターフェースに供給する。このアドレス
は、DRAMのための行アドレスとして使われる。6ビ
ットの列アドレスは、DRAMインターフェース自体に
よって供給され、そして、これらのビットは、スイング
バッファラムのためのアドレスとして同様に使われる。
スイングバッファへのデータバスの幅は32ビットであ
る。従って、外部DRAMへのバス幅が32ビット未満
である場合には、2或いは4の外部のDRAMアクセス
は、書込みスイングバッファから次のワードが読み取ら
れる以前、或いは、次のワードが読み取りスイングバッ
ファに記入される以前に、行われなければならない(読
取り、及び書込みは、外部DRAMに対する転送の方向
を意味する)。
【0412】時間デコーダ、及び動画フォーマッティン
グ部の場合においては、条件は更に複雑である。時間デ
コーダのアドレッシングは、このセクションにおいて更
に検討するようにその予測的態様のために、更に複雑で
ある。動画フォーマッティング部に関して本セクション
において更に検討されるように、多重動画出力規格態様
のために、動画フォーマッティングのアドレッシングは
更に複雑である。
【0413】既に述べたように、時間デコーダは4つの
スイングバッファを持つ。その中の2つは復号化済みイ
ント及び予測(Iお呼びP)ピクチャデータの読み取り
及び書き込みを実行するために用いられる。これらは、
既に説明したように作動する。もう一方の2つは、予測
データを受け取るために使われる。これらのバッファは
更に興味深い。
【0414】一般に、予測データは、運動モーションベ
クトルにx及びyとして指定されているように、処理済
みブロックの位置から偏る。従って、検索されるべきデ
ータブロックは、符号化された(そしてDRAMに書き
込まれた)ので、一般に、当該データのブロック境界と
一致しない。これは、図34に示すように、陰を付けた
部分は形成されつつあるブロックを表し、点線で示すア
ウトラインは、それに基づいて予測がなされつつあるブ
ッロックを表す。アドレス発生器は、モーションベクト
ルによって指定されたアドレスを、大きい矢印で示すよ
うに、オフセットされたブロック(ブロックの全数)に
変換し、また、小さな矢印によって示すようにオフセッ
トされたピクセルに変換する。
【0415】アドレス発生器において、DRAMから検
索されるべきブロックのアドレスを形成するために、フ
レームポインタ、ベースブロックアドレス、及びベクト
ルオフセットが加えられる。ピクセルオフセットがゼロ
である場合には、ただ1つのリクエストが生成される。
x又はy次元のいずれかにオフセットがある場合には、
2つのリクエスト、即ち、もとのブロックアドレス及び
直ぐ下のブロックアドレスが生成される。x及びyにオ
フセットのある場合には、4つのリクエストが生成され
る。検索されるべき各々のブロックに関して、図の例に
最もよく示されているように、アドレス発生器は、スタ
ート、及びストップアドレスを計算する。
【0416】図35の陰の部分に相当するピクセルオフ
セット(1,1)について考察することとする。アドレ
ス発生器は、図においてAからDまでにラベル表示され
る4つのリクエストを作る。解決すべき問題は、行アド
レスの所要のシーケンスをいかに高速に供給するかと言
うことである。解答は、次に示すように「スタート/ス
トップ」技術を使用することである。
【0417】図35のブロックAについて考察すること
とする。読み取りは、位置(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、10、
11、12、13、14、15、17...23、2
5、…、31、33、…、57、…、63のアドレスシ
ーケンスが生成される。
【0418】同様の方法において、ブロックBに対する
スタート及びストップ座標は(1、0)及び(7、0)
であり、ブロックCに対しては(0、1)及び(0、
7)であり、そして、ブロックDに対しては(0、0)
及び(0、0)である。
【0419】次の問題は、このデータをどこに記入する
かである。明らかに、ブロックAを観察すれば、アドレ
ス9から読み取られたデータは、スイングバッファのア
ドレス0に記入されなければならず、アドレス10から
のデータは、スイングバッファのアドレス1に記入され
なければならない。等々。同様に、ブロックBにおける
アドレス8から読み取られたデータは、スイングバッフ
ァにおけるアドレス15に記入されなければならず、そ
して、アドレス16からのデータは、スイングバッファ
におけるアドレス15に記入されなければならない。こ
の機能は、次に概説するように、非常に簡単に実現でき
る。
【0420】ブロックAについて考察するものとする。
読取り開始に際して、スイングバッファアドレスレジス
タは、ストップバリューの逆値がロードされる。yの逆
ストップバリューは3つのMSBを形成し、そして、x
の逆ストップバリューは3つのLSBを形成する。この
場合、DRAMインターフェースは外部DRAMにおけ
るアドレス9を読みつつあるが、スイングバッファアド
レスはゼロである。表500「予測アドレッシング」に
示すように、外部DRAMアドレスレジスタがインクリ
メントされるにつれて、スイングバッファアドレスレジ
スタもインクリレメントされる。
【0421】ここまでの説明は、8ビットDRAMイン
ターフェースに集中してきた。16または32ビットイ
ンターフェースの場合には、2、3のささいな修正が行
われなければならない。最初に、ピクセルオフセットベ
クトルは、それが16または32ビット境界を指すよう
に「クリップ」しなければならない。ここで用いてきた
例において、ブロックAに関しては、読み取られた第1
のDRAMはアドレス0を指し、そして、アドレス0か
ら3までのデータが読み取られる。2番目に、不要デー
タは放棄されなければならない。これは、データ全てを
スイングバッファに書き込み(この場合、スイングバッ
ファは、8ビットの場合に必要であったよりも物理的に
差に大きくなければならない)、そして、オフセットと
共に読み取ることにより遂行される。MPEG半画素補
間を実施する場合には、x及び/又はyにおける9バイ
トが、DRAMインターフェースから読み取られなけれ
ばならない。この場合、アドレス発生器は、適切なスタ
ート及びストップアドレスを提供する。DRAMインタ
ーフェースにおいてはいくらかの付加ロジックが用いら
れるが、しかし、DRAMインターフェースが作動する
方法には基本的な変化はない。 本発明の時間デコーダ
DRAMインターフェースに関して注意すべき最後の点
は、データに関してどのような処理を実施することが必
要とされるかを示すために、予測フィルタに付加情報が
提供されなければならないことである。必要な処理の内
容を次に示す。
【0422】転送(64、72、又は、81バイトの)
の最後のバイトを示す「最終バイト信号」。
【0423】H.261フラグ。
【0424】双方向性予測フラグ。
【0425】ブロックの次元(x及びyにおける8又は
9バイト)を示す2つのビット。
【0426】ブロックの順序を示す1つの2ビット番
号。
【0427】スイングバッファからデータが読み出され
るにつれて、最終バイトフラグが生成可能である。他の
信号は、アドレス発生器から得られ、そして、予測フィ
ルタブロックによってデータがスイングバッファから読
み出されるにつれて、信号がデータの正しいブロックと
組合わされるように、DRAMインターフェースを経て
パイプに通される。
【0428】動画フォーマッティング部において、デー
タは、ブロックにおける外部DRAMに記入されるが、
しかし、ラスタ順に読み出される。書き込みは、空間デ
コーダに関して既に説明した場合と全く同じであるが、
しかし、読取りは少しだけ更に複雑である。
【0429】動画フォーマット部、外部DRAMにおけ
るデータは、少なくとも8つのブロックのデータが1つ
の単一ページに適合するように組織される。これら8つ
のブロックは8つの連続した水平ブロックである。ラス
タ化に際して、8つの連続したブロックの各々から8つ
のバイトが読み出され、そして、スイングバッファに記
入されることが必要である(即ち、8ブロックの各々に
おける同じ列)。
【0430】最上列について考察することとし(そし
て、1バイト幅のインターフェースを仮定する)、yア
ドレス(3MSBS)の場合と同様にxアドレス(3L
SBS)はゼロにセットされる。次に、最初の8バイト
が各々読みとられるにつれて、xアドレスはインクリメ
ントされる。この時点において、アドレスの上位部分
(ビット6及びそれ以上―LSB=ビット0)のトップ
部品はインクリメントされ、xアドレス(3LSBS)
はゼロにリセットされる。64バイトが読み出されるま
で、このプロセスは繰り返される。外部DRAMへのイ
ンターフェース幅が16または32ビットである場合に
は、xアドレスは、1だけインクリメントされる代わり
に、単に、それぞれ2又は4だけインクリメントされ
る。
【0431】本発明において、常に8バイトの倍数が読
み取られるが、アドレス発生器は、64バイト未満が読
み取られなければならないことを、DRAMインターフ
ェースに送信することができる(これは、ラスタライン
の開始または終了に際して必要とされことがある)。こ
れは、スタート及びストップバリューを使用することに
よって達成される。スタートバリューは、アドレスのト
ップ部分用に使われる(ビット6以上)そして、読取り
が停止されなければならない時を示す信号を生成するた
めに、ストップバリューは、スタートバリューと比較さ
れる。
【0432】DRAM信号のエッジを、システムのクロ
ック周期の4分の1の精度に置くために、本発明におけ
るDRAMインターフェースタイミングブロックはタイ
ミングチェーンを使用する。位相クロックされたループ
から得られる2つの直交クロックが用いられる。これら
のクロックは、組合わされて、概念上の2xクロックを
形成する。従って、あらゆる1つのチェーンは、並列接
続された2xクロックと反対の位相を持つ2つのシフト
レジスタによって作られる。
【0433】まず第一に、ページスタートサイクル用と
して1つのチェーンがあり、そして、いま1つのチェー
ンは、リード/ライト/リフレッシュサイクル用であ
る。各サイクルの長さは、マイクロプロセッサインター
フェースを介してプログラム可能であり、その後におい
て、ページスタートチェーンは固定した長さを持ち、そ
して、ページスタートの期間中に、サイクルチェーンの
長さは適宜変化する。
【0434】リセットすると、チェーンがクリアされ、
そして、パルスが作られる。パルスは、チェーンに沿っ
て移動し、そして、DRAMインターフェースからの状
態情報によって方向付けされる。パルスは、DRAMイ
ンターフェースクロックを生成する。各DRAMインタ
ーフェースクロック周期は、DRAMの1つのサイクル
と一致する。従って、DRAMサイクルの長さが異なる
場合には、DRAMインターフェースクロックは定速で
はない。
【0435】更に、追加タイミングチェーンは、前述の
チェーンからのパルスをDRAMインターフェースから
の情報と組み合わせ、例えば、notcas、notr
as、notwe、notbeのような出力ストローブ
及びイネイブルを生成する。 12.予測フィルタ 再び図19、図20、図21において、そして、更に詳
細には図40において、時間デコーダの構成図が示され
る。これには、予測フィルタが含まれる。予測フィルタ
と時間デコーダの残りのエレメントとの間の関係を図2
6に更に詳細に示す。予測フィルタの構造の本質は、図
27及び図37に示される。予測フィルタのオペレーシ
ョンに関する詳細な記述は、本セクションの「発明の更
に詳細な記述」に記載されている。
【0436】一般に、本発明に基づく予測フィルタは、
MPEG及びH.26lモードにおいて使用されるが、
JPEGモードでは使用されない。JPEGモードにお
ける場合を思い起こされたい。即ち、時間デコーダは、
空間デコーダによって達成される範囲を越えて一切の実
質的な復号化を行うことなく、動画フォーマット部を通
ってデータを供給させるに過ぎない。再び図27を参照
することとし、MPEGモードにおいて、フォーワー
ド、及びバックワード予測フィルタは同じであり、そし
て、それぞれのMPEGフォーワード、及びバックワー
ド予測ブロックを濾過する。ただし、H.261はバッ
クワード予測を使わないので、H.261モードにおい
ては、フォーワード予測フィルタのみが使われる。
【0437】本発明の2つの予測フィルタの各々は、実
質的に同じである。再び図17及び505を参照するこ
ととし、更に詳細には図37を参照することとする。図
には、予測フィルタの構造のブロック図が示される。各
予測フィルタは、直列配置された4つのステージを有す
る。データは、フォーマットステージ505−7に入力
され、そして、容易にろ過され得るフォーマットにされ
る。次のステージ505−2において、I−D予測が、
X座標上で行われる。必要な輸送が次元バッファステー
ジ505−3によって行われた後で、I−D予測は、ス
テージ505−4におけるY座標上で行われる。ステー
ジがどのようにして濾過作用を実施するかについて更に
詳細に説明することとする。濾過作用に要求される条件
については圧縮規格によって定義されている。H.26
1の場合において、現実に行われる濾過作用は、ローパ
スフィルタの場合に類似する。
【0438】再び図26を参照して、多重規格オペレー
ションは、MPEG又はH.261フィルタリングのい
ずれかを遂行するために予測フィルタは再構成可能であ
るか、或いは、JPEGモードにおいては全く濾過作用
を実施しないことを必要とする。3チップシステムの他
の多くの再構成可能な態様と同様に、予測フィルタは、
トークンによって再構成される。トークンは、アドレス
発生器にオペレーションの特定モードについて通知する
ためにも使用される。この場合、アドレス発生器は、M
PEGとJPEGとの間では著しく変化する必要なデー
タのアドレスを予測フィルタに供給することができる。
【0439】13.アクセシングレジスタ マイクロプロセッサインターフェース(MPI)におけ
る大抵のレジスタは、当該インターフェースが関連して
いるステージが停止している場合に限り、修正可能であ
る。従って、レジスタのグループは、一般に、アクセス
レジスタと関連している。アクセスレジスタにおける値
がゼロである場合には、特定の当該アクセスレジスタと
関連しているレジスタのグループは、修正してはならな
い。1をアクセスレジスタに記入すると、ステージが停
止されることを要求する。ただし、ステージは即座に停
止出来ないので、従って、ステージアクセスレジスタ
は、停止されるまで、値ゼロを保持する。
【0440】MPIと関連し、そして、MPIを介して
機能を遂行するために用いられるあらゆるユーザーソフ
トウェアは、「1をリクエストアクセスレジスタに記入
する後において」アクセスレジスタから1が読み取られ
る時まで待たねばならない。ユーザーが1つの値をコン
フィギュレーションレジスタに記入する場合には、これ
と同時に、そのアクセスレジスタがゼロにセットされる
まで、結果は不明である。
【0441】14.マイクロプロセッサインターフェー
ス 空間デコーダ及び時間デコーダにおける全ての回路にお
いて、規格バイト幅を持つマイクロプロセッサインター
フェース(MPI)が用いられる。MPIは、様々な空
間、及び時間デコーダクロックと共に非同期的に動作す
る。表37を参照して、この表には、このインターフェ
ースにおいて用いられる様々なMPI信号が示される。
信号のキャラクタは、入力出力欄に示され、信号の名前
は、信号名欄に示され、そして、信号機能の説明は記述
欄に示される。MPIの電気仕様は表38に関して示さ
れる。全ての仕様はタイプ別に分類され、そして、記号
欄には3つのタイプが示される。これらの記号が何を表
すかについては、パラメータ欄に示される。現実の仕様
は、それぞれの欄に、最小、最大、及び単位において示
される。
【0442】DC作動条件は、表39に関して示され
る。欄の見出しは、表38の場合と同じである。DC電
気特性は、表40に関して示され、そして、表38、及
び表39の場合と同じ欄題が用いられる。
【0443】15.MPIリードタイミング MPIリードタイミングダイアグラムのAC特性を、図
62に関して示す。図の各ラインは、対応する信号名に
よってラベル付され、そして、タイミングはナノセカン
ドで示す。完全なマイクロプロセッサインターフェース
のリードタイミング特性は、表41に関して示す。欄番
号は、特性欄に記載された信号名に対応する信号を示
す。MIN、及びMAXによって識別された欄は、当該
信号が利用可能な時間の最大量を示す時間の最小長さを
提供する。単位欄は、信号について説明するために用い
られた測定単位を示す。
【0444】16.MPIライトタイミング MPIライトタイミングダイアグラムの一般的な記述
は、図63に関して示される。この図は、MPIライト
タイミングと関連した各個別信号名を示す。名前、信号
の特性、及び他の様々な物理的特性は、表42に関して
示される。
【0445】17.キーホールアドレスロケーション 本発明において、アクセス頻度の小さいメモリーマップ
は、キーホールレジスタの後ろに配置されている。キー
ホールレジスタは、それと関連している2つのレジスタ
を持つ。第1のレジスタは、キーホールアドレスレジス
タであり、そして、第2のレジスタは、キーホールデー
タレジスタである。キーホールアドレスは、拡張アドレ
ススペース内の場所を指定する。キーホールデータレジ
スタへの読取りまたは書込みオペレーションは、キーホ
ールアドレスレジスタによって指定された場所にアクセ
スする。キーホールデータレジスタにアクセスした後
で、関連キーホールアドレスレジスタはインクリメント
する。拡張されたアドレススペース内のランダムアクセ
スは、各アクセスに対して、キーホールアドレスレジス
タに新しい値を書き込むことによってのみ可能である。
本発明の範囲内の回路は、複数のキーホールマップ持つ
こともあり得る。それにもかかわらず、異なるキーホー
ル間の対話はない。
【0446】18.ピクチャエンド 再び図18を参照することとし、この図には、本発明に
使われる空間デコーダの全般的な構成図を示す。ピクチ
ャ・エンドの機能に関する記述は、この構成図全体に亙
って適用される。ピクチャ・エンド機能は、H.261
符号化ピクチャ情報、MPEG及びJPEG信号を扱う
ことができるという多重規格における利点を有する。
【0447】既に述べたように、図18の全体的な構成
図は、既に説明した2線インターフェースによって相互
接続される。各々の機能ブロックは、図17に関して示
すステートマシンコンフィギュレーションに基づいて作
動するように配列されている。
【0448】一般に、本発明に基づくピクチャ・エンド
は、ピクチャ・エンド制御トークンを生成するスタート
コード検出器において開始する。ピクチャ・エンド制御
トークンは、スタートアップ制御回路を経て、変更され
ないまま、DRAMインターフェースに供給される。こ
の場合、前記トークンは、DRAMインターフェースに
おけるライトスイングバッファをフラッシュするために
用いられる。スイングバッファの内容は、このバッファ
が満杯になった場合に限りRAMに書き込まれることを
思い起こされたい。ただし、バッファが満杯でない点に
おいても終了し、ピクチャデータの固着を起こさせるこ
ともあり得る。ピクチャ・エンドトークンは、データを
スイングバッファの外に強制する。
【0449】本発明は多重規格マシンであるので、この
マシンは、各圧縮規格に対して異なって動作する。更に
詳細には、マシン従属アクションサイクルに従って作動
する場合について十分に説明することとする。各圧縮規
格に対して、制御トークン、及び/又は、MPUからの
出力信号の組合わせにより、利用可能な全アクションサ
イクルの合計数を選定することが可能であり、或いは、
利用可能な全アクションサイクルの合計数は、制御トー
クン自体の設計によっても選定可能である。この点に関
して、本発明は、全ての情報が上流のブロックに収集さ
れてしまうまで、情報が次のブロックに入ることを延期
させるように組織されている。データを次のステージま
で供給させる準備が整うまで、システムは待機する。こ
のようにして、ピクチャ・エンド信号は、コード化され
たデータバッファに供給され、そして、ピクチャ・エン
ド信号の制御部分は、データバッファの内容の読み取り
引き起こし、そして、ハフマンデコーダ及び動画デマル
チプレクサ回路に供給される。
【0450】ピクチャ・エンド制御トークンの他の利点
は、ハフマンデコーダデマルチプレクサによる使用に関
して、ハフマンデコーダ及び動画デマルチプレクサ回路
に供給される信号の一般的に予測される全範囲、及び/
又は、数を持ったことが無い場合であっても、ピクチャ
の終端をこの制御トークンが識別することである。この
条件において、コード化されたデータバッファに保持さ
れている情報は、完全ピクチャとして、ハフマンデコー
ダ、及び動画デマルチプレクサに供給される。このよう
にして、ハフマンデコーダ、及び動画デマルチプレクサ
のステートマシンは、システム設計に応じて依然として
データを扱うことができる。
【0451】ピクチャ・エンド制御トークンの他の利点
は、オフチップDRAM、またはスイングバッファに浮
遊情報が不用意に残留しないように、コード化データバ
ッファを完全に空にするその能力である。
【0452】ピクチャ・エンド機能の更に他の利点は、
エラー回復におけるその用途である。例えば、コード化
データバッファに保持されているデータの量が1つの単
一画像に関して空間情報を示すために一般的に用いられ
る量よりも少ないものと仮定すると、最後の画像は、ス
イングバッファが満杯になるまでデータバッファに保持
されるが、しかし、定義によれば、バッファは決して満
杯にならない。或る点において、マシンは、エラー条件
が退場することを決定する。従って、ピクチャ・エンド
トークンは、復号化され、そして、コード化データバッ
ファにおけるデータがハフマンデコーダ及び動画デマル
チプレクサに供給されるように強制する範囲内におい
て、最後の画像は復号化可能であり、そして、情報はバ
ッファから空にされる。結果的に、マシンは、エラー回
復モードに入らず、そして、コード化されたデータの処
理を首尾よくし継続する。
【0453】ピクチャ・エンドトークンの用途の更に別
の利点は、直列パイプラインプロセッサが割り込みなし
データの処理を継続することである。ピクチャ・エンド
トークンを使用することにより、直列パイプラインプロ
セッサは、予測された量未満のデータを扱うように構成
され、そして、その結果として、処理を継続する。一般
に、先行技術によるマシンは、エラー条件に起因して停
止する。既に述べたように、コード化データバッファ
は、その記憶領域にマクロブロックが入来するにつれて
これらをカウントする。更に、ハフマンデコーダ及び動
画デマルチプレクサは、一般に、各画像を復号化する際
に予測される情報量を知っている、即ち、ハフマンデコ
ード及び動画デマルチプレクサのステートマシン部分
は、各画像回復サイクル期間中に処理するブロック数を
知っている。正しい数のブロックがコード化データバッ
ファから到着しない場合には、一般に、エラー回復ルー
チンが結果として成立する。ただし、ハフマンデコーダ
及び動画デマルチプレクサを再構成するピクチャ・エン
ド制御トークンを用いることにより、この制御トークン
は、再構成によって、マンデコーダ及び動画デマルチプ
レクサに実際に適切な量の情報を扱いつつあることを告
げるので、機能し続けることができる。
【0454】再び図17を参照することとし、バッファ
マネージャーのトークンデコーダ部分は、スタートコー
ド検出器によって生成されたピクチャ・エンド制御トー
クンを検出する。正常作動状態においては、既に述べた
ように、スイングバッファの正常なオペレーションに関
して、バッファレジスタは、満杯になり、そして、空に
される。再び、データで部分的に満ちているスイングバ
ッファは、スイングバッファが完全に満たされるまで、
及び/又は、空になる時間を知る時まで、空にならな
い。ピクチャ・エンド制御トークンは、バッファマネー
ジャのトークンデコーダ部分において復号化され、そし
て、部分的に満ちているスイングバッファをコード化デ
ータバッファに空にすることを強制する。これは、究極
的に、直接、或いは、DRAMインターフェースを介し
て、ハフマンデコーダ、及び動画デマルチプレクサへ供
給される。
【0455】19.フラッシングオペレーション ピクチャ・エンド制御トークンの他の利点は、フラッシ
ュトークンに関連したその機能である。フラッシュトー
クンは、ステートマシンの再構成制御、或いは、システ
ムへのデータパスのいずれとも関連しない。それどころ
か、このトークンは、マシン従属のステートマシンによ
って扱うために前の部分的信号を完成する。各々のステ
ートマシンは、フラッシュ制御トークンを、処理され手
はならない情報として認識する。従って、フラッシュト
ークンは、コード化データバッファの残りの空の部品の
全てを満たすために使われ、そして、情報の十分な集合
がハフマンデコーダ及び動画デマルチプレクサに送られ
ることを可能にするために使用される。このように、フ
ラッシュトークンは、バッファに対してパディング様に
作用する。
【0456】ハフマン回路におけるトークンデコーダ
は、フラッシュトークンを認識し、そして、フラッシュ
トークンがそれに押し込んだ偽りのデータを無視する。
次に、ハフマンデコーダは、ピクチャ・エンドトークン
及びフラッシュトークンの到着前に存在する場合に最後
のピクチャバッファのデータ内容にのみ作用する。ピク
チャ・エンドトークン単独の、或いは、フラッシュトー
クンと組合わされた用途の更なる利点は、ハフマンデコ
ーダ回路の再構成、及び/又は、再組織である。ピクチ
ャ・エンドトークンの到着に際して、ハフマンデコーダ
回路は、最後の画像を復号化するために通常予測される
情報より少ない情報を持つことを知る。ハフマンデコー
ド回路は、最後の画像に含まれる情報の処理を終了し、
そして、この情報をDRAMインターフェースを介して
逆モデラーへの出力する。最後の画像の識別に際して、
ハフマンデコーダは、クリーンナップモードになり、そ
して、次の画像情報の到着に対して再調整する。
【0457】20.フラッシュ機能 フラッシュトークンは、本発明に基づき、パイプライン
プロセッサ全体を通って供給するため、そして、バッフ
ァは空であること、及び他の回路が新しいデータの到着
を待つように再構成されるということを保証するために
使用される。更に詳細には、本発明は、ピクチャ・エン
ドトークンの組合せ、パディングワード、及び現行ピク
チャのフォームに対する画像処理が完成することを直列
パイプラインプロセッサに指示するフラッシュトークン
を有する。その後において、様々なステートマシンは、
新しく扱うために新しいデータの到着を待つように再構
成することを必要とする。更に、フラッシュトークン
は、システムに対して、特殊リセットとして作用するこ
とに注意されたい。フラッシュトークンは、通過に際し
て、各ステージをリセットする。しかし、次のステージ
の処理継続を可能にする。これは、データの損失を防止
する。換言すれば、フラッシュトークンは、絶対的リセ
ットとは対照的に可変リセットである。
【0458】21.ストップ・アフタ・ピクチャ ストップ・アフタ・ピクチャ機能は、そのオペレーショ
ンにおける論理的な点において直列パイプラインの伸長
回路を閉鎖するために用いられる。この時点において、
ピクチャ・エンドトークンが生成され、データがデータ
入力ラインからの入来を完了、そして、パディングオペ
レーションが完成したことを示す。パディング機能は、
空のデータトークンを部分的に満たす。次に、フラッシ
ュトークンは、生成され、直列パイプラインシステムを
通って供給し、そして、レジスタから全ての情報を押し
出し、、そして、レジスタがそれらの中立スタンバイ状
態に戻ることを強制する。次に、ストップ・アフタ・ピ
クチャイベントが生成され、そして、ユーザ又はシステ
ムのいずれかがこの状態をクリアする時まで、入力は受
け入れられない。換言すれば、ピクチャ・エンドトーク
ンはピクチャの終了を送信し、同時に、ストップ・アフ
タ・ピクチャオペレーションは、全ての現行処理が終わ
ったことを送信する。
【0459】22.多重規格サーチモード 本発明の他の特徴は、入来するビットストリームを調べ
るように直列パイプラインプロセッサへの入力を再構成
するために用いられるSEARCHNODE制御トーク
ンの使用である。サーチモードがセットされている場
合、スタートコード検出器は、特定のスタートコード、
或いは、圧縮規格の任意の1つに使用されるマーカのみ
を探索する。ただし、他のデータビットストリームから
の他のイメージをこの目的のために使用できることを理
解されたい。従って、これらのイメージは、本発明全体
に亙って、制御トークンの組合わせ、及び同様の処理を
提供するために再構成回路と共にデータトークンを使う
ことが可能である他の実施例に変更するために使用でき
る。
【0460】本発明におけるサーチモードの使用は、次
に示す場合を含む多くの条件において便利である、即
ち、1)データビットストリームの切断が起きた場合、
2)ユーザが意図的にチャネルを変えることによりデー
タビットストリームを切断する場合、例えば、ケーブル
搬送圧縮デジタル動画によるデータの到着、或いは、
3)例えば、光学ディスク、または動画ディスクのよう
な制御可能なデータソースからの高速な順方向または逆
方向のユーザ作動化による場合。一般に、サーチモード
は、直列パイプラインの正常な処理をマシンが割込みを
予測しない点においてユーザが中断する場合に便利であ
る。
【0461】サーチモードのうちのいずれかがセットさ
れている場合、スタートコード検出器は、マシン独立ト
ークンを作るために適した入来するスタートイメージを
捜す。規格従属スタートイメージの識別以前にスタート
コード検出器に入来する全てのデータは、無意味であ
り、そして、マシンがこの情報を待っている場合にマシ
ンはアイドリング状態であとして、放棄される。
【0462】スタートコード検出器は、数値0コンフィ
ギュレーション構成の任意の1つを仮定可能である。例
えば、これらのコンフィギュレーションの1つは、ピク
チャのグループ或いはより高位のスタートコードに関す
る探索を可能にする。このパターンによって、スタート
コード検出器は、その全ての入力を放棄し、そして、グ
ループスタート規格イメージを捜す。この種のイメージ
が識別される場合には、スタートコード検出器は、グル
ープスタートトークンを生成し、そして、サーチモード
は自動的にリセットされる。
【0463】1つの単一回路、ハフマンデコーダ、及び
動画デマルチプレクス回路は、規格独立セットアップ信
号を含む入力信号、並びに、コーディング・スタンダー
ド信号の組合わせと共に作動することに注意することが
重要である。コーディング・スタンダード信号は、ハフ
マンデコーダ、及び動画デマルチプレクス回路による要
請に従って、入来するビットストリームから直接に情報
を伝達しつつある。ただし、一方では、ハフマンデコー
ダ、及び動画デマルチプレクス回路は、規格独立シーケ
ンス信号のオペレーションの下に機能する。
【0464】このオペレーションモードが最も効果的で
あり、そして、規格従属入力をハフマンデコーダ及び動
画デマルチプレクサに運ぶ際に実際の信号自体を運ぶ代
りに特殊制御トークンが用いられるように設計できたの
で、このオペレーションモードが選定された。
【0465】23.逆モデラ 逆モデル化は、これら3つの規格全てのの特徴であり、
そして、3つ全ての規格に対して同じである。一般に、
トークンバッファにおけるデータトークンは、量子化さ
れた係数の値に関する情報、及び表示される係数の間の
ゼロの数に関する情報を含む(ランレングス符号化の1
つの形)。本発明の逆モデラは、トークンと共に使用す
るように適応させられており、そして、各データトーク
ンが必須条件としての64バリューを含むようにゼロの
実行に関する情報を簡単に拡大する。その後における、
データトークン内の値は、逆量子化器によって使用でき
る量子化された係数である。
【0466】24.逆量子化器 本発明の逆量子化器は、復号化シーケンスにおいて必要
とされるエレメントであるが、ICセット全体が多重規
格データを扱うことができるような方法において実現さ
れた。更に、逆量子化器は、トークンと共に使用できる
ように適応済みである。逆量子化器は、逆モデラと逆D
CT(IDCT)との間に配置される。例えば、本発明
において、逆量子化器における加算器は、データがID
OTに移動する以前に、画素デコード数に定数を加える
ために使われる。
【0467】IDOTは、情報をコード化するために用
いられる各規格に応じて変化する画素復号化数を使う。
情報を正しく復号化するために、データがIDCT入り
を継続する以前に逆量子化器によって値1024がデコ
ード数に加算される。
【0468】データがIDCTに到達する以前にデータ
を標準化するために既に逆量子化器内に所在する加算器
を使用することにより種々の規格によって圧縮されたデ
ータを扱うためにICに回路またはソフトウェアを追加
する必要性を排除する。多重規格オペレーション用の準
備整える他のオペレーションは、「量子化後機能」の期
間中間に行われ、後で検討することとする。
【0469】データに付随する制御トークンが復号化さ
れ、そして、逆量子化器によって行われることが必要な
様々な標準化ルーチンは、以下において詳細に識別され
る。これらの「量子化後」機能は全て、回路の重複を回
避し、そして、ICが多重規格復号化データを扱うこと
ができるように実現される。
【0470】25.ハフマンデコーダ、及びパーザ(構
文解析器) 再び図18及び図36を参照することとし、空間デコー
ダは、様々な圧縮規格に従ってハフマンコード化された
データを復号化するためのハフマンデコーダを有する。
規格JPBG、MPEG、及びH.261の各々は、特
定のデータがハフマン符号化されていることを要求する
が、一方において、各規格が要求するハフマン復号化法
の相違は重要な意味をもつ。本発明の空間デコーダにお
いては、各規格に対して1つずつ合計3つの個別ハフマ
ンデコーダを設計して作成する事なく、本発明は、各ハ
フマンデコーダの共通態様を識別し、そして、これらの
共通態様のみを1度だけ作成することにより、貴重なダ
イスペースを節約する。更に、賢明な多重部品アルゴリ
ズム、即ち、他の規格に対して共通性を持つ各ハフマン
デコーダの態様の共通性を一層強化するようなアルゴリ
ズムが用いられる。要約すれば、ハフマンデコーダ32
1は、図36に示す他のユニットと共に作動する。これ
らの他のユニットとは、パーザステートマシン322、
インシフタ323、データインデックスユニット32
4、ALU325、及びトークンフォーマッティング部
326である。既に述べたように、これらのブロックの
間の接続は、2線インターフェースによって管理され
る。これらのユニットがどのように機能するかというこ
とについては続いて更に詳細に記述することとし、ここ
では、本発明に基づくハフマンデコーダの多重規格オペ
レーションを支援する特定の態様に焦点を合わせて説明
する。
【0471】本発明のパーザステートマシンは、動画パ
ーザの他のブロックのオペレーショを統合するように作
用するプログラム可能なステートマシンである。パーザ
ステートマシンは、データに応答して、データと並列配
置されて他のブロックへ供給される制御ワードを生成す
ることにより、この制御ワードが作用する他のブロック
を制御する。ブロックは2線インターフェースを介して
接続されるので関連データと並置して制御ワードを供給
することは、有用であるばかりでなく、必須である。こ
のように、データとコントロールは同時に到着する。制
御ワードの通過は、制御ラインによって図36に示すよ
うに、ブロックを接続するデータラインの下を通る。特
にこのコードワードは、復号化されつつある特定の規格
を識別する。
【0472】ハフマンデコーダは、ある種の制御機能も
遂行する。特に、ハフマンデコーダ321は、データイ
ンデックス部324及びALU325の特定の機能を制
御できるステートマシンを含む。ハフマンデコーダによ
るこれらのユニットの制御は、ブロックレベル情報を正
しく復号化するために必要である。パーザステートマシ
ン322にこれらの決定を行わせると時間がかかり過ぎ
る。
【0473】本発明のハフマンデコーダの重要な態様
は、データビットをハフマンデコーダに読み取る際にコ
ード化されたデータビットを反転する能力である。この
能力は、H.261ハフマンスタイルコードを復号化す
るために必要とされる。理由は、H.261(実質的に
は、MPEG)によって用いられる特定タイプのハフマ
ンコードは、JPEGによって用いられるコードと反対
の極性を持つことによる。従って、インバータを使用す
ることにより、ハフマンデコーダが使用する表と同一の
表を3つ全ての規格に対して実質的に使用可能にする。
ハフマンデコーダが3つ全ての規格を実現する方法の他
の態様については、「発明の更に詳細な説明」のセクシ
ョンにおいて更に詳細に説明する。
【0474】データインデックスユニット324は、多
重部品アルゴリズムの第2の部分を遂行する。このユニ
ットは、実際のハフマン復号化データを提供するルック
アップテーブル(参照用表)を含む。この表へのエント
リは、ハフマンデコーダによって生成されたインデクス
数に基づいて組織される。
【0475】ALU325は、多重部品アルゴリズムの
残りの部分を実現する。特に、ALUは、符号拡張を扱
う。更に、ALUは、ベクトル予測及びDC予測を保持
するレジスタファイルを含む。このファイルに使用につ
いては、予測フィルタに関係したセクションにおいて記
述する。更に、ALUは、空間デコーダによって復号化
されつつあるピクチャの構造を介してカウントするカウ
ンタを含む。特に、ピクチャの次元は、カウンタと関連
するレジスタにプログラムされ、「ピクチャ・スター
ト」、及びマクロ‐ブロックコード開始の検出を容易に
する。
【0476】本発明に基づき、トークンーマッチング部
326(TF)は復号化されたデータをデータトークン
にアセンブルする。これらのトークンは、次に、時空間
デコーダにおける残りのステージまたはブロックに供給
される。
【0477】本発明において、インシフタはスタートコ
ード検出器を供給するデータを緩衝するFIFOからデ
ータを受け取る。インシフタが受け取るデータには、一
般に、2つのタイプがある、即ち、「トークン」のセク
ションにおいて更に検討されるように、データトーク
ン、及びスタートコード検出器によってそれぞれのトー
クンと交換されるスタートコードである。データの殆ど
は、復号化を必要とするデータトークンであることに注
意されたい。
【0478】インシフタは、ハフマンデコーダに直列的
にデータを供給する一方、制御トークンを並列に供給す
る。ハフマンデコーダにおいて、ハフマン符号化された
データは、多重部品アルゴリズムの第1の部分に従って
復号化される。特に、特定のハフマンコードは、識別さ
れ、次に、インデクス数と交換される。
【0479】更に、ハフマンデコーダは、図36に示す
他のブロックによる特別な扱いを必要とする特定のデー
タを識別する。このデータは、ブロックエンド及びエス
ケープを含む。本発明において、時間は、データインデ
ックスユニットにおいてではなく、ハフマンデコーダに
おいてこれらを検出することによって節約される。次
に、このインデクス数は、データインデックスユニット
324に供給される。データインデックスユニットは、
本質的には、ルックアップテーブルである。アルゴリズ
ムの1つの態様に基づくルッコアップテーブルは、JP
EGによって指定されたハフマンコードテーブルと大差
無い。一般に、概して、それは、JPEGが代替JPE
G表を転送するために指定するフォーマットは圧縮デー
タフォーマットである。
【0480】復号化されたインデクス数、または他のデ
ータは、データインデックスユニット324から、付随
制御ワードと共に、既に述べたオペレーションを実施す
るALU 504−5に供給される。
【0481】データ及び制御ワードは、ALU325か
らトークンフォーマット部326(TF)に供給され
る。トークンフォーマット部において、データは、必要
に応じて、トークンを形成するために、制御ワードと組
合わされる。次に、トークンは、空間デコーダのその次
のステージに運ばれる。この時点において、システムに
よって使われると同数のトークンがあることに注意され
たい。
【0482】26.離散逆コサイン変換 本発明に基づく離散逆コサイン変換(IDCT)は、当
該ピクチャのDC成分の周波数に関係したデータを伸長
する。特定のピクチャが圧縮されつつある場合、ピクチ
ャにおける光の周波数(振動数)は量子化され、記憶す
る必要のある情報の全体量を減少させる。IDCTは、
この量子化されたデータを用いて、それを伸長し、周波
数情報に戻す。
【0483】IDCTは、サイズがる8×8ピクセルで
あるピクチャの部分に作用する。このデータに適用され
た数学は、データをコード化するために用いられる特定
の規格によって主として管理される。ただし、本発明に
おける重要な用途は、回路の不必要な重複を回避するた
めに、規格の間に共通の数学的機能を作ることである。
特定のスケーリングオーダを用いることにより、アル
ゴリズムの上部と下部との間の対称性を増大させ、それ
によって、回路の追加必要性を排除する共通数学機能が
再使用できる。
【0484】IDCTは、多数の多重規格トークンに応
答する。IDCTの第1の部分は、処理に対してデータ
トークンのサイズが正しいことを保証するために、入来
データをチェックする。実際、エラーがさほど大きくな
いならば、トークンストリームは、条件により訂正可能
である。
【0485】27.バッファマネジャ 本発明のバッファマネジャは、入来動画情報を受け取
り、そして、データ到着のタイミング、ディスプレイ、
及びフレームレートに関する情報をアドレス発生器に供
給する。多重バッファは、表示およびディスプレイの両
レートの変更を可能にするために用いられる。表示およ
びディスプレイレートは、一般に、コード化されたデー
タ、及び情報がディスプレイされつつあるモニタに従っ
て変化する。データ到着レートは、一般に、符号化、復
号化、またはデータを作るために用いられる原材料に含
まれる誤差に応じて変化する。情報は、バッファマネジ
ャに到着すると、伸長される。ただし、データは、伸長
回路にとって有用であるが、使用中の特定のディスプレ
イユニットにとっては有用でないような順序に配列され
る。データのブロックがバッファマネジャに入力される
と、バッファマネジャは、ディスプレイ装置が使用でき
る順序にデータのブロックが配置できるように、情報を
アドレス発生器へ供給する。これにより、バッファマネ
ジャは、使用中の特定ディスプレイ装置にデータブロッ
クを表示できるように入来するデータブロックを調節す
るために必要なフレームレート変換を用いる。
【0486】本発明において、バッファマネジャは、情
報を主としてアドレス発生器に供給する。ただし、シス
テムの他のエレメントをインターフェースすることも必
要である。例えば、結果としてこれらのトークンを書込
みアドレス発生器に供給するバッファマネジャへトーク
ンを転送する入力FIFOとのインターフェースがあ
る。
【0487】更に、バッファマネジャは、ディスプレイ
アドレス発生器ともインターフェイスし、ディスプレイ
装置が新しいデータをディスプレイする準備が整ってい
るかどうかに関する情報を受け取る。同様に、バッファ
マネジャは、バッファからのディスプレイ用の情報をデ
ィスプレイアドレス発生器がクリアしたことを確認す
る。
【0488】本発明のバッファマネジャは、特定のバッ
ファが空であるか、満ちているか、使用準備が整ってい
るか、或いは、使用中であるかどうかを記憶し、更に、
各バッファにおける特定データと関連する表示数を記憶
する。このようにして、バッファマネジャは、一時にた
だ1つのバッファをディスプレイ準備が整った状態にす
ることによって、部分的に、バッファの状態を決定す
る。いったん、バッファがディスプレイされると、バッ
ファは、「空の」状態にある。バッファマネジャは、ピ
クチャ・スタート、フラッシュ、有効なトークン、また
はアクセストークンを受け取ると、各バッファの状態、
及び新しいデータの受け入れ準備について決定する。例
えば、ピクチャ・スタートトークンは、新しいデータを
受け入れることが可能なバッファを見付けるために、バ
ッファマネジャに各バッファを経て循環させる。
【0489】更に、バッファマネジャは、それが受け取
るトークンによって指示される多重規格必要条件を扱う
ように構成可能である。例えば、H.26l規格標準に
おいて、ディスプレイ期間中に、データは、スキップ可
能である。この種のトークンがバッファマネジャに到着
した場合には、スキップされるべきデータは、それが記
憶されているバッファからフラッシュされる。
【0490】このように、バッファを管理することによ
って、データは、当該データをコード化するために使わ
れる圧縮規格、データが復号化される速度、及び使用中
の特定タイプのディスプレイ装置に従って効果的にディ
スプレイされることが可能である。
【0491】今までの記述は、当該技術分野における通
常の熟練者にとって、全ての付随的な特徴、目的、及び
利点を備えた本発明を実現させるに充分な程度の詳細さ
を以て、全体的な概念、システムの実現、及び本発明の
様々な態様のオペレーションについて適切に説明してい
ると確信する。ただし、本発明、及び本発明の様々な実
施例の一層具体的かつ商業的な実現方法と関連した追加
的な詳細を更に徹底的に理解することを容易にするため
には、一層の記述及び説明を以下に継続して示すことが
が好ましい。
【0492】以下は多重規格動画デコーダのチップ・セ
ットのより詳細な説明である。説明はA、B、Cの3つ
の部分に分かれる。
【0493】説明の組織化、明瞭化および便利化のため
に、追加開示を以下のセクションに再度示すこととす
る。
【0494】・チップ・セットのチップに共通の特徴に
関する記述。
【0495】・トークン ・2線インターフェース ・DRAMインターフェース ・マイクロプロセッサインターフェース ・クロック ・空間デコーダチップの記述 ・時間デコーダチップの記述 セクション A.1 「本記述の利用方法」 第1の記述セクションは、チップ・セットの使用に関連
した電気設計上の問題の大部分を対象とする。
【0496】A.1.1 「印刷上の慣例」 或る種のクラスの情報を強調するために多少の印刷上の
慣例が用いられる。その例を次に示す。
【0497】トークンの名称 ワイヤネーム・アクティブハイ信号 ワイヤネーム・アクティブロー信号 レジスタネーム セクション A.2 「動画デコーダファミ−」 *30MHzオペレーション *デコードMPEG、JPEG & H.261 *25Mb/sに対するコード化されたデータレート *21MB/sに対する動画データレート *MPEG分解能 704×480、30Hz、4:
2:0まで *融通性を持つクロマサンプリングフォーマット *全体JPEG基底線復号化 *グルーレスページモードDRAMAインターフェース *208のピンPQFPパッケージ *独立コード化データ、及びデコーダクロック *再オーダMPEGピクチャシーケンス 動画デコーダファミリーは、高分解能度デジタル動画デ
コーダを実現するための低チップカウント解決方法を提
供する。現在、チップ・セットは、3つの異なる動画及
びピクチャ符号化システム、即ち、JPEG、MPE
G、及びH.261をサポートするように構成可能であ
る。
【0498】全JPEG基底線ピクチャ復号化がサポー
トされる。720×480、30Hz、4:2:2 J
PEG符号化動画がリアルタイムに復号化可能である。
【0499】CIF(共通交換フォーマット)、及びQ
CIF H.261動画が復号化可能である。740×
480、30Hz、4:2:0までのフォーマットを持
つ全特機能MPEG動画が復号化可能である。
【0500】注記:前記の値は、実例として示したに過
ぎず、そして、必ずしも本発明の1実施例の制限条件を
示すものではない。従って、他の値、及び/又は、範囲
を使用しても差し支えないことを理解されたい。
【0501】A.2.1 「システムコンフィギュレー
ション」 A.2.1.1 「出力フォーマット化」 以下に示す各々の例において、出力フォーマッティング
部の形は、場合によっては、空間デコーダまたは時間デ
コーダの出力に供給されるデータを用いること、そし
て、コンピュータ又はディスプレイシステムに対してフ
ォーマットし直すことが要求される。このフォーマット
化の詳細は、アプリケーションにより異なる。一例とし
て簡単な場合には、デコーダチップによってブルックフ
ォーマット化されたデータ出力を用いて、そして、その
データ出力をラスタ順に書込むためのアドレス発生器を
必要とするだけである。
【0502】イメージフォーマッティング部は、広い範
囲に亙って出力フォーマット化機能を提供する1つの単
一チップVLSIデバイスである。
【0503】A.2.1.2 「JPEG静止画復号
化」 オフチップでないDRAMを備えた1つの単一空間デコ
ーダは、基底線JPEGイメージを高速に復号化可能す
ることが出来る。空間デコーダは、基底線JPEGの全
ての機能をサポートする。ただし、復号化可能なイメー
ジサイズは、ユーザーによって供給された出力バッファ
のサイズによって制限されこともあり得る。出力フォー
マッティング部の特性は、クロマサンプリングフォーマ
ット、及びサポート可能な色空間を制限することもあり
得る。
【0504】A.2.1.3 「JPEG動画復号化」 空間デコーダにオフチップDRAMを加えることによ
り、JPEG符号化動画をリアルタイムに復号化するこ
とが可能である。必要とされるバッファのサイズ及びス
ピードは、動画及びコード化データのレートに依存す
る。時間デコーダは、JPEG符号化動画を復号化する
必要はない。ただし、時間デコーダが多重規格デコーダ
チップ・セット上に在る場合に、システムがJPEGオ
ペレーション用に構成されている場合には、変更または
修正なしで、時間デコーダを介してデータを単に供給す
るに過ぎない。
【0505】A.2.1.4 「H.261復号化」 空間デコーダ及び時間デコーダは、H.261動画デコ
ーダを実現するために両方共必要である。双方のデバイ
ス上のDRAMインターフェースは、小さいピクチャフ
ォーマットにおいて低コード化データレートで作動する
場合に、適切なオペレーションのために必要とされるD
RAMの量を軽減することができるように構成可能であ
る。一般に、各々の空間デコーダ及び時間デコーダは、
1つの単一4Mb(例えば、512k×8)DRAMを
必要とする。
【0506】A.2.1.5 「MPEG復号化」 MPEGオペレーションのために必要とされるコンフィ
ギュレーションは、H.261の場合と同じである。た
だし、当該技術分野における通常の熟練者であれば理解
できるように、MPEGにおいて利用可能な更に大きい
ピクチャフォーマットをサポートするためには、更に大
きいDRAMバッファが要求されることもあり得る。
【0507】セクション A.3 「トークン」 A.3.1 「トークンフォーマット」 本発明に従う場合、トークンは、デコーダチップ・セッ
トを介して情報を伝達するために、拡張可能なフォーマ
ットを提供する。本発明においては、トークンの各ワー
ドの最小幅は8ビットであるが、当該技術分野における
通常の熟練者であれば、トークンの幅は任意であっても
差し支えないことを理解するはずである。更に、1つの
トークンは、1又は複数のワードに亙って拡張可能であ
り、これは、各ワードにおける拡張ビットを用いて達成
される。
【0508】拡張ビットは、トークンが他のワード内に
継続するかどうかを示す。トークンの最後のワード以外
の全てのワードは1にセットされる。トークンの第1の
ワードが0の拡張ビットを持つ場合には、これは、当該
トークンの長さがわずかに1ワードであることを示す。
【0509】各トークンは、それがトークンの第1ワー
ドのビット7においてスタートするアドレスフィールド
によって識別される。アドレスフィールドの長さは可変
であり、そして、複数のワードに亙って潜在的に拡張可
能である(ただし、現在のチップにおいては長さが8ビ
ットを超過するアドレスは無いので、当該技術分野にお
ける通常の熟練者であれば、この場合にも、アドレスの
長さは任意であり得ることを理解するはずである)。
【0510】インターフェースによっては、データの8
よりも多いビットを転送する。例えば、空間デコーダの
出力の幅は9ビットである(拡張ビットを含み10ビッ
ト)。これらの追加ビットを利用する唯一のトークンは
データトークンである。データトークンは、システムの
特定場所において処理を実施するために必要なビットと
同数のビットを持つことができる。他の全てのトークン
は、追加ビットを無視する。
【0511】A.3.2 「データトークン」 データトークンは、1つの処理ステージから次のステー
ジにデータを運ぶ。従って、このトークンの特性は、デ
コーダを通過するにつれて変化する。更に、データトー
クンによって運ばれるデータの意味は、当該データトー
クンがシステム内のどこにあるかによって変化する、す
なわち、データは位置依存性である。この点に関して、
データは、当該データトークンが空間デコーダ内のどこ
に所在するかに応じて周波数領域データ又は画素領域デ
ータのいずれかであり得る。例えば、空間デコーダの入
力において、データトークンは、8ビットのワードにパ
ックされたビット直列コード化動画データを持つ。この
点においては、各トークンの長さには制限がない。ただ
し、対照的に、空間デコーダの出力においては、各デー
タトークンは、各ワードの幅が9ビットであるちょうど
64のワードを持つ。
【0512】A.3.3 「トークンフォーマット化デ
ータの使用」 用途によっては、回路は、デコーダ又はチップ・セット
の入力または出力に直接接続することが必要である。大
抵の場合、データトークンを収集し、そして、同期化情
報(例えば、PICTURE STARTのような)を
提供する2、3のトークンを検出することで充分であ
る。この点に関しては、以下のセクションA.16「空
間デコーダの出力への接続」及びA.19「時間デコー
ダの出力への接続」を参照されたい。
【0513】既に述べたように、各々の新しいトークン
が何時スタートするかを識別するためには、拡張ビット
に関するアクティビティを観察するだけで充分である。
再び、拡張ビットは、現行トークンの最後のワードを送
信する。更に、トークンを識別するために、アドレスフ
ィールドをテストすることが出来る。不必要または認識
されなかったトークンは、それらの内容を知ることなし
に、消費可能(そして、破棄可能)である。ただし、認
識されたトークンは、適切なアクションを起こさせる。
【0514】更に、空間デコーダへのデータ入力は、コ
ード化されたデータのバイトとして、或いは、データト
ークンにおいて供給可能である(セクションA.10
「コード化データ入力」参照)。コード化データポー
ト、或いは、マイクロプロセッサインターフェースを介
してトークンを供給することは、デコーダチップ・セッ
トの多数の特徴がデータストリームから構成されること
を可能にする。これは、マイクロプロセッサインターフ
ェースを介してコンフィギュレーションを実施すること
の代替案を提供する。
【0515】
【表1】
【0516】
【表2】 A.3.4 「トークンの説明」 このセクションにおいては、本発明に基づき、空間デコ
ーダ及び時間デコーダチップにおいて実現されるトーク
ンについて詳しく説明する。 注記:「r」は、現在予約されているビットを意味し、
そして、値は0である。特記されない限り、全ての整数
は符号無しである。
【0517】
【表3】
【0518】
【表4】
【0519】
【表5】
【0520】
【表6】
【0521】
【表7】
【0522】
【表8】
【0523】
【表9】
【0524】
【表10】
【0525】
【表11】 A.3.5 「トークンにおいて送信される番号」 A.3.5.1 「成分識別番号」 本発明に基づく成分ID番号は、色成分を指定する2ビ
ット整数である。この2ビットフィールドは、一般に、
データトークンにおけるヘッダの一部分として配置され
る。MPEG、及びH.261の場合には、相互関係は
非常に簡単である。
【0526】
【表12】 JPBGでは使用できる色成分は制限されないので、J
PEGの場合には、条件は更に複雑である。デコーダチ
ップは、各スキャンにおいて最大4種までの異なる色成
分を可能にする。色成分の仕様がデコーダに到着するに
つれて、IDは順次に割当てられる。
【0527】A.3.5.2 「水平および垂直サンプ
リング数」 4種の色成の各々に関しては、マクロブロックにおいて
水平および垂直に配列されるブロックの数に関する仕様
がある。この仕様には、2ビットの整数を含むブロック
数より1つだけ少ない2ビット整数が含まれる。例え
ば、MPEG(或いはH.26l)における4:2:0
クロマサンプリング(図45)の成分IDの配列を表1
3に示す。
【0528】
【表13】 JPEG及び4:2:2クロマサンプリングに関して、
成分IDへの成分割当は、用途によって異なる。セクシ
ョンA.3.5.1参照。
【0529】注記:4:2:2データを処理している場
合には、JPEGは、そのマクロブロックに対して2:
1:1構造を必要とする。
【0530】
【表14】 A.3.6 「特殊トークンフォーマット」 本発明に基づき、例えば、データトークン及びQUAN
Tテーブルトークンは、デコーダチップ・セット内にお
けるそれらの「拡張フォーム」に使用される。拡張フォ
ームにおいて、トークンは、いくらかのデータを含む。
データトークンの場合には、この種トークンは、コード
化データまたはピクセルデータを含むことができる。Q
UANTテーブルトークンの場合には、これらのトーク
ンは、量子化器表情報を含む。
【0531】更に、これらのトークンの「非拡張形」
は、本発明においては「空である」として定義される。
このトークンフォーマットは、同一トークンの拡張バー
ジョンによって続いて満たされる場所をトークンストリ
ーム内に提供する。このフォーマットは、主としてエン
コーダに適用可能であり、従って、これについては、こ
れ以上詳しく説明しない。
【0532】
【表15】
【0533】
【表16】 A.3.7 「異なる規格に対するトークンの使用」 各規格は、本発明に基づいて定義されたトークンの異な
る部分集合を使用する。
【0534】セクションA.4 「2線インターフェー
ス」 A.4.1 「2線インターフェース、及びトークンポ
ート」 チップ・セットにおいては、情報の流れを制御するため
に、簡単な2線有効/受入れプロトコルが用いられる。
送信側及び受信側においてクロック発生準備が整ってい
ることが観察される場合に、データは、ブロック間にお
いて単に転送されるだけである。
【0535】1)データ転送 2)受信側の準備が整っていない 3)送信側の準備が整っていない 送信側の準備が整っていない場合には(上記の3)送信
側の準備が整っていない)場合には、受信側の入力は待
たなければならない。受信側の準備が整っていない場合
には(上記の2)受信側の準備が整っていない)場合に
は、受信側によって受け入れられる時まで送信側はその
出力に同じデータを供給し続ける。
【0536】トークン情報がブロック間において転送さ
れる場合には、ブロック間の2線インターフェースはト
ークンポートと呼ばれる。
【0537】A.4.2 「使用場所」 本発明に基づくデコーダチップ・セットは、3つのチッ
プを接続するために2線インターフェースを使う。更
に、空間デコーダへのコード化されたデータ入力も、同
様に、2線インターフェースである。
【0538】A.4.3 「バス信号」 2線インターフェースによって転送されるデータワード
の幅は、関係インターフェースの必要性に応じて変化す
る(図44「8ビットより広いインターフェース上のト
ークン」参照)。例えば、12ビットの係数は、僅か9
ビットを出力するだけで、離散逆コサイン変換器(ID
CT)に入力される。
【0539】
【表17】 データ信号に加えて、2線インターフェース経由で送ら
れる他の3つの信号がある。
【0540】*有効信号(valid) *受入れ信号(accept) *拡張信号(extension) A.4.3.1 「拡張信号」 拡張信号は、すでに述べたトークン拡張ビットに対応す
る。
【0541】A.4.4 「設計上の考察事項」 2線インターフェースは、短距離、チップ間逐次通信用
である。
【0542】デコーダチップは、チップの間のPCBト
ラックの長さを最小限にするために、相互に近接して配
置されなければならない。場所的に可能な限り、トラッ
クの長さは、25mm以下に保持されなければならな
い。PCBトラックキャパシタンスは、最小限度に保持
されなければならない。
【0543】クロックの分散配置は、チップ間のクロッ
クスルーを最小限にするように設計されなければならな
い。何等かのクロックスルーがある場合には、「受信チ
ップ」が、「送信チップ」より前にクロックを見るよう
に、配列しなければならない。
【0544】2線インターフェースを介して通信する全
てのチップは、同一デジタル電源から作動しなければな
らない。
【0545】A.4.5 「インターフェースタイミン
グ」
【0546】
【表18】 注記:図47は、システムデマックスチップと、メイン
デコーダクロックから作動する空間デコーダのコード化
データポートとの間の2線インターフェースを示す。こ
の2線インターフェースはデコーダクロックに対して非
同期であっても差し支えないコード化データクロックか
ら作動可能なので、これはオプションである。セクショ
ンA.10.5、「コード化されたデータクロック」を
参照されたい。同様に、イメージフォーマッティング部
のディスプレイインターフェースは、メインデコーダク
ロックに対して非同期であるクロックから作動可能であ
る。
【0547】A.4.6 「信号レベル」 2線インターフェースは、COMS入力、及び出力を使
用する。VIHminはVDDの約70%であり、VILmaxはV
DDの約30%である。表19に示す値は、VDDが最悪の
場合におけるVIH、及びVILの値である。VDD=5.0
±0.25V。
【0548】
【表19】 A.4.7 「制御クロック」 一般に、2線インターフェースを介して転送を制御する
クロックはチップのデコーダクロックである。空間デコ
ーダへのコード化データポート入力は例外である。これ
は、符号化クロックによって制御される。クロック信号
についてはここで更に説明することとする。
【0549】セクション A.5 「DRAMインター
フェース」 A.5.1 「DRAMインターフェース」 1つの単一高性能、構成可能DRAMインターフェース
は、各々の動画デコーダチップにおいて使用される。一
般に、各チップ上のDRAMインターフェースは実質的
に同じである。ただし、インターフェースは、チャネル
優先権を扱う方法において相互に異なる。インターフェ
ースは、各々のデコーダチップによって使われるDRA
Mを直接ドライブするように設計されている。一般に、
外部の論理、バッファ、またはコンポーネントは、DR
AMインターフェースを大抵のシステムにおけるDRA
Mに接続するためには不必要である。
【0550】A.5.2 「インターフェース信号」
【0551】
【表20】 本発明に基づき、インターフェースは、次に示す2つの
方法において構成可能である。
【0552】*インターフェースの詳細タイミングは、
様々な異なるタイプのDRAMを収容するように構成可
能である。
【0553】*DRAMインターフェースの「幅」は、
異なるアプリケーションにおけるコスト/性能トレード
オフを提供するように構成可能である。
【0554】A.5.3 「DRAMインターフェース
の構成」 一般に、DRAMインターフェースと関連したレジスタ
の3つのグループがある、即ち、インターフェースタイ
ミング・コンフィグレーション・レジスタ、バス・コン
フィグレーション・レジスタ、及びリフレシュ・コンフ
ィグレーション・レジスタである。リフレシュ・コンフ
ィグレーション・レジスタ表23に示すレジスタは最後
に構成されなければならない。
【0555】A.5.3.1 「リセット後の条件」 リセットの後において、本発明に基づくDRAMインタ
ーフェースは、1組のデフォルトタイミングパラメータ
(最も遅い作動モードに対応する)を用いて動作を開始
する。初めに、DRAMインターフェイスは、リフレシ
ュサイクル(他の全ての転送を除く)を連続的に実行す
る。これは、値がリフレッシュ・インターバルに記入さ
れるまで、継続する。次に、DRAMインターフェース
は、リフレシュサイクル間の他のタイプの転送を行うこ
とができる。
【0556】A.5.3.2 「バスコンフィギュレー
ション」 バスコンフィグレーション22におけるレジスタは、イ
ンターフェースによるデータ転送が試みられていない場
合に限り、行われるべきである。インターフェースは、
リセットのすぐ後、値がリフレッシュインタバルに記入
される以前に、この条件に置かれる。インターフェース
は後で、転送が試みられていない場合に限り、必要に応
じて、再構成可能である。時間デコーダチップアクセス
レジスタ(A.18.3.1)、及び空間デコーダ・バ
ッファマネージャアクセス・レジスタ(A.13.1.
1)参照。
【0557】A.5.3.3 「インターフェースタイ
ミングの構成」 本発明に基づき、インターフェースタイミング構成情報
の修正は、インターフェースタイミングアクセスレジス
タによって制御される。このレジスタに1を記入する
と、インターフェースタイミングレジスタ21に示す)
が修正可能になる。インターフェースタイミングアクセ
ス=1である間に、DRAMインターフェースは、その
以前のコンフィギュレーションにより作動し続ける。1
を記入した後で、任意のインターフェースタイミングレ
ジスタに記入する以前において、インターフェースタイ
ミングアクセスから1が読戻し可能になるまで、ユーザ
ーは待たねばならない。
【0558】コンフィギュレーションが完了すると、イ
ンターフェースタイミングアクセスに0が記入されなけ
ればならない。次に、新しいコンフィギュレーション
は、DRAMインターフェースへ転送される。
【0559】A.5.3.4 「リフレッシュコンフィ
ギュレーション」 本発明にかかるDRAMインターフェースのリフレッシ
ュインタバルは、リセットに続いて一度だけ構成可能で
ある。リフレッシュ・インターバルが構成されるまで、
インターフェースは、リフレッシュサイクルを連続的に
実行する。これは、あらゆる他のデータ転送を阻止す
る。リフレッシュ・インターバルに値が記入された後
で、データ転送はスタート可能である。
【0560】当該技術分野においては周知であるよう
に、DRAMは、一般に、最初に電源を入れた後で、1
00マイクロ秒と500マイクロ秒との間に「ポーズ
(休止)」を必要とし、そして、正常作動が可能になる
前に、多数のリフレッシュサイクルが後続する。従っ
て、リフレッシュ・インターバルに値を記入する前に、
これらのDRAMスタート必要条件を満足させなければ
ならない。
【0561】A.5.3.5 「コンフィギュレーショ
ンレジスタへのリードアクセス」 本発明の全てのDRAMインターフェースレジスタは読
み取り可能である。
【0562】A.5.4 「インターフェースタイミン
グ(チック)」 DRAMインターフェースタイミングは、デバイス(デ
コーダクロック)の入力クロックレートの4倍のレート
においてランするクロックから得られるこのクロック
は、オンチップPLLによって生成される。
【0563】説明を簡潔にするために、この高速クロッ
クの周期をチックと称する。
【0564】A.5.5 「インターフェースレジス
タ」
【0565】
【表21】
【0566】
【表22】 A.5.6 「インターフェースオペレーション」 DRAMインターフェースは高速ページモードを用い
る。3つの異なるタイプのアクセスがサポートされる。
【0567】* 読取り(リード) * 書込み(ライト) * リフレッシュ 各々のリード又はライトアクセスは、1から64バイト
までの1つのバーストを1つの単一DRAMページアド
レスへ転送する。リード及びライト転送は、1つの単一
アクセス内において混合されることなく、そして、連続
する各アクセスは、新しいDRAMページへのランダム
アクセスとして扱われる。
【0568】
【表23】 A.5.7 「アクセスの構造」 各アクセスは2つの部分を有する。
【0569】* アクセススタート * データ転送 本発明においては、各アクセスはアクセススタートで始
まり、そして、1つ又は複数のデータ転送サイクルが後
続する。更に、アクセススタート及びデータ転送サイク
ルの両方のリード、ライト、及びリフレッシュ変形(バ
リアント)がある。
【0570】特定のアクセスに対する最後のデータ転送
が完成すると、インターフェースは、そのデフォルト状
態に入り(A.5.7.3参照)、そして、新しいアク
セスのスタート準備が整うまで、この状態に留まる。最
後のアクセスが終了して新しいアクセスの開始準備が整
った場合、直ちに新しいアクセスが始まる。
【0571】A.5.7.1 「アクセススタート」 アクセススタートは、リード又はライト転送のためのペ
ージアドレスを提供し、そして、ある程度の初期信号条
件を確立する。本発明に基づき、3つの異なるアクセス
スタートがある。
【0572】* 読取りのスタート * 書込みのスタート * リフレッシュのスタート
【0573】
【表24】 各々の場合に、RAS及び行アドレスのタイミングは、
レジスタRASフォーリング、及びページスタートレン
グスによって制御される。OE、及びDRAMデータ
[31:0]の状態は、前のデータ転送の終了からRA
Sが降下するまで秘事される。アクセススタートの3つ
の異なるタイプは、RASが降下した場合に、これらが
OE及びDRAMデータ[31:0]をドライブする方
法が異なるに過ぎない。参照図52。
【0574】A.5.7.2 「データ転送」 本発明においては、異なるタイプのデータ転送サイクル
がある。
【0575】* 高速ページ読取りサイクル * 高速ページ後期書込みサイクル * リフレッシュサイクル リフレッシュのスタートは、1つの単一リフレッシュサ
イクルによってのみ後続可能である。読み取り(或い
は、書き込み)のスタートは、1つ又は複数の高速ペー
ジ読み取り(或いは、書き込み)サイクルによって後続
可能である。読み取りサイクルのスタートに際して、C
ASはハイにドライブされ、そして、新しい列アドレス
がドライブされる。
【0576】更に、早期書込みサイクルが用いられる。
WEは、最初の書込み転送のスタートに際してローにド
ライブされ、そして、最後の書き込み転送のエンドま
で、ローに留どまる。出力データは、アドレスによって
ドライブされる。
【0577】RASリフレッシュサイクルの前のCAS
はリフレッシュサイクルのスタートによって開始される
ので、リフレッシュサイクル期間中には、インターフェ
ース信号は活動しない。リフレッシュサイクルの目的
は、DRAMによって必要とされる最小RASロー期間
に適合することである。
【0578】A.5.7.3 「インターフェースのデ
フォルト状態」 本発明におけるインターフェース信号は、アクセスのエ
ンドにおいてデフォルト状態に入る。
【0579】RAS、GAS、及びWEがハイ。
【0580】* データ、及びOEは、それらの前の状
態に留まる。
【0581】* addrは、安定した状態を維持す
る。
【0582】A.5.8 「データバス幅」 2ビットレジスタ、DRAMデータwidthは、DR
AMインターフェースのデータパスの幅が構成されるこ
とを可能にする。これは、小さいピクチャフォーマット
で使用する場合、DRAMコストを最小限にすることを
可能にする。
【0583】
【表25】 A.5.9 「行アドレス幅」 行アドレスを提供するために24ビット内部アドレスの
中間区分から取られるビット数は、ローアドレスビット
・レジスタによって構成される。
【0584】
【表26】 A.5.10 「アドレスビット」 オンチップ24ビットアドレスが生成される。列及び行
アドレスを形成するためにこのアドレスをどのように使
用するかは、データバスの幅、及び行アドレス用に選定
されたビット数に依存する。コンフィギュレーションに
よっては、全ての内部アドレスビットを使用することが
許されないので、「隠れビット」が作成される。
【0585】同様に、行アドレスは、アドレスの中央部
分から抽出される。従って、これにより、DRAMが自
然にリフッレシュされる速度が最大になる。
【0586】
【表27】 A.5.10.1 「低順位行アドレスビット」 行(カラム)アドレスの最下位の4から6までのビット
は、最大64バイトまでの高速ページモード転送用アド
レスを提供するために使われる。これらの転送を制御す
るために要求されるアドレスビット数は、データバスの
幅に依存する(A.5.8参照)。
【0587】A.5.10.2 「より多くのDRAM
バンクにアクセスするための行アドレス復号化」 DRAMのただ1つの単一バンクが用いられる場合に
は、使用される行アドレスの幅は、用いられるDRAM
のタイプに依存する。一般に1つの単一DRAMバンク
によって供給可能であるよりもより多くのメモリーを必
要とすりアプリケーションの場合には、より広い行アド
レスを構成することが可能であり、従って、1つの単一
DRAMバンクを選定するために、幾つかの行アドレス
ビットを復号化することが可能である。
【0588】注記:行アドレスは、内部アドレスの中央
から抽出される。DRAMのバンクを選定するために、
行アドレスの幾つかのビットが復号化される場合には、
これらの「バンク選定ビット」がとることのできる全て
の値がDRAMの1つのバンクを選定しなければならな
い。そうでない場合には、アドレススペース内に孔が残
される。
【0589】A.5.11 「DRAMインターフェー
スの作動可能化」 本発明においては、DRAMインターフェース上の全て
の出力信号を高インピーダンスにするためには2つの方
法がある。即ち、DRAMenableレジスタをセッ
トする方法及びDRAMenable信号による方法で
ある。DRAMインターフェース上のドライバを作動さ
せるためには、これらのレジスタ及び信号は、両方共
に、ロジック1でなければならない。どちらかがローで
あれば、インターフェースは高インピーダンスになる。
【0590】注記:DRAMインターフェースが高イン
ピーダンスである場合には、オンチップデータ処理は終
結させられない。従って、チップがDRAMへのアクセ
スを試みた場合にはエラーが発生し、同時に、インター
フェースは高インピーダンスである。
【0591】本発明に基づき、DRAMインターフェー
スを高インピーダンスにする能力は、他のデバイスをテ
ストするか、或いは、空間デコーダ(又は、時間デコー
ダ)が使用中でない場合、空間デコーダ(又は、時間デ
コーダ)によって制御されるDRAMを使用するために
備えられる。正常作動期間中において、他のデバイスに
よるメモリーの共有が可能であるようには意図されてい
ない。
【0592】A.5.12 「リフレッシュ」 ノーリフレッシュ・レジスタに記入することにより無能
化しない限り、DRAMインターフェースは、レジスタ
リフレッシュ・インターバルによって決定されたインタ
バルおいて/RAS/リフレッシュサイクルの以前の/
CAS/を使用し、DRAMを自動的にリフッレシュす
る。ここで、/信号名/は信号の反転信号を示す。
【0593】リフレッシュ・インターバルにおける値
は、16デコーダクロックサイクルの周期内におけるリ
フレッシュサイクル間のインタバル(間隔)を指定す
る。レンジ1.255における値は構成可能である。値
0は、リセットの後で自動的にロードされ、そして、
(いったん、作動可能化されれば)有効なリフレッシュ
インタバルが構成されるまで、DRAMインターフェイ
スが、リフレッシュサイクルを連続的に実行することを
強制する。リフレッシュ・インターバルは、各リセット
の後で、ただ1度だけ構成されることが推奨される。
【0594】/リセット/が表明されると、同時に、D
RAMインターフェースは、DRAMをリフッレシュす
ることが不可能となる。ただし、デコーダチップによっ
て必要とされるリセット時間は十分に短く、その結果、
これらのデコーダチップをリセットし、そして、次に、
DRAMの内容が腐敗する以前に、DRAMインターフ
ェースを再構成することが可能であるはずである。
【0595】A.5.13 「信号強度(strength)」 DRAMインターフェースの出力のドライブ強度は、3
ビットレジスタCASストレングス、RASストレング
ス、addrストレングス、DRAMデータストレング
ス、及びOEWEストレングスを用いてユーザーにより
構成可能である。この3ビット値のMSBは、高速或い
は低速エッジレートのいずれかを選択する。より重要度
の低い2つのビットは、異なる負荷キャパシタンスのた
めの出力を構成する。
【0596】リセット後のデフォルト強度は6であり、
そして、これは、24pFにより負荷した場合、GND
とVDDとの間の信号をドライブするために約10nsを
必要とするような出力を構成する。
【0597】
【表28】 出力がドライブしつつある負荷に対して出力が適切に構
成された場合、その出力は、表32から表35までに指
定されたAC電気特性に適合する。適切に構成された場
合、各出力は、その負荷に概略マッチし、従って、信号
過渡の後に最小のオーバシュートが発生する。
【0598】A.5.14 「電気仕様」 このセクションに提示される全ての情報は、単に本発明
の1実施例を示すに過ぎず、一例として記載されている
ものであって、必ずしも制限的意味を持たない。
【0599】
【表29】 表29は、実施例に関する最大定格を示すに過ぎない。
特にこの実施例のみに関して、動作の信頼性を保証する
ためには、この表に示す値未満の応力を使用しなければ
ならない。
【0600】
【表30】
【0601】
【表31】 A.5.14.1 「AC特性」
【0602】
【表32】
【0603】
【表33】
【0604】
【表34】
【0605】
【表35】 DRAMから読み出す場合、DRAMインターフェース
は、/CAS/信号の上昇につれて、DRAMデータ
[31:0]をサンプルする。
【0606】
【表36】 セクション A.6 「マイクロプロセッサインターフ
ェース(MPI)」 標準バイト幅マイクロプロセッサインターフェース(M
PI)は、動画デコーダチップ・セットにおける全ての
チップに用いられる。ただし、当該技術分野における通
常の熟練者であれば、他の幅のマイクロプロセッサイン
ターフェースであっても同様に使用可能であることが理
解されるはずである。MPIは、様々なデコーダチップ
クロックと同期的に作動する。
【0607】A.6.1 「MPI信号」
【0608】
【表37】 A.6.2 「MPI電気仕様」
【0609】
【表38】
【0610】
【表39】
【0611】
【表40】 A.6.2.1 「AC特性」
【0612】
【表41】
【0613】
【表42】 A.6.3 「割込み」 本発明において、「イベント」は、ユーザーが観察しよ
うとする可能性のあるオンチップ条件を示すために使わ
れる用語である。イベントは、エラーを示すことが可能
であるか、或いは、ユーザーのソフトウェアにとって有
益である場合もあり得る。
【0614】各割込み、または「イベント」と関連した
2つの単一ビットレジスタがある。これらは、条件イベ
ントレジスタ及び条件マスクレジスタである。
【0615】A.6.3.1 「条件イベントレジス
タ」 条件イベントレジスタは、1ビット読み/書きレジスタ
であり、その値は、回路内に発生する条件によって1に
セットされる。条件が単に一時的であり、そして、現在
では過ぎ去ってしまった場合であってもレジスタは1に
セットされる。従って、レジスタは、ユーザーのソフト
ウェアによってリセットされるまで、1にセットされた
ままであることを保証される(或いは、チップ全体がリ
セットされる)。
【0616】*レジスタは、値1を記入することにより
ゼロにセットされる。
【0617】*レジスタにゼロを記入することにより、
レジスタを変更されない状態に留める。
【0618】*レジスタは、この条件がも一度発生する
以前にユーザーソフトウェアによってゼロにセットされ
なければならない。
【0619】*レジスタは、リセットに関してゼロまで
リセットされるであろう。
【0620】A.6.3.2 「条件マスクレジスタ」 条件マスクレジスタは、対応する条件イベントレジスタ
がセットされ場合、割込みリクエストの生成を可能にす
る1ビット読み/書きレジスタである。既に条件イベン
トがセットされている場合、条件マスクに1が記入され
ると、割込みリクエストが即座に発行される。
【0621】*値1は割込みを可能にする。
【0622】*レジスタは、リセットに際してゼロにク
リアされる。
【0623】別途表明されていない限り、ブロックは、
割込みリクエストを生成した後で動作を中止し、そし
て、条件イベント又は条件マスクレジスタのいずれかが
クリアされた後で動作を再開する。
【0624】A.6.3.3 「イベント及びマスクビ
ット」 イベントビット、及びマスクビットは、メモリマップ内
の連続したバイト内の対応するビット位置に常にグルー
プとして配置される表61、表141参照)。これは、
どのイベントが割込みを生成したかを識別するために、
割込みサービスソフトウェアが、マスクとしてのマスク
レジスタから読み取られた値を、イベントレジスタ内の
値に対するマスクとして使用することを可能にする。
【0625】A.6.3.4 「チップイベント、及び
マスク」 各チップは、チップ上のイベント活動を要約する1つの
単一グローバルイベントビットを持つ。チップイベント
レジスタは、それらのマスクビットに1を持つ全てのオ
ンチップイベントのORを提供する。
【0626】チップマスクビットにおける1は、チップ
による割込みの生成を可能にする。チップマスクビット
における0は、あらゆるオンチップイベントが割込みリ
クエストを生成することを防止する。
【0627】チップイベントへの1から0までの記入は
影響しない。全てのイベント(どちらかのマスクビット
に1を記入することによって作動化される)がクリアさ
れた場合に限り、チップはクリアされる。
【0628】A.6.3.5 「irq信号」 チップイベントビット及びチップイベントマスクの両方
がセットされている場合に、/irq/信号が表明され
る。
【0629】/irq/信号は、オフチッププルアップ
抵抗器を必要とするアクティブローのオープンコレクタ
出力である。活動中である場合、/irq/出力は、1
00オーム以下のインピーダンスによってプルダウンさ
れる。
【0630】殆どの用途の場合に、約4キロオームのプ
ルアップ抵抗器が適当であることが理解されるはずであ
る。
【0631】A.6.4 「レジスタへのアクセス」 A.6.4.1 「アクセスを可能にするストッピング
回路」 本発明における大部分のレジスタは、レジスタが関連し
ているブロックが停止されている場合に限り、修正が可
能である。従って、レジスタのグループは、一般に、ア
クセスレジスタと関連している。
【0632】アクセスレジスタにおける値0は、当該ア
クセスレジスタと関連したレジスタのグループが修正さ
れてはならないことを示す。アクセスレジスタに1を記
入すると、ブロックが停止されることを要求する。ただ
し、ブロックは即座に停止しなくても差し支えなく、そ
して、当該ブロックのアクセスレジスタは、当該ブロッ
クが停止するまで、値0を保持する。
【0633】従って、ユーザソフトウェアは(アクセス
を要求するために1を記入した後で)、アクセスレジス
タから1が読み取られるまで、待つはずである。アクセ
スレジスタは0にセットされた状態において、ユーザー
がコンフィギュレーションレジスタに値を記入すると、
結果は不定である。
【0634】A.6.4.2 「整数を保持するレジス
タ」 メモリマップ内の任意のバイトの最下位ビットは、信号
データ[0]と関連しているビットである。
【0635】8ビットより大きい整数値を保持するレジ
スタは、メモリマップ内の2つ又は4ついずれか連続し
たバイト位置に亙って分割される。バイトの順序は、図
64に示すように「ビッグエンディアン」である。ただ
し、しかしながら仮定は、オーダについて行われないバ
イトがマルチバイトレジスタに記入される順序に関して
は仮定は一切設定されていない。
【0636】符号付き整数を保持するレジスタ内の未使
用ビットを除くメモリマップ内の未使用ビットは、読み
取りに際して0を返す。この場合、レジスタ内の最上位
のビットは符号拡張される。例えば、符号付きの12ビ
ットレジスタは、16ビットメモリマップ位置(2バイ
ト)を満たすために、符号拡張される。符号無し12ビ
ット整数を保持する16ビットメモリマップ位置は、そ
の最上位ビットから0を返す。
【0637】A.6.4.3 「キーホールされたアド
レス位置」 本発明において、アクセス頻度の小さいメモリマップ位
置は、「キーホール」の背後に配置される。「キーホー
ル」は、関連した2つのレジスタを持つ、即ち、キーホ
ールアドレスレジスタ、及びキーホールデータレジスタ
である。
【0638】キーホールアドレスは、拡張されたアドレ
ススペース内の位置を指定する。キーホールデータレジ
スタに対する読取り、または書込み動作は、キーホール
アドレスレジスタによって指定された位置にアクセスす
る。
【0639】関連キーホールアドレスレジスタは、キー
ホールデータレジスタにアクセスした後で、インクリメ
ントする。拡張されたアドレススペース内でのランダム
アクセスは、新しいバリュー値を各アクセスに対するキ
ーホールアドレスレジスタに新しい値を記入することに
よってのみ可能である。
【0640】本発明に基づくチップは、1つよりも多い
「キーホールされた」メモリマップを備えていても差し
支えない。異なるキーホールの間にはインタラクション
はない。
【0641】A.6.5 「特殊レジスタ」 A.6.5.1 「未使用レジスタ」 「使用せず」と記載されたレジスタ又はビットは、本デ
バイスの実現に使用されなかったメモリマップ内の位置
である。一般に、これらの位置からは値0が読み取り可
能である。これらの位置に0を記入しても影響しない。
【0642】当該技術分野における通常の習熟者であれ
ば理解出来るように、将来における変形製品との互換性
をこの種の製品に維持させるためには、ユーザーのソフ
トウェアが、未使用の位置から読み取られた値に依存し
てはならないことが推奨される。同様に、デバイスの構
成に際しては、この種の位置は、回避するか、或いは、
値0にセットするべきである。
【0643】A.6.5.2 「予約済みレジスタ」 同様に、本発明において「予約済み」と記載されたレジ
スタ又はビットは、デバイスの作動態様にはドキュメン
ト化された影響は及ぼさない。
【0644】A.6.5.3 「テストレジスタ」 更に、「テストレジスタ」と記載されたレジスタ又はビ
ットは、当該デバイスの被テスト性の様々な態様を制御
する。従って、これらのレジスタは、当該デバイスの標
準的な用途には使用されず、そして、標準的なデバイス
コンフィギュレーション及び制御ソフトウェアによって
アクセスされる必要はない。
【0645】セクション A.7 「クロック」 本発明に基づき、多くの異なるクロックは、動画デコー
ダシステムにおいて識別可能である。クロックの例を、
図65に示す。
【0646】データは、動画デコーダチップ・セット内
の異なるクロックレジームの間を供給するにつれて、そ
れぞれ新しいクロックに再同期化(オンチップ)する。
本発明において、あらゆる入力クロックの最大周波数は
30MHzである。ただし、当該技術分野における通常
に習熟者であれば、30MHzより大きい周波数を含む
他の周波数であっても同様に使用可能であることは、当
然理解できるはずである。各チップにおいて、マイクロ
プロセッサインターフェース(MPI)は、チップクロ
ックに対して非同期的に作動する。更に、イメージフォ
ーマッティング部は、復号化された動画のピクチャレー
トに同期した低い周波数のオーディオクロックを生成す
ることが出来る。従って、このクロックは、オーディオ
/動画同期を供給するために使用できる。
【0647】A.7.1 「空間デコーダクロック信
号」 空間デコーダは、2つの異なる(そして、非同期的であ
る可能性のある)クロック入力を持つ。
【0648】
【表43】 A.7.2 「時間デコーダクロック信号」 時間デコーダはただ1つのクロック入力を持つ。
【0649】
【表44】 A.7.3 「電気仕様」
【0650】
【表45】
【0651】
【表46】 A.7.3.1 「CMOSレベル」 クロック入力信号はCMOS入力である。VIHminはVD
Dの約70%であり、そして、VILmaxはVDDの約30%
である。表46に示す値は、それぞれVDDの最悪条件に
おけるVIH及びVILの値である。VDD=5.0±0.2
5V A.7.3.2 「クロックの安定性」 本発明において、DRAMインターフェース及びチップ
間インターフェースをドライブするために用いられるク
ロックは、入力クロック信号から得られる。これらのイ
ンターフェースのためのタイミング仕様は、入力クロッ
クタイミングが±100psの範囲以で安定しているも
のと仮定する。
【0652】セクション A.8 「JTAG」 回路ボードの設置密度が高くなるにつれて、例えば「ベ
ッドオブナイル(bed-of-nails)」技法を用いた回路内
テストのような従来の方法によって部品間の接続を検査
することはますます困難になる。アクセス問題の解決お
よび方法論の標準化の試みとして、ジョイントテストア
クショングループ(JTAG)が形成された。このグル
ープの仕事の集大成が現在では規格1149.1として
IEEEによって採用されている「標準テストアクセス
ポート及び境界走査アーキテクチャ」である。空間デコ
ーダ及び時間デコーダは、この規格に適合する。
【0653】規格は、デバイス上の各ディジタル信号ピ
ンを直列接続する境界スキャンチェーンを利用する。テ
スト回路は、正常作動状態においては即応型(透明)で
ある、しかし、テストモードにおいて境界スキャンチェ
ーンはテストパターンをシフトイン可能にし、そして、
デバイスのピンに供給可能にする。JTAGデバイスへ
の入力において回路ボードに現れる結果的な信号は、比
較的簡単なテスト装置によって走査およびチェックされ
ることが可能である。この方法により、回路ボード上の
ロジックの領域と同様に部品間接続はテスト可能であ
る。
【0654】全てのJTAGオペレーションは5つのピ
ンを有するテストアクセスポート(TAP)を介して実
施される。trst(テストリセット)ピンは、デバイ
スがテストモードにおいてはパワーアップしないことを
保証するためにJTAG回路をリセットする。tck
(テストクロック)ピンは、クロック直列テストパター
ンを、tdi(テストデータ入力)ピンへクロックし、
そして、tdo(テストデータ出力)ピンからクロック
するために用いられる。最後に、JTAG回路の操作モ
ードは、該当するビットのシーケンスをtms(テスト
モードセレクト)ピンへクロックすることによりセット
される。
【0655】JTAG規格は、チップメーカの裁量にお
いて付加的特徴を提供するために拡張可能である。空間
デコーダ及び時間デコーダには、3つのJTAG必須命
令を含めて9つのユーザインストラクション(命令)が
ある。追加命令(エクストラインストラクション)は、
特定の程度の内部デバイステストの実施を可能にし、そ
して、付加的な外部テストの融通性を提供する。例え
ば、全てのデバイス出力は、簡単なJTAGシーケンス
によってフロートするように作成可能である。
【0656】利用可能な機能およびJTAGポートの使
用方法の詳細については、個別のJTAGアプリケーシ
ョンノートを参照されたい。
【0657】A.8.1 「非JTAGシステムにおけ
るJTAGピンの接続」
【0658】
【表47】 A.8.2 「IEEE 1149.1への適合レベ
ル」 A.8.2.1 「規則」 下記の条項が注記されるが、全ての規則が適合する。
【0659】
【表48】
【0660】
【表49】 A.8.2.2 「勧告条件」
【0661】
【表50】
【0662】
【表51】 A.8.2.3 「許可条件」
【0663】
【表52】 セクション A.9 「空間デコーダ」 *30MHz、オペレーション *デコーダーMPEG、JPEG、及びH.26l *コード化データレートは25Mb/sまで *動画データレートは21MB/sまで *柔軟なクロマサンプリングフォーマット *全JPEG基底線復号化 *グルーレスDRAMインターフェース *単一+5V電源 *208ピンPQFPパッケージ *最大消費電力2.5W *独立したコード化データ及びデコーダクロック *標準ページモードDRAMを使用 空間デコーダは、様々なJPEG、MPEG、及びH.
261ピクチャ及び動画復号化アプリケーションにおい
て使用するための構成可能なVLSIデコーダチップで
ある。
【0664】オフチップDRAMを使用しない最小のコ
ンフィギュレーションにおいて、空間デコーダは、1つ
の単一チップ、高速JPEGデコーダである。DRAM
を加えることにより、空間デコーダがJPEG符号化動
画を復号化することを可能にする。720×480、3
0Hz、4:2:2「JPEG動画」が、リアルタイム
に復号化可能である。
【0665】時間デコーダを用いることにより、空間デ
コーダは、H.26l、及びMPEG(同様に、JPE
G)を復号化するために使用できる。704×480、
30Hz、4:2:0MPEG動画が復号化可能であ
る。
【0666】前述の値は単に一例に過ぎず、例として示
したものでたって、必ずしも制限的意図を持つものでな
く、本発明に基づく1実施例のための典型的な値である
ことを再度注記しておく。従って、当該技術分野におけ
る通常の習熟者であれば、他の値、及び/又は、を使用
可能であることを理解するはずである。
【0667】A.9.1 「空間デコーダ信号」
【0668】
【表53】
【0669】
【表54】
【0670】
【表55】
【0671】
【表56】
【0672】
【表57】 A.9.1.1「“nc”非接続ピン」 表57においてncとラベルの付いたピンは現在使われ
ていないピンを表す。これらのピンは、接続しない状態
にしておかねばならない。
【0673】A.9.1.2 「VDD、及びGNDピ
ン」 当該技術分野における通常の習熟者であれば理解される
ように、装備されている全てのV 及びGNDピン
は、それぞれ該当する電源に接続されなければならな
い。全てのV 及びGNDピンが正しく使用されてい
ない限り、デバイスの正しい作動は保証不可能である。
【0674】A.9.1.3 「正常作動のためのテス
トピンの接続」 空間デコーダの9つのピンは、内部テスト用として予約
済みである。
【0675】
【表58】 A.9.1.4 「正常作動のためのJTAGピン」 セクションA.8.1参照。
【0676】A.9.2 「空間デコーダメモリマッ
プ」
【0677】
【表59】
【0678】
【表60】
【0679】
【表61】
【0680】
【表62】
【0681】
【表63】
【0682】
【表64】
【0683】
【表65】
【0684】
【表66】
【0685】
【表67】
【0686】
【表68】
【0687】
【表69】
【0688】
【表70】
【0689】
【表71】
【0690】
【表72】
【0691】
【表73】
【0692】
【表74】
【0693】
【表75】
【0694】
【表76】
【0695】
【表77】
【0696】
【表78】
【0697】
【表79】
【0698】
【表80】
【0699】
【表81】 セクション A.10 「コード化データ入力」 本発明に基づくシステムは、処理するためにどの動画規
格が入力されつつあるかを知らなければならない。今
後、本システムは、先在しているトークン、又は、生バ
イトデータのいずれかを受け入れることができる。この
生バイトデータは、次に、スタートコード検出器によっ
てトークン内に配置可能である。
【0700】従って、コード化データ及びコンフィギュ
レーショントークンは、次に示す2つのルートを介して
空間デコーダに供給可能である。
【0701】*コード化データ入力ポート *マイクロプロセッサインターフェース(MPI) 使用するルートの選定は、アプリケーション及びシステ
ム環境に依存する。例えば、データレートが低い場合に
は、デコーダチップ・セットを制御し、そして、システ
ムビットストリームを多重化する両方の目的のために、
1つの単一マイクロプロセッサを使用することが可能で
ある。この場合、MPIを介してコード化データを入力
をすることも可能である。代りに、コード化データレー
トが高い場合には、コード化データはコード化データポ
ートを介して供給されなければならない。
【0702】アプリケーションによっては、MPIとコ
ード化データポート入力との混合体を使用することが適
当である。
【0703】A.10.1 「コード化データポート」
【0704】
【表82】 本発明に基づくコード化データポートは、2つのモー
ド、即ち、トークンモード及びバイトモードにおいて使
用可能である。
【0705】A.10.1.1 「トークンモード」 本発明において、バイトモードがローである場合には、
コード化データポートは、正常な方法におけるトークン
ポートとして作動し、そして、コード化有効及びコード
化アクセプトの制御の下にトークンを受け入れる。この
インターフェースの電気的動作の詳細についてはセクシ
ョンA.4を参照されたい。
【0706】信号バイトモードは、データ[7:0]、
コード化extn、及びコード化有効と同時に、即ち、
コード化clockの立ち上がりエッジにおいてサンプ
ルされる。
【0707】A.10.1.2 「バイトモード」 ただし、バイトモードがハイであれば、データの1つの
バイトは、 2線インターフェース制御信号コード化有
効、及びコード化アクセプトの制御の下にデータ[7:
0]において転送される。この場合、コード化extn
は無視される。続いて、バイトは、入力モードが変更さ
れる時まで、オンチップにおいて、データトークンに組
み立てられる。
【0708】1)トークンモードにおいて供給されたト
ークンの第1のワード(ヘッド) 2)供給されたトークンの最後のワード(コード化ex
tnはローになる) 3)バイトモードにおいて供給されたデータの第1のバ
イト。新しいデータトークンは、オンチップにおいて自
動的に作成される。
【0709】A.10.2 「MPIを介したデータの
供給」 トークンは、コード化データ入力レジスタにアクセスす
ることによってMPIを介して空間デコーダに供給可能
である。
【0710】A.10.2.1 「MPIを介したトー
クンの記入」 本発明のコード化データレジスタは、効率的なデータ転
送を可能にするために、メモリマップ内において2バイ
トにグループ化される。8データビット、コード化デー
タ[7:0]は1つの場所に配置され、また、制御レジ
スタ、コード化ビズィ、enable mpi入力、及
びコード化extnは別の場所に配置される。表62、
表63参照)。
【0711】MPIを介してトークン入力用に構成され
た場合、1つの値がコード化データ[7:0]に記入さ
れる度に、現行トークンは、コード化extnの現行値
を用いれ拡張される。あらゆるトークンの最後のワード
がコード化データ[7:0]に記入される前に、コード
化extnを0にセットすることに関してはソフトウェ
アに責任がある。
【0712】例えば、データトークンは、コード化ex
tnに1を、又、コード化データ[7:0]に0x04
を記入することによってスタートされる。次に、この新
しいデータトークンのスタートは、処理のために、空間
デコーダへ供給する。
【0713】新しい8ビットの値がコード化データ
[7:0]に記入される度に、現行トークンが拡張され
る。例えば、別のトークンを導入するために、現行トー
クンを終わらせる場合に限り、コード化extnは、再
度アクセスされる必要がある。現行トークンの最後のワ
ードは、現行トークンの最後のワードのコード化データ
[7:0]への記入によって後続されるコード化ext
nへの0記入によって示される。
【0714】
【表83】 コード化データ[7:0]に先立ち、毎度、インターフ
ェースがより多くのデータを受け入れる準備が整ってい
るかどうかを判定するために、コード化ビジィは検査さ
れなければならない。
【0715】A.10.3 「入力モード間のスイッチ
ング」 適当な事前措置が講じられていることを条件として、デ
ータ入力モードを動的に変えることが可能である。一般
に、任意の1つのルートを介したトークンの転送は、ス
イッチングモード前に完了していなければならない。
【0716】
【表84】 バイトモードにおいて供給された第1のバイトによっ
て、データトークンヘッダはオンチップにおいて生成可
能である。バイトモードにおいて更に転送された全ての
バイトは、今後、入力モードが変化するまでこのデータ
トークンに添付される。データトークンは必要なだけ多
くのビットを含むことができることを思い起こされた
い。
【0717】MPIレジスタビット、コード化ビズィ、
及び信号、コード化アクセプトは、当該空間デコーダが
どのインターフェースにおいてデータを受け入れようと
しているかを示す。これらの信号を正しく観察すること
により、データが失われていないことが保証される。
【0718】A.10.4 「コード化データの受入れ
レート」 本発明において、入力回路は、トークンをスタートコー
ド検出器に供給する(セクションA.11参照)。スタ
ートコード検出器は、データを、データトークンビット
として直列的に分析する。検出器の処理正常レートは、
(コード化clockの)クロックサイクルにつき1ビ
ットである。従って、デコーダは、コード化clock
の8サイクル毎に、コード化データの1バイトを復号化
する。ただし、例えば、非データトークンが供給される
場合、或いは、コード化データ内にスタートコードが現
れた場合のように、追加処理サイクルが必要とされるこ
ともある。この種のイベントが発生した場合、スタート
コード検出器は、短時間に亙って、それ以上の情報の受
け入れが不能とばる。
【0719】スタートコード検出器の後において、デー
タは、第1ロジックコード化データバッファに供給す
る。このバッファがいっぱいになった場合、スタートコ
ード検出器は、それ以上の情報を受け入れることができ
なくなる。
【0720】従って、それ以上のコード化データ(或い
は、他のトークン)は、コード化データポートにおい
て、又は、MPIを介して受け入れられる。この場合、
スタートコード検出器は、それ以上の情報を受け入れる
ことができない状態のままである。これは、信号コード
化アクセプト及びレジスタコード化ビジィの状態によっ
て示される。
【0721】コード化アクセプト、及び/又は、コード
化ビジィを用いることにより、ユーザーにとって、コー
ド化情報が一切失われないことが保証される。ただし、
当該技術分野における通常の習熟者であれば、空間デコ
ーダがデータ受け入れ不能である場合、システムは、新
しく到着するコード化データを緩衝するか、(或いは、
新しいデータの到着を停止する)ことを理解できるはず
である。
【0722】A.10.5 「コード化データクロッ
ク」 本発明に基づき、空間デコーダにおけるコード化データ
ポート、入力回路、及び他の機能は、コード化cloc
kによって制御される。更に、このクロックは、メイン
デコーダクロックに対して非同期であっても差し支えな
い。データ転送は、オンチップにおけるデコーダクロッ
クに同期する。
【0723】セクション A.11 「スタートコード
検出器」 A.11.1 「スタートコード」 当該技術分野において周知であるように、MPEG及び
H.261コード化動画ストリームは、スタートコード
と呼ばれる識別可能なビットパターンを含む。JPEG
においては、同様の機能は、マーカコードによって提供
される。スタート/マーカコードは、コード化データス
トリームのシンタックスの有意部分を識別する。スター
トコード検出器によって行われるスタート/マーカコー
ドの分析は、コード化データのパージングにおいては第
1段階である。スタートコード検出器は、入力回路に後
続する空間デコーダにおける第1ブロックである。
【0724】スタート/マーカコードパターンは、ビッ
トストリーム全体を復号化することなしに識別可能であ
るように設計される。従って、スタート/マーカコード
パターンは、本発明に従い、エラー回復及びデコーダス
タートを助けるために使用できる。スタートコード検出
器は、コード化データ構造内においてエラーを検出し、
そして、デコーダのスタートを援助するための機能を提
供する。
【0725】A.11.2 「スタートコード検出器レ
ジスタ」 既に検討したように、多数のスタートコード検出器レジ
スタは、スタートコード検出器によって常時使用され
る。従って、データを処理するスタートコード検出器が
データを処理しつつある場合に、これらのレジスタにア
クセスすることは、信頼度が低い。そのレジスタへのア
クセス以前におけるスタートコード検出器の停止を保証
することに関しては、ユーザの責任である。
【0726】レジスタスタートコード化etector
accessは、スタートコード検出器を停止させ、ひ
いては、そのレジスタへのアクセスを可能にするために
使用される。スタートコード検出器は、割込みを生成し
た後で、停止する。
【0727】スタートコード探索および全データモード
の廃棄をいつ開始可能であるかと言うことに関しては、
更に制約条件がある。これらの制約条件については、
A.11.8、及びA.11.5.1に記述済みであ
る。
【0728】
【表85】
【0729】
【表86】
【0730】
【表87】
【0731】
【表88】
【0732】
【表89】
【0733】
【表90】 A.11.3 「スタートコードからトークンへの変
換」 正常作動におけるスタートコード検出器の機能は、デー
タストリーム内のスタートコードを識別し、そして、そ
の次に、これらのコードを該当するスタートコードトー
クンに変換することである。最も簡単な場合、データ
は、1つの長い単一データトークンとしてスタートコー
ド検出器に供給される。スタートコード検出器の出力
は、スタートコードトークンを割り込み配置された多数
の短かめのデータトークンである。
【0734】その代りに、本発明に基づき、スタートコ
ード検出器への入力データは、多数の短かめのデータト
ークンに分割可能である。コード化データをデータトー
クンに分割する方法に関しては、nを整数とした場合、
各データトークンは8xnビットを含まなければならな
いと言うこと以外には、制約は無い。
【0735】他のトークンは、スタートコード検出器の
入力に直接供給可能である。この場合、トークンは、処
理することなしに、スタートコード検出器を介して空間
デコーダの他のステージへ供給される。これらのトーク
ンは、コード化データ内において、スタートコード位置
の直前に限り挿入可能である。
【0736】A.11.3.1 「スタートコードフォ
ーマット」 本発明のスタートコード検出器によれば、3つの異なる
スタートコードフォーマットが認識される。これは、レ
ジスタスタートコードディテクタコーディングスタンダ
ードを介して構成される。
【0737】
【表91】 A.11.3.2 「スタートコードトークン均等物」 スタートコードを検出した場、スタートコード検出器
は、当該スタートコードと関連した値を検討し、そし
て、適切なトークンを生成する。一般に、トークンは、
関連MPEGシンタックスにちなんで命名される。ただ
し、当該技術分野における通常の習熟者であれば、トー
クンは、付加的ネーミングフォーマットに従うことを理
解するはずある。現在選定されている符号化規格は、ス
タートコード値と生成されたトークンとの間の関係を構
成する。この関係を表92に示す。
【0738】
【表92】 A.11.3.3 「符号化規格の拡張機能」 符号化規格は、符号化規格によればその使用が現在確定
していないデータストリーム内へのデータ埋め込みを可
能にする多数のメカニズムを提供する。これは、特定メ
ーカーに追加的な使い易さを提供する特定の「ユーザデ
ータ」アプリケーションと見なすことも可能であり、そ
の代りに、「拡張データ」と見なしても差し支えない。
符号化規格オーソリティとしては、将来において符号化
規格に機能を追加するために拡張データを使用する権利
を留保した。
【0739】2つの明白なメカニズムが使用される。J
PEGにおいては、ユーザ及び拡張データのブロックに
マーカコードを先行させる。ただし、H.261におい
ては、コード化データ内の追加情報ビットによって示さ
れる「追加情報」を挿入する。MPEGにおいては、こ
れら双方の技術を使用できる。
【0740】本発明に従えば、スタート/マーカコード
によって先行されるユーザ及び拡張データのMPEG/
JPEGブロックは、スタートコード検出器によって検
出可能である。H.261/MPEGの「追加情報」
は、本発明のハフマンデコーダによって検出される。
A.14.7「追加情報の受信」を参照されたい。
【0741】レジスタ、discardエクステンショ
ンデータ、及びdiscardユーザデータは、ユーザ
データ及び拡張データを放棄するようにスタートコード
検出器を構成することが可能である。このデータがスタ
ートコード検出器で放棄されない場合には、このデータ
が動画デマックスに到達した時にアクセスすることが出
来る。A.l4.6、「ユーザ及び拡張データの受信」
を参照されたい。
【0742】本発明の空間デコーダは、JPEGの基底
線機能をサポートする。JPEGの非基線機能は、空間
デコーダによる拡張データと見なされる。従って、非基
底線JPEGにとって、データに先行する全てのJPE
Gマーカコードは拡張データとして扱われる。
【0743】A.11.3.4 「JPEG表の定義」 JPEGは、ダウンロードされたハフマン及び量子化器
表をサポートする。JPEGデータにおいて、これらの
表の定義は、マーカコードDNL及びDQTによって先
行される。スタートコード検出器は、これらのマーカコ
ードが検出された場合、トークンDHTMARKER及
びDQTMARKERを生成する。これらのトークン
は、動画デマックスに対して、後続するデータトークン
がハフマン又は量子化器表について記述するコード化デ
ータを含むことを示す(JPEGにおいて記述されたフ
ォーマットを用いる)。
【0744】A.11.4 「エラーの検出」 スタートコード検出器は、コード化データ内の特定エラ
ーを検出可能であり、そして、エラーが検出された後に
おいてデコーダによる回復を可能にする幾らかの機能を
提供する(A.11.8、「スタートコードの探索」参
照)。
【0745】A.11.4.1 「不当JPEG長さの
カウント」 大抵のJPEGマーカコードは、それらと関連した16
ビット長さのカウントフィールドを持つ。このフィール
ドは、どの程度の量がデータがこのマーカコードと関連
しているかを示す。0及び1の長さカウントは不当であ
る。不当長さは、データエラーに後続する場合に限り発
生する。本発明において、イリーガルレングスカウント
マスクが1にセットされている場合、不当長さの発生
は、割込みを生成する。
【0746】JPEGデータにおけるエラーからの回復
は、JPEGにおいてスタートコードを検索することが
困難であるため、付加的なアプリケーション特定データ
を必要とするものと推測される。段落A.11.8.1
参照)。
【0747】A.11.4.2 「スタート/マーカコ
ードの重複」 本発明において、スタートコードの重複は、データエラ
ーに後続する場合に限り発生する。MPEG配列バイト
重複スタートコードを図73に示す。この場合、スター
トコード検出器は、先ず、ピクチャ・スタートコードの
ように見えるパターンを見る。次に、スタートコード検
出器は、このピクチャ・スタートコードがグループスタ
ートと重複していることを見る。従って、スタートコー
ド検出器は、重複スタートイベントを生成する。更に、
オーバーラッピングスタートマスクが1にセットされて
いる場合には、スタートコード検出器は、割込み、及び
停止を生成する。
【0748】2つのスタートコードのどちらが正しい
か、及びデータエラーはどちらの原因であったかを判定
することは不可能である。ただし、本発明に基づくスタ
ートコード検出器は、最初のスタートコードを放棄し、
そして、重複スタートコードイベントがサービスされた
後で「第2のスタートコードが正しいものとして」第2
のスタートコードの復号化を続行する。一連の重複スタ
ートコードが所在する場合には、スタートコード検出器
は、最後のコードを除くこれら全てのコードを破棄する
(各重複スタートコードに関するイベントを生成す
る)。
【0749】非配列バイトシステムにおいては同様のエ
ラーが可能である(H.261、またはおそらくはMP
EG)。この場合、イグノア・ノンアラインの状態も同
様に考察されなければならない。図74は、見付かった
最初のスタートコードは配列バイトであるが、しかし、
非配列スタートコードと重複する例を示す。イグノア・
ノンアラインが1にセットされている場合には、2番目
の重複スタートコードは、スタートコード検出器によっ
てデータとして扱われる。従って、重複スタートコード
イベントは発生しない。これにより、発生しているかも
知れないデータ通信エラーが隠される。イグノア・ノン
アラインが0にセットされている場合には、スタートコ
ード検出器は第2の非配列スタートコードを見る。そし
て、それが第1のスタートコードと重複していることを
見る。
【0750】A.11.4.3 「非認識スタートコー
ド」 スタートコード検出器は、認識されないスタートコード
が検出された場合、割込みを生成することが出来る(ア
ンレコグナイズドスタートマスク=1であれば)。この
割込みの原因となったスタートコード値は、レジスタス
タートバリューから読み取り可能である。
【0751】スタートコード値0xB4(シーケンスエ
ラー)は、チャネルエラー又はメディアエラーを示すた
めに、MPEGデコーダシステムにおいて使用される。
例えば、訂正不可能なエラーが検出された場合には、こ
のスタートコードは、ECC回路によってデータに挿入
されることもあり得る。
【0752】A.11.4.4 「イベント生成順序」 本発明において、特定のコード化データパターン(エラ
ー条件を示すことが多い)は、前述のエラー条件の中の
1つ以上を短い期間中に起こさせる。従って、エラー条
件に関してスタートコード検出器がコード化データを調
査順序をつぎに示す。
【0753】1)非配列スタートコード 2)重複スタートコード 3)未認識スタートコード 従って、非配列スタートコードがもう一方の後の方のス
タートコードと重複する場合には、生成された最初のイ
ベントは、非配列スタートコードと関連する。このイベ
ントがサービスされた後において、スタートコード検出
器の動作は継続し、短期間後に、重複スタートコードを
検出する。
【0754】全ての非配列および重複スタートコードの
テストが完了した後で、スタートコード検出器は単にス
タートコードを認識することを試みる。
【0755】A.11.5 「デコーダのスタートおよ
び停止」 スタートコード検出器は、現行復号化タスクを完全に完
了することを可能にし、そして、新しいタスクをスター
ト可能にする機能を提供する。
【0756】データセグメントはマーカコードをエミュ
レートする値を含むことができるので、JPEGコード
化動画を用いるこれらの技術を使用することには制限が
ある(A.11.8.1参照)。
【0757】A.11.5.1 「復号化の明瞭な終
了」 現行ピクチャに関するデータが完了してしまえば、割込
みおよび停止を生成するようにスタートコード検出器を
構成することができる。これは、ストップアフタピクチ
ャ=1、及びストップアフタピクチャマスク=1をセッ
トすることによって行われる。
【0758】ピクチャの終端がスタートコード検出器を
一旦供給すると、フラッシュトークンが生成され(A.
11.7.2)、割込みが生成され、そして、スタート
コード検出器が停止する。完成したばかりのピクチャ
は、通常の方法で復号化されることに注意されたい。ア
プリケーションによっては、デコーダチップ・セットの
出力に到着したフラッシュを検出することが適切である
場合もあり得る。この出力の到着は現行動画シーケンス
の終了を示す。例えば、ディスプレイは、最後のピクチ
ャ出力に固着することもあり得る。
【0759】スタートコード検出器が停止すると、メデ
ィアとデコードチップとの間にユーザによって実現され
たバッファに「トラップ」されている「古い」動画シー
ケンスからのデータもあり得る。レジスタdiscar
dallデータをセットすると、空間デコーダにこのデ
ータを消費させ、そして、破棄させる。これは、フラッ
シュトークンがスタートコード検出器に到達するか、或
いは、discardallデータがマイクロプロセッ
サインターフェースを介してリセットされる時まで、継
続する。
【0760】「古い」シーケンスからのあらゆるデータ
が放棄されると、この段階において、新しいシーケンス
に従って、デコーダが動作を開始する準備が整う。
【0761】A.11.5.2 「全モードの破棄(dis
card)開始時期」 discardallデータレジスタに1が記入された
直後に全モード破棄がスタートする。スタートコード検
出器がデータを活発に処理している場合にこれが行われ
ると、結果は予言不可能である。
【0762】スタートコード検出器イベント(非配列ス
タートイベント等)のうちのいずれかが割込みを生成し
た後で、全モード破棄は安全に開始されることが可能で
ある。
【0763】A.11.5.3 「新しいシーケンスの
開始」 或るコード化データ内のどこで新しいコード化動画シー
ケンスがスタートするかが未知である場合には、スター
トコード探索メカニズムを使用できる。このメカニズム
は、シーケンスのスタートに先行するあらゆる不必要な
データを放棄する。A.11.8を参照されたい。
【0764】A.11.5.4 「シーケンス間のジャ
ンプ」 このセクションでは、前記の幾つかの技術のアプリケー
ションを示す。目的は、1つのコード化動画シーケンス
の一部分からもう他の部分へ「ジャンプする」ことであ
る。この例において、ファイリングシステムは、データ
の「ブロック」へのアクセスを可能にするに過ぎない。
このブロック構造は、ディスク又はブロックエラー補正
システムのセクタサイズから得ることも出来る。従っ
て、コード化動画データにおける入り口及び出口の位置
は、ファイリングシステムブロック構造と関係がない場
合もあり得る。
【0765】ストップアフタピクチャ、及びdisca
rdallデータメカニズムは、古い動画シーケンスか
らの不必要なデータの破棄を可能にする。最後のファイ
リングシステムデータブロックの終了後、フラッシュト
ークンを挿入することにより、discardallデ
ータモードはリセットされる。次に、スタートコード探
索モードは、適当な入り口に先行する次のデータブロッ
ク内のあらゆるデータを放棄するために使用される。
【0766】A.11.6 「バイトの整列」 当該技術分野において周知であるように、異なる符号化
計画は、データストリーム中のスタート/マーカコード
のバイト整列に関して全く異なる見解を持つ。例えば、
H.261は通信を直列ビットとして見る。従って、ス
タートコードのバイト整列に関してはコンセプトがな
い。イグノア・ノンアライン=0をセットすることによ
って、スタートコード検出器は、任意のビット整列のス
タートコードを検出することができる。ノンアラインス
タートマスク=0をセットすることによって、スタート
コード非配列割込みが抑圧される。
【0767】ただし、これとは対照的に、JPEGは、
バイト整列が保証されているコンピュータ環境用として
設計された。従って、マーカコードは、バイトが整列し
た場合に限り検出されるべきである。符号化規格がJP
EGとして構成された場合には、イグノア・ノンアライ
ンレジスタは無視され、そして、非整列スタートイベン
トは決して生成されない。ただし、将来の製品との互換
性を保証するためにイグノア・ノンアライン=1、及び
ノンアラインスタートマスク=0をセットすることが推
奨される。
【0768】一方、MPEGは、通信(直列ビット)及
びコンピュータ(バイト指向)システムの両方の必要性
を満たすように設計された。MPEGデータ内のスター
トコードは、通常、整列バイトでなければならない。た
だし、規格は、スタートコードに関して直列ビット探索
が可能であるように設計されている(MPEGビットパ
ターンは、どのようなビット整列であっても、スタート
コードでない限り、スタートコードのようには見えな
い)。従って、MPEGデコーダは、直列データ通信に
おけるバイト整列の損失を許容するように設計可能であ
る。
【0769】非整列スタートコードが見付かった場合に
は、通常、既に通信エラーが発生していたことを示す。
エラーが直列ビット通信システムにおける「ビット‐ス
リップ」である場合には、このエラーを含むデータは既
にデコーダへ供給されている。このエラーは、デコーダ
内において他のエラーを引き起こす可能性があるものと
推測される。ただし、スタートコード検出器に到着する
新しいデータは、この整列が失われた後で、続いて復号
化可能である。
【0770】イグノア・ノンアライン=0、及びノンア
ラインスタートマスク=1をセットすることにより、非
整列スタートコードが検出された場合には、割込みが生
成可能である。責任の所在はアプリケーションに依存す
る。後続する全てのスタートコードは非整列である(バ
イト整列が復元されるまで)。従って、バイト整列が失
われた後で、ノンアラインスタートマスク=0をセット
することが適切であることもあり得る。
【0771】
【表93】 A.11.7 「トークンの自動生成」 本発明において、スタートコード検出器によって出力さ
れたトークンの大部分は、様々なピクチャ及び動画コー
ド化規格の構文エレメントを直接反映する。これらの
「自然」トークンに加えて、幾つかの有用な「発明され
た」トークンが生成される。これらの所有権を主張でき
るトークンの例はピクチャ・エンド、及びコーディング
・スタンダードである。更に、符号化規格の間の或る程
度の構文的な差を除去し、そして、エラー条件の下で整
頓するために、トークンが導入される。
【0772】この自動トークン生成は、コード化データ
の直列分析の後で行われる(図70「スタートコード検
出器」参照)。従って、システムは、スタートコード検
出器を介して空間デコーダの入力に直接供給されたトー
クン及びコード化データ内のスタートコードの検出に後
続するスタートコード検出器によって生成されたトーク
ンに平等に応答する。
【0773】A.11.7.1 「ピクチャの終了表
示」 一般に、符号化規格は、ピクチャの終了を明白には送信
しない。ただし、本発明のスタートコード検出器は、現
行ピクチャが完了したことを示す情報を検出した場合、
ピクチャ・エンドトークンを生成する。 ピクチャ・エ
ンドを生成させるトークンを次に示す。シーケンススタ
ート、グループスタート、ピクチャ・スタート、シーケ
ンスエンド、及びフラッシュ。
【0774】A.11.7.2 「ピクチャ終了オプシ
ョン後の停止」 レジスタストップアフタピクチャがセットされている場
合には、スタートコード検出器は、ピクチャ・エンドト
ークンが供給した後で停止する。ただし、フラッシュト
ークンは、デコーダを介してコード化データの末端を
「プッシュ」し、そして、システムをリセットするため
に、ピクチャ・エンドの後で挿入される。A.11.
5.1を参照されたい。
【0775】A.11.7.3 「H.261用シーケ
ンススタートの導入」 H.261は、シーケンススタートに等価な構文エレメ
ントを持たない表92参照)。インサートシーケンスス
タートレジスタがセットされている場合、スタートコー
ド検出器は、その次のピクチャ・スタートの前に1つの
シーケンススタートトークンがあることを保証する、即
ち、スタートコード検出器がピクチャ・スタートの前に
シーケンススタートを見ない場合には、一方のトークン
が導入される。一方が既に存在する場合には、シーケン
ススタートは導入されない。
【0776】この機能は、MPEG又はJPEGと共に
使用してはならない。
【0777】A.11.7.4 「各シーケンスに対す
る符号化規格の設定」 スタートコード検出器を離れる全てのシーケンススター
トトークンは、コーディング・スタンダードトークンに
よって常に先行される。このトークンには、スタートコ
ード検出器の現行符号化規格がロードされる。これは、
各新しい動画シーケンス用にセットされたデコーダチッ
プ全体に対して符号化規格をセットする。
【0778】A.11.8 「スタートコードの探索」 本発明に基づくスタートコード検出器は、コード化デー
タストリーム中の特定のタイプのスタートコードを探索
するために使用できる。これは、デコーダが、いくらか
のコード化データの構文内において、指定されたレベル
からの復号化を再開始することを可能にする(それに先
行するあらゆるデータを放棄した後において)。このた
めのアプリケーションを次に示す。
【0779】*未知の位置において(例えば、ランダム
アクセスの場合)コード化データファイルにジャンプし
た後におけるデコーダのスタート。
【0780】*データエラーの後において回復を援助す
るために、データ内の既知の点を探索する。
【0781】例えば、表94は、異なるコンフィギュレ
ーションのスタートコードサーチに関して探索されたM
PEGスタートコードを示す。等価H.26l及びJP
EGスタート/マーカコードは、表92に見ることが出
来る。
【0782】
【表94】 スタートコードサーチにゼロでない値が記入される場
合、スタートコード検出器は、指定されたスタートコー
ドが検出されるまで、入来する全てのデータを破棄する
ことを開始する。次に、スタートコードサーチレジスタ
は0にリセットし、そして、正常作動が継続する。
【0783】スタートコードサーチは、ゼロ出ない値が
スタートコードサーチレジスタに記入された後で、即座
に開始する。スタートコード検出器がデータを活発に処
理している時にこれが行われた場合には、結果は予測不
可能である。従って、スタートコードサーチを開始する
以前に、一切のデータが処理されていないようにスター
トコード検出器が停止されていなければならない。任意
のスタートコード検出器イベント(非整列スタートイベ
ント等)が割込みの生成を完了したばかりである場合に
は、スタートコード検出器は、常にこの条件にある。
【0784】A.11.8.1 「JPEGと共にスタ
ートコードサーチを使用する場合の制限」 殆どのJPEGマーカコードは、それらと関連した16
ビット長カウントフィールドを持つ。このフィールド
は、マーカコードと関連しているデータセグメントの長
さを示す。このセグメントがマーカコードをエミュレー
トする値を含んでいても差し支えない。正常動作におい
て、スタートコード検出器は、データのこれらのセグメ
ント内のスタートコードを探さない。
【0785】或るJPEGコード化データへのランダム
アクセスがこの種セグメントに「ランドする」する場合
には、スタートコード探索メカニズムを高信頼度を以て
使用することは出来ない。一般に、JPEGコード化動
画は、ランダムアクセスのための入り口を識別するため
に付加的な外部情報を必要とする。
【0786】セクション A.12 「デコーダのスタ
ート制御」 A.12.1 「デコーダスタートの概観」 デコーダにおいて、動画ディスプレイは、コード化デー
タが最初に利用可能になった後で、通常、短い時間だけ
遅れてディスプレイされる。この遅延の期間中、コード
化データは、デコーダ内のバッファに集積する。バッフ
アをこのように予充満することによって、復号化期間中
にバッファが決して空にならないことを保証し、ひいて
は、デコーダが、規則的な間隔を以て、新しいピクチャ
を復号化することができることを保証する。
【0787】一般に、デコーダを正しくスタートするた
めには2つの機能が必要とされる。第1に、どれだけの
量のデータがデコーダに供給されたかを測るメカニズム
がなくてはならない。2番目に、新しい動画ストリーム
のディスプレイを防止するためのメカニズムがなければ
ならない。本発明の空間デコーダは、どれだけの量のデ
ータが到着したかを測定するために、その入力の近くに
ビットカウンタを備え、そして、出力されつつある新し
い動画ストリームがスタートすることを防止するため
に、その出力の近くに出力ゲートを備える。
【0788】これらの機能を制御するための複雑性に3
つのレベルがある。
【0789】*出力ゲートは常に開いている *基礎的制御 *上級制御 出力ゲートを常に開いた状態に保持することにより、コ
ード化データがデコーダに到着し始めた後において、で
きる限り早期にピクチャ出力がスタートする。これは、
静止画像を復号化する場合、或いは、ディスプレイが何
か他のメカニズムによって遅延されつつある場合に適す
る。
【0790】基礎的制御と上級制御との間の差は、任意
の時点において、デコーダのバッファ内に幾つの短い動
画ストリームが収容可能かということである。大抵のア
プリケーションにとっては基礎的制御で十分である。た
だし、上級制御は、ユーザソフトウェアが、数個の非常
に短い動画ストリームのスタートのデコーダによる管理
を援助することを可能にする。
【0791】A.12.2 「MPEG動画バッファベ
リファイア」 MPEGは、一定データレートシステム用「動画バッフ
ァベリファイア(VBV)」について記述する。VBV
情報を用いることにより、デコーダは、ピクチャをディ
スプレイを開始する以前に、そのバッファを予充満する
ことが可能になる。再度説明すれば、この予充満によ
り、デコーダのバッファが、復号化期間中に決して空に
ならないことが保証される。
【0792】要約すれば、各MPEGピクチャはvbv
delayパラメータを持つ。このパラメータは、第1
のピクチャが復号化される以前に、「理想デコーダ」の
コード化データバッファがコード化データでいっぱいに
なるために必要な時間を規定する。第1のピクチャのた
めのスタート遅延に注意すれば、後続する全てのピクチ
ャの必要条件には自動的に適合する。
【0793】従って、MPEGは、スタートに関する必
要条件を遅延として規定する。ただし、一定ビットレー
トシステムにおいては、この遅延は、ビットカウントに
容易に変換できる。これは、本発明の空間デコーダのス
タート制御動作の基礎である。
【0794】A.12.3 「ストリームの定義」 このアプリケーションにおいて、ストリームという用語
は、MPEGにおけるシーケンスという用語との混乱を
避けるために使われる。従って、ストリームは、アプリ
ケーションにとって関心のある動画データの量を意味す
る。従って、1つのストリームが多数のMPEGシーケ
ンスであるか、或いは、1つのピクチャでありうる。
【0795】この章に記述されるデコーダスタート機能
は、1つのストリーム内の第1ピクチャに関するVBV
必要条件に適合することに関係する。当該ストリーム内
の後続ピクチャの必要条件には自動的に適合する。
【0796】A.12.4 「スタート制御レジスタ」
【0797】
【表95】
【0798】
【表96】 A.12.5 「常時開出力ゲート」 出力ゲートは、開いた状態を維持するように構成可能で
ある。静止画像が復号化されつつある場合、或いは、動
画デコーダのスタートを管理するために他の何等かのメ
カニズムが利用可能である場合には、このコンフィギュ
レーション構成が適切である。
【0799】リセット後に必要とされるコンフィギュレ
ーションを次に示す(スタートアップアクセスに1を記
入することによってスタート制御ロジックへのアクセス
が得られる)。
【0800】* オフチップキュー=1をセットする * イネーブルストリーム=1をセットする * 全てのデコーダスタートイベントマスクレジスタが
0にセットされ、それらのレジスタの割込みを無能にす
るることを保証する(これは、リセット後のデフォルト
状態である)。(これが出力ゲートを開いた状態に保持
する理由についての説明に関してはA.12.7.1を
参照されたい)。
【0801】A.12.6 「基本動作」 本発明において、殆どのMPEG動画アプリケーション
にとっては、スタートロジックの基礎的な制御で充分で
ある。このモードにおいて、ビットカウンタは出力ゲー
トと直接通信する。フラッシュトークンによって指示さ
れるように、動画ストリームのエンドが出力ゲートを供
給する時、出力ゲートは自動的に閉じる。ストリームが
そのスタートビットカウントを達成した時にビットカウ
ンタ回路により1つのイネイブルが供給されるまで、当
該ゲートは閉じた状態を維持する。
【0802】リセットの後で必要とされるコンフィギュ
レーションを次に示す(スタートアップアクセスに1を
記入することによりスタート制御ロジックへのアクセス
が得られる)。
【0803】*コード化データのほぼ予測範囲に対して
ビットカウントプリスケールをセットする。
【0804】*このエラー条件を検出可能にするために
カウンタflushed tooearlyマスク=1
をセットする。
【0805】次に示す2つの割込みサービスルーチンが
必要とされる。
【0806】*新しい各ストリーム内の第1ピクチャ用
vbv遅延値を得るための動画デマルチプレクスサービ
ス。
【0807】*この条件に反応するためのカウンタfl
ushed too earlyサービス。
【0808】新しい動画ストリーム用vbv遅延を復号
化する時(即ち、フラッシュ後において第1ピクチャが
動画デマルチプレクサに到着する時)、この動画デマル
チプレクサ(別名動画パーザ)は割込みを生成すること
が出来る。割込みサービスルーチンは、ビットカウント
ターゲット用の適切な値を計算し、そして、それを記入
しなければならない。ビットカウンタがこの目標に到達
した時、このビットカウンタは、ビットカウンタと出力
ゲートとの間の短いキューに1つのイネイブルを挿入す
る。出力ゲートが開くと、このゲートはこのキューから
1つのイネイブルを除去する。
【0809】A.12.6.1 「別のストリーム終了
直後における新ストリームの開始」 一例として、終わろうとしていMPEGストリームをA
と呼び、そして、開始しようとしているMPEGストリ
ームをBと呼ぶこととする。Aのエンドの後でフラッシ
ュトークンが挿入されなければならない。このトークン
は、そのコード化データの最後のデータをデコードを通
って押し、、デコーダの様々なセクションに新しいスト
リームが予測されることを警告する。
【0810】通常、ビットカウンタはゼロにリセット済
みであり、Aは既にそのスタート条件に適合した状態で
ある。フラッシュの後で、ビットカウンタは、ストリー
ムB内のビットをカウントし始める。動画デマックス
が、ストリームB内の第1ピクチャからvbv遅延を復
号化し終わると、割込みが生成されて、ビットカウンタ
を構成可能にする。
【0811】ストリームAのエンドをマークするフラッ
シュが出力ゲートを通過するにつれて、ゲートが閉じ
る。ゲートは、Bがそのスタート条件に適合するまで、
閉じた状態を維持する。例えば、ストリームB及びバッ
ファの深さのためのスタート遅延のような多数の要因に
応じて、出力ゲートが閉じた時、Bが既にそのスタート
条件条件に適合済みであることが可能である。この場
合、1つのイネイブルはキュー内において待機してお
り、そして、出力ゲートは即座に開く。そうでない場合
には、ストリームBは、そのスタート必要条件に適合す
るまで、待たなければならない。
【0812】A.12.6.2 「短いストリームの連
続」 ビットカウンタと出力ゲートとの間に位置するキューの
容量は、3つの個別動画ストリームをそれらのスタート
条件に適合可能にし、そして、復号化を終了させるため
に前のストリームを待つことを可能にするために十分で
ある。本発明において、非常に短いストリームが復号化
されつつある場合、、或いは、オフチップバッファが復
号化中のピクチャフォーマットと比較して非常に大きい
場合に限りこの条件が発生する。
【0813】図78において、ストリームAは復号化さ
れつつあり、そして、出力ゲートは開いている。ストリ
ームB及びCは、それらのスタート条件に適合し、そし
て、空間デコーダによって管理されたバッファ内に完全
に含まれる。ストリームDは、空間デコーダの入力に依
然として到着しつつある。
【0814】ストリームB及びC用のエネイブルは、キ
ュー内に在る。従って、ストリームAが完了する、Bは
即座にスタート可能である。同様に、CはBの直後に後
続可能である。
【0815】Dがそのスタート目標に適合するばあいに
Aが出力ゲートを依然として通過中である場合には、1
つのイネイブルがキューに加えられ、キューを満たす。
Dのエンドがビットカウンタを通過する時までに、一切
のイナイブルがキューから除去されなかった場合には
(すなわち、Aは、出力ゲートを通過中であるし)、新
しいストリームは、ビットカウンタを経てスタートする
ことが出来ない。Bが出力ゲートを供給できるように出
力ゲートは開いた状態にあるので、Aが完了し、そし
て、1つのイネイブルがキューから除去されるまで、コ
ード化データは、入力において、ホールドアップされ
る。
【0816】A.12.7 「上級動作」 本発明に基づき、スタートロジックの上級制御は、A.
12.6「基礎動作」において記述されているようにユ
ーザーソフトウェアが作動可能化キューの長さを制限な
しに拡張することを可能にする。動画デコーダが、A.
12.6.2「短いストリームの連続」において記述さ
れているよりも長い一連の短い動画ストリームを収容し
なければならない場合に限り、このレベルの制御が必要
とされる。
【0817】システムの基礎動作に必要とされるコンフ
ィギュレーション構成に加えて、リセットの後で、次に
示すコンフィギュレーションが必要とされる(スタート
upアクセスに1を記入することによってスタート制御
ロジックへのアクセスが得られる)。
【0818】*オフチップキュー=1をセットする。
【0819】*キューから1つのイネイブルが除去され
た場合、割込みを作動可能化するためにアクセプトイネ
ーブルマスク=1をセットする。
【0820】*ストリームのビットカウント標的が達成
された場合、割込みを作動可能化するためにターゲット
metマスク=1をセットする。
【0821】次に示す2つの付加的割込みサービスルー
チンが必要とされる。
【0822】*受け入れ可能化割込み *標的達成割込み 標的達成割込みターゲットが発生した場合、サービスル
ーチンは、そのオフチップ作動可能化キューに1つのイ
ネイブル加えなければならない。
【0823】A.12.7.1 「出力ゲートロジック
の作動態様」 イネーブルストリームレジスタに1を記入すると、1つ
のイネイブルが短いキューにロードされる。
【0824】フラッシュ(ストリームのエンドをマーク
する)が出力ゲートを供給すると、ゲートは閉じる。利
用可能な1つのイネイブルがキューのエンドに在る場合
には、ゲートが開いて、そして、アクセプトイネーブル
イベントを生成する。アクセプトイネーブルマスクが1
にセットされる場合には、割込みが生成可能であり、そ
して、キューのエンドから1つのイネイブルが除去され
る(レジスタイネーブルストリームはリセットされ
る)。
【0825】ただし、アクセプトイネーブルマスクがゼ
ロにセットされる場合には、アクセプトイネーブルイベ
ントに続いて割込みは生成されず、そして、当該イネイ
ブルはキューのエンドから除去されない。このメカニズ
ムは、A.12.5に述べられているように、出力ゲー
トを開いた状態に保つために使用できる。
【0826】A.12.8 「ビットカウント」 ビットカウンタは、フラッシュトークンがこのカウンタ
を通過した後で、カウントを開始する。このフラッシュ
トークンは、現行動画ストリームのエンドを示す。この
点に関して、ビットカウンタは、ビットカウントtar
getレジスタにセットされているビットカウント目標
に適合するまでカウントを継続する。次に、目標適合イ
ベントが生成され、そして、ビットカウンタがゼロにリ
セットし、そして、次のフラッシュトークンを待つ。
【0827】更に、ビットカウンタは、最大カウント
(255)に到達すると、インクリメントを停止する。
【0828】A.12.9 「ビットカウントプリスケ
ール」 本発明において、ビットカウンタを1度インクリメント
するには2の(bit count prescale+1)乗×512ビット
が必要である。更に、ビットカウントプリスケールは、
0と7との間に値を保持できる3ビットレジスタであ
る。
【0829】
【表97】 動画ストリームの幾つかのエレメントは既にトークン化
されているので(例えば、スタートコード)、ビットカ
ウントは近似的であり、従って、非データトークンを含
む。
【0830】A.12.10 「早過ぎるカウンタフラ
シュ」 ビットカウント目標の達成以前に、フラッシュトークン
がビットカウンタに到着する場合には、割込みの原因と
なり得るイベントが生成される(カウンタflushe
d too earlyマスク=1である場合)。割込
みが生成されれば、ビットカウンタ回路が停止し、それ
以上のデータ入力を阻止する。このイベントが発生した
後において何時出力ゲートを開くかを決定するのはユー
ザソフトウェアの責任である。ビットカウント目標とし
て0を記入することによって開くように出力ゲートを作
成することが出来る。2、3のピクチャだけ継続する動
画ストリームの復号化を試行する場合に限り、これらの
情況が発生するはずである。
【0831】セクション A.13 「バッファ管理」 空間デコーダは、2つの論理的データバッファ、即ち、
コード化データバッファ(CDB)及びトークンバッフ
ァ(TB)を管理する。
【0832】CDBは、スタートコード検出器とハフマ
ンデコーダの入力との間でコード化データを緩衝する。
これは、低データレートコード化動画データに対して緩
衝作用を提供する。TBは、ハフマンデコーダの出力と
空間動画復号化回路(逆モデラ、量子化器、及びDC
T)の入力との間のデータを緩衝する。この2番目の論
理的バッファは、変動するデータ量を持つピクチャの処
理を収容するために処理時間が拡張を含むことを可能に
する。
【0833】双方のバッファは、物理的には1つの単一
オフチップDRAMアレイに保持される。これらのバッ
ファ用アドレスは、バッファマネージャによって生成さ
れる。
【0834】A.13.1 「バッファマネージャレジ
スタ」 空間デコーダバッファマネージャーは、デバイスがリセ
ットされた直後に、1度だけ構成されるように意図され
ている。正常作動中は、バッファマネージャの再構成に
関する必要条件はない。
【0835】空間デコーダからリセットが除去された後
で、バッファマネージャは停止させられ(バッファマネ
ジャアクセスレジスタを1にセットする)、コンフィギ
ュレーション化を待つ。レジスタが構成された後で、バ
ッファマネジャアクセスは0にセット可能であり、復号
化を開始することができる。
【0836】バッファマネージャ作動中はバッファマネ
ージャに使用されているレジスタは、殆どの場合、高信
頼度を以てアクセスすることは不可能である。あらゆる
バッファマネージャーレジスタにアクセスしようとする
場合には、それ以前に、バッファマネジャアクセスを1
にセットしなければならない。これは、バッファマネジ
ャアクセスから値1が読み取られるまで、待ちプロトコ
ルに従うことを必須にする。バッファの条件を監視する
ために、例えばcdbfull、及びcdbempty
のようなレジスタをポーリングする場合、アクセスの確
保および放棄に要する時間について考慮しなければなら
ない。
【0837】
【表98】 A.13.1.1 「バッファマネージャのポインタの
値」 一般に、データは、空間デコーダとオフチップDRAM
との間において64バイトのバーストとして転送される
(DRAMの高速ページモードを用いる)。全てのバッ
ファポインタ及び長さレジスタは、これらの64バイト
(512ビット)データのブロックを意味する。従っ
て、バッファマネージャの18ビットレジスタは、25
6kブロック線形アドレススペース(即ち、128M
b)を記述する。
【0838】64バイト転送は、DRAMインターフェ
ースの幅(8、16、または32ビット)からは独立し
ている。
【0839】A.13.2 「バッファマネージャレジ
スタの使用」 空間デコーダバッファマネージャは、2つの類似したバ
ッファを定義する2組のレジスタを持つ。バッファリミ
ットレジスタは、メモリースペースの物理的な上限界を
定義する。全てのアドレスは、この数を法として計算さ
れる。
【0840】利用可能なメモリーの限界内において、各
バッファの範囲は、2つのレジスタ、即ち、バッファベ
ース(cdbbase、及びtbbase)、及びバッ
ファ長さ(cdblength、及びtblengt
h)により定義される。バッファが使用可能になるため
には、ここまでに記述した全てのレジスタがそれ以前に
構成されていなければならない。
【0841】各バッファの現在の状態は、4つのレジス
タにおいて視ることができる。バッファリードレジスタ
(cdbread、及びtbread)は、そこから次
にデータが読み出されるバッファベースからのオフセッ
トを示す。バッファナンバーレジスタ(cdbnumb
er、及びtbnumber)は、バッファによって現
在保持されているデータの量を示す。状態ビットcdb
full、tbfull、cdbempty、及びtb
emptyは、バッファが満杯か、或いは、空であるか
を示す。
【0842】A.13.1.1に述べられているよう
に、前述の全てのレジスタに関する単位は512ビット
のデータブロックである。従って、コード化データバッ
ファ内のビット数を求めるためには、cdbnumbe
rから読み出された値ん512を乗じなければならな
い。
【0843】A.13.3 「ゼロバッファ」 「リアルタイム」必要条件が適用されない静止画像用ア
プリケーション(例えば、JPEGを使用)は、バッフ
ァマネージャによってサポートされた大きいオフチップ
バッファを必要としない。この場合、コード化データバ
ッファ及びトークンバッファに128ビットストリーム
オンチップFIFOを供給するためにバッファマネージ
ャを無視するように(レジスタゼロバッファに1を記入
することによって)DRAMインターフェースを構成可
能である。
【0844】更に、ゼロのバッファオプションは、低デ
ータレートにおける小さいピクチャフォーマットによる
動作を操作するアプリケーションに適する場合もあり得
る。
【0845】注記:レジスタゼロバッファは、DRAM
インターフェースの一部であるので、DRAMインター
フェースのポストリセット構成化の期間中に限ってセッ
トされなければならない。
【0846】A.13.4 「バッファオペレーショ
ン」 バッファを介して行われるデータ転送は、ハンドシェー
クプロトコルによって制御される。従って、バッファが
満杯であるか、又は、空である場合にはデータエラーが
発生しないことが保証される。バッファが満杯である場
合には、データをバッファに送ろうとする回路は、バッ
ファにスペースができるまで、停止させられる。バッフ
ァが満杯状態を継続する場合には、当該バッファの上流
に配置された更に処理し続けるステージは、空間デコー
ダがその入力ポートにおいてデータを受け入れることが
出来なくなるまで、停止する。同様に、バッファが空で
ある場合には、バッファからデータを除去しようとする
回路は、データが利用可能になる時まで、停止する。
【0847】A.13.2に示すように、コード化デー
タ及びトークンバッファの位置およびサイズは、バッフ
ァベース及び長さレジスタによって指定される。これら
のレジスタを構成すること、及び2つのバッファの間の
メモリー用法に矛盾がないことを保証することはユーザ
の責任である。
【0848】セクションA.14 「動画デマルチプレ
クサ」 動画パーザとも呼ばれる動画デマルチプレクサは、コー
ド化データをスタートコード検出器によってスタートさ
れたトークンに変換するというタスクを完了する。動画
デマルチプレクサには4つの主要処理ブロックがある、
即ち、パーザステートマシン、ハフマンデコーダ(IT
ODを含む)、マクロブロックカウンタ、及びALUで
ある。
【0849】パーザ又はステートマシンは、コード化動
画データの構文に従い、そして、他のユニットを指示す
る。ハフマンデコーダは、可変長コード化(VL0)デ
ータを整数に変換する。マクロブロックカウンタは、現
在復号化されつつあるピクチャセクションのトラックを
保持する。ALUは、必要な算術計算を行う。
【0850】A.14.1 「動画デマルチプレクサレ
ジスタ」
【0851】
【表99】
【0852】
【表100】
【0853】
【表101】
【0854】
【表102】
【0855】
【表103】 A.14.1.1 「レジスタのローディング、及びト
ークンの生成」 動画デマルチプレクサ内の多数のレジスタは、コード化
されたピクチャ/動画データにおいて通常伝達されるパ
ラメータに直接関係する値を保持する。例えば、水平画
素レジスタは、MPEGシーケンスヘッダ情報、水平サ
イズ、及びJPEGフレームヘッダパラメータ、Xに対
応する。これらのレジスタは、当該コード化データが復
号化される時、動画デマルチプレクサによってロードさ
れる。同様に、これらのレジスタもトークンと関連す
る。
【0856】例えば、水平画素レジスタ、トークン、水
平サイズと関連する。トークンは、コード化データが復
号化される時(又は、直後も)、動画デマルチプレクサ
によって生成される。同様に、トークンは、空間デコー
ダの入力に直接に供給可能である。この場合、トークン
が持つ値は、当該トークンと関連した動画デマルチプレ
クサを構成する。
【0857】
【表104】
【0858】
【表105】
【0859】
【表106】
【0860】
【表107】
【0861】
【表108】
【0862】
【表109】
【0863】
【表110】
【0864】
【表111】
【0865】
【表112】 A.14.2 「ピクチャの構造」 本発明におけるピクチャの次元は、空間デコーダに対し
て2つの異なる単位、即ち、ピクセル及びマクロブロッ
クとして記述される。JPEG及びMPEGは双方共、
ピクチャ次元をピクセルとして伝達する。ピクセルとし
て次元を伝達することにより、有効なデータを含むバッ
ファの領域を決定する。この場合の当該領域は全バッフ
ァサイズより小さくても差し支えない。マクロブロック
として次元を伝達することにより、デコーダによって必
要とされるバッファのサイズを決定する。マクロブロッ
ク次元は、ピクセルの次元からユーザによって求められ
なければならない。この情報と関連している空間デコー
ダレジスタを次に示す、即ち、水平画素、垂直画素、水
平マクロブロック、及び垂直マクロブロックである。
【0866】空間デコーダレジスタ、ブロック数h
n、v n、max h、max v、及びmax c
omponent idは、マクロブロックの合成(J
PEGにおけるコード化最小単位)を指定する。各々
は、0から3までの範囲内に値を保持することの出来る
1つの2ビットのレジスタである。max compo
nent idを除く全てのレジスタは、1から4まで
のブロックカウントを指定する。例えば、レジスタma
x hが1を保持する場合、マクロブロックの幅は2ブ
ロックである。同様に、max component
idは、関係する異った色成分の数を指定する。
【0867】
【表113】 A.14.3 「ハフマン表」 A.14.3.1 「JPEGスタイルハフマン表記
述」 本発明において、ハフマン表記述は、エンコーダとデコ
ーダとの間で表記述を伝達するために、JPEOによっ
て使われるフォーマットを介して空間デコーダに提供さ
れる。各表記述には2つのエレメント、即ち、BITS
及びHUFFVALがある。ユーザーは、表がコード化
される方法についての完全な記述に関して、JPEG仕
様に案内される。
【0868】A.14.3.1.1 「BITS」 BITSは、VLCの各長さを用いて幾つの異なる記号
が符号化されるかについて記述する値を示す表である。
各エントリは1つの8ビット値である。JPEGは、V
LCの長さとして最大16ビットまでを許可する。従っ
て、各表に16個のエントリがある。
【0869】BITS[0]は、幾つの異なる1ビット
VLCが存在するかを記述し、他方、BITS[1]
は、幾つの異なる2ビットVLCが存在するかを記述す
る、等々。
【0870】A.14.3.1.2 「HUFFVA
L」 HUFFVALは、VLCの長さの増大順に整列された
8ビットデータ値の表である。この表のサイズは、VL
Cによってコード化可能な異なる記号の数に依存する。
【0871】JPEG仕様は、ハフマンコード化表がこ
のフォーマットに対してコード化又は復号化される方法
について更に詳細に記述する。
【0872】A.14.3.1.3 「トークンによる
コンフィギュレーション」 JPEGビットストリームにおいて、AC及びDC係数
をコード化するために使われるハフマン表の記述にはD
HTマーカが先行する。スタートコード検出器がDHT
マーカを認識する場合、検出器は、DHTマーカトーク
ンを生成し、そして、次に後続するデータトークン内に
ハフマン表記述を配置する(A.11.3.4参照)。
【0873】空間デコーダ内におけるAC及びDC係数
ハフマン表の構成は、空間デコーダの入力にデータ及び
DHTマーカトークンを供給することによって達成可能
であり、同時に、空間デコーダはJPEGオペレーショ
ンに対して構成される。このメカニズムは、MPEGオ
ペレーションのために必要とされるDC係数ハフマン表
を構成するために使用出来るが、ただし、表がダウンロ
ードされると同時に、空間デコーダの符号化規格はJP
EGにセットされなければならない。
【0874】
【表114】 A.14.1.4 「MPIによるコンフィギュレーシ
ョン」 AC及びDC係数ハフマン表は、同様に、MPIを介し
てレジスタに直接記入することが可能である。表104
を参照されたい。
【0875】*レジスタdc bits0[15:0]
及びdc bits1[l5:0]は、表0x00及び
0x01用のBITS値を保持する。
【0876】*レジスタac bits0[15:0]
及びac bits1[15:0]は、表0x10及び
0x11用のBITS値を保持する。
【0877】*レジスタdc huffval0[1
1:0]及びdc huffval1[11:0]は、
表0x00及び0x01用のHUFFVAL値を保持す
る。
【0878】*レジスタac huffval0[16
1:0]及びac huffval1[161:0]
は、表0x10及び0x11用のHUFFVAL値を保
持する。
【0879】A.14.4 「異なる規格用構成」 動画デマルチプレクサは、MPEG、JPEG、及び
H.261の必要条件をサポートする。符号化規格は、
スタートコード検出器によって生成されたCODINC
STANDARDトークンによって自動的に構成され
る。
【0880】A.14.4.1 「H.261ハフマン
表」 H.261を復号化するために必要とされる全てのハフ
マン表は、空間デコーダ内のROMに保持され、更に詳
細には、動画デマルチプレクサのパーザステートマシン
内に保持されるので、ユーザーの介入を必要としない。
【0881】A.14.4.2 「H.261ピクチャ
の構造」 H.261は、わずか2つのピクチャフォーマット、即
ち、CIF及びQCIFをサポートするものとして定義
される。使用中のピクチャフォーマットは、ビットスト
リームのPTYPEセクションにおいて送信される。こ
のデータは、空間デコーダによって復号化されると、H
261ピクチャタイプレジスタ及びピクチャタイプトー
クン内に配置される。更に、全てのピクチャ及びマクロ
ブロック構成レジスタは自動的に構成される。
【0882】様々なレジスタ内の情報は、それらの関連
トークン内に配置され表109〜表112参照)、そし
て、これによって、他のデコーダチップ(例えば、時間
デコーダ)が正しく構成されていることを保証する。
【0883】A.14.4.3 「MPEGハフマン
表」 MPEGを復号化するために必要なハフマンコード化表
の大多数は、空間デコーダ内のROM内に保持されるの
で(パーザステートマシン内であることを再度述べてお
く)、ユーザの介入を必要としない。イントラルマクロ
ブロックのDC係数を復号化するために必要な表は例外
である。1つはクロマ用、そして、他の1つはルマ用と
して2つの表が必要とされる。これらの表は、復号化が
始まる前に、ユーザソフトウェアによって構成されなけ
ればならない。
【0884】
【表115】 表117は、空間デコーダ内のDC係数ハフマン表を構
成するために必要とされるトークンのシーケンスを示
す。その代りに、MPIを介してこの情報をレジスタに
記入することにより、同じ結果が得られる。
【0885】レジスタdc huffnは、各色成分と
共にどのDC係数ハフマン表を使用するかを制御する。
表116は、MPEGオペレーション用としてどのよう
に構成されなければならないかを示す。これは、MPI
を介するか、或いは、MPEGDCHテーブルトークン
を用いることによって直接行うことが可能である。
【0886】
【表116】
【0887】
【表117】
【0888】
【表118】
【0889】
【表119】
【0890】
【表120】 A.14.4.4 「MPEGピクチャの構造」 MPEG用に定義されたマクロブロックの構成は、H.
261によって用いられる構造と同じである。ピクチャ
の次元はコード化データにコード化される。
【0891】規格4:2:0オペレーションに対する場
合、マクロブロックの特性は、表115に指示されたよ
うに構成されなければならない。これは、指示されたよ
うにレジスタに記入するか、或いは、等価のトークンを
空間デコーダの入力に供給することによって行うことが
可能である表109〜表112参照)。
【0892】ピクチャ次元を構成するために用いられる
方法は、アプリケーションに依存する。復号化開始前に
ピクチャフォーマットが既知である場合には、表115
に示されるピクチャ構成レジスタは、適切な値を用いて
初期化可能である。その代りに、ピクチャ次元は、コー
ド化データから復号化することが可能であり、そして、
空間デコーダを構成するために使用することが可能であ
る。この場合、ユーザは、パーザーエラーMPEGシー
ケンスをサポートしなければならない。A.14.8
「MPEGシーケンス層における変化」参照。
【0893】A.14.4.5 「JPEG」 基底線JPEG内には、デコーダを操作するために必要
な制御ソフトウェアの複雑さを大幅に変更する多数のエ
ンコーダオプションがある。一般に、空間デコーダは、
次に示す条件に適合する場合に必要とされるサポートが
最小限であるように設計されている。 * フレーム当たりの色成分の数が5未満であること
(Nf≦4)。
【0894】A.14.4.6 「JPEGハフマン
表」 更に、JPEGは、ハフマンコード化表がダウンロード
されることを可能にする。これらの表は、係数を記述す
るVLCを復号化する場合に用いられる。DC係数を復
号化するために走査当たり2つの表が許可され、そし
て、AC係数用にも2つの表が許可される。
【0895】3つの異なるタイプのJPEGファイルが
ある、即ち、交換フォーマット、圧縮されたイメージデ
ータ用短縮フォーマット、及び表データ用短縮フォーマ
ットである。交換フォーマットファイルには、圧縮され
たイメージデータ及びイメージデータを復号化するため
に必要な全ての表(ハフマン、量子化等)の定義の両者
が含まれる。短縮されたイメージデータフォーマットフ
ァイルは、表定義を省略する。短縮された表フォーマッ
トファイルは表の定義のみを含む。
【0896】空間デコーダは、3つ全てのフォーマット
を受け入れる。ただし、必要とされる全ての表が定義済
みである場合には、短縮されたイメージデータファイル
のみが復号化可能である。他の2つのタイプのJPEG
ファイルのうちのどちらかを介してこの定義は実施可能
であり、或は、その代りに、ユーザソフトウェアによっ
て表をセットアップすることが可能である。
【0897】各々の走査が異なる1組のハフマン表を使
用する場合、各スキャンの前に表の定義がコード化デー
タ内に(エンコーダによって)配置される。これらの定
義は、当該走査および後続する走査期間中に使用するた
めに、空間デコーダによって自動的にロードされる。
【0898】ハフマン復号化の性能を改良するために
は、特定の共通に使用される記号が特別にケースされ
る。これらの記号は、大きさ0のDC係数、ブロックA
C係数のエンド、及び16のゼロAC係数のランであ
る。これら特別なケース用の値は、該当するレジスタに
記入されなければならない。
【0899】A.14.4.6.1 「表の選択」 レジスタdc huff n及びac huff n
は、どの色成分と共にどのAC及びDC係数ハフマン表
を用いるかを制御する。JPEGオペレーション期間
中、これらの関係は、走査ヘッダシンタックスのTDj
及びTajフィールドによって定義される。
【0900】A.14.4.7 「JPEGピクチャの
構造」 空間デコーダによってサポートされた基底線JPEG復
号化には明白な2つのレベルがある、即ち、フレーム当
たり4成分まで(Nf≦4)のレベル、及びフレーム当
たり4成分より大きい(Nf>4)レベルである。Nf
>4を使用する場合には、必要とされる制御ソフトウェ
アは更に複合になる。
【0901】A.14.4.7.1 「Nf≦4」 JPEGフレームヘッダに含まれるフレーム成分仕様パ
ラメータは、これらの復号化に際してマクロブロック構
成レジスタを構成する表115参照)。4つの異なる色
成分を復号化するために必要な全ての仕様が定義される
ので、ユーザの介入は必要としない。
【0902】JPEGによって提供されるオプションの
詳細に関しては、JPEG仕様を研究されたい。同様
に、JPEGピクチャフォーマットに関してはセクショ
ンA.16.1に簡単に記述されている。
【0903】A.14.4.7.2 「4より多い成分
を持つJPEG」 空間デコーダは、最大256の異なる色成分(JPEG
により許可される最大数)を含むJPEGファイルの復
号化が可能である。ただし、4成分より多い色成分を復
号化しようとする場合には、付加的なユーザ介入が必要
とされる。JPEGにおいては、あらゆる走査において
最大限4成分までが許可されるに過ぎない。
【0904】A.14.4.8 「非規格的バリアン
ト」 既に述べたように、空間デコーダは、JPEG及びMP
EGによって定義されたフォーマットよりも多いピクチ
ャフォーマットをサポートする。
【0905】JPEGは、コード化単位が1走査当たり
10ブロックよりも多いブロックを含まないように、最
小コード化単位を制限する。空間デコーダは、ブロック
数hn、ブロック数v n、max h、及びmax
vによって記述可能な任意の最小コード化単位を処理す
ることが出来るので、この限界は、空間デコーダには適
用されない。
【0906】MPEGにおいては、4:2:0マクロブ
ロックに関してのみ定義される表115参照)。ただ
し、空間デコーダは、3つの他の成分マクロブロック構
造(例えば4:2:2)を処理可能である。
【0907】A.14.5 「動画イベント及びエラ
ー」 動画デマルチプレクサは、2つのタイプのイベント、即
ち、パーザイベント及びハフマンイベントを生成可能で
ある。イベント及び割込みをの扱う方法の記述に関して
は、A.6.3「割込み」を参照されたい。
【0908】A.14.5.1 「ハフマンイベント」 ハフマンイベントは、ハフマンデコーダによって生成さ
れる。ハフマンイベント及びハフマンマスクにおいて指
示されるイベントは、割込みが生成されるかどうかを決
定する。ハフマンマスクが1にセットされる場合には、
割込みが生成され、そして、ハフマンデコーダが停止す
る。レジスタハフマンエラーコード[2:0]は、イベ
ントの原因を示す値を保持する。
【0909】割り込みをサービスした後でハフマンイベ
ントに1が記入される場合には、ハフマンデコーダは、
エラーからの回復を試行する。同様に、ハフマンマスク
が0にセットされた場合には(割込みをマスクし、そし
て、ハフマンデコーダを停止させない)、ハフマンデコ
ーダは、エラーからの回復を自動的に試行する。
【0910】A.14.5.2 「パーザイベント」 パーザイベントは、パーザによって生成される。このイ
ベントは、パーザイベントにおいて指示される。それ以
降においては、割込みが生成されるかどうかは、パーザ
ーマスクによって決定される。パーザーマスクが1にセ
ットされている場合には、割込みが生成され、そして、
パーザは停止する。レジスタパーザーエラーコード
[7:0]は、イベントの原因を指示する値を保持す
る。
【0911】割込みをサービスした後で、ハフマンイベ
ントに1が記入される場合には、ハフマンデコーダは、
エラーからの回復を試行する。同様に、ハフマンマスク
が0にセットされた場合には(割込みをマスクし、そし
て、ハフマンデコーダを停止させない)、ハフマンデコ
ーダは、エラーからの回復を自動的に試行する。
【0912】割込みをサービスした後で、パーザーイベ
ントに1を記入する場合には、パーザは、オペレーショ
ンを再開する。イベントがビットストリームエラーを指
示した場合には、動画デマルチプレクサは、エラーから
の回復を試行する。
【0913】パーザーマスクが0にセットされた場合に
は、パーザは、そのイベントビットをセットするが、割
込み又は停止は生成しない。パーザは、オペレーション
を継続し、そして、エラーからの自動的な回復を試行す
る。
【0914】
【表121】
【0915】
【表122】
【0916】
【表123】
【0917】
【表124】
【0918】
【表125】
【0919】
【表126】 各規格は、定義されたパーザエラーコードの異なる部分
集合を使用する。
【0920】
【表127】
【0921】
【表128】 A.14.6 「ユーザデータ及び拡張データの受信」 MPEG及びJPEGは、ユーザデータ及び拡張データ
を埋め込むための同様のメカニズムを用いる。データ
は、スタート/マーカコードによって先行される。アプ
リケーションが当該データに関心を持たない場合には、
スタートコード検出器が、このデータを削除するように
構成可能である(A.11.3.3参照)。
【0922】A.14.6.1 「データソースの識
別」 パーザイベント、ERREXTENSIONトークン、
及びERRユーザトークンは、動画デマルチプレクサに
おけるEXTENSIONデータ、またはユーザデータ
トークンの到着を示す。これらのトークンがスタートコ
ード検出器によって生成された場合には(A.11.
3.3参照)、これらのトークンは、スタートコード検
出器にトークンを生成させたスタート/マーカコードの
値を持つ表92参照)。この値は、パーザ割込みをサポ
ートしている間に、rom revisionレジスタ
を読むことによって読み取り可能である。パーザーイベ
ントに1が記入されるまで動画デマルチプレクサは、停
止状態を維持する(A.6.3、「割込み」参照)。
【0923】A.14.6.2 「データの読取り」 EXTENSIONデータ、及びユーザデータトークン
は、拡張データ又はユーザデータを持つデータトークン
により直ちに後続されるものと予測される。動画デマル
チプレクサは、このデータトークンの到着によって、E
RREXTENSIONデータ又はERRユーザデータ
パーザイベントのいずれかを生成する。データトークン
の第1のバイトは、割込みをサービスしている間に、r
om revisionレジスタを読むことによって読
み取り可能である。
【0924】動画デマルチプレクサレジスタの継続状態
は、イベントがクリアされた後における行動態様を決定
する。このレジスタが値0を保持する場合には、データ
トークンにおけるあらゆる残りのデータは動画デマルチ
プレクサによって消費され、そして、イベントは一切生
成されない。継続が1にセットされている場合には、拡
張の各バイト又はユーザデータが動画デマルチプレクサ
に到着するにつれてイベントが生成される。これは、デ
ータトークンが使い果たされるか、或いは、継続が0に
セットされるまで継続する。
【0925】注記: 1)拡張/ユーザデータの第1のバイトは、継続の状態
に関係なく、romrevisionレジスタを介して
常に呈示される。
【0926】2)拡張/ユーザデータの最後のバイトを
読み終えたことを示すイベントは無い。
【0927】A.14.7 「追加情報の受信」 H.261及びMPEGは、符号化規格を拡張する情報
がブロック(H.261)又はスライス(MPEG)の
ピクチャ及びグループ内に埋め込まれることを可能にす
る。このメカニズムは、拡張データ及びユーザデータ用
メカニズムと異なる(セクションA.14.6に記述済
み)。スタートコードはデータに先行しないので、スタ
ートコード検出器によって削除されることが可能であ
る。
【0928】H.261オペレーション期間中、パーザ
イベントERR PSPARE、及びERR GSPA
REは、この情報の検出を指示する。MPEGオペレー
ション期間中の対応するイベントはERR EXTRA
ピクチャ、及びERR EXTRAスライスである。
【0929】パーザイベントが生成されると、追加情報
の第1のバイトは、レジスタromrevisionを
介して経て呈示される。
【0930】動画デマルチプレクサレジスタの継続状態
は、イベントがクリアされた後の行動態様を決定する。
このレジスタ値0を保持する場合には、あらゆる残りの
追加情報は動画デマルチプレクサによって消費され、そ
して、一切のイベントが生成されない。継続が1にセッ
トされている場合には、追加情報の各バイトが動画デマ
ルチプレクサに到着するにつれて、イベントが生成され
る。この継続は、追加情報が使い果たされるか、或い
は、継続が0にセットされるまで継続する。
【0931】注記: 1)拡張/ユーザデータの第1のバイトは、継続の状態
に関係なく、romrevisionレジスタを介して
常に呈示され。 2)拡張/ユーザデータの最後のバイトを読み終えたこ
とを示すイベントは無い。
【0932】A.14.7.1 「FIELD INF
Oトークンの生成」 MPEGオペレーション期間中、レジスタフィールドi
nfoが1にセットされている場合には、あらゆるex
tra informationピクチャの第1のバイ
トは、FIELD INFOトークン内に配置される。
この行動態様は、MPEGの標準化アクティビティによ
ってカバーされない。FIELD INFOトークンの
定義を表4〜表11に示す。
【0933】フィールドinfoが1にセットされてい
る場合には、extra informationピク
チャの第1のバイトに対して一切のパーザイベントが生
成されない。ただし、extra informati
onピクチャのあらゆる後続バイトに対してイベントが
生成される。extra informationピク
チャの1つの単一バイトだけがある場合には、パーザイ
ベントは一切発生しない。
【0934】A.14.8 「MPEGシーケンス層に
おける変化」 MPEGシーケンスヘッダは、復号化されようとしてい
る動画の次に示す特性を記述する。
【0935】*水平および垂直サイズ *ピクセルのアスペクトレシオ *ピクチャレート *コード化データレート *動画バッファベリファイアのバッファサイズ 空間デコーダがシーケンスヘッダを復号化する際に、こ
れら任意のパラメータが変化する場合には、パーザイベ
ントERR MPEGシーケンスが生成される。
【0936】A.14.8.1 「ピクチャサイズの変
化」 ピクチャサイズが変化した場合、ユーザのソフトウェア
は、horizpels、及びvert垂直pelsに
おける値を読み取り、そして、レジスタhorizma
croblocks、及びvertmacrobloc
ksにロードするための新しい値を計算する。
【0937】セクション A.15 「空間復号化」 本発明に基づき、トークンバッファの出力と空間デコー
ダの出力との間で空間復号化が発生する。
【0938】空間復号化の責任を負う3つの主要ユニッ
ト、即ち、逆モデラ、逆量子化器、及び逆別個コサイン
トランスフォーマがある。このセクションの入力(トー
クンバッファから)において、データトークンは、量子
化された係数のラン及びレベル表現を含む。出力(逆D
CTの)において、データトークンはピクセル情報の8
×8ブロックを含む。
【0939】A.15.1 「逆モデラ」 トークンバッファ内のデータトークンは、量子化された
係数の値、及び表示された係数の間のゼロの数に関する
情報を含む。逆モデラは、各データトークンが64の値
を含むように、ゼロのランに関する情報を拡大する。こ
の段階において、データトークンにおける値は量子化さ
れた係数である。
【0940】逆モデル化プロセスは、現在使用中の符号
化規格には関係なく、同じである。コンフィギュレーシ
ョンは一切不要である。
【0941】モデル化および逆モデル化機能に関する全
ての必要条件を一層良く理解するために、読者は、任意
のピクチャコード化規格を調査することが可能である。
【0942】A.15.2 「逆量子化器」 エンコーダにおいて、量子化器は、DCT係数の分解能
度を低下させるためにDCT出力を分割する。デコーダ
における逆量子化器の機能は、元の値に近似するように
復元するために、これらの量子化されたDCT係数に乗
算を施すことである。
【0943】A.15.2.1 「規格量子化計画の概
要」 異なる符号化規格の各々によって用いられる量子化計画
には重要な差がある。各々の規格によって用いられる量
子化計画について詳細に理解するためには、読者は、関
連符号化規格文書を研究されたい。
【0944】レジスタiqコード化スタンダードは、異
なる規格の必要条件に適合するように、逆量子化器のオ
ペレーションを構成する。正常オペレーションにおい
て、このコード化レジスタは、コーディング・スタンダ
ードトークンによって自動的にロードされる。コード化
規格のコンフィギュレーションに関する一層の情報に関
しては、セクションA.21.1を参照されたい。
【0945】量子化計画の間の主要な相違は、量子化さ
れた係数に乗算する数のソースである。これらについて
は、次に概説される。更に、ここには説明されていない
が、必要な算術演算(丸める、等)において詳細な相違
がある。
【0946】A.15.2.1.1 「H.261 I
Qの概観」 H.261において、係数を調整するために、1つの単
一「スケールファクタ」が用いられる。エンコーダは、
作成されるデータレートを調整するために、このスケー
ルファクタを定期的に変更できる。イントラコード化ブ
ロック内の「DC」係数には、わずかに異なる規則が適
用される。
【0947】A.15.2.1.2 「JPEG IQ
の概観」 基底線JPEGは、各走査において最大4つまでの異な
る色成分を含むピクチャを許容する。これらの4つの色
成分に対しては、64エントリ量子化表が指定可能であ
る。これらの表の各エントリは、64の量子化された係
数のうちの1つに対して「スケール」ファクタとして使
用できる。
【0948】JPEG量子化表用の値は、コード化JP
EGデータ内に含まれ、そして、量子化表に自動的にロ
ードされる。
【0949】A.15.2.1.3 「MPEG IQ
の概観」 MPEGは、H.261及びJPEG量子化技術を用い
る。JPEGの場合と同様に、各々64のエントリを備
えた4つの量子化表が使用可能である。ただし、表の使
用方法は全く異なる。
【0950】データの2つの「タイプ」は、イントラ及
び非イントラである。各データタイプに対して異なった
表が用いられる。2つの「デフォルト」表が、MPEG
によって定義される。1つはイントラデータ用であり、
いま1つは非イントラデータ用である表130、及び表
131参照)。これらのデフォルト表は、MPEG復号
化が可能になる以前に、空間デコーダの量子化表メモリ
ーに記入されなければならない。
【0951】同様に、MPEGは、2つの「ダウンロー
ド」量子化表を許可する。1つは、イントラデータと共
に使用するためであり、いま1つは、非イントラデータ
と共に使用するためである。これらの表に対する値は、
MPEGデータストリーム内に含まれ、そして、量子化
表メモリ自動的にロードされる。
【0952】表から出力される値は、スケールファクタ
によって修正される。
【0953】A.15.2.2 「逆量子化器レジス
タ」
【0954】
【表129】 本発明において、量子化表メモリがアクセス可能になる
以前に、iqアクセスレジスタがセットされなければな
らない。iqアクセスが0にセットされている間に、表
に読み取りが試行された場合には、量子化表メモリは値
ゼロを返す。
【0955】A.15.2.3 「逆量子化器の構成」 正常オペレーションにおいては、コーディング・スタン
ダードトークンによって自動的に構成されるので、逆量
子化器の符号化規格を構成する必要はない。
【0956】H.261オペレーションに対しては、量
子化器表は使用されない。特別なコンフィギュレーショ
ンは必要とされない。JPEGオペレーションに対して
は、逆量子化器によって必要とされる表は、コード化デ
ータから抽出された情報によって自動的にロードされな
ければならない。MPEGオペレーションは、デフォル
ト量子化表がロードされることを必要とする。このロー
ディングは、iqアクセスが1にセットされている間に
行われなければならない。表130内の値は、逆量子化
器の拡張アドレススペースの場所0x00から0x3F
までに記入されなければならない(キーホールレジスタ
iqキーホールアドレス、及びiqキーホールデータを
介してアクセス可能)。同様に、表131の値は、逆量
子化器の拡張アドレススペースの場所0x40から0x
7Fまでに記入されなければならない。
【0957】
【表130】
【0958】
【表131】 A.15.2.4 「トークンからの表構成」 MPIを介して逆量子化器表を構成する代りに、これら
の逆量子化器表をトークンによって初期化することが可
能である。これらのトークンは、コード化されたデータ
ポート又はMPIのいずれかによって供給可能である。
【0959】QUANTテーブルトークンについては、
表3〜表11に記述される。前記トークンは、表の4
(0〜3)つの場所のいずれがトークンによって定義さ
れるかを指定する1つの2ビットフィールドttを持
つ。MPEGオペレーションに対しては、表0及び1の
デフォルトの定義がロードされることが必要である。
【0960】A.15.2.5 「量子化表の値」 JPEG及びMPEGの両方に対しては、量子化表エン
トリは、8ビットの数である。255から1までの値は
正当である。値0は不当である。
【0961】A.15.2.6 「量子化表の数順序」 量子化表の値は、「ジグザグ」走査順序において用いら
れる(符号化規格参照)。表は、64の値を持つ一次元
アレイと見なされなければならない(8×8アレイでは
ない)。低いアドレスにおける表のエントリは、低い周
波数DCT係数に対応する。
【0962】量子化表の値がQUANTテーブルトーク
ンによって所持される場合には、トークンヘッダの後の
第1の値は、「DC」係数用の表エントリである。
【0963】A.15.2.7 「逆量子化器テストレ
ジスタ」
【0964】
【表132】 A.15.3. 「離散逆コサイン変換」 本発明の逆別個変換プロセッサは、CCITT勧告H.
26l、IEEE仕様P1180に規定された必要条件
に適合し、そして、MPEGの現行改訂案に記述された
必要条件に適合する。
【0965】離散逆コサイン変換プロセスは、いずれの
コード化規格が用いられるかに関係なく、同じである。
ユーザによるコンフィギュレーションは一切不要であ
る。
【0966】逆別個変換プロセッサと関連した2イベン
トがある。
【0967】
【表133】 DCT及び逆DCT機能を一層良く理解するために、読
者は、任意のピクチャ符号化規格を調査することができ
る。
【0968】セクション A.16 「空間デコーダ出
力への接続」 空間デコーダの出力は、幅9ビットのデータワードの標
準トークンポートである。インターフェースの電気的行
動態様に関する詳細な情報についてはセクションA.4
を参照されたい。
【0969】出力におけるトークンは、採用中の符号化
規格に依存する。一例として、本開示のこのセクション
においては、JPEGオペレーション用に構成する際
に、空間デコーダの出力について考察する。時間デコー
ダは、JPEGの復号化結果として得られるトークンシ
ーケンスを修正しないので、このセクションにおいて
は、JPEGオペレーション期間中に時間デコーダの出
力において観察されるトークンシーケンスについて記述
する。
【0970】ただし、MPEG及びH.261は、双方
共時間デコーダの使用を必要とする。MPEG及びH.
261オペレーション用に構成されている場合における
時間デコーダ出力への接続に関する情報についてはセク
ションA.19を参照されたい。 更に、このセクショ
ンにおいては、空間デコーダの出力においていずれのト
ークンが利用できるか及び当該出力をディスプレイする
ための回路設計に際していずれのトークンが最も有用で
あるかを識別する。他のトークンも存在するが、それら
の出力はディスプレイ不要なので、ここでは検討しな
い。このセクションにおいて集中的に検討する項目を次
に示す。
【0971】*シーケンスのスタート及びエンドの識別
方法。
【0972】*ピクチャのスタート及びエンドの識別方
法。
【0973】*何時ピクチャをディスプレイするかの識
別方法。
【0974】* ディスプレイ内のピクチャデータ配置
場所を識別する方法 A.16.1 「JPEGピクチャの構造」 このセクションでは、JPEG構文の特徴について概観
する。詳細については符号化規格を参照されたい。
【0975】JPEGは、個々のピクチャをコード化す
るための様々なメカニズムを提供する。JPEGは、動
画をコード化するメカニズムを提供するためにピクチャ
の集りをまとめてコード化する方法を記述しようと試み
ない。
【0976】本発明に基づく空間デコーダは、JPEG
の基底線としての順次的な作動モードをサポートする。
この構文には主要な3つのレベル、即ち、イメージ、フ
レーム、及びスキャンがある。順次的な1つのイメージ
はただ1つの単一フレームを含む。1つのフレームは、
1から256までの間の異なるイメージ(色)成分を含
むことが出来る。これらのイメージ成分は様々な方法に
おいてスキャンに集めることが出来る。各スキャンは1
から4までの間のイメージ成分を含むことができる(図
90「JPEG基底線としての順次的構造の概観」参
照)。 スキャンが1つの単一イメージ成分を含む場合
には、非インタリーブドスキャンであり、複数のイメー
ジ成分を含む場合には、インタリーブドスキャンであ
る。1つのフレームは、インタリーブドキャンと非イン
タリーブドスキャンの混合物を含むことができる。フレ
ームが含むことのできるスキャンの数は、フレームが含
むことのできるイメージ成分の数に関する256の限界
によって決定される。 1つのインタリーブドスキャン
内において、データは、MPEG及びH.261に用い
られるマクロブロックに相似する最小コード化単位(M
CU)に組織される。これらのMOUは、ピクチャ内に
おいてラスタ順に配置される。非インタリーブドスキャ
ンにおけるMCUは、1つの単一8×8ブロックであ
る。この場合にも、MCUはラスタ組織化される。
【0977】空間デコーダは、1から4までの異なる色
成分を含むJPEGデータを容易に復号化することが出
来る。大きい数の成分について記述するファイルも、同
様に復号化することが出来る。ただし、復号化される成
分の次の1組を収容するためには、スキャンの間におい
て或る程度の再構成が要求されることもあり得る。
【0978】A.16.2 「トークンシーケンス」 JPEGマーカコードは、スタートコード検出器によっ
てトークンと指定された相似のMPEGに変換される表
92、及び図91「トークン化されたJPEGピクチ
ャ」参照)。
【0979】セクションA.17 「時間デコーダ」 *30、MH7オペレーション。
【0980】*MPEG及びH.261動画デコーダ用
時間復号化を提供する。
【0981】*H.261 CIF、及びQCIFフォ
ーマット。
【0982】*MPEG動画分解能度最大704×48
0、30Hz、4:2:0。
【0983】*融通性のあるクロマサンプリングフォー
マット。
【0984】*MPEGピクチャシーケンス順序直し可
能。
【0985】*グルーレスDRAMインターフェース。
【0986】*単一+5V電源。
【0987】*208ピンPQFPパッケージ。
【0988】*最大電力消費2.5W。
【0989】*標準ページモードDRAMを使用する。
【0990】時間デコーダは、空間デコーダにとってコ
ンパニオンチップであり、そして、H.261、及びM
PEGによって必要とされる時間復号化を提供する。
【0991】時間デコーダは、MPEG、及びH.26
1によって必要とされる全ての予測形成機能を実行す
る。1つの単一4Mb DRAM(例えば、512k×
8)を用いて、時間デコーダは、CIF及びQCIF
H.261動画を復号化することができる。8Mb D
RAM(例えば、2つの256k×16)を用いると、
704×480、30Hz、4:2:0MPEG動画を
復号化することができる。
【0992】イントラコード化計画(例えばJPEG)
は時間デコーダえを必要としない。時間デコーダが多重
規格デコーダに含まれる場合には、当該時間デコーダ
は、復号化済みJPEGピクチャをその出力まで供給す
る。 注記:前述の値は、本発明の1実施例の一例を示すに過
ぎず、必ずしも制限を意図するものではない。本発明の
範囲から逸脱することなしに、他の値及び範囲を用いる
ことが可能であることが理解されるはずである。
【0993】A.17.1 「時間デコーダ信号」
【0994】
【表134】
【0995】
【表135】
【0996】
【表136】
【0997】
【表137】
【0998】
【表138】 A.17.1.1 「非接続ピン“nc”」 表138に「nc」とラベル表示されているピンは、現
在本発明には使用されず、将来の製品のために予約され
ているピンである。これらのピンは、接続しないで残し
ておかねばならない。これらのピンは、VDD、GND、
相互、または他のあらゆる信号と接続してはならない。
【0999】A.17.1.2 「VDD、及びGNDピ
ン] 当然理解されるように、全てのVDD及びGNDピンは該
当する電源に接続されなければならない。全てのVDD及
びGNDピンが正しく使用されていなければ、デバイス
は正しく作動しない。
【1000】A.17.1.3 [正常作動のためのテ
ストピンの接続] 時間デコーダの9つのピンは、内部テスト用として予約
済みである。
【1001】
【表139】 A.17.1.4 [正常作動のためのJTAGピン] セクションA.8.1参照。
【1002】
【表140】
【1003】
【表141】
【1004】
【表142】
【1005】
【表143】
【1006】
【表144】
【1007】
【表145】
【1008】
【表146】
【1009】
【表147】
【1010】
【表148】 セクションA.18 「時間デコーダオペレーション」 A.18.1 「データ入力」 時間デコーダの入力データポートは9ビット幅のデータ
ワードを持つ標準のトークンポートである。ほとんどの
応用例において、これは空間デコーダの出力トークンポ
ートに直接接続される。このインターフェースの電気的
行為に関する詳細な情報については、セクションA.4
を参照せよ。
【1011】A.18.2 「自動形成」 符号化されたビデオピクチャフォーマットに関するパラ
メーターは、空間デコーダによって発生されるトークン
により、時間デコーダ内のレジスタに自動的にロードさ
れる。
【1012】
【表149】 A.18.3 「手動形成」 ユーザーは(マイクロプロセッサインターフェースを介
して)アプリケーション依存要素を形成しなければなら
ない。
【1013】A.18.3.1 「いつ形成するか」 データ処理が行われていない時にのみ、時間デコーダを
形成すべきである。これはリセットが解除された後のデ
ィフォルトステートである。チップアクセスレジスタに
1を書き込むことにより、時間デコーダを停止して再形
成できる。形成が完了した後、チップアクセスに0を書
き込まねばならない。
【1014】DRAMインターフェースをいつ形成する
かに関する詳細は、セクションA.5.3を参照せよ。
【1015】A.18.3.2 「DRAMインターフ
ェース」 DRAMインターフェースのタイミングは予測的に符号
化されたビデオ(例えばH.162またはMPEG)を
解読できるようになる前に形成されなければならない。
セクションA.5「DRAMインターフェース」を参照
せよ。
【1016】
【表150】
【1017】
【表151】 A.18.3.3 「ピクチャバッファレジスタ数」 ピクチャバッファポインタ(18ビット)及び成分オフ
セット(17ビット)レジスタはバイトアドレスではな
く、ブロック(8×8バイト)アドレスを明記する。
【1018】A.18.3.4 「ピクチャバッファ記
憶割当」 予測的に符号化されたビデオ(H.261もしくはMP
EG)を解読するため、時間デコーダは2つのピクチャ
バッファを処理しなければならない。これらのバッファ
が如何に使用されるかに関する詳細については、セクシ
ョンA.18.4及びA.18.4.4を参照せよ。
【1019】ユーザーは(他のピクチャバッファと重ね
ることなく)必要なビデオフォーマットの単一ピクチャ
を記憶するために、ピクチャバッファポインタ(pic
ture buffer 0及びpicture bu
ffer 1)の各々の上に充分な記憶があることを確
かめねばならない。通常、ピクチャバッファポインタの
1つが0(つまり記憶の底部)に設定され、他の1つが
記憶スペースの中間を指すように設定される。
【1020】A.18.3.4.1 「MPEGもしく
はH.261用の通常の形成」 H.261及びMPEGは両者共、異なる色成分間の比
4:1:1(つまり、いずれかのクロミナンス成分にあ
るピクセルの4倍の輝度ピクセルがある)を使用する。
【1021】A.3.5.1、「成分特定数」に文書化
されているように、成分0は輝度成分であり、成分1及
び2はクロミナンスである。
【1022】成分オフセットレジスタの形成例は、成分
0がピクチャバッファポインタにおいて始まるように、
component offset 0を0に設定す
る。同様に、component offset 1は
ピクチャバッファサイズの4/6に設定し、compo
nent offset 2はピクチャバッファサイズ
の5/6に設定することができよう。
【1023】A.18.3.5 「ピクチャシーケンス
再整理(re-ordering)」 MPEGは3つの異なるピクチャタイプを使用する:イ
ントラ(I)、予想された(P)、及び二方向的に補間
された(B)。Bピクチャは2つのピクチャ:未来から
のものと過去からのものからの予想に基づいている。ピ
クチャの順序は、Bピクチャの解読が求められる前に、
I及びPピクチャが符号化されたデータから解読される
ように、エンコーダで修正される。
【1024】ピクチャシーケンスはこれらのピクチャが
表示される前に修正されなければならない。時間デコー
ダは(レジスタMPEG reordering=1に
設定することによりより)このピクチャ再整理を提供す
ることができる。あるいは、ユーザーは彼の表示インタ
ーフェース機能の一部としてピクチャ再整理を実行した
いと望むかもしれない。ピクチャ再整理を提供するよう
に時間デコーダを形成することにより、解読され得るビ
デオ解像度を低減させるかもしれない。A.18.5を
参照せよ。
【1025】A.18.4 「予測形成」 H.261デコーディング及びMPEGデコーディング
の予測形成要件は全く異なっている。コーディングスタ
ンダードトークンは時間デコーダが異なる基準の予測要
件を収容するように自動的に形成する。
【1026】A.18.4.1 「JPEGオペレーシ
ョン」 JPEGオペレーション用に形成されると、JPEGは
時間デコーディングを必要としないので、予測は行われ
ない。
【1027】A.18.4.2 「H.261オペレー
ション」 H.261では、予測はデコーディングされたピクチャ
からのみ行われる。動きベクトルは整数ピクセルの精度
に条件として指定されるだけである。エンコーダは低域
フィルターが予測結果に適用されるように指定すること
ができる。
【1028】各ピクチャがデコーディングされるにつれ
て、それは次のピクチャをデコーディングする際に使用
できるように、オフチップDRAM内のピクチャバッフ
ァに書き込まれる。デコーディングされたピクチャはオ
フチップDRAMに書き込まれるにつれて、時間デコー
ダの出力に現れる。
【1029】予測に関する詳細及び関係する演算オペレ
ーションについては、読出し装置はH.261スタンダ
ードに向けられる。本発明の時間デコーダはH.261
の要件を完全に遵守している。
【1030】A.18.4.3 MPEGオペレーショ
ン(再整理を伴わない) 時間デコーダのオペレーションは3つの異なるMPEG
ピクチャタイプ(I、P、B)の各々に対して変化す
る。Iピクチャは時間デコーダによる更なるデコーディ
ングを必要としないが、後にP及びBピクチャをデコー
ディングする際に使用されるためにピクチャバッファ
(フレーム記憶装置)に記憶されなければならない。
【1031】Pピクチャのデコーディングには、以前に
デコーディングされたPもしくはIピクチャからの予測
を形成する必要がある。解読されたPピクチャはP及び
Bピクチャを解読する際に使用するため、ピクチャバッ
ファの中に記憶される。MPEGは動きベクトルが半ピ
クセルの精度に指定されるようにする。オンチップフィ
ルタはこの半ピクセル精度を支持するための補間を提供
する。
【1032】Bピクチャは両方のピクチャバッファから
の予測を必要とすることができる。Pピクチャと同様
に、半ピクセル動きベクトル解像度精度はピクチャ情報
のオンチップ補間を要求する。Bピクチャはオフチップ
バッファには記憶されない。それらは一時的なものにす
ぎない。
【1033】全てのピクチャはそれらの符号が解読され
るにつれて、時間デコーダの出力ポートに現れる。従っ
て、ピクチャシーケンスは符号化されたMPEGデータ
におけるものと同じである(図94の上位部分を参
照)。
【1034】予測に関する詳細及び関係する演算オペレ
ーションについては、提案されているMPEGスタンダ
ードの草案を参照せよ。本発明の時間デコーダによりこ
れらの要件が満たされる。
【1035】A.18.4.4 「MPEGオペレーシ
ョン(再整理を伴う)」 ピクチャ再整理を伴うMPEGオペレーション(MPE
G reordering=1)のために形成される
と、予測形成オペレーションは上述のセクションA.1
8.4.3におけるのと同様である。しかしながら、ピ
クチャシーケンスを再整理するために付加的なデータ伝
送が実施される。
【1036】Bピクチャデコーディングはセクション
A.18.4.3において記した通りである。しかしな
がら、I及びPピクチャはデコーディングされた時に出
力されない。その代わりに、(前述のように)オフチッ
プバッファに書き込まれ、次のIもしくはPピクチャが
デコーディングのために届いた時にのみ読み出される。 A.18.4.4.1 「デコーダスタートアップ特
性」 次のP(もしくはI)ピクチャのデコーディングがスタ
ートされるまで、最初のIピクチャの出力が遅らされ
る。このことはビデオデコーダのスタートアップ特性を
概算する時に考慮されなければならない。
【1037】A.18.4.4.2 「デコーダ停止特
性」 時間デコーダは前のピクチャをそのオフチップバッファ
(フレーム記憶装置)からフラッシュするために、次の
PもしくはIピクチャに依存する。これはビデオシーケ
ンスの終了時、及び新しいビデオシーケンスをスタート
する時に結果が現れる。空間デコーダは最後のP(もし
くはI)ピクチャをフラッシュするために、ビデオシー
ケンスの終了時に「偽の」I/Pピクチャを作り出すた
めの便宜を提供する。しかしながら、この「偽の」ピク
チャは次のビデオシーケンスが始まるとフラッシュされ
る。
【1038】空間デコーダはこの「偽の」ピクチャを抑
制するためのオプションを提供する。これは、新ビデオ
シーケンスが旧シーケンスの完了後直ちにデコーダに供
給されることが知られている場合に有用である。この新
シーケンス内の最初のピクチャは前のシーケンスの最後
のピクチャをフラッシュすることになる。
【1039】A.18.5 「ビデオ解像度」 MPEGをデコーディングする時に、時間デコーダが支
持することができるビデオ解像度は、そのDRAMイン
ターフェースのメモリー帯域幅により制限される。MP
EGにとって、2つの場合を考慮する必要がある:MP
EGピクチャ再整理を伴う場合と、伴わない場合であ
る。
【1040】セクションA.18.5.2及びA.1
8.5.3はMPEG規約の現行の草案により要求され
る最悪の場合の要件について論じている。より低いメモ
リー帯域幅の要件を持つMPEGのサブセットが企図さ
れる。例えば、整数解像度動きベクトルだけを用いて、
もしくはその代わりに、Bピクチャを使用せずに、メモ
リー帯域幅の要件を重大に低減させる。該かるサブセッ
トについての分析はここでは行わない。
【1041】A.18.5.1 [DRAMインターフ
ェースの特性] DRAMインターフェースを横切ってデータを伝送する
ために取られるサイクル数は要因数に依存する: ・使用されるDRAMに適合させるためのDRAMイン
ターフェースのタイミング形成 ・データバス幅(8、16または32ビット) ・データ伝送タイプ: ・8×8ブロックの読出しまたは書込み ・半ピクセル精度に対する予測のため ・整数ピクセル精度に対する予測のため DRAMインターフェースの詳細な形成に関する情報に
関しては、セクションA.5、「DRAMインターフェ
ース」を参照せよ。
【1042】表152はデータ伝送の各タイプのために
幾つのDRAMインターフェース「サイクル」が必要で
あるかを示している。
【1043】
【表152】 表154は表152の数字を取り、それらを「典型的
な」DRAMのために評価する。この例では、27MH
zクロックであると仮定する。ここでは27MHzを使
用するが、それに制限するものではないことを認識すべ
きである。アクセススタートには11ティック(102
ns)が必要であり、データ伝送には6ティック(56
ns)が必要である。
【1044】A.18.5.2 「再整理を伴わないM
PEG解像度」 ピークメモリー帯域幅のロードはBピクチャをデコーデ
ィングする時に発生する。「最悪の場合の」シナリオで
は、Bフレームは両方のピクチャバッファからの予測か
ら形成され、全ての予測は半ピクセル精度に対するもの
である。
【1045】
【表153】 表153からの数字例を用いれば、(32ビット幅のイ
ンターフェースを介して)2つの正確な半ピクセル精度
予測のために必要なデータを読むために、DRAMイン
ターフェース3815nsが必要であることが解る。時
間デコーダが支持することができる解像度は、1ピクチ
ャ時間内に遂行できるこれらの予測数によって決定され
る。本例では、時間デコーダは1つの33msピクチャ
周期に(例えば、30Hzビデオのために)8737の
8×8ブロックを処理することができる。
【1046】必要なビデオフォーマットが704×48
0であれば、(4:2:0のクロマサンプリングを考慮
すれば)各ピクチャは7920の8×8ブロックを包含
する。このビデオフォーマットは(DRAMリフレッシ
ュ等の他の要因を考慮に入れる前に)利用できるDRA
Mインターフェース帯域幅の約91%を消費する。従っ
て、時間デコーダはこのビデオフォーマットを支持する
ことができる。
【1047】A.18.5.3 「再整理を伴うMPE
G解像度」 MPEGピクチャ再整理を用いれば、Pピクチャがデコ
ーディングされている間に、最悪の場合のシナリオと遭
遇する。この時間の間に、DRAMインターフェース上
に3回のロードが行われる: ・形態予測 ・結果を書き戻す ・以前のPまたはIピクチャを読み出す。
【1048】表152からの数字例を用いて、32ビッ
ト幅のインターフェースが利用できる場合に、これら各
々の仕事のために必要な回数を見い出すことができる。
予測形成には1907ns/nが必要である一方、読出
し及び書込みには各々991nsが必要であり、全体で
3889nsを必要とする。これは時間デコーダが33
ms周期の間に8485の8×8ブロックを処理できる
ようにする。
【1049】従って、704×480ビデオを処理する
には、(リフレッシュを無視して)利用できるメモリー
帯域幅のほぼ93%を使用することになる。
【1050】A.18.5.4 「H.261」 H.261は30Hzまでのピクチャ率でCIF(35
2×288)とQCIF(172×144)の2つのピ
クチャフォーマットを支持するだけである。CIFピク
チャは2376の8×8ブロックを包含する。唯一必要
なメモリーオペレーションは8×8ブロックの配線と、
整数精度動きベクトルでの予測形成である。
【1051】8ビット幅のメモリーインターフェースの
ための表153からの数字例を用いて、各ブロックに書
き込むために3657nsを必要とする一方、1ブロッ
クの予測形成には3963ns/nが必要であり、全体
でブロック毎に7620nsが必要であることが解る。
1つのCIFピクチャのための処理時間は約18msで
あり、30Hzのビデオを支持するために必要な33m
sよりかなり少なくなっている。
【1052】A.18.5.5 「JPEG」 支持できるJPEGビデオの解像度は発明の空間デコー
ダもしくは表示インターフェースの能力により決定され
る。時間デコーダはJPEG解像度に影響を及ぼさな
い。
【1053】A.18.6 「イベント及びエラー」 A.18.6.1 「チップストップ」 本発明では、チップアクセスに1を書き込むと、時間デ
コーダがオペレーションを停止して再形成ができるよう
にすることを求める。一度受け入れられると、通常時間
デコーダは現在のビデオシーケンスのエンドに達するま
でオペレーションを続ける。その後、時間デコーダは停
止される。
【1054】チップが停止すると、チップ停止イベント
が発生する。chip stopped mask=1
であれば、割り込みが発生する。
【1055】A.18.6.2 「カウントエラー」 本発明の時間デコーダは誤差データに対する予測を加え
るアダーを具備する。誤差データバイト数と予測データ
バイト数との間に差がある場合、カウントエラーイベン
トが発生する。
【1056】count error mask=1の
場合、割り込みが発生し、予測形成が停止する。
【1057】count error eventに1
を書き込むと、イベントをクリアして時間デコーダが進
めるようにする。その後エラーを発生させたDATAト
ークンが続く。しかしながら、エラーを発生させたDA
TAトークンは正しい長さ(46バイト)のものではな
いであろう。これは更なる問題を容易に発生させるであ
ろう。このように、カウントエラーは重大なハードウェ
アエラーが発生した場合にのみ生じるべきである。
【1058】セクションA.19 「時間デコーダの出
力への接続」 時間デコーダの出力は8ビット幅のデータワードを持つ
標準のトークンポートである。インターフェースの電気
的行為に関するより詳細な情報についてはセクション
A.4を参照せよ。
【1059】時間デコーダの出力に存在するトークンは
使用されるコーディングスタンダードに依存し、MPE
Gの場合には、ピクチャが再整理されるか否かによるで
あろう。本セクションは時間デコーダの出力においてど
のトークンが利用できるか、またその出力を表示するた
めの回路を設計する際にどれが最も有用であるかを特定
する。他のトークンも存在するであろうが、出力を表示
する必要がないので、それらに関してはここでは論じな
い。
【1060】本セクションは以下の点を重点的に取り上
げて論じる: ・シーケンスのスタート及びエンドを如何にして特定で
きるか、 ・ピクチャのスタート及びエンドを如何にして特定でき
るか、 ・ピクチャをいつ表示するかを如何にして特定するか、 ・ピクチャデータを表示のどこに置くべきかを如何にし
て特定するか。
【1061】A.19.1 「JPEG出力」 JPEGデータのデコーディング時に、時間デコーダに
より出力されるトークンシーケンスは、空間デコーダの
出力において見られるものと同一である。JPEGは時
間デコーダによる処理を必要としないことを思いだして
ほしい。しかしながら、時間デコーダは(空間デコーダ
におけるIDCTの限定された算術精度から生じる)負
のバリューのために、イントラデータトークンを調べ、
それらを0に置き換える。
【1062】JPEGオペレーション中に観察される出
力シーケンスについての詳細な議論はセクションA.1
6を参照せよ。
【1063】A.19.2 「H.261出力」 A.19.2.1 「セッションのスタートとエンド」 H.261はビデオデータ内のビデオストリームのスタ
ート及びエンドを合図しない。それにもかかわらず、こ
れはアプリケーションによって暗示される。例えば、電
気通信が接続されるとシーケンスが始まり、ラインが遮
断されると終了する。このように、ビデオシンタックス
において最も高いレイヤは「ピクチャレイヤ」である。
【1064】本発明による空間デコーダのスタートコー
ド検出器は、最初のピクチャスタートの前に、シーケン
ススタートとコーディングスタンダードトークンが自動
的に挿入されるようにする。セクションA.11.7.
3及びA.11.7.4を参照せよ。
【1065】H.261セッションの終わりに(例え
ば、ラインが遮断された時に)、ユーザーは符号化デー
タの終了後、フラッシュトークンを挿入しなければなら
ない。これには多くの効果がある(A.31.1を参
照): ・それは最後のピクチャの終わりを合図するために、ピ
クチャエンドが発せられることを保証する。
【1066】・それは符号化データの終わりがデコーダ
を通して押されることを保証する。 A.19.2.2 「ピクチャの取得」 各ピクチャはシンタックスレイヤと称されるエレメント
の階層から成る。H.261をデコーディングする時、
時間デコーダの出力におけるトークンのシーケンスはこ
の構造を反映する。
【1067】A.19.2.1 「ピクチャレイヤ」 各ピクチャの前にピクチャスタートトークンが置かれ、
ピクチャのすぐ後にピクチャエンドトークンが続く。
H.261は当然ピクチャエンドを含まない。このトー
クンは空間デコーダのスタートコード検出器により自動
的に挿入される。ピクチャスタートトークンの後に、時
間標準トークン及びピクチャタイプトークンが続くであ
ろう。時間標準トークンは、ピクチャがいつ表示される
べきかを指示する10ビット数を支持し(その内5LS
BだけがH.261において使用される)。H.261
エンコーダは(低いデータ率を達成するために)シーケ
ンスからピクチャを省略することができるので、この点
は表示システムによって研究されるべきである。ピクチ
ャの省略は、連続するピクチャ間の1つ以上の分だけ増
加する時間基準によって検出され得る。
【1068】次に、ピクチャタイプトークンはピクチャ
フォーマットに関する情報を有する。表示システムはこ
の情報を調べ、CIFもしくはQCIFピクチャがデコ
ーディングされているか否かを検出することができる。
しかしながら、ハフマンデコーダ内のレジスタを調べる
ことにより、ピクチャフォーマットに関する情報も利用
できる。 <Xref:ハフマンデコーダセクション> A.19.2.2.2 「ブロックレイヤのグループ」 各H.261ピクチャは多数の「ブロックグループ」に
より構成される。その各々の前に、(H.261のグル
ープNo.とグループスタートコードから引き出され
た)スライススタートトークンが置かれる。このトーク
ンは表示のどこにブロックのグループを置くべきかを指
示する8ビット値を所有している。これはデータエラー
の後デコーダが再び同時性を持つ機会を提供する。更
に、それは、ピクチャを描写するために付加的な情報を
必要としないピクチャエリアがあれば、ブロックを飛び
越す機構をエンコーダに提供する。空間デコーダ及び時
間デコーダは各ピクチャが正しい数のブロックを含み、
それらのブロックが正しい位置にあることを確実にする
ため、既にこの情報を使用しているので、スライススタ
ートが時間デコーダの出力に達する時までに、その情報
は効果的に冗長となっている。こうして、ピクチャのス
タート以来出力されてきたブロック数を数えることによ
り、時間デコーダにより出力されるデータブロックをど
こに置くべきかを計算することが可能となる。
【1069】スライススタートにより支持される数は、
H.261のブロック数のグループより1つ少ない数で
ある(詳細な情報についてはH.261基準を参照せ
よ)。図103はCIF及びQCIFピクチャ内のH.
261ブロックグループの位置付けを示している。
【1070】注:本発明においては、図示したブロック
ナンバリングはスライススタートにより支持されるもの
と同じである。これはこれらのグループをナンバリング
するためのH.261規定とは異なる。
【1071】(各ブロックグループのスタートを示す)
スライススタートと最初のマクロブロックとの間に、他
のトークンがあってもよい。それらはピクチャデータを
表示する必要がないので、無視できる。
【1072】A.19.2.2.3 「マクロブロック
レイヤ」 ブロックの各グループ内のマクロブロックのシーケンス
はH.261により限定される。各マクロブロックの位
置を説明する特別なトークン情報はない。ユーザーは各
情報をどこに表示するかを決定するためにマクロブロッ
クシーケンスを通して数えなければならない。
【1073】図105はマクロブロックがブロックの各
グループに配置されるシーケンスを示している。
【1074】各マクロブロックは6個のデータトークン
を包含する。6個の各グループに含まれるデータトーク
ンのシーケンスはH.261のマクロブロック構造によ
り限定される。各データトークンは1つの色成分の8×
8ピクセルエリアのために正確に64データバイトを含
むべきである。色成分はデータトークン内の2ビットの
数の中に含まれる(セクションA.3.5.1参照)。
しかしながら、H.261内の色成分のシーケンスは限
定される。
【1075】データトークンの各グループの前には、動
きベクトル、量子化器スケール係数等に関する情報を伝
達する多くのトークンが置かれる。これらのトークンは
ピクチャが表示されるようにする必要がないので、無視
することができる。
【1076】各データトークンは8×8の1つの色成分
のために64データバイトを包含する。これらはラスタ
状態である。
【1077】A.19.3 「MPEG出力」 MPEGはそのシンタックスの中に多くのレイヤを含
む。これらはビデオシーケンスやピクチャグループ等の
概念を具体化する。
【1078】A.19.3.1 「MPEGシーケンス
レイヤ」 シーケンスは多重エントリポイント(シーケンススター
ト)を持つことができるが、1つだけの出口ポイント
(シーケンス・エンド)を持つべきである。MPEGシ
ーケンスヘッダコードが解読される時、空間デコーダは
コーディングスタンダードトークン及びそれに続くシー
ケンススタートトークンを生じさせる。
【1079】シーケンススタートの後、ビデオフォーマ
ット等を記述するシーケンスヘッダ情報の多くのトーク
ンがあるであろう。シーケンスヘッダにおいて合図され
る情報については草案のMPEGスタンダードを参照
し、このデータが如何にしてトークンに変換されるかに
関する情報については表3〜表11を参照せよ。ビデオ
フォーマットを記述するこの情報は、ハフマンデコーダ
内のレジスタにおいても利用できる。
【1080】このシーケンスヘッダ情報はMPEGシー
ケンス内において、もしそのシーケンスが数個のエント
リポイントを持っていれば、数回発生するかもしれな
い。
【1081】A.19.3.2 「ピクチャレイヤグル
ープ」 ピクチャのMPEGグループはシーケンススタート時点
で提供されるものに、異なるタイプの「エントリ」ポイ
ントを提供する。シーケンスヘッダはピクチャ/ビデオ
フォーマットに関する情報を提供する。従って、デコー
ダがシーケンスにおいて使用されるビデオフォーマット
の知識を持たない場合、シーケンススタートで開始しな
ければならない。しかしながら、一度ビデオフォーマッ
トがデコーダの中に構成されると、どのグループのピク
チャの位置であってもデコーディングを開始することが
できるようにするべきである。
【1082】MPEGはグループ内のピクチャ数を制限
しない。しかしながら、多くのアプリケーションにおい
て、1つのグループはランダムアクセスの道理的な粒度
を提供するので、約0.5秒に相当する。
【1083】ピクチャグループのスタートはグループス
タートトークンにより指示される。 グループスタートの後で提供されるヘッダ情報は2つの
有益なトークン:TIME CODE及びBROKEN
CLOSEDを含む。
【1084】TIME CODEはSMPTEタイムコ
ード情報のサブセットを所有する。これはビデオデコー
ダを他の信号に同期させる際に有用であるかもしれな
い。BROKEN CLOSEDはMPEGのclos
ed gapとbrokenlinkビットを所有す
る。ランダムアクセスの含意及び編集されたビデオシー
ケンスのデコーディングに関しては、セクションA.1
9.3.8を参照せよ。 A.19.3.3 ピクチャレイヤ 新しいピクチャのスタートはピクチャスタートトークン
により指示される。このトークンの後には、時間標準ト
ークン及びピクチャタイプトークンがある。時間デコー
ダがピクチャ再整理を提供するように構成されない場
合、一時的な基準情報が有用であるかもしれない。ピク
チャタイプの情報は、表示システムが特にオープンGO
PのスタートでBピクチャを処理したい場合に有用であ
るかもしれない(セクション A.19.3.8参
照)。
【1085】各ピクチャは多くのスライスで構成され
る。
【1086】A.19.3.4 「スライスレイヤ」 セクションA.19.2.2.2はH.261において
使用されるブロックグループについて論じている。MP
EGにおけるスライスは同様の機能を果たす。しかしな
がら、スライス構造は基準によって固定されない。スラ
イススタートトークンが所有する8ビット値は、MPE
Gが伝達する「スライス垂直位置」より1つ少ない値で
ある。スライスレイヤの説明に関しては、MPEGスタ
ンダード草案を参照せよ。
【1087】空間デコーダ及び時間デコーダは各ピクチ
ャが正しい数のブロックを正しい位置に含んでいること
を確実にするため、既にこの情報を使用しているので、
スライススタートが時間デコーダの出力に達する時まで
に、その情報は効果的に冗長となっている。こうして、
ピクチャのスタート以来出力されてきたブロック数を数
えることにより、時間デコーダにより出力されるデータ
ブロックをどこに置くべきかを計算することが可能とな
る。
【1088】MPEGピクチャ再整理を使用する効果に
関する議論については、セクションA.19.3.7を
参照せよ。
【1089】A.19.3.5 「マクロブロックレイ
ヤ」 各マクロブロックは6ブロックを含む。これらは(MP
EG規約の草案により明記されるように)ラスタ状態で
時間デコーダの出力に現れる。
【1090】A.19.3.6 「ブロックレイヤ」 各マクロブロックは6個のデータトークンを包含する。
6個の各グループに含まれるデータトークンのシーケン
スはMPEG規約草案(これはH.261のマクロブロ
ック構造と同じである)により限定される。各データト
ークンは1つの色成分の8×8ピクセルエリアのために
正確に64データバイトを含むべきである。色成分はデ
ータトークン内の2ビットの数の中に含まれる(A.
3.5.1参照)。しかしながら、MPEG内の色成分
のシーケンスは限定される。
【1091】データトークンの各グループの前には、動
きベクトル、量子化器スケール係数等に関する情報を伝
達する多くのトークンが置かれる。これらのトークンは
ピクチャが表示されるようにする必要がないので、無視
することができる。
【1092】A.19.3.7 「MPEGピクチャ再
整理の効果」 A.18.3.5において説明したように、時間デコー
ダはMPEGピクチャ再整理を提供する(MPEG r
eordering=1)ように構成することができ
る。データストリームにおける次のP/Iピクチャが時
間デコーダによりデコーディングがスタートされるま
で、P及びIピクチャの出力は遅らされる。時間デコー
ダの出力時に、新たにデコーディングされたP/Iピク
チャのデータトークンは、旧P/Iピクチャからのデー
タトークンで置き換えられる。
【1093】P/Iピクチャを再整理する時、ピクチャ
がオフチップピクチャバッファに書き込まれるにつれ
て、ピクチャのピクチャスタート、時間標準、及びピク
チャタイプのトークンが一時的にオンチップに記憶され
る。ピクチャが表示のために読み出されると、これらの
記憶されたトークンが検索される。従って、再整理され
たP/Iピクチャはピクチャスタート、時間標準、及び
ピクチャタイプのための正しいバリューを持っている。
【1094】ピクチャレイヤの下の他の全てのトークン
はリオーダされない。再整理されたP/Iピクチャが表
示のために読み出されるにつれて、それはたったいまデ
コーディングされたばかりのピクチャの低い方のレベル
の非データトークンを拾い上げる。このように、これら
のサブピクチャレイヤのトークンは無視されるべきであ
る。
【1095】A.19.3.8 「ランダムアクセス及
び編集済みシーケンス」 空間デコーダは編集済みMPEGビデオデータ及び、M
PEGビデオデータへのランダムアクセス後の正しいビ
デオデコーディングを助ける設備を提供する。 A.19.3.8.1 「オープンGOP」 ピクチャグループ(GOP)は前のGOPの中のPピク
チャから予測されるBピクチャでスタートすることがで
きる。これを「オープンGOP」と呼ぶ。図116はこ
れを図示している。ピクチャ17及び18は第2のGO
PのスタートにあるBピクチャである。GOPが「開か
れる」と、エンコーダはPピクチャ16及びIピクチャ
19からの予測を用いて、これら2つのピクチャを符号
化することができる。あるいはその代わりに、エンコー
ダはIピクチャ19からのみの予測を用いるように制限
することができるであろう。この場合、第2のGOPは
「閉鎖GOP」と呼ばれる。
【1096】デコーダが最初のGOPにおいてビデオデ
コーディングをスタートすると、そのGOPは既にPピ
クチャ16をデコーディングしているので、そのGOP
がたとえ開かれていても、第2のGOPに遭遇しても何
の問題も起こらないであろう。しかしながら、デコーダ
がランダムアクセスを行い、第2のGOPにおいてデコ
ーディングをスタートする場合、それらがP16に依存
していれば(つまり、GOPが開かれていれば)、それ
はB17及びB18をデコーディングできない。
【1097】本発明の空間デコーダがリセットに続く最
初のGOPとしてオープンGOPに遭遇するか、あるい
はフラッシュトークンを受け取れば、オープンGOPへ
のランダムアクセスが発生したと仮定される。この場
合、ハフマンデコーダは通常の方法でBピクチャのため
にデータを消費するであろう。しかしながら、それはI
ピクチャから離れた(0、0)動きベクトルで予測され
るBピクチャを出力するであろう。その結果、(上記の
例における)ピクチャB17及びB18がI19と同一
になるであろう。
【1098】この行為はMPEGのVBV規則の正しい
維持を確実にする。更に、それはBピクチャが他のデー
タチャネルにより予期される出力ストリーム内の位置に
おける出力の中に存在することを確実にする。例えば、
MPEGシステムレイヤはオーディオデータに関する表
示時間情報をビデオデータに提供する。ビデオ表示時間
のスタンプはGOPにおける最初の表示ピクチャ、つま
り時間基準0のピクチャを指示する。上記の例では、第
2のGOPに対するランダムアクセスの後、最初に表示
されるピクチャはB17である。
【1099】ブロークン・クローズドトークンはMPE
G closed gopビットを所有する。従って、
時間デコーダの出力において、Bピクチャの出力が本物
であるか、あるいは「代用品」が空間デコーダによって
導入されていたか否かを判断することが可能である。あ
るアプリケーションはこれらの「代用品」のピクチャが
存在する時、特別な処置を講ずることを希望するかもし
れない。
【1100】A.19.3.8.2 編集済みビデオ アプリケーションがMPEGビデオシーケンスを編集す
る場合、それは2つのGOP間の関係を破壊するかもし
れない。編集後のGOPがオープンGOPであれば、そ
れはGOPの始まりにおいてBピクチャを正しくデコー
ディングすることはもはやできないであろう。MPEG
データを編集するアプリケーションは、編集後のGOP
においてbroken linkビットを設定し、デコ
ーダにこれらのBピクチャをデコーディングできないこ
とを指示することができる。
【1101】空間デコーダが破壊されたリンクを持つG
OPに遭遇した場合、ハフマンデコーダは通常の方法で
Bピクチャのためにデータをデコーディングするであろ
う。しかしながら、それはIピクチャから離れた(0、
0)動きベクトルで予測されたBピクチャを出力するで
あろう。その結果、(上記の例における)ピクチャB1
7及びB18はI19と同一になるであろう。
【1102】ブロークン・クローズドトークンはMPE
Gのbroken linkビットを所有する。従っ
て、時間デコーダの出力において、Bピクチャの出力が
本物であるか、あるいは空間デコーダによって導入され
ていた「代用品」であるか否かを判断することが可能で
ある。あるアプリケーションはこれらの「代用品」のピ
クチャが存在する時、特別な処置を講ずることを希望す
るかもしれない。 セクションA.20 「後書込みDRAMインターフェ
ース」 インターフェースは2つの方法で構成できる:インター
フェースの詳細なチアミングは種々の異なるDRAMタ
イプを収容するように構成することができる。
【1103】DRAMインターフェースの「幅」は費用
/性能のトレードオフを提供するように構成することが
できる。
【1104】
【表154】
【1105】
【表155】
【1106】
【表156】
【1107】
【表157】
【1108】
【表158】
【1109】
【表159】 A.20.1 「インターフェースタイミング(tick)」 本発明では、DRAMインターフェースタイミングは装
置の入力クロック率の4倍で動くクロック(decod
er clock)から引き出される。このクロックは
オンチップPLLによって作られる。
【1110】簡潔のために、この高速クロックの周期を
ティックと称する。
【1111】A.20.2 「インターフェースオペレ
ーション」」 インターフェースはDRAMの高速ページモードを使用
する。3つの異なるタイプのアクセスが支持される: ・読出し ・書込み ・リフレッシュ 各々の読出しもしくは書込みアクセスは1つのDRAM
ページアドレスにおいて1〜64バイトのバーストを伝
送する。読出し及び書込み伝送は1つのアクセスにおい
て混合されない。各々の連続アクセスは新しいDRAM
ページへのランダムアクセスとして処理される。
【1112】A.20.3 「アクセス構造」 各アクセスは2つの部分で構成される: ・アクセススタート ・データ伝送 各アクセスはアクセススタートによって開始され、その
後1つかそれ以上のデータ伝送サイクルが続く。アクセ
ススタート及びデータ伝送サイクル両方の読出し、書込
み及びリフレッシュの変形がある。
【1113】1アクセスにおける最後のデータ伝送の終
わりに、インターフェースはディフォルト状態になり、
新しいアクセスがスタートする準備ができるまでこの状
態のままである。最後のアクセスが完了した時、新しい
アクセスのスタート準備ができると、その新しいアクセ
スは直ちにスタートする。
【1114】A.20.3.1 「アクセススタート」 アクセススタートは読出しまたは書込み伝送用にページ
アドレスを提供し、幾つかの初期信号状態を設定する。
3つの異なるアクセススタートがある: ・リード・スタート ・ライト・スタート ・リフレッシュ・スタート 各々の場合において、/RAS/のタイミング及びロー
アドレスはレジスタRAS fallingとpage
start lengthによって制御される。/O
E/及びDRAM data[31:0]の状態は、以
前のデータ伝送の終了時から/RAS/になるまで保持
される。3つの異なるタイプのアクセススタートは、/
RAS/になる時に/OE/及びDRAM data
[31:0]を駆動させる方法が異なるだけである。図
118を参照せよ。
【1115】
【表160】 A.20.3.2 「データ伝送」 データ伝送サイクルには3つの異なるタイプがある: ・高速ページリードサイクル ・高速ページレイトライトサイクル ・リフレッシュサイクル リフレッシュスタートの次には1つのリフレッシュサイ
クルだけが続く。リード(またはライト)スタートの次
には、1つかそれ以上の高速ページリード(またはライ
ト)サイクルが続く。
【1116】リードサイクルスタートにおいて、CAS
がハイとされ、新しいカラムアドレスが駆動される。
【1117】レイトライトサイクルが使用される。/W
E/は/CAS/の後1ティックだけローとされる。出
力データはアドレスの後1ティック駆動される。
【1118】/RAS/の前の/CAS/として、リフ
レッシュサイクルがリフレッシュサイクルスタートによ
り始められ、リフレッシュサイクル中は如何なるインタ
ーフェース信号活動もない。リフレッシュサイクルの目
的はDRAMが必要とする最低の/RAS/低周期を満
たすことである。
【1119】A.20.3.3 「インターフェースデ
ィフォルト状態」 インターフェース信号はアクセスの終了時にディフォル
ト状態に入る: ・/RAS/、/CAS/、及び/WE/は高い ・データ及び/OE/はそれ以前の状態のままである ・addrは安定したままである A.20.4 「データバス幅」 2ビットのレジスタDRAM data widthは
DRAMインターフェースのデータ通路の幅が構成され
るようにする。これは小さなピクチャフォーマットで作
業をする時、DRAM費用を最小にする。
【1120】
【表161】 A.20.5 「アドレスビット」 オンチップの24ビットのアドレスが作られる。このア
ドレスがロー及びカラムアドレスを形成するためどのよ
うに使用されるかは、データバス幅及びローアドレスの
ために選択されるビット数により異なる。ある構成では
内部のアドレスビットの総ての使用を許さない(従っ
て、「隠れビット」が作られる)。
【1121】ローアドレスはアドレスの中間部分から引
き出される。これはDRAMが自然にリフレッシュされ
る率を最大にする。
【1122】A.20.5.1 「低オーダーのカラム
アドレスビット」 64バイトまでの高速ページモード伝送用のアドレスを
提供するために、最も重要でない4〜6ビットのカラム
アドレスが使用される。これらの伝送を制御するために
必要なアドレスビット数はデータバスの幅により異な
る。(A.20.4を参照) A.20.5.2 「ローアドレスビット」 ローアドレスを提供するため24ビットの内部アドレス
の中間セクションから取られるビット数は、レジスタr
ow address bitsによって形成される。
【1123】
【表162】 使用されるローアドレスの幅は使用されるDRAMのタ
イプ、及びローアドレスのMSBがDRAMの多重バン
クにアクセスするためのデコーディングされたオフチッ
プであるか否かにより異なる。
【1124】注:ローアドレスは内部アドレスの中間か
ら引き出される。ローアドレスのあるビットがDRAM
バンクを選択するためにデコーディングされる場合、こ
れらの「バンクセレクトビット」の全ての可能なバリュ
ーがDRAMバンクを選択しなければならない。そうで
なければ、アドレス空間に空孔が残されることになる。
【1125】
【表163】 A.20.6 「DRAMインターフェース可能化(ena
ble)」 DRAMインターフェース上の全ての出力信号を高イン
ピーダンスにするには2通りの方法がある。DRAM
enableレジスタ及びDRAM enable信号
である。レジスタ及び信号共DRAMインターフェース
が操作するためロジック1でなければならない。いずれ
かが低ければ、インターフェースが高インピーダンスに
され、インターフェースを介してのデータ伝送が停止さ
れる。
【1126】DRAMインターフェースを高インピーダ
ンスにもっていく能力は、空間デコーダ(もしくは時間
デコーダ)が使用されていない時に、他の装置が空間デ
コーダ(もしくは時間デコーダ)によって制御されるD
RAMをテストまたは使用できるようにするために提供
され、他の装置が通常のオペレーション中にメモリーを
共有できるようにするためではない。
【1127】A.20.7 「リフレッシュ」 レジスタno refreshに書き込むことにより不
能化されない限り、DRAMインターフェースはレジス
タrefresh intervalにより決定される
間隔で、/RAS/リフレッシュサイクルの前の/CA
S/を使用して、DRAMを自動的にレフレッシュす
る。
【1128】refresh intervalのバリ
ューは16decoder clockサイクルの期間
におけるリフレッシュサイクル間の間隔を指定する。1
〜255の範囲のバリューを選択することができる。バ
リュー0はリセット後自動的にロードされ、(一度イネ
ーブルとされると)有効なリフレッシュ間隔が形成され
るまで、DRAMインターフェースが連続してリフレッ
シュサイクルを実行するように強制する。refres
h intervalが各リセット後一度だけ形成され
るようにすることが薦められる。
【1129】A.20.8 「信号強度」 DRAMインターフェースの出力の駆動力は3ビットレ
ジスタ/CAS/ strength、/RAS/ s
trength、addr strengthを用い
て、ユーザーにより形成される。この3ビットバリュー
のMSBは高速もしくは低速のエッジ率のいずれかを選
択する。2つの重要性の低いビットが異なるロードキャ
パシタンスのための出力を形成する。
【1130】リセット後のディフォルト強度は6であ
り、12pFでロードされる場合、GNDとVDD間の駆
動信号に対しておよそ10nsを取る出力を形成する。
【1131】
【表164】 およそ駆動中のロードのために出力が形成される時、そ
れは表168〜表169に明記されるAC電気特性を満
たすであろう。適切に形成された場合、各出力はその負
荷にほぼ適合し、従って最小のオーバーシュートが信号
遷移後に発生するであろう。
【1132】A.20.9 「リセット後」 リセット後、DRAMインターフェース形成レジスタは
全てそれらのディフォルトバリューにリセットされる。
これらのディフォルト構成の内最も重要なものを以下に
記す: ・DRAMインターフェースが不能化(disable)され、
高インピーダンスに行くことが許される。
【1133】・リフレッシュ間隔が特別なバリュー0に
形成され、それはインターフェースが再可能化された
後、連続的なリフレッシュサイクルの実行を意味する。
【1134】・DRAMインターフェースはその最低速
の形成に設定される。
【1135】ほとんどのDRAMは電力が最初に印加さ
れ、その後通常オペレーションが可能となる前に多数の
リフレッシュサイクルが続いた後、100μs〜500
μs間の「休止」を要求する。
【1136】リセット後直ちに、DRAMインターフェ
ースはDRAM enable信号及びDRAM en
ableレジスタの両方が設定されるまで不活性化され
る。これらが設定された時、DRAMインターフェース
はDRAMインターフェースが形成されるまで、(使用
されるクロック周波数に応じて、ほぼ400ns毎に)
リフレッシュサイクルを実行するであろう。
【1137】ユーザーには、power up後の、ま
た必要な数のリフレッシュサイクルがデータ伝送を試み
る前に発生したことを確かめるため、DRAMインター
フェースを可能化した後充分な時間があるように、DR
AMの「休止」を確実にするための責任がある。
【1138】リセットを宣言する間は、DRAMインタ
ーフェースはDRAMをリフレッシュすることができな
い。しかしながら、デコーダチップが要求するリセット
タイムは、それらをリセットでき、その後DRAMの内
容が崩壊する前にDRAMインターフェースを再可能化
することができる程度に充分短くなっている。これはデ
バッギング中に必要とされるかもしれない。
【1139】
【表165】
【1140】
【表166】
【1141】
【表167】 A.20.10.1 「AC特性」
【1142】
【表168】
【1143】
【表169】 セクションB.1 「スタートコード検出器」 B.1.1 「展望」 図18において前述したように、スタートコード検出器
(SCD)は空間デコーダ上の最初のブロックである。
その基本的な目的は入力データストリームの中でMPE
G、JPEG及びH.261のスタートコードを検出
し、それらを関連トークンと置き換えることである。そ
れは更にマイクロプロセッサインターフェースを介して
入力データストリームへのユーザーアクセスを可能に
し、トークンデータストリームの予備フォーマッティン
グ及び「整頓」を遂行する。SCDは生のバイトデータ
もしくはトークンフォーマットに既に組み立てられたデ
ータのいずれかを受け取ることができることを思いだし
てほしい。
【1144】典型的に、スタートコードはMPEG、
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、スプリングトラップ、セットフラグを形成するた
めに使用される。更にそれらはシフトレジスタをバイパ
スし、変更されずに出力される。
【1145】B.1.2 「主ブロック」 スタートコード検出器のためのハードウェアは10個の
ステートマシーンで構成される。
【1146】B.1.2.1 「入力回路(scdip
c.sch.iplm.M)」 入力回路は3つのオペレーションモード:トークン、バ
イト及びマイクロプロセッサインターフェースを持つ。
これらのモードはデータが生のバイトストリーム(であ
るが2線式インターフェースを使用する)ものとして、
トークンストリームとして、あるいはupiを介したユ
ーザーによって入力されるようにする。全ての場合に、
入力回路は適切な場合にデータトークンヘッダを発生さ
せることにより、常に正しいデータトークンを出力す
る。upiモードへの/からの遷移はシステムクロック
に同期化され、upiはアクセスを得る前のデータスト
リームにおける安全ポイントまで待たされる。バイトモ
ードピンは入力回路がトークンモードであるか、もしく
はバイトモードであるかを決定する。更に、どの基準が
解読されているかに関するシステムに対する初期通知
(従ってコーディングスタンダードトークンが発せられ
る)が3モードのいずれかにおいて行われ得る。 B.1.2.2 「トークンデコーダ(scdipne
w.sch、scdipnem.M)」 このブロックは入力トークンをデコーディングし、他の
ブロックにコマンドを発する。
【1147】
【表170】 注:コーディングスタンダードにおける変化はSRがフ
ラッシュされた後、二線インターフェースを介して全て
のブロックに送られる。これは1つのデータストリーム
から別のデータストリームまでの変化がSCD中ずっと
正しいポイントで発生することを確実にする。この原則
はコーディングスタンダードにおける変化が新しいスト
リームの前に全チップを通して流れることができるよう
に、表示中ずっと適用される。
【1148】B.1.2.3 「JPEG(scdjp
eg.sch、scdjpegm.M)」 JPEGにおけるスタートコード(マーカー)は充分異
なっており、JPEGは全て自身に対するステートマシ
ーンを持っている。本発明において、このブロックがJ
PEGマーカー検出、長さのカウント/チェック、及び
データの除去の全てを処理する。検出されたJPEGマ
ーカーはスタートコード(v nottを持つ、後述の
テキスト参照)としてフラグ表示され、scdipne
wからのコマンドはオーバーライドされ、バイパスする
ように強いられる。オペレーションはコードで最も良く
説明される。 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
をフラッシュする)BYPASSコマンドを受け取る
と、連合するバイトはシフトレジスタにロードされな
い。その代わりに、「ラビッシュ(rubbish)」(タグ=
1)がシフトされ、他のシフトレジスタに保持されてい
るデータを出力させるように強いる。その後、ブロック
はこの「ラビッシュ」がトークン発生器に現れたことを
示す「フラッシュされた」信号を待つ。入力バイトは次
にトークン発生器に直接送られる。
【1149】B.1.2.5 「スタートコード検出器
(scdetect.sch、scdetm.M)」 このブロックは16もしくは24ビットのスタートコー
ド検出ロジック及び「有効な内容」検出ロジックにプロ
グラム可能な2つのシフトレジスタを含む。MPEGス
タートコードは完全な24ビットを要求するが、H.2
61は16ビットだけを要求する。
【1150】本発明では、第1のSRがデータ用であ
り、SRには(二線インターフェースの意味で)ギャッ
プもしくは失速はないが、第2のSRはデータSR内の
ビットが有効か否かを指示するタグを有するが、それら
が包含するビットはフラッシュされる一方、無効(ラビ
ッシュ)であってもよい。スタートコードが検出される
と、タグシフトレジスタのビットが検出器SRの内容を
無効にするために設定される。
【1151】スタートコードはSRの内容が全て有効に
ならない限り検出され得ない。非バイト整列スタートコ
ードが検出され、フラグ表示されてもよい。更に、スタ
ートコードが検出されると、重なっているスタートコー
ドが調べ上げられるまで非整列スタートコードは明確に
フラグ表示され得ない。この機能を果たすため、検出さ
れたスタートコード(バイトがそれに続く)の「バリュ
ー」がscinshiftとscdetectを通して
右に、そしてscoshiftシフトされる。別のスタ
ートコードを検出せずにscoshiftに達すると、
除去されたのは重なっているスタートコードであり、そ
れは有効なスタートコードとしてフラグ表示される。
【1152】B.1.2.6 「出力シフター(sco
shift.sch、scoshm.M)」 出力シフターの基本オペレーションはscdetect
から直列データ(及びタグ)を取り出し、それを15ビ
ットのワードに詰め、出力することである。他の機能は
以下の通りである: B.1.2.6.1 「データパディング」 出力は15ビットワードで構成されるが、入力は任意の
数のビットで構成できる。従って、フラッシュするため
には、最後のワードを15ビットまでにするためにビッ
トを追加する必要がある。これら追加ビットはパディン
グと呼ばれ、ハフマンブロックによって認識され除去さ
れねばならない。パディングは次のように定義される:
最後のデータビットの後、「ゼロ」が挿入され、15ビ
ットワードを作り上げるために充分な「もの」がそれに
続く。
【1153】パディングを含むデータワードはデータト
ークンの終わりであることを指示するために、低拡張ビ
ットで出力される。
【1154】B.1.2.6.2 「フラッシュの発
生」 本発明によれば、「フラッシュ」オペレーションの発生
は、全てのSRがフラッシュされる時を検出し、それを
入力シフターに合図することを含む。入力シフターによ
り挿入された「ラビッシュ」が出力シフターのエンドに
達し、出力シフターがそのパディングを完了すると、
「フラッシュされた」信号が発せられる。この「フラッ
シュされた」信号は入力シフターがバイパスモードに入
ることが安全である前に、トークン発生器を通過しなけ
ればならない。
【1155】B.1.2.6.3 「有効なスタートコ
ードのフラグ表示」 scdetectがスタートコードを発見したことを指
示すると、パディングが遂行され、現在のデータが出力
される。スタートコードバリュー(次のバイト)が検出
器を通してシフトされ、重なっているスタートコードを
除去する。別のスタートコードが検出されずに「バリュ
ー」が出力シフターに達すると、それは重ねられず、そ
のバリューはそれがスタートコードバリューであること
を示すフラグv not t(ValueNotTok
en)を付けて送られる。しかしながら、別のスタート
コードが(scdetectにより)検出される一方、
出力シフターがそのバリューを待っていると、オーバー
ラッピングエラーが発せられる。この場合、第1のバリ
ューは捨てられ、システムは第2のバリューを待つ。こ
のバリューも重ねることができ、こうして非重複スター
トコードが見つかるまで同じ手順が繰り返されるように
する。
【1156】B.1.2.6.4 「スタートコードの
後の整頓(tyding up)」 適切なスタートコードを検出し出力した後、(ラビッシ
ュでない)データが到着し始めると、新しいデータヘッ
ダが作られる。
【1157】B.1.2.7 「データストリーム発生
器(sctokrec.sch、sctokrem.
M)」 データストリーム発生器は、1つはバイパスされたトー
クンのためのscinshiftから、他の1つは詰め込
まれたデータ及びスタートコードのためのscoshi
ftからの二線インターフェース入力を持つ。2つのソ
ース間の切り替えは、(いずれかのソースからの)現在
のトークンが(到着した低拡張ビットを)完了した後に
のみ許される。
【1158】B.1.2.8 「数変換をスタートする
ためのスタートバリュー(scdromhw.sch、
schrom.M)」 スタートバリューをトークンに変換するプロセスは2段
階で行われる。このブロックは520の奇数の位置コー
ドを16のコーディングスタンダードの独立インデック
スに減少させるコーディングスタンダード依存問題点を
主に取り扱う。初期に述べたように、(JPEGのバリ
ューを含む)スタートバリューは他の全てのデータから
フラグ(value not token)によって識
別される。v not tが高ければ、このブロックは
4または8ビットバリューをコーディングスタンダード
に応じて、スタンダードから独立している4ビットのs
tart numberに変換し、未認識のスタートコ
ードをフラグ表示する。スタート数は次の通りである:
【1159】
【表171】
【1160】
【表172】
【1161】
【表173】 B.1.2.9 「トークン変換に対するスタート数
(sconvert.sch、sconverm.
M)」 変換の第2段階において上記スタート数(もしくはイン
デックス)がトークンに変換される。このブロックは更
に拡張及びユーザーデータを適切に捨てるトークン拡張
及びサーチモードを処理する。
【1162】サーチモードはランダムポイントでデータ
ストリームに入る手段である。サーチモードは8つのバ
リューの1つに設定できる: 0 : 通常のオペレーション - 次のスタートコー
ドを見つける。
【1163】1/2: システムレベルサーチは空間デ
コーダに関しては実施されない。
【1164】3 : シーケンス以上のものを探す 4 : グループ以上のものを探す 5 : ピクチャ以上のものを探す 6 : スライス以上のものを探す 7 : 次のスタートコードを探す 非ゼロサーチモードは所望のスタートコード(またはシ
ンタックスにおいてより高い)が検出されるまで、デー
タが捨てられるようにする。
【1165】このブロックは更にPICTURE及びS
LICEスタートトークンにトークン拡張を加える。
【1166】・ピクチャスタートはPICTURE N
UMBER、ピクチャの4ビットカウントで拡張され
る。
【1167】・スライススタートはsvp(スライス垂
直位置)で拡張される。これはスタートコードマイナス
1(MPEG、H.261)、及びマイナスOXDO
(JPEG)の「バリュー」である。
【1168】B.1.2.10 「データストリームフ
ォーマッティング(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 aft
er 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 aft
er 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 aft
er picture) 2a.output=FLUSH 2b.sap error=HIGH in picture=FALSE 3.output=SEQUENCE END orG
ROUP 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 aft
er picture) 2a.output=FLUSH 2b.sap error=HIGH 3.if(insert sequence star
t) 3a.output=CODING START 3b.output=standard 3c.output=SEQUENCE START insert sequence start=FAL
SE 4.output=PICTURE START in picture=TRUE break default:Just pass it thro
ugh セクションB.2 「ハフマンデコーダ及びパーザー(p
arser)」 B.2.1 「概論」 本セクションは本発明によるハフマンデコーダ及びパー
ザー回路について説明する。
【1169】図127はハフマンデコーダ及びパーザー
の高レベルのブロック線図を示す。明瞭さのために、本
線図では多くの信号及びバスを省略しており、特にデー
タが(図示された大きなループ内で)後方に送られる場
所が幾つかある。
【1170】本質的に、本発明のハフマンデコーダ及び
パーザーは、プログラム可能ステートマシーンによって
制御される(線図の底部に沿って示される)多くの専用
処理ブロックで構成される。
【1171】データは「インシフト」ブロックにより符
号化データバッファから受け取られる。この時点で、本
質的に遭遇するであろう2つのタイプの情報がある:デ
ータトークンが所有する符号化データ、及びスタートコ
ード検出器により各々のトークンと既に置き換えられて
いるスタードコードである。他のトークンと遭遇する可
能性もあるが、(データトークン以外の)全てのトーク
ンは同じ方法で処理される。トークン(スタートコー
ド)は(H.261、JPEGもしくはMPEGにおい
て)多数のデータがこれから符号化されるにつれて、特
別な場合として処理される。
【1172】本発明では、データトークンが所有する全
てのデータが直列形態(ビットバイビット)でハフマン
デコーダに伝送される。もちろん、このデータはハフマ
ン符号化されない多くのフィールドを含むが、固定長に
より符号化される。それにもかかわらず、このデータは
ハフマンデコーダに直列に送られる。ハフマン符号化デ
ータの場合、ハフマンデコーダは実際のハフマンコード
がインデックス数で置き換えられるデコーディングの第
1ステージだけを実行する。解読される特別なコード表
にNディストリクトハフマンコードがある場合、この
「ハフマンインデックス」の範囲は0〜N−1である。
更に、ハフマンデコーダは”no op”、つまり「ノ
ーオペレーション」モードを有し、それはハフマンデコ
ーダによる処理なしに、データまたはトークン情報に沿
って次のステージに送られるようにする。
【1173】データユニットインデックス部はテーブル
ルックアップオペレーションを実行する比較的簡単な回
路ブロックである。それはハフマンデコーディングプロ
セスの第2ステージからその名前を取り出し、そこでハ
フマンデコーダにおいて得たインデックス数が簡単なテ
ーブルルックアップによって実際の解読データに変換さ
れる。データユニットインデックス部はハフマンデコー
ダと協動して1つの論理ユニットとして作用する。
【1174】ALUが次のブロックであり、解読済みデ
ータに他の変換を加えるために提供される。データユニ
ットインデックス部は比較的任意のマッピングに適して
おり、ALUは算術がよりふさわしい場所に使用でき
る。ALUはデコーディングアルゴリスムの様々な部分
を実施するために操作できるレジスタファイルを具備す
る。特に、ベクトル予測及びDC予測を保持するレジス
タががこのブロックに含まれる。ALUはオペランドセ
レクションロジックを持つ単純なアダーのまわりに基礎
づけられる。更に、それはサイン拡張タイプのオペレー
ション用専用回路を含む。シフトオペレーションが実行
されやすいが、これはシリアル様式で遂行され、バレル
シフタは存在しないであろう。
【1175】本発明によるトークンフォーマッティング
部は、ビデオパーザー内の最後のブロックであり、解読
済みデータを残りのデコーダに送ることができるトーク
ンに最終的に組み込む仕事をする。この時点で、この特
定のピクチャ用のデコーダにより使用されるであろう多
くのトークンがある。
【1176】8ビット幅であり、2線式インターフェー
スと共に使用されているパーザーステートマシーンは、
他のブロックのオペレーションを調製する仕事をする。
本質的に、それは非常に単純なステートマシーンであ
り、他のブロックに送られる非常に広範囲の「マクロコ
ード」制御ワードを作り出す。図127は指令ワードが
ブロックからブロックへとデータの側を通過する。これ
が実情であり、異なるブロック間の伝送が2線式インタ
ーフェースによって制御されることを理解することが重
要である。
【1177】本発明では、ビデオパーザー内の各ブロッ
ク間に2線式インターフェースがある。更に、ハフマン
デコーダはシリアル、データと共に、また制御トークン
と共に作動し、インシフタは一度に1ビットずつデータ
を入力する。従って、2つのモードのオペレーションが
ある。データがデータトークンを介してハフマンデコー
ダに入力されると、そのデータは一度に1ビットずつシ
フタを通過する。更に、インシフタとハフマンデコーダ
の間に2線式インターフェースがある。しかしながら、
他のトークンは一度に(シリアルに)1ビットの形態で
シフトされず、むしろトークンのヘッダにおいてシフト
される。データトークンが入力されると、アドレス情報
を含むヘッダが削除され、そのアドレスの次のデータが
一度に1ビットでシフトされる。データトークンではな
い場合、全トークン、ヘッダ及び全てのものが一度に全
てハフマンデコーダに表示される。
【1178】本発明では、ビデオパーザー用の2線式イ
ンターフェースは2つの有効なラインを持つ点で異例の
ことであることを理解することが重要である。1つのラ
インはシリアル式に有効で、他方のラインはトークン式
に有効である。更に、両ライントークンが同時に断定す
ることはできないかもしれない。片方のラインが断定さ
れるか、あるいは有効なデータが存在しなければ、2つ
の有効ラインがあってもどちらも断定できないこともあ
り、他の方向には1つだけのアクセプトワイヤがあるこ
とを認識すべきである。しかしながら、これは問題とは
ならない。ハフマンデコーダは現在のシンタックスに基
づいて次に為されるべき必要に応じて、シリアルデータ
もしくはトークン情報のいずれを望んでいるかを知るこ
とができる。従って、有効なアクセプト信号がそれに応
じて設定され、Acceptがハフマンデコーダからイ
ンシフタに送られる。適切なデータもしくはトークンが
存在すれば、インシフタは有効な信号を送る。例えば、
典型的な指令はハフマンコードを解読し、それをデータ
ユニットインデックス部において変換し、その結果をA
LUにおいて修正することができ、この結果がトークン
ワードに形成される。これを実施するための全ての情報
を含む1つのマイクロコード指令ワードが作られる。コ
マンドはハフマンデコーダに直接送られ、ハフマンデコ
ーダは完全な記号を解読し終えるまで、「インシフト」
ブロックからデータビットを1つずつ要求する。制御ト
ークンは並列に入力される。これが一度発生すると、解
読されたインデックスバリューは元のマイクロコードワ
ードと共にデータユニットインデックス部に送られる。
ハフマンデコーダはこのオペレーションを実行するため
に数個のサイクルを必要とし、実際、サイクル数は解読
されるデータによって決定される。データユニットイン
デックス部は次にマイクロコード指令ワードにおいて特
定された表を用いて、このバリューをマッピングする。
このバリューは元のマイクロコードワードと共に再び次
のブロック、ALUに送られる。ALUが適切なオペレ
ーションを完了する(サイクル数はやはりデータ従属で
あるかもしれない)と、ALUはトークンワードを形成
する方法を制御するマイクロコードワードと共に、トー
クンフォーマッティングブロックに適切なデータを送
る。
【1179】ALUは多数のステータスワイヤもしくは
パーザーステートマシーンに送り返される「条件コー
ド」を持つ。これはステートマシーンが条件付きジャン
プ指令を実行できるようにする。事実、全ての指令は条
件付きジャンプ指令である:選択できる条件の1つがバ
リュー”False”に配線される。この条件を選択す
ることにより、「ノージャンプ」指令を構成することが
できる。
【1180】本発明によれば、トークンフォーマッティ
ング部は2つの入力:ALUからのデータフィールド及
び/もしくはパーザーステートマシーンから入る一定フ
ィールドを持つ。それに加えて、1つのソースからどの
程度のビットを取り、全体で8ビットのために他のソー
スからの残りのビットで満たすべきかをトークンフォー
マッティング部に告げる指令がある。例えば、HORI
ZONTAL SIZEはHORIZONTAL SI
ZEトークンとしてそれを特定する不変のアドレスであ
る8ビットフィールドを持つ。この場合、8ビットは一
定のフィールドから得られ、ALUから得られるデータ
はない。しかしながら、それがデータトークンであれ
ば、一定のフィールドから6ビットを容易に得られるで
あろうし、低い方の2ビットはALUからの色成分を示
す。従って、トークンフォーマッティング部はこの情報
を得、それを残りのシステムで使用するためにトークン
の中に置く。上記の例において、各ソースからのビット
数は単に説明目的のためであり、当業者であればいずれ
のソースからのビット数をも変更できることを認識する
であろうということに注目すべきである。
【1181】ALUはピクチャの構造を通してカウント
するために使用されるカウンタバンクを含む。ピクチャ
のディメンションは、レジスタバンクの一部として「マ
イクロプログラマ」に現れるカウンタと連合するレジス
タにプログラムされる。幾つかの条件コードはこのカウ
ンタバンクから出力され、それは「ピクチャ・スター
ト」、「マクロブロック・スタート」等に基づく条件付
きジャンプを可能にする。
【1182】注意すべきことは、パーザーステートマシ
ーンも「デマルチプレックスステートマシーン」と称さ
れることである。両用語が本文書において使用される。
【1183】入力シフタ 本発明では、入力シフタは2つのパイプラインステージ
データパス“hfidp”と制御Zcells“hf
i”で構成される非常に単純な回路である。
【1184】第1のパイプラインステージでは、トーク
ンデコーディングが起こる。このステージにおいて、デ
ータトークンだけが認識される。データトークンに含ま
れるデータは一度に1ビットだけハフマンデコーダにシ
フトされる。第2のパイプラインステージはシフトレジ
スタである。データトークンのラストワードにおいて、
符号化データバッファを通して任意のビット数を伝達す
ることができるように、特別なコーディングが発生す
る。ラストデータワードにおいて可能な全てのパターン
を以下に記す。
【1185】
【表174】 シフトレジスタにおいてデータビットが左に1つずつシ
フトされるにつれて、ビットパターン「0に続く全ての
数」が探される(パディング)。これはシフトレジスタ
における残りのビットが有効ではなく、捨てられること
を示す。この動作はデータトークンのラストワードにお
いてのみ発生することに注目。
【1186】前述したように、他の全てのトークンはハ
フマンデコーダに並列で送られる。それらは第2のパイ
プラインステージにもロードされるが、シフトは発生し
ない。データヘッダは捨てられ、ハフマンには全く送ら
れないことに注目。2つの「有効な」ワイヤ(out
valid及びserial valid)が提供され
る。1つだけが所定の時間に断定され、それはどのタイ
プのデータがその瞬間に表示されるかを指示する。
【1187】B.2.2 「ハフマンデコーダ」 ハフマンデコーダは多数のオペレーションモードを持
つ。最も顕著なものはそれがハフマンコードを解読し、
それらをハフマンインデックス数に換えることである。
それに加えて、ハフマンデコーダは指令ワードにより決
定される長さの固定長コードを(ビットに)解読するこ
とができる。ハフマンデコーダは更にインシフトブロッ
クからのトークンを受け取ることができる。
【1188】ハフマンデコーダは非常に小さなステート
マシーンである。これはブロックレベルの情報を解読す
る時に使用される。これはパーザーステートマシーンが
決定をするのに長くかかりすぎるからである(なぜな
ら、それはデータに関する決定をし、新しいコマンドを
出す前に、データユニットインデックス部とALUを通
ってデータが流れるのを待たなければならないからであ
る)。このステートマシーンが使用される場合、ハフマ
ンデコーダ自体がデータユニットインデックス部とAL
Uにコマンドを発する。ハフマンデコーダステートマシ
ーンはマイクロコード指令ビットの全てを制御すること
ができないので、他のブロックに全範囲のコマンドを発
することができない。
【1189】B.2.2.1 「オペレーションの理
論」 ハフマンコードを解読する時、本発明のハフマンデコー
ダは入力コードをハフマンインデックス数に解読するた
めに、演算手順を使用する。この数は(N個のエントリ
を持つコード表に対して)0〜N−1の間である。ビッ
トは入力シフタから1つずつ受け取られる。
【1190】マシーンのオペレーションを制御するため
に、多くのテーブルが必要である。これらはコード(1
〜16ビット)において可能な各ビット数のために、そ
の長さのコードがどれ程あるかを明記する。予期される
ように、この情報は典型的に一般的なハフマンコードを
明記するために充分ではない。しかしながら、MPE
G、H.261及びJPEGにおいて、ハフマンコード
はこの情報だけでハフマンコード表を明記することがで
きるように選択される。これには不運なことに1つだけ
例外がある:MPEGにおいても使用されるH.261
からのTcoefficientテーブルである。これ
は他の場所で説明される付加的なテーブルを必要とする
(例外はスタートコードエミュレーションを避けるため
にH.261に計画的に導入された)。
【1191】このハフマンデコーダが使用するテーブル
はJPEGに伝達されるものと正確に同一であることを
認識することが重要である。これはハフマンデコーダの
他のデザインが伝達されたものから内部テーブルの作成
を要求したかもしれない一方で、これらのテーブルが直
接使用されることを可能にする。これは変換のために追
加記憶装置及び追加プロセシングを要求したであろう。
MPEG及びH.261のテーブルは(上述の例外はあ
るが)同じように説明でき、マルチスタンダードデコー
ダは実用的になる。
【1192】以下の”C”フラグメントはデコーディン
グプロセスを説明する: 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++; } 一般に、特定の中間バリューはそれらが必要になる前に
クロックフェイズで計算できるという事実に利点がある
が、プロセスはシリコン実装の中に直接マッピングされ
る。
【1193】コードフラグメントから解ることは: EQ1. totaln+1=totaln+cpbn EQ2. ’sn+1=2(’sn+cpbn) EQ3. coden+1=2coden+bitn EQ4. indexn+1=2coden+bitn+t
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 の時に完了することが解る。
【1194】式7と式1から置き換えると、 EQ9. 2(coden−shiftedn)+bit
n−cpbn<0 の時に完了することが解る。
【1195】本発明のハードウェア実装において、E
Q.7及びEQ.9における共通の用語、(coden
−shiftedn)は、これらの式の残りが評価され
て最終結果、及び計算が「完了した」という情報を出す
1フェイズ前に計算される。
【1196】警告ワードを1つ。様々な“C”コード、
特に行動編集済みコードハフマンデコーダ、及びsm4
codeプロジェクトにおいて、“C”フラグメントは
ほぼ直接的に使用されるが、変数“S”は実際上「シフ
ト済み」と称される。このように、「シフト済み」と呼
ばれる2つの異なる変数がある。“C”コードの1つ
と、ハードウェア実装における他の1つである。これら
2つの変数は2つの要因により異なる。
【1197】B.2.2.1.1 「データビットの反
転」 ハフマンコードを正しく解読するために必要な情報がも
う1つある。これは符号化データの極性である。H.2
61とJPEGは反対の規定を使用することが解る。こ
れはH.261のスタートコードはゼロビットであるの
に対し、JPEGのマーカーバイトは1ビットであると
いう事実から生じる。
【1198】両規定を処理するために、符号化データが
H.261スタイルのハフマンコードを解読するため
に、ハフマンデコーダの中に読み込まれる時に、符号化
データビットを反転させることが必要である。これは独
占的ORゲートを用いる明白な方法で行われる。固定長
コードを解読する時、データは反転されないので、反転
はハフマンコードのためにのみ行われることに注目。
【1199】MPEGは2つの規定の混合物を使用す
る。H.261から引き継がれる局面では、H.261
規定が使用される。JPEG(DCイントラ係数のデコ
ーディング)から引き継がれる局面では、JPEG規定
が使用される。
【1200】B.2.2.1.2 「変換係数表」 H.261及びMPEGにおける変換係数表を使用する
時、幾つかの変則がある。第1に、MPEGテーブルは
H.261テーブルのスーパーセットである。本発明の
ハードウェア実装において、2つのスタンダード間に引
かれる区別はなく、これはテーブル(つまりMPEGコ
ード)の拡張部分からのコードを含むH.261ストリ
ームが「正しい」方法で解読されるであろうということ
を意味する。もちろん、圧縮スタンダードの他の局面も
同様に破壊される。例えば、これらの拡張コードはH.
261におけるスタートコードエミュレーションを生じ
させるであろう。
【1201】第2に、変換係数表はcode per
bitテーブルを用いる通常の方法では説明できないこ
とを意味する変則を持つ。この変則は6ビット長のコー
ドで発生する。これらのコードワードは交替コードワー
ドで系統的に置き換えられる。エンコーダにおいては、
正しい結果が第1のエンコーディングによって通常の方
法で得られる。次に、6ビットまたはそれ以上の長さの
全てのコードのために、簡単なテーブルルックアップオ
ペレーションにより、最初の6ビットが別の6ビットで
置き換えられる。本発明によるデコーダでは、デコーデ
ィングプロセスは6番目のビットが解読される直前に割
り込まれ、コードワードはテーブルルックアップを用い
て置き換えられ、デコーディングが続けられる。
【1202】この場合、10の可能な6ビットコードが
あるだけであり、従って必要なルックアップテーブルは
非常に小さい。更に、オペレーションはコードの上位2
ビットがオペレーションによって変更されないという事
実によって助けられる。その結果、真のルックアップテ
ーブルを使用する必要がなくなる。その代わりに、小さ
なゲート集団が配線され、適切な変換が行われる。これ
を行うモジュールは”hftcfrng”と呼ばれる。
可能性のあるコードセットからの各コードがそのセット
からの別のコードで置き換えられる(新コードが導入さ
れない、あるいは旧コードが省略される)ので、このタ
イプのコード置換は本文では「リング」と規定される。
【1203】更に、ブロック内の最初の係数のために独
特な実装が行われる。この場合、ブロック・エンドコー
ドが発生することは不可能であり、従って、最も一般的
に発生する記号が、そうでなければブロック・エンドと
して解釈されるであろうコードを使用できるように、テ
ーブルが修正される。これにより1ビットを節約でき
る。本発明によるデコーディング用の構成で、これは容
易に収容される。簡単に言えば、「インデックス」がバ
リューゼロであれば、第1係数の第1ビットのために、
デコーディングは終了したとみなされる。更に、1ビッ
トだけを解読後は、「インデックス」用には2つの可能
性のあるバリュー、ゼロと1だけがあり、1ビットをテ
ストすることだけが必要である。
【1204】B.2.2.1.3 「レジスタ及びアダ
ーのサイズ」 本発明のハフマンデコーダは16ビットまでのハフマン
コードを処理することができる。しかしながら、デコー
ディングマシーンは8ビット幅である。これは解読され
るハフマンインデックス数値が最大でも255であるこ
とが解っているから可能である。事実、これは拡張JP
EGにおいてのみ発生でき、現在のアプリケーションで
は、その限界は幾分低め(しかし、128より大きいの
で、7ビットでは不充分)である。
【1205】全ての合法的ハフマンコードに対して、
「インデックス」の最終値だけでなく、全ての中間値も
0〜255の範囲にあることが解る。しかしながら非合
法的コード、つまり(おそらくデータ誤差のため)現在
のコード表にはないコードを解読しようとする企てに対
しては、インデックス値は255を越えることがある。
我々は8ビットマシーンを使用しているので、デコーデ
ィング・エンドで、「インデックス」の最終値が255
を越えない。なぜなら、誤差が発生したことを我々に告
げるより重要なビットが捨てられているからである。こ
のため、デコーディング中のインデックス値が255を
越える(つまり、インデックスを形成するアダーからの
キャリー)時にはいつでも、誤差が発生し、デコーディ
ングが放棄される。
【1206】「コード」の12ビットが保護される。3
ビットレジスタで充分であるハフマンコードを解読する
ためには、これは必要ではない。これらの上位ビットは
12ビットまで読み出すことができる固定長コードのた
めに必要である。
【1207】B.2.2.1.4 「固定長コード用の
オペレーション」 固定長コードのために、「ビット毎のコード」バリュー
がゼロになるように強いられる。これはオペレーション
を通して「全体の」と「シフト済み」がゼロのままであ
り、従って、「インデックス」はコードと同じである。
事実、アダー等は8ビットバリューだけが「インデック
ス」のために作られるようにする。このため、固定長コ
ードを解読する時に、出力ワードの上位ビットは「コー
ド」レジスタから直接取られる。ハフマンコードを解読
する時、これら上位ビットはゼロになるように強いられ
る。
【1208】充分なビットが入力から読み出されたとい
う事実は明白な方法で計算される。コンパレータは所望
のビット数を「ビット」カウンタと比較する。
【1209】B.2.2.2 「デコーディング係数デ
ータ」 本発明によるパーザーステートマシーンは一般にかなり
高レベルのデコーディングのためにのみ使用される。8
ビットずつのデータブロック内の非常に低レベルのデコ
ーディングは、直接にはこのステートマシーンによって
処理されない。パーザーステートマシーンは「ブロック
を解読する」形態のハフマンデコーダにコマンドを出
す。ハフマンデコーダ、データユニットインデックス
部、及びALUは(基本的にハフマンデコーダ内にあ
る)専用ステートマシーンの制御下に、共に作動する。
この配置はエントロピーコード化係数データの高性能の
デコーディングを可能にする。更に本オペレーションモ
ードにおいて操作される他のフィードバックパスがあ
る。例えば、SIZE及びRUN情報を提供するために
VLCが解読されるJPEGデコーディングにおいて
は、SIZE情報はデータユニットインデックス部の出
力から直接ハフマンデコーダに送り返され、どれほど多
くのFLCビットを読むべきかをハフマンデコーダに指
示する。それに加えて、幾つかの加速装置が実装され
る。例えば、同じ例を用いて、データインデックスステ
ージの前にハフマンインデックスバリューを考察するこ
とにより、ゼロのSIZEを生じる全てのVLCバリュ
ーが明白に捕獲される。これは非ゼロSIZEバリュー
の場合、ハフマンデコーダが実際のSIZEバリューが
解る前に、1つのFLCビットを読むために進むことが
できることを意味する。これは最初のFLCビットの読
出しがデータユニットインデックス部においてテーブル
ルックアップを遂行するために必要な1つのクロックサ
イクルに重なるので、如何なるクロックサイクルも浪費
されないことを意味する。
【1210】B.2.2.2.1 「MPEG及びH.
261のAC係数データ」 図133はAC係数がMPEG及びH.261において
解読される方法を示している。ハフマンデコーダのオペ
レーションを詳細に示すフローチャートが図128に示
されている。
【1211】VLCコードを読むことによりプロセスが
スタートする。通常のイベントでは、ハフマンインデッ
クスは6ビットRUN及び係数の絶対値を表すバリュー
に直接マッピングされる。その後、FLC1ビットが読
まれ、係数のサインを出す。ALUは係数の絶対値をこ
のサインビットで組み立て、係数の最終値を提供する。
【1212】この時点でのデータフォーマットはサイン
・マグニチュードであるので、このオペレーションには
ほとんど困難なことがない。RUNバリューは6ビット
の補助バスに送られる一方、係数バリュー(レベル)は
通常のデータバスに送られる。
【1213】2つの特別な場合があり、これらはデータ
インデックスオペレーションの前に解読されたインデッ
クスバリューを考察することにより捕獲される。これら
はブロック・エンド(EOB)とエスケープコード化デ
ータである。EOBの場合、これが発生したという事実
はトークンフォーマッティング部が開かれたデータトー
クンを正しく閉じることができるように、データユニッ
トインデックス部及びALUブロックを通って送られ
る。
【1214】エスケープコード化データはより複雑であ
る。最初の6ビットのRUNが読み出され、これらはデ
ータユニットインデックス部を通って直接送られ、AL
Uに記憶される。その後、FLC1ビットが読み出され
る。これはMPEG及びH.261において説明される
エスケープの8ビットの内、最も重要なビットであり、
レベルのサインを与える。ネガティブバリュー対ポジテ
ィブバリューのためにALUに異なるコマンドを送る必
要があるので、そのサインは本実装において明白に読み
出される。これはALUがビットストリーム内の2つの
補数値をサインマグニチュードに変換できるようにす
る。いずれの場合にも、残りのFLC7ビットがその後
読み出される。これがバリューゼロであれば、更に8ビ
ットを読まなければならない。
【1215】本発明では、ハフマンデコーダの内部ステ
ートマシーンは自身の制御のため、またデータユニット
インデックス部、ALU、及びトークンフォーマッティ
ング部をも制御するためにコマンドを発生させる責任が
ある。図133に示すように、ハフマンデコーダの指令
は3つのソース;パーザーステートマシーン、ハフマン
ステートマシーン、もしくはパーザーステートマシーン
から以前に受け取ったレジスタに記憶されている指令の
1つから送られる。本質的に、(ハフマンステートマシ
ーンに制御を引き継がせ、係数を読ませる)パーザース
テートマシーンからの原始指令は、レジスタに保持され
る、つまり、新しいVLCが必要になる度に、使用され
る。デコーディングのための他の全ての指令はハフマン
ステートマシーンによって供給される。
【1216】B.2.2.2.2 「MPEGのDC係
数データ」 これはJPEGのDC係数データと同様に処理される。
同じ(ロード可能な)テーブルが使用され、その内容が
正しいことを保証することが制御マイクロプロセッサの
責任である。MPEGスタンダードとの唯一の現実的な
差は、(JPEGの場合と同様に)プレディクタがゼロ
に設定され、その補正が逆量子化器において行われるこ
とである。
【1217】B.2.2.2.3 「JPEG係数デー
タ」 図129は本発明に従い、JPEGのAC係数を解読す
るためのハードウェアを示すブロック線図である。DC
係数用のプロセスは本質的にJPEGプロセスを簡略化
したものであるので、線図はAC及びDC係数両方のた
めに作用する。MPEGのAC係数用の前の線図に現実
に加えられる唯一のことは、”SSSS”フィールドが
送り返され、読み出されるFLCビット数を指定するた
め、ハフマンデコーダコマンドの一部として使用できる
ことである。残りのコマンドはハフマンステートマシー
ンによって供給される。
【1218】図130はAC及びDC係数のハフマンデ
コーディング用のフローチャートを描いている。
【1219】AC係数用のプロセスをまず取り上げる
が、プロセスは適切なテーブル(2つのACテーブルが
ある)を用いて、VLCを読み出すことで開始する。ハ
フマンインデックスは次にデータユニットインデックス
部内のRUN及びSIZEバリューに変換される。2つ
のバリューはハフマンインデックスステージで捕獲され
るが、これらはEOB及びZRL用である。これらは唯
一如何なるFLCビットも読まれない2つのバリューで
ある。デコードインデックスがこれら2つのバリューの
ものではない場合、ハフマンデコーダは直ちにFLC1
ビットを読み出す一方、データユニットインデックス部
がルックアップオペレーションを完了して、実際にどの
程度のビットが必要であるかを決定するのを待つ。EO
Bの場合、ハフマンデコーダ内のハフマンステートマシ
ーンが遂行する更なるプロセシングは必要ではなく、別
のコマンドがパーザーステートマシーンから読み出され
る。ZRLの場合、如何なるFLCビットも必要ではな
いが、ブロックは完了されない。この場合、ハフマンデ
コーダは(以前と同じテーブルを用いて)更なるVLC
の解読を直ちに開始する。
【1220】ZRL及びEOBに連合するインデックス
バリューを検出するのに、特別な問題がある。これはハ
フマンテーブルが(H.261やMPEGと異なり)ダ
ウンロード可能であるからである。2個のJPEGのA
Cテーブルの各々のために、(1つはZRL用に、1つ
はEOB用に)2個のレジスタが提供される。これらは
テーブルがダウンロードされる時にロードされる。それ
らは適切な記号と連合するインデックスバリューを保持
する。
【1221】ALUはSIZEビットのFLCコードを
適切なサイン・マグニチュードバリューに変換しなけれ
ばならない。これらはテーブルがダウンロードされる時
にロードされる。それらは適切な記号と連合するインデ
ックスバリューを保持する。ALUはSIZEビットの
FLCコードを適切なサイン・マグニチュードバリュー
に変換しなければならない。これはまず間違ったサイン
でそのバリューをサイン拡張することにより行われる。
サインビットが新たに設定されると、次に残りのビット
が逆にされる(1の補数)。
【1222】DC係数の場合、ZRLフィールドの等価
物はないので、ハフマンデコーディングステージにおけ
る意志決定の方が幾分容易である。ゼロのFLCビット
が読まれるようにする唯一の記号はゼロのDC差を示す
ものである。これは再びハフマンインデックスステージ
において捕獲され、(ダウンロード可能な)JPEGの
各DCテーブル用にこのインデックスを保持するため、
レジスタが提供される。
【1223】本発明のALUは(予測として知られる)
最後のDC係数値のコピーを保持することにより、最終
的な解読済みDC係数を形成するという仕事をする。4
つの活性色成分の各々のために1つずつ、計4個のプレ
ディクタが必要である。DC差が解読されると、ALU
は適切なプレディクタを加えて、解読された値を形成す
る。これはやはりその色成分の次のDC差のためのプレ
ディクタとして記憶される。DC係数は(DCオフセッ
トのため)サインされるので、2補数からサイン・マグ
ニチュードへの変換が必要である。その後、そのバリュ
ーはゼロのRUNと共に出力される。事実、このラスト
ステージの一部を遂行せよという指令はハフマンステー
トマシーンによって供給されない。それらは単にパーザ
ーステートマシーンによって実行される。
【1224】AC係数に対する同様の方法において、A
LUはまずFLCのSIZEビットからDC差を生成し
なければならない。しかしながら、この場合、2つの補
数値がプレディクタに加算されることが求められる。こ
れは前述のように、まず間違ったサインでサイン拡張す
ることにより形成される。その結果が負であれば、正し
い値を形成するために1を加算しなければならない。も
ちろん、これはアダーの中にキャリーを詰め込むことに
よりプレディクタと同時に加算され得る。
【1225】B.2.2.3 「誤差処理」 誤差処理については説明する価値がある。検出される誤
差には実際上4つのソースがある: ・テーブル・エンドから外れる。
【1226】・トークンが期待される時に、シリアルで
ある。
【1227】・シリアルが期待される時に、トークンで
ある。
【1228】・ブロック内に多くの係数がありすぎる。
【1229】これらの内最初のものは2つの状況におい
て発生する。ビットカウンタが16に達する(合法的バ
リューは0〜15である)場合、最長の合法的ハフマン
コードが16ビットであるので、誤差が発生する。「イ
ンデックス」の中間値が255を越える場合、セクショ
ンB.2.2.1.3において説明したように、誤差が
発生する。
【1230】第2のものはトークンが期待されるのにシ
リアルデータに遭遇する時に発生する。第3のものは反
対の状態が生じる時に発生する。
【1231】最後のタイプの誤差は、ブロックにあまり
に多くの係数がある場合に発生する。これは実際にはデ
ータユニットインデックス部において検出される。
【1232】これらの状態のいずれかが発生すると、誤
差はハフマン誤差レジスタにおいて注目され、パーザー
ステートマシーンが割り込まれる。誤差を処理し、回復
のために必要なコマンドを発することがパーザーステー
トマシーンの責任である。
【1233】正しいオペレーションを保証するための割
り込み時に、ハフマンはパーザーステートマシーンと協
動する。ハフマンデコーダがパーザーステートマシーン
に割り込むと、新しいコマンドがパーザーステートマシ
ーンの出力においてアクセプトされるのを待つことがで
きる。ハフマンデコーダはパーザーステートマシーンに
割り込んだ後、2つの全サイクルのためにこのコマンド
をアクセプトしないであろう。これにより、パーザース
テートマシーンは(今は実行されるべきではない)そこ
にあるコマンドを取り除き、適切なものと置き換えるこ
とができる。これら2つのサイクルの後、ハフマンデコ
ーダはは通常のオペレーションを再び開始し、有効なコ
マンドがそこにあればそのコマンドを受け入れる。そう
でなければ、パーザーステートマシーンが有効なコマン
ドを示すまで何もしないであろう。
【1234】これらの誤差のいずれかが発生すれば、
「ハフマン誤差」イベントビットが設定され、マスクビ
ットが設定されれば、ブロックは停止し、制御マイクロ
プロセッサは通常の方法で割り込まれるであろう。
【1235】ある状況では、誤差のように見えるものが
実際には誤差ではないことがある。このようなことが発
生する最も重要な状況は、マクロブロックアドレスを読
んでいる時である。MPEG、H.261及びJPEG
のシンタックスにおいて、期待されるマクロブロックア
ドレスの代わりにトークンが発生するのは合法的であ
る。合法的方法でこうしたことが発生すれば、ハフマン
誤差レジスタにゼロがロードされる(誤差が無いことを
意味する)が、パーザーステートマシーンはまだ割り込
まれたままである。パーザーステートマシーンのコード
はこのno errorの状況を認識し、それに従って
応答する。この場合、「ハフマン誤差」イベントビット
は設定されず、ブロックはプロセシングを停止しないで
あろう。
【1236】いろんな状況を処理しなければならない。
まず、トークンは直ちに発生し、シリアルビットは前進
しない。この場合、「シリアルが期待される時のトーク
ン誤差」が発生したであろうが、その代わりに、no
error誤差が前述したような方法で発生する。
【1237】第2に、トークンの前に2〜3のシリアル
ビットがある。この場合、決定が為される。トークンの
前にある全てのビットがバリュー1を持っていた場合、
(H.261及びMPEGでは、コード化データは反転
されるので、コード化データファイルにはゼロビットが
あることを思いだしてほしい)、ノーエラーが発生す
る。しかしながら、それらの内のどれかがゼロであれ
ば、それらは有効なスタッフィングビットではなく、こ
うして誤差が発生し、「シリアルが期待される場合のト
ークン」誤差が発生する。
【1238】第3に、トークンの前には多くのビットが
ある。この場合、同じ決定が為される。全ての16ビッ
トが1であれば、それらはパディングビットとして処理
され、no error誤差が発生する。それらの内の
いずれかがゼロであった場合、「ハフマンテーブルを外
れる」誤差が発生する。
【1239】トークンが予期されずに発生する別の場所
はJPEGである。ハフマンテーブルもしくは量子化器
テーブルのいずれかを処理する場合、如何なる数のテー
ブルも同じマーカーセグメントの中に発生することがで
きる。ハフマンデコーダはいくつのテーブルがあるのか
を知ることができない。このため、各テーブルが完了し
た後、ハフマンデコーダは別のFLC4ビットを読み出
し、それを新しいテーブルナンバーであると仮定する。
しかしながら、新しいマーカーセグメントがスタートす
ると、4ビットFLCの代わりにトークンに遭遇するで
あろう。この要件は予測されず、従ってIgnore
Errorsコマンドビットが加えられた。
【1240】B.2.2.4 「ハフマンコマンド」 ハフマンデコーダブロック及びそれらの定義を制御する
ため、パーザーステートマシーンが使用するビットをこ
こに示す。データユニットインデックス部コマンドビッ
トもこのテーブルに含まれる。マイクロプログラマの視
点から、ハフマンデコーダ及びデータユニットインデッ
クス部は1つの凝縮した論理ブロックとして作用する。
【1241】
【表175】 B.2.2.4.1 「FLC読出し」 このモードでは、Ignore Errors、Dow
nload、Alutab、Token、First
Coeff、Special and VLCが全てゼ
ロである。Bypassはデータインデックス変換が発
生しないように設定される。
【1242】テーブル[3:0]の二進数は如何に多く
のビットを読むべきかを指示する。ナンバー0〜12は
合法的である。バリューゼロは(期待されたであろうよ
うに)実際にゼロビットを読み、従ってこの指令はハフ
マンデコーダNOP指令である。バリュー13、14、
15は作動せず、バリュー15はハフマンステートマシ
ーンが制御下にあり、読まれるべきFLCのビット数と
して”SSSS”の使用を表示する時に使用される。
【1243】B.2.2.4.2 「VLC読出し」 このモードでは、Ignore Errors、Dow
nload、Alutab、Token、First
Coeff、and Specialがゼロであり、V
LCは1である。通常、Bypassはデータインデッ
クス変換が発生するように設定される。
【1244】このモードでは、Token、First
Coefficient、及びSpecialは全て
ゼロであり、VLCは1である。
【1245】テーブル[3:0]の二進数は以下に示す
ように使用すべきテーブルを指示する。
【1246】
【表176】 RAMに保持されるテーブル(つまりJPEGテーブ
ル)の場合、ビット1は使用されず、テーブル選択が2
回発生することに注目。非ベースラインJPEGデコー
ダが作られる場合、4個のDCテーブルと4個のACテ
ーブルがあり、テーブル[1]が必要となる。
【1247】テーブル[3]がゼロであれば、テーブル
がH.261スタイルのテーブルとして正しく読まれる
ために、入力データは使用される時に反転される。テー
ブル[3:0]=0の場合、適切なRing修正も適用
される。
【1248】B.2.2.4.3 「NOP指令」 前述したように、ゼロビットのFLCを読み出す動作が
No Operation指令として使用される。入力
ポートからは如何なるデータ(トークンまたはシリアル
のいずれ)も読み出されず、ハフマンデコーダは指令ワ
ードと共にゼロのデータ値を出力する。
【1249】B.2.2.4.4 「TCoeffic
ient第1係数」 H.261及びMPEGのTCoefficientテ
ーブルはブロックの1番目の係数のために使用される特
別な非ハフマンコードを持つ。ブロック・スタートにお
いてTCoefficientをデコードするために、
First CoefficientビットがVLC指
令と共にテーブルゼロに設定されてもよい。First
Coefficientビットの多くの効果の1つは
このコードがデコードされることを可能にすることであ
る。
【1250】通常のオペレーションでは、TCoeff
icient VLCを読むために、「簡単な」コマン
ドを発することは異例であることに注目。これは通常S
pecial Bitを設定することにより、制御がハ
フマンデコーダに手渡されるからである。
【1251】B.2.2.4.5 「トークンワードの
読出し」 トークンワードを読むために、Tokenビットは1に
設定すべきである。Special及びFirst C
oefficientビットはゼロであるべきである。
テーブル[0]ビットを正しく作用させる場合、VLC
ビットも設定されるべきである。
【1252】このモードでは、ビットテーブル[1]及
びテーブル[2]は以下のようにトークン読出し行為を
修正するために使用される:
【1253】
【表177】 テーブル[0]及びテーブル[1]がゼロであれば、ト
ークンの前のシリアルデータの存在はエラーであると考
えられ、そのような信号が発せられる。
【1254】テーブル[1]が設定された場合、全ての
シリアルデータはトークンワードに遭遇するまで捨てら
れる。このシリアルデータの存在故にエラーは発生しな
いであろう。
【1255】テーブル[0]が設定された場合、パディ
ングビットは捨てられるであろう。もちろん、パディン
グビットの極性を知ることが必要である。これはVLC
データの読出しのための場合と全く同様の方法でテーブ
ル[3]により決定される。テーブル[3]がゼロであ
るなら、入力データはまず反転され、それからどれかの
「1」ビットが捨てられる。テーブル[3]が1に設定
される場合、入力データは反転されず、「1」ビットが
捨てられる。テーブル[3]ビットに応じてデータを反
転するという動作はVLCビットでは条件付きであるの
で、このビットは1に設定されなければならない。パデ
ィングビットでないビットに遭遇する(つまり、H.2
61及びMPEGにおける「1」ビットである)場合、
誤差が報告される。
【1256】これらの指令では、1つのトークンワード
だけが読まれることに注目。拡張ビットの状態は無視さ
れ、このビットをテストし、それに従って行動すること
はデマルチプレクサの責任である。マルチプルワードを
読む指令も提供される - 特別指令に関するセクション
を参照せよ。
【1257】B.2.2.4.6 「ALUレジスタは
テーブルを指定する」 Alutabビットが設定されると、ALUレジスタフ
ァイル内のレジスタを使用して実際に使用されるテーブ
ルナンバーを決定することができる。VLCビットと共
にコマンドで供給されるテーブルナンバーはどのALU
レジスタが使用されるかを決定する:
【1258】
【表178】 固定長コードの場合、ベクトルをデコーディングするた
めに正しいビット数が読まれる。r sizeがゼロで
あれば、NOP指令が生じる。
【1259】ハフマンコードの場合、発生するテーブル
ナンバーは1に設定されたテーブル[3]であり、結果
的に生じるナンバーはJPEGテーブルの1つを引用す
る。 B.2.2.4.7 「特別指令」 今まで説明してきた全ての指令(もしくはオペレーショ
ンモード)は「単純な」指令として考慮される。受け取
られる各コマンドのために、(シリアルデータもしくは
トークンデータのいずれであっても)適切な量の入力デ
ータが読まれ、結果として生じるデータが出力される。
誤差が検出されなければ、正確に1つの出力がコマンド
毎に発生するであろう。
【1260】本発明では、特別指令は1つ以上の出力ワ
ードが1つのコマンドのために発生することができるこ
とに特徴がある。この機能を果たすために、ハフマンデ
コーダの内部ステートマシーンが制御を行い、パーザー
が要求した指令が完了したと決定するまで、必要に応じ
てそれ自身指令を出すであろう。
【1261】全ての特別指令において、実行されること
になるシーケンスの最初の実際の指令は1に設定される
Specialビットで出される。これは全てのシーケ
ンスが独得の最初の指令を持たねばならないことを意味
する。この企ての利点は、パーザーから受け取るコマン
ドに基づいて要求されるルックアップオペレーションな
しに、シーケンスの最初の実際の指令が利用できること
である。
【1262】4つの認識される特別指令がある: ・TCoefficient ・JPEG DC ・JPEG AC ・Token 第1のものはブロック・エンド記号が読まれるまで、
H.261及びMPEG変換係数等を読む。ブロックが
非イントラブロックである場合、このコマンドは全ブロ
ックを読むであろう。この場合、First Coef
ficientビットは第1の係数トリックが適用され
るように設定されるべきである。ブロックがイントラブ
ロックであれば、DCタームが既に読まれているべきで
あり、First Coefficientビットはゼ
ロであるべきである。
【1263】H.261のイントラブロックの場合、D
CタームはFLC8ビットバリューを読むために「単純
な」指令を用いて読まれる。MPEGでは、下記におい
て説明するJPEG DCの特別指令が使用される。J
PEG DCコマンドは(VLCにより示されるFLC
のSSSSビットを含む)JPEGスタイルのDCター
ムを読むために使用される。First Coeffi
cientビットはデータユニットインデックス部にお
いて(係数の数をカウントする)カウンタがリセットさ
れるために設定されなければならない。JPEG AC
コマンドはDCタームの後、EOBに遭遇するか、もし
くは64番目の係数が読まれるまで、ブロックの残りを
読むために使用される。
【1264】Tokenコマンドは全トークンを読むた
めに使用される。トークンワードは拡張ビットが明白に
なるまで読まれる。それは未認識のトークンを処理する
便利な方法である。
【1265】B.2.2.4.8 「ダウンロードテー
ブル」 本発明では、ハフマンデコーダテーブルはDownlo
adビットを用いてダウンロードすることができる。最
初のステップはダウンロードすべきテーブルを指名する
ことである。これはDownloadビットセットとF
irst Coeffビットセットで、FLCを読むた
めのコマンドを出すことによって行われる。これはNO
Pとして処理され、従って如何なるビットも実際には読
まれないが、テーブルナンバーはレジスタに記憶され、
次のダウンローディングにおいてどのテーブルがロード
されるかを特定するために使用される。
【1266】
【表179】 上記の表が示すように、ACもしくはDCテーブルのい
ずれかをロードすることができ、テーブル[3]はそれ
が(ハフマンデコーダ自体における)codes−pe
r−bitテーブルであるか、ロードされるデータイン
デックステーブルであるかを決定する。
【1267】テーブルが一旦指名されると、Downl
oadビットセット(及びFirst Coeffビッ
トゼロ)で、必要な数の(常に8ビットである)FLC
を読むためのコマンドを出すことにより、データはその
テーブルの中にダウンロードされる。これは符号化デー
タが指名されたテーブルの中に書き込まれるようにす
る。アドレスカウンタは維持され、データは現在のアド
レスに書き込まれ、次にアドレスカウンタが増加され
る。アドレスカウンタはテーブルが指名される時はいつ
でもゼロにリセットされる。
【1268】データインデックステーブルをダウンロー
ドする時は、データ及びアドレスが監視される。アドレ
スはハフマンインデックスナンバーである一方、そのア
ドレスにロードされるデータは最終的に解読される記号
であることに注目。この情報は関係のある記号のために
ハフマンインデックスナンバーを保持するレジスタを自
動的にロードするために使用される。従って、JPEG
ACテーブルにおいて、ZRLに対応するバリューを
持つデータが認識される時、現在のアドレスはテーブル
ナンバーによって指示されるように、レジスタCED
H KEY ZRL INDEX0またはCED H
KEY ZRL INDEX1に書き込まれる。
【1269】解読されたデータはそれが解読された1フ
ェイズ後に、codes−per−bitテーブルに書
き込まれるので、このフェイズ中にテーブルからデータ
を読むことはできない。従って、テーブルダウンロード
指令の後、直ちに出されるVLCを読もうとする指令は
失敗するであろう。実際のアプリケーションにおいて
(つまり、JPEGを行う時)、該かるシーケンスが発
生する理由はない。しかしながら、これを行うシミュレ
ーションテストを構築することは可能である。
【1270】B.2.2.5 「ハフマンステートマシ
ーン」 本発明によるハフマンステートマシーンはある場合に内
部的に作られるハフマンデコーダコマンドを提供するた
めに作用する。内部ステートマシーンによって作られ得
る全てのコマンドはデマルチプレクサによりハフマンデ
コーダに提供され得る。
【1271】ステートマシーンの基本構造は次のようで
ある。コマンドがハフマンデコーダに出されると、それ
は一連の補助ラッチに記憶され、後に再使用することが
できる。更にコマンドはハフマンデコーダによって実行
され、ハフマンステートマシーンによって分析される。
コマンドが公知の指令シーケンスの最初のものであると
認識され、SPECIALビットが設定されると、ハフ
マンデコーダステートマシーンはパーザーステートマシ
ーンからハフマンデコーダの制御を引き継ぐ。この時点
で、ハフマンデコーダ用の指令には3つのソースがあ
る: 1)パーザーステートマシーン:このチョイスは特別指
令の完了時(例えば、EOBが解読された時)に行わ
れ、次のデマルチプレクサコマンドがアクセプトされ
る。
【1272】2)ハフマンステートマシーン。ハフマン
ステートマシーンは任意のコマンドを持つことができ
る。
【1273】3)パーザーステートマシーンによって、
指令をスタートするために出される原始指令。
【1274】(2)の場合、テーブルナンバーはデータ
ユニットインデックス部からのフィードバックによって
提供されることが可能であり、これはハフマンステート
マシーンROM内のフィールドを取り替えるであろう。
【1275】(1)の場合、ある場合には、テーブルナ
ンバーは(例えば、AC及びDCテーブルナンバー及び
F−ナンバーの場合)ALUレジスタファイルから得ら
れるバリューによって提供される。これらのバリューは
補助コマンド記憶装置に記憶され、そのコマンドが後に
再使用される時、テーブルナンバーは記憶されたもので
ある。カウンタは通常次のブロックを引用するために進
んでいるので、それはALUから再びリカバーされな
い。
【1276】使用される次の指令のチョイスは解読され
つつあるデータ次第であるので、決定はサイクルの最後
の方で行われることが必要である。従って、一般的な構
造は可能な指令の全てが並列に準備され、サイクル後半
のマルチプレクシングが実際の指令を決定するようにな
っている。
【1277】各々の場合に、次のサイクルの中でハフマ
ンデコーダが使用するであろう指令を決定することに加
え、ステートマシーンROMも、現在のデータがデータ
ユニットインデックス部とそれからALUへと通過する
時に、現在のデータに付けられるであろう指令を決定す
ることに注目。全く同じ方法で、これら3つの指令全て
が並列に準備され、チョイスがサイクル後半で行われ
る。
【1278】ここでもやはり、上述のように次のハフマ
ンデコーダ指令のための3つのチョイスに対応する、指
令のこの部分のために3つのチョイスがある。
【1279】1)ブロック・エンドにふさわしい一定の
指令。
【1280】2)ハフマンステートマシーン。ハフマン
ステートマシーンはデータユニットインデックス部のた
めに任意の指令を提供することができる。
【1281】3)指令をスタートするためにパーザーが
出す原始指令。
【1282】B.2.2.5.1 「EOBコンパレー
タ」 EOBコンパレータの出力は本質的に定数指令のセレク
ションがデータユニットインデックス部に表示されるよ
うに強制し、次のハフマン指令がパーザーからの次の指
令であるようにさせるであろう。コンパレータの正確な
機能はハフマンステートマシーンROM内のビットによ
って制御される。
【1283】EOBコンパレータの背後に、AC及びD
CのJPEGテーブルにEOB記号のインデックスを保
持する4個のレジスタがある。DCテーブルの場合、も
ちろんブロック・エンド記号はないが、ゼロサイズの記
号があり、それはDCゼロ差によって作られる。これは
EOB記号の場合と全く同様にFLCのゼロビットが読
まれるようにするので、それらは全く同様に処理され
る。
【1284】レジスタに保持される3つのインデックス
バリューに加えて、定数値1も使用できる。これはH.
261及びMPEGにおけるEOB記号のインデックス
ナンバーである。
【1285】B.2.2.5.2 「ZRLコンパレー
タ」 本発明では、これは汎用コンパレータである。それはハ
フマンステートマシーン指令もしくはI to Dによ
って使用されるためのオリジナル指令のいずれかを選択
させる。
【1286】ZRLコンパレータの背後に、4つのバリ
ューがある。2つはレジスタの中にあり、ZRLコード
のインデックスをACテーブルの中に保持する。他の2
つのバリューは定数であり、1つはバリューゼロであ
り、他の1つは12(MPEG及びH.261における
ESCAPEのインデックス)である。定数ゼロはFL
Cの場合に使用される。定数12はテーブルナンバーが
8より小さい時(及びVLC)はいつでも使用される。
2つのレジスタの1つはテーブルナンバーの低オーダー
ビットにより判断されて、テーブルナンバーが7より大
きい場合(及びVLC)に使用される。
【1287】ステートマシーンROM内のビットはコン
パレータを可能化するために提供され、また別のビット
がその動作を反転するために提供される。指令の中のT
OKENビットが設定された場合、コンパレータ出力は
無視され、拡張ビットによって置き換えられる。これは
トークンの終わりまで続けられる。
【1288】B.2.2.5.3 「ハフマンステート
マシーンROM」 ハフマンステートマシーン内の指令フィールドは次の通
りである: nxtstate[4:0] 次のサイクルにおいて使用するアドレスである。このア
ドレスは修正することができる。 statect1 次のステートアドレスの修正を可能にする。ゼロであれ
ば、ステートマシーンアドレスは修正されず、そうでな
ければ、アドレスのLSBが次の2つのコンパレータの
いずれかのバリューで置き換えられる:
【1289】
【表180】 注:いずれの場合にも、次のハフマン指令が「リラン原
始コマンド」として選択されると、ステートマシーンは
コマンドのために適切なものとしてロケーション0、
1、2または3にジャンプするであろう。 eobct[1:0] これは次のようなEOBコンパレータ及びextnビッ
トに基づいて次のハフマン指令のセレクションを制御す
る:
【1290】
【表181】 zrlct[1:0] これはZRLコンパレータに基づいて次のハフマン指令
のセレクションを制御する。条件が合えば、ステートマ
シーン指令を取り、そうでなければ原始指令をリランす
る。いずれの場合にも、eobctl+条件がデマルチ
プレクサ指令を取れば、これ(eobctl+)は次の
ように優先権を持つ:
【1291】
【表182】 smtab[3:0] 本発明では、選択された指令がステートマシーン指令で
あれば、これはハフマンデコーダによって使用されるテ
ーブルナンバーである。しかしながら、ZRLコンパレ
ータマシーンであれば、zrltab[3:0]フィー
ルドが優先して使用される。
【1292】ZRL適合が発生するか否かに応じて、別
のテーブルナンバーが使用される必要がない場合、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]フィールドは
優先して使用される。
【1293】ZRL適合が発生するか否かに応じて、別
のテーブルナンバーが使用される必要がない場合、sm
tab[3:0]及びzrltab[3:0]は同じバ
リューを持つであろう。しかしながら、これはLsim
において奇妙なシミュレーション問題を導く可能性があ
ることに注目。MPEGの場合、ZRLのためにハフマ
ンインデックスナンバーを指示するレジスタをロードす
る明らかな必要はない(JPEGのみの構成)。しかし
ながら、これらは今も選択され、ZRLコンパレータが
「未知」であるかもしれない(従ってどちらが選択され
ようと重大ではない)全ての場合に、smtab[3:
0]及びzrltab[3:0]は同じバリューを持つ
という事実にもかかわらず、ZRLコンパレータは「未
知」となり、次のステートも「未知」になるであろう。 zrltab[3:0] これは選択された指令がステートマシーン指令であれ
ば、ハフマンデコーダによって使用されるであろうテー
ブルナンバーであり、ZRLコンパレータが適合する。 smvlc これは選択された指令がステートマシーン指令であれ
ば、ハフマンデコーダによって使用されるVLCビット
である。 aluzrl[1:0] このフィールドはALUに送られる指令のセレクション
を制御する。それは(指令シーケンスのスタートで記憶
された)パーザーステートマシーンからのコマンドであ
っても、あるいはステートマシーンからのコマンドであ
ってもよい:
【1294】
【表183】 alueob この配線はEOBコンパレータに基づいてALUに送ら
れる指令の修正を制御する。これは単にALU出力モー
ドをzinputに強制する。これは任意のチョイスで
ある;noneから離れた出力モードであれば何でも良
い。これはブロック・エンドコマンドワードがトークン
フォーマッティング部に送られ、そこでそれはデータト
ークンの適切なフォーマッティングを制御する:
【1295】
【表184】 残りのフィールドはALU指令フィールドである。これ
らはALUの説明において適切に文書化される。
【1296】B.2.2.5.4 「ハフマンステート
マシーンの修正」 ステートマシーンの1つの態様では、データユニットイ
ンデックス部は、エスケープコード化されたTcoef
ficientのRUN部分がいつデータユニットイン
デックス部に送られるかを「知る」必要がある。これは
制御ROM内の適切なビットを用いて達成できる一方、
ROMの変更を避けるため、別のアプローチが使用され
てきた。この点に関して、ROMに入るアドレスは監視
され、アドレスバリュー5が検出される。これはRUN
フィールドを処理するROMにおいて指名される適切な
場所である。もちろん、他の被選択アドレスバリューを
使用するようにROMをプログラムしようと思えばでき
たことは自明であろう。更に、制御ROMのビットを使
用する前述のアプローチも利用できたであろう。
【1297】B.2.2.6 「概略ガイドツアー」 本発明では、ハフマンデコーダはhdと呼ばれ、hdは
実際にデータユニットインデックス部を含む(これは編
集されたコード生成の制限により必要とされる)。従っ
て、hdは次の主要ブロックを含む;
【1298】
【表185】 ハフマンモジュールの以下の説明は、当業者であれば容
易に理解できる、図面の詳細な部分において示した様々
なサブシステムエリアの全体的な説明により行われる。
【1299】B.2.2.6.1 「“hd”の説明」 2線式インターフェース制御用のロジックは通常2線式
インターフェースにより制御される3ポート:データ入
力、データ出力、及びコマンドを含む。それに加えて、
入力シフタからの2つの「有効な」線がある:トークン
がin data[7:0]に表示されることを指示す
るtoken validと、データがシリアル上に表
示されることを指示するserial validであ
る。
【1300】発生される最も重要な信号はラッチに行く
イネーブルである。最も重要なものはph1ラッチに対
するイネーブルであるe1である。ph0ラッチの多く
は可能化されないが、2つのイネーブルがこれらのため
に提供され、それらはシリアルデータと関連するe0と
トークンデータと関連するe0tである。
【1301】本発明では、done信号(done、n
otdone、及びそれらのph0バリアントのdon
e0とnotdone0)は、原始ハフマンコマンドが
完了する時を指示する。ハフマンステートマシーンコマ
ンドが実行される場合、doneは全ステートマシーン
コマンドを含む各原始コマンドの完了時に認定されるで
あろう。信号notnewは、全ハフマンステートマシ
ーンコマンドが完了するまで、パーザーステートマシー
ンからの新しいコマンドのアクセプタンスを防止する。
【1302】データユニットインデックス部から受け取
る情報の制御に関して、sizeフィールド用の制御ロ
ジックはJPEG係数デコーディング中にハフマンデコ
ーダに送り返される。これは実際には2つの方法で起こ
る。サイズが正確に1であれば、これは専用信号not
fbone0に送り返される。そうでなければ、データ
ユニットインデックス部の出力から送り返される。(o
ut data[3:0]及び信号fbvalid1は
これが発生するのを指示する。フェッドバックデータの
コマンドレジスタ(シート10)へのマルチプレクシン
グを制御するために信号muxsizeが生み出され
る。) それに加えて、正確に64の係数がデコードされたフィ
ードバックがある。JPEGにおいてEOBはこの場合
にコード化されないので、信号forceeobが作ら
れる。類似により、上述したように、フィードバックサ
イズ用の信号と共に、これが実施されるには実際2つの
方法がある。通常のフィードバックが行われる(jpe
geob)場合、データがフィードバックされるにつれ
て、ラッチi−971だけがロードされ、新しいパーザ
ーステートマシーンコマンドがアクセプトされるまでク
リアされない。信号forceeobはハフマンコード
がデコードされるまで実際に作られない。このように、
固定長コード(つまり、サイズビット)は影響を受けな
いが、次のハフマンコード化情報は強制されたブロック
・エンドにより置き換えられる。サイズが1であり、j
pegeob0が使用された場合、1ビットだけが読み
出されるので、i−1255とi−1256は正確な時
間まで信号を遅らせる。注目すべきことは、ゼロサイズ
を持つ唯一の記号はEOBとZRLであるので、この状
況においてゼロサイズが発生することが不可能であると
いうことである。
【1303】デコーディングはtcoeff tab0
(Tcoeffテーブルを用いるハフマンデコーディン
グ)、mba tab0(MBAテーブルを用いるハフ
マンデコーディング)、及びnop(ノーオペレーショ
ン)を作るためのコマンドのかなりランダムなデコーデ
ィングである。nopを発生させるにはいくつかの理由
がある。サイズゼロの固定長コードはその一つであり、
forceeob信号もその一つであり(EOBを合図
するために出力が作られても、入力シフタから如何なる
データも読み出されるべきではないので)、最後にテー
ブルダウンロード指名が第三の理由である。
【1304】(サイズゼロのFLC、NOPにより作ら
れる)notfrczeroは、NOP指令が使用され
る時に、その結果がゼロであることを保証する。更に、
invertはハフマンデコーディングの前にシリアル
ビットが反転されるべきである時を指示する(セクショ
ン B.2.2.1.1を参照)。ringは変換係数
ringが適用されるべき時を指示する(セクション
B.2.2.1.2を参照)。
【1305】デコーディングは更にcodes−per
−bit ROMのアドレスに関して達成される。これ
らは小さなデータパスROMから構築される。信号は二
重(例えば、cshaとcsla)にされる。アドレス
は選択されるブロックへのUPIアクセスに応じて、ビ
ットカウンタ(bit[3:0])もしくはマイクロプ
ロセッサインターフェースアドレス(key addr
[3:0])から取ることができる。
【1306】追加デコーディングはJPEGテーブル
(EOB、ZRL等)用のハフマンインデックスバリュ
ーを保持するもののようなレジスタのUPI読み出しに
関する。更に含まれるのは、これらのレジスタ及びco
des−per−bit RAMのUPI読み出し用の
トライステートドライバー制御である。
【1307】演算データパスデコーディングも特定の重
要なビット数のために提供される。first bit
はTcoeffの第1の係数トリックに関連して使用さ
れ、bit fiveはTcoeffテーブルの中にリ
ングを適用することに関係する。EOBコンパレータが
デコードされたインデックスバリューに適合する動作を
シミュレートするためのforceeobの使用に注
目。
【1308】extnビットに関して、トークンが入力
シフタから読まれる場合、関連extnビットはそれと
共に読まれる。そうでなければ、extnの最後のバリ
ューは保存される。これはトークンが読まれた後いつで
も、マイクロコードプログラムによるextnビットの
テストを可能にする。
【1309】zerodatが認定される時、ハフマン
出力データの上位4ビットがゼロになるように強いられ
る。これらは固定長コードをデコーディングする時に有
効なバリューを持つだけなので、それらはVLC、トー
クンをデコーディングする時、あるいはNOP指令が何
等かの理由で実施される時はゼロにされる。
【1310】更に、回路は各コマンドが完了する時を検
出し、done信号を発する。本質的に、doneであ
る理由には2つのグループがある;通常の理由と、例外
的な理由である。これらは各々2つの三路マルチプレク
サの1つによって処理される。
【1311】下位マルチプレクサ(i−1275)が通
常の理由を処理する。FLCの場合、信号ndnflc
が使用される。これはビットカウンタをテーブルナンバ
ーと比較するコンパレータの出力である。VLCの場
合、信号ndnvlcが使用される。これは演算データ
パスからの出力であり、式9を直接的に反映する。NO
P指令またはトークンの場合、1つのサイクルだけが必
要であり、従って、システムは無条件にdoneであ
る。
【1312】本発明では、上位マルチプレクサ(i−1
274)が例外的な場合を処理する。JPEGデコーデ
ィングにおいてデコーダがサイズのフィードバックを期
待している(fbexpctd0)場合、1つだけのビ
ットが必要なのでデコーダはdoneである。デコーダ
がTcoeffテーブルを用いて最初の係数の第1ビッ
トを処理している場合、現在のインデックスのビットゼ
ロがゼロである場合、それはdoneである(セクショ
ンB.2.2.1.2を参照)。これらの条件のいずれ
も満たされない場合、doneであるための例外的な理
由はない。
【1313】NORゲート(i−1293)は最終的に
done状態を変形させる。i−570(つまり、デー
タが有効ではない)により生じる状態がdoneを強い
る。これは少しおかしく思われるかもしれない。それは
基本的に、第1のコマンドの(doneが全てのカウン
タ、レジスタ等をリセットする)ための準備のために、
マシーンをdone状態にならせるためにリセット後使
用される。
【1314】信号notdonexは誤差を検出する際
に必要である。誤差を検出すれば、doneがとにかく
強いられるので、通常のdone信号は使用できない。
doneの使用は結合フィードバックループを与えるで
あろう。
【1315】誤差検出及び処理は可能性のある全ての誤
差状態を検出する回路によって行われる。これらはi−
1190において共に0Redである。この場合、i−
1193、i−585及びi−584は3ビットのハフ
マン誤差レジスタを構成する。「実際の」誤差がない場
合に誤差を不能化するi−1253及びi−1254に
注目(セクション B.2.2.3を参照)。
【1316】それに加えて、i−580及びi−579
は関連する回路と共に、誤差検出後最初のコマンドのア
クセプタンスを制御する単純なステートマシーンを提供
する。
【1317】前述したように、制御信号はデータユニッ
トインデックス部及びALUにおいてパイプライン遅延
に合わせるため遅延される。
【1318】Iotd bypassはデータユニット
インデックス部に送られる実際のバイパス信号である。
それは固定長コードがデコードされる時はいつでも、ハ
フマンステートマシーンがバイパスしなければならない
ように制御される時に修正される。
【1319】Aluinstr[32]はALUがパー
ザーステートマシーンに(コンディションコードを)フ
ィードバックするようにさせるビットである。更に、ハ
フマンステートマシーンが制御されている時、信号は
(原始コマンドの1つが完了する都度為されるよりもむ
しろ)一度だけ認定されることが重要である。
【1320】Aluinstr[36]は(他のALU
指令ビットが増分を明記する場合)ALUがブロックカ
ウンタのステップを踏むようにさせるビットである。こ
れも一度だけ認定されなければならない。
【1321】それに加えて、これらのビットはトークン
変換にデータを出力するALU指令のためにのみ認定さ
れねばならない。そうでなければ、カウンタはトークン
変換への最初の出力前に増分され、データトークンにお
いてccという不正確なバリューを生じるかもしれな
い。
【1322】本発明の図示した態様では、ALUがトー
クンフォーマッティング部に出力される場合、alun
ode[1]もしくはalunode[0]のいずれか
が低くなるであろう。
【1323】図127はhdstdpと称されるハフマ
ンステートマシーンデータパスを示す。更にハフマンス
テートマシーンROMの出力を読むためのUPIデコー
ドがある。
【1324】ロケーションの場合に処理するためマルチ
プレクシングが提供される(セクションB2.2.4.
6を参照)。
【1325】aluinstr[3:2]の修正はAL
Uoutsrc指令フィールドをnon−noneに強
いる処理をする(セクションB.2.2.5.3、al
ueobの説明を参照)。
【1326】ハフマンデコーダブロック(x)のための
コマンドレジスタに関して、コマンドの各ビットはコマ
ンドの可能なソース間の選択をする関連マルチプレクサ
を有する。4つの制御信号はこのセレクションを制御す
る:Selholdはレジスタに現在のステートを保持
するようにさせる。
【1327】Selnewはパーザーステートマシーン
から新しいコマンドをロードさせる。これは更に後の使
用のために、元のパーザーステートマシーンのコマンド
を保持するレジスタのローディングをも可能にする。
【1328】Seloldは元のパーザーステートマシ
ーンのコマンドを保持するレジスタからコマンドのロー
ディングを起こさせる。
【1329】/selsmはハフマンステートマシーン
ROMからのコマンドのローディングを起こさせる。
【1330】テーブルナンバーの場合、テーブルナンバ
ーがデータユニットインデックス部の出力データからも
ロードされるので、状況はそれより少し複雑である(s
elholdt及びmuxsize)。
【1331】ラッチはハフマンステートマシーンROM
の中に現在のアドレスを保持する。ロジックは可能な4
つのコマンドのどれが実行されているかを検出する。こ
れらの信号は新しいコマンドの場合スタートアドレスの
下位2ビットを形成するために組み合わされる。
【1332】ロジックは更にステートマシーンROMの
出力が無意味である(通常はコマンドが「単純な」コマ
ンドであるため)時を検出する。信号notignor
eromはステートマシーンのオペレーションを効果的
に不能化し、特にALUに送られる指令の修正を不能化
する。
【1333】fixstate0を生じさせる回路はこ
のステートマシーンの制限されたジャンピング能力を制
御する。
【1334】デコーディングは更にハフマンステートマ
シーンROMへと信号を追いやるために提供される。こ
れはデータパススタイルの結合ROMである。
【1335】escape runの発生はセクション
B2.2.5.4において説明される。
【1336】更に、デコーディングはZRLやEOB等
の記号のためにハフマンインデックスナンバーを保持す
るレジスタの準備をする。これらのレジスタはUPIま
たはデータパスからロードすることができる。cent
er(es[4:0]及びzs[3:0]におけるデコ
ーディングはデコードハフマンインデックスと比較する
ためにどのレジスタまたは一定バリューかを選択するマ
ルチプレクサのためにセレクト信号を発生させている。
【1337】ハフマンステートマシーン用の制御ロジッ
クに関して。ここでは、ハフマンステートマシーンRO
Mからの「指令」ビットは、次に何をすべきか、またA
LU用の指令ワードを如何に修正するかを決定するた
め、様々な条件と組み合わされる。
【1338】本発明では、信号notnew及びnot
oldはハフマンデコーダコマンドレジスタのオペレー
ションを制御するため、シート10上で使用される。そ
れらはここではハフマンインデックスコンパレータ(n
eobmatch及びnzrlmatch)と共に、ス
テートマシーンROM(セクション B.2.2.5.
3において説明される)の中の制御ビットから明らかな
方法で作られる。
【1339】更に、ALUに送られる指令用のソースの
セレクションが行われる。実際のマルチプレクシングは
ハフマンステートマシーンデータパスhfstdpにお
いて行われる。4つの制御信号が発生される。
【1340】ブロック・エンドに遭遇しなかった場合、
aluseldmx(パーザーステートマシーン指令を
選択する)もしくはaluselsm(ハフマンステー
トマシーン指令を選択する)のいずれか1つが作られる
であろう。それに加えて、ALU指令のoutsrcフ
ィールドがそれをzinputに押しやるために修正さ
れる。
【1341】レジスタはテーブルダウンロード中に指名
されたテーブルナンバーを保持する。デコーディングは
codes−per−bit RAMのために提供され
る。追加デコーディングは、ハフマンインデックスナン
バーレジスタが自動的にロードされるように、EOM及
びZRL等の記号がダウンロードされる時を認識する。
【1342】ビットカウンタに関して、コンパレータは
FLCを読む時に、いつ正しい数のビットが読まれてい
るかを検出する。 B.2.2.6.2 「“hddp”の説明」 コンパレータはハフマンインデックスの特別なバリュー
を検出する。レジスタはダウンロード可能なテーブル用
のバリューを保持する。マルチプレクサ(meob
[7:0]及びmzr[7:0])は使用すべきバリュ
ーを選択し、exclusive−orゲート及びゲー
ティングがコンパレータを構成する。
【1343】アダー及びレジスタはセクション B.
2.2.1において説明した式を直接評価する。更なる
説明はここでは不要であると考えられる。排他的論理和
はセクションB.2.2.1.1において説明したデー
タ(i−807)を反転するために使用される。
【1344】codeレジスタは12ビット幅である。
マルチプレクシングアレンジメントはセクションB.
2.2.1.2において説明したring置換を履行す
る。
【1345】データ用のパイプライン遅延及びデコード
化シリアルデータ(index[7:0])とトークン
データ(ntoken0[7:0])間のマルチプレク
シングに関して、ハフマンインデックスバリューはZR
L及びEOB記号の中で決定される。
【1346】Codes−per−bit ROM及び
それらのマルチプレクシングは使用すべきテーブルを決
定するために使用される。テーブルセレクト情報が遅れ
て到着するので、このアレンジメントが使用される。そ
の後全てのテーブルがアクセスされ、正しいテーブルが
選択される。
【1347】Codes−per−bit RAMに関
して、codes−per−bitROMの最終マルチ
プレクシング及びcodes−per−bit RAM
の出力はブロックhdcpbramの内部で起こる。
【1348】B.2.2.6.3 「“hdstdp”
の説明」 本発明において、Hdstdpは2つのモジュールから
成る。hdstdelは適切なパイプラインステージま
で、例えば、それらがALU及びトークン変換に供給さ
れる時まで、パーザーステートマシーン制御ビットを遅
らせることに関係がある。それはALUに送られる指令
ワードの約半分だけを処理し、残りは他のモジュールh
dstmodにより処理される。
【1349】Hdstmodはハフマンステートマシー
ンROMを含む。この指令の数ビットはハフマンステー
トマシーン制御ロジックにより使用される。残りのビッ
トは(パーザーステートマシーンからの)ALU指令ワ
ードのhdstdelにおいて処理されない部分を置き
換えるために使用される。
【1350】Hdstmodは自明であり、何の説明も
必要ではない。パイプラインディレイレジスタだけがあ
る。
【1351】Hdstdelも非常に単純であり、RO
M及びALU指令を修正するマルチプレクサにより処理
される。回路の残部はハフマンステートマシーンROM
出力の半分に対するUPI読み取りアクセスに関係す
る。バッファも制御信号のために使用される。
【1352】B.2.3 「トークンフォマッティン
グ」 本発明によるハフマンデコーダトークンフォマッティン
グは、ハフマンブロックの終了部にある。その機能は、
その名前が示す通り、ハフマンデコーダからのデータを
適当なトークン構造にフォーマットすることである。入
力データはマイクロインストラクションワードコマンド
フィールドの制御下、マイクロインストラクションワー
ドの中のデータで多重送信される。ブロックは2つの操
作モード;データワードとデータトークンを持っている B.2.3.1 「マイクロインストラクションワー
ド」
【1353】
【表186】 B.2.3.2 「動作モード」
【1354】
【表187】 B.2.3.2.1 「データワード」 本モードでは、入力の最上位8ビットが出力に送られ
る。底部8ビットはマスクフィールドに応じて、入力の
底部8ビット、マイクロインストラクションワードのト
ークンフィールド、もしくはその両者の混合物のいずれ
かである。マスクは、 out data[16:8]=in data[1
6:8] out data{7:0]=(Token[7:0]
&(ff<<mask))in data[7:0] のミックスにおける入力ビット数を表す。
【1355】マスクが0x8以上に設定された場合、出
力データは入力データに等しい。本モードはnon−デ
ータトークンにおける出力ワードに用いられる。マスク
を0に設定すると、out data[7:0]はマイ
クロインストラクションワードのトークンフィールドと
なる。本モードは如何なるデータも含まないトークンヘ
ッダを出力するために使用される。トークンヘッダがデ
ータを含む場合、データビット数はマスクフィールドに
より与えられる。
【1356】外部Extn(Ee)が設定されると、o
ut extn=in extnとなり、そうでなけれ
ば、out extn=De.Btであり、Ebはdo
n’t careである。 B.2.3.2.2 「データトークン」 本モードはデータトークンとフォーマッティングするた
めに使用され、信号、first coefficie
ntに応じて2つの関数がある。リセットにおいて、f
irst coefficientが設定される。最初
のデータ係数がcmdを1に設定したマイクロインスト
ラクションワードと共に到着すると、out data
[16:2]は0x1に設定され、out data
[1:0]はマイクロインストラクションワードのBt
フィールドの値を取る。これはデータトークンのヘッダ
である。このワードがアクセプトされると、コマンドを
伴う係数がレジスタRLにロードされ、first c
oefficientがEbの値を取る。次の係数が到
着すると、out data[16:0]はRLに記憶
された前の係数を取る。これはブロック・エンドに遭遇
する時、Ebが設定され、first coeffic
ientが設定され、次のデータトークン、つまり 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 の準備が整うことを確実にする。
【1357】B.2.3.3 「注釈」 本発明によれば、指令ビットのほとんどは通常の方法で
パーザーステートマシーンによって供給される。しかし
ながら、実際には2つのフィールドが他の回路により供
給される。上述のBtフィールドはALUブロックの出
力に直接接続される。この2つのビットフィールドはc
cもしくはcolor componentの現在のバ
リューを与える。こうして、データトークンヘッダが構
築されると、最も低いオーダーの2ビットがALUカウ
ンタから直接色成分を取り出す。第2に、ブロック・エ
ンド記号idがデコードされる時はいつでも(あるいは
ブロック内の最後の係数がコード化されるので、1が仮
定されるJPEGの場合)、Ebビットがハフマンデコ
ーダにおいて認定される。
【1358】ハフマンデコーダにおいてin extn
信号が引き出される。それはトークンに関して、通常の
方法でトークンワードと共に拡張ビットが供給される時
に意味を持つだけである。
【1359】B.2.4 「パーザーステートマシー
ン」 本発明のパーザーステートマシーンは実際非常に単純な
回路片である。複雑なのはマイクロコードROMのプロ
グラミングであり、それはセクション B.2.5にお
いて論じる。
【1360】本質的に、マシーンは現在のアドレスを保
持するレジスタから構成される。このアドレスはマイク
ロコードROMにおいてルックアップされ、マイクロコ
ードワードを作り出す。更に、アドレスは単純なインク
リメンタにおいて増分され、この増分されたアドレスは
次のステートのために使用される2つの可能なアドレス
の1つである。他方のアドレスはマイクロコードROM
自体の中のフィールドである。このように、各指令は潜
在的にジャンプ指令であり、プログラムにおいて明記さ
れるロケーションにジャンプすることができる。ジャン
プが行われなければ、制御はROM内の次のロケーショ
ンへと進む。
【1361】一連の16のコンディションコードビット
が提供される。これらのコンディションの1つが(マイ
クロコードROM内のフィールドにより)選択され、そ
れに加えて、(やはりマイクロコードROM内のビット
により)反転され得る。結果的に生じる信号が増分され
たアドレスまたはマイクロコードROM内のジャンプア
ドレスのいずれかを選択する。コンディションの1つは
Falseとして評価するため配線される。このコンデ
ィションが選択されると、ジャンプは発生しない。ある
いはその代わりに、このコンディションが選択され、反
転されて、ジャンプ、つまり無条件ジャンプが常に発生
する。
【1362】
【表188】 B.2.4.1 「2線式インターフェース制御」 本発明による2線式インターフェース制御は本ブロック
では少し異例である。パーザーステートマシーンとハフ
マンデコーダ間に2線式インターフェースがある。これ
はコマンドの進行を制御するために使用される。パーザ
ーステートマシーンはROMから次のコマンドを読むた
めに前進する前に、所定のコマンドがアクセプトされる
まで待つであろう。それに加えて、コンディションコー
ドがALUからのワイヤを通して送り返される。
【1363】各コマンドはマイクロコードROM内にビ
ットを持ち、それはフィードバックを待つべきことを明
記できるようにする。これが発生した場合、その指令が
ハフマンデコーダによりアクセプトされた後、ALUか
らのフィードバックワイヤが認定されるまで新しいコマ
ンドは表示されない。このワイヤ、fb validは
現在ALUにより供給されているコンディションコード
が、それらがフィードバックを待つことを求めるコマン
ドと関連するデータを反映するという意味で有効である
ことを指示する。
【1364】本発明によれば、デコーディング(または
プロセシング)の結果として、特別なデータ片にジャン
プするための次のステートを決定する条件付きジャンプ
コマンドを構築する際に、その特徴が利用される。2線
式制御は特定のコマンドが所定のプロセシングブロック
(つまり、この場合はALU)に到達する時が不確かで
あることを意味するので、この便宜なくしては、パイプ
ライン内のデータに依存するコンディションをテストす
ることは出来ないであろう。
【1365】ハフマンデコーダに全ての指令が送られる
わけではない。ある指令はデータパイプラインの必要な
く実行できる。これらはジャンプ指令である傾向があ
る。マイクロコードROM内のビットは指令がハフマン
デコーダに表示されるか否かを選択する。そうでなけれ
ば、ハフマンデコーダが指令をアクセプトする必要はな
く、従って、パイプラインが失速していても、こうした
状況で実行を続けることができる。
【1366】B.2.4.2 「イベント処理」 パーザーステートマシーンの中に2つのイベントビット
が置かれる。1つはハフマンイベントと称され、他の1
つはパーザーイベントと称される。
【1367】パーザーイベントは最も単純である。この
イベントにより監視される「コンディション」はマイク
ロコードROM内のビットにすぎない。このように、指
令はこのビットを設定することによりパーザーイベント
を生じさせることができる。典型的に、これを行う指令
は適当な定数をrom controlレジスタに書き
込み、割り込みサービスルーチンが割り込みの原因を判
断することができるようにする。
【1368】パーザーイベントをサービスした後(ある
いは、イベントがマスクアウトされた場合直ちに)、制
御は停止したポイントでリカバーする。そのイベントを
起こさせた指令がジャンプ指令を持っている(その状態
が本物であると評価する)場合、ジャンプは通常の方法
で行われる。従って、ジャンプをコード化することによ
るサービス後、誤差ハンドラにジャンプすることができ
る。
【1369】ハフマンイベントはそれとは異なる。監視
される状態は3つのハフマン誤差ビットのORである。
現実に、この状態は非常に単純な方法でパーザーイベン
トに対して処理される。しかしながら、ハフマンデコー
ダからの追加ワイヤ、huffintrptは誤差が発
生する時はいつでも認定される。これはマイクロコード
プログラムにおいて制御を誤差ハンドラにジャンプさせ
る。
【1370】従って、ハフマン誤差が発生する時、シー
ケンスは割り込み発生とブロック・ストップを含む。サ
ービシング後、制御は誤差ハンドラに伝送される。ca
llメカニズムは無く、通常の割り込みとは異なり、誤
差処理に続いて発生する誤差の前にマイクロコードの中
のポイントに戻ることは不可能である。
【1371】ハフマン誤差が発生することなく、huf
fintrptを認定することができる。これはセクシ
ョン B.2.2.3において論じたように、no−e
rror誤差の特別な場合に発生する。この場合、如何
なる割り込みも(マイクロプロセッサインターフェース
に)発生せず、制御は(マイクロコード内の)誤差ハン
ドラに送られる。ハフマン誤差レジスタはこの場合明ら
かであるので、マイクロコード誤差ハンドラは、こうし
た状況であり、それに応じて応答することを決定するこ
とができる。
【1372】B.2.4.3 「特別なロケーション」 マイクロコードROMには幾つかの特別なロケーション
がある。ROM内の最初の4つのロケーションは主プロ
グラムへのエントリポイントである。制御はリセット時
にこれら4つのロケーションの1つに進む。ジャンプす
べきロケーションはALUレジスタ、coding s
td.において選択されるコーディングスタンダードに
より決定される。このロケーションが真のリセットによ
りそれ自体ゼロにリセットされるので、制御はロケーシ
ョンゼロに進む。しかしながら、CED H TRAC
E内のUPIレジスタビットCED H TRACE
RSTを用いてパーザーステートマシーンだけをリセッ
トすることができる。この場合、coding std
レジスタはリセットされず、制御は最初の4つのロケー
ションの適当な1つに進む。
【1373】第2の4つのロケーション(0x004〜
0x007)はハフマン割り込みが起こる時に使用され
る。典型的に、実際の誤差ハンドラがこれらのロケーシ
ョンの各々に置かれる。ここでも、ロケーションの選択
はコーディングスタンダードの結果として為される。
【1374】B.2.4.4 「トレーシング」 診断上の助けとして、トレースメカニズムが実装され
る。これはマイクロコードがシングルステップ化される
ようにする。レジスタCED H TRACE内のビッ
トCED H TRACE EVENTとCED H
TRACE MASKがこれを制御する。その名前が示
すように、それらは非常に良く似た方法で通常のイベン
トビットに対して作用する。しかしながら、幾つかの違
い(特に、UPI割り込みが生じないこと)により、そ
れらは他のイベントビットと一緒にグループ分けされる
ことはない。
【1375】CED H TRACE MASKが1に
設定される時にトレーシングメカニズムがオンにされ
る。各マイクロコード指令がROMから読まれた後、し
かしそれがハフマンデコーダに表示される前に、トレー
スイベントが発生する。この場合、CED H TRA
CE EVENTが1になる。如何なる割り込みも生じ
ないので、それが登録されなければならない。全マイク
ロコードワードがレジスタCED H KEY DMX
WORD 0〜CED H KEY DMXWORD
9において利用できる。その指令は必要であれば、こ
の時点で修正できる。CED H TRACE EVE
NTに1を書き込むと、その指令を実行させ、CED
H TRACE EVENTをクリアする。この後すぐ
に、実施すべき次のマイクロコードワードがROMから
読み出され、新しいトレースイベントが発生する。
【1376】B.2.5 「マイクロコード」 マイクロコードはアッセンブラhppを用いてプログラ
ムされるが、それは非常に単純なツールで、抜取りの大
部分がマクロプリプロセッサを使用して行われる。標準
のCプリプロセッサcppがこの目的のために使用され
る。
【1377】コードは次のように指示される。
【1378】Ucode.uは主ファイルである。ま
ず、これはトークンを定義するtokens.hを含
む。次に、regfile.hはALUレジスタmap
を定義する。fields.uはマイクロコードワード
内の様々なフィールドを定義し、フィールド内の各々の
可能なビットパターンのために定義された記号リストを
提供する。次に、コードの中で使用されるラベルが定義
される。このステップの後、基本的な指令を明確にする
多数のcppmacrosを定義するために、inst
r.uが含まれる。次に、errors.hがパーザー
イベントを定義するナンバーを定義する。次に、unw
ord.uはマイクロコードワードを構築するためにフ
ィールドが置かれるオーダーを定義する。
【1379】残りのucode.uはマイクロコードプ
ログラム自体である。
【1380】B.2.5.1 「指令」 本セクションでは、ucode.uにおいて定義される
様々な指令を説明する。多くの場合、1つのテーマ(特
にALU指令)に関して変形が少ないので、全ての指令
に関する説明をここで行うわけではない。
【1381】B.2.5.1.1 「ハフマン及びデー
タインデックス指令」 本発明では、ハフマンデコーダはH NOP指令を使用
する。それはノーオペレーション指令である。ハフマン
は如何なるデータもデコードされないという意味におい
て、何もしない。この指令により作られるデータは常に
ゼロである。従って、関連指令はALUに送られる。
【1382】次の指令はトークングループ;H TOK
SRCH、H TOKSKIP PAD、H TOKS
KIP JPAD、H TOKPASS及びH TOK
READである。これらは総て入力シフタからのトーク
ンを読み出し、それらを残りのマシーンに送る。H T
OKREADは1つのトークンワードを読む。H TO
KPASSはゼロextnビットまでの全トークンを読
むために使用できる。関連コマンドはトークンの各ワー
ドのために繰り返される。H TOKSRCHはトーク
ンの前の全てのシリアルデータを捨て、1つのトークン
ワードを読む。H TOKSKIP PADはパディン
グビット(H.261及びMPEG)をとばし、1つの
トークンワードを読む。H TOKSKIP JPAD
はJPEGパディングのために同じことをする。
【1383】H FLC(NB)はNBビットの固定長
コードを読む。
【1384】H VLC(TBL)は(mnemoni
c、例えばH VLC(tcoeff)として送られ
る)指示されたテーブルを用いて、vicを読む。
【1385】H FLC IE(NB)はH FLCと
同様であるが、ignore errorsビットが設
定される。
【1386】H TEST VLC(TBL)はH F
LCと同様であるが、ハフマンインデックスが無修正の
データユニットインデックス部を通して送られるよう
に、バイパスビットが設定される。
【1387】H FWD R及びH BWD RはAL
Uレジスタr fwd r sizeとr bwd r
sizeにより各々指示されるサイズのFLCを読
む。
【1388】H DCJはJPEGスタイルのDC係
数、ALUからのテーブルナンバーを読む。
【1389】H TC/OE/FF及びH DCTC/
OE/FFは変換係数を読む。HDCTC/OE/FF
において、第1のcoeffビットが設定され、non
−intraブロックのためのものである一方、H T
C/OE/FFはDCタームが読まれた後のintra
ブロックのためである。
【1390】H NOMINATE(TBL)は次のダ
ウンロードのためのテーブルを指名する。
【1391】H DNL(NB)はNBビットを読み、
それらを指名されたテーブルにダウンロードする。
【1392】B.2.5.1.2 「ALU指令」 実際には、詳細に説明するにはあまりに多くのALU指
令がありすぎる。Mnemonics構築される基本的
な方法について論じ、これにより指令が読めるようにな
るべきである。更に、これらは当業者の一人で有れば容
易に理解できるものでなければならない。
【1393】多くのALU指令は場所から場所へとデー
タを移動させることに関係し、従って、一般的な「ロー
ド」指令が使用される。Mnemonicにおいて、A
LDxyは、yの内容がxにロードされる、つまりデ
スティネーションが先に記録され、ソースが次にくるこ
とが解る。
【1394】
【表189】 例として、LDAIはAレジスタにALUのデータ入力
ポートからのデータをロードする。ALUレジスタファ
イルが指定されると、ニマニックはLDAF(RA)が
レジスタファイル内のロケーションRAの内容をAにロ
ードするようにアドレスを取るであろう。
【1395】ALUはソースからデスティネーションに
動かされるにつれて、データを修正する能力を有する。
この場合、算術はソースデータの一部として指示され
る。従って、Mnemonic LDA AADDF
(RA)は、Aレジスタの現在の内容プラス、レジスタ
ファイル内の指示されたロケーションの内容をAにロー
ドする。別の例はLDA ISGXRであり、それは入
力データを取り、サインはRUNレジスタの中で指示さ
れるビットから伸び、Aレジスタにその結果を記憶す
る。
【1396】多くの場合、同じ結果のために1つ以上の
デスティネーションが指定される。ここでも、例とし
て、LDF LDA ASUBC(RA)では、Aマイ
ナス定数の結果をAレジスタ及びレジスタファイルの両
方にロードする。
【1397】他のニマニックスは特別な動作のために存
在する。例えば、CLRAはAレジスタをクリアするた
めに使用され、RMBCはマクロブロックカウンタをリ
セットするために使用される。これらはかなり自明であ
り、instr.uの中のコメントにおいて説明され
る。
【1398】1つの例外は、オペレーションの結果が通
常の動作に加えてトークンフォマッティングに出力され
ることを指示するために、接尾辞Oを使用することであ
る。このように、LDFI O(RA)は入力データを
記憶し、更にそれをトークンフォマッティングに送る。
あるいはその代わりに、所望であれば、これはLDF
LDO I(RA)であってもよいであろう。 B.2.5.1.3 「トークンフォマッティング指
令」 これはT NOP「ノーオペレーション」指令である。
これは実際には、ノーオペレーション指令を構築するこ
とは不可能なので、誤称である。しかしながら、これは
ALUがトークンフォマッティングに出力されないの
で、その指令が重要ではない時に使用される。
【1399】T TOKはトークンワードを出力する。
【1400】T DATは(ハフマンステートマシーン
指令と共にのみ使用される)データトークンワードを出
力する。
【1401】T GENT8は一定フィールドの8ビッ
トに基づいてトークンワードを生み出す。
【1402】T GENT8EはT GENT8と同様
であるが、拡張ビットは1である。T OPD(NB)
は一定フィールドから来るビットの残部と共に、出力の
底部NBビットからのデータのNBビット。
【1403】T OPDE(NB)はT OPDと同様
であるが、拡張ビットが高い。
【1404】T OPD8はT OPD(8)用のショ
ートハンドである。
【1405】T OPD8EはT OPDE(8)用の
ショートハンドである。
【1406】B.2.5.1.4 「パーザーステート
マシーン指令」 この指令、D NOPはノーオペレーション、つまり、
アドレスは普通に増加し、パーザーステートマシーンは
何も特別なことをしない。指令の残部はデータパイプラ
インに送られる。待機は発生しない。
【1407】D WAITはD NOPと同様である
が、フィードバックが発生するのを待つ。
【1408】単純なジャンプグループ。D JMP(A
DDR)及びD JNX(ADDR)のようなニマニッ
クスは、条件が満たされればジャンプする。指令はハフ
マンデコーダに出力されない。
【1409】外部ジャンプグループ。D XJMP(A
DDR)及びD XJNX(ADDR)のようなニマニ
ックス。これらは上記の単純な相対物と同様であるが、
その指令はハフマンデコーダに出力される。
【1410】ジャンプ及び待機グループ。D WJNZ
(ADDR)等のニマニックス。これらの指令はハフマ
ンデコーダに出力され、パーザーは状態を評価する前
に、ALUからのフィードバックを待つ。
【1411】以下のニマニックスは状態自体のために使
用される。
【1412】
【表190】 D EVENTはイベントの発生を引き起こす。
【1413】D DELTはディフォルト指令の構築の
ためである。これはイベントを引き起こし、ラベルdf
ltを持つロケーションにジャンプする。この指令はR
OMを満たすために使用され、未使用のロケーションが
トラップされるので、実行されてはならない。
【1414】D ERRORはイベントを引き起こし、
誤差からのリカバリを企てると仮定されるラベルsrc
h dispatchにジャンプする。セクションB.
3 「ハフマンデコーダALU」 B.3.1 「序文」 本発明によれば、ハフマンデコーダALUサブブロック
はハフマンデコーダブロック用の全般的な算術的及び論
理的機能性を提供する。それは加算及び減算操作、様々
なタイプのサイン拡張操作、及び入力データのrun−
sign−levelトリプルズへのフォーマッティン
グを行う能力を有する。更に、それはその正確な操作及
び構成が、入力データと同期的に、つまり2線式インタ
ーフェース制御下に、ALUに到着するマイクロインス
トラクションワードにより明記される柔軟な構造を有す
る。
【1415】36ビットの指令及び12ビットデータ入
力ポートに加えて、ALUは6ビットランポート及び
(実際にはトークンバスの上にある)8ビット一定ポー
トを持つ。これらの全ては、マイクロインストラクショ
ンワードを除き、ALUデータパスを通して各々の幅の
バスを駆動する。拡張ビットを表し、17ビットラン・
サイン・レベルと共に出力される(out data)
マイクロインストラクションワード内に1ビットがあ
る。ALUデータパスの各端に2線式インターフェース
と、それら自身の有効な信号、cc validと共に
出力される一連のコンディションコードがある。ALU
を介して他のハフマンデコーダサブブロック及びマイク
ロプロセッサインターフェースにアクセス可能なレジス
タファイルがある。
【1416】B.3.2.2 「基本構造」 ハフマンALUの基本構造は図135に示す通りであ
る。それは以下の構成要素を含む: 入力ブロック 出力ブロック コンディションコードブロック ソースマルチプレクシングを備えたAレジスタ ソースマルチプレクシングを備えたRunレジスタ(6
ビット) ソースマルチプレクシングを備えたアダー/サブトラク
ター ソースマルチプレクシングを備えたサイン拡張ロジック レジスタファイル (出力ブロックを除き)これらのブロックの各々はその
出力をデータパスを通って走るバス上に押しやり、これ
らのバスは次にブロックソース用のマルチプレクシング
への入力として使用される。例えば、アダーはAレジス
タに対する可能な入力の1つである、それ自身のデータ
パスバスを有する。同様に、Aレジスタはアダーに対す
る可能な入力の1つを形成するそれ自身のバスを有す
る。この点で、マイクロインストラクションワードに関
するセクション7において明記したように、全ての可能
性のサブセットだけが存在する。
【1417】単一サイクルにおいて、アッドベースの指
令もしくはサイン拡張ベース指令のいずれかを実行する
ことが可能である。更に、それらのオペレーションが厳
密に平行である場合に限り、それらの両方を単一サイク
ルにおいて実行してもさしつかえない。換言すれば、加
算してサイン拡張、あるいはサイン拡張して加算のシー
ケンスは許されない。レジスタファイルは単一サイクル
において読み取られるか書き込まれるが、その両方はで
きない。
【1418】出力データは3つのフィールドを持つ: ・ラン − 6ビット ・サイン − 1ビット ・レベル − 10ビット データがALUを通してまっすぐ送られる場合、入力デ
ータレジスタの最も重要性の少ない11ビットがサイン
及びレベルフィールドにラッチされる。
【1419】制限されたALUのマルチサイクルオペレ
ーションをプログラムすることができる。この点で、必
要なサイクル数はレジスタファイルロケーションの内容
により決められ、そのアドレスはマイクロインストラク
ションにおいて明記され、反復カウンタが1にまで減少
する間に、同じオペレーションが繰り返し実行される。
この設備は、典型的に、左方向のシフトを行うために使
用され、アダーを用いてAレジスタをそれ自体に加算
し、その結果をAレジスタに戻して記憶する。
【1420】B.3.3 「アダー/サブトラクターサ
ブブロック」 これは12ビット幅のアダーであり、そのinput2
への任意反転と、carry−inビットの任意セッテ
ィングを持つ。出力は12ビットの合計であり、car
ry−outは使用されない。オペレーションには7つ
のモードがある: ・ADD:セットのキャリーをゼロに加算する: input1 + input2 ・ADC:セットのキャリーを1に加算する: input1 + input2+1 ・SBC:input2を反転し、セットのキャリーを
ゼロに: input1 − input2 − 1 ・SUB:input2を反転し、セットのキャリーを
1に: input1 − input2 ・TCI:input2<0であれば、SUBを使用
し、そうでなければADDを使用する。これは2の補数
値からマグニチュードバリューを得るために、ゼロに設
定されるinput1と共に使用される。
【1421】DCD(DC差):input2<0であ
れば、ADCを行い、そうでなければADDを行う。
【1422】VRA(ベクトル残差アッド):inpu
t1<0であれば、ADCを行い、そうでなければSB
Cを行う。
【1423】B.3.4 「サイン拡張サブブロック」 これは様々なモードでサインがサイズ入力からの入力デ
ータを拡張する12ビットユニットである。サイズは0
〜11までの4ビットバリューである(0は最も重要で
ないビットに関し、11は最も重要なビットに関す
る)。出力は12ビット修正データバリューであり、
「サイン」ビットである。
【1424】SGXMODE=NORMALでは、si
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=1 SGXMODE=DIFMAGでは、size−thビ
ットがゼロであれば、size−thビット以下の全て
のビットは反転される一方、上記の全てのものは変化せ
ずそのままである。size−thビットが1であれ
ば、全てのビットは変化せずに残る。両方の場合に、サ
インはsize−thビットの逆数を取る。これはAC
差バリューのマグニチュードを得るために使用される。
例えば: data = 0000 1010 1010 size = 2 output = 0000 1010 1101、sign=1 data = 0000 1010 1010 size = 1 output = 0000 1010 1101、sign=0 SGXMODE=DIFCOMPでは、size−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
つのバイト(16ビット)があり、その内特定のビット
がALU/レジスタファイルによって作られる。これら
はサインコンディションコード、ゼロコンディションコ
ード、拡張コンディションコード、及び変化検出ビット
である。これらのコードの最後の2つは、パーザーによ
って他のものと同じようには使用されないので、実際に
はコンディションコードではない。
【1425】サイン、ゼロ、及び拡張コンディションコ
ードはパーザーが更新するように指令を出す時に更新さ
れ、これら各々の指令のために、コンディションコード
有効信号が一度だけ高いパルスで送られる。
【1426】サインコンディションコードは単にラッチ
されるサイン拡張サイン出力であり、一方、ゼロコンデ
ィションコードはAレジスタへの入力がゼロである場合
に、1に設定される。拡張コンディションコードはOU
TSRCとは無関係にラッチされる入力拡張ビットであ
る。
【1427】コンディションコードは特定のコンディシ
ョンタイプを評価するために使用され得る: ・結果は定数に等しい − サブトラクトを使用し、ゼ
ロコンディション ・結果はレジスタ値に等しい − サブトラクトを使用
し、ゼロコンディション ・レジスタは定数に等しい − サブトラクトを使用
し、ゼロコンディション ・レジスタビットセット − サイン拡張を使用し、サ
インコンディション ・結果ビットセット − サイン拡張を使用し、サイン
コンディション サイン拡張及びサインコンディションコードの組合せを
使用する場合、従来の論理ANDの場合のように多重ビ
ットを評価するというより、1つの特定のビットを評価
することだけが可能であることに注目。
【1428】本発明において、変化検出ビットはゼロコ
ンディションコードとして同じロジックを使用して作ら
れるが、関連する有効な信号を持ってはいない。マイク
ロインストラクション内のビットは、レジスタファイル
に最近書き込まれたバリューが既に存在しているものと
異なる(2つのクロックサイクルが必要であり、まずR
EG−MODEをREADに設定し、次にREGMOD
EをWRITEに設定することを意味する)場合に、変
化検出ビットを更新すべきであることを指示する。次
に、変更されたバリューが検出された場合、マイクロプ
ロセッサの割り込みが開始される。変化検出ビットは通
常の方法でChange Detectを起動させるこ
とによりリセットされるが、REGMODEはREAD
に設定される。
【1429】(レジスタファイルの一部を形成する、下
記参照)ハードワイヤードマクロブロックカウンタ構造
も、次のようなコンディションコードを作り出す:Mb
Start、Pattern Code、Resta
rt及びPic Start。
【1430】B.3.6 「レジスタファイル」 レジスタファイル用のアドレスマップを下記に示す。そ
れはALUデータパス及びUPIの両方に共通である7
ビットアドレススペースを使用する。多くのロケーショ
ンはALUによってアクセスすることができず、これら
は典型的にハードワイヤードマクロブロック構造の中の
カウンタであり、ALU自体の中のレジスタである。後
者のレジスタは専用のアクセスを持っているが、UPI
用のアドレスマップの一部を形成する。(表において0
によってオーバーサイズが表示される)あるマルチバイ
トのロケーションは、1つのALUアドレスと、多重U
PIアドレスを持つ。同様に、成分カウント、CC(表
ではIで指示される)によりインデックスされるレジス
タグループは、ALUにより1つのロケーションとして
処理される。これは初期設定及びリセッティングのた
め、またブロックレベルのオペレーションのためにマイ
クロプログラミングを容易にする。
【1431】専用ALUレジスタ(UPIリードオンリ
ー)を除き、全てのロケーションはリード/ライトであ
り、全てのカウンタは指令ワード内のビットによってゼ
ロにリセットされる。パターンコードレジスタは右方向
シフトの能力を持ち、その最も重要でないビットがPa
ttern Codeコンディションビットを形成す
る。ハードワイヤードマクロブロック構造の全てのレジ
スタは表中Mで表示され、更にカウンタ(n−ビット)
であるものはCnという注釈が付けられる。
【1432】本発明では、特定のロケーションはハフマ
ンサブシステムコーディングスタンダードの他の部分、
2つのr−sizeロケーション、及びハフマンデコー
ダに対するac huffテーブル及びdc huff
テーブルの各々のための1つのロケーション(1ビット
ワード)にハードワイヤードされる内容を持つ。
【1433】太字のアドレスはロケーションがALU及
びUPIの両方でアクセス可能であることを示し、そう
でなければ、それらはUPIアクセスだけを持つ。AL
UによりCCを通して指示されないレジスタグループ
は、指令ワードの中で明記される1つのALUアドレス
を持つことができ、CCはアクセスすべきグループ内の
物理的ロケーションを選択するデータトークンあろう。
ALUアドレスは、従来は最初のアドレスを使用すべき
であったが、グループ内のどのレジスタのものであって
もよい。これは、実際にはどちらのアドレスであっても
充分であるが、ペアのアドレスのうち低い方のアドレス
を使用して、アクセスされるべきマルチバイトのロケー
ションの場合にもあてはまる。ロケーション2E及び2
Fはトップレベルのアドレスマップ(Tで表示される)
において、つまりキーホールレジスタを通してだけでは
なく、アクセス可能であることに注目。これら2つのロ
ケーションもゼロにリセットされる。
【1434】レジスタファイルはアクセススピードを改
良するため、4つの「バンク」に物理的に区画される
が、これは如何なる方法でもアドレシングに影響を及ぼ
さない。主テーブルはMPEG用のアロケーションを示
し、2つの繰り返されるセクションがJPEGとH.2
61用のバリエーションを各々提供する。
【1435】
【表191】
【1436】
【表192】
【1437】
【表193】
【1438】
【表194】
【1439】
【表195】
【1440】
【表196】
【1441】
【表197】
【1442】
【表198】
【1443】
【表199】
【1444】
【表200】 B.3.7 「マイクロインストラクションワード」 本発明によれば、ALUマイクロインストラクションワ
ードは多くのフィールドに分けられ、その各々が上記構
造の異なる局面を制御する。指令ワードの中で使用され
る全ビット数は36であり、(拡張ビット入力のために
はプラス1)及びフィールドを横切る最小限度のエンコ
ーディングが採用され、ハードウェア構成の最大限度の
柔軟性が維持される。指令ワードは下記に詳述するよう
に区画される。ディフォルトフィールドバリュー、つま
り、ALUもしくはレジスタファイルのステートを変更
しないものがイタリック体で示されている。
【1445】
【表201】
【1446】
【表202】
【1447】
【表203】
【1448】
【表204】
【1449】
【表205】 セクションB.4 「バッファマネージャ」 B.4.1 「序文」 本文書は本発明によるバッファマネージャの目的、動作
及び実装を説明する(bman)。
【1450】B.4.2 「展望」 バッファマネージャはDRAMインターフェース用に4
つのアドレスを提供する。これらのアドレスはDRAM
内のページアドレスである。DRAMインターフェース
はDRAM内に2つのFIFO、コード化データバッフ
ァとトークンデータバッファを維持する。従って、4つ
のアドレスのために、各バッファのためのリードアドレ
スとライトアドレスがある。
【1451】B.4.3 「インターフェース」 バッファマネージャはDRAMインターフェースとマイ
クロプロセッサに対してのみ接続される。マイクロプロ
セッサはB.4.4において示される「初期設定レジス
タ」を設定するためだけに使用する必要がある。DRA
Mインターフェースを備えたインターフェースは、各ア
ドレスのためにREQuest/ACKnowledg
eプロトコールにより制御される4つの18ビットアド
レスである。(バッファマネージャはデータパスの中に
はないので、バッファマネージャは2線式インターフェ
ースが欠けている。) 更に、バッファマネージャはDRAMインターフェース
クロック発生器をオフにし、DRAMインターフェース
スキャンチェインをオンにする。
【1452】B.4.4 「アドレス計算」 各バッファ用のリードアドレス及びライトアドレスは9
個の18ビットレジスタから作られる:− 初期設定レジスタ(マイクロプロセッサからのRW) ・BASECB − コード化データバッファのベース
アドレス ・LENGTHCB − (コード化データバッファの
ページにおける)最大サイズ ・BASETB − トークンデータバッファのベース
アドレス LENGTHTB − トークンデータバッファの(ペ
ージにおける)最大サイズ ・LIMIT − DRAMの(ページにおける)サイ
ズ ダイナミックレジスタ(マイクロプロセッサからのR
O) ・READCB − BASECBに関するコード化デ
ータバッファリードポインタ ・NUMBERCB − READCBに関するコード
化データバッファライトポインタ ・READTB − BASETBに関するトークンデ
ータバッファリードポインタ ・NUMBERTB − READTBに関するトーク
ンデータバッファライトポインタ アドレスを計算するには:− readaddr=(BASE+READ)mod L
IMIT writeaddr=(((READ+NUMBER)
mod LENGTH)+BA SE)mod LIM
IT バッファがDRAMのまわりを包むことがあるので、m
od LIMITという用語が用いられる。
【1453】B.4.5 「ブロックの説明」 本発明では、バッファマネージャはスノーパがDRAM
インターフェース接合部を監視するリングの中で接続さ
れる3つのトップレベルのモジュールで構成される。モ
ジュールはbmprtize(プライオリティ)、bm
instr(指令)であり、bmrecalc(再計
算)はそのオーダーのリングの中に配置され、omsn
oop(スノーパ)はアドレス出力の上に配置される。
【1454】モジュール、BmprtizeはREQ/
ACKプロトコール、バッファ用のFULL/EMPT
Yフラグを処理し、各アドレスのステート、つまり、i
sit a valid address?を維持す
る。この情報から、それは(もしある場合)どのアドレ
スを再計算すべきであるかをbminstrに命じる。
更に、それはFULL/EMPTYフラグを示すBUF
CSR(status)マイクロプロセッサレジスタ
を操作し、またマイクロプロセッサライトアクセスをバ
ッファマネージャレジスタに対して制御する、buf
accessマイクロプロセッサレジスタを操作する。
【1455】モジュール、Bminstrは、bmpr
tizeによりアドレスを計算するように命じられる
と、6つの指令(2サイクル毎に1つ)を出して、アド
レスを計算するためにbmrecalcを制御する。
【1456】モジュール、Bmrecalcはbmin
strの指令の下、アドレスを再計算する。それは2サ
イクル毎に指令を動かし、初期設定レジスタ及びダイナ
ミックレジスタの全て及び加算、減算及びモジュラスが
できる単純なALUを含む。それはそれが検出するFU
LL/EMPTYステートのSbmprtizeを知ら
せ、それが完了すると、アドレスを計算する。
【1457】B.4.6 「ブロック実装」 B.4.6.1 「Bmprtize」 リセットにおいて、buf accessマイクロプロ
セッサレジスタは1に設定され、初期設定レジスタの設
定を可能にする。buf accessが1を読み戻し
ている間は、如何なるアドレス計算も開始されない。な
ぜなら、有効な初期設定レジスタがなければ、それらの
計算は無意味だからである。
【1458】一度buf accessが完全認定され
る(それにゼロを書き込む)と、その目的は全ての4つ
のアドレスを有効にすることであるので、mbprti
zeは(それらを再計算して)全てのアドレスを有効に
するように務める。この段階で、バッファマネージャは
「スターティングアップ」であり(つまり、全てのアド
レスがまだ計算されていない)、こうして如何なるリク
エストも認定されない。全てのアドレスが一度有効にな
ると、スタートアップが終了し、全てのリクエストが認
定される。この時点から、アドレスが無効になる(一度
使用され認識されているので)と、それは再計算される
ことになる。
【1459】アドレス間に優先順位を付けることは必要
ではない。なぜなら、バッファマネージャが12サイク
ル毎にアドレスを再計算することができる一方、DRA
Mインターフェースは最高の場合で、各17サイクル毎
にアドレスを使用することができるからである。従っ
て、スタートアップ後、一度に1つのアドレスだけが無
効となる。従って、bmprtizeは現在計算されて
いない無効アドレスを再計算するであろう。
【1460】発明では、スタートアップはbuf ac
cessが認定される度に再入力されるので、マイクロ
プロセッサアクセス中は如何なるアドレスもDRAMイ
ンターフェースに供給されない。
【1461】B.4.6.2 「Bminstr」 モジュール、BminstrはMOD12サイクルカウ
ンタ(アドレスを作るためにそれが取るサイクル数)を
含む。偶数サイクルが指令を開始するのに対して、奇数
サイクルが指令を終了することに注目。それがリードも
しくはライト計算であるか否かと共に、上位3ビットは
次のように、bmrecalcのための指令にデコード
される:リードアドレスのために:
【1462】
【表206】 ライトアドレスのために:
【1463】
【表207】 注:最後のオペレーションの結果は常にアキュムレータ
の中に保持される。
【1464】再計算されるべきアドレスがない場合、サ
イクルカウンタはゼロで空転し、こうしてレジスタのい
ずれにも書き込まない指令を生じさせる。これは如何な
る影響も与えない。
【1465】B.4.6.3 「Bmrecalc」 モジュール、Bmrecalcは2クロックサイクル毎
に1つのオペレーションを遂行する。それは偶数カウン
タサイクル(start alu cyc)上のbmi
nstr(及びそのバッファとioタイプ)からの指令
の中でラッチし、奇数カウンタサイクル(end al
u cyc)上のオペレーション結果をラッチする。オ
ペレーション結果は常に、指令が明記するレジスタに加
えて、Accumレジスタの中に記憶される。更に、e
nd alu cyc上で、bmrecalcはたった
いま計算されたアドレスの使用がバッファをフルにする
か、エンプティにするかに関して、またいつアドレス及
びfull/emptyがうまく計算されるかに関して
bmprtizeに通知する(load addr)。
【1466】Full/emptyはオペレーション結
果のサインビットを使用して計算される。
【1467】モジュラスオペレーションは真のモジュラ
スではないが、A mod Bが次のように実施され: (A>B? (A−B):A) しかしながら、これは次の場合に間違っているだけであ
り、 A>(2B−1) これは決して起こらない。
【1468】B.4.6.4 「Bmsnoop」 モジュール、BmsnoopはDRAMインターフェー
スに供給されるアドレスを監視する4つの18ビットス
ーパー・スノーパで構成される。スノーパは外部DRA
Mのオンチップテストを可能にするため、superで
なければならない(つまり、クロックラニングでアクセ
スできなければならない)。これらのスノーパはREQ
/ACKシステム上で作用しなければならず、従って、
装置上の他のものとは異なる。
【1469】REQ/ACKは、2線式プロトコールに
対抗するものとして、このインターフェース上で使用さ
れる。なぜなら、情報をセンダーに送り返す(つまり受
取を知らせる)ことが必須であり、アクセプトはそれを
しないからである。従って、これはFIFOポインタを
厳密に監視する。
【1470】B.4.7 「レジスタ」 初期レジスタへのマイクロプロセッサのライトアクセス
を得るために、bufaccessに1を書き込むべき
であり、buf accessが1を読み返す時にアク
セスが得られる。逆に、マイクロプロセッサのライトア
クセスを放棄するために、ゼロをbuf access
に書き込むべきである。buf accessがゼロを
読み返す時にアクセスが得られる。buf acces
sは1にリセットされることに注目。
【1471】本発明のダイナミックレジスタ及び初期設
定レジスタはいつでも読むことができるが、ダイナミッ
クレジスタがマイクロプロセッサを変化させていないこ
とを保証するため、ライトアクセスを得なければならな
い。
【1472】初期設定レジスタは一度だけ書き込まれる
ことが意図されている。それらを書き直すことにより、
バッファを間違って操作させることになるかもしれな
い。しかしながら、オン・ザ・フライのバッファの長さ
を増加させ、適時にバッファマネージャに新しい長さを
使用させることが企図されている。初期設定レジスタ内
のバリューが、例えば、バッファがオーバーラップしな
いことを感じられるかどうかを見るために如何なるチェ
ックも今まで行われてはいない。これはユーザーの責任
である。
【1473】
【表208】 表中、Dがレジスタビットを指示し、xは如何なるレジ
スタビットも示さない。
【1474】
【表209】
【1475】
【表210】
【1476】
【表211】 B.4.8 「照合」 確認は小さなFIFO’sをダミーのDRAMインター
フェースの上に置き、Lsimにおいて、またトップレ
ベルのチップシミュレーションの一部としてC−コード
において実施された。
【1477】B.4.9 「テスト」 bmanに対するテストカバリッジはbmsnoop内
のスノーパ、ダイナミックレジスタ(B.4.4に示し
た)を通してであり、DRAMインターフェーススキャ
ンチェインの一部であるスキャンチェインを用いて行わ
れる。 セクションB.5 「逆モデラ」 B.5.1 「序文」 本文書は本発明による逆モデラ(imodel)及びト
ークンフォマッティング(hsppk)の目的、動作及
び実行について説明する。
【1478】注:hsppkはハフマンデコーダの階層
型部分であるが、機能的には逆モデラの一部である。従
って、本セクションで論じた方がよい。
【1479】B.5.2 「展望」 トークンバッファは、imodelとhsppkの間に
あり、多量のデータを全てオフチップDRAMに包含す
ることができる。このメモリーの効率的な使用を確実に
するため、データは16ビットフォーマットでなければ
ならない。トークンフォマッティングはハフマンデコー
ダからのデータをトークンバッファのためにこのフォー
マットに「パック」する。従って、逆モデラはトークン
バッファフォーマットからデータを「取り出す」(アン
パック)。
【1480】しかしながら、逆モデラの主な機能は、
「ラン/レベル」コードからゼロデータのランに、そし
てレベルに拡張することである。それに加えて、逆モデ
ラはデータトークンが少なくとも64の係数を持ち、ス
タートアップクライテリアを満たしていないストリーム
を停止させるための「ゲート」を提供することを保証す
る。
【1481】B.5.3 「インターフェース」 B.5.3.1 「Hsppk」 本発明では、Hsppkは入力としてハフマンデコーダ
を、そして出力としてトークンバッファを持つ。両イン
ターフェースは2線式タイプのものであり、入力は17
ビットのトークンポートであり、出力は16ビットの
「パックされたデータ」プラスFLUSH信号である。
それに加えて、Hsppkはハフマンクロック発生器か
らクロックされるので、ハフマンスキャンチェインに接
続される。 B.5.3.2 「Imodel」 Imodelは入力としてトークンバッファスタートア
ップ出力ゲートロジック(bsogl)を持ち、出力と
して逆量子化器を持つ。トークンバッファからの入力は
16ビットの「パックされたデータ」プラスblock
end信号であり、bsoglからの入力は1つのw
irestream enableである。出力は11
ビットのトークンポートである。全てのインターフェー
スは2線式プロトコールにより制御される。Imode
lはそれ自体のクロック発生器とスキャンチェインを持
つ。
【1482】両ブロック共その出力においてスノーパだ
けに対するマイクロプロセッサアクセスを持つ。
【1483】B.5.4 「ブロックの説明」 B.5.4.1 「Hsppk」 Hsppkはハフマンから17ビットデータを受け取
り、トークンバッファに16ビットデータを出力する。
これはまず入力データを12ビットワードに切り捨てる
かスプリットし、次にこれらのワードを16ビットのフ
ォーマットにパックすることにより達成される。
【1484】B.5.4.1.1 「スプリッティン
グ」 Hsppkは逆ハフマンから17ビットデータを受け取
る。このデータは以下のフォーマットを使って17ビッ
トにフォーマットされる。
【1485】Fはフォーマットを指定し;Eは拡張ビッ
ト;Rはランビット;Lはレングスビット(サインマグ
ニチュードで示した)あるいはnon−データトークン
ビット;xはdon’t careである。
【1486】 FLLLLLLLLLLLFormat 0 ELLLLLLLLLLLFormat 0a FRRRRRR00000Format 1 通常のトークンは底部12ビットを占めるだけであり、
以下の形態を取る: ExxxxxxLLLLLLLLLLL しかしながら、データトークンは以下の形態で各ワード
の中にラン及びレベルを持つ: ERRRRRRLLLLLLLLLLL これは次のフォーマットに分けられる: ERRRRRRLLLLLLLLLLL−>FRRRRRR00000 Format 1、ELLLLLLLLLLLFormat 0a あるいは、ランがゼロフォーマットであれば、0が使用
され: E000000LLLLLLLLLLL−>FLLLLLLLLLLL Format 0 フォーマット0において、拡張ビットが失われ、1であ
ると仮定されることが解る。従って、拡張がゼロである
場合、それは使用できない。この場合、フォーマット1
は無条件に使用できる。
【1487】B.5.4.1.2 「パッキング」 スプリッティングの後、全てのデータワードは12ビッ
ト幅である。4つの全ての12ビットワードは3つの1
6ビットワードに「パック」される:
【1488】
【表212】 B.5.4.1.3 「バッファのフラッシング」 本発明のDRAMインターフェースはブロック、32の
16ビット「パック済み」ワードを集め、バッファに書
き込む。これは、ブロックが部分的にしか完了していな
い場合、データをストリームの終わりでDRAMインタ
ーフェースの中に張り付けることができることを意味し
ている。従って、フラッシングメカニズムが必要であ
る。従って、.Hsppkは現在の部分的完了ブロック
を無条件に書き込むようにDRAMインターフェースに
信号を送る。
【1489】B.5.4.2.1 「Imup(アンパ
ッカー)」 Imupは3つの機能を果たす: 4)その16ビットのフォーマットからのデータを12
ビットワードにアンパックする。
【1490】
【表213】 5)トークンバッファのフラッシングの間正しいデータ
を維持する。
【1491】現在の部分的完了ブロックを無条件に書き
込むことにより、DRAMインターフェースがフラッシ
ュする時、役に立たないデータはブロックに残ったまま
である。Imupはブロックの終わりまで、役に立たな
いデータを、つまりフラッシュトークンからの全てのデ
ータを削除しなければならない。
【1492】6)スタートアップクライテリアが満たさ
れるまで、データを引き留める。ブロックからのデータ
出力は、「有効な」(stream enable)が
バッファスタートアップから各々の異なるストリームの
ためにアクセプトされるという条件付きである。従っ
て、12ビットデータがhsppkに出力される。 B.5.4.2.2 「Imex (EXpande
r)」 本発明では、Imexは全てのランレングスコードをゼ
ロのランと、それに続くレベルに拡張する。
【1493】B.5.4.2.3 「Impad(PA
Dder)」 Impadは全てのデータトークンボディが64(もし
くはそれ以上)のワードを含むことを確実にする。それ
はトークンの最後のワードをゼロでパディングすること
により行われる。データトークンはボディにおいて64
以上のワードを持つためにチェックされない。
【1494】B.5.5 「ブロック実行」 B.5.5.1 「Hsppk」 典型的に、1サイクルにおいてスプリッティングとパッ
キングが行われる。
【1495】B.5.5.1.1 「スプリッティン
グ」 まず、フォーマットが決定される: IF (datatoken) IF (lastformat==1) use fo
rmat 0a; ELSE IF (run==0) use form
at 0; ELSE use format 1; そしてフォーマットビットが決定される: format 0 format bit = 0; format 0a format bit = ex
tension bit; format 1 format bit = 1; format 1が使用される場合、コードレベルがま
だ出力されなければならないので、次のサイクルにおい
て新しいデータをアクセプトすべきではない。 B.5.5.1.2 「パッキング」 パッキング手順は4つの有効なデータ入力毎に循環す
る。16ビットワードの出力は保持されている最後の有
効なワードとそれに続くワードから形成される。これが
有効でない場合、出力も有効ではない。手順は以下の通
りである:
【1496】
【表214】 表中、xは未定義のビットを指示する。
【1497】有効なサイクル0の間、如何なるワードも
有効ではないので出力されない。
【1498】有効なサイクルナンバーがリングカウンタ
によって維持される。それはスプリッタからの有効なデ
ータ及びアクセプトされた出力によって増分される。
【1499】FLUSH(またはpicture en
d)トークンが受け取られ、トークン自体が出力の準備
が整うと、フラッシュ信号がDRAMインターフェース
に出力され、有効なサイクルをゼロにリセットする。フ
ラッシュトークンがサイクル3以外のものに到達する
と、トークン自体が出力することを保証するため、フラ
ッシュ信号は有効なサイクルを遅らせなければならな
い。
【1500】B.5.5.2 「Imodel」 B.5.5.2.1 「Imup(アンパッカー)」 パッカーの場合と同様に、最後の有効な入力が記憶さ
れ、次の入力と組み合わされて、アンパッキングを可能
にする。
【1501】
【表215】 表中、xは未定義のビットを指示する。
【1502】有効なサイクルナンバーがリングカウンタ
によって維持される。アンパック済みデータはトークン
のデータ、フラッシュ及びそれからデコードされたピク
チャエンドを含む。それに加えて、フォーマット及び拡
張ビットがアンパック済みデータからデコードされる。
【1503】formatbit is extn=
(lastformat==1) 11 databo
dy format=databody && (forma
tbit && lastformatbit) トークンデコーディングのため、またimexに送られ
るために。
【1504】FLUSH(またはpicture en
d)トークンがアンパックされ、imexに出力され、
ブロック・エンド信号がDRAMインターフェースから
受け取られるまで、全てのデータが削除される(Val
idは低くされる)。
【1505】B.5.5.2.2 「Imex (EX
pander)」 本発明によれば、imexはラン/レベルコードを外へ
拡大するための、4つのステートマシーンである。ステ
ートマシーンは次の通りである: ・ステート0:ランカウントをランコードからロードす
る。
【1506】・ステート1:ランカウントを減少させ、
ゼロを出力する。
【1507】・ステート2:入力データ及び出力レベ
ル;ディフォルトステート。
【1508】・ステート3:不法なステート。
【1509】B.5.5.2.3 「Impad(PA
Dder)」 Impadはimexにより、データトークンヘッダに
関して知らされる。次に、それがトークンボディの中の
係数の数をカウントする。64の係数になる前に、トー
クンが終了すると、ゼロ係数がトークン・エンドで挿入
され、それを64係数になるように完了させる。例え
ば、未拡張データヘッダがそれらの後に挿入された64
のゼロ係数を持っている。64以上の係数を持つデータ
トークンはimpadによって影響されない。
【1510】B.5.6 「レジスタ」 本発明のimodel及びhsppkはそれらのスノー
パを除き、マイクロプロセッサレジスタを持たない。
【1511】
【表216】 表中、V=有効ビット;A=アクセプトビット;E=拡
張ビット;D=データビット。
【1512】B.5.7 「照合」 選択されたストリームはLsimシミュレーションを通
して流れる。
【1513】B.5.8 「テスト」 入力におけるimodelに対するテストカバリッジは
トークンバッファ出力スノーパを通してであり、出力に
おいては、imodel自体のスノーパを通してであ
る。ロジックはimodel自体のスキャンチェインで
カバーされる。
【1514】hsppkの出力はハフマン出力スノーパ
を通してアクセスできる。ロジックはハフマンスキャン
チェインを通して見ることができる。 セクションB.6 「バッファスタートアップ」 B.6.1 「序文」 本セクションは本発明によるバッファスタートアップの
方法及び実行について説明する。
【1515】B.6.2 「展望」 ピクチャ・ストリームを円滑にかつ連続的に表示できる
ことを保証するため、デコーディングを開始できる前
に、一定量のデータを集めなければならない。これをス
タートアップ条件と呼ぶ。コーディングスタンダードは
ほぼ集められることが必要なデータ量に翻訳され得るV
BVディレイを指定する。全てのストリームはそのデー
タがトークンバッファから進み、デコーディングを可能
にする前に、そのスタートアップ条件を満たすことを確
実にすることが、「バッファスタートアップ」の目的で
ある。それは、トークンバッファの出力(つまり、逆モ
デラ)において、概念的なゲート(出力ゲート)により
バッファの中に保持される。そのスタートアップ条件が
一度満たされると、このゲートはストリームのために開
かれるだけである。
【1516】B.6.3 「インターフェース」 Bscntbit(バッファスタートアップビットカウ
ンタ)はデータパスの中にあり、2線式インターフェー
スにより通信し、マイクロプロセッサに接続される。更
に、それは2線式インターフェースでbsogl(バッ
ファスタートアップ出力ゲートロジック)に分岐する。
Bsoglは2線式インターフェースを介して、出力ゲ
ートを実行するimup(逆モデラアンパッカー)を制
御する。 B.6.4 「ブロック構造」 Bscntbitはスタートコード検出器とコード化デ
ータバッファとの間のデータパスにある。この1つのサ
イクルブロックはブロックを出る有効なデータワードを
カウントし、この数をマイクロプロセッサからロードさ
れるであろうスタートアップ条件(またはターゲット)
と比較する。ターゲットが満たされると、bsoglが
伝えられる。データはbscntbitによって影響さ
れない。Bsoglはbscntbitとimup(逆
モデラ内)の間にある。事実上、それはストリームがそ
れらのターゲットを満たしたことを示すインジケータの
列である。列は別の「インジケータ」がimupにアク
セプトされる時に、バッファを出るストリーム(つま
り、imupでデータストリーム内に受け取られるフラ
ッシュトークン)によって動かされる。列が空であれば
(つまり、そのスタートアップターゲットを満たしたバ
ッファにストリームがなければ)、imup内のストリ
ームは立ち往生させられる。
【1517】その列は有限の深さを持つだけであるが、
これはbsoglの中の列を壊すことによって無限に拡
大でき、マイクロプロセッサがその列を監視できるよう
にする。これらの列のメカニズムは内部列及び外部列と
各々称される。
【1518】B.6.5 「ブロック実行」 B.6.5.1 「Bsbitcnt(バッファスター
トアップビットカウンタ)」 Bscntbitはバッファスタートアップに入力され
る全ての有効なワードをカウントする。カウンタ(bs
ctr)は16〜24ビット幅のプログラム可能カウン
タである。更に、bsctrはそれに充分な速度を与え
るためにキャリールックアヘッド回路を具備する。Bs
ctrの幅はced bs prescaleによって
プログラムされる。それはビットを8〜16高くするこ
とにより行われ、それにより常にキャリーが送られるよ
うになる。従って、それらのビットは効果的に使用され
ないままである。bsctrの上位8ビットがターゲッ
ト(ced bs target)との比較のために使
用される。
【1519】比較(ced bs count≧ced
bs target)がbscmpにより行われる。
【1520】ターゲットはストリームがハフマンデコー
ダの中にあり、マイクロプロセッサにより計算される時
に、ストリームから引き出される。従って、それはスト
リーム・スタート後に設定されるだけであろう。スター
トアップ前に、targetvalidは低く設定され
る。ced bs targetへの書き込みはtar
get validを高く設定し、bscmpにおける
比較が行われるようにする。比較がced bs co
unt≧ced bs targetであることを示す
と、target validは低く設定される。ター
ゲットは満たされた。
【1521】ターゲットが満たされると、カウントがリ
セットされる。それはストリーム・エンドでリセットし
ないことに注意。それに加えて、それがストリーム・エ
ンドの前であれば、カウンティングはターゲットが満た
された後に不能化される。カウントは255で飽和す
る。
【1522】ストリーム・エンド(つまり、フラッシ
ュ)がbsbitcntにおいて検出されると、abs
flush eventが作られる。ターゲットが満
たされる前にストリームが終了すると、追加イベント
(bs flush before target m
et event)が作られる。これらのイベントが発
生すると、ブロックは立ち往生させられる。これによ
り、ユーザーは次のストリームのターゲットサーチをや
り直すことができ、あるいはbs flush bef
ore target met eventイベントの
場合、次のいずれかである: 1)target metを強いるであろうゼロのター
ゲットを書き込むあるいは 2)ターゲットが満たされず、最後のストリームと組み
合わされたこれがターゲットに達するまで、次のストリ
ームを進ませることに注目。この次のストリームのため
のターゲットはそれに応じて調整されるべきである。
【1523】B.6.5.2 「BSOGL(バッファ
スタートアップ出力ゲートロジック)」 前述したように、Bsoglはストリームがそのターゲ
ットを満たしたことを指示するインジケータ列である。
列タイプはced bs queue(内部(0)また
は外部(1))によって設定される。これは内部列を選
択するためのリセットである。列の深さはコード化デー
タバッファ、ハフマン及びトークンバッファにおいて存
在できる満たされたストリームの最大数を決定する。こ
の数に達すると(つまり、列が一杯になると)、bso
glはデータパスをbsbitcntで立ち往生させ
る。
【1524】内部列の使用はマイクロプロセッサからの
如何なる動作も必要としない。しかしながら、列の深さ
を増加させる必要があれば、(設定されるべきced
bsqueueへのアクセスを得るためにced bs
accessを設定し、target met ev
ent及びstream end eventが可能化
され、アクセスが放棄されることにより)外部列を設定
できる。
【1525】外部列(マイクロプロセッサにより維持さ
れるカウント)は内部列に挿入される。外部列は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をマス
クし、アクセスを放棄することにより、外部から内部へ
と変更することだけができる。
【1526】他方、ストリームスタートアップ条件のチ
ェックを不能にし、ced bsqueue(外部)を
設定し、target met event及びstr
eam end eventをマスクし、ced bs
enable nxtstreamを設定する。この
方法で、全てのストリームが常に可能化される。 B.6.6 「マイクロプロセッサレジスタ」
【1527】
【表217】
【1528】
【表218】 表中、 ・Dはレジスタビットであり、 ・xは存在しないレジスタビットであり、 ・rは予約済みレジスタビットであり、 ・これらのレジスタへのアクセスを得るため、割り込み
サービスルーチンの場合でなければ、ced bs a
ccessは1に設定され、それが1を読み戻すまで登
録されなければならない。ced bs access
をゼロに設定することによりアクセスが放棄される。
【1529】セクションB.7 「DRAMインターフ
ェース」 B.7.1 「展望」 本発明において、空間デコーダ、時間デコーダ及びビデ
オフォーマッティング部は各々その特別なチップのため
にDRAMインターフェースブロックを含む。3つの装
置全てにおいて、DRAMインターフェースの機能は、
チップから外部DRAMへのデータ伝送、及びアドレス
発生器により供給されるブロックアドレスを介して外部
DRAMからチップへのデータ伝送である。
【1530】DRAMインターフェースは典型的に、ア
ドレス発生器に対して、またそれを通してデータが送ら
れる様々なブロックのクロックに対して非同期であるク
ロックから操作する。しかしながら、クロックはほぼ同
じ周期で操作するので、この非同期性は容易に処理でき
る。
【1531】データは通常DRAMインターフェースと
64バイトのブロック内の残りのチップとの間に伝送さ
れる(唯一の例外は時間デコーダにおける予測データで
ある)。伝送は「スイングバッファ」として知られる装
置によって発生する。これは本質的にダブルバッファー
ド構成において操作される一対のDRAMであり、DR
AMインターフェースが1つのRAMを満たしたり、あ
るいは空にする一方、チップの別の部分が他のRAMを
空にしたり、満たしたりする。アドレス発生器からアド
レスを運ぶ別のバスが各スイングバッファと連合する。
【1532】各チップは4つのスイングバッファを持つ
が、これらのスイングバッファの機能は各々の場合によ
り異なる。空間デコーダの場合、1つのスイングバッフ
ァがコード化データをDRAMに伝送するために使用さ
れ、別のスイングバッファがDRAMからコード化デー
タを読むために使用され、三番目のスイングバッファが
トークン化されたデータをDRAMに伝送するために使
用され、四番目のスイングバッファがDRAMからトー
クン化されたデータを読むために使用される。時間デコ
ーダにおいては、1つのスイングバッファがイントラも
しくは予測されたピクチャデータをDRAMに書き込む
ために使用され、二番目のバッファがDRAMからイン
トラもしくは予測されたピクチャデータを読むために使
用され、他の2つのバッファが予測データを前方及び後
方に読むために使用される。ビデオフォーマッティング
部においては、1つのスイングバッファがデータをDR
AMに伝送するために使用され、他の3つのスイングバ
ッファがDRAMからデータを読むために使用され、各
々がルミナンス(Y)、赤及び青の色差データ(各々C
r及びCb)のためである。
【1533】以下のセクションは本発明によるDRAM
インターフェースのオペレーションを説明し、それは空
間デコーダDRAMインターフェースのオペレーション
と本質的に同じである、1つのライトスイングバッファ
と1つのリードスイングバッファを持っている。これは
図140の「DRAMインターフェース」に図示してい
る。
【1534】B.7.2 「一般的なDRAMインター
フェース」 図140において、アドレス発生器に対するインターフ
ェース、及びデータを供給し、データを取るブロックに
対するインターフェースは全て2線式インターフェース
である。アドレス発生器は制御トークンの受取の結果と
してアドレスを発生させるか、あるいは単にアドレスの
固定シーケンスを発生させることができる。DRAMイ
ンターフェースは特別の方法で、アドレス発生器と連合
する2線式インターフェースを処理する。アドレスを受
け取る準備ができた時にアクセプトラインを高く保持す
る代わりに、DRAMインターフェースはアドレス発生
器が有効なアドレスを供給し、そのアドレスを処理し、
1つのクロック周期の間アクセプトラインを高く設定す
る。こうして、リクエスト/アクノレッジ(REQ/A
CK)プロトコールを実行する。
【1535】DRAMインターフェースの独得の特徴
は、アドレス発生器及び他のブロックとは完全に別個に
データを提供/アクセプトするブロックと連絡する能力
である。例えば、アドレス発生器はライトスイングバッ
ファにおいてデータと関連するアドレスを発生させるこ
とができるが、ライトスイングバッファが外部DRAM
に書き込まれる用意が整ったデータブロックがあること
を合図しないとどのような行動も取らないであろう。し
かしながら、アドレス発生器からの適当なバスにアドレ
スが供給されない限り、どのような行動も取られない。
更に、ライトスイングバッファ内のRAMの1つが一度
データで満たされると、他のRAMもデータ入力が立ち
往生させられる(2線式インターフェースアクセプト信
号が低く設定される)前に、完全に満たされ、DRAM
インターフェースに「スイング」される。
【1536】本発明のDRAMインターフェースのオペ
レーションを理解する際に注目すべき重要なことは、適
切に構成されたシステムにおいて、少なくともスイング
バッファと残りのチップ間の全ての平均データ速度の合
計と同程度に速く、DRAMインターフェースがスイン
グバッファと外部DRAMの間にデータを伝送すること
ができることである。
【1537】各DRAMインターフェースは次にサービ
スするのはどのスイングバッファかを決定する方法を含
む。一般に、これは「ラウンドロビン」であるか、もし
くはプライオリティエンコーダのいずれかであり、ラウ
ンドロビンの場合、サービスされるスイングバッファが
最近めったに順番が回ってこなかった次に利用できるス
イングバッファであり、プライオリティエンコーダの場
合、いくつかのスイングバッファが他のバッファより高
い優先順位を持つ。両方の場合において、他の全てのリ
クエストより高い優先順位を持つリフレッシュリクエス
ト発生器から追加リクエストが来るであろう。リフレッ
シュリクエストはマイクロプロセッサインターフェース
を介してプログラム可能なリフレッシュカウンタから発
生される。
【1538】B.7.2.1 「スイングバッファ」 図141はライトスイングバッファを示す。オペレーシ
ョンは次の通りである: 1)有効なデータは入力(data in)において表
示される。各データ片がアクセプトされるにつれて、そ
れはRAM1に書き込まれ、アドレスが増分される。
【1539】2)RAM1が一杯である時、入力データ
は制御をあきらめ、RAM1が読み出される準備ができ
たことを指示するためリードサイドに信号を送る。この
信号は2つの非同期クロックレジームの間を通り、従っ
て3つの同期フリップフロップを通過する。
【1540】3)入力サイドに到着すべき次のデータア
イテムは、まだ空であるRAM2に書き込まれる。
【1541】4)ラウンドロビンもしくはプライオリテ
ィエンコーダが、このスイングバッファを読む番である
ことを指示すると、DRAMインターフェースはRAM
1の内容を読み、それらを外部DRAMに書き込む。そ
うすれば、(2)と同様に、信号が非同期インターフェ
ースを横切って送り返され、RAM1にもう一度書き込
む準備ができたことを指示する。
【1542】5)DRAMインターフェースがRAM1
を空にし、入力サイドがRAM2を満たす前にそれを
「スイング」すれば、データは連続的にスイングバッフ
ァによりアクセプトされることができ、そうでなけれ
ば、RAM2が満たされた時、RAM1が入力サイドに
より使用されるために「スイングバック」されるまで、
スイングバッファはそのアクセプト信号を低く設定する
であろう。
【1543】6)このプロセスは無限に繰り返される。
【1544】リードスイングバッファのオペレーション
も同様であるが、入力と出力のデータバスが逆である。
【1545】B.7.2.2 「外部DRAM及びスイ
ングバッファのアドレシング」 DRAMインターフェースは利用可能なメモリー帯域幅
を最大にするように設計される。従って、各8×8デー
タブロックが同じDRAMページに記憶されるように配
置される。この方法で、DRAM高速ページアクセスモ
ードを完全に使用でき、その場合1つのローアドレスが
供給され、続いて多くのカラムアドレスが供給される。
それに加えて、外部DRAMに対するデータバスが8、
16、または32ビット幅にでき、使用されるDRAM
量が特別なアプリケーションのサイズ及び帯域幅の要件
に適合できるようにするための便宜が提供される。
【1546】(空間デコーダ上のDRAMインターフェ
ースがどのように作用するかを示す)この例では、アド
レス発生器は、リードスイングバッファとライトスイン
グバッファの各々のために、DRAMインターフェース
にブロックアドレスを提供する。このアドレスはDRA
M用のローアドレスとして使用される。カラムアドレス
の6ビットはDRAMインターフェース自体により供給
され、これらのビットは更にスイングバッファRAM用
のアドレスとしても使用される。スイングバッファに対
するデータバスは32ビット幅であり、従って、外部D
RAMに対するバス幅が32ビットより狭い場合、次の
ワードがライトスイングバッファから読まれる前に、あ
るいは次のワードがリードスイングバッファに書き込ま
れる前に(リード及びライトは外部DRAMに対する伝
送方向に関係する)、2つから4つの外部DRAMアク
セスが行われなければならない。
【1547】時間デコーダ及びビデオフォーマッティン
グ部の場合は、状況はもっと複雑である。これらについ
ては下記において別に説明する。
【1548】B.7.3 「DRAMインターフェース
タイミング」 本発明において、DRAMインターフェースタイミング
ブロックは、DRAM信号のエッジをシステムクロック
周期の正確に1/4に置くためにタイミングチェインを
使用する。フェイズロックループからの2つの直角クロ
ックが使用される。これらは概念的な2xクロックを形
成するために組み合わされる。いずれか1つのチェイン
が、2xクロックの反対のフェイズ上で並列する2つの
シフトレジスタから作られる。
【1549】まず最初に、ページスタートサイクルのた
めに1つのフェイズがあり、リード/ライト/リフレッ
シュサイクルのために別のフェイズがある。各サイクル
の長さはマイクロプロセッサインターフェースを介して
プログラム可能であり、その後ページスタートチェイン
が固定長を持ち、サイクルチェインの長さはページスタ
ート中に適当に変化する。
【1550】リセットされると、チェインはクリアさ
れ、パルスが作られる。このパルスはチェインに沿って
移動し、DRAMインターフェースからのステート情報
により方向付けられる。DRAMインターフェースクロ
ックはこのパルスにより発生される。各DRAMインタ
ーフェースクロック周期はDRAMの1サイクルに対応
する。このように、DRAMサイクルが異なる長さを持
つので、DRAMインターフェースクロックは一定速度
ではない。
【1551】更に、タイミングチェインは上記チェイン
からのパルスをDRAMインターフェースからの情報と
組合せ、出力ストローブ及びイネーブル(notca
s、notras、notwe、notoe)を発生さ
せる。
【1552】セクションB.8 「逆量子化器」 B.8.1 「序文」 本文書は本発明による逆量子化器(iq)の目的、動作
及び実行について説明する。
【1553】B.8.2 「展望」 逆量子化器は量子化された係数からの係数、量子化重
量、及びステップサイズを再構築し、その全てがデータ
ストリーム内で送信される。
【1554】B.8.3 「インターフェース」 Iqはデータパスにおいて逆モデラと逆DCTの間にあ
り、マイクロプロセッサに接続される。データパス接続
は2線式インターフェースを介して行われる。入力デー
タは10ビット幅であり、出力データは11ビット幅で
ある。
【1555】B.8.4 「逆量子化器の演算」 B.8.4.1 「H261式」
【1556】
【数1】 B.8.4.2 「JPEG式」
【1557】
【数2】 B.8.4.3 「MPEG式」
【1558】
【数3】 B.8.4.4 「JPEGバリエーション式」
【1559】
【数4】 B.8.4.5 「他の全てのトークン」 データトークン以外の全てのトークンは量子化されない
iqを通過しなければならない。そこで: Floor(a)は整数を次のように戻す: (a−1)<floor(a)≦a a≧0, a≦floor(a)<(a+i) a≦0 Qiは量子化係数である。
【1560】Ciは再構築された係数である。
【1561】Wi,jは量子化テーブルマトリックスにお
ける値である。
【1562】iはジグザグに沿った係数インデックスで
ある。
【1563】jは量子化テーブルマトリックスナンバー
(0≦j≦3)である。
【1564】B.8.4.6 「結合されるマルチプル
スタンダード」 上記スタンダード及びそれらのバリエーションの全て
(更にiqによって変更されてはならない制御データ)
は1つの式にマップできる: OUTPUT =(2INPUT+k)(xy)/16 以下の追加ポスト逆量子化機能がある: ・1024を加算する ・サインマグニチュードから2の補数表示への変換 ・全ての偶数をゼロに向かって最も近い奇数にラウンド
する ・結果を+2047または−2048に飽和させる。
【1565】スタンダードの各バリエーションのための
変数k、x及びy、及びそれらが使用するその関数は表
219、表220に示す。
【1566】B.8.4.6 「結合されるマルチプル
スタンダード」
【1567】
【表219】
【1568】
【表220】 B.8.5 「ブロック構造」 段落B.8.4.6及び表219、表220から、マル
チスタンダード逆量子化器用に1つの構造を使用できる
ことが解る。その算術的ブロック線図を図142「算術
的ブロック」に示す:算術的ブロック用の制御は2つの
セクションに機能的に分割することができる: ・ステータスレジスタまたは量子化テーブルにロードす
るためのトークンのデコーディング、 ・ステータスレジスタの制御信号へのデコーディング。
【1569】トークンは次のサイクル、つまりレジスタ
のiqcbのバンクを制御するiqcaにおいてデコー
ドされる。それは更にigram内の4つの量子化テー
ブルへのアクセスを制御する。算術、つまり、2つの乗
算器とポスト関数はiqarithにある。iq用の完
全なブロック線図を図143に示す。
【1570】B.8.6 「ブロック実行」 B.8.6.1 「Iqca」 発明において、iqcaはトークンをigram及びi
qcb内のレジスタ用制御信号にデコードするために使
用されるステートマシーンである。ステートマシーンは
各々の新しいトークンによってリセットされるので、各
トークン用のステートマシーンとして説明した方がよ
い。例えば: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つ
はトークンボディである。
【1571】ステートマシーンはPLAとして実装され
る。未認識トークンは如何なるワードラインも発生させ
ないし、PLAにもディフォルト(無害な)制御を出力
させない。
【1572】従って、iqcaはBodyWordカウ
ンタからアドレスをigramに供給し、例えば未拡張
QUANT TABLE(B.8.7.4を参照)にお
いて、ワードをストリームに挿入する。これは出力を有
効に保つ一方で、入力を立ち往生させることによって達
成される。続くブロック(iqcbまたはiqarit
h)において正しいデータでワードを満たすことができ
る。
【1573】iqcaは2線式インターフェースによっ
て制御されるデータパス内の1サイクルである。
【1574】B.8.6.2 「iqcb」 発明において、iqcbはiqステータスレジスタを保
持する。iqcaの制御下、iqcbはこれらをデータ
パスから/へとロードもしくはアンロードする。
【1575】ステータスレジスタは、XY乗算器ターム
及びポスト量子化機能を制御するため、iqarith
のために制御ワイヤにデコードされる(表219、表2
20を参照)。
【1576】データパスのサインビットはここで分離さ
れ、ポスト量子化機能に送られる。更に、データパス上
のゼロバリューワードがここで検出される。その後算術
は無視され、ゼロがデータパスにマックスされる。これ
はiqの「ゼロイン;ゼロアウト」スペックに従う最も
簡単な方法である。
【1577】ステータスレジスタは、レジスタiq a
ccessが1に設定され、1を読み戻す時にのみ、マ
イクロプロセッサからアクセス可能である。この状況で
は、iqcbはデータパスを停止させ、こうしてレジス
タが安定したバリューを持ち、如何なるデータもデータ
パスにおいて転換されない。
【1578】Iqcbは2線式インターフェースによっ
て制御されるデータパス内の1サイクルである。
【1579】B.8.6.3 「Iqram」 Iqramは各々が648ビットである4つの量子化テ
ーブルマトリックス(QTM)に対して支持しなければ
ならない。従って、それはサイクル毎に1リードまたは
1ライトが可能な、2568ビットの6トランジスター
RAMである。RAMはその制御を受け取る2線式イン
ターフェースロジックにより囲まれ、iqcaからデー
タを書き込む。それはiqarithにデータを読み出
す。同様に、igramはiqcbと同じデータパス内
のサイクルを占める。
【1580】RAMはiq accessが1を読み返
す時、マイクロプロセッサから読み出され、書き込まれ
る。RAMはキーホールレジスタ、iq qtm ke
yholeの背後に置かれ、iq qtm keyho
le addrによってアドレスされる。iq qtm
keyholeへのアクセスはiq qtm key
hole addr内に保持される、それが指すアドレ
スを増分させるであろう。同様に、iq qtm ke
yhole addrは直接書き込むことができる。
【1581】B.8.6.4 「iqarith」 iqarithは3つのサイクルに亙ってパイプライン
でつながれ、スプリットされる3つの機能があることに
注意。機能については下記において論じる(図140を
参照)。
【1582】B.8.6.4.1 「XY乗算器」 これはデータパス乗算器に供給される5(X)x8
(Y)ビットのキャリセーブ未サイン乗算器である。乗
数及び被乗数はiqcbからの制御ワイヤで選択され
る。乗法は第1サイクルにあり、分解アダーは第2サイ
クルにある。
【1583】乗算器への入力において、iqramから
のデータはQUANT TABLEをデータパスに読み
出すために、データパスにマックスされ得る。
【1584】B.8.6.4.2 「(XY)*データ
パス乗算器」 この13(XY)×12(データパス)ビットのキャリ
セーブ未サイン乗算器はブロックの3サイクルに亙って
スプリットされる。第1サイクルに3つの部分積、第2
サイクルに7つ、第3サイクルに残りの2つである。
【1585】乗算器からの全ての出力は2047以下
(non coefficient)であるか、あるい
は+2047/−2048に飽和されるので、上位12
ビットは分解される必要がない。従って、分解アダーは
たった2ビット幅である。高いオーダーのビットの残り
に関して、ゼロ検出がサチュレーション信号として充分
である。
【1586】B.8.6.4.3 「ポスト量子化機
能」 ポスト量子化機能は、 ・1024を加算する ・サインマグニチュードから2の補数表示に変換する ・全ての偶数をゼロに向かって最も近い奇数にラウンド
する ・結果を+2047または−2048に飽和させる ・出力をゼロに設定する(B.8.6.2を参照)。
【1587】最初の3つの機能は12ビットアダーで実
行される(第2と第3のサイクルにパイプラインでつな
がれる)。このことから、各機能が必要とするものが何
であるかが解り、これらは1つのアダーの上に結合され
る。
【1588】
【表221】 当業者なら認識するであろうが、これらの機能は結合さ
れた時に互いに依存し合うので、これらを再プルグラミ
ングする際に注意しなければならない。
【1589】サチュレーションバリュー、ゼロ及びゼロ
+1024は第3のサイクルの終わりでデータパスにマ
ックスされる。
【1590】B.8.7 「逆量子化器トークン」 以下の説明は逆量子化器が応答する各トークンtpのた
めの、逆量子化器の行為を定義する。全ての場合に、ト
ークンは逆量子化器の出力に送られる。ほとんどの場
合、トークンは下記に記す例外を除き、逆量子化器によ
って修正されない。全ての未認識トークンは逆量子化器
の出力に未修正のまま送られる。
【1591】B.8.7.1 「シーケンススタート」 このトークンはレジスタiq prediction
mode[1:0]及びiq mpeg indire
ction[1:0]がゼロに設定されるようにする。
【1592】B.8.7.2 「コーディングスタンダ
ード」 このトークンはデコードされる現在のスタンダード(M
PEG、JPEGまたはH.261)に基づいて、iq
standard[1:0]に適切なバリューがロー
ドされるようにする。
【1593】B.8.7.3 「予測モード」 このトークンはiq prediction mode
[1:0]をロードする。予測モードトークンは2つ以
上のビットを所有するが、逆量子化器は2つの最低オー
ダーのビットへのアクセスを必要とするだけである。こ
れらはブロックがイントラコード化されているか否かを
判断する。
【1594】B.8.7.4 「量子化スケール」 このトークンはiq quant scale[4:
0]をロードする。
【1595】B.8.7.5 デーt 本発明では、このトークンは実際の量子化係数を所有す
る。トークンヘッドは色成分を識別する2つのビットを
含み、これらはiq component[1:0]に
ロードされる。次の64のトークンワードは量子化係数
を含む。これらは逆量子化プロセスの結果として修正さ
れ、再構築された係数と置き換えられる。
【1596】正確に64の拡張ワードがトークン内に存
在しない場合、逆量子化器の行為は限定されない。
【1597】逆量子化器の入力におけるデータトークン
は量子化係数を所有する。これらはサイン・マグニチュ
ードフォーマットにおいて11ビット(10ビット+サ
インビット)で表示される。バリュー「マイナスゼロ」
は使用されるべきではないが、正確にゼロと解釈され
る。
【1598】逆量子化器の入力におけるデータトークン
は再構築された係数を所有する。これらは2の補数フォ
ーマットにおいて12ビット(11ビット+サインビッ
ト)で表示される。入力におけるデータトークンは、逆
量子化器の入力において持ったのと同じ数のトークン拡
張ワードを持つであろう。
【1599】B.8.7.6 「量子化テーブル(QU
ANT TABLE)」 このトークンは新しい量子化テーブルをロードするた
め、あるいは現在のテーブルを読み出すために使用でき
る。逆量子化器においては、典型的に、トークンはビッ
トストリームからデコードされた新しいテーブルをロー
ドするために使用されるであろう。現在のテーブルを読
み出す動作は、そのテーブルがビットストリームにおい
てエンコードされることになる場合、エンコーダの前方
の量子化器において有用である。
【1600】トークンヘッドは使用されることになるテ
ーブルナンバーを特定する2つのビットを含む。これら
はiq component[1:0]の中に置かれ
る。このレジスタは今では色成分ではなく、「テーブル
ナンバー」を含んでいることに注意。
【1601】トークンヘッドの拡張ビットが1である場
合、逆量子化器はそこに正確に64の拡張トークンワー
ドがあることを期待する。各々が量子化テーブルバリュ
ーとして解釈され、ロケーションゼロで始まる適切なテ
ーブルの連続するロケーションの中に置かれる。各拡張
トークンワードの9番目のビットが無視される。トーク
ンは更に通常の方法で、未修正のまま、逆量子化器の出
力にも送られる。
【1602】トークンヘッドの拡張ビットがゼロである
場合、逆量子化器はロケーションゼロで始まる適切なテ
ーブルの連続するロケーションを読み出すであろう。各
ロケーションは拡張トークンワードになる(9番目のビ
ットはゼロになる)。このオペレーションの終わりで、
トークンは正確に64の拡張トークンワードを含むであ
ろう。
【1603】このトークンに答える逆量子化器のオペレ
ーションは、ゼロと64を除く全ての拡張ワードナンバ
ーのために限定されない。
【1604】B.8.7.7 「JPEGテーブルセレ
クト」 このトークンはiq jpeg indirectio
nへの/からのテーブルナンバーに対して、色成分の翻
訳をロードする/アンロードするために使用される。こ
れらの翻訳はJPEG及び他のスタンダードにおいて使
用される。
【1605】トークンヘッドは現在関心のある色成分を
特定する2つのビットを含む。これらはiq comp
onent[1:0]に置かれる。
【1606】トークンヘッドの拡張ビットが1である場
合、トークンは1つの拡張ワード、iq jpeg i
ndirection[2iq component
[1:0]+1:2iq component[1:
0]]ロケーションに書き込まれる最も低い2ビットを
含む。たった今読み出されたばかりのバリューがトーク
ン拡張ワードになる(上位7ビットがゼロになる)。こ
のオペレーションの終了時に、トークンは正確に1つの
トークン拡張ワードを含むであろう。
【1607】
【表222】 B.8.7.8 「MPEGテーブルセレクト」 このトークンはMPEGスタンダードを介してのプロセ
シングの間に、ディフォルトもしくはユーザーが限定す
る量子化テーブルを使用するか否かを定義するために使
用される。トークンヘッドは2ビットを含む。ヘッダー
のビット0はiq mpeg indirection
が書き込まれる場合どちらのビットに書き込まれるかを
決定する。ビット1はそのロケーションに書き込まれ
る。
【1608】iq mpeg indirection
[1:0]レジスタはシーケンススタートトークンによ
ってクリアされるので、ユーザー限定量子化テーブルが
ビットストリーム内に送られた場合、このトークンを使
用することだけが必要であろう。
【1609】B.8.8 「マイクロプロセッサレジス
タ」 B.8.8.1 「iq access」 いずれかのiqレジスタへのマイクロプロセッサアクセ
スを得るために、iqaccessは1に設定されなけ
ればならず、それが1を読み返すまで登録されなければ
ならない(B.8.6.2を参照)。これをすることを
怠ると、読まれているレジスタがデータパスによってま
だ制御されている状態になり、安定しない。igram
の場合、アクセスはロックアウトされ、ゼロを読み戻
す。
【1610】iq accessに0を書き込むと、制
御をデータパスに手放すことになる。
【1611】B.8.8.2 「Iq coding
standard[1:0]」 このレジスタは逆量子化器によって実行されるコーディ
ングスタンダードを保持する。
【1612】
【表223】 このレジスタはコーディングスタンダードバリューによ
ってロードされる。
【1613】これは2ビットレジスタではあるが、現在
メモリーマップに8ビットが割り当てられており、将来
の実装では上記スタンダード以上のものを処理すること
ができるようになろう。
【1614】B.8.8.3 「Iq mpeg in
direction[1:0]」 この2ビットレジスタはMPEGデコーディングオペレ
ーションの間に、どの量子化テーブルが使用される予定
であるかを記録するために使用される。
【1615】Iq mpeg indirection
[0]はイントラコード化ブロックのために使用される
テーブルを制御する。それが0であれば、量子化テーブ
ル0が使用され、ディフォルト量子化テーブルを含むこ
とが期待される。それが1であれば、量子化テーブル2
が使用され、ユーザー限定量子化テーブルを含むことが
期待される。
【1616】このレジスタはMPEG TABLE S
ELECTトークンによってロードされ、シーケンスス
タートトークンによって0に設定される。
【1617】B.8.8.4 「Iq jpeg in
direction[7:0]」 この8ビットレジスタはJPEGスキャンにおいて発生
する4つの可能な色成分の各々のために、どの4つの量
子化テーブルを使用するかを決定する。
【1618】・ビット[1:0]は成分0のために使用
されるテーブルナンバーを保持する。
【1619】・ビット[3:2]は成分1のために使用
されるテーブルナンバーを保持する。
【1620】・ビット[5:4]は成分2のために使用
されるテーブルナンバーを保持する。
【1621】・ビット[7:6]は成分3のために使用
されるテーブルナンバーを保持する。
【1622】このレジスタはJPEG TABLE S
ELECTトークンによって影響される。
【1623】B.8.8.5 「iq quant s
cale[4:0]」 このレジスタは量子化スケール関数の現在のバリューを
保持する。このレジスタはQUANT SCALEトー
クンによってロードされる。
【1624】B.8.8.6 「iq compone
nt[1:0]」 このレジスタは量子化テーブルマトリックス(QTM)
ナンバーに翻訳されるバリューを保持する。それはトー
クンナンバーによってロードされる。
【1625】データトークンヘッダはこのレジスタに処
理されようとしているブロックの色成分がロードされる
ようにする。この情報はQTMナンバーを決定するた
め、JPEG及びJPEGバリエーションにおいてのみ
使用され、それはreference to iq j
peg indirection[7:0]で処理す
る。他のスタンダードでは、iq component
[1:0]が無視される。JPEGテーブルセレクトト
ークンはこのレジスタに色成分をロードさせる。その
後、それはトークンボディによってアクセスされるiq
jpeg indirection[7:0]へのイ
ンデックスとして使用される。
【1626】量子化スケールトークンはこのレジスタに
QTMナンバーをロードさせる。このテーブルはその後
(トークンの拡張フォームが使用される場合)、トーク
ンからロードされるか、または適当に拡張されたトーク
ンを形成するためにテーブルから読み出される。
【1627】B.8.8.7 「iq predict
ion mode[1:0]」 この2ビットレジスタはそれに続くブロックのために使
用される予測モードを保持する。逆量子化器がこの情報
を利用する唯一の利用法は、イントラコーディングが使
用されるか否かを決定することである。レジスタの両ビ
ット共0であれば、次のブロックはイントラコード化さ
れている。
【1628】このレジスタは予測モードトークンによっ
てロードされる。このレジスタはシーケンススタートト
ークンによって0に設定される。
【1629】Iq prediction mode
[1:0]はJPEG及びJPEGバリエーションモー
ドにおけるオペレーションに何の影響も与えない。
【1630】B.8.8.8 「Iq jpeg in
direction[7:0]」 Iq jpeg indirectionはQTMナ
ンバーに色成分を翻訳するためのルックアップ表として
使用される。従って、iq componentは、表
222に示すように、iq jpeg indirec
tionに対するインデックスとして使用される。
【1631】このレジスタロケーションは、トークンの
拡張フォームが使用される場合、JPEGテーブルセレ
クトトークンによって直接書き込まれる。
【1632】このレジスタロケーションは、トークンの
非拡張フォームが使用される場合、JPEGテーブルセ
レクトトークンによって直接読み出される。
【1633】B.8.8.9 「Iq quant t
able[3:0][63:0][7:0]」 4つの量子化テーブルがあり、各々が64のロケーショ
ンを持つ。各ロケーションは8ビットバリューである。
バリュー0は如何なるロケーションにおいても使用され
るべきではない。
【1634】これらのレジスタはB.8.6.3のIg
ramにおいて説明したRAMとして実装される。
【1635】これらのテーブルは量子化テーブルトーク
ンを用いてロードできる。
【1636】これらのテーブル内のデータはジグザグス
キャンオーダーで記憶されることに注意。多くの文書は
方形の8×8のナンバーアレイとして量子化テーブルバ
リューを表示している。通常、DCタームは左上位にあ
り、水平の周波数が左から右へと増加し、垂直の周波数
が上から下へと増加する。該かるテーブルは、ナンバー
が連続するiを持つ量子化テーブルの中に置かれるにつ
れて、ジグザグスキャンパスに沿って読まれなければな
らない。
【1637】B.8.9 「マイクロプロセッサレジス
タマップ」
【1638】
【表224】 B.8.10 「試験」 入力における逆量子化器に対するテストカバリッジは逆
量子化器の出力スノーパを通してであり、出力において
は逆量子化器自体のスノーパを通してである。ロジック
は逆量子化器自体のスキャンチェインによってカバーさ
れる。
【1639】ramtest信号が認定されると、iq
accessに関係なくigramに対するアクセス
が得られる。 セクションB.9 「IDCT」 B.9.1 「序文」 逆離散コサイン変換(IDCT)ブロックをここで説明
する目的は、IDCT用のエンジニアリング情報源を提
供することである。それは以下の情報を含む。 ・IDCTの目的及び主な特徴 ・それがどのように設計され、実証されたか ・構造 更に、その目的はそうした説明が以下の作業を容易にす
る、あるいは助けるために当業者に充分な情報を提供す
ることである。
【1640】・「シリコンマクロ関数」としてのIDC
Tの認識 ・別の装置へのIDCTの統合 ・IDCTシリコン用のテストプログラムの開発 ・IDCTの修正、再設計もしくは維持 ・順方向DCTブロックの開発 B.9.2 「展望」 離散コサイン変換/ジグザグ(DCT/ZZ)はピクセ
ルのブロック上で変換を行い、各ブロックは高さ8ピク
セル×幅8ピクセルのスクリーンエリアを表示する。変
換の目的は、周波数によって分類される周波数領域にお
いてピクセルブロックを表示することである。目はピク
チャ内のDC成分に敏感であるが、高周波成分に対して
はあまり敏感ではないので、周波数データは目の感度に
従って、各成分が別個にマグニチュードを減少させるよ
うにする。マグニチュード減少プロセスは量子化として
知られている。量子化プロセスはピクチャに含まれる情
報を減少させる、つまり、量子化プロセスは損失性であ
る。損失性プロセスはある種の情報を削除することによ
り全体的なデータ圧縮を行う。周波数データは高周波が
0に量子化されやすくするように分類され、全てが連続
して現れる。連続する0は、ランレングスコーディング
は一般的に損失性のプロセスではないが、ランレングス
コーディング計画を使用することにより量子化されるデ
ータをコーディングすることが、更なるデータ圧縮を生
じさせることを意味する。
【1641】IDCTブロック(これは実際に逆ジグザ
グRAMまたはIZZ、及びIDCTを含む)が分類さ
れる周波数データを取り、それを空間的データに変換す
る。この逆分類プロセスはIZZの機能である。
【1642】IDCTブロックがその一部を形成するピ
クチャ減圧システムは、ピクセルを整数として指定す
る。これはIDCTブロックが整数値を取り、また整数
値を生じなければならないことを意味する。しかしなが
ら、IDCTの関数は整数に基づいていないので、内部
のナンバー表示は内部精度を維持するため分数部分を使
用する。完全な浮動小数点計算が好ましいが、ここに記
載する実装では固定小数点計算を使用する。固定小数点
計算を使用すると少しばかり精度の損失があるが、この
実装に関する精度はH.261及びIEEEによって指
定される精度を越えている。
【1643】B.9.3 「デザイン目標」 本発明によれば、主なデザイン目標は最小のシリコンエ
リアを使用する機能的に正確なIDCTブロックを設計
することであった。更に、デザインは指定された操作条
件の下で30MHzのクロック速度でランすることが求
められていたが、更に将来に対する適用性も持つべきで
あると考えられた。より高いクロック率が将来必要とな
るであろうし、デザインの構造は可能な所ではこれを可
能にするものである。
【1644】B.9.4 「IDCTインターフェース
の説明」 IDCTブロックは以下のインターフェースを持ってい
る。
【1645】・12ビット幅のトークンデータ入力ポー
ト ・ビット幅のトークンデータ出力ポート ・マイクロプロセッサインターフェースポート ・システムサービス入力ポート ・テストインターフェース ・再同期信号 両トークンデータポートは前述した標準の2線式インタ
ーフェース型である。図示した幅はポートの全ワイヤ数
ではなく、データ表示におけるビット数を指している。
それに加えて、入力トークンデータポートに連合するの
は、前のブロックの出力に対する再同期のために使用さ
れるクロック信号及びリセット信号である。更に、出力
トークンデータポートに連合し、次に続くブロックによ
って使用される2つの再同期クロックがある。
【1646】マイクロプロセッサインターフェースは標
準であり、4ビットのアドレスを使用する。更に、3つ
の外部的にデコードされるセレクト入力があり、それら
はイベント、内部レジスタ、及びテストレジスタ用のア
ドレススペースを選択するために使用される。このメカ
ニズムはIDCTアドレススペースを異なるチップ内の
異なる位置にマップするためのフレキシビリティを提供
する。更に、1つのイベント出力、idctevent
と、2つのi/o信号、n derrdとnserrd
があり、それらはIDCT及びマイクロプロセッサの非
データバスの適当なビットに外部的に接続されるイベン
トトライステートデータワイヤである。
【1647】システムのサービスポートは標準のクロッ
ク信号とリセット入力信号、及び2フェイズオーバーラ
イドクロック及び関連するクロックオーバーライドモー
ドセレクト入力で構成される。
【1648】テストインターフェースはJTAGクロッ
ク信号及びリセット信号、スキャンパスデータ、制御信
号及びramtestとchiptest入力で構成さ
れる。
【1649】通常のオペレーションでは、IDCTがそ
の指定された機能を果たすためにマイクロプロセッサの
アクセスを必要としないので、マイクロプロセッサポー
トは不活性である。同様に、テストインターフェースは
テストもしくは確認が必要な場合にのみ活性である。
【1650】B.9.5 「離散コサイン変換用の演算
的基盤」 ビデオ帯域幅圧縮において、入力データはピクチャの方
形部分を表示する。従って、適用される変換は二次元で
なければならない。二次元変換は効果的に計算するのは
困難であるが、二次元DCTは分離できるプロパティを
持っている。分離可能な変換は他の次元とは別に各次元
に沿って計算され得る。これを実行するには、ハードウ
ェアにマッピングするために特に設計される一次元のI
DCTアルゴリズムを使用し;そのアルゴリズムはソフ
トウェアモデルには適切ではない。一次元アルゴリズム
は二次元の結果を得るために連続的に適用される。
【1651】N×Nのピクセルブロック用の二次元DC
Tの演算的定義は以下の通りである:
【1652】
【数5】 上記定義は演算的に、かけ算の間にマトリックス互換を
行い、2つのN×Nマトリックスを連続して二度掛ける
のに等しい。一次元DCTは演算的に2つのNNマトリ
ックスを掛けるのに等しい。演算的に、二次元の場合
は: Y=[XC]TC 式中、Cはコサインの項のマトリックスである。
【1653】このように、DCTは時にはマトリックス
操作の項で説明されることがある。マトリックスの説明
は変換の演算的約分のために便利であるが、これは記法
を簡単にするだけであることを強調しておかなければな
らない。2/Nの項がDCレベルを支配することに注
意。定数c(j)及びc(k)は正規化関数として知ら
れている。
【1654】B.9.6 「IDCT変換アルゴリズ
ム」 下記に続けて詳細に説明するように、実際のIDCT変
換を計算するために使用されるアルゴリズムは「高速」
アルゴリズムであるべきである。使用されるアルゴリズ
ムは効率的なハードウェア構造及び実装のために最適化
される。アルゴリズムの主な特徴は、1つの乗法を取り
除くための〓2スケーリングの使用、及び上位及び下位
セクションの間により大きな対称を生じさせるために設
計されるアルゴリズムの変換である。この対称は最も高
価な演算部の多くを効率的に再使用できるようにする。
【1655】アルゴリズムを示す線図(図145)にお
いて、上位半分と下位半分の間の対称は中間部分で明ら
かである。アダーとサブトラクターの最後のカラムも対
称部分を有しており、アダーとサブトラクターは比較的
低価格で組み合わせることができる(4つのアダー/サ
ブトラクターは図示されるような4つのアダーと4つの
サブトラクターよりかなり小さくなる)。
【1656】一次元変換の全ての出力は〓2によって概
算されることに注目。これは最後の二次元の答えが2に
よって概算されることを意味する。これは最終的なサチ
ュレーション及びシフティングによるラウンディングス
テージにおいて容易に訂正できる。
【1657】図示されたアルゴリズムは二倍精度浮動小
数点Cにおいてコード化され、この結果は(明瞭なマト
リックス乗法を用いて)基準IDCTと比較された。次
のステージはC(タイミング情報は含まれない)におけ
るアルゴリズムのビット正確整数バージョンをコード化
するために使用され、それはアルゴリズムがシリコン上
に実装されるであろう時に、アルゴリズムの性能及び精
度を確認するために使用できたであろう。許容できる変
換の間違いはH.261スタンダードにおいて明記され
ており、この方法はビット正確モデルを実行し、伝えら
れる精度を測定するために使用される。
【1658】図146は上位セクションと下位セクショ
ン間の共通性を図示する方法で、全体的なIDCT構造
を示し、更に中間結果を記憶することが必要なポイント
を示している。回路は上位セクション及び下位セクショ
ンが別個に計算されるようにするため時分割多重化され
ている。
【1659】B.9.7 「IDCT変換構造」 前述したように、IDCTアルゴリズムは効率的な構造
のために最適化される。その結果生じる構造の主な特徴
は次の通りである: ・高価な演算操作の重要な再使用 ・少数の乗算器、全てが多目的というよりむしろ一定係
数である(乗算器サイズを減少させ、別の係数記憶の必
要性を除去する) ・少数のラッチ、構造をパイプラインでつなぐためにわ
ずかに必要である ・パイプラインステージ毎に1つの分解操作だけが必要
であるようにオペレーションが配置される ・自然のオーダーで結果を生じるように配置できる ・複雑なクロスバースイッチングもしくは重要なマルチ
プレクシングがない(両者共、最終的な実装において高
価である) ・2つのキャリセーブオペレーション(1つは加算、1
つは減算)を取り除くために、分解結果から引き出され
る利点 ・各ステージが4クロックサイクルを取る、つまり非常
に高速の(大きな)演算操作の必要性を除去することを
可能にする構造 ・小さくて遅い波及的桁上げから、大きくて高速のキャ
リルックアヘッドバージョンへと単に分解操作を変更す
ることにより、現行の30MHzピクセルクロックオペ
レーションよりはるかに高速のオペレーションを支持す
るであろう構造。分解操作は各ステージにおいて必要な
時間の最大部分を必要とするので、これらのオペレーシ
ョンだけをスピードアップすることは全体的なオペレー
ションスピードに重大な影響を及ぼす一方、変換の全体
的なサイズの増加は比較的小さくてすむ。更に、速度の
増加はパイプライニングの深さを増加させることによっ
ても達成できる。
【1660】・変換データフローの制御は非常に明瞭で
あり、効率的である。
【1661】一次元変換微細構造の線図(図150)
は、アルゴリズムが小さな一組のハードウェア資源にマ
ップされ、必要な性能が得られる方法を示している。こ
の構造の制御は「制御シフトレジスタ」をデータフロー
パイプラインに適合させることにより達成される。この
制御はデザインに対して明瞭であり、シリコンレイアウ
トにおいて効率的である。
【1662】図150上で指名される制御信号(lat
ch,sel byp等)は、ラッチを制御するために
使用される様々なイネーブル信号であり、信号が流れ
る。ラッチに対するクロック信号は図示されていない。
【1663】変換構造が変換サイズを最小にしながら、
必要な精度基準を満たせるようにするという点から、幾
つかの実装に関する詳細が重要となる。一般に使用され
る技術は主として2つのクラスに分かれる。
【1664】・固定小数点位置を個々に制御することに
より、各々の中間状態で固定ワード幅を持つ最大ダイナ
ミックレンジの保持。
【1665】・(変換全体のワード幅を単に増加させる
ことによる精度増加ではなく)演算オペレーションの選
択操作により精度を達成するために、精度要件の統計的
定義の利用。
【1666】変換を設計する明瞭な方法は、精度を達成
するために充分な大きさにされた固定ワード幅で単に固
定小数点を実行することから成ったであろう。不運なこ
とに、このアプローチは結果的により大きなワード幅を
生じさせ、従って大きな変換を生じさせる。本発明にお
いて使用されるアプローチは、特別の中間値のために利
用できるダイナミックレンジを最大限利用する方法で、
変換を通じて固定小数点位置が変化できるようにし、最
大限可能な精度を達成する。
【1667】利用できる結果が統計的に明記されるの
で、全体的な精度を改善するためにどの中間値に対して
も選択的調整が行われ得る。選択される調整はLSB計
算の単なる操作であり、それはほとんど費用のかからな
いものである。この技術の代替案としては、ワード幅を
増やすことがあるが、かなりの費用がかかる。調整は最
終的な結果が以前に所定の方向と反対方向に行く傾向が
見い出されていれば、効果的にその結果に対して所定の
方向に加重値を与えることである。結果の断片的な部分
を調整することにより、これらの結果の全体的な平均を
効果的にシフトすることができる。
【1668】B.9.8 「IDCTブロック線図の説
明」 IDCTのブロック線図はトークンストリームのプロセ
シングに関連する全てのブロックを示す。この線図、図
147はクロッキング、テスト及びマイクロプロセッサ
アクセス、及びイベントメカニズムを詳細には示してい
ない。テストアクセスを提供するために使用されるスノ
ーパブロックは線図において図示されていない。
【1669】B.9.8.1 「データ誤差チェッカ
ー」 最初のブロックはデータ誤差チェッカー及びコレクター
であり、12ビット幅のトークンストリームを選び/作
り出し、このストリームを分析し、データトークンをチ
ェックするdecheckと呼ばれる。他の全てのトー
クンは無視され、直接送られる。遂行されるチェックは
64に等しくない拡張数を持つデータトークンのために
行われる。可能な誤差はdeficient(不足)
(<64拡張)、いdct too few even
t、及びsupernumerary(過剰)(>64
拡張)、idct too many eventと呼
ばれる。該かる誤差は標準のイベントメカニズムで合図
されるが、ブロックもトークンストリームの操作により
簡単な誤差リカバリを試みる。不足誤差の場合、データ
トークンは「0」バリュー拡張が詰められ(入力受け入
れを停止し、挿入を実行する)、正確な64拡張を作り
上げる。過剰誤差の場合、拡張ビットは64番目の拡張
に「0」が強制され、全ての余分な拡張はトークンスト
リームから取り除かれる。
【1670】B.9.8.2 「逆ジグザグ」 空間デコーダの次のブロックは逆ジグザグRAM、iz
zであり、これも12ビット幅のトークンストリームを
選び/作り出す。他の全てのブロックと同様、ストリー
ムは分析されるが、データトークンだけが認識される。
他の全てのトークンは変更されずに送られる。データト
ークンも送られるが、拡張オーダーが変更される。この
ブロックは正確なデータトークン(つまり、64拡張の
み)を頼りとする。これが真実のものでなければ、オペ
レーションは指定されない。再配置は標準の逆ジグザグ
パターンに従って行われ、IDCT出力において水平に
走査されるデータを提供するためにディフォルトによっ
て行われる。更に垂直に走査される出力を提供するため
オーダリングを変更することも可能である。標準のIZ
Zオーダリングに加えて、このブロックは各8ワードロ
ーの余分な再配置を実行する。これはIDCT一次元変
換ブロックの特別な要件の故に行われ、(0、1、2、
3、4、5、6、7)というオーダーではなく、(1、
3、5、7、0、2、4、6)というオーダーで出力さ
れるローを生じる。
【1671】B.9.8.3 「入力フォーマッティン
グ部」 次のブロックは入力フォーマッティング部、ip fm
tであり、それはIDCT変換の第1次元のためにデー
タ入力を形成する。このブロックは12ビット幅のトー
クンストリーム入力と22ビット幅のトークンストリー
ム出力を持つ。データトークンはIDCT変換標準22
ビット幅ワードにおける正しい有効へと整数部分を動か
すために、左にシフトされ、分数部分は0に設定され
る。これはこのポイントにおいて10ビット分数がある
ことを意味する。他の全てのトークンはシフトされず、
余分な未使用のビットは単に0に設定される。
【1672】B.9.8.4 「1次元変換 − 第1
次元」 図示されている次のブロックは最初の1次元IDCT変
換ブロック、onedである。これは22ビット幅のト
ークンストリームを入力/出力し、いつものように、ス
トリームは分析され、データトークンが認識される。他
の全てのトークンは無変更のまま送られる。データトー
クンは、8x8の逆離散コサイン変換の1次元実行を果
たす、パイプラインでつながれたデータパスを通過す
る。第1次元の出力には、データワード内に7ビット分
数がある。他の全てのトークンは単にデータ変換待ち時
間に適合し、出力前にトークンストリームに組み換えら
れる単なるシフトレジスタデータパスを通過する。
【1673】B.9.8.5 「転置RAM」 転置RAMtramはそれがトークンストリームを処理
する方法において、逆ジグザグRAMと多くの面で似て
いる。処理されるトークンの幅(22ビット)及び遂行
される再配置は異なるが、他の面では同じように作用
し、実際にその制御ロジックの多くを共有する。ここで
も、ローはカラムのローへの基本的スワッピングと共
に、次のIDCT次元の要件のために付加的に再配置さ
れる。
【1674】B.9.8.6 「1次元変換−第2次
元」 図示されている次のブロックは1次元IDCT変換ブロ
ックの別の例であり、全ての面で第1次元と同じであ
る。この次元の出力には、4ビット分数がある。 B.9.8.7 「ラウンドとサチュレーション」 ラウンド・サチュレーションブロック、rasは22ビ
ット固定小数点フォーマットのデータ拡張を含む22ビ
ット幅のトークンストリームを選び、9ビット幅のトー
クンストリームを出力するが、その場合データ拡張は
(+ve無限大に向かって)整数にラウンドされ、9ビ
ットの2の補数表示に飽和されており、他の全てのトー
クンは直接送られる。
【1675】B.9.9 「ブロックのハードウェア解
説」 B.9.9.1 「標準のブロック構造」 トークンストリームを処理する全てのブロックのため
に、図148に示すような標準の概念的な構造がある。
これはトークンストリームの操作を遂行するセクション
から2線式インターフェースラッチを分離する。この構
造上のバリエーションには、余分な内部ブロック(RA
Mコア等)が含まれる。図示した幾つかのブロックで
は、全ての「データパス」ロジックを一緒にグルーピン
グするという要件のため、その構造は(今も実際に存在
するにもかかわらず)概略図においてあまり明瞭にはさ
れず、これを全ての標準のセルロジックから分離する。
ras等の非常に簡単なブロックの場合、論理的操作を
せずに、ラッチされたoutacceptを直接入力2
線式ラッチに置くことができる。
【1676】B.9.9.2 「Decheck−デー
タ誤差チェッキング/リカバリ」 トークンストリーム内の最初のブロックは、ブロック線
図展望セクションで明記したように、データチェッキン
グと訂正を行う。検出される誤差は標準のイベントメカ
ニズムで処理され、それはイベントにマスクすることが
でき、ブロックは誤差が検出される時、リカバリ手順で
続けるか、あるいはイベントマスクステータス次第で停
止することができる。IDCTは正しくないデータトー
クンを見るべきではないので、それが試みるリカバリは
重大な問題であるかもしれないものを含もうとするかな
り簡単な試みにすぎない。
【1677】このブロックは2ステージのパイプライン
の深さがあり、zcellsにおいて完全に実行され
る。入力2線式インターフェースラッチは「フロント」
タイプのものであり、(IDCTの前にある)このブロ
ックがその前にあるものとは別の電源組織の上にある
時、全ての入力がトランジスタゲートに到達して安全な
オペレーションができるようにすることを意味してい
る。このブロックはトークンストリームを分析し、非デ
ータトークンを直接送ることによって作用する。データ
トークンが発見されると、カウントはヘッダの後見つけ
られた拡張数からスタートする。カウントが63ではな
い時、拡張ビットが「0」であると見い出されると、誤
差信号が発せられ(それはイベントロジックに行き)、
そのイベント用のマスクビットの状態次第で、dech
eckが停止される(つまり、もはや入力をアクセプト
しないか、出力を発しない)か、あるいは誤差リカバリ
を開始する。deficient誤差用のリカバリメカ
ニズムは、正しい拡張数のトークンストリームへの挿入
を制御するためにカウンタを使用する(挿入されるバリ
ューは常に「0」である)。明らかに、入力はアクセプ
トされないが、一方でこの挿入は続けられる。64番目
の拡張の拡張ビットが「0」ではないと見い出される
と、supernumerary誤差が発せられ、デー
タトークンは拡張ビットを「0」に強制することによっ
て完了され、「1」に設定された拡張ビットを持つ全て
の後に続くワードは、データをアクセプトし続けるが出
力を無効にすることによって、トークンストリームから
削除される。
【1678】2つの誤差信号は(ブロックが停止されな
い限り)永続的ではなく、つまり誤差信号だけが、リカ
バリが完了するまで、誤差が検出されるポイントから活
性のまま残る。これは最低限度の1つの完全なサイクル
であり、無限大に過剰なデータトークンの場合に永久に
存続する。
【1679】B.9.9.3 「Izzとtram−R
AMの再配置」 izz(逆ジグザグRAM)及びtram(転置RA
M)は、同じ機能のバリエーションを遂行し、違いより
類似性の方を多く持っているので、ここでは一緒に考慮
する。これらのブロックはトークンストリームを選び、
他の全てのトークンを無変更のまま送る一方で、データ
トークンの拡張を再配置する。処理される拡張幅及び再
配置のシーケンスは異なるが、各RAM用の制御ロジッ
クの大きなセクションは同じであり、実際に各RAM用
の概略図において例証される「コモン制御」ブロックに
組織化される。幅の違いはこの制御セクションには何の
影響も及ぼさないので、RAMコア及び適当な幅の2線
式インターフェースブロックと共に、各RAM用に異な
る「シーケンスアドレス発生器」を使用することだけが
必要である。
【1680】各RAMの全体的な行為は本質的にFIF
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))によってその後更に再配置される。
【1681】転置アドレスシーケンス発生はアルゴリズ
ム的に全く明瞭である。直接的な転置シーケンス発生は
単にロー及びカラムアドレスの別々の発生を必要とする
だけであり、それらは共にカウンタで実行される。ロー
再配置の要件は単に、ローアドレスが自然のカウンタで
はなく、、むしろ簡単な特殊なステートマシーンで発生
されるということを意味する。
【1682】逆ジグザグシーケンスはアルゴリズム的に
発生するため、あまり明瞭ではない。この事実の故に、
アドレスの全64ビットバリューを保持するために小さ
なROMが使用され、これは水平と垂直のスキャンモー
ド間で変化するために、スワップされ得るローとカラム
のカウンタでアドレスされる。ROMベースの発生器は
非常に素早く設計され、順方向ジグザグ(ROM再プロ
グラム)を実行するか、もしくは他の代替的なシーケン
スを将来加えることは些細なことであるという利点をも
有する。
【1683】B.9.9.4 「“Oned”−1次元
IDCT変換」 このブロックは20ステージのパイプライン深さを持
ち、パイプラインは失速されると硬くなる。この剛性は
デザインを大きく簡略化し、パイプラインの深さはそれ
ほど大きくないので、全体的な力に過度に影響を及ぼす
べきではなく、両次元は一定量のバッファリングを提供
するRAMの後を引き継ぐ。
【1684】ブロックは標準構造に従うが、(プロセス
されるべき)データトークン拡張及び無変更のまま送ら
れるべき他の全てのアイテムのために、内部的に別のパ
スを有する。概略図は特別な方法で描かれていることに
注意。まず、全てのデータパスロジックを一緒にグルー
プ分けするという要件の故に、次に、自動的に編集され
たコード発生を可能にするという要件(これはトップレ
ベルで制御ロジックを説明する)の故に。
【1685】トークンはいつもの通り分析され、それか
らデータ拡張とその他のバリューが、出力2線式インタ
ーフェースラッチブロックの前のマルチプレクサで組換
えされる前に、2つの異なる並列パスを通って各々送ら
れる。変換データパスを通してバリューを無変更のまま
送ることはできないので、並列パスが必要である。変換
データパスの待ち時間は、トークンストリームの残りを
処理するために、簡単なシフトレジスタと適合される。
【1686】onedの制御セクションはトークンスト
リームを分析し、トークンのスプリッティングと組換え
を制御する必要がある。その他の主なセクションは変換
データパスを制御する。このデータパスの制御用の主メ
カニズムはデータパスパイプラインを適合させる制御シ
フトレジスタであり、データパスパイプラインの各ステ
ージ用に必要な制御信号を提供するためにタップが外さ
れる。
【1687】onedブロックはデータ拡張の完全なロ
ー、つまり8のグループに関するオペレーションをスタ
ートすることだけができるという要件を持つ。ローの中
間で無効なデータ(Gaps)を処理することはできな
いが、事実上、izz及びtramのオペレーションは
完全なデータブロックが64の有効な拡張バリューの割
り込みなしのシーケンスとして出力されることを保証す
る。
【1688】B.9.9.4.1 「変換データパス」 変換データパスの微細構造、t dpは図150におい
て以前に図示した。一部の詳細(例えばクロッキング、
シフト等)は図示していないことに注意。しかしなが
ら、この線図はパイプラインのどのステージにおいて
も、データパスが4つのバリューに関して同時に操作す
る方法を図示している。基本的なデータパスのサブ構
造、つまり、3つの主要セクション(例えば、プリコモ
ン、コモン、ポストコモン)も、演算及びラッチリソー
スが必要になるにつれて、見ることができる。指名され
た制御信号は制御シフトレジスタステートのデコードで
順序付けされるパイプラインラッチ(及び加算/減算セ
レクタ)用のイネーブルである。各パイプラインステー
ジは長さにおいて実際に4つのクロックサイクルである
ことに注意。
【1689】変換データパス内に、入力を集め、パイプ
ラインに中間結果を記憶し、出力を順番に並べることが
必要な多くのラッチステージがある。幾つかのラッチは
マックシングタイプ、つまりそれらは条件付きで1つ以
上のソースからロードされ得る。全てのラッチは可能化
タイプのものである、つまり、別々のクロックとイネー
ブル入力がある。これは作られたクロックスキームが適
用された場合に生じるであろう不均斉という問題を考慮
しなければならないというより、正しいタイミングでイ
ネーブル信号を発生させることの方がたやすいことを意
味する。
【1690】必要とされる主要な演算要素は次の通りで
ある。
【1691】・多数の固定化係数乗算器(キャリセーブ
出力) ・キャリセーブアダー ・キャリセーブサブトラクター ・分解アダー ・分解アダー/サブトラクター 全ての演算は2の補数表示で行われる。これは通常の
(分解された)形態もしくはキャリセーブの形態(つま
り、その合計が実際のバリューを表示する2つの数字)
であってよい。全ての数字は記憶の前に分解され、これ
は時間の点から最も高価なオペレーションであるので、
1つの分解オペレーションだけがパイプラインステージ
毎に行われる。分解オペレーションはここで行われ、全
てのオペレーションが簡単な波及的桁上げを使用する。
これは分解器が非常に小さいが、比較的遅いことを意味
する。分解は各ステージにおいて全体の時間を支配する
ので、高速分解演算装置を使用して全体の変換をスピー
ドアップする機会が明らかにある。
【1692】B.9.9.5 「“Ras”−ラウンデ
ィングとサチュレーション」 本発明では、rasブロックは第2次元onedの出力
から22ビットの固定小数点ナンバーを選択し、これら
を正確にラウンドされ飽和された必要な9ビットのサイ
ン済み整数結果に変えるという仕事を果たす。このブロ
ックは更に、スキーム(2/Nターム)内の固有の必要
な4で割る作業を遂行し、更に2次元の各々において遂
行される=2のプリスケーリングを補うために必要な2
で割る作業を遂行する。この8で割る作業は固定小数点
位置が予測された以上に残された3ビットであると解釈
される、つまりその結果を15ビットの整数表示と(4
ビット分数ではなくむしろ)7ビット分数として処理す
ることを含蓄している。実行されるラウンディングモー
ドは「正の無限大にラウンドする」、つまり、正確に
0.5の分数に1を加算することである。これは実行す
るための最も簡単なラウンディングモードであるので、
基本的に行われる。ラウンディング(整数部分の条件付
き増分)が完了した後、9ビットのサイン済み結果がこ
の範囲内において最大または最小バリューに飽和される
必要があるかどうかを見るために、この結果が検査され
る。これは元の整数バリューの上位ビットと共に実施さ
れる増分の検査によって行われる。
【1693】いつものように、トークンストリームは分
析され、ラウンドとサチュレーションオペレーションが
データトークン拡張値に対してのみ適用される。ブロッ
クは深さが2ステージのパイプラインを持ち、完全にz
cellsで実行される。
【1694】B.9.9.6 「Idctsels −
IDCTレジスタセレクトデコーダ」 このブロックは4つのマイクロプロセッサインターフェ
ースアドレスライン及びsel test入力を、個々
のブロックテストアクセス用のセレクトライン(スノー
パ及びRAM)にデコードする簡単なデコーダである。
ブロックはzcells結合ロジックのみで構成され
る。デコードされるセレクトは表227に示す。
【1695】
【表225】
【1696】
【表226】 B.9.9.7 「Idctregs−IDCT制御レ
ジスタとイベント」 発明のこのブロックはデータの不足誤差及び過剰誤差、
及びIDCT出力が垂直に走査されるように、izz再
配置変更を行うために使用できる単一メモリーマップ済
みビットvscanを処理する標準イベントロジックブ
ロックの例を含む。このビットはバリュー「0」にリセ
ットされる、つまりディフォルトモードが水平にスキャ
ンアウトされる。2つの可能なイベントは割り込みとし
て使用できるidctevent信号を形成するため
に、共にORされる。レジスタ及びイベントのアドレス
及びビット位置に関しては、セクションB.9.10を
参照せよ。
【1697】B.9.9.8 「クロック発生器」 IDCTにおいて2つの「標準」タイプ(clkge
n)のクロック発生器が使用される。これは2つの別々
のスキャンパスがあるように実施される。クロック発生
器はidctcga及びidctcgbと称される。機
能的に、唯一の違いはidctcgbがnotrstl
信号を発生させる必要がないことである。2つのクロッ
ク発生器におけるクロックとリセット出力の各々のため
のバッファリング量は、各々のクロックもしくはリセッ
トによって駆動される実際のロードに適合するように個
々に調整される。適合されるロードは最終レイアウトの
ゲート及びトラックキャパシタンスから実際に測定され
た。
【1698】IDCTトップレベルのBlock Pl
ace and Route(BPR)が実行された時
の利点は、これらのトラックは有効電流を運ぶので、よ
り重く負荷されたクロック(ph0 bとph1 b)
用のクロック分配ツリーの最初のセクションのトラック
幅を増加させるために、対話式大域ルーティング特徴の
能力から引き出された。
【1699】B.9.9.9 「JTAG制御ブロッ
ク」 IDCTが2つの別個のスキャンチェインと2つのクロ
ック発生器を持つので、標準JTAG制御ブロック、j
spctleには2つの場合がある。これらはテストポ
ートと2つのスキャンパス間をつなぎ合わせる。
【1700】B.9.10 「イベント及び制御レジス
タ」 IDCTは2つのイベントを発生させることができ、1
つの制御ビットを持つ。2つのイベントとは、不正確な
データトークンが検出された場合に、IDCTの前のd
echeckブロックによって発生されるいdct t
oo feweventとidct too many
eventである。1つの制御ビットは垂直に走査さ
れる出力でIDCTを操作することが必要な場合に設定
されるvscanである。従って、このビットはizz
ブロックを制御する。全てのイベントロジック及びミモ
リーマップ制御ビットはブロックidctregsの中
に置かれる。
【1701】IDCTの観点から、これらのレジスタは
次のロケーションに置かれる。トライステートi/oワ
イヤはn derrdであり、これらのロケーションを
適宜にリード及びライトするためにn serrdが使
用される。
【1702】
【表227】
【1703】
【表228】 B.9.11 「実行」 B.9.11.1 「ロジックデザインアプローチ」 全てのIDCTブロックのデザインにおいて、発明によ
れば、統一された簡単なロジックデザイン戦略があり、
それは素早く明瞭な方法で「安全な」設計を行うことが
可能であるということを意味したであろう。多数の制御
ロジックのために、マスター・スレーブだけを用いる簡
単なスキームが採用された。非同期的なセット/リセッ
ト入力だけが正しいシステムリセットに接続された。同
じ機能をより効率的に遂行するために利口な非標準型回
路構成を提供することも可能であったかもしれないが、
このスキームは次のような利点を持っている。
【1704】・概念的にシンプルである ・設計しやすい ・操作速度はかなり明らかであり(ラッチ→ロジック→
ラッチ→ロジックスタイルのデザイン参照)、自動分析
に従う ・グリッチは問題ではない(SRラッチを参照) ・初期設定のためにシステムリセットだけを使用する ・スキャンパスが正しく作用できるようにする ・自動的に従うCコード発生を可能にする 透明なd−タイプのラッチが使用された多数の場所があ
り、これらは下記に記した。
【1705】B.9.11.1.1 「2線式インター
フェースラッチ」 スタンダードブロック構造は入力及び出力の2線式イン
ターフェースのためにラッチを使用する。出力2線式ラ
ッチと次に続く入力2線式ラッチの間にはロジックは存
在しない。
【1706】B.9.11.1.2 「ROMインター
フェース」 ROM回路のタイミング要件の故に、ラッチはROMの
出力におけるIZZシーケンス発生器において使用され
る。
【1707】B.9.11.1.3 「変換データパス
及び制御シフトレジスタ」 完全なマスター・スレーブ装置としてあらゆるパイプラ
イン記憶ステージを実装することが可能であるが、必要
とされる記憶量の故に、ラッチを使用することにより得
られる重大な節約がある。しかしながら、このスキーム
はユーザーが幾つかの要素を考慮することを求めてい
る。
【1708】・制御シフトレジスタはイネーブルとして
使用されるため、両フェイズの制御信号を作り出さなけ
ればならない(つまり、このシフトレジスタにおいてラ
ッチを使用する必要) ・タイミング分析はラッチの使用により複雑になる ・1つのラッチが同じフェイズの別のラッチに出力する
ので、t postcはもはや自動的に編集済みコード
を作り出さないであろう(イネーブルのタイミングの故
に、これは回路の問題ではない)にもかかわらず、ラッ
チの使用により節約されるエリアは本発明においてこれ
らの要素を受け入れることを価値のあるものにしてい
る。
【1709】B.9.11.1.4 「マイクロプロセ
ッサインターフェース」 本インターフェースの性質のため、イベント及びレジス
タブロックidctregs及びRAMコア用のキーホ
ールロジックにおいて、ラッチ(及びリシンクロナイザ
ー)のための要件がある。
【1710】B.9.11.1.5 「JTAGテスト
制御」 これらのスタンダードブロックはラッチを利用する。
【1711】B.9.11.2 「回路デザインの問
題」 IDCTデザイン(スタンダードセル、データパスライ
ブラリ、RAM、ROM等)において使用されたライブ
ラリセルのデザインにおいて為された仕事は別にして、
IDCTにおいてトランジスタレベル回路デザインのた
めの要件はない。(Hspiceを用いる)回路シミュ
レーションは変換データパスにおいて幾つかの公知のク
リティカルパスの中から実行され、Hspiceは更に
許容される最大長に近いパスの場合に、クリティカルパ
スアナリシス(CPA)ツールの結果を確認するために
も使用された。
【1712】IDCTは通常のオペレーションにおいて
完全に静的である(つまり、我々はシステムクロックを
無期限に停止することができる)が、テストクロックが
停止される(または非常に低速にされる)時に衰えるで
あろう走査可能なラッチに動的なノードがあることに注
意。Vt降下(例えば、マックス出力)を呈する幾つか
のノードの非再生性のために、IDCTは静的な場合に
「マイクロ・パワー」ではないであろう。
【1713】B.9.11.3 「レイアウトアプロー
チ」 本発明のレイアウト実行に対する全体的アプローチは、
多くのzcellと少数のマクロブロックで構成された
完全なIDCTをレイアウトするために、BPR(幾つ
かのマニュアル干渉)を使用することであった。これら
のマクロブロックは手動編集されたレイアウト(例え
ば、RAM、ROM、クロック発生器、データパス)で
あったか、もしくはonedブロックの場合、更なるz
cell及びデータパスからBPRを使用して構築され
ていた。
【1714】データパスはkdplibセルから構築さ
れた。それに加えて、kdplibセルの局部的に限定
されたレイアウトバリエーションが定義され、これが価
値のあるサイズベネフィットを提供すると認められた場
合に使用された。各々のonedブロック、oned
dにおいて使用されるデータパスは、デザインの中のず
ばぬけて最大の1エレメントであり、このデータパスの
サイズ(高さ)を最適化するためにかなりの努力が払わ
れた。
【1715】データパス内のエレメントの正確なオーダ
リングが相互連絡が処理される方法に影響を及ぼすの
で、変換データパスの組織、t dpはむしろ決定的で
ある。最大許容値(理想的には8、非常に不便であるが
10も可能である)があるので、最も密集したポイント
で発生するovers(サブブロックに接続しない垂直
ワイヤ)の数を最小にすることが重要である。データパ
スは3つの主要なサブセクションに論理的にスプリット
され、こうしてデータパスレイアウトが実行される。各
サブセクションにおいて、現に4つの並列するデータフ
ローがあり(それは様々なポイントで組み合わされ)、
従って、各サブセクション内でデータ・フロー(そし
て、全てのエレメントの位置)を組織する多くの方法が
ある。各サブセクション内のブロックのオーダリング、
及び論理バスの物理的バスピッチへの割当は、正確に接
続されるであろうレイアウトを達成することを可能にす
るために、レイアウトが始まる前に注意深く算出され
た。
【1716】B.9.12 「照合」 IDCTの照合はアルゴリズムのトップレベルの照合か
ら最終レイアウトチェックまで、多くのレベルにおいて
為された。
【1717】変換構造に関する初期作業はCにおいて行
われ、完全精度及びビット正確整数モデルが開発され
た。H.261精度規格に対する適合性を立証し、変換
構造内の計算のダイナミックレンジを測定するため、ビ
ット正確モデルに関して様々なテストが実施された。
【1718】多くの場合Mを書くことによって、デザイ
ンはサブブロックの行動科学的説明(例えば、データパ
ス及びRAMの制御)を前進させた。該かる説明は、そ
のブロックの概略的説明のデザインに移動する前に、L
simにおいてシミュレートされた。ある場合(例え
ば、RAM、クロック発生器)には、行動科学的説明は
トップレベルのシミュレーションのためにも使用され
た。
【1719】ロジックシミュレーションを遂行するため
の戦略は、そのレベルで適切にシミュレートするであろ
う全てのもののために概略図をシミュレートすることで
あった。ローレベルのライブラリセル(つまり、zce
ll及びkdplib)は、この結果がはるかに小さく
素早いシミュレーションであるので、主としてその行動
科学的説明を用いてシミュレートされた。それに加え
て、行動科学的ライブラリセルはある回路の構造問題を
強調することができるタイミングチェックという特徴を
提供する。信頼チェックとして、ライブラリセルのトラ
ンジスタ解説を用いて、あるシミュレーションが実施さ
れた。全てのロジックシミュレーションはゼロディレイ
方式で行われ、従って機能上の性能を照合することが意
図されていた。リアルタイミングの行動の照合は他の技
術を用いて行われた。
【1720】タイミング性能の部分的照合として、(R
C Timingモードを用いて)Lsimスイッチレ
ベルシミュレーションが行われたが、更に他の潜在的な
トランジスタレベルの問題(例えば、グリッチ高感度回
路)のためのチェックを提供する。
【1721】タイミング問題をチェックするための主な
照合技術はCPAツール、datechk用のpath
オプションの使用であった。これはより長い信号パスを
識別する(あるものはすでに知られていた)ために使用
され、ある重大な場合にCPA分析を照合するためにH
spiceが使用された。
【1722】IDCT行為のバルクは装置を通じてトー
クンのフローにより訓練されているので、ほとんどのL
simシミュレーションは標準のソース→ブロック→シ
ンク方法論で行われた。マイクロプロセッサインターフ
ェース(構成、イベント及びテストロジック)を通して
アクサスされる特徴、及びJTAG/スキャンを介して
アクセスされるテスト特徴をテストするために、付加的
なシミュレーションも必要である。
【1723】編集済みコードシミュレーションは、やは
り標準のソース→ブロック→シンク方法及びLsim照
合において使用された同じトークンストリームの多くを
用いて、全IDCTのために当業者によって容易に達成
され得る。
【1724】B.9.13 「テスティング及びテスト
サポート」 本セクションはテスティング用及び各々のブロックが如
何にテストされるかの分析用に提供されるメカニズムを
扱う。
【1725】テストアクセス用に提供される3つのメカ
ニズムは次の通りである: ・RAMコアへのマイクロプロセッサアクセス ・スノーパブロックへのマイクロプロセッサアクセス ・制御及びデータパスロジックへのスキャンパスアクセ
ス IDCTには2つの「スノーパ」ブロックと1つの「ス
ーパースノーパ」ブロックがある。図149はスノーパ
ブロックの位置と他のマイクロプロセッサのテストアク
セスを示している。
【1726】これらと2つのRAMブロックを用いて、
トークンフローに関するそれらの行動をテストする目的
で、各々の主要ブロックを隔離することが可能である。
マイクロプロセッサアクセスを用いて、如何なるブロッ
クに対するトークン入力をも制御し、隔離されているそ
のブロックのトークンポート出力を観察することが可能
である。更に、各ブロックの制御セクションにおける
(ほとんど)全てのフリップフロップとラッチを通過
し、またoned変換データパスパイプラインの場合に
データパスラッチの一部を通過する2つの別々のスキャ
ンパスがある。2つのスキャンパスはaとbと表示さ
れ、前者はdecheckブロックからipfmtブロ
ックへと動き、後者は最初のonedブロックからra
sブロックへと動く。
【1727】スノーパに対するアクセスは通常の方法で
適切なメモリーマップされたロケーションをアクセスす
ることにより可能である。(適当なものとしてramt
est入力を用いて)RAMコアの場合にも同じことが
言える。スキャンパスは通常の方法でJTAGポートを
通してアクセスされる。
【1728】様々なテスト問題に関連して各ブロックを
論じる。
【1729】B.9.13.1 「Decheck」 このブロックは入力と出力の2線式インターフェース用
の2つのラッチがプロセシングブロックを囲む標準構造
(図148を参照)を持つ。いつものように、これらの
2線式ラッチは可能化される時はいつでも単にデータを
通り過ぎ、テストされるロジックの深さを持たないの
で、如何なる走査も2線式ラッチに対して行われない。
このブロックでは、「制御」セクションは全てがスキャ
ンパスaの上にあるzcellの1ステージパイプライ
ンから成る。制御セクション内のロジックは比較的シン
プルであり、ほとんどの複雑なパスはおそらく6ビット
増分器が使用されるデータ拡張カウントの発生において
である。
【1730】B.9.13.2 「Izz」 このブロックは標準構造の変形であり、2線式インター
フェースラッチと制御セクションに加えられるRAMコ
アブロックを含む。制御セクションはアドレスシーケン
ス発生のために使用されるzcellと小さなROMで
実装される。全てのzcellはスキャンパスa上にあ
り、ROMアドレスへのアクセス及びzcellラッチ
を介したデータがある。更に、ロジック、例えばナンバ
ーの発生プラス増分または減少する能力のためのロジッ
クがある。それに加えて、リードアドレス発生のために
使用される7ビットのフルアダーがある。RAMコアは
キーホールレジスタを通して、マイクロプロセッサイン
ターフェースを介してアクセス可能である。表225、
表226を参照。
【1731】B.9.13.3 「lp fmt」 このブロックも標準構造を持っている。制御ロジックは
かなり簡単なzcellロジック(全てがスキャンパス
a上にある)で実装されるが、ここでのロジックは非常
に浅くシンプルであるので、データのラッチング及びシ
フティング/マックシングは、直接的なアクセスなしに
データパスにおいて行われる。
【1732】B.9.13.4 「Oned」 ここでも、このブロックは標準構造に従い、ランダムロ
ジックとデータパスセクションに分かれる。zcell
ロジックは比較的明瞭であり、全てのzcellがスキ
ャンパスa上にある。変換パイプラインデータパス用の
制御信号は、スキャンパス上にあるzcellラッチで
構成される長いシフトレジスタから引き出される。それ
に加えて、幾つかのパイプラインラッチがスキャンパス
上にあり、これはパイプラインの幾つかのステージ(例
えば、乗算器とアダー)間のロジックがかなり深いもの
であることから行われる。非データトークンはシフトレ
ジスタに沿って送られ、データパスとして実装され、こ
れらのステージのいずれに対するテストアクセスも存在
しない。
【1733】B.9.13.5 「Tram’」 このブロックはizzブロックと酷似している。しかし
ながら、この場合、アドレスシーケンスアドレス発生に
おいて使用されるROMはない。これはアルゴリズム的
に実行される。全てのzcell制御ステートはデータ
パスb上にある。
【1734】B.9.13.6 「Rras’」 このブロックは標準構造に従い、完全にzcellで実
行される。最も複雑な論理機能はラウンディングアップ
時に使用される8ビット増分器である。他の全てのロジ
ックはかなりシンプルである。全てのステートはスキャ
ンパスb上にある。
【1735】B.9.13.7 「他のトップレベルの
ブロック」 IDCTのトップレベルに現れる他の幾つかのブロック
がある。スノーパはJTAG制御ブロックであるのと同
様、明らかにテストアクセスロジックの一部でもある。
更に、特別なテストアクセスを持たない2つのクロック
発生器がある(但し、それらは様々なテスト特徴を支持
している)。ブロックidctselsはマイクロプロ
セッサアドレスをデコーディングするための組合わせz
cellロジックであり、ブロックidctregsは
マイクロプロセッサアクセス可能イベント、及びIDC
T関連制御ビットを含む。
【1736】セクション B.10 「序文」 B.10.1 「時間デコーダの展望」 本発明による時間デコーダの内部構造を図151に示
す。
【1737】チップ・ブロック間の全てのデータフロー
(及びブロック内の多くのデータフロー)は2線式イン
ターフェースによって制御され(詳細については技術参
考書及びセクションを参照)、図151内の各々の矢印
は2線式インターフェースを表す。入ってくるトークン
ストリームは、外部システムクロックからのデータをフ
ェイズロックループ(ph0/ph1)から引き出され
る内部クロックに同期させる入力インターフェースを通
過する。トークンストリームは次にトップフォークを介
して2つのパスにスプリットされる;1つのストリーム
はアドレス発生器に進み、他のストリームは256ワー
ドFIFOに進む。FIFOはデータをバッファする一
方、前のIまたはPフレームからのデータはDRAMか
ら引き出され、予測アダー(P及びBフレーム)内の空
間デコーダからの入力誤差データに加えられる前に、予
測フィルタにおいてプロセスされる。MPEGデコーデ
ィングの間に、出力フレームが正しいオーダーにあるよ
うに、フレーム再配置データがI及びPフレームのため
に引き出されなければならない。再配置されたデータは
リードラダーブロック内のストリームに挿入される。
【1738】アドレス発生器はフォワード及びバックワ
ード予測、再配置、リード及びライトバックのために別
々のアドレスを発生させ、ライトバックされるデータは
ライトラダーブロック内のストリームからスプリットさ
れる。最後に、データは出力インターフェースブロック
内の外部クロックに再同期化される。
【1739】時間デコーダ内の全ての主要ブロックは内
部マイクロプロセッサインターフェース(UPI)バス
に接続される。これはマイクロプロセッサインターフェ
ースブロック内の外部マイクロプロセッサインターフェ
ース(MPI)から引き出される。このブロックはそれ
に関連するチップ内の様々なブロックのためにアドレス
デコードを持つ。更に、マイクロプロセッサインターフ
ェースと連合するのはイベントロジックである。
【1740】時間デコーダの残りのロジックは基本的に
テスト関連である。第1に、IEE1149.1(JT
AG)インターフェースがJTAGバウンダリスキャン
特徴に対すると共に、内部スキャンパスに対するインタ
ーフェースを提供する。第2に、テストモードの間に、
マイクロプロセッサインターフェースを介してデータフ
ローに対する侵入的アクセスを可能にする2線式インタ
ーフェースステージが、パイプライン構造内の戦略ポイ
ントに含まれる。
【1741】セクション B.11 「クロッキング、
テスト及び関連問題」 B.11.1 「クロック様式」 チップ内の個々の機能的ブロックを考慮する前に、チッ
プ内のクロック様式及びそれらの関係を認識することが
有益であろう。
【1742】通常のオペレーションの間に、チップのほ
とんどのブロックはフェイズロックループ(PLL)か
らの信号pllsysclkに同期して動く。これに対
する例外はDRAMインターフェースであり、そのタイ
ミングはiftimeサブブロックに同期する必要によ
って支配され、このサブブロックはDRAM制御信号
(notwe、notoe、notcas、notra
s)を発生させる。このブロックのコアは2フェイズ・
ノンオーバーラッピングクロックclk0とclk1に
よりクロックされ、それらはPLL cki0、cki
1及びclkg0、ckg1から別個に供給されるクア
ドラチュア2フェイズクロックから引き出される。
【1743】clk0、clk1 DRAMインターフ
ェースクロックが残りのチップ内のクロックに同期する
ので、DRAMインターフェースと残りのチップ間のイ
ンターフェースにおいて、(実際上可能な限り)準安定
行為の可能性を除去するための対応策が取られた。同期
化は2つの領域で発生する:アドレス発生器の出力イン
ターフェースにおいて(addrgen/predre
ad/psgsync、addrgen/ip wrt
2/sync18及びaddrgen/iprd2/s
ync18)、及びDRAMインターフェース内のスイ
ング・バッファーRAMの「スインギング」を制御する
ブロックにおいてである(DRAMインターフェースに
関するセクション参照)。各々の場合に、同期化プロセ
スは3つの直列準安定ハードフリップフロップによって
達成される。注意すべきことは、これはclk0/cl
k1がアドレス発生器の出力ステージにおいて使用され
ることを意味することである。
【1744】これらの完全に同期したクロック様式に加
えて、pllsysclkから2フェイズ・ノンオーバ
ーラッピングクロック(ph0、ph1)を発生させる
多くの別個のクロック発生器がある。アドレス発生器、
予測フィルタ及びDRAMインターフェースは各々自身
のクロック発生器を持っており;残りのチップはコモン
クロック発生器から離れて動かされる。こうした理由に
は2つの部分がある。第1に、個々のクロック発生器に
かかる容量性負荷を減少させ、より小さなクロックドラ
イバと減少したクロックルーティング幅を可能にする。
第2に、各々のスキャンパスはクロック発生器によって
制御され、従って、クロック発生器の数の増加により短
いスキャンパスを使用できるようになる。
【1745】これらのクロック様式バウンダリを横切っ
て動かされる信号を再同期化することが必要である。な
ぜなら、異なるクロック発生器から引き出されるノンオ
ーバーラッピングクロック間の重要でないスキューがイ
ンターフェースにおいてアンダーラップが発生したこと
を意味するであろうからである。各「スノーパ」ブロッ
ク(セクション B.11.4を参照)に内蔵された回
路が、こうしたことが発生しないことを保証し、スノー
パブロックは、トークンデコードブロックにおいて再同
期化が行われるアドレス発生器の前を除いて、全てのク
ロック様式間の境界に置かれた。
【1746】B.11.2 「クロックの制御」 各標準クロック発生器は通常のモード及びスキャンテス
トモードで、オペレーションができるようにする多くの
異なるクロックを発生させる。スキャンテストモードで
のクロックの制御は他のセクションで詳細に説明する
が、注目すべきことは、クロック発生器(tph0、t
ph1、tckm、tcks)により発せられるクロッ
クの幾つかは、通常概略図の原始記号に加えられない。
これはこれらのクロックを正確に接続するポストプロセ
ッサにより、スキャンパスが自動的に作られるからであ
る。機能的な観点から見ると、ポストプロセッサが概略
図に示されたものとは異なるクロックを接続したという
事実は無視することができる;行為は同じである。
【1747】通常のオペレーション中に、マスタークロ
ックは多くの異なる方法で引き出すことができる。表2
29はピンpllselect及びオーバーライドのス
テートにより様々なモードを選択できる様子を示してい
る。
【1748】
【表229】 B.11.3 「2線式インターフェース」 2線式インターフェースの全体的な機能性については技
術参考書において詳細に説明する。しかしながら、2線
式インターフェースは時間デコーダ内の全てのブロック
間の通信のために使用され、ほとんどのブロックは多く
のパイプラインステージで構成され、その全ては2線式
インターフェースステージである。従って、多くの概略
図を解釈できるためには、2線式インターフェースの内
部実装を理解することが重要である。一般的に、これら
の内部パイプラインステージは図152に示すように構
成される。
【1749】図152はラッチ−ロジック−ラッチ表示
を示しており、これが通常使用される配置である。しか
しながら、多くのステージが一緒に置かれる時、「ステ
ージ」をラッチ−ラッチ−ロジック(多くの技術者にと
って良く知られているモード)と考えることも有効であ
る。ラッチ−ロジック−ラッチ配置の使用は全てのブロ
ック間通信が、ブロックを送る際にも受け取る際にも、
ロジックを間に挟まずに、ラッチ対ラッチであるように
できる。
【1750】再び図152において、ロジックブロック
を取り除き、データと有効信号を直接ラッチ間に接続し
out validとout acceptがゲートさ
れるのと同様に、入力上のNORゲートに直接ラッチさ
れたin validをinacceptラッチに接続
することにより、簡単な2線式インターフェースFIF
Oステージが構築できる。データと有効信号は次に対応
するアクセプト信号が高い時に伝搬する。図示した方法
でin validをout acceptregでO
Rイングすることにより、データはout accep
t regが低くても、in validが低い場合に
アクセプトされる。この方法で、ストール(低い信号を
アクセプトする)が発生する時はいつでも、gaps
(有効なビットが低いデータ)がパイプラインから取り
除かれる。
【1751】図152に示すように、ロジックブロック
を挿入し、in acceptとout validは
データもしくはブロックのステートに従属できる。図示
した配置では、ブロック内のあらゆるステートが、ph
1によって可能化されるマスターと、ph0によって可
能化されるスレーブを備えた、マスター・スレーブ装置
内に保持されることが標準である。
【1752】B.11.4 「スノーパブロック」 スノーパブロックはチップ内の様々なポイントにおいて
マイクロプロセッサインターフェースを介してデータス
トリームへのアクセスを可能にする。スノーパブロック
には2つのタイプがある。普通のスノーパはクロックが
直接制御され得るテストモードにおいてのみアクセス可
能である。「スーパースノーパ」は、クロックが動いて
いる間もアクセス可能であり、マイクロプロセッサバス
からの非同期データを内部チップクロックに同期化させ
る回路を包含している。表230は時間デコーダ内の全
てのスノーパのロケーションとタイプを記載している。
【1753】
【表230】 両スノーパの使用に関する詳細はテストセクションに記
載する。JTAGインターフェースのオペレーションの
詳細はJTAG文書に記載する。
【1754】セクション B.12 「機能ブロック」 B.12.1 「トップフォーク」 本発明によれば、トップフォークは2つの異なる機能を
果たす。第1に、データストリームを2つの異なるスト
リームに分岐する:1つはアドレス発生器に、他の1つ
をFIFOに、第2に、チップを配置できるように、チ
ップのスターティング手段及びストッピング手段を提供
する。
【1755】構成要素のフォーク部分の局面は非常に簡
単である。同じデータがアドレス発生器とFIFOに表
示され、アクセプトが前のステージに送り返される前に
両ブロックによってアクセプトされていなければならな
い。このように、フォークの2つのブランチのvali
dsが他のブランチからのアクセプトに従属する。チッ
プが停止状態にある場合、両ブランチに対するvali
dsは低く保たれる。チップは配置ビットが高く設定さ
れるまで、in acceptが低く保たれる状態でパ
ワーアップする。これはユーザーがチップを配置してし
まうまで如何なるデータもアクセプトされないことを保
証する。ユーザーが他の時にチップを配置する必要があ
る場合、ユーザーは配置ビットを設定し、チップが現在
のストリームを完了してしまうまで待たなければならな
い。ストッピングプロセスは次の通りである: 1)配置ビットが設定されていれば、トップフォークに
よってフラッシュトークンが検出された後、如何なるデ
ータもアクセプトされない。
【1756】2)フラッシュトークンがリードラダーに
到達する時には、チップはストリームのプロセシングを
完了しているであろう。これは信号seq doneを
高くさせる。
【1757】3)seq doneが高くなると、マイ
クロプロセッサが読むことができるイベントビットを設
定する。イベント信号はイベントブロックによってマス
クされ得る。
【1758】B.12.2 「アドレス発生器」 本発明では、アドレス発生器(addrgen)はフレ
ーム内のブロック数をカウントし、DRAMデータ伝送
用の正しいアドレスシーケンスを発生させる責任があ
る。アドレス発生器の入力は(トップフォークを介して
の)トークン入力ポートからのトークンストリームであ
り、DRAMインターフェースに対するその出力は、リ
クエスト/アクノレッジプロトコールにより制御される
アドレス及び他の情報から成る。
【1759】アドレス発生器の基本的なセクションは以
下の通りである: ・トークンデコード ・ブロックカウンティング及びDRAMブロックアドレ
スの発生 ・モーションベクトルデータのアドレスオフセットへの
変換 ・予測伝送用のリクエスト及びアドレス発生器 ・再配置リードアドレス発生器 ・ライトアドレス発生器 B.12.2.1 「トークンデコード(tokde
c)」 トークンデコーダにおいて、コーディングスタンダード
に連合するトークン、フレーム、ブロック情報、及びモ
ーションベクトルがデコードされる。ストリームから抽
出される情報は一連のレジスタに記憶され、それはup
iを介してアクセスされ得る。データトークンヘッダの
検出は次のブロックに合図され、ブロックカウンティン
グ及びアドレス発生を可能化する。JPEGを動かして
いる時は何も起こらない。
【1760】デコードされるトークンリスト ・コーディングスタンダード ・データ ・DEFINE MAX SAMPLING ・DEFINE SAMPLING ・HORIZONTAL MBS ・MVD BACKWARDS ・MVD FORWARDS ・ピクチャスタート ・ピクチャタイプ ・予測モード このブロックは更にリクエスト発生器からの情報を組み
合わせて、フレームポインタのトグリングを制御し、入
力ストリームをストール(失速)させる。新しいフレー
ムが(ピクチャスタートトークンの形態で)入力に現れ
ると、ストリームはストールされるが、前のフレームに
関連するライトバックもしくは再配置リードは不完全で
ある。
【1761】B.12.2.2 「マクロブロックカウ
ンタ(mblkcntr)」 本発明のマクロブロックカウンタはフレーム内のマクロ
ブロックの水平位置及び垂直位置を指す4つの基本的カ
ウンタから成る。時間の始まりにおいて、また各ピクチ
ャスタートに際して、全てのカウンタは0に設定され
る。データトークンヘッダが到着すると、カウンタは増
分し、トークンヘッダ及びフレーム構造内の色成分ナン
バーに従ってリセットされる。このフレーム構造はトー
クンデコーダ内のサンプリングレジスタによって説明さ
れる。
【1762】所定の色成分のために、カウンティングは
次のように進行する。水平ブロックカウントはマクロブ
ロックの幅に達するまで、同じ成分の新しいデータトー
クンの各々に増分され、その後リセットする。垂直ブロ
ックカウントはマクロブロックの高さに達するまで、こ
のリセットによって増分され、その後リセットする。こ
れが発生すると、次の色成分を待つ。従って、このシー
ケンスはマクロブロック − おそらく各成分によって
異なるでろう、マクロブロックの水平と垂直のサイズに
おける成分の各々に対して繰り返される。ある成分に対
して、期待されるより少ないブロックが受け取られた場
合でも、カウントは誤差なしに次の成分へと進むであろ
う。
【1763】データトークンの色成分が期待されたバリ
ューより少ない場合、水平マクロブロックカウントが増
分される。(所定の色成分に対して期待された以上のブ
ロック数が現れた時にも、カウンタはより高い成分イン
デックスを期待しているので、こうしたことが発生する
であろう。)この水平カウントはカウントがマクロブロ
ック内のピクチャ幅に達する時にリセットされる。この
リセットは垂直マクロブロックカウントを増分させる。
【1764】更に、H.261 CIFフォーマット内
のマクロブロックをカウントする能力がある。この場
合、マクロブロックとブロック・グループと呼ばれるピ
クチャとの間の特別レベルの階層がある。これは11マ
クロブロック幅と3マクロブロックの深さであり、ピク
チャは常に2グループ幅である。トークンデコーダはピ
クチャタイプトークンからCIFビットを引出し、これ
をマクロブロックカウンタに送り、ブロック・グループ
をカウントするよう指示する。成分毎にブロック数が少
ないか、もしくは多すぎる場合、上記のような反応が引
き起こされるであろう。
【1765】B.12.2.3 「ブロック計算(bl
kcalc)」 ブロック計算はマクロブロック及びマクロブロック内ブ
ロックの座標をピクチャ内のブロックの位置用座標に変
換する、つまり階層レベルをノックアウトする。もちろ
ん、これは異なる色成分のサンプリング率を考慮しなけ
ればならない。 B.12.2.4 「ベースブロックアドレス(bsb
lkadr)」 blkcalcからの情報は色成分オフセットと共に、
線形DRAMアドレス空間内のブロックアドレスを計算
するために使用される。本質的に、所定の色成分のため
に、線形ブロックアドレスは垂直ブロック数xピクチャ
幅+水平ブロック数である。これはベースブロックアド
レスを形成するために色成分オフセットに加算される。
【1766】B.12.2.5 「ベクトルオフセット
(vec pipe)」 トークンデコーダによって表示されるモーションベクト
ル情報は、水平及び垂直のピクセルオフセット座標の形
態である。つまり、フォワード及びバックワードベクト
ルの各々のために、それが予測されているブロックに形
成されるブロックから半ピクセルの転置を与える(x、
y)がある。これらの座標は正または負であってよいこ
とに注意。それらはまず各色成分のサンプリングに従っ
て概算され、ブロック及び新しいピクセルオフセット座
標を形成するために使用される。図154において、陰
部分が形成されつつあるブロックを表す。点線の輪郭は
そこからそれが来ることが予測されているブロックであ
る。大きな矢印はブロックオフセット−予測ブロックの
オリジンを含むDRAMブロックへの水平及び垂直のベ
クトル、この場合(1、4)を示す。小さな矢印は新し
いピクセルオフセット−そのDRAMブロック内の予測
ブロックオリジンの位置を示す。DRAMブロックが8
×8バイトであるので、ピクセルオフセットは(7、
2)であるように見える。
【1767】乗算器アレイvmarrlaは次にブロッ
クベクトルオフセットを線形ベクトルオフセットに変換
する。ピクセル情報は(x、y)座標(pix inf
o)として予測リクエスト発生器に送られる。
【1768】B.12.2.6 「予測リクエスト」 フレームポインタ、ベースブロックアドレス、及びベク
トルオフセットは加算されて、DRAM(Inblka
d3)から引き出されるアドレスを形成する。ピクセル
オフセットが0であれば、1つのリクエストだけが発せ
られる。x、またはy次元のいずれかにおいてオフセッ
トがあれば、2つのリクエスト−オリジナルブロックア
ドレス、及びすぐ右かあるいは真下のもののいずれか−
が発せられる。x及びyの両方にオフセットがあれば、
4つのリクエストが発せられる。チップクロック様式と
DRAMインターフェースクロック様式間の同期は第1
の加算(Inblkad3)と、適当なリクエストを発
するステートマシーンとの間で起きる。このように、ス
テートマシーン(psgstate)はDRAMインタ
ーフェースクロックによってクロックされ、その走査さ
れたエレメントはDRAMインターフェーススキャンチ
ェインの一部を形成する。
【1769】B.12.2.7 「再配置リードリクエ
スト及びライトリクエスト」 ここではピクセルオフセットが含まれないので、各アド
レスは関連フレームポインタにベースブロックアドレス
を加算することにより形成される。再配置リードは予測
及びデータが他のフレーム記憶装置に書き戻されるの
で、同じフレーム記憶装置を使用する。各ブロックはリ
ード及びライトデータの伝送が対応するアドレスにおけ
る予測伝送を遅らせる傾向があるので、アドレスを記憶
するため短FIFOを具備する。(これはリード/ライ
トデータが予測データよりチップデータフローに沿った
ストリームと相互作用するからである。)更に、各ブロ
ックはチップクロックとDRAMインターフェースクロ
ック間の同期化を含む。
【1770】B.12.2.8 「オフセット」 DRAMは2つのフレーム記憶装置として配置され、各
々が3つの色成分を含む。フレーム記憶装置ポインタ及
び各フレーム内の色成分オフセットがupiを介してプ
ログラムされなければならない。
【1771】B.12.2.9 「スノーパ」 本発明では、スノーパは次のように配置される: ・blkcalcとbsblkadrの間−このインタ
ーフェースは水平と垂直のブロック座標、適切な色成分
オフセット、及び(その成分用の)ブロック内のピクチ
ャ幅から成る。
【1772】・bsblkadrの後−ベースブロック
アドレス。
【1773】・vec pipeの後−線形ブロックオ
フセット、予測モード、色成分及びH.261オペレー
ションに関する情報と共に、ブロック内のピクセルオフ
セット。
【1774】・Inblkad3の後−「予測リクエス
ト」の項で説明したように、物理的ブロックアドレス スーパースノーパは、外部DRAMのテスト中に使用す
るため、再配置リード及びライトリクエスト発生器の中
に置かれる。詳細についてはDRAMインターフェース
セクションを参照。
【1775】B.12.2.10 「走査」 addrgenブロックはそれ自体のスキャンチェイン
を持っており、そのクロッキングはブロック自体のクロ
ック発生器(adclkgen)により制御される。ブ
ロックの後端にあるリクエスト発生器はDRAMインタ
ーフェースクロック様式の範囲内にあることに注意。
【1776】B.12.3 「予測フィルタ」 本発明による予測フィルタの全体的な構造は図155に
示す。フォワード及びバックワードフィルタは同じもの
であり、MPEGフォワード/バックワード予測ブロッ
クをフィルタリングする。H.261モードではフォワ
ードフィルタだけが使用される(バックワードフィルタ
のh261 on入力はH.261ストリームがバック
ワード予測を含まないので、永久的に低くあるべきであ
る)。全体的な予測フィルタブロックは2線式インター
フェースステージのパイプラインで構成される。
【1777】B.12.3.1 「予測フィルタ」 各予測フィルタは他の予測フィルタとは完全に独立して
作用し、有効データがその入力に現れるとすぐにデータ
を処理する。図156から明らかなように、予測フィル
タは4つの別個のブロックから成り、その内の2つは同
じものである。これらのブロックのオペレーションにつ
いてはMPEG及びH.261のオペレーションのため
に独立して説明する方がよいであろう。H.261は最
も複雑であるので、最初に説明する。
【1778】B.12.3.1.1 「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を含む。
【1779】予測フィルタ内に見つけられる他のブロッ
クの内、フォーマッティングの機能は単にデータが正し
いオーダーでx−フィルタに表示されることを確実にす
ることである。上記から解るように、これには単に3ス
テージのシフトレジスタが必要であり、第1のステージ
はレジスタCの入力に接続され、第2のステージはレジ
スタBに、第3のステージはレジスタAに接続される。
【1780】xフィルタとyフィルタの間で、ディメン
ションバッファがデータをバッファリングし、3つの垂
直ピクセルのグループがy−フィルタに表示されるよう
にする。これら3つのグループはまだ水平に処理される
が、予測フィルタ内では如何なる転置も発生しない。図
158に関連して、ピクセルがディメンションバッファ
から出力されるシーケンスを表231、表232に示
す。
【1781】
【表231】
【1782】
【表232】 B.12.3.1.2 「MPEGオペレーション」 MPEGオペレーションの間に、予測フィルタは簡単な
半ピクセル補間を行う: 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において要約されている。
【1783】
【表233】 図157、「1次元予測フィルタ」において、1次元フ
ィルタのオペレーションは、H.261のローにおける
最初と最後のピクセルのためであるのと同様、MPEG
インターピクセルのためである。MPEG半ピクセルオ
ペレーションのために、レジスタAは永久的にリセット
され、レジスタCの出力は1だけ左にシフトされる(レ
ジスタBの出力は常に1だけ左にシフトされる)。こう
して、2個のクロックの後、レジスタFは(2B+2
C)を含み、それは必要な結果の4倍であるが、これは
xフィルタ及びyフィルタを通過した数が4だけ右にシ
フトされる予測フィルタアダーの入力において処理され
る。
【1784】フォーマッティング及びディメンションバ
ッファの機能はMPEGにおいてもシンプルである。フ
ォーマッティングは2個の有効なピクセルを集め、それ
らを半ピクセル補間のためにx−フィルタに送らなけれ
ばならない;ディメンションバッファは1つのローをバ
ッファすることだけが必要である。注目に値すること
は、データがx−フィルタを通過した後、フィルタリン
グオペレーションが9−ピクセルローを8−ピクセルロ
ーに変換するので、ローの中に8個のピクセルだけが存
在することである。「失われた」ピクセルはデータスト
リーム内のギャップで置き換えられる。半ピクセル補間
を遂行する時、x−フィルタは各ローの終わりに(各8
個のピクセルの後に)ギャップを挿入し;y−フィルタ
はブロックの終わりに8個のギャップを挿入する。この
ことは、ブロックの終わりで、8個もしくは9個のギャ
ップ・グループがデータトークンヘッダ、及びFIFO
から来るストリーム内のデータトークン間の他のトーク
ンと整列することから、重要である。これは9x9のブ
ロックがフィルタリングされる時に発生する、チップを
通じて最悪の場合を最小限に抑える。
【1785】B.12.3.2 「予測フィルタアダ
ー」 MPEGオペレーションの間に、初期のピクチャ、後期
のピクチャ、または両者の平均を用いて予測が形成され
る。初期のフレームから形成される予測はフォワード予
測と呼ばれ、後期のフレームから形成される予測はバッ
クワード予測と呼ばれる。予測フィルタアダー(pfa
dd)の機能は、どちらのフィルター済み予測値を使用
するか(フォワード、バックワードもしくはその両
方)、そしてフォワードまたはバックワードフィルター
ド予測もしくは両者の平均のいずれを通過するかを決定
することである(正の無限大に向かってラウンドされ
る)。
【1786】予測モードはブロック間で、つまりパワー
アップ時に、もしくは現在の予測ブロックの最後のバイ
トを指示するfwd 1st byte及び/もしくは
bwd 1st byte信号が活性になった後、変更
できるだけである。現在のブロックがフォワード予測で
あれば、fwd 1st byteだけが調べられる。
もしそれがバックワード予測であれば、bwd 1st
byteだけが調べられる。もしそれが二方向性の予
測であれば、fwd 1st byte及びbwd 1
st byteが調べられる。
【1787】信号fwd on及びbwd onはどの
予測値を使用するかを決定する。随時、これらの信号の
両方が活性であっても、もしくは両方共活性でなくとも
よい。スタートアップ時に、あるいは、ブロックの入力
に有効なデータが存在しない時にギャップがあれば、ブ
ロックはどちらの信号も活性でない時にステートに入
る。
【1788】次のブロックのための予測モードを決定す
るのに2つの基準が使用される:フォワードブロックも
しくはバックワードブロックのいずれが二方向性の予測
ペアの一部であるかを指示する信号fwd ima t
winとbwd ima twin、及びバスfwd
p num[1:0]及びbwd p num[1:
0]である。これらのバスは各々の新しい予測ブロック
もしくは予測ブロックペアのために、1だけ増分する数
字を含む。これらのブロックが必要であるのは、例え
ば、2つのフォワード予測ブロックとそれに続く二方向
性の予測ブロックがある場合、第2のフォワード予測ブ
ロックの前に予測フィルタアダーの入力に到達するよう
に、DRAMインターフェースは充分以前に二方向性予
測のバックワードブロックを引き出すことができるから
である。同様に、他のシーケンスのバックワード及びフ
ォワード予測も予測フィルタアダーの入力においてシー
ケンスから出ることができる。このように、次の予測モ
ードは次のように決定される: 1)有効フォワードデータが存在し、fwd ima
twinが高ければ、ブロックは有効バックワードデー
タがbwd ima twinセットと共に到着するま
でストールし、それから各予測バリューペアを平均化す
るブロックを通過する。
【1789】2)有効バックワードデータが存在し、b
wd ima twinが高ければ、ブロックは有効フ
ォワードデータがfwd ima twinセットと共
に到着するまでストールし、それから上述のように進
む。フォワード及びバックワードデータが共に有効であ
れば、ストールは行われない。
【1790】3)有効フォワードデータは存在するが、
fwd ima twinが設定されなければ、fwd
p numが調べられる。これが(pred num
に記憶されている)前の予測+1からの数字と等しけれ
ば、予測モードがフォワードに設定される。
【1791】3)有効バックワードデータは存在する
が、bwd ima twinが設定されなければ、b
wd p numが調べられる。これが(pred n
umに記憶されている)前の予測+1からの数字と等し
ければ、予測モードがバックワードに設定される。
【1792】パイプライン内の1ステージ後方からのe
arly valid信号が使用され、新しいブロック
からの最初のデータが到着する前に予測フィルタアダー
モードを設定することができることに注意。これはパイ
プラインに如何なるストールも導入されないことを保証
する。
【1793】ima twin及びpred num信
号はフィルタリングされたデータと共に、フォワード及
びバックワード予測フィルタパイプラインに沿って送ら
れない。これは以下の理由からである: 1)これらの信号は、fwd 1st byte及び/
もしくはbwd 1st byteが有効である時にの
み調べられる。それにより、各予測フィルタにおいて約
25の3ビットパイプラインステージを節約できる。
【1794】2)ブロック中を通じて信号は有効なまま
であるので、fwd 1st byte及び/もしくは
bwd 1st byteが予測フィルタアダーに到着
する時に、有効である。
【1795】3)信号は、いずれにしてもデータが到着
する1クロック前に調べられる。
【1796】B.12.4 「予測アダー及びFIF
O」 予測アダー(パダー)は予測フィルタからのデータを誤
差データに加算することにより、予測済みフレームを形
成する。アドレス発生器、DRAMインターフェース及
び予測フィルタを通る入力からのディレイを補償するた
め、誤差データはパダーに達する前に256ワードFI
FO(sfifo)を通過する。
【1797】コーディングスタンダードトークン、予測
モードトークン、及びデータトークンは、いつ予測ブロ
ックが形成されるかを決定するためにデコードされる。
8ビットの予測データはデータトークン内の9ビットの
2の補数誤差データに加算される。その結果は0〜25
5の範囲に制限され、次のブロックに進む。このデータ
制限はJPEGを含む全てのイントラコード化データに
も適用されることに注意。
【1798】本発明の予測アダーは更に、FIFO及び
予測フィルタから到着するデータにおける不整合を検出
するためのメカニズムを含む。理論上は、フィルタから
のデータ量は、予測を含むFIFOからのデータトーク
ン数に正確に対応していなければならない。重大な機能
不全の場合、パダーがリカバリを試みる。
【1799】FIFO及びフィルタからのデータブロッ
クの終わりがin extn及びf1 last入力に
よって、各々マークされる。フィルタデータの終わりが
データトークンの終了前に検出された場合、残りのトー
クンは変更されずに出力を続ける。他方、フィルタブロ
ックがデータトークンより長い場合、全ての過剰フィル
タデータがアクセプトされ、捨てられるまで入力はスト
ールされる。
【1800】トークン入力ポートからのデータを直接こ
れらのブロックに送り、またトークン出力ポートにこれ
らの出力を直接送るようにチップが構成されるので、F
IFOもしくは予測アダーのいずれにもスノーパはな
い。
【1801】B.12.5 「ライト及びリードラダ
ー」 B.12.5.1 「ライトラダー(wrudde
r)」 ライトラダーは予測アダーから来る全てのトークンをリ
ードラダーに送る。更に、それはMPEGのIまたはP
ピクチャ内の全てのデータブロック、及びH.261と
DRAMインターフェース内の全てのデータブロックを
送るので、アドレス発生器の制御下に外部フレーム記憶
装置にそれらをライトバックすることができる。ライト
バックデータはDRAMインターフェースに行く途中の
スノーパを通過するが、全ての基本的な機能性は1つの
2線式インターフェースステージ内に包含される。
【1802】ライトラダーは以下のトークンをデコード
する:
【1803】
【表234】 データトークンヘッダが検出された後、全てのデータバ
イトがDRAMインターフェースに出力される。データ
トークンの終わりは低くなるin extnによって検
出され、これはフラッシュ信号をDRAMインターフェ
ーススイングバッファに送るようにする。通常のオペレ
ーションでは、これはスイングバッファがとにかくスイ
ングするであろうポイントと整列するであろうが、デー
タトークンが64バイトのデータを含んでいなければ、
これはリカバリメカニズムを提供する(但し、次の2〜
3の出力ピクチャが不正確であるかもしれない)。
【1804】B.12.5.2 「リードラダー(rr
udder)」 本発明のリードラダーは次の3つの機能を持ち、主要な
2つの機能はMPEGにおけるピクチャシーケンス再配
置に関するものである: 1)外部フレーム記憶装置からリードバックされたデー
タを正しい位置でトークンストリームに挿入すること。
【1805】2)Iピクチャ及びPピクチャ内のピクチ
ャヘッダ情報を再配置すること。
【1806】3)フラッシュトークンを検出することに
より、トークンストリームの終わりを検出すること(セ
クション B.12.1「トップフォーク」を参照)。
【1807】リードラダーの構造は図159に図示され
ている。全体のブロックは標準2線式インターフェース
技術から作られる。入力インターフェースラッチ内のト
ークンはデコードされ、これらのデコードはブロックオ
ペレーションを決定する:
【1808】
【表235】 再配置機能はマイクロプロセッサインターフェースを介
して始められるが、レジスタのステートに関わらず、コ
ーディングスタンダードがMPEGでなければ禁じられ
る。同じMPIレジスタがアドレス発生器が再配置アド
レスを発生しているかどうかを制御し、このように再配
置はこのブロックからの出力である。リードラダーがど
のように作用するかを理解するため、トークンのシーケ
ンスが以下の通りであることを念頭において、入力と出
力の制御ロジックを別々に考慮する: ・コーディングスタンダード ・シーケンススタート ・ピクチャスタート ・時間標準 ・ピクチャタイプ ・データトークンと他のトークンを含むピクチャ ・ピクチャエンド ・... ・ピクチャスタート ・... B.12.5.2.1 「入力制御ロジック」 パワーアップから、全てのトークンは、IもしくはPピ
クチャ用の最初のピクチャタイプトークンに遭遇するま
で、FIFO1(現在の入力FIFOと呼ばれる)に進
む。次に、FIFO2が現在の入力FIFOになり、I
もしくはPピクチャ用の次のピクチャタイプに遭遇する
まで全ての入力がそれに向けられ、FIFO1が再び現
在の入力FIFOになる。I及びPピクチャ内で、デー
タトークンを除き、ピクチャタイプとピクチャエンドの
間の全てのトークンが捨てられる。これは何の意味も持
たないであろう再配置されたストリームにおいて、モー
ションベクトルが間違ったピクチャと連合することを防
止する。
【1809】3ビットコードがトークンストリームと共
にFIFOに挿入され、特定のトークンヘッダの存在を
指示する。これによりFIFOの出力に関するトークン
デコーディングを行う必要がなくなる。
【1810】B.12.5.2.2 「出力制御ロジッ
ク」 パワーアップから、ピクチャスタートコードに遭遇する
まで、トークンはFIFO1(現在の出力FIFOと呼
ばれる)アクセプトされ、その後FIFO2が現在のF
IFOになる。セクション B.12.5.2.1にお
いて、この段階で3つのピクチャヘッダトークン、ピク
チャスタート、時間標準、ピクチャスタートがFIFO
1に保持されていることが解る。現在の出力FIFOは
IもしくはPフレームにおいてピクチャスタートコード
と遭遇する度にスワップされる。従って、3つのピクチ
ャヘッダトークンは次のIもしくはPフレームまで記憶
され、次のIもしくはPフレームでは、それらは正確に
再配置されたデータと連合するようになるであろう。B
ピクチャは再配置されず、如何なるトークンも捨てられ
ずに通り過ぎる。ピクチャエンドを含む最初のピクチャ
内の全てのトークンが捨てられる。
【1811】I及びPピクチャの間に、トークンストリ
ームのデータトークンに含まれるデータはDRAMイン
ターフェースからの再配置されたデータで置き換えられ
る。最初のピクチャの間、「再配置された」データは再
配置されたデータ入力に存在する。なぜなら、アドレス
発生器がDRAMインターフェースにそれを引き出すよ
うに要請するからである。これはハッシュと考えられ、
捨てられる。
【1812】セクション B.13 「DRAMインタ
ーフェース」 B.13.1 「展望」 本発明では、空間デコーダ、時間デコーダ及びビデオフ
ォーマッティングは各々その特別なチップのためにDR
AMインターフェースブロックを具備する。3つ全ての
装置において、DRAMインターフェースの機能は、チ
ップからのデータを外部DRAMに伝送し、アドレス発
生器により供給されるブロックアドレスを介して、外部
DRAMからのデータをチップ内へと伝送することであ
る。
【1813】典型的に、DRAMインターフェースはア
ドレス発生器、及びデータがそれを通って送られる様々
なブロックのクロックに非同期的であるクロックから操
作する。しかしながら、クロックはほぼ同じ周波数で操
作するので、この非同期化は容易に処理される。
【1814】通常、データはDRAMインターフェース
と64バイトのブロック内の残りのチップとの間に伝送
される(唯一の例外は、時間デコーダ内の予測データで
ある)。伝送は「スイングバッファ」として知られる装
置によって行われる。これは本質的にダブルバッファさ
れた配置において操作される一組のRAMであり、DR
AMインターフェースが1つのRAMを詰めるか空にし
ている間に、別のチップ部分が他のRAMを空にする
か、詰めている。アドレス発生器からアドレスを運ぶ別
のバスが各々のスイングバッファと連合する。
【1815】各チップは4つのスイングバッファを持つ
が、これらのスイングバッファの機能は各々の場合で異
なる。空間デコーダにおいて、コード化データをDRA
Mに伝送するために1つのスイングバッファが使用さ
れ、DRAMからコード化データを読むために別のスイ
ングバッファが使用され、トークン化データをDRAM
に伝送するために3番目のスイングバッファが、またD
RAMからトークン化データを読むために4番目のスイ
ングバッファが使用される。時間デコーダにおいては、
イントラもしくは予測されたピクチャデータをDRAM
に書き込むために1つのスイングバッファが使用され、
DRAMからイントラもしくは予測されたピクチャデー
タを読むために2番目のスイングバッファが使用され、
他の2つはフォワード及びバックワード予測データを読
むために使用される。ビデオフォーマッティングにおい
ては、1つのスイングバッファがDRAMにデータを伝
送するために使用され、他の3つがDRAMからデータ
を読むために使用されるが、それは各々輝度(Y)、及
び赤と青の色差データ(各々Cr及びCb)である。D
RAMインターフェースの一般的な特徴のオペレーショ
ンについては、空間デコーダー文書において記載してい
る。次のセクションは時間デコーダに特有の特徴につい
て説明する。
【1816】B.13.2 「時間デコーダDRAMイ
ンターフェース」 セクション B.13.1で述べたように、時間デコー
ダは4つのスイングバッファを持ち:2つはデコード化
イントラ及び予測化(I及びP)ピクチャデータをリー
ド/ライトするために使用され、これらは上述したよう
に操作する。他の2つは予測データを引き出すために使
用される。
【1817】一般に、予測データはx及びyにおけるモ
ーションベクトルによって指定されるように処理される
ブロックの位置からオフセットしているであろう。この
ように、引き出されるべきデータブロックは一般にそれ
がエンコードされた(そしてDRAMに書き込まれた)
ようにデータのブロック境界に対応してはいないであろ
う。これは図160に図示しているが、陰領域は形成さ
れつつあるブロックを表している。点線の輪郭はそこか
らそれが予測されているブロックを示す。アドレス発生
器は大きな矢印で示すように、ブロックオフセット(ブ
ロックの全数)に対するモーションベクトルによって指
定されるアドレスを変換し、小さな矢印で示すように、
ピクセルオフセットに対するモーションベクトルによっ
て指定されるアドレスを変換する。
【1818】アドレス発生器において、フレームポイン
タ、ベースブロックアドレス、及びベクトルオフセット
はDRAMから引き出されるブロックのアドレスを形成
するために加算される。ピクセルオフセットが0であれ
ば、1つのリクエストだけが発せられる。xまたはy次
元のいずれかにおいてオフセットがあれば、2つのリク
エスト−オリジナルブロックアドレス、及びすぐ右かあ
るいは真下のもののいずれか−が発せられる。x及びy
の両方にオフセットがあれば、4つのリクエストが発せ
られる。引き出されるべき各々のブロックのために、ア
ドレス発生器はスタート/ストップアドレスのパラメー
ターを計算し、それらをDRAMインターフェースに送
る。これらのスタート/ストップアドレスの使用につい
ては、下記において概略するように実例によって説明す
るのが良いであろう。
【1819】図161において陰領域で示すように、
(1、1)のピクセルオフセットを考えてみよう。アド
レス発生器は、図においてAからDのラベルが貼られた
4つのリクエストをする。解決すべき問題は求められる
ローアドレスのシーケンスを如何にすばやく提供するか
である。解決法は「スタート/ストップ」技術を使用す
ることであり、これについて説明する。
【1820】図161のブロックAを考えてみよう。リ
ーディングは位置(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のアド
レスシーケンスが生成される。
【1821】同様にして、ブロックB用のスタート/ス
トップ座標は:(1、0)及び(7、0)であり、ブロ
ックC用には:(0、1)及び(0、7)であり、ブロ
ックD用には:(0、0)及び(0、0)である。
【1822】次の問題はこのデータをどこに書くべきか
ということである。明らかに、ブロックAを見ると、ア
ドレス9から読まれるデータはスイングバッファのアド
レス0に書かれるべきであり、アドレス10から読まれ
るデータはスイングバッファのアドレス15に書かれる
べきである等である。同様に、ブロックBのアドレス8
から読まれるデータはスイングバッファのアドレス15
に書かれるべきであり、アドレス16から読まれるデー
タはスイングバッファのアドレス15に書かれるべきで
ある。この機能は下記に概略するように、非常に簡単な
実行であることが解る。
【1823】ブロックAを考えてみよう。リーディング
のスタートにおいて、スイングバッファアドレスレジス
タには、ストープバリューの逆がロードされ、y逆スト
ップバリューは3つのMSBを形成し、x逆ストップバ
リューは3つのLSBを形成する。この場合、DRAM
インターフェースが外部DRAM内のアドレス9を読ん
でいる間、スイングバッファアドレスは0である。その
後、外部DRAMアドレスレジスタが増分されるにつれ
て、表236に図示するように、スイングバッファアド
レスレジスタが増分される:
【1824】
【表236】 今までの議論は8ビットのDRAMインターフェースを
中心にしていた。16または32ビットのインターフェ
ースの場合、少しばかり修正をしなければならない。ま
ず、ピクセルオフセットベクトルはそれが16または3
2ビットバイナリーを指すように「クリップ」されなけ
ればならない。今まで使用してきた例において、ブロッ
クA用に、最初のDRAMリードはアドレス0を指し、
アドレス0〜3の中のデータが読まれるであろう。次
に、望まれていないデータは捨てられなければならな
い。これは全てのデータをスイングバッファに書き込み
(これは今では8ビットの場合に必要であったものより
物理的に大きくなっているにちがいない)、オフセット
で読むことによって遂行される。MPEG半ピクセル補
間を行う時、x及び/yの中の9バイトがDRAMイン
ターフェースから読まれなければならない。この場合、
アドレス発生器は適切なスタートとストップアドレスを
提供し、DRAMインターフェース内の幾つかの追加ロ
ジックが使用されるが、DRAMインターフェースが操
作する方法には基本的な変更はない。
【1825】時間デコーダDRAMインターフェースに
関して注意すべき最後のポイントは、データに関してど
のようなプロセシングが求められているかを指示するた
め、予測フィルタに追加情報を提供しなければならない
ことである。これには次の点が含まれる: ・(64、72または81バイトの)伝送の最後のバイ
トを指示する「最後のバイト」信号 ・H.261フラグ ・二方向性の予測フラグ ・ブロックの次元を指示する2ビット(x及びyにおけ
る8または9バイト) ・ブロックのオーダーを指示するための2ビットのナン
バー 最後のバイトフラグはデータがスイングバッファから読
まれる時に生成される。他の信号はアドレス発生器から
引き出され、予測フィルタブロックによってスイングバ
ッファから読まれるにつれて、それらが正しいデータブ
ロックと連合するように、DRAMインターフェースを
通してパイプ接続される。
【1826】セクション B.14 「UPI文書化」 B.14.1 「序文」 本文書は本発明によるマイクロプロセッサインターフェ
ースのオペレーションの正しい認識を読者に与えること
を目的とする。インターフェースは基本的に空間デコー
ダ及び時間デコーダに関するものと同じであり、唯一の
違いはアドレスラインの数である。
【1827】ここに記載されるロジックは純粋にマイク
ロプロセッサ内部ロジックである。関連概略図は以下の
通りである: UPI UPI101 UPI102 DINLOGIC DINCELL UPIN TDET MONOVRLP WRTGEN READGEN VREFCKT 回路UPI、UPI101、UPI102は、UPI0
1が7ビットのアドレス入力を持ち、8番目のビットが
大地にハードワイヤードされる一方、他の2つが8ビッ
トのアドレス入力を持つこと以外は総て同じである。 入力/出力信号 ここで説明する信号は(UPIに関して定義された)U
PIモジュールに対する全ての入力及び出力のリストで
あり、これらの信号のソースもしくは目的地を詳細に記
す注を付記している:NOTRSTInputGlob
alチップリセット、活性低、パッド入力ドライバか
ら。
【1828】E1InputEnable信号1、活性
低、パッド入力ドライバから(Schmitt)。
【1829】E2InputEnable信号2、活性
低、パッド入力ドライバから(Schmitt)。
【1830】RNOTWInputRead not
Write信号、パッド入力ドライバから(Schmi
tt)。
【1831】ADDRIN[7:0]InputAdd
ress bus信号、パッド入力ドライバから(Sc
hmitt)。
【1832】NOTDIN[7:0]InputInp
ut data bus、二方向性マイクロプロセッサ
データピンの入力パッドドライバから(TTLin)。
【1833】INT RNOTWOutputThe
Read not Write信号、マイクロプロセッ
サインターフェースによりアクセスされる内部回路へ
(メモリーマップ参照)。
【1834】INT ADDR[7:0]Output
The Internal Address Bus、
マイクロプロセッサインターフェースによりアクセスさ
れる全ての回路へ(メモリーマップ参照)。
【1835】INTDBUS[7:0]Input/O
utputThe Internal Data bu
s、マイクロプロセッサインターフェースによりアクセ
スされる全ての回路へ(メモリーマップ参照)及びマイ
クロプロセッサデータ出力パッドへ。内部データバスは
チップのピン上のデータと逆であるデータを伝送する。
【1836】READ STROutputAnはデバ
イスメモリーマップ内のロケーションの読み取りを指示
する内部タイミング信号である。
【1837】WRITE STROutputAnは内
部メモリーマップ内のロケーションの書き込みを指示す
る内部信号である。
【1838】TRISTATEDPADOutputA
nはそれらがトライステートであるべきことを指示する
マイクロプロセッサデータ出力パッドに接続する内部信
号である。 一般的なコメント:UPI概略図は6個の小さなモジュ
ールで構成される:NONOVRLP、UPIN、DI
NLOGIC、VREFCKT、READGEN、WR
TGEN。信号の全体的なリストから注意すべきこと
は、チップ上の他の全てのタイミング信号と同期するマ
イクロプロセッサバスタイミング信号以外のマイクロプ
ロセッサインターフェースと連合するクロック信号はな
いということである。従って、マイクロプロセッサのオ
ペレーション、及び外部制御により強制することができ
るもの以外の残りのデバイスのオペレーションとの間
に、如何なるタイミング関係も仮定されるべきではな
い。例えば、テストシステム上でのマイクロプロセッサ
インターフェースへのアクセシングに対して、外部シス
テムクロックのストッピング。
【1839】UPIにおいてクロックを持たない他の密
接な関係は、幾つかの内部タイミングがセルフタイムで
あることである。つまり、ある信号のディレイはUPI
ブロックに対して内部的に制御される。
【1840】UPIの全体的な機能は、外部世界からア
ドレス、データ、イネーブル、及びリード/ライト信号
を取り、それらが内部回路を正しく動かすことができる
ようにそれらをフォーマットすることである。メモリー
マップに対するアクセスを定義する内部信号は、INT
RNOTW INT ADDR[...]、INTD
BUS[...]、及びREAD STRとWRITE
STRである。これらの信号のタイミング関係は、リ
ードサイクルとライトサイクル用に下記に示す。データ
シート定義及び下記の線図は常にチップイネーブルサイ
クルを示しているが、回路オペレーションはイネーブル
が低く保持され、アドレスは連続的リードまたはライト
オペレーションを行うために循環され得るようになって
いることに注意すべきである。この機能はアドレス遷移
回路の故に可能である。
【1841】更に、INT RNOTW及びREAD
STR、WRITE STRの存在は幾らかの冗長度を
反映している。それは内部回路が別々のREAD ST
RとWRITE STRのいずれかを使用する(そして
INT RNOTWを無視する)、あるいはINT R
NOTWと別個のストローブ信号(ストローブ信号はR
EAD STR及びWRITE STRのORから引き
出される)を使用することができるようにする。
【1842】内部データバスはリードサイクルの間高く
プレチャージされ、それは更に内部データバスが駆動さ
れていない時、延長された期間の間、0XFF状態にデ
ィフォルトするように抵抗型プルアップを持つ。内部デ
ータバスはピン上のデータの逆であるので、これはそれ
らが可能化される時、外部ピン上の0x00に翻訳す
る。これは、メモリーマップ内のホールであるレジスタ
もしくはレジスタのビットに外部サイクルがアクセスす
る場合、出力データは限定され、Lowであることを意
味する。
【1843】回路の詳細: UPIN −この回路は全体的な変化検出ブロックであ
る。それは1ビットの変化検出回路であるTDETと呼
ばれるサブ回路を含む。UPINは各アドレスビットの
ためにTDETモジュールを、そして各々のイネーブル
信号のためにrnotwを持つ。UPINは更に、変化
検出回路の出力を共にゲートするためにある種の結合ロ
ジックを含む。このゲーティングは以下の信号を発生さ
せる: TRAN− 入力信号の1つへの遷移を指示する、そし
て UPD DONE− 遷移が完了し、サイクルが実行さ
れ得ることを指示する。
【1844】CHIP EN− チップが選択されたこ
とを指示する。
【1845】TDET−これは1ビット変化検出回路で
ある。2つのラッチと2つの専用ORゲートから成る。
第1のラッチは信号SAMPLEによってクロックさ
れ、第2のラッチは信号UPDATEによってクロック
される。これら2つのノンオーバーラッピング信号はモ
ジュールNONOVRLPから来る。一般的なオペレー
ションは入力遷移がCHANGEを生じさせ、次にそれ
がSAMPLEを生じさせるように行われる。SAMP
LEが高い間に全ての入力変化がアクセプトされ、入力
変化が止まる時に、CHANGEが低くなり、SAMP
LEが低くなり、それはUPDATEを高くさせ、それ
は次にデータを出力ラッチに伝送し、UPD DONE
を指示する。
【1846】NONOVRLP−この回路は基本的に、
TRANを入力し、SMAPLEとUPDATEを発生
させるノンオーバーラッピングクロック発生器である。
UPDATEの出力上の外部ゲーティングはライトパル
スが完了してしまうまで、UPDATEが高くなるのを
停止させる。
【1847】DINLOGIC−このモジュールはデー
タ入力回路DINCELLの8段階と、TRISTAT
EPAD信号を駆動させる幾つかのゲーティングで構成
される。これは出力データポートがEnable1が低
く、Enable2が低く、RnotWが高く、内部r
ead strが高い場合にのみ駆動するであろうこと
を指示する。
【1848】DINCELL−この回路はデータ入力ラ
ッチと内部データバスを駆動させるトライステートドラ
イバから成る。信号DATAHOLDが高く、Enab
le1とEnable2の両方が低い時に、入力パッド
からのデータがラッチされる。トライステートドライバ
は内部信号INT RNOTWが低い時にはいつでも、
内部データバスを駆動する。内部データバスはトランジ
スタをプレチャージし、バスプルアップもこのモジュー
ルに含まれる。
【1849】WRTGEN−このモジュールはWRIT
E STRと、データラッチのためにラッチ信号DAT
AHOLDを発生させる。ライトストローブはセルフタ
イム信号であるが、セルフタイムディレイはVREFC
KTにおいて定義される。タイミング回路RESETW
RITEからの出力はWRITE STR信号を終了さ
せるために使用される。レジスタに書き込む実際のライ
トパルスはアクセスサイクルが終わった後にのみ生じる
ことに注意すべきである。これはチップに対するデータ
入力がサイクルのバックエッジの上でのみサンプルされ
るからである。従って、データは通常のアクセスサイク
ルが終了した後でのみ有効である。
【1850】READGEN−この回路は、その名前が
示す通り、READ STRを発生させ、更に、内部デ
ータバスをプレチャージするために使用されるPREC
H信号を発生させる。PRECH信号もセルフタイム信
号であり、その期間はVREFCKT、及び内部データ
バスの電圧に依存する。READ STRはセルフタイ
ムではないが、プレチャージ期間の終わりからサイクル
の終わりまで続く。プレチャージ回路はインバータを使
用するが、その伝送特徴はそれらが逆相にする前に供給
電圧のほぼ75%の電圧を必要とするように、バイアス
される。この回路はREAD STRが始まる前に、内
部バスが正しくプレチャージされることを保証する。内
部バスが既にプレチャージされている場合、ゼロ幅にな
る傾向があるPRECHパルスを停止させるために、タ
イミング回路は信号RESETREADを介して、最低
の幅を保証する。
【1851】VREFCKT−VREFCKTはインタ
ーフェースのセルフタイミングを制御する唯一の回路で
ある。両ディレイ、WRITE STRの1/Widt
h及びPRECHの2/WidthはPトランジスタを
通る電流によって制御される。このPトランジスタのゲ
ートは信号VREFによって制御され、この電圧は25
kΩの拡散型トランジスタによって設定される。
【1852】セクションC.1 「展望」 C.1.1 「序文」 本発明によるイメージフォーマッティング部の構造を図
164に示す。1つはライティング用、1つはリーディ
ング用に2個のアドレス発生器、2個のアドレス発生器
を管理し、フレーム率変換を提供するバッファマネージ
ャ、垂直及び水平のアンサンプラを含むデータプロセシ
ングパイプライン、色空間変換及びガンマ補正、そして
プロセシングパイプラインの出力を調整する最終制御ブ
ロックがある。
【1853】C.1.2 「バッファマネージャ」 イメージフォーマッティング部の入力に到達するトーク
ンはFIFOにおいて緩衝され、バッファマネージャに
伝送される。このブロックは新しいピクチャの到着を検
出し、各ピクチャを記憶するべきバッファの利用可能性
を判断する。利用できるバッファがあれば、それが到着
するピクチャに割り当てられ、そのインデックスがライ
トアドレス発生器に伝送される。利用できるバッファが
なければ、入ってくるピクチャはいずれかのバッファが
利用できるようになるまでストールされる。全てのトー
クンはライトアドレス発生器に送られる。
【1854】リードアドレス発生器がVSYNC信号を
ディスプレイシステムから受け取る度に、新しいディス
プレイバッファインデックスのためにバッファマネージ
ャに対してリクエストが為される。完全なピクチャデー
タを含むバッファがあれば、そしてそのピクチャが表示
のための準備が整ったと思われる場合、バッファのイン
デックスがディスプレイアドレス発生器に送られる。そ
うでなければ、バッファマネージャは表示されるべき最
後のバッファインデックスを送る。スタートアップ時
に、最初のバッファが一杯になるまでインデックスとし
て0が送られる。(各ピクチャが入力される時に計算さ
れる)ピクチャの数が、エンコーディングフレーム率が
与えられるディスプレイ(提示数)で予測されるピクチ
ャ数より大きいか等しい場合、ピクチャは表示のための
準備が整っている。予測される数はピクチャクロックパ
ルスをカウントすることにより決定され、その場合ピク
チャクロックはクロック分配器により局部的に、あるい
は外部で発生させることができる。この技術はフレーム
率変換(例えば、2−3プルダウン)を可能にする。
【1855】外部DRAMはバッファのために使用さ
れ、その数は2個であっても3個であってもよい。フレ
ーム率変換が行われることになっている場合は3個必要
である。
【1856】C.1.3 「ライトアドレス発生器」 ライトアドレス発生器はバッファマネージャからトーク
ンを受け取り、各々の新しいデータトークンの到着を検
出する。各データトークンが到着するにつれて、アドレ
ス発生器は到着するブロックを記憶するためのDRAM
インターフェース用に新しいアドレスを計算する。生の
データはその後DRAMインターフェースに送られ、そ
こでスイングバッファに書き込まれる。DRAMアドレ
スはブロックアドレス、及びDRAM内のピクチャまた
はブロックのラスターとして組織されるピクチャであ
る。しかしながら、入ってくるピクチャデータは実際に
組織化されるマイクロプロセッサのシーケンスであるの
で、アドレス発生アルゴリスムはマイクロプロセッサ内
のブロックの下位ローのための(ブロック内)ライン幅
オフセットを考慮しなければならない。
【1857】バッファマネージャにより提供される到着
バッファインデックスは記憶されるピクチャ全体のため
にアドレスオフセットとして使用される。更に、各成分
は指定されたバッファ内の別のエリアに記憶されるの
で、成分オフセットは計算の中でも使用される。
【1858】C.1.4 「リードアドレス発生器」 リードアドレス発生器(dispaddr)はトークン
の受取及び発生を行わず、アドレスだけを発生させる。
VSYNCに答え、アドレス発生器はfield in
fo、read start、sync mode、及
びlsb invertに応じて、バッファマネージャ
からのバッファインデックスを要請する。インデックス
を受け取ると、3セットのアドレス、各成分用に、ラス
ターオーダーで読み込まれる現在のピクチャ用に1つづ
つのアドレスを発生させる。異なるセットアップは:イ
ンターレース/順送り型ディスプレイ、及び/もしくは
垂直のアンサンプリング、及び(インターレースディス
プレイに対する)フィールド同期化を可能にする。下位
レベルでは、リードアドレス発生器はベースアドレスを
ブロックアドレス、及びDRAMのページ構造と互換性
のある3つの成分の各々のためのバイトカウントのシー
ケンスに変換する。DRAMインターフェースに提供さ
れるアドレスはブロックスタート及びブロックエンドカ
ウントと共にページ及びラインアドレスである。
【1859】C.1.5 「出力パイプライン」 DRAMインターフェースからのデータは出力パイプラ
インに供給される。3つの成分ストリームはまず垂直に
補間され、次に水平に補間される。補間の後、3つの成
分は等しい割合(4:4:4)になっていなければなら
ず、色空間変換器及び色ルックアップ表/ガンマ補正に
送られる。出力インターフェースはディスプレイがHS
YSCに達するまでこの時点でストリームを保持するこ
とができる。その後、出力コントローラは3つの成分を
必要に応じて多重送信し、1つ、2つまたは3つの8ビ
ットバスに向ける。
【1860】C.1.6 「タイミング様式」 基本的に、イメージフォーマッティング部と連合する2
つの主要なタイミング様式がある。第1に、チップのフ
ロントエンド(アドレス発生器及びバッファマネージ
ャ、プラスDRAMインターフェースのフロントエン
ド)のためにタイミングを提供するシステムクロックが
ある。第2に、バックエンド(DRAMインターフェー
ス出力、及び出力パイプライン全体)のために全てのタ
イミングを駆動させるピクセルクロックがある。
【1861】2つの前述のクロックの各々は多くのオン
チップクロック発生器を駆動させる。FIFO、バッフ
ァマネージャ、及びリードアドレス発生器は同じクロッ
ク(DΦ)から操作し、ライトアドレス発生器は同様
の、しかし別個のクロック(WΦ)を用いる。データは
内部DRAMインターフェースクロック(outΦ)上
のDRAMインターフェースにクロックされる。DΦ、
WΦ、及びoutΦは全てsyscikから発生され
る。
【1862】リード及びライトアドレスはDRAMイン
ターフェース自体のクロックによってDRAMインター
フェースにクロックされる。
【1863】データはbifRΦ上のDRAMインター
フェースから読み出され、NEΦによって表示されるク
ロック上で操作する、bushy ne(その物理的ロ
ケーションの故に、ノースイースト)と呼ばれる出力パ
イプラインのセクションに伝送される。前方のガンマR
AMからのパイプラインセクションは別ではあるが類似
したクロック(RΦ)上でクロックされる。bifR
Φ、NEΦ、RΦは全てピクセルクロック、pixin
から引き出される。
【1864】テストのため、ブロック間の主要なインタ
ーフェースの全ては付属のスノーパもしくはスーパース
ノーパの何れかを持っている。これはタイミング様式と
必要なアクセスのタイプに依存する。別個ではあるが類
似したタイミング様式間のブロック境界はそれに連合す
るリタイミングラッチを持っている。
【1865】セクションC.2 「バッファ管理」 C.2.1 「序文」 本発明によるバッファ管理ブロックの目的は、ピクチャ
データのライティング及びリーディング用に2つか3つ
の外部バッファを特定するインデックスをアドレス発生
器に供給することである。これらのインデックスの割当
ては、各々がオペレーションにおいてタイミング様式の
1つの影響を表す3つの主要な要素により影響される。
これらはピクチャデータがイメージフォーマッティング
部への入力に到着する率(コード化データ率)、データ
が表示される率(表示データ率)、及びエンコード化ビ
デオシーケンスのフレーム率(提示率)である。
【1866】C.2.2 「機能的展望」 3バッファシステムは、システムのタイミング束縛があ
るとすれば、最善の可能なフレームシーケンスを達成す
るために、フレームが必要に応じて繰り返されるかスキ
ップされるように、提示率及び表示率が異なる(例え
ば、2−3プルダウン)ようにできる。ピクチャがデコ
ードするため利用可能な表示時間より長くかかる場合、
他の全てが「キャッチアップ」する間、前のフレームが
繰り返されるように、デコーディングにおける困難さを
表すピクチャを同じような方法で収容することができ
る。2バッファシステムでは、3つのタイミング様式が
ロックされなければならない−それはスラックを処理す
るためのフレキシビリティを提供する第3のバッファで
ある。
【1867】バッファマネージャは各々の外部バッファ
と連合する特定のステータス情報を維持することにより
操作する。これはバッファが使用中であるか、バッファ
にデータが一杯詰まっているか、あるいは表示の準備が
できているかを指示するフラグ、またバッファにおいて
現在記憶されているピクチャシーケンス内のピクチャ数
を指示するフラグを含む。提示数も記録されるが、これ
はピクチャクロックパルスが受け取られる度に増分する
数であり、エンコード化シーケンスのフレーム率に基づ
いて表示されることが現在予測されているピクチャ数を
表す。
【1868】アライバルバッファ(入ってくるデータが
書き込まれるバッファ)は、ピクチャスタートトークン
が入力において検出される度に割り当てられる。このバ
ッファにはその後IN USEのフラグが付けられる。
ピクチャエンドに達すると、アライバルバッファは割当
から外され(0にリセットされ)、ピクチャ数と提示数
の間の関係に応じて、FULLもしくはREADYのフ
ラグが付けられるバッファとなる。
【1869】ディスプレイアドレス発生器は、2線式イ
ンターフェースを介して、vsyncの度に一度、新し
いディスプレイバッファをリクエストする。READY
というフラグが付けられたバッファがあれば、それはバ
ッファマネージャによって表示されるために割り当てら
れるであろう。READYバッファがなければ、前に表
示されたバッファが繰り返される。
【1870】提示数が変化する度に、それは検出され、
そのピクチャナンバーと提示数の間の関係を調べること
により、完全なピクチャを含むあらゆるバッファのRE
ADY−nessがテストされる。バッファは順番に考
慮される。あるバッファがREADYであると思われる
時、これは自動的に前にREADYというフラグが付け
られていたバッファのREADY−nessをキャンセ
ルする。その後、前のバッファにはEMPTYというフ
ラグが付けられる。後に考慮されるバッファにおいて、
割当計画によって後のピクチャ数が記憶されるので、こ
うしたことがうまく行く。
【1871】入力ストリーム内のスキップされたピクチ
ャが指示されると、H.261内の時間標準トークンが
バッファのピクチャ数を修正させる。しかしながら、こ
うした特徴は、企図されてはいるが、現在のところ含ま
れてはいない。同様に、MPEG内の時間標準も何の影
響も持たない。
【1872】フラッシュトークンは全てのバッファがE
MPTYであるか、あるいはディスプレイバッファとし
て割り当てられるまで、入力をストールさせる。その
後、提示数とピクチャ数がリセットされ、新しいシーケ
ンスを始めることができる。
【1873】C.2.3 「アーキテクチュア C.2.3.1 「インターフェース」 C.2.3.1.1 「bm frontに対するイン
ターフェース」 全てのデータは入力FIFO、bm frontからバ
ッファマネージャに入力される。この伝送は2線式イン
ターフェースを介して行われ、データは8ビット幅プラ
ス拡張ビットである。バッファマネージャに到着する全
てのデータは完全なトークンであると保証される。これ
は提示数の連続プロセシング、及びデータストリーム内
に有効ギャップがある場合のディスプレイバッファリク
エストのための必要条件である。
【1874】C.2.3.1.2 「waddrgen
に対するインターフェース」 トークン(8ビットデータ、1ビット拡張)は2線式イ
ンターフェースを介してライトアドレス発生器に伝送さ
れる。ピクチャスタートトークンがwaddrgenに
到着すると同時に、正しいインデックスがアドレス発生
器のために利用できるように、アライバルバッファイン
デックスも同じインターフェース上で伝送される。
【1875】C.2.3.1.3 「dispaddr
に対するインターフェース」 リードアドレス発生器へのインターフェースは、「リク
エスト」と「アクノレッジ」信号として各々行動すると
考えられる2つの別々の2線式インターフェースから成
る。しかしながら、いずれかの端にある2つの2線式ベ
ースのステートマシーンの故に、単線式は適当ではな
い。
【1876】イベントのシーケンスは通常以下のように
dispaddrインターフェースと連合する。まず、
dis−paddrはバッファマネージャへのdrq
valid入力を認定することにより、表示装置からv
syncに答えるリクエストを呼び出す。次に、バッフ
ァマネージャがそのステートマシーン内の適切なポイン
トに達すると、バッファマネージャはリクエストをアク
セプトし、表示されるバッファの割当に努める。その
後、disp validワイヤが認定され、バッファ
インデックスが伝送されるが、これは典型的に、dis
paddrによって直ちにアクセプトされる。更に、現
在のインデックスと連合するフィールド数が前のフィー
ルド数と無関係にリセットされなければならないことを
指示する、この最後の2線式インターフェース(rst
fld)と連合する追加ワイヤがある。
【1877】C.2.3.1.4 「マイクロプロセッ
サインターフェース」 バッファマネージャブロックは8ビットのデータバス及
びリード/ライトストローブと共に、4ビットのマイク
ロプロセッサアドレススペースを使用する。2つのセレ
クト信号があり、1つはユーザーアクセス可能ローケー
ションを指示し、他方は通常の操作状態の下でアクセス
を必要とすべきではないテストロケーションを指示す
る。
【1878】C.2.3.1.5 「イベント」 バッファマネージャは2つの異なるイベント、インデッ
クスファウンドとレイトアライバルを作り出すことがで
きる。この内最初のものは、ピクチャが到着した時に認
定され、そのピクチャスタート拡張バイト(ピクチャイ
ンデックス)はセットアップ時にBU BM TARG
ET IXレジスタに書き込まれる値と適合する。第2
のピクチャ数は現在の提示数より小さい、つまりバッフ
ァマネージャまでのシステムパイプラインにおけるプロ
セシングは提示要件を満たして行くように処理してはい
ない。
【1879】C.2.3.1.6 「ピクチャクロッ
ク」 本発明では、ピクチャクロックは提示数カウンタに対す
るクロック信号であり、オンチップで発生されるか、あ
るいは外部ソース(通常はディスプレイシステム)から
引き出される。バッファマネージャはこれらの信号の両
方をアクセプトし、pclk ext(バッファマネー
ジャの制御レジスタ内のビット)の値に基づいて1つを
選択する。この信号は更に、イメージフォーマッティン
グ部がそれ自体のピクチャクロックを生じさせている場
合、この信号もチップからの出力として利用できるよう
に、パッドpicoutpad用のイネーブルとして作
用する。
【1880】C.2.3.2 「主要なブロック」 以下のセクションはバッファマネージャ概略図(bml
ogic)を作成する様々なハードウェアブロックにつ
いて説明する。
【1881】C.2.3.2.1 「入力/出力ブロッ
ク(bm input)」 このモジュールはバッファマネージャの4つの2線式イ
ンターフェース(入力データと出力データ、drq v
alid/accept及びdisp valid/a
ccept)と連合するハードウェアの全てを含む。入
力データレジスタはそれに付属する幾つかのトークンデ
コーディングハードウェアと共に図示した。bm to
kdecに対する入力にある信号vheaderは、ヘ
ッダが有効であろう(つまり、トークンのまん中ではな
い)ポイントでのみトークンデコーダ出力が認定される
ことを確実にするために使用される。rtimdブロッ
クは、パイプライン内の次のブロック用の二重の入力デ
ータレジスタに隣接する出力データレジスタとして作用
する。これは異なるクロック発生器故のタイミング差を
説明する。信号goとngoはデータvalid、ac
cept及びnotstoppedのANDに基づいて
おり、入力もしくは出力において何かが「大破」された
場合を指示するため、ステートマシーン内のどこかで使
用される。このモジュールのディスプレイインデックス
部分はデータに関する等価「ゴー」信号と共に、2線式
インターフェースから成る。rst fldビットもこ
こで発生し、これは設定された場合、disp val
idが1サイクルのために高くなるまで高いままである
信号である。その後、それはリセットされる。それに加
えて、フラッシュトークンがディスプレイバッファによ
って、全ての外部バッファにEMPTYまたはIN U
SEのフラグを付けさせた後、rst fldがリセッ
トされる。これはピクチャ数と提示数の両方がリセット
されるのと同じポイントである。
【1882】階層の次のレベルに現れる入力データレジ
スタと連合する少量の追加回路がある。この回路は入力
データレジスタがBU BM TARGIXに書き込ま
れるものと等しい値を持ち、それがイベント発生のため
に使用されることを指示する信号を作り出す。
【1883】C.2.3.2.2 「インデックスブロ
ック(bm index)」 インデックスブロックは主として、様々な戦略的バッフ
ァインデックスを表示する2ビットレジスタから成る。
これらはarr buf、到着するピクチャデータが書
き込まれるバッファ、disp buf、そこからピク
チャデータが表示のために読み出されるバッファ、及び
rdy buf、バッファがdispaddrによって
リクエストされた場合、表示され得るほとんどの現在ま
でのピクチャを含むバッファインデックスである。更
に、buf ixを含むレジスタがあり、これはバッフ
ァに対する一般的なポインタとして使用される。このレ
ジスタは増分され(マックスにD入力)、それらのステ
ータスを調べるバッファを通って循環する、あるいはス
テータスを変更する必要がある場合、arr buf、
disp buf、またはrdy bufの1つの値が
指定される。これらのレジスタ(ph0バージョン)の
全ては、テストアドレススペースの一部として、マイク
ロプロセッサからアクセス可能である。old ixは
buf ixのリタイムドバージョンであり、バッファ
ステータス及びim stusブロック内のピクチャ数
レジスタを可能化するために使用される。buf ix
及びold ixは共にこのブロックから出力される3
つの信号(各々が値1〜3を保持することができる)に
デコードされる。他の出力はbuf ixがarr b
ufもしくはdisp bufのいずれかと同じ値を持
っているかどうかを指示し、またrdy buf及びd
isp bufのいずれかが値0を持っているかどうか
を指示する。0はバッファに対する参照符号ではない。
それは単に現在割り当てられるarrival/dis
play/readyバッファがないことを指示するだ
けである。
【1884】arr buf及びdisp bufは各
々の2線式インターフェース出力アクセプトレジスタに
よって可能化される。
【1885】bmlogicレベルの追加回路は現在の
バッファインデックス(buf ix)がセットアップ
時に制御レジスタに書き込まれる値によって限定される
ように、使用中の最大インデックスに等しいか否かを判
断するために使用される。制御レジスタ内の「1」は3
バッファシステムを指示し、「0」は2バッファシステ
ムを指示する。
【1886】C.2.3.2.3 「バッファステータ
ス」 バッファステータス内の主要な成分はステータスと各々
のバッファ用のピクチャ数レジスタである。3つのグル
ープの各々はマスター・スレーブ配置であり、その場
合、スレーブは3つのレジスタのバンクであり、マスタ
ーはその出力が(レジスタenablesを使用して、
old ixによって切り換えられる)スレーブの1つ
に向けられる1つのレジスタである。マスターに対する
可能な入力の1つは(bmlogicレベルでbuf
ixによってインデックスされる)異なるスレーブ出力
の間で多重送信される。bmlogicレベルでデコー
ドされるバッファステータスはステートマシーンロジッ
クにおいて使用されるため、表237に示された値のい
ずれをも取ることができ、あるいはその前の値を再循環
させることができる。ピクチャ数は前の値または1だけ
(または1+デルタ、H.261の場合に実際のものと
予測される時間リファレンス間の差)増分された前の値
を取ることができる。この値はブロックに存在する8ビ
ットアダーによって供給される。このアダーに対する最
初の入力はthis pnum、現在書き込まれている
データのピクチャ数である。
【1887】
【表237】 3バッファピクチャ数レジスタのいずれも、(殆ど常に
時代遅れになっている)それら自身の前のピクチャ数で
はなく、現在(または前の)ピクチャ数に基づいて容易
に更新できるように、これは別個に(それ自身のマスタ
ー・スレーブ配置に)記憶される必要がある。this
pnumは−1にリセットされ、最初のピクチャが到
着する時、アダーから出力に加算されるので、最初のバ
ッファピクチャ数レジスタへの入力は0である。
【1888】現在のバージョンにおいては、その値を供
給すべき時間リファレンスブロックの欠如により、デル
タは0に接続される。
【1889】C.2.3.2.4 「提示数」 8ビット提示数レジスタは、提示数が最後に調べられて
から変化していることを指示するため、ステートマシー
ンにおいて使用される関連提示フラグを持つ。こうした
ことが必要であるのは、ピクチャクロックが本質的に同
期的であり、如何なるステートにおいても活性であり得
るからであり、これらが提示数に関係するからではな
い。本ブロック内の回路の残りはピクチャクロックパル
スが発生したことを検出し、この事実を「覚えておく」
ことに関係する。この方法で、提示数は更新することが
有効である時に更新することができる。イベントの代表
的シーケンスを図165に示す。信号incr prn
はリタイムドピクチャクロックライジングエッジの1サ
イクル後に活性となり、ステートが入ってくるまで持続
し、その間に提示数を修正することができる。これは信
号en prnumによって指示される。特定のステー
トの間にのみ提示数の更新ができるようにした理由は、
それが信号rdystを提供するためのstandar
d−cell、not−very−fast8ビットア
ダーを含むロジックのかなりの量を駆動させるために使
用されるからである。従って、それは次に続くステート
がその結果を使用していないステートの間にのみ変更さ
れなければならない。
【1890】C.2.3.2.5 「時間リファレン
ス」 本発明による時間リファレンスブロックは、イメージフ
ォーマッティング部の現在の態様からは省略されている
が、仕上げのためにそのオペレーションについてここで
説明する。
【1891】本ブロックの機能はデルタ、H.261デ
ータストリーム内のトークンにおいて受け取った時間リ
ファレンスバリューと、「予測された」時間リファレン
ス(1+前のバリュー)の間の差を計算することであ
る。これによりH.261においてフレームをスキップ
することができる。時間リファレンストークンは全ての
non−H.261ストリームにおいて無視される。計
算されたバリューはバッファ用のピクチャ数を計算する
ためにステータスブロックにおいて使用される。bml
ogicからのブロックを省略する効果は、H.261
ストリームが幾つかのピクチャ数をスキップすべきであ
ると指示しても、ピクチャ数がどのシーケンスにおいて
も常に連続していることである。
【1892】(概略図bm trefにおいて見ること
ができる)ブロックの主要な成分はtr、exptr及
びデルタ用のレジスタである。発明においては、trは
0にリセットされ、適当な場合に入力データレジスタか
らロードされるものである。同様に、exptrは−1
にリセットされ、時間リファレンスステートのシーケン
スの間に、1またはデルタだけ増分される。それに加え
て、デルタは0にリセットされ、他の2つのレジスタの
間の差がロードされる。3つの全てのレジスタはフラッ
シュトークンの後リセットされる。このブロック内のア
ダーはデルタとexptrの両方の計算のために、つま
り減算及び加算操作のために各々使用され、信号del
ta calcによって制御される。
【1893】C.2.3.2.6 「制御レジスタ(b
m uregs)」 バッファマネージャ用の制御レジスタはブロックbm
urgesにある。これらはアクセスビットレジスタ、
(外部バッファの最大数及び内部/外部ピクチャクロッ
クを限定する)セットアップレジスタ、及びターゲット
インデックスレジスタである。アクセスビットは予測さ
れたように同期化される。信号stopd 0、sto
pd 1、及びnstopd 1はアクセスビットのO
R及び2個のイベントストップビットから引き出され
る。全てのbmlogic用のUpiアドレスデコーデ
ィングはブロックbm udecによって行われ、それ
はイメージフォーマッティング部のトップレベルのアド
レスデコードからの2つのセレクト信号と共に、upi
データバスの下位4ビットを取る。
【1894】C.2.3.2.7 「制御用ステートマ
シーン」 ステートマシーンロジックは元々それ自体のブロック、
bm stateを占有していた。しかしながら、コー
ド発生理由のため、今では平板化され、bmlogic
概略図のシート2の上にある。
【1895】このロジックの主要セクションは同じであ
る。これはデコーディング、他のbmlogicブロッ
クの制御用のロジック信号の発生、及びステートマシー
ンを通るルートを選択するために使用されるフラグ、f
rom ps及びfromflを含む新しいステートエ
ンコーディングを含む。bm stus及びbmind
ex用にマックス制御信号を作るための別個のブロック
がある。
【1896】ステートマシーンハードウェアにおける信
号には、タイピング及び参照のしやすさのために簡単な
アルファベット名を与えてきた。それらの全てを、それ
らが表すロジック表現と共に表238〜表241にリス
トアップする。更にそれらはbmlogicの行動M.
解説(bmlogic.M)におけるコメントとしても
現されている。
【1897】
【表238】
【1898】
【表239】
【1899】
【表240】
【1900】
【表241】 C.2.3.2.8 「モニタリングオペレーション
(bminfo)」 本発明では、バッファステータス情報、インデックスバ
リュー、及び提示数をシミュレーション中に観察できる
ように、モジュール、bminfoが含まれる。それは
Mの中に書き込まれ、その入力の1つが変化する度に出
力を生じさせる。
【1901】C.2.3.3 「レジスタアドレスマッ
プ」 バッファマネージャのアドレススペースは2つのエリ
ア、ユーザー・アクセシブルとテストにスプリットされ
る。従って、トップレベルにおけるレンジデコードから
引き出される2つの別個のイネーブルワイヤがある。表
242はユーザー・アクセシブルレジスタを示し、表2
43はテストスペースの内容を示す。
【1902】
【表242】
【1903】
【表243】 C.2.4 「ステートマシーンのオペレーション」 表244に詳述するように、バッファマネージャのステ
ートマシーンには19のステートがある。これらは図1
66に示すように、また行動解説bmlogic.Mに
も記載するように相互作用する。
【1904】
【表244】 C.2.4.1 「リセットステート」 リセットステートはPRES0であり、主ループが初期
に循環されるように、フラグは0に設定される。
【1905】C.2.4.2 「主ループ」 ステートマシーンの主ループが図167に示すようなス
テート(主な線図−図166において強調している)か
ら成る。ステートPRES0とPRES1は信号pre
sflgを介してピクチャクロックを検出することに関
係する。2個のサイクルはそれらが全てrdyst、
C.2.3.2.4において説明したアダー出力信号の
バリューに依存するので、テスト用に含めることができ
る。提示フラグが検出された場合、全てのバッファは可
能な「レディネス」のために調べられ、そうでなけれ
ば、ステートマシーンはステートDRQに進む。PRE
S0−PRES1ループの回りの各サイクルは異なるバ
ッファを調べ、フル及びレディ条件をチェックする。こ
れらが満たされると、前のレディバッファ(もし存在し
ていれば)がクリアされ、新しいレディバッファが割り
当てられ、そのステータスが更新される。このプロセス
は全てのバッファが調べられる(インデックス==ma
x buf)まで繰り返され、それからステートが前進
する。以下のいずれかが当てはまれば、バッファは表示
される準備が整ったと考えられる: (pic num>pres num) &&(pic num−pres num)>=128) or (pic num<pres num) &&(pres num−pic num)<=128) or pic num==pres num ステートDRQはディスプレイバッファ用のリクエスト
(drq validreg && disp acc
reg)をチェックする。もし如何なるリクエストも
なければ、ステートは(通常は、後述するように、ステ
ートTOKENに)進む。そうでなければ、ディスプレ
イバッファインデックスが以下のように発せられる。レ
ディバッファがなければ、前のインデックスが再発行さ
れ、あるいは、前のディスプレイバッファがなければ、
ゼロインデックス(ゼロ)が発せられる。バッファが表
示される準備が整っていれば、そのインデックスが出さ
れ、そのステートが更新される。必要であれば、前のデ
ィスプレイバッファがクリアされる。ステートマシーン
はその後以前のように前進する。
【1906】ステートTOKENは主ループを完了させ
るための典型的なオプションである。有効な入力があ
り、出力がストールされていなければ、トークンは(後
のセクションで説明する)戦略的バリューのために調べ
られ、そうでなければ、制御はステートPRES0に戻
る。
【1907】制御はある条件が満たされる時に、主ルー
プから分岐するだけである。これらについては以下のセ
クションにおいて説明する。
【1908】C.2.4.3 「レディバッファインデ
ックスの割当」 PRES0−PRES1ループの間に、バッファがレデ
ィであると判断されれば、前のレディバッファは空にさ
れる。なぜなら、いつでも1つだけのバッファがレディ
と指定され得るからである。ステートVACATE R
DYはそのステートをVACANTに設定することによ
り、古いレディバッファをクリアし、制御がPRES0
ステートに戻る時、全てのバッファのレディネスがテス
トされるように、バッファインデックスを1にリセット
する。こうすることの理由は、インデックスが今では前
のレディバッファを指しており(それをクリアする目
的)、我々の意図する新しいレディバッファインデック
スの記録がないからである。従って、全てのバッファを
再テストすることが必要である。
【1909】C.2.4.4 「ディスプレイバッファ
インデックスの割当」 ディスプレイバッファインデックスの割当はステートD
RQ(ステートUSERDY)から直接、あるいは古い
ディスプレイバッファステートをクリアするステートV
ACATE DISPを介して行われる。選ばれたディ
スプレイバッファはIN USEというフラグが付けら
れ、rdy bufのバリューが0に設定され、ステー
トDRQに戻るためにインデックスは1にリセットされ
る。更に、disp bufに必要なインデックスが与
えられ、2線式インターフェースワイヤ(disp v
alidとdrq acc)がそれに応じて制御され
る。ステートTOKEN、FLUSH、ALLOC間の
決定がステートUSE RDYにおいて為される必要が
ないようにするためだけに、制御はステートDRQに戻
る。
【1910】C.2.4.5 「ピクチャエンドを受け
取った時のオペレーション」 ピクチャエンドトークンを受け取ると、制御はステート
TOKENからステートピクチャエンドに移り、そこ
で、インデックスがまだ現在のアライバルバッファを指
していない場合、そこを指すように設定され、そのステ
ートが更新され得る。out acc reg及びen
fullが当てはまると仮定すれば、ステータスを後
述するように更新することができる。そうでなければ、
制御はそれらが共に当てはまるまでステートピクチャエ
ンドに残る。en full信号がライトアドレス発生
器によって供給され、スイングバッファがスイングした
ことを、つまり最後のブロックがうまく書き込まれ、従
ってバッファステータスを更新しても安全であることを
指示する。
【1911】完了したばかりのバッファのレディネスが
テストされ、テストの結果に応じてステータスFULL
またはREADYのいずれかが与えられる。それがレデ
ィであれば、rdy bufにそのインデックスのバリ
ューが与えられ、set la ev信号(レイトアラ
イバルイベント)が高く設定される(予測されるディス
プレイがデコーディングの適時に前に進んだことを指示
する)。arr bufの新しいバリューは今は0であ
り、前のレディバッファがそのステータスをクリアする
必要があれば、インデックスはそこを指すように設定さ
れ、制御はステートVACATE RDYに移動する。
そうでなければ、インデックスは1にリセットされ、制
御は主ループのスタートに戻る。
【1912】C.2.4.6 「ピクチャスタートを受
け取った時のオペレーション(アライバルバッファの割
当)」 ピクチャスタートトークンがステートTOKENの間に
到着すると、フラグfrom psが設定され、ステー
トTOKENの代わりにステートALLOCを巡視する
ように、ベーシックステートマシーンループを変更させ
る。ステートALLOCはアライバルバッファ(その中
に到着するピクチャデータを書き込むことができる)の
割当に関係し、そのステータスがVACANTであるも
のを見つけるまでバッファを通って循環する。バッファ
はデータ2線式インターフェースの上に出力されるの
で、out acc regが高い場合にのみ割り当て
られる。従って、ループのまわりの循環はこれが本当に
そうした場合になるまで続くであろう。適当なアライバ
ルバッファが見つけられると、インデックスはarrb
ufに割り当てられ、そのステータスにはIN USE
というフラグが付けられる。インデックスは1に設定さ
れ、フラグfrom psがリセットされ、ステートは
NEW EXP TRに進む用に設定される。(ピクチ
ャスタートに続くワードに含まれる)ピクチャのインデ
ックスがチェックされ、それがtarg ix(セット
アップで指定されたターゲットインデックス)と同じで
あるか否かが判断され、もしそうであれば、set i
f+ ev(インッデクスファウンドイベント)が高く
設定される。
【1913】3つのステータスNEW EXP TR、
SET ARR IX、及びNEWPIC NUMが新
しく予測される時間リファレンス及び入ってくるデータ
用のピクチャ数を設定する。正しいピクチャ数レジスタ
が更新される(thispnumも更新されることに注
意)ように、中間ステートはインデックスをarr b
ufに設定する。その後制御は、低い拡張に遭遇するま
で、(好ましい2線式インターフェース信号を仮定し
て)データを出力するステートOUTPUTTAILに
進む。この時点で、主ループは再スタートされる。これ
は全データブロック(64アイテム)が出力されること
を意味し、その間に提示フラグもしくはディスプレイリ
クエスト用のテストは行われない。
【1914】C.2.4.7 「フラッシュを受け取っ
た時の動作」 データストリーム内のフラッシュトークンはシーケンス
情報(提示数、ピクチャ数、rst fld)をリセッ
トすべきことを指示する。これはFLUSHに導く全て
のデータが正しく処理された時にのみ発生することがで
きる。従って、FLUSHを受け取った後、全てのフレ
ームがディスプレイに手渡された、つまり、1つのバッ
ファを除いて全てのバッファがステータスEMPTYを
持ち、その1つのバッファが(ディスプレイバッファと
して)IN USEであることが確実になるまで、バッ
ファの全てのステータスを監視することが必要である。
その時点で、「新しいシーケンス」を安全に使用するこ
とができる。
【1915】フラッシュトークンがステートトークンに
おいて検出されると、フラグfrom flが設定さ
れ、ステートトークンの代わりにステートフラッシュを
巡視するように、ベーシックステートマシーンループを
変更させる。ステートFLUSHは各バッファのステー
タスを順に調べ、それがVACANTもしくはディスプ
レイとしてIN USEになるのを待つ。ステートマシ
ーンは条件が当てはまるまで、単にループのまわりを循
環し、それからそのインデックスを増分して、全てのバ
ッファを訪問してしまうまでプロセスを繰り返す。最後
のバッファが条件を満たすと、提示数、ピクチャ数、及
び全ての時間リファレンスレジスタがそれらのリセット
値rst fldが1に設定されると仮定する。フラグ
fromflがリセットされ、通常の主ループオペレー
ションが再び始められる。
【1916】C.2.4.8 「時間標準を受け取った
時の動作」 時間標準トークンに遭遇すると、H.261ビットのチ
ェックが行われ、設定されると、4つのステートTEM
P REF0〜TEMP REF3を巡視する。これら
は次のオペレーションを遂行する。
【1917】TEMP REF0:temp ref=
in data reg; 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に
制御を送る。最後のトークンワードに遭遇する(in
extn regが低い)まで制御はここに留まり、主
ループはそれから再突入される。
【1918】C.2.5 「アプリケーションノート」 C.2.5.1 「バッファマネージャ入力をストール
するステートマシーン」 この要件はピクチャクロックとディスプレイバッファリ
クエストの「同期的」タイミングイベントを繰り返しチ
ェックする。これらのチェックの間に、バッファマネー
ジャ入力をストールさせることの必要性は、バッファマ
ネージャの入力に連続的なデータ供給がある時、バッフ
ァマネージャを通るデータ率に制限があることを意味す
る。典型的なステートシーケンスはPRES0、PRE
S1、DRQ、TOKEN、OUTPUT TAILで
あり、OUTPUT TAILを除き、各々が1サイク
ル続く。これは各64データアイテムのブロックのため
に、入力がストールされている間(ステートPRES
0、PRES1、DRQの間)3サイクルのオーバーヘ
ッドがあり、それによって3/64もしくはほぼ5%だ
けライト速度を遅くさせることを意味する。このオーバ
ーヘッドの数は、ステートマシーンの補助ブランチが最
悪の場合の条件下で実行される時、時には13サイクル
まで増加させることができる。このように多くのオーバ
ーヘッドはフレーム毎に一度のベースで適用できるだけ
であることに注意。
【1919】C.2.5.2 「アクセス中の提示数行
為」 C.2.3.2.4に示す概略図により図示されるbm
presの特別な態様は、提示数がupiアクセス中
に自由に動くことを意味する。アクセスを廃棄する時の
提示数がアクセスを得た時の提示数と同じであることが
求められる場合、これはアクセスが認められた後の提示
数を読み、それをアクセスが廃棄される直前に書き戻す
ことによって成し遂げられる。注意すべきことは、これ
は非同期的であり、従って更に効果性を確かめるため
に、そのアクセスを数回繰り返すことが望ましいことで
ある。
【1920】C.2.5.3 「H261時間リファレ
ンス数」 モジュールbm tref(図示せず)はbmlogi
cの中に含まれるべきである。H.261時間リファレ
ンスバリューは、bmtrefからのデルタ入力をbm
stusモジュールに向けさせることにより正しく処
理される。デルタ入力は、フレームが常に連続する場合
に0に結び付けることができる。
【1921】セクションC.3 「ライトアドレス発
生」 C.3.1 「序文」 本発明によるライトアドレス発生ハードウェアの機能
は、バッファに書き込むべきデータ用のブロックアドレ
スを作り出すことである。これはバッファのベースアド
レス、ストリーム内で指示される成分、マクロブロック
内の水平と垂直のサンプリング、ピクチャディメンショ
ン及びコーディングスタンダードを考慮する。データは
マクロブロックの形態で到着するが、ディスプレイのた
めにラインを容易に検索できるように記憶されなければ
ならない。
【1922】C.3.2 「機能的展望」 新しいブロックが(データトークンが指示する)データ
ストリームに到着する度に、ライトアドレス発生器は新
しいブロックアドレスを作るように要請される。アドレ
スが実際に必要になる前に、64までのデータワードを
(スイングバッファ内の)DRAMインターフェースに
よって記憶することができるので、直ちにアドレスを作
ることが必要ではない。これは様々なアドレス成分を連
続サイクル内の現在の合計に加算することができ、従っ
て如何なるハードウェア乗算器のための必要事項をも除
去することができることを意味する。マクロブロックカ
ウンタ機能は戦略的終末値を記憶し、各ブロックアドレ
ス計算の後の比較及び条件付き更新用のオペランドであ
る、レジスタファイル内のカウントを動かすことによっ
て達成される。
【1923】図170に示したピクチャフォーマットを
考えてみると、予測されるアドレスシーケンスは標準の
データストリーム及び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,..... ..... 080,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,..... ..... 06A,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つの別個の(しかし類似した)クロック発生器から
操作する。
【1924】C.3.3.1.2 「dramifに対
するインターフェース」 ライトアドレス発生器はDRAMインターフェース用の
データとアドレスを提供する。これらの各々はそれら自
身の2線式インターフェースを持ち、dramifは異
なるクロック様式においてその各々を使用する。特に、
アドレスはライトアドレス発生器クロックに関連しない
クロック上でdramifにクロックされる。従って、
それは出力において同期化される。
【1925】C.3.3.1.3 「マイクロプロセッ
サインターフェース」 ライトアドレス発生器は8ビットのデータバス及びリー
ド/ライトストローブと共に、3ビットのマイクロプロ
セッサアドレススペースを使用する。レジスタアクセス
用に1つのセレクトビットがある。
【1926】C.3.3.1.4 「イベント」 ライトアドレス発生器は5個の異なるイベントを作り出
すことができる。2個はデータストリーム(hmbsと
vmbs)に現れるピクチャサイズ情報に答え、3個は
DEFINE SAMPLINGトークン(各成分のた
めに1イベント)に答える。
【1927】C.3.3.2 「基本構造」 ライトアドレス発生器の構造を概略図waddrge
n.schに示す。それはデータパス、幾つかの制御ロ
ジック、及びスノーパと同期化から成る。
【1928】C.3.3.2.1 「データパス(bw
adpath)」 データパスは本文書のC.5章において説明したタイプ
のものであり、18ビットのアダー/サブトラクター、
及びレジスタファイル(C.3.3.4を参照)から成
り、制御ロジックにおいて使用するため(アダーの出力
に基づく)ゼロフラグを作り出す。
【1929】C.3.3.2.2 「制御ロジック」 本発明の制御ロジックはレジスタファイルロード及びド
ライブ信号、アダー制御信号、2線式インターフェース
信号の全てを発生させるため、ハーデウェアで構成さ
れ、更に書き込み可能制御レジスタを含む。
【1930】C.3.3.2.3 「スノーパ及び同期
化」 スーパースノーパがデータとアドレスポートの両方に存
在する。データパス内のスノーパはzcellsからの
スノーパとして制御される。アドレスはライトアドレス
発生器クロックとdramifのclk様式との間で同
期化を持つ。Syncifsは2線式インターフェース
信号用のzcellsにおいて使用され、簡略化された
シンクロナイザーがアドレス用のデータパスにおいて使
用される。
【1931】C.3.3.3 「制御ロジック及びステ
ートマシーン」 C.3.3.3.1 「入力/出力ブロック(wa i
nout)」 このブロックは(トークンデコード用の)入力データ用
ラッチ及び(4つの方法でデコーディングするための)
アライバルバッファインデックスと共に、入力と2つの
出力の2線式インターフェースを含む。
【1932】C.3.3.3.2 「2つのサイクル制
御ブロック(wa fc)」 フラグfc(最初のサイクル)がここに維持され、ステ
ートマシーンが2サイクルオペレーション(つまり、加
算を含むオペレーション)の中間にあるかどうかを指示
する。
【1933】C.3.3.3.3 「成分カウント(w
a comp)」 別のアドレスが各成分内のデータブロックのために必要
とされ、このブロックは入力ストリームにおいて受け取
られるデータヘッダのタイプに基づいて考慮中の現在の
成分を維持する。
【1934】C.3.3.3.4 「モジュロ−3制御
(wa mod3)」 H.261データストリーム用のアドレスシーケンスを
発生させる時、スクリーンに沿って半分までマクロブロ
ックの3つのローをカウントする必要がある(C.3.
2を参照)。これはマクロブロックの新しいローが巡視
される度に増分されるモジュロ−3カウンタを維持する
ことによって達成される。
【1935】C.3.3.3.5 「制御レジスタ(w
a uregs)」 モジュールwa uregsはステップアップレジスタ
及びコーディングスタンダードレジスタを含み、後者は
データストリームからロードされる。セットアップレジ
スタは3ビット:QCIF(1sb)と、データストリ
ーム内で予測される最大量の成分(ビット1及び2)を
使用する。更に、アクセスビットはこのブロックにあり
(いつものように同期化され)、「ストップド」ビット
はアクセスビット及びイベントストップビットのORと
して、階層(walogic)の次の上のレベルにおい
て引き出される。マイクロプロセッサアドレスデコーデ
ィングは、リード及びライトストローブ、セレクトワイ
ヤ、及びアドレスバスの低い方の2ビットを取るブロッ
クwa udecによって行われる。
【1936】C.3.3.3.6 「制御ステートマシ
ーン(wa state)」 このブロック内のロジックは幾つかの別個のエリアに分
けられる。ステートデコード、新しいステートエンコー
ド、「中間」ロジック信号の起源、データパス制御信号
(drivea、driveb、load、アダー制御
及びセレクト信号)、乗算器制御、2線式インターフェ
ース制御、及び5つのイベント信号である。
【1937】C.3.3.3.7 「イベント発生」 5つのイベントビットは入力に達する特定のトークンの
結果として発生される。重要なことは、各々の場合に、
イベントサービスルーチンが新しく受け取ったバリュー
に基づいて計算を行うので、イベントが発生される前に
全トークンが受け取られることである。このため、各々
のビットはイベントハードウェアに入力される前に全サ
イクルによって遅延される。
【1938】C.3.3.4 「レジスタアドレスマッ
プ」 ライトアドレス発生器ブロックには2セットのレジスタ
がある。これらは標準のセルセクションに置かれるトッ
プレベルのセットアップタイプのレジスタであり、キー
ホールデータパスレジスタである。これらを表245及
び表246〜表256に各々リストアップする。
【1939】
【表245】
【1940】
【表246】
【1941】
【表247】
【1942】
【表248】
【1943】
【表249】
【1944】
【表250】
【1945】
【表251】
【1946】
【表252】
【1947】
【表253】
【1948】
【表254】
【1949】
【表255】
【1950】
【表256】 キーホールレジスタは広く2つの範疇に分かれる。それ
は、アドレス計算の前にピクチャサイズパラメータをロ
ードしなければならないものと、様々な(水平及び垂直
の)ブロック及びマクロブロックカウントの現在の合計
を含むものである。ピクチャサイズパラメータはライト
アドレス発生器により発生される割り込みに答えてロー
ドされ得る、つまり、ピクチャサイズまたはサンプリン
グトークンのいずれかがデータストリームに現れる時に
ロードされ得る。あるいは、ピクチャサイズがデータス
トリームを受け取る前に知られている場合、リセット後
にそれらを書き込むことができる。セットアップの例を
セクションC.13に記すが、ピクチャサイズパラメー
タレジスタについては次のセクションにおいて定義す
る。
【1951】C.3.4 「ライトアドレス発生器のプ
ログラミング」 次のデータパスレジスタは、アドレス計算が進行される
前に、正しいピクチャサイズ情報を含んでいなければな
らない。それらを図171に図示する。
【1952】1)WADDR HALF WIDTH
IN BLOCKS:これはブロックにおいて、入って
くるピクチャの半分の幅を定義する。
【1953】2)WADDR MBS WIDE:これ
はマクロブロックにおいて、入ってくるピクチャの幅を
定義する。
【1954】3)WADDR MBS HIGH:これ
はマクロブロックにおいて、入ってくるピクチャの高さ
を定義する。
【1955】4)WADDR LAST MB IN
ROW:これはマクロブロックの1つの全幅のローにお
ける最後のマクロブロックの左上位のブロックのブロッ
ク数を定義する。ブロックナンバリングは左端のマクロ
ブロックの左上コーナーの0からスタートし、フレーム
を横切って各ブロック毎に増加し、マクロブロックロー
内の次のブロック・ローへと続く。
【1956】5)WADDR LAST MB IN
HALF ROW:これは前のアイテムと同様である
が、マクロブロックの半幅のローにおける最後のマクロ
ブロックの左上位のブロックのブロック数を定義する。
【1957】6)WADDR LAST ROW IN
MB:これはマクロブロックのロー内の最後のブロッ
クのローにおける左端のブロックのブロック数を定義す
る。 7)WADDR BLOCKS PER MB RO
W:これはマクロブロックの1つの全幅のローに含まれ
る全ブロック数を定義する。
【1958】8)WADDR LAST MB RO
W:これはピクチャ内のマクロブロックの最後のローに
おける左端のマクロブロックの左上位のブロックアドレ
スを定義する。
【1959】9)WADDR HBS:これは入ってく
るピクチャのブロックの幅を定義する。
【1960】10)WADDR MAXHB:これは1
つのマクロブロック内のブロックのローにおける右端の
ブロックのブロック数を定義する。
【1961】11)WADDR MAXVB:これはブ
ロックにおける、1つのマクロブロックの高さ−1を定
義する。
【1962】それに加えて、DRAMの組織を定義する
レジスタをプログラムしなければならない。これらのレ
ジスタは3バッファベースのレジスタ、及びn成分オフ
セットレジスタであり、この場合、nはデータストリー
ムにおいて予測される成分数である(それはデータスト
リームにおいて定義することができ、1最小限及び3最
大限であり得る)。
【1963】多くのパラメータがブロック数もしくはブ
ロックアドレスを指定することに注意。これは最終アド
レスがブロックアドレスであると予測され、計算は累積
アルゴリズムに基づくからである。
【1964】図171に図示するスクリーン構成は次の
レジスタバリューを生じる: 1)WADDR HALF WIDTH IN BLO
CKS=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において説明するように相互作用する。
【1965】
【表257】
【1966】
【表258】 C.3.5.1 「アドレスの計算」 ライトアドレス発生器ステートマシーンの主セクション
については、図173の左側に図示している。データト
ークンを受け取ると、ステートマシーンはステートID
LEからステートADDR1に、そして順にステートA
DDR5へと移動し、そこから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:マクロブロッ
クのローの左端のマクロブロックの(左上位のブロッ
ク)ブロックアドレス、そこにアドレスが計算されるブ
ロックが含まれる。
【1967】2)BU WADDR HMBADDR:
マクロブロックのカラムの上位マクロブロックの(左上
位のブロック)ブロックアドレス、そこにアドレスが計
算されるブロックが含まれる。
【1968】3)BU WADDR VBADDR:ブ
ロックのローの左端の、マクロブロックロー内のブロッ
クアドレス、そこにアドレスが計算されるブロックが含
まれる。
【1969】4)BU WADDR HB:アドレスが
計算されるブロックの、マクロブロック内の水平ブロッ
ク数。
【1970】5)BU WADDR SCRATCH:
中間結果の一時的記憶のために使用されるスクラッチレ
ジスタ。
【1971】図172を考慮し、例えば、そのアドレス
が0x62Dであるブロックの計算を取り上げると、以
下の計算シーケンスが発生する: スクラッチ=BUFFERn BASE+COMPm
OFFSET;(0と仮定) スクラッチ=0+0x5D8; スクラッチ=0x5D8+0x28; スクラッチ=0x600+0x2C; ブロックアドレス=0x62C+1=0x62D; 様々なレジスタの内容を図に示す。
【1972】C.3.5.2 「新しいスクリーンロケ
ーションパラメータの計算」 アドレスが出力されたら、ステートマシーンは上記の様
々なスクリーンロケーションパラメータを更新するため
に計算を実行し続ける。ステートHB及びMB0〜MB
6が計算を行い、あるポイントにおいてステートデータ
に制御を伝送し、ステートデータからデータトークンの
残りが出力される。
【1973】これらのステートはペアで進行し、第1の
ペアは現在のカウントとその終末値との差を計算し、0
フラグを発生させる。第2のペアはレジスタをリセット
するか、あるいは(スクリーンサイズから引き出される
セットアップレジスタにおけるバリューに基づいて)固
定オフセットを加算する。いずれの場合にも、考慮中の
カウントがその終末値に達すると(つまり、0フラグが
設定されると)、制御はステートのMBシーケンスを下
方へと続ける。そうでなければ、全てのカウントは正し
い(次のアドレス計算の準備が整っている)とみなさ
れ、制御はステートデータを伝送する。
【1974】加算もしくは減算の使用を含む全てのステ
ートは、完了するため(標準のリップル・キャリアダー
の使用を許す)2つのサイクルを取り、これはアダーベ
ースのステートのために1と0の間で交替するフラグ、
fc(最初のサイクル)の使用により達成される。
【1975】アドレス計算及びスクリーンロケーション
計算ステートの全てが、好ましい2線式インターフェー
ス条件を仮定して、データが出力されるようにする。
【1976】C.3.5.2.1 「規格用の計算
(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 a
ddrとvmb addrを各々リセットする。次に制
御はステートOUTPUT TAILを介してIDLE
に戻る。 C.3.5.4 「DEFINE SAMPLINGト
ークン上のオペレーション」 DEFINE SAMPLINGトークンを受け取る
と、成分レジスタには最も重要でない2ビットの入力デ
ータがロードされる。それに加えて、ステートHSAM
P及びVSAMPを介して、その成分用のmaxhbレ
ジスタ及びmaxvbレジスタがロードされる。更に、
適切な定義サンプリングイベントビットがトリガーされ
る(全トークンが書き込まれるようにするため1サイク
ルだけ遅延される)。
【1977】C.3.5.5 「HORIZONTAL
MBS及びVERTICAL MBS上のオペレーシ
ョン」 HORIZONTAL MBS及びVERTICAL
MBSの各々が到着すると、トークンに含まれる14ビ
ットバリューが2つのサイクルで適切なレジスタに書き
込まれる。関連イベントビットがトリガーされ、1サイ
クル分遅延される。
【1978】C.3.5.6 「他のトークン」 コーディングスタンダードトークンが検出され、トップ
レベルのBU WADDR COD STDレジスタに
入力データが書き込まれるようにする。これがデコード
され、(H261ではなく)nh261フラグがバッフ
ァマネージャブロックにハードワイヤードされる。他の
全てのトークンが制御をステートOUTPUT TAI
Lに動かし、トークンが完了するまでそのステートがデ
ータをアクセプトする。しかしながら、それは如何なる
データも実際には出力しないことに注意。
【1979】セクションC.4 「リードアドレス発生
器」 C.4.1 「展望」 本発明のリードアドレス発生器は4つのステートマシー
ン/データパスブロックから成る。まず、dlineが
ラインアドレスを発生させ、それらを他の3つの(各成
分用に1つづつの)同じページ/ブロックアドレス発生
器、dramctlsに分配する。全てのブロックは2
線式インターフェースによってつながれる。オペレーシ
ョンモードは飛び越し/順送り型、最初のフィールド上
位/下位、及び上位/下位/両方のフレームスタートの
全ての組合せを含む。表259、表260はdispa
dr制御レジスタの名前、アドレス、及びリセットステ
ートを示し、セクションC.13において両アドレス発
生器用のプログラミングの例を示す。
【1980】C.4.2 「ラインアドレス発生器(d
line)」 このブロックは各成分のためにラインアドレス発生器を
計算する。表259、表260はdlineにおける1
8ビットのデータパスレジスタを示す。
【1981】DISP register name及
びADDR register name DISP
nameレジスタの区別はdispaddrのみにおい
てであり、DRAMから読み出される表示エリアに対し
てそのレジスタが特別であることを意味する。ADDR
nameはそのレジスタが外部バッファの構造に関す
る何かを説明することを意味する。
【1982】オペレーション リピート等の全てのモードを無視する、dlineの基
本的オペレーションは: 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; } }
【1983】
【表259】
【1984】
【表260】 C.4.3 「Dline制御レジスタ」 上記オペレーションは下記の表に示すdispaddr
制御レジスタにより修正される。
【1985】
【表261】 C.4.3.1 「LINES IN LAST RO
W[成分]」 これら3つのレジスタは、各成分のために、読まれるこ
とになっているブロックの最後のローの中のライン数を
決定する。このように、リードウインドーの高さは任意
のライン数であってよい。ウインドーの上端、左端及び
右端がブロック境界上にあり、出力コントローラが余分
なラインをクリップする(捨てる)ことができるので、
これはバックアップの特徴である。
【1986】C.4.3.2 「DISPADDR A
CCESS」 これはdispaddr全体のためのアクセスビットで
ある。このロケーションに「1」を書き込むと、dis
paddrがクロックに同期して停止される。このステ
ートに達すると、全てのdispaddrレジスタに対
する非同期upiアクセスを遂行しても安全である。ア
クセスビットが「1」になるまで、upiがデータパス
レジスタから能動的に締め出されることに注意。現在の
表示またはデータパスオペレーションを崩壊させること
なくdispaddrに対するアクセスを達成するため
に、アクセスは以下の状況下でのみ与えられ、リリース
される。
【1987】ストッピング:データパスがその現在の2
サイクルオペレーションを完了した場合(1回のオペレ
ーションを行った場合)、そして出力コントローラから
の「安全」信号が高い場合にのみアクセスが認められる
であろう。この信号は表示ウインドの下のスクリーン上
のエリアを表し、出力コントローラ(dispaddr
ではない)においてプログラムされる。従って、dis
paddrに対するアクセスを得ようとする前に、出力
コントローラをプログラムすることが必要であることに
注意。
【1988】スターティング・アクセスは「安全性」が
高い時、もしくはvsyncの間にのみリリースされる
であろう。これは表示が活性ウインドーにあまりに近付
いてスタートしないことを保証する。
【1989】このスキームは制御ソフトウェアがアクセ
ス、ディスプレイ・エンドまで登録、dispaddr
を修正、及びアクセスをリリース等をリクエストできる
ようにする。ソフトウェアがあまりに遅く、vsync
の後までアクセスビットをリリースしない場合、dis
paddrは次の安全な期間までスタートしないであろ
う。ボーダーカラーは(がらくたというよりむしろ)こ
の「失われた」ピクチャの間に表示されるであろう。 C.4.3.3 「DISPADDR CTLO[7:
0]」 以下の説明を読む際に、飛び越しデータと飛び越し表示
の間の区別を理解することが重要である。
【1990】飛び越しデータには2つの形態があり得
る。トップレベルレジスタはフィールド・ピクチャ(各
々のバッファが1つのフィールドを含む)とフレーム
(飛び越されていようとなかろうと、各々のバッファが
全体のフレームを含む)を支持する。
【1991】DISPADDR CTL0[7:0]は
以下の制御ビットを含む: SYNC MODE[1:0] 飛び越し表示では、トップからボトムフィールドに言及
するvsyncsはfield infoピンによって
区別される。このような状況では、fieldinfo
=HIGHがトップフィールドを意味する。これら2つ
の制御ビットが、どのvsyncs dispaddr
がバッファマネージャから新しいディスプレイバッファ
をリクエストするかを決定し、こうして(データが飛び
越された場合)バッファ内のフィールドをディスプレイ
上のフィールドと同期化する: 0:トップフィールド上の新しいディスプレイバッファ 1:ボトムフィールド 2:両フィールド 3:両フィールド スタートアップ時に、dispaddrはあらゆるvs
ync上のバッファマネージャからバッファを要請する
であろう。バッファが準備できるまで、dispadd
rは0(ノーディスプレイ)バッファを受け取るであろ
う。最終的に良いバッファインデックスを受け取ると、
dispaddrはそれがディスプレイ上のどこにある
かに関して何の知識も持っていない。従って、ディスプ
レイスタートアップを正しいvsyncと同期させる必
要があるかもしれない。
【1992】READ START スタートアップ時の飛び越し表示のために、このビット
はどのvsyncディスプレイ上で実際スタートするか
を決定する。更に、ディスプレイバッファインデックス
を受け取った後、dispaddrはディスプレイ上の
フィールドをバッファ内のフィールドと整列させるため
に、現在のvsyncを「居残らせ」てもよい。
【1993】INTERLACED/PROGRESS
IVE 0:Progressive(順送り型) 1:Interlaced(飛び越し) 順送りモードでは、全てのラインがバッファのディスプ
レイエリアから読まれる。飛び越しモードでは、交互の
ラインが読まれる。リーディングが最初のラインからス
タートするか、二番目のラインからスタートするかはf
ield info次第である。(飛び越し)フィール
ド・ピクチャでは、システムが各バッファからの全ての
ラインを読みたいと望むので、このビットのセッティン
グは順送り型であろうということに注意。field
infoと第1/第2のライン間のマッピングはlsb
invert(歴史的な理由からそう名付けられた)
により反転されてもよい。
【1994】LSB INVERT 設定されると、このビットはラインカウンタによって見
られるfield info信号を反転する。このよう
に、リーディングはフレームの正しいライン上でスター
トされ、エンコーダ、ディスプレイ、またはトップレベ
ルレジスタが採用する規定に関わりなく、ディスプレイ
に整列させられてもよい。
【1995】LINE RPT[2:0] 設定されると、各々のビットは対応する成分のラインを
二度読ませる(ビット0が成分0に影響を与える等)。
これは垂直のアンサンプリングの最初の部分を形成す
る。それはQFIFから601への変換のために要求さ
れる8回の色アンサンプリングに使用される。
【1996】COMPOHOLD このビットは成分1及び2のライン数に対する、成分0
のため(表示されるものに対立するものとして)読まれ
るライン数の比率をプログラムするために使用される。
【1997】0:同じライン数、つまりバッファ内の
4:4:4のデータ 1:成分0ラインの二倍、つまり4:2:0。
【1998】ページ/ブロックアドレス発生器(dra
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 }
【1999】
【表262】
【2000】
【表263】 プログラミング 次の15のdispaddrレジスタはオペレーション
を開始する前にプログラムされなければならない。
【2001】BUFFER BASE0,1,2 DISP COMP OFFSET0,1,2 DISP VBS COMP0,1,2 ADDR HBS COMP0,1,2 DISP COMP0,1,2 HBS dispaddr制御レジスタのリセットステートの使
用は、4:2nの飛び越しディスプレイを与え、ライン
リピートは同期化されず、トップフィールド(fiel
d info=HIGH)でスタートするであろう。図
168、「SIF(22x18のマクロブロック)ピク
チャを含むバッファ0」は典型的なSIFピクチャ用の
バッファセットアップを示す。(この例については、
C.13章で詳細に説明する)。この例において、DI
SP HBS COMPnはADDR HBS COM
Pnに等しく、同様に垂直のレジスタDISP VBS
COMPn及び等価ライトアドレス発生器レジスタが等
しい、つまり、読まれるべきエリアは全バッファである
ことに注意。
【2002】リードアドレス発生器を用いてのウインド
ー処理 バッファの一部(ウインドー)のみを読むようにdis
paddrをプログラムすることが可能である。ウイン
ドーのサイズは、レジスタDISP HBS、DISP
VBS、COMPONENT OFFSET、及びL
INES INLAST ROWにより各成分のために
プログラムされる。図169、「ディスプレイウインド
ーを備えたSIF成分0」は、これが如何にして(成分
0だけのために)達成されるかを示している。
【2003】この例では、レジスタセッティングは以下
の通りであろう: 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であることを意味
する)。
【2004】・本例は4:4:4のデータ以外のもので
は実用的ではない。調和するために、他の2つの成分の
ためのウインドーエッジはブロック境界上に存在するこ
とができないであろう。
【2005】・色空間変換はそれが受け取るデータが
4:4:4ではない場合に停止するであろう。これはこ
れらのリードウインドーがアンサンプラと共に、これを
達成するようにプログラムされなければならないことを
意味する。 セクションC.5 「アドレス発生用のデータパス」 dispaddr及び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つの適切なバイ
トに動かされる。Upiデータバスはデータパスを垂直
に進み(複写される、2−8−8ビット)、18ビット
レジスタが3個の別のバイトライトとして書き込まれ
る。
【2006】・リーディング:これはA及びBバスを使
用して行われる。ここでも、アクセスビットが設定され
なければならない。アドレスレジスタはAまたはBバス
上に動かされ、upiバイトセレクトが関連バスからバ
イトを取り上げ、それをupiバス上へと動かす。
【2007】ダブルサイクルデータパスオペレーション
がA及びBバスにそれらの値を保持するように要求し、
upiアクセスがこれらを崩壊させるので、アクセスは
いずれかのデータパスオペレーションのスタート前に、
ステートマシーンを制御することによってのみ与えられ
なければならない。
【2008】両アドレス発生器内の全てのデータパスレ
ジスタは、トップレベルアドレス0x28(msb)の
9ビット幅のキーホールを通して、キーホール用には0
x29(lsb)であり、データ用には0x2Aを通し
てアドレスされる。キーホールアドレスを表282〜表
300に示す。
【2009】注: 1)アドレス発生器(dispaddrとwaddrg
en)内の全てのアドレスレジスタはブロック化アドレ
スを包含する。ピクセルアドレスは決して使用されず、
ラインアドレスを包含する唯一のレジスタは、3個のL
INES INLAST ROWレジスタである。
【2010】2)幾つかのレジスタはアドレス発生器間
で重複される、例えば、BUFFER BASE0はd
ispaddrとwaddrgen用のアドレススペー
スにおいて発生する。これらは両方共ローディングを必
要とする2個の別々のレジスタである。これにより、表
示ウインドー処理(表示記憶装置の一部だけを読む)が
可能となり、3成分ビデオ以外のフォーマット表示が容
易になる。
【2011】セクションC.6 「DRAMインターフ
ェース」 C.6.1 「展望」 本発明においては、空間デコーダ、時間デコーダ、及び
ビデオフォーマッティング部がその特別なチップのため
に各々データトークンブロックを含む。3個全ての装置
において、DRAMインターフェースの機能はチップか
ら外部DRAMへ、そして外部DRAMからチップへ
と、アドレス発生器により供給されるブロックアドレス
を介してデータを伝送することである。
【2012】DRAMインターフェースは典型的に、ア
ドレス発生器に対して、そしてそれを通してデータが送
られる様々なブロックのクロックに対して、非同期的で
あるクロックから操作する。しかしながら、この非同期
性はクロックがほぼ同じ周波数で操作するので、容易に
処理される。
【2013】データは通常DRAMインターフェースと
64バイトのブロック内の残りのチップとの間で伝送さ
れる(唯一の例外は時間デコーダ内の予測データであ
る)。伝送は「スイングバッファ」として知られる装置
によって行われる。これは本質的にダブルバッファされ
た配置で操作される一対のRAMであり、DRAMイン
ターフェースが1つのRAMを詰めるか空にしている間
に、チップの他の部分が他のRAMを空にするか詰めて
いる。アドレス発生器からアドレスを運ぶ別のバスが各
々のスイングバッファと連合する。
【2014】各々のチップは4つのスイングバッファを
持つが、これらのスイングバッファの機能は各々の場合
により異なる。空間デコーダにおいて、コード化データ
をDRAMに伝送するために1つのスイングバッファが
使用され、DRAMからコード化データを読むために別
のスイングバッファが使用され、トークン化データをD
RAMに伝送するために3番目のスイングバッファが、
またDRAMからトークン化データを読むために4番目
のスイングバッファが使用される。時間デコーダにおい
ては、イントラもしくは予測されたピクチャデータをD
RAMに書き込むために1つのスイングバッファが使用
され、DRAMからイントラもしくは予測されたピクチ
ャデータを読むために2番目のスイングバッファが使用
され、他の2つはフォワード及びバックワード予測デー
タを読むために使用される。ビデオフォーマッティング
部においては、1つのスイングバッファがDRAMにデ
ータを伝送するために使用され、他の3つがDRAMか
らデータを読むために使用されるが、それは各々輝度
(Y)、及び赤と青の色差データ(各々Cr及びCb)
である。
【2015】DRAMインターフェースの一般的な特徴
のオペレーションについては、空間デコーダー文書にお
いて記載している。次のセクションは本発明によるDR
AMインターフェースの特徴、特にビデオフォーマッテ
ィング部に特有の特徴について説明する。
【2016】C.6.2 「ビデオフォーマッティング
部DRAMインターフェース」 ビデオフォーマッティング部において、データはブロッ
クで外部DRAMに書き込まれるが、ラスターオーダー
で読み出される。ライティングは空間デコーダに関して
既に説明したことと正確に同じであるが、リーディング
は少々複雑である。
【2017】ビデオフォーマッティング部外部RAM内
のデータは少なくとも8ブロックのデータが1ページに
収まるように組織化される。これら8ブロックは8個の
連続的な水平ブロックである。ラスター化する際に、8
個の連続ブロックの各々から8バイトを読み出し、それ
をスイングバッファに書き込む(つまり、8ブロックの
各々に同じロー)ことが必要である。
【2018】トップフローを考えてみる(そしてバイト
幅のインターフェースを仮定する)と、xアドレス(3
LSB)が0に設定され、yアドレス(3MSB)も同
様である。xアドレスは次に、最初の8バイトの各々が
読み出されるにつれて増分される。この時点で、アドレ
スの上位部分(ビット6以上−LSB=ビット0)が増
分され、xアドレス(3LSB)は0にリセットされ
る。このプロセスは64バイトが読み出されるまで繰り
返される。外部DRAMに対する16または32ビット
幅のインターフェースでは、xアドレスは1の代わりに
2または4だけ単に増分される。
【2019】アドレス発生器は8バイトの倍数が常に読
まれるが、64以下のバイトが読まれるべきである(こ
れはラスターラインの始まりまたは終わりにおいて要求
される)という信号をDRAMインターフェースに送る
ことができる。これはスタート及びストップバリューを
使用して行われる。スタートバリューはアドレスの上位
部分(6ビット以上)のために使用され、ストップバリ
ューがこれと比較され、リーディングをストップすべき
であることを指示する信号が発せられる。
【2020】セクションC.7 「垂直アップサンプリ
ング」 C.7.1 「序文」 1つの色成分のピクセルのラスタースキャンがその入力
にあるとすれば、本発明による垂直アンサンプラは高さ
の2倍の出力スキャンを提供することができる。モード
セレクションにより、出力ピクセルバリューを多くの方
法で形成することができる。
【2021】C.7.2 「ポート」 入力2線式インターフェース: ・in valid ・in accept ・in data[7:0] ・in lastpel ・in lastline 出力2線式インターフェース: ・out valid ・out accept ・out data[9:0] ・out last mode[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]により選択。
【2022】モードレジスタバリュー1及び7は使用さ
れない。
【2023】上記モードの各々において、出力ピクセル
は10ビットバリューとして表示され、バイトとしては
表示されない。ラウンディングもしくは打ち切りはこの
ブロックでは行われない。必要に応じて、バリューは同
じ範囲を使用するために左にシフトされる。
【2024】C.7.3.1 「モード0:Fifo」 ブロックは単にFIFO記憶装置として作用する。出力
ピクセル数は入力ピクセル数と全く同じである。バリュ
ーは2だけ左にシフトされる。
【2025】C.7.3.2 「モード2:Repea
t」 入力スキャン内のあらゆるラインは高さの2倍の出力ス
キャンを作るために繰り返される。ここでも、ピクセル
バリューは2だけ左にシフトされる。
【2026】A→ABACBDBCCDD C.7.3.3 「モード4:Lower」 各入力ラインは2つの出力ラインを作り出す。この「下
位」モードでは、これら2つのラインの2番目のもの
(ディスプレイ上の下の方)が入力ラインと同じであ
る。ペアの最初のものは現在の入力ラインと前の入力ラ
インの平均である。前のラインが使用されていない場合
の最初の入力ラインの場合、入力ラインが繰り返され
る。
【2027】これは彩度サンプルが下位輝度サンプルと
共に配置される場所を選択すべきである。
【2028】 A→ABAC(A+B)/2DB(B+C)/2C(C+D)/2D C.7.3.4 「モード5:Upper」 「下位」モードと同様であるが、この場合入力ラインは
出力ペアの上位を形成し、下位は隣接する入力ラインの
平均である。最後の出力ラインは最後の入力ラインの繰
り返しである。
【2029】これは彩度サンプルが上位輝度サンプルと
共に配置される場所を選択すべきである。
【2030】 A→AB(A+B)/2CBD(B+C)/2C(C+D)/2DD C.7.3.5 「モード6:Central」 この「中央」モードは彩度サンプルが輝度サンプルとの
中間にある状況に対応する。出力彩度ピクセルを輝度ピ
クセルと共に配置するために、重み付き平均を使用して
出力ラインを形成する。
【2031】 A→ AB(3A+B)/4C(A+3B)/4D(3B+C)/4(B+3 C)/4 (3C+D)/4(C+3D)/4D C.7.4 「作用の仕方」 想像上aとbで指定される2つのラインストアがある。
FIFO及びrepeatモードでは、ラインストアa
だけが使用される。各ストアは512ピクセルまでのラ
インを収容できる(垂直アップサンプリングは水平アッ
プサンプリングの前に行われるべきである)。FIFO
モードにはラインの長さに関する制約がない。
【2032】in lastpel及びin last
line内の入力信号は、入力ラインの終わりとピクチ
ャの終わりを指示するために使用される。in las
tpelにおいては、入力信号は各ラインの最後のピク
セルと強く一致すべきである。in lastline
においては、入力信号はピクチャの最後のラインの最後
のピクセルと強く一致すべきである。
【2033】出力信号out lastは各出力ライン
の最後のピクセルと強く一致する。repeatモード
では、各ラインはストアaに書き込まれる。ラインは次
に2度読み出される。2度目に読み出される時、次のラ
インの書き込みをスタートしてもよい。
【2034】lower、upper及びcentra
lモードでは、ラインはストアa及びbに交互に書き込
まれる。ピクチャの最初のラインは常にストアaに書き
込まれる。2個の小さなステートマシーン、各ストア用
に1つづつ、が各々のストアに何があるか、そしてどの
出力ラインが形成されているかを記憶する。これらのス
テートからリードとライトのリクエスト、及び次のライ
ンをいつ現在のデータにオーバーライトするかを決定す
る信号がラインストアRAMに発せられる。
【2035】in lastpelが高い時、レジスタ
(lastaddr)がライトアドレスを記憶し、それ
によって、出力ラインの形成のためにライン長を提供す
る。 C.7.5 「UPI」 このブロックは2個の512x8ビットのRAMアレイ
を含み、それは典型的な方法でマイクロプロセッサイン
ターフェースを介してアクセスされ得る。マイクロプロ
セッサアクセスを持つレジスタはない。
【2036】セクションC.8 「水平アップ・サンプ
ラ」 C.8.1 「展望」 本発明においては、トップレベルレジスタは、各色成分
のために1つづつ、3個の同じ水平アップ・サンプラを
具備する。3個全ては別々に制御されるので、1つだけ
についてここで説明する。ユーザーの観点から、唯一の
違いは各水平アップ・サンプラがメモリーマップ内の異
なるアドレスセットにマップされることである。
【2037】水平アップ・サンプラは複製とフィルタリ
ングを組み合わせたオペレーションを遂行する。全てに
おいて、4つのオペレーションモードがある。
【2038】
【表264】 C.8.2 「水平アップ・サンプラの使用」 各水平アップ・サンプラ用のアドレスマップは12個の
13ビット係数レジスタと1個の2ビットモードレジス
タに対応する25のロケーションから構成される。モー
ドレジスタに書き込まれるナンバーが、表264に概略
するように、オペレーションモードを決定する。モード
に応じて、一部または全部の係数レジスタを使用でき
る。等価FIRフィルタについて下記に説明する。
【2039】オペレーションモードに応じて、入力、X
nは1、2、または4クロック期間の間一定に保持され
る。各モードのためにプログラムされる実際の係数は以
下の通りである:
【2040】
【表265】
【2041】
【表266】
【2042】
【表267】 特定のモードで使用されない係数は、そのモードで操作
する時にはプログラムする必要がない。
【2043】均整のとれたフィルタリングを行うために
各ラインの最初と最後のピクセルがフィルタリングの前
に繰り返される。例えば、2によってアップ・サンプリ
ングをする場合、各ラインの最初と最後のピクセルが2
度ではなく、4度複製される。フィルタ内の残留データ
が各ラインの終わりで捨てられるので、ピクセル数の出
力は常に正確に入力ストリーム内の数字の1倍、2倍ま
たは4倍である。
【2044】係数値に応じて、出力サンプルは入力サン
プルと一致して置かれるか、あるいは入力サンプルから
シフトされて置かれる。あるサンプルモードでの係数値
の幾つかの例を下記に記す。“−”は係数値が「気にし
なくてよい」であることを指示する。全ての値を16進
法で示す。
【2045】
【表268】 C.8.3 「水平アップ・サンプラの説明」 水平アップ・サンプラのデータパスを図177に示す。
【2046】オペレーションは×4アップ・サンプルの
場合を取り上げ、下記に概略する。それに加えて、×2
アップ・サンプリングと×1フィルタリング(モード2
及び1)はこれの変質ケースであり、全フィルタを迂回
し(モード0)、データは図示するように、入力ラッチ
から出力ラッチへと最後のマックスを介して直接進む。
【2047】1)有効なデータが入力においてラッチさ
れる場合 ラッチ(L)、それは4クロック期間の間保持される。
【2048】2)(C/OE/FFというラベルが貼ら
れた)係数レジスタは、それぞれ順番に、4個の(PI
PEというラベルが貼られた)パイプラインレジスタの
2セットがクロックされるのと同時に、1クロック期間
の間乗算器の上に多重送信される。こうして、入力デー
タXnのために、最初のPIPEにバリューc00.X
n、c01.Xn、c02.Xn、c03.Xnが詰められ
るであろう。
【2049】3)同様に、第2の乗算器が順にその係数
にXnを掛け、第3の乗算器が順にその係数全てにXnを
掛けるであろう。
【2050】出力は表269に示した形態のものであろ
うことが解るであろう。
【2051】
【表269】 出力の観点から、各クロック期間は個々のピクセルを作
り出す。各出力ピクセルが12入力ピクセルの重み付き
バリューに依存するので(3つしか異なるバリューは存
在しないが)、これは×4アップ・サンプルされた入力
ピクセル上に12タップフィルタを実装するものとして
考えられる。
【2052】×2アップサンプリングにとっても、オペ
レーションは本質的に同じであるが、入力データが2ク
ロック期間の間だけ保持されることが異なる。更に、2
個だけの係数が使用され、PIPEブロックは図示した
乗算器によって短くされる。×1フィルタリング用に、
入力は1クロック期間の間だけ保持される。期待される
ように、1つの係数と1つのPIPEステージが使用さ
れる。
【2053】次に、本発明における実装の特異性に関し
て少々説明する。
【2054】1)色空間コンバータ用に設計されたよう
に、データパス幅及び係数幅(13ビットの2の補数)
が選ばれ、同じ乗算器を使用することができる。これら
の幅は水平アップ・サンプラのためにこれ以上適切なも
のはない。
【2055】2)係数を乗算器上に多重送信するマルチ
プレクサは、UPIリードバックと共有される。これは
概略図の構造において(基本的にCCODE発生におけ
る困難さの故に)ある種の複雑さを導き出すが、実際の
回路はそれより小さなものである。
【2056】3)色空間コンバータにおけるように、キ
ャリセーブ乗算器が使用され、その結果は終わりの時点
で分解されるだけである。
【2057】水平アップ・サンプラ全体用の制御は、そ
の入力上にある時、入力におけるデータ量の2倍もしく
は4倍の量を作り出すことができる1つの2線式インタ
ーフェースステージと見なすことができる。UPIを介
してプラグラムされるモードが、プログラム可能シフト
レジスタ(bob)の長さを決定する。選択されるモー
ドはクロック期間毎、2クロック期間毎、あるいは4ク
ロック期間毎に出力パルスを生み出す。次にこれは主ス
テートマシーンを制御するが、そのステートは更に(2
線式インターフェース用に)in valid、out
accept、及び信号in lastによって決定
される。この信号は垂直アップ・サンプラから送られ、
各ラインの最後のピクセル用に高くなる。これは各ライ
ンの最初と最後のピクセルが2度複製されるようにし、
(ラインが完了した直後に、パイプラインが部分的に処
理された冗長データを含む)ライン間のパイプラインを
クリアする。
【2058】セクションC.9 「色空間コンバータ」 C.9.1 「展望」 本発明における色空間コンバータ(CSC)は入ってく
る9ビットデータに3×3マトリックスのかけ算を行
い、その後加算を行う:
【2059】
【数6】 x0−2が入力データである場合、y0−2が出力デー
タとなり、cnmが係数である。概略図において名前は
信号名に対応するので、マトリックス係数に関して、少
々型破りのネーミングは慎重にするべきである。
【2060】CSCは多くの異なる色空間の間の変換を
実行することができるが、これらの変換の限定されたセ
ットがトップレベルレジスタにおいて使用される。デザ
イン色空間変換は以下の通りである: ER,EG,EB → Y,CR,CB R,G,B → Y,CR,CB Y,CR,CB → ER,EG,EB Y,CR,CB → R,G,B 式中、R、G及びBは範囲(0..511)内にあり、
他の全ての量は(32..470)の範囲にある。トッ
プレベルレジスタCSCに対する入力は、Y、CR、CB
であるので、これらの式の内3番目と4番目の式だけが
関連する。
【2061】CSCデザインでは、係数の精度は、9ビ
ットデータ用には、全ての出力がアルゴリズムの全浮動
小数点シミュレーションにより作られるバリューの+1
または−1ビット以内であるように選ばれた(これは達
成し得る最良の精度である)。これはcx0−cx3用
に13ビットの2の補数係数を与え、cx4用に14ビ
ットの2の補数係数を与えた。全てのデザイン変換用の
係数を下記に、10進法と6進法の両方で記す。
【2062】
【表270】
【2063】
【表271】 これら全てのナンバーは以下の基本式: Y=0.299ER+0.587EG+0.0114EB そして、以下の色差式から計算される: CR=ER−Y CB=EB−Y R、G及びBにおける式はこれらの量の全範囲を考慮し
た後、これらから引き出される。
【2064】C.9.2 「色空間コンバータの使用」 リセット後、c01、c12、c23が1に設定され、
他の全ての係数が0に設定される。こうして、y0=x
0、y1=x1、y2=x2、及び全てのデータが無変
更のまま送られる。色空間変換を選択するには、単に
(例えば、表270、表271からの)適当な係数をア
ドレスマップ内に指定されるロケーションに書き込むだ
けでよい。
【2065】概略図において、x0..2はin da
ta0..2に対応し、y0..2はout data
0..2に対応する。ユーザーはCSCに対する入力デ
ータを4:4:4にアップ・サンプルしなければならな
いことを覚えておくべきである。これを怠ると、色空間
変換が何の意味も持たなくなるばかりでなく、チップも
ロックするであろう。
【2066】注意すべきことは、各々の出力が係数と入
力プラス(またはマイナス)定数の可能な組み合わせか
ら形成され得ることである。このように、所定の色空間
変換のために、出力オーダーを変換マトリックス(係数
が書き込まれるアドレス)内のローをスワッピングする
ことにより変更できる。
【2067】表270、表271における全ての変換の
ために、CSCが作動することは保証されている。他の
変換を用いる場合、ユーザーは以下の事項を覚えておか
ねばならない: 1)計算の中間結果が(サインビットを除き)10ビッ
ト以上の精度を要求する場合、ハードウェアは作動しな
いであろう。
【2068】2)CSCの出力は0と511にサチュレ
ートされる。つまり、0以下の数が0で置き換えられ、
511以上の数が511で置き換えられる。サチュレー
ションロジックの実行は、結果がわずかに511を越え
ているか、わずかに0以下であると仮定する。CSCが
不正確にプログラムされた場合、出力が常に(あるいは
ほとんどの場合)サチュレートするように見えることが
共通のきざしであろう。
【2069】C.9.3 「CSCの説明」 CSCの構造を図178に図示するが、スペース上の制
約から、3つの「コンポーネント」の内2つだけを示し
た。図中、「レジスタ」もしくはRはマスター・スレー
ブレジスタを示し、「ラッチ」もしくはLは透明ラッチ
を示す。
【2070】全ての係数は図において明示されていない
リード・ライトUPIレジスタにロードされる。オペレ
ーションを理解するために、左端の「コンポーネント」
(出力out data0を作り出す)に関して、以下
のシーケンスを考慮する: 1)データは入力x0−2(in data0−2)に
到達する。これは入力色空間における1つのピクセルを
表す。これがラッチされる。
【2071】2)x0にc01を掛け、最初のパイプラ
インレジスタにラッチする。x1及びx2が1つのレジ
スタ上を移動する。
【2072】3)x1にc02を掛け、それを(x1.
c01)に加算し、次のパイプラインレジスタにラッチ
する。x2が1つのレジスタ上を移動する。
【2073】4)x2にc03を掛け、それを(3)の
結果に加算し、(x1.c01+x2.c02+x3.
c03)を生み出す。その結果を次のパイプラインレジ
スタにラッチする。
【2074】5)(4)の結果をc04に加算する。デ
ータは乗算器を通してキャリセーブフォーマットの中に
保持されているので、このアダーも乗算器チェインから
のデータを分解するために使用される。その結果を次の
パイプラインレジスタにラッチする。
【2075】6)最終的なオペレーションはデータをサ
チュレートすることである。これを行うために、部分的
結果が分解アダーからサチュレートブロックに送られ
る。
【2076】このセクションの開始時点のマトリックス
式において明記したように、その結果がy0であること
が解る。同様に、y1とy2が同じ方法で形成される。
【2077】係数を被乗数とし、データを乗数として、
3個の乗算器を使用した。これにより効率的なレイアウ
トを達成でき、部分的結果がデータパスを下り、同じ入
力データが各出力に1つづつの3つの並列する同じデー
タパスを横切って送られた。セクションC.9.2にお
いて説明したリセットステートを達成するために、3つ
の「コンポーネント」の各々を異なる方法でリセットし
なければならない。3セットの概略図と3つのわずかに
異なるレイアウトを持つことを避けるため、これはトッ
プレベルで高または低につながれるUPIレジスタに対
する入力を持つことにより達成される。
【2078】CSCはそれに関連する制御をほとんど持
たない。にもかかわらず、各々のパイプラインステージ
は2線式インターフェースステージであるので、それら
の関連制御(in accept=out accep
t r+lin validr)を持つ有効ラッチ及び
アクセプトラッチのチェインがある。従って、CSCは
5ステージの深さの2線式インターフェースであり、ス
トールされた場合10レベルのデータを保持することが
できる。
【2079】出力パイプに於ける次の機能が異なるクロ
ック発生器から外れるので、CSCの出力は再同期化ラ
ッチを含む。
【2080】セクション C.10 「出力コントロー
ラ」 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 hsync nupdata[7:0]、upaddr[4:0]、
upsel、rstr、wstr、tdin、tdou
t、tph0、tckm、tcks chiptes
t、ph0、ph1、notrst0、notrst1 C.10.3 「アウトモード」 出力のフォーマットはopmodeレジスタに書き込む
ことにより、選択される。
【2081】C.10.3.1 「モード0」 このモードは24ビットの4:4:4RGBもしくはY
CrCbである。入力データは直接出力に進む。
【2082】C.10.3.2 「モード1及び2」 これらのモードは4:2:2のYCrCbを表す。In
data[23:16]がYであると仮定すると、i
n data[15:8]はCrであり、indata
[7:0]はCbである。
【2083】C.10.3.2.1 「モード1」 16ビットのYCrCbにおいて、Yはout dat
a[15:8]上に表示される。CrとCbはout
data[7:0]上で、Cbを最初にして、時分割多
重化される。Out data[23:16]は使用さ
れない。
【2084】C.10.3.2.2 「モード2」 8ビットのYCrCbにおいて、Y、Cr及びCbはC
b、Y、Cr、Yのオーダーで、out data
[7:0]上で時分割多重化される。Out data
[23:16]は使用されない。
【2085】C.10.3.3 「出力タイミング」 ビデオディスプレイウインドーにデータを置くために、
以下のレジスタが使用される。
【2086】・Vdelay−ビデオまたはボーダーの
最初のラインの前に、vsyncパルスに続くhsyn
cパルス数 ・hdelay−hsyncと、ビデオまたはボーダー
の最初のピクセルとの間のクロックサイクル数 ・height−ラインにおけるビデオウインドーの高
さ ・width−ピクセルにおけるビデオウインドーの幅 ・north、south−ラインにおけるビデオウイ
ンドーの上及び下の各々のボーダーの高さ、 ・west、east−ピクセルにおけるビデオウイン
ドーの左及び右に対する 各々のボーダー幅 最小のvdelayは0である。最初のhsyncは最
初の活動的ラインである。hdelayにプログラムさ
れ得る最小値は2である。しかしながら、inhsyn
cから最初の活動的出力ピクセルまでの実際のディレイ
はhdelay+1サイクルであることに注意。
【2087】ボーダーの縁はバリュー0を持つことがで
きる。ボーダーの色はレジスタにborder r、b
order g、及びborder bを書くことによ
って選択される。ボーダーの外側のエリアの色はレジス
タにblank r 、blank g、blank
bを書くことによって選択される。出力モード1及び2
において遂行されるマルチプレクシングもボーダー及び
ブランクコンポーネントに影響を与えるであろう。つま
り、これらのレジスタのバリューはin data[2
3:16]、in data[15:8]、及びin
data[7:0]に対応する。
【2088】C.10.4 「出力フラグ」 ・out activeは出力データが活性ウインド
ー、つまりビデオデータまたはボーダーの一部であるこ
とを指示する。
【2089】・out windowは出力データがビ
デオウインドーの一部であることを指示する。
【2090】・out comp[1:0]は色成分が
出力モード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 acceptは両
方につながれるべきであることに注意。
【2091】C.10.6 「スノーパ」 出力フラグへのアクセスを含むブロックの出力上にスー
パースノーパがある。 C.10.7 「作用の仕方」 2個の同じダウンカウンタがディスプレイにおける現在
の位置を覚えている。Vcountはhsyncs上で
減少し、vsync上の、あるいはその終末カウントに
おける適当なタイミングレジスタからロードする。Hc
ountはあらゆるピクセル上で減少し、hsync上
で、あるいはその終末カウントにおいてロードする。出
力モード2では、1つのピクセルが2個のクロックサイ
クルに対応することに注意。
【2092】セクション C.11 「クロック分周
器」 C.11.1 「展望」 本発明におけるトップレベルレジスタは、1つはPIC
TURE CLKを発生させるため、1つはAUDIO
CLKを発生させるために、2個の同じクロック分周
器を含む。クロック分周器は同じであり、別々に制御さ
れる。従って、1つだけをここで取り上げて説明する。
ユーザーの観点から、唯一の違いは各クロック分周器の
除数レジスタがメモリーマップ内のアドレスの異なるセ
ットにマップされることである。
【2093】クロック分周器の機能は4Xsysclk
分配クロック周波数を提供することであり、偶数のマー
ク対スペース比のための要件はない。
【2094】除数は〜0から〜16、000、000の
範囲にあることが求められるので、最小除数が16であ
るという制約付きで24ビットを用いて表すことができ
る。これはクロック分周器が除数/2を用いて、(1つ
のsysclkサイクル内に)等しいマーク対スペース
比を接近させるであろうからである。利用できる最大ク
ロック周波数はsysclkであるので、利用できる最
大分配周波数はsysclk/2である。更に、4個の
カウンタが縦続で使用されるので、除数/2は決して8
以下であってはならず、そうでなければ分配されるクロ
ック出力は正のパワーレールに駆動されるであろう。
【2095】C.11.2 「クロック分周器の使用」 各クロック分周器用のアドレスマップは3個の8ビット
除数レジスタと1個の1ビットアクセスレジスタに対応
する4つのロケーションから構成される。クロック分周
器は無活動のものをパワーアップし、その除数レジスタ
に対するアクセス完了によって活性化される。
【2096】除数レジスタは表272のアドレスマップ
に従ったオーダーで書き込まれてよい。クロック分周器
はそのアクセスビットにおける同期化0〜1遷移を感知
することにより活性化される。遷移が初めて感知される
と、クロック分周器はリセット状態から出て、分配され
たクロックを発生させる。(除数も変更されていると仮
定して)それに続く遷移は、クロック分周器を単にその
新しい周波数on−the−flyにロックさせるであ
ろう。一度活性化されると、クロック分周器を停止させ
る方法はチップRESET以外にない。
【2097】
【表272】 16〜16、777、216の範囲の除数値が使用でき
る。
【2098】C.11.3 「クロック分周器の説明」 クロック分周器は、1カウンタが桁上げするにつれて、
それが次のカウンタを順に活性化させるように縦続され
る4個の22ビットカウンタとして実装される。カウン
タは桁上げの前に除数/4のバリューをカウントダウン
するので、各カウンタがそれを順に取り上げ、分配クロ
ック周波数のパルスを発生させるであろう。
【2099】桁上げの後、カウンタは除数/8を再びロ
ードし、これがカウントダウンされてほぼ等しいマーク
対スペース比分配クロックを作り出す。各々のカウンタ
が前のカウンタにより活性化される時、除数レジスタか
ら再ロードするにつれて、これは単に除数の内容を変更
することによって、分配クロック周波数をオン・ザ・フ
ライで変更することができるようにする。
【2100】各カウンタはカウンタ間のクロックスキュ
ーを正確に制御し、各カウンタが別個のクロックセット
によってクロックされ得るようにするため、それ自身の
独立したクロック発生器によってクロックされる。
【2101】ステートマシーンは除数/4及び除数/8
バリューの発生器を制御し、更にPLLからクロック発
生器へと正しいソースクロックを多重送信する。カウン
タは除数のバリューに応じて異なるクロックによりクロ
ックされる。これは異なる除数バリューが、PLLから
提供されるクロックの異なる組合せを用いてそのエッジ
が配置される分配クロックを作り出すであろうからであ
る。
【2102】C.11.4 クロック分周器のテスト CHIPTEST Highでチップをパワーアップす
ることによりクロック分周器をテストすることができ
る。これはPLLによって発生されるクロックに対抗す
るものとして、sysclkによりクロックされるクロ
ック分周器におけるクロック化ロジックの全てを強制す
る効果を持つ。
【2103】クロック分周器はフルスキャンを持つよう
に設計されているので、チップが上記のように動かされ
る限り、標準のJTAGアクセスを用いて引続きテスト
され得る。
【2104】装置が通常のオペレーションで動いている
一方、CHIPTESTがHighに保持される場合、
クロック分周器の機能性は保証されない。
【2105】セクション C.12 「アドレスマッ
プ」 C.12.1 「トップレベルアドレスマップ」 注:− 1)表273〜表281に記載するトップレベルアドレ
スマップ用のレジスタはデザインの中で使用される名前
である。それらは必ずしもデータシートに現れる名前で
なくてもよい。
【2106】2)これはフルアドレスマップであるの
で、ここにリストアップするロケーションの多くはテス
ト用のみのロケーションを含む。
【2107】
【表273】
【2108】
【表274】
【2109】
【表275】
【2110】
【表276】
【2111】
【表277】
【2112】
【表278】
【2113】
【表279】
【2114】
【表280】
【2115】
【表281】 C.12.1 「アドレス発生器キーホールスペース」 アドレス発生器キーホール表に関する注: 1)アドレス発生器キーホール内の全てのレジスタは、
それらの幅に関わらず、4バイトのアドレススペースを
取る。省略アドレス(0x00、0x04等)は常に0
を読み返す。
【2116】2)関連ブロック(dispaddrまた
はwaddrgen)のアクセスビットはこのキーホー
ルにアクセスする前に設定されなければならない。
【2117】
【表282】
【2118】
【表283】
【2119】
【表284】
【2120】
【表285】
【2121】
【表286】
【2122】
【表287】
【2123】
【表288】
【2124】
【表289】
【2125】
【表290】
【2126】
【表291】
【2127】
【表292】
【2128】
【表293】
【2129】
【表294】
【2130】
【表295】
【2131】
【表296】
【2132】
【表297】
【2133】
【表298】
【2134】
【表299】
【2135】
【表300】
【2136】
【表301】
【2137】
【表302】
【2138】
【表303】
【2139】
【表304】
【2140】
【表305】
【2141】
【表306】
【2142】
【表307】 セクション C.13 「ピクチャサイズパラメータ」 C.13.1 「序文」 以下の様式化されたコード片は、ライトアドレス発生器
からのピクチャサイズ割り込みに答えるために必要なプ
ロセシングを示す。ピクチャサイズパラメータは、HO
RIZONTAL MBSトークン、VERTICAL
MBSトークン、及び(各コンポーネントのために)
DEFINE SAMPLINGトークンを送り、その
結果としてライトアドレス発生器割り込みを生じさせる
ことにより、on−the−flyで変更できることに
注意。これらのトークンは如何なるオーダーで到着して
もよく、一般的に、いずれもがピクチャサイズパラメー
タの全ての再計算を必要とするべきである。しかしなが
ら、セットアップ時に、計算を実行する前に、全てのイ
ベントの到着を検出する方が効率的であろう。
【2143】セットアップ時に、ピクチャサイズパラメ
ータレジスタに特別なバリューを書き込むことができる
ので、トークンに答える割り込み処理に依存する必要が
ない。このため、SIFピクチャ用の適当なレジスタバ
リューも与えられる。
【2144】C.13.2 ピクチャサイズパラメータ
用の割り込み処理 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レジスタバリューを修正
することが厳密に必要であるが、これはアプリケーショ
ンの必要条件に依存することが望ましい。
【2145】C.13.3 「SIFピクチャ用のレジ
スタバリュー」 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 これらのバリューがセットアップ時にはっきりと書き込
まれることになっている場合、ほとんどのロケーション
の多重バイト特性を考慮に入れなければならないことに
注意。
【2146】上述してきた本発明のパイプラインシステ
ムは、長い間望まれてきた要求を満たし、改良されたパ
イプラインシステムは、入力と、出力と、入力と出力と
の間にある複数の処理ステージを有するパイプラインシ
ステムにおいて、複数の処理ステージはパイプラインに
沿ってトークンを伝送する2線式のインターフェースに
より相互接続され、制御トークン、データトークンはパ
イプラインの中の全ての処理ステージとインターフェー
スし、及びパイプラインの中の選択された処理ステージ
とインターフェースするユニバーサル適応ユニットの形
態であり、パイプラインの処理ステージは構成と処理に
おいて向上した柔軟性を与えられていることを特徴とす
る。本発明によれば、処理ステージは少なくとも1つの
トークンの認識に応答するように構成される。1つの処
理ステージは入力を受けてトークンを発生/変換するス
タートコード検出器である。
【2147】本発明のトークンは、ピクチャのスタート
が次のデータトークンに後くことを指示するピクチャス
タートコードトークン、個々のピクチャのエンドを指示
するピクチャエンドトークン、バッファをクリアしシス
テムをリセットするフラッシュトークン、複数のピクチ
ャ圧縮/伸長規格のうちの選択された1つに従って処理
を実施するためにシステムを調整するコーディングスタ
ンダードトークンである。さらに、本発明は、ハフマン
デコーダと、インデックス/データ(ITOD)ステー
ジと、演算論理ユニット(ALU)と、システムの直後
に続くデータバッファ手段とを具備し、データサイズが
変化するビデオピクチャのための時間間隔が制御可能で
ある、ビデオデータの復号化のためのパイプラインシス
テムに関する。本発明によれば、処理ステージは入力デ
ータストリームを受信し、特定のビットストリームパタ
ーンを認識する手段を具備し、処理ステージはランダム
アクセスとエラー回復を容易にする。さらに、本発明
は、ピクチャデータデコーディングに対して明確な終了
を達成し、ピクチャのエンドを指示し、パイプラインを
クリアするピクチャストップアフタオペレーションを行
なう手段を具備する。改良されたパイプラインシステム
は、固定サイズかつ固定幅のバッファと、バッファを通
って任意の数のビットを通過させるためにバッファをパ
ディングする手段を具備する。本発明は、さらに、ラン
レングスコードを含むデータストリームを有し、ランレ
ベルコードを1つのレベルによって後続されるゼロデー
タの1つのランまで拡張するために、トークンからのデ
ータストリームによって作動化される逆モデラ手段を具
備し、指定された数の値によって各トークンが表現され
る。さらに、本発明は逆モデラステージと、逆離散コサ
イン変換ステージと、逆モデラステージと逆離散コサイ
ン変換ステージとの間に配置され、データ処理のための
トークン表に応答する処理ステージとを具備する。
【2148】さらに、本発明は改良されたパイプライン
システムにおいて、H.261、JPEGまたはMPE
G規格いずれかのハフマンコード化条件に基づいてコー
ド化されたデータワードをデコードするハフマンデコー
ド手段を具備し、データワードは、それに基づいてデー
タワードがコード化されたハフマンコード規格を識別す
る識別子を含み、さらに、ハフマンコード化データワー
ドを受け取る手段と、受信したデータワードのハフマン
コード化をどの規格が管理したかを決定するために識別
子を読む手段と、必要に応じて、ハフマンコード化デー
タワードをH.261又はMPEGハフマンコード化済
みであると識別する識別子の読み取りに応答して、ハフ
マンコード化データワード受信手段に作動可能に接続さ
れ、指数生成手段から指数を受け取り、各JPEGハフ
マンコード化データワードと関連した指数を生成する手
段と、JPEGハフマン表情報を伝達するためにJPE
G規格に基づいて使用されたフォーマットを持つハフマ
ンコード表を含む参照用表を操作し、受信した指数に対
応してデコードされたデータワードを出力する手段とを
具備する。
【2149】本発明の多重規格ビデオ伸長装置は、パイ
プラインプロセシングマシンとして配置される2線式イ
ンターフェースにより相互接続される複数のステージを
持ち、制御トークン及びデータトークンはトークンフォ
ーマットで制御とデータの両方を運ぶために1つの2線
式インターフェースを通過する。トークンデコード回路
は、そのステージに関する制御トークンとして特定のト
ークンを認識し、パイプラインに沿って未認識の制御ト
ークンを送るために、特定のステージに配置される。再
配置プロセシング回路は選ばれたステージに配置され、
特定されたデータトークンを処理するために該かるステ
ージを再配置するための認識済み制御トークンに反応す
る。該かるシステムを実装するために、広範囲に亙る独
特なサブ支持システム回路とプロセシング技術を開示す
る。
【2150】上述したように、発明の特別な形態を図示
して説明してきたが、発明の精神及び範囲を逸脱するこ
となく、様々な修正が可能であることが自明であろう。
従って、添付クレームによる制限以外は、図示した形態
によって本発明が制限されるものではない。
【2151】
【発明の効果】以上説明したように、本発明によれば、
複数の処理ステージと、処理ステージの中で制御、デー
タ機能を実行する相互作用インターフェース制御トーク
ンの形態のユニバーサル適応ユニットを具備し、処理ス
テージが構成、処理において向上した柔軟性を与えられ
ているパイプラインシステムが提供される。
【図面の簡単な説明】
【図1】2個の内部制御信号の異なる組み合わせのため
の6段パイプラインの6サイクルを示す図。
【図2】パイプラインステージがパイプライン内の遅延
に応答して圧縮、及び伸長が出来る方法を示すために各
ステージが二次データ格納部を含むパイプラインを示す
図。
【図3】パイプラインステージがパイプライン内の遅延
に応答して圧縮、及び伸長が出来る方法を示すために各
ステージが二次データ格納部を含むパイプラインを示す
図。
【図4】2配線インターフェースと多相クロックを使用
するパイプラインの好ましい実施例のステージ間のデー
タ転送の制御を示す図。
【図5】2配線インターフェースと多相クロックを使用
するパイプラインの好ましい実施例のステージ間のデー
タ転送の制御を示す図。
【図6】2配線インターフェースと多相クロックを使用
するパイプラインの好ましい実施例のステージ間のデー
タ転送の制御を示す図。
【図7】2配線インターフェースと多相クロックを使用
するパイプラインの好ましい実施例のステージ間のデー
タ転送の制御を示す図。
【図8】2配線インターフェースが組み込まれたパイプ
ラインステージの基本的実施例及び2配線転送制御を有
する2個の連続するパイプライン処理ステージを示すブ
ロック図。
【図9】図8に示すパイプラインステージで使用される
タイミング信号と、入出力データと、内部制御信号間の
関係を示すタイミング図の一例。
【図10】図8に示すパイプラインステージで使用され
るタイミング信号と、入出力データと、内部制御信号間
の関係を示すタイミング図の一例。
【図11】拡張ビットの制御下でその状態を維持するパ
イプラインステージの一例を示すブロック図。
【図12】ステージ起動データワードを復号化するパイ
プラインステージのブロック図。
【図13】データ二重化パイプラインステージの一例で
の2配線転送制御の使用を示すブロック図。
【図14】データ二重化パイプラインステージの一例で
の2配線転送制御の使用を示すブロック図。
【図15】図13と図14に例示する実施例で使用され
る2相クロックと、2配線転送制御信号と、その他の内
部データ及び制御信号を示すタイミング図の一例。
【図16】図13と図14に例示する実施例で使用され
る2相クロックと、2配線転送制御信号と、その他の内
部データ及び制御信号を示すタイミング図の一例。
【図17】再構成可能な処理ステージのブロック図。
【図18】空間デコーダのブロック図。
【図19】時間デコーダのブロック図。
【図20】ビデオフォーマッタのブロック図。
【図21】マクロブロックの第1の構成を示すメモリマ
ップ。
【図22】マクロブロックの第2の構成を示すメモリマ
ップ。
【図23】マクロブロックの別の構成を示すメモリマッ
プ。
【図24】ありうるテーブル選択値のベン図。
【図25】本発明で使用する画像データの可変長を示す
図。
【図26】予測フィルタを含む一時的デコーダのブロッ
ク図。
【図27】予測フィルタ処理を絵で示した図。
【図28】マクロブロックの構造を示す一般的な図。
【図29】開始コード検出器の一般的なブロック図。
【図30】データストリーム内の開始コードを例示する
図。
【図31】フラグ発生器と、復号化インデックスと、ヘ
ッダ発生器と、追加ワード発生器と、出力ラッチの関係
を示すブロック図。
【図32】空間デコーダDRAMインターフェースのブ
ロック図。
【図33】書込みスイングバッファのブロック図。
【図34】処理中のブロックからの予測データオフセッ
トを示す挿絵図。
【図35】(1、1)の予測データオフセットを示す
図。
【図36】ハフマンデコーダと空間デコーダの分割状態
装置を示すブロック図。
【図37】予測フィルタのブロック図。
【図38】典型的なデコーダシステムを示す図。
【図39】JPEG静止画像デコーダを示す図。
【図40】JPEGビデオデコーダを示す図。
【図41】多重規格ビデオデコーダを示す図。
【図42】トークンの開始と終了を示す図。
【図43】トークンアドレスとデータフィールドを示す
図。
【図44】8ビットより広いインターフェース上のトー
クンを示す図。
【図45】マクロブロックを示す図。
【図46】2配線インターフェースプロトコルを示す
図。
【図47】外部2配線インターフェースの位置を示す
図。
【図48】クロック伝搬を示す図。
【図49】2配線インターフェースのタイミングを示す
図。
【図50】アクセス構造を例示する。
【図51】読出し転送サイクルを示す図。
【図52】アクセス開始タイミングを示す図。
【図53】2回の書込み転送のアクセス例を示す図。
【図54】読出し転送サイクルを示す図。
【図55】書込み転送サイクルを示す図。
【図56】リフレシュサイクルを示す図。
【図57】32ビットデータバスと256kビットの深
さを持つDRAM(9ビットアドレス)の例を示す図。
【図58】ストローブ信号用のタイミングパラメータを
示す図。
【図59】どの2個のストローブ信号間のタイミングパ
ラメータを示す図。
【図60】バスとストローブ信号間のタイミングパラメ
ータを示す図。
【図61】バスとストローブ信号間のタイミングパラメ
ータを示す図。
【図62】MPI読出しタイミングを示す図。
【図63】MPI書込みタイミングを示す図。
【図64】メモリマップの大きな整数の配置を示す図。
【図65】典型的なデコーダクロック形態を示す図。
【図66】入力クロック要件を示す図。
【図67】空間デコーダを示す図。
【図68】入力回路の入出力を示す図。
【図69】符号化ポートプロトコルを示す図。
【図70】開始コード検出器を示す図。
【図71】検出された開始コードと変換されたトークン
を示す図。
【図72】開始コード検出器がトークンを通すところを
示す図。
【図73】MPEG開始コード(バイト整列)の重なり
を示す図。
【図74】MPEG開始コード(非バイト整列)の重な
りを示す図。
【図75】2個のビデオ系列間のジャンプを示す図。
【図76】追加のトークンの挿入処理を示す図。
【図77】デコーダ起動制御を示す図。
【図78】出力前にキューされたイネーブルされたスト
リームを示す図。
【図79】空間デコーダバッファを示す図。
【図80】バッファポインタを示す図。
【図81】ビデオデマルチプレックサを示す図。
【図82】画像構造を示す図。
【図83】4:2:2マクロブロックの構造を示す図。
【図84】マクロブロックの大きさ画素の大きさから計
算する方法を示す図。
【図85】空間デコーダを示す図。
【図86】H.261逆量子化の概観を示す図。
【図87】JPEG逆量子化の概観を示す図。
【図88】MPEG逆量子化の概観を示す図。
【図89】量子化テーブルメモリマップを示す図。
【図90】JPEGベースライン系列構造の概観を示す
図。
【図91】トークンされたJPEG画像を示す図。
【図92】時間デコーダを示す図。
【図93】画像バッファ仕様を示す図。
【図94】MPEG画像系列(m=3)を示す図。
【図95】「I」画像がどのようにして格納出力される
かを示す図。
【図96】「P」画像がどのようにして格納出力される
かを示す図。
【図97】「B」画像がどのようにして格納出力される
かを示す図。
【図98】ピクチャあバッファを示す図。
【図99】H.261予測形式を示す図。
【図100】H.261系列を示す図。
【図101】H.261シンタックスの階層を示す図。
【図102】H.261画像層を示す図。
【図103】ブロック群のH.261配置を示す図。
【図104】H.261「スライス」層を示す図。
【図105】マクロブロックのH.261配置を示す
図。
【図106】H.261ブロック系列を示す図。
【図107】H.261マクロブロック層を示す図。
【図108】画素のH.261配置を示す図。
【図109】MPEGシンタックスの階層を示す図。
【図110】MPEG系列層を示す図。
【図111】MPEG群の画像層を示す図。
【図112】MPEG画像層を示す図。
【図113】MPEG「スライス」層を示す図。
【図114】MPEG系列のブロックを示す図。
【図115】MPEGマクロブロック層を示す図。
【図116】「オープンGOP」の例を示す図。
【図117】アクセス構造の例を示す図。
【図118】アクセス開始タイミングを示す図。
【図119】高速ページ読出しサイクルを示す図。
【図120】高速ページ書込みサイクルを示す図。
【図121】リフレシュサイクルを示す図。
【図122】チップアドレスからいかにして行及び列ア
ドレスを抽出するかを示す図。
【図123】ストローブ信号用のタイミングパラメータ
を示す図。
【図124】どの2個のストローブ信号間のタイミング
パラメータを示す図。
【図125】バスとストローブ信号間のタイミングパラ
メータを示す図。
【図126】バスとストローブ信号間のタイミングパラ
メータを示す図。
【図127】ハフマンデコーダとパーザーを示す図。
【図128】H.261とMPEG AC係数復号化フ
ローチャートを示す図。
【図129】JPEG(ACとDC)係数復号化のブロ
ック図。
【図130】JPEG(ACとDC)係数復号化の流れ
図を示す図。
【図131】ハフマントークンフォーマッタのインタフ
ェースを示す図。
【図132】トークンフォーマッタのブロック図。
【図133】H.261とMPEG AC係数復号化を
示す図。
【図134】ハフマンALUのインタフェースを示す
図。
【図135】ハフマンALUの基本的構造を示す図。
【図136】バッファマネージャを示す図。
【図137】imodelとhsppkのブロック図。
【図138】imex状態を示す図。
【図139】バッファスタートアップを示す図。
【図140】DRAMインターフェースを示す図。
【図141】書込みスイングバッファを示す図。
【図142】演算ブロックを示す図。
【図143】iqのブロック図。
【図144】iqcaステートマシンを示す図。
【図145】IDCT 1−D変換アルゴリズムを示す
図。
【図146】IDCT 1−D変換構造を示す図。
【図147】トークンストリームのブロック図。
【図148】標準のブロック図。
【図149】マイクロプロセッサテストアクセスを示す
ブロック図。
【図150】1−D変換マイクロ構造を示す図。
【図151】時間デコーダのブロック図。
【図152】2配線インターフェースステージの構造を
示す図。
【図153】アドレス発生器のブロック図。
【図154】ブロックと画素のオフセットを示す図。
【図155】複数の予測フィルタを示す図。
【図156】予測フィルタを示す図。
【図157】1−D予測フィルタを示す図。
【図158】1ブロックの画素を示す図。
【図159】読出しラダーの構造を示す図。
【図160】ブロックと画素のオフセットを示す図。
【図161】予測例を示す図。
【図162】読出しサイクルを示す図。
【図163】書込みしサイクルを示す図。
【図164】タイミングを参照可能なトップレベルレジ
スタ群のブロック図。
【図165】プレゼンテーション番号を増加させる制御
を示す図。
【図166】バッファマネジャステートマシーンを示す
図。
【図167】ステートマシーンのメインループを示す
図。
【図168】SIF(22×18のマクロブロック)を
含むバッファ0を示す図。
【図169】表示窓を持つSIF成分0を示す図。
【図170】格納ブロックアドレスを示す画像フォーマ
ット例を示す図。
【図171】SIF(22×18のマクロブロック)を
含むバッファ0を示す図。
【図172】アドレス計算例を示す図。
【図173】書込みアドレス発生状態を示す図。
【図174】データ路のスライスを示す図。
【図175】データ路の2サイクル操作を示す図。
【図176】モード1のフィルタ処理を示す図。
【図177】水平アップサンプラデータ路を示す図。
【図178】色ー空間変換器の構造を示す図。
【符号の説明】
33…トークンデコーダ、34…入力ラッチ、36…プ
ロセッシングユニット、39…アクション識別部、41
…出力ラッチ、43,44…レジスタ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ヘレン ローズマリー フィンチ イギリス国、ジーエル12 7エヌディー、 グローセスターシアー、ウットン・アンダ ー・エッジ、クーム、タイレイ(番地な し) (72)発明者 ウィリアム フィリップ ロビンス イギリス国、ジーエル11 5ピーイー、グ ローセスターシアー、カム、スプリングヒ ル 19 (72)発明者 ケビン ジェームズ ボイド イギリス国、ビーエス7 9ディーエル、 ブリストル、ランカシアー ロード 21 (72)発明者 マルティン ウィリアム ソザラン イギリス国、ジーエル11 6ビーディー、 グローセスターシアー、ダーズレイ、ステ ィンチコーム、ウィク レーン、ザ ライ ディングス(番地なし)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 パイプラインマシンにおいて、 ピクチャデータデコーディングに対して明確な終了を実
    現するためにピクチャアフタストップオペレーションを
    行い、ピクチャエンドを指示し、パイプラインをクリア
    する手段を具備することを特徴とするパイプラインマシ
    ン。
JP7266752A 1994-03-24 1995-09-13 スタートコード検出器 Pending JPH08228343A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB9405914A GB9405914D0 (en) 1994-03-24 1994-03-24 Video decompression
GB9405914.4 1995-02-28
GB9504019A GB2288957B (en) 1994-03-24 1995-02-28 Start code detector
GB9504019.2 1995-02-28

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP08999795A Division JP3302526B2 (ja) 1994-03-24 1995-03-24 スタートコード検出器

Publications (1)

Publication Number Publication Date
JPH08228343A true JPH08228343A (ja) 1996-09-03

Family

ID=26304579

Family Applications (16)

Application Number Title Priority Date Filing Date
JP08999795A Expired - Lifetime JP3302526B2 (ja) 1994-03-24 1995-03-24 スタートコード検出器
JP7266756A Pending JPH08228347A (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP7266751A Pending JPH08279763A (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP26675495A Expired - Lifetime JP3302538B2 (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP26675095A Expired - Lifetime JP3174996B2 (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP26675995A Expired - Lifetime JP3302540B2 (ja) 1994-03-24 1995-09-13 ビデオデータをデコードするシステム
JP7266758A Pending JPH08116261A (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP7266752A Pending JPH08228343A (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP26674895A Expired - Lifetime JP3302537B2 (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP7266749A Pending JPH08322045A (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP26675595A Expired - Lifetime JP3302539B2 (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP7266753A Pending JPH08228344A (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP26676095A Expired - Lifetime JP3170744B2 (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP2001226899A Pending JP2002135778A (ja) 1994-03-24 2001-07-27 デコーダ及びビデオパーザ
JP2001226947A Pending JP2002142219A (ja) 1994-03-24 2001-07-27 ビデオデータを処理する方法及びその装置
JP2002129754A Pending JP2003078914A (ja) 1994-03-24 2002-05-01 ハフマン復号器及び復号方法

Family Applications Before (7)

Application Number Title Priority Date Filing Date
JP08999795A Expired - Lifetime JP3302526B2 (ja) 1994-03-24 1995-03-24 スタートコード検出器
JP7266756A Pending JPH08228347A (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP7266751A Pending JPH08279763A (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP26675495A Expired - Lifetime JP3302538B2 (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP26675095A Expired - Lifetime JP3174996B2 (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP26675995A Expired - Lifetime JP3302540B2 (ja) 1994-03-24 1995-09-13 ビデオデータをデコードするシステム
JP7266758A Pending JPH08116261A (ja) 1994-03-24 1995-09-13 スタートコード検出器

Family Applications After (8)

Application Number Title Priority Date Filing Date
JP26674895A Expired - Lifetime JP3302537B2 (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP7266749A Pending JPH08322045A (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP26675595A Expired - Lifetime JP3302539B2 (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP7266753A Pending JPH08228344A (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP26676095A Expired - Lifetime JP3170744B2 (ja) 1994-03-24 1995-09-13 スタートコード検出器
JP2001226899A Pending JP2002135778A (ja) 1994-03-24 2001-07-27 デコーダ及びビデオパーザ
JP2001226947A Pending JP2002142219A (ja) 1994-03-24 2001-07-27 ビデオデータを処理する方法及びその装置
JP2002129754A Pending JP2003078914A (ja) 1994-03-24 2002-05-01 ハフマン復号器及び復号方法

Country Status (5)

Country Link
JP (16) JP3302526B2 (ja)
KR (1) KR950033895A (ja)
CN (1) CN1174315C (ja)
CA (13) CA2145159A1 (ja)
GB (1) GB2288957B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE48845E1 (en) 2002-04-01 2021-12-07 Broadcom Corporation Video decoding system supporting multiple standards

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4143907B2 (ja) 2002-09-30 2008-09-03 ソニー株式会社 情報処理装置および方法、並びにプログラム
CN100382565C (zh) * 2002-12-04 2008-04-16 Nxp股份有限公司 选择基于位流格式探测的特殊解码器的方法和设备
CN1717939A (zh) * 2003-02-19 2006-01-04 松下电器产业株式会社 图像解码装置、图像编码装置及其方法
US7760949B2 (en) 2007-02-08 2010-07-20 Sharp Laboratories Of America, Inc. Methods and systems for coding multiple dynamic range images
US8139601B2 (en) * 2007-07-06 2012-03-20 Xmos Limited Token protocol
PL2518963T3 (pl) 2007-09-18 2015-10-30 Lg Electronics Inc Sposób i układ do nadawania i odbierania sygnałów
BR112014008734B1 (pt) 2011-10-11 2021-11-30 Telefonaktiebolaget Lm Ericsson (Publ) Método para detectar uma mudança de cena em um vídeo transmitido em fluxo contínuo, meio legível por computador não transitório e aparelho relacionados
CN106297631B (zh) * 2016-08-30 2019-06-04 南京巨鲨显示科技有限公司 一种具有曲线数据纠错功能的显示器及其纠错方法
US9666307B1 (en) * 2016-09-14 2017-05-30 Micron Technology, Inc. Apparatuses and methods for flexible fuse transmission
CN109491640B (zh) * 2019-01-22 2023-08-01 上海艾为电子技术股份有限公司 一种温度检测装置及温度检测方法
CN110350922A (zh) * 2019-07-18 2019-10-18 南京风兴科技有限公司 一种二进制编码的寻址方法及寻址器
CN111208867B (zh) * 2019-12-27 2021-08-24 芯创智(北京)微电子有限公司 一种基于ddr读数据整数时钟周期的同步电路及同步方法
CN111312309B (zh) * 2020-01-10 2023-05-02 电子科技大学 一种提升铁电存储器读写次数的电路结构
CN111722581B (zh) * 2020-05-28 2021-10-22 国电南瑞科技股份有限公司 提高plc控制器与上位机通讯传输和数据处理效率的方法
CN113095015A (zh) * 2021-05-08 2021-07-09 中国科学院上海微系统与信息技术研究所 Sfq时序电路综合计算方法、系统以及终端

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6046585B2 (ja) * 1979-03-06 1985-10-16 株式会社リコー シリアル・デ−タ伝送方式
DE69229338T2 (de) * 1992-06-30 1999-12-16 Discovision Ass Datenpipelinesystem
US5325092A (en) * 1992-07-07 1994-06-28 Ricoh Company, Ltd. Huffman decoder architecture for high speed operation and reduced memory
US5351047A (en) * 1992-09-21 1994-09-27 Laboratory Automation, Inc. Data decoding method and apparatus
US5699460A (en) * 1993-04-27 1997-12-16 Array Microsystems Image compression coprocessor with data flow control and multiple processing units

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE48845E1 (en) 2002-04-01 2021-12-07 Broadcom Corporation Video decoding system supporting multiple standards

Also Published As

Publication number Publication date
JPH08237654A (ja) 1996-09-13
JPH08228345A (ja) 1996-09-03
JPH08322045A (ja) 1996-12-03
JP3302540B2 (ja) 2002-07-15
CA2145427A1 (en) 1995-09-25
JPH08228347A (ja) 1996-09-03
JPH08316838A (ja) 1996-11-29
CA2145159A1 (en) 1995-09-25
JPH0870452A (ja) 1996-03-12
GB2288957A (en) 1995-11-01
CA2145158A1 (en) 1995-09-25
CA2145224A1 (en) 1995-09-25
JP2002142219A (ja) 2002-05-17
JPH08116261A (ja) 1996-05-07
CA2145222A1 (en) 1995-09-25
JP3302537B2 (ja) 2002-07-15
CA2145156A1 (en) 1995-09-25
JP3302539B2 (ja) 2002-07-15
JP3174996B2 (ja) 2001-06-11
JP2003078914A (ja) 2003-03-14
JPH08322044A (ja) 1996-12-03
CA2145223C (en) 1999-10-05
CA2145221A1 (en) 1995-09-25
CA2145424A1 (en) 1995-09-25
CA2145225A1 (en) 1995-09-25
JP3302538B2 (ja) 2002-07-15
CA2145157A1 (en) 1995-09-25
JPH08228348A (ja) 1996-09-03
CA2145425A1 (en) 1995-09-25
JPH08228346A (ja) 1996-09-03
CN1174315C (zh) 2004-11-03
GB9504019D0 (en) 1995-04-19
CA2145223A1 (en) 1995-09-25
CA2145222C (en) 2002-09-10
KR950033895A (ko) 1995-12-26
JPH08279763A (ja) 1996-10-22
JPH08228344A (ja) 1996-09-03
JP3302526B2 (ja) 2002-07-15
CN1133534A (zh) 1996-10-16
CA2145425C (en) 2002-10-01
JP2002135778A (ja) 2002-05-10
CA2145220A1 (en) 1995-09-25
JP3170744B2 (ja) 2001-05-28
GB2288957B (en) 1998-09-23

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
JP3170744B2 (ja) スタートコード検出器
JP3423942B2 (ja) データ処理システム