JPH1127541A - 部分ランレングス測定方法 - Google Patents

部分ランレングス測定方法

Info

Publication number
JPH1127541A
JPH1127541A JP19208197A JP19208197A JPH1127541A JP H1127541 A JPH1127541 A JP H1127541A JP 19208197 A JP19208197 A JP 19208197A JP 19208197 A JP19208197 A JP 19208197A JP H1127541 A JPH1127541 A JP H1127541A
Authority
JP
Japan
Prior art keywords
bit
bit string
measured
bits
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP19208197A
Other languages
English (en)
Inventor
Yoshitsugu Inoue
喜嗣 井上
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP19208197A priority Critical patent/JPH1127541A/ja
Publication of JPH1127541A publication Critical patent/JPH1127541A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 【課題】多ビットを対象として部分ランレングスを測定
すること困難で、処理を高速にできなかった。そこで、
簡単に多くのビットを対象にできるようにする。 【解決手段】測定するのが1のランである場合は測定対
象の各ビットを反転する(段階a)。測定するビット列
が表す数を浮動小数点数に変換する(段階b)。測定す
るビット列の最上位ビットの値が1である場合には部分
ランレングスの値を0とし(段階c)、そのビット列が
表す数が0である場合には測定対象ビット数を部分ラン
レングスとする(段階d)。それ以外の場合には固定値
から指数を減じて部分ランレングスとする(段階e)。
部分ランレングスが測定対象ビット数より大きい場合に
は測定対象ビット数を部分ランレングスとする(段階
f)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】入力したビット列について値
が0又は値が1のビットが測定開始ビットから何個連続
するかを測定する部分ランレングス測定方法、特にその
高速化及び構成の簡略化に関するものである。
【0002】
【従来の技術】プリンタ、スキャナ又はファクシミリ装
置及びそれらの機能を併せ持つ複合装置では、イメージ
データをランレングス符号に圧縮してイメージデータの
通信時間の短縮及び省メモリ化を図っている。この圧縮
処理は専用のLSIを用いて行なうことが一般的であっ
たが、プロセッサの性能の向上により、装置全体の制御
を行なうプロセッサにこの圧縮処理を行なわせ、専用L
SIをなくすことが一般的になってきている。
【0003】一般的に、ランレングス符号化は測定する
のを0のランか又は1のランに定める段階と、そのラン
レングスを測定する段階と、ランレングスの値を表す符
号又は符号列を生成し出力する段階とで構成され、一度
ランレングスを測定した後に測定するランを0から1又
は1から0に切り替え、先に検出された変化点を新たな
始点として部分的なランレングスの測定を繰り返してい
る。
【0004】上記のランレングスを測定する段階におい
て、ビット列を1ビットづつ検査して、変化点を検出す
るまでカウントする方法を用いることは非効率的であ
る。そこで、イメージデータから抽出した複数ビットの
ビット列を対象としてランレングスを測定する方法が一
般的である。
【0005】ここで、イメージデータから抽出したビッ
ト列について上記測定を行なった値をランレングスと称
する場合もあるが、その値は部分的な測定値にすぎな
い。符号化に用いるランレングスの値は、測定開始点か
ら次の変化点又は測定終了点までの部分的な測定値の総
和である。以後、両者を明確に区別するためにイメージ
データから抽出したビット列について上記測定を行なっ
た値を部分ランレングスと称する。
【0006】上記のようにビット列をまとめて測定する
方法としては、測定するビット列をエントリ(パターン
テーブルのアドレス入力)として予め用意したパターン
テーブルを参照して部分ランレングスの値を得るテーブ
ル参照方法が一般的に行なわれてきた。例えば特開平6
-169406号公報に掲載されたランレングス符号化装置に
おいては、ビット列とそのビット列に関するランレング
スとを1対1に対応させたことでパターンテーブルのデ
ータ量を削減している。
【0007】また、何らかのビット列に対して0のビッ
トの連続数又は1のビットの連続数を計測する命令セッ
トを有するプロセッサを用いる場合には、その命令を用
いることで部分ランレングスを測定できる。
【0008】通常イメージデータでは白色に相当するビ
ット数が数十から数千ビット連続する場合が多い。この
ようなデータを走査し、ランレングスを測定する処理を
高速に行なうためには、大きなビット幅で部分ランレン
グスを測定する必要がある。
【0009】
【発明が解決しようとする課題】しかしながら、パター
ンテーブルを参照する方法では測定するビット幅を1ビ
ット大きくするとテーブルの記憶容量が2倍以上必要に
なる。このため、上記特開平6-169406号公報に掲載さ
れたランレングス符号化装置で用いたパターンテーブル
を参照する方法では、ランレングスの測定処理を高速に
行なおうとするとコストが高くなる。このコストの面を
考慮すると、8から12ビット程度のビット列をまとめて
測定するのが現実的である。
【0010】また、プリンタ、スキャナ又はファクシミ
リ装置及びそれらの機能を併せ持つ複合装置では、その
優れたコスト性能比から装置全体を制御するプロセッサ
としてRISC(縮小命令セット型コンピュータ)を搭
載したものが一般的になりつつある。RISCが扱うデ
ータタイプは8ビット、16ビット、32ビット又は64ビッ
トの2進整数並びにIEEE754−1985規格の単
精度形式及び倍精度形式の浮動小数点数といった標準的
形式に限られていて、ビット列を計測するような命令を
持たないのが一般的である。RISCを搭載したプロセ
ッサを用いる代わりにビット列のランを計測するような
命令を持つプロセッサを用いることは、このビット列の
ランを計測する処理以外の処理において、RISCの優
れた機能を使えないことになる。また、RISCを搭載
したプロセッサを用いる代わりにビット列のランを計測
するような命令を持つプロセッサを用いることにより、
RISCの標準的な形式にしたがってプログラムを作成
することができなくなり、その再利用性を高めることが
できなくなる。
【0011】この発明はかかる短所を解消するためにな
されたものであり、高速に、且つ、安価に部分ランレン
グスの測定を行なうことを目的とする。
【0012】
【課題を解決するための手段】この発明に係る部分ラン
レングス測定方法は、予め定めたビット数の範囲内でイ
メージデータから抽出した測定対象のビット列(X)と
測定するのが0のビットのランか又は1のビットのラン
かを示す測定情報(C)とイメージデータから抽出した
ビット列(X)のビット数(N)を入力し、測定情報
(C)により測定するのが0のランの場合は入力したビ
ット列(X)を測定開始ビットが最上位ビットになるよ
うに1ワード分のビット数(L)のデータ幅を有する測
定対象記憶領域(Q)に入れ、測定するのが1のランで
ある場合はその測定対象のビット列(X)の各ビットを
反転して測定開始ビットが最上位ビットになるように測
定対象記憶領域(Q)に入れ、測定対象記憶領域(Q)
内のビット列が2進数の数を表しているとみなしてその
ビット列が表す数を浮動小数点数(Y)に変換し、測定
対象記憶領域(Q)内のビット列の最上位ビットの値が
1である場合には部分ランレングス(W)の値を0と
し、測定対象記憶領域(Q)内のビット列が表す数が0
である場合には測定対象のビット列(X)のビット数
(N)を部分ランレングス(W)とし、測定対象記憶領
域(Q)内のビット列の最上位ビットの値が1でなく、
且つ、測定対象記憶領域(Q)内のビット列が表す数が
0でない場合は、浮動小数点数(Y)の指数(E)のバ
イアス値(B)に1ワード分のビット数(L)を加えさ
らにその値から1を減じて定めた固定値(G)から指数
(E)を減じて部分ランレングス(W)とし、部分ラン
レングス(W)が測定対象のビット列(X)のビット数
(N)よりも大きい場合には測定対象のビット列(X)
のビット数(N)を部分ランレングス(W)とする。
【0013】また、他の部分ランレングス測定方法は、
予め定めたビット数の範囲内でイメージデータから抽出
した測定対象のビット列(X)と測定するのが0のビッ
トのランか又は1のビットのランかを示す測定情報
(C)とイメージデータから抽出したビット列(X)の
ビット数(N)を入力し、測定情報(C)により測定す
るのが0のランの場合は入力したビット列(X)を測定
開始ビットが最上位ビットになるように1ワード分のビ
ット数(L)のデータ幅を有する測定対象記憶領域
(Q)に入れ、測定するのが1のランである場合はその
測定対象のビット列(X)の各ビットを反転して測定開
始ビットが最上位ビットになるように測定対象記憶領域
(Q)に入れ、測定対象記憶領域(Q)の測定対象ビッ
ト列(X)を入れなかった部分のビットの値を0にし、
測定対象記憶領域(Q)内のビット列(X)が2進数の
数を表しているとみなしてそのビット列(X)が表す数
を浮動小数点数(Y)に変換し、測定対象記憶領域
(Q)内のビット列(X)の最上位ビットの値が1であ
る場合には部分ランレングス(W)の値を0とし、測定
対象記憶領域(Q)内のビット列(X)が表す数が0で
ある場合には測定対象のビット列(X)のビット数
(N)を部分ランレングス(W)とし、測定対象記憶領
域(Q)内のビット列(X)の最上位ビットの値が1で
なく、且つ、測定対象記憶領域(Q)内のビット列
(X)が表す数が0でない場合は、浮動小数点数(Y)
の指数(E)のバイアス値(B)に1ワード分のビット
数(L)を加えさらにその値から1を減じて定めた固定
値(G)から指数(E)を減じて部分ランレングス
(W)とする。
【0014】
【発明の実施の形態】この発明の部分ランレングス測定
方法は、予め定めたビット数の範囲内でイメージデータ
から抽出した測定対象のビット列(X)と測定するのが
0のビットのランか又は1のビットのランかを示す測定
情報(C)とイメージデータから抽出したビット列
(X)のビット数(N)を入力し、測定情報(C)で示
したランの部分ランレングス(W)を出力するものであ
る。この部分ランレングス測定方法を用いて、一度部分
ランレングス(W)を測定した後に測定するランを0の
ランから1又は1から0のランに切り替え、先に検出さ
れた変化点を新たな始点として部分ランレングス(W)
の測定を繰り返して、イメージデータ全体のランレング
スの測定を行なう。
【0015】この発明の部分ランレングス測定方法にお
いては、最初上記のように予め定めたビット数の範囲内
でイメージデータから抽出した測定対象のビット列
(X)と測定するのが0のビットのランか又は1のビッ
トのランかを示す測定情報(C)とイメージデータから
抽出したビット列(X)のビット数(N)を入力する。
次ぎに、測定情報(C)で示した測定するランが0のラ
ンの場合は入力したビット列(X)を測定開始ビットが
最上位ビットになるように1ワード分のビット数(L)
のデータ幅を有する測定対象記憶領域(Q)に入れ、測
定するのが1のランである場合はその測定対象のビット
列(X)の各ビットを反転して測定開始ビットが最上位
ビットになるように測定対象記憶領域(Q)に入れる。
【0016】次ぎに、測定対象記憶領域(Q)内のビッ
ト列が2進数の数を表しているとみなしてそのビット列
が表す数をIEEE754−1985規格の浮動小数点
数(Y)に変換して、部分ランレングス(W)の測定の
準備をする。次ぎに、測定対象記憶領域(Q)内のビッ
ト列の最上位ビットを調べ、測定対象記憶領域(Q)内
のビット列の最上位ビットの値が1である場合には部分
ランレングス(W)の値を0とする。また、測定対象記
憶領域(Q)内のビット列が表わす値が0である場合に
は測定対象のビット列(X)のビット数(N)を部分ラ
ンレングス(W)とする。測定対象記憶領域(Q)内の
ビット列の最上位ビットが1でなく、且つ、測定対象記
憶領域(Q)内のビット列が示す値が0でない場合は、
固定値(G)浮動小数点数(Y)の指数(E)を減じた
値を部分ランレングス(W)とする。ここで、固定値
(G)は浮動小数点数(Y)の指数(E)のバイアス値
(B)に1ワード分のビット数(L)を加えさらにその
値から1を減じて定める。また、指数(E)のバイアス
値(B)とは指数(E)の最上位ビットを除いたビット
で表わすことのできる最大値をいう。
【0017】次ぎに、上記のようにして求めた部分ラン
レングス(W)が測定対象のビット列(X)のビット数
(N)よりも大きい場合には測定対象のビット列(X)
のビット数(N)を部分ランレングス(W)とする。こ
のように、入力したビット列(X)を浮動少数点数
(Y)に変換し、変換して得た浮動小数点数(Y)を用
いてランレングス(W)を測定するので、膨大な量の参
照データを用意しなくとも、高速に部分ランレングス
(W)を測定できる。
【0018】
【実施例】この発明の部分ランレングス測定方法は、単
精度形式を用いるか又は倍精度形式を用いるかを基に予
め定めたビット数の範囲内でイメージデータから抽出し
た測定対象のビット列Xと測定対象のビット列Xのビッ
ト数Nと測定するのが0のビットのランか又は1のビッ
トのランかを示す測定情報Cを入力し、測定対象のビッ
ト列Xの部分ランレングスWを測定するものである。
【0019】図1はこの発明の部分ランレングス測定方
法に用いる各データを格納する記憶部の一実施例を示す
構成図である。記憶部は入力記憶部1、測定対象記憶部
2、浮動小数点数記憶部3及び出力記憶部4を有する。
入力記憶部1は部分ランレングス測定処理を行なうにあ
たって入力したデータを記憶する部分であり、測定対象
ビット列記憶部11、ビット幅記憶部12及び測定情報
記憶部13を備える。測定対象ビット列記憶部11、ビ
ット幅記憶部12及び測定情報記憶部13には、処理性
能の観点からそれぞれ汎用レジスタを用い、汎用レジス
タのビット数(1ワード分のビット数)をNとする。測
定対象ビット列記憶部11は、例えば図2に示すように
測定対象のビット列Xの測定開始ビットが最上位ビット
になるように記憶する。したがって、測定対象のビット
列Xのビット数Nが測定対象ビット列記憶部11で記憶
できるビット数Lよりも少ない場合は測定対象ビット列
記憶部11の下位ビットの部分に測定対象外の部分であ
る非測定部Uができる。このため、測定対象記憶部2に
おける測定対象ビット列記憶部11の非測定部Uに対応
する部分の各ビットには後述するように0を代入すると
良い。
【0020】ここで、予め定めた測定単位のビット数L
は、より大きなビット数を一度に測定することでより高
い性能を得ることができるという観点からすれば、汎用
レジスタのビット幅に一致することが好ましい。しか
し、測定対象のビット列Xの最下位ビットがイメージデ
ータの最終ビットである場合には、その最下位ビットが
汎用レジスタの最下位ビットと一致する可能性は低い。
例えば64ビットのRISCでは1〜64の値を採ることが
可能であるが、性能上の問題から測定対象のビット列X
のビット数Nの最大値を単精度浮動小数点数の場合は2
4、倍精度浮動小数点の場合は53に制限することが必要
である。ここで、RISCのワードの単位と測定対象の
ビット列のビット数との関係についての例を以下の表に
示す。
【0021】
【表1】
【0022】通常のRISCには単精度形式及び倍精度
形式の両方を扱う機能が備わっているため、倍精度形式
を用いて32ビットから53ビットのビット列Xの部分ラン
レングスWを測定することが処理効率の上から好まし
い。ただし、単精度形式のデータしか扱うことができな
いRISC又は倍精度形式への変換が著しく低速なRI
SCの場合は単精度形式を用いて16ビットから24ビット
のビット列Xの部分ランレングスWを測定することが好
ましい。
【0023】ビット幅記憶部12は測定対象のビット列
Xのビット数Nを記憶する。測定情報記憶部13は測定
するのが0のビットのランか又は1のビットのランかを
示す測定情報Cを記憶する。
【0024】測定対象記憶部2は測定対象ビット列記憶
部11に記憶した内容を加工して記憶するビット数Lの
測定対象記憶領域Qから成る。ここで、測定対象記憶領
域Qは汎用レジスタに設けることが好ましい。
【0025】浮動小数点数記憶部3は、測定対象のビッ
ト列Xを2進数の数を表しているとみなした場合にその
ビット列Xが表す数を変換した浮動小数点数Yを記憶す
る部分であり、図3に示すように符号部31と指数部3
2と仮数部33から成る。符号部31は仮数部33の符
号を示すデータSを記憶するビットから成る。指数部3
2は浮動小数点数Yの指数Eを記憶する。仮数部33は
浮動小数点数Yの仮数Fを記憶する。符号部31と指数
部32と仮数部33は、IEEE754−1985規格
の倍精度浮動小数点数の形式にしたがってそれぞれ1ビ
ット、11ビット、52ビットのフィールド幅を備え
る。ここで、単精度浮動小数点数の場合は、符号部31
と指数部32と仮数部33のフィールド幅はそれぞれ1
ビット、8ビット、23ビットとなる。指数部32のバ
イアス値は最上位1ビットを除いたビットで構成される
ので、倍精度浮動小数点数の場合は1023となり、単精度
浮動小数点数の場合は127となる。浮動小数点数記憶部
3には、浮動小数点汎用レジスタを用いることが処理性
能を向上する観点から好ましい。プロセッサのアーキテ
クチャが汎用レジスタと浮動小数点汎用レジスタとを区
別しない場合には浮動小数点数記憶部3に汎用レジスタ
を用いても良い。出力記憶部4は部分ランレングスの測
定結果を記憶する部分ランレングス記憶部41から成
る。部分ランレングス記憶部41にも汎用レジスタを用
いることが好ましい。
【0026】次ぎに、部分ランレングス測定方法の処理
の流れを、図4のフローチャートを参照して説明する。
【0027】部分ランレングスを測定する処理の最初の
段階(段階a)は、測定対象ビット列記憶部11に記憶
した内容を加工して測定対象記憶領域Qに記憶する段階
である。測定対象ビット列記憶部11、ビット幅記憶部
12及び測定情報記憶部13にそれぞれ測定対象のビッ
ト列X、測定対象のビット列Xのビット数N及び測定す
るのが0のビットのランか又は1のビットのランかを示
す測定情報Cを入力して部分ランレングスの測定処理を
開始すると(ステップS1)、測定情報記憶部13に記
憶した測定情報Cを調べて、測定するのが0のランか1
のランかを調べる。測定するのが1のランの場合は(ス
テップS2)、測定対象ビット列記憶部11に記憶した
測定対象のビット列Xの各ビットを反転する(ステップ
S3)。測定するのが1のランである場合には、測定対
象のビット列Xの各ビットを反転することにより0のラ
ンを測定する処理と同じ処理により1のランを測定で
き、処理を簡素化することができる。ここで、測定対象
ビット列記憶部11、ビット幅記憶部12及び測定情報
記憶部13は、汎用レジスタから成るのでRISCでは
上記処理を1命令で行なうことができる。
【0028】その後、測定対象のビット列Xの測定開始
ビットが測定対象記憶部2の最上位ビットになるよう
に、測定対象のビット列Xを測定対象記憶領域Qに入れ
る(ステップS4)。ここで、測定対象のビット列Xの
ビット数Nが予め定めた測定単位のビット数Lより少な
い場合は、測定対象記憶部2の下位ビット部分に測定対
象外の部分が発生する。そこで、この測定対象外の部分
ができた場合には、この測定対象外の部分の各ビットに
0を入れる(ステップS5)。この操作は、例えば32ビ
ットRISC(L=32)で単精度形式(仮数部Fのビッ
ト数M=23)を用いる場合、及び64ビットRISC(L
=64)で単精度形式(仮数部Fのビット数M=23)又は
倍精度形式(仮数部Fのビット数M=52)を用いる場合
のように、測定対象のビット列Xのビット数Nの最大値
をM(仮数部Fのビット数)+1(単精度の場合はN=
24、倍精度の場合はN=53)に制限している場合に、後
述の段階eで正しい値を求めるために必要である。これ
に対して32ビットRISC(測定対象のビット列Xのビ
ット数Nが32)で倍精度形式(M=52)を用いる場合に
は後述の段階fが作用するので、この処理を省略しても
良い。
【0029】次ぎの段階(段階b)では、測定対象記憶
領域Qに格納したビット列が2進数の数を表していると
みなして、そのビット列が表す数を浮動小数点数Yに変
換する(ステップS6)。ここで、この段階(段階b)
は後述する段階eに含めても良い。この段階(段階b)
を段階eに含めずに、段階c及び段階dの前にしたの
は、通常、整数から浮動小数点数への変換に数パイプラ
インクロックを必要とし、変換が終了するまで正しい値
を取り出せないので、変換の結果を待たずに段階c及び
段階dの処理を行ない、段階eで変換結果が必要になっ
た場合にすぐにその変換結果を使えるようにするためで
ある。ただし、これらの段階(段階b、段階c及び段階
d)は使用するRISCの特性にしたがって順序を交換
しても良い。RISCでは、上記ステップS6の処理は
測定対象記憶領域Qに格納したビット列を第1の浮動小
数点汎用レジスタ(不図示)に転送する命令と第1の浮
動小数点汎用レジスタに記憶したビット列が表わす2進
整数を浮動小数点数に変換して浮動小数点レジスタであ
る浮動小数点記憶部3に格納する命令の2個の命令で実
行できる。
【0030】次ぎの段階(段階c)では、測定対象記憶
領域Qに格納したビット列の最上位ビットの値が1であ
る場合(ビット列Xが2進数の数を表しているとみなし
た場合においてビット列Xが表す数が負値の場合)(ス
テップS7)、部分ランレングス記憶部41に0を入
れ、部分ランレングスWの値を0とする(ステップS
8)。測定対象記憶領域Qに格納したビット列の最上位
ビットの値が1である場合は、明らかに値が0であるビ
ットの連続数は0である。この段階は測定対象記憶領域
Qに格納したビット列が表す数が負値である場合に後述
の段階eで誤った結果を出すことを防止するためであ
る。また、後述の段階eの処理を行なう必要がないので
部分ランレングス測定処理を迅速に行なうことができ
る。ここで、上位のランレングス測定処理あるいは符号
化処理において、部分ランレングスの測定結果が0とな
る場合には部分ランレングスの測定を起動しないように
しても良い。この場合はこの段階cを省略しても良い。
RISCでは、上記ステップS7及びステップS8の処
理を測定対象記憶領域Qに格納したビット列が表す数が
負値の場合に分岐する命令と部分ランレングス記憶部4
1の値を0にして部分ランレングスWの値を0にする命
令との2個の命令で行なうことができる。さらに、部分
ランレングス記憶部41の値を0にする命令を分岐遅延
スロットに配置することが好ましい。
【0031】次ぎの段階(段階d)では、測定対象記憶
領域Qに格納したビット列が表わす値が値が0である場
合には(ステップS9)、部分ランレングス記憶部41
に測定対象のビット列Xのビット数Nを入れ、部分ラン
レングスWの値を測定対象のビット列Xのビット数Nと
する(ステップS10)。測定対象記憶領域Qのビット
列の全てのビットの値が0である場合には値が0である
ビットの連続数は測定対象記憶領域Qのビット数Lであ
るが、ビット列Xのビット数Nが測定対象記憶領域Qの
ビット数Lより小さい場合にはL−Nビット分の無効連
続ビットが存在する。上記のように測定対象記憶領域Q
のビット列が表わす値が0である場合に測定対象のビッ
ト列Xの有効ビット数であるビット数Nを部分ランレン
グスWの値とすることで、このように段階dで部分ラン
レングスWを定めた後に後述の段階fを行なう必要が無
くなる。また、後述の段階eの処理を行なう必要もない
ので、部分ランレングス測定処理を迅速に行なうことが
できる。RISCでは、上記ステップS9及びステップ
S10の処理を測定対象記憶領域Qのビット列が表す数
が0の場合に分岐する命令と部分ランレングス記憶部4
1の値をNにして部分ランレングスWの値をNにする命
令との2個の命令で行なうことができる。さらに、部分
ランレングス記憶部41の値をNにする命令を分岐遅延
スロットに配置することが好ましい。
【0032】ここで、上記段階cと段階dは順序を入れ
替えても良く、条件が成立する順序が高いものを先にす
るようにすると良い。
【0033】測定対象記憶領域Qのビット列の最上位ビ
ットが1でなく、かつ、測定対象記憶領域Qのビット列
が表わす数が0でないと、次ぎの段階である段階eを開
始する。段階eでは予め定めた固定値Gから浮動小数点
数Yの指数Eを減じた数を部分ランレングスWの値とす
る(ステップS11)。ここで、固定値Gは指数部33
のバイアス値Bと測定対象記憶領域Qのビット数Lとで
定まり、G=B+L−1となる。測定対象記憶領域Qの
ビット列が表わす数が正値であり、且つ、測定対象のビ
ット列Xのビット数NがM+1を超えない場合には、部
分ランレングスWと指数Eには、W=(B+L−1)−
Eの関係が成立する。これにより、部分ランレングスW
はW=G−Eとなる。
【0034】RISCでは部分ランレングス記憶部41
に固定値Gを代入する処理は通常1命令で実行できる。
一方、指数部32から指数Eを抽出する処理は、浮動小
数点数Yをテンポラリな汎用レジスタに読み込む命令
と、その値を仮数部33のビット幅分だけ下位方向
(右)にシフトして格納するという2個の命令で実行で
きる。このシフト後も符号Sの値が上記テンポラリな汎
用レジスタに残るが、その値は0であるので、以後の計
算には影響しない。また、例えば32ビットRISC(L
=32)で倍精度形式(64ビット)を用いるような場合に
も、2個のテンポラリな汎用レジスタを用いて浮動小数
点数Yの値を全て読み出す必要はなく、指数部32を含
むワードのみを読み出し、シフト量をM−32とすれば良
い。RISCでは部分ランレングス記憶部32に記憶し
た部分ランレングスWの値から指数Eを減じる処理は通
常1命令で実行できる。
【0035】上記のように部分ランレングスWをW=G
−Eで求めた場合は、段階fにおいて(部分ランレング
スW)>(ビット列Xのビット数N)となっているか否
かを調べ(ステップS12)、(部分ランレングスW)
>(ビット列Xのビット数N)となっている場合には部
分ランレングスWの値をNとする(ステップS13)。
RISCでは上記ステップS12及びステップS13の
処理を通常4命令程度で実行できる。
【0036】上記のようにIEEE754−1985規
格の浮動小数点数Yを用いてランレングスを求めるの
で、参照テーブル等を用意する必要がなく記憶領域を小
さくできる。さらに、23ビットから53ビットといった単
位でランレングスの測定を行なうことができ、また、最
高でもRISCの十数命令で部分ランレングスの測定を
行なうことができるので、処理をさらに高速化できる。
【0037】
【発明の効果】この発明は以上説明したように、測定す
るのが1のランである場合はその測定対象のビット列の
各ビットを反転し、測定対象のビット列が2進数の数を
表しているとみなしてそのビット列が表す数を浮動小数
点数に変換し、測定対象のビット列の最上位ビットが1
である場合には部分ランレングスを0とし、測定対象の
ビット列が表す数が0である場合には入力したビット列
のビット数を部分ランレングスとし、測定対象のビット
列の最上位ビットが1でなく、且つ、測定対象のビット
列が表す数が0でない場合は、予め定めた固定値から浮
動小数点数の指数を減じて部分ランレングスとし、部分
ランレングスが入力したビット列のビット数よりも大き
い場合には入力したビット列のビット数を部分ランレン
グスとするので、予め参照テーブル等を用意する必要が
なく、記憶容量を小さくできる。
【0038】さらに、測定するのが1のランである場合
はその測定対象のビット列の各ビットを反転するので、
0のランを測定すると同じ処理で1のランを測定するこ
とができ、処理を簡単にすることができる。
【0039】また、参照テーブルを用いる場合に比べ多
くのビットを対象にして部分ランレングスを測定できる
ので、処理を高速化することができる。
【0040】また、特殊なビット操作命令を使用する必
要がないので、RISC等を用いることができ、処理を
高速化できると共に、装置全体を制御するプロセッサで
部分ランレングスの測定をでき、装置構成を簡単にでき
る。
【0041】また、測定対象のビット列を測定開始ビッ
トが最上位ビットになるように1ワード分のビット数の
データ幅を有する測定対象記憶領域に入れ、測定対象記
憶領域の測定対象ビット列を入れなかった部分のビット
を0にするので、測定対象ビット列の各ビットの値が0
の場合に処理を迅速に行なうことができると共に、測定
対象のビット列のビット数の最大値を仮数のビット数+
1に制限している場合に、予め定めた固定値から浮動小
数点数の指数を減じて部分ランレングスとする際の部分
ランレングスの長さを間違って求めることを防止でき
る。
【図面の簡単な説明】
【図1】記憶部の構成図である。
【図2】測定対象ビット列記憶部の構成図である。
【図3】浮動小数点数記憶部の構成図である。
【図4】この発明の動作を示すフローチャートである。
【符号の説明】
C 測定するランを示す測定情報 E 指数 F 可数 L 測定単位のビット数 N 測定対象ビット列のビット数 Q 測定対象記憶領域 S 符号 W 部分ランレングス X 測定対象のビット列 Y 浮動小数点数 1 入力記憶部 11 測定対象ビット列記憶部 12 ビット幅記憶部 13 測定情報記憶部 2 測定対象記憶部 3 浮動小数点数記憶部 31 符号部 32 指数部 33 仮数部 4 出力記憶部 41 部分ランレングス記憶部

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 予め定めたビット数の範囲内でイメージ
    データから抽出した測定対象のビット列(X)と測定す
    るのが0のビットのランか又は1のビットのランかを示
    す測定情報(C)とイメージデータから抽出したビット
    列(X)のビット数(N)を入力し、入力した測定情報
    (C)に応じて測定対象のビット列(X)に値が0のビ
    ットが何ビット連続するか又は値が1のビットが何ビッ
    ト連続するかを測定する部分ランレングス測定方法にお
    いて、測定するのが0のランの場合は入力したビット列
    (X)を測定開始ビットが最上位ビットになるように1
    ワード分のビット数(L)のデータ幅を有する測定対象
    記憶領域(Q)に入れ、測定するのが1のランである場
    合はその測定対象のビット列(X)の各ビットを反転し
    て測定開始ビットが最上位ビットになるように測定対象
    記憶領域(Q)に入れ、測定対象記憶領域(Q)内のビ
    ット列が2進数の数を表しているとみなしてそのビット
    列が表す数を浮動小数点数(Y)に変換し、測定対象記
    憶領域(Q)内のビット列の最上位ビットの値が1であ
    る場合には部分ランレングス(W)の値を0とし、測定
    対象記憶領域(Q)内のビット列が表す数が0である場
    合には測定対象のビット列(X)のビット数(N)を部
    分ランレングス(W)とし、測定対象記憶領域(Q)内
    のビット列の最上位ビットの値が1でなく、且つ、測定
    対象記憶領域(Q)内のビット列が表す数が0でない場
    合は、浮動小数点数(Y)の指数(E)のバイアス値
    (B)に1ワード分のビット数(L)を加えさらにその
    値から1を減じて定めた固定値(G)から浮動小数点数
    (Y)の指数(E)を減じて部分ランレングス(W)と
    し、部分ランレングス(W)が測定対象のビット列
    (X)のビット数(N)よりも大きい場合には測定対象
    のビット列(X)のビット数(N)を部分ランレングス
    (W)とすることを特徴とする部分ランレングス測定方
    法。
  2. 【請求項2】 予め定めたビット数の範囲内でイメージ
    データから抽出した測定対象のビット列(X)と測定す
    るのが0のビットのランか又は1のビットのランかを示
    す測定情報(C)とイメージデータから抽出したビット
    列(X)のビット数(N)を入力し、測定情報(C)に
    応じて測定対象のビット列(X)に値が0のビットが何
    ビット連続するか又は値が1のビットが何ビット連続す
    るかを測定する部分ランレングス測定方法において、測
    定するのが0のランの場合は入力したビット列(X)を
    測定開始ビットが最上位ビットになるように1ワード分
    のビット数(L)のデータ幅を有する測定対象記憶領域
    (Q)に入れ、測定するのが1のランである場合はその
    測定対象のビット列(X)の各ビットを反転して測定開
    始ビットが最上位ビットになるように測定対象記憶領域
    (Q)に入れ、測定対象記憶領域(Q)の測定対象ビッ
    ト列(X)を入れなかった部分のビットの値を0にし、
    測定対象記憶領域(Q)内のビット列が2進数の数を表
    しているとみなしてそのビット列が表す数を浮動小数点
    数(Y)に変換し、測定対象記憶領域(Q)内のビット
    列の最上位ビットの値が1である場合には部分ランレン
    グス(W)の値を0とし、測定対象記憶領域(Q)内の
    ビット列が表す数が0である場合には測定対象のビット
    列(X)のビット数(N)を部分ランレングス(W)と
    し、測定対象記憶領域(Q)内のビット列の最上位ビッ
    トの値が1でなく、且つ、測定対象記憶領域(Q)内の
    ビット列が表す数が0でない場合は、浮動小数点数
    (Y)の指数(E)のバイアス値(B)に1ワード分の
    ビット数(L)を加えさらにその値から1を減じて定め
    た固定値(G)から浮動小数点数(Y)の指数(E)を
    減じて部分ランレングス(W)とすることを特徴とする
    部分ランレングス測定方法。
JP19208197A 1997-07-03 1997-07-03 部分ランレングス測定方法 Pending JPH1127541A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19208197A JPH1127541A (ja) 1997-07-03 1997-07-03 部分ランレングス測定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19208197A JPH1127541A (ja) 1997-07-03 1997-07-03 部分ランレングス測定方法

Publications (1)

Publication Number Publication Date
JPH1127541A true JPH1127541A (ja) 1999-01-29

Family

ID=16285335

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19208197A Pending JPH1127541A (ja) 1997-07-03 1997-07-03 部分ランレングス測定方法

Country Status (1)

Country Link
JP (1) JPH1127541A (ja)

Similar Documents

Publication Publication Date Title
US8051118B2 (en) Composition of decimal floating point data
US8051117B2 (en) Shift significand of decimal floating point data
US8195727B2 (en) Convert significand of decimal floating point data from packed decimal format
US8468184B2 (en) Extract biased exponent of decimal floating point data
KR100239029B1 (ko) 가산기와 함께 사용하기 위한 결과 정규화기 및 결과 정규화 방법과 그를 포함하는 데이터 프로세서
JPH10207693A (ja) 浮動小数点演算ユニット
JP2502836B2 (ja) 除算回路の前処理装置
GB2376773A (en) Display and/or precision operations of numerical values in binary systems
US20060179098A1 (en) System and method for reduction of leading zero detect for decimal floating point numbers
JP3511901B2 (ja) 情報処理装置および情報処理システム
JPH04123619A (ja) データ圧縮及び復元装置
JPS642970B2 (ja)
Cena et al. A Q-Coder algorithm with carry free addition
JPH11275107A (ja) スケジューリング装置、スケジューリング方法および通信制御装置
JPH01297721A (ja) 実数データの変換装置
JP2003060904A (ja) 語長変換処理装置、語長変換処理方法、語長変換処理プログラム及び画像処理装置
JP2005031847A (ja) 整数演算の方法および整数演算プログラム、ならびに整数演算装置
JPH0754458B2 (ja) 乗算回路
JPH07117892B2 (ja) シフタ
JPH10255032A (ja) 画像操作装置および画像操作方法
JP2002063023A (ja) 演算装置および演算方法
JPH0756710A (ja) ブロック正規化制御方式
JPH06133949A (ja) データ処理装置