IP Library Granted Patent US 11,700,382
Granted Patent B1
US 11,700,382 · App. 17/518,543 · Granted Jul 11, 2023

Systems and methods for improving mode decisions in hardware video encoders

Inventors: Gaurang Chaudhari (Sunnyvale, CA); Yunqing Chen (Los Altos, CA); Harikrishna Madadi Reddy (San Jose, CA)
Assignee: Meta Platforms, Inc.
H04N19/147H04N19/107H04N19/184H04N19/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 11,700,382
App. No.
17/518,543
Granted
Jul 11, 2023
Kind
B1
Abstract

An example disclosed system may include a hardware video encoding pipeline (HVEP), the HVEP that includes a prediction module that generates, using a primary prediction mode, a primary encode of a portion of a video stream, and using a secondary prediction mode, a secondary encode of the portion of the video stream. The HVEP may also include (1) a rate-distortion optimization (RDO) module that determines a primary cost associated with the primary encode and a secondary cost associated with the secondary encode, (2) a quality metric (QM) module that determines a primary QM associated with the primary encode and a secondary QM associated with the secondary encode, and (3) a decision module that selects, for an encoding of the video stream, at least one of the primary prediction mode and the secondary prediction mode based on the primary cost, the secondary cost, the primary QM, and the secondary QM.

Claims (75)

1. A system comprising a hardware video encoding pipeline, the hardware video encoding pipeline comprising:

a prediction module that generates:

using a primary prediction mode, a primary encode of a portion of a video stream; and

using a secondary prediction mode, a secondary encode of the portion of the video stream;

a rate-distortion optimization (RDO) module that determines a primary cost associated with the primary encode and a secondary cost associated with the secondary encode;

a quality metric (QM) module that determines a primary QM associated with the primary encode and a secondary QM associated with the secondary encode; and

a decision module that:

comprises a hardware memory module included in the hardware video encoding pipeline;

stores, within the hardware memory module, the primary QM, the secondary QM, the primary cost, and the secondary cost, and

selects, for an encoding of the video stream, at least one of the primary prediction mode and the secondary prediction mode based on the primary cost, the secondary cost, the primary QM, and the secondary QM.

2. The system of claim 1 , wherein the decision module selects at least one of the primary prediction mode and the secondary prediction mode by determining that the primary QM differs from the secondary QM by at least a QM threshold value.

3. The system of claim 2 , wherein the QM module receives the QM threshold value via a programmable interface.

4. The system of claim 2 , wherein the decision module further selects at least one of the primary prediction mode and the secondary prediction mode by determining that the primary cost differs from the secondary cost by less than a cost threshold value.

5. The system of claim 4 , wherein the decision module receives the cost threshold value via a programmable interface.

6. The system of claim 1 , wherein the decision module selects at least one of the primary prediction mode and the secondary prediction mode by storing the primary cost, the secondary cost, the primary QM, and the secondary QM within a data storage device accessible to the decision module.

7. The system of claim 6 , wherein the decision module further:

receives:

from the RDO module, a test cost associated with a test prediction mode; and

from the QM module, a test QM associated with the test prediction mode;

determines that the test QM differs from the primary QM by less than the secondary QM differs from the primary QM; and

replaces the secondary QM with the test QM and the secondary cost with the test cost based on determining that the test QM differs from the primary QM by more than a threshold QM value.

8. The system of claim 1 , wherein the QM comprises at least one of:

a structural similarity index measure (SSIM);

a multi-scale SSIM;

an overall peak signal-to-noise ratio (PSNR);

an averaged PSNR;

a variance inflation factor (VIF);

a motion-based video integrity evaluation (MOVIE) index;

a naturalness image quality evaluator (NIQE);

a video multimethod assessment fusion (VMAF); or

a blind/referenceless image spatial quality evaluation (BRISQUE).

9. The system of claim 1 , wherein the primary prediction mode and the secondary prediction mode are included in a set of prediction modes supported by a video encoding standard, the video encoding standard comprising at least one of:

an Advanced Video Coding (AVC)/H.264 video encoding standard;

a High Efficiency Video Coding (HEVC)/H.265 video encoding standard;

a VP9 video encoding standard; or

an AOMedia Video 1 (AV1) video encoding standard.

10. The system of claim 1 , wherein at least one of the primary prediction mode and the secondary prediction mode comprises an inter prediction partition mode.

11. The system of claim 1 , wherein at least one of the primary prediction mode and the secondary prediction mode comprises an intra prediction mode.

12. The system of claim 1 , wherein at least one of the primary prediction mode and the secondary prediction mode comprises at least one of:

a luma prediction mode; or

a chroma prediction mode.

13. A computer-implemented method comprising:

generating, by a prediction module included in a hardware video encoding pipeline:

using a primary prediction mode, a primary encode of a portion of a video stream; and

using a secondary prediction mode, a secondary encode of a portion of a video stream;

determining, by a rate-distortion optimization (RDO) module included in the hardware video encoding pipeline, a primary cost associated with the primary encode and a secondary cost associated with the secondary encode;

determining, by a quality metric (QM) module included in the hardware video encoding pipeline, a primary QM associated with the primary encode and a secondary QM associated with the secondary encode; and

by a decision module included in the hardware video encoding pipeline and comprising a hardware memory module:

storing, within the hardware memory module, the primary QM, the secondary QM, the primary cost, and the secondary cost; and

selecting, for encoding of the video stream, at least one of the primary prediction mode and the secondary prediction mode based on the primary cost, the secondary cost, the primary QM, and the secondary QM.

14. The computer-implemented method of claim 13 , wherein selecting at least one of the primary prediction mode and the secondary prediction mode comprises determining that the primary QM differs from the secondary QM by at least a QM threshold value.

15. The computer-implemented method of claim 14 , further comprising receiving the QM threshold value via a programmable interface.

16. The computer-implemented method of claim 14 , wherein selecting at least one of the primary prediction mode and the secondary prediction mode comprises determining that the primary cost differs from the secondary cost by less than a cost threshold value.

17. The computer-implemented method of claim 16 , further comprising receiving the cost threshold value via a programmable interface.

18. The computer-implemented method of claim 13 , further comprising:

receiving:

from the RDO module, a test cost associated with a test prediction mode; and

from the QM module, a test QM associated with the test prediction mode;

determining that the test QM differs from the primary QM by less than the secondary QM differs from the primary QM; and

replacing the secondary QM with the test QM and the secondary cost with the test cost based on determining that the test QM differs from the primary QM by more than a threshold QM value.

19. A non-transitory computer-readable medium comprising computer-readable instructions that, when executed by at least one processor of a computing system, cause the computing system to direct:

a prediction module, included in a hardware video encoding pipeline, to generate,

using a primary prediction mode, a primary encode of a portion of a video stream; and

using a secondary prediction mode, a secondary encode of the portion of the video stream;

a rate-distortion optimization (RDO) module, included in the hardware video encoding pipeline, to determine a primary cost associated with the primary encode and a secondary cost associated with the secondary encode;

a quality metric (QM) module, included in the hardware video encoding pipeline, to determine a primary QM associated with the primary encode and a secondary QM associated with the secondary encode; and

a decision module, included in the hardware video encoding pipeline and comprising a hardware memory module, to:

store, within the hardware memory module, the primary QM, the secondary QM, the primary cost, and the secondary cost; and

select, for encoding of the video stream, at least one of the primary prediction mode and the secondary prediction mode based on the primary cost, the secondary cost, the primary QM, and the secondary QM.

20. The non-transitory computer-readable medium of claim 19 , wherein the computer-readable instructions further, when executed by the at least one processor of the computing system, cause the computing system to direct the decision module to further

receive:

from the RDO module, a test cost associated with a test prediction mode; and

from the QM module, a test QM associated with the test prediction mode;

determine that the test QM differs from the primary QM by less than the secondary QM differs from the primary QM; and

replace the secondary QM with the test QM and the secondary cost with the test cost based on determining that the test QM differs from the primary QM by more than a threshold QM value.

Assignments (2)
CHANGE OF NAME Recorded Jan 11, 2022
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058685/0901 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2021
From: CHAUDHARI, GAURANG; CHEN, YUNQING; REDDY, HARIKRISHNA MADADI
To: FACEBOOK, INC.
Reel/Frame 058249/0832 →