JPH06326615A - 可変長コードのコードストリームをデコードする方法及び装置 - Google Patents
可変長コードのコードストリームをデコードする方法及び装置Info
- Publication number
- JPH06326615A JPH06326615A JP5151595A JP15159593A JPH06326615A JP H06326615 A JPH06326615 A JP H06326615A JP 5151595 A JP5151595 A JP 5151595A JP 15159593 A JP15159593 A JP 15159593A JP H06326615 A JPH06326615 A JP H06326615A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- memory
- word
- variable length
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a secondary processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a secondary processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
- G06F9/3895—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
- H03M7/425—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory for the decoding process only
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/439—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using cascaded computational arrangements for performing a single operation, e.g. filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/63—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4435—Memory management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/44—Receiver circuitry for the reception of television signals according to analogue transmission standards
- H04N5/60—Receiver circuitry for the reception of television signals according to analogue transmission standards for the sound signals
- H04N5/602—Receiver circuitry for the reception of television signals according to analogue transmission standards for the sound signals for digital sound signals
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/005—Correction of errors induced by the transmission channel, if related to the coding algorithm
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/14—Picture signal circuitry for video frequency region
- H04N5/21—Circuitry for suppressing or minimising disturbance, e.g. moiré or halo
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Acoustics & Sound (AREA)
- Algebra (AREA)
- Human Computer Interaction (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Discrete Mathematics (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Television Signal Processing For Recording (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
(57)【要約】
【目的】 ビデオ信号のリアルタイムの復元をおこな
い、かつ現在の計算機または集積回路技術を用いた経済
的な実施を可能にするべく設計さた復元プロセッサを提
供することを目的とする。 【構成】 命令を受け取り、かつ命令を特定し、そし
て特定された命令に基づいて、アドレスの第1フィール
ドを提供する手段と、コードストリームの始まりのトラ
ックを保持するポインタを提供する手段と、アドレスの
第2フィールドとして用いるために、コードストリーム
の始まりから、予め決められた個数のビットを抽出する
手段と、制御情報を記憶するための複数のワードと、各
可変長コードのためのデコードされた値とを提供するメ
モリシステムと、第3フィールドとコードストリームか
らの予め決められたビットの個数とを用いて、次のアド
レスを形成し、メモリシステムへの次のアクセスを起こ
すための手段とを有する。
い、かつ現在の計算機または集積回路技術を用いた経済
的な実施を可能にするべく設計さた復元プロセッサを提
供することを目的とする。 【構成】 命令を受け取り、かつ命令を特定し、そし
て特定された命令に基づいて、アドレスの第1フィール
ドを提供する手段と、コードストリームの始まりのトラ
ックを保持するポインタを提供する手段と、アドレスの
第2フィールドとして用いるために、コードストリーム
の始まりから、予め決められた個数のビットを抽出する
手段と、制御情報を記憶するための複数のワードと、各
可変長コードのためのデコードされた値とを提供するメ
モリシステムと、第3フィールドとコードストリームか
らの予め決められたビットの個数とを用いて、次のアド
レスを形成し、メモリシステムへの次のアクセスを起こ
すための手段とを有する。
Description
【0001】
【産業上の利用分野】本発明は、デジタル信号処理に関
し、特にビデオ信号の復元(decompression)に関す
る。
し、特にビデオ信号の復元(decompression)に関す
る。
【0002】
【従来の技術】連続的な動きの錯覚を生み出すために、
映画では、1秒当たり30コマが提供される。各画像
は、数千の画素から作られているので、短いシーンを記
憶するために必要なメモリの数でさえも、莫大なものに
なる。より高い鮮明度の映像が要求されるとき、各画像
の画素数もまた増加することが期待される。幸いにも、
人間の視覚系の特性を利用することによって、損失のあ
る圧縮技術が、知覚された画質を損なうことなしに、非
常に高濃度のデータ圧縮を獲得するべく発達してきた。
(損失のある圧縮技術は、目標の画質を得るためには重
要でない情報を捨てることを伴う。)それにもかかわら
ず、復元プロセッサは、リアルタイムで、記憶されたシ
ーンの各画素を再構成することが要求される。
映画では、1秒当たり30コマが提供される。各画像
は、数千の画素から作られているので、短いシーンを記
憶するために必要なメモリの数でさえも、莫大なものに
なる。より高い鮮明度の映像が要求されるとき、各画像
の画素数もまた増加することが期待される。幸いにも、
人間の視覚系の特性を利用することによって、損失のあ
る圧縮技術が、知覚された画質を損なうことなしに、非
常に高濃度のデータ圧縮を獲得するべく発達してきた。
(損失のある圧縮技術は、目標の画質を得るためには重
要でない情報を捨てることを伴う。)それにもかかわら
ず、復元プロセッサは、リアルタイムで、記憶されたシ
ーンの各画素を再構成することが要求される。
【0003】モーションピクチャーエクスパートグルー
プ(MPEG)は、圧縮装置と復元装置との間の適合性
を得るための規格(以下では、“MPEG規格”と呼
ぶ)を提供した。この規格は、記憶媒体のためのビデオ
信号のデコードされたデジタル表現とデコードの方法と
の両方を明記している。その表現は、カラー映画のその
他の上映方法やスチール写真の複写と同様に、正規の速
度の再生を支持する。その規格は、一般的な525本及
び625本のラインのテレビ、パーソナルコンピュータ
及びワークステーションのディスプレイのフォーマット
を包含する。MPEG規格は、コンパクトディスク、デ
ジタルオーディオテープ、及び磁気ハードディスクのよ
うな、1秒当たり1.5メガビットの連続的な転送速度
を支持する装置を目的としている。MPEG規格は、2
4Hzから30Hzの間の周波数での略288×352
画素の映像フレームを支持することを目的としている。
国際標準化機構(ISO)による刊行物“Coding for M
oving Pictures and Associated Audio--for digital s
torage media at up to about 1.5Mbit/s,”は、草案の
形で提案されたMPEG規格を提供している。MPEG
規格に関する詳細な情報を提供するために、この刊行物
は、ここで言及したことによって本出願の一部とされた
い。
プ(MPEG)は、圧縮装置と復元装置との間の適合性
を得るための規格(以下では、“MPEG規格”と呼
ぶ)を提供した。この規格は、記憶媒体のためのビデオ
信号のデコードされたデジタル表現とデコードの方法と
の両方を明記している。その表現は、カラー映画のその
他の上映方法やスチール写真の複写と同様に、正規の速
度の再生を支持する。その規格は、一般的な525本及
び625本のラインのテレビ、パーソナルコンピュータ
及びワークステーションのディスプレイのフォーマット
を包含する。MPEG規格は、コンパクトディスク、デ
ジタルオーディオテープ、及び磁気ハードディスクのよ
うな、1秒当たり1.5メガビットの連続的な転送速度
を支持する装置を目的としている。MPEG規格は、2
4Hzから30Hzの間の周波数での略288×352
画素の映像フレームを支持することを目的としている。
国際標準化機構(ISO)による刊行物“Coding for M
oving Pictures and Associated Audio--for digital s
torage media at up to about 1.5Mbit/s,”は、草案の
形で提案されたMPEG規格を提供している。MPEG
規格に関する詳細な情報を提供するために、この刊行物
は、ここで言及したことによって本出願の一部とされた
い。
【0004】MPEG規格では、映像フレームは、一連
の“マクロブロックスライス”(MBS)に分割され、
各MBSは、各々が16×16画素の領域を包含する
(マクロブロックと呼ばれる)複数の画像領域を含んで
いる。これらの画像領域の各々は、その要素が空間的な
輝度の値及び色光度の値からなる1個または複数の8×
8マトリクスによって表現される。マクロブロックのあ
る表現(4:2:0)では、輝度の値(Yタイプ)は、
16×16画素の画像領域内(4個の8×8Yマトリク
ス内)の各画素のために提供され、各々が同一の16×
16画像領域を包含するU及びVタイプの色光度(即
ち、青及び赤の色光度)が、8×8“U”マトリクス及
び8×8“V”マトリクスに提供される。即ち、各8×
8“U”マトリクスまたは8×8“V”マトリクスが、
16×16画素の領域を包含する。他の表現(4:2:
2)では、輝度の値は、16×16画素の画像領域内の
各画素に提供され、U及びVタイプの各々に対する2個
の8×8マトリクスが、16×16画素の画像領域の色
光度を表現するべく提供される。
の“マクロブロックスライス”(MBS)に分割され、
各MBSは、各々が16×16画素の領域を包含する
(マクロブロックと呼ばれる)複数の画像領域を含んで
いる。これらの画像領域の各々は、その要素が空間的な
輝度の値及び色光度の値からなる1個または複数の8×
8マトリクスによって表現される。マクロブロックのあ
る表現(4:2:0)では、輝度の値(Yタイプ)は、
16×16画素の画像領域内(4個の8×8Yマトリク
ス内)の各画素のために提供され、各々が同一の16×
16画像領域を包含するU及びVタイプの色光度(即
ち、青及び赤の色光度)が、8×8“U”マトリクス及
び8×8“V”マトリクスに提供される。即ち、各8×
8“U”マトリクスまたは8×8“V”マトリクスが、
16×16画素の領域を包含する。他の表現(4:2:
2)では、輝度の値は、16×16画素の画像領域内の
各画素に提供され、U及びVタイプの各々に対する2個
の8×8マトリクスが、16×16画素の画像領域の色
光度を表現するべく提供される。
【0005】MPEG規格は、図1に示された圧縮及び
復元のモデルを採用している。図1に示すように、最初
に(ブロック101で表現された)フレーム間の冗長性
が、カラー映画のコマから除去される。フレーム間の冗
長性を除去するには、各フレームが、デコードのため
に、“内部の(intra)”、“予測された(predicte
d)、及び“内捜された(interpolated)”の内の何れ
かの名前を与えられる。内部のフレームは最も少なく提
供され、予測されたフレームは内部のフレームよりも多
く提供され、そして残りの全てのフレームが内捜された
フレームである。内部のフレーム(“Iピクチャー”)
内の圧縮されたビデオデータは、内部のフレーム内の画
素のみから計算される。予測されたフレーム(“Pピク
チャー”)内では、最新のIピクチャーまたはPピクチ
ャーからの画素の値の増加だけがデコードされる。内捜
されたフレーム(“Pピクチャー”)内では、最初のフ
レームとの最後のフレームの両方に関して、画素の値が
デコードされる。フレームを増加したときだけデコード
し、予測されたフレーム及び内捜されたフレームを用い
ることによって、多くのフレーム間の冗長性が除去さ
れ、メモリを大量に節約することができる。全体のマク
ロブロックの動作は、画素レベルではなく、動作ベクト
ルによってデコードされ、それによって更なるデータ圧
縮が提供される。
復元のモデルを採用している。図1に示すように、最初
に(ブロック101で表現された)フレーム間の冗長性
が、カラー映画のコマから除去される。フレーム間の冗
長性を除去するには、各フレームが、デコードのため
に、“内部の(intra)”、“予測された(predicte
d)、及び“内捜された(interpolated)”の内の何れ
かの名前を与えられる。内部のフレームは最も少なく提
供され、予測されたフレームは内部のフレームよりも多
く提供され、そして残りの全てのフレームが内捜された
フレームである。内部のフレーム(“Iピクチャー”)
内の圧縮されたビデオデータは、内部のフレーム内の画
素のみから計算される。予測されたフレーム(“Pピク
チャー”)内では、最新のIピクチャーまたはPピクチ
ャーからの画素の値の増加だけがデコードされる。内捜
されたフレーム(“Pピクチャー”)内では、最初のフ
レームとの最後のフレームの両方に関して、画素の値が
デコードされる。フレームを増加したときだけデコード
し、予測されたフレーム及び内捜されたフレームを用い
ることによって、多くのフレーム間の冗長性が除去さ
れ、メモリを大量に節約することができる。全体のマク
ロブロックの動作は、画素レベルではなく、動作ベクト
ルによってデコードされ、それによって更なるデータ圧
縮が提供される。
【0006】MPEG規格のもとでの圧縮のステップ
は、内部フレームの冗長性を除去する。図1のブロック
102で表される第1ステップでは、二次元の離散コサ
イン変換が、空間的な輝度の値及び色光度の値を周波数
領域に写すために、8×8数値マトリクスの各々で実行
される。
は、内部フレームの冗長性を除去する。図1のブロック
102で表される第1ステップでは、二次元の離散コサ
イン変換が、空間的な輝度の値及び色光度の値を周波数
領域に写すために、8×8数値マトリクスの各々で実行
される。
【0007】図1のブロック103で表される次のステ
ップでは、“量子化”と呼ばれる過程が、8×8マトリ
クスの各要素の輝度または色光度、及び周波数に基づい
て各要素に重み付けをする。量子化の重み付けは、人間
の目が感知できない高周波成分を0に減少させることを
目的としている。8×8行列内に多くの0要素を生み出
すことにより、各マトリクスは、情報の損失なしに、
“DC”値、及び0でない“AC”値と、それに続く0
の値の長さとの交互の一対の順序リストとして表現され
る。順序リストは、マトリクスがジクザク型に読まれる
(即ち、マトリクスAの要素が、A(0,0)、A
(0,1)、A(1,0)、A(0,2)、A(1,
1)、A(2,0)、という順序で読まれる)べく、マ
トリクスの要素が存在するように順序づけられている。
この表現は、0の要素を個々に表現していないので、空
間を節約する。
ップでは、“量子化”と呼ばれる過程が、8×8マトリ
クスの各要素の輝度または色光度、及び周波数に基づい
て各要素に重み付けをする。量子化の重み付けは、人間
の目が感知できない高周波成分を0に減少させることを
目的としている。8×8行列内に多くの0要素を生み出
すことにより、各マトリクスは、情報の損失なしに、
“DC”値、及び0でない“AC”値と、それに続く0
の値の長さとの交互の一対の順序リストとして表現され
る。順序リストは、マトリクスがジクザク型に読まれる
(即ち、マトリクスAの要素が、A(0,0)、A
(0,1)、A(1,0)、A(0,2)、A(1,
1)、A(2,0)、という順序で読まれる)べく、マ
トリクスの要素が存在するように順序づけられている。
この表現は、0の要素を個々に表現していないので、空
間を節約する。
【0008】最後に、図1のブロック104で表された
エントロピーデコード方式が、可変長コードによって、
更に、DCブロック係数と、非0のAC値と0の要素の
長さとの交互の一対を圧縮するために用いられる。エン
トロピーデコードでは、より頻繁に発生するシンボルほ
ど、より短い符号によって表現される。従って、メモリ
空間が更に節約される。
エントロピーデコード方式が、可変長コードによって、
更に、DCブロック係数と、非0のAC値と0の要素の
長さとの交互の一対を圧縮するために用いられる。エン
トロピーデコードでは、より頻繁に発生するシンボルほ
ど、より短い符号によって表現される。従って、メモリ
空間が更に節約される。
【0009】MPEGでの復元が、図1のブロック10
5〜108によって表されている。復元では、エントロ
ピーデコード、量子化及びDCTの過程が、ブロック1
05〜107に各々表されたように、入力と出力が逆に
される。“実際の画素の発生”と呼ばれる最後のステッ
プ(ブロック108)は、プレイモード(順方向、逆方
向、スローモーション等)、及び使用されているディス
プレイの寸法及び特質に基づいて、再生のための実際の
画素を提供する。
5〜108によって表されている。復元では、エントロ
ピーデコード、量子化及びDCTの過程が、ブロック1
05〜107に各々表されたように、入力と出力が逆に
される。“実際の画素の発生”と呼ばれる最後のステッ
プ(ブロック108)は、プレイモード(順方向、逆方
向、スローモーション等)、及び使用されているディス
プレイの寸法及び特質に基づいて、再生のための実際の
画素を提供する。
【0010】更に、MPEG規格は、インターレースさ
れていないビデオ信号のためだけに提供されているの
で、従来のNTSCテレビまたはPALテレビに出力映
像を表示するために、復元器(decompressor)は、従来
のインターレースされたフィールド内の出力ビデオ信号
を提供しなければならない。インターレースされたビデ
オ信号の復元のためのガイドラインは、MPEG規格の
拡張部分として提案されている。この拡張された規格
は、国際ラジオ諮問委員会(CCIR)の勧告601
(CCIR/601)と両立する。
れていないビデオ信号のためだけに提供されているの
で、従来のNTSCテレビまたはPALテレビに出力映
像を表示するために、復元器(decompressor)は、従来
のインターレースされたフィールド内の出力ビデオ信号
を提供しなければならない。インターレースされたビデ
オ信号の復元のためのガイドラインは、MPEG規格の
拡張部分として提案されている。この拡張された規格
は、国際ラジオ諮問委員会(CCIR)の勧告601
(CCIR/601)と両立する。
【0011】上述されたMPEG規格に対して例示され
た圧縮及び復元に含まれるステップは、計算機にとって
非常に集約的なので、そのような圧縮方式が実際にかつ
広く受け入れられるためには、復元プロセッサは、リア
ルタイムの復元を提供し、かつ現在の計算機または集積
回路技術を用いた経済的な実施を可能にするべく設計さ
れなければならない。
た圧縮及び復元に含まれるステップは、計算機にとって
非常に集約的なので、そのような圧縮方式が実際にかつ
広く受け入れられるためには、復元プロセッサは、リア
ルタイムの復元を提供し、かつ現在の計算機または集積
回路技術を用いた経済的な実施を可能にするべく設計さ
れなければならない。
【0012】
【発明が解決しようとする課題】本発明の目的は、ビデ
オ信号のリアルタイムの復元をおこない、かつ現在の計
算機または集積回路技術を用いた経済的な実施を可能に
するべく設計さた復元プロセッサを提供することであ
る。
オ信号のリアルタイムの復元をおこない、かつ現在の計
算機または集積回路技術を用いた経済的な実施を可能に
するべく設計さた復元プロセッサを提供することであ
る。
【0013】
【課題を解決するための手段】上述した目的は、中央処
理装置からの命令に基づいて、可変長コードのコードス
トリームをデコードする装置であって、前記命令を受け
取り、かつ前記命令を特定し、そして前記特定された命
令に基づいて、アドレスの第1フィールドを提供する手
段と、前記コードストリームの始まりのトラックを保持
するポインタを提供する手段と、前記アドレスの第2フ
ィールドとして用いるために、前記コードストリームの
前記始まりから、予め決められた個数のビットを抽出す
る手段と、
理装置からの命令に基づいて、可変長コードのコードス
トリームをデコードする装置であって、前記命令を受け
取り、かつ前記命令を特定し、そして前記特定された命
令に基づいて、アドレスの第1フィールドを提供する手
段と、前記コードストリームの始まりのトラックを保持
するポインタを提供する手段と、前記アドレスの第2フ
ィールドとして用いるために、前記コードストリームの
前記始まりから、予め決められた個数のビットを抽出す
る手段と、
【0014】制御情報を記憶するための複数のワード
と、前記各可変長コードのためのデコードされた値とを
提供するメモリシステムであって、前記メモリシステム
の各ワードが、(1)前記命令の実行を完了するため
に、前記メモリシステムへの次のアクセスが要求されて
いるかどうかということと、(2)前記ポインタを進め
るためのビットの個数とを表示し、前記ワードが、前記
次のアクセスが必要なことを表示するとき、前記ワード
は更に、次のアドレスを生み出すための用いられる第3
フィールドを提供し、前記ワードが、前記次のアクセス
が必要でないことを表示するとき、前記ワードは更に、
前記デコードされた値を提供する、メモリシステムと、
前記第3フィールドと前記コードストリームからの前記
予め決められたビットの個数とを用いて、前記次のアド
レスを形成し、そして前記メモリシステムへの前記次の
アクセスを起こすための手段とを有することを特徴とす
るデコードする装置と、中央処理方法からの命令に基づ
いて、可変長コードのコードストリームをデコードする
方法であって、前記命令を受け取り、かつ前記命令を特
定し、そして前記特定された命令に基づいて、アドレス
の第1フィールドを提供する過程と、前記コードストリ
ームの始まりのトラックを保持するポインタを提供する
過程と、前記アドレスの第2フィールドとして用いるた
めに、前記コードストリームの前記始まりから、予め決
められた個数のビットを抽出する過程と、制御情報を記
憶するための複数のワードと、前記各可変長コードのた
めのデコードされた値とを有するメモリシステムを提供
する過程であって、前記メモリシステムの各ワードが、
(1)前記命令の実行を完了するために、前記メモリシ
ステムへの次のアクセスが要求されているかどうかとい
うことと、(2)前記ポインタを進めるためのビットの
個数とを表示し、前記ワードが、前記次のアクセスが必
要なことを表示するとき、前記ワードは更に、次のアド
レスを生み出すための用いられる第3フィールドを提供
し、前記ワードが、前記次のアクセスが必要でないこと
を表示するとき、前記ワードは更に、前記デコードされ
た値を提供する、メモリシステムを提供する過程と、前
記第3フィールドと前記コードストリームからの前記予
め決められたビットの個数とを用いて、前記次のアドレ
スを形成し、そして前記アドレスの前記ワードが前記命
令の実行が完了したことを表示するまで、前記メモリシ
ステムへの前記次のアクセスを起こすための過程とを有
することを特徴とするデコードする方法とを提供するこ
とによって達成される。
と、前記各可変長コードのためのデコードされた値とを
提供するメモリシステムであって、前記メモリシステム
の各ワードが、(1)前記命令の実行を完了するため
に、前記メモリシステムへの次のアクセスが要求されて
いるかどうかということと、(2)前記ポインタを進め
るためのビットの個数とを表示し、前記ワードが、前記
次のアクセスが必要なことを表示するとき、前記ワード
は更に、次のアドレスを生み出すための用いられる第3
フィールドを提供し、前記ワードが、前記次のアクセス
が必要でないことを表示するとき、前記ワードは更に、
前記デコードされた値を提供する、メモリシステムと、
前記第3フィールドと前記コードストリームからの前記
予め決められたビットの個数とを用いて、前記次のアド
レスを形成し、そして前記メモリシステムへの前記次の
アクセスを起こすための手段とを有することを特徴とす
るデコードする装置と、中央処理方法からの命令に基づ
いて、可変長コードのコードストリームをデコードする
方法であって、前記命令を受け取り、かつ前記命令を特
定し、そして前記特定された命令に基づいて、アドレス
の第1フィールドを提供する過程と、前記コードストリ
ームの始まりのトラックを保持するポインタを提供する
過程と、前記アドレスの第2フィールドとして用いるた
めに、前記コードストリームの前記始まりから、予め決
められた個数のビットを抽出する過程と、制御情報を記
憶するための複数のワードと、前記各可変長コードのた
めのデコードされた値とを有するメモリシステムを提供
する過程であって、前記メモリシステムの各ワードが、
(1)前記命令の実行を完了するために、前記メモリシ
ステムへの次のアクセスが要求されているかどうかとい
うことと、(2)前記ポインタを進めるためのビットの
個数とを表示し、前記ワードが、前記次のアクセスが必
要なことを表示するとき、前記ワードは更に、次のアド
レスを生み出すための用いられる第3フィールドを提供
し、前記ワードが、前記次のアクセスが必要でないこと
を表示するとき、前記ワードは更に、前記デコードされ
た値を提供する、メモリシステムを提供する過程と、前
記第3フィールドと前記コードストリームからの前記予
め決められたビットの個数とを用いて、前記次のアドレ
スを形成し、そして前記アドレスの前記ワードが前記命
令の実行が完了したことを表示するまで、前記メモリシ
ステムへの前記次のアクセスを起こすための過程とを有
することを特徴とするデコードする方法とを提供するこ
とによって達成される。
【0015】
【作用】本発明に基づけば、可変長コードとしてエンコ
ードされた、圧縮された離散コサイン変換(DCT)係
数のデコーディングを提供する装置及び方法が提供され
る。
ードされた、圧縮された離散コサイン変換(DCT)係
数のデコーディングを提供する装置及び方法が提供され
る。
【0016】第1実施例では、前記装置は、グローバル
バスを通しての通信を行う複数のコプロセッサユニット
を制御するマイクロ中央処理装置を有する。コプロセッ
サユニットは、(1)可変長コードのストリームを受け
取るためのホストバスインタフェースと、(2)受け取
られた可変長コードのストリームを記憶し、検索するた
めの外部ランダムアクセスメモリを制御するためのメモ
リコントローラと、(3)圧縮された可変長コードをD
CT係数に変換するための復元器及び検出器と、(4)
DCT係数を画素の数値に変換するための、逆離散コサ
イン変換プロセッサと、(5)画素の値を再サンプル
し、かつひと続きの画面の基準(内部)フレーム内の情
報に基づいた、デコードされたひと続きの画面を再構成
するための画素フィルタ及び動作補償装置とを有する。
バスを通しての通信を行う複数のコプロセッサユニット
を制御するマイクロ中央処理装置を有する。コプロセッ
サユニットは、(1)可変長コードのストリームを受け
取るためのホストバスインタフェースと、(2)受け取
られた可変長コードのストリームを記憶し、検索するた
めの外部ランダムアクセスメモリを制御するためのメモ
リコントローラと、(3)圧縮された可変長コードをD
CT係数に変換するための復元器及び検出器と、(4)
DCT係数を画素の数値に変換するための、逆離散コサ
イン変換プロセッサと、(5)画素の値を再サンプル
し、かつひと続きの画面の基準(内部)フレーム内の情
報に基づいた、デコードされたひと続きの画面を再構成
するための画素フィルタ及び動作補償装置とを有する。
【0017】本発明の他の技術的視点に基づけば、量子
化機能及び逆コサイン変換機能は、中央処理装置内の特
別な目的のハードウェアによって実行される。更に、逆
コサイン変換機能は、(1)第3データよりも小さい、
第1データと第2データの和に等しい結果を計算するた
めに、第1、第2、及び第3データをオペランドとして
受け取る第1ステージと、(2)第1ステージから結果
を受け取り、第4データと第1ステージからの結果との
和及び差の両方を計算する第2ステージとを有する構造
によって実行される。ある実施例では、第1、第2及び
第3データがレジスタファイルから得られ、中央処理装
置が、第1ステージからの結果がレジスタファイルへ戻
らないように(バイパスしないように)指図するとき以
外は、第1ステージ及び第2ステージの結果がレジスタ
ファイルに戻される。
化機能及び逆コサイン変換機能は、中央処理装置内の特
別な目的のハードウェアによって実行される。更に、逆
コサイン変換機能は、(1)第3データよりも小さい、
第1データと第2データの和に等しい結果を計算するた
めに、第1、第2、及び第3データをオペランドとして
受け取る第1ステージと、(2)第1ステージから結果
を受け取り、第4データと第1ステージからの結果との
和及び差の両方を計算する第2ステージとを有する構造
によって実行される。ある実施例では、第1、第2及び
第3データがレジスタファイルから得られ、中央処理装
置が、第1ステージからの結果がレジスタファイルへ戻
らないように(バイパスしないように)指図するとき以
外は、第1ステージ及び第2ステージの結果がレジスタ
ファイルに戻される。
【0018】本発明の他の技術的視点に基づけば、メモ
リシステムを制御し、かつ複数のコプロセッサユニット
に役立つメモリコントローラは、各コプロセッサユニッ
トに対して、ファーストインファーストアウト(FIF
O)メモリを配置し、関連するコプロセッサユニットへ
のメモリアクセスリクエストを別々の待ち行列に入れ
る。メモリコントローラ内の優先順位回路は、予め決め
られた優先順位方式のもとで、待ち行列内の最も高い優
先順位を有するメモリリクエストに対してメモリがアク
セスすることを許容する。メモリシステムへの複数のア
クセスを要求するメモリアクセスリクエストに対して
は、その複数のアクセスが完了する前に、メモリコント
ローラにより高い優先順位のメモリアクセスリクエスト
が到達した場合、その複数のメモリアクセスリクエスト
は、より高い優先順位のメモリアクセスリクエストに先
んじられる。
リシステムを制御し、かつ複数のコプロセッサユニット
に役立つメモリコントローラは、各コプロセッサユニッ
トに対して、ファーストインファーストアウト(FIF
O)メモリを配置し、関連するコプロセッサユニットへ
のメモリアクセスリクエストを別々の待ち行列に入れ
る。メモリコントローラ内の優先順位回路は、予め決め
られた優先順位方式のもとで、待ち行列内の最も高い優
先順位を有するメモリリクエストに対してメモリがアク
セスすることを許容する。メモリシステムへの複数のア
クセスを要求するメモリアクセスリクエストに対して
は、その複数のアクセスが完了する前に、メモリコント
ローラにより高い優先順位のメモリアクセスリクエスト
が到達した場合、その複数のメモリアクセスリクエスト
は、より高い優先順位のメモリアクセスリクエストに先
んじられる。
【0019】本発明の他の技術的視点に基づけば、復元
器及びデコーダによる可変長コードのデコーディング
は、可変長コードのデコードされた値をも記憶する、読
み出し専用メモリのような制御メモリシステム内のアク
セスされたメモリワードの内容によって制御される。最
初に、復元器及びデコーダは、コードストリームからの
予め決められたビット数及び中央処理装置から受け取ら
れた命令に基づく予め決められたビットパターンによっ
て形成されたアドレスを用いて、制御メモリシステムを
アクセスする。次に、制御メモリシステム内のアクセス
されたワードは、更なるメモリアクセスが要求されてい
るかどうかを決定するために用いられる。即ち、アクセ
スされたワードは、可変長コードのデコードされた値ま
たは制御情報、またはその両方を含む。もし、制御メモ
リシステムへの更なるアクセスが必要ならば、コードス
トリームから得られた予め決められたビット数と、制御
メモリシステム内の最後にアクセスされたワードの内容
の一部とを用いて、新しいアクセスが完成される。可変
長コード(“ラン長さ”)が0の値の数をデコードする
ある実施例では、このデコーディング方法による、制御
メモリシステムのアクセスされたワードは、これらの0
の値の出力を制御する。
器及びデコーダによる可変長コードのデコーディング
は、可変長コードのデコードされた値をも記憶する、読
み出し専用メモリのような制御メモリシステム内のアク
セスされたメモリワードの内容によって制御される。最
初に、復元器及びデコーダは、コードストリームからの
予め決められたビット数及び中央処理装置から受け取ら
れた命令に基づく予め決められたビットパターンによっ
て形成されたアドレスを用いて、制御メモリシステムを
アクセスする。次に、制御メモリシステム内のアクセス
されたワードは、更なるメモリアクセスが要求されてい
るかどうかを決定するために用いられる。即ち、アクセ
スされたワードは、可変長コードのデコードされた値ま
たは制御情報、またはその両方を含む。もし、制御メモ
リシステムへの更なるアクセスが必要ならば、コードス
トリームから得られた予め決められたビット数と、制御
メモリシステム内の最後にアクセスされたワードの内容
の一部とを用いて、新しいアクセスが完成される。可変
長コード(“ラン長さ”)が0の値の数をデコードする
ある実施例では、このデコーディング方法による、制御
メモリシステムのアクセスされたワードは、これらの0
の値の出力を制御する。
【0020】
【実施例】本発明は、以下の詳細な説明と添付の図面と
によってよりよく理解される。
によってよりよく理解される。
【0021】概説 本発明の実施例のブロック図が図2に示されている。図
2では、ビデオデコーダ200は、中央処理装置(CP
U)201と、ホストバス203によるホスト計算機2
02(図示されていない)とのインタフェースとを有す
る。ホスト計算機202は、ビデオデコーダ200によ
ってFIFOメモリ204(“コードFIFO”)内に
受け取られる圧縮されたビデオデータのストリームを提
供する。ホスト計算機202から受け取られた圧縮され
たデータは、ビデオデコーダ200によって復元され、
そして復元されたビデオデータは、ビデオデコーダ20
0の出力データとして、ビデオバス205に提供され
る。
2では、ビデオデコーダ200は、中央処理装置(CP
U)201と、ホストバス203によるホスト計算機2
02(図示されていない)とのインタフェースとを有す
る。ホスト計算機202は、ビデオデコーダ200によ
ってFIFOメモリ204(“コードFIFO”)内に
受け取られる圧縮されたビデオデータのストリームを提
供する。ホスト計算機202から受け取られた圧縮され
たデータは、ビデオデコーダ200によって復元され、
そして復元されたビデオデータは、ビデオデコーダ20
0の出力データとして、ビデオバス205に提供され
る。
【0022】ビデオデコーダ200のCPU201は、
制御記憶装置(“命令メモリ”)216を有するマイク
ロプロセッサである。CPU201は、FIFOメモリ
207(“命令FIFO”)を通して、メモリモジュー
ル217(“DRAM”)を制御するメモリコントロー
ラ206(“DRAMコントローラ”)に命令を送る。
この実施例では、DRAM217は随時読み出し書き込
み可能なメモリ要素からなるが、しかし、記憶装置を実
施するための他の適切なメモリ技術が用いられてもよ
い。DRAM217は、ホスト計算機202から受け取
られた圧縮されたデータと、ビデオバス205への出力
のための復元されたデータとの両方を記憶する。ビデオ
バス205への出力のための復元されたデータは、出力
FIFOメモリ208(“ビデオFIFO”)内で待ち
行列に入れられる。
制御記憶装置(“命令メモリ”)216を有するマイク
ロプロセッサである。CPU201は、FIFOメモリ
207(“命令FIFO”)を通して、メモリモジュー
ル217(“DRAM”)を制御するメモリコントロー
ラ206(“DRAMコントローラ”)に命令を送る。
この実施例では、DRAM217は随時読み出し書き込
み可能なメモリ要素からなるが、しかし、記憶装置を実
施するための他の適切なメモリ技術が用いられてもよ
い。DRAM217は、ホスト計算機202から受け取
られた圧縮されたデータと、ビデオバス205への出力
のための復元されたデータとの両方を記憶する。ビデオ
バス205への出力のための復元されたデータは、出力
FIFOメモリ208(“ビデオFIFO”)内で待ち
行列に入れられる。
【0023】この実施例では、ビデオプロセッサ200
の動作モジュールは、グローバルバス209を通して連
絡している。グローバルバス209の制御は、優先順位
方式のもとで、DRAMコントローラ206、ホスト計
算機202、及びCPU201の何れかに対して行われ
る。動作の間、ホスト計算機202から受け取られた圧
縮されたビデオデータは、CPU201の命令のもと
で、DRAMコントローラ206によってDRAM21
7に記憶される。この圧縮されたデータは、復元のため
に、CPU201の命令のもとでDRAM217から検
索され、FIFOメモリ210(“デコーダFIF
O”)を通して、可変長コード(VLC)デコーダ21
1に転送される。MPEG規格に基づけば、復元された
データは、最初にメモリ212内に“ジグザグ”順に記
憶されることによって、整理し直され、次にジグザグメ
モリ212から、列の大きい順に検索される。列の大き
い順の圧縮されたデータは次にCPU201に提供さ
れ、CPU201では、その圧縮されたデータは、“逆
量子化”され、二次元の逆離散コサイン変換(IDC
T)によって変換される。IDCTは、圧縮されたDC
T係数を、周波数領域の表現から空間領域(“画素空
間”)の表現へ変化する。逆量子化動作及びIDCT動
作を実行するとき、CPU201は、ローカルメモリ逆
量子化、コサイン、及び他の定数から検索を行う。二次
元IDCTの中間の結果を記憶するための一時記憶装置
もまた、記憶装置215によって提供される。記憶装置
215は、量子化メモリ215a、一時記憶装置215
b、及びコサインメモリ215cからなる。逆量子化動
作及びIDCT動作は、以下に、より詳しく説明され
る。
の動作モジュールは、グローバルバス209を通して連
絡している。グローバルバス209の制御は、優先順位
方式のもとで、DRAMコントローラ206、ホスト計
算機202、及びCPU201の何れかに対して行われ
る。動作の間、ホスト計算機202から受け取られた圧
縮されたビデオデータは、CPU201の命令のもと
で、DRAMコントローラ206によってDRAM21
7に記憶される。この圧縮されたデータは、復元のため
に、CPU201の命令のもとでDRAM217から検
索され、FIFOメモリ210(“デコーダFIF
O”)を通して、可変長コード(VLC)デコーダ21
1に転送される。MPEG規格に基づけば、復元された
データは、最初にメモリ212内に“ジグザグ”順に記
憶されることによって、整理し直され、次にジグザグメ
モリ212から、列の大きい順に検索される。列の大き
い順の圧縮されたデータは次にCPU201に提供さ
れ、CPU201では、その圧縮されたデータは、“逆
量子化”され、二次元の逆離散コサイン変換(IDC
T)によって変換される。IDCTは、圧縮されたDC
T係数を、周波数領域の表現から空間領域(“画素空
間”)の表現へ変化する。逆量子化動作及びIDCT動
作を実行するとき、CPU201は、ローカルメモリ逆
量子化、コサイン、及び他の定数から検索を行う。二次
元IDCTの中間の結果を記憶するための一時記憶装置
もまた、記憶装置215によって提供される。記憶装置
215は、量子化メモリ215a、一時記憶装置215
b、及びコサインメモリ215cからなる。逆量子化動
作及びIDCT動作は、以下に、より詳しく説明され
る。
【0024】画素空間の圧縮されたデータは、FIFO
メモリ213(“画素メモリ”)内に記憶される。これ
らの画素空間のデータ(“画素”)は、画素フィルタ2
14によってフィルタされ、かつ“動作補償”される。
フィルタリング及び動作補償の動作は、以下に更に詳し
く説明される。CPU201の指令によって、DRAM
コントローラ206は、画素フィルタ214によって動
作補償された画素をDRAM217内に記憶する。CP
U201の指令によって、次に、画素がDRAM217
からDRAMコントローラ206によって検索され、ビ
デオデコーダ200の出力データとして、グローバルバ
ス209を通してビデオFIFO208に提供される。
CCIR601変換モジュールは、ユーザが選択できる
オプションとして、圧縮された出力ビデオデータのCC
IR601フォーマットに適合したビデオデータへの変
換をおこなう。本実施例では、ユーザは、1秒当たり3
0フレーム速度での352×240の映像、または1秒
当たり60フレームのフレーム速度での704×240
の映像(即ち、CCIR601フォーマット)を選択で
きる。CCIR601への変換は、水平内捜技術及びフ
レーム速度変換技術の両方によって達成される。
メモリ213(“画素メモリ”)内に記憶される。これ
らの画素空間のデータ(“画素”)は、画素フィルタ2
14によってフィルタされ、かつ“動作補償”される。
フィルタリング及び動作補償の動作は、以下に更に詳し
く説明される。CPU201の指令によって、DRAM
コントローラ206は、画素フィルタ214によって動
作補償された画素をDRAM217内に記憶する。CP
U201の指令によって、次に、画素がDRAM217
からDRAMコントローラ206によって検索され、ビ
デオデコーダ200の出力データとして、グローバルバ
ス209を通してビデオFIFO208に提供される。
CCIR601変換モジュールは、ユーザが選択できる
オプションとして、圧縮された出力ビデオデータのCC
IR601フォーマットに適合したビデオデータへの変
換をおこなう。本実施例では、ユーザは、1秒当たり3
0フレーム速度での352×240の映像、または1秒
当たり60フレームのフレーム速度での704×240
の映像(即ち、CCIR601フォーマット)を選択で
きる。CCIR601への変換は、水平内捜技術及びフ
レーム速度変換技術の両方によって達成される。
【0025】内部グローバルパス グローバルパス209は、3個のソースである、ホスト
計算機202、CPU201、及びDRAMコントロー
ラ206からドライブされている。内部グローバルパス
は、8ビットアドレスバスGSEL209a及び16ビ
ットデータバスGDATA209bからなる。グローバ
ルバス209をアクセスする2クロック周期前に、アク
セスを要求する装置がリクエストビットをアクティブ状
態にする。予め決められた優先順位方式に基づいて、次
のクロック周期内で、最も高い優先順位を有する、アク
セスをリクエストしている装置が、データの送信または
受信を行おうとするモジュールのアドレスをアドレスバ
スGSEL209a上にドライブする。別々のGSEL
アドレスが、読み出し動作及び書き込み動作に対して提
供される。アドレスバスGSEL209a上のアドレス
が提供された後の1クロック周期内で、データのソース
(即ち、書き込み動作中では、アクセスをリクエスト中
の装置、あるいは、読み出し動作中では、アクセスされ
たモジュール)によって、データがデータバスGDAT
A209a上にドライブされる。
計算機202、CPU201、及びDRAMコントロー
ラ206からドライブされている。内部グローバルパス
は、8ビットアドレスバスGSEL209a及び16ビ
ットデータバスGDATA209bからなる。グローバ
ルバス209をアクセスする2クロック周期前に、アク
セスを要求する装置がリクエストビットをアクティブ状
態にする。予め決められた優先順位方式に基づいて、次
のクロック周期内で、最も高い優先順位を有する、アク
セスをリクエストしている装置が、データの送信または
受信を行おうとするモジュールのアドレスをアドレスバ
スGSEL209a上にドライブする。別々のGSEL
アドレスが、読み出し動作及び書き込み動作に対して提
供される。アドレスバスGSEL209a上のアドレス
が提供された後の1クロック周期内で、データのソース
(即ち、書き込み動作中では、アクセスをリクエスト中
の装置、あるいは、読み出し動作中では、アクセスされ
たモジュール)によって、データがデータバスGDAT
A209a上にドライブされる。
【0026】この実施例では、DRAM217へのアク
セス毎に、2クロック周期が必要なので、データがDR
AMコントローラ206に書き込まれるかまたはDRA
Mコントローラ206からリクエストされる最高速度
は、他の1クロック周期である。
セス毎に、2クロック周期が必要なので、データがDR
AMコントローラ206に書き込まれるかまたはDRA
Mコントローラ206からリクエストされる最高速度
は、他の1クロック周期である。
【0027】ホストバスインタフェース 本実施例では、コードFIFO204は、2バイト幅で
あって、かつ32バイトの圧縮されたコ−ドを保持す
る。ホストバスインタフェース203は、20ビットア
ドレスバス203a、16ビットデータバス203b、
及びデータの転送を実行するか、信号を送るための制御
バスを有する。ホストバスインタフェース203は、ホ
ストプロセッサクロック、チップクロック、システムク
ロック、アドレス有効ストローブ(AS)信号、読み出
し/書き込み(R/W)信号、データレディ信号UDS
とLDS、リセット信号、及びテスト信号を含む。ホス
ト計算機202は、DMAモードでのコードFIFO2
04内への書き込みによって、圧縮されたビデオデータ
を転送する。圧縮されたビデオデータは、DMAモード
で、バス書き込みサイクル当たり16ビットの割合で、
16ビットデータバス203b上に転送される。非DM
A転送は、制御機能を実行し、そしてコードFIFO2
04をアクセスするため、及びDRAMコントローラ2
06を通してDRAM217をアクセスするために、ホ
スト計算機202によって利用される。
あって、かつ32バイトの圧縮されたコ−ドを保持す
る。ホストバスインタフェース203は、20ビットア
ドレスバス203a、16ビットデータバス203b、
及びデータの転送を実行するか、信号を送るための制御
バスを有する。ホストバスインタフェース203は、ホ
ストプロセッサクロック、チップクロック、システムク
ロック、アドレス有効ストローブ(AS)信号、読み出
し/書き込み(R/W)信号、データレディ信号UDS
とLDS、リセット信号、及びテスト信号を含む。ホス
ト計算機202は、DMAモードでのコードFIFO2
04内への書き込みによって、圧縮されたビデオデータ
を転送する。圧縮されたビデオデータは、DMAモード
で、バス書き込みサイクル当たり16ビットの割合で、
16ビットデータバス203b上に転送される。非DM
A転送は、制御機能を実行し、そしてコードFIFO2
04をアクセスするため、及びDRAMコントローラ2
06を通してDRAM217をアクセスするために、ホ
スト計算機202によって利用される。
【0028】幾つかの制御レジスタが、制御機能を実行
するためにホストバス202によってアクセスされる。
これらのレジスタは、(1)ホスト計算機202が、D
MA制御レジスタをイネーブルまたはディスエーブルし
て、FIFO204をコーディングすること、かつFI
FO204の状態を照会することを許可するDMA制御
レジスタと、(2)ビデオデコーダ200が、ホスト計
算機上でベクトルインタラプトを実行することを許可す
るベクトルインタラプトレジスタと、(3)ホスト計算
機202が、圧縮されたビデオデータストリームを、音
声部分のような他のMPEGデータストリームと同期さ
せることを許可するシステムタイマレジスタとを含む。
するためにホストバス202によってアクセスされる。
これらのレジスタは、(1)ホスト計算機202が、D
MA制御レジスタをイネーブルまたはディスエーブルし
て、FIFO204をコーディングすること、かつFI
FO204の状態を照会することを許可するDMA制御
レジスタと、(2)ビデオデコーダ200が、ホスト計
算機上でベクトルインタラプトを実行することを許可す
るベクトルインタラプトレジスタと、(3)ホスト計算
機202が、圧縮されたビデオデータストリームを、音
声部分のような他のMPEGデータストリームと同期さ
せることを許可するシステムタイマレジスタとを含む。
【0029】非DMAモードで、これらの制御レジスタ
の任意の1個、DRAM217、及びコードFIFO2
04の何れかをアクセスするために、ホスト計算機20
2は、R/W信号を適切にセットする“AS”を発生さ
せ、かつ20ビットアドレスバスにアドレスを配置す
る。20ビットアドレスのビット(20:19)と、R
/W信号とは各々アクセスの行き先とアクセス形式を表
示している。書き込みアクセスのために、ホスト計算機
202は、転送されるべきデータを16ビットデータバ
スに配置し、データレディ信号UDS及びLDSを立ち
上げる。それに対して、ビデオデコーダ200は、16
ビットデータをラッチ、そして応答し、それによってホ
ストバス書き込みサイクルが完了する。読み出しアクセ
スのために、ビデオデコーダ200は、リクエストされ
たデータが16ビットデータバス203bでレディ状態
になったとき、AS信号に応答する。
の任意の1個、DRAM217、及びコードFIFO2
04の何れかをアクセスするために、ホスト計算機20
2は、R/W信号を適切にセットする“AS”を発生さ
せ、かつ20ビットアドレスバスにアドレスを配置す
る。20ビットアドレスのビット(20:19)と、R
/W信号とは各々アクセスの行き先とアクセス形式を表
示している。書き込みアクセスのために、ホスト計算機
202は、転送されるべきデータを16ビットデータバ
スに配置し、データレディ信号UDS及びLDSを立ち
上げる。それに対して、ビデオデコーダ200は、16
ビットデータをラッチ、そして応答し、それによってホ
ストバス書き込みサイクルが完了する。読み出しアクセ
スのために、ビデオデコーダ200は、リクエストされ
たデータが16ビットデータバス203bでレディ状態
になったとき、AS信号に応答する。
【0030】中央処理装置 CPU201は、24ビットデータバスと32個の汎用
レジスタ(“レジスタファイル”)とを有するマイクロ
プロセッサである。CPU201は、コプロセッサ例え
ばメモリコントローラ206を制御するだけでなく、動
作補償(後の節で説明される)のための最初のアドレス
を計算したり、量子化及びIDCTを実行する。以下に
説明されるように、汎用のハードウェアと特定の目的の
ハードウェアの両方がCPU201に備えられている。
IDCT及び非IDCTの計算の両方によって用いられ
る汎用のハードウェアは、レジスタファイルと、乗数を
含む算術論理演算装置(ALU)とを有する。逆量子化
及びIDCTの計算で用いられる特定の目的のハードウ
ェアは、5×8乗算減算装置601、“バタフライ”装
置602、コサイン読み出し専用メモリ(ROM)21
5c及び量子化メモリ215dを有する。
レジスタ(“レジスタファイル”)とを有するマイクロ
プロセッサである。CPU201は、コプロセッサ例え
ばメモリコントローラ206を制御するだけでなく、動
作補償(後の節で説明される)のための最初のアドレス
を計算したり、量子化及びIDCTを実行する。以下に
説明されるように、汎用のハードウェアと特定の目的の
ハードウェアの両方がCPU201に備えられている。
IDCT及び非IDCTの計算の両方によって用いられ
る汎用のハードウェアは、レジスタファイルと、乗数を
含む算術論理演算装置(ALU)とを有する。逆量子化
及びIDCTの計算で用いられる特定の目的のハードウ
ェアは、5×8乗算減算装置601、“バタフライ”装
置602、コサイン読み出し専用メモリ(ROM)21
5c及び量子化メモリ215dを有する。
【0031】CPU201は、MPEG規格に明記され
た逆量子化動作及びIDCT動作のための特別な表示を
提供する。特に、3つの乗算命令がこれらの動作のため
の設計されている。各乗算命令はまた、同時に“バタフ
ライ”計算をも実行する。当業者には公知のバタフライ
計算は、2つの数の和と差を同時に計算する。バタフラ
イ計算は、しばしばデジタルフィルタ内で用いられる。
た逆量子化動作及びIDCT動作のための特別な表示を
提供する。特に、3つの乗算命令がこれらの動作のため
の設計されている。各乗算命令はまた、同時に“バタフ
ライ”計算をも実行する。当業者には公知のバタフライ
計算は、2つの数の和と差を同時に計算する。バタフラ
イ計算は、しばしばデジタルフィルタ内で用いられる。
【0032】Alexandre Balkanskiらによって、199
0年3月14日に出願された米国特許出願第07/49
4,242号明細書“A system for Compression and D
ecompression of Video Data Using Discrete Cosine T
ransform and Coding Techniques”に開示された8×8
画素2次元IDCTアルゴリズムに基づいて、CPU2
01は、IDCT動作を実行するようにプログラムされ
ている。この明細書は、ここで言及したことによって本
出願の一部とされたい。IDCT動作は、DCT係数の
8×8ブロックまたはマトリクスでの列と列または行と
行の何れかの2個の一次元IDCT動作の実行によって
行われる。図5は、8×8ブロックの1列または1行で
動作するために利用される8ポイントのIDCTアルゴ
リズムの流れ図である。図5から推論できるように、D
CT係数の各列または各行に対して、コサイン因子によ
る13個の乗算及び12個のバタフライ動作が実行され
る。図5では、表示法C3/16は、コサイン因子CO
S(3π/16)による乗算を表し、ここでπは円周率
3.14159…を表している。
0年3月14日に出願された米国特許出願第07/49
4,242号明細書“A system for Compression and D
ecompression of Video Data Using Discrete Cosine T
ransform and Coding Techniques”に開示された8×8
画素2次元IDCTアルゴリズムに基づいて、CPU2
01は、IDCT動作を実行するようにプログラムされ
ている。この明細書は、ここで言及したことによって本
出願の一部とされたい。IDCT動作は、DCT係数の
8×8ブロックまたはマトリクスでの列と列または行と
行の何れかの2個の一次元IDCT動作の実行によって
行われる。図5は、8×8ブロックの1列または1行で
動作するために利用される8ポイントのIDCTアルゴ
リズムの流れ図である。図5から推論できるように、D
CT係数の各列または各行に対して、コサイン因子によ
る13個の乗算及び12個のバタフライ動作が実行され
る。図5では、表示法C3/16は、コサイン因子CO
S(3π/16)による乗算を表し、ここでπは円周率
3.14159…を表している。
【0033】DCT係数の逆量子化が、MPEG規格に
基づいて実行される。逆量子化係数は、量子化メモリ
(“QMEM”)215aに記憶されている。逆量子化
は、8×8マトリクスの各DCT係数に、対応する逆量
子化定数を乗算することによって達成される。
基づいて実行される。逆量子化係数は、量子化メモリ
(“QMEM”)215aに記憶されている。逆量子化
は、8×8マトリクスの各DCT係数に、対応する逆量
子化定数を乗算することによって達成される。
【0034】逆量子化及びIDCT動作のデータフロー
は、図6にまとめられている。図6に示すように、DC
T係数の8×8ブロックの列を構成する8個の9ビット
DCT係数は、同時に、ステップ501でジグザグメモ
リ212から検索される。これらのDCT係数は、ステ
ップ502で逆量子化され、ステップ504でのDCT
係数上の最初の一次元IDCTの実行の前に、ステップ
503で適切なコサイン因子によって乗算される。結果
として得られた8個のDCT係数は、次に一次元IDC
Tが8×8ブロックの各列で完了するまで、ステップ5
05で一時記憶装置215bに記憶される。次に、8×
8ブロックのDCT係数の行を形成する8個のDCT係
数は、同時に、2番目の一次元IDCT動作のために、
ステップ506で検索される。ステップ507では、2
番目の一次元IDCT動作からの結果として得られた画
素の値が、画素メモリ213に提供される。
は、図6にまとめられている。図6に示すように、DC
T係数の8×8ブロックの列を構成する8個の9ビット
DCT係数は、同時に、ステップ501でジグザグメモ
リ212から検索される。これらのDCT係数は、ステ
ップ502で逆量子化され、ステップ504でのDCT
係数上の最初の一次元IDCTの実行の前に、ステップ
503で適切なコサイン因子によって乗算される。結果
として得られた8個のDCT係数は、次に一次元IDC
Tが8×8ブロックの各列で完了するまで、ステップ5
05で一時記憶装置215bに記憶される。次に、8×
8ブロックのDCT係数の行を形成する8個のDCT係
数は、同時に、2番目の一次元IDCT動作のために、
ステップ506で検索される。ステップ507では、2
番目の一次元IDCT動作からの結果として得られた画
素の値が、画素メモリ213に提供される。
【0035】一時記憶装置215b内に記憶される必要
のある行を減少するために、CPU201は、ステップ
504での一次元IDCTを、1個の8×8画素ブロッ
クの列順と、次の8×8画素ブロックの行順との間で交
互に実行する。同様に、ステップ506での第2のパス
一次元IDCT動作も、行順と列順との間を交互に実行
される。更に、与えられた8×8画素ブロックに対し
て、ステップ504で一次元IDCTが実行される順序
は、ステップ506で一次元IDCTが実行される順序
とは逆になっている。
のある行を減少するために、CPU201は、ステップ
504での一次元IDCTを、1個の8×8画素ブロッ
クの列順と、次の8×8画素ブロックの行順との間で交
互に実行する。同様に、ステップ506での第2のパス
一次元IDCT動作も、行順と列順との間を交互に実行
される。更に、与えられた8×8画素ブロックに対し
て、ステップ504で一次元IDCTが実行される順序
は、ステップ506で一次元IDCTが実行される順序
とは逆になっている。
【0036】本実施例では、逆量子化、コサイン乗算、
及びIDCT動作は、CPU201の同じ乗算減算装置
によって実行される。上述したように、本実施例の乗算
命令もまたバタフライ動作を実行する。本実施例は、図
8の回路600を用いた乗算動作とバタフライ動作との
同時の動作を達成する。図7の回路600は、乗算減算
装置601及びバタフライ装置602を有する。図7に
示すように逆量子化命令の間、逆量子化乗数は量子化メ
モリ215aから検索され、各々は乗算器603の5ビ
ットスケーリング因子によってスケールされる。スケー
ルされた逆量子化乗数は、次に、ジグザグメモリ212
から検索されたDCT係数によって乗算されるべく、マ
ルチプレクサ604を通して、乗算減算装置601に提
供される。マルチプレクサ604は、逆量子化命令の間
は、逆量子化乗数を選択するべくセットされ、コサイン
乗算動作の間はコサイン因子を選択するべくセットされ
る。コサイン因子はコサインメモリ215cから検索さ
れる。この実施例では、コサインメモリ215cは、読
み出し専用メモリとして実施されている。
及びIDCT動作は、CPU201の同じ乗算減算装置
によって実行される。上述したように、本実施例の乗算
命令もまたバタフライ動作を実行する。本実施例は、図
8の回路600を用いた乗算動作とバタフライ動作との
同時の動作を達成する。図7の回路600は、乗算減算
装置601及びバタフライ装置602を有する。図7に
示すように逆量子化命令の間、逆量子化乗数は量子化メ
モリ215aから検索され、各々は乗算器603の5ビ
ットスケーリング因子によってスケールされる。スケー
ルされた逆量子化乗数は、次に、ジグザグメモリ212
から検索されたDCT係数によって乗算されるべく、マ
ルチプレクサ604を通して、乗算減算装置601に提
供される。マルチプレクサ604は、逆量子化命令の間
は、逆量子化乗数を選択するべくセットされ、コサイン
乗算動作の間はコサイン因子を選択するべくセットされ
る。コサイン因子はコサインメモリ215cから検索さ
れる。この実施例では、コサインメモリ215cは、読
み出し専用メモリとして実施されている。
【0037】乗算減算装置601に到達する前に、回路
600の最初のステージ(図8)では、各DCT係数
は、MPEG規格の最初の要求に基づいて、減数され
(ブロック654)、奇数にされるかまたは0に向かっ
て四捨五入されるか(ブロック656)、または予め決
められた範囲にクリップされる(ブロック658)。
“ゲート”651、マルチプレクサ652、デクリメン
タ653、ラウンダ656、及びクランプ658は、図
8に更に詳しく示されている。
600の最初のステージ(図8)では、各DCT係数
は、MPEG規格の最初の要求に基づいて、減数され
(ブロック654)、奇数にされるかまたは0に向かっ
て四捨五入されるか(ブロック656)、または予め決
められた範囲にクリップされる(ブロック658)。
“ゲート”651、マルチプレクサ652、デクリメン
タ653、ラウンダ656、及びクランプ658は、図
8に更に詳しく示されている。
【0038】図8に示されているように、ジグザグメモ
リ212からの9ビットDCT係数は、制御信号“co
ded”に応答して、“ゲート”651によって0にセ
ットされることが可能である。この9ビットデータは、
14ビットデータを形成するために、右側に0のビット
をつけ加えた後に、14ビットバス681上の逆量子化
命令を実行する間、マルチプレクサ652によって選択
される。代わりに、逆量子化命令以外の命令を実行する
ときには、マルチプレクサ652はバス682の14ビ
ットデータを選択する。逆量子化命令以外の命令を実行
する間のこの14ビットデータは、レジスタファイル内
のレジスタ(“ソースレジスタ”)から検索されたデー
タの下位14ビットである。バス681上の14ビット
データは、MPEG規格によって要求されたとき、デク
リメンタ653の出力端子に14ビット出力を提供する
べく、デクリメンタ653によって減少させられる。も
し減少動作が要求されなかったならば、バス681上の
14ビットデータは、変更なしに、デクリメンタ653
の出力端子に提供される。
リ212からの9ビットDCT係数は、制御信号“co
ded”に応答して、“ゲート”651によって0にセ
ットされることが可能である。この9ビットデータは、
14ビットデータを形成するために、右側に0のビット
をつけ加えた後に、14ビットバス681上の逆量子化
命令を実行する間、マルチプレクサ652によって選択
される。代わりに、逆量子化命令以外の命令を実行する
ときには、マルチプレクサ652はバス682の14ビ
ットデータを選択する。逆量子化命令以外の命令を実行
する間のこの14ビットデータは、レジスタファイル内
のレジスタ(“ソースレジスタ”)から検索されたデー
タの下位14ビットである。バス681上の14ビット
データは、MPEG規格によって要求されたとき、デク
リメンタ653の出力端子に14ビット出力を提供する
べく、デクリメンタ653によって減少させられる。も
し減少動作が要求されなかったならば、バス681上の
14ビットデータは、変更なしに、デクリメンタ653
の出力端子に提供される。
【0039】デクリメンタ653の出力データのビット
0(LSB)とビット4の両方は、バス683上に14
ビットデータを提供するべく、MPEG規格に基づいて
置換される。逆量子化命令の実行中に、もしジグザグメ
モリ212からのDCT係数が0ならば、若しくは、逆
量子化命令以外の命令(例えばコサイン乗算命令)の実
行中に、レジスタファイルからのデータが0ならば、バ
ス683上の14ビットデータは“ゲート”656bに
よって0にされることになる。逆量子化命令の実行中に
は、ソースレジスタのビット23:19は、“ゲート”
656bの14ビット出力データの前に置かれ、結果と
して得られた19ビットデータは、クランプ658によ
って、−2047から2047までの値を有する14ビ
ットデータにクランプされる。一方、逆量子化命令の間
には、“ゲート”656bの14ビット出力データは、
クランプ658の出力データとして通過する。次にクラ
ンプ658の出力データは、バス684上の23ビット
データを形成するべく、右側に0のビットを加えられ
る。実行されている命令が、“imac”命令でない限
りは、マルチプレクサ659は、この23ビットデータ
をレジスタ660の入力端子へ選択する(以下を参照の
こと)。“imac”命令の実行中、レジスタ660
は、ソースレジスタからの23ビットの最下位ビットを
ラッチする。レジスタ660の出力データは、乗算減算
装置601への“X”入力データとして提供される。
0(LSB)とビット4の両方は、バス683上に14
ビットデータを提供するべく、MPEG規格に基づいて
置換される。逆量子化命令の実行中に、もしジグザグメ
モリ212からのDCT係数が0ならば、若しくは、逆
量子化命令以外の命令(例えばコサイン乗算命令)の実
行中に、レジスタファイルからのデータが0ならば、バ
ス683上の14ビットデータは“ゲート”656bに
よって0にされることになる。逆量子化命令の実行中に
は、ソースレジスタのビット23:19は、“ゲート”
656bの14ビット出力データの前に置かれ、結果と
して得られた19ビットデータは、クランプ658によ
って、−2047から2047までの値を有する14ビ
ットデータにクランプされる。一方、逆量子化命令の間
には、“ゲート”656bの14ビット出力データは、
クランプ658の出力データとして通過する。次にクラ
ンプ658の出力データは、バス684上の23ビット
データを形成するべく、右側に0のビットを加えられ
る。実行されている命令が、“imac”命令でない限
りは、マルチプレクサ659は、この23ビットデータ
をレジスタ660の入力端子へ選択する(以下を参照の
こと)。“imac”命令の実行中、レジスタ660
は、ソースレジスタからの23ビットの最下位ビットを
ラッチする。レジスタ660の出力データは、乗算減算
装置601への“X”入力データとして提供される。
【0040】図7を再び参照すると、乗算減算装置60
1は、実行された命令によって(例えば、逆量子化、コ
サイン、及び整数乗算命令の何れかの場合)、2つの数
XとYとを乗算し、(例えば、IDCT乗算減算命令の
場合)、X×Y−Zの値を計算する。DCT係数は、ジ
グザグメモリ212または一時記憶装置215bの何れ
かから、レジスタファイルへフェッチされる。更に、乗
算減算装置601での動作の結果として得られた数値
は、オペランドとして、レジスタファイルをバイパスし
てバタフライ装置602へ直接送られることができる。
1は、実行された命令によって(例えば、逆量子化、コ
サイン、及び整数乗算命令の何れかの場合)、2つの数
XとYとを乗算し、(例えば、IDCT乗算減算命令の
場合)、X×Y−Zの値を計算する。DCT係数は、ジ
グザグメモリ212または一時記憶装置215bの何れ
かから、レジスタファイルへフェッチされる。更に、乗
算減算装置601での動作の結果として得られた数値
は、オペランドとして、レジスタファイルをバイパスし
てバタフライ装置602へ直接送られることができる。
【0041】バタフライ装置602は、その2つの入力
オペランドの和と差とを同時に計算する。乗算命令の実
行中、乗算減算装置601及びバタフライ装置602
は、各々のオペランドに対して演算を行うので、乗算命
令は、乗算結果及びバタフライ結果の両方の結果を得
る。更に、“パイプライン”効果は、バイパス命令に続
く2番目の命令のバタフライ動作内のバイパス命令内
で、乗算減算装置601の出力値(“中間”の結果)を
用いることによって得られる(乗算減算装置601は、
2命令サイクルの待ち時間を有する)。この構造のもと
では、中間の結果が、レジスタファイルのレジスタ内に
ロードされず、従ってレジスタから読み出されないの
で、高いスループットが得られる。
オペランドの和と差とを同時に計算する。乗算命令の実
行中、乗算減算装置601及びバタフライ装置602
は、各々のオペランドに対して演算を行うので、乗算命
令は、乗算結果及びバタフライ結果の両方の結果を得
る。更に、“パイプライン”効果は、バイパス命令に続
く2番目の命令のバタフライ動作内のバイパス命令内
で、乗算減算装置601の出力値(“中間”の結果)を
用いることによって得られる(乗算減算装置601は、
2命令サイクルの待ち時間を有する)。この構造のもと
では、中間の結果が、レジスタファイルのレジスタ内に
ロードされず、従ってレジスタから読み出されないの
で、高いスループットが得られる。
【0042】第1のパスIDCTのバタフライ動作の結
果は、一時記憶装置215b内に送られ、一方、第2の
パスIDCTのバタフライ動作の結果は、クランプ60
5によって“クリップ”され(clipped)、そして画素
メモリ213に送られる。
果は、一時記憶装置215b内に送られ、一方、第2の
パスIDCTのバタフライ動作の結果は、クランプ60
5によって“クリップ”され(clipped)、そして画素
メモリ213に送られる。
【0043】図9は、図5に示されたIDCTを計算す
るためのマイクロプログラムを示している。図9では、
逆量子化、コサイン乗算、及びIDCT動作は、図9で
ニーモニック“dmac”、“cmac”、及び“im
ac”で各々示された命令によって表現されている。更
に、命令“reg(a,b)”は引数“b”によって特
定されたレジスタを、引数“a”で特定された名前に割
り当てる。マイクロプログラムについてのコメントは、
各行のシンボル“/*”と“*/”との間に提供されて
いる。IDCT命令のコメントの部分では、バタフライ
装置602及び乗算減算装置601によって実行される
動作は、各々見出し“BUTTERFLYS”及び“M
ULDITLIES”の下に説明されている。図6で
は、マイクロプログラムのIDCTの部分(即ち、命令
imac、dmac、及びcmacが呼び出される部
分)では、コメントの行には、1〜6の番号が付されて
おり、IDCTによって実行されるループの命令サイク
ルを表示している。
るためのマイクロプログラムを示している。図9では、
逆量子化、コサイン乗算、及びIDCT動作は、図9で
ニーモニック“dmac”、“cmac”、及び“im
ac”で各々示された命令によって表現されている。更
に、命令“reg(a,b)”は引数“b”によって特
定されたレジスタを、引数“a”で特定された名前に割
り当てる。マイクロプログラムについてのコメントは、
各行のシンボル“/*”と“*/”との間に提供されて
いる。IDCT命令のコメントの部分では、バタフライ
装置602及び乗算減算装置601によって実行される
動作は、各々見出し“BUTTERFLYS”及び“M
ULDITLIES”の下に説明されている。図6で
は、マイクロプログラムのIDCTの部分(即ち、命令
imac、dmac、及びcmacが呼び出される部
分)では、コメントの行には、1〜6の番号が付されて
おり、IDCTによって実行されるループの命令サイク
ルを表示している。
【0044】図9は、各々CPU201を通るデータの
流れと、レジスタファイル内のレジスタの内容のマップ
である図3及び図4と共に参照される。図3では、行1
〜26は、図9に示されたIDCT部分の対応する番号
を付された命令サイクルに対応する。見出し“zme
m”と“tmem”の下の最初の2行は、各々ジグザグ
メモリ212と一時記憶装置215bとからフェッチさ
れたオペランドを示している。見出し“pmem”の下
には、画素メモリ213に書き込まれたIDCTの結果
の値が示されている。見出し“A”、“B”、及び
“C”の下のオペランドは、バタフライ装置602の
X、Y入力及び乗算減算装置601のZ入力に備えられ
ているレジスタからフェッチされたオペランドに対応す
る。見出し“E”の下の値は、バタフライ装置602の
出力から得られた結果に対応する。乗算減算装置601
は、3ステージのパイプラインされた乗算減算装置から
なる。即ち、見出し“E1”、“E2”、及び“E3”
の下の値は、乗算減算装置601の第1、第2及び第3
ステージによって各々実行された動作のオペランドの内
の1つに対応する。見出し“R1”、“R2”、及び
“R3”の下には、レジスタファイルに書き込まれる、
バタフライ装置602及び乗算減算装置601からの結
果が示されている。R1及びR2は、バタフライ装置6
02からの和及び差の結果に対応し、R3は、乗算減算
装置601の結果に対応する。
流れと、レジスタファイル内のレジスタの内容のマップ
である図3及び図4と共に参照される。図3では、行1
〜26は、図9に示されたIDCT部分の対応する番号
を付された命令サイクルに対応する。見出し“zme
m”と“tmem”の下の最初の2行は、各々ジグザグ
メモリ212と一時記憶装置215bとからフェッチさ
れたオペランドを示している。見出し“pmem”の下
には、画素メモリ213に書き込まれたIDCTの結果
の値が示されている。見出し“A”、“B”、及び
“C”の下のオペランドは、バタフライ装置602の
X、Y入力及び乗算減算装置601のZ入力に備えられ
ているレジスタからフェッチされたオペランドに対応す
る。見出し“E”の下の値は、バタフライ装置602の
出力から得られた結果に対応する。乗算減算装置601
は、3ステージのパイプラインされた乗算減算装置から
なる。即ち、見出し“E1”、“E2”、及び“E3”
の下の値は、乗算減算装置601の第1、第2及び第3
ステージによって各々実行された動作のオペランドの内
の1つに対応する。見出し“R1”、“R2”、及び
“R3”の下には、レジスタファイルに書き込まれる、
バタフライ装置602及び乗算減算装置601からの結
果が示されている。R1及びR2は、バタフライ装置6
02からの和及び差の結果に対応し、R3は、乗算減算
装置601の結果に対応する。
【0045】図4は、レジスタファイルのマップであっ
て、図9に示されたマイクロプログラムのIDCT部分
の命令サイクルの間、16個のレジスタR2〜R17に
記憶された値を示している。図4に示された行1〜26
の各々は、図9の対応する番号を付された命令の間のレ
ジスタR2〜R17の内容を示している。
て、図9に示されたマイクロプログラムのIDCT部分
の命令サイクルの間、16個のレジスタR2〜R17に
記憶された値を示している。図4に示された行1〜26
の各々は、図9の対応する番号を付された命令の間のレ
ジスタR2〜R17の内容を示している。
【0046】図9では、逆量子化命令は、命令ニーモニ
ック“dmac(BTP、r12、r、a、b)”によ
って表現され、
ック“dmac(BTP、r12、r、a、b)”によ
って表現され、
【0047】ここで、(1)BTPは、nT、rT、w
T、wP、BnT、BrT、BwT、及びBwPの内の
1つであって、各々は、メモリからの読み出しをしな
い、一時記憶装置215bからの読み出しをする、一時
記憶装置215bへの書き込みをする、画素メモリ23
1への書き込みをする、レジスタファイルのバイパスを
伴ったメモリからの読み出しをしない、レジスタファイ
ルのバイパスを伴った一時記憶装置215bからの読み
出しをする、レジスタファイルのバイパスを伴った一時
記憶装置215bへの書き込みをする、及びレジスタフ
ァイルのバイパスを伴った画素メモリ213への書き込
みをすることに対応する。
T、wP、BnT、BrT、BwT、及びBwPの内の
1つであって、各々は、メモリからの読み出しをしな
い、一時記憶装置215bからの読み出しをする、一時
記憶装置215bへの書き込みをする、画素メモリ23
1への書き込みをする、レジスタファイルのバイパスを
伴ったメモリからの読み出しをしない、レジスタファイ
ルのバイパスを伴った一時記憶装置215bからの読み
出しをする、レジスタファイルのバイパスを伴った一時
記憶装置215bへの書き込みをする、及びレジスタフ
ァイルのバイパスを伴った画素メモリ213への書き込
みをすることに対応する。
【0048】(2)“r12”は、バタフライ計算の結
果が記憶されている2個のレジスタの内の一方のアドレ
スを意味する。特に、アドレスr12のレジスタは、バ
タフライ計算の和の部分を記憶し、アドレスr12+1
のレジスタは、バタフライ計算の差の部分を記憶してい
る。
果が記憶されている2個のレジスタの内の一方のアドレ
スを意味する。特に、アドレスr12のレジスタは、バ
タフライ計算の和の部分を記憶し、アドレスr12+1
のレジスタは、バタフライ計算の差の部分を記憶してい
る。
【0049】(3)“r”は、QMEM215aからの
逆量子化定数を、ジグザグメモリ212の出力FIFO
で、次のDCT係数に乗算する、逆量子化動作のあて先
レジスタのアドレスを意味する。
逆量子化定数を、ジグザグメモリ212の出力FIFO
で、次のDCT係数に乗算する、逆量子化動作のあて先
レジスタのアドレスを意味する。
【0050】(4)“a”及び“b”は、各々関連する
バタフライ計算のソースレジスタを意味する。
バタフライ計算のソースレジスタを意味する。
【0051】図9では、コサイン乗算命令(“cma
c”)は、命令ニーモニック“cmac(BTP、r1
2、r、a、b、c)”によって表現されている。“c
mac”命令の引数は、“dmac”命令に関して上述
された引数と概ね等しい。コサイン乗算命令を実行する
ときには、DCT係数の8×8ブロック内の位置によっ
て決定されるコサイン因子は、レジスタファイルの特定
されたレジスタ“c”の内容を乗算される。
c”)は、命令ニーモニック“cmac(BTP、r1
2、r、a、b、c)”によって表現されている。“c
mac”命令の引数は、“dmac”命令に関して上述
された引数と概ね等しい。コサイン乗算命令を実行する
ときには、DCT係数の8×8ブロック内の位置によっ
て決定されるコサイン因子は、レジスタファイルの特定
されたレジスタ“c”の内容を乗算される。
【0052】図6では、IDCT命令は、命令ニーモニ
ック“imac(BTP、r12、r、a、b、c)”
で表現されている。“imac”命令の引数は、ima
c命令を実行するときに、コサイン因子が引数“c”に
よって特定されるレジスタの内容を乗算されること以外
は、概ね“cmac”命令に関して説明された引数と等
しい。出力される前に、結果の積は、次の命令の引数
“b”によって特定されるレジスタの内容を減算され
る。
ック“imac(BTP、r12、r、a、b、c)”
で表現されている。“imac”命令の引数は、ima
c命令を実行するときに、コサイン因子が引数“c”に
よって特定されるレジスタの内容を乗算されること以外
は、概ね“cmac”命令に関して説明された引数と等
しい。出力される前に、結果の積は、次の命令の引数
“b”によって特定されるレジスタの内容を減算され
る。
【0053】特に、Xiは、ジグザグメモリ212から
受け取られた量子化されたDCT係数を意味し、dXi
は、量子化された後のDCT係数Xiの値を意味し、C
Xiは、逆量子化と、コサイン因子による乗算との両方
を行われた後のDCT係数Xiの値を意味する。(コサ
イン因子による乗算は、図5のIDCTアルゴリズムの
最初のステップとして示されている。)
受け取られた量子化されたDCT係数を意味し、dXi
は、量子化された後のDCT係数Xiの値を意味し、C
Xiは、逆量子化と、コサイン因子による乗算との両方
を行われた後のDCT係数Xiの値を意味する。(コサ
イン因子による乗算は、図5のIDCTアルゴリズムの
最初のステップとして示されている。)
【0054】図9では、添字“p”を有する名前即ち、
同図に示されたマイクロコードのIDCT部分の3行目
の“Ap”は、二次元IDCTアルゴリズムの第2パス
内の値を意味する。一方、添字“p”を有さない名前
は、二次元IDCTの第1パス内の値を意味する。ID
CTの第1及び第2パスの結果は、各々一時記憶装置2
15b及び画素メモリ213を通過する。
同図に示されたマイクロコードのIDCT部分の3行目
の“Ap”は、二次元IDCTアルゴリズムの第2パス
内の値を意味する。一方、添字“p”を有さない名前
は、二次元IDCTの第1パス内の値を意味する。ID
CTの第1及び第2パスの結果は、各々一時記憶装置2
15b及び画素メモリ213を通過する。
【0055】バタフライ動作の和及び差の結果に割り当
てられた変数名は、各々名称“0”及び“1”を付加さ
れている。例えば、図9に示されたアルゴリズムのID
CT部分の1行目では、コメントの表示“Bp=B(X
3p、X5p)”は、“dmac”動作のバタフライ部
分が、オペランドX3p及びX5pを取り上げ、これら
のオペランドの和と差とを各々B0p及びB1pとして
計算することを表している。
てられた変数名は、各々名称“0”及び“1”を付加さ
れている。例えば、図9に示されたアルゴリズムのID
CT部分の1行目では、コメントの表示“Bp=B(X
3p、X5p)”は、“dmac”動作のバタフライ部
分が、オペランドX3p及びX5pを取り上げ、これら
のオペランドの和と差とを各々B0p及びB1pとして
計算することを表している。
【0056】乗算減算装置601の減算入力の入力デー
タとして、及びバタフライ装置602への入力として用
いられる値は、図9のマイクロフプログラムのIDCT
動作のコメント部分内の“%”記号によって表示されて
いる。例えば、IDCT部分の11行目では、表示“i
B1p=imac(B1p、%B0p)”は、IMAC
命令の乗算減算部分のオペランドB0pが次の命令内で
用いられることを表している。即ち、12行目では、B
0pが、12行目のIMAC命令のバタフライ部分のオ
ペランドとして用いられていることを示す表示“AAp
=b(A0p、%B0p)”が示されている。最後に、
図9では、レジスタファイルをバイパスし、直接バタフ
ライ装置602に向かって通過する乗算減算装置601
の結果が、“$”記号によって表示されている。例え
ば、4行目では、表示“$cX4=cmac(dX
4)”は、オペランドdX4に対して実行されたコサイ
ン乗算の結果cX4が、レジスタファイルをバイパス
し、バタフライ装置602に向かって直接通過すること
を表示している。
タとして、及びバタフライ装置602への入力として用
いられる値は、図9のマイクロフプログラムのIDCT
動作のコメント部分内の“%”記号によって表示されて
いる。例えば、IDCT部分の11行目では、表示“i
B1p=imac(B1p、%B0p)”は、IMAC
命令の乗算減算部分のオペランドB0pが次の命令内で
用いられることを表している。即ち、12行目では、B
0pが、12行目のIMAC命令のバタフライ部分のオ
ペランドとして用いられていることを示す表示“AAp
=b(A0p、%B0p)”が示されている。最後に、
図9では、レジスタファイルをバイパスし、直接バタフ
ライ装置602に向かって通過する乗算減算装置601
の結果が、“$”記号によって表示されている。例え
ば、4行目では、表示“$cX4=cmac(dX
4)”は、オペランドdX4に対して実行されたコサイ
ン乗算の結果cX4が、レジスタファイルをバイパス
し、バタフライ装置602に向かって直接通過すること
を表示している。
【0057】命令メモリ CPUの命令を実行するために用いられるマイクロコー
ドを記憶する命令メモリ216は、スタティック・ラム
(SRAM)からなる。命令メモリ216の内容は、C
PU201の初期化時に、ホスト計算機202によって
ロードされる。必要に応じて、マイクロコードの変更を
実行するために、SRAM内のマイクロコードが、DR
AM217からのマイクロコードによってオーバレイさ
れる。
ドを記憶する命令メモリ216は、スタティック・ラム
(SRAM)からなる。命令メモリ216の内容は、C
PU201の初期化時に、ホスト計算機202によって
ロードされる。必要に応じて、マイクロコードの変更を
実行するために、SRAM内のマイクロコードが、DR
AM217からのマイクロコードによってオーバレイさ
れる。
【0058】メモリコントローラ DRAMコントローラ206は、DRAM217と直接
対話し、外部DRAM217への書き込み及び外部DR
AM217からの読み出しに必要な信号を発生する。D
RAMコントローラ206は、命令FIFO207を通
して、CPUから開始アドレス及びオフセット情報を受
け取る。DRAMコントローラ206は、複数の転送が
リクエストされたとき、次のアドレスを計算する。この
ため、CPU201は、各メモリアクセス毎に各アドレ
スを発生する必要がないので、CPU201は、IDC
T動作のためのより広い帯域幅を備えている。
対話し、外部DRAM217への書き込み及び外部DR
AM217からの読み出しに必要な信号を発生する。D
RAMコントローラ206は、命令FIFO207を通
して、CPUから開始アドレス及びオフセット情報を受
け取る。DRAMコントローラ206は、複数の転送が
リクエストされたとき、次のアドレスを計算する。この
ため、CPU201は、各メモリアクセス毎に各アドレ
スを発生する必要がないので、CPU201は、IDC
T動作のためのより広い帯域幅を備えている。
【0059】図10は、本実施例のメモリコントローラ
モジュールのブロック図である。図10に示すように、
メモリコントローラモジュールは、DRAMコントロー
ラ206及び転送リクエストFIFO(TRF)207
としても知られている命令FIFO207を有する。未
決定のDRAMアクセスは、(1)バイトDRAMアク
セスの開始アドレスと、(2)リクエストされたアクセ
スが読み出しアクセスか、書き込みアクセスかの何れか
であることと、(3)フェッチされるべきメモリワード
の数(“長さ”)と、(4)もし適切ならば、オフセッ
トとを表示しているエントリをCPU201がメモリバ
ッファ108へ書き込むことによって、初期化される。
本実施例では、メモリバッファ101は、データソース
またはあて先に対する優先順位の順番に配置された、
(1)輝度ビデオFIFO208a用の1つのエントリ
と、(2)コードFIFO204用の1つのエントリ
と、(3)デコーダFIFO210用の1つのエントリ
と、(4)画素メモリFIFO213用の5個のエント
リと、(5)ホストメモリリクエスト用またはCPUメ
モリリクエスト用の1つのエントリと、(6)色光度ビ
デオFIFO208b用の1つのエントリとからなる、
11個のDRAMアクセスリクエストエントリを保持し
ている。メモリコントローラ206の動作を理解するた
めに、各ソースまたはあて先に配置された1個または複
数のエントリを1個のFIFOであると考えることがで
きる。
モジュールのブロック図である。図10に示すように、
メモリコントローラモジュールは、DRAMコントロー
ラ206及び転送リクエストFIFO(TRF)207
としても知られている命令FIFO207を有する。未
決定のDRAMアクセスは、(1)バイトDRAMアク
セスの開始アドレスと、(2)リクエストされたアクセ
スが読み出しアクセスか、書き込みアクセスかの何れか
であることと、(3)フェッチされるべきメモリワード
の数(“長さ”)と、(4)もし適切ならば、オフセッ
トとを表示しているエントリをCPU201がメモリバ
ッファ108へ書き込むことによって、初期化される。
本実施例では、メモリバッファ101は、データソース
またはあて先に対する優先順位の順番に配置された、
(1)輝度ビデオFIFO208a用の1つのエントリ
と、(2)コードFIFO204用の1つのエントリ
と、(3)デコーダFIFO210用の1つのエントリ
と、(4)画素メモリFIFO213用の5個のエント
リと、(5)ホストメモリリクエスト用またはCPUメ
モリリクエスト用の1つのエントリと、(6)色光度ビ
デオFIFO208b用の1つのエントリとからなる、
11個のDRAMアクセスリクエストエントリを保持し
ている。メモリコントローラ206の動作を理解するた
めに、各ソースまたはあて先に配置された1個または複
数のエントリを1個のFIFOであると考えることがで
きる。
【0060】DRAMアクセスリクエストは、(1)C
PU201が、メモリバッファ801内にラッチされて
いたメモリアクセスリクエストエントリをレジスタ80
4内に書き込んだ後と、(2)データソースまたはあて
先に対応するリクエストラインに信号が発生した後と
に、未決定となる。状態レジスタファイル803a〜8
03fは、各リクエストラインに対して、メモリアクセ
スリクエストが未決定であるかどうかを表示するレジス
タを提供する。本実施例は、画素メモリ213に対して
5個のエントリを配置しているので、画素メモリ213
に関連する未決定のメモリアクセスリクエストの数を表
示するために、5個のビットが提供されている。もちろ
ん、残りのデータソースまたはあて先に対応する他の状
態レジスタの各々に、1ビットが提供される。読み出し
リクエスト信号を発生させることにより、メモリバッフ
ァ801内のエントリは、CPU201によって読み出
すことができる。そのエントリは、CPU201によっ
て、レジスタ805から読み出される。
PU201が、メモリバッファ801内にラッチされて
いたメモリアクセスリクエストエントリをレジスタ80
4内に書き込んだ後と、(2)データソースまたはあて
先に対応するリクエストラインに信号が発生した後と
に、未決定となる。状態レジスタファイル803a〜8
03fは、各リクエストラインに対して、メモリアクセ
スリクエストが未決定であるかどうかを表示するレジス
タを提供する。本実施例は、画素メモリ213に対して
5個のエントリを配置しているので、画素メモリ213
に関連する未決定のメモリアクセスリクエストの数を表
示するために、5個のビットが提供されている。もちろ
ん、残りのデータソースまたはあて先に対応する他の状
態レジスタの各々に、1ビットが提供される。読み出し
リクエスト信号を発生させることにより、メモリバッフ
ァ801内のエントリは、CPU201によって読み出
すことができる。そのエントリは、CPU201によっ
て、レジスタ805から読み出される。
【0061】各DRAMアクセスが終了したとき、TR
Fエントリの長さフィールドの下位3ビットが0の時以
外は、フェッチさせるべきメモリワードの長さが1だけ
減算される。TRFエントリの長さフィールドの値が0
であることは、各メモリアクセスの後に、特定のオフセ
ットが長さから減算されるべきであることを表示してい
る。TRFエントリ内の各エントリもまた、転送のタイ
プと、バイト書き込み(即ち、16ビットのメモリワー
ドの内の8ビットだけが重ね書きされる)が実行される
かどうかとを表示する。
Fエントリの長さフィールドの下位3ビットが0の時以
外は、フェッチさせるべきメモリワードの長さが1だけ
減算される。TRFエントリの長さフィールドの値が0
であることは、各メモリアクセスの後に、特定のオフセ
ットが長さから減算されるべきであることを表示してい
る。TRFエントリ内の各エントリもまた、転送のタイ
プと、バイト書き込み(即ち、16ビットのメモリワー
ドの内の8ビットだけが重ね書きされる)が実行される
かどうかとを表示する。
【0062】本実施例では、ホスト計算機202が、T
RF207内への書き込みをするのみで、TRF207
からの読み出しをしないにもかかわらず、ホスト計算機
202もまた、CPU201のリクエストラインではな
く、CPU201が用いるのと概ね等しい方法で、ホス
トリクエストラインを用いて、DRAMアクセスをリク
エストする。
RF207内への書き込みをするのみで、TRF207
からの読み出しをしないにもかかわらず、ホスト計算機
202もまた、CPU201のリクエストラインではな
く、CPU201が用いるのと概ね等しい方法で、ホス
トリクエストラインを用いて、DRAMアクセスをリク
エストする。
【0063】未決定のメモリアクセス間の優先順位の裁
定は、上述の優先順位方式に基づいて、優先順位裁定回
路802によって行われる。DRAMコントローラ20
6が使用されないでいるならば、TRF207によっ
て、最も高い優先順位のリクエストが、DRAMコント
ローラ206に送られて、レジスタ806内に書き込ま
れる。DRAM206が優先順位の低いリクエストを処
理しているときに、優先順位の高いリクエストが、TR
F207によって受け取られたならば、優先順位裁定回
路802は、DRAMコントローラ206に、“より優
先順位の高いリクエストが未決定である”という信号を
送る。この実施例では、より優勢順位の高いリクエスト
が未決定中に、現在のメモリがページの境界にまたがっ
てアクセスしているならば、DRAMコントローラ20
6は、未完成の優先順位の低いリクエストをTRF20
7に戻し、より優先順位の高いリクエストの処理を開始
する。
定は、上述の優先順位方式に基づいて、優先順位裁定回
路802によって行われる。DRAMコントローラ20
6が使用されないでいるならば、TRF207によっ
て、最も高い優先順位のリクエストが、DRAMコント
ローラ206に送られて、レジスタ806内に書き込ま
れる。DRAM206が優先順位の低いリクエストを処
理しているときに、優先順位の高いリクエストが、TR
F207によって受け取られたならば、優先順位裁定回
路802は、DRAMコントローラ206に、“より優
先順位の高いリクエストが未決定である”という信号を
送る。この実施例では、より優勢順位の高いリクエスト
が未決定中に、現在のメモリがページの境界にまたがっ
てアクセスしているならば、DRAMコントローラ20
6は、未完成の優先順位の低いリクエストをTRF20
7に戻し、より優先順位の高いリクエストの処理を開始
する。
【0064】DRAMコントローラ206が使用されな
いでいて、かつDRAMアクセスリクエストがTRF2
07で未決定でないとき、TRF207は、コードFI
FO204の内容をDRAM217に転送するための
“コードFIFOエンプティ”リクエストを発生させ
る。コードFIFO208のメモリアクセスリクエスト
ラインに信号が発生していなくとも、コードFIFO2
04のリクエストに対応する有効なTRFエントリが存
在し、かつコードFIFO204が少なくとも1個また
は複数のワードを含んでいる間は、このコードFIFO
エンプティリクエストは発生している。コードFIFO
エンプティリクエストは、コードFIFO204の最後
の数ワードがDRAM217へ転送されることを確実に
する。
いでいて、かつDRAMアクセスリクエストがTRF2
07で未決定でないとき、TRF207は、コードFI
FO204の内容をDRAM217に転送するための
“コードFIFOエンプティ”リクエストを発生させ
る。コードFIFO208のメモリアクセスリクエスト
ラインに信号が発生していなくとも、コードFIFO2
04のリクエストに対応する有効なTRFエントリが存
在し、かつコードFIFO204が少なくとも1個また
は複数のワードを含んでいる間は、このコードFIFO
エンプティリクエストは発生している。コードFIFO
エンプティリクエストは、コードFIFO204の最後
の数ワードがDRAM217へ転送されることを確実に
する。
【0065】DRAMコントローラ206は、TRF2
07によって書き込まれた、DRAMアクセスリクエス
トをレジスタ806から受け取る。レジスタ806内の
DRAMアクセスリクエストのフォーマットは、メモリ
バッファ801内のTRFエントリのフォーマットと等
しい。アドレス発生ロジック807は、受け取ったDR
AMアクセスリクエストの開始アドレス、長さ、及びオ
フセット情報に基づいて一連のメモリアドレスを計算す
る。DRAMコントローラ206は、ステートマシン8
10によって制御され、そのステートマシンは、現在の
DRAMがページの境界にまたがってアクセスしている
ときに、上述されたように、他の未決定のDRAMアク
セスリクエストと、未完成のDRAMアクセスリクエス
トの優先権を検討し、かつ処理する。
07によって書き込まれた、DRAMアクセスリクエス
トをレジスタ806から受け取る。レジスタ806内の
DRAMアクセスリクエストのフォーマットは、メモリ
バッファ801内のTRFエントリのフォーマットと等
しい。アドレス発生ロジック807は、受け取ったDR
AMアクセスリクエストの開始アドレス、長さ、及びオ
フセット情報に基づいて一連のメモリアドレスを計算す
る。DRAMコントローラ206は、ステートマシン8
10によって制御され、そのステートマシンは、現在の
DRAMがページの境界にまたがってアクセスしている
ときに、上述されたように、他の未決定のDRAMアク
セスリクエストと、未完成のDRAMアクセスリクエス
トの優先権を検討し、かつ処理する。
【0066】DRAMコントローラ206がDRAMア
クセスを終了したとき、TRF207が、終了したDR
AMアクセスと等しいソースまたはあて先からの新しい
リクエストに、メモリバッファ801内のTRFエント
リを配置するように、“メモリリクエストダン”信号が
TRF207に送られる。この実施例では、DRAMコ
ントローラ206は、“オールモストダン”信号を次の
ときに送る。(1)現在のDRAMアクセスの終了の数
サイクル前。(2)現在のアクセスを打ち切る“キル”
信号がTRF207から受け取られた時。(3)現在の
DRAMアクセス中にページクロスが予想され、かつよ
り優先順位の高いDRAMアクセスリクエストが未決定
の時。“オールモストダン”信号が発生したとき、バス
812をTRF207とDRAMコントローラ206と
の間のコミュニケーションのために開放するため、TR
F207へのCPU201のアクセスがディスエーブル
される。
クセスを終了したとき、TRF207が、終了したDR
AMアクセスと等しいソースまたはあて先からの新しい
リクエストに、メモリバッファ801内のTRFエント
リを配置するように、“メモリリクエストダン”信号が
TRF207に送られる。この実施例では、DRAMコ
ントローラ206は、“オールモストダン”信号を次の
ときに送る。(1)現在のDRAMアクセスの終了の数
サイクル前。(2)現在のアクセスを打ち切る“キル”
信号がTRF207から受け取られた時。(3)現在の
DRAMアクセス中にページクロスが予想され、かつよ
り優先順位の高いDRAMアクセスリクエストが未決定
の時。“オールモストダン”信号が発生したとき、バス
812をTRF207とDRAMコントローラ206と
の間のコミュニケーションのために開放するため、TR
F207へのCPU201のアクセスがディスエーブル
される。
【0067】DRAMコントローラ206は、必要なイ
ンタフェース信号をDRAM217へ提供し、かつDR
AM217のリフレッシュアクティビティを制御する。
リフレッシュカウンタは、リフレッシュが実行される前
に、サイクル数のトラックを保存する。もし、リフレッ
シュカウンタのカウントが0になる前に、DRAMコン
トローラ206が使用されていない状態になったなら
ば、DRAMリフレッシュが実行される。一方、リフレ
ッシュカウンタのカウントが0になったならば、DRA
Mリフレッシュは、現在のDRAMアクセスの終了後
に、またはページ境界がクロスされたときに実行され
る。
ンタフェース信号をDRAM217へ提供し、かつDR
AM217のリフレッシュアクティビティを制御する。
リフレッシュカウンタは、リフレッシュが実行される前
に、サイクル数のトラックを保存する。もし、リフレッ
シュカウンタのカウントが0になる前に、DRAMコン
トローラ206が使用されていない状態になったなら
ば、DRAMリフレッシュが実行される。一方、リフレ
ッシュカウンタのカウントが0になったならば、DRA
Mリフレッシュは、現在のDRAMアクセスの終了後
に、またはページ境界がクロスされたときに実行され
る。
【0068】可変長コード(VLC)デコーダ DRAMコントローラ206及び画素フィルタ214と
同じように、VLCデコーダ211は、CPU201に
対するスレーブプロセッサとして働く。VLCレコーダ
211の命令は、次の機能を実行する。(1)DRAM
217から検索された可変長コードのストリームを、C
PU201の指図のもとにあるデコーダFIFO210
内に受け取る。(2)MPEG規格に基づいて、可変長
コードをデコードする。(3)CPU201内での“非
ジグザグ”化及び逆量子化のために画素の8×8ブロッ
クを構成する。(4)同時に、コードストリームのビッ
トの内の15個以上のビットを提供する。
同じように、VLCデコーダ211は、CPU201に
対するスレーブプロセッサとして働く。VLCレコーダ
211の命令は、次の機能を実行する。(1)DRAM
217から検索された可変長コードのストリームを、C
PU201の指図のもとにあるデコーダFIFO210
内に受け取る。(2)MPEG規格に基づいて、可変長
コードをデコードする。(3)CPU201内での“非
ジグザグ”化及び逆量子化のために画素の8×8ブロッ
クを構成する。(4)同時に、コードストリームのビッ
トの内の15個以上のビットを提供する。
【0069】図13は、VLCデコーダ211と、デコ
ーダFIFO210とを含むVLCデコーダモジュール
を示す。図13に示すように、デコーダFIFO210
は、グローバルバス209を通してDRAM217から
可変長コードのストリームを受け取る。制御情報(即
ち、命令)もまた、CPU201から受け取られ、そし
てグローバルデータデコード装置1106の一部である
デコーダ命令レジスタ内に記憶される。ある可変長コー
ドのデコードされた値が、9ビットデータバス1101
上のジグザグメモリ212に提供される。VLCデコー
ダ211の他の出力値は、グローバルバス209上に提
供される。ステータスレジスタ(図示されていない)
は、グローバルバス209を通してCPU201によっ
てアクセスされるステータス情報を提供する。
ーダFIFO210とを含むVLCデコーダモジュール
を示す。図13に示すように、デコーダFIFO210
は、グローバルバス209を通してDRAM217から
可変長コードのストリームを受け取る。制御情報(即
ち、命令)もまた、CPU201から受け取られ、そし
てグローバルデータデコード装置1106の一部である
デコーダ命令レジスタ内に記憶される。ある可変長コー
ドのデコードされた値が、9ビットデータバス1101
上のジグザグメモリ212に提供される。VLCデコー
ダ211の他の出力値は、グローバルバス209上に提
供される。ステータスレジスタ(図示されていない)
は、グローバルバス209を通してCPU201によっ
てアクセスされるステータス情報を提供する。
【0070】VLCデコーダ211への命令は6ビット
幅である。セットの時、ビット5(即ち、最上位ビッ
ト)は、VLCデコーダ211をリセットする。通常の
動作中即ちビット5が0のときには、下位の5ビット
(4:0)は、(1)コードストリームからグローバル
バス209へのビット1〜15を出力する、15個の
“ゲットビット”命令の内の1つ、及び(2)残りのV
LCデコーダ命令、の内の何れかをエンコードする。こ
れらの残りのデコーダ命令は、“mba”(マクロブロ
ックアドレス)、“mtypei”(内部フレームマク
ロブロック)、“mtypep”(予測フレームマクロ
ブロック)、“mtypeh”(h.264タイプマク
ロブロック)、“mtypeb”(双方向性マクロブロ
ック)、“mv”(動作ベクトル)、“cbp”(デコ
ードされたブロックパターン)、“luma”(輝度ブ
ロック)、“chroma”(色光度ブロック)、及び
“non−intra”(DC成分を伴わないブロッ
ク)からなる。ここで、“mtypeh”以外のこれら
の命令は、MPEG規格で定義されたデータオブジェク
トに対応する。“mtypeh”は、テレビ会議用アプ
リケーションで用いられるh.264規格によって定義
されたマクロブロックを表している。これらの残りのV
LCデコーダ命令は、VLCデコーダ211による、コ
ードストリームの“ヘッド”での可変長コードのデコー
ドを指図する。そのデコードされた値が、Zデータバス
1101上の出力である、“luma”、“chrom
a”、及び“non−intra”命令を除いて、VL
Cデコーダ211の命令のデコードされた値の出力は、
(レジスタ1102a〜1102dで形成された)デコ
ーダレジスタ内に記憶され、グローバルバス209上の
CPU201に提供される。
幅である。セットの時、ビット5(即ち、最上位ビッ
ト)は、VLCデコーダ211をリセットする。通常の
動作中即ちビット5が0のときには、下位の5ビット
(4:0)は、(1)コードストリームからグローバル
バス209へのビット1〜15を出力する、15個の
“ゲットビット”命令の内の1つ、及び(2)残りのV
LCデコーダ命令、の内の何れかをエンコードする。こ
れらの残りのデコーダ命令は、“mba”(マクロブロ
ックアドレス)、“mtypei”(内部フレームマク
ロブロック)、“mtypep”(予測フレームマクロ
ブロック)、“mtypeh”(h.264タイプマク
ロブロック)、“mtypeb”(双方向性マクロブロ
ック)、“mv”(動作ベクトル)、“cbp”(デコ
ードされたブロックパターン)、“luma”(輝度ブ
ロック)、“chroma”(色光度ブロック)、及び
“non−intra”(DC成分を伴わないブロッ
ク)からなる。ここで、“mtypeh”以外のこれら
の命令は、MPEG規格で定義されたデータオブジェク
トに対応する。“mtypeh”は、テレビ会議用アプ
リケーションで用いられるh.264規格によって定義
されたマクロブロックを表している。これらの残りのV
LCデコーダ命令は、VLCデコーダ211による、コ
ードストリームの“ヘッド”での可変長コードのデコー
ドを指図する。そのデコードされた値が、Zデータバス
1101上の出力である、“luma”、“chrom
a”、及び“non−intra”命令を除いて、VL
Cデコーダ211の命令のデコードされた値の出力は、
(レジスタ1102a〜1102dで形成された)デコ
ーダレジスタ内に記憶され、グローバルバス209上の
CPU201に提供される。
【0071】本実施例では、デコーダFIFO210
は、FIFOアドレスロジック装置1103内に保持さ
れている5ビットの書き込み及び読み出しポインタによ
ってアドレス指定可能な、32×16ビットFIFOか
らなる。フリーズロジック装置1104は、デコーダF
IFO210が空のとき、VLCデコーダ211の動作
を停止する。VLCデコーダ211は、図13に102
4×15ビット読み出し専用メモリ(ROM)1105
として示されている制御記憶装置によって制御され、R
OM1105はまた、可変長コードのデコードされた値
を記憶する。ROM1105内の可変長コードのデコー
ディングは、表検索によって実行される。
は、FIFOアドレスロジック装置1103内に保持さ
れている5ビットの書き込み及び読み出しポインタによ
ってアドレス指定可能な、32×16ビットFIFOか
らなる。フリーズロジック装置1104は、デコーダF
IFO210が空のとき、VLCデコーダ211の動作
を停止する。VLCデコーダ211は、図13に102
4×15ビット読み出し専用メモリ(ROM)1105
として示されている制御記憶装置によって制御され、R
OM1105はまた、可変長コードのデコードされた値
を記憶する。ROM1105内の可変長コードのデコー
ディングは、表検索によって実行される。
【0072】図13に示された本実施例では、デコーダ
命令レジスタの命令が、“ゲットビット”命令(即ち、
命令のビット4が0)のとき、ROMアドレス発生器1
107は、(1)予め決められたビットパターン(この
場合、6ビット値101011)と、(2)その命令の
下位4ビットとからなるアドレスを発生させる。命令
が、“ゲットビット”命令以外の命令ならば、(1)先
頭の値0の2個のビットと、(2)その命令の下位4ビ
ットと、(3)コードストリームのヘッドの最初の4個
のビットとからなる10ビットアドレスを発生させる。
命令レジスタの命令が、“ゲットビット”命令(即ち、
命令のビット4が0)のとき、ROMアドレス発生器1
107は、(1)予め決められたビットパターン(この
場合、6ビット値101011)と、(2)その命令の
下位4ビットとからなるアドレスを発生させる。命令
が、“ゲットビット”命令以外の命令ならば、(1)先
頭の値0の2個のビットと、(2)その命令の下位4ビ
ットと、(3)コードストリームのヘッドの最初の4個
のビットとからなる10ビットアドレスを発生させる。
【0073】VLCデコーダ211によってデコードさ
れた可変長コードが12ビットになる可能性があるの
で、発生させられたROMアドレスからわかるように、
コードストリームの内の高々4ビットが、ROM110
5へのアクセス毎に用いられ、与えられた可変長コード
のデコーディングには、複数のクロックとROM110
5への複数のアクセスが必要となる。“luma”のよ
うな他の命令もまた、終了するためには、複数のクロッ
クとROM1105への複数のアクセスを必要とする。
ROM1105の現在のワード“現在のROMワード”
の最上位ビット(14)がセットされたとき、現在の命
令の実行が終了したこと、または、現在の命令がブロッ
ク命令(即ち、“luma”、“chroma”、及び
“non−intra”の内の何れか)であるときは、
ラン長さ(runlength)が特定されたことを表示する。
ラン長さが特定されたとき、(特定されたラン長さと等
しい)0の数が、zデータバス205へ出力されるため
に“アンパック”される(unpacked)。ブロック命令
は、次に説明するような特別な取扱いを必要とする。
れた可変長コードが12ビットになる可能性があるの
で、発生させられたROMアドレスからわかるように、
コードストリームの内の高々4ビットが、ROM110
5へのアクセス毎に用いられ、与えられた可変長コード
のデコーディングには、複数のクロックとROM110
5への複数のアクセスが必要となる。“luma”のよ
うな他の命令もまた、終了するためには、複数のクロッ
クとROM1105への複数のアクセスを必要とする。
ROM1105の現在のワード“現在のROMワード”
の最上位ビット(14)がセットされたとき、現在の命
令の実行が終了したこと、または、現在の命令がブロッ
ク命令(即ち、“luma”、“chroma”、及び
“non−intra”の内の何れか)であるときは、
ラン長さ(runlength)が特定されたことを表示する。
ラン長さが特定されたとき、(特定されたラン長さと等
しい)0の数が、zデータバス205へ出力されるため
に“アンパック”される(unpacked)。ブロック命令
は、次に説明するような特別な取扱いを必要とする。
【0074】現在ワードのビット13及び12は、コー
ドストリームのヘッドを進めるために、ビットの数をデ
コードする。本実施例では、コードストリームのヘッド
を進めることは、ビットストリームロジック1108の
制御のもとで、左シフタ1109及び右シフタ1110
によって実行される。
ドストリームのヘッドを進めるために、ビットの数をデ
コードする。本実施例では、コードストリームのヘッド
を進めることは、ビットストリームロジック1108の
制御のもとで、左シフタ1109及び右シフタ1110
によって実行される。
【0075】現在のROMワードのビット14が、現在
の命令の実行が終了していないことを表示する値0であ
るとき、次のROMアドレスを提供するために、現在の
ROMワードの6個のビット(9:4)は、(1)現在
のROMワードのビット11がセットされているとき
は、コードストリームのヘッドの次の4個のビットと、
(2)現在のROMワードのビット10がセットされて
いるときは、現在のROMワードの他の4個のビット
(3:0)と結合される。現在のROMワードのビット
11の値は、次のROMアクセスがデコーディングの目
的のためであり、従って次のROMアドレスの残りの4
個のビットがコードストリームのヘッドから取り出され
ることが必要であることを表示する。一方、次のROM
アクセスが、現在のROMワードのビット10の値によ
って表示されるように、制御の目的のためであるなら
ば、次のROMアドレスの残りの4個のビットは、現在
のROMワードのビット(3:0)から取り出される。
の命令の実行が終了していないことを表示する値0であ
るとき、次のROMアドレスを提供するために、現在の
ROMワードの6個のビット(9:4)は、(1)現在
のROMワードのビット11がセットされているとき
は、コードストリームのヘッドの次の4個のビットと、
(2)現在のROMワードのビット10がセットされて
いるときは、現在のROMワードの他の4個のビット
(3:0)と結合される。現在のROMワードのビット
11の値は、次のROMアクセスがデコーディングの目
的のためであり、従って次のROMアドレスの残りの4
個のビットがコードストリームのヘッドから取り出され
ることが必要であることを表示する。一方、次のROM
アクセスが、現在のROMワードのビット10の値によ
って表示されるように、制御の目的のためであるなら
ば、次のROMアドレスの残りの4個のビットは、現在
のROMワードのビット(3:0)から取り出される。
【0076】現在の命令がブロック命令であって、デコ
ードされたAC値−ラン長さの組のラン長さの部分が特
定されたことを表示するべく、現在のROMワードのビ
ツト14がセットされているならば、次のROMアドレ
スは、予め決められた4ビットパターン(本実施例で
は、1101)及び特定された6ビットのラン長さによ
って形成される。特定されたラン長さは、(1)ブロッ
クの終わり(EOB)のシンボルが特定されたときは、
zデータカウンタ1111の中に、(2)短いエスケー
プシンボルが特定されたときは、レジスタ1102bと
レジスタ1102cとの内容をカスケードにすることに
よって得られた値の中に、(3)長いエスケープシンボ
ルが特定されたときは、レジスタ1102aとレジスタ
1102bとの内容をカスケードすることによって得ら
れた値の中に、(4)それ以外の時は、現在のROMワ
ードのビット(10:6)の中に見いだせる。次のよう
な3つの違法な範囲がある。(1)ビットパタ−ン 1
000_0000_0000_0000によって表現さ
れる値。(2)1000_0000_1000_000
1から1000_0000_1111_1111までの
範囲。(3)0000_0000_0000_0000
から0000_0000_0111_1111までの範
囲。レベルコードが正当な範囲内にあることの確認は、
デコーディング動作に関する前述された方法と同じよう
に、最後にアクセスされたROMアドレスの特定のビッ
トを用いて、クロック周期毎に、コードストリームから
シフトされた4個のビットをROMの下位アドレスへ写
すことによって完了する。もし16ビットのレベルコー
ドが違法な範囲内にあるならば、到着したROM内のア
ドレスの内容は、違法な16ビットレベルコードの信号
を送る。
ードされたAC値−ラン長さの組のラン長さの部分が特
定されたことを表示するべく、現在のROMワードのビ
ツト14がセットされているならば、次のROMアドレ
スは、予め決められた4ビットパターン(本実施例で
は、1101)及び特定された6ビットのラン長さによ
って形成される。特定されたラン長さは、(1)ブロッ
クの終わり(EOB)のシンボルが特定されたときは、
zデータカウンタ1111の中に、(2)短いエスケー
プシンボルが特定されたときは、レジスタ1102bと
レジスタ1102cとの内容をカスケードにすることに
よって得られた値の中に、(3)長いエスケープシンボ
ルが特定されたときは、レジスタ1102aとレジスタ
1102bとの内容をカスケードすることによって得ら
れた値の中に、(4)それ以外の時は、現在のROMワ
ードのビット(10:6)の中に見いだせる。次のよう
な3つの違法な範囲がある。(1)ビットパタ−ン 1
000_0000_0000_0000によって表現さ
れる値。(2)1000_0000_1000_000
1から1000_0000_1111_1111までの
範囲。(3)0000_0000_0000_0000
から0000_0000_0111_1111までの範
囲。レベルコードが正当な範囲内にあることの確認は、
デコーディング動作に関する前述された方法と同じよう
に、最後にアクセスされたROMアドレスの特定のビッ
トを用いて、クロック周期毎に、コードストリームから
シフトされた4個のビットをROMの下位アドレスへ写
すことによって完了する。もし16ビットのレベルコー
ドが違法な範囲内にあるならば、到着したROM内のア
ドレスの内容は、違法な16ビットレベルコードの信号
を送る。
【0077】本実施例では、デコーダFIFO210出
力レジスタ、16ビットレジスタ1112、5ビットレ
ジスタ1113、4ビットレジスタ1102d、4ビッ
トレジスタ1102c、4ビットレジスタ1102b、
及び3ビットレジスタ1102aが、7ステージのパイ
プラインされたデータパスを形成する。更に、レジスタ
1102a〜1102dもまた、15ビットレジスタと
して取り扱われることが可能である。
力レジスタ、16ビットレジスタ1112、5ビットレ
ジスタ1113、4ビットレジスタ1102d、4ビッ
トレジスタ1102c、4ビットレジスタ1102b、
及び3ビットレジスタ1102aが、7ステージのパイ
プラインされたデータパスを形成する。更に、レジスタ
1102a〜1102dもまた、15ビットレジスタと
して取り扱われることが可能である。
【0078】各クロック周期の始めに、レフトシフタ1
109は、レジスタ1113にコードストリームのヘッ
ドの5個のビットを提供する。その内の4個のビットは
次のROMワードをアクセスするために用いられ、その
4個のビットは、次のクロック周期にコードストリーム
のヘッドを進めるためのビットの数(4ビット以上)を
提供する。本実施例では、コードストリームのヘッド
は、ビットストリームロジック装置1108内のビット
ポインタによってモニタされる。ビットポインタが、レ
ジスタ1112のビット0でのコードビットを通過し
て、(最下位ビットに向かって)進んだ後の1クロック
周期では、デコーダFIFO210の出力レジスタの内
容が、レジスタ1112内にロードされ、デコーダFI
FO210の次のエントリが、デコーダFIFO210
の出力レジスタにロードされる。デコーダFIFO21
0の出力レジスタの上位9ビットは、レフトシフタ11
09が利用可能なので、(デコーダFIFO210の出
力レジスタ内の)コードストリームのヘッドの5個のビ
ットは、立ち往生することなしに、次のROMアドレス
を形成するべく、レフトシフタ1109によって提供さ
れる。4個のビットのみが次のROMアドレスを形成す
るために使用され、コードストリームのヘッドの5番目
のビットは、後続の振幅値の符号を決定するべく、AC
係数を決定した後に、ブロック命令内で直ちに使用され
る。
109は、レジスタ1113にコードストリームのヘッ
ドの5個のビットを提供する。その内の4個のビットは
次のROMワードをアクセスするために用いられ、その
4個のビットは、次のクロック周期にコードストリーム
のヘッドを進めるためのビットの数(4ビット以上)を
提供する。本実施例では、コードストリームのヘッド
は、ビットストリームロジック装置1108内のビット
ポインタによってモニタされる。ビットポインタが、レ
ジスタ1112のビット0でのコードビットを通過し
て、(最下位ビットに向かって)進んだ後の1クロック
周期では、デコーダFIFO210の出力レジスタの内
容が、レジスタ1112内にロードされ、デコーダFI
FO210の次のエントリが、デコーダFIFO210
の出力レジスタにロードされる。デコーダFIFO21
0の出力レジスタの上位9ビットは、レフトシフタ11
09が利用可能なので、(デコーダFIFO210の出
力レジスタ内の)コードストリームのヘッドの5個のビ
ットは、立ち往生することなしに、次のROMアドレス
を形成するべく、レフトシフタ1109によって提供さ
れる。4個のビットのみが次のROMアドレスを形成す
るために使用され、コードストリームのヘッドの5番目
のビットは、後続の振幅値の符号を決定するべく、AC
係数を決定した後に、ブロック命令内で直ちに使用され
る。
【0079】レフトシフタ1109の5ビット出力の右
シフトを提供することに加えて、ライトシフタ1110
もまた、“luma”ブロック命令及び“chrom
a”ブロック命令のDC及びAC成分のシフトされた値
に符号ビットをつける。上述されたように、VLCデコ
ーダ211の制御は、ROM1105によって実行され
る。例えば、AC係数−ラン長さの組のラン長さのデコ
ーディングの後に、現在のブロック命令の実行の終わり
までアクセスされた各ROMワードは、zデータカウン
タ1111を直接減少させ、そしてzデータバス205
上に値0が出力されることを可能にする。
シフトを提供することに加えて、ライトシフタ1110
もまた、“luma”ブロック命令及び“chrom
a”ブロック命令のDC及びAC成分のシフトされた値
に符号ビットをつける。上述されたように、VLCデコ
ーダ211の制御は、ROM1105によって実行され
る。例えば、AC係数−ラン長さの組のラン長さのデコ
ーディングの後に、現在のブロック命令の実行の終わり
までアクセスされた各ROMワードは、zデータカウン
タ1111を直接減少させ、そしてzデータバス205
上に値0が出力されることを可能にする。
【0080】ライトシフタ1110及びレフトシフタ1
109は、“ゲットビット”命令のビットのシフトを提
供する。1クロック周期当たり多くとも4ビットがシフ
トされるので、4ビットよりも多くのビットを得るため
には、複数のクロック周期が必要となる。“ゲットnビ
ット”命令のための、最初のクロック周期では、(4を
法とする)nビットは、右シフトされ、残りの数のビッ
トは、レジスタ1102a〜1102dによって形成さ
れたパイプライン内へ、同時に連続して4ビット分シフ
トされる。
109は、“ゲットビット”命令のビットのシフトを提
供する。1クロック周期当たり多くとも4ビットがシフ
トされるので、4ビットよりも多くのビットを得るため
には、複数のクロック周期が必要となる。“ゲットnビ
ット”命令のための、最初のクロック周期では、(4を
法とする)nビットは、右シフトされ、残りの数のビッ
トは、レジスタ1102a〜1102dによって形成さ
れたパイプライン内へ、同時に連続して4ビット分シフ
トされる。
【0081】VLCデコーダ211の出力値が、現在の
ROMワードから取り出されたとき、グローバルバス2
09のビット14〜10は、0にセットされ、現在のR
OMワード9〜0は、マルチプレクサ1114a及び1
114bを通してグローバルバス209上のビット9〜
0として出力される。もしVLCデコーダ211の出力
値がコードストリームから取り出されるならば、マルチ
プレクサ1114a及び1114bは、各々レジスタ1
102a及びライトシフタ1110の出力データを選択
する。マルチプレクサ1114a及び1114bは、各
々反転出力値を提供するために選択される。そのような
反転出力値は、ブロック命令の実行中に、もし必要であ
れば、DC振幅値の1の補数またはAC振幅値の2の補
数を提供するために望ましい。zデータインクリメンタ
1113は、1の補数計算または2の補数計算を完了す
る。
ROMワードから取り出されたとき、グローバルバス2
09のビット14〜10は、0にセットされ、現在のR
OMワード9〜0は、マルチプレクサ1114a及び1
114bを通してグローバルバス209上のビット9〜
0として出力される。もしVLCデコーダ211の出力
値がコードストリームから取り出されるならば、マルチ
プレクサ1114a及び1114bは、各々レジスタ1
102a及びライトシフタ1110の出力データを選択
する。マルチプレクサ1114a及び1114bは、各
々反転出力値を提供するために選択される。そのような
反転出力値は、ブロック命令の実行中に、もし必要であ
れば、DC振幅値の1の補数またはAC振幅値の2の補
数を提供するために望ましい。zデータインクリメンタ
1113は、1の補数計算または2の補数計算を完了す
る。
【0082】画素フィルタ及び動作補償 画素フィルタ214は、メモリコントローラ206から
の基準フレームを受け取り、かつCPU201からの復
元されたビデオデータを、画素メモリ213から検索す
る。MPEG規格に基づけば、基準フレームは、ビデオ
データを基準フレームに関連づける(“予測する”)1
個または複数のモーションベクトルを用いて、復元され
たビデオデータと結合される。結果として得られた映像
は、後の出力のために、ビデオFIFO217及びビデ
オバス205によってDRAM217に記憶される。M
PEG規格のもとでは、復元されたビデオデータは、予
告を表現せず(即ち、基準フレームとは無関係であ
り)、逆の予告を表現し(即ち、過去の時刻の基準フレ
ームに依存する)、先の予告を表現し(即ち、将来の時
刻の基準フレームに依存して)、または、内捜された予
告を表現(即ち、将来の時刻の基準フレーム及び過去の
時刻の基準フレームの両方に依存)する。
の基準フレームを受け取り、かつCPU201からの復
元されたビデオデータを、画素メモリ213から検索す
る。MPEG規格に基づけば、基準フレームは、ビデオ
データを基準フレームに関連づける(“予測する”)1
個または複数のモーションベクトルを用いて、復元され
たビデオデータと結合される。結果として得られた映像
は、後の出力のために、ビデオFIFO217及びビデ
オバス205によってDRAM217に記憶される。M
PEG規格のもとでは、復元されたビデオデータは、予
告を表現せず(即ち、基準フレームとは無関係であ
り)、逆の予告を表現し(即ち、過去の時刻の基準フレ
ームに依存する)、先の予告を表現し(即ち、将来の時
刻の基準フレームに依存して)、または、内捜された予
告を表現(即ち、将来の時刻の基準フレーム及び過去の
時刻の基準フレームの両方に依存)する。
【0083】本実施例では、ビデオデータが“否予測”
タイプでなければ、1個または複数の基準フレームのブ
ロックが、DRAM217からフェッチされる。これら
のブロックは各々、9×9要素からなる。DRAM21
7の各ページは、8列及び32行の画素(1ページ当た
り256個の画素)を記憶するので、9×9のフェッチ
は、少なくとも1つのページ境界と交差する。(実際、
DRAM217の1ワードに2個の画素が記憶されてい
るので、実際のフェッチは、10×9ブロックの画素を
含む。)ページとの交差を最小にするために、本実施例
では、次のページメモリ内に存在するブロックの残りの
画素がアクセスされる前に、あるメモリページ内に存在
する9×9ブロックの画素の全てがアクセスされる、ア
クセス方法を用いている。この方法は、米国特許出願第
07/669,818号明細書に開示された実施例の動
作補償に関連して説明されている。この特許出願明細書
は、ここで言及したことによって本出願の一部とされた
い。
タイプでなければ、1個または複数の基準フレームのブ
ロックが、DRAM217からフェッチされる。これら
のブロックは各々、9×9要素からなる。DRAM21
7の各ページは、8列及び32行の画素(1ページ当た
り256個の画素)を記憶するので、9×9のフェッチ
は、少なくとも1つのページ境界と交差する。(実際、
DRAM217の1ワードに2個の画素が記憶されてい
るので、実際のフェッチは、10×9ブロックの画素を
含む。)ページとの交差を最小にするために、本実施例
では、次のページメモリ内に存在するブロックの残りの
画素がアクセスされる前に、あるメモリページ内に存在
する9×9ブロックの画素の全てがアクセスされる、ア
クセス方法を用いている。この方法は、米国特許出願第
07/669,818号明細書に開示された実施例の動
作補償に関連して説明されている。この特許出願明細書
は、ここで言及したことによって本出願の一部とされた
い。
【0084】図11は、画素フィルタ213のブロック
図である。画素ペアはDRAM217からフェッチさ
れ、かつグローバルバス209上に画素フィルタ213
が備えられている。動作ベクトルは、各々Xレジスタと
Yレジスタ(図示されていない)とに記憶されたX成分
とY成分とからなる。動作ベクトルのX成分は、フェッ
チされた画素の10×9ブロック内の最初の行が9×9
画素基準ブロックの一部であるかどうかを表示する。動
作ベクトルのY成分は、フェッチされた10×9ブロッ
クの幾つの列が最初のメモリページ内に存在するかを表
示する。
図である。画素ペアはDRAM217からフェッチさ
れ、かつグローバルバス209上に画素フィルタ213
が備えられている。動作ベクトルは、各々Xレジスタと
Yレジスタ(図示されていない)とに記憶されたX成分
とY成分とからなる。動作ベクトルのX成分は、フェッ
チされた画素の10×9ブロック内の最初の行が9×9
画素基準ブロックの一部であるかどうかを表示する。動
作ベクトルのY成分は、フェッチされた10×9ブロッ
クの幾つの列が最初のメモリページ内に存在するかを表
示する。
【0085】他のサイクル毎に、画素ペアはグローバル
バス209に到着し、各サイクル毎に、画素フィルタ2
13は1画素を処理する。9×8ビットのランダムアク
セスメモリからなる行メモリ901は、以前にアクセス
された最後の行の画素を記憶する。現在の行の画素が到
着したとき、到着した各々の画素は、加算器902によ
って、行メモリ901に記憶された同じ列の画素と平均
化される(X方向にフィルタされる)。次に到着した画
素は、行メモリ901に記憶された対応する画素に置き
換えられる。加算器902の結果は、パイプラインレジ
スタ903内にラッチされる。
バス209に到着し、各サイクル毎に、画素フィルタ2
13は1画素を処理する。9×8ビットのランダムアク
セスメモリからなる行メモリ901は、以前にアクセス
された最後の行の画素を記憶する。現在の行の画素が到
着したとき、到着した各々の画素は、加算器902によ
って、行メモリ901に記憶された同じ列の画素と平均
化される(X方向にフィルタされる)。次に到着した画
素は、行メモリ901に記憶された対応する画素に置き
換えられる。加算器902の結果は、パイプラインレジ
スタ903内にラッチされる。
【0086】次に、フィルタされた画素は、加算器90
5によって、列メモリ904に記憶されていた先行する
列のフィルタされた画素と平均化(y方向にフィルタ)
される。パイプラインレジスタ903から入ってくる各
画素は、列メモリ904内の対応する画素と置き代わ
る。加算器905からの結果として得られたフィルタさ
れた画素は、パイプラインレジスタ906内に連続的に
ラッチされる。x方向及びy方向での平均の最終結果
は、MPEG規格によって要求されるような、1/2の
画素による8×8ブロックの変換(“再サンプリン
グ”)である。次に、再サンプリングされた基準フレー
ムは、加算器906によって、画素メモリ213内の復
元されたビデオデータに加えられる。画素213は2つ
の部分からなり、各部分は、交互に、二重のバッファ方
式内にCPU201からの復元されたデータを受け取
り、かつ画素フィルタ213内の画素フィルタリングへ
画素を提供する。
5によって、列メモリ904に記憶されていた先行する
列のフィルタされた画素と平均化(y方向にフィルタ)
される。パイプラインレジスタ903から入ってくる各
画素は、列メモリ904内の対応する画素と置き代わ
る。加算器905からの結果として得られたフィルタさ
れた画素は、パイプラインレジスタ906内に連続的に
ラッチされる。x方向及びy方向での平均の最終結果
は、MPEG規格によって要求されるような、1/2の
画素による8×8ブロックの変換(“再サンプリン
グ”)である。次に、再サンプリングされた基準フレー
ムは、加算器906によって、画素メモリ213内の復
元されたビデオデータに加えられる。画素213は2つ
の部分からなり、各部分は、交互に、二重のバッファ方
式内にCPU201からの復元されたデータを受け取
り、かつ画素フィルタ213内の画素フィルタリングへ
画素を提供する。
【0087】本実施例では、xレジスタ及びyレジスタ
が、前方動作ベクトル及び後方動作ベクトルのために備
えられている。内捜された予測ブロックを処理すると
き、(前方動作ベクトルに関連した)前方基準フレーム
は、前方補償のために最初にフェッチされる。前方補償
の結果は、前方補償の後にフェッチされる後方基準フレ
ームを用いた後方補償のために、画素メモリ213に記
憶される。
が、前方動作ベクトル及び後方動作ベクトルのために備
えられている。内捜された予測ブロックを処理すると
き、(前方動作ベクトルに関連した)前方基準フレーム
は、前方補償のために最初にフェッチされる。前方補償
の結果は、前方補償の後にフェッチされる後方基準フレ
ームを用いた後方補償のために、画素メモリ213に記
憶される。
【0088】ビデオインタフェース フィルタされ、そして動作補償されたビデオデータは、
ビデオデコーダ200の出力として、ビデオインタフェ
ースへのビデオバス205上に提供される。ビデオイン
タフェースのブロック図が、図12に示されている。図
12に示すように、ビデオデータは、画素の組として、
グローバルバス209を通して、(図12では符号10
00によって概ね表示されている)ビデオインタフェー
スに提供される。CPU201はまた、グローバルバス
209を通してビデオインタフェース1000に制御情
報を提供する。そのような制御情報は、例えば、YUV
表現されたデータ(即ち輝度/色光度表現)とRGB表
現されたデータとの間及びスキャンライン上のアクティ
ブデータの開始位置と終了位置との間の変換のために必
要な変換因子を含む。変換因子は、レジスタ1001に
記憶されている。同期化信号YSYNC及びHSYNC
(垂直及び水平同期化信号)を受け取るタイミングロジ
ック1002は、ビデオインタフェース1000の動作
を、受け取られたビデオデータストリームに同期させ
る。
ビデオデコーダ200の出力として、ビデオインタフェ
ースへのビデオバス205上に提供される。ビデオイン
タフェースのブロック図が、図12に示されている。図
12に示すように、ビデオデータは、画素の組として、
グローバルバス209を通して、(図12では符号10
00によって概ね表示されている)ビデオインタフェー
スに提供される。CPU201はまた、グローバルバス
209を通してビデオインタフェース1000に制御情
報を提供する。そのような制御情報は、例えば、YUV
表現されたデータ(即ち輝度/色光度表現)とRGB表
現されたデータとの間及びスキャンライン上のアクティ
ブデータの開始位置と終了位置との間の変換のために必
要な変換因子を含む。変換因子は、レジスタ1001に
記憶されている。同期化信号YSYNC及びHSYNC
(垂直及び水平同期化信号)を受け取るタイミングロジ
ック1002は、ビデオインタフェース1000の動作
を、受け取られたビデオデータストリームに同期させ
る。
【0089】入ってくる画素の各組の画素は、YUV表
現されていて、かつ等しいY、U、及びV型である。こ
れらの画素は、各々がビデオFIFO208a及びビデ
オFIFO208bと呼ばれる2個のFIFOからなる
ビデオFIFO208に記憶されている。ビデオFIF
O208a及びビデオFIFO208bは、各々輝度
(Y)データ及び色光度(UまたはV)データを記憶す
る。
現されていて、かつ等しいY、U、及びV型である。こ
れらの画素は、各々がビデオFIFO208a及びビデ
オFIFO208bと呼ばれる2個のFIFOからなる
ビデオFIFO208に記憶されている。ビデオFIF
O208a及びビデオFIFO208bは、各々輝度
(Y)データ及び色光度(UまたはV)データを記憶す
る。
【0090】本実施例では、YUV表現されたデータ
は、ユーザの選択によって、出力のために、RGB表現
されたデータに変換されることもできる。YUV表現さ
れたデータからRGB表現されたデータへの変換は、ブ
ロック1003内で実行される。外部から提供されるビ
デオクロック信号VCLKを受け取る同期化回路100
4は、所望の速度で、24ビットバス1006上に出力
ビデオデータを提供する。
は、ユーザの選択によって、出力のために、RGB表現
されたデータに変換されることもできる。YUV表現さ
れたデータからRGB表現されたデータへの変換は、ブ
ロック1003内で実行される。外部から提供されるビ
デオクロック信号VCLKを受け取る同期化回路100
4は、所望の速度で、24ビットバス1006上に出力
ビデオデータを提供する。
【0091】これまでの詳細な説明は、本発明の特定の
実施例を例示するために提供されたものであって、本発
明に制限を加えることを意図するものではない。本発明
の技術的視点内で種々の変形、変更が可能である。本発
明は、添付の請求項によって定義される。
実施例を例示するために提供されたものであって、本発
明に制限を加えることを意図するものではない。本発明
の技術的視点内で種々の変形、変更が可能である。本発
明は、添付の請求項によって定義される。
【0092】
【発明の効果】本発明に基づく復元プロセッサによっ
て、ビデオ信号のリアルタイムの復元と、現在の計算機
または集積回路技術を用いた経済的な実施が可能になっ
た。
て、ビデオ信号のリアルタイムの復元と、現在の計算機
または集積回路技術を用いた経済的な実施が可能になっ
た。
【図1】MPEG規格での、圧縮及び復元プロセスのモ
デルを表す図。
デルを表す図。
【図2】本発明に基づく、ビデオ用復元プロセッサ回路
200のブロック図。
200のブロック図。
【図3】CPU201のデータの流れを表す図。
【図4】IDCT動作の命令サイクル内に用いられたレ
ジスタの内容を示す、CPU201内のレジスタファイ
ルのマップを示す図。
ジスタの内容を示す、CPU201内のレジスタファイ
ルのマップを示す図。
【図5】一次元IDCTが、DCT係数の8×8ブロッ
クの1列または1行を構成する8個のDCT係数上で実
施される、8ポイントIDCTアルゴリズムの1つのパ
スの流れ図。
クの1列または1行を構成する8個のDCT係数上で実
施される、8ポイントIDCTアルゴリズムの1つのパ
スの流れ図。
【図6】CPU201での、逆量子化動作及びIDCT
動作の順序を示す図。
動作の順序を示す図。
【図7】本発明に基づく、乗算とバタフライ動作とを同
時に、CPU201内で達成する回路600を示す図。
時に、CPU201内で達成する回路600を示す図。
【図8】CPU201のデータパス内の回路600の第
1ステップを示す図。
1ステップを示す図。
【図9】本発明に基づく、図5のIDCTアルゴリズム
を用いた、CPU201内のIDCTを計算するための
マイクロプログラム。
を用いた、CPU201内のIDCTを計算するための
マイクロプログラム。
【図10】転送リクエストFIFO(TRF)207及
びDRAMコントローラ206を示す、メモリコントロ
ーラのブロック図。
びDRAMコントローラ206を示す、メモリコントロ
ーラのブロック図。
【図11】画素フィルタ、及び画素フィルタ213と画
素メモリ214とを有する動作圧縮モジュールのブロッ
ク図。
素メモリ214とを有する動作圧縮モジュールのブロッ
ク図。
【図12】ビデオ用FIFO208とYUV/RGB発
散回路を有するビデオ用インタフェースのブロック図。
散回路を有するビデオ用インタフェースのブロック図。
【図13】VLCデコーダ211とデコーダFIFO2
08とを含むVLCデコーダモジュールのブロック図。
08とを含むVLCデコーダモジュールのブロック図。
101 フレ−ム間の冗長性の除去ステップ 102 DCTステップ 103 量子化ステップ 104 エンコーディングステップ 105 デコーディングステップ 106 逆量子化ステップ 107 IDCTステップ 108 実際の画素の発生ステップ 200 ビデオデコーダ 201 CPU 202 ホスト計算機 203 ホストバス 204 コードFIFO 205 ビデオバス 206 DRAMコントローラ 207 命令FIFO 208 ビデオFIFO 209 グローバルバス 210 デコーダFIFO 211 VLCデコ−ダ 212 ジグザグメモリ 213 画素メモリ 214 画素フィルタ 215 メモリ装置 215a 量子化メモリ 215b 一時記憶装置 215c コサインメモリ 216 命令メモリ 501 ジグザグメモリからの検索ステップ 502 逆量子化ステップ 503 コサイン乗算ステップ 504 一次元IDCT1ステップ 505 一時記憶装置への記憶ステップ 506 一次元IDCT2ステップ 507 画素メモリへの提供ステップ 601 乗算減算装置 602 バタフライ装置 603 乗算器 604 マルチプレクサ 605 クランプ 801 メモリバッファ 802 優先順位裁定回路 803a〜803f 状態レジスタ 804 FIレジスタ 805 FPレジスタ 806 MFレジスタ 807 アドレス発生ロジック 808 MSレジスタ 901 行メモリ 902 加算器 903 パイプラインレジスタ 904 列メモリ 905 加算器 906 パイプラインレジスタ 907 加算器 1001 レジスタ 1002 タイミングロジック 1003 補間及び色変換装置 1004 同期化回路 1005 出力ラッチ 1006 24ビットバス 1007 境界捜入装置 1102a〜1102d レジスタ 1103 FIFOアドレスロジック装置 1104 フリーズロジック装置 1105 ROM 1106 グローバルデータデコード装置 1107 ROMアドレス発生器 1108 ビットストリームロジック 1109 左シフタ 1110 右シフタ 1111 zデータカウンタ 1112 レジスタ 1113 レジスタ 1114a、1114b マルチプレクサ
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.5 識別記号 庁内整理番号 FI 技術表示箇所 H04N 5/92 D 4227−5C
Claims (4)
- 【請求項1】 中央処理装置からの命令に基づいて、
可変長コードのコードストリームをデコードする装置で
あって、 前記命令を受け取り、かつ前記命令を特定し、そして前
記特定された命令に基づいて、アドレスの第1フィール
ドを提供する手段と、 前記コードストリームの始まりのトラックを保持するポ
インタを提供する手段と、 前記アドレスの第2フィールドとして用いるために、前
記コードストリームの前記始まりから、予め決められた
個数のビットを抽出する手段と、 制御情報を記憶するための複数のワードと、前記各可変
長コードのためのデコードされた値とを提供するメモリ
システムであって、前記メモリシステムの各ワードが、
(1)前記命令の実行を完了するために、前記メモリシ
ステムへの次のアクセスが要求されているかどうかとい
うことと、(2)前記ポインタを進めるためのビットの
個数とを表示し、前記ワードが、前記次のアクセスが必
要なことを表示するとき、前記ワードは更に、次のアド
レスを生み出すための用いられる第3フィールドを提供
し、前記ワードが、前記次のアクセスが必要でないこと
を表示するとき、前記ワードは更に、前記デコードされ
た値を提供する、メモリシステムと、 前記第3フィールドと前記コードストリームからの前記
予め決められたビットの個数とを用いて、前記次のアド
レスを形成し、そして前記メモリシステムへの前記次の
アクセスを起こすための手段とを有することを特徴とす
るデコードする装置。 - 【請求項2】 複数前記可変長コードが、第1の値
と、予め決められた値が繰り返される回数を表示する第
2の値とをエンコードし、 複数の前記可変長コードの各々のデコーディングが、前
記予め決められた値を、前記回数だけ出力することを含
み、 後記制御回路を制御するための制御情報を含む、前記複
数の可変長コードをデコードする間に、前記予め決めら
れた値と、前記メモリワードとを出力するための制御回
路を更に有することを特徴とする請求項1に記載の装
置。 - 【請求項3】 中央処理方法からの命令に基づいて、
可変長コードのコードストリームをデコードする方法で
あって、 前記命令を受け取り、かつ前記命令を特定し、そして前
記特定された命令に基づいて、アドレスの第1フィール
ドを提供する過程と、 前記コードストリームの始まりのトラックを保持するポ
インタを提供する過程と、 前記アドレスの第2フィールドとして用いるために、前
記コードストリームの前記始まりから、予め決められた
個数のビットを抽出する過程と、 制御情報を記憶するための複数のワードと、前記各可変
長コードのためのデコードされた値とを有するメモリシ
ステムを提供する過程であって、前記メモリシステムの
各ワードが、(1)前記命令の実行を完了するために、
前記メモリシステムへの次のアクセスが要求されている
かどうかということと、(2)前記ポインタを進めるた
めのビットの個数とを表示し、前記ワードが、前記次の
アクセスが必要なことを表示するとき、前記ワードは更
に、次のアドレスを生み出すための用いられる第3フィ
ールドを提供し、前記ワードが、前記次のアクセスが必
要でないことを表示するとき、前記ワードは更に、前記
デコードされた値を提供する、メモリシステムを提供す
る過程と、 前記第3フィールドと前記コードストリームからの前記
予め決められたビットの個数とを用いて、前記次のアド
レスを形成し、そして前記アドレスの前記ワードが前記
命令の実行が完了したことを表示するまで、前記メモリ
システムへの前記次のアクセスを起こすための過程とを
有することを特徴とするデコードする方法。 - 【請求項4】 複数前記可変長コードが、第1の値
と、予め決められた値が繰り返される回数を表示する第
2の値とをエンコードし、 複数の前記可変長コードの各々のデコーディングが、前
記予め決められた値を、前記回数だけ出力することを含
み、 後記制御回路を制御するための制御情報を含む、前記複
数の可変長コードをデコードする間に、前記予め決めら
れた値と、前記メモリワードとを出力するための制御回
路を提供する過程を更に有することを特徴とする請求項
3に記載の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US89073292A | 1992-05-28 | 1992-05-28 | |
| US07/890,732 | 1992-05-28 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06326615A true JPH06326615A (ja) | 1994-11-25 |
Family
ID=25397076
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5151595A Pending JPH06326615A (ja) | 1992-05-28 | 1993-05-28 | 可変長コードのコードストリームをデコードする方法及び装置 |
Country Status (5)
| Country | Link |
|---|---|
| EP (1) | EP0572263A3 (ja) |
| JP (1) | JPH06326615A (ja) |
| KR (1) | KR940006352A (ja) |
| CA (1) | CA2096584A1 (ja) |
| DE (1) | DE572263T1 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002057587A (ja) * | 2000-08-10 | 2002-02-22 | Sony Corp | プロセッサ及びそれを用いた復号装置 |
| US7079583B2 (en) | 1997-04-07 | 2006-07-18 | Matsushita Electric Industrial Co., Ltd. | Media processing apparatus which operates at high efficiency |
| USRE48845E1 (en) | 2002-04-01 | 2021-12-07 | Broadcom Corporation | Video decoding system supporting multiple standards |
Families Citing this family (42)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB9405914D0 (en) * | 1994-03-24 | 1994-05-11 | Discovision Ass | Video decompression |
| US5649029A (en) * | 1991-03-15 | 1997-07-15 | Galbi; David E. | MPEG audio/video decoder |
| SG45281A1 (en) * | 1992-06-26 | 1998-01-16 | Discovision Ass | Method and arrangement for transformation of signals from a frequency to a time domain |
| US7095783B1 (en) | 1992-06-30 | 2006-08-22 | Discovision Associates | Multistandard video decoder and decompression system for processing encoded bit streams including start codes and methods relating thereto |
| US6330665B1 (en) | 1992-06-30 | 2001-12-11 | Discovision Associates | Video parser |
| US5809270A (en) | 1992-06-30 | 1998-09-15 | Discovision Associates | Inverse quantizer |
| US5768561A (en) | 1992-06-30 | 1998-06-16 | Discovision Associates | Tokens-based adaptive video processing arrangement |
| US6047112A (en) | 1992-06-30 | 2000-04-04 | Discovision Associates | Technique for initiating processing of a data stream of encoded video information |
| US5842033A (en) | 1992-06-30 | 1998-11-24 | Discovision Associates | Padding apparatus for passing an arbitrary number of bits through a buffer in a pipeline system |
| DE69229338T2 (de) | 1992-06-30 | 1999-12-16 | Discovision Associates, Irvine | Datenpipelinesystem |
| US6417859B1 (en) | 1992-06-30 | 2002-07-09 | Discovision Associates | Method and apparatus for displaying video data |
| US6079009A (en) | 1992-06-30 | 2000-06-20 | Discovision Associates | Coding standard token in a system compromising a plurality of pipeline stages |
| US6112017A (en) | 1992-06-30 | 2000-08-29 | Discovision Associates | Pipeline processing machine having a plurality of reconfigurable processing stages interconnected by a two-wire interface bus |
| US6034674A (en) | 1992-06-30 | 2000-03-07 | Discovision Associates | Buffer manager |
| US6067417A (en) | 1992-06-30 | 2000-05-23 | Discovision Associates | Picture start token |
| US5835740A (en) | 1992-06-30 | 1998-11-10 | Discovision Associates | Data pipeline system and data encoding method |
| US5805914A (en) | 1993-06-24 | 1998-09-08 | Discovision Associates | Data pipeline system and data encoding method |
| JPH0723389A (ja) * | 1993-06-28 | 1995-01-24 | Toshiba Corp | 画像処理装置 |
| US5598514A (en) * | 1993-08-09 | 1997-01-28 | C-Cube Microsystems | Structure and method for a multistandard video encoder/decoder |
| US5576765A (en) * | 1994-03-17 | 1996-11-19 | International Business Machines, Corporation | Video decoder |
| CA2145363C (en) | 1994-03-24 | 1999-07-13 | Anthony Mark Jones | Ram interface |
| CA2145379C (en) | 1994-03-24 | 1999-06-08 | William P. Robbins | Method and apparatus for addressing memory |
| CA2145365C (en) | 1994-03-24 | 1999-04-27 | Anthony M. Jones | Method for accessing banks of dram |
| US5703793A (en) | 1994-07-29 | 1997-12-30 | Discovision Associates | Video decompression |
| GB9417138D0 (en) | 1994-08-23 | 1994-10-12 | Discovision Ass | Data rate conversion |
| US5638128A (en) * | 1994-11-08 | 1997-06-10 | General Instrument Corporation Of Delaware | Pixel interpolation filters for video decompression processor |
| EP0714212A3 (en) * | 1994-11-21 | 1999-03-31 | SICAN, GESELLSCHAFT FÜR SILIZIUM-ANWENDUNGEN UND CAD/CAT NIEDERSACHSEN mbH | Video decoder using concurrent processing and resource sharing |
| JP3732867B2 (ja) * | 1995-03-09 | 2006-01-11 | 株式会社ルネサステクノロジ | 画像伸張装置 |
| FR2735258B1 (fr) * | 1995-06-09 | 1997-09-05 | Sgs Thomson Microelectronics | Dispositif de decodage d'un flux de donnees |
| US5910909A (en) * | 1995-08-28 | 1999-06-08 | C-Cube Microsystems, Inc. | Non-linear digital filters for interlaced video signals and method thereof |
| GB2305047A (en) * | 1995-09-01 | 1997-03-26 | Motorola Inc | Inverse DCT image processing |
| JP3729540B2 (ja) * | 1995-09-08 | 2005-12-21 | 株式会社ルネサステクノロジ | 画像処理装置 |
| KR100194039B1 (ko) * | 1996-04-19 | 1999-06-15 | 윤종용 | 엠펙 시스템의 우선순위 처리회로 |
| GB2329802B (en) * | 1997-06-28 | 1999-08-18 | United Microelectronics Corp | Adaptive-selection method for memory access priority control in MPEG processor |
| KR100255844B1 (ko) * | 1997-08-07 | 2000-05-01 | 허진호 | 벽걸이용 오디오의 씨디피 |
| KR100255845B1 (ko) * | 1997-08-07 | 2000-05-01 | 허진호 | 탁상용 오디오의 씨디피 |
| NL1007453C2 (nl) * | 1997-11-05 | 1999-05-07 | United Microelectronics Corp | Zich aanpassende kieswerkwijze voor het regelen van de geheugentoegangsprioriteit in een MPEG-processor. |
| EP1099310A4 (en) * | 1998-06-25 | 2005-12-21 | Equator Technologies Inc | PROCESSING CIRCUIT AND VARIABLE LENGTH ENCODING / DECODING METHOD |
| US6414996B1 (en) * | 1998-12-08 | 2002-07-02 | Stmicroelectronics, Inc. | System, method and apparatus for an instruction driven digital video processor |
| US6418165B1 (en) | 1999-05-12 | 2002-07-09 | Sony Corporation | System and method for performing inverse quantization of a video stream |
| CN104137061B (zh) | 2011-12-30 | 2017-12-22 | 英特尔公司 | 用于执行向量频率扩展指令的方法、处理器核和计算机系统 |
| CN104011673B (zh) * | 2011-12-30 | 2016-12-07 | 英特尔公司 | 向量频率压缩指令 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0451720A (ja) * | 1990-06-20 | 1992-02-20 | Ricoh Co Ltd | 可変長符号復号装置 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04100324A (ja) * | 1990-08-18 | 1992-04-02 | Ricoh Co Ltd | 可変長符号の復号方式 |
-
1993
- 1993-05-19 CA CA002096584A patent/CA2096584A1/en not_active Abandoned
- 1993-05-27 EP EP9393304152A patent/EP0572263A3/en not_active Withdrawn
- 1993-05-27 KR KR1019930009289A patent/KR940006352A/ko not_active Abandoned
- 1993-05-27 DE DE0572263T patent/DE572263T1/de active Pending
- 1993-05-28 JP JP5151595A patent/JPH06326615A/ja active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0451720A (ja) * | 1990-06-20 | 1992-02-20 | Ricoh Co Ltd | 可変長符号復号装置 |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7079583B2 (en) | 1997-04-07 | 2006-07-18 | Matsushita Electric Industrial Co., Ltd. | Media processing apparatus which operates at high efficiency |
| JP2002057587A (ja) * | 2000-08-10 | 2002-02-22 | Sony Corp | プロセッサ及びそれを用いた復号装置 |
| USRE48845E1 (en) | 2002-04-01 | 2021-12-07 | Broadcom Corporation | Video decoding system supporting multiple standards |
Also Published As
| Publication number | Publication date |
|---|---|
| DE572263T1 (de) | 1994-07-28 |
| EP0572263A3 (en) | 1994-09-14 |
| EP0572263A2 (en) | 1993-12-01 |
| CA2096584A1 (en) | 1993-11-29 |
| KR940006352A (ko) | 1994-03-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH06326615A (ja) | 可変長コードのコードストリームをデコードする方法及び装置 | |
| JPH06326996A (ja) | 圧縮されたビデオデータをデコードする方法及び装置 | |
| US5812791A (en) | Multiple sequence MPEG decoder | |
| US5774206A (en) | Process for controlling an MPEG decoder | |
| US5576765A (en) | Video decoder | |
| US6996174B2 (en) | MPEG video decoder with integrated scaling and display functions | |
| US5815646A (en) | Decompression processor for video applications | |
| CN1934866B (zh) | 视频解码设备 | |
| US6442206B1 (en) | Anti-flicker logic for MPEG video decoder with integrated scaling and display functions | |
| US8774281B2 (en) | Implementation of a DV video decoder with a VLIW processor and a variable length decoding unit | |
| JPH08280007A (ja) | プロセッサ及び転送方法 | |
| JPH09214972A (ja) | デコーダ回路、mpegビデオストリーム復号化方法およびコンピュータ | |
| KR100510756B1 (ko) | 화상복호화장치와 그 방법 및 화상재생장치 | |
| US5774676A (en) | Method and apparatus for decompression of MPEG compressed data in a computer system | |
| US6681052B2 (en) | Methods and systems for performing inverse quantization and inverse weighting of DV video | |
| JPH07240844A (ja) | 画像データ処理装置および画像データ処理方法 | |
| US5809174A (en) | Decompression processor for video applications | |
| US6507673B1 (en) | Method and apparatus for video encoding decision | |
| US5784011A (en) | Multiplier circuit for performing inverse quantization arithmetic | |
| JPH08275159A (ja) | デジタル・ビデオ符号器プロセッサ | |
| WO1996036178A1 (en) | Multiple sequence mpeg decoder and process for controlling same | |
| KR20030057690A (ko) | 비디오 디코딩 시스템 | |
| US6614437B1 (en) | Apparatus and method for efficient memory utilization in an electronic system | |
| JPH10145788A (ja) | 映像再生装置 | |
| Fautier | VLSI Implementation of MPED Decoders |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Effective date: 20040303 Free format text: JAPANESE INTERMEDIATE CODE: A02 |