(57)【要約】  映像フレームコーデックアーキテクチャのための技術および装置が記載される。フレーム復元器は、圧縮フレームを復元して復元フレームを発生させる。フレーム復元器コントローラは、フレーム復元器への共有アクセスを調停する。ＳｏＣの複数のコアは、フレーム復元器コントローラを介してフレーム復元器から復元フレームを受信するよう要求する。フレーム復元器コントローラは要求待ち行列を実現することができ、要求または要求を出しているコアの優先順位に基づいて要求処理を順序付けすることができる。フレーム復元器コントローラは、複数のコアによるアクセスのためのタイムシェアリングプロトコルも確立することができる。ある実現例では、映像復号器がフレーム復元器と論理的に一体化され、復元フレームの一部を映像バッファに記憶させ、表示コントローラは、同期機構を用いて表示用の部分を取り出す。同様に、フレーム圧縮器コントローラは、複数のコアについてのフレーム圧縮器に対する共有アクセスを調停することができる。
2020527764.tif 000002
【特許請求の範囲】
【請求項１】
電子デバイスであって、
複数の圧縮フレームを復元して複数の復元フレームを発生させるように構成されるフレーム復元器と、
前記フレーム復元器に結合され、かつ複数のコアについて前記フレーム復元器へのアクセスを調停するように構成されるフレーム復元器コントローラと、
前記フレーム復元器コントローラに結合される前記複数のコアのうちの第１のコアとを備え、前記第１のコアは、前記フレーム復元器コントローラを介して、前記フレーム復元器によって発生される前記複数の復元フレームのうちの１つの復元フレームを取得するように構成され、さらに
前記フレーム復元器コントローラに結合される前記複数のコアのうちの第２のコアを備え、前記第２のコアは、前記フレーム復元器コントローラを介して、前記フレーム復元器によって発生される前記複数の復元フレームのうちの別の復元フレームを取得するように構成される、電子デバイス。
【請求項２】
前記第１のコアは、第１の映像関連目的のために前記復元フレームを用いるように構成され、
前記第２のコアは、第２の映像関連目的のために他の復元フレームを用いるように構成され、
前記第１の映像関連目的および前記第２の映像関連目的は、映像復号、映像表示、映像のコード変換、または映像補償を含む映像関連目的の群から選択される異なる映像関連目的を備える、請求項１に記載の電子デバイス。
【請求項３】
前記第１のコアは、ビデオストリームを復号して複数の復号フレームを発生させるように構成される映像復号器を備え、
前記フレーム復元器は、前記映像復号器と論理的に一体化され、
前記第２のコアは、表示コントローラを備える、請求項１または２に記載の電子デバイス。
【請求項４】
前記フレーム復元器コントローラは、
複数の要求を記憶するように構成される要求待ち行列を備え、各々の要求は少なくとも１つの復元フレームに対応し、前記フレーム復元器コントローラはさらに
前記複数のコアから前記複数の要求を受信しかつ前記複数の要求を前記要求待ち行列に挿入するように構成される要求マネージャを備える、先の請求項のいずれかに記載の電子デバイス。
【請求項５】
前記フレーム復元器コントローラは、前記複数の要求に対応する複数の優先順位に従って前記複数の要求の処理を順序付けするように構成される優先順位マネージャを備える、請求項４に記載の電子デバイス。
【請求項６】
前記フレーム復元器コントローラは、タイムシェアリングプロトコルを確立して前記複数のコアの間で前記フレーム復元器を共有するように構成されるタイムシェアリングプロトコルハンドラを備える、先の請求項のいずれかに記載の電子デバイス。
【請求項７】
前記タイムシェアリングプロトコルハンドラは、
前記複数のコアのうち少なくとも１つのコアに割当てられる複数のタイムスロットを含むように前記タイムシェアリングプロトコルを確立することと、
前記複数のコアのうちのあるコアからの割込信号の受信を許可するように前記タイムシェアリングプロトコルを確立することと、
のうち少なくとも１つを行なうように構成され、前記割込信号は、復元フレームに対する要求を示す、請求項６に記載の電子デバイス。
【請求項８】
未圧縮フレームを圧縮して前記複数の圧縮フレームを発生させるように構成されるフレーム圧縮器と、
前記フレーム圧縮器に結合され、かつ前記複数のコアについて前記フレーム圧縮器へのアクセスを調停するように構成されるフレーム圧縮器コントローラとをさらに備える、先の請求項のいずれかに記載の電子デバイス。
【請求項９】
前記フレーム復元器に関連付けられる映像バッファと、
前記映像バッファに対応する同期レジスタとをさらに備え、前記同期レジスタは、前記映像バッファの内容のステータスを示す１つ以上の値を記憶するように構成され、
前記フレーム復元器は、前記複数の復元フレームのうちの１つの少なくとも一部を前記映像バッファに記憶させるように構成され、
前記フレーム復元器コントローラは、記憶された前記一部の前記ステータスを示す少なくとも１つの値を前記同期レジスタに書込むように構成される、先の請求項のいずれかに記載の電子デバイス。
【請求項１０】
複数のコアの間でフレーム復元回路構成を共有するための方法であって、
第１のコアから第１の復元フレームに対する第１の要求を受付けることと、
第１の圧縮フレームを復元して前記第１の復元フレームを発生させることと、
前記第１の要求に応答して前記第１の復元フレームを前記第１のコアに与えることと、
第２のコアから第２の復元フレームに対する第２の要求を受付けることと、
第２の圧縮フレームを復元して前記第２の復元フレームを発生させることと、
前記第２の要求に応答して前記第２の復元フレームを前記第２のコアに与えることとを備える、方法。
【請求項１１】
第３のコアから第３の復元フレームに対する第３の要求を受付けることと、
第３の圧縮フレームを復元して前記第３の復元フレームを発生させることと、
前記第３の要求に応答して前記第３の復元フレームを前記第３のコアに与えることとをさらに備え、
前記第１の要求は、前記第１のコアを示し、
前記第２の要求は、前記第２のコアを示し、
前記第３の要求は、前記第３のコアを示す、請求項１０に記載の方法。
【請求項１２】
少なくとも前記第１のコアおよび前記第２のコアによる前記フレーム復元回路構成へのアクセスのためのタイムシェアリングプロトコルを確立することをさらに備える、請求項１０または１１に記載の方法。
【請求項１３】
前記確立することは、
前記第１のコアに対応するタイムスロットの間に前記第２のコアからの割込を受信することと、
前記割込の受信に応答して、前記第１のコアのための復元を行なうことから前記第２のコアのための復元を行なうことに切換えることとを備える、請求項１２に記載の方法。
【請求項１４】
前記第１の復元フレームを与えることと、前記第２の復元フレームを与えることとを、前記第１の要求と前記第２の要求との間の相対的な優先順位に少なくとも部分的に依存する順序で行なうことをさらに備える、請求項１０から１３のいずれかに記載の方法。
【請求項１５】
前記第２の圧縮フレームは、ラインおよび付加的なラインを備え、
前記第２の復元フレームを与えることは、
同期レジスタをポーリングして映像バッファに対する前記ラインの読出ステータスを示す少なくとも１つの値を取得することと、
前記少なくとも１つの値に応答して、前記付加的なラインを前記映像バッファに記憶することとを備える、請求項１０から１４のいずれかに記載の方法。
【請求項１６】
複数のコアから複数の圧縮フレームのそれぞれに対する複数の要求を受付けることと、
複数の復元フレームを圧縮して前記複数の圧縮フレームをそれぞれ発生させることと、
前記複数の要求に応答して前記複数の圧縮フレームを前記複数のコアに与えることとをさらに備える、請求項１０から１５のいずれかに記載の方法。
【請求項１７】
電子デバイスであって、
ビデオストリームを復号して複数の復号フレームを発生させるように構成される映像復号器を備え、前記映像復号器は、
前記複数の復号フレームを圧縮して複数の圧縮フレームを発生させるように構成されるフレーム圧縮器と、
前記複数の圧縮フレームを復元して複数の復元フレームを発生させるように構成されるフレーム復元器と、
前記フレーム復元器に結合され、かつ前記フレーム復元器へのアクセスを調停するように構成されるフレーム復元器コントローラとを含み、さらに
前記フレーム復元器コントローラに結合される表示コントローラを備え、前記表示コントローラは、前記フレーム復元器コントローラを介して、前記フレーム復元器によって発生される前記複数の復元フレームのうち１つの復元フレームを取得するように構成される、電子デバイス。
【請求項１８】
前記復元フレームは、復元表示フレームを備え、
前記複数の圧縮フレームは、圧縮基準フレームおよび圧縮表示フレームを含み、
前記フレーム復元器は、前記圧縮基準フレームを復元して復元基準フレームを発生させ、かつ前記圧縮表示フレームを復元して前記復元表示フレームを発生させるように構成され、
前記映像復号器は、前記復元基準フレームを用いて前記ビデオストリームを復号するように構成され、
前記表示コントローラは、前記復元表示フレームを用いて表示画面上の提示を制御するように構成される、請求項１７に記載の電子デバイス。
【請求項１９】
前記映像復号器は、さらに、
前記フレーム復元器に関連付けられる映像バッファと、
前記映像バッファに対応する同期レジスタとを含み、前記同期レジスタは、前記映像バッファの内容のステータスを示す１つ以上の値を記憶するように構成され、
前記フレーム復元器は、前記復元フレームの少なくとも一部を前記映像バッファに記憶させるように構成され、
前記フレーム復元器コントローラは、前記復元フレームの記憶される前記一部のステータスを示す少なくとも１つの値を前記同期レジスタに書込むように構成され、
前記表示コントローラは、前記復元フレームの取り出された前記一部のステータスを示す少なくとも別の値を前記同期レジスタに書込むように構成される、請求項１７または１８に記載の電子デバイス。
【請求項２０】
前記フレーム復元器コントローラは、タイムシェアリングプロトコルを確立して少なくとも前記映像復号器と前記表示コントローラとの間で前記フレーム復元器を共有するように構成される、請求項１７から１９のいずれかに記載の電子デバイス。
【請求項２１】
命令を記憶した非一時的コンピュータ読出可能媒体であって、前記命令は、プロセッサによって実行されると、前記プロセッサに請求項１０から１６のいずれか１項に記載の前記方法を行なわせる、非一時的コンピュータ読出可能媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
発明者
ビレ−ミッコ・ラウティオ（Ville-Mikko Rautio）
アキ・クーセラ（Aki Kuusela）
背景
電子デバイスは、製造、通信、健康管理、商業、社会的交流、および娯楽において不可欠な役割を果たしている。たとえば、電子デバイスは、商業および通信のためにクラウドベースの分散計算機能性を提供するサーバファームを動かしている。計算能力を有するデバイスは、医療器具から器械までおよび車両から産業用工具まで多数の異なる種類の近代機器に内蔵もされている。さらに、１つの電子デバイス−スマートフォン−は、文字通り常に手元に置いておくべき必需品となっている。
【０００２】
カメラまたは表示画面を有するものなどの多数の電子デバイスは映像データを操作する。たとえば、映像は、セキュリティカメラを用いて取得され、次に明瞭性またはコントラストなどのある視覚的局面を改良するように画質向上されることがある。既存の映像データも操作されて個々の映像フレームの見た目を向上させて、スマートフォンまたはテレビモニタの表示画面上に提示することができる。たとえば、映画の映像データを処理して人工的なグラフィックス画像の臨場感を向上させたり表示解像度を上げたりし得る。産業および医療環境では映像画像データも操作される。たとえば、三次元身体スキャンからの画像データをともにつなぎ合わせて映像として提示し、医師がその検討および分析を行なうことができる。
【０００３】
これらの状況のうちいずれでも、映像データの操作は大量の処理を要するタスクである。これは部分的には、典型的に映像データ中にある情報の大きさまたは量によるものである。結果的に、映像データを扱うのに充てられる集積回路（ＩＣ）チップの領域が他の種類のデータ用の領域よりも大きくなる可能性がある。映像データを扱うことの難しさは、電子デバイスが扱うことを期待される映像の表示解像度が増大し続けていることによって悪化している。たとえば、高画質（ＨＤ）映像が有する映像データは標準画質（ＳＤ）映像よりも約４倍多く、ウルトラＨＤ（ＵＨＤ）または４Ｋ映像が有する映像データはＨＤ映像よりも約４倍多い。
【０００４】
したがって、電子デバイスが処理することを期待される映像データの量はここ１０年ほどで劇的に増大した。映像データ処理に対する要求は、仮想現実（ＶＲ）および人工現実（ＡＲ）の使用がより一般的になるにつれて、この数年でさらに大きくなると予測される。したがって、電子デバイスの製造者は、増え続ける映像データ量を扱うために電子デバイスの能力を向上させようと努力を続けている。
【０００５】
この背景説明は、開示の文脈を一般的に提示するために与えられる。他に本明細書中で示されなければ、この箇所に記載される内容が本開示または添付の請求項に対する先行技術であることを明示的にも暗示的にも認めるものではない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
要約
映像フレームコーデックアーキテクチャのための技術および装置が記載される。これらの技術および装置により、集積回路（ＩＣ）チップは、ロスレス技術を含むより新しいフレーム圧縮／復元技術への高度化のための効率化ワークフローも容易にしつつ、より少ない量の回路構成リソースを用いて高帯域幅映像データを処理できるようになる。そのためにＩＣチップの複数の異なるコアに複数の別々のフレーム復元ユニットを含める必要がなくなる。代わりに、フレーム復元器は、フレーム復元器クライアント回路として機能する複数の異なるコアにフレーム復元サービスを提供することができる。フレーム復元器コントローラは、複数のコアのうちの１つ以上のコアから受信する復元要求を順序付けする待ち行列または優先順位機構を用いた復元サービスの共有を容易にする。フレーム復元器コントローラは、タイムシェアリングプロトコル（time-sharing protocol）に従ってフレーム復元器へのアクセスを調停することもできる。例示的な実現例では、フレーム復元器は、映像復号器クライアント回路と同じ場所に配置され、フレーム復元器は少なくとも表示コントローラと共有される。同様に、フレーム圧縮器は、フレーム圧縮器クライアント回路として機能する複数の異なるコアにフレーム圧縮サービスを提供することができる。フレーム圧縮器コントローラは、複数のコアと圧縮サービスを共有するのを容易にする。さらに、フレーム圧縮サービスとフレーム復元サービスとの両者ともを単一のＩＣチップにおいて提供して複数のコアにわたって共有することができる。
【課題を解決するための手段】
【０００７】
以下に記載する局面は、フレーム復元器およびフレーム復元器コントローラを備える電子デバイスを含む。フレーム復元器は、複数の圧縮フレームを復元して複数の復元フレームを発生するように構成される。フレーム復元器コントローラは、フレーム復元器に結合され、かつ複数のコアについてフレーム復元器へのアクセスを調停するように構成される。複数のコアは第１のコアおよび第２のコアを含む。第１のコアは、フレーム復元器コントローラに結合され、フレーム復元器コントローラを介して、フレーム復元器によって発生される複数の復元フレームのうちある１つの復元フレームを取得するように構成される。第２のコアは、フレーム復元器コントローラに結合され、フレーム復元器コントローラを介して、フレーム復元器によって発生される複数の復元フレームのうち別の１つの復元フレームを取得するように構成される。たとえば、第１のコアは、フレーム復元器コントローラを介して、フレーム復元器によって発生される複数の復元フレームのうち第１の復元フレームを取得するように構成され得る。第２のコアは、フレーム復元器コントローラを介して、フレーム復元器によって発生される複数の復元フレームのうち第２の復元フレームを取得するように構成され得る。
【０００８】
以下に記載する局面は、複数のコアの間でフレーム復元回路構成を共有するための方法も含む。方法は、第１のコアから第１の復元フレームに対する第１の要求を受付けることを備える。方法は、第１の圧縮フレームを復元して第１の復元フレームを発生させることも備える。第１の復元フレームは、第１の要求に応答して第１のコアに与えられる。方法は、加えて、第２のコアから第２の復元フレームに対する第２の要求を受付けることを備える。方法はさらに、第２の圧縮フレームを復元して第２の復元フレームを発生させることを備える。第２の復元フレームは、第２の要求に応答して第２のコアに与えられる。
【０００９】
以下に記載する局面は、映像復号器および表示コントローラを備える別の電子デバイスを含む。映像復号器は、ビデオストリームを復号して複数の復号フレームを発生させるように構成される。映像復号器は、フレーム圧縮器、フレーム復元器、およびフレーム復元器コントローラを含む。フレーム圧縮器は、複数の復号フレームを圧縮して複数の圧縮フレームを発生させるように構成される。フレーム復元器は、複数の圧縮フレームを復元して複数の復元フレームを発生させるように構成される。フレーム復元器コントローラは、フレーム復元器に結合され、かつフレーム復元器へのアクセスを調停するように構成される。表示コントローラはフレーム復元器コントローラに結合される。表示コントローラは、フレーム復元器コントローラを介して、フレーム復元器によって発生される複数の復元フレームのうちある１つの復元フレームを取得するように構成される。
【００１０】
以下に記載する局面は、フレーム復元器および複数のコアを備えるシステムも含む。フレーム復元器は、複数の圧縮フレームを復元して複数の復元フレームを発生させるように構成される。複数のコアは第１のコアおよび第２のコアを含む。第１のコアは、フレーム復元器に結合され、かつ複数の復元フレームのうちある１つの復元フレームを取得するように構成される。第２のコアは、フレーム復元器に結合され、かつ複数の復元フレームのうち別の１つの復元フレームを取得するように構成される。たとえば、第１のコアは、複数の復元フレームのうち第１の復元フレームを取得するように構成され得る。第２のコアは、複数の復元フレームのうち第２の復元フレームを取得するように構成され得る。システムは、フレーム復元器を制御して、第１のコアおよび第２のコアを含む複数のコアについてフレーム復元器へのアクセスを調停するための制御手段も備える。加えてまたはこれに代えて、システムは、複数の未圧縮フレームを圧縮して複数の圧縮フレームを発生させるように構成されるフレーム圧縮器を備えることができる。第１および第２のコアは各々、複数の圧縮フレームのうちのそれぞれの圧縮フレームを取得することができる。このように、システムは、フレーム圧縮器を制御して、第１のコアおよび第２のコアを含む複数のコアについてフレーム圧縮器に対するアクセスを調停するための制御手段も備えることができる。
【００１１】
以下の図面を参照して、映像フレームコーデックアーキテクチャを実現する装置およびそのための技術を記載する。同様の特徴および構成要素を参照するのに、図面を通じて同じ番号を用いる。
【図面の簡単な説明】
【００１２】
【図１】映像フレームコーデックアーキテクチャを実現することができるプリント回路基板を含む例示的環境を示す図である。
【図２】映像フレームコーデックアーキテクチャを実現することができる例示的環境の他の局面を示す図である。
【図３】フレーム圧縮器−復元器、フレーム圧縮器−復元器コントローラ、および複数のコアを含む映像フレームコーデックアーキテクチャの例示的実現例を有するシステムオンチップ（ＳｏＣ）を示す図である。
【図３−１】フレーム圧縮器、フレーム圧縮器コントローラ、および複数のコアを含む映像フレームコーデックアーキテクチャの例示的実現例を有するＳｏＣを示す図である。
【図３−２】フレーム復元器、フレーム復元器コントローラ、および複数のコアを含む映像フレームコーデックアーキテクチャの例示的実現例を有するＳｏＣを示す図である。
【図４】フレーム復元器およびコアに関連の例示的フレーム圧縮器−復元器コントローラを示す図である。
【図５】複数のコアが映像復号器および表示コントローラを含む映像フレームコーデックアーキテクチャを実現する例示的手法を示す図である。
【図６】映像復号器から表示コントローラに復元表示フレームをルーティングするための例示的技術を示す図である。
【図７】複数のコアが出す復元フレームに対する要求を管理するフレーム復元器コントローラによる例示的方式を示す図である。
【図８】フレーム圧縮リソースまたはフレーム復元リソースを共有するためのタイムシェアリングプロトコルを確立するフレーム圧縮器−復元器コントローラによる例示的方式を示す図である。
【図９】本明細書中に記載されるような映像フレームコーデックアーキテクチャを動作させるための例示的方法を示す図である。
【図１０】１つ以上の実現例に従って映像フレームコーデックアーキテクチャを実現することができる例示的電子デバイスのさまざまな構成要素を示す図である。
【発明を実施するための形態】
【００１３】
詳細な説明
概要
映画または他の映像のデータは、安置時の記憶と、電子デバイスまたはその内部構成要素同士の間を伝播しながらの送信との両方の点で大幅に帯域幅を消費する。映像の表示解像度が上がるにつれて、帯域幅要求が同様に大きくなっている。ウルトラＨＤ（ＵＨＤ）または４Ｋ映像の場合、たとえば、扱うべき映像データは、ほんの１０年前に一般的に用いていたＳＤ映像の場合よりも約１５−２０倍多い。この増大したデータの量により、単一の集積回路（ＩＣ）チップ内ですら映像を管理することが難しくなっている。たとえば、典型的なシステムオンチップ（ＳｏＣ）が有しているシステムバスは、当該システムバスを用いて異なるＳｏＣ構成要素同士の間で生の復号映像データを搬送すれば過負荷になってしまう可能性がある。
【００１４】
公知のように、たとえばＨ．２６４などの何らかの損失のあるコーデックを用いて映像を符号化することによって、映像の帯域幅を小さくすることができる。そうすると、符号化した映像を、たとえばクラウドサーバからタブレットコンピュータにストリーミングすることができたり、またはたとえばブルーレイディスク上またはフラッシュメモリ中に保存したりすることができる。たとえば、エンドユーザ電子デバイスは次に、映像を復号して表示画面上に提示する役割を担う。復号には、二値の１および０またはビットのストリームを、映像を表わすように順に表示可能な個別の復号映像フレームに変換することが必要である。この映像符号化および復号手順の一部として映像データを圧縮復元する。（たとえば、Ｈ．２６４コーデックを用いる）この映像レベル手順の場合、圧縮の量は大きいが、当該圧縮には損失もある。このように、映像レベルの圧縮／復号手順のために、ある映像情報は、見てわかる程度に画質が変化し得る程度まで失われてしまう。
【００１５】
映像情報のこの損失を受入れて、大量の映像データをデバイス同士の間で送信できるようにしたり、相当の量のメモリを用いて記憶できるようにしたりする。電子デバイスにおいてビデオストリームを復号して復号映像フレームを発生させた後に、この大量の映像データをフレーム群としてまたは多数の個別のフレームとしてフレーム毎に再作成する。これらの個別のフレームの各々は依然としてかなりの量のデータである。電子デバイスでこの量の映像データを扱うには、復号映像フレームが現在処理中または表示中でなければ、復号映像フレームを圧縮して圧縮映像フレームを発生させる。任意の所与の時間にストリームから有限の数のフレームが復号されるので、ある実現例ではロスレス圧縮アルゴリズムを復号フレームに適用することができる。ロスレス圧縮復元フレームレベル手順は、一切の一層の画像の劣化を防止することができる。圧縮映像フレームがメモリ中で占めるスペースはより少なく、ＳｏＣのシステムバスなどの配線で消費する帯域幅はより少ない。したがって、プリント回路基板（ＰＣＢ）上の異なるチップ同士の間、ＳｏＣとメインメモリとの間、または単一のＳｏＣの異なる構成要素同士の間ですら圧縮映像フレームを転送することができる。
【００１６】
既存のシステムで映像フレームあたりのまたはフレームレベルの圧縮を用いることができるようにするために、映像データとともに動くＳｏＣの各々それぞれの構成要素またはコアはそれぞれの復元ユニットを含む。この簡単な従来の手法を用いると、各々のコアは、圧縮映像フレームから復元映像フレームを独立して発生させ、次に所与のコアの映像関連目的に応じて復元映像フレームを処理することができる。しかしながら、この簡単な手法にはいくつかの付随の費用がかかる。第１に、ＩＣダイ上のかなりの領域が二重の映像フレーム復元回路構成または圧縮回路構成に充てられる。第２に、表示画面上に映像を提示するための表示経路は別個の復元ユニットを含む。第３に、ＳｏＣ向けの映像フレーム圧縮および復元技術を高度化するためのワークフローが大いに複雑である。この複雑さは、各々が個別の復元ユニットまたは個別の圧縮ユニットを含む（場合によっては、両方のユニットを含む）複数の異なるコアから生じている。換言すると、より新しくより効率的な復元アルゴリズムに高度化するためには、圧縮ユニットまたは復元ユニットを含む各々のコアを同時に修正し、次にＳｏＣの残余と再び一体化しなければならない。したがって、このワークフローの高度化の複雑さが、マルチコアチップにおける改良圧縮／復元アルゴリズムの採用を遅らせている。
【００１７】
これに対し、本明細書中に記載されるある実現例は、共有されるフレーム圧縮器−復元器を用いる。フレーム圧縮器−復元器は、フレーム圧縮器またはフレーム復元器、またはその両者を含むことができる。ＳｏＣなどのＩＣチップの複数のコアは、たとえば、共有フレーム復元器から圧縮フレームの復元版を取得することができる。所与のコアは、復元フレームに対する要求を行なうことができ、フレーム復元器は、要求された復元フレームを含む応答を与えることができる。このように、フレーム復元器は、フレーム復元サービスを提供するように機能することができ、各々のコアは、フレーム復元サービスに対するクライアントとして機能することができる。同様に、フレーム圧縮器は、フレーム圧縮サービスを提供するように機能することができ、各々のコアは、フレーム圧縮サービスに対するクライアントとして機能することができる。これらのフレームレベル圧縮および復元サービスはロスレスアルゴリズムを用いることができる。
【００１８】
ある実現例では、ＳｏＣは、異なるコアとして動作する映像復号器および表示コントローラなどの複数の異なる構成要素を含む。映像復号器は、ビデオストリームを復号して復号フレームを発生させるストリーム復号器を含む。映像復号器は、復号フレームから圧縮フレームを発生させるフレーム圧縮器も含む。ＳｏＣの複数の異なる構成要素は、復元フレームを処理するように構成される。たとえば、映像復号器は、ビデオストリームのさらなる復号のために復元基準フレームを用い得る。加えて、表示コントローラは、復元表示フレームを用いて表示画面上に映像を提示し得る。
【００１９】
これらの例示的な種類の復元フレームのうち任意のものを取得するため、フレーム復元器は、対応の圧縮フレームを復元する。フレーム復元器は、１つ以上のバス、少なくとも１つのバッファ、または何らかの他のルーティング機構を用いて、要求を出しているコアに要求された復元フレームをルーティングすることができる。フレーム復元器コントローラは、映像復号器および表示コントローラなどの少なくとも２つのコアの間でフレーム復元器に対する共有アクセスを調停する。フレーム復元器コントローラは、圧縮フレーム要求の要求待ち行列を管理することができる。管理は、優先順位方式に従ってフレーム要求処理の順序付けを必要とし得る。フレーム復元器コントローラは、フレーム復元器へのアクセスのためのタイムシェアリングプロトコルも確立することができる。タイムシェアリングプロトコルは、異なるコアに割当てられるタイムスロット、フレーム復元器の制御を掌握するためにコアが発する割込の受付けなどを含むことができる。
【００２０】
これらの態様では、フレーム圧縮器リソースまたはフレーム復元器リソースを、映像データを処理する２つ以上のクライアントコアの間で共有することができる。たとえば、フレーム復元器を共有することにより、フレーム復元に充てられるＳｏＣの領域が小さくなる。加えて、映像表示経路に沿って別個のフレーム復元器を挿入する必要がない。さらに、圧縮／復元アルゴリズムは、全体的なＳｏＣアーキテクチャから切離される。結果的に、圧縮／復元アルゴリズムをより容易にかつしたがってより頻繁に更新することができる。なぜなら、ＳｏＣ上に含まれ、そうして更新ワークフローに従うフレーム圧縮器またはフレーム復元器は、より少ない、または１つですらあるからである。
【００２１】
関連の図を参照して、さまざまな詳細レベルの例示的実現例を以下に検討する。以下の検討は、まず、例示的な動作環境を記載し、次に例示的方式およびハードウェアを記載し、その後に例示的方法を記載し、例示的電子デバイスおよび関連の例示的局面で終了する。
【００２２】
例示的環境
図１は、映像フレームコーデックアーキテクチャを実現することができるプリント回路基板１０４（ＰＣＢ）を含む例示的環境１００を示す。示されるように、環境１００は電子デバイス１０２を含む。電子デバイス１０２は、少なくとも１つのＰＣＢ１０４を含む。ＰＣＢ１０４は、集積回路１０６（ＩＣ）などの１つ以上の集積回路を含む。図２および図３を参照して以下に記載するように、ＰＣＢ１０４は、ＩＣ１０６とは別の少なくとも１つのメモリなどの他の集積回路を含むことができる。ＩＣ１０６は、少なくとも１つのフレーム復元器１０８−２、複数のコア１１０−１、１１０−２…１１０−ｎ（ｎは１よりも大きな整数を表わす）、ならびに少なくとも１つの圧縮フレーム１１２および少なくとも１つの復元フレーム１１４などの複数の映像フレームを含む。図１は、例示的環境１００を記載する一方で、簡略化のためにフレーム復元器１０８−２しか示していない。しかしながら、フレーム圧縮器−復元器１０８およびフレーム圧縮器１０８−１は、図３および図３−１をそれぞれ参照して以下に記載される。
【００２３】
例示的実現例では、フレーム復元器１０８−２は、複数のコア１１０−１〜１１０−ｎの少なくとも一部に通信するように結合される。フレーム復元器１０８−２は、圧縮映像フレームを復元する回路構成を含む。このように、フレーム復元器１０８−２は、圧縮フレーム１１２を復元して復元フレーム１１４を発生させることができる。動作の際、コア１１０は、フレーム復元器１０８−２を用いて圧縮フレームの復元版を取得する。たとえば、ｎ番目のコア１１０−ｎは、フレーム復元器１０８−２に要求１１６を送って、特定された圧縮フレーム１１２の復元版が要求されていることを示す。フレーム復元器１０８−２は、復元フレーム１１４を含む応答１１８を与える。例示的文脈として映像フレームを参照するが、本明細書中に記載されるフレームは、コンピュータで生成されたグラフィックスフレーム、映像フレーム、組合せフレームなどを含む視覚的データを有する任意のフレームを含むことができる。
【００２４】
この態様で、フレーム復元器１０８−２は、複数のコア１１０−１〜１１０−ｎの個別のコアに復元サービスを提供する。同様に、（たとえば、図３−１の）フレーム圧縮器１０８−１は、複数のコア１１０−１〜１１０−ｎの個別のコアに圧縮サービスを提供することができる。このように、フレーム復元器１０８−２またはフレーム圧縮器１０８−１（またはその両者）は、ＩＣ１０６のフレーム圧縮−復元（ＦＣＤ）サーバ回路構成１２２の少なくとも一部を実現する。同様に、複数のコア１１０−１〜１１０−ｎは、複数のフレーム圧縮−復元（ＦＣＤ）クライアント回路１２０を実現する。このクライアント−サーバアーキテクチャを用いて、フレーム圧縮器ユニットまたはフレーム復元器ユニットを２つ以上のコア１１０の間で共有してＩＣ１０６上のスペースを節約し、ＩＣ１０６のための、映像フレームを圧縮／復元するのに用いられる圧縮／復元技術を高度化するためのワークフローを簡略化することができる。図３、図３−１、および図３−２を参照して、ＩＣ１０６およびＰＣＢ１０４のためのより詳細な例示的アーキテクチャを以下に記載する。しかしながら、次に図２を参照して例示的実現例の付加的な局面を記載する。
【００２５】
図２は、本明細書中に記載されるような映像フレームコーデックアーキテクチャを実現することができる例示的環境２００の他の局面を示す。さまざまな非限定的例示的デバイス、すなわち、スマートフォン１０２−１、ノートブック型コンピュータ１０２−２、テレビ１０２−３、デスクトップコンピュータ１０２−４、タブレット１０２−５、およびウェアラブルデバイス１０２−６を含む電子デバイス１０２が示される。右側に示されるように、電子デバイス１０２は、１つ以上のプロセッサ２０２、１つ以上のコンピュータ読出可能媒体２０４、および少なくとも１つの配線２１６を含む。コンピュータ読出可能媒体２０４は、コード、データ、命令、他の情報などを記憶する、保持する、またはそれ以外のやり方で含むことができる。電子デバイス１０２はオペレーティングシステム２１２も含むことができる。別々に描かれているが、オペレーティングシステム２１２を１つ以上のコンピュータ読出可能媒体２０４上に記憶することができる。
【００２６】
アプリケーション（図示せず）またはコンピュータ読出可能媒体２０４上のコンピュータ読出可能命令として具現化されるオペレーティングシステム２１２は、プロセッサ２０２によって実行可能である。オペレーティングシステム２１２または基本入力／出力システム（ＢＩＯＳ）は、フレームコーデックパラメータモジュール２１４を含むことができる。フレームコーデックパラメータモジュール２１４は、１つ以上のパラメータを設定して、本明細書中に記載される共有フレーム圧縮および復元機能性の性能を可能化する、認定する、同調させる、またはそれ以外のやり方で容易にすることができる。
【００２７】
示されるように、コンピュータ読出可能媒体２０４は、少なくとも１つの映像バッファ２０６、少なくとも１つの共有ローカルキャッシュ２０８、および少なくとも１つのメインメモリ２１０を含むことができる。ある実現例では、映像バッファ２０６および共有ローカルキャッシュ２０８は、ＩＣ上の別個のメモリブロックである。他の実現例では、割当てが動的に変化するまたは固定される方式で共有ローカルキャッシュ２０８の一部が映像バッファ２０６として用いられるなどの場合、映像バッファ２０６および共有ローカルキャッシュ２０８は同じメモリブロックの一部である。配線２１６は、少なくとも１つのシステムバス２１８、少なくとも１つの映像バス２２０、および少なくとも１つの外部バス２２２を含むことができる。ある実現例では、映像バス２２０とシステムバス２１８とは異なるバスである。他の実現例では、別個の映像バスが存在せず、したがって映像データはシステムバス２１８を用いてＩＣの付近で伝播される。これらのコンピュータ読出可能媒体２０４およびこれらの配線２１６の例示的実現例を、図４−図６を参照して以下に記載する。
【００２８】
例示的構成要素および技術
図３は、ＰＣＢ１０４の一部を示す。ＰＣＢ１０４は、システムオンチップ３０２（ＳｏＣ）およびメインメモリ２１０を含む。ＳｏＣ３０２は、フレーム圧縮器−復元器１０８（ＦＣＤ）、フレーム圧縮器−復元器コントローラ３０４、および複数のコア１１０−１〜１１０−ｎを含む映像フレームコーデックアーキテクチャの例示的実現例を描く。ＳｏＣ３０２は、共有ローカルキャッシュ２０８およびシステムバス２１８も含む。メインメモリ２１０は、ＰＣＢ１０４の一部として含まれる（たとえば、その上に配設される）外部バス２２２を介してＳｏＣ３０２に結合される。
【００２９】
ＰＣＢ１０４は、複数のＩＣチップ、配線、インターフェイスなどを搭載するまたは固着するための剛性のまたは可撓性の材料で実現可能である。メインメモリ２１０は、たとえば、メモリ内容を維持するために定期的にリフレッシュされるダイナミックランダムアクセスメモリ（ＤＲＡＭ）または電力がなくてもメモリ内容を維持することができるフラッシュメモリを用いて実現可能である。一般的に、共有ローカルキャッシュ２０８など、ＳｏＣ３０２上に記憶されるデータにアクセスするのに消費されるよりも、メインメモリ２１０上に記憶されるデータにアクセスするのにより多くのエネルギが消費される。共有ローカルキャッシュ２０８は、たとえば、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ＤＲＡＭ、フラッシュメモリ、またはその何らかの組合せを用いて実現可能である。
【００３０】
システムバス２１８は、複数のコア１１０−１〜１１０−ｎ、共有ローカルキャッシュ２０８、フレーム圧縮器−復元器コントローラ３０４、ならびに他の構成要素およびインターフェイスを相互に接続する（たとえば、フレーム圧縮器−復元器１０８はシステムバス２１８に直接に結合され得る）。複数のコア１１０−１〜１１０−ｎの各々のコア１１０は、システムバス２１８を用いて共有ローカルキャッシュ２０８にデータを記憶させる、またはそこからデータを取り出すことができる。同様に、複数のコア１１０−１〜１１０−ｎの各々のコア１１０は、システムバス２１８または共有ローカルキャッシュ２０８も用いるなどによって外部バス２２２を用いてメインメモリ２１０にデータを記憶させる、またはそこからデータを取り出すことができる。たとえば、第１のコア１１０−１は、共有ローカルキャッシュ２０８にデータを記憶させることができ、第２のコア１１０−２は次に、記憶されたデータを共有ローカルキャッシュ２０８から取り出すことができる。
【００３１】
例示的な動作では、フレーム圧縮器−復元器１０８（ＦＣＤ）は、複数の未処理フレーム３０６を処理（たとえば、圧縮または復元）して、複数の処理済フレーム３０８を発生させる。フレーム圧縮器−復元器コントローラ３０４（ＦＣＤコントローラ）は、フレーム圧縮器−復元器１０８に結合されて、複数のコア１１０−１〜１１０−ｎについてフレーム圧縮器−復元器１０８へのアクセスを調停する。別個に示されるが、フレーム圧縮器−復元器１０８とフレーム圧縮器−復元器コントローラ３０４とは、論理的にともに一体化されてもよい。複数のコア１１０−１〜１１０−ｎのうちのコア１１０の少なくとも２つは、フレーム圧縮器−復元器コントローラ３０４に結合される。このように、各々のコア１１０は、フレーム圧縮器−復元器コントローラ３０４を介して、フレーム圧縮器−復元器１０８によって発生される処理済フレーム３０８をその未処理フレーム版から取得することができる。処理済フレーム３０８は、たとえば要求１１６および対応の応答１１８を用いて取得することができる。
【００３２】
フレーム圧縮器−復元器１０８は、（たとえば、図３−１に描かれるような）フレーム圧縮器３０８−１、（たとえば、図３−２に描かれるような）フレーム復元器１０８−２、またはその両者を含むことができる。同様に、フレーム圧縮器−復元器コントローラ３０４は、（たとえば、図３−１に描かれるような）フレーム圧縮器コントローラ３０４−１、（たとえば、図３−２に描かれるような）フレーム復元器コントローラ３０４−２、またはその両者を含むことができる。フレーム圧縮器−復元器１０８による処理動作が圧縮であるかまたは復元動作であるかに依存して、未処理フレーム３０６または処理済フレーム３０８の一方が圧縮フレームに対応し、他方が復元フレームに対応する。所与の実現例がフレーム圧縮器１０８−１とフレーム復元器１０８−２との両方（および／またはフレーム圧縮器コントローラ３０４−１とフレーム復元器コントローラ３０４−２との両方）を含む場合、そのような構成要素を同じ場所に配置してもよく、互いに近接して位置させてもよく、またはＩＣ上の異なる場所に位置させてもよい。たとえば、各々は、対応の圧縮または復元サービスの最も一般的なクライアントでありそうなコアのより近くに位置し得る。さらに、チップが同じ場所に配置されるフレーム圧縮器１０８−１とフレーム復元器１０８−２とを含む場合、各々は完全に別個の回路構成を含んでもよいし、またはそれらは回路構成を共有してもよい。ある実現例では、フレーム圧縮器−復元器１０８を、要求１１６に依存してロスレス圧縮動作またはロスレス復元動作の一部としてフレームのデータのメモリサイズを調整するロスレスフレームデータマニピュレータとして実現可能である。圧縮動作および復元動作の例示的実現例を、それぞれ図３−１および図３−２を参照して以下に記載する。
【００３３】
図３−１は、フレーム圧縮器１０８−１（ＦＣ）、フレーム圧縮器コントローラ３０４−１（ＦＣコントローラ）、および複数のコアを含む映像フレームコーデックアーキテクチャの例示的実現例を有するＳｏＣを示す。フレーム圧縮器１０８−１は、未圧縮フレーム（たとえば、復元フレーム１１４または未だ圧縮されていないフレーム）を圧縮して圧縮フレーム１１２を発生させる。フレーム圧縮器コントローラ３０４−１は、フレーム圧縮器１０８−１に結合され、複数のコア１１０−１〜１１０−ｎについてフレーム圧縮器１０８−１へのアクセスを調停する。別個に示されるが、フレーム圧縮器１０８−１とフレーム圧縮器コントローラ３０４−１とを、論理的にともに一体化してもよい。
【００３４】
複数のコア１１０−１〜１１０−ｎのうちのコア１１０の少なくとも２つは、フレーム圧縮器コントローラ３０４−１に結合される。ここで、各々のコア１１０は、視覚的データを発生させる構成要素またはブロックを含むことができる。このように、各々のコア１１０は、フレーム圧縮器コントローラ３０４−１を介して、フレーム圧縮器１０８−１によって発生される圧縮フレーム１１２をその復元フレーム１１４版から取得することができる。このように、たとえば要求１１６および対応の応答１１８を用いて圧縮フレーム１１２を取得することができる。動作の際、フレーム圧縮器コントローラ３０４−１は、パイプライン化された態様で、システムバス２１８上の要求を出しているあるコア１１０にフレーム圧縮器１０８−１の圧縮エンジンへのアクセスを付与して、メインメモリ２１０へのアクセスを提供する外部バス２２２へのトラフィックの追加を回避する。ある実現例では、フレーム圧縮器コントローラ３０４−１は、要求を出しているコア１１０への排他的なアクセスを一時的に付与して圧縮リソースにアクセスすることができる。
【００３５】
図３−２は、フレーム復元器１０８−２（ＦＤ）、フレーム復元器コントローラ３０４−２（ＦＤコントローラ）、および複数のコアを含む映像フレームコーデックアーキテクチャの例示的実現例を有するＳｏＣを示す。フレーム復元器コントローラ３０４−２は、フレーム圧縮器１０８−２に結合され、複数のコア１１０−１〜１１０−ｎについてフレーム復元器１０８−２へのアクセスを調停する。別個に示されるが、フレーム圧縮器１０８−２とフレーム圧縮器コントローラ３０４−２とを論理的にともに一体化してもよい。複数のコア１１０−１〜１１０−ｎのうちのコア１１０のうち少なくとも２つは、フレーム復元器コントローラ３０４−２に結合される。このように、各々のコア１１０は、フレーム復元器コントローラ３０４−２を介して、フレーム復元器１０８−２によって発生される復元フレーム１１４をその圧縮フレーム１１２版から取得することができる。このように、たとえば要求１１６および対応の応答１１８を用いて、復元フレーム１１４を取得することができる。
【００３６】
以下の説明の一部は、少なくとも復元動作を行なうことができる実現例に注目する。このように、各々は、フレーム復元器１０８−２とフレーム圧縮器−復元器コントローラ３０４またはフレーム復元器コントローラ３０４−２とを明示的に含み得る。しかしながら、各々の実現例は、付加的にまたは代替的に、圧縮動作を行なうフレーム圧縮器１０８−２を含み得る。さらに、図４−図６を参照して復元動作について記載する態様に少なくとも類似した態様でどのように圧縮動作および圧縮フレーム１１２の移動を達成することができるかが明らかになる。また、図７を参照して記載される要求の取扱いおよび図８を参照して記載されるタイムシェアリングプロトコルを、圧縮動作について同様の態様で同様に実現することができる。
【００３７】
コア１１０のうち少なくともいくつかは、映像関連目的のために映像データに対して動作することができる。映像関連目的は、映像復号、映像表示、映像のコード変換（たとえば、１つのアルゴリズムを用いて１つのコード化フォーマットから復号すること、および別のアルゴリズムを用いて別のコード化フォーマットに符号化すること）、映像補償（たとえば、画像を向上させるまたは増強するための、グラフィックス処理ユニット（ＧＰＵ）による映像フレームに対する動作）などを含む。図５を参照して、第１のコアが映像復号器として実現され、第２のコアが表示コントローラとして実現される例示的実現例を以下に記載する。しかしながら、まず図４を参照してフレーム復元器コントローラ３０４の例示的実現例を記載する。
【００３８】
図４は、一般的に４００で、フレーム復元器１０８−２およびコア１１０に関連の例示的フレーム圧縮器−復元器コントローラ３０４を示す。コア１１０はＦＣＤクライアントインターフェイス４１０を含み、フレーム復元器コントローラ３０４はＦＣＤサービスインターフェイス４０８を含む。ＦＣＤクライアントインターフェイス４１０およびＦＣＤサービスインターフェイス４０８は共同してコア１１０とフレーム圧縮器−復元器コントローラ３０４との間の通信を可能にする。このように、これらの２つのインターフェイスを用いて、コア１１０は、要求１１６をフレーム圧縮器−復元器コントローラ３０４に送ることができ、フレーム圧縮器−復元器コントローラ３０４は、応答１１８をコア１１０に送ることができる。
【００３９】
ＦＣＤクライアントインターフェイス４１０およびＦＣＤサービスインターフェイス４０８は、システムバス２１８（図示せず）、映像バス２１８などにより通信することができる。要求１１６は、ビット線、レジスタの１つ以上のビット、少なくとも１つのパケットに構築されるメッセージなどを用いて通信することができる。復元フレーム１１４を含む応答１１８は、コア１１０をフレーム復元器１０８−２に結合するバスを用いて、コア１１０とフレーム復元器１０８−２との両方がアクセスするメモリを用いて、およびその何らかの組合せを用いて、通信され得る。図５および図６を参照して、異なるインターフェイス通信の例を以下に記載する。
【００４０】
示されるように、フレーム圧縮器−復元器コントローラ３０４は、要求マネージャ４０２、要求待ち行列４０４、優先順位マネージャ４０６、およびタイムシェアリングプロトコルハンドラ４１２を含む。ＦＣＤサービスインターフェイス４０８は少なくとも、要求マネージャ４０２、優先順位マネージャ４０６、およびタイムシェアリングプロトコルハンドラ４１２に結合される。要求処理の優先順位付けを含む要求を管理するための例示的手法を図７を参照して以下に記載する。タイムシェアリングプロトコルを確立してフレーム復元器１０８−２にアクセスするためのタイムシェアリングプロトコルハンドラ４１２を用いる例示的方式を図８を参照して以下に記載する。
【００４１】
図５は、ＳｏＣの複数のコアが映像復号器５０２および表示コントローラ５０４を含む映像フレームコーデックアーキテクチャを実現する例示的手法５００を示す。左側で、映像復号器５０２は、フレーム圧縮器１０８−１を含むストリーム復号器５０６を含む。しかしながら、フレーム圧縮器１０８−１は、ストリーム復号器５０６または映像復号器５０２とは別個に実現されてもよい。右側で、表示コントローラ５０４はフレームバッファ５１８を含む。フレーム復元器１０８−２、フレーム圧縮器−復元器コントローラ３０４（ＦＣＤコントローラ）、および映像バッファ２０６は、映像復号器５０２に関連付けられる。たとえば、これらの３つの構成要素を映像復号器５０２と同じ場所に配置する（たとえば、その隣に配設するまたはそれと物理的に混在させる）ことができる、映像復号器５０２と少なくとも部分的に論理的に一体化することができる、またはこれらはその何らかの組合せであることができる。映像復号器５０２および表示コントローラ５０４を参照して記載するが、原則は一般的にコア１１０に当てはまる。また、映像バッファ２０６を共有ローカルキャッシュ２０８とは別個に描いているが、代替的に映像バッファ２０６を共有ローカルキャッシュ２０８の一部として組入れてもよく、またはそれから割当ててもよい。
【００４２】
例示的実現例では、電子デバイスは、映像を表わすように符号化されるビットのストリームを含むことができるビデオストリーム５１４を取得する。ビデオストリーム５１４は、Ｈ．２６４などの何らかのコーデックを用いて符号化される複数の生フレーム５１６からなる。ストリーム復号器５０６は、システムバス２１８を介してビデオストリーム５１４を受信し、ビデオストリーム５１４を復号して複数の復号フレーム５１２を発生させる。そのうち１つを明示的に示す。フレーム圧縮器１０８−１は、複数の復号フレーム５１２を圧縮して複数の圧縮フレーム１１２を発生させる。示されるように、フレーム圧縮器１０８−１は、ストリーム復号器５０６と一体化される。このように、フレーム圧縮器１０８−１は、復号プロセスの一部として復号フレーム５１２を圧縮することができる。しかしながら、フレーム圧縮を代替的な態様で実現することができる。映像バッファ２０６、共有ローカルキャッシュ２０８、またはメインメモリ２１０において映像復号器５０２または別のコアがその後使用するために、これらの復号圧縮フレーム１１２を記憶することができる。
【００４３】
復号圧縮フレーム１１２を異なる映像関連目的に用いてもよい。たとえば、一層の映像復号の目的のために圧縮フレームを用いる場合、圧縮フレーム１１２は圧縮基準フレーム１１２Ｒを備え得る。これに代えて、他の圧縮フレームを映像表示目的に用いる場合、別の圧縮フレーム１１２は、圧縮表示フレーム１１２Ｄを備え得る。映像復号器５０２の映像復号機能性のために、フレーム復元器１０８−２は、圧縮基準フレーム１１２Ｒを復元して復元基準フレーム１１４Ｒを発生させる。映像復号器５０２は、復元基準フレーム１１４Ｒを用いたビデオストリーム５１４の復号を継続することができる。
【００４４】
表示コントローラ５０４の映像表示機能性のために、フレーム復元器１０８−２は、圧縮表示フレーム１１２Ｄを復元して復元表示フレーム１１４Ｄを発生させる。表示コントローラ５０４は、フレーム復元器コントローラクライアントインターフェイス４１０およびフレーム復元器コントローラサービスインターフェイス４０８（両者とも図４）を介して、（たとえば、図３−２の少なくともフレーム復元器コントローラ３０４−２を含む）フレーム圧縮器−復元器コントローラ３０４からこの復元サービスを要求することができる。フレーム圧縮器−復元器コントローラ３０４は、（実線の波状の矢印で表わされる）ルーティング機構５１０を介して復元表示フレーム１１４Ｄを表示コントローラ５０４に与える。表示コントローラ５０４は、復元表示フレーム１１４Ｄをフレームバッファ５１８に記憶させることができる。したがって、表示コントローラ５０４は、記憶された復元表示フレーム１１４Ｄを用いて表示画面上に映像フレームの画像を提示することができる。図５のフレーム圧縮器−復元器コントローラ３０４は、フレーム復元器１０８−２を用いた復元サービスを複数のコアに与えるという観点で記載されるが、原則はフレーム圧縮器１０８−１を用いた圧縮サービスを複数のコアに提供するフレーム圧縮器−復元器コントローラ３０４にも当てはまる。
【００４５】
細かな破線を用いて複数の例示的なルーティング機構５１０を図５に示す。ルーティング機構５１０は、フレーム圧縮器−復元器コントローラ３０４が映像復号器５０２または表示コントローラ５０４などの要求を出しているコアに復元フレーム１１４を与える異なる経路を表わす。第１のルーティング機構５１０−１において、フレーム圧縮器−復元器コントローラ３０４は、復元表示フレーム１１４Ｄをシステムバス２１８を介して表示コントローラ５０４のフレームバッファ５１８に与える。第２のルーティング機構５１０−２において、フレーム圧縮器−復元器コントローラ３０４は、システムバス２１８および共有ローカルキャッシュ２０８を介して復元表示フレーム１１４Ｄを表示コントローラ５０４に与える。たとえば、フレーム圧縮器−復元器コントローラ３０４は、共有ローカルキャッシュ２０８に復元表示フレーム１１４Ｄを記憶させることができ、表示コントローラ５０４は、共有ローカルキャッシュ２０８から記憶された復元表示フレーム１１４Ｄを取り出すことができる。
【００４６】
第３のルーティング機構５１０−３において、フレーム圧縮器−復元器コントローラ３０４は、システムバス２１８およびメインメモリ２１０を介して復元表示フレーム１１４Ｄを表示コントローラ５０４に与える。たとえば、フレーム圧縮器−復元器コントローラ３０４は、システムバス２１８および外部バス２２２を介してメインメモリ２１０にオフチップで復元表示フレーム１１４Ｄを記憶させることができる。表示コントローラ５０４は、２つのバスを用いてメインメモリ２１０から、記憶された復元表示フレーム１１４Ｄを取り出し、次にフレームをフレームバッファ５１８に記憶させることができる。
【００４７】
第４のルーティング機構５１０−４は、フレーム復元サービスのクライアントとしての映像復号器５０２にサービスを提供することに関する。第４のルーティング機構５１０−４において、フレーム圧縮器−復元器コントローラ３０４は、復元基準フレーム１１４Ｒを映像復号器５０２に与える。そのために、フレーム圧縮器−復元器コントローラ３０４は、復元基準フレーム１１４Ｒを映像バッファ２０６に転送する。映像復号器５０２は、映像バッファ２０６から復元基準フレーム１１４Ｒにアクセスすることができる。
【００４８】
第５のルーティング機構５１０−５において、集積回路が映像バス２２０およびシステムバス２１８を含む場合に、フレーム圧縮器−復元器コントローラ３０４は、少なくとも部分的にシステムバス２１８とは別個の映像バス２２０を介して復元表示フレーム１１４Ｄを表示コントローラ５０４に与える。示されるように、映像バス２２０は、映像データの伝播専用であり、少なくともフレーム圧縮器−復元器コントローラ３０４と表示コントローラ５０４との間に延在する。しかしながら、映像バス２２０は、他の映像データを他のコアにおよび他のコアから搬送することなどによって異なる態様で実現可能である。
【００４９】
第６のルーティング機構５１０−６において、フレーム圧縮器−復元器コントローラ３０４は、映像バッファ２０６を介して復元表示フレーム１１４Ｄを表示コントローラ５０４に与える。フレーム圧縮器−復元器コントローラ３０４は、復元表示フレーム１１４Ｄの少なくとも一部を映像バッファ２０６に記憶させる。１つの手法では、表示コントローラ５０４は、少なくともシステムバス２１８を用いて映像バッファ２０６から復元表示フレーム１１４Ｄを取り出す。別の手法では、表示コントローラ５０４は、（たとえば、システムバス２１８とは別個に存在する場合は）少なくとも映像バス２２０を用いて映像バッファ２０６から復元表示フレーム１１４Ｄを取り出す。いずれの手法を用いても、第６のルーティング機構５１０−６は、表示コントローラ５０４が映像バッファ２０６にアクセスするのに、メモリマッピングされた機構をさらに必要とし得る。メモリマッピングされた機構についての例示的実現例を次に図６を参照して記載する。
【００５０】
図６は、第６のルーティング機構５１０−６を用いて復元表示フレーム１１４Ｄを映像復号器５０２から表示コントローラ５０４にルーティングするための例示的技術６００を示す。この例では、映像復号器５０２は、フレーム復元器１０８−２およびフレーム圧縮器−復元器コントローラ３０４と一体化される。映像復号器５０２は、映像バッファ２０６に加えて、同期レジスタ６０２を含む。映像バッファ２０６は、この例では出力バッファとして機能する。このように、フレーム圧縮器−復元器コントローラ３０４は、フレーム復元器１０８−２に、復元表示フレーム１１４Ｄの少なくとも一部を映像バッファ２０６に記憶させる。
【００５１】
第６のルーティング機構５１０−６のための例示的技術６００は、少なくとも１つのステータス通信６０６に係る。第１のステータス通信６０６−１は、フレーム圧縮器−復元器コントローラ３０４と同期レジスタ６０２との間で起こる。第２のステータス通信６０６−２は、表示コントローラ５０４と同期レジスタ６０２との間で起こる。各々のステータス通信６０６は、ポーリング動作または更新動作を含むことができ、システムバス２１８または映像バス２２０上で行なわれ得る。
【００５２】
復元表示フレーム１１４Ｄの少なくとも一部を映像バッファ２０６に記憶することに応答して、フレーム圧縮器−復元器コントローラ３０４は、第１のステータス通信６０６−１の更新動作の一部として、値６０４を同期レジスタ６０２に書込む。この値６０４は、映像バッファ２０６の記憶内容のステータスを示す。ここで、値６０４は、復元表示フレーム１１４Ｄの１つ以上の表示ライン（display lines）６０８などの特定の映像データが新たに映像バッファ２０６の中に置かれたことを示す。このように、映像バッファ２０６は、１つ以上の表示ライン６０８を保持するラインバッファとして機能することができる。
【００５３】
一方で、表示コントローラ５０４は、第２のステータス通信６０６−２のポーリング動作の一部として、同期レジスタ６０２から値６０４を抽出する。値６０４に基づいて、表示コントローラ５０４は、要求された復元表示フレーム１１４Ｄの１つ以上の新たな表示ライン６０８が映像バッファ２０６の中に存在しかつ利用可能であると判断する。したがって、表示コントローラ５０４は、値６０４に従って、システムバス２１８または映像バス２２０を介して映像バッファ２０６から少なくとも１つの表示ライン６０８を取り出す。取り出しに応答して、表示コントローラ５０４は、第２のステータス通信６０６−２の更新動作の一部として、別の値６０４を同期レジスタ６０２に書込み、対応の取り出された表示ライン６０８のステータスを示す。したがって、この他の値６０４は、少なくとも１つの表示ライン６０８が映像バッファ２０６から読出されたことを示す。
【００５４】
周期的にまたは何らかの動作の一部として、フレーム圧縮器−復元器コントローラ３０４は、第１のステータス通信６０６−１の一部として同期レジスタ６０２をポーリングする。フレーム圧縮器−復元器コントローラ３０４は、他の値６０４を調べて、対応の表示ライン６０８が表示コントローラ５０４によってアクセスされて取り出されたか否かを判断する。そうであれば、フレーム圧縮器−復元器コントローラ３０４は、対応の表示ライン６０８のメモリ場所を新たなデータで上書きできることを知る。
【００５５】
値６０４または他の値６０４は、たとえば１つ以上のビットを備えることができる。値６０４および他の値６０４は、同期レジスタ６０２の異なる記憶場所または同じ記憶場所に対応し得る。映像復号器５０２および表示コントローラ５０４を参照して記載するが、これらの原則は一般的にコア１１０に当てはまる。同期レジスタ６０２中の値６０４をポーリングし更新することにより、メモリマッピングされた転送機構を用いて復元表示フレーム１１４Ｄのルーティングを制御することができる。
【００５６】
図７は、復元フレームについて複数のコアが出す要求１１６を管理するフレーム圧縮器−復元器コントローラ３０４による例示的方式７００を示す。この例では、映像復号器５０２は、フレーム復元器１０８−２およびフレーム圧縮器−復元器コントローラ３０４と一体化される。フレーム圧縮器−復元器コントローラ３０４は、（図４にも示される）要求マネージャ４０２、要求待ち行列４０４、および優先順位マネージャ４０６によって表わされる。示されるように、要求待ち行列４０４は複数の要求１１６を含む。各々の要求１１６は優先順位７０６に対応する。各々の要求１１６は要求元識別７０２およびフレーム識別７０４も含むまたはそれらに対応する。
【００５７】
復元フレームに対するある要求は、他の要求よりもより重要であり得るまたは時間的に関連があり得る。たとえば、ストリーミングビデオのリアルタイム提示に関する要求は、ベストエフォート速度でバックグラウンドで行なうことができる映像コード変換動作に対する要求よりも、エンドユーザにとってより重要である見込みが高い。したがって、前者の映像関連目的に対する要求を、後者の映像関連目的に対する要求よりも優先することができる。その目的のため、優先順位７０６を、要求、コア、フレームなどに関連付けることができる。
【００５８】
例示的実現例では、要求元識別７０２は、（図５および図６の）映像復号器５０２または表示コントローラ５０４などの要求を出しているコア１１０を識別する。フレーム識別７０４は、たとえばフレーム番号、時間インデックス、またはそのオフセットなどにより、要求される復元フレーム１１４を識別する。要求元識別７０２は、発信元または（たとえば、各コア毎に専用のバスがそれぞれ与えられている場合は）要求１１６を与えるのに用いられるバスなどに基づいて、１つ以上のビット線上の特定の電圧値を用いて、要求１１６とともに転送される割り振られた識別値によって、実現可能である。フレーム識別７０４は、各々の要求１１６中に明示的に含まれ得る、（たとえば、次の順のフレームが所望される場合は）暗示的に要求１１６の中に含まれ得る、およびある範囲のフレームの一部として先の要求に含まれ得る、などである。
【００５９】
動作の際、要求マネージャ４０２は、フレーム復元器コントローラサービスインターフェイス４０８を介してなど、コア１１０から要求１１６を受信する。要求マネージャ４０２は、要求１１６を要求待ち行列４０４に挿入する。１つの手法では、要求マネージャ４０２は、要求待ち行列４０４を先入れ先出し（ＦＩＦＯ）の態様で動作させる。これに代えて、要求マネージャ４０２は、対応の優先順位７０６に基づいて、各々の要求１１６を要求待ち行列４０４に挿入することができる。各個別の要求１１６の対応の優先順位７０６は、対応の個別の要求１１６に含まれ得るまたはそれに伴い得る。これに代えて、優先順位７０６を、要求１１６の群に対してまとめて明示的に割り振ったり、または各々のコア１１０を、関連付けられるコア１１０が出す各々の要求１１６に暗示的に割り振られる特定の優先順位７０６に関連付けたりすることができる。
【００６０】
示されるように、各々の要求１１６は、異なる優先順位７０６を有する要求１１６が同じ要求待ち行列４０４内に記憶されるように、対応の優先順位７０６に関連付けられて要求待ち行列４０４中に記憶される。これに代えて、フレーム圧縮器−復元器コントローラ３０４は、各々の要求待ち行列４０４が対応の優先順位７０６に関連付けられた複数の要求待ち行列４０４を用いて、示される要求待ち行列４０４を実現し得る。したがって、各々の要求１１６は、当該要求１１６に対応するそれぞれの優先順位７０６に関連付けられるそれぞれの要求待ち行列４０４中に記憶される。
【００６１】
示される要求待ち行列４０４を実現するのに用いられる手法に拘わらず、優先順位マネージャ４０６は、複数の要求１１６にそれぞれ対応する複数の優先順位７０６に従って、複数の要求１１６の処理の順序付けを行なう。このように、優先順位マネージャ４０６は、２つ以上の要求１１６同士の間の相対的な優先順位に基づく優先順位方式を用いて次の要求１１６を抽出する。優先順位マネージャ４０６は、次の要求１１６をフレーム復元器１０８−２に前送りする。フレーム復元器１０８−２は、要求された復元フレーム１１４に対応する圧縮フレーム１１２を取り出す。図５および図６の例示的シナリオを続けて、フレーム復元器１０８−２は、圧縮表示フレーム１１２Ｄを取り出して復元動作を行ない復元表示フレーム１１４Ｄを発生させる。フレーム圧縮器−復元器コントローラインターフェイス４０８は、フレーム復元器１０８−２に、応答１１８の一部として復元表示フレーム１１４Ｄを映像復号器５０２にルーティングさせる。
【００６２】
図８は、（たとえば図３−１の）フレーム圧縮器１０８−１などのフレーム圧縮リソースまたは（たとえば図３−２の）フレーム復元器１０８−２などのフレーム復元リソースを共有するための少なくとも１つのタイムシェアリングプロトコル８００を確立するフレーム圧縮器−復元器コントローラ３０４による例示的方式を示す。（明示的に図示されない）フレーム圧縮器−復元器コントローラ３０４のタイムシェアリングプロトコルハンドラ４１２は、少なくとも１つの例示的なタイムシェアリングプロトコル８００−１、８００−２、または８００−３を確立することができる。矢印８１２で示されるように、時間は右方向に進む。各々の例示的なタイムシェアリングプロトコル８００は、２つのコアの間でのフレーム復元リソースの共有の観点で記載される。しかしながら、開示されるタイムシェアリングプロトコル８００は、２つよりも多くのコアの間でのフレーム復元リソースの共有に適用可能である。図８は、フレーム復元をタイムシェアリングする観点で記載されるが、原則は、フレーム圧縮のためのタイムシェアリングプロトコルの実現にも当てはまる。
【００６３】
第１のタイムシェアリングプロトコル８００−１の場合、時間は複数のタイムスロットに分割される。これらのタイムスロットは固定時間を有し、各々それぞれのタイムスロットがそれぞれのコアに割り振られる。タイムスロット８０２−１は、映像復号器５０２などの第１のコアに対応する。タイムスロット８０２−２は、表示コントローラ５０４などの第２のコアに対応する。動作の際、タイムシェアリングプロトコルハンドラ４１２は、２つの異なるタイムスロットの所定の長さで、２つのコアの間でフレーム復元リソースに対するアクセスを回す。第１のタイムシェアリングプロトコル８００−１では割込はイネーブルされない。
【００６４】
これに対し、割込８０６は、第２のタイムシェアリングプロトコル８００−２についてはイネーブルされる。ここでは、フレーム復元リソースは、一般的に２つのクライアントのうち一方−この例では第１のコア−について確保される。このように、タイムスロット８０４−１は第１のコアに対応し、無限に延びることができる。これらのタイムスロット８０４−１は、タイムシェアリングプロトコルハンドラ４１２が割込８０６を受信するまで延びる。コア１１０は、割込線をハイに駆動することなどによって、専用の映像バスを用いて、システムバス上のメッセージを介して割込８０６を信号で送ることができる。割込８０６の検出に応答して、タイムシェアリングプロトコルハンドラ４１２は文脈切換えを開始して、フレーム復元リソースへのアクセスを異なるコアに転送し、別のタイムスロットを開始する。
【００６５】
第２のタイムシェアリングプロトコル８００−２に示されるように、第２のコアは割込８０６ａを発する。タイムシェアリングプロトコルハンドラ４１２は割込８０６ａを検出し、フレーム復元器１０８−２へのアクセスを、割込んでいる第２のコアに転送する。このように、フレーム復元器１０８−２は、少なくとも１つの復元動作を行なって、割込８０６ａの後のタイムスロット８０４−２の間に、要求を出している第２のコアのために復元フレーム１１４を発生させる。各々のタイムスロット８０４−２の長さは、固定したり、第２のコアについて何個の要求が行列待ちしているかに依存したり、各々の行列待ちしている要求の優先順位レベルに依存したりなどすることができる。別のタイムスロット８０４−１について再びフレーム復元リソースへのアクセスが第１のコアに付与された後、第２のコアはその後に別の割込８０６ｂを発することができる。代替的手法では、第２のコアに割り振られる各々のタイムスロット８０４−２は、別のコアが割込（図示せず）を発するまで継続することができる。このように、この代替的手法では、文脈切換えは、割込８０６に応答してかつ経過した時間とは独立して起こり得る。
【００６６】
第３のタイムシェアリングプロトコル８００−３の場合、時間は複数のタイムスロットに分割される。第３のタイムシェアリングプロトコル８００−３は、第１のタイムシェアリングプロトコルと第２のタイムシェアリングプロトコルとのハイブリッドである。タイムスロット８０８−１などのあるタイムスロットは、割込が不可能な固定時間を有する。タイムスロット８１０−１などの他のタイムスロットは、別のコアによって割込が可能な可変時間を有する。示されるように、第１のコアは、タイムスロット８０８−１および８１０−１に割り振られる。第２のコアからの割込８０６ｃはタイムスロット８０８−１の間に到着する。しかしながら、タイムシェアリングプロトコルハンドラ４１２は、この割込８０６ｃを無視する（または行列待ちに入れる）。一方で、タイムスロット８１０−１の間に到着する割込８０６ｄは文脈切換えをトリガする。文脈切換えにより、フレーム復元リソースは、割込８０６ｄの後にタイムスロット８０４−２の間は第２のコアに割り振られる。タイムスロット８０８−１の間に割込８０６ｃが（消去される代わりに）待ち行列に入れられるのであれば、割込８０６ｃに応答して、文脈切換えをタイムスロット８０８−１の終わりまたはタイムスロット８１０−１の始めに開始することができる。
【００６７】
映像フレームコーデックアーキテクチャのための技術および装置を実現可能な環境を全般的に記載したが、この検討はここで例示的方法に向けられる。
【００６８】
例示的方法
以下の検討は、映像フレームコーデックアーキテクチャを動作させるための方法を記載する。これらの方法は、図１および図３に示されるような電子デバイス１０２およびＰＣＢ１０４などの先に記載された例、ならびに図１０に描かれる電子デバイス１０００を利用して実現可能である。これらの方法の局面は図９に示され、それらは、少なくとも１つのＩＣチップの１つ以上の構成要素によって行なわれる動作９０２−９１２として示される。これらの方法の動作が示されるおよび／または記載される順序は、限定として解釈されることを意図しておらず、任意の数の記載される方法動作またはその組合せは、方法または交互の方法を実現する任意の順序で組合せ可能である。図９のフローチャートは、フレーム復元器１０８−２を動作させる観点で記載されるが、原則は、同様にフレーム圧縮器１０８−１を動作させることに当てはまる。
【００６９】
図９は、フレーム復元サービスを複数の異なるコアに提供する回路構成によって実現され得る映像フレームコーデックアーキテクチャを動作させるための例示的方法９００を示す。９０２で、第１の復元フレームに対する第１の要求が第１のコアから受付けられる。たとえば、フレーム圧縮器−復元器コントローラ３０４（たとえば、そのフレーム復元器コントローラ３０４−２）は、第１のコア１１０−１から第１の復元フレーム１１４に対する第１の要求１１６を受付けることができる。受付けは、システムバス２１８、映像バス２２０、同期レジスタ６０２などを介して行なわれ得る。
【００７０】
９０４で、第１の圧縮フレームを復元して第１の復元フレームを発生させる。たとえば、フレーム復元器１０８−２は、第１の圧縮フレーム１１２を復元して第１の復元フレーム１１４を発生させることができる。第１の要求１１６の処理は、関連付けられる優先順位７０６に従って行なわれ得る。
【００７１】
９０６で、第１の要求に応答して第１の復元フレームが第１のコアに与えられる。たとえば、フレーム圧縮器−復元器コントローラ３０４は、第１の要求１１６に応答して、第１の復元フレーム１１４を第１のコア１１０−１に与えることができる。第１の復元フレーム１１４は、ルーティング機構５００を用いて、フレーム復元器１０８−２から第１のコア１１０−１に転送され得る。
【００７２】
９０８で、第２の復元フレームに対する第２の要求が第２のコアから受付けられる。たとえば、フレーム圧縮器−復元器コントローラ３０４は、第２のコア１１０−２から第２の復元フレーム１１４に対する第２の要求１１６を受付けることができる。第１のコア１１０−１が表示コントローラ５０４を備えてもよく、第２のコア１１０−２が映像復号器５０２を備えてもよい。
【００７３】
９１０で、第２の圧縮フレームを復元して第２の復元フレームを発生させる。たとえば、フレーム復元器１０８−２は、第２の圧縮フレーム１１２を復元して第２の復元フレーム１１４を発生させることができる。復元は、ロスレス圧縮／復元アルゴリズムを用いて行なわれ得る。９１２で、第２の要求に応答して第２の復元フレームが第２のコアに与えられる。たとえば、フレーム圧縮器−復元器コントローラ３０４は、第２の要求１１６に応答して第２の復元フレーム１１４を第２のコア１１０−２に与えることができる。第２の復元フレーム１１４を取得した後、第２のコア１１０−２は、対応の映像関連の機能性に従ってフレームを処理し得る。
【００７４】
先の検討は、映像フレームコーデックアーキテクチャに関する方法を記載する。これらの方法の局面は、たとえば、ハードウェア（たとえば、固定された論理回路構成）、ファームウェア、またはその何らかの組合せにおいて実現され得る。これらの技術は、図１−図８および図１０（電子デバイス１０００は以下の図１０に記載される）に示されるエンティティまたは構成要素のうち１つ以上を用いて実現され得、これらをさらに分割、組合せなどしてもよい、このように、これらの図は記載される技術を用いることができる多数の可能なシステムまたは装置のうちいくつかを示す。これらの図のエンティティおよび構成要素は一般的に、ファームウェア、ハードウェア、ＩＣチップ、回路、またはその組合せを表わす。
【００７５】
例示的電子デバイス
図１０は、先の図１−図９のうちいずれかを参照して記載されるような１つ以上の実現例に従って映像フレームコーデックアーキテクチャを実現することができる例示的電子デバイス１０００のさまざまな構成要素を示す。電子デバイス１０００は、消費者、コンピュータ、携帯型装置、ユーザ、サーバ、通信、電話、ナビゲーション、ゲーム、音声、カメラ、メッセージ、媒体再生、および／または図１に描かれるスマートフォンなどの他の種類の電子デバイス１０２のうち任意の形態で固定デバイスまたは移動体デバイスの任意の１つまたはその組合せとして実現され得る。
【００７６】
電子デバイス１０００は、上述のような受信データ、送信データ、または他の情報などのデバイスデータ１００４の有線および／または無線通信を可能にする通信トランシーバ１００２を含む。例示的通信トランシーバ１００２は、ＮＦＣトランシーバ、さまざまなＩＥＥＥ８０２．１５（ブルートゥース（登録商標））標準に準拠するＷＰＡＮ無線、さまざまなＩＥＥＥ８０２．１１（ワイファイ（登録商標））標準のうち任意のものに準拠するＷＬＡＮ無線、セルラー電話通信のためのＷＷＡＮ（３ＧＰＰ準拠）無線、さまざまなＩＥＥＥ８０２．１６（ＷｉＭＡＸ（登録商標））標準に準拠する無線メトロポリタンエリアネットワーク（ＷＭＡＮ）無線、および有線ローカルエリアネットワーク（ＬＡＮ）イーサネット（登録商標）トランシーバを含む。
【００７７】
電子デバイス１０００は、１つ以上のデータ入力ポート１００６も含み得る。これを介して、任意の種類のデータ、媒体コンテンツ、および／またはユーザ選択可能入力、メッセージ、アプリケーション、音楽、テレビコンテンツ、録画された映像コンテンツ、ならびに任意のコンテンツおよび／またはデータソースから受信した任意の他の種類の音声、映像、および／または画像データなどの他の入力を受信することができる。データ入力ポート１００６は、ＵＳＢポート、同軸ケーブルポート、およびフラッシュメモリ、ＤＶＤ、ＣＤなど用の（内部コネクタを含む）他のシリアルまたはパラレルコネクタを含み得る。これらのデータ入力ポート１００６を用いて電子デバイスを構成要素、周辺機器、またはキーボード、マイクもしくはカメラなどのアクセサリーに結合し得る。
【００７８】
この例の電子デバイス１０００は、少なくとも１つのプロセッサ１００８（たとえば、アプリケーションプロセッサ、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、コントローラなどのうち任意の１つ以上）を含み、これは、コンピュータ読出可能媒体上に記憶されるコンピュータ実行可能命令を処理（たとえば実行）してデバイスの動作を制御する、（たとえば、ＳｏＣの一部として実現される）プロセッサとメモリシステムとの組合せを含むことができる。プロセッサ１００８は、アプリケーションプロセッサ、内蔵コントローラ、マイクロコントローラ、ＳｏＣなどとして実現され得る。一般的に、プロセッサまたは処理システムは、少なくとも部分的にハードウェアにおいて実現され得る。これは、集積回路またはオンチップシステム、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コンプレックスプログラマブル論理デバイス（ＣＰＬＤ）、ならびにシリコンおよび／または他のハードウェアにおける他の実現例の構成要素を含むことができる。
【００７９】
これに代えてまたは加えて、電子デバイス１０００は、電子回路構成の任意の１つまたは組合せを用いて実現可能であり、これは、（電子回路構成１０１０として）１０１０で一般的に示される処理および制御回路に関連して実現されるソフトウェア、ハードウェア、ファームウェア、または固定論理回路構成を含み得る。この電子回路構成１０１０は、論理回路構成および／または（たとえばＦＰＧＡなどの）ハードウェアなどを通じて実行可能なまたはハードウェアベースのモジュール（図示せず）を実現することができる。
【００８０】
示されないが、電子デバイス１０００は、デバイス内のさまざまな構成要素を結合するシステムバス、配線、クロスバー、またはデータ転送システムを含むことができる。システムバスまたは配線は、さまざまなバスアーキテクチャのうち任意のものを利用するメモリバスもしくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス、および／またはプロセッサもしくはローカルバスなどの異なるバス構造のうち任意の１つまたは組合せを含むことができる。
【００８１】
電子デバイス１０００は、データ記憶を可能にする１つ以上のメモリデバイス１０１２も含み、その例は、ランダムアクセスメモリ（ＲＡＭ）、不揮発性メモリ（たとえば、読出専用メモリ（ＲＯＭ）、フラッシュメモリ、ＥＰＲＯＭ、およびＥＥＰＲＯＭ）、およびディスク記憶デバイスを含む。メモリデバイス１０１２は、データ記憶機構を提供して、デバイスデータ１００４、他の種類のコードおよび／またはデータ、ならびにさまざまなデバイスアプリケーション１０２０（ソフトウェアアプリケーションまたはプログラム）を記憶する。たとえば、オペレーティングシステム１０１４をメモリデバイス１０１２内にソフトウェア命令として維持し、これをプロセッサ１００８によって実行することができる。
【００８２】
示されるように、電子デバイス１０００は、音声データを処理しならびに／または音声および映像データを音声システム１０１８および／もしくは表示システム１０２２（たとえば、映像バッファもしくはスマートフォンもしくはカメラの画面）に渡す、音声および／または映像処理システム１０１６も含む。音声システム１０１８および／または表示システム１０２２は、音声、映像、表示および／または画像データを処理、表示、および／または他のやり方でレンダリングする任意のデバイスを含み得る。表示データおよび音声信号は、ＲＦ（無線周波数）リンク、Ｓ−映像リンク、ＨＤＭＩ（登録商標）（高精細マルチメディアインターフェイス）、復号映像リンク、コンポーネント映像リンク、ＤＶＩ（デジタル映像インターフェイス）、アナログ音声接続、またはメディアデータポート１０２４などの他の同様の通信リンクを介して、音声コンポーネントおよび／または表示コンポーネントに通信可能である。ある実現例では、音声システム１０１８および／または表示システム１０２２は、電子デバイス１０００の外部または別個の構成要素である。これに代えて、表示システム１０２２は、一体化されたタッチインターフェイスの一部など、例示的な電子デバイス１０００の一体化された構成要素であることができる。
【００８３】
図１０の電子デバイス１０００は、図１の電子デバイス１０２の例示的実現例である。このように、プロセッサ１００８は、（たとえば、それぞれ図１、図２、および図３の）集積回路１０６、プロセッサ２０２、またはＳｏＣ３０２の一例である。このように、図１０に示されるように、プロセッサ１００８は、フレーム圧縮器−復元器１０８、複数のコア１１０−１〜１１０−ｎ、およびフレーム圧縮器−復元器コントローラ３０４を含み得る。図１０において、映像バッファ２０６、共有ローカルキャッシュ２０８、および（たとえば、各々図２、図３、図５、または図６のものでもある）メインメモリ２１０は、１つ以上のメモリデバイス１０１２の一部であることなどによってメモリシステムの少なくとも一部を形成するものとして描かれる。上述のように、これらのメモリコンポーネントのうち１つ以上は、プロセッサ１００８の構成要素と同じ集積回路の一部（たとえば、映像バッファ２０６および共有ローカルキャッシュ２０８は図３のＳｏＣ３０２の一部）であってもよく、または代わりに別個のダイ上に位置してもよく、または異なるプリント回路基板上に配設すらされてもよい。このように、本明細書中に記載するような映像フレームコーデックアーキテクチャの原則は、図１０の電子デバイス１０００によってまたはそれと関連して、実現可能である。
【００８４】
ある特徴および／または方法に特有の文言で映像フレームコーデックアーキテクチャの実現例を記載したが、添付の請求項の主題は、必ずしも記載される具体的な特徴または方法に限定されるわけではない。むしろ、具体的な特徴および方法は、映像フレームコーデックアーキテクチャの例示的実現例として開示される。
【図１】
2020527764.tif 000003
【図２】
2020527764.tif 000004
【図３】
2020527764.tif 000005
【図３−１】
2020527764.tif 000006
【図３−２】
2020527764.tif 000007
【図４】
2020527764.tif 000008
【図５】
2020527764.tif 000009
【図６】
2020527764.tif 000010
【図７】
2020527764.tif 000011
【図８】
2020527764.tif 000012
【図９】
2020527764.tif 000013
【図１０】
2020527764.tif 000014
【手続補正書】
【提出日】令和2年1月20日(2020.1.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
電子デバイスであって、
複数の圧縮フレームを復元して複数の復元フレームを発生させるように構成されるフレーム復元器と、
前記フレーム復元器に結合され、かつ複数のコアについて前記フレーム復元器へのアクセスを調停するように構成されるフレーム復元器コントローラと、
前記フレーム復元器コントローラに結合される前記複数のコアのうちの第１のコアとを備え、前記第１のコアは、前記フレーム復元器コントローラを介して、前記フレーム復元器によって発生される前記複数の復元フレームのうちの１つの復元フレームを取得するように構成され、さらに
前記フレーム復元器コントローラに結合される前記複数のコアのうちの第２のコアを備え、前記第２のコアは、前記フレーム復元器コントローラを介して、前記フレーム復元器によって発生される前記複数の復元フレームのうちの別の復元フレームを取得するように構成される、電子デバイス。
【請求項２】
前記第１のコアは、第１の映像関連目的のために前記復元フレームを用いるように構成され、
前記第２のコアは、第２の映像関連目的のために他の復元フレームを用いるように構成され、
前記第１の映像関連目的および前記第２の映像関連目的は、映像復号、映像表示、映像のコード変換、または映像補償を含む映像関連目的の群から選択される異なる映像関連目的を備える、請求項１に記載の電子デバイス。
【請求項３】
前記第１のコアは、ビデオストリームを復号して複数の復号フレームを発生させるように構成される映像復号器を備え、
前記フレーム復元器は、前記映像復号器と論理的に一体化され、
前記第２のコアは、表示コントローラを備える、請求項１または２に記載の電子デバイス。
【請求項４】
前記フレーム復元器コントローラは、
複数の要求を記憶するように構成される要求待ち行列を備え、各々の要求は少なくとも１つの復元フレームに対応し、前記フレーム復元器コントローラはさらに
前記複数のコアから前記複数の要求を受信しかつ前記複数の要求を前記要求待ち行列に挿入するように構成される要求マネージャを備える、請求項１〜３のいずれか１項に記載の電子デバイス。
【請求項５】
前記フレーム復元器コントローラは、前記複数の要求に対応する複数の優先順位に従って前記複数の要求の処理を順序付けするように構成される優先順位マネージャを備える、請求項４に記載の電子デバイス。
【請求項６】
前記フレーム復元器コントローラは、タイムシェアリングプロトコルを確立して前記複数のコアの間で前記フレーム復元器を共有するように構成されるタイムシェアリングプロトコルハンドラを備える、請求項１〜５のいずれか１項に記載の電子デバイス。
【請求項７】
前記タイムシェアリングプロトコルハンドラは、
前記複数のコアのうち少なくとも１つのコアに割当てられる複数のタイムスロットを含むように前記タイムシェアリングプロトコルを確立することと、
前記複数のコアのうちのあるコアからの割込信号の受信を許可するように前記タイムシェアリングプロトコルを確立することと、
のうち少なくとも１つを行なうように構成され、前記割込信号は、復元フレームに対する要求を示す、請求項６に記載の電子デバイス。
【請求項８】
未圧縮フレームを圧縮して前記複数の圧縮フレームを発生させるように構成されるフレーム圧縮器と、
前記フレーム圧縮器に結合され、かつ前記複数のコアについて前記フレーム圧縮器へのアクセスを調停するように構成されるフレーム圧縮器コントローラとをさらに備える、請求項１〜７のいずれか１項に記載の電子デバイス。
【請求項９】
前記フレーム復元器に関連付けられる映像バッファと、
前記映像バッファに対応する同期レジスタとをさらに備え、前記同期レジスタは、前記映像バッファの内容のステータスを示す１つ以上の値を記憶するように構成され、
前記フレーム復元器は、前記複数の復元フレームのうちの１つの少なくとも一部を前記映像バッファに記憶させるように構成され、
前記フレーム復元器コントローラは、記憶された前記一部の前記ステータスを示す少なくとも１つの値を前記同期レジスタに書込むように構成される、請求項１〜８のいずれか１項に記載の電子デバイス。
【請求項１０】
複数のコアの間でフレーム復元回路構成を共有するための方法であって、
第１のコアから第１の復元フレームに対する第１の要求を受付けることと、
第１の圧縮フレームを復元して前記第１の復元フレームを発生させることと、
前記第１の要求に応答して前記第１の復元フレームを前記第１のコアに与えることと、
第２のコアから第２の復元フレームに対する第２の要求を受付けることと、
第２の圧縮フレームを復元して前記第２の復元フレームを発生させることと、
前記第２の要求に応答して前記第２の復元フレームを前記第２のコアに与えることとを備える、方法。
【請求項１１】
第３のコアから第３の復元フレームに対する第３の要求を受付けることと、
第３の圧縮フレームを復元して前記第３の復元フレームを発生させることと、
前記第３の要求に応答して前記第３の復元フレームを前記第３のコアに与えることとをさらに備え、
前記第１の要求は、前記第１のコアを示し、
前記第２の要求は、前記第２のコアを示し、
前記第３の要求は、前記第３のコアを示す、請求項１０に記載の方法。
【請求項１２】
少なくとも前記第１のコアおよび前記第２のコアによる前記フレーム復元回路構成へのアクセスのためのタイムシェアリングプロトコルを確立することをさらに備える、請求項１０または１１に記載の方法。
【請求項１３】
前記確立することは、
前記第１のコアに対応するタイムスロットの間に前記第２のコアからの割込を受信することと、
前記割込の受信に応答して、前記第１のコアのための復元を行なうことから前記第２のコアのための復元を行なうことに切換えることとを備える、請求項１２に記載の方法。
【請求項１４】
前記第１の復元フレームを与えることと、前記第２の復元フレームを与えることとを、前記第１の要求と前記第２の要求との間の相対的な優先順位に少なくとも部分的に依存する順序で行なうことをさらに備える、請求項１０から１３のいずれかに記載の方法。
【請求項１５】
前記第２の圧縮フレームは、ラインおよび付加的なラインを備え、
前記第２の復元フレームを与えることは、
同期レジスタをポーリングして映像バッファに対する前記ラインの読出ステータスを示す少なくとも１つの値を取得することと、
前記少なくとも１つの値に応答して、前記付加的なラインを前記映像バッファに記憶することとを備える、請求項１０から１４のいずれかに記載の方法。
【請求項１６】
複数のコアから複数の圧縮フレームのそれぞれに対する複数の要求を受付けることと、
複数の復元フレームを圧縮して前記複数の圧縮フレームをそれぞれ発生させることと、
前記複数の要求に応答して前記複数の圧縮フレームを前記複数のコアに与えることとをさらに備える、請求項１０から１５のいずれかに記載の方法。
【請求項１７】
電子デバイスであって、
ビデオストリームを復号して複数の復号フレームを発生させるように構成される映像復号器を備え、前記映像復号器は、
前記複数の復号フレームを圧縮して複数の圧縮フレームを発生させるように構成されるフレーム圧縮器と、
前記複数の圧縮フレームを復元して複数の復元フレームを発生させるように構成されるフレーム復元器と、
前記フレーム復元器に結合され、かつ前記フレーム復元器へのアクセスを調停するように構成されるフレーム復元器コントローラとを含み、さらに
前記フレーム復元器コントローラに結合される表示コントローラを備え、前記表示コントローラは、前記フレーム復元器コントローラを介して、前記フレーム復元器によって発生される前記複数の復元フレームのうち１つの復元フレームを取得するように構成される、電子デバイス。
【請求項１８】
前記復元フレームは、復元表示フレームを備え、
前記複数の圧縮フレームは、圧縮基準フレームおよび圧縮表示フレームを含み、
前記フレーム復元器は、前記圧縮基準フレームを復元して復元基準フレームを発生させ、かつ前記圧縮表示フレームを復元して前記復元表示フレームを発生させるように構成され、
前記映像復号器は、前記復元基準フレームを用いて前記ビデオストリームを復号するように構成され、
前記表示コントローラは、前記復元表示フレームを用いて表示画面上の提示を制御するように構成される、請求項１７に記載の電子デバイス。
【請求項１９】
前記映像復号器は、さらに、
前記フレーム復元器に関連付けられる映像バッファと、
前記映像バッファに対応する同期レジスタとを含み、前記同期レジスタは、前記映像バッファの内容のステータスを示す１つ以上の値を記憶するように構成され、
前記フレーム復元器は、前記復元フレームの少なくとも一部を前記映像バッファに記憶させるように構成され、
前記フレーム復元器コントローラは、前記復元フレームの記憶される前記一部のステータスを示す少なくとも１つの値を前記同期レジスタに書込むように構成され、
前記表示コントローラは、前記復元フレームの取り出された前記一部のステータスを示す少なくとも別の値を前記同期レジスタに書込むように構成される、請求項１７または１８に記載の電子デバイス。
【請求項２０】
前記フレーム復元器コントローラは、タイムシェアリングプロトコルを確立して少なくとも前記映像復号器と前記表示コントローラとの間で前記フレーム復元器を共有するように構成される、請求項１７から１９のいずれかに記載の電子デバイス。
【請求項２１】
命令を記憶した非一時的コンピュータ読出可能媒体であって、前記命令は、プロセッサによって実行されると、前記プロセッサに請求項１０から１６のいずれか１項に記載の前記方法を行なわせる、非一時的コンピュータ読出可能媒体。
【請求項２２】
コンピュータによって実行されるプログラムであって、前記プログラムは、前記コンピュータに、請求項１０〜１６のいずれか１項に記載の方法を実行させる、プログラム。
【国際調査報告】
2020527764.tif 000015
2020527764.tif 000016
2020527764.tif 000017