(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-01-10
(54)【発明の名称】画像フレームフリーズ検出のための方法及び装置
(51)【国際特許分類】
G06T 1/20 20060101AFI20221227BHJP
【FI】
G06T1/20 Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022525593
(86)(22)【出願日】2020-10-30
(85)【翻訳文提出日】2022-06-29
(86)【国際出願番号】 US2020058084
(87)【国際公開番号】W WO2021087184
(87)【国際公開日】2021-05-06
(32)【優先日】2019-10-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507107291
【氏名又は名称】テキサス インスツルメンツ インコーポレイテッド
(74)【代理人】
【識別番号】230129078
【氏名又は名称】佐藤 仁
(71)【出願人】
【識別番号】390020248
【氏名又は名称】日本テキサス・インスツルメンツ合同会社
(72)【発明者】
【氏名】ニラジ ナンダン
(72)【発明者】
【氏名】ブライアン チャエ
(72)【発明者】
【氏名】ミヒル モディ
(72)【発明者】
【氏名】ラジャセカール レディ アル
【テーマコード(参考)】
5B057
【Fターム(参考)】
5B057CA01
5B057CA08
5B057CA12
5B057CA16
5B057CB01
5B057CB08
5B057CB12
5B057CB16
5B057CG07
5B057CH08
5B057CH16
5B057DA16
5B057DB02
5B057DB06
5B057DB09
(57)【要約】
画像フレームフリーズ検出のための方法、装置、システム、及び製品が説明される。或る例示のハードウェアアクセラレータ(204)は、第1の画像フレームに関連する第1の画像データに基づいて、処理された画像データ、変換された画像データ、又は一つ又は複数の画像データ統計値の少なくとも一つに対応する第2の画像データを生成するためのコア論理回路(208)と、コア論理回路に結合され、コア論理回路から取得した第2の画像データに基づいて第1のCRC値を判定するためのロード/ストアエンジン(LSE)(206)と、第2のインターフェース(224)に結合される第1のインターフェース(230)とを含み、第2のインターフェースはメモリ(212)に結合され、第1のインターフェースは、メモリから取得した第1のCRC値をホストデバイス(214A、214B)に送信するためのものである。
【特許請求の範囲】
【請求項1】
ハードウェアアクセラレータであって、
第1の画像フレームに関連する第1の画像データに基づいて第2の画像データを生成するためのコア論理回路であって、前記第2の画像データが、処理された画像データ、変換された画像データ、又は、一つ又は複数の画像データ統計値、の少なくとも一つに対応する、前記コア論理回路と、
前記コア論理回路に結合され、前記第2の画像データに基づいて第1のCRC値を判定するためのロード/ストアエンジン(LSE)と、
第2のインターフェースに結合される第1のインターフェースと、
を含み、
前記第2のインターフェースがメモリに結合され、前記第1のインターフェースが、前記メモリから取得した前記第1のCRC値をホストデバイスに送信するためのものである、
ハードウェアアクセラレータ。
【請求項2】
請求項1に記載のハードウェアアクセラレータであって、前記第1のインターフェースが、前記第1のCRC値が第2のCRC値に一致することに応答して、前記ホストデバイスに警告を生成させるためのものであり、第2の画像フレームに関連する前記第2のCRC値が、前記第1の画像フレームの前に捕捉される、ハードウェアアクセラレータ。
【請求項3】
請求項1に記載のハードウェアアクセラレータであって、前記第1の画像データが一つ又は複数の画素値を含み、前記コア論理回路が、前記一つ又は複数の画素値の合計を判定することによって、前記一つ又は複数の画像データ統計値の第1の画像データ統計値を生成するためのものであり、前記LSEが、前記一つ又は複数の画素値の前記合計に基づいて前記第1のCRC値を判定するためのものである、ハードウェアアクセラレータ。
【請求項4】
請求項1に記載のハードウェアアクセラレータであって、前記第1の画像データが一つ又は複数の画素値を含み、
前記コア論理回路が、
前記一つ又は複数の画素の最小値を判定することによって、前記一つ又は複数の画像データ統計値の第1の画像データ統計値を生成し、及び、
前記一つ又は複数の画素の最大値を判定することによって、前記一つ又は複数の画像データ統計値の第2の画像データ統計値を生成するためのものであり、
前記LSEが、前記第1の画像データ統計値又は前記第2の画像データ統計値に基づいて前記第1のCRC値を判定するためのものである、
ハードウェアアクセラレータ。
【請求項5】
請求項1に記載のハードウェアアクセラレータであって、前記第1の画像データが画素値を含み、前記コア論理回路が、前記画素値に対して近隣認識画素変換を実行して、変換された画像データを生成し、前記変換された画像データに対応するビットストリングに基づいてバイナリ値を判定し、及び、前記画素値の中央画素値を前記バイナリ値に対応する10進値で置換することによって、変換された画素データを生成するためのものであり、前記LSEが、前記変換された画素データに基づいて前記第1のCRC値を判定するためのものである、ハードウェアアクセラレータ。
【請求項6】
請求項5に記載のハードウェアアクセラレータであって、前記近隣認識画素変換がセンサス変換である、ハードウェアアクセラレータ。
【請求項7】
請求項1に記載のハードウェアアクセラレータであって、前記LSEが論理回路スレッドを含み、前記論理回路スレッドが、
前記第1の画像データを取得するための画像データバッファと、
複数の入力チャネルと、
マルチプレクサと、
を含み、
前記画像データバッファが前記マルチプレクサの第1の入力に結合され、前記複数の入力チャネルの第1の入力チャネルが前記マルチプレクサの第2の入力に結合され、前記マルチプレクサが、前記画像データバッファを選択することに応答して、前記コア論理回路への前記第1の画像データの送信を促進するためのものである、
ハードウェアアクセラレータ。
【請求項8】
請求項1に記載のハードウェアアクセラレータであって、前記LSEが、
前記コア論理回路に結合される第3のインターフェースと、
第1の出力チャネルを含む複数の出力チャネルと、
第1のCRC論理回路を含む複数のCRC論理回路と、
を含み、
前記複数のCRC論理回路のそれぞれ一つが、前記第3のインターフェースのそれぞれ一つと前記複数の出力チャネルのそれぞれ一つとに結合され、前記第1のCRC論理回路が、前記第1の出力チャネルから取得した前記第2の画像データに基づいて前記第1のCRC値を判定するためのものである、
ハードウェアアクセラレータ。
【請求項9】
システムであって、
画像フレームを捕捉するためのカメラと、
前記カメラに結合される集積回路と、
を含み、
前記集積回路が、
前記画像フレームに関連する第2の画像データに基づいて、処理された画像データ、変換された画像データ、又は、一つ又は複数の画像データ統計値、の少なくとも一つに対応する第1の画像データを生成し、及び、前記第1の画像データに基づいてCRC値を判定するためのハードウェアアクセラレータ(HWA)と、
前記CRC値に基づいて画像フレームフリーズ状況を検出するために、前記CRC値をホストデバイスに送信するためのホストデバイスインターフェースと、
を含む、
システム。
【請求項10】
請求項9に記載のシステムであって、前記画像フレームが第1の画像フレームであり、前記CRC値が第1のCRC値であり、前記システムが、前記第1のCRC値が第2のCRC値に一致することに応答して警告を生成するための前記ホストデバイスをさらに含み、前記第2のCRC値が、前記第1の画像フレームの前に前記カメラによって捕捉される第2の画像フレームに関連する、システム。
【請求項11】
請求項9に記載のシステムであって、前記画像フレームを取得するための画像データインターフェースをさらに含み、前記集積回路が、
前記画像データインターフェース及び前記HWAに結合されるデータ動きファブリックと、
前記データ動きファブリックに結合されるメモリインターフェースと、
前記メモリインターフェースに結合され、前記第2の画像データをストアするためのメモリと、
を含み、
前記HWAが、前記第1の画像データを生成する前に、前記メモリから前記第2の画像データを取得するためのものである、
システム。
【請求項12】
請求項9に記載のシステムであって、前記画像フレームを取得するための画像データインターフェースをさらに含み、前記集積回路が、
前記画像データインターフェース及び前記HWAに結合されるデータ動きファブリックと、
前記データ動きファブリックに結合されるメモリインターフェースと、
前記メモリインターフェースに結合されるメモリと、
を含み、
前記HWAが、前記第1の画像データ又は前記CRC値の少なくとも一つを判定した後、前記第1の画像データ又は前記CRC値の前記少なくとも一つを前記メモリにストアするためのものである、
システム。
【請求項13】
請求項9に記載のシステムであって、前記第2の画像データが一つ又は複数の画素値を含み、前記HWAが、
前記一つ又は複数の画素値の最小値又は最大値を判定することによって、前記一つ又は複数の画像データ統計値の第1の画像データ統計値を生成し、及び、
前記一つ又は複数の画素値の前記最小値又は前記最大値に基づいて、前記CRC値を判定するためのものである、
システム。
【請求項14】
請求項9に記載のシステムであって、前記第2の画像データが画素値を含み、前記HWAが、
前記画素値に対して変換動作を実行して、前記変換された画像データを生成し
前記変換された画像データに対応するビットストリングに基づいてバイナリ値を判定し、
前記画素値の中央画素値を、前記バイナリ値に対応する10進値で置換することによって、変換された画素データを生成し、及び、
前記変換された画素データに基づいて、前記CRC値を生成するためのものである、
システム。
【請求項15】
請求項9に記載のシステムであって、前記集積回路に結合されるディスプレイパネルをさらに含み、前記集積回路が、
前記カメラから前記画像フレームを取得するための画像データインターフェースと、
前記画像データインターフェースに結合され、前記画像データインターフェースから前記画像フレームを取得するためのデータ動きファブリックと、
前記データ動きファブリックに結合され、前記データ動きファブリックから前記画像フレームを取得するためのメモリインターフェースと、
前記メモリインターフェースに結合され、前記メモリインターフェースから取得した前記画像フレームをストアするためのメモリと、
前記データ動きファブリックに結合され、前記画像フレームを前記データ動きファブリックから前記ディスプレイパネルに送信するためのディスプレイコントローラと、
を含む、
システム。
【請求項16】
方法であって、
カメラによって捕捉される第1の画像フレームに関連する第2の画像データに基づいて、処理された画像データ、変換された画像データ、又は、一つ又は複数の画像データ統計値、の少なくとも一つに対応する第1の画像データを生成することと、
前記第1の画像データに基づいて第1のCRC値を判定することと、
前記第1のCRC値を、前記第1の画像フレームより前に前記カメラによって捕捉された第2の画像フレームに関連する第2のCRC値と比較することと、
前記比較に基づいて前記第1のCRC値が前記第2のCRC値に一致することに応答して、画像フレームフリーズ状況が検出されたことを示す警告を生成することと、
を含む、方法。
【請求項17】
請求項16に記載の方法であって、
ディスプレイパネル上に前記警告を表示することと、
前記画像フレームフリーズ状況が検出されないことに応答して、前記第1の画像フレームの後に前記カメラによって捕捉される第3の画像フレームを表示することと、
をさらに含む、方法。
【請求項18】
請求項16に記載の方法であって、前記第2の画像データが一つ又は複数の画素値を含み、前記方法が、
前記一つ又は複数の画素値の合計、前記一つ又は複数の画素値の最小値、又は前記一つ又は複数の画素値の最大値を判定することによって、前記一つ又は複数の画像データ統計値を生成することと、
前記一つ又は複数の画素値の前記合計、前記一つ又は複数の画素値の前記最小値、又は前記一つ又は複数の画素値の前記最大値に基づいて前記第1のCRC値を判定することと、
をさらに含む、方法。
【請求項19】
請求項16に記載の方法であって、前記第2の画像データが画素値を含み、前記方法が、
前記画素値に対して変換動作を実行して、前記変換された画像データを生成することと、
前記変換された画像データに対応するビットストリングに基づいてバイナリ値を判定することと、
前記画素値の中央画素値を、前記バイナリ値に対応する10進値で置換することによって、変換された画素データを生成することと、
前記変換された画素データに基づいて前記第1のCRC値を判定することと、
をさらに含む、方法。
【請求項20】
請求項16に記載の方法であって、前記第1のCRC値と前記第2のCRC値を前記比較することが第1の比較であり、前記方法が、
前記第2の画像データに基づいて第3のCRC値を判定することと、
前記第2の画像データに関連する第1の変換された画素データに基づいて第4のCRC値を判定することと、
前記第3のCRC値と、前記第2の画像フレームに関連する第5のCRC値との第2の比較を行うことであって、前記第5のCRC値が、前記第2の画像フレームに関連する第3の画像データに基づくものである、前記第2の比較を行うことと、
前記第4のCRC値と、前記第2の画像フレームに関連する第6のCRC値との第3の比較を行うことであって、前記第6のCRC値が、前記第3の画像データに関連する第2の変換された画素データに基づくものである、前記第3の比較を行うことと、
前記第1の比較、前記第2の比較、又は前記第3の比較の少なくとも一つが、対応するCRC値間の差を示すことに応答して、前記警告を生成することと、
をさらに含む、方法。
【請求項21】
請求項16に記載の方法であって、輸送媒体電子制御ユニットが、前記第1のCRC値を前記第2のCRC値と比較するためのものであり、
前記警告を生成することに応答して、ディスプレイパネル上に前記第1の画像フレームを表示しないことと、
前記第1のCRC値が前記第2のCRC値に一致しないことに応答して、前記ディスプレイパネル上に前記第1の画像フレームを表示することと、
をさらに含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本記載は、一般に、画像処理に関し、特に、画像フレームフリーズ検出のための方法及び装置に関する。
【背景技術】
【0002】
電気及び/又は電子システムにおいて安全を保障するために、安全プロトコルが用いられる。例えば、国際標準化機構(ISO)26262は、自動車における電気及び/又は電子システムの機能安全性のための国際標準である。そのような安全プロトコルは、電子的障害に関連するリスク(例えば、危害の発生の頻度と、そうした危害の重大度との組み合わせ)を分析する。電子機器に対応する障害は、ランダム又は系統的なものであり得る。ランダムな障害は、たいてい、システム構成要素の機能性喪失に起因するハードウェア関連の恒久的又は過渡的障害に対応する。系統的障害は、たいてい、設計上の欠陥、誤った仕様、及び/又はソフトウェアにおける目的に適合しないエラーに対応する。そのような安全プロトコルは、輸送媒体(vehicle)安全性を高めるために信号を処理し得る信号処理サブシステム(例えば、ビジョンイメージングサブシステム)に関連する電気的リスクを分析し得る。
【図面の簡単な説明】
【0003】
【
図1】輸送媒体イメージングシステムに関連するデータ処理パイプラインの例示の実装を示す。
【0004】
【
図2】輸送媒体イメージングシステムに関連する画像フレームのフリーズを検出するためのロード/ストアエンジン及びコアを含むハードウェアアクセラレータを含むシステムオンチップ(SOC)の例示の実装を示す。
【0005】
【
図3】
図2のSOCに関連する例示のワークフローを示す。
【0006】
【
図4】
図2のハードウェアアクセラレータの例示の実装を示す。
【0007】
【
図5】
図4のハードウェアアクセラレータの例示の実装に関連する例示のワークフローを示す。
【0008】
【
図6】
図4のハードウェアアクセラレータの例示の実装に関連する別の例示のワークフローを示す。
【0009】
【
図7】
図2のロード/ストアエンジンの例示の実装を示す。
【0010】
【
図8】
図7のロード/ストアエンジンの例示の実装に関連する例示のワークフローを示す。
【0011】
【
図9】
図7のロード/ストアエンジンの例示の実装に関連する別の例示のワークフローを示す。
【0012】
【
図10】
図2のロード/ストアエンジンの別の例示の実装を示す。
【0013】
【0014】
【
図12】
図2のSOCによって処理され得る例示の画像データの概略図を示す。
【0015】
【
図13】
図2のSOCによって実行され得る例示の変換ワークフローを示す。
【0016】
【
図14】フレームフリーズ状況を検出するための、
図2のSOCによって実行され得る例示の機械可読命令、
図10のロード/ストアエンジンの例示の実装、及び/又は、
図11のコアの例示の実装を表すフローチャートである。
【0017】
【
図15】異なる画素処理動作に基づいてフレームフリーズ状況を検出するための、
図2のSOCによって実行され得る例示の機械可読命令、及び/又は、
図11のコアの例示の実装を表すフローチャートである。
【0018】
【
図16】
図10のロード/ストアエンジンの例示の実装を実装するために
図14~
図15の例示の機械可読命令を実行するように構成される例示の処理プラットフォームのブロック図である。
【0019】
【
図17】
図11のコアの例示の実装を実装するために
図15の例示の機械可読命令を実行するように構成される例示の処理プラットフォームのブロック図である。
【0020】
「第1」、「第2」、「第3」等という記述子は、個別に参照され得る複数の要素又は構成要素を識別するために用いられる。それらの使用の文脈に基づいて特に特定又は理解されない限り、そのような記述子は、優先順位又は時間的な順の如何なる意味も負っておらず、説明される例を理解しやすいように複数の要素又は構成要素を個別に参照するための単なる標示である。いくつかの例において、「第1」という記述子は、詳細な説明において或る要素を参照するために用いられ得、一方で、これと同じ要素が、或る請求項において、「第2」又は「第3」などの異なる記述子を用いて参照され得る。そのような例では、そのような記述子は、単に複数の要素又は構成要素を参照しやすくするために用いられている。
【発明を実施するための形態】
【0021】
コンピューティングデバイス及び/又は電気デバイスの複雑さは、技術の進歩と共に著しく増している。そのようなデバイスには、特定の機能を実施するためのハードウェア、ソフトウェア、及び/又はファームウェアが含まれる。ハードウェア、ソフトウェア、及び/又はファームウェアにおいてエラーが生じた場合、そのようなデバイスは、特定の機能を行わない可能性、又は、特定の機能を低い性能で実行する可能性がある。そのような行うことができないこと及び/又は低い実行性能は、関連するシステムの結果に影響を及ぼし得る。例えば、輸送媒体(vehicle)(例えば、空中輸送媒体、陸上輸送媒体等)の自律的動作の実行を促進し得る自動操縦コンピューティングデバイスが、或るセンサから未加工画像データを取得し得、未加工画像データを処理するために、及び/又は、未加工画像データに基づいて画像をレンダリングするために、その未加工画像データをビジョンイメージングサブシステム(VISS)(例えば、視覚的画像処理サブシステム)に送信し得る。自動操縦コンピューティングデバイスがレンダリングされた画像を受け取ると、自動操縦コンピューティングデバイスは、レンダリングされた画像の更なる分析に基づいてナビゲーション決定をし得る。適切なナビゲーション意思決定を保証するため、安全プロトコル(例えば、安全フック)が適所に在り得、電気及び/又は電子システムが(例えば、リスクを低減するために)機能し得ること及び意思決定プロセスのために適切なデータが利用可能であることを保証する。場合によっては、安全プロトコルは、VISSと共に用いられ得る。
【0022】
VISSが、そのようなサブシステムの効率に起因する信号処理プロトコルを行うようにプロセッサと共に利用され得る。例えば、VISSは、入力信号(例えば、画像ソースからのデータ)を処理し、処理された入力信号をプロセッサに送信し得る。場合によっては、プロセッサは、画像データソース(例えば、カメラ)レベルでフレームフリーズ(例えば、画像フレームフリーズ)状況を検出し得る。例えば、フレームフリーズは、カメラが壊れたり損傷したりして、前に生成した出力画像に実質的に類似する出力画像を誤って生成することが原因で生じ得る。
【0023】
場合によっては、プロセッサは、同じ画像データが繰り返しVISSに送信されているという輸送又は送信故障に基づいて、フレームフリーズ状況を検出し得る。場合によっては、プロセッサは、VISSからの現在の画像フレームが、画像データソースによって捕捉される現在の状況を反映していないというVISS処理不良出力に基づいて、フレームフリーズ状況を検出し得る。そのような例では、VISSは、VISSに関連するハードウェア、ソフトウェア、及び/又はファームウェアにおけるエラーが原因で誤った出力を生成し得、同じ又は実質的に類似のレンダリングされた画像の生成につながっていた。
【0024】
場合によっては、フレームフリーズを検出するためにハードウェアアクセラレータが用いられ得る。しかし、そのようなハードウェアアクセラレータは、たいてい、所望の時間期間内でフレームフリーズを検出するためには、データ処理パイプラインにおける画像データソースから遠く離れすぎている(例えば、レイテンシ、処理距離等において遠く離れすぎている)。従って、ハードウェアアクセラレータは、輸送媒体又は他のデバイスによって作動可能な時間期間内にフレームフリーズを検出しない可能性がある。
【0025】
場合によっては、ハードウェアアクセラレータと通信するプロセッサは、現在の画像フレームを前の画像フレームと画素単位で比較することによって、ソフトウェアにおけるフレームフリーズを検出し得る。しかし、フレームフリーズ状況が生じたとしても、単一画素が、種々の要因(例えば、センサノイズ、外部環境的変動等)に起因して画像フレームから画像フレームに反転し得るので、プロセッサは偽陰性を生成する可能性がある。また、そのような比較は、演算損失、及びVISSと画像データソースとの間のインターフェースの読み出し帯域幅の低減となる。演算損失及び読み出し帯域幅の低減は、ソフトウェアにおいて比較を行うために必要とされる演算リソースの強度が原因で生じ得、これは、新たな画像フレームを受け取ることを遅延させ得る。従って、そのような比較は、フレームフリーズ検出におけるレイテンシを増加させ得、関連するシステムの安全性を低減させ得る。
【0026】
本願で説明される例は、画像フレームフリーズを検出する。いくつかの例において、少なくとも一つのプロセッサが、二つの異なる画像フレーム(例えば、シーケンスや順序等で捕捉される二つの異なる画像フレーム)の未加工画像データを比較することによって、画像フレームフリーズを検出する。例えば、未加工画像データは、一つ又は複数のカメラ、一つ又は複数のセンサ等によって生成される及び/又はその他の方式でそれらから取得される画像データに対応し得る。いくつかの例において、少なくとも一つのプロセッサが、二つの異なる画像フレーム(例えば、シーケンス又は順序等で捕捉される二つの異なる画像フレーム)の処理された画像データを比較することによって画像フレームフリーズを検出する。例えば、少なくとも一つのプロセッサは、VISSによって処理された第1の画像フレームとVISSによって処理された第2の画像フレームとを比較することによって画像フレームフリーズを検出し得る。
【0027】
いくつかの例において、少なくとも一つのプロセッサが、未加工画像データの二つの異なるセットに関連するシグネチャを比較することによって画像フレームフリーズを検出する。例えば、少なくとも一つのプロセッサは、(1)或るカメラからの第1の未加工画像データに基づいて生成された第1のシグネチャ(例えば、第1の巡回冗長検査(CRC)シグネチャ)を、(2)当該カメラからの第2の未加工画像データに基づいて生成された第2のシグネチャ(例えば、第2のCRCシグネチャ)と比較し得る。いくつかの例において、少なくとも一つのプロセッサは、処理された画像データ(例えば、VISSによって処理される未加工画像データに基づいた、処理された画像データ)の二つの異なるセットに関連するシグネチャを比較することによって画像フレームフリーズを検出する。例えば、少なくとも一つのプロセッサは、(1)VISSによって処理された第1の処理された画像データに基づいて生成される第1のシグネチャ(例えば、第1のCRCシグネチャ)を、(2)VISSからの第2の処理された画像データに基づいて生成される第2のシグネチャ(例えば、第2のCRCシグネチャ)と比較し得る。
【0028】
いくつかの例において、データ処理パイプラインの開始又はフロントエンド部における画像フレーム比較論理が、画像フレームフリーズを検出する。例えば、ハードウェアアクセラレータが、画像データソースから画像データインターフェースを介して画像データを取得し得る。例示のハードウェアアクセラレータは、ハードウェアアクセラレータの一つ又は複数の出力チャネル上で、CRCシグネチャ捕捉など、シグネチャ捕捉アルゴリズム又はスキーマを実行し得る。例示のハードウェアアクセラレータは、シグネチャ捕捉アルゴリズムを実行して、新たな画像フレームが処理されるまで保持され得る固有シグネチャを生成し得る。
【0029】
いくつかの例において、ハードウェアアクセラレータは、ハードウェアアクセラレータの出力チャネルによって送信されるデータに基づいて画像データ統計値を計算し及び/又はその他の方式で判定する。いくつかの例において、少なくとも一つのプロセッサは、画像データ統計値に関連するシグネチャを比較することによって画像フレームフリーズを検出し得る。例えば、少なくとも一つのプロセッサは、(1)ハードウェアアクセラレータの出力チャネルによって送信される第1のデータに関連する第1の画像データ統計値に基づいて生成される第1のシグネチャ(例えば、第1のCRCシグネチャ)を、(2)出力チャネルによって送信される第2のデータに関連する第2の画像データ統計値に基づいて生成される第2のシグネチャ(例えば、第2のCRCシグネチャ)と比較し得る。
【0030】
いくつかの例において、ハードウェアアクセラレータは、一つ又は複数の変換動作(例えば、近隣認識(neighborhood aware)画素変換、又はセンサス変換等)を実行することによって、画像データ(例えば、未加工画像データ、処理された画像データ等)を変換する。いくつかの例において、少なくとも一つのプロセッサは、変換された画像データに関連するシグネチャを比較することによって画像フレームフリーズを検出し得る。例えば、少なくとも一つのプロセッサは、(1)ハードウェアアクセラレータの出力チャネルによって送信される第1の変換された画像データに基づいて生成される第1のシグネチャ(例えば、第1のCRCシグネチャ)を、(2)出力チャネルによって送信される第2の変換された画像データに基づいて生成される第2のシグネチャ(例えば、第2のCRCシグネチャ)と比較し得る。
【0031】
有利にも、例示のハードウェアアクセラレータは、画像フレーム全体(例えば、2メガバイト(MB)、3MB等)ではなく、CRCシグネチャ(例えば、32ビットCRCシグネチャ)を比較することによって、代替の技法と比較して、一つ又は複数のプロセッサの処理帯域幅を増加させ得、フレームフリーズを検出するためのレイテンシを短縮させ得る。有利にも、例示のハードウェアアクセラレータは、代替の技法と比較して、偽陰性の発生を低減し得、又はいくつかの例においてこれをなくし得る。例えば、ハードウェアアクセラレータは、一つ又は複数の画像データ統計値、変換された画像データ等及び/又はそれらの組み合わせに基づいて生成されるCRCシグネチャを比較することによって、偽陰性の発生を低減し及び/又は他の場合はなくし得る。
【0032】
図1は、例示の輸送媒体イメージングシステム102に関連するデータ処理パイプライン100の例示の実装を示す。輸送媒体イメージングシステム102は、フロントビューカメラシステム、リアビューカメラシステム(例えば、バックアップカメラシステム)、及び/又はサイドビューカメラシステムを含め、輸送媒体(例えば、自動車、飛行機、船等)の一つ又は複数のカメラシステムに対応し得る。輸送媒体は、例えば、空中操縦をすること(例えば、高度及び/又は速度を上昇又は低減させること、飛行機を方向転換すること等)、陸上操縦をすること(例えば、路面上を前進すること、路面上で方向転回をすること等)等の輸送媒体操縦を行うために、一つ又は複数のカメラシステムを用い得る。いくつかの例において、輸送媒体イメージングシステム102は、自律輸送媒体に含まれ、及び/又はその他の方式で自律輸送媒体に関連する。例えば、自律輸送媒体は、輸送媒体イメージングシステム102を用いて、当該輸送媒体の前又は側部のオブジェクト又は輸送媒体に関連して、当該輸送媒体の方向及び/又は速度を調節し得る。いくつかの例において、或る自律輸送媒体は、別のオブジェクト又は輸送媒体に向かって後退するなど、或るオブジェクトに関連して輸送媒体操縦(例えば、自律輸送媒体操縦)を行うために、バックアップカメラシステムを用いる。
【0033】
図1の輸送媒体イメージングシステム102は、画像を捕捉し、捕捉された画像を、処理のためにデータ処理パイプライン100に送信するための、データ処理パイプライン100に結合される例示の画像データソース104を含む。画像データソース104は、画像(例えば、モノラル画像、一つ又は複数の画像フレーム、一つ又は複数のビデオフレーム等)又は輸送媒体の周囲のライブ映像を捕捉するための単一カメラ(例えば、単眼カメラ、ビデオカメラ等)であり得る。いくつかの例において、画像データソース104は、画像(例えば、ステレオ画像)又は輸送媒体の周囲のライブ映像を捕捉するための二つ又はそれ以上のカメラに対応する。代替として、画像データソース104は、サーマルイメージングカメラ、赤外線カメラ等などの任意の他の画像捕捉デバイスに対応し得る。
【0034】
図1の輸送媒体イメージングシステム102は、画像データソース104からの画像フレーム(例えば、未加工画像データ、画像データ等)を変換し、翻訳し、及び/又はその他の方式で処理して、第1の例示の出力画像データ106及び/又は第2の例示の出力画像データ108を生成するためのデータ処理パイプライン100を含む。例えば、第1の出力画像データ106は、輸送媒体の動作に影響を及ぼすように例示の輸送媒体電子制御ユニット(ECU)110に送信され得る。他の例において、第2の出力画像データ108は、輸送媒体に含まれる及び/又はその他の方式で輸送媒体に関連する一つ又は複数のディスプレイ又はモニタ上にレンダリングされた画像を表示するために、例示のディスプレイパネル(例えば、輸送媒体ディスプレイパネル)112に送信され得る。
【0035】
図1のデータ処理パイプライン100は、画像データソース104に結合される例示の画像パイプ114を含む。
図1において、画像パイプ114は、ソフトウェア又はファームウェアを実行することなく対応する動作を行うように構成されるハードウェア回路(例えば、ディスクリート及び/又は集積アナログ及び/又はデジタル回路要素、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、フィールドプログラマブル論理デバイス(FPLD)、特定用途向け集積回路(ASIC)、コンパレータ、演算増幅器(オペアンプ)、論理回路等)に対応し得るが、その他の構造も同様に適切である。
【0036】
データ処理パイプライン100は、画像データソース104からの例示の入力画像データ116を処理して、例示の処理された画像フレーム117を生成するための画像パイプ114を含む。例えば、入力画像データ116は、画像データソース104によって捕捉される、画素データなどの画像データに対応し得る。いくつかの例において、画像パイプ114は、画像データソース104から入力画像データ116を取得し、入力画像データ116から対象のデータ又は情報を抽出する。例えば、画像パイプ114は、入力画像データ116に基づいて画像データソース104によって捕捉された画像フレームの画素に関連する値を判定し得る。そのような例では、入力画像データ116は、各画素毎に定義の赤、緑、及び青色成分に対応する画素値を備える、RGB画像又はRGB画像フレームなどの画像フレームに対応し得る。他の例において、入力画像データ116は、輝度、色調、及び/又は彩度などの画像特性に対応する値を含み得る。さらに他の例において、入力画像データ116は、対応する値を有する画像データパラメータのセットを含み得、画像データパラメータは、多くの行(例えば、画像フレーム高さ)、多くの列(例えば、画像フレーム幅)、多くの帯域、多くのビット毎ピクセル(bpp)、ファイルタイプ等を含み得る。付加的に又は代替として、画像データソース104からの入力画像データ116は、ポータブルビットマップ(PBM)、ポータブル画素マップ(PPM)等などの任意の他の画像フォーマットであり得、及び/又は、バイナリ値、16進値、ASCII文字等、及び/又は、それらの組み合わせなどの任意の他のデータ表現を用いて表され得る。
【0037】
いくつかの例において、画像パイプ114は、入力画像データ116に関連する一つ又は複数のパラメータ(例えば、診断パラメータ、画像データパラメータ、画像データ統計値、画像パイプ統計値等)を判定し得る。例えば、画像パイプ114は、新たな画像フレームが処理されるまで保持され得る固有シグネチャを生成するために、画像パイプ114の一つ又は複数の出力チャネル上で、巡回冗長検査(CRC)シグネチャ捕捉など、シグネチャ捕捉アルゴリズム又はスキーマを実行し得る。そのような例では、画像パイプ114は、一つ又は複数のCRCシグネチャを、更なる処理のため、例示の分析パイプ118又は例示のディスプレイコントローラ120の少なくとも一つに送信し得る。例えば、分析パイプ118は、一つ又は複数のCRCシグネチャに基づいてフレームフリーズ状況を検出し及び/又はその他の方式で判定する。
【0038】
図1のデータ処理パイプライン100は、画像パイプ114と輸送媒体ECU110とに結合される分析パイプ118を含む。
図1において、分析パイプ118は、ソフトウェア又はファームウェアを実行することなく対応する動作を行うように構成される、一つ又は複数のプログラマブルプロセッサ、一つ又は複数のプログラマブルコントローラ、及び/又は一つ又は複数のハードウェア回路に対応し得るが、その他の構造も同様に適切である。
【0039】
データ処理パイプライン100は、処理された画像フレーム117を画像パイプ114から取得するための分析パイプ118を含み、及び、コンピュータビジョンタスク、ディープラーニングタスク(例えば、畳み込みニューラルネットワーク(CNN)タスク)等など、処理された画像フレーム117に対して付加的な演算タスクを実行する。いくつかの例において、分析パイプ118は、画像パイプ114からの処理された画像フレーム117に基づいて第1の出力画像データ106を生成する。例えば、第1の出力画像データ106は、処理された画像フレーム117を含み得、及び/又はその他の方式でこれに対応し得る。他の例において、第1の出力画像データ106は、入力画像データ116に関連するフレームフリーズ状況を示す警告、通知等を含み得、及び/又はその他の方式でこれに対応し得る。さらに他の例において、第1の出力画像データ106は、入力画像データ116に関連する一つ又は複数のパラメータ(例えば、診断パラメータ、画像データ統計値、画像パイプ統計値等)を含み得、及び/又はその他の方式でこれに対応し得る。
【0040】
図1の輸送媒体ECU110は分析パイプ118に結合される。いくつかの例において、輸送媒体ECU110は、第1の出力画像データ106に基づいて輸送媒体コマンド(例えば、ステアリングホイールの位置の調節、輸送媒体の速度の調節等)を生成する。例えば、輸送媒体ECU110は、フレームフリーズ状況が検出されたことを判定することに応答して、輸送媒体の一つ又は複数のシステムに適切なアクションを取るように命令し得る。
図1において、輸送媒体ECU110は、輸送媒体の一つ又は複数の構成要素(例えば、電気、機械等)、電気サブシステム、電気システム等を監視及び/又は制御する埋め込みコントローラ又はシステムに対応し得る。
【0041】
図1のデータ処理パイプライン100は、画像パイプ114とディスプレイパネル112とに結合されるディスプレイコントローラ120を含む。
図1において、ディスプレイコントローラ120は、ソフトウェア又はファームウェアを実行することなく対応する動作を行うように構成される、一つ又は複数のプログラマブルプロセッサ、一つ又は複数のプログラマブルコントローラ、及び/又は一つ又は複数のハードウェア回路に対応し得るが、その他の構造も同様に適切である。
【0042】
いくつかの例において、ディスプレイコントローラ120は、画像パイプ114からのデータに基づいて第2の出力画像データ108を生成する。例えば、第2の出力画像データ108は、ディスプレイパネル112上に表示されるべき、ディスプレイコントローラ120によってレンダリングされた画像に対応し得る。例えば、ディスプレイパネル112は、ディスプレイデバイス(例えば、発光ダイオード(LED)ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、液晶ディスプレイ(LCD)、インプレーススイッチング(IPS)ディスプレイ、タッチスクリーン等)に対応し得る。代替として、輸送媒体イメージングシステム102は、二つ以上のディスプレイパネル112を含み得る。他の例において、ディスプレイコントローラ120は、入力画像データ116に関連するフレームフリーズ状況を示す警告、通知等を含むために第2の出力画像データ108を判定し得る。そのような例では、ディスプレイコントローラ120は、フレームフリーズ状況が解決されるまで画像又はビデオをユーザに表示しないようにディスプレイパネル112に命令し得る。
【0043】
有利にも、画像パイプ114においてフレームフリーズ状況を検出することによって、データ処理パイプライン100におけるその後の地点(例えば、分析パイプ118、ディスプレイコントローラ120等)と比較して、レイテンシが、第1の例示の検出時間122から第2の例示の検出時間124に短縮され得る。
図1において、第1の検出時間122は、画像データソース104によって画像フレームを捕捉することから始まり、捕捉された画像フレームをディスプレイパネル112において表示することで終了する第1の時間期間に対応し得る。
図1において、第2の検出時間124は、第1の時間期間より短い第2の時間期間に対応し得、ここで、第2の時間期間は、画像フレームを捕捉することで始まり、捕捉された画像フレームを処理することを画像パイプ114が終えるときに終了する。例えば、
図1のデータ処理パイプライン100は、代替の技法と比較して、一層少ない時間で及び低減された演算リソースを用いて、捕捉された画像フレームに関連するフレームフリーズ状況を検出し得る。
【0044】
図2は、輸送媒体イメージングシステムに関連する画像フレームのフリーズを検出するための例示のフレームフリーズ検出システム200を示す。フレームフリーズ検出システム200は、ハードウェアアクセラレータ(HWA)204の例示の実装を含むシステムオンチップ(SOC)202の例示の実装を含み、ハードウェアアクセラレータ(HWA)204は、ロード/ストアエンジン(LSE)206と一つ又は複数のコア208とを含む。LSE206は、コア208のためのデータアンパッキング及びパッキングを行い及び/又はその他の方式で実行し、その他のインターフェースデータ処理機能を提供する。例えば、LSE206は、LSE論理回路、LSEハードウェア、又はハードウェア論理等に対応し得る。コア208は、LSE206によって処理されるデータに対してアルゴリズム又はコア論理を実行する。例えば、コア208は、そうしたアルゴリズムを実行するために、一つ又は複数のコアを含み得、及び/又はその他の方式で、一つ又は複数のコア論理回路、コアハードウェア、又はハードウェア論理等に対応し得る。
図2のSOC202は、コンパクトなフォーマットにコンピュータ又はその他の電子システムの構成要素を組み込む一つ又は複数の集積回路に対応し得る。例えば、SOC202は、プログラマブルプロセッサ、ハードウェア論理、並びにハードウェア周辺機器及びインターフェースの組み合わせに対応し得る。
【0045】
図2の図示される例において、SOC202は、
図1の画像データソース104から
図1の入力画像データ116を取得する。いくつかの例において、SOC202は、例示のディスプレイパネル210に、入力画像データ116に基づいてディスプレイコントローラ228によってレンダリングされた画像を表示するように命令する。いくつかの例において、SOC202は、例示のダブルデータレート(DDR)メモリ212に出力画像データをストアする。例えば、DDRメモリ212は、DDR、DDR2、DDR3、DDR4、モバイルDDR(mDDR)等であり得る。いくつかの例において、SOC202は、フレームフリーズ状況を検出したことを示す警告を、一つ又は複数の例示のホストデバイス214A~Bに対して生成する。
【0046】
図2の図示される例において、SOC202は、HWA204と例示のデータ動きファブリック218とに結合される例示の画像データインターフェース(I/F)216を含む。いくつかの例において、画像データインターフェース216は、画像データソース104から入力画像データ116を取得する。画像データインターフェース216は、入力画像データ116を取得するために双方向インターフェースを実装するための一つ又は複数の論理回路に対応し得る。例えば、画像データインターフェース216は、インターインテグレイテッド回路(I2C)バス、汎用非同期受信送信機(UART)バス、シリアル周辺インターフェース(SPI)バス等の動作を促進し、及び/又はその他の方式でこれらを実装する一つ又は複数の論理回路に対応し得る。
【0047】
図2の図示される例において、SOC202は、画像データインターフェース216とデータ動きファブリック218とに結合されるHWA204を含む。HWA204は、一つ又は複数のハードウェアアクセラレータに対応し得る。例えば、HWA204は、一つ又は複数のハードウェア回路、ハードウェア論理、ハードウェア実装の状態機械等、及び/又はそれらの組み合わせを含み得、及び/又はその他の方式でそれらに対応し得る。
【0048】
いくつかの例において、HWA204は、画像データインターフェース216から画像データ(例えば、画像データパラメータ、画素値等)を取得し、HWA204の一つ又は複数の出力チャネル(例えば、出力データチャネル)のためのCRCシグネチャ(例えば、固有CRCシグネチャ)を判定する。例えば、LSE206は、画像データを取得し、その画像データをコア208に送信し得る。コア208は、画像データに基づいて画像データ統計値を計算し及び/又はその他の方式で判定し得る。例えば、コア208は、画素値のセットのための最小画素値、画素値のセットのための最大画素値、画素値の合計、二乗値の合計等などの一つ又は複数の画像データ統計値を判定し得る。そのような例では、コア208は、画素値のセット又は他の画像関連データに対して近隣認識画素変換(例えば、センサス変換等)を実行することに基づいて、一つ又は複数の画像データ統計値を判定し得る。例えば、コア208は、
図12において後述される画像データに基づいて、
図13に関連して後述される変換された画素データ(例えば、センサス変換された画素データ)を生成し得る。コア208は、一つ又は複数の出力チャネル上で、画像データ統計値をLSE206に送信し得る。LSE206は、一つ又は複数の出力チャネル上でCRCシグネチャを計算し得る。いくつかの例において、LSE206は、LSE206に含まれるメモリにCRCシグネチャをストアする。いくつかの例において、LSE206は、データ動きファブリック218を介するストレージのため、DDRメモリ212にCRCシグネチャを送信する。
【0049】
いくつかの例において、コア208は、前に取得された及び/又はその他の方式で処理された画像フレームに対応する画像データに基づいて、一つ又は複数の画像データ統計値を判定する。例えば、コア208は、連続する画像フレームのためのフローベクトル又はオプティカルベクトルを判定し得る。そのような例では、コア208は、(1)第1の画像フレームにおける画素値の第1のロケーションに基づく第1の画像データ統計値、及び(2)第2の画像フレームにおける画素値の第2のロケーションに基づく第2の画像データ統計値を判定し得る。いくつかの例において、LSE206は、第1の画像データ統計値及び第2の画像データ統計値に基づいてCRCシグネチャを判定し得る。そのような例では、LSE206、ホストデバイス214A~B等の一方又は双方が、第1の画像フレームに対して画素が第2の画像フレームにおいてどのように移動したかを判定し得る。
【0050】
いくつかの例において、コア208は、深度情報に基づいて一つ又は複数の画像データ統計値を判定する。例えば、
図1のカメラ104は、ステレオ又は立体カメラであり得る。そのような例では、コア208は、(1)第1の時間においてステレオカメラによって捕捉される第1の画像フレームに関連する第1の画像データに基づいて、一つ又は複数の第1の画像データ統計値を、及び(2)第1の時間においてステレオカメラによって捕捉される第2の画像フレームに関連する第2の画像データに基づいて、一つ又は複数の第2の画像データ統計値を判定し得る。いくつかの例において、LSE206は、一つ又は複数の第1の画像データ統計値及び/又は一つ又は複数の第2の画像データ統計値に基づいてCRCシグネチャを判定し得る。
【0051】
図2の図示される例において、SOC202は、データ動きファブリック218に結合される例示のデジタル信号プロセッサ(DSP)220を含む。いくつかの例において、DSP220は、オブジェクト検出及び/又は分類などのコンピュータビジョン処理のためのタスクを実行し、及び/又は、その他の方式でそれらのためのサポートを提供する。
【0052】
図2の図示される例において、SOC202は、SOC202の種々のハードウェア構成要素(例えば、HWA204、画像データインターフェース216、DSP220等)間のデータ伝送のタイミングを調整するためのデータ動きファブリック218を含む。
図2において、データ動きファブリック218は、相互接続である。例えば、データ動きファブリック218は、ダイレクトメモリアクセス(DMA)コントローラを含み得、及び/又はその他の方式でこれに対応し得る。他の例において、DMAコントローラは、データ動きファブリック218の外部にあり得、及び/又はその他の方式でこれに結合され得る。いくつかの例において、データ動きファブリック218によって、SOC202のハードウェア構成要素は、例示のSOCランダムアクセスメモリ(RAM)222や、例示のDDRメモリインターフェース224を介してDDRメモリ212等にアクセスし得る。
【0053】
図2の図示される例において、SOC RAM222はデータ動きファブリック218に結合される。SOC RAM222は、同期ダイナミックランダムアクセスメモリ(SDRAM)、ダイナミックランダムアクセスメモリ(DRAM)、RAMBUS(登録商標)ダイナミックランダムアクセスメモリ(RDRAM(登録商標))等など、揮発性メモリに対応し得る。
図2において、DDRメモリインターフェース224は、データ動きファブリック218及びDDRメモリ212に結合される。DDRメモリインターフェース224は、データ動きファブリック218とDDRメモリ212との間の双方向インターフェースを促進するための一つ又は複数のハードウェア回路、論理回路等に対応し得る。
【0054】
図2の図示される例において、SOC202は、データ動きファブリック218に結合される例示のビジョンプロセッサ226を含む。
図2において、ビジョンプロセッサ226は、勾配演算、方位ビニング、ヒストグラム正規化等などのコンピュータビジョン処理のために調整されるベクトルプロセッサに対応し得る。
【0055】
図2の図示される例において、例示のディスプレイコントローラ228が、データ動きファブリック218及びディスプレイパネル210に結合される。ディスプレイコントローラ228は、
図1のディスプレイコントローラ120に対応し得る。ディスプレイパネル210は、
図1のディスプレイパネル112に対応し得る。例えば、ディスプレイコントローラ228は、レンダリングされた画像データをディスプレイパネル210に送信して、ディスプレイパネル210上に画像を表示し得る。
【0056】
図2の図示される例において、SOC202は、第1の例示のホストデバイス214Aと、例示のホストデバイスインターフェース230とを含む。
図2において、ホストデバイスインターフェース230は、データ動きファブリック218と第1のホストデバイス214Aとに結合される。
図2において、第2の例示のホストデバイス214Bが、SOC202の外部にある。
図2において、第2のホストデバイス214Bは、ホストデバイスインターフェース230を介してSOC202に結合される。ホストデバイスインターフェース230は、データ動きファブリック218とホストデバイス214A~Bの一つ又は複数との間のデータ伝送を促進するために双方向インターフェースを実装するための一つ又は複数の論理回路に対応し得る。
図2において、ホストデバイス214A~Bの一方又は両方が、一つ又は複数のプログラマブルプロセッサ、一つ又は複数のプログラマブルコントローラ等に対応し得る。
【0057】
SOC202を実装する例示の方式を
図2に図示したが、
図2に図示される要素、プロセス、及び/又はデバイスの一つ又は複数が、組み合わされ、分割され、再配置され、省かれ、なくされ、及び/又は任意の他の方式で実装され得る。また、
図2の例示のHWA204、例示のLSE206、例示のコア208、例示の画像データインターフェース216、例示のデータ動きファブリック218、例示のDSP220、例示のSOC RAM222、例示のDDRメモリインターフェース224、例示のビジョンプロセッサ226、例示のディスプレイコントローラ228、例示のホストデバイスインターフェース230、及び/又は、より一般的には、例示のSOC202は、ハードウェア、ソフトウェア、ファームウェアによって、及び/又は、ハードウェア、ソフトウェア、及び/又はファームウェアの任意の組み合わせによって実装され得る。このように、例えば、例示のHWA204、例示のLSE206、例示のコア208、例示の画像データインターフェース216、例示のデータ動きファブリック218、例示のDSP220、例示のSOC RAM222、例示のDDRメモリインターフェース224、例示のビジョンプロセッサ226、例示のディスプレイコントローラ228、例示のホストデバイスインターフェース230、及び/又は、より一般的には、例示のSOC202の任意のものが、一つ又は複数のアナログ又はデジタル回路、論理回路、プログラマブルプロセッサ、プログラマブルコントローラ、グラフィクス処理ユニット(GPU)、DSP、ASIC、PLD、及び/又はFPLDによって実装され得る。純粋なソフトウェア及び/又はファームウェア実装を網羅するように本特許の装置又はシステムクレームの任意のものを解釈する際、例示のHWA204、例示のLSE206、例示のコア208、例示の画像データインターフェース216、例示のデータ動きファブリック218、例示のDSP220、例示のSOC RAM222、例示のDDRメモリインターフェース224、例示のビジョンプロセッサ226、例示のディスプレイコントローラ228、及び/又は例示のホストデバイスインターフェース230の少なくとも一つが、ソフトウェア及び/又はファームウェアを含め、不揮発性メモリ(例えば、読み出し専用メモリ(ROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、フラッシュメモリ等)、揮発性メモリ(例えば、SDRAM、DRAM、RDRAM(登録商標)等、及び/又は任意の他のタイプのRAMデバイス)等などの非一時的コンピュータ可読ストレージデバイス又はストレージディスクを含むことが、本明細書において明確に定義される。また、
図2の例示のSOC202は、
図2において図示したものに加えて又はそれらの代わりに、一つ又は複数の要素、プロセス、及び/又はデバイスを含み得、及び/又は、図示される要素、プロセス、及びデバイスの二つ以上の任意のもの又は全てを含み得る。本明細書で用いられるように、その変形を含む「通信」という表現は、直接通信、及び/又は、一つ又は複数の媒介構成要素を介する間接通信を包含し、直接物理的(例えば、有線)通信及び/又は継続的な通信を要求せず、むしろ付加的に、周期的間隔、スケジュールされた間隔、非周期的間隔、及び/又は一回限りの事象における選択的通信を含む。
【0058】
図3は、
図2のSOC202に関連する例示のワークフロー300a、300bを示す。
図3において、ワークフロー300a、300bは、第1の例示のワークフロー300a及び第2の例示のワークフロー300bを含む。
図3において、第1のワークフロー300aは、動作1A、2A、3A、及び4Aに対応する。
図3において、第2のワークフロー300bは、動作1B及び2Bに対応する。
【0059】
第1のワークフロー300aにおいて、第1の動作1Aの間、入力画像データ116はDDRメモリ212にストアされる。例えば、画像データインターフェース216は、画像データソース104から入力画像データ116を取得する。そのような例では、画像データインターフェース216は、(1)入力画像データ116を送信するデータパケットの送信レイヤから未加工画像データを抽出することによって入力画像データ116を処理し得、及び(2)未加工画像データをデータ動きファブリック218に送信し得る。これに応答して、データ動きファブリック218は、DDRメモリインターフェース224を介してDDRメモリ212に未加工画像データを送信する。
【0060】
第1のワークフロー300aにおいて、第2の動作2Aの間、未加工画像データは、HWA204によって、DDRメモリ212から、データ動きファブリック218及びDDRメモリインターフェース224を介して取り出される。第1のワークフロー300aの第3の動作3Aの間、コア208は、一つ又は複数の画像データ統計値を判定し得、及び/又は、未加工画像データに対するセンサス変換など、例示の変換動作(例えば、画像データ変換動作)を実行することによって、未加工画像データを、2次元(2D)画像データから別のドメインへ変換して、変換された画素データ(例えば、センサス変換データ)を生成し得る。
【0061】
第3の動作3Aの間、LSE206は、(1)未加工画像データ、(2)一つ又は複数の画像データ統計値、又は(3)変換された画素データ、のうちの少なくとも一つに基づいてCRCシグネチャを判定し得る。例えば、LSE206は、未加工画像データ、一つ又は複数の画像データ統計値のそれぞれ、及び/又は、変換された画素データについて、CRCシグネチャ値を判定し得る。第3の動作3Aの間、HWA204は、未加工画像データ、一つ又は複数の画像データ統計値、変換された画素データ、及び/又はCRCシグネチャ値を、データ動きファブリック218に送信する。第3の動作3Aの間、データ動きファブリック218は、未加工画像データ、一つ又は複数の画像データ統計値、変換された画素データ、及び/又はCRCシグネチャ値を、DDRメモリインターフェース224を介してDDRメモリ212に送信する。代替として、データ動きファブリック218は、未加工画像データ、一つ又は複数の画像データ統計値、変換された画素データ、及び/又はCRCシグネチャ値を、ホストデバイスインターフェース230を介してホストデバイス214A~Bの一方又は両方に送信し得る。例えば、ホストデバイス214A~Bの一方又は両方が、CRCシグネチャ値及び/又は一つ又は複数の画像データ統計値に基づいてフレームフリーズ状況を検出し得る。そのような例では、ホストデバイス214A~Bの一方又は両方は、二つの連続する又はシーケンシャルな画像フレームのためのCRCシグネチャ値及び/又は一つ又は複数の画像データ統計値に基づいてフレームフリーズ状況を検出し得る。代替として、ホストデバイス214A~Bの一方又は両方が、ホストデバイスインターフェース230、データ動きファブリック218、及びDDRメモリインターフェース224を介して、DDRメモリ212からCRCシグネチャ値及び/又は一つ又は複数の画像データ統計値を取得し得る。
【0062】
第1のワークフロー300aにおいて、第4の動作4Aの間、DDRメモリ212からの未加工画像データは、DDRメモリインターフェース224、データ動きファブリック218、及びディスプレイコントローラ228を介してディスプレイパネル210に送信される。例えば、ディスプレイパネル210は、画像データソース104によって捕捉され、ディスプレイコントローラ228によってレンダリングされる、一つ又は複数の画像フレームを表示し得る。
【0063】
第2のワークフロー300bにおいて、第1の動作1Bの間、入力画像データ116は、DDRメモリ212にストアされるより前にHWA204によって処理される。例えば、画像データインターフェース216は、入力画像データ116を取得し、入力画像データ116から未加工画像データを抽出し、その未加工画像データを処理して、処理された画像データを生成し得る。第1の動作1Bの間、HWA204は、コア208に、一つ又は複数の画像データ統計値を判定するように、及び/又は、近隣認識画素変換などの例示の変換動作を実行して変換された画素データを生成することによって、処理された画像データを2D画像データから別のドメインに変換するように命令し得る。
【0064】
第1の動作1Bの間、HWA204は、LSE206に、(1)処理された画像データ、(2)一つ又は複数の画像データ統計値、又は(3)変換された画素データ、のうちの少なくとも一つに対してCRCシグネチャを判定するように命令し得る。HWA204は、処理された画像データ、一つ又は複数の画像データ統計値、変換された画素データ、及び/又はCRCシグネチャ値を、データ動きファブリック218及びDDRメモリインターフェース224を介してDDRメモリ212に送信し得る。いくつかの例において、LSE206は、LSE206にCRCシグネチャをストアし得、このCRCシグネチャを、前に生成された及び/又はストアされたCRCシグネチャ(例えば、LSE206によって前に生成されたCRCシグネチャ、LSE206に前にストアされたCRCシグネチャ等)と比較することによって、フレームフリーズ状況を検出し得る。有利にも、第2のワークフロー300bは、DDRメモリ212に入力画像データ116をストアする前に、SOC202のフロントエンドにおいて画像データ統計値及び/又はCRCシグネチャ値を判定することによって、
図3の第1のワークフロー300aと比較して、フレームフリーズ状況の検出時間を低減させる。
【0065】
図4は、
図2~
図3のHWA204の例示の実装を示す。HWA204は例示のHWA VISS402を含み、HWA VISS402はLSE206及びコア208を含む。HWA VISS402は、視覚的イメージング処理関連の演算及び/又はコンピューティングタスクを実行するように構成されるHWA204のサブシステム(例えば、一つ又は複数のハードウェア及び/又は論理回路)である。
【0066】
図4のHWA VISS402は、
図2~
図3の画像データインターフェース216から入力画像データを取得するための、
図2~
図3のLSE206を含む。
図4のHWA VISS402は、LSE206から入力画像データを取得するためのコア208を含む。コア208は、画像データ統計値などのパラメータを計算し及び/又はその他の方式で判定する。コア208は、LSE206を呼び出して、画像データ統計値の各々のためのCRCシグネチャ値を計算し及び/又はその他の方式で判定するために、画像データ統計値をLSE206に送信し得る。
【0067】
図4のLSE206は、LSE206の一つ又は複数の出力チャネルのためのCRCシグネチャ値を判定するための例示のCRC論理回路404を含む。例えば、CRC論理回路404は、処理された画像データを送信する第1の出力チャネル上で第1のCRCシグネチャ値を、画像データ統計値を送信する第2の出力チャネル上で第2のCRCシグネチャ値を、変換された画素データを送信する第3の出力チャネル上で第3のCRCシグネチャ値等及び/又はそれらの組み合わせを計算し得る。
図4において、CRC論理回路404は、32ビットのデータサイズを有するCRCシグネチャ値を判定する。代替として、CRC論理回路404は、任意の他のデータサイズを有するCRCシグネチャ値を判定し得る。いくつかの例において、CRC論理回路404は、下記の32ビットCRC多項式に基づいて32ビットCRCシグネチャ値を判定し得る。
【0068】
X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1
代替として、任意の他のCRC多項式が用いられてもよい。
【0069】
いくつかの例において、CRC論理回路404は、画像フレーム全体が処理されるまで、CRCシグネチャ値を更新及びストアし得る。画像フレーム全体が処理されることに応答して、CRC論理回路404は、SRAMインターフェース408を介してSRAM410にCRCシグネチャ値をストアし得る。いくつかの例において、
図2~
図3のホストデバイス214A~Bは、SRAMインターフェース408、HWA DMA416、
図2~
図3のデータ動きファブリック218、及び
図2~
図3のホストデバイスインターフェース230を介して、SRAM410からCRCシグネチャ値を取得する。
【0070】
図4のCRC論理回路404は、第1の画像フレームのためのCRCシグネチャ値を判定し得、いくつかの例において、このCRCシグネチャ値を、第2の画像フレームのための前に計算されたCRCシグネチャ値、又は前の画像フレームと比較し得る。CRCシグネチャ値が、前に計算されたCRCシグネチャ値と同じであるとき、フレームフリーズ検出状況が検出され得る。この同じであるということは、
図1~
図3の画像データソース104から画像を捕捉すること及び/又はそれを処理することに関連するソフトウェア、ハードウェア、及び/又はファームウェアにおけるエラーを示す。
【0071】
図4の図示される例において、HWA204は、HWA VISS402に結合される例示のHWAコンフィギュレータ406を含む。代替として、HWA204は、HWAコンフィギュレータ406を含まなくてもよい。例えば、HWA204は、HWAコンフィギュレータ406に結合されてもよい。
【0072】
いくつかの例において、HWAコンフィギュレータ406は、LSE206の一つ又は複数の出力チャネル上でCRC値を計算し及び/又はその他の方式で演算するようにLSE206を構成する。例えば、HWAコンフィギュレータ406は、CRC計算のための出力チャネルの一つ又は複数を選択することによってLSE206を構成し得る。いくつかの例において、こうした一つ又は複数の出力チャネルは、処理された画像データチャネルに対応する。例えば、一つ又は複数の出力チャネルは、ルマ(luma)データに対応する第1の出力チャネル、クロミナンス又はクロマ(chroma)データに対応する第2の出力チャネル、RBGデータに対応する第3の出力チャネル等を含み得、ここで、出力チャネルの一つ又は複数は、8バイト、12バイト等のデータサイズを有する。
【0073】
いくつかの例において、HWAコンフィギュレータ406は、一つ又は複数のタイプの画像データ統計値を計算し及び/又はその他の方式で演算するようにコア208を構成する。例えば、HWAコンフィギュレータ406は、画素のセットのための最大値(例えば、値が最も大きい最大値)に対応する第1の画像データ統計値を計算するようにコア208の第1のコアを構成する。他の例において、HWAコンフィギュレータ406は、画素値のセットのための最小値(例えば、値が最も小さい最小値)に対応する第2の画像データ統計値を判定するようにコア208の第2のコアを構成し得る。いくつかの例において、ハードウェアコンフィギュレータ406は、
図2~
図3のホストデバイス214A~Bからのコマンド、構成、命令等に基づいてLSE206又はコア208の少なくとも一つを構成し得る。
【0074】
図4の図示される例において、HWA204は、HWA VISS402に結合される例示のスタティックRAM(SRAM)インターフェース408と例示のSRAM410とを含む。
図4において、SRAM410は、一つ又は複数のSRAMデバイスに対応し得る。代替として、SRAM410は、任意の他のタイプのメモリであり得る。
図4において、SRAMインターフェース408は、SRAM410に対するデータの読出し及び/又は書き込みを促進するように双方向インターフェースを実装するための一つ又は複数の論理回路に対応し得る。例えば、SRAMインターフェース408は、メモリコントローラの動作を促進する及び/又はその他の方式でメモリコントローラを実装する一つ又は複数の論理回路に対応し得る。
【0075】
図4の図示される例において、HWA204は、HWAサブシステムA、HWAサブシステムB、及びHWAサブシステムCを含む例示のHWAサブシステム412A~Cを含む。いくつかの例において、HWAサブシステム412A~Cは、HWA VISS402のコピー又はインスタンスである。いくつかの例において、HWAサブシステム412A~Cの一つ又は複数は、HWAサブシステム412A~Cの他ものとは異なる。例えば、HWAサブシステム412A~Cの一つ又は複数は、HWA VISS402のLSE206及びコア208を含み得る。代替として、HWAサブシステム412A~Cの一つ又は複数は、HWA VISS402とは異なり得る。例えば、HWAサブシステム412A~Cの一つ又は複数は、スケーリング、歪み補正等など、画像処理関連の機能を行い及び/又はその他の方式で実行し得る。
【0076】
HWAサブシステム412A~Cは、各々、SRAMインターフェース408と例示のHWAスレッドスケジューラ(HTS)414とに結合される。HTS414は、HWAサブシステム412A~C間、及び、HWAサブシステム412A~Cのための外部メモリから/へのデータフロースケジューリングを制御し得る。例えば、HTS414は、HWAサブシステム412A~Cの各々のための状態機械のセットを管理し得、専用の開始/終了信号を介して、HWAサブシステム412A~Cにおけるデータ処理/伝送スケジューリングを調整する。例えば、HTS414は、プログラム可能完了マスク(done-mask)生成方式、処理終了(EOP)生成、及び/又は、デバッグ/停止状態のためのデバッグレディ状態信号生成に対処する開始/終了タスク同期信号を行い得及び/又はその他の方式で促進し得る。
【0077】
また、
図4のHWA204に含まれるものとして、SRAMインターフェース408と、HTS414と、
図2~
図3のデータ動きファブリック218とに結合されるHWA DMA416が示される。
図4において、HWA DMA416は、
図2~
図3のデータ動きファブリック218、HTS414、及び/又はSRAMインターフェース408間の双方向インターフェースを促進するための一つ又は複数のハードウェア回路、論理回路等に対応し得る。
【0078】
図5は、
図4のHWA204の例示の実装に関連する例示のワークフロー500を示す。
図5のワークフロー500は、
図3の第1のワークフロー300aに対応し得る。
図5において、ワークフロー500は、第1の動作(1)、第2の動作(2)、第3の動作(3)、及び第4の動作(4)を含む動作1~4に対応する。
【0079】
図5のワークフロー500は第1の動作で始まり、ここで、
図2~
図3の画像データインターフェース216からのデータは、
図2~
図3のデータ動きファブリック218を介して、
図2~
図3のDDRメモリ212に送信される。第2の動作の間、データは、DDRメモリ212からデータ動きファブリック218を介して取り出される。例えば、
図4のHWA DMA416は、データ動きファブリック218から画像データを取得し得、取得した画像データをSRAM410にストアし得る。
【0080】
図5の図示される例において、第3の動作の間、SRAM410にストアされた画像データは、
図2~
図4のLSE206によって取得される。LSE206は、処理のために、画像データをコア208に送信する。例えば、コア208は、画像データに基づいて、処理された画像データ、変換された画素データ、及び/又は画像データ統計値を生成し得る。そのような例では、コア208は、処理された画像データ、変換された画素データ、及び/又は画像データ統計値を、LSE206の出力チャネルに送信し得る。LSE206は、処理された画像データ、変換された画素データ、及び/又は画像データ統計値に基づいてCRCシグネチャ値を計算するように、CRC論理回路404を呼び出し得る。CRC論理回路404は、コア208からの更新された値が受け取られるとき、CRCシグネチャ値を更新(例えば、逐次更新)し得る。画像フレーム全体を処理することに応答して、コア208は、LSE206に、画像フレーム全体が処理されたことを(例えば、終了信号を生成してLSE206に送信すること、終了ビットをLSE206に送信すること等によって)通知し得る。
【0081】
図5において、通知を取得した後、CRC論理回路404は、CRCシグネチャの最終又は最後の値をLSE206にストアし及び/又はその他の方式で保持し得る。例えば、LSE206は、CRCシグネチャの最終又は最後の値を、メモリマップドレジスタ、フリップフロップ等にストアし得る。いくつかの例において、通知を取得した後、CRC論理回路404は、CRCシグネチャの最終又は最後の値をSRAM410にストアするために、CRCシグネチャの最終又は最後の値をSRAMインターフェース408に送信し得る。例えば、CRCシグネチャの最終又は最後の値は、SRAM410から、少なくともSRAMインターフェース408とHWA DMA416とを含むデータ経路を介して、
図2~
図3のホストデバイス214A~Bの一方又は両方に送信され得る。
【0082】
図6は、
図4のHWA204の例示の実装に関連する例示のワークフロー600を示す。
図6のワークフロー600は、
図3の第2のワークフロー300bに対応し得る。
図6において、ワークフロー600は、LSE206が
図2~
図3の画像データインターフェース216から入力画像データを取得したときに始まる。有利にも、
図5に関連して上述したようなDDRメモリ212ではなく、画像データインターフェース216から入力画像データを取得することによって、画像フレームフリーズの検出時間が短縮され得る。例えば、
図5のワークフロー500の第1及び第2の動作をなくすことができ、これがレイテンシを短縮させ、それゆえ、画像フレームフリーズ状況を検出するための時間を短縮させる。
【0083】
図6の図示される例において、LSE206は、受け取られた画像データを、処理のためにコア208に送信し、
図5に関連して上述したように、処理された画像データ、変換された画素データ、及び/又は画像データ統計値をコア208から受け取る。従って、CRC論理回路404は、LSE206における処理された画像データ、変換された画素データ、及び/又は画像データ統計値に基づいてCRCシグネチャの最終又は最後の値をストアし得る。代替として、CRCシグネチャの最終又は最後の値は、SRAM410にストアされ得、及び、SRAM410から、少なくともSRAMインターフェース408とHWA DMA416とを含むデータ経路を介して、
図2~
図3のホストデバイス214A~Bの一方又は両方に送信され得る。
【0084】
図7は、
図2~
図6のLSE206の例示の実装を示す。
図7において、LSE206は、例示のスレッド702と、例示のコアインターフェース704と、例示の出力チャネルマルチプレクサ706と、例示の出力チャネル708と、例示のデータマルチプレクサ(MUX)710と、例示のメモリインターフェース712と、例示のHWAコンフィギュレータインターフェース714とを含む。また、
図4~
図6のCRC論理回路404が
図7に示される。
【0085】
図7の図示される例において、スレッド702は、
図2~
図3の画像データインターフェース216及び/又はメモリインターフェース712から画像データを取得する。例えば、スレッド702は、
図2のDDRメモリ212から、メモリインターフェース712を介して画像データを取得し得る。
図7において、スレッド702は、それ自体のHTS開始/終了を備える処理チェーンに対応する処理スレッド、HWAスレッド、論理回路スレッド等である。例えば、スレッド702は、ハードウェア及び/又はソフトウェア処理スレッドを表す論理的構成であり得、物理エンティティではない可能性がある。代替として、LSE206は、二つ以上のスレッド702を含み得る。いくつかの例において、スレッド702は、開始信号で始まり、終了信号で終わる一連のハードウェア論理動作を実行する。
【0086】
図7の図示される例において、スレッド702は、例示の画像データバッファ716と、例示の入力チャネル718と、例示の入力チャネルマルチプレクサ720と、例示のデータマージャー722とを含む。画像データバッファ716は、
図2~
図3の画像データインターフェース216からの画像データをストアするデータバッファである。例えば、LSE206は、
図1~
図3の画像データソース104から画像データバッファ716を介して実質的にリアルタイムの画像データを取得し得る。
【0087】
図7の図示される例において、入力チャネル718は、後に、処理のためにコアインターフェース704の一つを介して
図2~
図6のコア208に送信され得る、
図4~
図6のSRAM410から取得した画像データ(例えば、画素データ、画素値等)の読出し及び/又はアンパッキングを促進する、二つ又はそれ以上のデータチャネルに対応する。代替として、スレッド702は、入力チャネル718の一つのみを有してもよく、又は、画像データを読み出すように構成される入力チャネル718の一つのみを有してもよい。
【0088】
図7の図示される例において、画像データバッファ716と、入力チャネル718の第1の入力チャネル(入力チャネル[0])が、入力チャネルマルチプレクサ720に結合される。
図7において、画像データバッファ716は、入力チャネルマルチプレクサ720の第1の入力に結合される。
図7において、入力チャネル718の第1の入力チャネルは、入力チャネルマルチプレクサ720の第2の入力に結合される。いくつかの例において、入力チャネルマルチプレクサ720は、(1)SRAM410からのストアされた画像データ、或いは(2)画像データバッファ716によって取得され及び/又はストアされた実質的にリアルタイムの画像データを、コア208に送信するかどうかを判定する。いくつかの例において、入力チャネルマルチプレクサ720は、SRAM410からのストアされた画像データをコア208に送信するように判定し得、これは、
図3の第1のワークフロー300aに対応し得る。いくつかの例において、入力チャネルマルチプレクサ720は、画像データバッファ716によって取得され及び/又はストアされた実質的にリアルタイムの画像データをコア208に送信するように判定し得、これは
図3の第2のワークフロー300bに対応し得る。
【0089】
図7の図示される例において、入力チャネルマルチプレクサ720と入力チャネル718の第2の入力チャネル(入力チャネル[N])とが、データマージャー722に結合される。
図7において、入力チャネルマルチプレクサ720の出力が、データマージャー722の第1の入力に結合される。
図7において、入力チャネル718の第2の入力チャネルの出力が、データマージャー722の第2の入力に結合される。データマージャー722は、コア208によって読み出され及び/又はその他の方式で取得され得るフォーマットに画像データを配置する及び/又はその他の方式でフォーマットする、一つ又は複数の論理回路に対応し得る。例えば、データマージャー722は、データの交換及び/又は送信をコア208と同期させ得る先入れ先出し(FIFO)データバッファに対応し得る。他の例において、データマージャー722は、コア208による画像データの受領を促進するため、データビット、データヘッダー等を画像データに追加し又は削除し得る。
【0090】
図7の図示される例において、データマージャー722は、コアインターフェース704の第1のコアインターフェースと、出力チャネルマルチプレクサ706の第1の入力とに結合される。
図7において、コアインターフェース704の第2のコアインターフェースが、出力チャネル708の第1の出力チャネル(出力チャネル[0])と、CRC論理回路404の第1のCRC論理回路とに結合される。
図7において、コアインターフェース704の第3のコアインターフェースが、出力チャネルマルチプレクサ706の第2の入力に結合される。出力チャネルマルチプレクサ706の出力が、出力チャネル708の第2の出力チャネル(出力チャネル[N])と、CRC論理回路404の第2のCRC論理回路とに結合される。代替として、コアインターフェース704の第2及び第3のコアインターフェースは、出力チャネル708の第1及び第2の出力チャネルと無相関であり得る。例えば、コアインターフェース704の第2のコアインターフェースは、出力チャネル708の第1の出力チャネルと、出力チャネルマルチプレクサ706の第2の入力とに結合され得る。
【0091】
図7の図示される例において、コアインターフェース704は、コア208にデータを送信するため及び/又はコア208からデータを受け取るために双方向インターフェースを実装するための一つ又は複数の論理回路に対応し得る。例えば、コアインターフェース704は、インターインテグレーテット回路(I2C)バス、汎用非同期受信送信機(UART)バス、シリアル周辺インターフェース(SPI)バス等の動作を促進し及び/又はその他の方式でそれらを実装する、一つ又は複数の論理回路に対応し得る。
【0092】
図7の図示される例において、データマルチプレクサ710は、入力チャネル718と、出力チャネル708と、メモリインターフェース712とに結合される。データマルチプレクサ710は、LSE206の画像データ処理動作を同期させ及び/又はその他の方式で促進する。例えば、データマルチプレクサ710は、SRAM410から画像データを取得して、処理のためにスレッド702に提供するために、メモリインターフェース712を呼び出し得る。他の例において、データマルチプレクサ710は、処理されたデータ(例えば、CRCシグネチャ値、画像データ統計値等)をSRAM410にストアするために、メモリインターフェース712を呼び出し得る。
【0093】
図7の図示される例において、HWAコンフィギュレータインターフェース714は、LSE206と
図4~
図6のHWAコンフィギュレータ406との間の通信を促進する。例えば、HWAコンフィギュレータインターフェース714は、スレッド702の動作を構成し及び/又はその他の方式で調節するために、HWAコンフィギュレータ406から構成情報を取得し得る。そのような例では、スレッド702は、構成情報に基づいて、入力チャネル718の一つ又は複数をイネーブル又はディセーブルし得る。他の例において、スレッド702は、画像データバッファ716或いは入力チャネル718の一つのいずれかからデータを選択するために、入力チャネルマルチプレクサ720を呼び出し得る。
【0094】
図8は、
図7のLSE206の例示の実装に関連する例示のワークフロー800を示す。
図8のワークフロー800は、
図3の第1のワークフロー300aに対応し得る。
図8において、LSE206は、
図4~
図6のSRAM410から、
図4~
図6のSRAMインターフェース408を介して画像データを取得する。例えば、
図7のメモリインターフェース712は、画像データを取得し得、及び、これを
図7のスレッド702に送信し得る。スレッド702は、画像データをアンパックし得、及び、アンパックされた画像データを、
図2~
図6のコア208によって処理され得るフォーマットにフォーマットし得る。コア208は、LSE206から、コアインターフェース704の第1のコアインターフェースを介して画像データを取得し得る。コア208は、画像データに基づいて、処理された画像データ、変換された画素データ、及び/又は画像データ統計値を生成し得る。コアは、処理された画像データ、変換された画素データ、及び/又は画像データ統計値を、コアインターフェース704の第2のコアインターフェース、コアインターフェース704の第3のコアインターフェース等を介して、LSE206に送信し得る。コアインターフェース704は、処理された画像データ、変換された画素データ、及び/又は画像データ統計値を出力チャネル708の一つ又は複数に送信し得る。
【0095】
図8の図示される例において、CRC論理回路404の一つ又は複数が、対応する出力チャネル上でCRCシグネチャ値を計算する。例えば、CRC論理回路404は、出力チャネル708がコア208からデータを受け取るより前に、及び/又は実質的にこれと並行して、CRCシグネチャ値を計算し得る。そのような例では、CRC論理回路404は、出力チャネル[0]に送信される処理された画像データに対する第1のCRCシグネチャ値、出力チャネル[1]に送信される変換された画素データに対する第2のCRCシグネチャ値、出力チャネル[2]に送信される第1の画像データ統計値に対する第3のCRCシグネチャ値、出力チャネル[N]に送信されるN番目の画像データ統計値に対する第4のCRCシグネチャ値等、及び/又はそれらの組み合わせを計算し得る。処理された画像データ、変換された画素データ、及び/又は画像データ統計値を取得することに応答して、一つ又は複数の出力チャネル708は、処理された画像データ、変換された画素データ、及び/又は画像データ統計値を、データマルチプレクサ710とメモリインターフェース712とを含むデータ経路を介してSRAM410に送信し得る。いくつかの例において、入力チャネルマルチプレクサ720、出力チャネルマルチプレクサ706等、及び/又はそれらの組み合わせは、
図2の画像データインターフェース216から画像データを取得することを回避するように構成、イネーブル等をされ得る。そのような例では、CRC論理回路404は、画像データインターフェース216からの入力画像データ(例えば、未処理入力画像データ)に対して実行し得る。
【0096】
図9は、
図7のLSE206の例示の実装に関連する例示のワークフロー900を示す。
図9のワークフロー900は、
図3の第2のワークフロー300bに対応し得る。
図9において、LSE206は、画像データが
図4~
図6のSRAM410にストアされるより前に、
図2~
図3の画像データインターフェース216から画像データを取得する。例えば、
図7に関連して上述したような入力チャネル[0]ではなく、画像データバッファ716が、画像データを取得し得る。LSE206は、
図8に関連して上述したような、
図2~
図6のコア208によって判定される処理された画像データ、変換された画素データ、及び/又は画像データ統計値に基づいてCRCシグネチャ値を計算し得る。有利にも、
図8に関連して上述したようなSRAM410からではなく、画像データインターフェース216から画像データを取得することによって、画像フレームフリーズ状況を検出するための時間が短縮され得る。というのも、LSE206が、本願で説明される他のワークフローと比較して、画像データ処理パイプラインにおいて一層早く画像データを処理し得るからである。
【0097】
図10は、LSEコントローラ1000の例示の実装を示す。
図10のLSEコントローラ1000は、
図2のLSE206の別の例示の実装に対応し得る。
図10の図示される例において、LSEコントローラ1000は、例示のスレッドコントローラ1010と、例示のコアインターフェース1020と、例示のメモリインターフェース1030と、例示のHWAコンフィギュレータインターフェース1040と、例示のデータマルチプレクサ1050と、例示のCRC論理コントローラ1060と、例示のデータベース1070とを含む。
【0098】
図10の図示される例において、LSEコントローラ1000は、データの交換及び/又は送信を、異なるデバイス、コントローラ、及び/又は制御論理と同期させるためのスレッドコントローラ1010を含む。いくつかの例において、スレッドコントローラ1010は、画像データ(例えば、画像データソース(例えば、
図1の画像データソース104)によって捕捉され及び/又はその他の方式でそこから取得された画像データ(例えば、
図1の入力画像データ116、
図2の画像データインターフェース216からの画像データ、又は処理された画像データ等)を取得する。
【0099】
いくつかの例において、スレッドコントローラ1010は、
図11に関連して後述される例示のコアコントローラ1100によって読み取られ及び/又はその他の方式で取得され得るフォーマットに画像データを配し及び/又はその他の方式でフォーマットする。例えば、スレッドコントローラ1010は、異なるコントローラ及び/又は制御論理による画像データの受領を促進するために、画像データにデータビット、データヘッダー等を追加又は削除し得る。いくつかの例において、スレッドコントローラ1010は、
図7の画像データバッファ716、入力チャネル718の一つ又は複数、入力チャネルマルチプレクサ720、及び/又はデータマージャー722に対応し得及び/又はその他の方式でそれらを実装し得る。
【0100】
図10の図示される例において、LSEコントローラ1000は、
図2のコア208、
図11等のコアコントローラ1100等などの異なるコントローラ及び/又は制御論理にデータを送信し及び/又はそこからデータを受け取るためのコアインターフェース1020を含む。いくつかの例において、コアインターフェース1020は、送信より前に、LSEコントローラ1000によって使用される第1のデータフォーマットから、第1のデータフォーマットとは異なる第2のデータフォーマットに、データを前処理し、フォーマットし、コンバートし、及び/又はその他の方式で翻訳する。いくつかの例において、コアインターフェース1020は、異なるコントローラ及び/又は制御論理から第2のデータフォーマットで受け取られたデータを、第1のデータフォーマットに翻訳する。いくつかの例において、コアインターフェース1020は、
図7のコアインターフェース704の一つ又は複数に対応し及び/又はその他の方式でそれを実装し得る。
【0101】
図10の図示される例において、LSEコントローラ1000は、メモリ又は他のストレージデバイスからデータを読み出すため及び/又はそこにデータを書き込むためのメモリインターフェース1030を含む。いくつかの例において、メモリインターフェース1030は、呼び出されたとき、メモリとLSEコントローラ1000との間のデータの伝送を促進し得るメモリコントローラである。いくつかの例において、メモリインターフェース1030は、
図7のメモリインターフェース712に対応し及び/又はその他の方式でそれを実装する。
【0102】
図10の図示される例において、LSEコントローラ1000は、LSEコントローラ1000を構成するために構成情報を取得するためのHWAコンフィギュレータインターフェース1040を含む。いくつかの例において、HWAコンフィギュレータインターフェース1040は、構成情報に基づいて、特定のソースから(例えば、メモリ、画像データソース等から)画像データを取得するようにスレッドコントローラ1010を構成し得る。いくつかの例において、HWAコンフィギュレータインターフェース1040は、
図4のHWAコンフィギュレータ406、
図2のホストデバイス214A~Bの一方又は両方等から構成情報を取得する。いくつかの例において、HWAコンフィギュレータインターフェース1040は、
図7のHWAコンフィギュレータインターフェース714に対応し及び/又はその他の方式でそれを実装する。
【0103】
図10の図示される例において、LSEコントローラ1000は、データ読出し及び/又は書込み動作を制御するためのデータマルチプレクサ1050を含む。いくつかの例において、データマルチプレクサ1050は、HWAコンフィギュレータインターフェース1040によって取得された構成情報に基づいて画像データを取得するために、ソースを選択する。いくつかの例において、データマルチプレクサ1050は、
図7のデータマルチプレクサ710に対応し及び/又はその他の方式でこれを実装する。
【0104】
図10の図示される例において、LSEコントローラ1000は、CRCシグネチャ(例えば、上述した32ビットCRC多項式に基づく32ビットCRCシグネチャ)を計算し及び/又はその他の方式で判定するためのCRC論理コントローラ1060を含む。例えば、CRC論理コントローラ1060は、コア208によって生成される処理された画像データ、コア208によって生成される変換された画素データ、コア208によって判定される画像データ統計値パラメータ等に基づいて、CRCシグネチャを計算し得る。いくつかの例において、CRC論理コントローラ1060は、画像フレームフリーズ状況を検出するためにCRCシグネチャ値を比較する。例えば、CRC論理コントローラ1060は、CRCシグネチャ値間の差を判定することに応答して、画像フレームフリーズ状況を検出し得る。いくつかの例において、CRC論理コントローラ1060は、
図4~
図9のCRC論理回路404に対応し及び/又はその他の方式でそれを実装する。
【0105】
図10の図示される例において、LSEコントローラ1000は、データ(例えば、構成情報、画像データ統計値、CRCシグネチャ値等)を記録するためのデータベース1070を含む。データベース1070は、揮発性メモリ(例えば、SDRAM、DRAM、RDRAM(登録商標)等)及び/又は不揮発性メモリ(例えば、ROM、EEPROM、フラッシュメモリ等)によって実装され得る。付加的に又は代替として、データベース1070は、DDR、DDR2、DDR3、DDR4、mDDR等など、一つ又は複数のDDRメモリによって実装され得る。付加的に又は代替として、データベース1070は、ハードディスクドライブ、コンパクトディスクドライブ、デジタルバーサタイルディスクドライブ、ソリッドステートディスクドライブ等などの一つ又は複数の大容量ストレージデバイスによって実装され得る。図示される例では、データベース1070は単一データベースとして図示されるが、データベース1070は、任意の数及び/又はタイプのデータベースによって実装され得る。また、データベース1070にストアされるデータは、例えば、バイナリデータ、カンマ区切りのデータ、タブ区切りのデータ、構造化照会言語(SQL)構造等など、任意のデータフォーマットであり得る。
【0106】
LSEコントローラ1000を実装する例示の方式を
図10に図示したが、
図10に図示される要素、プロセス、及び/又はデバイスの一つ又は複数は、任意の他の方式で組み合わされ、分割され、再配置され、省かれ、なくされ、及び/又は実装され得る。また、
図10の例示のスレッドコントローラ1010、例示のコアインターフェース1020、例示のメモリインターフェース1030、例示のHWAコンフィギュレータインターフェース1040、例示のデータマルチプレクサ1050、例示のCRC論理コントローラ1060、及び例示のデータベース1070、及び/又は、より一般的には、例示のLSEコントローラ1000は、ハードウェア、ソフトウェア、ファームウェア、及び/又は、ハードウェア、ソフトウェア、及び/又はファームウェアの任意の組み合わせによって実装され得る。このように、例えば、例示のスレッドコントローラ1010、例示のコアインターフェース1020、例示のメモリインターフェース1030、例示のHWAコンフィギュレータインターフェース1040、例示のデータマルチプレクサ1050、例示のCRC論理コントローラ1060、及び例示のデータベース1070、及び/又は、より一般的には例示のLSEコントローラ1000の任意のものが、一つ又は複数のアナログ又はデジタル回路、論理回路、プログラマブルプロセッサ、プログラマブルコントローラ、グラフィクス処理ユニット(GPU)、DSP、ASIC、PLD、及び/又はFPLDによって実装され得る。純粋なソフトウェア及び/又はファームウェア実装を網羅するように、本願の装置又はシステムの特許請求の範囲の任意のものを把握する際、例示のスレッドコントローラ1010、例示のコアインターフェース1020、例示のメモリインターフェース1030、例示のHWAコンフィギュレータインターフェース1040、例示のデータマルチプレクサ1050、例示のCRC論理コントローラ1060、及び/又は例示のデータベース1070の少なくとも一つが、ソフトウェア及び/又はファームウェアを含め、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュメモリ等)、揮発性メモリ(例えば、SDRAM、DRAM等、及び/又は任意の他のタイプのRAMデバイス)等などの非一時的コンピュータ可読ストレージデバイス又はストレージディスクを含むことが、本明細書において明確に定義されている。また、
図10の例示のLSEコントローラ1000は、
図10に図示されるものに加えて又はその代わりに、一つ又は複数の要素、プロセス、及び/又はデバイスを含み得、及び/又は、図示される要素、プロセス、及びデバイスの二つ以上の任意のもの又は全てを含み得る。
【0107】
図11は、コアコントローラ1100の例示の実装を示す。コアコントローラ1100は、
図2のコア208の別の例示の実装に対応し得る。
図11の図示される例において、コアコントローラ1100は、例示のLSEインターフェース1110と、例示のコアコンフィギュレータ1120と、例示の画像データプロセッサ1130と、例示のパラメータ計算機1140とを含む。
【0108】
図11の図示される例において、コアコントローラ1100は、
図2のLSE206、
図10のLSEコントローラ1000等など、異なるコントローラ及び/又は制御論理へデータを送信するため、及び/又は、そこからデータを受け取るためのLSEインターフェース1110を含む。いくつかの例において、LSEインターフェース1110は、送信より前に、コアコントローラ1100によって使用される第1のデータフォーマットから、第1のデータフォーマットとは異なる第2のデータフォーマットにデータを前処理し、フォーマットし、コンバートし、及び/又はその他の方式で翻訳する。いくつかの例において、LSEインターフェース1110は、第1のデータフォーマットにおけるデータを第2のデータフォーマットに翻訳し、その後、第2のデータフォーマットにおけるデータを異なるコントローラ及び/又は制御論理に送信する。代替として、LSEインターフェース1110は、データを、第1のデータフォーマットから、I2Cバス、UARTバス、SPIバス等を促進するためのフォーマットに対応する第3のデータフォーマットにコンバートし得る。
【0109】
図11の図示される例において、コアコントローラ1100は、コアコントローラ1100を構成するための構成情報を取得するために、コアコンフィギュレータ1120を含む。いくつかの例において、コアコンフィギュレータ1120は、構成情報に基づいて対象の画像データ統計値又は他のパラメータを判定するようにパラメータ計算機1140を構成し得る。例えば、コアコンフィギュレータ1120は、画素の或るセットのための最大値に対応する第1の画像データ統計値を計算するようにパラメータ計算機1140を構成し得る。他の例において、コアコンフィギュレータ1120は、画素値の或るセットのための最小値に対応する第2の画像データ統計値を判定し得る。いくつかの例において、コアコンフィギュレータ1120は、
図4のHWAコンフィギュレータ406、
図2のホストデバイス214A~Bの一方又は両方等から構成情報を取得する。
【0110】
図11の図示される例において、コアコントローラ1100は、LSEインターフェース1110によって取得された画像データから、対象のデータ又は情報を抽出するための画像データプロセッサ1130を含む。例えば、画像データプロセッサ1130は、入力画像データ(例えば、
図1の入力画像データ116)に基づいて、画像データソース(例えば、
図1の画像データソース104)によって捕捉された画像フレームの画素に関連する値を判定し得る。そのような例では、画像データプロセッサ1130は、RGB画素値、及び/又は、輝度、色調、又は彩度の少なくとも一つに関連する値を抽出し及び/又はその他の方式で識別し得る。他の例において、画像データプロセッサ1130は、取得された画像データに関連する多くの行(例えば、画像フレーム高さ)、多くの列(例えば、画像フレーム幅)、多くの帯域、多くのビット毎ピクセル(bpp)、ファイルタイプ等を判定し得る。そのような例では、画像データプロセッサ1130は、完全な又は全体の画像フレームがいつ処理されたかを判定し得る。
【0111】
いくつかの例において、画像データプロセッサ1130は、取得された画像データに対して一つ又は複数の画像処理タスクを実行することによって、処理された画像データを生成する。例えば、画像データプロセッサ1130は、ワイドダイナミックレンジ特徴を識別すること、欠陥画素補正技法を実行すること、取得された画像データを圧伸解除すること(例えば、画像データを再び線形ドメインにコンバートすること)等、及び/又はそれらの組み合わせによって、処理された画像データを生成し得る。いくつかの例において、画像データプロセッサ1130は、取得された画像データに対して、レンズシェーディング補正、レンズ歪み補正、ノイズフィルタリング、トーンマッピング、RGBコンバージョン、カラープレーンコンバージョン、エッジ強調、ヒストグラム抽出等、及び/又はそれらの組み合わせを実行すること、及び/又はその他の方式で実装することによって、処理された画像データを生成する。いくつかの例において、画像データプロセッサ1130は、
図10のCRC論理コントローラ1060が、処理された画像データに対してCRCシグネチャタスクを実行するより前に、処理された画像データを生成するために、上述のプロセス、変換フィルタ等の任意のものを実行し、及び/又はその他の方式で実装し得る。
【0112】
いくつかの例において、画像データプロセッサ1130は、近隣認識画素変換などの変換動作を実行することによって画素データを変換する。例えば、画像データプロセッサ1130は、画像データ(例えば、LSEインターフェース1110によって取得された画像データからの抽出されたデータ又は対象の情報)に対してセンサス変換動作を実行することによって、シグネチャ(例えば、ビットシグネチャ)を生成し得る。例えば、画像データプロセッサ1130は、センサス変換データを生成するために、画素データに対してセンサス変換アルゴリズムを適用し得、及び/又はその他の方式で実行し得る。そのような例では、画像データプロセッサ1130は、センサス変換データをビットストリング(例えば、8ビット、16ビット、32ビット等のサイズ又は長さを有するビットストリング)に配することによってビットシグネチャを生成し得る。画像データプロセッサ1130は、ビットストリングに基づくバイナリ値に対応する10進値を判定することによって、変換された画素データを生成し得る。そのような例では、画像データプロセッサ1130は、変換された画素データ(例えば、センサス変換された画素データ)に基づいて一つ又は複数の画像データ統計値を判定し得、これは、有利にも、
図1の画像データソース104などの画像データソースに関連し得るセンサノイズ、送信ノイズ等に対してロバストである。
【0113】
図11の図示される例において、コアコントローラ1100は、LSEインターフェース1110によって取得される画像データに関連する一つ又は複数のパラメータ(例えば、診断パラメータ、画像データパラメータ、画像データ統計値、画像パイプ統計値等)を判定するためのパラメータ計算機1140を含む。例えば、パラメータ計算機1140は、処理のため、対象の画像フレームに関連する画素値のセットに関連する最大値、最小値、合計等を判定し得る。いくつかの例において、パラメータ計算機1140は、画像データ抽出器1130によって生成される処理された画像データに関連する一つ又は複数のパラメータを判定し得る。例えば、パラメータ計算機1140は、画像データプロセッサ1130によって生成される任意の出力に基づいて一つ又は複数のパラメータを判定し得、ここで、出力は、処理された画像データに対応し得る。
【0114】
コアコントローラ1100を実装する例示の方式を
図11に図示したが、
図11に図示される要素、プロセス、及び/又はデバイスの一つ又は複数は、任意の他の方式で組み合わされ、分割され、再配置され、省かれ、なくされ、及び/又は実装され得る。また、例示のLSEインターフェース1110、例示のコアコンフィギュレータ1120、例示の画像データプロセッサ1130、例示のパラメータ計算機1140、及び/又は、より一般的には
図11の例示のコアコントローラ1100は、ハードウェア、ソフトウェア、ファームウェア、及び/又は、ハードウェア、ソフトウェア、及び/又はファームウェア任意の組み合わせによって実装され得る。このように、例えば、例示のLSEインターフェース1110、例示のコアコンフィギュレータ1120、例示の画像データプロセッサ1130、例示のパラメータ計算機1140、及び/又はより一般的には例示のコアコントローラ1100の任意のものが、一つ又は複数のアナログ又はデジタル回路、論理回路、プログラマブルプロセッサ、プログラマブルコントローラ、グラフィクス処理ユニット(GPU)、DSP、ASIC、PLD、及び/又はFPLDによって実装され得る。純粋なソフトウェア及び/又はファームウェア実装を網羅するように、本願の装置又はシステムの特許請求の範囲の任意のものを把握する際、例示のLSEインターフェース1110、例示のコアコンフィギュレータ1120、例示の画像データプロセッサ1130、例示のパラメータ計算機1140の少なくとも一つが、ソフトウェア及び/又はファームウェアを含め、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュメモリ等)、揮発性メモリ(例えば、SDRAM、DRAM等、及び/又は任意の他のタイプのRAMデバイス)等などの非一時的コンピュータ可読ストレージデバイス又はストレージディスクを含むことが、本明細書において明確に定義されている。また、
図11の例示のコアコントローラ1100は、
図11に図示されるものに加えて又はその代わりに、一つ又は複数の要素、プロセス、及び/又はデバイスを含み得、及び/又は、図示される要素、プロセス、及びデバイスの二つ以上の任意のもの又は全てを含み得る。
【0115】
図12は、例示の画像データ1200の概略図を示す。
図12の画像データ1200は、フレームフリーズ状況を検出するために、
図2のHWA204、及び/又は、より一般的には、フレームフリーズ検出システム200によって処理されるべき対象の画像フレームに対応し得る。例えば、画像データ1200は画素データであり得る。
図12において、画像データ1200は、それぞれが画素値のセットに対応する例示の画素ウィンドウ1202を含む。例えば、画素値は、RGB画素値又は他のタイプの画素値に対応し得る。他の例において、画素値は、輝度、色調、及び/又は彩度などの画像特性を表し得る。
【0116】
図12の図示される例において、画素ウィンドウ1202の各々が、画素ウィンドウ高さ(PWH)×画素ウィンドウ幅(PWW)のサイズを有するウィンドウに配される例示の画素値1204を有する。PWHは、画素値の第1の量に対応するウィンドウの高さである。PWWは、画素値の第2の量に対応するウィンドウの幅である。いくつかの例において、画素値の第1及び第2の量は同じであり、他の例において、画素値の第1及び第2の量は異なる。
【0117】
図12の図示される例において、画像データ1200は、処理のための対象の画像フレーム(例えば、画像フレーム全体、完全な画像フレーム等)に対応し得る。
図12の画像データ1200は、画像フレーム高さ(IFH)×画像フレーム幅(IFW)のサイズを有するウィンドウに配される。IFHは、画素ウィンドウの第1の量に対応する画像フレームの高さである。IFWは、画素ウィンドウの第2の量に対応する画像フレームの幅である。いくつかの例において、画素ウィンドウの第1及び第2の量は同じであり、他の例において、画素ウィンドウの第1及び第2の量は異なる。
【0118】
図12の図示される例において、
図2のHWA204及び/又はより一般的にはフレームフリーズ検出システム200は、対象の画素ウィンドウで開始することによって画像データ1200を処理し得る。例えば、
図2のHWA204、及び/又はより一般的には、フレームフリーズ検出システム200は、画像フレーム水平出発点(IFSH、image frame start horizontal)及び画像フレーム垂直出発点(IFSV、image frame start vertical)によって指定される初期画素ウィンドウで開始することによって、画像データ1200を処理し得る。
図12において、IFSH及びIFSVは、画素ウィンドウ1202の第1の画素ウィンドウに対応する。そのような例では、
図2のHWA204、及び/又はより一般的にはフレームフリーズ検出システム200は、画素ウィンドウ1202の第1の画素ウィンドウを処理し得、画像データ1200の全体が処理されるまで、左から右へ及び上から下へ続行し得る。代替として、IFSH及びIFSVは、画素ウィンドウ1202のうちの異なる画素ウィンドウであり得、及び/又は、画素ウィンドウの異なる順が処理され得る。HWA204、及び/又はより一般的にはフレームフリーズ検出システム200は、
図12の画像データ1200の全体を処理することに応答して、HWA204、及び/又はより一般的にはフレームフリーズ検出システム200は、処理された画像データ1200に基づいて一つ又は複数の画像パラメータを計算し得、及び/又はその他の方式で判定し得る。
【0119】
図13は、例示の変換ワークフロー1300を示す。
図13の変換ワークフロー1300は、
図2のコア208、
図11のコアコントローラ1100等によって行われ得、及び/又はその他の方式で実行され得る。いくつかの例において、
図13の変換ワークフロー1300は、LSE206、
図2~
図3の第1のホストデバイス214A、
図2~
図3の第2のホストデバイス214B、
図2~
図3ビジョンプロセッサ226等によって行われ得、及び/又はその他の方式で実行され得る。
図13において、変換ワークフロー1300は近隣認識画素変換の例示の実装である。例えば、変換ワークフロー1300は、センサス変換又は任意の他のタイプの画素変換に対応し得る。代替として、任意の他の画像データ変換動作が実行され得る。
【0120】
図13の図示される例において、コア208及び/又はコアコントローラ1100は、例示の画像データ1302を取得し得、画像データ1302に対して、例示の近隣認識画素変換動作(例えば、センサス変換アルゴリズム、センサス変換、センサス変換動作等)1304を実行して、例示の変換された画像データ(例えば、センサス変換データ)1306を生成し得る。
図13において、画像データ1302は、8、10、或いは12ビット毎ピクセル(bpp)等を有するグレースケール画像、及び/又は、
図1の画像データソース104からの任意の他の処理された又は抽出された画像データに関連する未加工画像データ、ルマデータ、クロマデータ、画像データに対応する。例えば、
図13の画像データ1302は、
図12の画像データ1200、
図12の画像データ1200の一部、
図12の画素ウィンドウ1202の一つ又は複数等に対応し得る。
図13において、画像データ1302は、5×5グリッド又はスクエアに配される25画素値を有する。代替として、画像データ1302及び/又は変換された画像データ1306は、異なる数の画素値及び/又は異なる配置の画素値を有し得る。
【0121】
図13の図示される例において、コア208及び/又はコアコントローラ1100は、対象の画素値(例えば、画像データ1302の25画素値の一つ)が中央画素値より大きいかどうかを判定するために、近隣認識画素変換動作1304を実行し得る。
図13において、中央画素値は78である。例えば、コア208及び/又はコアコントローラ1100は、近隣認識画素変換動作1304を実行して、対象の画素値が78より大きいか又は78と等しいときに「1」の値、及び、対象の画素値が78より大きくないときに「0」の値を出力し得る。そのような例では、コア208及び/又はコアコントローラ1100は、画像データ1302に含まれる画素値に対して近隣認識画素変換動作1304を実行することによって、
図13に示される変換された画像データ1306を生成し得る。
【0122】
図13の図示される例において、コア208及び/又はコアコントローラ1100は、変換された画像データ1306に基づいて例示のビットシグネチャ1308を生成し得る。
図13において、変換された画像データ1306は、「X」又はドントケア値を中央データ値が有する5×5グリッド又はスクエアである。コア208及び/又はコアコントローラ1100は、変換された画像データ1306を、24ビットのサイズ又は長さを有するビットストリングに配することによって、ビットシグネチャ1308を生成し得、ここでは、「X」値は含まれない。代替として、ビットシグネチャ1308は異なるサイズであり得る。コア208及び/又はコアコントローラ1100は、画像データ1302の中央画素値(例えば、78の画素値)をビットシグネチャ1308に対応する値で置き換えることによって、例示の変換された画素データ(例えば、センサス変換された画素データ)1310を生成し得る。例えば、コア208及び/又はコアコントローラ1100は、110001100011000001101111のビットシグネチャ1308のバイナリ値を、12988527の10進値にコンバートし得る。そのような例では、12988527の10進値は、変換された画素データ値(例えば、センサス変換値)に対応し得る。代替として、変換された画素データ1310は、異なる量の画素値及び/又は異なる配置の画素値を有し得る。
【0123】
いくつかの例において、コア208及び/又はコアコントローラ1100は、変換ワークフロー1300を行うこと及び/又はその他の方式で実行することによって、一つ又は複数の画像データ統計値を生成する。例えば、コア208及び/又はコアコントローラ1100は、
図12の画素ウィンドウ1202のための変換された画素データ値を生成し得る。そのような例では、コア208及び/又はコアコントローラ1100は、画素ウィンドウ1202の第1の画素ウィンドウに対応する第1の変換された画素データ値、画素ウィンドウ1202の第2の画素ウィンドウに対応する第2の変換された画素データ値等を判定し得る。いくつかの例において、コア208及び/又はコアコントローラ1100は、変換された画素データ値の最大値、最小値、合計値等を判定することによって、画像データ統計値を判定する。いくつかの例において、コア208及び/又はコアコントローラ1100は、変換された画素データ値に基づく画像データ統計値を、
図2のLSE206、
図10のLSEコントローラ1000等に送信し得る。
【0124】
有利にも、
図13の変換ワークフロー1300は、画素不変及び/又は画素値近隣認識動作であり得る。というのも、近隣認識画素変換動作1304が、センサノイズ(例えば、
図1の画像データソース104に関連する電気及び/又は信号ノイズ)、送信ノイズ等に起因する受信画素データ(例えば、一つ又は複数の画素データビットにおける反転)における軽微な変動に対してロバストであり得るからである。
【0125】
図10のLSEコントローラ1000及び/又は
図11のコアコントローラ1100を実装するための例示のハードウェア論理、機械可読命令、ハードウェア実装の状態機械、及び/又はそれらの任意の組み合わせを表すフローチャートを
図14~
図15に示す。機械可読命令は、
図16に関連して後述される例示のプロセッサプラットフォーム1600に示されるプロセッサ1612及び/又は
図17に関連して後述される例示のプロセッサプラットフォーム1700に示されるプロセッサ1712などのコンピュータプロセッサによる実行のための実行可能なプログラム又は実行可能なプログラムの一部であり得る。こうしたプログラムは、CD-ROM、フロッピーディスク、ハードドライブ、デジタルバーサタイルディスク(DVD)、ブルーレイディスク、又は、
図16のプロセッサ1612及び/又は
図17のプロセッサ1712に関連するメモリなどの非一時的コンピュータ可読ストレージ媒体にストアされるソフトウェアにおいて具現化され得るが、プログラム全体及び/又はその一部が、代替として、
図16のプロセッサ1612及び/又は
図17のプロセッサ1712以外のデバイスによって実行され得、及び/又は、ファームウェア又は専用のハードウェアにおいて具現化され得る。また、例示のプログラムが、
図14~
図15に図示されるフローチャートを参照して説明されているが、例示のLSEコントローラ1000及び/又は例示のコアコントローラ1100を実装する多くの他の方法が代替として用いられ得る。例えば、ブロックの実行の順が変更され得、及び/又は、説明されるブロックのいくつかが、変更され、なくされ、又は組み合わされ得る。付加的に又は代替として、ブロックの任意のもの又は全ては、ソフトウェア又はファームウェアを実行することなく対応する動作を行うように構成される一つ又は複数のハードウェア回路(例えば、ディスクリート及び/又は集積アナログ及び/又はデジタル回路要素、FPGA、ASIC、コンパレータ、演算増幅器(オペアンプ)、論理回路等)によって実装され得る。
【0126】
上記したように、
図14~
図15の例示のプロセスは、ハードディスクドライブ、フラッシュメモリ、読み出し専用メモリ、コンパクトディスク、デジタルバーサタイルディスク、キャッシュ、ランダムアクセスメモリ、及び/又は、任意の時間期間の間(例えば、延長された時間期間の間、恒久的に、短い瞬間の間、一時的なバッファリングの間、及び/又は、情報のキャッシングの間)情報をストアする任意の他のストレージデバイス又はストレージディスクなどの非一時的コンピュータ及び/又は機械可読媒体にストアされる実行可能な命令(例えば、コンピュータ及び/又は機械可読命令)を用いて実装され得る。本明細書で用いられるように、非一時的コンピュータ可読媒体という用語は、任意のタイプのコンピュータ可読ストレージデバイス及び/又はストレージディスクを含むこと及び伝搬信号を除外すること及び送信媒体を除外することが明確に定義される。
【0127】
「含む」及び「包含する」(及びその全ての変化形及び時制)は、非限定的な用語である。このように、或る請求項が、プリアンブルとして又は任意の種類の請求項の記載において、「含む」の任意の形(例えば、含む、包含する、有する等)を用いるときはいつでも、対応する請求項又は記載の範囲から逸脱することなく、付加的な要素、用語等が存在し得る。本明細書で用いられるように、「少なくとも」という表現が、例えば、或る請求項のプリアンブルにおいて、接続句として用いられるとき、それは、「含む」及び「包含する」という用語が非限定的であるのと同じように非限定的である。「及び/又は」という用語は、例えば、A、B、及び/又はCなどの形で用いられるとき、(1)Aのみ、(2)Bのみ、(3)Cのみ、(4)AとB、(5)AとC、(6)BとC、及び(7)AとBとCなど、A、B、Cの任意の組み合わせ又はサブセットを指す。構造、構成要素、アイテム、オブジェクト、及び/又は物事を説明する文脈において本明細書で用いられるように、「A及びBの少なくとも一つ」という表現は、(1)少なくとも一つのA、(2)少なくとも一つのB、及び(3)少なくとも一つのA及び少なくとも一つのB、のうちの任意のものを含む実装を指す。同様に、構造、構成要素、アイテム、オブジェクト、及び/又は物事を説明する文脈において本明細書で用いられるように、「A又はBの少なくとも一つ」という表現は、(1)少なくとも一つのA、(2)少なくとも一つのB、及び(3)少なくとも一つのA及び少なくとも一つのB、のうちの任意のものを含む実装を指す。プロセス、命令、行為、アクティビティ、及び/又は工程の性能又は実行を説明する文脈において本明細書で用いられるように、「A及びBの少なくとも一つ」という表現は、(1)少なくとも一つのA、(2)少なくとも一つのB、及び(3)少なくとも一つのA及び少なくとも一つのB、のうちの任意のものを含む実装を指す。同様に、プロセス、命令、行為、アクティビティ、及び/又は工程の性能又は実行を説明する文脈において本明細書で用いられるように、「A又はBの少なくとも一つ」という表現は、(1)少なくとも一つのA、(2)少なくとも一つのB、及び(3)少なくとも一つのA及び少なくとも一つのB、のうちの任意のものを含む実装を指す。
【0128】
図14は、フレームフリーズ状況を検出するために実行され得る例示の機械可読命令1400を表すフローチャートである。いくつかの例において、
図14の機械可読命令1400は、
図2のLSE206、及び/又は、より一般的にはHWA204、を実装するために実行され得る。いくつかの例において、
図14の機械可読命令1400は、
図10のLSEコントローラ1000を実装するために実行され得る。
【0129】
図14の機械可読命令1400は、ブロック1402で始まる。ブロック1402において、ハードウェアアクセラレータ(HWA)が、対象の画像フレームについて出力チャネル上で巡回冗長検査(CRC)値を演算するように構成される。例えば、HWAコンフィギュレータインターフェース714(
図7)は、対象の第1の画像フレーム(例えば、画像フレーム[n])のためのCRC値を演算するために、構成情報を取得し得、この構成情報に基づいて出力チャネル708を構成する。他の例において、HWAコンフィギュレータインターフェース1040(
図10)は、画像フレーム[n]のためのCRC値を判定するために、スレッドコントローラ1010(
図10)又はCRC論理コントローラ1060(
図10)の少なくとも一つを構成し得る。
【0130】
ブロック1404において、画素出力データが取得される。例えば、コアインターフェース704(
図7)の一つ又は複数が、コア208(
図2)から画素出力データ(例えば、画素値、画像データ統計値等)を取得し得る。他の例において、コアインターフェース1020(
図10)は、コアコントローラ1100(
図11)など、異なるコントローラ及び/又は制御論理から画素出力データを取得し得る。
【0131】
ブロック1406において、CRC値が演算される。例えば、CRC論理回路404(
図4)は、出力チャネル708の一つ又は複数のためのそれぞれのCRC値を生成し得る。出力チャネル708は、処理された画像データ、センサス変換データ、及び/又は画像データ統計値に対応し得る。他の例において、CRC論理コントローラ1060は、対象の一つ又は複数の出力チャネルのためのCRC値を計算し得、ここで、一つ又は複数の出力チャネルの各々は、異なるコントローラ及び/又は制御論理から取得されたデータに対応し得る。
【0132】
ブロック1408において、対象の画像フレームの終端に到達したかどうかの判定がなされる。例えば、CRC論理回路404及び/又はCRC論理コントローラ1060は、
図12の画像データ1200に対応する画像フレームの全体が処理されたことを判定し得る。そのような例では、CRC論理回路404及び/又はCRC論理コントローラ1060は、対応する出力チャネルに関連するフレーム信号の終了、フレームデータビットの終了等を取得し得る。
【0133】
ブロック1410において、対象の画像フレームの終端に到達していない場合、制御は、付加的な画素出力データを取得するためにブロック1404に戻る。ブロック1410において、対象の画像フレームの終端に到達している場合、ブロック1410において、CRC値が画像フレーム[n]CRC値としてストアされる。例えば、CRC論理回路404は、処理されている画像フレームに対応するCRC値をSRAM410(
図4)にストアし得、また、CRC値を、画像フレーム[n]に対応するように関連付け得る(例えば、CRC値の関連をストアし得る)。他の例において、CRC論理コントローラ1060は、データベース1070(
図10)にCRC値をストアし得、また、ストアされたCRC値を画像フレーム[n]に対応するように関連付け得る(例えば、ストアされたCRC値の関連をストアし得る)。
【0134】
ブロック1412において、CRC値は、画像フレーム[n]のCRC値を画像フレーム[n-1]のCRC値と比較するために、ホストデバイスに送信される。例えば、LSE206は、SRAMインターフェース408(
図4)、HWA DMA416(
図4)、データ動きファブリック218(
図2)、又はホストデバイスインターフェース230(
図2)の少なくとも一つを含むデータフロー経路を介する第1のホストデバイス214A(
図2)への後続の送信のため、画像フレーム[n](例えば、第1の画像フレーム)のためのCRC値をSRAM410にストアし得る。他の例において、CRC論理コントローラ1060は、画像フレーム[n]に関連する第1のCRC値及び画像フレーム[n-1](例えば、第1の画像フレームより前に取得され及び/又は処理された第2の画像フレーム)に関連する第2のCRC値をデータベース1070から取得し得る。代替として、CRC論理コントローラ1060は、第1のCRC値及び第2のCRC値を、分析のため、異なるデバイスに送信し得る。
【0135】
ブロック1414において、ホストデバイスによる比較に基づく一致の表示が取得されたかどうかの判定がなされる。例えば、第1のホストデバイス214Aは、画像フレーム[n]に対応する一つ又は複数のCRC値が、画像フレーム[n-1]に対応する一つ又は複数のCRC値に一致することを判定し得る。そのような例では、第1のホストデバイス214Aは、処理された画像データ、センサス変換データ、及び/又は画像データ統計値に関連するCRC値に基づいて潜在的なフレームフリーズ状況が検出されたことを表示する警告、表示等を生成し得る。他の例において、CRC論理コントローラ1060は、画像フレーム[n]に関連する第1のCRC値の一つ又は複数が、画像フレーム[n-1]に関連する2のCRC値の一つ又は複数に一致することを判定し得る。そのような例では、CRC論理コントローラ1060は、潜在的なフレームフリーズ状況が検出されたことを表示する警告、表示等を生成し得る。
【0136】
ブロック1414において、ホストデバイスによる比較に基づく一致の表示が取得されていない場合、制御は、付加的な画素出力データを取得するために、ブロック1404に戻る。ブロック1414において、ホストデバイスによる比較に基づく一致の表示が取得されている場合、ブロック1416において、画像フレーム[n]は、画像フレームフリーズ候補として識別される。例えば、第1のホストデバイス214Aは、更なる処理のため、付加的な情報(例えば、診断パラメータ、画像データ統計値等)をSRAM410から取得し得る。他の例において、CRC論理コントローラ1060は、更なる処理のため、付加的な情報をデータベース1070から取得し得る。
【0137】
ブロック1418において、画像フレームフリーズ検出を示す警告が生成される。例えば、第1のホストデバイス214Aは、CRC値の一致又はSRAM410からの付加的な情報の少なくとも一方に基づいて画像フレームフリーズ状況が検出されたことを判定し得る。そのような例では、第1のホストデバイス214Aは、ディスプレイコントローラ228(
図2)に、ディスプレイパネル210上に警告を表示するように、又は、その他の補正又は緩和アクションを取るように命令し得る(例えば、ディスプレイパネル210に、画像フレームフリーズ状況がもはや検出されなくなる及び/又は解決されるまで、
図1の画像データソース104からのデータを使用しないように命令し得る)。ブロック1418において画像フレームフリーズ検出を示す警告を生成することに応答して、
図14の機械可読命令1400が終わる。
【0138】
図15は、異なる画素処理動作に基づいてフレームフリーズ状況を検出するために実行され得る例示の機械可読命令1500を表すフローチャートである。いくつかの例において、
図15の機械可読命令1500は、
図2のHWA204を実装するために実行され得る。いくつかの例において、
図15の機械可読命令1500は、
図10のLSEコントローラ1000及び/又は
図11のコアコントローラ1100を実装するように実行され得る。
【0139】
図15の機械可読命令1500は、画素データが取得されるブロック1502で始まる。例えば、LSE206は、画像データインターフェース216(
図2)、SRAM410(
図4)等からの画素データに対応する及び/又はその他の方式でこれを含む画像データを取得し得る。他の例において、スレッドコントローラ1010(
図10)は、画像データソース104(
図1)、データベース1070(
図10)等から画素値を取得し得る。
【0140】
ブロック1504において、第1のCRC値が、画素データに基づいて判定される。例えば、CRC論理回路404は、画像データインターフェース216、SRAM410等からの画素データに基づいて第1のCRC値を判定し得る。他の例において、CRC論理コントローラ1060(
図10)は、画像データソース104、データベース1070等からの画素データに基づいて第1のCRC値を判定し得る。
【0141】
ブロック1506において、ブロック1502において取得された画素データが変換される。例えば、コア208(
図2)は、画像データ1200(
図12)に基づいて、変換された画素データ1310(
図13)を生成し得る。他の例において、画像データプロセッサ1130は、画像データ1200に基づいて、変換された画素データ1310を生成し得る。
【0142】
ブロック1508において、第2のCRC値が、変換された画素データに基づいて判定される。例えば、CRC論理回路404は、
図13の変換された画素データ1310に基づいて、第2のCRC値を判定し得る。他の例において、CRC論理コントローラ1060は、変換された画素データ1310に基づいて第2のCRC値を判定し得る。
【0143】
ブロック1502において画素データを取得すること又はブロック1506において画素データを変換することの少なくとも一方に応答して、ブロック1510において、画像データ統計値が画素データに基づいて生成される。例えば、コア208及び/又はパラメータ計算機1140は、ブロック1502において取得された画素データに基づいて一つ又は複数の画像データ統計値を生成し得る。他の例において、コア208及び/又はパラメータ計算機1140は、ブロック1506において変換された画素データに基づいて一つ又は複数の画像データ統計値を生成し得る。さらに他の例において、コア208及び/又はパラメータ計算機1140は、ブロック1502において取得された画素データ又はブロック1506において変換された画素データの少なくとも一方に基づいて、一つ又は複数の画像データ統計値を生成し得る。
【0144】
ブロック1510において画素データに基づいて画像データ統計値を生成することに応答して、ブロック1512において、第3のCRC値が、画像データ統計値に基づいて判定される。例えば、CRC論理回路404は、コア208からの一つ又は複数の画像データ統計値に基づいて第3のCRC値を判定し得る。他の例において、CRC論理コントローラ1060は、コアコントローラ1100のパラメータ計算機1140によって判定された一つ又は複数の画像データ統計値に基づいて、第3のCRC値を判定し得る。
【0145】
ブロック1514において、第1のCRC値、第2のCRC値、又は第3のCRC値の少なくとも一つに基づいて、フレームフリーズ状況が検出される。例えば、第1のホストデバイス214A(
図2)は、画像データソース104(
図1)に関連するフレームフリーズ状況を、検出、判定、及び/又はその他の方式で識別し得る。そのような例では、第1のホストデバイス214Aは、対象の第1の画像フレームのための第1のCRC値を、対象の第1の画像フレームの前に取得され及び/又はその他の方式で処理された対象の第2の画像フレームのためのCRC値と比較し得る。第1のホストデバイス214Aは、CRC値が一致せず、及び/又は、その他の様式で異なるとき、フレームフリーズ状況を検出し得る。他の例において、CRC論理コントローラ1060は、対象の第1の画像フレームのための第1のCRC値を、対象の第1の画像フレームの前に取得され及び/又はその他の方式で処理された対象の第2の画像フレームのためのCRC値と比較し得る。第1のホストデバイス214Aは、CRC値が一致せず、及び/又は、その他の方式で異なるとき、フレームフリーズ状況を検出し得る。さらに他の例において、第1のホストデバイス214A及び/又はCRC論理コントローラ1060は、(1)対象の第1の画像フレームのための第1のCRC値を、対象の第1の画像フレームの前に取得され及び/又はその他の方式で処理された対象の第2の画像フレームのための第1のCRC値と比較することによって、第1の比較を行い得、(2)対象の第1の画像フレームのための第2のCRC値を、対象の第2の画像フレームのための第2のCRC値と比較することによって第2の比較を行い得、及び/又は、(3)対象の第1の画像フレームのための第3のCRC値を、対象の第2の画像フレームのための第3のCRC値と比較することによって、第3の比較を行い得る。そのような例では、第1のホストデバイス214A及び/又はCRC論理コントローラ1060は、CRC値に差を生じさせる第1の比較、第2の比較、又は第3の比較の少なくとも一つに基づいてフレームフリーズ状況を検出し得る。ブロック1514において、第1、第2、又は第3のCRC値の少なくとも一つに基づいてフレームフリーズ状況を検出することに応答して、
図15の機械可読命令1500が終わる。
【0146】
図16は、
図10のLSEコントローラ100を実装するために
図14及び/又は
図15の命令を実行するように構成される、例示のプロセッサプラットフォーム1600のブロック図である。プロセッサプラットフォーム1600は、例えば、サーバー、パーソナルコンピュータ、ワークステーション、自己学習機械(例えば、ニューラルネットワーク)、モバイルデバイス(例えば、携帯電話、スマートフォン、iPad(登録商標)などのタブレット)、パーソナルデジタルアシスタント(PDA)、ヘッドセット又はその他のウェアラブルデバイス、又は任意の他のタイプのコンピューティングデバイスであり得る。
【0147】
図示される例のプロセッサプラットフォーム1600は、プロセッサ1612を含む。図示される例のプロセッサ1612はハードウェアである。例えば、プロセッサ1612は、任意の所望の集団又は製造業者からの、一つ又は複数の集積回路、論理回路、マイクロプロセッサ、GPU、DSP、又はコントローラによって実装され得る。ハードウェアプロセッサは、半導体ベース(例えば、シリコンベース)のデバイスであり得る。この例では、プロセッサ1612は、
図10の例示のスレッドコントローラ1010、例示のデータマルチプレクサ1050、及び例示のCRC論理コントローラ1060を実装する。
【0148】
図示される例のプロセッサ1612は、ローカルメモリ1613(例えば、キャッシュ)を含む。図示される例のプロセッサ1612は、バス1618を介して揮発性メモリ1614及び不揮発性メモリ1616を備えるメインメモリと通信する。揮発性メモリ1614は、SDRAM、DRAM、RDRAM(登録商標)、及び/又は任意の他のタイプのランダムアクセスメモリデバイスによって実装され得る。不揮発性メモリ1616は、フラッシュメモリ及び/又は任意の他の所望のタイプのメモリデバイスによって実装され得る。メインメモリ1614、1616へのアクセスは、メモリコントローラによって制御される。
【0149】
また、図示される例のプロセッサプラットフォーム1600は、インターフェース回路1620を含む。インターフェース回路1620は、イーサネットインターフェース、ユニバーサルシリアルバス(USB)、ブルートゥース(登録商標)インターフェース、近距離無線通信(NFC)インターフェース、及び/又はPCIエクスプレスインターフェースなど、任意のタイプのインターフェース規格によって実装され得る。
【0150】
図示される例では、一つ又は複数の入力デバイス1622が、インターフェース回路1620に接続される。入力デバイス1622によって、ユーザは、データ及び/又はコマンドをプロセッサ1612に入力できる。入力デバイス1622は、例えば、オーディオセンサ、マイク、カメラ(静止画又は動画)、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイントデバイス、及び/又は、音声認識システムによって実装され得る。
【0151】
また、一つ又は複数の出力デバイス1624が、図示される例のインターフェース回路1620に接続される。出力デバイス1624は、例えば、ディスプレイデバイス(例えば、LED、OLED、LCD、陰極線管(CRT)ディスプレイ、IPSディスプレイ、タッチスクリーン等)、触感出力デバイス、プリンタ、及び/又は、スピーカによって実装され得る。このように図示される例のインターフェース回路1620は、グラフィクスドライバカード、グラフィクスドライバチップ、及び/又は、グラフィクスドライバプロセッサを含み得る。
【0152】
また、図示される例のインターフェース回路1620は、ネットワーク1626を介した外部機械(例えば、任意の種類のコンピューティングデバイス)とのデータ交換を促進するために、トランスミッタ、レシーバ、トランシーバ、モデム、レジデンシャルゲートウェイ、ワイヤレスアクセスポイント、及び/又はネットワークインターフェースなどの通信デバイスを含む。そうした通信は、例えば、イーサネット接続、デジタル加入者線(DSL)接続、電話線接続、同軸ケーブルシステム、衛星システム、見通し内(line of site)ワイヤレスシステム、携帯電話システム等を介するものであり得る。この例では、インターフェース回路1620は、
図10の例示のコアインターフェース1020、例示のメモリインターフェース1030、及び例示のHWAコンフィギュレータインターフェース1040を実装する。
【0153】
また、図示される例のプロセッサプラットフォーム1600は、ソフトウェア及び/又はデータをストアするための一つ又は複数の大容量ストレージデバイス1628を含む。そのような大容量ストレージデバイス1628の例には、フロッピーディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、ブルーレイディスクドライブ、RAID(redundant array of independent disks)システム、及びDVDドライブが含まれる。この例では、一つ又は複数の大容量ストレージデバイス1628は、
図10の例示のデータベース1070を実装する。
【0154】
図14~
図15の機械実行可能命令1632は、大容量ストレージデバイス1628、揮発性メモリ1614、不揮発性メモリ1616、及び/又は、CD又はDVDなどの取り外し可能非一時的コンピュータ可読ストレージ媒体にストアされ得る。
【0155】
図17は、
図11のコアコントローラ1100を実装するために
図15の命令を実行するように構成される、例示のプロセッサプラットフォーム1700のブロック図である。プロセッサプラットフォーム1700は、例えば、サーバー、パーソナルコンピュータ、ワークステーション、自己学習機械(例えば、ニューラルネットワーク)、モバイルデバイス(例えば、携帯電話、スマートフォン、iPad(登録商標)などのタブレット)、パーソナルデジタルアシスタント(PDA)、ヘッドセット又はその他のウェアラブルデバイス、又は任意の他のタイプのコンピューティングデバイスであり得る。
【0156】
図示される例のプロセッサプラットフォーム1700はプロセッサ1712を含む。図示される例のプロセッサ1712はハードウェアである。例えば、プロセッサ1712は、任意の所望の集団又は製造業者からの一つ又は複数の集積回路、論理回路、マイクロプロセッサ、GPU、DSP、又はコントローラによって実装され得る。ハードウェアプロセッサは、半導体ベース(例えば、シリコンベース)のデバイスであり得る。この例では、プロセッサ1712は、
図11の例示のコアコンフィギュレータ1120、例示の画像データプロセッサ1130、及びパラメータ計算機1140を実装する。
【0157】
図示される例のプロセッサ1712は、ローカルメモリ1713(例えば、キャッシュ)を含む。図示される例のプロセッサ1712は、バス1718を介して揮発性メモリ1714及び不揮発性メモリ1716を含むメインメモリと通信する。揮発性メモリ1714は、SDRAM、DRAM、RDRAM(登録商標)、及び/又は任意の他のタイプのランダムアクセスメモリデバイスによって実装され得る。不揮発性メモリ1716は、フラッシュメモリ及び/又は任意の他の所望のタイプのメモリデバイスによって実装され得る。メインメモリ1714、1716へのアクセスは、メモリコントローラによって制御される。
【0158】
また、図示される例のプロセッサプラットフォーム1700は、インターフェース回路1720を含む。インターフェース回路1720は、イーサネットインターフェース、USB、ブルートゥース(登録商標)インターフェース、NFCインターフェース、及び/又はPCIエクスプレスインターフェースなど、任意のタイプのインターフェース規格によって実装され得る。
【0159】
図示される例では、一つ又は複数の入力デバイス1722が、インターフェース回路1720に接続される。入力デバイス1722によって、ユーザは、データ及び/又はコマンドをプロセッサ1712に入力できる。入力デバイス1722は、例えば、オーディオセンサ、マイク、カメラ(静止画又は動画)、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイントデバイス、及び/又は、音声認識システムによって実装され得る。
【0160】
また、一つ又は複数の出力デバイス1724が、図示される例のインターフェース回路1720に接続される。出力デバイス1724は、例えば、ディスプレイデバイス(例えば、LED、OLED、LCD、CRTディスプレイ、IPSディスプレイ、タッチスクリーン等)、触感出力デバイス、プリンタ、及び/又は、スピーカによって実装され得る。このように、図示される例のインターフェース回路1720は、グラフィクスドライバカード、グラフィクスドライバチップ、及び/又はグラフィクスドライバプロセッサを含み得る。
【0161】
また、図示される例のインターフェース回路1720は、ネットワーク1726を介した外部機械(例えば、任意の種類のコンピューティングデバイス)とのデータの交換を促進するために、トランスミッタ、レシーバ、トランシーバ、モデム、レジデンシャルゲートウェイ、ワイヤレスアクセスポイント、及び/又はネットワークインターフェースなどの通信デバイスを含む。そうした通信は、例えば、イーサネット接続、DSL接続、電話線接続、同軸ケーブルシステム、衛星システム、見通し内ワイヤレスシステム、携帯電話システム等を介するものであり得る。この例では、インターフェース回路1720は、
図11の例示のLSEインターフェース1110を実装する。
【0162】
また、図示される例のプロセッサプラットフォーム1700は、ソフトウェア及び/又はデータをストアするための一つ又は複数の大容量ストレージデバイス1728を含む。そのような大容量ストレージデバイス1728の例には、フロッピーディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、ブルーレイディスクドライブ、RAIDシステム、及びDVDドライブが含まれる。
【0163】
図15の機械実行可能命令1732は、大容量ストレージデバイス1728、揮発性メモリ1714、不揮発性メモリ1716、及び/又は、CD又はDVDなどの取り外し可能非一時的コンピュータ可読ストレージ媒体にストアされ得る。
【0164】
上記から、画像フレームフリーズ状況の検出を改善する例示のシステム、方法、装置、及び製品について説明されてきたことが理解されよう。有利にも、本願で説明される例は、CRC値を判定し、連続又はシーケンシャルな画像フレームのためのCRC値に基づいて画像フレームフリーズ状況を検出し得る。説明されるシステム、方法、装置、及び製品は、画像フレームの全体を互いに比較するのではなく、異なる画像フレームに関連するビットストリング(例えば、16ビットストリング、32ビットストリング等)を比較することによって、コンピューティングデバイスを用いる効率を改善する。従って、説明される方法、装置、及び製品は、代替の技法よりもデータ比較が実質的に少ない(例えば、必要とされるコンピューティングリソースが少ない、必要とされるストレージ又はメモリリソースが少ない等)ので、コンピュータの機能性に一つ又は複数の改善をもたらす一方で、本願で説明される例は、実質的にリアルタイムの検出或いはメモリ間画像パイプ処理を促進し得る。
【0165】
画像フレームフリーズ検出のための例示の方法、装置、システム、及び製品が本願で説明されている。それらのさらなる例及び組み合わせには以下が含まれる。
【0166】
例1は、或るハードウェアアクセラレータを含み、このハードウェアアクセラレータは、第1の画像フレームに関連する第1の画像データに基づいて第2の画像データを生成するためのコア論理回路であって、第2の画像データが、処理された画像データ、変換された画像データ、又は一つ又は複数の画像データ統計値の少なくとも一つに対応する、コア論理回路と、コア論理回路に結合され、第2の画像データに基づいて第1のCRC値を判定するためのロード/ストアエンジン(LSE)と、第2のインターフェースに結合される第1のインターフェースとを含む。第2のインターフェースはメモリに結合され、第1のインターフェースは、メモリから取得した第1のCRC値をホストデバイスに送信するためのものである。
【0167】
例2は、例1のハードウェアアクセラレータを含み、第1のインターフェースは、第1のCRC値が第2のCRC値に一致することに応答して、ホストデバイスに警告を生成させるためのものである。第2の画像フレームに関連する第2のCRC値は、第1の画像フレームの前に捕捉される。
【0168】
例3は、例1のハードウェアアクセラレータを含み、第1の画像データは一つ又は複数の画素値を含み、コア論理回路は、一つ又は複数の画素値の合計を判定することによって、一つ又は複数の画像データ統計値の第1の画像データ統計値を生成するためのものであり、LSEは、一つ又は複数の画素値の合計に基づいて第1のCRC値を判定するためのものである。
【0169】
例4は、例1のハードウェアアクセラレータを含み、第1の画像データは一つ又は複数の画素値を含む。コア論理回路は、一つ又は複数の画素の最小値を判定することによって、一つ又は複数の画像データ統計値の第1の画像データ統計値を生成し、及び、一つ又は複数の画素の最大値を判定することによって、一つ又は複数の画像データ統計値の第2の画像データ統計値を生成するためのものであり、LSEは、第1の画像データ統計値又は第2の画像データ統計値に基づいて第1のCRC値を判定するためのものである。
【0170】
例5は、例1のハードウェアアクセラレータを含み、第1の画像データは画素値を含む。コア論理回路は、画素値に対して近隣認識画素変換を実行して、変換された画像データを生成し、変換された画像データに対応するビットストリングに基づいてバイナリ値を判定し、及び、画素値の中央画素値をバイナリ値に対応する10進値で置換することによって、変換された画素データを生成するためのものであり、LSEは、変換された画素データに基づいて第1のCRC値を判定するためのものである。
【0171】
例6は、例5のハードウェアアクセラレータを含み、近隣認識画素変換はセンサス変換である
【0172】
例7は、例1のハードウェアアクセラレータを含み、LSEは論理回路スレッドを含む。論理回路スレッドは、第1の画像データを取得するための画像データバッファと、複数の入力チャネルと、マルチプレクサとを含み、画像データバッファはマルチプレクサの第1の入力に結合され、複数の入力チャネルの第1の入力チャネルはマルチプレクサの第2の入力に結合される。マルチプレクサは、画像データバッファを選択することに応答して、コア論理回路への第1の画像データの送信を促進するためのものである。
【0173】
例8は、例1のハードウェアアクセラレータを含み、LSEは、コア論理回路に結合される第3のインターフェースと、第1の出力チャネルを含む複数の出力チャネルと、第1のCRC論理回路を含む複数のCRC論理回路とを含み、複数のCRC論理回路のそれぞれ一つは、第3のインターフェースのそれぞれ一つと複数の出力チャネルのそれぞれ一つとに結合される。第1のCRC論理回路は、第1の出力チャネルから取得した第2の画像データに基づいて第1のCRC値を判定するためのものである。
【0174】
例9は或るシステムを含み、このシステムは、画像フレームを捕捉するためのカメラと、カメラに結合される集積回路とを含む。集積回路は、画像フレームに関連する第2の画像データに基づいて第1の画像データを生成し、また、第1の画像データに基づいてCRC値を判定するためのハードウェアアクセラレータ(HWA)と、CRC値に基づいて画像フレームフリーズ状況を検出するために、CRC値をホストデバイスに送信するためのホストデバイスインターフェースとを含む。第1の画像データは、処理された画像データ、変換された画像データ、又は、一つ又は複数の画像データ統計値、のうちの少なくとも一つに対応する。
【0175】
例10は、例9のシステムを含み、画像フレームは第1の画像フレームであり、CRC値は第1のCRC値である。このシステムは、第1のCRC値が第2のCRC値に一致することに応答して警告を生成するためのホストデバイスをさらに含み、第2のCRC値は、第1の画像フレームの前にカメラによって捕捉される第2の画像フレームに関連する。
【0176】
例11は、例9のシステムを含み、このシステムは、画像フレームを取得するための画像データインターフェースをさらに含み、集積回路は、画像データインターフェース及びHWAに結合されるデータ動きファブリックと、データ動きファブリックに結合されるメモリインターフェースと、メモリインターフェースに結合され、第2の画像データをストアするためのメモリとを含む。HWAは、第1の画像データを生成する前に、メモリから第2の画像データを取得するためのものである。
【0177】
例12は、例9のシステムを含み、このシステムは、画像フレームを取得するための画像データインターフェースをさらに含み、集積回路は、画像データインターフェース及びHWAに結合されるデータ動きファブリックと、データ動きファブリックに結合されるメモリインターフェースと、メモリインターフェースに結合されるメモリとを含む。HWAは、第1の画像データ又はCRC値の少なくとも一つを判定した後、第1の画像データ又はCRC値の少なくとも一つをメモリにストアするためのものである。
【0178】
例13は、例9のシステムを含み、第2の画像データは一つ又は複数の画素値を含み、HWAは、一つ又は複数の画素値の最小値又は最大値を判定することによって、一つ又は複数の画像データ統計値の第1の画像データ統計値を生成し、また、一つ又は複数の画素値の最小値又は最大値に基づいてCRC値を判定するためのものである。
【0179】
例14は、例9のシステムを含み、第2の画像データは画素値を含み、HWAは、画素値に対して変換動作を実行して、変換された画像データを生成し、変換された画像データに対応するビットストリングに基づいてバイナリ値を判定し、画素値の中央画素値をバイナリ値に対応する10進値で置換することによって、変換された画素データを生成し、及び、変換された画素データに基づいてCRC値を生成するためのものである。
【0180】
例15は、例9のシステムを含み、このシステムは、集積回路に結合されるディスプレイパネルをさらに含み、集積回路は、カメラから画像フレームを取得するための画像データインターフェースと、画像データインターフェースに結合され、画像データインターフェースから画像フレームを取得するためのデータ動きファブリックと、データ動きファブリックに結合され、データ動きファブリックから画像フレームを取得するためのメモリインターフェースと、メモリインターフェースに結合され、メモリインターフェースから取得した画像フレームをストアするためのメモリと、データ動きファブリックに結合され、画像フレームをデータ動きファブリックからディスプレイパネルに送信するためのディスプレイコントローラとを含む。
【0181】
例16は或る方法を含み、この方法は、カメラによって捕捉される第1の画像フレームに関連する第2の画像データに基づいて第1の画像データを生成することと、第1の画像データに基づいて第1のCRC値を判定することと、第1のCRC値を、第1の画像フレームより前にカメラによって捕捉された第2の画像フレームに関連する第2のCRC値と比較することと、比較に基づいて第1のCRC値が第2のCRC値に一致することに応答して、画像フレームフリーズ状況が検出されたことを示す警告を生成することとを含む。第1の画像データは、処理された画像データ、変換された画像データ、又は、一つ又は複数の画像データ統計値、の少なくとも一つに対応する。
【0182】
例17は、例16の方法を含み、この方法は、ディスプレイパネル上に警告を表示することと、画像フレームフリーズ状況が検出されないことに応答して、第1の画像フレームの後にカメラによって捕捉される第3の画像フレームを表示することとをさらに含む。
【0183】
例18は、例16の方法を含み、第2の画像データは一つ又は複数の画素値を含み、この方法は、一つ又は複数の画素値の合計、一つ又は複数の画素値の最小値、又は、一つ又は複数の画素値の最大値を判定することによって、一つ又は複数の画像データ統計値を生成することと、一つ又は複数の画素値の合計、一つ又は複数の画素値の最小値、又は、一つ又は複数の画素値の最大値に基づいて第1のCRC値を判定することとをさらに含む。
【0184】
例19は、例16の方法を含み、第2の画像データは画素値を含み、この方法は、画素値に対して変換動作を実行して、変換された画像データを生成することと、変換された画像データに対応するビットストリングに基づいてバイナリ値を判定することと、画素値の中央画素値をバイナリ値に対応する10進値で置換することによって、変換された画素データを生成することと、変換された画素データに基づいて第1のCRC値を判定することとをさらに含む。
【0185】
例20は、例16の方法を含み、第1のCRC値と第2のCRC値を比較することが第1の比較であり、この方法は、第2の画像データに基づいて第3のCRC値を判定することと、第2の画像データに関連する第1の変換された画素データに基づいて第4のCRC値を判定することと、第3のCRC値と、第2の画像フレームに関連する第5のCRC値との第2の比較を行うことであって、第5のCRC値が、第2の画像フレームに関連する第3の画像データに基づくものである、第2の比較を行うことと、第4のCRC値と、第2の画像フレームに関連する第6のCRC値との第3の比較を行うことであって、第6のCRC値が、第3の画像データに関連する第2の変換された画素データに基づくものである、第3の比較を行うことと、第1の比較、第2の比較、又は第3の比較の少なくとも一つが、対応するCRC値間の差を示すことに応答して、警告を生成することとをさらに含む。
【0186】
例21は、例16の方法を含み、輸送媒体電子制御ユニットが、第1のCRC値を第2のCRC値と比較するためのものであり、この方法は、警告を生成することに応答して、ディスプレイパネル上に第1の画像フレームを表示しないことと、第1のCRC値が第2のCRC値に一致しないことに応答して、ディスプレイパネル上に第1の画像フレームを表示することとをさらに含む。
【0187】
或る例示のシステム、方法、装置、及び製品を本願において説明してきたが、本願の適用の範囲はそれらに限定されない。むしろ、本願は、本願の特許請求の範囲内に適正に含まれる全てのシステム、方法、装置、及び製品に適用される。
【国際調査報告】