Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7609515B2 - Content distribution using distributed ledger and AI-based transcoding technology - Google Patents
[go: Go Back, main page]

JP7609515B2 - Content distribution using distributed ledger and AI-based transcoding technology - Google Patents

Content distribution using distributed ledger and AI-based transcoding technology Download PDF

Info

Publication number
JP7609515B2
JP7609515B2 JP2023518053A JP2023518053A JP7609515B2 JP 7609515 B2 JP7609515 B2 JP 7609515B2 JP 2023518053 A JP2023518053 A JP 2023518053A JP 2023518053 A JP2023518053 A JP 2023518053A JP 7609515 B2 JP7609515 B2 JP 7609515B2
Authority
JP
Japan
Prior art keywords
content
transcoding
transcoded
model
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2023518053A
Other languages
Japanese (ja)
Other versions
JP2023544106A (en
JP2023544106A5 (en
Inventor
エム. ケイシー、スティーブン
オプファーマン、ステファン
Original Assignee
センチュリーリンク インテレクチュアル プロパティー エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by センチュリーリンク インテレクチュアル プロパティー エルエルシー filed Critical センチュリーリンク インテレクチュアル プロパティー エルエルシー
Publication of JP2023544106A publication Critical patent/JP2023544106A/en
Publication of JP2023544106A5 publication Critical patent/JP2023544106A5/ja
Application granted granted Critical
Publication of JP7609515B2 publication Critical patent/JP7609515B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234318Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into objects, e.g. MPEG-4 objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Compounds Of Alkaline-Earth Elements, Aluminum Or Rare-Earth Metals (AREA)
  • Solid-Sorbent Or Filter-Aiding Compositions (AREA)

Description

関連出願への相互参照
本出願は、「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国際出願であり、これらの米国仮特許出願は、その全体が参照によって本明細書に組み込まれる。
CROSS-REFERENCE TO RELATED APPLICATIONS This application is a PCT International application claiming the benefit of U.S. Provisional Patent Application No. 63/082,677, filed September 24, 2020, entitled “Content Delivery Using Distibuted Ledger and AI-Based Transcoding Technologies,” and U.S. Provisional Patent Application No. 63/082,704, filed September 24, 2020, entitled “Content Delivery Using Distibuted Ledger and AI-Based Transcoding Technologies,” which are incorporated by reference in their entireties herein.

コンテンツ配信ネットワーク(CDN)を介した配信のためにコンテンツを追加することに関連付けられた複雑性は、増加したオーバヘッド、不要な遅延をもたらすとともに、ヒューマンエラーの可能性を導入し得る。加えて、公開者又は他のコンテンツソースから受信されるコンテンツは、本来であれば消費者による消費のためにCDNを介して利用可能であり得る品質のレベルにはない場合がある。例えば、コンテンツは、より低い解像度にあるか、又はより少ないオーディオチャネルを有し得る。 The complexities associated with adding content for distribution via a content delivery network (CDN) can result in increased overhead, unnecessary delays, and introduce the potential for human error. Additionally, the content received from a publisher or other content source may not be at a level of quality that would otherwise be available via a CDN for consumption by consumers. For example, the content may be at a lower resolution or have fewer audio channels.

これら及び他の一般的な考慮事項に関して、本明細書において開示される態様がなされている。また、比較的特定の問題が論述されている場合があるが、例は、背景技術又は本開示の他の箇所において識別される特定の問題の解決に限定されるものではないことが理解されるべきである。 It is with respect to these and other general considerations that the aspects disclosed herein are made. And, although relatively specific problems may be discussed, it should be understood that the examples are not limited to solving any particular problem identified in the background or elsewhere in this disclosure.

本開示の例は、分散台帳及びAIベーストランスコーディング技術を使用するコンテンツ配信に関する。例において、コンテンツソースから受信されるコンテンツは、コンテンツ配信ネットワーク(CDN)を介して配信され得るものと比較してより低い品質又は異なるフォーマットである。したがって、一組のAIベーストランスコーディングモデルが、コンテンツをトランスコーディングする際に用いるトランスコーディングモデルを識別するために評価される。幾つかの例では、例えば、コンテンツ内の変化するコンテンツタイプ(例えば、スポーツサブパート、広告サブパート等)に適応するために、コンテンツの異なる部分に複数のトランスコーディングモデルが使用される。トランスコーディングは、CDNのエッジノードにおいて行われてよく、それにより、オリジナルのより低い品質のコンテンツがCDN内で送信され、それによって、CDNリソースが節約される。加えて、トランスコーディングされたコンテンツはキャッシュされてよく、それにより、AIベーストランスコーディング技法は、コンテンツの全ての要求に応答して適用される必要はない。 An example of the present disclosure relates to content delivery using distributed ledgers and AI-based transcoding techniques. In an example, content received from a content source is of lower quality or a different format compared to what can be delivered via a content delivery network (CDN). Thus, a set of AI-based transcoding models is evaluated to identify a transcoding model to use in transcoding the content. In some examples, multiple transcoding models are used for different portions of the content, for example to accommodate changing content types within the content (e.g., sports subparts, advertisement subparts, etc.). The transcoding may be performed at an edge node of the CDN, whereby the original lower quality content is transmitted within the CDN, thereby conserving CDN resources. Additionally, the transcoded content may be cached, whereby the AI-based transcoding techniques do not need to be applied in response to every request for the content.

この発明の概要は、詳細な説明において以下で更に説明される概念からの選択を、簡略化された形式において導入するために提供される。この発明の概要は、特許請求された主題の重要な特徴又は必須の特徴を識別することも、特許請求された主題の範囲を限定するために使用されることも意図されていない。例の追加的な態様、特徴、及び/又は利点は、部分的には以下の説明において記載され、部分的には説明から明らかであり、又は、本開示の実践によって学習され得る。 This Summary is provided to introduce in a simplified form a selection of concepts further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Additional aspects, features, and/or advantages of examples will be set forth in part in the description that follows, and in part will be apparent from the description, or may be learned by practice of the disclosure.

以下の図を参照して非限定的及び非網羅的な例が説明される。 Non-limiting and non-exhaustive examples are described with reference to the following figures:

分散台帳及びAIベーストランスコーディング技術を使用するコンテンツ配信の態様が実行される例示のシステムの概要を示す図である。FIG. 1 illustrates an overview of an exemplary system in which aspects of content distribution using distributed ledgers and AI-based transcoding techniques may be implemented.

例示の分散台帳エンジンの概要を示す図である。FIG. 1 illustrates an overview of an example distributed ledger engine.

AIベーストランスコーディングを実行する例示のコンテンツプロセッサの概要を示す図である。FIG. 1 illustrates an overview of an exemplary content processor that performs AI-based transcoding.

本明細書において説明される分散台帳技法に従ってCDNにコンテンツを追加する例示の方法の概要を示す図である。FIG. 1 illustrates an overview of an example method for adding content to a CDN in accordance with the distributed ledger techniques described herein.

本明細書において説明される分散台帳技法に従ってコンテンツに関連付けられたトリガを処理する例示の方法の概要を示す図である。FIG. 1 illustrates an overview of an example method for processing triggers associated with content in accordance with the distributed ledger techniques described herein.

本明細書において説明される分散台帳技法に従ってコンテンツをバリデートする例示の方法の概要を示す図である。FIG. 1 illustrates an overview of an example method for validating content in accordance with the distributed ledger techniques described herein.

本明細書において説明されるAIベーストランスコーディング技術に係る、コンテンツをトランスコーディングする例示の方法の概要を示す図である。FIG. 1 illustrates an overview of an exemplary method for transcoding content in accordance with the AI-based transcoding techniques described herein.

本明細書において説明されるAIベーストランスコーディング技術に係る、トランスコーディングモデルを選択する例示の方法の概要を示す図である。FIG. 2 illustrates an overview of an example method for selecting a transcoding model in accordance with the AI-based transcoding techniques described herein.

本実施形態のうちの1つ又は複数が実装され得る適した動作環境の一例を示す図である。FIG. 1 illustrates an example of a suitable operating environment in which one or more of the present embodiments may be implemented.

以下の詳細な説明では、本明細書の一部を形成し、特定の実施形態又は例が例示として示されている添付図面に対して参照がなされる。本開示から逸脱することなく、これらの態様は、組み合わされてよく、他の態様が利用されてよく、構造的な変更がなされてよい。実施形態は、方法、システム又はデバイスとして実践されてよい。したがって、実施形態は、ハードウェアの実装、完全にソフトウェアの実装、又はソフトウェア及びハードウェアの態様を組み合わせる実装の形態を取ってよい。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、本開示の範囲は添付の特許請求の範囲及びそれらの均等物によって定義される。 In the following detailed description, reference is made to the accompanying drawings, which form a part of this specification, and in which specific embodiments or examples are shown by way of illustration. These aspects may be combined, other aspects may be utilized, and structural changes may be made without departing from the disclosure. The embodiments may be practiced as methods, systems, or devices. Thus, the embodiments may take the form of a hardware implementation, an entirely software implementation, or an implementation combining software and hardware aspects. Therefore, the following detailed description is not to be taken in a limiting sense, and the scope of the disclosure is defined by the appended claims and their equivalents.

コンテンツ配信ネットワーク(CDN)は、クライアントデバイスからの要求を処理するのに使用されるノードのセットを含む。例えば、CDNは、コンテンツ公開者、ビデオオンデマンド(VOD)サービス、又はストリーミングプラットフォーム等のコンテンツソースからのコンテンツを配信してよい。したがって、コンテンツプロバイダからのコンテンツは、クライアントデバイスを使用する消費者によって、CDNを介してアクセスされる。しかしながら、CDNにコンテンツを追加することは、条項及び条件に対して(例えば、コンテンツソース及びCDNの間で)同意すること、(例えば、コンテンツソースと、ロイヤリティ支払いのために、等で)コントラクト及び請求手配を用意すること、受信されたコンテンツ及び提供されたサービスをバリデートすること、及び最終的に支払いを処理すること等の関連付けられたオーバヘッドを有し得る。 A content delivery network (CDN) includes a set of nodes that are used to process requests from client devices. For example, a CDN may deliver content from a content source, such as a content publisher, a video on demand (VOD) service, or a streaming platform. The content from the content provider is then accessed through the CDN by consumers using client devices. However, adding content to a CDN may have associated overhead, such as agreeing to terms and conditions (e.g., between the content source and the CDN), setting up contracts and billing arrangements (e.g., with the content source, for royalty payments, etc.), validating the received content and services provided, and finally processing payments.

加えて、コンテンツソースから受信されるコンテンツは、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ビット)、より低いビットレート、及び/又は異なるコーデック(例えば、別個のトラックを有するコーデック対オブジェクトベース空間オーディオコーデック)を有するオーディオを提供する。 In addition, the content received from the content source may be at a quality level that is less than the quality level that is available via the CDN. For example, the content source may provide "HD" content (e.g., having a resolution of 1280x720 or 1920x1080), while the CDN may deliver content in a higher resolution format such as "4K" (e.g., 3840x2160, 4096x2160, etc.) or "8K" (e.g., 7680x4320, 8192x5120, etc.). Similar issues may exist with respect to audio (e.g., as a standalone audio track, along with a video track/stream, etc.), where the content source provides audio with a lower number of channels (e.g., 2.0 vs. 5.1 or 7.1), a lower bit depth (e.g., 16-bit vs. 24-bit), a lower bit rate, and/or a different codec (e.g., a codec with a separate track vs. an object-based spatial audio codec) compared to what may be delivered by the CDN.

したがって、本開示の態様は、分散台帳及び人工知能ベース(AIベース)トランスコーディング技術を使用するコンテンツ配信に関する。例において、コンテンツソースから受信されたコンテンツのためにハッシュが生成される。ハッシュは、コンテンツレコードとして分散台帳(例えば、ブロックチェーンのブロック)に組み込まれ、それによって、ハッシュが不変であり、かつ後続の処理のために利用可能であることが確実になる。例えば、記憶されたハッシュは、コンテンツバリデーションを実行するのに使用されてよく、それによって、コンテンツのソース、コンテンツのタイトル、及び/又はコンテンツに関連付けられた俳優/女優、監督、又は他のアーティストが検証される。そのようなメタデータは、コンテンツハッシュとともに記憶されてもよいし、又は、メタデータは、データストアに記憶され、コンテンツハッシュに関連付けられてもよい。 Accordingly, aspects of the present disclosure relate to content distribution using a distributed ledger and artificial intelligence-based (AI-based) transcoding techniques. In an example, a hash is generated for content received from a content source. The hash is incorporated into a distributed ledger (e.g., a block in a blockchain) as a content record, thereby ensuring that the hash is immutable and available for subsequent processing. For example, the stored hash may be used to perform content validation, thereby verifying the source of the content, the title of the content, and/or the actors/actresses, directors, or other artists associated with the content. Such metadata may be stored along with the content hash, or the metadata may be stored in a data store and associated with the content hash.

別の例として、スマートコントラクトが、生成され、コンテンツハッシュに関連付けられてよい。例えば、スマートコントラクトは、コンテンツに関連付けられたCDNサービス(例えば、ストレージサービス、配信サービス、コンテンツトランスコーディングサービス等)のためのもの、コンテンツソースからのライセンシング(例えば、コンテンツ品質に基づくコンテンツ再生のための支払い)のためのもの、及び/又はロイヤリティ(例えば、音楽ロイヤリティ、俳優/女優ロイヤリティ、監督ロイヤリティ等)のためのものであってよい。トリガが、スマートコントラクトに関連付けられてよく、それにより、スマートコントラクトは、トリガの結果として実行される。例示のトリガとしては、CDNを介したコンテンツの配信、及びクライアントデバイスにおけるコンテンツ再生の開始が挙げられるが、これらに限定されない。したがって、分散台帳は、スマートコントラクトに対する当事者が自身の義務を維持し、特定の条件(例えば、配信のためのCDNサービス支払い、コンテンツ再生のためのロイヤリティ支払い等)に際して支払いを受けることを確実にするのに使用されてよい。 As another example, smart contracts may be generated and associated with the content hashes. For example, smart contracts may be for CDN services associated with the content (e.g., storage services, distribution services, content transcoding services, etc.), for licensing from the content source (e.g., payment for content playback based on content quality), and/or for royalties (e.g., music royalties, actor/actress royalties, director royalties, etc.). Triggers may be associated with the smart contracts such that the smart contracts are executed as a result of the triggers. Exemplary triggers include, but are not limited to, delivery of content via a CDN and initiation of content playback at a client device. Thus, the distributed ledger may be used to ensure that parties to smart contracts maintain their obligations and receive payment upon certain conditions (e.g., CDN service payment for delivery, royalty payment for content playback, etc.).

AIベーストランスコーディング技法は、CDNを介して配信され得るものと比較してより低い品質又は異なるフォーマットであるコンテンツソースから受信されたコンテンツをトランスコーディングするのに使用される。例えば、CDNは、4K又は8Kコンテンツを配信してよく、それにより、コンテンツソースから受信されたHD又は標準精細度(SD)コンテンツが本明細書において説明されるAIベーストランスコーディング技法に従ってアップスケーリングされる。結果として、コンテンツソースは、より高い品質のビデオデータを処理するために高価なビデオ機器又はより強力なコンピュータハードウェアを購入する必要はなく、代わりに、CDNによって提供されるそのような機能を利用し得る。加えて、コンテンツは、CDN内で(例えば、オリジンノードを介してエッジノードに)(例えば、コンテンツソースから受信されたような)より低い解像度のフォーマットにおいて配信されてよく、コンテンツは、クライアントデバイスへの配信に先立って、又はこれと同時発生的に、エッジノードにおいてアップスケーリングされてよい。そのような技法は、CDNを介したコンテンツの配信に関連付けられた帯域幅及び記憶要件を節約し得る一方、依然として高品質のエンドユーザエクスペリエンスを提供する。 AI-based transcoding techniques are used to transcode content received from a content source that is of lower quality or a different format compared to what can be delivered via a CDN. For example, a CDN may deliver 4K or 8K content, whereby HD or standard definition (SD) content received from the content source is upscaled according to the AI-based transcoding techniques described herein. As a result, the content source does not need to purchase expensive video equipment or more powerful computer hardware to process higher quality video data, but instead can take advantage of such capabilities provided by the CDN. In addition, content may be delivered within the CDN (e.g., via an origin node to an edge node) in a lower resolution format (e.g., as received from the content source), and the content may be upscaled at the edge node prior to or concurrently with delivery to a client device. Such techniques may conserve bandwidth and storage requirements associated with delivering content via a CDN, while still providing a high-quality end-user experience.

本明細書において使用される場合、コンテンツは、例の中でもとりわけ、ストリームとして又はファイルとしてのビデオ及び/又はオーディオを含むが、これらに限定されない。例えば、ビデオファイル又はストリームは、1つ又は複数のオーディオトラックを含んでよい。別の例として、ファイル又はストリームは、ビデオのみ又はオーディオのみであってよい。ストリームは、リアルタイム又はライブストリームである必要はなく、事前記録されたコンテンツのストリームであってよい。例えば、ストリーミングコンテンツは、CDNによって、サブパートにおいてコンテンツソースから(例えば、Dynamic Adaptive Streaming over HTTP(DASH)又はReal-time Transport Protocol(RTP)等を使用して)受信されてよい。コンテンツソースは、例の中でもとりわけ、公開者(例えば、映画スタジオ、テレビジョンスタジオ等)、VODサービス、又はストリーミングプラットフォームであってよい。それゆえ、例示のコンテンツ及びコンテンツソースが本明細書において説明される一方、本技法は、多様な他のコンテンツ及びコンテンツソースのうちの任意のものに適用されてよいことが理解されるであろう。 As used herein, content includes, but is not limited to, video and/or audio as a stream or as a file, among other examples. For example, a video file or stream may include one or more audio tracks. As another example, a file or stream may be video only or audio only. A stream need not be a real-time or live stream, but may be a stream of pre-recorded content. For example, streaming content may be received by a CDN in subparts from a content source (e.g., using Dynamic Adaptive Streaming over HTTP (DASH) or Real-time Transport Protocol (RTP), etc.). A content source may be a publisher (e.g., a movie studio, a television studio, etc.), a VOD service, or a streaming platform, among other examples. Thus, while example content and content sources are described herein, it will be understood that the techniques may be applied to any of a variety of other content and content sources.

コンテンツは、コンテンツソースからウェブサイトを介して受信されてよい。例えば、ウェブサイトは、ユーザがコンテンツを選択し、タイトル及び俳優/女優、監督、又は他の関連付けられたアーティストのリスト等の関連付けられたメタデータを指定することを可能にしてよい。他の技法が、アプリケーションプログラミングインターフェース(API)を使用して等で、コンテンツソースからコンテンツを受信するのに使用されてよい。幾つかの例では、メタデータが、コンテンツソースによって管理されるメタデータレポジトリ又はサードパーティメタデータレポジトリ等の、別のデータソースから取得されてよい。したがって、コンテンツは、CDNに転送されてよく、ここで、コンテンツに関連付けられたコンテンツレコードが、分散台帳において生成される。コンテンツレコードは、コンテンツハッシュを含み、これは、多様なハッシュ化アルゴリズムのうちの任意のものを使用して生成されてよい。例示のハッシュ化アルゴリズムとしては、Secure Hash Algorithm 2(SHA-2)ハッシュ(例えば、SHA-256、SHA-512等)又はRIPE Message Digest(RIPEMD)ハッシュ(例えば、RIPEMD-160、RIPEMD-256等)が挙げられるが、これらに限定されない。コンテンツハッシュは、単独で又はコンテンツとの組み合わせにおいてのいずれかでメタデータに基づいて生成されるのではなく、コンテンツ自体に基づいて生成されてよい。 The content may be received from the content source via a website. For example, the website may allow a user to select content and specify associated metadata, such as a title and a list of actors/actresses, directors, or other associated artists. Other techniques may be used to receive the content from the content source, such as using an application programming interface (API). In some examples, the metadata may be obtained from another data source, such as a metadata repository managed by the content source or a third-party metadata repository. The content may then be transferred to a CDN, where a content record associated with the content is generated in the distributed ledger. The content record includes a content hash, which may be generated using any of a variety of hashing algorithms. Exemplary hashing algorithms include, but are not limited to, a Secure Hash Algorithm 2 (SHA-2) hash (e.g., SHA-256, SHA-512, etc.) or a RIPE Message Digest (RIPEMD) hash (e.g., RIPEMD-160, RIPEMD-256, etc.). A content hash may be generated based on the content itself, rather than based on metadata, either alone or in combination with the content.

コンテンツハッシュは、ブロックチェーンのブロック等の分散台帳に記憶されてよい。幾つかの例では、コンテンツレコードは、コンテンツに関連付けられたメタデータの少なくとも一部を更に含む。他の例では、メタデータは、メタデータレポジトリ又は他のデータストアに記憶され、コンテンツハッシュに関連付けられてよい。メタデータは、同様にハッシュ化されてよく、メタデータハッシュは、コンテンツレコードの一部として記憶されてよく、それにより、メタデータの後続のバリデーションが実行されてよい。コンテンツレコードは、コンテンツがCDNによって受信された時点に関連付けられたタイムスタンプ、及び関連付けられたコンテンツソース情報(例えば、電子メールアドレス、請求先住所、会社名等)を更に含んでよい。 The content hash may be stored in a distributed ledger, such as a block of a blockchain. In some examples, the content record further includes at least a portion of metadata associated with the content. In other examples, the metadata may be stored in a metadata repository or other data store and associated with the content hash. The metadata may be hashed as well, and the metadata hash may be stored as part of the content record, thereby allowing subsequent validation of the metadata to be performed. The content record may further include a timestamp associated with when the content was received by the CDN, and associated content source information (e.g., email address, billing address, company name, etc.).

コンテンツに関連付けられた1つ又は複数のスマートコントラクトが生成されてよい。例えば、CDN及びコンテンツソースは、スマートコントラクトに対する当事者であってよく、ここで、CDNは、コンテンツを配信するための補償を受信し、コンテンツソースは、コンテンツの再生のための補償を受信する。他の例では、スマートコントラクトは、CDN又はコンテンツソース及び、ミュージシャン、俳優/女優、及び監督等の1つ又は複数の他の当事者の間で締結されてよく、それによって、そのような当事者がロイヤリティ支払いを受けることが可能になる。幾つかの事例では、スマートコントラクトは、CDNがコントラクトに対する唯一の当事者である場合に使用され、それによって、CDNがトリガの発生に基づいて分散台帳における解析を維持することが可能になる。 One or more smart contracts associated with the content may be created. For example, the CDN and the content source may be parties to a smart contract, where the CDN receives compensation for delivering the content and the content source receives compensation for playing the content. In other examples, a smart contract may be entered into between the CDN or the content source and one or more other parties, such as musicians, actors/actresses, and directors, thereby allowing such parties to receive royalty payments. In some cases, smart contracts are used where the CDN is the only party to the contract, thereby allowing the CDN to maintain analytics in a distributed ledger based on the occurrence of triggers.

スマートコントラクトは、コンテンツハッシュが記憶される分散台帳の一部であってもよいし、又は他の例では、異なる分散台帳であってもよい。例えば、異なる分散台帳は、異なる当事者のために使用されてよい(例えば、コンテンツソースごとに異なる分散台帳、特定のアーティストに対するロイヤリティ支払いを追跡するために同じ分散台帳を使用する、等)。別の例として、コンテンツソースは、それ自体の分散台帳を維持してよく、それにより、台帳ゲートウェイは、例の中でもとりわけ、コンテンツソース台帳及びCDN台帳の間でトランザクションを同期するか、又は、トリガについてのインジケーションを提供するのに使用されてよい。 The smart contract may be part of the distributed ledger where the content hashes are stored, or in other examples, may be a different distributed ledger. For example, different distributed ledgers may be used for different parties (e.g., a different distributed ledger for each content source, using the same distributed ledger to track royalty payments to a particular artist, etc.). As another example, a content source may maintain its own distributed ledger, whereby a ledger gateway may be used to synchronize transactions between the content source ledger and the CDN ledger or provide indications about triggers, among other examples.

スマートコントラクトに対する当事者は、分散台帳の実際のユーザである必要はなく、代わりにプレースホルダとして機能してよいことが理解されるであろう。例えば、ロイヤリティスマートコントラクトは、コンテンツに関連付けられたロイヤリティ支払いの会計を生成するのに使用可能であってよく、これは、コンテンツソース又は他の当事者に提供されてよく、それによって、最終的にロイヤリティの支払いがもたらされる。それゆえ、本明細書において説明されるスマートコントラクト及び分散台帳技法は、実際の値の交換をもたらさなくてよく、代わりに、CDNによって配信されるコンテンツに関する会計技法を容易にしてよい。 It will be understood that parties to a smart contract need not be actual users of the distributed ledger, but may instead act as a placeholder. For example, a royalty smart contract may be usable to generate an accounting of royalty payments associated with content, which may be provided to a content source or other party, which ultimately results in the payment of royalties. Thus, the smart contract and distributed ledger techniques described herein may not result in an actual exchange of value, but instead may facilitate accounting techniques for content delivered by a CDN.

トリガは、コンテンツ配信(例えば、クライアントデバイスへの送信、オリジン及びエッジノードの間の送信、ストリーミング又はダウンロードアクティビティ等)又はコンテンツ再生(例えば、コンテンツの再生/一時停止、早送り/巻き戻し、再生の早期終了等)に関するイベント等の多様なイベントのうちの任意のものであってよい。トリガが識別されると、トリガに関連付けられたコンテンツハッシュは、関連付けられたスマートコントラクトを識別及び実行するのに使用される。例示の分散台帳及びスマートコントラクト技法が本明細書において説明されているが、多様な他の技法のうちの任意のものが、CDNによって配信されるコンテンツに関連付けられたスマートコントラクトを生成及び実行するのに使用されてよいことが理解されるであろう。例えば、コンテンツハッシュは、使用される必要はなく、スマートコントラクトに関連付けられた識別子が、代わりにコンテンツ自体に関連付けられてよい。 The trigger may be any of a variety of events, such as events related to content delivery (e.g., transmission to a client device, transmission between origin and edge nodes, streaming or download activity, etc.) or content playback (e.g., playing/pausing content, fast forwarding/rewinding, early termination of playback, etc.). Once a trigger is identified, a content hash associated with the trigger is used to identify and execute an associated smart contract. Although example distributed ledger and smart contract techniques are described herein, it will be understood that any of a variety of other techniques may be used to generate and execute smart contracts associated with content delivered by a CDN. For example, a content hash need not be used, and an identifier associated with a smart contract may instead be associated with the content itself.

分散台帳は、その中のスマートコントラクトの当事者に起因する支払いの会計を生成するために処理されてよい。そのような処理は、周期的に(例えば、月に一度、半年に一度等)実行されてよく、会計のインジケーションは、コンテンツソース又は他の当事者に提供されてよい。例えば、コンテンツソースは、インジケーションを受信し、その後、これに応じてロイヤリティ支払いを処理してよい。別の例として、コンテンツソースは、インジケーションを受信し、コンテンツを配信する際に提供されたCDNサービスのためのCDNに対する支払いを処理してよい。 The distributed ledger may be processed to generate an accounting of payments due to the parties to the smart contracts therein. Such processing may be performed periodically (e.g., monthly, semi-annually, etc.) and an indication of the accounting may be provided to the content source or other parties. For example, the content source may receive the indication and then process royalty payments accordingly. As another example, the content source may receive the indication and process payments to a CDN for CDN services provided in delivering the content.

分散台帳は、コンテンツに関するバリデーションを実行するのに使用されてもよい。例えば、消費者は、コンテンツのソースをバリデートすることを望む場合もあるし、又は、他の例では、コンテンツに関連付けられた特定のメタデータ(例えば、コンテンツにおいて演じた俳優/女優が実際にその創作に関与したこと)をバリデートすること望む場合もある。したがって、コンテンツは、(例えば、消費者のクライアントデバイスにおいて、CDNのノードにおいて等で)ハッシュ化されてよく、コンテンツに関連付けられたコンテンツハッシュは、分散台帳において識別されてよい。コンテンツハッシュは、コンテンツに関連付けられたメタデータを識別するのに更に使用されてよく、それによって、ユーザがコンテンツに関連付けられたコンテンツソース及び関連付けられたメタデータを閲覧することが可能になる。 The distributed ledger may be used to perform validations on the content. For example, a consumer may wish to validate the source of the content, or in other instances, may wish to validate certain metadata associated with the content (e.g., that the actors/actresses who performed in the content were actually involved in its creation). Thus, the content may be hashed (e.g., at the consumer's client device, at a node in the CDN, etc.) and the content hash associated with the content may be identified in the distributed ledger. The content hash may be further used to identify the metadata associated with the content, thereby allowing a user to view the content source and associated metadata associated with the content.

上記で記載されたように、コンテンツソースからのコンテンツは、低品質である場合もあるし、又は、CDNによって配信され得るものとは異なるフォーマットである場合もある。したがって、AIベーストランスコーディング技法は、コンテンツを改善又は変更するのに使用されてよい。例において、一組のトランスコーディングモデルが、アップスケーリング又は他のビデオ高画質化技法を実行するのに使用される。当該一組のトランスコーディングモデルは、異なるコンテンツタイプに従ってトレーニング済みであってよい。例えば、異なるトランスコーディングモデルは、アクションコンテンツ、スポーツコンテンツ、アニメコンテンツ、リアリティコンテンツ、広告コンテンツ、及び白黒コンテンツのために存在してよい。トランスコーディングモデルは、限定されないが、コンテンツメタデータ(例えば、特定のコンテンツタイプを示し得るジャンル、俳優/女優等)、ビデオ解析(例えば、ビットレート、フレーム複雑度、明度/暗度等)、オリジナルコンテンツ解像度、ターゲットコンテンツ解像度、動きベクトル、生産年度、フォーマット又はコーデックタイプ、及び/又は消費者又は他のユーザから受信されたフィードバックを含む多様な基準に従って、当該一組のモデルから選択される。 As described above, content from a content source may be of lower quality or in a different format than what may be delivered by a CDN. Thus, AI-based transcoding techniques may be used to improve or modify the content. In an example, a set of transcoding models is used to perform upscaling or other video enhancement techniques. The set of transcoding models may be trained according to different content types. For example, different transcoding models may exist for action content, sports content, anime content, reality content, advertising content, and black and white content. Transcoding models are selected from the set of models according to a variety of criteria, including, but not limited to, content metadata (e.g., genre, actors/actresses, etc., which may indicate a particular content type), video analytics (e.g., bit rate, frame complexity, brightness/darkness, etc.), original content resolution, target content resolution, motion vectors, production year, format or codec type, and/or feedback received from consumers or other users.

例において、いずれのトランスコーディングモデルを適用すべきかを決定するために複数のトランスコーディングモデルが比較される。例えば、オブジェクト検出(例えば、無生物オブジェクト、アニメキャラクタ、俳優/女優等)が実行されてよく、それにより、複数のトランスコーディングモデルからのモデル処理結果は、いかに良好に検出されたオブジェクトがトランスコーディングされたかに少なくとも部分的に基づいて比較され得る。比較は、自動(例えば、トランスコーディングアーティファクトを検出すること、参照フレームを、トランスコーディングされたフレームと比較すること等)、及び/又は手動(例えば、ユーザ選択のために複数のトランスコーディングされたフレームを提示すること、再生後又は再生中の符号化品質に関するユーザフィードバックを求めること等)であってよい。例えば、ソースフレームは、ダウンスケーリングされてよく、それにより、ダウンスケーリングされたソースフレームが、複数のトランスコーディングモデルを使用してアップスケーリングされて、複数のトランスコーディングされたフレームが生成される。トランスコーディングされたフレームは、オリジナルソースフレームと比較されて、エラー及び品質損失が識別されてよく、それにより、最高品質(例えば、最低エラー、最低品質損失等)を呈するトランスコーディングモデルが選択されて、コンテンツがトランスコーディングされてよい。 In an example, multiple transcoding models are compared to determine which transcoding model should be applied. For example, object detection (e.g., inanimate objects, animated characters, actors/actresses, etc.) may be performed, whereby model processing results from multiple transcoding models may be compared based at least in part on how well detected objects are transcoded. The comparison may be automatic (e.g., detecting transcoding artifacts, comparing reference frames to transcoded frames, etc.) and/or manual (e.g., presenting multiple transcoded frames for user selection, asking for user feedback on encoding quality after or during playback, etc.). For example, a source frame may be downscaled, whereby the downscaled source frame is upscaled using multiple transcoding models to generate multiple transcoded frames. The transcoded frames may be compared to the original source frames to identify errors and quality loss, whereby the transcoding model exhibiting the highest quality (e.g., least errors, least quality loss, etc.) may be selected to transcode the content.

例において、複数のトランスコーディングモデルは、単一のコンテンツをトランスコーディングするのに使用され、ここで、1つのモデルは、コンテンツの1つのサブパートのために使用されてよく、一方、別のモデルは、異なるサブパートのために使用されてよい。例えば、スポーツブロードキャストは、スポーツトランスコーディングモデル、広告トランスコーディングモデル、及び「語り手の顔(talking heads)」又はコメンタリートランスコーディングモデルを使用して処理されてよい。上記で記載されたように、異なるトランスコーディングモデルが異なるコンテンツタイプのためにより良好に適していてよい。トランスコーディングモデル性能は、トランスコーディング中に周期的に評価されてよく、それにより、トランスコーディングモデルは、所与のサブパートについてのモデル性能に依存して変化し得る。幾つかの例では、コンテンツ解像度は、(例えば、ブロードキャストのスポーツセグメント及びその中の広告の間で)変化してよく、これは、モデル性能は再評価されるべきであることを示唆し得る。他の例では、オブジェクト検出は、ビデオフレームのコンテンツを決定するか又はオブジェクトが消失したときを識別するのに使用されてよく、その両方は、トランスコーディングモデル性能が再評価されるべきであることを示し得る。幾つかの事例では、コンテンツをトランスコーディングするために適用されるトランスコーディングモデルは、フレーム単位で、又は他の任意のレベルの粒度に従って(例えば、キーフレーム又はイントラフレーム毎、所定の数のフレームの後等)再評価されてよい。加えて、イントラフレーム、予測フレーム、及び/又は双方向フレームに異なるトランスコーディングモデルが適用されてよい。それゆえ、コンテンツをトランスコーディングするために1つのトランスコーディングモデルから別のトランスコーディングモデルにいつシフトすべきかを決定するのに多様な技法が使用されてよいことが理解されるであろう。同様に、そのような技法は、トランスコーディングと同時発生的に実行される必要はなく、コンテンツのいずれのサブパートをトランスコーディングするのにいずれのトランスコーディングモデルが使用されるべきかを指定するトランスコーディング「レシピ」を生成する前処理動作として実行されてよい。 In examples, multiple transcoding models are used to transcode a single piece of content, where one model may be used for one subpart of the content while another model may be used for a different subpart. For example, a sports broadcast may be processed using a sports transcoding model, an advertising transcoding model, and a "talking heads" or commentary transcoding model. As described above, different transcoding models may be better suited for different content types. Transcoding model performance may be evaluated periodically during transcoding, whereby the transcoding model may change depending on the model performance for a given subpart. In some examples, the content resolution may change (e.g., between a sports segment of a broadcast and the advertisements therein), which may suggest that model performance should be reevaluated. In other examples, object detection may be used to determine the content of a video frame or to identify when an object has disappeared, both of which may indicate that transcoding model performance should be reevaluated. In some cases, the transcoding model applied to transcode the content may be re-evaluated on a frame-by-frame basis or according to any other level of granularity (e.g., every key frame or intra frame, after a certain number of frames, etc.). In addition, different transcoding models may be applied to intra frames, predicted frames, and/or bidirectional frames. It will be appreciated that a variety of techniques may be used to determine when to shift from one transcoding model to another to transcode the content. Similarly, such techniques need not be performed contemporaneously with the transcoding, but may be performed as a pre-processing operation to generate a transcoding "recipe" that specifies which transcoding model should be used to transcode which sub-parts of the content.

同様の技法が、オーディオに、例えば、オーディオのみのコンテンツに、又はビデオコンテンツの一部として適用されてよいことが理解されるであろう。上記で説明されたビデオ技法と同様に、いずれのオーディオトランスコーディングモデルが適用されるべきかを決定するために複数のオーディオトランスコーディングモデルが評価されてよい。評価は、オーディオアーティファクト(例えば、人間の可聴範囲内のオーディオアーティファクト)、トランスコーディングオーディオの結果として得られるビットレート、エラー及び/又は品質損失を識別することを含んでよい。例において、いずれのオーディオトランスコーディングモデルを適用すべきかを評価することは、上記で論述されたビデオトランスコーディングモデル評価と同時発生的に行われる。それゆえ、ビデオトランスコーディングモデルの再評価をもたらすイベントは、オーディオトランスコーディングモデルの再評価を同様にもたらしてよい。同様に、オーディオトランスコーディングモデルの再評価をもたらすイベントは、ビデオトランスコーディングモデルの再評価をもたらしてよい。他の事例では、オーディオ及びビデオトランスコーディングモデルは、互いに別個に再評価される。ビデオトランスコーディングモデルは、オーディオトランスコーディングモデルに関連付けられてよく、それにより、両方のトランスコーディングモデルが同じタイプのコンテンツを処理するのに使用される。 It will be appreciated that similar techniques may be applied to audio, e.g., to audio-only content or as part of video content. Similar to the video techniques described above, multiple audio transcoding models may be evaluated to determine which audio transcoding model should be applied. The evaluation may include identifying audio artifacts (e.g., audio artifacts within the range of human hearing), bitrate, errors, and/or quality loss resulting from transcoding audio. In examples, evaluating which audio transcoding model should be applied is performed contemporaneously with the video transcoding model evaluation discussed above. Thus, an event that results in a re-evaluation of the video transcoding model may also result in a re-evaluation of the audio transcoding model. Similarly, an event that results in a re-evaluation of the audio transcoding model may result in a re-evaluation of the video transcoding model. In other instances, the audio and video transcoding models are re-evaluated separately from one another. A video transcoding model may be associated with an audio transcoding model, such that both transcoding models are used to process the same type of content.

図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)を含むものとして示されている。結果として、そのような同様の態様は、ノードごとに以下で詳細に再度説明される必要はない場合がある。 1A illustrates an overview of an example system 100 in which aspects of content distribution using distributed ledgers and AI-based transcoding techniques are implemented. As shown, the system 100 includes a content source 102, a gateway node 104, a gateway node 106, a local node 108, a client device 110, and a network 112. The content source 102, the gateway node 104, the gateway node 106, the local node 108, and the client device 110 are shown communicating through the network 112. The network 112 may include a local area network, a wide area network, one or more cellular networks, and/or the Internet, among other examples. The nodes 104, 106, and 108 are shown as including similar elements (e.g., data stores 118, 124, and 130; distributed ledger engines 120, 126, and 132; and content processors 122, 128, and 136). As a result, such similar aspects may not need to be described again in detail below for each node.

コンテンツソース102は、(例えば、クライアントデバイス110のクライアントアプリケーション138を使用する)消費者への配信のためにCDN140(例えば、破線ボックスによって示されているように、ゲートウェイノード104及び106、及び局所ノード108を含む)にコンテンツを提供する。例えば、コンテンツソース102に関連付けられたコンピューティングデバイスは、本明細書に説明される態様に従ってコンテンツを提供するためにCDN140(例えば、ノード104、106、又は108によって提供され得るような)によってホストされるウェブサイトにアクセスするのに使用されてよい。多様な他の技法のうちの任意のものが、コンテンツソース102からCDN140にコンテンツを送信するのに使用されてよい。他の例では、システム100に関して説明された例示のCDNの特定の要素は、サードパーティによって提供されてよく、及び/又は、特定の要素に関して本明細書において説明される機能は、多様な他の技法のうちの任意のものに従って配信されてよいことが理解されるであろう。 The content source 102 provides content to the CDN 140 (e.g., including gateway nodes 104 and 106 and local node 108, as shown by the dashed boxes) for distribution to consumers (e.g., using client application 138 on client device 110). For example, a computing device associated with the content source 102 may be used to access a website hosted by the CDN 140 (e.g., as may be provided by nodes 104, 106, or 108) to provide content in accordance with aspects described herein. Any of a variety of other techniques may be used to transmit content from the content source 102 to the CDN 140. It will be understood that in other examples, certain elements of the example CDN described with respect to system 100 may be provided by a third party and/or the functionality described herein with respect to certain elements may be distributed in accordance with any of a variety of other techniques.

コンテンツソース102は、データストア114及び分散台帳エンジン116を含むものとして示されている。例において、データストア114は、コンテンツソース102がCDN140に提供するコンテンツを記憶する。例えば、データストア114は、例の中でもとりわけ、コンテンツファイル及び/又はバッファコンテンツストリームを記憶する。分散台帳エンジン116は、コンテンツソース102に関連付けられた分散台帳を管理してよい。例えば、コンテンツソース102は、それが提供するコンテンツに関連付けられたレコードを含むそれ自体の分散台帳を維持してよい。他の例では、コンテンツソースは、分散台帳エンジンを含まなくてよい。 The content source 102 is shown as including a data store 114 and a distributed ledger engine 116. In examples, the data store 114 stores the content that the content source 102 provides to the CDN 140. For example, the data store 114 stores content files and/or buffered content streams, among other examples. The distributed ledger engine 116 may manage a distributed ledger associated with the content source 102. For example, the content source 102 may maintain its own distributed ledger that includes records associated with the content it provides. In other examples, the content source may not include a distributed ledger engine.

一例としてゲートウェイノード104を使用して、コンテンツが、コンテンツソース102から受信され、データストア118に記憶される。分散台帳エンジン120は、分散台帳においてコンテンツレコードを生成し、ここで、コンテンツレコードは、コンテンツハッシュ、関連付けられたメタデータ、及び/又は多様な他の情報のうちの任意のものを含んでよい。例において、コンテンツメタデータは、データストア118に記憶され、コンテンツハッシュに関連付けられる。幾つかの例では、分散台帳エンジン120は、コンテンツに関連付けられた1つ又は複数のスマートコントラクトを生成し、これは、コンテンツレコードと同じ又は異なる分散台帳に記憶されてよい。例において、生成されたスマートコントラクトは、コンテンツハッシュ及び/又は1つ又は複数のトリガに関連付けられる。幾つかの例では、分散台帳エンジン120は、CDN分散台帳、及び分散台帳エンジン116によって管理されるコンテンツソース分散台帳の間のゲートウェイとして機能してよい。例えば、トランザクションは、コンテンツソース台帳及びCDN台帳の中で同期されてよく、又は別の例として、例の中でもとりわけ、CDN140内で識別されたトリガについてインジケーションが提供されてよい。 Using the gateway node 104 as an example, content is received from the content source 102 and stored in the data store 118. The distributed ledger engine 120 generates a content record in the distributed ledger, where the content record may include a content hash, associated metadata, and/or any of a variety of other information. In an example, the content metadata is stored in the data store 118 and associated with the content hash. In some examples, the distributed ledger engine 120 generates one or more smart contracts associated with the content, which may be stored in the same or a different distributed ledger as the content record. In examples, the generated smart contracts are associated with the content hash and/or one or more triggers. In some examples, the distributed ledger engine 120 may act as a gateway between the CDN distributed ledger and the content source distributed ledger managed by the distributed ledger engine 116. For example, transactions may be synchronized in the content source ledger and the CDN ledger, or as another example, an indication may be provided about triggers identified in the CDN 140, among other examples.

ゲートウェイノード104は、局所ノード108にコンテンツを送信してよい。ゲートウェイノード104及び106は、局所ノード108からコンテンツを配信してよく、それにより、コンテンツソース102から受信され、ゲートウェイノード104を介して局所ノード108に提供されたコンテンツは、その後、ゲートウェイノード106によって配信されてよい。それゆえ、CDN140は、階層的又はハブアンドスポークアーキテクチャを有してよく、ここで、特定のノード(例えば、ノード104及び106)が他のノード(例えば、局所ノード108)によって管理される。例示のCDN構造が本明細書において説明されているが、ノードは、他の例では多様な他の構造のうちの任意のものにおいて構成されてよいことが理解されるであろう。 The gateway node 104 may transmit content to the local node 108. The gateway nodes 104 and 106 may distribute content from the local node 108, such that content received from the content source 102 and provided to the local node 108 via the gateway node 104 may then be distributed by the gateway node 106. Thus, the CDN 140 may have a hierarchical or hub-and-spoke architecture, where certain nodes (e.g., nodes 104 and 106) are managed by other nodes (e.g., the local node 108). Although an example CDN structure is described herein, it will be understood that the nodes may be arranged in any of a variety of other structures in other examples.

消費者は、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によって)実行される。 The consumer uses a client application 138 of the client device 110 to access content of the CDN 140 (e.g., as may be provided to the CDN 140 by the content source 102). The client application 138 may be, among other examples, a web browser or an application developed or otherwise provided by the content source 102. Thus, the client device 110 communicates with one or more of the nodes 104, 106, and 108 to access the content. In some examples, the client device 110 may first communicate with the content source 102 (e.g., to access a list of content, such as may be provided via a website), after which the client device 110 may be directed to the CDN 140 to access a selected portion of the content provided by the CDN nodes 104, 106, and/or 108. As the content from the content source 102 is transferred within the CDN 140 and/or provided to the client device 110, one or more triggers may occur. For example, a consumer may generate a playback trigger via a client application 138 by requesting content from the CDN 140. The distributed ledger engine may then identify the trigger and execute an associated smart contract based at least in part on a hash of the associated content. For example, the distributed ledger engine 120, 126, or 132 may execute such aspects. Executing the smart contract may result in an update to the distributed ledger associated with the trigger. As another example, a trigger may occur when content is transmitted from the data store 130 of the local node 108 to the gateway node 106, whereby a smart contract is executed (e.g., by the distributed ledger engine 132 or 126) in association with bandwidth and/or storage usage associated with transmitting and storing the content.

例において、分散台帳は、その中のスマートコントラクトの当事者(例えば、コンテンツソース102、CDN140、アーティスト等)に起因する支払いを決定するために処理される。例えば、局所ノード108の分散台帳エンジン132は、周期的に(例えば、月に一度、半年に一度等)そのような処理を実行してよく、コンテンツソース102及び/又は1つ又は複数の他の当事者にインジケーションが提供されてよい。例えば、コンテンツソース102は、インジケーションを受信し、その後、これに応じてロイヤリティ支払いを処理してよい。別の例として、コンテンツソース102は、インジケーションを受信し、コンテンツを配信することに関連付けられたCDNサービスのためのCDN140に対する支払いを処理してよい。幾つかの事例では、分散台帳エンジン132は、そのような集約された支払い情報にアクセスする、スマートコントラクトを管理する、及び/又は支払いを送金するためのウェブサイト、API、又は他の方法を提供する。ゲートウェイノード104及び106は、他の例において同様の態様を実行してよいことが理解されるであろう。別の例として、ゲートウェイノード104及び106は、局所ノード108によって管理されてよく、それにより、局所ノード108は、ゲートウェイノード104及び106を代表して上記で説明された処理技法を実行する。 In an example, the distributed ledger is processed to determine payments due to parties (e.g., content source 102, CDN 140, artist, etc.) of smart contracts therein. For example, the distributed ledger engine 132 of the local node 108 may perform such processing periodically (e.g., monthly, semi-annually, etc.) and an indication may be provided to the content source 102 and/or one or more other parties. For example, the content source 102 may receive the indication and then process a royalty payment accordingly. As another example, the content source 102 may receive the indication and process a payment to the CDN 140 for CDN services associated with delivering the content. In some instances, the distributed ledger engine 132 provides a website, API, or other method for accessing such aggregated payment information, managing smart contracts, and/or remitting payments. It will be appreciated that the gateway nodes 104 and 106 may perform similar aspects in other examples. As another example, the gateway nodes 104 and 106 may be managed by the local node 108, whereby the local node 108 performs the processing techniques described above on behalf of the gateway nodes 104 and 106.

例において、コンテンツバリデーションが要求される。例えば、バリデーション要求がクライアントデバイス110から受信されるか、又は別の例として、コンテンツが分散台帳の会計を生成する結果としてバリデートされる。別の例として、消費者は、コンテンツのソースをバリデートすることを望む場合もあるし、又は、他の例では、コンテンツに関連付けられた特定のメタデータ(例えば、コンテンツにおいて演じた俳優/女優が実際にその創作に関与したこと)をバリデートすることを望む場合もある。したがって、コンテンツのハッシュが(例えば、クライアントデバイス110において、ノード104、106、又は108において、等で)生成され、分散台帳のコンテンツレコードと比較される。そのような態様は、分散台帳エンジン120、126、及び/又は132によって実行されてよい。生成されたコンテンツハッシュがコンテンツレコードの記憶されたコンテンツハッシュと一致する場合、コンテンツのバリデートに成功する。コンテンツハッシュは、コンテンツに関連付けられたメタデータを識別するのに更に使用されてよく、それによって、ユーザがコンテンツに関連付けられたコンテンツソース及び関連付けられたメタデータを閲覧することが可能になる。 In an example, content validation is requested. For example, a validation request is received from a client device 110, or in another example, the content is validated as a result of generating an accounting in the distributed ledger. As another example, a consumer may wish to validate the source of the content, or in another example, may wish to validate certain metadata associated with the content (e.g., that the actors/actresses who performed in the content were actually involved in its creation). Thus, a hash of the content is generated (e.g., at the client device 110, at nodes 104, 106, or 108, etc.) and compared to the content record in the distributed ledger. Such aspects may be performed by the distributed ledger engines 120, 126, and/or 132. If the generated content hash matches the stored content hash of the content record, the content is successfully validated. The content hash may be further used to identify metadata associated with the content, thereby allowing a user to view the content source and associated metadata associated with the content.

コンテンツソース102からのコンテンツは、低品質である場合もあるし、又は、CDN140によって配信され得るものとは異なるフォーマットである場合もある。したがって、コンテンツプロセッサ122、128、及び/又は136は、コンテンツを改善又は変更するのに使用されてよい。一例として、(コンテンツソース102からコンテンツを受信した)ゲートウェイノード104は、コンテンツプロセッサ122を使用して、本明細書において説明されるAIベーストランスコーディング技法を実行し、コンテンツのトランスコーディングされたバージョンを生成する。トランスコーディングされたバージョンは、CDN140の他のノードに(例えば、局所ノード108を介してゲートウェイノード106に)配信されてよい。コンテンツは、コンテンツソース102からコンテンツを受信することに応答してトランスコーディングされてよい。 The content from the content source 102 may be of lower quality or in a different format than can be delivered by the CDN 140. Thus, the content processors 122, 128, and/or 136 may be used to improve or modify the content. As an example, the gateway node 104 (which received the content from the content source 102) uses the content processor 122 to perform the AI-based transcoding techniques described herein to generate a transcoded version of the content. The transcoded version may be distributed to other nodes in the CDN 140 (e.g., to the gateway node 106 via the local node 108). The content may be transcoded in response to receiving the content from the content source 102.

他の例では、オリジナルコンテンツは、CDN140のノードに配信され、それにより、ノード104、106、又は108は、それぞれ、コンテンツプロセッサ122、128、又は136を使用して、(例えば、クライアントデバイス110からの)コンテンツの要求に応答してAIベーストランスコーディング技法を実行する。例えば、要求は、例の中でもとりわけ、要求された解像度、オーディオチャネルの数、ビットレート、及び/又はカラー深度を示す要求されたフォーマットの情報を含んでよい。それゆえ、要求されたフォーマットの情報は、ビデオの要求されたフォーマットの情報及び/又はオーディオの要求されたフォーマットの情報に関してよい。加えて、CDN140内でオリジナルコンテンツを配信すること及びコンテンツの要求を処理するノードにおいてトランスコーディングを実行することは、CDN140内でコンテンツを転送することに関連付けられた帯域幅を削減し得る。 In another example, the original content is delivered to a node of the CDN 140, whereby the node 104, 106, or 108 uses the content processor 122, 128, or 136, respectively, to perform the AI-based transcoding technique in response to a request for the content (e.g., from the client device 110). For example, the request may include requested format information indicating a requested resolution, number of audio channels, bit rate, and/or color depth, among other examples. Thus, the requested format information may relate to video requested format information and/or audio requested format information. Additionally, delivering the original content within the CDN 140 and performing the transcoding at the node handling the request for the content may reduce the bandwidth associated with transferring the content within the CDN 140.

幾つかの例では、コンテンツのトランスコーディングされたバージョンのうちの少なくとも一部は、所定の時間量にわたってデータストア内にキャッシュされ、それにより、ノードは、コンテンツの要求毎に応答してトランスコーディングされたバージョンを生成する必要はなく、代わりに、データストアからキャッシュされたトランスコーディングされたバージョンを提供してよい。他の例では、トランスコーディングされたバージョンは、1つのノードから別のノードに(例えば、局所ノード108のデータストア130からゲートウェイノード104のデータストア118に)送信されてよく、それにより、受信側ノードは、コンテンツをトランスコーディングする必要はない。システム100に関して上記で説明された技法は、例の中でもとりわけ、コンテンツソース102が事前記録された及び/又はリアルタイムのコンテンツを提供する事例において使用されてよいことが理解されるであろう。 In some examples, at least a portion of the transcoded version of the content may be cached in a data store for a predetermined amount of time, such that the node need not generate a transcoded version in response to every request for the content, but instead may provide the cached transcoded version from the data store. In other examples, the transcoded version may be transmitted from one node to another (e.g., from the data store 130 of the local node 108 to the data store 118 of the gateway node 104), such that the receiving node does not need to transcode the content. It will be appreciated that the techniques described above with respect to the system 100 may be used in instances where the content source 102 provides pre-recorded and/or real-time content, among other examples.

局所ノード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によって生成されるトランスコーディングされたバージョンは、同じ又は同様のトランスコーディングレシピを使用する結果として同様であってよい。トランスコーディングモデル及びレシピを同期するのに他の技法が使用されてよいことが理解されるであろう。例えば、中央集権型データストアが使用されてよい。 The local node 108 is shown as further including a model manager 134. In the example, the transcoding models used by the content processors 122, 128, and 136 are managed by the model manager 134. For example, the content processor 122 may retrain or otherwise update the transcoding models used to transcode content based on implicit and/or explicit user feedback. Thus, the models may be provided to or obtained by the model manager 134, which may distribute the updated transcoding models to other content processors in the CDN 140. Thus, the transcoding models may be shared among the nodes 104, 106, and 108. Similarly, the model manager 134 may facilitate the sharing of transcoding recipes among the nodes 104, 106, and 108. For example, if the content processor 128 of the gateway node 106 has already analyzed which set of transcoding models should be used to transcode a particular portion of the content, the model manager 134 may obtain or otherwise access the transcoding recipe from the gateway node 106 and share the transcoding recipe with the content processors 122 and 136. Thus, the transcoded versions generated by the nodes 104, 106, and 108 may be similar as a result of using the same or similar transcoding recipe. It will be appreciated that other techniques may be used to synchronize the transcoding models and recipes. For example, a centralized data store may be used.

図1Bは、例示の分散台帳エンジン150の概要を示している。示されているように、分散台帳エンジン150は、ハッシュ生成器152、スマートコントラクトプロセッサ154、トリガプロセッサ156、及びコンテンツバリデータ158を含む。例において、分散台帳エンジン150は、図1Aにおける、それぞれノード104、106、及び108の分散台帳エンジン120、126、及び132等のCDNノードの一部である。 FIG. 1B illustrates an overview of an example distributed ledger engine 150. As shown, the distributed ledger engine 150 includes a hash generator 152, a smart contract processor 154, a trigger processor 156, and a content validator 158. In an example, the distributed ledger engine 150 is part of a CDN node, such as the distributed ledger engines 120, 126, and 132 of nodes 104, 106, and 108, respectively, in FIG. 1A.

ハッシュ生成器152は、本明細書において説明される態様に従ってハッシュコンテンツを生成する。例えば、コンテンツハッシュは、SHA-2ハッシュ(例えば、SHA-256、SHA-512等)又はRIPEMDハッシュ(例えば、RIPEMD-160、RIPEMD-256等)等の多様なハッシュ化アルゴリズムのうちの任意のものを使用して生成されてよい。ハッシュ生成器152は、単独で又はコンテンツとの組み合わせにおいてのいずれかでメタデータに基づいて生成されるのではなく、コンテンツ自体に基づいてコンテンツハッシュを生成してよい。ハッシュは、複数のサブパートを有してよく、ここで、ハッシュの第1のサブパートは、コンテンツを一意に識別してよく、一方、ハッシュの1つ又は複数の他のサブパートは、コンテンツ解像度(例えば、HD、4K、及び/又は8Kコンテンツのためのサブパートについての異なるハッシュ)及び/又はコンテンツソース(例えば、ストリーミングプラットフォームは、オリジナルコンテンツ公開者とは異なるハッシュサブパートを有してよい)に関連付けられてよい。ハッシュ生成器152によって生成されるコンテンツハッシュは、分散台帳のコンテンツレコードの一部として記憶されてよい。幾つかの例では、ハッシュ生成器152は、コンテンツに関連付けられたメタデータのハッシュを更に生成し、これもコンテンツレコードの一部として記憶されてよい。コンテンツレコードは、コンテンツ、又は限定されないが、コンテンツが(例えば、図1Aにおけるコンテンツソース102から)CDNによって受信された時点に関連付けられたタイムスタンプ、及び関連付けられたコンテンツソース情報(例えば、電子メールアドレス、請求先住所、会社名等)を含む多様な他の情報のうちの任意のものに関連付けられたメタデータの少なくとも一部を更に含んでよい。 The hash generator 152 generates the hashed content according to aspects described herein. For example, the content hash may be generated using any of a variety of hashing algorithms, such as a SHA-2 hash (e.g., SHA-256, SHA-512, etc.) or a RIPEMD hash (e.g., RIPEMD-160, RIPEMD-256, etc.). The hash generator 152 may generate the content hash based on the content itself, rather than based on metadata, either alone or in combination with the content. The hash may have multiple subparts, where a first subpart of the hash may uniquely identify the content, while one or more other subparts of the hash may be associated with the content resolution (e.g., different hashes for the subparts for HD, 4K, and/or 8K content) and/or the content source (e.g., a streaming platform may have a different hash subpart than the original content publisher). The content hash generated by the hash generator 152 may be stored as part of the content record in the distributed ledger. In some examples, hash generator 152 may also generate a hash of metadata associated with the content, which may also be stored as part of the content record. The content record may further include at least a portion of the metadata associated with the content or any of a variety of other information, including, but not limited to, a timestamp associated with when the content was received by the CDN (e.g., from content source 102 in FIG. 1A), and associated content source information (e.g., email address, billing address, company name, etc.).

分散台帳エンジン150のスマートコントラクトプロセッサ154は、コンテンツに関連付けられたスマートコントラクトを生成する。上記で説明されたように、スマートコントラクトは、限定されないが、CDN、コンテンツソース、及び/又は、アーティストの中でもとりわけ、ミュージシャン、俳優/女優、及び監督を含む多様な当事者のうちの任意のものの間で生成されてよい。スマートコントラクトプロセッサ154は、生成されたスマートコントラクトを、コンテンツハッシュ(例えば、ハッシュ生成器152によって生成済みであり得るような)に関連付けてよい。スマートコントラクトプロセッサ154は、コンテンツレコードが記憶される場所と同じ分散台帳にスマートコントラクトを記憶してもよいし、又は他の例では、スマートコントラクトは異なる分散台帳であってもよい。例えば、異なる分散台帳は、異なる当事者のために使用されてよい(例えば、コンテンツソースごとに異なる分散台帳、特定のアーティストに対するロイヤリティ支払いを追跡するために同じ分散台帳を使用する、等)。スマートコントラクトプロセッサ154は、別個のユーザの間のスマートコントラクトを生成する必要がなく、又は他の例では、スマートコントラクトに対する当事者は、実際のユーザである必要がなく、代わりにプレースホルダとして機能してよい。例えば、ロイヤリティスマートコントラクトは、ロイヤリティ支払いのレコードを生成するのに使用可能であってよく、これは、コンテンツソース又は他の当事者に提供されてよく、それによって、最終的にロイヤリティの支払いがもたらされる。別の例として、CDNは、コントラクトに対する唯一の当事者であり、それによって、CDNがトリガの発生に基づいて分散台帳を介した解析を維持することが可能になる。 The smart contract processor 154 of the distributed ledger engine 150 generates a smart contract associated with the content. As described above, smart contracts may be generated between any of a variety of parties, including, but not limited to, CDNs, content sources, and/or artists, musicians, actors/actresses, and directors, among others. The smart contract processor 154 may associate the generated smart contract with a content hash (e.g., as may have been generated by the hash generator 152). The smart contract processor 154 may store the smart contract in the same distributed ledger where the content records are stored, or in other examples, the smart contract may be in a different distributed ledger. For example, different distributed ledgers may be used for different parties (e.g., a different distributed ledger for each content source, using the same distributed ledger to track royalty payments to a particular artist, etc.). The smart contract processor 154 need not generate smart contracts between separate users, or in other examples, the parties to a smart contract need not be actual users, but instead may act as placeholders. For example, a royalty smart contract may be used to generate records of royalty payments, which may be provided to a content source or other party, which ultimately results in a royalty payment. As another example, the CDN is the only party to the contract, which allows the CDN to maintain analytics over the distributed ledger based on the occurrence of triggers.

トリガプロセッサ156は、トリガを処理し、関連付けられたスマートコントラクトを実行する。上記で記載されたように、トリガは、コンテンツ配信(例えば、クライアントデバイスへの送信、オリジン及びエッジノードの間の送信、ストリーミング又はダウンロードアクティビティ等)又はコンテンツ再生(例えば、コンテンツの再生/一時停止、早送り/巻き戻し、再生の早期終了等)に関するイベント等の多様なイベントのうちの任意のものであってよい。例えば、トリガプロセッサ156は、イベント(例えば、ログデータにアクセスすること、データストアのコンテンツをクエリすること等)が発生したか否かを判断するためにポーリングを実行してもよいし、又は(例えば、CDNノードから、クライアントデバイスから等)インジケーションを受信してもよい。トリガプロセッサ156がトリガを識別するとき、トリガに関連付けられたコンテンツハッシュが、関連付けられたスマートコントラクト(例えば、スマートコントラクトプロセッサ154によって生成済みであり得るような)を識別及び実行するのに使用される。 Trigger processor 156 processes triggers and executes associated smart contracts. As described above, triggers may be any of a variety of events, such as events related to content delivery (e.g., transmission to a client device, transmission between origin and edge nodes, streaming or download activity, etc.) or content playback (e.g., playing/pausing content, fast forwarding/rewinding, early termination of playback, etc.). For example, trigger processor 156 may poll to determine whether an event has occurred (e.g., accessing log data, querying content from a data store, etc.) or may receive an indication (e.g., from a CDN node, from a client device, etc.). When trigger processor 156 identifies a trigger, the content hash associated with the trigger is used to identify and execute the associated smart contract (e.g., as may have been generated by smart contract processor 154).

コンテンツバリデータ158は、分散台帳内のコンテンツハッシュと比較されたコンテンツをバリデートする。例えば、コンテンツバリデータ158は、バリデーション要求を(例えば、図1Aにおけるクライアントデバイス110等のクライアントデバイスから、トランザクションの処理の結果として)受信してよい。バリデーション要求は、特定のコンテンツのためのハッシュを生成するインジケーションを含んでもよいし、又は、ハッシュ(例えば、クライアントデバイスによって生成され得るような)を含んでもよい。ハッシュが要求の一部として受信されない例では、ハッシュ生成器152は、コンテンツのハッシュを生成する。コンテンツバリデータ158は、その後、コンテンツをバリデートするために、受信されたハッシュ又は生成されたハッシュのいずれかを、分散台帳内のハッシュと比較する。上記で記載されたように、コンテンツ及び/又はメタデータに関連付けられたコンテンツソースに関する追加のバリデーションが実行されてよい。 The content validator 158 validates the content compared to the content hash in the distributed ledger. For example, the content validator 158 may receive a validation request (e.g., from a client device, such as client device 110 in FIG. 1A, as a result of processing a transaction). The validation request may include an indication to generate a hash for the particular content or may include a hash (e.g., as may be generated by the client device). In instances where a hash is not received as part of the request, the hash generator 152 generates a hash of the content. The content validator 158 then compares either the received hash or the generated hash to the hash in the distributed ledger to validate the content. Additional validation may be performed regarding the content source associated with the content and/or metadata, as described above.

図1Cは、AIベーストランスコーディングを実行する例示のコンテンツプロセッサ180の概要を示している。示されているように、コンテンツプロセッサ180は、モデル選択器182、オブジェクト検出器184、トランスコーディングエンジン186、及び品質評価器188を含む。例において、コンテンツプロセッサ180は、図1Aにおける、それぞれノード104、106、及び108のコンテンツプロセッサ122、128、及び136等のCDNノードの一部である。コンテンツプロセッサ180は、図1Aにおけるコンテンツソース102等のコンテンツソースからのコンテンツをトランスコーディングする。 FIG. 1C shows an overview of an example content processor 180 that performs AI-based transcoding. As shown, content processor 180 includes a model selector 182, an object detector 184, a transcoding engine 186, and a quality evaluator 188. In the example, content processor 180 is part of a CDN node, such as content processors 122, 128, and 136 of nodes 104, 106, and 108, respectively, in FIG. 1A. Content processor 180 transcodes content from a content source, such as content source 102 in FIG. 1A.

モデル選択器182は、AIベーストランスコーディングを実行するためにトランスコーディングモデルを選択する。例えば、モデル選択器182は、限定されないが、コンテンツメタデータ(例えば、特定のコンテンツタイプを示し得るジャンル、俳優/女優等)、ビデオ解析(例えば、ビットレート、フレーム複雑度、明度/暗度等)、オリジナルコンテンツ解像度、ターゲットコンテンツ解像度、動きベクトル、生産年度、フォーマット又はコーデックタイプ、及び/又は消費者又は他のユーザから受信されたフィードバックを含む多様な基準に従って、一組のモデルからトランスコーディングモデルを選択する。上記で説明されたように、当該一組のトランスコーディングモデルは、異なるコンテンツタイプに従ってトレーニング済みであってよい。例えば、異なるモデルは、アクションコンテンツ、スポーツコンテンツ、アニメコンテンツ、リアリティコンテンツ、広告コンテンツ、及び白黒コンテンツのために存在してよい。 The model selector 182 selects a transcoding model to perform AI-based transcoding. For example, the model selector 182 selects a transcoding model from a set of models according to various criteria, including, but not limited to, content metadata (e.g., genre, actors/actresses, etc., which may indicate a particular content type), video analytics (e.g., bit rate, frame complexity, brightness/darkness, etc.), original content resolution, target content resolution, motion vectors, production year, format or codec type, and/or feedback received from consumers or other users. As described above, the set of transcoding models may be trained according to different content types. For example, different models may exist for action content, sports content, anime content, reality content, advertising content, and black and white content.

例において、モデル選択器182は、いずれのトランスコーディングモデルを適用すべきかを決定するために複数のトランスコーディングモデルを比較する。例えば、オブジェクト検出器184は、所与のビデオフレームにおけるオブジェクトの中でもとりわけ、無生物オブジェクト、アニメキャラクタ、及びを俳優/女優を識別してよい。オブジェクト検出器184は、任意の数の及び/又は多様なオブジェクト認識機械学習モデルを適用してよい。例えば、各オブジェクト認識機械学習モデルは、特定のサブセットのオブジェクトを認識するようにトレーニング済みであってもよいし、又は他の例では、オブジェクト認識機械学習モデルは、特定のタイプのコンテンツに従ってトレーニングされる。オブジェクト検出器184は、多様な他のオブジェクト検出技法(例えば、フレーム内のエッジを識別すること、一組のフレームにわたって動きを解析すること等)のうちの任意のものを適用してよいことが理解されるであろう。 In an example, the model selector 182 compares multiple transcoding models to determine which transcoding model to apply. For example, the object detector 184 may identify inanimate objects, animated characters, and actors/actresses, among other objects, in a given video frame. The object detector 184 may apply any number and/or variety of object recognition machine learning models. For example, each object recognition machine learning model may be trained to recognize a particular subset of objects, or in other examples, the object recognition machine learning models are trained according to a particular type of content. It will be appreciated that the object detector 184 may apply any of a variety of other object detection techniques (e.g., identifying edges in a frame, analyzing motion across a set of frames, etc.).

モデル選択器182は、次に、いかに良好に検出されたオブジェクトが各トランスコーディングモデルによってトランスコーディングされたかを決定するために、品質評価器188を使用して複数のトランスコーディングモデルからのモデル処理結果を評価してよい。例において、品質評価器188は、プログラムによって(例えば、トランスコーディングアーティファクトを検出すること、参照フレームをトランスコーディングされたフレームと比較すること等によって)比較を行う。例えば、ソースフレームは、ダウンスケーリングされてよく、それにより、ダウンスケーリングされたソースフレームが、複数のトランスコーディングモデルを使用してアップスケーリングされて、複数のトランスコーディングされたフレームが生成される。トランスコーディングされたフレームは、オリジナルソースフレームと比較されて、エラー及び品質損失が識別されてよく、それにより、最高品質(例えば、最低エラー、最低品質損失等)を呈するトランスコーディングモデルが選択されて、コンテンツがトランスコーディングされてよい。他の例では、品質評価器188は、例えばユーザ選択のために複数のトランスコーディングされたフレームの表示を並行して生成することによって、明示的/暗黙的なユーザ入力を要求又は別様に受信する。 The model selector 182 may then evaluate the model processing results from the multiple transcoding models using the quality evaluator 188 to determine how well the detected object was transcoded by each transcoding model. In an example, the quality evaluator 188 performs the comparison programmatically (e.g., by detecting transcoding artifacts, comparing a reference frame to the transcoded frame, etc.). For example, a source frame may be downscaled, whereby the downscaled source frame is upscaled using multiple transcoding models to generate multiple transcoded frames. The transcoded frames may be compared to the original source frame to identify errors and quality loss, whereby the transcoding model exhibiting the highest quality (e.g., least errors, least quality loss, etc.) may be selected to transcode the content. In another example, the quality evaluator 188 requests or otherwise receives explicit/implicit user input, for example, by generating a display of multiple transcoded frames in parallel for user selection.

トランスコーディングエンジン186は、コンテンツをトランスコーディングして、トランスコーディングされたコンテンツが生成される。トランスコーディングエンジン186は、トランスコーディングを実行するために、モデル選択器182によって選択されるトランスコーディングモデルを使用する。例において、複数のトランスコーディングモデルが、コンテンツをトランスコーディングするのに使用され、ここで、1つのモデルは、コンテンツのサブパートのために使用されてよく、一方、別のモデルは、異なるサブパートのために使用されてよい。したがって、トランスコーディングモデル性能は、トランスコーディング中に周期的に(例えば、品質評価器188によって)評価されてよく、それにより、トランスコーディングモデルは、所与のサブパートについてのモデル性能に依存して(例えば、モデル選択器182によって行われる選択に従って)変更され得る。幾つかの例では、コンテンツ解像度は、(例えば、ブロードキャストのスポーツセグメント及びその中の広告の間で)変化してよく、それにより、モデル選択器182がモデル選択プロセスを実行するのに再び使用されるべきであることをトランスコーディングエンジン186が決定し得る。他の例では、オブジェクト検出器184は、ビデオフレームのコンテンツを決定するか又はオブジェクトが消失したときを識別するのに使用されてよく、その両方が、モデル選択器182に、トランスコーディングモデル性能を再評価させ得る。幾つかの事例では、トランスコーディングエンジン186は、イントラフレーム、予測フレーム、及び/又は双方向フレームに異なるトランスコーディングモデルを適用する(その各々がモデル選択器182によって選択されてよい)。上記で記載されたように、そのような技法は、トランスコーディングと同時発生的に実行される必要はなく、それにより、トランスコーディングエンジン186は、代わりに、コンテンツのいずれのサブパートをトランスコーディングするのにいずれのトランスコーディングモデルが使用されるべきかを指定するトランスコーディングレシピを利用する。 The transcoding engine 186 transcodes the content to generate transcoded content. The transcoding engine 186 uses the transcoding model selected by the model selector 182 to perform the transcoding. In an example, multiple transcoding models are used to transcode the content, where one model may be used for a subpart of the content, while another model may be used for a different subpart. Thus, the transcoding model performance may be evaluated (e.g., by the quality evaluator 188) periodically during transcoding, so that the transcoding model may be changed (e.g., according to a selection made by the model selector 182) depending on the model performance for a given subpart. In some examples, the content resolution may change (e.g., between a sports segment of a broadcast and an advertisement therein), so that the transcoding engine 186 may determine that the model selector 182 should be used again to perform the model selection process. In other examples, the object detector 184 may be used to determine the content of a video frame or to identify when an object has disappeared, both of which may cause the model selector 182 to re-evaluate transcoding model performance. In some cases, the transcoding engine 186 applies different transcoding models to intra-frames, predicted frames, and/or bi-directional frames (each of which may be selected by the model selector 182). As described above, such techniques need not be performed contemporaneously with the transcoding, whereby the transcoding engine 186 instead utilizes a transcoding recipe that specifies which transcoding models should be used to transcode which sub-parts of the content.

図2Aは、本明細書において説明される分散台帳技法に従ってCDNにコンテンツを追加する例示の方法200の概要を示している。例において、方法200の態様は、図1Aにおけるノード104、106、又は108等のCDNのノードによって実行される。別の例として、方法200の態様は、図1Bにおける分散台帳エンジン150等の分散台帳エンジンによって実行されてよい。方法200は、動作202において開始し、ここで、コンテンツのインジケーションが受信される。コンテンツのインジケーションは、図1Aにおけるコンテンツソース102等のコンテンツソースから受信されてよい。別の例として、コンテンツのインジケーションは、(例えば、コンテンツソースに関連付けられたクライアントデバイスの)ユーザが、コンテンツを選択し、タイトル、及び俳優/女優、監督、又は他の関連付けられたアーティストのリスト等の関連付けられたメタデータを指定することを可能にするCDNのウェブサイトを介して受信されてよい。他の例では、メタデータは、メタデータレポジトリに記憶され、コンテンツインジケーションは、メタデータレポジトリ内のメタデータへの参照を含む。多様な他の技法のうちの任意のものが、アプリケーションプログラミングインターフェース(API)を使用して等で、コンテンツソースからコンテンツを受信するのに使用されてよいことが理解されるであろう。 FIG. 2A illustrates an overview of an example method 200 of adding content to a CDN in accordance with the distributed ledger techniques described herein. In an example, aspects of the method 200 are performed by a node of the CDN, such as node 104, 106, or 108 in FIG. 1A. As another example, aspects of the method 200 may be performed by a distributed ledger engine, such as distributed ledger engine 150 in FIG. 1B. The method 200 begins at operation 202, where an indication of content is received. The indication of content may be received from a content source, such as content source 102 in FIG. 1A. As another example, the indication of content may be received via a website of the CDN that allows a user (e.g., of a client device associated with the content source) to select content and specify associated metadata, such as a title and a list of actors/actresses, directors, or other associated artists. In another example, the metadata is stored in a metadata repository, and the content indication includes a reference to the metadata in the metadata repository. It will be appreciated that any of a variety of other techniques may be used to receive content from a content source, such as using an application programming interface (API).

フローは、動作204に進み、ここで、ハッシュが、コンテンツのために生成される。例において、ハッシュは、図1Bにおけるハッシュ生成器152等のハッシュ生成器によって生成される。例えば、コンテンツハッシュは、単独で又はコンテンツとの組み合わせにおいてのいずれかでメタデータに基づいて生成されるのではなく、コンテンツ自体に基づいて生成されてよい。例において、コンテンツハッシュは、コンテンツレコードの一部である。コンテンツレコードは、コンテンツメタデータに関連付けられたハッシュ及び/又はメタデータ自体等の多様な他の情報のうちの任意のものを記憶してよい。 Flow proceeds to operation 204 where a hash is generated for the content. In an example, the hash is generated by a hash generator, such as hash generator 152 in FIG. 1B. For example, the content hash may be generated based on the content itself, rather than based on metadata, either alone or in combination with the content. In an example, the content hash is part of the content record. The content record may store any of a variety of other information, such as hashes associated with the content metadata and/or the metadata itself.

動作206において、コンテンツに関連付けられたスマートコントラクトが生成される。スマートコントラクトは、図1Bにおけるスマートコントラクトプロセッサ154等のスマートコントラクトプロセッサによって生成されてよい。スマートコントラクトは、限定されないが、CDN、動作202において受信されたインジケーションが関連付けられるコンテンツソース、及び/又は、アーティストの中でもとりわけ、ミュージシャン、俳優/女優、及び監督を含む多様な当事者のうちの任意のものの間で生成されてよい。動作206において生成されたスマートコントラクトは、動作204において生成されたコンテンツハッシュに関連付けられてよい。上記で記載されたように、スマートコントラクトは、別個のユーザの間にある必要がなく、又は他の例では、スマートコントラクトに対する当事者は、実際のユーザである必要がなく、代わりにプレースホルダとして機能してよい。スマートコントラクトは、本明細書において説明される態様に従って、スマートコントラクトの実行を引き起こす多様なトリガのうちの任意のものに関連付けられてよい。動作206及び208が単一のスマートコントラクトを生成するものとして説明されるが、任意の数のスマートコントラクトが生成されてよいことが理解されるであろう。 At operation 206, a smart contract associated with the content is generated. The smart contract may be generated by a smart contract processor, such as smart contract processor 154 in FIG. 1B. The smart contract may be generated between any of a variety of parties, including, but not limited to, the CDN, the content source with which the indication received at operation 202 is associated, and/or the artist, musician, actor/actress, and director, among others. The smart contract generated at operation 206 may be associated with the content hash generated at operation 204. As described above, smart contracts need not be between separate users, or in other examples, the parties to the smart contract need not be actual users, but may instead function as placeholders. The smart contract may be associated with any of a variety of triggers that cause the execution of the smart contract, according to aspects described herein. Although operations 206 and 208 are described as generating a single smart contract, it will be understood that any number of smart contracts may be generated.

動作208に移行すると、コンテンツハッシュ及びスマートコントラクトは、分散台帳に記憶される。例において、動作204において生成されたコンテンツレコード及び動作206において生成された1つ又は複数のスマートコントラクトは、同じ分散台帳に記憶される。別の例として、スマートコントラクトは、コンテンツレコードとは異なる分散台帳に記憶されてよい。例えば、異なる分散台帳は、異なる当事者のために使用されてよい(例えば、コンテンツソースごとに異なる分散台帳、特定のアーティストに対するロイヤリティ支払いを追跡するために同じ分散台帳を使用する、等)。フローは、動作208において終了する。 Moving to operation 208, the content hash and the smart contract are stored in a distributed ledger. In an example, the content record generated in operation 204 and the one or more smart contracts generated in operation 206 are stored in the same distributed ledger. As another example, the smart contract may be stored in a different distributed ledger than the content record. For example, different distributed ledgers may be used for different parties (e.g., different distributed ledgers for different content sources, the same distributed ledger used to track royalty payments to a particular artist, etc.). The flow ends at operation 208.

図2Bは、本明細書において説明される分散台帳技法に従ってコンテンツに関連付けられたトリガを処理する例示の方法220の概要を示している。例において、方法220の態様は、図1Aにおけるノード104、106、又は108等のCDNのノードによって実行される。別の例として、方法220の態様は、図1Bにおける分散台帳エンジン150等の分散台帳エンジンによって実行されてよい。方法220は、動作222において開始し、ここで、コンテンツの一部に関連付けられたトリガのインジケーションが受信される。例において、インジケーションは、情報の中でもとりわけ、コンテンツのコンテンツハッシュ及びトリガタイプを含む。インジケーションは、図1Bにおけるトリガプロセッサ156等のトリガプロセッサによって受信されてよい。他の例では、インジケーションは、受信されないが、代わりにトリガプロセッサによって生成される。 2B illustrates an overview of an example method 220 for processing triggers associated with content in accordance with the distributed ledger techniques described herein. In an example, aspects of the method 220 are performed by a node of a CDN, such as nodes 104, 106, or 108 in FIG. 1A. As another example, aspects of the method 220 may be performed by a distributed ledger engine, such as distributed ledger engine 150 in FIG. 1B. The method 220 begins at operation 222, where an indication of a trigger associated with a portion of content is received. In an example, the indication includes, among other information, a content hash of the content and a trigger type. The indication may be received by a trigger processor, such as trigger processor 156 in FIG. 1B. In other examples, the indication is not received, but instead is generated by a trigger processor.

動作224において、コンテンツバリデーションが実行される。コンテンツバリデーションは、図1Bにおけるコンテンツバリデータ158等のコンテンツバリデータによって実行されてよく、これは、図2Cにおいて以下で説明される方法240の態様を実行し得る。コンテンツバリデーションは、トリガが関連付けられるコンテンツのハッシュを生成すること、当該ハッシュを、分散台帳のコンテンツレコード(例えば、図2Aにおける方法200の動作204及び208によって生成済みであり得るような)におけるハッシュと比較することを含んでよい。他の事例では、動作222において受信されたコンテンツハッシュは、分散台帳におけるコンテンツハッシュと比較されて、ハッシュ同士が一致することが確認される。幾つかの例では、動作224は、省略されてもよいし、又は、スマートコントラクトのタイプに依存して実行されてもよい(例えば、支払いに関連付けられたスマートコントラクトはコンテンツバリデーションを含んでよく、一方、解析に関連付けられたスマートコントラクトはそうではなくてよい)。 In operation 224, content validation is performed. Content validation may be performed by a content validator, such as content validator 158 in FIG. 1B, which may perform aspects of method 240 described below in FIG. 2C. Content validation may include generating a hash of the content with which the trigger is associated and comparing the hash to a hash in the content record in the distributed ledger (e.g., as may have been generated by operations 204 and 208 of method 200 in FIG. 2A). In other cases, the content hash received in operation 222 is compared to the content hash in the distributed ledger to ensure that the hashes match. In some examples, operation 224 may be omitted or performed depending on the type of smart contract (e.g., a smart contract associated with payments may include content validation, while a smart contract associated with analytics may not).

フローは、動作226に進み、ここで、コンテンツに関連付けられたスマートコントラクトが識別される。例において、スマートコントラクトは、コンテンツハッシュと同じ分散台帳に記憶され、それにより、スマートコントラクトはその中で識別されてよい。他の例では、コンテンツハッシュは、異なる分散台帳においてスマートコントラクトを識別するのに使用され、又は別の例として、コンテンツレコードが、異なる分散台帳におけるスマートコントラクトへの参照を含んでよい。それゆえ、多様な技法のうちの任意のものが、コンテンツの一部に関連付けられたスマートコントラクトを識別するのに使用されてよいことが理解されるであろう。 Flow continues to operation 226 where a smart contract associated with the content is identified. In an example, the smart contract may be stored in the same distributed ledger as the content hash, thereby identifying the smart contract therein. In another example, the content hash may be used to identify a smart contract in a different distributed ledger, or as another example, the content record may include a reference to a smart contract in a different distributed ledger. It will therefore be appreciated that any of a variety of techniques may be used to identify a smart contract associated with a piece of content.

動作228において、動作226において識別されたスマートコントラクトが実行される。例において、スマートコントラクトを実行することは、スマートコントラクトに関連付けられた分散台帳において新たなレコードを生成することを含み、それによって、分散台帳の後の処理がレポート(例えば、支払い請求、解析等)を生成することが可能になる。他の例では、スマートコントラクトは、電子通信を生成すること、CDN内でコンテンツを送信すること、及び/又はコンテンツトランスコーディングを実行することを含む多様な他のアクションのうちの任意のものを指定してよい。任意の数のアクションが、スマートコントラクト実行の一部として動作228において実行されてよいことが理解されるであろう。フローは、動作228において終了する。 At operation 228, the smart contract identified at operation 226 is executed. In an example, executing the smart contract includes generating a new record in a distributed ledger associated with the smart contract, thereby enabling subsequent processing of the distributed ledger to generate reports (e.g., billing, analytics, etc.). In other examples, the smart contract may specify any of a variety of other actions including generating electronic communications, transmitting content in a CDN, and/or performing content transcoding. It will be appreciated that any number of actions may be performed at operation 228 as part of the smart contract execution. Flow ends at operation 228.

図2Cは、本明細書において説明される分散台帳技法に従ってコンテンツをバリデートする例示の方法240の概要を示している。例において、方法240の態様は、図1Aにおけるノード104、106、又は108等のCDNのノードによって実行される。別の例として、方法240の態様は、図1Bにおける分散台帳エンジン150等の分散台帳エンジンによって実行されてよい。方法240は、動作242において開始し、ここで、コンテンツバリデーションの要求が受信される。例において、要求は、図1Aにおけるクライアントデバイス110等のクライアントデバイスから受信される。他の例では、要求は、図1Bにおけるスマートコントラクトプロセッサ154等のスマートコントラクトプロセッサから受信され、これは、図2Bにおける動作224の態様を実行し得る。コンテンツバリデーションの要求は、コンテンツハッシュ(例えば、要求が受信されたクライアントデバイスによって生成済みであるような)を含んでよい。 2C illustrates an overview of an example method 240 for validating content according to the distributed ledger techniques described herein. In an example, aspects of the method 240 are performed by a node of a CDN, such as node 104, 106, or 108 in FIG. 1A. As another example, aspects of the method 240 may be performed by a distributed ledger engine, such as distributed ledger engine 150 in FIG. 1B. The method 240 begins at operation 242, where a request for content validation is received. In an example, the request is received from a client device, such as client device 110 in FIG. 1A. In another example, the request is received from a smart contract processor, such as smart contract processor 154 in FIG. 1B, which may perform aspects of operation 224 in FIG. 2B. The request for content validation may include a content hash (e.g., as generated by the client device on which the request is received).

フローは、動作244に進み、ここで、コンテンツのハッシュが生成される。動作244は、幾つかの例(例えば、コンテンツバリデーションの要求がコンテンツハッシュを含む例)では、これが省略されてよいことを示すために破線ボックスを使用して示されている。動作244の態様は、図1Bにおけるハッシュ生成器152等のハッシュ生成器によって実行されてよい。上記で説明されたように、ハッシュは、単独で又はコンテンツとの組み合わせにおいてのいずれかでメタデータに基づいて生成されるのではなく、コンテンツ自体に基づいて生成されてよい。 Flow proceeds to operation 244 where a hash of the content is generated. Operation 244 is illustrated using a dashed box to indicate that in some instances (e.g., instances where the content validation request includes the content hash) it may be omitted. Aspects of operation 244 may be performed by a hash generator, such as hash generator 152 in FIG. 1B. As discussed above, the hash may be generated based on the content itself, rather than being generated based on metadata, either alone or in combination with the content.

動作246において、記憶されたハッシュは、分散台帳において識別される。記憶されたハッシュは、本明細書において説明される態様に従ってコンテンツレコードの一部であってよい。例において、コンテンツレコードは、参照又は他の関連付けを介してコンテンツに関連付けられてよい。幾つかの例では、バリデーションは、コンテンツのみに実行されなくてよく、メタデータに対しても実行されてよい。そのような例では、記憶されたメタデータハッシュ(例えば、コンテンツレコードの一部であってよい)は、動作246の一部として識別されてよい。記憶されたハッシュを識別するのに、多様な他の技法のうちの任意のものが使用されてよいことが理解されるであろう。 At operation 246, the stored hash is identified in the distributed ledger. The stored hash may be part of a content record according to aspects described herein. In examples, the content record may be associated with the content via a reference or other association. In some examples, validation may not be performed only on the content, but may also be performed on the metadata. In such examples, the stored metadata hash (which may be part of the content record, for example) may be identified as part of operation 246. It will be appreciated that any of a variety of other techniques may be used to identify the stored hash.

判断248において、ハッシュが一致するか否かが判断される。例えば、動作242において受信されるコンテンツハッシュ又は動作244において生成されるコンテンツハッシュは、動作246において識別されるコンテンツハッシュと比較されてよい。例において、厳密な一致が使用される。他の例では、ハッシュは、複数のサブパートを有してよく、ここで、厳密な一致は、第1のサブパートを比較するのに使用される。ハッシュの他のサブパートは、コンテンツ解像度(例えば、HD、4K、及び/又は8Kコンテンツのためのサブパートについての異なるハッシュ)及び/又はコンテンツソース(例えば、ストリーミングプラットフォームは、オリジナルコンテンツ公開者とは異なるハッシュサブパートを有してよい)に関連付けられてよい。動作246において上記で記載されたように、追加の情報が、メタデータハッシュ等の決定の一部として評価されてよい。幾つかの事例では、メタデータ自体は、コンテンツレコードの一部として記憶されてよく、それにより、照合技法が、メタデータの態様を評価するのに使用され得る。それゆえ、多様な技法のうちの任意のものが、コンテンツハッシュが一致するか否かを判断するのに使用されてよく、一致は、厳密な一致である必要はないことが理解されるであろう。 At decision 248, it is determined whether the hashes match. For example, the content hash received at operation 242 or the content hash generated at operation 244 may be compared to the content hash identified at operation 246. In an example, an exact match is used. In another example, the hash may have multiple subparts, where an exact match is used to compare the first subpart. Other subparts of the hash may be associated with the content resolution (e.g., different hashes for subparts for HD, 4K, and/or 8K content) and/or the content source (e.g., a streaming platform may have a different hash subpart than the original content publisher). As described above at operation 246, additional information may be evaluated as part of the determination of the metadata hash, etc. In some cases, the metadata itself may be stored as part of the content record, whereby matching techniques may be used to evaluate aspects of the metadata. It will be appreciated, therefore, that any of a variety of techniques may be used to determine whether the content hashes match, and that the match need not be an exact match.

判断248において、ハッシュが一致しないと判断された場合、フローは、「いいえ」に分岐して動作250に向かい、ここで、コンテンツはバリデートされないというインジケーションが提供される。例において、インジケーションは、なぜバリデーションが失敗したか(例えば、ハッシュサブパートが一致しなかった、特定のメタデータがバリデーションを失敗した等)を更に含む。フローは、動作250において終了する。 If at decision 248 it is determined that the hashes do not match, the flow branches "No" to operation 250 where an indication is provided that the content is not validated. In an example, the indication further includes why validation failed (e.g., hash subparts did not match, certain metadata failed validation, etc.). The flow ends at operation 250.

しかしながら、ハッシュが一致すると判断された場合、フローは、その代わりに「はい」に分岐して動作252に向かい、ここで、コンテンツがバリデートされているというインジケーションが提供される。幾つかの例では、バリデーションは、バリデートされた情報である、より具体的なメタデータについてインジケーションを含む(例えば、厳密ではない一致は、メタデータが正しいが不完全である、例えば、フルネームではなく名前及び苗字の俳優/女優、厳密な日付ではなくリリース年全体を有する等であることを示し得る)。フローは、動作252において終了する。 However, if it is determined that the hashes match, the flow instead branches "Yes" to operation 252 where an indication is provided that the content has been validated. In some examples, the validation includes an indication of the more specific metadata that was validated (e.g., a non-exact match may indicate that the metadata is correct but incomplete, e.g., having the actor/actress first and last name rather than the full name, the entire release year rather than the exact date, etc.). The flow ends at operation 252.

図3Aは、本明細書において説明されるAIベーストランスコーディング技術に係る、コンテンツをトランスコーディングする例示の方法300の概要を示している。例において、方法300の態様は、図1Aにおけるノード104、106、又は108等のCDNのノードによって実行される。別の例として、方法300の態様は、図1Cにおけるコンテンツプロセッサ180等のコンテンツプロセッサによって実行されてよい。 FIG. 3A illustrates an overview of an example method 300 for transcoding content in accordance with the AI-based transcoding techniques described herein. In an example, aspects of method 300 are performed by a node of a CDN, such as node 104, 106, or 108 in FIG. 1A. As another example, aspects of method 300 may be performed by a content processor, such as content processor 180 in FIG. 1C.

方法300は、動作302において開始し、ここで、コンテンツのインジケーションが受信される。コンテンツのインジケーションは、コンテンツが図1Aにおけるコンテンツソース102等のCDNに追加されているときにコンテンツソースから受信されてよい。別の例では、コンテンツのインジケーションは、図1Aにおけるクライアントデバイス110から受信され得るように、再生を開始するときにクライアントデバイスから受信されてよい。例において、コンテンツのインジケーションは、要求されたフォーマットの情報(例えば、オーディオチャネルの数、オーディオフォーマット、カラー深度等)の中でもとりわけ、コンテンツが記憶されたロケーション及びコンテンツの要求された解像度を含む。要求されたフォーマットの情報は、コンテンツの現在のフォーマットとは異なっていてよく、例えば、要求されたフォーマットの情報は、より高い解像度又はより多くの数のチャネルを指定してよい。幾つかの事例では、インジケーションは、要求されたフォーマットの情報を含む必要はなく、要求されたフォーマットの情報は、代わりに、デバイス特性(例えば、スクリーンサイズ、利用可能なスピーカの数、利用可能な帯域幅等)に基づいて決定されてよい。 Method 300 begins at operation 302, where an indication of content is received. The indication of content may be received from a content source when the content is being added to a CDN, such as content source 102 in FIG. 1A. In another example, the indication of content may be received from a client device when initiating playback, such as may be received from client device 110 in FIG. 1A. In an example, the indication of content includes a location where the content is stored and a requested resolution of the content, among other requested format information (e.g., number of audio channels, audio format, color depth, etc.). The requested format information may be different from the current format of the content, for example, the requested format information may specify a higher resolution or a greater number of channels. In some cases, the indication need not include the requested format information, which may instead be determined based on device characteristics (e.g., screen size, number of available speakers, available bandwidth, etc.).

フローは、動作304に進み、ここで、トランスコーディングモデルが選択される。例において、動作304の態様は、図1Cにおけるコンテンツプロセッサ180のモデル選択器182等のモデル選択器によって実行される。例えば、トランスコーディングモデルは、限定されないが、コンテンツメタデータ(例えば、特定のコンテンツタイプを示し得るジャンル、俳優/女優等)、ビデオ解析(例えば、ビットレート、フレーム複雑度、明度/暗度等)、オリジナルコンテンツ解像度、ターゲットコンテンツ解像度、動きベクトル、生産年度、フォーマット又はコーデックタイプ、及び/又は消費者又は他のユーザから受信されたフィードバックを含む多様な基準に従って、一組のトランスコーディングモデルから選択されてよい。幾つかの例では、動作304は、いずれのトランスコーディングモデルを適用すべきかを決定するために複数のトランスコーディングモデルを比較することを含む。図3Bの方法350は、そのような態様の一例を示しており、以下で更に詳細に論述される。 Flow proceeds to operation 304, where a transcoding model is selected. In examples, aspects of operation 304 are performed by a model selector, such as model selector 182 of content processor 180 in FIG. 1C. For example, the transcoding model may be selected from a set of transcoding models according to a variety of criteria, including, but not limited to, content metadata (e.g., genre, actors/actresses, etc., which may indicate a particular content type), video analytics (e.g., bit rate, frame complexity, lightness/darkness, etc.), original content resolution, target content resolution, motion vectors, production year, format or codec type, and/or feedback received from consumers or other users. In some examples, operation 304 includes comparing multiple transcoding models to determine which transcoding model should be applied. Method 350 of FIG. 3B illustrates one example of such an aspect, and is discussed in more detail below.

動作306において、コンテンツは、動作304において選択されたトランスコーディングモデルを使用してトランスコーディングされる。トランスコーディングは、トランスコーディングエンジン186等のトランスコーディングエンジンによって実行されてよい。本明細書において説明される態様によれば、複数のトランスコーディングモデルが、コンテンツをトランスコーディングするのに使用されてよい。例えば、第1のサブパートは、動作304において選択されたモデルに従ってトランスコーディングされてよく、その後、トランスコーディングは一時停止してよく、フローは、動作304に戻って、コンテンツの第2のサブパートのための新たなトランスコーディングモデルを選択してよい。そのような態様は、動作306から動作304への矢印によって示されている。それゆえ、トランスコーディングモデル性能は、動作304に戻ることによって周期的に評価されてよく、それにより、トランスコーディングモデルは、所与のサブパートについてのモデル性能に依存して変化し得る。幾つかの例では、コンテンツ解像度は変化し得、これにより、フローが動作304に戻り得る。他の例では、オブジェクト検出が、ビデオフレームのコンテンツを決定するか又はオブジェクトが消失したときを識別するのに使用されてよく、その両方により、フローが動作304に戻り得る。幾つかの事例では、適用されるトランスコーディングモデルは、フレーム単位で、又は他の任意のレベルの粒度に従って(例えば、キーフレーム又はイントラフレーム毎、所定の数のフレームの後等)再評価されてよい。さらに、動作304及び306は順次的に行われるものとして説明されるが、他の態様では、サブパートトランスコーディングは並列に行われてよく、異なるサブパートが異なるトランスコーディングモデルに従って同時発生的にトランスコーディングされることが理解されるであろう。 In operation 306, the content is transcoded using the transcoding model selected in operation 304. The transcoding may be performed by a transcoding engine, such as transcoding engine 186. According to aspects described herein, multiple transcoding models may be used to transcode the content. For example, a first subpart may be transcoded according to the model selected in operation 304, after which the transcoding may pause and the flow may return to operation 304 to select a new transcoding model for a second subpart of the content. Such an aspect is illustrated by the arrow from operation 306 to operation 304. Thus, the transcoding model performance may be periodically evaluated by returning to operation 304, whereby the transcoding model may change depending on the model performance for a given subpart. In some examples, the content resolution may change, which may cause the flow to return to operation 304. In other examples, object detection may be used to determine the content of the video frame or to identify when an object has disappeared, which may cause the flow to return to operation 304. In some cases, the applied transcoding model may be re-evaluated on a frame-by-frame basis or according to any other level of granularity (e.g., every key frame or intra frame, after a predetermined number of frames, etc.). Additionally, although operations 304 and 306 are described as occurring sequentially, it will be understood that in other aspects, the subpart transcoding may occur in parallel, with different subparts being transcoded concurrently according to different transcoding models.

最終的に、以前に記載されたように、イントラフレーム、予測フレーム、及び/又は双方向フレームに異なるトランスコーディングモデルが適用されてよい。それゆえ、動作306は、コンテンツをトランスコーディングするために単一のトランスコーディングモデルを適用することに制限される必要がない。むしろ、動作306は、コンテンツをトランスコーディングする間にトランスコーディングモデルを交互に入れ替えてよい。別の例として、第1のトランスコーディングモデルは、コンテンツのビデオトラックをトランスコーディングするのに使用されてよく、第2のトランスコーディングモデルは、コンテンツのオーディオトラックをトランスコーディングするのに使用されてよい。コンテンツをトランスコーディングするために1つのトランスコーディングモデルから別のトランスコーディングモデルにいつシフトすべきかを決定するのに多様な技法が使用されてよいことが理解されるであろう。 Finally, as previously described, different transcoding models may be applied to intra frames, predicted frames, and/or bidirectional frames. Therefore, operation 306 need not be limited to applying a single transcoding model to transcode the content. Rather, operation 306 may alternate between transcoding models while transcoding the content. As another example, a first transcoding model may be used to transcode a video track of the content, and a second transcoding model may be used to transcode an audio track of the content. It will be appreciated that a variety of techniques may be used to determine when to shift from one transcoding model to another transcoding model to transcode the content.

他の例では、動作304は、省略されてよく、動作306は、代わりに、コンテンツのいずれのサブパートをトランスコーディングするのにいずれのトランスコーディングモデルが使用されるべきかを指定するトランスコーディングレシピに少なくとも部分的に基づいて実行されてよい。トランスコーディングレシピは、例の中でもとりわけ、要求された解像度、オーディオチャネルの数、ビットレート、及び/又はカラー深度に関連付けられてよく、それにより、トランスコーディングレシピは、(例えば、動作302において受信されたような)コンテンツの要求において提供された要求されたフォーマットの情報に基づいて識別され得る。そのような例では、動作304を含む方法300は、別のノードにおいて実行済みであってよく、又は別の例として、動作306は、トランスコーディングレシピが任意のそのようなトランスコーディングに先立って生成されるように省略済みであってよい。 In other examples, operation 304 may be omitted and operation 306 may instead be performed based at least in part on a transcoding recipe that specifies which transcoding model should be used to transcode which sub-part of the content. The transcoding recipe may be associated with a requested resolution, number of audio channels, bit rate, and/or color depth, among other examples, such that the transcoding recipe may be identified based on requested format information provided in a request for the content (e.g., as received in operation 302). In such examples, method 300 including operation 304 may have been performed at another node, or as another example, operation 306 may be omitted such that the transcoding recipe is generated prior to any such transcoding.

フローは、動作308に進み、ここで、トランスコーディングされたコンテンツの品質が評価される。動作308は、コンテンツトランスコーディングが終了した後に実行されてもよいし、又は他の例では、トランスコーディング中に周期的に実行されてもよい。動作308の態様は、図1Cにおけるコンテンツプロセッサ180の品質評価器188等の品質評価器によって実行されてよい。例えば、決定は、プログラムによって(例えば、トランスコーディングアーティファクトを検出すること、参照フレームをトランスコーディングされたフレームと比較すること等によって)行われてよく、及び/又は明示的/暗黙的なユーザ入力に基づくものであってよい。ユーザ入力は、同じ又は同様のトランスコーディングモデルを使用して以前にトランスコーディングされたコンテンツに基づく履歴ユーザ入力であってよく、ここで、ユーザは、トランスコーディングされたコンテンツの知覚される品質(例えば、1~5のスケール上での品質、品質が良好であったか否かのバイナリインジケーション等)を示す。 Flow continues to operation 308, where the quality of the transcoded content is evaluated. Operation 308 may be performed after content transcoding is finished, or in other examples, may be performed periodically during transcoding. Aspects of operation 308 may be performed by a quality evaluator, such as quality evaluator 188 of content processor 180 in FIG. 1C. For example, the determination may be made programmatically (e.g., by detecting transcoding artifacts, comparing reference frames to the transcoded frames, etc.) and/or may be based on explicit/implicit user input. The user input may be a historical user input based on content previously transcoded using the same or similar transcoding model, where the user indicates the perceived quality of the transcoded content (e.g., quality on a scale of 1 to 5, a binary indication of whether the quality was good or not, etc.).

判断310において、品質が閾値を満たすか否かが判断される。例において、所定のエラーレート又は品質損失が、動作308において実行された評価と比較される。他の例では、所定のスコア閾値がユーザ入力と比較される。多様な他の技法及び/又はメトリックのうちの任意のもの及び関連付けられた閾値が、品質を評価するのに使用されてよいことが理解されるであろう。判断310において、品質閾値が満たされないと判断された場合、フローは、「いいえ」に分岐し、動作304に戻り、ここで、異なるトランスコーディングモデルは、コンテンツをトランスコーディングするのに使用されてよい。本明細書において使用される場合、トランスコーディングモデルは、様々な設定又は他の変数を更に含んでよく、それにより、異なるトランスコーディングモデルは、変更される設定及び/又は変数を有する同じベーストランスコーディングモデルを適用することを含んでよい。 At decision 310, it is determined whether the quality meets a threshold. In an example, a predefined error rate or quality loss is compared to the evaluation performed at operation 308. In another example, a predefined score threshold is compared to a user input. It will be appreciated that any of a variety of other techniques and/or metrics and associated thresholds may be used to evaluate the quality. If at decision 310, it is determined that the quality threshold is not met, the flow branches "NO" back to operation 304, where a different transcoding model may be used to transcode the content. As used herein, a transcoding model may further include various settings or other variables, whereby a different transcoding model may include applying the same base transcoding model with settings and/or variables that are changed.

しかしながら、トランスコーディングされたコンテンツが品質閾値を満たすと判断された場合、フローは、代わりに、「はい」に分岐して動作312に向かい、ここで、トランスコーディングされたコンテンツが提供される。例において、トランスコーディングされたコンテンツは、消費者に対する再生のためにクライアントデバイスに提供される。他の例では、トランスコーディングされたコンテンツは、記憶及び/又は1人又は複数人の消費者への後続の送信のためにCDNのノードに送信される。方法300は、事前記録されたコンテンツに限定される必要はなく、同様の技法が、例の中でもとりわけ、ストリーム又はリアルタイムコンテンツのために使用されてよい。方法300は、動作312において終了する。 However, if it is determined that the transcoded content meets the quality threshold, flow instead branches "Yes" to operation 312 where the transcoded content is provided. In an example, the transcoded content is provided to a client device for playback to a consumer. In another example, the transcoded content is transmitted to a node of a CDN for storage and/or subsequent transmission to one or more consumers. Method 300 need not be limited to pre-recorded content, and similar techniques may be used for streaming or real-time content, among other examples. Method 300 ends at operation 312.

図3Bは、本明細書において説明されるAIベーストランスコーディング技術に係る、トランスコーディングモデルを選択する例示の方法350の概要を示している。例において、方法350の態様は、図1Aにおけるノード104、106、又は108等のCDNのノードによって実行される。別の例として、方法350の態様は、図1Cにおけるコンテンツプロセッサ180等のコンテンツプロセッサによって実行されてよい。方法350の態様は、図3Aにおける方法300の動作304の一部として実行されてよい。 FIG. 3B illustrates an overview of an example method 350 for selecting a transcoding model in accordance with the AI-based transcoding techniques described herein. In an example, aspects of method 350 are performed by a node of a CDN, such as node 104, 106, or 108 in FIG. 1A. As another example, aspects of method 350 may be performed by a content processor, such as content processor 180 in FIG. 1C. Aspects of method 350 may be performed as part of operation 304 of method 300 in FIG. 3A.

方法350は、動作352において開始し、ここで、コンテンツフレームが選択される。例において、選択されたコンテンツフレームは、図3Aにおける方法300の態様を実行するものであるようなコンテンツプロセッサによってトランスコーディングされることになるフレームである。他の例では、選択されたコンテンツフレームは、キーフレーム又はコンテンツを代表すると判断されるフレームである。例えば、フレームは、例の中でもとりわけ、比較的高い程度の動き又は詳細を有する結果として選択されてよい。 Method 350 begins at operation 352, where a content frame is selected. In an example, the selected content frame is a frame that is to be transcoded by a content processor, such as one that performs aspects of method 300 in FIG. 3A. In another example, the selected content frame is a key frame or a frame determined to be representative of the content. For example, the frame may be selected as a result of having a relatively high degree of motion or detail, among other examples.

動作354において、選択されたコンテンツフレームにおいてオブジェクトが検出される。動作354の態様は、図1Cにおけるオブジェクト検出器184等のオブジェクト検出器によって実行されてよい。動作354は、オブジェクトの中でもとりわけ、1つ又は複数の無生物オブジェクト、アニメキャラクタ、及び俳優/女優を識別することを含んでよい。選択されたコンテンツフレームは、任意の数の及び/又は多様なオブジェクト認識機械学習モデルに従って処理されてよい。例えば、各オブジェクト認識機械学習モデルは、特定のサブセットのオブジェクトを認識するようにトレーニング済みであってもよいし、又は他の例では、オブジェクト認識機械学習モデルは、特定のタイプのコンテンツに従ってトレーニングされる。多様な他のオブジェクト検出技法(例えば、フレーム内のエッジを識別すること、一組のフレームにわたって動きを解析すること等)のうちの任意のものが使用されてよいことが理解されるであろう。動作354は、他の例では、方法350のモデル選択技法が検出されたオブジェクトに関して特にモデル性能を評価しなくてよいように動作354が省略されてよいことを示すために破線ボックスを使用して示されている。 In operation 354, objects are detected in the selected content frames. Aspects of operation 354 may be performed by an object detector, such as object detector 184 in FIG. 1C. Operation 354 may include identifying one or more inanimate objects, animated characters, and actors/actresses, among other objects. The selected content frames may be processed according to any number and/or variety of object recognition machine learning models. For example, each object recognition machine learning model may be trained to recognize a particular subset of objects, or in other examples, the object recognition machine learning models are trained according to a particular type of content. It will be appreciated that any of a variety of other object detection techniques (e.g., identifying edges in frames, analyzing motion over a set of frames, etc.) may be used. Operation 354 is illustrated using a dashed box to indicate that in other examples, operation 354 may be omitted such that the model selection technique of method 350 does not have to evaluate model performance specifically with respect to the detected object.

フローは、動作356に進み、ここで、コンテンツフレームの解像度が低減される。例において、低減された解像度は、本明細書において説明されるAIベーストランスコーディング技法を使用して生成されることになる視覚データの量に基づいて決定される。例えば、1080p HD(例えば、1920×1080)コンテンツを4Kコンテンツ(例えば、3840×2160)にアップスケーリングすることは、ピクセルデータの4倍の増加をもたらす。したがって、1080p HDソースは、動作356において4分の1だけ(例えば、960×540に)ダウンスケーリングされてよい。任意の数の他のダウンスケーリングされた解像度が使用されてよいことが理解されるであろう。動作356は、他の例では動作356が省略され得ることを示すために、破線ボックスを使用して示されている。例えば、動作356は、モデル処理結果が、ソースコンテンツフレームとの比較を伴うことなく、互いに比較される場合に省略されてよい。 Flow proceeds to operation 356 where the resolution of the content frame is reduced. In an example, the reduced resolution is determined based on the amount of visual data to be generated using the AI-based transcoding techniques described herein. For example, upscaling 1080p HD (e.g., 1920x1080) content to 4K content (e.g., 3840x2160) results in a four-fold increase in pixel data. Thus, a 1080p HD source may be downscaled by a factor of four (e.g., to 960x540) in operation 356. It will be appreciated that any number of other downscaled resolutions may be used. Operation 356 is illustrated using a dashed box to indicate that operation 356 may be omitted in other examples. For example, operation 356 may be omitted if the model processing results are compared to each other without involving a comparison to the source content frame.

動作358において、コンテンツフレームは、一組のトランスコーディングモデルを使用して処理される。例において、コンテンツフレームを処理することは、各トランスコーディングモデルを使用して(例えば、動作356において生成されたような)ダウンスケーリングされたコンテンツフレームをアップスケーリングして、動作352において選択されたオリジナルコンテンツフレームと同じ又は同様である解像度を有するトランスコーディングされたコンテンツフレームをもたらすことを含む。幾つかの事例では、コンテンツフレームをトランスコーディングすることは、同じベースモデルを利用するが、コンテンツフレームをトランスコーディングするのに使用される設定又は変数を変更することを含む。動作358において使用される一組のトランスコーディングモデルは、コンテンツをトランスコーディングするためにCDNによって使用されるトランスコーディングモデルの少なくともサブセットであってよい。幾つかの例では、一組のトランスコーディングモデルは、限定されないが、コンテンツメタデータ(例えば、特定のコンテンツタイプを示し得るジャンル、俳優/女優等)、ビデオ解析(例えば、ビットレート、フレーム複雑度、明度/暗度等)、オリジナルコンテンツ解像度、ターゲットコンテンツ解像度、動きベクトル、生産年度、フォーマット又はコーデックタイプ、及び/又は消費者又は他のユーザから受信されたフィードバックを含む多様な基準に従って、選択される。 In operation 358, the content frame is processed using a set of transcoding models. In an example, processing the content frame includes upscaling the downscaled content frame (e.g., as generated in operation 356) using each transcoding model to result in a transcoded content frame having the same or similar resolution as the original content frame selected in operation 352. In some cases, transcoding the content frame includes utilizing the same base model but modifying settings or variables used to transcode the content frame. The set of transcoding models used in operation 358 may be at least a subset of the transcoding models used by the CDN to transcode the content. In some examples, the set of transcoding models is selected according to a variety of criteria, including, but not limited to, content metadata (e.g., genre, actors/actresses, etc., which may indicate a particular content type), video analytics (e.g., bit rate, frame complexity, brightness/darkness, etc.), original content resolution, target content resolution, motion vectors, production year, format or codec type, and/or feedback received from consumers or other users.

フローは、動作360に進み、ここで、当該一組のトランスコーディングされたコンテンツフレームは、品質に従ってスコア付けされる。例において、トランスコーディングされたコンテンツフレームは、プログラムによって(例えば、トランスコーディングアーティファクトを検出すること、参照フレームをトランスコーディングされたフレームと比較すること等によって)スコア付けされ、及び/又は明示的/暗黙的なユーザ入力に基づくものであってよい。トランスコーディングされたコンテンツフレームは、個別にスコア付けされ、互いに対してスコア付けされ、及び/又は動作352において選択されたコンテンツフレームに基づいてスコア付けされてよい。上記で説明されたように、ユーザ入力は、並行してトランスコーディングされたフレームの表示から受信されてもよいし、又は、例の中でもとりわけ、同じ又は同様のトランスコーディングモデルを使用して以前にトランスコーディングされたコンテンツに基づく履歴ユーザ入力であってもよい。例において、動作360の態様は、図1Cにおけるコンテンツプロセッサ180の品質評価器188等の品質評価器によって実行される。 Flow proceeds to operation 360, where the set of transcoded content frames are scored according to quality. In examples, the transcoded content frames may be scored programmatically (e.g., by detecting transcoding artifacts, comparing reference frames to the transcoded frames, etc.) and/or based on explicit/implicit user input. The transcoded content frames may be scored individually, scored relative to each other, and/or scored based on the content frames selected in operation 352. As discussed above, the user input may be received from a display of parallel transcoded frames, or may be historical user input based on previously transcoded content using the same or similar transcoding model, among other examples. In examples, aspects of operation 360 are performed by a quality evaluator, such as quality evaluator 188 of content processor 180 in FIG. 1C.

動作362において、最高スコアを有するトランスコーディングモデルのインジケーションが提供される。例において、インジケーションは、図1Cにおけるコンテンツプロセッサ180のトランスコーディングエンジン186等のトランスコーディングエンジンに提供される。一例として、インジケーションは、コンテンツをトランスコーディングするために図3Aにおける方法300の動作306において使用されてよい。例において、インジケーションは、トランスコーディングされたコンテンツフレームを含み、それにより、トランスコーディングエンジンは、動作352において選択されたコンテンツフレームを再トランスコーディングする必要はない。方法350が単一のコンテンツフレームを選択及び処理するものとして説明されるが、他の例では、複数のコンテンツフレームが処理されてよいことが理解されるであろう。例えば、方法350は、一組のフレームのためのトランスコーディングモデルを決定してよく、その後、モデル選択プロセスは、同じ又は異なるトランスコーディングモデルを識別するために再び実行されてよい。そのような例では、インジケーションは、トランスコーディングモデルが(例えば、フレームの数、タイムスタンプに従って等で)使用されるべきであるコンテンツサブパートのインジケーションを含む。フローは、動作362において終了する。 At operation 362, an indication of the transcoding model having the highest score is provided. In an example, the indication is provided to a transcoding engine, such as transcoding engine 186 of content processor 180 in FIG. 1C. As an example, the indication may be used at operation 306 of method 300 in FIG. 3A to transcode the content. In an example, the indication includes the transcoded content frame, such that the transcoding engine does not need to re-transcode the content frame selected at operation 352. It will be appreciated that while method 350 is described as selecting and processing a single content frame, in other examples, multiple content frames may be processed. For example, method 350 may determine a transcoding model for a set of frames, after which the model selection process may be performed again to identify the same or a different transcoding model. In such an example, the indication includes an indication of the content sub-part for which the transcoding model should be used (e.g., according to number of frames, timestamp, etc.). The flow ends at operation 362.

図4は、本実施形態のうちの1つ又は複数が実装され得る適した動作環境400の一例を示している。これは、適した動作環境の単に1つの例であり、使用又は機能の範囲に関していかなる限定も提案することを意図されていない。使用に適し得る他の周知のコンピューティングシステム、環境、及び/又は構成は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、スマートフォン等のプログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記システム又はデバイスのうちの任意のものを含む分散コンピューティング環境等を含むが、これらに限定されない。 Figure 4 illustrates an example of a suitable operating environment 400 in which one or more of the present embodiments may be implemented. This is merely one example of a suitable operating environment and is not intended to suggest any limitations as to scope of use or functionality. Other well-known computing systems, environments, and/or configurations that may be suitable for use include, but are not limited to, personal computers, server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics such as smartphones, network PCs, minicomputers, mainframe computers, distributed computing environments including any of the above systems or devices, and the like.

その最も基本的な構成において、動作環境400は、典型的には、少なくとも1つの処理ユニット402及びメモリ404を備えてよい。コンピューティングデバイスの厳密な構成及びタイプに依存して、メモリ404(とりわけ、API、プログラム等、及び/又は本明細書において開示されるシステム及び方法を実装又は実行する他のコンポーネント又は命令等を記憶する)は、揮発性(RAM等)、不揮発性(ROM、フラッシュメモリ等のような)、又はこれら2つの何らかの組み合わせであってよい。この最も基本的な構成は、破線406によって図4において示されている。さらに、環境400は、限定されないが磁気又は光学ディスク又はテープを含む記憶デバイス(取り外し可能408及び/又は取り外し不能410)を含んでもよい。同様に、環境400は、キーボード、マウス、ペン、音声入力等のような入力デバイス414、及び/又は、ディスプレイ、スピーカ、プリンタ等のような出力デバイス416を有してもよい。LAN、WAN、ポイントツーポイント等のような1つ又は複数の通信接続412も環境に含まれてよい。 In its most basic configuration, the operating environment 400 may typically include at least one processing unit 402 and memory 404. Depending on the exact configuration and type of computing device, the memory 404 (which stores, among other things, APIs, programs, etc., and/or other components or instructions that implement or execute the systems and methods disclosed herein) may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.), or some combination of the two. This most basic configuration is illustrated in FIG. 4 by dashed line 406. Additionally, the environment 400 may include storage devices (removable 408 and/or non-removable 410), including but not limited to magnetic or optical disks or tapes. Similarly, the environment 400 may have input devices 414, such as a keyboard, mouse, pen, voice input, etc., and/or output devices 416, such as a display, speakers, printer, etc. One or more communication connections 412, such as a LAN, WAN, point-to-point, etc., may also be included in the environment.

動作環境400は、少なくとも何らかの形態のコンピュータ可読媒体を含んでよい。コンピュータ可読媒体は、処理ユニット402、又は動作環境を含む他のデバイスによってアクセスされ得る任意の利用可能な媒体であってよい。例えば、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含んでよい。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータ等の情報の記憶のための任意の方法又は技術において実装される、揮発性及び不揮発性、取り外し可能及び取り外し不能な媒体を含んでよい。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)又は他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又は他の磁気記憶デバイス、又は、所望の情報を記憶するのに使用され得る他の任意の非一時的媒体を含んでよい。コンピュータ記憶媒体は、通信媒体を含まなくてよい。 The operating environment 400 may include at least some form of computer-readable media. Computer-readable media may be any available media that can be accessed by the processing unit 402 or other devices that comprise the operating environment. For example, computer-readable media may include computer storage media and communication media. Computer storage media may include volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media may include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVDs) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transitory medium that can be used to store the desired information. Computer storage media may not include communication media.

通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、又は、搬送波又は他の搬送メカニズム等の被変調データ信号における他のデータを具現化してよく、任意の情報伝達媒体を含む。「被変調データ信号」という用語は、信号において情報を符号化するように設定又は変更されたその特性のうちの1つ又は複数を有する信号を意味し得る。例えば、通信媒体は、有線ネットワーク又は直接有線接続等の有線媒体、及び音響、RF、赤外線及び他の無線媒体等の無線媒体を含んでよい。上記のうちの任意のものの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。 Communication media may embody computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term "modulated data signal" may mean a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. For example, communication media may include wired media, such as a wired network or direct-wired connection, and wireless media, such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.

動作環境400は、1つ又は複数のリモートコンピュータへの論理接続を使用してネットワーク接続環境において動作する単一のコンピュータであってよい。リモートコンピュータは、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス又は他の一般的なネットワークノードであってよく、典型的には、上記で説明された要素の多く又は全て、並びにそのように言及されていない他のものを含む。論理接続は、利用可能な通信媒体によってサポートされる任意の方法を含んでよい。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット及びインターネットにおいてよく見られる。 Operating environment 400 may be a single computer operating in a networked environment using logical connections to one or more remote computers. The remote computers may be personal computers, servers, routers, network PCs, peer devices or other common network nodes, and typically include many or all of the elements described above, as well as others not so mentioned. The logical connections may include any method supported by the available communications media. Such networking environments are common in offices, enterprise-wide computer networks, intranets and the Internet.

本明細書において説明される異なる態様は、本明細書において開示されたシステム及び方法を実装及び実行するために、ソフトウェア、ハードウェア、又はソフトウェア及びハードウェアの組み合わせを使用して利用されてよい。本開示全体を通して特定のデバイスが特定の機能を実行するものとして記載されているが、当業者であれば、これらのデバイスは例示の目的で提供され、本開示の範囲から逸脱することなく、本明細書において開示された機能を実行するために他のデバイスが利用されてよいことを認識するであろう。 The different aspects described herein may be utilized using software, hardware, or a combination of software and hardware to implement and execute the systems and methods disclosed herein. Although specific devices are described throughout this disclosure as performing specific functions, those skilled in the art will recognize that these devices are provided for illustrative purposes and that other devices may be utilized to perform the functions disclosed herein without departing from the scope of the disclosure.

上記で言及されたように、複数のプログラムモジュール及びデータファイルがシステムメモリ404に記憶されてよい。処理ユニット402上で実行される間、プログラムモジュール(例えば、アプリケーション、入力/出力(I/O)管理、及び他のユーティリティ)は、限定されないが、例えば図2A~図2C及び図3A~図3Bにおいて示されている方法等の、本明細書において説明される動作方法のステージのうちの1つ又は複数を含むプロセスを実行してよい。 As mentioned above, a number of program modules and data files may be stored in the system memory 404. While executing on the processing unit 402, the program modules (e.g., applications, input/output (I/O) management, and other utilities) may perform processes that include one or more of the stages of the operational methods described herein, such as, but not limited to, the methods shown in Figures 2A-2C and 3A-3B.

さらに、本発明の例は、ディスクリート電子要素を含む電気回路、論理ゲートを含むパッケージ化された又は統合された電子チップ、マイクロプロセッサを利用する回路において、又は、電子要素又はマイクロプロセッサを含む単一のチップ上で、実践されてよい。例えば、本発明の例は、図4において示されたコンポーネントの各々又は多くが単一の集積回路上に統合され得るシステムオンチップ(SOC)を介して実践されてよい。そのようなSOCデバイスは、1つ又は複数の処理ユニット、グラフィックスユニット、通信ユニット、システム仮想化ユニット及び様々なアプリケーション機能を含んでよく、その全てが、単一の集積回路としてチップ基板上に統合(又は「バーン(burned)」)される。SOCを介して動作する場合、本明細書において説明される機能は、単一の集積回路(チップ)上で動作環境400の他のコンポーネントと統合された特定用途向けロジックを介して動作されてよい。本開示の例は、例えば、限定されないが、機械、光学、流体、及び量子技術を含む、AND、OR,及びNOT等の論理演算を実行することが可能な他の技術を使用して実践されてもよい。加えて、本発明の例は、汎用コンピュータ内で、又は他の任意の回路又はシステムにおいて実践されてよい。 Additionally, examples of the present invention may be practiced in electrical circuits including discrete electronic elements, packaged or integrated electronic chips including logic gates, circuits utilizing a microprocessor, or on a single chip including electronic elements or a microprocessor. For example, examples of the present invention may be practiced via a system-on-chip (SOC) in which each or many of the components shown in FIG. 4 may be integrated onto a single integrated circuit. Such an SOC device may include one or more processing units, graphics units, communication units, system virtualization units, and various application functions, all of which are integrated (or "burned") onto a chip substrate as a single integrated circuit. When operating via an SOC, the functions described herein may be operated via application-specific logic integrated with other components of the operating environment 400 on a single integrated circuit (chip). Examples of the present disclosure may be practiced using other technologies capable of performing logical operations such as AND, OR, and NOT, including, for example, but not limited to, mechanical, optical, fluidic, and quantum technologies. Additionally, examples of the present invention may be practiced within a general-purpose computer or in any other circuit or system.

本開示は、可能な実施形態のうちの一部のみが示された添付図面を参照して本技術の幾つかの態様を説明した。しかしながら、他の態様は、多くの異なる形式において具現化されてよく、本明細書において記載された実施形態に限定されるものと解釈されるべきはない。むしろ、これらの態様は、本開示が、徹底的かつ完全であり、当業者に可能な実施形態の範囲を完全に伝達するように提供された。 This disclosure has described several aspects of the technology with reference to the accompanying drawings, in which only some of the possible embodiments are shown. However, other aspects may be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these aspects are provided so that this disclosure will be thorough and complete, and will fully convey the scope of possible embodiments to those skilled in the art.

本明細書において特定の態様が説明されたものの、技術の範囲はそれらの特定の実施形態に限定されない。当業者であれば、本技術の範囲及び趣旨内にある他の実施形態又は改善を認識するであろう。したがって、具体的な構造、動作、又は媒体は、例示的な実施形態としてのみ開示されている。本技術の範囲は、以下の特許請求の範囲及びその中の任意の均等物によって定義される。
[他の可能な項目]
[項目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に記載の方法。
Although specific aspects have been described herein, the scope of the technology is not limited to those specific embodiments. Those skilled in the art will recognize other embodiments or improvements that are within the scope and spirit of the technology. Thus, specific structures, operations, or media are disclosed only as exemplary embodiments. The scope of the technology is defined by the following claims and any equivalents therein.
[Other possible items]
[Item 1]
13. A system comprising:
at least one processor; and a memory operatively connected to the at least one processor and storing instructions that, when executed by the at least one processor, cause the system to perform a set of operations, the set of operations being:
receiving a request for content from a content delivery network (CDN) from a client device, where the request for content includes requested format information indicating a requested resolution that is different from a resolution of the content;
determining a transcoding model from a set of transcoding models for transcoding the content;
transcoding at least a portion of the content using the determined transcoding model to generate transcoded content having the requested resolution; and providing the transcoded content to the client device in response to a request for the content.
[Item 2]
Determining the transcoding model comprises:
selecting a content frame from the content;
downscaling the content frame;
The downscaled content frame:
2. The system of claim 1, comprising: processing using a first transcoding model to generate a first transcoded frame; and a second transcoding model to generate a second transcoded frame; and evaluating the first transcoded frame and the second transcoded frame based on the content frame to determine the transcoding model, where the transcoding model is either the first transcoding model or the second transcoding model.
[Item 3]
3. The system of claim 2, wherein determining the transcoding model further comprises recognizing objects of the content frames; and the first transcoded frame and the second transcoded frame are further evaluated based at least in part on the recognized objects of the content frames to determine the transcoding model.
[Item 4]
The transcoding model is a first transcoding model;
the at least one portion of the content is a first portion of the content; and the set of actions is:
2. The system of claim 1, further comprising: determining a second transcoding model for transcoding the content from a set of transcoding models; and transcoding a second portion of the content using the determined transcoding model to further generate the transcoded content having the requested resolution.
[Item 5]
the client device is a first client device;
the request for content is a first request for content; and the set of actions is:
storing the transcoded content in a data store;
13. The system of claim 1, further comprising: receiving a second request for the content from a second client device; and providing the transcoded content from the data store in response to the second request for the content.
[Item 6]
The set of actions are:
2. The system of claim 1, further comprising: receiving a request for the transcoded content from a node of the CDN; and providing the transcoded content to the node of the CDN.
[Item 7]
2. The system of claim 1, wherein the requested format information includes at least one of audio requested format information or video requested format information.
[Item 8]
1. A method for transcoding content using a transcoding recipe, comprising:
From a node of a content delivery network (CDN), the content and:
receiving a transcoding recipe indicating: a first transcoding model for a first sub-part of the content; and a second transcoding model for a second sub-part of the content;
transcoding the first sub-part of the content using the first transcoding model to generate a first transcoded sub-part;
transcoding the second subpart of the content using the second transcoding model to generate a second transcoded subpart; and providing transcoded content including the first transcoded subpart and the second transcoded subpart to a client device.
[Item 9]
receiving a request for the content from the client device;
9. The method of claim 8, further comprising: wherein the first sub-part and the second sub-part are transcoded based at least in part on receiving the request.
[Item 10]
10. The method of claim 9, wherein the request for the content includes information of a requested format; and the transcoding recipe is determined based at least in part on the information of the requested format.
[Item 11]
the client device is a first client device;
The method comprises:
storing the transcoded content in a data store;
9. The method of claim 8, further comprising: receiving a request for the content from a second client device; and providing the transcoded content from the data store in response to the request for the content.
[Item 12]
9. The method of claim 8, wherein the first sub-part of the content is a video track of the content; and the second sub-part of the content is an audio track of the content.
[Item 13]
9. The method of claim 8, further comprising: receiving a request for the transcoded content from a node of the CDN; and providing the transcoded content to the node of the CDN.
[Item 14]
1. A method for transcoding content from a content provider, comprising:
receiving a request for content from a content delivery network (CDN) from a client device, where the request for content includes requested format information indicating a requested resolution that is different from a resolution of the content;
determining a transcoding model for transcoding the content from a set of transcoding models;
transcoding at least a portion of the content using the determined transcoding model to generate transcoded content having the requested resolution; and providing the transcoded content to the client device in response to a request for the content.
[Item 15]
The step of determining the transcoding model comprises:
selecting a content frame from the content;
downscaling the content frame;
The downscaled content frame:
15. The method of claim 14, comprising: processing using a first transcoding model to generate a first transcoded frame; and a second transcoding model to generate a second transcoded frame; and evaluating the first transcoded frame and the second transcoded frame based on the content frame to determine the transcoding model, where the transcoding model is either the first transcoding model or the second transcoding model.
[Item 16]
16. The method of claim 15, wherein determining the transcoding model further comprises recognizing objects of the content frames; and the first transcoded frame and the second transcoded frame are further evaluated based at least in part on the recognized objects of the content frames to determine the transcoding model.
[Item 17]
The transcoding model is a first transcoding model;
the at least one portion of the content is a first portion of the content; and the method includes:
determining a second transcoding model for transcoding the content from a set of transcoding models; and transcoding a second portion of the content using the determined transcoding model to further generate the transcoded content having the requested resolution.
[Item 18]
the client device is a first client device;
the request for content is a first request for content; and the method includes:
storing the transcoded content in a data store;
15. The method of claim 14, further comprising: receiving a second request for the content from a second client device; and providing the transcoded content from the data store in response to the second request for the content.
[Item 19]
15. The method of claim 14, further comprising: receiving a request for the transcoded content from a node of the CDN; and providing the transcoded content to the node of the CDN.
[Item 20]
15. The method of claim 14, wherein the requested format information includes at least one of audio requested format information or video requested format information.
[Item 21]
13. A system comprising:
at least one processor; and a memory operatively connected to the at least one processor and storing instructions that, when executed by the at least one processor, cause the system to perform a set of operations, the set of operations being:
receiving an indication of the content from a content source;
storing said content in a data store;
generating a content hash based on the content;
storing the content hash as a content record in a distributed ledger;
receiving a request for the content from a client device; and providing at least a portion of the content from the data store in response to the request.
[Item 22]
The set of actions are:
generating a smart contract associated with the content, where the smart contract is associated with a trigger;
22. The system of claim 21, further comprising: identifying the trigger based on the request for the content from the client device; and in response to identifying the trigger, executing the smart contract to generate a new record in the distributed ledger.
[Item 23]
The set of actions are:
23. The system of claim 22, further comprising: processing the distributed ledger to identify at least the new record; and generating accounting indications associated with the content based at least in part on the new record; and providing the accounting indications to the content source.
[Item 24]
The content hash is a first content hash and the set of actions is:
receiving a validation request from the client device, the validation request including a second content hash;
22. The system of claim 21, further comprising: determining that the content is validated if the first content hash matches the second content hash; and, in response to the validation request, providing an indication that the content is validated.
[Item 25]
22. The system of claim 21, wherein the indication of the content further includes metadata associated with the content; and the metadata is not used to generate the content hash.
[Item 26]
26. The system of claim 25, wherein at least a portion of the metadata is stored in the content record.
[Item 27]
26. The system of claim 25, wherein at least a portion of the metadata is stored in a metadata repository and associated with the content hash.
[Item 28]
1. A method for generating a smart contract for content delivery network (CDN) content, comprising:
receiving an indication of the content from a content source;
generating a smart contract associated with the content, where the smart contract is associated with a trigger;
storing the smart contract in a distributed ledger;
receiving a request for the content from a client device;
identifying the trigger based on the request for the content from the client device;
in response to identifying the trigger, executing the smart contract to generate a new record in the distributed ledger; and in response to the request, providing at least a portion of the content.
[Item 29]
30. The method of claim 28, further comprising: processing the distributed ledger to identify at least the new records; and generating accounting indications associated with the content based at least in part on the new records; and providing the accounting indications to the content sources.
[Item 30]
generating a content hash based on the content;
30. The method of claim 28, further comprising storing the content hash as a content record in the distributed ledger.
[Item 31]
The content hash is a first content hash, and the method comprises:
receiving a validation request from the client device, the validation request including a second content hash;
31. The method of claim 30, further comprising: determining that the content is validated if the first content hash matches the second content hash; and providing an indication that the content is validated in response to the validation request.
[Item 32]
31. The method of claim 30, wherein the indication of the content further includes metadata associated with the content; and the metadata is not used to generate the content hash.
[Item 33]
30. The method of claim 28, wherein the content is a subpart of streaming content from the content source.
[Item 34]
1. A method of adding content to a content delivery network (CDN), comprising:
receiving an indication of the content from a content source;
storing said content in a data store;
generating a content hash based on the content;
storing the content hash as a content record in a distributed ledger;
receiving a request for the content from a client device; and providing at least a portion of the content from the data store in response to the request.
[Item 35]
generating a smart contract associated with the content, where the smart contract is associated with a trigger;
35. The method of claim 34, further comprising: identifying the trigger based on the request for the content from the client device; and in response to identifying the trigger, executing the smart contract to generate a new record in the distributed ledger.
[Item 36]
36. The method of claim 35, further comprising: processing the distributed ledger to identify at least the new records; and generating accounting indications associated with the content based at least in part on the new records; and providing the accounting indications to the content sources.
[Item 37]
The content hash is a first content hash, and the method comprises:
receiving a validation request from the client device, the validation request including a second content hash;
35. The method of claim 34, further comprising: determining that the content is validated if the first content hash matches the second content hash; and providing an indication that the content is validated in response to the validation request.
[Item 38]
35. The method of claim 34, wherein the indication of the content further includes metadata associated with the content; and the metadata is not used to generate the content hash.
[Item 39]
40. The method of claim 38, wherein at least a portion of the metadata is stored in the content record.
[Item 40]
40. The method of claim 38, wherein at least a portion of the metadata is stored in a metadata repository and associated with the content hash.

Claims (12)

システムであって:
少なくとも1つのプロセッサ;及び
前記少なくとも1つのプロセッサに動作可能に接続されているとともに、前記少なくとも1つのプロセッサによって実行されると、前記システムに、一組の動作を実行させる命令を記憶するメモリ
を備え、前記一組の動作は:
クライアントデバイスから、コンテンツ配信ネットワーク(CDN)のコンテンツの要求を受信すること、ここで、前記コンテンツの要求は、前記コンテンツの解像度とは異なる要求解像度を示す要求されたフォーマットの情報を含む;
一組のトランスコーディングモデルから、前記コンテンツをトランスコーディングするためにトランスコーディングモデルを決定すること;
前記決定されたトランスコーディングモデルを使用して、前記コンテンツの少なくとも一部をトランスコーディングし、前記要求解像度を有するトランスコーディングされたコンテンツを生成すること;及び
前記コンテンツの要求に応答して、前記トランスコーディングされたコンテンツを前記クライアントデバイスに提供すること
を有し、
前記トランスコーディングモデルを決定することは:
前記コンテンツからコンテンツフレームを選択すること;
前記コンテンツフレームをダウンスケーリングすること;
前記ダウンスケーリングされたコンテンツフレームを:
第1のトランスコーディングされたフレームを生成する第1のトランスコーディングモデル;及び
第2のトランスコーディングされたフレームを生成する第2のトランスコーディングモデル
を使用して処理すること;及び
前記トランスコーディングモデルを決定するために、前記コンテンツフレームに基づいて、前記第1のトランスコーディングされたフレーム及び前記第2のトランスコーディングされたフレームを評価すること、ここで、前記トランスコーディングモデルは、前記第1のトランスコーディングモデル又は前記第2のトランスコーディングモデルのいずれかである
を含む、システム。
13. A system comprising:
at least one processor; and a memory operatively connected to the at least one processor and storing instructions that, when executed by the at least one processor, cause the system to perform a set of operations, the set of operations being:
receiving a request for content from a content delivery network (CDN) from a client device, where the request for content includes requested format information indicating a requested resolution that is different from a resolution of the content;
determining a transcoding model from a set of transcoding models for transcoding the content;
transcoding at least a portion of the content using the determined transcoding model to generate transcoded content having the requested resolution; and providing the transcoded content to the client device in response to a request for the content ,
Determining the transcoding model comprises:
selecting a content frame from the content;
downscaling the content frame;
The downscaled content frame:
a first transcoding model that generates a first transcoded frame; and
A second transcoding model for generating a second transcoded frame.
Processing using
evaluating the first transcoded frame and the second transcoded frame based on the content frame to determine the transcoding model, where the transcoding model is either the first transcoding model or the second transcoding model.
Including, the system.
前記トランスコーディングモデルを決定することは、前記コンテンツフレームのオブジェクトを認識することを更に含み;及び
前記第1のトランスコーディングされたフレーム及び前記第2のトランスコーディングされたフレームは、前記トランスコーディングモデルを決定するために前記コンテンツフレームの前記認識されたオブジェクトに少なくとも部分的に基づいて更に評価される、請求項に記載のシステム。
2. The system of claim 1, wherein determining the transcoding model further comprises recognizing objects of the content frames; and the first transcoded frame and the second transcoded frame are further evaluated based at least in part on the recognized objects of the content frames to determine the transcoding model .
前記トランスコーディングモデルは、第1のトランスコーディングモデルであり;
前記コンテンツの前記少なくとも一部は、前記コンテンツの第1の部分であり;及び
前記一組の動作は:
一組のトランスコーディングモデルから、前記コンテンツをトランスコーディングするための第2のトランスコーディングモデルを決定すること;及び
前記決定されたトランスコーディングモデルを使用して、前記コンテンツの第2の部分をトランスコーディングし、前記要求解像度を有する前記トランスコーディングされたコンテンツを更に生成すること
を更に有する、請求項1または2に記載のシステム。
The transcoding model is a first transcoding model;
the at least one portion of the content is a first portion of the content; and the set of actions is:
3. The system of claim 1, further comprising: determining a second transcoding model for transcoding the content from a set of transcoding models; and transcoding a second portion of the content using the determined transcoding model to further generate the transcoded content having the requested resolution.
前記クライアントデバイスは、第1のクライアントデバイスであり;
前記コンテンツの要求は、コンテンツの第1の要求であり;及び
前記一組の動作は:
前記トランスコーディングされたコンテンツをデータストアに記憶すること;
第2のクライアントデバイスから、前記コンテンツの第2の要求を受信すること;及び
前記コンテンツの前記第2の要求に応答して、前記データストアから前記トランスコーディングされたコンテンツを提供すること
を更に有する、請求項1~のいずれか1項に記載のシステム。
the client device is a first client device;
the request for content is a first request for content; and the set of actions is:
storing the transcoded content in a data store;
The system of any one of claims 1 to 3, further comprising: receiving a second request for the content from a second client device; and providing the transcoded content from the data store in response to the second request for the content.
前記一組の動作は:
前記CDNのノードから、前記トランスコーディングされたコンテンツの要求を受信すること;及び
前記CDNの前記ノードに、前記トランスコーディングされたコンテンツを提供すること
を更に有する、請求項1~のいずれか1項に記載のシステム。
The set of actions are:
The system of claim 1 , further comprising: receiving a request for the transcoded content from a node of the CDN; and providing the transcoded content to the node of the CDN.
前記要求されたフォーマットの情報は、オーディオの要求されたフォーマットの情報又はビデオの要求されたフォーマットの情報のうちの少なくとも1つを含む、請求項1~のいずれか1項に記載のシステム。 The system of any one of claims 1 to 5 , wherein the requested format information includes at least one of audio requested format information or video requested format information. コンテンツプロバイダからのコンテンツをトランスコーディングする方法であって:
クライアントデバイスから、コンテンツ配信ネットワーク(CDN)のコンテンツの要求を受信する段階、ここで、前記コンテンツの要求は、前記コンテンツの解像度とは異なる要求解像度を示す要求されたフォーマットの情報を含む;
一組のトランスコーディングモデルから、前記コンテンツをトランスコーディングするためにトランスコーディングモデルを決定する段階;
前記決定されたトランスコーディングモデルを使用して、前記コンテンツの少なくとも一部をトランスコーディングし、前記要求解像度を有するトランスコーディングされたコンテンツを生成する段階;及び
前記コンテンツの要求に応答して、前記トランスコーディングされたコンテンツを前記クライアントデバイスに提供する段階
を備え
前記トランスコーディングモデルを決定する段階は:
前記コンテンツからコンテンツフレームを選択する段階;
前記コンテンツフレームをダウンスケーリングする段階;
前記ダウンスケーリングされたコンテンツフレームを:
第1のトランスコーディングされたフレームを生成する第1のトランスコーディングモデル;及び
第2のトランスコーディングされたフレームを生成する第2のトランスコーディングモデル
を使用して処理する段階;及び
前記トランスコーディングモデルを決定するために、前記コンテンツフレームに基づいて、前記第1のトランスコーディングされたフレーム及び前記第2のトランスコーディングされたフレームを評価する段階、ここで、前記トランスコーディングモデルは、前記第1のトランスコーディングモデル又は前記第2のトランスコーディングモデルのいずれかである
を有する、方法。
1. A method for transcoding content from a content provider, comprising:
receiving a request for content from a content delivery network (CDN) from a client device, where the request for content includes requested format information indicating a requested resolution that is different from a resolution of the content;
determining a transcoding model for transcoding the content from a set of transcoding models;
transcoding at least a portion of the content using the determined transcoding model to generate transcoded content having the requested resolution; and providing the transcoded content to the client device in response to a request for the content ,
The step of determining the transcoding model comprises:
selecting a content frame from the content;
downscaling the content frame;
The downscaled content frame:
a first transcoding model that generates a first transcoded frame; and
A second transcoding model for generating a second transcoded frame.
processing using
evaluating the first transcoded frame and the second transcoded frame based on the content frame to determine the transcoding model, where the transcoding model is either the first transcoding model or the second transcoding model.
The method comprising:
前記トランスコーディングモデルを決定する段階は、前記コンテンツフレームのオブジェクトを認識する段階を更に有し;及び
前記第1のトランスコーディングされたフレーム及び前記第2のトランスコーディングされたフレームは、前記トランスコーディングモデルを決定するために前記コンテンツフレームの前記認識されたオブジェクトに少なくとも部分的に基づいて更に評価される、請求項に記載の方法。
8. The method of claim 7, wherein determining the transcoding model further comprises recognizing objects in the content frames; and the first transcoded frame and the second transcoded frame are further evaluated based at least in part on the recognized objects in the content frames to determine the transcoding model .
前記トランスコーディングモデルは、第1のトランスコーディングモデルであり;
前記コンテンツの前記少なくとも一部は、前記コンテンツの第1の部分であり;及び
前記方法は:
一組のトランスコーディングモデルから、前記コンテンツをトランスコーディングするための第2のトランスコーディングモデルを決定する段階;及び
前記決定されたトランスコーディングモデルを使用して、前記コンテンツの第2の部分をトランスコーディングし、前記要求解像度を有する前記トランスコーディングされたコンテンツを更に生成する段階
を更に備える、請求項7または8に記載の方法。
The transcoding model is a first transcoding model;
the at least one portion of the content is a first portion of the content; and the method includes:
9. The method of claim 7 or 8, further comprising: determining a second transcoding model from a set of transcoding models for transcoding the content; and transcoding a second portion of the content using the determined transcoding model to further generate the transcoded content having the requested resolution.
前記クライアントデバイスは、第1のクライアントデバイスであり;
前記コンテンツの要求は、コンテンツの第1の要求であり;及び
前記方法は:
前記トランスコーディングされたコンテンツをデータストアに記憶する段階;
第2のクライアントデバイスから、前記コンテンツの第2の要求を受信する段階;及び
前記コンテンツの前記第2の要求に応答して、前記データストアから前記トランスコーディングされたコンテンツを提供する段階
を更に備える、請求項のいずれか1項に記載の方法。
the client device is a first client device;
the request for content is a first request for content; and the method includes:
storing the transcoded content in a data store;
The method of claim 7 , further comprising: receiving a second request for the content from a second client device; and providing the transcoded content from the data store in response to the second request for the content.
前記CDNのノードから、前記トランスコーディングされたコンテンツの要求を受信する段階;及び
前記CDNの前記ノードに、前記トランスコーディングされたコンテンツを提供する段階
を更に備える、請求項10のいずれか1項に記載の方法。
The method of claim 7 , further comprising: receiving a request for the transcoded content from a node of the CDN; and providing the transcoded content to the node of the CDN .
前記要求されたフォーマットの情報は、オーディオの要求されたフォーマットの情報又はビデオの要求されたフォーマットの情報のうちの少なくとも1つを含む、請求項11のいずれか1項に記載の方法。 The method of any one of claims 7 to 11 , wherein the requested format information comprises at least one of audio requested format information or video requested format information.
JP2023518053A 2020-09-24 2021-09-22 Content distribution using distributed ledger and AI-based transcoding technology Active JP7609515B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063082677P 2020-09-24 2020-09-24
US202063082704P 2020-09-24 2020-09-24
US63/082,677 2020-09-24
US63/082,704 2020-09-24
PCT/US2021/051482 WO2022066717A1 (en) 2020-09-24 2021-09-22 Content delivery using distributed ledger and ai-based transcoding technologies

Publications (3)

Publication Number Publication Date
JP2023544106A JP2023544106A (en) 2023-10-20
JP2023544106A5 JP2023544106A5 (en) 2024-09-30
JP7609515B2 true JP7609515B2 (en) 2025-01-07

Family

ID=78179529

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023518053A Active JP7609515B2 (en) 2020-09-24 2021-09-22 Content distribution using distributed ledger and AI-based transcoding technology

Country Status (6)

Country Link
EP (1) EP4218247A1 (en)
JP (1) JP7609515B2 (en)
KR (1) KR102815868B1 (en)
AU (1) AU2021347829A1 (en)
CA (1) CA3193490A1 (en)
WO (1) WO2022066717A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2024001840A (en) * 2022-06-22 2024-01-10 キヤノン株式会社 Content generation device, content management device, content generation device control method, content management device control method, and program

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1195992A1 (en) 2000-04-11 2002-04-10 Mitsubishi Denki Kabushiki Kaisha Transcoding of compressed video
US6542546B1 (en) 2000-02-02 2003-04-01 Mitsubishi Electric Research Laboratories, Inc. Adaptable compressed bitstream transcoder
US6563517B1 (en) 1998-10-02 2003-05-13 International Business Machines Corp. Automatic data quality adjustment to reduce response time in browsing
JP2005229593A (en) 2004-02-14 2005-08-25 Samsung Electronics Co Ltd Transcoding system and method for maintaining timing parameters constant before and after transcoding
KR101362654B1 (en) 2013-12-31 2014-02-14 인하대학교 산학협력단 Video transcoding optimization method using light intensity analysis
US20160249079A1 (en) 2015-02-20 2016-08-25 Disney Enterprises, Inc. Media processing node
US20200014944A1 (en) 2018-07-09 2020-01-09 Hulu, LLC Two Pass Chunk Parallel Transcoding Process
US10778354B1 (en) 2017-03-27 2020-09-15 Amazon Technologies, Inc. Asynchronous enhancement of multimedia segments using input quality metrics

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MXPA05007001A (en) * 2002-12-27 2005-11-23 Nielsen Media Res Inc Methods and apparatus for transcoding metadata.
WO2007073616A1 (en) * 2005-12-28 2007-07-05 Intel Corporation A novel user sensitive information adaptive video transcoding framework
US8782165B2 (en) * 2011-01-26 2014-07-15 Openwave Mobility, Inc. Method and transcoding proxy for transcoding a media stream that is delivered to an end-user device over a communications network
KR101868149B1 (en) * 2011-12-14 2018-06-15 한국전자통신연구원 Method and apparatus and its system for grid file system distribution based real time transactional transcoding in the cloud environment
WO2016209125A1 (en) * 2015-06-23 2016-12-29 Telefonaktiebolaget Lm Ericsson (Publ) Methods and arrangements for transcoding
CN107231566B (en) * 2016-03-25 2020-12-18 阿里巴巴集团控股有限公司 A video transcoding method, device and system
US11019349B2 (en) * 2017-01-20 2021-05-25 Snap Inc. Content-based client side video transcoding
KR102032460B1 (en) * 2017-01-23 2019-10-15 드림투비 주식회사 Apparatus and method for video realtime transcoding in individual cloud environment
KR102033078B1 (en) * 2017-10-30 2019-10-16 에스케이텔레콤 주식회사 Method and Apparatus for Processing Image based on Image Quality

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6563517B1 (en) 1998-10-02 2003-05-13 International Business Machines Corp. Automatic data quality adjustment to reduce response time in browsing
US6542546B1 (en) 2000-02-02 2003-04-01 Mitsubishi Electric Research Laboratories, Inc. Adaptable compressed bitstream transcoder
EP1195992A1 (en) 2000-04-11 2002-04-10 Mitsubishi Denki Kabushiki Kaisha Transcoding of compressed video
JP2005229593A (en) 2004-02-14 2005-08-25 Samsung Electronics Co Ltd Transcoding system and method for maintaining timing parameters constant before and after transcoding
KR101362654B1 (en) 2013-12-31 2014-02-14 인하대학교 산학협력단 Video transcoding optimization method using light intensity analysis
US20160249079A1 (en) 2015-02-20 2016-08-25 Disney Enterprises, Inc. Media processing node
US10778354B1 (en) 2017-03-27 2020-09-15 Amazon Technologies, Inc. Asynchronous enhancement of multimedia segments using input quality metrics
US20200014944A1 (en) 2018-07-09 2020-01-09 Hulu, LLC Two Pass Chunk Parallel Transcoding Process

Also Published As

Publication number Publication date
AU2021347829A1 (en) 2023-05-04
KR102815868B1 (en) 2025-05-30
CA3193490A1 (en) 2022-03-31
JP2023544106A (en) 2023-10-20
WO2022066717A1 (en) 2022-03-31
KR20230073314A (en) 2023-05-25
EP4218247A1 (en) 2023-08-02

Similar Documents

Publication Publication Date Title
US12032591B2 (en) Content delivery using distributed ledger and AI-based transcoding technologies
US11930241B2 (en) System and method for optimizing videos
US11570491B2 (en) Media distribution and management platform
US20250039500A1 (en) Content delivery using distributed ledger and ai-based transcoding technologies
US9002175B1 (en) Automated video trailer creation
US11995609B2 (en) Aggregated media rights platform
CN109791557B (en) Computer-implemented method for managing asset storage and storage system
US20090193475A1 (en) Systems and Methods For Enabling Configurable Context-Specific Actions in Streaming Video
JP7609515B2 (en) Content distribution using distributed ledger and AI-based transcoding technology
US11356722B2 (en) System for distributing an audiovisual content
US20260111799A1 (en) Accuracy and reliability of artificial intelligence-predicted attributes for media items

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240919

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240919

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20240919

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20241119

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20241216

R150 Certificate of patent or registration of utility model

Ref document number: 7609515

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150