JP2018050150A - 画像符号化装置、画像符号化方法及びコンピュータプログラム - Google Patents
画像符号化装置、画像符号化方法及びコンピュータプログラム Download PDFInfo
- Publication number
- JP2018050150A JP2018050150A JP2016183834A JP2016183834A JP2018050150A JP 2018050150 A JP2018050150 A JP 2018050150A JP 2016183834 A JP2016183834 A JP 2016183834A JP 2016183834 A JP2016183834 A JP 2016183834A JP 2018050150 A JP2018050150 A JP 2018050150A
- Authority
- JP
- Japan
- Prior art keywords
- image
- gradation
- encoding
- intra
- unit
- 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
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】HEVC方式のイントラスムージング処理の適応可否を、入力画像に応じて適応的に決定して、符号化画質を維持する。【解決手段】グラデーション検出部102は、入力画像を所定の画素ブロック単位でグラデーション画像かいなかを検出する。イントラスムージング処理決定手段104は、画面内に所定数以上グラデーション画像が含まれる場合に、画面内予測モードにおいて符号化ブロック境界の参照画素の線形補間を有効化するように符号化部105に指示する。【選択図】 図1
Description
本発明は、画像符号化装置、画像符号化方法及びコンピュータプログラムに関し、特に、画面内予測を用いる画像符号化装置、画像符号化方法及びコンピュータプログラムに関する。
従来、被写体を動画撮影することで得られた動画像データを圧縮符号化して記録するカメラ一体型動画像記録装置として、デジタルビデオカメラがよく知られている。
動画圧縮方式としては、フレーム間で動き予測を用いて高い圧縮率で圧縮可能なMPEG2方式及びH.264方式が一般的に用いられている。近年では、より複雑な予測方式を用いて高効率に圧縮可能なHEVC方式(ISO/IEC23008−2)が用いられるようになっている。
HEVC方式では、H.264方式に対して圧縮効率を向上させるためのさまざま改良が採用されている。その一つとして、画面内予測処理時に近接画素間の相関関係を利用して符号化効率を高めるため、符号化ブロックに隣接する参照画素にフィルタ処理を施す技術が知られている。特に、このフィルタ処理において、色の濃淡や明暗が段階的に少しずつ変化するグラデーション領域に対して、視覚的な品質を高めるための特別なフィルタ処理を条件により適用できるようになっている。
図14を参照して、グラデーション領域用フィルタ処理の必要性を簡単に説明する。図14(a)は、グラデーション領域内にブロック境界がある場合の画素値の変化例を示す。横軸は、画素を示し、縦軸は輝度値を示す。H.264方式では、ブロック単位で圧縮処理を行うので、符号化対象ブロック周辺に隣接する符号化済み画素ブロック間でブロック境界の画素が不連続になる。この結果、画面内予測を採用する符号化画像ブロックにおいて、ブロック境界の参照画素間で画素値が不連続な値となったまま予測画像を生成することになる。そうすると、図14(b)に示すように、擬似輪郭が発生してしまう。図14(b)では、符号化対象ブロックの中心に右上から左下に接続する線状に擬似輪郭が発生する様子を示す。
このような問題に対し、特許文献1には、規格で定められている画素位置よりもさらに広範囲に参照画素を定義して予測値を生成する方法が記載されている。特許文献2には、符号化ブロック単位でグラデーション検出を行い、グラデーション画像と判定した画像ブロックにおいては、画面内予測の画素サイズを規格上最小のサイズに設定することが記載されている。
そこで、HEVC方式では、隣接するブロック境界の参照画素両端の画素値と平均値との差の絶対値が、輝度のビット深度に応じて決定される閾値未満である場合、参照画素の中を線形補間するイントラスムージング処理が定義されている。ただし、この処理を適用するためには、ブロック境界間の画素値の差に加え、以下の3条件をすべて満たす必要がある。第1に、周波数変換を行う画素ブロックサイズ(Trasnform Unitサイズ:TUサイズ)が32×32画素であること。第2に、方向性予測のモード値(predModeIntra)が、1(DC予測)、10(水平方向予測)及び26(垂直方向予測)のいずれでもないこと。第3に、シーケンスパラメータセット(以下、「SPS」と呼ぶ)の変数strong_intra_smoothing_enabled_flagが1であること。
引用文献1に記載の技術は、H.264方式に限定されるものであり、HEVC方式を採用する動画符号化装置には適用できない。
引用文献2に記載の技術は、HEVC方式のイントラスムージング処理に依らない方法である。しかし、マクロブロック単位での処理になるので、符号化ピクチャ全体および動画シーケンス全体で符号化効率を必ずしも高めることができない。
HEVC方式のイントラスムージング処理を採用する方式において、SPS中の変数strong_intra_smoothing_enabled_flagを常に1にすると、符号化シーケンスすべてに対して線形補間フィルタ処理が適用される。この方法では、入力画像の絵柄によっては画像の解像感が損なわれてしまい、必ずしも視覚特性を向上できない場合がある。
本発明は、入力画像に応じて適応的にイントラスムージング処理の適用可否を決定できる、HEVC方式を適用可能な画像符号化装置、画像符号化方法及びコンピュータプログラムを提示することを目的とする。
上記の課題を解決するために、本発明に係る画像符号化装置は、入力画像を符号化する画像符号化装置であって、前記入力画像を符号化ブロック単位で符号化する符号化手段であって、画面内予測モードにおいて符号化ブロック境界の参照画素を線形補間するモードを有する符号化手段と、前記符号化手段が符号化しようとする前記符号化ブロックに対して所定の画素ブロック単位でグラデーション画像かいなかを検出するグラデーション検出手段と、前記符号化手段が符号化対象ブロック画像に対して前記画面内予測モードでの参照画像の線形補間処理の適用可否を決定するイントラスムージング処理決定手段であって、前記グラデーション検出手段により前記グラデーション画像と判定された前記画素ブロック数が所定数以上になったとき、前記線形補間の有効化を前記符号化手段に指示するイントラスムージング処理決定手段とを有することを特徴とする。
本発明によれば、入力画像のグラデーション検出結果に基づいてイントラスムージング処理の適用可否を判断するので、符号化ピクチャ全体および動画シーケンスとしての画質を維持または改善できる。
以下、図面を参照して、本発明の実施例を詳細に説明する。
図1は、本発明に係る画像符号化装置の一実施例を採用する撮像装置の概略構成ブロック図を示す。図1に示す撮像装置は、撮像部101、グラデーション検出部102、イントラスムージング処理決定部104、および符号化部105から構成されている。グラデーション検出部102は分散値算出部103を有する。
撮像部101は、CCDセンサ等の撮像素子、撮像素子に被写体光学像を入射する光学系、及び、撮像素子の出力画像信号をデジタル化し、所定の映像フォーマットの動画像データとして出力する画像処理部からなる。
グラデーション検出部102は、撮像部101から出力される動画像データの各フレーム画像を複数の画素ブロックに分割し、画素ブロック単位でグラデーション画像であるか否かを判断検出する。分散値算出部103は、各画像領域における画素値分布の分散を算出する。グラデーション検出部102は、分散値算出部103で算出された分散値が、単色の分散値でなく、且つ、一定値未満の値を示す場合に、グラデーション画像と判定する。
イントラスムージング処理決定部104は、グラデーション検出部102の検出結果に従い、当該フレーム画像中に含まれるグラデーション画像と判断された画素ブロック数を累積する。1つのフレーム画像中でグラデーション画像の画素ブロック数が所定数以上の場合、イントラスムージング処理決定部104は、そのフレーム画像の画面内予測モードで符号化ブロック境界の参照画素の線形補間の適用可否を決定する。適用する場合、イントラスムージング処理決定部104は、イントラスムージング処理を有効にする指示信号(スムージング有効化指示信号)を符号化部105に出力する。
符号化部105は、撮像部101から出力される動画像データを、イントラスムージング処理決定部104からの通知を参照しつつ、HEVC方式で圧縮符号化し、得られた符号データを所定のビットストリーム形式で出力する。
本実施例では、グラデーション検出の画素ブロックのサイズを、符号化部105での処理単位と同一のサイズ、すなわち、HEVC規格で定義されているCTU(Coding Tree Unit)としているが、異なっても良い。
図2は、符号化部105の概略構成ブロック図を示す。符号化部105は、撮像部101からの動画像データをフレーム単位でフレームメモリ201に格納する。フレームメモリ201は、他に、動き予測処理で用いる参照画像データを格納する。
イントラ予測部202は、フレームメモリ201に格納されたフレーム画像データから符号化対象ブロックの画像データを読み出し、符号化対象ブロック周辺の参照画素データから生成される複数のイントラ予測画像との相関を計算する。イントラ予測部202には、イントラスムージング処理決定部104の出力信号も入力する。イントラスムージング処理決定部104からスムージング有効化指示信号が入力する場合、イントラ予測部202は、イントラ予測のための予測画像の生成においてブロック境界の参照画素に対する線形補間処理を有効にする。イントラ予測部202は、最も相関の高いイントラ予測方式を選択し、イントラ・インター判定部204に通知する。
インター予測部203は、フレームメモリ201に格納される符号化対象ブロックの原画像データと符号化済みの画像データとの間で、符号化ブロック単位で画素データ同士のパターンマッチングを行い、動きベクトルを算出する。インター予測部203は、算出した動きベクトルをイントラ・インター判定部204に供給する。
イントラ・インター判定部204は、イントラ予測部202とインター予測部203の出力結果に基づいて適用すべき予測モードを決定し、予測画像生成部205に出力する。例えば、イントラ・インター判定部204は、イントラ予測部202の出力に従い、符号化対象画像ブロックについて予測画像を生成し、この予測画像と符号化対象ブロック画像との予測誤差を算出する。イントラ・インター判定部204はまた、インター予測部203で求めた動きベクトルに従い、参照画像から予測画像を生成し、この予測画像と符号化対象ブロック画像との予測誤差を算出する。そして、イントラ・インター判定部204は両予測誤差を比較し、小さい方の予測方式を、符号化に適用すべき予測モードとする。イントラ予測部202及び/またはインター予測部203が予測誤差の算出までを実行している場合、イントラ・インター判定部204は、不足する予測誤差を算出した上で、比較し、適用すべき予測モードを決定すればよい。
予測画像生成部205は、イントラ・インター判定部204で決定された予測モードに応じて予測画像を生成する。予測画像生成部205には、イントラスムージング処理決定部104の出力信号も入力する。イントラスムージング処理決定部104がスムージング有効化指示信号を出力する場合、先に説明したように、符号化対象画像はグラデーション画像ということになる。予測画像生成部205は、グラデーション画像の場合、イントラ予測モード、TUサイズが32×32画素、そして、方向性予測のモード値が1、10及び26のいずれでもないという3条件を、適用すべき符号化条件が満たすかどうかを判定する。これらの3条件を満たすとき、予測画像生成部205は、線形補間処理を施した参照画素から予測画像を生成する。
減算器214は、フレームメモリ201からの符号化すべき画像データから、予測画像生成部205からの予測画像を減算する。減算器214での減算により生成される差分画像データは、整数変換部206に入力する。整数変換部206は、減算器214からの差分画像データを符号化ブロック単位で空間周波数領域に変換する。整数変換部206の整数変換は、周波数変換の一例である。
量子化部207は、目標符号量に基づいて量子化係数を算出し、整数変換部206から出力される空間周波数領域の係数データを量子化する。量子化された係数データは、エントロピー符号化部208と逆量子化部210に入力する。
エントロピー符号化部208は、量子化部207からの量子化された係数データをエントロピー符号化する。例えば、エントロピー符号化部208は、インター予測の場合、動き予測で用いたベクトル値を、CABAC(コンテキスト適応算術符号化)方式等のビットデータの出現確率の偏りを利用して情報圧縮する。エントロピー符号化部208は、圧縮後の符号化データをビットストリーム生成部213に供給する。
ビットストリーム生成部213は、エントロピー符号化部208からの符号化データに復号に必要なパラメータを含むヘッダ情報を付加し、所定のストリーミング形式で出力する。復号処理に必要なパラメータは、例えば、SPS及びピクチャパラメタセット(以下、「PPS」という。)を含む。ビットストリーム生成部213はまた、符号化画像においてイントラスムージング処理を適用したピクチャに対しSPS中のstrong_intra_smoothing_enabled_flagフィールド値を1としたヘッダを参照するように関連付ける。
イントラスムージング処理を適用した符号化ピクチャに対するSPSおよびPPSヘッダとの関連付け方法の詳細と、ビットストリームのデータ構造との関係は。後述する。ビットストリーム生成部213の出力は、例えば、メモリカードまたはハードディスクなどの図示しない記録媒体に記録される。
イントラスムージング処理を適用した符号化ピクチャに対するSPSおよびPPSヘッダとの関連付け方法の詳細と、ビットストリームのデータ構造との関係は。後述する。ビットストリーム生成部213の出力は、例えば、メモリカードまたはハードディスクなどの図示しない記録媒体に記録される。
符号量制御部209は、エントロピー符号化部208が出力する符号化データの符号量を取得し、ビットレート及びバッファモデルに基づいて1ピクチャ当たりの目標符号量を算出し、量子化部207の量子化係数をフィードバック制御する。
ローカルでの復号処理に関係する部分を説明する。逆量子化部210は、量子化部207からの量子化した係数データに量子化係数を乗算することで逆量子化する。これにより、係数データが再構成される。逆整数変換部211は、逆量子化部210から出力される係数データを画素データに逆整数変換する。加算器215は、逆整数変換部211の出力に予測画像生成部205からの予測画像データを加算する。これにより、画像データが復元される。加算器215の出力画像データは参照画像データとして予測画像生成部205とループフィルタ212に供給される。
ループフィルタ212は、加算器215の出力画像データに、ブロック境界で発生する符号化歪みを軽減するフィルタ処理を施し、フレームメモリ201に格納する。
図3は、本実施例の符号化処理のフローチャートを示す。図3に示す処理は、グラデーション検出部102、分散値算出部103、イントラスムージング処理決定部104およびビットストリーム生成部213により実行される。図3に示す処理は、入力フレーム画像単位に繰り返して実行される。演算負担を軽減する見地からは、図3に示す処理を、人間の視覚特性上、変化を検知しやすい輝度成分について実行するようにしてもよい。
S301で、グラデーション検出部102は、分散値算出部103により入力フレーム画像データについて全CTUブロック分の分散値VARを計算済みか否かを判断する。全CTUブロックについて分散値を算出済みの場合(S301でTRUE)、S305に遷移し、分散値を未算出のCTUブロック画像が残っている場合(S301でFALSE)、S302に遷移する。
S302で、分散値算出部103は、各CTUブロック画像の分散値VARを一つずつ計算する。ここでは、分散値算出部103は、所定の画像ブロック内の全画素に対して、各画素値の二乗和の平均値から全画素の平均値の二乗を減じた値を、分散値VARとして計算する。すなわち、
分散値VARは、画像ブロックにおける画素値の散らばり具合を示す指標である。分散値が大きいと画素のバラツキが大きく複雑な絵柄であると判断できる。他方、分散値VARが小さい場合、平坦な絵柄であると判断できる。
S302に続くS303で、グラデーション検出部102は、S302で算出された分散値が閾値未満かどうかを判断する。この閾値は、グラデーション画像のような平坦な絵柄の場合に取り得る値として予め定められる。この閾値は、分散値を計算するブロック画像の大きさに依存するが、32×32画素または64×64画素のマクロブロックサイズの場合、10から100程度に設定されるのが好ましい。ブロック画像の分散値が閾値未満である場合(S303でTRUE)、S304に遷移する。他方、ブロック画像の分散値が閾値以上である場合(S303でFALSE)、S301に戻って、次のCTUブロック画像について処理を繰り返す。
S304で、グラデーション検出部102は、入力画像中に含まれるグラデーション画像と推定されるCTUブロック数の値をインクリメントする。この後、S301に戻って、次のCTUブロック画像について処理が繰り返される。
S305で、グラデーション検出部1102は、グラデーション画像と推定したCTUブロック数が予め定めた閾値以上であるかどうかを判断する。この閾値は、注目する入力フレーム画像中に分散値の小さい、すなわちグラデーション画像のような平坦な絵柄を多く含むか否かを判断するのに使用される。この閾値は、例えば、画面内の全CTUブロック中、8割から9割以上が平坦となる個数を目安として設定するものとする。入力フレーム画像が、グラデーション画像を多く含む場合(S305でTRUE)、S306に遷移する。入力フレーム画像に多くのオブジェクトやテクスチャ等の複雑な絵柄を含む分散値の大きな画像である場合(S305でFALSE)、S308に遷移する。
S306で、イントラスムージング処理決定部104は、イントラスムージング処理有効化信号を符号化部105に出力し、符号化部105は、このイントラスムージング処理有効化信号に従い入力フレーム画像データを符号化する。S307で、ビットストリーム生成部213は、符号化したピクチャデータについて、strong_intra_smoothing_enabled_flagを1に設定したSPSとスライスヘッダを関連付けたビットストリームを生成する。
S308で、符号化部105は、フレーム画像データを、イントラスムージング処理を無効にして圧縮符号化する。S309で、ビットストリーム生成部213は、符号化したピクチャデータについて、strong_intra_smoothing_enabled_flagを0に設定したSPSとスライスヘッダを関連付けてビットストリーム生成する。
ビットストリーム生成部213から出力されるビットストリームデータの構造を説明する。図4Aは、ステップS307およびS309において、イントラスムージング処理を有効にした場合のビットストリーム構造例を示し、図4Bは、パラメータセットの参照関係を示す。
図4Aに示すように、HEVC方式の符号化ビットストリ-ムでは、H.264方式と同じく複数のアクセスユニット(以下、「AU」という。)が復号順に連続したデータ構造が採用されている。各AUは、画面単位に復号化可能な符号化データから成る。AUは、開始位置を示すアクセスユニットデリミタ(AUD)、復号時に必要な各種パラメータを持つビデオパラメタセット(VPS)、及び、SPSまたはPPSと呼ばれる複数のNALユニットから構成される。実際のマクロブロック単位で符号化されたデータは、スライスデータとしてヘッダパラメタに続いて1ピクチャずつ格納される。
SPSまたはPPSと呼ばれるヘッダ情報は、規格上、ストリーム途中で変更可能である。例えば、絵柄に応じて量子化マトリクス及びデブロッキングフィルタ強度等のパラメータをAU単位にリロードできる。この機能を実現するには、ストリーム出力のタイミングで、符号化スライスデータと、この符号化スライスデータを復号する際に必要なヘッダ情報とを、それぞれのヘッダ情報に含まれる識別子(ID)によって関連付ける。
図4Bは、VPS、SPS、PPS及びスライスデータ間の参照関係を示す。VPSは、当該VPSを識別するためのvps_video_parameter_set_idを持つ。SPSは、当該SPSが参照するVPSのIDを付したsps_video_parameter_set_idと、当該SPSを識別するためのsps_seq_parameter_set_idを持つ。同様に、PPSは、当該PPSが参照するSPSのIDを付したpps_seq_parameter_set_idと、当該PPSを識別するpps_pic_parameter_set_idを持つ。スライスヘッダは、当該スライスが参照するPPSのIDと、slice_pic_parameter_set_idを収容する。これら識別情報のリンクに基づいて、図4Bに矢印で示す参照関係のように、スライスデータからPPS、PPSからSPS、そしてSPSからVPSへと同じIDとなるヘッダ情報の関連づけを行う。これにより、AU単位で異なるヘッダを参照できるようになる。
図4Bに示す例では、スライス0およびスライス1に該当する入力画像が非グラデーション画像であり、スライス2に該当する部分がグラデーション画像である。この結果、これらスライス0,1に対して、strong_intra_smoothing_enabled_flag値が0のSPS0を参照する構成になっている。スライス2に対しては、strong_intra_smoothing_enabled_flag値が1のSPS2を参照するようになっている。これにより、スライス2の復号時には、スムージング処理を用いた予測画像を生成してブロック境界の歪みの無い再生画像を得ることができる。
ステップS307,S309で行うイントラスムージング処理の有効または無効の設定は、符号化済みのスライスデータが生成された後に、それぞれ対応するフラグ値を有するSPSを予め用意してから関連づけるようにしても良い。
このように、実施例1では、符号化処理を行う前に入力画像データに対して分散値に基づきグラデーション画像かどうかを判別し、この判別結果に基づいて画面内予測時のイントラスムージング処理を制御する。
入力画像データのダイナミックレンジを用いてグラデーション画像を判定する実施例2を説明する。図5は、実施例2を採用する撮像装置の概略構成ブロック図を示す。図1と同じ機能の構成要素には同じ符号を付してあり、詳細な説明を省略する。
グラデーション検出部102に代わるグラデーション検出部502は、分散値算出部103に代わるダイナミックレンジ算出部503を有する。グラデーション検出部502は、ダイナミックレンジ算出部503により算出されるフレーム画像のダイナミックレンジにより入力画像の注目部分がグラデーション画像かどうかを判定することで、グラデーション画像を検出する。
図6は、図3に代わる実施例2の動作フローチャートを示す。なお、S605〜S609の処理は、それぞれ、S305〜S309の処理と同じである。
S601で、グラデーション検出部502は、ダイナミックレンジ算出部503により入力フレーム画像データについて全CTUブロック分のダイナミックレンジを計算済みか否かを判断する。全CTUブロックについてダイナミックレンジを算出済みの場合(S601でTRUE)、S605に遷移し、ダイナミックレンジを未算出のCTUブロック画像が残っている場合(S601でFALSE)、S602に遷移する。
S602で、ダイナミックレンジ算出部503は、注目するCTUブロックのダイナミックレンジを算出する。例えば、ダイナミックレンジ算出部503は、CTUブロック中の全画素における最大画素値と最小画素値の差を算出し、ダイナミックレンジとする。図7は、非グラデーション画像とグラデーション画像について、画像とそのヒストグラムの例を示す。図7(a)は、非グラデーション画像の例を示し、図7(b)はグラデーション画像の例を示す。図7(c)は、図7(a)に示す非グラデーション画像の画素値に対するヒストグラム例を示す。図7(d)は、図7(b)に示すグラデーション画像の画素値に対するヒストグラム例を示す。図7(c)、(d)で横軸は、注目する領域または画像に含まれる画素の画素値を示す。図7に示すように、被写体・物体を含む図7(a)に示すような画像の場合、そのヒストグラム形状は、図7(c)に示すように、山が複数で広範な画素値分布となり、ダイナミックレンジが広くなる。他方、図7(b)に示すように空などの平坦なグラデーションの画像の場合、画素値に対するヒストグラムは、図7(d)に示すように、ピークが無いかまたは一つの、特定の画素値レンジに集中する狭ダイナミックレンジになる。
S602に続くS603で、グラデーション検出部502は、S602で算出されたダイナミックレンジが閾値未満かどうかを判断する。この閾値は、グラデーション画像のような平坦な絵柄の場合に取り得る値として予め定められる。例えば、入力画像が8ビットで表現される場合、最大255階調のダイナミックレンジを有するが、その内の数パーセントから数十パーセント程度に、閾値を設定する。グラデーション検出部502は、輝度変化の少ない又は無い平坦な色調の画像を検出していることになる。
ブロック画像のダイナミックレンジが閾値未満である場合(S603でTRUE)、S604に遷移する。他方、ブロック画像のダイナミックレンジが閾値以上である場合(S603でFALSE)、S601に戻って、次のCTUブロック画像について処理を繰り返す。
S605以降の処理は、図3のS305以降の処理と同じなので、説明を省略する。
このように、実施例2では、入力画像データのダイナミックレンジを用いてグラデーション画像かどうかを判定し、この判断結果に基づいて画面内予測時におけるイントラスムージング処理を制御する。
入力画像を小さな複数のブロック画像に分割し、各ブロック画像の周波数変換係数中に高周波成分が出現しない場合に、DC成分値によりグラデーション画像かどうかを判定する実施例3を説明する。図8は、実施例3を採用する撮像装置の概略構成ブロック図を示す。図1と同じ機能の構成要素には同じ符号を付してあり、詳細な説明を省略する。
グラデーション検出部102に代わるグラデーション検出部802は、分散値算出部103に代えて、周波数変換部806及びDC成分取得部807を有する。周波数変換部806は、入力画像をCTUブロックより小さいサイズのブロック画像に分割し、各ブロック画像の画素値を周波数変換する。DC成分取得部807は、周波数変換部806による周波数変換の結果からCTUブロックサイズ内のDC成分値を抽出し、DC成分の最大値と最小値の差を計算する。この差は、実施例2におけるダイナミックレンジに相当する。グラデーション検出部502は、DC成分取得部807により算出されるDC成分の最大値と最小値の差によりグラデーション画像かどうかを判定することで、グラデーション画像を検出する。
図9は、図8に示す実施例3の動作フローチャートを示す。図9を参照して、実施例3の動作を説明する。
S901で、グラデーション検出部802は、入力フレーム画像データの全CTUブロックについてグラデーション画像か否かを判定済みかどうかを判断する。全CTUブロックについてグラデーション画像か否かを判定した場合(S901でTRUE)、S908に遷移し、未判定のCTUブロック画像が残っている場合(S901でFALSE)、S902に遷移する。
S902で、グラデーション検出部802は、周波数変換を行うために、注目するCTUブロック画像をさらに小さな複数のブロック画像に分割する。CTUサイズを32×32画素または64×64画素としてグラデ-ション判定を行う単位としている場合、分割後のブロックサイズを16×16画素または8×8画素等の約数で表現できるサイズに設定する。
S903で、グラデーション検出部802は周波数変換部806により、S902で分割したブロック画像を周波数変換させる。周波数変換方式は、アダマール変換、整数精度の離散コサイン変換(DCT)及び実数精度DCT等の公知技術のいずれかを適用してもよい。本発明は、特定の周波数変換方式に限定されない。
S904で、グラデーション検出部802は、周波数変換部806の出力から周波数変換の係数値を取得し、高周波成分の係数値が書定数以上存在するか否かを判断する。高周波成分の信号を多く持つことは、画像の特性としてエッジやテクスチャを含むことを示すものであり、イントラスムージング処理を施すに適したグラデーション画像ではないと判断できる。逆に、CTUブロック中の分割小ブロック画像に高周波成分が存在しないか少ない場合、グラデーション画像である可能性が高い。そこで、CTUブロック中の分割小ブロック画像に高周波成分が存在しないか少ない場合(S904でFALSE)、S905に遷移する。当該ブロック画像に高周波成分を多く含まれる場合(S904でTRUE)、S901に戻り、次のCTUブロック画像について処理を繰り返す。
S905で、グラデーション検出部802のDC成分取得部807が、S903で求めたCTUブロック内の全周波数成分の係数の内、図10に示すように分割小ブロック単位で導出した周波数領域のDC成分を取得する。図10(a)は、CTUブロック画像の直交変換の関係を示す。図10(b)は非グラデーション画像のDC成分値の分布例を示し、図10(c)は、グラデーション画像のDC成分値の分布例を示す。
DC成分は分割小ブロック内の画素値の平均値であり、分割小ブロックの明るさを示す指標である。DC成分が画像明るさを示す指標であることから、平坦ではあるがグラデーションを含まない画像では、CTUサイズ内でも明るさの変化が存在する。この場合、図10(b)に示すように、DC成分の最小値と最大値の差が大きくなる。他方、グラデーション画像の場合、分割小ブロック単位での明るさがCTU単位でもほとんど変わらず、この結果、図10(c)に示すように、DC成分の最小値と最大値の差が少なくなる。
S906で、グラデーション検出部802は、このような画像特性に基づいて、グラデーション画像かどうかを判定する。すなわち、グラデーション検出部802は、DC成分の最大値と最小値の差を算出し、この差値が予め定めた所定値未満か否かでグラデーション画像かどうかを判定し、グラデーション画像を決定する。差値が所定値未満であった場合(S906でTRUE)、S907に遷移する。他方、差値が所定値以上である場合(S906でFALSE)、S901に戻って、次のCTUブロック画像について処理を繰り返す。
S907で、S304と同様に、グラデーション検出部802は、入力画像中に含まれるグラデーション画像と推定されるCTUブロック数の値をインクリメントする。この後、S901に戻って、次のCTUブロック画像について処理が繰り返される。
S908〜S912の処理は、それぞれ、図3のS305〜S309の処理と同じである。
このように、実施例3では、DC成分の最大値と最小値の差によりグラデーション画像を判定し、この判定結果に基づいてイントラスムージング処理を有効または無効に制御する。
連続して所定回数以上グラデーション検出し、または検出しないときに、イントラスムージング処理の有効/無効を切り替えるようにした実施例4を説明する。実施例4では、動作シーケンス中のフラッシュや点滅等、一瞬だけオブジェクトが画面内に現れたような時にイントラスムージング処理を無効化または有効化されてしまうことで動画画質を損なうことを防止できる。
図11は、実施例4を採用する撮像装置の概略構成ブロック図を示す。図1と同じ機能の構成要素には同じ符号を付してあり、詳細な説明を省略する。
グラデーション検出部102に代わるグラデーション検出部1102は、分散値算出部103に加えて、連続検出回数計数部1107を有する。連続検出回数計数部1107は、グラデーション検出の連続回数及び非グラデーション検出の連続回数を計算する。本実施例では、グラデーション画像または非グラデーション画像の連続検出回数に応じて、符号化のイントラスムージング処理の有効化・無効化を制御する。実施例2および実施例3に示す構成においても、連続検出回数計数部1107の処理を追加することもできる。
CPU1116は、図11に示す撮像装置を全体的に制御する。特に、CPU1116は、操作部1117によるユーザ操作に従い、符号化部105の符号化の開始と終了を制御する。CPU1116が、グラデーション検出部1102及びイントラスムージング処理決定部104の機能をCPU1116上で動作するプログラムにより実現しても良い。
図12は、実施例4の動作フローチャートを示す。図12に示す処理は、符号化すべき入力画像データが無くなるまで、繰り返し実行される。
S1201で、CPU1116は、符号化部105に入力するフレーム画像が符号化すべき最終フレームかどうかを判定する。これは例えば、ユーザが操作部1117により録画停止をCPU1116に指示したときに発生しうる。最終フレームの場合(S1201でTRUE)、CPU1116は、図12に示すフローを終了する。最終フレームでない場合、すなわち、符号化すべき入力画像がある場合(S1201でFALSE)、S1202に遷移する。ス入力フレーム画像データの全CTUブロックについて分散値を算出済みの場合(S1202でTRUE)、S1206に遷移し、分散値を未算出のCTUブロック画像が残っている場合(S1202でFALSE)、S1203に遷移する。テップS1202〜S1205はそれぞれ、S301〜S305の処理と同じなので、説明を省略する。
S1206で、グラデーション検出部1102は、S305と同様に、グラデーション画像と推定したCTUブロック数が予め定めた閾値以上であるかどうかを判断する。入力フレーム画像がグラデーション画像を多く含む場合(S1205でTRUE)、S1207に遷移する。入力フレーム画像に多くのオブジェクトやテクスチャ等の複雑な絵柄を含む分散値の大きな画像である場合(S1206でFALSE)、S1214に遷移する。
S1207で、グラデーション検出部1102は、連続検出回数計数部1107の非グラデーション画像連続フレーム数CNGRをゼロに初期化する。S1208で、グラデーション検出部1102は、グラデーション画像連続フレーム数CGRDに1を加算するインクリメント処理を行い、S1209に遷移する。
S1209で、グラデーション検出部1102は、グラデーション画像連続フレーム数CGRDが所定値以上か否かを判断する。所定フレーム期間以上連続してグラデーション画像であった場合(S1209でTRUE)、ステップS1210に遷移する。グラデーション画像連続フレーム数CGRDが所定フレーム期間未満の場合は(S1209でFALSE)、ステップS1212に遷移する。
S1210で、イントラスムージング処理決定部104は、S306と同様に、イントラスムージング処理有効化信号を符号化部105に出力する。符号化部105は、このイントラスムージング処理有効化信号に従い入力フレーム画像データを符号化する。S1211で、ビットストリーム生成部213はS307と同じようにビットストリームを生成する。すなわち、ビットストリーム生成部213は符号化したピクチャデータについてstrong_intra_smoothing_enabled_flagを1に設定したSPSとスライスヘッダを関連付けたビットストリームを生成する。S1211の後、S1201に戻る。
S1212で、符号化部105は、S308と同様に、フレーム画像データを、イントラスムージング処理を無効にして圧縮符号化する。S1213で、ビットストリーム生成部213は、S309と同様に、符号化したピクチャデータについて、strong_intra_smoothing_enabled_flagを0に設定したSPSとスライスヘッダを関連付けてビットストリーム生成する。S1213の後、S1201に戻る。
S1214で、グラデーション検出部1102は、連続検出回数計数部1107のグラデーション画像連続フレーム数CGRDをゼロに初期化する。S1215で、グラデーション検出部1102は、非グラデーション画像連続フレーム数CNGRに1を加算するインクリメント処理を行い、S1216に遷移する。
S1218で、グラデーション検出部1102は、非グラデーション画像連続フレーム数CNGRが所定値以上か否かを判断する。所定フレーム期間以上連続して非グラデーション画像であった場合(S1218でTRUE)、ステップS1212に遷移する。非グラデーション画像連続フレーム数CNGRが所定フレーム期間未満の場合(S1218でFALSE),ステップS1210に遷移する。
グラデーション画像連続フレーム数CGRDの閾値(S1209)は例えば、ランダムアクセス再生を行う画面内符号化ピクチャ(Iピクチャ)から次のIピクチャまでのフレーム枚数に設定される。他には、いわゆるGOP長に相当するフレーム数、またはIピクチャおよび前方参照ピクチャ(Pピクチャ)の参照フレーム間の距離に相当するフレーム数でもよい。非グラデーション画像連続フレーム数CNGRの閾値(S1216)も、これらの何れかに設定されるのが好ましい。
図13は、実施例4における画像とスムージング処理の制御の例を示す。図13(a)は、比較用に、実施例4による連続回数による制御を適用しない例を示し、図13(b)は、本実施例4による例を示す。図13では、入力画像例として、グラデーションを背景として、小さなオブジェクトが画面左下から右上に時間経過とともに移動するシーンを示している。そして、シーン途中の3番目のフレームに突然画面内に多くのエッジとテクスチャを含むオブジェクトが出現する。画像例の下側に、イントラスムージング処理の有効(ON)・無効(OFF)状態を示した。
実施例1から3では、図13(a)に例示したように、急な入力画像のシーンが切り替わると、そのフレームだけスムージング処理が無効になる。他方、実施例4による連続検出回数計数部1107を用いたフィルタ処理の切替えを行った場合、図中(b)に示すように、3番目のフレームに対してもスムージング処理を有効(ON)にしたまま、符号化が行われる。このような制御によって、視覚上ユーザに対して急な画質変化の発生を抑止でき、動画像としての画質を維持または向上できる。
グラデーション検出部102,502,802,1102、イントラスムージング処理決定部104及び符号化部105の機能の一部または全部は、コンピュータ上で動作するコンピュータプログラムにより実現できる。また、動画の符号化に適用した実施例を説明したが、画面内予測に限る機能は、静止画の符号化にも適用可能である。
Claims (10)
- 入力画像を符号化する画像符号化装置であって、
前記入力画像を符号化ブロック単位で符号化する符号化手段であって、画面内予測モードにおいて符号化ブロック境界の参照画素を線形補間するモードを有する符号化手段と、
前記符号化手段が符号化しようとする前記符号化ブロックに対して所定の画素ブロック単位でグラデーション画像かいなかを検出するグラデーション検出手段と、
前記符号化手段が符号化対象ブロック画像に対して前記画面内予測モードでの参照画像の線形補間処理の適用可否を決定するイントラスムージング処理決定手段であって、前記グラデーション検出手段により前記グラデーション画像と判定された前記画素ブロック数が所定数以上になったとき、前記線形補間の有効化を前記符号化手段に指示するイントラスムージング処理決定手段
とを有することを特徴とする画像符号化装置。 - 前記グラデーション検出手段は、前記所定の画素ブロック単位の画像データの画素値から分散値を算出する分散値算出手段を有し、
当該分散値が所定値未満だった場合、前記所定の画素ブロック単位の画像データがグラデーション画像を含むと判断する
ことを特徴とする請求項1に記載の画像符号化装置。 - 前記グラデーション検出手段は、前記所定の画素ブロック単位の画像データについて画素値の最大値と最小値の差を計算するダイナミックレンジ算出手段を有し、
前記ダイナミックレンジが所定値未満だった場合、当該所定の画素ブロック単位の画像データがグラデーション画像を含むと判断する
ことを特徴とする請求項1に記載に画像符号化装置。 - 前記グラデーション検出手段は、
前記所定の画素ブロック単位の画像データをさらに小さな画素ブロックに分割して、周波数変換する周波数変換手段と、
前記周波数変換手段による周波数変換の係数値からDC成分のみを抽出するDC成分取得手段
とを有し、
前記DC成分取得手段で取得したDC成分値の最大と最小の差が所定値未満だった場合、前記所定の画素ブロック単位の画像データはグラデーション画像を含むと判断する
ことを特徴とする請求項1に記載の画像符号化装置。 - 前記グラデーション検出手段は、グラデーション検出の結果の連続検出回数を計数する連続検出回数計数手段を有し、
前記イントラスムージング処理決定手段は、前記連続検出回数計数手段に従い、前記グラデーション画像が所定フレーム期間、連続する場合に、符号化対象ブロック画像に対するイントラスムージング処理の適用可否を切り替える
ことを特徴とする請求項1から6のいずれか1項に記載の画像符号化装置。 - 前記イントラスムージング処理決定手段は、前記連続検出回数計数手段に従い、前記グラデーション画像でない非グラデーション画像が所定フレーム期間、連続する場合に、符号化画像に対するイントラスムージング処理の適用可否を切り替えることを特徴とする請求項5に記載の画像符号化装置。
- 前記グラデーション検出手段は、グラデーション検出の結果の連続検出回数を計数する連続検出回数計数手段を有し、
前記イントラスムージング処理決定手段は、前記連続検出回数計数手段に従い、前記グラデーション画像でない非グラデーション画像が所定フレーム期間、連続する場合に、符号化対象ブロック画像に対するイントラスムージング処理の適用可否を切り替える
ことを特徴とする請求項1から6のいずれか1項に記載の画像符号化装置。 - 前記所定の画素ブロックのサイズは、HEVC規格(ISO/IEC 23008−2)で定義されるCoding Tree Unitであることを特徴とする請求項1から7のいずれか1項に記載の画像符号化装置。
- 入力画像を符号化する画像符号化方法であって、
前記入力画像の符号化しようとする符号化ブロックに対して所定の画素ブロック単位でグラデーション画像かいなかを検出するグラデーション検出ステップと、
前記グラデーション検出ステップにより前記グラデーション画像と判定された前記画素ブロック数が所定数以上になったとき、画面内予測モードにおいて符号化ブロック境界の参照画素の線形補間を有効化するイントラスムージング処理決定ステップと、
前記入力画像を前記符号化ブロック単位で符号化する符号化ステップであって、前記線形補間の有効化に従い、前記画面内予測モードにおいて符号化ブロックの境界の参照画素を線形補間する符号化ステップ
とを有することを特徴とする画像符号化方法。 - 請求項1から8の何れか1項に記載の画像符号化装置としてコンピュータを機能させるためのコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016183834A JP2018050150A (ja) | 2016-09-21 | 2016-09-21 | 画像符号化装置、画像符号化方法及びコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016183834A JP2018050150A (ja) | 2016-09-21 | 2016-09-21 | 画像符号化装置、画像符号化方法及びコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018050150A true JP2018050150A (ja) | 2018-03-29 |
Family
ID=61766555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016183834A Pending JP2018050150A (ja) | 2016-09-21 | 2016-09-21 | 画像符号化装置、画像符号化方法及びコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018050150A (ja) |
-
2016
- 2016-09-21 JP JP2016183834A patent/JP2018050150A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101045199B1 (ko) | 화소 데이터의 적응형 잡음 필터링을 위한 방법 및 장치 | |
KR101344425B1 (ko) | 다시점 화상 부호화 방법, 다시점 화상 복호 방법, 다시점 화상 부호화 장치, 다시점 화상 복호 장치, 다시점 화상 부호화 프로그램 및 다시점 화상 복호 프로그램 | |
JP4901772B2 (ja) | 動画像符号化方法及び動画像符号化装置 | |
KR101482896B1 (ko) | 최적화된 디블록킹 필터 | |
KR101103723B1 (ko) | 영상 부호화 방법 및 복호 방법, 그 장치, 그 프로그램 및 프로그램을 기록한 기록 매체 | |
JP5488612B2 (ja) | 動画像符号化装置および動画像復号装置 | |
JP5195032B2 (ja) | 符号化装置/復号化装置、符号化方法/復号化方法及びプログラム | |
KR20090100402A (ko) | 이미지 압축 및 압축해제 | |
EP1639829A2 (en) | Optical flow estimation method | |
KR20110114614A (ko) | 다시점 화상 부호화 방법, 다시점 화상 복호 방법, 다시점 화상 부호화 장치, 다시점 화상 복호 장치, 다시점 화상 부호화 프로그램 및 다시점 화상 복호 프로그램 | |
CN107646194B (zh) | 用于视频运动补偿的装置和方法 | |
US9094687B2 (en) | Video encoder and video decoder | |
US20150189276A1 (en) | Video encoding method and apparatus, video decoding method and apparatus, and programs therefor | |
KR20220088503A (ko) | 비디오 코딩을 위해 가상 참조 영상을 이용한 인터-픽처 예측 방법 및 장치 | |
KR20150135457A (ko) | 복수의 입력 화상을 인코딩하는 방법, 프로그램을 격납하는 기억 매체 및 장치 | |
JPH04219089A (ja) | 画像符号化装置 | |
JP2004241869A (ja) | 透かし埋め込み及び画像圧縮部 | |
JP2001251627A (ja) | 符号化装置、符号化方法及びプログラムを記録した記録媒体 | |
JP2009055236A (ja) | 映像符号化装置及び方法 | |
KR20140026397A (ko) | 이미지 블록을 복원하고 코딩하는 방법 | |
KR101668133B1 (ko) | 화상 데이터의 블록을 예측하는 방법, 이 방법을 실행하는 복호 장치 및 부호화 장치 | |
JP5295089B2 (ja) | 画像符号化装置 | |
JP7118604B2 (ja) | 映像符号化装置、映像復号装置及びプログラム | |
JP2018050150A (ja) | 画像符号化装置、画像符号化方法及びコンピュータプログラム | |
JP2013115580A (ja) | 動画像符号化装置及びその制御方法、コンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20180227 |