2021/1/12更新
 点群PNG(Point Cloud PNG)とは,画像フォーマットPNG形式を利用してポイントデータのリストを扱うためのフォーマットです.
 ここで扱うポイントデータは,2次元または3次元の位置座標を持つもので,それらに関連付けられる付加情報を含みます.

ファイルフォーマット

 ファイルフォーマットはPNG(Portable Network Graphics, ISO/IEC 15948:2004)を使用し,タイプはカラーが利用できる以下のいずれかを使用します.

データ型

 点群PNGではピクセルの色をデータに変換して使用します.仕様上定義されるデータ型には以下の4種類がありますが,ユーザ定義属性では任意のデータ型を使用できます.  RGBは,ピクセルをそのまま色として取得します
 24ビット符号無し整数では,1ピクセルのRGB値(r,g,b)から以下の式で値(v)を取得します.
v=216r+ 28g+b
 48ビット符号無し整数では,2つのピクセルのRGB値,第1ピクセル(r1,g1,b1)及び第2ピクセル(r2,g2,b2)から以下の式で値(v)を取得します.
v= 240r1+ 232g1+ 224b1+ 216r2+ 28g2+ b2
 24ビット符号付き整数では,1ピクセルのRGB値(r,g,b)から以下の式で値(v)を取得します.
r'= { r, (r<27) r-28, (r27)
v=216r'+ 28g+b

配置及びレコード長

 画像は,ヘッダ情報及びポイント情報をそれぞれいくつかのピクセルの組み合わせで表現します.ヘッダー情報は省略できます.
 ヘッダー情報のピクセル数は可変です.1ポイントのポイント情報を表現するピクセル数はファイル内で同一で,それをレコード長と呼びます.
 ヘッダ情報及びポイント情報を表すピクセルは,画像の左上端から行優先で配置します.すなわち,まずは右方向へ配置していき,右端に達したら1行下の左端に移動し,これを繰り返します.通常,ヘッダー情報及びポイント情報は連続したピクセルになりますが,画像右端で折り返される場合は連続しません.ヘッダー情報はすべてのポイント情報よりも前に配置する必要があります.
 画像サイズの幅は,レコード長の整数倍でなければなりません.

ヘッダー

 タイプ,ヘッダー長,レコード長,レコード数,表示範囲の大きさを示します.
第1ピクセル第2ピクセル第3ピクセル 第4ピクセル第5ピクセル第6ピクセル第7ピクセル
typeheaderLengthrecordLength recordCountwidhtheight ...
 それぞれの属性の名称,データ型,内容は以下の通りです.なお,ここでいう表示範囲とは,PNGが持つ本来のピクセルサイズではなく,点群データを表示するときの範囲です
属性名データ型内容
type24ビット符号無し整数データのタイプ.2D点群/3D点群を識別するために使用します.
1: 2D点群
2: 3D点群
headerLength 24ビット符号無し整数ヘッダー長(ピクセル数)
recordLength24ビット符号無し整数レコード長(ピクセル数)
recordCount 48ビット符号無し整数レコード数
width 24ビット符号無し整数表示範囲横幅
height24ビット符号無し整数表示範囲縦幅
 第8ピクセル以降はユーザー定義属性で,使用方法は自由です.

ポイント情報

 各ポイントの位置や色,ID,スタイルなどの情報を表現します.
第1ピクセル第2ピクセル第3ピクセル第4ピクセル 第5ピクセル第6ピクセル第7ピクセル
xyzcoloridclass ...
 タイプが2D点群(type=1)の場合は第3ピクセル(z)は省略されます.第4~第6ピクセルはそれぞれ省略可です.それらが省略された場合は残りのピクセルを左に詰めます.第7ピクセル以降はユーザ定義属性で,使用法は自由です.
 それぞれの属性の名称,データ型,内容は以下の通りです.
属性名データ型内容
x24ビット符号無し整数表示範囲左端からの距離
y24ビット符号無し整数表示範囲上端からの距離
z24ビット符号付き整数高さ方向を表す数値
colorRGB表示する色
id24ビット符号無し整数ポイントを識別するID
class24ビット符号無し整数表示ルを指定するクラス

データ範囲外

 画像の末端部の配置するポイント情報が存在しないピクセルの内容は規定しません.