JP2000207205A - 演算装置 - Google Patents

演算装置

Info

Publication number
JP2000207205A
JP2000207205A JP746299A JP746299A JP2000207205A JP 2000207205 A JP2000207205 A JP 2000207205A JP 746299 A JP746299 A JP 746299A JP 746299 A JP746299 A JP 746299A JP 2000207205 A JP2000207205 A JP 2000207205A
Authority
JP
Japan
Prior art keywords
variable
length
data
register
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP746299A
Other languages
English (en)
Inventor
Osamu Yagi
修 八木
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.)
Sony Corp
Original Assignee
Sony Corp
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
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP746299A priority Critical patent/JP2000207205A/ja
Priority to US09/482,704 priority patent/US6459391B1/en
Publication of JP2000207205A publication Critical patent/JP2000207205A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Executing Machine-Instructions (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

(57)【要約】 【課題】 汎用プロセッサにおいて、高速に可変長復号
処理を行う。 【解決手段】 汎用プロセッサ1には、汎用の演算を行
うためのデータを記憶するレジスタ群14の他に、可変
長復号の対象とする可変長符号の最大長以上のデータを
記憶することのできる、可変長符号を記憶する専用のビ
デオデータレジスタ、そのビデオデータレジスタ21に
記憶されたデータのうち、まだ可変長復号されていない
データの長さを記憶する専用のデータカウンタレジスタ
22、およびキャッシュメモリ15に記憶された可変長
符号のビットストリーム中の、次に読み出すべき可変長
符号のアドレスを記憶する専用のポインタレジスタ23
が設けられており、汎用の演算を行うALU13では、
ビデオデータレジスタ21、データカウンタ22、およ
びポインタレジスタ23を制御することにより、ビデオ
データレジスタ21に記憶された可変長符号が可変長復
号される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、演算装置に関し、
特に、例えば、汎用のプロセッサにおいて、可変長復号
を高速に行うことができるようにする演算装置に関す
る。
【0002】
【従来の技術】図4は、汎用プロセッサを利用した、従
来のVLD(可変長復号)回路の一例の構成を示してい
る。
【0003】DMUX(デマルチプレクサ)3には、例
えば、MPEG(Moving Picture Experts Group)2方
式に準拠したトランスポートストリーム(Transport St
ream)が供給されるようになされており、DMUX3
は、トランスポートストリームから、ビデオとオーディ
オのエレメンタリストリーム(Elementary Stream)を
分離する。DMUX3で得られたビデオエレメンタリス
トリームは、バス4を介して、メインメモリ2に供給さ
れて記憶される。
【0004】メインメモリ2は、上述したように、DM
UX3からのビデオエレメンタリストリームを記憶する
他、汎用プロセッサ1をVLD回路として動作させるた
めのプログラムを記憶しており、汎用プロセッサ1は、
メインメモリ2に記憶されたプログラムを実行すること
で、やはりメインメモリ2に記憶された可変長符号を復
号(可変長復号)する。
【0005】即ち、汎用プロセッサ1は、インストラク
ションフェッチ部11、インストラクションデコーダ1
2,ALU(Arithmetic Logic Unit)13、レジスタ
群14、キャッシュメモリ15、内部バス16等で構成
され、メインメモリ2に記憶されたプログラムは、適
宜、バス4を介して、キャッシュメモリ15に供給され
て記憶される。
【0006】インストラクションフェッチ部11は、キ
ャッシュメモリ15に記憶されたプログラムを構成する
コマンド(インストラクション)を適宜フェッチし、イ
ンストラクションデコーダ12に供給する。インストラ
クションデコーダ12は、インストラクションフェッチ
部11からのコマンドをデコードし、そのデコード結果
を、ALU13に供給する。ALU13は、インストラ
クションデコーダ12からのコマンドのデコード結果に
したがって、必要に応じて、レジスタ群14に対してデ
ータの読み書きを行いながら、各種の汎用の処理を行
う。
【0007】即ち、ここでは、メインメモリ2には、可
変長復号を行うためのプログラムが記憶されており、A
LU13では、この可変長復号に必要な処理が行われ
る。
【0008】具体的には、メインメモリ2に記憶された
ビデオエレメンタリストリームが、適宜、バス4を介し
て、キャッシュメモリ15に転送されて記憶される。さ
らに、キャッシュメモリ15に記憶されたビデオエレメ
ンタリストリームは、適宜、内部バス16を介して、レ
ジスタ群14に転送されて記憶され、ALU13におい
て可変長復号される。
【0009】ここで、レジスタ群14は、例えば、32
ビットの複数のレジスタで構成され、ALU13では、
そのうちの1つが、ビデオエレメンタリストリームを構
成する可変長符号のうち、可変長復号の対象とするもの
を記憶するバッファBfr(bideo stream data buffe
r)に割り当てられ(従って、バッファBfrは32ビ
ットである)、そのバッファBfrに記憶されたデータ
を対象に、show_bits(),get_bits(),flush_buffer()
といった関数等に対応する汎用の演算が行われること
で、可変長復号が行われる。
【0010】関数show_bits(int N)は、バッファBfr
のMSB(Most Significant Bit)からNビットを観測
するものであり、例えば、C言語では、次のように記述
される。
【0011】unsigned int show_b
its(int N){return Bfr >>
(32−N);}
【0012】関数show_bits(int N)に
よれば、図5(A)に示すようなレジスタ群14の1つ
のレジスタであるバッファBfrの内容が、図5(B)
に示すように、レジスタ群14の他の1つのレジスタ
(テンポラリのレジスタ)Tempにコピーされ、32
−Nビットだけ右にビットシフトされる(Bfr >> (32-
N))。これにより、レジスタTempの下位Nビットに
は、図5(C)に示すように、バッファBfrのMSB
からNビットがセットされ、これが、関数show_bits(in
t N)の関数値としてリターンされる(return Bfr >> (3
2-N))。なお、この場合、バッファBfrの記憶値は変
更されない。
【0013】関数flush_buffer(int N)は、関数show_bi
ts()やget_bits()で観測されたバッファBfrの上位N
ビットを捨て、その捨てた結果残ったバッファBfrの
記憶値のビット数が、可変長符号の最大長以下の場合に
は、続きのデータを、キャッシュメモリ15から読み出
して補充するものであり、例えば、C言語では、次のよ
うに記述される。
【0014】
【0015】なお、変数Rdptrは、キャッシュメモ
リ15に記憶されたビデオエレメンタリストリーム中
の、次に読み出すべき可変長符号のアドレス(位置)を
指すポインタで、レジスタ群14を構成するレジスタの
うちの1つが、この変数Rdptrに割り当てられている。
また、変数Incntは、バッファBfrに記憶されたデー
タのうち、まだ可変長復号されていないもの長さを記憶
する変数で、やはり、レジスタ群14を構成するレジス
タのうちの1つが、この変数Incntに割り当てられてい
る。
【0016】関数flush_buffer(int N)によれば、い
ま、図6(A)に示すように、バッファBfrの上位N
ビットの可変長復号が終了した場合に、バッファBfr
の記憶値が、Nビットだけ左にビットシフトされ(Bfr
<<= N)、その結果、バッファBfrの記憶値は、図6
(B)に示すようにされる。
【0017】また、変数IncntがNだけデクリメントさ
れ、これにより、変数Incntは、図6(B)に示すよう
に、バッファBfrの記憶値を、Nビット左シフトした
後における、まだ可変長復号されていないデータ(図6
(B)および図6(D)において、Next_dataと記載し
てある部分)の長さを示すように更新される。
【0018】さらに、更新後の変数Incntが、可変長符
号の最大長(ここでは、例えば、24ビットとしてい
る)以下である場合には(if (Incnt <= 24))、変数In
cntが、可変長符号の最大長である24ビットを越える
まで(while (Incnt <= 24))、バッファBfrに記憶
されている、まだ可変長復号されていないデータに続く
データを、キャッシュメモリ15から読み出して補充す
るスタッフィング(stuffing)処理が行われる。
【0019】即ち、ポインタRdptrが1だけインクリメ
ントされ(Rdptr++)、そのポインタによって示される
アドレスに記憶されたデータ(ビデオエレメンタリスト
リームを構成するデータ)が、キャッシュメモリ15か
ら読み出される。ここで、ポインタRdptrが示すキャッ
シュメモリ15のアドレスには、例えば、8ビットのデ
ータが記憶されているものとする。従って、ここでは、
キャッシュメモリ15から、ポインタRdptrによって示
されるアドレスに記憶された8ビットのデータが読み出
される。
【0020】キャッシュメモリ15から読み出された8
ビットのデータnd(これは、*Rdptrで表される)は、
内部バス16を介して、レジスタ群14を構成するレジ
スタの1つの下位8ビットに記憶される。そして、AL
U13は、8ビットのデータndが記憶されたレジスタ
の記憶値を読み出し、図6(C)に示すように、24-Inc
ntビットだけ左にシフトさせる(*Rdptr++ << (24-Incn
t))。
【0021】さらに、ALU13は、そのビットシフト
結果(図6(C))と、バッファBfrの記憶値(図6
(B))との、ビットごとの論理和(以下、適宜、ビッ
ト論理和という)を演算し、その演算結果を、図6
(D)に示すように、バッファBfrに記憶させる(bf
r |= *Rdptr++ << (24-Incnt))。これにより、バッフ
ァbfrには、元の記憶値(図6(A))の上位Nビッ
トを捨てた結果残った、まだ可変長復号されていないデ
ータ(図6(B))に、その続きのデータを8ビットだ
け補充した状態のデータ(図6(D))が記憶される。
【0022】そして、ALU13は、バッファBfrに
記憶されたデータのうち、まだ可変長復号されていない
もの長さを表す変数Incntを、データndのデータ量で
ある8だけインクリメントし(Incnt += 8)、以下、変
数Incntが、可変長符号の最大長である24ビットを越
えるまで(while (Incnt <= 24))、上述のようなスタ
ッフィング処理(8ビット単位で、バッファBfrにデ
ータを補充する処理)が繰り返される。
【0023】関数get_bits(int N)は、関数show_bits()
とflush_buffer()の両方に対応する処理を行うもので、
例えば、C言語では、次のように記述される。
【0024】 unsigned int get_bits(int N) { unsigned int Val; Val = show_bits(N); flush_buffer(N); return Val;}
【0025】
【発明が解決しようとする課題】ところで、レジスタ群
14は、汎用の演算を行うALU13が、その演算に用
いる汎用のレジスタで構成されるため、VLD処理を高
速に行うことが困難であった。
【0026】本発明は、このような状況に鑑みてなされ
たものであり、汎用のプロセッサにおいて、高速にVL
D処理を行うことができるようにするものである。
【0027】
【課題を解決するための手段】本発明の演算装置は、汎
用の演算を行うためのデータを記憶する汎用記憶手段
と、可変長復号の対象とする可変長符号の最大長以上の
データを記憶することのできる、可変長符号を記憶する
専用の可変長符号記憶手段と、可変長符号記憶手段に記
憶されたデータのうち、まだ可変長復号されていないデ
ータの長さを記憶する専用の長さ記憶手段と、可変長符
号のビットストリーム中の、次に読み出すべき可変長符
号の位置を記憶する専用の位置記憶手段と、可変長記憶
手段、長さ記憶手段、および位置記憶手段を制御するこ
とにより、可変長記憶手段に記憶された可変長符号を可
変長復号する、汎用の演算を行う演算手段とを備えるこ
とを特徴とする。
【0028】上記構成の演算装置においては、汎用記憶
手段は、汎用の演算を行うためのデータを記憶するよう
になされている。可変長符号記憶手段は、可変長復号の
対象とする可変長符号の最大長以上のデータを記憶する
ことのできる、可変長符号を記憶する専用のもので、長
さ記憶手段は、可変長符号記憶手段に記憶されたデータ
のうち、まだ可変長復号されていないデータの長さを記
憶する専用のものとなっている。位置記憶手段は、可変
長符号のビットストリーム中の、次に読み出すべき可変
長符号の位置を記憶する専用のもので、演算手段は、可
変長記憶手段、長さ記憶手段、および位置記憶手段を制
御することにより、可変長記憶手段に記憶された可変長
符号を可変長復号する、汎用の演算を行うようになされ
ている。
【0029】
【発明の実施の形態】図1は、本発明を適用したVLD
回路の一実施の形態の構成例を示している。なお、図
中、図4における場合と対応する部分については、同一
の符号を付してあり、以下では、その説明は、適宜省略
する。即ち、図1のVLD回路は、汎用プロセッサ1、
メインメモリ2、DMUX3、およびバス4で構成され
ており、従って、基本的に、図4における場合と同様に
構成されている。
【0030】但し、汎用プロセッサ1には、汎用の演算
のためのデータを記憶するレジスタ群14(汎用記憶手
段)の他に、所定の専用のデータを記憶するビデオデー
タレジスタ21(可変長符号記憶手段)、データカウン
タ22(長さ記憶手段)、およびポインタレジスタ23
(位置記憶手段)が新たに設けられている。
【0031】ビデオデータレジスタ21は、前述のバッ
ファBfrに割り当てられるもので、キャッシュメモリ
15から読み出された可変長符号であって、ALU13
による可変長復号の対象となるものを記憶する専用のレ
ジスタとして構成されている。このビデオデータレジス
タ21は、汎用のレジスタ群21を構成する各レジスタ
よりも多くのデータ、即ち、ここでは、32ビットより
も多い、例えば、64ビットのデータを記憶することが
できるようになされている。
【0032】データカウンタレジスタ22は、前述の変
数Incntに割り当てられるもので、その変数Incntが保持
すべき値を記憶する専用のレジスタとして構成されてい
る。
【0033】ポインタレジスタ23は、前述のポインタ
Rdptrに割り当てられるもので、そのポインタRdptrが指
すキャッシュメモリ15のアドレス(位置)を記憶する
専用のレジスタとして構成されている。
【0034】そして、ALU13(演算手段)では、こ
れらの専用のビデオデータレジスタ21(Btr)、デー
タカウンタレジスタ22(Incnt)、およびポインタレ
ジスタ23(Rdptr)を制御しながら、前述した関数sho
w_bits(),get_bits(),flush_buffer()等に対応する処
理が行われることで、ビデオデータレジスタ21に記憶
された可変長符号が可変長復号される。
【0035】従って、ビデオデータレジスタ21は、上
述のように、汎用のレジスタ群21を構成する各レジス
タよりも多くの64ビットのデータを記憶することがで
きるから、関数flush_buffer()の処理において、前述し
たようなスタッフィング処理が行われる回数が少なくな
り、その結果、可変長復号処理の高速化を図ることがで
きる。
【0036】即ち、レジスタ群14のレジスタの1つ
を、バッファBfrに割り当てた場合においては、バッ
ファBfrのデータ長は、レジスタ群14のレジスタの
データ長に等しい32ビットとなる。いま、バッファB
frの全体に、まだ可変長復号がされていない可変長符
号(従って、32ビット分の可変長符号)が記憶されて
いるとして、そのようなバッファBfrを対象に可変長
復号を行い、その上位Nビットの可変長復号が終了した
とする。この場合、まだ可変長復号されていないデータ
は、32−Nビットとなるが、このビット数が、可変長
符号の最大長である24ビット以下になる可能性は高く
(Nが、1ビットから、可変長符号の最大長である24
ビットまでの範囲の値をとるため)、その結果、関数fl
ush_buffer()において、スタッフィング処理(キャッシ
ュメモリ15からバッファBfrへのデータ転送処理)
が行われる回数も多くなる。そして、このようにスタッ
フィング処理の回数が多くなる結果、可変長復号の全体
処理に時間を要することとなる。
【0037】これに対して、可変長符号を記憶するサイ
ズの大きいビデオデータレジスタ21を、汎用のレジス
タ群14とは別個に設けた場合には、バッファBfrの
データ長は、ビデオデータレジスタ21のデータ長に等
しい64ビットとなる。そして、いま、上述の場合と同
様に、バッファBfrの全体に、まだ可変長復号がされ
ていない可変長符号(従って、64ビット分の可変長符
号)が記憶されているとして、そのようなバッファBf
rを対象に可変長復号を行い、その上位Nビットの可変
長復号が終了したとする。この場合、まだ可変長復号さ
れていないデータは、64−Nビットとなるが、Nの最
大値は、可変長符号の最大長である24ビットであるか
ら、64−Nビットが、24ビット以下になることはな
い。従って、関数flush_buffer()において、スタッフィ
ング処理が行われる回数を少なくすることができ、その
結果、可変長復号処理を高速に(短時間で)行うことが
できる。
【0038】次に、バッファBfrとなる専用のビデオ
データレジスタ21を設けることで、いわゆる組み込み
マイコン(マイクロコンピュータ)等において採用され
ている、高速な処理を行うための専用のコマンド(関
数)を設けることが可能となる。
【0039】そこで、ここでは、前述の関数show_bits
(int N)に替えて、テンポラリのレジスタTemp(図
5)に、バッファBfrの内容をコピーすることなく、
バッファBfrの上位Nビットを抽出することができる
関数vld_bit_ext(int N)を設けることとする。この関数
vld_bit_ext(int N)によれば、バッファBfrの内容を
コピーする必要がないので、1ステップで、バッファB
frの上位Nビットを抽出することができ、その結果、
より高速な可変長復号処理が可能となる。
【0040】次に、図1のVLD回路では、上述したよ
うに、関数flush_buffer()において、スタッフィング処
理が行われる回数を少なくすることができるが、それで
も、少なからずスタッフィング処理を行う必要がある。
そして、スタッフィング処理においては、前述したよう
に、ポインタRdptrによって示されるデータ(*Rdptr)
がビットシフトされ、そのビットシフト結果と、バッフ
ァBfrの記憶値とのビット単位での論理和が演算され
るが、汎用のALU13では、このビットシフトと、ビ
ット単位での論理和の演算に時間を要する。
【0041】そこで、ここでは、ALU13に、例え
ば、図2に示すようなパストランジスタで構成されるバ
レルシフタ(barrel shifter)と同様に構成されるバレ
ルシフタを内蔵させることとする。
【0042】なお、図2においては、NチャネルFET
(電界効果トランジスタ)のソースまたはドレインと、
PチャネルFETのドレインまたはソースとが、それぞ
れ接続された回路が格子状に設けられており、そのNチ
ャネルFETのソースとPチャネルFETのドレインと
の接続点に、ビットシフトの対象とする入力データinpu
t[]のうちの所定のビットが入力されるようになされて
いる。
【0043】また、格子状に設けられた回路のNチャネ
ルFETのドレインとPチャネルFETのソースとの接
続点からは、入力データinput[]のビットシフト結果と
しての4ビットの出力データresult[]の所定のビットが
出力されるようになされている。
【0044】さらに、NチャネルFETおよびPチャネ
ルFETのゲートには、何ビットシフトするかを指示す
る4ビットのシフト量データshift[]の所定のビットが
入力されるようになされている。
【0045】そして、図2のバレルシフタにおいては、
7ビットの入力データinput[6]乃至input[0](iput[i]
は、LSB(Least Significant Bit)からi−1ビッ
ト目を表す)に対して、4ビットの出力データresult
[3]乃至result[0]が、ビットシフト結果として出力され
るようになされており、この場合において、シフトする
ビット数は、シフト量データshift[3]乃至shift[0]によ
って決定されるようになされている。
【0046】即ち、シフト量データshift[]のうちの第
1ビットshift[0](LSB)が1で、他のビットが0の
場合においては、入力データinput[]の第1ビット乃至
第4ビットinput[3:0]が、出力データresult[]として出
力される。従って、この場合、ビットシフトは行われな
い。
【0047】また、シフト量データshift[]のうちの第
2ビットshift[1](LSBから2ビット目)が1で、他
のビットが0の場合においては、入力データinput[]の
第2ビット乃至第5ビットinput[4:1]が、出力データre
sult[]として出力される。従って、この場合、1ビット
右シフトが行われる。
【0048】さらに、シフト量データshift[]のうちの
第3ビットshift[1](LSBから3ビット目)が1で、
他のビットが0の場合においては、入力データinput[]
の第3ビット乃至第6ビットinput[5:2]が、出力データ
result[]として出力される。従って、この場合、2ビッ
ト右シフトが行われる。
【0049】また、シフト量データshift[]のうちの第
4ビットshift[1](LSBから4ビット目)が1で、他
のビットが0の場合においては、入力データinput[]の
第4ビット乃至第7ビットinput[6:3]が、出力データre
sult[]として出力される。従って、この場合、3ビット
右シフトが行われる。
【0050】以上のようなパストランジスタで構成され
るバレルシフタによれば、高速なビットシフトが可能と
なる。
【0051】次に、ALU13には、ビット単位での論
理和の演算する回路として、例えば、図3(A)に示す
ような、6つのFETで構成される汎用のものを内蔵さ
せても良いが、ビット単位での論理和を演算する場合に
おいては、2つの入力信号in1およびin2のうちの
いずれか一方がH(High)レベルであることを、出力信
号outとして出力することができれば良いのであるか
ら、ビット単位での論理和を演算する回路としては、図
3(B)に示すように、やはり、パストランジスタで構
成されるものを、ALU13に内蔵させることができ
る。この場合、ビット単位での論理和を演算する回路
を、図3(A)における場合よりも少ない2つのFET
で構成することができ、さらに、高速に、論理和を求め
ることが可能となる。
【0052】以上のようなパストランジスタで構成され
るバレルシフタおよび論理和を演算する回路を、ALU
13に内蔵(実装)させた場合には、ビットシフトと、
ビット単位での論理和の演算を、1ステップで行うこと
が可能となり、いま、この1ステップで、ビットシフト
と、ビット単位での論理和の演算を行う関数を、vld_ls
_bor(int N)と定義すると、この関数vld_ls_bor(int N)
を利用することにより、関数flush_buffer()において行
われるスタッフィング処理を、短サイクルで行うことが
可能となる。さらに、その結果、可変長復号処理に要す
る実行サイクルも短くすることができる。
【0053】なお、図1の汎用プロセッサ1は、一般的
な汎用プロセッサに、可変長復号処理に用いる専用のビ
デオデータレジスタ21、データカウンタ22、および
ポインタレジスタ23を設け、さらに、ALU13に、
図2または図3にそれぞれ示したようなパストランジス
タで構成されるバレルシフタまたは論理和を演算する回
路を設けたものであるから、上述したような高速な可変
長復号処理を行うことができる他、従来と同様に、汎用
の演算も行うことができる(このような汎用の演算を行
うことができる他、ビデオなどのあるメディアの処理
(ここでは、可変長復号処理)を行うことに優れている
プロセッサは、メディアプロセッサと呼ばれる)。
【0054】また、本実施の形態では、ビデオデータレ
ジスタ21のサイズを64ビットとしたが、ビデオデー
タレジスタ21のサイズは、64ビットに限定されるも
のではない。但し、基本的に、そのサイズが大きいほ
ど、スタッフィング処理が行われる回数の低減化を図る
ことができる。
【0055】
【発明の効果】以上の如く、本発明の演算装置によれ
ば、汎用の演算を行うためのデータを記憶する汎用記憶
手段の他に、可変長復号の対象とする可変長符号の最大
長以上のデータを記憶することのできる、可変長符号を
記憶する専用の可変長符号記憶手段、可変長符号記憶手
段に記憶されたデータのうち、まだ可変長復号されてい
ないデータの長さを記憶する専用の長さ記憶手段、およ
び可変長符号のビットストリーム中の、次に読み出すべ
き可変長符号の位置を記憶する専用の位置記憶手段が設
けられているので、高速に可変長復号処理を行うことが
可能となる。
【図面の簡単な説明】
【図1】本発明を適用したVLD回路の一実施の形態の
構成例を示すブロック図である。
【図2】図1のALU13に実装させる、パストランジ
スタで構成されるバレルシフタの構成例を示す回路図で
ある。
【図3】図1のALU13に実装させる、論理和を演算
する回路の構成例を示す回路図である。
【図4】従来のVLD回路の一例の構成を示す図であ
る。
【図5】関数show_bits()による処理を説明するための
図である。
【図6】関数flush_buffer()による処理を説明するため
の図である。
【符号の説明】
1 汎用プロセッサ, 2 メインメモリ, 3 DM
UX, 4 バス,11 インストラクションフェッチ
部, 12 インストラクションデコーダ,13 AL
U, 14 レジスタ群, 15 キャッシュメモリ,
16 内部バス, 21 ビデオデータレジスタ,
22 データカウンタレジスタ,23 ポインタレジス

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 汎用の演算を行う演算装置であって、 前記汎用の演算を行うためのデータを記憶する汎用記憶
    手段と、 可変長復号の対象とする可変長符号の最大長以上のデー
    タを記憶することのできる、前記可変長符号を記憶する
    専用の可変長符号記憶手段と、 前記可変長符号記憶手段に記憶されたデータのうち、ま
    だ可変長復号されていないデータの長さを記憶する専用
    の長さ記憶手段と、 前記可変長符号のビットストリーム中の、次に読み出す
    べき前記可変長符号の位置を記憶する専用の位置記憶手
    段と、 前記可変長記憶手段、長さ記憶手段、および位置記憶手
    段を制御することにより、前記可変長記憶手段に記憶さ
    れた前記可変長符号を可変長復号する、前記汎用の演算
    を行う演算手段とを備えることを特徴とする演算装置。
  2. 【請求項2】 前記可変長符号記憶手段が記憶すること
    のできるデータ長は、前記汎用記憶手段が記憶すること
    のできるデータ長より長いことを特徴とする請求項1に
    記載の演算装置。
  3. 【請求項3】 前記演算手段は、前記汎用の演算を行う
    回路の他に、パストランジスタにより構成されるバレル
    シフタと、パストランジスタにより構成される、論理和
    を演算する演算回路とを有することを特徴とする請求項
    1に記載の演算装置。
JP746299A 1999-01-14 1999-01-14 演算装置 Withdrawn JP2000207205A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP746299A JP2000207205A (ja) 1999-01-14 1999-01-14 演算装置
US09/482,704 US6459391B1 (en) 1999-01-14 2000-01-13 High speed variable length decoding processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP746299A JP2000207205A (ja) 1999-01-14 1999-01-14 演算装置

Publications (1)

Publication Number Publication Date
JP2000207205A true JP2000207205A (ja) 2000-07-28

Family

ID=11666494

Family Applications (1)

Application Number Title Priority Date Filing Date
JP746299A Withdrawn JP2000207205A (ja) 1999-01-14 1999-01-14 演算装置

Country Status (2)

Country Link
US (1) US6459391B1 (ja)
JP (1) JP2000207205A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002057587A (ja) * 2000-08-10 2002-02-22 Sony Corp プロセッサ及びそれを用いた復号装置
KR100450753B1 (ko) * 2002-05-17 2004-10-01 한국전자통신연구원 프로세서와 연결된 프로그램 가능한 가변 길이 디코더
JP2008514095A (ja) * 2004-09-20 2008-05-01 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 可変長エンコーダ/デコーダのためのプログラム可能データプロセッサ
JP2009093513A (ja) * 2007-10-11 2009-04-30 Oki Semiconductor Co Ltd 命令ビット長削減方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7663607B2 (en) 2004-05-06 2010-02-16 Apple Inc. Multipoint touchscreen
US6775414B1 (en) * 1999-11-19 2004-08-10 Ati International Srl Variable-length code decoder
US20060190251A1 (en) * 2005-02-24 2006-08-24 Johannes Sandvall Memory usage in a multiprocessor system
CN104965621B (zh) 2006-06-09 2018-06-12 苹果公司 触摸屏液晶显示器及其操作方法
DE112007002544A1 (de) * 2006-06-09 2010-07-22 Apple Inc., Cupertino Flüssigkristallanzeige mit Berührungsbildschirm
US8243027B2 (en) * 2006-06-09 2012-08-14 Apple Inc. Touch screen liquid crystal display
US8493330B2 (en) 2007-01-03 2013-07-23 Apple Inc. Individual channel phase delay scheme
US9710095B2 (en) 2007-01-05 2017-07-18 Apple Inc. Touch screen stack-ups
JP5218225B2 (ja) * 2009-04-02 2013-06-26 富士通セミコンダクター株式会社 メモリアクセス装置、メモリアクセスシステム及びメモリアクセス装置の処理方法
US8804056B2 (en) 2010-12-22 2014-08-12 Apple Inc. Integrated touch screens

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0766324B2 (ja) * 1988-03-18 1995-07-19 三菱電機株式会社 データ処理装置
JP3008685B2 (ja) * 1992-08-03 2000-02-14 日本電気株式会社 可変長符号の復号化回路
EP0649224B1 (en) * 1993-09-23 1999-03-03 Lg Electronics Inc. Variable length coder and variable length decoder
JP2604546B2 (ja) * 1994-05-19 1997-04-30 日本電気アイシーマイコンシステム株式会社 可変長符号の復号化処理装置
US5572208A (en) * 1994-07-29 1996-11-05 Industrial Technology Research Institute Apparatus and method for multi-layered decoding of variable length codes
US5883975A (en) * 1994-09-12 1999-03-16 Nippon Steel Corporation Compression and decompression methods on two-dimensional image data
KR0178201B1 (ko) * 1995-08-31 1999-05-01 배순훈 가변 길이 복호화 장치
JP3729540B2 (ja) * 1995-09-08 2005-12-21 株式会社ルネサステクノロジ 画像処理装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002057587A (ja) * 2000-08-10 2002-02-22 Sony Corp プロセッサ及びそれを用いた復号装置
KR100450753B1 (ko) * 2002-05-17 2004-10-01 한국전자통신연구원 프로세서와 연결된 프로그램 가능한 가변 길이 디코더
JP2008514095A (ja) * 2004-09-20 2008-05-01 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 可変長エンコーダ/デコーダのためのプログラム可能データプロセッサ
JP2009093513A (ja) * 2007-10-11 2009-04-30 Oki Semiconductor Co Ltd 命令ビット長削減方法

Also Published As

Publication number Publication date
US20020084922A1 (en) 2002-07-04
US6459391B1 (en) 2002-10-01

Similar Documents

Publication Publication Date Title
JP2000207205A (ja) 演算装置
EP0803091B1 (en) Computer system
US5669012A (en) Data processor and control circuit for inserting/extracting data to/from an optional byte position of a register
US6195741B1 (en) Data processing device having a variable length code processing mechanism
JP3729540B2 (ja) 画像処理装置
US5504912A (en) Coprocessor executing pipeline control for executing protocols and instructions
US6844834B2 (en) Processor, encoder, decoder, and electronic apparatus
JP3748003B2 (ja) 符号化方法及び圧縮/伸長システム
US20080148018A1 (en) Shift Processing Unit
US7512290B2 (en) Image processing apparatus with SIMD-type microprocessor to perform labeling
KR950009271B1 (ko) 정보처리시스템
JP3459759B2 (ja) 算術復号化装置
JP2748957B2 (ja) データ処理装置
EP0334131B1 (en) Data processor performing operation on data having length shorter than one-word length
US6144321A (en) Microprocessor dedicated to processing of bit streams in a system of compression/decompression of animated images
US20040028140A1 (en) Speeding up variable length code decoding on general purpose processors
US6133859A (en) Microprocessor dedicated to processing of bit streams in a system of compression/decompression of animated images
JPS5860355A (ja) 情報処理装置
JPH07129398A (ja) マイクロプロセッサ
US20050050120A1 (en) Method of developing a fast algorithm for double precision shift operation
JP3786329B2 (ja) 符号化復号化装置
JP2000112754A (ja) データ処理装置
JPH11163736A (ja) プロセッサ
JP2000278538A (ja) 算術符号化・復号化装置および方法
JP3525582B2 (ja) ビット操作回路

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060404