JP4721072B2 - Polygon data compression and decompression system - Google Patents

Polygon data compression and decompression system Download PDF

Info

Publication number
JP4721072B2
JP4721072B2 JP2008029945A JP2008029945A JP4721072B2 JP 4721072 B2 JP4721072 B2 JP 4721072B2 JP 2008029945 A JP2008029945 A JP 2008029945A JP 2008029945 A JP2008029945 A JP 2008029945A JP 4721072 B2 JP4721072 B2 JP 4721072B2
Authority
JP
Japan
Prior art keywords
vertex
difference vector
local
data
compression
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.)
Active
Application number
JP2008029945A
Other languages
Japanese (ja)
Other versions
JP2009193095A (en
Inventor
昌之 種村
一樹 客野
建太 松本
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.)
Axell Corp
Original Assignee
Axell Corp
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 Axell Corp filed Critical Axell Corp
Priority to JP2008029945A priority Critical patent/JP4721072B2/en
Publication of JP2009193095A publication Critical patent/JP2009193095A/en
Application granted granted Critical
Publication of JP4721072B2 publication Critical patent/JP4721072B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)

Description

本発明は、ポリゴンデータの頂点座標の数値情報を削減する幾何圧縮に関する。   The present invention relates to geometric compression for reducing numerical information of vertex coordinates of polygon data.

近年、CPU(Central Processing Unit)の高性能化やグラフィックボードの普及により、3Dグラフィックスを利用したデジタルコンテンツが増加し、ゲーム機から携帯電話までプラットフォームも多様化している。これらにおいて、数万オーダーのポリゴンデータ処理も可能になりつつあるが、CPUからグラフィックアクセラレータへの膨大なデータ転送によって、バスを通じたトラフィックが処理速度のボトルネックになる場合が多い。この問題に関しては、画像データや音声データと同様にポリゴンデータを圧縮転送し、処理側で伸張する手法が有効となる。従来のポリゴンデータに関する研究は、位相圧縮と幾何圧縮とに大別される。位相圧縮は、頂点の連結情報を対象とする無歪み圧縮であり、一般化三角形ストリップ、一般化三角形メッシュ等がある。特に、主な3Dグラフィックスライブラリでは、インデックスバッファ形式によって、位相圧縮に関する頂点重複の問題を解決している。  In recent years, digital content using 3D graphics has increased due to high performance of CPUs (Central Processing Units) and the spread of graphic boards, and platforms have diversified from game machines to mobile phones. In these, polygon data processing of tens of thousands of orders is becoming possible, but traffic through the bus often becomes a bottleneck in processing speed due to a huge amount of data transfer from the CPU to the graphic accelerator. As for this problem, a method of compressing and transferring polygon data as well as image data and audio data and decompressing it on the processing side is effective. Conventional research on polygon data is roughly divided into phase compression and geometric compression. Phase compression is distortion-free compression for vertex connection information, and includes generalized triangle strips and generalized triangular meshes. In particular, main 3D graphics libraries solve the problem of vertex duplication related to phase compression by an index buffer format.

一方、幾何圧縮は、頂点座標の数値情報を対象とする無歪み圧縮または歪み圧縮であり、スカラー量子化、エントロピー符号化等がある。例えば、歪み圧縮であるスカラー量子化は、頂点座標の各成分の値を階段状に丸めることで、割り当てるビット数を削減する。一方、指数部のように一定の偏りがあるデータでは、シンボルの出現頻度に応じた可変長符号を割り当て、総符号量を減らす無歪み圧縮が利用される。例えば、非特許文献1には、浮動小数の指数部を算術符号によって圧縮する手法が開示されている。   On the other hand, geometric compression is no distortion compression or distortion compression for numerical information of vertex coordinates, and includes scalar quantization, entropy coding, and the like. For example, scalar quantization, which is distortion compression, reduces the number of bits to be allocated by rounding the value of each component of vertex coordinates stepwise. On the other hand, for data with a certain bias such as an exponent part, a variable length code corresponding to the appearance frequency of a symbol is assigned, and distortion-free compression is used to reduce the total code amount. For example, Non-Patent Document 1 discloses a technique for compressing a floating-point exponent with an arithmetic code.

また、特許文献1には、三角形メッシュで構成されたオブジェクトを対象とした位相圧縮と、その幾何圧縮とについて開示されている。この幾何圧縮では、まず、すべての頂点の座標を量子化によって整数値化する。つぎに、対象とする頂点によって形成される三角形Aは、これと隣接する別の三角形Bと平行四辺形をなすと仮定して、対象とする頂点の座標を予測する。予測された座標は、その平行四辺形に隣接する別の三角形ペア間の角度より予測された三角形A,B間の角度に基づいて、補正される。そして、補正された予測座標と実際の座標との残差を算出し、これにエントロピー符号化などが施される
Martin Isenburg, Peter Lindstorm and Jack Soneyink, "Lossless Compression of Predicted Floating-Point Geometry" Computer-Aided Design, Volume 37, Issue 8, pp869-8778 (2005) 米国特許第6,167,159号明細書
Further, Patent Document 1 discloses phase compression for an object composed of a triangular mesh and geometric compression thereof. In this geometric compression, first, the coordinates of all vertices are converted into integer values by quantization. Next, assuming that the triangle A formed by the target vertex forms a parallelogram with another triangle B adjacent thereto, the coordinates of the target vertex are predicted. The predicted coordinates are corrected based on the angle between the triangles A and B predicted from the angle between another pair of triangles adjacent to the parallelogram. Then, a residual between the corrected predicted coordinate and the actual coordinate is calculated, and entropy coding or the like is performed on the residual.
Martin Isenburg, Peter Lindstorm and Jack Soneyink, "Lossless Compression of Predicted Floating-Point Geometry" Computer-Aided Design, Volume 37, Issue 8, pp869-8778 (2005) US Pat. No. 6,167,159

本発明の目的は、ポリゴンデータの頂点座標の数値情報を有効に削減する新規な幾何圧縮手法を提案することである。   An object of the present invention is to propose a novel geometric compression method for effectively reducing numerical information of vertex coordinates of polygon data.

第1の発明は、差分ベクトル算出部と、局所基底算出部と、局所変換部と、仮数切捨部とを有し、ポリゴンデータの幾何圧縮を三角形ストリップの順序で頂点毎に行う圧縮システムを提供する。差分ベクトル算出部は、処理対象となる第1の頂点を、その直前の第2の頂点との差分である第1の差分ベクトルで表現する。局所基底算出部は、第2の頂点およびその直前の第3の頂点とによって規定される第2の差分ベクトルと、第3の頂点およびその直前の第4の頂点とによって規定される第3の差分ベクトルとに基づいて、第1の差分ベクトルに関する三次元の局所基底を算出する。局所変換部は、算出された局所基底に基づいて、第1の差分ベクトルを局所変換する。仮数切捨部は、局所変換された第1の差分ベクトルのそれぞれの成分に関して、指数部の大きさに応じて仮数部の下位ビットを可変に切り捨てることで歪み圧縮された第1の差分ベクトルを圧縮データとして出力する。   1st invention has a difference vector calculation part, a local basis calculation part, a local transformation part, and a mantissa truncation part, and the compression system which performs geometric compression of polygon data for every vertex in the order of a triangle strip provide. The difference vector calculation unit expresses the first vertex to be processed by a first difference vector that is a difference from the immediately preceding second vertex. The local basis calculation unit includes a second difference vector defined by the second vertex and the third vertex immediately preceding the second vertex, and a third difference defined by the third vertex and the fourth vertex immediately preceding the third difference vector. Based on the difference vector, a three-dimensional local basis for the first difference vector is calculated. The local conversion unit locally converts the first difference vector based on the calculated local base. The mantissa truncation unit converts the first difference vector subjected to distortion compression by variably truncating the lower bits of the mantissa part in accordance with the size of the exponent part for each component of the locally converted first difference vector. Output as compressed data.

ここで、第1の発明において、局所基底は、第3の差分ベクトルと平行である第1の基底成分、および、第2の差分ベクトルと第3の差分ベクトルとによって張られる面の法線方向である第2の基底成分の少なくとも一方を含むことが好ましい。また、局所基底は、第2の差分ベクトルと第3の差分ベクトルとによって張られる面上の特定方向である第3の基底成分を含んでいてもよい。この場合、第3の基底成分は、第2の差分ベクトルと、第3の差分ベクトルとに基づいたグラム-シュミット直交化によって算出されることが好ましい。   Here, in the first invention, the local basis is a normal direction of a surface stretched by the first basis component parallel to the third difference vector and the second difference vector and the third difference vector. It is preferable to include at least one of the second base components. In addition, the local basis may include a third basis component that is a specific direction on the surface spanned by the second difference vector and the third difference vector. In this case, it is preferable that the third basis component is calculated by Gram-Schmidt orthogonalization based on the second difference vector and the third difference vector.

また、第1の発明において、仮数切捨部は、局所変換された第1の差分ベクトルのそれぞれの成分の指数部に関して、エントロピー符号化を施してもよい。   In the first invention, the mantissa truncation unit may perform entropy coding on the exponent part of each component of the first difference vector subjected to local transformation.

第1の発明において、第2の頂点、第2の差分ベクトルおよび第3の差分ベクトルは、従前に歪み圧縮された差分ベクトルに対して、局所変換の逆変換を施すことによって復元された差分ベクトルに基づいて生成されることが好ましい。   In the first invention, the second vertex, the second difference vector, and the third difference vector are the difference vectors restored by performing the inverse transformation of the local transformation on the difference vector that has been previously distortion-compressed. Is preferably generated based on

第2の発明は、ポリゴンデータの幾何圧縮を三角形ストリップの順序で頂点毎に行う圧縮システムにおいて、差分ベクトル算出部が、処理対象となる第1の頂点を、当該第1の頂点と共に第1の三角形の一辺を形成する第2の頂点との差分である第1の差分ベクトルで表現するとともに、仮数切捨部が、当該第1の差分ベクトルのそれぞれの成分に関して、指数部の大きさに応じて仮数部の下位ビットを可変に切り捨てることにより、当該第1の差分ベクトルを歪み圧縮した上で圧縮データとして出力する処理と、圧縮データ伸張部が、歪み圧縮された第1の差分ベクトルを圧縮前の第1の差分ベクトルに伸張するとともに、頂点データ算出部が、当該伸張された第1の差分ベクトルを第2の頂点に加算することによって、第1の頂点を復元する処理と、を頂点毎に繰り返し実行し、第1の頂点の直後の頂点に関する差分ベクトル算出部における処理では、直前の頂点データ算出部における処理で復元された第1の頂点を第2の頂点として用いるポリゴンデータの圧縮システムを提供する。
According to a second aspect of the present invention, in the compression system that performs geometric compression of polygon data for each vertex in the order of triangle strips, the difference vector calculation unit sets the first vertex to be processed together with the first vertex to the first The first difference vector, which is the difference from the second vertex forming one side of the triangle, is expressed by the mantissa truncation unit according to the size of the exponent part for each component of the first difference vector. Then, the lower-order bits of the mantissa part are variably rounded down so that the first difference vector is subjected to distortion compression and then output as compressed data, and the compressed data decompression unit compresses the distortion-compressed first difference vector. restoring with extending in a first differential vector before, the vertex data calculating section, by adding the first difference vector is the stretched second vertex, the first vertex That process and the repeatedly executed every vertex, the processing in the difference vector calculating unit relates vertex immediately following the first vertex, the first vertex and the second vertex of which is restored by processing in the vertex data calculating section immediately before A polygon data compression system is provided.

の発明は、圧縮データ伸張部と、局所基底算出部と、局所逆変換部と、頂点データ算出部とを有し、ポリゴンデータの圧縮データを伸張する伸張システムを提供する。圧縮データ伸張部は、歪み圧縮された第1の差分ベクトルのそれぞれの成分に関して、圧縮時に切り捨てられた仮数部の下位ビットを補うことによって、第1の頂点と、その直前の第2の頂点との差分である第1の差分ベクトルに伸張する。局所基底算出部は、第2の頂点およびその直前の第3の頂点とによって規定される第2の差分ベクトルと、第3の頂点およびその直前の第4の頂点とによって規定される第3の差分ベクトルとに基づいて、第1の差分ベクトルに関する三次元の局所基底を算出する。局所逆変換部は、算出された局所基底に基づいて、圧縮時における局所変換の逆変換である局所逆変換を第1の差分ベクトルに施す、頂点データ算出部は、局所逆変換が施された第1の差分ベクトルと、従前の伸張によって算出済の第2の頂点とに基づいて、第1の頂点を算出する。 A third invention provides a decompression system that comprises a compressed data decompression unit, a local basis computation unit, a local inverse transform unit, and a vertex data computation unit, and decompresses compressed data of polygon data. The compressed data decompression unit supplements the lower bits of the mantissa part truncated at the time of compression for each component of the first differential vector subjected to distortion compression, and the second vertex immediately before the first vertex To the first difference vector, which is the difference of. The local basis calculation unit includes a second difference vector defined by the second vertex and the third vertex immediately preceding the second vertex, and a third difference defined by the third vertex and the fourth vertex immediately preceding the third difference vector. Based on the difference vector, a three-dimensional local basis for the first difference vector is calculated. The local inverse transform unit performs a local inverse transform, which is an inverse transform of the local transform at the time of compression, on the first difference vector based on the calculated local base. The vertex data calculation unit is subjected to the local inverse transform. The first vertex is calculated based on the first difference vector and the second vertex calculated by the previous extension.

ここで、第の発明において、局所基底は、第3の差分ベクトルと平行である第1の基底成分、および、第2の差分ベクトルと第3の差分ベクトルとによって張られる面の法線方向である第2の基底成分の少なくとも一方を含むことが好ましい。また、局所基底は、第2の差分ベクトルと第3の差分ベクトルとによって張られる面上の特定方向である第3の基底成分を含んでいてもよい。この場合、第3の基底成分は、第2の差分ベクトルと、第3の差分ベクトルとに基づいたグラム-シュミット直交化によって算出されることが好ましい。 Here, in the third invention, the local basis is a normal direction of a surface stretched by the first basis component parallel to the third difference vector and the second difference vector and the third difference vector. It is preferable to include at least one of the second base components. In addition, the local basis may include a third basis component that is a specific direction on the surface spanned by the second difference vector and the third difference vector. In this case, it is preferable that the third basis component is calculated by Gram-Schmidt orthogonalization based on the second difference vector and the third difference vector.

1の発明によれば、処理対象となる第1の頂点を第1の差分ベクトルで表現するとともに、三次元の局所基底で局所変換した上で、各成分の仮数部の下位ビットを可変に切り捨てる。これにより、歪み誤差を抑制しつつ、ポリゴンデータの頂点情報を効果的に圧縮できる。一方、第3の発明によれば、第1の発明によって圧縮されたデータを適切に伸張することができる。 According to the first invention, the first vertex to be processed as well as expressed by the first differential vector, in terms of the local transformation at the local base of the three-dimensional, the low-order bits of the mantissa of each component variable truncate. Thereby, the vertex information of polygon data can be effectively compressed while suppressing distortion errors. On the other hand, according to the third invention, the data compressed by the first invention can be appropriately decompressed.

また、第の発明によれば、頂点を順次圧縮する際、一度圧縮された差分ベクトルを復元して、次の頂点の処理で用いる。これにより、頂点を順次伸張する際、処理対象となる頂点の推移に伴い、歪み圧縮による誤差が累積していくことを防止できる。 According to the second invention, when the vertices are sequentially compressed, the differential vector once compressed is restored and used in the processing of the next vertex. Thereby, when the vertices are sequentially expanded, it is possible to prevent errors due to distortion compression from accumulating along with the transition of the vertices to be processed.

[アルゴリズムの概要]
システムの具体的な説明に先立ち、まず、本実施形態に係るポリゴンデータの幾何圧縮アルゴリズムについて概説する。本アルゴリズムが対象とするデータは、図1に示すデータ形式を有する頂点座標である。頂点座標の数値表現形式としては、標準規格であるIEEE754方式の32ビット単精度が用いられる。IEEE754方式では、32ビットワードを符号部(S)、指数部(Exp)および仮数部(Mantissa)の3つに別けて数値を表現する。ビット数の振り分けは、符号部(S)が1ビット、指数部(Exp)が8ビット、仮数部(Mantissa)が23ビットである。ここで、符号部(S)は、0で正、1で負の符号を示す。指数部(Exp)は、2を基数とした指数の整数値であり、127をバイアスされた正の値をとる。仮数部(Mantissa)は、実際の仮数から1を引いた2進小数の小数点以下のビットとする。また、正規化数は、下式によって表される(e=Exp−127,m=1.Mantissa)。
[Summary of algorithm]
Prior to a specific description of the system, first, a geometric compression algorithm for polygon data according to the present embodiment will be outlined. The data targeted by this algorithm is vertex coordinates having the data format shown in FIG. As a numerical expression format of the vertex coordinates, 32-bit single precision of the IEEE 754 system, which is a standard, is used. In the IEEE754 system, a 32-bit word is divided into three parts: a sign part (S), an exponent part (Exp), and a mantissa part (Mantissa), and a numerical value is expressed. As for the distribution of the number of bits, the sign part (S) is 1 bit, the exponent part (Exp) is 8 bits, and the mantissa part (Mantissa) is 23 bits. Here, the sign part (S) indicates 0 for a positive sign and 1 for a negative sign. The exponent (Exp) is an integer value of an exponent with 2 as a radix, and takes a positive value with 127 biased. The mantissa (Mantissa) is a bit after the decimal point of a binary decimal number obtained by subtracting 1 from an actual mantissa. The normalized number is expressed by the following equation (e = Exp-127, m = 1. Mantissa).

(正規化数)
S × 2e × m
(Normalized number)
S x 2 e x m

図2に示すように、圧縮処理の対象となる頂点Pnは、この頂点Pnと共に三角形T1の一辺を形成する頂点Pn-1との差分である差分ベクトルdnで表現される。そして、この差分ベクトルdnのそれぞれの成分(x,y,z)に関して、歪み圧縮が施される。本実施形態では、それぞれの成分の仮数部の下位ビットを可変に切り捨てることによって、歪み圧縮を実現する。上述した正規化数の表現式からわかるように、仮数部(Mantissa)の切り捨てによる値の変化は、指数部(Exp)の値が小さいほど少ない。この観点から、指数部の値が小さい場合には、仮数部(Mantissa)の切り捨てによる影響が比較的小さいので、仮数部の下位ビットを大きく切り捨てる。逆に、指数部の値が大きい場合には、仮数部の変化による影響も大きいので、下位ビットの切り捨てを小さく留める。具体的には、図3に示すように、仮数部23ビットのうち、下位(23−(e−c))ビットを切捨桁数(truncation)として切り捨て、(e−c)ビットを有効桁数(factor)とする(cは調整係数)。これにより、eと仮数部の有効桁数とが比例関係となり、全体として歪みを小さくすることができる。また、調整係数c∈[-149,127]によって、浮動小数の精度と圧縮率とを調整する。なお、有効桁数(factor)は、負数は0に、24以上の数は23に丸める。このようにして、歪み圧縮された差分ベクトルdnが頂点Pnの圧縮データとして出力される。   As shown in FIG. 2, the vertex Pn to be subjected to compression processing is expressed by a difference vector dn that is a difference from the vertex Pn-1 that forms one side of the triangle T1 together with the vertex Pn. Then, distortion compression is applied to each component (x, y, z) of the difference vector dn. In this embodiment, distortion compression is realized by variably truncating the lower bits of the mantissa part of each component. As can be seen from the expression for the normalized number, the change in the value due to truncation of the mantissa (Mantissa) is smaller as the value of the exponent (Exp) is smaller. From this point of view, when the value of the exponent part is small, the influence by the truncation of the mantissa part (Mantissa) is relatively small, so the lower bits of the mantissa part are greatly rounded down. On the other hand, when the value of the exponent part is large, the influence of the change of the mantissa part is large, so that the lower bits are rounded down. Specifically, as shown in FIG. 3, in the mantissa part 23 bits, the lower (23- (ec)) bits are rounded down as the number of truncations (truncation), and the (ec) bits are significant digits. Let it be a factor (c is an adjustment factor). Thereby, e and the number of significant digits of the mantissa part have a proportional relationship, and the distortion can be reduced as a whole. Further, the precision of the floating point number and the compression ratio are adjusted by the adjustment coefficient cε [−149, 127]. The number of significant digits (factor) is rounded to 0 for negative numbers and 23 for numbers greater than 24. In this manner, the distortion-compressed difference vector dn is output as the compressed data of the vertex Pn.

この圧縮アルゴリズムの特徴の一つは、頂点Pnを差分ベクトルdnで表現した上で、仮数部の下位ビットを切り捨てる点である。差分ベクトルdnは、頂点Pnと共に三角形の一辺を形成する頂点Pn-1を基準とした差分であり、三角形ストリップの場合には、頂点Pnの直前の頂点Pn-1を基準とした差分に相当する。頂点Pnを差分ベクトルで表現することで、その成分は、頂点Pnの本来の座標値よりも小さな値になる。したがって、座標値そのものを切り捨てる場合と比較して、仮数部の下位ビットをより大きく切り捨てることが期待でき、その結果として圧縮率の向上を図ることが可能になる。   One of the features of this compression algorithm is that the vertex Pn is expressed by the difference vector dn, and the lower bits of the mantissa part are discarded. The difference vector dn is a difference based on a vertex Pn-1 that forms one side of the triangle together with the vertex Pn. In the case of a triangle strip, the difference vector dn corresponds to a difference based on the vertex Pn-1 immediately before the vertex Pn. . By expressing the vertex Pn with a difference vector, its component becomes a value smaller than the original coordinate value of the vertex Pn. Therefore, compared with the case where the coordinate value itself is cut off, it is expected that the lower bits of the mantissa part are cut off more greatly, and as a result, the compression ratio can be improved.

つぎに、上述した基本的な概念を改良し、差分ベクトルdnを三次元の局所基底に基づいて局所変換することによって、圧縮率の更なる向上を図る手法について説明する。図4は、処理対象となる差分ベクトルdnと局所基底{u,v,w}との関係を示す図である。一般に、三角形ポリゴンは二次元曲面を被覆する三角形の集合なので、ある三角形T1の一辺(ベクトル)dnは、これと隣接する三角形T2の二辺(ベクトル)dn-1,dn-2と以下のような幾何学的特徴を有するものと仮定できる。   Next, a method for further improving the compression ratio by improving the basic concept described above and locally transforming the difference vector dn based on a three-dimensional local basis will be described. FIG. 4 is a diagram showing the relationship between the difference vector dn to be processed and the local basis {u, v, w}. In general, a triangular polygon is a set of triangles covering a two-dimensional curved surface. Therefore, one side (vector) dn of a triangle T1 is two sides (vectors) dn-1, dn-2 of a triangle T2 adjacent to the triangle T1, as follows. It can be assumed that it has the following geometric features.

(仮定A)三角形T1の一辺dnは、三角形T2の一辺dn-2と平行
三角形ストリップの場合、他の辺dn-2は辺dnの2つ前の辺に相当する。
(仮定B)三角形T1の一辺dnは、三角形T2の2辺dn-1,dn-2が張る面と共面
三角形ストリップの場合、他の2辺dn-1,dn-2は辺dnの直前および2つ前の辺に相当する。
(Assumption A) One side dn of the triangle T1 is parallel to one side dn-2 of the triangle T2, and in the case of a triangular strip, the other side dn-2 corresponds to the side immediately before the side dn.
(Assumption B) One side dn of the triangle T1 is coplanar with the surface stretched by the two sides dn-1, dn-2 of the triangle T2, and in the case of a triangular strip, the other two sides dn-1, dn-2 And corresponds to the previous two sides.

ここで、仮定Aは、マニュアルまたはアルゴリズムによって人工的に作成されたポリゴンデータの規則性に基づくものである。また、仮定Bは、細かいポリゴンモデルほどなめらかな曲面に近づく法線方向の近似可能性に基づくものである。   Here, the assumption A is based on regularity of polygon data artificially created by a manual or an algorithm. Assumption B is based on the possibility of approximation in the normal direction that approaches a smoother surface as the polygon model becomes finer.

このような隣り合った三角形T1,T2の相関性に着目して、絶対座標系で表現された差分ベクトルdnに局所的な変換を施せば、その成分をより小さくできる。そして、局所変換された差分ベクトルdnに対して、上述した仮数部の切り捨てを行えば、より高い圧縮率が期待できる。   Paying attention to the correlation between such adjacent triangles T1 and T2, if the local transformation is applied to the difference vector dn expressed in the absolute coordinate system, the component can be made smaller. If the above-described mantissa part is rounded down for the locally converted difference vector dn, a higher compression ratio can be expected.

具体的には、まず、ベクトルdnが属する三角形T1と隣接した三角形T2に基づいて、三次元の局所基底{u,v,w}を設定する。この局所基底{u,v,w}は、(1)ベクトルdn-2と平行な方向を基底成分uとすること(仮定1より)、(2)ベクトルdn-1,dn-2によって張られる面(三角形T2)の法線方向を他の基底成分wとすること(仮定2より)が好ましい。なお、残りの基底成分vについては、ベクトルdn-1,dn-2によって張られる面(三角形T2)上の特定の方向として定義することが好ましい。本実施形態では、ベクトルdn-2の単位ベクトルをu、この単位ベクトルuに対してベクトルdn-1にグラム-シュミット直交化を施した単位ベクトルをv、これらの単位ベクトルu,vの外積の単位ベクトルをwとして、正規直交基底{u,v,w}を定義する。   Specifically, first, a three-dimensional local basis {u, v, w} is set based on the triangle T1 to which the vector dn belongs and the adjacent triangle T2. This local basis {u, v, w} is stretched by (1) the direction parallel to the vector dn-2 as the basis component u (from assumption 1), and (2) the vectors dn-1, dn-2. It is preferable to set the normal direction of the surface (triangle T2) as another basis component w (from assumption 2). The remaining base component v is preferably defined as a specific direction on the plane (triangle T2) spanned by the vectors dn-1 and dn-2. In this embodiment, the unit vector of the vector dn-2 is u, the unit vector obtained by subjecting the vector dn-1 to Gram-Schmidt orthogonalization for the unit vector u, v, and the outer product of these unit vectors u and v. An orthonormal basis {u, v, w} is defined with a unit vector as w.

つぎに、局所基底{u,v,w}に基づいて、差分ベクトルdn(x,y,z)が局所変換される。変換後の差分ベクトルd'nのそれぞれの成分(α,β,γ)は、下式の内積によって算出される。

α = |<u,dn>|
β = |<v,dn>|
γ = |<w,dn>|
Next, the difference vector dn (x, y, z) is locally transformed based on the local basis {u, v, w}. Each component (α, β, γ) of the converted difference vector d′ n is calculated by the inner product of the following equation.

α = | <u, dn> |
β = | <v, dn> |
γ = | <w, dn> |

そして、変換後の差分ベクトルdn(α,β,γ)に対して、上述した仮数部の切り捨てによる歪み圧縮が施される。図5に示すような指数成分の分布を有する変換前の差分ベクトルdn(x,y,z)は、正規直交基底{u,v,w}を用いた局所変換によって、図6に示すようなα,β,γの分布に変換される。この分布は、仮定A(dn//dn-2)よりα>>β,γが、仮定B(dn⊥w)よりα,β>>γがそれぞれ成立する結果、α>β>γとなることからも理論的に裏付けられる。その結果、α,β,γ成分に対する仮数部の切り捨ては、以下のようになり、特にγ成分の切り捨てが圧縮率の向上に大きく貢献するであろうと期待される。   Then, the above-described difference vector dn (α, β, γ) is subjected to distortion compression by truncating the mantissa as described above. A difference vector dn (x, y, z) before conversion having an exponential component distribution as shown in FIG. 5 is obtained by local conversion using an orthonormal basis {u, v, w} as shown in FIG. It is converted into α, β, γ distribution. This distribution is such that α >> β, γ is established from Assumption A (dn // dn-2), and α, β >> γ is established from Assumption B (dn⊥w), so that α> β> γ. This is also supported by theory. As a result, truncation of the mantissa part for the α, β, and γ components is as follows, and it is expected that the truncation of the γ component will greatly contribute to the improvement of the compression ratio.

(局所変換後の歪み圧縮)
指数部の値 仮数部の切捨ビット数
α成分 大 少ない
β成分 中 普通
γ成分 小 多い
(Distortion compression after local transformation)
Exponent value Mantissa truncation bit number α component Large small β component Medium Normal γ component Small Large

つぎに、上述した圧縮アルゴリズムを実装した圧縮システムについて説明する。本実施形態における圧縮システムでは、三角形ストリップによって描画されたポリゴンデータを圧縮対象とし、原則として、三角形ストリップの順序で頂点を順次シフトさせながら、頂点毎に歪み圧縮を行う。   Next, a compression system that implements the above-described compression algorithm will be described. In the compression system according to this embodiment, polygon data drawn by a triangle strip is a compression target, and in principle, distortion compression is performed for each vertex while sequentially shifting the vertex in the order of the triangle strip.

図7は、三角形ストリップの説明図である。三角形ストリップでは、初期頂点P0からはしご状に連結した2辺により三角形が順次定義され、隣接する面では頂点が共有される。同図に示したように、初期頂点P0からP1,P1,P2,P3,P4,P4,P5,P0,P6,P2,P7,P4,P8の順に指定していく場合、頂点P2が指定された時点で、2つの辺P0−P1,P1−P2よりなる三角形P0P1P2が形成される。そして、次の頂点P3が指定されると三角形P1P2P3が、更に頂点P4が指定されると三角形P2P3P4がそれぞれ形成される。頂点P4では同一頂点が重複指定され、その後に頂点P5にジャンプしている。これは、同一頂点P4が重複指定された場合、例外的に辺P4−P5を一辺とする三角形は形成せず、その後の頂点P5を初期頂点として新たに三角形の形成を開始することを意味する。以後、三角形P5P0P6(頂点P6の指定時)、三角形P0P6P2(頂点P2の指定時)、三角形P6P2P7(頂点P7の指定時)、三角形P2P7P7(頂点P4の指定時)、三角形P7P4P8(頂点P8の指定時)の順に形成される。なお、DirectXやOpenGL等の3Dグラフィックスライブラリでは、重複した頂点の冗長性を削除してデータ量を減らすために、頂点の連結情報をインデックスにより管理する方式、すなわちインデックスバッファ方式が用いられる。この方式では、すべての頂点をリスト化し、各三角形の3頂点を三角形ストリップのインデックスとして記述する。   FIG. 7 is an explanatory diagram of a triangular strip. In the triangle strip, triangles are sequentially defined by two sides connected in a ladder shape from the initial vertex P0, and vertices are shared by adjacent faces. As shown in the figure, when the initial vertex P0 is designated in the order of P1, P1, P2, P3, P4, P4, P5, P0, P6, P2, P7, P4, P8, the vertex P2 is designated. Then, a triangle P0P1P2 composed of two sides P0-P1 and P1-P2 is formed. When the next vertex P3 is designated, the triangle P1P2P3 is formed, and when the vertex P4 is further designated, the triangle P2P3P4 is formed. At the vertex P4, the same vertex is designated twice, and then jumps to the vertex P5. This means that when the same vertex P4 is designated redundantly, a triangle having the side P4-P5 as one side is exceptionally not formed, and a new triangle is started with the subsequent vertex P5 as the initial vertex. . Thereafter, triangle P5P0P6 (when apex P6 is specified), triangle P0P6P2 (when apex P2 is specified), triangle P6P2P7 (when apex P7 is specified), triangle P2P7P7 (when apex P4 is specified), triangle P7P4P8 (when apex P8 is specified) ) In this order. In a 3D graphics library such as DirectX or OpenGL, a method of managing vertex connection information with an index, that is, an index buffer method is used in order to reduce the amount of data by eliminating redundant vertex redundancy. In this scheme, all vertices are listed and the three vertices of each triangle are described as the triangle strip index.

[圧縮システム]
図8は、本実施形態に係る圧縮システムのブロック構成図である。この圧縮システムは、差分ベクトル算出部1と、局所変換部2と、仮数切捨部3と、局所基底算出部4と、記憶部5と、圧縮データ伸張部6と、局所基底逆変換部7と、頂点データ算出部8とで構成されている。
[Compression system]
FIG. 8 is a block diagram of the compression system according to this embodiment. The compression system includes a difference vector calculation unit 1, a local conversion unit 2, a mantissa truncation unit 3, a local basis calculation unit 4, a storage unit 5, a compressed data decompression unit 6, and a local basis inverse conversion unit 7. And a vertex data calculation unit 8.

差分ベクトル算出部1は、処理対象として入力されたn番目の頂点データPn(x,y,z)に関して、三角形ストリップにおける直前の頂点データP'n-1(x,y,z)との差分を算出し、差分ベクトルdn(x,y,z)として出力する。直前のデータP'n-1は、頂点データ算出部8において保持されている。なお、直前の頂点データP'n-1は、元の頂点データPn-1ではなく、歪み圧縮された値を復元したものである(符号に付された「'」は復元値を意味する)。なお、初期頂点P0については、差分ベクトル算出部1による差分ベクトルの算出は行わず、次の頂点P1の差分ベクトルd1を算出するために必要なデータとして、頂点データ算出部8に格納される。   The difference vector calculation unit 1 calculates the difference between the n-th vertex data Pn (x, y, z) input as a processing target and the immediately preceding vertex data P′n−1 (x, y, z) in the triangle strip. Is calculated and output as a difference vector dn (x, y, z). The immediately preceding data P′n−1 is held in the vertex data calculation unit 8. Note that the immediately preceding vertex data P′n−1 is not the original vertex data Pn−1, but a value obtained by restoring a distortion-compressed value (“′” attached to the sign means a restored value). . The initial vertex P0 is not calculated by the difference vector calculation unit 1 but is stored in the vertex data calculation unit 8 as data necessary for calculating the difference vector d1 of the next vertex P1.

局所変換部2は、局所基底算出部4によって算出された局所基底B{u,v,w}に基づいて、差分ベクトルdnを局所変換して、変換後の差分ベクトルdn(α,β,γ)を出力する。ここで、α成分はベクトルuと差分ベクトルdnとの内積、β成分はベクトルvと差分ベクトルdnとの内積、そして、γ成分はベクトルwと差分ベクトルdnとの内積である。上述したように、局所基底B{u,v,w}としては正規直交基底を用いることができ、1つ前の差分ベクトルd'n-1と、2つ前の差分ベクトルd'n-2とに基づいて、頂点毎に生成される。なお、図4に示したように、1つ前の差分ベクトルd'n-1は、頂点Pn-1(正確には復元値P'n-1)と、その直前の頂点Pn-2(正確には復元値P'n-2)とによって規定される。また、2つ前の差分ベクトルd'n-2は、頂点Pn-2(正確には復元値P'n-2)と、その直前の頂点Pn-3(正確には復元値P'n-3)とによって規定される。   The local conversion unit 2 performs local conversion on the difference vector dn based on the local basis B {u, v, w} calculated by the local basis calculation unit 4, and converts the difference vector dn (α, β, γ after conversion). ) Is output. Here, the α component is the inner product of the vector u and the difference vector dn, the β component is the inner product of the vector v and the difference vector dn, and the γ component is the inner product of the vector w and the difference vector dn. As described above, an orthonormal basis can be used as the local basis B {u, v, w}, and the previous difference vector d′ n−1 and the second difference vector d′ n−2 can be used. Based on the above, it is generated for each vertex. As shown in FIG. 4, the previous difference vector d′ n−1 includes a vertex Pn−1 (more precisely, a restored value P′n−1) and a vertex Pn−2 (exact Is defined by the restoration value P′n−2). In addition, the previous difference vector d′ n−2 includes a vertex Pn−2 (more precisely, a restored value P′n−2) and an immediately preceding vertex Pn−3 (more precisely, the restored value P′n−). 3) and prescribed by.

仮数切捨部3は、局所変換後の差分ベクトルdnのそれぞれの成分α,β,γに関して、指数部の大きさに応じて仮数部の下位ビットを可変に切り捨てる。このようにして歪み圧縮された差分ベクトルd'n(α',β',γ')は、頂点データPnの圧縮データとして外部に出力されるとともに、圧縮データ伸張部6にも供給される。   The mantissa truncation unit 3 variably truncates the lower bits of the mantissa part according to the size of the exponent part for each component α, β, γ of the difference vector dn after local conversion. The differential vector d′ n (α ′, β ′, γ ′) subjected to distortion compression in this way is output to the outside as compressed data of the vertex data Pn and also supplied to the compressed data decompression unit 6.

なお、仮数切捨部3において、仮数部の切り捨て処理と並行して、α,β,γ成分の指数部に関して、エントロピー符号化による無歪み圧縮を行ってもよい。8ビット固定長で表される指数部の値e∈[-126,127]には常にある程度の偏りがあるため、エントロピー符号化による圧縮効果が期待できる。エントロピー符号化としては、例えば静的ハフマン符号を用いることができる。この場合、成分毎に指数部の値を計測し、出現回数によってそれぞれハフマン木を構成する。また、圧縮データの先頭にシンボル数、シンボル、出現回数を記述し、伸張時にこれらよりハフマン木を再構成する。   The mantissa truncation unit 3 may perform distortion-free compression by entropy coding on the exponent parts of the α, β, and γ components in parallel with the mantissa part truncation process. Since the exponent value eε [−126, 127] represented by an 8-bit fixed length always has a certain degree of bias, a compression effect by entropy coding can be expected. As entropy coding, for example, static Huffman codes can be used. In this case, the value of the exponent part is measured for each component, and a Huffman tree is constructed according to the number of appearances. Also, the number of symbols, symbols, and the number of appearances are described at the beginning of the compressed data, and a Huffman tree is reconstructed from these when decompressing.

圧縮データ伸張部6は、差分ベクトルd'n(α',β',γ')の切り捨てられた下位ビットを補って、符号小数フォーマットに戻す(単に0を追加して桁数を揃える)。この伸張によって得られたα,β,γ成分は、局所変換部2より出力されたものとは一致せず、仮数部の歪み誤差を含む。なお、仮数切捨部3において指数部のエントロピー符号化を行っている場合には、これに対応した復号化も併せて行われる。   The compressed data decompression unit 6 compensates the lower bits of the difference vector d′ n (α ′, β ′, γ ′), and returns to the signed decimal format (simply add 0 to align the number of digits). The α, β, and γ components obtained by this expansion do not match those output from the local conversion unit 2 and include a mantissa part distortion error. Note that when the mantissa truncation unit 3 performs entropy encoding of the exponent part, decoding corresponding to this is also performed.

局所逆変換部7は、圧縮データ伸張部6によって伸張された差分ベクトルd'n(α',β',γ')と、局所基底算出部4によって算出された局所基底B{u,v,w}とに基づいた局所逆変換を行い、差分ベクトルd'n(x,y,z)を算出する。この逆変換は、局所変換部2における変換の逆処理に相当する。この差分ベクトルd'nは、差分ベクトル算出部1より出力された差分ベクトルdnとは一致せず、仮数部の歪み誤差を含む。算出された差分ベクトルd'nは、記憶部5および頂点データ算出部8に供給される。記憶部5に供給された差分ベクトルd'nは、次の頂点Pn+1の処理で1つ前の差分ベクトルとして使用すべく、記憶領域d'n-1に格納される。また、現在の頂点Pnの処理で1つ前の差分ベクトルとして使用された記憶領域d'n-1のデータは、次の頂点Pn+1の処理で2つ前の差分ベクトルとして使用すべく、記憶領域d'n-2に格納される。これに伴い、現在、記憶領域d'n-2に格納されているデータは破棄される。 The local inverse transform unit 7 includes the difference vector d′ n (α ′, β ′, γ ′) expanded by the compressed data expansion unit 6 and the local basis B {u, v, and local inverse transformation based on w} is performed to calculate a difference vector d′ n (x, y, z). This inverse transformation corresponds to the inverse processing of the transformation in the local transformation unit 2. The difference vector d′ n does not coincide with the difference vector dn output from the difference vector calculation unit 1 and includes a mantissa part distortion error. The calculated difference vector d′ n is supplied to the storage unit 5 and the vertex data calculation unit 8. The difference vector d′ n supplied to the storage unit 5 is stored in the storage area d′ n−1 to be used as the previous difference vector in the processing of the next vertex Pn + 1. In addition, the data in the storage area d′ n−1 used as the previous difference vector in the processing of the current vertex Pn should be used as the previous difference vector in the processing of the next vertex Pn + 1. It is stored in the storage area d′ n−2 . Along with this, the data currently stored in the storage area d′ n−2 is discarded.

一方、頂点データ算出部8は、現在格納している頂点データP'n-1に差分ベクトルd'nを加算したものを新たな頂点データP'nとして算出する。この新たな頂点データP'nは、次の頂点Pn+1の処理において、1つ前の頂点データとして用いられる。このように、一度圧縮されたデータを復元して、次の頂点Pn+1の処理で用いる理由は、伸張時に歪み圧縮による誤差の累積を防止するためである。   On the other hand, the vertex data calculation unit 8 calculates a value obtained by adding the difference vector d′ n to the currently stored vertex data P′n−1 as new vertex data P′n. This new vertex data P′n is used as the previous vertex data in the processing of the next vertex Pn + 1. Thus, the reason why the data once compressed is restored and used in the processing of the next vertex Pn + 1 is to prevent accumulation of errors due to distortion compression during expansion.

この誤差の累積防止に関して、図9を参照しつつ詳述する。処理対象が頂点P1の場合、この頂点P1と共に三角形の一辺を形成する直前の頂点P0との差分が差分ベクトルd1として表現されるとともに、これを歪み圧縮することで圧縮差分ベクトルd'1が算出される。そして、圧縮差分ベクトルd'1を伸張して、これと頂点P0とを加算することによって、頂点P'1が復元される。しかしながら、歪み圧縮による誤差の影響があるので、復元された頂点P'1と、本来の頂点P1との間にずれが生じる。圧縮側では本来の頂点を特定できるが、伸張側では復元された頂点しか特定できない。したがって、圧縮時に本来の頂点を起点に差分ベクトルを算出してしまうと、伸張時に、頂点P2,P3,P4といった順序での繰り返し処理によって、本来の頂点とのずれが徐々に大きくなっていってしまう。このような誤差の累積を防止すべく、本実施形態では、ある頂点Pnの直後の頂点Pn+1に関する圧縮処理では、本来の頂点Pnではなく、直前の処理で復元された頂点P'nを用いる。なお、誤差の累積を防止するための本手法自体は、仮数部の切り捨てに限定されるものではなく、それ以外の歪み圧縮に対しても適用可能である。   This accumulation prevention of errors will be described in detail with reference to FIG. When the processing target is the vertex P1, the difference from the vertex P0 immediately before forming one side of the triangle together with the vertex P1 is expressed as the difference vector d1, and the compression difference vector d′ 1 is calculated by distortion-compressing the difference vector d1. Is done. Then, the vertex P′1 is restored by expanding the compressed difference vector d′ 1 and adding this to the vertex P0. However, since there is an error effect due to distortion compression, a deviation occurs between the restored vertex P′1 and the original vertex P1. The original vertex can be specified on the compression side, but only the restored vertex can be specified on the decompression side. Therefore, if the difference vector is calculated starting from the original vertex at the time of compression, the deviation from the original vertex is gradually increased by the repeated processing in the order of vertices P2, P3, P4 at the time of expansion. End up. In this embodiment, in order to prevent the accumulation of such errors, in the compression process for the vertex Pn + 1 immediately after a certain vertex Pn, the vertex P′n restored by the immediately preceding processing is not the original vertex Pn. Use. Note that the present technique for preventing error accumulation is not limited to truncation of the mantissa part, and can be applied to other distortion compression.

以上のような処理は、三角形ストリップの順序に従い、圧縮すべき頂点データPn+1,Pn+2,・・・が入力される毎に繰り返される。そして、最後の頂点データPlastの処理の完了に伴い、ポリゴンデータを構成する全頂点の圧縮が終了する。なお、処理対象となる頂点Pnが従前のものと一致する場合等においては、例外処理として、今回の頂点Pnの処理をスキップ等する。   The above processing is repeated every time the vertex data Pn + 1, Pn + 2,. Then, with the completion of the processing of the last vertex data Plast, the compression of all the vertices constituting the polygon data is completed. If the vertex Pn to be processed matches the previous one, etc., the processing of the current vertex Pn is skipped as an exception process.

このように、本実施形態に係る圧縮システムでは、局所基底B{u,v,w}によって局所変換された差分ベクトルdnのα,β,γ成分に関して、指数部の大きさに応じて仮数部の下位ビットを可変に切り捨てる。そして、この切り捨てによって歪み圧縮された差分ベクトルd'nの成分が圧縮データとして用いられる。これにより、歪み誤差を抑制しつつ、ポリゴンデータの頂点データを効果的に圧縮することが可能になる。特に、差分ベクトルdnが属する三角形と隣接する三角形に基づいた局所基底を用いれば、より高い圧縮率を確保することが可能になる。   As described above, in the compression system according to the present embodiment, the mantissa part of the α, β, γ components of the difference vector dn locally transformed by the local basis B {u, v, w} according to the size of the exponent part. The lower bits of are variably truncated. Then, the component of the difference vector d′ n that has been subjected to distortion compression by this truncation is used as compressed data. Thereby, it becomes possible to effectively compress the vertex data of the polygon data while suppressing the distortion error. In particular, if a local basis based on a triangle to which the difference vector dn belongs and an adjacent triangle is used, a higher compression rate can be secured.

[伸張システム]
図10は、上述した圧縮システムに対応する伸張システムのブロック構成図である。この伸張システムは、圧縮データ伸張部11と、局所逆変換部12と、頂点データ算出部13と、局所基底算出部14と、記憶部15とで構成されている。圧縮システムから伸張システムに渡されるデータは、初期頂点P0の座標データ、および、歪み圧縮された圧縮データd'n(α',β',γ')(n=1,2,3,・・・)である。なお、指数部の大きさと仮数部の切捨ビットとの対応関係は、圧縮側および伸張側の間で予め取り決められている。また、初期頂点P0については、次の頂点P1を算出するために必要なデータとして、頂点データ算出部13に格納される。
[Extension system]
FIG. 10 is a block diagram of a decompression system corresponding to the compression system described above. This decompression system includes a compressed data decompression unit 11, a local inverse transform unit 12, a vertex data calculation unit 13, a local base calculation unit 14, and a storage unit 15. The data passed from the compression system to the decompression system includes the coordinate data of the initial vertex P 0 and the compression data d′ n (α ′, β ′, γ ′) (n = 1, 2, 3,...・) The correspondence between the size of the exponent part and the truncation bit of the mantissa part is determined in advance between the compression side and the expansion side. Further, the initial vertex P0 is stored in the vertex data calculation unit 13 as data necessary for calculating the next vertex P1.

圧縮データ伸張部11は、圧縮データP'n(α',β',γ')に関して、圧縮時に切り捨てられた下位ビットを補って、浮動小数フォーマットに戻す(単に0を追加して桁数を揃える)。なお、指数部がエントロピー符号化されている場合には、その伸張も併せて行われる。これにより、頂点P'nと、その直前の頂点P'n-1との差分である差分ベクトルd'nが伸張・復元される。   The compressed data decompression unit 11 supplements the lower-order bits truncated at the time of compression with respect to the compressed data P′n (α ′, β ′, γ ′) and returns it to the floating-point format (simply add 0 to change the number of digits. Align). When the exponent part is entropy-coded, the expansion is also performed. As a result, the difference vector d′ n, which is the difference between the vertex P′n and the immediately preceding vertex P′n−1, is expanded and restored.

局所逆変換部12は、圧縮データ伸張部11によって伸張された差分ベクトルd'n(α',β',γ')と、局所基底算出部14によって算出された局所基底B{u,v,w}とに基づいて、下式の局所逆変換、すなわち圧縮時における局所変換の逆変換を行い、差分ベクトルd'n(x,y,z)を算出する。三次元の局所基底B{u,v,w}は、圧縮側と同様のものが用いられ、1つ前の差分ベクトルd'n-1(頂点P'n-1,P'n-2によって規定)と、2つ前の差分ベクトルd'n-2(P'n-2,P'n-3によって規定)とに基づいて、頂点毎に生成される。算出された差分ベクトルd'nは、頂点データ算出部13および記憶部15に供給される。

d'n(x,y,z)=<u,d'n>u+<v,d'n>v+<w,d'n>
The local inverse transform unit 12 includes the difference vector d′ n (α ′, β ′, γ ′) expanded by the compressed data expansion unit 11 and the local basis B {u, v, On the basis of w}, the local inverse transformation of the following equation, that is, the inverse transformation of the local transformation at the time of compression, is performed to calculate the difference vector d′ n (x, y, z). The same three-dimensional local basis B {u, v, w} as that on the compression side is used, and the previous difference vector d'n-1 (vertex P'n-1, P'n-2 Defined) and the second difference vector d′ n−2 (defined by P′n−2 and P′n−3). The calculated difference vector d′ n is supplied to the vertex data calculation unit 13 and the storage unit 15.

d′ n (x, y, z) = <u, d′ n> u + <v, d′ n> v + <w, d′ n>

頂点データ算出部13は、現在格納している頂点データP'n-1(従前の伸張によって算出済のもの)に、局所逆変換部12によって算出された今回の差分ベクトルd'n(x,y,z)を加算することによって、出力データとしての頂点データP'n(x,y,z)を算出する。この新たな頂点データP'nは、次の頂点Pn+1の処理において、1つ前の頂点データとして用いられる。   The vertex data calculation unit 13 adds the current difference vector d′ n (x, n, x) calculated by the local inverse transformation unit 12 to the currently stored vertex data P′n−1 (the one already calculated by the previous expansion). By adding (y, z), vertex data P′n (x, y, z) as output data is calculated. This new vertex data P′n is used as the previous vertex data in the processing of the next vertex Pn + 1.

また、記憶部15に供給された差分ベクトルd'nは、次の頂点Pn+1の処理で1つ前の差分ベクトルとして使用すべく、記憶領域d'n-1に格納される。また、現在の頂点Pnの処理で1つ前の差分ベクトルとして使用された記憶領域d'n-1のデータは、次の頂点Pn+1の処理で2つ前の差分ベクトルとして使用すべく、記憶領域d'n-2に格納される。これに伴い、現在、記憶領域d'n-2に格納されているデータは破棄される。 Further, the difference vector d′ n supplied to the storage unit 15 is stored in the storage area d′ n−1 to be used as the previous difference vector in the processing of the next vertex Pn + 1. In addition, the data in the storage area d′ n−1 used as the previous difference vector in the processing of the current vertex Pn should be used as the previous difference vector in the processing of the next vertex Pn + 1. It is stored in the storage area d'n-2. Along with this, the data currently stored in the storage area d′ n−2 is discarded.

以上のような処理は、伸張すべき圧縮データd'n+1,d'n+2,・・・が入力される毎に繰り返される。そして、最後の頂点データd'lastの処理の完了に伴い、ポリゴンデータを構成する全頂点の伸張が終了する。   The above processing is repeated every time compressed data d′ n + 1, d′ n + 2,. Then, with the completion of the processing of the last vertex data d′ last, the expansion of all the vertices constituting the polygon data is completed.

このように、本実施形態に係る伸張システムによれば、上述した圧縮システムによって生成された圧縮データを適切に伸張することができる。   As described above, according to the decompression system according to the present embodiment, it is possible to appropriately decompress the compressed data generated by the above-described compression system.

なお、上述した実施形態では、圧縮/伸張システムに関して説明したが、これと等価な処理手順をコンピュータによって実行させるコンピュータ・プログラムも本発明の別の態様を構成するものである。この場合、圧縮処理の基本的な流れは以下のようになる(詳細は上述した通りなので省略)。なお、圧縮効率は落ちるものの、下記ステップ12,13を省略して、ステップ11で算出された差分ベクトルを直接歪み圧縮することも可能であり、本発明はこのような形態を排除するものではない。   In the above-described embodiment, the compression / decompression system has been described. However, a computer program that causes a computer to execute an equivalent processing procedure also constitutes another aspect of the present invention. In this case, the basic flow of the compression process is as follows (details are omitted as described above). Although the compression efficiency is reduced, the following steps 12 and 13 can be omitted and the difference vector calculated in step 11 can be directly distorted and compressed, and the present invention does not exclude such a form. .

(圧縮処理手順)
(ステップ11)処理対象となる頂点の差分ベクトル化
(ステップ12)局所基底の算出
(ステップ13)局所基底に基づく差分ベクトルの局所変換
(ステップ14)変換後の差分ベクトルの歪み圧縮
(Compression procedure)
(Step 11) Difference vectorization of vertices to be processed (Step 12) Calculation of local basis (Step 13) Local transformation of difference vector based on local basis (Step 14) Distortion compression of difference vector after transformation

また、伸張処理は以下のような手順となる。なお、圧縮処理で局所変換を行わない場合には、下記ステップ22,23は不要である。
(伸張処理手順)
The decompression process is as follows. If local conversion is not performed in the compression process, the following steps 22 and 23 are unnecessary.
(Extension processing procedure)

(ステップ21)圧縮データの伸張
(ステップ22)局所基底の算出
(ステップ23)局所基底を用いた局所逆変換による差分ベクトルの算出
(ステップ24)頂点データの算出
(Step 21) Expansion of compressed data (Step 22) Calculation of local base (Step 23) Calculation of difference vector by local inverse transformation using local base (Step 24) Calculation of vertex data

頂点座標のデータ形式の説明図Explanatory drawing of data format of vertex coordinates 差分ベクトルで表現された頂点の説明図Explanatory diagram of vertices expressed by difference vector 仮数部における下位ビット切り捨ての説明図Illustration of truncation of lower bits in mantissa 差分ベクトルと局所基底との関係を示す図Diagram showing the relationship between the difference vector and the local basis 変換前の差分ベクトルに関する指数成分の分布図Exponential component distribution map for the difference vector before conversion 変換後の差分ベクトルに関する指数成分の分布図Exponential distribution map for the difference vector after conversion 三角形ストリップの説明図Illustration of triangle strip 圧縮システムのブロック構成図Block diagram of compression system 伸張時における歪み誤差の累積の説明図Explanatory diagram of cumulative distortion error during expansion 伸張システムのブロック構成図Block diagram of decompression system

符号の説明Explanation of symbols

1 差分ベクトル算出部
2 局所変換部
3 仮数切捨部
4 局所基底算出部
5 記憶部
6 圧縮データ伸張部
7 局所逆変換部
8 頂点データ算出部
11 圧縮データ伸張部
12 局所逆変換部
13 頂点データ算出部
14 局所基底算出部
15 記憶部
DESCRIPTION OF SYMBOLS 1 Difference vector calculation part 2 Local transformation part 3 Mantissa truncation part 4 Local base calculation part 5 Storage part 6 Compressed data decompression part 7 Local inverse transformation part 8 Vertex data calculation part 11 Compressed data decompression part 12 Local inverse transformation part 13 Vertex data Calculation unit 14 Local basis calculation unit 15 Storage unit

Claims (11)

ポリゴンデータの幾何圧縮を三角形ストリップの順序で頂点毎に行う圧縮システムにおいて、
処理対象となる第1の頂点を、その直前の第2の頂点との差分である第1の差分ベクトルで表現する差分ベクトル算出部と、
前記第2の頂点およびその直前の第3の頂点とによって規定される第2の差分ベクトルと、前記第3の頂点およびその直前の第4の頂点とによって規定される第3の差分ベクトルとに基づいて、前記第1の差分ベクトルに関する三次元の局所基底を算出する局所基底算出部と、
前記算出された局所基底に基づいて、前記第1の差分ベクトルを局所変換する局所変換部と、
前記局所変換された第1の差分ベクトルのそれぞれの成分に関して、指数部の大きさに応じて仮数部の下位ビットを可変に切り捨てることで歪み圧縮された第1の差分ベクトルを圧縮データとして出力する仮数切捨部と
を有することを特徴とするポリゴンデータの圧縮システム。
In a compression system that performs geometric compression of polygon data for each vertex in the order of triangle strips,
A difference vector calculation unit that expresses a first vertex to be processed by a first difference vector that is a difference from the immediately preceding second vertex;
A second difference vector defined by the second vertex and the third vertex immediately preceding the second vertex, and a third difference vector defined by the third vertex and the fourth vertex immediately preceding it. A local basis calculation unit for calculating a three-dimensional local basis for the first difference vector,
Based on the calculated local basis, a local conversion unit that locally converts the first difference vector;
For each component of the first difference vector that has been locally transformed, the first difference vector that is distortion-compressed by variably truncating the lower bits of the mantissa part according to the size of the exponent part is output as compressed data. A polygon data compression system comprising a mantissa truncation unit.
前記局所基底は、前記第3の差分ベクトルと平行である第1の基底成分、および、前記第2の差分ベクトルと前記第3の差分ベクトルとによって張られる面の法線方向である第2の基底成分の少なくとも一方を含むことを特徴とする請求項1に記載されたポリゴンデータの圧縮システム。   The local basis is a first base component parallel to the third difference vector and a normal direction of a surface stretched by the second difference vector and the third difference vector. 2. The polygon data compression system according to claim 1, comprising at least one of base components. 前記局所基底は、前記第2の差分ベクトルと前記第3の差分ベクトルとによって張られる面上の特定方向である第3の基底成分を含むことを特徴とする請求項2に記載されたポリゴンデータの圧縮システム。   3. The polygon data according to claim 2, wherein the local base includes a third base component that is a specific direction on a surface spanned by the second difference vector and the third difference vector. 4. Compression system. 前記第3の基底成分は、前記第2の差分ベクトルと、前記第3の差分ベクトルとに基づいたグラム-シュミット直交化によって算出されることを特徴とする請求項3に記載されたポリゴンデータの圧縮システム。   The polygon data of claim 3, wherein the third basis component is calculated by Gram-Schmidt orthogonalization based on the second difference vector and the third difference vector. Compression system. 前記仮数切捨部は、前記局所変換された第1の差分ベクトルのそれぞれの成分の指数部に関して、エントロピー符号化を施すことを特徴とする請求項1から4のいずれかに記載されたポリゴンデータの圧縮システム。   5. The polygon data according to claim 1, wherein the mantissa truncation unit performs entropy coding on an exponent part of each component of the first difference vector subjected to local transformation. 6. Compression system. 前記第2の頂点、前記第2の差分ベクトルおよび前記第3の差分ベクトルは、従前に歪み圧縮された差分ベクトルに対して、前記局所変換の逆変換を施すことによって復元された差分ベクトルに基づいて生成されることを特徴とする請求項1から5のいずれかに記載されたポリゴンデータの圧縮システム。   The second vertex, the second difference vector, and the third difference vector are based on a difference vector restored by performing an inverse transformation of the local transformation on a difference vector that has been previously distortion-compressed. 6. The polygon data compression system according to claim 1, wherein the polygon data compression system is generated as described above. ポリゴンデータの幾何圧縮を三角形ストリップの順序で頂点毎に行う圧縮システムにおいて、差分ベクトル算出部が、処理対象となる第1の頂点を、当該第1の頂点と共に第1の三角形の一辺を形成する第2の頂点との差分である第1の差分ベクトルで表現するとともに、仮数切捨部が、当該第1の差分ベクトルのそれぞれの成分に関して、指数部の大きさに応じて仮数部の下位ビットを可変に切り捨てることにより、当該第1の差分ベクトルを歪み圧縮した上で圧縮データとして出力する処理と、圧縮データ伸張部が、前記歪み圧縮された第1の差分ベクトルを圧縮前の第1の差分ベクトルに伸張するとともに、頂点データ算出部が、当該伸張された第1の差分ベクトルを前記第2の頂点に加算することによって、前記第1の頂点を復元する処理と、を頂点毎に繰り返し実行し、
前記第1の頂点の直後の頂点に関する前記差分ベクトル算出部における処理では、直前の前記頂点データ算出部における処理で復元された前記第1の頂点を前記第2の頂点として用いることを特徴とするポリゴンデータの圧縮システム。
In the compression system for performing geometric compression polygon data per vertex in the order of triangle strips, a difference vector calculating portion, the first vertex to be processed, to form one side of the first triangle with the first vertex The first difference vector, which is the difference from the second vertex, is represented by the first difference vector, and the mantissa truncation unit has, for each component of the first difference vector, a lower bit of the mantissa part according to the size of the exponent part. , The first differential vector is distorted and output as compressed data, and the compressed data decompression unit converts the first differential vector that has been compressed into the first differential vector before compression. while stretching the differential vector, vertex data calculation unit, by adding the first difference vector is the stretched to the second vertex to restore the first vertex Processing and, repeatedly executed for each vertex,
In the process in the difference vector calculation unit regarding the vertex immediately after the first vertex, the first vertex restored by the process in the immediately preceding vertex data calculation unit is used as the second vertex. Polygon data compression system.
ポリゴンデータの圧縮データを伸張する伸張システムにおいて、
歪み圧縮された第1の差分ベクトルのそれぞれの成分に関して、圧縮時に切り捨てられた仮数部の下位ビットを補うことによって、処理対象となる第1の頂点と、その直前の第2の頂点との差分である第1の差分ベクトルに伸張する圧縮データ伸張部と、
前記第2の頂点およびその直前の第3の頂点とによって規定される第2の差分ベクトルと、前記第3の頂点およびその直前の第4の頂点とによって規定される第3の差分ベクトルとに基づいて、前記第1の差分ベクトルに関する三次元の局所基底を算出する局所基底算出部と、
前記算出された局所基底に基づいて、圧縮時における局所変換の逆変換である局所逆変換を前記第1の差分ベクトルに施す局所逆変換部と、
前記局所逆変換が施された第1の差分ベクトルと、従前の伸張によって算出済の前記第2の頂点とに基づいて、前記第1の頂点を算出する頂点データ算出部と
を有することを特徴とするポリゴンデータの伸張システム。
In a decompression system that decompresses compressed data of polygon data,
For each component of the first distortion-compressed difference vector, the difference between the first vertex to be processed and the second vertex immediately preceding it by supplementing the lower bits of the mantissa part truncated at the time of compression A compressed data decompression unit that decompresses the first difference vector,
A second difference vector defined by the second vertex and the third vertex immediately preceding the second vertex, and a third difference vector defined by the third vertex and the fourth vertex immediately preceding it. A local basis calculation unit for calculating a three-dimensional local basis for the first difference vector,
Based on the calculated local basis, a local inverse transform unit that performs local inverse transform on the first difference vector, which is an inverse transform of local transform at the time of compression;
A vertex data calculation unit that calculates the first vertex based on the first difference vector subjected to the local inverse transformation and the second vertex calculated by the previous extension. Polygon data expansion system.
前記局所基底は、前記第3の差分ベクトルと平行である第1の基底成分、および、前記第2の差分ベクトルと前記第3の差分ベクトルとによって張られる面の法線方向である第2の基底成分の少なくとも一方を含むことを特徴とする請求項8に記載されたポリゴンデータの伸張システム。   The local basis is a first base component parallel to the third difference vector and a normal direction of a surface stretched by the second difference vector and the third difference vector. 9. The polygon data expansion system according to claim 8, comprising at least one of base components. 前記局所基底は、前記第2の差分ベクトルと前記第3の差分ベクトルとによって張られる面上の特定方向である第3の基底成分を含むことを特徴とする請求項9に記載されたポリゴンデータの伸張システム。   The polygon data according to claim 9, wherein the local base includes a third base component that is a specific direction on a surface spanned by the second difference vector and the third difference vector. Stretch system. 前記第3の基底成分は、前記第2の差分ベクトルと、前記第3の差分ベクトルとに基づいたグラム-シュミット直交化によって算出されることを特徴とする請求項10に記載されたポリゴンデータの伸張システム。   The polygon data of claim 10, wherein the third base component is calculated by Gram-Schmidt orthogonalization based on the second difference vector and the third difference vector. Stretch system.
JP2008029945A 2008-02-12 2008-02-12 Polygon data compression and decompression system Active JP4721072B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008029945A JP4721072B2 (en) 2008-02-12 2008-02-12 Polygon data compression and decompression system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008029945A JP4721072B2 (en) 2008-02-12 2008-02-12 Polygon data compression and decompression system

Publications (2)

Publication Number Publication Date
JP2009193095A JP2009193095A (en) 2009-08-27
JP4721072B2 true JP4721072B2 (en) 2011-07-13

Family

ID=41075082

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008029945A Active JP4721072B2 (en) 2008-02-12 2008-02-12 Polygon data compression and decompression system

Country Status (1)

Country Link
JP (1) JP4721072B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8669977B2 (en) 2009-10-01 2014-03-11 Intel Corporation Hierarchical mesh quantization that facilitates efficient ray tracing
US20230097562A1 (en) * 2021-09-28 2023-03-30 Advanced Micro Devices, Inc. Acceleration structures with delta instances

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0738760A (en) * 1993-06-28 1995-02-07 Nec Corp Orthogonal transformation base generating system
JPH1124887A (en) * 1997-07-01 1999-01-29 Sega Enterp Ltd Vector normalization computing element, vector normalization computing method and recording medium
JP2000347832A (en) * 1999-06-09 2000-12-15 Mitsubishi Electric Corp System and unit for floating-point arithmetic and semiconductor integrated circuit device equipped with same
US6167159A (en) * 1998-04-30 2000-12-26 Virtue Ltd. Triangle mesh compression
JP2002008060A (en) * 2000-06-23 2002-01-11 Hitachi Ltd Data processing method, recording medium and data processing device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0738760A (en) * 1993-06-28 1995-02-07 Nec Corp Orthogonal transformation base generating system
JPH1124887A (en) * 1997-07-01 1999-01-29 Sega Enterp Ltd Vector normalization computing element, vector normalization computing method and recording medium
US6167159A (en) * 1998-04-30 2000-12-26 Virtue Ltd. Triangle mesh compression
JP2000347832A (en) * 1999-06-09 2000-12-15 Mitsubishi Electric Corp System and unit for floating-point arithmetic and semiconductor integrated circuit device equipped with same
JP2002008060A (en) * 2000-06-23 2002-01-11 Hitachi Ltd Data processing method, recording medium and data processing device

Also Published As

Publication number Publication date
JP2009193095A (en) 2009-08-27

Similar Documents

Publication Publication Date Title
EP2387004B1 (en) Lossless compression of a structured set of floating point numbers, particularly for CAD systems
Valette et al. Wavelet-based progressive compression scheme for triangle meshes: Wavemesh
CN109002889B (en) Adaptive iterative convolution neural network model compression method
US8023752B1 (en) Decompression of 16 bit data using predictor values
US9064311B2 (en) Method for compressing/decompressing a three-dimensional mesh
US20070285417A1 (en) System and Method for Memory Bandwidth Compressor
JP2011528452A (en) Low-complexity three-dimensional mesh compression apparatus and method using shared vertex information
US8346831B1 (en) Systems and methods for computing mathematical functions
KR20090097057A (en) Method for coding and decoding connectivity of 3d data implemented as mesh model
CN114239798A (en) Multiplication-free depth neural network model compression method based on parity logarithm quantization
JP4721072B2 (en) Polygon data compression and decompression system
US5949422A (en) Shape data compression method, shape data decompression method, shape data compression apparatus, and shape data decompression apparatus
CN101068363B (en) System and method for reducing frequency breadth need of transmitting graph data
JP4037875B2 (en) Computer graphics data encoding device, decoding device, encoding method, and decoding method
WO2022067790A1 (en) Point cloud layering method, decoder, encoder, and storage medium
Sano et al. Segment-parallel predictor for FPGA-based hardware compressor and decompressor of floating-point data streams to enhance memory I/O bandwidth
CN117155405A (en) Method for quickly establishing tANS coding and decoding conversion table based on gradient descent
Fathi et al. Survey on Fractal image compression
JP6833643B2 (en) Compression processing device, decompression processing device, compression processing program, decompression processing program
Sim et al. An efficient 3D mesh compression technique based on triangle fan structure
JP4017467B2 (en) Triangular mesh data compression method and program
US9134958B2 (en) Bid to BCD/DPD converters
Siddeq et al. 3D point cloud data and triangle Face compression by a novel geometry minimization algorithm and comparison with other 3D formats
US20020122035A1 (en) Method and system for parameterized normal predictive encoding
US11461275B2 (en) Compression techniques for vertices of graphic models

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100914

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100927

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20101001

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110323

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140415

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4721072

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140415

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250