Segmented parallel encoding with frame-aware, variable-size chunking

US2016337675A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016337675-A1
Application numberUS-201615219064-A
CountryUS
Kind codeA1
Filing dateJul 25, 2016
Priority dateNov 6, 2011
Publication dateNov 17, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

The subject matter herein generally relates to transcoding content, typically audio/video files though not limited to such, from one version to another in preparation for online streaming or other delivery to end users. Such transcoding may involve converting from one format to another (e.g., changing codecs or container formats), or creating multiple versions of an original source file in different bitrates, frame-sizes, or otherwise, to support distribution to a wide array of devices and to utilize performance-enhancing technologies like adaptive bitrate streaming. A transcoding platform is described herein that, in certain embodiments, leverages distributed computing techniques to transcode content in parallel across a platform of machines that are preferably idle or low-utilization resources of a content delivery network. The transcoding system also utilizes, in certain embodiments, improved techniques for segmenting the original source file so as to enable different segments to be sent to different machines for parallel transcodes.

First claim

Opening claim text (preview).

1 .- 17 . (canceled) 18 . A distributed computing system for transcoding content in parallel on a plurality of machines coupled via a computer network, the system comprising: a first machine programmed to assist in transcoding and running a first transcoding process, the first machine comprising circuitry forming one or more processors and memory holding computer program instructions to execute on the one or more processors, the execution of the computer program instructions providing the first transcoding process; a second machine programmed to assist in transcoding and running a second transcoding process, the second machine comprising circuitry forming one or more processors and memory holding computer program instructions to execute on the one or more processors, the execution of the computer program instructions providing the second transcoding process; a management machine to manage and coordinate transcoding processes, the management machine comprising circuitry forming one or more processors and memory holding computer program instructions to execute on the one or more processors; wherein, upon execution of the instructions, the management machine receives a request to perform a transcoding process, the request comprising a request to convert a file from a first version to a second version, the first version being an original version of the file and the second version being an output file of the requested transcoding process; wherein, upon execution of the instructions, the management server receives the first version of the file, the file comprising a first plurality of video frames organized into a plurality of groups-of-pictures (GoPs), each of the first plurality of GoPs beginning with an I-frame and further including at least one of: a B frame and a P frame; wherein the requested transcoding process comprises requesting conversion of the first version of the file to a second version of the file that comprises a second plurality of GoPs, each of the second plurality of GoPs beginning with an I-frame and further including at least one of: a B frame and a P frame; wherein, upon execution of the instructions, the management server determines that a particular GoP, which is one of the first plurality of GoPs in the received first version of the file, is an open GoP, wherein an open GoP is a GoP ending with a B-frame, and upon said determination: creates a first segment from the received first version of the file, the first segment consisting of all frames in the particular GoP, and the I-frame that begins the GoP immediately following the particular GoP in the first version of the file, sends the first segment to the first machine, creates a second segment from the received first version of the file, the second segment comprising all frames in another GoP, which is another one of the first plurality of GoPs in the received first version of the file, and is distinct from the particular GoP; sends the second segment to the second machine; the first machine comprising the one or more processors and the memory thereof, the memory holding computer program instructions that, upon execution by the one or more processors, cause the first machine to execute the first transcoding process to receive the first segment from the management machine, and from the first segment create a particular one of the second plurality of GoPs for the second version of the file, whereby increasing transcoding speed relative to the number of encoders and reducing the encoding time; the second machine comprising the one or more processors and the memory thereof, the memory holding computer program instructions that, upon execution by the one or more processors, cause the second machine to execute the second transcoding process to receive the second segment from the management machine, and from the second segment create another one of the second plurality of GoPs for the second version of the file, distinct from the particular one of the second GoPs created by the first machine, whereby increasing transcoding speed relative to the number of encoders and reducing the encoding time. 19 . The distributed computing system of claim 18 , wherein the requested transcoding process comprises changing one or more characteristics of the file, the one or more characteristics comprising any of: a codec used to encode data in the file, a container format of the file, one or more encoding parameters, container format parameters, a bit-rate of encoded data in a file, an image resolution for data in a file, a frame size for data in a file, an aspect ratio for data in a file, a compression setting used to encode data in a file, an audio setting, a color space, and, an interlacing characteristic for data in a file. 20 . A method performed in a distributed computing system for transcoding content in parallel on a plurality of machines coupled via a computer network, the distributed computing system comprising a first machine programmed to assist in transcoding and running a first transcoding process, the first machine comprising circuitry forming one or more processors and memory holding computer program instructions to execute on the one or more processors, the execution of the computer program instructions providing the first transcoding process, a second machine programmed to assist in transcoding and running a second transcoding process, the second machine comprising circuitry forming one or more processors and memory holding computer program instructions to execute on the one or more processors, the execution of the computer program instructions providing the second transcoding process, and a management machine to manage and coordinate the transcoding process, the management machine comprising circuitry forming one or more processors and memory holding computer program instructions to execute on the one or more processors, the method comprising: upon execution of the instructions of the management machine, the management machine: receiving a request to perform a transcoding process, the request comprising a request to convert a file from a first version to a second version, the first version being the original version of the file and the second version being the output file of the requested transcoding process; receiving the first version of the file, the file comprising a first plurality of video frames organized into a plurality of groups-of-pictures (GoPs), each of the first plurality of GoPs beginning with an I-frame and further including at least one of: a B frame and a P frame; wherein the requested transcoding process comprises requesting conversion of the first version of the file to a second version of the file that comprises a second plurality of GoPs, each of the second plurality of GoPs beginning with an I-frame and further including at least one of: a B frame and a P frame; determining that a particular GoP, which is one of the first plurality of GoPs in the received first version of the file, is an open GoP, wherein an open GoP is a GoP ending with a B-frame, and upon said determination: creating a first segment from the received first version of the file, the first segment consisting of all frames in the particular GoP and the I-frame that begins the GoP immediately following the particular GoP in the first version of the file, sending the first segment to the first machine; creating a second segment from the received first version of the file, the second segment comprising all frames in another GoP, which is another one of the first plurality of GoPs in the received first version of the file, and is distinct from the particular GoP; sending the second segment to the second machine; upon execution of the instructions of the first machine, the first machine receiving the first segment from the management machine, and from the first segment creating a partic

Assignees

Inventors

Classifications

  • by decomposing the content in the time domain, e.g. in time segments · CPC title

  • using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream · CPC title

  • the unit being a group of pictures [GOP] · CPC title

  • by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo (conversion of standards in analog television systems H04N7/01) · CPC title

  • Electricity · mapped topic

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016337675A1 cover?
The subject matter herein generally relates to transcoding content, typically audio/video files though not limited to such, from one version to another in preparation for online streaming or other delivery to end users. Such transcoding may involve converting from one format to another (e.g., changing codecs or container formats), or creating multiple versions of an original source file in diff…
Who is the assignee on this patent?
Akamai Tech Inc
What technology area does this patent fall under?
Primary CPC classification H04N21/234309. Mapped technology areas include Electricity.
When was this patent published?
Publication date Thu Nov 17 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).