IP Library Granted Patent US 8,064,516
Granted Patent B2
US 8,064,516 · App. 11/159,217 · Granted Nov 22, 2011

Text recognition during video compression

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,064,516
App. No.
11/159,217
Granted
Nov 22, 2011
Kind
B2
Abstract

A method for encoding an image of a video stream divided into macroblocks comprising determining a maximum of variance of luma blocks in a macroblock, determining if the maximum of variance exceeds a predetermined threshold, determining if the motion vectors of the macroblock are in correlation with a reference macroblock, determining if the macroblock is not an edge macroblock and setting a first quantization level for the macroblock if it meets these conditions and setting a second quantization level for the macroblock if it does not meet these conditions, where the second quantization level is greater than the first quantization level.

Claims (29)

1. A method to encode an image divided into macroblocks, each macroblock including a plurality of luma blocks and a plurality of chroma blocks, wherein each luma and chroma block includes an array of pixels, comprising:

determining a maximum variance of luma blocks in a macroblock;

determining if said macroblock is in correlation with at least one reference macroblock by computing a correlation between motion vectors of said macroblock and motion vectors of said at least one reference macroblock;

quantizing said macroblock using a quantization level based on said maximum variance of said luma blocks and said correlation between said macroblock and said at least one reference macroblock, wherein said quantizing step includes setting a first quantization level for said macroblock if said maximum variance of said luma blocks is greater than a predetermined threshold and said macroblock is in correlation with at least one reference macroblock, and if each of a plurality of reference macroblocks has a maximum variance of its respective luma blocks greater than a predetermined threshold and is in correlation with its at least one respective reference macroblock, otherwise setting a second quantization level for said macroblock, wherein said second quantization level is greater than said first quantization level; and

repeating said determining and quantizing steps for each macroblock in said image.

2. The method of claim 1 , wherein a macroblock is in correlation with an reference macroblock if a horizontal motion vector of said macroblock is in correlation up to a predetermined threshold with a horizontal motion vector of said reference macroblock and if a vertical motion vector of said macroblock is zero.

3. The method of claim 1 , wherein said image is one of a P-picture or a B-picture of an mpeg video stream.

4. The method of claim 1 , wherein a reference macroblock is a macroblock prior to said macroblock and a number of reference macroblocks is at least three.

5. A method to encode an divided into macroblocks, each macroblock including a plurality of luma blocks and a plurality of chroma blocks wherein each luma and chroma block includes an array of pixels, comprising:

determining a maximum variance of luma blocks in a macroblock;

determining if said macroblock is in correlation with at least one reference macroblock by computing a correlation between motion vectors of said macroblock and motion vectors of said at least one reference macroblock;

quantizing said macroblock using a quantization level based on said maximum variance of said luma blocks and said correlation between said macroblock and said at least one reference macroblock, wherein said quantizing step includes setting a first quantization level for said macroblock if each of a plurality of reference macroblocks has a maximum variance of its respective luma blocks greater than a predetermined threshold and is in correlation with its at least one respective reference macroblock, otherwise setting a second quantization level for said macroblock wherein said second quantization level is greater than said first quantization level; and

repeating the determining and quantizing steps for each macroblock in said image.

6. The method of claim 5 , wherein said reference macroblocks are macroblocks prior to said macroblock and a number of reference macroblocks is at least three.

7. The method of claim 5 , wherein a macroblock is in correlation with an reference macroblock if a horizontal motion vector of said macroblock is in correlation up to a predetermined threshold with a horizontal motion vector of said reference macroblock and if a vertical motion vector of said macroblock is zero.

8. A method to encode an image divided into macroblocks, each macroblock including a plurality of luma blocks and a plurality of chroma blocks, wherein each luma and chroma block includes an array of pixels, comprising:

determining a maximum variance of luma blocks in a macroblock;

determining if said macroblock is in correlation with at least one reference macroblock by computing a correlation between motion vectors of said macroblock and motion vectors of said at least one reference macroblock;

quantizing said macroblock using a quantization level based on said maximum variance of said luma blocks and said correlation between said macroblock and said at least one reference macroblock, wherein said quantizing step includes setting a first quantization level for said macroblock if said maximum variance of said luma blocks is greater than a predetermined threshold and said macroblock is in correlation with at least one reference macroblock and if each of a plurality of reference macroblocks has a maximum variance of its respective luma blocks greater than a predetermined threshold and is in correlation with its at least one respective reference macroblock and if said macroblock is not an edge macroblock, otherwise setting a second quantization level for said macroblock wherein said second quantization level is greater than said first quantization level; and

repeating said determining and quantizing steps for each macroblock in said image.

9. The method of claim 8 , wherein a reference macroblock is a macroblock prior to said macroblock and a number of reference macroblocks is at least three.

10. The method of claim 8 , wherein a macroblock is in correlation with an reference macroblock if a horizontal motion vector of said macroblock is in correlation up to a predetermined threshold with a horizontal motion vector of said reference macroblock and if a vertical motion vector of said macroblock is zero.

11. A method to, encode an image divided into macroblocks, each macroblock including plurality of luma blocks and a plurality of chroma blocks, wherein each luma and chroma block includes, an array of pixels, comprising:

determining a maximum variance of luma blocks in a macroblock;

determining if said macroblock is in correlation with at least one reference macroblock by computing a correlation between, motion vectors of said macroblock and motion vectors of said at least one reference macroblock;

quantizing said macroblock using a quantization level based on said maximum variance of said luma blocks and said correlation between said macroblock and said at least one, reference macroblock, wherein said quantizing step includes setting a first quantization level for said macroblock if each of a plurality of reference macroblocks has a maximum variance of its respective luma blocks greater than a predetermined threshold and is in correlation with its at least one respective reference macroblock and if said macroblock is not an edge macroblock, otherwise setting a second quantization level for said macroblock wherein said second quantization level is greater than said first quantization level; and

repeating said determining and quantizing steps for each macroblock in said image.

12. The method of claim 11 , wherein a reference macroblock is a macroblock prior to said macroblock and a number of reference macroblocks is at least three.

13. The method of claim 11 , wherein a macroblock is in correlation with an reference macroblock if a horizontal motion vector of said macroblock is in correlation up to a predetermined threshold with a horizontal motion vector of said reference macroblock and if a vertical motion vector of said macroblock is zero.

Assignments (4)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2005
From: KOJOKARO, GIDEON; DREZNER, DAVID
To: BROADCOM CORPORATION
Reel/Frame 016723/0592 →