IP Library › Granted Patent US 11,166,034
Granted Patent B2
US 11,166,034 · App. 16/543,476 · Granted Nov 2, 2021

Comparing video encoders/decoders using shot-based encoding and a perceptual visual quality metric

Inventors: Ioannis Katsavounidis (San Jose, CA); Liwei Guo (San Francisco, CA)
Assignee: NETFLIX, INC.
H04N19/196H04N19/85
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 11,166,034
App. No.
16/543,476
Granted
Nov 2, 2021
Kind
B2
Abstract

In various embodiments, an encoder comparison application compares the performance of different configured encoders. In operation, the encoder comparison application generates a first global convex hull of video encode points based on a first configured encoder and a set of subsequences included in a source video sequence. Each video encode point is associated with a different encoded version of the source video sequence. The encoder comparison application also generates a second global convex hull of video encode points based on a second configured encoder and the subsequences. Subsequently, the encoder configuration application computes a performance value for an encoding comparison metric based on the first global convex hull and the second global convex hull. Notably, the first performance value estimates a difference in performance between the first configured encoder and the second configured encoder.

Claims (44)

1. A computer-implemented method for comparing the performance of different configured encoders, the method comprising:

generating a first global convex hull of video encode points based on a first configured encoder and a plurality of subsequences included in a source video sequence, wherein each video encode point is associated with a different encoded version of the source video sequence;

generating a second global convex hull of video encode points based on a second configured encoder and the plurality of subsequences; and

computing a first performance value for an encoding comparison metric based on the first global convex hull and the second global convex hull, wherein the first performance value estimates a difference in performance between the first configured encoder and the second configured encoder.

2. The computer-implemented method of claim 1 , wherein the encoding comparison metric comprises a Bjontegaard rate difference (BD-rate).

3. The computer-implemented method of claim 1 , wherein each video encode point included in the first global convex hull is associated with a bitrate and a quality score, wherein the quality score comprises a linear video multimethod assessment fusion score, a harmonic video multimethod assessment fusion score, a classic peak-signal-to-noise ratio, or a typical peak-signal-to-noise ratio.

4. The computer-implemented method of claim 1 , wherein the first configured encoder is associated with a first encoder, and the second configured encoder is associated with a second encoder that differs from the first encoder.

5. The computer implemented method of claim 1 , wherein the first configured encoder is associated with a first configuration that specifies at least one of a profile level, an analysis level, a search level, a psycho-visual option, a performance option, or a tuning option.

6. The computer-implemented method of claim 1 , wherein each of the subsequences included in the plurality of subsequences comprises a shot sequence.

7. The computer-implemented method of claim 1 , wherein computing the first performance value comprises:

determining a first quality range based on a plurality of target quality scores for a visual quality metric; and

performing one or more comparison operations between a first portion of the first global convex hull and a second portion of the second global convex hull, wherein both the first portion of and the second portion are associated with the first quality range.

8. The computer-implemented method of claim 7 , further comprising:

determining a second quality range based on the plurality of target quality scores; and

performing one or more comparison operations between a third portion of the first global convex hull and a fourth portion of the second global convex hull to compute a second performance value, wherein both the third portion of and the fourth portion are associated with the second quality range, wherein

the first performance value and the second performance value are subsequently used to compare the performance of the first configured encoder and the second configured encoder.

9. The computer-implemented method of claim 1 , wherein generating the first global convex hull comprises:

generating a first set of shot encode points based on the first configured encoder, a first set of encoding points, and a first subsequence included in the plurality of subsequences;

performing a plurality of convex hull operations across the first set of shot encode points to generate a first convex hull; and

determining a first video encode point included in the first global convex hull based on a first shot encode point included in the first convex hull and a second shot encode point included in a second convex hull, wherein the second convex hull is associated with both the first configured encoder and a second subsequence included in the plurality of subsequences.

10. The computer-implemented method of claim 1 , wherein a first video encode point included in the global convex hull is associated with a first encoded version of the source video sequence, and wherein at least one of a bitrate and a resolution varies across a third plurality of encoded subsequences included in the first encoded version of the source video sequence.

11. One or more non-transitory computer readable media including instructions that, when executed by one or more processors, cause the one or more processors to compare the performance of different configured encoders by performing the steps of:

generating a first global convex hull of video encode points based on a first configured encoder and a plurality of subsequences included in a source video sequence;

generating a second global convex hull of video encode points based on a second configured encoder and the plurality of subsequences; and

computing a first performance value for an encoding comparison metric based on the first global convex hull and the second global convex hull, wherein the first performance value estimates a difference in performance between the first configured encoder and the second configured encoder.

12. The one or more non-transitory computer readable media of claim 11 , wherein the encoding comparison metric comprises a Bjontegaard rate difference (BD-rate).

13. The one or more non-transitory computer readable media of claim 11 , wherein each quality score comprises a linear video multimethod assessment fusion score, a harmonic video multimethod assessment fusion score, a classic peak-signal-to-noise ratio, or a typical peak-signal-to-noise ratio.

14. The one or more non-transitory computer readable media of claim 11 , wherein the first configured encoder is associated with a first encoder, and the second configured encoder is associated with a second encoder that differs from the first encoder.

15. The one or more non-transitory computer readable media of claim 11 , wherein the first configured encoder is associated with a first encoder and a first value for a configuration parameter, and the second configured encoder is associated with the first encoder and a second value for the configuration parameter.

16. The one or more non-transitory computer readable media of claim 11 , wherein each of the subsequences included in the plurality of subsequences comprises a shot sequence.

17. The one or more non-transitory computer readable media of claim 11 , wherein computing the first performance value comprises:

determining a quality range for a first visual quality metric that is associated with both the first global convex hull and the second global convex hull based on a plurality of target bitrates for a second visual quality metric, a third global convex hull that is associated with the second visual quality metric, and the first global convex hull; and

performing one or more comparison operations between a first portion of the first global convex hull and a second portion of the second global convex hull, wherein both the first portion of and the second portion are associated with the quality range.

18. The one or more non-transitory computer readable media of claim 11 , wherein generating the first global convex hull comprises:

generating a preliminary global convex hull based on a first plurality of encoded subsequences, wherein each encoded subsequence is associated with a first subsequence included in the plurality of subsequences and a different encoding point included in a first set of encoding points;

computing a new encoding point that is not included in the first plurality of encoding points based on the first preliminary global convex hull and a target value for a first visual quality metric; and

generating the first global convex hull based on a second plurality of encoded subsequences, wherein a first encoded subsequence included in the second plurality of encoded subsequences is associated with both the first subsequence and the new encoding point.

19. The one or more non-transitory computer readable media of claim 18 , wherein the preliminary global convex hull is associated with the first visual quality metric, and the global convex hull is associated with a second visual quality metric.

20. A system for comparing the performance of different configured encoders, the system comprising:

one or more memories storing instructions; and

one or more processors that are coupled to the one or more memories and, when executing the instructions, are configured to:

generate a first global convex hull of video encode points based on a first configured encoder and a source video sequence;

generate a second global convex hull of video encode points based on a second configured encoder and the source video sequence; and

compute a first performance value for an encoding comparison metric based on at least a first portion of the first global convex hull and at least a second portion of the second global convex hull, wherein the first performance value estimates a difference in performance between the first configured encoder and the second configured encoder.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE FIRST PAGE OF THE ASSIGNMENT PREVIOUSLY RECORDED AT REEL: 051756 FRAME: 0788. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 21, 2022
From: KATSAVOUNIDIS, IOANNIS
To: NETFLIX, INC.
Reel/Frame 059261/0679 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 7, 2020
From: KATSAVOUNIDIS, IOANNIS; GUO, LIWEI
To: NETFLIX, INC.
Reel/Frame 051756/0788 →
Continuity (7)
Continuation In Part 16016432 · Jun 22, 2018
Continuation In Part 15902976 · Feb 22, 2018
Provisional Application 62462873 · Feb 23, 2017
Provisional Application 62534170 · Jul 18, 2017
Provisional Application 62550517 · Aug 25, 2017
Provisional Application 62765180 · Aug 17, 2018
Related Publication 20190379895A1 · Dec 12, 2019