IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 芯原微電子(上海)股▲ふん▼有限公司の特許一覧 ▶ 芯原微電子(成都)有限公司の特許一覧

特表2024-536660自己適応テーブル作成方法、装置、電子機器および記憶媒体
<>
  • 特表-自己適応テーブル作成方法、装置、電子機器および記憶媒体 図1
  • 特表-自己適応テーブル作成方法、装置、電子機器および記憶媒体 図2
  • 特表-自己適応テーブル作成方法、装置、電子機器および記憶媒体 図3
  • 特表-自己適応テーブル作成方法、装置、電子機器および記憶媒体 図4
  • 特表-自己適応テーブル作成方法、装置、電子機器および記憶媒体 図5
  • 特表-自己適応テーブル作成方法、装置、電子機器および記憶媒体 図6
  • 特表-自己適応テーブル作成方法、装置、電子機器および記憶媒体 図7
  • 特表-自己適応テーブル作成方法、装置、電子機器および記憶媒体 図8
  • 特表-自己適応テーブル作成方法、装置、電子機器および記憶媒体 図9
  • 特表-自己適応テーブル作成方法、装置、電子機器および記憶媒体 図10
  • 特表-自己適応テーブル作成方法、装置、電子機器および記憶媒体 図11
  • 特表-自己適応テーブル作成方法、装置、電子機器および記憶媒体 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-08
(54)【発明の名称】自己適応テーブル作成方法、装置、電子機器および記憶媒体
(51)【国際特許分類】
   G06T 5/90 20240101AFI20241001BHJP
   H04N 5/202 20230101ALI20241001BHJP
【FI】
G06T5/90
H04N5/202
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023550080
(86)(22)【出願日】2022-08-31
(85)【翻訳文提出日】2023-08-18
(86)【国際出願番号】 CN2022116254
(87)【国際公開番号】W WO2024045060
(87)【国際公開日】2024-03-07
(81)【指定国・地域】
(71)【出願人】
【識別番号】519371507
【氏名又は名称】芯原微電子(上海)股▲ふん▼有限公司
(71)【出願人】
【識別番号】521431804
【氏名又は名称】芯原微電子(成都)有限公司
(74)【代理人】
【識別番号】110002103
【氏名又は名称】弁理士法人にじいろ特許事務所
(72)【発明者】
【氏名】羅坤▲しん▼
(72)【発明者】
【氏名】李松
【テーマコード(参考)】
5B057
【Fターム(参考)】
5B057CA01
5B057CA08
5B057CA16
5B057CB01
5B057CB08
5B057CB16
5B057CE16
5B057DA17
5B057DB06
5B057DC17
(57)【要約】
本出願は、自己適応テーブル作成方法、装置、電子機器および記憶媒体を提供する。該方法は、専用機能ユニットに配置されてタスク処理を実行する目標離散関数を取得するステップと、目標離散関数対して処理を実行し、目標離散関数の一次導関数を得るステップと、一次導関数および所定セグメント分割数に基づいて、目標離散関数の分割点の座標を確定するステップと、目標離散関数の分割点の座標に基づいてLUTを作成するステップと、を含む。該方式によれば、自動的に目標離散関数に基づいてLUTを生成することができ、これによって、効率を高めることができ、そして、目標離散関数の一次導関数に基づいて目標離散関数の分割点を確定することにより、LUTの精度を高めることができる。
【選択図】図2


【特許請求の範囲】
【請求項1】
専用機能ユニットに配置されてタスク処理を実行する目標離散関数を取得するステップと、
前記目標離散関数に対して処理を実行し、前記目標離散関数の一次導関数を得るステップと、
前記一次導関数および所定セグメント分割数に基づいて、前記目標離散関数の分割点の座標を確定するステップと、
前記目標離散関数の分割点の座標に基づいてLUTを作成するステップと、を含む
ことを特徴とする自己適応テーブル作成方法。
【請求項2】
前記一次導関数および所定セグメント分割数に基づいて、前記目標離散関数の分割点の座標を確定するステップは、
前記所定セグメント分割数に基づいて前記一次導関数のy軸に対して均等分割を行うステップと、
前記一次導関数の分割点の座標に基づいて、前記目標離散関数の分割点の座標を確定するステップと、を含み、
前記一次導関数の分割点の座標が前記目標離散関数の分割点の座標であり、前記一次導関数の分割点の座標が、前記所定セグメント分割数に基づいて前記一次導関数の逆関数のx軸に対して均等分割を行うことにより得たものである
ことを特徴とする請求項1に記載の自己適応テーブル作成方法。
【請求項3】
前記目標離散関数は離散化のN個のデータポイントを含み、
前記一次導関数の分割点の座標に基づいて、前記目標離散関数の分割点の座標を確定するステップは、
前記一次導関数の分割点を前記一次導関数のデータポイントに移動させ、前記一次導関数の目標分割点を得るステップを含み、
前記一次導関数の目標分割点の順序と前記一次導関数の分割点の順序とが同じであり、前記一次導関数の目標分割点の座標が前記目標離散関数の分割点の座標である
ことを特徴とする請求項2に記載の自己適応テーブル作成方法。
【請求項4】
前記一次導関数の分割点を前記一次導関数のデータポイントに移動させ、前記一次導関数の目標分割点を得るステップは、
前記一次導関数の分割点が前記データポイントに合致するか否かを判断するステップと、
Yesとなる場合、前記一次導関数の分割点を前記一次導関数の目標分割点として確定するステップと、
Noとなる場合、前記一次導関数の分割点を前記一次導関数のデータポイントに移動させ、前記一次導関数の目標分割点を得るステップと、を含む
ことを特徴とする請求項3に記載の自己適応テーブル作成方法。
【請求項5】
前記一次導関数の分割点を前記一次導関数のデータポイントに移動させ、前記一次導関数の目標分割点を得るステップの後、
該目標分割点の右側の一次導関数のy軸に対して均等分割を行い、新しい分割点を形成し、前記新しい分割点を前記一次導関数の分割点とするステップをさらに含み、
均等分割のセグメント数は、所定セグメント分割数からmを引いたものであり、mが分割回数から1を引いたものである
ことを特徴とする請求項4に記載の自己適応テーブル作成方法。
【請求項6】
前記一次導関数および所定セグメント分割数に基づいて、前記目標離散関数の分割点の座標を確定するステップは、
前記一次導関数および前記所定セグメント分割数に基づいて、前記一次導関数の初期分割点の座標を確定するステップと、
前記一次導関数における隣接する2つの初期分割点の座標の差が2を満たすか否かを判断するステップと、
満たさない場合、新しい分割点を追加したあとに任意の隣接する2つの分割点の座標の差が2を満たすように、前記隣接する2つの初期分割点の間に新しい分割点を追加するステップと、
前記目標離散関数の分割点の座標を確定するステップと、を含み、
前記目標離散関数の分割点は、前記一次導関数の初期分割点と、前記一次導関数における新しい分割点とを含む
ことを特徴とする請求項1に記載の自己適応テーブル作成方法。
【請求項7】
前記目標離散関数の分割点の座標を確定するステップの後、
前記分割点に基づいて補間計算を実行して得た結果により前記目標離散関数の最大誤差に対応するx軸座標を確定するステップと、
前記最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加し、前記サンプリング点が、該セグメントの間隔を2で割ることに使用され、前記セグメントの端点は、隣接する2つの分割点であり、前記セグメントの間隔は、該セグメントにおける隣接する2つのサンプリング点間の距離を表し、最初のとき、前記セグメントの間隔が、前記セグメントの2つの分割点間の距離を表す、ステップと、
前記分割点おび前記サンプリング点に基づいて補間計算を実行して得た結果により前記目標離散関数の最大誤差に対応するx軸座標を確定するステップと、
前記最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加し、前記サンプリング点が、該セグメントの間隔を2で割ることに使用される、ステップと、
をさらに含む
ことを特徴とする請求項6に記載の自己適応テーブル作成方法。
【請求項8】
前記サンプリング点の個数が所定個数に達したか否かを判断するステップと、
Noとなる場合、前記分割点おび前記サンプリング点に基づいて補間計算を実行して得た結果により前記目標離散関数の最大誤差に対応するx軸座標を確定するステップと、
前記最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加し、前記サンプリング点が、該セグメントの間隔を2で割ることに使用される、ステップと
をさらに含む
ことを特徴とする請求項7に記載の自己適応テーブル作成方法。
【請求項9】
前記目標離散関数の分割点の座標に基づいてLUTを作成するステップは、
前記目標離散関数の分割点の座標および各前記セグメントの間隔に基づいて前記LUTを作成するステップを含む
ことを特徴とする請求項7に記載の自己適応テーブル作成方法。
【請求項10】
前記目標離散関数の分割点の座標および各前記セグメントの間隔に基づいて前記LUTを作成するステップは、
隣接する2つのセグメントの間隔が等しいか否かを判断するステップと、
等しい場合、前記隣接する2つのセグメントの間の分割点を削除するステップと、
前記目標離散関数の残りの分割点の座標および残りの各セグメントの間隔に基づいて前記LUTを作成するステップと、を含む
ことを特徴とする請求項9に記載の自己適応テーブル作成方法。
【請求項11】
専用機能ユニットに配置されてタスク処理を実行する目標離散関数を取得するように構成される取得モジュールと、
前記目標離散関数に対して処理を実行し、前記目標離散関数の一次導関数を得るように構成される処理モジュールと、
前記一次導関数および所定セグメント分割数に基づいて、前記目標離散関数の分割点の座標を確定するように構成される確定モジュールと、
前記目標離散関数の分割点の座標に基づいてLUTを作成するように構成される作成モジュールと、を備える
ことを特徴とする自己適応テーブル作成装置。
【請求項12】
前記確定モジュールは、前記所定セグメント分割数に基づいて前記一次導関数のy軸に対して均等分割を行い、前記一次導関数の分割点の座標に基づいて、前記目標離散関数の分割点の座標を確定するように構成され、
前記一次導関数の分割点の座標が前記目標離散関数の分割点の座標であり、前記一次導関数の分割点の座標が、前記所定セグメント分割数に基づいて前記一次導関数の逆関数のx軸に対して均等分割を行うことにより得たものである
ことを特徴とする請求項11に記載の自己適応テーブル作成装置。
【請求項13】
前記目標離散関数は離散化のN個のデータポイントを含み、
前記確定モジュールは、さらに、前記一次導関数の分割点を前記一次導関数のデータポイントに移動させ、前記一次導関数の目標分割点を得るように構成され、
前記一次導関数の目標分割点の順序と前記一次導関数の分割点の順序とが同じであり、前記一次導関数の目標分割点の座標が前記目標離散関数の分割点の座標である
ことを特徴とする請求項12に記載の自己適応テーブル作成装置。
【請求項14】
前記確定モジュールは、さらに、前記一次導関数の分割点が前記データポイントに合致するか否を判断し、Yesとなる場合、前記一次導関数の分割点を前記一次導関数の目標分割点として確定し、Noとなる場合、前記一次導関数の分割点を前記一次導関数のデータポイントに移動させ、前記一次導関数の目標分割点を得るように構成される
ことを特徴とする請求項13に記載の自己適応テーブル作成装置。
【請求項15】
前記確定モジュールは、さらに、前記一次導関数の分割点を前記一次導関数のデータポイントに移動させ、前記一次導関数の目標分割点を得たあと、該目標分割点の右側の一次導関数のy軸に対して均等分割を行い、新しい分割点を形成し、前記新しい分割点を前記一次導関数の分割点とするように構成され、
均等分割のセグメント数は、所定セグメント分割数からmを引いたものであり、mが分割回数から1を引いたものである
ことを特徴とする請求項14に記載の自己適応テーブル作成装置。
【請求項16】
前記確定モジュールは、さらに、前記一次導関数および前記所定セグメント分割数に基づいて、前記一次導関数の初期分割点の座標を確定し、前記一次導関数における隣接する2つの初期分割点の座標の差が2を満たすか否かを判断し、満たさない場合、新しい分割点を追加したあとに任意の隣接する2つの分割点の座標の差が2を満たすように、前記隣接する2つの初期分割点の間に新しい分割点を追加し、前記目標離散関数の分割点の座標を確定するように構成され、
前記目標離散関数の分割点は、前記一次導関数の初期分割点と、前記一次導関数における新しい分割点とを含む
ことを特徴とする請求項11に記載の自己適応テーブル作成装置。
【請求項17】
サンプリング点追加モジュールをさらに備え、
前記サンプリング点追加モジュールは、
前記目標離散関数の分割点の座標を確定したあと、前記分割点に基づいて補間計算を実行して得た結果により前記目標離散関数の最大誤差に対応するx軸座標を確定し、
前記最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加し、前記サンプリング点が、該セグメントの間隔を2で割ることに使用され、前記セグメントの端点が、隣接する2つの分割点であり、前記セグメントの間隔が、該セグメントにおける隣接する2つのサンプリング点間の距離を表し、最初のとき、前記セグメントの間隔が、前記セグメントの2つの分割点間の距離を表し、
前記分割点おび前記サンプリング点に基づいて補間計算を実行して得た結果により前記目標離散関数の最大誤差に対応するx軸座標を確定し、
前記最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加し、前記サンプリング点が、該セグメントの間隔を2で割ることに使用される、
ように構成される
ことを特徴とする請求項16に記載の自己適応テーブル作成装置。
【請求項18】
前記サンプリング点追加モジュールは、さらに、前記サンプリング点の個数が所定個数に達したか否かを判断し、Noとなる場合、前記分割点おび前記サンプリング点に基づいて補間計算を実行して得た結果により前記目標離散関数の最大誤差に対応するx軸座標を確定し、前記最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加するように構成され、
前記サンプリング点が、該セグメントの間隔を2で割ることに使用される
ことを特徴とする請求項17に記載の自己適応テーブル作成装置。
【請求項19】
前記作成モジュールは、さらに、前記目標離散関数の分割点の座標および各前記セグメントの間隔に基づいて前記LUTを作成するように構成される
ことを特徴とする請求項17に記載の自己適応テーブル作成装置。
【請求項20】
前記作成モジュールは、さらに、隣接する2つのセグメントの間隔が等しいか否かを判断し、等しい場合、前記隣接する2つのセグメントの間の分割点を削除し、前記目標離散関数の残りの分割点の座標および残りの各セグメントの間隔に基づいて前記LUTを作成するように構成される
ことを特徴とする請求項19に記載の自己適応テーブル作成装置。
【請求項21】
プロセッサとメモリとを備え、前記プロセッサと前記メモリとが接続されており、
前記メモリは、プログラムを記憶するように構成され、
前記プロセッサは、前記メモリに記憶されているプログラムを実行して、請求項1~10のいずれか1項に記載の自己適応テーブル作成方法を実行するように構成される
ことを特徴とする電子機器。
【請求項22】
コンピュータプログラムが記憶されており、前記コンピュータプログラムがコンピュータにより実行されると、請求項1~10のいずれか1項に記載の自己適応テーブル作成方法が実行される
ことを特徴とするコンピュータ読み取り可能な記録媒体。


【発明の詳細な説明】
【技術分野】
【0001】
本出願は、チップ設計の技術分野に属し、具体的に、自己適応テーブル作成方法、装置、電子機器および記憶媒体に関する。
【背景技術】
【0002】
画像処理チップのHDR(High Dynamic Range Imaging、ハイダイナミックレンジ)モジュールにおいて、変換曲線を用いて画像の画像値を調整し、例えば、光電伝達関数(OETF、Opitical-Electro Transfer Function)および電光伝達関数(EOTF、Electro-Optical Transfer Function)曲線に基づいて画像の画像値を調整する。しかしながら、画像処理チップにおいて、一般的にLUT(Look Up Table、ルックアップテーブル)を用いて曲線上の任意の点に対して補間計算を行う。
【0003】
少量のレジスタ資源を利用してLUTを定義するとともに、ルックアップテーブルアルゴリズムの時間計算量を削減するため、Count、Steps、Pointsの3つのパラメータを用いてLUTの分布を定義する。Countが該曲線のセグメント分割数を表し、Stepsが各セグメントにおけるサンプリング点の間隔を表し、Pointsが異なるセグメントの分割点のx軸座標を表す。
【0004】
現在、LUTの作成には、一般的に、人で曲線を観測してサンプリング点を手動で設定し、そして作成できたLUTを専用機能ユニット(例えば、上記の画像処理チップ)に配置する方式を採用している。この方式は、効率が低く、人による観測により生成したLUTの精度が低い。
【発明の概要】
【0005】
本出願の実施例は、LUTの作成効率および精度を高めることができる、自己適応テーブル作成方法、装置、電子機器および記憶媒体を提供することを目的とする。
【0006】
本出願は、下記のように実現される。
【0007】
第1局面において、本出願の実施例は、自己適応テーブル作成方法を提供する。前記方法は、専用機能ユニットに配置されてタスク処理を実行する目標離散関数を取得するステップと、前記目標離散関数に対して処理を実行し、前記目標離散関数の一次導関数を得るステップと、前記一次導関数および所定セグメント分割数に基づいて、前記目標離散関数の分割点の座標を確定するステップと、前記目標離散関数の分割点の座標に基づいてLUTを作成するステップと、を含む。
【0008】
本出願の実施例において、目標離散関数を処理することにより、目標離散関数の一次導関数を得、そして一次導関数および所定セグメント分割数に基づいて、目標離散関数の分割点の座標を確定し、最後、目標離散関数の分割点の座標に基づいてLUTを作成する。該方式によれば、自動的に目標離散関数に基づいてLUTを生成することができ、これによって、効率を高めることができ、そして、目標離散関数の一次導関数に基づいて目標離散関数の分割点を確定することにより、LUTの精度を高めることができる。
【0009】
上記の第1局面による技術案において、いくつかの実施可能な形態として、前記一次導関数および所定セグメント分割数に基づいて、前記目標離散関数の分割点の座標を確定するステップは、前記所定セグメント分割数に基づいて前記一次導関数のy軸に対して均等分割を行うステップと、前記一次導関数の分割点の座標に基づいて、前記目標離散関数の分割点の座標を確定するステップと、を含み、前記一次導関数の分割点の座標が前記目標離散関数の分割点の座標であり、前記一次導関数の分割点の座標が、前記所定セグメント分割数に基づいて前記一次導関数の逆関数のx軸に対して均等分割を行うことにより得たものである。
【0010】
本出願の実施例において、計算により一次導関数の逆関数を得ることにより、y軸において均等分割を行う各点の座標を正確かつ容易に得、そしてマッピングによりx軸における分割点を得る。
【0011】
上記の第1局面による技術案において、いくつかの実施可能な形態として、前記目標離散関数は離散化のN個のデータポイントを含み、前記一次導関数の分割点の座標に基づいて、前記目標離散関数の分割点の座標を確定するステップは、前記一次導関数の分割点を前記一次導関数のデータポイントに移動させ、前記一次導関数の目標分割点を得るステップを含み、前記一次導関数の目標分割点の順序と前記一次導関数の分割点の順序とが同じであり、前記一次導関数の目標分割点の座標が前記目標離散関数の分割点の座標である。
【0012】
本出願の実施例において、一次導関数の分割点を一次導関数のデータポイントに移動させ、一次導関数の目標分割点の座標を得ることにより、後の計算を減らし、効率を高めることができる。
【0013】
上記の第1局面による技術案において、いくつかの実施可能な形態として、前記一次導関数の分割点を順次に前記一次導関数のデータポイントに移動させ、前記一次導関数の目標分割点を得るステップは、前記一次導関数の分割点が前記データポイントに合致するか否かを判断するステップと、Yesとなる場合、前記一次導関数の分割点を前記一次導関数の目標分割点として確定するステップと、Noとなる場合、前記一次導関数の分割点を前記一次導関数のデータポイントに移動させ、前記一次導関数の目標分割点を得るステップと、を含む。
【0014】
上記の第1局面による技術案において、いくつかの実施可能な形態として、前記一次導関数の分割点を前記一次導関数のデータポイントに移動させ、前記一次導関数の目標分割点を得るステップの後、前記方法は、該目標分割点の右側の一次導関数のy軸に対して均等分割を行い、新しい分割点を形成し、前記新しい分割点を前記一次導関数の分割点とするステップをさらに含み、均等分割のセグメント数は、所定セグメント分割数からmを引いたものであり、mが分割回数から1を引いたものである。
【0015】
上記の第1局面による技術案において、いくつかの実施可能な形態として、前記一次導関数および所定セグメント分割数に基づいて、前記目標離散関数の分割点の座標を確定するステップは、前記一次導関数および前記所定セグメント分割数に基づいて、前記一次導関数の初期分割点の座標を確定するステップと、前記一次導関数における隣接する2つの初期分割点の座標の差が2を満たすか否かを判断するステップと、満たさない場合、新しい分割点を追加したあとに任意の隣接する2つの分割点の座標の差が2を満たすように、前記隣接する2つの初期分割点の間に新しい分割点を追加するステップと、前記目標離散関数の分割点の座標を確定するステップと、を含み、前記目標離散関数の分割点は、前記一次導関数の初期分割点と、前記一次導関数における新しい分割点とを含む。
【0016】
本出願の実施例において、上記の方式で、任意の隣接する2つの分割点の座標の差が2を満たすように分割点を調整することにより、後で補間計算を実行するときの除算を避けることができる。
【0017】
上記の第1局面による技術案において、いくつかの実施可能な形態として、前記目標離散関数の分割点の座標を確定するステップの後、前記方法は、前記分割点に基づいて補間計算を実行して得た結果により前記目標離散関数の最大誤差に対応するx軸座標を確定するステップと、前記最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加し、前記サンプリング点が、該セグメントの間隔を2で割ることに使用され、前記セグメントの端点は、隣接する2つの分割点であり、前記セグメントの間隔は、該セグメントにおける隣接する2つのサンプリング点間の距離を表し、最初のとき、前記セグメントの間隔が、前記セグメントの2つの分割点間の距離を表す、ステップと、前記分割点おび前記サンプリング点に基づいて補間計算を実行して得た結果により前記目標離散関数の最大誤差に対応するx軸座標を確定するステップと、前記最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加し、前記サンプリング点が、該セグメントの間隔を2で割ることに使用される、ステップと、をさらに含む。
【0018】
本出願の実施例において、サンプリング点を追加する上記方式によれば、分割点を追加せずに、後で生成するLUTの精度を高めることができる。
【0019】
上記の第1局面による技術案において、いくつかの実施可能な形態として、前記方法は、前記サンプリング点の個数が所定個数に達したか否かを判断するステップと、Noとなる場合、前記分割点おび前記サンプリング点に基づいて補間計算を実行して得た結果により前記目標離散関数の最大誤差に対応するx軸座標を確定するステップと、前記最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加し、前記サンプリング点が、該セグメントの間隔を2で割ることに使用される、ステップと、をさらに含む。
【0020】
上記の第1局面による技術案において、いくつかの実施可能な形態として、前記目標離散関数の分割点の座標に基づいてLUTを作成するステップは、前記目標離散関数の分割点の座標および各前記セグメントの間隔に基づいて前記LUTを作成するステップを含む。
【0021】
上記の第1局面による技術案において、いくつかの実施可能な形態として、前記目標離散関数の分割点の座標および各前記セグメントの間隔に基づいて前記LUTを作成するステップは、隣接する2つのセグメントの間隔が等しいか否かを判断するステップと、等しい場合、前記隣接する2つのセグメントの間の分割点を削除するステップと、前記目標離散関数の残りの分割点の座標および残りの各セグメントの間隔に基づいて前記LUTを作成するステップと、を含む。
【0022】
本出願の実施例において、間隔の等しい隣接する2つのセグメントの間の分割点を削除することにより、レジスタ資源を節約することができる。
【0023】
第2局面において、本出願の実施例は、自己適応テーブル作成装置を提供する。前記装置は、専用機能ユニットに配置されてタスク処理を実行する目標離散関数を取得するように構成される取得モジュールと、前記目標離散関数に対して処理を実行し、前記目標離散関数の一次導関数を得るように構成される処理モジュールと、前記一次導関数および所定セグメント分割数に基づいて、前記目標離散関数の分割点の座標を確定するように構成される確定モジュールと、前記目標離散関数の分割点の座標に基づいてLUTを作成するように構成される作成モジュールと、を備える。
【0024】
上記の第2局面による技術案において、いくつかの実施可能な形態として、前記確定モジュールは、前記所定セグメント分割数に基づいて前記一次導関数のy軸に対して均等分割を行い、前記一次導関数の分割点の座標に基づいて、前記目標離散関数の分割点の座標を確定するように構成され、前記一次導関数の分割点の座標が前記目標離散関数の分割点の座標であり、前記一次導関数の分割点の座標が、前記所定セグメント分割数に基づいて前記一次導関数の逆関数のx軸に対して均等分割を行うことにより得たものである。
【0025】
上記の第2局面による技術案において、いくつかの実施可能な形態として、前記目標離散関数は離散化のN個のデータポイントを含み、前記確定モジュールは、さらに、前記一次導関数の分割点を前記一次導関数のデータポイントに移動させ、前記一次導関数の目標分割点を得るように構成され、前記一次導関数の目標分割点の順序と前記一次導関数の分割点の順序とが同じであり、前記一次導関数の目標分割点の座標が前記目標離散関数の分割点の座標である。
【0026】
上記の第2局面による技術案において、いくつかの実施可能な形態として、前記確定モジュールは、さらに、前記一次導関数の分割点が前記データポイントに合致するか否を判断し、Yesとなる場合、前記一次導関数の分割点を前記一次導関数の目標分割点として確定し、Noとなる場合、前記一次導関数の分割点を前記一次導関数のデータポイントに移動させ、前記一次導関数の目標分割点を得るように構成される。
【0027】
上記の第2局面による技術案において、いくつかの実施可能な形態として、前記確定モジュールは、さらに、前記一次導関数の分割点を前記一次導関数のデータポイントに移動させ、前記一次導関数の目標分割点を得たあと、該目標分割点の右側の一次導関数のy軸に対して均等分割を行い、新しい分割点を形成し、前記新しい分割点を前記一次導関数の分割点とするように構成され、均等分割のセグメント数は、所定セグメント分割数からmを引いたものであり、mが分割回数から1を引いたものである。
【0028】
上記の第2局面による技術案において、いくつかの実施可能な形態として、前記確定モジュールは、さらに、前記一次導関数および前記所定セグメント分割数に基づいて、前記一次導関数の初期分割点の座標を確定し、前記一次導関数における隣接する2つの初期分割点の座標の差が2を満たすか否かを判断し、満たさない場合、新しい分割点を追加したあとに任意の隣接する2つの分割点の座標の差が2を満たすように、前記隣接する2つの初期分割点の間に新しい分割点を追加し、前記目標離散関数の分割点の座標を確定するように構成され、前記目標離散関数の分割点は、前記一次導関数の初期分割点と、前記一次導関数における新しい分割点とを含む。
【0029】
上記の第2局面による技術案において、いくつかの実施可能な形態として、前記装置は、サンプリング点追加モジュールをさらに備え、前記サンプリング点追加モジュールは、前記目標離散関数の分割点の座標を確定したあと、前記分割点に基づいて補間計算を実行して得た結果により前記目標離散関数の最大誤差に対応するx軸座標を確定し、前記最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加し、前記サンプリング点が、該セグメントの間隔を2で割ることに使用され、前記セグメントの端点が、隣接する2つの分割点であり、前記セグメントの間隔が、該セグメントにおける隣接する2つのサンプリング点間の距離を表し、最初のとき、前記セグメントの間隔が、前記セグメントの2つの分割点間の距離を表し、前記分割点おび前記サンプリング点に基づいて補間計算を実行して得た結果により前記目標離散関数の最大誤差に対応するx軸座標を確定し、前記最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加し、前記サンプリング点が、該セグメントの間隔を2で割ることに使用される、ように構成される。
【0030】
上記の第2局面による技術案において、いくつかの実施可能な形態として、前記サンプリング点追加モジュールは、さらに、前記サンプリング点の個数が所定個数に達したか否かを判断し、Noとなる場合、前記分割点おび前記サンプリング点に基づいて補間計算を実行して得た結果により前記目標離散関数の最大誤差に対応するx軸座標を確定し、前記最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加するように構成され、前記サンプリング点が、該セグメントの間隔を2で割ることに使用される。
【0031】
上記の第2局面による技術案において、いくつかの実施可能な形態として、前記作成モジュールは、さらに、前記目標離散関数の分割点の座標および各前記セグメントの間隔に基づいて前記LUTを作成するように構成される。
【0032】
上記の第2局面による技術案において、いくつかの実施可能な形態として、前記作成モジュールは、さらに、隣接する2つのセグメントの間隔が等しいか否かを判断し、等しい場合、前記隣接する2つのセグメントの間の分割点を削除し、前記目標離散関数の残りの分割点の座標および残りの各セグメントの間隔に基づいて前記LUTを作成するように構成される。
【0033】
第3局面において、本出願の実施例は、電子機器を提供する。前記電子機器は、プロセッサとメモリとを備え、前記プロセッサと前記メモリとが接続されており、前記メモリは、プログラムを記憶するように構成され、前記プロセッサは、前記メモリに記憶されているプログラムをコールして、上記の第1局面の実施例または上記の第1局面の実施例のいくつかの実施可能な形態による方法を実行する。
【0034】
第4局面において、本出願の実施例は、コンピュータ読み取り可能な記録媒体を提供する。コンピュータ読み取り可能な記録媒体にコンピュータプログラムが記憶されており、前記コンピュータプログラムがプロセッサにより実行されると、上記の第1局面の実施例または上記の第1局面の実施例のいくつかの実施可能な形態による方法が実行される。
【図面の簡単な説明】
【0035】
本出願の実施例の技術案をより明瞭に説明するため、以下、本出願の実施例に用いられる図面を簡単に説明する。説明する図面は、本出願のいくつかの実施例を示すものにすぎず、範囲を限定するものではない。当業者は、発明能力を用いなくても、これらの図面に基づいて他の関連図面を得ることが可能である。
図1】本出願の実施例による電子機器のモジュールを示すブロック図である。
図2】本出願の実施例による自己適応テーブル作成方法のフローチャートである。
図3】本出願の実施例によるgamma関数に対応するグラフである。
図4】本出願の実施例による離散化後のgamma関数に対応するグラフの模式図である。
図5】本出願の実施例による離散化後のgamma関数の一次導関数のグラフの模式図である。
図6】本出願の実施例による表1に対応する関数のグラフの模式図である。
図7】本出願の実施例による離散化後のgamma関数の一次導関数の逆関数のグラフの模式図である。
図8】本出願の実施例による、一次導関数のy軸に対して均等分割を行ったあとの関数曲線の模式図である。
図9】本出願の実施例による、一次導関数のy軸に対して均等分割を行ったあとの他の関数曲線の模式図である。
図10】本出願の実施例による目標離散関数の分割点がgamma関数に応用されたときの効果図である。
図11】本出願の実施例による自己適応テーブル作成方法の模式的フローチャートである。
図12】本出願の実施例による自己適応テーブル作成装置のモジュールを示すブロック図である。
【発明を実施するための形態】
【0036】
以下、本出願の実施例に用いられる図面を参照しながら、本出願の実施例の技術案を説明する。
【0037】
図1は、本出願の実施例による、自己適応テーブル作成方法および装置を適用した電子機器100の構成を示す模式的ブロック図である。本出願の実施例において、電子機器100は端末またはサーバであり得、端末は、パーソナルコンピュータ(Personal Computer、PC)、スマートフォン、タブレット、パーソナルデジタルアシスタント(Personal Digital Assistant、PDA)、モバイルインターネットデバイス(Mobile Internet Device、MID)などであり得るが、これらに限定されない。サーバは、ネットワークサーバ、データベースサーバ、クラウドサーバ、または複数のサブサーバからなるサーバなどであり得るが、これらに限定されない。無論、上記に挙げられた機器は、本出願の実施例を容易に理解するためのものであり、本実施例を限定するものではない。
【0038】
構成上、電子機器100は、プロセッサ110とメモリ120とを備える。
【0039】
プロセッサ110とメモリ120とが直接または間接的に電気的に接続されてデータの伝送またはやり取りを実現する。例えば、これらの素子が一本または複数本の通信バスまたは信号線により電気的に接続される。自己適応テーブル作成装置は、ソフトウェアまたはファームウェア(Firmware)の形式でメモリ120に記憶されまたは電子機器100のオペレーティングシステム(Operating System、OS)に組み込まれたソフトウェアモジュールを少なくとも1つ備える。プロセッサ110は、自己適応テーブル作成装置が備えるソフトウェア機能モジュールおよびコンピュータプログラムなどの、メモリ120に記憶された実行可能なモジュールを実行して、自己適応テーブル作成方法を実現する。プロセッサ110は、実行コマンドを受信したあと、コンピュータプログラムを実行することができる。
【0040】
プロセッサ110は、信号処理能力を有する集積回路チップであり得る。プロセッサ110は、汎用プロセッサであり得、例えば、中央処理装置(Central Processing Unit、CPU)、デジタルシグナルプロセッサ(Digital Signal Processor、DSP)、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)、ディスクリートゲートまたはトランジスタ論理デバイス、ディスクリートハードウェア部品であり、本出願の実施例に開示された各方法、ステップおよび論理ブロックを実現または実行することが可能である。また、汎用プロセッサは、マイクロプロセッサまたは如何なる従来のプロセッサであり得る。
【0041】
メモリ120は、ランダムアクセスメモリ(Random Access Memory、RAM)、リードオンリーメモリ(Read Only Memory、ROM)、プログラマブル読み出し専用メモリ(Programmable Read-Only Memory、PROM)、消去可能なプログラマブル読み出し専用メモリ(Erasable Programmable Read-Only Memory、EPROM)、および電気的に消去可能なプログラマブル読み出し専用メモリ(Electric Erasable Programmable Read-Only Memory、EEPROM)などであり得るが、これらに限定されない。メモリ120はプログラムを記憶するためのものであり、プロセッサ110は、実行コマンドを受信したあと、該プログラムを実行する。
【0042】
なお、図1に示す構成が例示的なものにすぎず、本出願の実施例による電子機器100は、図1に示す構成よりも少ないまたは多い部品を備えてもよく、図1と異なって配置されてもよい。また、図1に示す各構成は、ソフトウェア、ハードウェアまたはこれらの組み合わせにより実現されることが可能である。
【0043】
図2は、本出願の実施例による自己適応テーブル作成方法のフローチャートであり、該方法が図1に示す電子機器100に使用される。本出願の実施例による自己適応テーブル作成方法は、図2および下記で説明された順序に限定されない。該方法は、ステップS101~ステップS104を含む。
【0044】
ステップS101:専用機能ユニットに配置されてタスク処理を実行する目標離散関数を取得する。
【0045】
専用機能ユニットは、GPU(Graphics Processing Unit、グラフィックスプロセッサ)、画像表示チップ、音声処理チップなどであり得、相応に、タスク処理は、画像処理、音声処理を含み得るが、本出願ではこれに対して限定しない。
【0046】
なお、目標離散関数は、目標原始関数を離散化して得たものである。専用機能ユニットの内部において、通常、固定小数点数を利用して浮動小数点数に対して近似計算するため、目標原始関数に対して均等にサンプリングすることができ、例えば、目標原始関数をN個のデータポイントに離散化し、ここで、NがN=2+1(n=1、2、3、...)を満たす。本出願の実施例において、nが10を取る場合、したがって、N=210+1=1025であり、1を足す理由として零点を含むからである。
【0047】
目標原始関数に対する離散化処理は電子機器により実行され、すなわち、ステップS101の前、該方法は、目標原始関数を取得し、目標原始関数に対して離散化処理を行い、目標離散関数を生成するステップをさらに含む。
【0048】
無論、他の実施例では、目標原始関数に対する離散化処理が他の電子機器により実行され、本出願の実施例による電子機器が離散化処理後の目標離散関数の受信にしか使用されないようにしてもよい。
【0049】
上記の目標原始関数は、主にタスク処理に使用され、例えば、目標原始関数が画像処理に使用される場合、目標原始関数が光電伝達関数および電光伝達関数の任意の1種であり得る。例えば、目標原始関数は、gamma関数、degamma関数であり得るが、本出願では限定されない。
【0050】
容易に理解するため、本出願の実施例において、gamma関数を目標原始関数として説明する。
【0051】
gamma関数の数式は、式(1)を参照できる。
【0052】
【数1】
gamma関数の曲線は、図3を参照できる。図3において、curveが曲線を表し、横軸は、x軸とされ、入力(input)を表し、縦軸は、y軸とされ、出力(output)を表す。
【0053】
離散化後のgamma関数(すなわち、目標離散関数)の式は、式(2)を参照できる。
【0054】
【数2】
離散化後のgamma関数(すなわち、目標離散関数)の曲線は、図4を参照できる。図4において、Discretization of curveは、離散化後の曲線を表し、gamma関数曲線が1025個の離散点に離散化され、x=0付近では比較的顕著である。
【0055】
ステップS102:目標離散関数に対して処理を実行し、目標離散関数の一次導関数を得る。
【0056】
曲線の傾きの変化が大きい箇所であるほど、必要な分割点数がより多くなり、一次導関数が関数の変化率を表すことができるため、本出願の実施例において、目標離散関数に対して微分処理を実行し、目標離散関数の一次導関数を得る。
【0057】
目標離散関数の一次導関数は、下記の式(3)により算出できる。
【0058】
【数3】
例示的に、離散化後のgamma関数の一次導関数は、図5に示す例を参照できる。
【0059】
ステップS103:一次導関数および所定セグメント分割数に基づいて、目標離散関数の分割点の座標を確定する。
【0060】
所定セグメント分割数は、実際の状況に応じて設定することができ、例えば、所定セグメント分割数が8、10であり得、本出願では限定されない。
【0061】
所定セグメント分割数は一次導関数の分割に使用され、一次導関数を分割したあと、一次導関数の分割点の座標を確定することができ、一次導関数の分割点と目標離散関数の分割点とが同じである。
【0062】
ステップS104:目標離散関数の分割点の座標に基づいてLUTを作成する。
【0063】
最後、目標離散関数の分割点の座標に基づいて、LUTを作成することができる。本出願の実施例において、LUTには、各目標離散関数の分割点の座標のみを含んでもよい。
【0064】
他の実施例において、LUTは、表1の形式を採用して作成されてもよい。
【0065】
【表1】
表1において、Countがセグメント分割数を表し、Stepsが各セグメントにおけるサンプリング点の間隔を表し、Pointsが目標離散関数の分割点のx軸における座標を表す。
【0066】
Countは、目標離散関数の分割点の数に基づいて確定することができ、例えば、目標離散関数の分割点の数が3である場合、Countが3である。現在セグメントにはサンプリング点が含まれないため、Stepsが、隣接する2つの分割点間の距離であり、例えば、三番目のセグメントの間隔は2048(=4096-2048)である。
【0067】
表1に対応する関数は、図6を参照できる。図6において、Point1=1024、Point2=2048、Point3=4096。目標原始関数は、3つのセグメントに分割され、すなわち、Count=3である。3つのセグメントがそれぞれsegment1、segment2およびsegment3である。
【0068】
また、LUTには、各分割点のy軸における座標をさらに含み、各分割点のy軸における座標が、分割点のx軸における座標のマッピング関係により確定することができ、本出願では限定されない。
【0069】
LUTは、専用機能ユニットに配置され、これによって専用機能ユニットがLUTに基づいてタスク処理を実行する。すなわち、目標離散関数がLUTの形式で専用機能ユニットに配置される。
【0070】
具体的に、本出願の実施例による自己適応テーブル作成方法で生成されるLUTは、任意の単調曲線のフィッティングに適用でき、例えば、該方法がHDRモジュールに使用でき、これに対して、本出願では限定されない。
【0071】
例示的に、LUTAに対応する関数は画像の画像値を調整するためのものであり、LUTAが専用機能ユニットに配置されたあと、専用機能ユニットが1フレーム画像を受信したあと、LUTAにより各ピクセルの調整値を確定することができ、ピクセルAの階調値をLUTに対応する関数の入力とし、そして、補間計算により関数の出力を算出する。関数の出力が、ピクセルAに対応する調整値である。
【0072】
このように、本出願の実施例において、目標離散関数を処理することにより、目標離散関数の一次導関数を得、そして一次導関数および所定セグメント分割数に基づいて、目標離散関数の分割点の座標を確定し、最後、目標離散関数の分割点の座標に基づいてLUTを作成する。該方式によれば、自動的に目標離散関数に基づいてLUTを生成することができ、これによって、効率を高めることができ、そして、目標離散関数の一次導関数に基づいて目標離散関数の分割点を確定することにより、LUTの精度を高めることができる。
【0073】
一実施例において、一次導関数および所定セグメント分割数に基づいて、目標離散関数の分割点の座標を確定する上記のステップS103は、具体的に、所定セグメント分割数に基づいて一次導関数のy軸に対して均等分割を行うステップと、一次導関数の分割点の座標に基づいて、目標離散関数の分割点の座標を確定するステップとを含む。
【0074】
一次導関数の分割点の座標が目標離散関数の分割点の座標であり、一次導関数の分割点の座標が、所定セグメント分割数に基づいて一次導関数の逆関数のx軸に対して均等分割を行うことにより得たものである。すなわち、所定セグメント分割数に基づいて一次導関数のy軸に対して均等分割を行う前、先に目標離散関数の一次導関数に対して処理を実行し、目標離散関数の一次導関数の逆関数を得る必要がある。目標離散関数が離散化後のgamma関数である例の場合、目標離散関数の一次導関数の逆関数は、図7を参照できる。
【0075】
相応に、ステップS102において、目標離散関数の一次導関数および目標離散関数の一次導関数の逆関数の両方を求めることができ、本出願では限定されない。
【0076】
本出願の実施例において、一次導関数のy軸に対して均等分割を行い、マッピングされたx軸の分割点を得る。この場合にy軸を入力とするため、容易に計算するように、一次導関数の逆関数により実現し、すなわち、一次導関数の逆関数のx軸に対して均等分割を行い、分割点を入力とし、線形補間によりy軸の値を得、これによって一次導関数のx軸における分割点を得る。所定セグメント分割数に基づいて一次導関数のy軸に対して均等分割を行う場合の関数曲線は、図8を参照できる。図8において、点線の対応するものが分割点である。
【0077】
このように、本出願の実施例において、計算により一次導関数の逆関数を得ることにより、y軸において均等分割を行う各点の座標を正確かつ容易に得、そしてマッピングによりx軸における分割点を得る。
【0078】
無論、他の実施例において、直接一次導関数に基づいてy軸に対する均等分割を行ってもよく、本出願では限定されない。
【0079】
図8に示すように、均等分割を行ったあとの分割点(x軸の値)がすべてのN個のデータポイントに合致しているのではないから、後の計算を減らし、効率を高めるため、一実施例において、一次導関数の分割点の座標に基づいて、目標離散関数の分割点の座標を確定する上記のステップは、具体的に、一次導関数の分割点を一次導関数のデータポイントに移動させ、一次導関数の目標分割点の座標を得るステップを含む。
【0080】
例示的に、一次導関数の分割点を順次に一次導関数の右側に最も近いデータポイントに移動させ、一次導関数の目標分割点の座標を得る。
【0081】
一次導関数の目標分割点の順序と一次導関数の分割点の順序とが同じである。例えば、一次導関数の分割点はPoint1、Point2およびPoint3を含み、Point1<Point2<Point3を満たす場合、上記のように移動したあと、一次導関数の目標分割点のPoint1、Point2およびPoint3の大小関係は、依然としてPoint1<Point2<Point3を満たす。
【0082】
上記の一次導関数の目標分割点の座標が目標離散関数の分割点の座標である。
【0083】
任意で、一次導関数の分割点を一次導関数のデータポイントに移動させ、一次導関数の目標分割点を得る上記のステップは、具体的に、一次導関数の分割点がデータポイントに合致するか否かを判断するステップと、Yesとなる場合、一次導関数の分割点を一次導関数の目標分割点として確定するステップと、Noとなる場合、一次導関数の分割点を一次導関数のデータポイントに移動させ、一次導関数の目標分割点を得るステップと、を含む。
【0084】
すなわち、一次導関数の分割点がデータポイントに合致する場合、直接一次導関数の分割点を目標分割点とし、一次導関数の分割点がデータポイントに合致しない場合、一次導関数の分割点を右側の最も近いデータポイントに移動させ、一次導関数の目標分割点を得る。
【0085】
一実施例において、一次導関数の分割点を一次導関数のデータポイントに移動させ、一次導関数の目標分割点を得るステップの後、該方法は、該目標分割点の右側の一次導関数のy軸に対して均等分割を行い、新しい分割点を形成し、新しい分割点を一次導関数の分割点とする。均等分割のセグメント数は、所定セグメント分割数からmを引いたものであり、mが分割回数から1を引いたものである。
【0086】
例示的に、所定セグメント分割数(Count)が8であると仮定する場合、まず一次導関数の1番目の分割点がN個のデータポイントに合致するか否かを判断し、Yesとなる場合、該分割点を採用し、すなわち、1番目の分割点を1番目の目標分割点とし、さらに2番目の分割点がN個のデータポイントに合致するか否かを確認する。
【0087】
1番目の分割点がN個のデータポイントに合致しない場合、該分割点を右側の最も近いデータポイントに移動させ、このとき、該データポイントを1番目の目標分割点とし、そして、1番目の目標分割点の右側の一次導関数のy軸に対して均等分割を行い、セグメント分割数について、現在のセグメント分割数がCount-1=7であり、現在分割回数が2であるため、m=2-1=1である。
【0088】
分割後、分割後の1番目の分割点がN個のデータポイントに合致するか否かを判断する。このとき、分割後の1番目の分割点が、一回目の分割のときの2番目の分割点である。上記の分割および判断のステップを繰り返し、繰り返すたびにセグメント分割数から1を引き、Count=0になるまで繰り返し、そしてすべての目標分割点の座標を出力する。図9に示すように、すべての分割点がデータポイントに合致しているとともに、該方式によれば一次導関数のy軸に対する均等分割も実現される。
【0089】
任意で、一次導関数および所定セグメント分割数に基づいて、目標離散関数の分割点の座標を確定する上記のステップS103は、具体的に、一次導関数および所定セグメント分割数に基づいて、一次導関数の初期分割点の座標を確定するステップと、一次導関数における隣接する2つの初期分割点の座標の差が2を満たすか否かを判断し、満たさない場合、新しい分割点を追加したあとに任意の隣接する2つの分割点の座標の差が2を満たすように、隣接する2つの初期分割点の間に新しい分割点を追加するステップと、目標離散関数の分割点の座標を確定するステップと、を含む。目標離散関数の分割点は、一次導関数の初期分割点と、一次導関数における新しい分割点とを含む。
【0090】
具体的に、まず1番目の分割点adjPointを保存し、そして隣接する次の分割点と現在分割点との間隔を算出してtempGapとする。
【0091】
そして、該間隔tempGapが2を満たすか否かを判断する。Yesとなる場合、スキップし、Noとなる場合、それよりも小さくかつそれに最も近い2を満たす数値を探し、次の分割点から、探し出された2を満たす数値を引いて、差をadjPointに保存し、tempGapを使用して該数値に対して剰余を取得する。余りが2を満たすか否かを継続に判断し、すなわち、tempGapが2を満たすまで上記のステップを繰り返す。最後、保存されたすべてのadjPointを小さい順に並べ替える。
【0092】
例示的に、1番目の分割点が64であり、adjPointに保存し、2番目の分割点が3776であり、adjPointに保存し、2つのPointの間隔tempGapが3712であり、該3712が2を満たさないため、それよりも小さくかつそれに最も近い2を満たす数値を探し、つまりこの数値が2048(211)となり、そして、3776-2048=1728(1728をadjPointに保存する)の計算が実行され、さらに3712%2048=1664(符号の「%」が剰余演算を表す)の計算が実行され、1664が依然として2を満たさないため、続いて1024(210)が探し出され、1728-1024=704(adjPointに保存する)の計算が実行され、1664%1024=640の計算が実行され、この場合も2を満たしなく、続いて512(2)が探し出され、704-512=192(adjPointに保存する)の計算が実行され、640%512=128の計算が実行され、128が2を満たすため、終了する。最後、保存されたadjPointを小さい順に並べ替える。adjPoints=[64、192、704、1728、3776]が得られる。ここで、座標の192、704、1728が新しい分割点の座標である。さらに、確定された新しい分割点に基づいて、追加されたセグメントの間隔を確定することができる。すなわち、adjSteps=[64、128、512、1024、2048]、したがって、分割点が追加された後、任意の2つの分割点の座標の差が2を満たす。
【0093】
すべての分割点のチェックが完了するまで上記のステップを繰り返す。これによって、すべての新しい分割点を得ることができ、そして、新しい分割点と初期分割点とに基づいて、目標離散関数の分割点の座標を確定することができる。該方式によれば、後で補間計算を実行するときの除算を避けることができる。
【0094】
最後、得られた目標離散関数の分割点をgamma関数に使用し、図10に示す効果が得られる。図10に示すように、gamma関数曲線は比較的理想的な間隔で分割され、傾きの変化が比較的大きい箇所(曲線のより前の部分)に比較的多いサンプリング点が分布しており、傾きの変化が比較的小さい箇所(曲線のより後ろの部分)では逆である。
【0095】
任意で、目標離散関数の分割点の座標を確定したあと、該方法は、ステップS11~ステップS14をさらに含む。
【0096】
ステップS11:分割点に基づいて補間計算を実行して得た結果により目標離散関数の最大誤差に対応するx軸座標を確定する。
【0097】
なお、ステップS11は、目標離散関数のすべてのパラメータと、分割点に基づいて補間計算を実行して得たすべてのパラメータとを比較し、最大誤差に対応するx軸座標を確定する。
【0098】
ステップS12:最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加する。サンプリング点は、該セグメントの間隔を2で割ることに使用される。
【0099】
セグメントの端点は、隣接する2つの分割点である。セグメントの間隔は、該セグメントにおける隣接する2つのサンプリング点間の距離を表す。分割点もサンプリング点ととして用いられ、最初のとき、セグメントの間隔が、セグメントの2つの分割点間の距離を表す。
【0100】
例示的に、最大誤差に対応するx軸座標は、第1分割点と第2分割点との間に位置し、第1分割点のx軸座標が1024であり、第2分割点のx軸座標が2048である。第1分割点と第2分割点との間にサンプリング点がない場合、第1分割点と第2分割点との間隔が2048-1024=1024であり、このとき、1つのサンプリング点を追加することにより、該セグメントの間隔が2で割られる。新しく追加されたサンプリング点のx軸の座標が1536である。
【0101】
第1分割点と第2分割点との間に1つのサンプリング点がある場合、第1分割点と第2分割点との間隔が512であり、このとき、2つのサンプリング点を追加することにより、該セグメントの間隔が2で割られる。新しく追加された2つのサンプリング点のx軸の座標がそれぞれ1280および1792である。
【0102】
ステップS13:分割点およびサンプリング点に基づいて補間計算を実行して得た結果により目標離散関数の最大誤差に対応するx軸座標を確定する。
【0103】
ステップS13において、サンプリング点を追加して補間計算を実行する。
【0104】
ステップS14:最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加する。サンプリング点は、該セグメントの間隔を2で割ることに使用される。
【0105】
ステップS14の実現過程はステップS12の実現過程と同じであるため、ここで説明を省略する。
【0106】
一実施例において、上記のステップは、サンプリング点の個数が所定個数に達したか否かを判断するステップと、Noとなる場合、分割点およびサンプリング点に基づいて補間計算を実行して得た結果により前記目標離散関数の最大誤差に対応するx軸座標を確定するステップと、最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加するステップと、をさらに含む。サンプリング点は、該セグメントの間隔を2で割ることに使用される。
【0107】
所定個数が、設定された所要の最大のサンプリング点数MaxEntryであり、所定個数の値が実際の状況に応じて設定することができ、例えば所定個数が20、30、50であり得、本出願では限定されない。サンプリング点の個数が所定個数に達した場合、サンプリング点の追加を停止する。
【0108】
このように、サンプリング点を追加する上記方式によれば、分割点を追加せずに、後で生成するLUTの精度を高めることができる。
【0109】
サンプリング点を追加するステップを実行したあと、目標離散関数の分割点の座標に基づいてLUTを作成するステップは、目標離散関数の分割点の座標および各セグメントの間隔に基づいてLUTを作成する。
【0110】
目標離散関数の分割点の座標および各セグメントの間隔に基づいて作成したLUTは表1を参照できるため、本出願では説明を省略する。
【0111】
任意で、目標離散関数の分割点の座標および各セグメントの間隔に基づいて前記LUTを作成するステップは、具体的に、隣接する2つのセグメントの間隔が等しいか否かを判断するステップと、等しい場合、隣接する2つのセグメントの間の分割点を削除するステップと、目標離散関数の残りの分割点の座標および残りの各セグメントの間隔に基づいてLUTを作成するステップと、をさらに含む。
【0112】
サンプリング点を追加するステップの後、隣接するとともに値が同じである間隔が存在するため、この場合、レジスタ資源を節約するようにフィルタリングする必要がある。具体的に、前から後ろへ2つのセグメントの間隔が等しいか否かを順に判断し、等しい場合、隣接する2つのセグメントの間の分割点を削除し、セグメント分割数Countから1を引く。
【0113】
例示的に、サンプリング点を追加した後、1番目のセグメントおよび2番目のセグメントの間隔がいずれも64であると仮定する場合、1番目のセグメントと2番目のセグメントとのみをマージし、すなわち、1番目のセグメントと2番目のセグメントとの間の分割点を削除する。該方式によれば、分割点の数を減らし、レジスタ資源を節約することができる。
【0114】
図11は、本出願の実施例による自己適応テーブル作成方法の模式的フローチャートである。まず、目標原始関数および所定セグメント分割数を取得し、そして、目標原始関数に対して離散化処理を実行し、一次導関数および一次導関数の逆関数を求め、そして、一次導関数および一次導関数の逆関数に基づいて分割点を確定し、データポイントの位置に基づいて分割点を調整し、そして、サンプリング点の追加を実行し、最後、同じ間隔をフィルタリングして、最適な分割点および間隔を出力する。
【0115】
図12に示すように、同一の発明構想に基づいて、本出願の実施例は、自己適応テーブル作成装置200をさらに提供する。該装置は、取得モジュール210と、処理モジュール220と、確定モジュール230と、作成モジュール240とを備える。
【0116】
取得モジュール210は、専用機能ユニットに配置されてタスク処理を実行する目標離散関数を取得するように構成される。
【0117】
処理モジュール220は、前記目標離散関数に対して処理を実行し、前記目標離散関数の一次導関数を得るように構成される。
【0118】
確定モジュール230は、前記一次導関数および所定セグメント分割数に基づいて、前記目標離散関数の分割点の座標を確定するように構成される。
【0119】
作成モジュール240は、前記目標離散関数の分割点の座標に基づいてLUTを作成するように構成される。
【0120】
任意で、前記確定モジュール230は具体的に、前記所定セグメント分割数に基づいて前記一次導関数のy軸に対して均等分割を行い、前記一次導関数の分割点の座標に基づいて、前記目標離散関数の分割点の座標を確定するように構成される。前記一次導関数の分割点の座標が前記目標離散関数の分割点の座標であり、前記一次導関数の分割点の座標が、前記所定セグメント分割数に基づいて前記一次導関数の逆関数のx軸に対して均等分割を行うことにより得たものである。
【0121】
任意で、前記目標離散関数は離散化のN個のデータポイントを含む。前記確定モジュール230は、さらに、前記一次導関数の分割点を前記一次導関数のデータポイントに移動させ、前記一次導関数の目標分割点を得るように構成される。前記一次導関数の目標分割点の順序と前記一次導関数の分割点の順序とが同じである。前記一次導関数の目標分割点の座標が前記目標離散関数の分割点の座標である。
【0122】
上記の第2局面による技術案において、いくつかの実施可能な形態として、前記確定モジュール230は、さらに、前記一次導関数の分割点が前記データポイントに合致するか否を判断し、Yesとなる場合、前記一次導関数の分割点を前記一次導関数の目標分割点として確定し、Noとなる場合、前記一次導関数の分割点を前記一次導関数のデータポイントに移動させ、前記一次導関数の目標分割点を得るように構成される。
【0123】
任意で、前記確定モジュール230は、さらに、前記一次導関数の分割点を前記一次導関数のデータポイントに移動させ、前記一次導関数の目標分割点を得たあと、該目標分割点の右側の一次導関数のy軸に対して均等分割を行い、新しい分割点を形成し、前記新しい分割点を前記一次導関数の分割点とするように構成される。均等分割のセグメント数は、所定セグメント分割数からmを引いたものであり、mが分割回数から1を引いたものである。
【0124】
任意で、前記確定モジュール230は、さらに、前記一次導関数および前記所定セグメント分割数に基づいて、前記一次導関数の初期分割点の座標を確定し、前記一次導関数における隣接する2つの初期分割点の座標の差が2を満たすか否かを判断し、満たさない場合、新しい分割点を追加したあとに任意の隣接する2つの分割点の座標の差が2を満たすように、前記隣接する2つの初期分割点の間に新しい分割点を追加し、前記目標離散関数の分割点の座標を確定するように構成される。前記目標離散関数の分割点は、前記一次導関数の初期分割点と、前記一次導関数における新しい分割点とを含む。
【0125】
任意で、前記装置は、サンプリング点追加モジュールをさらに備える。前記サンプリング点追加モジュールは、前記目標離散関数の分割点の座標を確定したあと、前記分割点に基づいて補間計算を実行して得た結果により前記目標離散関数の最大誤差に対応するx軸座標を確定し、前記最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加し、前記サンプリング点が、該セグメントの間隔を2で割ることに使用され、前記セグメントの端点が、隣接する2つの分割点であり、前記セグメントの間隔が、該セグメントにおける隣接する2つのサンプリング点間の距離を表し、最初のとき、前記セグメントの間隔が、前記セグメントの2つの分割点間の距離を表し、前記分割点おび前記サンプリング点に基づいて補間計算を実行して得た結果により前記目標離散関数の最大誤差に対応するx軸座標を確定し、前記最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加し、前記サンプリング点が、該セグメントの間隔を2で割ることに使用される、ように構成される。
【0126】
任意で、前記サンプリング点追加モジュールは、さらに、前記サンプリング点の個数が所定個数に達したか否かを判断し、Noとなる場合、前記分割点おび前記サンプリング点に基づいて補間計算を実行して得た結果により前記目標離散関数の最大誤差に対応するx軸座標を確定し、前記最大誤差に対応するx軸座標を含むセグメントにサンプリング点を追加するように構成される。前記サンプリング点が、該セグメントの間隔を2で割ることに使用される。
【0127】
任意で、前記作成モジュール240は、さらに、前記目標離散関数の分割点の座標および各前記セグメントの間隔に基づいて前記LUTを作成するように構成される。
【0128】
任意で、前記作成モジュール240は、さらに、隣接する2つのセグメントの間隔が等しいか否かを判断し、等しい場合、前記隣接する2つのセグメントの間の分割点を削除し、前記目標離散関数の残りの分割点の座標および残りの各セグメントの間隔に基づいて前記LUTを作成するように構成される。
【0129】
当業者は、上記説明したシステム、装置およびユニットの具体的な作動プロセスについて、上記の方法の実施例における該当するプロセスを参照できるため、説明の便宜および簡潔のために、ここで説明を省略する。
【0130】
同一の発明構想に基づいて、本出願の実施例は、コンピュータ読み取り可能な記録媒体をさらに提供し、前記コンピュータ読み取り可能な記録媒体にはコンピュータプログラムが記憶されており、コンピュータプログラムが実行されると、上記の実施例による方法が実行される。
【0131】
該記憶媒体は、コンピュータによる書き込みや読み出しが可能な如何なる利用可能な媒体であってもよく、1つまたは複数の利用可能な媒体により集積されたサーバ、データセンタなどを含むデータ記憶機器であってもよい。前記利用可能な媒体は、磁気媒体(例えば、フロッピーディスク、ハードディスク、テープ)、光媒体(例えば、DVD)または半導体媒体(例えば、ソリッドステートドライブ((Solid State Disk)(SSD))などであり得る。
【0132】
本出願に係る実施例において、記載された装置および方法は、他の方式により実現することが可能である。上記に説明された装置の実施例は、例示的なものにすぎない。例えば、前記ユニットの区分は、単に論理的な機能区分であり、実際の実現では別の区分であってもよい。または、複数のユニットまたはコンポーネントを組み合わせ、または別のシステムに統合してもよく、あるいは一部の特徴を省略または不実行にしてもよい。また、示したもしくは論じた相互結合または直接結合または通信接続は、いくつかのインターフェース、装置またはユニットを介する間接結合または通信接続であってもよく、また、電気的、機械的または他の形式による接続であってもよい。
【0133】
また、上記の別個の部品として説明されたユニットは、物理的に別個であってもなくてもよい。ユニットとして示した部材は、物理的なユニットであってもなくてもよく、つまり、同一位置に配置してもよく、複数のネットワークユニットに分散してもよい。本実施例の案の目的を実現するために実際の要求に応じて一部または全部のユニットを選択することが可能である。
【0134】
また、本出願の各実施例における各機能モジュールは、集積して1つの独立部分として形成してもよく、各モジュールがそれぞれ単独に存在してもよく、2つ以上のモジュールにより集積して形成された1つの独立部分であってもよい。
【0135】
本明細書において、第1および第2などのような関係用語は、1つのエンティティ若しくはアクションを別のエンティティ若しくはアクションから区別するだけに用いられ、必ずしもそのようなエンティティ若しくはアクション間に如何なる事実上の関係または順序を要求または暗示していない。
【0136】
上記は、本出願の実施例にすぎず、本出願の保護範囲を限定するものではない。当業者にとって、本出願は各種の変更や変化を有してもよい。本出願の精神及び原理から逸脱しない限り、行った如何なる変更、均等置換、改良なども、本出願の保護範囲内に属する。
【符号の説明】
【0137】
100 電子機器
110 プロセッサ
120 メモリ
200 自己適応テーブル作成装置
210 取得モジュール
220 処理モジュール
230 確定モジュール
240 作成モジュール


図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
【国際調査報告】