Dynamic allocation of CPU cycles vis-a-vis virtual machines in video stream processing

US10897616B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10897616-B2
Application numberUS-201816160918-A
CountryUS
Kind codeB2
Filing dateOct 15, 2018
Priority dateDec 8, 2014
Publication dateJan 19, 2021
Grant dateJan 19, 2021

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.

Approaches for dynamically allocating CPU cycles for use in processing a video stream. Video complexity information for two or more digital video streams actively being processed by one or more video encoders is determined at periodic intervals. Video complexity information describes the complexity of digital video carried by the digital video streams across a bounded number of consecutive digital frames which includes digital frames not yet processed by the one or more video encoders. A determination is made as to whether a number of CPU cycles allocated for processing a particular digital video stream should be adjusted based on the determined video complexity information. The number of CPU cycles allocated for processing the particular digital video stream may be dynamically adjusted by changing an amount of CPU cycles allocated to a virtual machine in which the stream is processed or by processing the stream in a different virtual machine.

First claim

Opening claim text (preview).

What is claimed is: 1. A non-transitory computer-readable storage medium storing one or more sequences of instructions for dynamically allocating CPU cycles for use in processing a video stream, which when executed by one or more processors, causes: upon the occurrence of each periodic interval in a series of periodic intervals, performing: (a) determining video complexity information, for two or more digital video streams that are each actively being processed by a separate encoding module of a single video encoder, associated with one or more future intervals in said series of periodic intervals; and (b) determining whether an amount of CPU cycles allocated to processing a particular digital video stream of the two or more digital video streams should be adjusted in a particular future interval in said series of periodic intervals based on: (i) a dynamically assessed impact on video quality in said two or more digital video streams after being encoded by said single video encoder after adjusting the amount of CPU cycles allocated to one or more separate encoding modules of said single video encoder, (ii) the determined video complexity information for the two or more digital video streams during said particular future interval, and (iii) assigned capabilities of a virtual machine in which the particular digital video stream is being processed, wherein each encoding module of said single video encoder is implemented solely in software and not in hardware, wherein said single video encoder comprises a number of physical CPUs, and wherein each encoding module is allocated to use a certain allotment of CPU cycles, of the number of physical CPUs, in each periodic interval of said series of periodic intervals. 2. The non-transitory computer-readable storage medium of claim 1 , wherein each periodic interval in the series of periodic intervals corresponds to one or more frames of digital video in the particular video stream. 3. The non-transitory computer-readable storage medium of claim 1 , wherein each periodic interval in the series of periodic intervals corresponds to a period of time or a certain number of CPU clock cycles. 4. The non-transitory computer-readable storage medium of claim 1 , wherein the determined video complexity information describes the complexity of digital video carried by the two or more digital video streams across a bounded number of consecutive digital frames, wherein said bounded number of consecutive digital frames includes digital frames not yet processed by said single video encoder. 5. The non-transitory computer-readable storage medium of claim 1 , wherein the execution of the one or more sequences of instructions further causes: causing the particular digital video stream to be processed within a new virtual machine having a different amount of CPU cycles allocated thereto than said virtual machine. 6. The non-transitory computer-readable storage medium of claim 1 , wherein the execution of the one or more sequences of instructions further causes: dynamically adjusting the amount of CPU cycles allocated to said virtual machine processing the particular digital video stream. 7. The non-transitory computer-readable storage medium of claim 1 , wherein the execution of the one or more sequences of instructions further causes: dynamically adjusting the amount of CPU cycles allocated to processing the particular digital video stream by maximizing a measure of optimal video quality calculated for the two or more digital video streams using, at least in part, the determined video complexity information. 8. The non-transitory computer-readable storage medium of claim 7 , wherein maximizing the measure of optimal video quality for the two or more digital video streams comprises: identifying one or more features in at least one of the two or more digital video streams in which support for will be reduced or ceased during said periodic interval. 9. The non-transitory computer-readable storage medium of claim 7 , wherein the measure of optimal video quality for the two or more digital video streams is determined by assessing the video quality of at least one of the two or more digital video streams at a greater importance than another digital video stream in the two or more digital video streams. 10. A non-transitory computer-readable storage medium storing one or more sequences of instructions for dynamically allocating CPU cycles for use in processing a video stream, which when executed by one or more processors, causes: upon the occurrence of each periodic interval in a series of periodic intervals, performing: (a) determining video complexity information for two or more digital video streams actively being processed by a single video encoder; and (b) determining whether an amount of CPU cycles processing a particular digital video stream of the two or more digital video streams should be adjusted based on the determining video complexity information and assigned capabilities of a virtual machine in which the particular digital video stream is being processed; and dynamically increasing the amount of CPU cycles allocated to the virtual machine based on, at least in part, the determined video complexity information, wherein dynamically increasing comprising: assessing a first impact of decreasing the amount of CPU cycles allocated to the virtual machine processing at least one digital video stream of the two or more digital video streams, and assessing a second impact of increasing the amount of CPU cycles allocated to the virtual machine processing the particular digital video stream proportional to a total amount of CPU cycles reduced from said at least one digital video stream. 11. An apparatus for dynamically allocating CPU cycles for use in processing a video stream, comprising: one or more processors; and one or more non-transitory, machine-readable storage mediums storing one or more sequences of instructions, which when executed, cause: upon the occurrence of each periodic interval in a series of periodic intervals, performing: (a) determining video complexity information, for two or more digital video streams that are each actively being processed by a separate encoding module of a single video encoder, associated with one or more future intervals in said series of periodic intervals; and (b) determining whether an amount of CPU cycles allocated to processing a particular digital video stream of the two or more digital video streams should be adjusted in a particular future interval in said series of periodic intervals based on (i) a dynamically assessed impact on video quality in said two or more digital video streams after being encoded by said single video encoder after adjusting the amount of CPU cycles allocated to one or more separate encoding modules of said single video encoder, (ii) the determined video complexity information for the two or more digital video streams during said particular future interval, and (iii) assigned capabilities of a virtual machine in which the particular digital video stream is being processed, wherein each encoding module of said single video encoder is implemented solely in software and not in hardware, wherein said single video encoder comprises a number of physical CPUs, and wherein each encoding module is allocated to use a certain allotment of CPU cycles, of the number of physical CPUs, in each periodic interval of said series of periodic intervals. 12. The apparatus of claim 11 , wherein the determined video complexity information describes the complexity of digital video carried by the two or more digital video streams across a bounded number of consecutive digital frames, wherein said bounded

Assignees

Inventors

Classifications

  • Incoming video signal characteristics or properties · CPC title

  • the unit being bits, e.g. of the compressed video stream · CPC title

  • Data rate or code amount at the encoder output · CPC title

  • H04N19/127Primary

    Prioritisation of hardware or computational resources · CPC title

  • using parallelised computational arrangements · CPC title

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 US10897616B2 cover?
Approaches for dynamically allocating CPU cycles for use in processing a video stream. Video complexity information for two or more digital video streams actively being processed by one or more video encoders is determined at periodic intervals. Video complexity information describes the complexity of digital video carried by the digital video streams across a bounded number of consecutive digi…
Who is the assignee on this patent?
Harmonic Inc
What technology area does this patent fall under?
Primary CPC classification H04N19/127. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jan 19 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).