(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
図1は、本実施形態の画像処理システムSの概要を示す図である。
画像処理システムSは、画像データを圧縮して圧縮済画像データを作成する画像圧縮装置1と、当該画像圧縮装置1によって作成された圧縮済画像データから医療用の画像データを復元する画像解凍装置2とを備える。
【0016】
画像圧縮装置1は、画像データを複数のブロックデータに分割し、ブロックデータを、画像データにおける画素の画素値を示す画素情報を複数含むサブブロックデータに分割する。そして、画像圧縮装置1は、サブブロックデータを圧縮して圧縮済画像データを作成する。ここで、画像データとは、医療用の画像データであり、例えば、CT(Computed Tomography)画像データや、MRI(Magnetic Resonance Imaging)画像データである。
【0017】
以下、画像圧縮装置1の詳細について説明する。
図2は、本実施形態に係る画像圧縮装置1の機能構成を示すブロック図である。
画像圧縮装置1は、
図2に示すように、表示部11と、入力部12と、記憶部13と、制御部14と、複数の圧縮部15と、を備える。
【0018】
表示部11は、例えば、液晶ディスプレイや有機EL(Electro-Luminescence)ディスプレイ等により構成される。表示部11は、制御部14の制御に応じて、例えば画像データの圧縮処理の操作画面等を表示する。
入力部12は、例えば、キーボードやマウス等によって構成される。入力部12は、画像圧縮装置1のユーザから操作入力を受け付ける。
【0019】
記憶部13は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスク、及び画像圧縮装置1に接続された外部記憶装置等により構成される。ここで、外部記憶装置は、画像圧縮装置1に直接接続されていてもよいし、通信ネットワーク(不図示)を介して通信可能に接続されていてもよい。記憶部13は、圧縮対象の画像データとして、例えば、医療用の画像データを記憶する。また、記憶部13は、コンピュータを後述の画像データ取得部141、サイズ調整部142、分割部143、結合部144、出力部145、圧縮部15として機能させるための画像圧縮プログラムを記憶する。
【0020】
制御部14は、例えば、CPU(Central Processor Unit)により構成される。制御部14は、記憶部13に記憶されている、画像圧縮装置1を機能させるための各種プログラムを実行することにより、画像圧縮装置1に係る機能を統括的に制御する。制御部14は、画像データ取得部141と、サイズ調整部142と、分割部143と、結合部144と、出力部145とを備える。
以下、各機能について、フローチャートを適宜参照しながら説明を進める。
図3は、本実施形態に係る画像圧縮装置1の画像圧縮処理の流れを示すフローチャートである。
図4は、本実施形態に係るサブブロックデータ圧縮処理のフローチャートである。
図5は、本実施形態に係る圧縮済サブブロックデータ作成処理のフローチャートである。
【0021】
まず、
図3を参照しながら、画像圧縮処理の全体の流れについて説明する。
画像データ取得部141は、画像データを取得する(S1)。具体的には、画像データ取得部141は、入力部12が画像データの取得操作を受け付けたことに応じて、記憶部13に記憶されている画像データを取得する。なお、画像データ取得部141は、画像圧縮装置1に通信ネットワークを介して接続されている外部装置から画像データを受信して、当該画像データを取得してもよい。
【0022】
サイズ調整部142は、画像データ取得部141が取得した画像データのサイズを調整する(S2)。具体的には、サイズ調整部142は、取得した画像データの行方向の画素数と、列方向の画素数とがそれぞれ4の倍数となるように、画像データに画素値が0の画素を追加する。
【0023】
分割部143は、取得した画像データの一部分であるブロックデータを、当該画像データにおける画素の画素値を示す画素情報を複数含む複数のサブブロックデータに分割する(S3)。具体的には、まず、画像データ取得部141は、画像データを構成するブロックデータの数を決定し、ブロックデータを分割する。ここで、ブロックデータの行方向の数をbh、列方向の行数をbwとする。続いて、画像データ取得部141は、当該ブロックデータを構成するサブブロックデータの数を決定する。分割部143は、例えば、サブブロックデータの行方向の画素数をsh、列方向の画素数をswとした場合に、sw×shが16〜128となるようにサブブロックデータの数を決定し、この数にサブブロックデータを分割する。
【0024】
続いて、分割部143は、各データのバッファ領域を確保する(S4)。具体的には、分割部143は、各ブロックデータの圧縮データである圧縮済ブロックデータのバッファ領域を記憶部13に確保する。このバッファ領域の容量は、例えば、sh×sw×396+4である。また、分割部143は、圧縮済ブロックデータの個数から圧縮済画像データのバッファ領域の大きさを決定し、圧縮済画像データのバッファ領域を確保する。
【0025】
ここで、圧縮済画像データの構成について説明する。
図6Aは、圧縮済画像データの構成を示す図である。
図6Bは、圧縮済画像データに含まれる圧縮済サブブロックデータの構成を示す図である。
【0026】
圧縮済画像データは、
図6Aに示すように、ヘッダー部とボディ部とから構成されている。圧縮済画像データのヘッダー部は、ボディ部に含まれている圧縮済ブロックデータの数と、当該圧縮済サブブロックデータの数と、サイズ調整部142によるサイズ調整前の画像データの行方向の画素数及び列方向の画素数とを格納している。例えば、圧縮済画像データのヘッダー部の1〜8バイトには、ブロックデータの行方向の数bh、列方向の数bw、サブブロックデータの行方向の画素数sh、及び列方向の画素数swを記憶している。また、ヘッダー部の9〜12バイトには、画像データのサイズ調整前の列方向の画素数width、行方向の画素数heightを記憶している。圧縮済画像データのボディ部は、1以上のブロックデータを格納している。
【0027】
圧縮済ブロックデータは、
図6Aに示すように、ヘッダー部とボディ部とから構成されている。圧縮済ブロックデータのヘッダー部は、画像データにおけるブロックデータの位置を示すアドレスと、ボディ部のサイズとを格納している。圧縮済ブロックデータのボディ部は、1以上の圧縮済サブブロックデータを格納している。
【0028】
圧縮済サブブロックデータは、
図6Bに示すように、ヘッダー部とボディ部とから構成されている。圧縮済サブブロックデータのヘッダー部は、複数の領域に分かれている。
具体的には、1〜16ビットには、サブブロックデータのブロックデータにおける位置を示すアドレス及び圧縮済サブブロックデータのデータ長が格納される。より具体的には、1〜7ビットには、サブブロックデータのアドレスが格納される。8〜16ビットには、圧縮済サブブロックデータのデータ長が格納される。
17〜29ビットには、サブブロックデータに含まれる画素情報の画素値のうち最小値を示す情報が格納される。
【0029】
30〜32ビットには、圧縮後の画素情報のデータ長を示すパターン情報が格納される。圧縮後のデータ長は、例えば、0ビット、4ビット、6ビット、8ビット、10ビット及び12ビットのいずれかである。すなわち、30〜32ビットには、これらのビット長を区別するための2進数のパターン情報が格納される。
【0030】
33〜41ビットには、有効画素情報の数が格納される。
42〜48ビットには、有効ユニットデータの数が格納される。有効画素情報及び有効ユニットデータについては後述する。
49〜64ビットには、無効画素情報の画素値が格納される。
圧縮済サブブロックデータのボディ部には、ユニットデータ又は有効画素情報が格納される。
【0031】
分割部143は、サブブロックデータを圧縮部15に入力する。ここで、サブブロックデータに含まれている複数の画素情報の画素値は、例えば2進数で表されている。これら複数の画素情報のそれぞれは所定のデータ長(例えば12ビット)である。
【0032】
複数の圧縮部15は、例えば、複数のコアを備えるGPU(Graphics Processing Unit)により構成される。複数の圧縮部15のそれぞれは、GPUを構成する複数のコアのいずれかに対応している。複数の圧縮部15のそれぞれは、サブブロックデータを圧縮して、圧縮済サブブロックデータを作成する処理であるサブブロックデータ圧縮処理を実行する(S5)。複数の圧縮部15は、制御部14から入力された複数のサブブロックデータを並列して圧縮することにより、圧縮済サブブロックデータを作成する。圧縮部15の処理については後述する。
【0033】
結合部144は、圧縮済サブブロックデータを結合して圧縮済画像データを作成する。
具体的には、結合部144は、圧縮部15により作成された圧縮済サブブロックデータのサイズに基づいて、圧縮済ブロックデータのサイズを算出する(S6)。結合部144は、算出した圧縮済ブロックデータのサイズと、複数の圧縮済サブブロックデータとを圧縮済ブロックデータのバッファに格納して圧縮済ブロックデータを作成する(S7)。ここで、結合部144は、圧縮済サブブロックデータの圧縮前のサブブロックデータの位置に基づいて、当該圧縮済サブブロックデータをバッファに格納する。
【0034】
続いて、結合部144は、複数の圧縮済ブロックデータを結合して圧縮済画像データを作成する(S8)。
【0035】
出力部145は、結合部144が作成した圧縮済画像データを出力する。出力部145は、例えば通信回線を介して画像解凍装置2に圧縮済画像データを送信したり、記憶媒体に圧縮済画像データを記憶させたりする。
【0036】
続いて、圧縮部15の処理の詳細について説明を行う。複数の圧縮部15のそれぞれは、特定部151と、減算部152と、作成部153とを備える。
図7A及び
図7Bは、サブブロックデータが生成される過程を示す図である。
図7Aは、サブブロックデータが圧縮される前の状態を示す図である。なお、説明を簡易的にするため、
図7A及び
図7Bでは、サブブロックデータが16個の画素p1〜p16の画素情報を含んでいるものとする。また、
図7A及び
図7Bに示される白いバーと黒いバーとを合わせたバーの長さは、画素情報のデータ長(所定のデータ長)を表し、黒いバーは、画素の画素値を表しているものとする。例えば、黒いバーが短い場合、画素値が小さく、黒いバーが長い場合、画素値が大きいものとする。
【0037】
以下、
図4を参照しながら、圧縮部15におけるサブブロックデータ圧縮処理の詳細について説明を行う。特定部151は、サブブロックデータに含まれる複数の画素情報に含まれる画素値から、最小値及び最大値を特定する(S51)。
図7Aに示す例では、特定部151は、画素p1〜p6の画素値を最小値と特定し、画素p9の画素値を最大値と特定する。特定部151は、最小値及び最大値のうち、最小値を示す情報をサブブロックデータのヘッダー部の17〜29ビットに格納する。
【0038】
続いて、特定部151は、サブブロックデータに含まれる複数の画素情報から有効画素情報を特定する(S52)。有効画素情報とは、画素値が所定値以外の画素情報である。また、無効画素情報とは、画素値が所定値の画素情報である。ここで、所定値とは、特定部151により特定された最小値である。例えば、
図7Aでは、特定部151は、画素p1〜p6を無効画素情報の画素と特定し、画素p7〜p16を有効画素情報の画素と特定する。特定部151は、有効画素情報の数を圧縮済サブブロックデータのヘッダー部の33〜41ビットに格納する。なお、本実施形態では、所定値を最小値としたが、これに限らない。例えば、最小値ではなく、複数の画素情報中で出現頻度が最も高い画素値を所定値としてもよい。
【0039】
続いて、特定部151は、サブブロックデータに含まれている画素情報の圧縮後のデータ長を特定する(S53)。具体的には、特定部151は、画素情報のデータ長(所定のデータ長)の圧縮後のデータ長を、最大値から最小値を減算して得られる画素値に対応するデータ長に特定する。例えば、特定部151は、画素値に関連付けて予め記憶部13に記憶された、画素値を2進数で表した場合に要するビット数よりも多い、予め定められたビット数のうち、最も小さいビット数に対応するデータ長に特定する。ここで、予め定められたビット数とは、0ビット又は4ビット、6ビット、8ビット、10ビット又は12ビットである。
【0040】
特定部151は、サブブロックデータのヘッダー部の30〜32ビットに、圧縮後のデータ長を示すパターン情報を格納する。
なお、特定部151は、画素情報のデータ長から最小値に対応するデータ長を減算した第1のデータ長を、圧縮後のデータ長として特定してもよい。
【0041】
続いて、サブブロックデータに含まれる有効ユニットデータの数を特定する(S54)。ここで、有効ユニットデータとは、サブブロックデータを構成するデータであり、後述の減算部152により最小値が減算された後の有効画素情報を含んでいる。なお、圧縮後のデータ長が8ビットの場合、又は圧縮済サブブロックデータに含まれる有効画素情報の数が32個以上の場合には、有効ユニットデータは作成されない。
続いて、特定部151は、有効ユニットデータのそれぞれにおける有効画素情報の数を算出する(S55)。
【0042】
減算部152は、サブブロックデータに含まれる複数の画素情報に含まれている画素から、特定部151により特定された最小値を減算する(S56)。例えば、
図7Bは、減算部152により、画素p1〜p16の画素値から、最小値が減算された例を示す図である。
【0043】
作成部153は、圧縮済サブブロックデータ作成処理を実行し、圧縮済サブブロックデータを作成する(S57)。具体的には、作成部153は、圧縮済サブブロックデータ作成処理を実行することで、画素値が所定値以外の画素情報である有効画素情報の、減算部152により減算された後の画素値と、当該画素値の画素の位置を特定する情報とを関連付けた圧縮済画素情報と、最小値を示す情報とを含む圧縮済サブブロックデータを作成する。以下、減算された後の画素値の画素の位置を特定する情報をインデックス情報ともいう。
【0044】
ここで、作成部153は、画素情報のデータ長(所定のデータ長)を、特定部151により特定されたデータ長(圧縮後のデータ長)に変更して圧縮済サブブロックデータを作成する。なお、作成部153は、所定のデータ長から、特定部151により特定した最小値に対応するデータ長を減算してデータ長を変更して、圧縮済サブブロックデータを作成してもよい。
【0045】
以下、圧縮済サブブロックデータ作成処理の詳細について
図5を参照しながら説明する。
まず、作成部153は、特定部151により特定された圧縮後のデータ長の値を判定し、分岐処理を行い(S571)、圧縮済サブブロックデータを作成する。
【0046】
作成部153は、圧縮後のデータ長が0ビット又は4ビットである場合、処理パターン1の処理を行う(S572)。
図8Aは、処理パターン1の処理によって作成された圧縮済サブブロックデータのボディ部を示す図である。作成部153は、有効画素情報の数が0〜31の場合、32〜191の場合、192〜256の場合とで異なる処理を行い、圧縮済サブブロックデータのボディ部を作成する。
【0047】
具体的には、作成部153は、有効画素情報の数が0〜31の場合、有効ユニットデータを作成し、作成した有効ユニットデータを圧縮済サブブロックデータのボディ部に格納する。1つの有効ユニットデータは、4行4列の画素情報を含む。この有効ユニットデータのヘッダー部のデータ長は、8ビットである。作成部153は、有効ユニットデータのヘッダー部の1〜4ビットに、サブブロックデータにおける当該有効ユニットデータの位置を特定する情報を格納するとともに、5〜8ビットに有効画素情報の数を格納する。
【0048】
作成部153は、この有効ユニットデータのボディ部に含まれる複数の有効画素情報の1〜4ビットに、当該有効ユニットデータにおける当該画素情報の位置を示すアドレスを格納するとともに、5〜8ビットに、減算部152により減算した後の画素値を格納する。ここで、無効画素情報、すなわち、減算部152によって減算された後の画素値が0の画素情報は、有効ユニットデータのボディ部に格納されない。
【0049】
例えば、
図7Bに示す画素p1〜p16は、順番に2行2列の画素情報を含む4つのユニットデータに格納されるものとする。ここで、第1のユニットデータのボディ部には、画素p1〜p4を格納できるものの、画素p1〜p4は有効画素情報ではないことから第1のユニットデータは有効ユニットデータとならず、圧縮済サブブロックデータには格納されない。同様に、第2のユニットデータのボディ部には、画素p5〜p8を格納できるものの、画素p5及びp6は有効画素情報ではないことから、第2のユニットデータのボディ部には、画素p7及びp8の画素値及びインデックス情報が格納される。ユニットデータに含まれている画素情報の数が4である場合、インデックス情報は、例えば2ビットの情報である。
【0050】
作成部153は、有効画素情報の数が32〜191の場合、マップデータと、減算部152によって最小値を減算した後の有効画素情報の画素値とを含む圧縮済サブブロックデータを作成する。すなわち、作成部153は、有効画素情報の数が所定範囲の場合に、マップデータと、減算部152によって最小値を減算した後の有効画素情報の画素値とを含む圧縮済サブブロックデータを作成する。
【0051】
マップデータは、複数の画素情報のそれぞれが有効画素情報か否かを示す情報をサブブロックにおける当該複数の画素情報の並び順に格納するものであり、サブブロックデータに含まれる画素情報の数のビットより構成される。例えば、サブブロックデータが16×16の画素情報を含む場合、マップデータは、256ビットの2値情報である。マップデータの各ビットは、サブブロックデータのボディ部に含まれる画素情報の位置における画素値の状態を示している。マップデータにおいてビット値が0のビットは、無効画素情報を示し、ビット値が1のビットは、有効画素情報を示している。
【0052】
作成部153は、マップデータと、有効画素情報の画素値(4ビット)とを圧縮済サブブロックデータのボディ部に格納する。ここで、作成部153は、nが奇数の場合、圧縮済サブブロックデータのボディ部にダミーデータ(画素値が0の画素情報)を4ビット挿入する。
作成部153は、有効画素情報の数が192〜256の場合、全ての画素情報の画素値(4ビット)を画素情報の位置順に圧縮済サブブロックデータのボディ部に格納する。
【0053】
図5に説明を戻す。作成部153は、圧縮後のデータ長が6ビットである場合、処理パターン2の処理を行う(S573)。
図8Bは、処理パターン2の処理によって作成された圧縮済サブブロックデータのボディ部を示す図である。作成部153は、有効画素情報の数が0〜31の場合、32〜212の場合、213〜256の場合とで異なる処理を行い、圧縮済サブブロックデータのボディ部を作成する。
【0054】
具体的には、作成部153は、有効画素情報の数が0〜31の場合、有効ユニットデータを作成し、作成した有効ユニットデータを圧縮済サブブロックデータのボディ部に格納する。1つの有効ユニットデータは、2行2列の画素情報を含む。この有効ユニットデータのヘッダー部のデータ長は、8ビットである。作成部153は、この有効ユニットデータのヘッダー部の1〜6ビットに、サブブロックデータにおける当該有効ユニットデータの位置を示すアドレスを格納するとともに、7〜8ビットに有効画素情報の数を格納する。
【0055】
作成部153は、この有効ユニットデータのボディ部に含まれる複数の有効画素情報の1〜2ビットに、当該有効ユニットデータにおける画素情報の位置を示すアドレスを格納するとともに、3〜8ビットに、減算部152により減算した後の画素値を格納する。ここで、無効画素情報は、ボディ部に格納されない。
【0056】
作成部153は、有効画素情報の数が32〜212の場合、上述と同様にマップデータを作成する。作成部153は、マップデータと、有効画素情報の画素値(6ビット)とを圧縮済サブブロックデータのボディ部に格納する。ここで、作成部153は、n×6+k=24となるように、ボディ部にダミーデータ(画素値が0の画素情報)をkビット挿入する。
作成部153は、有効画素情報の数が213〜256の場合、全ての画素情報の画素値(6ビット)を画素情報の位置順に圧縮済サブブロックデータのボディ部に格納する。
【0057】
図5に説明を戻す。作成部153は、データ長が8ビットである場合、処理パターン3の処理を行う(S574)。
図8Cは、処理パターン3の処理によって作成された圧縮済サブブロックデータのボディ部を示す図である。作成部153は、有効画素情報の数が0〜31の場合、32〜223の場合、224〜256の場合とで異なる処理を行い、圧縮済サブブロックデータのボディ部を作成する。
【0058】
具体的には、作成部153は、有効画素情報の数が0〜31の場合、圧縮済サブブロックデータのボディ部に有効画素の画素情報を格納する。作成部153は、このボディ部の1〜8ビットに、当該サブブロックデータにおける画素情報の位置を示すアドレスを格納するとともに、9〜16ビットに、減算部152により減算した後の有効画素情報の画素値を格納する。
【0059】
作成部153は、有効画素情報の数が32〜223の場合、上述と同様にマップデータを作成する。作成部153は、マップデータと、有効画素情報の画素値(8ビット)とを圧縮済サブブロックデータのボディ部に格納する。
作成部153は、有効画素情報の数が224〜256の場合、全ての画素情報の画素値(8ビット)を画素情報の位置順に圧縮済サブブロックデータのボディ部に格納する。
【0060】
図5に説明を戻す。作成部153は、データ長が10ビット又は12ビットである場合、処理パターン4の処理を行う(S575)。
図8Dは、処理パターン4の処理によって作成された圧縮済サブブロックデータのボディ部を示す図である。作成部153は、有効画素情報の数が0〜31の場合、32〜234の場合、235〜256の場合とで異なる処理を行い、圧縮済サブブロックデータのボディ部を作成する。
【0061】
具体的には、作成部153は、有効画素情報の数が0〜31の場合、有効ユニットデータを作成し、作成した有効ユニットデータを圧縮済サブブロックデータのボディ部に格納する。1つの有効ユニットデータは、4行4列の画素情報を格納する。この有効ユニットデータのヘッダー部のデータ長は、8ビットである。作成部153は、この有効ユニットデータのヘッダー部の1〜4ビットに、サブブロックデータにおける当該有効ユニットデータの位置を示すアドレスを格納するとともに、5〜8ビットに有効画素情報の数を格納する。作成部153は、この有効ユニットデータのボディ部に含まれる複数の有効画素情報の1〜4ビットに、当該有効ユニットデータにおける画素情報の位置を示すアドレスを格納するとともに、5〜16ビットに、減算部152により減算した後の有効画素情報の画素値を格納する。
【0062】
作成部153は、有効画素情報の数が32〜234の場合、上述と同様にマップデータを作成する。作成部153は、マップデータと、有効画素情報の画素値(12ビット)とを圧縮済サブブロックデータのボディ部に格納する。ここで、作成部153は、nが奇数の場合、ボディ部にダミーデータ(画素値が0の画素情報)を12ビット挿入する。
作成部153は、有効画素情報の数が235〜256の場合、全ての画素情報の画素値(12ビット)を圧縮済サブブロックデータのボディ部に格納する。
【0063】
続いて、画像解凍装置2の詳細について説明する。
図9は、本実施形態に係る画像解凍装置2の機能構成を示すブロック図である。
画像解凍装置2は、
図9に示すように、表示部21と、入力部22と、記憶部23と、制御部24と、複数の解凍部25と、を備える。
【0064】
表示部21は、例えば、液晶ディスプレイ装置や有機ELディスプレイ等により構成される。表示部21は、制御部24の制御に応じて、例えば解凍処理の操作画面等を表示する。
入力部22は、例えば、キーボードやマウス等によって構成される。入力部22は、画像解凍装置2のユーザから操作入力を受け付ける。
【0065】
記憶部23は、例えば、ROM、RAM、ハードディスク、及び画像解凍装置2に接続された外部記憶装置等により構成される。ここで、外部記憶装置は、画像解凍装置2に直接接続されていてもよいし、通信ネットワークを介して通信可能に接続されていてもよい。記憶部23は、画像データが圧縮された圧縮済画像データを記憶してもよい。また、記憶部23は、コンピュータを後述の画像データ取得部241、分割部242、結合部243、サイズ調整部244、出力部245、解凍部25として機能させるための画像解凍プログラムを記憶する。
【0066】
制御部24は、例えば、CPUにより構成される。制御部24は、記憶部23に記憶されている、画像解凍装置2を機能させるための各種プログラムを実行することにより、画像解凍装置2に係る機能を統括的に制御する。制御部24は、画像データ取得部241と、分割部242と、結合部243と、サイズ調整部244と、出力部245とを備える。
以下、各機能について、フローチャートを適宜参照しながら説明を進める。
図10は、本実施形態に係る画像解凍装置2の画像解凍処理の流れを示すフローチャートである。
【0067】
画像データ取得部241は、画像データを圧縮した圧縮済画像データを取得する(S11)。具体的には、画像データ取得部241は、画像解凍装置2に通信ネットワークを介して接続されている画像圧縮装置1等の外部装置から圧縮済画像データを受信することにより、圧縮済画像データを取得する。なお、画像データ取得部241は、画像圧縮装置1から圧縮済画像データを受信して記憶部23に記憶しておき、入力部22が圧縮済画像データの取得操作を受け付けたことに応じて、記憶部23に記憶されている圧縮済画像データを取得してもよい。
【0068】
分割部242は、画像データ取得部241が取得した圧縮済画像データを複数の圧縮済ブロックデータに分割する。そして、分割部242は、圧縮済画像データをさらに分割して、圧縮済画像データの一部分である圧縮済ブロックデータを構成する複数の圧縮済サブブロックデータを取得する(S12)。分割部242は、取得した複数の圧縮済サブブロックデータを複数の解凍部25に入力する。
【0069】
複数の解凍部25は、例えば、GPUにより構成される。複数の解凍部25は、解凍処理を実行することにより、圧縮済サブブロックデータを解凍して画像データの一部分であるブロックデータを構成する、画像データにおける画素の画素値を示す画素情報を複数含むサブブロックデータを復元する(S13)。また、複数の解凍部25は、制御部24から入力された複数の圧縮済サブブロックデータを並列して解凍する。解凍部25の処理については後述する。
【0070】
結合部243は、解凍部25により復元されたサブブロックデータを複数結合して画像データを復元する(S14)。具体的には、結合部243は、圧縮済サブブロックデータのヘッダー部に格納されているサブブロックデータのアドレスに基づいて、復元された複数のサブブロックデータを結合し、ブロックデータを復元する。そして、結合部243は、圧縮済ブロックデータのヘッダー部に格納されているブロックデータのアドレスに基づいて、復元された複数のブロックデータを結合して画像データを復元する。
【0071】
サイズ調整部244は、復元された画像データのサイズを調整する(S15)。具体的には、サイズ調整部244は、圧縮済画像データのヘッダー部に格納されている画像データのサイズ調整前の列方向の画素数width、行方向の画素数heightに基づいて復元された画像データのサイズを調整する。
出力部245は、サイズ調整部244がサイズ調整した後の画像データを出力する。出力部245は、例えば表示部21に画像データを表示させる。
【0072】
続いて、解凍部25の処理の詳細について説明を行う。複数の解凍部25のそれぞれは、最小値取得部251と、画素復元部252と、画素値復元部253とを備える。
図11は、本実施形態に係る解凍部25による解凍処理のフローチャートである。以下、
図11を参照しながら、画像圧縮装置1において圧縮された圧縮済サブブロックデータを解凍する場合の解凍部25の処理について説明する。
【0073】
まず、最小値取得部251は、圧縮済サブブロックデータのヘッダー部に格納されている最小値を示す情報を取得する(S131)。
画素復元部252は、圧縮済サブブロックデータに含まれている圧縮済画素情報に基づいて、サブブロックデータに含まれる画素情報を復元する。続いて、画素復元部252は、画素情報のデータ長を所定のデータ長に変更する(S132)。圧縮済画素情報の格納形式は圧縮後のデータ長及び有効画素情報の数によって異なるため、画素復元部252は、圧縮後のデータ長及び有効画素情報の数に基づいて異なる処理を行いサブブロックデータに含まれる画素情報を復元する。
【0074】
具体的には、画素復元部252は、圧縮後のデータ長が、0ビット又は4ビット、かつ、有効画素情報の数が0〜31の場合、圧縮済サブブロックデータに格納されているユニットデータのボディ部に基づいてユニットデータに含まれている有効画素情報の画素の位置を特定する。画素復元部252は、画素の位置を特定できていない画素情報の画素値が0であると特定する。
【0075】
また、画素復元部252は、圧縮後のデータ長が0ビット又は4ビット、かつ、有効画素情報の数が32〜191の場合、マップデータに基づいて画素情報の復元を行う。マップデータにおいてビット値が0の場合、当該ビット値に対応する位置の画素情報を圧縮済サブブロックデータのヘッダー部に含まれている無効画素情報の画素値に基づいて、当該ビット値に対応する位置の画素情報の復元を行う。また、マップデータにおいてビット値が1の場合、圧縮済サブブロックデータのボディ部に含まれている有効画素情報の画素値に基づいて、当該ビット値に対応する位置の画素情報の復元を行う。
【0076】
また、画素復元部252は、圧縮後のデータ長が0ビット又は4ビット、かつ、有効画素情報の数が192〜256の場合、圧縮済サブブロックデータのボディ部に含まれている画素情報の画素値に基づいてサブブロックデータの画素情報の復元を行う。
【0077】
また、画素復元部252は、圧縮後のデータ長が6ビット、かつ、有効画素情報の数が0〜31の場合、圧縮済サブブロックデータに格納されているユニットデータのボディ部に基づいてユニットデータに含まれている有効画素情報の画素の位置を特定する。また、画素復元部252は、画素の位置を特定できていない画素情報の画素値が0であると特定する。
【0078】
また、画素復元部252は、圧縮後のデータ長が6ビット、かつ、有効画素情報の数が32〜212の場合、マップデータに基づいて画素情報の復元を行う。また、画素復元部252は、圧縮後のデータ長が6ビット、かつ、有効画素情報の数が213〜256の場合、圧縮済サブブロックデータのボディ部に含まれている画素情報の画素値に基づいてサブブロックデータの画素情報の復元を行う。
【0079】
また、画素復元部252は、圧縮後のデータ長が8ビット、かつ、有効画素情報の数が0〜31の場合、圧縮済サブブロックデータのボディ部に格納されている有効画素情報に基づいて復元を行う。また、画素復元部252は、画素の位置を特定できていない画素情報の画素値が0であると特定する。また、画素復元部252は、圧縮後のデータ長が8ビット、かつ、有効画素情報の数が32〜223の場合、マップデータに基づいて画素情報の復元を行う。また、画素復元部252は、圧縮後のデータ長が8ビット、かつ、有効画素情報の数が224〜256の場合、圧縮済サブブロックデータのボディ部に含まれている画素情報の画素値に基づいてサブブロックデータの画素情報の復元を行う。
【0080】
また、画素復元部252は、圧縮後のデータ長が、10ビット又は12ビット、かつ、有効画素情報の数が0〜31の場合、圧縮済サブブロックデータに格納されているユニットデータのボディ部に基づいてユニットデータに含まれている有効画素情報の画素の位置を特定する。また、画素復元部252は、画素の位置を特定できていない画素情報の画素値が0であると特定する。また、画素復元部252は、圧縮後のデータ長が10ビット又は12ビット、かつ、有効画素情報の数が32〜234の場合、マップデータに基づいて画素情報の復元を行う。また、画素復元部252は、圧縮後のデータ長が10ビット又は12ビット、かつ、有効画素情報の数が235〜256の場合、圧縮済サブブロックデータのボディ部に含まれている画素情報の画素値に基づいてサブブロックデータの画素情報の復元を行う。
【0081】
画素値復元部253は、画素復元部252により復元された画素情報の画素値のそれぞれに、最小値取得部251により取得された最小値を示す情報に基づいて最小値を加算して圧縮前の画素値を復元する(S133)。
【0082】
以上、本実施形態によれば、画像圧縮装置1の圧縮部15は、複数の画素情報から、最小値を特定する特定部151と、当該複数の画素情報の画素値から、最小値を減算する減算部152と、画素値が所定値以外の画素情報である有効画素情報の、減算部152により最小値が減算された後の画素値と、当該画素値の画素の位置を特定する情報とを関連付けた圧縮済画素情報と、最小値を示す情報とを含む圧縮済サブブロックデータを作成する作成部153とを備える。
【0083】
このようにすることで、画像圧縮装置1は、処理中における条件分岐処理を減らし、画像圧縮処理における処理量をハフマン符号化等の他の圧縮方式に対して減らすことができる。よって、画像圧縮装置1は、医療用の画像を高速に圧縮することができる。また、医療用の画像データのブロックデータは階調が少なく、サブブロックデータに含まれる画素情報の画素値の最小値と最大値とが近い傾向にある。このため、画像圧縮装置1は、医療用の画像データを効率的に圧縮することができる。
【0084】
また、画像圧縮装置1の圧縮部15は、作成部153により、複数の画素情報のデータ長である所定のデータ長を、最大値から最小値を減算して得られる画素値に対応するデータ長に変更して圧縮済サブブロックデータを作成する。このようにすることで、画像圧縮装置1は、不要なデータ長を削除して効率的に圧縮することができる。また、画像圧縮装置1の圧縮部15は、複数設けられており、複数のサブブロックデータを並列して圧縮するので、高速に圧縮することができる。
【0085】
また、画像圧縮装置1の圧縮部15は、作成部153により、有効画素情報の数が所定範囲の場合に、複数の画素情報のそれぞれが有効画素情報か否かを示す情報をサブブロックにおける当該複数の画素情報の並び順に格納するマップデータと、減算部152によって最小値を減算した後の有効画素情報の画素値と、を含む圧縮済サブブロックデータを作成する。このようにすることで、画像圧縮装置1は、マップデータにおいて有効画素情報か否かを最小データ数で表現して、サブブロックデータに含まれる画素情報を効率的に圧縮することができる。
【0086】
また、画像解凍装置2の解凍部25は、最小値取得部251により、圧縮済画像データから最小値を取得し、画素復元部252により、圧縮済サブブロックデータに含まれている圧縮済画素情報に基づいて、サブブロックデータに含まれる前記画素情報を復元し、画素値復元部253により、復元された画素情報のそれぞれに、最小値を加算して圧縮前の画素値を復元する。そして、結合部243により、復元されたサブブロックデータを複数結合して画像データを復元する。このようにすることで、画像解凍装置2は、画像圧縮装置1により圧縮された圧縮済画像データを画像データに高速に復元することができる。
【0087】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。また、上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。例えば、本実施形態では医療用の画像データと異なる他の種類の画像データにも適用することができる。