JP2022127884A - 演算装置、圧縮方法 - Google Patents

演算装置、圧縮方法 Download PDF

Info

Publication number
JP2022127884A
JP2022127884A JP2021026108A JP2021026108A JP2022127884A JP 2022127884 A JP2022127884 A JP 2022127884A JP 2021026108 A JP2021026108 A JP 2021026108A JP 2021026108 A JP2021026108 A JP 2021026108A JP 2022127884 A JP2022127884 A JP 2022127884A
Authority
JP
Japan
Prior art keywords
probability
parameter
index
value
parameters
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.)
Granted
Application number
JP2021026108A
Other languages
English (en)
Other versions
JP7534239B2 (ja
Inventor
彬史 鈴木
Akifumi Suzuki
弘明 圷
Hiroaki Akutsu
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2021026108A priority Critical patent/JP7534239B2/ja
Priority to US17/673,042 priority patent/US20220269652A1/en
Publication of JP2022127884A publication Critical patent/JP2022127884A/ja
Application granted granted Critical
Publication of JP7534239B2 publication Critical patent/JP7534239B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3079Context modeling
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4043Adaptive prefix coding
    • H03M7/4062Coding table adaptation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】ニューラルネットワークを用いる演算の演算負荷を下げることができる。【解決手段】演算装置は、予測器とエンコーダとデコーダとを有し、確率密度分布を用いてデータのエンコード及びデコードを行い、学習処理と圧縮処理とのうち少なくとも圧縮処理を実行可能であり、学習処理にて作成した、ニューラルネットワークを用いて学習をすることで、母数とシンボル値の確率分布とを対応させた確率分布表を利用可能であり、圧縮処理では、予測器が、入力データから母数を算出し、エンコーダが、算出された母数と、確率分布表と、に基づくシンボル値の確率分布を用いて、入力データを圧縮する。【選択図】図2

Description

本発明は、演算装置、および圧縮方法に関する。
ニューラルネットワークを利用して演算を効率化する技術が、たとえば非特許文献1に示すように知られている。これらのように、ニューラルネットワークにて構築される学習型の圧縮および伸張器(以下、「学習型圧縮器」と呼ぶ)は、JPEG等の圧縮技術と比較して、同一データ量にて高画質または少ないデータ量にて同等の画質に変換可能なことが知られている。
Johannes Balle、外2名、"End-to-endOptimized Image Compression"、[online]、2017年3月3日、arXiv、[2020年8月4日検索]、インターネット、<URL:https://arxiv.org/abs/1611.01704>
前述の学習型圧縮器は、データ圧縮処理に適したパラメータを学習を通じて獲得する。このニューラルネットワークの学習法として誤差逆伝搬法が知られており、この誤差逆伝搬法においては、学習対象の処理を微分可能な関数にて記述する必要がある。より具体的には圧縮処理において、画像をデータ削減可能な特徴量マップという多次元のテンソル形式に変換したのち、その特徴量マップの要素値(以下、「シンボル値」と呼ぶ)の出現確率を予測する処理がある。シンボル値は、たとえば特定の範囲の整数値(例:-100~+100)のみをとるものとし、特徴量マップのすべての位置毎に、シンボル値がとりうる各整数値の出現確率を予測値として出力する。予測した出現確率のうち、実際のシンボル値の確率が十分に高ければレンジコーダ等のエントロピー符号化によりデータ量を削減する符号化が可能となる。
この確率予測の具体的な方法として、学習型圧縮器では、ニューラルネットワークで構築した予測器を用いる。より具体的には、この予測器が微分可能な確率密度関数の複数の母数(たとえば、ガウス分布における平均と標準偏差)を出力し、特徴量マップの位置毎に個別の確率密度関数を作成してシンボルの値域の各整数値の出現確率を算出する。この構成において確率密度関数が微分可能であるため、符号化対象のシンボル値の確率が最大となる母数を生成するように予測器を誤差逆伝搬法にて学習することが可能となる。
上記学習にて、予測器と確率密度関数を組み合わせた処理は、シンボル値の出現確率の予測が可能だが、ガウス分布等の確率密度関数は指数関数等を用いた計算負荷の高い処理であり、計算に多くの時間や計算資源を必要とする。このため、圧縮処理時間が増大、または圧縮処理を行う処理資源、たとえば中央演算装置やGPU(Graphic Processing Unit)をより高価なものとする必要が生じる。このようにニューラルネットワークを用いる演算では、演算負荷が大きいことが問題となっている。
本発明の第1の態様による演算装置は、予測器とエンコーダとデコーダとを有し、確率密度分布を用いてデータのエンコード及びデコードを行う演算装置において、学習処理と圧縮処理とのうち少なくとも圧縮処理を実行可能であり、前記学習処理にて作成した、ニューラルネットワークを用いて学習をすることで、母数とシンボル値の確率分布とを対応させた確率分布表を利用可能であり、前記圧縮処理では、前記予測器が、入力データから母数を算出し、前記エンコーダが、前記算出された母数と、前記確率分布表と、に基づくシンボル値の確率分布を用いて、前記入力データを圧縮する。
本発明の第2の態様による圧縮方法は、予測器とエンコーダとデコーダとを有し、確率密度分布を用いてデータのエンコード及びデコードを行う演算装置が実行する圧縮方法であって、前記演算装置は、学習処理と圧縮処理とのうち少なくとも圧縮処理を実行可能であり、前記学習処理にて作成した、ニューラルネットワークを用いて学習をすることで、母数とシンボル値の確率分布とを対応させた確率分布表を利用可能であり、前記圧縮処理には、前記予測器が、入力データから母数を算出することと、前記エンコーダが、前記算出された母数と、前記確率分布表と、に基づくシンボル値の確率分布を用いて、前記入力データを圧縮することとを含む。
本発明によれば、ニューラルネットワークを用いる演算の演算負荷を下げることができる。
センサシステムの構成図 第1の実施の形態における演算装置の機能構成図 設定表の一例を示す図 インデックス対応表の一例を示す図 分布表の一例を示す図 圧縮処理を示すフロー図 圧縮ファイルの一例を示す図 伸張処理を示すフロー図 ユーザインタフェース画面の一例を示す図 変形例9における演算装置の機能構成図 第2の実施の形態における演算装置の機能構成図 第2の実施の形態におけるインデックス決定処理を示すフローチャート
―第1の実施の形態―
以下、図1~図9を参照して、本発明に係る演算装置の第1の実施の形態を説明する。
図1は、演算装置を含むセンサシステムの構成図である。センサシステムは、複数のセンサ120と、複数のセンササーバ102と、クライアント端末103と、複数の演算装置100とを含む。それぞれのセンササーバ102には1または複数のセンサ120が接続される。センサ120には、第1センサ120-1と、第2センサ120-2と、第3センサ120-3と、第4センサ120-4と、第5センサ120-5と、が含まれる。
それぞれのセンサ120はたとえば、カメラ、ビデオカメラ、レーザ距離計、速度計、温度計、電圧計、などである。センササーバ102には、第1センササーバ102-1と、第2センササーバ102-2とが含まれる。それぞれのセンササーバ102は、センサ120との接続インタフェースおよびネットワーク101との接続インタフェースとを有する。それぞれのインタフェースは通信が可能であればよく、有線接続か無線接続かを問わない。
ネットワーク101は、インターネットなどの広域ネットワークでもよいし、ローカルエリアネットワークであってもよい。センサシステムに含まれるセンサ120が複数であることは必須の構成ではなく、センサシステムにセンサ120が1つのみ含まれてもよい。センサシステムに含まれるセンササーバ102が複数であることは必須の構成ではなく、センサシステムにセンササーバ102が1つのみ含まれてもよい。それぞれのセンサ120は、センササーバ102を介さずに直接にネットワーク101に接続されてもよい。図1ではセンサシステムに演算装置100が3つ含まれるが、センサシステムには少なくとも1つの演算装置100が含まれればよい。
演算装置100は、一次記憶領域であるDRAM111、ソフトウェアに従って様々な処理を実施するプロセッサ112、記憶媒体114に接続するバックエンドインタフェース113、二次記憶領域である記憶媒体114、およびネットワーク101に接続する通信インタフェース116を含む。DRAM111は、プロセッサ112から短時間でアクセス可能な接続にてプロセッサ112と接続される。DRAM111には、プロセッサ112が処理するプログラムや処理対象データが格納される。
プロセッサ112は、プログラムに従って動作し、対象データを処理する。プロセッサ112は、内部に複数のプロセッサコアを有し、それぞれプロセッサコアは独立してまたは協調してプログラムを処理する。プロセッサ112は、内部にDRAMコントローラを有し、プロセッサからのリクエストに応じてDRAM112よりデータを取得、またはDRAM212にデータを格納する。プロセッサ112は、外部IOインタフェースを有し、バックエンドインタフェース113に接続する。プロセッサ112は、バックエンドインタフェース113を経由して二次記憶装置である記憶媒体114に指示を通知する。プロセッサ112は、センサデータの圧縮および伸張に関連する後述の各種処理を行う。
プロセッサ112では、データ圧縮および伸張の処理だけでなく、SDS(Software
Defined Storage)やデータベース等のストレージ関連のソフトウェアを動作させる。これによりプロセッサ112は、受領したセンサデータを圧縮後、複数の演算装置100により構成されるノード群に圧縮データを分散して格納する。このとき、プロセッサ112は、SDSやデータベースの制御にしたがって、記憶媒体114にデータを記録する。
バックエンドインタフェース113は、SATA(Serial ATA)やSAS(Serial Attached SCSI)などの通信規格に対応する通信インタフェースである。バックエンドインタフェース113は、書き込み時には、プロセッサ112からの指示に基づき、書き込み対象データをDRAM111より取得し記憶媒体114に転送する。またバックエンドインタフェース113は、読み込み時には、プロセッサ112からの指示に基づき、読み込み対象データを記憶媒体114から取得してDRAM111に転送する。
なお、本実施の形態では、バックエンドインタフェース113と記憶媒体114とが独立しているが、バックエンドインタフェース113と記憶媒体114とが一体化されてもよい。さらに演算装置100がバックエンドインタフェース113を備えず、記憶媒体114中にプロセッサ112と直接通信するインタフェース、たとえばNVMe(Non-Volatile Memory Host Controller Interface)が搭載されてもよい。
記憶媒体114は、解析対象データを格納する二次記憶装置である。本実施の形態では、記憶媒体114はプロセッサ112にて制御されたバックエンドインタフェース113から送信された書き込み対象データを受領し、永続的に格納する。通信インタフェース116は、他の演算装置100、センササーバ102、およびクライアント端末103と通信するためのインタフェースである。図1の例では、演算装置100はネットワーク101を介して他の装置と接続されるが、ネットワーク101を介さずに直接に他の装置に接続されてもよい。
センササーバ102は、複数のセンサ120を管理し、それぞれのセンサ120が取得したデータ(以下、「センサデータ」と呼ぶ)をネットワーク101を介して演算装置100に転送する。センサデータをセンササーバ102から受領した演算装置100は、後述する圧縮処理によって、センサデータを圧縮して記憶媒体114に格納する。
クライアント端末103は、ユーザが演算装置100に蓄えたセンサデータを利用する際に用いる端末であり、演算装置100にセンサデータを要求する。クライアント端末103から要求を受けた演算装置100は、後述の伸張処理によってセンサデータを伸長してクライアント端末103に転送する。
(機能構成)
図2は、演算装置100の機能構成図である。演算装置100は、その機能として、エンコーダ201と、エントロピー符号化部202と、予測器203と、インデックス生成部211と、分布表生成部212と、インデックス特定部221と、確率特定部222と、圧縮ファイル生成部230と、デコーダ301と、エントロピー復号化部302とを備える。また演算装置100の記憶媒体114には、センサデータSと、特徴量マップFと、インデックス対応表500と、分布表600と、設定表650と、圧縮ファイル700とを格納できる。ただし記憶媒体114に格納される上述したデータは、全てが同時に記憶媒体114に格納される必要はない。なお以下では、インデックス生成部211とインデックス特定部221とをあわせて、「インデックス生成部」240と呼ぶこともある。また分布表生成部212は、「対応情報生成部」と呼ぶこともある。
センサデータSは、センサ120が取得したデータであり、演算装置100がセンササーバ102を介して取得する。センサデータSに対して圧縮処理を施して得られるのが圧縮ファイル700であり、圧縮ファイル700に対して伸張処理を施して得られるのがセンサデータSである。インデックス対応表500は、インデックス生成部211により作成される。インデックス生成部211は、インデックス対応表500の作成において設定表650を参照する。インデックス対応表500は、インデックスの値と、予測器203が出力する母数との対応を示すテーブルである。インデックス対応表500に格納される情報の詳細は後述する。特徴量マップFは、エンコーダ201により変換されたセンサデータSである。以下では、特徴量マップFの要素を「シンボル」と呼ぶ。
分布表600は、分布表生成部212により作成される。分布表生成部212は、分布表600の作成において設定表650を参照する。分布表600は、インデックスの値と累積度数との対応を示すテーブルである。設定表650には、あらかじめ定められた累積度数および特徴量抽出に関するパラメータ、換言するとインデックスを決定する際に参照される後述する所定範囲を定義する情報が格納される。ただし後述するようにユーザの操作により設定表650に格納されるパラメータの値が更新されてもよい。
演算装置100が備える各構成の動作概要は次のとおりである。エンコーダ201は、センサデータSを読み込み、特徴量マップFを出力する。予測器203は、特徴量マップFを読み込んで、2つの母数、すなわち母数Aと母数Bを出力する。母数Aと母数Bについては後に詳述する。インデックス特定部221は、インデックス対応表500を参照し、予測器203が出力する2つの母数の組合せに対応するインデックスを特定する。確率特定部222は、分布表600を参照し、インデックス特定部221が出力するインデックスの値に対応する累積度数をエントロピー符号化部202に出力する。
エントロピー符号化部202は、特徴量マップFを読み込んで、圧縮ファイル700の一部を作成する。この際にエントロピー符号化部202は、確率特定部222が出力する累積度数を参照することで特徴量マップFの効率的な圧縮を実現する。そのためエントロピー符号化部202は、「圧縮部」と呼ぶこともできる。圧縮ファイル700の別の一部分は、圧縮ファイル生成部230により生成される。
エントロピー符号化部202では、後述の分布表600の値を用いてデータ効率的に符号化する。分布表600は、-100~100の各シンボル値毎の累積度数が記載されており、シンボル値の種類数は201であるから、各シンボル値の発生確率が均一である場合1/201の確率である。ここで、符号化対象シンボルの値の、予測器の結果より得られる分布表の確率が1/201より大きい場合、例えば1/10の確率とされた場合(図5の分布表の例において、表における前のシンボル値の累積度数に対して約6554個の累積度数の増加がある場合)、より小さなデータ量に符号化して記録することが可能となる。この場合、復号化する際に、符号化に用いた累積度数と同一の値を用いないと、正しく復号化できない。
インデックス生成部211は、設定表650を参照してインデックス対応表500を生成する。分布表生成部212は、設定表650を参照して分布表600を生成する。なおインデックス生成部211および分布表生成部212は、設定表650の代わりに圧縮ファイル700に含まれる設定表650に相当する情報を参照して動作する場合もある。デコーダ301は、特徴量マップFを読み込んでセンサデータSを出力する。エントロピー復号化部302は、特徴量マップFおよび確率特定部222が出力する累積度数を用いて圧縮ファイル700を作成する。
(設定表)
図3は、設定表650の一例を示す図である。設定表650には、母数Aの粒度、母数Aの最小値、母数Aの最大値、母数Bの粒度、母数Bの最小値、母数Bの最大値、シンボルの最小値、およびシンボルの最大値が含まれる。これらの値は実数であればよく、値の制限はない。
設定表650に格納される情報のうち、母数Aの粒度、母数Aの最小値、母数Aの最大値、母数Bの粒度、母数Bの最小値、および母数Bの最大値は、インデックス生成部211が読み込んで動作に反映する。そのため、母数Aの粒度、母数Aの最小値、母数Aの最大値、母数Bの粒度、母数Bの最小値、および母数Bの最大値は、インデックス生成部211の動作パラメータを特定する「インデックスパラメータ情報」と呼ぶこともできる。
分布表生成部212は、設定表650に格納されるすべての情報を読み込んで動作に反映するので、分布表生成部212が生成する分布表600は、設定表650の情報が反映されているとも言える。そのため、母数Aの粒度、母数Aの最小値、母数Aの最大値、母数Bの粒度、母数Bの最小値、母数Bの最大値、シンボルの最小値、およびシンボルの最大値は、分布表600を特定する「確率特定情報」と呼ぶこともできる。
(インデックス対応表)
従来技術では、予測器が出力する実数の母数Aと母数Bを用い確率密度分布の各確率を演算により作成し、それをもとに累積度数を作成する。しかし、本実施例では母数Aと母数Bより整数インデックスを作成し、整数インデックスを用いて、すでに作成した累積度数の値を取得する。母数Aと母数Bより整数インデックスを作成する方法は、演算でもよいが、本実施例では、図4に示すインデックス対応表500より取得する。
図4は、インデックス対応表500の一例を示す図であり、図3に示す設定表650の値に対応する。なお図4における符号501~符号509は以下の説明で参照する。図4に示す例では、母数Aが「-50.0」で母数Bが「0.2」の場合は、インデックスの値は「1」であることが示されている。インデックス生成部211は、予測器203の出力である母数Aと母数Bに対応するインデックスの一覧であるインデックス対応表500をたとえば次のように作成する。
インデックス生成部211は、まず母数Aの最小値である「-50」と母数Bの最小値である「0.1」の組合せを最初のインデックス、すなわちインデックス値「0」に対応させる。そしてインデックス生成部211は、母数Aは最小値に固定したまま母数Bを母数Bの粒度である「0.1」ずつ、母数Bの最大値である「100.0」まで増加させる。このときインデックス生成部211は、変化させる母数Bと母数Aの最小値との組合せごとに「1」ずつ増加させたインデックス値を設定する。母数Bの最大値である「100.0」まで増加させるとインデックスの値は「999」まで増加し、図4の符号501の範囲が完成する。
次にインデックス生成部211は、母数Aの値を最小値「-50.0」から母数Aの粒度の値「0.1」だけ増加させて「-49.9」に更新する。そしてインデックス生成部211は母数Bを最小値「0.1」に戻し、この組み合わせを次のインデックス値「1000」に対応させる。そしてインデックス生成部211は、符号501の範囲と同様に母数Aの値は固定したまま母数Bを母数Bの粒度である「0.1」ずつ、母数Bの最大値である「100.0」まで増加させ、インデックス値を「1999」まで増加させる。この処理により図4の符号502の範囲が完成する。
インデックス生成部211は、以降は同様に母数Aの値を母数Aの粒度である「0.1」ずつ増加させて、符号501の範囲や符号502の範囲と同様の処理を繰り返す。そしてインデックス生成部211は、母数Aの値を母数Aの最大値である「50.0」まで増加させて、母数Bの値も最大値である「100.0」まで増加させると、最後のインデックス値「1000999」と対応させて符号509の範囲を完成させる。以上の処理によりインデックス対応表500が完成する。
(分布表)
前述の通り従来技術では、エントロピー符号化部202が用いる累積度数を、実数である母数A、母数Bを用いて演算により算出してきた。しかし、本実施例では、インデックスを用いて参照可能な累積度数の表(分布表)をあらかじめ作成しておき、演算せずに累積度数を取得する。このことにより、実数である母数A、母数Bを用いて演算により累積度数を作成した場合より、圧縮率は低下(前述の母数Aや母数Bが十分に小さければ無視可能なレベルの低下)するが、高負荷な確率密度関数の演算処理なしに圧縮が可能となる。
図5は、分布表600の一例を示す図であり、図3に示す設定表650の値に対応する。図5は、左端の列に示すように上から下に向かってインデックスの値が単調増加する。インデックスの最大値は、図3に示す設定表650の値に同じく対応する図4のインデックス対応表500と同一の「1000999」である。図5の上部に記載する「-100」~「100」はシンボル値であり最小値と最大値は設定表650の記載に対応する。
分布表生成部212は、設定表650を参照して、母数Aの粒度、最小値、最大値、および母数Bの粒度、最小値、最大値を取得し、2つの母数のすべての組み合わせについて、確率密度関数を用いて計算を行い、確率値の累積度数を算出する。この算出において、設定表650に含まれる度数の解像度を確率値に掛け合わせる。図5に示す例では解像度は65535であり、シンボルの値域における最大値である100の累積度数は65535となる。
分布表600は、インデックスごとに、全てのシンボルの値に対応する累積度数の値を格納したテーブルである。分布表600は、設定表650を参照して分布表生成部212により生成される。なお演算装置100が分布表生成部212を有することは必須の構成ではなく、分布表600が演算装置100以外であらかじめ作成されてもよい。また、設定表650に設定される様々な値を想定して演算装置100の外部であらかじめ複数の分布表600を作成しておき、設定表650の値に応じて適切な分布表600を読み込んでもよい。
(圧縮処理)
図6は、演算装置100による圧縮処理を示すフロー図である。以下では主にセンサデータSを静止画像として圧縮処理を説明する。ただし演算装置100が処理可能なセンサデータSは静止画像に限定されない。圧縮処理が開始される前に、インデックス対応表500および分布表600が予め作成される。圧縮処理は、センサデータSをエンコーダ201に入力することで開始される。
エンコーダ201は、センサデータSを特徴量マップFに変換する。エンコーダ201は、入力されるセンサデータSの特徴を残しながら、重要度が低いと考えられる情報を削減する。たとえば入力されたデータが画像の場合には、人が知覚しにくい情報、たとえば細かな色の変化などを削除しデータ量を削減する。なおエンコーダ201は、特徴量マップFの次元数をセンサデータSと異ならせてもよい。たとえばエンコーダ201は、3次元テンソルのサイズ「3,512,512」であるセンサデータSを、3次元テンソルのサイズ「256,64,64」の特徴量マップFに変換する。
学習型圧縮器の多くは、エンコーダおよびデコーダにニューラルネットワークを利用することで、後述の予測処理を含めた圧縮処理のほぼ全てを学習可能とする。学習型圧縮機による圧縮処理は、非学習型である明示的に設計された処理よりも、人が知覚可能な画質に影響を与えずにデータ量を削減可能なことが知られている。本実施の形態では、エンコーダ201はニューラルネットワークにて構築されているが、これは必須の構成ではない。すなわちエンコーダ201は、JPEG等に用いられているDCT変換やデータの間引き等の明示的に設計された処理であってもよい。
特徴量マップFは、エンコーダ201により生成される。特徴量マップFは一般に入力データであるセンサデータSと同一次元数のテンソルである。たとえばカラー画像は「色、縦、横」の3次元のテンソルであり、センサデータSがカラー画像の場合は特徴量マップFも3次元のテンソルとなる。特徴量マップFの各次元の大きさは、センサデータSとは異なる場合が多い。たとえば、縦と横がそれぞれ512ピクセルのカラー画像のテンソルは「3,512,512」であるが、特徴量マップFは「256,64,64」のように変換される場合がありうる。なお、特徴量マップFの次元や形状は特に限定されず、センサデータSがいかなる形状に変換されてもよい。
特徴量マップFは、元画像より要素数が少ない場合も大きい場合もまたは同一の場合もありうる。たとえばエンコーダ201が、3次元テンソルのサイズ「3,512,512」であるセンサデータSを3次元テンソルのサイズ「256,64,64」の特徴量マップFに変換する場合は、要素数は3*512*512=786432から256*64*64=1048576個と増加する。
また、エンコーダ201が出力する特徴量マップFの各要素の値は整数形式であり、以降この要素の一つをシンボルと記す。エンコーダ201は、シンボルの値域を制限としており、以降の説明では簡略化のためにユーザが値域-100~100の201種類の整数に限定したことを前提に説明する。シンボルの値域の制限により、-101以下の値は-100に置き換えられ、101以上の値は100に置き換えられる。なお、本実施例において、この値域は、後述するユーザインタフェースによりユーザが変更可能でもよい。
エントロピー符号化部202は、特徴量マップFのデータ量を削減するためにエントロピー符号化を行う。様々なエントロピー符号化技術が知られているが、本実施の形態ではレンジコーダを用いる。レンジコーダは、シンボルの各値の発生確率の偏りを用いてデータ量を削減する符号化である。201種類の整数の出現確率が均等であるとき、各値は1.0÷201=0.495%で発生する。しかし、出現確率に偏りがあり、符号化対象のシンボルの値の出現確率が0.495%以上であれば、少ないデータ量に符号化できる。
レンジコーダは出現確率そのものではなく、累積度数表を用いて符号化を行う。シンボルの値域が-2~2の5つの値をとる場合を例に累積度数を説明する。この「-2」、「-1」,「0」,「1」,「2」の各値の出現確率が「1%,9%,20%,50%,20%」であるとき、度数の合計値を100に置き換えると度数分布は「1,9,20,50,20」となる。これをシンボルの値である「-2」から「2」まで順に累積度数とすると「1,10,30,80,100」となる。レンジコーダはこの累積度数表を用いてデータの符号化を行う。
前述のとおりレンジコーダは、値の出現確率、厳密にはこの出現確率より作成される累積度数表により符号化後のデータ量が変化する。このため、圧縮処理において、出現確率の予測能力は、データ量削減能力の重要な要素である。演算装置100は、この出現確率をニューラルネットワークにより構成される予測器203を用いて予測する。
予測器203は、特徴量マップFを入力とするニューラルネットワークを含んで構成され、公知の学習処理により特徴量マップF内の各シンボル位置に個別の出現確率を予測するための能力を獲得する。
この学習処理をより具体的に説明する。予測器203は、入力として特徴量マップFを構成する各シンボルが与えられると、各シンボルに応じた確率密度分布の母数を出力する。(一つのシンボルごとに母数を出力し、シンボル毎に固有の確率密度分布を作成する)この母数は本実施例においては、ガウス分布の母数である平均と標準偏差である。このとき、平均と標準偏差より作成されたガウス分布におけるシンボル値の確率が計算可能となる。学習は、この確率がなるべく大きくなるような平均と標準偏差となるように予測器を構成するニューラルネットワークの結合係数を変更する。この変更は、ガウス分布の計算が微分可能であることから、一般的な誤差逆伝搬法にて学習可能である。例えば、シンボル値として3という値が予測器に入力されたとき、平均1.2、標準偏差2.5等の値が出力された場合、学習により、予測器の出力である平均をより3.0に近づけ、標準偏差を0.0に近い値となるようにニューラルネットワークが修正される可能性がある。
しかし、平均を3に近づけ、標準偏差を0に近づけることが当該シンボルの確率を増加できても、予測器に入力される他のシンボルの確率が低下し、シンボル群全体の平均確率が小さくなってしまうなら、学習により平均値が1.2よりさらに3から離れたり、標準偏差が2.5より大きくなる場合もあり、この場合は予測器の出力より作成されるガウス分布における3の確率が学習前よりも低下する可能性もある。このように学習においては、予測器に入力される特徴量マップFのシンボル群を入力し、そのシンボル群のシンボル数と同数のガウス分布における、各シンボルの確率の平均値が最大となるように予測器を構成するニューラルネットワークを修正する。
本実施の形態における予測器203はあらかじめ学習が完了している。学習処理は、本装置で行ってもよいし、他の装置で学習を行って本装置では学習結果であるインデックス対応表500や分布表600を利用可能にすることでもよい。予測器203は、学習のために微分可能な確率密度関数の母数を1以上出力するように構成される。本実施の形態では予測器203は、確率密度関数であるガウス分布の2つのパラメータ、すなわち平均と標準偏差とを2つの母数として出力する。
予測器203は、特徴量マップFのシンボル毎に2つの母数を出力する。たとえばレンジコーダによる符号化対象の特徴量マップFのシンボル数が256*64*64=1048576個であるとき、予測器203は、1048576*2=2097152個の値を出力する。学習時は、2097152個の出力からそれぞれ2つの母数を用いた2097152÷2=1048576個の個別のガウス分布が構成される。そして、符号化対象シンボルの各値の確率が最大化、より厳密には全シンボルの平均値が最大化されるように、予測器203を構成するニューラルネットワークの結合係数の値が繰り返し修正される。一方、圧縮時には、2097152個の出力から、2097152÷2=1048576個のインデックスが作成される。
インデックス特定部221は、インデックス対応表500を参照し、予測器203の出力である2つの母数の組合せに対応するインデックスの値を特定する。ただし予測器203は2つの母数を不動小数点形式にて出力するので、母数をそのまま用いると組合せの数が膨大になる。そのためインデックス特定部221は、それぞれの母数を所定の数値範囲に区分けし、該当する数値範囲の代表値を算出する。この代表値の範囲が設定表650に最小値と最大値として記載されており、それぞれの所定範囲の広さが粒度として記載されている。図3に示す設定表650の例では、母数Aにおける所定の数値範囲はたとえば、-50を中心とする幅0.1の範囲、-49.9を中心とする幅0.1の範囲、-49.8を中心とする幅0.1の範囲、・・・、50.0を中心とする幅0.1の範囲、である。
ただし所定の数値範囲は、代表値を中心値とすることは必須ではなく、あらかじめ定めた規則に基づいて決定されればよく、中心値の代わりに最大値や最小値としてもよい。たとえば最小値とする場合には、母数Aにおける所定の数値範囲が、-50以上-49.9未満の範囲、-49.9以上-49.8未満の範囲、・・・、50.0以上50.1未満の範囲であってもよい。インデックス特定部221は、それぞれの母数が該当する数値範囲を特定し、その数値範囲の代表値を母数の値とし、その値を用いてインデックス対応表500からインデックスの値を特定する。たとえば数値範囲の代表値が、母数Aは「-50.0」、母数Bは「0.2」と特定され、インデックス対応表500が図4に示すものである場合には、インデックスの値を「1」と特定する。
またインデックス特定部221は、予測器203が出力する母数Aおよび母数Bが設定表650において規定される最小値と最大値の間にない場合は、クリップ処理により最小値および最大値のいずれか近い方の値であるとみなす。たとえば設定表650における母数Aの最小値が「-50」かつ母数Aの最大値が「50」である場合に、予測器203が出力する母数Aが「-51」の場合は「-50」として扱い、予測器203が出力する母数Aが「60」の場合は「50」として扱う。
確率特定部222は、インデックス特定部221が特定したインデックスの値を用いて、分布表600を参照して、特徴量マップの全てのシンボルについて累積度数を取得する。この取得した累積度数を用いて、エントロピー符号化部202におけるレンジコーダは、シンボルを符号化してデータ量が削減された圧縮ファイル700を作成する。正確には、エントロピー符号化部202は圧縮ファイル700の一部であるバイナリを作成する。
圧縮ファイル生成部230は、圧縮ファイル700の別の一部分であるヘッダーを作成する。具体的には圧縮ファイル生成部230は、記憶媒体114から設定表650を取得してこれをそのまま圧縮ファイル700のヘッダーとする。
なお、本実施の形態ではレンジコーダが累積度数表を用いて符号化を行うため、インデックスと累積度数との対応を示す分布表600を用いた。しかし分布表600は、インデックスと出現確率との関係を示す表とし、累積度数はその都度算出してもよい。確率密度関数の計算をせずに確率または累積度数の何れかを取得可能であるなら、本実施の形態における高速化効果を得ることが可能である。
(圧縮ファイル)
図7は、圧縮処理により生成される圧縮ファイル700の一例を示す図である。圧縮ファイル700は、ヘッダー711とバイナリ712とを含む。ヘッダー711は圧縮ファイル生成部230により作成され、バイナリ712はエントロピー符号化部202により作成される。ヘッダー711は、圧縮時に用いた分布表600を再生成可能な情報である。たとえばヘッダー711は、設定表650の情報がそのまま含まれていてもよいし、設定表650と同一情報が異なる形式で格納されてもよい。バイナリ712は、前述のエントロピー符号化部202が出力するビット列である。圧縮ファイル700が設定表650の情報を有する理由は以下のとおりである。
圧縮処理にて符号化して得られるバイナリ712を利用するには伸張処理を行う必要がある。伸張処理において、レンジデコーダにてバイナリ712を復号化する。レンジデコーダによる復号化では、各シンボルについて符号化時と同一の分布表600が必要となる。そのため圧縮ファイル700には、圧縮時に用いた分布表600を再生成可能な情報をヘッダー711として含ませている。
設定表650は、母数Aの粒度731、母数Aの最小値732、母数Aの最大値733、母数Bの粒度734、母数Bの最小値735、母数Bの最大値736、シンボルの最小値737、シンボルの最大値738の情報を有している。なお、本発明はこのパラメータ数の例に限定されるものではない。たとえば、圧縮時と同一の分布表600を識別可能なIDを保持するとしてもよく、圧縮時と同一の分布表600を再生成またはHDD等の記憶媒体から取得、のいずれかが可能な情報であればよい。また、圧縮器が単一の分布表600しか用いない場合には、圧縮ファイルのヘッダー内に累積頻度情報を含まない場合があってもよい。
本実施例の圧縮器は後述の伸張処理の前に、圧縮ファイル700のヘッダー711内より、設定表650の情報を取得し、圧縮時と同一の分布表600を作成する。なお、本発明はこの例に限定されるものではなく、圧縮ファイルに分布表600を識別可能なIDが含まれている場合には、このIDをもとに再生成してもよいし、IDをもとにHDD等の記憶媒体から取得してもよい。
(伸張処理)
図8は、伸張処理を示すフロー図である。演算装置100の伸張処理は、前述の圧縮処理にて作成した圧縮ファイル700をエントロピー復号化部302に内蔵されるレンジデコーダにて復号化し、特徴量マップFを取得する処理にて開始する。
このレンジデコーダによる復号処理は、圧縮時と同一のインデックス対応表500および分布表600が必要となる。このため、インデックス生成部211および分布表生成部212は、圧縮ファイル700のヘッダー711を参照し、インデックス対応表500および分布表600を作成する。圧縮処理において予測器203の入力であった特徴量マップFは、復号化の結果として得られるものであるため、復号処理において予測器203の入力は圧縮処理と同一ではない。
予測器203は、特徴量マップFの一部分を入力することで、入力とは異なる場所の特徴量マップFの一部分のシンボルにおける出現確率を予測する。このため、特徴量マップFを部分的に入力し、出現確率または累積度数分布を取得して、レンジコーダで入力とは異なる特徴量マップFの一部分を復号化する。こうして得られた特徴量マップFの一部分を再び予測器203に入力し、出現確率または累積度数分布を取得して、レンジコーダで入力とは異なる特徴量マップFの別の一部分を復号化する。このように、予測と復号化のループ処理を繰り返して、最終的に特徴量マップFの全体を得る。予測と復号化のループ処理を行うための最初の入力は、圧縮ファイル700に保存しておいてもよいし、ダミー入力であってもよい。
伸張処理における予測と復号化のループ処理にて、予測器203が確率密度関数の母数を生成するたびに、インデックス特定部221および確率特定部222が圧縮処理の場合と同様に動作する。この予測と復号化のループ処理によりすべての特徴量マップFを復号化する。
復号化された特徴量マップFは、デコーダ301にて元のセンサデータSに変換される。デコーダ301は、エンコーダ201と対となって構成され、エンコーダ201にて生じた値の欠損等を、平滑化等の処理にて補い、人に画質の違和感を認識させないように動作する。デコーダ301は、ニューラルネットワークにより構成されてもよいし、特徴量マップFをセンサデータSに変換可能であればいかなる仕組みであってもよい。なお、圧縮処理の対象とされたセンサデータSと、伸張処理により得られるセンサデータSとは完全に一致しなくてもよく、略同一であればよい。略同一とはたとえば、人間の知覚において同一であることの確からしさが所定の閾値以上であることや、コンピュータ処理において所定の処理の結果が同一になることである。
(ユーザインタフェース)
図9は、ユーザが設定値を設定するユーザインタフェース画面800の一例を示す図である。ユーザインタフェース画面800は、演算装置100または、演算装置100とネットワーク101にて接続されたクライアント端末103に表示される。
ユーザインタフェース画面800は、ユーザが設定を行うためのグラフィカルユーザインタフェース画面の一例を示している。累積度数の設定項目として、母数Aの粒度801、母数Aの最小値802、母数Aの最大値803、母数Bの粒度804、母数Bの最小値805、母数Bの最大値806、の入力フィールドを有する。特徴量マップの設定項目として、シンボルの最小値811、シンボルの最大値812の入力フィールドを有する。
演算装置100は、ユーザインタフェース画面800にユーザからの入力があると、その入力を設定表650に書き込み、後の処理に反映させる。具体的には、累積度数の設定に基づき分布表生成部212が分布表600を作成する。特徴量マップの設定は、エンコーダ201より出力されるシンボルの値を制限する。以上が本実施例におけるユーザインタフェース画面である。
なお、図9に示すユーザインタフェース画面800の設定項目の全てを含むことは必須の構成ではなく、1つの項目のみユーザが設定可能でもよいし、ユーザインタフェース画面800が設けられなくてもよい。
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)演算装置100は、予測器とエンコーダとデコーダとを有し、確率密度分布を用いてデータのエンコード及びデコードを行う演算装置において、学習処理と圧縮処理とのうち少なくとも圧縮処理を実行可能であり、学習処理にて作成した、ニューラルネットワークを用いて学習をすることで、母数とシンボル値の確率分布とを対応させた確率分布表を利用可能であり、圧縮処理では、予測器が、入力データから母数を算出し、エンコーダが、算出された母数と、確率分布表と、に基づくシンボル値の確率分布を用いて、入力データを圧縮する。そのため、演算に時間を要する確率密度関数の算出を事前に行い分布表600を作成し、あらかじめ作成したインデックス対応表500および分布表600を参照することで演算量を低減できる。ニューラルネットワークの出力は小数であることが一般的であり、ルックアップテーブルとの組合せには馴染まない。本実施の形態では演算装置100はインデックス決定部240を有するので、ニューラルネットワークの出力をインデックス化することができ、あらかじめ作成されたルックアップテーブルと組み合わせて使用できる。換言すると、処理時間の短縮または、より廉価な処理資源にて処理することが可能となり演算処理のコストを軽減できる。
(2)演算装置100は、算出された母数と、確率分布表と、に基づいて、圧縮に用いるシンボル値の確率分布を選択する確率特定部を備える。
(3)母数は、入力データの確率密度分布の平均と分散とである。
(4)学習処理を行い、学習処理では、ニューラルネットワークの結合係数を適正化して、確率密度分布を作成する。
(5)学習処理では、分散が小さくなるようにニューラルネットワークの結合係数を適正化する。
(6)学習処理では、入力データの複数のシンボルごとに、確率密度分布を作成するとともに、その母数を算出し、算出した複数の母数の最大値及び最小値に基づく分布範囲に基づいて所定の粒度で確率分布表に格納する母数を設定し、設定した母数に対応する確率密度分布を確率分布表に記載する。そのため、不要な母数の範囲は使用せず、圧縮の効率を向上できる。
さらに本実施の形態は次の作用効果も有する。
(7)演算装置100は、予測器203が出力する確率密度分布の母数を所定の数値範囲に区分けし、該当する数値範囲の代表値に対応する値であるインデックスを決定するインデックス決定部240を備える。分布表600は、インデックスとシンボルに対応する確率密度分布の算出結果に基づく値との対応を示す。そのため母数の出力と累積度数との対応を容易に把握できる。
(8)インデックス決定部240の一部であるインデックス生成部211は、ユーザの指示に基づきインデックスの粒度、すなわち所定の数値範囲の幅を決定する。そのため、計算の精度と事前に作成する分布表600の作成時間のトレードオフをユーザの指示に基づき決定できる。
(9)分布表600における確率密度関数の算出結果に基づく値は、確率密度関数の算出結果に基づいて作成される累積度数分布である。そのため、確率の算出よりも時間を要する累積度数を事前に算出し、圧縮処理に要する時間を短縮できる。
(10)確率密度関数の算出結果に基づく値を用いて入力情報である特徴量マップFを符号化、すなわち圧縮するエントロピー符号化部202を備える。そのため演算装置100は、圧縮ファイル700を作成する圧縮処理の処理負荷を軽減できる。
(11)演算装置100は、前述の所定の数値範囲のそれぞれを特定するインデックスパラメータ情報と、対応情報を特定する確率特定情報と、符号化部が出力する符号化された入力情報とを結合させた圧縮ファイルを生成する圧縮ファイル生成部230を備える。そのため演算装置100は、圧縮ファイル700に設定表650の情報を含ませることで、異なる演算装置100においても伸張処理の実行を可能とする。
(12)圧縮ファイル700は、入力されるシンボルに応じた確率密度分布の母数を出力するニューラルネットワークであって、あらかじめ入力された複数のシンボルに対応する複数の母数を用いて作成されたガウス分布におけるシンボルの確率の平均値が最大となるように結合係数が変更されたニューラルネットワークを含む予測器203が出力する確率密度分布の母数を所定の数値範囲に区分けするためのインデックスパラメータ情報と、インデックスパラメータ情報を用いて予測器203が出力する母数を所定の数値範囲に区分けし、該当する数値範囲における代表値を用いて、シンボルに対応する確率密度分布の算出結果に基づく値を得るための確率特定情報と、確率密度分布の算出結果に基づく値を用いてシンボルが圧縮された圧縮済データであるバイナリ712と、を含むデータ構造を有する。そのため、バイナリ712の伸張処理をインデックスパラメータ情報および確率特定情報を用いて効率よく実行させることができる。
(13)演算装置100は、入力されるシンボルに応じた確率密度分布の母数を出力するニューラルネットワークであって、あらかじめ入力された複数のシンボルに対応する複数の母数を用いて作成されたガウス分布におけるシンボルの確率の平均値が最大となるように結合係数が変更されたニューラルネットワークを含む予測器203が出力する確率密度分布の母数を所定の数値範囲に区分けするためのインデックスパラメータ情報と、インデックスパラメータ情報を用いて予測器203が出力する母数を所定の数値範囲に区分けし、該当する数値範囲における代表値を用いて、シンボルに対応する確率密度分布の算出結果に基づく値を得るための確率特定情報と、確率密度分布の算出結果に基づく値を用いてシンボルが圧縮された圧縮済データと、を含む圧縮ファイルが格納される記憶媒体114と、予測器203と、確率特定情報に基づき、代表値とシンボルに対応する確率密度分布の算出結果に基づく値との対応を示す対応情報を作成する対応情報作成部、すなわちインデックス生成部211および分布表生成部212と、インデックスパラメータ情報に基づき、予測器203が出力する確率密度分布の母数を所定の数値範囲に区分けして得られる代表値と、対応情報とを用いて、代表値に対応する確率密度分布の算出結果に基づく値を特定する確率特定部222と、圧縮済データであるバイナリ712を、確率密度分布の算出結果に基づく値を参照してシンボルに復号化するエントロピー復号化部302とを備える。そのため演算装置100は、任意の設定表650の値に基づいて作成された、圧縮ファイル700に格納されたバイナリ712を伸張することができる。
(変形例1)
センササーバ102が演算装置100と同等の処理資源を有し、演算装置100と同様の圧縮処理や伸張処理を行ってもよい。また演算装置100およびセンササーバ102は、圧縮処理および伸張処理をプロセッサではなくGPUやFPGA等の処理資源にて処理してもよい。
(変形例2)
予測器203が出力する確率密度関数の母数の個数は2つに限定されず、1以上であればよい。予測器203が出力する母数の数に応じて、設定表650の設定項目数が増減する。そして、設定表650の記載に応じてインデックス対応表500に記載されるインデックスの総数も変化する。これに応じて分布表600におけるインデックスの総数も変化する。
また2つ以上の母数を有する確率密度関数を用いた場合にそのうちの一つを定数とし、予測器203は一つの母数のみを出力するとしてもよい。たとえば、ガウス分布は一般に平均と標準偏差の二つを母数として有するが、平均は0の定数とし、予測器203は標準偏差のみ出力するとしてもよい。
(変形例3)
圧縮ファイル700には、設定表650の代わりにインデックス対応表500および分布表600を特定する情報、たとえばあらかじめ作成された複数のインデックス対応表500および分布表600の識別子が含まれてもよい。さらに圧縮ファイル700には、圧縮処理において使用した予測器203のパラメータを特定する情報を含めてもよい。
(変形例4)
上述した第1の実施の形態では、伸張時に特徴量マップFの一部を予測器203に入力したが、伸張時に特徴量マップFを一切入力しない予測器を用いてもよい。たとえば、圧縮処理において、予測器203にて特徴量マップFから特徴量マップFの特徴量に相当するハイパー特徴量マップを作成し、ハイパー特徴量マップを、特徴量マップFのレンジコーダによる符号化後のバイナリ712とは別に圧縮ファイルに保存してもよい。この構成であれば、伸張時に特徴量マップを予測器に入力する必要はなく、前述の予測―復号化のループ処理は不要となる。このとき、ハイパー特徴量マップのデータ量を十分に小さくすれば、特徴量マップのエントロピー符号化によるデータ削減効果は果たされる。
(変形例5)
上述した第1の実施の形態において、エンコーダ201を用いなくてもよい。この場合には特徴量マップFの代わりにセンサデータSが予測器203およびエントロピー符号化部202に入力される。
(変形例6)
予測器203の出力は、確率密度関数の母数に限定されない。予測器203は、ニューラルネットワークの出力として何らかの数値を出力すればよい。予測器203の出力が数値でさえあれば、その数値範囲に対応したインデックス対応表500をあらかじめ作成することにより、予測器203の出力をインデックス特定部221によりインデックス化できる。
(変形例7)
上述した第1の実施の形態では、センサデータSを主に2次元の広がりを有する画像として説明したが、画像よりも次元数が少ないラインセンサの出力などや、画像よりも次元数が多い動画などであってもよい。センサデータSの次元数に応じて特徴量マップFの次元数が変化するが、処理の流れは同一である。
(変形例8)
上述した第1の実施の形態では、演算装置100は圧縮処理と伸長処理の両方を実行した。しかし演算装置100は圧縮処理および伸張処理の少なくとも一方を実行可能であればよい。演算装置100が圧縮処理のみを実行する場合には、図2に示した構成からデコーダ301およびエントロピー復号化部302を除いた構成でよい。演算装置100が伸張処理のみを実行する場合には、図2に示した構成からエンコーダ201、エントロピー符号化部202、および圧縮ファイル生成部230を除いた構成でよい。
(変形例9)
図10は、変形例9における演算装置100Aの機能構成図である。図10に示す演算装置100Aは、第1の実施の形態における構成に加えて、粒度決定部250をさらに備える。粒度決定部250は、母数の粒度を決定する。すなわち粒度決定部250は、設定表650における母数Aの粒度および母数Bの粒度の少なくとも一方を決定する。
粒度決定部250はたとえば、演算装置100Aの演算能力を評価するためにベンチマークを実行し、得られたベンチマークのスコアに応じて粒度を設定する。また粒度決定部250は、演算装置100Aのハードウエア構成の情報を演算装置100Aのオペレーティングシステムやソフトウエアプラットフォームなどから取得し、ハードウエア構成から演算能力を推定して粒度を設定してもよい。粒度決定部250は、ベンチマークのスコアが高いほど、または推定した演算能力が高いほど粒度を細かく設定する。
本変形例によれば、演算装置100Aは、演算装置100Aの演算能力に基づきインデックス決定部240が決定するインデックスの粒度、すなわち前述の所定の数値範囲の幅を決定する。そのため演算装置100Aの処理能力が高いほどインデックスの粒度を細かくし、精度を高めることができる。
(変形例10)
分布表600において、インデックスの代わりに2つの母数を記載してもよい。すなわち分布表600は、2つの母数と累積度数との対応を示すテーブルであってもよい。なおこの2つの母数のそれぞれは、インデックス対応表500における記載と同様に、母数の値そのものを示すのではなく、所定の数値範囲に区分けした代表値である。
―第2の実施の形態―
図11~図12を参照して、演算装置の第2の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、インデックス対応表500を必須の構成としない点で、第1の実施の形態と異なる。
図11は、第2の実施の形態における演算装置100Bの機能構成図である。第1の実施の形態における構成からインデックス生成部211およびインデックス特定部221が削除され、両者の機能を兼ねるインデックス決定部240が明示されている。インデックス決定部240は、インデックス対応表500を参照することなくインデックスの値を特定する。すなわちインデックス決定部240は、予測器203が出力する2つの母数を用いて以下に説明するインデックス決定処理において数式演算を行いインデックスの値を特定する。
図12は、インデックス決定部240によるインデックス決定処理を示すフローチャートである。まずステップS401ではインデックス決定部240は、設定表650を参照して母数Aの「粒度」、「最小値」、「最大値」を取得する。続くステップS402ではインデックス決定部240は、母数Aを最小値と最大値でクリップし、出力Aを作成する。ニューラルネットワークの出力の値域は、一般に制限できないため、事前に作成した分布表600における母数Aの範囲外の値が出力される可能性があり、クリップにより制限する必要がある。クリップすることで、予測器203の予測した値より変化し、予測精度が悪化する可能性が生じるが、事前計算の分布表600の母数Aの値域が十分に大きければ無視できる。
出力Aについて、インデックス化のために、正の整数値とするため、母数Aの最小値を引く。そして、母数Aの粒度の逆数との積をとり、四捨五入にて整数化する。この整数化した値をサブインデックスA(Sub_Index A)と呼ぶ。続くステップS403では設定表650より母数Bの「粒度」、「最小値」、「最大値」を取得する。
続くステップS404ではインデックス決定部240は、予測の出力である母数Bを最小値と最大値でクリップし、出力Bを作成する。ニューラルネットワークの出力は、一般に制限できないため、事前に作成した分布表600の母数Bの範囲外の値が出力される可能性があり、クリップにより制限する必要がある。最大値と最小値のクリップにより、予測器203の予測した値が変化するため、予測精度が悪化する可能性が生じるが、事前計算する分布表600の母数Bの値域が十分に大きければ無視できる。
出力Bについて、インデックス化のために、正の整数値とするため、母数Bの最小値を引く。そして、母数Bの粒度の逆数との積をとり、四捨五入にて整数化する。この整数化した値を以下ではサブインデックスB(Sub_Index B)と呼ぶ。続くステップS405では、サブインデックスBの最大値(MAX_Sub_Index B)を「(母数Bの最大値―母数Bの最小値)×(母数Bの粒度の逆数)」として算出する。続くステップS406では、Index=Sub_Index A×(MAX_Sub_Index B+1)+Sub_Index B、という演算を行いインデックスを算出する。
上述した第2の実施の形態によれば、インデックス対応表500を作成しなくても第1の実施の形態と同様の作用効果が得られる。
上述した各実施の形態および変形例において、機能ブロックの構成は一例に過ぎない。別々の機能ブロックとして示したいくつかの機能構成を一体に構成してもよいし、1つの機能ブロック図で表した構成を2以上の機能に分割してもよい。また各機能ブロックが有する機能の一部を他の機能ブロックが備える構成としてもよい。
上述した各実施の形態および変形例において、演算装置100が有する機能を実現するプログラムは不図示のROMに格納されるとしたが、プログラムは記憶媒体114に格納されていてもよい。また、演算装置100が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースと演算装置100が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、たとえば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やFPGAにより実現されてもよい。
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
100、100A、100B…演算装置
201…エンコーダ
202…エントロピー符号化部
203…予測器
211…インデックス生成部
212…分布表生成部
221…インデックス特定部
222…確率特定部
230…圧縮ファイル生成部
240…インデックス決定部
301…デコーダ
302…エントロピー復号化部
500…インデックス対応表
600…分布表
650…設定表
700…圧縮ファイル
711…ヘッダー
712…バイナリ
プロセッサ112は、プログラムに従って動作し、対象データを処理する。プロセッサ112は、内部に複数のプロセッサコアを有し、それぞれプロセッサコアは独立してまたは協調してプログラムを処理する。プロセッサ112は、内部にDRAMコントローラを有し、プロセッサからのリクエストに応じてDRAM11よりデータを取得、またはDRAMにデータを格納する。プロセッサ112は、外部IOインタフェースを有し、バックエンドインタフェース113に接続する。プロセッサ112は、バックエンドインタフェース113を経由して二次記憶装置である記憶媒体114に指示を通知する。プロセッサ112は、センサデータの圧縮および伸張に関連する後述の各種処理を行う。
分布表600は、インデックスごとに、全てのシンボルの値ごとに対応する累積度数の値を格納したテーブルである。分布表600は、設定表650を参照して分布表生成部212により生成される。なお演算装置100が分布表生成部212を有することは必須の構成ではなく、分布表600が演算装置100以外であらかじめ作成されてもよい。また、設定表650に設定される様々な値を想定して演算装置100の外部であらかじめ複数の分布表600を作成しておき、設定表650の値に応じて適切な分布表600を読み込んでもよい。
インデックス特定部221は、インデックス対応表500を参照し、予測器203の出力である2つの母数の組合せに対応するインデックスの値を特定する。ただし予測器203は2つの母数を動小数点形式にて出力するので、母数をそのまま用いると組合せの数が膨大になる。そのためインデックス特定部221は、それぞれの母数を所定の数値範囲に区分けし、該当する数値範囲の代表値を算出する。この代表値の範囲が設定表650に最小値と最大値として記載されており、それぞれの所定範囲の広さが粒度として記載されている。図3に示す設定表650の例では、母数Aにおける所定の数値範囲はたとえば、-50を中心とする幅0.1の範囲、-49.9を中心とする幅0.1の範囲、-49.8を中心とする幅0.1の範囲、・・・、50.0を中心とする幅0.1の範囲、である。
なお、本実施の形態ではレンジコーダが累積度数表を用いて符号化を行うため、インデックスと累積度数との対応を示す分布表600を用いた。しかし分布表600は、インデックスと出現確率との関係を示す表とし、累積度数はインデックスと出現確率との関係ごとに算出してもよい。確率密度関数の計算をせずに確率または累積度数の何れかを取得可能であるなら、本実施の形態における高速化効果を得ることが可能である。
予測器203は、特徴量マップFの一部分を入力することで、入力とは異なる場所の特徴量マップFの一部分のシンボルにおける出現確率を予測する。このため、特徴量マップFを部分的に入力し、出現確率または累積度数分布を取得して、レンジコーダで入力とは異なる特徴量マップFの一部分を復号化する。こうして得られた特徴量マップFの一部分を再び予測器203に入力し、出現確率または累積度数分布を取得して、レンジコーダで入力とは異なる特徴量マップFの別の一部分を復号化する。このように、予測と復号化のループ処理を繰り返して、最終的に特徴量マップFの全体を得る。予測と復号化のループ処理を行うための最初の入力は、圧縮ファイル700に保存しておいてもよいし、ダミー入力であってもよい。
センササーバ102が演算装置100と同等の処理資源を有し、演算装置100と同様の圧縮処理や伸張処理を行ってもよい。また演算装置100およびセンササーバ102は、圧縮処理および伸張処理をプロセッサではなくGPUやFPGA等の処理資源にて実施してもよい。
また2つ以上の母数を有する確率密度関数を用い場合にそのうちの一つを定数とし、予測器203は一つの母数のみを出力するとしてもよい。たとえば、ガウス分布は一般に平均と標準偏差二つ母数として有するが、平均は0の定数とし、予測器203は標準偏差のみ出力するとしてもよい。
図12は、インデックス決定部240によるインデックス決定処理を示すフローチャートである。まずステップS401ではインデックス決定部240は、設定表650を参照して母数Aの「粒度」、「最小値」、「最大値」を取得する。続くステップS402ではインデックス決定部240は、母数Aを最小値と最大値でクリップし、出力Aを作成する。ニューラルネットワークの出力の値域は、一般に制限できないため、事前に作成した分布表600における母数Aの範囲外の値が出力される可能性があり、クリップにより制限する必要がある。クリップすることで、予測器203の予測した値変化し、予測精度が悪化する可能性が生じるが、事前計算の分布表600の母数Aの値域が十分に大きければ無視できる。


Claims (7)

  1. 予測器とエンコーダとデコーダとを有し、確率密度分布を用いてデータのエンコード及びデコードを行う演算装置において、
    学習処理と圧縮処理とのうち少なくとも圧縮処理を実行可能であり、
    前記学習処理にて作成した、ニューラルネットワークを用いて学習をすることで、母数とシンボル値の確率分布とを対応させた確率分布表を利用可能であり、
    前記圧縮処理では、
    前記予測器が、入力データから母数を算出し、
    前記エンコーダが、前記算出された母数と、前記確率分布表と、に基づくシンボル値の確率分布を用いて、前記入力データを圧縮する
    演算装置。
  2. 請求項1に記載の演算装置において、
    前記算出された母数と、前記確率分布表と、に基づいて、前記圧縮に用いるシンボル値の確率分布を選択する確率特定部を備える
    演算装置。
  3. 請求項1に記載の演算装置において、
    前記母数は、前記入力データの確率密度分布の平均と分散とであることを特徴とする
    演算装置。
  4. 請求項3に記載の演算装置において、
    前記学習処理を行い、
    前記学習処理では、前記ニューラルネットワークの結合係数を適正化して、前記確率密度分布を作成する
    演算装置。
  5. 請求項4に記載の演算装置において、
    前記学習処理では、前記分散が小さくなるように前記ニューラルネットワークの結合係数を適正化する
    演算装置。
  6. 請求項4に記載の演算装置において、
    前記学習処理では、
    入力データの複数のシンボルごとに、前記確率密度分布を作成するとともに、その母数を算出し、
    前記算出した複数の母数の最大値及び最小値に基づく分布範囲に基づいて所定の粒度で前記確率分布表に格納する母数を設定し、前記設定した母数に対応する確率密度分布を前記確率分布表に記載する
    演算装置。
  7. 予測器とエンコーダとデコーダとを有し、確率密度分布を用いてデータのエンコード及びデコードを行う演算装置が実行する圧縮方法であって、
    前記演算装置は、学習処理と圧縮処理とのうち少なくとも圧縮処理を実行可能であり、
    前記学習処理にて作成した、ニューラルネットワークを用いて学習をすることで、母数とシンボル値の確率分布とを対応させた確率分布表を利用可能であり、
    前記圧縮処理には、
    前記予測器が、入力データから母数を算出することと、
    前記エンコーダが、前記算出された母数と、前記確率分布表と、に基づくシンボル値の確率分布を用いて、前記入力データを圧縮することとを含む、圧縮方法。


JP2021026108A 2021-02-22 2021-02-22 演算装置、圧縮方法 Active JP7534239B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021026108A JP7534239B2 (ja) 2021-02-22 2021-02-22 演算装置、圧縮方法
US17/673,042 US20220269652A1 (en) 2021-02-22 2022-02-16 Computation apparatus and compression method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021026108A JP7534239B2 (ja) 2021-02-22 2021-02-22 演算装置、圧縮方法

Publications (2)

Publication Number Publication Date
JP2022127884A true JP2022127884A (ja) 2022-09-01
JP7534239B2 JP7534239B2 (ja) 2024-08-14

Family

ID=82899559

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021026108A Active JP7534239B2 (ja) 2021-02-22 2021-02-22 演算装置、圧縮方法

Country Status (2)

Country Link
US (1) US20220269652A1 (ja)
JP (1) JP7534239B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4524501B2 (ja) 2007-12-27 2010-08-18 株式会社アクセル 符号化システム、符号化方法、符号化プログラム、復号化システム、復号化方法および復号化プログラム
JP7185467B2 (ja) 2018-09-28 2022-12-07 Kddi株式会社 画像復号装置、画像符号化装置、画像処理システム及びプログラム
US20240078411A1 (en) * 2021-03-09 2024-03-07 Nec Corporation Information processing system, encoding device, decoding device, model learning device, information processing method, encoding method, decoding method, model learning method, and program storage medium

Also Published As

Publication number Publication date
US20220269652A1 (en) 2022-08-25
JP7534239B2 (ja) 2024-08-14

Similar Documents

Publication Publication Date Title
US11754685B2 (en) Point cloud compression using a space filling curve for level of detail generation
US11252441B2 (en) Hierarchical point cloud compression
US11895307B2 (en) Block-based predictive coding for point cloud compression
Liang et al. SZ3: A modular framework for composing prediction-based error-bounded lossy compressors
US20210319593A1 (en) Significant coefficient flag encoding for point cloud attribute compression
JP6728385B2 (ja) デジタルイメージ再圧縮
CN106937111B (zh) 优化图像压缩质量的方法及系统
CN112188197B (zh) 通道间点云属性解码方法、装置以及可读存储介质
CN110019865B (zh) 海量图片处理方法、装置、电子设备及存储介质
US9281838B1 (en) Common copy compression
JP7233875B2 (ja) 作成方法、コンピュータ及びプログラム
US20220392117A1 (en) Data compression and decompression system and method thereof
US20230086264A1 (en) Decoding method, encoding method, decoder, and encoder based on point cloud attribute prediction
US7463782B2 (en) Data encoding with an amplitude model and path between the data and corresponding decoding
Fan et al. Deep geometry post-processing for decompressed point clouds
JP2022127884A (ja) 演算装置、圧縮方法
Silver et al. The compression–error trade-off for large gridded data sets
WO2023205969A1 (zh) 点云几何信息的压缩、解压缩及点云视频编解码方法、装置
US11934353B2 (en) Storage system including encoder
KR20240025629A (ko) 광학 흐름를 이용한 비디오 압축
WO2022130477A1 (ja) 符号化装置、復号装置、符号化方法、復号方法およびプログラム
JP2023063166A (ja) 圧縮装置、復元装置及びモデルを生成する方法
US9406151B2 (en) Non-transitory computer-readable medium storing data storage program, non-transitory computer-readable medium storing data display program, data storage method, and data display method
US20240291503A1 (en) System and method for multi-type data compression or decompression with a virtual management layer
JP2022182225A (ja) データ処理システムおよびデータ処理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220228

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240424

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240801

R150 Certificate of patent or registration of utility model

Ref document number: 7534239

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150