JP2021174404A - データ生成装置、訓練装置及びデータ生成方法 - Google Patents

データ生成装置、訓練装置及びデータ生成方法 Download PDF

Info

Publication number
JP2021174404A
JP2021174404A JP2020079814A JP2020079814A JP2021174404A JP 2021174404 A JP2021174404 A JP 2021174404A JP 2020079814 A JP2020079814 A JP 2020079814A JP 2020079814 A JP2020079814 A JP 2020079814A JP 2021174404 A JP2021174404 A JP 2021174404A
Authority
JP
Japan
Prior art keywords
data
decompression
operation unit
intermediate data
processing
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.)
Pending
Application number
JP2020079814A
Other languages
English (en)
Inventor
晃大 植吉
Kodai UEYOSHI
ヨハネス マクシミリアン キューン
Maximilian Kuehn Johannes
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 JP2020079814A priority Critical patent/JP2021174404A/ja
Priority to US17/239,833 priority patent/US20210335018A1/en
Publication of JP2021174404A publication Critical patent/JP2021174404A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/60Rotation of a whole image or part thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20048Transform domain processing
    • G06T2207/20052Discrete cosine transform [DCT]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Abstract

【課題】圧縮ファイルから解凍データを生成する際の、処理効率を向上させるデータ生成装置、訓練装置及びデータ生成方法を提供する。【解決手段】サーバ装置において、訓練用プロセッサの前処理コア112は、圧縮ファイルを解凍するデータ生成装置であって、解凍完了前の中間データを操作する操作部(切り出し操作部410、リサイズ操作部420、フリップ操作部430)と、操作部よりも後段に位置し、操作された中間データから解凍データを生成する生成部とを有する。圧縮ファイルはJPEGファイルであり、中間データはハフマン複合化の後のデータである。操作部は、中間データに対して、切り出し操作、リサイズ操作、フリップ操作を行う。【選択図】図4

Description

本開示は、データ生成装置、訓練装置及びデータ生成方法に関する。
従来より、画像データに対してデータ拡張処理を施し、訓練用のデータを生成したうえで、訓練用モデルの訓練を行うサーバ装置が知られている。当該サーバ装置では、例えば、画像データとして、所定の方式で圧縮された圧縮ファイルを処理する場合、
・はじめに、CPU(Central Processing Unit)が当該圧縮ファイルに対して解凍処理を行い、解凍データを生成し、
・続いて、専用のプロセッサ(訓練装置)が当該解凍データに対してデータ拡張処理を施す(あるいは、CPUが当該解凍データに対して一部のデータ拡張処理を施し、専用のプロセッサが当該解凍データに対して他のデータ拡張処理を施す)、
ことで、訓練用のデータを生成し、訓練用モデルの訓練を行う。
一方で、CPUによる圧縮ファイルの解凍処理には一定程度の時間を要する。このため、訓練用モデルの訓練を行う際、圧縮ファイルに基づいて生成される訓練用のデータを利用しようとすると、訓練用のデータの生成がボトルネックとなって、訓練時の計算性能が低下するとともに、サーバ装置全体の性能が制限される。
特許第6569047号公報 特開2008−234627号公報 特開2019−32821号公報 特表2009−508452号公報 特表2008−533787号公報
本開示は、圧縮ファイルから解凍データを生成する際の、処理効率を向上させるデータ生成装置、訓練装置及びデータ生成方法を提供する。
本開示の一態様によるデータ生成装置は、例えば、以下のような構成を有する。即ち、
圧縮ファイルを解凍するデータ生成装置であって、
解凍完了前の中間データを操作する操作部と、
操作された前記中間データから解凍データを生成する生成部とを有する。
サーバ装置のハードウェア構成の一例を示す図である。 一般的なJPEGエンコーダがJPEGファイルを生成するまでの処理の概要を説明するための図である。 一般的なJPEGデコーダがJPEGファイルを解凍し、解凍データを生成するまでの処理の概要を説明するための図である。 前処理コアの機能構成を示す図である。 切り出し操作部による切り出し処理の具体例を示す図である。 リサイズ操作部によるリサイズ処理の具体例を示す図である。 フリップ操作部による反転処理の具体例を示す図である。 前処理コアの実行例を示す図である。
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省略する。
[第1の実施形態]
<サーバ装置のハードウェア構成>
はじめに、第1の実施形態に係るデータ生成方法が実現されるサーバ装置のハードウェア構成について説明する。図1は、サーバ装置のハードウェア構成の一例を示す図である。図1に示すように、サーバ装置100は、構成要素として、例えば、CPU101、主記憶装置(メモリ)102、補助記憶装置103、訓練用プロセッサ104、ネットワークインタフェース105、デバイスインタフェース106を有する。サーバ装置100は、これらの構成要素がバス107を介して接続されたコンピュータとして実現される。
なお、図1の例では、サーバ装置100は、各構成要素を1個ずつ備えるものとして示しているが、サーバ装置100は、同じ構成要素を複数備えていてもよい。また、図1の例では、1台のサーバ装置100が示されているが、複数のサーバ装置それぞれがネットワークインタフェース105等を介して通信することで全体の処理を実行する分散コンピューティングの形態をとってもよい。つまり、サーバ装置100は、1または複数の記憶装置に記憶された命令を1台または複数台のコンピュータが実行することで機能を実現するシステムとして構成されてもよい。また、端末から送信された各種データをクラウド上に設けられた1台または複数台のサーバ装置で処理し、処理結果を端末に送信する構成であってもよい。
サーバ装置100の各種演算は、1または複数の訓練用プロセッサ104を用いて、または、通信ネットワーク130を介して通信する複数台のサーバ装置を用いて並列処理で実行されてもよい。また、各種演算は、訓練用プロセッサ104内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部または全部は、通信ネットワーク130を介してサーバ装置100と通信可能なクラウド上に設けられた外部装置120により実行されてもよい。このように、サーバ装置100は、1台または複数台のコンピュータによる並列コンピューティングの形態をとってもよい。なお、本実施形態の場合、これらの分散、並列処理は、例えば複数の画像データを処理する際に有効であり、1つの画像データに対して、分散、並列処理を実行することを意図するものではない。
続いて、サーバ装置100の各構成要素について説明する。CPU101は、補助記憶装置103にインストールされている各種プログラムを実行する演算デバイスである。
主記憶装置102は、CPU101が実行する命令及び各種データ等を記憶する記憶装置であり、主記憶装置102に記憶された各種データがCPU101により読み出される。補助記憶装置103は、主記憶装置102以外の記憶装置である。なお、これらの記憶装置は、各種データを格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ、不揮発性メモリのいずれでもよい。サーバ装置100において各種データを保存するための記憶装置は、主記憶装置102又は補助記憶装置103により実現されてもよく、CPU101に内蔵される内蔵メモリにより実現されてもよい。
また、1つの主記憶装置102に対して、複数のCPU101が接続(結合)されてもよいし、単数のCPU101が接続されてもよい。1つのCPU101に対して、複数の主記憶装置102が接続(結合)されてもよい。サーバ装置100が、少なくとも1つの主記憶装置102と、この少なくとも1つの主記憶装置102に接続(結合)される複数のCPU101とで構成される場合、複数のCPU101のうち少なくとも1つのCPUが、少なくとも1つの主記憶装置102に接続(結合)される構成を含んでもよい。また、複数台のサーバ装置100に含まれる主記憶装置102とCPU101とによって、この構成が実現されてもよい。さらに、主記憶装置102がCPUと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
訓練用プロセッサ104は訓練装置の一例であり、電子回路(処理回路、Processing circuit、Processing circuitry、GPU、FPGA、又はASIC等)であってもよい。また、訓練用プロセッサ104は、専用の処理回路を含む半導体装置等であってもよい。なお、訓練用プロセッサ104は、電子論理素子を用いた電子回路に限定されるものではなく、光論理素子を用いた光回路により実現されてもよい。また、訓練用プロセッサ104は、量子コンピューティングに基づく演算機能を含むものであってもよい。
訓練用プロセッサ104は、補助記憶装置103に記憶された圧縮ファイルを読み出し、データ拡張処理が施された解凍データを生成する。また、訓練用プロセッサ104は、生成した解凍データを用いてネットワーク、例えば、DNN(Deep Neural Network:深層ニューラルネットワーク)の訓練を行う。ただし、訓練用プロセッサ104により訓練が行われるネットワークはDNNに限定されず、DNN以外のネットワークであってもよい(以下同様)。
具体的には、訓練用プロセッサ104は、IO111、前処理コア112、メモリ113、DNN(Deep Neural Network)アクセラレータコア114を有する。IO111は入力デバイスの一例であり、バス107を介して、補助記憶装置103に格納された圧縮ファイル(本実施形態においては、JPEGファイル)を読み出し、前処理コア112に入力する。
前処理コア112はデータ生成装置または生成デバイスの一例であり、圧縮ファイルに対して解凍処理及びデータ拡張処理を施すことで、データ拡張処理が施された解凍データを生成する。また、前処理コア112は、生成した解凍データを、訓練用のデータとして出力し、メモリ113に格納する。
このように、サーバ装置100では、データ拡張処理が施された解凍データを、前処理コア112にて生成する。これにより、一般的なサーバ装置とは異なり、データ拡張処理が施された解凍データを、CPU101を介することなく生成することが可能になる。この結果、サーバ装置100によれば、圧縮ファイルに基づいて生成される訓練用のデータを利用して訓練用モデルの訓練を行う際、訓練用のデータの生成がボトルネックとなって、訓練時の性能が低下するといった事態を回避することができる。また、サーバ装置100全体の性能が制限されるといった事態も回避することができる。
メモリ113は、前処理コア112にて生成された、データ拡張処理が施された解凍データを格納する。
DNNアクセラレータコア114はアクセラレータの一例であり、メモリ113に格納された訓練用のデータを所定単位ずつ入力することで、例えばDNNを実行し、DNNの重みパラメータを更新することで、DNNの訓練(深層学習)を行う。
ネットワークインタフェース105は、無線又は有線により、通信ネットワーク130に接続するためのインタフェースである。ネットワークインタフェース105には、既存の通信規格に適合したもの等、適切なインタフェースが用いられる。ネットワークインタフェース105により、通信ネットワーク130を介して接続された外部装置120と各種データのやり取りが行われてもよい。なお、通信ネットワーク130は、WAN(Wide Area Network)、LAN(Local Area Network)、PAN(Personal Area Network)等のいずれか、又は、それらの組み合わせであってもよく、コンピュータと外部装置120との間で情報のやり取りが行われるものであればよい。WANの一例としてインタネット等があり、LANの一例としてIEEE802.11やイーサネット(登録商標)等があり、PANの一例としてBluetooth(登録商標)やNFC(Near Field Communication)等がある。
外部装置120はコンピュータと通信ネットワーク130を介して接続されている装置である。外部装置140はコンピュータと直接接続されている装置である。
外部装置120または外部装置140は、一例として、入力装置であってもよい。入力装置は、例えば、カメラ、マイクロフォン、モーションキャプチャ、各種センサ、キーボード、マウス、又はタッチパネル等のデバイスであり、取得した情報をコンピュータに与える。また、パーソナルコンピュータ、タブレット端末、又はスマートフォン等の入力部とメモリとプロセッサとを備えるデバイス等であってもよい。
また、外部装置120または外部装置140は、一例として、出力装置であってもよい。出力装置は、例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、又は有機EL(Electro Luminescence)パネル等の表示装置であってもよいし、音声等を出力するスピーカ等であってもよい。また、パーソナルコンピュータ、タブレット端末、又はスマートフォン等の出力部とメモリとプロセッサとを備えるデバイス等であってもよい。
また、外部装置120または外部装置140は、記憶装置(メモリ)であってもよい。例えば、外部装置120はネットワークストレージ等であってもよく、外部装置140はHDD等のストレージであってもよい。
また、外部装置120または外部装置140は、サーバ装置100の構成要素の一部の機能を有する装置でもよい。つまり、コンピュータは、外部装置120または外部装置140の処理結果の一部又は全部を送信または受信してもよい。
<圧縮ファイルの説明>
次に、訓練用プロセッサ104により処理される圧縮ファイルの一例として、JPEGファイルについて説明する。具体的には、一般的なJPEGエンコーダが、RGB形式の画像データを圧縮し、JPEGファイルを生成するまでの処理と、一般的なJPEGデコーダが、JPEGファイルを解凍し、解凍データを出力するまでの処理について説明する。
(1)JPEGファイルを生成する処理の流れ
はじめに、JPEGファイルを生成するまでの一般的な処理の流れについて説明する。図2は、一般的なJPEGエンコーダがJPEGファイルを生成するまでの処理の概要を説明するための図である。
図2に示すように、RGB形式の画像データ201が入力されると、JPEGエンコーダの色変換部210は、RGB形式の画像データ201をYCrCb形式の画像データ211に変換する。
続いて、JPEGエンコーダのサンプリング部220は、YCrCb形式の画像データ211をサンプリングする。具体的には、サンプリング部220は、YCrCb形式の画像データ211のうち、輝度情報(Y)はそのままとし、色相情報(Cr、Cb)を1画素おきに間引きする。
続いて、JPEGエンコーダのブロック分割部230は、サンプリング後のYCrCb形式の画像データ221を、8画素×8画素を1ブロックとするブロックに分割する。以降、JPEGエンコーダでは、輝度情報(Y)のブロック4に対して、色相情報(Cr)のブロック1、色相情報(Cb)のブロック1を一単位(MCU)231とする処理単位で処理を行う。
続いて、JPEGエンコーダのDCT部240は、MCU231に含まれる各ブロックをDCT(Discrete Cosine Transform)処理し、DCT処理後のMCU241を生成する。
続いて、JPEGエンコーダのジグザグスキャン部250は、DCT処理後のMCU241に含まれる各ブロックについてジグザグスキャンを行い(一列ごとに順にスキャンを行い)、DCT処理後のMCU241に含まれる各ブロックのデータを一列に整列させる(符号251参照)。
続いて、JPEGエンコーダの量子化部260は、一列に整列されたデータを量子化するとともに、量子化テーブル261を生成する。JPEGエンコーダの量子化部260は、生成した量子化テーブル261を、JPEGファイル280のヘッダに書き込む。
続いて、JPEGエンコーダのハフマン符号化部270は、量子化されたデータをハフマン符号化し、圧縮画像データを生成する。JPEGエンコーダのハフマン符号化部270は、生成した圧縮画像データをJPEGファイル280の本体部に書き込む。更に、JPEGエンコーダのハフマン符号化部270は、ハフマンテーブル271を生成し、JPEGファイル280のヘッダに書き込む。
JPEGエンコーダによる以上の処理により、JPEGファイル280が生成される。
(2)JPEGファイルを解凍する処理の流れ
次に、JPEGファイルを解凍して解凍データを生成するまでの一般的な処理の流れについて説明する。図3は、一般的なJPEGデコーダがJPEGファイルを解凍し、解凍データを生成するまでの処理の概要を説明するための図である。
図3に示すように、JPEGファイル280が入力されると、JPEGデコーダのハフマン復号部310は、JPEGファイルのヘッダからハフマンテーブル271を読み出し、圧縮画像データに対してハフマン復号処理を行う。
続いて、JPEGデコーダの逆量子化部320は、JPEGファイルのヘッダから量子化テーブル261を読み出し、ハフマン復号部310によりハフマン復号処理が行われた圧縮画像データに対して、逆量子化処理を行う。
続いて、JPEGデコーダの逆ジグザグスキャン部330は、逆量子化部320により逆量子化処理が行われることで生成された一列のデータに対して、逆ジグザグスキャン処理を行うことで(複数の列にする処理を行うことで)、8画素×8画素のブロックを生成する。
続いて、JPEGデコーダの逆DCT部340は、各ブロックについて、MCU単位で逆DCT処理を行う。
続いて、JPEGデコーダのブロック結合部350は、逆DCT部340により、MCU単位で逆DCT処理が行われた各ブロックを結合し、YCrCb形式の画像データを生成する。
続いて、JPEGデコーダの補間部360は、ブロック結合部350により生成されたYCrCb形式の画像データについて、色相情報(Cr、Cb)を補間する。
続いて、JPEGデコーダの色変換部370は、補間部360により色相情報(Cr、Cb)が補間されたYCrCb形式の画像データを、RGB形式の画像データに変換することで、解凍データを生成する。
JPEGデコーダによる以上の処理により、JPEGファイル280が解凍され、解凍データが生成される。
<前処理コアにおいて実現される機能>
次に、訓練用プロセッサ104の前処理コア112において実現される機能について説明する。上述したとおり、前処理コア112では、圧縮ファイルに対して解凍処理及びデータ拡張処理を施すことで、データ拡張処理が施された解凍データを生成する。
このとき、前処理コア112では、圧縮ファイルに対する解凍処理が完了してから、解凍データに対してデータ拡張処理を施す代わりに、圧縮ファイルに対する解凍処理が完了する前のデータ(以下、"中間データ"と称す)に対して、データ拡張処理を施す。つまり、前処理コア112は、一般的なJPEGデコーダの機能の間に、データ拡張処理のための機能が組み込まれた構成を有する。
このような構成とすることで、前処理コア112によれば、圧縮ファイルに基づいて、データ拡張処理が施された解凍データを生成する際の、処理効率を向上させることができる。
図4は、本実施形態の前処理コアの機能構成を示す図である。図4において、ハフマン復号部310、逆量子化部320、逆ジグザグスキャン部330、逆DCT部340、ブロック結合部350、補間部360、色変換部370は、一般的なJPEGデコーダに含まれる機能と同じであり、図3を用いて説明済みである。このため、ここでは説明を省略する。
本実施形態の前処理コア112は、更にデータ拡張処理のための機能を有する操作部として、切り出し操作部410、リサイズ操作部420、フリップ操作部430を有する。
切り出し操作部410は、JPEGファイルに対する解凍処理が完了する前の中間データの一部を切り出す操作(切り出し処理)を行う。切り出し操作部410は、ハフマン復号部310より後段の任意の位置に配置される。
ここで、切り出し操作部410を上流側(ハフマン復号部310に近い側)に配置した場合、切り出し操作部410より下流側に位置する各部は、切り出し操作部410により切り出された一部の中間データを処理対象として処理を行うことになる。このため、解凍処理が完了した画像データに対して切り出し処理を行う場合と比較して、解凍処理が完了するまでの間に処理するデータのデータ量を削減でき、効率的な処理を実現することができる。つまり、切り出し操作部410は、他の操作部より上流側に配置したほうが、計算の削減効果は大きくなる。
なお、切り出し操作部410は、ブロック結合部350より上流側に配置された場合、中間データの切り出しを、ブロック単位で行う。一方、ブロック結合部350より下流側に配置された場合、切り出し操作部410は、中間データの切り出しを、画素単位で行う。
リサイズ操作部420は、中間データのサイズを縮小または拡大する操作(リサイズ処理)を行う。リサイズ操作部420は、逆DCT部340の位置に配置され、逆DCT部340による逆DCT処理の際、例えば、高周波成分をカットすることで、中間データのサイズを縮小するリサイズ処理を行う。なお、リサイズ操作部420によるリサイズ処理により、中間データのサイズが縮小された場合、切り出し操作部410同様、以降に、処理されるデータ量が削減されるため、効率的な処理を実現することができる。ただし、中間データのサイズを縮小するリサイズ処理を行った場合、解凍完了後の解凍データは、リサイズ操作部420によるリサイズ処理が行われない場合と比較して、画質が低下する。
また、リサイズ操作部420は、サイズを縮小するリサイズ処理に加えて、例えば、Bilinear Interpolation法やNearest Neighbor法等により、サイズを拡大するリサイズ処理も行う。なお、Bilinear Interpolation法やNearest Neighbor法等により、サイズを拡大するリサイズ処理を行う場合にあっては、リサイズ操作部420は、逆DCT部340の位置に配置されている必要はない。例えば、リサイズ操作部420は、逆DCT部340以降の任意の位置に配置されてもよい。
フリップ操作部430は、中間データの左右の位置を反転する操作(反転処理)を行う。フリップ操作部430は、逆DCT部340より後段の任意の位置に配置され、中間データの読み出し方向を逆方向にすることで、反転処理を行う。このように、中間データに対して反転処理を行うことで、解凍処理が完了した解凍データに対して反転処理を行う場合と比較して、反転処理を効率的に行うことができる。
なお、前処理コア112において、データ拡張処理のためのいずれかの機能(切り出し操作部410、リサイズ操作部420、フリップ操作部430のいずれか)よりも後段に位置する、解凍処理を行う各部を、本実施形態では"生成部"と総称する。つまり、生成部は、中間データに対して切り出し処理、リサイズ処理、反転処理のいずれかが行われてから、解凍データが生成されるまでの間において、解凍処理を行うために実現される任意の機能を指す。
<データ拡張処理のための機能による処理の具体例>
次に、切り出し操作部410による切り出し処理、リサイズ操作部420によるリサイズ処理、フリップ操作部430による反転処理の具体例について説明する。
(1)切り出し操作部による切り出し処理の具体例
図5は、切り出し操作部による切り出し処理の具体例を示す図である。図5に示すように、切り出し操作部410が、ハフマン復号部310と逆量子化部320との間の位置に配置された場合、切り出し操作部410には、ブロック単位の中間データが入力される。このため、切り出し操作部410では、中間データに含まれる複数のブロックのうち、所定の領域に含まれる所定数のブロックを切り出すことで切り出し処理を行う。
図5の例は、切り出し操作部410が領域500に含まれる6個のブロックを切り出した様子を示している。なお、複数のブロックのうち、切り出し操作部410が切り出す領域の位置、領域の大きさ(つまり、ブロックの数)、領域の形は、実際は、DNNの訓練を行うDNNアクセラレータコア114側からの要求によって決まるものとする。ただし、通常は任意となることも多く、任意の場合にあっては、例えば、切り出す領域の大きさは乱数に基づいて決定してもよい。
また、切り出し操作部410は、1の中間データに対して、切り出す領域の位置、領域の大きさ、領域の形を変えて、複数回繰り返して、切り出し処理を行ってもよい。
(2)リサイズ操作部によるリサイズ処理の具体例
図6は、リサイズ操作部によるリサイズ処理の具体例を示す図であり、中間データのサイズを拡大するリサイズ処理を行う際に使用されるメモリ量を説明するための図である。図6に示すように、リサイズ操作部420では、逆DCT部340による逆DCT処理の際、例えば、輝度情報(Y)については、16画素×16画素のブロックずつ、逐次的にリサイズ処理を行う。なお、図6の例は、ブロック600が、リサイズ処理を行う対象ブロックである。
Bilinear Interpolation法やNearest Neighbor法の場合、ブロック600のサイズを拡大するリサイズ処理を行うにあたっては、
・当該ブロック600と、
・隣接する左側ブロックの最終列(602)と、
・隣接する上側ブロックの最終行(601)と、
をメモリに保存する。
したがって、ブロック600のサイズを拡大するリサイズ処理を行うにあたり、
・16画素×16画素×3(Y、Cr、Cb)、
・16画素×1列×3(Y、Cr、Cb)、
・1920画素×1行×3(Y、Cr、Cb)、
をメモリに保存する。つまり、リサイズ操作部420では、1024[KB]分のメモリを使用しながら、16画素×16画素のブロックずつ、逐次的にリサイズ処理を行う。
このように、リサイズ操作部420では、中間データのサイズを拡大するリサイズ処理を、省メモリで実現することができる。
(3)フリップ操作部による反転処理の具体例
図7は、フリップ操作部による反転処理の具体例を示す図である。図7に示すように、フリップ操作部430が、色変換部370の後段の位置に配置された場合、フリップ操作部430には、RGB形式の画像データが入力される。このとき、フリップ操作部430では、RGB形式の画像データの各画素の読み出しを、例えば、読み出し方向を逆方向(右端の画素から左端の画素の方向)にして行う。これにより、フリップ操作部430では、入力されたRGB形式の画像データを、左右反転して出力することができる。
<前処理コアの実行例>
次に、前処理コア112の実行例について説明する。図8は、前処理コアの実行例を示す図である。図8に示すように、IO111が補助記憶装置103よりJPEGファイル280を読み出すと、前処理コア112では、データ拡張処理が施された解凍データを生成する。なお、図8において、解凍データ800は、JPEGファイル280に対してデータ拡張処理を施すことなく解凍処理を行った場合の解凍データを示している。
一方、図8において、解凍データ801〜807は、データ拡張処理が施された解凍データの一例である。このうち、データ拡張処理が施された解凍データ801は、JPEGファイル280を解凍する際、切り出し操作部410による切り出し処理が行われた解凍データである。具体的には、データ拡張処理が施された解凍データ801は、解凍データ800の一部に相当する画像データである。
また、データ拡張処理が施された解凍データ802は、JPEGファイル280を解凍する際、リサイズ操作部420によりサイズを縮小するリサイズ処理が行われた解凍データである。具体的には、データ拡張処理が施された解凍データ802は、解凍データ801を縮小した画像データに相当する画像データである。
また、データ拡張処理が施された解凍データ803は、JPEGファイル280を解凍する際、フリップ操作部430による反転処理が行われた解凍データである。具体的には、データ拡張処理が施された解凍データ803は、解凍データ800の左右を反転させた画像データに相当する画像データである。
また、データ拡張処理が施された解凍データ804は、JPEGファイル280を解凍する際、
・切り出し操作部410による切り出し処理、及び、
・フリップ操作部430による反転処理、
が行われた解凍データである。具体的には、データ拡張処理が施された解凍データ804は、解凍データ800の一部を切り出し、左右反転させた画像データに相当する画像データである。
また、データ拡張処理が施された解凍データ805は、JPEGファイル280を解凍する際、
・切り出し操作部410による切り出し処理、及び、
・リサイズ操作部420によりサイズを縮小するリサイズ処理、
が行われた解凍データである。具体的には、データ拡張処理が施された解凍データ805は、解凍データ800の一部を切り出し、縮小した画像データに相当する画像データである。
また、データ拡張処理が施された解凍データ806は、JPEGファイル280を解凍する際、
・リサイズ操作部420によりサイズを縮小するリサイズ処理、及び、
・フリップ操作部430による反転処理、
が行われた解凍データである。具体的には、データ拡張処理が施された解凍データ806は、解凍データ800を縮小して左右を反転させた画像データに相当する画像データである。
また、データ拡張処理が施された解凍データ807は、JPEGファイル280を解凍する際、
・切り出し操作部410による切り出し処理、及び
・リサイズ操作部420によりサイズを縮小するリサイズ処理、及び
・フリップ操作部430による反転処理、及び
が行われた解凍データである。具体的には、データ拡張処理が施された解凍データ807は、解凍データ800の一部を切り出し、縮小して左右を反転させた画像データに相当する画像データである。
このように、前処理コア112では、JPEGファイル280を解凍する際に、あわせてデータ拡張処理を施す。このため、JPEGファイルに対する解凍処理が完了した後にデータ拡張処理を施す場合と比較して、データ拡張処理が施された解凍データを生成する際の処理効率を向上させることができる。
<まとめ>
以上の説明から明らかなように、サーバ装置100では、訓練用プロセッサ(訓練装置)に前処理コア(データ生成装置)を設け、CPUを介することなく、前処理コアにてデータ拡張処理が施された解凍データを生成する構成とした。その際、前処理コア(データ生成装置)では、JPEGファイルに対する解凍処理が完了してから、データ拡張処理を施す代わりに、
・JPEGファイルを解凍する際、解凍完了前の中間データを操作し、
・操作された中間データから解凍データを生成する、
構成とした。
これにより、第1の実施形態に係る前処理コア(データ生成装置)によれば、圧縮ファイルから解凍データを生成する際の、処理効率を向上させることが可能になる。
また、第1の実施形態に係る訓練用プロセッサ(訓練装置)では、データ拡張処理が施された解凍データを用いて訓練用モデルの訓練を行うことができるよう、
・圧縮ファイルを読み出すIO(入力デバイス)と、
・JPEGファイルを解凍する際、解凍完了前の中間データを操作し、操作した中間データから解凍データを生成する前処理コア(生成デバイス)と、
・生成された解凍データを入力して、深層ニューラルネットワークを実行するDNNアクセラレータコア(アクセラレータ)と、
を配する構成とした。
これにより、第1の実施形態に係る訓練用プロセッサ(訓練装置)によれば、圧縮ファイルから解凍データを生成する際の、処理効率を向上させることが可能になるとともに、生成した解凍データを用いて訓練用モデルの訓練を行うことが可能になる。
[第2の実施形態]
上記第1の実施形態では、前処理コア112を訓練用プロセッサ104に搭載するものとして説明した。しかしながら、前処理コア112は、訓練用プロセッサ104とは別体の装置として設けられてもよい。
また、上記第1の実施形態では、前処理コア112により生成された、データ拡張処理が施された解凍データを、訓練用のデータとして用いる際のメモリレイアウト(N(番号)、C(チャネル)、H(高さ)、W(幅)の順番)については特に言及しなかった。
しかしながら、前処理コア112により生成された、データ拡張処理が施された解凍データを、訓練用のデータとして用いる際、訓練に適したメモリレイアウトに並び替える構成としてもよい。なお、並び替えは、例えば、CPU101が実行してもよい。その場合、前処理コア112は、DNNアクセラレータコア114の入力フォーマットに応じた出力フォーマットで解凍データを出力するように構成される。前処理コア112は、生成データがストリーム(逐次的)に出力されるため、任意のメモリレイアウトに制御することができる(当該メモリレイアウトは、訓練用プロセッサ104において厳密に制御される)。なお、メモリレイアウトの制御は、上記のようにCPU101により実行されてもよいが、前処理コア112に直接組み込まれた機能により実行されてもよい。
また、上記第1の実施形態では、前処理コア112により生成された、データ拡張処理が施された解凍データを、訓練用のデータとして用いるものとして説明したが、推論用のデータとして用いてもよい。なお、推論用のデータとして用いる場合にあっては、前処理コア112により生成された、データ拡張処理が施された解凍データを、(メモリ113ではなく)DNNアクセラレータコア114に直接入力するように構成してもよい。
また、上記第1の実施形態では、圧縮ファイルとして、JPEGファイルを用いる場合について説明したが、JPEGファイル以外の圧縮ファイルを用いてもよい。
[その他の実施形態]
本明細書(請求項を含む)において、「a、bおよびcの少なくとも1つ(一方)」又は「a、b又はcの少なくとも1つ(一方)」の表現(同様な表現を含む)が用いられる場合は、a、b、c、a−b、a−c、b−c、又はa−b−cのいずれかを含む。また、a−a、a−b−bb、a−a−b−b−c−c等のように、いずれかの要素について複数のインスタンスを含んでもよい。さらに、a−b−c−dのようにdを有する等、列挙された要素(a、b及びc)以外の他の要素を加えることも含む。
また、本明細書(請求項を含む)において、「データを入力として/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)が用いられる場合は、特に断りがない場合、各種データそのものを入力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を入力として用いる場合を含む。また「データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合、当該データのみに基づいて当該結果が得られる場合を含むとともに、当該データ以外の他のデータ、要因、条件、及び/又は状態等にも影響を受けて当該結果が得られる場合をも含み得る。また、「データを出力する」旨が記載されている場合、特に断りがない場合、各種データそのものを出力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を出力とする場合も含む。
また、本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語が用いられる場合は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。
また、本明細書(請求項を含む)において、「AがBするよう構成される(A configured to B)」との表現が用いられる場合は、要素Aの物理的構造が、動作Bを実行可能な構成を有するとともに、要素Aの恒常的(permanent)又は一時的(temporary)な設定(setting/configuration)が、動作Bを実際に実行するように設定(configured/set)されていることを含んでよい。例えば、要素Aが汎用プロセッサである場合、当該プロセッサが動作Bを実行可能なハードウェア構成を有するとともに、恒常的(permanent)又は一時的(temporary)なプログラム(命令)の設定により、動作Bを実際に実行するように設定(configured)されていればよい。また、要素Aが専用プロセッサ又は専用演算回路等である場合、制御用命令及びデータが実際に付属しているか否かとは無関係に、当該プロセッサの回路的構造が動作Bを実際に実行するように構築(implemented)されていればよい。
また、本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」及び「有する(having)」等)が用いられる場合は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。
また、本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」又は「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。
また、本明細書において、ある実施例の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施例についても当該効果が得られると理解されるべきである。但し当該効果の有無は、一般に種々の要因、条件、及び/又は状態等に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件、及び/又は状態等が満たされたときに実施例に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。
また、本明細書(請求項を含む)において、複数のハードウェアが所定の処理を行う場合、各ハードウェアが協働して所定の処理を行ってもよいし、一部のハードウェアが所定の処理の全てを行ってもよい。また、一部のハードウェアが所定の処理の一部を行い、別のハードウェアが所定の処理の残りを行ってもよい。本明細書(請求項を含む)において、「1又は複数のハードウェアが第1の処理を行い、前記1又は複数のハードウェアが第2の処理を行う」等の表現が用いられている場合、第1の処理を行うハードウェアと第2の処理を行うハードウェアは同じものであってもよいし、異なるものであってもよい。つまり、第1の処理を行うハードウェア及び第2の処理を行うハードウェアが、前記1又は複数のハードウェアに含まれていればよい。なお、ハードウェアは、電子回路、又は、電子回路を含む装置等を含んでよい。
また、本明細書(請求項を含む)において、複数の記憶装置(メモリ)がデータの記憶を行う場合、複数の記憶装置(メモリ)のうち個々の記憶装置(メモリ)は、データの一部のみを記憶してもよいし、データの全体を記憶してもよい。
以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更、置き換え及び部分的削除等が可能である。例えば、前述した全ての実施形態において、説明に用いた数値は、一例として示したものであり、これらに限られるものではない。また、実施形態における各動作の順序は、一例として示したものであり、これらに限られるものではない。
100 :サーバ装置
101 :プロセッサ
102 :主記憶装置
103 :補助記憶装置
104 :訓練用プロセッサ
105 :ネットワークインタフェース
106 :デバイスインタフェース
111 :IO
112 :前処理コア
113 :メモリ
114 :DNNアクセラレータコア
410 :切り出し操作部
420 :リサイズ操作部
430 :フリップ操作部
801〜807 :解凍データ

Claims (7)

  1. 圧縮ファイルを解凍するデータ生成装置であって、
    解凍完了前の中間データを操作する操作部と、
    操作された前記中間データから解凍データを生成する生成部と
    を有するデータ生成装置。
  2. 前記操作部は、少なくとも、
    前記中間データの一部を切り出す切り出し操作部、
    前記中間データのサイズを変更するリサイズ操作部、
    前記中間データを反転するフリップ操作部
    のいずれかを有する、請求項1に記載のデータ生成装置。
  3. 前記圧縮ファイルがJPEGファイルである場合、前記切り出し操作部は、少なくとも、該JPEGファイルをハフマン復号した後の中間データの一部を切り出す、請求項2に記載のデータ生成装置。
  4. 前記圧縮ファイルがJPEGファイルである場合、前記リサイズ操作部は、前記中間データを逆DCT処理する際に、前記中間データのサイズを変更する、請求項2に記載のデータ生成装置。
  5. 前記圧縮ファイルがJPEGファイルである場合、前記フリップ操作部は、少なくとも逆DCT処理された後の中間データを反転する、請求項2に記載のデータ生成装置。
  6. 圧縮ファイルを読み出す入力デバイスと、
    読み出した圧縮ファイルを解凍する際に、解凍完了前の中間データを操作し、操作した該中間データから解凍データを生成する生成デバイスと、
    生成された解凍データを入力して、深層ニューラルネットワークを実行するアクセラレータと
    を有する訓練装置。
  7. 圧縮ファイルを解凍するデータ生成装置におけるデータ生成方法であって、
    解凍完了前の中間データを操作する操作工程と、
    操作された前記中間データから解凍データを生成する生成工程と
    を有するデータ生成方法。
JP2020079814A 2020-04-28 2020-04-28 データ生成装置、訓練装置及びデータ生成方法 Pending JP2021174404A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020079814A JP2021174404A (ja) 2020-04-28 2020-04-28 データ生成装置、訓練装置及びデータ生成方法
US17/239,833 US20210335018A1 (en) 2020-04-28 2021-04-26 Data generating device, training device, and data generating method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020079814A JP2021174404A (ja) 2020-04-28 2020-04-28 データ生成装置、訓練装置及びデータ生成方法

Publications (1)

Publication Number Publication Date
JP2021174404A true JP2021174404A (ja) 2021-11-01

Family

ID=78222638

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020079814A Pending JP2021174404A (ja) 2020-04-28 2020-04-28 データ生成装置、訓練装置及びデータ生成方法

Country Status (2)

Country Link
US (1) US20210335018A1 (ja)
JP (1) JP2021174404A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117459737B (zh) * 2023-12-22 2024-03-29 中国科学技术大学 一种图像预处理网络的训练方法和图像预处理方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5253055A (en) * 1992-07-02 1993-10-12 At&T Bell Laboratories Efficient frequency scalable video encoding with coefficient selection
US6101280A (en) * 1994-07-04 2000-08-08 Hewlett-Packard Company Method and apparatus for compression of electronic ink
US5832120A (en) * 1995-12-22 1998-11-03 Cirrus Logic, Inc. Universal MPEG decoder with scalable picture size
US6298166B1 (en) * 1998-03-30 2001-10-02 Seiko Epson Corporation Image transformations in the compressed domain
US6819803B2 (en) * 2001-07-02 2004-11-16 International Business Machines Corporation Faster lossless rotation of JPEG images
AUPS271002A0 (en) * 2002-05-31 2002-06-20 Canon Kabushiki Kaisha Embedding a multiresolution compressed thumbnail image in a compressed image file
US8611418B2 (en) * 2006-11-30 2013-12-17 Lsi Corporation Decoding a progressive JPEG bitstream as a sequentially-predicted hybrid video bitstream
US8045810B2 (en) * 2008-02-28 2011-10-25 Research In Motion Limited Method and system for decoding encoded images and reducing the size of said images
US20130022114A1 (en) * 2008-06-23 2013-01-24 Mediatek Inc. Method and related apparatuses for decoding multimedia data
US9076239B2 (en) * 2009-04-30 2015-07-07 Stmicroelectronics S.R.L. Method and systems for thumbnail generation, and corresponding computer program product
JP6003042B2 (ja) * 2011-11-11 2016-10-05 セイコーエプソン株式会社 画像処理装置及び画像処理方法
US10469873B2 (en) * 2015-04-15 2019-11-05 Google Llc Encoding and decoding virtual reality video
US10504248B2 (en) * 2018-03-30 2019-12-10 Microsoft Technology Licensing, Llc Machine learning applied to textures compression or upscaling

Also Published As

Publication number Publication date
US20210335018A1 (en) 2021-10-28

Similar Documents

Publication Publication Date Title
US11451835B2 (en) Method and device for entropy coding and decoding using mapping of matching relationship parameters
WO2020057182A1 (zh) 一种图像压缩的方法及装置
JP2006014341A (ja) Mcuバッファを用いて画像データを格納するための方法及び装置
CN111510718B (zh) 通过图像文件的块间差异提高压缩率的方法及系统
CN111988609A (zh) 图像编码装置、概率模型生成装置和图像解码装置
JP5158096B2 (ja) 符号化用データ生成装置、符号化用データ生成方法、復号装置および復号方法
US11483585B2 (en) Electronic apparatus and controlling method thereof
CN113170140A (zh) 数据阵列的位平面编码
CN113079378B (zh) 图像处理方法、装置和电子设备
US8417042B2 (en) Image processing apparatus, control method and computer-readable medium
WO2018120019A1 (zh) 用于神经网络数据的压缩/解压缩的装置和系统
CN112991171A (zh) 图像处理方法、装置、电子设备及存储介质
JP2021174404A (ja) データ生成装置、訓練装置及びデータ生成方法
JP5631590B2 (ja) 画像の複数のかつネイティブな表現方法
JP5004717B2 (ja) 描画装置、描画方法、および描画プログラム
WO2014167609A1 (ja) 情報処理装置、制御方法、プログラム、及び記録媒体
Jilani et al. JPEG image compression using FPGA with Artificial Neural Networks
CN111510716A (zh) 通过图像文件的像素变换提高压缩率的方法和系统
Zhou et al. A hardware decoder architecture for general string matching technique
KR101811774B1 (ko) 그래픽 처리 장치 및 방법
US20210312592A1 (en) Super-resolution of block-compressed texture for texture mapping applications
CN110830806A (zh) 一种视频帧预测方法、装置及终端设备
WO2022100140A1 (zh) 一种压缩编码、解压缩方法以及装置
JP4423812B2 (ja) 描画処理装置および描画処理方法
WO2024077738A1 (en) Learned image compression based on fast residual channel attention network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240423