IP Library Granted Patent US 10,218,976
Granted Patent B2
US 10,218,976 · App. 15/824,358 · Granted Feb 26, 2019

Quantization matrices for compression of video

Inventors: Arvind Thiagarajan (Sunnyvale, CA); Ravilla Jaisimha (Chennai, IN)
Assignee: MatrixView, Inc.
H04N19/124H04N19/126H04N19/176H04N19/18H04N19/184H04N19/44H04N19/46H04N19/625G10L19/012
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,218,976
App. No.
15/824,358
Granted
Feb 26, 2019
Kind
B2
Abstract

Provided is a process including: obtaining video data; forming a transform matrix; dynamically forming a first modified quantization matrix; quantizing the first transform matrix with the modified quantization matrix; serializing the first quantized transform matrix to form a first sequence of values; compressing the first sequence of values with entropy coding to produce compressed video data; and forming a video bitstream that includes the compressed video data and a header, the header containing a parameter that instructs a decoder to decode the first block with a quantization matrix different from the modified quantization matrix.

Claims (71)

1. A tangible, non-transitory, machine-readable medium storing instructions that when executed by one or more processors effectuate operations comprising:

obtaining, with one or more processors, video data comprising a sequence of frames each comprising a plurality of blocks of pixel values of respective regions of pixels in respective frames;

for a first frame in the sequence of frames, for a first block in the first frame, forming, with one or more processors, a first transform matrix by determining a first matrix of frequency-domain transform coefficients based on the pixels values in the first block, the frequency-domain transform coefficients being coefficients of a discrete cosine transform or an asymmetric discrete sine transform of the pixel values of the first block;

for a second block in the first frame, forming, with one or more processors, a second transform matrix;

selecting, with one or more processors, a first predetermined quantization matrix from among a discreet predetermined set of predetermined quantization matrices;

obtaining, with one or more processors, a first modified quantization matrix that comprises a first set of values based on corresponding values in the first predetermined quantization matrix and a second set of values that are different from corresponding values in the first predetermined quantization matrix;

quantizing, with one or more processors, the first transform matrix with the modified quantization matrix to form a first quantized transform matrix;

quantizing, with one or more processors, the second transform matrix;

serializing, with one or more processors, the first quantized transform matrix to form a first sequence of values;

serializing, with one or more processors, the second transform matrix to form a second sequence of values;

compressing, with one or more processors, the first and second sequences of values with entropy coding to produce compressed video data;

forming, with one or more processors, a video bitstream that includes the compressed video data and a header associated with the first frame or segment of the first frame, the header containing a parameter that instructs a decoder to decode the first block with the predetermined quantization matrix and not with the modified quantization matrix; and

storing, with one or more processors, the compressed video bitstream in memory or transmitting the compressed video bitstream on a network,

wherein the compressed video bitstream is compressed by a greater amount than is provided for by one or more quantization parameters in one or more headers of the compressed video bitstream and is decodable by a decoder with access to the first predetermined quantization matrix but not the modified quantization matrix.

2. The medium of claim 1 , comprising:

dynamically changing quantization matrix values applied to different blocks within the first frame responsive to a target bitrate for compression.

3. The medium of claim 1 , comprising:

determining to apply a second quantization matrix that is different from the first quantization matrix in a second frame of the video data based on a target file size or target bitrate for compression.

4. The medium of claim 1 , comprising:

determining to apply a second quantization matrix that is different from the first quantization matrix to different blocks within the first frame or to different blocks in a second frame of the video data in response to a measure of difference between an input frame and a corresponding decompressed output frame.

5. The medium of claim 4 , wherein:

the measure of difference is based on a block peak signal to noise ratio; and

the determination is based on both the measure of difference and a target bit rate or a target file size.

6. The medium of claim 1 , wherein quantizing the second transform matrix comprises:

determining to quantize the second transform matrix with a different quantization matrix from the modified quantization matrix; and

quantizing the second transform matrix with the different quantization matrix.

7. The medium of claim 6 , wherein the different quantization matrix is a different modified quantization matrix that is based on the first predetermined quantization matrix and comprises a third set of values based on corresponding values in a second predetermined quantization matrix.

8. The medium of claim 1 , wherein the frequencies associated with the second set of values are, on average, higher than frequencies associated with the first set of values.

9. The medium of claim 1 , wherein the pixel values of the first block are residual values determined by:

predicting displayed pixel values of the first block based on inter-frame or intra-frame prediction; and

determining differences between the predicted displayed pixel values and original displayed pixel values in a video data source.

10. The medium of claim 1 , wherein:

the second set of values are obtained from a second predetermined quantization matrix;

the decoder has access to the second predetermine quantization matrix; and

the second predetermined quantization matrix is configured to effect greater compression of video data than the first predetermined quantization matrix.

11. The medium of claim 10 , wherein:

the second set of values are from positions in the second predetermined quantization matrix corresponding to greater than a threshold frequency.

12. The medium of claim 11 , wherein:

the first set of values are in positions of the first predetermined quantization matrix corresponding to greater than or equal to the threshold frequency.

13. The medium of claim 1 , wherein:

obtaining the first modified quantization matrix comprises injecting matrix values from a lower-image-quality quantization matrix into corresponding positions in a higher-image-quality quantization matrix, the higher-image-quality quantization matrix being the first predetermined quantization matrix.

14. The medium of claim 1 , wherein:

the quantization parameter incorrectly identifies the first predetermined quantization matrix to the decoder as a quantization matrix used to quantize the first block.

15. The medium of claim 1 , wherein:

each frame comprises a plurality of tiles, each tile having a plurality of the blocks; and

a first set of blocks of a first tile and second set of blocks of a second tile among the plurality of tiles are concurrently transformed into the frequency domain.

16. The medium of claim 1 , wherein:

obtaining the first modified quantization matrix comprises steps for obtaining a modified quantization matrix.

17. The medium of claim 1 , comprising:

dynamically determining to change values of a quantization matrix applied to transform matrices with steps for determining to change values of a quantization matrix.

18. The medium of claim 1 , comprising:

receiving a request for video content from a client computing device;

accessing a library of video content; and

sending the compressed video bitstream to the client computing device.

19. The medium of claim 18 , comprising:

determining that the client computing device is associated with a subscription; or

sending an advertisement to the client computing device for display.

20. A method, comprising:

obtaining, with one or more processors, video data comprising a sequence of frames each comprising a plurality of blocks of pixel values of respective regions of pixels in respective frames;

for a first frame in the sequence of frames, for a first block in the first frame, forming, with one or more processors, a first transform matrix by determining a first matrix of frequency-domain transform coefficients based on the pixels values in the first block, the frequency-domain transform coefficients being coefficients of a discrete cosine transform or an asymmetric discrete sine transform of the pixel values of the first block;

for a second block in the first frame, forming, with one or more processors, a second transform matrix;

selecting, with one or more processors, a first predetermined quantization matrix from among a discreet predetermined set of predetermined quantization matrices;

obtaining, with one or more processors, a first modified quantization matrix that comprises a first set of values based on corresponding values in the first predetermined quantization matrix and a second set of values that are different from corresponding values in the first predetermined quantization matrix;

quantizing, with one or more processors, the first transform matrix with the modified quantization matrix to form a first quantized transform matrix;

quantizing, with one or more processors, the second transform matrix;

serializing, with one or more processors, the first quantized transform matrix to form a first sequence of values;

serializing, with one or more processors, the second transform matrix to form a second sequence of values;

compressing, with one or more processors, the first and second sequences of values with entropy coding to produce compressed video data;

forming, with one or more processors, a video bitstream that includes the compressed video data and a header associated with the first frame or segment of the first frame, the header containing a parameter that instructs a decoder to decode the first block with the predetermined quantization matrix and not with the modified quantization matrix; and

storing, with one or more processors, the compressed video bitstream in memory or transmitting the compressed video bitstream on a network,

wherein the compressed video bitstream is compressed by a greater amount than is provided for by one or more quantization parameters in one or more headers of the compressed video bitstream and is decodable by a decoder with access to the first predetermined quantization matrix but not the modified quantization matrix.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2019
From: THIAGARAJAN, ARVIND; JAISIMHA, RAVILLA
To: MATRIXVIEW, INC.
Reel/Frame 048141/0190 →
Continuity (5)
Continuation In Part 15447755 · Mar 2, 2017
Provisional Application 62513681 · Jun 1, 2017
Provisional Application 62487777 · Apr 20, 2017
Provisional Application 62302436 · Mar 2, 2016
Related Publication 20180084253A1 · Mar 22, 2018
Cited By (1)
US 12,574,294