(57)【特許請求の範囲】
【請求項１】
画像データを符号化する画像符号化装置を構成するマクロブロック・シャッフリング装置であって、
該マクロブロック・シャッフリング装置は、
複数のマクロブロックの形態で構成される画像データを入力し、前記複数のマクロブロックを複数のスーパーブロックに分割及び配置し、各マクロブロックが１つのスーパーブロックのみに配置されるスーパーブロック分割部と、
各スーパーブロックから前記マクロブロックを連続的に抽出し、抽出された前記マクロブロックを再配置し、複数のパックを生成し、各々が第１の所定の数のマクロブロックまたは前記第１の所定の数のマクロブロックより少ない第２の所定の数のマクロブロックを有する、パック生成部と、
前記パック生成部によって生成された複数のパックの各々から、一つずつ順にマクロブロックを抽出して、前記第１の所定の数のマクロブロックと同一の数のスライスを生成し、各スライスが複数のマクロブロックを有する、スライス生成部と、
を含み、
前記パック生成部は、前記画像データに含まれるマクロブロックの総数をパックの数で除して、その商を前記第１の所定の数のマクロブロックとし、
余りのある場合は、その余りを前記第２の所定の数とし、一つのパックのみ前記第２の所定の数のマクロブロックを有するようにパックを生成し、
余りのない場合は、前記第２の所定の数を前記第１の所定の数と同一となるようにパックを生成し、
前記スライス生成部は、前記スライスの各々に含まれる前記複数のマクロブロックを、それぞれ異なるパックから抽出する、マクロブロック・シャッフリング装置。
【請求項２】
前記パック生成部は、マクロブロックを抽出する際に、マクロブロックの順序を無作為に入れ換える、請求項１記載のマクロブロック・シャッフリング装置。
【請求項３】
前記パック生成部は、所定の関数に従って前記スーパーブロックごとにマクロブロックを抽出して、前記複数のパックの一つずつに順に振り分ける、請求項１記載のマクロブロック・シャッフリング装置。
【請求項４】
前記パック生成部は、前記スーパーブロックごとにマクロブロックを抽出する際に、マクロブロックの順序を無作為に入れ換える、請求項３記載のマクロブロック・シャッフリング装置。
【請求項５】
前記スーパーブロック分割部が分割する複数のスーパーブロックは、それぞれ矩形に表現され、
互いに、縦に並ぶマクロブロックの数と横に並ぶマクロブロックの数の等しい、第１のスーパーブロックの群と、
互いに、前記第１のスーパーブロックの群のスーパーブロックの各々と、縦に並ぶマクロブロックの数の等しいが、横に並ぶマクロブロックの数の異なる、第２のスーパーブロックの群と、
互いに、前記第１のスーパーブロックの群のスーパーブロックの各々と、横に並ぶマクロブロックの数の等しいが、縦に並ぶマクロブロックの数の異なる、第３のスーパーブロックの群と、
前記第２のスーパーブロックの群のスーパーブロックと、横に並ぶマクロブロックの数の等しく、前記第３のスーパーブロックの群のスーパーブロックと、縦に並ぶマクロブロックの数が等しい、第４のスーパーブロックと、からなり、
前記パック生成部は、前記スーパーブロックごとにマクロブロックを横方向に上方から順に抽出して、前記複数のパックの一つずつに順に振り分ける、請求項３記載のマクロブロック・シャッフリング装置。
【請求項６】
画像データを符号化する画像符号化処理を構成するマクロブロック・シャッフリング方法であって、
該マクロブロック・シャッフリング方法は、
複数のマクロブロックの形態で構成される画像データを入力し、前記複数のマクロブロックを複数のスーパーブロックに分割及び配置し、各マクロブロックが１つのスーパーブロックのみに配置されるスーパーブロック分割ステップと、
各スーパーブロックから前記マクロブロックを連続的に抽出し、抽出された前記マクロブロックを再配置し、複数のパックを生成し、各々が第１の所定の数のマクロブロックまたは前記第１の所定の数のマクロブロックより少ない第２の所定の数のマクロブロックを有する、パック生成ステップと、
前記パック生成ステップによって生成された複数のパックの各々から、一つずつ順にマクロブロックを抽出して、前記第１の所定の数のマクロブロックと同一の数のスライスを生成し、各スライスが複数のマクロブロックを有する、スライス生成ステップと、
を含み、
前記パック生成ステップでは、前記画像データに含まれるマクロブロックの総数をパックの数で除して、その商を前記第１の所定の数のマクロブロックとし、
余りのある場合は、その余りを前記第２の所定の数とし、一つのパックのみ前記第２の所定の数のマクロブロックを有するようにパックを生成し、
余りのない場合は、前記第２の所定の数を前記第１の所定の数と同一となるようにパックを生成し、
前記スライス生成ステップにおいて、前記スライスの各々に含まれる前記複数のマクロブロックを、それぞれ異なるパックから抽出する、マクロブロック・シャッフリング方法。
【請求項７】
画像データを符号化する画像符号化処理を構成するマクロブロック・シャッフリング処理をコンピュータに実行させるプログラムであって、
該マクロブロック・シャッフリング処理は、
複数のマクロブロックの形態で構成される画像データを入力し、前記複数のマクロブロックを複数のスーパーブロックに分割及び配置し、各マクロブロックが１つのスーパーブロックのみに配置されるスーパーブロック分割ステップと、
各スーパーブロックから前記マクロブロックを連続的に抽出し、抽出された前記マクロブロックを再配置し、複数のパックを生成し、各々が第１の所定の数のマクロブロックまたは前記第１の所定の数のマクロブロックより少ない第２の所定の数のマクロブロックを有する、パック生成ステップと、
前記パック生成ステップによって生成された複数のパックの各々から、一つずつ順にマクロブロックを抽出して、前記第１の所定の数のマクロブロックと同一の数のスライスを生成し、各スライスが複数のマクロブロックを有する、スライス生成ステップと、
を含み、
前記パック生成ステップでは、前記画像データに含まれるマクロブロックの総数をパックの数で除して、その商を前記第１の所定の数のマクロブロックとし、
余りのある場合は、その余りを前記第２の所定の数とし、一つのパックのみ前記第２の所定の数のマクロブロックを有するようにパックを生成し、
余りのない場合は、前記第２の所定の数を前記第１の所定の数と同一となるようにパックを生成し、
前記スライス生成ステップにおいて、前記スライスの各々に含まれる前記複数のマクロブロックを、それぞれ異なるパックから抽出する、マクロブロック・シャッフリングプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マクロブロックをシャッフリングするシャッフリング装置、シャッフリング方法、及びシャッフリング・プログラムに関する。
【背景技術】
【０００２】
動画像をデジタル処理する技術では、対象となる膨大な情報量のデータに高能率の圧縮処理を行う必要がある。
【０００３】
図１３に、画像符号化装置の一例を示す。図１３に示すように、画像符号化装置１００は、動画像データを入力すると、ブロック化処理を行って、ＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）変換を行うための基本単位である８×８のマクロブロックを生成するブロック化部１０１と、ブロック化部１０１によって生成されたマクロブロックを所定の個数ずつ集めてスライスとし、マクロブロックをこのスライスの単位でシャッフリングして、情報量を均一化するシャッフリング部１０２と、マクロブロックの動きを検出する動き検出部１０３と、動き検出部１０３によって検出された動きに基づいて、シャッフリングされたブロックをスライスごとにＤＣＴ変換して重み付け処理を行うＤＣＴ処理部１０４と、ＤＣＴ処理部１０４によって処理されたブロックをクラス分けして、符号量を推定する符号量推定部１０５と、符号量推定部１０５によって推定された符号量に従って、ブロックを量子化する量子化部１０６と、量子化部１０６によって量子化されたスライスを可変長符号化して、情報量を高能率に圧縮した圧縮符号化データを出力する可変長符号化部（ＶＬＣ）１０８と、を備える。
【０００４】
ブロック化部１０１で連続的に生成され、出力されるマクロブロックは、撮像した画像の情報を直接反映しているため、隣接するマクロブロックの間で相関が生じ、例えば、個々のマクロブロックに含まれるエラーの量やデータの量が、一部のマクロブロックの群に集中することがある。このようなデータ・エラーの伝播防止、または処理を複数の処理単位に分けて複数の演算器で同時処理することによる処理速度の向上を目的として、例えば、一枚の画像を圧縮処理する場合であっても、処理を複数の処理単位に分けて処理を行うことがある。このように独立して処理を行うことができる処理単位をここでは「スライス」と呼ぶ。このため、シャッフリング部１０２は、複数のマクロブロックを集めたスライスごとに、マクロブロックの空間的な位置を元の位置から移動させて、混ぜ合わせるシャッフリング処理を行う。こうして、マクロブロック間の相関を低下させて、マクロブロックの間のデータ量を均等に分散すると同時に、一部のマクロブロックの群にエラーが集中することを防止している。
【０００５】
このシャッフリング部１０２が行うシャッフリング処理は、主にＨＤデジタルＶＣＲ協議会より家庭用に発表されたデジタルビデオの規格であるＤＶ規格にしたがっている（非特許文献１、２を参照）。ＤＶ規格が定めるシャッフリング方式は、７２０×４８０、７２０×５７６、９６０×７２０、１２８０×１０８０、１４４０×１０８０という所定のサイズの画像を想定している。さらに、シャッフリング部１０２は、画像をスーパーブロックに分割して、スーパーブロックごとに所定の数のマクロブロックを抽出して並び替えるようになっているが、画像を分割するスーパーブロックのサイズもすべて決められている。
【０００６】
図１４に、ＤＶ規格にしたがって、シャッフリング部１０２がシャッフリングを実行する画像データの構造を示す。Ｉｘは画像の水平方向のマクロブロックの数、Ｉｙは画像の垂直方向のマクロブロックの数を示す。さらに、シャッフリング部１０２が分割するスーパーブロックの水平方向のマクロブロックの各々の数をＳＢｓｘ、スーパーブロックの各々の垂直方向のマクロブロックの数をＳＢｓｙとしている。図１４から明らかなように、シャッフリング部１０２が処理する画像のサイズは既定であるため、分割するスーパーブロックのサイズも、水平方向にＳＢｓｘ、垂直方向にＳＢｓｙと均等に振り分けることができる。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】ＳＭＰＴＥ３１４Ｍ−１９９９  「Ｄａｔａ  Ｓｔｒｕｃｔｕｒｅ  ｆｏｒ  ＤＶ−Ｂａｓｅｄ  Ａｕｄｉｏ，Ｄａｔａ  ａｎｄ  Ｃｏｍｐｒｅｓｓｅｄ  Ｖｉｄｅｏ  −  ２５  ａｎｄ  ５０Ｍｂ／ｓ」
【非特許文献２】ＳＭＰＴＥ３７０Ｍ−２００２  「Ｄａｔａ  Ｓｔｒｕｃｔｕｒｅ  ｆｏｒ  ＤＶ−Ｂａｓｅｄ  Ａｕｄｉｏ，Ｄａｔａ  ａｎｄ  Ｃｏｍｐｒｅｓｓｅｄ  Ｖｉｄｅｏ  ａｔ  １００Ｍｂ／ｓ  −  １０８０／６０ｉ，１０８０／５０ｉ，７２０／６０ｐ」
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、ＤＶ規格が定めるシャッフリング方式は適用する画像のサイズを、７２０×４８０、７２０×５７６、９６０×７２０、１２８０×１０８０、１４４０×１０８０と既定しているため、ＤＶ規格が既定していないサイズの画像に対してはシャッフリングの適用ができなかった。さらに、任意のサイズの画像にシャッフリング処理を行おうとしても、画像によっては、画像データを、図１４に示した場合のように、各々の水平方向のマクロブロックの数と垂直方向のマクロブロックの数をそれぞれＳＢｓｘ、ＳＢｓｙと均等に分割したスーパーブロックを生成できない場合も起こりうる。ＤＶ規格ではスーパーブロックごとにシャッフリングを行うマクロブロックを抽出しているため、スーパーブロックに含まれるマクロブロックの数が均一にならないと、シャッフリングも均等に行うことができない。
【０００９】
さらに、マクロブロックを空間的に元の位置から他の位置に移動させるシャッフリング処理を行う際に規則性が存在すると、シャッフリングした後のマクロブロックの間に所定の間隔で相関が生じうる。このため、任意のサイズの画像に適用しようとして、シャッフリング処理を簡略化すると、マクロブロックに含まれるデータ量やエラーの量が、所定の間隔で規則性をもって変化して、画質劣化の原因となることがある。このため、例えば、独自の編集用コーデック処理を行う場合等、ＤＶ規格が想定していない任意のサイズの画像に対してマクロブロックのシャッフリングを効率的に行うことは極めて困難であった。
【００１０】
本発明は、従来の問題を解決するためになされたもので、任意のサイズの画像に対してマクロブロック・シャッフリングを略均等に実行して、マクロブロックの間の相関を低下させることができるシャッフリング装置、シャッフリング方法及びシャッフリング・プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の第１の態様によると、画像データを符号化する画像符号化装置を構成するマクロブロック・シャッフリング装置であって、該マクロブロック・シャッフリング装置は、前記画像データを構成する複数のマクロブロックが配置された画面から、マクロブロックを抽出して順に並び替え、各々が第１の所定の数または前記第１の所定の数より少ない第２の所定の数のマクロブロックを有する、複数のパックを生成するパック生成部と、前記パック生成部によって生成された複数のパックの各々から、一つずつ順にマクロブロックを抽出して、各々が複数のマクロブロックを有する、前記第１の所定の数と同一の数のスライスを生成するスライス生成部と、を含み、前記パック生成部は、前記画像データに含まれるマクロブロックの総数を前記パックの数で除して、その商を前記第１の所定の数とし、余りのない場合は、前記第２の所定の数を前記第１の所定の数と同一となるようにパックを生成し、余りのある場合は、その余りを前記第２の所定の数として一つのパックのみ前記第２の所定の数のマクロブロックを有するようにパックを生成し、前記スライス生成部は、前記スライスの各々に含まれる前記複数のマクロブロックを、それぞれ異なるパックから抽出する、マクロブロック・シャッフリング装置を提供する。
【００１２】
データ・エラーの伝播防止、または処理を複数の処理単位に分けて複数の演算器で同時処理することによる処理速度の向上を目的として、例えば、一枚の画像を圧縮処理する場合、処理を複数の処理単位に分けて処理を行うことがある。このように独立して処理を行うことができる処理単位をここでは「スライス」と呼ぶ。これは、特に断らない限り、本願の特許請求の範囲及び明細書中でも同様である。一枚の画像を複数のスライスに分割する際、単純に画像の端から順番に割り振って分けると、画像には青空のように情報量が少ない場所と小さな文字群のように情報量が多い場所があるため、画像の内容によって各スライス間で処理の重さにばらつきが出ることがある。そこでマクロブロックの並び替え、すなわち、シャッフリングという処理を行い、各スライスに割り当てるマクロブロックを空間的に分散した場所から満遍なく抽出することでスライス間の情報量を均一化する。このようにして、スライス間の情報量を均一化することによって、レートコントロールが行いやすくなり、復号時の負荷も均一に分散させる効果が期待できる。本発明のマクロブロック・シャッフリング装置では、パック生成部は、画像データに含まれるマクロブロックの総数をパックの数で除して、その商を第１の所定の数となるようにし、余りのある場合は、その余りを第２の所定の数となるようにし、一つのパックのみ第２の所定の数のマクロブロックを有するようにパックを生成し、余りのない場合は、第２の所定の数を第１の所定の数と同一となるようにパックを生成するので、例えば、パックの個数分に均等にマクロブロックを振り分けることができないサイズの画像に対しても、パックに含まれるマクロブロックの数は、一つのパックを除いて、同数となる。スライス生成部は、パック生成部によって生成された複数のパックの各々から、一つずつ順にマクロブロックを抽出して、各々が複数のマクロブロックを有する、第１の所定の数と同一の数のスライスを生成し、かつ、スライス生成部は、スライスの各々に含まれる複数のマクロブロックを、それぞれ異なるパックから抽出するので、例えば、パックの個数分に均等にマクロブロックを振り分けることができないサイズの画像であっても、生成される複数のスライスの各々に含まれるマクロブロックの数の差は、一つのパックのみに含まれる第２の所定の数のマクロブロックを振り分けられたスライスと振り分けられなかったスライスとのマクロブロックの数の差、すなわち１個のみとなる。したがって、本発明のマクロブロック・シャッフリング装置は、任意のサイズの画像に対しても、略均等にシャッフリングを実行して、マクロブロックの間の相関を低下させることができる。また、シャッフリングによってマクロブロック間の相関が低下すると、スライス間の量子化値が近づくため、量子化のスピードを上げ、１画像当たりのクオリティを均一化しやすいという効果も期待できる。このように、本発明のマクロブロック・シャッフリング装置は、本発明はこのシャッフリング手法を工夫することで任意のサイズの画像であっても、情報量の偏りが少なくなるように、複数のスライスに分割する。
【００１３】
さらに、本発明によると、マクロブロック・シャッフリング装置は、前記画像データを構成する複数のマクロブロックを配置した画面を複数のスーパーブロックに分割して、前記複数のマクロブロックをスーパーブロックごとに分類する、スーパーブロック分割部を含み、前記パック生成部は、所定の関数に従って前記スーパーブロックごとにマクロブロックを抽出して、前記複数のパックの一つずつに順に振り分けるようにしてもよい。
【００１４】
この構成によって、本発明のマクロブロック・シャッフリング装置では、パック生成部は、スーパーブロックごとに、所定の関数に従って前記スーパーブロックごとにマクロブロックを抽出して、前記複数のパックの一つずつに順に振り分けることができるので、上述の特徴に加えて、効率的に、任意のサイズの画像に対してマクロブロック・シャッフリングを略均等に実行して、マクロブロックの間の相関を低下させることができる。
【００１５】
さらに、本発明によると、前記パック生成部は、前記スーパーブロックごとにマクロブロックを抽出する際に、マクロブロックの順序を無作為に入れ換えるようにしてもよい。
【００１６】
マクロブロックを空間的に元の位置から他の位置に移動させるシャッフリング処理を行う際、規則性が存在すると、シャッフリングした後のマクロブロックの間に所定の間隔で相関が生じることもある。この構成により、本発明のマクロブロック・シャッフリング装置は、上述の特徴に加え、シャッフリングした後のマクロブロックの間の相関を一層低下させることができる。
【００１７】
さらに、本発明によると、前記スーパーブロック分割部が分割する複数のスーパーブロックはそれぞれ矩形に表現され、互いに、縦に並ぶマクロブロックの数と横に並ぶマクロブロックの数の等しい、第１のスーパーブロックの群と、互いに、前記第１のスーパーブロックの群のスーパーブロックの各々と、縦に並ぶマクロブロックの数の等しいが、横に並ぶマクロブロックの数の異なる、第２のスーパーブロックの群と、互いに、前記第１のスーパーブロックの群のスーパーブロックの各々と、横に並ぶマクロブロックの数の等しいが、縦に並ぶマクロブロックの数の異なる、第３のスーパーブロックの群と、前記第２のスーパーブロックの群のスーパーブロックと、横に並ぶマクロブロックの数の等しく、前記第３のスーパーブロックの群のスーパーブロックと、縦に並ぶマクロブロックの数が等しい、第４のスーパーブロックと、からなり、前記パック生成部は、前記スーパーブロックごとにマクロブロックを横方向に上方から順に抽出して、前記複数のパックの一つずつに順に振り分けるようにしてもよい。
【００１８】
この構成により、本発明のマクロブロック・シャッフリング装置は、任意のサイズの画像に対しても、略均等にシャッフリングを実行して、マクロブロックの間の相関を低下させることができる。
【００１９】
本発明の第２の態様によると、画像データを符号化する画像符号化処理を構成するマクロブロック・シャッフリング方法であって、該マクロブロック・シャッフリング方法は、前記画像データを構成する複数のマクロブロックが配置された画面から、マクロブロックを抽出して順に並び替え、各々が第１の所定の数または前記第１の所定の数より少ない第２の所定の数のマクロブロックを有する、複数のパックを生成するパック生成ステップと、前記パック生成ステップによって生成された複数のパックの各々から、一つずつ順にマクロブロックを抽出して、各々が複数のマクロブロックを有する、前記第１の所定の数と同一の数のスライスを生成するスライス生成ステップと、を含み、前記パック生成ステップでは、前記画像データに含まれるマクロブロックの総数を前記パックの数で除して、その商を前記第１の所定の数とし、余りのある場合は、その余りを前記第２の所定の数とし、一つのパックのみ前記第２の所定の数のマクロブロックを有するようにパックを生成し、余りのない場合は、前記第２の所定の数を前記第１の所定の数と同一となるようにパックを生成し、前記スライス生成ステップにおいて、前記スライスの各々に含まれる前記複数のマクロブロックを、それぞれ異なるパックから抽出する、マクロブロック・シャッフリング方法を提供する。
【００２０】
この構成により、本発明のマクロブロック・シャッフリング方法は、任意のサイズの画像に対しても、略均等にシャッフリングを実行して、マクロブロックの間の相関を低下させることができる。
【００２１】
本発明の第３の態様によると、画像データを符号化する画像符号化処理を構成するマクロブロック・シャッフリング処理をコンピュータに実行させるプログラムであって、該マクロブロック・シャッフリング処理は、前記画像データを構成する複数のマクロブロックが配置された画面から、マクロブロックを抽出して順に並び替え、各々が第１の所定の数または前記第１の所定の数より少ない第２の所定の数のマクロブロックを有する、複数のパックを生成するパック生成ステップと、前記パック生成ステップによって生成された複数のパックの各々から、一つずつ順にマクロブロックを抽出して、各々が複数のマクロブロックを有する、前記第１の所定の数と同一の数のスライスを生成するスライス生成ステップと、を含み、前記パック生成ステップでは、前記画像データに含まれるマクロブロックの総数を前記パックの数で除して、その商を前記第１の所定の数とし、余りのある場合は、その余りを前記第２の所定の数とし、一つのパックのみ前記第２の所定の数のマクロブロックを有するようにパックを生成し、余りのない場合は、前記第２の所定の数を前記第１の所定の数と同一となるようにパックを生成し、前記スライス生成ステップにおいて、前記スライスの各々に含まれる前記複数のマクロブロックを、それぞれ異なるパックから抽出する、マクロブロック・シャッフリングプログラムを提供する。
【００２２】
この構成により、本発明のマクロブロック・シャッフリングプログラムは、任意のサイズの画像に対しても、略均等にシャッフリングを実行して、マクロブロックの間の相関を低下させる処理をコンピュータに実行させることができる。
【発明の効果】
【００２３】
本発明によれば、任意のサイズの画像に対してマクロブロック・シャッフリングを略均等に実行して、マクロブロックの間の相関を低下させ、それによって画質の低下を防止することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施の形態のマクロブロック・シャッフリング装置の機能構成を示すブロック図である。
【図２】本発明の一実施の形態のマクロブロック・シャッフリング装置が実行する動作を説明するフロー図である。
【図３】図１のマクロブロック・シャッフリング装置が実行する、スーパーブロックごとにマクロブロックを抽出してパックに割り振る処理の概要を説明する図である。
【図４】図１のマクロブロック・シャッフリング装置で生成されるパックの一例を示す図である。
【図５】図１のマクロブロック・シャッフリング装置で生成されるスライスの一例を示す図である。
【図６】マクロブロックをシャッフリングする際に発生しうる規則性を説明する図である。
【図７】マクロブロックを無作為の並び替える処理の概要を説明する図である。
【図８】マクロブロックを並び替える際に使用可能な乱数テーブルの一例を示す図である。
【図９】図７の処理でマクロブロックを並び替えて生成されたパックの一例を示す図である。
【図１０】スーパーブロックごとにマクロブロックを抽出してパックに割り振る処理の具体例を示す図である。
【図１１】図１０のスーパーブロックから生成されるパックの具体例を示す図である。
【図１２】図１１のパックから生成されるスライスの具体例を示す図である。
【図１３】画像符号化装置の機能構成の一例を示す図である。
【図１４】従来のマクロブロック・シャッフリング方式で画像を分割したスーパーブロックの一例を示す図である。
【発明を実施するための形態】
【００２５】
以下、本発明の具体的な実施の形態について、図面を参照して詳細に説明する。
【００２６】
まず、本発明の一実施の形態のマクロブロック・シャッフリング装置について、図１を参照して説明する。本実施の形態では、シャッフリングを行う単位を「スライス」と呼ぶ。なお、本実施の形態のビデオシャッフリング装置は、図１３の画像符号化装置のシャッフリング部１０２としても適用可能であるが、この他に、独自の編集用のコーデック、ＤＶ規格を含む様々なビデオ圧縮、イントラフレーム圧縮に限らず、インターフレーム圧縮にも適用可能である。
【００２７】
図１に示すように、本実施の形態のマクロブロック・シャッフリング装置１は、画像データを入力して、画像データを構成する複数のマクロブロックを配置した画面を複数のスーパーブロックに分割し、複数のマクロブロックをスーパーブロックごとに分類する、スーパーブロック分割部３と、スーパーブロック分割部３が分割したスーパーブロックごとにマクロブロックを抽出して並び替え、各々が第１の所定の数または第１の所定の数より少ない第２の所定の数のマクロブロックを有する、複数のパックを生成するパック生成部４と、パック生成部４によって生成された複数の各々パックから、一つずつ順にマクロブロックを抽出して、各々が複数のマクロブロックを有する、第１の所定の数と同一の数のスライスを生成するスライス生成部５と、を含む。ここで、パック生成部４は、画像データに含まれるマクロブロックの総数をパックの数で除して、その商を第１の所定の数となるようにし、余りのある場合は、その余りを第２の所定の数とし、一つのパックのみ第２の所定の数のマクロブロックを有するようにパックを生成し、余りのない場合は、第２の所定の数を第１の所定の数と同一となるようにパックを生成する。スライス生成部４は、スライスの各々に含まれる複数のマクロブロックを、それぞれ異なるパックから抽出する。
【００２８】
このマクロブロック・シャッフリング装置１の基本的な動作を、図２のフロー図を参照して説明する。なお、マクロブロック・シャッフリング装置１の動作は、図示されていないＣＰＵ等の処理手段によって制御されるものとする。まず、スーパーブロック分割部３が画像データを入力すると（Ｓ１１）と、パック生成部４は、画像データを構成するマクロブロックを抽出して並び替えて、各々が第１の所定の数または第１の所定の数より少ない第２の所定の数のマクロブロックを有する、複数のパックを生成する（Ｓ１２）。スライス生成部５は、パック生成部４によって生成された複数のパックの各々から、一つずつ順にマクロブロックを抽出して、各々が複数のマクロブロックを有する、第１の所定の数と同一の数のスライスを生成する。ここで、パック生成部４は、画像データに含まれるマクロブロックの総数をパックの数で除して、その商を第１の所定の数とし、余りのある場合は、その余りを第２の所定の数とし、一つのパックのみ第２の所定の数のマクロブロックを有するようにパックを生成し、余りのない場合は、第２の所定の数を第１の所定の数と同一となるようにパックを生成する。スライス生成部４は、スライスの各々に含まれる複数のマクロブロックを、それぞれ異なるパックから抽出する。まず、パック生成部４が実行してパックを生成するパック生成処理について説明する。
【００２９】
＜パック生成処理＞
【００３０】
図３に、スーパーブロック分割部３が分割したスーパーブロックの一例を示す。Ｉｘは画像の水平方向のマクロブロックの数、Ｉｙは画像の垂直方向のマクロブロックの数を示し、パック生成部４が生成するパックの数をｑとする。パックの数は、従来のＤＶ規格では５個であったが、本実施の形態では、１個のスライスの中に入れるマクロブロックの数に近いことが望ましく、バッファのサイズやＣＰＵの性能等の実装に応じて、例えば、２０〜３０の程度が好ましい。
【００３１】
さらに、本実施の形態では、処理する画像データのサイズは任意であるため、図３に示すように、スーパーブロック分割部３（図１）が分割するスーパーブロックでは、右端のスーパーブロックでは右端に位置すべきマクロブロックの数が欠けることや、下端のスーパーブロックでは、下端に位置すべきマクロブロックの数が欠けることが起こりうる。
【００３２】
具体的には、画像に含まれるマクロブロックの総数Ｉｘ×Ｉｙをパックの数ｑで除した場合、余りが発生する場合がある。そこで、シャッフリング部１０２（図１３）が分割する基本的なスーパーブロックの各々が水平方向に含むマクロブロックの数をＳＢｓｘ、垂直方向に含むマクロブロックの数をＳＢｓｙとし、右端が欠けたスーパーブロックの左端の位置をＳＢ１ｘ、下端が欠けたスーパーブロックの下端の位置をＳＢ１ｙとする。
【００３３】
換言すると、スーパーブロック分割部３が分割する複数のスーパーブロックをそれぞれ矩形に表現すると、互いに、横に並ぶマクロブロックの数と縦に並ぶマクロブロックの数がＳＢｓｘ、ＳＢｓｙと等しい、第１のスーパーブロックの群と、互いに、第１のスーパーブロックの群のスーパーブロックの各々と、縦に並ぶマクロブロックの数がＳＢｓｙで等しいが、横に並ぶマクロブロックの数がＳＢｓｘと異なる、第２のスーパーブロックの群と、互いに、第１のスーパーブロックの群のスーパーブロックの各々と、横に並ぶマクロブロックの数がＳＢｓｘと等しいが、縦に並ぶマクロブロックの数がＳＢｓｙと異なる、第３のスーパーブロックの群と、第２のスーパーブロックの群のスーパーブロックと、横に並ぶマクロブロックの数が等しく、第３のスーパーブロックの群のスーパーブロックと、縦に並ぶマクロブロックの数が等しい、第４のスーパーブロックとに分割される。また、本発明によると、ＳＢｓｘ、ＳＢｓｙ、ＳＢ１ｓｘ、ＳＢ１ｓｙ等の値は、必ずしも、パックの数ｑと関連していなくてもよい。
【００３４】
パック生成部４は、こうして生成されたスーパーブロックの各々から、マクロブロックを横方向に上方から順に抽出して、順に並び替えて、総数Ｉｘ×Ｉｙがパックの数ｑで割り切れる場合は、各々がマクロブロックの総数Ｉｘ×Ｉｙをパックの数ｑで除して算出した商と同数のマクロブロックを有するｑ個のパックを生成し、総数Ｉｘ×Ｉｙがパックの数ｑで割り切れない場合は、各々が、マクロブロックの総数Ｉｘ×Ｉｙをパックの数ｑで除して算出した商と同数の数のマクロブロックを有するｑ−１個のパックを生成し、１個の追加のパックは、マクロブロックの総数Ｉｘ×Ｉｙをパックの数ｑ−１で除して算出した余りと同数の数のマクロブロックを有する。
【００３５】
図３を参照しながら、パック生成部４（図１）がパックを生成する処理の概要を示す。図３に示すように、パック生成部４は、スーパーブロックに含まれるマクロブロックを、Ｌ（１）、Ｌ（２）、・・・、Ｌ（ｉ）、・・の順に行ごとに、それぞれ左から右へ水平方向に一つずつ抽出して、パックＰ（０）、Ｐ（１）、Ｐ（２）・・・に振り分け処理を上から下方向に続けていく。ここでｉは整数とする。一つのスーパーブロックでこの処理が終了すると、次に右隣のスーパーブロックへ移行して、左のスーパーブロックから右のスーパーブロックへ水平方向に同様の処理を行い、上の段のスーパーブロックの群でこの処理が終了すると、さらに下の段のスーパーブロックの群に進み、同様の処理を続けていく。このようにして全てのスーパーブロックからマクロブロックを抽出してパックに重複することなく振り分ける。
【００３６】
図４に、このようにして生成されたパックの一例を示す。ここで、Ｐ（ｉ）は、ｉ番目のパックを示し、Ｍ（ｉ，ｊ）はｉ番目のパックに含まれる、ｊ番目のマクロブロックを表す。図４に示すように、ｑ個のパックが生成されており、パックに含まれるマクロブロックの数は、Ｐ（０）〜Ｐ（ｑ−２）までのパックについてはｐ個、最後のパックであるＰ（ｑ−１）のパックについてはｒ個となる。ここで、ｐは、総数Ｉｘ×Ｉｙをパックの数ｑで除した商、ｒは、総数Ｉｘ×Ｉｙをパックの数ｑで除した余りとなる。したがって、ｒはｐ以下となり、総数Ｉｘ×Ｉｙがパックの数ｑで割り切れる場合、ｒはｐと同数となる。本実施の形態のシャッフリング装置１は、任意のサイズの画像データに対応する。したがって、ｒとｐとは同一である必要はない。こうして生成されたパックに基づいてスライス生成部５（図１）が実行してスライスを生成するパック生成処理について次に説明する。
【００３７】
＜スライス生成処理＞
スライス生成部５（図１）は、こうして生成されたパックＰ（０）〜Ｐ（ｑ−１）の各々から、一つずつ順にマクロブロックを抽出して、各々が複数のマクロブロックを有する、総数Ｉｘ×Ｉｙをパックの数ｑで除した商ｐと同数のスライスＳ（０）〜Ｓ（ｐ−１）を生成する。スライス生成部５（図１）は、スライスＳ（０）〜Ｓ（ｐ−１）の各々に含まれる複数のマクロブロックを、それぞれ異なるパックＰ（０）〜Ｐ（ｑ−１）から重複せずに抽出する。
【００３８】
図５に、スライス生成部５によって生成されたスライスの一例を示す。図５に示すように、スライス生成部５は、パックＰ（０）〜Ｐ（ｑ−１）のそれぞれから、同一のスライスに同一のパックに属するマクロブロックが重複して含まれることのないように、マクロブロックを分散して振り分け、スライスＳ（０）〜Ｓ（ｐ−１）を順に生成する。例えば、図４に示すようにそれぞれのパックＰ（０）〜Ｐ（ｑ−１）から縦方向にマクロブロックを一つずつ抽出する等して、スライスＳ（０）〜Ｓ（ｐ−１）を生成してもよい。
【００３９】
このため、スライス生成部５（図１）が生成するスライスの数は、パックの各々に含まれるマクロブロックの数の中で最大の数ｐと一致する。図５に示すように、パック生成部４が生成したパックの各々が含むマクロブロックの数は、Ｐ（０）からＰ（ｑ−２）までのパックではｐ個で、パックＰ（ｑ−１）ではｒ個となっている。したがって、スライス生成部５が生成するスライスの数はｐ個となる。また、スライスの含まれるマクロブロックはｑ個か（ｑー１）個となる。
【００４０】
このように、例えば、パックの個数分に均等にマクロブロックを振り分けることができないサイズの画像であっても、生成される複数のスライスの各々に含まれるマクロブロックの数の差は、一つのパックのみに含まれる第２の所定の数のマクロブロックを振り分けられたスライスと振り分けられなかったスライスとのマクロブロックの数の差、すなわち１個のみとなる。したがって、本発明のマクロブロック・シャッフリング装置は、任意のサイズの画像に対しても、略均等にシャッフリングを実行して、マクロブロックの間の相関を低下させ、画質の低下を防止することができる。
【００４１】
＜相関の除去＞
さらに、マクロブロックを空間的に元の位置から他の位置に移動させるシャッフリング処理を行う際、規則性が存在すると、図６に示すように、シャッフリングした後のマクロブロック（○のところ）の間に所定の間隔で相関が生じることがある。このため、パック生成部４は、画像データからマクロブロックを抽出して並び替えてパックを生成する際、可能な限りマクロブロックの順序を無作為に並び替えるようにしてもよい。
【００４２】
パック生成部４（図１）がマクロブロックの順序を無作為に並び替えるため、例えば、乱数テーブルを用いることができる。図７は、パック生成部４（図１）が実行する無作為の並び替え処理の概要を説明する図である。図８に、並び替え処理を行う際に使用可能な乱数テーブルの一例を示す。乱数テーブルには、パックの数の数字を無作為に並べた数字の配列を記しておく。例えば、パック生成部４（図１）が生成するパックの数をｑとすると、乱数テーブルには、１〜ｑまでの数字を無作為に並べた数字の配列を記しておく。パック生成部４は、スーパーブロックからマクロブロックを抽出する際に、先頭のマクロブロックから順に、このテーブルに記された番号のパックにマクロブロックを振り分ける。
【００４３】
図７と図８を参照してマクロブロックを無作為に並び替える処理の一例を説明する。最初に、図８の乱数テーブルの先頭の数字が１であることから、図８のスーパーブロックの先頭のマクロブロックは、１番目のパックであるパックＰ’（０）に振り分ける。次に、図７の乱数テーブルの続く数字が５であることから、図８のスーパーブロックの先頭から５番目のマクロブロックは、２番目のパックであるパックＰ’（１）に振り分ける。同様に、図７の乱数テーブルの続く数字が８であることから、図８のスーパーブロックの先頭から８番目のマクロブロックは、３番目のパックであるパックＰ’（２）に振り分ける。こうしてｑ個のマクロブロックの振り分けが終わると、ｑ＋１番目のマクロブロックを先頭マクロブロックとして同様の処理を継続する。このようにして、画像全体のマクロブロックを振り分けてパックを生成するようにしてもよい。この乱数テーブルは、図示されていないメモリに記憶しておく。メモリはマクロブロック・シャッフリング装置１に含まれていてもよいし、また、マクロブロック・シャッフリング装置１の外部にあってもよい。
【００４４】
このようにして並び替えたパックを図９に示す。並び替えを行ったパックをＰ’（ｉ）とし、は並び替えを行ったｉ番目のパックに含まれる、ｊ番目のマクロブロックをＭ’（ｉ，ｊ）とすると、並び替え処理は以下のように表せる。
Ｐ’（ｉ）＝ｒｅｏｒｄｅｒ［Ｐ（ｉ）］
＝ｒｅｏｒｄｅｒ［Ｍ（ｉ，０），Ｍ（ｉ，１），Ｍ（ｉ，２），．．．Ｍ（ｉ，ｒ−１）．．．，Ｍ（ｉ，ｐ−１）］
＝Ｍ’（ｉ，０），Ｍ’（ｉ，１），Ｍ’（ｉ，２），．．．Ｍ’（ｉ，ｒ−１）．．．，Ｍ’（ｉ，ｐ−１）
【００４５】
＜関数を用いた手法＞
本発明によると、パック生成部４（図１）は、関数を用いて、パックを生成してもよい。例えば、Ｍ（ｉ，ｊ）を抽出するための画像のスーパーブロックの（ｘ，ｙ）座標は以下のようにして算出できる。
【００４６】
まず、Ｍ（ｉ，ｊ）が画像の先頭のマクロブロックから何番目のマクロブロックになるかを算出する。先頭のマクロブロックから数えたＭ（ｉ，ｊ）の位置ａは以下のようにして算出できる。ただし、以下の計算は全て整数値で行い、除算の端数は切り捨てるものとする。
ａ＝ｉ×ｐ＋ｊ                ・・・・式（１）
【００４７】
これから、Ｍ（ｉ，ｊ）のスーパーブロックの画像上のｙ座標と、スーパーブロックの左端からの位置ａ’は、以下のように表すことができる。
ｙ＝（ａ／（Ｉｘ×ＳＢｓｙ））×ＳＢｓｙ）
ａ’＝ａ％（Ｉｘ×ＳＢｓｙ）  ・・・・式（２）
ここで、％は剰余を生成する演算子を表す。
【００４８】
既に説明したように、画像は任意のサイズを対象とするため、スーパーブロックの左端及び下端に含まれるマクロブロックの数が端数の場合も考えられる。これから、ｙについては、ＳＢ１ｙを越える場合、ｘについてはＳＢ１ｘを越える場合について分けて考える必要がある。
【００４９】
ｙ＜ＳＢ１ｙの場合、
ｘ＝（ａ／（ＳＢｓｘ×ＳＢｓｙ））×ＳＢｓｘ）
ａ’＝ａ％（ＳＢｓｘ×ＳＢｓｙ）              ・・・・・式（３）
ｙ＝ＳＢ１ｙまたはｙ＞ＳＢ１ｙの場合、
ｘ＝（ａ／（ＳＢｓｘ×（ＳＢｓｘ×（Ｉｙ―ＳＢｓｙ）））×ＳＢｓｘ）
ａ’＝ａ％（ＳＢｓｘ×（Ｉｙ―ＳＢｓｙ））  ・・・・・式（４）
ｘ＜ＳＢ１ｘの場合、
ｙ＝ａ’／ＳＢｓｘ
ｘ＝ａ’％ＳＢｓｘ                ・・・・・式（５）
ｘ＝ＳＢ１ｘまたはｘ＞ＳＢ１ｘの場合、
ｙ＝ａ’／（Ｉｘ―ＳＢ１ｘ）
ｘ＝ａ’％（Ｉｘ―ＳＢ１ｘ）    ・・・・・式（６）
【００５０】
＜実施例＞
具体的な一実施例として、Ｉｘ＝８、Ｉｙ＝５、ＳＢｓｘ＝３、ＳＢｓｙ＝２、ＳＢ１ｘ＝６、ＳＢ１ｙ＝４、ｐ＝６、ｑ＝７とし、１パック中のマクロブロックの数を、スーパーブロックの中の数と同じ６とした場合について説明する。この画像の場合、１画像中のマクロブロックの数は、Ｉｘ×Ｉｙ＝８×５＝４０となる。したがって、１パック中のマクロブロックの数は、４０÷６＝６・・・４（余り）となるため、パックは７個必要であり、最後のパックに含まれるマクロブロックの数は４となる。
【００５１】
図１０は、上述の画像をスーパーブロックに分割して、マクロブロックをスーパーブロックごとに分類して、パックに割り当て状態を示す図である。図１０中で太い線はスーパーブロックの境界を示している。図１０から分かるように、スーパーブロックの全てのマクロブロックは、均等にパックＰ（０）〜Ｐ（６）の何れかに割り振られている。また、パックＰ（６）のみ、マクロブロックの数は４個となっている。
【００５２】
図１１は、このようにしてパック生成部４によってマクロブロックを割り振って生成されたパックＰ（０）〜Ｐ（６）を示す。図１１から分かるように、パックＰ（０）〜Ｐ（５）は６個のマクロブロックを含み、Ｐ（６）は４個のマクロブロックを含んでいる。
【００５３】
図１２は、スライス生成部５が、パックＰ（０）〜Ｐ（６）から生成したスライスＳ（０）〜Ｓ（５）を示す。図１２から分かるように、スライス生成部５は、パックＰ（１）〜Ｐ（６）のそれぞれから、図１１で縦方向にマクロブロックを抽出して振り分け、スライスＳ（０）〜Ｓ（５）を順に生成する。このため、スライス生成部５が生成するスライスの数は、パックの各々に含まれるマクロブロックの数の中で最大の数と一致する。パック生成部４が生成したパックの各々が含むマクロブロックの数は、Ｐ（０）からＰ（ｑ−２）までのパックでは６個で、パックＰ（６）では５個となっている。したがって、スライス生成部５が生成するスライスの数は６個となっている。
【００５４】
以上説明したように、本実施の形態のマクロブロック・シャッフリング装置は、パック生成部は、第１の所定の数または第１の所定の数より小さい第２の所定の数のいずれかの個数のマクロブロックを有するパックを生成する。より詳細には、パック生成部は、画像データに含まれるマクロブロックの総数をパックの数で除して、その商を第１の所定の数とし、余りのある場合は、その余りを第２の所定の数とし、一つのパックのみ第２の所定の数のマクロブロックを有するようにパックを生成し、余りのない場合は、第２の所定の数を第１の所定の数と同一となるようにパックを生成するので、例えば、パックの個数分に均等にマクロブロックを振り分けることができないサイズの画像に対しても、パックに含まれるマクロブロックの数は、一つのパックを除いて、同数となる。スライス生成部は、パック生成部によって生成された複数のパックの各々から、一つずつ順にマクロブロックを抽出して、各々が複数のマクロブロックを有する、第１の所定の数と同一の数のスライスを生成し、かつ、スライス生成部は、スライスの各々に含まれる複数のマクロブロックを、それぞれ異なるパックから抽出するので、例えば、パックの個数分に均等にマクロブロックを振り分けることができないサイズの画像であっても、生成される複数のスライスの各々に含まれるマクロブロックの数の差は、一つのパックのみに含まれる第２の所定の数のマクロブロックを振り分けられたスライスと振り分けられなかったスライスとのマクロブロックの数の差、すなわち１個のみとなる。したがって、本発明のマクロブロック・シャッフリング装置は、任意のサイズの画像に対しても、略均等にシャッフリングを実行して、マクロブロックの間の相関を低下させることができる。また、シャッフリングによってマクロブロック間の相関が低下すると、スライス間の量子化値が近づくため、量子化のスピードを上げ、１画像当たりのクオリティを均一化しやすいという効果も期待できる。
【００５５】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されるものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したものに過ぎず、本発明による効果は、本発明の実施例に記載されたものに限定されるものではない。
【００５６】
例えば、本発明のビデオシャッフリング装置は独自の編集用のコーデックのみならず、ＤＶ規格を含む様々なビデオ圧縮、イントラフレーム圧縮に限らず、インターフレーム圧縮にも適用可能である。
【００５７】
さらに、本発明のマクロブロック・シャッフリング装置は、ＣＰＵとメモリを含む、一般的なコンピュータを上述した各手段として機能させるマクロブロック・シャッフリングプログラムによって動作させることができる。マクロブロック・シャッフリング・プログラムは、通信回線を介して配布することも可能であるし、ＣＤ−ＲＯＭ等の記録媒体に書き込んで配布することも可能である。
【符号の説明】
【００５８】
１  マクロブロック・シャッフリング装置
３  スーパーブロック分割部
４  パック生成部
５  スライス生成部
１０１  ブロック化部
１０２  シャッフリング部
１０３  動き検出部
１０４  ＤＣＴ処理部
１０５  符号量推定部
１０６  量子化部
１０８  ＶＬＣ
【図１】
0005443516.tif 000002
【図２】
0005443516.tif 000003
【図３】
0005443516.tif 000004
【図４】
0005443516.tif 000005
【図５】
0005443516.tif 000006
【図６】
0005443516.tif 000007
【図７】
0005443516.tif 000008
【図８】
0005443516.tif 000009
【図９】
0005443516.tif 000010
【図１０】
0005443516.tif 000011
【図１１】
0005443516.tif 000012
【図１２】
0005443516.tif 000013
【図１３】
0005443516.tif 000014
【図１４】
0005443516.tif 000015