IP Library Granted Patent US 9,621,896
Granted Patent B2
US 9,621,896 · App. 13/492,619 · Granted Apr 11, 2017

Macroblock-level adaptive quantization in quality-aware video optimization

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 9,621,896
App. No.
13/492,619
Granted
Apr 11, 2017
Kind
B2
Abstract

A method of optimizing an encoded video stream comprising one or more video frames, each video frame comprising a plurality of macroblocks, each macroblock comprising a plurality of pixels. The method includes receiving an encoded macroblock, decoding the encoded macroblock, and extracting a first quantization parameter. The first quantization parameter corresponds to quantization settings originally used for compressing the encoded macroblock. The method also includes computing a second quantization parameter based at least in part on the first quantization parameter, re-encoding the decoded macroblock based on the second quantization parameter, and providing the re-encoded macroblock.

Claims (46)

1. A method of macroblock-level quality-aware video optimization of an encoded video stream comprising one or more video frames, each video frame comprising a plurality of macroblocks, each macroblock comprising a plurality of pixels, the method comprising:

receiving an encoded macroblock;

decoding the encoded macroblock;

extracting a first quantization parameter, wherein the first quantization parameter corresponds to quantization settings originally used for compressing the encoded macroblock;

determining first and second thresholds as a function of past input quantization parameters, wherein the past input quantization parameters correspond to quantization settings originally used for compressing a plurality of previously received encoded macroblocks;

computing a second quantization parameter based at least in part on the first quantization parameter, the first and second thresholds, and a number of bits occupied by the encoded macroblock;

re-encoding the decoded macroblock based on the second quantization parameter; and

providing the re-encoded macroblock.

2. The method of claim 1 , wherein computing the second quantization parameter comprises setting the second quantization parameter to be equal or lower than the first quantization parameter when the first quantization parameter is higher than the first threshold, and setting the second quantization parameter to be higher than the first quantization parameter when the first quantization parameter is lower than the second threshold.

3. The method of claim 1 , wherein computing the second quantization parameter is based in part on visual characteristics of the encoded macroblock or the decoded macroblock.

4. The method of claim 3 , wherein the visual characteristics of the encoded macroblock or the decoded macroblock include a variance of the plurality of pixels of either the encoded macroblock or the decoded macroblock.

5. The method of claim 3 , wherein the visual characteristics of the encoded macroblock or the decoded macroblock include an average brightness of the plurality of pixels of either the encoded macroblock or the decoded macroblock.

6. The method of claim 1 , wherein computing the second quantization parameter is based in part on output coding parameters received from an encoder.

7. The method of claim 6 , wherein the output coding parameters include one or more past output quantization parameters that correspond to quantization settings used for re-encoding previously received encoded macroblocks.

8. The method of claim 6 , wherein the output coding parameters include an output bitrate, wherein the output bitrate corresponds to an average number of bits occupied by a plurality of previously re-encoded macroblocks.

9. The method of claim 8 , wherein computing the second quantization parameter comprises increasing the second quantization parameter if the output bitrate is higher than a first predefined target bitrate, and decreasing the second quantization parameter if the output bitrate is lower than a second predefined target bitrate.

10. A non-transitory computer readable medium storing instructions that, when executed by a computer, cause the computer to perform a method of macroblock-level quality-aware video optimization of an encoded video stream comprising one or more video frames, each frame comprising a plurality of macroblocks, and each macroblock comprising a plurality of pixels, the method comprising:

receiving an encoded macroblock;

decoding the encoded macroblock;

extracting a first quantization parameter, wherein the first quantization parameter corresponds to quantization settings originally used for compressing the encoded macroblock;

determining first and second thresholds as a function of past input quantization parameters, wherein the past input quantization parameters correspond to quantization settings originally used for compressing a plurality of previously received encoded macroblocks;

computing a second quantization parameter based at least in part on the first quantization parameter, the first and second thresholds, and a number of bits occupied by the encoded macroblock;

re-encoding the decoded macroblock based on the second quantization parameter; and

providing the re-encoded macroblock.

11. The non-transitory computer readable medium of claim 10 , wherein computing the second quantization parameter comprises setting the second quantization parameter to be equal or lower than the first quantization parameter when the first quantization parameter is higher than the first threshold, and setting the second quantization parameter to be higher than the first quantization parameter when the first quantization parameter is lower than the second threshold.

12. The non-transitory computer readable medium of claim 10 , wherein computing the second quantization parameter is based in part on visual characteristics of the encoded macroblock or the decoded macroblock.

13. The non-transitory computer readable medium of claim 12 , wherein the visual characteristics of the encoded macroblock or the decoded macroblock include a variance of the plurality of pixels of either the encoded macroblock or the decoded macroblock.

14. The non-transitory computer readable medium of claim 12 , wherein the visual characteristics of the encoded macroblock or the decoded macroblock include an average brightness of the plurality of pixels of either the encoded macroblock or the decoded macroblock.

15. The non-transitory computer readable medium of claim 10 , wherein computing the second quantization parameter is based in part on output coding parameters received from an encoder.

16. The non-transitory computer readable medium of claim 15 , wherein the output coding parameters include one or more past output quantization parameters that correspond to quantization settings used for re-encoding previously received encoded macroblocks.

17. The non-transitory computer readable medium of claim 15 , wherein the output coding parameters include an output bitrate, wherein the output bitrate corresponds to an average number of bits occupied by a plurality of previously re-encoded macroblocks.

18. The non-transitory computer readable medium of claim 17 , wherein computing the second quantization parameter comprises increasing the second quantization parameter if the output bitrate is higher than a first predefined target bitrate, and decreasing the second quantization parameter if the output bitrate is lower than a second predefined target bitrate.

19. A video optimizer for macroblock-level quality-aware video optimization of an encoded video stream comprising one or more video frames, each frame comprising a plurality of macroblocks, and each macroblock comprising a plurality of pixels, the video optimizer comprising:

a decoder configured to receive an encoded macroblock, to decode the encoded macroblock, and to extract a first quantization parameter, wherein the first quantization parameter corresponds to quantization settings originally used for compressing the encoded macroblock;

a quantization parameter adjustment module configured to:

determine first and second thresholds as a function of past input quantization parameters, wherein the past input quantization parameters correspond to quantization settings originally used for compressing a plurality of previously received encoded macroblocks; and

compute a second quantization parameter based at least in part on the first quantization parameter and a number of bits occupied by the encoded macroblock; and

an encoder configured to re-encode the decoded macroblock based on the second quantization parameter and to provide the re-encoded macroblock.

20. The video optimizer of claim 19 , wherein computing the second quantization parameter comprises-setting the second quantization parameter to be equal or lower than the first quantization parameter when the first quantization parameter is higher than the first threshold, and setting the second quantization parameter to be higher than the first quantization parameter when the first quantization parameter is lower than the second threshold.

21. The video optimizer of claim 19 , wherein computing the second quantization parameter is based in part on visual characteristics of the encoded macroblock or the decoded macroblock.

22. The video optimizer of claim 21 , wherein the visual characteristics of the encoded macroblock or the decoded macroblock include a variance of the plurality of pixels of either the encoded macroblock or the decoded macroblock.

23. The video optimizer of claim 21 , wherein the visual characteristics of the encoded macroblock or the decoded macroblock include an average brightness of the plurality of pixels of either the encoded macroblock or the decoded macroblock.

24. The video optimizer of claim 19 , wherein computing the second quantization parameter is based in part on output coding parameters received from an encoder.

25. The video optimizer of claim 24 , wherein the output coding parameters include one or more past output quantization parameters that correspond to quantization settings used for re-encoding previously received encoded macroblocks.

26. The video optimizer of claim 24 , wherein the output coding parameters include an output bitrate, wherein the output bitrate corresponds to an average number of bits occupied by a plurality of previously re-encoded macroblocks.

27. The video optimizer of claim 26 , wherein computing the second quantization parameter comprises increasing the second quantization parameter if the output bitrate is higher than a first predefined target bitrate, and decreasing the second quantization parameter if the output bitrate is lower than a second predefined target bitrate.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2023
From: BYTEMOBILE INNOVATIONS, LLC
To: OPTIMORPHIX, INC.
Reel/Frame 064020/0183 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2022
From: CITRIX SYSTEMS, INC.
To: BYTEMOBILE INNOVATIONS, LLC
Reel/Frame 059087/0052 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2015
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 037289/0606 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2015
From: CITRIX SYSTEMS, INC.
To: BYTEMOBILE, INC.
Reel/Frame 035440/0599 →
NUNC PRO TUNC ASSIGNMENT Recorded Dec 6, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 031730/0322 →
THIS SUBMISSION IS TO CORRECT THE SPELLING OF THE RECEIVING PARTY (ASSIGNEE)'S STREET NAME IN THE ORIGINAL COVER SHEET RECORDED AT REEL/FRAME 030609/0389. THE ADDRESS NAME SHOULD BE WEST CYPRESS CREEK ROAD. Recorded Sep 17, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 031287/0874 →
MERGER Recorded Jun 13, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 030609/0389 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2012
From: TIDEMANN, JEREMY; PENNER, ANDREW
To: BYTEMOBILE, INC.
Reel/Frame 028347/0523 →