JP4407472B2 - 符号化及び復号装置並びに符号化及び復号方法 - Google Patents

符号化及び復号装置並びに符号化及び復号方法 Download PDF

Info

Publication number
JP4407472B2
JP4407472B2 JP2004317003A JP2004317003A JP4407472B2 JP 4407472 B2 JP4407472 B2 JP 4407472B2 JP 2004317003 A JP2004317003 A JP 2004317003A JP 2004317003 A JP2004317003 A JP 2004317003A JP 4407472 B2 JP4407472 B2 JP 4407472B2
Authority
JP
Japan
Prior art keywords
macroblock
processing
state
macroblocks
encoding
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
JP2004317003A
Other languages
English (en)
Other versions
JP2006129285A (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2004317003A priority Critical patent/JP4407472B2/ja
Priority to US11/260,847 priority patent/US7881542B2/en
Publication of JP2006129285A publication Critical patent/JP2006129285A/ja
Application granted granted Critical
Publication of JP4407472B2 publication Critical patent/JP4407472B2/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Description

本発明は、動画像データの符号化及び復号装置並びに符号化及び復号方法に関するものである。
動画像データの従来の符号化規格として、MPEG-2(ISO/IEC13818-2 Information Technology-Generic Coding of moving pictures and associated audio information: Video)及びMPEG-4(ISO/IEC14496 Information Technology-Generic Coding of Audio-Visual Object)等が知られている。
また、近年、動画像データの新たな符号化規格として、H.264/MPEG−4AVC(ITU-T Rec. H.264 ISO/IEC 14496-10 AVC)及びWMV9(Windows Media Video 9(商標))等が提案されている。
このような符号化規格では、1つの画面(フレーム)内を所定画素数のブロック(輝度成分:16画素×16画素)に分割し、当該ブロック単位で符号化処理及び復号処理がされる。この画素ブロックのことを、マクロブロックという。
ここで、符号化又は復号処理の高速化を図るため、マクロブロックに対する符号化処理又は復号処理を行うマクロブロック処理エンジン(ハードウェア的なモジュールでもソフトウェア的なモジュールでもよい。)を複数準備し、これらのマクロブロック処理エンジンを並列動作させることが考えられる。
MPEG-2では、ある任意のマクロブロックに対して符号化又は復号処理を行う場合、図29に示すように、左横のマクロブロックの処理結果を参照するので、少なくとも処理対象のマクロブロックの左横のマクロブロックまで符号化又は復号処理が完了してなければならない。なお、以下、このような関係のことを、「左横に依存関係がある」という。
このように、MPEG-2では、各マクロブロックが左横に依存関係があるので、複数のマクロブロック処理エンジンを並列動作させる場合には、図30に示すように、1つのマクロブロック処理エンジンが、横方向に並んだ一群のマクロブロックに対して左側から順番に処理をして行けばよい。なお、横方向に並んだ一群のマクロブロックのことを、「スライス」と言う。
ところで、MPEG-4やH.264/MPEG−4AVC等の新たな符号化規格では、ある任意のマクロブロックに対して符号化又は復号処理を行う場合、図31に示すように、左横、左斜上、上及び右斜上のマクロブロックの処理結果を参照するので、少なくとも左横、左斜上、上及び右斜上の4つのマクロブロックの符号化又は復号処理が完了してなければならない。すなわち、H.264/MPEG−4AVC等の新たな符号化規格では、各マクロブロックが左横、左斜上、上及び右斜上に依存関係がある。
このため、複数のマクロブロック処理エンジンを並列動作させる場合、従来のように単に各マクロブロック処理エンジンがスライス単位で処理を行っていくのでは、対応することができない。
本発明は、このような問題に鑑みて、H.264/MPEG−4AVC等の新たな符号化規格であっても、マクロブロックに対する並列処理を行うことが可能な符号化又は復号装置及び方法を提供することを目的とする。
本発明に係る符号化装置は、所定数の画素から構成されるマクロブロック単位で画面内を行列状に分割し、分割したマクロブロック単位で動画像データの符号化処理を行う符号化装置において、マクロブロック単位での符号化処理を並列して行う複数のマクロブロック処理部と、1つの画面内の各マクロブロックの処理状態を管理する状態管理部とを備え、上記状態管理部は、1つの画面内の各マクロブロックに対して、上記マクロブロック処理部により処理開始が可能な準備完了状態にあるか、上記マクロブロック処理部により実行中の実行中状態であるか、上記マクロブロック処理部により処理が完了済みの処理完了状態であるかを区別して管理し、各マクロブロック処理部は、上記状態管理部を検索して準備完了状態にあるマクロブロックを1つ検出し、検出したマクロブロックの上記状態管理部により管理されている状態を実行中状態に変化させ、検出したマクロブロックに対して符号化処理を行い、当該マクロブロックの符号化処理が終了すると、上記状態管理部の当該マクロブロックの状態を処理完了状態とする。
本発明に係る復号装置は、所定数の画素から構成されるマクロブロック単位で画面内を行列状に分割し、分割したマクロブロック単位で動画像データの復号処理を行う復号装置において、マクロブロック単位での復号処理を並列して行う複数のマクロブロック処理部と、1つの画面内の各マクロブロックの処理状態を管理する状態管理部とを備え、上記状態管理部は、1つの画面内の各マクロブロックに対して、上記マクロブロック処理部により処理開始が可能な準備完了状態にあるか、上記マクロブロック処理部により実行中の実行中状態であるか、上記マクロブロック処理部により処理が完了済みの処理完了状態であるかを区別して管理し、各マクロブロック処理部は、上記状態管理部を検索して準備完了状態にあるマクロブロックを1つ検出し、検出したマクロブロックの上記状態管理部により管理されている状態を実行中状態に変化させ、検出したマクロブロックに対して復号処理を行い、当該マクロブロックの復号処理が終了すると、上記状態管理部の当該マクロブロックの状態を処理完了状態とする。
本発明に係る符号化方法は、所定数の画素から構成されるマクロブロック単位で画面内を行列状に分割し、分割したマクロブロック単位で動画像データの符号化処理を行う符号化方法において、マクロブロック単位での符号化処理を並列して行う複数のマクロブロック処理エージェントを用いて符号化処理を行い、1つの画面内の各マクロブロックに対して、上記マクロブロック処理エージェントにより処理開始が可能な準備完了状態にあるか、上記マクロブロック処理エージェントにより実行中の実行中状態であるか、上記マクロブロック処理エージェントにより処理が完了済みの処理完了状態であるかを区別して管理し、各マクロブロック処理エージェントは、準備完了状態にあるマクロブロックを1つ検出し、検出したマクロブロックの状態を実行中状態に変化させ、検出したマクロブロックに対して符号化処理を行い、当該マクロブロックの符号化処理が終了すると、当該マクロブロックの状態を処理完了状態とする。
本発明に係る復号方法は、所定数の画素から構成されるマクロブロック単位で画面内を行列状に分割し、分割したマクロブロック単位で動画像データの復号処理を行う復号方法において、マクロブロック単位での復号処理を並列して行う複数のマクロブロック処理エージェントを用いて復号処理を行い、1つの画面内の各マクロブロックに対して、上記マクロブロック処理エージェントにより処理開始が可能な準備完了状態にあるか、上記マクロブロック処理エージェントにより実行中の実行中状態であるか、上記マクロブロック処理エージェントにより処理が完了済みの処理完了状態であるかを区別して管理し、各マクロブロック処理エージェントは、準備完了状態にあるマクロブロックを1つ検出し、検出したマクロブロックの状態を実行中状態に変化させ、検出したマクロブロックに対して復号処理を行い、当該マクロブロックの復号処理が終了すると、当該マクロブロックの状態を処理完了状態とする。
本発明に係る符号化装置及び方法並びに復号装置及び方法は、マクロブロック単位での符号化又は復号処理を行うマクロブロック処理エージェントを複数用い、これらを並列動作させて高速処理を行う。この際、本発明では、1つの画面内の各マクロブロックに対して、準備完了状態、実行中状態、又は、処理完了状態のいずれの状態となっているかどうかを管理する。さらに、本発明では、各マクロブロック処理エージェントが、検出したマクロブロックに対して符号化又は復号処理を行い、当該マクロブロックの符号化又は復号処理が終了すると当該マクロブロックの状態を処理完了状態とする。
このことにより、本発明では、左横、左斜上、上及び右斜上にマクロブロックの依存関係を有する新たな符号化規格を適用する場合であっても、また、その他どのような符号化規格であっても、マクロブロックに対する並列処理を実現することができる。
以下、H.264/MPEG−4AVC規格に対応した符号化及び復号を行うビデオコーデックに、本発明を適用した装置について説明する。
全体構成
(エンコーダのブロック構成)
図1は、本発明が適用されたビデオコーデックの中の符号化処理部分(ビデオエンコーダ1)の構成図である。
ビデオエンコーダ1は、図1に示すように、画素データ(Pixel)が入力され、H.264/MPEG−4AVC規格に対応した符号化処理を行い、符号化ストリーム(Stream)を出力する。
ビデオエンコーダ1は、マクロブロック単位で画素データが入力され、入力されたマクロブロックに対して符号化処理を行うMB符号化部2を、複数個備えている。また、ビデオエンコーダ1は、動きベクトルを算出する動き検出部3と、ローカルデコードに必要とする参照用のフレームを生成するデブロッキングフィルタ4と、MB符号化部2により符号化されたデータ列に対して可変長符号化(VLC)処理を行うVLC部5とを備えている。
各MB符号化部2(2-1,2-2,2-3,…,2-n)は、それぞれ、図1に示すように、減算回路6と、離散コサイン変換(DCT)回路7と、量子化回路8と、逆量子化回路9と、逆離散コサイン変換(IDCT)回路10と、加算回路11と、動き補償回路12と、イントラ予測回路13とを備えている。
減算回路6には、符号化対象となる空間領域の画像データ(pixel)が、マクロブロック単位で入力される。また、減算回路6には、符号化対象となるマクロブロック(画素データ)に対して、フレーム間の相関を利用した符号化処理を行う場合には、動き補償回路12又はイントラ予測回路13から予測ブロックも入力される。減算回路6は、インターマクロブロックに対して処理を行う場合には、入力された画像データから予測ブロックを減算する。減算回路6は、イントラマクロブロックに対して処理を行う場合には、入力された画像データから予測ブロックを減算する。
DCT回路7は、減算回路6から出力されたマクロブロック(画像データ)に対して離散コサイン変換を行い、周波数領域の画像データであるDCTの係数データ(coef)を生成する。DCT回路7は、生成した係数データ(coef)を量子化回路8に出力する。
量子化回路8は、入力された係数データ(coef)に対して、所定の量子化スケール値を用いて、量子化処理を行う。
逆量子化回路9には、量子化回路8から出力された係数データのうち、フレーム間予測の参照データとなり得るフレームのマクロブロックの係数データが入力される。逆量子化回路9は、入力されたデータに対して、量子化した際に用いられた量子化スケール値により、逆量子化処理を行う。
IDCT回路10は、逆量子化回路9から出力された係数データ(coef)に対して、逆離散コサイン変換を行い、空間領域の画像データ(pixel)を生成する。
加算回路11には、IDCT回路10から出力された画像データ(pixel)が入力される。また、加算回路11には、入力された画像データがフレーム間の相関を利用した符号化がされたマクロブロックである場合、その予測ブロックが動き補償回路12又はイントラブロックメモリ13から入力される。加算回路11は、インターマクロブロックに対して処理を行う場合には、入力された画像データに対して予測ブロックを加算する。加算回路11は、イントラマクロブロックに対して処理を行う場合には、入力された画像データに対して予測ブロックを加算する。加算回路11は、出力した画像データをデブロッキングフィルタ4に供給して、デブロックフィルタリング処理がされたのち、参照フレームとして図示しないフレームメモリに格納される。
動き補償回路12は、フレームメモリに格納された参照フレームに対して動きベクトルを参照して動き補償を行い、予測ブロックを生成する。イントラ予測回路13は、イントラ予測を行い、予測ブロックとなるイントラマクロブロックが格納されている。マクロブロックのタイプに応じて、動き補償回路12又はイントラ予測回路13のいずれか一方から出力された予測ブロックが出力され、減算回路6に供給される。予測ブロックは、加算回路11に供給される。
以上のような複数のMB符号化部2(2-1,2-2,2-3,…,2-n)から出力されたマクロブロック単位のデータ(量子化された係数データ)は、VLC部5に供給される。
(エンコーダの処理フロー)
図2は、各MB符号化部2での処理内容を、フローチャートによって表したものである。
各MB符号化部2は、1つのマクロブロック(画素データ)が入力されると、まず、そのマクロブロックのタイプを判断して、イントラマクロブロックかインターマクロブロックかを判断する(S10)。イントラ予測回路であれば、予測結果を予測ブロックとし(S11)、インターマクロブロックであればその符号化結果に対して動き補償を行って予測ブロックを生成する(S12)。また、もし、インターマクロブロックであれば、入力されたマクロブロックから予測ブロックを減算して、差分ブロックを生成する(S13)。
各MB符号化部2は、続いて、マクロブロック単位の画素データに対してDCT演算(S14)及び量子化処理(S15)を行う。DCT演算及び量子化がされたマクロブロック単位のデータ(係数データ)は、MB符号化部2からVLC部5に供給される。
各MB符号化部2は、さらに、そのマクロブロックが参照データとなり得るフレームのマクロブロックであれば、逆量子化処理(S16)及び逆DCT処理(S17)を行ったのち、予測ブロックを加算する(S18)。
各MB符号化部2は、1フレーム内の全てのマクロブロックに対して処理を行ったか否かを判断し(S19)、処理が終了していなければ、次のマクロブロックに対してステップS10からの処理を繰り返し、終了していれば当該フローを停止する。
(デコーダのブロック構成)
図3は、本発明が適用されたビデオコーデックの復号処理部(ビデオビデオデコーダ15)の構成図である。
ビデオデコーダ15は、図3に示すように、符号化ストリーム(Stream)が入力され、H.264/MPEG−4AVC規格に対応した復号処理を行い、画素データ(Pixel)を出力する。
ビデオデコーダ15は、マクロブロック単位で量子化された係数データが入力され、入力されたマクロブロック単位の係数データに対して復号処理を行うMB復号部16を、複数個備えている。また、ビデオデコーダ15は、入力された符号化ストリーム(Stream)に対して可変長符号の復号(VLD)を行い、量子化された係数データや動きベクトル等を出力するVLD部17と、MB復号部16により符号化されたマクロブロック単位の画素データに対して、ブロックノイズを除去するデブロッキングフィルタ処理を行うデブロッキングフィルタ18とを備えている。
各MB復号部16(16-1,16-2,16-3,…,16-n)は、図3に示すように、それぞれ、逆量子化回路21と、逆離散コサイン変換(IDCT)回路22と、加算回路23と、動き補償回路24と、イントラブロックメモリ25とを備えている。
逆量子化回路21には、VLD部17により可変長符号の符号されたデータのうち、係数データ(coef)が入力される。逆量子化回路21は、データに対して逆量子化処理を行う。
IDCT回路22は、逆量子化回路21から出力された係数データ(coef)に対して、逆離散コサイン変換を行い、空間領域の画像データ(pixel)を生成する。
加算回路23には、IDCT回路22から出力された画像データ(pixel)が入力される。また、加算回路23には、入力された画像データがフレーム間の相関を利用した符号化がされたマクロブロックである場合、その予測ブロックが動き補償回路24又はイントラ予測回路25から入力される。加算回路23は、インターマクロブロックに対して処理を行う場合には、入力された画像データに対して予測ブロックを加算する。加算回路23は、イントラマクロブロックに対して処理を行う場合には、入力された画像データに対して予測ブロックを加算する。加算回路23は、出力した画像データをデブロッキングフィルタ18に供給して、デブロッキングフィルタリング処理がされたのち、参照フレームとして図示しないフレームメモリに格納される。
動き補償回路24は、フレームメモリに格納された参照フレームに対して動きベクトルを参照して動き補償を行い、予測ブロックを生成する。イントラ予測25は、動き補償を行わずにそのまま予測ブロックとなるイントラマクロブロックが格納されている。マクロブロックのタイプに応じて、動き補償回路24又はイントラブロックメモリ25のいずれか一方から出力された予測ブロックが出力され、そのうち、参照画像となる予測ブロックは、加算回路23に供給される。
以上のような複数のMB復号部16(16-1,16-2,16-3,…,16-n)から出力されたマクロブロック単位の全ての画素データ(pixel)は、デブロッキングフィルタ18に供給される。
(デコーダの処理フロー)
図4は、各MB復号部16での処理内容を、フローチャートによって表したものである。
各MB復号部16は、1つのマクロブロック(係数データ)が入力されると、まず、そのマクロブロックのタイプを判断して、イントラマクロブロックかインターマクロブロックかを判断する(S20)。イントラマクロブロックであれば、予測ブロックの生成は行わず(S21)、インターマクロブロックであれば動き補償を行って予測ブロックを生成する(S22)。
各MB復号部16は、続いて、入力された係数データに対して、逆量子化処理(S23)及び逆DCT処理(S24)を行った後、予測ブロックを加算する(S25)。
各MB復号部16は、1フレーム内の全てのマクロブロックに対して処理を行ったか否かを判断し(S26)、処理が終了していなければ、次のマクロブロックに対してステップS20からの処理を繰り返し、終了していれば当該フローを停止する。
MB処理エージェント及び状態管理部
動き検出部3は、複数のMB符号化部2(2-1,2-2,2-3,…,2-n)の前処理部として機能している。すなわち、動き検出部3は、マクロブロック単位での処理が行われる前に行われるフレーム単位での符号化処理部である。また、VLC部5及びデブロッキングフィルタ4は、複数のMB符号化部2(2-1,2-2,2-3,…,2-n)の後処理部として機能している。すなわち、VLC部5及びデブロッキングフィルタ4は、マクロブロック単位での処理が行われた後に行われるフレーム単位での符号化処理部である。
また、ビデオデコーダ15では、VLD部17は、複数のMB復号部16(16-1,16-2,16-3,…,16-n)の前処理部として機能している。すなわち、VLD部17は、マクロブロック単位での処理が行われる前のフレーム単位での復号処理部である。また、ビデオデコーダ15では、デブロッキングフィルタ18は、複数のMB復号部16(16-1,16-2,16-3,…,16-n)の後処理部として機能している。すなわち、デブロッキングフィルタ18は、マクロブロック単位での処理が行われた後のフレーム単位での処理部である。
以下説明のため、MB符号化部2及びMB復号部16を総称して「MB処理エージェント30」といい、動き検出部3、VLD部17を総称して「前処理部31」といい、VLC部5及びデブロッキングフィルタ4及びデブロッキングフィルタ18を総称して「後処理部32」という。
ここで、本発明が適用されたビデオコーデックには、図5に示すように、複数のMB処理エージェント30(30−1,30−2,30−3,…,30−n)がマクロブロックに対する処理を行う際に、最適なマクロブロックが選択されるように管理を行う状態管理部33を備えている。
状態管理部33は、複数のMB処理エージェント30(30−1,30−2,30−3,…,30−n)が、それぞれ独立にアクセスがされる。同様に、図5(A)に示すように、ビデオエンコーダ1の前処理部31(動き検出)及び後処理部32(VLC、デブロッキング)も、それぞれ独立に状態管理部33に対してアクセスをし、また、図5(B)に示すように、ビデオデコーダ2の前処理部31(VLD)及び後処理部32(デブロッキング)も、それぞれ独立に状態管理部33に対してアクセスをする。
状態管理部
つぎに、状態管理部33ついて説明をする。
状態管理部33は、1画面(1フレーム)内に存在しているマクロブロックの、現在の状態を管理するものである。
(アドレッシング例)
状態管理部33は、画面内のマクロブロックをアドレッシングして、管理を行っている。
1画面内には、図6に示すように、マクロブロックがマトリクス状に配置されている。ここでは、左端の列から(x+1)番目の列、上端の行から(y+1)番目の行に位置するマクロブロックのことを(x,y)と表すものとする。従って、1画面に、PicMbWidth列、PicMbHeight行のマクロブロックがマトリクス状に配置されているとすると、画面の左上のマクロブロック、つまり、1列、1行のマクロブロックは(0,0)となる。さらに、画面の右下のマクロブロックは、(PicMbWidth−1,PicMbHeight−1)となる。
(マクロブロックの4つの状態)
状態管理部33は、以上のようにマトリクス状に配列された個々のマクロブロックが、「イニシャル状態(S00)」、「準備完了状態(S01)」、「実行中状態(S02)」又は「処理完了状態(S03)」のうちいずれの状態となっているかを管理している。
「イニシャル状態(S00)」は、初期状態である。イニシャル状態(S00)となっているマクロブロックは、MB処理エージェント30によりなんら処理がされておらず、且つ、前処理部31による前処理も完了していない。MB処理エージェント30は、イニシャル状態(S00)のマクロブロックに対しては、まだ処理(すなわち、符号化又は復号)を行うことができない。
「準備完了状態(S01)」は、前処理部31による前処理が完了し、処理(符号化又は復号)が開始可能な状態である。準備完了状態(S01)となっているマクロブロックは、前処理部31により前処理が完了しているが、まだ、MB処理エージェント30によりなんら処理がされていない。MB処理エージェント30は、準備完了状態(S01)のマクロブロックに対しては、処理(符号化又は復号)を行うことが可能である。
「実行中状態(S02)」は、いずれか一つのMB処理エージェント30によって処理(符号化又は復号)が行われている最中の状態である。実行中状態(S02)となっているマクロブロックは、MB処理エージェント30により符号化又は復号処理が開始されているが、MB処理エージェント30による処理は完了していない。MB処理エージェント30は、実行中状態(S02)のマクロブロックに対しては、新たに処理(符号化又は復号)開始をすることはできない。
「処理完了状態(S03)」は、MB処理エージェント30によって処理(符号化又は復号)が完了し、後処理の開始が可能な状態である。処理完了状態(S03)となっているマクロブロックは、MB処理エージェント30による符号化又は復号処理が完了しており、後処理部32による後処理の開始が可能となっている。MB処理エージェント30は、処理完了状態(S03)のマクロブロックに対しては、新たに処理(符号化又は復号)開始をすることはできない。
状態管理部33に対してアクセスをする各MB処理エージェント30、前処理部31及び後処理部32は、各マクロブロックのそれぞれの状態を参照することができる。さらに、各MB処理エージェント30、前処理部31及び後処理部32は、必要に応じて、各状態を遷移させることもできる。
(ある任意のマクロブロックの状態遷移)
図7は、ある任意の1つのマクロブロックの状態遷移を示すステートチャートである。
まず、ある画面の符号化又は復号が開始されると、そのマクロブロックの状態は、イニシャル状態(S00)に遷移する。
イニシャル状態(S00)のときには、そのマクロブロックは、前処理部31によって前処理が行われている。そのマクロブロックに対する前処理が完了すると、そのマクロブロックの状態は、イニシャル状態(S00)から準備完了状態(S01)に遷移する。
MB処理エージェント30は、準備完了状態(S01)となっているマクロブロックを検索し、準備完了状態(S01)となっているマクロブロックを見つけ出すと、そのマクロブロックに対して処理(符号化又は復号)を開始する。そのマクロブロックに対して符号化又は復号が開始されると、そのマクロブロックの状態は、準備完了状態(S01)から実行中状態(S02)に遷移する。
実行中状態(S02)のときには、そのマクロブロックは、いずれか一つのMB処理エージェント30によって処理が行われている。そのマクロブロックに対する処理(符号化又は復号)が終了すると、そのマクロブロックの状態は、実行中状態(S02)から処理完了状態(S03)に遷移する。
処理完了状態(S03)のときには、そのマクロブロックは、後処理部32によって後処理が行われている。そのマクロブロックに対する後処理が完了すると、そのマクロブロックの状態は、処理完了状態(S03)からイニシャル状態(S00)に戻される。
状態管理部33では、以上のような状態遷移に従って、各マクロブロックの状態を管理している。
(スライス内における状態の関係、これを利用したテーブル表現)
MPEG-2、MPEG-4及びH.264/MPEG−4AVC規格では、各マクロブロックは、必ず、左横のマクロブロックに依存関係を有している。
従って、ある任意のマクロブロックの状態が「準備完了状態(S01)」であったとしても、少なくとも左横のマクロブロックの処理完了状態(S03)となっていなければ、絶対に「実行中状態(S02)」に遷移できない。すなわち、マトリクス状に配置された1画面内のマクロブロックの状態を、横に並んだ一群(スライス)単位で見ると、図8(A)に示すように、左隣のマクロブロックの状態は、同じ状態であるか又は進んだ状態となっている。更に換言すれば、スライス単位でマクロブロックを見たときに、左端のマクロブロックから状態が進行していく。
状態管理部33は、以上の状態の進行規則を利用して、スライス毎に、マクロブロックの状態の進行度合いを管理するようにしている。
具体的には、図8(B)に示すように、状態管理部33は、画面内の各スライスのアドレスに対して、準備完了状態(S01)の終端位置、実行中状態(S02)の終端位置、処理完了状態(S03)の終端位置を示したテーブルとなっている。
準備完了状態(S01)の終端位置とは、具体的には、準備完了状態(S01)のマクロブロックのうちの最も右端にあるマクロブロックの、画面左端から数えたときの数である。
実行中状態(S02)の終端位置とは、具体的には、実行中状態(S02)のマクロブロックのうちの最も右端にあるマクロブロックの、画面左端から数えたときの数である。
処理完了状態(S03)の終端位置とは、具体的には、処理完了状態(S03)のマクロブロックのうちの最も右端にあるマクロブロックの、画面左端から数えたときの数である。
状態管理部33は、以上のように管理することによって、各マクロブロックの状態を管理するために必要とするメモリ容量を小さくすることが可能となる。
なお、以下、状態管理部33で管理している情報内容を表現するにあたり、次のような式表現を用いるものとする。
ST[S♯][y] …(11)
式(11)において、♯は、01、02、03のいずれかの値であり、yは0以上の整数である。
この式(11)が示す意味は、行番号Y(スライスアドレス=Y)に対する、状態“♯”となっているマクロブロックの、最も右にある終端位置を示している。
例えば、下記式(12)のような表現がされているとする。
ST[S01][2] …(12)
式(12)の値は、2行目の準備完了状態(S01)のマクロブロックのうち、最も右端にあるマクロブロックの画面左端から数えたときの数を示すこととなる。例えば、図8の例であれば、ST[S01][2]=4となる。
コーデックの処理フロー
つぎに、本発明が適用されたビデオコーデックの処理手順について具体的に説明をする。
(メインフロー)
図9に、本発明が適用されたビデオコーデックのメインフローを示す。
本発明が適用されたビデオコーデックは、フレームの符号化又は復号処理が開始されると、ステップU1から処理を開始する。
まず、ステップU1において、状態管理部33は、全てのマクロブロックの状態を、イニシャル状態(S00)とする。
続いて、ステップU2において、前処理部31が前処理を開始する。
続いて、ステップU3において、全てのMB処理エージェント30により符号化又は復号の処理が開始される。
続いて、ステップU4において、後処理部32が後処理を開始する。
そして、本発明が適用されたビデオコーデックは、ステップU5において、後処理部32から処理終了通知が発生されたか否かを判断し、処理終了通知が発生されたと判断すると、当該フレームの符号化又は復号の処理を終了する。
(前処理フロー)
図10に、上記メインフローのうちの前処理(ステップU2)の具体的な処理フローを示す。
なお、前処理の処理フローの説明に用いる変数は次の通りである。
(Xa,Ya):前処理の対象となっているマクロブロック
sta:前処理が可能であるか否かを示すフラグ
1ならば前処理可能、0ならば前処理不可能
enda:前処理を終了することを示すフラグ
1ならば前処理終了、0ならば前処理は終了しない。
まず、ステップU21において、前処理部31は、前処理の対象となる1つのマクロブロック(Xa,Ya)を決定する。前処理部31は、1フレーム(画面)内の全てのマクロブロックのうち、1つのマクロブロックを選択する。選択は、画面左上のマクロブロックから開始して、左から右へ上から下へというように、いわゆるラスタスキャンの順序に従って、1つずつ選択してゆく。なお、マクロブロック(Xa,Ya)が、画面内の最終マクロブロック(右下)を超えたら、フラグendaを1とし、超えていなければフラグendaを0とする。
続いて、ステップU22において、前処理部31は、フラグendaが1か否かを判断する。フラグendaが1であれば、当該前処理のフローを抜けて、処理を終了する。フラグendaが0であれば、続くステップU23に進む。
続いて、ステップU23において、前処理部31は、マクロブロック(Xa,Ya)が前処理が可能となっているか否かを調査する。前処理部31は、調査した結果、前処理が可能となっていれば、フラグstaに1を代入し、前処理が可能となっていなければ、フラグstaに0を代入する。
続いて、ステップU24において、前処理部31は、フラグstaが1か否かを判断する。フラグstaが0であれば、ステップU21に戻る。フラグstaが1であれば、続くステップU25に進む。
続いて、ステップU25において、前処理部31は、マクロブロック(Xa,Ya)に対して、前処理を行う。
続いて、ステップU26において、前処理部31は、状態管理部33にアクセスを行い、マクロブロック(Xa,Ya)の状態を、イニシャル状態(S00)から準備完了状態(S01)に遷移させる。すなわち、以下の式(21)の処理を行う。式“A+=1”は、Aの値を1増加させる演算を意味している。
ST[01][Ya]+=1 …(21)
ステップU26の処理が終了すると、前処理部31は、ステップU21に戻り、次のマクロブロックに対して、ステップU21からステップU26の処理を行う。
(MB処理エージェントの処理フロー)
図11に、上記メインフローのうちのMB処理エージェントによる符号化又は復号の処理(ステップU3)の具体的な処理フローを示す。
なお、以下の説明では、MB処理エージェント#0の処理フローについて行うが、他のMB処理エージェント(♯1〜♯(n―1))も同様の処理を行う。さらに、全てのMB処理エージェント(♯0〜♯(n―1))は、それぞれ独立に、並行して処理を行っている。
MB処理エージェントの処理フローの説明に用いる変数は次の通りである。
PicMbHeight :1画面(フレーム)の縦のマクロブロック数
PicMbWidth :1画面(フレーム)の横のマクロブロック数
MB処理エージェント毎に異なる変数
(X0,Y0):MB処理エージェント#0の符号化又は復号の対象となるマクロブロッ

st0:MB処理エージェント#0が符号化又は復号可能であるか否かを示すフ
ラグ
1ならば符号化又は復号可能、0ならば符号化又は復号不可能
end0:MB処理エージェント#0の符号化又は復号の終了を示すフラグ
1ならば符号化又は復号終了、0ならば符号化又は復号は終了しない。
まず、ステップU31において、MB処理エージェント30は、符号化又は復号の対象となる1つのマクロブロック(X0,Y0)を決定する。MB処理エージェント30は、1フレーム(画面)内の全てのマクロブロックのうち、1つのマクロブロックを選択する。また、MB処理エージェント30は、マクロブロック(X0,Y0)が、画面内の全てのマクロブロックに対して符号化又は復号を終えたら、フラグend0を1とし、超えていなければフラグend0を0とする。
なお、このステップU31の処理の詳細は、後述する。
続いて、ステップU32において、MB処理エージェント30は、フラグend0が1か否かを判断する。フラグend0が1であれば、当該符号化又は復号のフローを抜けて、処理を終了する。フラグend0が0であれば、続くステップU33に進む。
続いて、ステップU33において、MB処理エージェント30は、マクロブロック(X0,Y0)が符号化又は復号が可能となっているか否かを調査する。MB処理エージェント30は、調査した結果、符号化又は復号が可能となっていれば、フラグst0に1を代入し、符号化又は復号が可能となっていなければ、フラグst0に0を代入する。
なお、このステップU33の処理の詳細も後述する。
続いて、ステップU34において、MB処理エージェント30は、フラグst0が1か否かを判断する。フラグst0が0であれば、ステップU31に戻る。フラグst0が1であれば、続くステップU35に進む。
続いて、ステップU35において、MB処理エージェント30は、状態管理部33にアクセスを行い、マクロブロック(X0,Y0)の状態を、準備完了状態(S01)から実行中状態(S02)に遷移させる。すなわち、以下の式(22)の処理を行う。
ST[02][Y0]+=1 …(22)
続いて、ステップU36において、MB処理エージェント30は、マクロブロック(X0,Y0)に対して、マクロブロック単位の符号化又は復号を行う。
ステップU36の処理が完了すると、ステップU37において、MB処理エージェント30は、状態管理部33にアクセスを行い、マクロブロック(X0,Y0)の状態を、実行中状態(S02)から処理完了状態(S03)に遷移させる。すなわち、以下の式(23)の処理を行う。
ST[03][Y0]+=1 …(23)
ステップU37の処理が終了すると、MB処理エージェント30は、ステップU31に戻り、次のマクロブロックに対して、ステップU31からステップU37の処理を行う。
(処理対象マクロブロックの決定処理)
図12に、MB処理エージェントの処理のうちのマクロブロック(X0,Y0)の決定処理(ステップU31)の具体的な処理フローを示す。
まず、ステップU311において、MB処理エージェント30は、変数cntに0を代入する。なお、変数cntは、当該マクロブロック決定処理で1つのマクロブロックを決定する際に、検索したマクロブロック数を示している。
続いて、ステップU312において、MB処理エージェント30は、下記式(24)が真であるか、偽であるかを判断する。
{ ST[S01][Y0]>=(X0+1) } AND { X0<PicMbWidth } AND { cnt0 ≠ 1 } …(24)
この式(24)において、ST[S01][Y0]>(X0+1)は、現在対象となっているマクロブロック(X0,Y0)の一つ右隣のマクロブロックが、準備完了状態(S01)となっていれば真である。X0<PicMbWidthは、現在対象となっているマクロブロック(X0,Y0)が画面の右端のマクロブロックでなければ真である。cnt0 ≠ 1は、当該マクロブロック決定処理での検索マクロブロック数が1つでなければ真である。
MB処理エージェント30は、式(24)が真であれば、ステップU314に進み、偽であればステップU313に進む。
続いて、ステップU313において、MB処理エージェント30は、“Y0”の値を0とする。つまり、検索するマクロブロック(X0,Y0)を、画面の一番上の列に設定する。
続いて、ステップU314において、MB処理エージェント30は、下記式(25)が真であるか、偽であるかを判断する。
ST[S03][ PicMbHeight-1 ]>= PicMbWidth …(25)
式(25)は、最下行のスライスが、全て処理完了状態(S03)となっていれば真である。すなわち、当該画面(フレーム)の全てのマクロブロックに対して符号化又は復号が完了しているか否かを意味している。
MB処理エージェント30は、まだ全てのマクロブロックの符号化又は復号が完了していなければ、ステップU315に進みフラグend0に0を代入し、ステップU317に進む。
MB処理エージェント30は、全てのマクロブロックの符号化又は復号が完了していれば、ステップU316に進みフラグend0に1を代入し、ステップU3110に進む。
続いて、ステップU317において、MB処理エージェント30は、下記式(26)が真であるか、偽であるかを判断する。
ST[S03][ Y0 ]>= PicMbWidth …(26)
式(26)は、現在対象となっているマクロブロック(X0,Y0)が含まれているスライスが、全て符号化又は復号が完了していれば真である、ことを意味している。
MB処理エージェント30は、現在対象となっているマクロブロック(X0,Y0)が含まれているスライスが、まだ符号化又は復号が完了していなければ、ステップU3110に進む。
MB処理エージェント30は、現在対象となっているマクロブロック(X0,Y0)が含まれているスライスが、全て符号化又は復号が完了していれば、ステップU318において、y0を1増加させ、続いて、ステップU319において、変数cntを1増加させ、ステップU312に戻り、ステップU312からU319までの処理を繰り返し行う。
また、ステップU3110において、MB処理エージェント30は、X0に下記式(27)の値を代入し、処理を終了する。
X0 = ST[03][Y0] -1 …(27)
以上のステップU311からU3110までの処理の結果、MB処理エージェントの符号化又は復号対象マクロブロック(X0,Y0)を決定することができる。
具体的には、以上のステップU311からU3110までの処理の結果、MB処理エージェント30は、図13に示すように検索が行われることとなる。
すなわち、MB処理エージェント30によってあるマクロブロック41に対して符号化又は復号処理を行ったとする。MB処理エージェント30は、次のマクロブロックに対して処理をする際に、まず、直前に処理をしたマクロブロック41の右隣のマクロブロック42が処理可能であるか否かを調査する。もし、その右隣のマクロブロック42が処理不可能であれば、最も上のスライスに移動し、そこから1つずつ順番に下のスライスに移動して、処理可能なマクロブロックがあるか否かを調査していく。
このように処理するのは次の理由による。
現在対象となっているマクロブロック(X0,Y0)は、自身(MB処理エージェント30)により符号化又は復号を完了しているので、右隣のマクロブロックが処理可能である可能性は、非常に高い。従って、まず、MB処理エージェント30では、右隣のマクロブロックの調査を行っている。さらに、同じスライスであれば、符号化又は復号処理時においてヘッダ情報を更新しなくても良いため、右隣のマクロブロックから検索するのは望ましい。
さらに、MPEG−4及びH.264/MPEG−4AVCの場合、その依存関係により、右上から左下に向かって処理が進んでいくので、なるべく上から下へ処理が完了していくようにマクロブロックを選択していくほうが望ましい。
という理由からである。
従って、本例のように処理を進めていくことに、効率的に処理を進行させることができる。
なお、MB処理エージェント30は、1画面全体にわたって調査処理が可能か否かを判断しているが、図14のように、例えば、調査をする最も下のスライス位置を規定しておき、それより下のスライスに対しては選択をしないようにしてもよい。このように選択範囲を規定することにより、符号化又は復号が完了したマクロブロックを保持しておくメモリの容量を削減することが可能となる。
(処理対象マクロブロックの決定処理)
図15に、決定されたマクロブロック(X0,Y0)が、符号化又は復号が可能となっているか否かの調査処理(ステップU33)の具体的な処理フローを示す。
まず、MPEG-4及びH.264/MPEG−4AVC規格の場合、(X,Y)のマクロブロックを処理できる条件は、図15の表の上欄に示すように、左横、左斜上、上及び右斜上のマクロブロックの符号化又は復号処理が完了していることである。
従って、(X,Y)のマクロブロックを処理できる条件は、
・右斜上のマクロブロックの符号化又は復号が完了していること。すなわち、T[03][Y-1]>X+1が真であること。
・左横のマクロブロックの符号化又は復号が完了していること。すなわち、T[03][Y]>X-1が真であること。
・自身のマクロブロックが符号化又は復号の準備が完了していること。すなわち、T[01][Y]>Xが真であること。
となる。
このため、MPEG-4及びH.264/MPEG−4AVCの符号化又は復号を行う場合であれば、図15の表右上のフロー(U331)に示すように、MB処理エージェント30は、状態管理部33を参照して下記式(26)が真であるか否かを求める。真であれば、フラグst0を1とし、偽であれば、フラグst0を0とする。
{ ST[S03][Y-1]>(X+1) } AND { ST[S03][Y]>(X-1) } AND { ST[S01][Y]>X } …(26)
また、MPEG-2の場合、(X,Y)のマクロブロックを処理できる条件は、図15の表の下欄に示すように、左横のマクロブロックの符号化又は復号処理が完了していることである。
従って、(X,Y)のマクロブロックを処理できる条件は、
・左横のマクロブロックの符号化又は復号が完了していること。すなわち、T[03][Y]>X-1が真であること。
・自身のマクロブロックが符号化又は復号の準備が完了していること。すなわち、T[01][Y]>Xが真であること。
となる。
このため、MPEG-2の符号化又は復号を行う場合であれば、図15の表右下のフロー(U332)に示すように、MB処理エージェント30は、状態管理部33を参照して下記式(27)が真であるか否かを求める。真であれば、フラグst0を1とし、偽であれば、フラグst0を0とする。
{ { ST[S03][Y]>(X-1) } AND { ST[S01][Y]>X } …(27)
MB処理エージェント30は、MPEG−2、MPEG−4又はH.264/MPEG−4AVCのうち、いずれの符号化方式で処理を行うかによって、ステップU331又はステップU332のいずれかを選択する。このため、MB処理エージェント30では、その他のステップの内容を変えずに、このステップU33のみを切り替えれば、いずれの符号化規格にも対応することが可能となる。
(後処理フロー)
図16に、上記メインフローのうちの後処理(ステップU5)の具体的な処理フローを示す。
なお、後処理の処理フローの説明に用いる変数は次の通りである。
(Xb,Yb):後処理の対象となっているマクロブロック
stb:後処理が可能であるか否かを示すフラグ
1ならば後処理可能、0ならば後処理不可能
endb:後処理を終了することを示すフラグ
1ならば後処理終了、0ならば後処理は終了しない。
まず、ステップU51において、後処理部31は、後処理の対象となる1つのマクロブロック(Xb,Yb)を決定する。後処理部31は、1フレーム(画面)内の全てのマクロブロックのうち、1つのマクロブロックを選択する。選択は、画面左上のマクロブロックから開始して、左から右へ上から下へというように、いわゆるラスタスキャンの順序に従って、1つずつ選択してゆく。なお、マクロブロック(Xb,Yb)が、画面内の最終マクロブロック(右下)を超えたら、フラグendbを1とし、超えていなければフラグendbを0とする。
続いて、ステップU52において、後処理部31は、フラグendbが1か否かを判断する。フラグendbが1であれば、当該後処理のフローを抜けて、処理を終了する。フラグendbが0であれば、続くステップU53に進む。
続いて、ステップU53において、後処理部31は、マクロブロック(Xb,Yb)が後処理が可能となっているか否かを調査する。後処理部31は、調査した結果、後処理が可能となっていれば、フラグstbに1を代入し、後処理が可能となっていなければ、フラグstbに0を代入する。
続いて、ステップU54において、後処理部31は、フラグstbが1か否かを判断する。フラグstbが0であれば、ステップU51に戻る。フラグstbが1であれば、続くステップU55に進む。
続いて、ステップU55において、後処理部31は、マクロブロック(Xb,Yb)に対して、後処理を行う。
続いて、ステップU56において、後処理部31は、状態管理部33にアクセスを行い、マクロブロック(Xb,Yb)の状態を、処理完了状態(S03)からイニシャル状態(S00)に遷移させる。すなわち、以下の式(28)の処理を行う。
ST[00][Yb]+=1 …(28)
ステップU56の処理が終了すると、後処理部31は、ステップU51に戻り、次のマクロブロックに対して、ステップU51からステップU56の処理を行う。
(処理結果)
本発明が適用されたビデオコーデックでは、以上のように処理を行うことによって、MPEG−4又はH.264/MPEG−4AVCに対して処理を行う場合であれば、図17に示すように、斜めに方向に同時に処理が進行していく。
つまり、各MB処理エージェント30は、スライスに対して左から順番に1つずつ符号化又は復号を行う。それととともに、1つ上のスライスに対して、マクロブロック1つ分以上遅れたタイミングで符号化又は復号を行っている。
MPEG−4又はH.264/MPEG−4AVC等の、左横、左斜上、上、右斜上に依存するマクロブロックの符号化又は復号がされた画像符号化規格に対して処理を行う場合であっても、横方向のマクロブロック数の1/2の並列度を実現でき、最も効率的な並列処理を行うことができる。
また、さらに、MPEG−2のような左横のみに依存するマクロブロックの符号化又は復号がされた画像符号化規格に対して処理をする場合であっても、ステップU33の調査処理の内容のみを変更すればよい。この場合、図18に示すように、スライスに対して左から順番に1つずつ符号化又は復号が進行していくので、縦方向のマクロブロック数の並列度を実現でき、やはり最も効率的な並列処理を行うことができる。
(処理対象マクロブロックの決定処理(第2の例))
つぎに、処理対象マクロブロックの決定処理(ステップU31)の第2の処理例について説明をする。
図12のステップU311〜U3110で示した方法では、各MB処理エージェント30が処理可能なマクロブロックをピクチャ全体から探し出し、その処理可能なマクロブロックがピクチャのどこに位置していてもよい、という検索例を示した。
しかしながら、このような方法の他に、以下に説明するように、1ピクチャ内のマクロブロックが処理されていく順序を一意に予め決めておき、各MB処理エージェント30がその順序に従いマクロブロックを検索して、処理を行っていくようにしてもよい。
例えば、H.264/MPEG−4AVCの場合、任意のマクロブロックに対する符号化又は復号処理は、そのマクロブロックの左横、左斜上、上、右斜上のマクロブロックに依存する。このため、図19に示すように、ある任意のマクロブロックに対して符号化又は復号処理がされた直後には、原則的に、その任意のマクロブロックの1つの下の行であって、2つ左側の列のマクロブロックに対して、処理が行われるのが望ましい。
このことに鑑み、本例では、図20(A)に示すように、画面の左上のマクロブロックから開始し、原則的に、ある任意のマクロブロックに対して処理がされた次は、その任意のマクロブロックの1つの下の行であって2つ左側の列のマクロブロックに対して検索が行われるように、一意的に走査順序を決めておく。さらに、図20(B)に示すように、もし、1つの下の行であって2つ左側の列が領域を超えてしまい、マクロブロックが存在しない場合には、まだ処理をしていないマクロブロック群のうちの、最も上のスライス(行)の最も左のマクロブロックに対して、検索がされるように走査順序の規則を決めておく。
このように検索の走査順序を決定しておくことによって、各行を見ると、右端から左端に向かい順番に1つずつマクロブロックに対する符号化又は復号処理が進行していき、行の上下関係を見ると、1つ上の行において処理されているマクロブロックよりも2マクロブロック分遅れたタイミング(2マクロブロック分左側に位置するタイミング)で、処理が行われていく。
従って、図21に示すように、処理済みのマクロブロックと未処理のマクロブロックとの境界が階段状となり、符号化又は復号処理が階段状に並列して進んでいく。そして、その階段状の並列処理が、左上位置から右下方向に進行していくこととなる。
以上のように、各MB処理エージェント30は、1ピクチャ内のマクロブロックが処理されていく順序を一意に予め決めておき、その順序に従いマクロブロックを検索して、処理可能なマクロブロックを見つけ出し、見つけ出したマクロブロックに対して符号化又は復号処理を行っていく。このことによって状態管理部33は、どのMB処理エージェント30(30−n)がどのマクロブロックに対して処理を行っているかを知る必要がないので、状態管理部33の実装が容易となる。さらに、1つの下の行であって2つ左側の列を選択することによって、H.264/MPEG-4AVCのようなマクロブロックの依存関係を有する場合には、最も効率よく並列処理を進行させることができ、処理速度を向上させることができる。
以下、検索のための走査順序を予め一意に決めておく場合における、各MB処理エージェント30がマクロブロック(X0,Y0)の決定を行う処理(ステップU31)について、さらに具体的に説明をする。
まず、処理フローの説明に用いる変数等について説明をする。
各MB処理エージェント30で共通な値をもつ変数は次の通りである。
PicMbHeight:1画面(フレーム)の縦のマクロブロック数
PicMbWidth:1画面(フレーム)の横のマクロブロック数
ParallelMbHeight :階段状に並列処理を行うために分割した領域の行数
StepMbWidth:階段状に並列処理を進行させていくために、1行下に下がったときに左側にマクロブロックをずらす際のずらし数
Sx,Sy:並列処理を行う複数の分割領域を、水平方向に展開して形成された仮想領域上におけるマクロブロックの仮想アドレス
Sx0:上記仮想領域上において斜め処理をされる際の、一番上のスライスにおいて選択されているマクロブロックの列方向のアドレス
また、MB処理エージェント毎に異なる変数は次の通りである。
X0,Y0:MB処理エージェント#0の符号化又は復号の対象となるマクロブロッ ク
st0:MB処理エージェント#0が符号化又は復号可能であるか否かを示すフラグ
1ならば符号化又は復号可能、0ならば符号化又は復号不可能
end0:MB処理エージェント#0の符号化又は復号の終了を示すフラグ
1ならば符号化又は復号終了、0ならば符号化又は復号は終了しない
base0:階段状に並列処理を行うために分割した領域の一番上の行の行アドレス
以上の変数について、図面を参照してさらに具体的に説明をする。
図22に示すように、PicMbHeightは、1画面の縦のマクロブロック数(1画面のスライス数)を示し、PicMbWidthは、1画面の横のマクロブロック数(列数)を示している。
本例では、図22に示すように、1ピクチャ内を所定の行毎に縦方向に複数の領域に分割をして、各領域毎に階段状の並列処理を行う。このように画面を分割して処理をすると、符号化又は復号した後の処理結果を保存しておくメモリ容量を少なくすることがきるからである。具体的に、ピクチャ内が上から、第1、第2、第3の領域に3分割されていたとすると、図23のA→図23のB→図23のCといったように、第1の領域の全てのマクロブロックに対して階段状に並列処理を行い、続いて、第2の領域、その次に、第3の領域といったように、領域単位に処理が進行していく。ParallelMbHeightは、このように領域分割をした際の各領域の縦の長さ、すなわち、並列処理を行う際における各領域の行数(スライス数)である。
また、base0は、図22に示すように、各分割領域の一番上のスライスの位置を示す変数である。
また、本例では、図22に示すように、ある任意のマクロブロックに対して処理がされると、その次に処理がされるのは、原則的に、一つ下の行の所定数左側に位置するマクロブロックである。StepMbWidthは、このような処理を行う際における左側にずらすマクロブロックの数である。本例では、StepMbWidthが“2”である場合を例にとって説明をするが、この値は2に限らず、0以上の整数であればよい。
また、本例では、図24(A)に示すように本来垂直方向に並んでいる分割領域を、図24(B)に示すように水平方向に仮想的に展開した仮想領域を形成し、当該仮想領域上で階段状の並列処理を行っていく。このように仮想領域で展開することによって、効率的に階段状の並列処理が可能となる。(Sx,Sy)は、現在検索されているマクロブロックの仮想領域上におけるアドレスである。Sxは、仮想領域のマクロブロックの行アドレス(垂直方向のアドレス)であり、Syは、仮想領域の列アドレス(水平方向のアドレス)である。また、Sx0は、図24(B)に示すように、分割領域を水平方向に展開した仮想領域上で、階段状の並列処理を行っている際に、現在処理中の斜め列における仮想領域上での一番上のスライスの列位置(つまり、水平位置:斜め処理の開始位置)を示す変数である。
図25に、MB処理エージェントのマクロブロック(X0,Y0)の決定処理(ステップU31)の具体的な処理フローを示す。
マクロブロック(X0,Y0)の決定処理が開始されると、まず、ステップU321において、MB処理エージェント30は、仮想アドレス(Sx,Sy)により特定される現在検索中のマクロブロックが、実行中状態(S02)又は処理完了状態(S03)であるか否かを判断する。実行中状態(S02)又は処理完了状態(S03)であれば、ステップU322の(x0,y0)生成処理に進み、実行中状態(S02)又は処理完了状態(S03)でなければ、ステップU323の終了判断処理に進む。
このステップU321の処理は、あるMB処理エージェント30が処理を行うマクロブロックを決定する際に、処理対象とされるマクロブロックの一つ手前のマクロブロック(原則的には、一つ上のスライスの2つ右側の列に位置するマクロブロック)が、実行中であるか又は処理完了していない限り、次のマクロブロックの位置が与えられず、現在検索中のマクロブロックを、そのMB処理エージェント30が処理するマクロブロック位置(X0,Y0)として与えることを意味している。
ステップU322の(x0,y0)生成処理では、処理対象となるマクロブロックの位置(X0,Y0)が計算される。ステップU322の処理を終えると、ステップU323の終了判断処理に進む。
ステップU323の終了判断処理では、1ピクチャ内の処理が全て完了したか否かを判断する。ステップU323の終了判断処理を終えると、当該マクロブロック(X0,Y0)の決定処理が終了し、メインフローに戻る。
図26に、ステップU322の(x0,y0)生成処理の処理フローを示す。
まず、ステップU322-1において、MB処理エージェント30は、以下の式(31),(32)の演算を行う。
Sx=Sx−StepMbWidth …(31)
Sy=Sy+1 …(32)
すなわち、MB処理エージェント30は、水平方向の仮想アドレスSxを、左側にずらすマクロブロック数であるStepMbWidthを減算するとともに、垂直方向の仮想アドレスSyに1を加算する。つまり、このステップU322-1では、現在の検索位置を示している仮想アドレス(Sx,Sy)を、1つの下の行の2つ左側の列に移動している。
続いて、ステップU322-2において、MB処理エージェント30は、水平方向の仮想アドレスSxが0以下であるか、垂直方向の仮想アドレスSyがParallelMbHeight以上であるか、又は、垂直方向の仮想アドレスSyがParallelMbHeight以上であるかを判断する。つまり、ステップU322-2では、図24(B)に示す仮想領域(分割領域を水平方向に展開したもの)内に、仮想アドレス(Sx,Sy)で示されたマクロブロックが存在するか否かを判断している。仮想アドレス(Sx,Sy)の位置にマクロブロックが存在する場合(ステップU322-2のNo)には、ステップU322-5に進む。仮想アドレス(Sx,Sy)の位置にマクロブロックが存在しない場合(ステップU322-2のYes)には、ステップU322-3に進む。
ステップU322-3において、MB処理エージェント30は、斜め処理の開始位置Sx0に1を加算する。続いて、MB処理エージェント30は、ステップU322-4において、水平方向の仮想アドレスSxに、ステップU322-3で処理した斜め処理の開始位置Sxを代入し、垂直方向の仮想アドレスSyに0を代入する。つまり、ステップU332-3及び332-4は、一つ下のスライスの2つ左の列にマクロブロックが存在しないため、仮想アドレス(Sx,Sy)を、未処理のマクロブロックのうちの最も上のスライスの最も左のマクロブロックに移動する処理を行っている。ステップU322-4の処理を終えると、ステップU322-5に進む。
ステップU322-5において、MB処理エージェント30は、下記式(33)を演算して、base0を求める。
base0=(Sx/PicMbWidth)×PrallelHeight …(33)
なお、式(33)において“Sx/PicMbWidth”は、SxをPicMbWidthで除算したときの商(整数値)を求める演算である。
続いて、ステップU322-6において、MB処理エージェント30は、下記式(34)を演算する。
Sy≧PrallelHeight−base0 …(34)
すなわち、ステップU322-6では、垂直方向の仮想アドレスSyにbase0を加えた値がParallelMbHeight以上であるかを判断する。つまり、検索対象となっているマクロブロックのアドレスが、実際のフレームの最下行を超えてしまっているか否かを判断する。超えていれば(ステップU322-6のNo)、ステップU322-1に戻り、再度、(x0,y0)生成処理を行う。超えていなければ(ステップU322-6のYes)、ステップU322-7に進む。
続いて、ステップU322-7において、MB処理エージェント30は、下記式(35)、(36)に示す演算を行い、処理対象となるマクロブロックのアドレス(X0,Y0)を決定する。
X0=Sx%PicMbWidth …(35)
Y0=Sy+Base0 …(36)
なお、式(35)において“Sx%PicMbWidth”は、SxをPicMbWidthで除算したときの余り(整数値)を求める演算である。
図27に、ステップU323の終了判断処理の処理フローを示す。
終了判断処理が開始すると、ステップU323-1において、MB処理エージェント30は、下記式(37)が真であるか、偽であるかを判断する。
ST[S03][ PicMbHeight-1 ]>= PicMbWidth …(37)
式(37)は、最下行のスライスが、全て処理完了状態(S03)となっていれば真である。すなわち、当該画面(フレーム)の全てのマクロブロックに対して符号化又は復号が完了しているか否かを意味している。
MB処理エージェント30は、まだ全てのマクロブロックの符号化又は復号が完了していなければ、ステップU323-2に進みフラグend0に0を代入し、当該処理を終了してメインフローに戻る。MB処理エージェント30は、全てのマクロブロックの符号化又は復号が完了していれば、ステップU323-3に進みフラグend0に1を代入しメインフローに戻る。
以上の処理の結果、MB処理エージェントの符号化又は復号対象マクロブロック(X0,Y0)を決定することができる。このように処理することによって、状態管理部33がどのMB処理エージェント30であるかを知る必要がなく、検索が一意となり、状態管理部33の実装が容易となる。また、横方向と縦方向のマクロブロックを均等に処理することで並列度が高くなり、処理速度が上がる。
さらに、H.264/MPEG−4AVCの左横、左斜上、上、右斜上に依存するマクロブロックの符号化又は復号がされた画像符号化規格に対して処理を行う場合、StepMbWidth=2に設定することによって、最も高い並列度となり、処理時間を最短にすることができる。
なお、本例では、StepMbWidth=2に設定をしたが、例えば、StepMbWidth=1とすることにより、図28に示すように、処理済みマクロブロックと未処理マクロブロックとの境界が1行に1列毎ずれた階段状となり、右上のマクロブロックと依存関係の無い画像符号化方式のコーデックにも適用することが可能となる。
本発明が適用されたビデオコーデックの中の符号化処理部分(ビデオエンコーダ)の構成図である。 各MB符号化部の処理内容を示したフローチャートである。 本発明が適用されたビデオコーデックの復号処理部(ビデオビデオデコーダ)の構成図である。 各MB復号部の処理内容を示したフローチャートである。 本発明が適用されたビデオコーデックの構成をマクロブロック処理部、その前処理部及び後処理部という観点で分けたときのブロック構成図である。 画面内のマクロブロックのアドレッシング例を示す図である。 任意の1つのマクロブロックの状態遷移を示すステートチャートである。 画面内の各マクロブロックの状態例を示す図である。 本発明が適用されたビデオコーデックのメイン処理のフローチャートである。 メインフローのうちの前処理のフローチャートである。 メインフローのうちのMB処理エージェントによる符号化又は復号の処理(ステップU3)のフローチャートである。 MB処理エージェントの処理のうちのマクロブロック(X0,Y0)の決定処理のフローチャートである。 マクロブロックの決定処理による検索順序を示した図である。 調査をする最も下のスライス位置を規定した場合の検索順序を示した図である。 決定されたマクロブロック(X0,Y0)が、符号化又は復号が可能となっているか否かの調査処理のフローチャートである。 メインフローのうちの後処理のフローチャートである。 本発明が適用されたビデオコーデックにより、MPEG−4又はH.264/MPEG−4AVCに対して処理を行う場合の並列処理の進行状況を示す図である。 本発明が適用されたビデオコーデックにより、MPEG−2に対して処理を行う場合の並列処理の進行状況を示す図である。 1ピクチャ内のマクロブロックが処理されていく順序を一意に予め決めておく場合のマクロブロックの処理順序を示す図である。 最下のスライス又は最左の列を超えた場合のマクロブロックの処理順序を示す図である。 階段状となっている処理済みのマクロブロックと未処理のマクロブロックとの境界を示す図である。 ピクチャ上のPicMbHeight、PicMbWidth、ParallelMbHeight等の値を示した図である。 ピクチャ内を垂直方向に分割して、各領域毎に並列処理が進めていく様子を示した図である。 分割された領域を仮想的に水平方向に展開したものを示した図である。 マクロブロック(X0,Y0)の決定処理の他の例のフローチャートである。 (X0,Y0)生成処理のフローチャートである。 終了判断処理のフローチャートである。 右上のマクロブロックに依存関係が無い場合の並列処理例を示した図である。 MPEG−2のマクロブロックの依存関係を示す図である。 MPEG−2のマクロブロック処理エンジンの並列処理の内容を示す図である。 MPEG−4及びH.264/MPEG−4AVCのマクロブロックの依存関係を示す図である。
符号の説明
1 エンコーダ、2 マクロブロック符号化部、3 動き検出、4 デブロッキング、5 VLC、15 デコーダ、16 マクロブロック復号部、17 VLD、18 デブロッキング、30 MB処理エージェント、31 前処理部、32 後処理部、33 状態管理部

Claims (16)

  1. 所定数の画素から構成されるマクロブロック単位で画面内を行列状に分割し、分割したマクロブロック単位で動画像データの符号化処理を行う符号化装置において、
    マクロブロック単位での符号化処理を並列して行う複数のマクロブロック処理部と、
    1つの画面内の各マクロブロックの処理状態を管理する状態管理部とを備え、
    上記状態管理部は、1つの画面内の各マクロブロックに対して、上記マクロブロック処理部により処理開始が可能な準備完了状態にあるか、上記マクロブロック処理部により実行中の実行中状態であるか、上記マクロブロック処理部により処理が完了済みの処理完了状態であるかを区別して管理し、
    各マクロブロック処理部は、
    上記状態管理部を検索して準備完了状態にあるマクロブロックを1つ検出し、
    検出したマクロブロックの上記状態管理部により管理されている状態を実行中状態に変化させ、
    検出したマクロブロックに対して符号化処理を行い、
    当該マクロブロックの符号化処理が終了すると、上記状態管理部の当該マクロブロックの状態を処理完了状態とする符号化装置。
  2. 各マクロブロック処理部は、画面の行方向に並んだ一群のマクロブロック群内では、少なくとも左側のマクロブロックから優先に符号化を行い、
    上記状態管理部は、画面の行方向に並んだ一群のマクロブロック群に対して行アドレスを設定し、行アドレス毎に各状態となっているマクロブロックの数量を管理している請求項1記載の符号化装置。
  3. 符号化対象となるマクロブロックに対して、左横、左斜め上、上及び右斜め上のマクロブロックの符号化結果を参照することが規定された規格に対応した符号化処理を行う場合、
    対象となるマクロブロックの左から数えたときの位置をxとし、
    対象となるマクロブロックの一つ上の行アドレスの処理完了状態のマクロブロックの数をST[S03][Y−1]とし、
    対象となるマクロブロックの行アドレスの処理完了状態のマクロブロックの数をST[S03][Y]とし、
    対象となるマクロブロックの行アドレスの準備完了状態のマクロブロックの数をST[S01][Y]としたとき、
    各マクロブロック処理部は、下記論理式(1)が真となるマクロブロックを検索して符号化を行う請求項2記載の符号化装置。
    {ST[S03][Y-1]>(X+1)}AND{ST[S03][Y]>(X-1)}AND{ST[S01][Y]>X}…(1)
  4. 符号化対象となるマクロブロックに対して、左横のマクロブロックの符号化結果を参照することが規定された規格に対応した符号化処理を行う場合、
    対象となるマクロブロックの左から数えたときの位置をxとし、
    対象となるマクロブロックの行アドレスの処理完了状態のマクロブロックの数をST[S03][Y]とし、
    対象となるマクロブロックの行アドレスの準備完了状態のマクロブロックの数をST[S01][Y]としたとき、
    各マクロブロック処理部は、下記論理式(2)が真となるマクロブロックを検索して符号化を行う請求項2記載の符号化装置。
    {ST[S03][Y]>(X-1)}AND{ST[S01][Y]>X}…(2)
  5. 所定数の画素から構成されるマクロブロック単位で画面内を行列状に分割し、分割したマクロブロック単位で動画像データの復号処理を行う復号装置において、
    マクロブロック単位での復号処理を並列して行う複数のマクロブロック処理部と、
    1つの画面内の各マクロブロックの処理状態を管理する状態管理部とを備え、
    上記状態管理部は、1つの画面内の各マクロブロックに対して、上記マクロブロック処理部により処理開始が可能な準備完了状態にあるか、上記マクロブロック処理部により実行中の実行中状態であるか、上記マクロブロック処理部により処理が完了済みの処理完了状態であるかを区別して管理し、
    各マクロブロック処理部は、
    上記状態管理部を検索して準備完了状態にあるマクロブロックを1つ検出し、
    検出したマクロブロックの上記状態管理部により管理されている状態を実行中状態に変化させ、
    検出したマクロブロックに対して復号処理を行い、
    当該マクロブロックの復号処理が終了すると、上記状態管理部の当該マクロブロックの状態を処理完了状態とする復号装置。
  6. 各マクロブロック処理部は、画面の行方向に並んだ一群のマクロブロック群内では、少なくとも左側のマクロブロックから優先に復号を行い、
    上記状態管理部は、画面の行方向に並んだ一群のマクロブロック群に対して行アドレスを設定し、行アドレス毎に各状態となっているマクロブロックの数量を管理している請求項5記載の復号装置。
  7. 復号対象となるマクロブロックに対して、左横、左斜め上、上及び右斜め上のマクロブロックの復号結果を参照することが規定された規格に対応した復号処理を行う場合、
    対象となるマクロブロックの左から数えたときの位置をxとし、
    対象となるマクロブロックの一つ上の行アドレスの処理完了状態のマクロブロックの数をST[S03][Y−1]とし、
    対象となるマクロブロックの行アドレスの処理完了状態のマクロブロックの数をST[S03][Y]とし、
    対象となるマクロブロックの行アドレスの準備完了状態のマクロブロックの数をST[S01][Y]としたとき、
    各マクロブロック処理部は、下記論理式(1)が真となるマクロブロックを検索して復号を行う請求項6記載の復号装置。
    {ST[S03][Y-1]>(X+1)}AND{ST[S03][Y]>(X-1)}AND{ST[S01][Y]>X}…(1)
  8. 復号対象となるマクロブロックに対して、左横のマクロブロックの復号結果を参照することが規定された規格に対応した復号処理を行う場合、
    対象となるマクロブロックの左から数えたときの位置をxとし、
    対象となるマクロブロックの行アドレスの処理完了状態のマクロブロックの数をST[S03][Y]とし、
    対象となるマクロブロックの行アドレスの準備完了状態のマクロブロックの数をST[S01][Y]としたとき、
    各マクロブロック処理部は、下記論理式(2)が真となるマクロブロックを検索して復号を行う請求項6記載の復号装置。
    {ST[S03][Y]>(X-1)}AND{ST[S01][Y]>X}…(2)
  9. 所定数の画素から構成されるマクロブロック単位で画面内を行列状に分割し、分割したマクロブロック単位で動画像データの符号化処理を行う符号化方法において、
    マクロブロック単位での符号化処理を並列して行う複数のマクロブロック処理エージェントを用いて符号化処理を行い、
    1つの画面内の各マクロブロックに対して、上記マクロブロック処理エージェントにより処理開始が可能な準備完了状態にあるか、上記マクロブロック処理エージェントにより実行中の実行中状態であるか、上記マクロブロック処理エージェントにより処理が完了済みの処理完了状態であるかを区別して管理し、
    各マクロブロック処理エージェントは、
    準備完了状態にあるマクロブロックを1つ検出し、
    検出したマクロブロックの状態を実行中状態に変化させ、
    検出したマクロブロックに対して符号化処理を行い、
    当該マクロブロックの符号化処理が終了すると、当該マクロブロックの状態を処理完了状態とする符号化方法。
  10. 各マクロブロック処理エージェントは、画面の行方向に並んだ一群のマクロブロック群内では、少なくとも左側のマクロブロックから優先に符号化を行い、
    画面の行方向に並んだ一群のマクロブロック群に対して行アドレスを設定し、行アドレス毎に各状態となっているマクロブロックの数量を管理している請求項9記載の符号化方法。
  11. 符号化対象となるマクロブロックに対して、左横、左斜め上、上及び右斜め上のマクロブロックの符号化結果を参照することが規定された規格に対応した符号化処理を行う場合、
    対象となるマクロブロックの左から数えたときの位置をxとし、
    対象となるマクロブロックの一つ上の行アドレスの処理完了状態のマクロブロックの数をST[S03][Y−1]とし、
    対象となるマクロブロックの行アドレスの処理完了状態のマクロブロックの数をST[S03][Y]とし、
    対象となるマクロブロックの行アドレスの準備完了状態のマクロブロックの数をST[S01][Y]としたとき、
    各マクロブロック処理エージェントは、下記論理式(1)が真となるマクロブロックを検索して符号化を行う請求項10記載の符号化方法。
    {ST[S03][Y-1]>(X+1)}AND{ST[S03][Y]>(X-1)}AND{ST[S01][Y]>X}…(1)
  12. 符号化対象となるマクロブロックに対して、左横のマクロブロックの符号化結果を参照することが規定された規格に対応した符号化処理を行う場合、
    対象となるマクロブロックの左から数えたときの位置をxとし、
    対象となるマクロブロックの行アドレスの処理完了状態のマクロブロックの数をST[S03][Y]とし、
    対象となるマクロブロックの行アドレスの準備完了状態のマクロブロックの数をST[S01][Y]としたとき、
    各マクロブロック処理エージェントは、下記論理式(2)が真となるマクロブロックを検索して符号化を行う請求項10記載の符号化方法。
    {ST[S03][Y]>(X-1)}AND{ST[S01][Y]>X}…(2)
  13. 所定数の画素から構成されるマクロブロック単位で画面内を行列状に分割し、分割したマクロブロック単位で動画像データの復号処理を行う復号方法において、
    マクロブロック単位での復号処理を並列して行う複数のマクロブロック処理エージェントを用いて復号処理を行い、
    1つの画面内の各マクロブロックに対して、上記マクロブロック処理エージェントにより処理開始が可能な準備完了状態にあるか、上記マクロブロック処理エージェントにより実行中の実行中状態であるか、上記マクロブロック処理エージェントにより処理が完了済みの処理完了状態であるかを区別して管理し、
    各マクロブロック処理エージェントは、
    準備完了状態にあるマクロブロックを1つ検出し、
    検出したマクロブロックの状態を実行中状態に変化させ、
    検出したマクロブロックに対して復号処理を行い、
    当該マクロブロックの復号処理が終了すると、当該マクロブロックの状態を処理完了状態とする復号方法。
  14. 各マクロブロック処理エージェントは、画面の行方向に並んだ一群のマクロブロック群内では、少なくとも左側のマクロブロックから優先に復号を行い、
    画面の行方向に並んだ一群のマクロブロック群に対して行アドレスを設定し、行アドレス毎に各状態となっているマクロブロックの数量を管理している請求項13記載の復号方法。
  15. 復号対象となるマクロブロックに対して、左横、左斜め上、上及び右斜め上のマクロブロックの復号結果を参照することが規定された規格に対応した復号処理を行う場合、
    対象となるマクロブロックの左から数えたときの位置をxとし、
    対象となるマクロブロックの一つ上の行アドレスの処理完了状態のマクロブロックの数をST[S03][Y−1]とし、
    対象となるマクロブロックの行アドレスの処理完了状態のマクロブロックの数をST[S03][Y]とし、
    対象となるマクロブロックの行アドレスの準備完了状態のマクロブロックの数をST[S01][Y]としたとき、
    各マクロブロック処理エージェントは、下記論理式(1)が真となるマクロブロックを検索して復号を行う請求項14記載の復号方法。
    {ST[S03][Y-1]>(X+1)}AND{ST[S03][Y]>(X-1)}AND{ST[S01][Y]>X}…(1)
  16. 復号対象となるマクロブロックに対して、左横のマクロブロックの復号結果を参照することが規定された規格に対応した復号処理を行う場合、
    対象となるマクロブロックの左から数えたときの位置をxとし、
    対象となるマクロブロックの行アドレスの処理完了状態のマクロブロックの数をST[S03][Y]とし、
    対象となるマクロブロックの行アドレスの準備完了状態のマクロブロックの数をST[S01][Y]としたとき、
    各マクロブロック処理エージェントは、下記論理式(2)が真となるマクロブロックを検索して復号を行う請求項14記載の復号方法。
    {ST[S03][Y]>(X-1)}AND{ST[S01][Y]>X}…(2)
JP2004317003A 2004-10-29 2004-10-29 符号化及び復号装置並びに符号化及び復号方法 Expired - Fee Related JP4407472B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004317003A JP4407472B2 (ja) 2004-10-29 2004-10-29 符号化及び復号装置並びに符号化及び復号方法
US11/260,847 US7881542B2 (en) 2004-10-29 2005-10-27 Coding apparatus, decoding apparatus, coding method and decoding method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004317003A JP4407472B2 (ja) 2004-10-29 2004-10-29 符号化及び復号装置並びに符号化及び復号方法

Publications (2)

Publication Number Publication Date
JP2006129285A JP2006129285A (ja) 2006-05-18
JP4407472B2 true JP4407472B2 (ja) 2010-02-03

Family

ID=36261843

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004317003A Expired - Fee Related JP4407472B2 (ja) 2004-10-29 2004-10-29 符号化及び復号装置並びに符号化及び復号方法

Country Status (2)

Country Link
US (1) US7881542B2 (ja)
JP (1) JP4407472B2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4779735B2 (ja) * 2006-03-16 2011-09-28 パナソニック株式会社 復号装置、復号方法、プログラムおよび記録媒体
JP2007318517A (ja) * 2006-05-26 2007-12-06 Sony Corp 画像データの処理方法、画像データの処理方法のプログラム、画像データの処理方法のプログラムを記録した記録媒体及び画像データの処理装置
JP2007325027A (ja) * 2006-06-01 2007-12-13 Oki Electric Ind Co Ltd 画像分割方法、画像分割装置、および画像分割プログラム
JP4847222B2 (ja) * 2006-06-12 2011-12-28 日本電信電話株式会社 動画像のフィルタ処理方法,装置,フィルタ処理プログラムおよびその記録媒体
US20100122044A1 (en) * 2006-07-11 2010-05-13 Simon Ford Data dependency scoreboarding
JP4647558B2 (ja) * 2006-07-27 2011-03-09 日本電信電話株式会社 映像符号化並列処理方法,映像符号化装置,映像符号化プログラムおよびその記録媒体
JP4789200B2 (ja) * 2006-08-07 2011-10-12 ルネサスエレクトロニクス株式会社 動画符号化と動画復号とのいずれかを実行する機能モジュールおよびそれを含む半導体集積回路
WO2008020470A1 (en) * 2006-08-15 2008-02-21 Fujitsu Limited Decoding method and device
JP4936869B2 (ja) * 2006-12-12 2012-05-23 株式会社東芝 画像処理装置及び画像処理方法
WO2008114367A1 (ja) * 2007-03-16 2008-09-25 Fujitsu Limited 計算機システム及び符号化/復号化方法
JP4807320B2 (ja) * 2007-05-14 2011-11-02 ソニー株式会社 復号装置、符号化装置、復号方法、符号化方法、および映像の復号と符号化を行うプログラム
JPWO2009063646A1 (ja) 2007-11-16 2011-03-31 パナソニック株式会社 画像復号装置及び画像復号方法
US20100302451A1 (en) * 2007-12-04 2010-12-02 Panasonic Corporation Video signal processing device
WO2009142021A1 (ja) * 2008-05-23 2009-11-26 パナソニック株式会社 画像復号化装置、画像復号化方法、画像符号化装置、及び画像符号化方法
JP5756921B2 (ja) * 2008-06-10 2015-07-29 パナソニックIpマネジメント株式会社 画像復号装置、画像復号方法、画像符号化装置、画像符号化方法、プログラムおよび集積回路
JP5100561B2 (ja) * 2008-07-31 2012-12-19 キヤノン株式会社 画像処理装置および画像処理方法
JP5236386B2 (ja) * 2008-08-05 2013-07-17 パナソニック株式会社 画像復号装置及び画像復号方法
JP5120324B2 (ja) * 2009-04-16 2013-01-16 パナソニック株式会社 画像復号装置及び画像復号方法
US8559733B2 (en) * 2009-03-31 2013-10-15 Citrix Systems, Inc. Methods and systems for approximating progressive image encoding using image partitioning
JP5343703B2 (ja) * 2009-05-22 2013-11-13 ソニー株式会社 復号処理装置、復号処理方法、およびプログラム
EP2299717A1 (en) * 2009-09-10 2011-03-23 Thomson Licensing Method and apparatus for image encoding using Hold-MBs, and method and apparatus for image decoding using Hold-MBs
JP2011066844A (ja) * 2009-09-18 2011-03-31 Toshiba Corp 並列復号装置及びプログラム並びに符号化データの並列復号方法
JP2011166273A (ja) * 2010-02-05 2011-08-25 Mitsubishi Electric Corp 動画像符号化装置及び動画像符号化方法
US8976856B2 (en) * 2010-09-30 2015-03-10 Apple Inc. Optimized deblocking filters
JP6384484B2 (ja) * 2013-09-30 2018-09-05 日本電気株式会社 処理制御装置、処理制御方法および処理制御プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH031689A (ja) 1989-05-30 1991-01-08 Mitsubishi Electric Corp マルチプロセッサ制御装置
US5907660A (en) * 1994-09-21 1999-05-25 Mitsubishi Denki Kabushiki Kaisha Digital video signal playback device with special playback data being in the form of a still image slice data
US5629736A (en) * 1994-11-01 1997-05-13 Lucent Technologies Inc. Coded domain picture composition for multimedia communications systems
JP3518700B2 (ja) * 1995-01-25 2004-04-12 ソニー株式会社 デイジタル信号復号装置
JPH08214104A (ja) * 1995-02-02 1996-08-20 Olympus Optical Co Ltd 情報再生システム
JP3000949B2 (ja) * 1997-02-12 2000-01-17 日本電気株式会社 音声・画像同期圧縮再生装置及びその方法
JP3063715B2 (ja) * 1997-12-19 2000-07-12 日本電気株式会社 画像圧縮装置
US6263019B1 (en) * 1998-10-09 2001-07-17 Matsushita Electric Industrial Co., Ltd. Variable rate MPEG-2 video syntax processor
US7020823B2 (en) * 2002-03-19 2006-03-28 Matsushita Electric Industrial Co., Ltd. Error resilient coding, storage, and transmission of digital multimedia data
US7689051B2 (en) * 2004-04-15 2010-03-30 Microsoft Corporation Predictive lossless coding of images and video

Also Published As

Publication number Publication date
US20060093043A1 (en) 2006-05-04
US7881542B2 (en) 2011-02-01
JP2006129285A (ja) 2006-05-18

Similar Documents

Publication Publication Date Title
JP4453518B2 (ja) 符号化及び復号装置並びに符号化及び復号方法
JP4407472B2 (ja) 符号化及び復号装置並びに符号化及び復号方法
US10397575B2 (en) Image coding apparatus, image coding method, and program, and image decoding apparatus, image decoding method, and program
TWI581612B (zh) 導出運動資訊的方法
TWI387348B (zh) 解區塊濾波處理裝置及解區塊濾波處理方法
JP5672302B2 (ja) 動画像復号装置、動画像復号方法及び動画像符号化装置ならびに動画像符号化方法
US20090274213A1 (en) Apparatus and method for computationally efficient intra prediction in a video coder
US8189667B2 (en) Moving picture encoding apparatus
JP2008017229A (ja) 動画像符号化装置
JPWO2009044475A1 (ja) 符号化装置、符号化方法、符号化プログラムおよび符号化回路
KR100677118B1 (ko) 움직임 추정 방법 및 그 장치
JP2010193401A (ja) 画像符号化方法及び画像符号化装置
JP2008271127A (ja) 符号化装置
KR20090041944A (ko) 인근 블록의 모드정보를 이용한 움직임 추정 방법 및 장치
JP4789719B2 (ja) 動きベクトル検出装置、動きベクトル検出方法、コンピュータプログラム及び記憶媒体
JP5235813B2 (ja) 動画像符号化装置、動画像符号化方法及びコンピュータプログラム
KR100728032B1 (ko) 워핑 기반의 인트라 예측 방법
JP5235818B2 (ja) 動画像符号化装置、動画像符号化装置の制御方法及びプログラム
CN116647676A (zh) 基于屏幕内容区域特性的cu划分快速选择

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070702

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090804

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090924

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

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

R151 Written notification of patent or utility model registration

Ref document number: 4407472

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131120

Year of fee payment: 4

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees