(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-12
(45)【発行日】2024-11-20
(54)【発明の名称】符号化復号装置、符号化復号方法及びプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20241113BHJP
G06N 3/0455 20230101ALI20241113BHJP
【FI】
G06N20/00
G06N3/0455
(21)【出願番号】P 2023520630
(86)(22)【出願日】2021-05-11
(86)【国際出願番号】 JP2021017893
(87)【国際公開番号】W WO2022239114
(87)【国際公開日】2022-11-17
【審査請求日】2023-08-25
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】工藤 忍
(72)【発明者】
【氏名】谷田 隆一
(72)【発明者】
【氏名】木全 英明
【審査官】渡辺 順哉
(56)【参考文献】
【文献】国際公開第2020/230188(WO,A1)
【文献】特開2020-149311(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
入力データを符号化特徴ベクトルに変換する符号化部と、
前記符号化特徴ベクトルの要素である符号化特徴ごとの量子化精度を、符号化符号量に応じて導出する量子化精度導出部と、
前記符号化特徴ベクトルに対して量子化処理を前記量子化精度に基づいて実行することによって、前記符号化符号量を目標とする量子化符号量のサイズの量子化符号化特徴ベクトルを生成する量子化部と、
前記量子化符号化特徴ベクトルに対して二値化処理を実行することによって、符号化データを生成する二値化部と、
前記符号化データに応じた所定データに対して復号処理を実行する復号部と
、
復号符号量のサイズの二値化データを前記符号化データから抽出し、抽出された前記二値化データの形式を前記量子化符号化特徴ベクトルの形式に前記量子化精度に基づいて整形することによって、整形復号用データを生成する抽出整形部と、
前記整形復号用データに対して逆二値化処理を実行することによって、逆二値化復号用データを生成する逆二値化部と
を備え
、
前記復号部は、前記逆二値化復号用データに対して前記復号処理を前記復号符号量に基づいて実行することによって、前記逆二値化復号用データを復号データに変換する、
符号化復号装置。
【請求項2】
前記入力データに対する前記復号データの誤差である再構成誤差を導出する再構成誤差導出部と、
前記符号化符号量と前記量子化精度の総和である前記量子化符号量との差である符号量誤差を導出し、前記再構成誤差と前記符号量誤差とに基づいて目的関数を導出し、前記入力データを前記符号化特徴ベクトルに変換する符号化処理に用いられるパラメータと前記復号処理に用いられるパラメータと前記量子化精度の導出に用いられるパラメータとのうちの少なくとも一つを、前記目的関数に基づいて更新する最適化部とを更に備える、
請求項
1に記載の符号化復号装置。
【請求項3】
前記二値化部は、前記量子化精度の範囲外の二値化データを、前記符号化データから削除し、
前記抽出整形部は、前記符号化データから削除された二値化データを、前記整形復号用データにおいて前記量子化精度に基づいて所定値で補完する、
請求項
1又は請求項
2に記載の符号化復号装置。
【請求項4】
前記抽出整形部は、前記量子化精度の範囲内の二値化データを、抽出された前記二値化データから取得し、前記量子化精度の範囲内の二値化データの形式を整形することによって、前記整形復号用データを生成する、
請求項
1又は請求項
2に記載の符号化復号装置。
【請求項5】
符号化復号装置が実行する符号化復号方法であって、
入力データを符号化特徴ベクトルに変換する符号化ステップと、
前記符号化特徴ベクトルの要素である符号化特徴ごとの量子化精度を、符号化符号量に応じて導出する量子化精度導出ステップと、
前記符号化特徴ベクトルに対して量子化処理を前記量子化精度に基づいて実行することによって、前記符号化符号量を目標とする量子化符号量のサイズの量子化符号化特徴ベクトルを生成する量子化ステップと、
前記量子化符号化特徴ベクトルに対して二値化処理を実行することによって、符号化データを生成する二値化ステップと、
前記符号化データに応じた所定データに対して復号処理を実行する復号ステップと
、
復号符号量のサイズの二値化データを前記符号化データから抽出し、抽出された前記二値化データの形式を前記量子化符号化特徴ベクトルの形式に前記量子化精度に基づいて整形することによって、整形復号用データを生成する抽出整形ステップと、
前記整形復号用データに対して逆二値化処理を実行することによって、逆二値化復号用データを生成する逆二値化ステップと
を含
み、
前記復号ステップは、前記逆二値化復号用データに対して前記復号処理を前記復号符号量に基づいて実行することによって、前記逆二値化復号用データを復号データに変換することを含む、
符号化復号方法。
【請求項6】
請求項1から請求項
4のいずれか一項に記載の符号化復号装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、符号化復号装置、符号化復号方法及びプログラムに関する。
【背景技術】
【0002】
機械学習されたニューラルネットワークを用いて入力データを圧縮する装置(符号化復号装置)が知られている(非特許文献1参照)。
図8は、符号化復号装置10の構成例を示す図である。符号化復号装置10は、符号化部11と、量子化部12と、二値化部13と、復号部14とを、ニューラルネットワークを用いるオートエンコーダの各機能部として備える。
【0003】
符号化部11は、入力データを、N個(Nは1以上の整数)の符号化特徴を要素とするベクトル(以下「符号化特徴ベクトル」という。)に変換する。量子化部12は、量子化精度を要素とするベクトル(以下「量子化精度ベクトル」という。)に基づいて、符号化特徴ベクトルに対して量子化処理を実行する。ここで、符号化特徴(符号化特徴ベクトルの要素)ごとに、固定の量子化精度が定められている。
【0004】
二値化部13は、量子化された符号化特徴ベクトル(以下「量子化符号化特徴ベクトル」という。)に対して二値化処理を実行することによって、二値化された量子化符号化特徴ベクトル(以下「符号化データ」という。)を生成する。復号部14は、符号化データに対して復号処理を実行することによって、復号データを生成する。
【先行技術文献】
【非特許文献】
【0005】
【文献】Eirikur Agustsson, et al. ,"Generative Adversarial Networks for Extreme Learned Image Compression," ICCV2019.
【発明の概要】
【発明が解決しようとする課題】
【0006】
符号化復号装置は、所定符号量のサイズの符号化データを生成する。この所定符号量とは、符号化特徴の個数「N」と量子化精度との乗算結果の符号量である。しかしながら、このような符号化復号装置では、入力データを符号化データから復元する精度を向上させることができないという問題がある。
【0007】
上記事情に鑑み、本発明は、入力データを符号化データから復元する精度を向上させることが可能である符号化復号装置、符号化復号方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【0008】
本発明の一態様は、入力データを符号化特徴ベクトルに変換する符号化部と、前記符号化特徴ベクトルの要素である符号化特徴ごとの量子化精度を、符号化符号量に応じて導出する量子化精度導出部と、前記符号化特徴ベクトルに対して量子化処理を前記量子化精度に基づいて実行することによって、前記符号化符号量を目標とする量子化符号量のサイズの量子化符号化特徴ベクトルを生成する量子化部と、前記量子化符号化特徴ベクトルに対して二値化処理を実行することによって、符号化データを生成する二値化部と、前記符号化データに応じた所定データに対して復号処理を実行する復号部とを備える符号化復号装置である。
【0009】
本発明の一態様は、符号化復号装置が実行する符号化復号方法であって、入力データを符号化特徴ベクトルに変換する符号化ステップと、前記符号化特徴ベクトルの要素である符号化特徴ごとの量子化精度を、符号化符号量に応じて導出する量子化精度導出ステップと、前記符号化特徴ベクトルに対して量子化処理を前記量子化精度に基づいて実行することによって、前記符号化符号量を目標とする量子化符号量のサイズの量子化符号化特徴ベクトルを生成する量子化ステップと、前記量子化符号化特徴ベクトルに対して二値化処理を実行することによって、符号化データを生成する二値化ステップと、前記符号化データに応じた所定データに対して復号処理を実行する復号ステップとを含む符号化復号方法である。
【0010】
本発明の一態様は、上記の符号化復号装置としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【0011】
本発明により、入力データを符号化データから復元する精度を向上させることが可能である。
【図面の簡単な説明】
【0012】
【
図1】第1実施形態における、符号化復号装置の構成例を示す図である。
【
図2】第1実施形態における、符号化復号装置の動作例を示すフローチャートである。
【
図3】第1実施形態における、圧縮率とピーク信号対雑音比との関係例を示す図である。
【
図4】第1実施形態における、レート制御の例を示す図である。
【
図5】第2実施形態における、符号化復号装置の構成例を示す図である。
【
図6】第2実施形態における、スケーラブル復号の例を示す図である。
【
図7】各実施形態における、符号化復号装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【0013】
本発明の実施形態について、図面を参照して詳細に説明する。
(第1実施形態)
図1は、符号化復号装置1aの構成例を示す図である。符号化復号装置1aは、入力データに対して符号化処理(データ圧縮処理)を実行し、符号化データに対して復号処理を実行するシステムである。
【0014】
符号化復号装置1aは、オートエンコーダ2と、学習装置3とを備える。オートエンコーダ2は、符号化部20と、量子化部21と、二値化部22と、抽出整形部23aと、逆二値化部24と、復号部25とを備える。学習装置3は、再構成誤差導出部30と、量子化精度導出部31と、符号量導出部32と、符号量誤差導出部33と、最適化部34とを備える。
【0015】
まず、オートエンコーダ2の概要を説明する。
符号化部20は、符号化処理を実行するためのニューラルネットワーク(以下「符号化ニューラルネットワーク」という。)を有する。復号部25は、復号処理を実行するためのニューラルネットワーク(以下「復号ニューラルネットワーク」という。)を有する。量子化精度導出部31は、量子化精度ベクトルを導出するためのニューラルネットワーク(以下「量子化ニューラルネットワーク」という。)を有する。符号化ニューラルネットワークと復号ニューラルネットワークと量子化ニューラルネットワークとのそれぞれは、学習対象(最適化対象)のニューラルネットワークである。
【0016】
オートエンコーダ2は、符号化ニューラルネットワークを用いる符号化処理(データ圧縮処理)を入力データに対して実行することによって、入力データを符号化特徴ベクトルに変換する。
【0017】
以下では、符号化特徴ベクトルの要素(符号化特徴)ごとに、量子化精度ベクトルの要素(量子化精度)が対応付けられている。量子化精度は、1個以上の符号化特徴の符号量(以下「符号化符号量」という。)(圧縮率)に応じて、学習装置3によって適応的に更新される。
【0018】
オートエンコーダ2は、量子化精度ベクトルに基づいて、符号化特徴ベクトルに対して量子化処理を実行する。オートエンコーダ2は、量子化処理によって、符号化特徴ベクトルを量子化符号化特徴ベクトルに変換する。オートエンコーダ2は、量子化符号化特徴ベクトルに対して二値化処理を実行することによって、符号化データを生成する。二値化処理において、オートエンコーダ2は、量子化精度の範囲外の二値化データを、符号化データから削除する。
【0019】
以下、符号化データから抽出される二値化データの符号量を「復号符号量」という。第1実施形態では、符号化符号量と復号符号量とは等しい。オートエンコーダ2は、復号符号量のサイズの二値化データを、符号化データから抽出する。オートエンコーダ2は、復号符号量のサイズの二値化データに対して整形処理を実行する。ここで、オートエンコーダ2は、抽出された二値化データの形式を量子化符号化特徴ベクトルの形式に整形することによって、整形された形式の復号用データ(整形復号用データ)を生成する。ここで、オートエンコーダ2は、符号化データから削除された二値化データを、整形された形式の復号用データにおいて所定値(例えば、0)で補完する。
【0020】
オートエンコーダ2は、整形された形式の復号用データに対して逆二値化処理を実行することによって、逆二値化復号用データを生成する。オートエンコーダ2は、復号ニューラルネットワークを用いる復号処理を逆二値化復号用データに対して実行することによって、復号データを生成する。
【0021】
次に、オートエンコーダ2の詳細を説明する。
符号化部20は、符号化符号量と入力データとを、例えば情報処理装置(不図示)から取得する。符号化部20は、入力データを、符号化符号量に基づいて、符号化特徴ベクトルに変換する。量子化部21は、符号化符号量を目標とする量子化符号量のサイズの量子化符号化特徴ベクトルとして、シグモイド関数と量子化精度ベクトルとを用いる整数丸め処理の結果を、符号化特徴ベクトルの要素ごとに導出する。量子化符号量は、量子化精度ベクトルにおける要素の総和である。二値化部22は、量子化精度ベクトルに基づいて、量子化符号化特徴ベクトルに対して二値化処理を実行することによって、符号化データを生成する。ここで、二値化部22は、量子化精度の範囲外の二値化データを量子化精度ベクトルから削除することによって、符号化データを生成する。
【0022】
抽出整形部23aは、復号符号量のサイズの二値化データを、取得された符号化データから抽出する。抽出整形部23aは、量子化精度ベクトルに基づいて、取得された符号化データから抽出された二値化データの形式を、量子化符号化特徴ベクトルの形式に整形する。ここで、抽出整形部23aは、量子化精度の範囲外の二値化データを、復号用データにおいて量子化精度に基づいて所定値で補完する。これによって、抽出整形部23aは、整形された形式の復号用データを生成する。
【0023】
逆二値化部24は、整形された形式の復号用データに対して逆二値化処理を実行することによって、逆二値化復号用データを生成する。復号部25は、逆二値化復号用データに対して、復号符号量に基づいて復号処理を実行する。これによって、復号部25は、逆二値化復号用データを復号データに変換する。
【0024】
次に、学習装置3の概要を説明する。
学習装置3は、学習処理(機械学習)を実行する装置である。学習装置3は、入力データと復号データとの間の差分(ベクトル間の距離)を導出する。入力データと復号データとの間の差分は、例えば、平均二乗誤差を用いて表される。学習装置3は、量子化精度ベクトルにおける要素の総和である量子化符号量と符号化符号量(圧縮率)との差分を導出する。学習装置3は、各差分に基づいて、目的関数を生成する。
【0025】
学習装置3は、入力データと復号データとの間の差分が小さくなるように(目的関数の値が小さくなるように)、符号化部20の符号化ニューラルネットワークのパラメータと、復号部25の復号ニューラルネットワークのパラメータと、量子化精度導出部31の量子化ニューラルネットワークのパラメータとのうちの少なくとも一つを更新する。このようにして、学習装置3は、量子化精度ベクトルの要素(量子化精度)を、符号化符号量に応じて適応的に更新する。
【0026】
学習装置3(最適化装置)は、符号化ニューラルネットワークの更新後のパラメータを、符号化部20に出力する。学習装置3は、復号ニューラルネットワークの更新後のパラメータを、復号部25に出力する。学習装置3は、量子化ニューラルネットワークの更新後のパラメータを、量子化精度導出部31に出力する。
【0027】
次に、学習装置3の詳細を説明する。
再構成誤差導出部30は、入力データに対する復号データの誤差である再構成誤差を導出する。量子化精度導出部31は、符号化符号量に応じて量子化精度ベクトルを導出する。ここで、量子化精度導出部31は、符号化符号量に対して量子化ニューラルネットワークを用いて、量子化精度ベクトルを導出する。量子化ニューラルネットワークのパラメータは、最適化部34によって更新される。
【0028】
符号量導出部32は、量子化精度ベクトルにおける「N」個の要素の総和である量子化符号量[bit]を導出する。符号量誤差導出部33は、符号化符号量に対する量子化符号量の誤差である符号量誤差(符号化符号量と量子化符号量との差)を導出する。
【0029】
最適化部34は、再構成誤差と符号量誤差とに基づいて、目的関数を導出する。最適化部34は、目的関数に対して最適化処理を実行する。最適化部34は、最小化された目的関数に対して例えば誤差逆伝播法を実行することによって、符号化部20の符号化ニューラルネットワークのパラメータと、復号部25の復号ニューラルネットワークのパラメータと、量子化精度導出部31の量子化ニューラルネットワークのパラメータとのうちの少なくとも一つを更新する。
【0030】
次に、符号化復号装置1aの動作例を説明する。
図2は、符号化復号装置1aの動作例を示すフローチャートである。符号化部20は、符号化符号量「R
enc」と入力データ「x」とを、例えば情報処理装置(不図示)から取得する。符号化部20は、入力データ「x」を、符号化特徴ベクトル「z=[z
1,…,z
N]」に変換する。符号化特徴「z
n」の値は、符号化対象の特徴量を表す(ステップS101)。
【0031】
量子化精度導出部31は、符号化符号量「Renc」を、例えば情報処理装置(不図示)から取得する。量子化精度導出部31は、符号化符号量「Renc」に対して量子化ニューラルネットワークを用いて、量子化精度ベクトル「B=[B1,…,BN]」を導出する。ここで、量子化精度ベクトルの要素「Bn」の値は、例えば、0以上64以下の整数である(ステップS102)。
【0032】
このように、要素「Bn」の値は0でもよい。量子化精度導出部31が量子化精度を符号化符号量に応じて変更することによって、符号化データに含まれる量子化符号化特徴の個数「N」を制御することができる。
【0033】
量子化部21は、符号化特徴ベクトル「z」を、符号化部20から取得する。量子化部21は、量子化精度ベクトル「B」を、量子化精度導出部31から取得する。量子化部21は、符号化符号量を目標とする量子化符号量のサイズの量子化符号化特徴ベクトル「zq=[z1
q,…,zN
q]」として、シグモイド関数「sigmoid(zn)」と量子化精度ベクトル「B」とを用いる整数丸め処理「Q」の結果「zn
q=Q(sigmoid(zn)(2Bn-1))」を、符号化特徴ベクトルの要素「zn」ごとに導出する(ステップS103)。
【0034】
二値化部22は、量子化符号化特徴ベクトル「zq」を、量子化部21から取得する。二値化部22は、量子化精度ベクトルを、量子化精度導出部31から取得する。二値化部22は、量子化精度ベクトルに基づいて、量子化符号化特徴ベクトルに対して二値化処理を実行することによって、符号化データ「zenc」を生成する。ここで、二値化部22は、量子化精度の範囲外の二値化データを、符号化データ「zenc」から削除する(ステップS104)。
【0035】
抽出整形部23aは、復号符号量「Rdec」を、例えば情報処理装置(不図示)から取得する。抽出整形部23aは、符号化データ「zenc」を、二値化部22から取得する。抽出整形部23aは、復号符号量「Rdec」のサイズの二値化データを、取得された符号化データ「zenc」から抽出する(ステップS105)。
【0036】
抽出整形部23aは、量子化精度ベクトル「B」を、量子化精度導出部31から取得する。抽出整形部23aは、量子化精度ベクトル「B」に基づいて、取得された符号化データ「zenc」から抽出された二値化データの形式を、量子化符号化特徴ベクトル「zq」の形式に整形する。ここで、抽出整形部23aは、量子化精度の範囲外の二値化データを、復号用データにおいて所定値(例えば、0)で補完する。これによって、抽出整形部23aは、整形された形式の復号用データ「zdec」を生成する(ステップS106)。
【0037】
以下では、数式において文字の上に付されている記号は、その文字の直前に記載される。例えば、数式において文字「zq」の上に付されている記号「^」は、「^zq」のように文字「zq」の直前に記載される。
【0038】
逆二値化部24は、整形された形式の復号用データ「zdec」に対して逆二値化処理を実行することによって、逆二値化復号用データ「^zq」を生成する(ステップS107)。復号部25は、逆二値化復号用データ「^zq」に対して、復号符号量「Rdec」に基づいて復号処理を実行する。これによって、復号部25は、逆二値化復号用データ「^zq」を、復号データ「^x」に変換する(ステップS108)。
【0039】
再構成誤差導出部30は、入力データを、例えば情報処理装置(不図示)から取得する。再構成誤差導出部30は、復号データ(再構成データ)を、復号部25から取得する。再構成誤差導出部30は、入力データ「x」に対する復号データ「^x」の誤差である再構成誤差「Lrec=d(x,^x)」を導出する。関数「d」は、ベクトル間の距離を導出するための任意の関数であり、例えば、平均二乗誤差の和、又は、バイナリクロスエントロピ(Binary Cross Entropy)である(ステップS109)。
【0040】
符号量導出部32は、量子化精度ベクトル「B」を、量子化精度導出部31から取得する。符号量導出部32は、量子化精度ベクトルにおける「N」個の要素「Bn」の総和である量子化符号量「R=ΣBn」[bit]を導出する(ステップS110)。
【0041】
符号量誤差導出部33は、符号化符号量「Renc」を取得する。符号量誤差導出部33は、量子化符号量「R=ΣBn」を、量子化精度導出部31から取得する。符号量誤差導出部33は、符号化符号量「Renc」に対する量子化符号量「R=ΣBn」の誤差である符号量誤差「Lrate=d(Renc,R)」を導出する(ステップS111)。
【0042】
最適化部34は、再構成誤差「Lrec」と符号量誤差「Lrate」とに基づいて、目的関数「L=Lrec+λLrate」を導出する。重み「λ」は、任意の値である(ステップS112)。
【0043】
最適化部34は、目的関数「L」に対して最適化処理を実行する。すなわち、最適化部34は、目的関数「L」の最小化問題を、例えば勾配法を実行することによって解く(ステップS113)。
【0044】
最適化部34は、最小化された目的関数「L」に対して例えば誤差逆伝播法を実行することによって、符号化部20の符号化ニューラルネットワークのパラメータと、復号部25の復号ニューラルネットワークのパラメータと、量子化精度導出部31の量子化ニューラルネットワークのパラメータとのうちの少なくとも一つを更新する。
【0045】
最適化部34は、符号化ニューラルネットワークの更新後のパラメータを、符号化部20に出力する。最適化部34は、量子化ニューラルネットワークの更新後のパラメータを、量子化精度導出部31に出力する。最適化部34は、復号ニューラルネットワークの更新後のパラメータを、復号部25に出力する(ステップS114)。
【0046】
最適化部34は、所定条件に基づいて、
図2に示された処理を終了するか否かを判定する。例えば、最適化部34は、
図2に示された処理を所定回数以上実行するという所定条件が成立した場合、処理を終了する。例えば、最適化部34は、目的関数「L」の値が所定値以下になったという所定条件が成立した場合、処理を終了する(ステップS115)。
【0047】
処理を継続すると判定された場合(ステップS115:NO)、最適化部34は、ステップS101に処理を戻す。処理を終了すると判定された場合(ステップS115:YES)、最適化部34は、
図2に示された処理を終了する。
【0048】
以上のように、符号化部20は、入力データを符号化特徴ベクトルに変換する。量子化精度導出部31は、符号化特徴ベクトルの要素である符号化特徴ごとの量子化精度を、符号化符号量に応じて導出する。量子化部21は、符号化特徴ベクトルに対して量子化処理を量子化精度に基づいて実行することによって、符号化符号量を目標とする量子化符号量のサイズの量子化符号化特徴ベクトルを生成する。二値化部22は、量子化符号化特徴ベクトルに対して二値化処理を実行することによって、符号化データを生成する。復号部25は、符号化データに応じた所定データに対して復号処理を実行する。
【0049】
抽出整形部23aは、復号符号量のサイズの二値化データを、符号化データから抽出する。抽出整形部23aは、抽出された二値化データの形式を量子化精度に基づいて整形することによって、整形復号用データを生成する。逆二値化部24は、整形復号用データに対して逆二値化処理を実行することによって、逆二値化復号用データを生成する。復号部25は、逆二値化復号用データ(所定データ)に対して復号処理を復号符号量に基づいて実行することによって、逆二値化復号用データを復号データに変換する。
【0050】
最適化部34は、入力データを符号化特徴ベクトルに変換する符号化処理に用いられるパラメータと、復号処理に用いられるパラメータと、量子化精度の導出に用いられるパラメータとのうちの少なくとも一つを、目的関数に基づいて更新する。
【0051】
このように、符号化特徴の個数「N」と量子化精度「Bn」とがそれぞれ固定されておらず、符号化符号量(圧縮率)に応じて、量子化精度「Bn」が導出される。量子化精度「Bn」に応じて符号化特徴の個数「N」が定まるので、符号化符号量に応じた最適な表現(符号化特徴の個数と量子化精度との組み合わせ)で、入力データが符号化される。これによって、入力データを符号化データから復元する精度を向上させることが可能である。
【0052】
図3は、圧縮率(符号量)とピーク信号対雑音比との関係例を示す図である。
図3は、一例として地震波データに関する圧縮率とピーク信号対雑音比との関係例を示す。横軸は、圧縮率(compression rate)を示す。縦軸は、ピーク信号対雑音比(Peak Signal-to-Noise Ratio : PSNR)[dB]を示す。
【0053】
図3に示された「1bit」と「2bit」と「3bit」と「4bit」と「8bit」は、各固定の量子化精度を示す。「1bit」と「2bit」と「3bit」と「4bit」と「8bit」との各グラフは、従来のオートエンコーダに関する各グラフである。従来のオートエンコーダの各グラフでは、全ての符号化特徴について、符号化特徴に対応付けられた量子化精度は、一律にX[bit]である。従来のオートエンコーダに関する各グラフでは、符号化特徴の個数ごとに、点がプロットされている。
【0054】
これに対して、
図3に示された「AdaptiveBits」は、適応的に変更された量子化精度(符号化符号量に応じた量子化精度)を示す。「AdaptiveBits」のグラフは、符号化復号装置1aに関するグラフである。符号化復号装置1aに関するグラフでは、符号化符号量ごとに、点がプロットされている。このように、符号化復号装置1aでは、入力データを符号化データから復元する精度(ピーク信号対雑音比)を向上させることが可能である。
【0055】
次に、二値化部22及び抽出整形部23aの詳細を説明する。
図4は、レート制御の例を示す図である。
図4では、量子化符号化特徴ベクトル210は、一例として、要素211-1から要素211-5までの各量子化符号化特徴を含む。
【0056】
二値化部22は、量子化符号化特徴ベクトル210を、量子化部21から取得する。二値化部22は、量子化符号化特徴ベクトル210に対して二値化処理を実行することによって、二値化データを含む符号化データ220を生成する。
【0057】
二値化部22は、量子化精度ベクトル310を、量子化精度導出部31から取得する。
図4では、量子化精度ベクトル310は、一例として、「[2,1,4,3,0]」である。二値化部22は、各要素211の二値化データを含む符号化データ220を、二値化部22から取得する。
【0058】
要素211-1の二値化データ「…0010」に対応付けられた量子化精度は、量子化精度ベクトル310における「2」である。要素211-2の二値化データ「…0000」に対応付けられた量子化精度は、量子化精度ベクトル310における「1」である。要素211-3の二値化データ「…0101」に対応付けられた量子化精度は、量子化精度ベクトル310における「4」である。要素211-4の二値化データ「…0111」に対応付けられた量子化精度は、量子化精度ベクトル310における「3」である。要素211-5の二値化データ「…0000」に対応付けられた量子化精度は、量子化精度ベクトル310における「0」である。
【0059】
二値化部22は、量子化精度の範囲外(
図4において破線で表された矩形枠外)の二値化データを、符号化データ220から削除する。これによって、二値化部22は、量子化精度ベクトル310を用いて指定された量子化符号量のサイズの符号化データ220を生成する。
【0060】
ここで、二値化部22は、全ての要素211の二値化データに対してスキャンを実行する。二値化部22は、二値化データの上位ビットから下位ビットへの順で、全ての要素211の二値化データに対してスキャンを実行する。また、二値化部22は、例えば、要素211-1から要素211-5への順で、全ての要素211の二値化データに対してスキャンを実行する。
図4における符号化データ220内に示された一点鎖線の各矢印は、このようなスキャンの順序を表す。
【0061】
要素211-1から要素211-5への順のスキャンによって、二値化部22は、各量子化精度の範囲内で最も上位ビットの「0」を、二値化データから取得する。二値化部22は、各量子化精度の範囲内で下位側の上位ビットの「1」及び「1」を、二値化データから取得する。二値化部22は、各量子化精度の範囲内で更に下位側の上位ビットの「1」、「0」及び「1」を、二値化データから取得する。二値化部22は、各量子化精度の範囲内で最も下位ビットの「0」、「0」、「1」及び「1」を、二値化データから取得する。
【0062】
図4では、要素211-5の二値化データ「…0000」に対応付けられた量子化精度が「0」である。したがって、要素211-5の二値化データは、量子化精度の範囲外である。このためスキャンにおいて、二値化部22は、要素211-5の二値化データ「…0000」を取得しない。このようにして、二値化部22は、量子化精度が「0」である要素211-5の二値化データ「…0000」を、符号化データ220から削除する。
【0063】
二値化部22は、取得された各二値化データ(「0」、「11」、「101」、「0011」)を、二値化データの取得順に結合することによって、レート制御された符号化データ220を生成する。
図4では、レート制御された符号化データ220は、「0111010011」となる。
【0064】
符号化特徴の二値化データのうちで、量子化精度の範囲外の二値化データが、レート制御として、符号化データから削除される。
図4では、破線で表された各矩形枠内の二値化データのみが、符号化データ220として、抽出整形部23aに送信される。
【0065】
抽出整形部23aは、符号化データ220を、二値化部22から取得する。抽出整形部23aは、量子化精度ベクトル310を、量子化精度導出部31から取得する。抽出整形部23aは、復号符号量のサイズの二値化データを、符号化データ220から抽出する。
【0066】
抽出整形部23aは、レート制御された符号化データ220から抽出された二値化データに対して整形処理を実行する。ここで、抽出整形部23aは、抽出された二値化データの形式を、量子化符号化特徴ベクトルの形式に整形することによって、整形された形式の復号用データ(整形復号用データ)を生成する。
【0067】
抽出整形部23aは、レート制御された符号化データ220から削除された二値化データの位置を、量子化精度ベクトル310を用いて特定する。抽出整形部23aは、レート制御された符号化データ220から削除された二値化データを、整形された形式の復号用データにおいて所定値(例えば、0)で補完する。
【0068】
以上のように、二値化部22は、量子化精度ベクトル310に基づいて、量子化精度の範囲外の二値化データを、符号化データ220から削除する。抽出整形部23aは、符号化データ220から削除された二値化データのビット位置を、量子化精度に基づいて特定する。抽出整形部23aは、符号化データ220から削除された二値化データの位置を、整形復号用データにおいて所定値(例えば、0)で補完する。
【0069】
このように、入力データを符号化データから復元する精度を向上させることが可能である。符号化復号装置1bが符号化符号量(圧縮率)ごとに用意されなくても、レート制御を符号化復号装置1bが実行することが可能である。
【0070】
(第2実施形態)
第2実施形態では、スケーラブル復号を符号化復号装置が実行する点が、第1実施形態との差分である。スケーラブル復号とは、符号化符号量以下の任意の符号量の復号データ(入力データの再構成データ)を符号化データから復号することである。第2実施形態では、第1実施形態との差分を中心に説明する。
【0071】
図5は、符号化復号装置1bの構成例を示す図である。符号化復号装置1bは、入力データに対して符号化処理(データ圧縮処理)を実行し、符号化データに対して復号処理を実行するシステムである。復号処理において、符号化復号装置1bは、符号化データから抽出された復号用データに対してスケーラブル復号を実行する。
【0072】
符号化復号装置1bは、オートエンコーダ2と、学習装置3とを備える。オートエンコーダ2は、符号化部20と、量子化部21と、二値化部22と、抽出整形部23bと、逆二値化部24と、復号部25とを備える。学習装置3は、再構成誤差導出部30と、量子化精度導出部31と、符号量導出部32と、符号量誤差導出部33と、最適化部34とを備える。
【0073】
図6は、スケーラブル復号の例を示す図である。抽出整形部23bは、量子化精度ベクトル310を、量子化精度導出部31から取得する。
図6では、量子化精度ベクトル310は、一例として、「[2,1,4,3,0]」である。すなわち、この例では、量子化符号量「R」=10bitである。
【0074】
抽出整形部23bは、復号符号量「Rdec」を、例えば情報処理装置(不図示)から取得する。第2実施形態では、復号符号量「Rdec」は、量子化符号量「R」以下である。抽出整形部23bは、符号化データ220を、二値化部22から取得する。抽出整形部23bは、量子化精度ベクトル310を用いて指定された復号符号量のサイズの二値化データを、符号化データ220から抽出する。
【0075】
抽出整形部23bは、符号化データ220から抽出された二値化データに対して整形処理を実行する。ここで、抽出整形部23bは、抽出された二値化データの形式を、量子化符号化特徴ベクトルの形式に整形することによって、整形された形式の復号用データ230を生成する。
【0076】
図6では、逆二値化復号用データ240は、一例として、要素241-1から要素241-5までの各逆二値化データを含む。
【0077】
要素241-1の二値化データ「…0010」に対応付けられた量子化精度は、量子化精度ベクトル310における「2」である。要素241-2の二値化データ「…0000」に対応付けられた量子化精度は、量子化精度ベクトル310における「1」である。要素241-3の二値化データ「…0101」(スケーラブル復号では、「…0100」)に対応付けられた量子化精度は、量子化精度ベクトル310における「4」である。要素241-4の二値化データ「…0111」(スケーラブル復号では、「…0110」)に対応付けられた量子化精度は、量子化精度ベクトル310における「3」である。要素241-5の二値化データ「…0000」に対応付けられた量子化精度は、量子化精度ベクトル310における「0」である。
【0078】
抽出整形部23bは、量子化精度の範囲外(
図6において破線で表された矩形枠外)の二値化データを、整形された形式の復号用データ230から削除する。これによって、抽出整形部23bは、量子化精度ベクトル310を用いて指定された復号符号量のサイズの復号用データ230を生成する。
【0079】
ここで、抽出整形部23bは、全ての要素241の二値化データに対してスキャンを実行する。抽出整形部23bは、二値化データの上位ビットから下位ビットへの順で、全ての要素241の二値化データに対してスキャンを実行する。また、抽出整形部23bは、例えば、要素241-1から要素241-5への順で、全ての要素241の二値化データに対してスキャンを実行する。
図6における復号用データ230内に示された一点鎖線の各矢印は、このようなスキャンの順序を表す。抽出整形部23bは、復号符号量「R
dec」のサイズ分の要素を取得する。抽出整形部23bは、取得されない残りの要素を、所定値(例えば0)とする。
【0080】
第2実施形態では、復号符号量「R
dec」は、一例として8bitである。要素241-1から要素241-5への順のスキャンによって、抽出整形部23bは、各量子化精度の範囲内で最も上位ビットの「0」を、二値化データから取得する。抽出整形部23bは、各量子化精度の範囲内で下位側の上位ビットの「1」及び「1」を、二値化データから取得する。抽出整形部23bは、各量子化精度の範囲内で更に下位側の上位ビットの「1」、「0」及び「1」を、二値化データから取得する。抽出整形部23bは、各量子化精度の範囲内で最も下位ビットの「0」及び「0」を、二値化データから取得する。この時点で、復号符号量「R
dec」の8ビット分の二値化データが抽出されている。このため、抽出整形部23bは、量子化精度の範囲内における残りの二値化データを、取得せずに、所定値(例えば0)とする。
図6では、抽出整形部23bは、量子化精度の範囲内における残りの二値化データの各値「1」を、
図6において実線の矩形で各値が囲まれているように各値「0」とする。
【0081】
図6では、要素241-5の二値化データ「…0000」に対応付けられた量子化精度が「0」である。したがって、要素241-5の二値化データは、量子化精度の範囲外である。このためスキャンにおいて、抽出整形部23bは、要素241-5の二値化データ「…0000」を取得しない。このようにして、抽出整形部23bは、量子化精度が「0」である要素241-5の二値化データ「…0000」を、復号用データ230から削除する。
【0082】
抽出整形部23bは、取得された各二値化データ(「0」、「11」、「101」、「0000」)を、二値化データの取得順に結合することによって、量子化精度ベクトル310を用いて指定された復号符号量のサイズの復号用データ230を生成する。
図6では、復号符号量のサイズの復号用データ230は、「0111010000」となる。このようにして、
図6において破線で表された各矩形枠内の二値化データのみが、復号符号量のサイズの復号用データ230として、逆二値化部24に送信される。
【0083】
逆二値化部24は、復号符号量のサイズの復号用データ230を、抽出整形部23bから取得する。逆二値化部24は、復号符号量のサイズの復号用データ230に対して、逆二値化処理を実行することによって、逆二値化復号用データ240を生成する。
【0084】
以上のように、抽出整形部23bは、量子化精度の範囲内の二値化データを、抽出された二値化データから取得する。抽出整形部23bは、量子化精度の範囲内の二値化データの形式を整形することによって、整形された形式の復号用データ230(整形復号用データ)を生成する。ここで、抽出整形部23bは、復号符号量のサイズの二値化データを、量子化精度の範囲内の二値化データから抽出することによって、整形された形式の復号用データ230を生成する。
【0085】
これによって、入力データを符号化データから復元する精度を向上させることが可能である。符号化復号装置1bが符号化符号量(圧縮率)ごとに用意されなくても、スケーラブル復号を符号化復号装置1bが実行することが可能である。
【0086】
(ハードウェア構成例)
図7は、各実施形態における、符号化復号装置1(符号化装置)(復号装置)(データ圧縮装置)のハードウェア構成例を示す図である。符号化復号装置1は、上記の符号化復号装置1aと、上記の符号化復号装置1bとのそれぞれに対応する。符号化復号装置1の各機能部のうちの一部又は全部は、CPU(Central Processing Unit)等のプロセッサ100が、不揮発性の記録媒体(非一時的な記録媒体)を有する記憶装置101とメモリ102とに記憶されたプログラムを実行することにより、ソフトウェアとして実現される。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置などの非一時的な記録媒体である。
【0087】
符号化復号装置1の各機能部の一部又は全部は、例えば、LSI(Large Scale Integrated circuit)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)又はFPGA(Field Programmable Gate Array)等を用いた電子回路(electronic circuit又はcircuitry)を含むハードウェアを用いて実現されてもよい。
【0088】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0089】
本発明は、所定のデータ処理を実行する装置に適用可能である。
【符号の説明】
【0090】
1a,1b…符号化復号装置、10…符号化復号装置、11…符号化部、12…量子化部、13…二値化部、14…復号部、20…符号化部、21…量子化部、22…二値化部、23a,23b…抽出整形部、24…逆二値化部、25…復号部、30…再構成誤差導出部、31…量子化精度導出部、32…符号量導出部、33…符号量誤差導出部、34…最適化部、100…プロセッサ、101…記憶装置、102…メモリ、210…量子化符号化特徴ベクトル、211…要素、220…符号化データ、230…復号用データ、240…逆二値化復号用データ、241…要素、310…量子化精度ベクトル