JP7233875B2 - 作成方法、コンピュータ及びプログラム - Google Patents

作成方法、コンピュータ及びプログラム Download PDF

Info

Publication number
JP7233875B2
JP7233875B2 JP2018181024A JP2018181024A JP7233875B2 JP 7233875 B2 JP7233875 B2 JP 7233875B2 JP 2018181024 A JP2018181024 A JP 2018181024A JP 2018181024 A JP2018181024 A JP 2018181024A JP 7233875 B2 JP7233875 B2 JP 7233875B2
Authority
JP
Japan
Prior art keywords
data
quantized
quantization
parameters
creating
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
JP2018181024A
Other languages
English (en)
Other versions
JP2020053820A (ja
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.)
Preferred Networks Inc
Original Assignee
Preferred Networks Inc
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 Preferred Networks Inc filed Critical Preferred Networks Inc
Priority to JP2018181024A priority Critical patent/JP7233875B2/ja
Publication of JP2020053820A publication Critical patent/JP2020053820A/ja
Application granted granted Critical
Publication of JP7233875B2 publication Critical patent/JP7233875B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は、成方法、コンピュータ及びプログラムに関する。
データ圧縮とは、データをどれだけ短い符号長(つまり、ファイルサイズ)で保存できるかというタスクである。データ圧縮器は、元データを符号化して圧縮データに変換する符号化器と、圧縮データを復号して再構成データに変換する復号化器とからなる。可逆データ圧縮では再構成データが元データに完全に一致している必要がある一方、非可逆データ圧縮では再構成データに元のデータからの或る程度の歪み(distortion)を許容している。これにより、非可逆データ圧縮では、符号長の大幅な削減を可能にしている。ここで、歪みとは再構成データが元データからどれだけ劣化したかを表す量である。
多くの非可逆画像圧縮は、自己符号化器(autoencoder)の構造を拡張して、中間層の出力配列(出力配列は特徴マップ(feature map)とも称される。)の各要素を量子化・符号化することで画像の圧縮表現を生成する。State-of-the-artなDNN(Deep Neural Network)モデルを含む、これまでの多くの非可逆画像圧縮器では、この量子化を行うときに、量子化先の標本空間(sample-space)として圧縮器内部に予め用意されている標本空間を用いている。
国際公開第2012/109407号 特開2005-196040号公報
Full Resolution Image Compression with Recurrent Neural Networks, arXiv:1608.05148. End-to-end Optimized Image Compression, arXiv:1611.01704. Real-Time Adaptive Image Compression, arXiv:1705.05823.
上述したように、従来技術では、中間層の出力配列の各要素の量子化を行うときに量子化先の標本空間として予め用意されている(つまり、予め決められた)標本空間を用いているため、量子化先の標本空間が必ずしも最適化されておらず、効率的な圧縮器(及びこの圧縮器に対応する復元器)が得られない場合があった。ここで、効率的な圧縮器とは、圧縮対象のデータと、復元器によって復元されたデータとの歪みが小さく、かつ、量子化・符号化されたデータの符号長が小さい圧縮器のことである。
本発明の実施の形態は、上記の点に鑑みてなされたもので、効率的な圧縮器を作成することを目的とする。
上記目的を達成するため、本発明の実施の形態は、上述した量子化の部分に着目し、復号時に既に復号が完了した部分の情報を元にして符号化で用いる確率質量関数を適応的に変化させるのに加え、量子化で用いる標本空間まで適応的に変化させる(以降では、これを「ASAP(Adaptive Sample-space & Adaptive Probability) coding」と呼ぶこととする。)。そして、このASAP codingを以下のようにして実現する。
非可逆圧縮によりデータを圧縮する場合における量子化及び符号化器作成方法であって、前記データの量子化及び符号化において、デコード時に既にデコード済みの情報を用いて、量子化先の標本空間を所定の関数により決定する手順、をコンピュータが実行する。
また、ASAP coding内の関数をニューラルネットワークにしてそれらのパラメータを再構成データの歪みと保存する圧縮データの符号長とのトレードオフ(trade off)の観点から最適化することで作られた、圧縮対象となるデータ群の特徴を踏まえて効率的に非可逆圧縮する圧縮器として、NASAP(Neural-network-based ASAP) codingを提案する。そして、このNASAP codingを以下のようにして実現する。
非可逆圧縮によりデータを圧縮する場合における量子化及び符号化器作成方法であって、前記データの量子化及び符号化において、デコード時に既にデコード済みの情報を用いて、量子化先の標本空間を所定の関数により決定する手順、をコンピュータが実行し、前記所定の関数はニューラルネットワークであり、前記ニューラルネットワークの内部パラメータを、前記非可逆圧縮における圧縮性能が高くなるように最適化することで、前記量子化先の標本空間を決定する。
効率的な圧縮器を作成することができる。
本発明の実施の形態における変換器作成装置の機能構成の一例を示す図である。 本発明の実施の形態における量子化部の詳細な機能構成の一例を示す図である。 最適化時における量子化部による量子化の概略の一例を説明する図である。 最適化処理の一例を示すフローチャートである。 分割方法の一例を示す図である。 本発明の効果の一例を示す図である。 本発明の実施の形態における変換器作成装置のハードウェア構成の一例を示す図である。
まず、ASAP codingの具体例について説明する。
JPEG(Joint Photographic Experts Group)では量子化テーブルが用意されており、画像を8×8のサイズごとに区切る。そして、各区切られた部分の各色チャネル(channel)毎に、以下のような量子化・符号化の操作をする。まず、離散コサイン変換し、8×8の2次元配列を作る。そして、それを予め決められた量子化テーブルに示される量子化幅で量子化する。
上述したJPEGの量子化・符号化の部分をASAP codingに置き換えると次のようになる。ASAP codingでは予め量子化幅を決めることはなく、これをデコード(decode)時に既にデコード済の部分(以降、この部分を「コンテキスト」とも表す。)から適応的に決定する。量子化幅を適応的に決定するのは量子化に用いる標本空間を適応的に決定する方法の一つである。コンテキストから量子化幅を決定する関数はヒューリスティックに決めても良いし、機械学習を用いて決めても良い。
ここで、ASAP codingは次の点で有効である。例えば、量子化されていない配列を{z,・・・,z}として、この配列を量子化して可逆圧縮する場合、発生する量子化誤差と保存された符号長との間には一般にトレードオフが存在し、大きな量子化誤差を許容するほど符号長は小さくすることができる。n番目の要素zの量子化で許容できる量子化誤差の程度がコンテキスト(つまり、復号時に既に復号が完了したn-1番目までの量子化後の配列要素)に依存している場合、ASAP codingでは、コンテキストの情報を用いて、確率質量関数(PMF:probability mass function)だけでなく、標本空間まで適応的に決定する。このため、ASAP codingでは、共通の標本空間を用いる場合と比較して、同程度の歪みにおいて更に小さい符号長での保存が期待できる。
次に、NASAP codingについて説明する。
ASAP codingの量子化先の標本空間をコンテキストの情報を用いて適応的に決める部分の関数にニューラルネットワークを用い、その内部のパラメータを圧縮性能が向上するように(つまり、歪みが小さく、かつ、量子化・符号化されたデータの符号長が小さくなるように)最適化することによって作成する。以下、NASAP codingの具体例について説明する。
本発明の実施の形態では、非可逆的にデータを圧縮する圧縮器(及びこの圧縮器に対応する復元器)を作成する変換器作成装置10について説明する。ここで、圧縮器に対応する復元器とは、圧縮器によって圧縮されたデータを復元することが可能な復元器のことである。なお、圧縮器は非可逆的にデータを圧縮するため、圧縮対象のデータ(以降、「圧縮対象データ」とも表す。)と、復元されたデータ(以降、「復元データ」とも表す。)とは完全には一致しない。
以降では、一例として、圧縮対象データ及び復元データは、チャネル数をC、高さのサイズをH、幅のサイズをWとして、C×H×Wのサイズの3次元配列で表される画像データであるものとする。ただし、圧縮対象データ及び復元データは、画像データに限られない。圧縮対象データ及び復元データとして、任意の形式のデータ(例えば、テキストデータや音声データ等)が用いられても良い。
本発明の実施の形態における変換器作成装置10は、分析器(アナライザ)と、統合器(シンセサイザ)と、量子化器とを同時に最適化することで、効率的な圧縮器(及びこの圧縮器に対応する復元器)を作成する。ここで、効率的な圧縮器とは、上述したように、圧縮対象のデータと、復元されたデータとの歪みが小さく、かつ、量子化・符号化されたデータの符号長が小さい圧縮器のことである。なお、圧縮器及び復元器は、データの変換を行う変換器の一例である。
<変換器作成装置10の機能構成>
まず、本発明の実施の形態における変換器作成装置10の機能構成について、図1を参照しながら説明する。図1は、本発明の実施の形態における変換器作成装置10の機能構成の一例を示す図である。
図1に示すように、本発明の実施の形態における変換器作成装置10は、分析部101と、量子化部102と、統合部103と、最適化部104とを有する。
分析部101は、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)によって実現されるアナライザとして機能する。以降では、この畳み込みニューラルネットワークを「第1のCNN」とも表す。
分析部101は、圧縮対象データ(C×H×Wのサイズの3次元配列で表される画像データ)を入力して、この圧縮対象データを変換した中間データを出力する。以降では、この中間データを
Figure 0007233875000001
と表す。ここで、Cは第1のCNNの出力データのチャネル数、Hは第1のCNNの出力データの高さのサイズ、Wは第1のCNNの出力データの幅のサイズである。このように、中間データは、C×H×Wのサイズの3次元配列で表されるデータである。
量子化部102は、分析部101によって出力された中間データを入力して、この中間データを量子化する。そして、量子化部102は、量子化された中間データを出力する。なお、量子化部102の詳細な機能構成については後述する。
以降では、量子化された中間データ(以降、「量子化中間データ」とも表す。)を
Figure 0007233875000002
と表す。このように、量子化中間データは、C×H×Wのサイズの3次元配列で表されるデータである。
また、量子化部102は、量子化中間データを算術符号化によって保存するのに必要な情報量を計算する。この情報量は、後述するように、
Figure 0007233875000003
で表される。なお、この情報量は、量子化中間データの保存に必要なビット長又は符号長等と称されても良い。
統合部103は、畳み込みニューラルネットワークによって実現されるシンセサイザとして機能する。以降では、この畳み込みニューラルネットワークを「第2のCNN」とも表す。
統合部103は、量子化中間データを入力して、この量子化中間データを変換した復元データ(C×H×Wのサイズの3次元配列で表される画像データ)を出力する。
最適化部104は、分析部101と、量子化部102と、統合部103とを最適化する。すなわち、最適化部104は、圧縮対象データと復元データとの歪みができるだけ小さく、かつ、上記の数3で表される情報量Iができるだけ小さくなるように、分析部101と、量子化部102と、統合部103とのパラメータを最適化する。なお、最適化の対象となるパラメータは、第1のCNNのパラメータと、第2のCNNのパラメータと、後述する第3のCNNのパラメータと、後述する第1のパラメータ~第3のパラメータとである。
これらのパラメータを最適化することで、本発明の実施の形態における変換器作成装置10は、効率的な圧縮器と、この圧縮器に対応する復元器とを作成することができる。なお、圧縮器は、例えば、最適化後の分析部101及び量子化部102で構成される変換器とすれば良い。また、復元器は、例えば、量子化部102に含まれる算術符号化部116(後述する)の逆の処理を実行する機能部と最適化後の統合部103とで構成される変換器とすれば良い。
<量子化部102の詳細な機能構成>
次に、上記の量子化部102の詳細な機能構成について、図2を参照しながら説明する。図2は、本発明の実施の形態における量子化部102の詳細な機能構成の一例を示す図である。
図2に示すように、本発明の実施の形態における量子化部102には、分割部111と、CNN計算部112と、誤差計算部113と、量子化計算部114と、情報量計算部115と、算術符号化部116とが含まれる。
分割部111は、中間データを、予め決められたK個のグループに分割する。すなわち、分割部111は、中間データの各要素x(i=1,・・・,CHW)をK個のグループに分類する。以降では、k(k=1,・・・,K)番目のグループに属するi番目の要素を「x (k)」と表し、同一のkに対してx (k)を各要素とする配列で表されるデータ(このデータを「k番目の分割データ」とも表す。)を
Figure 0007233875000004
と表す。ここで、例えば分割データの全てが3次元配列で表すことができる場合、N(k)は、k番目のグループに属する要素数であり、N(k)=C(k)(k)(k)と表される。C(k)はk番目の分割データのチャネル数、H(k)はk番目の分割データの高さのサイズ、W(k)はk番目の分割データの幅のサイズである。
また、k番目の分割データが量子化されたデータ(以降、「k番目の量子化分割データ」とも表す。)を
Figure 0007233875000005
と表す。
CNN計算部112は、畳み込みニューラルネットワークによって実現され、k≧2の場合に、1番目の量子化分割データ~k-1番目の量子化分割データを入力して、k番目の予測値データと、k番目の指標値データと、k番目の量子化幅データとを計算する。以降では、この畳み込みニューラルネットワークを「第3のCNN」とも表す。
また、以降では、k番目の予測値データを
Figure 0007233875000006
と表す。μ (k)は、x (k)の予測値である。
また、k番目の指標値データを
Figure 0007233875000007
と表す。σ (k)は、予測値μ (k)が、真値x (k)に対してどの程度近いかを表す指標値である。
また、k番目の量子化幅データを
Figure 0007233875000008
と表す。q (k)は、量子化幅であり、
Figure 0007233875000009
を真値x (k)にどの程度近付けるべきかを表す値(言い換えれば、真値x (k)を量子化する際の量子化の細かさを決める値)である。
ただし、k=1の場合は、モデル内に(つまり、圧縮器自体に)予め保存されているパラメータを用いて、1番目の予測値データと、1番目の指標値データと、1番目の量子化幅データとが作成される。
誤差計算部113は、x (k)の量子化に用いられるk番目の誤差データを計算する。k番目の誤差データを
Figure 0007233875000010
と表す。後述するように、この誤差δ (k)と、量子化幅q (k)とにより、x (k)を量子化した際の量子化誤差が表される。
量子化計算部114は、誤差δ (k)と、量子化幅q (k)とを用いて、x (k)を量子化する。
情報量計算部115は、k番目の量子化分割データを算術符号化によって保存するのに必要な情報量(k番目の情報量)を計算する。k番目の情報量は、後述するように、
Figure 0007233875000011
で表される。このとき、情報量計算部115は、k番目の予測値データと、k番目の指標値データとによって定義されるk番目の累積分布関数群
Figure 0007233875000012
を用いて、上記のk番目の情報量を計算する。ここで、累積分布関数Cum (k)は、例えば、予測値μ (k)と評価値σ (k)とによって決定される(例えば、μ (k)を平均、σ (k)の二乗を分散とする正規分布に対する累積分布関数等)。
算術符号化部116は、量子化中間データ(すなわち、1番目の量子化分割データ~K番目の量子化分割データ)をそれぞれに対応する累積分布関数群と量子化幅データから計算される離散確率分布に従って算術符号化によって保存する。
<最適化時における量子化部102による量子化の概略>
次に、最適化時における量子化部102による量子化の概略について、図3を参照しながら説明する。図3は、最適化時における量子化部102による量子化の概略の一例を説明する図である。分割部111による中間データの分割数をKとした場合、最適化時における量子化部102による量子化は、k=1からk=Kまで順に実行される。図3では、k≧2として、k回目の量子化を実行する場合について説明する。
ここで、図3において、実線矢印は誤差(予測誤差)が誤差逆伝播法によって逆伝播される「backwardあり」を示し、破線矢印は誤差(予測誤差)が逆伝播されない「backwardなし」を示す。なお、上述したように、k=1回目の量子化では、1番目の予測値データと、1番目の指標値データと、1番目の量子化幅データとが予め保存されているパラメータを用いて作成される点がk≧2の場合と異なる。
図3に示すように、量子化部102による量子化では、1番目の量子化分割データ~k-1番目の量子化分割データをCNN計算部112に入力して、k番目の予測値データと、k番目の指標値データと、k番目の量子化幅データとを計算する。
次に、k番目の予測値データと、k番目の真値データ(すなわち、k番目の分割データ)とを誤差計算部113に入力して、k番目の誤差データを計算する。次に、k番目の誤差データと、k番目の量子化幅データと、k番目の真値データとを量子化計算部114に入力して、k番目の量子化分割データを計算する。なお、このk番目の量子化分割データは、k+1回目の量子化で、CNN計算部112に入力される。
次に、k番目の量子化幅データと、k番目の量子化分割データとを情報量計算部115に入力して、k番目の累積分布関数群によりk番目の情報量I(k)を計算する。これにより、各k=1,・・・,Kに対して、k番目の情報量I(k)が得られる。この情報量I(k)をk=1,・・・,Kに対して足し合わせたものが、上記の数3に示す情報量Iである。後述するように、圧縮対象データと復元データとの歪みができるだけ小さく、かつ、この情報量Iができるだけ小さくなるように、分析部101と、量子化部102と、統合部103とが最適化される。
<最適化処理>
次に、本発明の実施の形態における変換器作成装置10の最適化処理の詳細について、図4を参照しながら説明する。図4は、最適化処理の一例を示すフローチャートである。
ステップS101:分析部101は、圧縮対象データ(C×H×Wのサイズの3次元配列で表される画像データ)を入力して、この圧縮対象データを変換した中間データを出力する。なお、この分析部101を実現する第1のCNNのパラメータは、最適化部104による最適化の対象となるパラメータである。
ステップS102:量子化部102の分割部111は、中間データをK個のグループに分割する。ここで、H=16、W=16として、空間方向(すなわち、H×W平面を基準)に中間データをK=10のグループに分割する場合について、図5を参照しながら説明する。図5は、分割方法の一例を示す図である。
図5(a)に示すように、例えば、(H,W)=(1,1),(1,9),(9,1),(9,9)である各要素xをk=1のグループに分類する。この場合、N(1)=C(1)(1)(1)=C×2×2=4Cである。k=2~4についても同様である。
また、図5(b)に示すように、例えば、(H,W)=(1,3),(1,7),(1,11),(1,15),(5,3),(5,7),(5,11),(5,15),(9,3),(9,7),(9,11),(9,15),(13,3),(13,7),(13,11),(13,15),である各要素xをk=5のグループに分類する。この場合、N(5)=C(5)(5)(5)=C×4×4=16Cである。k=6~7についても同様である。なお、図5(b)中のx (k)(k=1,2,3,4)は、このx (k)が、図5(a)によって、k=1~4のいずれかのグループに分類されたことを表す。
また、図5(c)に示すように、例えば、(H,W)=(1,2),(1,4),(1,6),(1,8),(1,10),(1,12),(1,14),(1,16),(3,2),(3,4),(3,6),(3,8),(3,10),(3,12),(3,14),(3,16),・・・,(15,2),(15,4),(15,6),(15,8),(15,10),(15,12),(15,14),(15,16)である各要素xをk=8のグループに分類する。この場合、N(8)=C(8)(8)(8)=C×8×8=64Cである。k=9~10についても同様である。なお、図5(c)中のx (k)(k=1,2,・・・,7)は、このx (k)が、図5(a)及び図5(b)によって、k=1~7のいずれかのグループに分類されたことを表す。
これにより、中間データがK=10個のグループに分割される。図5では、説明の便宜上、中間データをk=1から順に分割させたが、必ずしも順に分割させる必要はない。分割部111は、中間データをk=1,・・・,Kのグループに同時に分割させることができる。
なお、図5に示した分割方法は一例であって、分割部111は、この分割方法以外の種々の分割方法を用いて、中間データを分割しても良い。
以降のステップS103~ステップS106は、k=1からk=Kまで順に繰り返し実行される。
ステップS103:量子化部102は、k番目の予測値データと、k番目の指標値データと、k番目の量子化幅データとを得る。
ここで、k=1の場合、量子化部102は、予め保存されているパラメータを用いて、1番目の予測値データと、1番目の指標値データと、1番目の量子化幅データとを作成することで、これらのデータを得る。
具体的には、予め保存されている第1のパラメータ
Figure 0007233875000013
を空間方向にコピー(すなわち、H(1)×W(1)個の第1のパラメータを作成)することで、1番目の予測値データ
Figure 0007233875000014
を作成する。これにより、1番目の予測値データが得られる。
同様に、予め保存されている第2のパラメータ
Figure 0007233875000015
を空間方向にコピーすることで、1番目の指標値データ
Figure 0007233875000016
を作成する。これにより、1番目の指標値データが得られる。
同様に、予め保存されている第3のパラメータ
Figure 0007233875000017
を空間方向にコピーすることで、1番目の量子化幅データ
Figure 0007233875000018
を作成する。これにより、1番目の量子化幅データが得られる。
このように、k=1の場合、第1のパラメータ~第3のパラメータを用いて、1番目の予測値データと、1番目の指標値データと、1番目の量子化幅データとを得る。これらの第1のパラメータ~第3のパラメータは、上記の通り、チャネル毎に1つの値を持っている。なお、これらの第1のパラメータ~第3のパラメータは、最適化部104による最適化の対象となるパラメータである。
一方で、k≧2である場合、量子化部102は、CNN計算部112により、k番目の予測値データと、k番目の指標値データと、k番目の量子化幅データとを計算することで、これらのデータを得る。
具体的には、CNN計算部112は、1番目の量子化分割データ~k-1番目の量子化分割データを入力して、k番目の予測値データと、k番目の指標値データと、k番目の量子化幅データとを計算する。これにより、k番目の予測値データと、k番目の指標値データと、k番目の量子化幅データとが得られる。なお、CNN計算部112を実現する第3のCNNのパラメータは、最適化部104による最適化の対象となるパラメータである。
ステップS104:次に、量子化部102の誤差計算部113は、k番目の予測値データと、k番目の量子化幅データと、k番目の分割データとを用いて、k番目の誤差データを計算する。
具体的には、まず、誤差計算部113は、各i=1,・・・,N(k)に対して、
Figure 0007233875000019
となるように
Figure 0007233875000020
を作成する。
次に、誤差計算部113は、各i=1,・・・,N(k)に対して、
Figure 0007233875000021
となるように
Figure 0007233875000022
を作成する。これにより、k番目の誤差データが計算される。
ステップS105:次に、量子化部102の量子化計算部114は、k番目の分割データと、k番目の誤差データと、k番目の量子化幅データとを用いて、k番目の量子化分割データを計算する。
具体的には、量子化部102は、各i=1,・・・,N(k)に対して、
Figure 0007233875000023
とする。これにより、k番目の量子化分割データが計算される。このとき、δ (k)とq (k)との積が量子化誤差を表す。
ここで、上記の数23に示す式は、
Figure 0007233875000024
と変形することができる。すなわち、
Figure 0007233875000025
は、予測値μ (k)と真値x (k)との差ξ (k) (k)を、量子化幅q (k)で量子化したものと言うことができる。また、上記の数24により、
Figure 0007233875000026
は、x (k)に対して、区間[-0.5q (k),0.5q (k))の量子化誤差が入ったものと捉えることもできる。これにより、最適化部104による最適化では、量子化誤差を小さくするように(すなわち、量子化幅q (k)を小さくするように)パラメータを最適化する力が働く。
ステップS106:次に、量子化部102の情報量計算部115は、k番目の量子化分割データを算術符号化によって保存するのに必要なk番目の情報量I(k)を計算する。
具体的には、まず、情報量計算部115は、累積分布関数Cum (k)
Figure 0007233875000027
で定義された関数とする。なお、累積分布関数は、一般に、確率密度関数を区間[-∞,x]で積分した関数として定義される。したがって、上記の累積分布関数Cum (k)は、所定の確率密度関数(例えば、μ (k)を平均、σ (k)の二乗を分散とする正規分布に対する確率密度関数等)を上記の数27に示す区間で積分した関数を意味する。
ここで、
Figure 0007233875000028
は、x (k)=-1として、上記のステップS104及びステップS105と同様の方法で、x (k)=-1を量子化したものである。
また、
Figure 0007233875000029
は、x (k)=1として、上記のステップS104及びステップS105と同様の方法で、x (k)=1を量子化したものである。
なお、累積分布関数Cum (k)は、上述したように、予測値μ (k)と評価値σ (k)とによって決定される。ただし、予測値μ (k)のみによって決定されても良い。
このとき、累積分布関数Cum (k)は増加関数であり、
Figure 0007233875000030
を満たす。
次に、情報量計算部115は、算術符号化の1つであるレンジ符号化に必要な上端(upperbound)と下端(lowerbound)とを
Figure 0007233875000031
と設定する。
このとき、
Figure 0007233875000032
の出現予測確率は、
Figure 0007233875000033
で表される。これにより、最適化部104による最適化では、算術符号化による保存に必要な情報量を小さくするように(すなわち、量子化幅q (k)を大きくするように)パラメータを最適化する力が働く。
したがって、情報量計算部115は、k番目の情報量I(k)
Figure 0007233875000034
により計算することができる。
以上のステップS103~ステップS106がk=1からk=Kまで順に繰り返し実行されることで、各k番目の量子化分割データと、各情報量I(k)とが得られる。すなわち、量子化中間データと、この量子化中間データの保存に必要な情報量I=I(1)+・・・+I(K)とが得られる。これにより、算術符号化部116は、算術符号化によって量子化中間データを情報量I(より正確には、情報量Iに近い情報量)で保存することができる。ただし、最適化時には、量子化中間データは必ずしも保存されなくても良い。
ステップS107:次に、統合部103は、量子化中間データを入力して、この量子化中間データを変換した復元データ(C×H×Wのサイズの3次元配列で表される画像データ)を出力する。なお、この統合部103を実現する第2のCNNのパラメータは、最適化部104による最適化の対象となるパラメータである。
ステップS108:最後に、最適化部104は、所定のloss関数の値が最小となるように、第1のCNNのパラメータと、第2のCNNのパラメータと、第3のCNNのパラメータと、第1のパラメータ~第3のパラメータとを最適化する。ここで、loss関数としては、符号長が小さいほど小さい値をとり、かつ、統合部103が出力した復元データと元のデータ(つまり、圧縮対象データ)との歪みが小さいほど小さい値をとる任意の関数を用いることができる。例えば、loss関数として、以下の関数を用いることができる。
Figure 0007233875000035
ここで、α、β及びγは予め決められた定数(ただし、0以外の定数とする。)である。α、β及びγとしては、例えば、α=β=γ=1とすれば良い。
また、bit_lengthは、情報量計算部115により計算された情報量Iである。MSSSIM(multi-scale structural similarity)は、圧縮対象データと、復元データとのMSSSIM値である。MSE(mean squared error)は、圧縮対象データと復元データとで互いに対応する画素値(すなわち、互いに同じ位置にある画素の値(つまり、同じ高さ、幅、チャネルの画素の値))の平均二乗誤差である。なお、上記の数35に示すloss関数の勾配値は、誤差逆伝播法によって逆伝播された誤差(予測誤差)から計算することができる。ただし、量子化の演算は微分不可能な演算であるため、このloss関数の勾配値は、量子化があることを無視して(つまり、x^の代わりにxを使用して)、近似的な計算により算出される。
これにより、第1のCNNのパラメータと、第2のCNNのパラメータと、第3のCNNのパラメータと、第1のパラメータ~第3のパラメータとが最適化される。このとき、上述したように、量子化誤差を小さくするように(すなわち、量子化幅q (k)を小さくするように)パラメータを最適化する力と、算術符号化による保存に必要な情報量を小さくするように(すなわち、量子化幅q (k)を大きくするように)パラメータを最適化する力とが働く。このように、パラメータの最適化時には、トレードオフの関係にある2つの力が働く。このトレードオフによって、適切な量子化幅q (k)を学習することができる。つまり、量子化誤差を小さくすると共に、保存に必要な情報量を小さくするように最適化されることで、適切な量子化幅q (k)が学習され、量子化幅データも最適化される。
なお、loss関数として、上記の数35に示すloss関数を用いることで、ニューラルネットワークの構造の最適化に要する手間を削減することができると共に、使用時のメモリを削減することができるようになる。通常の歪みあり符号化の場合、或る符号長の制約をおくと、その符号長の制約に特化したloss関数が定義され(つまり、異なる符号長の制約毎に異なるloss関数が作成され)、それぞれのloss関数毎に最適なニューラルネットワークの構造(例えば、層の数やチャネル数、ユニット数等)が異なる。このため、通常の歪みあり符号化では、loss関数毎にニューラルネットワークの最適化を行う必要がある。これに対して、本発明の実施の形態では、上記の数35に示すloss関数を用いて、このloss関数が最小になるようにニューラルネットワークの構造を最適化することで、幅広い範囲の符号長の制約の下で高い性能(つまり、歪みが小さく、かつ、量子化・符号化されたデータの符号長が小さい)を達成することができる。また、この場合、学習後のニューラルネットワークを利用して符号化、復号化する際も符号長の制約毎に異なるニューラルネットワークを読み込む必要が無くなり、使用時に必要なメモリを削減することができる。
以上により、本発明の実施の形態における変換器作成装置10は、効率的な圧縮器と、この圧縮器に対応する復元器とを作成することができる。なお、上記のステップS108の最適化は、例えば、上記のステップS101~ステップS107を異なる複数のサンプル(圧縮対象データ)を用いて繰り返し実行した後に実行されても良い。
<本発明の効果>
本発明の効果について、図6を参照しながら説明する。図6は、本発明の効果の一例を示す図である。図6は、縦軸を1-MSSSIM、横軸をbpp(bits per pixel)とした場合における本発明の手法で得られた圧縮器と、従来手法で得られた圧縮器との比較結果である。1-MSSSIMはその値が低い程、歪みが小さいことを表し、bppはその値が低い程、圧縮率が高いことを表す。なお、bppは、情報量IをH×Wで除算することで得られる。
図6に示すように、本発明の手法で得られた圧縮器では、従来手法で得られた圧縮器と比較して、歪みが小さく、かつ、高い圧縮率が得られていることがわかる。なお、図6において、本発明の手法を示すグラフ中の数字は、第1のCNN及び第2のCNNのチャネル数である。
なお、図6の従来手法のうち、「Neural Multi-scale」は、「Neural Multi-scale Image Compression」のことである。また、「Johonston et al.」は、以下の参考文献1に記載されている手法のことである。
[参考文献1]
Nick Johnston, Damien Vincent, David Minnen, Michele Covell, Saurabh Singh, Troy Chinen, Sung Jin Hwang, Joel Shor, and George Toderici. Improved lossy image compression with priming and spatially adaptive bit rates for recurrent networks. arXiv preprint arXiv:1703.10114, 2017.
<変換器作成装置10のハードウェア構成>
最後に、本発明の実施の形態における変換器作成装置10のハードウェア構成について、図7を参照しながら説明する。図7は、本発明の実施の形態における変換器作成装置10のハードウェア構成の一例を示す図である。
図7に示すように、本発明の実施の形態における変換器作成装置10は、入力装置201と、表示装置202と、外部I/F203と、通信I/F204と、RAM(Random Access Memory)205と、ROM(Read Only Memory)206と、プロセッサ207と、補助記憶装置208とを有する。これら各ハードウェアは、バス209により通信可能に接続されている。
入力装置201は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置202は、例えばディスプレイ等であり、変換器作成装置10の各種処理結果を表示する。
外部I/F203は、外部装置とのインタフェースである。外部装置には、記録媒体203a等がある。変換器作成装置10は、外部I/F203を介して、記録媒体203a等の読み取りや書き込み等を行うことができる。記録媒体203aには、変換器作成装置10が有する各機能部(すなわち、分析部101、量子化部102、統合部103及び最適化部104)を実現する1以上のプログラム等が記録されていても良い。
記録媒体203aには、例えば、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等がある。
通信I/F204は、変換器作成装置10を通信ネットワークに接続するためのインタフェースである。変換器作成装置10が有する各機能部を実現する1以上のプログラムは、通信I/F204を介して、所定のサーバ装置等から取得(ダウンロード)されても良い。
RAM205は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM206は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM206には、例えば、OS(Operating System)に関する設定や通信ネットワークに関する設定等が格納されている。
プロセッサ207は、例えばCPU(Central Processing Unit)やGPU(Graphics Processing Unit)等であり、ROM206や補助記憶装置208等からプログラムやデータをRAM205上に読み出して処理を実行する演算装置である。変換器作成装置10が有する各機能部は、例えば補助記憶装置208に格納されている1以上のプログラムがプロセッサ207に実行させる処理により実現される。なお、変換器作成装置10は、プロセッサ207として、CPUとGPUとの両方を有していても良いし、CPU又はGPUのいずれか一方のみを有していても良い。また、変換器作成装置10は、例えば、FPGA(field-programmable gate array)等の専用の半導体チップを有していても良い。
補助記憶装置208は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置208には、例えば、OS、各種アプリケーションソフトウェア、変換器作成装置10が有する各機能部を実現する1以上のプログラム等が格納されている。
本発明の実施の形態における変換器作成装置10は、図7に示すハードウェア構成を有することにより、上述した各種処理を実現することができる。なお、図7に示すハードウェア構成は一例であって、他の構成であっても良い。例えば、変換器作成装置10は、入力装置201及び表示装置202のうちの少なくとも一方を有していなくても良い。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
10 変換器作成装置
101 分析部
102 量子化部
103 統合部
104 最適化部
111 分割部
112 CNN計算部
113 誤差計算部
114 量子化計算部
115 情報量計算部
116 算術符号化部

Claims (14)

  1. 非可逆圧縮によりデータを圧縮する圧縮器における量子化及び符号化器の作成方法であって、
    前記データの量子化及び符号化において、既に量子化された別のデータを用いて、前記データの量子化先の標本空間、および、量子化された前記データが従う確率分布を、所定の関数により決定する手順、
    をコンピュータが実行する作成方法。
  2. 前記標本空間を用いて量子化された前記データを、前記確率分布に従って算術符号化する手順を前記コンピュータがさらに実行する請求項1に記載の作成方法。
  3. 前記確率分布を用いて、前記量子化された前記データを算術符号化によって保存する場合に必要な情報量を計算する手順と、
    少なくとも前記情報量を用いて前記所定の関数を更新する手順と、
    を前記コンピュータがさらに実行する請求項1又は2に記載の作成方法。
  4. 前記決定する手順は、前記データがn番目(3≦n)のデータである場合に、既に量子化された別のデータとして、1番目からn-1番目のデータの各データが量子化されたデータを用いて、前記標本空間、および、前記確率分布を、前記所定の関数により決定する、請求項1乃至3のいずれか1項に記載の作成方法。
  5. 前記所定の関数はニューラルネットワークであり、
    前記ニューラルネットワークの内部パラメータを、前記非可逆圧縮における圧縮性能が高くなるように最適化することで、前記量子化先の標本空間を決定する、請求項1乃至4のいずれか1項に記載の作成方法。
  6. 請求項1乃至4のいずれか1項に記載の圧縮器について、当該圧縮器を作成する方法であって、
    第1のパラメータに従って、前記データとして、圧縮対象データを変換した中間データを作成する分析手順と、
    第2のパラメータに従って、前記中間データの量子化先の前記標本空間を前記決定する手順において決定し、前記標本空間を用いて前記中間データを量子化した量子化データを作成する量子化手順と、
    第3のパラメータに従って、前記量子化データを変換した復元データを作成する統合手順と、
    前記圧縮対象データと前記復元データとの歪みと、前記量子化データを算術符号化によって保存する場合に必要な情報量と、に基づいて、前記第1のパラメータと、前記第2のパラメータと、前記第3のパラメータとを最適化する最適化手順と、
    をコンピュータが実行する作成方法。
  7. 請求項1乃至4のいずれか1項に記載の圧縮器について、当該圧縮器を作成する方法であって、分析器、量子化器、統合器及び最適化部を実現するコンピュータが、
    前記分析器により、前記データとして、圧縮対象データを変換した中間データを作成する分析手順と、
    前記量子化器により、前記中間データの量子化先の前記標本空間を前記決定する手順において決定し、前記標本空間を用いて前記中間データを量子化した量子化データを作成する量子化手順と、
    前記統合器により、前記量子化データを変換した復元データを作成する統合手順と、
    前記最適化部により、前記圧縮対象データと前記復元データとの歪みと、前記量子化データを算術符号化によって保存する場合に必要な情報量と、に基づいて、前記分析器のパラメータと、前記量子化器のパラメータと、前記統合器のパラメータとを最適化する最適化手順と、
    を実行する作成方法。
  8. 前記最適化手順は、
    α、β及びγを所定の定数、前記圧縮対象データと前記復元データとで互いに対応する画素値の平均二乗誤差をMSE、前記圧縮対象データと前記復元データとのMSSSIM値をMSSSIM、前記情報量により表されるビット長を示すbit_lengthとして、
    Figure 0007233875000036
    を最小化するように、前記分析器のパラメータと、前記量子化器のパラメータと、前記統合器のパラメータとを最適化する、請求項7に記載の作成方法。
  9. 前記量子化手順は、
    前記中間データの各要素をK個のグループに分割した上で、k(k=1,・・・,K)番目のグループに属する要素で構成されるk番目の中間データを用いて、該k番目の中間データに対応するk番目の量子化データと、該k番目の量子化データを算術符号化によって保存する場合に必要なk番目の情報量とをk=1からk=Kまで順に作成することで、前記k番目の情報量のk=1からk=Kまでの総和で表される前記情報量と、前記k番目の量子化データのk=1からk=Kまでの結合で表される前記量子化データとを作成する、請求項7又は8に記載の作成方法。
  10. 前記量子化器には、k≧2である場合に、1番目の量子化データからk-1番目の量子化データまでを入力として、k番目の中間データを予測したk番目の予測値データと、前記k番目の中間データと前記k番目の予測値データとの近さを表すk番目の指標値データと、前記k番目の中間データを量子化する場合の量子化幅を表すk番目の量子化幅データとを出力するニューラルネットワークが含まれ、
    前記量子化手順は、
    前記k番目の予測値データと前記k番目の量子化幅データと前記k番目の中間データとを用いて、前記k番目の量子化データを作成し、
    前記k番目の予測値データと前記k番目の指標値データとによって決定される累積分布関数と、前記k番目の量子化データと、前記k番目の量子化幅データとを用いて、前記k番目の情報量を作成する、請求項9に記載の作成方法。
  11. k=1である場合、前記k番目の予測値データと、前記k番目の指標値データと、前記k番目の量子化幅データとは、予め保存されている第1のパラメータと第2のパラメータと第3のパラメータとからそれぞれ作成され、
    前記量子化器のパラメータには、前記ニューラルネットワークのパラメータと、前記第1のパラメータと、前記第2のパラメータと、前記第3のパラメータとが含まれる、請求項10に記載の作成方法。
  12. 前記k番目の量子化データの各要素は、前記k番目の予測値データの各要素と前記k番目の中間データの各要素との差を、前記k番目の量子化幅データの各要素でそれぞれ量子化したものであり、
    前記k番目の情報量は、前記k番目の量子化データの各要素と、前記k番目の量子化データの各要素と、前記累積分布関数の集合の各要素とによって決定される出現確率の和である、請求項10又は11に記載の作成方法。
  13. 請求項1乃至12のいずれか1項に記載の作成方法を実行するコンピュータ。
  14. 請求項1乃至12のいずれか1項に記載の作成方法をコンピュータに実行させるプログラム。
JP2018181024A 2018-09-26 2018-09-26 作成方法、コンピュータ及びプログラム Active JP7233875B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018181024A JP7233875B2 (ja) 2018-09-26 2018-09-26 作成方法、コンピュータ及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018181024A JP7233875B2 (ja) 2018-09-26 2018-09-26 作成方法、コンピュータ及びプログラム

Publications (2)

Publication Number Publication Date
JP2020053820A JP2020053820A (ja) 2020-04-02
JP7233875B2 true JP7233875B2 (ja) 2023-03-07

Family

ID=69997781

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018181024A Active JP7233875B2 (ja) 2018-09-26 2018-09-26 作成方法、コンピュータ及びプログラム

Country Status (1)

Country Link
JP (1) JP7233875B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11790566B2 (en) * 2020-05-12 2023-10-17 Tencent America LLC Method and apparatus for feature substitution for end-to-end image compression
CN114037071B (zh) * 2021-09-18 2023-08-08 宁波大学 获取用于图像前处理以抵抗jpge压缩失真的神经网络的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012104940A (ja) 2010-11-08 2012-05-31 Nippon Telegr & Teleph Corp <Ntt> 動画像符号化装置、動画像符号化方法及びプログラム
JP2019140680A (ja) 2018-02-09 2019-08-22 株式会社Preferred Networks オートエンコーダ装置、データ処理システム、データ処理方法及びプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0353782A (ja) * 1989-07-21 1991-03-07 Matsushita Electric Ind Co Ltd 画像符号化装置
KR0139154B1 (ko) * 1994-07-08 1998-06-15 김광호 신경망을 이용한 부호화방법 및 그 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012104940A (ja) 2010-11-08 2012-05-31 Nippon Telegr & Teleph Corp <Ntt> 動画像符号化装置、動画像符号化方法及びプログラム
JP2019140680A (ja) 2018-02-09 2019-08-22 株式会社Preferred Networks オートエンコーダ装置、データ処理システム、データ処理方法及びプログラム

Also Published As

Publication number Publication date
JP2020053820A (ja) 2020-04-02

Similar Documents

Publication Publication Date Title
US11902369B2 (en) Autoencoder, data processing system, data processing method and non-transitory computer readable medium
US11221990B2 (en) Ultra-high compression of images based on deep learning
US7245241B2 (en) Image coding with scalable context quantization
US11983906B2 (en) Systems and methods for image compression at multiple, different bitrates
JP2014525183A (ja) 2dマトリクスにエンコーディングパラメータを保存する画像圧縮のための方法および装置
JP2017085603A (ja) 領域ベースの画像圧縮
US11783511B2 (en) Channel-wise autoregressive entropy models for image compression
JP2000032461A (ja) 画像符号化方法、画像復号方法及び装置及びコンピュ―タプログラム製品
CN111641826B (zh) 对数据进行编码、解码的方法、装置与系统
US7583849B2 (en) Lossless image compression with tree coding of magnitude levels
JP7233875B2 (ja) 作成方法、コンピュータ及びプログラム
Mahmud An improved data compression method for general data
WO2021145105A1 (ja) データ圧縮装置、およびデータ圧縮方法
CN107231556B (zh) 一种图像云储存设备
US20220392117A1 (en) Data compression and decompression system and method thereof
US6714687B2 (en) Image encoding/decoding method, apparatus thereof and recording medium in which program therefor is recorded
JPH08331563A (ja) さざ波変換を利用した映像圧縮方法
Thakker et al. Lossy Image Compression-A Comparison Between Wavelet Transform, Principal Component Analysis, K-Means and Autoencoders
Gray et al. Image compression and tree-structured vector quantization
JP2022187683A5 (ja)
US20220094951A1 (en) Palette mode video encoding utilizing hierarchical palette table generation
Ayyoubzadeh et al. Lossless compression of mosaic images with convolutional neural network prediction
Thanki et al. Classification in Data Compression
US20230268931A1 (en) Data compression system and data compression method
US7747093B2 (en) Method and apparatus for predicting the size of a compressed signal

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210922

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230119

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: 20230207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230222

R150 Certificate of patent or registration of utility model

Ref document number: 7233875

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150