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

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

▶ グーグル インコーポレイテッドの特許一覧

特開2024-41910映像フレームコーデックアーキテクチャ
<>
  • 特開-映像フレームコーデックアーキテクチャ 図1
  • 特開-映像フレームコーデックアーキテクチャ 図2
  • 特開-映像フレームコーデックアーキテクチャ 図3
  • 特開-映像フレームコーデックアーキテクチャ 図3-1
  • 特開-映像フレームコーデックアーキテクチャ 図3-2
  • 特開-映像フレームコーデックアーキテクチャ 図4
  • 特開-映像フレームコーデックアーキテクチャ 図5
  • 特開-映像フレームコーデックアーキテクチャ 図6
  • 特開-映像フレームコーデックアーキテクチャ 図7
  • 特開-映像フレームコーデックアーキテクチャ 図8
  • 特開-映像フレームコーデックアーキテクチャ 図9
  • 特開-映像フレームコーデックアーキテクチャ 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024041910
(43)【公開日】2024-03-27
(54)【発明の名称】映像フレームコーデックアーキテクチャ
(51)【国際特許分類】
   H04N 19/436 20140101AFI20240319BHJP
   H04N 19/426 20140101ALI20240319BHJP
【FI】
H04N19/436
H04N19/426
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024003113
(22)【出願日】2024-01-12
(62)【分割の表示】P 2022063975の分割
【原出願日】2018-07-13
(31)【優先権主張番号】62/579,820
(32)【優先日】2017-10-31
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/844,334
(32)【優先日】2017-12-15
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.3GPP
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】クーセラ,アキ・オスカリ
(72)【発明者】
【氏名】ラウティオ,ビレ-ミッコ
(57)【要約】      (修正有)
【課題】映像フレームコーデックアーキテクチャのための方法及び電子デバイスを提供する。
【解決手段】プリント回路基板104が含むフレーム復元器(FCD)は、圧縮フレームを復元して復元フレームを発生させる。FCDコントローラは、FCDへの共有アクセスを調停する。SoCの複数のコアは、FCDコントローラを介してFCDから復元フレームを受信するよう要求する。FCDコントローラは、要求待ち行列を実現し、要求または要求を出しているコアの優先順位に基づいて要求処理を順序付けする。FCDコントローラはまた、複数のコアによるアクセスのためのタイムシェアリングプロトコルも確立する。ある実現例では、映像復号器がFCDと論理的に一体化され、復元フレームの一部を映像バッファに記憶させ、表示コントローラは、同期機構を用いて表示用の部分を取り出す。
【選択図】図3
【特許請求の範囲】
【請求項1】
電子デバイスであって、
複数の圧縮フレームを復元して複数の復元フレームを発生させるように構成されるフレーム復元器と、
前記フレーム復元器に結合され、かつ複数のコアについて前記フレーム復元器へのアクセスを調停するように構成されるフレーム復元器コントローラと、
前記フレーム復元器コントローラに結合される前記複数のコアのうちの第1のコアとを備え、前記第1のコアは、前記フレーム復元器コントローラを介して、前記フレーム復元器によって発生される前記複数の復元フレームのうちの1つの復元フレームを取得するように構成され、さらに
前記フレーム復元器コントローラに結合される前記複数のコアのうちの第2のコアを備え、前記第2のコアは、前記フレーム復元器コントローラを介して、前記フレーム復元器によって発生される前記複数の復元フレームのうちの別の復元フレームを取得するように構成される、電子デバイス。
【請求項2】
前記第1のコアは、第1の映像関連目的のために前記復元フレームを用いるように構成され、
前記第2のコアは、第2の映像関連目的のために他の復元フレームを用いるように構成され、
前記第1の映像関連目的および前記第2の映像関連目的は、映像復号、映像表示、映像のコード変換、または映像補償を含む映像関連目的の群から選択される異なる映像関連目的を備える、請求項1に記載の電子デバイス。
【請求項3】
前記第1のコアは、ビデオストリームを復号して複数の復号フレームを発生させるように構成される映像復号器を備え、
前記フレーム復元器は、前記映像復号器と論理的に一体化され、
前記第2のコアは、表示コントローラを備える、請求項1または2に記載の電子デバイス。
【請求項4】
前記フレーム復元器コントローラは、
複数の要求を記憶するように構成される要求待ち行列を備え、各々の要求は少なくとも1つの復元フレームに対応し、前記フレーム復元器コントローラはさらに
前記複数のコアから前記複数の要求を受信しかつ前記複数の要求を前記要求待ち行列に挿入するように構成される要求マネージャを備える、先の請求項のいずれかに記載の電子デバイス。
【請求項5】
前記フレーム復元器コントローラは、前記複数の要求に対応する複数の優先順位に従って前記複数の要求の処理を順序付けするように構成される優先順位マネージャを備える、請求項4に記載の電子デバイス。
【請求項6】
前記フレーム復元器コントローラは、タイムシェアリングプロトコルを確立して前記複数のコアの間で前記フレーム復元器を共有するように構成されるタイムシェアリングプロトコルハンドラを備える、先の請求項のいずれかに記載の電子デバイス。
【請求項7】
前記タイムシェアリングプロトコルハンドラは、
前記複数のコアのうち少なくとも1つのコアに割当てられる複数のタイムスロットを含むように前記タイムシェアリングプロトコルを確立することと、
前記複数のコアのうちのあるコアからの割込信号の受信を許可するように前記タイムシェアリングプロトコルを確立することと、
のうち少なくとも1つを行なうように構成され、前記割込信号は、復元フレームに対する要求を示す、請求項6に記載の電子デバイス。
【請求項8】
未圧縮フレームを圧縮して前記複数の圧縮フレームを発生させるように構成されるフレーム圧縮器と、
前記フレーム圧縮器に結合され、かつ前記複数のコアについて前記フレーム圧縮器へのアクセスを調停するように構成されるフレーム圧縮器コントローラとをさらに備える、先の請求項のいずれかに記載の電子デバイス。
【請求項9】
前記フレーム復元器に関連付けられる映像バッファと、
前記映像バッファに対応する同期レジスタとをさらに備え、前記同期レジスタは、前記映像バッファの内容のステータスを示す1つ以上の値を記憶するように構成され、
前記フレーム復元器は、前記複数の復元フレームのうちの1つの少なくとも一部を前記映像バッファに記憶させるように構成され、
前記フレーム復元器コントローラは、記憶された前記一部の前記ステータスを示す少なくとも1つの値を前記同期レジスタに書込むように構成される、先の請求項のいずれかに記載の電子デバイス。
【請求項10】
複数のコアの間でフレーム復元回路構成を共有するための方法であって、
第1のコアから第1の復元フレームに対する第1の要求を受付けることと、
第1の圧縮フレームを復元して前記第1の復元フレームを発生させることと、
前記第1の要求に応答して前記第1の復元フレームを前記第1のコアに与えることと、
第2のコアから第2の復元フレームに対する第2の要求を受付けることと、
第2の圧縮フレームを復元して前記第2の復元フレームを発生させることと、
前記第2の要求に応答して前記第2の復元フレームを前記第2のコアに与えることとを備える、方法。
【請求項11】
第3のコアから第3の復元フレームに対する第3の要求を受付けることと、
第3の圧縮フレームを復元して前記第3の復元フレームを発生させることと、
前記第3の要求に応答して前記第3の復元フレームを前記第3のコアに与えることとをさらに備え、
前記第1の要求は、前記第1のコアを示し、
前記第2の要求は、前記第2のコアを示し、
前記第3の要求は、前記第3のコアを示す、請求項10に記載の方法。
【請求項12】
少なくとも前記第1のコアおよび前記第2のコアによる前記フレーム復元回路構成へのアクセスのためのタイムシェアリングプロトコルを確立することをさらに備える、請求項10または11に記載の方法。
【請求項13】
前記確立することは、
前記第1のコアに対応するタイムスロットの間に前記第2のコアからの割込を受信することと、
前記割込の受信に応答して、前記第1のコアのための復元を行なうことから前記第2のコアのための復元を行なうことに切換えることとを備える、請求項12に記載の方法。
【請求項14】
前記第1の復元フレームを与えることと、前記第2の復元フレームを与えることとを、前記第1の要求と前記第2の要求との間の相対的な優先順位に少なくとも部分的に依存する順序で行なうことをさらに備える、請求項10から13のいずれかに記載の方法。
【請求項15】
前記第2の圧縮フレームは、ラインおよび付加的なラインを備え、
前記第2の復元フレームを与えることは、
同期レジスタをポーリングして映像バッファに対する前記ラインの読出ステータスを示す少なくとも1つの値を取得することと、
前記少なくとも1つの値に応答して、前記付加的なラインを前記映像バッファに記憶することとを備える、請求項10から14のいずれかに記載の方法。
【請求項16】
複数のコアから複数の圧縮フレームのそれぞれに対する複数の要求を受付けることと、
複数の復元フレームを圧縮して前記複数の圧縮フレームをそれぞれ発生させることと、
前記複数の要求に応答して前記複数の圧縮フレームを前記複数のコアに与えることとをさらに備える、請求項10から15のいずれかに記載の方法。
【請求項17】
電子デバイスであって、
ビデオストリームを復号して複数の復号フレームを発生させるように構成される映像復号器を備え、前記映像復号器は、
前記複数の復号フレームを圧縮して複数の圧縮フレームを発生させるように構成されるフレーム圧縮器と、
前記複数の圧縮フレームを復元して複数の復元フレームを発生させるように構成されるフレーム復元器と、
前記フレーム復元器に結合され、かつ前記フレーム復元器へのアクセスを調停するように構成されるフレーム復元器コントローラとを含み、さらに
前記フレーム復元器コントローラに結合される表示コントローラを備え、前記表示コントローラは、前記フレーム復元器コントローラを介して、前記フレーム復元器によって発生される前記複数の復元フレームのうち1つの復元フレームを取得するように構成される、電子デバイス。
【請求項18】
前記復元フレームは、復元表示フレームを備え、
前記複数の圧縮フレームは、圧縮基準フレームおよび圧縮表示フレームを含み、
前記フレーム復元器は、前記圧縮基準フレームを復元して復元基準フレームを発生させ、かつ前記圧縮表示フレームを復元して前記復元表示フレームを発生させるように構成され、
前記映像復号器は、前記復元基準フレームを用いて前記ビデオストリームを復号するように構成され、
前記表示コントローラは、前記復元表示フレームを用いて表示画面上の提示を制御するように構成される、請求項17に記載の電子デバイス。
【請求項19】
前記映像復号器は、さらに、
前記フレーム復元器に関連付けられる映像バッファと、
前記映像バッファに対応する同期レジスタとを含み、前記同期レジスタは、前記映像バッファの内容のステータスを示す1つ以上の値を記憶するように構成され、
前記フレーム復元器は、前記復元フレームの少なくとも一部を前記映像バッファに記憶させるように構成され、
前記フレーム復元器コントローラは、前記復元フレームの記憶される前記一部のステータスを示す少なくとも1つの値を前記同期レジスタに書込むように構成され、
前記表示コントローラは、前記復元フレームの取り出された前記一部のステータスを示す少なくとも別の値を前記同期レジスタに書込むように構成される、請求項17または18に記載の電子デバイス。
【請求項20】
前記フレーム復元器コントローラは、タイムシェアリングプロトコルを確立して少なくとも前記映像復号器と前記表示コントローラとの間で前記フレーム復元器を共有するように構成される、請求項17から19のいずれかに記載の電子デバイス。
【請求項21】
命令を記憶した非一時的コンピュータ読出可能媒体であって、前記命令は、プロセッサによって実行されると、前記プロセッサに請求項10から16のいずれか1項に記載の前記方法を行なわせる、非一時的コンピュータ読出可能媒体。
【発明の詳細な説明】
【背景技術】
【0001】
発明者
ビレ-ミッコ・ラウティオ(Ville-Mikko Rautio)
アキ・クーセラ(Aki Kuusela)
背景
電子デバイスは、製造、通信、健康管理、商業、社会的交流、および娯楽において不可欠な役割を果たしている。たとえば、電子デバイスは、商業および通信のためにクラウドベースの分散計算機能性を提供するサーバファームを動かしている。計算能力を有するデバイスは、医療器具から器械までおよび車両から産業用工具まで多数の異なる種類の近代機器に内蔵もされている。さらに、1つの電子デバイス-スマートフォン-は、文字通り常に手元に置いておくべき必需品となっている。
【0002】
カメラまたは表示画面を有するものなどの多数の電子デバイスは映像データを操作する。たとえば、映像は、セキュリティカメラを用いて取得され、次に明瞭性またはコントラストなどのある視覚的局面を改良するように画質向上されることがある。既存の映像データも操作されて個々の映像フレームの見た目を向上させて、スマートフォンまたはテレビモニタの表示画面上に提示することができる。たとえば、映画の映像データを処理して人工的なグラフィックス画像の臨場感を向上させたり表示解像度を上げたりし得る。産業および医療環境では映像画像データも操作される。たとえば、三次元身体スキャンからの画像データをともにつなぎ合わせて映像として提示し、医師がその検討および分析を行なうことができる。
【0003】
これらの状況のうちいずれでも、映像データの操作は大量の処理を要するタスクである。これは部分的には、典型的に映像データ中にある情報の大きさまたは量によるものである。結果的に、映像データを扱うのに充てられる集積回路(IC)チップの領域が他の種類のデータ用の領域よりも大きくなる可能性がある。映像データを扱うことの難しさは、電子デバイスが扱うことを期待される映像の表示解像度が増大し続けていることによって悪化している。たとえば、高画質(HD)映像が有する映像データは標準画質(SD)映像よりも約4倍多く、ウルトラHD(UHD)または4K映像が有する映像データはHD映像よりも約4倍多い。
【0004】
したがって、電子デバイスが処理することを期待される映像データの量はここ10年ほどで劇的に増大した。映像データ処理に対する要求は、仮想現実(VR)および人工現実(AR)の使用がより一般的になるにつれて、この数年でさらに大きくなると予測される。したがって、電子デバイスの製造者は、増え続ける映像データ量を扱うために電子デバイスの能力を向上させようと努力を続けている。
【0005】
この背景説明は、開示の文脈を一般的に提示するために与えられる。他に本明細書中で示されなければ、この箇所に記載される内容が本開示または添付の請求項に対する先行技術であることを明示的にも暗示的にも認めるものではない。
【発明の概要】
【発明が解決しようとする課題】
【0006】
要約
映像フレームコーデックアーキテクチャのための技術および装置が記載される。これらの技術および装置により、集積回路(IC)チップは、ロスレス技術を含むより新しいフレーム圧縮/復元技術への高度化のための効率化ワークフローも容易にしつつ、より少な
い量の回路構成リソースを用いて高帯域幅映像データを処理できるようになる。そのためにICチップの複数の異なるコアに複数の別々のフレーム復元ユニットを含める必要がなくなる。代わりに、フレーム復元器は、フレーム復元器クライアント回路として機能する複数の異なるコアにフレーム復元サービスを提供することができる。フレーム復元器コントローラは、複数のコアのうちの1つ以上のコアから受信する復元要求を順序付けする待ち行列または優先順位機構を用いた復元サービスの共有を容易にする。フレーム復元器コントローラは、タイムシェアリングプロトコル(time-sharing protocol)に従ってフレ
ーム復元器へのアクセスを調停することもできる。例示的な実現例では、フレーム復元器は、映像復号器クライアント回路と同じ場所に配置され、フレーム復元器は少なくとも表示コントローラと共有される。同様に、フレーム圧縮器は、フレーム圧縮器クライアント回路として機能する複数の異なるコアにフレーム圧縮サービスを提供することができる。フレーム圧縮器コントローラは、複数のコアと圧縮サービスを共有するのを容易にする。さらに、フレーム圧縮サービスとフレーム復元サービスとの両者ともを単一のICチップにおいて提供して複数のコアにわたって共有することができる。
【課題を解決するための手段】
【0007】
以下に記載する局面は、フレーム復元器およびフレーム復元器コントローラを備える電子デバイスを含む。フレーム復元器は、複数の圧縮フレームを復元して複数の復元フレームを発生するように構成される。フレーム復元器コントローラは、フレーム復元器に結合され、かつ複数のコアについてフレーム復元器へのアクセスを調停するように構成される。複数のコアは第1のコアおよび第2のコアを含む。第1のコアは、フレーム復元器コントローラに結合され、フレーム復元器コントローラを介して、フレーム復元器によって発生される複数の復元フレームのうちある1つの復元フレームを取得するように構成される。第2のコアは、フレーム復元器コントローラに結合され、フレーム復元器コントローラを介して、フレーム復元器によって発生される複数の復元フレームのうち別の1つの復元フレームを取得するように構成される。たとえば、第1のコアは、フレーム復元器コントローラを介して、フレーム復元器によって発生される複数の復元フレームのうち第1の復元フレームを取得するように構成され得る。第2のコアは、フレーム復元器コントローラを介して、フレーム復元器によって発生される複数の復元フレームのうち第2の復元フレームを取得するように構成され得る。
【0008】
以下に記載する局面は、複数のコアの間でフレーム復元回路構成を共有するための方法も含む。方法は、第1のコアから第1の復元フレームに対する第1の要求を受付けることを備える。方法は、第1の圧縮フレームを復元して第1の復元フレームを発生させることも備える。第1の復元フレームは、第1の要求に応答して第1のコアに与えられる。方法は、加えて、第2のコアから第2の復元フレームに対する第2の要求を受付けることを備える。方法はさらに、第2の圧縮フレームを復元して第2の復元フレームを発生させることを備える。第2の復元フレームは、第2の要求に応答して第2のコアに与えられる。
【0009】
以下に記載する局面は、映像復号器および表示コントローラを備える別の電子デバイスを含む。映像復号器は、ビデオストリームを復号して複数の復号フレームを発生させるように構成される。映像復号器は、フレーム圧縮器、フレーム復元器、およびフレーム復元器コントローラを含む。フレーム圧縮器は、複数の復号フレームを圧縮して複数の圧縮フレームを発生させるように構成される。フレーム復元器は、複数の圧縮フレームを復元して複数の復元フレームを発生させるように構成される。フレーム復元器コントローラは、フレーム復元器に結合され、かつフレーム復元器へのアクセスを調停するように構成される。表示コントローラはフレーム復元器コントローラに結合される。表示コントローラは、フレーム復元器コントローラを介して、フレーム復元器によって発生される複数の復元フレームのうちある1つの復元フレームを取得するように構成される。
【0010】
以下に記載する局面は、フレーム復元器および複数のコアを備えるシステムも含む。フレーム復元器は、複数の圧縮フレームを復元して複数の復元フレームを発生させるように構成される。複数のコアは第1のコアおよび第2のコアを含む。第1のコアは、フレーム復元器に結合され、かつ複数の復元フレームのうちある1つの復元フレームを取得するように構成される。第2のコアは、フレーム復元器に結合され、かつ複数の復元フレームのうち別の1つの復元フレームを取得するように構成される。たとえば、第1のコアは、複数の復元フレームのうち第1の復元フレームを取得するように構成され得る。第2のコアは、複数の復元フレームのうち第2の復元フレームを取得するように構成され得る。システムは、フレーム復元器を制御して、第1のコアおよび第2のコアを含む複数のコアについてフレーム復元器へのアクセスを調停するための制御手段も備える。加えてまたはこれに代えて、システムは、複数の未圧縮フレームを圧縮して複数の圧縮フレームを発生させるように構成されるフレーム圧縮器を備えることができる。第1および第2のコアは各々、複数の圧縮フレームのうちのそれぞれの圧縮フレームを取得することができる。このように、システムは、フレーム圧縮器を制御して、第1のコアおよび第2のコアを含む複数のコアについてフレーム圧縮器に対するアクセスを調停するための制御手段も備えることができる。
【0011】
以下の図面を参照して、映像フレームコーデックアーキテクチャを実現する装置およびそのための技術を記載する。同様の特徴および構成要素を参照するのに、図面を通じて同じ番号を用いる。
【図面の簡単な説明】
【0012】
図1】映像フレームコーデックアーキテクチャを実現することができるプリント回路基板を含む例示的環境を示す図である。
図2】映像フレームコーデックアーキテクチャを実現することができる例示的環境の他の局面を示す図である。
図3】フレーム圧縮器-復元器、フレーム圧縮器-復元器コントローラ、および複数のコアを含む映像フレームコーデックアーキテクチャの例示的実現例を有するシステムオンチップ(SoC)を示す図である。
図3-1】フレーム圧縮器、フレーム圧縮器コントローラ、および複数のコアを含む映像フレームコーデックアーキテクチャの例示的実現例を有するSoCを示す図である。
図3-2】フレーム復元器、フレーム復元器コントローラ、および複数のコアを含む映像フレームコーデックアーキテクチャの例示的実現例を有するSoCを示す図である。
図4】フレーム復元器およびコアに関連の例示的フレーム圧縮器-復元器コントローラを示す図である。
図5】複数のコアが映像復号器および表示コントローラを含む映像フレームコーデックアーキテクチャを実現する例示的手法を示す図である。
図6】映像復号器から表示コントローラに復元表示フレームをルーティングするための例示的技術を示す図である。
図7】複数のコアが出す復元フレームに対する要求を管理するフレーム復元器コントローラによる例示的方式を示す図である。
図8】フレーム圧縮リソースまたはフレーム復元リソースを共有するためのタイムシェアリングプロトコルを確立するフレーム圧縮器-復元器コントローラによる例示的方式を示す図である。
図9】本明細書中に記載されるような映像フレームコーデックアーキテクチャを動作させるための例示的方法を示す図である。
図10】1つ以上の実現例に従って映像フレームコーデックアーキテクチャを実現することができる例示的電子デバイスのさまざまな構成要素を示す図である。
【発明を実施するための形態】
【0013】
詳細な説明
概要
映画または他の映像のデータは、安置時の記憶と、電子デバイスまたはその内部構成要素同士の間を伝播しながらの送信との両方の点で大幅に帯域幅を消費する。映像の表示解像度が上がるにつれて、帯域幅要求が同様に大きくなっている。ウルトラHD(UHD)または4K映像の場合、たとえば、扱うべき映像データは、ほんの10年前に一般的に用いていたSD映像の場合よりも約15-20倍多い。この増大したデータの量により、単一の集積回路(IC)チップ内ですら映像を管理することが難しくなっている。たとえば、典型的なシステムオンチップ(SoC)が有しているシステムバスは、当該システムバスを用いて異なるSoC構成要素同士の間で生の復号映像データを搬送すれば過負荷になってしまう可能性がある。
【0014】
公知のように、たとえばH.264などの何らかの損失のあるコーデックを用いて映像を符号化することによって、映像の帯域幅を小さくすることができる。そうすると、符号化した映像を、たとえばクラウドサーバからタブレットコンピュータにストリーミングすることができたり、またはたとえばブルーレイディスク上またはフラッシュメモリ中に保存したりすることができる。たとえば、エンドユーザ電子デバイスは次に、映像を復号して表示画面上に提示する役割を担う。復号には、二値の1および0またはビットのストリームを、映像を表わすように順に表示可能な個別の復号映像フレームに変換することが必要である。この映像符号化および復号手順の一部として映像データを圧縮復元する。(たとえば、H.264コーデックを用いる)この映像レベル手順の場合、圧縮の量は大きいが、当該圧縮には損失もある。このように、映像レベルの圧縮/復号手順のために、ある映像情報は、見てわかる程度に画質が変化し得る程度まで失われてしまう。
【0015】
映像情報のこの損失を受入れて、大量の映像データをデバイス同士の間で送信できるようにしたり、相当の量のメモリを用いて記憶できるようにしたりする。電子デバイスにおいてビデオストリームを復号して復号映像フレームを発生させた後に、この大量の映像データをフレーム群としてまたは多数の個別のフレームとしてフレーム毎に再作成する。これらの個別のフレームの各々は依然としてかなりの量のデータである。電子デバイスでこの量の映像データを扱うには、復号映像フレームが現在処理中または表示中でなければ、復号映像フレームを圧縮して圧縮映像フレームを発生させる。任意の所与の時間にストリームから有限の数のフレームが復号されるので、ある実現例ではロスレス圧縮アルゴリズムを復号フレームに適用することができる。ロスレス圧縮復元フレームレベル手順は、一切の一層の画像の劣化を防止することができる。圧縮映像フレームがメモリ中で占めるスペースはより少なく、SoCのシステムバスなどの配線で消費する帯域幅はより少ない。したがって、プリント回路基板(PCB)上の異なるチップ同士の間、SoCとメインメモリとの間、または単一のSoCの異なる構成要素同士の間ですら圧縮映像フレームを転送することができる。
【0016】
既存のシステムで映像フレームあたりのまたはフレームレベルの圧縮を用いることができるようにするために、映像データとともに動くSoCの各々それぞれの構成要素またはコアはそれぞれの復元ユニットを含む。この簡単な従来の手法を用いると、各々のコアは、圧縮映像フレームから復元映像フレームを独立して発生させ、次に所与のコアの映像関連目的に応じて復元映像フレームを処理することができる。しかしながら、この簡単な手法にはいくつかの付随の費用がかかる。第1に、ICダイ上のかなりの領域が二重の映像フレーム復元回路構成または圧縮回路構成に充てられる。第2に、表示画面上に映像を提示するための表示経路は別個の復元ユニットを含む。第3に、SoC向けの映像フレーム圧縮および復元技術を高度化するためのワークフローが大いに複雑である。この複雑さは
、各々が個別の復元ユニットまたは個別の圧縮ユニットを含む(場合によっては、両方のユニットを含む)複数の異なるコアから生じている。換言すると、より新しくより効率的な復元アルゴリズムに高度化するためには、圧縮ユニットまたは復元ユニットを含む各々のコアを同時に修正し、次にSoCの残余と再び一体化しなければならない。したがって、このワークフローの高度化の複雑さが、マルチコアチップにおける改良圧縮/復元アルゴリズムの採用を遅らせている。
【0017】
これに対し、本明細書中に記載されるある実現例は、共有されるフレーム圧縮器-復元器を用いる。フレーム圧縮器-復元器は、フレーム圧縮器またはフレーム復元器、またはその両者を含むことができる。SoCなどのICチップの複数のコアは、たとえば、共有フレーム復元器から圧縮フレームの復元版を取得することができる。所与のコアは、復元フレームに対する要求を行なうことができ、フレーム復元器は、要求された復元フレームを含む応答を与えることができる。このように、フレーム復元器は、フレーム復元サービスを提供するように機能することができ、各々のコアは、フレーム復元サービスに対するクライアントとして機能することができる。同様に、フレーム圧縮器は、フレーム圧縮サービスを提供するように機能することができ、各々のコアは、フレーム圧縮サービスに対するクライアントとして機能することができる。これらのフレームレベル圧縮および復元サービスはロスレスアルゴリズムを用いることができる。
【0018】
ある実現例では、SoCは、異なるコアとして動作する映像復号器および表示コントローラなどの複数の異なる構成要素を含む。映像復号器は、ビデオストリームを復号して復号フレームを発生させるストリーム復号器を含む。映像復号器は、復号フレームから圧縮フレームを発生させるフレーム圧縮器も含む。SoCの複数の異なる構成要素は、復元フレームを処理するように構成される。たとえば、映像復号器は、ビデオストリームのさらなる復号のために復元基準フレームを用い得る。加えて、表示コントローラは、復元表示フレームを用いて表示画面上に映像を提示し得る。
【0019】
これらの例示的な種類の復元フレームのうち任意のものを取得するため、フレーム復元器は、対応の圧縮フレームを復元する。フレーム復元器は、1つ以上のバス、少なくとも1つのバッファ、または何らかの他のルーティング機構を用いて、要求を出しているコアに要求された復元フレームをルーティングすることができる。フレーム復元器コントローラは、映像復号器および表示コントローラなどの少なくとも2つのコアの間でフレーム復元器に対する共有アクセスを調停する。フレーム復元器コントローラは、圧縮フレーム要求の要求待ち行列を管理することができる。管理は、優先順位方式に従ってフレーム要求処理の順序付けを必要とし得る。フレーム復元器コントローラは、フレーム復元器へのアクセスのためのタイムシェアリングプロトコルも確立することができる。タイムシェアリングプロトコルは、異なるコアに割当てられるタイムスロット、フレーム復元器の制御を掌握するためにコアが発する割込の受付けなどを含むことができる。
【0020】
これらの態様では、フレーム圧縮器リソースまたはフレーム復元器リソースを、映像データを処理する2つ以上のクライアントコアの間で共有することができる。たとえば、フレーム復元器を共有することにより、フレーム復元に充てられるSoCの領域が小さくなる。加えて、映像表示経路に沿って別個のフレーム復元器を挿入する必要がない。さらに、圧縮/復元アルゴリズムは、全体的なSoCアーキテクチャから切離される。結果的に、圧縮/復元アルゴリズムをより容易にかつしたがってより頻繁に更新することができる。なぜなら、SoC上に含まれ、そうして更新ワークフローに従うフレーム圧縮器またはフレーム復元器は、より少ない、または1つですらあるからである。
【0021】
関連の図を参照して、さまざまな詳細レベルの例示的実現例を以下に検討する。以下の検討は、まず、例示的な動作環境を記載し、次に例示的方式およびハードウェアを記載し
、その後に例示的方法を記載し、例示的電子デバイスおよび関連の例示的局面で終了する。
【0022】
例示的環境
図1は、映像フレームコーデックアーキテクチャを実現することができるプリント回路基板104(PCB)を含む例示的環境100を示す。示されるように、環境100は電子デバイス102を含む。電子デバイス102は、少なくとも1つのPCB104を含む。PCB104は、集積回路106(IC)などの1つ以上の集積回路を含む。図2および図3を参照して以下に記載するように、PCB104は、IC106とは別の少なくとも1つのメモリなどの他の集積回路を含むことができる。IC106は、少なくとも1つのフレーム復元器108-2、複数のコア110-1、110-2…110-n(nは1よりも大きな整数を表わす)、ならびに少なくとも1つの圧縮フレーム112および少なくとも1つの復元フレーム114などの複数の映像フレームを含む。図1は、例示的環境100を記載する一方で、簡略化のためにフレーム復元器108-2しか示していない。しかしながら、フレーム圧縮器-復元器108およびフレーム圧縮器108-1は、図3および図3-1をそれぞれ参照して以下に記載される。
【0023】
例示的実現例では、フレーム復元器108-2は、複数のコア110-1~110-nの少なくとも一部に通信するように結合される。フレーム復元器108-2は、圧縮映像フレームを復元する回路構成を含む。このように、フレーム復元器108-2は、圧縮フレーム112を復元して復元フレーム114を発生させることができる。動作の際、コア110は、フレーム復元器108-2を用いて圧縮フレームの復元版を取得する。たとえば、n番目のコア110-nは、フレーム復元器108-2に要求116を送って、特定された圧縮フレーム112の復元版が要求されていることを示す。フレーム復元器108-2は、復元フレーム114を含む応答118を与える。例示的文脈として映像フレームを参照するが、本明細書中に記載されるフレームは、コンピュータで生成されたグラフィックスフレーム、映像フレーム、組合せフレームなどを含む視覚的データを有する任意のフレームを含むことができる。
【0024】
この態様で、フレーム復元器108-2は、複数のコア110-1~110-nの個別のコアに復元サービスを提供する。同様に、(たとえば、図3-1の)フレーム圧縮器108-1は、複数のコア110-1~110-nの個別のコアに圧縮サービスを提供することができる。このように、フレーム復元器108-2またはフレーム圧縮器108-1(またはその両者)は、IC106のフレーム圧縮-復元(FCD)サーバ回路構成122の少なくとも一部を実現する。同様に、複数のコア110-1~110-nは、複数のフレーム圧縮-復元(FCD)クライアント回路120を実現する。このクライアント-サーバアーキテクチャを用いて、フレーム圧縮器ユニットまたはフレーム復元器ユニットを2つ以上のコア110の間で共有してIC106上のスペースを節約し、IC106のための、映像フレームを圧縮/復元するのに用いられる圧縮/復元技術を高度化するためのワークフローを簡略化することができる。図3図3-1、および図3-2を参照して、IC106およびPCB104のためのより詳細な例示的アーキテクチャを以下に記載する。しかしながら、次に図2を参照して例示的実現例の付加的な局面を記載する。
【0025】
図2は、本明細書中に記載されるような映像フレームコーデックアーキテクチャを実現することができる例示的環境200の他の局面を示す。さまざまな非限定的例示的デバイス、すなわち、スマートフォン102-1、ノートブック型コンピュータ102-2、テレビ102-3、デスクトップコンピュータ102-4、タブレット102-5、およびウェアラブルデバイス102-6を含む電子デバイス102が示される。右側に示されるように、電子デバイス102は、1つ以上のプロセッサ202、1つ以上のコンピュータ読出可能媒体204、および少なくとも1つの配線216を含む。コンピュータ読出可能
媒体204は、コード、データ、命令、他の情報などを記憶する、保持する、またはそれ以外のやり方で含むことができる。電子デバイス102はオペレーティングシステム212も含むことができる。別々に描かれているが、オペレーティングシステム212を1つ以上のコンピュータ読出可能媒体204上に記憶することができる。
【0026】
アプリケーション(図示せず)またはコンピュータ読出可能媒体204上のコンピュータ読出可能命令として具現化されるオペレーティングシステム212は、プロセッサ202によって実行可能である。オペレーティングシステム212または基本入力/出力システム(BIOS)は、フレームコーデックパラメータモジュール214を含むことができる。フレームコーデックパラメータモジュール214は、1つ以上のパラメータを設定して、本明細書中に記載される共有フレーム圧縮および復元機能性の性能を可能化する、認定する、同調させる、またはそれ以外のやり方で容易にすることができる。
【0027】
示されるように、コンピュータ読出可能媒体204は、少なくとも1つの映像バッファ206、少なくとも1つの共有ローカルキャッシュ208、および少なくとも1つのメインメモリ210を含むことができる。ある実現例では、映像バッファ206および共有ローカルキャッシュ208は、IC上の別個のメモリブロックである。他の実現例では、割当てが動的に変化するまたは固定される方式で共有ローカルキャッシュ208の一部が映像バッファ206として用いられるなどの場合、映像バッファ206および共有ローカルキャッシュ208は同じメモリブロックの一部である。配線216は、少なくとも1つのシステムバス218、少なくとも1つの映像バス220、および少なくとも1つの外部バス222を含むことができる。ある実現例では、映像バス220とシステムバス218とは異なるバスである。他の実現例では、別個の映像バスが存在せず、したがって映像データはシステムバス218を用いてICの付近で伝播される。これらのコンピュータ読出可能媒体204およびこれらの配線216の例示的実現例を、図4図6を参照して以下に記載する。
【0028】
例示的構成要素および技術
図3は、PCB104の一部を示す。PCB104は、システムオンチップ302(SoC)およびメインメモリ210を含む。SoC302は、フレーム圧縮器-復元器108(FCD)、フレーム圧縮器-復元器コントローラ304、および複数のコア110-1~110-nを含む映像フレームコーデックアーキテクチャの例示的実現例を描く。SoC302は、共有ローカルキャッシュ208およびシステムバス218も含む。メインメモリ210は、PCB104の一部として含まれる(たとえば、その上に配設される)外部バス222を介してSoC302に結合される。
【0029】
PCB104は、複数のICチップ、配線、インターフェイスなどを搭載するまたは固着するための剛性のまたは可撓性の材料で実現可能である。メインメモリ210は、たとえば、メモリ内容を維持するために定期的にリフレッシュされるダイナミックランダムアクセスメモリ(DRAM)または電力がなくてもメモリ内容を維持することができるフラッシュメモリを用いて実現可能である。一般的に、共有ローカルキャッシュ208など、SoC302上に記憶されるデータにアクセスするのに消費されるよりも、メインメモリ210上に記憶されるデータにアクセスするのにより多くのエネルギが消費される。共有ローカルキャッシュ208は、たとえば、スタティックランダムアクセスメモリ(SRAM)、DRAM、フラッシュメモリ、またはその何らかの組合せを用いて実現可能である。
【0030】
システムバス218は、複数のコア110-1~110-n、共有ローカルキャッシュ208、フレーム圧縮器-復元器コントローラ304、ならびに他の構成要素およびインターフェイスを相互に接続する(たとえば、フレーム圧縮器-復元器108はシステムバ
ス218に直接に結合され得る)。複数のコア110-1~110-nの各々のコア110は、システムバス218を用いて共有ローカルキャッシュ208にデータを記憶させる、またはそこからデータを取り出すことができる。同様に、複数のコア110-1~110-nの各々のコア110は、システムバス218または共有ローカルキャッシュ208も用いるなどによって外部バス222を用いてメインメモリ210にデータを記憶させる、またはそこからデータを取り出すことができる。たとえば、第1のコア110-1は、共有ローカルキャッシュ208にデータを記憶させることができ、第2のコア110-2は次に、記憶されたデータを共有ローカルキャッシュ208から取り出すことができる。
【0031】
例示的な動作では、フレーム圧縮器-復元器108(FCD)は、複数の未処理フレーム306を処理(たとえば、圧縮または復元)して、複数の処理済フレーム308を発生させる。フレーム圧縮器-復元器コントローラ304(FCDコントローラ)は、フレーム圧縮器-復元器108に結合されて、複数のコア110-1~110-nについてフレーム圧縮器-復元器108へのアクセスを調停する。別個に示されるが、フレーム圧縮器-復元器108とフレーム圧縮器-復元器コントローラ304とは、論理的にともに一体化されてもよい。複数のコア110-1~110-nのうちのコア110の少なくとも2つは、フレーム圧縮器-復元器コントローラ304に結合される。このように、各々のコア110は、フレーム圧縮器-復元器コントローラ304を介して、フレーム圧縮器-復元器108によって発生される処理済フレーム308をその未処理フレーム版から取得することができる。処理済フレーム308は、たとえば要求116および対応の応答118を用いて取得することができる。
【0032】
フレーム圧縮器-復元器108は、(たとえば、図3-1に描かれるような)フレーム圧縮器308-1、(たとえば、図3-2に描かれるような)フレーム復元器108-2、またはその両者を含むことができる。同様に、フレーム圧縮器-復元器コントローラ304は、(たとえば、図3-1に描かれるような)フレーム圧縮器コントローラ304-1、(たとえば、図3-2に描かれるような)フレーム復元器コントローラ304-2、またはその両者を含むことができる。フレーム圧縮器-復元器108による処理動作が圧縮であるかまたは復元動作であるかに依存して、未処理フレーム306または処理済フレーム308の一方が圧縮フレームに対応し、他方が復元フレームに対応する。所与の実現例がフレーム圧縮器108-1とフレーム復元器108-2との両方(および/またはフレーム圧縮器コントローラ304-1とフレーム復元器コントローラ304-2との両方)を含む場合、そのような構成要素を同じ場所に配置してもよく、互いに近接して位置させてもよく、またはIC上の異なる場所に位置させてもよい。たとえば、各々は、対応の圧縮または復元サービスの最も一般的なクライアントでありそうなコアのより近くに位置し得る。さらに、チップが同じ場所に配置されるフレーム圧縮器108-1とフレーム復元器108-2とを含む場合、各々は完全に別個の回路構成を含んでもよいし、またはそれらは回路構成を共有してもよい。ある実現例では、フレーム圧縮器-復元器108を、要求116に依存してロスレス圧縮動作またはロスレス復元動作の一部としてフレームのデータのメモリサイズを調整するロスレスフレームデータマニピュレータとして実現可能である。圧縮動作および復元動作の例示的実現例を、それぞれ図3-1および図3-2を参照して以下に記載する。
【0033】
図3-1は、フレーム圧縮器108-1(FC)、フレーム圧縮器コントローラ304-1(FCコントローラ)、および複数のコアを含む映像フレームコーデックアーキテクチャの例示的実現例を有するSoCを示す。フレーム圧縮器108-1は、未圧縮フレーム(たとえば、復元フレーム114または未だ圧縮されていないフレーム)を圧縮して圧縮フレーム112を発生させる。フレーム圧縮器コントローラ304-1は、フレーム圧縮器108-1に結合され、複数のコア110-1~110-nについてフレーム圧縮器108-1へのアクセスを調停する。別個に示されるが、フレーム圧縮器108-1とフ
レーム圧縮器コントローラ304-1とを、論理的にともに一体化してもよい。
【0034】
複数のコア110-1~110-nのうちのコア110の少なくとも2つは、フレーム圧縮器コントローラ304-1に結合される。ここで、各々のコア110は、視覚的データを発生させる構成要素またはブロックを含むことができる。このように、各々のコア110は、フレーム圧縮器コントローラ304-1を介して、フレーム圧縮器108-1によって発生される圧縮フレーム112をその復元フレーム114版から取得することができる。このように、たとえば要求116および対応の応答118を用いて圧縮フレーム112を取得することができる。動作の際、フレーム圧縮器コントローラ304-1は、パイプライン化された態様で、システムバス218上の要求を出しているあるコア110にフレーム圧縮器108-1の圧縮エンジンへのアクセスを付与して、メインメモリ210へのアクセスを提供する外部バス222へのトラフィックの追加を回避する。ある実現例では、フレーム圧縮器コントローラ304-1は、要求を出しているコア110への排他的なアクセスを一時的に付与して圧縮リソースにアクセスすることができる。
【0035】
図3-2は、フレーム復元器108-2(FD)、フレーム復元器コントローラ304-2(FDコントローラ)、および複数のコアを含む映像フレームコーデックアーキテクチャの例示的実現例を有するSoCを示す。フレーム復元器コントローラ304-2は、フレーム圧縮器108-2に結合され、複数のコア110-1~110-nについてフレーム復元器108-2へのアクセスを調停する。別個に示されるが、フレーム圧縮器108-2とフレーム圧縮器コントローラ304-2とを論理的にともに一体化してもよい。複数のコア110-1~110-nのうちのコア110のうち少なくとも2つは、フレーム復元器コントローラ304-2に結合される。このように、各々のコア110は、フレーム復元器コントローラ304-2を介して、フレーム復元器108-2によって発生される復元フレーム114をその圧縮フレーム112版から取得することができる。このように、たとえば要求116および対応の応答118を用いて、復元フレーム114を取得することができる。
【0036】
以下の説明の一部は、少なくとも復元動作を行なうことができる実現例に注目する。このように、各々は、フレーム復元器108-2とフレーム圧縮器-復元器コントローラ304またはフレーム復元器コントローラ304-2とを明示的に含み得る。しかしながら、各々の実現例は、付加的にまたは代替的に、圧縮動作を行なうフレーム圧縮器108-2を含み得る。さらに、図4図6を参照して復元動作について記載する態様に少なくとも類似した態様でどのように圧縮動作および圧縮フレーム112の移動を達成することができるかが明らかになる。また、図7を参照して記載される要求の取扱いおよび図8を参照して記載されるタイムシェアリングプロトコルを、圧縮動作について同様の態様で同様に実現することができる。
【0037】
コア110のうち少なくともいくつかは、映像関連目的のために映像データに対して動作することができる。映像関連目的は、映像復号、映像表示、映像のコード変換(たとえば、1つのアルゴリズムを用いて1つのコード化フォーマットから復号すること、および別のアルゴリズムを用いて別のコード化フォーマットに符号化すること)、映像補償(たとえば、画像を向上させるまたは増強するための、グラフィックス処理ユニット(GPU)による映像フレームに対する動作)などを含む。図5を参照して、第1のコアが映像復号器として実現され、第2のコアが表示コントローラとして実現される例示的実現例を以下に記載する。しかしながら、まず図4を参照してフレーム復元器コントローラ304の例示的実現例を記載する。
【0038】
図4は、一般的に400で、フレーム復元器108-2およびコア110に関連の例示的フレーム圧縮器-復元器コントローラ304を示す。コア110はFCDクライアント
インターフェイス410を含み、フレーム復元器コントローラ304はFCDサービスインターフェイス408を含む。FCDクライアントインターフェイス410およびFCDサービスインターフェイス408は共同してコア110とフレーム圧縮器-復元器コントローラ304との間の通信を可能にする。このように、これらの2つのインターフェイスを用いて、コア110は、要求116をフレーム圧縮器-復元器コントローラ304に送ることができ、フレーム圧縮器-復元器コントローラ304は、応答118をコア110に送ることができる。
【0039】
FCDクライアントインターフェイス410およびFCDサービスインターフェイス408は、システムバス218(図示せず)、映像バス218などにより通信することができる。要求116は、ビット線、レジスタの1つ以上のビット、少なくとも1つのパケットに構築されるメッセージなどを用いて通信することができる。復元フレーム114を含む応答118は、コア110をフレーム復元器108-2に結合するバスを用いて、コア110とフレーム復元器108-2との両方がアクセスするメモリを用いて、およびその何らかの組合せを用いて、通信され得る。図5および図6を参照して、異なるインターフェイス通信の例を以下に記載する。
【0040】
示されるように、フレーム圧縮器-復元器コントローラ304は、要求マネージャ402、要求待ち行列404、優先順位マネージャ406、およびタイムシェアリングプロトコルハンドラ412を含む。FCDサービスインターフェイス408は少なくとも、要求マネージャ402、優先順位マネージャ406、およびタイムシェアリングプロトコルハンドラ412に結合される。要求処理の優先順位付けを含む要求を管理するための例示的手法を図7を参照して以下に記載する。タイムシェアリングプロトコルを確立してフレーム復元器108-2にアクセスするためのタイムシェアリングプロトコルハンドラ412を用いる例示的方式を図8を参照して以下に記載する。
【0041】
図5は、SoCの複数のコアが映像復号器502および表示コントローラ504を含む映像フレームコーデックアーキテクチャを実現する例示的手法500を示す。左側で、映像復号器502は、フレーム圧縮器108-1を含むストリーム復号器506を含む。しかしながら、フレーム圧縮器108-1は、ストリーム復号器506または映像復号器502とは別個に実現されてもよい。右側で、表示コントローラ504はフレームバッファ518を含む。フレーム復元器108-2、フレーム圧縮器-復元器コントローラ304(FCDコントローラ)、および映像バッファ206は、映像復号器502に関連付けられる。たとえば、これらの3つの構成要素を映像復号器502と同じ場所に配置する(たとえば、その隣に配設するまたはそれと物理的に混在させる)ことができる、映像復号器502と少なくとも部分的に論理的に一体化することができる、またはこれらはその何らかの組合せであることができる。映像復号器502および表示コントローラ504を参照して記載するが、原則は一般的にコア110に当てはまる。また、映像バッファ206を共有ローカルキャッシュ208とは別個に描いているが、代替的に映像バッファ206を共有ローカルキャッシュ208の一部として組入れてもよく、またはそれから割当ててもよい。
【0042】
例示的実現例では、電子デバイスは、映像を表わすように符号化されるビットのストリームを含むことができるビデオストリーム514を取得する。ビデオストリーム514は、H.264などの何らかのコーデックを用いて符号化される複数の生フレーム516からなる。ストリーム復号器506は、システムバス218を介してビデオストリーム514を受信し、ビデオストリーム514を復号して複数の復号フレーム512を発生させる。そのうち1つを明示的に示す。フレーム圧縮器108-1は、複数の復号フレーム512を圧縮して複数の圧縮フレーム112を発生させる。示されるように、フレーム圧縮器108-1は、ストリーム復号器506と一体化される。このように、フレーム圧縮器1
08-1は、復号プロセスの一部として復号フレーム512を圧縮することができる。しかしながら、フレーム圧縮を代替的な態様で実現することができる。映像バッファ206、共有ローカルキャッシュ208、またはメインメモリ210において映像復号器502または別のコアがその後使用するために、これらの復号圧縮フレーム112を記憶することができる。
【0043】
復号圧縮フレーム112を異なる映像関連目的に用いてもよい。たとえば、一層の映像復号の目的のために圧縮フレームを用いる場合、圧縮フレーム112は圧縮基準フレーム112Rを備え得る。これに代えて、他の圧縮フレームを映像表示目的に用いる場合、別の圧縮フレーム112は、圧縮表示フレーム112Dを備え得る。映像復号器502の映像復号機能性のために、フレーム復元器108-2は、圧縮基準フレーム112Rを復元して復元基準フレーム114Rを発生させる。映像復号器502は、復元基準フレーム114Rを用いたビデオストリーム514の復号を継続することができる。
【0044】
表示コントローラ504の映像表示機能性のために、フレーム復元器108-2は、圧縮表示フレーム112Dを復元して復元表示フレーム114Dを発生させる。表示コントローラ504は、フレーム復元器コントローラクライアントインターフェイス410およびフレーム復元器コントローラサービスインターフェイス408(両者とも図4)を介して、(たとえば、図3-2の少なくともフレーム復元器コントローラ304-2を含む)フレーム圧縮器-復元器コントローラ304からこの復元サービスを要求することができる。フレーム圧縮器-復元器コントローラ304は、(実線の波状の矢印で表わされる)ルーティング機構510を介して復元表示フレーム114Dを表示コントローラ504に与える。表示コントローラ504は、復元表示フレーム114Dをフレームバッファ518に記憶させることができる。したがって、表示コントローラ504は、記憶された復元表示フレーム114Dを用いて表示画面上に映像フレームの画像を提示することができる。図5のフレーム圧縮器-復元器コントローラ304は、フレーム復元器108-2を用いた復元サービスを複数のコアに与えるという観点で記載されるが、原則はフレーム圧縮器108-1を用いた圧縮サービスを複数のコアに提供するフレーム圧縮器-復元器コントローラ304にも当てはまる。
【0045】
細かな破線を用いて複数の例示的なルーティング機構510を図5に示す。ルーティング機構510は、フレーム圧縮器-復元器コントローラ304が映像復号器502または表示コントローラ504などの要求を出しているコアに復元フレーム114を与える異なる経路を表わす。第1のルーティング機構510-1において、フレーム圧縮器-復元器コントローラ304は、復元表示フレーム114Dをシステムバス218を介して表示コントローラ504のフレームバッファ518に与える。第2のルーティング機構510-2において、フレーム圧縮器-復元器コントローラ304は、システムバス218および共有ローカルキャッシュ208を介して復元表示フレーム114Dを表示コントローラ504に与える。たとえば、フレーム圧縮器-復元器コントローラ304は、共有ローカルキャッシュ208に復元表示フレーム114Dを記憶させることができ、表示コントローラ504は、共有ローカルキャッシュ208から記憶された復元表示フレーム114Dを取り出すことができる。
【0046】
第3のルーティング機構510-3において、フレーム圧縮器-復元器コントローラ304は、システムバス218およびメインメモリ210を介して復元表示フレーム114Dを表示コントローラ504に与える。たとえば、フレーム圧縮器-復元器コントローラ304は、システムバス218および外部バス222を介してメインメモリ210にオフチップで復元表示フレーム114Dを記憶させることができる。表示コントローラ504は、2つのバスを用いてメインメモリ210から、記憶された復元表示フレーム114Dを取り出し、次にフレームをフレームバッファ518に記憶させることができる。
【0047】
第4のルーティング機構510-4は、フレーム復元サービスのクライアントとしての映像復号器502にサービスを提供することに関する。第4のルーティング機構510-4において、フレーム圧縮器-復元器コントローラ304は、復元基準フレーム114Rを映像復号器502に与える。そのために、フレーム圧縮器-復元器コントローラ304は、復元基準フレーム114Rを映像バッファ206に転送する。映像復号器502は、映像バッファ206から復元基準フレーム114Rにアクセスすることができる。
【0048】
第5のルーティング機構510-5において、集積回路が映像バス220およびシステムバス218を含む場合に、フレーム圧縮器-復元器コントローラ304は、少なくとも部分的にシステムバス218とは別個の映像バス220を介して復元表示フレーム114Dを表示コントローラ504に与える。示されるように、映像バス220は、映像データの伝播専用であり、少なくともフレーム圧縮器-復元器コントローラ304と表示コントローラ504との間に延在する。しかしながら、映像バス220は、他の映像データを他のコアにおよび他のコアから搬送することなどによって異なる態様で実現可能である。
【0049】
第6のルーティング機構510-6において、フレーム圧縮器-復元器コントローラ304は、映像バッファ206を介して復元表示フレーム114Dを表示コントローラ504に与える。フレーム圧縮器-復元器コントローラ304は、復元表示フレーム114Dの少なくとも一部を映像バッファ206に記憶させる。1つの手法では、表示コントローラ504は、少なくともシステムバス218を用いて映像バッファ206から復元表示フレーム114Dを取り出す。別の手法では、表示コントローラ504は、(たとえば、システムバス218とは別個に存在する場合は)少なくとも映像バス220を用いて映像バッファ206から復元表示フレーム114Dを取り出す。いずれの手法を用いても、第6のルーティング機構510-6は、表示コントローラ504が映像バッファ206にアクセスするのに、メモリマッピングされた機構をさらに必要とし得る。メモリマッピングされた機構についての例示的実現例を次に図6を参照して記載する。
【0050】
図6は、第6のルーティング機構510-6を用いて復元表示フレーム114Dを映像復号器502から表示コントローラ504にルーティングするための例示的技術600を示す。この例では、映像復号器502は、フレーム復元器108-2およびフレーム圧縮器-復元器コントローラ304と一体化される。映像復号器502は、映像バッファ206に加えて、同期レジスタ602を含む。映像バッファ206は、この例では出力バッファとして機能する。このように、フレーム圧縮器-復元器コントローラ304は、フレーム復元器108-2に、復元表示フレーム114Dの少なくとも一部を映像バッファ206に記憶させる。
【0051】
第6のルーティング機構510-6のための例示的技術600は、少なくとも1つのステータス通信606に係る。第1のステータス通信606-1は、フレーム圧縮器-復元器コントローラ304と同期レジスタ602との間で起こる。第2のステータス通信606-2は、表示コントローラ504と同期レジスタ602との間で起こる。各々のステータス通信606は、ポーリング動作または更新動作を含むことができ、システムバス218または映像バス220上で行なわれ得る。
【0052】
復元表示フレーム114Dの少なくとも一部を映像バッファ206に記憶することに応答して、フレーム圧縮器-復元器コントローラ304は、第1のステータス通信606-1の更新動作の一部として、値604を同期レジスタ602に書込む。この値604は、映像バッファ206の記憶内容のステータスを示す。ここで、値604は、復元表示フレーム114Dの1つ以上の表示ライン(display lines)608などの特定の映像データ
が新たに映像バッファ206の中に置かれたことを示す。このように、映像バッファ20
6は、1つ以上の表示ライン608を保持するラインバッファとして機能することができる。
【0053】
一方で、表示コントローラ504は、第2のステータス通信606-2のポーリング動作の一部として、同期レジスタ602から値604を抽出する。値604に基づいて、表示コントローラ504は、要求された復元表示フレーム114Dの1つ以上の新たな表示ライン608が映像バッファ206の中に存在しかつ利用可能であると判断する。したがって、表示コントローラ504は、値604に従って、システムバス218または映像バス220を介して映像バッファ206から少なくとも1つの表示ライン608を取り出す。取り出しに応答して、表示コントローラ504は、第2のステータス通信606-2の更新動作の一部として、別の値604を同期レジスタ602に書込み、対応の取り出された表示ライン608のステータスを示す。したがって、この他の値604は、少なくとも1つの表示ライン608が映像バッファ206から読出されたことを示す。
【0054】
周期的にまたは何らかの動作の一部として、フレーム圧縮器-復元器コントローラ304は、第1のステータス通信606-1の一部として同期レジスタ602をポーリングする。フレーム圧縮器-復元器コントローラ304は、他の値604を調べて、対応の表示ライン608が表示コントローラ504によってアクセスされて取り出されたか否かを判断する。そうであれば、フレーム圧縮器-復元器コントローラ304は、対応の表示ライン608のメモリ場所を新たなデータで上書きできることを知る。
【0055】
値604または他の値604は、たとえば1つ以上のビットを備えることができる。値604および他の値604は、同期レジスタ602の異なる記憶場所または同じ記憶場所に対応し得る。映像復号器502および表示コントローラ504を参照して記載するが、これらの原則は一般的にコア110に当てはまる。同期レジスタ602中の値604をポーリングし更新することにより、メモリマッピングされた転送機構を用いて復元表示フレーム114Dのルーティングを制御することができる。
【0056】
図7は、復元フレームについて複数のコアが出す要求116を管理するフレーム圧縮器-復元器コントローラ304による例示的方式700を示す。この例では、映像復号器502は、フレーム復元器108-2およびフレーム圧縮器-復元器コントローラ304と一体化される。フレーム圧縮器-復元器コントローラ304は、(図4にも示される)要求マネージャ402、要求待ち行列404、および優先順位マネージャ406によって表わされる。示されるように、要求待ち行列404は複数の要求116を含む。各々の要求116は優先順位706に対応する。各々の要求116は要求元識別702およびフレーム識別704も含むまたはそれらに対応する。
【0057】
復元フレームに対するある要求は、他の要求よりもより重要であり得るまたは時間的に関連があり得る。たとえば、ストリーミングビデオのリアルタイム提示に関する要求は、ベストエフォート速度でバックグラウンドで行なうことができる映像コード変換動作に対する要求よりも、エンドユーザにとってより重要である見込みが高い。したがって、前者の映像関連目的に対する要求を、後者の映像関連目的に対する要求よりも優先することができる。その目的のため、優先順位706を、要求、コア、フレームなどに関連付けることができる。
【0058】
例示的実現例では、要求元識別702は、(図5および図6の)映像復号器502または表示コントローラ504などの要求を出しているコア110を識別する。フレーム識別704は、たとえばフレーム番号、時間インデックス、またはそのオフセットなどにより、要求される復元フレーム114を識別する。要求元識別702は、発信元または(たとえば、各コア毎に専用のバスがそれぞれ与えられている場合は)要求116を与えるのに
用いられるバスなどに基づいて、1つ以上のビット線上の特定の電圧値を用いて、要求116とともに転送される割り振られた識別値によって、実現可能である。フレーム識別704は、各々の要求116中に明示的に含まれ得る、(たとえば、次の順のフレームが所望される場合は)暗示的に要求116の中に含まれ得る、およびある範囲のフレームの一部として先の要求に含まれ得る、などである。
【0059】
動作の際、要求マネージャ402は、フレーム復元器コントローラサービスインターフェイス408を介してなど、コア110から要求116を受信する。要求マネージャ402は、要求116を要求待ち行列404に挿入する。1つの手法では、要求マネージャ402は、要求待ち行列404を先入れ先出し(FIFO)の態様で動作させる。これに代えて、要求マネージャ402は、対応の優先順位706に基づいて、各々の要求116を要求待ち行列404に挿入することができる。各個別の要求116の対応の優先順位706は、対応の個別の要求116に含まれ得るまたはそれに伴い得る。これに代えて、優先順位706を、要求116の群に対してまとめて明示的に割り振ったり、または各々のコア110を、関連付けられるコア110が出す各々の要求116に暗示的に割り振られる特定の優先順位706に関連付けたりすることができる。
【0060】
示されるように、各々の要求116は、異なる優先順位706を有する要求116が同じ要求待ち行列404内に記憶されるように、対応の優先順位706に関連付けられて要求待ち行列404中に記憶される。これに代えて、フレーム圧縮器-復元器コントローラ304は、各々の要求待ち行列404が対応の優先順位706に関連付けられた複数の要求待ち行列404を用いて、示される要求待ち行列404を実現し得る。したがって、各々の要求116は、当該要求116に対応するそれぞれの優先順位706に関連付けられるそれぞれの要求待ち行列404中に記憶される。
【0061】
示される要求待ち行列404を実現するのに用いられる手法に拘わらず、優先順位マネージャ406は、複数の要求116にそれぞれ対応する複数の優先順位706に従って、複数の要求116の処理の順序付けを行なう。このように、優先順位マネージャ406は、2つ以上の要求116同士の間の相対的な優先順位に基づく優先順位方式を用いて次の要求116を抽出する。優先順位マネージャ406は、次の要求116をフレーム復元器108-2に前送りする。フレーム復元器108-2は、要求された復元フレーム114に対応する圧縮フレーム112を取り出す。図5および図6の例示的シナリオを続けて、フレーム復元器108-2は、圧縮表示フレーム112Dを取り出して復元動作を行ない復元表示フレーム114Dを発生させる。フレーム圧縮器-復元器コントローラインターフェイス408は、フレーム復元器108-2に、応答118の一部として復元表示フレーム114Dを映像復号器502にルーティングさせる。
【0062】
図8は、(たとえば図3-1の)フレーム圧縮器108-1などのフレーム圧縮リソースまたは(たとえば図3-2の)フレーム復元器108-2などのフレーム復元リソースを共有するための少なくとも1つのタイムシェアリングプロトコル800を確立するフレーム圧縮器-復元器コントローラ304による例示的方式を示す。(明示的に図示されない)フレーム圧縮器-復元器コントローラ304のタイムシェアリングプロトコルハンドラ412は、少なくとも1つの例示的なタイムシェアリングプロトコル800-1、800-2、または800-3を確立することができる。矢印812で示されるように、時間は右方向に進む。各々の例示的なタイムシェアリングプロトコル800は、2つのコアの間でのフレーム復元リソースの共有の観点で記載される。しかしながら、開示されるタイムシェアリングプロトコル800は、2つよりも多くのコアの間でのフレーム復元リソースの共有に適用可能である。図8は、フレーム復元をタイムシェアリングする観点で記載されるが、原則は、フレーム圧縮のためのタイムシェアリングプロトコルの実現にも当てはまる。
【0063】
第1のタイムシェアリングプロトコル800-1の場合、時間は複数のタイムスロットに分割される。これらのタイムスロットは固定時間を有し、各々それぞれのタイムスロットがそれぞれのコアに割り振られる。タイムスロット802-1は、映像復号器502などの第1のコアに対応する。タイムスロット802-2は、表示コントローラ504などの第2のコアに対応する。動作の際、タイムシェアリングプロトコルハンドラ412は、2つの異なるタイムスロットの所定の長さで、2つのコアの間でフレーム復元リソースに対するアクセスを回す。第1のタイムシェアリングプロトコル800-1では割込はイネーブルされない。
【0064】
これに対し、割込806は、第2のタイムシェアリングプロトコル800-2についてはイネーブルされる。ここでは、フレーム復元リソースは、一般的に2つのクライアントのうち一方-この例では第1のコア-について確保される。このように、タイムスロット804-1は第1のコアに対応し、無限に延びることができる。これらのタイムスロット804-1は、タイムシェアリングプロトコルハンドラ412が割込806を受信するまで延びる。コア110は、割込線をハイに駆動することなどによって、専用の映像バスを用いて、システムバス上のメッセージを介して割込806を信号で送ることができる。割込806の検出に応答して、タイムシェアリングプロトコルハンドラ412は文脈切換えを開始して、フレーム復元リソースへのアクセスを異なるコアに転送し、別のタイムスロットを開始する。
【0065】
第2のタイムシェアリングプロトコル800-2に示されるように、第2のコアは割込806aを発する。タイムシェアリングプロトコルハンドラ412は割込806aを検出し、フレーム復元器108-2へのアクセスを、割込んでいる第2のコアに転送する。このように、フレーム復元器108-2は、少なくとも1つの復元動作を行なって、割込806aの後のタイムスロット804-2の間に、要求を出している第2のコアのために復元フレーム114を発生させる。各々のタイムスロット804-2の長さは、固定したり、第2のコアについて何個の要求が行列待ちしているかに依存したり、各々の行列待ちしている要求の優先順位レベルに依存したりなどすることができる。別のタイムスロット804-1について再びフレーム復元リソースへのアクセスが第1のコアに付与された後、第2のコアはその後に別の割込806bを発することができる。代替的手法では、第2のコアに割り振られる各々のタイムスロット804-2は、別のコアが割込(図示せず)を発するまで継続することができる。このように、この代替的手法では、文脈切換えは、割込806に応答してかつ経過した時間とは独立して起こり得る。
【0066】
第3のタイムシェアリングプロトコル800-3の場合、時間は複数のタイムスロットに分割される。第3のタイムシェアリングプロトコル800-3は、第1のタイムシェアリングプロトコルと第2のタイムシェアリングプロトコルとのハイブリッドである。タイムスロット808-1などのあるタイムスロットは、割込が不可能な固定時間を有する。タイムスロット810-1などの他のタイムスロットは、別のコアによって割込が可能な可変時間を有する。示されるように、第1のコアは、タイムスロット808-1および810-1に割り振られる。第2のコアからの割込806cはタイムスロット808-1の間に到着する。しかしながら、タイムシェアリングプロトコルハンドラ412は、この割込806cを無視する(または行列待ちに入れる)。一方で、タイムスロット810-1の間に到着する割込806dは文脈切換えをトリガする。文脈切換えにより、フレーム復元リソースは、割込806dの後にタイムスロット804-2の間は第2のコアに割り振られる。タイムスロット808-1の間に割込806cが(消去される代わりに)待ち行列に入れられるのであれば、割込806cに応答して、文脈切換えをタイムスロット808-1の終わりまたはタイムスロット810-1の始めに開始することができる。
【0067】
映像フレームコーデックアーキテクチャのための技術および装置を実現可能な環境を全般的に記載したが、この検討はここで例示的方法に向けられる。
【0068】
例示的方法
以下の検討は、映像フレームコーデックアーキテクチャを動作させるための方法を記載する。これらの方法は、図1および図3に示されるような電子デバイス102およびPCB104などの先に記載された例、ならびに図10に描かれる電子デバイス1000を利用して実現可能である。これらの方法の局面は図9に示され、それらは、少なくとも1つのICチップの1つ以上の構成要素によって行なわれる動作902-912として示される。これらの方法の動作が示されるおよび/または記載される順序は、限定として解釈されることを意図しておらず、任意の数の記載される方法動作またはその組合せは、方法または交互の方法を実現する任意の順序で組合せ可能である。図9のフローチャートは、フレーム復元器108-2を動作させる観点で記載されるが、原則は、同様にフレーム圧縮器108-1を動作させることに当てはまる。
【0069】
図9は、フレーム復元サービスを複数の異なるコアに提供する回路構成によって実現され得る映像フレームコーデックアーキテクチャを動作させるための例示的方法900を示す。902で、第1の復元フレームに対する第1の要求が第1のコアから受付けられる。たとえば、フレーム圧縮器-復元器コントローラ304(たとえば、そのフレーム復元器コントローラ304-2)は、第1のコア110-1から第1の復元フレーム114に対する第1の要求116を受付けることができる。受付けは、システムバス218、映像バス220、同期レジスタ602などを介して行なわれ得る。
【0070】
904で、第1の圧縮フレームを復元して第1の復元フレームを発生させる。たとえば、フレーム復元器108-2は、第1の圧縮フレーム112を復元して第1の復元フレーム114を発生させることができる。第1の要求116の処理は、関連付けられる優先順位706に従って行なわれ得る。
【0071】
906で、第1の要求に応答して第1の復元フレームが第1のコアに与えられる。たとえば、フレーム圧縮器-復元器コントローラ304は、第1の要求116に応答して、第1の復元フレーム114を第1のコア110-1に与えることができる。第1の復元フレーム114は、ルーティング機構500を用いて、フレーム復元器108-2から第1のコア110-1に転送され得る。
【0072】
908で、第2の復元フレームに対する第2の要求が第2のコアから受付けられる。たとえば、フレーム圧縮器-復元器コントローラ304は、第2のコア110-2から第2の復元フレーム114に対する第2の要求116を受付けることができる。第1のコア110-1が表示コントローラ504を備えてもよく、第2のコア110-2が映像復号器502を備えてもよい。
【0073】
910で、第2の圧縮フレームを復元して第2の復元フレームを発生させる。たとえば、フレーム復元器108-2は、第2の圧縮フレーム112を復元して第2の復元フレーム114を発生させることができる。復元は、ロスレス圧縮/復元アルゴリズムを用いて行なわれ得る。912で、第2の要求に応答して第2の復元フレームが第2のコアに与えられる。たとえば、フレーム圧縮器-復元器コントローラ304は、第2の要求116に応答して第2の復元フレーム114を第2のコア110-2に与えることができる。第2の復元フレーム114を取得した後、第2のコア110-2は、対応の映像関連の機能性に従ってフレームを処理し得る。
【0074】
先の検討は、映像フレームコーデックアーキテクチャに関する方法を記載する。これら
の方法の局面は、たとえば、ハードウェア(たとえば、固定された論理回路構成)、ファームウェア、またはその何らかの組合せにおいて実現され得る。これらの技術は、図1図8および図10(電子デバイス1000は以下の図10に記載される)に示されるエンティティまたは構成要素のうち1つ以上を用いて実現され得、これらをさらに分割、組合せなどしてもよい、このように、これらの図は記載される技術を用いることができる多数の可能なシステムまたは装置のうちいくつかを示す。これらの図のエンティティおよび構成要素は一般的に、ファームウェア、ハードウェア、ICチップ、回路、またはその組合せを表わす。
【0075】
例示的電子デバイス
図10は、先の図1図9のうちいずれかを参照して記載されるような1つ以上の実現例に従って映像フレームコーデックアーキテクチャを実現することができる例示的電子デバイス1000のさまざまな構成要素を示す。電子デバイス1000は、消費者、コンピュータ、携帯型装置、ユーザ、サーバ、通信、電話、ナビゲーション、ゲーム、音声、カメラ、メッセージ、媒体再生、および/または図1に描かれるスマートフォンなどの他の種類の電子デバイス102のうち任意の形態で固定デバイスまたは移動体デバイスの任意の1つまたはその組合せとして実現され得る。
【0076】
電子デバイス1000は、上述のような受信データ、送信データ、または他の情報などのデバイスデータ1004の有線および/または無線通信を可能にする通信トランシーバ1002を含む。例示的通信トランシーバ1002は、NFCトランシーバ、さまざまなIEEE802.15(ブルートゥース(登録商標))標準に準拠するWPAN無線、さまざまなIEEE802.11(ワイファイ(登録商標))標準のうち任意のものに準拠するWLAN無線、セルラー電話通信のためのWWAN(3GPP準拠)無線、さまざまなIEEE802.16(WiMAX(登録商標))標準に準拠する無線メトロポリタンエリアネットワーク(WMAN)無線、および有線ローカルエリアネットワーク(LAN)イーサネット(登録商標)トランシーバを含む。
【0077】
電子デバイス1000は、1つ以上のデータ入力ポート1006も含み得る。これを介して、任意の種類のデータ、媒体コンテンツ、および/またはユーザ選択可能入力、メッセージ、アプリケーション、音楽、テレビコンテンツ、録画された映像コンテンツ、ならびに任意のコンテンツおよび/またはデータソースから受信した任意の他の種類の音声、映像、および/または画像データなどの他の入力を受信することができる。データ入力ポート1006は、USBポート、同軸ケーブルポート、およびフラッシュメモリ、DVD、CDなど用の(内部コネクタを含む)他のシリアルまたはパラレルコネクタを含み得る。これらのデータ入力ポート1006を用いて電子デバイスを構成要素、周辺機器、またはキーボード、マイクもしくはカメラなどのアクセサリーに結合し得る。
【0078】
この例の電子デバイス1000は、少なくとも1つのプロセッサ1008(たとえば、アプリケーションプロセッサ、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、コントローラなどのうち任意の1つ以上)を含み、これは、コンピュータ読出可能媒体上に記憶されるコンピュータ実行可能命令を処理(たとえば実行)してデバイスの動作を制御する、(たとえば、SoCの一部として実現される)プロセッサとメモリシステムとの組合せを含むことができる。プロセッサ1008は、アプリケーションプロセッサ、内蔵コントローラ、マイクロコントローラ、SoCなどとして実現され得る。一般的に、プロセッサまたは処理システムは、少なくとも部分的にハードウェアにおいて実現され得る。これは、集積回路またはオンチップシステム、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、コンプレックスプログラマブル論理デバイス(CPLD)、ならびにシリコンおよび/または他のハードウェアにおける他の実現例の構成要素を含むことができる。
【0079】
これに代えてまたは加えて、電子デバイス1000は、電子回路構成の任意の1つまたは組合せを用いて実現可能であり、これは、(電子回路構成1010として)1010で一般的に示される処理および制御回路に関連して実現されるソフトウェア、ハードウェア、ファームウェア、または固定論理回路構成を含み得る。この電子回路構成1010は、論理回路構成および/または(たとえばFPGAなどの)ハードウェアなどを通じて実行可能なまたはハードウェアベースのモジュール(図示せず)を実現することができる。
【0080】
示されないが、電子デバイス1000は、デバイス内のさまざまな構成要素を結合するシステムバス、配線、クロスバー、またはデータ転送システムを含むことができる。システムバスまたは配線は、さまざまなバスアーキテクチャのうち任意のものを利用するメモリバスもしくはメモリコントローラ、周辺バス、ユニバーサルシリアルバス、および/またはプロセッサもしくはローカルバスなどの異なるバス構造のうち任意の1つまたは組合せを含むことができる。
【0081】
電子デバイス1000は、データ記憶を可能にする1つ以上のメモリデバイス1012も含み、その例は、ランダムアクセスメモリ(RAM)、不揮発性メモリ(たとえば、読出専用メモリ(ROM)、フラッシュメモリ、EPROM、およびEEPROM)、およびディスク記憶デバイスを含む。メモリデバイス1012は、データ記憶機構を提供して、デバイスデータ1004、他の種類のコードおよび/またはデータ、ならびにさまざまなデバイスアプリケーション1020(ソフトウェアアプリケーションまたはプログラム)を記憶する。たとえば、オペレーティングシステム1014をメモリデバイス1012内にソフトウェア命令として維持し、これをプロセッサ1008によって実行することができる。
【0082】
示されるように、電子デバイス1000は、音声データを処理しならびに/または音声および映像データを音声システム1018および/もしくは表示システム1022(たとえば、映像バッファもしくはスマートフォンもしくはカメラの画面)に渡す、音声および/または映像処理システム1016も含む。音声システム1018および/または表示システム1022は、音声、映像、表示および/または画像データを処理、表示、および/または他のやり方でレンダリングする任意のデバイスを含み得る。表示データおよび音声信号は、RF(無線周波数)リンク、S-映像リンク、HDMI(登録商標)(高精細マルチメディアインターフェイス)、復号映像リンク、コンポーネント映像リンク、DVI(デジタル映像インターフェイス)、アナログ音声接続、またはメディアデータポート1024などの他の同様の通信リンクを介して、音声コンポーネントおよび/または表示コンポーネントに通信可能である。ある実現例では、音声システム1018および/または表示システム1022は、電子デバイス1000の外部または別個の構成要素である。これに代えて、表示システム1022は、一体化されたタッチインターフェイスの一部など、例示的な電子デバイス1000の一体化された構成要素であることができる。
【0083】
図10の電子デバイス1000は、図1の電子デバイス102の例示的実現例である。このように、プロセッサ1008は、(たとえば、それぞれ図1図2、および図3の)集積回路106、プロセッサ202、またはSoC302の一例である。このように、図10に示されるように、プロセッサ1008は、フレーム圧縮器-復元器108、複数のコア110-1~110-n、およびフレーム圧縮器-復元器コントローラ304を含み得る。図10において、映像バッファ206、共有ローカルキャッシュ208、および(たとえば、各々図2図3図5、または図6のものでもある)メインメモリ210は、1つ以上のメモリデバイス1012の一部であることなどによってメモリシステムの少なくとも一部を形成するものとして描かれる。上述のように、これらのメモリコンポーネントのうち1つ以上は、プロセッサ1008の構成要素と同じ集積回路の一部(たとえば、
映像バッファ206および共有ローカルキャッシュ208は図3のSoC302の一部)であってもよく、または代わりに別個のダイ上に位置してもよく、または異なるプリント回路基板上に配設すらされてもよい。このように、本明細書中に記載するような映像フレームコーデックアーキテクチャの原則は、図10の電子デバイス1000によってまたはそれと関連して、実現可能である。
【0084】
ある特徴および/または方法に特有の文言で映像フレームコーデックアーキテクチャの実現例を記載したが、添付の請求項の主題は、必ずしも記載される具体的な特徴または方法に限定されるわけではない。むしろ、具体的な特徴および方法は、映像フレームコーデックアーキテクチャの例示的実現例として開示される。
図1
図2
図3
図3-1】
図3-2】
図4
図5
図6
図7
図8
図9
図10
【手続補正書】
【提出日】2024-01-25
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
電子デバイスであって、
複数の圧縮フレームをフレームレベルで個別に復元して複数の復元フレームを発生させるように構成されるフレーム復元器を備え、前記複数の圧縮フレームはそれぞれ複数の復号フレームから導出され、さらに
前記フレーム復元器に結合され、かつ複数のコアについて前記フレーム復元器へのアクセスを調停するように構成されるフレーム復元器コントローラと、
前記フレーム復元器コントローラに結合される前記複数のコアのうちの第1のコアとを備え、前記第1のコアは、前記フレーム復元器コントローラを介して、前記フレーム復元器によって前記フレームレベルで発生される前記複数の復元フレームのうちの1つの復元フレームを取得するように構成され、さらに
前記フレーム復元器コントローラに結合される前記複数のコアのうちの第2のコアを備え、前記第2のコアは、前記フレーム復元器コントローラを介して、前記フレーム復元器によって前記フレームレベルで発生される前記複数の復元フレームのうちの別の復元フレームを取得するように構成され、
前記第1のコアと前記第2のコアとは映像のコード変換を行なうように構成される、電子デバイス。
【請求項2】
前記第1のコアは、ビデオストリームを復号して前記複数の復号フレームを発生させるように構成され、前記複数の復号フレームのうちの少なくとも1つの復号フレームは前記復元フレームを用いて発生され、
前記第2のコアは、前記映像のコード変換のために他の復元フレームを用いて前記複数の復号フレームのうちの1つ以上の復号フレームを符号化するように構成される、請求項1に記載の電子デバイス。
【請求項3】
前記第1のコアは、前記ビデオストリームを復号して前記複数の復号フレームを発生させるように構成されるストリーム復号器を含む映像復号器を備え、
前記フレーム復元器は、前記映像復号器と論理的に一体化され、
前記第2のコアは、前記複数の復号フレームを符号化して少なくとも部分的に前記映像のコード変換を行なうように構成されるエンコーダを備える、請求項2に記載の電子デバイス。
【請求項4】
前記フレーム復元器コントローラは、
複数の要求を記憶するように構成される要求待ち行列を備え、各々の要求は少なくとも1つの復元フレームに対応し、前記フレーム復元器コントローラはさらに
前記複数のコアから前記複数の要求を受信しかつ前記複数の要求を前記要求待ち行列に挿入するように構成される要求マネージャを備える、請求項1~3のいずれかに記載の電子デバイス。
【請求項5】
前記フレーム復元器コントローラは、前記複数の要求に対応する複数の優先順位に従って前記複数の要求の処理を順序付けするように構成される優先順位マネージャを備える、請求項4に記載の電子デバイス。
【請求項6】
前記フレーム復元器コントローラは、タイムシェアリングプロトコルを確立して前記複数のコアの間で前記フレーム復元器を共有するように構成されるタイムシェアリングプロトコルハンドラを備える、請求項1~5のいずれかに記載の電子デバイス。
【請求項7】
前記タイムシェアリングプロトコルハンドラは、
前記複数のコアのうち少なくとも1つのコアに割当てられる複数のタイムスロットを含むように前記タイムシェアリングプロトコルを確立することと、
前記複数のコアのうちのあるコアからの割込信号の受信を許可するように前記タイムシェアリングプロトコルを確立することと、
のうち少なくとも1つを行なうように構成され、前記割込信号は、少なくとも1つの復元フレームに対する要求を示す、請求項6に記載の電子デバイス。
【請求項8】
1つ以上の未圧縮フレームを前記フレームレベルで個別に圧縮して1つ以上の圧縮フレームを発生させるように構成されるフレーム圧縮器と、
前記フレーム圧縮器に結合され、かつ前記複数のコアについて前記フレーム圧縮器へのアクセスを調停するように構成されるフレーム圧縮器コントローラとをさらに備える、請求項1~7のいずれかに記載の電子デバイス。
【請求項9】
前記フレーム圧縮器は、前記複数の復号フレームを前記フレームレベルで個別に圧縮して前記複数の圧縮フレームを発生させるように構成される、請求項8に記載の電子デバイス。
【請求項10】
前記フレーム復元器は、ロスレスフレームレベル圧縮アルゴリズムを実現して、前記複数の圧縮フレームからそれぞれ前記複数の復元フレームを発生させるように構成される、請求項1~9のいずれかに記載の電子デバイス。
【請求項11】
複数のコアの間でフレーム復元回路構成を共有するための方法であって、
フレームレベルで第1の復号フレームを圧縮して第1の圧縮フレームを発生させることと、
前記フレームレベルで第2の復号フレームを圧縮して第2の圧縮フレームを発生させることと、
第1のコアから第1の復元フレームに対する第1の要求を受付けることと、
前記第1の圧縮フレームを前記フレームレベルで個別に復元して前記第1の復元フレームを発生させることと、
前記第1の要求に応答して前記第1の復元フレームを前記第1のコアに与えることと、
第2のコアから第2の復元フレームに対する第2の要求を受付けることと、
前記第2の圧縮フレームを前記フレームレベルで個別に復元して前記第2の復元フレームを発生させることと、
前記第2の要求に応答して前記第2の復元フレームを前記第2のコアに与えることと、
前記第1のコアおよび前記第2のコアによって映像のコード変換を行なうこととを備える、方法。
【請求項12】
前記行なうことは、
前記第1のコアによって、ビデオストリームを復号して、前記第1の復号フレームと前記第2の復号フレームとを含む複数の復号フレームを発生させることと、
前記第2のコアによって、前記複数の復号フレームを符号化して別のビデオストリームを発生させることと、
を備える、請求項11に記載の方法。
【請求項13】
前記復号して発生させることは、
前記第1のコアによって、前記ビデオストリームを復号して、前記第1の復元フレームを用いて前記複数の復号フレームのうちの少なくとも1つの復号フレームを発生させることを備え、
前記符号化して発生させることは、前記第2のコアによって、前記複数の復号フレームのうちの1つ以上の復号フレームを符号化して、前記第2の復元フレームを用いて他のビデオストリームを発生させることを備える、請求項12に記載の方法。
【請求項14】
第3のコアから第3の復元フレームに対する第3の要求を受付けることと、
第3の圧縮フレームを前記フレームレベルで個別に復元して前記第3の復元フレームを発生させることと、
前記第3の要求に応答して前記第3の復元フレームを前記第3のコアに与えることとをさらに備え、
前記第1の要求は、前記第1のコアを示し、
前記第2の要求は、前記第2のコアを示し、
前記第3の要求は、前記第3のコアを示す、請求項11~13のいずれかに記載の方法。
【請求項15】
少なくとも前記第1のコアおよび前記第2のコアによる前記フレーム復元回路構成へのアクセスのためのタイムシェアリングプロトコルを確立することをさらに備える、請求項11~14のいずれかに記載の方法。
【請求項16】
前記第1のコアに対応するタイムスロットの間に前記第2のコアからの割込を受信することと、
前記割込の受信に応答して、前記第1のコアのための復元を行なうことから前記第2のコアのための復元を行なうことに切換えることとを備える、請求項15に記載の方法。
【請求項17】
前記第1の復元フレームを与えることと、前記第2の復元フレームを与えることとを、前記第1の要求と前記第2の要求との間の相対的な優先順位に少なくとも部分的に依存する順序で行なうことをさらに備える、請求項11~16のいずれかに記載の方法。
【請求項18】
複数のコアから複数の圧縮フレームのそれぞれに対する複数の要求を受付けることと、
複数の復元フレームを圧縮して前記複数の圧縮フレームをそれぞれ発生させることと、
前記複数の要求に応答して前記複数の圧縮フレームを前記複数のコアに与えることとをさらに備える、請求項11~17のいずれかに記載の方法。
【請求項19】
電子デバイスであって、
複数の圧縮フレームを復元して複数の復元フレームを発生させるように構成されるフレーム復元器と、
前記フレーム復元器に結合され、かつ複数のコアについて前記フレーム復元器へのアクセスを調停するように構成されるフレーム復元器コントローラとを備え、前記フレーム復元器コントローラは、タイムシェアリングプロトコルを確立して前記複数のコアの間で前記フレーム復元器を共有するように構成されるタイムシェアリングプロトコルハンドラを備え、前記タイムシェアリングプロトコルハンドラは、
前記複数のコアのうち少なくとも1つのコアに割当てられる複数のタイムスロットを含むように前記タイムシェアリングプロトコルを確立することと、
前記複数のコアのうちのあるコアからの割込信号の受信を許可するように前記タイムシェアリングプロトコルを確立することと、
のうち少なくとも1つを行なうように構成され、前記割込信号は、少なくとも1つの復元フレームに対する要求を示し、さらに
前記フレーム復元器コントローラに結合される前記複数のコアのうちの第1のコアを備え、前記第1のコアは、前記フレーム復元器コントローラを介して、前記フレーム復元器によって発生される前記複数の復元フレームのうち1つの復元フレームを取得するように構成され、さらに
前記フレーム復元器コントローラに結合される前記複数のコアのうちの第2のコアを備え、前記第2のコアは、前記フレーム復元器コントローラを介して、前記フレーム復元器によって発生される前記複数の復元フレームのうち別の復元フレームを取得するように構成され、
前記第1のコアと前記第2のコアとは映像のコード変換を行なうように構成される、電子デバイス。
【請求項20】
前記第1のコアは、前記復元フレームを用いてビデオストリームを復号して複数の復号フレームのうちの少なくとも1つの復号フレームを発生させるように構成され、
前記第2のコアは、前記映像のコード変換のために他の復元フレームを用いて前記複数の復号フレームのうちの1つ以上の復号フレームを符号化するように構成される、請求項19に記載の電子デバイス。
【外国語明細書】