IP Library Granted Patent US 9,451,271
Granted Patent B2
US 9,451,271 · App. 13/187,961 · Granted Sep 20, 2016

Adaptive filtering based on pattern information

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,451,271
App. No.
13/187,961
Granted
Sep 20, 2016
Kind
B2
Abstract

Encoding video data that includes a frame includes: generating a reconstructed frame from compressed data for the frame, partitioning at least some pixels of the reconstructed frame into a plurality of segments of one or more pixels, based at least in part on pattern information for individual pixels, and generating respective filter information for each of one or more of the plurality of segments. Encoded video data is generated that includes the compressed data for the frame and the generated filter information.

Claims (65)

1. A method for encoding video data including a frame, the method comprising:

generating a reconstructed frame from compressed data for the frame;

in response to generating the reconstructed frame, partitioning at least some pixels of the reconstructed frame into a plurality of segments of one or more pixels, wherein at least one segment of the plurality of segments is determined based at least in part on pattern information for individual pixels, wherein partitioning the at least some pixels of the reconstructed frame into the plurality of segments comprises:

partitioning the at least some pixels of the reconstructed frame into a plurality of sets of one or more pixels, and

further partitioning at least a first of the sets of one or more pixels into a plurality of subsets of one or more pixels, based at least in part on two-dimensional pattern information for individual pixels, wherein pattern information for a particular pixel is determined based at least in part on intensity values of pixels surrounding the particular pixel compared to an intensity value of the particular pixel,

with at least one segment corresponding to one of the sets and at least one segment corresponding to one of the subsets;

subsequent to the partitioning, determining respective filter parameters for each of one or more of the plurality of segments, wherein the respective filter parameters define respective adaptive filters to be applied to respective segments of a reconstructed video frame;

filtering pixels in a first segment of the one or more of the plurality of segments by applying the adaptive filter defined by the filter parameters for the first segment; and

generating encoded video data that includes the compressed data for the frame, and information identifying the determined filter parameters.

2. The method of claim 1 , wherein the plurality of sets of one or more pixels are determined based at least in part on variation information for individual pixels.

3. The method of claim 2 , wherein pixels that have respective values of the variation information within different ones of multiple ranges belong to different respective ones of the plurality of sets of one or more pixels.

4. The method of claim 1 , wherein determining the pattern information for the particular pixel comprises determining respective intensity values associated with multiple reference locations surrounding the particular pixel, and determining whether the intensity value of the particular pixel is larger or smaller than the intensity values associated with the reference locations.

5. The method of claim 4 , wherein at least one intensity value associated with one of the reference locations is interpolated from intensity values of multiple pixels.

6. The method of claim 1 , further comprising determining a difference between pixel values in a first segment of the reconstructed frame filtered according to filter parameters for the first segment and corresponding pixel values of the frame.

7. The method of claim 1 , further comprising generating compressed data for another frame included in the video data, based on the reconstructed frame.

8. A computer readable non-transitory medium storing a computer program for encoding input data including one or more frames, the computer program including instructions for causing a computer system to:

generate a reconstructed frame from compressed data for the frame;

in response to generating the reconstructed frame, partition at least some pixels of the reconstructed frame into a plurality of segments of one or more pixels, wherein at least one segment of the plurality of segments is determined based at least in part on pattern information for individual pixels, wherein partitioning the at least some pixels of the reconstructed frame into the plurality of segments comprises:

partitioning the at least some pixels of the reconstructed frame into a plurality of sets of one or more pixels, and

further partitioning at least a first of the sets of one or more pixels into a plurality of subsets of one or more pixels, based at least in part on two-dimensional pattern information for individual pixels, wherein pattern information for a particular pixel is determined based at least in part on intensity values of pixels surrounding the particular pixel compared to an intensity value of the particular pixel,

with at least one segment corresponding to one of the sets and at least one segment corresponding to one of the subsets;

subsequent to the partitioning, determine respective filter parameters for each of one or more of the plurality of segments, wherein the respective filter parameters define respective adaptive filters to be applied to respective segments of a reconstructed video frame;

filter pixels in a first segment of the one of more of the plurality of segments by applying the adaptive filter defined by the filter parameters for the first segment; and

generate encoded video data that includes the compressed data for the frame, and information identifying the determined filter parameters.

9. An apparatus for encoding video data including one or more frames, the apparatus comprising:

a memory configured to buffer one or more frames reconstructed from the video data; and

at least one processor coupled to the memory and configured to process the video data based on the one or more frames buffered in the memory, the processing including:

generating a reconstructed frame from compressed data for the frame;

in response to generating the reconstructed frame, partitioning at least some pixels of the reconstructed frame into a plurality of segments of one or more pixels, wherein at least one segment of the plurality of segments is determined based at least in part on pattern information for individual pixels, wherein partitioning the at least some pixels of the reconstructed frame into the plurality of segments comprises:

partitioning the at least some pixels of the reconstructed frame into a plurality of sets of one or more pixels, and

further partitioning at least a first of the sets of one or more pixels into a plurality of subsets of one or more pixels, based at least in part on two-dimensional pattern information for individual pixels, wherein pattern information for a particular pixel is determined based at least in part on intensity values of pixels surrounding the particular pixel compared to an intensity value of the particular pixel,

with at least one segment corresponding to one of the sets and at least one segment corresponding to one of the subsets;

subsequent to the partitioning, generating respective filter parameters for each of one or more of the plurality of segments, wherein the respective filter parameters defines respective adaptive filters to be applied to respective segments of a reconstructed video frame;

filtering pixels in a first segment of the one or more of the plurality of segments by applying the adaptive filter defined by the filter parameters for the first segment; and

generating encoded video data that includes the compressed data for the frame, and information identifying the determined filter parameters.

10. A method for decoding encoded video data, the method comprising:

generating a reconstructed frame from the encoded video data;

in response to generating the reconstructed frame, partitioning at least some pixels of the reconstructed frame into a plurality of segments of one or more pixels, wherein at least one segment of the plurality of segments is determined based at least in part on pattern information for individual pixels, wherein partitioning the at least some pixels of the reconstructed frame into the plurality of segments comprises:

partitioning the at least some pixels of the reconstructed frame into a plurality of sets of one or more pixels, and

further partitioning at least a first of the sets of one or more pixels into a plurality of subsets of one or more pixels, based at least in part on two-dimensional pattern information for individual pixels, wherein pattern information for a particular pixel is determined based at least in part on intensity values of pixels surrounding the particular pixel compared to an intensity value of the particular pixel,

with at least one segment corresponding to one of the sets and at least one segment corresponding to one of the subsets;

extracting from the encoded video data respective filter parameters for each of one or more of the plurality of segments, wherein the respective filter parameters define respective adaptive filters to be applied to respective segments of a reconstructed video frame; and

subsequent to the partitioning, filtering pixels in a first segment of the one or more of the plurality of segments by applying an adaptive filter derived from the filter parameters for the first segment.

11. The method of claim 10 , wherein the plurality of sets of one or more pixels are determined based at least in part on variation information for individual pixels.

12. The method of claim 11 , wherein pixels that have respective values of the variation information within different ones of multiple ranges belong to different respective ones of the plurality of sets of one or more pixels.

13. The method of claim 10 , wherein determining the pattern information for the particular pixel comprises determining respective intensity values associated with multiple reference locations surrounding the particular pixel, and determining whether the intensity value of the particular pixel is larger or smaller than the intensity values associated with the reference locations.

14. The method of claim 13 , wherein at least one intensity value associated with one of the reference locations is interpolated from intensity values of multiple pixels.

15. A computer readable non-transitory medium storing a computer program for decoding encoded video data, the computer program including instructions for causing a computer system to:

generating a reconstructed frame from the encoded video data;

in response to generating the reconstructed frame, partitioning at least some pixels of the reconstructed frame into a plurality of segments of one or more pixels, wherein at least one segment of the plurality of segments is determined based at least in part on pattern information for individual pixels, wherein partitioning the at least some pixels of the reconstructed frame into the plurality of segments comprises:

partitioning the at least some pixels of the reconstructed frame into a plurality of sets of one or more pixels, and

further partitioning at least a first of the sets of one or more pixels into a plurality of subsets of one or more pixels, based at least in part on two-dimensional pattern information for individual pixels, wherein pattern information for a particular pixel is determined based at least in part on intensity values of pixels surrounding the particular pixel compared to an intensity value of the particular pixel,

with at least one segment corresponding to one of the sets and at least one segment corresponding to one of the subsets;

extracting from the encoded video data respective filter parameters for each of one or more of the plurality of segments, wherein the respective filter parameters define respective adaptive filters to be applied to respective segments of a reconstructed video frame; and

subsequent to the partitioning, filtering pixels in a first segment of the one or more of the plurality of segments by applying an adaptive filter derived from the filter parameters for the first segment.

16. An apparatus for decoding encoded video data, the apparatus comprising:

a memory configured to buffer one or more frames reconstructed from the encoded video data; and

at least one processor coupled to the memory and configured to process the encoded video data based on the one or more frames buffered in the memory, the processing including:

generating a reconstructed frame from the encoded video data;

in response to generating the reconstructed frame, partitioning at least some pixels of the reconstructed frame into a plurality of segments of one or more pixels, wherein at least one segment of the plurality of segments is determined based at least in part on pattern information for individual pixels, wherein partitioning the at least some pixels of the reconstructed frame into the plurality of segments comprises:

partitioning the at least some pixels of the reconstructed frame into a plurality of sets of one or more pixels, and

further partitioning at least a first of the sets of one or more pixels into a plurality of subsets of one or more pixels, based at least in part on two-dimensional pattern information for individual pixels, wherein pattern information for a particular pixel is determined based at least in part on intensity values of pixels surrounding the particular pixel compared to an intensity value of the particular pixel,

with at least one segment corresponding to one of the sets and at least one segment corresponding to one of the subsets;

extracting from the encoded video data respective filter parameters for each of one or more of the plurality of segments, wherein the respective filter parameters define respective adaptive filters to be applied to respective segments of a reconstructed video frame; and

subsequent to the partitioning, filtering pixels in a first segment of the one or more of the plurality of segments by applying an adaptive filter derived from the filter parameters for the first segment.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDED PATENT NUMBER TO REMOVE PATENT NO. 8,873,407 AT PREVIOUSLY RECORDED ON REEL 64066 FRAME 1. ASSIGNOR(S) HEREBY CONFIRMS THE NUNC PRO TUNC ASSIGNMENT EFFECTIVE DATE MARCH 20, 2023. Recorded Feb 2, 2026
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 074921/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT 12817157 APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 064015 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064807/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE COVER SHEET AT PAGE 50 TO REMOVE 12817157 PREVIOUSLY RECORDED ON REEL 063471 FRAME 0474. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 5, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 064806/0669 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064066/0001 →
NUNC PRO TUNC ASSIGNMENT Recorded Jun 16, 2023
From: OT PATENT ESCROW, LLC
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064015/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2023
From: BLACKBERRY LIMITED
To: OT PATENT ESCROW, LLC
Reel/Frame 063471/0474 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2014
From: SLIPSTREAM DATA INC.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 033696/0060 →
CHANGE OF NAME Recorded Jan 22, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 032113/0594 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2011
From: SLIPSTREAM DATA INC.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 027354/0485 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2011
From: LIU, YING; HE, DAKE
To: SLIPSTREAM DATA INC.
Reel/Frame 026747/0162 →