(57)【要約】【課題】ネットワークを介してスクリーンコンテンツを有効に伝達することができるエンコーディング方法、その非一時的コンピュータ可読媒体、及びエンコーダを提供する。【解決手段】  実施形態において、エンコーディング方法は、コーディング単位内の全画素に対応するヒストグラムを生成する。エンコーディング方法は、更に、ヒストグラムに基づいて第１色値を求めることを含み、ヒストグラムにおける第１色値の第１画素数は、第１閾値以上である。エンコーディング方法は、更に、ヒストグラムに基づいて第１色値の第１範囲内の第２色値を求めることを含む。エンコーディング方法は、更に、第２色値の第２画素数が第２閾値以上である時、第１色値の１つ以上の画素をヒストグラムから削除することを含む。エンコーディング方法は、更に、第２画素数が第２閾値未満である時、第１閾値を初期色テーブルに加えることを含む。本発明において、エンコーダも提供される。【選択図】図６
2016140063.tif 000002
【特許請求の範囲】
【請求項１】
コーディング単位内の全画素に対応するヒストグラムを生成し、
前記ヒストグラムに基づいて第１色値を求め、そのうち、前記ヒストグラムにおける前記第１色値の第１画素数が第１閾値以上であり、
前記ヒストグラムに基づいて前記第１色値の第１範囲内の第２色値を求め、
前記第２色値の第２画素数が第２閾値以上である時、前記ヒストグラムから前記第１色値の１つ以上の画素を削除し、
前記第２画素数が前記第２閾値未満である時、前記第１色値を初期色テーブルに加えることを含むエンコーディング方法。
【請求項２】
Ｋ平均法を用いて前記コーディング単位内の複数の画素を分類することを更に含み、そのうち、前記複数の画素の複数の色値は、前記初期色テーブルに存在しない請求項１に記載のエンコーディング方法。
【請求項３】
前記第１色値を前記初期色テーブルに加えるステップは、
前記第１色値の第２範囲内の全画素を前記ヒストグラムから削除することを更に含む請求項１に記載のエンコーディング方法。
【請求項４】
前記第２範囲は、中心値としての前記第１色値と、誤差限界を４で除算したものに等しい偏差と、を有する範囲である請求項３に記載のエンコーディング方法。
【請求項５】
前記ヒストグラムにおける横軸及び縦軸は、それぞれ、色値及び前記色値の画素数を示す請求項１に記載のエンコーディング方法。
【請求項６】
前記第１閾値は、２つの値の最大値であり、
１つの値は、前記コーディング単位の幅に誤差限界を乗算して３２で除算したものに等しく、
もう１つの値は、前記コーディング単位の前記幅を２で除算したものに等しい請求項１に記載のエンコーディング方法。
【請求項７】
前記誤差限界は、量子化ステップのサイズにより決定される請求項６に記載のエンコーディング方法。
【請求項８】
前記第１範囲は、中心値としての前記第１色値と、前記誤差限界を４で除算したものに等しい偏差と、を有する範囲である請求項６に記載のエンコーディング方法。
【請求項９】
前記第２閾値は、前記第１画素数の値を２で除算したものである請求項１に記載のエンコーディング方法。
【請求項１０】
コーディング単位内の全画素に対応するヒストグラムを生成する生成モジュールと、
前記ヒストグラムに基づいて第１色値を求め、前記ヒストグラムにおける前記第１色値の第１画素数は、第１閾値以上であり、更に、前記ヒストグラムに基づいて前記第１色値の第１範囲内の第２色値を求める検索モジュールと、
前記第２色値の第２画素数が第２閾値以上である時、前記ヒストグラムから前記第１色値の１つ以上の画素を削除し、前記第２画素数が前記第２閾値未満である時、前記処理モジュールは、前記第１色値を初期色テーブルに加える処理モジュールと、
前記コーディング単位、前記ヒストグラム及び前記初期色テーブルを保存するストレージモジュールと、
を含むエンコーダ。
【請求項１１】
前記処理モジュールは、更に、Ｋ平均法によって前記コーディング単位内の複数の画素を分類し、そのうち、前記複数の画素の複数の色値は、前記初期色テーブルに存在しない請求項１０に記載のエンコーダ。
【請求項１２】
前記第１色値が前記初期色テーブルに加えられた後、前記処理モジュールは、前記第１色値の第２範囲内の全画素を前記ヒストグラムから削除する請求項１０に記載のエンコーダ。
【請求項１３】
前記第２範囲は、中心値としての前記第１色値と、誤差限界を４で除算したものに等しい偏差と、を有する範囲である請求項１２に記載のエンコーダ。
【請求項１４】
前記ヒストグラムにおける横軸及び縦軸は、それぞれ、色値及び前記色値の画素数を示す請求項１０に記載のエンコーダ。
【請求項１５】
前記第１閾値は、２つの値の最大値であり、
１つの値は、前記コーディング単位の幅に誤差限界を乗算して３２で除算したものに等しく、
もう１つの値は、前記コーディング単位の前記幅を２で除算したものに等しい請求項１０に記載のエンコーダ。
【請求項１６】
前記誤差限界は、量子化ステップのサイズにより決定される請求項１５に記載のエンコーダ。
【請求項１７】
前記第１範囲は、中心値としての前記第１色値と、前記誤差限界を４で除算したものに等しい偏差と、を有する範囲である請求項１５に記載のエンコーダ。
【請求項１８】
前記第２閾値は、前記第１画素数の値を２で除算したものである請求項１０に記載のエンコーダ。
【請求項１９】
プロセッサによる実行のための複数のプログラム命令を保存し、前記プロセッサは、エンコーディング方法を実行する前記プログラム命令を実行し、前記方法は、
コーディング単位内の全画素に対応するヒストグラムを生成し、
前記ヒストグラムに基づいて第１色値を求め、前記ヒストグラムにおける前記第１色値の第１画素数が第１閾値以上であり、
前記ヒストグラムに基づいて前記第１色値の第１範囲内の第２色値を求め、
前記第２色値の第２画素数が第２閾値以上である時、前記ヒストグラムから前記第１色値の１つ以上の画素を削除し、
前記第２画素数が前記第２閾値未満である時、前記第１色値を初期色テーブルに加えることを含む非一時的コンピュータ可読媒体。
【請求項２０】
前記第１色値を前記初期色テーブルに加えるステップは、
前記第１色値の第２範囲内の全画素を前記ヒストグラムから削除することを更に含む請求項１９に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンコーディング方法、その非一時的コンピュータ可読媒体、及びエンコーダに関する。
【背景技術】
【０００２】
現在、より広い帯域幅を有するネットワークは、より多くのデータを搬送することができる。ネットワーク会議、クラウドコンピューティングなどのネットワークを介した流行のアプリケーションは、スクリーンコンテンツの共有及び伝達の台頭によって多くの注目を集めている。従って、ネットワークを介してスクリーンコンテンツを伝達することが重要になっている。スクリーンコンテンツ及びカメラで撮影されたイメージは、異なる特性を有する。スクリーンコンテンツのコーディングは、従来とは異なるコーディングツール及びスキームが必要である。パレットコーディングは、スクリーンコンテンツをコーディングするコーディングツール及びスキームの１つであり、良好な圧縮性能を提供することができる。
【０００３】
スクリーンコンテンツコーディング（ＳＣＣ）のためのテストイメージは、通常、少数の主要色を含む。パレットエンコーディング方法は、この特性を用いて有効にスクリーンコンテンツをエンコードする。図１は、パレットエンコーディング方法を示すフローチャートである。図１を参照し、ステップＳ１０１において、パレットエンコーディング方法は、コーディング単位（ＣＵ）内の主要色を分析する。ＣＵは、画素で構成され、各画素は、自己の色値を有する。ステップＳ１０３において、パレットエンコーディング方法は、パレットテーブルを生成する。ステップＳ１０５において、ＣＵの各画素は、色インデックステーブルにおける対応する色インデックスにより表示される。それから、色インデックスが色インデックスマップを形成する。ステップＳ１０７において、パレットテーブルと色インデックスマップがエンコードされる。
【０００４】
図２は、パレットエンコーディング方法により色インデックスマップを確立する例を示す図である。ＣＵ２０１は、全部で８種類の色を有する６４画素で構成される。パレットテーブルは、ＣＵ内の全種類の色を含まないこともできる。従って、パレットテーブルに含まれる色は、主要色であり、且つパレットテーブルに含まれない色は、特殊色（escape colors）である。例えば、パレットテーブルが６つの主要色Ｃ０，Ｃ１，Ｃ２，Ｃ４，Ｃ５及びＣ６を含む場合、Ｃ３及びＣ７は、特殊色に分類される。通常、少数の画素が特殊色として分類される。パレットテーブルが生成された後、パレットエンコーディング方法は、パレットテーブルに基づいて色インデックスマップ２０２を生成する。色インデックスマップ２０２内の色インデックス値０〜５は、それぞれＣＵ２０１内のＣ０，Ｃ１，Ｃ２，Ｃ４，Ｃ５及びＣ６に対応する。色インデックス値０〜５は、主要色インデックス値と称される。色インデックスマップ２０２内の色インデックス値６は、ＣＵ２０１内の２つの特殊色Ｃ３及びＣ７に対応する。色インデックス値６は、特殊色インデックス値とも称される。最後に、パレットテーブル及び色インデックスマップ２０２がエンコードされ、エンコードされたパレットテーブル及びエンコードされた色インデックスマップは、デコータに伝達される。
【０００５】
パレットテーブルは、量子化ステップのサイズに基づいて類似する色値を有する色を分類する。例えば、色値１〜１００が１０個の異なる色グループ１〜１０，１１〜２０，２１〜３０，…，９１〜１００に分類される。各色グループの平均値は、パレットテーブル内の主要色の１つである。図３は、Ｋ平均法（K-means clustering method）に基づいてパレットテーブルを生成する方法を説明するフローチャートである。図３を参照し、ステップＳ３０１において、全ての初期色グループが空である。ステップＳ３０３において、現在の画素が選択される。ここで、ＣＵ内の全画素がラスタスキャン順（raster scan order）に処理され、即ち、ＣＵ内の全画素が処理されるまで、各行の画素が左から右に処理され、各行を上から下に処理される。それから、下方に説明するように、該方法は、ＣＵ内の全画素を異なる色グループに分類する。ステップＳ３０５において、各色グループに対して、該方法は、現在の画素の色と各色グループの色の平均値との間の色差を計算する。各色グループは、２つのパラメータを有し、１つは、色グループ内の画素数であり、もう１つは、色グループ内の色の平均値であり、画素数及び色の平均値の両方の初期値は、０である。ステップＳ３０７において、該方法は、現在の画素の色と色グループの色の平均値との間の色差の最小値が量子化ステップのサイズに基づく誤差限界以下であるかを判断する。色差の最小値が誤差限界以下である時（ステップＳ３０７、Ｙｅｓ）である時、現在の画素は、色差の最小値を有する色グループに分類され、色グループの画素数に１が加えられ、色グループの色の平均値が再計算される（ステップＳ３０９参照）。全ての色差が誤差限界より大きい時（ステップＳ３０７、Ｎｏ）、現在処理している画素が新しい色グループを形成する（ステップＳ３１１参照）。新しい色グループについて、画素数が１であり、且つ色の平均値が現在の画素の色値である。ＣＵ内の全画素を処理し終えた後、パレットテーブルは、所定のサイズＳに基づき、全色グループ色最大画素数を有するＳ個の色グループを選択する。選択された色グループの色のＳ個の平均値は、パレットテーブル上のＳ個の主要色である。選択されていない色グループ内の画素の色は、特殊色である。
【０００６】
しかしながら、主要色がＫ平均法を用いて生成される時、幾つかの状況が発生し得る。図４Ａ及び図４Ｂは、Ｋ平均法を用いて生成された色グループに起こる幾つかの状況を示す。選択された色グループについて、選択された色グループの平均値は、１つ以上の新しい画素を含むことにより偏差（drift）し得る。このように、選択された色グループの初期色の平均は、選択された色グループの最終色の平均から遠く離れたものになり得る。例えば、図４Ａを参照し、選択された色グループ４１０は、初期に色４１１，色４１２，色４１３及び色４１５を有し、初期の色の平均値は、初期平均色４１４である。３つの色４１６〜４１８が色グループ４１０に加えられ、色グループ４１０の色の平均値が初期平均色４１４から他の平均色４１９に変化し、それから、色の平均値は、平均色４１９から最終平均色４２０に変化する。従って、最終平均色４２０は、初期平均色から遠く離れたものになり且つ選択された色グループ４１０の色の平均値が偏差（drift）し得る。更に、選択された色グループは、複数のサブグループを含むことができ、これらサブグループは、選択された色グループの色の平均値などの主要色により表されることができる。図４Ｂの例では、選択された色グループ４３０は、サブグループ４３１及びサブグループ４３２を含む。サブグループ４３１及びサブグループ４３２は、選択された色グループ４３０の色の平均値により表される(言い換えれば、サブグループ４３１及びサブグループ４３２は、選択された色グループ４３０の平均色４３３により表される)。従って、サブグループ４３１及びサブグループ４３２により表示される色は、平均色４３３であり、２つのサブグループ４３１，４３２のオリジナルの色と異なる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の例示的実施形態は、ネットワークを介してスクリーンコンテンツを有効に伝達することができるエンコーディング方法、その非一時的コンピュータ可読媒体、及びエンコーダを提供する。
【課題を解決するための手段】
【０００８】
本発明の例示的実施形態は、エンコーディング方法に関する。そのエンコーディング方法は、以下を含む。コーディング単位内の全画素に対応するヒストグラムを生成し、ヒストグラムに基づいて第１色値を求め、そのうち、ヒストグラムにおける第１色値の第１画素数は、第１閾値以上であり、ヒストグラムに基づいて第１色値の第１範囲内の第２色値を求め、第２色値の第２画素数が第２閾値以上である時、ヒストグラムから第１色値の１つ以上の画素を削除し、第２画素数が第２閾値未満である時、第１色値を初期色テーブルに加える。
【０００９】
本発明のもう１つの例示的実施形態は、エンコーダに関する。そのエンコーダは、生成モジュール、検索モジュール、処理モジュール及びストレージモジュールを含む。生成モジュールは、コーディング単位内の全画素に対応するヒストグラムを生成する。検索モジュールは、ヒストグラムに基づいて第１色値を求め、そのうち、ヒストグラムのおける第１色値の第１画素数は、第１閾値以上である。検索モジュールは、更に、ヒストグラムに基づいて第１色値の第１範囲内の第２色値を求める。第２画素数が第２閾値未満である時、処理モジュールは、第１色値を初期色テーブルに加える。ストレージモジュールは、コーディング単位、ヒストグラム及び初期色テーブルを保存する。
【００１０】
本発明の更にもう１つの例示的実施形態は、非一時的コンピュータ可読媒体に関する。その非一時的コンピュータ可読媒体は、プロセッサによる実行のためのプログラム命令を保存し、プロセッサは、以下を含むエンコーディング方法を実行するためのプログラム命令を実行する。コーディング単位内の全画素に対応するヒストグラムを生成し、ヒストグラムに基づいて第１色値を求め、そのうち、ヒストグラムにおける第１色値の第１画素数は、第１閾値以上であり、ヒストグラムに基づいて第１色値の第１範囲内の第２色値を求め、第２色値の第２画素数が第２閾値以上である時、ヒストグラムから第１色値の１つ以上画素を削除し、第２画素数が第２閾値未満である時、第１色値を初期色テーブルに加える。
【発明の効果】
【００１１】
例示的実施形態に開示されるエンコーディング方法、及びエンコーダは、スクリーンコンテンツのエンコーディング時間を短縮し、且つスクリーンコンテンツのより高い圧縮率を提供することができ、それにより、ネットワークを介してスクリーンコンテンツを有効に伝達する。
【図面の簡単な説明】
【００１２】
【図１】本発明のパレットエンコーディング方法のフローチャートである。
【図２】パレットエンコーディング方法により色インデックスマップを確立する例を示す図である。
【図３】Ｋ平均法に基づくパレットテーブル生成を説明する方法のフローチャートである。
【図４Ａ】Ｋ平均法を用いて生成された色グループで発生する幾つかの状況を説明する図である。
【図４Ｂ】Ｋ平均法を用いて生成された色グループで発生する幾つかの状況を説明する図である。
【図５】本発明の例示的実施形態に基づくエンコーダのブロック図である。
【図６】本発明の例示的実施形態に基づくエンコーディング方法を説明するフローチャートである。
【図７】本発明の例示的実施形態に基づく初期色テーブルを生成するフローチャートである。
【図８】本発明の例示的実施形態に基づくコーディング単位内の全画素によって生成されたヒストグラムの概略図である。
【図９】本発明の例示的実施形態に基づくヒストグラムを生成するプログラムコードを示す図である。
【図１０Ａ】本発明の例示的実施形態に基づく初期色テーブルを生成するプログラムコードを示す図である。
【図１０Ｂ】本発明の例示的実施形態に基づく初期色テーブルを生成するプログラムコードを示す図である。
【図１１Ａ】本発明の例示的実施形態に基づく画素をグループに分類するプログラムコードを示す図である。
【図１１Ｂ】本発明の例示的実施形態に基づく画素をグループに分類するプログラムコードを示す図である。
【発明を実施するための形態】
【００１３】
当業者によって理解され易くする為に、添付図面を参照すると共に以下に例示的実施形態を詳細に説明する。本発明の概念は、ここに記載する例示的実施形態に限定されるものではなく、様々な形で実施されることができる。明快にする為、公知部分の説明は、省略し、同じ参照符号は、全体を通して同じ要素を示す。
【００１４】
本発明の例示的実施形態は、詳細な説明、及び/又は図面を含めて、ここに記載される１つ以上の新規な特徴を含むことができる。ここで用いられる「少なくとも１つ」、「１つ以上」及び「及び/又は」は、オープンエンド表現であり、操作において、連言及び選言の両方である。例えば、「Ａ、Ｂ、及びＣの少なくとも１つ」、「Ａ、Ｂ、又はＣの少なくとも１つ」、「Ａ、Ｂ及びＣの１つ以上」、「Ａ、Ｂ、又はＣの１つ以上」及び「Ａ、Ｂ、及び/又はＣ」という各表現は、単独のＡ、単独のＢ、単独のＣ、Ａ及びＢ共に、Ａ及びＣ共に、Ｂ及びＣ共に、又はＡ、Ｂ及びＣ共に、を意味する。
【００１５】
なお、用語「a（1個）」又は「an（1つ）」はその実体の1つ以上を指すことに留意すべきである。そのようなものとして、用語「a（1個）」（または「an（1つ）」）は、「1つ以上」および「少なくとも1つ」は、本明細書において互換的に使用することができる。
【００１６】
本発明の例示的実施形態は、色に対するエンコーディング技術に関する。例示的実施形態において、初期色テーブルは、ヒストグラムに基づいて決定される。ヒストグラムは、コーディング単位内の画素数及び画素の色値により生成される。コーディング単位内の複数の画素は、Ｋ平均法によって分類され、複数の画素の複数の色値は、初期色テーブルに存在しない。これは、エンコードされた色をオリジナルの色に実質的に近似させる（substantially approximate）ことができる。
【００１７】
図５は、本発明の例示的実施形態に基づくエンコーダのブロック図である。図５を参照し、エンコーダ５００は、生成モジュール５１０、検索モジュール５２０、処理モジュール５３０及びストレージモジュール５４０を含む。生成モジュール５１０は、入力モジュール（図示せず）から１つのフレームのコーディング単位（ＣＵ）を得る時、生成モジュール５１０は、コーディング単位内の全画素に対応するヒストグラムを生成する。例示的実施形態において、コーディング単位は、アレイ形式で配置される複数の画素を含む。Ｈ．２６５／ＨＥＶＣ標準において、コーディングツリーユニット（ＣＴＵ）は、コーディング単位がエンコードされる時の最大処理ブロックとされ、ＣＴＵのサイズは、通常６４×６４ブロックに設定される。コーディング単位のサイズは、ＣＴＵのブロックサイズ以下である。例えば、コーディング単位は、正方形であり、そのサイズは、６４×６４ブロック、３２×３２ブロック、１６×１６ブロック又は８×８ブロックであることができる。
【００１８】
ヒストグラムが生成モジュール５１０により生成された後、検索モジュール５２０は、ヒストグラムに基づいて第１色値を求め（seek）、そのうち、第１色値の第１画素数は、第１閾値以上である。検索モジュール５２０は、更に、ヒストグラムに基づいて第１色値の第１範囲内の第２色値を求める。第２色値の第２画素数が第２閾値以上である時、処理モジュール５３０は、ヒストグラムから第１色値の１つ以上の画素を削除し、第２画素数が第２閾値未満である時、処理モジュール５３０は、第１色値を初期色テーブルに加える。ストレージモジュール５４０は、ＣＵ、ヒストグラム及び初期色テーブルを保存する。初期色テーブルが生成された後、処理モジュール５３０は、更に、コーディング単位内の複数の画素を分類し、そのうち、複数の画素の複数の色値は、初期色テーブルに存在せず、且つＣＵに対応するパレットテーブル及び色インデックスマップを生成する。エンコーディング方法を以下に詳細に説明する。
【００１９】
本発明の生成モジュール５１０、検索モジュール５２０及び処理モジュール５３０は、ハードウェア回路又はソフトウェアまたはファームウェアプログラムコードにより実現されることができる。例えば、本発明の例示的実施形態において、生成モジュール５１０、検索モジュール５２０及び処理モジュール５３０は、ハードウェア回路による生成回路、検索回路及び処理回路により実現されることができる。本発明のもう１つの例示的実施形態において、生成モジュール５１０、検索モジュール５２０及び処理モジュール５３０は、ソフトウェアプログラム又はファームウェアプログラムにより実現されることができ、ソフトウェア及び/又はファームウェアプログラムは、プロセッサにより実行されることができる。プロセッサは、これに制限するものではないが、ＣＰＵ、マイクロプロセッサ又は組み込みコントローラなどの論理演算機能を有するデバイスであることができる。ストレージモジュール５４０は、これに制限するものではないが、ＲＡＭなどの揮発性メモリ、又はＨＤＤ、ＳＤＤなどの不揮発性メモリであることができる。処理モジュール５３０は、これに制限するものではないが、エンコーディング方法を実行するためのプログラム命令を実行可能なプロセッサであることができる。プログラム命令は、少なくとも１つの不揮発性メモリ及び/又は高度なシステムにおける少なくとも１つのハードディスクなどの少なくとも１つの非一時的コンピュータ可読媒体に保存されることができる。
【００２０】
図６は、本発明の例示的実施形態に基づくエンコーディング方法を説明するフローチャートである。例示的実施形態において、図６中のエンコーディング方法は、エンコーダ５００の処理モジュール５３０に適用される。処理モジュール５３０は、図６中のエンコーディング方法に含まれるステップに対応するプログラム命令を実行することができる。
【００２１】
図６を参照し、ステップＳ６０１において、エンコーダ５００は、コーディング単位内の全画素に対応するヒストグラムを生成する。ヒストグラムにおいて、横軸は、色値を示し、縦軸は、各色値の画素数を示す。ステップＳ６０３において、エンコーダ５００は、ヒストグラムに基づいて初期色テーブルを生成し、ヒストグラム及び初期色テーブルに基づいて１つ以上の初期色グループを得る。エンコーディング方法をエンコーダ５００に適用する実施形態において、エンコーダ５００は、ヒストグラムからより大きな画素数を有する色値を選択することができ、これら選択された色値を用いて初期色テーブルを生成する。更に、エンコーダ５００は、複数の初期色グループを生成し、そのうち、生成される各初期色グループの色の平均値及び画素数は、ヒストグラムから選択される色値及び画素数に対応することができる。ＣＵに対応する初期色テーブルが生成された後、初期色テーブルは、後続のステップにおいて更新されることがない。初期色テーブルを生成する方法を以下に詳細に説明する。
【００２２】
ステップＳ６０５において、エンコーダ５００は、各画素を個別に走査及び処理する。エンコーダ５００にエンコーディング方法を適用する実施形態において、エンコーダ５００は、ラスタスキャン順にＣＵ内の全画素を処理し、即ち、ＣＵ内の全画素が処理されるまで各行の画素を左から右に処理し、各行を上から下に処理し、且つエンコーダ５００は、現在の画素の色値が初期色テーブル内の色値の何れかに等しいかを判断する（ステップＳ６０７参照）。現在の画素の色値が初期色テーブルの色値の１つに等しい時（ステップＳ６０７、Ｙｅｓ）、現在の画素は、初期色グループ内に既に存在し、現在の画素を分類する必要がないことを示す。その場合、ステップＳ６０５は、次の画素の走査及び処理を続行される。現在の画素の色値が初期色テーブル内の全ての色値と異なる時（ステップＳ６０７、Ｎｏ）、現在の画素は、Ｋ平均法を用いて分類される。
【００２３】
ステップＳ６０９において、エンコーダ５００は、現在の画素の色と各初期色テーブルの色の平均値の間の色差を計算する。ここでは、各初期色グループの色の平均値及び画素数は、それぞれ、ヒストグラムから選択される色値及び画素数である。ステップＳ６１１において、エンコーダ５００は、現在の画素の色及び初期色グループの色の平均値の間の色差の最小値が量子化ステップのサイズに基づく誤差限界以下であるかを判断する。色差の最小値が誤差限界以下である時（ステップＳ６１１、Ｙｅｓ）、エンコーダ５００は、現在の画素を色差の最小値を有する初期色グループに分類する（ステップＳ６１３参照）。また、初期色グループの画素数に１が加えられ、且つ初期色グループの色の平均値が再計算される。色差が誤差限界より大きい時（ステップＳ６１１、Ｎｏ）、エンコーダ５００は、現在の画素に対して新しい色グループを形成し、且つ初期色グループに現在の画素を加える（ステップＳ６１５参照）。また、新しい色グループの画素数は、１に等しく、且つ新しい色グループの色の平均値は、現在の画素の色値である。ステップＳ６１３又はＳ６１５を完了した後、エンコーダ５００は、ＣＵ内の最終画素が処理されたかを判断する（ステップＳ６１７参照）。ＣＵ内の最終画素がまだ処理されていない時（ステップＳ６１７、Ｎｏ）、ステップＳ６０５が実行され、次の画素の走査及び処理を継続する。ＣＵ内の最終画素が処理されている時（ステップＳ６１７、Ｙｅｓ）、エンコーダ５００は、ＣＵ内の全画素の処理を完了する（ステップＳ６１９参照）。
【００２４】
初期色テーブルは、一度確立されると、確立後には更新されない。しかしながら、初期色グループの数、各初期色グループの画素数、及び各初期色グループの色の平均値は、画素が初期色グループに加えられるか、新しい色グループが形成される時に変更され得る。
【００２５】
図７は、本発明の例示的実施形態に基づく初期色テーブルを生成するフローチャートである。図８は、本発明の例示的実施形態に基づくコーディング単位内の全画素によって生成されたヒストグラムの概略図である。
【００２６】
図７及び図８を参照し、初期色テーブルの生成をエンコーダ５００に適用する実施形態において、ステップＳ７０１に示されるように、エンコーダ５００は、初期色グループの生成を開始する。ステップＳ７０３において、エンコーダ５００は、エンコーディング単位内の全画素に対応するヒストグラムを生成し、そのうち、横軸は、ヒストグラムにおける色値を示し、縦軸は、ヒストグラムにおける各色値の画素数を示す。
【００２７】
ステップＳ７０５において、エンコーダ５００は、ヒストグラムに基づいて第１画素数Ｐ１を有する第１色値Ｃ１を求め、そのうち、第１画素数Ｐ１は、ヒストグラムにおける他の色値の何れの画素数よりも大きい。
【００２８】
ステップＳ７０７において、エンコーダ５００は、第１画素数Ｐ１が第１閾値Ｔ１以上であるかを判断し、そのうち、第１閾値Ｔ１は、以下の２つの値の最大値であり、１つの値は、ＣＵの幅Ｗに誤差限界Ｅを乗算して３２で除算したものに等しく、もう１つの値は、幅Ｗを２で除算したものに等しく（即ち、Ｔ１＝      ｍａｘ(Ｗ×Ｅ／３２, Ｗ／２)）、そのうち、誤差限界Ｅは、量子化ステップのサイズにより決定される。第１画素数Ｐ１が第１閾値Ｔ１未満である時、エンコーダ５００は、初期色グループを生成する処理を停止する（ステップＳ７０９参照）。
【００２９】
第１画素数Ｐ１が第１閾値Ｔ１以上である時（ステップＳ７０７、Ｙｅｓ）、ステップＳ７１１において、エンコーダ５００は、第１色値Ｃ１の第１範囲Ｅ１内で第２画素数Ｐ２を有する第２色値Ｃ２を求め、そのうち、第２色値Ｃ２は、第１色値Ｃ１の第１範囲Ｅ１内にあり、第２色値Ｃ２は、第１色値Ｃ１を含まない最大画素数を有する色値である。第１範囲Ｅ１は、中心値としての第１色値Ｃ１と、誤差限界Ｅを４で除算したものに等しい偏差Ｄとを有する範囲である（即ち、第１範囲Ｅ１＝(Ｃ１−Ｄ, Ｃ１＋Ｄ), Ｄ＝Ｅ／４）。
【００３０】
ステップＳ７１３において、エンコーダ５００は、第２画素数Ｐ２が第２閾値Ｔ２以上であるかを判断し、そのうち、第２閾値Ｔ２は、第１画素数Ｐ１を２で除算したものに等しい（即ち、Ｔ１＝Ｐ１／２）。第２画素数Ｐ２が第２閾値Ｔ２以上である時（ステップＳ７１３、Ｙｅｓ）、エンコーダ５００は、第１色値Ｃ１をヒストグラムから除去し（ステップＳ７１５）、即ち、第１色値Ｃ１の全画素がヒストグラムから除去されることを指す。それから、継続して最大画素数を有する色値を求めるようにステップＳ７０５が実行される。
【００３１】
第２画素数Ｐ２は、第２閾値Ｔ２未満である時（ステップＳ７１３、Ｎｏ）、エンコーダ５００は、第１色値Ｃ１を初期色グループに加える（ステップＳ７１７）。ステップＳ７１９において、エンコーダ５００は、第１色値Ｃ１を初期色テーブルに加える。それから、エンコーダ５００は、ヒストグラムから第１色値Ｃ１及び第１色値Ｃ１の第２範囲Ｅ２内の全画素を除去する（ステップＳ７２１）。第２範囲Ｅ２は、中心値としての第１色値Ｃ１と、誤差限界Ｅを４で除算したものに等しい偏差Ｄとを有する範囲である（即ち、第１範囲Ｅ１＝(Ｃ１−Ｄ, Ｃ１＋Ｄ), Ｄ＝Ｅ／４）。最後に、継続して最大画素数を有する色値を求めるようにステップＳ７０５が実行される。
【００３２】
第１閾値Ｔ１は、ＣＵの幅Ｗ及び誤差限界Ｅに関連付けられているので、第１閾値Ｔ１は、同じＣＵの処理の間に変更されない。更に、第２閾値Ｔ２は、第１画素数Ｐ１を２で除算したものに等しいので、第１色値Ｃ１の第１画素数Ｐ１が変更される時、第２閾値Ｔ２は、同じＣＵの処理の間に変更される。
【００３３】
図９は、本発明の例示的実施形態に基づいてヒストグラムを生成するプログラムコードを示す。図９の例示的実施形態におけるプログラムコードは、エンコーダ５００により実行される。従って、エンコーダ５００は、ＣＵ内の全画素を走査し、ヒストグラムを生成する。実施形態において、エンコーダ５００は、ＣＵ内の各画素の色値を逐一取得し、各色値をヒストグラムにおける画素の色値と比較する。エンコーダ５００がヒストグラムに対応する色値を検出した時、色値の画素数に１が加えられる。エンコーダ５００によりヒストグラムに対応する色値が検出されなかった時、画素の色値がヒストグラムに加えられ、色値が加えられた画素数は、１に設定される。
【００３４】
図１０Ａ及び図１０Ｂは、本発明の例示的実施形態に基づいて初期色テーブルを生成するプログラムコードを示す。図１０Ａ及び図１０Ｂを参照し、第１閾値Ｔ１及び第２閾値Ｔ２は、それぞれ、プログラムコードにおけるパラメータ「uiLimit」及び「uiHisCnt >> 1」（即ち、uiHisCntが２で除算される）に対応する。第１範囲Ｅ１及び第２範囲Ｅ２は、プログラムコードにおけるパラメータ「iErrorLimit >> 2」（即ち、iErrorLimitが２で除算される）に対応する。第１画素数Ｐ１は、プログラムコードにおけるパラメータ「uiHisCnt」に対応する。初めに、プログラムコードに基づくプロセスは、最大画素数を有する色値を求め、そのうち、最大画素数は、第１画素数Ｐ１であり、且つ対応する色値は、第１色値Ｃ１である。それから、プロセスは、第１画素数Ｐ１が第１閾値Ｔ１以上であるかを判断する。プロセスが、Ｐ１がＴ１以上であると判断する時、プロセスは、更に、第１色値Ｃ１の第１範囲Ｅ１内の第２画素数Ｐ２を有する第２色値Ｃ２を求め、そのうち、第２画素数Ｐ２は、第２閾値Ｔ２以上である。第２色値Ｃ２が検出された時、プログラムコードにおいて、パラメータ「bOtherPeakExist」 (パラメータ「bOtherPeakExist」は、色値の２番目に大きな画素数が検出されたか否かを示す) が「true」に設定される。また、第１色値Ｃ１は、ヒストグラムから削除される。第２色値Ｃ２が検出されない時、プログラムコードにおいて、パラメータ「bOtherPeakExist」は、デフォルト値「false」と同じである。また、第１色値Ｃ１が初期色グループ及び初期色テーブルにコピーされ、第１色値Ｃ１の第２範囲Ｅ２内の全画素がヒストグラムから除去される。更に、プロセスが開始時に第１閾値Ｔ１未満の第１画素数Ｐ１を検出する場合、プロセスは、ヒストグラムの検索を停止する。
【００３５】
図１１Ａ及び図１１Ｂは、本発明の例示的実施形態に基づいて画素をグループに分類するプログラムコードを示す。
【００３６】
図１１Ａ及び図１１Ｂを参照し、プログラムコードに基づくプロセスは、現在の画素の色値を初期色テーブルにおける全ての色値と比較する。現在の画素の色値が初期色テーブル内に既に存在する時、プロセスは、現在の画素を分類しない。現在の画素の色値が初期色テーブルに存在しない時、プロセスは、現在の画素を、Ｋ平均法を用いて分類する。Ｋ平均法は、現在の画素の色と初期色グループの色の平均値との間の色差を計算し、現在の画素の色と初期色グループの色の平均値との間の色差の最小値が量子化ステップのサイズに基づいた誤差限界以下であるかを判断する。色差の最小値が誤差限界以下である時、プロセスは、現在の画素を色差の最小値を有する初期色グループに分類する。また、初期色グループの画素数に１が加えられ、初期色グループの色の平均値が再計算される。色差が誤差限界より大きい時、新しい色グループが現在の画素を用いて形成され、且つ初期色グループに加えられる。また、新しい色グループの画素数は、１に等しく、且つ新しい色グループの色の平均値は、現在の画素の色値である。
【００３７】
【表１】
2016140063.tif 000003
【００３８】
表１は、３つの異なる試験条件下で、本発明の例示的実施形態に基づくエンコーディング方法を従来のＪＣＴ−ＶＴ法と比較している。表１において、負の値は、改善されたコーディング性能を意味する。負の値については、絶対値が大きいほど、より良好なコーディング性能を意味する。本発明の方法は、より良好なコーディング性能を提供する。表１を参照し、3つの異なる試験条件下で、本発明のエンコーディング方法に基づくエンコーディング時間は、従来のＪＣＴ−ＶＴ法のエンコーディング時間よりもそれぞれ２％、３％及び１％速くなっている。3つの異なる試験条件下で、本発明のデコーディング時間は、従来のＪＣＴ−ＶＴ法のエンコーディング時間よりもそれぞれ２％速く、１％遅く、１％遅くなっている。従って、本発明のエンコーディング方法に基づくエンコーディングは、従来のＪＣＴ−ＶＴ法に比較し、同様のエンコーディング時間を有する条件下で１％〜３％を節減することができ、エンコードされた色がオリジナルの色に実質的に近似する。エンコーディング時間は、通常、約数時間を要し、従って、本発明の実施形態に基づくエンコーディング時間が１％〜３％減少されることで、約1時間を節減することができる。デコーディング時間は、通常、約数秒間を要し、且つコンピュータの計算能力により影響を受け易い。従って、デコーディング時間の１％の増加は、依然として誤差の範囲内である。
【００３９】
本発明の例示的実施形態に基づく方法は、コンピュータ可読媒体を用いることによって実現されることができ、該コンピュータ可読媒体は、コンピュータシステムが可読なデータを保存する任意の種類の記録デバイス、例えば、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピーディスク、搬送波（例えば、インターネットによる伝送）に具現される１つ以上のデータ信号を含む光学ストレージデバイス等であることができる。
【００４０】
要約すれば、本発明の例示的実施形態に基づくエンコーディング方法及びエンコーダは、コーディング単位に対応するヒストグラムを生成し、ヒストグラムを用いることによって多くの画素数を有する色値を求め、初期色値に加える。ＣＵにおける画素の色値が初期色テーブルに既に存在する時、その画素は、分類されない。ＣＵ内の画素の色値が初期色テーブルに存在しない時、Ｋ平均法を用いて分類される。エンコーディング方法及びエンコーダに基づき、画素の分類された色値は、オリジナルの色に実質的に近似する。本発明のエンコーディング方法又はエンコーダのエンコーディング時間は、公知の方法よりも更に短く、本発明のエンコーディング方法又はエンコーダのエンコーディングは、公知の方法のエンコーディングよりも更に高い圧縮比を有する。
【００４１】
以上のごとく、本発明を実施形態により開示したが、もとより、本発明を限定するためのものではなく、当業者であれば容易に理解できるように、本発明の技術思想の範囲内において、適当な変更ならびに修正が当然なされうるものである色、その特許権保護の範囲は、特許請求の範囲および、それと均等な領域を基準として定めなければならない。
【産業上の利用可能性】
【００４２】
上記説明に基づき、スクリーンコンテンツを共有する時、スクリーンコンテンツの良好な圧縮性能が提供されることができ、スクリーンコンテンツは、ネットワークを介して有効に伝達されることができる。従って、エンコーディング方法、その非一時的コンピュータ可読媒体及びエンコーダは、リハビリテーションの分野において、非常に有効である。
【符号の説明】
【００４３】
Ｓ１０１，Ｓ１０３，Ｓ１０５，Ｓ１０７    パレットエンコーディング方法のステップ
２０１    コーディング単位
２０２    色インデックスマップ
Ｓ３０１，Ｓ３０３，Ｓ３０５，Ｓ３０７，Ｓ３０９，Ｓ３１１    Ｋ平均法に基づくパレットテーブル生成のステップ
４１０，４３０    色グループ
４１１〜４１３，４１５〜４１８    色
４１４，４１９，４２０，４３３    平均色
４３１，４３２    サブグループ
５００    エンコーダ
５１０    生成モジュール
５２０    検索モジュール
５３０    処理モジュール
５４０    ストレージモジュール
Ｓ６０１，Ｓ６０３，Ｓ６０５，Ｓ６０７，Ｓ６０９，Ｓ６１１，Ｓ６１３，Ｓ６１５，Ｓ６１７，Ｓ６１９    エンコーディング方法のステップ
Ｓ７０１，Ｓ７０３，Ｓ７０５，Ｓ７０７，Ｓ７０９，Ｓ７１１，Ｓ７１３，Ｓ７１５，Ｓ７１７，Ｓ７１９，Ｓ７２１    初期色テーブルを生成するステップ
Ｃ１    第１色値
Ｃ２    第２色値
Ｐ１    第１画素数
Ｐ２    第２画素数
Ｔ１    第１閾値
Ｔ２    第２閾値
Ｅ１    第１範囲
Ｅ２    第２範囲
【図１】
2016140063.tif 000004
【図２】
2016140063.tif 000005
【図３】
2016140063.tif 000006
【図４Ａ】
2016140063.tif 000007
【図４Ｂ】
2016140063.tif 000008
【図５】
2016140063.tif 000009
【図６】
2016140063.tif 000010
【図７】
2016140063.tif 000011
【図８】
2016140063.tif 000012
【図９】
2016140063.tif 000013
【図１０Ａ】
2016140063.tif 000014
【図１０Ｂ】
2016140063.tif 000015
【図１１Ａ】
2016140063.tif 000016
【図１１Ｂ】
2016140063.tif 000017
【外国語明細書】
2016140063000001.pdf