KR20230073314A - Content Delivery Using Distributed Ledger and AI-Based Transcoding Technology - Google Patents
Content Delivery Using Distributed Ledger and AI-Based Transcoding Technology Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing 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/234309—Processing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/154—Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/23418—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing 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/234318—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/266—Channel 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/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/84—Generation 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
관련 출원에 대한 상호 참조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
콘텐츠 소스(102)는 소비자에게 전송되기 위한(예를 들어, 클라이언트 디바이스(110)의 클라이언트 애플리케이션(138)을 사용함) 콘텐츠를 CDN(140)(예를 들어, 파선 박스에 의해 예시된 것처럼 게이트웨이 노드(104 및 106), 및 지역 노드(108)를 포함함)에 제공한다. 예를 들어, 콘텐츠 소스(102)와 연관된 컴퓨팅 디바이스가 본 명세서에서 설명되는 양태에 따라서 콘텐츠를 제공하기 위하여 CDN(140)에 의해 호스팅되는 웹사이트(예를 들어, 노드(104, 106, 또는 108)에 의해 제공될 수 있음)에 액세스하기 위해서 사용될 수 있다. 그 외의 임의의 다양한 기법이 콘텐츠 소스(102)로부터 CDN(140)으로 콘텐츠를 송신하기 위하여 사용될 수 있다. 다른 예들에서는, 시스템(100)에 대해서 설명된 예시적인 CDN의 특정 요소들이 제 3 자에 의해서 제공될 수 있고 및/또는 본 명세서에서 특정한 요소에 대해서 설명된 기능성이 임의의 다양한 다른 기법에 따라서 분산될 수 있다는 것이 이해될 것이다.
콘텐츠 소스(102)는 데이터 저장소(114) 및 분산 원장 엔진(116)으로서 예시된다. 예들에서, 데이터 저장소(114)는 콘텐츠 소스(102)가 CDN(140)에 제공하는 콘텐츠를 저장한다. 예를 들어, 여러 가지 예들 중에서 데이터 저장소(114)는 콘텐츠 파일을 저장하고 및/또는 콘텐츠 스트림을 버퍼링한다. 분산 원장 엔진(116)은 콘텐츠 소스(102)와 연관된 분산 원장을 관리할 수 있다. 예를 들어, 콘텐츠 소스(102)는 자신이 제공하는 콘텐츠와 연관된 레코드를 포함하는 자기 자신의 분산 원장을 유지할 수 있다. 다른 예들에서, 콘텐츠 소스 분산 원장 엔진을 포함하지 않을 수도 있다.
일 예로서 게이트웨이 노드(104)를 사용하여, 콘텐츠가 콘텐츠 소스(102)로부터 수신되고 데이터 저장소(118) 내에 저장된다. 분산 원장 엔진(120)은 콘텐츠 레코드를 분산 원장 내에 생성하는데, 여기에서 콘텐츠 레코드는 콘텐츠 해시, 연관된 메타데이터, 및/또는 임의의 다양한 다른 정보를 포함할 수 있다. 예들에서, 콘텐츠 메타데이터 데이터 저장소(118) 내에 저장되고 콘텐츠 해시와 연관된다. 일부 예들에서, 분산 원장 엔진(120)은 콘텐츠와 연관된 하나 이상의 스마트 콘트랙트를 생성하고, 이것은 콘텐츠 레코드와 같거나 상이한 분산 원장 내에 저장될 수 있다. 예들에서, 생성된 스마트 콘트랙트는 콘텐츠 해시 및/또는 하나 이상의 트리거와 연관된다. 일부 예들에서, 분산 원장 엔진(120)은 CDN 분산 원장 및 분산 원장 엔진(116)에 의해 관리되는 콘텐츠 소스 분산 원장 사이에서 게이트웨이의 역할을 할 수 있다. 예를 들어, 트랜잭션이 콘텐츠 소스 원장 및 CDN 원장 사이에서 동기화될 수 있고, 또는, 다른 예로서, 여러 가지 예들 중에서 CDN(140) 내에서 식별된 트리거에 관한 표시가 제공될 수도 있다.Using
게이트웨이 노드(104) 콘텐츠를 지역 노드(108)로 송신할 수 있다. 콘텐츠 소스(102)로부터 수신되고 게이트웨이 노드(104)를 통하여 지역 노드(108)로 제공된 콘텐츠가 후속하여 게이트웨이 노드(106)에 의해서 분산될 수 있도록, 게이트웨이 노드(104 및 106)는 콘텐츠를 지역 노드(108)로부터 배포할 수 있다. 따라서, CDN(140)은 계층적이거나 허브-앤-스포크(hub-and-spoke) 아키텍처를 가질 수 있는데, 여기에서는 특정 노드(예를 들어, 노드(104 및 106))가 다른 노드(예를 들어, 지역 노드(108))에 의해서 관리된다. 예시적인 CDN 구조가 본 명세서에서 설명되는 반면에, 노드들이 다른 예들에서는 임의의 다양한 다른 구조로 구성될 수도 있다는 것이 이해될 것이다.
소비자는 클라이언트 디바이스(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
예들에서, 분산 원장은 처리되어 그 안에 있는 스마트 콘트랙트의 당사자(예를 들어, 콘텐츠 소스(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,
예들에서, 콘텐츠 인증이 요청된다. 예를 들어, 인증 요청이 클라이언트 디바이스(110)로부터 수신되거나, 다른 예로서, 콘텐츠는 분산 원장의 계정을 생성한 결과로서 인증된다. 다른 예로서, 소비자는 콘텐츠의 소스를 인증하기를 원할 수 있고, 또는, 다른 예들에서는 콘텐츠와 연관된 특정 메타데이터(예를 들어, 콘텐츠에 그려진 남주인공/여주인공이 콘텐츠의 생성에 실제로 참여했다는 것)를 인증하고자 할 수도 있다. 따라서, 콘텐츠의 해시가 생성되고(예를 들어, 노드(104, 106 또는 108 등)에서의 클라이언트 디바이스(110)에서), 분산 원장의 콘텐츠 레코드와 비교된다. 이러한 양태들은 분산 원장 엔진(120, 126, 및/또는 132)에 의해 수행될 수 있다. 생성된 콘텐츠 해시가 콘텐츠 레코드의 저장된 콘텐츠 해시와 매칭되면, 콘텐츠는 성공적으로 인증된다. 콘텐츠 해시는 콘텐츠와 연관된 메타데이터를 식별하기 위해 사용될 수 있고, 이를 통하여 사용자가 콘텐츠와 연관된 콘텐츠 소스 및 연관된 메타데이터를 시청할 수 있게 한다.In examples, content authentication is requested. For example, an authentication request is received from the
콘텐츠 소스(102)로부터의 콘텐츠는 낮은 품질일 수 있거나 CDN(140)에 의해서 배포될 수 있는 것과 다른 포맷일 수 있다. 따라서, 콘텐츠 프로세서(122, 128, 및/또는 136)가 콘텐츠를 개선 또는 변경하기 위해서 사용될 수 있다. 일 예로서, 게이트웨이 노드(104)(콘텐츠 소스(102)로부터 콘텐츠를 수신하였음)는 콘텐츠 프로세서(122)를 사용하여 본 명세서에서 설명된 AI-기반 트랜스코딩 기법들을 수행하여 콘텐츠의 트랜스코딩된 버전을 생성한다. 트랜스코딩된 버전은 CDN(140)의 다른 노드로(예를 들어, 지역 노드(108)를 통하여 게이트웨이 노드(106) 로) 배포될 수 있다. 콘텐츠는 콘텐츠 소스(102)로부터 콘텐츠를 수신하는 것에 응답하여 트랜스코딩될 수 있다.Content from
다른 예들에서는, 노드(104, 106, 또는 108)가 콘텐츠에 대한 요청(예를 들어, 클라이언트 디바이스(110)로부터의 요청)에 응답하여 콘텐츠 프로세서(122, 128, 또는 136)를 각각 사용하여 AI-기반 트랜스코딩 기법을 수행하도록, 원본 콘텐츠가 CDN(140)의 노드로 배포된다. 예를 들어, 이러한 요청은, 여러 가지 예들 중에서 요청된 해상도, 오디오 채널의 개수, 비트레이트, 및/또는 색상 깊이를 표시하는 요청된 포맷 정보를 포함할 수 있다. 따라서, 요청된 포맷 정보는 요청된 비디오 포맷 정보 및/또는 요청된 오디오 포맷 정보에 관련될 수 있다. 추가적으로, CDN(140) 내에서 원본 콘텐츠를 배포하고 이러한 콘텐츠에 대한 요청을 처리하는 노드에서 트랜스코딩을 수행하면, CDN(140) 내에서 콘텐츠를 전송하는 것과 연관된 대역폭이 감소될 수 있다.In other examples,
일부 예들에서, 노드가 콘텐츠에 대한 모든 요청에 응답하여 트랜스코딩된 버전을 생성할 필요가 없고 그 대신에 캐싱된 트랜스코딩된 버전을 데이터 저장소로부터 제공할 수 있도록, 콘텐츠의 트랜스코딩된 버전의 적어도 일부가 미리 결정된 시간량 동안 데이터 저장소 내에 캐싱된다. 다른 예들에서는, 수신자 노드가 콘텐츠를 트랜스코딩할 필요가 없도록, 트랜스코딩된 버전이 하나의 노드로부터 다른 노드로(예를 들어, 지역 노드(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
지역 노드(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)에 의해 생성된 트랜스코딩된 버전은 동일하거나 유사한 트랜스코딩 레시피를 사용한 결과로서 유사해질 수 있다. 트랜스코딩 모델 및 레시피를 동기화하기 위해서 다른 기법이 사용될 수 있다는 것이 이해될 것이다. 예를 들어, 중앙화된 데이터 저장소가 사용될 수도 있다.
도 1b는 예시적인 분산 원장 엔진(150)의 개관을 예시한다. 도시된 바와 같이, 분산 원장 엔진(150)은 해시 생성기(152), 스마트 콘트랙트 프로세서(154), 트리거 프로세서(156), 및 콘텐츠 인증기(158)를 포함한다. 예들에서, 분산 원장 엔진(150)은 CDN 노드의 일부, 예컨대 도 1a에서 노드(104, 106, 및 108) 각각의 분산 원장 엔진(120, 126, 및 132)이다.1B illustrates an overview of an exemplary distributed
해시 생성기(152)는 본 명세서에서 설명되는 양태에 따라서 해시 콘텐츠를 생성한다. 예를 들어, 콘텐츠 해시는 다양한 해싱 알고리즘, 예컨대 SHA-2 해시(예를 들어, SHA-256, SHA-512 등) 또는 RIPEMD 해시(예를 들어, RIPEMD-160, RIPEMD-256 등) 중 임의의 것을 사용하여 생성될 수 있다. 해시 생성기(152)는 메타데이터에 단독적으로 또는 콘텐츠와 조합한 것에 기반하기 보다는 콘텐츠 자체에 기반하여 콘텐츠 해시를 생성할 수도 있다. 해시는 여러 하위부분을 가질 수 있는데, 해시의 제 1 하위부분은 콘텐츠를 고유하게 식별할 수 있는 반면에, 해시의 하나 이상의 다른 하위부분은 콘텐츠 해상도(예를 들어, HD, 4K, 및/또는 8K 콘텐츠에 대하여 하위부분마다 상이한 해시) 및/또는 콘텐츠 소스와 연관될 수 있다(예를 들어, 스트리밍 플랫폼은 원본 콘텐츠 발행자와 다른 해시 하위부분을 가질 수 있음). 해시 생성기(152)에 의해 생성된 콘텐츠 해시는 분산 원장의 콘텐츠 레코드의 일부로서 저장될 수 있다. 일부 예들에서, 해시 생성기(152)는 콘텐츠와 연관된 메타데이터의 해시를 생성할 수 있고, 이것도 역시 콘텐츠 레코드의 일부로서 저장될 수 있다. 콘텐츠 레코드는, 콘텐츠가 CDN에 의해서 언제 수신되었는지와 연관된 타임스탬프(예를 들어 도 1a의 콘텐츠 소스(102)로부터 수신됨), 및 연관된 콘텐츠 소스 정보(예를 들어, 이메일 어드레스, 청구지 어드레스, 회사 명칭 등)를 포함하지만 이들로 한정되는 것은 아닌, 콘텐츠와 연관된 메타데이터의 적어도 일부 또는 다양한 다른 정보 중 임의의 것을 더 포함할 수 있다.
분산 원장 엔진(150)의 스마트 콘트랙트 프로세서(154)는 콘텐츠와 연관된 스마트 콘트랙트를 생성한다. 전술된 바와 같이, 스마트 콘트랙트는 CDN, 콘텐츠 소스, 및/또는 다른 아티스트들 중 음악가, 남주인공/여주인공, 및 감독을 포함하지만 이들로 한정되는 것은 아닌 다양한 당사자들 중 임의의 당사자 사이에서 생성될 수 있다. 스마트 콘트랙트 프로세서(154)는 생성된 스마트 콘트랙트를 콘텐츠 해시(예를 들어, 해시 생성기(152)에 의해 생성되었을 수 있음)와 연관시킬 수 있다. 스마트 콘트랙트 프로세서(154)는 스마트 콘트랙트를 콘텐츠 레코드가 저장된 것과 같은 분산 원장 내에 저장할 수 있고, 또는 다른 예들에서는 스마트 콘트랙트가 상이한 분산 원장일 수도 있다. 예를 들어, 상이한 당사자에 대해서 상이한 분산 원장(예를 들어, 특정 아티스트 등에 대한 로열티 지불을 추적하기 위해서 동일한 분산 원장을 사용하는, 각각의 콘텐츠 소스에 대해 상이한 분산 원장)이 사용될 수 있다. 스마트 콘트랙트 프로세서(154)는 별개의 사용자들 사이에서 스마트 콘트랙트를 생성할 필요가 없거나, 다른 예들에서는, 스마트 콘트랙트의 당사자가 실제 사용자일 필요가 없고 그 대신에 플레이스홀더(placeholder)로서의 역할을 할 수도 있다. 예를 들어, 로열티 지불의 레코드를 생성하기 위해서 로열티 스마트 콘트랙트가 사용될 수 있고, 이러한 계좌가 콘텐츠 소스 또는 다른 당사자에게 제공되어, 궁극적으로 로열티가 지불되게 할 수 있다. 다른 예로서, CDN은 콘트랙트에 대한 유일한 당사자이고, 따라서 CDN은 트리거의 발생에 기반하여 분산 원장을 통한 분석정보를 유지보수할 수 있게 된다.The
트리거 프로세서(156)는 트리거를 처리하고, 연관된 스마트 콘트랙트를 실행한다. 위에서 언급된 바와 같이, 트리거는 콘텐츠 전송(예를 들어, 클라이언트 디바이스로의 또는 원점 및 에지 노드 사이의 송신, 스트리밍 또는 다운로드 활동 등) 또는 콘텐츠 재생(예를 들어, 콘텐츠를 플레이/일시정지하는 것, 고속-앞으로가기 / 뒤로가기, 재생을 조기에 종료하는 것 등)에 관련된 이벤트와 같은 다양한 이벤트 중 임의의 것일 수 있다. 예를 들어, 트리거 프로세서(156)는 이벤트(예를 들어, 로그 데이터에 접근하는 것, 데이터 저장소에게 콘텐츠를 질의하는 것 등)가 발생되었는지 여부를 결정하기 위해서 폴링(polling)을 수행할 수 있고, 또는 표시를 수신할 수도 있다(예를 들어 CDN 노드로부터, 클라이언트 디바이스로부터 등). 트리거 프로세서(156)가 트리거를 식별하면, 해당 트리거와 연관된 콘텐츠 해시가 연관된 스마트 콘트랙트(예를 들어, 스마트 콘트랙트 프로세서(154)에 의해서 생성되었을 수 있음)를 식별하고 실행하기 위해서 사용된다.The
콘텐츠 인증기(158)는 분산 원장 내의 콘텐츠 해시와 비교된 콘텐츠를 인증한다. 예를 들어, 콘텐츠 인증기(158)는 인증 요청을 수신할 수 있다(예를 들어, 도 1a의 클라이언트 디바이스(110)와 같은 클라이언트 디바이스로부터의 트랜잭션을 처리한 결과로서). 인증 요청은 특정한 콘텐츠에 대한 해시를 생성하기 위한 표시를 포함하거나 해시(예를 들어, 클라이언트 디바이스에 의해 생성될 수 있음)를 포함할 수 있다. 해시가 요청의 일부로서 수신되지 않은 예들에서, 해시 생성기(152)는 콘텐츠의 해시를 생성한다. 그러면 콘텐츠 인증기(158)가 수신된 해시 또는 생성된 해시 중 어느 하나를 분산 원장 내의 해시와 비교하여 콘텐츠를 인증한다. 위에서 언급된 바와 같이, 콘텐츠 및/또는 메타데이터와 연관된 콘텐츠 소스에 관련된 추가적인 인증이 수행될 수도 있다.
도 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
모델 선택기(182)는 AI-기반 트랜스코딩을 수행하기 위한 트랜스코딩 모델을 선택한다. 예를 들어, 모델 선택기(182)는 트랜스코딩 모델을, 콘텐츠 메타데이터(예를 들어, 특정한 콘텐츠 타입을 나타낼 수 있는 장르, 남주인공/여주인공 등), 비디오 분석(예를 들어, 비트레이트, 프레임 복잡도, 명암등), 원본 콘텐츠 해상도, 타겟 콘텐츠 해상도, 모션 벡터, 제조년도, 포맷 또는 코덱 타입, 및/또는 소비자 또는 다른 사용자로부터 수신된 피드백을 포함하지만 이들로 한정되는 것은 아닌 다양한 기준들에 따라서 선택한다. 위에서 설명된 바와 같이, 트랜스코딩 모델들의 세트는 상이한 콘텐츠 타입에 따라서 훈련되었을 수 있다. 예를 들어, 액션 콘텐츠, 스포츠 콘텐츠, 애니메이션된 콘텐츠, 리얼리티 콘텐츠, 광고 콘텐츠, 및 흑백 콘텐츠에 대하여 상이한 모델이 존재할 수 있다.A
예들에서, 모델 선택기(182)는 다수의 트랜스코딩 모델을 비교하여 어떤 트랜스코딩 모델을 적용할지를 결정한다. 예를 들어, 대상물 검출기(184)는 주어진 비디오 프레임 내의 다른 대상물 중에서 무생물인 대상물, 움직이는 문자, 및 남주인공/여주인공을 식별할 수 있다. 대상물 검출기(184)는 임의의 개수 및/또는 다양한 인식 머신 러닝 모델을 적용할 수 있다. 예를 들어, 대상물의 특정한 서브세트를 인식하기 위해서 각각의 대상물 인식 머신 러닝 모델이 훈련되었을 수 있고, 또는 다른 예들에서는 대상물 인식 머신 러닝 모델이 특정 타입의 콘텐츠에 따라서 훈련된다. 대상물 검출기(184)가 그 외의 다양한 대상물 검출 기법(예를 들어, 프레임 내의 에지를 식별하는 것, 프레임들의 세트에 걸친 움직임을 분석하는 것 등)을 적용할 수 있다는 것이 이해될 것이다.In examples,
그러면, 모델 선택기(182)는 품질 평가기(188)를 사용하여 다수의 트랜스코딩 모델로부터의 모델 처리 결과를 평가하여, 검출된 대상물이 각각의 트랜스코딩 모델에 의해서 얼마나 양호하게 트랜스코딩되었는지를 결정할 수 있다. 예들에서, 품질 평가기(188)는 이러한 비교를 프로그램을 이용하여 수행한다(예를 들어, 트랜스코딩 아티팩트를 검출하고, 레퍼런스 프레임을 트랜스코딩된 프레임과 비교하는 등에 의하여). 예를 들어, 소스 프레임은 다운스케일링될 수 있어서, 다운스케일링된 소스 프레임이 다수의 트랜스코딩 모델을 사용하여 업스케일링되어 다수의 트랜스코딩된 프레임을 생성하게 한다. 오차 및 품질 손실을 식별하기 위해서 트랜스코딩된 프레임은 원본 소스 프레임과 비교될 수 있어서, 최고의 품질(예를 들어, 최저 오차, 최저 품질 손실 등)을 보여주는 트랜스코딩 모델이 콘텐츠를 트랜스코딩하기 위해서 선택될 수 있게 한다. 다른 예들에서, 품질 평가기(188)는, 예를 들어 사용자 선택을 위하여 트랜스코딩된 여러 프레임들의 디스플레이를 생성함으로써, 명시적/암시적 사용자 입력을 요청 또는 수신한다.
트랜스코딩 엔진(186)은 콘텐츠를 트랜스코딩하여 트랜스코딩된 콘텐츠를 생성한다. 트랜스코딩 엔진(186)은 트랜스코딩을 수행하기 위해서, 모델 선택기(182)에 의해 선택된 트랜스코딩 모델을 사용한다. 예들에서, 콘텐츠를 트랜스코딩하기 위해서 다수의 트랜스코딩 모델이 사용되는데, 이러한 경우에는 콘텐츠의 하나의 하위부분을 위해서 하나의 모델이 사용될 수 있는 반면에, 다른 하위부분을 위해서는 다른 모델이 사용될 수 있다. 따라서, 트랜스코딩 모델 성능이 트랜스코딩 도중에 주기적으로 평가될 수 있어서(예를 들어, 품질 평가기(188)에 의하여), 트랜스코딩 모델이 주어진 하위부분에 대한 모델 성능에 따라서 변경될 수 있게 한다(예를 들어, 모델 선택기(182)에 의해 이루어진 선택에 따라서). 일부 예들에서, 트랜스코딩 엔진(186)이 모델 선택기(182)가 모델 선택 프로세스를 수행하기 위해서 다시 사용되어야 한다고 결정할 수 있도록, 콘텐츠 해상도는 바뀔 수 있다(예를 들어, 콘텐츠 내의 브로드캐스트의 스포츠 세그멘트와 광고 사이에서). 다른 예들에서, 대상물 검출기(184)는 비디오 프레임의 콘텐츠를 결정하거나 대상물가 언제 사라졌는지를 식별하기 위해서 사용될 수 있고, 이들 양자 모두는 모델 선택기(182)가 트랜스코딩 모델 성능을 재평가하게 할 수 있다. 일부 예들에서, 트랜스코딩 엔진(186)은 상이한 트랜스코딩 모델을 인트라프레임, 예측된-프레임, 및/또는 양방향성-프레임(이들 각각은 모델 선택기(182)에 의하여 선택될 수 있음)에 적용한다. 위에서 언급된 바와 같이, 이러한 기법은 트랜스코딩과 동시에 수행될 필요가 없어서, 그 대신에 트랜스코딩 엔진(186)이 콘텐츠의 어떤 하위부분을 트랜스코딩하기 위해서 어떤 트랜스코딩 모델이 사용되어야 하는지를 특정하는 트랜스코딩 레시피를 활용하게 한다.
도 2a는 본 명세서에서 설명된 분산 원장 기법들에 따라서 CDN에 콘텐츠를 추가하기 위한 예시적인 방법(200)의 개관을 예시한다. 예들에서, 방법(200)의 양태들은 CDN의 노드, 예컨대 도 1a의 노드(104, 106 또는 108)에 의해서 수행된다. 다른 예로서, 방법(200)의 양태들은 분산 원장 엔진, 예컨대 도 1b의 분산 원장 엔진(150)에 의해서 수행될 수 있다. 방법(200)은 콘텐츠의 표시가 수신되는 동작(202)에서 시작된다. 콘텐츠의 표시는 콘텐츠 소스, 예컨대 도 1a의 콘텐츠 소스(102)로부터 수신될 수 있다. 다른 예로서, 콘텐츠의 표시는, 사용자(예를 들어, 콘텐츠 소스와 연관된 클라이언트 디바이스의 사용자)가 콘텐츠를 선택하고, 타이틀 및 남주인공/여주인공, 감독, 또는 다른 연관된 아티스트의 목록과 같은 연관된 메타데이터를 특정할 수 있게 하는, CDN의 웹사이트를 통해서 수신될 수 있다. 다른 예들에서, 메타데이터는 메타데이터 보관소 내에 저장되고, 콘텐츠 표시는 메타데이터 보관소 내의 메타데이터에 대한 레퍼런스를 포함한다. 애플리케이션 프로그래밍 인터페이스(API)를 사용하는 것과 같은 임의의 다양한 다른 기법이 콘텐츠 소스로부터 콘텐츠를 수신하기 위해서 사용될 수 있다는 것이 이해될 것이다.2A illustrates an overview of an
흐름은 이러한 콘텐츠로부터 해시가 생성되는 동작(204)으로 진행한다. 예들에서, 해시는 도 1b의 해시 생성기(152)와 같은 해시 생성기에 의해서 생성된다. 예를 들어, 콘텐츠 해시는 메타데이터만으로 또는 콘텐츠와 조합된 메타데이터에 기반하는 것 보다는 콘텐츠 자체에 기반하여 생성될 수 있다. 예들에서, 콘텐츠 해시는 콘텐츠 레코드의 일부이다. 콘텐츠 레코드는 콘텐츠 메타데이터와 연관된 해시 및/또는 메타데이터 자체와 같은 다양한 다른 정보 중 임의의 것을 저장할 수 있다.Flow proceeds to
동작(206)에서, 콘텐츠와 연관된 스마트 콘트랙트가 생성된다. 스마트 콘트랙트는 도 1b의 스마트 콘트랙트 프로세서(154)와 같은 스마트 콘트랙트 프로세서에 의해서 생성될 수 있다. 스마트 콘트랙트는 CDN, 동작(202)에서 수신된 표시가 연관되는 콘텐츠 소스, 및/또는 다른 아티스트 중에서 음악가, 남주인공/여주인공, 및 감독을 포함하지만 이들로 한정되는 것은 아닌 다양한 당사자들 사이에서 생성될 수 있다. 동작(206)에서 생성된 스마트 콘트랙트는 동작(204)에서 생성되었던 콘텐츠 해시와 연관될 수 있다. 위에서 언급된 바와 같이, 스마트 콘트랙트는 별개의 사용자들 사이에서 이루어질 필요가 없거나, 다른 예들에서는, 스마트 콘트랙트의 당사자가 실제 사용자일 필요가 없고 그 대신에 플레이스홀더로서의 역할을 할 수도 있다. 스마트 콘트랙트는 본 명세서에서 설명되는 양태에 따라서 스마트 콘트랙트가 실행되게 하는 다양한 트리거 중 임의의 것과 연관될 수 있다. 동작(206 및 208)이 하나의 스마트 콘트랙트를 생성하는 것으로 설명되지만, 임의의 개수의 스마트 콘트랙트가 생성될 수도 있다는 것이 이해될 것이다.At
동작(208)으로 이동하면, 콘텐츠 해시 및 스마트 콘트랙트가 분산 원장 내에 저장된다. 예들에서, 동작(204)에서 생성된 콘텐츠 레코드 및 동작(206)에서 생성된 하나 이상의 스마트 콘트랙트는 동일한 분산 원장 내에 저장된다. 다른 예로서, 스마트 콘트랙트는 콘텐츠 레코드와 다른 분산 원장 내에 저장될 수 있다. 예를 들어, 상이한 당사자에 대해서 상이한 분산 원장(예를 들어, 특정 아티스트 등에 대한 로열티 지불을 추적하기 위해서 동일한 분산 원장을 사용하는, 각각의 콘텐츠 소스에 대해 상이한 분산 원장)이 사용될 수 있다. 흐름은 동작(208)에서 종결된다.Moving to
도 2b는 본 명세서에서 설명된 분산 원장 기법들에 따라서 콘텐츠와 연관된 트리거를 처리하기 위한 예시적인 방법(220)의 개관을 예시한다. 예들에서, 방법(220)의 양태들은 CDN의 노드, 예컨대 도 1a의 노드(104, 106 또는 108)에 의해서 수행된다. 다른 예로서, 방법(220)의 양태들은 분산 원장 엔진, 예컨대 도 1b의 분산 원장 엔진(150)에 의해서 수행될 수 있다. 방법(220)은 콘텐츠의 조각과 연관된 트리거의 표시가 수신되는 동작(222)에서 시작된다. 예들에서, 표시는 다른 정보 중에서 콘텐츠의 콘텐츠 해시 및 트리거 타입을 포함한다. 이러한 표시는 트리거 프로세서, 예컨대 도 1b의 트리거 프로세서(156)에 의해서 수신될 수 있다. 다른 예들에서, 이러한 표시는 수신되지 않고, 그 대신에 트리거 프로세서에 의해 생성된다.2B illustrates an overview of an
동작(224)에서는, 콘텐츠 인증이 수행된다. 콘텐츠 인증은 콘텐츠 인증기, 예컨대 도 2c에서 후술되는 방법(240)의 양태를 수행할 수 있는 도 1b의 콘텐츠 인증기(158)에 의해서 수행될 수 있다. 콘텐츠 인증은 트리거가 연관되는 콘텐츠에 대한 해시를 생성하는 것 및 이러한 해시를 분산 원장의 콘텐츠 레코드 내의 해시(예를 들어, 도 2a의 방법(200)의 동작(204 및 208)에 의해서 생성되었을 수 있음)와 비교하는 것을 포함할 수 있다. 다른 경우에, 동작(222)에서 수신된 콘텐츠 해시는 해시들이 매칭된다는 것을 확정하기 위하여 분산 원장 내의 콘텐츠 해시와 비교된다. 일부 예들에서, 동작(224)은 생략되거나 스마트 콘트랙트의 타입에 따라서 수행될 수 있다(예를 들어, 지불과 연관된 스마트 콘트랙트는 콘텐츠 인증을 포함할 수 있는 반면에, 분석정보와 연관된 스마트 콘트랙트는 그렇지 않을 수 있음).In
흐름은 큰텐츠와 연관된 스마트 콘트랙트가 식별되는 동작(226)으로 진행한다. 예들에서, 스마트 콘트랙트는 콘텐츠 해시와 같은 분산 원장에 저장되어, 스마트 콘트랙트가 그 안에서 식별될 수 있게 한다. 다른 예들에서, 콘텐츠 해시는 상이한 분산 원장 내의 스마트 콘트랙트를 식별하기 위해서 사용되거나, 다른 예로서는, 콘텐츠 레코드가 상이한 분산 원장 내의 스마트 콘트랙트에 대한 동일한 레퍼런스를 포함할 수 있다. 따라서, 콘텐츠의 조각과 연관된 스마트 콘트랙트를 식별하기 위하여 다양한 기법 중 임의의 것이 사용될 수 있다는 것이 이해될 것이다.Flow proceeds to
동작(228)에서, 동작(228)에서 식별되었던 스마트 콘트랙트가 실행된다. 예들에서, 스마트 콘트랙트를 실행하는 것은, 스마트 콘트랙트와 연관된 분산 원장 내에 새로운 레코드를 생성하고, 이를 통하여 보고서(예를 들어, 지불 청구서, 분석정보 등)를 생성하기 위한 분산 원장의 후속 처리를 가능하게 하는 것을 포함한다. 다른 예들에서, 스마트 콘트랙트는 전자 통신을 생성하는 것, 콘텐츠를 CDN 내에서 송신하는 것, 및/또는 콘텐츠 트랜스코딩을 수행하는 것을 포함하는 다양한 다른 동작들 중 임의의 것을 특정할 수 있다. 스마트 콘트랙트 실행의 일부로서, 임의의 개수의 액션이 동작(228)에서 수행될 수 있다는 것이 이해될 것이다. 흐름은 동작(228)에서 종결된다.In
도 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
흐름은 콘텐츠의 해시가 생성되는 동작(244)으로 진행할 수 있다. 동작(244)은 일부 예들(예를 들어, 콘텐츠 인증에 대한 요청이 콘텐츠 해시를 포함하는 예)에서는 생략될 수 있다는 것을 표시하기 위해서 파선 박스를 사용하여 예시된다. 동작(244)의 양태는 해시 생성기, 예컨대 도 1b의 해시 생성기(152)에 의해서 수행될 수 있다. 전술된 바와 같이, 콘텐츠 해시는 메타데이터만으로 또는 콘텐츠와 조합된 메타데이터에 기반하는 것 보다는 콘텐츠 자체에 기반하여 생성될 수 있다.Flow may proceed to
동작(246)에서, 저장된 해시가 분산 원장 내에서 식별된다. 본 명세서에서 설명되는 양태에 따라서, 저장된 해시는 콘텐츠 레코드의 일부일 수 있다. 예들에서, 콘텐츠 레코드는 레퍼런스 또는 다른 연관성을 통하여 콘텐츠와 연관될 수 있다. 일부 예들에서, 인증은 콘텐츠에 대해서만 수행될 수 있는 것이 아니고, 메타데이터에 대해서도 수행될 수 있다. 이러한 예에서, 저장된 메타데이터 해시(예를 들어, 콘텐츠 레코드의 일부일 수 있음)는 동작(246)의 일부로서 식별될 수 있다. 저장된 해시를 식별하기 위하여 그 외의 다양한 기법들 중 임의의 기법이 사용될 수 있다는 것이 이해될 것이다.At
결정 동작(248)에서, 해시들이 매칭되는지 여부가 결정된다. 예를 들어, 동작(242)에서 수신된 콘텐츠 해시 또는 동작(244)에서 생성된 콘텐츠 해시는 동작(246)에서 식별된 콘텐츠 해시와 비교될 수 있다. 예들에서는 정확한 매칭이 사용된다. 다른 예들에서, 해시는 다수의 하위부분을 가질 수 있는데, 여기에서는 제 1 하위부분을 비교하기 위해서 정확한 매칭이 사용된다. 해시의 하나 이상의 다른 하위부분은 콘텐츠 해상도(예를 들어, HD, 4K, 및/또는 8K 콘텐츠에 대하여 하위부분마다 상이한 해시) 및/또는 콘텐츠 소스와 연관될 수 있다(예를 들어, 스트리밍 플랫폼은 원본 콘텐츠 발행자와 다른 해시 하위부분을 가질 수 있음)). 동작(246)에서 전술된 바와 같이, 추가적 정보, 예컨대 메타데이터 해시가 결정의 일부로서 평가될 수 있다. 일부 예들에서, 메타데이터의 양태를 평가하기 위하여 매칭 기법이 사용될 수 있도록, 메타데이터 자체는 콘텐츠 레코드의 일부로서 저장될 수 있다. 따라서, 다양한 기법 중 임의의 기법이 콘텐츠 해시들이 매칭되는지 결정하기 위하여 사용될 수 있고, 매칭은 정확한 매칭이어야 하는 것은 아니라는 것이 이해될 것이다.In
만일, 결정 동작(248)에서 해시들이 매칭되지 않는다고 결정되면, 흐름은 "아니오" 분기를 따라서 콘텐츠가 인증되지 않는다는 표시가 제공되는 동작(250)으로 진행한다. 예들에서, 이러한 표시는 인증이 왜 실패했는지를 더 포함한다(예를 들어, 해시 하위부분들이 매칭되지 않았다거나, 특정 메타데이터가 인증되지 않았다는 것 등). 흐름은 동작(250)에서 종결된다.If
그러나, 해시들이 매칭된다고 결정되면, 흐름은 "예" 분기를 따라서 콘텐츠가 인증된다는 표시가 제공되는 동작(252)으로 진행한다. 일부 예들에서, 인증은 인증된 정보에 대한 표시, 더 많은 특정한 메타데이터(예를 들어, 완벽하지 않은 매칭은 메타데이터가 정확하지만 불완전하다는 것을, 예컨대 전체 이름이 아니라 남주인공/여주인공의 처음 두문자들과 성을 가지거나, 정확한 날짜가 아니라 일반적인 배포 연도를 가지는 등을 표시할 수 있음). 흐름은 동작(252)에서 종결된다.However, if it is determined that the hashes match, flow proceeds along the “yes” branch to
도 3a는 본 명세서에서 설명되는 AI-기반 트랜스코딩 기술에 따라서 콘텐츠를 트랜스코딩하기 위한 예시적인 방법(300)의 개관을 예시한다. 예들에서, 방법(300)의 양태들은 CDN의 노드, 예컨대 도 1a의 노드(104, 106 또는 108)에 의해서 수행된다. 다른 예로서, 방법(300)의 양태들은 콘텐츠 프로세서, 예컨대 도 1c의 콘텐츠 프로세서(180)에 의해서 수행될 수 있다.3A illustrates an overview of an
방법(300)은 콘텐츠의 표시가 수신되는 동작(302)에서 시작된다. 콘텐츠의 표시는 콘텐츠가 CDN에 추가되고 있을 때에 콘텐츠 소스, 예컨대 도 1a의 콘텐츠 소스(102)로부터 수신될 수 있다. 다른 예에서, 도 1a의 클라이언트 디바이스(110)로부터 수신될 수 있는 것처럼, 콘텐츠의 표시는 재생을 시작할 때에 클라이언트 디바이스로부터 수신될 수 있다. 예들에서, 콘텐츠의 표시는 요청된 다른 포맷 정보(예를 들어, 오디오 채널의 개수, 오디오 포맷, 색상 깊이 등) 중에서, 콘텐츠가 저장되었던 위치 및 콘텐츠에 대해서 요청된 해상도를 포함한다. 요청된 포맷 정보는 콘텐츠의 현재 포맷과 다를 수 있고, 예를 들어 요청된 포맷 정보는 더 높은 해상도 또는 더 많은 개수의 채널을 특정할 수 있다. 일부 예들에서, 이러한 표시는 요청된 포맷 정보를 포함할 필요가 없고, 그 대신에 요청된 포맷 정보는 디바이스 특성(예를 들어, 스크린 크기, 이용가능한 스피커 개수, 이용가능한 대역폭 등)에 기반하여 결정될 수 있다.The
흐름은 트랜스코딩 모델이 선택되는 동작(304)으로 진행한다. 예들에서, 동작(304)의 양태들은 모델 선택기, 예컨대 도 1c의 콘텐츠 프로세서(180)의 모델 선택기(182)에 의해서 수행된다. 예를 들어, 트랜스코딩 모델은 콘텐츠 메타데이터(예를 들어, 특정한 콘텐츠 타입을 나타낼 수 있는 장르, 남주인공/여주인공 등), 비디오 분석(예를 들어, 비트레이트, 프레임 복잡도, 명암(lightness/darkness)등), 원본 콘텐츠 해상도, 타겟 콘텐츠 해상도, 모션 벡터, 제조년도, 포맷 또는 코덱 타입, 및/또는 소비자 또는 다른 사용자로부터 수신된 피드백을 포함하지만 이들로 한정되는 것은 아닌 다양한 기준들에 따라서 트랜스코딩 모델들의 세트로부터 선택될 수 있다. 일부 예들에서, 동작(304)은 다수의 트랜스코딩 모델을 비교하여 어떤 트랜스코딩 모델을 적용할지를 결정하는 것을 포함한다. 도 3b의 방법(350)은 이러한 양태의 일 예를 예시하고, 더 상세히 후술된다.Flow proceeds to
동작(306)에서, 콘텐츠는 동작(304)에서 선택된 트랜스코딩 모델을 사용하여 트랜스코딩된다. 트랜스코딩은 트랜스코딩 엔진, 예컨대 트랜스코딩 엔진(186)에 의해서 수행될 수 있다. 본 명세서에서 설명되는 양태에 따르면, 콘텐츠를 트랜스코딩하기 위하여 다수의 트랜스코딩 모델이 사용될 수 있다. 예를 들어, 제 1 하위부분이 동작(304)에서 선택된 모델에 따라서 트랜스코딩될 수 있고, 그 후에 트랜스코딩이 일시 중지될 수 있으며, 흐름은 동작(304)으로 복귀하여 콘텐츠의 제 2 하위부분에 대한 새로운 트랜스코딩 모델을 선택할 수 있다. 이러한 양태가 동작(306)으로부터 동작(304)까지의 화살표로 예시된다. 따라서, 트랜스코딩 모델 성능은 동작(304)으로 복귀함으로써 주기적으로 평가될 수 있어서, 트랜스코딩 모델이 주어진 하위부분에 대한 모델 성능에 의존하여 변경될 수 있게 된다. 일부 예들에서, 콘텐츠 해상도는 변할 수 있고, 이것은 흐름이 동작(304)으로 복귀하게 할 수 있다. 다른 예들에서는, 비디오 프레임의 콘텐츠를 결정하거나 대상물이 언제 사라졌는지를 식별하기 위해서 대상물 검출 기법이 사용될 수 있는데, 이들 양자 모두는 흐름이 동작(304)으로 복귀하게 할 수 있다. 일부 예들에서, 적용되는 트랜스코딩 모델은 프레임별로 또는 임의의 다른 그래뉼래러티(granularity) 레벨(예를 들어, 모든 키프레임 또는 인프라프레임, 미리 결정된 개수의 프레임 이후 등)에 따라서 재평가될 수 있다. 더 나아가, 동작(304 및 306)이 순차적으로 발생하는 것처럼 설명되지만, 다른 양태들에서는 하위부분 트랜스코딩이 병렬적으로 일어날 수 있다는 것이 이해될 것이며, 이러한 경우에는 상이한 하위부분들이 상이한 트랜스코딩 모델에 따라서 동시에 트랜스코딩된다.In
마지막으로, 전술된 바와 같이, 상이한 트랜스코딩 모델이 인트라프레임, 예측된-프레임, 및/또는 양방향성-프레임에 적용될 수 있다. 따라서, 동작(306)은 콘텐츠를 트랜스코딩할 단일 트랜스코딩 모델을 적용하는 것으로 한정될 필요가 없다. 오히려, 동작(306)은 콘텐츠를 트랜스코딩하는 동안에 트랜스코딩 모델을 교번시킬 수도 있다. 다른 예로서, 제 1 트랜스코딩 모델은 콘텐츠의 비디오 트랙을 트랜스코딩하기 위해서 사용될 수 있고, 제 2 트랜스코딩 모델은 콘텐츠의 오디오 트랙을 트랜스코딩하기 위해서 사용될 수 있다. 콘텐츠를 트랜스코딩하기 위해서 언제 하나의 트랜스코딩 모델로부터 다른 트랜스코딩 모델로 전환할지를 결정하기 위하여 다양한 기법이 사용될 수 있다는 것이 이해될 것이다.Finally, as discussed above, different transcoding models may be applied to intra-frames, predicted-frames, and/or bidirectional-frames. Accordingly,
다른 예들에서, 동작(304)은 생략될 수 있고, 그 대신에 동작(306)은 콘텐츠의 어떤 하위부분을 트랜스코딩하기 위해서 어떤 트랜스코딩 모델이 사용되어야 하는지를 특정하는 트랜스코딩 레시피에 적어도 부분적으로 기반하여 수행될 수 있다. 트랜스코딩 레시피는 여러 가지 예들 중에서 요청된 해상도, 오디오 채널의 개수, 비트레이트, 및/또는 색상 깊이와 연관될 수 있어서, 트랜스코딩 레시피가 콘텐츠에 대한 요청 내에 제공된 요청된 포맷 정보(예를 들어, 동작(302)에서 수신된 바와 같음)에 기반하여 식별될 수 있게 한다. 이러한 예에서, 동작(304)을 포함하는 방법(300)은 다른 노드에서 수행되었을 수 있고, 또는 다른 예로서, 트랜스코딩 레시피가 이러한 임의의 트랜스코딩 이전에 생성되도록 동작(306)은 생략되었을 수도 있다.In other examples,
흐름은 트랜스코딩된 콘텐츠의 품질이 평가되는 동작(308)으로 진행한다. 동작(308)은 콘텐츠 트랜스코딩이 끝난 이후에 수행될 수 있고, 또는 다른 예들에서는 트랜스코딩 도중에 주기적으로 수행될 수도 있다. 동작(308)의 양태는 품질 평가기, 예컨대 도 1c의 콘텐츠 프로세서(180)의 품질 평가기(188)에 의해서 수행될 수 있다. 예를 들어, 결정은 프로그램적으로 이루어질 수 있고(예를 들어, 트랜스코딩 아티팩트를 검출하는 것, 레퍼런스 프레임을 트랜스코딩된 프레임과 비교하는 것 등에 의하여) 및/또는 명시적/암시적 사용자 입력에 기반할 수도 있다. 사용자 입력은 동일하거나 유사한 트랜스코딩 모델을 사용하는 이전에 트랜스코딩된 콘텐츠에 기반한 이력 사용자 입력일 수 있고, 여기에서 사용자는 트랜스코딩된 콘텐츠의 지각된 품질을 표시한다(예를 들어, 1 대 5의 스케일로, 품질이 양호했는지 여부의 이진 표시등으로).Flow proceeds to
결정 동작(310)에서, 품질이 임계를 만족시키는지 여부가 결정된다. 예들에서, 미리 결정된 오차 레이트 또는 품질 손실이 동작(308)에서 수행되는 평가와 비교된다. 다른 예들에서는, 미리 결정된 점수 임계가 사용자 입력과 비교된다. 다양한 다른 기법 및/또는 메트릭 및 연관된 임계 중 임의의 것이 품질을 평가하기 위해서 사용될 수 있다는 것이 이해될 것이다. 만일, 결정(310)에서, 품질 임계가 만족되지 않는다는 것이 결정되면, 흐름은 "아니오" 분기로 가서 동작(304)으로 복귀하고, 거기에서는 콘텐츠를 트랜스코딩하기 위해서 상이한 트랜스코딩 모델이 사용될 수 있다. 본 명세서에서 사용될 때, 트랜스코딩 모델은 다양한 설정 또는 다른 변수를 더 포함할 수 있어서, 상이한 트랜스코딩 모델이 변하는 설정 및/또는 변수를 가지는 동일한 베이스 트랜스코딩 모델을 적용하는 것을 포함할 수 있게 한다.At
그러나, 트랜스코딩된 콘텐츠가 품질 임계를 만족시킨다고 결정되면, 흐름은 그 대신에 "예"로 분기하여 동작(312)으로 진행하며, 거기에서는 트랜스코딩된 콘텐츠가 제공된다. 예들에서, 트랜스코딩된 콘텐츠는 소비자에게 재생되기 위해서 클라이언트 디바이스로 제공된다. 다른 예들에서, 트랜스코딩된 콘텐츠는 저장 및/또는 한 명 이상의 소비자로의 후속 전송을 위해서 CDN의 노드로 송신된다. 방법(300)은 사전-기록된 콘텐츠로 한정될 필요가 없고, 여러 가지 예들 중에서 스트리밍 또는 실시간 콘텐츠를 위해서 유사한 기법이 사용될 수도 있다. 방법(300)은 동작(312)에서 종결된다.However, if it is determined that the transcoded content satisfies the quality threshold, flow instead branches “yes” to
도 3b는 본 명세서에서 설명되는 AI-기반 트랜스코딩 기술에 따라서 트랜스코딩 모델을 선택하기 위한 예시적인 방법(350)의 개관을 예시한다. 예들에서, 방법(350)의 양태들은 CDN의 노드, 예컨대 도 1a의 노드(104, 106 또는 108)에 의해서 수행된다. 다른 예로서, 방법(350)의 양태들은 콘텐츠 프로세서, 예컨대 도 1c의 콘텐츠 프로세서(180)에 의해서 수행될 수 있다. 방법(350)의 양태는 도 3a의 방법(300)의 동작(304)의 일부로서 수행될 수 있다.3B illustrates an overview of an
방법(350)은 콘텐츠 프레임이 선택되는 동작(352)에서 시작된다. 예들에서, 선택된 콘텐츠 프레임은, 도 3a의 방법(300)의 양태를 수행할 수 있는 콘텐츠 프로세서에 의해서 트랜스코딩될 프레임이다. 다른 예들에서, 선택된 콘텐츠 프레임은 콘텐츠를 대표하는 것으로 결정된 키프레임 또는 프레임이다. 예를 들어, 프레임은, 여러 가지 예들 중에서 상대적으로 높은 정도의 움직임 또는 세부사항을 가지는 결과로서 선택될 수 있다.The
동작(354)에서, 대상물이 선택된 콘텐츠 프레임 내에서 검출된다. 동작(354)의 양태는 대상물 검출기, 예컨대 도 1c의 대상물 검출기(184)에 의해서 수행될 수 있다. 동작(354)은 다른 대상물 중에서, 하나 이상의 무생물인 대상물, 움직이는 문자, 및 남주인공/여주인공을 식별하는 것을 포함할 수 있다. 선택된 콘텐츠 프레임은 임의의 개수 및/또는 다양한 대상물 인식 머신 러닝 모델들에 따라서 처리될 수 있다. 예를 들어, 각각의 대상물 인식 머신 러닝 모델은 대상물의 특정한 서브세트를 인식하도록 훈련되었을 수 있고, 또는 다른 예들에서는 대상물 인식 머신 러닝 모델이 특정 타입의 콘텐츠에 따라서 훈련된다. 다양한 다른 대상물 검출 기법 중 임의의 기법이 사용될 수 있다는 것이 이해될 것이다(예를 들어, 프레임 내의 에지를 식별하는 것, 프레임들의 세트에 걸친 움직임을 분석하는 것 등). 다른 예들에서는, 방법(350)의 모델 선택 기법이 모델 성능을 특히 검출된 대상물에 대해서 평가하지 않을 수 있도록, 동작(354)이 파선 박스를 사용하여 예시됨으로써 동작(354)이 생략될 수 있다는 것을 표시한다.At
흐름은 콘텐츠 프레임의 해상도가 감소된 동작(356)으로 진행한다. 예들에서, 감소된 해상도는 본 명세서에서 설명된 AI-기반 트랜스코딩 기법들을 사용하여 생성될 시각적 데이터의 양에 기반하여 결정된다. 예를 들어, 1080p HD(예를 들어, 1920x1080) 콘텐츠를 4K 콘텐츠(예를 들어, 3840x2160)로 업스케일링하면 픽셀 데이터가 네 배 증가되게 된다. 따라서, 1080p HD 소스는 동작(356)에서 4의 인자에 의해 다운스케일링될 수 있다((예를 들어, 960x540으로). 임의의 개수의 그 외의 다운스케일링된 해상도들이 사용될 수 있다는 것이 이해될 것이다. 동작(356)은, 다른 예들에서는 동작(356)이 생략될 수 있다는 것을 표시하도록 점선 박스를 사용하여 예시된다. 예를 들어, 동작(356)은 모델 처리 결과가 소스 콘텐츠 프레임과 비교되지 않고 서로에 비교될 경우에 생략될 수 있다.Flow proceeds to
동작(358)에서, 콘텐츠 프레임은 트랜스코딩 모델들의 세트를 사용하여 처리된다. 예들에서, 콘텐츠 프레임을 처리하는 것은, 다운스케일링된 콘텐츠 프레임(예를 들어, 동작(356)에서 생성되었을 수 있음)을 각각의 트랜스코딩 모델을 사용하여 업스케일링하여 동작(352)에서 선택되었던 원본 콘텐츠 프레임과 같거나 유사한 해상도를 가지는 트랜스코딩된 콘텐츠 프레임을 제공하는 것을 포함한다. 일부 예들에서, 콘텐츠 프레임을 트랜스코딩하는 것은 동일한 베이스 모델을 활용하지만 콘텐츠 프레임을 트랜스코딩하기 위해서 사용되는 설정 또는 변수를 변경하는 것을 포함한다. 동작(358)에서 사용되는 트랜스코딩 모델들의 세트는 콘텐츠를 트랜스코딩하기 위해서 CDN에 의해 사용되는 트랜스코딩 모델들의 적어도 하나의 서브세트일 수 있다. 일부 예들에서, 트랜스코딩 모델들의 세트는 콘텐츠 메타데이터(예를 들어, 특정한 콘텐츠 타입을 나타낼 수 있는 장르, 남주인공/여주인공 등), 비디오 분석(예를 들어, 비트레이트, 프레임 복잡도, 명암(lightness/darkness)등), 원본 콘텐츠 해상도, 타겟 콘텐츠 해상도, 모션 벡터, 제조년도, 포맷 또는 코덱 타입, 및/또는 소비자 또는 다른 사용자로부터 수신된 피드백을 포함하지만 이들로 한정되는 것은 아닌 다양한 기준들에 따라서 선택된다.At
흐름은 트랜스코딩된 콘텐츠 프레임의 세트가 품질에 따라서 점수매김되는 동작(360)으로 진행한다. 예들에서, 트랜스코딩된 콘텐츠 프레임은 프로그램적으로 이루어질 점수매김되고(예를 들어, 트랜스코딩 아티팩트를 검출하는 것, 레퍼런스 프레임을 트랜스코딩된 프레임과 비교하는 것 등에 의하여) 및/또는 명시적/암시적 사용자 입력에 기반할 수도 있다. 트랜스코딩된 콘텐츠 프레임은 개별적으로 점수매김되거나, 서로에 대해서 점수매김되거나, 및/또는 동작(352)에서 선택되었던 콘텐츠 프레임에 기반하여 점수매김된다. 전술된 바와 같이, 사용자 입력은 트랜스코딩된 프레임들의 나란한 디스플레이로부터 수신될 수 있고, 또는, 여러 가지 예들 중에서 동일하거나 유사한 트랜스코딩 모델을 사용한 이전에 트랜스코딩된 콘텐츠에 기반한 이력 사용자 입력일 수도 있다. 예들에서, 동작(360)의 양태들은 품질 평가기, 예컨대 도 1c의 콘텐츠 프로세서(180)의 품질 평가기(188)에 의해서 수행된다.The flow proceeds to
동작(362)에서, 최고 점수의 트랜스코딩 모델의 표시가 제공된다. 예들에서, 이러한 표시는 트랜스코딩 엔진, 예컨대 도 1c의 콘텐츠 프로세서(180)의 트랜스코딩 엔진(186)에게 제공된다. 일 예로서, 이러한 표시는 도 3a의 방법(300)의 동작(306)에서 콘텐츠를 트랜스코딩하기 위하여 사용될 수 있다. 예들에서, 이러한 표시는 트랜스코딩된 콘텐츠 프레임을 포함함으로써, 트랜스코딩 엔진이 동작(352)에서 선택되었던 콘텐츠 프레임을 다시 트랜스코딩할 필요가 없게 한다. 방법(350)이 하나의 콘텐츠 프레임을 선택 및 처리하는 것으로 설명되지만, 다른 예들에서는 여러 개의 콘텐츠 프레임이 처리될 수 있다는 것이 이해될 것이다. 예를 들어, 방법(350)은 프레임들의 세트에 대한 트랜스코딩 모델을 결정할 수 있고, 그 후에 모델 선택 프로세스가 동일하거나 상이한 트랜스코딩 모델을 식별하도록 다시 수행될 수 있다. 이러한 예에서, 이러한 표시는 트랜스코딩 모델이 사용되어야 하는 콘텐츠 하위부분(예를 들어, 타임스탬프 등에 따른 여러 프레임)의 표시를 포함한다. 흐름은 동작(362)에서 종결된다.In
도 4는 본 발명의 실시형태들 중 하나 이상이 구현될 수 있는 적절한 동작 환경(400)의 일 예를 예시한다. 이것은 적절한 동작 환경의 하나의 예일 뿐이고, 사용 범위 또는 기능성에 대해서 임의의 제한을 제안하려는 의도가 아니다. 사용하기에 적합할 수 있는 잘 알려진 다른 컴퓨팅 시스템, 환경, 및/또는 구성은, 개인용 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩탑 디바이스, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 스마트 폰과 같은 프로그래밍가능한 소비자 전자제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 이러한 시스템 또는 디바이스 중 임의의 것을 포함하는 분산 컴퓨팅 환경 등을 비한정적으로 포함한다.4 illustrates an example of a
그 가장 기본적인 구성에서, 동작 환경(400)은 통상적으로 적어도 하나의 처리 유닛(402) 및 메모리(404)를 포함할 수 있다. 정확한 구성 및 컴퓨팅 디바이스의 타입에 의존하여, 메모리(404)(무엇보다도, 본 명세서에서 개시된 시스템 및 방법들을 구현 또는 수행하기 위한 API, 프로그램 등 및/또는 다른 컴포넌트 또는 명령 등을 저장함)는 휘발성이거나(예컨대, RAM), 비-휘발성이거나(예컨대, ROM, 플래시 메모리 등), 또는 양자의 몇 가지 조합일 수 있다. 이러한 가장 기본적인 구성이 도 4에서 쇄선(406)으로 표시된다. 더 나아가, 환경(400)은 자기 디스크 또는 광학 디스크 또는 테이프를 비한정적으로 포함하는 저장 디바이스(착탈식(408), 및/또는 비-착탈식(410) 저장소)를 더 포함할 수 있다. 이와 유사하게, 환경(400)은 키보드, 마우스, 펜, 보이스 입력 등과 같은 입력 디바이스(들)(414) 및/또는 디스플레이, 스피커, 프린터 등과 같은 출력 디바이스(들)(416)를 더 가질 수 있다. 환경 내에는 LAN, WAN, 포인트-투-포인트 등과 같은 하나 이상의 통신 연결(412)이 더 포함될 수 있다.In its most basic configuration, operating
동작 환경(400)은 적어도 일부 형태의 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 판독가능 매체는 처리 유닛(402) 또는 이러한 동작 환경을 포함하는 다른 디바이스에 의해서 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 예를 들어, 컴퓨터 판독가능한 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 예시적인 컴퓨터 저장 매체는 정보의 저장을 위한 임의의 방법 또는 기술, 예컨대 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터로 구현된 휘발성 및 비휘발성, 착탈식 및 비-착탈식 매체를 포함할 수도 있다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크들(DVD) 또는 다른 광학 저장소, 자기 카세트들, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 또는 원하는 정보를 저장하기 위하여 사용될 수도 있는 임의의 다른 비일시적 매체를 포함할 수 있지만 이들로 한정되는 것은 아니다. 컴퓨터 저장 매체는 통신 매체를 포함하지 않을 수도 있다.
통신 매체는 컴퓨터 판독가능 명령, 데이터 구조들, 프로그램 모듈, 또는 다른 데이터를 반송파 또는 다른 전송 매커니즘과 같은 변조된 데이터 신호 내에 구현할 수 있고, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 이러한 신호 내에 정보를 인코딩하기 위하여 자신의 특성 중 하나 이상이 설정되거나 변경되게 하는 신호를 의미할 수 있다. 예를 들어, 통신 매체는 유선 네트워크 또는 직접 연결과 같은 유선 매체, 및 음향, 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) 디바이스 또는 다른 공통 네트워크 노드일 수 있고, 전술된 요소 및 언급되지 않은 요소들 중 많은 것들 또는 전부를 통상적으로 포함한다. 논리적 연결은 이용가능한 통신 매체에 의해 지원되는 임의의 방법을 포함할 수 있다. 이러한 네트워킹 환경은 사무소, 기업 컴퓨터 네트워크, 인트라넷 및 인터넷에서는 흔한 것이다.
본 명세서에서 설명되는 상이한 양태들은 본 명세서에서 개시된 시스템 및 방법들을 구현하고 수행하기 위해서 구현 및 수행 소프트웨어, 하드웨어, 또는 소프트웨어 및 하드웨어의 조합을 사용하여 채용될 수 있다. 비록 명세서 전체에서 특정한 디바이스가 특정한 기능을 수행하는 것으로 언급되었지만, 당업자는 이러한 디바이스가 예를 들기 위해서 제공된 것이고, 본 발명의 범위에서 벗어나지 않으면서 본 명세서에서 개시된 기능성을 수행하기 위해서 다른 디바이스들이 채용될 수 있다는 것을 인정할 것이다.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
더욱이, 본 발명의 예는 이산 전자 소자, 로직 게이트를 포함하는 패키징되거나 집적된 전자 칩, 마이크로프로세서를 활용하는 회로를 포함하는 전기 회로 내에서, 또는 전자 소자 또는 마이크로프로세서를 포함하는 단일 칩에서 실시될 수 있다. 예를 들어, 본 발명의 예는 도 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
본 명세서는 첨부 도면을 참조하여 본 발명의 기술의 일부 양태를 설명했는데, 도면에서는 가능한 실시형태 중 일부만이 도시되었다. 그러나, 당업자들이 이해할 수 있는 바와 같이, 다른 양태들이 서로 다른 많은 형태로 구현될 수도 있고 본 명세서에서 진술되는 실시예로만 제한되는 것으로 해석되어서는 안 된다. 오히려, 이러한 양태들은 본 명세서가 철저하고 완전해지며, 가능한 실시형태들의 범위를 당업자들에게 완전하게 제공하도록 제공되었다.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 트랜스코딩된 프레임을 생성하고,
제 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.
상기 트랜스코딩 모델을 결정하는 동작은, 상기 콘텐츠 프레임의 대상물을 인식하는 것을 더 포함하고,
상기 트랜스코딩 모델을 결정하도록, 상기 제 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 부분이며,
상기 동작들의 세트는,
트랜스코딩 모델들의 세트로부터, 상기 콘텐츠를 트랜스코딩할 제 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 요청이며,
상기 동작들의 세트는,
데이터 저장소 내에 트랜스코딩된 콘텐츠를 저장하는 동작;
상기 제 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.
상기 동작들의 세트는,
상기 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.
상기 요청된 포맷 정보는 요청된 오디오 포맷 정보 또는 요청된 비디오 포맷 정보 중 적어도 하나를 포함하는, 시스템.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.
상기 방법은,
상기 클라이언트 디바이스로부터 상기 콘텐츠에 대한 요청을 수신하는 단계를 더 포함하고,
상기 제 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.
상기 콘텐츠에 대한 요청은 요청된 포맷 정보를 포함하고,
상기 트랜스코딩 레시피는 상기 요청된 포맷 정보에 적어도 부분적으로 기반하여 결정되는, 콘텐츠 트랜스코딩 방법.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.
상기 클라이언트 디바이스는 제 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.
상기 콘텐츠의 제 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.
상기 방법은,
상기 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.
상기 트랜스코딩 모델을 결정하는 단계는,
상기 콘텐츠로부터 콘텐츠 프레임을 선택하는 것;
상기 콘텐츠 프레임을 다운스케일링하는 것;
다운스케일링된 콘텐츠 프레임을,
제 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.
상기 트랜스코딩 모델을 결정하는 단계는, 상기 콘텐츠 프레임의 대상물을 인식하는 것을 더 포함하고,
상기 트랜스코딩 모델을 결정하도록, 상기 제 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.
상기 트랜스코딩 모델은 제 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.
상기 클라이언트 디바이스는 제 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.
상기 방법은,
상기 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.
상기 요청된 포맷 정보는 요청된 오디오 포맷 정보 또는 요청된 비디오 포맷 정보 중 적어도 하나를 포함하는, 콘텐츠 트랜스코딩 방법.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.
상기 동작들의 세트는,
상기 콘텐츠와 연관된 스마트 콘트랙트(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.
상기 동작들의 세트는,
적어도 상기 새로운 레코드를 식별하도록 상기 분산 원장을 처리하는 동작; 및
상기 새로운 레코드에 적어도 부분적으로 기반하여, 상기 콘텐츠와 연관된 계좌 표시(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.
상기 콘텐츠 해시는 제 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.
상기 콘텐츠의 표시는 상기 콘텐츠와 연관된 메타데이터를 더 포함하고,
상기 메타데이터는 상기 콘텐츠 해시를 생성하기 위해서 사용되지 않는, 시스템.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.
상기 메타데이터의 적어도 일부는 상기 콘텐츠 레코드 내에 저장되는, 시스템.26. The method of claim 25,
and at least a portion of the metadata is stored within the content record.
상기 메타데이터의 적어도 일부는 메타데이터 보관소(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.
콘텐츠 소스로부터, 콘텐츠의 표시를 수신하는 단계;
상기 콘텐츠와 연관된 스마트 콘트랙트를 생성하는 단계 - 상기 스마트 콘트랙트는 트리거와 연관됨 -;
상기 스마트 콘트랙트를 분산 원장 내에 저장하는 단계;
클라이언트 디바이스로부터, 상기 콘텐츠에 대한 요청을 수신하는 단계;
상기 클라이언트 디바이스로부터의 상기 콘텐츠에 대한 요청에 기반하여 상기 트리거를 식별하는 단계;
상기 트리거를 식별하는 것에 응답하여, 새로운 레코드를 상기 분산 원장 내에 생성하도록 상기 스마트 콘트랙트를 실행하는 단계; 및
상기 요청에 응답하여, 상기 콘텐츠의 적어도 일부를 제공하는 단계
를 포함하는, 스마트 콘트랙트 생성 방법.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.
상기 방법은,
적어도 상기 새로운 레코드를 식별하도록 상기 분산 원장을 처리하는 단계; 및
상기 새로운 레코드에 적어도 부분적으로 기반하여, 상기 콘텐츠와 연관된 계좌 표시를 생성하는 단계; 및
상기 콘텐츠 소스에 상기 계좌 표시를 제공하는 단계
를 더 포함하는, 스마트 콘트랙트 생성 방법.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.
상기 방법은,
상기 콘텐츠에 기반하여 콘텐츠 해시를 생성하는 단계;
상기 콘텐츠 해시를 콘텐츠 레코드로서 상기 분산 원장 내에 저장하는 단계
를 더 포함하는, 스마트 콘트랙트 생성 방법.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.
상기 콘텐츠 해시는 제 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.
상기 콘텐츠의 표시는 상기 콘텐츠와 연관된 메타데이터를 더 포함하고,
상기 메타데이터는 상기 콘텐츠 해시를 생성하기 위해서 사용되지 않는, 스마트 콘트랙트 생성 방법.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.
상기 콘텐츠는 상기 콘텐츠 소스로부터의 스트리밍 콘텐츠의 하위부분인, 스마트 콘트랙트 생성 방법.29. The method of claim 28,
wherein the content is a sub-portion of streaming content from the content source.
콘텐츠 소스로부터 콘텐츠의 표시를 수신하는 단계;
상기 콘텐츠를 데이터 저장소 내에 저장하는 단계;
상기 콘텐츠에 기반하여 콘텐츠 해시를 생성하는 단계;
상기 콘텐츠 해시를 콘텐츠 레코드로서 분산 원장 내에 저장하는 단계;
클라이언트 디바이스로부터, 상기 콘텐츠에 대한 요청을 수신하는 단계; 및
상기 요청에 응답하여, 상기 데이터 저장소로부터 상기 콘텐츠의 적어도 일부를 제공하는 단계
를 포함하는, 콘텐츠 추가 방법.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.
상기 방법은,
상기 콘텐츠와 연관된 스마트 콘트랙트를 생성하는 단계 - 상기 스마트 콘트랙트는 트리거와 연관됨 -;
상기 클라이언트 디바이스로부터의 상기 콘텐츠에 대한 요청에 기반하여 상기 트리거를 식별하는 단계; 및
상기 트리거를 식별하는 것에 응답하여, 상기 분산 원장 내에 새로운 레코드를 생성하도록 상기 스마트 콘트랙트를 실행하는 단계
를 더 포함하는, 콘텐츠 추가 방법.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.
상기 방법은,
적어도 상기 새로운 레코드를 식별하도록 상기 분산 원장을 처리하는 단계; 및
상기 새로운 레코드에 적어도 부분적으로 기반하여, 상기 콘텐츠와 연관된 계좌 표시를 생성하는 단계; 및
상기 콘텐츠 소스에 상기 계좌 표시를 제공하는 단계
를 더 포함하는, 콘텐츠 추가 방법.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.
상기 콘텐츠 해시는 제 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.
상기 콘텐츠의 표시는 상기 콘텐츠와 연관된 메타데이터를 더 포함하고,
상기 메타데이터는 상기 콘텐츠 해시를 생성하기 위해서 사용되지 않는, 콘텐츠 추가 방법.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.
상기 메타데이터의 적어도 일부는 상기 콘텐츠 레코드 내에 저장되는, 콘텐츠 추가 방법.39. The method of claim 38,
wherein at least a portion of the metadata is stored within the content record.
상기 메타데이터의 적어도 일부는 메타데이터 보관소 내에 저장되고, 상기 콘텐츠 해시와 연관되는, 콘텐츠 추가 방법.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.
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)
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 |
-
2021
- 2021-09-22 AU AU2021347829A patent/AU2021347829A1/en active Pending
- 2021-09-22 EP EP21791542.0A patent/EP4218247A1/en active Pending
- 2021-09-22 WO PCT/US2021/051482 patent/WO2022066717A1/en active Application Filing
- 2021-09-22 JP JP2023518053A patent/JP2023544106A/en active Pending
- 2021-09-22 KR KR1020237013925A patent/KR20230073314A/en unknown
- 2021-09-22 CA CA3193490A patent/CA3193490A1/en active Pending
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 |