JP2011519228A - ビデオユニット内の境界アーティファクト修正 - Google Patents

ビデオユニット内の境界アーティファクト修正 Download PDF

Info

Publication number
JP2011519228A
JP2011519228A JP2011506440A JP2011506440A JP2011519228A JP 2011519228 A JP2011519228 A JP 2011519228A JP 2011506440 A JP2011506440 A JP 2011506440A JP 2011506440 A JP2011506440 A JP 2011506440A JP 2011519228 A JP2011519228 A JP 2011519228A
Authority
JP
Japan
Prior art keywords
boundary
replacement
video unit
frame
block
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.)
Granted
Application number
JP2011506440A
Other languages
English (en)
Other versions
JP5123427B2 (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2011519228A publication Critical patent/JP2011519228A/ja
Application granted granted Critical
Publication of JP5123427B2 publication Critical patent/JP5123427B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/55Motion estimation with spatial constraints, e.g. at image or region borders
    • 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/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0127Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level by changing the field or frame frequency of the incoming video signal, e.g. frame rate converter

Landscapes

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

Abstract

本開示では、ビデオユニット置換、例えば動き補償ビデオユニット内挿または外挿を使用して生成される置換ビデオユニットの境界に沿って起こるアーティファクトを修正する技術について説明する。本開示で説明する技術によれば、フレーム置換ユニットは参照ビデオユニット内に存在し置換ビデオユニット内に存在するはずの境界と対応する、置換ビデオユニット内の第1の位置を識別し、第1の境界アーティファクト修正技術を使用して第1の位置内の境界アーティファクトを修正する。フレーム置換ユニットは、また置換ビデオユニット内には存在し参照ビデオユニット内には存在しない境界と対応する、置換ビデオユニット内の第2の位置を識別し、第2の境界アーティファクト修正技術を使用して第2の位置内の境界アーティファクトを修正する。

Description

本出願は、その内容全体が参照により本明細書に組み込まれる、2008年4月23日に出願された米国仮出願第61/047,381号の利益を主張する。
本開示は、デジタルビデオ符号化に関し、より詳細には、デジタルビデオデータ内のアーティファクトを改善するための技術に関する。
デジタルビデオシーケンスを符号化するために、幾つかのビデオ符号化技術が開発されてきた。例えば、Moving Picture Experts Group(MPEG)は、MPEG−1、MPEG−2及びMPEG−4を含む幾つかの技術を開発した。他の例には、International Telecommunication Union(ITU)−T H.263規格、ならびにITU−T H.264規格およびそれと同等のもの、ISO/IEC MPEG−4,Part10、すなわちAdvanced Video Coding(AVC)がある。これらのビデオ符号化規格は、圧縮技術でデータを符号化することによって、ビデオシーケンスの効率的な送信をサポートする。圧縮によって、送信が必要なデータの総量が低減される。
ビデオ圧縮では、ビデオシーケンスに固有の冗長性を低減するために空間予測および/または時間予測を行う。イントラ符号化は、空間予測を使用して同じビデオフレーム内のビデオブロック間の空間的冗長性を低減する。インター符号化は、時間予測を使用して連続するビデオフレーム中のビデオブロック間の時間的冗長性を低減する。インター符号化の場合、ビデオエンコーダは動き推定を行って1つまたは複数の参照フレーム中の対応する予測ビデオブロックに対するビデオブロックの変位を示す動きベクトルを生成する。ビデオエンコーダは、動き補償を行って参照フレームから予測ビデオブロックを生成し、符号化されている元のビデオブロックから予測ビデオブロックを減算することによって、残差ビデオブロックを形成する。
低帯域幅要件(low bandwidth requirements)を満たすために、幾つかのビデオアプリケーションでは、低減されたフレームレートでビデオを符号化し、および/または幾つかのフレームの符号化をスキップする。残念ながら、低フレームレートビデオは動きジャーキネスの形で時間的アーティファクトを生成することがある。デコーダ側でフレーム内挿(interpolation)または外挿(extrapolation)を採用して、エンコーダによってスキップされたフレーム、またはエンコーダによって生成された基本フレームレートを超えるフレームのコンテンツを近似することができる。フレーム内挿または外挿は、一般にフレーム置換(frame substitution)と呼ばれることがある。フレーム置換を使用して実フレームレートを実際にアップコンバートして、より滑らかな動きの知覚を与えることができる。フレーム挿入または置換を使用して、しばしばフレームレートアップコンバージョン(FRUC)と呼ばれるプロセスをサポートすることができる。FRUCを使用して様々なビデオフレームフォーマットを変換することができ、例えば、あるフレームレートから別のフレームレートに変換することができる。FRUCは、例えば内挿または外挿を使用してフレームを置換することにより時間品質を向上させることができるが、幾つかのフレームの置換は視覚的品質を損なう不所望の空間アーティファクトをもたらすことがある。
本開示では、置換フレーム中の境界に沿って起こる視覚的アーティファクトを修正するための技術について説明する。置換フレーム中の境界は、ビデオフレームの上部(top)、下部(bottom)および/または1つまたは複数の側部(side)に沿って起こることがある。代替または追加的に、置換フレーム中の境界はピクチャモードでピクチャをサポートするビデオフレームの場合などでは、そのフレーム内に位置することがある。本開示の技術によれば、フレーム置換ユニットは境界アーティファクトに対応する、置換フレーム内の位置(location)を識別し、境界アーティファクトを修正することができる。一態様では、フレーム置換ユニットは別に境界アーティファクトのタイプに基づいて置換ビデオフレーム内の境界アーティファクトを処理することができる。
フレーム置換ユニットは、境界アーティファクトの少なくとも2つの異なるタイプを識別することができる。一例では、フレーム置換ユニットは置換フレームを生成するために使用される参照フレーム内に存在し且つ置換フレーム内に存在するはずの境界と対応する、置換フレーム内の第1の位置を識別することができる。これら第1の位置は、参照ビデオフレーム内に実際に存在する境界に対応するので、「実境界位置」と呼ばれることがある。実境界位置は、動き補償予測により境界が置換フレームまでは延びないときなどの境界アーティファクトと対応し得る。
フレーム置換ユニットは、置換ビデオフレーム内には存在するが置換フレームを生成するために使用される参照ビデオフレーム内には存在しない境界と対応する、置換フレーム内の第2の位置をも識別することができる。これらの第2の位置は、参照ビデオフレーム内に実際は存在しないが、例えば動き補償内挿により置換フレームまで広がった境界に対応するので、「偽境界位置」と呼ばれることがある。偽境界位置は、動き補償予測により境界が参照フレームよりも置換フレーム内にさらに延びたときなどの境界アーティファクトと対応し得る。
フレーム置換ユニットは、第1の境界アーティファクト修正技術を使用して実境界位置における境界アーティファクトを修正し、第2の境界アーティファクト修正技術を使用して偽境界位置における境界アーティファクトを修正することができる。第1および第2の境界アーティファクト修正技術は、(例えば、置換フレームの画素値を内挿または外挿した後に)画素領域(pixel domain)内で行われることがあり、または(例えば、置換フレームの画素値を内挿または外挿する前に)圧縮領域(compressed domain)内で行われることがある。
一態様では、方法が参照ビデオユニット内に存在する境界と対応する、置換ビデオユニット内の第1の位置を識別することと、置換ビデオユニット内には存在し参照ビデオユニット内には存在しない境界と対応する、置換ビデオユニット内の第2の位置を識別することとを含む。本方法はまた、第1の境界アーティファクト修正技術を使用して置換ビデオユニットの第1の位置内の境界アーティファクトを修正することと、第2の境界アーティファクト修正技術を使用して置換ビデオユニットの第2の位置内の境界アーティファクトを修正することとを含む。
別の態様では、装置が参照ビデオユニット内に存在する境界と対応する、置換ビデオユニット内の第1の位置を識別し、置換ビデオユニット内には存在し参照ビデオユニット内には存在しない境界と対応する、置換ビデオユニット内の第2の位置を識別する、境界アーティファクト識別ユニットと、第1の境界アーティファクト修正技術を使用して置換ビデオユニットの第1の位置内の境界アーティファクトを修正し、第2の境界アーティファクト修正技術を使用して置換ビデオユニットの第2の位置内の境界アーティファクトを修正する、境界アーティファクト修正ユニットと、を備える。
別の態様では、デバイスが参照ビデオユニット内に存在する境界と対応する、置換ビデオユニット内の第1の位置を識別し、置換ビデオユニット内には存在し参照ビデオユニット内には存在しない境界と対応する、置換ビデオユニット内の第2の位置を識別する手段と、第1の境界アーティファクト修正技術を使用して置換ビデオユニットの第1の位置内の境界アーティファクトを修正し、第2の境界アーティファクト修正技術を使用して置換ビデオユニットの第2の位置内の境界アーティファクトを修正する手段と、を備える。
本開示で説明する技術は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装され得る。ソフトウェアで実装した場合、ソフトウェアは、1つまたは複数のプロセッサによって実行され得る。ソフトウェアは、最初にコンピュータ可読媒体に記憶され、実行のためにプロセッサによってロードされ得る。従って、本開示は1つまたは複数のプロセッサに、本開示で説明する技術を実行させる命令を備えるコンピュータ可読媒体を企図する。
例えば、幾つかの態様では、本開示は参照ビデオユニット内に存在する境界と対応する、置換ビデオユニット内の第1の位置を識別することと、置換ビデオユニット内には存在し参照ビデオユニット内には存在しない境界と対応する、置換ビデオユニット内の第2の位置を識別することと、第1の境界アーティファクト修正技術を使用して置換ビデオユニットの第1の位置内の境界アーティファクトを修正することと、第2の境界アーティファクト修正技術を使用して置換ビデオユニットの第2の位置内の境界アーティファクトを修正することと、を1つまたは複数のプロセッサに行わせる命令を備えるコンピュータ可読媒体を提供する。
添付の図面および以下の説明において、開示する技術の1つまたは複数の態様の詳細を示す。他の特徴、目的および利点は、説明および図面、ならびに特許請求の範囲から明らかになるであろう。
ビデオユニット置換中に生成された境界アーティファクトを修正する例示的なビデオ符号化および復号システムを示すブロック図。 ビデオデコーダにおけるビデオユニットの内挿のための技術の例を示す図。 ビデオデコーダにおけるビデオユニットの外挿のための技術の例を示す図。 境界を含む参照ビデオフレームを示す図。 境界アーティファクトをもつ境界を含む置換ビデオフレームを示す図。 置換ビデオユニット内の境界アーティファクトを修正するように構成されたビデオデコーダの例を示すブロック図。 置換フレーム中の境界アーティファクトを修正するフレーム置換ユニットの例示的な動作を示す流れ図。 識別された境界に沿って画素の1つの行および/または列の境界アーティファクトを修正するフレーム置換ユニットの例示的な動作を示す流れ図。 識別された境界に沿って画素の1つの行および/または列の境界アーティファクトを修正するフレーム置換ユニットの例示的な動作を示す流れ図。 画素領域において偽境界置換を実行するフレーム置換ユニットの例示的な動作を示す流れ図。 画素領域において実境界置換を実行するフレーム置換ユニットの例示的な動作を示す流れ図。 圧縮領域において実境界置換を実行するフレーム置換ユニットの例示的な動作を示す流れ図。 圧縮領域において偽境界置換を実行するフレーム置換ユニットの例示的な動作を示す流れ図。 圧縮領域における修正の様々な段階後の置換フレームを示す図。 圧縮領域における修正の様々な段階後の置換フレームを示す図。 圧縮領域における修正の様々な段階後の置換フレームを示す図。
図1は、本開示で説明する技術による、ビデオユニット置換(video unit substitution)中に生成された境界アーティファクトを修正する例示的なビデオ符号化および復号システム10を示すブロック図である。ビデオユニット置換は、ビデオユニット内挿または外挿を含むことができ、エンコーダによってスキップされたビデオユニット、エンコーダによって生成された基本ビデオユニット符号化レートを超えるビデオユニット、あるいは通信チャネルを介した送信中に欠落または破損したビデオユニットのコンテンツの近似を一般に指す。ビデオユニット置換を使用して、しばしばフレームレートアップコンバージョン(FRUC)と呼ばれるプロセスをサポートすることができる。本開示の技術は、ビデオフレーム、スライス、ブロックまたはサブブロックなど、様々なタイプのビデオユニットに適用可能であるが、本開示では例示のために概して本技術のビデオフレームへの適用について説明する。
図1に示すように、システム10はビデオエンコーダ12とビデオデコーダ14とを含むことができ、各々は一般的にビデオコーダと呼ばれることがあり、幾つかの例では、複合エンコーダ/デコーダ(コーデック)において形成されることがある。図1の例では、ビデオエンコーダ12は入力ビデオフレーム16を受信し、入力ビデオフレーム16を符号化して符号化ビデオフレーム18を生成する。ビデオエンコーダ12は、通信チャネル19を介して符号化ビデオフレーム18をビデオデコーダ14に送信することができる。
特に、ビデオエンコーダ12は入力ビデオフレーム16のシーケンスからなるビデオストリームを得ることができる。当該ビデオストリームは、リアルタイムまたはほぼリアルタイムのビデオ、あらかじめ記録されたビデオ、コンピュータ生成ビデオ、あるいはそれらの組合せとすることができる。例えば、ビデオエンコーダ12はビデオカメラ、以前キャプチャされたビデオを含んでいるビデオアーカイブ(例えば、メモリ)、ビデオコンテンツプロバイダからのビデオフィード、および/またはコンピュータ生成ビデオを生成するビデオグラフィックスプロセッサから、ビデオストリームの入力ビデオフレーム16を得ることができる。
ビデオエンコーダ12は、ビデオデータをエントロピー符号化する前に、イントラまたはインター予測を使用してビデオストリームのビデオデータを圧縮することができる。イントラまたはインター予測を使用してビデオデータを圧縮することにより、ビデオエンコーダ12とビデオデコーダ14との間で送信しなければならないデータ量を低減することができる。イントラ予測は、所定のビデオフレーム内の1つまたは複数の隣接ブロックを使用して予測ブロックを生成することにより同じビデオフレーム内のビデオブロック間の空間的冗長性を低減または除去することによって、ビデオデータを圧縮する。インター符号化は、ビデオシーケンスの連続するビデオフレームのビデオブロック間の時間的冗長性を低減または除去して、ビデオデータを圧縮する。インター符号化の場合、ビデオエンコーダ12は動き推定を行って2つ以上の隣接フレーム間でビデオブロックを一致させる動作を追跡することができる。動き推定によって、1つまたは複数の参照フレーム中の対応する予測ビデオブロックに対するビデオブロックの変位を示す動きベクトルが生成される。動き補償では、動きベクトルを使用して参照フレームから予測ビデオブロックの位置を特定し、当該ブロックを生成する。
予測ビデオブロックのイントラまたはインター予測の後、ビデオエンコーダ12は符号化される元のビデオブロックから予測ビデオブロックを減算することによって、残差情報のブロックを生成する。従って、残差情報により予測ビデオブロックと符号化されているビデオブロックとの間の差が定量化されるので、予測ビデオブロックと残差情報とを識別したときにビデオデコーダ14において符号化ビデオブロックを再構成できるようになる。ビデオデコーダ14は、ビデオエンコーダ12に関して上述したのと同様に、予測ブロックを生成し得る。例えば、ビデオデコーダ14はインター予測を使用すべきなのかまたはイントラ予測を使用すべきなのか、イントラ予測について使用するイントラ予測モード、インター予測において使用するための動きベクトル、などを指定するヘッダ情報を受信し得る。
ビデオエンコーダ12は、ビデオエンコーダ12とビデオデコーダ14との間で送信しなければならないデータ量をさらに低減するためにソースフレーム符号化レート未満の基本フレーム符号化レートで動作することができる。言い換えれば、基本フレーム符号化レートは所望のフレーム符号化レート未満とされ得る。代替または追加として、場合によっては、ビデオエンコーダ12は所定のフレーム符号化レートで動作するが、ビデオエンコーダ12に幾つかのフレームの符号化をスキップさせるスキップユニット20を随意に含むか、または選択的にアクティブにすることができる。例えば、ビデオエンコーダ12に幾つかのフレームの符号化を意図的にスキップさせるようにビデオユニットスキップユニット20を構成し、それによって、例えばソースフレーム符号化レートに対するビデオエンコーダ12の実効フレーム符号化レートを低減することができる。エンコーダ12は、フレームスキッピングまたは低減フレームレート符号化によりチャネル19の低減伝送レート要件に準拠し得る。
フレームスキッピングの場合、スキッピングが交互のフレームで起こるかまたはN番目のフレーム毎に起こるように、フレームスキップユニット20によって固定レートでフレームをスキップすることができる。代替的に、例えば知的フレームスキッピング基準に基づいて変動レートでフレームをスキップすることができる。また、ビデオエンコーダ12は固定ベースで所定のフレーム符号化レートでフレームを符号化するか、またはフレーム符号化レートがチャネル状態または他の要件などの考慮事項に従って変化するように適応ベースでフレームを符号化することができる。いずれの場合も、フレーム置換を使用してフレーム符号化レートをデコーダ14によって効果的にアップコンバートして、例えば、30fpsから60fpsまたは120fpsに高められた所望のフレーム符号化レートを生成することができる。
t-2,Ft-1,Ft,Ft+1およびFt+2と標示された入力ビデオフレーム16は、ビデオシーケンスのフレームの一部分を表す。フレームFtは、随意のフレームスキップユニット20によるフレームスキッピング、またはビデオエンコーダ12によって生成される基本フレームレートのために、時刻tにおいて符号化されないフレームを表す。フレームFt-2およびFt-1は、時間的にフレームFtより前にある過去のフレームを表し、フレームFt+1およびFt+2は、時間的にフレームFtの後にある未来のフレームである。ビデオシーケンスは、フレームFtの前と後の両方に多数のフレームを含み得る。しかしながら、図1では説明しやすいように、Ftの前後に2つのフレームのみを示している。
ビデオエンコーダ12は、フレームFt-2,Ft-1,Ft+1およびFt+2を符号化して、符号化フレーム18を生成する。図1に示す例では、時刻tに符号化されていないフレーム、例えばフレームFtは、符号化フレーム18中で影付きフレームとして示しており、ビデオエンコーダ12によって実際に符号化されるフレーム、例えばフレームFt-2,Ft-1,Ft+1およびFt+2は、影付きでないフレームとして示している。言い換えれば、符号化フレーム18の中に示しているが、フレームFtは実際には符号化フレームではない。
ビデオエンコーダ12は、伝送チャネル19を介してビデオデコーダ14に符号化フレーム18を送信する。この場合も、フレームFtは随意のスキップユニット20によってスキップされるために、またはビデオエンコーダ12によって利用される基本フレームレートのために、ビデオエンコーダ12によって符号化されないので、ビデオエンコーダ12によって送信される符号化フレーム18は、Ft-2,Ft-1,Ft+1,Ft+2を含むが、フレームFtを含まない。伝送チャネル19は、ビットストリーム内でビデオフレームを搬送することが可能な有線無線有線または無線媒体、あるいは両方の組合せとすることができる。チャネル19は、双方向または単方向ビデオ送信をサポートすることができる。双方向ビデオ送信では、例えば、ビデオエンコーダ12は符号化ビデオをビデオデコーダ14に送信し、ビデオデコーダ14から符号化ビデオを受信する。単方向ビデオ送信では、ビデオエンコーダ12は符号化ビデオデータをビデオデコーダ14に送信することができるにすぎず、ビデオエンコーダ14から符号化ビデオデータを受信することはできない。
ビデオデコーダ14は、伝送チャネル19を介してフレーム24を受信する。受信フレーム24は、ビデオエンコーダ12によって送信される符号化フレーム18と実質的に同じであるが、伝送チャネル19の特性に起因するフレーム、スライスまたはブロックの欠落(loss)を受ける。例えば、受信フレーム24はチャネル損失(channel loss)が生じないとき、ビデオエンコーダ12によって送信される符号化フレーム18の同じセットとすることができる。受信フレーム24は、幾つかの例では、例えば符号化ビットストリームが伝送チャネル19の特性による欠落を受けるので、ビデオエンコーダ12によって送信される符号化フレーム18のセットとはわずかに異なることがある。言い換えれば、ビデオエンコーダ12によって実際に符号化され、送信されるフレーム(またはフレームの部分)の1つまたは複数(例えば、フレームFt-2,Ft-1,Ft+1およびFt+2)は、伝送チャネル19を介した送信中に欠落することがある。例示のために、受信フレーム24が符号化フレーム18と同じ、すなわち送信中に損失したフレームがないと仮定する。ただし、本開示の技術は意図的なフレームスキッピングによる、または基本フレームレートによる符号化されていないフレームに加えて、またはその代わりに送信中に欠落したフレームについてフレーム置換を実行する際に有用であることがあることを理解されたい。
ビデオデコーダ14は、受信フレーム24(Ft-2,Ft-1,Ft+1,Ft+2)の各々を復号するために、例えば、MPEG−1、MPEG−2、MPEG−4、H.263、H.264、またはMPEG−4、Part10規格のうちの1つに従って標準的な復号技術を適用することができる。上述のように、ビデオデコーダ14はエントロピー復号を行ってそれらのフレームを圧縮フォーマットまたは領域に、例えばイントラまたはインター予測を使用してさらに圧縮されたフレームに復号することができる。ビデオデコーダ14は、イントラまたはインター予測を行って、それらのフレームを画素領域に例えば各画素位置に関連する画素値を備えるフレームに復元することができる。
デコーダ14はFRUCユニット22をさらに含み、FRUCユニット22は動き補償フレーム置換(例えば、動き補償フレーム内挿または外挿)を使用して図1のフレームFt’などの少なくとも1つの追加のフレームを生成することができる。本開示では動き補償フレーム置換の文脈で説明するが、本技術は動き補償有りまたは無しの他のタイプのフレーム置換、例えばフレーム平均化とともに利用できる。従って、本開示の技術は動き補償フレーム置換中の境界アーティファクトの修正に限定されるべきではない。本技術を動き補償フレーム置換の文脈で説明するのは、例示のためにすぎない。図1では、復号ビデオフレームおよび置換ビデオフレームを出力ビデオフレーム26として表している。ビデオデコーダ14は、ディスプレイデバイス(図1に図示せず)を駆動するために、ビデオフレーム26を出力することができる。
フレームFt’は、ビデオエンコーダ12によって符号化されなかったか、またはチャネル19を介した送信中に欠落したフレームFtの近似である。このようにして、ビデオデコーダ14は実際のフレームレート(またはフレーム符号化レート)を高められたフレームレートに変換することができる。そのようなプロセスは、フレームレートアップコンバーション(FRUC)と呼ばれることがある。実際に、デコーダ14はビデオエンコーダ12によって生成された実際のフレームレートをアップコンバートされたフレームレートに高めるために、追加のビデオユニットを生成することができる。一例として、フレームスキッピングを用いてまたは用いずにビデオエンコーダ12によって生成された実際のフレームレートが30fpsである場合、デコーダ14は例えば内挿または外挿によって追加のフレームを置換し、実効フレームレートを30fpsから60fpsまたは120fpsに高めるように構成できる。実際に、追加のフレームはスキップされたフレームと置換されるか、またはビデオエンコーダ12の基本フレーム符号化レートがより大きければ含めることができたであろうフレームと置換される。上述のように、ビデオエンコーダ12によって生成されたフレームレートは、(チャネル19の低減帯域幅要件の結果として)ソースビデオレートよりも小さい基本フレームレート、および/または、例えば随意のスキップユニット20による幾つかのフレームの随意のスキッピングにより所望のフレームレートよりも小さくなることがある。
置換フレームFt’が内挿によって生成されるとき、ビデオデコーダ14は参照フレームとして使用できる少なくとも1つの以前のフレームおよび少なくとも1つの未来のフレームを使用してフレームFt’を生成することができる。追加のフレームFt’が内挿ではなく、外挿によって生成されるとき、ビデオデコーダ14は時間的にフレームFt’の後に存在する1つまたは複数の参照フレーム、または時間的にフレームFt’の前に存在する1つまたは複数の参照フレームのいずれかを使用してフレームFt’を生成する。いずれの場合も、デコーダ14によって採用されるフレーム置換により、スキップされたまたは他の除外されたフレームのコンテンツを近似する。
フレーム置換は、幾つかの例では復号ビデオストリーム中の視覚的アーティファクトを生成することがある。例えば、ビデオシーケンスのフレームがビデオフレームの上部、下部および/または少なくとも1つの側部に沿って境界を含む場合、フレーム置換はその境界において、ぶれ、ちらつき、および/またはブロッキネスをもたらすことがある。ビデオシーケンスのフレームは、フレームの周囲の少なくとも一部分の周りに延びる無地の、例えば黒い境界を含むことがある。そのような境界は、例えばMPEG−1ビデオストリームからH.264ビデオストリームへの、ビデオストリームのフォーマット変換中に生成されることがある。例えば、境界変換中に画像サイズが変更されることがある。画像サイズをより小さくする場合、あるイメージサイズに合うようにフレームのサイズを調整するために、幾つかの黒または他の色の画素がそのフレームに追加されることがある。それらの黒または他の色の画素は、単一のストリップとしてそのフレームの一方の側部に、または左右対称にそのフレームのすべての側部に追加されることがあり、それによってフレーム内の「境界」が作成される。
動き補償フレーム置換の場合、動きベクトルを使用した内挿または外挿は、置換フレーム中の視覚的アーティファクトを生成することがある。1つまたは複数の参照フレーム中に境界が存在する場合、例えば1つまたは複数の参照フレームにおける動きベクトルに応じて生成される動きベクトルを使用して、置換フレーム中の境界が生成される。幾つかの例では、その内挿または外挿動きベクトルは、境界を含む画素のブロック(ブロック)の各々毎に様々な大きさおよび/または方向を有することがある。置換フレームについて送信される残差データはないので、置換フレーム内の境界は1つまたは複数の参照フレーム内の境界と同じでないことがある。代わりに、置換フレーム中の境界は1つまたは複数の参照フレーム中の境界よりもより太い幅を有するか、1つまたは複数の参照フレーム中の境界よりも細い幅を有するか、または境界に沿って太さが異なることがある。例えば、ブロックの各々の様々な動きベクトルにより、置換フレーム中の境界が幾つかの位置においては置換フレーム内にさらに延び、例えば置換フレームの幾つかのブロック内に延び、他の位置においては置換フレームまでは延びず、例えば置換フレームの他のブロックまでは延びないことがある。その結果、境界はビデオ再生中にぶれているかのように見えるので、望ましいとは言えない閲覧エクスペリエンスが生じることがある。動き補償内挿は境界アーティファクトを生成することがあるが、他の内挿/外挿技術も境界アーティファクトをもたらすことがある。例えば、時間フレーム平均化の場合において参照フレームが10画素の幅の境界を有し、現在のフレームが12画素の幅を有する幅境界を有する場合、内挿フレームは何らかの問題を有することがある。これは動き補償ではなく、時間平均化によって生成される。
本開示では、置換フレームの境界がフレームのエッジに沿って位置するのか、またはフレーム内に位置するのかにかかわらず、その境界において起こるアーティファクトを修正するための技術について説明する。本開示の技術によれば、ビデオデコーダ14は境界アーティファクトに対応する、置換フレーム内の位置を識別し、境界アーティファクトを修正することができる。一態様では、ビデオデコーダ14は境界アーティファクトのタイプに基づいて別に置換ビデオフレーム内の境界アーティファクトを処理することができる。
それを行うために、FRUCユニット22は境界アーティファクトの少なくとも2つの異なるタイプを識別することができる。一例では、FRUCユニット22は置換フレームを生成するために使用される参照フレーム内に存在する境界と対応する、置換フレーム内の第1の位置を識別することができる。これらの第1の位置は、参照ビデオフレーム内に実際に存在する境界に対応するので、「実境界位置」と呼ばれることがある。実境界位置は、動き補償予測により境界が置換フレームまでは延びないときなどの境界アーティファクトと対応することができる。言い換えれば、実境界位置内の境界アーティファクトは、参照フレーム中には存在するが置換フレーム中には存在しない境界に対応する。
FRUCユニット22は、置換ビデオフレーム内には存在するが置換フレームを生成するために使用される参照ビデオフレーム内には存在しない境界と対応する、置換フレーム内の第2の位置をも識別することができる。これらの第2の位置は、参照ビデオフレーム内に存在しないが、例えば動き補償内挿により置換フレームまで広がった境界に対応するので、「偽境界位置」と呼ばれることがある。偽境界位置は、動き補償予測により境界が参照フレームよりも置換フレーム内にさらに延びたときなどの境界アーティファクトと対応することができる。言い換えれば、偽境界位置内の境界アーティファクトは、参照フレーム中には存在しないが置換フレーム中には存在する境界に対応する。
FRUCユニット22は、第1の境界アーティファクト修正技術を使用して実境界位置における境界アーティファクトを修正し、第2の境界アーティファクト修正技術を使用して偽境界位置における境界アーティファクトを修正することができる。実境界位置は、(境界が1つまたは複数の参照ビデオフレーム中に存在するときに)境界が存在するはずの位置に対応するので、FRUCユニット22は置換フレームの実境界位置を参照フレームの少なくとも1つ内の対応する位置と置換することができる。例えば、FRUCユニット22は実境界位置内の画素の画素値を参照フレームの1つ内の対応する位置における画素の画素値に等しくなるように設定することができる。このようにして、FRUCユニット22は画素領域において、例えば置換フレームの画素値を内挿または外挿した後に、境界アーティファクト修正を実行する。別の例として、FRUCユニット22は実境界位置内に位置する、置換フレームのブロックに関連する動きベクトルを0に等しくなるように設定することができ、動き補償を使用して例えば参照フレーム内の対応する位置におけるブロックをコピーすることによって、復元中に境界アーティファクトを修正することができる。従って、第1の境界アーティファクト修正技術は代替的に、例えば置換フレームの画素値を内挿または外挿する前に、圧縮領域において行われることがある。
FRUCユニット22は、第2の境界アーティファクト修正技術を使用して偽境界位置を修正することができる。第2の境界アーティファクト修正技術は、画素領域または圧縮領域のいずれかにおいて実行され得る。画素領域では、FRUCユニット22は1つまたは複数の参照フレーム内の1つまたは複数の画素を使用して、または内挿フレーム内の既に内挿された画素から、偽境界位置内の画素の各々毎に置換画素値を決定することができる。例えば、FRUCユニット22は参照フレームの1つの同じ行に位置する2つの画素の画素値を置換フレーム中で置換され、参照フレーム中の境界にすぐ隣接する画素として平均化することによって、置換フレームの偽境界位置内の画素の各々毎に置換画素値を計算することができる。FRUCユニット22は、圧縮領域では(例えば、置換フレームの画素値を内挿または外挿する前に)選択的にイントラ予測モードを選択し、選択したイントラ予測モードを使用して置換フレームを内挿することによって、置換フレームの偽境界位置内の境界アーティファクトを修正することができる。
本開示の技術については、ビデオフレームの上部、下部および/または側部に沿って起こる境界の文脈で説明するが、本開示の技術はビデオフレーム内に位置する境界の境界アーティファクトを修正するために使用され得る。例えば、様々なビデオ編集技術を使用して、境界がビデオフレームの外周に沿ってではなく、ビデオフレーム内に存在するように、2つ以上のビデオシーケンスを組み合わせることができる。ピクチャインピクチャの場合、例えば境界はフレーム内、例えばフレームの右上コーナに位置する正方形境界であることがある。
図1の例では、FRUCユニット22はビデオデコーダ14内に示されている。他の実装形態では、FRUCユニット22はビデオ後処理モジュール(図1に図示せず)の一部をなすことができる。ビデオ後処理モジュールは、ビデオデコーダ14の出力を処理することができ、平滑化、鮮鋭化(sharpening)、輝度調整、および/またはコントラスト強調、ならびにFRUCユニット22に関して上述したFRUC動作など、様々な処理動作を実行することができる。別の代替として、FRUCユニット22はビデオディスプレイプロセッサ、または、例えばモバイルマルチメディアデバイス用のモバイルディスプレイプロセッサ(MDP)デバイスの一部をなすことができる。従って、ビデオデコーダ14内のFRUCユニット22の実装形態は、例示のために図1および他の図に示されており、本開示で広く説明する技術を限定するものと見なすべきではない。
システム10は、ビデオ電話、ビデオストリーミング、ビデオブロードキャストなどのために構成され得る。従って、相互符号化(reciprocal encoding)、復号、多重化(MUX)および逆多重化(DEMUX)構成要素(components)をチャネル19の両端に設けることができる。幾つかの実装形態では、いわゆる無線ビデオ電話またはカメラ付き携帯電話など、ビデオストリーミング、ビデオブロードキャスト受信、および/またはビデオ電話などが可能な無線モバイル端末などのビデオ通信デバイス内に、ビデオエンコーダ12およびビデオデコーダ14を設けることができる。
そのような無線通信デバイスは、無線通信、オーディオ符号化、ビデオ符号化、およびユーザインターフェース機能をサポートするために様々な構成要素を含む。例えば、無線通信デバイスは、1つまたは複数のプロセッサ、オーディオ/ビデオエンコーダ/デコーダ(CODEC)、メモリ、1つまたは複数のモデム、増幅器などの送信受信(TX/RX)回路、周波数変換器、フィルタなどを含むことができる。さらに、無線通信デバイスは、画像およびオーディオキャプチャデバイス、画像およびオーディオ出力デバイス、関連するドライバ、ユーザ入力メディアなどを含むことができる。
ビデオエンコーダ12、ビデオデコーダ14または両方は、上述のように無線または有線通信デバイスに組み込まれ得る。また、ビデオエンコーダ12、ビデオデコーダ14またはその両方は、無線または有線通信デバイスに組み込むことができる集積回路チップまたはチップセットなどの集積回路デバイスとして、あるいはデジタルメディアプレーヤ、携帯情報端末(PDA)、デジタルテレビジョンなど、デジタルビデオアプリケーションをサポートする別のタイプのデバイスとして実装され得る。
システム10は、セッション開始プロトコル(SIP)、ITU−T H.323規格、ITU−T H.324規格、または他の規格に従ってビデオ電話をサポートすることができる。ビデオエンコーダ12は、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264、またはMPEG−4、Part10などのビデオ圧縮規格に従って符号化ビデオデータを生成することができる。図1には示されていないが、ビデオエンコーダ12およびビデオデコーダ14は、それぞれオーディオエンコーダおよびデコーダと一体化でき、データストリームのオーディオ部分とビデオ部分の両方を処理するために適切なハードウェアおよびソフトウェア構成要素を含むことができる。
同じく、本開示の技術については、ビデオフレームに関して説明するが、本技術はスライス、ブロックまたはサブブロックなど様々な他のタイプのビデオユニットに適用可能である。ただし、本開示では例示のために概して本技術のビデオフレームへの適用について説明するが、本開示で広く説明するそのような技術の態様を限定するものではない。
図2Aは、ビデオデコーダ14における追加のフレームの内挿のための技術の例を示す図である。フレームの各々は、マクロブロックと呼ばれることがある複数画素の複数のブロックを含むことができる。一般に、選択された以前のフレームFt-Nと選択された未来のフレームFt+Mとの間の内挿フレームFt’中のマクロブロック(MB)28を内挿するために、ビデオデコーダ14は以前のフレームFt-N中のMB30と未来のフレームFt+M中の対応するMB32との間に延びる動きベクトルvNMに依拠することができる。この例では、時刻tは内挿すべき追加のフレームがビデオシーケンス中に現れるであろう時間位置、すなわち時刻を示す。フレームFt-NおよびFt+Mは、それぞれ内挿を必要とする追加のフレームFt’の、時間的に先行する(t−N)フレームと後にくる(t+M)フレームである。図2Aの例では、フレームFt-NおよびFt+Mは追加のフレームFt’の内挿のための参照フレームとして役立つ。
NおよびMは、時刻tに対する時間オフセットを示し、互いに等しいことも等しくないこともある。例えば、N=1およびM=2の場合、フレームFt-Nは内挿フレームに直接先行するフレームであり、フレームFt+Mは、内挿フレームの後の第2のフレームである。N=1およびM=1である単純な例では、内挿の場合、フレームFt-NとフレームFt+Mとの間に延びるベクトルvNMを2(1:2のフレームレート変換の場合)で除算して、動きベクトルvNM/2および−vMN/2を生成し、内挿すべきフレームFt’中の対応するMB28を識別することができる。従って、この簡略例では、MB28の位置は動きベクトルvNM/2と−vNM/2との関数であり、この例についてN=1およびM=1である。Ft+mからFtへの動きベクトルは、必ずしも−vNM/2ではなく、vNMの処理されたバージョン、すなわち−vNM’/2であることもある。MB28には、MB30またはMB32に対応する画素値のセット、あるいはMB30および32の画素値の平均、あるいはMB30および32の画素値の線形または非線形フィルタ処理されたバージョンを割り当てることができる。より高いまたは低いフレームアップコンバージョン、例えば1:X変換では、動きベクトルはそれに応じてスケーリングされる。他の場合、例えばNおよびMのうちの少なくとも1つが1に等しくない場合には、動き推定および動きベクトル処理によって得られる異なる動きベクトルを使用することができる。
さらに、内挿の幾つかのタイプでは、FRUCユニット22は2つ以上の以前のフレームおよび2つ以上の未来のフレームなど、複数の参照フレームに依拠することができる。一般に、参照フレームはスキップされたフレームなどのフレームを内挿するために、単独で使用されるか、あるいは1つまたは複数の他の参照フレームと組み合わせて使用されるフレームを指す。内挿プロセスでは、1つまたは複数の参照フレーム中に存在するマクロブロックに関連する画素値を使用して、例えば図2Aに示す内挿すべき追加のフレーム中の対応するマクロブロックにおいて画素値を内挿することができる。画素値は、輝度および/またはクロミナンス画素値を含むことができる。
一例として、内挿マクロブロックは、以前のフレーム中のマクロブロックにおける画素値、未来のフレーム中のマクロブロックにおける画素値、または以前および未来のフレーム中の対応するマクロブロックにおける画素値の平均に等しい画素値を含むことができる。内挿フレーム中のマクロブロックは、図2Aに示すように参照ビデオフレーム中の対応するブロックに対して動き補償され得る。マクロブロックは、図2Aに示すように以前のフレームと未来のフレームとの間に延びる動きベクトルによって識別され得る。図2Aに示す内挿の図は一例であり、本開示で広く説明する技術を限定するものと見なすべきではない。多種多様な異なる内挿技術を本開示によるフレーム置換に使用することができる。
図2Bは、ビデオデコーダ14における追加のフレームの外挿のための技術の例を示す図である。図2Bの例では、2つの以前の参照フレームFt-MおよびFt-Nを使用して、フレーム置換をサポートするために追加のフレームFt’を外挿する。一般に、選択された以前のフレームFt-Nおよび選択された以前のフレームFt-Mの後にくるフレームFt’中のMB31を外挿するために、ビデオデコーダ14は以前のフレームFt-N中の対応するMB33と以前のフレームFt-M中の対応するMB35との間に延びるベクトルvに依拠することができる。この例では、tは外挿すべき追加のフレームがビデオシーケンス中に現れるであろう時間位置、すなわち時刻を示す。フレームFt-NおよびFt−Mは、それぞれ外挿を必要とする追加のフレームFt’に(t−N)および(t−M)だけ時間的に先行するフレームである。図2Bの例では、以前の参照フレームFt-NおよびFt-Mは、追加のフレームFt’の外挿のための参照フレームとして役立つ。ただし、追加のフレームFt’を外挿するために、2つ以上の以前の参照フレームまたは1つまたは複数の未来の参照フレームを使用することができる。言い換えれば、追加のフレームは、それぞれ以前のフレームまたは未来のフレームを使用して前方または後方に外挿され得る。
図2Aの例の場合のように、図2BのNおよびMは時刻tに対する時間オフセットを示し、互いに等しいことも等しくないこともある。例えば、N=2およびM=1の場合、フレームFt-Mは外挿フレームに直接先行するフレームであり、フレームFt-Nは外挿フレームの2つ前のフレームである。MB31には、MB33またはMB35に対応する画素値のセット、あるいはMB33および35の画素値の平均を割り当てることができる。内挿の場合のように、外挿では参照フレームは復号ビデオフレームに追加すべき余分のフレームを外挿するために単独で使用されるか、あるいは1つまたは複数の他の参照フレームと組み合わせて使用されるフレームを指すことができる。
外挿では、図2Bに示すように参照フレーム中の対応するブロックから動きベクトルvを外挿することによって動き補償することができる。外挿プロセスでは、1つまたは複数の参照フレーム中に存在するMBに関連する画素値を使用して、外挿すべき追加のフレーム中の対応するMBにおいて画素値を外挿することができる。図2Bに示す外挿の図は一例であり、本開示で広く説明する技術を限定するものと見なすべきではない。多種多様な異なる外挿技術を本開示によるフレーム置換に使用することができる。
図3Aおよび図3Bは、境界を含む例示的なビデオフレームを示す図である。特に、図3Aは参照フレーム40の左側部に沿った境界44を含む例示的な参照ビデオフレーム40を示し、図3Bは参照フレーム40を使用した動き補償フレーム置換、例えば動き補償内挿または外挿を使用して生成された例示的な置換フレーム42を示す。
ビデオフレーム40、42は、マクロブロックまたはブロックと呼ばれることがある複数画素の複数のブロックに分割され得る。図3Aおよび図3Bに示す例では、ビデオフレーム40、42は画素のブロックの8つの行および8つの列に分割されている。従って、ビデオフレーム40、42の各々は、画素の64ブロックを含む。ビデオフレーム40、42は、画素のより多いまたはより少ないブロックを含むことができる。画素のブロックは、一般にビデオフレーム内の画素の連続する部分を表す。例えば、それらのブロックはフレームの8画素×8画素(8×8)領域を表すことがある。ただし、それらのブロックは4×4、4×8、8×4、8×16、16×8、16×16または他の寸法など、他の寸法の領域に対応することができる。図3Aおよび図3Bに示す例示的なフレーム40、42では、ブロックのすべてが同じサイズのものであり、例えば、8×8ブロックであるがフレーム40、42のブロックは異なるブロックサイズを有することができる。
図3Aの参照ビデオフレーム40は、フレーム40の左側部の少なくとも一部分に沿って延びる境界44を含む。図3Aに示す例では、境界44はフレーム40の全左側部に沿って、すなわち上部から下部まで延びている。ただし、他の例では境界44はフレーム40の左側部の一部分、例えば、上半分または下半分に沿ってのみ延びるにすぎないことがある。境界はまたフレーム40の上部、下部および右側部の少なくとも一部分に沿って与えられることがあるが、説明を簡単にするために図3Aには示していない。境界44は、黒い境界などの無地の境界でもあり得る。言い換えれば、境界44内にある画素はすべて、無地の境界を生成するために実質的に同じ画素値を有することができる。境界44は、長さおよび幅を有する。図3Aに示す例では、境界44はフレームの全側部に等しい長さと、第1の列のブロックのブロック幅の約1/4に等しい幅とを有する。例えば、8×8の寸法を有するブロックの場合、境界44の長さは64画素に等しく、境界44の幅は2画素に等しい。参照フレーム40の境界44の幅は、境界の全長に沿って実質的に同じである。ただし、境界44は、任意の長さまたは幅を有することができる。
動き補償フレーム置換は、置換フレーム42を生成するために動き補償、例えば動きベクトルを使用する。置換フレーム42を生成するために、例えば、図2Aの内挿の例に示すように、以前のフレームと後続のフレームとの間に延びる動きベクトルに応じて、または例えば図2Bの外挿の例に示すように2つ以上の以前のフレーム間に延びる動きベクトルに応じて、例えば置換フレーム42のブロックについて動きベクトルを生成することができる。幾つかの例では、置換フレーム42について生成された動きベクトルは様々な大きさおよび/または方向を有することがあり、内挿または外挿において使用されると、図3Bに示すように境界に沿って太さが異なる境界46を置換フレーム42内で生成することがある。
図3Bに示すように、置換フレーム42中の境界46は幾つかの位置においては他の位置よりも置換フレーム42内にさらに延び、従って異なる太さの境界が作成される。例えば、置換フレーム42のブロックの第1列に沿って、第1、第3および第5行のブロック内の境界46の部分は、参照フレーム40の境界44と同じ境界幅、例えばブロック幅の約1/4を有する。ただし、置換フレーム42のブロックの第1列の他のブロックは、参照フレーム40の境界44の幅と比較して、より太い境界幅またはより細い境界幅のいずれかを有する。例えば、置換フレーム42の第1列の第4行のブロックは全く境界を有さないが、参照フレーム40においてはそうではない。別の例として、置換フレーム42の第1列の第2および第6行のブロック内の境界46の部分はブロックの約半分に等しい境界幅を有し、置換フレーム42の第1の列の第7の行のブロック内の境界の部分はブロックの約3/4の境界幅を有し、それらはそれぞれ参照フレーム40中の対応するブロックの境界幅の約2倍と約3倍である。置換フレーム42の第1列の第8行のブロック内の境界46の部分は、第8行のブロックよりも大きい境界幅を有する。言い換えれば、置換フレーム42の第1列の第8行のブロックのすべての画素、ならびに置換フレーム42の第2列および第8行のブロックの画素の約1/8が境界画素である。
フレーム40、42がフレームのシーケンスとして表示されるとき、参照フレーム40の境界44は置換フレーム42の境界46とはかなり異なるので、境界はビデオ再生中にぶれているかのように見える。その結果は、望ましいとは言えない鑑賞経験(viewing experience)となることがある。本開示で説明する境界アーティファクト修正技術により、置換フレーム42内の境界アーティファクトをなくすことはできないとしても、低減することはできる。実際はたいていの場合、境界アーティファクトは十分に修正され得る。言い換えれば、本境界アーティファクト修正技術により、置換フレーム42内の境界が参照フレーム40の境界44と実質的に同様になるように境界アーティファクトを修正する。
図3Aおよび図3Bに示す例では、境界44はフレーム40、42の左側部に沿って延びているが、フレーム40、42内の境界44は追加または代替として上述のようにフレーム40、42の他の位置に存在することがある。例えば、境界はフレーム40、42の上部、フレーム40、42の下部、フレーム40、42の右側部、またはそれらの組合せに沿って存在することがある。さらに、境界は2つのビデオシーケンスのピクチャインピクチャまたはビデオ編集の場合など、フレーム40、42内に存在することがある。
図4は、図1のビデオデコーダ14の例をより詳細に示すブロック図である。図4の例では、ビデオデコーダ14は復号ユニット50とフレーム置換ユニット52と出力フレームバッファ54とを含む。フレーム置換ユニット52は、本開示によれば置換フレーム内の境界アーティファクトを修正する。フレーム置換ユニット52は、ビデオデコーダ14のFRUCユニット22の一部を形成することができる。図4の例では、フレーム置換ユニット52はビデオデコーダ14内に存在する。ただし、フレーム置換ユニット52は、他の実装形態では、ビデオデコーダ14の外部に、例えば、ビデオポストプロセッサモジュール、またはビデオディスプレイプロセッサ、またはMDPデバイス内に存在することがある。
ビデオデコーダ14は、送信チャネル19から例えばフレームバッファ(図4に図示せず)から受信したフレームを得る。復号ユニット50は、適用可能な符号化プロセスを使用して受信フレームを復号し、復号フレームを出力フレームバッファ54中に入れる。図4に示す例では、ビデオデコーダ50はエントロピー復号ユニット58と逆量子化ユニット60と逆変換ユニット62と予測ユニット64と加算器66とを含む。
エントロピー復号ユニット58は、符号化ビデオフレーム、例えば、受信フレーム24(図1)を得て受信ビデオフレーム24をエントロピー復号し、各フレームの複数のブロック(または各フレームの部分、例えばスライス)のための残差情報およびヘッダ情報を得る。エントロピー復号ユニット58は可変長符号化、算術符号化、コンテキスト適応型可変長符号化(CAVLC)、コンテキスト適応型バイナリ算術符号化(CABAC)、または他のエントロピー符号化技術など、1つまたは複数のエントロピー符号化技術を使用して受信フレーム24を復号することができる。上述のように、残差情報は1つまたは複数の量子化残差係数の形態であることがあり、予測ビデオブロックとビデオエンコーダ12によって符号化された元のビデオブロックとの間の差を定量化する。ヘッダ情報は、インター予測を使用すべきかまたはイントラ予測を使用すべきか、イントラ予測について使用するイントラ予測モード、インター予測において使用するための1つまたは複数の動きベクトルなど、予測ビデオブロックを生成するために必要な情報を含むことができる。
復号ユニット50は、予測ビデオブロックと残差ビデオブロックを生成し、組み合わせることによってビデオブロックの各々を再構成する。各インター予測ブロックの場合、予測ユニット64はエントロピー復号ユニット58から1つまたは複数の動きベクトルと、例えば出力フレームバッファ54から1つまたは複数の再構成されたビデオフレームとを得て、動き補償予測ブロックを生成する。各イントラ予測ブロックの場合、予測ユニット64はイントラ予測モードとイントラ予測ブロックとして同じフレームの1つまたは複数の再構成されたビデオブロックとを得て、イントラ予測モードに従って予測ブロックを生成する。
復号ユニット50は、量子化残差係数を逆量子化(inverse quantize)、すなわち逆量子化(de-quantize)するために残差情報を逆量子化ユニット60に供給し、逆変換、例えば逆DCTあるいは逆4×4または8×8整数変換を適用するために残差情報を逆変換ユニット62に供給することによって、残差ブロックを生成することができる。加算器66は、予測ユニット64によって生成された予測ブロックと逆変換ユニット62によって出力された残差ブロックとを加算して、再構成されたビデオブロックを形成する。再構成されたビデオブロックは、出力フレームバッファ54に記憶される。
受信フレーム24は、内挿または外挿すべき様々なフレームを除外することができる。そのようなフレームは、ビデオエンコーダ12によってスキップされたフレーム、エンコーダビデオ12の基本フレームレートによってサポートされなかったフレーム、および/あるいはチャネル19上での送信中に欠落したフレームまたはフレームの部分を含むことができる。時空間品質を促進するために、フレーム置換ユニット52は、例えば、内挿または外挿によって、1つまたは複数の追加のビデオフレームを生成するように構成され得る。
フレーム置換ユニット52は、再構成されたビデオの時空間品質を向上させるために置換フレームをビデオ出力フレームバッファ54に追加する。フレーム置換ユニット52は、例えば内挿または外挿によって、フレーム置換を実行する際の参照フレームとして使用するためのフレームを復号ユニット50から受信することができる。フレーム置換ユニット52は、復号ユニット50から受信した参照フレームを使用して、例えば動き補償内挿または外挿によってフレーム置換のための追加のフレームを生成することができる。一例として、フレーム置換ユニット52は例えば図2Aに示すように、以前のフレームと未来のフレームとの間に延びる動きベクトルを使用して、追加すべき置換フレーム中のブロックを内挿することができる。別の例として、フレーム置換ユニット52は例えば図2Bに示すように、2つ以上の以前のフレーム間に延びる動きベクトルを使用して、追加すべき置換フレーム中のブロックを外挿することができる。
上述のようにフレーム置換、および特に動き補償フレーム置換は、置換フレーム中の境界アーティファクトをもたらすことがあるので、ビデオシーケンス中の境界に沿って境界のぶれ、ちらつき、またはブロッキネスなどの視覚的アーティファクトが生じる。例えば、動き補償内挿または外挿により、例えば図3Aおよび図3Bに関して上述したように、置換フレームの周囲(または周囲の部分)の周りの境界は1つまたは複数の参照フレームにおける周囲の周りの境界よりも太くまたは細くなることがあり、あるいは置換フレーム中の境界は、その境界に沿って太さが異なることがある。言い換えれば、置換フレーム内の境界は、1つまたは複数の参照フレーム内の境界と同じでない。
ビデオの視覚的品質を改善するために、フレーム置換ユニット52は境界が参照フレーム中に存在するとき置換フレーム内の境界アーティファクトを修正することができる。境界が参照フレーム中に存在しない場合、フレーム置換ユニット52は境界アーティファクト修正を実行することができない。代わりに、フレーム置換ユニット52は従来のフレーム置換技術、例えば内挿または外挿を使用して、追加のフレームを生成することができる。従って、境界アーティファクト修正は場合によっては境界が参照フレーム中に、例えば参照フレームの上部、下部、左または右に沿って、あるいは幾つかの例では(参照フレームの周囲に沿ってではなく)参照フレーム内で発見された場合のみ実行され得る。
フレーム置換ユニット52は、境界アーティファクトに対応する、置換フレーム内の位置を識別し、識別した位置内の境界アーティファクトを修正することができる。フレーム置換ユニット52は、境界アーティファクトを含む位置を識別する境界アーティファクト識別ユニット68を含み得る。境界アーティファクト識別ユニット68は、境界が参照ビデオフレーム内に存在し置換フレーム内に存在するはずの位置に対応する実境界位置と呼ばれる、置換フレーム内の第1の位置を識別することができる。実境界位置は、幾つかの例では動き補償フレーム置換から生じる境界アーティファクトを含むことがある。例えば、実境界位置は例えば図3Bにおけるブロックの第4行および第1列のブロックに示すように、動き補償予測により境界が除去されたかまたは置換フレームまでは延びない境界アーティファクトを含むことがある。
境界アーティファクト識別ユニット68は、境界が置換フレーム中には存在するが参照フレーム内には存在しない位置に対応する、偽境界位置と呼ばれる、置換フレーム内の第2の位置をも識別することができる。偽境界位置は、例えば、図3Bにおけるブロックの第1列の第2、第6、第7行と、ブロックの第1および第2列の第8行とからなるブロックに示すように、参照フレーム中の対応する境界位置よりも置換フレームにさらに延びる境界など、動き補償内挿から生じる境界アーティファクトを含む。
境界アーティファクト識別ユニット68は、置換フレームのブロックに関連する動きベクトルおよび/または参照フレーム内に存在する境界の幅を使用して、実境界位置および偽境界位置を識別することができる。図2Aおよび図2Bに関して詳細に説明したように、置換フレームは1つまたは複数の参照フレームを使用して内挿または外挿できる。特に、フレーム置換ユニット52は1つまたは複数の参照フレームに関連する動きベクトルに応じて置換フレームのブロックのための動きベクトルを計算し、計算した動きベクトルを使用して置換フレームを生成することができる。例えば、時間的に置換フレームより前にある第1の参照フレームと、時間的に置換フレームの後にある第2の参照フレームとを使用した内挿の場合、フレーム置換ユニット52は第1の参照フレームと第2の参照フレームとの間に延びる動きベクトルの半分に等しい、置換フレームのブロックのための動きベクトルを生成することができる。
実境界位置および偽境界位置を識別するために、境界アーティファクト識別ユニット68は、境界に沿った画素のブロックを分析する。例えば、フレームの左周囲または右周囲に沿って位置する境界の場合、境界アーティファクト識別ユニット68は、それぞれフレームの左側部の列に沿って、またはフレームの右側部の列に沿って画素を分析することができる。一方、上部または下部周囲に沿って位置する境界の場合、境界アーティファクト識別ユニット68は、それぞれフレームの上部の行に沿って、またはフレームの下部の行に沿って画素を分析することができる。
境界アーティファクト識別ユニット68は、例えばブロックに関連する動きベクトルを分析して、境界アーティファクトがブロック内に存在するかどうかを判断することができる。フレームのブロック中の境界アーティファクトを識別するために、境界アーティファクト識別ユニット68は左または右境界と対応するブロックの各々毎に当該ブロックに関連する動きベクトルのx成分を分析し、上部または下部境界に対応するブロックの各々毎に当該ブロックに関連する動きベクトルのy成分を分析する。
境界アーティファクト識別ユニット68は、左または右境界に沿ったブロックについてブロックの動きベクトルが0に等しいx成分を有する場合、境界アーティファクトがないと判断する。同様に、境界アーティファクト識別ユニット68は、上部または下部境界に沿ったブロックについてブロックの動きベクトルが0に等しいy成分を有する場合、境界アーティファクトがないと判断する。これは、動き補償により境界が当該ブロック内にさらに広がらないからである。代わりに、置換フレームのブロックは参照フレームからの対応するブロックのコピーとなる。
ブロックの動きベクトルのそれぞれの成分、例えば左および右境界のx成分ならびに上部および下部境界のy成分が0でない大きさを有する場合、境界アーティファクト識別ユニット68はブロック内の実境界位置および/または偽境界位置を識別する。一態様では、境界アーティファクト識別ユニット68はブロックの第1の部分を実境界位置と識別し、ブロックの第2の部分を偽境界位置と識別することができる。
例えば、フレームの左側部に沿って位置する境界の場合、境界アーティファクト識別ユニット68はブロックの画素の最初のW列を実境界位置と識別することができる。ここで、Wは参照フレーム内の境界の画素単位の幅に等しい。例えば、ブロックの動きベクトルのx成分が正の大きさを有する場合、境界アーティファクト識別ユニット68は、実境界位置に隣接するブロックの画素の、その正の大きさに等しい数の列を偽境界位置と識別することができる。この場合、正の大きさの動きベクトルは負のx方向に位置する参照フレーム中のブロックを指す。例えば、境界が左境界であり、動きベクトルのx成分がMVxに等しい場合、境界アーティファクト識別ユニット68は、列W+1〜W+MVxを偽境界位置と識別することができる。例えば、境界が左境界であり、ブロックの動きベクトルのx成分が負の大きさを有する場合、境界アーティファクト識別ユニット68は当該ブロック内の画素のいずれをも偽境界位置に属するものとして識別することができない。これは、動き補償により境界がそのフレーム内にさらに広がらないからである。上述の例では、動きベクトルのx成分の正の大きさはビデオフレームの右側部の方への動きと対応するものとして表し、動きベクトルのx成分の負の大きさはビデオフレームの左側部の方への動きと対応するものとして表したが、異なる動きベクトル大きさ(符号)規約(motion vector magnitude (sign) conventions)を使用することができる。例えば、動きベクトルのx成分の正の大きさはビデオフレームの左側部の方への動きと対応するものとして表され、動きベクトルのx成分の負の大きさはビデオフレームの右側部の方への動きと対応するものとして表される。
フレームの右側部に沿って位置する境界の場合、境界アーティファクト識別ユニット68は異なるブロックを分析し、関連する動きベクトルのx成分を別に使用する。境界アーティファクト識別ユニット68は、置換フレームの画素の最後のW列、すなわち列N〜N−Wを実境界位置と識別することができる。ここで、Wは参照フレームの境界の画素単位の幅に等しく、Nは画素の列の総数に等しい。ブロックの動きベクトルのx成分が負の大きさを有する場合、境界アーティファクト識別ユニット68は実境界位置に隣接する画素の、その負の大きさに等しい数の列を偽境界位置と識別することができる。例えば境界が右境界であり、動きベクトルのx成分が−MVに等しい場合、境界アーティファクト識別ユニット68は列N−W−1〜N−W−MVを偽境界位置と識別することができる。境界が右境界であり、ブロックの動きベクトルのx成分が正の大きさを有する場合、境界アーティファクト識別ユニット68は、当該ブロック内の画素のいずれをも偽境界位置に属するものとして識別することができない。これは、動き補償により境界がそのフレーム内にさらに広がらないからである。境界アーティファクト識別ユニット68は、同様にブロックに関連する動きベクトルのy成分を使用して、上部および下部境界に沿った実境界位置および偽境界位置を識別することができる。
他の態様では、境界アーティファクト識別ユニット68は上述のようにブロックの部分ではなく、ブロック全体を実境界位置または偽境界位置と識別することができる。ブロックが参照フレームの境界の位置に対応する任意の画素を含む場合、境界アーティファクト識別ユニット68は当該ブロックを実境界位置と分類することができる。例えば、境界がW画素の幅をもつ左境界である場合、境界アーティファクト識別ユニット68は画素の最初のW列の任意の画素を含むブロックを実境界位置と識別することができる。Wが7に等しく、置換フレームのブロックが4×4ブロックである場合、境界アーティファクト識別ユニット68は4×4ブロックの最初の2つの列を実境界位置と識別する。言い換えれば、Wは動き補償のために使用される基本単位のサイズの最も近い倍数に丸められ、例えばN×Nの基本単位またはブロックサイズの場合、幅WはNの最も近い倍数に丸められる。上記の4×4ブロックサイズの例では、W値7は8に丸められ、その結果、ブロックの2つの列が実境界位置と識別される。動き補償の基本単位のサイズに応じて、異なる丸めが行われることがある。例えば、動き補償のための基本単位のサイズが2×2ブロックである場合、境界の幅Wは2の最も近い倍数に丸められる。2×2ブロックの場合、7であるWは依然として8に丸められるが、その結果、2×2ブロックの4つの列が実境界位置と識別される。別の例として、基本動き補償単位が8×8である場合、W値5は8に丸められ、その結果、8×8ブロックの単一の列が実境界位置と識別される。丸めは、ビデオアーキテクチャによって制限されていない場合、必要でないことがある。ただし、丸めよりもビデオプロセッサの動き補償モジュールを利用することは、ビデオプロセッサ/デコーダの基本動き補償単位に依存する。
従って、境界の少なくとも1つの画素が参照フレーム中の境界の位置に対応する場合、参照フレーム中の境界に対応しない幾つかの画素を含むブロックでさえ、実境界位置と分類できる。図5に関してさらに詳細に説明するように、境界アーティファクト識別ユニット68はシーリング関数を使用して、実境界位置と識別されるブロックの列の数を決定することができる。
幾つかの例では、境界アーティファクト識別ユニット68は参照フレーム中の境界と対応する画素を有しないブロックを実境界位置と特徴づけることができる。参照フレーム中の境界の境界幅がブロックサイズの倍数である場合、境界アーティファクト識別ユニット68は隣接するブロックを実境界位置と識別することができる。これは、例えば以下で詳細に説明するように、イントラ予測を使用して偽境界アーティファクトを修正するために必要であることがある。例えば、12画素の幅をもつ左または右境界は、例えば4×4ブロックの場合、ブロックの3つの列を通って延びるにすぎないが、ブロックの4つの列が実境界位置と識別される。
境界アーティファクト識別ユニット68は、ブロックに関連する動きベクトルにより、境界が参照フレーム中の境界の位置に対応する画素を含まないブロックに広がったとき、当該ブロックを偽境界位置と識別することができる。アーティファクトに対応する偽境界位置(この場合はブロック)を識別する例は、次のように説明できる。ビデオユニットの左境界の場合、境界アーティファクト識別ユニット68は、ある行の各ブロックを処理し、ビデオユニットの左側部から開始する。Kを分析される、ある行のブロックの数を表すものとし(すなわち、ブロック1〜Kが分析される)、Rをブロックの行の総数とする。ブロック1〜Kの各々毎に、境界アーティファクト識別ユニット68は、当該ブロックに関連する動きベクトルを得る。境界アーティファクト識別ユニット68は、参照フレームからフェッチされるブロックの、例えば置換フレームのブロックに関連する動きベクトルを使用して動き補償中に得られたブロックの左コーナの水平画素座標を計算する。水平画素座標が左境界幅よりも小さい場合、境界アーティファクト識別ユニット68はこのブロックを偽境界位置と識別する。言い換えれば、境界アーティファクト識別ユニット68は、当該ブロックを例えばイントラ予測または他の画素置換方法による、アーティファクト修正を必要とする位置と識別する。さらに、境界アーティファクト識別ユニット68は、アーティファクト位置マップにおける当該ブロックの対応する位置を例えば「1」と標示し、マップ上のその位置に対応する当該ブロックが境界アーティファクト修正を必要とすることを示すことができる。境界アーティファクト識別ユニット68は、同じ行の次のブロックに移動し、その行のすべてのK個のブロックが分析されるまで、同じプロセスを反復することができる。第1の行のK個のブロックを分析した後、境界アーティファクト識別ユニット68はすべての行が分析されるまで、次の行のK個のブロックを分析することができる。すべての行を分析した後、境界アーティファクト識別ユニット68は右境界が存在する場合、その境界に移動することができる。
右境界の場合、境界アーティファクト識別ユニット68は同様の手順に従う。境界アーティファクト識別ユニット68は、ビデオユニットの右境界にある、ある行の最後のP個のブロックを処理することができる。ブロック毎に、境界アーティファクト識別ユニット68は、最初に当該ブロックの動きベクトルを得る。次いで、境界アーティファクト識別ユニット68は、動き補償中に参照フレームからフェッチされるブロックの右コーナの水平画素座標を計算する。水平画素座標が右境界の開始座標(例えば、右境界の左端座標)よりも大きい場合、境界アーティファクト識別ユニット68は、当該ブロックを、アーティファクト修正を必要とするエリアと識別し、位置マップにおいて当該ブロックの対応する位置を「1」と標示する。境界アーティファクト識別ユニット68は、同じ行の以前のブロックに移動し、P個のブロックの分析を反復することができる。第1の行のP個のブロックを分析した後、境界アーティファクト識別ユニット68は、すべてのR行が分析されるまで次の行のP個のブロックを分析することができる。すべての行が分析された後、境界アーティファクト識別ユニット68は、北(または上部)境界が存在する場合、その境界に移動することができる。
北境界の場合、境界アーティファクト識別ユニット68は同様の手順に従う。境界アーティファクト識別ユニット68は、ビデオユニットの北側にある、ある列の各ブロックの処理を開始することができる。Tを分析される、ある列のブロックの数を表すものとし、Cをブロックの列の総数とする。境界アーティファクト識別ユニット68は、ビデオユニットの北境界にある、ある列の最初のT個のブロックを処理する。ブロック毎に、境界アーティファクト識別ユニット68は、最初に当該ブロックの動きベクトルを得ることができる。境界アーティファクト識別ユニット68は、動き補償中に参照フレームからフェッチされるブロックの下側の垂直画素座標を計算することができる。垂直画素座標が上部境界の最下側または最南境界座標よりも大きい場合、境界アーティファクト識別ユニット68は、当該ブロックをアーティファクト修正を必要とするエリアと識別し、位置マップにおいて当該ブロックの対応する位置を「1」と標示する。境界アーティファクト識別ユニット68は、同じ列の次のブロックに移動し、その列のT個のブロックが分析されるまで、同じプロセスを反復することができる。すべてのC列のT個のブロックが分析された後、境界アーティファクト識別ユニット68は、南境界が存在する場合、その境界に移動することができる。
同様に、南境界においてブロック毎に、境界アーティファクト識別ユニット68は、最初に当該ブロックの動きベクトルを得ることができる。境界アーティファクト識別ユニット68は、動き補償中に参照フレームからフェッチされるブロックの北(上側)の垂直画素座標を計算することができる。垂直画素座標が南境界の最上側または最北境界座標よりも小さい場合、境界アーティファクト識別ユニット68は当該ブロックをアーティファクト修正を必要とするエリアと識別し、位置マップにおいて当該ブロックの対応する位置を「1」と標示することができる。境界アーティファクト識別ユニット68は、同じ列の次のブロックに移動し、その列のB個のブロックが分析されるまで、同じプロセスを反復することができる。
上述のプロセスは、偽境界位置をどのように識別することができるかについての一例である。このプロセスは、本明細書で説明する技術を限定するものと見なすべきではない。例えば、偽境界識別はアーティファクトが識別される順序に依存しない。言い換えれば、このプロセスは南境界、北境界、左境界または右境界で開始することができる。他の偽境界位置識別技術が使用できる。例えば、境界批准識別(boundary ratification identification unit)ユニット68は、画素座標の代わりに、またはそれに加えてブロックに関連する動きベクトルに基づいて境界位置を識別することができる。例えば、境界が左境界であり、動きベクトルのx成分が正のMVxに等しい場合、境界アーティファクト識別ユニット68は、MVxが実境界位置を識別するために使用されるシーリング関数の出力とブロックサイズとの積よりも大きいとき、分析されている現在のブロックに隣接して位置するブロックを偽境界位置と識別することができる。
フレーム置換ユニット52は、本開示の技術を使用して、識別された位置を修正して参照フレームの境界と実質的に同様である置換フレーム内の境界を作成し、それによって境界の時間連続性を保持し、境界のぶれを除去する。フレーム置換ユニット52は、置換フレーム内の境界アーティファクトを修正する境界アーティファクト修正ユニット73を含む。境界アーティファクト修正ユニット73は、それぞれ実境界位置および偽境界位置内の境界アーティファクトを修正する実境界修正ユニット70および偽境界修正ユニット72を含むことができる。幾つかの例では、境界修正ユニット70、72は画素領域において、識別された位置内の境界アーティファクトを修正することができる。言い換えれば、境界修正ユニット70、72は画素毎に識別された位置内の画素値を調整することができる。
例えば、置換フレーム中の実境界位置、すなわち置換フレームを生成するために使用される参照フレーム内に存在し、置換フレーム内に存在するはずの境界と対応する位置のアーティファクトを修正するために、実境界修正ユニット70は置換フレーム中の実境界位置内の画素値の各々を参照フレーム中の対応する位置からの画素値と置換することができる。事実上、実境界修正ユニット70によって参照フレームの境界が置換フレームの境界にコピーされる。別の例として、実境界修正ユニット70は実境界位置の画素値の各々を参照フレーム中の境界の色に関連する画素値に等しくなるように設定することができる。
画素領域において偽境界位置を修正するために、偽境界修正ユニット72は、1つまたは複数の参照フレームの1つまたは複数の画素値を使用して偽境界位置、すなわち置換ビデオフレーム内には存在し、置換フレームを生成するために使用される参照ビデオフレーム内には存在しない境界と対応する位置内の画素の各々毎に、置換画素値を計算することができる。偽境界修正ユニット72は、幾つかの例では偽境界位置内の画素の各々毎に、置換されており参照フレーム中の境界にすぐ隣接する置換フレームの画素の行に対応する行に位置する、参照フレーム中の2つの画素の画素値の平均となる、置換画素値を計算することができる。
例えば、4画素の幅をもつ左境界の場合、偽境界修正ユニット72はその境界にすぐ隣接する、参照フレームの第1行の第5および第6画素に関連する画素値を平均化することによって、置換フレームの第1行の第5画素の置換画素値を計算することができる。同様に、偽境界修正ユニット72は、参照フレームの第2行の第5および第6画素に関連する画素値を平均化することによって、置換フレームの第2行の第5画素の置換画素値を計算することができ、以下同様である。偽境界修正ユニット72は、参照フレームからのより多いまたはより少ない画素値を使用して、画素フレーム内の異なる位置例えば、異なる行または列からの画素値を使用して、あるいは参照フレームからの画素値と置換フレームの以前計算された画素値との組合せを使用して、置換画素を計算することができる。このようにして、フレーム置換ユニット52は第1の修正技術を使用して実境界位置内の境界アーティファクトを修正し、第2の修正技術を使用して偽境界位置内の境界アーティファクトを修正して、参照フレーム中の境界と実質的に同じである境界を置換フレーム中で生成することができる。
他の例では、フレーム置換ユニット52は例えば置換フレームの画素値が生成されるより前に、圧縮領域において識別された位置を修正することができる。上述のように、圧縮領域における識別された位置はブロックの画素の部分ではなく、画素のブロック全体とされ得る。実境界位置と識別された置換フレーム中のブロック、例えば参照フレームの境界に対応すると判断された少なくとも1つの画素を含むブロックの場合、実境界修正ユニット70は当該ブロックに関連する動きベクトルを0に等しくなるように設定することによって、境界アーティファクトを修正することができる。当該ブロックに関連する動きベクトルを0に等しくなるように設定することにより、フレーム置換ユニット52は動き補償を使用して追加のフレームのブロックを生成するために、参照フレーム中の対応するブロックをコピーすることによって、置換フレーム中で当該ブロックを生成する。従って、実境界位置に対応する置換フレーム中のブロックは、動き補償を使用した追加のフレームの構成後、参照フレームの境界と同じ境界を有する。
圧縮領域において、偽境界位置、例えば参照フレーム中に存在しない置換フレーム内の境界に対応するブロックの少なくとも1つの画素を含むが、参照フレームの境界に対応する画素を含まないブロックを修正するために、偽境界修正ユニット72は、イントラ予測モードを選択し、選択したイントラ予測モードを使用してブロックの画素値を決定することによって、アーティファクトを修正することができる。例えば、4×4ブロックの場合、偽境界修正ユニット72は符号化技術において利用可能なイントラ予測モードのうちの1つを選択することができる。例えば、H.264の場合、偽境界修正ユニット72は9つのイントラ予測モード、すなわち垂直モード、水平モード、DCモード、対角右下側モード(diagonal downright mode)、対角左下側モード(diagonal downleft mode)、垂直右側モード(vertical right mode)、水平下側モード(horizontal down mode)、垂直左側モード(vertical left mode)および水平上側モード(horizontal up mode)のうちの1つを選択することができる。このようにして、ビデオデコーダ14は境界アーティファクトの少なくとも2つの異なるタイプを識別し、様々な方法で境界アーティファクトを修正することができる。
幾つかの態様では、境界アーティファクト予測ユニット56は画素領域または圧縮領域のいずれかにおいて境界アーティファクトを修正することが可能である。この場合、境界アーティファクト修正ユニット56は、例えば最適な品質−電力トレードオフを達成するために、境界アーティファクトを画素領域において修正すべきか、または圧縮領域において修正すべきかを適応的に選択することができる。画素領域において境界アーティファクトを修正すると、圧縮領域において境界アーティファクトを修正するよりも品質が良くなることがある。しかしながら、圧縮領域において境界アーティファクトを修正することは、特定の画素データにアクセスすることを必要とせず、より少ない電力消費量およびMIPSを使用して実行できる。一例として、境界アーティファクト修正ユニット73は、イントラ予測について利用可能な因果的画素(causal pixels)がないときは、画素領域において境界アーティファクト修正を実行し、因果的画素がイントラ予測について利用可能なときは、圧縮領域において境界アーティファクト修正を実行することができる。
ビデオ出力フレームバッファ54中の復号フレームおよび置換フレームを使用して、ディスプレイなどのビデオ出力デバイス(図4に図示せず)を駆動することができる。一例として、ビデオデコーダ14は移動無線電話、デジタルメディアプレーヤ、携帯情報端末(PDA)、デジタルテレビジョンなどの無線通信デバイスを含む、デジタルビデオ機能を含む様々なデバイスのいずれかの一部を形成する。代替的に、出力フレームバッファ54中のフレームを、アーカイブまたは表示のための1つまたは複数の他のデバイスに送信することができる。いずれの場合も、フレーム置換ユニット52によって生成された置換フレームは、例えば、ビデオクリップの時間的視覚的品質を向上させるために、復号ユニット50によって復号されたフレームを補う。
図5は、本開示の技術による、置換フレーム中の境界アーティファクトを修正するフレーム置換ユニット52の例示的な動作を示す流れ図である。フレーム置換ユニット52は、境界が参照フレーム中に存在すると判断する(80)。境界は、参照フレームの周囲の少なくとも一部分の周りに(例えば、フレームの上部、下部、左側部および/または右側部に沿って)存在することがある。代替または追加として、境界は例えば周囲に沿ってではなく、参照フレーム内に存在することがあり、これは一緒に編集される、またはピクチャインピクチャのシナリオにおける、2つ以上のビデオシーケンスを含むフレームの場合に当てはまることがある。
参照フレーム内の境界を識別すると、境界アーティファクト識別ユニット68は境界が参照ビデオフレーム内に存在し、置換フレーム内に存在するはずの位置に対応する実境界位置と呼ばれる、置換フレーム内の第1の位置を識別する(82)。実境界位置は、動き補償フレーム置換から生じるアーティファクトを含むことがある。例えば、実境界位置は、例えば図3Bにおけるブロックの第4行および第1列のブロックに示すように、動き補償予測により境界が除去されたかまたは置換フレームまでは延びない、境界アーティファクトを含むことがある。
境界識別ユニット68は、参照フレーム内の境界の幅に基づいて置換フレーム内の実境界位置を識別することができる。一態様では、境界識別ユニット68は各ブロックを分析し、参照フレーム内の境界の幅に基づいて当該ブロックの一部分を実境界位置と識別することができる。一例として、参照フレーム中の境界が参照フレームの左側部に沿って位置する場合、境界アーティファクト識別ユニット68は置換フレーム中のブロックの第1列のブロックの画素の最初のW列を実境界位置と識別することができる。ここで、Wは参照フレーム内の境界の画素単位の幅に等しい。別の態様では、境界識別ユニット68はブロックが参照フレーム内の境界に対応しない画素を含む場合でも、当該ブロック全体を実境界位置と識別することができる。例えば、参照フレーム中の境界が左境界である場合、境界アーティファクト識別ユニット68はシーリング関数、例えばシーリング(x,y)を使用して実境界位置である置換フレーム中のブロックの列の数を計算することができる。シーリング関数の出力は、yで除算したxを次に大きい整数値に切り上げたものとなる。例えば、シーリング(7,4)=2である。従って、7画素の境界の幅をもつ左または右境界は、例えば4×4ブロックの場合、ブロックの2つの列が実境界位置と識別される。
幾つかの例では、境界アーティファクト識別ユニット68は参照フレーム中の境界と対応する画素を有しないブロックを実境界位置と特徴づけることができる。参照フレーム中の境界の境界幅がブロックサイズの倍数である場合、境界アーティファクト識別ユニット68は、隣接するブロックを実境界位置と識別することができる。これは、例えば以下で詳細に説明するように、イントラ予測を使用して偽境界アーティファクトを修正するために必要であることがある。例えば、12画素の幅をもつ左または右境界は、例えば4×4ブロックの場合、ブロックの3つの列を通って延びるにすぎないが、ブロックの4つの列が実境界位置と識別される。
境界アーティファクト識別ユニット68は、境界が置換フレーム中には存在するが参照フレーム内には存在しない位置に対応する偽境界位置と呼ばれる、置換フレーム内の第2の位置をも識別する(84)。偽境界位置は、例えば図3Bにおけるブロックの第1列の第2、第6、第7、および第8行のブロックに示すように、参照フレーム中の対応する境界位置よりも置換フレームにさらに延びる境界など、動き補償内挿から生じる境界アーティファクトを含む。
境界識別ユニット68は、参照フレーム内の境界の幅と、ブロックに関連する推定された内挿または処理された動きベクトルとに基づいて、置換フレーム内の偽境界位置を識別することができる。一態様では、境界識別ユニット68は各ブロックを分析し、参照フレーム内の境界の幅とそれぞれのブロックの動きベクトルとに基づいて当該ブロックの一部分を偽境界位置と識別することができる。例えば、境界が左境界であり、動きベクトルのx成分がMVxに等しい場合、境界アーティファクト識別ユニット68は列W+1〜W+MVxを偽境界位置と識別することができる。ここで、Wは参照フレーム中の境界の幅である。別の態様では、境界識別ユニット68はブロック全体を偽境界位置と識別することができる。境界アーティファクト識別ユニット68は、ブロックに関連する動きベクトルにより、境界が参照フレーム中の境界の位置に対応する画素を含まないブロックに広がったとき、当該ブロックを偽境界位置と識別することができる。例えば、境界が左境界である場合、境界アーティファクト識別ユニット68は動き補償中に参照フレームからフェッチされるブロックの左コーナの水平画素座標が左境界幅よりも小さいとき、当該ブロックを偽境界位置と識別する。
実境界修正ユニット70が、実境界位置内の境界アーティファクトを修正する(86)。幾つかの例では、実境界修正ユニット70は画素領域において識別された実境界位置内の境界アーティファクトを修正する。例えば、置換フレーム中の実境界位置内のアーティファクトを修正するために、実境界修正ユニット70は置換フレーム中の実境界位置内の画素値の各々を参照フレーム中の対応する位置からの画素値と置換することができる。このようにして、参照フレームの境界が置換フレームの境界にコピーされる。他の例では、実境界修正ユニット70は、圧縮領域において、実境界位置内の境界アーティファクトを修正する。例えば、実境界修正ユニット70は、実境界位置と識別されたブロックに関連する動きベクトルを0に等しくなるように設定し、それらの動きベクトルを使用して動き補償を実行することによって、境界アーティファクトを修正することができる。
偽境界修正ユニット72が偽境界位置内の境界アーティファクトを修正する(88)。画素領域において偽境界位置を修正するために、偽境界修正ユニット72は1つまたは複数の参照フレームの1つまたは複数の画素値を使用して、偽境界位置内の画素の各々毎に置換画素値を計算することができる。例えば、偽境界修正ユニット72は偽境界位置内の画素の各々毎に、置換されており参照フレーム中の境界にすぐ隣接する置換フレームの画素と同じ行に位置する、参照フレーム中の2つの画素の画素値の平均となる、置換画素値を計算することができる。例えば、圧縮領域において偽境界位置を修正するために、偽境界修正ユニット72はイントラ予測モードを選択し、選択したイントラ予測モードを使用してブロックの画素値を決定する。H.264イントラ予測に加えて、またはそれとは別個に、異なる空間内挿技術を使用して偽境界アーティファクトを修正することもできる。
図6Aおよび図6Bは、識別された境界に沿って画素の1つの行および/または列の境界アーティファクトを修正する際のフレーム置換ユニット52の例示的な動作を示す流れ図である。図6Aおよび図6Bに示す例には、単一の行および/または単一の列に沿った境界アーティファクト修正を示しているが、本技術は複数の行および/または複数の列に対して実行できる。行または列の数は、参照フレーム中の境界の幅に基づいて決定できる。
最初に、フレーム置換ユニット52はフレーム置換について使用される参照フレーム内の境界を検出する(90)。フレーム置換ユニット52は、境界が参照フレームの左側部に沿って延びるかどうか、すなわち、左境界であるかどうかを判断する(92)。参照フレーム中の境界が参照フレームの左側部に沿って延びる場合、すなわち左境界である場合、フレーム置換ユニット52は変数j=1を設定し、置換フレームのブロックMB(1,j)を選択する(94、96)。ブロックMB(1,j)は、第1列および第j行に位置するブロックである。最初はjが1に等しくなるように設定されるので、選択される第1のブロックは置換フレームの第1列および第1行のブロックである。
フレーム置換ユニット52は、ブロックMB(1,j)に関連する動きベクトルのx成分(MVx)が0に等しいかどうかを判断する(98)。ブロックMB(1,j)に関連する動きベクトルは、幾つかの例では、例えば内挿または外挿によって1つまたは複数の参照フレームに関連する動きベクトルに応じて計算され得る。フレーム置換ユニット52は、置換フレームのブロックMB(1,j)に関連する動きベクトルのx成分が0に等しくないと判断したとき、置換フレームのブロックMB(1,j)に関連する動きベクトルのx成分が0よりも大きいと判断する(100)。フレーム置換ユニット52は、置換フレームのブロックMB(1,j)に関連する動きベクトルのx成分が0よりも大きいと判断した場合、偽境界修正を実行する(102)。偽境界修正は、本開示で詳細に説明するように、画素領域または圧縮領域において実行され得る。
偽境界修正を実行した後、またはブロックMB(1,j)に関連する動きベクトルのx成分が0よりも小さいとき、フレーム置換ユニット52は実境界修正を実行する(104)。偽境界修正と同様に、実境界修正は本開示で詳細に説明するように画素領域または圧縮領域において実行され得る。このようにして、フレーム置換ユニット52は異なるタイプの境界アーティファクトを修正するために、異なる境界アーティファクト修正技術を実行および使用する。例えば、実境界位置に関連する境界アーティファクトは実境界修正技術の1つを使用して修正され、偽境界位置に関連する境界アーティファクトは偽境界修正技術の1つを使用して修正される。
実境界修正を実行した後、または上記ブロックに関連する動きベクトルのx成分が0に等しいとき、フレーム置換ユニット52はブロックMB(2,j)に関連する動きベクトルのx成分が0に等しいかどうかを判断する(106)。ブロックMB(2,j)は、第2の列および第jの行に位置するブロックである。言い換えれば、ブロックMB(2,j)は、水平方向にブロックMB(1,j)にすぐ隣接するブロックである。ブロックMB(2,j)に関連する動きベクトルのx成分が0に等しくないとき、フレーム置換ユニット52は、動き補償中に参照フレームからフェッチされるブロックの左側の水平x座標(「ブロックのX」)が左境界の右側のx座標(「境界のX」)よりも小さいかどうかを判断する(108)。フレーム置換ユニット52は、動き補償中に参照フレームからフェッチされるブロックの左側のx座標(「ブロックのX」)が左境界の右側のx座標よりも小さいと判断した場合、ブロックMB(2,j)に対して偽境界修正を実行する(110)。図6Aでは、ある行の第1および第2ブロック、すなわち、ブロックMB(1,j)およびMB(2,j)中の境界アーティファクトのみを分析し、修正している。しかしながら、本技術により複数の行のより多くのブロック、例えばブロックMB(3,j)、MB(4,j)、...、MB(C,j)中の境界アーティファクトを分析し、修正することができる。ここで、Cはフレームの列の数に等しい。
ブロックMB(2,j)に関連する動きベクトルのx成分が0に等しいとき、動き補償中に参照フレームからフェッチされるブロックの左側のx座標(「ブロックのX」)が左境界の右側のx座標よりも小さくないとき、またはブロックMB(2,j)の偽境界修正の後、フレーム置換ユニット52は変数jがNに等しいかどうかを判断する。ここで、Nは第1列のブロックの数である(112)。jがNに等しくないとき、フレーム置換ユニット52は、変数jをインクリメントし(114)、上述のようにしてブロックMB(1,j)を処理する。フレーム置換ユニット52は、jがNに等しくなるまで、すなわち処理すべき残りのブロックがなくなるまで、左の列のブロックを処理し続ける。
jがNに等しいとき、またはブロック(92)において境界が左境界でないと判断されたとき、フレーム置換ユニット52は境界が参照フレームの右側部に沿って延びるかどうか、すなわち右境界であるかどうかを判断する(116)。フレーム置換ユニット52は、参照フレーム中の境界が参照フレームの右側部に沿って延びる、すなわち右境界であると判断した場合、変数j=1を設定し、置換フレームのブロックMB(M,j)を選択する(118、120)。ブロックMB(M,j)は、第M列および第j行に位置するブロックである。最初はjが1に等しくなるように設定されるので、選択される第1のブロックは置換フレームの最後の列および第1行のブロックである。
フレーム置換ユニット52は、ブロックMB(M,j)に関連する動きベクトルのx成分(MVx)が0に等しいかどうかを判断する(122)。ブロックMB(M,j)に関連する動きベクトルは、幾つかの例では例えば内挿または外挿によって、1つまたは複数の参照フレームに関連する動きベクトルに応じて計算され得る。フレーム置換ユニット52は、置換フレームのブロックMB(M,j)に関連する動きベクトルのx成分が0に等しくないと判断したとき、置換フレームのブロックMB(M,j)に関連する動きベクトルのx成分が0よりも小さいと判断する(124)。フレーム置換ユニット52は、置換フレームのブロックMB(M,j)に関連する動きベクトルのx成分が0よりも小さいと判断した場合、偽境界修正を実行する(126)。偽境界修正は、本開示で詳細に説明するように、画素領域または圧縮領域において実行され得る。
偽境界修正を実行した後、またはブロックMB(M,j)に関連する動きベクトルのx成分が0よりも大きいとき、フレーム置換ユニット52は実境界修正を実行する(128)。偽境界修正と同様に、実境界修正は本開示で詳細に説明するように画素領域または圧縮領域において実行できる。このようにして、フレーム置換ユニット52は異なるタイプの境界アーティファクトを修正するために、異なる境界アーティファクト修正技術を実行および使用する。例えば、実境界位置に関連する境界アーティファクトは実境界修正技術の1つを使用して修正され、偽境界位置に関連する境界アーティファクトは偽境界修正技術の1つを使用して修正される。
実境界修正の後、または上記ブロックに関連する動きベクトルのx成分が0に等しいとき、フレーム置換ユニット52はブロックMB(M−1,j)に関連する動きベクトルのx成分が0に等しいかどうかを判断する(130)。ブロックMB(M−1,j)は、最後から2番目の列および第j行に位置するブロックである。言い換えれば、ブロックMB(M−1,j)は負の水平方向においてブロックMB(M,j)にすぐ隣接するブロックである。ブロックMB(M−1,j)に関連する動きベクトルのx成分が0に等しくないとき、フレーム置換ユニット52は動き補償中に参照フレームからフェッチされるブロックの右側の水平x座標(「ブロックのX」)が右境界の左側のx座標(「境界のX」)よりも大きいかどうかを判断する(132)。フレーム置換ユニット52は、動き補償中に参照フレームからフェッチされるブロックの右側の水平x座標(「ブロックのX」)が右境界の左側のx座標(「境界のX」)よりも大きいと判断した場合、ブロックMB(M−1,j)に対して偽境界修正を実行する(134)。
ブロックMB(M−1,j)に関連する動きベクトルのx成分が0に等しいとき、動き補償中に参照フレームからフェッチされるブロックの右側の水平x座標(「ブロックのX」)が右境界の左側のx座標(「境界のX」)よりも大きくないとき、または偽境界修正の後、フレーム置換ユニット52は変数jがNに等しいかどうかを判断する。ここで、Nは第1列のブロックの数である(136)。jがNに等しくないとき、フレーム置換ユニット52は変数jをインクリメントし(138)、ループバックして、上述のようにして次のブロックMB(M,j)を処理する。フレーム置換ユニット52は、jがNに等しくなるまで、すなわち処理すべき残りのブロックがなくなるまで、最後の例えば右の列のブロックを処理し続ける。
図6Bを参照すると、jがNに等しいとき、またはブロック(116)において境界が右境界でないと判断されたとき、フレーム置換ユニット52は境界が参照フレームの上部に沿って延びるかどうか、すなわち上部境界であるかどうかを判断する(140)。フレーム置換ユニット52は、参照フレーム中の境界が参照フレームの上部に沿って延びる、すなわち上部境界であると判断した場合、変数i=1を設定し、置換フレームのブロックMB(i,1)を選択する(142、144)。ブロックMB(i,1)は、第i列および第1行に位置するブロックである。最初はiが1に等しくなるように設定されるので、選択される第1のブロックは置換フレームの第1列および第1行のブロックである。
フレーム置換ユニット52は、ブロックMB(i,1)に関連する動きベクトルのy成分(MVy)が0に等しいかどうかを判断する(146)。ブロックMB(i,1)に関連する動きベクトルは、幾つかの例では例えば内挿または外挿によって、1つまたは複数の参照フレームに関連する動きベクトルに応じて計算され得る。フレーム置換ユニット52は、置換フレームのブロックMB(i,1)に関連する動きベクトルのy成分が0に等しくないと判断したとき、置換フレームのブロックMB(i,1)に関連する動きベクトルのy成分が0よりも大きいと判断する(148)。フレーム置換ユニット52は、置換フレームのブロックMB(i,1)に関連する動きベクトルのy成分が0よりも大きいと判断した場合、偽境界修正を実行する(150)。偽境界修正は、本開示で詳細に説明するように、画素領域または圧縮領域において実行され得る。
偽境界修正を実行した後、またはブロックMB(i,1)に関連する動きベクトルのy成分が0よりも小さいとき、フレーム置換ユニット52は実境界修正を実行する(152)。偽境界修正と同様に、実境界修正は本開示で詳細に説明するように、画素領域または圧縮領域において実行され得る。このようにして、フレーム置換ユニット52は異なるタイプの境界アーティファクトを修正するために、異なる境界アーティファクト修正技術を実行および使用する。例えば、実境界位置に関連する境界アーティファクトは、実境界修正技術の1つを使用して修正され、偽境界位置に関連する境界アーティファクトは、偽境界修正技術の1つを使用して修正される。
実境界修正の後、または上記ブロックに関連する動きベクトルのy成分が0に等しいとき、フレーム置換ユニット52はブロックMB(i,2)に関連する動きベクトルのy成分が0に等しいかどうかを判断する(154)。ブロックMB(i,2)は、第i列および第2行に位置するブロックである。言い換えれば、ブロックMB(i,2)は垂直下方向においてブロックMB(i,1)にすぐ隣接するブロックである。ブロックMB(i,2)に関連する動きベクトルのy成分が0に等しくないとき、フレーム置換ユニット52は、動き補償中に参照フレームからフェッチされるブロックの上側の垂直y座標(「ブロックのY」)が上部境界の下側のy座標(「境界のY」)よりも小さいかどうかを判断する(156)。フレーム置換ユニット52は、動き補償中に参照フレームからフェッチされるブロックの上側の垂直y座標(「ブロックのY」)が上部境界の下側のy座標(「境界のY」)よりも小さいと判断した場合、ブロックMB(i,1)に対して偽境界修正を実行する(158)。
ブロックMB(i,2)に関連する動きベクトルのy成分が0に等しいとき、動き補償中に参照フレームからフェッチされるブロックの上側の垂直y座標(「ブロックのY」)が上部境界の下側のy座標(「境界のY」)よりも小さくないとき、または偽境界修正の後、フレーム置換ユニット52は変数iがMに等しいかどうかを判断する。ここで、Mは第1行のブロックの数である(160)。iがMに等しくないとき、フレーム置換ユニット52は変数jをインクリメントし(162)、上述のようにしてブロックMB(i,1)を処理する。フレーム置換ユニット52は、iがMに等しくなるまで、すなわち処理すべき残りのブロックがなくなるまで、上部の行のブロックを処理し続ける。
iがMに等しいとき、またはブロック(140)において境界が上部境界でないと判断されたとき、フレーム置換ユニット52は境界が参照フレームの下部に沿って延びるかどうか、すなわち下部境界であるかどうかを判断する(163)。フレーム置換ユニット52は、参照フレーム中の境界が参照フレームの下部に沿って延びる、すなわち下部境界であると判断した場合、変数i=1を設定し、置換フレームのブロックMB(i,N)を選択する(164、165)。ブロックMB(i,N)は、第i列および第M行に位置するブロックである。最初はiが1に等しくなるように設定されるので、選択される第1のブロックは置換フレームの第1列および最後の行のブロックである。
フレーム置換ユニット52は、ブロックMB(i,N)に関連する動きベクトルのy成分(MVy)が0に等しいかどうかを判断する(166)。ブロックMB(i,N)に関連する動きベクトルは、幾つかの例では例えば内挿または外挿によって、1つまたは複数の参照フレームに関連する動きベクトルに応じて計算され得る。フレーム置換ユニット52は、置換フレームのブロックMB(i,N)に関連する動きベクトルのy成分が0に等しくないと判断したとき、置換フレームのブロックMB(i,N)に関連する動きベクトルのy成分が0よりも小さいと判断する(168)。フレーム置換ユニット52は、置換フレームのブロックMB(i,N)に関連する動きベクトルのy成分が0よりも小さいと判断した場合、偽境界修正を実行する(170)。偽境界修正は、本開示で詳細に説明するように、画素領域または圧縮領域において実行され得る。
偽境界修正を実行した後、またはブロックMB(1,N)に関連する動きベクトルのy成分が0よりも大きいとき、フレーム置換ユニット52は実境界修正を実行する(172)。偽境界修正と同様に、実境界修正は本開示で詳細に説明するように画素領域または圧縮領域において実行され得る。このようにして、フレーム置換ユニット52は異なるタイプの境界アーティファクトを修正するために異なる境界アーティファクト修正技術を使用する。例えば、実境界位置に関連する境界アーティファクトは実境界修正技術の1つを使用して修正され得、偽境界位置に関連する境界アーティファクトは偽境界修正技術の1つを使用して修正される。
実境界修正の後、または上記ブロックに関連する動きベクトルのy成分が0に等しいとき、フレーム置換ユニット52はブロックMB(i,N−1)に関連する動きベクトルのy成分が0に等しいかどうかを判断する(174)。ブロックMB(i,N−1)は、第i列および最後から2番目の行に位置するブロックである。言い換えれば、ブロックMB(i,N−1)は負の垂直上方向においてブロックMB(i,N−1)にすぐ隣接するブロックである。ブロックMB(i,N−1)に関連する動きベクトルのy成分が0に等しくないとき、フレーム置換ユニット52は動き補償中に参照フレームからフェッチされるブロックの下側の垂直y座標(「ブロックのY」)が下部境界の上側のy座標(「境界のY」)よりも大きいかどうかを判断する(156)。フレーム置換ユニット52は、動き補償中に参照フレームからフェッチされるブロックの下側の垂直y座標(「ブロックのY」)が下部境界の上側のy座標(「境界のY」)よりも大きいと判断した場合、ブロックMB(i,N)に対して偽境界修正を実行する(178)。
ブロックMB(i,N−1)に関連する動きベクトルのy成分が0に等しいとき、動き補償中に参照フレームからフェッチされるブロックの下側の垂直y座標(「ブロックのY」)が下部境界の上側のy座標(「境界のY」)よりも大きいとき、または偽境界修正の後、フレーム置換ユニット52は変数iがMに等しいかどうかを判断する。ここで、Mは第1行のブロックの数である(180)。iがMに等しくないとき、フレーム置換ユニット52は変数iをインクリメントし(182)、上述のようにしてブロックMB(i,N)を処理する。フレーム置換ユニット52は、iがMに等しくなるまで、すなわち処理すべき残りのブロックがなくなるまで、下部の行のブロックを処理し続ける。
図7は、画素領域において偽境界置換を実行するフレーム置換ユニット52の例示的な動作を示す流れ図である。上述のように、偽境界アーティファクト修正は偽境界位置、例えば参照ビデオフレーム内に存在しないが、動き補償内挿により置換フレームまで広がった境界に対応する位置に関連する境界アーティファクトを修正するために実行される。
境界アーティファクト識別ユニット68は、最初に置換フレームの画素のブロック内の偽境界位置を識別する(190)。上記で詳細に説明したように、境界アーティファクト識別ユニット68は境界の幅とブロックに関連する動きベクトルの値とを使用して偽境界位置を識別することができる。例えば、左境界の場合、偽境界位置は、start_xから開始し、end_xにおいて終了する、ブロック中の画素の列を含むことができ、ここで、start_xおよびend_xは、以下の式によって定義できる。
start_x=Left_B_width+1 (1)
end_x=Left_B_width+1+mv_x, (2)
ここで、Left_B_widthは左境界の境界幅であり、mv_xは画素の当該ブロックに関連する動きベクトルのx成分の値である。従って、ブロック中の画素の行の各々は、偽境界位置内のend_x-start_x+1個の画素を含む。偽境界位置内の画素の総数は、(end_x-start_x+1)*v_block_sizeに等しい。ここで、v_block_sizeはブロックの垂直寸法である。
偽境界修正ユニット72は、偽境界位置内の画素の画素値の各々を置換画素値と置換する。一態様では、偽境界修正ユニット72はx座標(x)をstart_xに等しくなるように設定し、y座標(y)を1に等しくなるように設定することによって、偽境界位置内の画素値を置換する(192)。偽境界修正ユニット72は、偽境界位置内の画素の置換画素値psub(x,y)を決定する(194)。偽境界修正ユニット72は、例えば以下の式を使用して位置(x,y)にある画素の置換画素値を決定することができる。
psub(x,y)=(pref(end_x+1,y)+pref(end_x+2,y))/2 (3)
ここで、psub(x,y)は置換フレーム内の位置(x,y)にある画素の置換画素値であり、pref(end_x+1,y)は参照フレーム中の位置(end_x+1,y)にある画素の画素値であり、pref(end_x+2,y)は参照フレーム中の位置(end_x+2,y)における画素位置の画素値である。上述のように、pref(end_x+1,y)およびpref(end_x+2,y)は置換フレーム中で置換され、参照フレーム中の境界にすぐ隣接する画素としての、参照フレームの同じ行に位置する複数の画素の画素値である。言い換えれば、置換画素値は参照フレーム中の境界の後にくる、第1の画素の画素値と第2の画素の画素値、それぞれpref(end_x+1,y)とpref(end_x+2,y)の平均として計算される。偽境界修正ユニット72は、式(4)および式(5)によって表される技術など、他の技術を使用して位置(x,y)にある画素の置換画素値を決定することができる。
psub(x,y)=pref(end_x+1,y) (4)
psub(x,y)=(K1 * pref(end_x+1,y)+K2 * pref(end_x+2,y))(5)
ここで、K1およびK2は係数である。言い換えれば、式(4)はあらゆる置換画素に対して境界の後の第1の画素の画素値を使用することを表し、式(5)は置換画素値として画素値の重み付け和を使用することを表す。
偽境界修正ユニット72は、偽境界位置内の選択された画素の画素値を置換画素値と置換する(196)。偽境界修正ユニット72は、xがend_xに等しいかどうかを判断する(198)。xがend_xに等しくなく、置換する必要がある画素値が現在の行にあることが示されたとき、偽境界修正ユニット72はxをインクリメントし(200)、その行に沿った次の画素の置換画素値を決定する。
xがend_xに等しく、置換する必要がある画素値が偽境界位置のその行に残っていないことが示された場合、偽境界修正ユニット72は、yが垂直寸法のブロックサイズ(v_block_size)に等しいかどうかを判断する(202)。yが垂直寸法のブロックサイズ(v_block_size)に等しくなく、置換する必要がある画素値が少なくとも1つの他の列にあることが示されたとき、偽境界修正ユニット72はyをインクリメントし(204)、xをstart_xに等しくなるように設定する(206)。次いで、偽境界修正ユニット72は次の行に沿った画素の置換画素値を決定する。yがv_block_sizeに等しく、置換する必要がある偽境界位置の画素値が残っていないことが示された場合、偽境界修正ユニット72は修正された置換フレームの画素値を出力フレームバッファに記憶する(208)。
図8は、画素領域において実境界置換を実行するフレーム置換ユニット52の例示的な動作を示す流れ図である。上述のように、実境界アーティファクト修正は実境界位置、例えば参照ビデオフレーム内に存在し置換フレーム中にも存在するはずの境界に対応する位置に関連する境界アーティファクトを修正するために実行される。
境界アーティファクト識別ユニット68は、置換フレームの画素のブロック内の実境界位置を識別する(210)。境界アーティファクト識別ユニット68は、参照フレーム中の境界の幅を使用して実境界を識別することができる。例えば、参照フレーム内の左境界の場合、境界アーティファクト修正により置換フレーム中のブロックの画素の最左のb_widthの数の列を実境界位置と識別することができる。実境界置換ユニット70は、変数x=1および変数y=1を設定する。ここで、xおよびyはそれぞれx方向およびy方向の画素の位置座標である(212)。
実境界置換ユニット70は、実境界位置内の画素の画素値psub(x,y)を参照フレーム内の対応する位置における画素の画素値pref(x,y)に等しくなるように設定する(214)。実境界修正ユニット70は、xが境界幅(b_width)に等しいかどうかを判断する(216)。xが境界幅(b_width)に等しくなく、置換する必要がある画素値が実境界位置内にあることが示されたとき、実境界修正ユニット70はxをインクリメントする(218)。実境界修正ユニット70は、xが境界幅(b_width)に等しくなるまで実境界位置内の画素の行の画素値を参照フレーム内の対応する位置における画素の画素値に等しくなるように設定し続ける。
xが境界幅(b_width)に等しいとき、実境界修正ユニット70はyがブロックのブロックサイズ(block_size)に等しいかどうかを判断する(220)。yがブロックのブロックサイズ(block_size)に等しくなく、置換する必要がある画素の少なくとも1つの行が実境界位置内に残っていることが示された場合、実境界修正ユニット70はyをインクリメントし(222)、xを1に等しくなるように設定する(224)。次いで、実境界修正ユニット70は次の行に沿った画素の置換画素値を決定する。yがblock_sizeに等しく、置換する必要がある画素値が実境界位置内に残っていないことが示された場合、実境界修正ユニット70は、その画素値を出力フレームバッファに記憶する(226)。
図9は、圧縮領域において実境界置換を実行するフレーム置換ユニット52の例示的な動作を示す流れ図である。境界アーティファクト識別ユニット68は、最初に置換フレーム内の実境界位置を識別する(230)。圧縮領域では、実境界位置は参照フレーム内に存在する境界に対応する少なくとも1つの画素を含むと識別されたブロックとされ得る。例えば、複数の4×4ブロックを含んでいるフレームの左側部に沿って境界があり、その境界が7画素の幅を有すると仮定すると、境界アーティファクト検出モジュール18は4×4ブロックの最初の2つの列のブロックの各々を実境界位置と識別する。ブロックの画素の一部分のみが実境界位置内にあると判断された画素領域とは異なり、ブロックの画素の一部が参照フレームの境界に実際は対応しない場合でも、当該ブロック全体が実境界位置であると見なされる。上記の例では、4×4ブロックの第2列は参照フレーム中に存在する境界に対応する画素の3つの列のみを含むが、当該ブロック全体が実境界位置であると判断される。
実境界修正ユニット70は、実境界アーティファクトのブロックに関連する動きベクトルを0に等しくなるように設定する(232)。フレーム置換ユニット52は、当該ブロックに関連する動きベクトルを使用して、実境界位置と識別されたブロックを生成する(234)。アーティファクト修正中、当該ブロックに関連する動きベクトルは0に設定されたので、当該ブロックは参照フレームの対応するブロックのコピーである。
図10は、圧縮領域において偽境界置換を実行するフレーム置換ユニット52の例示的な動作を示す流れ図である。境界アーティファクト識別ユニット68は、最初に偽境界位置を識別する(240)。圧縮領域では、偽境界位置は置換フレーム内には存在するが、例えば、動き補償内挿により参照フレーム中には存在しない、境界に対応する少なくとも1つの画素を含むと識別されたブロックとされ得る。参照フレームが偽境界アーティファクトを含む場合でも、そのフレーム中の実境界に対応する少なくとも幾つかの画素を含むブロックは、偽境界位置と分類されない。これは、実境界アーティファクト修正中に例えばブロックの動きベクトルを0に等しくなるように設定することによって、ブロック中の偽境界アーティファクトが修正されるからである。
実境界修正ユニット70は、偽境界位置と識別されたブロックについてイントラ予測モードを選択する(242)。フレーム置換ユニット52は、選択されたイントラ予測モードを使用してイントラ予測を行って偽境界位置と識別されたブロックを生成する(244)。偽境界位置と識別されたブロックについて選択されるイントラ予測モードは、境界の位置、例えば境界がフレームの上部に沿っているか、下部に沿っているか、左側部に沿っているか、または右側部に沿っているかに依存することができる。H.264におけるイントラ予測では、予測のために因果的画素(例えば、隣接ブロックの画素)が存在する必要があるので、様々なイントラ予測モードを使用して様々な境界位置を修正することができる。
例えば、フレームの下部(すなわち、南)または右側部に沿って位置する境界の場合は、因果的ネイバーがそれらの4×4ブロックについて存在するので、イントラ予測を使用することができる。しかしながら、フレームの上部(すなわち、北)および左側部に沿った境界位置の場合は、4×4ブロック因果的ネイバーが黒い境界であり、黒い境界から予測するとその黒いエリアが4×4ブロックに広がる。偽境界位置がフレームの下部または上部に沿っている場合、修正のためにイントラ4×4垂直モードを選択することができる。偽境界位置がフレームの左または右側部に沿っている場合、修正のためにイントラ4×4水平モードを選択することができる。ただし、修正のために他のモードを選択することができる。
図11A〜図11Cは、圧縮領域における修正の様々な段階後の置換フレームを示す図である。図11Aは、フレーム置換中、例えば動き補償中に生成される境界アーティファクトを含む置換フレームを示す。図11Aに示すように、置換フレームの2つのブロックは、他の位置においてよりもそのフレーム内にさらに延びる境界を含む。
図11Bは、圧縮領域において実境界修正を実行した後の置換フレームを示す。上述のように、実境界修正ユニット70は実境界位置と識別されたブロックに関連する動きベクトルを0に等しくなるように設定することによって、実境界位置を修正することができる。圧縮領域における実境界修正中に、置換フレーム中のブロックの第1列が参照フレームからコピーされ、その結果、置換フレーム中のブロックの第1列に沿った境界は参照フレーム中のブロックの第1列と同じになる。ただし、図11Bに示すように列2、行4および5のブロック内の偽境界アーティファクトは依然として残る。
これらの偽境界アーティファクトを修正するために、偽境界修正ユニット72がそれらのブロックについてイントラ予測モードを選択する。それらのブロックについて選択されたイントラ予測モードを適用した後、それらの偽境界アーティファクトは除去されて図11Cに示す置換フレームが得られ、その置換フレームはその置換フレームが生成された元の参照フレームの境界と実質的に同様の境界を有する。
本明細書で説明した技術は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。モジュール、ユニット、またはコンポーネントとして説明する特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。場合によっては、様々な特徴は集積回路チップまたはチップセットなどの集積回路デバイスとして実装され得る。ソフトウェアで実装した場合、本技術は実行されると上記で説明した方法の1つまたは複数をプロセッサに実行させる命令を備えるコンピュータ可読媒体によって少なくとも部分的に実現され得る。
コンピュータ可読媒体は、パッケージング材料を含むことがあるコンピュータプログラム製品の一部をなすことができる。コンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、同期ダイナミックランダムアクセスメモリ(SDRAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、磁気または光学データ記憶媒体などのコンピュータデータ記憶媒体を備えることができる。本技術は、追加または代替として、命令またはデータ構造の形態でコードを搬送または伝達し、コンピュータによってアクセス、読取り、および/または実行できるコンピュータ可読通信媒体によって、少なくとも部分的に実現され得る。
コードまたは命令は、1つまたは複数のDSP、汎用マイクロプロセッサ、ASIC、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技術の実装に好適な他の構造のいずれかを指す。さらに、幾つかの態様では、本明細書で説明する機能を専用のソフトウェアモジュールまたはハードウェアモジュールの内部に与えることができる。本開示は、また本開示で説明した技術の1つまたは複数を実装する回路を含む様々な集積回路デバイスのいずれかを企図する。そのような回路は、単一の集積回路チップ、またはいわゆるチップセット中の複数の相互運用可能な集積回路チップで提供できる。そのような集積回路デバイスは様々な適用例において使用され得、適用例の幾つかは携帯電話ハンドセットなどの無線通信デバイスでの使用を含む。
開示する技術の様々な態様について説明した。これらおよび他の態様は以下の特許請求の範囲内に入る。

Claims (52)

  1. 境界アーティファクトを含む置換ビデオユニットの位置を識別するために前記置換ビデオユニットを分析することと、
    前記置換ビデオユニットの前記識別された位置内の前記境界アーティファクトを修正することと、
    を備える方法。
  2. 境界アーティファクトを含む置換ビデオユニットの位置を識別するために前記置換ビデオユニットを分析することは、
    参照ビデオユニット内には存在し前記置換ビデオユニット中には存在しない境界と対応する第1の境界アーティファクトを含む、前記置換ビデオユニット内の第1の位置を識別することと、
    前記置換ビデオユニット内には存在し前記参照ビデオユニット内には存在しない境界と対応する第2の境界アーティファクトを含む、前記置換ビデオユニット内の第2の位置を識別することと、を備え、
    前記識別された位置内の前記境界アーティファクトを修正することは、
    第1の境界アーティファクト修正技術を使用して前記置換ビデオユニットの前記第1の位置内の境界アーティファクトを修正することと、
    第2の境界アーティファクト修正技術を使用して前記置換ビデオユニットの前記第2の位置内の境界アーティファクトを修正することと、
    を備える請求項1に記載の方法。
  3. 前記第1および第2の位置内の境界アーティファクトを修正することは、画素領域において前記第1および第2の位置内の境界アーティファクトを修正することを備える請求項2に記載の方法。
  4. 前記第1の位置内の境界アーティファクトを修正することは、前記置換ビデオユニットの前記第1の位置内の画素の画素値を前記参照ビデオユニット内に存在する前記境界の画素値と実質的に同様である画素値と置換することを備え、
    前記第2の位置内の境界アーティファクトを修正することは、前記第2の位置内の画素の画素値を前記参照ビデオユニット中に存在する前記境界に隣接する1つまたは複数の画素値の平均として計算された画素値と置換することを備える請求項3に記載の方法。
  5. 前記置換ビデオユニットの前記第1の位置内の画素の画素値を置換することは、前記置換ビデオユニットの前記第1の位置内の画素の前記画素値を前記参照ビデオユニット中の対応する位置内の画素値のコピーと置換すること、または前記置換ビデオユニットの前記第1の位置内の画素の前記画素値を所定の境界画素値と置換することのうちの1つを備える請求項4に記載の方法。
  6. 前記第1および第2の位置内の境界アーティファクトを修正することは、前記置換ビデオユニットの前記画素値を内挿または外挿する前に前記第1および第2の位置内の境界アーティファクトを修正することを備える請求項2に記載の方法。
  7. 前記第1の位置内の境界アーティファクトを修正することは、
    前記第1の位置のそれぞれのブロックに関連する動きベクトルを0に等しくなるように設定することと、
    前記それぞれのブロックに関連する前記動きベクトルを使用して前記第1の位置の前記ブロックについてインター予測を実行することと、を備え、
    前記第2の位置内の境界アーティファクトを修正することは、
    前記置換フレームの前記第2の位置のブロックについてイントラ予測モードを選択することと、
    前記選択されたイントラ予測モードを使用してイントラ予測を実行することと、を備える請求項6に記載の方法。
  8. 前記置換ビデオユニット内の前記第1の位置を識別することは、
    前記参照ビデオユニット内に存在する前記境界が前記参照ビデオユニットの左側部または右側部に沿っているときは、前記置換フレームの画素のW列を前記第1の位置と識別することと、
    前記参照ビデオユニット内に存在する前記境界が前記参照ビデオユニットの上部または下部に沿っているときは、前記置換フレームの画素のW行を前記第1の位置と識別することとを備え、
    Wは、前記参照ビデオユニット内に存在する前記境界の幅である請求項2に記載の方法。
  9. 前記置換ビデオユニット内の前記第2の位置を識別することは、
    前記それぞれのブロックの前記動きベクトルのx成分であるMVxが0に等しくないときは、画素の前記W列に隣接する前記置換フレームの画素のMVx列を前記第2の位置と識別することと、
    前記それぞれのブロックの前記動きベクトルのy成分であるMVyが0に等しくないときは、画素の前記W行に隣接する前記置換フレームの画素のMVy行を前記第2の位置と識別することと、を備える請求項8に記載の方法。
  10. 前記置換ビデオユニット内の前記第1の位置を識別することは、
    シーリング関数はW/Nの次に大きい整数を出力し、ここでWは前記参照フレーム中の前記境界の幅であり、Nはx方向に沿ったブロックサイズである、L=シーリング(W,N)を計算することと、
    前記参照ビデオユニット内に存在する前記境界が前記参照ビデオユニットの左側部または右側部に沿っているときは、前記置換フレームのブロックのL列を前記第1の位置と識別することと、
    シーリング関数はW/Mの次に大きい整数を出力し、ここでWは前記参照フレーム中の前記境界の前記幅であり、Mはy方向に沿ったブロックサイズである、K=シーリング(W,M)を計算することと、
    前記参照ビデオユニット内に存在する前記境界が前記参照ビデオユニットの上部または下部に沿っているときは、前記置換フレームの画素のK行を前記第1の位置と識別することと、を備える請求項2に記載の方法。
  11. 前記置換ビデオユニット中の前記第1の位置を識別することは、
    WがNの倍数であるときはブロックの前記L列に隣接するブロックの列を第1の境界位置と識別することと、
    WがMの倍数であるときはブロックの前記K行に隣接するブロックの行を第1の境界位置と識別することと、をさらに備える請求項10に記載の方法。
  12. 前記置換ビデオユニット内の前記第2の位置を識別することは、
    ブロックの前記L列に隣接するブロックの列の少なくとも一部分を前記ブロックのx座標と前記境界位置のx座標とに基づいて第2の境界位置と識別することと、
    ブロックの前記K行に隣接するブロックの行の少なくとも一部分を前記ブロックのy座標と前記境界位置のy座標とに基づいて第2の境界位置と識別することと、を備える請求項10に記載の方法。
  13. 前記第1の位置は実境界位置を備え、
    前記第2の位置は偽境界位置を備える、請求項2に記載の方法。
  14. 境界アーティファクトを含む置換ビデオユニットの位置を識別するために前記置換ビデオユニットを分析することは、前記境界中の画素を含み境界アーティファクトを含まない、前記置換ビデオユニットの位置を識別しないことを備える請求項1に記載の方法。
  15. 動き補償内挿および動き補償外挿のうちの1つを使用して前記置換ビデオユニットを生成すること、をさらに備える請求項1に記載の方法。
  16. 前記置換ビデオユニットは、置換ビデオフレーム、置換ビデオスライス、または置換ビデオブロックのうちの1つを備える請求項1に記載の方法。
  17. 境界アーティファクトを含む置換ビデオユニットの位置を識別するために前記置換ビデオユニットを分析する境界アーティファクト識別ユニットと、
    前記置換ビデオユニットの前記識別された位置内の前記境界アーティファクトを修正する境界アーティファクト修正ユニットと、
    を備える装置。
  18. 前記境界アーティファクト識別ユニットは、参照ビデオユニット内には存在し前記置換ビデオユニット中には存在しない境界と対応する第1の境界アーティファクトを含む、前記置換ビデオユニット内の第1の位置を識別し、前記置換ビデオユニット内には存在し前記参照ビデオユニット内には存在しない境界と対応する第2の境界アーティファクトを含む、前記置換ビデオユニット内の第2の位置を識別し、
    前記境界アーティファクト修正ユニットは、第1の境界アーティファクト修正技術を使用して前記置換ビデオユニットの前記第1の位置内の境界アーティファクトを修正し、第2の境界アーティファクト修正技術を使用して前記置換ビデオユニットの前記第2の位置内の境界アーティファクトを修正する請求項17に記載の装置。
  19. 前記境界アーティファクト修正ユニットは、画素領域において前記第1および第2の位置内の境界アーティファクトを修正する請求項18に記載の装置。
  20. 前記境界アーティファクト修正ユニットは、
    前記置換ビデオユニットの前記第1の位置内の画素の画素値を前記参照ビデオユニット内に存在する前記境界の画素値と実質的に同様である画素値と置換し、
    前記第2の位置内の画素の画素値を前記参照ビデオユニット中に存在する前記境界に隣接する1つまたは複数の画素値の平均として計算された画素値と置換する請求項19に記載の装置。
  21. 前記境界アーティファクト修正ユニットは、前記置換ビデオユニットの前記第1の位置内の画素の画素値を前記参照ビデオユニット中の対応する位置内の画素値のコピーと置換することによって、または前記置換ビデオユニットの前記第1の位置内の画素の前記画素値を所定の境界画素値と置換することによって、前記置換ビデオユニットの前記第1の位置内の画素の前記画素値を置換する請求項20に記載の装置。
  22. 前記境界アーティファクト修正ユニットは、前記置換ビデオユニットの前記画素値を内挿または外挿する前に前記第1および第2の位置内の境界アーティファクトを修正する請求項18に記載の装置。
  23. 前記境界アーティファクト修正ユニットは、
    前記第1の位置のそれぞれのブロックに関連する動きベクトルを0に等しくなるように設定し、
    前記それぞれのブロックに関連する前記動きベクトルを使用して前記第1の位置の前記ブロックについてインター予測を実行し、
    前記置換フレームの前記第2の位置のブロックについてイントラ予測モードを選択し、
    前記選択されたイントラ予測モードを使用してイントラ予測を実行する請求項22に記載の装置。
  24. 前記境界アーティファクト識別ユニットは、
    前記参照ビデオユニット内に存在する前記境界が前記参照ビデオユニットの左側部または右側部に沿っているときは、前記置換フレームの画素のW列を前記第1の位置と識別し、
    前記参照ビデオユニット内に存在する前記境界が前記参照ビデオユニットの上部または下部に沿っているときは、前記置換フレームの画素のW行を前記第1の位置と識別し、
    Wは、前記参照ビデオユニット内に存在する前記境界の幅である請求項18に記載の装置。
  25. 前記境界アーティファクト識別ユニットは、
    前記それぞれのブロックの前記動きベクトルのx成分であるMVxが0に等しくないときは、画素の前記W列に隣接する前記置換フレームの画素のMVx列を前記第2の位置と識別し、
    前記それぞれのブロックの前記動きベクトルのy成分であるMVyが0に等しくないときは、画素の前記W行に隣接する前記置換フレームの画素のMVy行を前記第2の位置と識別する請求項24に記載の装置。
  26. 前記境界アーティファクト識別ユニットは、
    シーリング関数はW/Nの次に大きい整数を出力し、ここでWは前記参照フレーム中の前記境界の幅であり、Nはx方向に沿ったブロックサイズである、L=シーリング(W,N)を計算し、
    前記参照ビデオユニット内に存在する前記境界が前記参照ビデオユニットの左側部または右側部に沿っているときは、前記置換フレームのブロックのL列を前記第1の位置と識別し、
    シーリング関数はW/Mの次に大きい整数を出力し、ここでWは前記参照フレーム中の前記境界の前記幅であり、Mはy方向に沿ったブロックサイズである、K=シーリング(W,M)を計算し、
    前記参照ビデオユニット内に存在する前記境界が前記参照ビデオユニットの上部または下部に沿っているときは、前記置換フレームの画素のK行を前記第1の位置と識別する請求項18に記載の装置。
  27. 前記境界アーティファクト識別ユニットは、
    WがNの倍数であるときは、ブロックの前記L列に隣接するブロックの列を第1の境界位置と識別し、
    WがMの倍数であるときは、ブロックの前記K行に隣接するブロックの行を第1の境界位置と識別する請求項26に記載の装置。
  28. 前記境界アーティファクト識別ユニットは、
    ブロックの前記L列に隣接するブロックの列の少なくとも一部分を前記ブロックのx座標と前記境界位置のx座標とに基づいて第2の境界位置と識別し、
    ブロックの前記K行に隣接するブロックの行の少なくとも一部分を前記ブロックのy座標と前記境界位置のy座標とに基づいて第2の境界位置と識別する請求項26に記載の装置。
  29. 前記第1の位置は実境界位置を備え、
    前記第2の位置は偽境界位置を備える請求項18に記載の装置。
  30. 前記境界アーティファクト識別ユニットは、前記境界中の画素を含み境界アーティファクトを含まない、前記置換ビデオユニットの位置を識別しない請求項18に記載の装置。
  31. 動き補償内挿および動き補償外挿のうちの1つを使用して前記置換ビデオユニットを生成すること、をさらに備える請求項18に記載の装置。
  32. 前記置換ビデオユニットは、置換ビデオフレーム、置換ビデオスライス、または置換ビデオブロックのうちの1つを備える請求項18に記載の装置。
  33. 前記装置は無線通信デバイスを備える請求項18に記載の装置。
  34. 前記装置は集積回路を備える請求項18に記載の装置。
  35. 実行されると、少なくとも1つのプロセッサに、
    境界アーティファクトを含む置換ビデオユニットの位置を識別するために前記置換ビデオユニットを分析することと、
    前記置換ビデオユニットの前記識別された位置内の前記境界アーティファクトを修正することと、を行わせる命令を備えるコンピュータ可読媒体。
  36. 置換ビデオユニットを分析するための命令は、
    参照ビデオユニット内には存在し前記置換ビデオユニット中には存在しない境界と対応する第1の境界アーティファクトを含む、前記置換ビデオユニット内の第1の位置を識別することと、
    前記置換ビデオユニット内には存在し前記参照ビデオユニット内には存在しない境界と対応する第2の境界アーティファクトを含む、前記置換ビデオユニット内の第2の位置を識別することと、を行うための命令を備え、
    前記識別された位置内の前記境界アーティファクトを修正するための命令は、
    第1の境界アーティファクト修正技術を使用して前記置換ビデオユニットの前記第1の位置内の境界アーティファクトを修正することと、
    第2の境界アーティファクト修正技術を使用して前記置換ビデオユニットの前記第2の位置内の境界アーティファクトを修正することと、を行うための命令を備える請求項35に記載のコンピュータ可読媒体。
  37. 前記第1の位置内の境界アーティファクトを修正することを前記プロセッサに行わせる命令は、前記置換ビデオユニットの前記第1の位置内の画素の画素値を前記参照ビデオユニット内に存在する前記境界の画素値と実質的に同様である画素値と置換することを前記プロセッサに行わせる命令を備え、
    前記第2の位置内の境界アーティファクトを修正することを前記プロセッサに行わせる命令は、前記第2の位置内の画素の画素値を、前記参照ビデオユニット中に存在する前記境界に隣接する1つまたは複数の画素値の平均として計算された画素値と置換することを前記プロセッサに行わせる命令を備える請求項36に記載のコンピュータ可読媒体。
  38. 前記第1の位置内の境界アーティファクトを修正することを前記プロセッサに行わせる命令は、
    前記第1の位置のそれぞれのブロックに関連する動きベクトルを0に等しくなるように設定することと、
    前記それぞれのブロックに関連する前記動きベクトルを使用して前記第1の位置の前記ブロックについてインター予測を実行することと、を前記プロセッサに行わせる命令を備え、
    前記第2の位置内の境界アーティファクトを修正することは、
    前記置換フレームの前記第2の位置のブロックについてイントラ予測モードを選択することと、
    前記選択されたイントラ予測モードを使用してイントラ予測を実行することと、を備える請求項36に記載のコンピュータ可読媒体。
  39. 前記置換ビデオユニット内の前記第1の位置を識別することを前記プロセッサに行わせる命令は、
    前記参照ビデオユニット内に存在する前記境界が前記参照ビデオユニットの左側部または右側部に沿っているときは、前記置換フレームの画素のW列を前記第1の位置と識別することと、
    前記参照ビデオユニット内に存在する前記境界が前記参照ビデオユニットの上部または下部に沿っているときは、前記置換フレームの画素のW行を前記第1の位置と識別することと、を前記プロセッサに行わせる命令を備え、
    Wは、前記参照ビデオユニット内に存在する前記境界の幅である請求項36に記載のコンピュータ可読媒体。
  40. 前記置換ビデオユニット内の前記第2の位置を識別することを前記プロセッサに行わせる命令は、
    前記それぞれのブロックの前記動きベクトルのx成分であるMVxが0に等しくないときは、画素の前記W列に隣接する前記置換フレームの画素のMVx列を前記第2の位置と識別することと、
    前記それぞれのブロックの前記動きベクトルのy成分であるMVyが0に等しくないときは、画素の前記W行に隣接する前記置換フレームの画素のMVy行を前記第2の位置と識別することと、を前記プロセッサに行わせる命令を備える請求項36に記載のコンピュータ可読媒体。
  41. 前記置換ビデオユニット内の前記第1の位置を識別することを前記プロセッサに行わせる命令は、
    シーリング関数はW/Nの次に大きい整数を出力し、ここでWは前記参照フレーム中の前記境界の幅であり、Nはx方向に沿ったブロックサイズである、L=シーリング(W,N)を計算することと、
    前記参照ビデオユニット内に存在する前記境界が前記参照ビデオユニットの左側部または右側部に沿っているときは、前記置換フレームのブロックのL列を前記第1の位置と識別することと、
    シーリング関数はW/Mの次に大きい整数を出力し、ここでWは前記参照フレーム中の前記境界の前記幅であり、Mはy方向に沿ったブロックサイズである、K=シーリング(W,M)を計算することと、
    前記参照ビデオユニット内に存在する前記境界が前記参照ビデオユニットの上部または下部に沿っているときは、前記置換フレームの画素のK行を前記第1の位置と識別することと、を前記プロセッサに行わせる命令を備える請求項36に記載のコンピュータ可読媒体。
  42. 前記置換ビデオユニット中の前記第1の位置を識別することを前記プロセッサに行わせる命令は、
    WがNの倍数であるときは、ブロックの前記L列に隣接するブロックの列を第1の境界位置と識別することと、
    WがMの倍数であるときは、ブロックの前記K行に隣接するブロックの行を第1の境界位置と識別することと、を前記プロセッサに行わせる命令をさらに備える請求項41に記載のコンピュータ可読媒体。
  43. 前記置換ビデオユニット内の前記第2の位置を識別することを前記プロセッサに行わせる命令は、
    ブロックの前記L列に隣接するブロックの列の少なくとも一部分を前記ブロックのx座標と前記境界位置のx座標とに基づいて第2の境界位置と識別することと、
    ブロックの前記K行に隣接するブロックの行の少なくとも一部分を前記ブロックのy座標と前記境界位置のy座標とに基づいて第2の境界位置と識別することと、を前記プロセッサに行わせる命令を備える請求項42に記載のコンピュータ可読媒体。
  44. 境界アーティファクトを含む置換ビデオユニットの位置を識別するために前記置換ビデオユニットを分析する手段と、
    前記置換ビデオユニットの前記識別された位置内の前記境界アーティファクトを修正する手段と、
    を備えるデバイス。
  45. 前記分析する手段は、参照ビデオユニット内には存在し前記置換ビデオユニット中には存在しない境界と対応する第1の境界アーティファクトを含む、前記置換ビデオユニット内の第1の位置を識別し、前記置換ビデオユニット内には存在し前記参照ビデオユニット内には存在しない境界と対応する第2の境界アーティファクトを含む、前記置換ビデオユニット内の第2の位置を識別し、
    前記修正する手段は、第1の境界アーティファクト修正技術を使用して前記置換ビデオユニットの前記第1の位置内の境界アーティファクトを修正し、第2の境界アーティファクト修正技術を使用して前記置換ビデオユニットの前記第2の位置内の境界アーティファクトを修正する請求項44に記載のデバイス。
  46. 前記修正する手段は、
    前記置換ビデオユニットの前記第1の位置内の画素の画素値を前記参照ビデオユニット内に存在する前記境界の画素値と実質的に同様である画素値と置換し、
    前記第2の位置内の画素の画素値を前記参照ビデオユニット中に存在する前記境界に隣接する1つまたは複数の画素値の平均として計算された画素値と置換する請求項45に記載のデバイス。
  47. 前記修正する手段は、
    前記第1の位置のそれぞれのブロックに関連する動きベクトルを0に等しくなるように設定し、
    前記それぞれのブロックに関連する前記動きベクトルを使用して前記第1の位置の前記ブロックについてインター予測を実行し、
    前記置換フレームの前記第2の位置のブロックについてイントラ予測モードを選択し、
    前記選択されたイントラ予測モードを使用してイントラ予測を実行する請求項45に記載のデバイス。
  48. 前記分析する手段は、
    前記参照ビデオユニット内に存在する前記境界が前記参照ビデオユニットの左側部または右側部に沿っているときは、前記置換フレームの画素のW列を前記第1の位置と識別し、
    前記参照ビデオユニット内に存在する前記境界が前記参照ビデオユニットの上部または下部に沿っているときは、前記置換フレームの画素のW行を前記第1の位置と識別し、
    Wは、前記参照ビデオユニット内に存在する前記境界の幅である請求項45に記載のデバイス。
  49. 前記分析する手段は、
    前記それぞれのブロックの前記動きベクトルのx成分であるMVxが0に等しくないときは、画素の前記W列に隣接する前記置換フレームの画素のMVx列を前記第2の位置と識別し、
    前記それぞれのブロックの前記動きベクトルのy成分であるMVyが0に等しくないときは、画素の前記W行に隣接する前記置換フレームの画素のMVy行を前記第2の位置と識別する
    請求項48に記載のデバイス。
  50. 前記分析する手段は、
    シーリング関数はW/Nの次に大きい整数を出力し、ここでWは前記参照フレーム中の前記境界の幅であり、Nはx方向に沿ったブロックサイズである、L=シーリング(W,N)を計算し、
    前記参照ビデオユニット内に存在する前記境界が前記参照ビデオユニットの左側部または右側部に沿っているときは、前記置換フレームのブロックのL列を前記第1の位置と識別し、
    シーリング関数はW/Mの次に大きい整数を出力し、ここでWは前記参照フレーム中の前記境界の前記幅であり、Mはy方向に沿ったブロックサイズである、K=シーリング(W,M)を計算し、
    前記参照ビデオユニット内に存在する前記境界が前記参照ビデオユニットの上部または下部に沿っているときは、前記置換フレームの画素のK行を前記第1の位置と識別する請求項45に記載のデバイス。
  51. 前記識別する手段は、
    WがNの倍数であるときは、ブロックの前記L列に隣接するブロックの列を第1の境界位置と識別し、
    WがMの倍数であるときは、ブロックの前記K行に隣接するブロックの行を第1の境界位置と識別する請求項50に記載のデバイス。
  52. 前記識別する手段は、
    ブロックの前記L列に隣接するブロックの列の少なくとも一部分を前記ブロックのx座標と前記境界位置のx座標とに基づいて第2の境界位置と識別し、
    ブロックの前記K行に隣接するブロックの行の少なくとも一部分を前記ブロックのy座標と前記境界位置のy座標とに基づいて第2の境界位置と識別する請求項50に記載のデバイス。
JP2011506440A 2008-04-23 2009-04-22 ビデオユニット内の境界アーティファクト修正 Expired - Fee Related JP5123427B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US4738108P 2008-04-23 2008-04-23
US61/047,381 2008-04-23
US12/395,244 US8208563B2 (en) 2008-04-23 2009-02-27 Boundary artifact correction within video units
US12/395,244 2009-02-27
PCT/US2009/041458 WO2009132145A1 (en) 2008-04-23 2009-04-22 Boundary artifact correction within video units

Publications (2)

Publication Number Publication Date
JP2011519228A true JP2011519228A (ja) 2011-06-30
JP5123427B2 JP5123427B2 (ja) 2013-01-23

Family

ID=41215005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011506440A Expired - Fee Related JP5123427B2 (ja) 2008-04-23 2009-04-22 ビデオユニット内の境界アーティファクト修正

Country Status (7)

Country Link
US (1) US8208563B2 (ja)
EP (1) EP2292004B1 (ja)
JP (1) JP5123427B2 (ja)
KR (1) KR101197506B1 (ja)
CN (1) CN102017615B (ja)
TW (1) TW201002082A (ja)
WO (1) WO2009132145A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103843339A (zh) * 2011-09-09 2014-06-04 汤姆逊许可公司 用于计算被压缩假影和信道假影影响的视频的失真的方法和设备

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8514939B2 (en) * 2007-10-31 2013-08-20 Broadcom Corporation Method and system for motion compensated picture rate up-conversion of digital video using picture boundary processing
KR101500324B1 (ko) * 2008-08-05 2015-03-10 삼성디스플레이 주식회사 표시 장치
JP5238523B2 (ja) * 2009-01-13 2013-07-17 株式会社日立国際電気 動画像符号化装置、動画像復号化装置、および、動画像復号化方法
JP2010258741A (ja) * 2009-04-24 2010-11-11 Sony Corp 画像処理装置および方法、並びにプログラム
US9713751B2 (en) 2009-05-29 2017-07-25 Acushnet Company Wedge type golf club head
US8665367B2 (en) * 2010-01-29 2014-03-04 Sharp Laboratories Of America, Inc. Video resolution enhancement technique
US8648870B1 (en) * 2010-08-02 2014-02-11 Adobe Systems Incorporated Method and apparatus for performing frame buffer rendering of rich internet content on display devices
US9008180B2 (en) * 2011-04-21 2015-04-14 Intellectual Discovery Co., Ltd. Method and apparatus for encoding/decoding images using a prediction method adopting in-loop filtering
US10659724B2 (en) * 2011-08-24 2020-05-19 Ati Technologies Ulc Method and apparatus for providing dropped picture image processing
US9253508B2 (en) * 2011-11-04 2016-02-02 Futurewei Technologies, Inc. Differential pulse code modulation intra prediction for high efficiency video coding
TWI606418B (zh) * 2012-09-28 2017-11-21 輝達公司 圖形處理單元驅動程式產生內插的圖框之電腦系統及方法
USD773574S1 (en) 2015-02-12 2016-12-06 Acushnet Company Wedge golf club set
CA3039466A1 (en) * 2015-10-08 2017-04-13 Sharp Laboratories Of America, Inc. Systems and methods for reducing artifacts in temporal scalable layers of video
FI20165256A (fi) * 2016-03-24 2017-09-25 Nokia Technologies Oy Laitteisto, menetelmä ja tietokoneohjelma videokoodaukseen ja -dekoodaukseen
US10354394B2 (en) 2016-09-16 2019-07-16 Dolby Laboratories Licensing Corporation Dynamic adjustment of frame rate conversion settings
DE102016221204A1 (de) * 2016-10-27 2018-05-03 Siemens Aktiengesellschaft Bestimmung mindestens eines genäherten Zwischendatensatzes für eine Echtzeitanwendung
KR101819193B1 (ko) * 2016-11-17 2018-01-16 (주)판도라티비 실시간 파일 포맷 변환 스트리밍 서비스 방법
USD829837S1 (en) 2017-03-01 2018-10-02 Acushnet Company Wedge golf club
JP7300985B2 (ja) * 2017-04-17 2023-06-30 ソニーグループ株式会社 情報処理装置および情報処理方法
US10977809B2 (en) 2017-12-11 2021-04-13 Dolby Laboratories Licensing Corporation Detecting motion dragging artifacts for dynamic adjustment of frame rate conversion settings
WO2019151284A1 (ja) * 2018-01-30 2019-08-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
US11140407B2 (en) * 2018-02-08 2021-10-05 Apple Inc. Frame boundary artifacts removal
US11146810B2 (en) * 2018-11-27 2021-10-12 Qualcomm Incorporated Decoder-side motion vector refinement
WO2020156538A1 (en) 2019-02-03 2020-08-06 Beijing Bytedance Network Technology Co., Ltd. Interaction between mv precisions and mv difference coding
CN113424533B (zh) 2019-02-14 2024-09-10 北京字节跳动网络技术有限公司 复杂度降低的解码器侧运动推导
EP3951766A4 (en) * 2019-03-25 2022-12-07 Sony Interactive Entertainment Inc. IMAGE DISPLAY CONTROL DEVICE, TRANSMITTING DEVICE, IMAGE DISPLAY CONTROL METHOD AND PROGRAM
WO2020219039A1 (en) * 2019-04-24 2020-10-29 Hewlett-Packard Development Company, L.P. Displays with pixels coupled by beam splitters

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010024515A1 (en) * 1998-12-03 2001-09-27 Fernando C. M. Martins Method and apparatus to interpolate video frames
US20040252759A1 (en) * 2003-06-13 2004-12-16 Microsoft Corporation Quality control in frame interpolation with motion analysis
JP2005056275A (ja) * 2003-08-06 2005-03-03 Nec Corp 携帯端末用文字入力装置、携帯端末用文字入力方法、携帯端末
WO2006099321A1 (en) * 2005-03-10 2006-09-21 Qualcomm Incorporated Interpolated frame deblocking operation in frame rate up conversion application
WO2007052452A1 (ja) * 2005-11-07 2007-05-10 Sharp Kabushiki Kaisha 画像表示装置及び方法
JP2007267360A (ja) * 2006-02-28 2007-10-11 Sharp Corp 画像表示装置及び方法、画像処理装置及び方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721822A (en) * 1995-07-21 1998-02-24 Intel Corporation Run-length encoding/decoding video signals using scan patterns explicitly encoded into bitstreams
US6760378B1 (en) * 1999-06-30 2004-07-06 Realnetworks, Inc. System and method for generating video frames and correcting motion
EP1422928A3 (en) 2002-11-22 2009-03-11 Panasonic Corporation Motion compensated interpolation of digital video signals
US7881376B2 (en) * 2004-05-14 2011-02-01 Panasonic Corporation Motion compensation apparatus
US9025673B2 (en) * 2006-04-05 2015-05-05 Qualcomm Incorporated Temporal quality metric for video coding
EP1843587A1 (en) * 2006-04-05 2007-10-10 STMicroelectronics S.r.l. Method for the frame-rate conversion of a digital video signal and related apparatus
US20080025390A1 (en) * 2006-07-25 2008-01-31 Fang Shi Adaptive video frame interpolation
JP5008431B2 (ja) * 2007-03-15 2012-08-22 キヤノン株式会社 画像処理装置及び画像処理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010024515A1 (en) * 1998-12-03 2001-09-27 Fernando C. M. Martins Method and apparatus to interpolate video frames
US20040252759A1 (en) * 2003-06-13 2004-12-16 Microsoft Corporation Quality control in frame interpolation with motion analysis
JP2005056275A (ja) * 2003-08-06 2005-03-03 Nec Corp 携帯端末用文字入力装置、携帯端末用文字入力方法、携帯端末
WO2006099321A1 (en) * 2005-03-10 2006-09-21 Qualcomm Incorporated Interpolated frame deblocking operation in frame rate up conversion application
WO2007052452A1 (ja) * 2005-11-07 2007-05-10 Sharp Kabushiki Kaisha 画像表示装置及び方法
JP2007267360A (ja) * 2006-02-28 2007-10-11 Sharp Corp 画像表示装置及び方法、画像処理装置及び方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103843339A (zh) * 2011-09-09 2014-06-04 汤姆逊许可公司 用于计算被压缩假影和信道假影影响的视频的失真的方法和设备
US10110893B2 (en) 2011-09-09 2018-10-23 Thomson Licensing Method and device for calculating distortion of a video being affected by compression artifacts and channel artifacts

Also Published As

Publication number Publication date
KR20100137009A (ko) 2010-12-29
US8208563B2 (en) 2012-06-26
KR101197506B1 (ko) 2012-11-09
CN102017615B (zh) 2013-06-12
EP2292004A1 (en) 2011-03-09
JP5123427B2 (ja) 2013-01-23
EP2292004B1 (en) 2018-09-05
US20090268823A1 (en) 2009-10-29
WO2009132145A1 (en) 2009-10-29
TW201002082A (en) 2010-01-01
CN102017615A (zh) 2011-04-13

Similar Documents

Publication Publication Date Title
JP5123427B2 (ja) ビデオユニット内の境界アーティファクト修正
US8855202B2 (en) Flexible range reduction
US8325799B2 (en) Moving picture encoding method, device using the same, and computer program
US10013746B2 (en) High dynamic range video tone mapping
KR100964526B1 (ko) 전환 효과를 위한 멀티미디어 코딩 기술
US9247250B2 (en) Method and system for motion compensated picture rate up-conversion of digital video using picture boundary processing
US8437397B2 (en) Block information adjustment techniques to reduce artifacts in interpolated video frames
US8634472B2 (en) Image information encoding method and encoder, and image information decoding method and decoder
JP5918328B2 (ja) 画像符号化方法及び画像復号方法
JP2009531980A (ja) デジタルビデオエンコーダの内部予測及びモード決定処理の計算を低減する方法
JP2008167456A (ja) 画像符号化装置及び画像復号装置
TW201637443A (zh) 在改變色度取樣率時濾波以減輕異常
JP2005515730A (ja) 符号化情報及び局所空間特性を用いて鮮鋭度を強調するシステム及び方法
JP2005513968A (ja) 映像鮮明度の向上における一時的な整合性の改善
EP3073737B1 (en) Video coding device, video coding program, video coding method, and video coding and decoding system
US8767831B2 (en) Method and system for motion compensated picture rate up-conversion using information extracted from a compressed video stream
JPH0998421A (ja) 画像符号化/復号化装置
Basavaraju et al. Modified pre and post processing methods for optimizing and improving the quality of VP8 video codec
JP2006060538A (ja) 符号化モード選択装置及び符号化モード選択プログラム
JP5298487B2 (ja) 画像符号化装置、画像復号化装置、および画像符号化方法
JP2007208311A (ja) 動画像符号化装置
JPH09275564A (ja) 高精細動画像符号化装置
JP2006270181A (ja) 動き補償型時間方向フィルタ処理における残差成分の復号化および格納方法ならびに装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120724

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120831

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

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

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

Free format text: PAYMENT UNTIL: 20151102

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5123427

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees