IP Library Granted Patent US 8,565,558
Granted Patent B2
US 8,565,558 · App. 13/851,223 · Granted Oct 22, 2013

Method and system for interpolating fractional video pixels

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,565,558
App. No.
13/851,223
Granted
Oct 22, 2013
Kind
B2
Abstract

A method and system for interpolating video pixels is described, in which the value of a first fractional pixel is calculated based on the values of the first set of integer pixels, while the value of a second fractional pixel is calculated based on the values of the second set of integer pixels. The first set of integer pixels is not equal to the second set of integer pixels. For example, the first and second set may contain different integer pixels and may contain different numbers of integer pixels.

Claims (48)

1. A method for interpolating a first fractional pixel FL, a half pixel H, and a second fractional pixel FR located between a first integer pixel L 0 and a second integer pixel R 0 along a pixel line, wherein the pixel line further includes a third integer pixel L 1 , a fourth integer pixel R 1 , a fifth integer pixel L 2 , a sixth integer pixel R 2 , a seventh integer pixel L 3 and an eighth integer pixel R 3 , the method comprising:

selecting a first set of integer pixels along the pixel line, the first set consisting of the seventh integer pixel L 3 , the fifth integer pixel L 2 , the third integer pixel L 1 , the first integer pixel L 0 , the second integer pixel R 0 , the fourth integer pixel R 1 and the sixth integer pixel R 2 ;

selecting a second set of integer pixels along the pixel line, the second set consisting of the eighth integer pixel L 3 , the fifth integer pixel L 2 , the third integer pixel L 1 , the first integer pixel L 0 , the second integer pixel R 0 , the fourth integer pixel R 1 , the sixth integer pixel R 2 and the eighth integer pixel R 3 ;

selecting a third set of integer pixels along the pixel line the third set consisting of the fifth integer pixel L 2 , the third integer pixel L 1 , the first integer pixel L 0 , the second integer pixel R 0 , the fourth integer pixel R 1 , the sixth integer pixel R 2 and the eighth integer pixel R 3 ,

wherein the first integer pixel L 0 and the second integer pixel R 0 are between the third integer pixel L 1 and the fourth integer pixel R 1 , the third integer pixel L 1 and the fourth integer pixel R 1 are between the fifth integer pixel L 2 and the sixth integer pixel R 2 , and the fifth integer pixel L 2 and the sixth integer pixel R 2 are between the seventh integer pixel L 3 and the eighth integer pixel R 3 ;

calculating a value for the first fractional pixel FL based on the values of the pixels of the first set;

calculating a value for the half pixel H based on the values of the pixels in the second set; and

calculating a value for the second fractional pixel FR based on the values of the pixels in the third set.

2. The method of claim 1 ,

wherein the step of calculating a value for the first fractional pixel FL comprises applying weighting factors to the values of the integer pixels of the first set,

wherein the step of calculating a value for the half pixel H comprises applying weighting factors to the values of the integer pixels of the second set, the weighting factors being symmetrical about the half pixel H, and

wherein the step of calculating a value for the second fractional pixel FR comprises applying weighting factors to the values of the integer pixels of the third set,

wherein the weighting factors applied to the values of the pixels of the first set are reflections about the half pixel of the weighting factors applied to the values of the pixels of the third set.

3. The method of claim 1 , wherein the steps of calculating a value for the first fractional pixel FL, the half pixel H, and the second fractional pixel FR comprise calculating FL, H and FR, respectively, based on:

FL =( FLW L 3 *L 3 +FLW L2 *L 2 +FLW L1 *L 1 +FLW L0 *L 0 +FLW R0 *R 0 +FLW R1 *R 1 +FLW R2 *R 2 +FL RoundingOffset)>> FL RightShiftBits;

H =( HW L3 *L 3 +HW L2 *L 2 +HW L1 *L 1 +HW L0 *L 0 +HW R0 *R 0 +HW R1 *R 1 +HW R2 *R 2 +HW R3 *R 3 +H RoundingOffset)>> H RightShiftBits;

FR =( FRW L2 *L 2 +FRW L1 *L 1 +FRW L0 *L 0 +FRW R0 *R 0 +FRW R1 *R 1 +FRW R2 *R 2 +FRW R3 *R 3 +FR RoundingOffset)>> FR RightShiftBits,

wherein FLW L3 , FLW L2 , FLW L1 , FLW L0 , FLW R0 , FLW R1 , and FLW R2 are the weighting factors of L 3 , L 2 , L 1 , L 0 , R 0 , R 1 and R 2 respectively, FLRoundingOffset is the rounding offset, and FLRightShiftBits is the number of right shift bits;

wherein HW L3 , HW L2 , HW L1 , HW L0 , HW R0 , HW R1 , HW R2 , and HW R3 are the weighting factors of L 3 , L 2 , L 1 , L 0 , R 0 , R 1 , R 2 and R 3 , HRoundingOffset is the rounding offset, and HRightShiftBits is the number of right shift bits; and

wherein FRW L2 , FRW L1 , FRW L0 , FRW R0 , FRW R1 , FRW R2 , and FRW R3 are the weighting factors of L 2 , L 1 , L 0 , R 0 , R 1 , R 2 and R 3 , FRRoundingOffset is the rounding offset, and FRRightShiftBits is the number of right shift bits.

4. The method of claim 3 ,

wherein HW L3 =HW R3 , HW L2 =HW R2 , HW L1 =HW R1 , and HW L0 =HW R0 ,

and wherein FLW L3 =FRW R3 , FLW L2 =FRW R2 , FLW L1 =FRW R1 , FLW L0 =FRW R0 , FLW R0 =FRW L0 , FLW R1 =FRW L1 , FLW R2 =FRW L2 .

5. A video processing system, the system comprising:

a processor that executes instructions for performing steps comprising:

reading a pixel line comprising a first integer pixel L 0 , a second integer pixel R 0 , a third integer pixel L 1 , a fourth integer pixel R 1 , a fifth integer pixel L 2 , a sixth integer pixel R 2 , a seventh integer pixel L 3 and an eighth integer pixel R 3 ,

selecting a first set of integer pixels along the pixel line, the first set consisting of the seventh integer pixel L 3 , the fifth integer pixel L 2 , the third integer pixel L 1 , the first integer pixel L 0 , the second integer pixel R 0 , the fourth integer pixel R 1 and the sixth integer pixel R 2 ;

selecting a second set of integer pixels along the pixel line, the second set consisting of the eighth integer pixel L 3 , the fifth integer pixel L 2 , the third integer pixel L 1 , the first integer pixel L 0 , the second integer pixel R 0 , the fourth integer pixel R 1 , the sixth integer pixel R 2 and the eighth integer pixel R 3 ;

selecting a third set of integer pixels along the pixel line the third set consisting of the fifth integer pixel L 2 , the third integer pixel L 1 , the first integer pixel L 0 , the second integer pixel R 0 , the fourth integer pixel R 1 , the sixth integer pixel R 2 and the eighth integer pixel R 3 ,

wherein the first integer pixel L 0 and the second integer pixel R 0 are between the third integer pixel L 1 and the fourth integer pixel R 1 , the third integer pixel L 1 and the fourth integer pixel R 1 are between the fifth integer pixel L 2 and the sixth integer pixel R 2 , and the fifth integer pixel L 2 and the sixth integer pixel R 2 are between the seventh integer pixel L 3 and the eighth integer pixel R 3 ;

calculating a value for a first fractional pixel FL located between the first integer pixel L 0 and the second integer pixel R 0 based on the values of the pixels of the first set;

calculating a value for a half pixel H located between the first integer pixel L 0 and the second integer pixel R 0 based on the values of the pixels in the second set; and

calculating a value for a second fractional pixel FR located between the first integer pixel L 0 and the second integer pixel R 0 based on the values of the pixels in the third set.

6. The system of claim 5 ,

wherein the step of calculating a value for the first fractional pixel FL comprises applying weighting factors to the values of the integer pixels of the first set,

wherein the step of calculating a value for the half pixel H comprises applying weighting factors to the values of the integer pixels of the second set, the weighting factors being symmetrical about the half pixel H, and

wherein the step of calculating a value for the second fractional pixel FR comprises applying weighting factors to the values of the integer pixels of the third set,

wherein the weighting factors applied to the values of the pixels of the first set are reflections about the half pixel of the weighting factors applied to the values of the pixels of the third set.

7. The system of claim 5 , wherein the steps of calculating a value for a first fractional pixel FL, a half pixel H, and a second fractional pixel FR comprise calculating FL, H and FR, respectively, based on:

FL =( FLW L3 *L 3 +FLW L2 *L 2 +FLW L1 *L 1 +FLW L0 *L 0 +FLW R0 *R 0+ FLW R1 *R 1 +FLW R2 *R 2 +FL RoundingOffset)>> FL RightShiftBits;

H =( HW L3 *L 3 +HW L2 *L 2 +HW L1 *L 1 +HW L0 *L 0 +HW R0 *R 0 +HW R1 *R 1+ HW R2 *R 2 +HW R3 *R 3 +H RoundingOffset)>> H RightShiftBits;

FR =( FRW L2 *L 2 +FRW L1 *L 1 +FRW L0 *L 0 +FRW R0 *R 0 +FRW R1 *R 1+ FRW R2 *R 2+ FRW R3 *R 3 +FR RoundingOffset)>> FR RightShiftBits,

wherein FLW L3 , FLW L2 , FLW L1 , FLW L0 , FLW R0 , FLW R1 , and FLW R2 are the weighting factors of L 3 , L 2 , L 1 , L 0 , R 0 , R 1 and R 2 respectively, FLRoundingOffset is the rounding offset, and FLRightShiftBits is the number of right shift bits;

wherein HW L3 , HW L2 , HW L1 , HW L0 , HW R0 , HW R1 , HW R2 , and HW R3 are the weighting factors of L 3 , L 2 , L 1 , L 0 , R 0 , R 1 , R 2 and R 3 , HRoundingOffset is the rounding offset, and HRightShiftBits is the number of right shift bits; and

wherein FRW L2 , FRW L1 , FRW L0 , FRW R0 , FRW R1 , FRW R2 , and FRW R3 are the weighting factors of L 2 , L 1 , L 0 , R 0 , R 1 , R 2 and R 3 , FRRoundingOffset is the rounding offset, and FRRightShiftBits is the number of right shift bits.

8. The system of claim 7 ,

wherein HW L3 =HW R3 , HW L2 =HW R2 , HW L1 =HW R1 , and HW L0 =HW R0 ,

and wherein FLW L3 =FRW R3 , FLW L2 =FRW R2 , FLW L1 =FRW R1 , FLW L0 =FRW R0 , FLW R0 =FRW L0 , FLW R1 =FRW L1 , FLW R2 =FRW L2 .

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2014
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 034280/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2014
From: LOU, JIAN; BAYLON, DAVID M.; MINOO, KOOHYAR; PANUSOPONE, KRIT
To: GENERAL INSTRUMENT CORPORATION
Reel/Frame 033781/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2014
From: GENERAL INSTRUMENT CORPORATION
To: GENERAL INSTRUMENT HOLDINGS, INC.
Reel/Frame 033781/0067 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2014
From: GENERAL INSTRUMENT HOLDINGS, INC.
To: MOTOROLA MOBILITY LLC
Reel/Frame 033781/0151 →