(57)【要約】【課題】スループットの向上、ハードウェアのコスト削減。【解決手段】取得されたコンピュータグラフィックスデータ（ＣＧデータ）を符号化するための前処理を行う手段１０２と、前処理が行われたＣＧデータを最終的に出力される符号総数を制御するための処理を行って符号化する手段１０３と、手段１０３で得られた符号に含まれるエントロピー符号化を行うべき符号部分に基づいてエントロピー量の情報であるエントロピー情報を算出し、エントロピー情報に基づいて符号語を作成す手段１０５と、手段１０３で得られた符号を作成された符号語を用いてエントロピー符号化する手段１０６と、エントロピー情報から復号に最低限必要な復号必要情報を抽出する手段１０７と、復号必要情報をデータ量が少なくなるように符号化する手段１０８と、エントロピー符号化された符号と符号化された復号必要情報とを出力する手段１０９と、を具備する。【選択図】図１
2006238036.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータグラフィックスデータを取得する取得手段と、
前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行う前処理手段と、
前記前処理が行われたコンピュータグラフィックスデータを、最終的に出力される符号総数を制御するための処理を行って符号化する符号数制御符号化手段と、
前記符号数制御符号化手段で得られた符号に含まれる、エントロピー符号化を行うべき符号部分を蓄える蓄積手段と、
前記蓄積手段で蓄えられた符号部分に基づいて、エントロピー量の情報であるエントロピー情報を算出し、該エントロピー情報に基づいて符号語を作成する符号作成手段と、
前記符号数制御符号化手段で得られた符号を、前記作成された符号語を用いてエントロピー符号化するエントロピー符号化手段と、
前記エントロピー情報から復号に最低限必要な復号必要情報を抽出する抽出手段と、
前記復号必要情報をデータ量が少なくなるように符号化する抽出情報符号化手段と、
前記エントロピー符号化された符号と、前記符号化された復号必要情報とを出力する出力手段と、を具備することを特徴とするコンピュータグラフィックスデータ符号化装置。
【請求項２】
コンピュータグラフィックスデータを取得する取得手段と、
前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行う前処理手段と、
前記前処理が行われたコンピュータグラフィックスデータを蓄える蓄積手段と、
前記蓄積手段で蓄えられたコンピュータグラフィックスデータの符号部分に基づいて、エントロピー量の情報であるエントロピー情報を算出し、該エントロピー情報に基づいて符号語を作成する符号作成手段と、
前記蓄積手段で蓄えられたコンピュータグラフィックスデータの符号を、前記作成された符号語を用いてエントロピー符号化するエントロピー符号化手段と、
前記エントロピー符号化された符号を、最終的に出力される符号総数を制御するための処理を行って符号化する符号数制御符号化手段と、
前記エントロピー情報から復号に最低限必要な復号必要情報を抽出する抽出手段と、
前記復号必要情報をデータ量が少なくなるように符号化する抽出情報符号化手段と、
前記符号数制御符号化手段で得られた符号と、前記符号化された復号必要情報とを出力する出力手段と、を具備することを特徴とするコンピュータグラフィックスデータ符号化装置。
【請求項３】
前記符号数制御符号化手段での前記符号総数は、前記エントロピー符号化手段で生成される符号の総数であることを特徴とする請求項１または請求項２に記載のコンピュータグラフィックスデータ符号化装置。
【請求項４】
コンピュータグラフィックスデータを取得する取得手段と、
前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行う前処理手段と、
前記前処理が行われたコンピュータグラフィックスデータを、最終的に出力される符号総数を制御するための処理を行って符号化する符号数制御符号化手段と、
前記符号数制御符号化手段で得られた符号に含まれる、エントロピー符号化を行うべき符号部分と、該符号部分の出現頻度と、の関係情報を蓄える符号蓄積手段と、
典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄えている符号語情報蓄積手段と、
前記符号蓄積手段に蓄えられている関係情報と前記符号語情報蓄積手段に蓄えられている関係情報に基づいて、前記符号数制御符号化手段で得られた符号の符号語を作成する符号作成手段と、
前記符号数制御符号化手段で得られた符号を、前記作成された符号語を用いてエントロピー符号化するエントロピー符号化手段と、
前記符号語の作成に基づいて、前記符号蓄積手段に蓄えられている関係情報と前記符号語情報蓄積手段に蓄えられている関係情報から復号に最低限必要な復号必要情報を抽出する抽出手段と、
前記復号必要情報をデータ量が少なくなるように符号化する抽出情報符号化手段と、
前記エントロピー符号化された符号と、前記符号化された復号必要情報とを出力する出力手段と、を具備することを特徴とするコンピュータグラフィックスデータ符号化装置。
【請求項５】
コンピュータグラフィックスデータを取得する取得手段と、
前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行う前処理手段と、
前記前処理手段で得られた符号に含まれる、エントロピー符号化を行うべき符号部分と、該符号部分の出現頻度と、の関係情報を蓄える符号蓄積手段と、
典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄えている符号語情報蓄積手段と、
前記符号蓄積手段に蓄えられている関係情報と前記符号語情報蓄積手段に蓄えられている関係情報に基づいて、前記前処理手段で得られた符号の符号語を作成する符号作成手段と、
前記前処理が行われたコンピュータグラフィックスデータを、前記作成された符号語を用いてエントロピー符号化するエントロピー符号化手段と、
前記エントロピー符号化手段で得られた符号を、最終的に出力される符号総数を制御するための処理を行って符号化する符号数制御符号化手段と、
前記符号語の作成に基づいて、前記符号蓄積手段に蓄えられている関係情報と前記符号語情報蓄積手段に蓄えられている関係情報から復号に最低限必要な復号必要情報を抽出する抽出手段と、
前記復号必要情報をデータ量が少なくなるように符号化する抽出情報符号化手段と、
前記符号数制御符号化手段で符号化された符号と、前記符号化された復号必要情報とを出力する出力手段と、を具備することを特徴とするコンピュータグラフィックスデータ符号化装置。
【請求項６】
前記符号数制御符号化手段での前記符号総数は、該符号数制御符号化手段で生成される符号の総数であることを特徴とする請求項４または請求項５に記載のコンピュータグラフィックスデータ符号化装置。
【請求項７】
前記前処理手段は、量子化、正規化、および、一次微分の処理の少なくともいずれか１つを行うことを特徴とする請求項１から請求項６のいずれか１つに記載のコンピュータグラフィックスデータ符号化装置。
【請求項８】
前記エントロピー符号化手段は、ハフマン符号を使用して符号化することを特徴とする請求項１から請求項７のいずれか１つに記載のコンピュータグラフィックスデータ符号化装置。
【請求項９】
前記符号数制御符号化符号化手段は、符号を２つ以上に分割して符号化することを特徴とする請求項１から請求項８のいずれか１つに記載のコンピュータグラフィックスデータ符号化装置。
【請求項１０】
前記符号数制御符号化手段は、符号を、表現することができる最小長の表現とその符号長のペアの情報として符号化することを特徴とする請求項１から請求項８のいずれか１つに記載のコンピュータグラフィックスデータ符号化装置。
【請求項１１】
前記符号数制御符号化手段は、特定の符号長までの符号はそのまま出力し、該符号長を超える符号は新たな符号に置き換える符号化を行うことを特徴とする請求項１から請求項８のいずれか１つに記載のコンピュータグラフィックスデータ符号化装置。
【請求項１２】
請求項１または請求項２に記載のコンピュータグラフィックスデータ符号化装置が符号化したデータを復号化するコンピュータグラフィックスデータ復号化装置において、
前記符号化されたデータを取得する取得手段と、
前記符号化された復号必要情報を復号化する抽出情報復号化手段と、
前記復号化された復号必要情報に基づいて、符号語を復号化するための復号語を得るための復号情報を作成する復号作成手段と、
前記復号情報を蓄積する蓄積手段と、
前記エントロピー符号化された符号を、前記復号情報を使用して復号化するエントロピー復号化手段と、
前記エントロピー復号化手段で復号化されたデータを、符号総数が制御される以前の元データに復号化する元データ復号化手段と、
前記元データ復号化手段で復号化されたデータに、前記前処理とは逆の処理を行い前記前処理が行われる以前のデータに復号化する後処理復号化手段と、
前記後処理復号化手段で得られた、前記前処理が行われる以前のデータを出力する出力手段と、を具備することを特徴とするコンピュータグラフィックスデータ復号化装置。
【請求項１３】
請求項４または請求項５に記載のコンピュータグラフィックスデータ符号化装置が符号化したデータを復号化するコンピュータグラフィックスデータ復号化装置において、
前記符号化されたデータを取得する取得手段と、
前記符号化された復号必要情報を復号化する抽出情報復号化手段と、
典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄えている符号語情報蓄積手段と、
前記復号化された復号必要情報と、前記符号語情報蓄積手段に蓄えられている関係情報とから、符号語と該符号語に対応する復号語の関係である復号情報を作成する復号作成手段と、
前記復号情報を蓄積する復号情報蓄積部と、
前記エントロピー符号化された符号を、前記復号情報を使用して復号化するエントロピー復号化手段と、
前記エントロピー復号化手段で復号化されたデータを、符号総数が制御される以前の元データに復号化する元データ復号化手段と、
前記元データ復号化手段で復号化されたデータに、前記前処理とは逆の処理を行い前記前処理が行われる以前のデータに復号化する後処理復号化手段と、
前記後処理復号化手段で得られた、前記前処理が行われる以前のデータを出力する出力手段と、を具備することを特徴とするコンピュータグラフィックスデータ復号化装置。
【請求項１４】
コンピュータグラフィックスデータを取得し、
前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行い、
前記前処理が行われたコンピュータグラフィックスデータを、最終的に生成される符号総数を制御するための処理を行って符号化し、
前記符号総数を制御するための処理を行うことで得られた符号に含まれるエントロピー符号化を行うべき符号部分を蓄え、
前記蓄えられた符号部分に基づいて、エントロピー量の情報であるエントロピー情報を算出し、該エントロピー情報に基づいて符号語を作成し、
前記符号総数を制御するための処理を行うことで得られた符号を、前記作成された符号語を用いてエントロピー符号化し、
前記エントロピー情報から復号に最低限必要な復号必要情報を抽出し、
前記復号必要情報をデータ量が少なくなるように符号化し、
前記エントロピー符号化された符号と、前記符号化された復号必要情報とを出力することを特徴とするコンピュータグラフィックスデータ符号化方法。
【請求項１５】
コンピュータグラフィックスデータを取得し、
前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行い、
前記前処理が行われたコンピュータグラフィックスデータを蓄え、
前記蓄えられたコンピュータグラフィックスデータの符号部分に基づいて、エントロピー量の情報であるエントロピー情報を算出し、該エントロピー情報に基づいて符号語を作成し、
前記蓄えられたコンピュータグラフィックスデータの符号を、前記作成された符号語を用いてエントロピー符号化し、
前記エントロピー符号化された符号を、最終的に出力される符号総数を制御するための処理を行って符号化し、
前記エントロピー情報から復号に最低限必要な復号必要情報を抽出し、
前記復号必要情報をデータ量が少なくなるように符号化し、
前記符号総数を制御するための処理を行って符号化して得られた符号と、前記符号化された復号必要情報とを出力することを特徴とするコンピュータグラフィックスデータ符号化方法。
【請求項１６】
コンピュータグラフィックスデータを取得し、
前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行い、
前記前処理が行われたコンピュータグラフィックスデータを、最終的に出力される符号総数を制御するための処理を行って符号化し、
前記符号総数を制御するための処理を行って符号化して得られた符号に含まれる、エントロピー符号化を行うべき符号部分と、該符号部分の出現頻度と、の関係情報を蓄え、
典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄え、
前記符号部分と前記出現頻度との前記関係情報と前記エントロピー情報と前記符号語との前記関係情報に蓄えられている関係情報に基づいて、前記符号総数を制御するための処理を行って符号化して得られた符号の符号語を作成し、
前記符号総数を制御するための処理を行って符号化して得られた符号を、前記作成された符号語を用いてエントロピー符号化し、
前記符号語の作成に基づいて、前記符号部分と前記出現頻度との前記関係情報と前記エントロピー情報と前記符号語との前記関係情報から復号に最低限必要な復号必要情報を抽出し、
前記復号必要情報をデータ量が少なくなるように符号化し、
前記エントロピー符号化された符号と、前記符号化された復号必要情報とを出力することを特徴とするコンピュータグラフィックスデータ符号化方法。
【請求項１７】
コンピュータグラフィックスデータを取得し、
前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行い、
前記前処理で得られた符号に含まれる、エントロピー符号化を行うべき符号部分と、該符号部分の出現頻度と、の関係情報を蓄え、
典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄え、
前記符号部分と前記出現頻度との前記関係情報と前記エントロピー情報と前記符号語との前記関係情報に基づいて、前記前処理で得られた符号の符号語を作成し、
前記前処理が行われたコンピュータグラフィックスデータを、前記作成された符号語を用いてエントロピー符号化し、
前記エントロピー符号化で得られた符号を、最終的に出力される符号総数を制御するための処理を行って符号化し、
前記符号語の作成に基づいて、前記符号部分と前記出現頻度との前記関係情報と前記エントロピー情報と前記符号語との前記関係情報から復号に最低限必要な復号必要情報を抽出し、
前記復号必要情報をデータ量が少なくなるように符号化し、
前記符号総数を制御するための処理を行って符号化された符号と、前記符号化された復号必要情報とを出力することを特徴とするコンピュータグラフィックスデータ符号化方法。
【請求項１８】
請求項１４または請求項１５に記載のコンピュータグラフィックスデータ符号化方法によって符号化したデータを復号化するコンピュータグラフィックスデータ復号化方法において、
前記符号化されたデータを取得し、
前記符号化された復号必要情報を復号化し、
前記復号化された復号必要情報に基づいて、符号語を復号化するための復号語を得るための復号情報を作成し、
前記復号情報を蓄積し、
前記エントロピー符号化された符号を、前記復号情報を使用して復号化し、
前記エントロピー復号化で復号化されたデータを、符号総数が制御される以前の元データに復号化し、
前記元データに復号化されたデータに、前記前処理とは逆の処理を行い前記前処理が行われる以前のデータに復号化し、
復号化した、前記前処理が行われる以前のデータを出力することを特徴とするコンピュータグラフィックスデータ復号化方法。
【請求項１９】
請求項１６または請求項１７に記載のコンピュータグラフィックスデータ符号化方法によって符号化したデータを復号化するコンピュータグラフィックスデータ復号化方法において、
前記符号化されたデータを取得し、
前記符号化された復号必要情報を復号化し、
典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄え、
前記復号化された復号必要情報と、前記エントロピー情報と前記符号語との前記関係情報とから、符号語と該符号語に対応する復号語の関係である復号情報を作成し、
前記復号情報を蓄積し、
前記エントロピー符号化された符号を、前記復号情報を使用して復号化し、
前記復号情報を使用して復号化されたデータを、符号総数が制御される以前の元データに復号化し、
前記元データ復号化手段で復号化されたデータに、前記前処理とは逆の処理を行い前記前処理が行われる以前のデータに復号化し、
復号化した、前記前処理が行われる以前のデータを出力することを特徴とするコンピュータグラフィックスデータ復号化方法。
【請求項２０】
コンピュータを、
コンピュータグラフィックスデータを取得する取得手段と、
前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行う前処理手段と、
前記前処理が行われたコンピュータグラフィックスデータを、最終的に出力される符号総数を制御するための処理を行って符号化する符号数制御符号化手段と、
前記符号数制御符号化手段で得られた符号に含まれる、エントロピー符号化を行うべき符号部分を蓄える蓄積手段と、
前記蓄積手段で蓄えられた符号部分に基づいて、エントロピー量の情報であるエントロピー情報を算出し、該エントロピー情報に基づいて符号語を作成する符号作成手段と、
前記符号数制御符号化手段で得られた符号を、前記作成された符号語を用いてエントロピー符号化するエントロピー符号化手段と、
前記エントロピー情報から復号に最低限必要な復号必要情報を抽出する抽出手段と、
前記復号必要情報をデータ量が少なくなるように符号化する抽出情報符号化手段と、
前記エントロピー符号化された符号と、前記符号化された復号必要情報とを出力する出力手段として機能させるためのコンピュータグラフィックスデータ符号化プログラム。
【請求項２１】
コンピュータを、
コンピュータグラフィックスデータを取得する取得手段と、
前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行う前処理手段と、
前記前処理が行われたコンピュータグラフィックスデータを蓄える蓄積手段と、
前記蓄積手段で蓄えられたコンピュータグラフィックスデータの符号部分に基づいて、エントロピー量の情報であるエントロピー情報を算出し、該エントロピー情報に基づいて符号語を作成する符号作成手段と、
前記蓄積手段で蓄えられたコンピュータグラフィックスデータの符号を、前記作成された符号語を用いてエントロピー符号化するエントロピー符号化手段と、
前記エントロピー符号化された符号を、最終的に出力される符号総数を制御するための処理を行って符号化する符号数制御符号化手段と、
前記エントロピー情報から復号に最低限必要な復号必要情報を抽出する抽出手段と、
前記復号必要情報をデータ量が少なくなるように符号化する抽出情報符号化手段と、
前記符号数制御符号化手段で得られた符号と、前記符号化された復号必要情報とを出力する出力手段として機能させるためのコンピュータグラフィックスデータ符号化プログラム。
【請求項２２】
コンピュータを、
コンピュータグラフィックスデータを取得する取得手段と、
前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行う前処理手段と、
前記前処理が行われたコンピュータグラフィックスデータを、最終的に出力される符号総数を制御するための処理を行って符号化する符号数制御符号化手段と、
前記符号数制御符号化手段で得られた符号に含まれる、エントロピー符号化を行うべき符号部分と、該符号部分の出現頻度と、の関係情報を蓄える符号蓄積手段と、
典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄えている符号語情報蓄積手段と、
前記符号蓄積手段に蓄えられている関係情報と前記符号語情報蓄積手段に蓄えられている関係情報に基づいて、前記符号数制御符号化手段で得られた符号の符号語を作成する符号作成手段と、
前記符号数制御符号化手段で得られた符号を、前記作成された符号語を用いてエントロピー符号化するエントロピー符号化手段と、
前記符号語の作成に基づいて、前記符号蓄積手段に蓄えられている関係情報と前記符号語情報蓄積手段に蓄えられている関係情報から復号に最低限必要な復号必要情報を抽出する抽出手段と、
前記復号必要情報をデータ量が少なくなるように符号化する抽出情報符号化手段と、
前記エントロピー符号化された符号と、前記符号化された復号必要情報とを出力する出力手段として機能させるためのコンピュータグラフィックスデータ符号化プログラム。
【請求項２３】
コンピュータを、
コンピュータグラフィックスデータを取得する取得手段と、
前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行う前処理手段と、
前記前処理手段で得られた符号に含まれる、エントロピー符号化を行うべき符号部分と、該符号部分の出現頻度と、の関係情報を蓄える符号蓄積手段と、
典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄えている符号語情報蓄積手段と、
前記符号蓄積手段に蓄えられている関係情報と前記符号語情報蓄積手段に蓄えられている関係情報に基づいて、前記前処理手段で得られた符号の符号語を作成する符号作成手段と、
前記前処理が行われたコンピュータグラフィックスデータを、前記作成された符号語を用いてエントロピー符号化するエントロピー符号化手段と、
前記エントロピー符号化手段で得られた符号を、最終的に出力される符号総数を制御するための処理を行って符号化する符号数制御符号化手段と、
前記符号語の作成に基づいて、前記符号蓄積手段に蓄えられている関係情報と前記符号語情報蓄積手段に蓄えられている関係情報から復号に最低限必要な復号必要情報を抽出する抽出手段と、
前記復号必要情報をデータ量が少なくなるように符号化する抽出情報符号化手段と、
前記符号数制御符号化手段で符号化された符号と、前記符号化された復号必要情報とを出力する出力手段として機能させるためのコンピュータグラフィックスデータ符号化プログラム。
【請求項２４】
請求項２０または請求項２１に記載のコンピュータグラフィックスデータ符号化プログラムを使用して符号化したデータを復号化するためにコンピュータで使用されるコンピュータグラフィックスデータ復号化プログラムにおいて、
コンピュータを、
前記符号化されたデータを取得する取得手段と、
前記符号化された復号必要情報を復号化する抽出情報復号化手段と、
前記復号化された復号必要情報に基づいて、符号語を復号化するための復号語を得るための復号情報を作成する復号作成手段と、
前記復号情報を蓄積する蓄積手段と、
前記エントロピー符号化された符号を、前記復号情報を使用して復号化するエントロピー復号化手段と、
前記エントロピー復号化手段で復号化されたデータを、符号総数が制御される以前の元データに復号化する元データ復号化手段と、
前記元データ復号化手段で復号化されたデータに、前記前処理とは逆の処理を行い前記前処理が行われる以前のデータに復号化する後処理復号化手段と、
前記後処理復号化手段で得られた、前記前処理が行われる以前のデータを出力する出力手段として機能させるためのコンピュータグラフィックスデータ復号化プログラム。
【請求項２５】
請求項２２または請求項２３に記載のコンピュータグラフィックスデータ符号化プログラムを使用して符号化したデータを復号化するためにコンピュータで使用されるコンピュータグラフィックスデータ復号化プログラムにおいて、
コンピュータを、
前記符号化されたデータを取得する取得手段と、
前記符号化された復号必要情報を復号化する抽出情報復号化手段と、
典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄えている符号語情報蓄積手段と、
前記復号化された復号必要情報と、前記符号語情報蓄積手段に蓄えられている関係情報とから、符号語と該符号語に対応する復号語の関係である復号情報を作成する復号作成手段と、
前記復号情報を蓄積する復号情報蓄積部と、
前記エントロピー符号化された符号を、前記復号情報を使用して復号化するエントロピー復号化手段と、
前記エントロピー復号化手段で復号化されたデータを、符号総数が制御される以前の元データに復号化する元データ復号化手段と、
前記元データ復号化手段で復号化されたデータに、前記前処理とは逆の処理を行い前記前処理が行われる以前のデータに復号化する後処理復号化手段と、
前記後処理復号化手段で得られた、前記前処理が行われる以前のデータを出力する出力手段として機能させるためのコンピュータグラフィックスデータ復号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータグラフィックスにおけるデータの符号化装置、符号化方法、復号化装置、復号化方法に関する。
【背景技術】
【０００２】
近年、コンピュータグラフィックス技術の高性能化に伴い、グラフィックス処理ハードウェア（ＧＰＵ）の処理速度が飛躍的に向上してきている。しかし、グラフィックス処理を行うためのデータは、通常、メモリやハードディスクといった記憶媒体に蓄えられ、そこからＧＰＵに入力されるが、記憶媒体からのデータ読み込み、記憶媒体へのデータ書き込みには時間がかかる。
【０００３】
このため、いくらＧＰＵの速度が向上しても、データの読み込み、書き込みに時間がかかってしまい、この部分が、コンピュータグラフィックス処理のためのボトルネックとなっているという問題がある。
【０００４】
この問題を解消するため、読み込み、書き込みといったデータアクセスの際のデータ量を圧縮することで、データアクセスのスループットを上げる試みが行われてきている。例えば、ハフマン符号化を用いたデータ符号化処理を行うことで、データ量を圧縮している（例えば、非特許文献１参照）。
【０００５】
しかし、ハフマン符号化を始めとしたエントロピー符号化では、データ内のエントロピー量を符号の作成のための情報として用いるため、復号の際には、符号データとともに、この符号作成の際に使用したエントロピー量の情報を同時に用いる必要がある。例えば、ハフマン符号化では、データの出現頻度を用いて、出現頻度が高いデータほど短い符号が生成されるような符号化が行われるため、圧縮効率のよい符号を得ることができるが、復号の際には、符号化の際に用いた出現頻度情報と符号の対応を示した表（通常、ハフマンテーブルと呼ぶ）などを用いなければならない。
【０００６】
つまり、従来の符号化手法では、復号の際に、符号データだけではなく、何らかの形で上記の付加的情報（例えば、上記のハフマンテーブル）を同時に参照する必要がある。この際に、上記の付加情報の参照コストの問題が表面化する。
【０００７】
付加情報は通常、データとともに受け渡され、復号器が符号器で作成された符号語を復元するために用いられる。上述したように、符号語は、データ内のエントロピー量を用いて作成されるため、データによって付加情報の内容は様々である。そこで、復号器は、付加情報を受け取って、その情報から動的に符号語の復元を行うことになる。この際に、符号語の復元に時間を要してしまうと性能の低下を招く。折角、スループット向上のために圧縮符号化したのに、その分の効果を打ち消してしまうこととなり、圧縮符号化の意味がなくなってしまう。
【０００８】
そこで、なるべくこの符号語の復元に要する時間を少なく抑えたいのであるが、従来の手法では、動的に符号語を復元する必要があるため、非常に計算コストを要してしまう。
【０００９】
この問題を解決するために、符号語の復元を静的に行う手法も考えられてきている。復号器側に符号語の復元のための情報を全て予め蓄えておこうという試みである。このような試みはファクシミリで標準化されている符号化手法などで用いられている例があり、この例では、拡張ハフマン符号（Modified Huffman Coding）という手法が用いられている。しかし、このような手法には別の問題が存在する。１つには、復号器に符号を予め蓄えておくために、符号器では復号器に蓄えられた符号化しか行えないという問題である。例えば、復号器にＮ（Ｎは自然数）通りの符号語群を持っていた場合には、符号器では、Ｎ通りの符号から一番圧縮効率の良いものを選択するしかない。  
この拡張ハフマン符号の手法では、データに特定の傾向があるＦＡＸなどではたいした問題にならないかもしれないが、データの傾向を特定できないコンピュータグラフィックスデータなどでは、多大な圧縮効率低下を引き起こす可能性がある。また、復号器には、全ての符号語群を蓄えておく必要があるため、多大な記憶スペースを必要とする。さらに、このような多大な記憶スペースを超高速アクセス可能なメモリとして用意することは価格コスト面からも現実的でないため、アクセススピードの低下を引き起こしてしまう。これは、結局、スループットの多大な低下の原因となる。
【非特許文献１】Michael Deering, “Geometry Compression”, International Conference on Computer Graphics and Interactive Techniques, Proceedings of the 22nd annual conference on Computer graphics and interactive techniques (SIGGRAPH’95), pp13-20, 1995.
【発明の開示】
【発明が解決しようとする課題】
【００１０】
以上のように、従来手法では、スループットの低下や実現コストの上昇の原因となる様々な問題点があった。復号器は通常、ＧＰＵと呼ばれるグラフィックス処理に特化したハードウェア上で実現されることが多いが、このような問題は、
１．復号のための準備にかかる時間的、回路構成上のコスト
２．復号に要する時間的、回路構成上のコスト
に効いてくるため、スループットの低下、ハードウェアの価格の上昇に直結することになる。  
近年、ＧＰＵは、高機能な機器だけではなく、パチンコ台やカーナビシステム、携帯電話、携帯ゲーム機、携帯端末などといった低価格な機器にも搭載されるようになってきているが、上記のような価格の向上は、これらの機器に搭載するＧＰＵの実現としては大問題である。
【００１１】
本発明は、上述した問題を解決するために、コンピュータグラフィックスデータを符号化、復号化する場合のスループットの向上、ハードウェアのコスト削減を実現するコンピュータグラフィックスデータ符号化装置、復号化装置、符号化方法、および、復号化方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明のコンピュータグラフィックスデータ符号化装置によれば、コンピュータグラフィックスデータを取得する取得手段と、前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行う前処理手段と、前記前処理が行われたコンピュータグラフィックスデータを、最終的に出力される符号総数を制御するための処理を行って符号化する符号数制御符号化手段と、前記符号数制御符号化手段で得られた符号に含まれる、エントロピー符号化を行うべき符号部分を蓄える蓄積手段と、前記蓄積手段で蓄えられた符号部分に基づいて、エントロピー量の情報であるエントロピー情報を算出し、該エントロピー情報に基づいて符号語を作成する符号作成手段と、前記符号数制御符号化手段で得られた符号を、前記作成された符号語を用いてエントロピー符号化するエントロピー符号化手段と、前記エントロピー情報から復号に最低限必要な復号必要情報を抽出する抽出手段と、前記復号必要情報をデータ量が少なくなるように符号化する抽出情報符号化手段と、前記エントロピー符号化された符号と、前記符号化された復号必要情報とを出力する出力手段と、を具備することを特徴とする。
【００１３】
また、本発明のコンピュータグラフィックスデータ符号化装置によれば、コンピュータグラフィックスデータを取得する取得手段と、前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行う前処理手段と、前記前処理が行われたコンピュータグラフィックスデータを蓄える蓄積手段と、前記蓄積手段で蓄えられたコンピュータグラフィックスデータの符号部分に基づいて、エントロピー量の情報であるエントロピー情報を算出し、該エントロピー情報に基づいて符号語を作成する符号作成手段と、前記蓄積手段で蓄えられたコンピュータグラフィックスデータの符号を、前記作成された符号語を用いてエントロピー符号化するエントロピー符号化手段と、前記エントロピー符号化された符号を、最終的に出力される符号総数を制御するための処理を行って符号化する符号数制御符号化手段と、前記エントロピー情報から復号に最低限必要な復号必要情報を抽出する抽出手段と、前記復号必要情報をデータ量が少なくなるように符号化する抽出情報符号化手段と、前記符号数制御符号化手段で得られた符号と、前記符号化された復号必要情報とを出力する出力手段と、を具備することを特徴とする。
【００１４】
さらに、本発明のコンピュータグラフィックスデータ符号化装置によれば、コンピュータグラフィックスデータを取得する取得手段と、前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行う前処理手段と、前記前処理が行われたコンピュータグラフィックスデータを、最終的に出力される符号総数を制御するための処理を行って符号化する符号数制御符号化手段と、前記符号数制御符号化手段で得られた符号に含まれる、エントロピー符号化を行うべき符号部分と、該符号部分の出現頻度と、の関係情報を蓄える符号蓄積手段と、典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄えている符号語情報蓄積手段と、前記符号蓄積手段に蓄えられている関係情報と前記符号語情報蓄積手段に蓄えられている関係情報に基づいて、前記符号数制御符号化手段で得られた符号の符号語を作成する符号作成手段と、前記符号数制御符号化手段で得られた符号を、前記作成された符号語を用いてエントロピー符号化するエントロピー符号化手段と、前記符号語の作成に基づいて、前記符号蓄積手段に蓄えられている関係情報と前記符号語情報蓄積手段に蓄えられている関係情報から復号に最低限必要な復号必要情報を抽出する抽出手段と、前記復号必要情報をデータ量が少なくなるように符号化する抽出情報符号化手段と、前記エントロピー符号化された符号と、前記符号化された復号必要情報とを出力する出力手段と、を具備することを特徴とする。
【００１５】
またさらに、本発明のコンピュータグラフィックスデータ符号化装置によれば、コンピュータグラフィックスデータを取得する取得手段と、前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行う前処理手段と、前記前処理手段で得られた符号に含まれる、エントロピー符号化を行うべき符号部分と、該符号部分の出現頻度と、の関係情報を蓄える符号蓄積手段と、典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄えている符号語情報蓄積手段と、前記符号蓄積手段に蓄えられている関係情報と前記符号語情報蓄積手段に蓄えられている関係情報に基づいて、前記前処理手段で得られた符号の符号語を作成する符号作成手段と、前記前処理が行われたコンピュータグラフィックスデータを、前記作成された符号語を用いてエントロピー符号化するエントロピー符号化手段と、前記エントロピー符号化手段で得られた符号を、最終的に出力される符号総数を制御するための処理を行って符号化する符号数制御符号化手段と、前記符号語の作成に基づいて、前記符号蓄積手段に蓄えられている関係情報と前記符号語情報蓄積手段に蓄えられている関係情報から復号に最低限必要な復号必要情報を抽出する抽出手段と、前記復号必要情報をデータ量が少なくなるように符号化する抽出情報符号化手段と、前記符号数制御符号化手段で符号化された符号と、前記符号化された復号必要情報とを出力する出力手段と、を具備することを特徴とする。
【００１６】
本発明のコンピュータグラフィックスデータ復号化装置によれば、請求項１または請求項２に記載のコンピュータグラフィックスデータ符号化装置が符号化したデータを復号化するコンピュータグラフィックスデータ復号化装置において、前記符号化されたデータを取得する取得手段と、前記符号化された復号必要情報を復号化する抽出情報復号化手段と、前記復号化された復号必要情報に基づいて、符号語を復号化するための復号語を得るための復号情報を作成する復号作成手段と、前記復号情報を蓄積する蓄積手段と、前記エントロピー符号化された符号を、前記復号情報を使用して復号化するエントロピー復号化手段と、前記エントロピー復号化手段で復号化されたデータを、符号総数が制御される以前の元データに復号化する元データ復号化手段と、前記元データ復号化手段で復号化されたデータに、前記前処理とは逆の処理を行い前記前処理が行われる以前のデータに復号化する後処理復号化手段と、前記後処理復号化手段で得られた、前記前処理が行われる以前のデータを出力する出力手段と、を具備することを特徴とする。
【００１７】
また、本発明のコンピュータグラフィックスデータ復号化装置によれば、請求項４または請求項５に記載のコンピュータグラフィックスデータ符号化装置が符号化したデータを復号化するコンピュータグラフィックスデータ復号化装置において、前記符号化されたデータを取得する取得手段と、前記符号化された復号必要情報を復号化する抽出情報復号化手段と、典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄えている符号語情報蓄積手段と、前記復号化された復号必要情報と、前記符号語情報蓄積手段に蓄えられている関係情報とから、符号語と該符号語に対応する復号語の関係である復号情報を作成する復号作成手段と、前記復号情報を蓄積する復号情報蓄積部と、前記エントロピー符号化された符号を、前記復号情報を使用して復号化するエントロピー復号化手段と、前記エントロピー復号化手段で復号化されたデータを、符号総数が制御される以前の元データに復号化する元データ復号化手段と、前記元データ復号化手段で復号化されたデータに、前記前処理とは逆の処理を行い前記前処理が行われる以前のデータに復号化する後処理復号化手段と、前記後処理復号化手段で得られた、前記前処理が行われる以前のデータを出力する出力手段と、を具備することを特徴とする。
【００１８】
本発明のコンピュータグラフィックスデータ符号化方法によれば、コンピュータグラフィックスデータを取得し、前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行い、前記前処理が行われたコンピュータグラフィックスデータを、最終的に生成される符号総数を制御するための処理を行って符号化し、前記符号総数を制御するための処理を行うことで得られた符号に含まれるエントロピー符号化を行うべき符号部分を蓄え、前記蓄えられた符号部分に基づいて、エントロピー量の情報であるエントロピー情報を算出し、該エントロピー情報に基づいて符号語を作成し、前記符号総数を制御するための処理を行うことで得られた符号を、前記作成された符号語を用いてエントロピー符号化し、前記エントロピー情報から復号に最低限必要な復号必要情報を抽出し、前記復号必要情報をデータ量が少なくなるように符号化し、前記エントロピー符号化された符号と、前記符号化された復号必要情報とを出力することを特徴とする。
【００１９】
また、本発明のコンピュータグラフィックスデータ符号化方法によれば、コンピュータグラフィックスデータを取得し、前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行い、前記前処理が行われたコンピュータグラフィックスデータを蓄え、前記蓄えられたコンピュータグラフィックスデータの符号部分に基づいて、エントロピー量の情報であるエントロピー情報を算出し、該エントロピー情報に基づいて符号語を作成し、前記蓄えられたコンピュータグラフィックスデータの符号を、前記作成された符号語を用いてエントロピー符号化し、前記エントロピー符号化された符号を、最終的に出力される符号総数を制御するための処理を行って符号化し、前記エントロピー情報から復号に最低限必要な復号必要情報を抽出し、前記復号必要情報をデータ量が少なくなるように符号化し、前記符号総数を制御するための処理を行って符号化して得られた符号と、前記符号化された復号必要情報とを出力することを特徴とする。
【００２０】
さらに、本発明のコンピュータグラフィックスデータ符号化方法によれば、コンピュータグラフィックスデータを取得し、前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行い、前記前処理が行われたコンピュータグラフィックスデータを、最終的に出力される符号総数を制御するための処理を行って符号化し、前記符号総数を制御するための処理を行って符号化して得られた符号に含まれる、エントロピー符号化を行うべき符号部分と、該符号部分の出現頻度と、の関係情報を蓄え、典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄え、前記符号部分と前記出現頻度との前記関係情報と前記エントロピー情報と前記符号語との前記関係情報に蓄えられている関係情報に基づいて、前記符号総数を制御するための処理を行って符号化して得られた符号の符号語を作成し、前記符号総数を制御するための処理を行って符号化して得られた符号を、前記作成された符号語を用いてエントロピー符号化し、前記符号語の作成に基づいて、前記符号部分と前記出現頻度との前記関係情報と前記エントロピー情報と前記符号語との前記関係情報から復号に最低限必要な復号必要情報を抽出し、前記復号必要情報をデータ量が少なくなるように符号化し、前記エントロピー符号化された符号と、前記符号化された復号必要情報とを出力することを特徴とする。
【００２１】
またさらに、本発明のコンピュータグラフィックスデータ符号化方法によれば、コンピュータグラフィックスデータを取得し、前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行い、前記前処理で得られた符号に含まれる、エントロピー符号化を行うべき符号部分と、該符号部分の出現頻度と、の関係情報を蓄え、典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄え、前記符号部分と前記出現頻度との前記関係情報と前記エントロピー情報と前記符号語との前記関係情報に基づいて、前記前処理で得られた符号の符号語を作成し、前記前処理が行われたコンピュータグラフィックスデータを、前記作成された符号語を用いてエントロピー符号化し、前記エントロピー符号化で得られた符号を、最終的に出力される符号総数を制御するための処理を行って符号化し、前記符号語の作成に基づいて、前記符号部分と前記出現頻度との前記関係情報と前記エントロピー情報と前記符号語との前記関係情報から復号に最低限必要な復号必要情報を抽出し、前記復号必要情報をデータ量が少なくなるように符号化し、前記符号総数を制御するための処理を行って符号化された符号と、前記符号化された復号必要情報とを出力することを特徴とする。
【００２２】
本発明のコンピュータグラフィックスデータ復号化方法によれば、請求項１４または請求項１５に記載のコンピュータグラフィックスデータ符号化方法によって符号化したデータを復号化するコンピュータグラフィックスデータ復号化方法において、前記符号化されたデータを取得し、前記符号化された復号必要情報を復号化し、前記復号化された復号必要情報に基づいて、符号語を復号化するための復号語を得るための復号情報を作成し、前記復号情報を蓄積し、前記エントロピー符号化された符号を、前記復号情報を使用して復号化し、前記エントロピー復号化で復号化されたデータを、符号総数が制御される以前の元データに復号化し、前記元データに復号化されたデータに、前記前処理とは逆の処理を行い前記前処理が行われる以前のデータに復号化し、復号した、前記前処理が行われる以前のデータを出力することを特徴とする。
【００２３】
また、本発明のコンピュータグラフィックスデータ復号化方法によれば、請求項１６または請求項１７に記載のコンピュータグラフィックスデータ符号化方法によって符号化したデータを復号化するコンピュータグラフィックスデータ復号化方法において、前記符号化されたデータを取得し、前記符号化された復号必要情報を復号化し、典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄え、前記復号化された復号必要情報と、前記エントロピー情報と前記符号語との前記関係情報とから、符号語と該符号語に対応する復号語の関係である復号情報を作成し、前記復号情報を蓄積し、前記エントロピー符号化された符号を、前記復号情報を使用して復号化し、前記復号情報を使用して復号化されたデータを、符号総数が制御される以前の元データに復号化し、前記元データ復号化手段で復号化されたデータに、前記前処理とは逆の処理を行い前記前処理が行われる以前のデータに復号化し、復号した、前記前処理が行われる以前のデータを出力することを特徴とする。
【００２４】
本発明のコンピュータグラフィックスデータ符号化プログラムによれば、
コンピュータを、
コンピュータグラフィックスデータを取得する取得手段と、前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行う前処理手段と、前記前処理が行われたコンピュータグラフィックスデータを、最終的に出力される符号総数を制御するための処理を行って符号化する符号数制御符号化手段と、前記符号数制御符号化手段で得られた符号に含まれる、エントロピー符号化を行うべき符号部分を蓄える蓄積手段と、前記蓄積手段で蓄えられた符号部分に基づいて、エントロピー量の情報であるエントロピー情報を算出し、該エントロピー情報に基づいて符号語を作成する符号作成手段と、前記符号数制御符号化手段で得られた符号を、前記作成された符号語を用いてエントロピー符号化するエントロピー符号化手段と、前記エントロピー情報から復号に最低限必要な復号必要情報を抽出する抽出手段と、前記復号必要情報をデータ量が少なくなるように符号化する抽出情報符号化手段と、前記エントロピー符号化された符号と、前記符号化された復号必要情報とを出力する出力手段として機能させるためのものである。
【００２５】
また、本発明のコンピュータグラフィックスデータ符号化プログラムによれば、
コンピュータを、
コンピュータグラフィックスデータを取得する取得手段と、前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行う前処理手段と、前記前処理が行われたコンピュータグラフィックスデータを蓄える蓄積手段と、前記蓄積手段で蓄えられたコンピュータグラフィックスデータの符号部分に基づいて、エントロピー量の情報であるエントロピー情報を算出し、該エントロピー情報に基づいて符号語を作成する符号作成手段と、前記蓄積手段で蓄えられたコンピュータグラフィックスデータの符号を、前記作成された符号語を用いてエントロピー符号化するエントロピー符号化手段と、前記エントロピー符号化された符号を、最終的に出力される符号総数を制御するための処理を行って符号化する符号数制御符号化手段と、前記エントロピー情報から復号に最低限必要な復号必要情報を抽出する抽出手段と、前記復号必要情報をデータ量が少なくなるように符号化する抽出情報符号化手段と、前記符号数制御符号化手段で得られた符号と、前記符号化された復号必要情報とを出力する出力手段として機能させるためのものである。
【００２６】
さらに、本発明のコンピュータグラフィックスデータ符号化プログラムによれば、
コンピュータを、
コンピュータグラフィックスデータを取得する取得手段と、前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行う前処理手段と、前記前処理が行われたコンピュータグラフィックスデータを、最終的に出力される符号総数を制御するための処理を行って符号化する符号数制御符号化手段と、前記符号数制御符号化手段で得られた符号に含まれる、エントロピー符号化を行うべき符号部分と、該符号部分の出現頻度と、の関係情報を蓄える符号蓄積手段と、典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄えている符号語情報蓄積手段と、前記符号蓄積手段に蓄えられている関係情報と前記符号語情報蓄積手段に蓄えられている関係情報に基づいて、前記符号数制御符号化手段で得られた符号の符号語を作成する符号作成手段と、前記符号数制御符号化手段で得られた符号を、前記作成された符号語を用いてエントロピー符号化するエントロピー符号化手段と、前記符号語の作成に基づいて、前記符号蓄積手段に蓄えられている関係情報と前記符号語情報蓄積手段に蓄えられている関係情報から復号に最低限必要な復号必要情報を抽出する抽出手段と、前記復号必要情報をデータ量が少なくなるように符号化する抽出情報符号化手段と、前記エントロピー符号化された符号と、前記符号化された復号必要情報とを出力する出力手段として機能させるためのものである。
【００２７】
またさらに、本発明のコンピュータグラフィックスデータ符号化プログラムによれば、
コンピュータを、
コンピュータグラフィックスデータを取得する取得手段と、前記取得されたコンピュータグラフィックスデータを符号化するための前処理を行う前処理手段と、前記前処理手段で得られた符号に含まれる、エントロピー符号化を行うべき符号部分と、該符号部分の出現頻度と、の関係情報を蓄える符号蓄積手段と、典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄えている符号語情報蓄積手段と、前記符号蓄積手段に蓄えられている関係情報と前記符号語情報蓄積手段に蓄えられている関係情報に基づいて、前記前処理手段で得られた符号の符号語を作成する符号作成手段と、前記前処理が行われたコンピュータグラフィックスデータを、前記作成された符号語を用いてエントロピー符号化するエントロピー符号化手段と、前記エントロピー符号化手段で得られた符号を、最終的に出力される符号総数を制御するための処理を行って符号化する符号数制御符号化手段と、前記符号語の作成に基づいて、前記符号蓄積手段に蓄えられている関係情報と前記符号語情報蓄積手段に蓄えられている関係情報から復号に最低限必要な復号必要情報を抽出する抽出手段と、前記復号必要情報をデータ量が少なくなるように符号化する抽出情報符号化手段と、前記符号数制御符号化手段で符号化された符号と、前記符号化された復号必要情報とを出力する出力手段として機能させるためのものである。
【００２８】
本発明のコンピュータグラフィックスデータ復号化プログラムによれば、請求項２０または請求項２１に記載のコンピュータグラフィックスデータ符号化プログラムを使用して符号化したデータを復号化するためにコンピュータで使用されるコンピュータグラフィックスデータ復号化プログラムにおいて、
コンピュータを、
前記符号化されたデータを取得する取得手段と、前記符号化された復号必要情報を復号化する抽出情報復号化手段と、前記復号化された復号必要情報に基づいて、符号語を復号化するための復号語を得るための復号情報を作成する復号作成手段と、前記復号情報を蓄積する蓄積手段と、前記エントロピー符号化された符号を、前記復号情報を使用して復号化するエントロピー復号化手段と、前記エントロピー復号化手段で復号化されたデータを、符号総数が制御される以前の元データに復号化する元データ復号化手段と、前記元データ復号化手段で復号化されたデータに、前記前処理とは逆の処理を行い前記前処理が行われる以前のデータに復号化する後処理復号化手段と、前記後処理復号化手段で得られた、前記前処理が行われる以前のデータを出力する出力手段として機能させるためのものである。
【００２９】
また、本発明のコンピュータグラフィックスデータ復号化プログラムによれば、請求項２２または請求項２３に記載のコンピュータグラフィックスデータ符号化プログラムを使用して符号化したデータを復号化するためにコンピュータで使用されるコンピュータグラフィックスデータ復号化プログラムにおいて、
コンピュータを、
前記符号化されたデータを取得する取得手段と、前記符号化された復号必要情報を復号化する抽出情報復号化手段と、典型的なデータにおけるエントロピー量の情報であるエントロピー情報と符号語との関係情報を予め蓄えている符号語情報蓄積手段と、前記復号化された復号必要情報と、前記符号語情報蓄積手段に蓄えられている関係情報とから、符号語と該符号語に対応する復号語の関係である復号情報を作成する復号作成手段と、前記復号情報を蓄積する復号情報蓄積部と、前記エントロピー符号化された符号を、前記復号情報を使用して復号化するエントロピー復号化手段と、前記エントロピー復号化手段で復号化されたデータを、符号総数が制御される以前の元データに復号化する元データ復号化手段と、前記元データ復号化手段で復号化されたデータに、前記前処理とは逆の処理を行い前記前処理が行われる以前のデータに復号化する後処理復号化手段と、前記後処理復号化手段で得られた、前記前処理が行われる以前のデータを出力する出力手段として機能させるためのものである。
【発明の効果】
【００３０】
本発明のコンピュータグラフィックスデータ符号化装置、復号化装置、符号化方法、および、復号化方法によれば、コンピュータグラフィックスデータを符号化、復号化する場合のスループットの向上、ハードウェアのコスト削減を実現することができる。
【発明を実施するための最良の形態】
【００３１】
以下、図面を参照しながら本発明の実施形態に係るコンピュータグラフィックスデータ符号化装置、復号化装置、符号化方法、および、復号化方法について詳細に説明する。  
（第１の実施形態）   
図１は、本発明の第１の実施形態に係るコンピュータグラフィックスデータ符号化装置の全体構成図である。  
本実施形態のコンピュータグラフィックスデータ符号化装置は、入力部１０１、前処理符号化部１０２、符号数制御符号化部１０３、エントロピー情報蓄積部１０４、符号作成部１０５、エントロピー符号化部１０６、抽出部１０７、抽出情報符号化部１０８、出力部１０９を備えている。
【００３２】
入力部１０１は、コンピュータグラフィックスデータを取得する。  
前処理符号化部１０２は、入力部１０１で得られたデータの量子化、正規化の処理など前処理を行う。  
符号数制御符号化部１０３は、前処理符号化部１０２で得られた符号を、エントロピー符号化部１０６で符号化する際に、エントロピー符号化部１０６で生成される符号総数を制御するための処理を行って符号化する。  
エントロピー情報蓄積部１０４は、符号数制御符号化部１０３で得られた符号のエントロピー情報を蓄える。  
符号作成部１０５は、エントロピー情報蓄積部１０４で蓄えられたエントロピー情報を用いて符号語を作成する。  
エントロピー符号化部１０６は、符号数制御符号化部１０３で得られた符号を、符号作成部１０５で作成された符号語を用いてエントロピー符号化する。  
抽出部１０７は、符号作成部１０５で符号語を作成した際に用いたエントロピー情報から復号する際に最低限必要な復号情報を抽出する。  
抽出情報符号化部１０８は、抽出部１０７で得られた復号情報を符号化する。  
出力部１０９は、エントロピー符号化部１０６で得られた符号と、抽出情報符号化部１０８で得られた符号を出力する。  
以下、各部について詳細に説明する。
【００３３】
＜＜入力部１０１＞＞  
入力部１０１は、コンピュータグラフィックスデータを取得する部分である。コンピュータグラフィックスでは、通常、形状はポリゴンという３角形の組み合わせで表現される。このとき、形状のデータは、３角形の各頂点の位置座標の集合として表現される。位置座標は、３次元空間における位置（ｘ，ｙ，ｚ）という３次元ベクトル、あるいは、同次座標系を用いて、（ｘ，ｙ，ｚ，ｗ）という４次元ベクトルで表現される。
【００３４】
また、コンピュータグラフィックスでは、頂点データは、位置座標の他に、法線情報や色情報、表面特性情報、など様々な情報を用いて表現されている。これらの情報は全て、ベクトルデータとして表現可能である。そこで、本発明の実施形態では、コンピュータグラフィックスデータとは、位置や法線、色情報などを表現するための、数値を各要素として持つ任意次元のベクトルデータを指すこととする。  
入力部１０１はこのようなベクトルデータの集合を受け取る。以降、処理の内容を具体的に説明するために、位置データを例として説明をするが、他のデータに関しても同様である。
【００３５】
位置データの場合、上述したように、（ｘ，ｙ，ｚ）の３次元ベクトルデータあるいは、（ｘ，ｙ，ｚ，ｗ）の４次元ベクトルデータとして表現される。以降では、（ｘ，ｙ，ｚ）の３次元ベクトルデータの場合を例として説明する。  
位置データ（ｘ，ｙ，ｚ）の各要素は、それぞれ、３次元空間上のｘ座標、ｙ座標、ｚ座標を表現しており、それぞれ、小数データとして表現されることが多い。データは、ベクトルとして管理される。そのベクトルデータが、全ての頂点分だけ入力部１０１に逐次入力される。
【００３６】
＜＜前処理符号化部１０２＞＞   
前処理符号化部１０２は、入力部１０１で取得した頂点の、法線情報や色情報、表面特性情報などの各種データ（本実施形態では、上述したように、一例として位置データで説明する）の量子化、正規化などを行う。  
上述したように、頂点データは小数データを各要素として持つベクトルデータである。この各要素の値をコンピュータ内で表現可能なように量子化する必要がある。この際、幾つかの量子化の手法があるが、大きく分けて、小数値を浮動小数表現で表現する量子化方法と、固定小数表現で表現する方法がある。これらの量子化の手法は本発明の実施形態の本質ではないので詳細はここでは説明しない。簡単に説明すれば、量子化する際に、量子化したデータの中で、小数点の位置を固定として表現するのが固定小数表現であり、そうしないのが浮動小数表現である。なお、量子化の際に用いるビット長（量子化ビット長と呼ぶ）を３２ビットとした浮動小数表現は、ＩＥＥＥ７５４に規定されている。
【００３７】
浮動小数表現は、非常に広範囲のデータ（２−１２６から２１２７まで）を３２ビットのデータとして表現できるのが特徴であるが、小数データを符号部、指数部、仮数部という情報として管理するため、数値の扱い方が複雑となることが多い。  
そこで、低価格なハードウェアシステムを想定した場合、固定小数表現が採用されることが多い。しかし、固定小数表現では、量子化した際の小数点があるビット位置を固定としているため、表現できる値の範囲が小さいという問題がある。また、小数点位置が固定のため、表現できる小数値の精度に限界があるという問題がある。
【００３８】
この問題を解消するために、データを正規化する必要がある。データを何らかの形で正規化して、正規化データの出現範囲を上記の固定小数表現における数値の表現範囲に納めることで、上記の固定小数表現における精度の問題を解消することが可能となる。
【００３９】
＜正規化＞  
次に、前処理符号化部１０２が行う、データの正規化について説明する。  
データの正規化は、符号化したい全てのデータの値が、特定の範囲内に収まるように変換することである。具体的には、データの正規化では、例えば、各データ値をデータ内に存在する最大値で除算することで正規化が行われる。以下では、データを−１〜１に正規化する例を説明する。
【００４０】
例えば、以下のような位置データ列（ｘｍ，ｙｍ，ｚｍ）があるとする。ここで、ｍ＝０，１，…，ｎとする。  
ｘ１，ｙ１，ｚ１ 
ｘ２，ｙ２，ｚ２ 
．．．  
ｘｎ，ｙｎ，ｚｎ 
まず、このデータ列中の最大値Ｖｍａｘを取得する。Ｖｍａｘは、次の式（１）で求められる。  
Ｖｍａｘ＝ｍａｘ（｜ｘ１｜，｜ｙ１｜，｜ｚ１｜，｜ｘ２｜，…，｜ｘｎ｜，｜ｙｎ｜，｜ｚｎ｜）・・・（１）  
ここで、ｍａｘ（  ）は、括弧内の要素の最大値を返す関数である。
【００４１】
次に、正規化値（scale）を計算する。正規化値は、式（２）により求める。  
scale＝Ｖｍａｘ・・・（２）  
頂点データの正規化は、以下の式（３）により行う。ここで、Ｖはオリジナルのデータ、Ｖ’は正規化後のデータを示す。  
Ｖ’＝Ｖ／scale・・・（３）  
このようにすることで、データは、−１〜１に正規化される。
【００４２】
正規化の際、データを任意の領域に分割し、以上の処理を、分割した領域ごとに行うことで、正規化のための精度を向上させることができる。領域の分割の範囲は、なるべくデータのオーダーが似ている範囲で選ぶ。
【００４３】
コンピュータグラフィックスのデータでは、通常、幾つかの部位に分割されて作成されていることが多い。幾つかの部位に分割されて作成されていることについて図２を参照して説明する。図２は、一例として、森の中に電車が走っているシーンを示す図である。このデータの場合、データは「列車」、「地面」、「線路」、「木々」、・・・、といった単位でグループ分けされて作成されている。  
正規化処理は、このようなそれぞれのグループの中で行われることが望ましい。
【００４４】
このようにした場合、前処理符号化部１０２はデータを、  
正規化値（＝scaleの値）、データ、データ、...、正規化値、データ、データ、...  
という並びで管理する。「正規化値」の適用範囲は、正規化値が登場してから、次の正規化値が出てくるまでの範囲に存在する「データ」の列である。ここで、位置データを正規化した正規化位置データの例について図３を参照して説明する。正規化値がscaleｉ（ｉ＝１，２，…）である（ｘｊ，ｙｊ，ｚｊ）（ｊ＝１，２，…，ｎ，…，ｍ，…）は、図３に示したように、それぞれ（ｘｊ／scaleｉ，ｙｊ／scaleｉ，ｚｊ／scaleｉ）と正規化される。
【００４５】
なお、元々特定の範囲に収まっているデータを新たに正規化する必要はない。例えば、位置データではなく法線データの場合、正規化法線データ（法線ベクトルの長さが１のデータ）としてデータが作成されていることが多い。このような場合、元のデータは必ず−１〜１の間にあることが保証されているため、前処理符号化部１０２が法線データを正規化する必要はない。
【００４６】
＜量子化＞  
次に、前処理符号化部１０２が行う、量子化について説明する。  
量子化の一手法のデータフォーマットについて図４を参照して説明する。なお、以降の説明はあくまでも一手法を具体的に説明したものであり、これに限定されるものではない。
【００４７】
図４は、１６ビットの量子化ビット長で量子化した例である。このフォーマットは、符号と整数部を表す１ビットと、小数部を表す１５ビットからなっており、このフォーマットにしたがって、先に正規化されたデータが量子化される。例えば、０．２５は、００１０００００００００００００に、−０．１１１は、１１１１０００１１１００１０１１に量子化される。
【００４８】
上記で説明した正規化値は、［−１，１］までの値を取る。通常、この範囲の値を表現するためには、符号および整数部として２ビット必要である。しかし、２ビット用いてしまうと、未使用領域（すなわち、［−２，−１），（１，２］の領域）が生じるため、メモリ量の無駄が多くなってしまう。さらに、小数部が１４ビットとなり、小数表現精度が低下する。そこで、本手法では、符号および整数部で１ビット、小数部で１５ビットの表現とする。
【００４９】
このように表現した場合、表現可能領域は、−１から１−１／２１５  （＝０．９９９９６９４８２４２１８７５）までの量子化値となる。［１−１／２１５，１］の値が表現できなくなるため、この範囲の値は全て１−１／２１５  と取り決める。すなわち、
ｉｆ  （value＞１−１／２１５  ）  ｔｈｅｎ  value＝１−１／２１５ 
とする。なお、この取り決めにより、最大で１／２１５  ＝約０．００００３程度の誤差が生じる。
【００５０】
一般に、小数部をＮビットとすれば、量子化ビット長はＮ＋１ビットとなる。ユーザに量子化ビット長を指定させることにすれば、ユーザが量子化の精度をコントロールすることができる。  
このように、量子化ビット長をユーザの指示により可変とすると、複数のビット長のデータを符号数制御符号化部１０３以降の各部で扱う必要がある。このような煩雑さを回避するために、正規化の際に、式（２）の代わりに、以下の式（４）ように正規化値を採用することで、量子化ビット長を変化させても内部的には特定のビット長でデータを表現することが可能となる。  
scale＝Ｖｍａｘ×２Ｑ−Ｎ・・・（４）  
ここで、Ｑは扱う対象とする最大の量子化ビット長、Ｎはユーザによって指定された量子化ビット長でありＮとして２以上Ｑ以下の自然数を指定する。Ｎを大きくすると、符号化の効率が減少する代わりに頂点データの精度の劣化を抑えることができる。逆に、Ｎを小さくすると、高い符号化効率が得られる反面、頂点データ精度が劣化する。この２つの関係はトレードオフである。
【００５１】
このようにすることで、データは−１／２１６−Ｎ〜−１／２１６−Ｎに正規化される。このため、データの精度は、実質的にＮビット精度となる。Ｑ＝１６として図４の量子化フォーマットを内部的に用いることで、内部表現としては、常に１６ビットだが、データ精度をユーザの指定ビットとして扱うことができる。その分のファクタが、式（４）に示されるように、正規化値（scale）に含まれることになる。
【００５２】
なお、正規化値（scale）は、復号時の精度を考慮して、例えば、３２ビット浮動小数表現で量子化する。また、式（４）に示したこの手法による処理は必須ではないが、以降では、このような手法を採用したとして、以下の実施形態の残りの各部の説明をする。
【００５３】
なお、以上では、量子化の方式を特定フォーマットの固定小数表現として説明してきたが、これに限定されるものではない。浮動小数表現をそのまま用いてもよいし、ここに記していない表現手法を用いて符号化を行っても構わない。
【００５４】
また、前処理符号化部１０２では、さらに、データの一次微分を取ることがある。これは、後述するエントロピー符号化の効果を高めるためである。以下でその方法を説明する。  
＜一次微分＞  
上記で得られた量子化データの一次微分を計算する。一次微分ベクトルデータΔＶｎは、式（５）により計算する。  
ΔＶｎ＝Ｖｎ−Ｖｎ−１      （ｎ＝０，１，２，…）・・・（５）  
ここで、Ｖｎはｎ番目の位置ベクトルデータで、Ｖ−１  はゼロベクトルとする。
【００５５】
例えば、量子化データが位置データの場合、図５に示したように計算され、一次微分データが求められる。この際、本実施例では、量子化データは、−１から１の値をとり得るため、微分値は、−２から２の値をとり得る。そのため、図４の１６ビット固定小数表現では、オーバーフロー、アンダーフローが生じてしまう。  
これを防ぐためにこの場合、図６に示したような関数を用いて実際の微分値を変換して処理することで、１６ビット固定小数表現のままで微分値を一意に保有することが可能である。実際の一次微分値の大きさは、最大で２のため、大きさ２の範囲では、図６の表現で一意に微分値を決めることができる。  
例えば、Ｖｎ  が１６’ｂ１０１００１１００１１００１１０（＝−０．７）、Ｖｎ−１  が１６’ｂ０１００１１００１１００１１０１（＝０．６）の場合、式（５）と図６に示した関数を使用して、ΔＶｎは、１６’ｂ０１０１１００１１００１１０１０と計算される。
【００５６】
以上で前処理符号化部１０２の処理を終了する。前処理符号化部１０２は、後段のための前処理のための符号化を行う部である。この前処理符号化部１０２により、後段では、量子化された１６ビットのビット列を一様に扱うことが可能となる。  
なお、以上では、データの正規化、量子化、一次微分の例を示したが、あくまでも、これは実施の一形態であり、これらに限定されるものではない。
【００５７】
＜＜符号数制御符号化部１０３＞＞  
符号数制御符号化部１０３は、前処理符号化部１０２で得られた符号を、エントロピー符号化部１０６で生成される符号総数を制御するための処理を行って符号化するためのものである。
【００５８】
仮に、エントロピー符号化部１０６がエントロピー符号化を行う際に、前処理符号化部１０２で得られた符号をそのままエントロピー符号化部１０６で符号化した場合、出現しうる総符号数は、量子化ビット長が１６ビットの場合、２１６  通りにも及んでしまう。また、出現しうる符号の長さは、最長で、２１６＋１ビットにもなる。  
つまり、前処理符号化部１０２で得られた符号をそのままエントロピー符号化部１０６で符号化した場合、この符号を復号する復号器では、上記を考慮した上で、あらゆる条件にも適用可能な復号器を設計する必要がある。これは、背景技術の項でも述べたように、復号器の計算コスト面からも、価格コスト面からも非常に問題である。
【００５９】
符号数制御符号化部１０３は、このような問題を解消するためのもので、前処理符号化部１０２で得られた符号をさらに符号化し、エントロピー符号化部１０６で符号化する際に出現しうる符号総数を制御して限定するとともに、出現しうる符号の長さも制御して限定する。
【００６０】
＜ＳｚＢＩＮ符号化とフォーマット＞  
符号数制御符号化部１０３は、前処理符号化部１０２で得られた符号を、「符号を表現することができる最小長の表現とその符号長のペア」（以降、ＳｚＢＩＮ符号と呼ぶ）として符号化することを特徴とする。
【００６１】
ＳｚＢＩＮ符号は、データを、後に詳述するＢＩＮ符号（表現可能な最小ビット長のデータ）に変換し、そのビット長情報（Ｓｚ）と合わせて１符号とする形式である。ＢＩＮ部分に、後述するＢＩＮ符号化によって得られた符号が格納され、Ｓｚ部に、そのＢＩＮ符号の符号長が格納される。ＳｚＢＩＮ符号のフォーマットを図７に示す。
【００６２】
本実施形態では、図４に示したように、符号化前のデータは１６ビット固定小数で表現されている。この場合、ＢＩＮ符号化により符号化されるＢＩＮ符号は、０〜１６までのビット長をとり得る。つまり、Ｓｚのとり得る範囲は０〜１６である。そこで、Ｓｚ部は５ビットの固定長で表現される。ＢＩＮ部は、ＢＩＮ符号化によって得られる可変長データとなる。したがって、Ｓｚ部に５ビットを割り当てた場合、値が１７〜３１の領域は未使用領域となる。そこで、必要ならば、この未使用領域を各種のパラメータ値の格納に用いてもよい。例えば、Ｓｚが１７以上の値である場合は、続くＢＩＮデータ領域にパラメータ値が格納されていることに取り決める。この例では、Ｓｚは、ＢＩＮ部のビット長情報を示すのではなく、どのパラメータが格納されているかの識別子となる。続くＢＩＮ部のビット長は、予め分かっているパラメータ値のデータ長である（具体的な事例に関しては後に図９を参照して説明する）。
【００６３】
＜ＢＩＮ符号化の方法＞  
符号数制御符号化部１０３が得るＢＩＮ符号は、１６ビット固定小数表現のデータに以下の２段階の変換を施すことで得られる。  
１．１６ビットデータを２の補数表現の整数データと考え、２の補数表現における最小表現に変換する。  
２．１で得られた最小表現のＭＳＢ（Most Significant bit：最上位ビット）で残りのビットを引く。
【００６４】
まずステップ１の「１６ビット固定小数表現→２の補数最小表現」の変換に関して説明する。  
１６ビットデータが正数の場合、ＭＳＢを除き、ＭＳＢの次のビットを含んで連続している０を全て取り除いたものが、２の補数における最小表現である。例えば、１６’ｂ０００００１０１１００１１１１０は、ＭＳＢの次のビットから連続している０が取り除かれ、１２’ｂ０１０１１００１１１１０に変換される。  
１６ビットデータが負数の場合、ＭＳＢを除き、ＭＳＢの次のビットを含んで連続している１を全て取り除いたものが、２の補数における最小表現である。例えば、１６’ｂ１１１００１０１１００１１１１０は、連続する１が取り除かれ、１４’ｂ１００１０１１００１１１１０に変換される。
【００６５】
次にステップ２について説明する。ステップ２では、ステップ１で得られた２の補数における最小表現のＭＳＢで残りのビットを引く処理を行う。具体例を示しながら、処理内容に関して説明する。
【００６６】
（１６ビットデータが正数の場合）ステップ１で得られた最小表現が１２’ｂ０１０１１００１１１１０である場合、最小表現のＭＳＢは１’ｂ０、残りのビットは１１’ｂ１０１１００１１１１０である。そこで、ＭＳＢで残りを引くと、  
１１’ｂ１０１１００１１１１０−１’ｂ０＝１１’ｂ１０１１００１１１１０  
となり、１６’ｂ０００００１０１１００１１１１０のＢＩＮ符号が得られる。
【００６７】
（１６ビットデータが負数の場合）ステップ１で得られた最小表現が１４’ｂ１００１０１１００１１１１０である場合、最小表現のＭＳＢは１’ｂ１、残りのビットは１３’ｂ００１０１１００１１１１０である。そこで、ＭＳＢで残りを引くと、
１３’ｂ００１０１１００１１１１０−１’ｂ１＝１３’ｂ００１０１１００１１１０１  
となり、１６’ｂ１１１００１０１１００１１１１０のＢＩＮ符号が得られる。
【００６８】
＜ＢＩＮ符号化の例外＞  
ＢＩＮ符号化の例外がある。例えば、１６’ｂ１０００００００００００００００は例外であり、以上で説明した処理で計算することができない。この値は、ＢＩＮ符号化されても、１６’ｂ１０００００００００００００００のままである。これは、唯一Ｓｚ＝１６となるＢＩＮ符号である。
【００６９】
＜Ｓｚの取得＞  
Ｓｚは上記のようにして得られたＢＩＮ符号のビット長である。Ｓｚは、５ビットの固定長で表現する。
【００７０】
なお、以上で説明したＢＩＮ符号化を行わなくてもＳｚを計算することができる。計算方法は以下の通りである。  
１．データが正数ならばそのまま、負数ならば、２の補数を取り、正数にする。
【００７１】
２．ビット値１が立っている最も上位のビットの位置がＮのとき、Ｓｚ＝Ｎ＋１となる。ビット値１が１つも立っていない場合、Ｓｚ＝０。例えば、１６’ｂ１０００００００００００００００ならば、１５ビット目（ＭＳＢ）にビット値１が立っているからＮ＝１５でＳｚ＝１６、１６’ｂ０１０００１０１１１１０００００ならば、１４ビット目にビット値１が立っているからＮ＝１４でＳｚ＝１５となる。言い換えれば、そのデータを１６ビットの整数と考えたとき、データ値≧２Ｎとなる最大のＮを用いて、Ｓｚ＝Ｎ＋１となる。
【００７２】
以上の手法を用いて先にＳｚを計算すれば、ＢＩＮ符号は以下のようなシンプルな手法でも求めることができる。  
１．Ｓｚ＝１６、または、データが正数のとき、データの下位Ｓｚビット分がＢＩＮ符号化データ。  
２．データが負数のとき、データから１’ｂ１を引いたものの下位Ｓｚビット分がＢＩＮ符号化データ。
【００７３】
ＳｚＢＩＮ符号化の具体例を挙げて、Ｓｚを計算してＢＩＮ符号の求め方について図８を参照して説明する。  
図８の上の例（１６’ｂ１１１００１０１１００１１１１０）では、１６ビットデータが負数であるので、２の補数を取る。すなわち、この場合の２の補数は、
１６’ｂ０００１１０１００１１００００１＋１’ｂ１  
＝１６’ｂ０００１１０１００１１０００１０  
となり、ビット値１が立っている最も上位のビットの位置は１２であるので、Ｓｚ＝１３となる。１６ビットデータは負数であるので、  
１６’ｂ１１１００１０１１００１１１１０−１’ｂ１  
＝１６’ｂ１１１００１０１１００１１１０１  
の下位Ｓｚ＝１３ビット分がＢＩＮ符号化データである。すなわち、この場合のＢＩＮ符号化データは、  
１３’ｂ００１０１１００１１１０１  
である。
【００７４】
一方、図８の下の例（１６’ｂ０００００００００００００００１）では、１６ビットデータが正数であるので、２の補数を取る必要はない。このデータのビット値１が立っている最も上位のビットの位置は０であるので、Ｓｚ＝１となる。１６ビットデータは正数であるので、  
１６’ｂ０００００００００００００００１  
の下位Ｓｚ＝１ビット分がＢＩＮ符号化データである。すなわち、この場合のＢＩＮ符号化データは、  
１’ｂ１  
である。
【００７５】
＜Ｓｚの特殊な使用（ＳｚＢＩＮデータ内への非頂点データの混在）＞  
Ｓｚの未使用領域を用いることで、各種のパラメータをＳｚＢＩＮ符号の中に混在させることが可能である。例えば、上記の正規化の際に算出された正規化値（scale値）は、符号データとは別のパスで復号の際に与える必要があるが、これをＳｚの未使用領域を用いてＳｚＢＩＮ形式とすることで、正規化値を符号データ内に混在させることができる。
【００７６】
例えば、図９に示したように、Ｓｚ＝３１を正規化値（scale値）のための識別子とし、その後ろに続くＢＩＮデータとして３２ビット浮動小数表現の正規化値（scale値）を格納する。Ｓｚが未使用領域の値を示す際には、Ｓｚは、識別子として用いられ、続くＢＩＮデータのビット長は表わさない。
【００７７】
データの展開の際には、Ｓｚが０〜１６までのときは、そのサイズのＢＩＮデータを取得しデータを復号し、Ｓｚがそれ以外の値のときは、その識別子の指すパラメータ値の長さだけデータを取得し、パラメータ値としてセットするという処理を行う。したがって、Ｓｚの値によって、パラメータ値と頂点データを区別して展開することが可能になる。
【００７８】
＜ＳｚＢＩＮ符号化の効果＞  
以上に説明したようなＳｚＢＩＮ符号化を用いることで、以下のような効果が得られる。  
１．エントロピー符号化部１０６で上記のＳｚ部分のみエントロピー符号化をすることを考える。例えば、ハフマン符号化を行うと、Ｓｚは５ビットで表現される符号のため、あり得るハフマン符号語の総数は、高々１７個のみである。また、最大符号長も１８ビットに抑えることができる。  
２．上述したように、符号中に、符号化の非対象データ（上記の正規化値（scale）など）を含めることができる。
【００７９】
＜＜エントロピー情報蓄積部１０４＞＞  
エントロピー情報蓄積部１０４は、符号数制御符号化部１０３で得られた符号のうち、エントロピー符号化部１０６でエントロピー符号化を行いたい部分を抽出し、蓄えるためのものである。例えば、エントロピー情報蓄積部１０４は、符号数制御符号化部１０３で得られたＳｚＢＩＮ符号のうち、Ｓｚ部分の符号を逐次蓄えてゆく。  
また、エントロピー情報蓄積部１０４はエントロピー符号化部１０６におけるエントロピー符号化の際に必要なエントロピー量の整理を同時に行う。なお、このエントロピー量の整理は符号作成部１０５で行われてもよい。
【００８０】
以下、エントロピー符号化部１０６におけるエントロピー符号化の一例としてハフマン符号化を取り上げ、これについて説明する。ハフマン符号化を前提とした場合、その符号化のためのエントロピー量は、符号数制御符号化部１０３で得られた符号とその出現頻度の対応の情報である。
【００８１】
そこで、エントロピー情報蓄積部１０４は、Ｓｚ符号を蓄積しながら、各Ｓｚの出現頻度をカウントしてゆく。エントロピー情報蓄積部１０４は、全データに関してカウントが終了したら、頻度テーブルを作成する。頻度テーブルは、図１０に示したように、Ｓｚの算出頻度を示したテーブルである。エントロピー情報蓄積部１０４はデータ内の各Ｓｚ（０〜１６）の出現確率を計算する。出現確率ｐＳｚは、式（６）により計算する。  
ｐＳｚ＝Ｓｚの出現数／全データ数・・・（６）  
図１０の例では、Ｓｚ＝０の出現確率がＡ、Ｓｚ＝１の出現確率がＢ、…、ということを示している。
【００８２】
なお、上で説明したようなＳｚＢＩＮ符号に混在させたいパラメータ値に関しては、出現確率をデータ中に含まれるそのパラメータ（例えば正規化値）の総数を用いて算出すれば良い。また、０〜１６までのＳｚの出現確率よりも小さな値を出現確率として採用してもよい。
【００８３】
＜＜符号作成部１０５＞＞  
符号作成部１０５は、エントロピー符号化部１０６で用いるエントロピー符号化用の符号語を作成するためのものである。符号作成部１０５は、この符号語作成の際に、エントロピー情報蓄積部１０４に蓄積されたエントロピー量の情報を利用する。
【００８４】
上記と同様に、ハフマン符号を例として説明を進める。ハフマン符号語の作成手順は以下の通りである。  
１．情報源の通報を出現確率（ｐｉ、ｉ＝１，２，…，Ｎ）の大きい順に並べる  
ｐ１≧ｐ２≧…≧ｐＮ 
２．最も出現確率の小さい１対の通報に０と１を対応させる（ハフマンノードの作成）  
３．「２．」の１対の通報に対する確率の和をｑｋ（２≦ｋ≦Ｎ−２）とし、再度出現確率の大きい順に並べる  
ｐＮ−１＋ｐＮ＝ｑｋ 
ｐ１≧ｐ２≧…≧ｑｋ≧…≧ｐＮ−２ 
４．上記１から「３．」の手順を繰り返す（ハフマン木の作成）  
５．１対の通報に０と１を対応させた順序を逆に辿って０と１の並びを求め、符号語とする（ハフマン木の探索）  
詳細に関しては、ハフマン符号に関する文献（例えば、情報圧縮技術の基礎、新井  清、（株）トリケップス、2003、ISBN4-88657-228-6、Ｐ４８−６０）を参照して頂きたい。
【００８５】
以上のように、符号作成部１０５は、符号数制御符号化部１０３で得られた符号に対応するハフマン符号語を作成する。
【００８６】
＜＜エントロピー符号化部１０６＞＞  
エントロピー符号化部１０６は、符号作成部１０５で作成された符号語を用いて、符号数制御符号化部１０３から得られた符号をエントロピー符号化するためのものである。  
具体的には、エントロピー符号化部１０６は、符号作成部１０５を参照して、符号数制御符号化部１０３で得られたある符号ＳｚＢＩＮのＳｚに対応する符号語を得る。この符号語をＨｕｆｆ（Ｓｚ）と表記すると、エントロピー符号化部１０６は、この符号語に符号数制御符号化部１０３で得られたある符号ＳｚＢＩＮのＢＩＮ部を結合して、Ｈｕｆｆ（Ｓｚ）ＢＩＮという符号化を行う。
【００８７】
例えば、符号数制御符号化部１０３で得られたＳｚＢＩＮ符号が０００１１１０１であるとする。このＳｚ部は、０００１１で、これは、Ｓｚ＝３、つまり、続く３ビットのデータ１０１がＢＩＮ部であることを示している。このＳｚ部の０００１１に対応する符号語として、１１という符号が、符号作成部１０５においてＨｕｆｆ（Ｓｚ）として得られたとすると、エントロピー符号化部１０６は、１１１０１というように符号化する。
【００８８】
＜＜抽出部１０７＞＞  
抽出部１０７は、符号作成部１０５で符号語を作成した際に用いたエントロピー情報から復号する際に最低限必要な情報を抽出するためのものである。  
符号化したハフマン符号を復号するためには、ハフマン符号とそれに対応する復号語の情報が必要である。これは、ハフマン符号と対応する復号語のペアを作成したハフマン符号分持っていれば良いが、このように持つと、データ量が大きくなってしまう。復号語は、上記ハフマン符号語の作成方法の部分で説明したハフマン木から再構成できることから、復号器はこのハフマン木の情報を用いて、復号語を再構成することが多い。
【００８９】
抽出部１０７は、例えば、このハフマン木の情報をエントロピー情報蓄積部１０４、符号作成部１０５から抽出する。なお、上記ハフマン木は、「エントロピー情報から復号に最低限必要な情報」の一例であり、これに限定されるものではない。
【００９０】
＜＜抽出情報符号化部１０８＞＞  
抽出情報符号化部１０８は、抽出部１０７で抽出した情報を、データ量が減少するようにさらに符号化するためのものである。符号化後のデータ量が、元のデータ量以下になるような符号化ならば、どのような符号化を用いても構わない。
【００９１】
＜＜出力部１０９＞＞  
出力部１０９は、  
１．エントロピー符号化部１０６で得られたコンピュータグラフィックスデータの符号と  
２．抽出情報符号化部１０８で得られた復号化のためのデータの符号  
を入力部１０１に入力された全データに対して出力するためのものである。
【００９２】
ここで、上記１と２を別ファイルとして、２つのファイルで出力しても構わないし、何らかの形でデータを統合し、１つのファイルに出力してもよい。また、出力形態は、ファイルに限らず、メモリ上への出力でも構わないし、何らかの伝送路への出力でも構わない。
【００９３】
＜＜第１の実施形態の効果＞＞  
以上で説明した第１の実施形態におけるコンピュータグラフィックスデータ符号化装置によれば、符号語の総数、最大符号長を限定するための工夫がしてあるため、後述する復号器で復号する際の演算コストを抑え（すなわち、演算スピードを上げることができる）、価格的なコストを抑えることができる形式で符号化されたコンピュータグラフィックスデータの符号を作成することが可能となる。
【００９４】
（第１の実施形態の変形例１）  
本発明の第１の実施形態では、符号数制御符号化部１０３において、エントロピー符号化部１０６で符号化する際に出現しうる符号総数を限定するとともに、出現しうる符号の長さも限定するための手法として、「符号を表現することができる最小長の表現とその符号長のペア」（ＳｚＢＩＮ符号）として符号化することを中心として説明した。しかし、符号数制御符号化部１０３では別の符号化を行うことが可能である。変形例１では、その別の符号化について説明する。
【００９５】
なお、本発明の第１の実施形態の変形例１に係るコンピュータグラフィックスデータ符号化装置の全体構成図は図１と同様であるが、各部の動作内容に変化があるものに関しては以下で説明する。ここで説明するもの以外の装置部分は、本発明の第１の実施形態と同様の動作を行う。
【００９６】
＜＜符号数制御符号化部１０３＞＞  
＜概要＞  
符号数制御符号化部１０３は、前処理符号化部１０２で得られた符号を、エントロピー符号化部１０６で生成される符号総数を限定するための処理を行って符号化するためのものであるのは、第１の実施形態と同様である。第１の実施形態の変形例１では、その符号化の手法が第１の実施形態とは異なる。
【００９７】
＜符号化フォーマット＞  
本変形例１に係る符号数制御符号化部１０３では、前処理符号化部１０２で得られた符号を、「２つ以上の符号に分割」して符号化することを特徴とする。分割の手法は幾つか考えられるが、以降ではその一例として、符号を「上位ビットと下位ビットの２つに分割」する手法を例として挙げて説明する。
【００９８】
具体的な例として、前処理符号化部１０２で得られた符号が、１６ビットで量子化された符号であったとする。符号数制御符号化部１０３は、この符号を上位８ビット部分と下位８ビット部分に分割する。  
すると、各部分は８ビットの符号となるため、これをハフマン符号化した場合、符号語の総数は、２８  ＝２５６個に減少する。また、最大符号長も、２５７ビットにまで減少する。したがって、この手法によれば、符号数制御符号化部１０３は、符号総数を少なく、最大符号長を短く制限するように制御することができる。  
なお、ここでは２つに分割する場合について説明したが、２つ以外の複数に分割した場合も同様である。また、分割数は、均等である必要はない。
【００９９】
＜＜エントロピー情報蓄積部１０４、符号作成部１０５＞＞  
上記のような符号数制御符号化部１０３での符号化手法の変化により、エントロピー情報蓄積部１０４、符号作成部１０５で扱う情報も変化する。第１の実施形態では、ＳｚＢＩＮ符号のＳｚ部を用いて、蓄積や、頻度情報の作成、符号の作成をする例を示したが、本変形例１では、その「Ｓｚ部」を上記の「分割することで作成した新たな符号全て」で置き換えたものを用いて蓄積や頻度情報の作成を行うことになる。
【０１００】
＜＜エントロピー符号化部１０６＞＞  
エントロピー符号化部１０６は、符号数制御符号化部１０３で得られた２つ以上の分割符号をそれぞれ、符号作成部１０５で得られた符号で符号化し、符号数制御符号化部１０３で分割した分割方法と逆の結合を行う。
【０１０１】
例えば、符号数制御符号化部１０３で上位８ビットと下位８ビットの２つの符号に分割した場合、エントロピー符号化部１０６は、まず「上位８ビット分の符号のハフマン符号語Ａ」を作成し、次に「下位８ビット分の符号のハフマン符号語Ｂ」を作成し、Ａ，ＢをＡが上位ビット、Ｂが下位ビットになるように結合する。
【０１０２】
（第１の実施形態の変形例２）  
図１１は、本発明の第１の実施形態の変形例２に係るコンピュータグラフィックスデータ符号化装置の全体構成図である。第１の実施形態で図１を参照して説明した装置部分と同様なものは同一の符号を付して説明を省略する。  
本発明の第１の実施形態の変形例２のコンピュータグラフィックスデータ符号化装置は、入力部１０１、前処理符号化部１０２、符号蓄積部１１０１、符号作成部１１０２、エントロピー符号化部１１０３、符号数制御符号化部１１０４、抽出部１０７、抽出情報符号化部１０８、および、出力部１１０５を備えている。
【０１０３】
符号蓄積部１１０１は、前処理符号化部１０２で得られた符号のエントロピー情報を蓄える。  
符号作成部１１０２は、符号蓄積部１１０１で蓄えられたエントロピー情報を用いて符号語を作成する。  
エントロピー符号化部１１０３は、前処理符号化部１０２で得られた符号を、符号作成部１１０２で作成された符号語を用いてエントロピー符号化する。  
符号数制御符号化部１１０４は、エントロピー符号化部１１０３で得られた符号の符号総数を限定するように制御するための処理を行って符号化する。  
出力部１１０５は、符号数制御符号化部１１０４で得られた符号と、抽出情報符号化部１０８で得られた符号を出力する。
【０１０４】
＜＜符号蓄積部１１０１＞＞  
符号蓄積部１１０１は、前処理符号化部１０２で得られた符号を蓄えるとともに、エントロピー符号化部１１０３におけるエントロピー符号化の際に必要なエントロピー量の整理を同時に行う。具体的には、符号蓄積部１１０１は、前処理符号化部１０２で得られた符号の出現確率を計算し、符号と出現確率との対応を示す頻度テーブルを作成する。このエントロピー量の整理は符号作成部１１０２で行われてもよい。この場合、符号作成部１１０２が頻度テーブルを作成する。
【０１０５】
＜＜符号作成部１１０２＞＞  
符号作成部１１０２は、第１の実施形態での符号作成部１０５と動作は同じであるが、入力するデータが異なる。この第１の実施形態の変形例２では、符号作成部１１０２は、前処理符号化部１０２で得られた符号を直接入力する。  
この結果、符号作成部１１０２は、前処理符号化部１０２で得られた符号に対応するハフマン符号語を作成することになる。なお、この時点では、符号語総数を限定する工夫をしていないため、上記符号語の符号総数は、量子化ビット長が１６ビットの場合、未だ２１６個である。
【０１０６】
＜＜エントロピー符号化部１１０３＞＞  
エントロピー符号化部１１０３は、符号作成部１０５で作成された符号語を用いて、前処理符号化部１０２から得られた符号をエントロピー符号化するためのものである。なお、この時点でも、符号語総数を限定する工夫をしていないため、上記符号語の符号総数は、量子化ビット長が１６ビットの場合、未だ２１６個である。
【０１０７】
＜＜符号数制御符号化部１１０４＞＞  
符号数制御符号化部１１０４は、エントロピー符号化部１１０３で得られた符号に関して、符号作成部１１０２で作成された符号語のうち、実際に使用される種類を限定するように制御するための符号化を行うためのものである。  
具体的には、符号数制御符号化部１１０４は、符号化を行う符号長の長さの限界（限界符号長と称する）を設け、それ以上の符号長となる符号語は使用しないで、別の符号で代用するという手法を用いる。
【０１０８】
具体的な例として、符号数制御符号化部１１０４で設定される限界符号長をＮビットとする。例えば、前処理符号化部１０２で得られたある符号Ａに対応するハフマン符号語Ａ’がエントロピー符号化部１１０３で得られたとする。符号数制御符号化部１１０４は、この符号語Ａ’の符号長ＭがＮ以下の場合には、符号語Ａ’をそのまま出力符号とする。一方、ＭがＮよりも大きい場合は、符号数制御符号化部１１０４は、符号語Ａ’の上位Ｎビットを非符号化識別子（ここでは「Ｃ」と表現する）として採用し、この非符号化識別子の後ろに、前処理符号化部１０２から得られる対応した符号Ａをそのまま連結して「ＣＡ」という符号を出力符号とする。この結果、符号数制御符号化部１１０４により、符号語の総数は、２Ｎに限定される。
【０１０９】
なお、復号化の際は、符号を先頭から調査して、限界符号長Ｎに達した際に対応する復号語が存在しない場合、この符号の上位Ｎビットは非符号化識別子とみなすことができるため、続く例えば１６ビットの符号を上記の符号Ａとみなせば良い。このため、符号数制御符号化部１１０４による符号化手法は、符号語の総数を限定でき、しかも復号の手法が簡単である符号化手法であるということができる。
【０１１０】
＜＜出力部１１０５＞＞  
出力部１１０５は、第１の実施形態での出力部１０９とほぼ同様で、
１．符号数制御符号化部１１０４で得られたコンピュータグラフィックスデータの符号と
２．抽出情報符号化部１０８で得られた復号化のためのデータの符号と
を入力部１０１に入力された全データに対して出力する。
【０１１１】
なお、上述した第１の実施形態、第１の実施形態の変形例１、第１の実施形態の変形例２の手法を適宜組み合わせて用いることで、より効果のある符号化を行うことが可能である。
【０１１２】
（第１の実施形態の変形例３）  
本変形例では、前処理符号化部１０２で、上述した処理に加え、さらに以下に示すような処理（以降、要素圧縮と称する）をする。
【０１１３】
＜要素圧縮処理＞  
要素圧縮処理とは、データベクトル（データの組）の長さが１となるという情報を利用して、１要素分のデータ量を削減する圧縮手法である。要素圧縮は、例えば、正規化の後、量子化を行う前に行う。
【０１１４】
＜要素圧縮の条件＞  
以下の条件を満たす場合、要素圧縮処理を行うことができる。すなわち、要素圧縮が可能な条件は、データベクトル（データの組）が長さ１の正規化ベクトルとなっていることである。データがＮ要素の組からなっている（ｅ１，ｅ２，…，ｅｎ）である場合、  
‖（ｅ１，ｅ２，…，ｅｎ）‖＝１、つまり、（Σｅｋ２）１／２＝１・・・（７）  
式（７）を満たすものが、長さ１の正規化ベクトルとなるデータである。
【０１１５】
具体的な例として頂点データの場合、例えば、正規化法線データ（ｎｘ，ｎｙ，ｎｚ）がこの条件を満たす。正規化法線データは、要素圧縮を最も使用する可能性の高いデータである。以降、正規化法線データを例として説明する。
【０１１６】
＜要素圧縮の仕方＞  
正規化法線データ（ｎｘ，ｎｙ，ｎｚ）の場合、式（７）を満たす。つまり、  
ｎｘ２＋ｎｙ２＋ｎｚ２＝１  
が成り立つ。これより、  
ｎｚ＝ｓｉｇｎ（ｎｚ）×（１−ｎｘ２−ｎｙ２）１／２・・・（８）  
である。ここで、ｓｉｇｎ（ｎｚ）は、ｎｚの符号を示し、ｎｚ＜０のとき−１，ｎｚ≧０のとき＋１となる値を返す。これより、ｎｚは、ｎｘ，ｎｙおよび、ｓｉｇｎ（ｎｚ）から一意に求めることができることが分かる。これは、ｎｘ，ｎｙに関しても同様である。  
ｎｘ＝ｓｉｇｎ（ｎｘ）×（１−ｎｙ２−ｎｚ２）１／２・・・（９）  
ｎｙ＝ｓｉｇｎ（ｎｙ）×（１−ｎｘ２−ｎｚ２）１／２・・・（１０）  
つまり、ｎｘ，ｎｙ，ｎｚの３要素を保持する代わりに、どれか２要素を保持し、さらに、もう１要素の符号のみを保持すれば、元の３要素を復元することができるということである。この関係を利用して、  
ｎｘ，ｎｙ，ｎｚ   →   ｎ１，ｎ２，ｓｉｇｎ（ｎ３）  
というように要素圧縮を行う。ここで、ｎ１，ｎ２は、ｎｘ，ｎｙ，ｎｚのうちのどれか２つ、ｓｉｇｎ（ｎ３）は、もう１つの要素の符号が入ることを示す。
【０１１７】
＜要素の選択＞  
選択する２つの要素として、ｎｘ，ｎｙ，ｎｚのうちの、大きさ‖ｎｘ‖，‖ｎｙ‖，‖ｎｚ‖が最小のものと２番目に小さいものとの２つを選択する。こうすることで、符号を復号する際の計算誤差を最小限に抑えることができる。復号時には、どの２つを選択したかも知らなければならないため、これを知るための情報も付加する。以上をまとめると、ｎｘ，ｎｙ，ｎｚは、  
ｎｘ，ｎｙ，ｎｚ   →   ｎ１，ｎ２，ｐ  
と要素圧縮することができる。ここで、ｐは、復号のためのパラメータで、図１２に示したように３ビットで示される。
【０１１８】
例えば、（ｎｘ，ｎｙ，ｎｚ）＝（０．１３，０．９９，−０．０２）というデータがあった場合、  
ｎ１＝ｎｘ，  
ｎ２＝ｎｚ，  
ｐ＝１００  
となる。
【０１１９】
＜要素圧縮の効果＞  
以上説明したような要素圧縮を行ってから量子化を行ったデータは、（ｎｘ，ｎｙ，ｎｚ）の１６ビット×３＝トータル４８ビットから、（ｎ１，ｎ２，ｐ）の１６ビット×２＋３ビット＝トータル３５ビットにデータ量を減らすことができる。
【０１２０】
＜要素圧縮をした場合の以降の処理＞  
要素圧縮によって得られた３ビットのパラメータ値ｐに関しては、符号数制御符号化部１０３において符号化する際に、符号化を行うか、３ビットのパラメータ値をそのまま出力として用いるかのどちらかに決定する。どちらを選択したかは、エントロピー情報蓄積部１０４に蓄積しておき、抽出部１０７でこの情報が抽出され、抽出情報符号化部１０８を経て出力部１０９で出力される。
【０１２１】
＜３要素以外のとき＞  
以上では、正規化法線を例として、３要素の場合を示したが、他のデータでも同様に要素圧縮を行うことが可能である。  
例えば、２要素（ｅ１，ｅ２）の場合、図１３に示したように、ｐは２ビットあれば十分であり、以下の式（１１）で圧縮された要素ｅ２が復元される。  
ｅ２＝ｓｉｇｎ（ｅ２）×（１−ｅ１２）１／２・・・（１１）  
なお、他の要素数のときと同様に扱うために、ｐを３ビットとして、ＭＳＢに０を付加した値を用いてもよい。
【０１２２】
他の例として、４要素（ｅ１，ｅ２，ｅ３，ｅ４）の場合、ｐは３要素のときと同様に３ビット必要で、パラメータ値は図１３に示した通りである。圧縮された要素ｅ４は次式により復元される。  
ｅ４＝ｓｉｇｎ（ｅ４）×（１−ｅ１２−ｅ２２−ｅ３２）１／２・・・（１２）  
５要素以上に関しても同様である。
【０１２３】
以上の処理を行うことで、前処理符号化部１０２からの出力の圧縮効率を上げることができる。これは、第１の実施形態の変形例３の出力である符号の圧縮効率に直結するため、重要である。
【０１２４】
（第２の実施形態）  
図１４は、本発明の第２の実施形態に係るコンピュータグラフィックスデータ符号化装置の全体構成図である。第１の実施形態で図１を参照して説明した装置部分と同様なものは同一の符号を付して説明を省略する。  
本実施形態のコンピュータグラフィックスデータ符号化装置は、入力部１０１、前処理符号化部１０２、符号数制御符号化部１０３、符号情報蓄積部１４０１、符号語情報蓄積部１４０２、符号作成部１４０３、エントロピー符号化部１０６、抽出部１０７、抽出情報符号化部１０８、出力部１０９を備えている。
【０１２５】
符号情報蓄積部１４０１は、符号数制御符号化部１０３で得られた符号のエントロピー符号化を行うべき符号部分を蓄える。  
符号語情報蓄積部１４０２は、典型的なデータにおけるエントロピー情報と符号語との関係を予め蓄えておく。  
符号作成部１４０３は、符号情報蓄積部１４０１と符号語情報蓄積部１４０２で蓄えられた情報を基に、符号数制御符号化部１０３で得られた符号の符号語を作成する。  
第１の実施形態では、エントロピー情報蓄積部１０４は符号数制御符号化部１０３で得られた符号からエントロピー情報を動的に取得して、それを基に、符号の頻度テーブルを作成していた。  
これに対し、第２の実施形態では、符号語情報蓄積部１４０２に典型的なデータにおけるエントロピー情報と符号語との関係を示す符号語情報を予め蓄えておき、符号作成部１４０３は、この符号語情報と、符号情報蓄積部１４０１に蓄えられた符号数制御符号化部１０３で得られた符号からのエントロピー情報を用いて符号の頻度テーブルを作成する。
【０１２６】
＜＜符号情報蓄積部１４０１＞＞  
符号情報蓄積部１４０１は、符号数制御符号化部１０３で得られた符号のうち、エントロピー符号化部１０６でエントロピー符号化を行いたい部分を抽出し、蓄えるためのものであり、第１の実施形態におけるエントロピー情報蓄積部１０４と似た動作をする。動作が異なる部分のみ以下で説明する。
【０１２７】
符号情報蓄積部１４０１では、例えば、符号数制御符号化部１０３で得られたＳｚＢＩＮ符号のうち、Ｓｚ部分の符号を逐次蓄えてゆく。また、エントロピー符号化部１０６におけるエントロピー符号化の際に必要なエントロピー量の整理を同時に行う。
【０１２８】
以下、第１の実施形態のときと同様に、エントロピー符号化の一例としてハフマン符号化を取り上げ、これについて説明する。  
ハフマン符号化では、符号化のためのエントロピー量は、符号数制御符号化部１０３で得られた符号とその出現頻度の対応の情報である。そこで、符号情報蓄積部１４０１は上述したようにＳｚ符号を蓄積しながら、各Ｓｚの出現頻度をカウントしてゆく。符号情報蓄積部１４０１は全データに関してカウントが終了したら、頻度テーブルを作成する。頻度テーブルは、Ｓｚの算出頻度を示したテーブルである。データ内の各Ｓｚ（０〜１６）の出現頻度を計算し、図１５に示すように、出現頻度が大きいものから順にインデックスを０，１，２，…というように割り当てる。  
図１４に示した例では、Ｓｚ＝０が５番目の出現頻度、Ｓｚ＝１が最も出現頻度が高く、Ｓｚ＝２が２番目の出現頻度、…、Ｓｚ＝１６が１５番目の出現頻度ということを示している。
【０１２９】
なお、上で説明したようなＳｚＢＩＮ符号に混在させたいパラメータ値に関しては、インデックス値として、Ｓｚと同じ値を使用する。図１５では、このようなパラメータとして、正規化値（scale）を導入しているが、このインデックス値は、常に３１である。
【０１３０】
＜＜符号語情報蓄積部１４０２＞＞  
符号語情報蓄積部１４０２は、典型的なコンピュータグラフィックスデータにおけるエントロピー情報と符号語の関係を予め蓄えておくためのものである。  
ハフマン符号は、出現頻度の高いデータに、より短い符号語を割り当てようというものである。そのため、割り当てられる符号語は、各データにおける符号群の出現頻度の分布により様々である。このような性質のため、符号語はデータに強く依存し、その作成には手間がかかるし、復号の際にも何らかの形でデータに依存した符号語を再構成する必要があり、復号に要するコストも大きい。第２の実施形態によれば、以下に説明するように、この問題を解消することができる。
【０１３１】
符号語情報蓄積部１４０２は、多くのコンピュータグラフィックスデータから得たＳｚ符号の出現頻度とそのデータで作成された符号語の対応情報の知見を生かし、典型的なコンピュータグラフィックスデータにおけるエントロピー情報と符号語の関係を予め蓄えておく。
【０１３２】
具体的には、出現頻度とそれに対応する符号語の関係を示したテーブル（以下、符号テーブルと呼ぶ）を何種類か蓄えておく。符号テーブルの例を図１６に示す。  
図１６は、最も頻度の高い（Ｉｎｄｅｘ＝０）ものに割り当てられる符号語が、“００”、２番目の頻度（Ｉｎｄｅｘ＝１）に割り当てられる符号語が、“０１０”、…、ということを表している。
【０１３３】
経験的には、球体などの頂点が均等に並ぶコンピュータグラフィックスデータでは、図１７に示すテーブルが、それ以外のデータでは、図１８に示すテーブルが、良い圧縮効果を得ることができる出現頻度順と符号語の関係であることが分かっている。図１７、図１８では、非符号語である正規化値（scale）に関しても、符号語を同様に割り振ってある。
【０１３４】
＜＜符号作成部１４０３＞＞  
符号作成部１４０３は、エントロピー符号化部１０６で用いるエントロピー符号化用の符号を作成するためのものである。この符号作成の際に、符号情報蓄積部１４０１と符号語情報蓄積部１４０２に蓄積された情報を利用する。
【０１３５】
符号情報蓄積部１４０１には、図１５に示されたような、符号数制御符号化部１０３で得られた符号とその出現頻度の順序の対応を示した頻度テーブルが蓄積されている。また、符号語情報蓄積部１４０２には、図１６に示されたような、符号の出現頻度における典型的な符号語の対応を示した符号テーブルが幾つか蓄積されている。
【０１３６】
符号作成部１４０３は、上記の頻度テーブルと符号テーブルの２つを用いて以下のような手順で符号を作成する。  
１．符号語情報蓄積部１４０２に蓄積された符号テーブルのうち、どれかを選択する。どれを選択したかの情報は、抽出部１０７で利用される。  
２．符号化したいＳｚに対して、頻度テーブルと、符号テーブルを参照し、ハフマン符号を決定する。図１９に示すように、まず頻度テーブルを照会し、符号化したいＳｚに対応した頻度順（図中のＩｎｄｅｘ）を得る。次に、符号テーブルを照会し、先に得た頻度順に対応した符号を得る。得られた符号語が、符号化したいＳｚに対応した符号語となる。  
例えば、図１９を参照してＳｚ＝１をハフマン符号化する例を考える。符号作成部１４０３は、頻度テーブルを参照してＳｚ＝１の頻度を示すインデックス値は２であることを一時的に記憶する。次に、符号作成部１４０３は、符号テーブルの該当インデックス位置を参照してＩｎｄｅｘ＝２に対応するハフマン符号語が、“０１１”であることを出力する。以上より、符号作成部１４０３は、Ｓｚ＝１に対するハフマン符号語“０１１”を作成する。このようにして、符号作成部１４０３は、符号数制御符号化部１０３で得られた符号に対応する符号語を作成する。
【０１３７】
＜＜抽出部１０７＞＞  
抽出部１０７は、符号作成部１４０３で符号語を作成した際に用いたエントロピー情報から復号に最低限必要な情報を抽出するためのものである。  
最低限必要な情報とは、
１．符号情報蓄積部１４０１において得られた符号と出現頻度の関係（頻度テーブル）
２．符号語情報蓄積部１４０２において、どの符号テーブルが選ばれたか（符号テーブルの種類）
である。抽出部１０７は、これらの情報を符号作成部１４０３、符号情報蓄積部１４０１、符号語情報蓄積部１４０２から抽出する。
【０１３８】
＜＜第２の実施形態の効果＞＞  
第１の実施形態では、復号時に必要な情報（抽出部１０７で出力される情報）として、ハフマン木の情報、または、符号化前のデータとハフマン符号の対応の情報が必要であった。第１の実施形態での符号化では、この情報を、抽出情報符号化部１０８で圧縮符号化して出力するものの全て符号データとして出力する必要があった。
【０１３９】
第２の実施形態によれば、典型的なハフマン符号語の情報を符号テーブルとして予め符号語情報蓄積部１４０２に蓄えて用いるため、復号時に必要な情報（抽出部１０７で出力される情報）として、頻度テーブルの情報しか出力する必要がない。  
このため、符号化データのデータ量が減少する割合が、第１の実施形態よりも大きい。これは、復号器にデータを入力する際のスループットの向上に繋がる。
【０１４０】
なお、第１の実施形態の変形例１で示したに符号数制御符号化部１０３における符号化方法を、同様に第２の実施形態に適用することが可能である。  
（第２の実施形態の変形例１）  
また、第１の実施形態の変形例２で示した変形例と同様の変形を第２の実施形態に適用することが可能である。  
図２０は、本発明の第２の実施形態の変形例２に係るコンピュータグラフィックスデータ符号化装置の全体構成図である。第１、第２の実施形態でそれぞれ図１、図１４を参照して説明した装置部分と同様なものは同一の符号を付して説明を省略する。  
本発明の第２の実施形態の変形例１のコンピュータグラフィックスデータ符号化装置は、入力部１０１、前処理符号化部１０２、符号蓄積部２００１、符号語情報蓄積部１４０２、符号作成部２００２、エントロピー符号化部２００３、符号数制御符号化部２００４、抽出部１０７、抽出情報符号化部１０８、および、出力部２００５を備えている。  
符号蓄積部２００１は、前処理符号化部１０２で得られた符号を蓄える。  
符号作成部２００２は、符号蓄積部２００１と符号語情報蓄積部１４０２で蓄えられた情報を基に、前処理符号化部１０２で得られた符号の符号語を作成する。  
エントロピー符号化部２００３は、前処理符号化部１０２で得られた符号を、符号作成部２００２で作成された符号語を用いて符号化する。  
符号数制御符号化部２００４は、エントロピー符号化部２００３で得られた符号の符号総数を限定するための処理を行って符号化する。  
出力部２００５は、符号数制御符号化部２００４で得られた符号と、抽出情報符号化部１０８で得られた符号を出力する。
【０１４１】
＜＜符号蓄積部２００１＞＞  
符号蓄積部２００１は、前処理符号化部１０２で得られた符号を蓄えるためのものである。また、上述した頻度テーブルの作成も同時に行う。入力が前処理符号化部１０２からの符号に変わっただけで、残りの機能は、第２の実施形態の符号情報蓄積部１４０１と同様である。
【０１４２】
＜＜符号作成部２００２＞＞  
符号作成部２００２は、第２の実施形態の符号作成部１４０３と動作は同じであるが、入力されるデータが異なる。この第２の実施形態の変形例１では、前処理符号化部１０２で得られた符号が直接入力される。
【０１４３】
＜＜エントロピー符号化部２００３＞＞  
エントロピー符号化部２００３は、符号作成部２００２で作成された符号語を用いて、前処理符号化部１０２から得られた符号をエントロピー符号化する。
【０１４４】
＜＜符号数制御符号化部２００４＞＞  
符号数制御符号化部２００４は、エントロピー符号化部２００３で得られた符号に関して、符号作成部２００２で作成された符号語のうち、実際に使用される種類を限定するための符号化を行うためのものである。第１の実施形態の変形例２の符号数制御符号化部１１０４と同様の動作を行う。
【０１４５】
＜＜出力部２００５＞＞  
出力部２００５は、第２の実施形態の出力部１０９とほぼ同様で、  
１．符号数制御符号化部２００４で得られたコンピュータグラフィックスデータの符号と  
２．抽出情報符号化部１０８で得られた復号化のためのデータの符号と  
を入力部１０１に入力された全データに対して出力する。
【０１４６】
なお、上述した第２の実施形態、第２の実施形態の変形例１の手法を適宜組み合わせて用いることで、より効果のある符号化を行うことが可能である。  
また、第１の実施形態の変形例３の要素圧縮の処理を、同様に第２の実施形態に適用して用いることが可能である。
【０１４７】
（第３の実施形態）  
第３の実施形態は、第１の実施形態で作成された符号を復号するための復号器である。  
図２１は、本発明の第３の実施形態に係るコンピュータグラフィックスデータ復号化装置の全体構成図である。  
本実施形態のコンピュータグラフィックスデータ復号化装置は、入力部２１０１、抽出情報復号化部２１０２、復号作成部２１０３、復号情報蓄積部２１０４、エントロピー復号化部２１０５、元データ復号化部２１０６、後処理復号化部２１０７、出力部２１０８を備えている。
【０１４８】
入力部２１０１は、第１の実施形態の手法を用いて出力された符号化データを取得する。  
抽出情報復号化部２１０２は、入力部２１０１から実施形態１における抽出情報符号化部１０８で作成された符号部分を取得し復号する。  
復号作成部２１０３は、抽出情報復号化部２１０２で得られたデータにエントロピー復号化を行うための付加情報を加えて符号語を復号するための情報を作成する。  
復号情報蓄積部２１０４は、復号作成部２１０３で作成された復号のための情報を蓄積する。  
エントロピー復号化部２１０５は、入力部２１０１から第１の実施形態におけるエントロピー符号化部１０６で得られた符号の部分を取得し、復号情報蓄積部２１０４に蓄積された復号情報を用いて、符号を復号する。  
元データ復号化部２１０６は、エントロピー復号化部２１０５で得られたデータを、第１の実施形態における符号数制御符号化部１０３で符号化される元のデータとして復号する。  
後処理復号化部２１０７は、元データ復号化部２１０６で復号されたデータに、逆正規化、逆量子化の処理などを行ってデータを復元する。  
出力部２１０８は、復元されたデータを出力する。
【０１４９】
＜＜入力部２１０１＞＞  
入力部２１０１は、第１の実施形態のコンピュータグラフィックスデータ符号化装置が作成した符号化データを取得する部分である。
【０１５０】
＜＜抽出情報復号化部２１０２＞＞  
抽出情報復号化部２１０２は、入力部２１０１から、第１の実施形態における抽出情報符号化部１０８で作成された符号部分を取得し、その符号を復号するためのものである。  
取得する符号は、第１の実施形態における抽出情報符号化部１０８で作成された符号であり、復号は、第１の実施形態における抽出情報符号化部１０８で符号化したのと逆の手順を行い復号化する。復号化されたデータは、第１の実施形態における抽出情報符号化部１０８で符号化される前の状態に戻る。具体的には、この抽出情報復号化部２１０２で復号されたデータとは、例えば、第１の実施形態における符号作成部１０５で符号語を作成する際に用いられたハフマン木の情報である。
【０１５１】
＜＜復号作成部２１０３＞＞  
復号作成部２１０３は、抽出情報復号化部２１０２で得られたデータにエントロピー復号化を行うための付加情報を加えて符号語を復号するための復号語を作成するためのものである。具体的には、抽出情報復号化部２１０２で得られたハフマン木の情報を用いて、ハフマン木を再構成し、ハフマン木の根からノードを辿ることで、復号語を作成する。  
なお、復号作成部２１０３は、復号作成部２１０３で全て作成して符号と復号語のペアのテーブルとして持っていても良いし、再構築したハフマン木の状態で保持してもよい。後者の場合、エントロピー復号化部２１０５がこのハフマン木を動的に探索しながら復号する。
【０１５２】
＜＜復号情報蓄積部２１０４＞＞  
復号情報蓄積部２１０４は、復号作成部２１０３で作成された復号のための情報を保持しておくためのものである。具体的には、上述したハフマン木の状態を保持してもよいし、ハフマン木から作成された復号語のテーブルを保持していても良い。
【０１５３】
＜＜エントロピー復号化部２１０５＞＞  
エントロピー復号化部２１０５は、入力部２１０１から、第１の実施形態におけるエントロピー符号化部１０６で得られた符号の部分を取得し、復号情報蓄積部２１０４に蓄積された復号情報を用いて、符号を復号するためのものである。入力されるのは、Ｈｕｆｆ（Ｓｚ）ＢＩＮのフォーマットを持つ符号である。すなわち、エントロピー復号化部２１０５はＳｚＢＩＮ符号のＳｚの部分がハフマン符号化された符号を入力する。エントロピー復号化部２１０５では、この符号を復号し、ＳｚＢＩＮ符号の形式に戻す。  
具体的には、エントロピー復号化部２１０５は、符号を先頭から探索し、復号情報蓄積部２１０４に蓄積された復号情報（ハフマン符号とそれに対応する復号語の情報）に適合する復号語を探し出す。探し出された、適合する復号語が、復号されたＳｚである。次に、エントロピー復号化部２１０５はＳｚの値を参照して続くＳｚビット分を取得する。この取得されたＳｚビット分がＢＩＮ符号となる。この際、エントロピー復号化部２１０５は、取得したＳｚの値が適切な範囲にない場合（例えば、量子化ビット長が１６ビットの場合、Ｓｚは０〜１６の値を取るが、これ以外の値になった場合）は、続くＢＩＮ部分には、非符号語が入っているとみなす。非符号語は、例えば、正規化値（scale）などである。この場合、続くＢＩＮ部分には、例えば、３２ビットの浮動小数表現で、正規化値が入っている。正規化値（scale）などの符号以外の値は、復号情報蓄積部２１０４に蓄積しておく。
【０１５４】
図２２を参照してエントロピー復号化部２１０５が行う一連の処理の例を示す。  
エントロピー復号化部２１０５が“１０１”という符号をハフマン符号化された符号として探し出し、その復号語が“０１１０１”になったとする。この場合、復号されたＳｚは、“０１１０１”つまり、Ｓｚ＝１３であるから、続く１３ビットのビット列がＢＩＮ符号部分ということになる。すなわち、図２２の例でのＢＩＮ符号は、“００１０１１００１１１０１”である。
【０１５５】
＜＜元データ復号化部２１０６＞＞  
元データ復号化部２１０６は、エントロピー復号化部２１０５で得られたデータを、第１の実施形態における符号数制御符号化部１０３で符号化される元のデータとして復号するためのものである。具体的には、エントロピー復号化部２１０５で得られたＢＩＮ符号を復号し、ＢＩＮ符号化の前のデータとして復元する。
【０１５６】
ＢＩＮ符号の復号方法は、第１の実施形態でＢＩＮ符号化したときの逆の手順を辿ればよい。すなわち、復号は以下の２ステップで行う。
【０１５７】
（ステップ１）  
１．１．ＭＳＢが１ならば、１の反転である０をＭＳＢとして付加する、  
１．２．ＭＳＢが０ならば、０の反転である１をたして、さらに０の反転である１をＭＳＢとして付加する、  
という処理を行う。この動作について、例えば、１１’ｂ１０１１００１１１１０という符号を復号する場合を説明する。この例では、ＭＳＢが１だから上記「１．１」にしたがって、ＭＳＢに「１の反転の０」を付加して、１２’ｂ０１０１１００１１１１０とする。  
また、他の例として、１３’ｂ００１０１１００１１１０１という符号を復号する場合は、ＭＳＢが０であるから上記「１．２．」にしたがって、まず、０の反転である１をたす。すなわち、  
１３’ｂ００１０１１００１１１０１＋１’ｂ１＝１３’ｂ００１０１１００１１１１０  
を得る。次に、「１．２．」にしたがって、ＭＳＢに「０の反転の１」を付加する。すなわち、１４’ｂ１００１０１１００１１１１０を得る。
【０１５８】
（ステップ２）  
２．１．ＭＳＢが１ならば、上位に連続した１を追加し、１６ビットとする、  
２．２．ＭＳＢが０ならば、上位に連続した０を追加し、１６ビットとする、  
という処理を行う。例えば、ステップ１の「１．１．」で得られた１２’ｂ０１０１１００１１１１０という符号は、ＭＳＢが０であるから「２．２．」にしたがい、１６ビットになるように上位に０を４つ追加する。すなわち、１６’ｂ０００００１０１１００１１１１０という１６ビットの固定小数フォーマットに復号される。  
また、ステップ１の「１．２．」で得られた１４’ｂ１００１０１１００１１１１０という符号は、ＭＳＢが１であるから「２．１．」にしたがい、１６ビットになるように上位に１を２つ追加する。すなわち、１６’ｂ１１１００１０１１００１１１１０という１６ビットの固定小数フォーマットに復号される。
【０１５９】
以上の２ステップでＢＩＮ符号の復号が完了し、復号されたデータは、１６ビットの固定小数表現として得られる。  
＜復号処理まとめ＞  
以上の２ステップの処理をまとめると、元データ復号化部２１０６は、ビット長ＳｚのＢＩＮ符号に対して、
１．ＭＳＢが１の場合（ＢＩＮ［Ｓｚ−１］＝１の場合）は、１６ビットの下位ＳｚビットにＢＩＮ符号を格納し、上位１６−Ｓｚビットを０で埋める、  
２．ＭＳＢが０の場合（ＢＩＮ［Ｓｚ−１］＝０の場合）は、１６ビットの下位ＳｚビットにＢＩＮ符号を格納し、１６’ｂ０００００００００００００００１を加算したのち、上位１６−Ｓｚビットを１で埋める、  
という処理により１６ビット固定小数データとして復号する。  
なお、以上は、内部表現として１６ビットの固定小数データを用いた場合である。内部表現として任意サイズのビットを混在させた場合は、上記ステップ２の動作は行う必要がない。
【０１６０】
＜＜後処理復号化部２１０７＞＞  
後処理復号化部２１０７は、元データ復号化部２１０６で復号されたデータに、逆正規化、逆量子化の処理などを行ってデータを復元するためのものである。具体的な処理手順を以下に示す。  
１．第１の実施形態で作成された符号化データが、第１の実施形態の前処理符号化部１０２において、一次微分をして作成されたデータの場合、一次積分処理を行う。すなわち、一次積分処理Ｖｎ＝Ｖｎ−１＋ΔＶｎ      （ｎ＝０，１，２，…）という処理を行う。  
２．第１の実施形態の前処理符号化部１０２における量子化の逆の動作を行い、固定小数データの逆量子化処理を行う。  
３．復号情報蓄積部２１０４から正規化値（scale）を取得し、これを「２．」で得られた逆量子化値に乗算する。  
４．得られたデータが符号化前のデータである。  
５．以上を、ベクトルの全ての要素に関して行う。  
６．以上を、全ての頂点（全てのベクトル）に関して行う。
【０１６１】
＜＜出力部２１０８＞＞  
出力部２１０８は、後処理復号化部２１０７で復号化されたデータを、第１の実施形態における入力データと同様のフォーマットで出力するものである。  
以上に示した第３の実施形態のコンピュータグラフィックスデータ復号化装置が処理を行うことにより、第１の実施形態で符号化されたデータを復号することができる。
【０１６２】
＜＜第３の実施形態の効果＞＞  
第３の実施形態では、第１の実施形態で作成された符号語の総数、最大符号長を限定するための処理を施した符号の復号を行う。復号語の作成の際、符号語の総数が限定されているため、従来手法のように、膨大なメモリ領域を復号語作成のために確保する必要がなくなり、また、符号語の最大符号長が限定されているため、復号する際のスループットの低下も抑えることができる。このため、復号器の計算コストや実現コストを抑えることが可能となる。
【０１６３】
（第３の実施形態の変形例１）  
第３の実施形態の変形例１は、第１の実施形態の変形例１で作成された符号の復号を行うための復号器である。  
第３の実施形態の変形例１は、構成は、第３の実施形態と同様だが、エントロピー復号化部２１０５での動作が異なっている。第１の実施形態の変形例１では、符号を２つ以上に分割し、それぞれ符号化を行うことを特徴としている。本変形例では、この復号を行う。具体的には、エントロピー復号化部２１０５へ入力されて来たデータを先頭から復号してゆき、それらを第１の実施形態の変形例１で分割した手法と同様の手法で結合する処理を行う。  
例えば、第１の実施形態の変形例１で、１６ビットの符号を上位８ビットＡと下位８ビットＢに分割し、それぞれをハフマン符号化したものＡ’，Ｂ’を結合したＣ＝｛Ａ’，Ｂ’｝という符号が作成されていたとする。この場合、エントロピー復号化部２１０５はデータを先頭から調査し、まず、Ａ’をＡに復号し、次に、Ｂ’がＢに復号する。そして、エントロピー復号化部２１０５は｛Ａ，Ｂ｝を復号データとする。
【０１６４】
（第３の実施形態の変形例２）  
第３の実施形態の変形例２は、第１の実施形態の変形例２で作成された符号の復号を行うための復号器である。  
第３の実施形態の変形例２は、構成は第３の実施形態と同様だが、エントロピー復号化部２１０５での動作が異なっている。第１の実施形態の変形例２では、特定の符号長Ｎまではハフマン符号語を用い、特定の符号語長Ｎを超えるデータに関しては、非符号識別子と非符号データの組み合わせで符号化を行うことを特徴としていた。本変形例では、この復号を行う。
【０１６５】
具体的には、エントロピー復号化部２１０５は、入力したデータを先頭から復号してゆき、復号したデータが特定の符号語長Ｎまでに復号情報蓄積部２１０４に蓄積された復号情報を用いて復号される場合は、この復号したデータを復号語として採用する。復号されない場合には、これは非符号化識別子だとみなすことができるため、続くデータを復号データとして採用する。量子化ビット長が１６ビットの場合は、続く１６ビット分のデータが復号データとなる。
【０１６６】
なお、第１の実施形態、第１の実施形態の変形例１、第１の実施形態の変形例２の手法が適宜組み合わせて用いられている場合は、復号のために、同じ組み合わせで、第３の実施形態、第３の実施形態の変形例１、第３の実施形態の変形例２を組み合わせて用いなければならない。
【０１６７】
（第３の実施形態の変形例３）  
第３の実施形態の変形例３は、第１の実施形態の変形例３で行われた要素圧縮処理された符号の復号を行うためのものである。  
この場合、第３の実施形態とは、エントロピー復号化部２１０５、元データ復号化部２１０６、および、後処理復号化部２１０７の動作が異なる。
【０１６８】
＜＜エントロピー復号化部２１０５、元データ復号化部２１０６＞＞  
まず、要素圧縮した際にパラメータ値の符号化を行ったかどうかの情報を、抽出情報復号化部２１０２を経て取得する。パラメータ値部分が符号化されている場合には、エントロピー復号化部２１０５および元データ復号化部２１０６は通常と同様に復号化処理を行う。パラメータ値部分が符号化されていない場合には、パラメータ値のビット長（例えば３ビット）分のデータを取得し、それを復号語とする。
【０１６９】
以下、（ｎｘ，ｎｙ，ｎｚ）の３要素からなる正規化法線データを例として説明する。第１の実施形態の変形例３で説明したように、正規化法線データ（ｎｘ，ｎｙ，ｎｚ）は、図１２を用いて（ｎ１，ｎ２，ｐ）に要素圧縮されている。この正規化法線データは｛ＳｚＢＩＮ（ｎ１），ＳｚＢＩＮ（ｎ２），ＳｚＢＩＮ（ｐ）｝または、｛ＳｚＢＩＮ（ｎ１），ＳｚＢＩＮ（ｎ２），ｐ｝という形式で符号化されている。ここで、ＳｚＢＩＮ（ｘ）は、データｘをＳｚＢＩＮ符号化した符号を示す。これを上記で述べた手法で復号すると、｛ｎ１，ｎ２，ｐ｝が得られる。
【０１７０】
＜＜後処理復号化部２１０７＞＞  
後処理復号化部２１０７は、上記で得られたデータと要素圧縮パラメータのセットから、要素圧縮されたデータの復元を行う。ここでは、例として、（ｎ１，ｎ２，ｐ）から（ｎｘ，ｎｙ，ｎｚ）のデータ復元を考える。  
まず、ｎ１，ｎ２にあたる符号の逆量子化、逆正規化処理を通常通り行う。  
次に、式（１３）と符号化の際に用いた図１２の関係を用いてｎ３を計算する。
【０１７１】
ｎ３＝ｓｉｇｎ（ｎ３）×（１−ｎ１２−ｎ２２）１／２・・・（１３）  
ｓｉｇｎ（ｎ３）は、図１２を参照すればわかるように、残り１要素の符号が正（ｐのＬＳＢ（Least Significant bit：最下位ビット）が０）のとき１、負（ＬＳＢが１）のとき−１となる関数である。  
ルート演算の中身が負となる場合はこの値を０とする。すなわち、
ｉｆ  １−ｎ１２−ｎ２２＜０  ｔｈｅｎ  １−ｎ１２−ｎ２２＝０・・・（１４）  
そして、図２３を参照し、（ｎ１，ｎ２，ｎ３）を（ｎｘ，ｎｙ，ｎｚ）に変換する。これは、図１２を逆変換用に変形したテーブルである。
【０１７２】
例えば、ｎ１＝０．０２，ｎ２＝０．１３，ｐ＝０１１の場合は、  
ｎｘ＝ｎ３＝−１×（１−０．０２２−０．１３２）１／２＝−０．９９，  
ｎｙ＝ｎ１＝０．０２，  
ｎｚ＝ｎ２＝０．１３  
と変換される。以上で要素展開は終了である。  
本実施例では、正規化法線データを例として説明したが、他のデータや、他の要素数の際にも同様である。
【０１７３】
（第４の実施形態）  
次に、本発明の第４の実施形態について説明する。第４の実施形態の復号器は、第２の実施形態で作成された符号を復号するためのものである。  
図２４は、本発明の第４の実施形態に係るコンピュータグラフィックスデータ復号化装置の全体構成図である。第３の実施形態で図２１を参照して説明した装置部分と同様なものは同一の符号を付して説明を省略する。  
本実施形態のコンピュータグラフィックスデータ復号化装置は、入力部２１０１、抽出情報復号化部２１０２、符号語情報蓄積部２４０１、復号作成部２４０２、復号情報蓄積部２４０３、エントロピー復号化部２４０４、元データ復号化部２１０６、後処理復号化部２１０７、出力部２１０８を備えている。
【０１７４】
符号語情報蓄積部２４０１は、典型的なデータにおけるエントロピー情報と符号語との関係を予め蓄えておく。  
復号作成部２４０２は、抽出情報復号化部２１０２で得られたデータと、符号語情報蓄積部２４０１に蓄えられている情報を用いて、符号語を復号するための情報を作成する。  
復号情報蓄積部２４０３は、復号作成部２４０２で作成された復号のための情報を蓄積する。  
エントロピー復号化部２４０４は、入力部２１０１から第１の実施形態におけるエントロピー符号化部１０６で得られた符号の部分を取得し、復号情報蓄積部２４０３に蓄積された復号情報を用いて、符号を復号する。  
＜＜符号語情報蓄積部２４０１＞＞  
符号語情報蓄積部２４０１は、典型的なデータにおけるエントロピー情報と符号語との関係を予め蓄えておくためのものである。具体的には、第２の実施形態で説明した符号テーブル（図１６〜図１８）を、第２の実施形態と同じ種類のデータとして蓄えておく。
【０１７５】
＜＜復号作成部２４０２＞＞  
復号作成部２４０２は、符号語情報蓄積部２４０１で得られた情報を用いて、抽出情報復号化部２１０２で得られたデータにエントロピー復号化を行うための付加情報を加えて符号語を復号するための復号語を作成するためのものである。  
具体的には、抽出情報復号化部２１０２からは、第２の実施形態で作成された頻度テーブル（図１５）が復号されて得られる。この頻度テーブルと、符号語情報蓄積部２４０１から得られた符号テーブルを用いて、復号語を作成する。２つのテーブルを図２５のように参照することで、ハフマン符号語に対応する復号語（Ｓｚの値）を得ることができる。
【０１７６】
＜＜復号情報蓄積部２４０３＞＞  
復号情報蓄積部２４０３は、復号作成部２４０２で作成された復号のための情報を保持しておくためのものであり、上記で作成されたハフマン符号と対応する復号語の情報を保持する。
【０１７７】
＜＜エントロピー復号化部２４０４＞＞  
エントロピー復号化部２４０４は、入力部２１０１から第１の実施形態におけるエントロピー符号化部１０６で得られた符号の部分を取得し、復号情報蓄積部２４０３に蓄積された復号情報を用いて、符号を復号するためのものである。
【０１７８】
エントロピー復号化部２４０４は、Ｈｕｆｆ（Ｓｚ）ＢＩＮのフォーマットを持つ符号を入力する。Ｈｕｆｆ（Ｓｚ）ＢＩＮのフォーマットを持つ符号は、ＳｚＢＩＮ符号のＳｚの部分がハフマン符号化されたものである。エントロピー復号化部２４０４は、Ｈｕｆｆ（Ｓｚ）ＢＩＮのフォーマットを持つ符号を復号し、ＳｚＢＩＮ符号の形式に戻す。
【０１７９】
具体的には、エントロピー復号化部２４０４は、符号を先頭から探索し、復号情報蓄積部２４０３に蓄積されたハフマン符号にマッチする復号語を探し出す。この探し出された復号語が復号されたＳｚである。以降、Ｓｚの値を参照して、ＢＩＮ符号を復号する手法は、第３の実施形態で説明したのと同様である。  
以上に説明した以外の部分に関しては、第３の実施形態と同様の動作を行う。第４の実施形態では、第２の実施形態で作成した符号データの復号を行うことができる。
【０１８０】
＜＜第４の実施形態の効果＞＞  
第３の実施形態では、復号時に必要な情報（符号化時に抽出部１０７で出力される情報）として、ハフマン木の情報、または、符号化前のデータとハフマン符号の対応の情報が必要であった。ハフマン木の情報を受け取った場合には、復号語を作成するためには、ハフマン木を再構成して復号語を作成する必要がある。また、符号化前のデータとハフマン符号の対応の情報を受け取った場合には、比較的大きなデータを受け取る必要があった。
【０１８１】
第４の実施形態によれば、典型的なハフマン符号語の情報を符号テーブルとして予め符号語情報蓄積部２４０１に蓄えて用いるため、復号時に必要な情報（符号化時に抽出部１０７で出力される情報）として、頻度テーブルの情報しか受け取る必要がない。このため、符号化データのデータ量の減少の効果が、第３の実施形態よりも高い。これは、復号器にデータを入力する際のスループットの向上に繋がる。  
また、頻度テーブルを受け取り、それと予め蓄えられている符号テーブルを参照するだけで復号語が作成できるため、ハフマン木から復号語を再構成する必要がある第３の実施形態よりも、シンプルな構成で実現することができる。これは、第４の実施形態に係る復号器を実現するための価格的なコストを抑えることができるという効果を生む。
【０１８２】
復号器の演算コスト、実現コストを押さえるため、ＦＡＸなどで用いられている拡張ハフマン法などに代表される従来手法では、復号器に完全に固定なデータと復号語の対応テーブルを持っている。これは、典型的なデータ以外では、符号化による圧縮効率が非常に低下する。  
一方、本発明の実施形態の手法によれば、典型的な復号語データのみ固定として予め符号語情報蓄積部２４０１に蓄え、頻度情報は個々のデータから得ているため、特定のデータだけでなく、データの傾向が変化しても、常に高いレベルでの符号化による圧縮効率を期待することができる。第４の実施形態は、従来手法と、第３の実施形態の良いところ取り入れたものである。
【０１８３】
（第４の実施形態の変形例１）  
第４の実施形態の変形例１は、構成は、第４の実施形態と同様だが、エントロピー復号化部２４０４での動作が異なっている。エントロピー復号化部２４０４の動作は、第３の実施形態の変形例１と同様の動作を行う。これにより、第４の実施形態の変形例１によれば、第２の実施形態の変形例１で作成された符号の復号を行うことができる。
【０１８４】
（第４の実施形態の変形例２）  
第４の実施形態の変形例２は、構成は、第４の実施形態と同様だが、エントロピー復号化部２４０４での動作が異なっている。エントロピー復号化部２１０５の動作は、第３の実施形態の変形例２と同様の動作を行う。これにより、第４の実施形態の変形例２によれば、第２の実施形態の変形例２で作成された符号の復号を行うことができる。
【０１８５】
なお、第１の実施形態、第１の実施形態の変形例１、第１の実施形態の変形例２の手法が適宜組み合わせて用いられている場合は、復号のために、同じ組み合わせで、第４の実施形態、第４の実施形態の変形例１、第４の実施形態の変形例２を組み合わせて用いなければならない。  
また、要素圧縮データの展開をするために、第３の実施形態の変形例３と同様の処理を行うことがある。
【０１８６】
また、上述の実施形態の中で示した処理手順に示された指示は、ソフトウェアであるプログラムに基づいて実行されることが可能である。汎用の計算機システムが、このプログラムを予め記憶しておき、このプログラムを読み込むことにより、上述した実施形態のコンピュータグラフィックスデータ符号化装置および復号化装置による効果と同様な効果を得ることも可能である。上述の実施形態で記述された指示は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ±Ｒ、ＤＶＤ±ＲＷなど）、半導体メモリ、又はこれに類する記録媒体に記録される。コンピュータまたは組み込みシステムが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。コンピュータは、この記録媒体からプログラムを読み込み、このプログラムに基づいてプログラムに記述されている指示をＣＰＵで実行させれば、上述した実施形態のコンピュータグラフィックスデータ符号化装置および復号化装置と同様な動作を実現することができる。もちろん、コンピュータがプログラムを取得する場合又は読み込む場合はネットワークを通じて取得又は読み込んでもよい。  
また、記憶媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーションシステム）や、データベース管理ソフト、ネットワーク等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行してもよい。  
さらに、本願発明における記憶媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、ＬＡＮやインターネット等により伝達されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。  
また、記憶媒体は１つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本発明における記憶媒体に含まれ、媒体の構成は何れの構成であってもよい。
【０１８７】
なお、本願発明におけるコンピュータまたは組み込みシステムは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。  
また、本願発明の実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の実施形態における機能を実現することが可能な機器、装置を総称している。
【０１８８】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０１８９】
【図１】本発明の第１の実施形態に係るコンピュータグラフィックスデータ符号化装置のブロック図。
【図２】コンピュータグラフィックスのデータを説明するための図。
【図３】図１の前処理符号化部が行う正規化処理について説明するための図。
【図４】図１の前処理符号化部が行う量子化の一手法であるデータフォーマットを示す図。
【図５】図１の前処理符号化部が行う一次微分を説明するための図。
【図６】図１の前処理符号化部が行う微分値を変換するための関数の一例を示す図。
【図７】図１の符号数制御符号化部が符号化したＳｚＢＩＮ符号のフォーマットを示す図。
【図８】図１の符号数制御符号化部が行う、Ｓｚの値からＢＩＮ符号を求める手法を説明するための図。
【図９】Ｓｚの未使用領域を用いてＳｚＢＩＮ形式とすることで、正規化値を符号データ内に混在させているフォーマットの一例を示す図。
【図１０】図１のエントロピー情報蓄積部が作成した頻度テーブルの一例を示す図。
【図１１】第１の実施形態の変形例２に係るコンピュータグラフィックスデータ符号化装置のブロック図。
【図１２】第１の実施形態の変形例３の前処理符号化部で３要素を要素圧縮する場合に使用されるテーブルを示す図。
【図１３】２要素または４要素を、図１２のように要素圧縮する場合に使用されるテーブルを示す図。
【図１４】本発明の第２の実施形態に係るコンピュータグラフィックスデータ符号化装置のブロック図。
【図１５】図１４のエントロピー情報蓄積部で作成されるＳｚの出現頻度のテーブルを示す図。
【図１６】図１４の符号語情報蓄積部で蓄えられる符号テーブルを示す図。
【図１７】球体などの頂点が均等に並ぶコンピュータグラフィックスデータにおける符号テーブルの一例を示す図。
【図１８】球体などの頂点が均等に並ぶ場合以外のコンピュータグラフィックスデータにおける符号テーブルの一例を示す図。
【図１９】図１４の符号作成部が頻度テーブルおよび符号テーブルを参照してハフマン符号を得ることを説明するための図。
【図２０】第２の実施形態の変形例２に係るコンピュータグラフィックスデータ符号化装置のブロック図。
【図２１】本発明の第３の実施形態に係るコンピュータグラフィックスデータ復号化装置のブロック図。
【図２２】図２１のエントロピー復号化部２１０５が行う一連の処理の一例を示す図。
【図２３】図２１の後処理復号化部で（ｎ１，ｎ２，ｎ３）を（ｎｘ，ｎｙ，ｎｚ）に変換するためのテーブルを示す図。
【図２４】本発明の第４の実施形態に係るコンピュータグラフィックスデータ復号化装置のブロック図。
【図２５】図２４の復号作成部がハフマン符号テーブルおよび頻度テーブルを参照して復号語（Ｓｚの値）を得ることを説明するための図。
【符号の説明】
【０１９０】
１０１、２１０１…入力部、１０２…前処理符号化部、１０３、１１０４、２００４…符号数制御符号化部、１０４…エントロピー情報蓄積部、１０５、１１０２、１４０３、２００２…符号作成部、１０６、１１０３、２００３…エントロピー符号化部、１０７…抽出部、１０８…抽出情報符号化部、１０９、１１０５、２００５…出力部、１４０１、１１０１、２００１…符号蓄積部、１４０２、２４０１…符号語情報蓄積部、２１０２…抽出情報復号化部、２１０３、２４０２…復号作成部、２１０４、２４０３…復号情報蓄積部、２１０５、２４０４…エントロピー復号化部、２１０６…元データ復号化部、２１０７…後処理復号化部、２１０８…出力部。
【図１】
2006238036.tif 000003
【図２】
2006238036.tif 000004
【図３】
2006238036.tif 000005
【図４】
2006238036.tif 000006
【図５】
2006238036.tif 000007
【図６】
2006238036.tif 000008
【図７】
2006238036.tif 000009
【図８】
2006238036.tif 000010
【図９】
2006238036.tif 000011
【図１０】
2006238036.tif 000012
【図１１】
2006238036.tif 000013
【図１２】
2006238036.tif 000014
【図１３】
2006238036.tif 000015
【図１４】
2006238036.tif 000016
【図１５】
2006238036.tif 000017
【図１６】
2006238036.tif 000018
【図１７】
2006238036.tif 000019
【図１８】
2006238036.tif 000020
【図１９】
2006238036.tif 000021
【図２０】
2006238036.tif 000022
【図２１】
2006238036.tif 000023
【図２２】
2006238036.tif 000024
【図２３】
2006238036.tif 000025
【図２４】
2006238036.tif 000026
【図２５】
2006238036.tif 000027