WO2014167609A1 - 情報処理装置、制御方法、プログラム、及び記録媒体 - Google Patents

情報処理装置、制御方法、プログラム、及び記録媒体 Download PDF

Info

Publication number
WO2014167609A1
WO2014167609A1 PCT/JP2013/002501 JP2013002501W WO2014167609A1 WO 2014167609 A1 WO2014167609 A1 WO 2014167609A1 JP 2013002501 W JP2013002501 W JP 2013002501W WO 2014167609 A1 WO2014167609 A1 WO 2014167609A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
gpu
intermediate block
cpu
information processing
Prior art date
Application number
PCT/JP2013/002501
Other languages
English (en)
French (fr)
Inventor
哲史 岩崎
Original Assignee
株式会社スクウェア・エニックス・ホールディングス
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 株式会社スクウェア・エニックス・ホールディングス filed Critical 株式会社スクウェア・エニックス・ホールディングス
Priority to CA2909216A priority Critical patent/CA2909216C/en
Priority to PCT/JP2013/002501 priority patent/WO2014167609A1/ja
Priority to CN201380075340.4A priority patent/CN105122806B/zh
Priority to EP13882024.6A priority patent/EP2985995B1/en
Priority to JP2015510959A priority patent/JP6186429B2/ja
Publication of WO2014167609A1 publication Critical patent/WO2014167609A1/ja
Priority to US14/868,871 priority patent/US9769486B2/en
Priority to US15/683,037 priority patent/US10003812B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/645Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission by grouping of coefficients into blocks after the transform

Definitions

  • the CPU 101 reads out the output data of each block written in the RAM 103, applies lossless compression processing while referring to the bit string in the data, and generates encoded moving image data related to one frame.
  • the lossless compression process performed in this step is a so-called entropy encoding (variable length encoding) process such as Huffman encoding.
  • the CPU 101 specifies the structure of the data string of the intermediate data from the output data in the process of this step, and assigns an appropriate code to perform the compression process.
  • the efficiency of the encoding process using the CPU and GPU is not limited to this and can be realized.
  • the output data following the bit string may include not only non-zero value data but all intermediate data. That is, if the CPU 101 can grasp even a bit string indicating whether each data is a non-zero value, it is possible to grasp the address of zero data that does not need to be read, so that it is possible to reduce the time required for memory reading. it can.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

 情報処理装置において、GPUは、符号化対象の画像を分割して得られた、所定の画素数を有する複数のブロックを取得し、各ブロックについて、空間冗長性を排除した中間ブロックを生成する。さらにGPUは、各中間ブロックのデータ列を解析し、該データ列における、値が所定の範囲に含まれるデータの位置を特定する特定情報を生成し、各ブロックの各々について、中間ブロックの少なくとも一部のデータ及び対応する特定情報を記憶装置に出力する。またCPUは、複数のブロックの各々について、対応する特定情報をを参照し、記憶装置から該特定情報に対応する少なくとも一部のデータを読み出して圧縮処理を実行する。

Description

情報処理装置、制御方法、プログラム、及び記録媒体
 本発明は、情報処理装置、制御方法、プログラム、及び記録媒体に関し、特にCPUとGPUとを利用する符号化技術に関する。
 近年、インターネット等のネットワークを利用した動画配信の分野では、予め符号化した動画データを配信するだけでなく、生成した動画フレームをリアルタイムに符号化し、得られた動画データを配信することも行われている。
 このようなリアルタイムに符号化を行って動画データを配信するコンテンツの1つには、ネットワークを介してゲーム画面を提供するゲームコンテンツがある。動画配信サーバはGPUが生成したゲーム画面を、所定の符号化形式に従って符号化し、動画データとして配信することで、クライアント機器において表示されるゲーム画面を提供することができる。
 GPUは、CPUに比べて多くの演算コアを備え、並列処理に特化するものである。符号化技術の中には、GPUの並列処理能力に着目し、GPUを使用した符号化を行うものもある(特許文献1)。
特開2009-017535号公報
 一方、GPUは多くの演算コアを備えるため、個々の演算コアの処理能力はCPUに比べて限定的なものとなる。具体的にはCPUとGPUとでは、予め用意される命令セットが異なる。例えば32bitのビット列中から値が1のビットをカウントする演算をする場合、典型的にはGPUがビットを順番に指定して簡素な命令を繰り返し発行して処理を実行するのに対し、CPUは予め用意された命令セットを実行するのみで所望の演算結果を得ることができる。即ち、GPUは並列処理に特化するものである反面、処理を実行するために必要な命令発行が多く、処理内容によっては結果が得られるまでに時間を要することがあった。
 上述した特許文献1は、符号化処理を単にGPUで実行しており、このようなCPU及びGPUの特性を考慮して分散処理を行うものではなかった。
 本発明は、上述の問題点に鑑みてなされたものであり、CPUとGPUとを用いることで符号化処理を効率化する情報処理装置、制御方法、プログラム、及び記録媒体を提供することを目的とする。
 前述の目的を達成するために、本発明の情報処理装置は、以下の構成を備えることを特徴とする。具体的には情報処理装置は、中央処理ユニット(CPU)とグラフィックス処理ユニット(GPU)を有し、画像を符号化する情報処理装置であって、GPUは、符号化対象の画像を分割して得られた、所定の画素数を有する複数のブロックを取得する取得手段と、取得手段により取得された複数のブロックの各々について、空間冗長性を排除した中間ブロックを生成する排除手段と、排除手段により生成された各中間ブロックのデータ列を解析し、該データ列における、値が所定の範囲に含まれるデータの位置を特定する特定情報を生成する解析手段と、複数のブロックの各々について、中間ブロックの少なくとも一部のデータ及び該中間ブロックに対応する特定情報を記憶手段に出力する出力手段と、を有し、CPUは、複数のブロックの各々について、対応する特定情報を記憶手段から読み出す読出手段と、読出手段により読み出された特定情報を参照し、記憶手段から該特定情報に対応する少なくとも一部のデータを読み出して圧縮処理を実行する圧縮手段と、を有することを特徴とする。
 このような構成により本発明によれば、CPUとGPUとを用いることで符号化処理を効率化することが可能となる。
 本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
 添付図面は明細書に含まれ、その一部を構成し、本発明の実施の形態を示し、その記述と共に本発明の原理を説明するために用いられる。
本発明の実施形態に係るPC100の機能構成を示したブロック図 本発明の実施形態に係るPC100で実行される符号化処理を例示したフローチャート 本発明の実施形態に係るGPU104が実行するデータ生成処理を例示したフローチャート 本発明の実施形態に係るデータ生成処理における中間データのスキャン順序の一例を示した図 本発明の実施形態に係るデータ生成処理で生成される出力用データのデータ構成を示した図
 [実施形態]
 以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、情報処理装置の一例としての、CPUとGPUとを備え、符号化処理を行うPCに本発明を適用した例を説明する。しかし、本発明は、CPU及びGPUを備え、それらを使用して符号化処理を行うことが可能な任意の機器に適用可能である。
 《PC100の構成》
 図1は、本発明の実施形態に係るPC100の機能構成を示すブロック図である。
 CPU101は、PC100が有する各ブロックを制御する。具体的にはCPU101は、例えばROM102や記録媒体107に格納されている各ブロックの動作プログラムを読み出し、RAM103に展開して実行することにより、各ブロックの動作を制御する。
 ROM102は、書き換え可能な不揮発性メモリである。ROM102は、各ブロックの動作またはPC100の動作に必要となるパラメータ等の情報を記憶する。RAM103は、揮発性メモリである。RAM103は、各ブロックの動作プログラムの展開領域としてだけでなく、各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
 GPU104は、画面描画に係る処理を行う。GPU104は、並列処理を行うために複数の演算コアを有し、画面描画に係る処理を並行して実行する。例えば描画する画面が3Dシーンの特定の視点に係る画面である場合、GPU104は3Dシーンの描画範囲に含まれる描画オブジェクトを後述の記録媒体107から読み出し、GPUメモリ105に展開する。そしてGPU104は、GPUメモリ105に展開した描画オブジェクトに対して所定の描画パラメータに応じた演算処理を実行し、接続されたVRAM106に画面を生成(描画)する。
 記録媒体107は、例えばHDD等の着脱可能な記録装置である。本実施形態では記録媒体107が符号化対象の動画データの各フレーム、及び後述の符号化処理により符号化された符号化動画データが記録される。
 操作入力部108は、例えばマウスやキーボード等のPC100に接続されたユーザインタフェースである。操作入力部108は、ユーザインタフェースに対する操作入力がなされたことを検出すると、対応する制御信号をCPU101に出力し、該操作入力を通知する。
 《符号化処理》
 このような構成をもつ本実施形態のPC100における動画データの符号化処理について、図2のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、CPU101が、例えば記録媒体107に記憶されている対応する処理プログラムを読み出し、RAM103に展開して実行することにより実現することができる。
 なお、本符号化処理は、例えば動画データの符号化を行うアプリケーションにおいて、符号化開始の指示入力がなされたことを記録媒体107が検出した際に開始されるものとして説明する。しかしながら、本発明は動画データの符号化処理に限られるものではなく、後述のような処理工程で行われる静止画データの符号化処理にも適用可能である。また、以下に説明する符号化処理は、本発明が適用される符号化処理を限定するものではなく、1つの例示的な符号化形式における処理工程を概念的に説明するものである。即ち、本実施形態の符号化処理において説明する各処理工程は、符号化対象や採用される符号化形式に応じて適宜変更されてよいことは容易に理解されよう。
 S201で、CPU101は、符号化対象の動画データ(対象動画データ)の情報をGPU104に通知する。対象動画データの情報は、記録媒体107に格納された対応する動画ファイルの格納場所の情報等、GPU104が符号化対象のデータを特定可能な情報であってよい。
 S202で、GPU104は、対象動画データの情報を参照し、対象動画データのうちの符号化を行うフレームの画像(対象ピクチャ)を読み出し、GPUメモリ105に展開する。
 S203で、GPU104は、GPUメモリ105に読み出された対象ピクチャを、並列処理の実行単位である、予め定められた画素数を有するブロックに分割する。なお、対象ピクチャは実際にブロックに分割される必要はなく、例えばGPUメモリ105上のメモリアドレスに対して、ブロックを定義するものであってよい。また、本実施形態では詳細を述べないが、対象ピクチャに対してフレーム内予測あるいはフレーム間予測を行う場合は、以下の並列処理とは別に、ピクチャに対して予測処理が行われる。
 S204で、GPU104は、ブロックの各々にGPU104の演算コアを割り当てる。そしてGPU104は、各ブロックについて離散コサイン変換処理(DCT)等の直交変換処理及び量子化処理を並列に実行し、各ブロックの空間冗長性を除去する。なお、予測処理が行われている場合は、予測結果が反映されたブロックが本ステップの処理対象となる。また、本実施形態では説明を簡単にするため、各ブロックにGPU104の1つの演算コアが割り当てられるものとして説明するが、本発明の実施はこれに限られるものではない。通常、GPU104における演算コアの割り当てポリシーはGPUドライバに依存するものであり、例えば単位画素について1コア等、適宜効率的な割り当てがなされてよい。
 S205で、GPU104は、符号化処理においてGPU104による処理が完了した中間データから出力用のデータを生成するデータ生成処理を実行する。
 本実施形態のPC100では、GPU104及びCPU101を用いて符号化処理を実行する。つまり、符号化処理の過程でGPU104により処理された、GPUメモリ105上の中間データは、CPU101がアクセス可能なRAM103に移動する必要がある。しかしながら、GPU104が中間データをRAM103に出力する場合、不図示のバスを介して転送される必要があるが、このときバスの転送帯域を占有してしまい、他の処理が遅延する可能性がある。例えばブロックが8×8画素で構成され、中間データであるブロック内の各データが16bitの値で構成される場合、1つのブロックについて16bit×8×8=1024bitの情報が出力されることになる。即ち、対象ピクチャの画素数にもよるが、効率化のために並列処理された複数のブロックそれぞれについて中間データが出力されると、ブロック数に応じた容量のデータが1フレームについて転送されることになる。
 このため、本実施形態のデータ生成処理では中間データをより少ない情報量で構成できるようにデータ変換を行う。なお、中間データは後述するように可変長符号化処理において可逆圧縮されるため、出力用データは中間データのデータ列を特定可能なように構成される。
  〈データ生成処理〉
 ここで、本実施形態のGPU104が実行するデータ生成処理について、図3のフローチャートを用いて詳細を説明する。
 S301で、GPU104は、空間冗長性を除去した各ブロックに含まれるデータ(中間データ)を、後段の可逆圧縮の圧縮率が高くなる効率的な順序でスキャンを開始する。なお、本発明の実施においてスキャンの順序はこれに限られるものではなく、例えば図4に示されるような低い周波数成分(直流成分)から高い周波数成分への順序(所謂ジグザグスキャン)等、他の順序でスキャンが行われてもよい。また、以下の説明では1つのブロックに対応する中間データに対する処理を説明するが、複数のブロックについて本データ生成処理は並行して実行されてよい。
 S302で、GPU104は、スキャンした1データの値が非ゼロ値であるか否かを判断する。GPU104は、スキャンした1データの値が非ゼロ値であると判断した場合は処理をS303に移し、ゼロであると判断した場合は処理をS306に移す。
 S303で、GPU104は、スキャンした非ゼロ値のデータ数が閾値である28個を超えたか否かを判断する。
 本実施形態の符号化処理では、GPU104において複数のブロックについての直交変換処理や量子化処理等を並行して行うため、処理後の出力用データの出力も並列実行される。この場合、RAM103における書き込みアドレスの競合が起きることを回避するために、各ブロックに対応する出力用データの書き込み開始アドレスを、該出力用データのデータサイズを考慮して調整する必要がある。一方、CPU101が後述の可逆圧縮処理を行うためにRAM103に書き込まれた各ブロックのデータ(出力用データ)を読み出す際には、各ブロックのデータの読み出しアドレスが連続していることが好ましい。具体的には、RAM103からのデータ読み出しにおいて非連続のアドレス変更に係るプリチャージの発生等により読み出し遅延が生じうるため、各ブロックのデータは、CPU101における処理順にRAM103に書き込まれることが好ましい。
 このため、本実施形態のデータ生成処理では、出力用データが一定のデータサイズに収まることの判断基準として、中間データに含まれる非ゼロ値のデータ数の閾値を設けている。本実施形態のデータ生成処理において生成される出力用データは、図5に示されるように、ブロックのスキャン順におけるデータ列において各データが非ゼロ値であるか否かを示す後述のビット列と、非ゼロ値であるデータとで構成する。該出力用データは、含まれる2種類の情報から、中間データのスキャン順におけるデータ列を特定することが可能な構成となっている。つまり、本ステップでは、該出力用データのうち、後者の非ゼロ値であるデータの数が閾値を超えることによって書き込み開始アドレスの競合が生じることを回避するため、上述の判断を行う。
 GPU104は、スキャンした非ゼロ値のデータ数が閾値を超えると判断した場合は処理をS308に移し、閾値を超えないと判断した場合は処理をS304に移す。
 S304で、GPU104は、スキャンした1データが非ゼロ値であるか否かを示すビット列(特定情報)の対応ビットを1に設定する。ビット列は、中間データ内のデータ数分存在すればよく、例えばブロックが8×8=64画素で構成されていた場合、1bit×64個=64bitのデータ列で構成することができる。本ステップにおいてGPU104は、予めGPUメモリ105上に確保した64bitの領域のビットを、スキャンした順における対応位置のビットを選択して、値を設定することになる。つまり、本ステップと後述のS306の処理により、該ビット列は、先頭ビットから順に、各ビットが中間データ内のデータをスキャンした順における非ゼロ値であるか否かを示す値を列挙した形式となる。
 中間データには、一般的にその値がゼロであるデータが高い頻度で存在する。即ち、中間データ内の各データが16bitである場合は、値がゼロであるデータであったとしてもCPU101は16bit分のデータを読み出す必要がある。本実施形態のPC100では、符号化処理のCPU101に係る処理において、高い頻度で存在するゼロの読み出し回数を低減することで、CPU101における後述の可逆圧縮処理に要する時間を低減する。つまり、後述の可逆圧縮処理においてCPU101は、該ビット列を読み出すことで、のスキャン順に並べ替えられた中間データのデータ列において、各データが非ゼロ値であるか否かの情報を把握することができる。
 S305で、GPU104は、非ゼロ値であるスキャンした1データを、ビット列に続くデータとして確保した領域に追加で書き込む。即ち、ビット列を設けることで、後述の可逆圧縮処理におけるゼロであるデータの読み出しは排除することができるため、RAM103に書き込むべき非ゼロ値のみを後続の領域に追加する。
 一方、S302においてスキャンした1データが非ゼロ値でないと判断した場合、GPU104はS306で、ビット列の対応ビットを0に設定する。なお、対応ビットが予め0で初期化されている場合、本ステップが不要であることは容易に理解されよう。
 S307で、GPU104は、中間データに含まれる全てのデータをスキャンしたか否かを判断する。GPU104は、全てのデータをスキャンしたと判断した場合は本データ生成処理を完了し、未スキャンのデータが存在すると判断した場合は処理をS302に戻す。
 このように、S304乃至S307の処理を繰り返し行うことで、予め決められたデータサイズの出力用データを生成することができる。例えば、上述のように中間データ内に各々16bitの値を有するデータが8×8=64個存在する場合、S303の処理により非ゼロ値のデータ数が28個以下であることが保証されるため、出力用データは64bit+16bit×28=512bit分の固定長データとして構成することができる。即ち、後述のRAM103への書き込みにおいて、複数のブロックの出力用データを書き込みアドレスが連続するように書き込むことができる。
 一方、S303においてスキャンした非ゼロ値のデータ数が閾値を超えると判断した場合、GPU104はS308で、中間データの全てのデータを2で除して得られた新たな中間データについて、S301からの処理を行う。2で除する計算は、例えばビットシフト演算でよく、これによりデータ値が1、-1であったデータの数を低減することができる。なお、本ステップを1度実行しただけでは、中間データの非ゼロ値のデータ数が閾値以下に収まらない場合は、繰り返し本ステップの処理を実行すればよい。このようにデータ数の調整を行う場合、本ステップの実行回数、即ち2で除した回数が例えばビット列の先頭位置等に識別可能に含められればよい。
 なお、中間データの非ゼロ値のデータ数が閾値を超える場合、画質への影響度が低いと思われる、例えば+2、+1、-1、-2等のデータ値の絶対値が予め定められた閾値以下であるデータをゼロデータとみなすことで、非ゼロ値のデータ数の調整を行ってもよい。また、画質への影響度が低いと思われるデータをゼロとみなす該手法は、非ゼロ値のデータ数が閾値を超える場合に限らず実行されてもよい。
 このようにデータ生成処理を実行することで出力用データを生成した後、GPU104はS206で、GPUメモリ105に生成した各ブロックの出力用データをRAM103に転送して各ブロックに対応する開始アドレスから書き込む。
 S207で、CPU101は、RAM103に書き込まれた各ブロックの出力用データを読み出し、該データ中のビット列を参照しながら可逆圧縮処理を適用して、1フレームに係る符号化動画データを生成する。本ステップで行う可逆圧縮処理は、ハフマン符号化等の所謂エントロピー符号化(可変長符号化)処理である。CPU101は、本ステップの処理において出力用データから中間データのデータ列の構成を特定した上で、適切な符号を割り当てて圧縮処理を行う。
 S208で、CPU101は、対象動画データに符号化がなされていない異なるフレームが存在するか否かを判断する。CPU101は、対象動画データに符号化がなされていない後続フレームが存在すると判断した場合は処理をS202に移し、存在しないと判断した場合は本符号化処理を完了する。なお、本ステップにおける判断は一例であり、例えばGPU104とCPU101との処理がそれぞれ並行して行われている場合、本ステップの実行時には既に次のフレームについてGPU104の処理が開始していてもよい。このような場合は処理をS202に移すのではなく、CPU101は符号化処理のうちのGPU104に係る処理が完了するまで待機してS207の処理を実行するように構成されてよい。
 なお、本実施形態ではPC100におけるバスの転送帯域の占有を回避しつつ、CPU101のメモリ読み出しに要する時間を低減する好適な一態様について説明した。しかしながら、CPUとGPUとを用いた符号化処理の効率化はこれに限らず実現可能である。例えば、バスの転送帯域が広く、データ転送における問題が生じない場合は、ビット列に続く出力用データは非ゼロ値のデータのみではなく、中間データの全てのデータが含まれていてもよい。即ち、各データが非ゼロ値であるか否かの情報を示すビット列さえCPU101が把握できれば、読み出す必要がないゼロデータのアドレスを把握することができるため、メモリ読み出しに要する時間を低減することはできる。また例えば、値が所定の範囲(ゼロとみなしてよい範囲)に含まれるデータの、中間データのデータ列における位置が特定できれば、少なくともメモリ読み出しに係る処理時間を低減することができる。このため、ビット列とは異なる形式を有する情報がRAM103に書き込まれてもよい。
 またさらに、本実施形態ではCPU101とGPU104の各々が効率的に実行可能な処理の特性に応じて、符号化処理の各工程を分離して実行するものとして説明した。具体的には、所定の演算式で実行可能な簡単な演算を複数のブロックについて並列実行可能な処理(空間冗長性を排除する処理)は、並列計算が得意であるGPU104に割り当てた。また圧縮後のデータサイズが変動的である故に並列実行が困難である処理(可逆圧縮処理)は、ビット解析等の複雑なビット演算が得意であるCPU101に割り当てた。換言すれば、複雑なビット演算に処理時間を要するGPU104には該演算を行う処理をなるべく割り当てず、演算コアが少なく並列処理による効率化が見込めないCPU101には並列演算を行う処理をなるべく割り当てないようにした。しかしながら、本発明の実施はこのようなCPU101及びGPU104の特性に応じて切り分けられて実行されずとも、符号化処理の効率化は見込める。例えばGPU104においてビット演算に要する時間に比べて並列演算による効率化が見込める場合は、GPU104において中間データのランレングス符号化を行ったデータを出力用データとしてRAM103に書き込んでもよい。これにより、CPU101はメモリ読み出しに係る時間を短縮した上に、可逆圧縮に係る処理時間を短縮することも可能である。即ち、CPU101による処理において、中間データそのもののメモリ読み出しに係る時間よりも読み出し時間を短縮可能な出力用データをGPU104が生成することでも、符号化処理の効率化は実現可能である。
 以上説明したように、本実施形態の情報処理装置は、CPUとGPUとを用いることで符号化処理を効率化することができる。具体的には情報処理装置において、GPUは、符号化対象の画像を分割して得られた、所定の画素数を有する複数のブロックを取得し、各ブロックについて、空間冗長性を排除した中間ブロックを生成する。さらにGPUは、各中間ブロックのデータ列を解析し、該データ列における、値が所定の範囲に含まれるデータの位置を特定する特定情報を生成し、各ブロックの各々について、中間ブロックの少なくとも一部のデータ及び対応する特定情報を記憶装置に出力する。またCPUは、複数のブロックの各々について、対応する特定情報をを参照し、記憶装置から該特定情報に対応する少なくとも一部のデータを読み出して圧縮処理を実行する。
 [その他の実施形態]
 本発明に係る情報処理装置は、コンピュータを情報処理装置として機能させるプログラムによっても実現可能である。該プログラムは、コンピュータが読み取り可能な記録媒体に記録されることにより、あるいは電気通信回線を通じて、提供/配布することができる。
 本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。

Claims (12)

  1.  中央処理ユニット(CPU)とグラフィックス処理ユニット(GPU)を有し、画像を符号化する情報処理装置であって、
     前記GPUは、
      符号化対象の画像を分割して得られた、所定の画素数を有する複数のブロックを取得する取得手段と、
      前記取得手段により取得された前記複数のブロックの各々について、空間冗長性を排除した中間ブロックを生成する排除手段と、
      前記排除手段により生成された各中間ブロックのデータ列を解析し、該データ列における、値が所定の範囲に含まれるデータの位置を特定する特定情報を生成する解析手段と、
      前記複数のブロックの各々について、前記中間ブロックの少なくとも一部のデータ及び該中間ブロックに対応する前記特定情報を記憶手段に出力する出力手段と、
    を有し、
     前記CPUは、
      前記複数のブロックの各々について、対応する前記特定情報を前記記憶手段から読み出す読出手段と、
      前記読出手段により読み出された前記特定情報を参照し、前記記憶手段から該特定情報に対応する前記少なくとも一部のデータを読み出して圧縮処理を実行する圧縮手段と、
    を有することを特徴とする情報処理装置。
  2.  前記出力手段は、各中間ブロックについて、データ列に含まれる、値が前記所定の範囲に含まれるデータのみをデータ列の順に並べ、前記少なくとも一部のデータとして出力することを特徴とする請求項1に記載の情報処理装置。
  3.  各中間ブロックについて、データ列に含まれる、値が前記所定の範囲に含まれるデータの数が予め定められた数より多い場合に、
      前記解析手段は、該データ列の各データを所定値で除して得られた新たなデータ列について前記特定情報を生成し、
      前記出力手段は、前記新たなデータ列に含まれる、値が前記所定の範囲に含まれるデータのみをデータ列順に並べ、前記少なくとも一部のデータとして出力する
    ことを特徴とする請求項2に記載の情報処理装置。
  4.  前記解析手段は、前記中間ブロックのデータ列の各データを所定値で除した回数を、前記特定情報に含めることを特徴とする請求項3に記載の情報処理装置。
  5.  前記解析手段は、各中間ブロックについて、データ列の各データの値が前記所定の範囲に含まれるか否かの情報をデータ列順に並べることで、前記特定情報を生成することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
  6.  前記値が所定の範囲に含まれるデータは、前記中間ブロックのデータ列のうち、データ値が非ゼロ値であるデータであることを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
  7.  前記値が所定の範囲に含まれるデータは、前記中間ブロックのデータ列のうち、画質に影響を与えると予め定められたデータであることを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
  8.  前記排除手段は、
      前記複数のブロックの各々を直交変換する変換手段と、
      前記変換手段により直交変換された各ブロックを量子化する量子化手段と、
      前記量子化手段により量子化された各ブロックを、画素に対応するデータを所定の順番に並べることで、前記中間ブロックのデータ列を生成する生成手段と、
    を有し、
     前記圧縮手段は、前記少なくとも一部のデータと前記特定情報とから特定した前記中間ブロックのデータ列を可逆圧縮する
    することを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
  9.  中央処理ユニット(CPU)とグラフィックス処理ユニット(GPU)を有し、画像を符号化する情報処理装置の制御方法であって、
     前記GPUが、符号化対象の画像を分割して得られた、所定の画素数を有する複数のブロックを取得する取得工程と、
     前記GPUが、前記取得工程において取得された前記複数のブロックの各々について、空間冗長性を排除した中間ブロックを生成する排除工程と、
     前記GPUが、前記排除工程において生成された各中間ブロックのデータ列を解析し、該データ列における、値が所定の範囲に含まれるデータの位置を特定する特定情報を生成する解析工程と、
     前記GPUが、前記複数のブロックの各々について、前記中間ブロックの少なくとも一部のデータ及び該中間ブロックに対応する前記特定情報を記憶手段に出力する出力工程と、
     前記CPUが、記複数のブロックの各々について、対応する前記特定情報を前記記憶手段から読み出す読出工程と、
     前記CPUが、前記読出工程において読み出された前記特定情報を参照し、前記記憶手段から該特定情報に対応する前記少なくとも一部のデータを読み出して圧縮処理を実行する圧縮工程と、
    を有することを特徴とする情報処理装置の制御方法。
  10.  中央処理ユニット(CPU)とグラフィックス処理ユニット(GPU)を有し、画像を符号化する情報処理装置の制御方法であって、
     前記CPU及び前記GPUの処理特性に基づいて、画像の符号化処理を前記CPUと前記GPUとで分散処理する
    ことを特徴とする情報処理装置の制御方法。
  11.  コンピュータを、請求項1乃至8のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
  12.  請求項11に記載のプログラムを記録した、コンピュータが読み取り可能な記録媒体。
PCT/JP2013/002501 2013-04-12 2013-04-12 情報処理装置、制御方法、プログラム、及び記録媒体 WO2014167609A1 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CA2909216A CA2909216C (en) 2013-04-12 2013-04-12 Information processing apparatus, method of controlling the same, program and storage medium
PCT/JP2013/002501 WO2014167609A1 (ja) 2013-04-12 2013-04-12 情報処理装置、制御方法、プログラム、及び記録媒体
CN201380075340.4A CN105122806B (zh) 2013-04-12 2013-04-12 信息处理装置、控制方法及存储介质
EP13882024.6A EP2985995B1 (en) 2013-04-12 2013-04-12 Information processing device, control method, program, and recording medium
JP2015510959A JP6186429B2 (ja) 2013-04-12 2013-04-12 情報処理装置、制御方法、プログラム、及び記録媒体
US14/868,871 US9769486B2 (en) 2013-04-12 2015-09-29 Information processing apparatus, method of controlling the same, and storage medium
US15/683,037 US10003812B2 (en) 2013-04-12 2017-08-22 Information processing apparatus, method of controlling the same, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/002501 WO2014167609A1 (ja) 2013-04-12 2013-04-12 情報処理装置、制御方法、プログラム、及び記録媒体

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/868,871 Continuation US9769486B2 (en) 2013-04-12 2015-09-29 Information processing apparatus, method of controlling the same, and storage medium

Publications (1)

Publication Number Publication Date
WO2014167609A1 true WO2014167609A1 (ja) 2014-10-16

Family

ID=51689047

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/002501 WO2014167609A1 (ja) 2013-04-12 2013-04-12 情報処理装置、制御方法、プログラム、及び記録媒体

Country Status (6)

Country Link
US (2) US9769486B2 (ja)
EP (1) EP2985995B1 (ja)
JP (1) JP6186429B2 (ja)
CN (1) CN105122806B (ja)
CA (1) CA2909216C (ja)
WO (1) WO2014167609A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10448035B2 (en) 2015-11-11 2019-10-15 Nec Corporation Information compression device, information compression method, non-volatile recording medium, and video coding device
US10536699B2 (en) 2015-06-03 2020-01-14 Nec Corporation Moving image coding device, moving image coding method and recording medium for storing moving image coding program

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10771783B2 (en) 2018-06-11 2020-09-08 Google Llc Transforms for large video and image blocks
US11470139B2 (en) * 2020-06-23 2022-10-11 Comcast Cable Communications, Llc Video encoding for low-concurrency linear channels

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000092330A (ja) * 1998-09-16 2000-03-31 Fuji Xerox Co Ltd 画像符号化装置
JP2003224851A (ja) * 2002-01-30 2003-08-08 Nippon Telegr & Teleph Corp <Ntt> ビットレート低減装置及びその方法と、画像符号化装置及びその方法と、画像復号装置及びその方法と、画像符号化プログラム及びそのプログラムを記録した記録媒体と、画像復号プログラム及びそのプログラムを記録した記録媒体
JP2006186911A (ja) * 2004-12-28 2006-07-13 Seiko Epson Corp マルチメディア処理システム及びマルチメディア処理方法
JP2009017535A (ja) 2007-05-25 2009-01-22 Nvidia Corp マルチメディア信号の符号化
JP2010130696A (ja) * 2008-11-28 2010-06-10 Thomson Licensing グラフィックス処理ユニットによってサポートされるビデオ復号方法
JP2010161542A (ja) * 2009-01-07 2010-07-22 Nec Corp 動画像復号装置、動画像復号方法、及びプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5847762A (en) * 1995-12-27 1998-12-08 Thomson Consumer Electronics, Inc. MPEG system which decompresses and then recompresses MPEG video data before storing said recompressed MPEG video data into memory
JP4607305B2 (ja) * 2000-09-27 2011-01-05 株式会社東芝 映像符号化装置及び映像符号化方法
JP4693309B2 (ja) * 2001-09-19 2011-06-01 キヤノン株式会社 画像処理装置及びその制御方法及びコンピュータプログラム及び記憶媒体
JP3856292B2 (ja) * 2001-10-15 2006-12-13 日本電気株式会社 画像符号のトランスコーダ及び画像符号のトランスコーディング方法
JP2005151017A (ja) * 2003-11-13 2005-06-09 Sharp Corp 画像符号化装置
JP2005295075A (ja) * 2004-03-31 2005-10-20 Mitsubishi Electric Corp 画像情報量圧縮装置及び画像情報量圧縮方法
US8194736B2 (en) * 2008-04-15 2012-06-05 Sony Corporation Video data compression with integrated lossy and lossless compression
US20120026394A1 (en) * 2010-07-30 2012-02-02 Emi Maruyama Video Decoder, Decoding Method, and Video Encoder
US20130021350A1 (en) * 2011-07-19 2013-01-24 Advanced Micro Devices, Inc. Apparatus and method for decoding using coefficient compression
JP6480186B2 (ja) * 2012-01-19 2019-03-06 ヴィド スケール インコーポレイテッド ビデオコーディング量子化およびダイナミックレンジ制御のシステムおよび方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000092330A (ja) * 1998-09-16 2000-03-31 Fuji Xerox Co Ltd 画像符号化装置
JP2003224851A (ja) * 2002-01-30 2003-08-08 Nippon Telegr & Teleph Corp <Ntt> ビットレート低減装置及びその方法と、画像符号化装置及びその方法と、画像復号装置及びその方法と、画像符号化プログラム及びそのプログラムを記録した記録媒体と、画像復号プログラム及びそのプログラムを記録した記録媒体
JP2006186911A (ja) * 2004-12-28 2006-07-13 Seiko Epson Corp マルチメディア処理システム及びマルチメディア処理方法
JP2009017535A (ja) 2007-05-25 2009-01-22 Nvidia Corp マルチメディア信号の符号化
JP2010130696A (ja) * 2008-11-28 2010-06-10 Thomson Licensing グラフィックス処理ユニットによってサポートされるビデオ復号方法
JP2010161542A (ja) * 2009-01-07 2010-07-22 Nec Corp 動画像復号装置、動画像復号方法、及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10536699B2 (en) 2015-06-03 2020-01-14 Nec Corporation Moving image coding device, moving image coding method and recording medium for storing moving image coding program
US10448035B2 (en) 2015-11-11 2019-10-15 Nec Corporation Information compression device, information compression method, non-volatile recording medium, and video coding device

Also Published As

Publication number Publication date
CN105122806B (zh) 2018-11-27
EP2985995B1 (en) 2021-06-16
CA2909216A1 (en) 2014-10-16
US10003812B2 (en) 2018-06-19
US9769486B2 (en) 2017-09-19
JP6186429B2 (ja) 2017-08-23
EP2985995A1 (en) 2016-02-17
CN105122806A (zh) 2015-12-02
EP2985995A4 (en) 2016-11-09
JPWO2014167609A1 (ja) 2017-02-16
US20170353732A1 (en) 2017-12-07
US20160029032A1 (en) 2016-01-28
CA2909216C (en) 2019-08-27

Similar Documents

Publication Publication Date Title
US8395634B2 (en) Method and apparatus for processing information
TWI514853B (zh) 由量化控制改良解碼器效能的方法與系統
JP2016226001A (ja) デコーダおよび復号方法
US10003812B2 (en) Information processing apparatus, method of controlling the same, and storage medium
TWI691200B (zh) 用於在視訊編碼中的順延後處理的系統及方法
JP2010098352A (ja) 画像情報符号化装置
JP2017005544A (ja) 画像情報処理方法
JP6377222B2 (ja) 情報処理装置、制御方法、プログラム、及び記録媒体
JP5653328B2 (ja) 画像処理装置及び画像処理システム
JP5731816B2 (ja) 画像処理装置、画像処理方法
US8532418B2 (en) Image processing apparatus and image processing method
JP4957572B2 (ja) 画像処理装置、画像処理システム、画像処理方法および画像処理プログラム
JP6223012B2 (ja) 画像符号化装置及び画像符号化方法
JP6543548B2 (ja) 動画像符号化装置、動画像符号化方法、及びプログラム
US20180302635A1 (en) Image processing apparatus, image processing method, and non-transitory computer-readable storage medium
JP5928914B2 (ja) グラフィックス処理装置およびグラフィックス処理方法
JP2019092075A (ja) 画像符号化装置及びその制御方法並びにプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13882024

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015510959

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2909216

Country of ref document: CA

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2013882024

Country of ref document: EP