JP4145586B2 - 画像処理装置及び画像処理プログラム、並びに画像処理方法 - Google Patents

画像処理装置及び画像処理プログラム、並びに画像処理方法 Download PDF

Info

Publication number
JP4145586B2
JP4145586B2 JP2002200577A JP2002200577A JP4145586B2 JP 4145586 B2 JP4145586 B2 JP 4145586B2 JP 2002200577 A JP2002200577 A JP 2002200577A JP 2002200577 A JP2002200577 A JP 2002200577A JP 4145586 B2 JP4145586 B2 JP 4145586B2
Authority
JP
Japan
Prior art keywords
pixel
value
filter
image
pixels
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.)
Expired - Fee Related
Application number
JP2002200577A
Other languages
English (en)
Other versions
JP2003116134A5 (ja
JP2003116134A (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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2002200577A priority Critical patent/JP4145586B2/ja
Priority to US10/193,306 priority patent/US7215823B2/en
Priority to AT02015690T priority patent/ATE343301T1/de
Priority to DE2002615427 priority patent/DE60215427T2/de
Priority to EP20020015690 priority patent/EP1283640B1/en
Publication of JP2003116134A publication Critical patent/JP2003116134A/ja
Publication of JP2003116134A5 publication Critical patent/JP2003116134A5/ja
Application granted granted Critical
Publication of JP4145586B2 publication Critical patent/JP4145586B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Picture Signal Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、JPEG(Joint Photographic coding Experts Group)またはMPEG(Moving Picture Experts Group)等により圧縮された圧縮画像データに基づいてブロック単位で画像を展開する際に、展開画像に対してフィルタ処理を行う装置およびプログラム、並びに方法に係り、特に、画像復号化時のフィルタ処理の簡素化および高速化を図るとともに、効果的なフィルタ効果を実現するのに好適な画像処理装置および画像処理プログラム、並びに画像処理方法に関する。
【0002】
【従来の技術】
静止画像についての圧縮技術としてJPEG方式が、動画像についての圧縮技術としてMPEG方式が広く知られている。これらの画像圧縮方式においては、8画素×8画素のブロックを処理の1単位として扱い、DCT(Discrete Cosine Transform:離散コサイン変換)処理を行う。DCT処理は、元の画像を空間的な周波数成分に分解する処理であり、空間的に冗長な情報を削減することによって、画像を圧縮することができる。
【0003】
ところで、JPEG方式またはMPEG方式を採用する場合、次のような2種類のノイズが発生し、このノイズが画質を劣化させる原因となる。すなわち、JPEG方式およびMPEG方式においては、8画素×8画素のブロックを処理の単位としているので、画像によっては、このブロックの境界がノイズとして見えてしまう。これは、DCT処理が、画像の空間的な周波数成分のうち直流成分に相当するものを除去する処理であり、それを各ブロックごとに行うため、各ブロックの輝度の平均値が異なってしまうことが原因である。この境界部分のノイズは、ブロックノイズと呼ばれている。
【0004】
また、JPEG方式およびMPEG方式におけるDCT処理では、画像の空間的な周波数成分のうち高調波成分ほど冗長な情報として除去する結果、周辺との輝度差が大きい部分にノイズが表れる。例えば、自然画の背景に文字が存在する場合等、ブロック内に輝度の大きな変化がある場合、DCT処理を行うと、本来の境界部分を構成するデータから高調波成分が除去され、境界周辺にモヤモヤとしたノイズが表れる。このノイズは、モスキートノイズと呼ばれている。
【0005】
ブロックノイズおよびモスキートノイズを軽減するための技術が特開平3-46482号公報に記載されている。同公報に記載されている技術(以下、第1の従来例という。)においては、互いに隣接するブロック間の境界線を挟んで位置する境界画素間の信号レベル差が第1の閾値より大きく、ブロックの各々において境界画素と列上の画素のうちその境界画素に同一ブロック内で隣接する画素との間の信号レベル差がそれぞれ第2の閾値より小さい場合に、フィルタ処理をする。
【0006】
このとき、図19において、ブロック境界の両側に位置する画素配置X1およびX0、画素配置X’0およびX’1についての信号レベルS1、S0、S’0、S’1の差分値d0,d1,d2に基づいて、画素配置X0、X’0についての信号レベルを修正する。すなわち新たな信号レベルS0-new、S’0-newは、
0-new=(S1+2・S0+S’0)/4
S’0-new=(S0+2・S’0+S’1)/4
となる。
【0007】
また、ブロックノイズおよびモスキートノイズを軽減する他の方法として、MPEG4についてのVM(Verification Model)や特開平11-98505号公報に記載されている技術(以下、第2の従来例という。)も知られている。第2の従来例においては、図20に示されている垂直方向および水平方向のブロック境界について、デフォルトモードかDCオフセットモードかを判定し、それぞれの処理を行う。
【0008】
この場合、ブロックの境界B1,B2を基点としてピクセルセットS0,S1,S2を定義し、モード決定値からブロック歪現象の程度に基づいて選択的にデブロッキングモードをデフォルトモードかDCオフセットモードかに決める。そして、デフォルトモードと決定されると、4ポイントDCTカーネルを用いて各ピクセルに対するブロック境界周辺の周波数情報を求める。モード決定段階でDCオフセットモードと決定されると、DCオフセットモードの実行が必要であるかどうかを判断し、必要であればブロック歪み現象を除去する。
【0009】
【発明が解決しようとする課題】
しかしながら、第1の従来例では、境界画素のみを補正しているので、ブロック歪みを除去する処理として充分ではないという欠点がある。また、VMや第2の従来例では、処理が複雑で計算負荷が大きすぎるという欠点がある。
また、これらの技術をハードウェアにより実現しようとすると、処理が比較的複雑であるため、回路規模を小型化するのが困難であるという問題がある。小型化を図る観点からは、多少画質を犠牲にしても処理をできるだけ簡略化することが望ましい。また、搭載できるメモリの容量にも一定の制限があるため、フィルタ処理において演算のために占有するメモリ容量もできるだけ最小限に抑えることが望ましい。
【0010】
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、画像復号化時のフィルタ処理の簡素化および高速化を図るとともに、効果的なフィルタ効果を実現するのに好適な画像処理装置および画像処理プログラム、並びに画像処理方法を提供することを第1の目的としている。また、画像復号化時のフィルタ処理において演算のために占有するメモリ容量を低減するのに好適な画像処理装置および画像処理プログラム、並びに画像処理方法を提供することを第2の目的としている。
【0011】
【課題を解決するための手段】
上記目的を達成するために、発明1の画像処理装置は、離散コサイン変換処理および量子化処理を所定のブロック単位で行う画像圧縮処理により圧縮された圧縮画像データに基づいて前記ブロック単位で画像を展開する際または展開した後に、展開画像に対してフィルタ処理を行う装置であって、前記フィルタ処理は、前記ブロック内の一の画素についてのフィルタ演算を、当該一の画素の値と、隣接ブロック内のいずれかの画素の値とにのみ基づいて行うようになっている。
【0012】
このような構成であれば、圧縮画像データに基づいてブロック単位で画像を展開する際または展開した後には、フィルタ処理により、ブロック内の一の画素についてのフィルタ演算が、その一の画素の値と、隣接ブロック内のいずれかの画素の値とにのみ基づいて行われる。
さらに、発明2の画像処理装置は、発明1の画像処理装置において、前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列の画素のうち一の画素についてのフィルタ演算を、当該一の画素の値と、同一画素列の画素であって隣接ブロック内のいずれかの画素の値とにのみ基づいて行うようになっている。
【0013】
このような構成であれば、フィルタ処理により、境界線と交差する画素列の画素のうち一の画素についてのフィルタ演算が、その一の画素の値と、同一画素列の画素であって隣接ブロック内のいずれかの画素の値とにのみ基づいて行われる。
さらに、発明3の画像処理装置は、発明1および2のいずれかの画像処理装置において、前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列の画素のうち一の画素についてのフィルタ演算を、当該一の画素の値と、同一画素列の画素であって隣接ブロック内の前記境界線に位置する境界画素の値とにのみ基づいて行うようになっている。
【0014】
このような構成であれば、フィルタ処理により、境界線と交差する画素列の画素のうち一の画素についてのフィルタ演算が、その一の画素の値と、同一画素列の画素であって隣接ブロック内の境界画素の値とにのみ基づいて行われる。
さらに、発明4の画像処理装置は、発明1ないし3のいずれかの画像処理装置において、前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列について、前記境界線を挟んで片側の画素の値を前記境界線から近い順にv4、v3、v2とし、前記境界線を挟んで逆片側の画素の値を前記境界線から近い順にv5、v6、v7とした場合に、フィルタ後の各画素の値v2'〜v7'を、「v2'=(v2+v5)/2+(v2−v5)/4」、「v3'=(v3+v5)/2+(v3−v5)/8」、「v4'=(v4+v5)/2」、「v5'=(v5+v4)/2+(v5−v4)/8」、「v6'=(v6+v4)/2+(v6−v4)/4」および「v7'=v7−(v7−v4)/8」のフィルタ演算式により算出するようになっている。
【0015】
このような構成であれば、フィルタ処理により、境界線と交差する画素列について、フィルタ後の各画素の値v2'〜v7'が上記各フィルタ演算式により算出される。
さらに、発明5の画像処理装置は、発明1ないし4のいずれかの画像処理装置において、前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列の画素のうち一の画素についてのフィルタ演算を、当該一の画素から、同一画素列の画素であって隣接ブロック内の前記境界線に位置する境界画素までの各画素の相互の差分値がいずれも閾値を超えていないときに行い、前記閾値として定数値を用いるようになっている。
【0016】
このような構成であれば、境界線と交差する画素列の画素のうち一の画素から、同一画素列の画素であって隣接ブロック内の境界画素までの各画素の相互の差分値がいずれも閾値を超えていないと、フィルタ処理により、その一の画素についてのフィルタ演算が行われる。ここで、閾値が定数値であるので、フィルタ処理の過程において閾値を算出する必要がない。
【0017】
さらに、発明6の画像処理装置は、発明5の画像処理装置において、前記境界画素と、前記境界画素と隣接する隣接画素との差分値を比較するときの閾値を、前記境界画素と、前記隣接画素以外の画素との差分値を比較するときの閾値よりも大きく設定した。
このような構成であれば、境界画素と隣接画素との差分値を比較するときは、境界画素と、隣接画素以外の画素との差分値を比較するときの閾値よりも大きい閾値に基づいて行われる。境界画素と隣接画素とは、それぞれ異なるブロックの境界を構成し、輝度の値が大きく異なることがあるため、それらを比較するときの閾値を、他の画素を比較するときの閾値よりも大きく設定した方が、フィルタ処理を比較的確実に行うことができる。
【0018】
さらに、発明7の画像処理装置は、発明5および6のいずれかの画像処理装置において、前記境界画素と、前記境界画素と隣接する隣接画素との差分値を比較するときの閾値を、画素の値の最大値を「2n−1」(n≧4)として「2n-3」に相当する値またはその近似値に設定し、前記境界画素と、前記隣接画素以外の画素との差分値を比較するときの閾値を、「2n-4」に相当する値またはその近似値に設定した。
【0019】
このような構成であれば、境界画素と隣接画素との差分値を比較するときは、画素の値の最大値を「2n−1」として「2n-3」に相当する値またはその近似値を閾値とし、これに基づいて行われる。ここで、閾値は、「2n-3」に相当する値またはその近似値よりも大きく設定し過ぎると、フィルタ処理を行わなくてもよいのに行ってしまい、処理負荷が増加し、フィルタ処理の高速化を図ることができなくなり、逆に、「2n-3」に相当する値またはその近似値よりも小さく設定し過ぎると、フィルタ処理を行うべきなのに行われず、効果的なフィルタ効果が期待できない。
【0020】
また、境界画素と、隣接画素以外の画素との差分値を比較するときは、画素の値の最大値を「2n−1」として「2n-4」に相当する値またはその近似値を閾値とし、これに基づいて行われる。ここで、閾値は、「2n-4」に相当する値またはその近似値よりも大きく設定し過ぎると、フィルタ処理を行わなくてもよいのに行ってしまい、処理負荷が増加し、フィルタ処理の高速化を図ることができなくなり、逆に、「2n-4」に相当する値またはその近似値よりも小さく設定し過ぎると、フィルタ処理を行うべきなのに行われず、効果的なフィルタ効果が期待できない。
【0021】
さらに、発明8の画像処理装置は、発明5ないし7のいずれかの画像処理装置において、前記フィルタ処理は、画素について前記フィルタ演算を行うか否かの判定を、前記境界画素と隣接する隣接画素から順次前記境界線より遠ざかる方向に行い、画素について前記フィルタ演算を行わないと判定したときは、当該画素およびこれよりも後段の画素については前記フィルタ演算を行わないようになっている。
【0022】
このような構成であれば、画素についてフィルタ演算を行うか否かの判定が、境界画素と隣接する隣接画素から順次境界線より遠ざかる方向に行われる。そして、その判定において、画素についてフィルタ演算を行わないと判定されると、その画素およびこれよりも後段の画素についてはフィルタ演算が行われない。
本来、一の画素についてフィルタ演算を行うか否かの判定は、その一の画素から境界画素までの各画素の相互の差分値が閾値を超えたか否かを判定しなければならない。例えば、判定の対象となる判定対象画素から境界画素までの間に4個の画素(判定対象画素および境界画素を含む)が存在する場合は、3回の判定を行う必要がある。しかし、上記の順序で判定を行っていけば、判定対象画素と境界画素との判定以外のものについては、前段の画素についての判定で既に行われているので、後段のその画素については判定を省略することができる。したがって、判定対象画素のうち境界画素より最も遠いものから境界画素までの間に4個の画素が存在する場合は、通常ではその画素列全体として3!回の判定を要するところ最大3回の判定ですむ。
【0023】
さらに、発明9の画像処理装置は、発明1ないし8のいずれかの画像処理装置において、前記展開画像を格納するための画像記憶手段に利用可能に接続し、互いに隣接するブロック間の境界線と交差する画素列の画素のうち前記境界線から最も離れた前記ブロック内の画素から、同一画素列の画素であって隣接ブロック内の前記境界線に位置する境界画素までの全画素データを格納するに必要十分な記憶容量を有する作業用記憶手段を備え、前記フィルタ処理は、前記画素列のうち一の画素から前記境界画素までの全画素データを、前記画像記憶手段から前記作業用記憶手段にまとめて読み込み、前記作業用記憶手段の画素データに基づいて前記フィルタ演算を行うようになっている。
【0024】
このような構成であれば、フィルタ処理により、画素列のうち一の画素から境界画素までの全画素データが、画像記憶手段から作業用記憶手段にまとめて読み込まれ、作業用記憶手段の画素データに基づいてフィルタ演算が行われる。
ここで、作業用記憶手段は、画素データをあらゆる手段でかつあらゆる時期に記憶するものであり、画素データをあらかじめ記憶してあるものであってもよいし、画素データをあらかじめ記憶することなく、本装置の動作時に外部からの入力等によって画素データを記憶するようになっていてもよい。このことは、画像記憶手段に展開画像を格納する場合についても同じである。以下、発明9の画像処理装置、発明7の画像処理プログラム、および発明5の画像処理方法において同じである。
【0025】
さらに、発明0の画像処理装置は、発明1ないし9のいずれかの画像処理装置において、前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列について、前記境界線を挟んで片側の画素の値を前記境界線から近い順にv4、v3、v2とし、前記境界線を挟んで逆片側の画素の値を前記境界線から近い順にv5、v6、v7とした場合に、フィルタ後の各画素の値v2'〜v4'を、「v2'=(v2+v5)/2+(v2−v5)/4」、「v3'=(v3+v5)/2+(v3−v5)/8」および「v4'=(v4+v5)/2」のフィルタ演算式により算出し、フィルタ後の各画素の値v5'〜v7'を、v4〜v7をそれぞれv5、v4、v3およびv2として前記各フィルタ演算式により算出するようになっている。
【0026】
このような構成であれば、フィルタ処理により、境界線と交差する画素列について、フィルタ後の各画素の値v2'〜v4'が上記各フィルタ演算式により算出される。また、フィルタ後の各画素の値v5'〜v7'が、v4〜v7をそれぞれv5、v4、v3およびv2として上記各フィルタ演算式により算出される。
さらに、発明1の画像処理装置は、発明1ないし9のいずれかの画像処理装置において、前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列について、前記境界線を挟んで片側の画素の値を前記境界線から近い順にv4、v3、v2とし、前記境界線を挟んで逆片側の画素の値を前記境界線から近い順にv5、v6、v7とした場合に、フィルタ後の各画素の値v5'〜v7'を、「v5'=(v5+v4)/2+(v5−v4)/8」、「v6'=(v6+v4)/2+(v6−v4)/4」および「v7'=v7−(v7−v4)/8」のフィルタ演算式により算出し、フィルタ後の各画素の値v2'〜v4'を、v2〜v5をそれぞれv7、v6、v5およびv4として前記各フィルタ演算式により算出するようになっている。
【0027】
このような構成であれば、フィルタ処理により、境界線と交差する画素列について、フィルタ後の各画素の値v5'〜v7'が上記各フィルタ演算式により算出される。また、フィルタ後の各画素の値v2'〜v4'が、v2〜v5をそれぞれv7、v6、v5およびv4として上記各フィルタ演算式により算出される。
さらに、発明2の画像処理装置は、発明1ないし11のいずれかの画像処理装置において、前記フィルタ処理は、前記ブロック内の水平方向の画素列および垂直方向の画素列の一方に対して前記フィルタ演算を行った後、他方に対して前記フィルタ演算を行うようになっている。
【0028】
このような構成であれば、フィルタ処理により、ブロック内の水平方向の画素列および垂直方向の画素列の一方に対してフィルタ演算が行われた後、他方に対してフィルタ演算が行われる。
さらに、発明3の画像処理装置は、発明1ないし12のいずれかの画像処理装置において、前記量子化処理は、前記離散コサイン変換処理の結果を高周波成分ほど粗く量子化する処理であり、前記フィルタ処理は、一の画素についてのフィルタ演算を、当該演算の対象となる対象画素の値と、前記対象画素と隣接する隣接画素の値とに基づいて行い、前記フィルタ演算では、前記隣接画素のうち一の画素と前記対象画素との差分値が閾値を超えているときは、当該一の画素の値に代えて前記対象画素の値を用いるようになっている。
【0029】
このような構成であれば、フィルタ処理により、一の画素についてのフィルタ演算が、対象画素の値と隣接画素の値とに基づいて行われる。そして、フィルタ演算では、隣接画素のうち一の画素と対象画素との差分値が閾値を超えていると、その一の画素の値に代えて対象画素の値が用いられる。
さらに、発明4の画像処理装置は、発明3の画像処理装置において、前記フィルタ処理は、前記閾値として定数値を用いるようになっている。
【0030】
このような構成であれば、隣接画素のうち一の画素と対象画素との差分値を比較するときは、定数値を閾値とし、これに基づいて行われれる。ここで、閾値が定数値であるので、フィルタ処理の過程において閾値を算出する必要がない。
さらに、発明5の画像処理装置は、発明4の画像処理装置において、前記フィルタ処理は、前記閾値を、画素の値の最大値を「2n−1」(n≧4)として「2n-4」に相当する値またはその近似値に設定した。
【0031】
このような構成であれば、隣接画素のうち一の画素と対象画素との差分値を比較するときは、画素の値の最大値を「2n−1」として「2n-4」に相当する値またはその近似値を閾値とし、これに基づいて行われる。ここで、閾値は、「2n- 4」に相当する値またはその近似値よりも大きく設定し過ぎると、隣接画素の値を対象画素の値に置き換えるべきなのに置き換えられず、効果的なフィルタ効果が期待できず、逆に、「2n-4」に相当する値またはその近似値よりも小さく設定し過ぎると、隣接画素の値を対象画素の値に置き換えなくてもよいのに置き換えてしまい、効果的なフィルタ効果が期待できない。
【0032】
さらに、発明6の画像処理装置は、発明1ないし15のいずれかの画像処理装置において、前記量子化処理は、前記離散コサイン変換処理の結果を高周波成分ほど粗く量子化する処理であり、前記フィルタ処理は、一の画素についてのフィルタ演算を、当該演算の対象となる対象画素の値と、前記対象画素と隣接する4、2または1つの隣接画素の値とに基づいて行うようになっている。
【0033】
このような構成であれば、フィルタ処理により、一の画素についてのフィルタ演算が、対象画素の値と、対象画素と隣接する4、2または1つの隣接画素の値とに基づいて行われる。
さらに、発明7の画像処理装置は、発明1ないし16のいずれかの画像処理装置において、前記量子化処理は、前記離散コサイン変換処理の結果を高周波成分ほど粗く量子化する処理であり、前記フィルタ処理は、一の画素についてのフィルタ演算を、当該演算の対象となる対象画素の値を所定値で除算し、前記対象画素と隣接する隣接画素の値を前記所定値で除算し、それら除算結果を加算することにより行うようになっている。
【0034】
このような構成であれば、フィルタ処理により、一の画素についてのフィルタ演算が、対象画素の値を所定値で除算し、隣接画素の値を所定値で除算し、それら除算結果を加算することにより行われる。
さらに、発明8の画像処理装置は、離散コサイン変換処理および量子化処理を所定のブロック単位で行う画像圧縮処理により圧縮された圧縮画像データに基づいて前記ブロック単位で画像を展開する際または展開した後に、展開画像に対してフィルタ処理を行う装置であって、前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列の画素のうち一の画素についてのフィルタ演算を、当該一の画素から、同一画素列の画素であって隣接ブロック内の前記境界線に位置する境界画素までの各画素の相互の差分値がいずれも閾値を超えていないときに行い、前記閾値として定数値を用いるようになっている。
【0035】
このような構成であれば、境界線と交差する画素列の画素のうち一の画素から、同一画素列の画素であって隣接ブロック内の境界画素までの各画素の相互の差分値がいずれも閾値を超えていないと、フィルタ処理により、その一の画素についてのフィルタ演算が行われる。ここで、閾値が定数値であるので、フィルタ処理の過程において閾値を算出する必要がない。
【0036】
さらに、発明9の画像処理装置は、離散コサイン変換処理および量子化処理を所定のブロック単位で行う画像圧縮処理により圧縮された圧縮画像データに基づいて前記ブロック単位で画像を展開する際または展開した後に、展開画像に対してフィルタ処理を行う装置であって、前記展開画像を格納するための画像記憶手段に利用可能に接続し、互いに隣接するブロック間の境界線と交差する画素列の画素のうち前記境界線から最も離れた前記ブロック内の画素から、同一画素列の画素であって隣接ブロック内の前記境界線に位置する境界画素までの全画素データを格納するに必要十分な記憶容量を有する作業用記憶手段を備え、前記フィルタ処理は、前記画素列のうち一の画素から前記境界画素までの全画素データを、前記画像記憶手段から前記作業用記憶手段にまとめて読み込み、前記作業用記憶手段の画素データに基づいて前記フィルタ演算を行うようになっている。
【0037】
このような構成であれば、フィルタ処理により、画素列のうち一の画素から境界画素までの全画素データが、画像記憶手段から作業用記憶手段にまとめて読み込まれ、作業用記憶手段の画素データに基づいてフィルタ演算が行われる。
さらに、発明0の画像処理装置は、離散コサイン変換処理および量子化処理を所定のブロック単位で行う画像圧縮処理により圧縮された圧縮画像データに基づいて前記ブロック単位で画像を展開する際または展開した後に、展開画像に対してフィルタ処理を行う装置であって、前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列について、前記境界線を挟んで片側の画素の値を前記境界線から近い順にv4、v3、v2とし、前記境界線を挟んで逆片側の画素の値を前記境界線から近い順にv5、v6、v7とした場合に、フィルタ後の各画素の値v2'〜v4'を、「v2'=(v2+v5)/2+(v2−v5)/4」、「v3'=(v3+v5)/2+(v3−v5)/8」および「v4'=(v4+v5)/2」のフィルタ演算式により算出し、フィルタ後の各画素の値v5'〜v7'を、v4〜v7をそれぞれv5、v4、v3およびv2として前記各フィルタ演算式により算出するようになっている。
【0038】
このような構成であれば、フィルタ処理により、境界線と交差する画素列について、フィルタ後の各画素の値v2'〜v4'が上記各フィルタ演算式により算出される。また、フィルタ後の各画素の値v5'〜v7'が、v4〜v7をそれぞれv5、v4、v3およびv2として上記各フィルタ演算式により算出される。
さらに、発明1の画像処理装置は、離散コサイン変換処理および量子化処理を所定のブロック単位で行う画像圧縮処理により圧縮された圧縮画像データに基づいて前記ブロック単位で画像を展開する際または展開した後に、展開画像に対してフィルタ処理を行う装置であって、前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列について、前記境界線を挟んで片側の画素の値を前記境界線から近い順にv4、v3、v2とし、前記境界線を挟んで逆片側の画素の値を前記境界線から近い順にv5、v6、v7とした場合に、フィルタ後の各画素の値v5'〜v7'を、「v5'=(v5+v4)/2+(v5−v4)/8」、「v6'=(v6+v4)/2+(v6−v4)/4」および「v7'=v7−(v7−v4)/8」のフィルタ演算式により算出し、フィルタ後の各画素の値v2'〜v4'を、v2〜v5をそれぞれv7、v6、v5およびv4として前記各フィルタ演算式により算出するようになっている。
【0039】
このような構成であれば、フィルタ処理により、境界線と交差する画素列について、フィルタ後の各画素の値v5'〜v7'が上記各フィルタ演算式により算出される。また、フィルタ後の各画素の値v2'〜v4'が、v2〜v5をそれぞれv7、v6、v5およびv4として上記各フィルタ演算式により算出される。
さらに、発明2の画像処理装置は、離散コサイン変換処理および前記離散コサイン変換処理の結果を高周波成分ほど粗く量子化する量子化処理を行う画像圧縮処理により圧縮された圧縮画像データに基づいて画像を展開する際または展開した後に、展開画像に対してフィルタ処理を行う装置であって、前記フィルタ処理は、一の画素についてのフィルタ演算を、当該演算の対象となる対象画素の値と、前記対象画素と隣接する隣接画素の値とに基づいて行い、前記フィルタ演算では、前記隣接画素のうち一の画素と前記対象画素との差分値が閾値を超えているときは、当該一の画素の値に代えて前記対象画素の値を用いるようになっている。
【0040】
このような構成であれば、フィルタ処理により、一の画素についてのフィルタ演算が、対象画素の値と隣接画素の値とに基づいて行われる。そして、フィルタ演算では、隣接画素のうち一の画素と対象画素との差分値が閾値を超えていると、その一の画素の値に代えて対象画素の値が用いられる。
さらに、発明3の画像処理装置は、離散コサイン変換処理および前記離散コサイン変換処理の結果を高周波成分ほど粗く量子化する量子化処理を行う画像圧縮処理により圧縮された圧縮画像データに基づいて画像を展開する際または展開した後に、展開画像に対してフィルタ処理を行う装置であって、前記フィルタ処理は、一の画素についてのフィルタ演算を、当該演算の対象となる対象画素の値と、前記対象画素と隣接する4、2または1つの隣接画素の値とに基づいて行うようになっている。
【0041】
このような構成であれば、フィルタ処理により、一の画素についてのフィルタ演算が、対象画素の値と、対象画素と隣接する4、2または1つの隣接画素の値とに基づいて行われる。
さらに、発明4の画像処理装置は、離散コサイン変換処理および前記離散コサイン変換処理の結果を高周波成分ほど粗く量子化する量子化処理を行う画像圧縮処理により圧縮された圧縮画像データに基づいて画像を展開する際または展開した後に、展開画像に対してフィルタ処理を行う装置であって、前記フィルタ処理は、一の画素についてのフィルタ演算を、当該演算の対象となる対象画素の値を所定値で除算し、前記対象画素と隣接する隣接画素の値を前記所定値で除算し、それら除算結果を加算することにより行うようになっている。
【0042】
このような構成であれば、フィルタ処理により、一の画素についてのフィルタ演算が、対象画素の値を所定値で除算し、隣接画素の値を所定値で除算し、それら除算結果を加算することにより行われる。
一方、上記目的を達成するために、発明5の画像処理プログラムは、離散コサイン変換処理および量子化処理を所定のブロック単位で行う画像圧縮処理により圧縮された圧縮画像データに基づいて前記ブロック単位で画像を展開する際または展開した後に、展開画像に対して行うフィルタ処理をコンピュータに実行させるためのプログラムであって、前記フィルタ処理は、前記ブロック内の一の画素についてのフィルタ演算を、当該一の画素の値と、隣接ブロック内のいずれかの画素の値とにのみ基づいて行うようになっている。
【0043】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明1の画像処理装置と同等の作用が得られる。
さらに、発明6の画像処理プログラムは、離散コサイン変換処理および量子化処理を所定のブロック単位で行う画像圧縮処理により圧縮された圧縮画像データに基づいて前記ブロック単位で画像を展開する際または展開した後に、展開画像に対して行うフィルタ処理をコンピュータに実行させるためのプログラムであって、前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列の画素のうち一の画素についてのフィルタ演算を、当該一の画素から、同一画素列の画素であって隣接ブロック内の前記境界線に位置する境界画素までの各画素の相互の差分値がいずれも閾値を超えていないときに行い、前記閾値として定数値を用いるようになっている。
【0044】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明8の画像処理装置と同等の作用が得られる。
さらに、発明7の画像処理プログラムは、離散コサイン変換処理および量子化処理を所定のブロック単位で行う画像圧縮処理により圧縮された圧縮画像データに基づいて前記ブロック単位で画像を展開する際または展開した後に、展開画像に対して行うフィルタ処理をコンピュータに実行させるためのプログラムであって、前記コンピュータは、前記展開画像を格納するための画像記憶手段に利用可能に接続し、互いに隣接するブロック間の境界線と交差する画素列の画素のうち前記境界線から最も離れた前記ブロック内の画素から、同一画素列の画素であって隣接ブロック内の前記境界線に位置する境界画素までの全画素データを格納するに必要十分な記憶容量を有する作業用記憶手段を備え、前記フィルタ処理は、前記画素列のうち一の画素から前記境界画素までの全画素データを、前記画像記憶手段から前記作業用記憶手段にまとめて読み込み、前記作業用記憶手段の画素データに基づいて前記フィルタ演算を行うようになっている。
【0045】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明9の画像処理装置と同等の作用が得られる。
さらに、発明8の画像処理プログラムは、離散コサイン変換処理および量子化処理を所定のブロック単位で行う画像圧縮処理により圧縮された圧縮画像データに基づいて前記ブロック単位で画像を展開する際または展開した後に、展開画像に対して行うフィルタ処理をコンピュータに実行させるためのプログラムであって、前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列について、前記境界線を挟んで片側の画素の値を前記境界線から近い順にv4、v3、v2とし、前記境界線を挟んで逆片側の画素の値を前記境界線から近い順にv5、v6、v7とした場合に、フィルタ後の各画素の値v2'〜v4'を、「v2'=(v2+v5)/2+(v2−v5)/4」、「v3'=(v3+v5)/2+(v3−v5)/8」および「v4'=(v4+v5)/2」のフィルタ演算式により算出し、フィルタ後の各画素の値v5'〜v7'を、v4〜v7をそれぞれv5、v4、v3およびv2として前記各フィルタ演算式により算出するようになっている。
【0046】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明0の画像処理装置と同等の作用が得られる。
さらに、発明9の画像処理プログラムは、離散コサイン変換処理および量子化処理を所定のブロック単位で行う画像圧縮処理により圧縮された圧縮画像データに基づいて前記ブロック単位で画像を展開する際または展開した後に、展開画像に対して行うフィルタ処理をコンピュータに実行させるためのプログラムであって、前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列について、前記境界線を挟んで片側の画素の値を前記境界線から近い順にv4、v3、v2とし、前記境界線を挟んで逆片側の画素の値を前記境界線から近い順にv5、v6、v7とした場合に、フィルタ後の各画素の値v5'〜v7'を、「v5'=(v5+v4)/2+(v5−v4)/8」、「v6'=(v6+v4)/2+(v6−v4)/4」および「v7'=v7−(v7−v4)/8」のフィルタ演算式により算出し、フィルタ後の各画素の値v2'〜v4'を、v2〜v5をそれぞれv7、v6、v5およびv4として前記各フィルタ演算式により算出するようになっている。
【0047】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明1の画像処理装置と同等の作用が得られる。
さらに、発明0の画像処理プログラムは、離散コサイン変換処理および前記離散コサイン変換処理の結果を高周波成分ほど粗く量子化する量子化処理を行う画像圧縮処理により圧縮された圧縮画像データに基づいて画像を展開する際または展開した後に、展開画像に対して行うフィルタ処理をコンピュータに実行させるためのプログラムであって、前記フィルタ処理は、一の画素についてのフィルタ演算を、当該演算の対象となる対象画素の値と、前記対象画素と隣接する隣接画素の値とに基づいて行い、前記フィルタ演算では、前記隣接画素のうち一の画素と前記対象画素との差分値が閾値を超えているときは、当該一の画素の値に代えて前記対象画素の値を用いるようになっている。
【0048】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明2の画像処理装置と同等の作用が得られる。
さらに、発明1の画像処理プログラムは、離散コサイン変換処理および前記離散コサイン変換処理の結果を高周波成分ほど粗く量子化する量子化処理を行う画像圧縮処理により圧縮された圧縮画像データに基づいて画像を展開する際または展開した後に、展開画像に対して行うフィルタ処理をコンピュータに実行させるためのプログラムであって、前記フィルタ処理は、一の画素についてのフィルタ演算を、当該演算の対象となる対象画素の値と、前記対象画素と隣接する4、2または1つの隣接画素の値とに基づいて行うようになっている。
【0049】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明3の画像処理装置と同等の作用が得られる。
さらに、発明2の画像処理プログラムは、離散コサイン変換処理および前記離散コサイン変換処理の結果を高周波成分ほど粗く量子化する量子化処理を行う画像圧縮処理により圧縮された圧縮画像データに基づいて画像を展開する際または展開した後に、展開画像に対して行うフィルタ処理をコンピュータに実行させるためのプログラムであって、前記フィルタ処理は、一の画素についてのフィルタ演算を、当該演算の対象となる対象画素の値を所定値で除算し、前記対象画素と隣接する隣接画素の値を前記所定値で除算し、それら除算結果を加算することにより行うようになっている。
【0050】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムに従ってコンピュータが処理を実行すると、発明4の画像処理装置と同等の作用が得られる。
一方、上記目的を達成するために、発明3の画像処理方法は、離散コサイン変換処理および量子化処理を所定のブロック単位で行う画像圧縮処理により圧縮された圧縮画像データに基づいて前記ブロック単位で画像を展開する際または展開した後に、展開画像に対してフィルタ処理を行う方法であって、前記フィルタ処理は、前記ブロック内の一の画素についてのフィルタ演算を、当該一の画素の値と、隣接ブロック内のいずれかの画素の値とにのみ基づいて行う。
【0051】
さらに、発明4の画像処理方法は、離散コサイン変換処理および量子化処理を所定のブロック単位で行う画像圧縮処理により圧縮された圧縮画像データに基づいて前記ブロック単位で画像を展開する際または展開した後に、展開画像に対してフィルタ処理を行う方法であって、前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列の画素のうち一の画素についてのフィルタ演算を、当該一の画素から、同一画素列の画素であって隣接ブロック内の前記境界線に位置する境界画素までの各画素の相互の差分値がいずれも閾値を超えていないときに行い、前記閾値として定数値を用いる。
【0052】
さらに、発明5の画像処理方法は、離散コサイン変換処理および量子化処理を所定のブロック単位で行う画像圧縮処理により圧縮された圧縮画像データに基づいて前記ブロック単位で画像を展開する際または展開した後に、展開画像に対してフィルタ処理を行う方法であって、前記展開画像を格納するための画像記憶手段に利用可能に接続し、前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列の画素のうち前記境界線から最も離れた前記ブロック内の画素から、同一画素列の画素であって隣接ブロック内の前記境界線に位置する境界画素までの全画素データを格納するに必要十分な記憶容量を有する作業用記憶手段に、前記画素列のうち一の画素から前記境界画素までの全画素データを前記画像記憶手段からまとめて読み込み、前記作業用記憶手段の画素データに基づいて前記フィルタ演算を行う。
【0053】
さらに、発明6の画像処理方法は、離散コサイン変換処理および量子化処理を所定のブロック単位で行う画像圧縮処理により圧縮された圧縮画像データに基づいて前記ブロック単位で画像を展開する際または展開した後に、展開画像に対してフィルタ処理を行う方法であって、前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列について、前記境界線を挟んで片側の画素の値を前記境界線から近い順にv4、v3、v2とし、前記境界線を挟んで逆片側の画素の値を前記境界線から近い順にv5、v6、v7とした場合に、フィルタ後の各画素の値v2'〜v4'を、「v2'=(v2+v5)/2+(v2−v5)/4」、「v3'=(v3+v5)/2+(v3−v5)/8」および「v4'=(v4+v5)/2」のフィルタ演算式により算出し、フィルタ後の各画素の値v5'〜v7'を、v4〜v7をそれぞれv5、v4、v3およびv2として前記各フィルタ演算式により算出する。
【0054】
さらに、発明7の画像処理方法は、離散コサイン変換処理および量子化処理を所定のブロック単位で行う画像圧縮処理により圧縮された圧縮画像データに基づいて前記ブロック単位で画像を展開する際または展開した後に、展開画像に対してフィルタ処理を行う方法であって、前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列について、前記境界線を挟んで片側の画素の値を前記境界線から近い順にv4、v3、v2とし、前記境界線を挟んで逆片側の画素の値を前記境界線から近い順にv5、v6、v7とした場合に、フィルタ後の各画素の値v5'〜v7'を、「v5'=(v5+v4)/2+(v5−v4)/8」、「v6'=(v6+v4)/2+(v6−v4)/4」および「v7'=v7−(v7−v4)/8」のフィルタ演算式により算出し、フィルタ後の各画素の値v2'〜v4'を、v2〜v5をそれぞれv7、v6、v5およびv4として前記各フィルタ演算式により算出する。
【0055】
さらに、発明8の画像処理方法は、離散コサイン変換処理および前記離散コサイン変換処理の結果を高周波成分ほど粗く量子化する量子化処理を行う画像圧縮処理により圧縮された圧縮画像データに基づいて画像を展開する際または展開した後に、展開画像に対してフィルタ処理を行う方法であって、前記フィルタ処理は、一の画素についてのフィルタ演算を、当該演算の対象となる対象画素の値と、前記対象画素と隣接する隣接画素の値とに基づいて行い、前記フィルタ演算では、前記隣接画素のうち一の画素と前記対象画素との差分値が閾値を超えているときは、当該一の画素の値に代えて前記対象画素の値を用いる。
【0056】
さらに、発明9の画像処理方法は、離散コサイン変換処理および前記離散コサイン変換処理の結果を高周波成分ほど粗く量子化する量子化処理を行う画像圧縮処理により圧縮された圧縮画像データに基づいて画像を展開する際または展開した後に、展開画像に対してフィルタ処理を行う方法であって、前記フィルタ処理は、一の画素についてのフィルタ演算を、当該演算の対象となる対象画素の値と、前記対象画素と隣接する4、2または1つの隣接画素の値とに基づいて行う。
【0057】
さらに、発明0の画像処理方法は、離散コサイン変換処理および前記離散コサイン変換処理の結果を高周波成分ほど粗く量子化する量子化処理を行う画像圧縮処理により圧縮された圧縮画像データに基づいて画像を展開する際または展開した後に、展開画像に対してフィルタ処理を行う方法であって、前記フィルタ処理は、一の画素についてのフィルタ演算を、当該演算の対象となる対象画素の値を所定値で除算し、前記対象画素と隣接する隣接画素の値を前記所定値で除算し、それら除算結果を加算することにより行う。
【0058】
【発明の実施の形態】
以下、本発明の第1の実施の形態を図面を参照しながら説明する。図1ないし図8は、本発明に係る画像処理装置および画像処理プログラム、並びに画像処理方法の第1の実施の形態を示す図である。
本実施の形態は、本発明に係る画像処理装置および画像処理プログラム、並びに画像処理方法を、図1に示すように、コンピュータ100において、マルチタスクで動作するOS(Operating System)により、MPEG形式で圧縮された動画データをデコードして動画を再生する際に、再生画像に対して、ブロックノイズを低減するフィルタ処理およびモスキートノイズを低減するフィルタ処理を行う場合について適用したものである。以下、前者のフィルタ処理をデブロックフィルタ処理といい、後者のフィルタ処理をデリンギングフィルタ処理という。
【0059】
まず、本発明を適用するコンピュータシステムの構成を図1を参照しながら説明する。図1は、本発明を適用するコンピュータシステムの構成を示すブロック図である。
コンピュータ100は、図1に示すように、制御プログラムに基づいて演算およびシステム全体を制御するCPU30と、所定領域にあらかじめCPU30の制御プログラム等を格納しているROM32と、ROM32等から読み出したデータやCPU30の演算過程で必要な演算結果を格納するためのRAM34と、RAM34の特定領域のデータを画像信号に変換してLCD(Liquid Crystal Display)44に出力するLCDC36と、動画データをデコードするデコーダ38と、RAM34の特定領域のデータを読み出してデブロックフィルタ処理およびデリンギングフィルタ処理を行うポストフィルタ部40と、ポストフィルタ部40からのデータに対して色素変換を行うRGB変換部42と、RGB変換部42からのデータに基づいて表示を行うLCD44とで構成されている。そして、CPU30、ROM32、RAM34、LCDC36およびデコーダ38は、データを転送するための信号線であるバス39で相互にかつデータ授受可能に接続されている。
【0060】
RAM34は、特定領域として、LCD44に表示するデータを格納するためのVRAM35を有しており、VRAM35は、CPU30等のバス39に接続された機器とポストフィルタ部40とで独立にアクセスが可能となっている。また、VRAM35は、LCD44の1画面分の画像データを格納可能な領域を少なくとも2つ有し、一方の領域を、デコーダ38が動画データを展開するためのものとし、他方の領域を、ポストフィルタ部40が読み出すためのものとし、それら領域は、所定周期で交互に切り換えて使用される。
【0061】
LCDC36は、ポストフィルタ部40およびRGB変換部42を制御することにより、VRAM35のデータを先頭アドレスから所定周期で順次読み出し、読み出したデータを画像信号に変換してLCD44に出力するようになっている。すなわち、ポストフィルタ部40は、LCDC36の制御により、VRAM35からデータを読み出し、読み出したデータに対してデブロックフィルタ処理およびデリンギングフィルタ処理を行ってRGB変換部42に出力し、RGB変換部42は、LCDC36の制御により、ポストフィルタ部40からのデータに対してRGB変換を行ってLCD44に出力する。
【0062】
デコーダ38は、所定時間T(例えば、20[ms])ごとに動画データに含まれている画像データを順次デコードするようになっており、具体的には、CPU30からのデコード開始命令により、MPEG形式で圧縮された動画データをRAM34から読み出し、読み出した動画データに基づいて、MPEG形式で画像データをVRAM35にデコードする。VRAM35には、LCD44の一画素の色度合いを示す画素データ(YUVデータ)を単位として画像データが展開される。また、デコーダ38では、MPEG形式による復号化処理のうちIDCT(Inverse Discrete Cosine Transorm:逆離散コサイン変換)処理および動き補償処理を行う。なお、MPEG形式による圧縮処理および復号化処理については、従来の例による。
【0063】
次に、ポストフィルタ部40の構成を詳細に説明する。
ポストフィルタ部40は、その構成および内部処理をハードウェアにより実現するものであって、17画素分の画素データを格納可能なバッファを有し、VRAM35からバッファに画素データを読み込みながら、読み出した画素データに基づいて所定のブロック(本実施の形態では、水平方向8画素および垂直方向8画素の正方行列からなる64画素)単位で画素を処理するようになっている。具体的には、VRAM35から読み出した画素データに対してデブロックフィルタ処理を行い、デブロックフィルタ処理した画素データに対してデリンギングフィルタ処理を行う。なお、これらフィルタ処理を行う順序は、特に限定されるものでなく、また、両方を行うようにしてもよいし、いずれかを選択的に行うようにしてもよい。選択的に行う場合は、ソフトウェア若しくはハードウェアによる設定、または画像の再生速度、質若しくはデータ容量に基づく動的な設定により選択を行うことができる。
【0064】
本発明に係るデブロックフィルタ処理の原理を図2および図3を参照しながら詳細に説明する。図2および図3は、デブロックフィルタ処理の原理を説明するための図である。
図2において、互いに隣接するブロック間の境界線B1と直交する画素列PG1については、境界線B1を挟んで図面左側の画素の値を、境界線B1から近い順にv4、v3、v2、v1とし、境界線B1を挟んで図面右側の画素の値を、境界線B1から近い順にv5、v6、v7、v8とする。また、同様に、互いに隣接するブロック間の境界線B2と直交する画素列PG2については、境界線B2を挟んで図面上側の画素の値を、境界線B2から近い順にv4、v3、v2、v1とし、境界線B2を挟んで図面下側の画素の値を、境界線B2から近い順にv5、v6、v7、v8とする。
【0065】
この場合に、画素列PG1,PG2について、デブロックフィルタ処理後の各画素の値v1'〜v8'は、下式(1)〜(8)のフィルタ演算式により算出する。
1'=v1 …(1)
2'=(v2+v5)/2+(v2−v5)/4 …(2)
3'=(v3+v5)/2+(v3−v5)/8 …(3)
4'=(v4+v5)/2 …(4)
5'=(v5+v4)/2+(v5−v4)/8 …(5)
6'=(v6+v4)/2+(v6−v4)/4 …(6)
7'=v7−(v7−v4)/8 …(7)
8'=v8 …(8)
上式(1)〜(8)のフィルタ演算式は、次のように導出される。図3は、画素列PG1,PG2の各画素の値を示した棒グラフである。
【0066】
互いに隣接するブロック間A,Bでは、図3(a)に示すように、圧縮時のDCT処理により画像の空間的な周波数成分のうち直流成分に相当するものが除去されることから、輝度の平均値が異なることによる段差が発生している。この段差がブロックノイズとなる。そこで、ブロックノイズを低減するために、ブロックA,Bの画像を滑らかに接続する場合を考える。ブロックA内の4画素の平均値VA、およびブロックB内の4画素の平均値VBは、下式(9),(10)により算出することができる。
A=(v1+v2+v3+v4)/4 …(9)
B=(v5+v6+v7+v8)/4 …(10)
各画素の値viの平均値VA,VBからのずれ量をδviとすると、各画素の値viは、下式(11),(12)により表すことができる。
i=VA+δvi (i=1〜4) …(11)
i=VB+δvi (i=5〜8) …(12)
さて、ブロックA,Bの画像を滑らかに接続するためには、平均値VA,VBの差を「0」にすればよく、図3(b)に示すように、階段状に各画素の値viを補正してやればよい。各階段の段差Δは、
Δ=(VB−VA)/8 …(13)
なので、例えば、画素の値v5の補正後の値v5'は、下式(14)により算出することができる。
5'=(VB+VA)/2+Δ+δv5
=(5VB+3VA)/8+δv5
={5(v5−δv5)+3(v4−δv4)}/8+δv5
={5v5+3v4+3(δv5−δv4)}/8 …(14)
ここで、正確な値を算出するためには、上式(14)に従わなければならないが、上式(14)において、(δv5−δv4)が小さいと仮定して省略し、下式(15)の近似式を得る。
5'=(5v5+3v4)/8 …(15)
また、ブロックB内の他の画素についても同様に、補正後の値v6'〜v8'は、下式(16)〜(18)により算出することができる。
6'=(VB+VA)/2+2Δ+δv6
={6v6+2v4+2(δv6−δv4)}/8 …(16)
7'=(VB+VA)/2+3Δ+δv7
={7v7+v4+(δv7−δv4)}/8 …(17)
8'=(VB+VA)/2+4Δ+δv8
=v8 …(18)
これにより、下式(19),(20)の近似式を得る。
6'=(3v6+v4)/4 …(19)
7'=(7v7+v4)/8 …(20)
また、ブロックA内の画素については、参照する画素の値がv5となる点で異なる以外は同様であり、補正後の値v1'〜v4'は、下式(21)〜(24)により算出することができる。
1'=(VB+VA)/2−3Δ+δv1
={7v1+v5+(δv1−δv5)}/8 …(21)
2'=(VB+VA)/2−2Δ+δv2
={6v2+2v5+2(δv2−δv5)}/8 …(22)
3'=(VB+VA)/2−Δ+δv3
={5v3+3v5+(δv3−δv5)}/8 …(23)
4'=(VB+VA)/2+δv4
=(v4+v5+2δv4)/2 …(24)
これにより、下式(25)〜(28)の近似式を得る。
1'=v1 …(25)
2'=(3v2+v5)/4 …(26)
3'=(5v3+3v5)/8 …(27)
4'=(v4+v5)/2 …(28)
また、実際の演算では、除算演算よりもビットシフトの方が処理を高速化することができるため、上式(25)〜(28),(15),(19),(20),(18)を上式(1)〜(8)に変形して用いる。このデブロックフィルタ処理を水平方向の画素列および垂直方向の画素列に対してそれぞれ行う。演算量としては、1画素に対して、加算および減算がそれぞれ2回、ビットシフトが4回ですむ。ビットシフトは、ハードウェア化する際にはさほど負荷にならない。従来のポストフィルタでは、1画素について最大7×7画素分の重み付け平均をとっていたので、それと比べて大幅に演算量を減らすことができる。
【0067】
本発明に係るデブロックフィルタ処理は、図4のフローチャートに示す処理により実現することができる。図4は、デブロックフィルタ処理を示すフローチャートである。
デブロックフィルタ処理は、ポストフィルタ部40において実行されると、図4に示すように、まず、ステップS100に移行するようになっている。
【0068】
ステップS100では、先頭ブロックの開始アドレスをLCDC36から取得し、ステップS102に移行して、ブロックの右上部分の領域に属する画素列についてデブロックフィルタ処理を行い、ステップS104に移行して、ブロックの左上部分の領域に属する画素列についてデブロックフィルタ処理を行い、ステップS106に移行して、ブロックの右下部分の領域に属する画素列についてデブロックフィルタ処理を行い、ステップS108に移行して、ブロックの左下部分の領域に属する画素列についてデブロックフィルタ処理を行い、ステップS110に移行する。
【0069】
ステップS110では、1面分の画像を構成するすべてのブロックについてステップS102からS108までの処理が終了したか否かを判定し、すべてのブロックについて処理が終了したと判定したとき(Yes)は、一連の処理を終了するが、そうでないと判定したとき(No)は、ステップS112に移行して、次のブロックの開始アドレスをLCDC36から取得し、ステップS102に移行する。
【0070】
次に、上記ステップS102のフィルタ処理を図5を参照しながら詳細に説明する。図5は、ステップS102のフィルタ処理を示すフローチャートである。
上記ステップS102のフィルタ処理は、ブロックの右上部分の領域に属する画素列についてのデブロックフィルタ処理であり、上記ステップS102において実行されると、図5に示すように、まず、ステップS200に移行する。
【0071】
ステップS200では、ステップS100,S112で取得した開始アドレスに基づいて、ブロックの右上部分の領域に属する画素列のうち先頭のもののアドレスを算出し、ステップS202に移行して、算出した画素列のアドレスに基づいて、デブロックフィルタ処理の対象となる画素列について、水平方向の演算に必要な画素データおよび垂直方向の演算に必要な画素データをまとめてバッファに読み込み、ステップS204に移行する。例えば、デブロックフィルタ処理の対象となる画素列が上から3段目である場合は、ブロック内の右上の画素から左に連続する4つの画素、およびその4つの画素からなる画素列の下2段にある8つの画素、上側に隣接するブロック内の右下の画素から左に連続する4つの画素、並びに右側に隣接するブロック内の左上の画素から数えて2つ下にある画素からなる合計17個の画素についての画素データを読み込む。
【0072】
次いで、ステップS204,S208,S212では、各画素についてデブロックフィルタ処理を行うか否かを判定する。各画素についてデブロックフィルタ処理を行うか否かは、隣接画素との差分値に基づいて判定する。本発明に係るデブロックフィルタ処理は、隣接するブロックの境界画素の値に基づいて行うが、ブロック境界までの間に大きなエッジが存在すると、補正後に輪郭のボケやかげが発生する。これを防止するために、ブロック境界までの間に大きなデータの差がないことを調べる。もし段差がある場合には、その画素についてはデブロックフィルタ処理は行わない。この判定は水平方向および垂直方向それぞれについて行う。
【0073】
ステップS204では、v4とv5との差分の絶対値が定数値C2よりも大きいか否かを判定し、v4とv5との差分の絶対値が定数値C2以下であると判定したとき(No)は、ステップS206に移行する。ここで、定数値C2は、画素の値の最大値を「255」として「32」に設定する。その理由としては、定数値C2は、「32」よりも大きく設定し過ぎると、フィルタ処理を行わなくてもよいのに行ってしまい、処理負荷が増加し、フィルタ処理の高速化を図ることができなくなり、逆に、「32」よりも小さく設定し過ぎると、フィルタ処理を行うべきなのに行われず、効果的なフィルタ効果が期待できないからである。
【0074】
ステップS206では、v4,v5に基づいて上式(4)によりフィルタ演算を行ってv4'を算出し、ステップS208に移行して、v3とv4との差分の絶対値が定数値C1よりも大きいか否かを判定し、v3とv4との差分の絶対値が定数値C1以下であると判定したとき(No)は、ステップS210に移行する。ここで、定数値C1は、画素の値の最大値を「255」として「16」に設定する。その理由としては、定数値C1は、「16」よりも大きく設定し過ぎると、フィルタ処理を行わなくてもよいのに行ってしまい、処理負荷が増加し、フィルタ処理の高速化を図ることができなくなり、逆に、「16」よりも小さく設定し過ぎると、フィルタ処理を行うべきなのに行われず、効果的なフィルタ効果が期待できないからである。
【0075】
ステップS210では、v3,v5に基づいて上式(3)によりフィルタ演算を行ってv3'を算出し、ステップS212に移行して、v2とv3との差分の絶対値が定数値C1よりも大きいか否かを判定し、v2とv3との差分の絶対値が定数値C1以下であると判定したとき(No)は、ステップS214に移行して、v2,v5に基づいて上式(2)によりフィルタ演算を行ってv2'を算出し、ステップS216に移行する。
【0076】
ステップS216では、垂直方向の画素列についてのデブロックフィルタ処理を行うが、このデブロックフィルタ処理は、後段で詳述するように、ステップS306〜S314と同様の要領で演算を行うことができる。
次いで、ステップS218に移行して、バッファの画素データのうちブロックの右上部分の領域に属する画素に係るものをRGB変換部42に出力し、ステップS220に移行して、ブロックの右上部分の領域に属するすべての画素列についてステップS204からS218までの処理が終了したか否かを判定し、すべての画素列について処理が終了したと判定したとき(Yes)は、一連の処理を終了して元の処理に復帰させるが、そうでないと判定したとき(No)は、ステップS222に移行して、ステップS100,S112で取得した開始アドレスに基づいて、ブロックの右上部分の領域に属する画素列のうち次のもののアドレスを算出し、ステップS202に移行する。
【0077】
一方、ステップS204でv4とv5との差分の絶対値が定数値C2よりも大きいと判定したとき(Yes)、ステップS208でv3とv4との差分の絶対値が定数値C1よりも大きいと判定したとき(Yes)、およびステップS212でv2とv3との差分の絶対値が定数値C1よりも大きいと判定したとき(Yes)はいずれも、ステップS216に移行する。
【0078】
なお、上記ステップS106のフィルタ処理のうち水平方向の処理は、上記ステップS204〜S214と同様であり、上記ステップS104のフィルタ処理のうち垂直方向の処理は、上記ステップS216と同様である。
次に、上記ステップS104のフィルタ処理を図6を参照しながら詳細に説明する。図6は、ステップS104のフィルタ処理を示すフローチャートである。
【0079】
上記ステップS104のフィルタ処理は、ブロックの左上部分の領域に属する画素列についてのデブロックフィルタ処理であり、上記ステップS104において実行されると、図6に示すように、まず、ステップS300に移行する。
ステップS300では、ステップS100,S112で取得した開始アドレスに基づいて、ブロックの左上部分の領域に属する画素列のうち先頭のもののアドレスを算出し、ステップS302に移行して、算出した画素列のアドレスに基づいて、デブロックフィルタ処理の対象となる画素列について、水平方向の演算に必要な画素データおよび垂直方向の演算に必要な画素データをバッファに読み込み、ステップS304に移行する。
【0080】
ステップS304では、v5とv4との差分の絶対値が定数値C2よりも大きいか否かを判定し、v5とv4との差分の絶対値が定数値C2以下であると判定したとき(No)は、ステップS306に移行して、v5,v4に基づいて上式(5)によりフィルタ演算を行ってv5'を算出し、ステップS308に移行して、v6とv5との差分の絶対値が定数値C1よりも大きいか否かを判定し、v6とv5との差分の絶対値が定数値C1以下であると判定したとき(No)は、ステップS310に移行する。
【0081】
ステップS310では、v6,v4に基づいて上式(6)によりフィルタ演算を行ってv6'を算出し、ステップS312に移行して、v7とv6との差分の絶対値が定数値C1よりも大きいか否かを判定し、v7とv6との差分の絶対値が定数値C1以下であると判定したとき(No)は、ステップS314に移行して、v7,v4に基づいて上式(7)によりフィルタ演算を行ってv7'を算出し、ステップS316に移行する。
【0082】
ステップS316では、垂直方向の画素列についてのデブロックフィルタ処理を行うが、このデブロックフィルタ処理は、上記ステップS306〜S314と同様の要領で演算を行うことができる。
次いで、ステップS318に移行して、バッファの画素データのうちブロックの左上部分の領域に属する画素に係るものをRGB変換部42に出力し、ステップS320に移行して、ブロックの左上部分の領域に属するすべての画素列についてステップS304からS318までの処理が終了したか否かを判定し、すべての画素列について処理が終了したと判定したとき(Yes)は、一連の処理を終了して元の処理に復帰させるが、そうでないと判定したとき(No)は、ステップS322に移行して、ステップS100,S112で取得した開始アドレスに基づいて、ブロックの左上部分の領域に属する画素列のうち次のもののアドレスを算出し、ステップS302に移行する。
【0083】
一方、ステップS304でv5とv4との差分の絶対値が定数値C2よりも大きいと判定したとき(Yes)、ステップS308でv6とv5との差分の絶対値が定数値C1よりも大きいと判定したとき(Yes)、およびステップS312でv7とv6との差分の絶対値が定数値C1よりも大きいと判定したとき(Yes)はいずれも、ステップS316に移行する。
【0084】
なお、上記ステップS108のフィルタ処理のうち水平方向の処理は、上記ステップS304〜S314と同様であり、上記ステップS106,S108のフィルタ処理のうち垂直方向の処理は、上記ステップS204〜S214と同様の要領で演算を行うことができる。
本発明に係るデリンギングフィルタ処理の原理を図7を参照しながら詳細に説明する。図7は、デリンギングフィルタ処理の原理を説明するための図である。
【0085】
図7において、デリンギングフィルタ処理の対象となる対象画素の値をv0とし、対象画素と隣接する隣接画素の値を、対象画素からみて左上、上、右上、左、右、左下、下、右下の順にv1〜v8とする。
この場合に、対象画素についてデリンギングフィルタ処理後の値v0'は、下式(30)のフィルタ演算式により算出する。
V=(v1+v2+v3+v4+v5+v6+v7+v8)/8 …(29)
0'=(v0+V)/2 …(30)
ただし、エッジが検出された場合にはvi(i=1〜8)をv0に置き換える。viをv0に置き換える趣旨は、エッジが検出された場合にはデブロックフィルタ処理を行わないこととする趣旨と同様である。図7の例では、v7およびv8がそれぞれv0に置き換えられる。
【0086】
本発明に係るデリンギングフィルタ処理は、図8のフローチャートに示す処理により実現することができる。図8は、デリンギングフィルタ処理を示すフローチャートである。
デリンギングフィルタ処理は、ポストフィルタ部40において実行されると、図8に示すように、まず、ステップS400に移行するようになっている。
【0087】
ステップS400では、先頭の対象画素のアドレスをLCDC36から取得し、ステップS402に移行して、取得した対象画素のアドレスに基づいて対象画素および隣接画素の値v0〜v8をバッファに読み込み、ステップS404に移行して、変数Vに「0」を、変数iに「1」を設定し、ステップS406に移行する。
【0088】
ステップS406では、vi(vの添字iは変数iの値により特定される)とv0との差分の絶対値が定数値C3よりも大きいか否かを判定し、viとv0との差分の絶対値が定数値C3よりも大きいと判定したとき(Yes)は、ステップS408に移行する。ここで、定数値C3は、画素の値の最大値を「255」として「16」に設定する。その理由としては、定数値C3は、「16」よりも大きく設定し過ぎると、隣接画素の値viを対象画素の値v0に置き換えるべきなのに置き換えられず、効果的なフィルタ効果が期待できず、逆に、「16」よりも小さく設定し過ぎると、隣接画素の値viを対象画素の値v0に置き換えなくてもよいのに置き換えてしまい、効果的なフィルタ効果が期待できないからである。
【0089】
ステップS408では、隣接画素の値viを対象画素の値v0に置き換え、ステップS410に移行して、「8」で除算するために隣接画素の値viを3ビット右シフトし、ステップS412に移行して、変数Vの値に隣接画素の値viを加算したものを変数Vの新たな値として設定し、ステップS414に移行して、変数iの値に「1」を加算したものを変数iの新たな値として設定し、ステップS416に移行する。
【0090】
ステップS416では、変数iの値が「9」未満であるか否かを判定し、変数iの値が「9」以上であると判定したとき(No)は、ステップS418に移行して、変数Vの値に対象画素の値v0を加算し、その加算値を1ビット右シフトしたものを、対象画素についてデリンギングフィルタ処理後の値v0'として算出し、ステップS420に移行して、算出した値v0'をRGB変換部42に出力し、ステップS422に移行する。
【0091】
ステップS422では、1面分の画像を構成するすべての画素についてステップS402からS420までの処理が終了したか否かを判定し、すべての画素について処理が終了したと判定したとき(Yes)は、一連の処理を終了するが、そうでないと判定したとき(No)は、ステップS424に移行して、次の対象画素のアドレスをLCDC36から取得し、ステップS402に移行する。
【0092】
一方、ステップS416で、変数iの値が「9」未満であると判定したとき(Yes)は、ステップS406に移行する。
一方、ステップS406で、viとv0との差分の絶対値が定数値C3以下であると判定したとき(No)は、ステップS410に移行する。
次に、上記第1の実施の形態の動作を説明する。
【0093】
初めに、図1における画素列PG1の各画素に対してデブロックフィルタ処理を行う場合を例にとって、デブロックフィルタ処理を行う場合を説明する。
画素列PG1の各画素に対してデブロックフィルタ処理を行う場合は、まず、ステップS100,S102,S200,S202を経て、ブロックの右上部分の領域に属する画素列のうち画素列PG1のアドレスが算出され、算出された画素列PG1のアドレスに基づいて、画素列PG1について、水平方向の演算に必要な画素データおよび垂直方向の演算に必要な画素データがまとめてバッファに読み込まれる。ここで、画素列PG1が上から3段目であるので、ブロック内の右上の画素から左に連続する4つの画素、およびその4つの画素からなる画素列の下2段にある8つの画素、上側に隣接するブロック内の右下の画素から左に連続する4つの画素、並びに右側に隣接するブロック内の左上の画素から数えて2つ下にある画素からなる合計17個の画素についての画素データが読み込まれる。
【0094】
そして、まず、ステップS204を経て、画素値v4についてデブロックフィルタ処理を行うか否かが判定される。すなわち、v4とv5との差分の絶対値が定数値C2以下であれば、ステップS206を経て、v4,v5に基づいて上式(4)によりフィルタ演算が行われてv4'が算出される。なお、画素値v4についてデブロックフィルタ処理を行わないと判定された場合には、画素値v2,v3についてもデブロックフィルタ処理は行われない。
【0095】
次いで、画素値v4についてデブロックフィルタ処理が行われた場合には、ステップS208を経て、画素値v3についてデブロックフィルタ処理を行うか否かが判定される。すなわち、v3とv4との差分の絶対値が定数値C1以下であれば、ステップS210を経て、v3,v5に基づいて上式(3)によりフィルタ演算が行われてv3'が算出される。なお、画素値v3についてデブロックフィルタ処理を行わないと判定された場合には、画素値v2についてもデブロックフィルタ処理は行われない。
【0096】
次いで、画素値v3についてデブロックフィルタ処理が行われた場合には、ステップS212を経て、画素値v2についてデブロックフィルタ処理を行うか否かが判定される。すなわち、v2とv3との差分の絶対値が定数値C1以下であれば、ステップS214を経て、v2,v5に基づいて上式(2)によりフィルタ演算が行われてv2'が算出される。
【0097】
そして、ステップS216,S218を経て、画素列PG1の画素のうち左半分の画素に対して垂直方向にデブロックフィルタ処理が行われ、水平方向および垂直方向の処理が終了すると、バッファの画素データのうちブロックの右上部分の領域に属する画素に係るものがRGB変換部42に出力される。
これにより、画素列PG1のうち左半分の画素についてデブロックフィルタ処理が完了する。
【0098】
次に、ステップS100,S104,S300,S302を経て、ブロックの左上部分の領域に属する画素列のうち画素列PG1のアドレスが算出され、算出された画素列PG1のアドレスに基づいて、画素列PG1について、水平方向の演算に必要な画素データおよび垂直方向の演算に必要な画素データがまとめてバッファに読み込まれる。ここで、画素列PG1が上から3段目であるので、ブロック内の左上の画素から右に連続する4つの画素、およびその4つの画素からなる画素列の下2段にある8つの画素、上側に隣接するブロック内の左下の画素から右に連続する4つの画素、並びに左側に隣接するブロック内の右上の画素から数えて2つ下にある画素からなる合計17個の画素についての画素データが読み込まれる。
【0099】
そして、まず、ステップS304を経て、画素値v5についてデブロックフィルタ処理を行うか否かが判定される。すなわち、v5とv4との差分の絶対値が定数値C2以下であれば、ステップS306を経て、v5,v4に基づいて上式(5)によりフィルタ演算が行われてv5'が算出される。なお、画素値v5についてデブロックフィルタ処理を行わないと判定された場合には、画素値v6,v7についてもデブロックフィルタ処理は行われない。
【0100】
次いで、画素値v5についてデブロックフィルタ処理が行われた場合には、ステップS308を経て、画素値v6についてデブロックフィルタ処理を行うか否かが判定される。すなわち、v6とv5との差分の絶対値が定数値C1以下であれば、ステップS310を経て、v6,v4に基づいて上式(6)によりフィルタ演算が行われてv6'が算出される。なお、画素値v6についてデブロックフィルタ処理を行わないと判定された場合には、画素値v7についてもデブロックフィルタ処理は行われない。
【0101】
次いで、画素値v6についてデブロックフィルタ処理が行われた場合には、ステップS312を経て、画素値v7についてデブロックフィルタ処理を行うか否かが判定される。すなわち、v7とv6との差分の絶対値が定数値C1以下であれば、ステップS314を経て、v7,v4に基づいて上式(7)によりフィルタ演算が行われてv7'が算出される。
【0102】
そして、ステップS316,S318を経て、画素列PG1の画素のうち右半分の画素に対して垂直方向にデブロックフィルタ処理が行われ、水平方向および垂直方向の処理が終了すると、バッファの画素データのうちブロックの左上部分の領域に属する画素に係るものがRGB変換部42に出力される。
これにより、画素列PG1のうち右半分の画素についてデブロックフィルタ処理が完了する。
【0103】
次に、デリンギングフィルタ処理を行う場合を説明する。
デリンギングフィルタ処理を行う場合は、まず、ステップS400〜S404を経て、対象画素のアドレスに基づいて対象画素および隣接画素の値v0〜v8がバッファに読み込まれる。
次いで、ステップS406〜S416を繰り返し経て、各隣接画素の値viについて、viとv0との差分の絶対値が定数値C3よりも大きければ、隣接画素の値viが対象画素の値v0に置き換えられ、そうでなければ、隣接画素の値viがそのまま採用され、隣接画素の値viが3ビット右シフトされ、変数Vの値に隣接画素の値viを加算したものが変数Vの新たな値として設定される。すなわち、各隣接画素の値viをそれぞれ「8」で除算し、その除算結果を加算するという演算過程を経て、隣接画素の平均値Vが算出される。
【0104】
そして、ステップS418,S420を経て、変数Vの値に対象画素の値v0が加算され、その加算値を1ビット右シフトしたものが、対象画素のフィルタ処理後の値v0'として算出され、算出された値v0'がRGB変換部42に出力される。
このようにして、本実施の形態では、デブロックフィルタ処理は、互いに隣接するブロック間の境界線と直交する画素列について、デブロックフィルタ後の各画素の値v2'〜v7'を、上式(2)〜(7)のフィルタ演算式により算出するようになっている。
【0105】
これにより、一の画素についてのフィルタ演算を行うにあたって、多数の画素の平均値を用いず、2つの画素の値のみを用いるので、従来に比して、デブロックフィルタ処理を比較的簡素化することができる。例えば、本実施の形態のように、デブロックフィルタ処理をハードウェアにより実現する場合には、回路規模を小型化することができるし、デブロックフィルタ処理をソフトウェアにより実現する場合には、プログラムサイズを低減することができる。また、一の画素の値と、同一画素列の画素であって隣接ブロック内の境界画素の値とを用いた加減算およびビットシフト(除数が2の整数倍となる除算)により演算を行うので、デブロックフィルタ処理をさらに簡素化することができるのに加え、効果的なフィルタ効果をある程度実現することができる。
【0106】
さらに、本実施の形態では、デブロックフィルタ処理は、互いに隣接するブロック間の境界線と直交する画素列の画素のうち一の画素についてのフィルタ演算を、その一の画素から、同一画素列の画素であって隣接ブロック内の境界線に位置する境界画素までの各画素の相互の差分値がいずれも閾値C1,C2を超えていないときに行い、閾値C1,C2として定数値を用いるようになっている。
【0107】
これにより、閾値C1,C2が定数値であるので、デブロックフィルタ処理の過程において閾値C1,C2を算出する必要がなく、また、各画素の相互の差分値のいずれかが閾値C1,C2を超えていれば、フィルタ演算が行われない。したがって、デブロックフィルタ処理をさらに簡素化することができるのに加え、従来に比して、デブロックフィルタ処理を比較的高速化することができる。
【0108】
さらに、本実施の形態では、境界画素と、境界画素と隣接する隣接画素との差分値を比較するときの閾値C2を、境界画素と、隣接画素以外の画素との差分値を比較するときの閾値C1よりも大きく設定した。
これにより、ブロック間の輝度の平均値が異なるという特性を考慮したデブロックフィルタ処理を行うことができるので、さらに効果的なフィルタ効果を実現することができる。
【0109】
さらに、本実施の形態では、境界画素と、境界画素と隣接する隣接画素との差分値を比較するときの閾値C2を、画素の値の最大値を「255」として「32」に設定し、境界画素と、隣接画素以外の画素との差分値を比較するときの閾値C1を、「16」に設定した。
これにより、ブロック間の輝度の平均値が異なるという特性をより考慮したデブロックフィルタ処理を行うことができるので、さらに効果的なフィルタ効果を実現することができる。
【0110】
さらに、本実施の形態では、デブロックフィルタ処理は、画素についてフィルタ演算を行うか否かの判定を、境界画素と隣接する隣接画素から順次境界線より遠ざかる方向に行い、画素についてフィルタ演算を行わないと判定したときは、その画素およびこれよりも後段の画素についてはフィルタ演算を行わないようになっている。
【0111】
これにより、画素についてフィルタ演算を行うか否かの判定回数を低減することができるので、デブロックフィルタ処理をさらに高速化することができる。
さらに、本実施の形態では、ポストフィルタ部40は、17画素分の画素データを格納可能なバッファを有し、デブロックフィルタ処理は、画素列のうち一の画素から境界画素までの全画素データを、VRAM35からバッファにまとめて読み込み、バッファの画素データに基づいてフィルタ演算を行うようになっている。
【0112】
これにより、画素列の各画素についてデブロックフィルタ処理を行うに必要な画素データをバッファにまとめて読み込み一括で処理するので、デブロックフィルタ処理をさらに高速化することができる。
さらに、本実施の形態では、デブロックフィルタ処理は、ブロック内の水平方向の画素列および垂直方向の画素列の一方に対してフィルタ演算を行った後、他方に対してフィルタ演算を行うようになっている。
【0113】
これにより、ブロック内の水平方向の画素列および垂直方向の画素列の両方に対してデブロックフィルタ処理を行うので、さらに効果的なフィルタ効果を実現することができる。
さらに、本実施の形態では、デリンギングフィルタ処理は、一の画素についてのフィルタ演算を、その演算の対象となる対象画素の値と、対象画素と隣接する隣接画素の値とに基づいて行い、フィルタ演算では、隣接画素のうち一の画素と対象画素との差分値が閾値C3を超えているときは、その一の画素の値に代えて対象画素の値を用いるようになっている。
【0114】
これにより、各隣接画素と対象画素との差分値が閾値C3を超えている否かにかかわらず、隣接画素の平均値を算出するときの除数が一定(「8」)となり、その除数が2の整数倍であるのでビットシフトにより演算を行うことができる。したがって、従来に比して、デリンギングフィルタ処理を比較的簡素化することができる。例えば、本実施の形態のように、デリンギングフィルタ処理をハードウェアにより実現する場合には、回路規模を小型化することができるし、デリンギングフィルタ処理をソフトウェアにより実現する場合には、プログラムサイズを低減することができる。
【0115】
さらに、本実施の形態では、デリンギングフィルタ処理は、閾値C3として定数値を用いるようになっている。
これにより、閾値C3が定数値であるので、デリンギングフィルタ処理の過程において閾値C3を算出する必要がない。したがって、デリンギングフィルタ処理をさらに簡素化することができる。
【0116】
さらに、本実施の形態では、デリンギングフィルタ処理は、閾値C3を、画素の値の最大値を「255」として「16」に設定した。
これにより、効果的なフィルタ効果をある程度実現することができる。
さらに、本実施の形態では、デリンギングフィルタ処理は、一の画素についてのフィルタ演算を、その演算の対象となる対象画素の値を「8」で除算し、対象画素と隣接する隣接画素の値を「8」で除算し、それら除算結果を加算することにより行うようになっている。
【0117】
これにより、除算してから加算を行うので、従来に比して、デリンギングフィルタ処理において演算のために占有するメモリ容量を比較的低減することができる。
上記第1の実施の形態において、MPEG形式の動画データは、発明1、18、19、22、24ないし27、30、32ないし35、38または40の圧縮画像データに対応し、VRAM35は、発明9、19、27または35の画像記憶手段に対応し、ポストフィルタ部40のバッファは、発明9、19、27または35の作業用記憶手段に対応している。
【0118】
次に、本発明の第2の実施の形態を図面を参照しながら説明する。図9ないし図13は、本発明に係る画像処理装置および画像処理プログラム、並びに画像処理方法の第2の実施の形態を示す図である。以下、上記第1の実施の形態と異なる部分についてのみ説明をし、重複する部分については同一の符号を付して説明を省略する。
【0119】
本実施の形態は、本発明に係る画像処理装置および画像処理プログラム、並びに画像処理方法を、図1に示すように、コンピュータ100において、マルチタスクで動作するOSにより、MPEG形式で圧縮された動画データをデコードして動画を再生する際に、再生画像に対してデブロックフィルタ処理を行う場合について適用したものであり、上記第1の実施の形態と異なるのは、上式(1)〜(4)のフィルタ演算式のみを用いてデブロックフィルタ処理を行う点にある。
【0120】
ポストフィルタ部40は、上記ステップS202〜S214の処理に代えて、図9のフローチャートに示す画素値読込処理を、上記ステップS302〜S314の処理に代えて、図10のフローチャートに示す画素値読込処理をそれぞれ実行するようになっている。
初めに、ブロックの右上部分の領域についての画素値読込処理を図9を参照しながら詳細に説明する。図9は、ブロックの右上部分の領域についての画素値読込処理を示すフローチャートである。
【0121】
ブロックの右上部分の領域についての画素値読込処理は、ポストフィルタ部40において実行されると、図9に示すように、まず、ステップS230に移行するようになっている。なお、以下の説明において、s(0)〜s(4)は、配列型の変数であり、バッファ上に割り当てたものであってもよいし、バッファとは別の領域に確保したものであってもよい。
【0122】
ステップS230では、画素値v1をs(0)に読み込み、ステップS232に移行して、画素値v2をs(1)に読み込み、ステップS234に移行して、画素値v3をs(2)に読み込み、ステップS236に移行して、画素値v4をs(3)に読み込み、ステップS238に移行して、画素値v5をs(4)に読み込み、ステップS240に移行する。
【0123】
ステップS240では、s(0)〜s(4)の値に基づいて上式(1)〜(4)によりフィルタ演算を行うフィルタ演算処理を実行し、一連の処理を終了して元の処理に復帰させる。
次に、ブロックの左上部分の領域についての画素値読込処理を図10を参照しながら詳細に説明する。図10は、ブロックの左上部分の領域についての画素値読込処理を示すフローチャートである。
【0124】
ブロックの左上部分の領域についての画素値読込処理は、ポストフィルタ部40において実行されると、図10に示すように、まず、ステップS330に移行するようになっている。
ステップS330では、画素値v4をs(4)に読み込み、ステップS332に移行して、画素値v5をs(3)に読み込み、ステップS334に移行して、画素値v6をs(2)に読み込み、ステップS336に移行して、画素値v7をs(1)に読み込み、ステップS338に移行して、画素値v8をs(0)に読み込み、ステップS240に移行する。
【0125】
次に、上記ステップS240のフィルタ演算処理を図11を参照しながら詳細に説明する。図11は、ステップS240のフィルタ演算処理を示すフローチャートである。
フィルタ演算処理は、上記ステップS240において実行されると、図11に示すように、まず、ステップS500に移行するようになっている。
【0126】
ステップS500では、s(3)とs(4)との差分の絶対値が定数値C2よりも大きいか否かを判定し、s(3)とs(4)との差分の絶対値が定数値C2以下であると判定したとき(No)は、ステップS502に移行して、s(3),s(4)の値に基づいて上式(4)によりフィルタ演算を行ってs'(3)を算出し、ステップS504に移行する。
【0127】
ステップS504では、s(2)とs(3)との差分の絶対値が定数値C1よりも大きいか否かを判定し、s(2)とs(3)との差分の絶対値が定数値C1以下であると判定したとき(No)は、ステップS506に移行して、s(2),s(4)の値に基づいて上式(3)によりフィルタ演算を行ってs'(2)を算出し、ステップS508に移行する。
【0128】
ステップS508では、s(1)とs(2)との差分の絶対値が定数値C1よりも大きいか否かを判定し、s(1)とs(2)との差分の絶対値が定数値C1以下であると判定したとき(No)は、ステップS510に移行して、s(1),s(4)の値に基づいて上式(2)によりフィルタ演算を行ってs'(1)を算出し、一連の処理を終了して元の処理に復帰させる。
【0129】
一方、ステップS500でs(3)とs(4)との差分の絶対値が定数値C2よりも大きいと判定したとき(Yes)、ステップS504でs(2)とs(3)との差分の絶対値が定数値C1よりも大きいと判定したとき(Yes)、およびステップS508でs(1)とs(2)との差分の絶対値が定数値C1よりも大きいと判定したとき(Yes)はいずれも、一連の処理を終了して元の処理に復帰させる。
【0130】
次に、上記第2の実施の形態の動作を図12および図13を参照しながら説明する。図12は、画素値v1〜v8を並べ換えて演算する場合を示す図である。図13は、画素列PG1の各画素の値を示した棒グラフである。
初めに、図1における画素列PG1の各画素に対してデブロックフィルタ処理を行う場合を例にとって、デブロックフィルタ処理を行う場合を説明する。
【0131】
画素列PG1の各画素に対してデブロックフィルタ処理を行う場合は、まず、ステップS200,S202,S230〜S238を経て、画素列PG1のアドレスに基づいて、画素列PG1について、水平方向の演算に必要な画素データおよび垂直方向の演算に必要な画素データがまとめてバッファに読み込まれ、図12(a)に示すように、画素値v1〜v5がs(0)〜s(4)にその順で読み込まれる。
【0132】
そして、まず、ステップS500を経て、s(3)についてデブロックフィルタ処理を行うか否かが判定される。すなわち、s(3)とs(4)との差分の絶対値が定数値C2以下であれば、ステップS502を経て、s(3),s(4)の値に基づいて上式(4)によりフィルタ演算が行われてs'(3)が算出される。なお、s(3)についてデブロックフィルタ処理を行わないと判定された場合には、s(1),s(2)についてもデブロックフィルタ処理は行われない。
【0133】
次いで、s(3)についてデブロックフィルタ処理が行われた場合には、ステップS504を経て、s(2)についてデブロックフィルタ処理を行うか否かが判定される。すなわち、s(2)とs(3)との差分の絶対値が定数値C1以下であれば、ステップS506を経て、s(2),s(4)に基づいて上式(3)によりフィルタ演算が行われてs'(2)が算出される。なお、s(2)についてデブロックフィルタ処理を行わないと判定された場合には、s(1)についてもデブロックフィルタ処理は行われない。
【0134】
次いで、s(2)についてデブロックフィルタ処理が行われた場合には、ステップS508を経て、s(1)についてデブロックフィルタ処理を行うか否かが判定される。すなわち、s(1)とs(2)との差分の絶対値が定数値C1以下であれば、ステップS510を経て、s(1),s(4)に基づいて上式(2)によりフィルタ演算が行われてs'(1)が算出される。
【0135】
そして、ステップS216,S218を経て、画素列PG1の画素のうち左半分の画素に対して垂直方向にデブロックフィルタ処理が行われ、水平方向および垂直方向の処理が終了すると、s'(1)〜s'(3)の値がRGB変換部42に出力される。
これにより、画素列PG1のうち左半分の画素についてデブロックフィルタ処理が完了する。
【0136】
次に、ステップS300,S302,S330〜S338を経て、画素列PG1のアドレスに基づいて、画素列PG1について、水平方向の演算に必要な画素データおよび垂直方向の演算に必要な画素データがまとめてバッファに読み込まれ、図12(b)に示すように、画素値v4〜v8がs(4)〜s(0)にその順で読み込まれる。
【0137】
そして、まず、ステップS500を経て、s(3)についてデブロックフィルタ処理を行うか否かが判定される。すなわち、s(3)とs(4)との差分の絶対値が定数値C2以下であれば、ステップS502を経て、s(3),s(4)の値に基づいて上式(4)によりフィルタ演算が行われてs'(3)が算出される。なお、s(3)についてデブロックフィルタ処理を行わないと判定された場合には、s(1),s(2)についてもデブロックフィルタ処理は行われない。
【0138】
次いで、s(3)についてデブロックフィルタ処理が行われた場合には、ステップS504を経て、s(2)についてデブロックフィルタ処理を行うか否かが判定される。すなわち、s(2)とs(3)との差分の絶対値が定数値C1以下であれば、ステップS506を経て、s(2),s(4)に基づいて上式(3)によりフィルタ演算が行われてs'(2)が算出される。なお、s(2)についてデブロックフィルタ処理を行わないと判定された場合には、s(1)についてもデブロックフィルタ処理は行われない。
【0139】
次いで、s(2)についてデブロックフィルタ処理が行われた場合には、ステップS508を経て、s(1)についてデブロックフィルタ処理を行うか否かが判定される。すなわち、s(1)とs(2)との差分の絶対値が定数値C1以下であれば、ステップS510を経て、s(1),s(4)に基づいて上式(2)によりフィルタ演算が行われてs'(1)が算出される。
【0140】
そして、ステップS316,S318を経て、画素列PG1の画素のうち右半分の画素に対して垂直方向にデブロックフィルタ処理が行われ、水平方向および垂直方向の処理が終了すると、s'(1)〜s'(3)の値がRGB変換部42に出力される。このとき、図12(b)に示すように、s'(0)〜s'(4)の内容が反対の順列となるように並べ換えられてから、s'(1)〜s'(3)の値がRGB変換部42に出力される。
【0141】
これにより、画素列PG1のうち右半分の画素についてデブロックフィルタ処理が完了する。
本実施の形態に係るデブロックフィルタ処理によれば、上記第1の実施の形態では、図13(a)に示すように各画素値v1〜v8が補正されるところ、図13(b)に示すように補正される。
【0142】
このようにして、本実施の形態では、デブロックフィルタ処理は、互いに隣接するブロック間の境界線と直交する画素列について、画素値v2〜v5をそれぞれs(1)〜s(4)に読み込んで、フィルタ後の各画素の値v2'〜v4'を上式(2)〜(4)のフィルタ演算式により算出し、画素値v4〜v7をそれぞれs(4)〜s(1)に読み込んで、フィルタ後の各画素の値v5'〜v7'を上式(2)〜(4)のフィルタ演算式により算出するようになっている。
【0143】
これにより、6つの画素についてデブロックフィルタ処理を行うのに3つのフィルタ演算式を用意しておけばよいので、デブロックフィルタ処理をさらに簡素化することができる。
上記第2の実施の形態において、MPEG形式の動画データは、発明20、28または36の圧縮画像データに対応している。
【0144】
次に、本発明の第3の実施の形態を図面を参照しながら説明する。図14ないし図17は、本発明に係る画像処理装置および画像処理プログラム、並びに画像処理方法の第3の実施の形態を示す図である。以下、上記第1の実施の形態と異なる部分についてのみ説明をし、重複する部分については同一の符号を付して説明を省略する。
【0145】
本実施の形態は、本発明に係る画像処理装置および画像処理プログラム、並びに画像処理方法を、図1に示すように、コンピュータ100において、マルチタスクで動作するOSにより、MPEG形式で圧縮された動画データをデコードして動画を再生する際に、再生画像に対してデブロックフィルタ処理を行う場合について適用したものであり、上記第1の実施の形態と異なるのは、上式(5)〜(8)のフィルタ演算式のみを用いてデブロックフィルタ処理を行う点にある。
【0146】
ポストフィルタ部40は、上記ステップS202〜S214の処理に代えて、図14のフローチャートに示す画素値読込処理を、上記ステップS302〜S314の処理に代えて、図15のフローチャートに示す画素値読込処理をそれぞれ実行するようになっている。
初めに、ブロックの右上部分の領域についての画素値読込処理を図14を参照しながら詳細に説明する。図14は、ブロックの右上部分の領域についての画素値読込処理を示すフローチャートである。
【0147】
ブロックの右上部分の領域についての画素値読込処理は、ポストフィルタ部40において実行されると、図14に示すように、まず、ステップS260に移行するようになっている。なお、以下の説明において、s(0)〜s(4)は、配列型の変数であり、バッファ上に割り当てたものであってもよいし、バッファとは別の領域に確保したものであってもよい。
【0148】
ステップS260では、画素値v1をs(4)に読み込み、ステップS262に移行して、画素値v2をs(3)に読み込み、ステップS264に移行して、画素値v3をs(2)に読み込み、ステップS266に移行して、画素値v4をs(1)に読み込み、ステップS268に移行して、画素値v5をs(0)に読み込み、ステップS270に移行する。
【0149】
ステップS270では、s(0)〜s(4)の値に基づいて上式(5)〜(8)によりフィルタ演算を行うフィルタ演算処理を実行し、一連の処理を終了して元の処理に復帰させる。
次に、ブロックの左上部分の領域についての画素値読込処理を図15を参照しながら詳細に説明する。図15は、ブロックの左上部分の領域についての画素値読込処理を示すフローチャートである。
【0150】
ブロックの左上部分の領域についての画素値読込処理は、ポストフィルタ部40において実行されると、図15に示すように、まず、ステップS360に移行するようになっている。
ステップS360では、画素値v4をs(0)に読み込み、ステップS362に移行して、画素値v5をs(1)に読み込み、ステップS364に移行して、画素値v6をs(2)に読み込み、ステップS366に移行して、画素値v7をs(3)に読み込み、ステップS368に移行して、画素値v8をs(4)に読み込み、ステップS270に移行する。
【0151】
次に、上記ステップS270のフィルタ演算処理を図16を参照しながら詳細に説明する。図16は、ステップS270のフィルタ演算処理を示すフローチャートである。
フィルタ演算処理は、上記ステップS270において実行されると、図16に示すように、まず、ステップS530に移行するようになっている。
【0152】
ステップS530では、s(1)とs(0)との差分の絶対値が定数値C2よりも大きいか否かを判定し、s(1)とs(0)との差分の絶対値が定数値C2以下であると判定したとき(No)は、ステップS532に移行して、s(1),s(0)の値に基づいて上式(5)によりフィルタ演算を行ってs'(1)を算出し、ステップS534に移行する。
【0153】
ステップS534では、s(2)とs(1)との差分の絶対値が定数値C1よりも大きいか否かを判定し、s(2)とs(1)との差分の絶対値が定数値C1以下であると判定したとき(No)は、ステップS536に移行して、s(2),s(0)の値に基づいて上式(6)によりフィルタ演算を行ってs'(2)を算出し、ステップS538に移行する。
【0154】
ステップS538では、s(3)とs(2)との差分の絶対値が定数値C1よりも大きいか否かを判定し、s(3)とs(2)との差分の絶対値が定数値C1以下であると判定したとき(No)は、ステップS540に移行して、s(3),s(0)の値に基づいて上式(7)によりフィルタ演算を行ってs'(3)を算出し、一連の処理を終了して元の処理に復帰させる。
【0155】
一方、ステップS530でs(1)とs(0)との差分の絶対値が定数値C2よりも大きいと判定したとき(Yes)、ステップS534でs(2)とs(1)との差分の絶対値が定数値C1よりも大きいと判定したとき(Yes)、およびステップS538でs(3)とs(2)との差分の絶対値が定数値C1よりも大きいと判定したとき(Yes)はいずれも、一連の処理を終了して元の処理に復帰させる。
【0156】
次に、上記第3の実施の形態の動作を図17を参照しながら説明する。図17は、画素列PG1の各画素の値を示した棒グラフである。
初めに、図1における画素列PG1の各画素に対してデブロックフィルタ処理を行う場合を例にとって、デブロックフィルタ処理を行う場合を説明する。
画素列PG1の各画素に対してデブロックフィルタ処理を行う場合は、まず、ステップS200,S202,S260〜S268を経て、画素列PG1のアドレスに基づいて、画素列PG1について、水平方向の演算に必要な画素データおよび垂直方向の演算に必要な画素データがまとめてバッファに読み込まれ、図12(b)に示すように、画素値v1〜v5がs(4)〜s(0)にその順で読み込まれる。
【0157】
そして、まず、ステップS530を経て、s(1)についてデブロックフィルタ処理を行うか否かが判定される。すなわち、s(1)とs(0)との差分の絶対値が定数値C2以下であれば、ステップS532を経て、s(1),s(0)の値に基づいて上式(5)によりフィルタ演算が行われてs'(1)が算出される。なお、s(1)についてデブロックフィルタ処理を行わないと判定された場合には、s(2),s(3)についてもデブロックフィルタ処理は行われない。
【0158】
次いで、s(2)についてデブロックフィルタ処理が行われた場合には、ステップS534を経て、s(2)についてデブロックフィルタ処理を行うか否かが判定される。すなわち、s(2)とs(1)との差分の絶対値が定数値C1以下であれば、ステップS536を経て、s(2),s(0)に基づいて上式(6)によりフィルタ演算が行われてs'(2)が算出される。なお、s(2)についてデブロックフィルタ処理を行わないと判定された場合には、s(3)についてもデブロックフィルタ処理は行われない。
【0159】
次いで、s(2)についてデブロックフィルタ処理が行われた場合には、ステップS538を経て、s(3)についてデブロックフィルタ処理を行うか否かが判定される。すなわち、s(3)とs(2)との差分の絶対値が定数値C1以下であれば、ステップS540を経て、s(3),s(0)に基づいて上式(7)によりフィルタ演算が行われてs'(3)が算出される。
【0160】
そして、ステップS216,S218を経て、画素列PG1の画素のうち左半分の画素に対して垂直方向にデブロックフィルタ処理が行われ、水平方向および垂直方向の処理が終了すると、s'(1)〜s'(3)の値がRGB変換部42に出力される。このとき、図12(b)に示すように、s'(0)〜s'(4)の内容が反対の順列となるように並べ換えられてから、s'(1)〜s'(3)の値がRGB変換部42に出力される。
【0161】
これにより、画素列PG1のうち左半分の画素についてデブロックフィルタ処理が完了する。
次に、ステップS300,S302,S360〜S368を経て、画素列PG1のアドレスに基づいて、画素列PG1について、水平方向の演算に必要な画素データおよび垂直方向の演算に必要な画素データがまとめてバッファに読み込まれ、図12(a)に示すように、画素値v4〜v8がs(0)〜s(4)にその順で読み込まれる。
【0162】
そして、まず、ステップS530を経て、s(1)についてデブロックフィルタ処理を行うか否かが判定される。すなわち、s(1)とs(0)との差分の絶対値が定数値C2以下であれば、ステップS532を経て、s(1),s(0)の値に基づいて上式(5)によりフィルタ演算が行われてs'(1)が算出される。なお、s(1)についてデブロックフィルタ処理を行わないと判定された場合には、s(2),s(3)についてもデブロックフィルタ処理は行われない。
【0163】
次いで、s(2)についてデブロックフィルタ処理が行われた場合には、ステップS534を経て、s(2)についてデブロックフィルタ処理を行うか否かが判定される。すなわち、s(2)とs(1)との差分の絶対値が定数値C1以下であれば、ステップS536を経て、s(2),s(0)に基づいて上式(6)によりフィルタ演算が行われてs'(2)が算出される。なお、s(2)についてデブロックフィルタ処理を行わないと判定された場合には、s(3)についてもデブロックフィルタ処理は行われない。
【0164】
次いで、s(2)についてデブロックフィルタ処理が行われた場合には、ステップS538を経て、s(3)についてデブロックフィルタ処理を行うか否かが判定される。すなわち、s(3)とs(2)との差分の絶対値が定数値C1以下であれば、ステップS540を経て、s(3),s(0)に基づいて上式(7)によりフィルタ演算が行われてs'(3)が算出される。
【0165】
そして、ステップS316,S318を経て、画素列PG1の画素のうち右半分の画素に対して垂直方向にデブロックフィルタ処理が行われ、水平方向および垂直方向の処理が終了すると、s'(1)〜s'(3)の値がRGB変換部42に出力される。
これにより、画素列PG1のうち右半分の画素についてデブロックフィルタ処理が完了する。
【0166】
本実施の形態に係るデブロックフィルタ処理によれば、上記第1の実施の形態では、図17(a)に示すように各画素値v1〜v8が補正されるところ、図17(b)に示すように補正される。本実施の形態に係るデブロックフィルタ処理は、デリンギングフィルタ処理を併用しない場合には、上記第2の実施の形態に係るデブロックフィルタ処理よりも高画質な画像が得られるが、デリンギングフィルタ処理を併用した場合には、上記第2の実施の形態に係るデブロックフィルタ処理の方が高画質な画像が得られる。したがって、デリンギングフィルタ処理の有無に応じてこれらを選択するのが好ましい。
【0167】
このようにして、本実施の形態では、デブロックフィルタ処理は、互いに隣接するブロック間の境界線と直交する画素列について、画素値v4〜v7をそれぞれs(0)〜s(3)に読み込んで、フィルタ後の各画素の値v5'〜v7'を上式(5)〜(7)のフィルタ演算式により算出し、画素値v2〜v5をそれぞれs(3)〜s(0)に読み込んで、フィルタ後の各画素の値v2'〜v4'を上式(5)〜(7)のフィルタ演算式により算出するようになっている。
【0168】
これにより、6つの画素についてデブロックフィルタ処理を行うのに3つのフィルタ演算式を用意しておけばよいので、デブロックフィルタ処理をさらに簡素化することができる。
上記第3の実施の形態において、MPEG形式の動画データは、発明21、29または37の圧縮画像データに対応している。
【0169】
なお、上記第1の実施の形態において、デリンギングフィルタ処理は、対象画素と8つの隣接画素との値に基づいてフィルタ演算を行うように構成したが、これに限らず、図18に示すように、対象画素と4つの隣接画素との値に基づいてフィルタ演算を行うように構成してもよい。図18は、デリンギングフィルタ処理の原理を説明するための図である。
【0170】
図18において、デリンギングフィルタ処理の対象となる対象画素の値をv0とし、対象画素と隣接する隣接画素の値を、対象画素からみて上、左、右、下の順にv2,v4,v5,v7とする。
この場合に、対象画素についてデリンギングフィルタ処理後の値v0'は、下式(30)のフィルタ演算式により算出する。
V=(v2+v4+v5+v7)/4 …(31)
0'=(v0+V)/2 …(32)
ただし、エッジが検出された場合にはvi(i=2,4,5,7)をv0に置き換える。viをv0に置き換える趣旨は、エッジが検出された場合にはデブロックフィルタ処理を行わないこととする趣旨と同様である。図18の例では、v7がv0に置き換えられる。
【0171】
これにより、隣接画素の平均値を算出するときの除数が2の整数倍であるので、ビットシフトにより演算を行うことができる。また、隣接画素のすべての値を用いないので、処理負荷を低減することもできる。したがって、デリンギングフィルタ処理をさらに簡素化することができる。
なお、隣接画素として上下左右の4つの画素を選択したが、これに限らず、例えば、左上、右上、左下、右下の4つの画素など、隣接画素であればどのような組み合わせで選択してもよい。また、ビットシフトにより演算を行うことにより処理負荷の低減を図る観点からは、フィルタ演算に用いる隣接画素は、2つまたは1つであってもよい。
【0172】
この場合において、MPEG形式の動画データは、発明23、31または39の圧縮画像データに対応している。
また、上記第1の実施の形態において、図4、図5、図6および図8のフローチャートに示す処理を実行するにあたってはいずれも、ポストフィルタ部40のハードウェアによる処理で行う場合について説明したが、これに限らず、CPU30がこれらの処理を実行するようにしてもよく、この場合、上記第1の実施の形態のように、ROM32にあらかじめ格納されている制御プログラムを実行するように構成してもよいが、これらの手順を示したプログラムが記憶された記憶媒体から、そのプログラムをRAM34に読み込んで実行するようにしてもよい。
【0173】
また、上記第2の実施の形態において、図9ないし図11のフローチャートに示す処理を実行するにあたってはいずれも、ポストフィルタ部40のハードウェアによる処理で行う場合について説明したが、これに限らず、CPU30がこれらの処理を実行するようにしてもよく、この場合、上記第2の実施の形態のように、ROM32にあらかじめ格納されている制御プログラムを実行するように構成してもよいが、これらの手順を示したプログラムが記憶された記憶媒体から、そのプログラムをRAM34に読み込んで実行するようにしてもよい。
【0174】
また、上記第3の実施の形態において、図14ないし図16のフローチャートに示す処理を実行するにあたってはいずれも、ポストフィルタ部40のハードウェアによる処理で行う場合について説明したが、これに限らず、CPU30がこれらの処理を実行するようにしてもよく、この場合、上記第3の実施の形態のように、ROM32にあらかじめ格納されている制御プログラムを実行するように構成してもよいが、これらの手順を示したプログラムが記憶された記憶媒体から、そのプログラムをRAM34に読み込んで実行するようにしてもよい。
【0175】
ここで、記憶媒体とは、RAM、ROM等の半導体記憶媒体、FD、HD等の磁気記憶型記憶媒体、CD、CDV、LD、DVD等の光学的読取方式記憶媒体、MO等の磁気記憶型/光学的読取方式記憶媒体であって、電子的、磁気的、光学的等の読み取り方法のいかんにかかわらず、コンピュータで読み取り可能な記憶媒体であれば、あらゆる記憶媒体を含むものである。
【0176】
また、上記第1、第2および第3の実施の形態においては、本発明に係る画像処理装置および画像処理プログラム、並びに画像処理方法を、図1に示すように、コンピュータ100において、マルチタスクで動作するOSにより、MPEG形式で圧縮された動画データをデコードして動画を再生する際に、再生画像に対して、デブロックフィルタ処理およびデリンギングフィルタ処理を行う場合について適用したが、これに限らず、本発明の主旨を逸脱しない範囲で他の場合にも適用可能である。例えば、JPEG形式で圧縮された画像データに基づいて画像を表示する場合や、その他離散コサイン変換処理および量子化変換処理を所定のブロック単位で行う画像圧縮処理により圧縮された圧縮画像データに基づいてブロック単位で画像を展開する場合に適用することができる。
【0177】
【発明の効果】
以上説明したように、発明1ないし17の画像処理装置によれば、一の画素についてのフィルタ演算を行うにあたって、多数の画素の平均値を用いず、2つの画素の値のみを用いるので、従来に比して、画像復号化時においてブロックノイズを低減するフィルタ処理を比較的簡素化することができるという効果が得られる。
【0178】
さらに、発明3の画像処理装置によれば、一の画素についてのフィルタ演算を行うにあたって、その一の画素の値と、同一画素列の画素であって隣接ブロック内の境界画素の値とを用いるので、効果的なフィルタ効果をある程度実現することができるという効果も得られる。
さらに、発明4の画像処理装置によれば、一の画素についてのフィルタ演算を行うにあたって、その一の画素の値と、同一画素列の画素であって隣接ブロック内の境界画素の値とを用いた加減算およびビットシフト(除数が2の整数倍となる除算)により演算を行うので、画像復号化時においてブロックノイズを低減するフィルタ処理をさらに簡素化することができるのに加え、発明3の画像処理装置に比して、さらに効果的なフィルタ効果を実現することができるという効果も得られる。
【0179】
さらに、発明5ないし8の画像処理装置によれば、閾値が定数値であるので、フィルタ処理の過程において閾値を算出する必要がなく、また、各画素の相互の差分値のいずれかが閾値を超えていれば、フィルタ演算が行われない。したがって、画像復号化時においてブロックノイズを低減するフィルタ処理をさらに簡素化することができるのに加え、従来に比して、当該フィルタ処理を比較的高速化することができるという効果も得られる。
【0180】
さらに、発明6の画像処理装置によれば、ブロック間の輝度の平均値が異なるという特性を考慮したフィルタ処理を行うことができるので、効果的なフィルタ効果をある程度実現することができるという効果も得られる。
さらに、発明7の画像処理装置によれば、ブロック間の輝度の平均値が異なるという特性を考慮したフィルタ処理を行うことができるので、発明6の画像処理装置に比して、さらに効果的なフィルタ効果を実現することができるという効果も得られる。
【0181】
さらに、発明8の画像処理装置によれば、画素についてフィルタ演算を行うか否かの判定回数を低減することができるので、画像復号化時においてブロックノイズを低減するフィルタ処理をさらに高速化することができるという効果も得られる。
さらに、発明9の画像処理装置によれば、画素列の各画素についてフィルタ処理を行うに必要な画素データを作業用記憶手段にまとめて読み込み一括で処理するので、従来に比して、画像復号化時においてブロックノイズを低減するフィルタ処理を比較的高速化することができるという効果も得られる。
【0182】
さらに、発明0の画像処理装置によれば、6つの画素についてフィルタ処理を行うのに3つのフィルタ演算式を用意しておけばよいので、画像復号化時においてブロックノイズを低減するフィルタ処理をさらに簡素化することができるという効果も得られる。
さらに、発明1の画像処理装置によれば、6つの画素についてフィルタ処理を行うのに3つのフィルタ演算式を用意しておけばよいので、画像復号化時においてブロックノイズを低減するフィルタ処理をさらに簡素化することができるという効果も得られる。
【0183】
さらに、発明2の画像処理装置によれば、ブロック内の水平方向の画素列および垂直方向の画素列の両方に対してフィルタ処理を行うので、効果的なフィルタ効果をある程度実現することができるという効果も得られる。
さらに、発明13ないし15の画像処理装置によれば、フィルタ演算に隣接画素の平均値を用いる場合、各隣接画素と対象画素との差分値が閾値を超えている否かにかかわらず、隣接画素の平均値を算出するときの除数が一定となり、その除数が2の整数倍であればビットシフトにより演算を行うことができる。したがって、従来に比して、画像復号化時においてモスキートノイズを低減するフィルタ処理を比較的簡素化することができるという効果も得られる。
【0184】
さらに、発明14または15の画像処理装置によれば、閾値が定数値であるので、フィルタ処理の過程において閾値を算出する必要がない。したがって、画像復号化時においてモスキートノイズを低減するフィルタ処理をさらに簡素化することができるという効果も得られる。
さらに、発明5の画像処理装置によれば、効果的なフィルタ効果をある程度実現することができるという効果も得られる。
【0185】
さらに、発明6の画像処理装置によれば、フィルタ演算に隣接画素の平均値を用いる場合、隣接画素の平均値を算出するときの除数が2の整数倍であるので、ビットシフトにより演算を行うことができる。また、隣接画素のすべての値を用いないので、処理負荷を低減することもできる。したがって、従来に比して、画像復号化時においてモスキートノイズを低減するフィルタ処理を比較的簡素化することができるという効果も得られる。
【0186】
さらに、発明7の画像処理装置によれば、フィルタ演算に隣接画素の平均値を用いる場合、除算してから加算を行うので、従来に比して、画像復号化時におけるモスキートノイズを低減するフィルタ処理において演算のために占有するメモリ容量を比較的低減することができるという効果も得られる。
【0187】
さらに、発明8の画像処理装置によれば、閾値が定数値であるので、フィルタ処理の過程において閾値を算出する必要がなく、また、各画素の相互の差分値のいずれかが閾値を超えていれば、フィルタ演算が行われない。したがって、従来に比して、画像復号化時においてブロックノイズを低減するフィルタ処理を比較的簡素化することができるのに加え、当該フィルタ処理を比較的高速化することができるという効果が得られる。
【0188】
さらに、発明9の画像処理装置によれば、画素列の各画素についてフィルタ処理を行うに必要な画素データを作業用記憶手段にまとめて読み込み一括で処理するので、従来に比して、画像復号化時においてブロックノイズを低減するフィルタ処理を比較的高速化することができるという効果が得られる。
【0189】
さらに、発明0の画像処理装置によれば、6つの画素についてフィルタ処理を行うのに3つのフィルタ演算式を用意しておけばよいので、従来に比して、画像復号化時においてブロックノイズを低減するフィルタ処理を比較的簡素化することができるという効果が得られる。
さらに、発明1の画像処理装置によれば、6つの画素についてフィルタ処理を行うのに3つのフィルタ演算式を用意しておけばよいので、従来に比して、画像復号化時においてブロックノイズを低減するフィルタ処理を比較的簡素化することができるという効果が得られる。
【0190】
さらに、発明2の画像処理装置によれば、フィルタ演算に隣接画素の平均値を用いる場合、各隣接画素と対象画素との差分値が閾値を超えている否かにかかわらず、隣接画素の平均値を算出するときの除数が一定となり、その除数が2の整数倍であればビットシフトにより演算を行うことができる。したがって、従来に比して、画像復号化時においてモスキートノイズを低減するフィルタ処理を比較的簡素化することができるという効果が得られる。
【0191】
さらに、発明3の画像処理装置によれば、フィルタ演算に隣接画素の平均値を用いる場合、隣接画素の平均値を算出するときの除数が2の整数倍であるので、ビットシフトにより演算を行うことができる。また、隣接画素のすべての値を用いないので、処理負荷を低減することもできる。したがって、従来に比して、画像復号化時においてモスキートノイズを低減するフィルタ処理を比較的簡素化することができるという効果が得られる。
【0192】
さらに、発明4の画像処理装置によれば、フィルタ演算に隣接画素の平均値を用いる場合、除算してから加算を行うので、従来に比して、画像復号化時におけるモスキートノイズを低減するフィルタ処理において演算のために占有するメモリ容量を比較的低減することができるという効果が得られる。
【0193】
一方、発明5の画像処理プログラムによれば、発明1の画像処理装置と同等の効果が得られる。
さらに、発明6の画像処理プログラムによれば、発明8の画像処理装置と同等の効果が得られる。
さらに、発明7の画像処理プログラムによれば、発明9の画像処理装置と同等の効果が得られる。
【0194】
さらに、発明8の画像処理プログラムによれば、発明0の画像処理装置と同等の効果が得られる。
さらに、発明9の画像処理プログラムによれば、発明1の画像処理装置と同等の効果が得られる。
さらに、発明0の画像処理プログラムによれば、発明2の画像処理装置と同等の効果が得られる。
【0195】
さらに、発明1の画像処理プログラムによれば、発明3の画像処理装置と同等の効果が得られる。
さらに、発明2の画像処理プログラムによれば、発明4の画像処理装置と同等の効果が得られる。
一方、発明3の画像処理方法によれば、発明1の画像処理装置と同等の効果が得られる。
【0196】
さらに、発明4の画像処理方法によれば、発明8の画像処理装置と同等の効果が得られる。
さらに、発明5の画像処理方法によれば、発明9の画像処理装置と同等の効果が得られる。
さらに、発明6の画像処理方法によれば、発明0の画像処理装置と同等の効果が得られる。
【0197】
さらに、発明7の画像処理方法によれば、発明1の画像処理装置と同等の効果が得られる。
さらに、発明8の画像処理方法によれば、発明2の画像処理装置と同等の効果が得られる。
さらに、発明9の画像処理方法によれば、発明3の画像処理装置と同等の効果が得られる。
【0198】
さらに、発明0の画像処理方法によれば、発明4の画像処理装置と同等の効果が得られる。
【図面の簡単な説明】
【図1】 本発明を適用するコンピュータシステムの構成を示すブロック図である。
【図2】 デブロックフィルタ処理の原理を説明するための図である。
【図3】 画素列PG1,PG2の各画素の値を示した棒グラフである。
【図4】 デブロックフィルタ処理を示すフローチャートである。
【図5】 ステップS102のフィルタ処理を示すフローチャートである。
【図6】 ステップS104のフィルタ処理を示すフローチャートである。
【図7】 デリンギングフィルタ処理の原理を説明するための図である。
【図8】 デリンギングフィルタ処理を示すフローチャートである。
【図9】 ブロックの右上部分の領域についての画素値読込処理を示すフローチャートである。
【図10】 ブロックの左上部分の領域についての画素値読込処理を示すフローチャートである。
【図11】 ステップS240のフィルタ演算処理を示すフローチャートである。
【図12】 画素値v1〜v8を並べ換えて演算する場合を示す図である。
【図13】 画素列PG1の各画素の値を示した棒グラフである。
【図14】 ブロックの右上部分の領域についての画素値読込処理を示すフローチャートである。
【図15】 ブロックの左上部分の領域についての画素値読込処理を示すフローチャートである。
【図16】 ステップS270のフィルタ演算処理を示すフローチャートである。
【図17】 画素列PG1の各画素の値を示した棒グラフである。
【図18】 デリンギングフィルタ処理の原理を説明するための図である。
【図19】 従来の画像処理システムによるフィルタ処理を示す図である。
【図20】 従来の画像処理システムにおいて参照する画素を示す図である。
【符号の説明】
100…コンピュータ,30…CPU,32…ROM,34…RAM,35…VRAM,36…LCDC,38…デコーダ、40…ポストフィルタ部,42…RGB変換部,44…LCD

Claims (8)

  1. 離散コサイン変換処理及び量子化処理を所定のブロック単位で行う画像圧縮処理により圧縮された圧縮画像データに基づいて前記ブロック単位で画像を展開する際又は展開した後に、展開画像に対してフィルタ処理を行う装置であって、
    前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列について、前記境界線を挟んで片側の画素の値を前記境界線から近い順にv4、v3、v2とし、前記境界線を挟んで逆片側の画素の値を前記境界線から近い順にv5、v6、v7とした場合に、フィルタ後の各画素の値v2'〜v7'を、「v2'=(v2+v5)/2+(v2−v5)/4」、「v3'=(v3+v5)/2+(v3−v5)/8」、「v4'=(v4+v5)/2」、「v5'=(v5+v4)/2+(v5−v4)/8」、「v6'=(v6+v4)/2+(v6−v4)/4」及び「v7'=v7−(v7−v4)/8」のフィルタ演算式により算出するようになっていることを特徴とする画像処理装置。
  2. 請求項において、
    前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列の画素のうち一の画素についてのフィルタ演算を、当該一の画素から、同一画素列の画素であって隣接ブロック内の前記境界線に位置する境界画素までの各画素の相互の差分値がいずれも閾値を超えていないときに行い、
    前記閾値として定数値を用いるようになっていることを特徴とする画像処理装置。
  3. 請求項において、
    前記境界画素と、前記境界画素と隣接する隣接画素との差分値を比較するときの閾値を、前記境界画素と、前記隣接画素以外の画素との差分値を比較するときの閾値よりも大きく設定したことを特徴とする画像処理装置。
  4. 請求項及びのいずれかにおいて、
    前記境界画素と、前記境界画素と隣接する隣接画素との差分値を比較するときの閾値を、画素の値の最大値を「2n−1」(n≧4)として「2n-3」に相当する値又はその近似値に設定し、
    前記境界画素と、前記隣接画素以外の画素との差分値を比較するときの閾値を、「2n-4」に相当する値又はその近似値に設定したことを特徴とする画像処理装置。
  5. 請求項乃至のいずれかにおいて、
    前記フィルタ処理は、画素について前記フィルタ演算を行うか否かの判定を、前記境界画素と隣接する隣接画素から順次前記境界線より遠ざかる方向に行い、画素について前記フィルタ演算を行わないと判定したときは、当該画素及びこれよりも後段の画素については前記フィルタ演算を行わないようになっていることを特徴とする画像処理装置。
  6. 請求項1乃至のいずれかにおいて、
    前記展開画像を格納するための画像記憶手段に利用可能に接続し、
    互いに隣接するブロック間の境界線と交差する画素列の画素のうち前記境界線から最も離れた前記ブロック内の画素から、同一画素列の画素であって隣接ブロック内の前記境界線に位置する境界画素までの全画素データを格納するに必要十分な記憶容量を有する作業用記憶手段を備え、
    前記フィルタ処理は、前記画素列のうち一の画素から前記境界画素までの全画素データを、前記画像記憶手段から前記作業用記憶手段にまとめて読み込み、前記作業用記憶手段の画素データに基づいて前記フィルタ演算を行うようになっていることを特徴とする画像処理装置。
  7. 請求項1乃至のいずれかにおいて、
    前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列について、前記境界線を挟んで片側の画素の値を前記境界線から近い順にv4、v3、v2とし、前記境界線を挟んで逆片側の画素の値を前記境界線から近い順にv5、v6、v7とした場合に、フィルタ後の各画素の値v2'〜v4'を、「v2'=(v2+v5)/2+(v2−v5)/4」、「v3'=(v3+v5)/2+(v3−v5)/8」及び「v4'=(v4+v5)/2」のフィルタ演算式により算出し、
    フィルタ後の各画素の値v5'〜v7'を、v4〜v7をそれぞれv5、v4、v3及びv2として前記各フィルタ演算式により算出するようになっていることを特徴とする画像処理装置。
  8. 請求項1乃至のいずれかにおいて、
    前記フィルタ処理は、互いに隣接するブロック間の境界線と交差する画素列について、前記境界線を挟んで片側の画素の値を前記境界線から近い順にv4、v3、v2とし、前記境界線を挟んで逆片側の画素の値を前記境界線から近い順にv5、v6、v7とした場合に、フィルタ後の各画素の値v5'〜v7'を、「v5'=(v5+v4)/2+(v5−v4)/8」、「v6'=(v6+v4)/2+(v6−v4)/4」及び「v7'=v7−(v7−v4)/8」のフィルタ演算式により算出し、
    フィルタ後の各画素の値v2'〜v4'を、v2〜v5をそれぞれv7、v6、v5及びv4として前記各フィルタ演算式により算出するようになっていることを特徴とする画像処理装置。
JP2002200577A 2001-07-24 2002-07-09 画像処理装置及び画像処理プログラム、並びに画像処理方法 Expired - Fee Related JP4145586B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2002200577A JP4145586B2 (ja) 2001-07-24 2002-07-09 画像処理装置及び画像処理プログラム、並びに画像処理方法
US10/193,306 US7215823B2 (en) 2001-07-24 2002-07-12 Deblocking and deringing apparatus, program and method
AT02015690T ATE343301T1 (de) 2001-07-24 2002-07-18 Bildverarbeitungsprozessor, bildverarbeitungsprogram und bildverarbeitungsverfahren
DE2002615427 DE60215427T2 (de) 2001-07-24 2002-07-18 Bildverarbeitungsprozessor, Bildverarbeitungsprogramm und Bildverarbeitungsverfahren
EP20020015690 EP1283640B1 (en) 2001-07-24 2002-07-18 Image processor and image processing program, and image processing method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001-223612 2001-07-24
JP2001223612 2001-07-24
JP2002200577A JP4145586B2 (ja) 2001-07-24 2002-07-09 画像処理装置及び画像処理プログラム、並びに画像処理方法

Publications (3)

Publication Number Publication Date
JP2003116134A JP2003116134A (ja) 2003-04-18
JP2003116134A5 JP2003116134A5 (ja) 2005-10-20
JP4145586B2 true JP4145586B2 (ja) 2008-09-03

Family

ID=26619194

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002200577A Expired - Fee Related JP4145586B2 (ja) 2001-07-24 2002-07-09 画像処理装置及び画像処理プログラム、並びに画像処理方法

Country Status (5)

Country Link
US (1) US7215823B2 (ja)
EP (1) EP1283640B1 (ja)
JP (1) JP4145586B2 (ja)
AT (1) ATE343301T1 (ja)
DE (1) DE60215427T2 (ja)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100308016B1 (ko) * 1998-08-31 2001-10-19 구자홍 압축 부호화된 영상에 나타나는 블럭현상 및 링현상 제거방법및 영상 복호화기
US7426315B2 (en) * 2001-09-05 2008-09-16 Zoran Microelectronics Ltd. Method for reducing blocking artifacts
JP3947969B2 (ja) * 2002-05-15 2007-07-25 ソニー株式会社 画像処理装置、および画像処理方法、記録媒体、並びにプログラム
US7203378B2 (en) * 2002-09-27 2007-04-10 Chui-Kuei Chiu Accelerative noise filtering method for image data
US7792194B2 (en) * 2003-04-10 2010-09-07 Lefan Zhong MPEG artifacts post-processed filtering architecture
US9330060B1 (en) 2003-04-15 2016-05-03 Nvidia Corporation Method and device for encoding and decoding video image data
US7362810B2 (en) * 2003-05-13 2008-04-22 Sigmatel, Inc. Post-filter for deblocking and deringing of video data
US8660182B2 (en) 2003-06-09 2014-02-25 Nvidia Corporation MPEG motion estimation based on dual start points
CN100361158C (zh) * 2003-07-16 2008-01-09 矽统科技股份有限公司 数字图像数据处理方法
US20050013494A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation In-loop deblocking filter
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7277592B1 (en) * 2003-10-21 2007-10-02 Redrock Semiconductory Ltd. Spacial deblocking method using limited edge differences only to linearly correct blocking artifact
US8472792B2 (en) 2003-12-08 2013-06-25 Divx, Llc Multimedia distribution system
US7519274B2 (en) 2003-12-08 2009-04-14 Divx, Inc. File format for multiple track digital data
US7636490B2 (en) * 2004-08-09 2009-12-22 Broadcom Corporation Deblocking filter process with local buffers
US7697782B2 (en) 2004-09-16 2010-04-13 Sharp Laboratories Of America, Inc. System for reducing ringing artifacts
US8537903B2 (en) * 2005-09-23 2013-09-17 Entropic Communications, Inc. De-blocking and de-ringing systems and methods
WO2007049150A2 (en) * 2005-09-28 2007-05-03 Arc International (Uk) Limited Architecture for microprocessor-based systems including simd processing unit and associated systems and methods
US8532424B2 (en) * 2005-11-22 2013-09-10 Freescale Semiconductor, Inc. Method and system for filtering image data
US8731071B1 (en) 2005-12-15 2014-05-20 Nvidia Corporation System for performing finite input response (FIR) filtering in motion estimation
US7515710B2 (en) 2006-03-14 2009-04-07 Divx, Inc. Federated digital rights management scheme including trusted systems
US8724702B1 (en) 2006-03-29 2014-05-13 Nvidia Corporation Methods and systems for motion estimation used in video coding
US20080018624A1 (en) * 2006-07-07 2008-01-24 Honeywell International, Inc. Display for displaying compressed video based on sub-division area
US7920086B2 (en) * 2006-07-07 2011-04-05 Honeywell International Inc. Display for displaying compressed video
US8660380B2 (en) 2006-08-25 2014-02-25 Nvidia Corporation Method and system for performing two-dimensional transform on data value array with reduced power consumption
EP2070042A2 (en) * 2006-09-29 2009-06-17 THOMSON Licensing Automatic parameter estimation for adaptive pixel-based filtering
US20080084932A1 (en) * 2006-10-06 2008-04-10 Microsoft Corporation Controlling loop filtering for interlaced video frames
ES2935410T3 (es) 2007-01-05 2023-03-06 Divx Llc Sistema de distribución de vídeo que incluye reproducción progresiva
US8756482B2 (en) 2007-05-25 2014-06-17 Nvidia Corporation Efficient encoding/decoding of a sequence of data frames
US9118927B2 (en) 2007-06-13 2015-08-25 Nvidia Corporation Sub-pixel interpolation and its application in motion compensated encoding of a video signal
US8873625B2 (en) 2007-07-18 2014-10-28 Nvidia Corporation Enhanced compression in representing non-frame-edge blocks of image frames
KR20100106327A (ko) 2007-11-16 2010-10-01 디브이엑스, 인크. 멀티미디어 파일을 위한 계층적 및 감소된 인덱스 구조
EP2218053A4 (en) * 2007-12-04 2012-10-10 Hewlett Packard Development Co METHOD AND SYSTEM FOR IMAGE RESTORATION IN THE SPATIAL DOMAIN
WO2009123033A1 (ja) * 2008-03-31 2009-10-08 日本電気株式会社 デブロッキングフィルタ処理装置、デブロッキングフィルタ処理方法
EP2327219B1 (en) * 2008-09-09 2016-11-09 Marvell World Trade Ltd. Reducing digital image noise
US8666181B2 (en) 2008-12-10 2014-03-04 Nvidia Corporation Adaptive multiple engine image motion detection system and method
US8306355B2 (en) * 2009-07-13 2012-11-06 Sharp Laboratories Of America, Inc. Methods and systems for reducing compression artifacts
WO2011068668A1 (en) 2009-12-04 2011-06-09 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
US9077990B2 (en) 2010-07-28 2015-07-07 Marvell World Trade Ltd. Block noise detection in digital video
US8787443B2 (en) 2010-10-05 2014-07-22 Microsoft Corporation Content adaptive deblocking during video encoding and decoding
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US9042458B2 (en) 2011-04-01 2015-05-26 Microsoft Technology Licensing, Llc Multi-threaded implementations of deblock filtering
US8812662B2 (en) 2011-06-29 2014-08-19 Sonic Ip, Inc. Systems and methods for estimating available bandwidth and performing initial stream selection when streaming content
US9955195B2 (en) 2011-08-30 2018-04-24 Divx, Llc Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8787570B2 (en) 2011-08-31 2014-07-22 Sonic Ip, Inc. Systems and methods for automatically genenrating top level index files
US8799647B2 (en) 2011-08-31 2014-08-05 Sonic Ip, Inc. Systems and methods for application identification
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US9104941B1 (en) * 2011-12-02 2015-08-11 Marvell International Ltd. Method and apparatus for reducing noise in a scanned image while minimizing loss of detail in the scanned image
US20130179199A1 (en) 2012-01-06 2013-07-11 Rovi Corp. Systems and methods for granting access to digital content using electronic tickets and ticket tokens
US9936267B2 (en) 2012-08-31 2018-04-03 Divx Cf Holdings Llc System and method for decreasing an initial buffering period of an adaptive streaming system
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US20140192266A1 (en) * 2013-01-04 2014-07-10 Qualcomm Incorporated Method and apparatus of reducing compression noise in digital video streams
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9100687B2 (en) 2013-05-31 2015-08-04 Sonic Ip, Inc. Playback synchronization across playback devices
US9380099B2 (en) 2013-05-31 2016-06-28 Sonic Ip, Inc. Synchronizing multiple over the top streaming clients
US9386067B2 (en) 2013-12-30 2016-07-05 Sonic Ip, Inc. Systems and methods for playing adaptive bitrate streaming content by multicast
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
MX2016015022A (es) 2014-08-07 2018-03-12 Sonic Ip Inc Sistemas y metodos para proteger corrientes de bits elementales que incorporan tejas codificadas independientemente.
CN107111477B (zh) 2015-01-06 2021-05-14 帝威视有限公司 用于编码内容和在设备之间共享内容的系统和方法
EP3627337A1 (en) 2015-02-27 2020-03-25 DivX, LLC Systems and methods for frame duplication and frame extension in live video encoding and streaming
US10091533B2 (en) 2016-02-18 2018-10-02 Cisco Technology, Inc. Generalized filter for removing video compression artifacts
US10075292B2 (en) 2016-03-30 2018-09-11 Divx, Llc Systems and methods for quick start-up of playback
US10129574B2 (en) 2016-05-24 2018-11-13 Divx, Llc Systems and methods for providing variable speeds in a trick-play mode
US10231001B2 (en) 2016-05-24 2019-03-12 Divx, Llc Systems and methods for providing audio content during trick-play playback
US10148989B2 (en) 2016-06-15 2018-12-04 Divx, Llc Systems and methods for encoding video content
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US10887622B2 (en) * 2017-07-05 2021-01-05 Qualcomm Incorporated Division-free bilateral filter
JPWO2019225459A1 (ja) 2018-05-23 2021-04-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 符号化装置、復号装置、符号化方法及び復号方法
ES2974683T3 (es) 2019-03-21 2024-07-01 Divx Llc Sistemas y métodos para enjambres multimedia

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0714211B2 (ja) 1989-07-14 1995-02-15 国際電信電話株式会社 動画像符号化のブロック歪除去方法および装置
US5229864A (en) * 1990-04-16 1993-07-20 Fuji Photo Film Co., Ltd. Device for regenerating a picture signal by decoding
US5852475A (en) * 1995-06-06 1998-12-22 Compression Labs, Inc. Transform artifact reduction process
US6188799B1 (en) * 1997-02-07 2001-02-13 Matsushita Electric Industrial Co., Ltd. Method and apparatus for removing noise in still and moving pictures
JP3095140B2 (ja) * 1997-03-10 2000-10-03 三星電子株式会社 ブロック化効果の低減のための一次元信号適応フィルター及びフィルタリング方法
KR100244290B1 (ko) 1997-09-09 2000-02-01 구자홍 저속 전송에서의 동영상을 위한 디블록킹 필터링 방법
US6519760B2 (en) * 2001-02-28 2003-02-11 Asml Masktools, B.V. Method and apparatus for minimizing optical proximity effects
US6621727B2 (en) * 2002-01-04 2003-09-16 Kuo-Tso Chen Three-transistor SRAM device

Also Published As

Publication number Publication date
DE60215427D1 (de) 2006-11-30
US7215823B2 (en) 2007-05-08
EP1283640A2 (en) 2003-02-12
US20030021489A1 (en) 2003-01-30
EP1283640A3 (en) 2003-09-03
DE60215427T2 (de) 2007-03-15
EP1283640B1 (en) 2006-10-18
JP2003116134A (ja) 2003-04-18
ATE343301T1 (de) 2006-11-15

Similar Documents

Publication Publication Date Title
JP4145586B2 (ja) 画像処理装置及び画像処理プログラム、並びに画像処理方法
JP4114494B2 (ja) 画像処理装置及び画像処理プログラム、並びに画像処理方法
EP2800369B1 (en) Moving image compressing apparatus, image processing apparatus, moving image compressing method, image processing method, and data structure of moving image compressed file
US8244049B2 (en) Method, medium and apparatus effectively compressing and restoring edge position images
US20080001975A1 (en) Image processing apparatus and image processing method
US20060098883A1 (en) Image compression/decompression system employing pixel thinning-out and interpolation scheme
JP5157796B2 (ja) 画像データの可逆圧縮符号化装置および復号化装置
US20110002553A1 (en) Compressive coding device and decoding device
JP2000299864A (ja) 動画像処理方法
JP2009077183A (ja) データ圧縮装置、データ圧縮・伸張システム、およびデータ圧縮方法
US8457445B2 (en) Image-scaling-down method and image processing apparatus
JP4109151B2 (ja) 画像処理装置
JP2806287B2 (ja) 画質評価装置
JP3715273B2 (ja) 画像データの平滑化処理装置、平滑化処理方法及び平滑化処理プログラム
JP3582540B2 (ja) 解像度変換装置および解像度変換方法
JP4411230B2 (ja) 色変換装置及びその制御方法、並びにプログラム
JP2009065536A (ja) 復号化装置及び復号化方法
JP2002305746A (ja) 画像復号処理装置および画像復号処理方法
JP4058671B2 (ja) 記憶制御装置および記憶制御方法、並びにプログラムおよび記録媒体
JPH11136674A (ja) 画像符号化方法及び記憶媒体
JPH08289290A (ja) 画像再生装置
JPH11103463A (ja) 画像符号化方法及び記憶媒体
JP2009278189A (ja) 解凍ビデオデータ用デリンギングフィルタ
JPH09275560A (ja) ブロックノイズ除去システムおよびブロックノイズ除去方法
JP2006165825A (ja) 画像処理装置、画像処理方法、画像処理プログラム、及び記憶媒体

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050617

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050617

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071018

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080618

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110627

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110627

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120627

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130627

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees