(57)【要約】【課題】　動き補償のための補間方法及びその装置を提供する。【解決手段】　（ａ）　所定４分画素の水平方向に隣接した複数の半画素に対して各々所定の加重値を与えた後、加算して水平和を得る段階と、（ｂ）　前記４分画素の垂直方向に隣接した複数の半画素に対して各々所定の加重値を与えた後、加算して垂直和を段階と、（ｃ）　前記垂直和及び水平和に基づいて整数の前記４分画素を求める段階と、を含むことを特徴とする補間方法である。これによれば、動き補償においてさらに一貫性を有することになって動き補償の効率がさらに高まる。【選択図】図７
2004096757.tif 000002
【特許請求の範囲】
【請求項１】
　（ａ）所定４分画素の水平方向に隣接した複数の半画素に対して各々所定の加重値を与えた後、加算して水平和を得る段階と、
　（ｂ）　前記４分画素の垂直方向に隣接した複数の半画素に対して各々所定の加重値を与えた後、加算して垂直和を段階と、
　（ｃ）　前記垂直和及び水平和に基づいて整数の前記４分画素を求める段階と、を含むことを特徴とする補間方法。
【請求項２】
　前記（ａ）段階及び（ｂ）段階は、
　偶数個の前記半画素が前記水平和及び垂直和に各々参与する段階であることを特徴とする請求項１に記載の補間方法。
【請求項３】
　前記加重値の和は２ｎであることを特徴とする請求項１に記載の補間方法。
【請求項４】
　前記（ａ）段階及び（ｂ）段階は、
　前記複数の半画素に対して前記加重値をタップ値として有するタップフィルターを適用させる段階であることを特徴とする請求項１に記載の補間方法。
【請求項５】
　前記タップ値の和は２ｎであることを特徴とする請求項４に記載の補間方法。
【請求項６】
　６個の半画素に対して（１、−５、２０、２０、−５、１）のタップ値を有する６タップフィルターを適用させる段階であることを特徴とする請求項５に記載の補間方法。
【請求項７】
　前記（ｃ）段階は、
　前記垂直和と水平和との平均値を求めた後、四捨五入によって整数値を算出して前記４分画素として決定する段階であることを特徴とする請求項１に記載の補間方法。
【請求項８】
　前記（ｃ）段階は次の式に係る平均値を求めることを特徴とする請求項７に記載の補間方法。
　平均値＝（水平和＋垂直和）／［２＊（ａ＋ｂ＋ｃ＋ｄ＋ｅ＋ｆ）］
　但し、ａ、ｂ、ｃ、ｄ、ｅ、ｆは６タップフィルターのタップ値である。
【請求項９】
　前記（ｃ）段階は次の式によることを特徴とする請求項７に記載の補間方法。
　４分画素＝ｉｎｔｅｇｅｒ［（ｉｎｔｅｇｅｒ＿Ｍ＿ｈ＋ｉｎｔｅｇｅｒ＿Ｍ＿ｖ）／２］
　ｉｎｔｅｇｅｒ＿Ｍ＿ｈ＝ｉｎｔｅｇｅｒ［水平和／（ａ＋ｂ＋ｃ＋ｄ＋ｅ＋ｆ）］
　ｉｎｔｅｇｅｒ＿Ｍ＿ｖ＝ｉｎｔｅｇｅｒ［垂直和／（ａ＋ｂ＋ｃ＋ｄ＋ｅ＋ｆ）］
　但し、ａ、ｂ、ｃ、ｄ、ｅ、ｆは６タップフィルターのタップ値であり、ｉｎｔｅｇｅｒ［］は［］を整数化することを意味する。
【請求項１０】
　（ａ）　所定４分画素の水平方向に隣接した複数の半画素に対して各々所定の加重値を与えた後、加算して水平和を得る段階と、
　（ｂ）　前記水平和に基づいて平均値を算出し、整数化して水平平均値を得る段階と、
　（ｃ）　前記４分画素の垂直方向に隣接した複数の半画素に対して各々所定の加重値を与えた後、加算して垂直和を得る段階と、
　（ｄ）　前記垂直和に基づいて平均値を算出し、整数化して垂直平均値を得る段階と、
　（ｅ）　前記水平平均値と垂直平均値との平均値を算出し、整数化して前記４分画素の画素値を得る段階と、を含むことを特徴とする補間方法。
【請求項１１】
　前記（ａ）段階及び（ｃ）段階は、
　前記複数の半画素値に対して前記加重値をタップ値として有するタップフィルターを適用させる段階であることを特徴とする請求項１０に記載の補間方法。
【請求項１２】
　前記（ａ）段階及び（ｃ）段階は、
　各々６個の半画素に対して（１、−５、２０、２０、−５、１）のタップ値を有する６タップフィルターを適用させる段階であることを特徴とする請求項１１に記載の補間方法。
【請求項１３】
　前記（ｅ）段階は次の式によることを特徴とする請求項１０に記載の補間方法。
　４分画素＝ｉｎｔｅｇｅｒ［（ｉｎｔｅｇｅｒ＿Ｍ＿ｈ＋ｉｎｔｅｇｅｒ＿Ｍ＿ｖ）／２］
　ｉｎｔｅｇｅｒ＿Ｍ＿ｈ＝ｉｎｔｅｇｅｒ［水平和／（ａ＋ｂ＋ｃ＋ｄ＋ｅ＋ｆ）］
　ｉｎｔｅｇｅｒ＿Ｍ＿ｖ＝ｉｎｔｅｇｅｒ［垂直和／（ａ＋ｂ＋ｃ＋ｄ＋ｅ＋ｆ）］
　但し、ａ、ｂ、ｃ、ｄ、ｅ、ｆは６タップフィルターのタップ値であり、ｉｎｔｅｇｅｒ［］は［］を整数化することを意味する。
【請求項１４】
　前記（ｅ）段階は次の式によることを特徴とする請求項１０に記載の補間方法。
　４分画素＝Ｃｌｉｐ１（（Ｍ＿ｈ＋Ｍ＿ｖ＋１）＞＞１）
　Ｍ＿ｈ＝Ｃｌｉｐ１（（Ｓｕｍ＿ｈ＋１６）＞＞５）
　Ｍ＿ｖ＝Ｃｌｉｐ１（（Ｓｕｍ＿ｖ＋１６）＞＞５）
【請求項１５】
　所定４分画素の水平方向に隣接した複数の半画素に対して各々所定の加重値を与えた後、加算して水平和を得て、前記４分画素の垂直方向に複数の半画素に対して各々所定の加重値を与えた後、加算して垂直和を求め、前記垂直和及び水平和に基づいて整数の前記４分画素を求める補間部と、
　前記補間装置により補間されたブロックに対して動き補償を行う動き補償部と、を備えた動き補償装置。
【請求項１６】
　前記補間部は
　前記複数の半画素に対して前記加重値をタップ値として有するタップフィルターを適用させることを特徴とする請求項１５に記載の動き補償装置。
【請求項１７】
　前記補間部は、
　６個の半画素に対して（１、−５、２０、２０、−５、１）のタップ値を有する６タップフィルターを適用させることを特徴とする請求項１５に記載の動き補償装置。
【請求項１８】
　前記補間部は、
　前記垂直和と水平和との平均値を求めた後、四捨五入により整数値を算出して前記４分画素として決定することを特徴とする請求項１５に記載の動き補償装置。
【請求項１９】
　前記補間部は次の式に係る平均値を求めることを特徴とする請求項１５に記載の動き補償装置。
　平均値＝（水平和＋垂直和）／［２＊（ａ＋ｂ＋ｃ＋ｄ＋ｅ＋ｆ）］
　但し、ａ、ｂ、ｃ、ｄ、ｅ、ｆは６タップフィルターのタップ値である。
【請求項２０】
　前記補間部は次の式によることを特徴とする請求項１５に記載の動き補償装置。
　４分画素＝ｉｎｔｅｇｅｒ［（ｉｎｔｅｇｅｒ＿Ｍ＿ｈ＋ｉｎｔｅｇｅｒ＿Ｍ＿ｖ）／２］
　ｉｎｔｅｇｅｒ＿Ｍ＿ｈ＝ｉｎｔｅｇｅｒ［水平和／（ａ＋ｂ＋ｃ＋ｄ＋ｅ＋ｆ）］
　ｉｎｔｅｇｅｒ＿Ｍ＿ｖ＝ｉｎｔｅｇｅｒ［垂直和／（ａ＋ｂ＋ｃ＋ｄ＋ｅ＋ｆ）］
　但し、ａ、ｂ、ｃ、ｄ、ｅ、ｆは６タップフィルターのタップ値であり、ｉｎｔｅｇｅｒ［］は［］を整数化することを意味する。
【請求項２１】
　所定４分画素の水平方向に複数の半画素に対して各々所定の加重値を与えた後、加算して水平和を得て、前記水平和に基づいて平均値を算出し、整数化して水平平均値を得た後、前記４分画素の垂直方向に複数の半画素に対して各々所定の加重値を与えた後、加算して垂直和を得て、前記垂直和に基づいて平均値を算出し、整数化して垂直平均値を得た後、前記水平平均値と垂直平均値との平均値を算出し、整数化して前記４分画素の画素値を得る補間部と、
　前記補間部により補間されたブロックに対して動き補償を行う動き補償部と、を含むことを特徴とする動き補償装置。
【請求項２２】
　前記補間部は、
　前記複数の半画素値に対して前記加重値をタップ値として有するタップフィルターを適用させることを特徴とする請求項２１に記載の動き補償装置。
【請求項２３】
　前記補間部は次の式によることを特徴とする請求項２１に記載の動き補償装置。
　４分画素＝Ｃｌｉｐ１（（Ｍ＿ｈ＋Ｍ＿ｖ＋１）＞＞１）
　Ｍ＿ｈ＝Ｃｌｉｐ１（（Ｓｕｍ＿ｈ＋１６）＞＞５）
　Ｍ＿ｖ＝Ｃｌｉｐ１（（Ｓｕｍ＿ｖ＋１６）＞＞５）
【請求項２４】
　所定４分画素の水平方向に複数の半画素に対して各々所定の加重値を与えた後、加算して水平和を得て、前記水平和に基づいて平均値を算出し、整数化して水平平均値を得た後、前記４分画素の垂直方向に複数の半画素に対して各々所定の加重値を与えた後、加算して垂直和を得て、前記垂直和に基づいて平均値を算出し、整数化して垂直平均値を得た後、前記水平平均値と垂直平均値との平均値を算出し、整数化して前記４分画素の画素値を得る補間部と、
　前記補間部により補間されたブロックに対して動き補償を行う動き補償部と、を含むことを特徴とする動き補償装置を備えた符号化装置。
【請求項２５】
　前記補間部は、
　前記複数の半画素値に対して前記加重値をタップ値として有するタップフィルターを適用させることを特徴とする請求項２４に記載の符号化装置。
【請求項２６】
　前記補間部は次の式によることを特徴とする請求項２４に記載の符号化装置。
　４分画素＝Ｃｌｉｐ１（（Ｍ＿ｈ＋Ｍ＿ｖ＋１）＞＞１）
　Ｍ＿ｈ＝Ｃｌｉｐ１（（Ｓｕｍ＿ｈ＋１６）＞＞５）
　Ｍ＿ｖ＝Ｃｌｉｐ１（（Ｓｕｍ＿ｖ＋１６）＞＞５）
【請求項２７】
　所定４分画素の水平方向に複数の半画素に対して各々所定の加重値を与えた後、加算して水平和を得て、前記水平和に基づいて平均値を算出し、整数化して水平平均値を得た後、前記４分画素の垂直方向に複数の半画素に対して各々所定の加重値を与えた後、加算して垂直和を得て、前記垂直和に基づいて平均値を算出し、整数化して垂直平均値を得た後、前記水平平均値と垂直平均値の平均値を算出し、整数化して前記４分画素の画素値を得る補間部と、
　前記補間部により補間されたブロックに対して動き補償を行う動き補償部と、を含むことを特徴とする動き補償装置を備えた復号化装置。
【請求項２８】
　前記補間部は
　前記複数の半画素値に対して前記加重値をタップ値として有するタップフィルターを適用させることを特徴とする請求項２７に記載の復号化装置。
【請求項２９】
　前記補間部は次の式によることを特徴とする請求項２７に記載の復号化装置。
　４分画素＝Ｃｌｉｐ１（（Ｍ＿ｈ＋Ｍ＿ｖ＋１）＞＞１）
　Ｍ＿ｈ＝Ｃｌｉｐ１（（Ｓｕｍ＿ｈ＋１６）＞＞５）
　Ｍ＿ｖ＝Ｃｌｉｐ１（（Ｓｕｍ＿ｖ＋１６）＞＞５）
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は動き補償に係り、特に動き補償の正確度を向上させるための補間方法及びその装置に関する。
【背景技術】
【０００２】
　ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４、Ｈ．２６４符号化標準によれば、現在のピクチャーを符号化するにおいて過去のピクチャーを参照するＰ−ピクチャー符号化方法及び過去と未来とのピクチャーを何れも参照するＢ−ピクチャー符号化方法を採用し、これに基づいて動き補償を行う。特に、ＭＰＥＧ−４またはＨ．２６４符号化標準によれば動き補償はマクロブロック単位はもとよりマクロブロックを複数のブロックに分割した後、分割されたブロック単位で行われる。動き補償は整数画素で構成されたブロックに対して半画素、４分画素、または８分画素を求める補間を行なってデータの精度を高めてから行われる。
【０００３】
　図１は、補間の概念を説明するための参考図である。
　図１を参照すれば、灰色箱は元画素を示し、白箱は補間画素を示す。元画素は整数画素を意味する。補間画素のうち白箱５、６、７、８は半画素を、白箱９は４分画素を示す。半画素は垂直方向または水平方向に隣接した整数画素または半画素に基づいて得られる。例えば、半画素５は整数画素１及び２に基づいて得られ、半画素８は整数画素３及び４に基づいて得られる。半画素６は整数画素１及び３に基づいて得られ、半画素７は整数画素２及び４に基づいて得られる。一方、４分画素９は半画素５及び８に基づいて得られるか、半画素６及び７に基づいて得られる。説明の便宜上、整数画素の数を４個に限定したが、補間に参与する画素の範囲は適切に加減できる。もし、半画素５を求めるに当たって整数画素１及び２のみならず、水平方向に隣接した整数画素をさらに参与させうる。補間画素も元画素と同じ範囲内の整数値として表示される。たとえば、元画素が０−２５５の整数値で表示されるならば、補間画素も０−２５５の整数値で表現される。
【０００４】
　所定ブロックを構成する画素数が補間により増加すれば、動き補償の正確度が向上することが一般的であるが、いつもそうであるわけではない。補間アルゴリズムは整数値を有する補間画素を求めるために四捨五入、切上げまたは切捨て過程を含んでいる。すなわち、通常、補間アルゴリズムにより求めた画素値にはある程度の誤差値が含まれる。
【０００５】
　したがって、補間アルゴリズムは誤差値の累積をできるだけ抑制すべく設計されねばならない。その方法の１つで、誤差値が累積されずに相殺されるようにするために、補間による画素値を求めるに当たって四捨五入、切上げまたは切捨て過程を適切に交互に使用することもある。
【０００６】
　また、補間アルゴリズムは一貫性がなければならない。何れの過程を使用しても求めようとする補間画素が結局同一になれば別に問題ないが、選択された過程が何かによってあるいは処理順序が変わることによって得られる補間画素が変われば、これに基づいた動き補償も毎度変わって、究極的にエンコーダ側とデコーダ側とのミスマッチが目立つ可能性が高まる。エンコーダ側とデコーダ側とのミスマッチが増加すれば再現された映像の画質低下が引き起こされうる。Ｈ．２６４符号化標準（Ｄｒａｆｔ　ＩＴＵ−Ｔｒｅｃ．Ｈ．２６４（２００２Ｅ））によれば、図５の４分画素９を求めるためのアルゴリズムがその一例である。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
　したがって、本発明の目的は、動き補償においてさらに一貫性を有する補間アルゴリズムに係る補間方法及びその装置を提供することである。
　本発明の他の目的は、動き補償の効率をさらに高められる補間アルゴリズムに係る補間方法及びその装置を提供することである。
【課題を解決するための手段】
【０００８】
　前記目的は、本発明によって、（ａ）　所定４分画素の水平方向に隣接した複数の半画素に対して各々所定の加重値を与えた後、加算して水平和を得る段階と、（ｂ）前記４分画素の垂直方向に隣接した複数の半画素に対して各々所定の加重値を与えた後、加算して垂直和を段階と、（ｃ）　前記垂直和と水平和とに基づいて整数の前記４分画素を求める段階と、を含むことを特徴とする補間方法により達成される。
【０００９】
　前記（ａ）段階及び（ｂ）段階は、偶数個の前記半画素が前記水平和及び垂直和に各々参与する段階であり、前記加重値の和は２ｎであることが望ましい。
【００１０】
　また、前記目的は、（ａ）　所定４分画素の水平方向に隣接した複数の半画素に対して各々所定の加重値を与えた後、加算して水平和を得る段階と、（ｂ）　前記水平和に基づいて平均値を算出し、整数化して水平平均値を得る段階と、（ｃ）　前記４分画素の垂直方向に隣接した複数の半画素に対して各々所定の加重値を与えた後、加算して垂直和を得る段階と、（ｄ）　前記垂直和に基づいて平均値を算出し、整数化して垂直平均値を得る段階と、（ｅ）　前記水平平均値と垂直平均値との平均値を算出し、整数化して前記４分画素の画素値を得る段階と、を含むことを特徴とする補間方法によっても達成される。
【００１１】
　一方、本発明の他の分野によれば、前記目的は所定４分画素の水平方向に隣接した複数の半画素に対して各々所定の加重値を与えた後、加算して水平和を得て、前記４分画素の垂直方向に複数の半画素に対して各々所定の加重値を与えた後、加算して垂直和を求め、前記垂直和と水平和とに基づいて整数の前記４分画素を求める補間部と、前記補間装置により補間されたブロックに対して動き補償を行う動き補償部と、を備えた動き補償装置によっても達成される。
【００１２】
　また、前記目的は、所定の４分画素の水平方向に複数の半画素に対して各々所定の加重値を与えた後、加算して水平和を得て、前記水平和に基づいて平均値を算出し、整数化して水平平均値を得た後、前記４分画素の垂直方向に複数の半画素に対して各々所定の加重値を与えた後、加算して垂直和を得て、前記垂直和に基づいて平均値を算出し、整数化して垂直平均値を得た後、前記水平平均値と垂直平均値との平均値を算出し、整数化して前記４分画素の画素値を得る補間部と、前記補間部により補間されたブロックに対して動き補償を行う動き補償部と、を含むことを特徴とする動き補償装置によっても達成される。
【発明の効果】
【００１３】
　本発明によれば動き補償においてさらに一貫性を有する補間アルゴリズムに係る補間方法及びその装置が提供される。これにより、動き補償の効率がさらに高まる。
【発明を実施するための最良の形態】
【００１４】
　以下、添付した図面を参照して本発明の望ましい実施例を詳細に説明する。
　図２は、本発明の望ましい実施例に係る動き補償装置を備えた符号化装置のブロック図である。
　図２を参照すれば、符号化装置は映像データを符号化するために多重参照方式を採用した符号化装置であって、符号化制御部１００、変換符号化部２００、エントロピ符号化部７００を備える。また、変換復号化部３００、メモリ部４００、動き補償部５００、及び動き予測部６００を備える。多重参照方式は後述する。
【００１５】
　入力される映像データは、図３のように時間軸に沿ってカメラから入力されるフレームまたはフレームを所定大きさに分割して得られたブロックで構成される。フレームは順次走査方式により得られた順次走査フレーム、跳越し走査方式により得られたフィールドまたは跳越し走査フレームを含む。したがって、後述する映像データは順次走査フレーム、跳越し走査フレーム、フィールド、ブロック構造のピクチャーを意味する。
【００１６】
　映像データが入力されれば、符号化制御部１００は入力される映像の特性または使用者が所望の所定動作目的によって、入力映像に対して動き補償を行うか否かによるコーディングタイプ（イントラコーディング／インターコーディング）を決定して対応する制御信号を第１スイッチＳ１に出力する。動き補償を行う場合には以前または以後に入力された映像データが必要なので第１スイッチＳ１は閉じ、動き補償を行わない場合には以前または以後に入力された映像データが不要なので第１スイッチＳ１は開放される。第１スイッチＳ１が閉じれば、入力映像と以前または以後映像から得られた差映像データが第１ソース符号化部２００に入力され、第１スイッチＳ１が開放されれば入力映像のみが変換符号化部２００に入力される。
【００１７】
　変換符号化部２００は入力された映像データを変換符号化して得られた変換係数値を所定量子化ステップによって量子化し、量子化された変換係数値で構成された２次元データのＮ×Ｍデータを得る。使われる変換の例としては、ＤＣＴ（Ｄｉｓｃｒｅｔｅ　Ｃｏｓｉｎｅ　Ｔｒａｎｓｆｏｒｍ）を挙げられる。量子化は既定の量子化ステップによって行われる。
【００１８】
　一方、変換符号化部２００に入力されて符号化された映像データは以後または以前に入力された映像データの動き補償のための参照データとして使われうるので、変換復号化部３００により、変換符号化部２００の逆過程である逆量子化と逆変換符号化を経た後、メモリ部４００に貯蔵される。また、変換復号化部３００から出力されたデータが差映像データであれば、符号化制御部１００は第２スイッチＳ２を閉じて変換復号化部３００から出力された差映像データが動き補償部５００の出力と加算された後、メモリ部４００に貯蔵される。
【００１９】
　動き予測部６００は入力された映像データとメモリ部４００に貯蔵されたデータを比較し、現在入力されたデータと最も類似したデータを探した後、入力された映像データと比較して算出された動きベクトルＭＶ（Ｍｏｔｉｏｎ　Ｖｅｃｔｏｒ）を出力する。動きベクトルは少なくとも一つのピクチャーを参照して求められる。すなわち、複数の過去及び／または未来のピクチャーを参照して算出できる。動きベクトルがメモリ部４００に伝えられれば、メモリ部４００は該当データを動き補償部５００に出力し、動き補償部５００は入力されたデータに基づいて現在符号化する映像データに該当する動き補償値を作って出力する。
【００２０】
　エントロピ符号化部７００は変換符号化部２００から出力される量子化された変換係数と動き予測部６００から出力された動きベクトルに関する情報とを入力され、符号化制御部１００から提供されるコーディングタイプ情報、量子化ステップ情報などその他の復号化に必要な情報を入力されて符号化して最終的に得られたビットストリームを出力する。
【００２１】
　動き補償部５００は本発明の望ましい実施例に係る動き補償装置であって、補間部５を備えている。補間部５は動き補償部５００による動き補償値を生成するために必要な映像データの解像度を高めるための補間を行う。補間部５により行われる補間方法（補間アルゴリズム）は後述する。
【００２２】
　図４は、本発明の望ましい実施例に係る動き補償装置を備えた復号化装置のブロック図である。
　図４を参照すれば、復号化装置は図２の符号化装置により符号化されたビットストリームを受信して復号化するための装置であって、ビットストリームをデマルチプレクスするデマルチプレクサ１１０、エントロピ復号化部７１０、変換復号化部２１０を備える。また、コーディングタイプ情報を解析するコーディングタイプ情報解析部１２０及び本発明に係る動きベクトルを解析する動きベクトル解析部１３０を備える。
【００２３】
　ビットストリームはデマルチプレクサ１１０によりエントロピ符号化された量子化された変換係数、動きベクトル情報、コーディングタイプ情報でデマルチプレクスされる。エントロピ復号化部７１０はエントロピ符号化された変換係数をエントロピ復号化して量子化された変換係数を出力する。変換復号化部２１０は量子化された変換係数を変換復号化する。すなわち、図３の変換符号化部２００の逆過程を行う。例えば、変換符号化部２００がＤＣＴを行ったとすれば、変換復号化部２１０はＩＤＣＴ（Ｉｎｖｅｒｓｅ　Ｄｉｓｃｒｅｔｅ　Ｃｏｓｉｎｅ　Ｔｒａｎｓｆｏｒｍ）を行う。これにより、映像データが復元される。復元された映像データは動き補償のためにメモリ部４１０に貯蔵される。
【００２４】
　一方、コーディングタイプ情報解析部１２０はコーディングタイプを知って動き補償が必要なインタータイプである場合、第３スイッチＳ３０を閉じる。これにより、変換復号化部２１０から出力されたデータに動き補償部５１０から出力された動き補償値が加算されて復元された映像データが得られる。動きベクトル解析部１３０は動きベクトル情報から得た動きベクトルが示す位置を知らせ、動き補償部５１０は動きベクトルが示す参照映像データから動き補償値を生成して出力する。
【００２５】
　動き補償部５１０は本発明の望ましい実施例に係る動き補償装置であって、補間部５を備えている。補間部５は動き補償部５１０による動き補償値を生成するために必要な映像データの解像度を高めるための補間を行う。補間部５により行われる補間方法（補間アルゴリズム）は後述する。
【００２６】
　図５は、多重参照方式を説明するための参考図である。
　図５を参照すれば、Ｉピクチャーは他のピクチャーを参照せずに得られるイントラピクチャーを示し、Ｂピクチャーは２つの相異なるピクチャーを参照して得られる両方向ピクチャーを示す。ＰピクチャーはＩピクチャーだけを参照して得られる予測ピクチャーを示す。矢印は復号化時に必要なピクチャー、すなわち従属関係を示す。Ｂ２ピクチャーはＩ０ピクチャーとＰ４ピクチャーとに従属され、Ｂ１ピクチャーはＩ０ピクチャー、Ｐ４ピクチャー、Ｂ２ピクチャーに従属される。Ｂ３ピクチャーはＩ０ピクチャー、Ｐ４ピクチャー、Ｂ１ピクチャー、及びＢ２ピクチャーに従属される。したがって、ディスプレー順序はＩ０，Ｂ１，Ｂ２，Ｂ３，Ｐ４，．．．順であるが、伝送順序はＩ０，Ｐ４，Ｂ２，Ｂ１，Ｂ３，．．．になる。このように、図２の符号化装置によれば複数のピクチャーを参照して生成されるＢピクチャーが存在する。換言すれば、図２及び４を各々参照して説明した符号化装置及び復号化装置での動きベクトルはフォワード予測方式、バックワード予測方式、両方向予測方式、及びダイレクト予測方式のうち両方向予測方式を含む少なくとも１つの方式で算出される。両方向予測方式において２つの参照ピクチャーは全て過去ピクチャーまたは全て未来ピクチャーであり得る。
【００２７】
　図６は、動き補償の単位となる動き補償ブロックを示す参考図である。
　図６を参照すれば、ピクチャーは複数の動き補償ブロックで構成される。動き補償ブロックは本実施例に係る１６×１６マクロブロック（ＭＢ）はもとより、マクロブロックを水平方向に２分割して得られた１６×８ブロック、マクロブロックを垂直方向に２分割して得られた８×１６ブロック、マクロブロックを水平及び垂直方向に各々２分割して得られた８×８ブロック、これを再び水平または垂直方向に２分割して得られた８×４ブロックまたは４×８ブロック、水平及び垂直方向に各々２分割して得られた４×４ブロックを含む。
【００２８】
　図７は、本発明に係る補間部５の補間方法を説明するための参考図である。
　図７を参照すれば、所定の動き補償ブロックを構成する画素の一部を示す。灰色箱は整数画素を、白箱は補間画素を示す。補間部５は次のうち何れか１つの方式を使用して４分画素１００を求める。
【００２９】
　＜方式１＞
　１−（ａ）４分画素１００の水平方向に隣接した複数の半画素の画素値に対して各々所定の加重値を与えた後、加算して水平和を得る。参与する半画素の範囲は多様に決定されうる。参与する半画素が２つであれば、これらは半画素１１と１２である。４つであれば半画素１１、１２、１３、１４となる。６つであれば半画素１１、１２、１３、１４、１５、１６である。参与する半画素の数は偶数である。加重値は次の原則に立脚して付与されうる。すなわち、４分画素１００により隣接した半画素に付与される加重値の絶対値がより少なく隣接した半画素に付与される絶対値より大きく、４分画素１００から同じ距離にある半画素に付与される加重値の絶対値は同じである。また、加重値の和は２ｎである。
　例えば、６個の半画素が参与して付与される加重値が各々ａ、ｂ、ｃ、ｄ、ｅ、ｆであれば、水平和Ｓｕｍ＿ｈ＿１００は［ａ＊（半画素１５）＋ｂ＊（半画素１３）＋ｃ＊（半画素１１）＋ｄ＊（半画素１２）＋ｅ＊（半画素１４）＋ｆ＊（半画素１６）］である。また、加重値の和ａ＋ｂ＋ｃ＋ｄ＋ｅ＋ｆ＝２ｎである。
【００３０】
　１−（ｂ）４分画素１００の垂直方向に複数の半画素の画素値に対して各々所定の加重値を与えた後、加算して垂直和を求める。参与する半画素の範囲は水平和の場合のように多様に決定できるが、水平和に参与した半画素の数と垂直和に参与した半画素の数とが同じであることが望ましい。加重値も水平和の場合と同一に付与されることが望ましい。　
　例えば、６個の半画素が参与して付与される加重値が各々ａ、ｂ、ｃ、ｄ、ｅ、ｆであれば、垂直和Ｓｕｍ＿ｖ＿１００は［ａ＊（半画素２５）＋ｂ＊（半画素２３）＋ｃ＊（半画素２１）＋ｄ＊（半画素２２）＋ｅ＊（半画素２４）＋ｆ＊（半画素２６）］である。
【００３１】
　１−（ｃ）水平和Ｓｕｍ＿ｈ＿１００と垂直和Ｓｕｍ＿ｖ＿１００とに基づいて整数値を有する４分画素１００の画素値を求める。具体的に、数式１のように、水平和Ｓｕｍ＿ｈ＿１００と垂直和Ｓｕｍ＿ｖ＿１００とを加算した後の平均値Ｍ＿ｈｖを求める。
＜数１＞
　Ｍ＿ｈｖ＝（Ｓｕｍ＿ｈ＿１００＋Ｓｕｍ＿ｖ＿１００）／［２＊（ａ＋ｂ＋ｃ＋ｄ＋ｅ＋ｆ）］
【００３２】
　次いで、平均値を整数化する。整数化する方法、すなわち平均値を整数値として作る方法は切捨て、切上げ、四捨五入がある。四捨五入を使用すれば誤差が分散される効果が得られる。得られた整数値が４分画素１００の画素値となる。もし、得られた整数値が元画素と同じ範囲の整数値でない場合に適切なマッピングアルゴリズムにより元画素と同じ範囲の整数値で表現されるようにマッピングさせる。例えば、元画素が０−２５５の整数値で表現されれば、得られた４分画素も０−２５５の整数値で表現させる。
【００３３】
　＜方式２＞
　２−（ａ）　４分画素１００の水平方向に複数の半画素に対して各々所定の加重値を与えた後、加算して水平和を得る。参与する半画素の範囲は多様に決定されうる。参与する半画素が２つであればこれらは半画素１１と１２である。４つであれば半画素１１、１２、１３、１４となる。６つであれば半画素１１、１２、１３、１４、１５、１６である。加重値は次の原則に立脚して付与できる。すなわち、４分画素１００により隣接した半画素に付与される加重値の絶対値がさらに少なく隣接した半画素に付与される絶対値より大きく、４分画素１００から同じ距離にある半画素に付与される加重値の絶対値は同じである。
　例えば、６個の半画素が参与して付与される加重値が各々ａ、ｂ、ｃ、ｄ、ｅ、ｆであれば、水平和Ｓｕｍ＿ｈ＿１００は［ａ＊（半画素１５）＋ｂ＊（半画素１３）＋ｃ＊（半画素１１）＋ｄ＊（半画素１２）＋ｅ＊（半画素１４）＋ｆ＊（半画素１６）］である。
【００３４】
　２−（ｂ）　水平和Ｓｕｍ＿ｈ＿１００の平均値を算出した後、整数値に作って水平平均値を得る。付与された加重値を考慮すれば平均値は次の数式２による。
　＜数２＞
　Ｍ＿ｈ＝（Ｓｕｍ＿ｈ＿１００）／（ａ＋ｂ＋ｃ＋ｄ＋ｅ＋ｆ）
　次いで、平均値Ｍ＿ｈを整数化する。整数化方法は切捨て、切上げ、四捨五入がある。四捨五入を使用すれば誤差が分散される効果を得られる。得られた整数値が水平平均値ｉｎｔｅｇｅｒ＿Ｍ＿ｈになる。
【００３５】
　２−（ｃ）　４分画素１００の垂直方向に複数の半画素に対して各々所定の加重値を与えた後、加算して垂直和を得る。参与する半画素の範囲は水平和の場合のように多様に決定されうるが、水平和に参与した半画素の数と垂直和に参与した半画素の数とが同じであることが望ましい。加重値も水平和の場合と同一に付与されることが望ましい。
　例えば、６個の半画素が参与して付与される加重値が各々ａ、ｂ、ｃ、ｄ、ｅ、ｆであれば、垂直和Ｓｕｍ＿ｖ＿１００は［ａ＊（半画素２５）＋ｂ＊（半画素２３）＋ｃ＊（半画素２１）＋ｄ＊（半画素２２）＋ｅ＊（半画素２４）＋ｆ＊（半画素２６）］である。
【００３６】
　２−（ｄ）　垂直和Ｓｕｍ＿ｖ＿１００の平均値を算出した後、整数値にして垂直平均値Ｍ＿ｖを得る。付与された加重値を考慮すれば平均値は次の数式３による。
　＜数３＞
　Ｍ＿ｖ＝（Ｓｕｍ＿ｖ＿１００）／（ａ＋ｂ＋ｃ＋ｄ＋ｅ＋ｆ）
　次いで、平均値Ｍ＿ｖを整数化する。整数化する方法は切捨て、切上げ、四捨五入がある。四捨五入を使用すれば誤差が分散される効果を得られる。得られた整数値が垂直平均値ｉｎｔｅｇｅｒ＿Ｍ＿ｖとなる。
【００３７】
　２−（ｅ）　水平平均値ｉｎｔｅｇｅｒ＿Ｍ＿ｈと垂直平均値ｉｎｔｅｇｅｒ＿Ｍ＿ｖとの平均値を算出する。算出された平均値を整数化すれば４分画素１００の画素値が得られる。４分画素１００の画素値は次の数式４で表現される。
　＜数４＞
　４分画素１００＝ｉｎｔｅｇｅｒ［（ｉｎｔｅｇｅｒ＿Ｍ＿ｈ＋ｉｎｔｅｇｅｒ＿Ｍ＿ｖ）／２］
【００３８】
　ここで、ｉｎｔｅｇｅｒ［］は［］を整数化することを意味する。整数化の方法は切捨て、切上げ、四捨五入がある。四捨五入を使用すれば誤差が分散される効果が得られる。
　一方、＜方式２＞は２−（ｃ）、２−（ｄ）、２−（ａ）、２−（ｂ）、２−（ｅ）の順に行われても同じ結果を得られる。
　残りの補間画素、すなわち８分画素及び１６分画素また４分画素１００と同じ方式で求められる。
【００３９】
　図８は、本発明の望ましい実施例に係る補間部５の補間方法を説明するための参考図であって、所定動き補償ブロックを構成する画素の一部を示す。灰色箱は整数画素を、白箱は補間画素を示す。本実施例に係る補間方法は１つの補間画素を求めるのに複数の画素、すなわち６個の画素が参与する。また、補間に参与する各画素は加重値が付与される。このために、本実施例では６タップフィルターを使用する。６タップフィルターは６個のタップ値を有する。タップ値は補間に参与する画素値に付与される加重値を意味する。本実施例においてタップ値は（１、−５、２０、２０、−５、１）である。もちろん、補間に参与する画素の数及びこれらに付与される加重値、すなわちタップ値は多様に決定されうる。
【００４０】
　＜半画素ｂ＞
　半画素ｂを求めるためには半画素ｂの水平方向に近く位置する順に６個の整数画素Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊが参与する。整数画素Ｅ、Ｆ、Ｇ、Ｈ、Ｉ、Ｊに前述した６タップフィルターを適用すれば次の数式５のような水平和Ｓｕｍ＿ｈ＿ｂが得られる。
　＜数５＞
　Ｓｕｍ＿ｈ＿ｂ＝（Ｅ−５Ｆ＋２０Ｇ＋２０Ｈ−５Ｉ＋Ｊ）
　次いで、数式６のように、水平和Ｓｕｍ＿ｈ＿ｂに１６を加算した後、３２で割り、整数化した後、範囲調整をして最終的に半画素ｂを求める。
　＜数６＞
　ｂ＝Ｃｌｉｐ１（（Ｓｕｍ＿ｈ＿ｂ＋１６）＞＞５）
【００４１】
　ここで、水平和Ｓｕｍ＿ｈ＿ｂに１６を加算することによって整数値を求めるに当たって四捨五入が行われる。「＞＞５」は数学的に３２（＝２５）で割った後、小数点以下の数字は捨てることを意味する。６タップフィルターのタップ値の和が３２であるために（すなわち、３２の画素値が加算されたわけなので）平均値を求めようとすれば、再び３２で割らねばならないからである。Ｃｌｉｐ１（）は求められた整数値、すなわち（Ｓｕｍ＿ｈ＿ｂ＋１６）＞＞５が元画素（整数画素）が表現される範囲のうち何れか１つで表現さるべくマッピングさせる役割をする。例えば、整数画素が０−２５５の値のうち何れか１つで表示される時、求められた平均値がその範囲外の値を有すれば、Ｃｌｉｐ１（）は範囲内の所定値でマッピングさせる。
【００４２】
　＜半画素ｈ＞
　半画素ｈを求めるためには半画素ｈの垂直方向に近く位置する順に６個の整数画素Ａ、Ｃ、Ｇ、Ｍ、Ｒ、Ｔが参与する。整数画素Ａ、Ｃ、Ｇ、Ｍ、Ｒ、Ｔに前述した６タップフィルターを適用すれば数式７のような垂直和Ｓｕｍ＿ｖ＿ｈが得られる。
　＜数７＞
　Ｓｕｍ＿ｖ＿ｈ＝（Ａ−５Ｃ＋２０Ｇ＋２０Ｍ−５Ｒ＋Ｔ）
　次いで、垂直和Ｓｕｍ＿ｖ＿ｈに１６を加算した後、３２で割り、四捨五入して平均値を求め、範囲調整を行って数式８のように、最終的に半画素ｈを求める。
　＜数８＞
　ｈ＝Ｃｌｉｐ１（（Ｓｕｍ＿ｖ＿ｈ＋１６）＞＞５）
　ここで、垂直和Ｓｕｍ＿ｖ＿ｈに１６を加算することによって整数値を求めるに当たって四捨五入が行われる。「＞＞５」は数学的に３２（＝２５）で割った後、小数点以下の数字は捨てることを意味する。６タップフィルターのタップ値の和が３２であるために（すなわち、３２個の画素値が加算されたわけなので）平均値を求めようとすれば、再び３２で割らねばならないからである。Ｃｌｉｐ１（）は求められた整数値、すなわち（Ｓｕｍ＿ｖ＿ｈ＋１６）＞＞５が元画素（整数画素）が表現される範囲のうち何れか１つで表現されるようにマッピングさせる役割をする。例えば、整数画素が０−２５５の値のうち何れか１つで表示される時、求められた平均値がその範囲外の値を有すれば、Ｃｌｉｐ１（）は範囲内の所定値としてマッピングさせる。
【００４３】
　＜半画素ｓ＞
　半画素ｓは半画素ｂと同じ方法で求められる。これは数式９のようである。
　＜数９＞
　Ｓｕｍ＿ｈ＿ｓ＝（Ｋ−５Ｌ＋２０Ｍ＋２０Ｎ−５Ｐ＋Ｑ）
　ｓ＝Ｃｌｉｐ１（（Ｓｕｍ＿ｈ＿ｓ＋１６）＞＞５）
　＜半画素ｍ＞
　半画素ｍは半画素ｈと同じ方法で求められる。これは数式１０のようである。
　＜数１０＞
　Ｓｕｍ＿ｈ＿ｍ＝（Ｂ−５Ｄ＋２０Ｈ＋２０Ｎ−５Ｓ＋Ｕ）
　ｍ＝Ｃｌｉｐ１（（Ｓｕｍ＿ｈ＿ｍ＋１６）＞＞５）
【００４４】
　＜４分画素ｊ＞
　４分画素ｊを求めるためには４分画素ｊの水平方向に近く位置する順に６個の半画素ｃｃ、ｄｄ、ｈ、ｍ、ｅｅ、ｆｆと、４分画素ｊの垂直方向に近く位置する順に６個の半画素ａａ、ｂｂ、ｂ、ｓ、ｇｇ、ｈｈ、全て１２個の半画素が参与する。
【００４５】
　＜方式３＞
　まず、水平方向の半画素ｃｃ、ｄｄ、ｈ、ｍ、ｅｅ、ｆｆに前述した６タップフィルターを適用すれば数式１１のように水平和Ｓｕｍ＿ｈ＿ｊが得られる。
　＜数１１＞
　Ｓｕｍ＿ｈ＿ｊ＝（ｃｃ−５ｄｄ＋２０ｈ＋２０ｍ−５ｅｅ＋ｆｆ）
　垂直方向の半画素ａａ、ｂｂ、ｂ、ｓ、ｇｇ、ｈｈ、に前述した６タップフィルターを適用すれば数式１２のように垂直和Ｓｕｍ＿ｖ＿ｊが得られる。
　＜数１２＞
　Ｓｕｍ＿ｖ＿ｊ＝（ａａ−５ｂｂ＋２０ｂ＋２０ｓ−５ｇｇ＋ｈｈ）
　次いで、水平和Ｓｕｍ＿ｈ＿ｊと垂直和Ｓｕｍ＿ｖ＿ｊとの平均値を求めた後、整数化し、範囲調整を行って数式１３のように最終的に４分画素ｊを求める。
　＜数１３＞
　ｊ＝Ｃｌｉｐ１（（Ｓｕｍ＿ｈ＿ｊ＋Ｓｕｍ＿ｖ＿ｊ＋３２）＞＞６）
　（Ｓｕｍ＿ｈ＿ｊ＋Ｓｕｍ＿ｖ＿ｊ＋３２）＞＞６はＳｕｍ＿ｈ＿ｊ＋Ｓｕｍ＿ｖ＿ｊに３２を加算した後、６４で割り、小数点以下の数は捨てることによって整数化することを意味する。この際、水平和と垂直和との和Ｓｕｍ＿ｈ＿ｊ＋Ｓｕｍ＿ｖ＿ｊに３２を加えるために整数化するに当たって実際には四捨五入が行われる。Ｃｌｉｐ１（）は求められた整数値、すなわち（Ｓｕｍ＿ｈ＿ｊ＋Ｓｕｍ＿ｖ＿ｊ＋３２）＞＞６が元画素（整数画素）の範囲の値のうち１つで表現さるべくマッピングさせる役割をする。例えば、元画素が０−２５５の値のうち何れか１つで表示される時、求められた整数値がその範囲外の値を有すれば範囲内の所定値でマッピングさせる。
【００４６】
　＜方式４＞
　４分画素ｊの水平方向に近く位置する順に６個の半画素ｃｃ、ｄｄ、ｈ、ｍ、ｅｅ、ｆｆに前述した６タップフィルターを適用して水平和Ｓｕｍ＿ｈ＿ｊを得る。得られた水平和Ｓｕｍ＿ｈ＿ｊの平均値を求めた後、整数化して数式１４のように水平平均値Ｍ＿ｈ＿ｊを求める。
　＜数１４＞
　Ｓｕｍ＿ｈ＿ｊ＝（ｃｃ−５ｄｄ＋２０ｈ＋２０ｍ−５ｅｅ＋ｆｆ）
　Ｍ＿ｈ＿ｊ＝Ｃｌｉｐ１（（Ｓｕｍ＿ｈ＿ｊ＋１６）＞＞５）
　次いで、垂直方向の半画素ａａ、ｂｂ、ｂ、ｓ、ｇｇ、ｈｈ、に前述した６タップフィルターを適用して垂直和Ｓｕｍ＿ｖ＿ｊを得る。得られた垂直和Ｓｕｍ＿ｖ＿ｊの平均値を求めた後、整数化して垂直平均値Ｍ＿ｖ＿ｊを求める。
　＜数１５＞
　Ｓｕｍ＿ｖ＿ｊ＝（ａａ−５ｂｂ＋２０ｂ＋２０ｓ−５ｇｇ＋ｈｈ）
　Ｍ＿ｖ＿ｊ＝Ｃｌｉｐ１（（Ｓｕｍ＿ｖ＿ｊ＋１６）＞＞５）
　次いで、水平平均値Ｍ＿ｈ＿ｊと垂直平均値Ｍ＿ｖ＿ｊとの平均値を求めた後、整数化し、数式１６のように最終的に４分画素ｊの画素値を求める。
　＜数１６＞
　ｊ＝Ｃｌｉｐ１（（Ｍ＿ｈ＿ｊ＋Ｍ＿ｖ＿ｊ＋１）＞＞１）
【００４７】
　他の４分画素、８分画素、及び１６分画素も上の４分画素ｊと同じ方法で求められる。
　一方、前述した補間方法はコンピュータで実行されるコンピュータプログラムで作成されうる。そのコンピュータプログラムを構成するコード及びコードセグメントは当該分野のコンピュータプログラマーによって容易に推論できる。また、前記プログラムはコンピュータで読取れる情報貯蔵媒体に貯蔵され、コンピュータによって読取られて実行されることによって前記補間方法を具現する。前記情報貯蔵媒体は磁気記録媒体、光記録媒体、及びキャリアウェーブ媒体を含む。
【産業上の利用可能性】
【００４８】
　動き補償において、一貫性を有し、かつ効率的な補間アルゴリズムに係る補間方法及びその装置に適用される。
【図面の簡単な説明】
【００４９】
【図１】補間の概念を説明するための参考図である。
【図２】本発明の望ましい実施例に係る動き補償装置を備えた符号化装置のブロック図である。
【図３】図２の符号化装置に入力される映像データの一例である。
【図４】本発明の望ましい実施例に係る動き補償装置を備えた復号化装置のブロック図である。
【図５】多重参照方式を説明するための参考図である。
【図６】動き補償の単位となる動き補償ブロックを示す参考図である。
【図７】本発明に係る補間部の補間方法を説明するための参考図である。
【図８】本発明の望ましい実施例に係る補間部の補間方法を説明するための参考図である。
【符号の説明】
【００５０】
１００　符号化制御部
２００　変換符号化部
３００　変換復号化部
４００　メモリ部
５００　動き補償部
６００　動き予測部
７００　エントロピ符号化部
【図１】
2004096757.tif 000003
【図２】
2004096757.tif 000004
【図３】
2004096757.tif 000005
【図４】
2004096757.tif 000006
【図５】
2004096757.tif 000007
【図６】
2004096757.tif 000008
【図７】
2004096757.tif 000009
【図８】
2004096757.tif 000010