IP Library › Granted Patent US 8,817,884
Granted Patent B2
US 8,817,884 · App. 12/951,035 · Granted Aug 26, 2014

Techniques for perceptual encoding of video frames

Inventors: Arun Shankar Kudana (Bangalore, IN); Ajit Venkat Rao (Bangalore, IN); Soyeb Nagori (Bangalore, IN); Manoj Koul (Bangalore, IN); Zhan Ma (Brooklyn, NY); Do-Kyoung Kwon (Allen, TX)
Assignee: Texas Instruments Incorporated
H04N19/00175H04N19/0003H04N19/00921H04N19/00036H04N19/00296H04N19/00248H04N19/0009H04N19/0026H04N19/00157H04N19/00351H04N19/0089H04N19/00303
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 8,817,884
App. No.
12/951,035
Granted
Aug 26, 2014
Kind
B2
Abstract

In a video encoder, pixel values of a macro-block are processed to determine an activity measure indicative of the type of content in the macro-block. Several techniques are employed for determining the activity measure of a macro-block. In an embodiment, a default quantization scale for quantizing a macro-block is modified based on the activity measure of the macro-block. In another embodiment, the macro-block is classified into one of multiple classes based on its activity measure. The default quantization scale for quantizing the macro-block is modified based on the classification of the macro-block. In yet another embodiment, an encoding mode to be used for encoding a macro-block is also determined on the basis of the class of the macro-block. Several of the techniques exploit the fact that the human visual system (HVS) has different sensitivities in perceiving a (rendered) macro-block or video frame, depending on the type of macro-block content.

Claims (48)

1. A method of encoding a video frame, the method being implemented in a video encoder, the method comprising;

receiving the video frame;

performing a high-pass filtering operation on the video frame to obtain a filtered video frame;

resetting to zero, a value of each pixel in the filtered video frame, if the value of the corresponding pixel in the filtered video frame is less than a first threshold value, wherein the resetting forms a thresholded video frame;

classifying a macro-block of the thresholded video frame into one of multiples classes on the basis of an activity measure of the macro-block, wherein the classifying further comprises determining a factor maxAct and a factor minAct, wherein maxAct equals the largest number of non-zero pixel values of any macro-block among the macro-blocks in the video frame, and wherein minAct equals the smallest number of non-zero pixel values of any macro-block among the macro-blocks in the video frame, and computing a second threshold TH 1 , wherein TH 1 is computed according to the formula: TH 1 =(maxAct−minAct)*CF+minAct, wherein CF is a control factor, wherein the classifying classifies the macro-block as a smooth macro-block if the number of non-zero pixel values in the macro-block is less than TH 1 ; and

modulating a quantization scale received for quantizing the macro-block on the basis of the class of the macro-block.

2. The method of claim 1 , wherein the activity measure of the macro-block is determined based on a number of pixels with non-zero values in the macro-block.

3. The method of claim 1 , wherein if the number of non-zero pixel values in the macro-block is greater than TH 1 and if the classifying has classified all macro-blocks adjacent to the macro-block as smooth macro-blocks, the classifying classifies the macro-block as an edge macro-block and as a texture macro-block otherwise.

4. A method of encoding a video frame, the method being implemented in a video encoder, the method comprising;

receiving the video frame;

computing a transform for each of a plurality of N×N blocks in the video frame;

forming a DC picture containing only DC coefficients of the transforms obtained by the computing, wherein there exists a one-to-one correspondence between each N×N block in the DC picture and a macro-block in the video frame;

classifying, into one of multiples classes, macro-blocks in the video frame on the basis of a standard deviation of pixel values of corresponding N×N blocks in the DC picture, wherein the classifying further comprises determining a factor maxAct and a factor minAct, wherein maxAct equals the largest number of non-zero pixel values of any macro-block among the macro-blocks in the video frame, and wherein minAct equals the smallest number of non-zero pixel values of any macro-block among the macro-blocks in the video frame, and computing a second threshold TH 1 , wherein TH 1 is computed according to the formula: TH 1 =(maxAct−minAct)*CF+minAct, wherein CF is a control factor, wherein the classifying classifies the macro-block as a smooth macro-block if the number of non-zero pixel values in the macro-block is less than TH 1 ; and

modulating a quantization scale received for quantizing the macro-block on the basis of the class of the macro-block.

5. The method of claim 4 , wherein if the standard deviation of the corresponding N×N block is greater than TH 2 and if the classifying has classified all macro-blocks adjacent to a second macro-block as smooth macro-blocks, the classifying classifies the second macro-block as an edge macro-block, and as a texture macro-block otherwise.

6. The method of claim 5 , wherein the modulating comprises:

multiplying the quantization scale received for quantizing the macro-block by a first scaling factor if the classifying classifies the macro-block as a smooth macro-block,

multiplying the quantization scale received for quantizing the macro-block by a second scaling factor if the classifying classifies the macro-block as an edge macro-block, and

multiplying the quantization scale received for quantizing the macro-block by a third scaling factor if the classifying classifies the macro-block as a texture macro-block.

7. A method of encoding a video frame, the method being implemented in a video encoder, the method comprising:

receiving the video frame;

classifying a macro-block in the video frame into one of a plurality of classes wherein, if the classifying classifies the macro-block as an edge macro-block, the value of λad is computed as:

λ ad =λ( qpe−δe ),

wherein,

λad is the adapted value of the Lagrangian multiplier to be used to minimize J if the macro-block is an edge macro-block,

qpe is the modulated quantization parameter for an edge macro-block, and

δe is a constant,

wherein, if the classifying classifies the macro-block as a texture macro-block, the value of λad is computed as:

λ ad =λ( qpt+δt ),

wherein,

λad is the adapted value of the Lagrangian multiplier to be used to minimize J if the macro-block is a texture macro-block,

qpt is the modulated quantization parameter for a texture macro-block, and δt is a constant, and

wherein, if the classifying classifies the macro-block as a smooth macro-block, the value of λad is computed as:

λ ad =λ( gps )

wherein, λad is the adapted value of the Lagrangian multiplier to be used to minimize J if the macro-block is a smooth macro-block, and

qps is the modulated quantization parameter for a smooth macro-block;

modulating a quantization scale received for quantizing the macro-block on the basis of the class of the macro-block to generate a modulated quantization scale, the class of the macro-block being determined by the classifying; and

determining an encoding mode for the macro-block on the basis of the class.

8. The method of claim 7 , wherein the determining comprises:

computing an adapted value λad of a Lagrange multiplier based on the value of the modulated quantization scale, wherein there exists a one-to-one correspondence between λad and the modulated quantization scale;

minimizing a Lagrange cost for encoding the macro-block, wherein the Lagrange cost is computed according to the following equation:

J=D+λad *R,

wherein,

J is the Lagrange cost,

D represents a distortion in the macro-block due to the encoding,

λad is the adapted Lagrange multiplier, and

R is the transmission bit-rate,

wherein the determining determines the encoding mode as a mode that corresponds to the minimized Lagrange cost J.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2010
From: KUDANA, ARUN SHANKAR; RAO, AJIT VENKAT; NAGORI, SOYEB; KOUL, MANOJ; MA, ZHAN; KWON, DO-KYOUNG; TEXAS INSTRUMENTS (INDIA) PRIVATE LIMITED
To: TEXAS INSTRUMENTS INCORPORATED
Reel/Frame 025525/0909 →
Continuity (2)
Provisional Application 61262960 · Nov 20, 2009
Related Publication 20110122942A1 · May 26, 2011