IP Library Granted Patent US 9,894,361
Granted Patent B2
US 9,894,361 · App. 12/751,951 · Granted Feb 13, 2018

Framework for quality-aware video optimization

Inventors: Miguel Melnyk (Champaign, IL); Andrew Penner (Champaign, IL); Jeremy Tidemann (Champaign, IL)
Assignee: Citrix Systems, Inc.
H04N19/124H04N19/152H04N19/154H04N19/172H04N19/40H04N19/46
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,894,361
App. No.
12/751,951
Granted
Feb 13, 2018
Kind
B2
Abstract

A computer-implemented method includes receiving an encoded video frame, decompressing the received encoded video frame, extracting a first quantization parameter (QP) from the decompressed video frame, and acquiring a delta QP based on the first QP. The method also includes acquiring a second QP based on the delta QP and the first QP, compressing the decompressed video frame based on the second QP, and providing the compressed video frame. The first QP corresponds to quantization settings originally used for compressing the encoded video frame. And the second QP corresponds to quantization settings for compressing the decompressed video frame.

Claims (74)

1. A computer-implemented method comprising:

receiving an encoded video frame;

decompressing the received encoded video frame;

extracting a first quantization parameter (QP) from the decompressed video frame, wherein the first QP corresponds to quantization settings originally used for compressing the encoded video frame;

acquiring a delta QP based on the first QP;

acquiring an inflation adjustment based on a comparison between total byte size of frames previously decompressed and total byte size of the frames after being previously compressed, wherein the received encoded video frame and the frames previously decompressed are part of a sequence including a plurality of video frames;

acquiring a second QP based on the delta QP, the first QP, and the inflation adjustment, wherein the second QP corresponds to quantization settings for compressing the decompressed video frame;

compressing the decompressed video frame based on the acquired second QP; and

providing the compressed video frame.

2. The method of claim 1 , further comprising:

determining whether a compression format of the received encoded video frame is different from a compression format to be used for compressing the decompressed video frame;

converting, based on the determination, the first QP from an input QP scale into an output QP scale, wherein the input QP scale corresponds to the compression format of the received encoded video frame, and the output QP scale corresponds to the compression format to be used for compressing the decompressed video frame; and

acquiring the second QP based on the converted first QP and the delta QP.

3. The method of claim 2 , wherein converting the first QP is further based on a mapping between the input QP scale and the output QP scale.

4. The method of claim 1 , wherein acquiring the delta QP is further based on a mapping between the first QP and the delta QP.

5. The method of claim 1 , wherein acquiring the delta QP comprises:

choosing, if a value of the first QP is below a threshold, a positive value for the delta QP.

6. The method of claim 1 , wherein acquiring the delta QP comprises:

choosing, if a value of the first QP is above a threshold, a negative value for the delta QP.

7. The method of claim 1 , further comprising:

acquiring a quality degradation offset for controlling amount of video quality degradation to be introduced during compression of the decompressed video frame; and

acquiring the second QP based on the quality degradation offset, the first QP, and the delta QP.

8. The method of claim 7 , wherein acquiring the quality degradation offset can be based on analysis of historical data of compressed video.

9. The method of claim 7 , wherein a default value of the quality degradation offset can be set to zero if minimal quality degradation is introduced during the compression.

10. A computer-implemented method comprising:

decompressing a received encoded video frame that is a part of a sequence including a plurality of video frames;

extracting a first quantization parameter (QP) from the decompressed video frame, wherein the first QP corresponds to quantization settings originally used for compressing the encoded video frame;

acquiring a delta QP based on the first QP;

acquiring an inflation adjustment based on a comparison between total byte size of frames previously decompressed and total byte size of the frames after being previously compressed, wherein the received encoded video frame and the frames previously decompressed are part of the sequence including a plurality of video frames;

acquiring a second QP based on the delta QP and the inflation adjustment, wherein the second QP corresponds to quantization settings for compressing the decompressed video frame; and

compressing the decompressed video frame based on the second QP.

11. The method of claim 10 , wherein the inflation adjustment is further acquired based on historical data concerning the sequence including byte size inflation that has been introduced during compression of at least some of sequence frames.

12. The method of claim 10 , wherein the historical data concerning the sequence includes byte size of at least some of sequence frames previously decompressed and byte size of the at least some of the sequence frames after previously being compressed.

13. A video optimizer comprising:

a decoder configured to decompress a received encoded video frame, wherein the decompressed video frame includes a first quantization parameter (QP) corresponding to quantization settings originally used for compressing the encoded video frame;

an inflation prevention module configured to acquire an inflation adjustment based on a comparison between total byte size of frames previously decompressed and total byte size of the frames after being previously compressed, wherein the received encoded video frame and the frames previously decompressed are part of a sequence including a plurality of video frames;

a QP adjustment module configured to obtain a delta QP based on the first QP, and to acquire a second QP based on the delta QP the first QP, and the inflation adjustment, wherein the second QP corresponds to quantization settings for compressing the decompressed video frame; and

an encoder configured to compress the decompressed video frame based on the second QP.

14. The video optimizer of claim 13 , further comprising a de-quantizer configured to decompress the received encoded video frame and to extract the first QP from the decompressed video frame.

15. The video optimizer of claim 13 , wherein the QP adjustment module is further configured to:

acquire compression format adjustment accounting for differences between a compression format of the received encoded video frame and a compression format to be used for compressing the decompressed video frame;

convert the first QP from an input QP scale into an output QP scale based on the compression format adjustment, wherein the input QP scale corresponds to the compression format of the received encoded video frame, and the output QP scale corresponds to the compression format to be used for compressing the decompressed video frame; and

obtain the second QP based on the converted first QP and the delta QP.

16. The video optimizer of claim 13 , wherein the QP adjustment module is further configured to obtain the compression format adjustment from a database containing a mapping between the input QP scale and the output QP scale.

17. The video optimizer of claim 13 , wherein the QP adjustment module is further configured to obtain the delta QP from a database containing a mapping between the first QP and the delta QP.

18. The video optimizer of claim 13 , wherein the QP adjustment module is further configured to:

acquire a quality degradation offset for controlling amount of video quality degradation to be introduced during compression of the decompressed video frame; and

obtain the second QP based on the quality degradation offset and the delta QP.

19. The video optimizer of claim 18 , wherein the QP adjustment module is further configured to acquire the quality degradation offset from a database containing historical data analysis of compressed videos.

20. The video optimizer of claim 13 , further comprising a quantizer configured to compress the decompressed video frame by applying the quantization settings represented by the second QP to compression of the decompressed video frame.

21. A video optimizer comprising:

a decoder configured to decompress a received encoded video frame that is a part of a sequence of plurality of video frames, wherein the decompressed video frame includes a first quantization parameter (QP) corresponding to quantization settings originally used for compressing the encoded video frame;

a QP adjustment module configured to acquire a delta QP based on the first QP;

an inflation prevention module configured to acquire an inflation adjustment based on a comparison between total byte size of frames previously decompressed and total byte size of the frames after being previously compressed, wherein the received encoded video frame and the frames previously decompressed are part of a sequence including a plurality of video frames;

a QP adjustment module configured to acquire a second QP based on the delta QP and the inflation adjustment, wherein the second QP corresponds to quantization settings for compressing the decompressed video frame; and

an encoder configured to compress the decompressed video frame based on the second QP.

22. The video optimizer of claim 21 , wherein the inflation adjustment is further acquired based on historical data concerning the sequence including byte size inflation that has been introduced during compression of at least some of sequence frames.

23. The video optimizer of claim 21 , wherein the historical data concerning the sequence includes byte size of at least some of sequence frames previously decompressed and byte size of the at least some of the sequence frames after previously being compressed.

24. A non-transitory computer readable medium storing instructions that, when executed, cause a computer to perform a method for video optimization, the method comprising:

receiving an encoded video frame;

decompressing the received encoded video frame;

extracting a first quantization parameter (QP) from the decompressed video frame, wherein the first QP corresponds to quantization settings originally used for compressing the encoded video frame;

acquiring a delta QP based on the first QP;

acquiring an inflation adjustment based on a comparison between total byte size of frames previously decompressed and total byte size of the frames after being previously compressed, wherein the received encoded video frame and the frames previously decompressed are part of a sequence including a plurality of video frames;

acquiring a second QP based on the delta QP, the first QP, and the inflation adjustment, wherein the second QP corresponds to quantization settings for compressing the decompressed video frame;

compressing the decompressed video frame based on the second QP; and

providing the compressed video frame.

25. A non-transitory computer readable medium storing instructions that, when executed, cause a computer to perform a method for video optimization, the method comprising:

decompressing a received encoded video frame that is a part of a sequence of plurality of video frames;

extracting a first quantization parameter (QP) from the decompressed video frame, wherein the first QP corresponds to quantization settings originally used for compressing the encoded video frame;

acquiring a delta QP based on the first QP;

acquiring an inflation adjustment based on a comparison between total byte size of frames previously decompressed and total byte size of the frames after being previously compressed, wherein the received encoded video frame and the frames previously decompressed are part of the sequence including a plurality of video frames;

acquiring a second QP based on the delta QP and the inflation adjustment, wherein the second QP corresponds to quantization settings for compressing the decompressed video frame; and

compressing the decompressed video frame based on the second QP.

Assignments (10)
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 →
RELEASE OF SECURITY INTEREST Recorded Feb 20, 2015
From: PARTNERS FOR GROWTH III, L.P.
To: BYTEMOBILE, INC.
Reel/Frame 034991/0891 →
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 →
SECURITY AGREEMENT Recorded Dec 22, 2011
From: BYTEMOBILE, INC.
To: PARTNERS FOR GROWTH III, L.P.
Reel/Frame 027438/0616 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2010
From: MELNYK, MIGUEL; PENNER, ANDREW; TIDEMANN, JEREMY
To: BYTEMOBILE, INC.
Reel/Frame 024569/0591 →
Continuity (2)
Provisional Application 61165224 · Mar 31, 2009
Related Publication 20100254451A1 · Oct 7, 2010