IP Library Granted Patent US 10,506,232
Granted Patent B2
US 10,506,232 · App. 15/274,710 · Granted Dec 10, 2019

System for reshaping and coding high dynamic range and wide color gamut sequences

Inventors: Koohyar Minoo (San Diego, CA); David M. Baylon (San Diego, CA); Zhouye Gu (San Diego, CA); Yue Yu (San Diego, CA); Ajay Luthra (San Diego, CA)
Assignee: ARRIS Enterprises LLC
H04N19/124G06T5/007H04N19/174H04N19/177H04N19/186H04N19/44H04N19/70H04N19/98G06T2207/20208
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 10,506,232
App. No.
15/274,710
Filed
Sep 23, 2016
Granted
Dec 10, 2019
Kind
B2
Art Unit
2486
USPC
375/240.03
Abstract

A video data encoder generates a first metadata structure to describe one or more transfer functions to be applied by a decoder to reshape decoded video data into video data. The encoder segments a transfer function relative to P pivot points. It then allocates P cells in the metadata structure for storing the P pivot points. Each transfer function segment is fitted to a respective equation having N coefficients based on the order of the equation. The encoder allocates N+1 cells for each pivot point except for the P th pivot point and stores the number N in the first cell and the N coefficients in the remaining cells. The encoder generates a second metadata structure, associated with a video data set, that includes data identifying the transfer function to be applied to the video data set. The encoder encodes the video data including the first and second metadata structures.

Claims (133)

1. A method comprising:

encoding video data, including:

generating a first metadata structure to describe a transfer function to be applied to reshape decoded video data to generate output video data having at least one of a higher dynamic range or wider color gamut than the decoded video data, the first metadata structure being associated with a sequence of pictures, a group of pictures, or an image essence of the video data, the generating of the first metadata structure including:

dividing data representing the transfer function into a number of segments the segments being defined by pairs of successive pivot points of a number, P, pivot points including a first pivot point and a last pivot point, P being an integer;

allocating a cell in the first metadata structure to store a value indicating the number of pivot points and storing the value P in the allocated cell;

allocating P pivot point cells in the first metadata structure;

storing data values representing the P pivot points into the P pivot point cells;

fitting a respective equation to each segment, each equation having a number, N, coefficient values where N is an integer that varies based on characteristics of the segment; and

for each pivot point except the last pivot point:

allocating N+1 cells in the first metadata structure;

storing the value N for the segment into a first one of the N+1 cells; and

storing the N coefficient values in the remaining N cells of the N+1 cells;

wherein the equations defining the segments are restricted such that an end point of the equation defining each segment except a last segment is a starting point for the equation defining the next successive segment, and

wherein the equations defining the segments are further restricted such that a slope of the equation defining each segment, except the first segment, matches a slope of the equation defining a previously adjacent segment at the pivot point where the segment and the previously adjacent segment meet,

for each segment, N is an integer equal to the order of the equation fitted to the segment minus 1; and

generating a second metadata structure associated with a picture, slice, processing window or sub-picture element, including allocating a cell in the second metadata structure and storing, in the allocated cell of the second metadata structure data identifying the transfer function; and

encoding the video data and including the first and second metadata structures with the encoded video data.

2. The method of claim 1 further comprising:

allocating a first offset cell and a second offset cell in the first metadata structure;

storing, in the first offset cell, a first offset value to be added to input data before the input data is applied to the transfer function; and

storing, in the second offset cell, a second offset value to be added to output data resulting from the input data being applied to the transfer function.

3. The method of claim 1 , wherein the transfer function is a first transfer function, the method further comprising:

adding metadata describing a second transfer function to the first metadata structure, including:

dividing data representing the second transfer function into a number of segments the number of segments being defined by Q pivot points including a first pivot point and a last pivot point, Q being an integer different than P;

allocating a cell in the first metadata structure to store a value indicating the number of pivot points and storing the value Q in the allocated cell;

allocating Q pivot point cells in the first metadata structure;

storing data values representing the Q pivot points into the Q pivot point cells;

fitting an equation to each segment, each equation having a number, N, coefficient values where N is an integer that varies based on characteristics of the segment;

for each pivot point except the last pivot point:

allocating N+1 cells in the first metadata structure;

storing the value N for the segment into a first one of the N+1 cells;

storing the N coefficient values in the remaining N cells of the N+1 cells;

wherein the data stored in the allocated cell of the second metadata structure indicates one of the first transfer function or the second transfer function based on characteristics of the picture, slice, processing window or sub-picture element.

4. The method of claim 1 , wherein:

the equations defining the segments are restricted such that the end point of the equation defining each segment except a last segment is a starting point for the equation defining the next successive segment; and

for each segment, N is an integer equal to an order of the equation fitted to the segment.

5. The method of claim 1 , wherein:

the decoded video data includes a luminance component and first and second chrominance components;

the transfer function represents a function Y/Y′, where Y′ is luminance component of the decoded video data and Y is a corresponding luminance component having at least one of the higher dynamic range or wider color gamut than the decoded video data; and

the method further includes:

allocating a flag cell in the second metadata structure and storing in the flag cell a data value indicating cross-channel scaling;

for each chrominance component:

allocating a transfer function identification cell; and

storing, in the transfer function identification cell data identifying a transfer function to be used for the chrominance component.

6. Apparatus comprising:

a memory configured as a look-up table (LUT);

a video decoding system configured to receive a bit stream representing an encoded video signal, the video decoding system including program instructions that cause the video decoding system to:

decode the bit stream to produce decoded video data;

extract a first metadata structure from a sequence, group of pictures or image essence of the bit stream;

extract, from the first metadata structure, data representing a number of pivot points, P, and, for each pivot point, except the P th pivot point, a respective number of coefficients, N, where N and P are integers;

extract, from the first metadata structure, the P pivot points and the N coefficients for each pivot point except for the P th pivot point;

regenerate, from the extracted pivot points and coefficients, a transfer function including P−1 transfer function segments corresponding to the P pivot points except for the P th pivot point;

generate first and second additional coefficients for each pivot point except the first pivot point and the last pivot point, the first additional coefficient corresponding to the value, at the pivot point, of the transfer function segment corresponding to the previous pivot point and the second coefficient corresponding to a slope, at the pivot point, indicated by the coefficients associated with the previous pivot point;

generate data values and store the regenerated data values in the LUT responsive to the regenerated transfer function;

extract a second metadata structure from a picture, slice, processing window or sub-picture element from the bit stream;

extract an identifier of the transfer function from the second metadata structure;

generate reshaped video data as an output of the LUT by applying decoded video data corresponding to the picture, slice, processing window or sub-picture element as an input to the LUT.

7. The apparatus of claim 6 , wherein the program instructions further cause the decoding system to:

extract a first offset value and a second offset value from the first metadata structure; and

add the first offset value to the decoded video data before applying the decoded video data to the LUT; and

add the second offset value to the output data provided by the LUT.

8. The apparatus of claim 6 , wherein:

the memory is configured as a first LUT and a second LUT and the transfer function is a first transfer function and is used to generate the data values in the first LUT; and

the program instructions cause the decoding system to:

extract, from the first metadata structure, data representing a number of pivot points, Q, and, for each pivot point, except the Q th pivot point, a respective number of coefficients, N, where Q is an integer;

extract, from the first metadata structure, data representing the Q pivot points and the N coefficients for each pivot point;

regenerate a transfer function from the extracted Q pivot points and respective coefficients;

generate data values and store the regenerated data values in the second LUT responsive to the regenerated transfer function.

9. The apparatus of claim 6 , wherein the program instructions further cause the decoding system to generate an additional coefficient for each pivot point except the first pivot point and the last pivot point, the additional coefficient corresponding to the value, at the pivot point, of the transfer function segment corresponding to the previous pivot point.

10. The apparatus of claim 6 , wherein the program instructions further cause the decoding system to:

extract a cross-channel scaling flag from the second metadata structure; and

responsive to the cross-channel scaling flag, the program instructions cause the decoder to:

extract, from the second metadata structure, a cross-channel LUT scaling index for each chrominance channel of the decoded video signal; and

generate reshaped chrominance data by applying decoded luminance data corresponding to the decoded chrominance data to an LUT indicated by the cross-channel LUT scaling index and multiplying the decoded chrominance data by output data produced by the LUT to produce the reshaped chrominance data.

11. The apparatus of claim 10 , wherein the program instructions further cause the decoding system to:

extract first and second offset values from the first metadata structure; and

add the first offset value to the decoded chrominance data before applying the decoded luminance data to the LUT; and

add the second offset value to output data produced by the LUT to generate the reshaped chrominance data.

12. Apparatus comprising:

a memory configured to hold an encoded video bit stream, the bit stream including first and second metadata structures;

an encoding system for encoding video data, the encoding system, including program instructions that cause the encoding system to generate the first metadata structure to describe a transfer function to be applied to reshape decoded video data to produce output video data having at least one of a higher dynamic range or wider color gamut than the decoded video data, the first metadata structure being associated with a sequence of pictures, a group of pictures, or an image essence, wherein the program instructions cause the encoding system to:

divide data representing the transfer function into a number of segments the segments being defined by successive pivot points of a number, P, pivot points including a first pivot point and a last pivot point, P being an integer;

allocate a cell in the first metadata structure to store a value indicating the number of pivot points and storing the value P in the allocated cell;

allocate P pivot point cells in the first metadata structure;

store data values representing the P pivot points into the P pivot point cells;

fit a respective equation to each segment, each equation having a number, N, coefficient values where N is an integer that varies based on characteristics of the segment; and

for each pivot point except the last pivot point:

allocate N+1 cells in the first metadata structure;

store the value N for the segment into a first one of the N+1 cells; and

store the N coefficient values in the remaining N cells of the N+1 cells;

wherein the equations defining the segments are restricted such that an end point of the equation defining each segment except a last segment is a starting point for the equation defining the next successive segment, and

wherein the equations defining the segments are further restricted such that a slope of the equation defining each segment, except the first segment, matches a slope of the equation defining a previously adjacent segment at the pivot point where the segment and the previously adjacent segment meet, and

for each segment, N is an integer equal to the order of the equation fitted to the segment minus 1;

generate a second metadata structure associated with a picture, slice, processing window or sub-picture element of the video data, including instructions that cause the encoder to allocate a cell in the second metadata structure and to store, in the allocated cell of the second metadata structure data identifying the transfer function; and

encode the video data and including the first and second metadata structures with the encoded video data in the bit stream.

13. The apparatus of claim 12 , wherein the program instructions further cause the encoding system to:

allocate a first offset cell and a second offset cell in the first metadata structure;

store, in the first offset cell, a first offset value to be added to input data before the input data is applied to the transfer function; and

store, in the second offset cell, a second offset value to be added to output data resulting from the input data being applied to the transfer function.

14. The apparatus of claim 12 , wherein the transfer function is a first transfer function, the program instructions further cause the encoding system to:

add metadata describing a second transfer function to the first metadata structure, including instructions that cause the encoder to:

divide data representing the second transfer function into a number of segments the number of segments being defined by Q pivot points including a first pivot point and a last pivot point, Q being an integer different than P;

allocate a cell in the first metadata structure to store a value indicating the number of pivot points and storing the value Q in the allocated cell;

allocate Q pivot point cells in the first metadata structure;

store data values representing the Q pivot points into the Q pivot point cells;

fit an equation to each segment, each equation having a number, N, coefficient values where N is an integer that varies based on characteristics of the segment;

for each pivot point except the last pivot point:

allocate N+1 cells in the first metadata structure;

store the value N for the segment into a first one of the N+1 cells;

store the N coefficient values in the remaining N cells of the N+1 cells;

wherein the data stored in the allocated cell of the second metadata structure indicates one of the first transfer function or the second transfer function based on characteristics of the picture, slice, processing window or sub-picture element.

15. The apparatus of claim 12 , wherein:

the equations defining the segments are restricted such that the an end point of the equation defining each segment except a last segment is a starting point for the equation defining the next successive segment; and

for each segment, N is an integer equal to an order of the equation fitted to the segment.

16. The apparatus of claim 12 , wherein:

the decoded video data includes a luminance component and first and second chrominance components;

the transfer function represents a function Y/Y′, where Y′ is luminance component of the decoded video data and Y is a corresponding luminance component having at least one of the higher dynamic range or wider color gamut than the decoded video data; and

the program instructions cause the encoder to:

allocate a flag cell in the second metadata structure and storing in the flag cell a data value indicating cross-channel scaling;

for each chrominance component:

allocate a transfer function identification cell; and

store, in the transfer function identification cell data identifying a transfer function to be used for the chrominance component.

17. A non-transitory computer-readable medium including program instructions that cause a processor to:

decode an encoded video bit stream to produce decoded video data;

extract a first metadata structure from a sequence, group of pictures or image essence of the bit stream;

extract, from the first metadata structure, data representing a number of pivot points, P, and, for each pivot point, except the P th pivot point, a respective number of coefficients, N, where N and P are integers;

extract, from the first metadata structure, the P pivot points and the N coefficients for each pivot point except for the P th pivot point;

regenerate, from the extracted pivot points and coefficients, a transfer function including P−1 transfer function segments corresponding to the P pivot points except for the P th pivot point;

generate first and second additional coefficients for each pivot point except the first pivot point and the last pivot point, the first additional coefficient corresponding to the value, at the pivot point, of the transfer function segment corresponding to the previous pivot point and the second coefficient corresponding to a slope, at the pivot point, indicated by the coefficients associated with the previous pivot point;

generate data values and store the regenerated data values in the LUT responsive to the regenerated transfer function;

extract a second metadata structure from a picture, slice, processing window or sub-picture element from the bit stream;

extract an identifier of the transfer function from the second metadata structure;

generate reshaped video data as an output of the LUT by applying decoded video data corresponding to the picture, slice, processing window or sub-picture element as an input to the LUT.

Assignments (6)
RELEASE OF SECURITY INTEREST AT REEL/FRAME 049905/0504 Recorded Dec 19, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: ARRIS ENTERPRISES LLC (F/K/A ARRIS ENTERPRISES, INC.); ARRIS TECHNOLOGY, INC.; ARRIS SOLUTIONS, INC.; COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; RUCKUS WIRELESS, LLC (F/K/A RUCKUS WIRELESS, INC.)
Reel/Frame 071477/0255 →
SECURITY INTEREST Recorded Nov 19, 2021
From: ARRIS SOLUTIONS, INC.; ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE, INC. OF NORTH CAROLINA; RUCKUS WIRELESS, INC.
To: WILMINGTON TRUST
Reel/Frame 060752/0001 →
TERM LOAN SECURITY AGREEMENT Recorded Jul 3, 2019
From: COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; ARRIS ENTERPRISES LLC; ARRIS TECHNOLOGY, INC.; RUCKUS WIRELESS, INC.; ARRIS SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 049905/0504 →
ABL SECURITY AGREEMENT Recorded Jul 3, 2019
From: COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; ARRIS ENTERPRISES LLC; ARRIS TECHNOLOGY, INC.; RUCKUS WIRELESS, INC.; ARRIS SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 049892/0396 →
PATENT SECURITY AGREEMENT Recorded Jul 3, 2019
From: ARRIS ENTERPRISES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 049820/0495 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2016
From: MINOO, KOOHYAR; BAYLON, DAVID M.; GU, ZHOUYE; YU, YUE; LUTHRA, AJAY
To: ARRIS ENTERPRISES LLC
Reel/Frame 040227/0202 →
Continuity (5)
Provisional Application 62222723 · Sep 23, 2015
Provisional Application 62241087 · Oct 13, 2015
Provisional Application 62241094 · Oct 13, 2015
Provisional Application 62242272 · Oct 15, 2015
Related Publication 20170085880A1 · Mar 23, 2017
Cited By (1)
US 12,452,428