JP7020431B2 - 量子化装置、量子化方法およびプログラム - Google Patents

量子化装置、量子化方法およびプログラム Download PDF

Info

Publication number
JP7020431B2
JP7020431B2 JP2018563358A JP2018563358A JP7020431B2 JP 7020431 B2 JP7020431 B2 JP 7020431B2 JP 2018563358 A JP2018563358 A JP 2018563358A JP 2018563358 A JP2018563358 A JP 2018563358A JP 7020431 B2 JP7020431 B2 JP 7020431B2
Authority
JP
Japan
Prior art keywords
cost
quantization
coefficient
final coefficient
parallel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018563358A
Other languages
English (en)
Other versions
JPWO2018135520A1 (ja
Inventor
博昭 五十嵐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2018135520A1 publication Critical patent/JPWO2018135520A1/ja
Application granted granted Critical
Publication of JP7020431B2 publication Critical patent/JP7020431B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/124Quantisation
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/176Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

本発明は量子化装置、量子化方法および記録媒体に関する。
動画像を圧縮する規格としてH.264/AVC(Advanced Video Codec)が広く用いられている。また、4K/8Kといった高解像度動画像圧縮向けの次世代動画像圧縮規格としてH.265/HEVC(High Efficiency Video Codec)が知られている。
これら動画像圧縮技術は、予測処理と、変換量子化処理と、エントロピー符号化とから成る。予測処理では、フレーム間またはフレーム内の冗長度を下げる処理を行う。変換量子化処理では、予測残差信号の空間成分を周波数成分に変換し量子化することで、空間的冗長度を下げる処理を行う。エントロピー符号化では、データの発生頻度に応じて、可変長符号化を動的に割り当てる処理を行う。
変換量子化処理においては、直交変換され周波数成分に変換された変換係数を量子化することで、エントロピー符号化に入力する情報量を削減することができる。一方で、変換量子化処理の際に量子化誤差が発生するので、復号化装置において、圧縮符号化された画像を復号して再生する際の復号画像に画質劣化が生じる。HEVCでは、こうした画質劣化とビットレート削減とのトレードオフ関係を考慮した選択をする際に、レート歪み最適化(RDO: Rate Distortion Optimization)が用いられる。
RDOでは、先ず、各選択において画質劣化(D)とビットレート(R)とを導出する。そして、RDOでは、これら画質劣化DおよびビットレートRと、ラグランジュ乗数λとを用いて、RDコストを得る。RDコストJは以下の式(1)で示される。
Figure 0007020431000001
このように、RDOでは、RDコストのより小さい選択肢を採用することで、より高い符号化効率を実現できる。
量子化処理においては、量子化後の係数を最適化する技術として、レート歪み最適量子化(RDOQ: Rate Distortion Optimized Quantization)が知られている。
例えば、非特許文献1は、HEVC規格に基づいたリファレンスソフトウェアHM(HEVC Test Model)を記載しており、量子化丸め誤差最適化、係数グループ(CG: Coefficient Group)最適化、最終係数位置最適化の3つの処理から構成されるRDOQを開示している。
量子化丸め誤差最適化では、量子化によって除算された係数値を切り上げた場合と、切り下げた場合とのRDコストを比較し、最適な係数値を採用する。
係数グループ(CG: Coefficient Group)最適化では、量子化された係数を係数グループごとに評価する。具体的には、係数グループ最適化では、各係数グループ内の係数値が全て0であった場合に、RDコストが改善するか評価し、改善する場合には採用する。ここで、係数グループとは後段の符号化処理における処理単位である。一方で、変換および量子化では、処理単位は変換ブロックとなる。
図2は、変換ブロックと係数グループとの関係を示す図である。後段の符号化処理では、係数グループ単位で各係数値が符号化される。したがって、係数グループ内の係数値を全て0にすることで、符号化される情報量を大きく削減することができる。
最終係数位置最適化では、最初に符号化される最も高周波な係数(以下、「最終係数」と示す)を選択する。
図3は後段の符号化処理における二値化処理の様子を示す図である。量子化された各係数は、係数グループごとにシンタックスに従って二値化される。ここで、係数は、図2に示されるように、例えば斜め右上がりスキャン順(以下、スキャン順または符号化順とも呼ぶ)で処理される。ここで、最終係数とは、スキャン順で最初に非ゼロな係数となる。
また、シンタックスには最終係数の位置情報が含まれ、スキャン順で最終係数以降の各係数値が符号化される。したがって、最終係数位置をスキャン順で後ろにずらすことによって、ビットレートを削減することができる。
RDOQでは、一連の最適化処理によって符号化効率は大きく改善する。一方で、RDOQでは、各選択候補に関してRDコストを毎回計算する必要があり、その計算量が大きく増加する。また、動画像符号化では、並列処理によって高速化を実現する手法が一般的であるが、RDOQでは、各選択肢のRDコストを計算する際にレートを計算する必要がある。レート計算では、各係数値を直列に並べ、シンタックスに従って処理する必要があるため、並列処理が困難である。
特許文献1は、このような課題を解決する技術を記載している。特許文献1に記載の係数絶対値決定部では、レート計算において係数間で依存関係のあるシンタックスにかかるbin数を近似する。ここでbin数とは、符号化において入力を二値化した後のbit数を表す。bin数は、RDO簡略化においてビットレートの近似として一般的に使われる指標である。bin数を用い、さらに係数間に依存関係のある係数を近似することで、量子化丸め誤差の最適化と係数グループの最適化とを並列処理できる。一方で、最終係数位置の最適化は、近似を用いたとしても各最終係数位置候補のRDコストを並列に計算することが難しく、並列処理が困難である。
同様に、特許文献2は、量子化丸め誤差を係数単位で並列処理する技術を記載している。特許文献2に記載の量子化装置では、係数グループごとに自分よりも高周波な係数グループ、つまりスキャン順で前にある係数グループを非有意であると仮定し、レートおよびRDコスト計算を行う。このような仮定を置くことで、係数丸め誤差最適化、係数グループの最適化、最終係数位置の最適化を1passで実行可能である。また、係数最適化部では、係数絶対値決定部と同様にレート計算を近似する。係数間の依存関係をなくすことで、係数ごとの並列処理が可能である。一方で、特許文献2に記載の技術を用いても、最終係数位置の最適化の係数単位での並列処理は困難である。このような場合、例えばGPU(Graphic Processing Unit)のような高並列プロセッサを用いたGPGPU(General Purpose Computing on Graphic Processing Unit)のような超高並列計算を用途とした場合に、変換係数の量子化を効率よく処理ができない。
特開2015-50608号公報 特開2016-134860号公報
上述したように、先行技術の量子化装置の問題点は、RDOQ処理において最終係数位置の最適化を並列処理できない点である。先行技術の最終係数位置の最適化では、逆スキャン順に最終係数位置候補を更新し、RDコストを順次計算する必要がある。このため、GPUのような高並列なアーキテクチャでは、変換係数の量子化を効率的に処理できない。
本発明の目的は、上述した課題を解決する、量子化装置、量子化方法および量子化プログラムを提供することにある。
本発明による量子化装置は、画像に対する量子化処理を行う量子化装置であって、複数のデータ長について、前記画像の圧縮による画質の劣化と圧縮率とを加味したコストを計算する処理手段を含み、前記コストを計算する処理は、前記複数のデータ長の間で、部分的に共通な処理であって、前記処理手段は、前記複数のデータ長に関して並列に動作し、前記複数のデータ長の間で共通な処理を、分散しつつ並列に実行するコスト計算手段と、前記複数のデータ長の中で、前記コストが最小となる1つのデータ長を、最適なデータ長として求める判定手段とを有することを特徴とする。
本発明の量子化方法は、画像に対する量子化処理を量子化装置で実施する量子化方法であって、複数のデータ長について、前記画像の圧縮による画質の劣化と圧縮率とを加味した量子化のコストを計算し、前記コスト計算は、前記複数のデータ長の間で、部分的に共通な処理を含み、前記複数のデータ長の間で共通な処理を、分散しつつ並列に実行し、前記複数のデータ長の中で、前記コストが最小となる1つのデータ長を、最適なデータ長として出力する。
本発明の記録媒体は、コンピュータに、画像を量子化する量子化処理を行わせる量子化プログラムを記録した、一時的でない記録媒体であって、前記量子化プログラムは、前記コンピュータに、複数のデータ長について、前記画像の圧縮による画質の劣化と圧縮率とを加味したコストを計算する処理を実行させるものであり、前記コストを計算する処理は、前記複数のデータ長の間で、部分的に共通な処理を含み、前記複数のデータ長の間で共通な処理を、分散しつつ並列に実行するコスト計算処理と、前記複数のデータ長の中で、前記コストが最小となる1つのデータ長を、最適なデータ長として求める判定処理と、を実行させる。
本発明によれば、データ長の最適化に係るステップ数を削減し、データ長の最適化処理を高速化することができる。
非特許文献1に記載の量子化装置1000を示すブロック図である。 変換ブロックと係数グループの関係とその処理順を示す説明図である。 HEVCにおける二値化の様子を示す説明図である。 特許文献1に記載の量子化装置200を示すブロック図である。 特許文献2に記載の量子化装置300を示すブロック図である。 非特許文献1に記載の最終係数位置最適化部1400を示すブロック図である。 非特許文献1に記載の最終係数位置最適化処理を示すフローチャートである。 本発明の第1の実施形態の量子化装置1000Aの構成を示すブロック図である。 図8に示した量子化装置1000Aに用いられる最終係数位置最適化部1500の構成を示すブロック図である。 本発明の第1の実施形態の最終係数位置最適化部1500の動作を示すフローチャートである。 本発明による最終係数位置のコスト計算の様子を示す説明図である。 Parallel Scanの様子を示す説明図である。 本発明の第2の実施形態の量子化装置1000Bの構成を示すブロック図である。 図13に示した量子化装置1000Bに用いられる最終係数位置最適化部1600の構成を示すブロック図である。 本発明の第2の実施形態の最終係数位置最適化部1600の動作を示すフローチャートである。 本発明の第2の実施形態によるレート計算の一例を示す説明図である。 本発明の実施例による量子化装置の機能を実現可能な情報処理装置の構成例を示すブロック図である。
[関連技術]
本発明の理解を容易にするために、最初に、関連技術について説明する。
図1は、非特許文献1に開示されている量子化装置1000の構成を示すブロック図である。量子化装置1000は、画像または画像の画素値を変換した変換係数を量子化する量子化処理を行う。
量子化装置1000は、量子化部1100と、量子化丸め誤差最適化部1200と、係数グループ最適化部1300と、最終係数位置最適化部1400とから成る。
量子化部1100では、動画像を圧縮する規格に沿って、変換係数に対して量子化を実施する。例えば、HEVCでは、量子化処理は次式(2)で表すことができる。
Figure 0007020431000002
ここでqはi番目の係数を表し、cはi番目の量子化後の係数を表す。またmは量子化重み付け係数を表し、qPは量子化パラメータを表し、BitDepthは入力信号の画素ビット精度を表し、Nは変換ブロック(TB: Transform Block)のサイズを表す。記号「%」は除算を表す。ここで変換ブロックは変換および量子化の処理単位である。
量子化丸め誤差最適化部1200では、前述の量子化丸め誤差最適化を実施する。
係数グループ(CG: Coefficient Group)最適化部1300では、前述の係数グループ最適化を実施する。
最終係数位置最適化部1400では、前述の最終係数位置最適化を実施する。以下では最終係数位置最適化部1400の動作を説明する。
最終係数位置最適化部1400は、スキャン順で非ゼロな係数値を順番に最終係数位置候補として選択し、RDコストを求める。この際に、最終係数より前の係数は符号化されないため、最終係数位置最適化部1400は、スキャン順で最終係数位置候補より前にある係数を全てゼロとして扱う。最終係数位置最適化部1400は、各最終係数位置候補のRDコストを比較し、最適な最終係数位置を選択する。
すなわち、最終係数位置最適化部1400は、圧縮による画質の劣化と圧縮率とをコスト計算によって最適化し、最適なデータ長を決める処理部として働く。
RDOQでは、このような一連の最適化処理によって、符号化効率を大きく改善することができる。一方で、RDOQでは、各選択候補に関してRDコストを毎回計算する必要があり、計算量が大きく増加してしまう。また、動画像符号化では、並列処理によって高速化を実現する手法が一般的であるが、RDOQでは、各選択肢のRDコストを計算する際にレートを計算する必要がある。レート計算では、各係数値を直列に並べ、シンタックスに従って処理する必要があるため、並列処理が困難である。
図4は、特許文献1に記載の技術を用いた量子化装置200の構成を示すブロック図である。
量子化装置200は、スケーリング部210と、係数絶対値決定部220と、最終係数位置決定部230と、から成る。
スケーリング部210は、第1乃至第Nのスケーリング部分211、212、・・・、21Nを有し、それぞれ、対象ブロックの第1乃至第Nの変換係数C~Cに対してスケーリングを行う。ここで、Nは2以上の整数である。ここで、対象ブロックとは、入力画像と予測画像との差分である予測残差信号に対して直交変換を行う処理単位である。入力画像は、動画像を構成する画像である。予測画像は、イントラ予測や動き補償予測等によって生成される画像である。
係数絶対値決定部220は、第1乃至第Nの係数絶対値決定部分221、222、・・・、22Nを有し、それぞれ、第1乃至第Nの変換係数C~Cのスケーリング結果を量子化した、第1乃至第Nの量子化係数P~Pの係数絶対値を決定する。
最終係数位置決定部230は、係数絶対値決定部220によって決定された第1乃至第Nの量子化係数P~Pの係数絶対値に基づいて、対象ブロックの最終係数位置を決定する。
係数絶対値決定部220では、レート計算において係数間で依存関係のあるシンタックスにかかるbin数を近似する。ここで、bin数とは、符号化において入力を二値化した後のbit数を表す。bin数は、RDO簡略化においてビットレートの近似として一般的に使われる指標である。bin数を用い、さらに係数間に依存関係のある係数を近似することで、量子化丸め誤差の最適化と係数グループの最適化とを並列処理できる。
一方で、最終係数位置決定部230での最終係数位置の最適化は、近似を用いたとしても各最終係数位置候補のRDコストを並列に計算することが難しく、並列処理が困難である。
図5は、特許文献2に記載の技術を用いた量子化装置300の構成を示すブロック図である。
量子化装置300は、制御部310と、スケーリング部320と、係数最適化部330と、記憶部340と、係数グループ最適化部350と、最終係数位置判定部360と、補正値算出部370と、判定部380とを有する。
制御部310は、分割部の一例であり、直交変換係数が算出されたTU(Transform Unit)が入力されるごとに、そのTUを係数グループ単位で分割する。なお、TUは、直交変換の単位となるブロックである。制御部310は、低周波数側の係数グループから順に、スケーリング部320へ渡す。
スケーリング部320は、係数グループが入力される度に、その係数グループに含まれる直交変換係数ごとに、その直交変換係数を量子化した値である量子化係数の候補のリストを作成する。スケーリング部320は、係数グループに含まれる各直交変換係数についての量子化係数の候補を係数最適化部330へ渡す。
係数最適化部330は、係数グループごとに、係数グループに含まれる各直交変換係数について、対応する量子化係数の候補の中から、RDコストが最小となる候補を特定し、その候補を、その直交変換係数に対する量子化係数とする。
係数最適化部330は、求めた各量子化係数を記憶部340に保存するとともに、係数グループ最適化部350、補正値算出部370及び最終係数位置判定部360へ渡す。係数最適化部330は、各直交変換係数について、量子化係数の候補の一つである0について算出した符号化誤差も記憶部340に保存する。
係数グループ最適化部350は、低周波数側から順に、係数グループごとに、その係数グループに含まれる量子化係数を0にするか否かを判定する。
最終係数が含まれる係数グループについては、係数グループ最適化の対象外であるため、係数グループ最適化部350は、着目する係数グループよりも高周波数側に最終係数が存在すると仮定する。そして係数グループ最適化部350は、着目する係数グループ内の量子化係数を維持した場合のその係数グループ全体のRDコストCGCost(m)と、着目する係数グループ内の全ての量子化係数を0に置換した場合のその係数グループ全体のRDコストCGCost0(m)を算出する。
係数グループ最適化部350は、着目する係数グループについて、CGCost0(m)がCGCost(m)よりも小さい場合、その係数グループに含まれる量子化係数を0に置換することを決定する。一方、係数グループ最適化部350は、CGCost0(m)がCGCost(m)以上である場合、その係数グループに含まれる量子化係数を維持することを決定する。そして係数グループ最適化部350は、その判定結果を表すフラグを記憶部340に保存するとともに、判定部380へ通知する。
補正値算出部370は、係数グループ間でのRDコストの比較に利用する、RDコストの補正値を、係数グループごとに算出する。
補正値算出部370は、着目する係数グループについての補正値を算出し、算出した補正値を最終係数位置判定部360へわたす。
最終係数位置判定部360は、低周波数側から順に、係数グループごとに、その係数グループに最終係数が含まれると仮定して、最終係数の候補を求める。
最終係数位置判定部360は、最終係数の位置及びその最終係数の位置に対応するTU全体のRDコストを判定部380へ通知する。
判定部380は、最終係数位置判定部360により求められた最終係数の位置に対応する、TU全体のRDコストと、TUに含まれる全ての量子化係数を0に置換するときのRDコストとを比較する。
特許文献2に記載の量子化装置300では、係数グループごとに自分よりも高周波な係数グループ、つまりスキャン順で前にある係数グループを非有意であると仮定し、レートおよびRDコスト計算を行っている。このような仮定を置くことで、係数丸め誤差最適化、係数グループの最適化、最終係数位置の最適化を1passで実行することが可能である。
また係数最適化部330では、図4に図示した係数絶対値決定部220と同様に、レート計算を近似する。係数間の依存関係をなくすことで、係数ごとの並列処理が可能である。
一方で、特許文献2に記載の技術を用いても、最終係数位置の最適化を係数単位での並列処理で行うのは困難である。このような場合、例えばGPU(Graphic Processing Unit)のような高並列プロセッサを用いたGPGPU(General Purpose Computing on Graphic Processing Unit)のような超高並列計算を用途とした場合に、変換係数の量子化を効率よく処理ができない。
図6は、非特許文献1に記載の最終係数位置最適化部1400の構成を示すブロック図である。
最終係数位置最適化部1400は、量子化処理された量子化後変換係数を入力として、最終係数位置に関して最適化された最適化後変換係数を出力する。
最終係数位置最適化部1400は、係数コスト計算部1410と、最終係数コスト計算部1420と、最終係数コスト判定部1430とから成る。
係数コスト計算部1410は、量子化後変換係数を入力として、各変換係数を符号化した際のコストと符号化しない際のコストとを計算する。尚、各変換係数を符号化した際のRDコストと符号化しない際のRDコストとは、量子化丸め誤差最適化部1200(図1)で算出することもできる。この場合には、係数コスト計算部1410を省略できる。
次いで、最終係数コスト計算部1420では、現在の最終係数位置候補のRDコストを計算する。ここで、最終係数位置候補は、スキャン順で各係数が順次設定される。
なお、最終係数位置候補は、データ長候補とも呼ばれる。従って、係数コスト計算部1410と最終係数コスト計算部1420との組み合わせは、各データ長候補のコストを順次に(一つずつ)計算するコスト計算部として働く。
最終係数コスト判定部1430は、最適な最終係数位置を保持する機能を有する。最終係数コスト判定部1430は、現在保持する最適な最終係数位置候補のRDコストと、最終係数コスト計算部1420で計算した最終係数位置候補のRDコストとを比較し、RDコストが低い方を最適な最終係数位置として選択する。
したがって、最終係数コスト判定部1430は、複数のデータ長候補の中からコストが最小となるデータ長候補を順次に(一つずつ)判定して、最適なデータ長を求める判定部として働く。
以下では、最終係数位置候補のRDコスト計算方法について説明する。
最終係数位置をlとしたときのRDコストJlast=lは、TBの大きさをN、任意の係数位置iの係数を符号化したときのRDコストをJi,code、0にしたときのRDコストをJi,cutとすると、以下の式(3)で表される。
Figure 0007020431000003
また、Jlast=lとJlast=l+1との間の関係は、以下の式(4)で表すことができる。
Figure 0007020431000004
(4)式より、最終係数位置l+1のRDコストは、最終係数位置lのRDコストJlast=lにJi,cutを足し合わせ、Ji,codeを引けば良いことがわかる。このように、最終係数位置候補のRDコストから最終係数位置候補の係数値を符号化したときのRDコストと符号化しないときのRDコストを足し算または引き算することで、スキャン順で次の最終係数位置候補のRDコストを求めることができる。
図7は、非特許文献1に記載の最終係数位置最適化処理の流れを示すフローチャートである。
はじめに、係数コスト計算部1410において、各係数を符号化した際のRDコスト(図7中では、Ji,codeと示す)と、符号化しない際のRDコスト(図7中では、Ji,cutと示す)とを計算する。
最終係数位置最適化部1400は、現在のRDコスト(図7中では、Jcurと示す)を現在のTBのコスト、すなわち最終係数位置最適化前のRDコストで初期化する(ステップS101)。
以下では、最終係数位置最適化部1400は、スキャン順で最初の係数ブロックから順次処理する。また、最終係数位置最適化部1400は、係数ブロック内の係数に関してもスキャン順に順次処理する。
まず、最終係数位置最適化部1400は、現在着目する最終係数(図7中では、Levelcurと示す)が非ゼロか否かチェックする(ステップS102)。現在着目する最終係数位置が非ゼロだった場合、ステップS103に進み、ゼロだった場合には、次の最終係数位置候補に関する処理に進む。
現在着目する最終係数位置が非ゼロだった場合、最終係数コスト計算部1420は、現在のRDコスト(図7中では、Jcurと示す)に、レートのコスト(図7中では、RATEcurと示す)を足し合わせる(ステップS103)。
レートは、例えば非特許文献1記載の技術ではCABAC(Context-Adaptive Binary Arithmetic Coding)の出力ビット数が有りうるが、特許文献1や特許文献2に記載の技術のように、CABAC入力前のbin数を用いて近似しても良い。近似をする際には、CABACの出力ビット数を用いる際と比較して、得られるレートの精度が落ち、画質またはビットレートの劣化が生じる。
次いで、最終係数コスト判定部1430は、現在のRDコスト(図7中では、Jcurと示す)が最適な最終係数位置候補のRDコスト(図7中では、Jbestと示す)よりも改善するか否かをチェックする(ステップS104)。改善する場合、ステップS105に進み、改善しない場合には、ステップS106に進む。
次いで、現在のRDコストが最適な最終係数位置候補のRDコストよりも改善する場合(ステップS104のyes)、最終係数コスト判定部1430は、最適な最終係数位置候補を更新する(ステップS105)。
次いで、最終係数コスト判定部1430は、次の最終係数位置候補に着目する前に、現在着目している係数をゼロにカットする。具体的には、最終係数コスト判定部1430は、式(4)のように、現在のコスト(図7中では、Jcurと示す)からJi,cutを足し、Ji,codeを引く(ステップS106)。
以下同様に、最終係数位置最適化部1400は、全ての変換係数、係数グループに関して処理する。
このようにl=0から開始し、順次lを更新することで、各最終係数位置候補のRDコスト計算を省略でき、最終係数位置候補の探索をより小さい計算量で実現することができる。
一方で、このような逐次的なアルゴリズムは、並列処理が困難である。
上述したように、関連技術の量子化装置1000、200、300の問題点は、RDOQ処理において、最終係数位置の最適化を並列処理できない点である。関連技術の最終係数位置最適化部1400、最終係数位置決定部230、最終係数位置判定部360では、逆スキャン順に最終係数位置候補を更新し、RDコストを順次計算する必要がある。このため、GPUのような高並列なアーキテクチャでは、変換係数の量子化を効率的に処理できない。
以下、本発明を実施する形態について図面を参照して詳細に説明する。以下の各実施形態に記載されている構成は単なる例示であり、本発明の技術的範囲はそれらには限定されない。
[第1の実施形態]
[構成の説明]
図8は、本発明の第1の実施形態による量子化装置1000Aの構成例を示すブロック図である。量子化装置1000Aは、画像を量子化する量子化処理を行う装置である。
図示の量子化装置1000Aは、最終係数位置最適化部1400の代わりに最終係数位置最適化部1500を用いた点を除いて、図1に示された量子化装置1000と同様の構成を有する。
図9は、図8に示された最終係数位置最適化部1500の構成例を示すブロック図である。最終係数位置最適化部1500は、後述するように、圧縮による画質の劣化と圧縮率とを加味したコストを最小化する出力データ長の候補を求めることで、出力する最適なデータ長を決める処理部として動作する。なお、上記コストを計算する処理は複数のデータ長候補で部分的に共通な処理である。
図9に示すように、本第1の実施形態の最終係数位置最適化部1500は、係数コスト計算部1510と、最終係数コスト計算部1520と、最終係数コスト判定部1530とから成る。
本第1の実施形態の最終係数位置最適化部1500は、量子化後変換係数を入力として、レート歪み最適量子化処理された変換係数(以下、「最適化後変換係数」と表記する)を出力する。
また、本第1の実施形態の最終係数位置最適化部1500は、関連技術の最終係数位置最適化部1400(図6)と異なり、各係数単位で並列処理可能な点が異なる。ここで、「係数単位での並列処理」とは、各処理部にはN(Nは2以上の整数)個の付随する処理部が備わっており、Nが最大で変換ブロック内係数の総数となることを表す。すなわち、変換ブロック内の各係数が、各処理部1~Nで並列に処理される。また、ここでは並列数が最大となる例を示すが、並列数を下げて複数の係数をまとめて一つの処理部で処理しても良い。
係数コスト計算部1510は、第1乃至第Nの係数コスト計算部分1511、1512、・・・、151Nから成る。係数コスト計算部1510は、N個の量子化後変換係数を入力として、各係数を符号化した場合のRDコストJi,codeと、符号化しない場合のRDコストJi,cutとを計算し、出力する。ここで、レート計算では、近似によって係数間の依存関係はないものとする。例えば、特許文献1または特許文献2に記載の、bin数を用いて簡略したものがありうる。
また、係数コスト計算部1510は、係数コスト計算部1410(図6参照)と同様に、量子化丸め誤差最適化部1200(図8参照)でJi,codeとJi,cutとを算出した場合には、省略可能である。
最終係数コスト計算部1520は、第1乃至第Nの最終係数コスト計算部分1521、1522、・・・、152Nから成る。最終係数コスト計算部1520は、係数コスト計算部1510で求めた各係数を符号化した場合のRDコストJi,codeと、符号化しない場合のRDコストJi,cutとを入力して、各係数を最終係数位置としたときのRDコストを並列に計算し、出力する。
すなわち、係数コスト計算部1510と最終係数コスト計算部1520との組み合わせは、複数のデータ長候補のコストを共通の計算は分散しつつ並列に計算するコスト計算部として働く。
最終係数コスト判定部1530は、第1乃至第Nの最終係数コスト判定部分1531、1532、・・・、153Nから成る。最終係数コスト判定部1530は、最終係数コスト計算部1520で求めた各係数を最終係数位置としたときのRDコストを入力して、その最小値、すなわち最適な最終係数位置を並列に判定する。また、最終係数コスト判定部1530は、最終係数位置がスキャン順で担当する係数よりも手前だった場合には、担当する係数をゼロにし、最終係数位置に関して最適化された量子化後変換係数を出力する。
すなわち、最終係数コスト判定部1530は、複数のデータ長候補の中でコストが最小となる1つのデータ長候補を並列に判定して、最適なデータ長を求める判定部として働く。
したがって、最終係数位置最適化部1500は、複数のデータ長候補に関して並列に動作する。
[動作の説明]
次に、図10のフローチャートと図11の説明図とを参照して、本第1の実施形態の最終係数位置最適化部1500の動作について詳細に説明する。
まず、係数コスト計算部1510は、各係数を符号化した際のRDコストJi,codeと、符号化しない際のRDコストJi,cutとを計算する(ステップS201、図11の説明図では(a)に相当)。
尚、Ji,codeとJi,cutとは、係数間での依存関係がないように、例えばbin数を近似したものであるとする。近似を用いない場合、係数間で依存関係があるシンタックスの符号化に係るレートを別途計算し、足し合わせる必要がある。近似方法としては、例えば特許文献1や特許文献2に記載の技術がありうる。近似によって、係数ごとの並列処理が実現できる。
次いで、最終係数コスト計算部1520は、各最終係数位置候補のコストを計算する。
具体的には、まず、最終係数コスト計算部1520は、係数コスト計算部1510で求めた、Ji,cutとJi,codeとを、それぞれ、順方向exclusiveスキャンおよび、逆方向inclusiveスキャンする(ステップS202、図11の説明図では(b)に相当)。
ここで、スキャンとは、部分和を求める処理であり、効率的な並列処理方法が知られている。スキャンの並列処理方法としては、例えば、非特許文献2に記載のParallel Scanがありうる。Parallel Scanでは、図12に示すように、各データを隣接するデータに対し並列に足し合わせる。そして、Parallel Scanでは、足し合わされたデータを、次のステップで、さらに隣のデータに足し合わせる。これにより、部分和の並列計算における冗長な演算を削減し、並列計算に係るステップ数を削減できる。
ここで、順方向スキャンとは、スキャン順に従った部分和計算を示し、逆方向スキャンは、スキャン順とは逆順の部分和を示す。
また、要素xに関するinclusiveスキャンxi,inclusiveは、次式(5)で表される。
Figure 0007020431000005
要素xに関するexclusiveスキャンxi,exclusiveは、次式(6)で表される。
Figure 0007020431000006
次いで、最終係数コスト計算部1520は、ステップS202で求めた、Ji,cutの順方向部分和と、Ji,codeの逆方向部分和とを足し合わせる(ステップS203、図11の説明図では(c)に相当)。ここで、図11の(c)に注目すると、足し合わされた結果が式(3)と等しいことがわかる。このように順方向スキャンと逆方向スキャンとを用いることで、並列にそれぞれの最終係数位置候補のRDコストを求めることができる。
このように、最終係数コスト計算部1520は、各データを量子化しない際のコストの量子化順方向部分和と、各データを量子化する際のコストの量子化逆方向部分和とを求め、量子化順方向部分和と量子化逆方向部分和とを足し合わせることで、複数の最終係数位置候補に関する並列処理を、各最終係数位置候補間で共通な処理を分散しつつ実現している。
最後に、最終係数コスト判定部1530は、最適な最終係数位置を求める。
具体的には、最終係数コスト判定部1530において、まず最終係数コスト計算部1520で求めた各最終係数位置候補のRDコストのうち最小値を求める(ステップS204、図11の説明図では(d)に相当)。RDコストが最小値となる最終係数位置候補が、最適な最終係数位置となる。
ここで、最小値計算も同様に、並列処理方法が知られている。例えば、非特許文献3に記載のParallel Reduction処理が有りうる。Parallel Scanと同様に、Parallel Reductionでも隣接するデータを交換し合うことで、並列処理に係るステップ数を削減することが可能である。
次いで、最終係数コスト判定部1530は、求まった最適な最終係数位置に対し、各係数位置がスキャン順で前である場合にはステップS206に進み、スキャン順で後ろである場合にはステップS207に進む(ステップS205)。
係数位置がスキャン順で最終係数位置よりも前である場合、最終係数コスト判定部1530は、係数値を0にする(ステップS206)。
係数位置がスキャン順で最終係数位置よりも後ろである場合、最終係数コスト判定部1530は、係数値をそのまま出力する(ステップS207)。
このように、最終係数コスト判定部1530は、各データ長候補のコストを階層的かつ並列に比較することによって、コストが最小値となるデータ長候補を並列に判定している。
[効果の説明]
次に、本第1の実施形態の効果について説明する。
本第1の実施形態の最終係数位置最適化部1500は、処理に係るステップ数をO(N)ステップからO(logN)ステップに削減でき、最終計数位置の最適化処理を高速化できる。その理由は、順方向スキャン、逆方向スキャン、最小値のReductionといった効率的な並列処理を実現可能な方法を用いることで、各係数に関して効率的に並列処理できるように構成されているからである。
[第2の実施形態]
[構成の説明]
図13は、本発明の第2の実施形態による量子化装置1000Bの構成例を示すブロック図である。
図示の量子化装置1000Bは、最終係数位置最適化部1400の代わりに最終係数位置最適化部1600を用いた点を除いて、図1に示された量子化装置1000と同様の構成を有する。
図14は、図13に示された最終係数位置最適化部1600の構成例を示すブロック図である。
図14に示すように、本第2の実施形態の最終係数位置最適化部1600は、レート計算部1610と、係数コスト計算部1620と、最終係数コスト計算部1630と、最終係数コスト判定部1640とから成る。
本第2の実施形態の最終係数位置最適化部1600は、上記第1の実施形態の最終係数位置最適化部1500とは、レート計算部1610が含まれる点が異なる。
レート計算部1610は、第1乃至第Nのレート計算部分1611、1612、・・・、161Nから成る。
レート計算部1610は、各最終係数位置候補のRDコストに必要なレートの計算において、係数間の依存関係を考慮しつつ、より正確なレートを並列に計算する機能を有する。
また、レート計算部1610で求めた、各最終係数位置候補のレートは、最終係数コスト計算部1630に入力される。ここで、第1の実施形態よりレートが正確であるとは、最終係数位置最適化部1500のレート計算では係数間の依存関係をなくすために、近似を用いていたことによる。
また、本第2の実施形態の最終係数位置最適化部1600は、上記第1の実施形態の最終係数位置最適化部1500とは、最終係数コスト計算部1630において、レート計算部1610で求めたより正確なレートを、各最終係数位置候補のRDコストに足し合わせる機能を有する点が異なる。
その他の最終係数位置最適化部1600の構成は、第1の実施形態の最終係数位置最適化部1500と同様である。
すなわち、係数コスト計算部1620は、第1乃至第Nの係数コスト計算部分1621、1622、・・・、162Nから成る。最終係数コスト計算部1630は、第1乃至第Nの最終係数コスト計算部分1631、1632、・・・、163Nから成る。
したがって、レート計算部1610と係数コスト計算部1620と最終係数コスト計算部1630との組み合わせは、複数のデータ長候補のコストを共通の計算は分散しつつ並列に計算するコスト計算部として働く。
最終係数コスト判定部1640は、第1乃至第Nの最終係数コスト判定部分1641、1642、・・・、164Nから成る。
最終係数コスト判定部1640は、複数のデータ長候補の中でコストが最小となる1つのデータ長候補を並列に判定して、最適なデータ長を求める判定部として働く。
したがって、最終係数位置最適化部1600は、複数のデータ長候補に関して並列に動作する。
[動作の説明]
以下では、本第2の実施形態の最終係数位置最適化部1600の動作について説明する。
図15は、第2の実施形態の最終係数位置最適化部1600の動作を示すフローチャートである。
図15において、ステップS301とステップS304以外のステップS302、S303、S305~S308の処理は、それぞれ、図10に示すステップS201、S202、S204~S207の処理と同様である。
説明を簡略化する(重複した説明を避ける)ために、以下では図9からの相違点についてのみ説明する。
レート計算部1610は、係数間の依存関係を考慮して、各最終係数位置候補のレートを並列に計算する(ステップS301)。
ここで、レートとしては、例えば第1の実施形態と同様に、CABACに入力される前のbit数を表すbin数がありうる。一方で、第1の実施形態と異なり、第2の実施形態では、係数間で依存のあるシンタックスのbin数計算において、近似を行わない点が異なる。bin数計算の並列処理方法に関しては、後述する。
最終係数コスト計算部1630は、係数コスト計算部1620で求めた各係数を符号化するRDコストと、符号化しないRDコストと、レート計算部1610で求めた最終係数位置候補のレートとを足し合わせる(ステップS304)。
以下では、図16を参照して、HEVCの変換係数符号化に関するシンタックスの1つであるcoeff_abs_level_greater1_flagを例に、レート計算の並列処理方法を説明する。
coeff_abs_level_greater1_flagは係数グループごとに必要となるシンタックスである。また、coeff_abs_level_greater1_flagは、係数グループ内の係数に関して、係数の絶対値が1より大きい場合は”1”、小さい場合は”0”となる。加えて、coeff_abs_level_greater1_flagはスキャン順に非ゼロな係数を最大8個分格納できる。したがって、最終係数位置によってcoeff_abs_level_greater1_flagを格納できる係数が異なるため、並列処理が困難である。
本実施形態のレート計算部1610では、例えばこのようなcoeff_abs_level_greater1_flagに対し、以下のように並列処理する。
まず、入力された係数に対し、その絶対値が1より大きければフラグを立てる(図16中(a)に相当)。
次いで、絶対値が1より大きいフラグに関してスキャン順(符号化順)に対して逆方向inclusiveスキャンを実施する(図16中(b)に相当)。
最後に、各逆方向部分和に対して、その値と8とで小さいほうの値で更新する(図16中(c)に相当)。
このように絶対値が1より大きいことを示すフラグに対し、逆方向スキャンを実施することで、各最終位置候補のcoeff_abs_level_greater1_flagの符号化に係るbin数を並列計算できる。
尚、ここではcoeff_abs_level_greater1_flagのみに関して説明したが、その他のシンタックスのbin数に関しても同様の方法で並列処理可能である。
このように、レート計算部1610は、圧縮率コスト計算において各データ長候補における特定の条件を満たす係数の情報が必要な処理であって、上記特定の条件を満たす係数が存在することを示すフラグを求める。コスト計算部(1620,1630)は、上記フラグに対して並列処理する。
換言すれば、レート計算部1610は、上記フラグに対して部分和を計算するが、これは、圧縮率コスト計算において各データ長候補における特定の条件を満たす係数の数が必要な処理である。このように、上記フラグに対して部分和を計算することで、コスト計算部(1620,1630)は並列処理を実現している。
[効果の説明]
本第2の実施形態の最終係数位置最適化部1600は、並列処理効率を落とすことなく、より正確なレートを計算でき、より高い画質または圧縮率を実現できる。その理由は、Parallel Scanのような並列処理方法を用いることで、レート計算において係数間の依存関係を保持しつつ、各最終係数位置候補に関して並列処理できるように構成しているからである。
次に、具体的な実施例を用いて、本発明を実施するための形態の動作を説明する。
図17に示す情報処理装置は、制御装置10、並列処理装置20、画像データを格納するための記憶媒体30、およびプログラムメモリ40を備える。
並列処理装置20は、複数個のプロセシングユニット(PU)21から成る。図示の例では、並列処理装置20は、16個のプロセッシングユニット21から成る。しかしながら、プロセッシングユニット21の個数は、これに限定されないのは勿論である。
図17に示された情報処理装置において、プログラムメモリ40には図8や図13に示された各ブロックの機能を実現するためのプログラムが格納される。そして、並列処理装置20は制御装置10によって実行指示され、プログラムメモリ40に格納されているプログラムにしたがって、各プロセッシングユニット21で処理を並列実行することで、図8や図13に示された量子化装置1000A、1000Bの機能を実現する。
ここで、制御装置10は、例えば、CPU(Central Processing Unit)であってよく、並列処理装置20としてはGPU(Graphic Processing Unit)を用いることができるが、これらに限定されないのは勿論である。
次に、図17に示された情報処理装置が「処理を並列に実行する」ことに関して、図9に示した第1の実施形態の最終係数位置最適化部1500が実行する場合を例に挙げて説明する。
まず、制御装置10が、並列処理装置20の動作を制御することにより、係数コスト計算部1510が実行する第1の工程を実現する。この第1の工程の実行に際して、制御装置10は、1つ以上のPU21を用いて、第nの係数コスト計算部分151nで実施される処理を実行する。ここで、1≦n≦Nである。並列処理装置20の複数のPU21を用いてこの動作を実行することにより、第1乃至第Nの係数コスト計算部分1511~151Nの各ブロックの並列動作が実現され得る。
係数コスト計算部1510の実行(第1の工程)が完了したら、制御装置10は、次の第2の工程では、最終係数コスト計算部1520の動作を、並列処理装置20を同様に制御することにより実現する。すなわち、この第2の工程の実行に際して、制御装置10は、1つ以上のPU21を用いて、第nの最終係数コスト計算部分152nで実施させる処理を実行させる。並列処理装置20の複数のPU21を用いてこの動作を実行することにより、第1乃至第Nの最終係数コスト計算部分1521~152Nの各ブロックの並列動作が実現され得る。
最終係数コスト計算部1520の実行(第2の工程)が完了したら、制御装置10は、次の第3の工程では、最終係数コスト判定部1530を、並列処理装置20を同様に制御することより実現する。すなわち、この第3の工程の実行に際して、制御装置10は、1つ以上のPU21を用いて、第nの最終係数コスト判定部分153nで実施される処理を実行させる。並列処理装置20の複数のPU21を用いてこの動作を実行することにより、第1乃至第Nの最終係数コスト判定部分1531~153Nの各ブロックの並列動作が実現され得る。
また、上記では第1、第2、第3の各工程において、制御装置10が並列処理装置20を制御する例を示したが、その限りではなく、制御装置10が事前に全工程をまとめて並列処理装置20に指示しても良い。
このときのPU21への処理の配置や、PU21間の通信などは、本実施例において、一般的な技術を用いることができる。なお、PU21間の通信とは、例えば、上流の計算部(上流の計算を実行するPU)から工程を跨いで次工程の複数の計算部(次工程の計算を実行する複数のPU)への通信を指す。
尚、上記実施形態では、最終係数位置最適化部1500、1600を、非特許文献1の最終係数位置最適化部1400と対応させて説明したが、本発明はこの限りではない。例えば、本発明の最終係数位置最適化部は、特許文献1の最終係数位置決定部230や、特許文献2の最終係数位置判定部360とも対応可能である。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、複数の構成要素の適宜な組合せにより種々の発明を形成できる。
尚、データ処理装置の各部は、ハードウェアとソフトウェアとの組み合わせを用いて実現すればよい。ハードウェアとソフトウェアとを組み合わせた形態では、RAM(random access memory)に量子化プログラムが展開され、該量子化プログラムに基づいて、CPU(central processing unit)等の制御装置10が、演算処理部(GPU(Graphic Processing Unit))等の並列処理装置20のハードウェアを動作させることによって、各部を各種手段として実現する。また、該量子化プログラムは、記録媒体に記録されて頒布されても良い。当該記録媒体に記録された量子化プログラムは、有線、無線、又は記録媒体そのものを介して、メモリに読込まれ、制御部(制御装置10、並列処理装置20)等を動作させる。尚、記録媒体を例示すれば、オプティカルディスクや磁気ディスク、半導体メモリ装置、ハードディスクなどが挙げられる。
上記実施形態を別の表現で説明すれば、データ処理装置として動作させるコンピュータを、RAMに展開された量子化プログラムに基づき、係数コスト計算部1510、最終係数コスト計算部1520、および最終係数コスト判定部1530の組み合わせとして動作させることで、或いは、レート計算部1610、係数コスト計算部1620、最終係数コスト計算部1630、および最終係数コスト判定部1640の組み合わせとして動作させることで、実現することが可能である。
また、本発明の具体的な構成は前述の実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の変更があってもこの発明に含まれる。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
画像に対する量子化処理を行う量子化装置であって、
複数のデータ長について、前記画像の圧縮による画質の劣化と圧縮率とを加味したコストを計算する処理手段を含み、
前記コストを計算する処理は、前記複数のデータ長の間で、部分的に共通な処理であって、
前記処理手段は、
前記複数のデータ長に関して並列に動作し、
前記複数のデータ長の間で共通な処理を、分散しつつ並列に実行するコスト計算手段と、
前記複数のデータ長の中で、前記コストが最小となる1つのデータ長を、最適なデータ長として求める判定手段とを有することを特徴とする量子化装置。
(付記2)
前記コスト計算手段は、
各データを量子化しない際のコストの量子化順方向部分和と、各データを量子化する際のコストの量子化逆方向部分和とを求め、前記量子化順方向部分和と前記量子化逆方向部分和とを足し合わせることで、前記複数のデータ長についての前記コストを並列に計算する付記1に記載の量子化装置。
(付記3)
前記判定手段は、
前記複数のデータ長についての前記コストを階層的かつ並列に比較することによって、前記コストが最小値となるデータ長を判定することを特徴とする付記1又は2に記載の量子化装置。
(付記4)
前記複数のデータ長について、特定の条件を満たす画素が存在することを示すフラグをそれぞれ求め、前記フラグに対して並列処理を実行することによって、前記コストを計算するために必要な、前記画像の圧縮率を計算するレート計算手段をさらに含むことを特徴とする付記1から3のいずれか1つに記載の量子化装置。
(付記5)
前記レート計算手段は、前記フラグの部分和を並列に計算することを特徴とする付記4に記載の量子化装置。
(付記6)
前記量子化処理は、動画像符号化におけるRDOQ(Rate Distortion Optimized Quantization)処理であって、
前記コスト計算手段は、各データ長のコストとして、入力された係数のうち最後に符号化される最終係数位置のコストを計算し、
前記判定手段は、計算された複数の最終係数位置の中から、コストが最小となる最終係数位置を、前記最適なデータ長として決定し、
前記処理手段は、前記複数の最終係数位置に関して並列動作することを特徴とする付記1から5のいずれか1つに記載の量子化装置。
(付記7)
画像に対する量子化処理を量子化装置で実施する量子化方法であって、
複数のデータ長について、前記画像の圧縮による画質の劣化と圧縮率とを加味した量子化のコストを計算し、
前記コスト計算は、前記複数のデータ長の間で、部分的に共通な処理を含み、
前記複数のデータ長の間で共通な処理を、分散しつつ並列に実行し、
前記複数のデータ長の中で、前記コストが最小となる1つのデータ長を、最適なデータ長として出力する、
量子化方法。
(付記8)
各データを量子化しない際のコストの量子化順方向部分和と、各データを量子化する際のコストの量子化逆方向部分和とを求め、前記量子化順方向部分和と前記量子化逆方向部分和とを足し合わせることで、前記複数のデータ長についての前記コストを並列に計算する、付記7に記載の量子化方法。
(付記9)
前記複数のデータ長のコストを階層的かつ並列に比較することによって、コストが最小値となるデータ長を並列に判定する、付記7又は8に記載の量子化方法。
(付記10)
前記複数のデータ長の各々について、特定の条件を満たす画素が存在することを示すフラグを求め、前記フラグに対して並列処理を実行することによって、前記画像の圧縮率を計算することを特徴とする付記7から8のいずれか1つに記載の量子化方法。
(付記11)
前記フラグの部分和を並列に計算することを特徴とする付記10に記載の量子化方法。
(付記12)
前記量子化処理は、動画像符号化におけるRDOQ(Rate Distortion Optimized Quantization)処理であって、
入力された係数のうち最後に符号化される最終係数位置のコストを並列に計算し、
前記複数の最終係数位置の中から、前記コストが最小となる最終係数位置を、前記最適なデータ長として決定することを特徴とする付記7から11のいずれか1つに記載の量子化方法。
(付記13)
コンピュータに、画像に対する量子化処理を行わせる量子化プログラムであって、前記量子化プログラムは、前記コンピュータに、
複数のデータ長について、前記画像の圧縮による画質の劣化と圧縮率とを加味したコストを計算する処理を実行させるものであり、
前記コストを計算する処理は、前記複数のデータ長の間で、部分的に共通な処理を含み、
前記複数のデータ長の間で共通な処理を、分散しつつ並列に実行するコスト計算処理と、
前記複数のデータ長の中で、前記コストが最小となる1つのデータ長を、最適なデータ長として求める判定処理と、
を実行させる量子化プログラムを記録した、一時的でない記録媒体。
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
この出願は、2017年1月20日に出願された日本出願特願2017-008303を基礎とする優先権を主張し、その開示の全てをここに取り込む。
10 制御装置
20 並列処理装置
21 プロセッシングユニット(PU)
30 記憶媒体
40 プログラムメモリ
200 量子化装置
210 スケーリング部
211 第1のスケーリング部分
212 第2のスケーリング部分
21N 第Nのスケーリング部分
220 係数絶対値決定部
221 第1の係数絶対値決定部分
222 第2の係数絶対値決定部分
22N 第Nの係数絶対値決定部分
230 最終係数位置決定部
300 量子化装置
310 制御部
320 スケーリング部
330 係数最適化部
340 記憶部
350 係数グループ最適化部
360 最終係数位置判定部
370 補正値算出部
380 判定部
1000、1000A、1000B 量子化装置
1100 量子化部
1200 量子化丸め誤差最適化部
1300 係数グループ最適化部
1400 最終係数位置最適化部
1410 係数コスト計算部
1420 最終係数コスト計算部
1430 最終係数コスト判定部
1500 最終係数位置最適化部
1510 係数コスト計算部
1511 第1の係数コスト計算部分
1512 第2の係数コスト計算部分
151N 第Nの係数コスト計算部分
1520 最終係数コスト計算部
1521 第1の最終係数コスト計算部分
1522 第2の最終係数コスト計算部分
152N 第Nの最終係数コスト計算部分
1530 最終係数コスト判定部
1531 第1の最終係数コスト判定部分
1532 第2の最終係数コスト判定部分
153N 第Nの最終係数コスト判定部分
1600 最終係数位置最適化部
1610 レート計算部
1611 第1のレート計算部分
1612 第2のレート計算部分
161N 第Nのレート計算部分
1620 係数コスト計算部
1621 第1の係数コスト計算部分
1622 第2の係数コスト計算部分
162N 第Nの係数コスト計算部分
1630 最終係数コスト計算部
1631 第1の最終係数コスト計算部分
1632 第2の最終係数コスト計算部分
163N 第Nの最終係数コスト計算部分
1640 最終係数コスト判定部
1641 第1の最終係数コスト判定部分
1642 第2の最終係数コスト判定部分
164N 第Nの最終係数コスト判定部分

Claims (10)

  1. 画像に対する量子化処理を行う量子化装置であって、
    前記量子化処理が含む最終係数位置最適化処理において、それぞれ最終係数位置候補である複数のデータ長について、前記画像の圧縮による画質の劣化と圧縮率とを加味したコストを計算する処理手段を含み、
    前記コストを計算する処理は、前記複数のデータ長の間で、部分的に共通な処理であって、
    前記処理手段は、
    前記複数のデータ長に関して並列に動作し、
    前記複数のデータ長の間で共通な処理を、分散しつつ並列に実行するコスト計算手段と、
    前記複数のデータ長の中で、前記コストが最小となる1つのデータ長を、最適なデータ長として求める判定手段とを有する
    ことを特徴とする量子化装置。
  2. 前記コスト計算手段は、
    各データを量子化しない際のコストの量子化順方向部分和と、各データを量子化する際のコストの量子化逆方向部分和とを求め、前記量子化順方向部分和と前記量子化逆方向部分和とを足し合わせることで、前記複数のデータ長についての前記コストを並列に計算する請求項1に記載の量子化装置。
  3. 前記判定手段は、
    前記複数のデータ長についての前記コストを階層的かつ並列に比較することによって、前記コストが最小値となるデータ長を判定することを特徴とする請求項1又は2に記載の量子化装置。
  4. 前記複数のデータ長について、特定の条件を満たす画素が存在することを示すフラグをそれぞれ求め、前記フラグに対して並列処理を実行することによって、前記コストを計算するために必要な、前記画像の圧縮率を計算するレート計算手段をさらに含むことを特徴とする請求項1から3のいずれか1つに記載の量子化装置。
  5. 前記レート計算手段は、前記フラグの部分和を並列に計算することを特徴とする請求項4に記載の量子化装置。
  6. 前記量子化処理は、動画像符号化におけるRDOQ(Rate DistortionOptimized Quantization)処理であって、
    前記コスト計算手段は、各データ長のコストとして、入力された係数のうち最後に符号化される最終係数位置のコストを計算し、
    前記判定手段は、計算された複数の最終係数位置の中から、コストが最小となる最終係数位置を、前記最適なデータ長として決定し、
    前記処理手段は、前記複数の最終係数位置に関して並列動作することを特徴とする請求項1から5のいずれか1つに記載の量子化装置。
  7. 画像に対する量子化処理を量子化装置で実施する量子化方法であって、
    前記量子化処理が含む最終係数位置最適化処理において、それぞれ最終係数位置候補である複数のデータ長について、前記画像の圧縮による画質の劣化と圧縮率とを加味した量子化のコストを計算するコスト計算を実行し、
    前記コスト計算は、前記複数のデータ長の間で、部分的に共通な処理を含み、
    前記複数のデータ長の間で共通な処理を、分散しつつ並列に実行し、
    前記複数のデータ長の中で、前記コストが最小となる1つのデータ長を、最適なデータ長として出力する、
    量子化方法。
  8. 各データを量子化しない際のコストの量子化順方向部分和と、各データを量子化する際のコストの量子化逆方向部分和とを求め、前記量子化順方向部分和と前記量子化逆方向部分和とを足し合わせることで、前記複数のデータ長についての前記コストを並列に計算する、請求項7に記載の量子化方法。
  9. 前記複数のデータ長のコストを階層的かつ並列に比較することによって、コストが最小値となるデータ長を並列に判定する、請求項7又は8に記載の量子化方法。
  10. コンピュータに、画像に対する量子化処理を行わせる量子化プログラムであって、前記量子化プログラムは、前記コンピュータに、
    前記量子化処理が含む最終係数位置最適化処理において、それぞれ最終係数位置候補である複数のデータ長について、前記画像の圧縮による画質の劣化と圧縮率とを加味したコストを計算する処理を実行させるものであり、
    前記コストを計算する処理は、前記複数のデータ長の間で、部分的に共通な処理を含み、
    前記複数のデータ長の間で共通な処理を、分散しつつ並列に実行するコスト計算処理と、
    前記複数のデータ長の中で、前記コストが最小となる1つのデータ長を、最適なデータ長として求める判定処理と、
    を実行させる量子化プログラム。
JP2018563358A 2017-01-20 2018-01-17 量子化装置、量子化方法およびプログラム Active JP7020431B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017008303 2017-01-20
JP2017008303 2017-01-20
PCT/JP2018/001156 WO2018135520A1 (ja) 2017-01-20 2018-01-17 量子化装置、量子化方法および記録媒体

Publications (2)

Publication Number Publication Date
JPWO2018135520A1 JPWO2018135520A1 (ja) 2019-11-14
JP7020431B2 true JP7020431B2 (ja) 2022-02-16

Family

ID=62908085

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018563358A Active JP7020431B2 (ja) 2017-01-20 2018-01-17 量子化装置、量子化方法およびプログラム

Country Status (3)

Country Link
US (1) US10834402B2 (ja)
JP (1) JP7020431B2 (ja)
WO (1) WO2018135520A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113573056A (zh) * 2021-05-25 2021-10-29 杭州博雅鸿图视频技术有限公司 一种率失真优化量化的方法、装置、存储介质及终端

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015050608A (ja) 2013-08-30 2015-03-16 富士通株式会社 量子化装置、量子化方法および量子化プログラム
JP2016134860A (ja) 2015-01-21 2016-07-25 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4293920A (en) * 1979-09-04 1981-10-06 Merola Pasquale A Two-dimensional transform processor
US7327786B2 (en) * 2003-06-02 2008-02-05 Lsi Logic Corporation Method for improving rate-distortion performance of a video compression system through parallel coefficient cancellation in the transform
US9756360B2 (en) * 2011-07-19 2017-09-05 Qualcomm Incorporated Coefficient scanning in video coding
JP2014523710A (ja) * 2011-07-22 2014-09-11 モトローラ モビリティ エルエルシー ビデオ・コーディングにおける直交形状変換をスキャンするためのデバイスおよび方法
KR102251828B1 (ko) * 2015-09-02 2021-05-13 삼성전자주식회사 율―왜곡 최적화 기반의 양자화 방법 및 그 장치
US20170310999A1 (en) * 2016-04-25 2017-10-26 Magnum Semiconductor, Inc. Method and apparatus for rate-distortion optimized coefficient quantization including sign data hiding
EP3499885A1 (en) * 2017-12-18 2019-06-19 Canon Kabushiki Kaisha Method and device for encoding video data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015050608A (ja) 2013-08-30 2015-03-16 富士通株式会社 量子化装置、量子化方法および量子化プログラム
JP2016134860A (ja) 2015-01-21 2016-07-25 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Hoyoung Lee et al.,Fast Quantization Method With Simplified Rate-Distortion Optimized Quantization for an HEVC Encoder,IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY,IEEE,2016年01月,VOL.26, NO.1,pp.107-116
Yongfei Zhang et al.,Fast Rate Distortion Optimized Quantization for HEVC,Visual Communication and Image Processing (VCIP),IEEE,2015年12月,pp.1-4

Also Published As

Publication number Publication date
US20190373262A1 (en) 2019-12-05
JPWO2018135520A1 (ja) 2019-11-14
US10834402B2 (en) 2020-11-10
WO2018135520A1 (ja) 2018-07-26

Similar Documents

Publication Publication Date Title
JP7350826B2 (ja) インタ予測方法及びその装置
US10609367B2 (en) Low-complexity sign prediction for video coding
US10142660B2 (en) Method of coding and decoding images, coding and decoding device, and computer programs corresponding thereto
JP5733590B2 (ja) 変換係数レベルを符号化するコンテキストモデリング技法
JP5409909B2 (ja) ビットストリームを復号する方法
JP4987086B2 (ja) 画像符号化方法及び復号方法、それらの装置、それらのプログラム並びにプログラムを記録した記録媒体
JP6681383B2 (ja) エンコーダ、デコーダ、および方法
US10652541B2 (en) Method and device for encoding video data
US10171809B2 (en) Video encoding apparatus and video encoding method
CN104685884A (zh) 用于混合视频编解码器的改进架构
JP2020205609A (ja) 画像の符号化及び復号方法、画像の符号化及び復号デバイス、及びこれに対応するコンピュータプログラム
KR20220003020A (ko) 인코딩 및 디코딩 방법, 장치, 및 기기
JP7020431B2 (ja) 量子化装置、量子化方法およびプログラム
US10735733B2 (en) Method and device for encoding video data
US20210029369A1 (en) Quantized coefficient coding
JP6992815B2 (ja) 動画像符号化装置、動画像符号化方法および動画像符号化プログラム
KR101979379B1 (ko) 영상의 부호화 방법 및 장치, 및 영상의 복호화 방법 및 장치
CN107409216B (zh) 图像编码和解码方法、编码和解码设备以及相应的计算机程序
US9245352B1 (en) Systems and methods for near lossless image compression
KR101802304B1 (ko) 하다마드 변환을 이용한 부호화 방법 및 이러한 방법을 사용하는 장치
KR101525325B1 (ko) 인트라 예측 모드 결정 방법 및 그 장치
CN116918327A (zh) 视频编码中基于状态的依赖量化和残差编码

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190621

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211012

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20211022

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211209

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220117

R151 Written notification of patent or utility model registration

Ref document number: 7020431

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151