IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社Luxonusの特許一覧

特開2023-139380データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法
<>
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図1
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図2
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図3
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図4
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図5
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図6
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図7
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図8
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図9
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図10
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図11
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図12
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図13
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図14
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図15
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図16
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図17
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図18
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図19
  • 特開-データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法 図20
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023139380
(43)【公開日】2023-10-04
(54)【発明の名称】データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法
(51)【国際特許分類】
   H04N 1/419 20060101AFI20230927BHJP
   H04N 1/415 20060101ALI20230927BHJP
   H03M 7/30 20060101ALI20230927BHJP
【FI】
H04N1/419
H04N1/415
H03M7/30 Z
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2022044880
(22)【出願日】2022-03-22
(71)【出願人】
【識別番号】520147108
【氏名又は名称】株式会社Luxonus
(74)【代理人】
【識別番号】100166006
【弁理士】
【氏名又は名称】泉 通博
(74)【代理人】
【識別番号】100154070
【弁理士】
【氏名又は名称】久恒 京範
(74)【代理人】
【識別番号】100153280
【弁理士】
【氏名又は名称】寺川 賢祐
(72)【発明者】
【氏名】関口 博之
(72)【発明者】
【氏名】浅尾 恭史
【テーマコード(参考)】
5C178
5J064
【Fターム(参考)】
5C178AC08
5C178BC11
5C178CC11
5C178CC56
5C178CC66
5C178DC39
5J064AA03
5J064BA08
5J064CA01
(57)【要約】      (修正有)
【課題】データの伸長処理に要する時間を短縮するデータ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法を提供する。
【解決手段】データ圧縮装置において、制御部と記憶部からなるデータ圧縮部は、元データを取得する取得部26と、元データを圧縮する圧縮部27と、を有する。圧縮部27は、元データを複数の分割データに分割し、複数の分割データ夫々を圧縮した複数の圧縮済データと、複数の圧縮済データを伸長することなく複数の圧縮済データ夫々の開始アドレスを認識可能にするための開始アドレスデータと、を含む圧縮データファイルを作成する。
【選択図】図8
【特許請求の範囲】
【請求項1】
元データを取得する取得部と、
前記元データを圧縮する圧縮部と、
を有し、
前記圧縮部は、前記元データを複数の分割データに分割し、前記複数の分割データそれぞれを圧縮した複数の圧縮済データと、前記複数の圧縮済データを伸長することなく前記複数の圧縮済データそれぞれの開始アドレスを認識可能にするための開始アドレスデータと、を含む圧縮データファイルを作成する、
データ圧縮装置。
【請求項2】
前記圧縮部は、前記複数の圧縮済データのうち先頭の第1圧縮済データの第1開始アドレスを所定の初期アドレスに決定し、前記第1圧縮済データの次の第2圧縮済データの第2開始アドレスを、前記第1開始アドレスに前記第1圧縮済データに含まれるデータの数を加算したアドレスに決定する、
請求項1に記載のデータ圧縮装置。
【請求項3】
前記圧縮データファイルは、前記圧縮部が作成した前記圧縮済データの数を示すデータを有する、
請求項1又は2に記載のデータ圧縮装置。
【請求項4】
前記圧縮部は、元データを圧縮する複数の圧縮処理部と、
前記複数の分割データそれぞれを前記複数の圧縮処理部に割り当てるデータ割当部と、
を有し、
前記複数の圧縮処理部は、前記複数の分割データを並列に圧縮して前記複数の圧縮済データを作成する、
請求項1から3のいずれか一項に記載のデータ圧縮装置。
【請求項5】
前記取得部は、画像データを前記元データとして取得する、
請求項1から4のいずれか一項に記載のデータ圧縮装置。
【請求項6】
前記取得部は、三次元画像データを前記元データとして取得する、
請求項5に記載のデータ圧縮装置。
【請求項7】
前記取得部は、光を被検査体に照射することにより前記被検査体が発する超音波信号に基づいて作成された前記三次元画像データを前記元データとして取得する、
請求項6に記載のデータ圧縮装置。
【請求項8】
前記取得部は、光を被検査体に照射することにより前記被検査体が発する超音波信号を取得した光超音波センサが出力した、前記超音波信号に対応する出力信号に基づくデータを前記元データとして取得する、
請求項1から4のいずれか一項に記載のデータ圧縮装置。
【請求項9】
コンピュータに、
元データを取得するステップと、
前記元データを複数の分割データに分割するステップと、
前記複数の分割データそれぞれを圧縮した複数の圧縮済データと、前記複数の圧縮済データを伸長することなく前記複数の圧縮済データそれぞれの開始アドレスを認識可能にするための開始アドレスデータと、を含む圧縮データファイルを作成するステップと、
を実行させるためのデータ圧縮プログラム。
【請求項10】
コンピュータが実行する、
元データを取得するステップと、
前記元データを複数の分割データに分割するステップと、
前記複数の分割データそれぞれを圧縮した複数の圧縮済データと、前記複数の圧縮済データを伸長することなく前記複数の圧縮済データそれぞれの開始アドレスを認識可能にするための開始アドレスデータと、を含む圧縮データファイルを作成するステップと、
を有するデータ圧縮方法。
【請求項11】
元データを圧縮して作成された圧縮データファイルを取得する取得部と、
前記圧縮データファイルに複数の圧縮済データそれぞれが含まれる複数のデータ領域の開始アドレスを、前記圧縮データファイル内の前記複数の圧縮済データを伸長することなく前記開始アドレスを認識可能にするための開始アドレスデータに基づいて特定する格納位置特定部と、
前記格納位置特定部が前記開始アドレスを特定した前記複数のデータ領域に格納された前記複数の圧縮済データを並列に伸長して複数の伸長済データを作成する複数の伸長処理部と、
前記複数のデータ領域に対応する複数の前記伸長済データを結合して前記元データに対応する結合データを出力する出力部と、
を有する、
データ伸長装置。
【請求項12】
前記複数の圧縮済データそれぞれを前記複数の伸長処理部のいずれかに割り当てるデータ割当部をさらに有する、
請求項11に記載のデータ伸長装置。
【請求項13】
前記データ割当部は、前記圧縮データファイルに含まれている、前記複数の圧縮済データの数を示すデータに基づいて、前記複数の伸長済データを作成する前記複数の伸長処理部の数を決定する、
請求項12に記載のデータ伸長装置。
【請求項14】
前記取得部は、画像データにより構成される前記元データを圧縮して作成された前記圧縮データファイルを取得する、
請求項11から13のいずれか一項に記載のデータ伸長装置。
【請求項15】
前記取得部は、三次元画像データにより構成される前記元データを圧縮して作成された前記圧縮データファイルを取得する、
請求項14に記載のデータ伸長装置。
【請求項16】
前記取得部は、光を被検査体に照射することにより前記被検査体が発する超音波信号に基づいて作成された前記三次元画像データにより構成される前記元データを圧縮して作成された前記圧縮データファイルを取得する、
請求項15に記載のデータ伸長装置。
【請求項17】
コンピュータに、
元データを圧縮して作成された圧縮データファイルを取得するステップと、
前記圧縮データファイルに複数の圧縮済データそれぞれが含まれる複数のデータ領域の開始アドレスを、前記圧縮データファイル内の前記複数の圧縮済データを伸長することなく前記開始アドレスを認識可能にするための開始アドレスデータに基づいて特定するステップと、
前記開始アドレスを特定した前記複数のデータ領域に格納された前記複数の圧縮済データを並列に伸長して複数の伸長済データを作成するステップと、
前記複数のデータ領域に対応する複数の前記伸長済データを結合して前記元データに対応する結合データを出力するステップと、
を実行させるためのデータ伸長プログラム。
【請求項18】
コンピュータが実行する、
元データを圧縮して作成された圧縮データファイルを取得するステップと、
前記圧縮データファイルに複数の圧縮済データそれぞれが含まれる複数のデータ領域の開始アドレスを、前記圧縮データファイル内の前記複数の圧縮済データを伸長することなく前記開始アドレスを認識可能にするための開始アドレスデータに基づいて特定するステップと、
前記開始アドレスを特定した前記複数のデータ領域に格納された前記複数の圧縮済データを並列に伸長して複数の伸長済データを作成するステップと、
前記複数のデータ領域に対応する複数の前記伸長済データを結合して前記元データに対応する結合データを出力するステップと、
を有するデータ伸長方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ圧縮装置、データ圧縮プログラム、データ圧縮方法、データ伸長装置、データ伸長プログラム及びデータ伸長方法に関する。
【背景技術】
【0002】
従来、データを効率的に保存したり伝送したりするために、データを圧縮し、圧縮されたデータを伸長することによりデータの復元や表示をする技術が知られている。圧縮されたデータを復号するには受け取った順に復号するのが一般的であった。ただ、特許文献1には、データを分割して作成した複数の分割データそれぞれを並列圧縮して、伸長側に並列送信する技術が開示されている。更に当該データ処理装置は、並列送信された複数の圧縮データを並列伸長する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2017-5412号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載されたデータ処理装置は、複数の圧縮データが並列に送信される場合が想定されているが、従来の一般のデータ処理装置は、複数の圧縮データを並列に送信しない。このような場合、受信側では受信した圧縮データを受け取った順に復号しないと元データに復元できず、伸長処理の高速化が困難であるという問題があった。
【0005】
そこで、本発明はこれらの点に鑑みてなされたものであり、データの伸長処理に要する時間を短縮することを目的とする。
【課題を解決するための手段】
【0006】
本発明の第1の態様に係るデータ圧縮装置は、元データを取得する取得部と、前記元データを圧縮する圧縮部と、を有し、前記圧縮部は、前記元データを複数の分割データに分割し、前記複数の分割データそれぞれを圧縮した複数の圧縮済データと、前記複数の圧縮済データを伸長することなく前記複数の圧縮済データそれぞれの開始アドレスを認識可能にするための開始アドレスデータと、を含む圧縮データファイルを作成する。
【0007】
前記圧縮部は、前記複数の圧縮済データのうち先頭の第1圧縮済データの第1開始アドレスを所定の初期アドレスに決定し、前記第1圧縮済データの次の第2圧縮済データの第2開始アドレスを、前記第1開始アドレスに前記第1圧縮済データに含まれるデータの数を加算したアドレスに決定してもよい。
【0008】
前記圧縮データファイルは、前記圧縮部が作成した前記圧縮済データの数を示すデータを有してもよい。
【0009】
前記圧縮部は、1つの圧縮処理部で前記元データを圧縮してもよいが、前記圧縮部は、前記元データを圧縮する複数の圧縮処理部と、前記複数の分割データそれぞれを前記複数の圧縮処理部に割り当てるデータ割当部と、を有し、前記複数の圧縮処理部は、前記複数の分割データを並列に圧縮して前記複数の圧縮済データを作成してもよい。
【0010】
前記取得部は、画像データを前記元データとして取得してもよい。前記取得部は、三次元画像データを前記元データとして取得してもよい。前記取得部は、光を被検査体に照射することにより前記被検査体が発する超音波信号に基づいて作成された前記三次元画像データを前記元データとして取得してもよい。
【0011】
前記取得部は、光を被検査体に照射することにより前記被検査体が発する超音波信号を取得した光超音波センサが出力した、前記超音波信号に対応する出力信号に基づくデータを前記元データとして取得してもよい。
【0012】
本発明の第2の態様に係るデータ圧縮プログラムは、コンピュータに、元データを取得するステップと、前記元データを複数の分割データに分割するステップと、前記複数の分割データそれぞれを圧縮した複数の圧縮済データと、前記複数の圧縮済データを伸長することなく前記複数の圧縮済データそれぞれの開始アドレスを認識可能にするための開始アドレスデータと、を含む圧縮データファイルを作成するステップと、を実行させる。
【0013】
本発明の第3の態様に係るデータ圧縮方法は、コンピュータが実行する、元データを取得するステップと、前記元データを複数の分割データに分割するステップと、前記複数の分割データそれぞれを圧縮した複数の圧縮済データと、前記複数の圧縮済データを伸長することなく前記複数の圧縮済データそれぞれの開始アドレスを認識可能にするための開始アドレスデータと、を含む圧縮データファイルを作成するステップと、を有する。
【0014】
本発明の第4の態様に係るデータ伸長装置は、元データを圧縮して作成された圧縮データファイルを取得する取得部と、前記圧縮データファイルに複数の圧縮済データそれぞれが含まれる複数のデータ領域の開始アドレスを、前記圧縮データファイル内の前記複数の圧縮済データを伸長することなく前記開始アドレスを認識可能にするための開始アドレスデータに基づいて特定する格納位置特定部と、前記格納位置特定部が前記開始アドレスを特定した前記複数のデータ領域に格納された前記複数の圧縮済データを並列に伸長して複数の伸長済データを作成する複数の伸長処理部と、前記複数のデータ領域に対応する複数の前記伸長済データを結合して前記元データに対応する結合データを出力する出力部と、を有する。
【0015】
前記複数の圧縮済データそれぞれを前記複数の伸長処理部のいずれかに割り当てるデータ割当部をさらに有してもよい。
【0016】
前記データ割当部は、前記圧縮データファイルに含まれている、前記複数の圧縮済データの数を示すデータに基づいて、前記複数の伸長済データを作成する前記複数の伸長処理部の数を決定してもよい。
【0017】
前記取得部は、画像データにより構成される前記元データを圧縮して作成された前記圧縮データファイルを取得してもよい。前記取得部は、三次元画像データにより構成される前記元データを圧縮して作成された前記圧縮データファイルを取得してもよい。
【0018】
前記取得部は、光を被検査体に照射することにより前記被検査体が発する超音波信号に基づいて作成された前記三次元画像データにより構成される前記元データを圧縮して作成された前記圧縮データファイルを取得してもよい。
【0019】
本発明の第5の態様に係るデータ伸長プログラムは、コンピュータに、元データを圧縮して作成された圧縮データファイルを取得するステップと、前記圧縮データファイルに複数の圧縮済データそれぞれが含まれる複数のデータ領域の開始アドレスを、前記圧縮データファイル内の前記複数の圧縮済データを伸長することなく前記開始アドレスを認識可能にするための開始アドレスデータに基づいて特定するステップと、前記開始アドレスを特定した前記複数のデータ領域に格納された前記複数の圧縮済データを並列に伸長して複数の伸長済データを作成するステップと、前記複数のデータ領域に対応する複数の前記伸長済データを結合して前記元データに対応する結合データを出力するステップと、を実行させる。
【0020】
本発明の第6の態様に係るデータ伸長方法は、コンピュータが実行する、元データを圧縮して作成された圧縮データファイルを取得するステップと、前記圧縮データファイルに複数の圧縮済データそれぞれが含まれる複数のデータ領域の開始アドレスを、前記圧縮データファイル内の前記複数の圧縮済データを伸長することなく前記開始アドレスを認識可能にするための開始アドレスデータに基づいて特定するステップと、前記開始アドレスを特定した前記複数のデータ領域に格納された前記複数の圧縮済データを並列に伸長して複数の伸長済データを作成するステップと、前記複数のデータ領域に対応する複数の前記伸長済データを結合して前記元データに対応する結合データを出力するステップと、を有する。
【発明の効果】
【0021】
本発明によれば、データの伸長処理に要する時間を短縮するという効果を奏する。
【図面の簡単な説明】
【0022】
図1】本実施形態に係るデータ処理システムSの構成を示す図である。
図2】本実施形態に係るデータ処理システムSにおける動作の流れを示す機能ブロック図である。
図3】画像データ作成部20が作成した三次元画像データから構成したMIP(Maximum Intensity Projection)画像の一例である。
図4】MIP画像の輝度ヒストグラムの一例を示す図である。
図5】測定装置1の一例である光超音波測定装置を説明するための図である。
図6】データ圧縮装置2のハードウェア構成を示す図である。
図7】データ伸長装置4のハードウェア構成を示す図である。
図8】データ圧縮部21の機能ブロック構成例を示す図である。
図9】圧縮済データを作成する処理を説明するための図である。
図10】8ビットの圧縮済データを作成する処理を説明するための図である。
図11】データ圧縮部21の変形例の機能ブロック図である。
図12】圧縮データファイルを作成する動作の流れを示すフローチャートである。
図13】圧縮済データを作成する動作の流れを示すフローチャートである。
図14】圧縮変換データを作成する動作の流れを示すフローチャートである。
図15】データ伸長部41の機能ブロック構成例を示す図である。
図16】複数の伸長済データを作成する動作を説明するための図である。
図17】結合データを作成する動作の流れを示すフローチャートである。
図18】伸長済データを作成する動作の流れを示すフローチャートである。
図19】第2実施形態に係る圧縮変換データの一例を示す図である。
図20】実験結果を示す図である。
【発明を実施するための形態】
【0023】
[第1実施形態]
<データ処理システムSの概要>
図1は、データ処理システムSの構成を示す図である。図2は、本実施形態に係るデータ処理システムSにおける動作の流れを示す機能ブロック図である。
【0024】
図1に示すデータ処理システムSは、測定装置1と、データ圧縮装置2と、外部記憶装置又は通信路3と、データ伸長装置4と、表示装置5と、を備える。測定装置1が、データ圧縮装置2、外部記憶装置又は通信路3、データ伸長装置4及び表示装置5の少なくとも一部の構成又は機能を含んでいてもよい。
【0025】
測定装置1とデータ圧縮装置2とは、USB(Universal Serial Bus)(登録商標)等のシリアルバスを介して接続されている。データ伸長装置4と表示装置5とは、HDMI(High-Definition Multimedia Interface)(登録商標)等のデジタルインタフェースを介して接続されている。データ伸長装置4は、外部記憶装置又は通信路3を介して、データ圧縮装置2から圧縮済データを取得する。外部記憶装置又は通信路3は、ハードディスク、SSD(Solid State Drive)若しくはUSBメモリ等の記憶媒体、又はインターネット、イントラネット、LAN(Local Area Network)、若しくは移動体通信網等の通信路である。表示装置5は、テキスト又は画像を表示するディスプレイである。
【0026】
測定装置1は、例えば、人又は動物等の被検査体の内部を測定するためのイメージング装置である。イメージング装置は、例えば画像診断装置であり、本実施の形態においては、測定装置1が、光超音波を用いて被検査体の血管の位置、形状及び大きさを測定するための光超音波測定装置である場合を例示する。光超音波測定装置は、被検査体の検査部位(例えば人の手)に光を照射し、検査部位における光吸収体(例えばヘモグロビン)が光を吸収したことにより発生した音響波を取得する。光超音波測定装置は、光を照射した時刻から音響波を取得した時刻までの伝搬時間と音響波の信号強度とを含む測定信号をデータ圧縮装置2に出力する。
【0027】
データ圧縮装置2及びデータ伸長装置4は、例えばコンピュータにより構成されている。データ圧縮装置2及びデータ伸長装置4は、仮想化されたコンピュータにより構成されていてもよく、クラウドサーバを用いて構成されていてもよい。本実施の形態においては、データ圧縮装置2とデータ伸長装置4とが、それぞれ異なるコンピュータにより構成されている場合を例示するが、データ圧縮装置2とデータ伸長装置4とが同一のコンピュータにより構成されてもよい。
【0028】
データ圧縮装置2は、図2に示す画像データ作成部20の機能及びデータ圧縮部21の機能を実行する。データ伸長装置4は、図2に示すデータ伸長部41の機能を実行する。以下、図2を参照しながら、データ処置システムSにおける動作の流れを説明する。
【0029】
画像データ作成部20は、測定装置1から取得した複数の測定信号を2値又は多値のデータに変換した測定データを作成する。画像データ作成部20は、作成した測定データに基づいて、例えば被検査体の三次元画像データを作成する。図3は、画像データ作成部20が作成した三次元画像データから構成されたMIP画像の一例である。MIP画像は、三次元画像のZ軸方向における最大の輝度値により示される画像である。図3に示す画像は、人の手の血管を測定した結果を示す画像である。図4は、MIP画像の輝度ヒストグラムの一例を示す図である。
【0030】
データ圧縮部21は、画像データ作成部20が作成した三次元画像データを圧縮して作成した圧縮済データを含む圧縮データファイルを作成する。データ圧縮部21は、作成した圧縮データファイルを外部記憶装置又は通信路3に出力する。具体的には、データ圧縮部21は、圧縮データファイルを記憶媒体に記憶させたり、圧縮データファイルを外部装置(例えばデータ伸長装置4)に送信したりする。
【0031】
データ伸長部41は、外部記憶装置又は通信路3を介して取得した圧縮データファイルに含まれる圧縮済データを伸長することにより三次元画像データを復元する。データ伸長部41は、復元した三次元画像データを表示装置5に表示させる。データ処理システムSがこのように動作することで、表示装置5を使用するユーザ(例えば医師)は、圧縮データファイルに基づく三次元画像を見ることができる。
【0032】
ところで、測定装置1が出力した測定信号に基づいて作成された三次元画像データにおいて、検査対象領域(例えば人の血管)以外の画素は図4の輝度ヒストグラムに示すように0近辺の限られた画素値を取ることがわかっている。図4に示す例においては、16ビットで表される輝度値が0x0005以下の画素数の割合は92%に達する。
【0033】
しかし、黒色に対応する画素値(0x0000)を除くと同一の画素値が連続することは稀であるため、従来のランレングス圧縮では十分な圧縮効果が得られないばかりか、逆にデータサイズの増加を招きかねない。データ圧縮部21では、例えば黒色付近の輝度値(例えば0x0001から0x00FEまでの輝度値)を0x0000に置き換えることで値の連続性を上げ、高い圧縮率を実現している。
【0034】
さらに、従来のランレングス圧縮により作成された圧縮データの伸長処理においては、圧縮データファイルの先頭から末尾に向けて逐次的に伸長するため、伸長済データを作成する時間が長くなってしまう。これに対して、データ伸長装置4は、圧縮データファイルに含まれる複数の圧縮済データそれぞれを並列に伸長し、複数の伸長後のデータを結合することにより、伸長済データを作成する時間を大幅に短縮することができる。
以下、測定装置1、データ圧縮装置2及びデータ伸長装置4を詳細に説明する。
【0035】
<測定装置1の構成>
図5は、測定装置1の一例である光超音波測定装置を説明するための図である。測定装置1は、被検査体の検査部位Tを測定する。
【0036】
測定装置1は、支持台110、センサユニット120、走査機構125、分離部130、光源140、光学系141及び光出射口142を備える。支持台110は、支持面111及び開口112を有する。センサユニット120は、容器121、センサ122及び素子保持部123を有する。容器121は、音響整合材124を貯留する。分離部130は、音響整合材131を貯留する。音響整合材124及び音響整合材131は、検査部位Tの音響インピーダンスと一致又は類似する液状又はゲル状の物質であり、例えば水又は油である。
【0037】
支持台110は、被検査体を載置するための基台である。支持面111は、被検査体のうち検査部位Tと異なる部位を支持する。開口112は、支持面111に形成されており、被検査体の検査部位Tを置くために設けられている。例えば人の左手を測定する場合、支持面111は、測定する人の左腕を支持し、開口112の内部には、人の左手が置かれる。
【0038】
センサユニット120は、検査部位Tが発生した音響波を検出し、検出した音響波を電気信号に変換するためのユニットである。容器121は、水又は油等の音響整合材124を貯留するための容器であり、音響整合材124を貯留することで、音響波の伝搬経路に空気が介在することを抑制する。センサ122は、音響波を検出するための探触子と音響波を電気信号に変換するための変換素子とを有し、検査部位Tが発生した音響波を検出して電気信号に変換する。
【0039】
素子保持部123は、複数のセンサ122を支持するための部材であり、複数のセンサ122が半球面に置かれるように半球状に形成されている。複数のセンサ122のそれぞれは素子保持部123における異なる位置に設けられているので、それぞれが検査部位Tの異なる断面から音響波を検出する。
【0040】
走査機構125は、検査部位Tの位置にセンサ122の向きを合わせるためにセンサユニット120を走査させるための機構である。走査機構125は、例えば測定装置1の操作者が測定を開始するための操作をしたことに応じて、予め定められた走査方向にセンサユニット120を走査させる。
【0041】
分離部130は、検査部位Tとセンサユニット120とを分離させるための部材であり、水又は油等の音響整合材131を貯留する。分離部130の上面には、検査部位Tが置かれる。
【0042】
光源140は、例えばレーザ、発光ダイオード又はフラッシュランプであり、検査部位Tに照射するための光を発生する。光源140は、例えば検査者が入力デバイス29を操作してデータ圧縮装置2に検査部位Tを測定するための指示を入力したことにより光を発生する。光学系141は、光源140が発生した光を光出射口142に伝送するための光ファイバ、レンズ及びミラーを含む。光出射口142は、光学系141の終端に備えられており、光学系141により伝送された光を検査部位Tに向けて出射する。
【0043】
測定装置1においては、光源140が光を発生し、光出射口142が検査部位Tに向けて光を出射する。検査部位Tに含まれる光吸収体は、出射された光を吸収することにより音響波を発生する。複数のセンサ122は、検査部位Tが発生した音響波を検出する。複数のセンサ122は、光出射口142が光を出射した時刻から光吸収体が発生した音響波を検出した時刻までの伝搬時間と、検出した音響波を電気信号に変換することにより作成した信号強度と、を測定信号としてデータ圧縮装置2に出力する。
【0044】
<データ圧縮装置2の構成>
図6はデータ圧縮装置2のハードウェア構成を示す図である。データ圧縮装置2は、信号処理部22、IO(Input Output)ポート23、記憶部24及び制御部25を有する。
【0045】
信号処理部22は、センサ122が出力した測定信号に基づく測定データを作成する。信号処理部22は、例えば増幅器、AD変換器及び演算回路を有しており、信号強度を示す測定信号に増幅処理及びAD変換処理を実行したり、伝搬時間を示す測定信号に所定の演算処理を実行したりすることにより測定データを作成する。信号処理部22は、作成した測定データを、データバスを介して記憶部24に記憶させる。
【0046】
IOポート23は、複数のデータ入出力ポートを含む。IOポート23は、被検査体の検査者が入力デバイス29を操作することにより入力したセンサユニット120の位置を示す位置情報を走査機構125に出力する。IOポート23は、操作画面データを表示装置30に出力する。IOポート23は、被検査体の検査者が入力デバイス29を操作することにより指定したタイミングで、光源140に光を発生させる指示情報を光源140に出力する。更にIOポート23は、測定したデータに基づいて作成した三次元画像データ、又は三次元画像データを圧縮して作成された圧縮データファイルを外部記憶装置又は通信路3に出力する。
【0047】
記憶部24は、ROM(Read Only Memory)、RAM(Random Access Memory)等のメモリと、HDD(Hard Disk Drive)又はSSD(Solid State Drive)等の記憶媒体とを有する。記憶部24は、データ圧縮装置2がデータ圧縮部21として機能するために制御部25が実行するプログラムを記憶している。記憶部24は、圧縮データファイルを作成するために制御部25が実行するプログラムを記憶している。
【0048】
制御部25は、例えばCPU(Central Processing Unit)又はGPU(Graphics Processing Unit)を有しており、記憶部24に記憶されたプログラムを実行することにより各種の機能を実現する。制御部25はデータ圧縮部21として機能し、記憶部24に記憶された元データである三次元画像データからZ軸方向に多数個輪切りした複数のXY平面画像(以下、「スライス画像データ」という)を圧縮して圧縮済データを作成する。制御部25は、例えばスライス画像データごとに圧縮済データを作成することにより、複数のスライス画像データに対応する複数の圧縮済データが結合された圧縮データファイルを作成する。制御部25は、作成した圧縮データファイルを記憶部24もしくは外部記憶装置又は通信路3に出力する。なお、制御部25は画像データ作成部20として機能してもよい。
【0049】
<データ伸長装置4の構成>
図7は、データ伸長部41として機能するデータ伸長装置4のハードウェア構成を示す図である。データ伸長装置4は、IO(Input Output)ポート42、記憶部43及び制御部44を有する。
【0050】
IOポート42は、複数のデータ入出力ポートを含む。IOポート42は、例えば表示装置5に表示させるための画像データを表示装置5に出力する。IOポート42は、外部記憶装置又は通信路3から、圧縮済みの三次元画像データを圧縮済データとして含む圧縮データファイルを取得する。
【0051】
記憶部43は、メモリと、HDD又はSSD等の記憶媒体とを有する。記憶部43は、データ伸長装置4がデータ伸長部41として機能するために制御部44が実行するプログラムを記憶している。
【0052】
制御部44は、例えばCPU又はGPUを有しており、記憶部43に記憶されたプログラムを実行することにより圧縮済データの伸長、及び伸長済データの表示装置5への表示等の機能を実現する。
【0053】
制御部44は、外部記憶装置又は通信路3から記憶部43に読み込まれた圧縮済データに伸長処理を施して、画像データ作成部20によって構成された三次元画像データを復元する。制御部44は、ネットワークを介して、データ圧縮装置2から直接圧縮データファイルを受信してもよい。
【0054】
制御部44は、記憶部43若しくは外部の記憶媒体(例えばUSBメモリ)に記憶された圧縮データファイル、又はネットワーク等の通信路を介して外部装置(例えばデータ圧縮装置2)から受信した圧縮データファイルを複数の圧縮済データに分割する。制御部44は、複数の圧縮済データそれぞれを伸長して複数の伸長済データを作成し、それを伸長済データ用に予め確保された領域に格納していく。全ての圧縮済データの伸長処理が終わった時点で伸長済データが完成する。
以下、データ圧縮部21及びデータ伸長部41を詳細に説明する。
【0055】
<データ圧縮部21の機能ブロック構成>
図8は、データ圧縮部21の機能ブロック構成例を示す図である。データ圧縮装置2がデータ圧縮部21として機能してデータ圧縮処理を実行する際に、制御部25は、取得部26、圧縮部27、及び出力部28として機能する。圧縮部27は、入力された元データを複数の分割データに分割し、複数の分割データそれぞれを圧縮した複数の圧縮済データと、複数の圧縮済データを伸長することなく複数の圧縮済データそれぞれの開始アドレスを認識可能にするための開始アドレスデータと、を含む圧縮データファイルを作成する圧縮処理部270を有している。圧縮処理部270は、多値データ処理部271及び圧縮用変換部272を有する。
【0056】
取得部26は、記憶部24に記憶されている元データを取得する。元データは、複数の多値データから構成される三次元画像データである。元データは、例えば光を被検査体の所定の方向に照射することにより被検査体が発する超音波信号に基づいて画像データ作成部20が作成した三次元画像データである。三次元画像データには、所定の間隔で区分けされた多数のスライス画像データが含まれている。これらのスライス画像データは、光を被検査体に照射することにより被検査体が発する超音波信号に基づいて作成された三次元画像データを所定の方向にスライスすることにより生成された画像データである。
【0057】
多値データ処理部271は、取得部26が取得した元データに含まれる画素の値が、閾値(例えば0x00FE)以下の値を持つ時、その画素値を第1多値データ(通常0x0000)に置き換える。第1多値データは、例えば黒色に近い灰色を示す輝度値のような所定の範囲の輝度値を、黒色を示す輝度値に置き換えたデータである。この閾値は画質劣化と圧縮率とに関係するため、両者のバランスを考慮して決定される。閾値以下の画素値の範囲は、多値データが示す輝度値を黒色の輝度値に置き換えて画像データを作成しても人が黒色であると認識し得る範囲である。具体的には、黒色付近は、例えば人の血管を示すスライス画像データにおける背景に含まれる画素に含まれる色の範囲に相当する。また、ユーザ(医師、検査技師等)が黒色との違いを考慮する必要がない輝度レベルを閾値として設定することができるように、入力デバイス29あるいはPCの画面上に設けられたスライダ等により閾値を変更可能なように構成されていてもよい。
【0058】
なお、ここでは置き換えた後の輝度値を0x0000にする場合を例示しているが、置き換えた後の輝度値は0x0000に限らない。例えば白背景の画像データに対しては、最大輝度(例えば0xFFFFとする)に近い輝度値を0xFFFFという輝度値に置き換えることになる。
【0059】
多値データ処理部271がこのように動作することで、データ圧縮装置2は、所定の値が連続する数を増やすことができるので圧縮率を高めることができる。さらに、圧縮済データが伸長されて作成された画像を見る人が、元データの輝度値が他の値に置換されていることを識別することが困難であるように、黒色付近の輝度値を0x0000に置換することで、多値データ処理部271は、元データに基づいて作成された圧縮済データを復元した際の画像の画質の低下を抑制することができる。
【0060】
圧縮用変換部272は、例えば多値データ処理部271が作成した第1多値データが連続する場合に、連続する第1多値データを圧縮変換データに変換することにより、圧縮済データを作成する。元データの三次元画像データが多数のスライス画像データを含んでいる場合、圧縮用変換部272は、それぞれが一以上のスライス画像データを含む複数の分割データを作成する。圧縮用変換部272は、複数の分割データごとに圧縮済データを作成し、複数の圧縮済データを含む圧縮データファイルを作成する。
【0061】
圧縮用変換部272は、第1多値データを、当該複数の多値データの連続数に対応する圧縮変換データに変換する。それぞれのスライス画像データにおける複数の多値データのうち、複数の輝度値を含む所定の範囲内の値(例えば黒色付近の輝度値)が第1多値データに置換されているので、圧縮用変換部272により、黒色付近の輝度値を有し、かつ連続する複数の多値データ(以下、「黒色付近データ」という場合がある)が圧縮変換データに変換されることになる。
【0062】
圧縮用変換部272は、例えばランレングス圧縮データであることを示すフラグデータと、複数の第1多値データが連続する数を示すレングスデータと、を含む圧縮変換データを作成する。多値データが16ビット幅である場合、圧縮用変換部272は、16ビット幅の上位8ビットをフラグデータ(例えば0xFF)とし、下位8ビットをレングスデータとする。
【0063】
具体的には、複数の第1多値データ0x0000が連続する数が10である場合、圧縮用変換部272は、フラグデータである0xFFと、多値データが連続する数10を16進数に変換した0x0Aとを結合した16ビットの圧縮変換データ0xFF0Aを作成する。同様に50個連続する場合、圧縮用変換部272は圧縮変換データ0xFF32を作成する。元データである三次元画像データにおける最低輝度値が0x0000で最高輝度値が0xFEFFである場合、0xFF00から0xFFFFまでの輝度値は存在しないので0xFFをフラグデータとして利用できる。但し、本実施形態においては、ランレングスを示す下位8ビットを他の用途で使用できるように、圧縮変換データにおいてランレングスを示す値の最大値を250(16進表記で0xFA)としている。したがって、ランレングスが251以上である場合、圧縮用変換部272は、251以上にわたって連続する0x0000に対して複数の圧縮変換データを作成する。
【0064】
図9は、圧縮用変換部272が圧縮データファイルを作成する処理を説明するための図である。図9は、圧縮用変換部272が圧縮する前のデータと圧縮した後のデータを示している。図9における分割データは、取得部26が取得した元データを多値データ処理部271が置換処理した後の圧縮前データの一部のデータであり、例えばスライス画像データに対応している。
【0065】
図9に示す複数の分割データ及び複数の圧縮済データは、それぞれ16ビットのビット幅のデータ列である。図9においては、圧縮前データに4つの分割データが含まれている。4つの分割データは、データ位置0~999に示す分割データ1、データ位置1000~1999に示す分割データ2、データ位置2000~2999に示す分割データ3及びデータ位置3000~3999に示す分割データ4である。
【0066】
図9に示す例において、Dで始まるデータ群(例えばD00)は、黒色付近データが連続するデータ群を示している。Mで始まるデータ群(例えばM00、M01)は、黒色付近以外の輝度値のデータ群を示している。すなわち、Dで始まるデータ群は、多値データ処理部271において0x0000に置換されるデータ群であり、Mで始まるデータ群は、多値データ処理部271において0x0000に置換されない大きな輝度値のデータ群である。
【0067】
圧縮用変換部272は、Mで始まるデータ群を圧縮せず、Dで始まるデータ群をランレングス圧縮することにより圧縮済データを作成する。具体的には、圧縮用変換部272は、分割データ1において連続する0x0000を含むD00に含まれるデータをランレングス圧縮することにより圧縮変換データC00を作成する。データD00が10個の黒色付近データにより構成されている場合、圧縮変換データC00は、多値データ処理部271が出力した0x0000が10個連続することを示す0xFF0Aである。
【0068】
圧縮用変換部272は、M00、C00、M01により構成される圧縮済データ1を作成する。圧縮用変換部272は、分割データ2~分割データ4に対しても同様の処理を実行することにより、圧縮済データ2~圧縮済データ4を作成する。分割データ2においては、D10及びD11が251個以上の連続する0x0000を含んでおり、圧縮用変換部272は、圧縮変換データC10及びC11を作成している。圧縮済データの各々のサイズから、それぞれの圧縮済データのデータ領域への格納位置が確定する。
【0069】
圧縮用変換部272は、作成した複数の圧縮済データが含まれるデータ領域と、それぞれの圧縮済データの開始位置を示すデータが含まれる第1領域と、圧縮済データの数を示すデータが含まれる第2領域と、を含む圧縮データファイルを作成する。
【0070】
圧縮用変換部272は、圧縮データファイルにおける複数の圧縮済データそれぞれが含まれる複数のデータ領域の開始アドレスを示す開始アドレスデータを、圧縮データファイルにおける複数のデータ領域と異なる第1領域に格納する。第1領域は、圧縮データファイルの先頭部であってもよく他の場所であってもよい。圧縮用変換部272は、例えば図9に示すデータ領域に含まれる複数の圧縮済データの開始アドレス(データ位置0、データ位置877、データ位置1253及びデータ位置1872)を、図9に示す第1領域に格納する。開始アドレスデータは、開始アドレスそのものでもよいが、それに代えて、分割された複数の圧縮済データのそれぞれのデータサイズを格納してもよい。伸長側では、データを伸長せずとも、最初のデータのアドレスと、圧縮済データそれぞれのデータサイズとに基づいて、それぞれの圧縮済データの開始アドレスを認識できる。
【0071】
圧縮用変換部272は、例えば複数の圧縮済データのうち先頭の第1圧縮済データの第1開始アドレスを所定の初期アドレスに決定する。第1圧縮済データは、例えば図9に示すデータ位置0からデータ位置876までのデータである。第1開始アドレスは、例えば図9に示す圧縮済データのデータ位置0である。
【0072】
圧縮用変換部272は、第1圧縮済データの次の第2圧縮済データの第2開始アドレスを、第1開始アドレスに第1圧縮済データに含まれるデータの数を加算したアドレスに決定する。第2圧縮済データは、例えば図9に示すデータ位置877からデータ位置1252までのデータである。圧縮用変換部272は、第1開始アドレス「0」に第1圧縮済データに含まれるデータの数「877」を加算したアドレス「877」を第2圧縮済データの第2開始アドレスに決定する。
【0073】
圧縮用変換部272は、複数の圧縮済データを格納した複数のデータ領域の終端を示す終端アドレスを第1領域に格納してもよい。圧縮用変換部272は、例えば図9に示す圧縮済データ4の第4開始アドレス「1872」に圧縮済データ4に含まれるデータの数「539」を加算したアドレス「2411」を終端アドレスとして第1領域に格納する。
【0074】
圧縮用変換部272は、複数の圧縮済データの数を示すデータを圧縮データファイルにおける複数のデータ領域と異なる第2領域に格納する。第2領域は、圧縮データファイルの先頭部であってもよく他の場所であってもよい。圧縮用変換部272は、例えば図9に示す複数の圧縮済データの数「4」を、図9に示す第2領域に格納する。
【0075】
圧縮用変換部272が以上の処理を実行することにより、図9に示す第1領域には、圧縮済データ2の開始データ位置を示す開始アドレス877、圧縮済データ3の開始データ位置を示す開始アドレス1253、圧縮済データ4の開始データ位置を示す開始アドレス1872及びデータ領域の終端を示す終端アドレス2411が格納されている。図9に示す第2領域には、圧縮データファイルに含まれる圧縮済データの数である「4」が格納されている。
【0076】
出力部28は、複数の圧縮済データを含む圧縮データファイルを外部記憶装置又は通信路3に出力する。出力部28は、例えば、USBメモリ等の記憶媒体又はイントラネットを介して、圧縮データファイルを他のコンピュータに出力する。なお、データ圧縮部21とデータ伸長部41とがデータ圧縮装置2により実現される場合、出力部28は、外部記憶装置又は通信路3に圧縮データファイルを出力する代わりに、圧縮データファイルを記憶部24に記憶させてもよい。
【0077】
以上のとおり、圧縮用変換部272は、0x0000~0xFEFFの範囲のデータにより構成される元データにおいて黒色付近の画素値が連続している場合、連続数を示すレングスデータを作成する。そして、圧縮用変換部272は、レングスデータであることを示すフラグデータ0xFFを上位8ビットとして、レングスデータを下位8ビットとする圧縮変換データを作成する。圧縮用変換部272は、0x0000の連続数が250を越える場合には、連続する0x0000のデータ群を分割して、複数の圧縮変換データを作成する。なお、圧縮用変換部272は、1つの分割データの末尾と次の分割データの先頭が0x0000であり、0x0000が複数の分割データで連続している場合、分割データの境界では0x0000が連続していないものとみなす。
【0078】
なお、圧縮用変換部272は、ビット幅が16ビットの多値データに限らず、ビット幅が8ビットの多値データを圧縮変換データに変換してもよい。図10は、圧縮用変換部272が8ビットの圧縮済データを作成する処理を説明するための図である。図10に示す圧縮前データ及び圧縮済データは、それぞれ8ビットのビット幅のデータ列である。図10に示す圧縮前データに含まれる多値データは、16ビット幅の多値データを8ビット幅に変換した多値データであってもよい。
【0079】
図10に示す圧縮前データに対応する複数の分割データそれぞれに含まれる「0」は第1多値データ0x00であり、その他は例えば0x0Bよりも大きい輝度値の第2多値データである。図10においては、圧縮処理部270が、分割データ1を圧縮した圧縮済データ1、分割データ2を圧縮した圧縮済データ2及び分割データ3を圧縮した圧縮済データ3を作成している。
【0080】
圧縮用変換部272は、分割データ1に含まれるデータD51において第1多値データが連続する数が1であることを特定し、フラグデータ「0」とレングスデータ「1」を含む圧縮変換データC51を作成する。圧縮用変換部272は、分割データ2に含まれるデータD52において第1多値データが連続する数が250個以下の数を示すN1であることを特定し、フラグデータ「0」とレングスデータ「N1」とを含む圧縮変換データC52を作成する。圧縮変換データC51及び圧縮変換データC52においては、第1多値データが連続する数が250個以下であるため、8ビットのビット幅で示すことができる。
【0081】
圧縮用変換部272は、分割データ3に含まれるデータD53において第1多値データが連続する数が251個以上65535個以下の数を示すN2であることを特定する。上述のとおり、本実施形態では、圧縮変換データにおいてランレングスを示す値の最大値を250としている。したがって、第1多値データが連続する数が251個以上である場合、圧縮用変換部272は、第1多値データが連続する数を1つの8ビット幅のデータで示すことができない。そこで、圧縮用変換部272は、16ビット幅のデータで示した第1多値データが連続する数を上位8ビットと下位8ビットとに分割する。
【0082】
具体的には、連続する数が1000(16進数の0x03E8)である場合、圧縮用変換部272は、連続する数を「03」と「E8」とに分割したレングスデータを作成する。さらに、圧縮用変換部272は、連続する数を分割したことを示すために、フラグデータ「0」を2つ作成し、「0」「0」「03」「E8」を含む圧縮変換データを作成する。図10に示す圧縮変換データC53においては、2つのフラグデータ「0」と、連続した数の下位8ビットを示す「N2L」と、連続した数の上位8ビットを示す「N2H」とが示されている。
【0083】
このように、圧縮用変換部272は、複数の第1多値データが連続する数が、レングスデータのビット幅として定められた基準ビット幅で表すことができる場合、複数の第1多値データを基準ビット幅の1つのレングスデータに変換する。一方、圧縮用変換部272は、複数の第1多値データが連続する数が基準ビット幅で表すことができる値を超えた場合、複数の第1多値データを基準ビット幅の2つ以上のレングスデータに変換する。圧縮用変換部272がこのように構成されていることで、複数の第1多値データの連続数が基準ビット幅を超えたとしても、第1多値データをレングスデータに変換できるので、高い圧縮率を実現することができる。
【0084】
なお、データ圧縮装置2は、圧縮処理を高速化するために並列に圧縮処理を実行してもよい。図11は、並列に圧縮処理を実行することができるデータ圧縮部21の変形例の機能ブロック図である。図11に示すデータ圧縮部21は、圧縮部27がデータ割当部274及び圧縮データ結合部275を有するとともに、複数の圧縮処理部270(圧縮処理部270a、270b、270c、270d)を有するという点で、図8に示したデータ圧縮部21と異なる。圧縮処理部270のそれぞれはCPU又はGPUを構成する複数のコア又はスレッドの一つ一つに対応しており、複数の分割データの圧縮済データを並列に作成する。
【0085】
データ割当部274は、複数の分割データを複数の圧縮処理部270に割り当てる。データ割当部274は、例えば取得部26が元データとして取得した三次元画像データに含まれている多数のスライス画像データのうち一以上のスライス画像データにより構成される複数の分割データを、順次、複数の圧縮処理部270に入力する。分割データは、例えば三次元画像データが複数のスライス画像データの境界位置で分割されたデータであるが、境界位置以外の位置で分割されたデータであってもよい。データ割当部274は、それぞれの圧縮処理部270の計算量が均等になるように、配分する分割データの数を調整して各圧縮処理部270に割り当ててもよい。
【0086】
複数の分割データが、図9に示す4つの分割データ(分割データ1、分割データ2、分割データ3、分割データ4)である場合、データ割当部274は、圧縮処理部270aに分割データ1を、圧縮処理部270bに分割データ2を、圧縮処理部270cに分割データ3を、圧縮処理部270dに分割データ4をそれぞれ割り当てる。
【0087】
4つの圧縮処理部270は、それぞれ割り当てられた分割データを並列に圧縮して、圧縮済データ1、圧縮済データ2、圧縮済データ3及び圧縮済データ4をそれぞれ作成する。4つの圧縮処理部270の処理が全て終了すると、圧縮済データの各々のサイズからそれぞれの圧縮済データのデータ領域への格納位置が確定する。4つの圧縮処理部270は、それぞれが作成した圧縮済データをデータ領域に格納する。例えば、圧縮処理部270aは、圧縮済データ1をデータ位置0~876に格納し、圧縮処理部270bは、圧縮済データ2をデータ位置877~1252に格納する。圧縮処理部270cは、圧縮済データ3をデータ位置1253~1871に格納し、圧縮処理部270dは、圧縮済データ4をデータ位置1872~2410に格納する。
【0088】
圧縮データ結合部275は、複数の圧縮処理部270が作成した複数の圧縮済データを結合して圧縮データファイルを作成する。圧縮データ結合部275は、複数の圧縮処理部270が作成した複数の圧縮データファイルを結合して1つの圧縮データファイルを作成してもよい。
【0089】
複数の圧縮処理部270がこのように分割データを並列に圧縮して複数の圧縮済データを作成することで、データ圧縮装置2は、データを圧縮する動作に要する時間を短縮することができる。
【0090】
<データ圧縮装置2における動作の流れ>
図12から図14は、図8の圧縮処理部270が一つの場合のデータ圧縮装置2における動作の流れを示すフローチャートである。図12は、圧縮データファイルを作成する動作の流れを示すフローチャートである。図13は、圧縮済データを作成する動作の流れを示すフローチャートである。図13に示すフローチャートは、図12に示すS16における動作の流れを示す。図14は、圧縮変換データを作成する動作の流れを示すフローチャートである。図14に示すフローチャートは、図13に示すS31及びS35における動作の流れを示す。
【0091】
図12に示すフローチャートは、圧縮処理部270が元データを取得した時点から開始している。まず、圧縮処理部270は、作成する圧縮データファイルの先頭部にマジックナンバーを書込む(S11)。マジックナンバーは、作成するファイルが圧縮データファイルであることを示す識別子である。圧縮処理部270は、記憶部24を参照することにより、元データを分割する分割データの数を示す分割数データを、作成する圧縮済データの数を示すデータとして第2領域に書込む(S12)。同時に、圧縮処理部270は、分割数データと三次元画像データの全スライスデータ数に基づいて、各分割データが含むXY平面のスライス画像の数SSを設定する(S13)。圧縮処理部270は、複数の圧縮済データを格納するためのデータ領域を初期化するために、データ領域に0を書込む(S14)。
【0092】
圧縮処理部270は、を先頭から順次、分割データを圧縮することにより圧縮済データを作成する(S15)。圧縮処理部270は、作成した圧縮済データを圧縮データファイルにおけるデータ領域に格納する(S16)。
【0093】
圧縮処理部270は、分割数に対応する全ての分割データを圧縮していない場合(S17のNO)、S15に戻り次の分割データを圧縮するために、S15からS16までの処理を繰り返す。圧縮処理部270は、分割データの全てを圧縮した場合(S17のYES)、処理を終了する。
以下、S15における圧縮処理部270の各分割データの圧縮動作の流れの詳細を説明する。
【0094】
図13に示すように、圧縮処理部270は、分割データの先頭位置を示す値をポインタpの値とし、圧縮済データを書込む領域における先頭位置を示す値をポインタqの値とする。また、何番目のスライス画像を圧縮しているかを示す変数Sliceを1に初期化する(S21)。圧縮処理部270は、変数Pixelに0を代入することにより変数Pixelを初期化する(S22)。変数Pixelは、分割データに含まれる複数の多値データのうち圧縮のための処理が完了多値データの数を示す変数である。PixelがXY平面、すなわち1スライス平面における画素数に達すると、1スライス平面の圧縮処理が終了する。SliceがS13で設定した各分割データが含むスライス画像の数SSに達すると1つの分割データの圧縮が終了する。
【0095】
圧縮処理部270は、変数ZeroRunに0を代入することにより、変数ZeroRunを初期化する(S23)。変数ZeroRunは、多値データ処理後の分割データにおいて0x0000が連続する数を示す変数である。なお、本例においては、変数ZeroRunは250以下の値であるものとする。すなわち、圧縮処理部270は、0x0000が連続する数の最大値を250とし、0x0000が連続する数が251以上の場合は、2つ以上の変数ZeroRunを作成する。
【0096】
圧縮処理部270は、変数xの値を、ポインタpが示す位置に格納された2バイトの多値データの値にする(S24)。変数xは、分割データに含まれる複数の多値データのうち圧縮処理部270が圧縮する多値データの値示す変数である。圧縮処理部270は、ポインタpの値を2バイト先の位置を示す値に更新する(S25)。2バイト先の位置は、S24において変数xに対応する多値データの後に圧縮処理部270が圧縮をする多値データの位置である。
【0097】
圧縮処理部270は、変数xが示す多値データの値と定数CutOffとを比較する(S26)。定数CutOffは、多値データが黒色とみなせる輝度値を示しているか否かを判定するための定数である。多値データが示す値が、定数CutOffが示す値未満である場合(S26のYES)、圧縮処理部270は、変数xが示す多値データの値が0x0000であると判定し、変数ZeroRunの値(すなわち、第1多値データが連続する数)を1増やす(S27)。このように、本フローでは、多値データが黒に近い閾値、すなわちCutOffよりも低い場合に変数ZeroRunをカウントする。すなわち、多値データ処理とランレングスのカウントをS26及びS27で行っている。
【0098】
なお、先に述べたように、定数CutOffはユーザによって変更設定が可能であるので、圧縮処理部270は、多値データが黒色の輝度値とみなせる範囲の値に変数ZeroRunの値を設定することもできるし、より明るい輝度値までランレングスのカウントの対象にするように変数ZeroRunの値を増やすこともできる。
【0099】
圧縮処理部270は、変数ZeroRunが250未満であり(S28のYES)、かつ変数Pixelが定数XY未満である場合(S29のYES)、変数Pixelが示す値を1増やし(S30)、S24の動作に戻る。定数XYは、分割データに含まれる多値データの数を示す定数である。すなわち、変数Pixelが定数XY未満であることは、1スライス画像内の全ての多値データの圧縮処理が完了していないことを意味する。圧縮処理部270は、S24の動作に戻ることで、分割データに含まれる複数の多値データのうち圧縮処理を実行していない多値データにおける圧縮処理を実行する。
【0100】
圧縮処理部270は、変数ZeroRunが250に達した場合(S28のNO)、又は変数Pixelが定数XYと等しい場合(S29のNO)、変数ZeroRunをレングスデータとする圧縮変換データを作成する(S31)。圧縮処理部270は、S31の動作を実行した後に、変数Pixelが定数XY未満であるか否かを判定する(S32)。変数Pixelが定数XY未満である場合(S32のYES)、未だ1スライス画像の圧縮が終了していないので、圧縮処理部270は、処理をS30に進める。
【0101】
変数Pixelが定数XY以上である場合(S32のNO)、1スライス画像の圧縮が終了したので、圧縮処理部270はスライス画像の変数Sliceをインクリメントし(S33)、1ブロックのスライス画像数SS分の処理が完了したかをS34で判定する。圧縮処理部270は、S34でまだ1ブロック分の全スライス画像の圧縮処理が完了していない場合にはS22に戻り、次のスライス画像の圧縮を行う。圧縮処理部270は、S34において1つの分割データの圧縮が終了したと判定すると、ポインタqが示す位置を記憶部24及び圧縮データファイルの第1領域に格納する(S35)。S35において第1領域に格納した、ポインタqが示す位置は、圧縮処理部270が次の分割データを圧縮して作成する圧縮済データの開始アドレスになる。
【0102】
圧縮処理部270は、S26において、変数xが示す多値データの値が定数CutOff以上であると判定した場合(S26のNO)、変数ZeroRunが示す値が0であるか否かを判定する(S36)。変数ZeroRunが示す値が0ではない場合(S36のYES)、圧縮処理部270は、変数ZeroRunをレングスデータとする圧縮変換データを作成する(S37)。変数ZeroRunが示す値が0である場合(S36のNO)、圧縮処理部270は、変数ZeroRunをレングスデータとする圧縮変換データを作成しない。
【0103】
続いて、圧縮処理部270は、変数xが示す値(すなわち多値データ)をポインタqが示す位置(すなわちデータ領域における圧縮済データを格納する位置)に書込む(S38)。圧縮処理部270は、ポインタqが示す位置を2バイト先の位置に移動し(S39)、S32の処理を実行する。
以下、S31及びS37における圧縮変換データを作成する動作の詳細を説明する。
【0104】
圧縮処理部270は、定数0xFFと変数ZeroRunが示す値とを加算した結果をポインタqが示す位置に書込む(図14のS41)。例えば変数ZeroRunが示す値が0x10である場合、圧縮処理部270は、0xFF10をポインタqが示す位置に書込む。0xFF10の上位8ビットが示す「FF」は、0xFF10が圧縮変換データであることを示すフラグデータである。下位8ビットが示す「10」は、第1多値データが16個(16進数の0x10)連続していることを示すレングスデータである。圧縮処理部270は、ポインタqが示す位置を2バイト先の位置に移動させる(S42)。圧縮処理部270は、変数ZeroRunが示す値を0に初期化する(S43)。
【0105】
<データ伸長装置4の機能ブロック構成>
図15は、データ伸長装置4の機能ブロック構成例を示す図である。データ伸長処理を実行する際に、制御部44は、記憶部43に記憶されたプログラムを実行することにより、取得部45、伸長部46及び出力部47として機能する。伸長部46は、格納位置特定部461、データ割当部462及び複数の伸長処理部463(463a~463d)を有する。
【0106】
取得部45は、元データを圧縮して作成された圧縮データファイルを取得する。取得部45は、例えば、外部記憶装置又は通信路3を介して圧縮データファイルを取得する。取得部45は、取得した圧縮データファイルを記憶部43に記憶させる。
【0107】
取得部45は、複数の多値データを含む元データを圧縮して作成され、複数の多値データのうち黒色付近データが連続する数に対応する圧縮変換データと、それ以外の第2多値データとを含む圧縮済データを取得する。すなわち、取得部45は、上述したデータ圧縮装置2が作成した圧縮済データを取得する。圧縮変換データは、例えば図9に示すデータC00であり、第2多値データは、例えば図9に示すデータM00及びデータM01である。
【0108】
伸長部46は、圧縮済データを伸長して元データに対応する伸長済データを作成する。格納位置特定部461は、圧縮データファイルに複数の圧縮済データそれぞれが含まれる複数のデータ領域を、圧縮データファイルに格納された開始アドレスデータが示す複数のデータ領域それぞれの開始アドレスに基づいて特定する。格納位置特定部461は、例えば図9に示す圧縮データファイルに含まれる第1領域を特定する。格納位置特定部461は、特定した第1領域に含まれる複数の開始アドレスデータに基づいて、図9に示すデータ領域に含まれる複数の圧縮済データそれぞれが格納された領域を特定する。
【0109】
具体的には、格納位置特定部461は、図9に示す第1領域に含まれる開始アドレスデータ「データ位置0、データ位置877、データ位置1253、データ位置1872及びデータ位置2411」を特定する。格納位置特定部461は、特定した開始アドレスデータに基づいて、データ位置0からデータ位置876までの領域に格納された圧縮済データ1、データ位置877からデータ位置1252までの領域に格納された圧縮済データ2等の複数のデータ領域を特定する。
【0110】
データ割当部462は、複数の圧縮済データそれぞれを複数の伸長処理部463のいずれかに割り当てる。データ割当部462は、例えば取得部45が取得した圧縮データファイルに格納された、複数の圧縮済データの数を示すデータに基づいて、複数の伸長済データを作成する複数の伸長処理部463の数を決定する。具体的には、図9に示す第2領域を参照することにより、データ割当部462は、圧縮済データの数が4であることを特定し、作成する伸長処理部463の数を4に決定する。なお、データ割当部462は、圧縮済データの数が、伸長部46が有する伸長処理部463の数よりも多い場合、それぞれの伸長処理部463に複数の圧縮済データを割り当てる。データ割当部462は、それぞれの伸長処理部463の計算量が均等になるように、配分する圧縮済データの数を調整して各伸長処理部463に割り当ててもよい。
【0111】
複数の伸長処理部463それぞれは、CPU又はGPUを構成する複数のコアまたはスレッドの一つ一つに対応しており、格納位置特定部461が特定した複数のデータ領域に格納された複数の圧縮済データを並列に伸長して複数の伸長済データを作成する。
【0112】
図16は、複数の伸長処理部463が複数の伸長済データを作成する動作を説明するための図である。図16においては、取得部45が取得した圧縮データファイルと複数の伸長処理部463が作成した複数の伸長済データを含む結合データとが示されている。
【0113】
図16に示す圧縮データファイルは、第1領域、第2領域及びデータ領域を含む。第1領域は、データ領域に含まれる複数の圧縮済データそれぞれの領域を示す複数の開始アドレスデータを含む領域である。第2領域は、データ領域に格納された複数の圧縮済データの数を示すデータを含む領域である。上述したように、開始アドレスデータとして、分割された圧縮済データのデータサイズを格納しておくことにより、伸長処理部463が各圧縮済データの先頭アドレスを認識できるようにしてもよい。
【0114】
図16に示す例の場合、データ割当部462は、圧縮済データ1を伸長処理部463aに、圧縮済データ2を伸長処理部463bに、圧縮済データ3を伸長処理部463cに、圧縮済データ4を伸長処理部463dに、それぞれ割り当てる。4つの伸長処理部463は、圧縮済データ1から圧縮済データ4を並列に伸長して複数の伸長済データを作成する。
【0115】
伸長処理部463aは、圧縮済データ1を伸長して、結合データのデータ位置0からデータ位置999に格納される伸長済データ1を作成する。伸長処理部463bは、圧縮済データ2を伸長して、結合データのデータ位置1000からデータ位置1999に格納される伸長済データ2を作成する。伸長処理部463cは、圧縮済データ3を伸長して、結合データのデータ位置2000からデータ位置2999に格納される伸長済データ3を作成する。伸長処理部463dは、圧縮済データ4を伸長して、結合データのデータ位置3000からデータ位置3999に格納される伸長済データ4を作成する。
【0116】
以上のように、データ割当部462が圧縮済データの数に基づいて伸長処理部463の数を決定し、複数の伸長処理部463が複数の圧縮済データを並列に伸長することで、データ伸長装置4は、圧縮済データを伸長するために要する時間を短縮することができる。
以下、伸長処理部463が有する伸長用変換部464及び伸長データ格納部465の動作の詳細を説明する。
【0117】
伸長用変換部464は、圧縮済データに含まれる圧縮変換データを、連続する複数の所定の値(例えば0x0000)の伸長変換データに変換する。圧縮変換データは、圧縮変換データであることを示すフラグデータと、複数の第1多値データが連続する数を示すレングスデータとを含む。圧縮変換データは、例えばビット幅が16ビットのデータであり、上位8ビットがフラグデータ(例えば16進数の0xFF)を示し、下位ビットがレングスデータを示す。
【0118】
伸長用変換部464は、圧縮済データに含まれる複数のデータにおけるフラグデータが圧縮変換データであることを示している場合に、圧縮変換データを、レングスデータが示す数の複数の伸長変換データ0x0000に変換する。伸長用変換部464は、取得したデータが0xFF64である場合、上位8ビットが示す0xFFが圧縮変換データを示していることを特定し、下位8ビットが示す0x64(10進数の100)を0x64個、すなわち100個の0x0000に変換する。
【0119】
伸長用変換部464は、圧縮済データに含まれる複数のデータそれぞれの上位8ビットがフラグデータではない場合(例えば16進数の0xFFとは異なる値を示す場合)、当該データは圧縮変換データではなく、圧縮されていない第2多値データ(すなわち黒色付近ではない輝度値のデータ)であると判定する。
【0120】
伸長データ格納部465は、伸長用変換部464が圧縮変換データを変換することにより作成した複数の伸長変換データ(0x0000)と圧縮済データに含まれる第2多値データとを結合することにより伸長済データを作成する。伸長データ格納部465は、作成した伸長済データを記憶部43に格納する。記憶部43には、複数の伸長処理部463それぞれが伸長済データを格納する領域が割り当てられており、伸長データ格納部465は、自身に割り当てられた領域に伸長済データを格納する。複数の伸長処理部463のそれぞれが複数の伸長済データを記憶部43に格納することで、記憶部43には、元データである三次元画像データと同じサイズの三次元画像データが格納される。
【0121】
出力部47は、複数の伸長処理部463が作成した複数の伸長済データを記憶部43から読み出して、読み出した複数の伸長済データを表示装置5に出力する。出力部47は、例えば、データ伸長装置4の使用者により指定されたスライス画像データに対応する伸長済データを表示装置5に出力する。出力部47は、所定のタイミングで順次伸長済データを表示装置5に出力してもよい。
【0122】
なお、伸長済データにおいては、元データにおける黒色付近の画素値(例えば0x00FE以下の画素値)が0x0000に置換されている。黒色付近の画素値が0x0000に置換されていたとしても、伸長済データに基づく画像を人が見た場合には、元データに基づく画像との違いを認識することが困難である。したがって、本実施の形態に係るデータ圧縮装置2及びデータ伸長装置4による圧縮処理及び伸長処理は、黒色付近の画素値が多い医療画像データの圧縮率を高め、高速に伸長するために好適である。
【0123】
<データ伸長装置4における動作の流れ>
図17及び図18は、データ伸長装置4における動作の流れを示すフローチャートである。図17は、伸長済データを作成する動作の流れを示すフローチャートである。図18は、伸長済データを作成する動作の流れを示すフローチャートである。図18に示すフローチャートは、図17に示すS55における動作の流れを示す。図17に示すフローチャートは、取得部45が取得した圧縮データファイルが記憶部43に格納されている時点から開始している。
【0124】
図17に示すように、格納位置特定部461は、圧縮データファイルに含まれる開始アドレスデータに基づいて、複数の圧縮済データが含まれる複数のデータ領域を特定する。伸長部46は、格納位置特定部461が特定した複数のデータ領域から圧縮済データを読み込む(S51)。伸長部46は、複数の圧縮済データそれぞれを伸長して作成する複数の伸長済データそれぞれの格納場所を割り当てる(S52)。
【0125】
データ割当部462は、複数の圧縮済データの数に基づいて伸長処理部463の数を決定する(S53)。データ割当部462は、決定した数の複数の伸長処理部463それぞれが伸長する圧縮済データと当該圧縮済データを伸長して作成した伸長済データを格納する場所とを、複数の伸長処理部463それぞれに割り当てる(S54)。
【0126】
複数の伸長処理部463それぞれは、データ割当部462から割り当てられた圧縮済データを伸長することにより伸長済データを作成する(S55)。伸長部46は、複数の伸長処理部463の全てが伸長済データを作成する動作を完了していない場合(S56のNO)、S55の動作を繰り返す。伸長部46は、複数の伸長処理部463の全てが伸長済データを作成する動作を完了した場合(S56のYES)、伸長処理を終了する。
以下、S55における伸長処理部463の動作の流れの詳細を説明する。
【0127】
図18に示すように、伸長処理部463は、圧縮済データの先頭位置を示す値をポインタpの値とし、伸長済データの先頭位置を示す値をポインタqの値とする(S61)。伸長処理部463は、変数xの値を、ポインタpが示す位置に格納された2バイトのデータの値にする(S62)。変数xは、圧縮済データに含まれる複数のデータのうち伸長処理部463が伸長する処理を実行する対象となるデータの値を示す変数である。伸長処理部463は、ポインタpの値を2バイト先の位置を示す値に更新する(S63)。2バイト先の位置は、S62において変数xが示すデータの後に伸長処理部463が伸長するデータが格納されている位置である。
【0128】
伸長処理部463は、変数xの上位バイトが0xFFである場合(S64のYES)、変数xが示すデータが圧縮変換データであると判定し、変数Lengthを変数xの下位バイトの値にする(S65)。変数Lengthは、圧縮変換データに含まれる第1多値データが連続する数を示す変数である。伸長処理部463は、変数jを0にすることにより変数jを初期化する(S66)。変数jは、第1多値データに変換した数を示す変数である。
【0129】
変数jが示す数が、変数Lengthが示す数よりも小さい場合(S67のYES)、伸長処理部463は、ポインタqが示す位置に第1多値データである「0」を書込み(S68)、ポインタqが示す位置を2バイト先の位置にする(S69)。続いて、伸長処理部463は、変数jが示す値を1増やし、S67の動作に戻る。変数jが示す値が、変数Lengthが示す数以上である場合(S67のNO)、伸長処理部463は、S68からS70の動作を終了し、S73の動作に進む。
【0130】
伸長処理部463は、変数xの上位バイトが0xFFではない場合(S64のNO)、変数xが示す値をポインタqが示す位置に書込み(S71)、ポインタqが示す位置を2バイト先の位置にする(S72)。伸長処理部463は、ポインタpが、図17に示すS54においてデータ割当部462が割り当てた圧縮済データの範囲を超えていない場合(S73のNO)、S62の動作に戻り、次のデータを伸長する。伸長処理部463は、ポインタpが、データ割当部462が割り当てた圧縮済データの範囲を超えた場合(S73のYES)、伸長済データを作成する動作を終了する。すなわち、一つの伸長処理部463における一つの圧縮済データの処理が終了する。
【0131】
<第2実施形態>
第1実施形態においては、圧縮済データに含まれる複数の多値データの全てのビット幅が16ビット又は8ビットであったが、これに限らない。第2実施形態に係るデータ圧縮装置2は、元データに含まれる複数の黒色付近データが連続している場合、連続している黒色付近データが示す値の最大値に応じて、連続する黒色付近データのビット幅を削減することにより圧縮済データを作成する。なお、第2実施形態に係るデータ圧縮装置2の機能ブロック図は、図8と同じであり、第2実施形態に係るデータ伸長装置4の機能ブロック図は、図15と同じである。
【0132】
まず、第2実施形態に係るデータ圧縮装置2の動作を説明する。第2実施形態の説明においては、元データに含まれる所定の範囲内の値(例えば黒色付近の輝度値)を有する多値データを初期多値データという。
圧縮用変換部272は、連続する複数初期多値データが示す値を参照することにより、連続する複数の初期多値データの最大値を特定する。圧縮用変換部272は、連続する複数の初期多値データのビット幅を、黒色付近の所定の範囲内の最大値を表現可能なビット幅に削減した複数の削減多値データを作成する。
【0133】
最大値を表現可能なビット幅は、初期多値データの最大値を表すために必要な最小ビット幅以上であり、初期多値データのビット幅よりも小さいビット幅である。具体的には、16ビット幅の初期多値データの最大値が255以下である場合、第3多値データのビット幅は8ビット以上16ビット未満であり、初期多値データの最大値が15以下である場合、第3多値データのビット幅は4ビット以上16ビット未満である。
【0134】
より具体的には、圧縮用変換部272は、連続する16ビット幅の初期多値データの最大値が255以下の0x0000以上0x00FF以下の0x00ZZ(Zは16進数の0からFのいずれかの値)である場合、初期多値データを0xZZの8ビット幅の削減多値データに変換する。圧縮用変換部272は、連続する16ビット幅の初期多値データの最大値が255以下の0x0000以上0x000F以下の0x000Z(Zは16進数の0からFのいずれかの値)である場合、初期多値データを0xZの4ビット幅の削減多値データに変換する。
【0135】
圧縮用変換部272は、作成した削減多値データと、削減多値データが連続する数を示すレングスデータと、削減多値データの存在を示すフラグデータと、を含む圧縮変換データとを作成する。圧縮用変換部272は、削減多値データのビット幅を示すビット幅データを含む圧縮変換データを作成してもよい。
【0136】
図19は、第2実施形態に係る圧縮変換データの一例を示す図である。図19(a)は、ビット幅が8ビットの削減多値データを含む圧縮変換データの一例を示す。図19(b)は、ビット幅が4ビットの削減多値データを含む圧縮変換データの一例を示す。図19(c)は、ビット幅が2ビットの削減多値データを含む圧縮変換データの一例を示す。
【0137】
図19に示す圧縮変換データにおいては、先頭の2バイトのうち0xFFFが、削減多値データの存在を示すフラグデータであり、フラグデータの後に含まれる4ビットのデータがビット幅を示すビット幅データである。図19(a)に示すビット幅データ0xDは、ビット幅が8ビットであることを示し、図19(b)に示すビット幅データ0xEは、ビット幅が4ビットであることを示し、図19(c)に示すビット幅データ0xFは、ビット幅が2ビットであることを示す。
【0138】
図19に示すフラグデータ及びビット幅データの後に含まれる16ビットのデータL1、データL2及びデータL3は、レングスデータである。図19に示すように、レングスデータの後には、ビット幅データが示すビット幅の削減多値データが、レングスデータが示す数だけ連続する。
【0139】
圧縮用変換部272がこのように、連続する初期多値データのビット幅を削減した削減多値データを用いて圧縮変換データを作成することで、圧縮用変換部272は、連続する初期多値データが示す値の最大値に応じた圧縮変換データを作成することができる。この圧縮変換データにおいては、元データにおける所定の範囲内の輝度値の初期多値データの輝度値が、実質的には他の輝度値に変換されないので、データ伸長装置4は、削減多値データに基づいて、元データと完全に同一の伸長データを復元することができる。
【0140】
圧縮用変換部272は、圧縮変換データと、一以上の所定範囲外の値の多値データ(以下、第1実施形態と同様に第2多値データという)とを結合することにより圧縮済データを作成する。具体的には、圧縮用変換部272は、初期多値データのビット幅を削減した削減多値データ、フラグデータ、ビット幅データ及びレングスデータを含む圧縮変換データと、第2多値データとにより構成される圧縮済データを作成する。
【0141】
以下、第2実施形態に係るデータ伸長装置4の動作を説明する。
取得部45は、削減多値データを含む圧縮変換データと第2多値データとを結合した圧縮済データを取得する。圧縮変換データは、連続する複数の初期多値データの第1ビット幅よりも少ない第2ビット幅で表現可能な複数の削減多値データと、削減多値データの存在を示すフラグデータと、削減多値データが連続する数を示すレングスデータとを含む。第1ビット幅が16ビットである場合、第2ビット幅は、例えば図19に示す削減多値データのビット幅である8ビット、4ビット又は2ビットである。
【0142】
伸長用変換部464は、削減多値データの第2ビット幅を、初期多値データのビット幅である第1ビット幅に拡張することにより、圧縮変換データをレングスデータが示す数の複数の初期多値データに変換する。例えば第2ビット幅が8ビットであり、第1ビット幅が16ビットである場合、伸長用変換部464は、圧縮変換データに含まれる削減多値データ(8ビット)の上位に「0」を示す8ビットを結合することにより、削減多値データを初期多値データに変換する。具体的には、第3多値データが0xZZである場合、伸長用変換部464は、削減多値データを0x00ZZに変換する。
【0143】
伸長用変換部464は、例えば、圧縮変換データに含まれるビット幅データを参照することにより第2ビット幅を特定し、削減多値データのビット幅を、黒色付近データのビット幅である第1ビット幅に拡張することにより、削減多値データを初期多値データに変換する。伸長用変換部464は、例えば、第1ビット幅と、特定した第2ビット幅との差に対応する「0」を示すデータを、削減多値データの上位ビットとして結合することにより、削減多値データを初期多値データに変換する。
【0144】
[変形例]
以上の説明においては、データ圧縮装置2がMIP画像データを圧縮し、データ伸長装置4が圧縮済データを伸長することにより画像データを出力したが、データ圧縮装置2が圧縮する対象となる元データの種別、及びデータ伸長装置4が出力するデータの種別は画像データに限らない。データ圧縮装置2は、任意の多値データを圧縮し、データ伸長装置4は、圧縮済データに基づく任意の多値データを出力してもよい。一例として、取得部26は、光を被検査体に照射することにより被検査体が発する超音波信号を取得した光超音波センサが出力した、超音波信号に対応する出力信号に基づくデータを元データとして取得し、圧縮処理部270は当該データを圧縮してもよい。
【0145】
[実験による効果確認]
本願の発明者は、本実施形態に係るデータ圧縮装置2により1760×2480画素の256枚のスライス画像データを圧縮した圧縮データファイルをデータ伸長装置4により伸長した時間を測定した。データ伸長装置4のCPUとして、Intel(登録商標)のCore i9-9980XE CPU(3.00GHz)を使用した。
【0146】
図20は、実験結果を示す図である。図20における横軸は、黒色の輝度値以外の輝度値に対応する第2多値データの割合を示し、縦軸は伸長時間(デコード時間)を示す。実線は8つのコアで並列処理をした場合のデータであり、破線は4つのコアで並列処理をした場合のデータであり、一点鎖線は2つのコアで並列処理をした場合のデータであり、二点鎖線は1つのコアで並列処理をした場合のデータである。
【0147】
図20に示すように、第2多値データの割合が少ないほど伸長時間は短くなっており、本実施形態に係る圧縮方式及び伸長方式が、背景画像の領域の割合が多い医療画像データに好適であることがわかる。また、コア数の増加に伴い伸長時間も短縮され、8コアで並列処理をすると、第2多値データの割合が10%あるとしても0.3秒以下で伸長されている。本実施形態に係る圧縮方式及び伸長方式を用いる場合には、このように短時間で伸長することができるので、複数の圧縮済データに基づく複数の画像を確認する場合に特に好適である。
【0148】
比較例として、同じCPUを用いて従来のZIP形式の画像データを伸長したところ、8つのコアを使用した場合に約8秒、4つのコアを使用した場合に約8.3秒、2つのコアを使用した場合に約9.5秒、1つのコアを使用した場合に約10.6秒を要した。このように、本実施形態に係る圧縮方式及び伸長方式を用いることで、大幅に伸長時間の短縮が可能であることを確認できた。
【0149】
[データ圧縮装置2及びデータ伸長装置4による効果]
以上説明したように、データ圧縮装置2は、データ伸長装置4が複数の伸長処理部463を用いて並列に圧縮済データの伸長処理を実行できるように構成された圧縮データファイルを作成する。そして、データ伸長装置4は、複数の伸長処理部463を有しており、圧縮データファイルにおける複数のデータ領域に格納された複数の圧縮済データを並列に伸長して複数の伸長済データを作成する。データ伸長装置4が、このように複数の圧縮済データを並列に伸長することができるため、圧縮済データを伸長するために要する時間を短縮することができる。
【0150】
なお、以上の説明においては、圧縮方法としてランレングス圧縮を例に説明したが、本実施形態は、ランレングス圧縮以外の圧縮方法(例えばLZ圧縮)にも適用できる。
【0151】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の全部又は一部は、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を併せ持つ。
【符号の説明】
【0152】
1 測定装置
2 データ圧縮装置
3 外部記憶装置又は通信路
4 データ伸長装置
5 表示装置
20 画像データ作成部
21 データ圧縮部
22 信号処理部
23 IOポート
24 記憶部
25 制御部
26 取得部
27 圧縮部
28 出力部
29 入力デバイス
30 表示装置
41 データ伸長部
42 IOポート
43 記憶部
44 制御部
45 取得部
46 伸長部
47 出力部
110 支持台
111 支持面
112 開口
120 センサユニット
121 容器
122 センサ
123 素子保持部
124 音響整合材
125 走査機構
130 分離部
131 音響整合材
140 光源
141 光学系
142 光出射口
270 圧縮処理部
271 多値データ処理部
272 圧縮用変換部
274 データ割当部
275 圧縮データ結合部
461 格納位置特定部
462 データ割当部
463 伸長処理部
464 伸長用変換部
465 伸長データ格納部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20