(57)【特許請求の範囲】
【請求項１】
ｎビット（ｎは自然数）の数値範囲で定義される値をｍビット（ｍは｛ｎ＋２｝以上の整数）データで演算した結果を受け、この演算結果の値が上記数値範囲内にあればこの値を、当該演算結果の値が上記数値範囲の最小値より小さい値を表わしている場合には上記数値範囲の最小値を、当該演算結果の値が上記数値範囲の最大値より大きい値を表わしている場合には上記数値範囲の最大値を、それぞれ補正値として返す画像データの処理方法であって、
（ｍ−ｎ）ビットのアドレス範囲にデータ登録領域を有し、０番地に任意の値が登録可能で、且つ、１番地からＸ番地（Ｘは１以上の整数）までに上記数値範囲の最大値が、Ｙ番地（ＹはＸより大きい整数）から最終番地までに上記数値範囲の最小値がそれぞれ登録された変換テーブルを設け、
上記演算結果を受けた後、この演算結果の下位ｎビットを上記変換テーブルの０番地に登録し、その後、当該演算結果の上位（ｍ−ｎ）ビットをアドレスとして上記変換テーブルから登録値を引き出して上記補正値とすることを特徴とするデータ処理方法。
【請求項２】
上記ｎとｍはともに８の倍数であることを特徴とする請求項１記載のデータ処理方法。
【請求項３】
桁数ａ（ａは自然数）の数値範囲で定義される値を桁数ｂ（ｂはａより大きな整数）のデータで演算した結果を受け、この演算結果の値が上記数値範囲内にあればこの値を、上記演算結果の値が上記数値範囲から外れていれば設定値を補正値として返すようにしたデータ処理方法であって、
０番地に任意の値が登録可能で、且つ、０番地以外のアドレスに上記設定値が登録された変換テーブルを設け、
上記演算結果を受けた後、該演算結果の下位ａ桁の値を上記変換テーブルの０番地に登録し、その後、上記演算結果の上位（ｂ−ａ）桁の値をアドレスとして上記変換テーブルから登録値を引き出して上記補正値とすることを特徴とするデータ処理方法。
【請求項４】
上記変換テーブルの１番地からＸ番地（Ｘは１以上の整数）までには上記設定値として上記数値範囲の最大値を登録し、Ｙ番地（ＹはＸより大きな整数）から最終番地までには上記設定値として上記数値範囲の最小値を登録することを特徴とする請求項３記載のデータ処理方法。
【請求項５】
画素ごとの表示色データが含まれた画像データをＹＵＶ形式からＲＧＢ形式に変換するデータ処理装置であって、
ＹＵＶ形式とＲＧＢ形式の関係式に則って画素ごとにＹＵＶ形式のデータからＲＧＢ形式のデータを演算する演算手段と、該演算手段により求められた画素ごとのＲＧＢ系データを上記請求項１〜４の何れかのデータ処理方法により所定の数値範囲に収まるように補正する補正手段とを備えていることを特徴とするデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、演算結果が所定の数値範囲に収まるように補正を行うデータ処理方法に関し、例えばＹＵＶ形式の画像信号をＲＧＢ形式の画像データに変換する場合に利用して特に有用な技術に関する。
【０００２】
【従来の技術】
例えばＣＭＯＳ（相補型金属酸化膜半導体）イメージセンサから取り込んだ画像を情報処理装置のディスプレイに表示させる場合などに、ＹＵＶ形式の画像データをＲＧＢ形式に変換する必要が生じる。ＹＵＶ形式とは、輝度信号（Ｙ）、輝度信号と赤色成分の差（Ｕ）、輝度信号と青色成分の差（Ｖ）の３つの情報で色を表す形式、ＲＧＢ形式は、赤色成分（Ｒ）と緑色成分（Ｇ）と青色成分（Ｂ）の３つの情報で色を表わす形式である。
ＹＵＶ形式からＲＧＢ形式への変換は画素単位で行わなければならないので、例えばＣＩＦサイズ（３５２×２８８）の１画面分の画像データを変換するのに３５２×２８８＝１０１３７６画素分の演算を繰り返し行う必要がある。従って、動画再生などを行う場合には、上記ＹＵＶ形式からＲＧＢ形式への変換処理を高速に実行する必要がある。
【０００３】
また、ＹＵＶ形式からＲＧＢ形式へ変換を行う際には、ＹＵＶ形式の誤差によりＲＧＢ形式へ変換演算を行った後に、画像データの値が所定の数値範囲（例えば０〜２５５）から外れてしまうことがある。そのため、数値範囲から外れたデータを数値範囲内に収まるように補正する補正処理を行わなければならない。
【０００４】
【発明が解決しようとする課題】
図５には、従来の上記補正処理のフローチャートを示す。図中、Ｄｒ［ｎ］，Ｄｇ［ｎ］，Ｄｂ［ｎ］はｎ番画素におけるＲＧＢ形式の各色成分のデータで演算処理後のもの、Ｄｒ’［ｎ］，Ｄｇ’［ｎ］，Ｄｂ’［ｎ］はｎ番画素におけるＲＧＢ形式の各色成分のデータで補正処理後のものである。
図５に示されるように、従来の補正処理では、演算で求めたＲＧＢ形式の各色成分のデータ値を条件分岐（ステップＳ２２，Ｓ２４，Ｓ２７，Ｓ２９，Ｓ３２，Ｓ３４）により所定の数値範囲（０〜２５５）にあるか無いか判別し、判別結果に応じて所定の数値範囲から外れていたデータについては数値範囲の上限又は下限に丸める処理（ステップＳ２３，Ｓ２５，Ｓ２８，Ｓ２９，Ｓ３３，Ｓ３５）を行っている。
【０００５】
しかしながら、ＣＰＵ（Central Processing Unit）がプログラムコードを逐一実行して１つの処理を行うソフトウェア処理の場合、一般に条件分岐処理の実行速度は遅くなるため、図5の補正処理のように条件分岐が幾重もあると良好な処理速度が望めないという問題があった。
【０００６】
この発明の目的は、演算結果が所定の数値範囲から外れた場合に値をこの数値範囲内に収める補正処理を高速に行うことの出来るデータ処理方法を提供することにある。
この発明の他の目的は、画像データをＹＵＶ形式からＲＧＢ形式への変換を高速に且つ低負荷に実行することの出来るデータ処理装置を提供することにある。この発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添附図面から明らかになるであろう。
【０００７】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を説明すれば、下記のとおりである。
０番地に任意の値が登録可能で、且つ、１番地からＸ番地（Ｘは１以上の整数）までに数値範囲（例えば０〜２５５）の最大値が、Ｙ番地（ＹはＸより大きい整数）から最終番地までに数値範囲の最小値がそれぞれ登録された変換テーブルを設け、ｎビットの数値範囲で定義される値をｎビットより大きなビット数演算で求めた結果を受け、この演算結果の下位ｎビットを上記変換テーブルの０番地に登録し、その後、上記演算結果の上位ビットをアドレスとして上記変換テーブルから登録値を引き出して補正値とするものである。これにより、演算結果を所定の数値範囲内に収めるデータ処理を高速に行うことが出来る。
また、このようなデータ処理を、画像データをＹＵＶ形式からＲＧＢ形式に変換する際の補正処理に利用することで、画像データの変換処理の高速化および負荷の低減を図ることが出来る。
【０００８】
【発明の実施の形態】
以下、本発明の好適な実施例を図１〜図４の図面に基づいて説明する。
図１は、本発明を適用して好適なカメラ付き情報処理端末の要部を示すブロック図である。
本発明の実施例に係るカメラ付き情報処理端末は、ＣＭＯＳイメージセンサから取り込んだＹＵＶ形式の画像信号をデジタル変換して供給する撮像手段としてのＣＭＯＳカメラ１０や、液晶ディスプレーなどＲＧＢ形式の画像データを受けて表示出力を行う表示部５０、並びに、レジスタ２１や算術演算ユニット２２を用いて各種演算を行う演算手段および表示制御など情報処理端末の全体的な制御を行う制御手段として機能するＣＰＵ２０、このＣＰＵ２０に作業空間３１を提供するＲＡＭ（Random Access Memory）３０、ＣＰＵ２０が実行する制御プログラム４１や制御データが格納されたＲＯＭ（Read Only Memory）４０等から構成されている。
このような情報処理端末において、ＣＭＯＳカメラ１０により取り込まれた画像を表示部５０に出力させる場合には、ＣＭＯＳカメラ１０から供給されたＹＵＶ形式の画像データをＣＰＵ２０が制御プログラム４１に従ってＲＧＢ形式の画像データへ変換して表示部５０に出力するようになっている。
【０００９】
次に、上記ＣＰＵ２０により実行されるＹＵＶ形式からＲＧＢ形式への画像データの形式変換処理について説明を行う。
次式（１）〜（３）は、ＹＵＶ形式のデータからＲＧＢ形式のデータを得る一般的な関係式である。
R = 1.164 (Y-16) + 1.596 (U-128)               ・・・（１）
G = 1.164 (Y-16) - 0.813 (U-128) - 0.391 (V-128) ・・・（２）
B = 1.164 (Y-16) + 2.018 (V-128)               ・・・（３）
ここで、Ｒ，Ｇ，ＢはＲＧＢ形式の各成分の値、Ｙ，Ｕ，ＶはＹＵＶ形式の各成分の値であり、この実施例ではＹは１６〜２３５の整数値、ＵとＶは０〜２５５の整数値を取りえるものである。
【００１０】
ＹＵＶ形式データからＲＧＢ形式データを得るには、ＣＰＵ２０により上記の数式（１）〜（３）の演算を行わせることで可能であるが、この実施例では、さらに変換処理を高速に行うために上記の数式に替えて配列Ａｒｒａｙ１〜Ａｒｒａｙ５を用いた次式（４）〜（６）を用いている。
R = Array1[Y] + Array2[U]              ・・・（４）
G = Array1[Y] - Array3[U] - Array4[V]   ・・・（５）
B = Array1[Y] + Array5[V]              ・・・（６）
これらの数式（４）〜（６）は、上記関係式（１）〜（３）の右辺の各項を配列に置き換えたものである。すなわち、数式（１）の右辺第１項と数式（４）の右辺第１項とが対応し、数式（１）の右辺第２項と数式（４）の右辺第２項とが対応している。その他の項も同様である。
【００１１】
図２には、上記配列の具体例として配列Ａｒｒａｙ１のデータチャートを示す。図中「０ｘ」は１６進数表記を表わす。
各配列Ａｒｒａｙ１〜Ａｒｒａｙ５のインデックスは、数式（１）〜（３）の対応項に含まれる変数（Ｙ，Ｕ，Ｖの何れか）と同値なものとして扱われ、「０〜２５５」の値をとるように設定されている。また、各配列Ａｒｒａｙ１〜Ａｒｒａｙ５の要素は、インデックスの数値を該当する対応項の変数（Ｙ，Ｕ，Ｖの何れか）に代入し、少数点以下を切り捨て或いは四捨五入して得られた値となっている。すなわち、Ａｒｒａｙ１［２０（十進数）］は１．１６４（２０−１６）＝４．６５６から小数点以下を切り捨てた値「４」となっている。
【００１２】
また、配列Ａｒｒａｙ１〜Ａｒｒａｙ５の各要素には、図２にも示されるように、符号有り（符号付）の２バイト（１６ビット）データが使用されている。この実施例では、ＲＧＢ形式の各色成分のとる値は１バイトの数値範囲（０〜２５５）であるので、それよりビットサイズが１バイト大きく設定されている。
これらの配列Ａｒｒａｙ１〜Ａｒｒａｙ５は、画像データの形式変換処理の前にＲＡＭ３０の作業領域に展開されて形成されるものである。また、配列の値は固定であるのでＲＯＭ４０内に格納しておくことも出来る。
なお、Ａｒｒａｙ１については、その変数Ｙが「１６〜２３５」の値しか取らないので、インデックス「０〜１５，２３６〜２５５」の各要素は使われることがなく、その値は任意として構わない。
【００１３】
この実施例に係る画像データの形式変換処理では、先ず、ＣＰＵ２０により符号付き２バイトデータの算術処理により上記数式（４）〜（６）の演算が実行され、画素ごとに符号付き２バイトデータの演算結果が得られる。
数式（４）〜（６）の演算処理では、ＹＵＶ形式の誤差等により演算結果の値は、予め設定されたＲＧＢ形式のデータ範囲（０〜２５５）に収まらない場合、すなわち「２５５」より大きくなる場合と「０」より小さくなる場合とが生じることがある。
そのため、この画像データ形式変換処理においては、上記演算処理の後、演算結果の値が所定のデータ範囲から外れている場合に値をデータ範囲内に収める補正処理を行う。補正処理は上記演算結果の上位１バイトを引き数アドレスとした変換テーブルを用いて行われる。
【００１４】
図３には、上記変換テーブルを表わしたデータチャートを示す。
この変換テーブルは、１バイトのアドレス範囲（“００ｈ”〜“ＦＦｈ”）にデータ登録領域を有し、各エントリに１バイトのデータが登録されるデータテーブルである。そして、相対アドレス“０…００ｈ”番地のエントリには任意の１バイトデータが登録可能になっているとともに、“０…０１ｈ”〜“０…７Ｆｈ”番地には“ＦＦｈ（＝２５５）”の値が、“０…８０ｈ”〜“０…ＦＦｈ”番地には“００ｈ（＝０）”の値が、それぞれ登録されている。変換テーブルは、その記憶手段としてＲＡＭ３０の記憶領域３２に形成される。
【００１５】
そして、この変換テーブルを用いて上記の補正処理が次のように行われる。図４はこの補正処理の処理手順を示すフローチャートである。このフローチャートにおいて、Ｄｒ［ｎ］，Ｄｇ［ｎ］，Ｄｂ［ｎ］はｎ番画素の各色成分における数式（４）〜（６）の各演算結果のデータ、Ｄｒ’［ｎ］，Ｄｇ’［ｎ］，Ｄｂ’［ｎ］はｎ番画素の各色成分における補正後のデータ、Ｔ［Ｘ］は図３の変換テーブルのＸアドレスにおける登録データを表わしている。
補正処理は、画素ごと、色成分ごとに行われる。例えば、赤色成分の補正処理においては、先ず、赤色成分の演算結果データＤｒ［ｎ］の下位１バイトを変換テーブルの０番地に登録する（ステップＳ２）。これは、演算結果の値が数値範囲（０〜２５５）内であった場合に、この値をそのまま補正値として返すためのものである。
【００１６】
次いで、同じ赤色成分の演算結果データＤｒ［ｎ］の上位１バイトを引き数アドレスとして変換テーブルから登録データを引き出し、それを補正データＤｒ’［ｎ］とする（ステップＳ３）。
【００１７】
一般的なＣＰＵによる符号付き２バイトデータの算術処理では、「１，０，−１」と云った整数列は「０００１ｈ，００００ｈ，ＦＦＦＦｈ」のように連続して扱われる。そのため、「０」より小さい値、例えば「−２５６〜−１」は「ＦＦ＊＊ｈ（＊は任意）」と表わされる。また、「２５５」より大きい値、例えば「２５６〜５１１」は「０１＊＊ｈ」と表わされ、「０〜２５５」の値は「００＊＊ｈ」と表わされる。
従って、上記のステップＳ３の処理により、演算結果Ｄｒ［ｎ］が「０〜２５５」の範囲内であれば上位１バイト“００ｈ”が引き数アドレスとなって、変換テーブルの０番地の登録データ、すなわち、ステップＳ２で登録した演算結果Ｄｒ［ｎ］の下位１バイト（すなわち演算結果Ｄｒ［ｎ］と同値）が補正値として得られる。
【００１８】
また、演算結果Ｄｒ［ｎ］が「２５５」より大きい値、例えば「２５６〜５１１」になった場合には、上位１バイト“０１ｈ”が引き数アドレスとなって、変換テーブルの１番地の登録データ“ＦＦｈ（＝２５５）”が補正処理の結果として得られる。
また、演算結果Ｄｒ［ｎ］が「０」より小さい値、例えば「−２５６〜−１」になった場合には、上位１バイト“ＦＦｈ”が引き数アドレスとなって、変換テーブルの最終番地の登録データ“００ｈ（＝０）”が補正処理の結果として得られる。
【００１９】
すなわち、上記のステップＳ２，Ｓ３の処理により、演算結果の値が数値範囲（０〜２５５）内であればその値が、数値範囲より小さければ最小値「０」が、数値範囲より大きければ最大値「２５５」が変換テーブルから返されるようになっている。
そして、同様の処理を緑色成分と青色成分についても行い（ステップＳ４〜Ｓ７）、これら各色成分の補正処理をステップＳ１，Ｓ８，Ｓ９の繰返し処理により０番画素からＮ番画素まで繰り返して１画面分の画像データの補正処理が完了する。
なお、この実施例の演算内容では、演算結果となる値が「−２５６〜５１１」の範囲で十分カバーできるので、データテーブルで使用される個所は０番と１番と最終番地のみとなっている。従って、その他の使用されない番地にはデータを登録してもしなくてもよく、また、登録データの値も任意である。
【００２０】
図３の変換テーブルにあっては、演算結果の値がさらに大きな範囲にひろがるような場合に、中ほどの番地まで使用されることになる。例えば、演算結果の値が「−２１５（＝−３２７６８）〜２１５−１（＝３２７６７）」の範囲にひろがるような場合に変換テーブルの全ての番地が使用されることなる。そして、演算結果の値が「−２１５〜−１」の場合には最小値「０」が返され、演算結果の値が「２５６〜２１５−１」の場合には最大値「２５５」が返される。
【００２１】
また、図３の変換テーブルにおいては登録データが最小値“００ｈ”で埋められる範囲と最大値“ＦＦｈ”で埋められる範囲の境が中間アドレス“７Ｆｈ”，“８０ｈ”の間になっているが、この境となるアドレス位置を変化させることで、対応可能な演算結果の値を負の方向にずらしたり、正の方向にずらしたりすることが出来る。
例えば、境となるアドレス位置を“ＢＦｈ”，“Ｃ０ｈ”間にずらしてアドレス“０１ｈ”〜“ＢＦｈ”の範囲に最大値 “ＦＦｈ”を登録し、残りのアドレス“Ｃ０ｈ”〜“ＦＦｈ”の範囲に最小値“００ｈ”を登録すれば、演算結果の値が正の方向にずれた「−２１４（＝−１６３８４）〜３×２１４−１（＝４９１５１）」の範囲に広がるような演算処理の場合に対応させることが出来る。そして、演算結果の値が「−１６３８４〜−１」となった場合に“００ｈ”の値が返され、演算結果の値が「２５６〜４９１５１」となった場合に“ＦＦｈ”の値が返される。
【００２２】
以上のように、この実施例の画像データの形式変換処理によれば、数式（４）〜（６）の演算処理により得られた演算結果を、ＲＧＢ形式データの数値範囲（０〜２５５）に収める補正処理が、図５の従来方式に較べて分岐命令の数が大幅に減るため、処理の実行スピードが大幅に高速になる。
それゆえ、ＣＭＯＳカメラ１０から取り込んだＹＵＶ形式の画像データを、高速に且つＣＰＵ２０にあまり負荷を掛けずにＲＧＢ形式の画像データへ変換することができ、そのまま表示部５０に出力して表示させることで、ＣＭＯＳカメラ１０から取り込んだ画像を動画としてリアルタイムに表示部５０に表示することも可能となる。
【００２３】
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、上記実施例では、１バイト（＝８ビット）の数値範囲（０〜２５５）で定義されるデータを２バイトの算術処理で求めるように説明したが、２バイトではなく１０ビットの算術処理により求めるようにしても、同様の補正処理を行うことが出来る。この場合、変換テーブルとしては演算結果の上位２ビットを引き数アドレスとする小さな変換テーブルにより対応することが出来る。なお、実施例では、ＣＰＵにより演算処理が行われる場合を想定しているので、ＣＰＵが扱いやすいデータとして２バイトのデータを用いている。従って、演算処理から補正処理までをハード的な構成で行う場合には、最小構成として１０ビットの算術処理や２ビットアドレスの小さな変換テーブルを用いた方が効率的である。
【００２４】
また、例えば演算結果が数値範囲（０〜２５５）の上限又は下限の何れか一方にのみ外れる可能性があり、他方に外れる可能性がないような場合には、９ビットの算術処理と、演算結果の上位１ビットをアドレスとする変換テーブルとを用いて補正処理を行うことも可能である。
【００２５】
また、上記実施例では、１バイトの数値範囲（０〜２５５）で定義されるデータについて補正を行う場合について説明したが、２ビット、４ビット、１２ビット、１６ビットなど、ビットサイズが異なる数値範囲で定義されるデータに対しても同様に本発明を適用することが出来る。
【００２６】
また、上記実施例や変形例では、ビットデータやバイトデータなど２進数のデータを用いた場合を説明したが、例えば３進数や５進数など任意のｎ進数のデータを用いることで、様々な数値範囲で定義されるデータについて補正処理を行うことが出来る。すなわち、２進数のデータを用いた場合、データの上限下限は８ビットデータで「０〜２５５（＝２８−１）」、７ビットデータで「０〜１２７（＝２７−１）」など、２進数に依存した値になってしまうが、例えば、１０進数のデータを用いれば、データの上限下限を４桁データで「０〜９９９（１０４−１）」、５桁データで「０〜９９９９（１０５−１）」に出来るなど、異なる数値範囲に設定することが出来る。
【００２７】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野である画像データをＹＵＶ形式からＲＧＢ形式に変換する場合について説明したがこの発明はそれに限定されるものでなく、演算結果を所定の数値範囲に収めるような種々のデータ処理に広く利用することができる。
【００２８】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、本発明に従うと、演算結果を所定の数値範囲に収めるデータ処理を高速に行える。これによって、例えば画像データをＹＵＶ形式からＲＧＢ形式に変換するデータ処理に応用することで、撮像手段から取り込んだ画像データを動画像としてリアルタイムで表示出力する場合に、データ処理に係る負担を大幅に軽減できると云う効果がある。
【図面の簡単な説明】
【図１】本発明を適用して好適なカメラ付き情報処理端末の要部を示したブロック図である。
【図２】本発明の実施例に係る画像データの形式変換処理の演算処理に用いられるデータ配列の一例を示すデータチャートである。
【図３】本発明の実施例に係る画像データの形式変換処理の補正処理に用いられる変換テーブルの一例を示すデータチャートである。
【図４】図３の変換テーブルを用いた補正処理の手順を示すフローチャートである。
【図５】従来の画像データの形式変換処理における補正処理の手順を示すフローチャートである。
【符号の説明】
１０    ＣＭＯＳカメラ
２０    ＣＰＵ
２２    算術演算ユニット
３０    ＲＡＭ
４０    ＲＯＭ
５０    表示部
【図１】
0003952804.tif 000002
【図２】
0003952804.tif 000003
【図３】
0003952804.tif 000004
【図４】
0003952804.tif 000005
【図５】
0003952804.tif 000006