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

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

▶ センチュリーリンク インテレクチュアル プロパティー エルエルシーの特許一覧

特表2023-544106分散台帳及びAIベーストランスコーディング技術を使用するコンテンツ配信
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-20
(54)【発明の名称】分散台帳及びAIベーストランスコーディング技術を使用するコンテンツ配信
(51)【国際特許分類】
   H04N 21/2343 20110101AFI20231013BHJP
【FI】
H04N21/2343
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023518053
(86)(22)【出願日】2021-09-22
(85)【翻訳文提出日】2023-05-12
(86)【国際出願番号】 US2021051482
(87)【国際公開番号】W WO2022066717
(87)【国際公開日】2022-03-31
(31)【優先権主張番号】63/082,677
(32)【優先日】2020-09-24
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/082,704
(32)【優先日】2020-09-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】518236786
【氏名又は名称】センチュリーリンク インテレクチュアル プロパティー エルエルシー
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ケイシー、スティーブン エム.
(72)【発明者】
【氏名】オプファーマン、ステファン
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA06
5C164GA03
5C164PA33
5C164SA11S
5C164SA24S
5C164SA32S
5C164SB02P
5C164SC05S
(57)【要約】
本開示の例は、分散台帳及びAIベーストランスコーディング技術を使用するコンテンツ配信に関する。例において、コンテンツが、コンテンツソースからコンテンツ配信ネットワーク(CDN)によって受信される。コンテンツは、CDNを介して配信されるものと比較してより低い品質又は異なるフォーマットであってよい。したがって、トランスコーディングモデルが、コンテンツをトランスコーディングするために識別及び使用される。変化するコンテンツタイプ(例えば、スポーツサブパート、広告サブパート等)に適応するために、異なるコンテンツ部分に複数のトランスコーディングモデルが使用されてよい。トランスコーディングは、エッジノードにおいて行われてよく、それにより、オリジナルコンテンツがCDN内で送信され、それによって、CDNリソースが節約される。加えて、トランスコーディングされたコンテンツはキャッシュされてよく、それにより、コンテンツは、全ての要求に応答してトランスコーディングされる必要はない。
【特許請求の範囲】
【請求項1】
システムであって:
少なくとも1つのプロセッサ;及び
前記少なくとも1つのプロセッサに動作可能に接続されているとともに、前記少なくとも1つのプロセッサによって実行されると、前記システムに、一組の動作を実行させる命令を記憶するメモリ
を備え、前記一組の動作は:
クライアントデバイスから、コンテンツ配信ネットワーク(CDN)のコンテンツの要求を受信すること、ここで、前記コンテンツの要求は、前記コンテンツの解像度とは異なる要求解像度を示す要求されたフォーマットの情報を含む;
一組のトランスコーディングモデルから、前記コンテンツをトランスコーディングするためにトランスコーディングモデルを決定すること;
前記決定されたトランスコーディングモデルを使用して、前記コンテンツの少なくとも一部をトランスコーディングし、前記要求解像度を有するトランスコーディングされたコンテンツを生成すること;及び
前記コンテンツの要求に応答して、前記トランスコーディングされたコンテンツを前記クライアントデバイスに提供すること
を有する、システム。
【請求項2】
前記トランスコーディングモデルを決定することは:
前記コンテンツからコンテンツフレームを選択すること;
前記コンテンツフレームをダウンスケーリングすること;
前記ダウンスケーリングされたコンテンツフレームを:
第1のトランスコーディングされたフレームを生成する第1のトランスコーディングモデル;及び
第2のトランスコーディングされたフレームを生成する第2のトランスコーディングモデル
を使用して処理すること;及び
前記トランスコーディングモデルを決定するために、前記コンテンツフレームに基づいて、前記第1のトランスコーディングされたフレーム及び前記第2のトランスコーディングされたフレームを評価すること、ここで、前記トランスコーディングモデルは、前記第1のトランスコーディングモデル又は前記第2のトランスコーディングモデルのいずれかである
を含む、請求項1に記載のシステム。
【請求項3】
前記トランスコーディングモデルを決定することは、前記コンテンツフレームのオブジェクトを認識することを更に含み;及び
前記第1のトランスコーディングされたフレーム及び前記第2のトランスコーディングされたフレームは、前記トランスコーディングモデルを決定するために前記コンテンツフレームの前記認識されたオブジェクトに少なくとも部分的に基づいて更に評価される、請求項2に記載のシステム。
【請求項4】
前記トランスコーディングモデルは、第1のトランスコーディングモデルであり;
前記コンテンツの前記少なくとも一部は、前記コンテンツの第1の部分であり;及び
前記一組の動作は:
一組のトランスコーディングモデルから、前記コンテンツをトランスコーディングするための第2のトランスコーディングモデルを決定すること;及び
前記決定されたトランスコーディングモデルを使用して、前記コンテンツの第2の部分をトランスコーディングし、前記要求解像度を有する前記トランスコーディングされたコンテンツを更に生成すること
を更に有する、請求項1~3のいずれか1項に記載のシステム。
【請求項5】
前記クライアントデバイスは、第1のクライアントデバイスであり;
前記コンテンツの要求は、コンテンツの第1の要求であり;及び
前記一組の動作は:
前記トランスコーディングされたコンテンツをデータストアに記憶すること;
第2のクライアントデバイスから、前記コンテンツの第2の要求を受信すること;及び
前記コンテンツの前記第2の要求に応答して、前記データストアから前記トランスコーディングされたコンテンツを提供すること
を更に有する、請求項1~4のいずれか1項に記載のシステム。
【請求項6】
前記一組の動作は:
前記CDNのノードから、前記トランスコーディングされたコンテンツの要求を受信すること;及び
前記CDNの前記ノードに、前記トランスコーディングされたコンテンツを提供すること
を更に有する、請求項1~5のいずれか1項に記載のシステム。
【請求項7】
前記要求されたフォーマットの情報は、オーディオの要求されたフォーマットの情報又はビデオの要求されたフォーマットの情報のうちの少なくとも1つを含む、請求項1~6のいずれか1項に記載のシステム。
【請求項8】
トランスコーディングレシピを使用してコンテンツをトランスコーディングする方法であって:
コンテンツ配信ネットワーク(CDN)のノードから、コンテンツ及び以下:
前記コンテンツの第1のサブパートのための第1のトランスコーディングモデル;及び
前記コンテンツの第2のサブパートのための第2のトランスコーディングモデル
を示すトランスコーディングレシピを受信する段階;
前記第1のトランスコーディングモデルを使用して、前記コンテンツの前記第1のサブパートをトランスコーディングし、第1のトランスコーディングされたサブパートを生成する段階;
前記第2のトランスコーディングモデルを使用して、前記コンテンツの前記第2のサブパートをトランスコーディングし、第2のトランスコーディングされたサブパートを生成する段階;及び
前記第1のトランスコーディングされたサブパート及び前記第2のトランスコーディングされたサブパートを含むトランスコーディングされたコンテンツをクライアントデバイスに提供する段階
を備える、方法。
【請求項9】
前記クライアントデバイスから前記コンテンツの要求を受信する段階;
を更に備え、前記第1のサブパート及び前記第2のサブパートは、前記要求を受信することに少なくとも部分的に基づいてトランスコーディングされる、請求項8に記載の方法。
【請求項10】
前記コンテンツの前記要求は、要求されたフォーマットの情報を含み;及び
前記トランスコーディングレシピは、前記要求されたフォーマットの情報に少なくとも部分的に基づいて決定される、請求項9に記載の方法。
【請求項11】
前記クライアントデバイスは、第1のクライアントデバイスであり;
前記方法は:
前記トランスコーディングされたコンテンツをデータストアに記憶する段階;
第2のクライアントデバイスから、前記コンテンツの要求を受信する段階;及び
前記コンテンツの前記要求に応答して、前記データストアから前記トランスコーディングされたコンテンツを提供する段階
を更に備える、請求項8~10のいずれか1項に記載の方法。
【請求項12】
前記コンテンツの前記第1のサブパートは、前記コンテンツのビデオトラックであり;及び
前記コンテンツの前記第2のサブパートは、前記コンテンツのオーディオトラックである、請求項8~11のいずれか1項に記載の方法。
【請求項13】
前記CDNのノードから、前記トランスコーディングされたコンテンツの要求を受信する段階;及び
前記CDNの前記ノードに、前記トランスコーディングされたコンテンツを提供する段階
を更に備える、請求項8~12のいずれか1項に記載の方法。
【請求項14】
コンテンツプロバイダからのコンテンツをトランスコーディングする方法であって:
クライアントデバイスから、コンテンツ配信ネットワーク(CDN)のコンテンツの要求を受信する段階、ここで、前記コンテンツの要求は、前記コンテンツの解像度とは異なる要求解像度を示す要求されたフォーマットの情報を含む;
一組のトランスコーディングモデルから、前記コンテンツをトランスコーディングするためにトランスコーディングモデルを決定する段階;
前記決定されたトランスコーディングモデルを使用して、前記コンテンツの少なくとも一部をトランスコーディングし、前記要求解像度を有するトランスコーディングされたコンテンツを生成する段階;及び
前記コンテンツの要求に応答して、前記トランスコーディングされたコンテンツを前記クライアントデバイスに提供する段階
を備える、方法。
【請求項15】
前記トランスコーディングモデルを決定する段階は:
前記コンテンツからコンテンツフレームを選択する段階;
前記コンテンツフレームをダウンスケーリングする段階;
前記ダウンスケーリングされたコンテンツフレームを:
第1のトランスコーディングされたフレームを生成する第1のトランスコーディングモデル;及び
第2のトランスコーディングされたフレームを生成する第2のトランスコーディングモデル
を使用して処理する段階;及び
前記トランスコーディングモデルを決定するために、前記コンテンツフレームに基づいて、前記第1のトランスコーディングされたフレーム及び前記第2のトランスコーディングされたフレームを評価する段階、ここで、前記トランスコーディングモデルは、前記第1のトランスコーディングモデル又は前記第2のトランスコーディングモデルのいずれかである
を有する、請求項14に記載の方法。
【請求項16】
前記トランスコーディングモデルを決定する段階は、前記コンテンツフレームのオブジェクトを認識する段階を更に有し;及び
前記第1のトランスコーディングされたフレーム及び前記第2のトランスコーディングされたフレームは、前記トランスコーディングモデルを決定するために前記コンテンツフレームの前記認識されたオブジェクトに少なくとも部分的に基づいて更に評価される、請求項15に記載の方法。
【請求項17】
前記トランスコーディングモデルは、第1のトランスコーディングモデルであり;
前記コンテンツの前記少なくとも一部は、前記コンテンツの第1の部分であり;及び
前記方法は:
一組のトランスコーディングモデルから、前記コンテンツをトランスコーディングするための第2のトランスコーディングモデルを決定する段階;及び
前記決定されたトランスコーディングモデルを使用して、前記コンテンツの第2の部分をトランスコーディングし、前記要求解像度を有する前記トランスコーディングされたコンテンツを更に生成する段階
を更に備える、請求項14~16のいずれか1項に記載の方法。
【請求項18】
前記クライアントデバイスは、第1のクライアントデバイスであり;
前記コンテンツの要求は、コンテンツの第1の要求であり;及び
前記方法は:
前記トランスコーディングされたコンテンツをデータストアに記憶する段階;
第2のクライアントデバイスから、前記コンテンツの第2の要求を受信する段階;及び
前記コンテンツの前記第2の要求に応答して、前記データストアから前記トランスコーディングされたコンテンツを提供する段階
を更に備える、請求項14~17のいずれか1項に記載の方法。
【請求項19】
前記CDNのノードから、前記トランスコーディングされたコンテンツの要求を受信する段階;及び
前記CDNの前記ノードに、前記トランスコーディングされたコンテンツを提供する段階
を更に備える、請求項14~18のいずれか1項に記載の方法。
【請求項20】
前記要求されたフォーマットの情報は、オーディオの要求されたフォーマットの情報又はビデオの要求されたフォーマットの情報のうちの少なくとも1つを含む、請求項14~19のいずれか1項に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
関連出願への相互参照
本出願は、「Content Delivery Using Distibuted Ledger and AI-Based Transcoding Technologies」という名称の2020年9月24日に出願された米国仮特許出願第63/082,677号、及び「Content Delivery Using Distibuted Ledger and AI-Based Transcoding Technologies」という名称の2020年9月24日に出願された米国仮特許出願第63/082,704号の利益を主張するPCT国際出願であり、これらの米国仮特許出願は、その全体が参照によって本明細書に組み込まれる。
【0002】
コンテンツ配信ネットワーク(CDN)を介した配信のためにコンテンツを追加することに関連付けられた複雑性は、増加したオーバヘッド、不要な遅延をもたらすとともに、ヒューマンエラーの可能性を導入し得る。加えて、公開者又は他のコンテンツソースから受信されるコンテンツは、本来であれば消費者による消費のためにCDNを介して利用可能であり得る品質のレベルにはない場合がある。例えば、コンテンツは、より低い解像度にあるか、又はより少ないオーディオチャネルを有し得る。
【0003】
これら及び他の一般的な考慮事項に関して、本明細書において開示される態様がなされている。また、比較的特定の問題が論述されている場合があるが、例は、背景技術又は本開示の他の箇所において識別される特定の問題の解決に限定されるものではないことが理解されるべきである。
【発明の概要】
【0004】
本開示の例は、分散台帳及びAIベーストランスコーディング技術を使用するコンテンツ配信に関する。例において、コンテンツソースから受信されるコンテンツは、コンテンツ配信ネットワーク(CDN)を介して配信され得るものと比較してより低い品質又は異なるフォーマットである。したがって、一組のAIベーストランスコーディングモデルが、コンテンツをトランスコーディングする際に用いるトランスコーディングモデルを識別するために評価される。幾つかの例では、例えば、コンテンツ内の変化するコンテンツタイプ(例えば、スポーツサブパート、広告サブパート等)に適応するために、コンテンツの異なる部分に複数のトランスコーディングモデルが使用される。トランスコーディングは、CDNのエッジノードにおいて行われてよく、それにより、オリジナルのより低い品質のコンテンツがCDN内で送信され、それによって、CDNリソースが節約される。加えて、トランスコーディングされたコンテンツはキャッシュされてよく、それにより、AIベーストランスコーディング技法は、コンテンツの全ての要求に応答して適用される必要はない。
【0005】
この発明の概要は、詳細な説明において以下で更に説明される概念からの選択を、簡略化された形式において導入するために提供される。この発明の概要は、特許請求された主題の重要な特徴又は必須の特徴を識別することも、特許請求された主題の範囲を限定するために使用されることも意図されていない。例の追加的な態様、特徴、及び/又は利点は、部分的には以下の説明において記載され、部分的には説明から明らかであり、又は、本開示の実践によって学習され得る。
【図面の簡単な説明】
【0006】
以下の図を参照して非限定的及び非網羅的な例が説明される。
【0007】
図1A】分散台帳及びAIベーストランスコーディング技術を使用するコンテンツ配信の態様が実行される例示のシステムの概要を示す図である。
【0008】
図1B】例示の分散台帳エンジンの概要を示す図である。
【0009】
図1C】AIベーストランスコーディングを実行する例示のコンテンツプロセッサの概要を示す図である。
【0010】
図2A】本明細書において説明される分散台帳技法に従ってCDNにコンテンツを追加する例示の方法の概要を示す図である。
【0011】
図2B】本明細書において説明される分散台帳技法に従ってコンテンツに関連付けられたトリガを処理する例示の方法の概要を示す図である。
【0012】
図2C】本明細書において説明される分散台帳技法に従ってコンテンツをバリデートする例示の方法の概要を示す図である。
【0013】
図3A】本明細書において説明されるAIベーストランスコーディング技術に係る、コンテンツをトランスコーディングする例示の方法の概要を示す図である。
【0014】
図3B】本明細書において説明されるAIベーストランスコーディング技術に係る、トランスコーディングモデルを選択する例示の方法の概要を示す図である。
【0015】
図4】本実施形態のうちの1つ又は複数が実装され得る適した動作環境の一例を示す図である。
【発明を実施するための形態】
【0016】
以下の詳細な説明では、本明細書の一部を形成し、特定の実施形態又は例が例示として示されている添付図面に対して参照がなされる。本開示から逸脱することなく、これらの態様は、組み合わされてよく、他の態様が利用されてよく、構造的な変更がなされてよい。実施形態は、方法、システム又はデバイスとして実践されてよい。したがって、実施形態は、ハードウェアの実装、完全にソフトウェアの実装、又はソフトウェア及びハードウェアの態様を組み合わせる実装の形態を取ってよい。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、本開示の範囲は添付の特許請求の範囲及びそれらの均等物によって定義される。
【0017】
コンテンツ配信ネットワーク(CDN)は、クライアントデバイスからの要求を処理するのに使用されるノードのセットを含む。例えば、CDNは、コンテンツ公開者、ビデオオンデマンド(VOD)サービス、又はストリーミングプラットフォーム等のコンテンツソースからのコンテンツを配信してよい。したがって、コンテンツプロバイダからのコンテンツは、クライアントデバイスを使用する消費者によって、CDNを介してアクセスされる。しかしながら、CDNにコンテンツを追加することは、条項及び条件に対して(例えば、コンテンツソース及びCDNの間で)同意すること、(例えば、コンテンツソースと、ロイヤリティ支払いのために、等で)コントラクト及び請求手配を用意すること、受信されたコンテンツ及び提供されたサービスをバリデートすること、及び最終的に支払いを処理すること等の関連付けられたオーバヘッドを有し得る。
【0018】
加えて、コンテンツソースから受信されるコンテンツは、CDNを介して利用可能である品質レベル未満の品質レベルであり得る。例えば、コンテンツソースは、「HD」コンテンツ(例えば、1280×720又は1920×1080の解像度を有する)を提供し得る一方、CDNは、「4K」(例えば、3840×2160、4096×2160等)又は「8K」(例えば、7680×4320、8192×5120等)等のより高い解像度フォーマットにおいてコンテンツを配信し得る。同様の問題は、オーディオに関して(例えば、スタンドアロンオーディオトラックとして、ビデオトラック/ストリームとともに等で)存在し得、ここで、コンテンツソースは、CDNによって配信され得るものと比較して、より低い数のチャネル(例えば2.0対5.1又は7.1)、より低いビット深度(例えば、16ビット対24ビット)、より低いビットレート、及び/又は異なるコーデック(例えば、別個のトラックを有するコーデック対オブジェクトベース空間オーディオコーデック)を有するオーディオを提供する。
【0019】
したがって、本開示の態様は、分散台帳及び人工知能ベース(AIベース)トランスコーディング技術を使用するコンテンツ配信に関する。例において、コンテンツソースから受信されたコンテンツのためにハッシュが生成される。ハッシュは、コンテンツレコードとして分散台帳(例えば、ブロックチェーンのブロック)に組み込まれ、それによって、ハッシュが不変であり、かつ後続の処理のために利用可能であることが確実になる。例えば、記憶されたハッシュは、コンテンツバリデーションを実行するのに使用されてよく、それによって、コンテンツのソース、コンテンツのタイトル、及び/又はコンテンツに関連付けられた俳優/女優、監督、又は他のアーティストが検証される。そのようなメタデータは、コンテンツハッシュとともに記憶されてもよいし、又は、メタデータは、データストアに記憶され、コンテンツハッシュに関連付けられてもよい。
【0020】
別の例として、スマートコントラクトが、生成され、コンテンツハッシュに関連付けられてよい。例えば、スマートコントラクトは、コンテンツに関連付けられたCDNサービス(例えば、ストレージサービス、配信サービス、コンテンツトランスコーディングサービス等)のためのもの、コンテンツソースからのライセンシング(例えば、コンテンツ品質に基づくコンテンツ再生のための支払い)のためのもの、及び/又はロイヤリティ(例えば、音楽ロイヤリティ、俳優/女優ロイヤリティ、監督ロイヤリティ等)のためのものであってよい。トリガが、スマートコントラクトに関連付けられてよく、それにより、スマートコントラクトは、トリガの結果として実行される。例示のトリガとしては、CDNを介したコンテンツの配信、及びクライアントデバイスにおけるコンテンツ再生の開始が挙げられるが、これらに限定されない。したがって、分散台帳は、スマートコントラクトに対する当事者が自身の義務を維持し、特定の条件(例えば、配信のためのCDNサービス支払い、コンテンツ再生のためのロイヤリティ支払い等)に際して支払いを受けることを確実にするのに使用されてよい。
【0021】
AIベーストランスコーディング技法は、CDNを介して配信され得るものと比較してより低い品質又は異なるフォーマットであるコンテンツソースから受信されたコンテンツをトランスコーディングするのに使用される。例えば、CDNは、4K又は8Kコンテンツを配信してよく、それにより、コンテンツソースから受信されたHD又は標準精細度(SD)コンテンツが本明細書において説明されるAIベーストランスコーディング技法に従ってアップスケーリングされる。結果として、コンテンツソースは、より高い品質のビデオデータを処理するために高価なビデオ機器又はより強力なコンピュータハードウェアを購入する必要はなく、代わりに、CDNによって提供されるそのような機能を利用し得る。加えて、コンテンツは、CDN内で(例えば、オリジンノードを介してエッジノードに)(例えば、コンテンツソースから受信されたような)より低い解像度のフォーマットにおいて配信されてよく、コンテンツは、クライアントデバイスへの配信に先立って、又はこれと同時発生的に、エッジノードにおいてアップスケーリングされてよい。そのような技法は、CDNを介したコンテンツの配信に関連付けられた帯域幅及び記憶要件を節約し得る一方、依然として高品質のエンドユーザエクスペリエンスを提供する。
【0022】
本明細書において使用される場合、コンテンツは、例の中でもとりわけ、ストリームとして又はファイルとしてのビデオ及び/又はオーディオを含むが、これらに限定されない。例えば、ビデオファイル又はストリームは、1つ又は複数のオーディオトラックを含んでよい。別の例として、ファイル又はストリームは、ビデオのみ又はオーディオのみであってよい。ストリームは、リアルタイム又はライブストリームである必要はなく、事前記録されたコンテンツのストリームであってよい。例えば、ストリーミングコンテンツは、CDNによって、サブパートにおいてコンテンツソースから(例えば、Dynamic Adaptive Streaming over HTTP(DASH)又はReal-time Transport Protocol(RTP)等を使用して)受信されてよい。コンテンツソースは、例の中でもとりわけ、公開者(例えば、映画スタジオ、テレビジョンスタジオ等)、VODサービス、又はストリーミングプラットフォームであってよい。それゆえ、例示のコンテンツ及びコンテンツソースが本明細書において説明される一方、本技法は、多様な他のコンテンツ及びコンテンツソースのうちの任意のものに適用されてよいことが理解されるであろう。
【0023】
コンテンツは、コンテンツソースからウェブサイトを介して受信されてよい。例えば、ウェブサイトは、ユーザがコンテンツを選択し、タイトル及び俳優/女優、監督、又は他の関連付けられたアーティストのリスト等の関連付けられたメタデータを指定することを可能にしてよい。他の技法が、アプリケーションプログラミングインターフェース(API)を使用して等で、コンテンツソースからコンテンツを受信するのに使用されてよい。幾つかの例では、メタデータが、コンテンツソースによって管理されるメタデータレポジトリ又はサードパーティメタデータレポジトリ等の、別のデータソースから取得されてよい。したがって、コンテンツは、CDNに転送されてよく、ここで、コンテンツに関連付けられたコンテンツレコードが、分散台帳において生成される。コンテンツレコードは、コンテンツハッシュを含み、これは、多様なハッシュ化アルゴリズムのうちの任意のものを使用して生成されてよい。例示のハッシュ化アルゴリズムとしては、Secure Hash Algorithm 2(SHA-2)ハッシュ(例えば、SHA-256、SHA-512等)又はRIPE Message Digest(RIPEMD)ハッシュ(例えば、RIPEMD-160、RIPEMD-256等)が挙げられるが、これらに限定されない。コンテンツハッシュは、単独で又はコンテンツとの組み合わせにおいてのいずれかでメタデータに基づいて生成されるのではなく、コンテンツ自体に基づいて生成されてよい。
【0024】
コンテンツハッシュは、ブロックチェーンのブロック等の分散台帳に記憶されてよい。幾つかの例では、コンテンツレコードは、コンテンツに関連付けられたメタデータの少なくとも一部を更に含む。他の例では、メタデータは、メタデータレポジトリ又は他のデータストアに記憶され、コンテンツハッシュに関連付けられてよい。メタデータは、同様にハッシュ化されてよく、メタデータハッシュは、コンテンツレコードの一部として記憶されてよく、それにより、メタデータの後続のバリデーションが実行されてよい。コンテンツレコードは、コンテンツがCDNによって受信された時点に関連付けられたタイムスタンプ、及び関連付けられたコンテンツソース情報(例えば、電子メールアドレス、請求先住所、会社名等)を更に含んでよい。
【0025】
コンテンツに関連付けられた1つ又は複数のスマートコントラクトが生成されてよい。例えば、CDN及びコンテンツソースは、スマートコントラクトに対する当事者であってよく、ここで、CDNは、コンテンツを配信するための補償を受信し、コンテンツソースは、コンテンツの再生のための補償を受信する。他の例では、スマートコントラクトは、CDN又はコンテンツソース及び、ミュージシャン、俳優/女優、及び監督等の1つ又は複数の他の当事者の間で締結されてよく、それによって、そのような当事者がロイヤリティ支払いを受けることが可能になる。幾つかの事例では、スマートコントラクトは、CDNがコントラクトに対する唯一の当事者である場合に使用され、それによって、CDNがトリガの発生に基づいて分散台帳における解析を維持することが可能になる。
【0026】
スマートコントラクトは、コンテンツハッシュが記憶される分散台帳の一部であってもよいし、又は他の例では、異なる分散台帳であってもよい。例えば、異なる分散台帳は、異なる当事者のために使用されてよい(例えば、コンテンツソースごとに異なる分散台帳、特定のアーティストに対するロイヤリティ支払いを追跡するために同じ分散台帳を使用する、等)。別の例として、コンテンツソースは、それ自体の分散台帳を維持してよく、それにより、台帳ゲートウェイは、例の中でもとりわけ、コンテンツソース台帳及びCDN台帳の間でトランザクションを同期するか、又は、トリガについてのインジケーションを提供するのに使用されてよい。
【0027】
スマートコントラクトに対する当事者は、分散台帳の実際のユーザである必要はなく、代わりにプレースホルダとして機能してよいことが理解されるであろう。例えば、ロイヤリティスマートコントラクトは、コンテンツに関連付けられたロイヤリティ支払いの会計を生成するのに使用可能であってよく、これは、コンテンツソース又は他の当事者に提供されてよく、それによって、最終的にロイヤリティの支払いがもたらされる。それゆえ、本明細書において説明されるスマートコントラクト及び分散台帳技法は、実際の値の交換をもたらさなくてよく、代わりに、CDNによって配信されるコンテンツに関する会計技法を容易にしてよい。
【0028】
トリガは、コンテンツ配信(例えば、クライアントデバイスへの送信、オリジン及びエッジノードの間の送信、ストリーミング又はダウンロードアクティビティ等)又はコンテンツ再生(例えば、コンテンツの再生/一時停止、早送り/巻き戻し、再生の早期終了等)に関するイベント等の多様なイベントのうちの任意のものであってよい。トリガが識別されると、トリガに関連付けられたコンテンツハッシュは、関連付けられたスマートコントラクトを識別及び実行するのに使用される。例示の分散台帳及びスマートコントラクト技法が本明細書において説明されているが、多様な他の技法のうちの任意のものが、CDNによって配信されるコンテンツに関連付けられたスマートコントラクトを生成及び実行するのに使用されてよいことが理解されるであろう。例えば、コンテンツハッシュは、使用される必要はなく、スマートコントラクトに関連付けられた識別子が、代わりにコンテンツ自体に関連付けられてよい。
【0029】
分散台帳は、その中のスマートコントラクトの当事者に起因する支払いの会計を生成するために処理されてよい。そのような処理は、周期的に(例えば、月に一度、半年に一度等)実行されてよく、会計のインジケーションは、コンテンツソース又は他の当事者に提供されてよい。例えば、コンテンツソースは、インジケーションを受信し、その後、これに応じてロイヤリティ支払いを処理してよい。別の例として、コンテンツソースは、インジケーションを受信し、コンテンツを配信する際に提供されたCDNサービスのためのCDNに対する支払いを処理してよい。
【0030】
分散台帳は、コンテンツに関するバリデーションを実行するのに使用されてもよい。例えば、消費者は、コンテンツのソースをバリデートすることを望む場合もあるし、又は、他の例では、コンテンツに関連付けられた特定のメタデータ(例えば、コンテンツにおいて演じた俳優/女優が実際にその創作に関与したこと)をバリデートすること望む場合もある。したがって、コンテンツは、(例えば、消費者のクライアントデバイスにおいて、CDNのノードにおいて等で)ハッシュ化されてよく、コンテンツに関連付けられたコンテンツハッシュは、分散台帳において識別されてよい。コンテンツハッシュは、コンテンツに関連付けられたメタデータを識別するのに更に使用されてよく、それによって、ユーザがコンテンツに関連付けられたコンテンツソース及び関連付けられたメタデータを閲覧することが可能になる。
【0031】
上記で記載されたように、コンテンツソースからのコンテンツは、低品質である場合もあるし、又は、CDNによって配信され得るものとは異なるフォーマットである場合もある。したがって、AIベーストランスコーディング技法は、コンテンツを改善又は変更するのに使用されてよい。例において、一組のトランスコーディングモデルが、アップスケーリング又は他のビデオ高画質化技法を実行するのに使用される。当該一組のトランスコーディングモデルは、異なるコンテンツタイプに従ってトレーニング済みであってよい。例えば、異なるトランスコーディングモデルは、アクションコンテンツ、スポーツコンテンツ、アニメコンテンツ、リアリティコンテンツ、広告コンテンツ、及び白黒コンテンツのために存在してよい。トランスコーディングモデルは、限定されないが、コンテンツメタデータ(例えば、特定のコンテンツタイプを示し得るジャンル、俳優/女優等)、ビデオ解析(例えば、ビットレート、フレーム複雑度、明度/暗度等)、オリジナルコンテンツ解像度、ターゲットコンテンツ解像度、動きベクトル、生産年度、フォーマット又はコーデックタイプ、及び/又は消費者又は他のユーザから受信されたフィードバックを含む多様な基準に従って、当該一組のモデルから選択される。
【0032】
例において、いずれのトランスコーディングモデルを適用すべきかを決定するために複数のトランスコーディングモデルが比較される。例えば、オブジェクト検出(例えば、無生物オブジェクト、アニメキャラクタ、俳優/女優等)が実行されてよく、それにより、複数のトランスコーディングモデルからのモデル処理結果は、いかに良好に検出されたオブジェクトがトランスコーディングされたかに少なくとも部分的に基づいて比較され得る。比較は、自動(例えば、トランスコーディングアーティファクトを検出すること、参照フレームを、トランスコーディングされたフレームと比較すること等)、及び/又は手動(例えば、ユーザ選択のために複数のトランスコーディングされたフレームを提示すること、再生後又は再生中の符号化品質に関するユーザフィードバックを求めること等)であってよい。例えば、ソースフレームは、ダウンスケーリングされてよく、それにより、ダウンスケーリングされたソースフレームが、複数のトランスコーディングモデルを使用してアップスケーリングされて、複数のトランスコーディングされたフレームが生成される。トランスコーディングされたフレームは、オリジナルソースフレームと比較されて、エラー及び品質損失が識別されてよく、それにより、最高品質(例えば、最低エラー、最低品質損失等)を呈するトランスコーディングモデルが選択されて、コンテンツがトランスコーディングされてよい。
【0033】
例において、複数のトランスコーディングモデルは、単一のコンテンツをトランスコーディングするのに使用され、ここで、1つのモデルは、コンテンツの1つのサブパートのために使用されてよく、一方、別のモデルは、異なるサブパートのために使用されてよい。例えば、スポーツブロードキャストは、スポーツトランスコーディングモデル、広告トランスコーディングモデル、及び「語り手の顔(talking heads)」又はコメンタリートランスコーディングモデルを使用して処理されてよい。上記で記載されたように、異なるトランスコーディングモデルが異なるコンテンツタイプのためにより良好に適していてよい。トランスコーディングモデル性能は、トランスコーディング中に周期的に評価されてよく、それにより、トランスコーディングモデルは、所与のサブパートについてのモデル性能に依存して変化し得る。幾つかの例では、コンテンツ解像度は、(例えば、ブロードキャストのスポーツセグメント及びその中の広告の間で)変化してよく、これは、モデル性能は再評価されるべきであることを示唆し得る。他の例では、オブジェクト検出は、ビデオフレームのコンテンツを決定するか又はオブジェクトが消失したときを識別するのに使用されてよく、その両方は、トランスコーディングモデル性能が再評価されるべきであることを示し得る。幾つかの事例では、コンテンツをトランスコーディングするために適用されるトランスコーディングモデルは、フレーム単位で、又は他の任意のレベルの粒度に従って(例えば、キーフレーム又はイントラフレーム毎、所定の数のフレームの後等)再評価されてよい。加えて、イントラフレーム、予測フレーム、及び/又は双方向フレームに異なるトランスコーディングモデルが適用されてよい。それゆえ、コンテンツをトランスコーディングするために1つのトランスコーディングモデルから別のトランスコーディングモデルにいつシフトすべきかを決定するのに多様な技法が使用されてよいことが理解されるであろう。同様に、そのような技法は、トランスコーディングと同時発生的に実行される必要はなく、コンテンツのいずれのサブパートをトランスコーディングするのにいずれのトランスコーディングモデルが使用されるべきかを指定するトランスコーディング「レシピ」を生成する前処理動作として実行されてよい。
【0034】
同様の技法が、オーディオに、例えば、オーディオのみのコンテンツに、又はビデオコンテンツの一部として適用されてよいことが理解されるであろう。上記で説明されたビデオ技法と同様に、いずれのオーディオトランスコーディングモデルが適用されるべきかを決定するために複数のオーディオトランスコーディングモデルが評価されてよい。評価は、オーディオアーティファクト(例えば、人間の可聴範囲内のオーディオアーティファクト)、トランスコーディングオーディオの結果として得られるビットレート、エラー及び/又は品質損失を識別することを含んでよい。例において、いずれのオーディオトランスコーディングモデルを適用すべきかを評価することは、上記で論述されたビデオトランスコーディングモデル評価と同時発生的に行われる。それゆえ、ビデオトランスコーディングモデルの再評価をもたらすイベントは、オーディオトランスコーディングモデルの再評価を同様にもたらしてよい。同様に、オーディオトランスコーディングモデルの再評価をもたらすイベントは、ビデオトランスコーディングモデルの再評価をもたらしてよい。他の事例では、オーディオ及びビデオトランスコーディングモデルは、互いに別個に再評価される。ビデオトランスコーディングモデルは、オーディオトランスコーディングモデルに関連付けられてよく、それにより、両方のトランスコーディングモデルが同じタイプのコンテンツを処理するのに使用される。
【0035】
図1Aは、分散台帳及びAIベーストランスコーディング技術を使用するコンテンツ配信の態様が実行される例示のシステム100の概要を示している。示されているように、システム100は、コンテンツソース102、ゲートウェイノード104、ゲートウェイノード106、局所ノード108、クライアントデバイス110、及びネットワーク112を備える。コンテンツソース102、ゲートウェイノード104、ゲートウェイノード106、局所ノード108、及びクライアントデバイス110は、ネットワーク112を通して通信することが示されている。ネットワーク112は、例の中でもとりわけ、ローカルエリアネットワーク、ワイドエリアネットワーク、1つ又は複数のセルラネットワーク、及び/又はインターネットを含んでよい。ノード104、106、及び108は、同様の要素(例えば、データストア118、124、及び130;分散台帳エンジン120、126、及び132;及びコンテンツプロセッサ122、128、及び136)を含むものとして示されている。結果として、そのような同様の態様は、ノードごとに以下で詳細に再度説明される必要はない場合がある。
【0036】
コンテンツソース102は、(例えば、クライアントデバイス110のクライアントアプリケーション138を使用する)消費者への配信のためにCDN140(例えば、破線ボックスによって示されているように、ゲートウェイノード104及び106、及び局所ノード108を含む)にコンテンツを提供する。例えば、コンテンツソース102に関連付けられたコンピューティングデバイスは、本明細書に説明される態様に従ってコンテンツを提供するためにCDN140(例えば、ノード104、106、又は108によって提供され得るような)によってホストされるウェブサイトにアクセスするのに使用されてよい。多様な他の技法のうちの任意のものが、コンテンツソース102からCDN140にコンテンツを送信するのに使用されてよい。他の例では、システム100に関して説明された例示のCDNの特定の要素は、サードパーティによって提供されてよく、及び/又は、特定の要素に関して本明細書において説明される機能は、多様な他の技法のうちの任意のものに従って配信されてよいことが理解されるであろう。
【0037】
コンテンツソース102は、データストア114及び分散台帳エンジン116を含むものとして示されている。例において、データストア114は、コンテンツソース102がCDN140に提供するコンテンツを記憶する。例えば、データストア114は、例の中でもとりわけ、コンテンツファイル及び/又はバッファコンテンツストリームを記憶する。分散台帳エンジン116は、コンテンツソース102に関連付けられた分散台帳を管理してよい。例えば、コンテンツソース102は、それが提供するコンテンツに関連付けられたレコードを含むそれ自体の分散台帳を維持してよい。他の例では、コンテンツソースは、分散台帳エンジンを含まなくてよい。
【0038】
一例としてゲートウェイノード104を使用して、コンテンツが、コンテンツソース102から受信され、データストア118に記憶される。分散台帳エンジン120は、分散台帳においてコンテンツレコードを生成し、ここで、コンテンツレコードは、コンテンツハッシュ、関連付けられたメタデータ、及び/又は多様な他の情報のうちの任意のものを含んでよい。例において、コンテンツメタデータは、データストア118に記憶され、コンテンツハッシュに関連付けられる。幾つかの例では、分散台帳エンジン120は、コンテンツに関連付けられた1つ又は複数のスマートコントラクトを生成し、これは、コンテンツレコードと同じ又は異なる分散台帳に記憶されてよい。例において、生成されたスマートコントラクトは、コンテンツハッシュ及び/又は1つ又は複数のトリガに関連付けられる。幾つかの例では、分散台帳エンジン120は、CDN分散台帳、及び分散台帳エンジン116によって管理されるコンテンツソース分散台帳の間のゲートウェイとして機能してよい。例えば、トランザクションは、コンテンツソース台帳及びCDN台帳の中で同期されてよく、又は別の例として、例の中でもとりわけ、CDN140内で識別されたトリガについてインジケーションが提供されてよい。
【0039】
ゲートウェイノード104は、局所ノード108にコンテンツを送信してよい。ゲートウェイノード104及び106は、局所ノード108からコンテンツを配信してよく、それにより、コンテンツソース102から受信され、ゲートウェイノード104を介して局所ノード108に提供されたコンテンツは、その後、ゲートウェイノード106によって配信されてよい。それゆえ、CDN140は、階層的又はハブアンドスポークアーキテクチャを有してよく、ここで、特定のノード(例えば、ノード104及び106)が他のノード(例えば、局所ノード108)によって管理される。例示のCDN構造が本明細書において説明されているが、ノードは、他の例では多様な他の構造のうちの任意のものにおいて構成されてよいことが理解されるであろう。
【0040】
消費者は、CDN140のコンテンツ(例えば、コンテンツソース102によってCDN140に提供され得るような)にアクセスするためにクライアントデバイス110のクライアントアプリケーション138を使用する。クライアントアプリケーション138は、例の中でもとりわけ、ウェブブラウザ、又はコンテンツソース102によって開発又は別様に提供されるアプリケーションであってよい。したがって、クライアントデバイス110は、コンテンツにアクセスするためにノード104、106、及び108のうちの1つ又は複数と通信する。幾つかの例では、クライアントデバイス110は、(例えば、ウェブサイトを介して提供され得るようなコンテンツのリストにアクセスするために)コンテンツソース102と最初に通信し、その後、クライアントデバイス110は、CDNノード104、106、及び/又は108によって提供されるコンテンツの選択された一部にアクセスするためにCDN140に向けられてよい。コンテンツソース102からのコンテンツがCDN140内で転送され、及び/又はクライアントデバイス110に提供されると、1つ又は複数のトリガが発生してよい。例えば、消費者は、CDN140にコンテンツを要求することによってクライアントアプリケーション138を介して再生トリガを発生させてよい。したがって、分散台帳エンジンは、トリガを識別し、関連付けられたコンテンツのハッシュに少なくとも部分的に基づいて関連付けられたスマートコントラクトを実行する。例えば、分散台帳エンジン120、126、又は132は、そのような態様を実行してよい。スマートコントラクトを実行することは、トリガに関連付けられた分散台帳に対する更新をもたらし得る。別の例として、トリガは、コンテンツが局所ノード108のデータストア130からゲートウェイノード106に送信されるときに発生してよく、それにより、スマートコントラクトは、コンテンツを送信及び記憶することに関連付けられた帯域幅及び/又は記憶使用に関連付けられて(例えば、分散台帳エンジン132又は126によって)実行される。
【0041】
例において、分散台帳は、その中のスマートコントラクトの当事者(例えば、コンテンツソース102、CDN140、アーティスト等)に起因する支払いを決定するために処理される。例えば、局所ノード108の分散台帳エンジン132は、周期的に(例えば、月に一度、半年に一度等)そのような処理を実行してよく、コンテンツソース102及び/又は1つ又は複数の他の当事者にインジケーションが提供されてよい。例えば、コンテンツソース102は、インジケーションを受信し、その後、これに応じてロイヤリティ支払いを処理してよい。別の例として、コンテンツソース102は、インジケーションを受信し、コンテンツを配信することに関連付けられたCDNサービスのためのCDN140に対する支払いを処理してよい。幾つかの事例では、分散台帳エンジン132は、そのような集約された支払い情報にアクセスする、スマートコントラクトを管理する、及び/又は支払いを送金するためのウェブサイト、API、又は他の方法を提供する。ゲートウェイノード104及び106は、他の例において同様の態様を実行してよいことが理解されるであろう。別の例として、ゲートウェイノード104及び106は、局所ノード108によって管理されてよく、それにより、局所ノード108は、ゲートウェイノード104及び106を代表して上記で説明された処理技法を実行する。
【0042】
例において、コンテンツバリデーションが要求される。例えば、バリデーション要求がクライアントデバイス110から受信されるか、又は別の例として、コンテンツが分散台帳の会計を生成する結果としてバリデートされる。別の例として、消費者は、コンテンツのソースをバリデートすることを望む場合もあるし、又は、他の例では、コンテンツに関連付けられた特定のメタデータ(例えば、コンテンツにおいて演じた俳優/女優が実際にその創作に関与したこと)をバリデートすることを望む場合もある。したがって、コンテンツのハッシュが(例えば、クライアントデバイス110において、ノード104、106、又は108において、等で)生成され、分散台帳のコンテンツレコードと比較される。そのような態様は、分散台帳エンジン120、126、及び/又は132によって実行されてよい。生成されたコンテンツハッシュがコンテンツレコードの記憶されたコンテンツハッシュと一致する場合、コンテンツのバリデートに成功する。コンテンツハッシュは、コンテンツに関連付けられたメタデータを識別するのに更に使用されてよく、それによって、ユーザがコンテンツに関連付けられたコンテンツソース及び関連付けられたメタデータを閲覧することが可能になる。
【0043】
コンテンツソース102からのコンテンツは、低品質である場合もあるし、又は、CDN140によって配信され得るものとは異なるフォーマットである場合もある。したがって、コンテンツプロセッサ122、128、及び/又は136は、コンテンツを改善又は変更するのに使用されてよい。一例として、(コンテンツソース102からコンテンツを受信した)ゲートウェイノード104は、コンテンツプロセッサ122を使用して、本明細書において説明されるAIベーストランスコーディング技法を実行し、コンテンツのトランスコーディングされたバージョンを生成する。トランスコーディングされたバージョンは、CDN140の他のノードに(例えば、局所ノード108を介してゲートウェイノード106に)配信されてよい。コンテンツは、コンテンツソース102からコンテンツを受信することに応答してトランスコーディングされてよい。
【0044】
他の例では、オリジナルコンテンツは、CDN140のノードに配信され、それにより、ノード104、106、又は108は、それぞれ、コンテンツプロセッサ122、128、又は136を使用して、(例えば、クライアントデバイス110からの)コンテンツの要求に応答してAIベーストランスコーディング技法を実行する。例えば、要求は、例の中でもとりわけ、要求された解像度、オーディオチャネルの数、ビットレート、及び/又はカラー深度を示す要求されたフォーマットの情報を含んでよい。それゆえ、要求されたフォーマットの情報は、ビデオの要求されたフォーマットの情報及び/又はオーディオの要求されたフォーマットの情報に関してよい。加えて、CDN140内でオリジナルコンテンツを配信すること及びコンテンツの要求を処理するノードにおいてトランスコーディングを実行することは、CDN140内でコンテンツを転送することに関連付けられた帯域幅を削減し得る。
【0045】
幾つかの例では、コンテンツのトランスコーディングされたバージョンのうちの少なくとも一部は、所定の時間量にわたってデータストア内にキャッシュされ、それにより、ノードは、コンテンツの要求毎に応答してトランスコーディングされたバージョンを生成する必要はなく、代わりに、データストアからキャッシュされたトランスコーディングされたバージョンを提供してよい。他の例では、トランスコーディングされたバージョンは、1つのノードから別のノードに(例えば、局所ノード108のデータストア130からゲートウェイノード104のデータストア118に)送信されてよく、それにより、受信側ノードは、コンテンツをトランスコーディングする必要はない。システム100に関して上記で説明された技法は、例の中でもとりわけ、コンテンツソース102が事前記録された及び/又はリアルタイムのコンテンツを提供する事例において使用されてよいことが理解されるであろう。
【0046】
局所ノード108は、モデルマネージャ134を更に含むものとして示されている。例において、コンテンツプロセッサ122、128、及び136によって使用されるトランスコーディングモデルは、モデルマネージャ134によって管理される。例えば、コンテンツプロセッサ122は、暗黙的及び/又は明示的なユーザフィードバックに基づいてコンテンツをトランスコーディングするのに使用されるトランスコーディングモデルを再トレーニング又は別様に更新してよい。したがって、モデルは、モデルマネージャ134に提供されるか、又はこれによって取得されてよく、これは、更新されたトランスコーディングモデルをCDN140の他のコンテンツプロセッサに配信してよい。それゆえ、トランスコーディングモデルは、ノード104、106、及び108の中で共有されてよい。同様に、モデルマネージャ134は、ノード104、106、及び108の中でのトランスコーディングレシピの共有を容易にしてよい。例えば、ゲートウェイノード106のコンテンツプロセッサ128が、いずれのセットのトランスコーディングモデルがコンテンツの特定の部分をトランスコーディングするのに使用されるべきであるかを既に解析している場合、モデルマネージャ134は、ゲートウェイノード106からトランスコーディングレシピを取得するか又は別様にこれにアクセスし、コンテンツプロセッサ122及び136とトランスコーディングレシピを共有してよい。それゆえ、ノード104、106、及び108によって生成されるトランスコーディングされたバージョンは、同じ又は同様のトランスコーディングレシピを使用する結果として同様であってよい。トランスコーディングモデル及びレシピを同期するのに他の技法が使用されてよいことが理解されるであろう。例えば、中央集権型データストアが使用されてよい。
【0047】
図1Bは、例示の分散台帳エンジン150の概要を示している。示されているように、分散台帳エンジン150は、ハッシュ生成器152、スマートコントラクトプロセッサ154、トリガプロセッサ156、及びコンテンツバリデータ158を含む。例において、分散台帳エンジン150は、図1Aにおける、それぞれノード104、106、及び108の分散台帳エンジン120、126、及び132等のCDNノードの一部である。
【0048】
ハッシュ生成器152は、本明細書において説明される態様に従ってハッシュコンテンツを生成する。例えば、コンテンツハッシュは、SHA-2ハッシュ(例えば、SHA-256、SHA-512等)又はRIPEMDハッシュ(例えば、RIPEMD-160、RIPEMD-256等)等の多様なハッシュ化アルゴリズムのうちの任意のものを使用して生成されてよい。ハッシュ生成器152は、単独で又はコンテンツとの組み合わせにおいてのいずれかでメタデータに基づいて生成されるのではなく、コンテンツ自体に基づいてコンテンツハッシュを生成してよい。ハッシュは、複数のサブパートを有してよく、ここで、ハッシュの第1のサブパートは、コンテンツを一意に識別してよく、一方、ハッシュの1つ又は複数の他のサブパートは、コンテンツ解像度(例えば、HD、4K、及び/又は8Kコンテンツのためのサブパートについての異なるハッシュ)及び/又はコンテンツソース(例えば、ストリーミングプラットフォームは、オリジナルコンテンツ公開者とは異なるハッシュサブパートを有してよい)に関連付けられてよい。ハッシュ生成器152によって生成されるコンテンツハッシュは、分散台帳のコンテンツレコードの一部として記憶されてよい。幾つかの例では、ハッシュ生成器152は、コンテンツに関連付けられたメタデータのハッシュを更に生成し、これもコンテンツレコードの一部として記憶されてよい。コンテンツレコードは、コンテンツ、又は限定されないが、コンテンツが(例えば、図1Aにおけるコンテンツソース102から)CDNによって受信された時点に関連付けられたタイムスタンプ、及び関連付けられたコンテンツソース情報(例えば、電子メールアドレス、請求先住所、会社名等)を含む多様な他の情報のうちの任意のものに関連付けられたメタデータの少なくとも一部を更に含んでよい。
【0049】
分散台帳エンジン150のスマートコントラクトプロセッサ154は、コンテンツに関連付けられたスマートコントラクトを生成する。上記で説明されたように、スマートコントラクトは、限定されないが、CDN、コンテンツソース、及び/又は、アーティストの中でもとりわけ、ミュージシャン、俳優/女優、及び監督を含む多様な当事者のうちの任意のものの間で生成されてよい。スマートコントラクトプロセッサ154は、生成されたスマートコントラクトを、コンテンツハッシュ(例えば、ハッシュ生成器152によって生成済みであり得るような)に関連付けてよい。スマートコントラクトプロセッサ154は、コンテンツレコードが記憶される場所と同じ分散台帳にスマートコントラクトを記憶してもよいし、又は他の例では、スマートコントラクトは異なる分散台帳であってもよい。例えば、異なる分散台帳は、異なる当事者のために使用されてよい(例えば、コンテンツソースごとに異なる分散台帳、特定のアーティストに対するロイヤリティ支払いを追跡するために同じ分散台帳を使用する、等)。スマートコントラクトプロセッサ154は、別個のユーザの間のスマートコントラクトを生成する必要がなく、又は他の例では、スマートコントラクトに対する当事者は、実際のユーザである必要がなく、代わりにプレースホルダとして機能してよい。例えば、ロイヤリティスマートコントラクトは、ロイヤリティ支払いのレコードを生成するのに使用可能であってよく、これは、コンテンツソース又は他の当事者に提供されてよく、それによって、最終的にロイヤリティの支払いがもたらされる。別の例として、CDNは、コントラクトに対する唯一の当事者であり、それによって、CDNがトリガの発生に基づいて分散台帳を介した解析を維持することが可能になる。
【0050】
トリガプロセッサ156は、トリガを処理し、関連付けられたスマートコントラクトを実行する。上記で記載されたように、トリガは、コンテンツ配信(例えば、クライアントデバイスへの送信、オリジン及びエッジノードの間の送信、ストリーミング又はダウンロードアクティビティ等)又はコンテンツ再生(例えば、コンテンツの再生/一時停止、早送り/巻き戻し、再生の早期終了等)に関するイベント等の多様なイベントのうちの任意のものであってよい。例えば、トリガプロセッサ156は、イベント(例えば、ログデータにアクセスすること、データストアのコンテンツをクエリすること等)が発生したか否かを判断するためにポーリングを実行してもよいし、又は(例えば、CDNノードから、クライアントデバイスから等)インジケーションを受信してもよい。トリガプロセッサ156がトリガを識別するとき、トリガに関連付けられたコンテンツハッシュが、関連付けられたスマートコントラクト(例えば、スマートコントラクトプロセッサ154によって生成済みであり得るような)を識別及び実行するのに使用される。
【0051】
コンテンツバリデータ158は、分散台帳内のコンテンツハッシュと比較されたコンテンツをバリデートする。例えば、コンテンツバリデータ158は、バリデーション要求を(例えば、図1Aにおけるクライアントデバイス110等のクライアントデバイスから、トランザクションの処理の結果として)受信してよい。バリデーション要求は、特定のコンテンツのためのハッシュを生成するインジケーションを含んでもよいし、又は、ハッシュ(例えば、クライアントデバイスによって生成され得るような)を含んでもよい。ハッシュが要求の一部として受信されない例では、ハッシュ生成器152は、コンテンツのハッシュを生成する。コンテンツバリデータ158は、その後、コンテンツをバリデートするために、受信されたハッシュ又は生成されたハッシュのいずれかを、分散台帳内のハッシュと比較する。上記で記載されたように、コンテンツ及び/又はメタデータに関連付けられたコンテンツソースに関する追加のバリデーションが実行されてよい。
【0052】
図1Cは、AIベーストランスコーディングを実行する例示のコンテンツプロセッサ180の概要を示している。示されているように、コンテンツプロセッサ180は、モデル選択器182、オブジェクト検出器184、トランスコーディングエンジン186、及び品質評価器188を含む。例において、コンテンツプロセッサ180は、図1Aにおける、それぞれノード104、106、及び108のコンテンツプロセッサ122、128、及び136等のCDNノードの一部である。コンテンツプロセッサ180は、図1Aにおけるコンテンツソース102等のコンテンツソースからのコンテンツをトランスコーディングする。
【0053】
モデル選択器182は、AIベーストランスコーディングを実行するためにトランスコーディングモデルを選択する。例えば、モデル選択器182は、限定されないが、コンテンツメタデータ(例えば、特定のコンテンツタイプを示し得るジャンル、俳優/女優等)、ビデオ解析(例えば、ビットレート、フレーム複雑度、明度/暗度等)、オリジナルコンテンツ解像度、ターゲットコンテンツ解像度、動きベクトル、生産年度、フォーマット又はコーデックタイプ、及び/又は消費者又は他のユーザから受信されたフィードバックを含む多様な基準に従って、一組のモデルからトランスコーディングモデルを選択する。上記で説明されたように、当該一組のトランスコーディングモデルは、異なるコンテンツタイプに従ってトレーニング済みであってよい。例えば、異なるモデルは、アクションコンテンツ、スポーツコンテンツ、アニメコンテンツ、リアリティコンテンツ、広告コンテンツ、及び白黒コンテンツのために存在してよい。
【0054】
例において、モデル選択器182は、いずれのトランスコーディングモデルを適用すべきかを決定するために複数のトランスコーディングモデルを比較する。例えば、オブジェクト検出器184は、所与のビデオフレームにおけるオブジェクトの中でもとりわけ、無生物オブジェクト、アニメキャラクタ、及びを俳優/女優を識別してよい。オブジェクト検出器184は、任意の数の及び/又は多様なオブジェクト認識機械学習モデルを適用してよい。例えば、各オブジェクト認識機械学習モデルは、特定のサブセットのオブジェクトを認識するようにトレーニング済みであってもよいし、又は他の例では、オブジェクト認識機械学習モデルは、特定のタイプのコンテンツに従ってトレーニングされる。オブジェクト検出器184は、多様な他のオブジェクト検出技法(例えば、フレーム内のエッジを識別すること、一組のフレームにわたって動きを解析すること等)のうちの任意のものを適用してよいことが理解されるであろう。
【0055】
モデル選択器182は、次に、いかに良好に検出されたオブジェクトが各トランスコーディングモデルによってトランスコーディングされたかを決定するために、品質評価器188を使用して複数のトランスコーディングモデルからのモデル処理結果を評価してよい。例において、品質評価器188は、プログラムによって(例えば、トランスコーディングアーティファクトを検出すること、参照フレームをトランスコーディングされたフレームと比較すること等によって)比較を行う。例えば、ソースフレームは、ダウンスケーリングされてよく、それにより、ダウンスケーリングされたソースフレームが、複数のトランスコーディングモデルを使用してアップスケーリングされて、複数のトランスコーディングされたフレームが生成される。トランスコーディングされたフレームは、オリジナルソースフレームと比較されて、エラー及び品質損失が識別されてよく、それにより、最高品質(例えば、最低エラー、最低品質損失等)を呈するトランスコーディングモデルが選択されて、コンテンツがトランスコーディングされてよい。他の例では、品質評価器188は、例えばユーザ選択のために複数のトランスコーディングされたフレームの表示を並行して生成することによって、明示的/暗黙的なユーザ入力を要求又は別様に受信する。
【0056】
トランスコーディングエンジン186は、コンテンツをトランスコーディングして、トランスコーディングされたコンテンツが生成される。トランスコーディングエンジン186は、トランスコーディングを実行するために、モデル選択器182によって選択されるトランスコーディングモデルを使用する。例において、複数のトランスコーディングモデルが、コンテンツをトランスコーディングするのに使用され、ここで、1つのモデルは、コンテンツのサブパートのために使用されてよく、一方、別のモデルは、異なるサブパートのために使用されてよい。したがって、トランスコーディングモデル性能は、トランスコーディング中に周期的に(例えば、品質評価器188によって)評価されてよく、それにより、トランスコーディングモデルは、所与のサブパートについてのモデル性能に依存して(例えば、モデル選択器182によって行われる選択に従って)変更され得る。幾つかの例では、コンテンツ解像度は、(例えば、ブロードキャストのスポーツセグメント及びその中の広告の間で)変化してよく、それにより、モデル選択器182がモデル選択プロセスを実行するのに再び使用されるべきであることをトランスコーディングエンジン186が決定し得る。他の例では、オブジェクト検出器184は、ビデオフレームのコンテンツを決定するか又はオブジェクトが消失したときを識別するのに使用されてよく、その両方が、モデル選択器182に、トランスコーディングモデル性能を再評価させ得る。幾つかの事例では、トランスコーディングエンジン186は、イントラフレーム、予測フレーム、及び/又は双方向フレームに異なるトランスコーディングモデルを適用する(その各々がモデル選択器182によって選択されてよい)。上記で記載されたように、そのような技法は、トランスコーディングと同時発生的に実行される必要はなく、それにより、トランスコーディングエンジン186は、代わりに、コンテンツのいずれのサブパートをトランスコーディングするのにいずれのトランスコーディングモデルが使用されるべきかを指定するトランスコーディングレシピを利用する。
【0057】
図2Aは、本明細書において説明される分散台帳技法に従ってCDNにコンテンツを追加する例示の方法200の概要を示している。例において、方法200の態様は、図1Aにおけるノード104、106、又は108等のCDNのノードによって実行される。別の例として、方法200の態様は、図1Bにおける分散台帳エンジン150等の分散台帳エンジンによって実行されてよい。方法200は、動作202において開始し、ここで、コンテンツのインジケーションが受信される。コンテンツのインジケーションは、図1Aにおけるコンテンツソース102等のコンテンツソースから受信されてよい。別の例として、コンテンツのインジケーションは、(例えば、コンテンツソースに関連付けられたクライアントデバイスの)ユーザが、コンテンツを選択し、タイトル、及び俳優/女優、監督、又は他の関連付けられたアーティストのリスト等の関連付けられたメタデータを指定することを可能にするCDNのウェブサイトを介して受信されてよい。他の例では、メタデータは、メタデータレポジトリに記憶され、コンテンツインジケーションは、メタデータレポジトリ内のメタデータへの参照を含む。多様な他の技法のうちの任意のものが、アプリケーションプログラミングインターフェース(API)を使用して等で、コンテンツソースからコンテンツを受信するのに使用されてよいことが理解されるであろう。
【0058】
フローは、動作204に進み、ここで、ハッシュが、コンテンツのために生成される。例において、ハッシュは、図1Bにおけるハッシュ生成器152等のハッシュ生成器によって生成される。例えば、コンテンツハッシュは、単独で又はコンテンツとの組み合わせにおいてのいずれかでメタデータに基づいて生成されるのではなく、コンテンツ自体に基づいて生成されてよい。例において、コンテンツハッシュは、コンテンツレコードの一部である。コンテンツレコードは、コンテンツメタデータに関連付けられたハッシュ及び/又はメタデータ自体等の多様な他の情報のうちの任意のものを記憶してよい。
【0059】
動作206において、コンテンツに関連付けられたスマートコントラクトが生成される。スマートコントラクトは、図1Bにおけるスマートコントラクトプロセッサ154等のスマートコントラクトプロセッサによって生成されてよい。スマートコントラクトは、限定されないが、CDN、動作202において受信されたインジケーションが関連付けられるコンテンツソース、及び/又は、アーティストの中でもとりわけ、ミュージシャン、俳優/女優、及び監督を含む多様な当事者のうちの任意のものの間で生成されてよい。動作206において生成されたスマートコントラクトは、動作204において生成されたコンテンツハッシュに関連付けられてよい。上記で記載されたように、スマートコントラクトは、別個のユーザの間にある必要がなく、又は他の例では、スマートコントラクトに対する当事者は、実際のユーザである必要がなく、代わりにプレースホルダとして機能してよい。スマートコントラクトは、本明細書において説明される態様に従って、スマートコントラクトの実行を引き起こす多様なトリガのうちの任意のものに関連付けられてよい。動作206及び208が単一のスマートコントラクトを生成するものとして説明されるが、任意の数のスマートコントラクトが生成されてよいことが理解されるであろう。
【0060】
動作208に移行すると、コンテンツハッシュ及びスマートコントラクトは、分散台帳に記憶される。例において、動作204において生成されたコンテンツレコード及び動作206において生成された1つ又は複数のスマートコントラクトは、同じ分散台帳に記憶される。別の例として、スマートコントラクトは、コンテンツレコードとは異なる分散台帳に記憶されてよい。例えば、異なる分散台帳は、異なる当事者のために使用されてよい(例えば、コンテンツソースごとに異なる分散台帳、特定のアーティストに対するロイヤリティ支払いを追跡するために同じ分散台帳を使用する、等)。フローは、動作208において終了する。
【0061】
図2Bは、本明細書において説明される分散台帳技法に従ってコンテンツに関連付けられたトリガを処理する例示の方法220の概要を示している。例において、方法220の態様は、図1Aにおけるノード104、106、又は108等のCDNのノードによって実行される。別の例として、方法220の態様は、図1Bにおける分散台帳エンジン150等の分散台帳エンジンによって実行されてよい。方法220は、動作222において開始し、ここで、コンテンツの一部に関連付けられたトリガのインジケーションが受信される。例において、インジケーションは、情報の中でもとりわけ、コンテンツのコンテンツハッシュ及びトリガタイプを含む。インジケーションは、図1Bにおけるトリガプロセッサ156等のトリガプロセッサによって受信されてよい。他の例では、インジケーションは、受信されないが、代わりにトリガプロセッサによって生成される。
【0062】
動作224において、コンテンツバリデーションが実行される。コンテンツバリデーションは、図1Bにおけるコンテンツバリデータ158等のコンテンツバリデータによって実行されてよく、これは、図2Cにおいて以下で説明される方法240の態様を実行し得る。コンテンツバリデーションは、トリガが関連付けられるコンテンツのハッシュを生成すること、当該ハッシュを、分散台帳のコンテンツレコード(例えば、図2Aにおける方法200の動作204及び208によって生成済みであり得るような)におけるハッシュと比較することを含んでよい。他の事例では、動作222において受信されたコンテンツハッシュは、分散台帳におけるコンテンツハッシュと比較されて、ハッシュ同士が一致することが確認される。幾つかの例では、動作224は、省略されてもよいし、又は、スマートコントラクトのタイプに依存して実行されてもよい(例えば、支払いに関連付けられたスマートコントラクトはコンテンツバリデーションを含んでよく、一方、解析に関連付けられたスマートコントラクトはそうではなくてよい)。
【0063】
フローは、動作226に進み、ここで、コンテンツに関連付けられたスマートコントラクトが識別される。例において、スマートコントラクトは、コンテンツハッシュと同じ分散台帳に記憶され、それにより、スマートコントラクトはその中で識別されてよい。他の例では、コンテンツハッシュは、異なる分散台帳においてスマートコントラクトを識別するのに使用され、又は別の例として、コンテンツレコードが、異なる分散台帳におけるスマートコントラクトへの参照を含んでよい。それゆえ、多様な技法のうちの任意のものが、コンテンツの一部に関連付けられたスマートコントラクトを識別するのに使用されてよいことが理解されるであろう。
【0064】
動作228において、動作226において識別されたスマートコントラクトが実行される。例において、スマートコントラクトを実行することは、スマートコントラクトに関連付けられた分散台帳において新たなレコードを生成することを含み、それによって、分散台帳の後の処理がレポート(例えば、支払い請求、解析等)を生成することが可能になる。他の例では、スマートコントラクトは、電子通信を生成すること、CDN内でコンテンツを送信すること、及び/又はコンテンツトランスコーディングを実行することを含む多様な他のアクションのうちの任意のものを指定してよい。任意の数のアクションが、スマートコントラクト実行の一部として動作228において実行されてよいことが理解されるであろう。フローは、動作228において終了する。
【0065】
図2Cは、本明細書において説明される分散台帳技法に従ってコンテンツをバリデートする例示の方法240の概要を示している。例において、方法240の態様は、図1Aにおけるノード104、106、又は108等のCDNのノードによって実行される。別の例として、方法240の態様は、図1Bにおける分散台帳エンジン150等の分散台帳エンジンによって実行されてよい。方法240は、動作242において開始し、ここで、コンテンツバリデーションの要求が受信される。例において、要求は、図1Aにおけるクライアントデバイス110等のクライアントデバイスから受信される。他の例では、要求は、図1Bにおけるスマートコントラクトプロセッサ154等のスマートコントラクトプロセッサから受信され、これは、図2Bにおける動作224の態様を実行し得る。コンテンツバリデーションの要求は、コンテンツハッシュ(例えば、要求が受信されたクライアントデバイスによって生成済みであるような)を含んでよい。
【0066】
フローは、動作244に進み、ここで、コンテンツのハッシュが生成される。動作244は、幾つかの例(例えば、コンテンツバリデーションの要求がコンテンツハッシュを含む例)では、これが省略されてよいことを示すために破線ボックスを使用して示されている。動作244の態様は、図1Bにおけるハッシュ生成器152等のハッシュ生成器によって実行されてよい。上記で説明されたように、ハッシュは、単独で又はコンテンツとの組み合わせにおいてのいずれかでメタデータに基づいて生成されるのではなく、コンテンツ自体に基づいて生成されてよい。
【0067】
動作246において、記憶されたハッシュは、分散台帳において識別される。記憶されたハッシュは、本明細書において説明される態様に従ってコンテンツレコードの一部であってよい。例において、コンテンツレコードは、参照又は他の関連付けを介してコンテンツに関連付けられてよい。幾つかの例では、バリデーションは、コンテンツのみに実行されなくてよく、メタデータに対しても実行されてよい。そのような例では、記憶されたメタデータハッシュ(例えば、コンテンツレコードの一部であってよい)は、動作246の一部として識別されてよい。記憶されたハッシュを識別するのに、多様な他の技法のうちの任意のものが使用されてよいことが理解されるであろう。
【0068】
判断248において、ハッシュが一致するか否かが判断される。例えば、動作242において受信されるコンテンツハッシュ又は動作244において生成されるコンテンツハッシュは、動作246において識別されるコンテンツハッシュと比較されてよい。例において、厳密な一致が使用される。他の例では、ハッシュは、複数のサブパートを有してよく、ここで、厳密な一致は、第1のサブパートを比較するのに使用される。ハッシュの他のサブパートは、コンテンツ解像度(例えば、HD、4K、及び/又は8Kコンテンツのためのサブパートについての異なるハッシュ)及び/又はコンテンツソース(例えば、ストリーミングプラットフォームは、オリジナルコンテンツ公開者とは異なるハッシュサブパートを有してよい)に関連付けられてよい。動作246において上記で記載されたように、追加の情報が、メタデータハッシュ等の決定の一部として評価されてよい。幾つかの事例では、メタデータ自体は、コンテンツレコードの一部として記憶されてよく、それにより、照合技法が、メタデータの態様を評価するのに使用され得る。それゆえ、多様な技法のうちの任意のものが、コンテンツハッシュが一致するか否かを判断するのに使用されてよく、一致は、厳密な一致である必要はないことが理解されるであろう。
【0069】
判断248において、ハッシュが一致しないと判断された場合、フローは、「いいえ」に分岐して動作250に向かい、ここで、コンテンツはバリデートされないというインジケーションが提供される。例において、インジケーションは、なぜバリデーションが失敗したか(例えば、ハッシュサブパートが一致しなかった、特定のメタデータがバリデーションを失敗した等)を更に含む。フローは、動作250において終了する。
【0070】
しかしながら、ハッシュが一致すると判断された場合、フローは、その代わりに「はい」に分岐して動作252に向かい、ここで、コンテンツがバリデートされているというインジケーションが提供される。幾つかの例では、バリデーションは、バリデートされた情報である、より具体的なメタデータについてインジケーションを含む(例えば、厳密ではない一致は、メタデータが正しいが不完全である、例えば、フルネームではなく名前及び苗字の俳優/女優、厳密な日付ではなくリリース年全体を有する等であることを示し得る)。フローは、動作252において終了する。
【0071】
図3Aは、本明細書において説明されるAIベーストランスコーディング技術に係る、コンテンツをトランスコーディングする例示の方法300の概要を示している。例において、方法300の態様は、図1Aにおけるノード104、106、又は108等のCDNのノードによって実行される。別の例として、方法300の態様は、図1Cにおけるコンテンツプロセッサ180等のコンテンツプロセッサによって実行されてよい。
【0072】
方法300は、動作302において開始し、ここで、コンテンツのインジケーションが受信される。コンテンツのインジケーションは、コンテンツが図1Aにおけるコンテンツソース102等のCDNに追加されているときにコンテンツソースから受信されてよい。別の例では、コンテンツのインジケーションは、図1Aにおけるクライアントデバイス110から受信され得るように、再生を開始するときにクライアントデバイスから受信されてよい。例において、コンテンツのインジケーションは、要求されたフォーマットの情報(例えば、オーディオチャネルの数、オーディオフォーマット、カラー深度等)の中でもとりわけ、コンテンツが記憶されたロケーション及びコンテンツの要求された解像度を含む。要求されたフォーマットの情報は、コンテンツの現在のフォーマットとは異なっていてよく、例えば、要求されたフォーマットの情報は、より高い解像度又はより多くの数のチャネルを指定してよい。幾つかの事例では、インジケーションは、要求されたフォーマットの情報を含む必要はなく、要求されたフォーマットの情報は、代わりに、デバイス特性(例えば、スクリーンサイズ、利用可能なスピーカの数、利用可能な帯域幅等)に基づいて決定されてよい。
【0073】
フローは、動作304に進み、ここで、トランスコーディングモデルが選択される。例において、動作304の態様は、図1Cにおけるコンテンツプロセッサ180のモデル選択器182等のモデル選択器によって実行される。例えば、トランスコーディングモデルは、限定されないが、コンテンツメタデータ(例えば、特定のコンテンツタイプを示し得るジャンル、俳優/女優等)、ビデオ解析(例えば、ビットレート、フレーム複雑度、明度/暗度等)、オリジナルコンテンツ解像度、ターゲットコンテンツ解像度、動きベクトル、生産年度、フォーマット又はコーデックタイプ、及び/又は消費者又は他のユーザから受信されたフィードバックを含む多様な基準に従って、一組のトランスコーディングモデルから選択されてよい。幾つかの例では、動作304は、いずれのトランスコーディングモデルを適用すべきかを決定するために複数のトランスコーディングモデルを比較することを含む。図3Bの方法350は、そのような態様の一例を示しており、以下で更に詳細に論述される。
【0074】
動作306において、コンテンツは、動作304において選択されたトランスコーディングモデルを使用してトランスコーディングされる。トランスコーディングは、トランスコーディングエンジン186等のトランスコーディングエンジンによって実行されてよい。本明細書において説明される態様によれば、複数のトランスコーディングモデルが、コンテンツをトランスコーディングするのに使用されてよい。例えば、第1のサブパートは、動作304において選択されたモデルに従ってトランスコーディングされてよく、その後、トランスコーディングは一時停止してよく、フローは、動作304に戻って、コンテンツの第2のサブパートのための新たなトランスコーディングモデルを選択してよい。そのような態様は、動作306から動作304への矢印によって示されている。それゆえ、トランスコーディングモデル性能は、動作304に戻ることによって周期的に評価されてよく、それにより、トランスコーディングモデルは、所与のサブパートについてのモデル性能に依存して変化し得る。幾つかの例では、コンテンツ解像度は変化し得、これにより、フローが動作304に戻り得る。他の例では、オブジェクト検出が、ビデオフレームのコンテンツを決定するか又はオブジェクトが消失したときを識別するのに使用されてよく、その両方により、フローが動作304に戻り得る。幾つかの事例では、適用されるトランスコーディングモデルは、フレーム単位で、又は他の任意のレベルの粒度に従って(例えば、キーフレーム又はイントラフレーム毎、所定の数のフレームの後等)再評価されてよい。さらに、動作304及び306は順次的に行われるものとして説明されるが、他の態様では、サブパートトランスコーディングは並列に行われてよく、異なるサブパートが異なるトランスコーディングモデルに従って同時発生的にトランスコーディングされることが理解されるであろう。
【0075】
最終的に、以前に記載されたように、イントラフレーム、予測フレーム、及び/又は双方向フレームに異なるトランスコーディングモデルが適用されてよい。それゆえ、動作306は、コンテンツをトランスコーディングするために単一のトランスコーディングモデルを適用することに制限される必要がない。むしろ、動作306は、コンテンツをトランスコーディングする間にトランスコーディングモデルを交互に入れ替えてよい。別の例として、第1のトランスコーディングモデルは、コンテンツのビデオトラックをトランスコーディングするのに使用されてよく、第2のトランスコーディングモデルは、コンテンツのオーディオトラックをトランスコーディングするのに使用されてよい。コンテンツをトランスコーディングするために1つのトランスコーディングモデルから別のトランスコーディングモデルにいつシフトすべきかを決定するのに多様な技法が使用されてよいことが理解されるであろう。
【0076】
他の例では、動作304は、省略されてよく、動作306は、代わりに、コンテンツのいずれのサブパートをトランスコーディングするのにいずれのトランスコーディングモデルが使用されるべきかを指定するトランスコーディングレシピに少なくとも部分的に基づいて実行されてよい。トランスコーディングレシピは、例の中でもとりわけ、要求された解像度、オーディオチャネルの数、ビットレート、及び/又はカラー深度に関連付けられてよく、それにより、トランスコーディングレシピは、(例えば、動作302において受信されたような)コンテンツの要求において提供された要求されたフォーマットの情報に基づいて識別され得る。そのような例では、動作304を含む方法300は、別のノードにおいて実行済みであってよく、又は別の例として、動作306は、トランスコーディングレシピが任意のそのようなトランスコーディングに先立って生成されるように省略済みであってよい。
【0077】
フローは、動作308に進み、ここで、トランスコーディングされたコンテンツの品質が評価される。動作308は、コンテンツトランスコーディングが終了した後に実行されてもよいし、又は他の例では、トランスコーディング中に周期的に実行されてもよい。動作308の態様は、図1Cにおけるコンテンツプロセッサ180の品質評価器188等の品質評価器によって実行されてよい。例えば、決定は、プログラムによって(例えば、トランスコーディングアーティファクトを検出すること、参照フレームをトランスコーディングされたフレームと比較すること等によって)行われてよく、及び/又は明示的/暗黙的なユーザ入力に基づくものであってよい。ユーザ入力は、同じ又は同様のトランスコーディングモデルを使用して以前にトランスコーディングされたコンテンツに基づく履歴ユーザ入力であってよく、ここで、ユーザは、トランスコーディングされたコンテンツの知覚される品質(例えば、1~5のスケール上での品質、品質が良好であったか否かのバイナリインジケーション等)を示す。
【0078】
判断310において、品質が閾値を満たすか否かが判断される。例において、所定のエラーレート又は品質損失が、動作308において実行された評価と比較される。他の例では、所定のスコア閾値がユーザ入力と比較される。多様な他の技法及び/又はメトリックのうちの任意のもの及び関連付けられた閾値が、品質を評価するのに使用されてよいことが理解されるであろう。判断310において、品質閾値が満たされないと判断された場合、フローは、「いいえ」に分岐し、動作304に戻り、ここで、異なるトランスコーディングモデルは、コンテンツをトランスコーディングするのに使用されてよい。本明細書において使用される場合、トランスコーディングモデルは、様々な設定又は他の変数を更に含んでよく、それにより、異なるトランスコーディングモデルは、変更される設定及び/又は変数を有する同じベーストランスコーディングモデルを適用することを含んでよい。
【0079】
しかしながら、トランスコーディングされたコンテンツが品質閾値を満たすと判断された場合、フローは、代わりに、「はい」に分岐して動作312に向かい、ここで、トランスコーディングされたコンテンツが提供される。例において、トランスコーディングされたコンテンツは、消費者に対する再生のためにクライアントデバイスに提供される。他の例では、トランスコーディングされたコンテンツは、記憶及び/又は1人又は複数人の消費者への後続の送信のためにCDNのノードに送信される。方法300は、事前記録されたコンテンツに限定される必要はなく、同様の技法が、例の中でもとりわけ、ストリーム又はリアルタイムコンテンツのために使用されてよい。方法300は、動作312において終了する。
【0080】
図3Bは、本明細書において説明されるAIベーストランスコーディング技術に係る、トランスコーディングモデルを選択する例示の方法350の概要を示している。例において、方法350の態様は、図1Aにおけるノード104、106、又は108等のCDNのノードによって実行される。別の例として、方法350の態様は、図1Cにおけるコンテンツプロセッサ180等のコンテンツプロセッサによって実行されてよい。方法350の態様は、図3Aにおける方法300の動作304の一部として実行されてよい。
【0081】
方法350は、動作352において開始し、ここで、コンテンツフレームが選択される。例において、選択されたコンテンツフレームは、図3Aにおける方法300の態様を実行するものであるようなコンテンツプロセッサによってトランスコーディングされることになるフレームである。他の例では、選択されたコンテンツフレームは、キーフレーム又はコンテンツを代表すると判断されるフレームである。例えば、フレームは、例の中でもとりわけ、比較的高い程度の動き又は詳細を有する結果として選択されてよい。
【0082】
動作354において、選択されたコンテンツフレームにおいてオブジェクトが検出される。動作354の態様は、図1Cにおけるオブジェクト検出器184等のオブジェクト検出器によって実行されてよい。動作354は、オブジェクトの中でもとりわけ、1つ又は複数の無生物オブジェクト、アニメキャラクタ、及び俳優/女優を識別することを含んでよい。選択されたコンテンツフレームは、任意の数の及び/又は多様なオブジェクト認識機械学習モデルに従って処理されてよい。例えば、各オブジェクト認識機械学習モデルは、特定のサブセットのオブジェクトを認識するようにトレーニング済みであってもよいし、又は他の例では、オブジェクト認識機械学習モデルは、特定のタイプのコンテンツに従ってトレーニングされる。多様な他のオブジェクト検出技法(例えば、フレーム内のエッジを識別すること、一組のフレームにわたって動きを解析すること等)のうちの任意のものが使用されてよいことが理解されるであろう。動作354は、他の例では、方法350のモデル選択技法が検出されたオブジェクトに関して特にモデル性能を評価しなくてよいように動作354が省略されてよいことを示すために破線ボックスを使用して示されている。
【0083】
フローは、動作356に進み、ここで、コンテンツフレームの解像度が低減される。例において、低減された解像度は、本明細書において説明されるAIベーストランスコーディング技法を使用して生成されることになる視覚データの量に基づいて決定される。例えば、1080p HD(例えば、1920×1080)コンテンツを4Kコンテンツ(例えば、3840×2160)にアップスケーリングすることは、ピクセルデータの4倍の増加をもたらす。したがって、1080p HDソースは、動作356において4分の1だけ(例えば、960×540に)ダウンスケーリングされてよい。任意の数の他のダウンスケーリングされた解像度が使用されてよいことが理解されるであろう。動作356は、他の例では動作356が省略され得ることを示すために、破線ボックスを使用して示されている。例えば、動作356は、モデル処理結果が、ソースコンテンツフレームとの比較を伴うことなく、互いに比較される場合に省略されてよい。
【0084】
動作358において、コンテンツフレームは、一組のトランスコーディングモデルを使用して処理される。例において、コンテンツフレームを処理することは、各トランスコーディングモデルを使用して(例えば、動作356において生成されたような)ダウンスケーリングされたコンテンツフレームをアップスケーリングして、動作352において選択されたオリジナルコンテンツフレームと同じ又は同様である解像度を有するトランスコーディングされたコンテンツフレームをもたらすことを含む。幾つかの事例では、コンテンツフレームをトランスコーディングすることは、同じベースモデルを利用するが、コンテンツフレームをトランスコーディングするのに使用される設定又は変数を変更することを含む。動作358において使用される一組のトランスコーディングモデルは、コンテンツをトランスコーディングするためにCDNによって使用されるトランスコーディングモデルの少なくともサブセットであってよい。幾つかの例では、一組のトランスコーディングモデルは、限定されないが、コンテンツメタデータ(例えば、特定のコンテンツタイプを示し得るジャンル、俳優/女優等)、ビデオ解析(例えば、ビットレート、フレーム複雑度、明度/暗度等)、オリジナルコンテンツ解像度、ターゲットコンテンツ解像度、動きベクトル、生産年度、フォーマット又はコーデックタイプ、及び/又は消費者又は他のユーザから受信されたフィードバックを含む多様な基準に従って、選択される。
【0085】
フローは、動作360に進み、ここで、当該一組のトランスコーディングされたコンテンツフレームは、品質に従ってスコア付けされる。例において、トランスコーディングされたコンテンツフレームは、プログラムによって(例えば、トランスコーディングアーティファクトを検出すること、参照フレームをトランスコーディングされたフレームと比較すること等によって)スコア付けされ、及び/又は明示的/暗黙的なユーザ入力に基づくものであってよい。トランスコーディングされたコンテンツフレームは、個別にスコア付けされ、互いに対してスコア付けされ、及び/又は動作352において選択されたコンテンツフレームに基づいてスコア付けされてよい。上記で説明されたように、ユーザ入力は、並行してトランスコーディングされたフレームの表示から受信されてもよいし、又は、例の中でもとりわけ、同じ又は同様のトランスコーディングモデルを使用して以前にトランスコーディングされたコンテンツに基づく履歴ユーザ入力であってもよい。例において、動作360の態様は、図1Cにおけるコンテンツプロセッサ180の品質評価器188等の品質評価器によって実行される。
【0086】
動作362において、最高スコアを有するトランスコーディングモデルのインジケーションが提供される。例において、インジケーションは、図1Cにおけるコンテンツプロセッサ180のトランスコーディングエンジン186等のトランスコーディングエンジンに提供される。一例として、インジケーションは、コンテンツをトランスコーディングするために図3Aにおける方法300の動作306において使用されてよい。例において、インジケーションは、トランスコーディングされたコンテンツフレームを含み、それにより、トランスコーディングエンジンは、動作352において選択されたコンテンツフレームを再トランスコーディングする必要はない。方法350が単一のコンテンツフレームを選択及び処理するものとして説明されるが、他の例では、複数のコンテンツフレームが処理されてよいことが理解されるであろう。例えば、方法350は、一組のフレームのためのトランスコーディングモデルを決定してよく、その後、モデル選択プロセスは、同じ又は異なるトランスコーディングモデルを識別するために再び実行されてよい。そのような例では、インジケーションは、トランスコーディングモデルが(例えば、フレームの数、タイムスタンプに従って等で)使用されるべきであるコンテンツサブパートのインジケーションを含む。フローは、動作362において終了する。
【0087】
図4は、本実施形態のうちの1つ又は複数が実装され得る適した動作環境400の一例を示している。これは、適した動作環境の単に1つの例であり、使用又は機能の範囲に関していかなる限定も提案することを意図されていない。使用に適し得る他の周知のコンピューティングシステム、環境、及び/又は構成は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、スマートフォン等のプログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記システム又はデバイスのうちの任意のものを含む分散コンピューティング環境等を含むが、これらに限定されない。
【0088】
その最も基本的な構成において、動作環境400は、典型的には、少なくとも1つの処理ユニット402及びメモリ404を備えてよい。コンピューティングデバイスの厳密な構成及びタイプに依存して、メモリ404(とりわけ、API、プログラム等、及び/又は本明細書において開示されるシステム及び方法を実装又は実行する他のコンポーネント又は命令等を記憶する)は、揮発性(RAM等)、不揮発性(ROM、フラッシュメモリ等のような)、又はこれら2つの何らかの組み合わせであってよい。この最も基本的な構成は、破線406によって図4において示されている。さらに、環境400は、限定されないが磁気又は光学ディスク又はテープを含む記憶デバイス(取り外し可能408及び/又は取り外し不能410)を含んでもよい。同様に、環境400は、キーボード、マウス、ペン、音声入力等のような入力デバイス414、及び/又は、ディスプレイ、スピーカ、プリンタ等のような出力デバイス416を有してもよい。LAN、WAN、ポイントツーポイント等のような1つ又は複数の通信接続412も環境に含まれてよい。
【0089】
動作環境400は、少なくとも何らかの形態のコンピュータ可読媒体を含んでよい。コンピュータ可読媒体は、処理ユニット402、又は動作環境を含む他のデバイスによってアクセスされ得る任意の利用可能な媒体であってよい。例えば、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含んでよい。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータ等の情報の記憶のための任意の方法又は技術において実装される、揮発性及び不揮発性、取り外し可能及び取り外し不能な媒体を含んでよい。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)又は他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又は他の磁気記憶デバイス、又は、所望の情報を記憶するのに使用され得る他の任意の非一時的媒体を含んでよい。コンピュータ記憶媒体は、通信媒体を含まなくてよい。
【0090】
通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は、搬送波又は他の搬送メカニズム等の被変調データ信号における他のデータを具現化してよく、任意の情報伝達媒体を含む。「被変調データ信号」という用語は、信号において情報を符号化するように設定又は変更されたその特性のうちの1つ又は複数を有する信号を意味し得る。例えば、通信媒体は、有線ネットワーク又は直接有線接続等の有線媒体、及び音響、RF、赤外線及び他の無線媒体等の無線媒体を含んでよい。上記のうちの任意のものの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。
【0091】
動作環境400は、1つ又は複数のリモートコンピュータへの論理接続を使用してネットワーク接続環境において動作する単一のコンピュータであってよい。リモートコンピュータは、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス又は他の一般的なネットワークノードであってよく、典型的には、上記で説明された要素の多く又は全て、並びにそのように言及されていない他のものを含む。論理接続は、利用可能な通信媒体によってサポートされる任意の方法を含んでよい。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット及びインターネットにおいてよく見られる。
【0092】
本明細書において説明される異なる態様は、本明細書において開示されたシステム及び方法を実装及び実行するために、ソフトウェア、ハードウェア、又はソフトウェア及びハードウェアの組み合わせを使用して利用されてよい。本開示全体を通して特定のデバイスが特定の機能を実行するものとして記載されているが、当業者であれば、これらのデバイスは例示の目的で提供され、本開示の範囲から逸脱することなく、本明細書において開示された機能を実行するために他のデバイスが利用されてよいことを認識するであろう。
【0093】
上記で言及されたように、複数のプログラムモジュール及びデータファイルがシステムメモリ404に記憶されてよい。処理ユニット402上で実行される間、プログラムモジュール(例えば、アプリケーション、入力/出力(I/O)管理、及び他のユーティリティ)は、限定されないが、例えば図2A図2C及び図3A図3Bにおいて示されている方法等の、本明細書において説明される動作方法のステージのうちの1つ又は複数を含むプロセスを実行してよい。
【0094】
さらに、本発明の例は、ディスクリート電子要素を含む電気回路、論理ゲートを含むパッケージ化された又は統合された電子チップ、マイクロプロセッサを利用する回路において、又は、電子要素又はマイクロプロセッサを含む単一のチップ上で、実践されてよい。例えば、本発明の例は、図4において示されたコンポーネントの各々又は多くが単一の集積回路上に統合され得るシステムオンチップ(SOC)を介して実践されてよい。そのようなSOCデバイスは、1つ又は複数の処理ユニット、グラフィックスユニット、通信ユニット、システム仮想化ユニット及び様々なアプリケーション機能を含んでよく、その全てが、単一の集積回路としてチップ基板上に統合(又は「バーン(burned)」)される。SOCを介して動作する場合、本明細書において説明される機能は、単一の集積回路(チップ)上で動作環境400の他のコンポーネントと統合された特定用途向けロジックを介して動作されてよい。本開示の例は、例えば、限定されないが、機械、光学、流体、及び量子技術を含む、AND、OR,及びNOT等の論理演算を実行することが可能な他の技術を使用して実践されてもよい。加えて、本発明の例は、汎用コンピュータ内で、又は他の任意の回路又はシステムにおいて実践されてよい。
【0095】
本開示は、可能な実施形態のうちの一部のみが示された添付図面を参照して本技術の幾つかの態様を説明した。しかしながら、他の態様は、多くの異なる形式において具現化されてよく、本明細書において記載された実施形態に限定されるものと解釈されるべきはない。むしろ、これらの態様は、本開示が、徹底的かつ完全であり、当業者に可能な実施形態の範囲を完全に伝達するように提供された。
【0096】
本明細書において特定の態様が説明されたものの、技術の範囲はそれらの特定の実施形態に限定されない。当業者であれば、本技術の範囲及び趣旨内にある他の実施形態又は改善を認識するであろう。したがって、具体的な構造、動作、又は媒体は、例示的な実施形態としてのみ開示されている。本技術の範囲は、以下の特許請求の範囲及びその中の任意の均等物によって定義される。
[他の可能な項目]
[項目1]
システムであって:
少なくとも1つのプロセッサ;及び
前記少なくとも1つのプロセッサに動作可能に接続されているとともに、前記少なくとも1つのプロセッサによって実行されると、前記システムに、一組の動作を実行させる命令を記憶するメモリ
を備え、前記一組の動作は:
クライアントデバイスから、コンテンツ配信ネットワーク(CDN)のコンテンツの要求を受信すること、ここで、前記コンテンツの要求は、前記コンテンツの解像度とは異なる要求解像度を示す要求されたフォーマットの情報を含む;
一組のトランスコーディングモデルから、前記コンテンツをトランスコーディングするためにトランスコーディングモデルを決定すること;
前記決定されたトランスコーディングモデルを使用して、前記コンテンツの少なくとも一部をトランスコーディングし、前記要求解像度を有するトランスコーディングされたコンテンツを生成すること;及び
前記コンテンツの要求に応答して、前記トランスコーディングされたコンテンツを前記クライアントデバイスに提供すること
を有する、システム。
[項目2]
前記トランスコーディングモデルを決定することは:
前記コンテンツからコンテンツフレームを選択すること;
前記コンテンツフレームをダウンスケーリングすること;
前記ダウンスケーリングされたコンテンツフレームを:
第1のトランスコーディングされたフレームを生成する第1のトランスコーディングモデル;及び
第2のトランスコーディングされたフレームを生成する第2のトランスコーディングモデル
を使用して処理すること;及び
前記トランスコーディングモデルを決定するために、前記コンテンツフレームに基づいて、前記第1のトランスコーディングされたフレーム及び前記第2のトランスコーディングされたフレームを評価すること、ここで、前記トランスコーディングモデルは、前記第1のトランスコーディングモデル又は前記第2のトランスコーディングモデルのいずれかである
を含む、項目1に記載のシステム。
[項目3]
前記トランスコーディングモデルを決定することは、前記コンテンツフレームのオブジェクトを認識することを更に含み;及び
前記第1のトランスコーディングされたフレーム及び前記第2のトランスコーディングされたフレームは、前記トランスコーディングモデルを決定するために前記コンテンツフレームの前記認識されたオブジェクトに少なくとも部分的に基づいて更に評価される、項目2に記載のシステム。
[項目4]
前記トランスコーディングモデルは、第1のトランスコーディングモデルであり;
前記コンテンツの前記少なくとも一部は、前記コンテンツの第1の部分であり;及び
前記一組の動作は:
一組のトランスコーディングモデルから、前記コンテンツをトランスコーディングするための第2のトランスコーディングモデルを決定すること;及び
前記決定されたトランスコーディングモデルを使用して、前記コンテンツの第2の部分をトランスコーディングし、前記要求解像度を有する前記トランスコーディングされたコンテンツを更に生成すること
を更に有する、項目1に記載のシステム。
[項目5]
前記クライアントデバイスは、第1のクライアントデバイスであり;
前記コンテンツの要求は、コンテンツの第1の要求であり;及び
前記一組の動作は:
前記トランスコーディングされたコンテンツをデータストアに記憶すること;
第2のクライアントデバイスから、前記コンテンツの第2の要求を受信すること;及び
前記コンテンツの前記第2の要求に応答して、前記データストアから前記トランスコーディングされたコンテンツを提供すること
を更に有する、項目1に記載のシステム。
[項目6]
前記一組の動作は:
前記CDNのノードから、前記トランスコーディングされたコンテンツの要求を受信すること;及び
前記CDNの前記ノードに、前記トランスコーディングされたコンテンツを提供すること
を更に有する、項目1に記載のシステム。
[項目7]
前記要求されたフォーマットの情報は、オーディオの要求されたフォーマットの情報又はビデオの要求されたフォーマットの情報のうちの少なくとも1つを含む、項目1に記載のシステム。
[項目8]
トランスコーディングレシピを使用してコンテンツをトランスコーディングする方法であって:
コンテンツ配信ネットワーク(CDN)のノードから、コンテンツ及び以下:
前記コンテンツの第1のサブパートのための第1のトランスコーディングモデル;及び
前記コンテンツの第2のサブパートのための第2のトランスコーディングモデル
を示すトランスコーディングレシピを受信する段階;
前記第1のトランスコーディングモデルを使用して、前記コンテンツの前記第1のサブパートをトランスコーディングし、第1のトランスコーディングされたサブパートを生成する段階;
前記第2のトランスコーディングモデルを使用して、前記コンテンツの前記第2のサブパートをトランスコーディングし、第2のトランスコーディングされたサブパートを生成する段階;及び
前記第1のトランスコーディングされたサブパート及び前記第2のトランスコーディングされたサブパートを含むトランスコーディングされたコンテンツをクライアントデバイスに提供する段階
を備える、方法。
[項目9]
前記クライアントデバイスから前記コンテンツの要求を受信する段階;
を更に備え、前記第1のサブパート及び前記第2のサブパートは、前記要求を受信することに少なくとも部分的に基づいてトランスコーディングされる、項目8に記載の方法。
[項目10]
前記コンテンツの前記要求は、要求されたフォーマットの情報を含み;及び
前記トランスコーディングレシピは、前記要求されたフォーマットの情報に少なくとも部分的に基づいて決定される、項目9に記載の方法。
[項目11]
前記クライアントデバイスは、第1のクライアントデバイスであり;
前記方法は:
前記トランスコーディングされたコンテンツをデータストアに記憶する段階;
第2のクライアントデバイスから、前記コンテンツの要求を受信する段階;及び
前記コンテンツの前記要求に応答して、前記データストアから前記トランスコーディングされたコンテンツを提供する段階
を更に備える、項目8に記載の方法。
[項目12]
前記コンテンツの前記第1のサブパートは、前記コンテンツのビデオトラックであり;及び
前記コンテンツの前記第2のサブパートは、前記コンテンツのオーディオトラックである、項目8に記載の方法。
[項目13]
前記CDNのノードから、前記トランスコーディングされたコンテンツの要求を受信する段階;及び
前記CDNの前記ノードに、前記トランスコーディングされたコンテンツを提供する段階
を更に備える、項目8に記載の方法。
[項目14]
コンテンツプロバイダからのコンテンツをトランスコーディングする方法であって:
クライアントデバイスから、コンテンツ配信ネットワーク(CDN)のコンテンツの要求を受信する段階、ここで、前記コンテンツの要求は、前記コンテンツの解像度とは異なる要求解像度を示す要求されたフォーマットの情報を含む;
一組のトランスコーディングモデルから、前記コンテンツをトランスコーディングするためにトランスコーディングモデルを決定する段階;
前記決定されたトランスコーディングモデルを使用して、前記コンテンツの少なくとも一部をトランスコーディングし、前記要求解像度を有するトランスコーディングされたコンテンツを生成する段階;及び
前記コンテンツの要求に応答して、前記トランスコーディングされたコンテンツを前記クライアントデバイスに提供する段階
を備える、方法。
[項目15]
前記トランスコーディングモデルを決定する段階は:
前記コンテンツからコンテンツフレームを選択する段階;
前記コンテンツフレームをダウンスケーリングする段階;
前記ダウンスケーリングされたコンテンツフレームを:
第1のトランスコーディングされたフレームを生成する第1のトランスコーディングモデル;及び
第2のトランスコーディングされたフレームを生成する第2のトランスコーディングモデル
を使用して処理する段階;及び
前記トランスコーディングモデルを決定するために、前記コンテンツフレームに基づいて、前記第1のトランスコーディングされたフレーム及び前記第2のトランスコーディングされたフレームを評価する段階、ここで、前記トランスコーディングモデルは、前記第1のトランスコーディングモデル又は前記第2のトランスコーディングモデルのいずれかである
を有する、項目14に記載の方法。
[項目16]
前記トランスコーディングモデルを決定する段階は、前記コンテンツフレームのオブジェクトを認識する段階を更に有し;及び
前記第1のトランスコーディングされたフレーム及び前記第2のトランスコーディングされたフレームは、前記トランスコーディングモデルを決定するために前記コンテンツフレームの前記認識されたオブジェクトに少なくとも部分的に基づいて更に評価される、項目15に記載の方法。
[項目17]
前記トランスコーディングモデルは、第1のトランスコーディングモデルであり;
前記コンテンツの前記少なくとも一部は、前記コンテンツの第1の部分であり;及び
前記方法は:
一組のトランスコーディングモデルから、前記コンテンツをトランスコーディングするための第2のトランスコーディングモデルを決定する段階;及び
前記決定されたトランスコーディングモデルを使用して、前記コンテンツの第2の部分をトランスコーディングし、前記要求解像度を有する前記トランスコーディングされたコンテンツを更に生成する段階
を更に備える、項目14に記載の方法。
[項目18]
前記クライアントデバイスは、第1のクライアントデバイスであり;
前記コンテンツの要求は、コンテンツの第1の要求であり;及び
前記方法は:
前記トランスコーディングされたコンテンツをデータストアに記憶する段階;
第2のクライアントデバイスから、前記コンテンツの第2の要求を受信する段階;及び
前記コンテンツの前記第2の要求に応答して、前記データストアから前記トランスコーディングされたコンテンツを提供する段階
を更に備える、項目14に記載の方法。
[項目19]
前記CDNのノードから、前記トランスコーディングされたコンテンツの要求を受信する段階;及び
前記CDNの前記ノードに、前記トランスコーディングされたコンテンツを提供する段階
を更に備える、項目14に記載の方法。
[項目20]
前記要求されたフォーマットの情報は、オーディオの要求されたフォーマットの情報又はビデオの要求されたフォーマットの情報のうちの少なくとも1つを含む、項目14に記載の方法。
[項目21]
システムであって:
少なくとも1つのプロセッサ;及び
前記少なくとも1つのプロセッサに動作可能に接続されているとともに、前記少なくとも1つのプロセッサによって実行されると、前記システムに、一組の動作を実行させる命令を記憶するメモリ
を備え、前記一組の動作は:
コンテンツソースから、コンテンツのインジケーションを受信すること;
前記コンテンツをデータストアに記憶すること;
前記コンテンツに基づいてコンテンツハッシュを生成すること;
前記コンテンツハッシュを、分散台帳におけるコンテンツレコードとして記憶すること;
クライアントデバイスから、前記コンテンツの要求を受信すること;及び
前記要求に応答して、前記データストアから前記コンテンツの少なくとも一部を提供すること
を有する、システム。
[項目22]
前記一組の動作は:
前記コンテンツに関連付けられたスマートコントラクトを生成すること、ここで、前記スマートコントラクトは、トリガに関連付けられている;
前記クライアントデバイスからの前記コンテンツの前記要求に基づいて前記トリガを識別すること;及び
前記トリガを識別することに応答して、前記スマートコントラクトを実行して、前記分散台帳において新たなレコードを生成すること
を更に有する、項目21に記載のシステム。
[項目23]
前記一組の動作は:
前記分散台帳を処理して、少なくとも前記新たなレコードを識別すること;及び
前記新たなレコードに少なくとも部分的に基づいて、前記コンテンツに関連付けられた会計インジケーションを生成すること;及び
前記会計インジケーションを前記コンテンツソースに提供すること
を更に有する、項目22に記載のシステム。
[項目24]
前記コンテンツハッシュは、第1のコンテンツハッシュであり、前記一組の動作は:
前記クライアントデバイスから、第2のコンテンツハッシュを含むバリデーション要求を受信すること;
前記第1のコンテンツハッシュが前記第2のコンテンツハッシュと一致する場合に前記コンテンツがバリデートされると決定すること;及び
前記バリデーション要求に応答して、前記コンテンツがバリデートされているというインジケーションを提供すること
を更に有する、項目21に記載のシステム。
[項目25]
前記コンテンツのインジケーションは、前記コンテンツに関連付けられたメタデータを更に含み;及び
前記メタデータは、前記コンテンツハッシュを生成するのに使用されない、項目21に記載のシステム。
[項目26]
前記メタデータの少なくとも一部は、前記コンテンツレコードに記憶される、項目25に記載のシステム。
[項目27]
前記メタデータの少なくとも一部は、メタデータレポジトリに記憶され、前記コンテンツハッシュに関連付けられている、項目25に記載のシステム。
[項目28]
コンテンツ配信ネットワーク(CDN)のコンテンツのためのスマートコントラクトを生成する方法であって:
コンテンツソースから、コンテンツのインジケーションを受信する段階;
前記コンテンツに関連付けられたスマートコントラクトを生成する段階、ここで、前記スマートコントラクトは、トリガに関連付けられている;
前記スマートコントラクトを分散台帳に記憶する段階;
クライアントデバイスから、前記コンテンツの要求を受信する段階;
前記クライアントデバイスからの前記コンテンツの前記要求に基づいて前記トリガを識別する段階;
前記トリガを識別することに応答して、前記スマートコントラクトを実行して、前記分散台帳における新たなレコードを生成する段階;及び
前記要求に応答して、前記コンテンツの少なくとも一部を提供する段階
を備える、方法。
[項目29]
前記分散台帳を処理して、少なくとも前記新たなレコードを識別する段階;及び
前記新たなレコードに少なくとも部分的に基づいて、前記コンテンツに関連付けられた会計インジケーションを生成する段階;及び
前記会計インジケーションを前記コンテンツソースに提供する段階
を更に備える、項目28に記載の方法。
[項目30]
前記コンテンツに基づいてコンテンツハッシュを生成する段階;
前記コンテンツハッシュを、前記分散台帳におけるコンテンツレコードとして記憶する段階
を更に備える、項目28に記載の方法。
[項目31]
前記コンテンツハッシュは、第1のコンテンツハッシュであり、前記方法は:
前記クライアントデバイスから、第2のコンテンツハッシュを含むバリデーション要求を受信する段階;
前記第1のコンテンツハッシュが前記第2のコンテンツハッシュと一致する場合に前記コンテンツがバリデートされると決定する段階;及び
前記バリデーション要求に応答して、前記コンテンツがバリデートされているというインジケーションを提供する段階
を更に備える、項目30に記載の方法。
[項目32]
前記コンテンツのインジケーションは、前記コンテンツに関連付けられたメタデータを更に含み;及び
前記メタデータは、前記コンテンツハッシュを生成するのに使用されない、項目30に記載の方法。
[項目33]
前記コンテンツは、前記コンテンツソースからのストリーミングコンテンツのサブパートである、項目28に記載の方法。
[項目34]
コンテンツ配信ネットワーク(CDN)にコンテンツを追加する方法であって:
コンテンツソースから、コンテンツのインジケーションを受信する段階;
前記コンテンツをデータストアに記憶する段階;
前記コンテンツに基づいてコンテンツハッシュを生成する段階;
前記コンテンツハッシュを、分散台帳におけるコンテンツレコードとして記憶する段階;
クライアントデバイスから、前記コンテンツの要求を受信する段階;及び
前記要求に応答して、前記データストアからの前記コンテンツの少なくとも一部を提供する段階
を備える、方法。
[項目35]
前記コンテンツに関連付けられたスマートコントラクトを生成する段階、ここで、前記スマートコントラクトは、トリガに関連付けられている;
前記クライアントデバイスからの前記コンテンツの前記要求に基づいて前記トリガを識別する段階;及び
前記トリガを識別することに応答して、前記スマートコントラクトを実行して、前記分散台帳において新たなレコードを生成する段階
を更に備える、項目34に記載の方法。
[項目36]
前記分散台帳を処理して、少なくとも前記新たなレコードを識別する段階;及び
前記新たなレコードに少なくとも部分的に基づいて、前記コンテンツに関連付けられた会計インジケーションを生成する段階;及び
前記会計インジケーションを前記コンテンツソースに提供する段階
を更に備える、項目35に記載の方法。
[項目37]
前記コンテンツハッシュは、第1のコンテンツハッシュであり、前記方法は:
前記クライアントデバイスから、第2のコンテンツハッシュを含むバリデーション要求を受信する段階;
前記第1のコンテンツハッシュが前記第2のコンテンツハッシュと一致する場合に前記コンテンツがバリデートされると決定する段階;及び
前記バリデーション要求に応答して、前記コンテンツがバリデートされているというインジケーションを提供する段階
を更に備える、項目34に記載の方法。
[項目38]
前記コンテンツのインジケーションは、前記コンテンツに関連付けられたメタデータを更に含み;及び
前記メタデータは、前記コンテンツハッシュを生成するのに使用されない、項目34に記載の方法。
[項目39]
前記メタデータの少なくとも一部は、前記コンテンツレコードに記憶される、項目38に記載の方法。
[項目40]
前記メタデータの少なくとも一部は、メタデータレポジトリに記憶され、前記コンテンツハッシュに関連付けられている、項目38に記載の方法。
図1A
図1B
図1C
図2A
図2B
図2C
図3A
図3B
図4
【国際調査報告】