IP Library › Granted Patent US 12,581,136
Granted Patent B2
US 12,581,136 · App. 18/002,760 · Granted Mar 17, 2026

Workload allocation and processing in cloud-based coding of HDR video

Inventors: Guan-Ming Su (Fremont, CA); Harshad Kadu (Santa Clara, CA); Neeraj J. Gadgil (Pune, IN)
H04N19/98G06F9/50H04N19/192H04N19/436
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,581,136
App. No.
18/002,760
Granted
Mar 17, 2026
Kind
B2
Abstract

In a cloud-based system for encoding high dynamic range (HDR) video, a computing node is assigned to be a dispatcher node, segmenting the input video into scenes and generating a scene to segment allocation to be used by other computing nodes. The scene to segment allocation process includes one or more iterations with an initial random assignment of scenes to computing nodes, followed by a refined assignment based on optimizing the allocation cost across all the computing nodes. Methods to generate scene-based forward and backward reshaping functions to optimize video coding and improve the coding efficiency of reshaping-related metadata are also examined.

Claims (56)

1 . A method for allocating scenes of a sequence of scenes to be encoded by a plurality of computing nodes, the method comprising:

receiving a sequence of scenes, wherein each scene comprises one or more video frames; and

performing one or more assignment iterations to generate a best output assignment in which each scene of the sequence of scenes is scheduled for encoding at a particular computing node of M computing nodes, wherein M>1, wherein performing the one or more assignment iterations comprises:

for an assignment iteration in the one or more assignment iterations:

generating, for each computing node, an initial random assignment of M segments of scenes of the sequence of scenes to the M computing nodes, wherein each segment of scenes in the M segments of scenes of the sequence of scenes is assigned in the initial random assignment to a respective computing node of the M computing nodes;

performing, for each computing node, a refine-assignment step ( 310 ) based on the initial random assignment to generate a refined assignment of the M segments of scenes of the sequence of scenes to the M computing nodes, wherein each segment of scenes in the M segments of scenes of the sequence of scenes is assigned in the refined assignment to a respective computing node of the M computing nodes; wherein a refined assignment cost reflecting a workload imposed on the respective computing node when encoding assigned scenes in the segment of scenes is generated; and

updating a best assignment cost and the best output assignment based on the refined assignment such that a uniformity of workload distribution across the M computing nodes is maximized;

wherein each node in the M computing nodes is assigned in the initial random assignment with first scenes that are consecutive in the sequence of scenes; wherein each node in the M computing nodes is assigned in the refined assignment with second scenes that are consecutive in the sequence of scenes.

2 . The method of claim 1 , wherein maximizing the uniformity of workload distribution across the computing nodes comprises minimizing an overall refined assignment cost for the M computing nodes.

3 . The method of claim 1 , wherein performing the refine-assignment step comprises:

initializing a total assignment cost with a first value;

for each computing node m setting a current node workload according to the initial random assignment of the sequence of scenes to the M computing nodes; and

repeating until convergence:

sequentially for each computing node m, starting from computing node m=0 until reaching computing node m=M−1:

generating a first adjusted node workload of computing node m by removing, for computing nodes m<M−1 only, a scene from the current node workload of the computing node m and generating an adjusted node workload of computing node m+1 by adding the scene to a current node workload of computing node m+1, and computing a first cost metric for the M computing nodes;

generating a second adjusted node workload of computing node m by adding, for computing nodes m>0 only, a scene to the current node workload of computing node m, and generating an adjusted node workload of computing node m−1 by removing the scene from a node workload of computing node m−1, and computing a second cost metric for the M computing nodes;

avoiding generating adjusted node workloads for computing node m, and computing a third cost metric for the M computing nodes; and

generating an updated node workload based on a minimum among the first cost metric, the second cost metric, and the third cost metric;

computing an iteration assignment cost based on the updated node workload; and

if the total assignment cost is smaller than the iteration assignment cost, then: signaling convergence, outputting the updated node workload as the refined assignment, and outputting the total assignment cost as the refined assignment cost, else: continuing by replacing the total assignment cost with the iteration assignment cost.

4 . The method of claim 1 , wherein generating the initial random assignment comprises:

initializing a candidate set with scene indices from 1 to K−1, where K denotes a total number of scenes in the sequence of scenes to be allocated to the M computing nodes, wherein K is greater than M;

initializing an assignment set with scene index 0;

updating the assignment set to generate an updated assignment set;

wherein updating the assignment set comprises:

for t=1 to M−1:

selecting a random integer p between 0 and K−t−1;

identifying the p-th element in the candidate set and appending it to the assignment set;

removing the p-th element in the candidate set; and

sorting the candidate set in ascending order;

sorting the updated assignment set in ascending order to generate a sorted assignment set; and

generating the initial random assignment according to the sorted assignment set.

5 . The method of claim 4 , wherein generating the initial random assignment according to the sorted assignment set comprises:

assigning to computing node m all scenes with scene indices between values equal to or larger than the m-th element in the sorted assignment set but smaller than the (m+1)-th element in the sorted assignment set.

6 . The method of claim 3 , wherein computing a cost metric for all computing nodes based on a scene to node assignment for each computing node comprises:

for each computing node computing a total number of frames assigned to the computing node based on the scene to node assignment; and

computing a standard deviation of the total number of frames assigned to each computing node.

7 . The method of claim 3 , wherein removing a scene from the node workload and allocating it to the workload of computing node m+1 comprises:

identifying the last scene scheduled for encoding at computing node m and allocating it as the first scene to be scheduled for encoding at computing node m+1.

8 . The method of claim 3 , wherein adding a scene to the node workload taken from the workload of computing node m−1 comprises:

identifying the last scene scheduled for encoding at computing node m−1 and allocating it as the first scene to be scheduled for encoding at computing node m.

9 . The method of claim 1 , wherein updating the best assignment cost and the best output assignment comprises:

for the first assignment iteration, setting as the best output assignment the refined assignment and setting as the best assignment cost the refined assignment cost; and

for subsequent assignment iterations, comparing the refined assignment cost with the best assignment cost; and if the best assignment cost is bigger than the refined assignment cost, then selecting as the best output assignment the refined assignment and selecting as the best assignment cost the refined assignment cost.

10 . The method of claim 1 , further comprising:

for a computing node among the M computing nodes:

accessing according to the best output assignment of the sequence of scenes to the computing node a sequence of high-dynamic range (HDR) frames and a sequence of corresponding standard dynamic range (SDR) frames for a scene assigned to the computing node; and

generating for the scene assigned to the computing node an output bitstream.

11 . The method of claim 10 , wherein generating the output bitstream further comprises:

generating a scene-based forward reshaping function based on the sequence of HDR frames and the sequence of SDR frames;

mapping the sequence of HDR frames to a sequence of reshaped SDR frames based on the scene-based forward reshaping function;

generating a coded bitstream by compressing the sequence of reshaped SDR frames; generating a scene-based backward reshaping function based on the sequence of reshaped SDR frames, the sequence of HDR frames, and the scene-based forward reshaping function;

generating metadata based on parameters of the scene-based backward reshaping function; and

outputting the output bitstream comprising the coded bitstream and the metadata.

12 . A computer-readable storage medium having stored thereon computer-executable instructions for executing with one or more processors a method in accordance with claim 1 .

13 . An apparatus comprising a processor and configured to perform the method recited in claim 1 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2023
From: SU, GUAN-MING; KADU, HARSHAD; GADGIL, NEERAJ J.
To: DOLBY LABORATORIES LICENSING CORPORATION
Reel/Frame 064512/0883 →
Priority Claims (1)
EP 20184883 · Jul 9, 2020 · regional
Continuity (2)
Provisional Application 63049673 · Jul 9, 2020
Related Publication 20230291937A1 · Sep 14, 2023
References Cited (50)
US 5889989A · Robertazzi · 1999 [cited by examiner]
US 6370560B1 · Robertazzi · 2002 [cited by examiner]
US 8711154B2 · Steinberg · 2014 [cited by examiner]
US 8811490B2 · Su · 2014 [cited by applicant]
US 9264681B2 · Gish · 2016 [cited by applicant]
US 9723047B2 · Van Brandenburg · 2017 [cited by examiner]
US 9852075B2 · Andre · 2017 [cited by examiner]
US 9917777B2 · Buchnik · 2018 [cited by examiner]
US 10264287B2 · Wen · 2019 [cited by applicant]
US 10397576B2 · Kadu · 2019 [cited by applicant]
US 10516717B2 · Van Brandenburg · 2019 [cited by examiner]
US 10575028B2 · Kadu · 2020 [cited by applicant]
US 10659749B2 · Kadu · 2020 [cited by applicant]
US 11238295B2 · Papandreou · 2022 [cited by examiner]
US 11277627B2 · Song · 2022 [cited by applicant]
US 20110157193A1 · Boucher · 2011 [cited by examiner]
US 20130104177A1 · Kwan · 2013 [cited by applicant]
US 20130167187A1 · Pieper · 2013 [cited by examiner]
US 20140379871A1 · Van Brandenburg · 2014 [cited by examiner]
US 20150200854A1 · Buchnik · 2015 [cited by examiner]
US 20160036882A1 · Jin · 2016 [cited by applicant]
US 20170147494A1 · Andre · 2017 [cited by examiner]
US 20170353522A1 · Van Brandenburg · 2017 [cited by examiner]
US 20180031666A1 · Krueger · 2018 [cited by examiner]
US 20180098094A1 · Wen · 2018 [cited by applicant]
US 20190349607A1 · Kadu · 2019 [cited by applicant]
US 20200302203A1 · Papandreou · 2020 [cited by examiner]
US 20210385443A1 · Masule · 2021 [cited by examiner]
US 20230343100A1 · Kadu · 2023 [cited by applicant]
CN 104539730A · 2015 [cited by examiner]
CN 111290841A · 2020 [cited by examiner]
EP 3306563B1 · 2022 [cited by applicant]
JP 2002199392A · 2002 [cited by applicant]
JP 2010529809A · 2010 [cited by applicant]
WO 2019217751A1 · 2019 [cited by applicant]
WO 2023022956A1 · 2023 [cited by applicant]
Tian et al., “High performance cluster-based transcoder,” 2010 International Conference on Computer Application and System Modeling (ICCASM 2010), Taiyuan, 2010, pp. V2-48-V2-52 (Year: 2010). [cited by examiner]
Elkholy et al., “Self adaptive Hadoop scheduler for heterogeneous resources.” In 2014 9th International Conference on Computer Engineering & Systems (ICCES), pp. 427-432. IEEE, 2014. (Year: 2014). [cited by examiner]
Markatos et al., “Using processor affinity in loop scheduling on shared-memory multiprocessors,” in IEEE Transactions on Parallel and Distributed Systems, vol. 5, No. 4, pp. 379-400, Apr. 1994, doi: 10.1109/71.273046. (… [cited by examiner]
Jeon et al., “MapReduce-Based Distributed Video Encoding Using Content-Aware Video Segmentation and Scheduling,” in IEEE Access, vol. 4, pp. 6802-6815, 2016, doi: 10.1109/ACCESS.2016.2616540. (Year: 2016). [cited by examiner]
Wikipedia, “Branch and cut”, published on Jul. 7, 2020. (Year: 2020). [cited by examiner]
CN-104539730-A (machine translation) (Year: 2015). [cited by examiner]
CN-111290841-A (machine translation) (Year: 2020). [cited by examiner]
Dong et al., “Multi-robot collaborative dense scene reconstruction.” ACM Transactions on Graphics (TOG) 38, No. 4 (2019): 1-16. (Year: 2019). [cited by examiner]
Huang, Jing-Chen, et al “On High Efficient Cloud Video Transcoding” International Symposium on Intelligent Signal Processing and Communication Systems, Nov. 9-12, 2015, pp. 170-173. [cited by applicant]
Katsavounidis, I. et al “Dynamic Optimizer—A perceptual Video Encoding optimization Framework” Netflix Technology Blog, published in Netflix Mar. 5, 2018. [cited by applicant]
Manohara, M. et al “Optimized Shot-based Encodes: Now Streaming!” Netflix Technology published in Netflix Techblog Mar. 9, 2018. [cited by applicant]
Papadopoulos, P. et al “A Fast Heuristic for Tile Partitioning and Processor Assignment in HEVC” 2018 25th IEEE International Conference on Image Processing, Oct. 7, 2018, pp. 4143-4147. [cited by applicant]
Zhang, N. et al “Adaptive Data Partitioning for Multiprocessor Implementation of MPEG2 Encoders” Proc. of 1997 IEEE International Symposium on Circuits and Systems, Jun. 9-12, 1997, vol. 2, pp. 1221-1224. [cited by applicant]
Zhang, N. et al “Study on Adaptive Job Assignment for Multiprocessor Implementation of MPEG2 Video Encoding” IEEE Transactions on Industrial Electronics, vol. 44, No. 5, Oct. 1997, pp. 726-734. [cited by applicant]