KR20230073314A - Content Delivery Using Distributed Ledger and AI-Based Transcoding Technology - Google Patents

Content Delivery Using Distributed Ledger and AI-Based Transcoding Technology Download PDF

Info

Publication number
KR20230073314A
KR20230073314A KR1020237013925A KR20237013925A KR20230073314A KR 20230073314 A KR20230073314 A KR 20230073314A KR 1020237013925 A KR1020237013925 A KR 1020237013925A KR 20237013925 A KR20237013925 A KR 20237013925A KR 20230073314 A KR20230073314 A KR 20230073314A
Authority
KR
South Korea
Prior art keywords
content
transcoding
transcoded
request
hash
Prior art date
Application number
KR1020237013925A
Other languages
Korean (ko)
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 KR20230073314A publication Critical patent/KR20230073314A/en

Links

Images

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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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, manipulating MPEG-4 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; CALCULATING OR 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, manipulating MPEG-4 scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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, manipulating MPEG-4 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

Abstract

본 발명의 예들은 분산 원장 및 AI-기반 트랜스코딩 기술을 사용하는 콘텐츠 전송에 관련된다. 예들에서, 콘텐츠는 콘텐츠 전송 네트워크(CDN)에 의하여 콘텐츠 소스로부터 수신된다. 콘텐츠는 CDN을 통해 배포되는 것보다 저품질이거나 다른 포맷 일 수 있다. 따라서, 트랜스코딩 모델이 식별되고 콘텐츠를 트랜스코딩하기 위해서 사용된다. 변하는 콘텐츠 타입(예를 들어, 스포츠 하위부분, 광고 하위부분 등)에 적응하도록, 다수의 트랜스코딩 모델이 상이한 콘텐츠 부분에 대해서 사용될 수 있다. 원본 콘텐츠가 CDN 내에서 송신되도록 트랜스코딩은 에지 노드에서 일어날 수 있어서, 리소스를 보존한다. 또한, 콘텐츠가 모든 요청에 응답하여 트랜스코딩될 필요가 없도록, 트랜스코딩된 콘텐츠는 캐싱될 수 있다.Examples of the invention relate to content delivery using distributed ledgers and AI-based transcoding technology. In examples, content is received from a content source by a content delivery network (CDN). The content may be of lower quality or in a different format than that distributed through the CDN. Accordingly, a transcoding model is identified and used to transcode the content. To adapt to changing content types (eg, sports sub-portions, advertising sub-portions, etc.), multiple transcoding models may be used for different content portions. Transcoding can occur at the edge node so that the original content is transmitted within the CDN, conserving resources. Additionally, transcoded content may be cached so that the content does not have to be transcoded in response to every request.

Description

분산 원장 및 AI-기반 트랜스코딩 기술을 사용한 콘텐츠 전송Content Delivery Using Distributed Ledger and AI-Based Transcoding Technology

관련 출원에 대한 상호 참조CROSS REFERENCES TO RELATED APPLICATIONS

본 출원은 2020 년 9월 24일에 출원되고 발명의 명칭이 "Content Delivery Using Distributed Ledger and AI-Based Transcoding Technologies"인 미국 가출원 번호 제 63/082,677 호, 및 2020년 9월 24일에 출원되고 발명의 명칭이 "Content Delivery Using Distributed Ledger and AI-Based Transcoding Technologies"인 미국 가출원 번호 제 63/082,704 호에 대한 우선권을 주장하는 PCT 국제 출원이고, 이들은 그들의 전체 내용이 본 명세서에 원용에 의해 통합된다.This application is filed on September 24, 2020 and entitled "Content Delivery Using Distributed Ledger and AI-Based Transcoding Technologies," and is filed on September 24, 2020 and claims the invention is a PCT International Application claiming priority to U.S. Provisional Application Serial No. 63/082,704 entitled “Content Delivery Using Distributed Ledger and AI-Based Transcoding Technologies,” which are hereby incorporated by reference in their entirety.

콘텐츠 전송 네트워크(content distribution network; CDN)를 통해서 배포하기 위하여 콘텐츠를 추가하는 것과 연관된 복잡도 때문에 오버헤드가 증가되고, 불필요한 지연이 생기며, 및 인간의 오류가 발생할 가능성이 생긴다. 추가적으로, 발행자 또는 다른 콘텐츠 소스로부터 수신된 콘텐츠는, 소비자에 의해서 CDN을 통하여 소비되기 위해서 이용가능할 수 있는 품질 레벨이 아닐 수도 있다. 예를 들어, 콘텐츠는 더 낮은 해상도일 수 있거나 더 적은 오디오 채널을 가질 수 있다.The complexity associated with adding content for distribution through a content distribution network (CDN) increases overhead, introduces unnecessary delay, and introduces the potential for human error. Additionally, content received from publishers or other content sources may not be at a quality level that may be available for consumption via a CDN by consumers. For example, the content may be of lower resolution or may have fewer audio channels.

본 명세서에서 개시된 양태들은 이러한 고려사항과 다른 일반적인 고려사항에 관련하여 이루어졌다. 또한, 비록 상대적으로 특정한 문제가 논의될 수 있지만, 예들이 본 명세서의 배경 부분 또는 다른 부분에서 식별되는 특정한 문제점을 해결하는 것으로만 한정돼서는 안 된다는 것이 이해되어야 한다.The aspects disclosed herein have been made with respect to these and other general considerations. Further, although relatively specific problems may be discussed, it should be understood that the examples should not be limited to solving specific problems identified in the background section or elsewhere herein.

본 발명의 예들은 분산 원장 및 AI-기반 트랜스코딩 기술을 사용하는 콘텐츠 전송에 관련된다. 예들에서, 콘텐츠 소스로부터 수신된 콘텐츠는 콘텐츠 전송 네트워크(CDN)를 통해서 배포될 수 있는 것보다 낮은 품질 또는 상이한 포맷일 수 있다. 따라서, 이러한 콘텐츠를 트랜스코딩할 트랜스코딩 모델을 식별하기 위해서 AI-기반 트랜스코딩 모델들의 세트가 평가된다. 일부 예들에서, 예를 들어 콘텐츠 내의 변하는 콘텐츠 타입(예를 들어, 스포츠 하위부분, 광고 하위부분 등)에 적응하기 위해서, 다수의 트랜스코딩 모델이 콘텐츠의 상이한 부분에 대해서 사용된다. 원본인 저품질 콘텐츠가 CDN 내에서 송신되어 CDN 리소스를 보존하도록, 트랜스코딩은 CDN의 에지 노드에서 일어날 수 있다. 또한, 콘텐츠에 대한 모든 요청에 응답하여 AI-기반 트랜스코딩 기법이 적용될 필요가 없도록, 트랜스코딩된 콘텐츠는 캐싱될 수 있다.Examples of the invention relate to content delivery using distributed ledgers and AI-based transcoding technology. In examples, content received from a content source may be of a lower quality or a different format than may be distributed through a content delivery network (CDN). Accordingly, a set of AI-based transcoding models are evaluated to identify a transcoding model that will transcode this content. In some examples, multiple transcoding models are used for different portions of content, for example to adapt to changing content types within the content (eg, sports subportions, advertising subportions, etc.). Transcoding may occur at the edge nodes of the CDN, such that the original low-quality content is transmitted within the CDN to conserve CDN resources. Additionally, transcoded content may be cached so that AI-based transcoding techniques do not have to be applied in response to every request for the content.

이러한 개요는 아래의 예시적인 실시형태들의 상세한 설명에서 추가로 설명되는, 단순화된 형태로의 개념들의 선택을 소개하기 위해 제공된다. 이 개요는 청구된 요지의 주요 특징들 또는 본질적 특징들을 식별하기 위해 의도된 것이 아니며, 청구된 요지의 범위를 제한하기 위해 이용되는 의도도 아니다. 예들의 추가적인 양태, 특징, 및/또는 장점들은 부분적으로는 후속하는 상세한 설명에서 설명될 것이고, 부분적으로는 상세한 설명으로부터 명백해질 것이며, 또는 본 발명을 실시함으로써 학습될 수도 있다.This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description of Example Embodiments. 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 the examples will be set forth in part in the detailed description that follows, and in part will become apparent from the detailed description, or may be learned by practicing the invention.

비한정적이고 비-망라적인 예들이 다음의 도면을 참조하여 설명된다.
도 1a는 분산 원장 및 AI-기반 트랜스코딩 기술을 사용하는 콘텐츠 전송의 양태들이 수행되는 예시적인 시스템의 개관을 예시한다.
도 1b는 예시적인 분산 원장 엔진의 개관을 예시한다.
도 1c는 AI-기반 트랜스코딩을 수행하기 위한 예시적인 콘텐츠 프로세서의 개관을 예시한다.
도 2a는 본 명세서에서 설명된 분산 원장 기법들에 따라서 CDN에 콘텐츠를 추가하기 위한 예시적인 방법의 개관을 예시한다.
도 2b는 본 명세서에서 설명된 분산 원장 기법들에 따라서 콘텐츠와 연관된 트리거를 처리하기 위한 예시적인 방법의 개관을 예시한다.
도 2c는 본 명세서에서 설명된 분산 원장 기법들에 따라서 콘텐츠를 인증하기 위한 방법의 개관을 예시한다.
도 3a는 본 명세서에서 설명되는 AI-기반 트랜스코딩 기술에 따라서 콘텐츠를 트랜스코딩하기 위한 예시적인 방법의 개관을 예시한다.
도 3b는 본 명세서에서 설명되는 AI-기반 트랜스코딩 기술에 따라서 트랜스코딩 모델을 선택하기 위한 예시적인 방법의 개관을 예시한다.
도 4는 본 발명의 실시형태들 중 하나 이상이 구현될 수 있는 적절한 동작 환경의 일 예를 예시한다.
Non-limiting and non-exhaustive examples are described with reference to the following figures.
1A illustrates an overview of an example system in which aspects of content delivery using a distributed ledger and AI-based transcoding technology are performed.
1B illustrates an overview of an example distributed ledger engine.
1C illustrates an overview of an example content processor for performing AI-based transcoding.
2A illustrates an overview of an example method for adding content to a CDN in accordance with the distributed ledger techniques described herein.
2B illustrates an overview of an example method for processing a trigger associated with content in accordance with the distributed ledger techniques described herein.
2C illustrates an overview of a method for authenticating content according to the distributed ledger techniques described herein.
3A illustrates an overview of an example method for transcoding content according to the AI-based transcoding technology described herein.
3B illustrates an overview of an example method for selecting a transcoding model according to the AI-based transcoding technology described herein.
4 illustrates an example of a suitable operating environment in which one or more of the embodiments of the invention may be implemented.

후속하는 발명을 실시하기 위한 구체적인 내용에서, 명세서의 일부를 형성하고 예시를 통해서 특정한 실시형태들 또는 예들을 보여주는 첨부 도면에 대한 참조가 이루어진다. 본 발명으로부터 벗어나지 않으면서 이러한 양태들이 조합될 수 있고, 다른 양태들이 활용될 수 있으며, 구조적인 변경이 이루어질 수 있다. 실시형태들은 방법, 시스템 또는 디바이스로서 실시될 수 있다. 따라서, 실시형태는 하드웨어 구현형태, 전체적으로 소프트웨어 구현형태, 또는 소프트웨어 및 하드웨어 양태를 결합하는 구현형태의 형식을 취할 수 있다. 그러므로 후술되는 상세한 설명은 한정하는 의미로 이해되어서는 안되고, 본 발명의 범위는 첨부된 청구항 및 그들의 균등물에 의해서 규정된다.In the detailed description of the invention that follows, reference is made to the accompanying drawings, which form a part of the specification and show specific embodiments or examples by way of example. These aspects may be combined, other aspects may be utilized, and structural changes may be made without departing from the invention. Embodiments may be practiced as a method, system or device. Accordingly, embodiments may take the form of hardware implementations, entirely software implementations, or implementations that combine software and hardware aspects. Therefore, the detailed description set forth below is not to be construed in a limiting sense, and the scope of the present invention 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 used to process requests from client devices. For example, a CDN may distribute content from a content source, such as a content publisher, a video-on-demand (VOD) service, or a streaming platform. Thus, content from content is accessed via the CDN by consumers using client devices. However, adding content to a CDN involves associated overhead, such as agreeing to terms and conditions (e.g., between the content source and the CDN), arranging agreements and billing arrangements (e.g., the content source and, for royalty payments, etc.), authenticating received content and provided services, and finally processing payments.

추가적으로, 콘텐츠 소스로부터 수신된 콘텐츠는 CDN을 통해서 이용될 수 있는 것보다 낮은 품질 레벨일 수 있다. 예를 들어, 콘텐츠 소스는 "HD" 콘텐츠(예를 들어, 1280x720 또는 1920x1080의 해상도를 가짐)를 제공할 수 있는 반면에, CDN은 콘텐츠를 더 높은 해상도의 포맷, 예컨대 "4K"(예를 들어, 3840x2160, 4096x2160 등) 또는 "8K"(예를 들어, 7680x4320, 8192x5120 등)로 전송할 수도 있다. 유사한 문제점이 오디오에 대해서도 존재할 수 있는데(예를 들어, 비디오 트랙/스트림이 있는 독립형 오디오 트랙 등으로서), 여기에서 콘텐츠 소스는 CDN에 의해서 전송될 수 있는 것보다 적은 채널 개수(예를 들어, 2.0 대 5.1 또는 7.1), 더 낮은 비트 깊이(예를 들어, 16-비트 대 24-비트), 더 낮은 비트레이트, 및/또는 상이한 코덱(예를 들어, 이산 트랙을 가지는 코덱 대 대상물-기반 공간적 오디오 코덱)을 가지는 오디오를 제공한다.Additionally, the content received from the content source may be at a lower quality level than what is available through the CDN. For example, a content source may provide "HD" content (e.g., with a resolution of 1280x720 or 1920x1080), whereas a CDN may provide content in a higher resolution format, such as "4K" (e.g. , 3840x2160, 4096x2160, etc.) or “8K” (eg, 7680x4320, 8192x5120, etc.). A similar problem may exist for audio (eg as a standalone audio track with a video track/stream, etc.), where the content source has a lower channel count than can be transported by the CDN (eg 2.0 vs. 5.1 or 7.1), lower bit depth (eg, 16-bit vs. 24-bit), lower bitrate, and/or different codec (eg, codec with discrete tracks vs. object-based spatial audio) codec).

따라서, 본 발명의 양태는 분산 원장 및 인공지능-기반(AI-based) 트랜스코딩 기술을 사용하는 콘텐츠 전송에 관련된다. 예들에서, 콘텐츠 소스로부터 수신된 컨텐츠에 대해서 해시가 생성된다. 해시 콘텐츠 레코드로서 분산 원장(예를 들어, 블록체인의 블록) 내에 포함되고, 이를 통해서 해시가 변경불가능하고 및 후속 처리에서 이용될 수 있도록 보장한다. 예를 들어, 저장된 해시는 콘텐츠 인증을 수행하기 위해 사용될 수 있고, 이를 통하여 콘텐츠의 소스, 콘텐츠의 타이틀, 및/또는 콘텐츠와 연관된 남주인공/여주인공, 감독, 또는 다른 아티스트를 증명한다. 이러한 메타데이터는 콘텐츠 해시와 함께 저장될 수 있고, 또는 메타데이터는 데이터 저장소 내에 저장되고 콘텐츠 해시와 연관될 수도 있다.Accordingly, aspects of the present invention relate to content delivery using distributed ledgers and AI-based transcoding technologies. In examples, a hash is generated for content received from a content source. A hash is contained within a distributed ledger (e.g., a block in a blockchain) as a record of content, thereby ensuring that the hash is immutable and available for subsequent processing. For example, the stored hash may be used to perform content authentication, thereby verifying the source of the content, the title of the content, and/or the heroine/heroine, director, or other artist associated with the content. Such metadata may be stored with the content hash, or the metadata may be stored within the data store and associated with the content hash.

다른 예로서, 스마트 콘트랙트가 생성되고 콘텐츠 해시와 연관될 수도 있다. 예를 들어, 스마트 콘트랙트는 콘텐츠와 연관된 CDN 서비스(예를 들어, 저장 서비스, 전송 서비스, 콘텐츠 트랜스코딩 서비스 등)를 위한 것, 콘텐츠 소스로부터의 라이센싱(예를 들어, 콘텐츠 품질에 기반하여 지불에 대해 지불하는 것)을 위한 것, 및/또는 로열티(예를 들어, 음악 로열티, 남주인공/여주인공 로열티, 감독 로열티 등)를 위한 것일 수 있다. 스마트 콘트랙트가 트리거의 결과로서 실행되도록, 트리거는 스마트 콘트랙트와 연관될 수 있다. 예시적인 트리거는 CDN을 통한 콘텐츠의 전송 및 클라이언트 디바이스에서의 콘텐츠 재생의 시작을 포함하지만 이들로 한정되지는 않는다. 따라서, 분산 원장은 참여자가 스마트 콘트랙트에 따라서 그들의 의무를 지키고 특정 조건 하에 대가(예를 들어, 전송에 대한 CDN 서비스 지불, 콘텐츠 재생에 대한 로열티 지불 등)를 수령하도록 보장하기 위하여 사용될 수 있다.As another example, a smart contract may be created and associated with a content hash. For example, smart contracts are for content-related CDN services (e.g., storage services, delivery services, content transcoding services, etc.), licensing from content sources (e.g., payment based on content quality). for payment), and/or for royalties (eg, music royalties, heroine/heroine royalties, director royalties, etc.). A trigger can be associated with a smart contract so that the smart contract is executed as a result of the trigger. Example triggers include, but are not limited to, transmission of content via a CDN and initiation of content playback on a client device. Thus, distributed ledgers can be used to ensure that participants abide by their obligations according to smart contracts and receive payment under certain conditions (eg, CDN service payment for transmission, royalty payment for content playback, etc.).

AI-기반 트랜스코딩 기법은 CDN을 통해서 전송될 수 있는 것보다 낮은 품질 또는 상이한 포맷인, 콘텐츠 소스로부터 수신된 콘텐츠를 트랜스코딩하기 위해서 사용된다. 예를 들어, 콘텐츠 소스로부터 수신된 HD 또는 표준 해상도(SD) 콘텐츠가 본 명세서에서 설명된 AI-기반 트랜스코딩 기법들에 따라서 업스케일링되도록, CDN은 4K 또는 8K 콘텐츠를 배포할 수 있다. 결과적으로, 콘텐츠 소스는 고가의 비디오 장비를 구입하거나 더 높은 품질의 비디오 데이터를 처리하기 위한 더 강력한 컴퓨터 하드웨어를 구입할 필요가 없고, 그 대신에 CDN에 의해 제공되는 이러한 기능성을 활용할 수 있다. 추가적으로, 콘텐츠는 CDN 내에서(예를 들어 원점 노드를 거쳐 에지 노드로) 저해상도 포맷에서(예를 들어, 콘텐츠 소스로부터 수신된 바와 같음) 전송될 수 있고, 콘텐츠는 클라이언트 디바이스로 전송되기 이전에 또는 이와 동시에 에지 노드에서 업스케일링될 수 있다. 이러한 기법은, 고품질 말단-사용자 경험을 여전히 제공하면서도 콘텐츠를 CDN을 통해 전송하는 것과 연관된 대역폭 및 저장소 요구 사항을 보존할 수 있다.AI-based transcoding techniques are used to transcode content received from a content source that is of a lower quality or a different format than can be transmitted over a CDN. For example, a CDN may distribute 4K or 8K content such that HD or standard definition (SD) content received from a content source is upscaled according to the AI-based transcoding techniques described herein. As a result, content sources do not need to purchase expensive video equipment or more powerful computer hardware to process higher quality video data, but can instead utilize these functionality provided by the CDN. Additionally, content may be transmitted within the CDN (e.g., via the origin node to the edge node) in a lower resolution format (e.g., as received from the content source), before the content is transmitted to the client device or At the same time, it can be upscaled at the edge node. This technique can conserve the bandwidth and storage requirements associated with delivering content through a CDN while still providing a high-quality end-user experience.

본 명세서에서 사용될 때, 콘텐츠는 여러 가지 예들 중에서, 스트림 또는 파일인 비디오 및/또는 오디오를 포함하지만 이들로 한정되는 것은 아니다. 예를 들어, 비디오 파일 또는 스트림은 하나 이상의 오디오 트랙을 포함할 수 있다. 다른 예로서, 파일 또는 스트림은 비디오-전용 또는 오디오-전용일 수도 있다. 스트림은 실시간 또는 라이브 스트림일 필요가 없고, 사전기록된 콘텐츠의 스트림일 수도 있다. 예를 들어, 스트리밍 콘텐츠는 하위부분으로서 콘텐츠 소스로부터 CDN에 의해 수신될 수 있다(예를 들어, DASH(Dynamic Adaptive Streaming over HTTP) 또는 실시간 전송 프로토콜(RTP) 등을 사용함). 콘텐츠 소스는 여러 가지 예들 중에서 발행자(예를 들어, 영화 스튜디오, 텔레비전 스튜디오 등), VOD 서비스, 또는 스트리밍 플랫폼일 수 있다. 따라서, 본 명세서에서는 예시적인 콘텐츠 및 콘텐츠 소스가 설명되지만, 이러한 기법이 다양한 다른 콘텐츠 및 콘텐츠 소스 중 임의의 것에도 적용될 수 있다는 것이 이해될 것이다.As used herein, content includes, but is not limited to, video and/or audio that is a stream or file, among other examples. For example, a video file or stream may contain one or more audio tracks. As another example, a file or stream may be video-only or audio-only. The 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 from a content source as a sub-portion (eg, using Dynamic Adaptive Streaming over HTTP (DASH) or Real-Time Transport Protocol (RTP), etc.). A content source can be a publisher (eg, a movie studio, 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 appreciated that these techniques may be applied to any of a variety of other content and content sources.

콘텐츠는 웹사이트를 통하여 콘텐츠 소스로부터 수신될 수도 있다. 예를 들어, 웹사이트는 사용자가 콘텐츠 및 타이틀 및 남주인공/여주인공, 감독, 또는 다른 연관된 아티스트의 목록과 같은 연관된 메타데이터를 선택하고 특정하도록 할 수 있다. 콘텐츠 소스로부터, 예컨대 애플리케이션 프로그래밍 인터페이스(API)를 사용하여 콘텐츠를 수신하기 위해서 다른 기법이 사용될 수도 있다. 일부 예들에서, 메타데이터는 다른 데이터 소스, 예컨대 콘텐츠 소스 또는 제 3-자 메타데이터 보관소에 의해서 관리되는 메타데이터 보관소로부터 취출될 수 있다. 따라서, 콘텐츠는 CDN으로 전송될 수 있고, 거기에서 콘텐츠와 연관된 콘텐츠 레코드가 분산 원장 내에 생성된다. 콘텐츠 레코드는 다양한 해싱 알고리즘 중 임의의 것을 사용하여 생성될 수 있는 콘텐츠 해시를 포함한다. 예시적인 해싱 알고리즘은 SHA-2(Secure Hash Algorithm 2) 해시(예를 들어, SHA-256, SHA-512 등) 또는 RIPEMD(RIPE Message Digest) 해시(예를 들어, RIPEMD-160, RIPEMD-256 등)를 포함하지만 이들로 한정되지는 않는다. 콘텐츠 해시는 메타데이터만으로 또는 콘텐츠와 조합된 메타데이터에 기반하는 것 보다는 콘텐츠 자체에 기반하여 생성될 수 있다.Content may be received from a content source via a website. For example, a website may allow a user to select and specify content and associated metadata, such as a list of titles and actors, directors, or other associated artists. Other techniques may be used to receive content from a content source, such as using an application programming interface (API). In some examples, metadata may be retrieved from a metadata repository maintained by another data source, such as a content source or a third-party metadata repository. Thus, content can be delivered to a CDN, where content records associated with the content are created within the distributed ledger. A content record contains a content hash that can be generated using any of a variety of hashing algorithms. Exemplary hashing algorithms include Secure Hash Algorithm 2 (SHA-2) hashes (eg, SHA-256, SHA-512, etc.) or RIPE Message Digest (RIPEMD) hashes (eg, RIPEMD-160, RIPEMD-256, etc.) ), but is not limited thereto. The content hash may be generated based on the content itself rather than based on metadata alone or metadata combined with the content.

콘텐츠 해시는 분산 원장 내에, 예컨대 블록체인의 블록 내에 저장될 수 있다. 일부 예들에서, 콘텐츠 레코드 콘텐츠와 연관된 메타데이터의 적어도 일부를 더 포함한다. 다른 예들에서, 메타데이터는 메타데이터 보관소 또는 다른 데이터 저장소에 저장되고, 콘텐츠 해시와 연관될 수 있다. 메타데이터는 유사한 방식으로 해싱될 수 있고, 및 메타데이터 해시는 메타데이터의 후속 인증이 수행될 수 있도록 콘텐츠 레코드의 일부로서 저장될 수 있다. 콘텐츠 레코드는 콘텐츠가 CDN에 의해서 언제 수신되었는지와 연관된 후속 인증, 및 연관된 콘텐츠 소스 정보(예를 들어, 이메일 어드레스, 청구지 어드레스, 회사 명칭 등)를 더 포함할 수 있다.Content hashes can be stored within a distributed ledger, for example within blocks of a blockchain. In some examples, the content record further includes at least some of the metadata associated with the content. In other examples, metadata may be stored in a metadata repository or other data store and associated with a content hash. Metadata can be hashed in a similar way, and the metadata hash can be stored as part of the content record so that subsequent authentication of the metadata can be performed. The content record may further include subsequent authentication associated with when the content was received by the CDN, and associated content source information (eg, email address, billing address, company name, etc.).

콘텐츠와 연관된 하나 이상의 스마트 콘트랙트가 생성될 수 있다. 예를 들어, CDN 및 콘텐츠 소스는 스마트 콘트랙트의 당사자일 수 있고, 이러한 경우에 CDN은 콘텐츠를 전송하는데 대한 보상을 받고 콘텐츠 소스는 콘텐츠를 재생하는데 대한 보상을 받는다. 다른 예들에서, 스마트 콘트랙트는 CDN 또는 콘텐츠 소스 그리고 하나 이상의 다른 당사자, 예컨대 음악가, 남주인공/여주인공, 및 감독과 같은 하나 이상의 당사자들 사이에서 체결될 수 있어서, 이러한 당사자들이 로열티 지불액을 수령할 수 있게 한다. 일부 예들에서, 스마트 콘트랙트는 CDN이 콘트랙트에 대한 유일한 당사자인 경우에 사용되어, CDN이 트리거의 발생에 기반하여 분산 원장 내에 분석정보(analytics)를 유지보수할 수 있게 한다.One or more smart contracts associated with the content may be created. For example, a CDN and a content source may be parties to a smart contract, in which case the CDN is rewarded for delivering the content and the content source is rewarded for playing the content. In other examples, a smart contract may be entered into between a CDN or content source and one or more other parties, such as musicians, heroines, and directors, such that these parties may receive royalty payments. let it be In some examples, smart contracts are used where the CDN is the only party to the contract, allowing the CDN to maintain analytics within the distributed ledger based on the occurrence of triggers.

스마트 콘트랙트는 콘텐츠 해시가 저장되는 분산 원장의 일부일 수도 있고, 또는, 다른 예들에서는 상이한 분산 원장일 수도 있다. 예를 들어, 상이한 당사자에 대해서 상이한 분산 원장(예를 들어, 특정 아티스트 등에 대한 로열티 지불을 추적하기 위해서 동일한 분산 원장을 사용하는, 각각의 콘텐츠 소스에 대해 상이한 분산 원장)이 사용될 수 있다. 다른 예로서, 콘텐츠 소스는 자기 자신의 분산 원장을 유지보수할 수 있어서, 다른 예들 중에서 콘텐츠 소스 원장 및 CDN 원장 사이에서 트랜잭션을 동기화하고, 트리거에 대한 표시를 제공하기 위하여 원장 게이트웨이가 사용될 수 있게 한다.A smart contract may be part of a distributed ledger where content hashes are stored, or in other examples, a different distributed ledger. For example, different distributed ledgers can be used for different parties (eg, different distributed ledgers 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, allowing ledger gateways to be used to synchronize transactions between the content source ledger and the CDN ledger, and provide indications for triggers, among other examples. .

스마트 콘트랙트의 당사자가 분산 원장의 실제 사용자일 필요가 없고, 그 반면에 플레이스홀더(placeholder)로서의 역할을 할 수 있다는 것이 이해될 것이다. 예를 들어, 콘텐츠와 연관된 로열티 지불의 계좌를 생성하기 위해서 로열티 스마트 콘트랙트가 사용될 수 있고, 이러한 계좌가 콘텐츠 소스 또는 다른 당사자에게 제공되어, 궁극적으로 로열티가 지불되게 할 수 있다. 따라서, 본 명세서에서 설명된 스마트 콘트랙트 및 분산 원장 기법들은 결과적으로 실제 값이 교환되게 하지 않을 수 있지만, 그 대신에 CDN에 의해 배포된 콘텐츠에 관련된 계정 기법(accounting technique)이 가능해지게 할 수 있다.It will be appreciated that a party to a smart contract need not be an actual user of the distributed ledger, but may otherwise act as a placeholder. For example, a royalty smart contract may be used to create an account of royalty payments associated with content, and such an account may be provided to a content source or other party to ultimately pay royalties. Thus, the smart contracts and distributed ledger techniques described herein may not result in actual value being exchanged, but may instead enable accounting techniques related to content distributed by CDNs.

트리거는 콘텐츠 전송(예를 들어, 클라이언트 디바이스로의 또는 원점 및 에지 노드 사이의 송신, 스트리밍 또는 다운로드 활동 등) 또는 콘텐츠 재생(예를 들어, 콘텐츠를 플레이/일시정지하는 것, 고속-앞으로가기 / 뒤로가기, 재생을 조기에 종료하는 것 등)에 관련된 이벤트와 같은 다양한 이벤트 중 임의의 것일 수 있다. 트리거가 식별되면, 해당 트리거와 연관된 콘텐츠 해시가 연관된 스마트 콘트랙트를 식별하고 실행하기 위해서 사용된다. 예시적인 분산 원장 및 스마트 콘트랙트 기법들이 본 명세서에서 설명되지만, 임의의 다양한 다른 기법이 CDN에 의해 배포되는 콘텐츠와 연관된 스마트 콘트랙트를 생성 및 실행하기 위해서 사용될 수 있다는 것이 이해될 것이다. 예를 들어, 콘텐츠가 사용될 필요가 없고, 스마트 콘트랙트와 연관된 식별자가 그 대신에 콘텐츠 자체와 연관될 수 있다.A trigger can be a content transfer (e.g. sending to a client device or between an origin and an edge node, streaming or download activity, etc.) or content playback (e.g. playing/pausing content, fast-forward/ It can be any of a variety of events, such as events related to going back, ending playback early, etc.). Once a trigger is identified, the content hash associated with that trigger is used to identify and execute the associated smart contract. Although exemplary distributed ledger and smart contract techniques are described herein, it will be appreciated that any of a variety of other techniques may be used to create and execute smart contracts associated with content distributed by a CDN. For example, the content need not be used, and the identifier associated with the smart contract may instead be associated with the content itself.

분산 원장은 스마트 콘트랙트의 당사자에게 속하는 지불 계정을 그 안에 생성하도록 처리될 수 있다. 이러한 처리는 주기적으로(예를 들어, 매월, 반년마다 등) 수행될 수 있고, 계정의 표시가 콘텐츠 소스 또는 다른 당사자에게 제공될 수 있다. 예를 들어, 콘텐츠 소스가 이러한 표시를 수신한 후 로열티 지불을 이에 따라서 처리할 수 있다. 다른 예로서, 콘텐츠 소스는 이러한 표시를 수신하고, 콘텐츠를 전송하는 데에 제공된 CDN 서비스에 대해서 CDN으로의 지불을 처리할 수 있다.Distributed ledgers can be processed to create within them payment accounts belonging to the parties to the smart contract. This processing may be performed periodically (eg monthly, semi-annually, etc.) and an indication of the account may be provided to the content source or other party. For example, a content source may receive such an indication and process royalty payments accordingly. As another example, a content source may receive this indication and process payment to the CDN for the CDN service provided to deliver the content.

분산 원장은 콘텐츠와 관련된 인증을 수행하기 위해서도 사용될 수 있다. 예를 들어, 소비자는 콘텐츠의 소스를 인증하기를 원할 수 있고, 또는, 다른 예들에서는 콘텐츠와 연관된 특정 메타데이터(예를 들어, 콘텐츠에 그려진 남주인공/여주인공이 콘텐츠의 생성에 실제로 참여했다는 것)를 인증하고자 할 수도 있다. 따라서, 콘텐츠가 해싱될 수 있고(예를 들어, 소비자의 클라이언트 디바이스, CDN의 노드 등에서) 및 해당 콘텐츠와 연관된 콘텐츠 해시가 분산 원장 내에서 식별될 수 있다. 콘텐츠 해시는 콘텐츠와 연관된 메타데이터를 식별하기 위해 사용될 수 있고, 이를 통하여 사용자가 콘텐츠와 연관된 콘텐츠 소스 및 연관된 메타데이터를 시청할 수 있게 한다.Distributed ledgers can also be used to perform authentication related to content. For example, the consumer may want to authenticate the source of the content, or, in other examples, certain metadata associated with the content (e.g., that the heroine/heroine depicted in the content actually participated in the creation of the content). ) may be desired. Thus, content can be hashed (eg, at a consumer's client device, a CDN's node, etc.) and a content hash associated with that content can be identified within the distributed ledger. The content hash can be used to identify metadata associated with the content, thereby enabling a user to view the content source associated with the content and the associated metadata.

위에서 언급된 바와 같이, 콘텐츠 소스로부터의 콘텐츠는 낮은 품질일 수 있거나 CDN에 의해서 배포될 수 있는 것과 다른 포맷일 수 있다. 따라서, 콘텐츠를 개선하거나 변경하기 위해서 AI-기반 트랜스코딩 기법이 사용될 수 있다. 예들에서, 트랜스코딩 모델들의 세트가 업스케일링 또는 다른 비디오 향상 기법을 수행하기 위해 사용될 수 있다. 트랜스코딩 모델들의 세트는 상이한 콘텐츠 타입에 따라서 훈련되었을 수 있다. 예를 들어, 액션 콘텐츠, 스포츠 콘텐츠, 움직이는 콘텐츠, 리얼리티 콘텐츠, 광고 콘텐츠, 및 흑백 콘텐츠에 대하여 상이한 트랜스코딩 모델이 존재할 수 있다. 트랜스코딩 모델은 콘텐츠 메타데이터(예를 들어, 특정한 콘텐츠 타입을 나타낼 수 있는 장르, 남주인공/여주인공 등), 비디오 분석(예를 들어, 비트레이트, 프레임 복잡도, 명암(lightness/darkness)등), 원본 콘텐츠 해상도, 타겟 콘텐츠 해상도, 모션 벡터, 제조년도, 포맷 또는 코덱 타입, 및/또는 소비자 또는 다른 사용자로부터 수신된 피드백을 포함하지만 이들로 한정되는 것은 아닌 다양한 기준들에 따라서 모델들의 세트로부터 선택된다.As mentioned above, the content from the content source may be of lower quality or may be in a different format than may be distributed by the CDN. Thus, AI-based transcoding techniques can be used to improve or change content. In examples, a set of transcoding models can be used to perform upscaling or other video enhancement techniques. A set of transcoding models may have been trained according to different content types. For example, different transcoding models may exist for action content, sports content, moving content, reality content, advertising content, and black and white content. The transcoding model includes content metadata (e.g., genres that can represent specific content types, male/female characters, etc.), video analytics (e.g. bitrate, frame complexity, lightness/darkness, etc.) , source content resolution, target content resolution, motion vector, year of manufacture, format or codec type, and/or selection from a set of models according to various criteria including, but not limited to, feedback received from consumers or other users. do.

예들에서, 어떤 트랜스코딩 모델을 적용할지를 결정하기 위해서 다수의 트랜스코딩 모델이 비교된다. 예를 들어, 대상물 검출(예를 들어, 무생물인 대상물, 움직이는 문자, 남주인공/여주인공 등)이 수행될 수 있어서, 다수의 트랜스코딩 모델로부터의 모델 처리 결과가 검출된 대상물이 얼마나 양호하게 트랜스코딩되었는지에 적어도 부분적으로 기반하여 비교될 수 있게 한다. 이러한 비교는 자동적이거나(예를 들어, 트랜스코딩 아티팩트를 검출하는 것, 레퍼런스 프레임을 트랜스코딩된 프레임과 비교하는 것 등) 및/또는 수동적일 수도 있다(예를 들어, 사용자가 선택하도록 다수의 트랜스코딩된 프레임을 제공하는 것, 재생 이후에 또는 재생 중에 인코딩 품질과 관련된 사용자 피드백을 독려하는 것 등). 예를 들어, 소스 프레임은 다운스케일링될 수 있어서, 다운스케일링된 소스 프레임이 다수의 트랜스코딩 모델을 사용하여 업스케일링되어 다수의 트랜스코딩된 프레임을 생성하게 한다. 오차 및 품질 손실을 식별하기 위해서 트랜스코딩된 프레임은 원본 소스 프레임과 비교될 수 있어서, 최고의 품질(예를 들어, 최저 오차, 최저 품질 손실 등)을 보여주는 트랜스코딩 모델이 콘텐츠를 트랜스코딩하기 위해서 선택될 수 있게 한다.In examples, multiple transcoding models are compared to determine which transcoding model to apply. For example, object detection (e.g., inanimate objects, moving characters, male/female characters, etc.) can be performed so that the model processing results from multiple transcoding models determine how well the detected objects are transcribed. can be compared based at least in part on whether they have been coded. This comparison may be automatic (eg, detecting transcoding artifacts, comparing a reference frame to a transcoded frame, etc.) and/or manual (eg, multiple transcodes for the user to select). providing coded frames, encouraging user feedback related to encoding quality after or during playback, etc.). For example, a source frame may be downscaled such that the downscaled source frame is upscaled using multiple transcoding models to produce multiple transcoded frames. Transcoded frames can be compared to the original source frames to identify errors and quality loss, so that the transcoding model showing the highest quality (e.g., lowest error, lowest quality loss, etc.) is selected for transcoding the content. make it possible

예들에서, 콘텐츠의 단일 조각을 트랜스코딩하기 위해서 다수의 트랜스코딩 모델이 사용되는데, 이러한 경우에는 콘텐츠의 하나의 하위부분을 위해서 하나의 모델이 사용될 수 있는 반면에, 다른 하위부분을 위해서는 다른 모델이 사용될 수 있다. 예를 들어, 스포츠 브로드캐스트는 스포츠 트랜스코딩 모델, 광고 트랜스코딩 모델, 및 "토론자(talking heads)" 또는 해설 트랜스코딩 모델을 사용하여 처리될 수 있다. 위에서 언급된 바와 같이, 상이한 콘텐츠 타입에 대해서는 상이한 트랜스코딩 모델이 더 적합할 수 있다. 트랜스코딩 모델이 주어진 하위부분에 대한 모델 성능에 따라서 변경될 수 있도록, 트랜스코딩 모델 성능은 트랜스코딩 도중에 주기적으로 평가될 수 있다. 일부 예들에서는 콘텐츠 해상도가 변할 수 있는데(예를 들어, 브로드캐스트의 스포츠 세그멘트 및 그 안의 광고 사이에), 이것은 모델 성능이 재평가되어야 한다는 것을 시그널링할 수 있다. 다른 예들에서는, 비디오 프레임의 콘텐츠를 결정하거나 대상물이 언제 사라졌는지를 식별하기 위해서 대상물 검출 기법이 사용될 수 있는데, 이들 양자 모두는 트랜스코딩 모델 성능이 재평가되어야 한다는 것을 표시할 수 있다. 일부 예들에서, 콘텐츠를 트랜스코딩하기 위해서 적용되는 트랜스코딩 모델은 프레임별로 또는 임의의 다른 그래뉼래러티(granularity) 레벨(예를 들어, 모든 키프레임 또는 인트라프레임, 미리 결정된 개수의 프레임 이후 등)에 따라서 재평가될 수 있다. 추가적으로, 인트라프레임, 예측된-프레임, 및/또는 양방향성-프레임에는 상이한 트랜스코딩 모델이 적용될 수 있다. 따라서, 콘텐츠를 트랜스코딩하기 위해서 언제 하나의 트랜스코딩 모델로부터 다른 트랜스코딩 모델로 전환할지를 결정하기 위하여 다양한 기법이 사용될 수 있다는 것이 이해될 것이다. 이와 유사하게, 이러한 기법은 트랜스코딩과 동시에 수행될 필요가 없고, 콘텐츠의 어떤 하위부분을 트랜스코딩하기 위해서 어떤 트랜스코딩 모델이 사용되어야 하는지를 규정하는 트랜스코딩 "레시피"를 생성하는 전-처리 동작으로서 수행될 수도 있다.In examples, multiple transcoding models are used to transcode a single piece of content, in which case one model may be used for one sub-portion of content, while another model may be used for another sub-portion. can be used For example, sports broadcasts may be processed using a sports transcoding model, an advertisement transcoding model, and a “talking heads” or commentary transcoding model. As mentioned above, different transcoding models may be more suitable for different content types. Transcoding model performance can be evaluated periodically during transcoding so that the transcoding model can be changed according to the model performance for a given subpart. In some instances the content resolution may change (eg between a sports segment of a broadcast and a commercial within it), which may signal that model performance should be re-evaluated. In other examples, object detection techniques 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 re-evaluated. In some examples, the transcoding model applied to transcode the content is frame-by-frame or at any other granularity level (eg, every keyframe or intraframe, after a predetermined number of frames, etc.) Therefore, it may be re-evaluated. Additionally, different transcoding models may be applied to intra-frames, predicted-frames, and/or bi-directional-frames. Accordingly, it will be appreciated that a variety of techniques may be used to determine when to switch from one transcoding model to another to transcode content. Similarly, these techniques do not need to be performed concurrently with transcoding, but as a pre-processing operation to create a transcoding "recipe" that specifies which transcoding model should be used to transcode which sub-portion of content. may be performed.

오디오, 예를 들어 순-오디오 콘텐츠, 또는 비디오 콘텐츠의 일부인 오디오에 유사한 기법들이 적용될 수 있다는 것이 이해될 것이다. 전술된 비디오 기법과 유사하게, 어떤 오디오 트랜스코딩 모델이 적용되어야 하는지를 결정하기 위하여 다수의 오디오 트랜스코딩 모델이 평가될 수 있다. 이러한 평가는 오디오 아티팩트(예를 들어, 사람의 청취 범위에 포함되는 아티팩트), 트랜스코딩 오디오의 결과적으로 얻어지는 비트레이트, 오차 및/또는 품질 손실을 식별하는 것을 포함할 수 있다. 예들에서, 어떤 오디오 트랜스코딩 모델을 적용할지 평가하는 것은 위에서 논의된 비디오 트랜스코딩 모델 평가와 동시에 일어난다. 따라서, 비디오 트랜스코딩 모델의 재평가가 일어나게 하는 이벤트는 오디오 트랜스코딩 모델의 재평가도 유사하게 초래할 수 있다. 이와 유사하게, 오디오 트랜스코딩 모델의 재평가가 일어나게 하는 이벤트는 비디오 트랜스코딩 모델의 재평가가 일어나게 할 수 있다. 다른 경우에, 오디오 및 비디오 트랜스코딩 모델은 서로 별개로 재평가된다. 양자 모두의 트랜스코딩 모델이 동일한 타입의 콘텐츠를 처리하기 위해서 사용되도록, 비디오 트랜스코딩 모델은 오디오 트랜스코딩 모델과 연관될 수 있다.It will be appreciated that similar techniques may be applied to audio, eg pure-audio content, or audio that is part of video content. Similar to the video techniques described above, multiple audio transcoding models can be evaluated to determine which audio transcoding model should be applied. Such evaluation may include identifying audio artifacts (eg, artifacts falling within human hearing range), resulting bitrate, errors and/or loss of quality of the transcoded audio. In examples, evaluating which audio transcoding model to apply occurs concurrently with the video transcoding model evaluation discussed above. Thus, an event that causes a re-evaluation of the video transcoding model to occur may similarly cause a re-evaluation of the audio transcoding model. Similarly, an event that causes a re-evaluation of the audio transcoding model to occur may cause a re-evaluation of the video transcoding model to occur. In other cases, audio and video transcoding models are re-evaluated separately from each other. A video transcoding model can be associated with an audio transcoding model so 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)는 여러 가지 중에서, 근거리 네트워크, 광역 네트워크, 하나 이상의 셀룰러 네트워크, 및/또는 인터넷을 포함할 수 있다. 노드(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 delivery using distributed ledger and AI-based transcoding technology are performed. As shown, system 100 includes content source 102, gateway node 104, gateway node 106, regional node 108, client device 110, and network 112. Content source 102 , gateway node 104 , gateway node 106 , regional node 108 , and client device 110 are illustrated as communicating over network 112 . Network 112 may include, among other things, a local area network, a wide area network, one or more cellular networks, and/or the Internet. Nodes 104, 106, and 108 may include 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, these similar aspects may not necessarily have to be described again in detail for each node.

콘텐츠 소스(102)는 소비자에게 전송되기 위한(예를 들어, 클라이언트 디바이스(110)의 클라이언트 애플리케이션(138)을 사용함) 콘텐츠를 CDN(140)(예를 들어, 파선 박스에 의해 예시된 것처럼 게이트웨이 노드(104 및 106), 및 지역 노드(108)를 포함함)에 제공한다. 예를 들어, 콘텐츠 소스(102)와 연관된 컴퓨팅 디바이스가 본 명세서에서 설명되는 양태에 따라서 콘텐츠를 제공하기 위하여 CDN(140)에 의해 호스팅되는 웹사이트(예를 들어, 노드(104, 106, 또는 108)에 의해 제공될 수 있음)에 액세스하기 위해서 사용될 수 있다. 그 외의 임의의 다양한 기법이 콘텐츠 소스(102)로부터 CDN(140)으로 콘텐츠를 송신하기 위하여 사용될 수 있다. 다른 예들에서는, 시스템(100)에 대해서 설명된 예시적인 CDN의 특정 요소들이 제 3 자에 의해서 제공될 수 있고 및/또는 본 명세서에서 특정한 요소에 대해서 설명된 기능성이 임의의 다양한 다른 기법에 따라서 분산될 수 있다는 것이 이해될 것이다.Content source 102 sends content to CDN 140 (e.g., using a client application 138 on client device 110) for delivery to consumers (e.g., using a gateway node as illustrated by the dashed lined box). (including 104 and 106), and local node 108). For example, a computing device associated with content source 102 is a website (e.g., node 104, 106, or 108) hosted by CDN 140 to provide content according to aspects described herein. ) can be used to access Any of a variety of other techniques may be used to transmit content from content source 102 to CDN 140 . In other examples, certain elements of the exemplary CDN described with respect to system 100 may be provided by third parties and/or the functionality described herein with respect to certain elements may be distributed according to any of a variety of other techniques. It will be understood that it can be.

콘텐츠 소스(102)는 데이터 저장소(114) 및 분산 원장 엔진(116)으로서 예시된다. 예들에서, 데이터 저장소(114)는 콘텐츠 소스(102)가 CDN(140)에 제공하는 콘텐츠를 저장한다. 예를 들어, 여러 가지 예들 중에서 데이터 저장소(114)는 콘텐츠 파일을 저장하고 및/또는 콘텐츠 스트림을 버퍼링한다. 분산 원장 엔진(116)은 콘텐츠 소스(102)와 연관된 분산 원장을 관리할 수 있다. 예를 들어, 콘텐츠 소스(102)는 자신이 제공하는 콘텐츠와 연관된 레코드를 포함하는 자기 자신의 분산 원장을 유지할 수 있다. 다른 예들에서, 콘텐츠 소스 분산 원장 엔진을 포함하지 않을 수도 있다.Content source 102 is illustrated as data store 114 and distributed ledger engine 116 . In examples, data store 114 stores content that content source 102 provides to CDN 140 . For example, data store 114 stores content files and/or buffers content streams, among other examples. Distributed ledger engine 116 may manage a distributed ledger associated with content source 102 . For example, a content source 102 may maintain its own distributed ledger containing 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)은 콘텐츠와 연관된 하나 이상의 스마트 콘트랙트를 생성하고, 이것은 콘텐츠 레코드와 같거나 상이한 분산 원장 내에 저장될 수 있다. 예들에서, 생성된 스마트 콘트랙트는 콘텐츠 해시 및/또는 하나 이상의 트리거와 연관된다. 일부 예들에서, 분산 원장 엔진(120)은 CDN 분산 원장 및 분산 원장 엔진(116)에 의해 관리되는 콘텐츠 소스 분산 원장 사이에서 게이트웨이의 역할을 할 수 있다. 예를 들어, 트랜잭션이 콘텐츠 소스 원장 및 CDN 원장 사이에서 동기화될 수 있고, 또는, 다른 예로서, 여러 가지 예들 중에서 CDN(140) 내에서 식별된 트리거에 관한 표시가 제공될 수도 있다.Using gateway node 104 as an example, content is received from content source 102 and stored in data store 118 . Distributed ledger engine 120 creates content records within the distributed ledger, where content records may include content hashes, associated metadata, and/or any of a variety of other information. In examples, stored within the content metadata data store 118 and associated with the content hash. In some examples, distributed ledger engine 120 creates one or more smart contracts associated with content, which may be stored in the same or different distributed ledger as the content record. In examples, the smart contract created is associated with a content hash and/or one or more triggers. In some examples, distributed ledger engine 120 may act as a gateway between a CDN distributed ledger and a content source distributed ledger managed by distributed ledger engine 116 . For example, transactions may be synchronized between the content source ledger and the CDN ledger, or, as another example, an indication regarding a trigger identified within CDN 140 may be provided, among other examples.

게이트웨이 노드(104) 콘텐츠를 지역 노드(108)로 송신할 수 있다. 콘텐츠 소스(102)로부터 수신되고 게이트웨이 노드(104)를 통하여 지역 노드(108)로 제공된 콘텐츠가 후속하여 게이트웨이 노드(106)에 의해서 분산될 수 있도록, 게이트웨이 노드(104 및 106)는 콘텐츠를 지역 노드(108)로부터 배포할 수 있다. 따라서, CDN(140)은 계층적이거나 허브-앤-스포크(hub-and-spoke) 아키텍처를 가질 수 있는데, 여기에서는 특정 노드(예를 들어, 노드(104 및 106))가 다른 노드(예를 들어, 지역 노드(108))에 의해서 관리된다. 예시적인 CDN 구조가 본 명세서에서 설명되는 반면에, 노드들이 다른 예들에서는 임의의 다양한 다른 구조로 구성될 수도 있다는 것이 이해될 것이다.Gateway node 104 may transmit content to local node 108 . Gateway nodes 104 and 106 distribute content to local nodes so that content received from content source 102 and provided to regional nodes 108 via gateway node 104 may subsequently be distributed by gateway node 106. It can be distributed from (108). Accordingly, CDN 140 may have a hierarchical or hub-and-spoke architecture, in which certain nodes (eg, nodes 104 and 106) are connected to other nodes (eg, nodes 104 and 106). eg, managed by the local node 108. While an example CDN structure is described herein, it will be appreciated that nodes may be configured in any of a variety of other structures in other examples.

소비자는 클라이언트 디바이스(110)의 클라이언트 애플리케이션(138)을 사용하여 CDN(140)의 콘텐츠(예를 들어, 콘텐츠 소스(102)에 의해서 CDN(140)으로 제공될 수 있음)에 액세스한다. 여러 가지 예들 중에서, 클라이언트 애플리케이션(138)은 콘텐츠 소스(102)에 의해서 개발되거나 제공된 웹 브라우저 또는 애플리케이션일 수 있다. 따라서, 클라이언트 디바이스(110) 노드(104, 106, 및 108) 중 하나 이상과 통신하고 콘텐츠에 액세스한다. 일부 예들에서, 클라이언트 디바이스(110)는 처음에는 콘텐츠 소스(102)와 통신하고(예를 들어, 웹사이트를 통하여 제공될 수 있는 콘텐츠의 목록에 액세스하기 위하여), 그 후에는 클라이언트 디바이스(110)가 CDN 노드(104, 106, 및/또는 108)에 의해 제공되는 콘텐츠의 선택된 조각에 액세스하기 위하여 CDN(140)으로 지향될 수 있다. 콘텐츠 소스(102)로부터의 콘텐츠가 CDN(140) 내에서 전송되고 및/또는 클라이언트 디바이스(110)로 제공될 때, 하나 이상의 트리거가 발생할 수 있다. 예를 들어, 소비자는 CDN(140)으로부터의 콘텐츠를 요청함으로써, 클라이언트 애플리케이션(138)을 통하여 재생 트리거가 발생하게 할 수 있다. 상응하여, 분산 원장 엔진은 이러한 트리거를 식별하고 연관된 콘텐츠의 해시에 적어도 부분적으로 기반하여 연관된 스마트 콘트랙트를 실행한다. 예를 들어, 분산 원장 엔진(120, 126, 또는 132)이 이러한 양태를 수행할 수 있다. 스마트 콘트랙트를 실행하면 결과적으로 해당 트리거와 연관된 분산 원장에 대한 업데이트가 이루어질 수 있다. 다른 예로서, 콘텐츠의 송신 및 저장과 연관된 스마트 콘트랙트가 실행되도록(예를 들어, 분산 원장 엔진(132 또는 126)에 의하여), 트리거는 콘텐츠가 지역 노드(108)의 데이터 저장소(130)로부터 게이트웨이 노드(106)로 전송될 때 발생할 수 있다.A consumer uses a client application 138 on a client device 110 to access content from CDN 140 (eg, which may be provided to CDN 140 by content source 102 ). Client application 138 may be a web browser or application developed or provided by content source 102 , among various examples. Thus, client device 110 communicates with one or more of nodes 104, 106, and 108 and accesses content. In some examples, client device 110 initially communicates with content source 102 (eg, to access a list of content that may be provided through a website), and then client device 110 may be directed to CDN 140 to access a selected piece of content provided by CDN node 104 , 106 , and/or 108 . When content from content source 102 is transmitted within CDN 140 and/or provided to client device 110, one or more triggers may occur. For example, a consumer can cause a playback trigger to occur via a client application 138 by requesting content from the CDN 140 . Correspondingly, the distributed ledger engine identifies this trigger and executes the associated smart contract based at least in part on the hash of the associated content. For example, distributed ledger engine 120, 126, or 132 may perform this aspect. Executing a smart contract can result in an update to the distributed ledger associated with the corresponding trigger. As another example, a trigger causes a smart contract associated with sending and storing content to be executed (e.g., by distributed ledger engine 132 or 126) so that the content is transferred from local node 108's data store 130 to the gateway. may occur when transmitted to node 106.

예들에서, 분산 원장은 처리되어 그 안에 있는 스마트 콘트랙트의 당사자(예를 들어, 콘텐츠 소스(102), CDN(140), 아티스트 등)에 속하는 지불액을 결정한다. 예를 들어, 지역 노드(108)의 분산 원장 엔진(132)은 이러한 처리를 주기적으로(예를 들어, 매월, 반년마다 등) 수행할 수 있고, 표시가 콘텐츠 소스(102) 및/또는 하나 이상의 다른 당사자에게 제공될 수 있다. 예를 들어, 콘텐츠 소스(102)가 이러한 표시를 수신하고, 후속하여 그에 따라서 로열티 지불을 처리할 수 있다. 다른 예로서, 콘텐츠 소스(102)가 이러한 표시를 수신하고, 콘텐츠를 전송하는 것과 연관된 CDN 서비스에 대해, CDN(140)에 속하는 지불을 처리할 수 있다. 일부 예들에서, 분산 원장 엔진(132)은 웹사이트, API, 또는 이러한 종합된 지불 정보에 액세스하고, 스마트 콘트랙트를 관리하며, 및/또는 송금을 이행하기 위한 방법을 제공한다. 게이트웨이 노드(104 및 106)가 다른 예들에서 유사한 양태를 수행할 수 있다는 것이 이해될 것이다. 다른 예로서, 지역 노드(108)가 게이트웨이 노드(104 및 106) 대신에 전술된 처리 기법을 수행하도록, 게이트웨이 노드(104 및 106)는 지역 노드(108)에 의해서 관리될 수 있다.In examples, the distributed ledger is processed to determine payments belonging to the parties to the smart contract therein (eg, content source 102, CDN 140, artist, etc.). For example, the distributed ledger engine 132 of the regional node 108 may perform this processing periodically (eg monthly, semiannually, etc.) and display the content source 102 and/or one or more may be provided to other parties. For example, content source 102 may receive such an indication and subsequently process a royalty payment accordingly. As another example, content source 102 may receive this indication and process a payment belonging to CDN 140 for the CDN service associated with delivering the content. In some examples, distributed ledger engine 132 provides a website, API, or method for accessing such aggregated payment information, managing smart contracts, and/or fulfilling money transfers. It will be appreciated that gateway nodes 104 and 106 may perform similar aspects in other examples. As another example, gateway nodes 104 and 106 may be managed by regional node 108 such that regional node 108 performs the aforementioned processing techniques on behalf of gateway nodes 104 and 106 .

예들에서, 콘텐츠 인증이 요청된다. 예를 들어, 인증 요청이 클라이언트 디바이스(110)로부터 수신되거나, 다른 예로서, 콘텐츠는 분산 원장의 계정을 생성한 결과로서 인증된다. 다른 예로서, 소비자는 콘텐츠의 소스를 인증하기를 원할 수 있고, 또는, 다른 예들에서는 콘텐츠와 연관된 특정 메타데이터(예를 들어, 콘텐츠에 그려진 남주인공/여주인공이 콘텐츠의 생성에 실제로 참여했다는 것)를 인증하고자 할 수도 있다. 따라서, 콘텐츠의 해시가 생성되고(예를 들어, 노드(104, 106 또는 108 등)에서의 클라이언트 디바이스(110)에서), 분산 원장의 콘텐츠 레코드와 비교된다. 이러한 양태들은 분산 원장 엔진(120, 126, 및/또는 132)에 의해 수행될 수 있다. 생성된 콘텐츠 해시가 콘텐츠 레코드의 저장된 콘텐츠 해시와 매칭되면, 콘텐츠는 성공적으로 인증된다. 콘텐츠 해시는 콘텐츠와 연관된 메타데이터를 식별하기 위해 사용될 수 있고, 이를 통하여 사용자가 콘텐츠와 연관된 콘텐츠 소스 및 연관된 메타데이터를 시청할 수 있게 한다.In examples, content authentication is requested. For example, an authentication request is received from the client device 110 or, as another example, the content is authenticated as a result of creating an account on the distributed ledger. As another example, the consumer may want to authenticate the source of the content, or, in other examples, certain metadata associated with the content (e.g., that the heroine/heroine depicted in the content actually participated in the creation of the content). ) may be desired. Accordingly, a hash of the content is generated (eg, at client device 110 at node 104, 106 or 108, etc.) and compared to the content record in the distributed ledger. These aspects may be performed by distributed ledger engines 120 , 126 , and/or 132 . If the generated content hash matches the content record's stored content hash, the content is successfully authenticated. The content hash can be used to identify metadata associated with the content, thereby enabling a user to view the content source associated with the content and the associated metadata.

콘텐츠 소스(102)로부터의 콘텐츠는 낮은 품질일 수 있거나 CDN(140)에 의해서 배포될 수 있는 것과 다른 포맷일 수 있다. 따라서, 콘텐츠 프로세서(122, 128, 및/또는 136)가 콘텐츠를 개선 또는 변경하기 위해서 사용될 수 있다. 일 예로서, 게이트웨이 노드(104)(콘텐츠 소스(102)로부터 콘텐츠를 수신하였음)는 콘텐츠 프로세서(122)를 사용하여 본 명세서에서 설명된 AI-기반 트랜스코딩 기법들을 수행하여 콘텐츠의 트랜스코딩된 버전을 생성한다. 트랜스코딩된 버전은 CDN(140)의 다른 노드로(예를 들어, 지역 노드(108)를 통하여 게이트웨이 노드(106) 로) 배포될 수 있다. 콘텐츠는 콘텐츠 소스(102)로부터 콘텐츠를 수신하는 것에 응답하여 트랜스코딩될 수 있다.Content from content source 102 may be of lower quality or may be in a different format than may be distributed by CDN 140 . Accordingly, content processors 122, 128, and/or 136 may be used to improve or change content. As an example, gateway node 104 (which has received content from content source 102) uses content processor 122 to perform the AI-based transcoding techniques described herein to obtain a transcoded version of the content. generate The transcoded version may be distributed to other nodes of CDN 140 (e.g., via local node 108 to gateway node 106). Content may be transcoded in response to receiving content from content source 102 .

다른 예들에서는, 노드(104, 106, 또는 108)가 콘텐츠에 대한 요청(예를 들어, 클라이언트 디바이스(110)로부터의 요청)에 응답하여 콘텐츠 프로세서(122, 128, 또는 136)를 각각 사용하여 AI-기반 트랜스코딩 기법을 수행하도록, 원본 콘텐츠가 CDN(140)의 노드로 배포된다. 예를 들어, 이러한 요청은, 여러 가지 예들 중에서 요청된 해상도, 오디오 채널의 개수, 비트레이트, 및/또는 색상 깊이를 표시하는 요청된 포맷 정보를 포함할 수 있다. 따라서, 요청된 포맷 정보는 요청된 비디오 포맷 정보 및/또는 요청된 오디오 포맷 정보에 관련될 수 있다. 추가적으로, CDN(140) 내에서 원본 콘텐츠를 배포하고 이러한 콘텐츠에 대한 요청을 처리하는 노드에서 트랜스코딩을 수행하면, CDN(140) 내에서 콘텐츠를 전송하는 것과 연관된 대역폭이 감소될 수 있다.In other examples, node 104, 106, or 108 uses content processor 122, 128, or 136, respectively, to generate AI in response to a request for content (eg, from client device 110). - Original content is distributed to the nodes of CDN 140 to perform the based transcoding technique. For example, this request may include requested format information indicating the requested resolution, number of audio channels, bit rate, and/or color depth, among other examples. Accordingly, the requested format information may relate to requested video format information and/or requested audio format information. Additionally, distributing original content within CDN 140 and performing transcoding at nodes that process requests for such content may reduce the bandwidth associated with transmitting content within CDN 140 .

일부 예들에서, 노드가 콘텐츠에 대한 모든 요청에 응답하여 트랜스코딩된 버전을 생성할 필요가 없고 그 대신에 캐싱된 트랜스코딩된 버전을 데이터 저장소로부터 제공할 수 있도록, 콘텐츠의 트랜스코딩된 버전의 적어도 일부가 미리 결정된 시간량 동안 데이터 저장소 내에 캐싱된다. 다른 예들에서는, 수신자 노드가 콘텐츠를 트랜스코딩할 필요가 없도록, 트랜스코딩된 버전이 하나의 노드로부터 다른 노드로(예를 들어, 지역 노드(108)의 데이터 저장소(130)로부터 게이트웨이 노드(104)의 데이터 저장소(118)로) 송신될 수 있다. 여러 가지 예들 중에서, 시스템(100)에 대해서 전술된 기법이 콘텐츠 소스(102)가 사전-기록된 콘텐츠 및/또는 실시간 콘텐츠를 제공하는 예에서 사용될 수 있다는 것이 이해될 것이다.In some examples, at least one copy of the transcoded version of the content, such that the node need not generate a transcoded version in response to every request for the content, but instead can provide a cached transcoded version from a data store. A portion is cached in the data store for a predetermined amount of time. In other examples, the transcoded version may be transferred from one node to another (e.g., from data store 130 of local node 108 to gateway node 104) so that the recipient node does not have to transcode the content. to the data store 118 of). It will be appreciated that the techniques described above with respect to system 100 may be used in instances where content source 102 provides pre-recorded and/or real-time content, among other examples.

지역 노드(108)는 모델 관리자(134)를 더 포함하는 것으로서 예시된다. 예들에서, 콘텐츠 프로세서(122, 128, 및 136)에 의해서 사용되는 트랜스코딩 모델은 모델 관리자(134)에 의해서 관리된다. 예를 들어, 콘텐츠 프로세서(122)는 암시적 및/또는 명시적 사용자 피드백에 기반하여 콘텐츠를 트랜스코딩하기 위해서 사용되는 트랜스코딩 모델을 재훈련하거나 업데이트할 수 있다. 따라서, 이러한 모델이 모델 관리자(134)로 제공되거나 모델 관리자에 의해서 취출될 수 있고, 모델 관리자는 업데이트된 트랜스코딩 모델을 CDN(140)의 다른 콘텐츠 프로세서로 배포할 수 있다. 따라서, 트랜스코딩 모델이 노드들(104, 106, 및 108) 사이에서 공유될 수 있다. 이와 유사하게, 모델 관리자(134)는 노드들(104, 106, 및 108) 사이에서의 트랜스코딩 레시피의 공유를 가능하게 할 수 있다. 예를 들어, 게이트웨이 노드(106)의 콘텐츠 프로세서(128)가 콘텐츠의 어떤 조각을 트랜스코딩하기 위해서 트랜스코딩 모델들의 어떤 세트가 사용되어야 하는지를 이미 분석했으면, 모델 관리자(134)는 게이트웨이 노드(106)로부터 해당 트랜스코딩 레시피를 취출 또는 액세스하고, 트랜스코딩 레시피를 콘텐츠 프로세서(122 및 136)와 공유한다. 따라서, 노드(104, 106, 및 108)에 의해 생성된 트랜스코딩된 버전은 동일하거나 유사한 트랜스코딩 레시피를 사용한 결과로서 유사해질 수 있다. 트랜스코딩 모델 및 레시피를 동기화하기 위해서 다른 기법이 사용될 수 있다는 것이 이해될 것이다. 예를 들어, 중앙화된 데이터 저장소가 사용될 수도 있다.Local node 108 is illustrated as further including a model manager 134 . In examples, the transcoding models used by content processors 122 , 128 , and 136 are managed by model manager 134 . For example, content processor 122 may retrain or update a transcoding model used to transcode content based on implicit and/or explicit user feedback. Accordingly, these models can be provided to or retrieved by the model manager 134 , which can then distribute the updated transcoding model to other content processors in the CDN 140 . Thus, a transcoding model can be shared between nodes 104, 106, and 108. Similarly, model manager 134 may enable sharing of transcoding recipes among 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 certain piece of content, the model manager 134 may use the gateway node 106 Retrieves or accesses the corresponding transcoding recipe from, and shares the transcoding recipe with the content processors 122 and 136. Thus, the transcoded versions produced by nodes 104, 106, and 108 may be similar as a result of using the same or similar transcoding recipes. It will be appreciated that other techniques may be used to synchronize transcoding models and recipes. For example, a centralized data repository may be used.

도 1b는 예시적인 분산 원장 엔진(150)의 개관을 예시한다. 도시된 바와 같이, 분산 원장 엔진(150)은 해시 생성기(152), 스마트 콘트랙트 프로세서(154), 트리거 프로세서(156), 및 콘텐츠 인증기(158)를 포함한다. 예들에서, 분산 원장 엔진(150)은 CDN 노드의 일부, 예컨대 도 1a에서 노드(104, 106, 및 108) 각각의 분산 원장 엔진(120, 126, 및 132)이다.1B illustrates an overview of an exemplary distributed ledger engine 150 . As shown, distributed ledger engine 150 includes hash generator 152 , smart contract processor 154 , trigger processor 156 , and content authenticator 158 . In examples, distributed ledger engine 150 is part of a CDN node, such as distributed ledger engine 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 하위부분은 콘텐츠를 고유하게 식별할 수 있는 반면에, 해시의 하나 이상의 다른 하위부분은 콘텐츠 해상도(예를 들어, HD, 4K, 및/또는 8K 콘텐츠에 대하여 하위부분마다 상이한 해시) 및/또는 콘텐츠 소스와 연관될 수 있다(예를 들어, 스트리밍 플랫폼은 원본 콘텐츠 발행자와 다른 해시 하위부분을 가질 수 있음). 해시 생성기(152)에 의해 생성된 콘텐츠 해시는 분산 원장의 콘텐츠 레코드의 일부로서 저장될 수 있다. 일부 예들에서, 해시 생성기(152)는 콘텐츠와 연관된 메타데이터의 해시를 생성할 수 있고, 이것도 역시 콘텐츠 레코드의 일부로서 저장될 수 있다. 콘텐츠 레코드는, 콘텐츠가 CDN에 의해서 언제 수신되었는지와 연관된 타임스탬프(예를 들어 도 1a의 콘텐츠 소스(102)로부터 수신됨), 및 연관된 콘텐츠 소스 정보(예를 들어, 이메일 어드레스, 청구지 어드레스, 회사 명칭 등)를 포함하지만 이들로 한정되는 것은 아닌, 콘텐츠와 연관된 메타데이터의 적어도 일부 또는 다양한 다른 정보 중 임의의 것을 더 포함할 수 있다.Hash generator 152 generates hash content according to aspects described herein. For example, the content hash is any of a variety of hashing algorithms, such as SHA-2 hash (eg, SHA-256, SHA-512, etc.) or RIPEMD hash (eg, RIPEMD-160, RIPEMD-256, etc.) can be created using Hash generator 152 may generate a content hash based on the content itself rather than based on metadata alone or in combination with the content. A hash can have several sub-portions, wherein a first sub-portion of the hash can uniquely identify the content, while one or more other sub-portions of the hash can determine the content resolution (e.g., HD, 4K, and/or different hash per subportion for 8K content) and/or may be associated with a content source (eg, a streaming platform may have a different hash subportion than the original content publisher). The content hash generated by hash generator 152 may be stored as part of a content record in a distributed ledger. In some examples, hash generator 152 may generate a hash of metadata associated with the content, which may also be stored as part of the content record. A content record includes a timestamp associated with when the content was received by the CDN (eg, received from content source 102 in FIG. 1A), and associated content source information (eg, email address, billing address, company name, etc.) or any of a variety of other information or at least some of the metadata associated with the content, including but not limited to.

분산 원장 엔진(150)의 스마트 콘트랙트 프로세서(154)는 콘텐츠와 연관된 스마트 콘트랙트를 생성한다. 전술된 바와 같이, 스마트 콘트랙트는 CDN, 콘텐츠 소스, 및/또는 다른 아티스트들 중 음악가, 남주인공/여주인공, 및 감독을 포함하지만 이들로 한정되는 것은 아닌 다양한 당사자들 중 임의의 당사자 사이에서 생성될 수 있다. 스마트 콘트랙트 프로세서(154)는 생성된 스마트 콘트랙트를 콘텐츠 해시(예를 들어, 해시 생성기(152)에 의해 생성되었을 수 있음)와 연관시킬 수 있다. 스마트 콘트랙트 프로세서(154)는 스마트 콘트랙트를 콘텐츠 레코드가 저장된 것과 같은 분산 원장 내에 저장할 수 있고, 또는 다른 예들에서는 스마트 콘트랙트가 상이한 분산 원장일 수도 있다. 예를 들어, 상이한 당사자에 대해서 상이한 분산 원장(예를 들어, 특정 아티스트 등에 대한 로열티 지불을 추적하기 위해서 동일한 분산 원장을 사용하는, 각각의 콘텐츠 소스에 대해 상이한 분산 원장)이 사용될 수 있다. 스마트 콘트랙트 프로세서(154)는 별개의 사용자들 사이에서 스마트 콘트랙트를 생성할 필요가 없거나, 다른 예들에서는, 스마트 콘트랙트의 당사자가 실제 사용자일 필요가 없고 그 대신에 플레이스홀더(placeholder)로서의 역할을 할 수도 있다. 예를 들어, 로열티 지불의 레코드를 생성하기 위해서 로열티 스마트 콘트랙트가 사용될 수 있고, 이러한 계좌가 콘텐츠 소스 또는 다른 당사자에게 제공되어, 궁극적으로 로열티가 지불되게 할 수 있다. 다른 예로서, CDN은 콘트랙트에 대한 유일한 당사자이고, 따라서 CDN은 트리거의 발생에 기반하여 분산 원장을 통한 분석정보를 유지보수할 수 있게 된다.The smart contract processor 154 of the distributed ledger engine 150 creates a smart contract associated with the content. As noted above, a smart contract may be created between a CDN, a content source, and/or any of a variety of parties including, but not limited to, musicians, heroines, and directors among other artists. can Smart contract processor 154 may associate the created smart contract with a content hash (eg, which may have been generated by hash generator 152). The smart contract processor 154 may store the smart contract within the same distributed ledger as the content record is stored, or in other examples the smart contract may be a different distributed ledger. For example, different distributed ledgers can be used for different parties (eg, different distributed ledgers 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 create smart contracts between distinct users, or in other instances, the parties to the smart contract need not be actual users and may instead act as placeholders. there is. For example, a royalty smart contract may be used to create a record of royalty payments, and such an account may be provided to a content source or other party to ultimately have royalties paid. As another example, the CDN is the sole party to the contract, so the CDN can maintain analytics information through the distributed ledger based on the occurrence of triggers.

트리거 프로세서(156)는 트리거를 처리하고, 연관된 스마트 콘트랙트를 실행한다. 위에서 언급된 바와 같이, 트리거는 콘텐츠 전송(예를 들어, 클라이언트 디바이스로의 또는 원점 및 에지 노드 사이의 송신, 스트리밍 또는 다운로드 활동 등) 또는 콘텐츠 재생(예를 들어, 콘텐츠를 플레이/일시정지하는 것, 고속-앞으로가기 / 뒤로가기, 재생을 조기에 종료하는 것 등)에 관련된 이벤트와 같은 다양한 이벤트 중 임의의 것일 수 있다. 예를 들어, 트리거 프로세서(156)는 이벤트(예를 들어, 로그 데이터에 접근하는 것, 데이터 저장소에게 콘텐츠를 질의하는 것 등)가 발생되었는지 여부를 결정하기 위해서 폴링(polling)을 수행할 수 있고, 또는 표시를 수신할 수도 있다(예를 들어 CDN 노드로부터, 클라이언트 디바이스로부터 등). 트리거 프로세서(156)가 트리거를 식별하면, 해당 트리거와 연관된 콘텐츠 해시가 연관된 스마트 콘트랙트(예를 들어, 스마트 콘트랙트 프로세서(154)에 의해서 생성되었을 수 있음)를 식별하고 실행하기 위해서 사용된다.The trigger processor 156 processes triggers and executes associated smart contracts. As mentioned above, a trigger can be a content transfer (e.g. transmission to a client device or between an origin and an edge node, streaming or download activity, etc.) or content playback (e.g. play/pause content). , fast-forward/rewind, prematurely ending playback, etc.). For example, trigger processor 156 can poll to determine whether an event has occurred (eg, accessing log data, querying a data store for content, etc.) , or an indication (eg from a CDN node, from a client device, etc.). When trigger processor 156 identifies a trigger, the content hash associated with that trigger is used to identify and execute the associated smart contract (e.g., which may have been created by smart contract processor 154).

콘텐츠 인증기(158)는 분산 원장 내의 콘텐츠 해시와 비교된 콘텐츠를 인증한다. 예를 들어, 콘텐츠 인증기(158)는 인증 요청을 수신할 수 있다(예를 들어, 도 1a의 클라이언트 디바이스(110)와 같은 클라이언트 디바이스로부터의 트랜잭션을 처리한 결과로서). 인증 요청은 특정한 콘텐츠에 대한 해시를 생성하기 위한 표시를 포함하거나 해시(예를 들어, 클라이언트 디바이스에 의해 생성될 수 있음)를 포함할 수 있다. 해시가 요청의 일부로서 수신되지 않은 예들에서, 해시 생성기(152)는 콘텐츠의 해시를 생성한다. 그러면 콘텐츠 인증기(158)가 수신된 해시 또는 생성된 해시 중 어느 하나를 분산 원장 내의 해시와 비교하여 콘텐츠를 인증한다. 위에서 언급된 바와 같이, 콘텐츠 및/또는 메타데이터와 연관된 콘텐츠 소스에 관련된 추가적인 인증이 수행될 수도 있다.Content authenticator 158 authenticates the content compared to content hashes in the distributed ledger. For example, content authenticator 158 may receive an authentication request (eg, as a result of processing a transaction from a client device, such as client device 110 of FIG. 1A ). The authentication request may include an indication to generate a hash for the particular content or may include a hash (eg, which may be generated by the client device). In instances where a hash was not received as part of the request, hash generator 152 generates a hash of the content. The content authenticator 158 then compares either the received hash or the generated hash with the hash in the distributed ledger to authenticate the content. As noted above, additional authentication may be performed in relation to content sources associated with content and/or metadata.

도 1c는 AI-기반 트랜스코딩을 수행하기 위한 예시적인 콘텐츠 프로세서(180)의 개관을 예시한다. 도시된 바와 같이, 콘텐츠 프로세서(180)는 모델 선택기(182), 대상물 검출기(184), 트랜스코딩 엔진(186), 및 품질 평가기(188)를 포함한다. 예들에서, 콘텐츠 프로세서(180)는 CDN 노드의 일부, 예컨대 도 1a의 노드(104, 106, 및 108) 각각의 콘텐츠 프로세서(122, 128, 및 136)이다. 콘텐츠 프로세서(180)는 콘텐츠 소스, 예컨대 도 1a의 콘텐츠 소스(102)로부터의 콘텐츠를 트랜스코딩한다.1C illustrates an overview of an exemplary content processor 180 for performing AI-based transcoding. As shown, content processor 180 includes model selector 182 , object detector 184 , transcoding engine 186 , and quality evaluator 188 . In examples, content processor 180 is part of a CDN node, such as content processors 122, 128, and 136 of nodes 104, 106, and 108 of FIG. 1A, respectively. Content processor 180 transcodes content from a content source, such as content source 102 of FIG. 1A.

모델 선택기(182)는 AI-기반 트랜스코딩을 수행하기 위한 트랜스코딩 모델을 선택한다. 예를 들어, 모델 선택기(182)는 트랜스코딩 모델을, 콘텐츠 메타데이터(예를 들어, 특정한 콘텐츠 타입을 나타낼 수 있는 장르, 남주인공/여주인공 등), 비디오 분석(예를 들어, 비트레이트, 프레임 복잡도, 명암등), 원본 콘텐츠 해상도, 타겟 콘텐츠 해상도, 모션 벡터, 제조년도, 포맷 또는 코덱 타입, 및/또는 소비자 또는 다른 사용자로부터 수신된 피드백을 포함하지만 이들로 한정되는 것은 아닌 다양한 기준들에 따라서 선택한다. 위에서 설명된 바와 같이, 트랜스코딩 모델들의 세트는 상이한 콘텐츠 타입에 따라서 훈련되었을 수 있다. 예를 들어, 액션 콘텐츠, 스포츠 콘텐츠, 애니메이션된 콘텐츠, 리얼리티 콘텐츠, 광고 콘텐츠, 및 흑백 콘텐츠에 대하여 상이한 모델이 존재할 수 있다.A model selector 182 selects a transcoding model for performing AI-based transcoding. For example, the model selector 182 selects a transcoding model, content metadata (eg, genre that can represent a particular content type, male/female characters, etc.), video analysis (eg, bit rate, frame complexity, contrast, etc.), original content resolution, target content resolution, motion vector, year of manufacture, format or codec type, and/or feedback received from consumers or other users. So choose As described above, a set of transcoding models may have been trained according to different content types. For example, different models may exist for action content, sports content, animated content, reality content, advertising content, and black and white content.

예들에서, 모델 선택기(182)는 다수의 트랜스코딩 모델을 비교하여 어떤 트랜스코딩 모델을 적용할지를 결정한다. 예를 들어, 대상물 검출기(184)는 주어진 비디오 프레임 내의 다른 대상물 중에서 무생물인 대상물, 움직이는 문자, 및 남주인공/여주인공을 식별할 수 있다. 대상물 검출기(184)는 임의의 개수 및/또는 다양한 인식 머신 러닝 모델을 적용할 수 있다. 예를 들어, 대상물의 특정한 서브세트를 인식하기 위해서 각각의 대상물 인식 머신 러닝 모델이 훈련되었을 수 있고, 또는 다른 예들에서는 대상물 인식 머신 러닝 모델이 특정 타입의 콘텐츠에 따라서 훈련된다. 대상물 검출기(184)가 그 외의 다양한 대상물 검출 기법(예를 들어, 프레임 내의 에지를 식별하는 것, 프레임들의 세트에 걸친 움직임을 분석하는 것 등)을 적용할 수 있다는 것이 이해될 것이다.In examples, model selector 182 compares multiple transcoding models to determine which transcoding model to apply. For example, object detector 184 can identify inanimate objects, moving characters, and hero/heroines among other objects within a given video frame. Object detector 184 may apply any number and/or variety of cognitive machine learning models. For example, each object recognition machine learning model may have been trained to recognize a particular subset of objects, or in other examples an object recognition machine learning model is trained according to a particular type of content. It will be appreciated that object detector 184 may apply a variety of other object detection techniques (eg, identifying edges within a frame, analyzing motion across a set of frames, etc.).

그러면, 모델 선택기(182)는 품질 평가기(188)를 사용하여 다수의 트랜스코딩 모델로부터의 모델 처리 결과를 평가하여, 검출된 대상물이 각각의 트랜스코딩 모델에 의해서 얼마나 양호하게 트랜스코딩되었는지를 결정할 수 있다. 예들에서, 품질 평가기(188)는 이러한 비교를 프로그램을 이용하여 수행한다(예를 들어, 트랜스코딩 아티팩트를 검출하고, 레퍼런스 프레임을 트랜스코딩된 프레임과 비교하는 등에 의하여). 예를 들어, 소스 프레임은 다운스케일링될 수 있어서, 다운스케일링된 소스 프레임이 다수의 트랜스코딩 모델을 사용하여 업스케일링되어 다수의 트랜스코딩된 프레임을 생성하게 한다. 오차 및 품질 손실을 식별하기 위해서 트랜스코딩된 프레임은 원본 소스 프레임과 비교될 수 있어서, 최고의 품질(예를 들어, 최저 오차, 최저 품질 손실 등)을 보여주는 트랜스코딩 모델이 콘텐츠를 트랜스코딩하기 위해서 선택될 수 있게 한다. 다른 예들에서, 품질 평가기(188)는, 예를 들어 사용자 선택을 위하여 트랜스코딩된 여러 프레임들의 디스플레이를 생성함으로써, 명시적/암시적 사용자 입력을 요청 또는 수신한다.Model selector 182 then evaluates model processing results from multiple transcoding models using quality evaluator 188 to determine how well detected objects were transcoded by each transcoding model. can In examples, quality evaluator 188 performs this comparison programmatically (eg, by detecting transcoding artifacts, comparing a reference frame to a transcoded frame, etc.). For example, a source frame may be downscaled such that the downscaled source frame is upscaled using multiple transcoding models to produce multiple transcoded frames. Transcoded frames can be compared to the original source frames to identify errors and quality loss, so that the transcoding model showing the highest quality (e.g., lowest error, lowest quality loss, etc.) is selected for transcoding the content. make it possible In other examples, quality evaluator 188 requests or receives explicit/implicit user input, for example by generating a display of several transcoded frames for user selection.

트랜스코딩 엔진(186)은 콘텐츠를 트랜스코딩하여 트랜스코딩된 콘텐츠를 생성한다. 트랜스코딩 엔진(186)은 트랜스코딩을 수행하기 위해서, 모델 선택기(182)에 의해 선택된 트랜스코딩 모델을 사용한다. 예들에서, 콘텐츠를 트랜스코딩하기 위해서 다수의 트랜스코딩 모델이 사용되는데, 이러한 경우에는 콘텐츠의 하나의 하위부분을 위해서 하나의 모델이 사용될 수 있는 반면에, 다른 하위부분을 위해서는 다른 모델이 사용될 수 있다. 따라서, 트랜스코딩 모델 성능이 트랜스코딩 도중에 주기적으로 평가될 수 있어서(예를 들어, 품질 평가기(188)에 의하여), 트랜스코딩 모델이 주어진 하위부분에 대한 모델 성능에 따라서 변경될 수 있게 한다(예를 들어, 모델 선택기(182)에 의해 이루어진 선택에 따라서). 일부 예들에서, 트랜스코딩 엔진(186)이 모델 선택기(182)가 모델 선택 프로세스를 수행하기 위해서 다시 사용되어야 한다고 결정할 수 있도록, 콘텐츠 해상도는 바뀔 수 있다(예를 들어, 콘텐츠 내의 브로드캐스트의 스포츠 세그멘트와 광고 사이에서). 다른 예들에서, 대상물 검출기(184)는 비디오 프레임의 콘텐츠를 결정하거나 대상물가 언제 사라졌는지를 식별하기 위해서 사용될 수 있고, 이들 양자 모두는 모델 선택기(182)가 트랜스코딩 모델 성능을 재평가하게 할 수 있다. 일부 예들에서, 트랜스코딩 엔진(186)은 상이한 트랜스코딩 모델을 인트라프레임, 예측된-프레임, 및/또는 양방향성-프레임(이들 각각은 모델 선택기(182)에 의하여 선택될 수 있음)에 적용한다. 위에서 언급된 바와 같이, 이러한 기법은 트랜스코딩과 동시에 수행될 필요가 없어서, 그 대신에 트랜스코딩 엔진(186)이 콘텐츠의 어떤 하위부분을 트랜스코딩하기 위해서 어떤 트랜스코딩 모델이 사용되어야 하는지를 특정하는 트랜스코딩 레시피를 활용하게 한다. Transcoding engine 186 transcodes content to produce transcoded content. Transcoding engine 186 uses the transcoding model selected by model selector 182 to perform transcoding. In examples, multiple transcoding models are used to transcode content, in which case one model may be used for one sub-portion of content, while another model may be used for another sub-portion. . Thus, the transcoding model performance can be evaluated periodically during transcoding (e.g., by the quality estimator 188), allowing the transcoding model to change according to the model performance for a given subpart (e.g., by quality estimator 188). eg, according to a selection made by model selector 182). In some examples, the content resolution can be changed (e.g., a sports segment of a broadcast within content) so that transcoding engine 186 can determine that model selector 182 should be used again to perform the model selection process. and between ads). In other examples, object detector 184 can be used to determine the content of a video frame or to identify when an object has disappeared, both of which can cause model selector 182 to re-evaluate transcoding model performance. . In some examples, transcoding engine 186 applies a different transcoding model to intraframes, predicted-frames, and/or bi-frames (each of which may be selected by model selector 182). As mentioned above, this technique need not be performed concurrently with the transcoding, so that instead the transcoding engine 186 has a transcode that specifies which transcoding model should be used to transcode which sub-portion of the content. Make use of coding recipes.

도 2a는 본 명세서에서 설명된 분산 원장 기법들에 따라서 CDN에 콘텐츠를 추가하기 위한 예시적인 방법(200)의 개관을 예시한다. 예들에서, 방법(200)의 양태들은 CDN의 노드, 예컨대 도 1a의 노드(104, 106 또는 108)에 의해서 수행된다. 다른 예로서, 방법(200)의 양태들은 분산 원장 엔진, 예컨대 도 1b의 분산 원장 엔진(150)에 의해서 수행될 수 있다. 방법(200)은 콘텐츠의 표시가 수신되는 동작(202)에서 시작된다. 콘텐츠의 표시는 콘텐츠 소스, 예컨대 도 1a의 콘텐츠 소스(102)로부터 수신될 수 있다. 다른 예로서, 콘텐츠의 표시는, 사용자(예를 들어, 콘텐츠 소스와 연관된 클라이언트 디바이스의 사용자)가 콘텐츠를 선택하고, 타이틀 및 남주인공/여주인공, 감독, 또는 다른 연관된 아티스트의 목록과 같은 연관된 메타데이터를 특정할 수 있게 하는, CDN의 웹사이트를 통해서 수신될 수 있다. 다른 예들에서, 메타데이터는 메타데이터 보관소 내에 저장되고, 콘텐츠 표시는 메타데이터 보관소 내의 메타데이터에 대한 레퍼런스를 포함한다. 애플리케이션 프로그래밍 인터페이스(API)를 사용하는 것과 같은 임의의 다양한 다른 기법이 콘텐츠 소스로부터 콘텐츠를 수신하기 위해서 사용될 수 있다는 것이 이해될 것이다.2A illustrates an overview of an example method 200 for adding content to a CDN in accordance with the distributed ledger techniques described herein. In examples, aspects of method 200 are performed by a node of a CDN, such as node 104, 106 or 108 of FIG. 1A. As another example, aspects of method 200 may be performed by a distributed ledger engine, such as distributed ledger engine 150 of FIG. 1B . The method 200 begins at operation 202 where a presentation of content is received. The presentation of content may be received from a content source, such as content source 102 of FIG. 1A. As another example, presentation of content may be performed by a user (eg, a user of a client device associated with the content source) selecting the content, and a title and associated meta, such as a list of protagonists, directors, or other associated artists. It can be received through the website of the CDN, allowing the data to be specified. In other examples, metadata is stored within the metadata repository, and the content representation includes a reference to the metadata within 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 from this content. In examples, the hash is generated by a hash generator, such as hash generator 152 of FIG. 1B. For example, a content hash may be generated based on the content itself rather than based on metadata alone or metadata combined with the content. In examples, the content hash is part of the content record. A content record may store any of a variety of other information, such as hashes associated with 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 created. A smart contract may be created by a smart contract processor, such as smart contract processor 154 of FIG. 1B. A smart contract is created between a CDN, a content source to which an indication received at operation 202 is associated, and/or various parties, including but not limited to musicians, heroines/protagonists, and directors among other artists. It can be. The smart contract created in operation 206 may be associated with the content hash that was created in operation 204 . As noted above, a smart contract need not be between separate users, or in other examples, a party to a smart contract need not be an actual user and may instead act as a placeholder. A smart contract may be associated with any of a variety of triggers that cause the smart contract to be executed in accordance with aspects described herein. Although operations 206 and 208 are described as creating one smart contract, it will be appreciated that any number of smart contracts may be created.

동작(208)으로 이동하면, 콘텐츠 해시 및 스마트 콘트랙트가 분산 원장 내에 저장된다. 예들에서, 동작(204)에서 생성된 콘텐츠 레코드 및 동작(206)에서 생성된 하나 이상의 스마트 콘트랙트는 동일한 분산 원장 내에 저장된다. 다른 예로서, 스마트 콘트랙트는 콘텐츠 레코드와 다른 분산 원장 내에 저장될 수 있다. 예를 들어, 상이한 당사자에 대해서 상이한 분산 원장(예를 들어, 특정 아티스트 등에 대한 로열티 지불을 추적하기 위해서 동일한 분산 원장을 사용하는, 각각의 콘텐츠 소스에 대해 상이한 분산 원장)이 사용될 수 있다. 흐름은 동작(208)에서 종결된다.Moving to operation 208, the content hash and smart contract are stored within the distributed ledger. In examples, the content record created in operation 204 and the one or more smart contracts created in operation 206 are stored within the same distributed ledger. As another example, smart contracts can be stored in a distributed ledger separate from content records. For example, different distributed ledgers can be used for different parties (eg, different distributed ledgers for each content source, using the same distributed ledger to track royalty payments to a particular artist, etc.). Flow ends at operation 208 .

도 2b는 본 명세서에서 설명된 분산 원장 기법들에 따라서 콘텐츠와 연관된 트리거를 처리하기 위한 예시적인 방법(220)의 개관을 예시한다. 예들에서, 방법(220)의 양태들은 CDN의 노드, 예컨대 도 1a의 노드(104, 106 또는 108)에 의해서 수행된다. 다른 예로서, 방법(220)의 양태들은 분산 원장 엔진, 예컨대 도 1b의 분산 원장 엔진(150)에 의해서 수행될 수 있다. 방법(220)은 콘텐츠의 조각과 연관된 트리거의 표시가 수신되는 동작(222)에서 시작된다. 예들에서, 표시는 다른 정보 중에서 콘텐츠의 콘텐츠 해시 및 트리거 타입을 포함한다. 이러한 표시는 트리거 프로세서, 예컨대 도 1b의 트리거 프로세서(156)에 의해서 수신될 수 있다. 다른 예들에서, 이러한 표시는 수신되지 않고, 그 대신에 트리거 프로세서에 의해 생성된다.2B illustrates an overview of an example method 220 for processing a trigger associated with content in accordance with the distributed ledger techniques described herein. In examples, aspects of method 220 are performed by a node of a CDN, such as node 104, 106 or 108 of FIG. 1A. As another example, aspects of method 220 may be performed by a distributed ledger engine, such as distributed ledger engine 150 of FIG. 1B . Method 220 begins at operation 222 where an indication of a trigger associated with a piece of content is received. In examples, the indication includes, among other information, a content hash of the content and a trigger type. This indication may be received by a trigger processor, such as trigger processor 156 of FIG. 1B. In other instances, this indication is not received, but instead generated by the trigger processor.

동작(224)에서는, 콘텐츠 인증이 수행된다. 콘텐츠 인증은 콘텐츠 인증기, 예컨대 도 2c에서 후술되는 방법(240)의 양태를 수행할 수 있는 도 1b의 콘텐츠 인증기(158)에 의해서 수행될 수 있다. 콘텐츠 인증은 트리거가 연관되는 콘텐츠에 대한 해시를 생성하는 것 및 이러한 해시를 분산 원장의 콘텐츠 레코드 내의 해시(예를 들어, 도 2a의 방법(200)의 동작(204 및 208)에 의해서 생성되었을 수 있음)와 비교하는 것을 포함할 수 있다. 다른 경우에, 동작(222)에서 수신된 콘텐츠 해시는 해시들이 매칭된다는 것을 확정하기 위하여 분산 원장 내의 콘텐츠 해시와 비교된다. 일부 예들에서, 동작(224)은 생략되거나 스마트 콘트랙트의 타입에 따라서 수행될 수 있다(예를 들어, 지불과 연관된 스마트 콘트랙트는 콘텐츠 인증을 포함할 수 있는 반면에, 분석정보와 연관된 스마트 콘트랙트는 그렇지 않을 수 있음).In operation 224, content authentication is performed. Content authentication may be performed by a content authenticator, such as content authenticator 158 of FIG. 1B , which may perform aspects of method 240 described below in FIG. 2C . Content authentication may have been generated by generating a hash for the content to which the trigger is associated and generating this hash within the content record of the distributed ledger (e.g., operations 204 and 208 of method 200 of FIG. 2A). ) and comparisons may be included. In another case, the content hash received in operation 222 is compared to the content hash in the distributed ledger to determine 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 payment may include content authentication, while a smart contract associated with analytics does not). may not be).

흐름은 큰텐츠와 연관된 스마트 콘트랙트가 식별되는 동작(226)으로 진행한다. 예들에서, 스마트 콘트랙트는 콘텐츠 해시와 같은 분산 원장에 저장되어, 스마트 콘트랙트가 그 안에서 식별될 수 있게 한다. 다른 예들에서, 콘텐츠 해시는 상이한 분산 원장 내의 스마트 콘트랙트를 식별하기 위해서 사용되거나, 다른 예로서는, 콘텐츠 레코드가 상이한 분산 원장 내의 스마트 콘트랙트에 대한 동일한 레퍼런스를 포함할 수 있다. 따라서, 콘텐츠의 조각과 연관된 스마트 콘트랙트를 식별하기 위하여 다양한 기법 중 임의의 것이 사용될 수 있다는 것이 이해될 것이다.Flow proceeds to operation 226 where a smart contract associated with the large content is identified. In examples, the smart contract is stored on a distributed ledger, such as a content hash, allowing the smart contract to be identified therein. In other examples, a content hash is used to identify a smart contract in a different distributed ledger, or as another example, a content record can contain the same reference to a smart contract in a different distributed ledger. Accordingly, it will be appreciated that any of a variety of techniques may be used to identify a smart contract associated with a piece of content.

동작(228)에서, 동작(228)에서 식별되었던 스마트 콘트랙트가 실행된다. 예들에서, 스마트 콘트랙트를 실행하는 것은, 스마트 콘트랙트와 연관된 분산 원장 내에 새로운 레코드를 생성하고, 이를 통하여 보고서(예를 들어, 지불 청구서, 분석정보 등)를 생성하기 위한 분산 원장의 후속 처리를 가능하게 하는 것을 포함한다. 다른 예들에서, 스마트 콘트랙트는 전자 통신을 생성하는 것, 콘텐츠를 CDN 내에서 송신하는 것, 및/또는 콘텐츠 트랜스코딩을 수행하는 것을 포함하는 다양한 다른 동작들 중 임의의 것을 특정할 수 있다. 스마트 콘트랙트 실행의 일부로서, 임의의 개수의 액션이 동작(228)에서 수행될 수 있다는 것이 이해될 것이다. 흐름은 동작(228)에서 종결된다.In operation 228, the smart contract identified in operation 228 is executed. In examples, executing a smart contract creates a new record in the distributed ledger associated with the smart contract, enabling subsequent processing of the distributed ledger to generate reports (e.g., invoices, analytics, etc.) includes doing In other examples, a smart contract may specify any of a variety of other actions including generating electronic communications, transmitting content within a CDN, and/or performing content transcoding. It will be appreciated that any number of actions may be performed in operation 228 as part of smart contract execution. Flow ends at operation 228 .

도 2c는 본 명세서에서 설명된 분산 원장 기법들에 따라서 콘텐츠를 인증하기 위한 방법(240)의 개관을 예시한다. 예들에서, 방법(220)의 양태들은 CDN의 노드, 예컨대 도 1a의 노드(104, 106 또는 108)에 의해서 수행된다. 다른 예로서, 방법(240)의 양태들은 분산 원장 엔진, 예컨대 도 1b의 분산 원장 엔진(150)에 의해서 수행될 수 있다. 방법(240)은 콘텐츠에 대한 요청이 수신되는 동작(242)에서 시작된다. 일부 예들에서, 이러한 요청은 클라이언트 디바이스, 예컨대 도 1a의 클라이언트 디바이스(110)로부터 수신된다. 다른 예들에서, 이러한 요청은 스마트 콘트랙트 프로세서, 예컨대 도 1b의 스마트 콘트랙트 프로세서(154)로부터 수신되는데, 이것은 도 2b의 동작(224)의 양태를 수행할 수 있다. 콘텐츠에 대한 요청 인증은 콘텐츠 해시(예를 들어, 이러한 요청이 그로부터 수신되었던 클라이언트 디바이스에 의해서 생성되었을 수 있음).2C illustrates an overview of a method 240 for authenticating content according to the distributed ledger techniques described herein. In examples, aspects of method 220 are performed by a node of a CDN, such as node 104, 106 or 108 of FIG. 1A. As another example, aspects of method 240 may be performed by a distributed ledger engine, such as distributed ledger engine 150 of FIG. 1B . The method 240 begins at operation 242 where a request for content is received. In some examples, this request is received from a client device, such as client device 110 of FIG. 1A . In other examples, this request is received from a smart contract processor, such as smart contract processor 154 of FIG. 1B , which may perform aspects of operation 224 of FIG. 2B . The authentication of the request for the content is the content hash (eg, it may have been generated by the client device from which this request was received).

흐름은 콘텐츠의 해시가 생성되는 동작(244)으로 진행할 수 있다. 동작(244)은 일부 예들(예를 들어, 콘텐츠 인증에 대한 요청이 콘텐츠 해시를 포함하는 예)에서는 생략될 수 있다는 것을 표시하기 위해서 파선 박스를 사용하여 예시된다. 동작(244)의 양태는 해시 생성기, 예컨대 도 1b의 해시 생성기(152)에 의해서 수행될 수 있다. 전술된 바와 같이, 콘텐츠 해시는 메타데이터만으로 또는 콘텐츠와 조합된 메타데이터에 기반하는 것 보다는 콘텐츠 자체에 기반하여 생성될 수 있다.Flow may proceed to operation 244 where a hash of the content is generated. Operation 244 is illustrated using a dashed box to indicate that it may be omitted in some examples (eg, where the request for content authentication includes a content hash). Aspects of operation 244 may be performed by a hash generator, such as hash generator 152 of FIG. 1B. As noted above, the content hash may be generated based on the content itself rather than based on metadata alone or metadata combined with the content.

동작(246)에서, 저장된 해시가 분산 원장 내에서 식별된다. 본 명세서에서 설명되는 양태에 따라서, 저장된 해시는 콘텐츠 레코드의 일부일 수 있다. 예들에서, 콘텐츠 레코드는 레퍼런스 또는 다른 연관성을 통하여 콘텐츠와 연관될 수 있다. 일부 예들에서, 인증은 콘텐츠에 대해서만 수행될 수 있는 것이 아니고, 메타데이터에 대해서도 수행될 수 있다. 이러한 예에서, 저장된 메타데이터 해시(예를 들어, 콘텐츠 레코드의 일부일 수 있음)는 동작(246)의 일부로서 식별될 수 있다. 저장된 해시를 식별하기 위하여 그 외의 다양한 기법들 중 임의의 기법이 사용될 수 있다는 것이 이해될 것이다.At operation 246, the stored hash is identified within the distributed ledger. According to aspects described herein, the stored hash may be part of a content record. In examples, a content record may be associated with content through a reference or other association. In some examples, authentication may not only be performed on content, but may also be performed on metadata. In this example, a stored metadata hash (eg, which may be part of a content record) 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)에서 전술된 바와 같이, 추가적 정보, 예컨대 메타데이터 해시가 결정의 일부로서 평가될 수 있다. 일부 예들에서, 메타데이터의 양태를 평가하기 위하여 매칭 기법이 사용될 수 있도록, 메타데이터 자체는 콘텐츠 레코드의 일부로서 저장될 수 있다. 따라서, 다양한 기법 중 임의의 기법이 콘텐츠 해시들이 매칭되는지 결정하기 위하여 사용될 수 있고, 매칭은 정확한 매칭이어야 하는 것은 아니라는 것이 이해될 것이다.In decision operation 248, it is determined whether the hashes match. For example, the content hash received in operation 242 or the content hash generated in operation 244 can be compared to the content hash identified in operation 246 . Exact matching is used in the examples. In other examples, a hash may have multiple subparts, where an exact match is used to compare the first subpart. One or more different sub-portions of the hash may be associated with a content resolution (eg, a different hash per sub-portion for HD, 4K, and/or 8K content) and/or a content source (eg, a streaming platform may may have a different hash subpart than the original content publisher)). As described above in operation 246, additional information, such as a metadata hash, may be evaluated as part of the determination. In some examples, the metadata itself can be stored as part of the content record, so that matching techniques can be used to evaluate aspects of the metadata. Accordingly, it will be appreciated that any of a variety of techniques may be used to determine if content hashes match, and the match does not have to be an exact match.

만일, 결정 동작(248)에서 해시들이 매칭되지 않는다고 결정되면, 흐름은 "아니오" 분기를 따라서 콘텐츠가 인증되지 않는다는 표시가 제공되는 동작(250)으로 진행한다. 예들에서, 이러한 표시는 인증이 왜 실패했는지를 더 포함한다(예를 들어, 해시 하위부분들이 매칭되지 않았다거나, 특정 메타데이터가 인증되지 않았다는 것 등). 흐름은 동작(250)에서 종결된다.If decision operation 248 determines that the hashes do not match, flow proceeds along the “no” branch to operation 250 where an indication that the content is not authenticated is provided. In examples, this indication further includes why authentication failed (eg, hash subparts did not match, certain metadata was not authenticated, etc.). Flow ends at operation 250 .

그러나, 해시들이 매칭된다고 결정되면, 흐름은 "예" 분기를 따라서 콘텐츠가 인증된다는 표시가 제공되는 동작(252)으로 진행한다. 일부 예들에서, 인증은 인증된 정보에 대한 표시, 더 많은 특정한 메타데이터(예를 들어, 완벽하지 않은 매칭은 메타데이터가 정확하지만 불완전하다는 것을, 예컨대 전체 이름이 아니라 남주인공/여주인공의 처음 두문자들과 성을 가지거나, 정확한 날짜가 아니라 일반적인 배포 연도를 가지는 등을 표시할 수 있음). 흐름은 동작(252)에서 종결된다.However, if it is determined that the hashes match, flow proceeds along the “yes” branch to operation 252 where an indication that the content is authenticated is provided. In some instances, authentication may be an indication of authenticated information, more specific metadata (e.g., a non-perfect match indicates that the metadata is correct but incomplete, e.g., the first two letters of the heroine/heroine rather than the full name). may have a first and last name, have a typical release year rather than an exact date, etc.). Flow ends at operation 252 .

도 3a는 본 명세서에서 설명되는 AI-기반 트랜스코딩 기술에 따라서 콘텐츠를 트랜스코딩하기 위한 예시적인 방법(300)의 개관을 예시한다. 예들에서, 방법(300)의 양태들은 CDN의 노드, 예컨대 도 1a의 노드(104, 106 또는 108)에 의해서 수행된다. 다른 예로서, 방법(300)의 양태들은 콘텐츠 프로세서, 예컨대 도 1c의 콘텐츠 프로세서(180)에 의해서 수행될 수 있다.3A illustrates an overview of an example method 300 for transcoding content according to the AI-based transcoding techniques described herein. In examples, aspects of method 300 are performed by a node of a CDN, such as node 104, 106 or 108 of FIG. 1A. As another example, aspects of method 300 may be performed by a content processor, such as content processor 180 of FIG. 1C.

방법(300)은 콘텐츠의 표시가 수신되는 동작(302)에서 시작된다. 콘텐츠의 표시는 콘텐츠가 CDN에 추가되고 있을 때에 콘텐츠 소스, 예컨대 도 1a의 콘텐츠 소스(102)로부터 수신될 수 있다. 다른 예에서, 도 1a의 클라이언트 디바이스(110)로부터 수신될 수 있는 것처럼, 콘텐츠의 표시는 재생을 시작할 때에 클라이언트 디바이스로부터 수신될 수 있다. 예들에서, 콘텐츠의 표시는 요청된 다른 포맷 정보(예를 들어, 오디오 채널의 개수, 오디오 포맷, 색상 깊이 등) 중에서, 콘텐츠가 저장되었던 위치 및 콘텐츠에 대해서 요청된 해상도를 포함한다. 요청된 포맷 정보는 콘텐츠의 현재 포맷과 다를 수 있고, 예를 들어 요청된 포맷 정보는 더 높은 해상도 또는 더 많은 개수의 채널을 특정할 수 있다. 일부 예들에서, 이러한 표시는 요청된 포맷 정보를 포함할 필요가 없고, 그 대신에 요청된 포맷 정보는 디바이스 특성(예를 들어, 스크린 크기, 이용가능한 스피커 개수, 이용가능한 대역폭 등)에 기반하여 결정될 수 있다.The method 300 begins at operation 302 where a presentation of content is received. An indication of the content may be received from a content source, such as content source 102 of FIG. 1A, when the content is being added to the CDN. In another example, an indication of content may be received from the client device upon initiating playback, such as may be received from client device 110 of FIG. 1A . In examples, the presentation of the content includes the requested resolution for the content and the location where the content was stored, among other requested format information (eg, 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 examples, such an indication need not include the requested format information, instead the requested format information may be determined based on device characteristics (e.g., screen size, number of speakers available, available bandwidth, etc.). can

흐름은 트랜스코딩 모델이 선택되는 동작(304)으로 진행한다. 예들에서, 동작(304)의 양태들은 모델 선택기, 예컨대 도 1c의 콘텐츠 프로세서(180)의 모델 선택기(182)에 의해서 수행된다. 예를 들어, 트랜스코딩 모델은 콘텐츠 메타데이터(예를 들어, 특정한 콘텐츠 타입을 나타낼 수 있는 장르, 남주인공/여주인공 등), 비디오 분석(예를 들어, 비트레이트, 프레임 복잡도, 명암(lightness/darkness)등), 원본 콘텐츠 해상도, 타겟 콘텐츠 해상도, 모션 벡터, 제조년도, 포맷 또는 코덱 타입, 및/또는 소비자 또는 다른 사용자로부터 수신된 피드백을 포함하지만 이들로 한정되는 것은 아닌 다양한 기준들에 따라서 트랜스코딩 모델들의 세트로부터 선택될 수 있다. 일부 예들에서, 동작(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 of FIG. 1C. For example, a transcoding model can be used to perform content metadata (e.g. genres that can represent specific content types, male/female characters, etc.), video analytics (e.g. bitrate, frame complexity, lightness/ darkness), original content resolution, target content resolution, motion vector, year of manufacture, format or codec type, and/or feedback received from consumers or other users. It can be selected from a set of coding models. In some examples, operation 304 includes comparing multiple transcoding models to determine which transcoding model to apply. Method 350 of FIG. 3B illustrates one example of this aspect and is described in more detail below.

동작(306)에서, 콘텐츠는 동작(304)에서 선택된 트랜스코딩 모델을 사용하여 트랜스코딩된다. 트랜스코딩은 트랜스코딩 엔진, 예컨대 트랜스코딩 엔진(186)에 의해서 수행될 수 있다. 본 명세서에서 설명되는 양태에 따르면, 콘텐츠를 트랜스코딩하기 위하여 다수의 트랜스코딩 모델이 사용될 수 있다. 예를 들어, 제 1 하위부분이 동작(304)에서 선택된 모델에 따라서 트랜스코딩될 수 있고, 그 후에 트랜스코딩이 일시 중지될 수 있으며, 흐름은 동작(304)으로 복귀하여 콘텐츠의 제 2 하위부분에 대한 새로운 트랜스코딩 모델을 선택할 수 있다. 이러한 양태가 동작(306)으로부터 동작(304)까지의 화살표로 예시된다. 따라서, 트랜스코딩 모델 성능은 동작(304)으로 복귀함으로써 주기적으로 평가될 수 있어서, 트랜스코딩 모델이 주어진 하위부분에 대한 모델 성능에 의존하여 변경될 수 있게 된다. 일부 예들에서, 콘텐츠 해상도는 변할 수 있고, 이것은 흐름이 동작(304)으로 복귀하게 할 수 있다. 다른 예들에서는, 비디오 프레임의 콘텐츠를 결정하거나 대상물이 언제 사라졌는지를 식별하기 위해서 대상물 검출 기법이 사용될 수 있는데, 이들 양자 모두는 흐름이 동작(304)으로 복귀하게 할 수 있다. 일부 예들에서, 적용되는 트랜스코딩 모델은 프레임별로 또는 임의의 다른 그래뉼래러티(granularity) 레벨(예를 들어, 모든 키프레임 또는 인프라프레임, 미리 결정된 개수의 프레임 이후 등)에 따라서 재평가될 수 있다. 더 나아가, 동작(304 및 306)이 순차적으로 발생하는 것처럼 설명되지만, 다른 양태들에서는 하위부분 트랜스코딩이 병렬적으로 일어날 수 있다는 것이 이해될 것이며, 이러한 경우에는 상이한 하위부분들이 상이한 트랜스코딩 모델에 따라서 동시에 트랜스코딩된다.In operation 306, the content is transcoded using the transcoding model selected in operation 304. 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 content. For example, a first sub-portion may be transcoded according to the selected model in operation 304, after which transcoding may be paused, and flow returns to operation 304 to process a second sub-portion of content. You can choose a new transcoding model for . This aspect is illustrated by the arrow from action 306 to action 304 . Thus, transcoding model performance can be evaluated periodically by returning to operation 304, so that the transcoding model can be changed in dependence on model performance for a given sub-portion. In some examples, the content resolution may change, which may cause flow to return to operation 304 . In other examples, object detection techniques may be used to determine the contents of a video frame or to identify when an object has disappeared, both of which may cause flow to return to operation 304 . In some examples, the applied transcoding model may be re-evaluated on a frame-by-frame basis or according to any other level of granularity (eg, every keyframe or infraframe, after a predetermined number of frames, etc.). Further, while operations 304 and 306 are described as occurring sequentially, it will be understood that in other aspects sub-portion transcoding may occur in parallel, in which case different sub-portions may correspond to different transcoding models. Therefore, they are transcoded at the same time.

마지막으로, 전술된 바와 같이, 상이한 트랜스코딩 모델이 인트라프레임, 예측된-프레임, 및/또는 양방향성-프레임에 적용될 수 있다. 따라서, 동작(306)은 콘텐츠를 트랜스코딩할 단일 트랜스코딩 모델을 적용하는 것으로 한정될 필요가 없다. 오히려, 동작(306)은 콘텐츠를 트랜스코딩하는 동안에 트랜스코딩 모델을 교번시킬 수도 있다. 다른 예로서, 제 1 트랜스코딩 모델은 콘텐츠의 비디오 트랙을 트랜스코딩하기 위해서 사용될 수 있고, 제 2 트랜스코딩 모델은 콘텐츠의 오디오 트랙을 트랜스코딩하기 위해서 사용될 수 있다. 콘텐츠를 트랜스코딩하기 위해서 언제 하나의 트랜스코딩 모델로부터 다른 트랜스코딩 모델로 전환할지를 결정하기 위하여 다양한 기법이 사용될 수 있다는 것이 이해될 것이다.Finally, as discussed above, different transcoding models may be applied to intra-frames, predicted-frames, and/or bidirectional-frames. Accordingly, operation 306 need not be limited to applying a single transcoding model to transcode content. Rather, operation 306 may alternate the transcoding model while transcoding the content. As another example, a first transcoding model can be used to transcode a video track of content and a second transcoding model can be used to transcode an audio track of content. It will be appreciated that various techniques may be used to determine when to switch from one transcoding model to another to transcode content.

다른 예들에서, 동작(304)은 생략될 수 있고, 그 대신에 동작(306)은 콘텐츠의 어떤 하위부분을 트랜스코딩하기 위해서 어떤 트랜스코딩 모델이 사용되어야 하는지를 특정하는 트랜스코딩 레시피에 적어도 부분적으로 기반하여 수행될 수 있다. 트랜스코딩 레시피는 여러 가지 예들 중에서 요청된 해상도, 오디오 채널의 개수, 비트레이트, 및/또는 색상 깊이와 연관될 수 있어서, 트랜스코딩 레시피가 콘텐츠에 대한 요청 내에 제공된 요청된 포맷 정보(예를 들어, 동작(302)에서 수신된 바와 같음)에 기반하여 식별될 수 있게 한다. 이러한 예에서, 동작(304)을 포함하는 방법(300)은 다른 노드에서 수행되었을 수 있고, 또는 다른 예로서, 트랜스코딩 레시피가 이러한 임의의 트랜스코딩 이전에 생성되도록 동작(306)은 생략되었을 수도 있다.In other examples, operation 304 can be omitted, and instead operation 306 is based at least in part on a transcoding recipe that specifies which transcoding model should be used to transcode which sub-portion of the content. can be performed by The transcoding recipe may be associated with the requested resolution, number of audio channels, bitrate, and/or color depth, among other examples, so that the transcoding recipe may be associated with the requested format information provided within the request for content (eg, as received in operation 302). In this example, the method 300 including act 304 could have been performed at another node, or as another example, act 306 could have been omitted so that the transcoding recipe would be generated prior to any such transcoding. there is.

흐름은 트랜스코딩된 콘텐츠의 품질이 평가되는 동작(308)으로 진행한다. 동작(308)은 콘텐츠 트랜스코딩이 끝난 이후에 수행될 수 있고, 또는 다른 예들에서는 트랜스코딩 도중에 주기적으로 수행될 수도 있다. 동작(308)의 양태는 품질 평가기, 예컨대 도 1c의 콘텐츠 프로세서(180)의 품질 평가기(188)에 의해서 수행될 수 있다. 예를 들어, 결정은 프로그램적으로 이루어질 수 있고(예를 들어, 트랜스코딩 아티팩트를 검출하는 것, 레퍼런스 프레임을 트랜스코딩된 프레임과 비교하는 것 등에 의하여) 및/또는 명시적/암시적 사용자 입력에 기반할 수도 있다. 사용자 입력은 동일하거나 유사한 트랜스코딩 모델을 사용하는 이전에 트랜스코딩된 콘텐츠에 기반한 이력 사용자 입력일 수 있고, 여기에서 사용자는 트랜스코딩된 콘텐츠의 지각된 품질을 표시한다(예를 들어, 1 대 5의 스케일로, 품질이 양호했는지 여부의 이진 표시등으로).Flow proceeds to operation 308 where the quality of the transcoded content is evaluated. Operation 308 may be performed after content transcoding has 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 of FIG. 1C. For example, the determination may be made programmatically (eg, by detecting transcoding artifacts, comparing a reference frame to a transcoded frame, etc.) and/or upon explicit/implicit user input. may be based. User input can be historical user input based on previously transcoded content using the same or similar transcoding model, where the user indicates the perceived quality of the transcoded content (e.g., on a scale of 1 to 5). as a scale, as a binary indicator of whether the quality was good).

결정 동작(310)에서, 품질이 임계를 만족시키는지 여부가 결정된다. 예들에서, 미리 결정된 오차 레이트 또는 품질 손실이 동작(308)에서 수행되는 평가와 비교된다. 다른 예들에서는, 미리 결정된 점수 임계가 사용자 입력과 비교된다. 다양한 다른 기법 및/또는 메트릭 및 연관된 임계 중 임의의 것이 품질을 평가하기 위해서 사용될 수 있다는 것이 이해될 것이다. 만일, 결정(310)에서, 품질 임계가 만족되지 않는다는 것이 결정되면, 흐름은 "아니오" 분기로 가서 동작(304)으로 복귀하고, 거기에서는 콘텐츠를 트랜스코딩하기 위해서 상이한 트랜스코딩 모델이 사용될 수 있다. 본 명세서에서 사용될 때, 트랜스코딩 모델은 다양한 설정 또는 다른 변수를 더 포함할 수 있어서, 상이한 트랜스코딩 모델이 변하는 설정 및/또는 변수를 가지는 동일한 베이스 트랜스코딩 모델을 적용하는 것을 포함할 수 있게 한다.At decision operation 310, it is determined whether the quality satisfies a threshold. In examples, a predetermined error rate or quality loss is compared to the evaluation performed in operation 308 . In other examples, a predetermined score threshold is compared to the user input. It will be appreciated that any of a variety of different techniques and/or metrics and associated thresholds may be used to assess quality. If, at decision 310, it is determined that the quality threshold is not satisfied, flow passes to the "NO" branch and returns 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, allowing different transcoding models to include applying the same base transcoding model with varying settings and/or variables.

그러나, 트랜스코딩된 콘텐츠가 품질 임계를 만족시킨다고 결정되면, 흐름은 그 대신에 "예"로 분기하여 동작(312)으로 진행하며, 거기에서는 트랜스코딩된 콘텐츠가 제공된다. 예들에서, 트랜스코딩된 콘텐츠는 소비자에게 재생되기 위해서 클라이언트 디바이스로 제공된다. 다른 예들에서, 트랜스코딩된 콘텐츠는 저장 및/또는 한 명 이상의 소비자로의 후속 전송을 위해서 CDN의 노드로 송신된다. 방법(300)은 사전-기록된 콘텐츠로 한정될 필요가 없고, 여러 가지 예들 중에서 스트리밍 또는 실시간 콘텐츠를 위해서 유사한 기법이 사용될 수도 있다. 방법(300)은 동작(312)에서 종결된다.However, if it is determined that the transcoded content satisfies the quality threshold, flow instead branches “yes” to operation 312, where the transcoded content is provided. In examples, the transcoded content is provided to a client device for playback to a consumer. In other examples, the transcoded content is transmitted to a CDN's node 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 concludes at operation 312 .

도 3b는 본 명세서에서 설명되는 AI-기반 트랜스코딩 기술에 따라서 트랜스코딩 모델을 선택하기 위한 예시적인 방법(350)의 개관을 예시한다. 예들에서, 방법(350)의 양태들은 CDN의 노드, 예컨대 도 1a의 노드(104, 106 또는 108)에 의해서 수행된다. 다른 예로서, 방법(350)의 양태들은 콘텐츠 프로세서, 예컨대 도 1c의 콘텐츠 프로세서(180)에 의해서 수행될 수 있다. 방법(350)의 양태는 도 3a의 방법(300)의 동작(304)의 일부로서 수행될 수 있다.3B illustrates an overview of an example method 350 for selecting a transcoding model according to the AI-based transcoding techniques described herein. In examples, aspects of method 350 are performed by a node of a CDN, such as node 104, 106 or 108 of FIG. 1A. As another example, aspects of method 350 may be performed by a content processor, such as content processor 180 of FIG. 1C. Aspects of method 350 may be performed as part of operation 304 of method 300 of FIG. 3A.

방법(350)은 콘텐츠 프레임이 선택되는 동작(352)에서 시작된다. 예들에서, 선택된 콘텐츠 프레임은, 도 3a의 방법(300)의 양태를 수행할 수 있는 콘텐츠 프로세서에 의해서 트랜스코딩될 프레임이다. 다른 예들에서, 선택된 콘텐츠 프레임은 콘텐츠를 대표하는 것으로 결정된 키프레임 또는 프레임이다. 예를 들어, 프레임은, 여러 가지 예들 중에서 상대적으로 높은 정도의 움직임 또는 세부사항을 가지는 결과로서 선택될 수 있다.The method 350 begins at operation 352 where a content frame is selected. In examples, the selected content frame is a frame to be transcoded by a content processor that may perform an aspect of method 300 of FIG. 3A. In other examples, the selected frame of content is a keyframe or frame determined to be representative of the content. For example, a 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)은 다른 대상물 중에서, 하나 이상의 무생물인 대상물, 움직이는 문자, 및 남주인공/여주인공을 식별하는 것을 포함할 수 있다. 선택된 콘텐츠 프레임은 임의의 개수 및/또는 다양한 대상물 인식 머신 러닝 모델들에 따라서 처리될 수 있다. 예를 들어, 각각의 대상물 인식 머신 러닝 모델은 대상물의 특정한 서브세트를 인식하도록 훈련되었을 수 있고, 또는 다른 예들에서는 대상물 인식 머신 러닝 모델이 특정 타입의 콘텐츠에 따라서 훈련된다. 다양한 다른 대상물 검출 기법 중 임의의 기법이 사용될 수 있다는 것이 이해될 것이다(예를 들어, 프레임 내의 에지를 식별하는 것, 프레임들의 세트에 걸친 움직임을 분석하는 것 등). 다른 예들에서는, 방법(350)의 모델 선택 기법이 모델 성능을 특히 검출된 대상물에 대해서 평가하지 않을 수 있도록, 동작(354)이 파선 박스를 사용하여 예시됨으로써 동작(354)이 생략될 수 있다는 것을 표시한다.At operation 354, an object is detected within the selected content frame. Aspects of operation 354 may be performed by an object detector, such as object detector 184 of FIG. 1C. Action 354 may include identifying one or more inanimate objects, animated characters, and heroines/heroes, among other objects. The selected frames of content 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 have been trained to recognize a particular subset of objects, or in other examples an object recognition machine learning model is trained according to a particular type of content. It will be appreciated that any of a variety of other object detection techniques may be used (eg, identifying an edge within a frame, analyzing motion across a set of frames, etc.). In other examples, it is noted that operation 354 may be omitted such that operation 354 is illustrated using a dashed box so that the model selection technique of method 350 may not evaluate model performance specifically for the detected object. display

흐름은 콘텐츠 프레임의 해상도가 감소된 동작(356)으로 진행한다. 예들에서, 감소된 해상도는 본 명세서에서 설명된 AI-기반 트랜스코딩 기법들을 사용하여 생성될 시각적 데이터의 양에 기반하여 결정된다. 예를 들어, 1080p HD(예를 들어, 1920x1080) 콘텐츠를 4K 콘텐츠(예를 들어, 3840x2160)로 업스케일링하면 픽셀 데이터가 네 배 증가되게 된다. 따라서, 1080p HD 소스는 동작(356)에서 4의 인자에 의해 다운스케일링될 수 있다((예를 들어, 960x540으로). 임의의 개수의 그 외의 다운스케일링된 해상도들이 사용될 수 있다는 것이 이해될 것이다. 동작(356)은, 다른 예들에서는 동작(356)이 생략될 수 있다는 것을 표시하도록 점선 박스를 사용하여 예시된다. 예를 들어, 동작(356)은 모델 처리 결과가 소스 콘텐츠 프레임과 비교되지 않고 서로에 비교될 경우에 생략될 수 있다.Flow proceeds to operation 356 where the resolution of the content frame is reduced. In examples, 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 (eg 1920x1080) content to 4K content (eg 3840x2160) results in a quadruple increase in pixel data. Accordingly, a 1080p HD source may be downscaled by a factor of 4 (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 dotted box to indicate that in other examples operation 356 may be omitted: For example, operation 356 indicates that the model processing result is not compared to the source content frame but to each other. can be omitted when compared to .

동작(358)에서, 콘텐츠 프레임은 트랜스코딩 모델들의 세트를 사용하여 처리된다. 예들에서, 콘텐츠 프레임을 처리하는 것은, 다운스케일링된 콘텐츠 프레임(예를 들어, 동작(356)에서 생성되었을 수 있음)을 각각의 트랜스코딩 모델을 사용하여 업스케일링하여 동작(352)에서 선택되었던 원본 콘텐츠 프레임과 같거나 유사한 해상도를 가지는 트랜스코딩된 콘텐츠 프레임을 제공하는 것을 포함한다. 일부 예들에서, 콘텐츠 프레임을 트랜스코딩하는 것은 동일한 베이스 모델을 활용하지만 콘텐츠 프레임을 트랜스코딩하기 위해서 사용되는 설정 또는 변수를 변경하는 것을 포함한다. 동작(358)에서 사용되는 트랜스코딩 모델들의 세트는 콘텐츠를 트랜스코딩하기 위해서 CDN에 의해 사용되는 트랜스코딩 모델들의 적어도 하나의 서브세트일 수 있다. 일부 예들에서, 트랜스코딩 모델들의 세트는 콘텐츠 메타데이터(예를 들어, 특정한 콘텐츠 타입을 나타낼 수 있는 장르, 남주인공/여주인공 등), 비디오 분석(예를 들어, 비트레이트, 프레임 복잡도, 명암(lightness/darkness)등), 원본 콘텐츠 해상도, 타겟 콘텐츠 해상도, 모션 벡터, 제조년도, 포맷 또는 코덱 타입, 및/또는 소비자 또는 다른 사용자로부터 수신된 피드백을 포함하지만 이들로 한정되는 것은 아닌 다양한 기준들에 따라서 선택된다.At operation 358, the content frame is processed using the set of transcoding models. In examples, processing the content frame may upscale the downscaled content frame (e.g., which may have been generated in operation 356) using the respective transcoding model to obtain the original image that was selected in operation 352. and providing a transcoded content frame having the same or similar resolution as the content frame. In some examples, transcoding the content frame includes utilizing the same base model but changing 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, a set of transcoding models may include content metadata (e.g., genre that can represent a particular content type, male/female characters, etc.), video analytics (e.g., bitrate, frame complexity, contrast ( lightness/darkness), original content resolution, target content resolution, motion vector, year of manufacture, format or codec type, and/or feedback received from consumers or other users. is therefore selected.

흐름은 트랜스코딩된 콘텐츠 프레임의 세트가 품질에 따라서 점수매김되는 동작(360)으로 진행한다. 예들에서, 트랜스코딩된 콘텐츠 프레임은 프로그램적으로 이루어질 점수매김되고(예를 들어, 트랜스코딩 아티팩트를 검출하는 것, 레퍼런스 프레임을 트랜스코딩된 프레임과 비교하는 것 등에 의하여) 및/또는 명시적/암시적 사용자 입력에 기반할 수도 있다. 트랜스코딩된 콘텐츠 프레임은 개별적으로 점수매김되거나, 서로에 대해서 점수매김되거나, 및/또는 동작(352)에서 선택되었던 콘텐츠 프레임에 기반하여 점수매김된다. 전술된 바와 같이, 사용자 입력은 트랜스코딩된 프레임들의 나란한 디스플레이로부터 수신될 수 있고, 또는, 여러 가지 예들 중에서 동일하거나 유사한 트랜스코딩 모델을 사용한 이전에 트랜스코딩된 콘텐츠에 기반한 이력 사용자 입력일 수도 있다. 예들에서, 동작(360)의 양태들은 품질 평가기, 예컨대 도 1c의 콘텐츠 프로세서(180)의 품질 평가기(188)에 의해서 수행된다.The flow proceeds to operation 360 where the set of transcoded content frames are scored according to quality. In examples, transcoded content frames may be scored programmatically (eg, by detecting transcoding artifacts, comparing reference frames to transcoded frames, etc.) and/or explicit/implied It can also be based on enemy user input. The transcoded content frames are scored individually, scored relative to each other, and/or based on the content frame that was selected in operation 352 . As noted above, user input may be received from a side-by-side display of transcoded frames, or it 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 of FIG. 1C .

동작(362)에서, 최고 점수의 트랜스코딩 모델의 표시가 제공된다. 예들에서, 이러한 표시는 트랜스코딩 엔진, 예컨대 도 1c의 콘텐츠 프로세서(180)의 트랜스코딩 엔진(186)에게 제공된다. 일 예로서, 이러한 표시는 도 3a의 방법(300)의 동작(306)에서 콘텐츠를 트랜스코딩하기 위하여 사용될 수 있다. 예들에서, 이러한 표시는 트랜스코딩된 콘텐츠 프레임을 포함함으로써, 트랜스코딩 엔진이 동작(352)에서 선택되었던 콘텐츠 프레임을 다시 트랜스코딩할 필요가 없게 한다. 방법(350)이 하나의 콘텐츠 프레임을 선택 및 처리하는 것으로 설명되지만, 다른 예들에서는 여러 개의 콘텐츠 프레임이 처리될 수 있다는 것이 이해될 것이다. 예를 들어, 방법(350)은 프레임들의 세트에 대한 트랜스코딩 모델을 결정할 수 있고, 그 후에 모델 선택 프로세스가 동일하거나 상이한 트랜스코딩 모델을 식별하도록 다시 수행될 수 있다. 이러한 예에서, 이러한 표시는 트랜스코딩 모델이 사용되어야 하는 콘텐츠 하위부분(예를 들어, 타임스탬프 등에 따른 여러 프레임)의 표시를 포함한다. 흐름은 동작(362)에서 종결된다.In operation 362, an indication of the highest scoring transcoding model is provided. In examples, this indication is provided to a transcoding engine, such as transcoding engine 186 of content processor 180 of FIG. 1C. As an example, this indication may be used to transcode the content in operation 306 of method 300 of FIG. 3A. In examples, this indication includes the transcoded content frame so that the transcoding engine does not need to re-transcode the content frame that was selected in operation 352 . Although method 350 is described as selecting and processing one frame of content, it will be appreciated that in other examples multiple frames of content may be processed. For example, method 350 can determine a transcoding model for a set of frames, after which the model selection process can be performed again to identify the same or a different transcoding model. In this example, this indication includes an indication of the content sub-portion (eg, several frames according to timestamp, etc.) for which transcoding model should be used. Flow ends at operation 362 .

도 4는 본 발명의 실시형태들 중 하나 이상이 구현될 수 있는 적절한 동작 환경(400)의 일 예를 예시한다. 이것은 적절한 동작 환경의 하나의 예일 뿐이고, 사용 범위 또는 기능성에 대해서 임의의 제한을 제안하려는 의도가 아니다. 사용하기에 적합할 수 있는 잘 알려진 다른 컴퓨팅 시스템, 환경, 및/또는 구성은, 개인용 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩탑 디바이스, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 스마트 폰과 같은 프로그래밍가능한 소비자 전자제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 이러한 시스템 또는 디바이스 중 임의의 것을 포함하는 분산 컴퓨팅 환경 등을 비한정적으로 포함한다.4 illustrates an example of a suitable operating environment 400 in which one or more of the embodiments of the invention may be implemented. This is only one example of a suitable operating environment and is not intended to suggest any limitation as to scope of use or functionality. Other well-known computing systems, environments, and/or configurations that may be suitable for use include personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments including any of these systems or devices, and the like.

그 가장 기본적인 구성에서, 동작 환경(400)은 통상적으로 적어도 하나의 처리 유닛(402) 및 메모리(404)를 포함할 수 있다. 정확한 구성 및 컴퓨팅 디바이스의 타입에 의존하여, 메모리(404)(무엇보다도, 본 명세서에서 개시된 시스템 및 방법들을 구현 또는 수행하기 위한 API, 프로그램 등 및/또는 다른 컴포넌트 또는 명령 등을 저장함)는 휘발성이거나(예컨대, RAM), 비-휘발성이거나(예컨대, ROM, 플래시 메모리 등), 또는 양자의 몇 가지 조합일 수 있다. 이러한 가장 기본적인 구성이 도 4에서 쇄선(406)으로 표시된다. 더 나아가, 환경(400)은 자기 디스크 또는 광학 디스크 또는 테이프를 비한정적으로 포함하는 저장 디바이스(착탈식(408), 및/또는 비-착탈식(410) 저장소)를 더 포함할 수 있다. 이와 유사하게, 환경(400)은 키보드, 마우스, 펜, 보이스 입력 등과 같은 입력 디바이스(들)(414) 및/또는 디스플레이, 스피커, 프린터 등과 같은 출력 디바이스(들)(416)를 더 가질 수 있다. 환경 내에는 LAN, WAN, 포인트-투-포인트 등과 같은 하나 이상의 통신 연결(412)이 더 포함될 수 있다.In its most basic configuration, operating environment 400 may typically include at least one processing unit 402 and memory 404 . Depending on the precise configuration and type of computing device, memory 404 (which, among other things, stores APIs, programs, etc. and/or other components or instructions for implementing or performing the systems and methods disclosed herein) may be volatile or (eg, RAM), non-volatile (eg, ROM, flash memory, etc.), or some combination of both. This most basic configuration is indicated by a dashed line 406 in FIG. 4 . Furthermore, environment 400 may further include storage devices (removable 408 , and/or non-removable 410 storage) including but not limited to magnetic disks or optical disks or tapes. Similarly, environment 400 may further have input device(s) 414 such as a keyboard, mouse, pen, voice input, etc. and/or output device(s) 416 such as a display, speaker, printer, etc. . One or more communication connections 412 may also be included within the environment, such as LANs, WANs, point-to-point, and the like.

동작 환경(400)은 적어도 일부 형태의 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 판독가능 매체는 처리 유닛(402) 또는 이러한 동작 환경을 포함하는 다른 디바이스에 의해서 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 예를 들어, 컴퓨터 판독가능한 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 예시적인 컴퓨터 저장 매체는 정보의 저장을 위한 임의의 방법 또는 기술, 예컨대 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터로 구현된 휘발성 및 비휘발성, 착탈식 및 비-착탈식 매체를 포함할 수도 있다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크들(DVD) 또는 다른 광학 저장소, 자기 카세트들, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 또는 원하는 정보를 저장하기 위하여 사용될 수도 있는 임의의 다른 비일시적 매체를 포함할 수 있지만 이들로 한정되는 것은 아니다. 컴퓨터 저장 매체는 통신 매체를 포함하지 않을 수도 있다.Operating environment 400 may include at least some form of computer readable media. Computer readable media can be any available media that can be accessed by processing unit 402 or another device that includes such an operating environment. For example, computer readable media may include computer storage media and communication media. Exemplary computer storage media include any method or technology for storage of information, such as volatile and nonvolatile, removable and non-removable media embodied in computer readable instructions, data structures, program modules, or other data. may also include Computer storage media may include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transitory medium that may be used to store desired information. Computer storage media may not include communication media.

통신 매체는 컴퓨터 판독가능 명령, 데이터 구조들, 프로그램 모듈, 또는 다른 데이터를 반송파 또는 다른 전송 매커니즘과 같은 변조된 데이터 신호 내에 구현할 수 있고, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 이러한 신호 내에 정보를 인코딩하기 위하여 자신의 특성 중 하나 이상이 설정되거나 변경되게 하는 신호를 의미할 수 있다. 예를 들어, 통신 매체는 유선 네트워크 또는 직접 연결과 같은 유선 매체, 및 음향, 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” can mean a signal that has one or more of its characteristics set or changed in order to encode information within the signal. For example, communication media may include wired media such as a wired network or direct 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)은 하나 이상의 원격 컴퓨터로의 논리적 연결을 사용하여 네트워킹된 환경에서 동작하는 단일 컴퓨터일 수 있다. 원격 컴퓨터는 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어(peer) 디바이스 또는 다른 공통 네트워크 노드일 수 있고, 전술된 요소 및 언급되지 않은 요소들 중 많은 것들 또는 전부를 통상적으로 포함한다. 논리적 연결은 이용가능한 통신 매체에 의해 지원되는 임의의 방법을 포함할 수 있다. 이러한 네트워킹 환경은 사무소, 기업 컴퓨터 네트워크, 인트라넷 및 인터넷에서는 흔한 것이다.Operating environment 400 may be a single computer operating in a networked environment using logical connections to one or more remote computers. A remote computer may be a personal computer, server, router, network PC, peer device, or other common network node, and typically includes many or all of the above and unmentioned elements. A logical connection may include any method supported by an available communication medium. Such networking environments are commonplace in offices, corporate computer networks, intranets, and the Internet.

본 명세서에서 설명되는 상이한 양태들은 본 명세서에서 개시된 시스템 및 방법들을 구현하고 수행하기 위해서 구현 및 수행 소프트웨어, 하드웨어, 또는 소프트웨어 및 하드웨어의 조합을 사용하여 채용될 수 있다. 비록 명세서 전체에서 특정한 디바이스가 특정한 기능을 수행하는 것으로 언급되었지만, 당업자는 이러한 디바이스가 예를 들기 위해서 제공된 것이고, 본 발명의 범위에서 벗어나지 않으면서 본 명세서에서 개시된 기능성을 수행하기 위해서 다른 디바이스들이 채용될 수 있다는 것을 인정할 것이다.The different aspects described herein may be employed using implementing and performing software, hardware, or a combination of software and hardware to implement and perform the systems and methods disclosed herein. Although specific devices are referred to throughout the specification as performing specific functions, one skilled in the art will recognize that such devices are provided for purposes of example and that other devices may be employed to perform the functionality disclosed herein without departing from the scope of the present invention. I will admit that you can.

진술된 바와 같이, 여러 프로그램 모듈 및 데이터 파일이 시스템 메모리(404) 내에 저장될 수 있다. 처리 유닛(402)에서 실행될 때, 프로그램 모듈(예를 들어, 애플리케이션, 입력/출력(I/O) 관리, 및 다른 유틸리티)은, 예를 들어 도 2a 내지 도 2c 및 도 3a 및 도 3b에 예시된 방법과 같이 본 명세서에서 설명된 동작 방법들의 스테이지 중 하나 이상을 비한정적으로 포함하는 프로세스를 수행할 수 있다.As stated, several program modules and data files may be stored within system memory 404 . When executed in the processing unit 402, program modules (e.g., applications, input/output (I/O) management, and other utilities) may, for example, be illustrated in FIGS. 2A-2C and 3A-3B. A process including, but not limited to, one or more of the stages of the methods of operation described herein may be performed, such as a method described herein.

더욱이, 본 발명의 예는 이산 전자 소자, 로직 게이트를 포함하는 패키징되거나 집적된 전자 칩, 마이크로프로세서를 활용하는 회로를 포함하는 전기 회로 내에서, 또는 전자 소자 또는 마이크로프로세서를 포함하는 단일 칩에서 실시될 수 있다. 예를 들어, 본 발명의 예는 도 4에 예시된 컴포넌트들의 각각 또는 많은 것들이 단일 집적 회로 상에 통합될 수 있는 시스템-온-칩(SOC)을 통해서 실시될 수 있다. 이러한 SOC 디바이스는 하나 이상의 처리 유닛, 그래픽 유닛, 통신 유닛, 시스템 가상화 유닛 및 다양한 애플리케이션 기능성을 포함할 수 있고, 이들 모두는 단일 집적 회로로서 칩 기판 상에 집적된다(또는 "새겨진다(burned)"). SOC를 통해서 동작할 때에, 본 명세서에서 설명된 기능성은 동작 환경(400)의 다른 컴포넌트와 함께 단일 집적 회로(칩) 상에 집적된 애플리케이션-특이적 로직을 통해서 작동될 수 있다. 또한, 본 발명의 예는, 예를 들어 기계적 기술, 광학적 기술, 유체역학 기술, 및 양자 기술을 비한정적으로 포함하는 AND, OR, 및 NOT과 같은 논리 연산을 수행할 수 있는 다른 기술을 사용하여 실시될 수 있다. 또한, 본 발명의 예들은 범용 컴퓨터 내에서 또는 임의의 다른 회로 또는 시스템 내에서 실시될 수도 있다.Moreover, examples of the present invention may be practiced within discrete electronic devices, packaged or integrated electronic chips containing logic gates, electrical circuits including circuits utilizing microprocessors, or in a single chip containing electronic devices or microprocessors. It can be. For example, an example of the present invention may be implemented via a system-on-chip (SOC) where each or many of the components illustrated in FIG. 4 may be integrated onto a single integrated circuit. Such SOC devices may include one or more processing units, graphics units, communication units, system virtualization units, and various application functionality, all of which are integrated (or "burned") on a chip substrate as a single integrated circuit. ). When operating through a SOC, the functionality described herein may be operated through application-specific logic integrated on a single integrated circuit (chip) along with other components of the operating environment 400 . Further, examples of the present invention may use other techniques capable of performing logical operations such as AND, OR, and NOT, including but not limited to, for example, mechanical techniques, optical techniques, hydrodynamic techniques, and quantum techniques. can be carried out. Further, examples of the invention may be practiced within a general purpose computer or within any other circuit or system.

본 명세서는 첨부 도면을 참조하여 본 발명의 기술의 일부 양태를 설명했는데, 도면에서는 가능한 실시형태 중 일부만이 도시되었다. 그러나, 당업자들이 이해할 수 있는 바와 같이, 다른 양태들이 서로 다른 많은 형태로 구현될 수도 있고 본 명세서에서 진술되는 실시예로만 제한되는 것으로 해석되어서는 안 된다. 오히려, 이러한 양태들은 본 명세서가 철저하고 완전해지며, 가능한 실시형태들의 범위를 당업자들에게 완전하게 제공하도록 제공되었다.This specification has described some aspects of the present technology with reference to the accompanying drawings, in which only some of the possible embodiments are shown. However, as those skilled in the art will appreciate, other aspects may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these aspects are provided so that this disclosure will be thorough and complete, and will fully provide those skilled in the art with the scope of possible embodiments.

비록 본 명세서에서는 특정한 양태들이 설명되었지만, 기술 범위는 그러한 특정 실시형태들로 한정되지 않는다. 당업자는 본 발명의 기술의 범위와 사상 내에 속하는 다른 실시형태 또는 개선시항들을 인식할 것이다. 그러므로, 특정한 구조, 동작, 또는 매체는 예시적인 실시형태로서만 개시된다. 기술 범위는 후속하는 청구항 및 그 속의 임의의 균등물에 의해서 정의된다.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 fall within the scope and spirit of the present technology. Therefore, specific structures, acts, or media are disclosed only as exemplary embodiments. The scope of the technology is defined by the following claims and any equivalents therein.

Claims (40)

시스템으로서,
적어도 하나의 프로세서; 및
상기 적어도 하나의 프로세서에 동작하도록 연결되는 메모리를 포함하고,
상기 메모리는, 상기 적어도 하나의 프로세서에 의하여 실행될 때, 상기 시스템이 동작들의 세트를 수행하게 하는 명령을 저장하며,
상기 동작들의 세트는,
클라이언트 디바이스로부터, 콘텐츠 전송 네트워크(content distribution network; CDN)의 콘텐츠에 대한 요청을 수신하는 동작 - 상기 콘텐츠에 대한 요청은 상기 콘텐츠의 해상도와 상이한 요청 해상도를 표시하는 요청된 포맷 정보를 포함함 -;
트랜스코딩 모델들의 세트로부터, 상기 콘텐츠를 트랜스코딩할 트랜스코딩 모델을 결정하는 동작;
상기 요청 해상도를 가지는 트랜스코딩된 콘텐츠를 생성하도록, 결정된 트랜스코딩 모델을 사용하여, 상기 콘텐츠의 적어도 일부를 트랜스코딩하는 동작; 및
상기 콘텐츠에 대한 요청에 응답하여, 트랜스코딩된 콘텐츠를 상기 클라이언트 디바이스에 제공하는 동작
을 포함하는, 시스템.
As a system,
at least one processor; and
a memory operably coupled to the at least one processor;
the memory stores instructions that, when executed by the at least one processor, cause the system to perform a set of operations;
The set of operations is
receiving, from a client device, a request for content of a content distribution network (CDN), the request for content including requested format information indicating a requested resolution different from a resolution of the content;
determining, from a set of transcoding models, a transcoding model to transcode the content;
transcoding at least a portion of the content, using the determined transcoding model, to generate transcoded content having the requested resolution; and
In response to the request for the content, providing transcoded content to the client device.
Including, system.
제 1 항에 있어서,
상기 트랜스코딩 모델을 결정하는 동작은,
상기 콘텐츠로부터 콘텐츠 프레임을 선택하는 것;
상기 콘텐츠 프레임을 다운스케일링하는 것;
다운스케일링된 콘텐츠 프레임을,
제 1 트랜스코딩 모델을 사용하여 처리하여 제 1 트랜스코딩된 프레임을 생성하고,
제 2 트랜스코딩 모델을 사용하여 처리하여 제 2 트랜스코딩된 프레임을 생성하는 것; 및
상기 트랜스코딩 모델을 결정하도록, 상기 콘텐츠 프레임에 기반하여 상기 제 1 트랜스코딩된 프레임 및 상기 제 2 트랜스코딩된 프레임을 평가하는 것
을 포함하고,
상기 트랜스코딩 모델은 상기 제 1 트랜스코딩 모델 또는 상기 제 2 트랜스코딩 모델 중 하나인, 시스템.
According to claim 1,
The operation of determining the transcoding model,
selecting a content frame from the content;
downscaling the content frame;
the downscaled content frame;
processing using the first transcoding model to generate a first transcoded frame;
processing using 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.
including,
wherein the transcoding model is one of the first transcoding model or the second transcoding model.
제 2 항에 있어서,
상기 트랜스코딩 모델을 결정하는 동작은, 상기 콘텐츠 프레임의 대상물을 인식하는 것을 더 포함하고,
상기 트랜스코딩 모델을 결정하도록, 상기 제 1 트랜스코딩된 프레임 및 상기 제 2 트랜스코딩된 프레임은 상기 콘텐츠 프레임의 인식된 대상물에 적어도 부분적으로 기반하여 추가적으로 평가되는, 시스템.
According to claim 2,
The operation of determining the transcoding model further includes recognizing an object of the content frame;
To determine the transcoding model, the first transcoded frame and the second transcoded frame are further evaluated based at least in part on a recognized subject matter of the content frame.
제 1 항에 있어서,
상기 트랜스코딩 모델은 제 1 트랜스코딩 모델이고,
상기 콘텐츠의 적어도 일부는 상기 콘텐츠의 제 1 부분이며,
상기 동작들의 세트는,
트랜스코딩 모델들의 세트로부터, 상기 콘텐츠를 트랜스코딩할 제 2 트랜스코딩 모델을 결정하는 동작; 및
상기 요청 해상도를 가지는 상기 트랜스코딩된 콘텐츠를 더 생성하도록, 결정된 트랜스코딩 모델을 사용하여 상기 콘텐츠의 제 2 부분을 트랜스코딩하는 동작을 더 포함하는, 시스템.
According to claim 1,
The transcoding model is a first transcoding model,
at least a portion of the content is a first portion of the content;
The set of operations is
determining, from the set of transcoding models, a second transcoding model to transcode the content; and
and transcoding the second portion of the content using the determined transcoding model to further generate the transcoded content having the requested resolution.
제 1 항에 있어서,
상기 클라이언트 디바이스는 제 1 클라이언트 디바이스이고,
상기 콘텐츠에 대한 요청은 상기 콘텐츠에 대한 제 1 요청이며,
상기 동작들의 세트는,
데이터 저장소 내에 트랜스코딩된 콘텐츠를 저장하는 동작;
상기 제 2 클라이언트 디바이스로부터, 상기 콘텐츠에 대한 제 2 요청을 수신하는 동작; 및
상기 콘텐츠에 대한 상기 제 2 요청에 응답하여, 상기 데이터 저장소로부터 상기 트랜스코딩된 콘텐츠를 제공하는 동작을 더 포함하는, 시스템.
According to claim 1,
the client device is a first client device;
The request for the content is a first request for the content,
The set of operations is
storing the transcoded content in a data store;
receiving a second request for the content from the second client device; and
In response to the second request for the content, providing the transcoded content from the data store.
제 1 항에 있어서,
상기 동작들의 세트는,
상기 CDN의 노드로부터, 상기 트랜스코딩된 콘텐츠에 대한 요청을 수신하는 동작; 및
상기 CDN의 노드로, 상기 트랜스코딩된 콘텐츠를 제공하는 동작을 더 포함하는, 시스템.
According to claim 1,
The set of operations is
receiving a request for the transcoded content from a node of the CDN; and
The system further comprises providing the transcoded content to a node of the CDN.
제 1 항에 있어서,
상기 요청된 포맷 정보는 요청된 오디오 포맷 정보 또는 요청된 비디오 포맷 정보 중 적어도 하나를 포함하는, 시스템.
According to claim 1,
The system of claim 1, wherein the requested format information includes at least one of requested audio format information or requested video format information.
트랜스코딩 레시피를 사용하여 콘텐츠를 트랜스코딩하기 위한 방법으로서,
콘텐츠 전송 네트워크(CDN)의 노드로부터, 콘텐츠 및 트랜스코딩 레시피를 수신하는 단계 - 상기 트랜스코딩 레시피는,
상기 콘텐츠의 제 1 하위부분에 대한 제 1 트랜스코딩 모델; 및
상기 콘텐츠의 제 2 하위부분에 대한 제 2 트랜스코딩 모델
을 표시함 -;
제 1 트랜스코딩된 하위부분을 생성하도록, 상기 제 1 트랜스코딩 모델을 사용하여 상기 콘텐츠의 제 1 하위부분을 트랜스코딩하는 단계;
제 2 트랜스코딩된 하위부분을 생성하도록, 상기 제 2 트랜스코딩 모델을 사용하여 상기 콘텐츠의 제 2 하위부분을 트랜스코딩하는 단계; 및
클라이언트 디바이스로, 상기 제 1 트랜스코딩된 하위부분 및 상기 제 2 트랜스코딩된 하위부분을 포함하는 트랜스코딩된 콘텐츠를 제공하는 단계
를 포함하는, 콘텐츠 트랜스코딩 방법.
A method for transcoding content using a transcoding recipe, comprising:
Receiving, from a node of a content delivery network (CDN), content and a transcoding recipe, the transcoding recipe comprising:
a first transcoding model for the first sub-portion of the content; and
A second transcoding model for the second sub-portion of the content
indicates -;
transcoding a first sub-portion of the content using the first transcoding model to produce a first transcoded sub-portion;
transcoding a second sub-portion of the content using the second transcoding model to produce a second transcoded sub-portion; and
providing transcoded content comprising the first transcoded sub-portion and the second transcoded sub-portion to a client device;
Including, content transcoding method.
제 8 항에 있어서,
상기 방법은,
상기 클라이언트 디바이스로부터 상기 콘텐츠에 대한 요청을 수신하는 단계를 더 포함하고,
상기 제 1 하위부분 및 상기 제 2 하위부분은 상기 요청을 수신하는 것에 적어도 부분적으로 기반하여 트랜스코딩되는, 콘텐츠 트랜스코딩 방법.
According to claim 8,
The method,
receiving a request for the content from the client device;
wherein the first subportion and the second subportion are transcoded based at least in part on receiving the request.
제 9 항에 있어서, 여기에서:
상기 콘텐츠에 대한 요청은 요청된 포맷 정보를 포함하고,
상기 트랜스코딩 레시피는 상기 요청된 포맷 정보에 적어도 부분적으로 기반하여 결정되는, 콘텐츠 트랜스코딩 방법.
10. The method of claim 9, wherein:
The request for the content includes requested format information,
wherein the transcoding recipe is determined based at least in part on the requested format information.
제 8 항에 있어서,
상기 클라이언트 디바이스는 제 1 클라이언트 디바이스이고,
상기 방법은,
데이터 저장소에 상기 트랜스코딩된 콘텐츠를 저장하는 단계;
상기 제 2 클라이언트 디바이스로부터, 상기 콘텐츠에 대한 요청을 수신하는 단계; 및
상기 콘텐츠에 대한 요청에 응답하여, 상기 데이터 저장소로부터 상기 트랜스코딩된 콘텐츠를 제공하는 단계
를 더 포함하는, 콘텐츠 트랜스코딩 방법.
According to claim 8,
the client device is a first client device;
The method,
storing the transcoded content in a data store;
receiving a request for the content from the second client device; and
In response to the request for the content, providing the transcoded content from the data store.
Further comprising a content transcoding method.
제 8 항에 있어서,
상기 콘텐츠의 제 1 하위부분은 상기 콘텐츠의 비디오 트랙이고,
상기 콘텐츠의 제 2 하위부분은 상기 콘텐츠의 오디오 트랙인, 콘텐츠 트랜스코딩 방법.
According to claim 8,
the first sub-portion of the content is a video track of the content;
wherein the second sub-portion of the content is an audio track of the content.
제 8 항에 있어서,
상기 방법은,
상기 CDN의 노드로부터, 상기 트랜스코딩된 콘텐츠에 대한 요청을 수신하는 단계; 및
상기 CDN의 노드로, 상기 트랜스코딩된 콘텐츠를 제공하는 단계
를 더 포함하는, 콘텐츠 트랜스코딩 방법.
According to claim 8,
The method,
receiving, from a node of the CDN, a request for the transcoded content; and
providing the transcoded content to a node of the CDN;
Further comprising a content transcoding method.
콘텐츠 제공자로부터의 콘텐츠를 트랜스코딩하기 위한 방법으로서,
클라이언트 디바이스로부터, 콘텐츠 전송 네트워크(CDN)의 콘텐츠에 대한 요청을 수신하는 단계 - 상기 콘텐츠에 대한 요청은 상기 콘텐츠의 해상도와 상이한 요청 해상도를 표시하는 요청된 포맷 정보를 포함함 -;
트랜스코딩 모델들의 세트로부터, 상기 콘텐츠를 트랜스코딩할 트랜스코딩 모델을 결정하는 단계;
상기 요청 해상도를 가지는 트랜스코딩된 콘텐츠를 생성하도록, 결정된 트랜스코딩 모델을 사용하여, 상기 콘텐츠의 적어도 일부를 트랜스코딩하는 단계; 및
상기 콘텐츠에 대한 요청에 응답하여, 상기 트랜스코딩된 콘텐츠를 상기 클라이언트 디바이스에 제공하는 단계
를 포함하는, 콘텐츠 트랜스코딩 방법.
A method for transcoding content from a content provider, comprising:
receiving, from a client device, a request for content of a content delivery network (CDN), the request for content including requested format information indicating a requested resolution different from a resolution of the content;
determining, from a set of transcoding models, a transcoding model to transcode the content;
transcoding at least a portion of the content, using the determined transcoding model, to produce transcoded content having the requested resolution; and
In response to the request for the content, providing the transcoded content to the client device.
Including, content transcoding method.
제 14 항에 있어서,
상기 트랜스코딩 모델을 결정하는 단계는,
상기 콘텐츠로부터 콘텐츠 프레임을 선택하는 것;
상기 콘텐츠 프레임을 다운스케일링하는 것;
다운스케일링된 콘텐츠 프레임을,
제 1 트랜스코딩된 프레임을 생성하도록 제 1 트랜스코딩 모델을 사용하고,
제 2 트랜스코딩된 프레임을 생성하도록 제 2 트랜스코딩 모델을 사용하여 처리하는 것; 및
상기 트랜스코딩 모델을 결정하도록, 상기 콘텐츠 프레임에 기반하여 상기 제 1 트랜스코딩된 프레임 및 상기 제 2 트랜스코딩된 프레임을 평가하는 것
을 포함하고,
상기 트랜스코딩 모델은 상기 제 1 트랜스코딩 모델 또는 상기 제 2 트랜스코딩 모델 중 하나인, 콘텐츠 트랜스코딩 방법.
15. The method of claim 14,
Determining the transcoding model,
selecting a content frame from the content;
downscaling the content frame;
the downscaled content frame;
using the first transcoding model to generate a first transcoded frame;
processing using the 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.
including,
wherein the transcoding model is one of the first transcoding model or the second transcoding model.
제 15 항에 있어서,
상기 트랜스코딩 모델을 결정하는 단계는, 상기 콘텐츠 프레임의 대상물을 인식하는 것을 더 포함하고,
상기 트랜스코딩 모델을 결정하도록, 상기 제 1 트랜스코딩된 프레임 및 상기 제 2 트랜스코딩된 프레임은 상기 콘텐츠 프레임의 인식된 대상물에 적어도 부분적으로 기반하여 추가적으로 평가되는, 콘텐츠 트랜스코딩 방법.
According to claim 15,
determining the transcoding model further comprises recognizing a subject matter of the content frame;
To determine the transcoding model, the first transcoded frame and the second transcoded frame are further evaluated based at least in part on a recognized subject matter of the content frame.
제 14 항에 있어서,
상기 트랜스코딩 모델은 제 1 트랜스코딩 모델이고,
상기 콘텐츠의 적어도 일부는 상기 콘텐츠의 제 1 부분이며,
상기 방법은,
트랜스코딩 모델들의 세트로부터, 상기 콘텐츠를 트랜스코딩할 제 2 트랜스코딩 모델을 결정하는 단계; 및
상기 요청 해상도를 가지는 상기 트랜스코딩된 콘텐츠를 더 생성하도록, 상기 결정된 트랜스코딩 모델을 사용하여 상기 콘텐츠의 제 2 부분을 트랜스코딩하는 단계
를 더 포함하는, 콘텐츠 트랜스코딩 방법.
15. The method of claim 14,
The transcoding model is a first transcoding model,
at least a portion of the content is a first portion of the content;
The method,
determining, from a set of transcoding models, a second transcoding model to transcode 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.
Further comprising a content transcoding method.
제 14 항에 있어서,
상기 클라이언트 디바이스는 제 1 클라이언트 디바이스이고,
상기 콘텐츠에 대한 요청은 상기 콘텐츠에 대한 제 1 요청이며,
상기 방법은,
데이터 저장소에 상기 트랜스코딩된 콘텐츠를 저장하는 단계;
상기 제 2 클라이언트 디바이스로부터, 상기 콘텐츠에 대한 제 2 요청을 수신하는 단계; 및
상기 콘텐츠에 대한 상기 제 2 요청에 응답하여, 상기 데이터 저장소로부터 상기 트랜스코딩된 콘텐츠를 제공하는 단계
를 더 포함하는, 콘텐츠 트랜스코딩 방법.
15. The method of claim 14,
the client device is a first client device;
The request for the content is a first request for the content,
The method,
storing the transcoded content in a data store;
receiving, from the second client device, a second request for the content; and
In response to the second request for the content, providing the transcoded content from the data store.
Further comprising a content transcoding method.
제 14 항에 있어서,
상기 방법은,
상기 CDN의 노드로부터, 상기 트랜스코딩된 콘텐츠에 대한 요청을 수신하는 단계: 및
상기 CDN의 노드로, 상기 트랜스코딩된 콘텐츠를 제공하는 단계
를 더 포함하는, 콘텐츠 트랜스코딩 방법.
15. The method of claim 14,
The method,
receiving, from a node of the CDN, a request for the transcoded content; and
providing the transcoded content to a node of the CDN;
Further comprising a content transcoding method.
제 14 항에 있어서,
상기 요청된 포맷 정보는 요청된 오디오 포맷 정보 또는 요청된 비디오 포맷 정보 중 적어도 하나를 포함하는, 콘텐츠 트랜스코딩 방법.
15. The method of claim 14,
The requested format information includes at least one of requested audio format information or requested video format information.
시스템으로서,
적어도 하나의 프로세서; 및
상기 적어도 하나의 프로세서에 동작하도록 연결되는 메모리를 포함하고,
상기 메모리는, 상기 적어도 하나의 프로세서에 의하여 실행될 때, 상기 시스템이 동작들의 세트를 수행하게 하는 명령을 저장하며,
상기 동작들의 세트는,
콘텐츠 소스로부터, 콘텐츠의 표시를 수신하는 동작;
상기 콘텐츠를 데이터 저장소 내에 저장하는 동작;
상기 콘텐츠에 기반하여 콘텐츠 해시를 생성하는 동작;
상기 콘텐츠 해시를 콘텐츠 레코드로서 분산 원장(distributed ledger) 내에 저장하는 동작;
클라이언트 디바이스로부터, 상기 콘텐츠에 대한 요청을 수신하는 동작; 및
상기 요청에 응답하여, 상기 데이터 저장소로부터 상기 콘텐츠의 적어도 일부를 제공하는 동작
을 포함하는, 시스템.
As a system,
at least one processor; and
a memory operably coupled to the at least one processor;
the memory stores instructions that, when executed by the at least one processor, cause the system to perform a set of operations;
The set of operations is
receiving, from a content source, a representation of content;
storing the 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, from a client device, a request for the content; and
In response to the request, providing at least a portion of the content from the data store.
Including, system.
제 21 항에 있어서,
상기 동작들의 세트는,
상기 콘텐츠와 연관된 스마트 콘트랙트(smart contract)를 생성하는 동작 - 상기 스마트 콘트랙트는 트리거와 연관됨 -;
상기 클라이언트 디바이스로부터의 상기 콘텐츠에 대한 요청에 기반하여 상기 트리거를 식별하는 동작; 및
상기 트리거를 식별하는 것에 응답하여, 상기 분산 원장 내에 새로운 레코드를 생성하도록 상기 스마트 콘트랙트를 실행하는 동작
을 더 포함하는, 시스템.
According to claim 21,
The set of operations is
generating a smart contract associated with the content, wherein the smart contract is associated with a trigger;
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 create a new record in the distributed ledger.
Further comprising a system.
제 22 항에 있어서,
상기 동작들의 세트는,
적어도 상기 새로운 레코드를 식별하도록 상기 분산 원장을 처리하는 동작; 및
상기 새로운 레코드에 적어도 부분적으로 기반하여, 상기 콘텐츠와 연관된 계좌 표시(accounting indication)를 생성하는 동작; 및
상기 콘텐츠 소스에 상기 계좌 표시를 제공하는 동작
을 더 포함하는, 시스템.
23. The method of claim 22,
The set of operations is
processing the distributed ledger to identify at least the new record; and
based at least in part on the new record, generating an accounting indication associated with the content; and
providing the account representation to the content source;
Further comprising a system.
제 21 항에 있어서,
상기 콘텐츠 해시는 제 1 콘텐츠 해시이고,
상기 동작들의 세트는,
상기 클라이언트 디바이스로부터, 제 2 콘텐츠 해시를 포함하는 인증 요청을 수신하는 동작;
상기 제 1 콘텐츠 해시가 상기 제 2 콘텐츠 해시와 매칭되면, 상기 콘텐츠가 인증되었다고 결정하는 동작; 및
상기 인증 요청에 응답하여, 상기 콘텐츠가 인증되었다는 표시를 제공하는 동작
을 더 포함하는, 시스템.
According to claim 21,
the content hash is a first content hash;
The set of operations is
receiving, from the client device, an authentication request including a second content hash;
if the first content hash matches the second content hash, determining that the content is authenticated; and
In response to the authentication request, providing an indication that the content has been authenticated.
Further comprising a system.
제 21 항에 있어서,
상기 콘텐츠의 표시는 상기 콘텐츠와 연관된 메타데이터를 더 포함하고,
상기 메타데이터는 상기 콘텐츠 해시를 생성하기 위해서 사용되지 않는, 시스템.
According to claim 21,
the display of the content further includes metadata associated with the content;
wherein the metadata is not used to generate the content hash.
제 25 항에 있어서,
상기 메타데이터의 적어도 일부는 상기 콘텐츠 레코드 내에 저장되는, 시스템.
26. The method of claim 25,
and at least a portion of the metadata is stored within the content record.
제 25 항에 있어서,
상기 메타데이터의 적어도 일부는 메타데이터 보관소(metadata repository) 내에 저장되고, 상기 콘텐츠 해시와 연관되는, 시스템.
26. The method of claim 25,
and at least some of the metadata is stored in a metadata repository and associated with the content hash.
콘텐츠 전송 네트워크(CDN)의 콘텐츠에 대한 스마트 콘트랙트를 생성하기 위한 방법으로서,
콘텐츠 소스로부터, 콘텐츠의 표시를 수신하는 단계;
상기 콘텐츠와 연관된 스마트 콘트랙트를 생성하는 단계 - 상기 스마트 콘트랙트는 트리거와 연관됨 -;
상기 스마트 콘트랙트를 분산 원장 내에 저장하는 단계;
클라이언트 디바이스로부터, 상기 콘텐츠에 대한 요청을 수신하는 단계;
상기 클라이언트 디바이스로부터의 상기 콘텐츠에 대한 요청에 기반하여 상기 트리거를 식별하는 단계;
상기 트리거를 식별하는 것에 응답하여, 새로운 레코드를 상기 분산 원장 내에 생성하도록 상기 스마트 콘트랙트를 실행하는 단계; 및
상기 요청에 응답하여, 상기 콘텐츠의 적어도 일부를 제공하는 단계
를 포함하는, 스마트 콘트랙트 생성 방법.
A method for creating a smart contract for content in a content delivery network (CDN), comprising:
receiving, from a content source, a representation of content;
generating a smart contract associated with the content, wherein the smart contract is associated with a trigger;
Storing the smart contract in a distributed ledger;
receiving, from a client device, a request for the content;
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 create a new record in the distributed ledger; and
In response to the request, providing at least a portion of the content.
Including, a smart contract creation method.
제 28 항에 있어서,
상기 방법은,
적어도 상기 새로운 레코드를 식별하도록 상기 분산 원장을 처리하는 단계; 및
상기 새로운 레코드에 적어도 부분적으로 기반하여, 상기 콘텐츠와 연관된 계좌 표시를 생성하는 단계; 및
상기 콘텐츠 소스에 상기 계좌 표시를 제공하는 단계
를 더 포함하는, 스마트 콘트랙트 생성 방법.
29. The method of claim 28,
The method,
processing the distributed ledger to identify at least the new record; and
based at least in part on the new record, generating an account representation associated with the content; and
providing the account representation to the content source;
Further comprising, a smart contract creation method.
제 28 항에 있어서,
상기 방법은,
상기 콘텐츠에 기반하여 콘텐츠 해시를 생성하는 단계;
상기 콘텐츠 해시를 콘텐츠 레코드로서 상기 분산 원장 내에 저장하는 단계
를 더 포함하는, 스마트 콘트랙트 생성 방법.
29. The method of claim 28,
The method,
generating a content hash based on the content;
storing the content hash as a content record in the distributed ledger;
Further comprising, a smart contract creation method.
제 30 항에 있어서,
상기 콘텐츠 해시는 제 1 콘텐츠 해시이고,
상기 방법은,
상기 클라이언트 디바이스로부터, 제 2 콘텐츠 해시를 포함하는 인증 요청을 수신하는 단계;
상기 제 1 콘텐츠 해시가 상기 제 2 콘텐츠 해시와 매칭되면, 상기 콘텐츠가 인증되었다고 결정하는 단계; 및
상기 인증 요청에 응답하여, 상기 콘텐츠가 인증되었다는 표시를 제공하는 단계
를 더 포함하는, 스마트 콘트랙트 생성 방법.
31. The method of claim 30,
the content hash is a first content hash;
The method,
receiving, from the client device, an authentication request including a second content hash;
if the first content hash matches the second content hash, determining that the content is authenticated; and
In response to the authentication request, providing an indication that the content has been authenticated.
Further comprising, a smart contract creation method.
제 30 항에 있어서,
상기 콘텐츠의 표시는 상기 콘텐츠와 연관된 메타데이터를 더 포함하고,
상기 메타데이터는 상기 콘텐츠 해시를 생성하기 위해서 사용되지 않는, 스마트 콘트랙트 생성 방법.
31. The method of claim 30,
the display of the content further includes metadata associated with the content;
wherein the metadata is not used to generate the content hash.
제 28 항에 있어서,
상기 콘텐츠는 상기 콘텐츠 소스로부터의 스트리밍 콘텐츠의 하위부분인, 스마트 콘트랙트 생성 방법.
29. The method of claim 28,
wherein the content is a sub-portion of streaming content from the content source.
콘텐츠 전송 네트워크(CDN)에 콘텐츠를 추가하기 위한 방법으로서,
콘텐츠 소스로부터 콘텐츠의 표시를 수신하는 단계;
상기 콘텐츠를 데이터 저장소 내에 저장하는 단계;
상기 콘텐츠에 기반하여 콘텐츠 해시를 생성하는 단계;
상기 콘텐츠 해시를 콘텐츠 레코드로서 분산 원장 내에 저장하는 단계;
클라이언트 디바이스로부터, 상기 콘텐츠에 대한 요청을 수신하는 단계; 및
상기 요청에 응답하여, 상기 데이터 저장소로부터 상기 콘텐츠의 적어도 일부를 제공하는 단계
를 포함하는, 콘텐츠 추가 방법.
A method for adding content to a content delivery network (CDN), comprising:
receiving a representation of content from a content source;
storing the 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, from a client device, a request for the content; and
In response to the request, providing at least a portion of the content from the data store.
Including, how to add content.
제 34 항에 있어서,
상기 방법은,
상기 콘텐츠와 연관된 스마트 콘트랙트를 생성하는 단계 - 상기 스마트 콘트랙트는 트리거와 연관됨 -;
상기 클라이언트 디바이스로부터의 상기 콘텐츠에 대한 요청에 기반하여 상기 트리거를 식별하는 단계; 및
상기 트리거를 식별하는 것에 응답하여, 상기 분산 원장 내에 새로운 레코드를 생성하도록 상기 스마트 콘트랙트를 실행하는 단계
를 더 포함하는, 콘텐츠 추가 방법.
35. The method of claim 34,
The method,
generating a smart contract associated with the content, wherein the smart contract is associated with a trigger;
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 create a new record in the distributed ledger.
Further comprising, how to add content.
제 35 항에 있어서,
상기 방법은,
적어도 상기 새로운 레코드를 식별하도록 상기 분산 원장을 처리하는 단계; 및
상기 새로운 레코드에 적어도 부분적으로 기반하여, 상기 콘텐츠와 연관된 계좌 표시를 생성하는 단계; 및
상기 콘텐츠 소스에 상기 계좌 표시를 제공하는 단계
를 더 포함하는, 콘텐츠 추가 방법.
36. The method of claim 35,
The method,
processing the distributed ledger to identify at least the new record; and
based at least in part on the new record, generating an account representation associated with the content; and
providing the account representation to the content source;
Further comprising, how to add content.
제 34 항에 있어서,
상기 콘텐츠 해시는 제 1 콘텐츠 해시이고,
상기 방법은,
상기 클라이언트 디바이스로부터, 제 2 콘텐츠 해시를 포함하는 인증 요청을 수신하는 단계;
상기 제 1 콘텐츠 해시가 상기 제 2 콘텐츠 해시와 매칭되면, 상기 콘텐츠가 인증되었다고 결정하는 단계; 및
상기 인증 요청에 응답하여 상기 콘텐츠가 인증되었다는 표시를 제공하는 단계
를 더 포함하는, 콘텐츠 추가 방법.
35. The method of claim 34,
the content hash is a first content hash;
The method,
receiving, from the client device, an authentication request including a second content hash;
if the first content hash matches the second content hash, determining that the content is authenticated; and
providing an indication that the content has been authenticated in response to the authentication request;
Further comprising, how to add content.
제 34 항에 있어서,
상기 콘텐츠의 표시는 상기 콘텐츠와 연관된 메타데이터를 더 포함하고,
상기 메타데이터는 상기 콘텐츠 해시를 생성하기 위해서 사용되지 않는, 콘텐츠 추가 방법.
35. The method of claim 34,
the display of the content further includes metadata associated with the content;
wherein the metadata is not used to generate the content hash.
제 38 항에 있어서,
상기 메타데이터의 적어도 일부는 상기 콘텐츠 레코드 내에 저장되는, 콘텐츠 추가 방법.
39. The method of claim 38,
wherein at least a portion of the metadata is stored within the content record.
제 38 항에 있어서,
상기 메타데이터의 적어도 일부는 메타데이터 보관소 내에 저장되고, 상기 콘텐츠 해시와 연관되는, 콘텐츠 추가 방법.
39. 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.
KR1020237013925A 2020-09-24 2021-09-22 Content Delivery Using Distributed Ledger and AI-Based Transcoding Technology KR20230073314A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063082704P 2020-09-24 2020-09-24
US202063082677P 2020-09-24 2020-09-24
US63/082,704 2020-09-24
US63/082,677 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 (1)

Publication Number Publication Date
KR20230073314A true KR20230073314A (en) 2023-05-25

Family

ID=78179529

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237013925A KR20230073314A (en) 2020-09-24 2021-09-22 Content Delivery Using Distributed Ledger and AI-Based Transcoding Technology

Country Status (6)

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

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6574279B1 (en) * 2000-02-02 2003-06-03 Mitsubishi Electric Research Laboratories, Inc. Video transcoding using syntactic and semantic clues
GB2456593B (en) * 2005-12-28 2011-07-13 Intel Corp 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
US10841601B2 (en) * 2015-06-23 2020-11-17 Telefonaktiebolaget Lm Ericsson (Publ) Methods and arrangements for transcoding
CN107231566B (en) * 2016-03-25 2020-12-18 阿里巴巴集团控股有限公司 Video transcoding method, device and system

Also Published As

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

Similar Documents

Publication Publication Date Title
US11930241B2 (en) System and method for optimizing videos
US11570491B2 (en) Media distribution and management platform
US11528264B2 (en) Merged video streaming, authorization, and metadata requests
US11356493B2 (en) Systems and methods for cloud storage direct streaming
CN109791557B (en) Computer-implemented method for managing asset storage and storage system
US11544806B2 (en) Aggregated media rights platform
US10755104B2 (en) Scene level video search
US11212332B2 (en) Dynamic archiving of streaming content
US20220092079A1 (en) Content delivery using distributed ledger and ai-based transcoding technologies
US11910056B2 (en) Content delivery using distributed ledger and AI-based transcoding technologies
KR20230073314A (en) Content Delivery Using Distributed Ledger and AI-Based Transcoding Technology
US20200184358A1 (en) Video Content Valuation Prediction Using A Prediction Network