(57)【要約】  デコーディングシステム（１）が、Ｎ個の異なるデコーダ（１００、２００、３００、４００）を備えており、各々のデコーダが、他のＮ−１個のデコーダの回路とは異なる独自の回路を有している。各々のデコーダ（１００、２００、３００、４００）が、入力されるエンコード済みのテクセルブロック（４０）に基づいて少なくとも１つのテクセル値を生成する。値選択部（５００）が、少なくともＮ個のテクセル（３０〜３６）のうちの少なくとも１つを含むテクセルブロック（１０）の境界に対する、少なくともＮ個のテクセル（３０〜３６）の位置に基づいて、少なくともＮ個のテクセル値を、デコーダ（１００、２００、３００、４００）のうちの少なくとも１つから選択的に出力するように構成されている。ピクセル計算部（６００）が、値選択部（５００）からの少なくともＮ個の選択されたテクセル値に基づいて、デコード後のピクセルのピクセル値を計算する。【選択図】図３
2013512482.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのエンコード済みのテクセルブロック（４０）に基づいてデコード後のピクセルを生成するためのデコーディングシステム（１）であって、
Ｎ個の異なるデコーダ（１００、２００、３００、４００）であって、該Ｎ個のデコーダの各々が、他のＮ−１個のデコーダの回路とは異なる回路を有するとともに、エンコード済みのテクセルブロック（４０）をデコードして少なくとも１つのそれぞれのテクセル値を生成するように構成されたＮ個の異なるデコーダ（１００、２００、３００、４００）と、
前記Ｎ個のデコーダ（１００、２００、３００、４００）へと接続された値選択部（５００）であって、少なくともＮ個のテクセル（３０〜３６）のうちの少なくとも１つを含むテクセルブロック（１０）の境界に対する、前記少なくともＮ個のテクセル値に関する前記少なくともＮ個のテクセル（３０〜３６）の位置に基づいて、少なくともＮ個のテクセル値を、前記Ｎ個のデコーダ（１００、２００、３００、４００）のうちの少なくとも１つから選択的に出力するように構成された値選択部（５００）と、
前記値選択部（５００）によって選択的に出力される前記少なくともＮ個のテクセル値に基づいて、前記デコード後のピクセルのデコード後のピクセル値を計算するように構成されたピクセル計算部（６００）と
を備えるデコーディングシステム（１）。
【請求項２】
前記値選択部（５００）が、前記Ｎ個のテクセル値に関するＮ個のテクセル（３０〜３６）がテクセルブロック（１０）の前記境界の内側に位置する場合に、前記Ｎ個のデコーダ（１００、２００、３００、４００）のうちの第１のデコーダ（１００）からＮ個のテクセル値を選択的に出力するように構成された請求項１に記載のデコーディングシステム。
【請求項３】
前記値選択部（５００）が、前記Ｎ個のテクセル値に関するＮ個のテクセル（３０〜３６）のうちの半分が前記テクセルブロック（１０）の前記境界の内側に位置し、かつ、前記Ｎ個のテクセル（３０〜３６）のうちの半分が隣のテクセルブロック（１２、１４）の境界の内側に位置する場合に、前記Ｎ個のデコーダ（１００、２００、３００、４００）のうちの第１のデコーダ（１００）からＮ個のテクセル値の半分を選択的に出力し、かつ、前記Ｎ個のデコーダ（１００、２００、３００、４００）のうちの第２のデコーダ（２００）から前記Ｎ個のテクセル値のうちの残りの半分を選択的に出力するように構成された請求項１または２に記載のデコーディングシステム。
【請求項４】
Ｎが４に等しく、前記値選択部（５００）が、前記４個のテクセル（３０〜３６）のうちの１つが前記テクセルブロック（１０）の前記境界の内側に位置し、残りの３個のテクセルの各々が隣のそれぞれのテクセルブロック（１２、１４、１６）の境界の内側に位置する場合に、前記４個のデコーダ（１００、２００、３００、４００）のうちの第１のデコーダ（１００）から前記４個のテクセル値のうちの第１のテクセル値を、前記４個のデコーダ（１００、２００、３００、４００）のうちの第２のデコーダ（２００）から前記４個のテクセル値のうちの第２のテクセル値を、前記４個のデコーダ（１００、２００、３００、４００）のうちの第３のデコーダ（３００）から前記４個のテクセル値のうちの第３のテクセル値を、前記４個のデコーダ（１００、２００、３００、４００）のうちの第４のデコーダ（４００）から前記４個のテクセル値のうちの第４のテクセル値を、選択的に出力するように構成された請求項１〜３のいずれか一項に記載のデコーディングシステム。
【請求項５】
Ｎが４に等しく、
前記４個のデコーダ（１００、２００、３００、４００）のうちの第１のデコーダ（１００）が、第１の回路を有するとともに、エンコード済みのテクセルブロック（４０）をデコードして４個のテクセル値を生成するように構成され、
前記４個のデコーダ（１００、２００、３００、４００）のうちの第２のデコーダ（２００）が、第２の回路を有するとともに、エンコード済みのテクセルブロック（４０）をデコードして２個のテクセル値を生成するように構成され、
前記４個のデコーダ（１００、２００、３００、４００）のうちの第３のデコーダ（３００）が、第３の回路を有するとともに、エンコード済みのテクセルブロック（４０）をデコードして１個のテクセル値を生成するように構成され、
前記４個のデコーダ（１００、２００、３００、４００）のうちの第４のデコーダ（４００）が、第４の回路を有しており、エンコード済みのテクセルブロック（４０）をデコードして１個のテクセル値を生成するように構成された請求項１〜４のいずれか一項に記載のデコーディングシステム。
【請求項６】
前記エンコード済みのテクセルブロック（４０）が、第１の色符号語（４１、４４、４７）、第２の色符号語（４２、４５、４８）、および第３の色符号語（４３、４６、４９）を含む請求項１〜５のいずれか一項に記載のデコーディングシステム。
【請求項７】
前記第４のデコーダ（４００）が、前記第１の色符号語（４１、４４、４７）を出力するための少なくとも１つのワイヤを備える請求項５または６に記載のデコーディングシステム。
【請求項８】
前記第３のデコーダ（３００）が、
前記第２の色符号語（４２、４５、４８）に相当するビット列を１ビット位置だけ左方へとシフトさせて、左方へとシフトされたビット列を形成するように構成された左シフト演算子（３１０）と、
１に設定されたキャリーインを有するとともに、前記左シフト演算子（３１０）へと接続され、かつ、前記第２の色符号語（４２、４５、４８）と前記左方へとシフトされたビット列とを加えるように構成された第１の加算器（３２０）と、
１に設定されたキャリーインを有するとともに、前記第１の加算器（３２０）へと接続され、かつ、前記第１の加算器（３２０）の出力と前記第１の色符号語（４１、４４、４７）とを加えるように構成された第２の加算器（３２２）と、
前記第２の加算器（３２２）へと接続されるとともに、前記第２の加算器（３２２）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、右方へとシフトされたビット列を形成するように構成された右シフト演算子（３３０）と
を備える請求項６または７に記載のデコーディングシステム。
【請求項９】
前記第２のデコーダ（２００）が、
４個のテクセル（３０〜３６）のうちの半分が前記テクセルブロック（１０）の前記境界の内側の行または列のどちらに位置するかに基づいて、前記第２の色符号語（４２、４５、４８）および前記第３の色符号語（４３、４６、４９）のうちの１つを出力するように構成された第１のマルチプレクサ（２５０）と、
前記第１の色符号語（４１、４４、４７）の符号を反転させるように構成された否定演算子（２４０）と、
前記第１のマルチプレクサ（２５０）および前記否定演算子（２４０）に接続されるとともに、前記第１のマルチプレクサ（２５０）の出力と前記符号を反転させた第１の色符号語とを加えるように構成された第１の加算器（２２０）と、
前記第１の加算器（２２０）へと接続されるとともに、前記第１の加算器（２２０）の出力に相当するビット列を１ビット位置だけ左方にシフトさせて、左方へとシフトされたビット列を形成するように構成された左シフト演算子（２１０）と、
４個のテクセル（３０〜３６）のうちの前記半分が前記テクセルブロック（１０）の前記境界の内側の行または列のどちらに位置するかに基づいて、テクセル（３２、２４）の行座標および列座標の一方を出力するように構成された第２のマルチプレクサ（２５２）と、
前記左シフト演算子（２１０）および前記第１の加算器（２２０）へと接続されるとともに、前記第２のマルチプレクサ（２５２）の出力の最上位ビットに基づいて、前記第１の加算器（２２０）の前記出力および前記左方へとシフトされたビット列の一方を出力するように構成された第３のマルチプレクサ（２５４）と、
前記第２のマルチプレクサ（２５２）へと接続されるとともに、前記第２のマルチプレクサ（２５２）の前記出力の前記最上位ビットおよび前記第２のマルチプレクサの前記出力の最下位ビットを受け取るように構成されたＯＲ演算子（２６０）と、
前記第３のマルチプレクサ（２５４）および前記ＯＲ演算子（２６０）へと接続されるとともに、前記第３のマルチプレクサ（２５４）の出力および前記ＯＲ演算子（２６０）の出力を受け取るように構成されたＡＮＤ演算子（２７０）と、
前記ＡＮＤ演算子（２７０）へと接続されるとともに、前記ＡＮＤ演算子（２７０）の出力と、１０ｂｉｎを２つの最下位ビットとして前記第１の色符号語（４１、４４、４７）の後ろに有するビット列とを加えるように構成された第２の加算器（２２２）と、
前記第１の加算器（２２０）および前記第２の加算器（２２２）へと接続されるとともに、前記第１の加算器（２２０）の前記出力と前記第２の加算器（２２２）の出力とを加えるように構成された第３の加算器（２２４）と、
前記第３の加算器（２２４）へと接続されるとともに、前記第３の加算器（２２４）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第１の右方へとシフトされたビット列を形成する第１の右シフト演算子（２３０）と、
前記第２の加算器（２２２）へと接続されるとともに、前記第２の加算器（２２２）の前記出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第２の右方へとシフトされたビット列を形成する第２の右シフト演算子（２３２）と
を備える請求項６〜８のいずれか一項に記載のデコーディングシステム。
【請求項１０】
前記第２のデコーダ（２００）が、
４個のテクセル（３０〜３６）のうちの半分が前記テクセルブロック（１０）の前記境界の内側の行または列のどちらに位置するかに基づいて、前記第２の色符号語（４２、４５、４８）および前記第３の色符号語（４３、４６、４９）のうちの１つを出力するように構成された第１のマルチプレクサ（２５０）と、
前記第１の色符号語（４１、４４、４７）の符号を反転させるように構成されたｎｏｔ演算子と、
１に設定されたキャリーを有するとともに、前記第１のマルチプレクサ（２５０）および前記ｎｏｔ演算子に接続され、かつ、前記第１のマルチプレクサ（２５０）の出力と前記符号を反転させた第１の色符号語とを加えるように構成された第１の加算器（２２０）と、
前記第１の加算器（２２０）へと接続されるとともに、前記第１の加算器（２２０）の出力に相当するビット列を１ビット位置だけ左方にシフトさせて、左方へとシフトされたビット列を形成するように構成された左シフト演算子（２１０）と、
４個のテクセル（３０〜３６）のうちの前記半分が前記テクセルブロック（１０）の前記境界の内側の行または列のどちらに位置するかに基づいて、テクセル（３２、２４）の行座標および列座標の一方を出力するように構成された第２のマルチプレクサ（２５２）と、
前記左シフト演算子（２１０）および前記第１の加算器（２２０）へと接続されるとともに、前記第２のマルチプレクサ（２５２）の出力の最上位ビットに基づいて、前記第１の加算器（２２０）の前記出力および前記左方へとシフトされたビット列の一方を出力するように構成された第３のマルチプレクサ（２５４）と、
前記第２のマルチプレクサ（２５２）へと接続されるとともに、前記第２のマルチプレクサ（２５２）の前記出力の前記最上位ビットおよび前記第２のマルチプレクサの前記出力の最下位ビットを受け取るように構成されたＯＲ演算子（２６０）と、
前記第３のマルチプレクサ（２５４）および前記ＯＲ演算子（２６０）へと接続されるとともに、前記第３のマルチプレクサ（２５４）の出力および前記ＯＲ演算子（２６０）の出力を受け取るように構成されたＡＮＤ演算子（２７０）と、
前記ＡＮＤ演算子（２７０）へと接続されるとともに、前記ＡＮＤ演算子（２７０）の出力と、１０ｂｉｎを２つの最下位ビットとして前記第１の色符号語（４１、４４、４７）の後ろに有しているビット列とを加えるように構成された第２の加算器（２２２）と、
前記第１の加算器（２２０）および前記第２の加算器（２２２）へと接続されるとともに、前記第１の加算器（２２０）の前記出力と前記第２の加算器（２２２）の出力とを加えるように構成された第３の加算器（２２４）と、
前記第３の加算器（２２４）へと接続されるとともに、前記第３の加算器（２２４）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第１の右方へとシフトされたビット列を形成する第１の右シフト演算子（２３０）と、
前記第２の加算器（２２２）へと接続されるとともに、前記第２の加算器（２２２）の前記出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第２の右方へとシフトされたビット列を形成する第２の右シフト演算子（２３２）と
を備える請求項６〜８のいずれか一項に記載のデコーディングシステム。
【請求項１１】
前記第１のデコーダ（１００）が、
前記第１の色符号語（４１、４４、４７）の符号を反転させるように構成された否定演算子（１４０）と、
前記否定演算子（１４０）へと接続されるとともに、前記第２の色符号語（４２、４５、４８）と前記符号を反転させた第１の色符号語とを加えるように構成された第１の加算器（１２０）と、
前記否定演算子（１４０）へと接続されるとともに、前記第３の色符号語（４３、４６、４９）と前記符号を反転させた第１の色符号語とを加えるように構成された第２の加算器（１２２）と、
前記第１の加算器（１２０）へと接続されるとともに、前記第１の加算器（１２０）の出力に相当するビット列を１ビット位置だけ左方にシフトさせて、第１の左方へとシフトされたビット列を形成するように構成された第１の左シフト演算子（１１０）と、
前記第２の加算器（１２２）へと接続されるとともに、前記第２の加算器（１２２）の出力に相当するビット列を１ビット位置だけ左方にシフトさせて、第２の左方へとシフトされたビット列を形成するように構成された第２の左シフト演算子（１１２）と、
前記第１の加算器（１２０）および前記第１の左シフト演算子（１１０）へと接続されるとともに、テクセル（３０）の列座標の最上位ビットに基づいて、前記第１の加算器（１２０）の前記出力および前記第１の左方へとシフトされたビット列の一方を出力するように構成された第１のマルチプレクサ（１５０）と、
前記第２の加算器（１２２）および前記第２の左シフト演算子（１１２）へと接続されるとともに、前記テクセル（３０）の行座標の最上位ビットに基づいて、前記第２の加算器（１２２）の前記出力および前記第２の左方へとシフトされたビット列の一方を出力するように構成された第２のマルチプレクサ（１５２）と、
前記列座標の前記最上位ビットおよび前記列座標の前記最下位ビットを受け取るように構成された第１のＯＲ演算子（１６０）と、
前記行座標の前記最上位ビットおよび前記行座標の前記最下位ビットを受け取るように構成された第２のＯＲ演算子（１６２）と、
前記第１のマルチプレクサ（１５０）および前記第１のＯＲ演算子（１６０）へと接続されるとともに、前記第１のマルチプレクサ（１５０）の出力および前記第１のＯＲ演算子（１６０）の出力を受け取るように構成された第１のＡＮＤ演算子（１７０）と、
前記第２のマルチプレクサ（１５２）および前記第２のＯＲ演算子（１６２）へと接続されるとともに、前記第２のマルチプレクサ（１５２）の出力および前記第２のＯＲ演算子（１６２）の出力を受け取るように構成された第２のＡＮＤ演算子（１７２）と、
前記第１のＡＮＤ演算子（１７０）へと接続されるとともに、前記第１のＡＮＤ演算子（１７０）の出力と、１０ｂｉｎを２つの最下位ビットとして前記第１の色符号語（４１、４４、４７）の後ろに有しているビット列とを加えるように構成された第３の加算器（１２４）と、
前記第１の加算器（１２０）および前記第３の加算器（１２４）へと接続され、前記第１の加算器（１２０）の前記出力と前記第３の加算器（１２４）の出力とを加えるように構成された第４の加算器（１２６）と、
前記第２の加算器（１２２）および前記第２のＡＮＤ演算子（１７２）へと接続されるとともに、前記第２の加算器（１２２）の前記出力と前記第２のＡＮＤ演算子（１７２）の出力とを加えるように構成された第５の加算器（１２８）と、
前記第３の加算器（１２４）および前記第２のＡＮＤ演算子（１７２）へと接続されるとともに、前記第３の加算器（１２４）の前記出力と前記第２のＡＮＤ演算子（１７２）の前記出力とを加えるように構成された第６の加算器（１２１）と、
前記第４の加算器（１２６）および前記第２のＡＮＤ演算子（１７２）へと接続されるとともに、前記第４の加算器（１２６）の前記出力と前記第２のＡＮＤ演算子（１７２）の前記出力とを加えるように構成された第７の加算器（１２３）と、
前記第３の加算器（１２４）および前記第５の加算器（１２８）へと接続されるとともに、前記第３の加算器（１２４）の前記出力と前記第５の加算器（１２８）の出力とを加えるように構成された第８の加算器（１２５）と、
前記第４の加算器（１２６）および前記第５の加算器（１２８）へと接続されるとともに、前記第４の加算器（１２６）の前記出力と前記第５の加算器（１２８）の前記出力とを加えるように構成された第９の加算器（１２７）と、
前記第６の加算器（１２１）へと接続されるとともに、前記第６の加算器（１２１）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第１の右方へとシフトされたビット列を形成する第１の右シフト演算子（１３０）と、
前記第７の加算器（１２３）へと接続されるとともに、前記第７の加算器（１２３）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第２の右方へとシフトされたビット列を形成する第２の右シフト演算子（１３２）と、
前記第８の加算器（１２５）へと接続されるとともに、前記第８の加算器（１２５）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第３の右方へとシフトされたビット列を形成する第３の右シフト演算子（１３４）と、
前記第９の加算器（１２７）へと接続されるとともに、前記第９の加算器（１２７）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第４の右方へとシフトされたビット列を形成する第４の右シフト演算子（１３６）と
を備える請求項６〜１０のいずれか一項に記載のデコーディングシステム。
【請求項１２】
前記第１のデコーダ（１００）が、
前記第１の色符号語（４１、４４、４７）の符号を反転させるように構成されたｎｏｔ演算子と、
１に設定されたキャリーインを有し、前記ｎｏｔ演算子へと接続されるとともに、前記第２の色符号語（４２、４５、４８）と前記符号を反転させた第１の色符号語とを加えるように構成された第１の加算器（１２０）と、
１に設定されたキャリーインを有し、前記ｎｏｔ演算子へと接続されるとともに、前記第３の色符号語（４３、４６、４９）と前記符号を反転させた第１の色符号語とを加えるように構成された第２の加算器（１２２）と、
前記第１の加算器（１２０）へと接続されるとともに、前記第１の加算器（１２０）の出力に相当するビット列を１ビット位置だけ左方にシフトさせて、第１の左方へとシフトされたビット列を形成するように構成された第１の左シフト演算子（１１０）と、
前記第２の加算器（１２２）へと接続されるとともに、前記第２の加算器（１２２）の出力に相当するビット列を１ビット位置だけ左方にシフトさせて、第２の左方へとシフトされたビット列を形成するように構成された第２の左シフト演算子（１１２）と、
前記第１の加算器（１２０）および前記第１の左シフト演算子（１１０）へと接続されるとともに、テクセル（３０）の列座標の最上位ビットに基づいて、前記第１の加算器（１２０）の前記出力および前記第１の左方へとシフトされたビット列の一方を出力するように構成された第１のマルチプレクサ（１５０）と、
前記第２の加算器（１２２）および前記第２の左シフト演算子（１１２）へと接続されるとともに、前記テクセル（３０）の行座標の最上位ビットに基づいて、前記第２の加算器（１２２）の前記出力および前記第２の左方へとシフトされたビット列の一方を出力するように構成された第２のマルチプレクサ（１５２）と、
前記列座標の前記最上位ビットおよび前記列座標の前記最下位ビットを受け取るように構成された第１のＯＲ演算子（１６０）と、
前記行座標の前記最上位ビットおよび前記行座標の前記最下位ビットを受け取るように構成された第２のＯＲ演算子（１６２）と、
前記第１のマルチプレクサ（１５０）および前記第１のＯＲ演算子（１６０）へと接続されるとともに、前記第１のマルチプレクサ（１５０）の出力および前記第１のＯＲ演算子（１６０）の出力を受け取るように構成された第１のＡＮＤ演算子（１７０）と、
前記第２のマルチプレクサ（１５２）および前記第２のＯＲ演算子（１６２）へと接続されるとともに、前記第２のマルチプレクサ（１５２）の出力および前記第２のＯＲ演算子（１６２）の出力を受け取るように構成された第２のＡＮＤ演算子（１７２）と、
前記第１のＡＮＤ演算子（１７０）へと接続されるとともに、前記第１のＡＮＤ演算子（１７０）の出力と、１０ｂｉｎを２つの最下位ビットとして前記第１の色符号語（４１、４４、４７）の後ろに有しているビット列とを加えるように構成された第３の加算器（１２４）と、
前記第１の加算器（１２０）および前記第３の加算器（１２４）へと接続されるとともに、前記第１の加算器（１２０）の前記出力と前記第３の加算器（１２４）の出力とを加えるように構成された第４の加算器（１２６）と、
前記第２の加算器（１２２）および前記第２のＡＮＤ演算子（１７２）へと接続されるとともに、前記第２の加算器（１２２）の前記出力と前記第２のＡＮＤ演算子（１７２）の出力とを加えるように構成された第５の加算器（１２８）と、
前記第３の加算器（１２４）および前記第２のＡＮＤ演算子（１７２）へと接続されるとともに、前記第３の加算器（１２４）の前記出力と前記第２のＡＮＤ演算子（１７２）の前記出力とを加えるように構成された第６の加算器（１２１）と、
前記第４の加算器（１２６）および前記第２のＡＮＤ演算子（１７２）へと接続されるとともに、前記第４の加算器（１２６）の前記出力と前記第２のＡＮＤ演算子（１７２）の前記出力とを加えるように構成された第７の加算器（１２３）と、
前記第３の加算器（１２４）および前記第５の加算器（１２８）へと接続されるとともに、前記第３の加算器（１２４）の前記出力と前記第５の加算器（１２８）の出力とを加えるように構成された第８の加算器（１２５）と、
前記第４の加算器（１２６）および前記第５の加算器（１２８）へと接続されるとともに、前記第４の加算器（１２６）の前記出力と前記第５の加算器（１２８）の前記出力とを加えるように構成された第９の加算器（１２７）と、
前記第６の加算器（１２１）へと接続されるとともに、前記第６の加算器（１２１）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第１の右方へとシフトされたビット列を形成する第１の右シフト演算子（１３０）と、
前記第７の加算器（１２３）へと接続されるとともに、前記第７の加算器（１２３）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第２の右方へとシフトされたビット列を形成する第２の右シフト演算子（１３２）と、
前記第８の加算器（１２５）へと接続されるとともに、前記第８の加算器（１２５）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第３の右方へとシフトされたビット列を形成する第３の右シフト演算子（１３４）と、
前記第９の加算器（１２７）へと接続されるとともに、前記第９の加算器（１２７）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第４の右方へとシフトされたビット列を形成する第４の右シフト演算子（１３６）と
を備える請求項６〜１０のいずれか一項に記載のデコーディングシステム。
【請求項１３】
前記値選択部（５００）が、
前記第１のデコーダ（１００）へと接続されるとともに、第１のテクセル値を出力するように構成された第１のマルチプレクサ（５１０）と、
前記第１のデコーダ（１００）および前記第２のデコーダ（２００）へと接続されるとともに、第２のテクセル値を出力するように構成された第２のマルチプレクサ（５２０）と、
前記第１のデコーダ（１００）、前記第２のデコーダ（２００）、および前記第３のデコーダ（３００）へと接続されるとともに、第３のテクセル値を出力するように構成された第３のマルチプレクサ（５３０）と、
前記第１のデコーダ（１００）、前記第２のデコーダ（２００）、および前記第４のデコーダ（４００）へと接続されるとともに、第４のテクセル値を出力するように構成された第４のマルチプレクサ（５４０）と
を備える請求項６〜１２のいずれか一項に記載のデコーディングシステム。
【請求項１４】
少なくとも１つのエンコード済みのテクセルブロック（４０）をデコードすることによってデコード後のピクセルを生成する方法であって、
Ｎ個の異なるデコーダ（１００、２００、３００、４００）であって、各々が他のＮ−１個のデコーダの回路とは異なる回路を有し、かつ、エンコード済みのテクセルブロック（４０）をデコードして少なくとも１つのそれぞれのテクセル値を生成するように構成されたＮ個の異なるデコーダ（１００、２００、３００、４００）のうちの少なくとも１つから、少なくともＮ個のテクセル値を、少なくともＮ個のテクセル（３０〜３６）のうちの少なくとも１つを含むテクセルブロック（１０）の境界に対する、前記少なくともＮ個のテクセル値に関する前記少なくともＮ個のテクセル（３０〜３６）の位置に基づいて、選択的に出力するステップと、
前記少なくともＮ個のテクセル値に基づいて、前記デコード後のピクセルのデコード後のピクセル値を計算するステップと
を含む方法。
【請求項１５】
前記選択的に出力するステップが、Ｎ個のテクセル値に関するＮ個のテクセル（３０〜３６）がテクセルブロック（１０）の前記境界の内側に位置する場合に、前記Ｎ個のデコーダ（１００、２００、３００、４００）のうちの第１のデコーダ（１００）から前記Ｎ個のテクセル値を選択的に出力するステップを含む請求項１４に記載の方法。
【請求項１６】
前記選択的に出力するステップが、Ｎ個のテクセル値に関するＮ個のテクセル（３０〜３６）のうちの半分が前記テクセルブロック（１０）の前記境界の内側に位置し、かつ、前記Ｎ個のテクセル（３０〜３６）のうちの半分が隣のテクセルブロック（１２、１４）の境界の内側に位置する場合に、前記Ｎ個のデコーダ（１００、２００、３００、４００）のうちの第１のデコーダ（１００）からＮ個のテクセル値の半分を選択的に出力するとともに、前記Ｎ個のデコーダ（１００、２００、３００、４００）のうちの第２のデコーダ（２００）から前記Ｎ個のテクセル値のうちの残りの半分を選択的に出力するステップを含む請求項１４または１５に記載の方法。
【請求項１７】
Ｎが４に等しく、前記選択的に出力するステップが、前記４個のテクセル（３０〜３６）のうちの１つが前記テクセルブロック（１０）の前記境界の内側に位置し、かつ、残りの３個のテクセルの各々が隣のそれぞれのテクセルブロック（１２、１４、１６）の境界の内側に位置する場合に、前記４個のデコーダ（１００、２００、３００、４００）のうちの第１のデコーダ（１００）から前記４個のテクセル値のうちの第１のテクセル値を、前記４個のデコーダ（１００、２００、３００、４００）のうちの第２のデコーダ（２００）から前記４個のテクセル値のうちの第２のテクセル値を、前記４個のデコーダ（１００、２００、３００、４００）のうちの第３のデコーダ（３００）から前記４個のテクセル値のうちの第３のテクセル値を、前記４個のデコーダ（１００、２００、３００、４００）のうちの第４のデコーダ（４００）から前記４個のテクセル値のうちの第４のテクセル値を、選択的に出力するステップを含む請求項１４〜１６のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広くにはデコーディングに関し、とくにはエンコード済みのテクスチャ要素ブロックについて使用することができるデコーディングシステムおよび方法に関する。
【背景技術】
【０００２】
グラフィクス・プロセッシング・ユニット（ＧＰＵ）の性能を高めようと試みるとき、１つの解決策は、メモリ帯域幅の消費を削減するための種々の技法を適用することである。帯域幅の削減は、処理能力に関する性能向上の速度がランダム・アクセス・メモリ（ＲＡＭ）の帯域幅およびレイテンシに関する性能向上の速度よりもはるかに大きいことからも、ますます重要になってきている。
【０００３】
テクスチャ圧縮が、必要な帯域幅を削減するための１つの一般的なやり方である。テクスチャを圧縮された形態でメモリに保存し、圧縮されたデータのブロックを、バスを介して転送することによって、テクスチャの帯域幅を大きく減らすことができる。
【０００４】
今日において、最も使用されているテクスチャ圧縮システムは、Ｗｉｎｄｏｗｓ（登録商標）ベースのシステムおよびＸｂｏｘ用のＤＸＴＣ［１］ならびに携帯電話機用のＥＴＣ［２］である。これらのシステムのどちらも、テクスチャと称される画像を、４×４個のテクスチャ要素（テクセル）からなるテクセルブロックへと分割し、次いでテクセルの赤色、緑色、青色（ＲＧＢ）データを（８＋８＋８）×１６＝３８４ビットから６４ビットへと圧縮する。したがって、各々のテクセルブロックに同数のビットが与えられる。これは、解凍に使用されるラスタライザが、テクスチャの任意の部分にアクセスしなければならない可能性があり、所望のテクセルブロックのメモリアドレスを容易に計算できる必要があるため、重要である。換言すると、固定レートのコーデック、すなわちすべてのテクセルブロックが同量の記憶領域を占めるコーデックがきわめて望ましく、今日のテクスチャ圧縮アルゴリズムにおける標準である。
【０００５】
ＥＴＣデコーダの開発によって、いわゆるＴモード、Ｈモード、およびＰＬＡＮＡＲモードを取り扱う追加の機能を有するいわゆるＥＴＣ２デコーダ［３］がもたらされている。ＴモードおよびＨモードは、それぞれ、色の不均一な分布、および２つのグループに配置された色を有するテクセルブロックを取り扱うように設計されている。ＥＴＣデコーダのハードウェア回路を、かなりの程度まで、追加のＴモードおよびＨモードを包含するように再利用することができる。しかしながら、ＰＬＡＮＡＲモードは、ＥＴＣならびにＴモードおよびＨモードから相当に異なっており、滑らかな色の推移を有するテクセルブロックを取り扱うように設計されている。ＰＬＡＮＡＲモードのための複雑なハードウェア回路は、ＥＴＣ２デコーダの複雑さが、ＥＴＣデコーダと比べて大きく増加することを意味すると考えられる。
【０００６】
したがって、ＰＬＡＮＡＲモードの効率的な実現をもたらし、とくには費用効率の高い回路を用いたハードウェアの実装として提供できるような実現をもたらすことに、ニーズが存在する。そのような費用効率の高い回路は、ＰＬＡＮＡＲモードがＥＴＣ２デコーダを構成すべくＥＴＣデコーダならびにＴモードおよびＨモードとともに使用される場合に、とくに望ましい。
【０００７】
同様の問題が、当技術分野において一般に存在し、すなわち実装の複雑さを低減するという目的でデコーディングシステムへと適用することができる技術が、一般に必要とされている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】［１］米国特許第５，９５６，４３１号明細書
【特許文献２】［４］国際公開第２００６／１２６９４９号パンフレット
【非特許文献】
【０００９】
【非特許文献１】［２］ＳｔｒｏｅｍおよびＭｏｅｌｌｅｒ、「ｉＰＡＣＫＭＡＮ：Ｈｉｇｈ−Ｑｕａｌｉｔｙ，Ｌｏｗ−Ｃｏｍｐｌｅｘｉｔｙ  Ｔｅｘｔｕｒｅ  Ｃｏｍｐｒｅｓｓｉｏｎ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｐｈｏｎｅｓ」、Ｇｒａｐｈｉｃｓ  Ｈａｒｄｗａｒｅ、２００５、ＡＣＭ  Ｐｒｅｓｓ、ｐｐ．６３−７０
【非特許文献２】［３］ＳｔｒｏｅｍおよびＰｅｔｔｅｒｓｓｏｎ、「ＥＴＣ２：Ｔｅｘｔｕｒｅ  Ｃｏｍｐｒｅｓｓｉｏｎ  ｕｓｉｎｇ  Ｉｎｖａｌｉｄ  Ｃｏｍｂｉｎａｔｉｏｎｓ」、Ｇｒａｐｈｉｃｓ  Ｈａｒｄｗａｒｅ、２００７、ＡＣＭ  Ｐｒｅｓｓ、ｐｐ．４９−５４
【発明の概要】
【発明が解決しようとする課題】
【００１０】
一般的な目的は、エンコードされたテクセルブロックの効率的なデコーディングを提供することにある。
【００１１】
特定の目的は、ハードウェアにおいて効率的に実現することができるデコーディング構造を提供することにある。
【課題を解決するための手段】
【００１２】
これらの目的および他の目的が、本明細書に開示のとおりの実施形態によって達成される。
【００１３】
要約すると、一実施形態は、少なくとも１つのエンコード済みのテクセルブロックに基づいてデコード後のピクセルを生成するためのデコーディングシステムに関する。このデコーディングシステムは、エンコード済みのテクセルブロックをデコードして１つまたは複数のテクセル値を生成するようにそれぞれが構成されたＮ個の並列のデコーダを備える。この実施形態によれば、Ｎ個のデコーダの回路が、Ｎ個のデコーダの各々が他のＮ−１個のデコーダの回路とは異なる独自の回路を有するように、互いに比べて異なっている。これにより、デコーダが、該デコーダによって処理することができるテクセルブロック内のテクセル位置に関して異なる能力を有するため、デコーダ回路に異なるレベルの複雑さを持たせることができる。
【００１４】
さらに、このデコーディングシステムは、Ｎ個のデコーダへと接続されてＮ個のテクセル値を選択的に出力するように構成された値選択部を備える。さらに、これらＮ個のテクセル値は、Ｎ個のデコーダの内の１つまたは複数から出力される。どのデコーダから出力されるどの特定のテクセル値を出力すべきかは、Ｎ個のテクセルのうちの少なくとも１つを含むテクセルブロックに対する、Ｎ個のテクセル値を有するＮ個のテクセルからなるパッチの位置に依存して決まる。換言すると、テクスチャのテクセルブロックの境界に対するＮ個のテクセルの位置により、どのデコーダ出力が値選択部によって選択されてピクセル計算部へとさらに送られるかが決定される。ピクセル計算部は、値選択部によって選択的に出力されるＮ個のテクセル値に基づいてデコード後のピクセル値を計算するように構成される。
【００１５】
値選択部による注意深い選択により、Ｎ個のデコーダのうちの少なくともいくつかが他のデコーダよりも複雑でない回路を有することができるように、デコーダを設計することができる。これは、デコーダのうちのいくつかを、テクセルブロック内の特定のテクセル位置についてのみテクセル値をデコードして出力できるように制限することによって可能である。結果として、Ｎ個のデコーダが、同一の回路を有する必要がなく、むしろ対照的に、回路ごとのハードウェア構造に関して異なるレベルの複雑さを有する異なる回路を有することができる。
【００１６】
一実施形態は、少なくとも１つのエンコード済みのテクセルブロックをデコードすることによってピクセルを生成する方法を規定する。この方法は、Ｎ個の異なるデコーダのうちの少なくとも１つからＮ個のテクセル値を選択的に出力するステップを含み、各々が他のＮ−１個のデコーダの回路とは異なる独自の回路を有している。さらに、各々のデコーダが、入力されるエンコード済みのテクセルブロックに基づいて少なくとも１つのテクセル値を出力する。デコードすべきピクセルのピクセル値の計算に、Ｎ個のデコーダからのどのテクセル値を使用するかの選択が、テクセルブロックの境界に対する、Ｎ個のテクセル値に関するＮ個のテクセルの位置に基づいて実行される。次いで、選択されたＮ個のテクセル値が、ピクセル値の計算に使用される。
【００１７】
実施形態は、並列のデコーダの少なくとも一部について必要とされる複雑さを低減することによって、ピクセルデコーディング構造を効率的に実現できるようにする。これにより、デコーディング構造の全体としての複雑さが、先行技術のようにＮ個の同一の並列のデコーダを有する場合と比べ、低減される。
【００１８】
本発明ならびに本発明のさらなる目的および利点を、以下の説明を参照し、添付の図面と併せて言及することによって、最もよく理解することができる。
【図面の簡単な説明】
【００１９】
【図１Ａ】テクセルブロックの境界に対するバイリニアパッチの種々の位置を示している。
【図１Ｂ】テクセルブロックの境界に対するバイリニアパッチの種々の位置を示している。
【図１Ｃ】テクセルブロックの境界に対するバイリニアパッチの種々の位置を示している。
【図１Ｄ】テクセルブロックの境界に対するバイリニアパッチの種々の位置を示している。
【図２】一実施形態によるデコーディングシステムを備えるデコーディング装置の概略の全体図である。
【図３】一実施形態によるデコーディングシステムの図である。
【図４】一実施形態によるエンコード済みのテクセルブロックを概略的に示している。
【図５】テクセルブロックにおいてテクセル特性値の平面近似を使用する考え方を示している。
【図６】図３の第４のデコーダのハードウェアの実装の実施例である。
【図７】図３の第３のデコーダのハードウェアの実装の実施例である。
【図８】図３の第２のデコーダのハードウェアの実装の実施例である。
【図９】図３の第１のデコーダのハードウェアの実装の実施例である。
【図１０】７ビットから８ビットへのエクステンダのハードウェアの実施例である。
【図１１】クランパのハードウェアの実装の実施例である。
【図１２】クランパの別のハードウェアの実装態様である。
【図１３】図３の値選択部のハードウェアの実装の実施例である。
【図１４】一実施形態によるデコーディング方法を説明するフロー図である。
【発明を実施するための形態】
【００２０】
図面の全体を通して、類似または対応する構成要素には、同じ参照番号が使用されている。
【００２１】
実施形態は、広くには、エンコードまたは圧縮されたテクスチャ要素（テクセル）ブロックをデコードまたは解凍して、デコード済みのピクセル値を生成することに関する。
【００２２】
デコードは、ゲーム、３Ｄマップおよびシーン、３Ｄメッセージ（例えば、アニメーションによるメッセージ）、スクリーンセーバ、マン・マシン・インターフェイス（ＭＭＩ）、などの三次元（３Ｄ）グラフィクスにおける使用にうまく適合するが、これらに限られるわけではない。すなわち、実施形態を、例えば一次元（１Ｄ）、二次元（２Ｄ）、または３Ｄ画像など、他の種類の画像またはグラフィクスのデコードにも使用することが可能である。
【００２３】
３Ｄグラフィクスのレンダリングプロセスは、典型的には３つの部分段階を含む。要約すると、第１の段階であるアプリケーション段階において、いくつかの三角形が生成される。これらの三角形の角が、第２の段階であるジオメトリ段階において、変換、投影、および照明される。第３の段階であるラスタ化段階において、画像はテクスチャと称されることが多いが、これを三角形に「貼り付け」、レンダリングされる画像のリアルさを高めることができる。第３の段階においては、Ｚバッファを用いたソートも実行される。
【００２４】
しかしながら、テクスチャ、およびとくには、３Ｄ画像およびグラフィクスのレンダリングは、グラフィクスシステムに要求されるメモリ帯域幅および処理能力に関し、計算処理上で高価につく作業である。例えば、テクスチャは、テクスチャを高速のオンチップメモリに配置する必要があるというメモリの観点、および１つのピクセルを描画するためにテクスチャへのアクセスが複数回行なわれる可能性があるというメモリ帯域幅の観点の両方に関して高価につく。さらに、ピクセルを描画するために複数のテクスチャが必要になる可能性もある。
【００２５】
必要とされる帯域幅および処理電力を低減するために、テクスチャエンコーディング法またはテクスチャ・エンコーディング・システムが、典型的に使用される。そのようなエンコーディングシステムは、レンダリングの際に高価なオンチップメモリおよび少ないメモリ帯域幅のより効率的な使用をもたらさなければならず、すなわち消費電力の低減および／またはより高速のレンダリングをもたらさなければならない。この必要とされる帯域幅および処理電力の低減は、メモリの量が少なく、メモリ帯域幅が狭く、電力が限られている、すなわち、電池で動作する、モバイルユニットおよび携帯電話機などのシンクライアントにとって、とくに重要である。
【００２６】
当技術分野では、テクスチャが、いわゆるテクセルブロックに分割され、各々のテクセルブロックが、いくつかのテクセルを含んでいる。このようなテクセルブロックは、典型的には矩形または正方形であって、例えばＭＲ×ＭＣ個のテクセルからなるサイズであり、ここでＭＲ、ＭＣは、正の整数であるが、ＭＲおよびＭＣの両方が同時に１になることはない。好ましくは、ＭＲ＝２ｍＲおよびＭＣ＝２ｍｃであり、ここでｍＲ、ｍＣは、正の整数である。典型的な実装態様では、ＭＲ＝ＭＣであり、このようなブロックの好ましい実施形態は、４×４のテクセルであってよい。
【００２７】
当技術分野では、ピクセルまたは画素が、テクスチャのテクスチャ要素を指して使用されることもある。しかしながら、以下の説明においては、テクセルが、テクスチャのテクスチャ要素を指して使用され、ピクセルが、ラスタ化に関連してそのようなテクセルから生成される画素を指して使用される。
【００２８】
テクセルには、テクセル値が関連づけられ、ピクセルには、ピクセル値が関連づけられる。テクセル値およびピクセル値は、有利には色値であってよい。色値を、赤、緑、青（ＲＧＢ）色あるいは輝度およびクロミナンスなど、さまざまな色フォーマットで表現することができる。さらに、テクセル値は、正規値またはＺ値など、テクセルの他の特性を表わすことができる。以下の説明においては、テクセル値を、色値として例示するが、これに限られるわけではない。
【００２９】
典型的なラスタライザは、テクスチャについて、１度に単一のテクセルにアクセスするのではない。代わりに、２×２個のテクセルなど、小さな隣接テクセルが使用される。例えば、バイリニアフィルタリングの際には、このような４つの隣接テクセルが、バイリニアフィルタリング後の値、すなわち、ピクセル値を生成するために読み出される。当技術分野においては、ピクセル値を生成するために同時に処理されるこのような隣接テクセルのグループが、典型的にはパッチと称される。したがって、バイリニアフィルタリングに使用される２×２のテクセルグループは、バイリニアパッチと称される。この考え方を、例えばトリリニアフィルタリングへとさらに拡張することができる。トリリニアフィルタリングは、２つの異なるミップマップからの２つのバイリニアパッチを使用する。
【００３０】
テクセルのパッチの処理における問題は、１つのパッチのテクセルが２つ以上のテクセルブロックにまたがる可能性がある点にある。これが、図１Ａ〜図１Ｄに概略的に示されている。図１Ａは、４つのテクセル３０〜３６からなるバイリニアパッチ２０が、単一のテクセルブロック１０内に見られる事例を示している。図１Ｂおよび図１Ｃは、バイリニアパッチ２０が互いに左右（図１Ｂ）または上下（図１Ｃ）に存在する２つのピクセルブロック１０、１２、１４にまたがる別の状況を示している。バイリニアパッチ２０の各々のテクセル３０〜３６が別々のテクセルブロック１０〜１６に存在する極端な事例が、図１Ｄに示されている。
【００３１】
この問題を解決するための伝統的なやり方は、４つの同一のデコーダを使用し、各々のデコーダにてバイリニアパッチの所定のテクセルをデコードすることである。例えば、図１Ａの事例においては、テクセルブロック１０を表わすエンコード済みのテクセルブロックが、４つのデコーダに入力される。第１のデコーダが、テクセル（１，２）３０を出力し、テクセル（２，２）が、第２のデコーダから得られ、第３および第４のデコーダが、バイリニアパッチのテクセル（１，３）および（２，３）３６をそれぞれ生成する。ここでは、原点がテクセルブロック１０の左上に位置する座標系を仮定している。図１Ｄにおいては、テクセルブロック１０のエンコード済みのテクセルブロックが、第１のデコーダに入力されて、テクセル（３，３）１０が生成され、テクセルブロック１２のエンコード済みのテクセルブロックが、第２のデコーダによって処理されて、テクセル（０，３）３２が得られる。テクセル（３，０）３４が、テクセルブロック１４のエンコード済みのテクセルブロックに基づいて第３のデコーダから得られ、第４のデコーダが、テクセルブロック１６のエンコード済みのテクセルブロックからテクセル（０，０）３６を出力する。
【００３２】
したがって、このやり方で、どの種類の状況（図１Ａ〜１Ｄ）に直面しても、各々のクロックサイクルにおいて２×２のバイリニアパッチを生成することが可能である。高性能なラスタ化ハードウェアは、トリリニアフィルタリングを可能にするために、各々のクロックサイクルにおいて上述のようなバイリニアパッチを２つ生成する。しかしながら、このような場合には、先行技術の技法によれば、８つの同一のデコーダが必要である。
【００３３】
しかしながら、並列のデコーダでのテクセルの同時処理という考え方は、デコーディングシステムの複雑さを劇的に増大させ、これはシンクライアントにとって問題である。例えば、すでに述べたＰＬＡＮＡＲモードをＥＴＣデコーディングシステムに追加することは、加算器の数として定義される複雑さの増大（デコーダあたり６個の加算器から、２１個の加算器へ）につながると考えられる［３］。このように、ＰＬＡＮＡＲは、ＥＴＣの３．５倍の加算器を使用し、４つのＥＴＣデコーダおよび４つのＰＬＡＮＡＲデコーダを有するデコーディングシステムの複雑さが、３．５倍も増加すると考えられる。
【００３４】
本明細書に開示の実施形態は、同一の並列デコーダを利用しないことで、デコーディングシステムの複雑さを低減する。きわめて対照的に、デコーダがパッチ内の異なる数のテクセルおよび異なるテクセル位置を取り扱うように設計される場合、デコーダについて異なるデコーダ回路を使用することができる。
【００３５】
一般的な実施形態においては、デコーディングシステムが、Ｎ個の異なるデコーダを備える。例えば、Ｎが４と例示される、このようなデコーディングシステム１が、図３に示されている。一般的な実施形態において、Ｎは２以上の整数であり、好ましくは４に等しい。各々のデコーダ１００、２００、３００、４００が、他のＮ−１個のデコーダの回路とは異なる回路を有している。したがって、デコーディングシステム１は、従来技術と異なり同一のデコーダを含んでおらず、むしろきわめて対照的に、異なる独自の回路を有する異なるデコーダ１００、２００、３００、４００を備えている。Ｎ個のデコーダ１００、２００、３００、４００の回路の相違は、或る１つのデコーダの回路要素の組み合わせが、残りのデコーダにおける回路要素の組み合わせと異なることを意味する。したがって、デコーダ１００、２００、３００、４００は、異なる実装コストおよび複雑さを有している。
【００３６】
各々のデコーダ１００、２００、３００、４００は、エンコード済みのテクセルブロックをデコードして、少なくとも１つのテクセル値を生成するように、さらに構成されている。さらに、デコーディングシステム１は、Ｎ個のデコーダ１００、２００、３００、４００へと接続され、少なくともＮ個のテクセル値、好ましくは、Ｎ個のテクセル値を選択的に出力するように構成された値選択部５００を備えている。これらの少なくともＮ個のテクセル値は、Ｎ個のデコーダ１００、２００、３００、４００のうちの少なくとも１個から出力される。さらに、値選択部５００は、どの少なくともＮ個のテクセル値を出力すべきか、およびどのデコーダからのテクセル値を出力すべきかを、Ｎ個のテクセルのうちの少なくとも１つを含むテクセルブロックの境界に対する、少なくともＮ個のテクセル値に関する少なくともＮ個のテクセルの位置に基づいて選択する。したがって、デコーディングシステム１によってテクセル値を生成すべきＮ個のテクセルについて、それらテクセルのテクセルブロックに対する位置が、どのデコーダから、またはＮ個のデコーダ１００、２００、３００、４００のうちのどのデコーダからテクセル値を取り出すべきかを決定する。デコーディングシステム１のピクセル計算部６００が、値選択部５００へと接続され、値選択部５００によって選択的に出力される少なくともＮ個のテクセル値に基づいて、デコードされたピクセルのデコード後のピクセル値を計算するように構成されている。
【００３７】
一般的な実施形態は、デコーダ１００、２００、３００、４００のうちの一部をテクセルブロック内の特定のテクセル位置のテクセルだけしか処理できないように制限することによって、デコーダの複雑さの低減を達成する。結果として、これらのデコーダ１００、２００、３００、４００の回路を、そのようなデコーダについての制限が存在しない先行技術の事例と比べて、大幅に低減することができる。
【００３８】
好ましい実施形態においては、Ｎ個のデコーダ１００、２００、３００、４００のうちの第１のデコーダ１００が、入力されるエンコード済みのテクセルブロックをデコードして、Ｎ個のテクセル値を生成するように構成される。次いで、値選択部５００が、Ｎ個のテクセルがテクセルブロックの境界の内側に位置する場合に、これらＮ個の第１のデコーダ１００からのテクセル値をさらにピクセル計算部５００へと選択的に出力するように構成される。図１Ａが、Ｎ＝４におけるこの事例を示している。すなわち、バイリニアパッチ２０の４つのテクセル３０〜３６がすべて、単一のテクセルブロック１０の内側に位置する場合、４つのテクセル値はすべて、第１のデコーダ１００によって生成される。これは、他のデコーダ２００、３００、４００からのいかなる出力も、値選択部５００によって選択されることがなく、ピクセル計算部６００におけるデコード後のピクセル値の計算に使用されることがないことを意味する。
【００３９】
Ｎ個のテクセルのうちの半分のテクセル３０、３４（３０、３２）がテクセルブロック１０の境界の内側に位置し、Ｎ個のテクセルのうちの残りの半分のテクセル３２、３６（３４、３６）が隣のピクセルブロック１２（１４）の境界の内側に位置する場合（図１Ｂ（図１Ｃ）を参照）、値選択部５００は、好ましくは、第１のデコーダ１００からＮ個のテクセル値のうちの半分を選択的に出力し、第２のデコーダ２００からＮ個のテクセル値のうちの残りの半分を選択的に出力するように構成される。
【００４０】
Ｎ＝４での好ましい実施形態においては、第１のデコーダ１００が、入力されるエンコード済みのテクセルブロックをデコードして４個のテクセル値を生成するように構成された第１の回路を有する。第２のデコーダ２００は、第２の回路を有し、入力されるエンコード済みのテクセルブロックに基づいて２つのテクセル値を出力する。第３のデコーダ３００および第４のデコーダ４００は、第３の回路および第４の回路をそれぞれ備える。第３のデコーダ３００および第４のデコーダ４００の各々は、入力されるエンコード済みのテクセルブロックに鑑みて、ただ１つのテクセル値を出力する。
【００４１】
図１Ｄに示されている状況においては、好ましくは４つのデコーダ１００、２００、３００、４００のすべてが、値選択部５００によって選択されるテクセル値を出力する。すなわち、値選択部５００が、第１のデコーダ１００から第１のテクセル値を、第２のデコーダ２００から第２のテクセル値を、第３のデコーダ３００から第３のテクセル値を、最後に第４のデコーダ４００から第４のテクセル値を、選択的に出力するように構成される。この場合、４つのテクセル３０〜３６の各々が、それぞれのテクセルブロック１０〜１６に位置している。
【００４２】
図２が、一実施形態によるデコーディングシステム１を有する実装の構造を概略的に示している。この構造は、エンコード済みのテクセルブロック４０を含むメモリ位置を有するメモリ５（典型的には、ＲＡＭ）を備えている。グラフィカル・プロセッシング・ユニット（ＧＰＵ）４が、メモリバスを介してメモリ５に接続されている。ＧＰＵ４は、テクセルブロックを特定するためのテクセルブロック特定部２を含んでおり、テクセルブロックのエンコード済みのブロックが、メモリ５から取り出されるべきである。テクセルブロック特定部２が、基本的には、メモリ５におけるエンコード済みのテクセルブロック４０のアドレスを計算し、メモリアクセス要求を、バスを介してメモリ５へと送信する。テクセルブロックに割り当てられたメモリ位置、または、テクセルブロックに専用のメモリ位置に存在するエンコード済みのテクセルブロック４０が、メモリ５から読み出され、バスを介してデコーディングシステム１またはＧＰＵ４のキャッシュ３へと転送される。
【００４３】
デコーディングシステム１は、エンコード済みのテクセルブロックまたはデコード後のテクセル値を保存するためのキャッシュ位置または領域を有する少なくとも１つのキャッシュ３を備え、あるいはそのような少なくとも１つのキャッシュ３に接続されている。別の実施形態においては、ＧＰＵ４が、テクスチャキャッシュおよび色バッファキャッシュなどの複数のキャッシュ３を備えることができる。ＧＰＵ４は、典型的には、デコード後の画像が表示される表示画面６へと接続される。
【００４４】
ＧＰＵ４およびＧＰＵ４に備えられるユニット１、２、３を、例えばグラフィクスカード、ビデオカード、またはマザーボードの１つまたは複数のチップにてもたらすことができる。図２の実装の構造を、任意の画像またはテクスチャの処理ユニット、あるいは、例えばコンピュータ、ゲーム機、ポータブルデバイス（携帯電話機など）、またはメディア処理デバイスなどを含むデバイスに実装することができる。
【００４５】
以下で、デコーディングシステムの実施形態を、種々の実装の実施例に関連してさらに詳しく説明する。これらの実施例は、［３、４］に記載のＰＬＡＮＡＲに従ってエンコードされたテクセルブロックの処理に適するようにさらに設計されている。要約すると、ＰＬＡＮＡＲは、クロミナンスが滑らかに変化するテクセルブロックを処理するために設計されている。ＰＬＡＮＡＲは、テクセルブロックの色成分（赤、緑、青）を平面近似によって近似する。平面を特定するためには、テクセルブロック内の３つの位置における色を特定すれば充分である。図５が、この考え方を、テクセルブロック１０に対する特定の位置の３つの赤色成分Ｒ０、ＲＨ、およびＲＶによって示している。この３つの赤色成分の位置によって、テクセルブロック１０のあらゆる位置の赤色成分を、以下の式を使用して計算することができる。
【数１】
2013512482.tif 000003
【００４６】
青色および緑色成分が、赤色成分と同じやり方で計算される。したがって、図４に示されるとおりのエンコード済みのテクセルブロック４０は、色成分ごとに３つの色符号語４１〜４９を含み、すなわちＸ０、ＸＨ、およびＸＶを含み、ここで、Ｘは、赤色成分についてＲであり、緑色成分についてＧであり、青色成分についてＢである。好ましい実施例においては、好ましくは赤色の符号語４１〜４３および青色の符号語４７〜４９の各々について６個のビットが費やされ、緑色の符号語４４〜４６の各々について７個のビットが費やされる。なぜならば、人間の眼は、緑色成分に対する感度が赤色および青色成分に対する感度と比べて高いからである。エンコード済みのテクセルブロックの総サイズは、５７ビットになり、ＥＴＣ２［３］の５７ビットモードに正確にフィットする。ＰＬＡＮＡＲが、ＥＴＣの特別なモードとしてではなく、単独で使用される場合には、エンコード済みのテクセルブロック４０が、好都合には色符号語４１〜４７のうちの１つを除くすべてに７ビットを費やし、１つ（Ｇ０など）に８ビットを費やす。したがって、総サイズは６４ビットになる。
【００４７】
ＰＬＡＮＡＲの実施態様においては、図３の第１のデコーダ１００が、４つのテクセルのすべてがテクセルブロックの内側にある任意の２×２のバイリニアパッチ（図１Ａを参照）をデコードすることができる。第２のデコーダ２００は、より遅れており、テクセルブロックの第１の行または第１の列のテクセル（図１Ｂのテクセル３２、３６および図１Ｃのテクセル３４、３６を参照）のテクセル値を生成する。したがって、第２のデコーダ２００は、好ましくは一度に２つのテクセル値を出力し、すなわち２×１のパッチまたは１×２のパッチのいずれかを出力する。第３のデコーダ３００は、エンコード済みのテクセルブロックをデコードして、単一のテクセル値を生成し、すなわち好ましくは座標（３，０）に位置する右上のテクセル値（図１Ｄのテクセル３４を参照）を生成する。第４のデコーダ４００は、好ましくは原点（０，０）のテクセル（図１Ｄのテクセル３６を参照）の単一のテクセル値を出力する。
【００４８】
これは、図１Ａのようにバイリニアパッチ２０のすべてのテクセル３０〜３６がテクセルブロック１０の境界の内側にある場合に、第１のデコーダ１００からの出力が値選択部５００によって選択されることを意味する。図１Ｂおよび図１Ｃのように、２つのテクセル３０、３４（３０、３２）が或る１つのテクセルブロック１０に位置し、２つのテクセル３２、３６（３４、３６）が隣のテクセルブロック１２（１４）に位置する場合、左の２つのテクセル３０、３４または上の２つのテクセル３０、３２のテクセル値が、第１のデコーダ１００から得られ、右の２つのテクセル３２、３６または下の２つのテクセル３４、３６からのテクセル値が、第２のデコーダ２００から得られる。最後に、図１Ｄのように４つのテクセル３０〜３６がすべて異なるテクセルブロック１０〜１６に位置する場合、値選択部５００は、左上のテクセル３０のテクセル値を第１のデコーダ１００から選択し、右上のテクセル３２のテクセル値を第２のデコーダ２００から選択し、右下のテクセル３４のテクセル値を第３のデコーダ３００から選択し、左下のテクセル３６のテクセル値を第４のデコーダ４００から選択する。このようにして、バイリニアパッチ２０の４つのテクセル３０〜３６のすべてを、単一のクロックサイクルにて得ることが可能でありながら、好都合なことに第２〜４のデコーダ２００、３００、４００をきわめてわずかなハードウェアしか使用せずに実現することができる。
【００４９】
式
【数２】
2013512482.tif 000004
から、原点（０，０）のテクセルは、とくに簡単に
【数３】
2013512482.tif 000005
と計算される。上述のように、第４のデコーダが、好ましくは原点のテクセルだけをデコードするように構成される。これは、第４のデコーダの回路をきわめて単純に製作できることを意味する。図６が、色成分のうちの１つのための第４のデコーダ４００の回路を示している。この図から見られるとおり、唯一の構造は、入力される第１の色符号語Ｘ０を所定のビット長、好ましくは、８ビットへと拡張するように構成された、随意によるが、存在する方が好ましいエクステンダ４８０である。図１０に関して本明細書においてさらに開示されるとおり、このようなエクステンダ４８０を、いかなるハードウェア構造も必要とせずに、それぞれの色成分を第４のデコーダ４００の出力へと保存するワイヤのみで実現することが可能である。
【００５０】
したがって、第４のデコーダ４００を、いかなるゲートも必要とせずに実現することができる。
【００５１】
第３のデコーダ３００は、上述の検討に従い、好ましくは位置（３，０）
【数４】
2013512482.tif 000006
のテクセルを処理しなければならない。最後の項は寄与しないため、取り除くことが可能である。演算子ｒｏｕｎｄ（）を取り除くために、結果を（１／４）を単位にして計算することができ、２を加え、２回の右へのシフト（＞＞２で表わされている）を行なうことができる。Ｘ（３，０）＝（（Ｘ０＜＜２）＋（ＸＨ−Ｘ０）×３＋２）＞＞２。
【００５２】
３による乗算を、その数を、その数をシフトさせたものに加えることによって代用することができ、すなわち、３ｔ＝２ｔ＋ｔ＝（ｔ＜＜１）＋ｔ
であり、ここでｔ＝ＸＨ−Ｘ０である。したがって、上記式を、
Ｘ（３，０）＝（（Ｘ０＜＜２）＋（ｔ＜＜１）＋ｔ＋２）＞＞２
と記述することができる。
【００５３】
各々の加算器において、キャリーインを０ではなくて１に設定することによって１を加えることができる。したがって、２の加算を、このやり方で２つの加算器を変更することによって置き換えることができる。以下の式において、キャリーインが１に設定された加算器を示すために、＋！が使用される。Ｘ（３，０）＝（（Ｘ０＜＜２）＋！（ｔ＜＜１）＋！ｔ）＞＞２。
別の表現によれば、
【数５】
2013512482.tif 000007
である。上記と同様にして、この式を、Ｘ（３，０）＝（Ｘ０＋！（（ＸＨ＜＜１）＋！ＸＨ））＞＞２
と記述することができる。この式は、上記提示の式と比べてハードウェアにおける実現がより容易である。
【００５４】
シフト演算子を、ワイヤを異なる接続にすることによって実現することができる。Ｘ（３，０）を計算するために必要な残りの演算は、３つの加算だけである。
【００５５】
図７が、第３のデコーダ３００の回路の実施形態を示している。第３のデコーダ３００は、第２の色符号語ＸＨを１ビット位置だけ左方にシフトさせ、左シフト後のビット列を得るための左シフト演算子３１０を備えている。左シフト演算子３１０は、キャリーインが１に設定された第１の加算器３２０へと接続されている。この第１の加算器３２０は、左シフト後のビット列を第２の色符号語ＸＨに加える。得られる出力が、キャリーインが１に設定されるとともに、第１の加算器３２０へと接続された第２の加算器３２２において、第１の色符号語Ｘ０へと加えられる。最後に、第２の加算器３２２は、第２の加算器３２２の出力に相当するビット列を２ビット位置だけ右方にシフトさせて、第３のデコーダ３００の最終的な出力、すなわち、テクセル値Ｘ（３，０）を形成するように構成された右シフト演算子３３０へと接続されている。
【００５６】
随意によるが、好ましい実施形態においては、第１の色符号語Ｘ０および第２の色符号語ＸＨが、好ましくは最初に６または７ビットから８ビットへと拡張または拡大される。結果として、第１のエクステンダ３８０が、好ましくは第２の加算器３２２へと接続され、第１の色符号語Ｘ０を所定のビットサイズ、好ましくは、８ビットへと拡張するように構成される。第２のエクステンダ３８２が、好ましくは左シフト演算子３１０および第１の加算器３２０へと接続され、第２の色符号語ＸＨを所定のビットサイズ（好ましくは、８ビット）へと拡張または拡大するように構成される。
【００５７】
エクステンダは、ｌビットのビット列のｋ個の最上位ビット（ｋ＜ｌ）がｋ個の最下位ビットへとコピーされて、ｌ＋ｋビットのビット列が得られるような単純な配線を行なうことによって、きわめて容易に実現可能である。図１０が、緑色成分に適した第１および第２のエクステンダ３８０、３８２の実施態様の概略図である。この図に見られるように、７ビットの入力ビット列の最上位ビットが最下位ビットの位置へとコピーされ、８ビットの出力ビット列が得られる。赤色および青色成分については、２つの最上位ビットが２つの最下位ビット位置へとコピーされ、６ビットのビット列が８ビットのビット列になる。
【００５８】
上述のエンコード済みのテクセルブロックのビットサイズ、すなわち、赤色および青色成分については色符号語ごとに６ビット、緑色成分については色符号語ごとに７ビット、および２つのエクステンダの使用において、第３のデコーダ３００のハードウェア回路を、各々の加算器が１ビットあたり４．４ゲートのコストである場合には、合計で２５０．８個のゲートで実現することができる。
Ｒ／Ｇ／Ｂ：９ビットの加算器が１個→９×４．４＝３９．６ゲート
１０ビットの加算器が１個→１０×４．４＝４４ゲート
合計：３×８３．６＝２５０．８ゲート
【００５９】
第３のデコーダ３００においても、本明細書においてさらに後述される第１および第２のデコーダの好ましい実施態様と同様に、クランパは不要である。
【００６０】
図８が、第２のデコーダのハードウェアの実装の実施形態を示している。第２のデコーダは、第２の色符号語ＸＨおよび第３の色符号語ＸＶの一方を出力するように構成された第１のマルチプレクサ２５０を備えている。色符号語の選択は、第２のデコーダ２００へと入力されるエンコード済みのテクセルブロックについて、４つのテクセルのうちの半分がテクセルブロックの境界の内側の第１の行または第１の列のどちらに位置するのかに応じて決まる。２つのピクセルが第１の行に位置する場合、第２の色符号語ＸＨが第１のマルチプレクサ２５０から出力され、そうでない場合には、第３の色符号語ＸＶが出力される。否定演算子２４０が、第１の色符号語Ｘ０の符号を反転させるように構成されている。第１の加算器２２０が、第１のマルチプレクサ２５０および否定演算子２４０へと接続され、これらのユニット２４０、２５０からの出力を足し合わせて、差ＸＨ−Ｘ０またはＸＶ−Ｘ０を形成する。別の実施態様では、否定演算子２４０がＮＯＴ演算子で置き換えられ、第１の加算器２２０が、キャリーインが１に設定された加算器である。通常は、ＮＯＴ演算子をキャリーインが１に設定された加算器とともに使用することが、ハードウェアの複雑さという点で、否定演算子および通常の加算器よりも好ましい。
【００６１】
左シフト演算子２１０が、第１の加算器２２０へと接続され、加算器の出力に相当するビット列を１ビット位置だけ左方にシフトさせるように構成される。
【００６２】
第２のマルチプレクサ２５２が、テクセルの行座標および列座標の一方を出力するように構成される。このテクセルは、第２のデコーダ２００へと入力されるエンコード済みのテクセルブロックについて、テクセルブロックに存在する２つのテクセルの内の第１のテクセルである。図において、ＳＸがこのテクセルの列座標を指し、ＳＹが行座標を指す。２つのテクセルが第１の行に位置する場合、列座標ＳＸが第２のマルチプレクサ２５２から出力され、そうでない場合には行座標ＳＹが出力される。
【００６３】
第３のマルチプレクサ２５４が、左シフト演算子２１０および第１の加算器２２０へと接続される。第３のマルチプレクサ２５４は、２×（ＸＨ／Ｖ−Ｘ０）＝２ｄ、すなわち左シフト演算子２１０からの出力と、（ＸＨ／Ｖ−Ｘ０）＝ｄ、すなわち第１の加算器２２０の出力との間で選択を行なう。選択は、第２のマルチプレクサ２５２から出力される行座標または列座標の最上位ビットの値に基づいて行なわれる。
【００６４】
ＯＲ演算子３６０が、第２のマルチプレクサ３５２へと接続され、第２のマルチプレクサ３５２からの行座標または列座標の最上位ビットおよび最下位ビットについてＯＲ演算を実行するように構成される。ＯＲ演算子３６０および第３のマルチプレクサ２５４は、さらにＡＮＤ演算子２７０へと接続される。このＡＮＤ演算子２７０は、マルチプレクサの出力について、ＯＲ演算子２６０からの単一のビットとのビットごとのＡＮＤ演算を実行する。結果として、ここでは、ＯＲの出力が１ｂｉｎである場合にマルチプレクサの出力が維持され、ＯＲの出力が０ｂｉｎである場合にＡＮＤ演算子２７０からの出力がゼロになる。したがって、ＡＮＤ演算子２７０からの出力は、２ｄ、ｄ、または０である。
【００６５】
第２の加算器２２２が、ＡＮＤ演算子２７０へと接続され、ＡＮＤ演算子２７０の出力、および第１の色符号語Ｘ０に続く２つの最下位ビットとしての１０ｂｉｎを有するビット列を加えるように構成されている。このビット列は、ｆ＝４×Ｘ０＋２に相当し、これは、第１の色符号語Ｘ０のビット列を２ビット位置だけ左方へとシフトさせ、シフト後に本来であればゼロになる最後の２ビットとして２＝１０ｂｉｎを挿入することによって実現される。したがって、第２の加算器２２２からの出力は、２ｄ＋ｆ、ｄ＋ｆ、またはｆである。
【００６６】
第３の加算器２２４が、第１の加算器２２０および第２の加算器２２２へと接続され、これらの加算器２２０、２２２からの出力を加えるように構成される。したがって、この第３の加算器２２４は、３ｄ＋ｆ、２ｄ＋ｆ、またはｄ＋ｆという結果をもたらす。第１の右シフト演算子２３０が、第３の加算器２２４へと接続され、第３の加算器２２４からのビット列を２ビット位置だけ右方へとシフトさせて、バイリニアパッチの第１の列または第１の行の２つのテクセルのうちの下方または右方のテクセルのテクセル値を得るように構成されている。第２の右シフト演算子２３２が、第２の加算器２２２へと接続され、この加算器の出力を２ビット位置だけ右方へとシフトさせて、第１の列または第１の行の２つのテクセルのうちの上方または左方のテクセルのテクセル値を形成する。
【００６７】
入力される色符号語Ｘ０、ＸＨ、ＸＶは、好ましくは図７の第３のデコーダと同様に６または７ビットから８ビットへと拡張される。したがって、随意によるが好ましいエクステンダ２８０、２８２、２８４が、好ましくは入力端子に配置され、第１のエクステンダ２８０が、この場合には１０ビットのビット列を形成すべく２つの最下位ビットとして１０ｂｉｎを加える前に、第１の色符号語Ｘ０を拡張するように構成される。第１のエクステンダ２８０は、否定演算子２４０にも接続されている。第２のエクステンダ２８２および第３のエクステンダ２８４は、第１のマルチプレクサ２５０へと接続され、それぞれ第２の色符号語ＸＨおよび第３の色符号語ＸＶを拡張する。
【００６８】
随意による実施態様では、右シフト演算子２３０、２３２が、好ましくはそれぞれのクランパまたはクランプ演算子２９０、２９２へと接続される。これらのクランパ２９０、２９２は、右シフト演算子２３０、２３２からの出力を最小テクセル値および最大テクセル値の間にクランプするように構成される。したがって、クランパ２９０、２９２は、第２のデコーダ２００からの出力ビット列が許容値区間内にあることを保証する。このような許容値区間の実施例は、第２のデコーダ２００からの出力ビット列が８ビットであるべき場合の０〜２５５である。
【００６９】
図１１が、図８の第２のデコーダまたは図９の第１のデコーダに使用されるクランパなど、クランパ１９０〜１９６、２９０、２９２のハードウェアの実装の実施例を示している。このクランパの実施形態は、［−１０２４，１０２３］の区間の値を潜在的に表わすことができる１１ビットのビット列を、［０，２５５］の区間の値を表わす８ビットのビット列へとクランプするように設計されている。クランパ１９０〜１９６、２９０、２９２は、入力ビット列の８つの最下位ビットのうちの１つをそれぞれ受け取る８個のＯＲ演算子７０１〜７０８を備えている。それぞれのＯＲ演算子７０１〜７０８の他方の入力は、もう１つのＯＲ演算子７００の出力に接続されている。このＯＲ演算子７００は、入力ビット列の２つの最上位ビットを受け取る。８つのＯＲ演算子７０１〜７０８の出力は、それぞれ対応するＡＮＤ演算子７１１〜７１８へと接続されている。それぞれのＡＮＤ演算子７１１〜７１８の他方の入力は、入力ビット列の符号ビットを受け取る。
【００７０】
クランパ１９０〜１９６、２９０、２９２の別の実装の実施形態が、図１２に示されている。この実施形態においては、８つのＯＲ演算子が、８つのＮＯＲ演算子７２１〜７２４によって置き換えられている。これに対応して、図１１の８つのＡＮＤ演算子も、８つのＮＯＲ演算子７３１〜７３８によって置き換えられている。加えて、ＮＯＴ演算子７４０が、８つのＮＯＲ演算子７３１〜７３８と入力ビット列の符号ビットの入力との間に接続されている。
【００７１】
図１２に示したハードウェアの実施形態を実現するためのコストは、以下のとおりである。
１６個のＮＯＲ→１６×１＝１６ゲート
１個のＯＲ→１×１．５＝１．５ゲート
１個のＮＯＴ→１×０．５＝０．５ゲート
合計：１６＋１．５＋０．５＝１８ゲート
【００７２】
図８の第２のデコーダ２００の実装の実施例について、ゲートの数は、クランパを除いて、以下のとおりである。
Ｒ／Ｇ／Ｂ：８ビットの加算器が１個→８×４．４＝３５．２ゲート
１１ビットの加算器が１個→１１×４．４＝４８．４ゲート
１２ビットの加算器が１個→１２×４．４＝５２．８ゲート
８ビットのｍｕｘが１個→８×２．２＝１７．６ゲート
１０ビットのｍｕｘが１個→１０×２．２＝２２ゲート
２ビットのｍｕｘが１個→２×２．２＝４．４ゲート
１ビットのＯＲが１個→１×１．５＝１．５ゲート
１０ビットのＡＮＤが１個→１０×１．５＝１５ゲート
８ビットのＮＯＴが１個→８×０．５＝４ゲート
合計：３×２００．９＝６０２．７ゲート
【００７３】
最後に、図９が、第１のデコーダ１００のハードウェアの実装の実施例である。第１のデコーダ１００は、第１の色符号語Ｘ０の符号を反転させるように構成された否定演算子１４０を備えている。第１の加算器１２０が、否定演算子１４０へと接続され、符号を反転させた第１の色符号語を第２の色符号語ＸＨに加え、ｇ＝ＸＨ−Ｘ０を得る。第２の加算器１２２も、否定演算子１４０へと接続され、符号を反転させた第１の色符号語を第３の色符号語ＸＶに加え、ｈ＝ＸＶ−Ｘ０を得る。別の実施態様では、否定演算子１４０がＮＯＴ演算子で置き換えられる。したがって、第１の加算器１２０および第２の加算器１２２の両方が、１に設定されたキャリーインを有する。
【００７４】
第１の左シフト演算子１１０が、第１の加算器１２０へと接続され、この加算器の出力を１ビット位置だけ左方へとシフトさせ、２ｇに相当する左方にシフトされたビット列を得る。第２の左シフト演算子１１２が、第２の加算器１２２へと接続され、この加算器の出力を１ビット位置だけ左方へとシフトさせ、２ｈのビット列を得る。第１のマルチプレクサ１５０が、第１の左シフト演算子１１０および第１の加算器１２０へと接続され、列座標ＳＸの最上位ビットに基づいてｇおよび２ｇの間の選択を行なうように構成されている。これに対応して、第２のマルチプレクサ１５２が、第２の左シフト演算子１１２および第２の加算器１２２へと接続され、行座標ＳＹの最上位ビットに基づいてｈおよび２ｈの間の選択を行なう。列座標および行座標は、２×２のバイリニアパッチの左上のテクセル、すなわち、図１Ａ〜図１Ｄのテクセル３０の座標である。
【００７５】
第１のＯＲ演算子１６０が、列座標ＳＸの最上位ビットおよび最下位ビットについてＯＲ演算を実行する。第２のＯＲ演算子１６２が、行座標ＳＹの最上位ビットおよび最下位ビットについてＯＲ演算を実行する。第１のＯＲ演算子１６０および第１のマルチプレクサ１５０が、マルチプレクサの出力について第１のＯＲ演算子１６０からの単一のビットとのビットごとのＡＮＤ演算を実行する第１のＡＮＤ演算子１７０へと接続される。したがって、第１のＡＮＤ演算子１７０からの出力は、２ｇ、ｇ、または０である。第２のＡＮＤ演算子１７２が、第２のマルチプレクサ１５２および第２のＯＲ演算子１６２へと接続されている。第２のＡＮＤ演算子１７２は、マルチプレクサの出力について、第２のＯＲ演算子１６２からのビットとのビットごとのＡＮＤ演算を実行し、２ｈ、ｈ、または０の出力を得る。
【００７６】
第３の加算器１２４が、第１のＡＮＤ演算子１７０へと接続され、加算器の出力を、１０ｂｉｎを第１の色符号語に続く２つの最下位ビットとして有しているビット列へと加える。このビット列は、すでに述べたようにｆ＝４×Ｘ０＋２に相当する。したがって、加算器の出力は、２ｇ＋ｆ、ｇ＋ｆ、またはｆである。第４の加算器１２６が、第１の加算器１２０および第３の加算器１２４へと接続され、これらの加算器１２０、１２４からの出力を足し合わせ、３ｇ＋ｆ、２ｇ＋ｆ、またはｇ＋ｆを得るように構成されている。第５の加算器１２８が、第２の加算器１２２および第２のＡＮＤ演算子１７２へと接続され、これら２つのユニット１２２、１７２からの出力を足し合わせ、３ｈ、２ｈ、またはｈを得る。
【００７７】
第６の加算器１２１が、第３の加算器１２４および第２のＡＮＤ演算子１７２へと接続され、これらのユニット１２４、１７２からの出力を足し合わせるように構成されている。第１の右シフト演算子１３０が、第６の加算器１２１へと接続され、加算器の出力のビット列を２ビット位置だけ右方へとシフトさせ、図１Ａのテクセル３０のテクセル値を得るように構成されている。
【００７８】
第７の加算器１２３が、第４の加算器１２６および第２のＡＮＤ演算子１７２へと接続され、これらのユニット１２６、１７２からの出力を足し合わせるように構成されている。第２の右シフト演算子１３２が、第７の加算器１２３へと接続され、加算器の出力のビット列を２ビット位置だけ右方へとシフトさせ、図１Ａのテクセル３２のテクセル値を得るように構成されている。
【００７９】
第８の加算器１２５が、第３の加算器１２４および第５の加算器１２８へと接続され、これらの加算器１２４、１２８からの出力を足し合わせるように構成されている。第３の右シフト演算子１３４が、第８の加算器１２５へと接続され、加算器の出力のビット列を２ビット位置だけ右方へとシフトさせ、図１Ａのテクセル３４のテクセル値を得るように構成されている。
【００８０】
第９の加算器１２７が、第４の加算器１２６および第５の加算器１２８へと接続され、これらの加算器１２６、１２８からの出力を足し合わせるように構成されている。第４の右シフト演算子１３６が、第４の加算器１２７へと接続され、加算器の出力のビット列を２ビット位置だけ右方へとシフトさせ、図１Ａのテクセル３６のテクセル値を得るように構成されている。
【００８１】
随意によるが好ましい実施態様においては、入力される色符号語Ｘ０、ＸＨ、ＸＶが、最初に６または７ビットから８ビットへと拡張される。したがって、第１のビットエクステンダ１８０が、好ましくは否定演算子１４０へと接続され、１０ビットのビット列を得るべく１０ｂｉｎが最下位ビットとして加えられる前に、第１の色符号語Ｘ０を所定のビット列、好ましくは、８ビットへと拡張または拡大するようにさらに構成される。同様に、第２のエクステンダ１８２が、第１の加算器１２０へと接続され、第２の色符号語ＸＨを拡張するように構成される。最後に、第３のエクステンダ１８４が、第２の加算器１２２へと接続され、第３の色符号語ＸＶを拡張するように構成される。
【００８２】
随意による実施態様においては、右シフト演算子１３０〜１３６の各々が、好ましくはそれぞれのクランパまたはクランプ演算子１９０〜１９６へと接続される。これらのクランパ１９０〜１９６は、右シフト演算子１３０〜１３６からの出力を最小テクセル値および最大テクセル値の間にクランプするように構成される。したがって、クランパ１９０〜１９６は、第１のデコーダ１００からの出力ビット列が許容値区間内にあることを保証する。そのような許容値区間の実施例は、第１のデコーダ１００からの出力ビット列が８ビットであるべき場合の０〜２５５である。
【００８３】
図８の実装の実施例におけるゲートの数は、随意によるクランパ１９０〜１９６を除いて、以下のとおりである。
Ｒ／Ｇ／Ｂ：８ビットの加算器が２個→１６×４．４＝７０．４ゲート
１０ビットの加算器が１個→１０×４．４＝４４．４ゲート
１１ビットの加算器が１個→１１×４．４＝４８．４ゲート
１２ビットの加算器が５個→６０×４．４＝２６４ゲート
１０ビットのｍｕｘが２個→２０×２．２＝４４ゲート
１ビットのＯＲが２個→２×１．５＝３ゲート
１０ビットのＡＮＤが２個→２０×１．５＝３０ゲート
８ビットのＮＯＴが１個→８×０．５＝４ゲート
合計：３×５０７．８＝１５２３．４ゲート
【００８４】
したがって、デコーディングシステムの４つのデコーダを、クランパを除いて、わずかに０＋２５０．８＋６０２．７＋１５２３．４＝２３７６．９のゲートで実現することができる。
【００８５】
先行技術［３］に提案されているような４つの同一のデコーダを備える伝統的な実施態様は、図９の第１のデコーダにきわめてよく似て見えると考えられる。唯一の相違は、この図のような４つではなく、ただ１つのテクセルが出力に必要とされる点にあると考えられる。したがって、４つの加算器１２１、１２３、１２５、１２７が、２つの４入力マルチプレクサおよび後続の加算器によって置き換えられると考えられる。これは、色チャネルごとに６個の加算器、４個のマルチプレクサ、および２つのＡＮＤ演算子を必要とすると考えられる。すなわち、４つのデコーダおよび３つの異なる色成分により、先行技術によるハードウェアのコストまたは複雑さは、以下のようであると考えられる。
６×３×４＝７２個の加算器
４×３×４＝４８個のマルチプレクサ
２×３×４＝２４個のＡＮＤ演算子
【００８６】
これを、下記しか必要としない図６〜８に開示の実装の実施形態と比較すべきである。
（９＋３＋２＋０）×３＝４２個の加算器
（２＋３＋０＋０）×３＝１５個のマルチプレクサ
（２＋１＋０＋０）×３＝９個のＡＮＤ演算子
【００８７】
すなわち、加算器の数が、７２個から４２個へと減少し、すなわち４２％減少している。マルチプレクサは、相対的にさらに減少しており、４８個から１５個へと、６９％も減少している。
【００８８】
図１３が、値選択部５００のハードウェア実装の実施形態を示している。この実施形態において、値選択部５００は、バイリニアパッチのテクセル３０〜３６のテクセル値をそれぞれ出力する４つのマルチプレクサ５１０を備えている。第１のマルチプレクサ５１０が、第１のデコーダ１００の４つの出力へと接続され、４つのビット列のうちの１つをバイリニアパッチの第１のテクセル３０のテクセル値として選択する。第２のマルチプレクサ５２０が、第１のデコーダ１００の第２および第４の出力、ならびに第２のデコーダ２００の２つの出力に接続されている。この第２のマルチプレクサ５２０は、バイリニアパッチの第２のテクセル３２のテクセル値を出力する。第３のマルチプレクサ５３０は、第１のデコーダ１００の第３および第４の出力、第２のデコーダ２００の第１の出力、ならびに第３のデコーダ３００の単一の出力に接続されている。第３のマルチプレクサ５３０は、バイリニアパッチの第３のテクセル３４のテクセル値を出力する。最後に、第４のマルチプレクサ５４０が、第１のデコーダ１００の第４の出力、第２のデコーダ２００の第２の出力、および第４のデコーダ４００の単一の出力へと接続されている。第４のマルチプレクサ５４０は、バイリニアパッチの第４のテクセル３６のテクセル値を選択して出力する。
【００８９】
テクセルブロックの境界に対するバイリニアパッチの位置によって、どのビット列がマルチプレクサ５１０〜５４０から出力されるかが決定される。すなわち、図１Ａに示した状況においては、第１のデコーダ１００の４つの出力からのビット列が、マルチプレクサ５１０〜５４０によって選択される。さらに詳しくは、第１のマルチプレクサ５１０が、第１のデコーダ１００の第１の出力からのビット列を出力し、第２のマルチプレクサ５２０が第２の出力からのビット列を出力し、第３のマルチプレクサ５３０および第４のマルチプレクサ５４０が、第３および第４のデコーダの出力からのビット列をそれぞれ出力する。図１Ｂに示されているように位置するバイリニアパッチにおいては、第１のマルチプレクサ５１０が、第１のデコーダ１００の第２の出力からのビット列を選択する。第２のマルチプレクサ５２０が、第２のデコーダ２００の第１の出力のビット列を選択する。第３のデコーダ３００が、第１のデコーダ１００からの第４の出力のビット列を選択し、第４のデコーダ４００が、第２のデコーダ２００の第２の出力からのビット列を選択する。次いで、この考え方を、図１Ｃおよび図１Ｄに示すとおりの他の２つのパッチ位置にも同様のやり方で当てはめることができる。
【００９０】
図１３に示すとおりの値選択部５００の実施形態の実現について、ゲートの数に関するコストは、以下のとおりである。
８ビットの４入力ｍｕｘが３個→２４×６．６＝１５８．４ゲート
８ビットの３入力ｍｕｘが１個→８×４．４＝３５．２ゲート
合計：１５８．４＋３５．２＝１９３．６ゲート
【００９１】
デコーダおよび値選択部の総コストは、クランパも含め、２３７６．９＋６×１８＋１９３．６＝２６７８．５ゲートである。
【００９２】
図８および図９に示すとおりの第１および第２のデコーダのクランパが省略され、代わりに値選択部５００のマルチプレクサ５１０〜５４０のうちの１つへとそれぞれが接続される４つのクランパによって置き換えられる場合、値選択部５００を実現するコストが、３個の１１ビットの４入力マルチプレクサおよび１個の１１ビットの３入力マルチプレクサが必要になると考えられるため、１９３．６ゲートではなくて２６６．２ゲートのコストへと上昇すると考えられる。
【００９３】
デコーディングシステムのピクセル計算部を、当技術分野においてよく知られた技法に従ってハードウェアにて実現することができる。さらに詳しくは、バイリニアフィルタリングの場合において、値選択部からの４つのテクセル値がＡ、Ｂ、Ｃ、およびＤと称されると仮定する。したがって、ピクセル計算部は、ピクセル値を
ピクセル値＝Ａ（１−ｄｘ）（１−ｄｙ）＋Ｂｄｘ（１−ｄｙ）＋Ｃ（１−ｄｘ）ｄｙ＋Ｄｄｘｄｙ
と計算し、ここでｄｘは、テクセルＡの中点とピクセルのサンプル点との間のｘ軸に沿った距離であり、ｄｙは、テクセルＡの中点とピクセルのサンプル点との間のｙ軸に沿った対応する距離である。
【００９４】
上述の式は、赤色、緑色、および青色成分について並行に実行される。次いで、ハードウェアの実装形態を、この式に基づいて定めることができる。例えば、サンプル点の位置を３桁の２進化１０進数で表現できると仮定し、例えばｄｘの位置が以下の値［０．０００，０．１２５，０．２５０，０．３７５，０．５００，０．６２５，０．７５０，０．８７５］をとることができると仮定する。そのような場合、位置を８つ定めることができ、上述の値を［０，１，２，３，４，５，６，７］によって表わすことができる。したがって、上述の式を
ピクセル値＝（Ａ（８−ＤＸ）（８−ＤＹ）＋ＢＤＸ（８−ＤＹ）＋Ｃ（８−ＤＸ）ＤＹ＋ＤＤＸＤＹ）＞＞６
と書き直すことができ、ここで、ＤＸ＝８×ｄｘおよびＤＹ＝８×ｄｙであり、ＤＸ、ＤＹは、０〜７の間の整数である。
【００９５】
第２の項８ＤＸ（８−ＤＹ）を調べると、ＤＸおよび（８−ＤＹ）の両方が０〜８の間の整数であることが分かる。８を表わすために、４ビットが必要である。各々の入力において４ビットを取り扱って８ビットのビット列を出力する乗算演算子を使用することができる。しかしながら、乗算演算子が出力できる最大の数は７×８＝５６であり、したがって６つの最下位ビットだけが出力から必要である。
【００９６】
次いで、乗算演算子からの出力を、テクセル値Ｂ、好ましくは、０〜２５５の間の数で乗算すべきである。この乗算を、８ビットの入力を２つ有し、１６ビットのビット列を出力する乗算演算子によって処理することができる。しかしながら、考えられる最大の数が５６×２５５＜２１４であるため、乗算演算子からの１４個の最下位ビットだけが必要である。
【００９７】
次いで、同様の方法が、式の残りの項についても実行され、それぞれの最後の乗算演算子からの出力が合計され、右方への６段階のシフトが行なわれて、最終的な８ビットのピクセル値が得られる。
【００９８】
上述の実装の実施例を、あくまでもデコーディングシステムの各ユニットをどのようにハードウェアにおいて実現できるかについての好ましいがこれらに限られない実施形態と理解すべきである。種々の変形形態が可能であり、本発明の範囲に包含される。重要な特徴は、デコーダに含まれる回路が互いに相違することで複雑さが増すものの、各々のデコーダがパッチ内の所定の位置の１つまたは複数のテクセルのテクセル値を処理および出力するように構成される点にある。
【００９９】
図１４が、少なくとも１つのエンコード済みのテクセルブロックをデコードすることによってデコード後のピクセルを生成する方法を説明するフロー図である。この方法は、工程Ｓ１にて始まり、工程Ｓ１において、少なくともＮ個のテクセル値、すなわち、パッチについて、テクセルブロックの境界に対する位置が割り出される。それぞれのエンコード済みのテクセルブロックは、割り出されたパッチの相対位置に応じて、同じエンコード済みのテクセルブロックまたは異なるエンコード済みのテクセルブロックが、デコード後のテクセル値を得るためにＮ個のデコーダへと入力される。次の工程Ｓ２において、少なくともＮ個のテクセル値が、Ｎ個のデコーダのうちの少なくとも１つから選択的に出力される。工程Ｓ２において選択すべき特定の少なくともＮ個のテクセル値、およびそれらを取り出すべきデコーダは、工程Ｓ１において得られたパッチの相対位置に基づいて決定される。さらに、Ｎ個のデコーダの各々は、残りのＮ−１個のデコーダの回路とは異なる個別の回路を有している。最後の工程Ｓ３において、デコード後のピクセル値が、工程Ｓ２において選択された少なくともＮ個のテクセル値に基づいて、好ましくはこれら少なくともＮ個のテクセル値の線形結合として計算される。次いで、この方法は終了し、または新たなデコード後のピクセルを生成する目的で工程Ｓ１においてもう一度始まる。
【０１００】
工程Ｓ２は、好ましくは、Ｎ個のテクセルがテクセルブロックの境界の内側に位置する場合には、Ｎ個のデコーダのうちの第１のデコーダからＮ個のテクセル値のすべてを選択的に出力するステップを含む。一方で、Ｎ個のテクセルのうちの半分が或る１つのテクセルブロックの内側に位置し、残りの半分のテクセルが隣のテクセルブロックの内側に位置する場合、好ましくはＮ個のテクセル値のうちの半分が第１のデコーダの出力から選択され、残りの半分のテクセル値が第２のデコーダの出力から選択される。
【０１０１】
好ましい実施形態においては、Ｎ＝４である。したがって、４つのテクセルが、各々のテクセルが別々のテクセルブロックに存在するように位置する場合には、工程Ｓ２が、好ましくは４つのデコーダの各々からそれぞれ１つのテクセル値を選択するステップを含む。
【０１０２】
上述の実施形態を、本発明の説明のためのいくつかの実施例として理解すべきである。これらの実施形態について、本発明の範囲から逸脱することなく、さまざまな修正、組み合わせ、および変更が可能であることを、当業者であれば理解できるであろう。とくには、別々の実施形態における別々の部分的解決策を、技術的に可能であれば、他の構成にて組み合わせることが可能である。しかしながら、本発明の範囲は、添付の特許請求の範囲によって定められる。
【図１Ａ】
2013512482.tif 000008
【図１Ｂ】
2013512482.tif 000009
【図１Ｃ】
2013512482.tif 000010
【図１Ｄ】
2013512482.tif 000011
【図２】
2013512482.tif 000012
【図３】
2013512482.tif 000013
【図４】
2013512482.tif 000014
【図５】
2013512482.tif 000015
【図６】
2013512482.tif 000016
【図７】
2013512482.tif 000017
【図８】
2013512482.tif 000018
【図９】
2013512482.tif 000019
【図１０】
2013512482.tif 000020
【図１１】
2013512482.tif 000021
【図１２】
2013512482.tif 000022
【図１３】
2013512482.tif 000023
【図１４】
2013512482.tif 000024
【手続補正書】
【提出日】平成24年3月21日(2012.3.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つのエンコード済みのテクセルブロック（４０）に基づいてデコード後のピクセルを生成するためのデコーディングシステム（１）であって、
Ｎ個の異なるデコーダ（１００、２００、３００、４００）であって、該Ｎ個のデコーダの各々が、他のＮ−１個のデコーダの回路の複雑度とは異なる複雑度を有する回路を有するとともに、エンコード済みのテクセルブロック（４０）をデコードして少なくとも１つのそれぞれのテクセル値を生成するように構成されたＮ個の異なるデコーダ（１００、２００、３００、４００）と、
前記Ｎ個のデコーダ（１００、２００、３００、４００）へと接続された値選択部（５００）であって、少なくともＮ個のテクセル（３０〜３６）のうちの少なくとも１つを含むテクセルブロック（１０）の境界に対する、前記少なくともＮ個のテクセル値に関する前記少なくともＮ個のテクセル（３０〜３６）の位置に基づいて、少なくともＮ個のテクセル値を、前記Ｎ個のデコーダ（１００、２００、３００、４００）のうちの少なくとも１つから選択的に出力するように構成された値選択部（５００）と、
前記値選択部（５００）によって選択的に出力される前記少なくともＮ個のテクセル値に基づいて、前記デコード後のピクセルのデコード後のピクセル値を計算するように構成されたピクセル計算部（６００）と
を備えるデコーディングシステム（１）。
【請求項２】
前記値選択部（５００）が、前記Ｎ個のテクセル値に関するＮ個のテクセル（３０〜３６）がテクセルブロック（１０）の前記境界の内側に位置する場合に、前記Ｎ個のデコーダ（１００、２００、３００、４００）のうちの第１のデコーダ（１００）からＮ個のテクセル値を選択的に出力するように構成された請求項１に記載のデコーディングシステム。
【請求項３】
前記値選択部（５００）が、前記Ｎ個のテクセル値に関するＮ個のテクセル（３０〜３６）のうちの半分が前記テクセルブロック（１０）の前記境界の内側に位置し、かつ、前記Ｎ個のテクセル（３０〜３６）のうちの半分が隣のテクセルブロック（１２、１４）の境界の内側に位置する場合に、前記Ｎ個のデコーダ（１００、２００、３００、４００）のうちの第１のデコーダ（１００）からＮ個のテクセル値の半分を選択的に出力し、かつ、前記Ｎ個のデコーダ（１００、２００、３００、４００）のうちの第２のデコーダ（２００）から前記Ｎ個のテクセル値のうちの残りの半分を選択的に出力するように構成された請求項１または２に記載のデコーディングシステム。
【請求項４】
Ｎが４に等しく、前記値選択部（５００）が、前記４個のテクセル（３０〜３６）のうちの１つが前記テクセルブロック（１０）の前記境界の内側に位置し、残りの３個のテクセルの各々が隣のそれぞれのテクセルブロック（１２、１４、１６）の境界の内側に位置する場合に、前記４個のデコーダ（１００、２００、３００、４００）のうちの第１のデコーダ（１００）から前記４個のテクセル値のうちの第１のテクセル値を、前記４個のデコーダ（１００、２００、３００、４００）のうちの第２のデコーダ（２００）から前記４個のテクセル値のうちの第２のテクセル値を、前記４個のデコーダ（１００、２００、３００、４００）のうちの第３のデコーダ（３００）から前記４個のテクセル値のうちの第３のテクセル値を、前記４個のデコーダ（１００、２００、３００、４００）のうちの第４のデコーダ（４００）から前記４個のテクセル値のうちの第４のテクセル値を、選択的に出力するように構成された請求項１〜３のいずれか一項に記載のデコーディングシステム。
【請求項５】
Ｎが４に等しく、
前記４個のデコーダ（１００、２００、３００、４００）のうちの第１のデコーダ（１００）が、第１の回路を有するとともに、エンコード済みのテクセルブロック（４０）をデコードして４個のテクセル値を生成するように構成され、
前記４個のデコーダ（１００、２００、３００、４００）のうちの第２のデコーダ（２００）が、第２の回路を有するとともに、エンコード済みのテクセルブロック（４０）をデコードして２個のテクセル値を生成するように構成され、
前記４個のデコーダ（１００、２００、３００、４００）のうちの第３のデコーダ（３００）が、第３の回路を有するとともに、エンコード済みのテクセルブロック（４０）をデコードして１個のテクセル値を生成するように構成され、
前記４個のデコーダ（１００、２００、３００、４００）のうちの第４のデコーダ（４００）が、第４の回路を有しており、エンコード済みのテクセルブロック（４０）をデコードして１個のテクセル値を生成するように構成された請求項１〜４のいずれか一項に記載のデコーディングシステム。
【請求項６】
前記エンコード済みのテクセルブロック（４０）が、第１の色符号語（４１、４４、４７）、第２の色符号語（４２、４５、４８）、および第３の色符号語（４３、４６、４９）を含む請求項１〜５のいずれか一項に記載のデコーディングシステム。
【請求項７】
前記第４のデコーダ（４００）が、前記第１の色符号語（４１、４４、４７）を出力するための少なくとも１つのワイヤを備える請求項５または６に記載のデコーディングシステム。
【請求項８】
前記第３のデコーダ（３００）が、
前記第２の色符号語（４２、４５、４８）に相当するビット列を１ビット位置だけ左方へとシフトさせて、左方へとシフトされたビット列を形成するように構成された左シフト演算子（３１０）と、
１に設定されたキャリーインを有するとともに、前記左シフト演算子（３１０）へと接続され、かつ、前記第２の色符号語（４２、４５、４８）と前記左方へとシフトされたビット列とを加えるように構成された第１の加算器（３２０）と、
１に設定されたキャリーインを有するとともに、前記第１の加算器（３２０）へと接続され、かつ、前記第１の加算器（３２０）の出力と前記第１の色符号語（４１、４４、４７）とを加えるように構成された第２の加算器（３２２）と、
前記第２の加算器（３２２）へと接続されるとともに、前記第２の加算器（３２２）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、右方へとシフトされたビット列を形成するように構成された右シフト演算子（３３０）と
を備える請求項６または７に記載のデコーディングシステム。
【請求項９】
前記第２のデコーダ（２００）が、
４個のテクセル（３０〜３６）のうちの半分が前記テクセルブロック（１０）の前記境界の内側の行または列のどちらに位置するかに基づいて、前記第２の色符号語（４２、４５、４８）および前記第３の色符号語（４３、４６、４９）のうちの１つを出力するように構成された第１のマルチプレクサ（２５０）と、
前記第１の色符号語（４１、４４、４７）の符号を反転させるように構成された否定演算子（２４０）と、
前記第１のマルチプレクサ（２５０）および前記否定演算子（２４０）に接続されるとともに、前記第１のマルチプレクサ（２５０）の出力と前記符号を反転させた第１の色符号語とを加えるように構成された第１の加算器（２２０）と、
前記第１の加算器（２２０）へと接続されるとともに、前記第１の加算器（２２０）の出力に相当するビット列を１ビット位置だけ左方にシフトさせて、左方へとシフトされたビット列を形成するように構成された左シフト演算子（２１０）と、
４個のテクセル（３０〜３６）のうちの前記半分が前記テクセルブロック（１０）の前記境界の内側の行または列のどちらに位置するかに基づいて、テクセル（３２、２４）の行座標および列座標の一方を出力するように構成された第２のマルチプレクサ（２５２）と、
前記左シフト演算子（２１０）および前記第１の加算器（２２０）へと接続されるとともに、前記第２のマルチプレクサ（２５２）の出力の最上位ビットに基づいて、前記第１の加算器（２２０）の前記出力および前記左方へとシフトされたビット列の一方を出力するように構成された第３のマルチプレクサ（２５４）と、
前記第２のマルチプレクサ（２５２）へと接続されるとともに、前記第２のマルチプレクサ（２５２）の前記出力の前記最上位ビットおよび前記第２のマルチプレクサの前記出力の最下位ビットを受け取るように構成されたＯＲ演算子（２６０）と、
前記第３のマルチプレクサ（２５４）および前記ＯＲ演算子（２６０）へと接続されるとともに、前記第３のマルチプレクサ（２５４）の出力および前記ＯＲ演算子（２６０）の出力を受け取るように構成されたＡＮＤ演算子（２７０）と、
前記ＡＮＤ演算子（２７０）へと接続されるとともに、前記ＡＮＤ演算子（２７０）の出力と、１０ｂｉｎを２つの最下位ビットとして前記第１の色符号語（４１、４４、４７）の後ろに有するビット列とを加えるように構成された第２の加算器（２２２）と、
前記第１の加算器（２２０）および前記第２の加算器（２２２）へと接続されるとともに、前記第１の加算器（２２０）の前記出力と前記第２の加算器（２２２）の出力とを加えるように構成された第３の加算器（２２４）と、
前記第３の加算器（２２４）へと接続されるとともに、前記第３の加算器（２２４）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第１の右方へとシフトされたビット列を形成する第１の右シフト演算子（２３０）と、
前記第２の加算器（２２２）へと接続されるとともに、前記第２の加算器（２２２）の前記出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第２の右方へとシフトされたビット列を形成する第２の右シフト演算子（２３２）と
を備える請求項６〜８のいずれか一項に記載のデコーディングシステム。
【請求項１０】
前記第２のデコーダ（２００）が、
４個のテクセル（３０〜３６）のうちの半分が前記テクセルブロック（１０）の前記境界の内側の行または列のどちらに位置するかに基づいて、前記第２の色符号語（４２、４５、４８）および前記第３の色符号語（４３、４６、４９）のうちの１つを出力するように構成された第１のマルチプレクサ（２５０）と、
前記第１の色符号語（４１、４４、４７）の符号を反転させるように構成されたｎｏｔ演算子と、
１に設定されたキャリーを有するとともに、前記第１のマルチプレクサ（２５０）および前記ｎｏｔ演算子に接続され、かつ、前記第１のマルチプレクサ（２５０）の出力と前記符号を反転させた第１の色符号語とを加えるように構成された第１の加算器（２２０）と、
前記第１の加算器（２２０）へと接続されるとともに、前記第１の加算器（２２０）の出力に相当するビット列を１ビット位置だけ左方にシフトさせて、左方へとシフトされたビット列を形成するように構成された左シフト演算子（２１０）と、
４個のテクセル（３０〜３６）のうちの前記半分が前記テクセルブロック（１０）の前記境界の内側の行または列のどちらに位置するかに基づいて、テクセル（３２、２４）の行座標および列座標の一方を出力するように構成された第２のマルチプレクサ（２５２）と、
前記左シフト演算子（２１０）および前記第１の加算器（２２０）へと接続されるとともに、前記第２のマルチプレクサ（２５２）の出力の最上位ビットに基づいて、前記第１の加算器（２２０）の前記出力および前記左方へとシフトされたビット列の一方を出力するように構成された第３のマルチプレクサ（２５４）と、
前記第２のマルチプレクサ（２５２）へと接続されるとともに、前記第２のマルチプレクサ（２５２）の前記出力の前記最上位ビットおよび前記第２のマルチプレクサの前記出力の最下位ビットを受け取るように構成されたＯＲ演算子（２６０）と、
前記第３のマルチプレクサ（２５４）および前記ＯＲ演算子（２６０）へと接続されるとともに、前記第３のマルチプレクサ（２５４）の出力および前記ＯＲ演算子（２６０）の出力を受け取るように構成されたＡＮＤ演算子（２７０）と、
前記ＡＮＤ演算子（２７０）へと接続されるとともに、前記ＡＮＤ演算子（２７０）の出力と、１０ｂｉｎを２つの最下位ビットとして前記第１の色符号語（４１、４４、４７）の後ろに有しているビット列とを加えるように構成された第２の加算器（２２２）と、
前記第１の加算器（２２０）および前記第２の加算器（２２２）へと接続されるとともに、前記第１の加算器（２２０）の前記出力と前記第２の加算器（２２２）の出力とを加えるように構成された第３の加算器（２２４）と、
前記第３の加算器（２２４）へと接続されるとともに、前記第３の加算器（２２４）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第１の右方へとシフトされたビット列を形成する第１の右シフト演算子（２３０）と、
前記第２の加算器（２２２）へと接続されるとともに、前記第２の加算器（２２２）の前記出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第２の右方へとシフトされたビット列を形成する第２の右シフト演算子（２３２）と
を備える請求項６〜８のいずれか一項に記載のデコーディングシステム。
【請求項１１】
前記第１のデコーダ（１００）が、
前記第１の色符号語（４１、４４、４７）の符号を反転させるように構成された否定演算子（１４０）と、
前記否定演算子（１４０）へと接続されるとともに、前記第２の色符号語（４２、４５、４８）と前記符号を反転させた第１の色符号語とを加えるように構成された第１の加算器（１２０）と、
前記否定演算子（１４０）へと接続されるとともに、前記第３の色符号語（４３、４６、４９）と前記符号を反転させた第１の色符号語とを加えるように構成された第２の加算器（１２２）と、
前記第１の加算器（１２０）へと接続されるとともに、前記第１の加算器（１２０）の出力に相当するビット列を１ビット位置だけ左方にシフトさせて、第１の左方へとシフトされたビット列を形成するように構成された第１の左シフト演算子（１１０）と、
前記第２の加算器（１２２）へと接続されるとともに、前記第２の加算器（１２２）の出力に相当するビット列を１ビット位置だけ左方にシフトさせて、第２の左方へとシフトされたビット列を形成するように構成された第２の左シフト演算子（１１２）と、
前記第１の加算器（１２０）および前記第１の左シフト演算子（１１０）へと接続されるとともに、テクセル（３０）の列座標の最上位ビットに基づいて、前記第１の加算器（１２０）の前記出力および前記第１の左方へとシフトされたビット列の一方を出力するように構成された第１のマルチプレクサ（１５０）と、
前記第２の加算器（１２２）および前記第２の左シフト演算子（１１２）へと接続されるとともに、前記テクセル（３０）の行座標の最上位ビットに基づいて、前記第２の加算器（１２２）の前記出力および前記第２の左方へとシフトされたビット列の一方を出力するように構成された第２のマルチプレクサ（１５２）と、
前記列座標の前記最上位ビットおよび前記列座標の前記最下位ビットを受け取るように構成された第１のＯＲ演算子（１６０）と、
前記行座標の前記最上位ビットおよび前記行座標の前記最下位ビットを受け取るように構成された第２のＯＲ演算子（１６２）と、
前記第１のマルチプレクサ（１５０）および前記第１のＯＲ演算子（１６０）へと接続されるとともに、前記第１のマルチプレクサ（１５０）の出力および前記第１のＯＲ演算子（１６０）の出力を受け取るように構成された第１のＡＮＤ演算子（１７０）と、
前記第２のマルチプレクサ（１５２）および前記第２のＯＲ演算子（１６２）へと接続されるとともに、前記第２のマルチプレクサ（１５２）の出力および前記第２のＯＲ演算子（１６２）の出力を受け取るように構成された第２のＡＮＤ演算子（１７２）と、
前記第１のＡＮＤ演算子（１７０）へと接続されるとともに、前記第１のＡＮＤ演算子（１７０）の出力と、１０ｂｉｎを２つの最下位ビットとして前記第１の色符号語（４１、４４、４７）の後ろに有しているビット列とを加えるように構成された第３の加算器（１２４）と、
前記第１の加算器（１２０）および前記第３の加算器（１２４）へと接続され、前記第１の加算器（１２０）の前記出力と前記第３の加算器（１２４）の出力とを加えるように構成された第４の加算器（１２６）と、
前記第２の加算器（１２２）および前記第２のＡＮＤ演算子（１７２）へと接続されるとともに、前記第２の加算器（１２２）の前記出力と前記第２のＡＮＤ演算子（１７２）の出力とを加えるように構成された第５の加算器（１２８）と、
前記第３の加算器（１２４）および前記第２のＡＮＤ演算子（１７２）へと接続されるとともに、前記第３の加算器（１２４）の前記出力と前記第２のＡＮＤ演算子（１７２）の前記出力とを加えるように構成された第６の加算器（１２１）と、
前記第４の加算器（１２６）および前記第２のＡＮＤ演算子（１７２）へと接続されるとともに、前記第４の加算器（１２６）の前記出力と前記第２のＡＮＤ演算子（１７２）の前記出力とを加えるように構成された第７の加算器（１２３）と、
前記第３の加算器（１２４）および前記第５の加算器（１２８）へと接続されるとともに、前記第３の加算器（１２４）の前記出力と前記第５の加算器（１２８）の出力とを加えるように構成された第８の加算器（１２５）と、
前記第４の加算器（１２６）および前記第５の加算器（１２８）へと接続されるとともに、前記第４の加算器（１２６）の前記出力と前記第５の加算器（１２８）の前記出力とを加えるように構成された第９の加算器（１２７）と、
前記第６の加算器（１２１）へと接続されるとともに、前記第６の加算器（１２１）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第１の右方へとシフトされたビット列を形成する第１の右シフト演算子（１３０）と、
前記第７の加算器（１２３）へと接続されるとともに、前記第７の加算器（１２３）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第２の右方へとシフトされたビット列を形成する第２の右シフト演算子（１３２）と、
前記第８の加算器（１２５）へと接続されるとともに、前記第８の加算器（１２５）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第３の右方へとシフトされたビット列を形成する第３の右シフト演算子（１３４）と、
前記第９の加算器（１２７）へと接続されるとともに、前記第９の加算器（１２７）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第４の右方へとシフトされたビット列を形成する第４の右シフト演算子（１３６）と
を備える請求項６〜１０のいずれか一項に記載のデコーディングシステム。
【請求項１２】
前記第１のデコーダ（１００）が、
前記第１の色符号語（４１、４４、４７）の符号を反転させるように構成されたｎｏｔ演算子と、
１に設定されたキャリーインを有し、前記ｎｏｔ演算子へと接続されるとともに、前記第２の色符号語（４２、４５、４８）と前記符号を反転させた第１の色符号語とを加えるように構成された第１の加算器（１２０）と、
１に設定されたキャリーインを有し、前記ｎｏｔ演算子へと接続されるとともに、前記第３の色符号語（４３、４６、４９）と前記符号を反転させた第１の色符号語とを加えるように構成された第２の加算器（１２２）と、
前記第１の加算器（１２０）へと接続されるとともに、前記第１の加算器（１２０）の出力に相当するビット列を１ビット位置だけ左方にシフトさせて、第１の左方へとシフトされたビット列を形成するように構成された第１の左シフト演算子（１１０）と、
前記第２の加算器（１２２）へと接続されるとともに、前記第２の加算器（１２２）の出力に相当するビット列を１ビット位置だけ左方にシフトさせて、第２の左方へとシフトされたビット列を形成するように構成された第２の左シフト演算子（１１２）と、
前記第１の加算器（１２０）および前記第１の左シフト演算子（１１０）へと接続されるとともに、テクセル（３０）の列座標の最上位ビットに基づいて、前記第１の加算器（１２０）の前記出力および前記第１の左方へとシフトされたビット列の一方を出力するように構成された第１のマルチプレクサ（１５０）と、
前記第２の加算器（１２２）および前記第２の左シフト演算子（１１２）へと接続されるとともに、前記テクセル（３０）の行座標の最上位ビットに基づいて、前記第２の加算器（１２２）の前記出力および前記第２の左方へとシフトされたビット列の一方を出力するように構成された第２のマルチプレクサ（１５２）と、
前記列座標の前記最上位ビットおよび前記列座標の前記最下位ビットを受け取るように構成された第１のＯＲ演算子（１６０）と、
前記行座標の前記最上位ビットおよび前記行座標の前記最下位ビットを受け取るように構成された第２のＯＲ演算子（１６２）と、
前記第１のマルチプレクサ（１５０）および前記第１のＯＲ演算子（１６０）へと接続されるとともに、前記第１のマルチプレクサ（１５０）の出力および前記第１のＯＲ演算子（１６０）の出力を受け取るように構成された第１のＡＮＤ演算子（１７０）と、
前記第２のマルチプレクサ（１５２）および前記第２のＯＲ演算子（１６２）へと接続されるとともに、前記第２のマルチプレクサ（１５２）の出力および前記第２のＯＲ演算子（１６２）の出力を受け取るように構成された第２のＡＮＤ演算子（１７２）と、
前記第１のＡＮＤ演算子（１７０）へと接続されるとともに、前記第１のＡＮＤ演算子（１７０）の出力と、１０ｂｉｎを２つの最下位ビットとして前記第１の色符号語（４１、４４、４７）の後ろに有しているビット列とを加えるように構成された第３の加算器（１２４）と、
前記第１の加算器（１２０）および前記第３の加算器（１２４）へと接続されるとともに、前記第１の加算器（１２０）の前記出力と前記第３の加算器（１２４）の出力とを加えるように構成された第４の加算器（１２６）と、
前記第２の加算器（１２２）および前記第２のＡＮＤ演算子（１７２）へと接続されるとともに、前記第２の加算器（１２２）の前記出力と前記第２のＡＮＤ演算子（１７２）の出力とを加えるように構成された第５の加算器（１２８）と、
前記第３の加算器（１２４）および前記第２のＡＮＤ演算子（１７２）へと接続されるとともに、前記第３の加算器（１２４）の前記出力と前記第２のＡＮＤ演算子（１７２）の前記出力とを加えるように構成された第６の加算器（１２１）と、
前記第４の加算器（１２６）および前記第２のＡＮＤ演算子（１７２）へと接続されるとともに、前記第４の加算器（１２６）の前記出力と前記第２のＡＮＤ演算子（１７２）の前記出力とを加えるように構成された第７の加算器（１２３）と、
前記第３の加算器（１２４）および前記第５の加算器（１２８）へと接続されるとともに、前記第３の加算器（１２４）の前記出力と前記第５の加算器（１２８）の出力とを加えるように構成された第８の加算器（１２５）と、
前記第４の加算器（１２６）および前記第５の加算器（１２８）へと接続されるとともに、前記第４の加算器（１２６）の前記出力と前記第５の加算器（１２８）の前記出力とを加えるように構成された第９の加算器（１２７）と、
前記第６の加算器（１２１）へと接続されるとともに、前記第６の加算器（１２１）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第１の右方へとシフトされたビット列を形成する第１の右シフト演算子（１３０）と、
前記第７の加算器（１２３）へと接続されるとともに、前記第７の加算器（１２３）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第２の右方へとシフトされたビット列を形成する第２の右シフト演算子（１３２）と、
前記第８の加算器（１２５）へと接続されるとともに、前記第８の加算器（１２５）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第３の右方へとシフトされたビット列を形成する第３の右シフト演算子（１３４）と、
前記第９の加算器（１２７）へと接続されるとともに、前記第９の加算器（１２７）の出力に相当するビット列を２ビット位置だけ右方へとシフトさせて、第４の右方へとシフトされたビット列を形成する第４の右シフト演算子（１３６）と
を備える請求項６〜１０のいずれか一項に記載のデコーディングシステム。
【請求項１３】
前記値選択部（５００）が、
前記第１のデコーダ（１００）へと接続されるとともに、第１のテクセル値を出力するように構成された第１のマルチプレクサ（５１０）と、
前記第１のデコーダ（１００）および前記第２のデコーダ（２００）へと接続されるとともに、第２のテクセル値を出力するように構成された第２のマルチプレクサ（５２０）と、
前記第１のデコーダ（１００）、前記第２のデコーダ（２００）、および前記第３のデコーダ（３００）へと接続されるとともに、第３のテクセル値を出力するように構成された第３のマルチプレクサ（５３０）と、
前記第１のデコーダ（１００）、前記第２のデコーダ（２００）、および前記第４のデコーダ（４００）へと接続されるとともに、第４のテクセル値を出力するように構成された第４のマルチプレクサ（５４０）と
を備える請求項６〜１２のいずれか一項に記載のデコーディングシステム。
【請求項１４】
少なくとも１つのエンコード済みのテクセルブロック（４０）をデコードすることによってデコード後のピクセルを生成する方法であって、
Ｎ個の異なるデコーダ（１００、２００、３００、４００）であって、各々が他のＮ−１個のデコーダの回路の複雑度とは異なる複雑度を有する回路を有し、かつ、エンコード済みのテクセルブロック（４０）をデコードして少なくとも１つのそれぞれのテクセル値を生成するように構成されたＮ個の異なるデコーダ（１００、２００、３００、４００）のうちの少なくとも１つから、少なくともＮ個のテクセル値を、少なくともＮ個のテクセル（３０〜３６）のうちの少なくとも１つを含むテクセルブロック（１０）の境界に対する、前記少なくともＮ個のテクセル値に関する前記少なくともＮ個のテクセル（３０〜３６）の位置に基づいて、選択的に出力するステップと、
前記少なくともＮ個のテクセル値に基づいて、前記デコード後のピクセルのデコード後のピクセル値を計算するステップと
を含む方法。
【請求項１５】
前記選択的に出力するステップが、Ｎ個のテクセル値に関するＮ個のテクセル（３０〜３６）がテクセルブロック（１０）の前記境界の内側に位置する場合に、前記Ｎ個のデコーダ（１００、２００、３００、４００）のうちの第１のデコーダ（１００）から前記Ｎ個のテクセル値を選択的に出力するステップを含む請求項１４に記載の方法。
【請求項１６】
前記選択的に出力するステップが、Ｎ個のテクセル値に関するＮ個のテクセル（３０〜３６）のうちの半分が前記テクセルブロック（１０）の前記境界の内側に位置し、かつ、前記Ｎ個のテクセル（３０〜３６）のうちの半分が隣のテクセルブロック（１２、１４）の境界の内側に位置する場合に、前記Ｎ個のデコーダ（１００、２００、３００、４００）のうちの第１のデコーダ（１００）からＮ個のテクセル値の半分を選択的に出力するとともに、前記Ｎ個のデコーダ（１００、２００、３００、４００）のうちの第２のデコーダ（２００）から前記Ｎ個のテクセル値のうちの残りの半分を選択的に出力するステップを含む請求項１４または１５に記載の方法。
【請求項１７】
Ｎが４に等しく、前記選択的に出力するステップが、前記４個のテクセル（３０〜３６）のうちの１つが前記テクセルブロック（１０）の前記境界の内側に位置し、かつ、残りの３個のテクセルの各々が隣のそれぞれのテクセルブロック（１２、１４、１６）の境界の内側に位置する場合に、前記４個のデコーダ（１００、２００、３００、４００）のうちの第１のデコーダ（１００）から前記４個のテクセル値のうちの第１のテクセル値を、前記４個のデコーダ（１００、２００、３００、４００）のうちの第２のデコーダ（２００）から前記４個のテクセル値のうちの第２のテクセル値を、前記４個のデコーダ（１００、２００、３００、４００）のうちの第３のデコーダ（３００）から前記４個のテクセル値のうちの第３のテクセル値を、前記４個のデコーダ（１００、２００、３００、４００）のうちの第４のデコーダ（４００）から前記４個のテクセル値のうちの第４のテクセル値を、選択的に出力するステップを含む請求項１４〜１６のいずれか一項に記載の方法。
【国際調査報告】
2013512482.tif 000025
2013512482.tif 000026
2013512482.tif 000027
2013512482.tif 000028