JP3677788B2 - 信号処理装置および処理方法 - Google Patents
信号処理装置および処理方法 Download PDFInfo
- Publication number
- JP3677788B2 JP3677788B2 JP17176094A JP17176094A JP3677788B2 JP 3677788 B2 JP3677788 B2 JP 3677788B2 JP 17176094 A JP17176094 A JP 17176094A JP 17176094 A JP17176094 A JP 17176094A JP 3677788 B2 JP3677788 B2 JP 3677788B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- value
- signal processing
- header
- multiplexing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【産業上の利用分野】
この発明は、二分探索法を実現するための信号処理装置および処理方法に関する。
【0002】
【従来の技術】
ソフトウェアの世界において最適解を求めるアルゴリズムとして二分探索法と呼ばれる手法がある。従来はICの集積度があまり高くできない等の要因により二分探索法をハードウェアで実現することは困難であった。しかし、昨今の半導体技術の急速な進歩にともないハードウェアでの実現の可能性が生じつつある。
【0003】
先ず、二分探索法について説明する。いま、「与えられた単調関数にたいして、関数の値がある与えられた値よりも小さな(あるいは大きな)値をとるような条件を満たす変数の最小値(あるいは最大値)をもとめる」という問題を考える。この問題は、より実際的な例として、例えば、与えられた伝送路の伝送レート以下に、画像データを圧縮符号化(例えばDCTおよび可変長符号化)して発生した符号化データの伝送レートを制限する、ビットリダクションにおける量子化器制御などがあてはまる。この例では、変数が量子化ステップ(あるいは量子化インデックス)であり、関数はその量子化ステップに対する符号長であり、条件が伝送路のレートを超えない、またはバッファメモリがあふれないようにするということである。また、関数のパラメータとして量子化されるデータがある。このような問題を解くための方法の一つとして二分探索法がある。
【0004】
二分探索法では解の範囲を2つにわけ、条件を満足する方を選択し、さらにこれを2つに分け・・・という処理を繰り返すことにより解の範囲を狭めていき、最終的に解を求めるものである。例として図1に示す関数f(x) においてf(x) の値が450(制限値)を超えない最小値xを求めることにする。この場合、解の範囲として0,1,・・・,14,15とする。二分探索法では以下のようにして解を求める。
【0005】
ステップ1:まず、解が存在するであろう0から15の中間であるx=7のf( )の値を調べる。f(7) =478であり、この関数は単調減少関数であるので、450以下になるxの最小値は8以上15以下であることが分かる。
【0006】
ステップ2:次に解が存在するであろう8から15の中間であるx=11のf( )を調べる。f(11)=314であるから450以下になるxの最小値は8以上11以下であることが分かる。
【0007】
ステップ3:次に解が存在するであろう8から11の中間であるx=9のf()を調べる。f(9) =387であるから450以下になるxの最小値は8以上9以下であることが分かる。
【0008】
ステップ4:次に解が存在するであろう8と9の中でまだ調べていないx=8のf( )を調べる。f(8) =430であるから450以下という条件を満たしている。したがって関数f(x) において450となるxの最小値は8であることが分かる。
【0009】
以上のようにして最適解を求めることができた。これにさらに一般性を持たせてみる。今、解の範囲を0以上2n −1以下とする。そして与えられた関数をf(x) とし、単調減少関数であるとする。そして条件として関数の値が与えられた制限値tgt を超えないような変数xの最小値を求めるものとする。このとき、図2のフローチャートで示されるアルゴリズムで解が求められる。
【0010】
図2のフローチャートを説明する。ステップ1では、初期値として、2n −1を解(xtmp)、nをループ回数(ntmp)とする。次のステップ2では、ループ回数を−1し、次の決定のステップへ移る。ステップ3では、ntmp<0ならば終了し、ntmp≧0ならば次のステップ4へ移る。ステップ4では、xtmp−2ntmpを解xtmpとし、決定のステップ5において、この解が制限値tgt と比較される。このステップ5において、f(xtmp)≦tgt ならばステップ2に戻る。f(xtmp)>tgt ならば、次のステップ6において、xtmp+2ntmpをxtmpとしてから、ステップ2に戻る。
【0011】
いま、問題を「単調減少関数」「制限値tgt を超えないような変数xの最小値」という限定事項があったが、この限定事項の変更は、図2のフローチャートを少し変更するだけで対処できる。例えば、解の範囲を0以上2n −1以下とし、そして与えられた関数f(x) が単調増加関数であるとする。そして条件として、関数の値が与えられた制限値tgt 以下でない最大値を求めるものとすれば、図3のフローチャートで示されるアルゴリズムで解が求められる。
【0012】
図3のステップ11において、解(xtmp)およびループ回数(ntmp)の初期値として、それぞれ0およびnが設定される。ステップ12、13および14は、図2におけるステップ2、3および4と同様である。そして、決定のステップ15において、関数の値f(xtmp)と制限値tgt が比較される。このステップ15において、f(xtmp)>tgt ならばステップ2に戻る。f(xtmp)≦tgt ならば、次のステップ16において、xtmp−2ntmpをxtmpとしてから、ステップ12に戻る。このように、問題の差異は基本的なアルゴリズムに大きく作用しないので、これ以降、先に挙げた方の問題を図2のアルゴリズムによって解くものとする。
【0013】
このアルゴリズムをハードウェアで実現することについて考えてみる。例えば、図4のようにループ制御の形で実現することもできる。図4の回路の動作について説明する。制御回路21は、全体の動作を制御する。レジスタ22とシフト回路23により、2ntmpが作られる。ループのたびにこの値はシフトされていく。レジスタ25はxtmpが保存される。このレジスタの入力として、ループの始めでは初期値が、それ以外は一つ前のループで決まった値が入るように、セレクタ24が切り換えられる。xtmp−2ntmpの演算が減算器26で行われ、その値に対する関数の値を関数発生器27で計算する。この関数値と制限値tgt を比較器28で比較し、その結果に応じてセレクタ29を制御して次のxtmpを求める。このループを2ntmpが0になるまで繰り返す。
【0014】
【発明が解決しようとする課題】
関数発生器27には、必要に応じてパラメータが印加されるが、ループ中同じパラメータを印加するために外部にメモリを持つ必要がある。このループ制御では問題を解くのにループ回数の分だけ時間を要するので、継続的に演算をするには、クロック周波数を上げる等の工夫が必要となる。また、制御も複雑なため設計が難しくなる、などの問題点がある。
【0015】
従って、この発明の目的は、継続的な演算が可能で、回路設計が簡単で、回路規模の増大を抑えることが可能な信号処理装置および処理方法を提供することにある。
【0016】
【課題を解決するための手段】
この発明は、与えられた単調減少、あるいは単調増加の関数に対して、関数の値がある与えられた制限値よりも小さな、あるいは大きな値をとるような制約条件を満たす変数の最小値、あるいは最大値を求める、という問題の解を二分探索法で求めるために、n段のステージ(n:自然数)でパイプライン処理する信号処理装置において、
ステージのそれぞれは、
入力されたデータを、前段のステージまでに決定した解を格納するヘッダと関数を求める際に用いるパラメータとに分離する分離手段と、
関数の関数値と制限値との大小関係に応じて分離手段により分離されたヘッダの内容を更新する更新手段と、
更新手段により更新されたヘッダと分離手段より分離されたパラメータを多重化する多重化手段と、
多重化手段により多重化されたデータを出力する出力手段と
を備える信号処理装置である。
【0017】
【作用】
パイプライン結合によって、パラメータを印加するためのメモリを省略でき、クロック周波数が高くなる問題を回避することができる。さらに、パラメータデータと、前段までで決定した解とを共通のバスを介して伝送するので、バスの本数が増大することを防止でき、回路規模の削減を可能とできる。
【0018】
【実施例】
以下、この発明の一実施例について図面を参照して説明する。この一実施例では、二分探索法を実現するためのハードウエアとして、パイプライン演算の構成を用いる。二分探索法では、常にループ回数が一定になるので、パイプライン演算の方が継続的な演算にも適し、また設計も非常に簡単になる。
【0019】
二分探索法をパイプライン演算で実現した場合を図5に示す。パイプラインは、n個のステージ301 、302 、・・・30n-1 、30n からなる。各ステージは、図6に示す構成を有している。パイプラインのiステージは、図2のループ回数を示すntmpが(n−i)である時の処理となる。前ステージからのxtmpがレジスタ41に供給され、レジスタ41の出力と2n-i が減算回路42に供給され、xtmp−2n-i が減算回路42から得られる。
【0020】
減算回路42の出力が関数発生器43に供給され、関数値が求められ、比較器44において、関数値と制限値tgtが比較される。この比較回路44の出力によって制御されるセレクタ45が設けられ、セレクタ45によって、前ステージからのxtmpと減算回路42の出力とが選択される。セレクタ45からの決定されたxtmpが次のステージ(i+1)へ送られる。
【0021】
図5におけるFIFO311 〜31n-1 は、それぞれのステージに印加されるパラメータの時間合わせのためのものである。このようなパイプラインにxtmpの初期値とパラメータを印加すると、nステージの出力として解を得ることができる。
【0022】
上述のパイプライン構成において、実際上、関数を求める時に用いるパラメータがかなりのデータ量となることが多い問題が生じる。例えば、ビットリダクションの量子化コントロールでは数マクロブロック(1マクロブロックは、コンポーネントビデオデータの各コンポーネントのDCTブロックを合わせたもの)のデータになることもある。また、IC内部ではバスのような多ビットの配線が走り回ると面積の無駄が多い。特にパイプライン結合では多数のバスを使うためかなり大きな無駄となる。
【0023】
この発明の一実施例では、パイプラインにおけるかかる問題点を解決するものである。そのために、データ構造として、図7に示すように、パラメータのデータの並びの先頭にヘッダをつけ、このヘッダに現在までに決定した解を入れる。そして、データの先頭を表すsync(同期信号)をつける。このようなデータ構造を用いることにより、図5および図6の回路構成は、それぞれ図8および図9に示すものとなる。
【0024】
図5の構成と同様に、n段のステージ501 〜50n からなるパイプラインが構成されるが、図8の構成では、パラメータのバスとxtmpのバスを共通にし、また、時間合わせ用のFIFOは、各ステージ内に取り込まれている。図9は、i段のステージの構成を示し、図6の構成と同様に、前ステージからのxtmpがレジスタ51に供給され、レジスタ51の出力と2n-i が減算回路52に供給され、xtmp−2n-i が減算回路52から得られる。
【0025】
減算回路52の出力が関数発生器53に供給され、関数値が求められ、比較器54において、関数値と制限値tgtが比較される。この比較器54の出力によって制御されるセレクタ55が設けられ、セレクタ55によって、前ステージからのxtmpと減算回路52の出力とが選択される。セレクタ55からの決定されたxtmpが次のステージ(i+1)へ送られる。
【0026】
そして、図6の構成に対して、パラメータとヘッダ(xtmp)を分けるためのセレクタ56と、その逆の処理を行なうマルチプレクサ59と、時間合わせ用のFIFO58と、これらを制御する制御回路57とが追加されている。制御回路57は、syncによってデータの始まりを検出し、データからヘッダとパラメータを取り出すタイミング等をつくり出している。
【0027】
この発明が提案するところのパイプラインによる二分探索法は、1ステージで解の範囲を2分していたが、これを4分、8分しても構わない。このときには、図9中の減算回路52、関数発生器53、比較器54を並列に構成することで実現できる。
【0028】
上述の一実施例では、データの同期用にsync信号を用いていたが、データ内に特殊な同期用のsyncデータを多重化しても良い。
【0029】
上述の一実施例では、解を0以上2n −1以下としたが必ずしもそうである必要はない。例えば解の範囲が100以上300以下の場合はn=8として、xtmpの初期値を355とする。そして、xtmp>300 のときは、x=300とすれば良い。
【0030】
【発明の効果】
この発明は、二分探索法をパイプライン処理によって実現することによって、ループ制御の構成と異なり、パラメータを供給するためのメモリを必要とせず、ループ回数の分だけ時間を要することを回避することができる。さらに、パイプライン結合において、パラメータと2n-1 とを共通のバスを介して伝送できるので、パラメータのような多ビットのバスの配線がIC内部で走り回ることを防止できる。その結果、IC内の回路規模の削減を果たすことができる。
【図面の簡単な説明】
【図1】関数f(x) と制限値tgt の関係の一例を示す略線図である。
【図2】単調減少関数時における二分探索法の一例のフローチャートである。
【図3】単調増加関数時における二分探索法の一例のフローチャートである。
【図4】ループ制御による二分探索法の実現回路の一例のブロック図である。
【図5】パイプライン結合による二分探索法の実現回路の一例のブロック図である。
【図6】パイプライン結合による二分探索法の実現回路のi番目ステージの一例のブロック図である。
【図7】この発明の一実施例におけるパラメータのデータ構造のブロック図である。
【図8】この発明の一実施例のブロック図である。
【図9】この発明の一実施例のi番目ステージの一例のブロック図である。
【符号の説明】
52 減算回路
53 関数発生器
54 比較器
55、56、59 セレクタ
57 制御回路
Claims (3)
- 与えられた単調減少、あるいは単調増加の関数に対して、上記関数の値がある与えられた制限値よりも小さな、あるいは大きな値をとるような制約条件を満たす変数の最小値、あるいは最大値を求める、という問題の解を二分探索法で求めるために、n段のステージ(n:自然数)でパイプライン処理する信号処理装置において、
上記ステージのそれぞれは、
入力されたデータを、前段の上記ステージまでに決定した解を格納するヘッダと上記関数を求める際に用いるパラメータとに分離する分離手段と、
上記関数の関数値と上記制限値との大小関係に応じて上記分離手段により分離された上記ヘッダの内容を更新する更新手段と、
上記更新手段により更新された上記ヘッダと上記分離手段より分離された上記パラメータを多重化する多重化手段と、
上記多重化手段により多重化されたデータを出力する出力手段と
を備える信号処理装置。 - 請求項1に記載の信号処理装置において、
上記分離手段により分離された上記パラメータを上記更新手段で要する処理時間分遅延させる遅延手段をさらに備える信号処理装置。 - 与えられた単調減少、あるいは単調増加の関数に対して、上記関数の値がある与えられた制限値よりも小さな、あるいは大きな値をとるような制約条件を満たす変数の最小値、あるいは最大値を求める、という問題の解を二分探索法で求めるために、n段のステージ(n:自然数)でパイプライン処理する信号処理方法において、
上記ステージのそれぞれは、
入力されたデータを、前段の上記ステージまでに決定した解を格納するヘッダと上記関数を求める際に用いるパラメータとに分離する分離ステップと、
上記関数の関数値と上記制限値との大小関係に応じて上記分離ステップにより分離された上記ヘッダの内容を更新する更新ステップと、
上記更新ステップにより更新された上記ヘッダと上記分離ステップにより分離された上記パラメータを多重化する多重化ステップと、
上記多重化ステップにより多重化されたデータを出力する出力ステップと
を備える信号処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17176094A JP3677788B2 (ja) | 1994-06-30 | 1994-06-30 | 信号処理装置および処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17176094A JP3677788B2 (ja) | 1994-06-30 | 1994-06-30 | 信号処理装置および処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0816362A JPH0816362A (ja) | 1996-01-19 |
JP3677788B2 true JP3677788B2 (ja) | 2005-08-03 |
Family
ID=15929176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17176094A Expired - Fee Related JP3677788B2 (ja) | 1994-06-30 | 1994-06-30 | 信号処理装置および処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3677788B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5309354B2 (ja) * | 2006-02-28 | 2013-10-09 | 独立行政法人産業技術総合研究所 | 高速パターンマッチング装置の探索方法 |
-
1994
- 1994-06-30 JP JP17176094A patent/JP3677788B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0816362A (ja) | 1996-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3136796B2 (ja) | 可変長符号デコーダ | |
EP1158807B1 (en) | Data stream conversion apparatus and method, variable length coded data stream generation apparatus and method, and camera system | |
JP3677788B2 (ja) | 信号処理装置および処理方法 | |
US8787686B2 (en) | Image processing device and image processing method | |
JPH0433406A (ja) | トランスバーサルフィルタ回路 | |
JPH0865171A (ja) | データ伸長装置、データ伸長方法、デコーディング装置、デコーディング方法、リアルタイムビデオ装置、エンコーディング装置、及びエントロピー・デコーダ | |
Pastuszak | A novel architecture of arithmetic coder in JPEG2000 based on parallel symbol encoding | |
US7233566B2 (en) | Five-by-three wavelet transform apparatus | |
JP2762941B2 (ja) | 背景雑音発生装置 | |
Friedman et al. | A bit-slice architecture for sigma-delta analog-to-digital converters | |
JP3691261B2 (ja) | 可変長復号器のデータ可変装置 | |
JP4143907B2 (ja) | 情報処理装置および方法、並びにプログラム | |
JPH07200252A (ja) | バレルシフタ回路 | |
US9214955B2 (en) | Boolean entropy decoder and boolean entropy decoding method for video display system | |
JP2810271B2 (ja) | ディジタル加入者線伝送インターフェイス装置用オーバーサンプリング形a/d変換器 | |
KR0153173B1 (ko) | 양자화/역양자화 공유 처리기 | |
KR100241760B1 (ko) | 적응적인 시프트 레지스터 | |
JP2000050277A (ja) | 符号化装置及び符号化方法 | |
JP2004228906A (ja) | フレーム信号処理方法及びフレーム信号処理装置 | |
JPH09153821A (ja) | 直並列変換方式 | |
KR100259472B1 (ko) | 동기식 데이터 압축 시스템의 데이터 흐름 제어방법 및 장치 | |
KR19980054466A (ko) | 적응적인 시프트 레지스터 | |
JP2002007117A (ja) | 情報処理装置 | |
JPH06112844A (ja) | 速度変換回路 | |
JPH03255723A (ja) | 可変ビット長のパッキング処理方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041027 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041102 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041224 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050419 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050502 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090520 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100520 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |