(57)【要約】【課題】立体を表す立体データを非可逆圧縮し、伸張（復号）した場合でも、本来立体が存在しない領域のノイズをカットできるようにする。【解決手段】符号化装置１００は、立体を表すボクセルデータを３次元ＤＣＴ部１０４、量子化部１０６及び符号化部１０８で処理することにより、データ圧縮された符号化データ２０を生成する。また、符号化装置１００は、構造データ生成部１１０により、ボクセルデータ１０における各格子位置でのボクセルの有無を示す構造データ２２を生成する。符号化データ２０と構造データ２２を受け取った復号装置は、符号化データ２０を復号し、復号結果のボクセルデータのうち、構造データ２２にボクセルがないと示されている格子位置のボクセルを削除する。【選択図】図１
2019165290.tif 000002
【特許請求の範囲】
【請求項１】
立体を、空間内の格子位置に配置されたそれぞれが属性値を持つボクセルの集まり、で表現した立体データから、各格子位置におけるボクセルの有無を示す構造データを抽出する抽出手段と、
前記立体データの前記各格子位置の前記属性値に対して非可逆圧縮を行い、圧縮データを生成する圧縮手段と、
前記構造データと前記圧縮データとを対応付けて出力する出力手段と、
を含む符号化装置。
【請求項２】
前記構造データに対して符号化を行う構造符号化手段であって、隣り合う１以上の格子位置からなる注目構造要素の構造データに対応する構造符号を、前記注目構造要素の周囲の所定の１以上の格子位置におけるボクセルの有無を表すコンテクスト情報に応じて決定する構造符号化手段、を更に含み、
前記出力手段は、前記構造データに代えて、前記構造符号化手段が決定した構造符号からなる符号化構造データを、前記圧縮データと対応付けて出力する、請求項１に記載の符号化装置。
【請求項３】
前記構造データの符号化のための構造用符号表を前記コンテクスト情報の値ごとに有し、
前記構造符号化手段は、前記注目構造要素の構造データに対応する構造符号を、前記注目構造要素についての前記コンテクスト情報の値に対応する前記構造用符号表を用いて決定する、請求項２に記載の符号化装置。
【請求項４】
前記構造符号化手段は、互いに隣り合う複数の格子位置の組を前記注目構造要素とし、前記注目構造要素に含まれる各格子位置におけるボクセルの有無の組合せを示す構造データを、その注目構造要素の三次元的に周囲にある所定の複数の格子位置におけるボクセルの有無を表す前記コンテクスト情報を用いて符号化する、請求項２又は３に記載の符号化装置。
【請求項５】
前記ボクセルに接する前記ボクセルがない格子位置に対して、当該格子位置の近傍の１以上の前記ボクセルの属性値から求めた属性値を持つボクセルを追加する追加手段、を更に含み、
前記圧縮手段は、前記追加手段により前記ボクセルが追加された前記立体データに対して前記非可逆圧縮を行う、符号化装置。
【請求項６】
コンピュータを、
立体を、空間内の格子位置に配置されたそれぞれが属性値を持つボクセルの集まり、で表現した立体データから、各格子位置におけるボクセルの有無を示す構造データを抽出する抽出手段、
前記立体データの前記各格子位置の前記属性値に対して非可逆圧縮を行い、圧縮データを生成する圧縮手段、
前記構造データと前記圧縮データとを対応付けて出力する出力手段、
として機能させるためのプログラム。
【請求項７】
請求項１に記載の符号化装置が出力した、互いに対応する前記構造データと前記圧縮データを入力する手段と、
前記圧縮データに対して、前記非可逆圧縮に対応する伸張処理を行うことで、各格子位置についての伸張データを生成する手段と、
前記構造データにボクセルが無いと示されている格子位置については、前記伸張データにおける当該格子位置の属性値を、ボクセルが無いことを示す値に変える手段と、
を含む復号装置。
【請求項８】
コンピュータを、
請求項１に記載の符号化装置が出力した、互いに対応する前記構造データと前記圧縮データを入力する手段、
前記圧縮データに対して、前記非可逆圧縮に対応する伸張処理を行うことで、各格子位置についての伸張データを生成する手段、
前記構造データにボクセルが無いと示されている格子位置については、前記伸張データにおける当該格子位置の属性値を、ボクセルが無いことを示す値に変える手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置、復号装置及びプログラムに関する。
【背景技術】
【０００２】
３Ｄプリンタ（立体印刷機）等の立体造形装置が普及しつつある。３Ｄプリンタ用のデータ形式としては、例えばＳＴＬ（Standard Triangulated Language）形式や３ＤＳ形式のように、立体形状をポリゴンのメッシュ表現で記述する形式が広く用いられている。
【０００３】
また、出願人等は、３Ｄプリンタで造形する立体のモデルをボクセル表現で記述する「ＦＡＶ」というデータ形式を提案している（非特許文献１）。ＦＡＶ形式は、ボクセルに色、材質、他のボクセルとのリンク強度等の様々な属性を持たせることで、立体形状以外の様々な特性を表現することができる。
【０００４】
２次元のフルカラー画像のビットマップ表現のデータ量が膨大なものとなることから類推できるように、立体を表現するボクセル形式のデータ（ボクセルデータと呼ぶ）は、特に色等の多様な属性をボクセルに持たせた場合、非常に膨大なデータ量となる。ボクセルデータのデータ量を削減できる符号化方法が求められる。
【０００５】
特許文献１に開示された方法では、記憶媒体に記憶された原テクスチャ画像は、離散コサイン変換部において空間変換されて、空間周波数画像データになる。ポリゴン計算部は、ポリゴンの大きさを計算し、貼り付けるべきテクスチャの解像度比を計算する。空間低域濾過器は、テクスチャの解像度比に対応したカットオフ周波数において、空間周波数画像データを低域濾過する。濾過された空間周波数画像データは、逆空間変換された後、所定の大きさのミップマップ画像に縮小される。
【０００６】
ＣＴ（Computed Tomography）等で得られたボリュームデータに対してＤＣＴ（離散コサイン変換）等の周波数変換を施し、変換結果の高周波成分をカットすることで、データ量を削減する技術が知られている（非特許文献２及び３）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平７−２３０５５５号公報
【非特許文献】
【０００８】
【非特許文献１】高橋智也、藤井雅彦、"世界最高水準の表現力を実現する次世代3Dプリント用データフォーマット「FAV（ファブ）」"、［online］、富士ゼロックステクニカルレポート、No.26、2017、［平成30年1月26日検索］、インターネット〈URL：https://www.fujixerox.co.jp/company/technical/tr/2017/pdf/s_07.pdf〉
【非特許文献２】森下広之、大野義夫、情報処理学会研究報告グラフィクスとCAD（CG） 1995(63(1995-CG-075)), 9-16, 1995-07-14
【非特許文献３】春山晃一、梅津信幸、映像情報メディア学会冬季大会講演予稿集 (2001), 90, 2001-12-06
【非特許文献４】高橋智也、藤井雅彦、"世界最高水準の表現力を実現する次世代3Dプリント用データフォーマット「FAV（ファブ）」"、［online］、富士ゼロックステクニカルレポート、No.26、2017、［平成30年1月26日検索］、インターネット〈URL：https://www.fujixerox.co.jp/company/technical/tr/2017/pdf/s_07.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００９】
３Ｄプリンタ等で造形する立体を表現するモデリングデータはスパース（疎ら）である。すなわち、立体の形状を規定する座標系の格子位置の中には立体が存在しない格子位置が多く存在する。そのようなモデリングデータに対して、単純に非可逆圧縮を行った場合、圧縮データを復号すると、立体の存在する領域と立体の存在しない領域との境界近傍にモスキートノイズが生じ、立体の存在しない領域の格子位置に立体の属性を示す値が現れることがある。このような復号データを用いて造形を行うと、本来立体が存在しないはずの位置に立体の一部が造形されてしまうことになる。
【００１０】
本発明は、立体を表す立体データを非可逆圧縮し、伸張（復号）した場合でも、本来立体が存在しない領域のノイズをカットできるような仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１１】
請求項１に係る発明は、立体を、空間内の格子位置に配置されたそれぞれが属性値を持つボクセルの集まり、で表現した立体データから、各格子位置におけるボクセルの有無を示す構造データを抽出する抽出手段と、前記立体データの前記各格子位置の前記属性値に対して非可逆圧縮を行い、圧縮データを生成する圧縮手段と、前記構造データと前記圧縮データとを対応付けて出力する出力手段と、を含む符号化装置である。
【００１２】
請求項２に係る発明は、前記構造データに対して符号化を行う構造符号化手段であって、隣り合う１以上の格子位置からなる注目構造要素の構造データに対応する構造符号を、前記注目構造要素の周囲の所定の１以上の格子位置におけるボクセルの有無を表すコンテクスト情報に応じて決定する構造符号化手段、を更に含み、前記出力手段は、前記構造データに代えて、前記構造符号化手段が決定した構造符号からなる符号化構造データを、前記圧縮データと対応付けて出力する、請求項１に記載の符号化装置である。
【００１３】
請求項３に係る発明は、前記構造データの符号化のための構造用符号表を前記コンテクスト情報の値ごとに有し、前記構造符号化手段は、前記注目構造要素の構造データに対応する構造符号を、前記注目構造要素についての前記コンテクスト情報の値に対応する前記構造用符号表を用いて決定する、請求項２に記載の符号化装置である。
【００１４】
請求項４に係る発明は、前記構造符号化手段は、互いに隣り合う複数の格子位置の組を前記注目構造要素とし、前記注目構造要素に含まれる各格子位置におけるボクセルの有無の組合せを示す構造データを、その注目構造要素の三次元的に周囲にある所定の複数の格子位置におけるボクセルの有無を表す前記コンテクスト情報を用いて符号化する、請求項２又は３に記載の符号化装置である。
【００１５】
請求項５に係る発明は、前記ボクセルに接する前記ボクセルがない格子位置に対して、当該格子位置の近傍の１以上の前記ボクセルの属性値から求めた属性値を持つボクセルを追加する追加手段、を更に含み、前記圧縮手段は、前記追加手段により前記ボクセルが追加された前記立体データに対して前記非可逆圧縮を行う、符号化装置である。
【００１６】
請求項６に係る発明は、コンピュータを、立体を、空間内の格子位置に配置されたそれぞれが属性値を持つボクセルの集まり、で表現した立体データから、各格子位置におけるボクセルの有無を示す構造データを抽出する抽出手段、前記立体データの前記各格子位置の前記属性値に対して非可逆圧縮を行い、圧縮データを生成する圧縮手段、前記構造データと前記圧縮データとを対応付けて出力する出力手段、として機能させるためのプログラムである。
【００１７】
請求項７に係る発明は、請求項１に記載の符号化装置が出力した、互いに対応する前記構造データと前記圧縮データを入力する手段と、前記圧縮データに対して、前記非可逆圧縮に対応する伸張処理を行うことで、各格子位置についての伸張データを生成する手段と、前記構造データにボクセルが無いと示されている格子位置については、前記伸張データにおける当該格子位置の属性値を、ボクセルが無いことを示す値に変える手段と、を含む復号装置である。
【００１８】
請求項８に係る発明は、コンピュータを、請求項１に記載の符号化装置が出力した、互いに対応する前記構造データと前記圧縮データを入力する手段、前記圧縮データに対して、前記非可逆圧縮に対応する伸張処理を行うことで、各格子位置についての伸張データを生成する手段、前記構造データにボクセルが無いと示されている格子位置については、前記伸張データにおける当該格子位置の属性値を、ボクセルが無いことを示す値に変える手段、として機能させるためのプログラムである。
【発明の効果】
【００１９】
請求項１、６、７又は８に係る発明によれば、立体を表す立体データを非可逆圧縮し、伸張（復号）した場合でも、本来立体が存在しない領域のノイズをカットできる。
【００２０】
請求項２、３に係る発明によれば、圧縮データと対応付けられる構造データについてもデータ圧縮することができる。
【００２１】
請求項４に係る発明によれば、構造データを格子位置ごとに符号化する方式よりも、符号化効率を向上させることができる。
【００２２】
請求項５に係る発明によれば、立体データが示す立体の表面に起因する非可逆圧縮のノイズが、圧縮データの復号結果においてその立体の内部に現れることを防止または低減することができる。
【図面の簡単な説明】
【００２３】
【図１】実施形態の符号化装置の構成を例示する図である。
【図２】３次元ＤＣＴ部の処理を説明するための図である。
【図３】３次元ＤＣＴ部の内部構成を例示する図である。
【図４】実施形態の復号装置の構成を例示する図である。
【図５】変形例の符号化装置の構成を例示する図である。
【図６】複数の格子位置からなる構造要素と、それに対応するコンテクスト情報を構成する格子位置群の例を示す図である。
【図７】構造要素の符号化の仕組みを説明するための図である。
【図８】更なる変形例の符号化装置の構成を例示する図である。
【発明を実施するための形態】
【００２４】
図１を参照して、本発明に係る符号化装置の一実施形態を説明する。
【００２５】
図１に示す符号化装置１００は、ブロック切り出し部１０２、３次元ＤＣＴ部１０４、量子化部１０６、符号化部１０８、構造データ生成部１１０を含む。
【００２６】
この装置にはボクセルデータ１０が入力される。ボクセルデータ１０は、例えば三次元造形装置において造形する立体を、ボクセルの集まりによって規定するデータである。ボクセルは、立体の構成単位となる要素であり、その立体の形状を内包する三次元空間をｘ，ｙ，ｚの各座標軸に平行な等間隔の直線で格子状に区切ることでできる賽の目状の個々の小空間に収容される。この小空間のことを、以下では格子位置又はセルと呼ぶ。小空間は立方体形状であり、典型的な例ではボクセルはその小空間全体を占める立方体形状の要素であるが、ボクセルの形状はこれに限定されない。個々のボクセルは、色、材質、隣接ボクセルとの関係性の強さ（例えば接合の強度を表す）等の、１以上の属性を持つ。空間内の格子位置の中には、立体を構成するボクセルが有る格子位置と、そのようなボクセルが無い格子位置とがある。ボクセルデータ１０には、個々の格子位置ごとに、その格子位置におけるボクセルの有無を示す情報と、ボクセルが有る格子位置についてはそのボクセルが持つ１以上の属性の値を示す情報と、が含まれる。非特許文献１に示されるＦＡＶ形式は、このようなボクセルデータ１０を表現可能なデータ形式の一例である。
【００２７】
ブロック切り出し部１０２は、ボクセルデータ１０からブロックを切り出す。図２の（０）に示す例では、ブロック３００は、例えば縦、横、奥行き方向のそれぞれについて所定数（例えば８個）のボクセルからなるかたまりである。
【００２８】
３次元ＤＣＴ部１０４は、ブロック切り出し部１０２が切り出したブロックに対して、３次元の離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）を行う。
【００２９】
一つの例では、３次元ＤＣＴ部１０４は、図３に示す処理を行う。すなわち、まず３次元ＤＣＴ部１０４は、図２の（１）に示すように、そのブロック３００に対して所定（すなわち予め定めた）方向、例えばｘ方向、に沿って１次元ＤＣＴ１０４１を実行する。すなわち、この場合、z座標が一定であるレイヤ（層）内で、ｙ座標が同じ列ごとに、その列内のＸ方向に並んだボクセルの属性値（例えば色の値）に対してＤＣＴを行う。このような処理をｚ座標が異なるレイヤごとに実行する。なお、列内には、ボクセルがない格子位置も存在するが、そのような格子位置については、例えば所定の属性値（例えば０）、隣接するボクセルの属性値、又は周囲のボクセル群（例えば当該格子位置を含むブロックに属するボクセル群）の属性値の平均値、等で穴埋め（パディング）した上で、１次元ＤＣＴを行う。ある列についての１次元ＤＣＴの処理結果は、その列の各ボクセルの値に上書きされる。次に３次元ＤＣＴ部１０４は、１次元ＤＣＴ１０４１の処理結果であるブロックに対して、ある座標軸（例えばｚ軸）回りの９０度回転１０４３の処理を施す。次に３次元ＤＣＴ部１０４は、図２の（２）に示すように、その回転後のブロックに対して、先ほどと同じ方向に１次元ＤＣＴ１０４５を実行する。ブロックは９０度回転した後なので、この１次元ＤＣＴ１０４５は、先ほどの１次元ＤＣＴ１０４１とは異なる座標軸方向のＤＣＴとなる。次に３次元ＤＣＴ部１０４は、１次元ＤＣＴ１０４５の処理結果のブロックに対して、先ほどの９０度回転１０４３とは異なる座標軸を回転軸とする９０度回転１０４７を施す。そして、３次元ＤＣＴ部１０４は、図２の（３）に示すように、その回転後のブロックに対して、先ほどと同じ方向に１次元ＤＣＴ１０４９を実行する。この１次元ＤＣＴ１０４９は、１次元ＤＣＴ１０４１とも１次元ＤＣＴ１０４５とも異なる座標軸の方向のＤＣＴである。以上の処理により、ブロックに対して３次元ＤＣＴが施される。
【００３０】
図１の説明に戻る。量子化部１０６は、３次元ＤＣＴ部１０４から出力される各ブロックの３次元ＤＣＴ結果のデータに対して、公知の量子化処理を施す。これによりデータ量が削減されるが、この符号化装置１００の処理は量子化を伴う非可逆な圧縮処理なので、圧縮結果の符号化データを復号しても元のボクセルデータとまったく同じデータには戻らない。ボクセルデータの場合も、画像のＪＰＥＧ圧縮の場合と同様、このような圧縮で得られた符号化データを復号した場合、モスキートノイズ等のノイズが生じる。
【００３１】
符号化部１０８は、量子化部１０６による量子化結果のデータに対して、エントロピー符号化等の公知の符号化処理を施すことで、ボクセルデータ１０についての符号化データ（圧縮データ）２０を生成する。
【００３２】
構造データ生成部１１０は、ブロック切り出し部１０２が切り出したブロックの各格子位置（セル）におけるボクセルの有無を示す構造データ２２を生成する。構造データは、各格子位置におけるボクセルの有無を示す値（１つの格子位置当たり１ビットで表現できる）を、格子位置の所定の配列順序に従って並べたデータである。なお、ボクセルデータ１０がＦＡＶ形式の場合、ボクセルデータ１０は、各格子位置におけるボクセルの有無を示す「voxel_map」という名前のデータを含んでいるので、構造データ生成部１１０は、ボクセルデータ１０からその「voxel_map」を抽出し、この「voxel_map」から当該ブロック内の各セルの情報を抽出することで構造データ２２を生成すればよい。
【００３３】
符号化部１０８が生成した符号化データ２０と構造データ生成部１１０が生成した構造データ２２は、互いに対応付けがなされた状態で出力される。
【００３４】
次に、符号化データ２０を復号する復号装置２００の例を、図４を参照して説明する。
【００３５】
復号装置２００は、復号部２０２、逆量子化部２０４、３次元逆ＤＣＴ部２０６、マスク処理部２０８を有する。この復号装置２００には、符号化データ２０とこれに対応する構造データ２２が入力される。復号装置２００は、圧縮されている符号化データ２０を復号（伸張）する。
【００３６】
復号部２０２は、入力された符号化データ２０を、符号化部１０８の符号化処理に対応する復号処理により復号する。逆量子化部２０４は、復号部２０２の復号結果を逆量子化する。３次元逆ＤＣＴ部２０６は、逆量子化結果のデータに対して、逆ＤＣＴ処理を実行する。これにより、周波数空間の情報が実空間の属性値に戻る。
【００３７】
このように復元されたボクセルデータは量子化によるノイズを含んでいるので、ボクセルがない（したがって属性値もない）格子位置に属性値が現れる場合がある。造形目的のボクセルデータの場合、本来ボクセルがない格子位置に属性値が現れると、その格子位置が造形されてしまうことになり、本来とは異なる形状が造形されることとなる。このような事態を防ぐため、復号装置２００は、マスク処理部２０８を備える。
【００３８】
マスク処理部２０８は、符号化データ２０に対応する構造データ２２を参照して、各格子位置の復号結果（すなわち３次元逆ＤＣＴ部２０６の出力）の属性値のうち、元のボクセルデータ１０においてボクセルがない格子位置の値をマスク（すなわちボクセルがないことを示す値に変更）する。マスク処理部２０８から出力されるボクセルデータは、非可逆圧縮を経ているので、各ボクセルの属性値は元のボクセルデータ１０とはまったく同じではない場合があるが、三次元形状は元のボクセルデータ１０のものと同じになる。
【００３９】
次に、図５〜図７を参照して、本実施形態の変形例を説明する。
【００４０】
上記実施形態では、構造データ２２は生データであった。これに対してこの変形例の符号化装置１００は、構造データ生成部１１０が生成した構造データ２２を圧縮符号化する構造符号化部１１２を備える。構造符号化部１１２は、構造データ２２に対してコンテクストベースの圧縮符号化を行う。なお、図５では、構造データ生成部１１０はブロック切り出し部１０２が生成したブロックから構造データを生成しているが、この代わりに、ブロック切り出し部１０２に対して入力されるボクセルデータ１０から構造データを生成してもよい。この点は，図１に示す装置構成の場合も同様である。
【００４１】
この圧縮符号化のために、構造符号化部１１２は、ボクセルデータ１０からコンテクスト情報を生成し、このコンテクスト情報に基づいて構造データを圧縮する。コンテクスト情報は、注目する格子位置（その格子位置にボクセルがない場合もあるが、便宜上「注目ボクセル」と呼ぶ）に対して、三次元的に周囲にある所定の１以上の格子位置におけるボクセルの有無の組である。
【００４２】
例えば、図６に示す例では、ボクセルデータ１０の注目レイヤ内で２×２の行列状に互いに隣接する４つのボクセルを注目ボクセルとし、注目レイヤ内でその注目ボクセル群に隣接する４つの参照格子位置（便宜上、「参照ボクセル」と呼ぶ）と、４つの注目ボクセルの直下の４つの参照ボクセルと、からなる８個の参照ボクセルにおけるボクセルの有無の組合せをコンテクスト情報とする。ここでは、同一レイヤ（すなわちｚ座標が同じ格子位置群からなる層）内では、ｘ方向をレイヤ内の主走査方向、ｙ方向を副走査方向とするジグザグ走査で符号化（及び復号）を進めると共に、１レイヤの符号化（復号）が終わるとｚ方向に次のレイヤの符号化（及び復号）に進む。現在符号化（又は復号）が進行しているレイヤが注目レイヤであり、注目レイヤ内で現在符号化（又は復号）の対象となっている格子位置の組が注目する構造要素（すなわち図示した４つの注目ボクセルの組）である。一つの例では、注目レイヤ内の参照ボクセルは、注目する構造要素に対して、主走査方向及び副走査方向に関して手前側（すなわち符号化又は復号の際には当該参照ボクセルの値が既知）に隣接する格子位置である。また、直下レイヤは、符号化又は復号が進むｚ方向を上向きと見たときに、符号化の進行方向に沿って注目レイヤの１つ手前のレイヤである。
【００４３】
この例は、構造データについては、図示のように隣接する４つの注目ボクセルの組を１つの構造要素とし、構造要素単位で符号化を行う。すなわち、注目レイヤ内の構造データの符号化では、２×２の４ボクセルごとに符号を決定する。構造要素内の４つの注目ボクセルには、例えば図示のような順序が規定されている。ある構造要素についての構造データは、その構造要素に含まれる各注目ボクセルの格子位置におけるボクセルの有無を示す値（例えば０、１を表す１ビットの値で表現）を、その順序に従って並べてできる値である。同様に、参照ボクセルについても、例えば図示のような順序が規定されている。コンテクスト情報は、それら各参照ボクセルの格子位置におけるボクセルの有無を示す値を、その順序に従って並べた値である。
【００４４】
図７を参照して、構造符号化部１１２が行う構造データの符号化処理の例を説明する。この例は、図６に例示した注目ボクセル及び参照ボクセルを用いる場合のものである。
【００４５】
この例では、構造符号化部１１２は、コンテクスト情報の値ごとに、その値に対応する符号表を有している。図６の例では、コンテクスト情報は、８つの参照ボクセルの位置（格子位置）におけるボクセルの有無を示す８ビットの値なので、符号表は２の８乗（すなわち２５６）個用意される（図示の符号表＃０〜＃２５５）。個々の符号表には、符号化の対象である注目構造要素の構造データ（図中「注目構造データ」と表記）の値ごとに、その値に対応する符号語が登録されている。図６の例では、注目構造要素は、４つの注目ボクセルであり、注目構造データはそれら４つの注目ボクセルの位置におけるボクセルの有無を示す４ビットの値である。これらコンテクスト情報ごとの符号表は、符号化対象となるボクセルデータ１０を一度走査し、そのボクセルデータ１０内の構造要素の構造データとコンテクスト情報との組合せの出現頻度を求め、その出現頻度の情報に基づいて、当該ボクセルデータに最適化されたものとして生成してもよい。また、過去の数多くのボクセルデータの例から求められたコンテクスト情報ごとの符号表の組を構造符号化部１１２に登録しておき、これらを符号化に用いてもよい。
【００４６】
構造符号化部１１２は、構造データ生成部１１０が生成した構造データから注目構造要素の値（注目構造データ）を読み出し、その注目構造要素に対応するコンテクスト情報を生成する。そして、構造符号化部１１２は、そのコンテクスト情報に対応する符号表において、その注目構造データに対応する符号語を、その注目構造データの符号化結果である構造符号として出力する。この処理により、構造データは符号化構造データ２２ａに変換される。
【００４７】
この変形例の符号化装置１００に対応する復号装置２００は、符号化構造データ２２ａから構造データを復号し、その構造データをマスク処理部２０８に供給すればよい。この復号では、既に得られている格子位置の復号結果（ボクセルの有無や色値）からコンテクスト情報を求め、そのコンテクスト情報に対応する符号表から、復号対象の符号が示す情報を読み出す。すなわち、ある構造符号を復号する場合、復号装置２００は、構造符号用の符号表のうち、その構造符号に対応する構造要素についてのコンテクスト情報に対応する符号表（図６参照）を特定し、その構造符号に対応する注目構造データの値をその符号表から読み出し、これを復号結果とする。この変形例では、構造情報の符号化を複数のボクセルからなる構造要素を単位として行うので、ボクセル単位で符号化する場合よりも、符号化効率が向上する。
【００４８】
次に図８を参照して別の変形例を説明する。
【００４９】
この変形例の符号化装置１００は、ボクセル追加部１０１を有する。ボクセル追加部１０１は、ボクセルデータ１０のボクセルがない格子位置のうちボクセルに隣接する格子位置（便宜上「格子位置Ｘ」と呼ぶ）に対して、格子位置Ｘの近傍の１以上のボクセルの属性値に応じて決まる属性値を持つボクセルと追加する。
【００５０】
ここで格子位置Ｘの「近傍」は、例えば、格子位置（セル）Ｘに対して隣接する格子位置（例えば当該セルに面で接する６近傍、辺で接するものを加えた１８近傍、又は更に点で接するものを加えた２６近傍等）としてもよい。また、格子位置Ｘに隣接する格子位置に対して隣接する格子位置（すなわち格子位置Ｘから２セル分の距離にある格子位置）までを「近傍」としてもよい。一般化すると、格子位置Ｘから予め定めたセル数の距離以内にある格子位置（セル）群を「近傍」としてもよい。ボクセルがない格子位置Ｘとその近傍に位置するボクセル群とは構造データ生成部１１０がボクセルデータ１０から生成した構造データ（各格子位置のボクセルの有無を示す）から求めてもよい。
【００５１】
ボクセル追加部１０１は、ボクセルがない格子位置Ｘの近傍に位置するボクセルの属性値から所定の計算方法で、格子位置Ｘに追加するボクセルの属性値を求める。この計算方法は、例えば、それら近傍のボクセルの属性値の平均を求める方法であってもよいし、近傍のボクセルの属性値を格子位置Ｘからの距離に応じて重み付け平均するという方法であってもよい。もちろん、この他の計算方法を用いてもよい。
【００５２】
ボクセル追加部１０１が、ボクセルがない格子位置のうちボクセルに隣接する格子位置のそれぞれに対してボクセルと追加することで、元のボクセルデータ１０が表す立体の表面（すなわち立体とその立体がない空間との界面）が、１層の追加ボクセル群で覆われることになる。ボクセル追加部１０１は、このようなボクセルの追加処理をＮ回繰り返すことで、元のボクセルデータ１０が表す立体の表面をＮボクセル分の厚みの追加ボクセルの層で覆うようにしてもよい。ボクセル追加部１０１が行う処理は、元のボクセルデータ１０が表す立体を膨張させる処理であると捉えてもよい。ボクセル追加部１０１の処理により、
【００５３】
ブロック切り出し部１０２、３次元ＤＣＴ部１０４、量子化部１０６及び符号化部１０８は、ボクセル追加部１０１によりボクセル追加が行われたボクセルデータに対して、上述と同様の処理を行う。
【００５４】
上述したとおり、量子化等の処理を含む非可逆圧縮を行った場合、復号後のデータに対して元のデータにないモスキートノイズ等の強いノイズが現れる。このようなノイズは、特に属性値が急激に変化するエッジの近傍に現れるが、特に造形対象の立体を表すボクセルデータ１０の場合、立体と外部の境界の近傍に強いノイズが現れる。このようなノイズの属性値が立体の外部の格子位置に現れた場合は、その格子位置は立体を構成するボクセルと認識されるが、これについては構造データを用いたマスク処理部２０８の処理により削除される。しかし、ノイズは境界近傍の立体の内部にも現れる。このような強いノイズにより立体内部のボクセルの属性値が本来の値から大きく変化することもあり得るが、このような変化はマスク処理部２０８では対応できない。
【００５５】
これに対し、図８の変形例の符号化装置１００は、元のボクセルデータ１０が示す立体の表面を、その表面近傍のボクセルの属性値に基づく属性値を持つ追加のボクセルで覆うので、立体と外部との境界が元の立体より外側に移動する。このため、ボクセル追加部１０１によりボクセルデータ１０の立体の表面に十分な厚みのボクセル層を追加することで、ボクセル追加後のデータに非可逆圧縮を施した場合に復号のデータの示す立体表面近傍のノイズが、元の立体の内部に現れることが防止または低減される。
【００５６】
このように追加したボクセルは、マスク処理部２０８により削除されるので、造形には影響をもたらさない。
【００５７】
以上に例示した符号化装置１００及び復号装置２００は、一つの例ではハードウエアの論理回路として構成可能である。また、別の例として、符号化装置１００及び復号装置２００は、例えば、内蔵されるコンピュータにそれら各装置内の各機能モジュールの機能を表すプログラムを実行させることにより実現してもよい。ここで、コンピュータは、例えば、ハードウエアとして、ＣＰＵ等のプロセッサ、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリメモリ（ＲＯＭ）等のメモリ（一次記憶）、ＨＤＤ（ハードディスクドライブ）を制御するＨＤＤコントローラ、各種Ｉ／Ｏ（入出力）インタフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばＩ／Ｏインタフェース経由で、ＣＤやＤＶＤなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭに読み出されＣＰＵ等のプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。また、符号化装置１００及び復号装置２００は、ソフトウエアとハードウエアの組合せで構成されてもよい。
【符号の説明】
【００５８】
１００  符号化装置、１０１  ボクセル追加部、１０２  ブロック切り出し部、１０４  ３次元ＤＣＴ部、１０６  量子化部、１０８  符号化部、１１０  構造データ生成部、１１２  構造符号化部、２００  復号装置、２０２  復号部、２０４  逆量子化部、２０６  ３次元逆ＤＣＴ部、２０８  マスク処理部。
【図１】
2019165290.tif 000003
【図２】
2019165290.tif 000004
【図３】
2019165290.tif 000005
【図４】
2019165290.tif 000006
【図５】
2019165290.tif 000007
【図６】
2019165290.tif 000008
【図７】
2019165290.tif 000009
【図８】
2019165290.tif 000010