IP Library Granted Patent US 10,992,938
Granted Patent B2
US 10,992,938 · App. 16/147,172 · Granted Apr 27, 2021

Spatial block-level pixel activity extraction optimization leveraging motion vectors

Inventors: Mehdi Saeedi (Thornhill, CA); Boris Ivanovic (Richmond Hill, CA)
Assignee: ATI Technologies ULC
H04N19/14H04N19/176H04N19/521
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,992,938
App. No.
16/147,172
Granted
Apr 27, 2021
Kind
B2
Abstract

Systems, apparatuses, and methods for implementing spatial block-level pixel activity extraction optimization leveraging motion vectors are disclosed. Control logic coupled to an encoder generates block-level pixel activity metrics for a new frame based on the previously calculated block-level pixel activity data from a reference frame. A cost is calculated for each block of a new frame with respect to a corresponding block of the reference frame. If the cost is less than a first threshold, then the control logic generates an estimate of a pixel activity metric for the block which is equal to a previously calculated pixel activity metric for a corresponding block of the reference frame. If the cost is greater than the first threshold but less than a second threshold, an estimate of the pixel activity metric is generated by extrapolating from the previously calculated pixel activity metric.

Claims (54)

1. A system comprising:

an interface configured to receive a new video frame of a video stream;

control logic coupled to the interface, wherein the control logic is configured to generate estimates of block-level pixel activity for the new video frame based on:

motion estimation data for the new video frame; and

previously calculated block-level pixel activity from a reference video frame;

an encoder configured to generate an encoded video frame based on the estimates, wherein the encoded video frame represents the new video frame.

2. The system as recited in claim 1 , wherein for each block of the new video frame, the control logic is configured to:

compare, to a first threshold, a cost of the block of the new video frame with respect to a corresponding block of the reference video frame; and

generate an estimate of pixel activity for the block, wherein the estimate is equal to previously calculated pixel activity of a corresponding block in the reference video frame if the cost is less than the first threshold.

3. The system as recited in claim 2 , wherein for each block of the new video frame, the control logic is further configured to:

compare the cost of the block to a second threshold;

responsive to determining that the cost is greater than or equal to the first threshold and less than the second threshold:

map the cost to a correction factor using a transfer function; and

generate an estimate of the pixel activity for the block by applying the correction factor to the previously calculated pixel activity of the corresponding block in the reference video frame.

4. The system as recited in claim 3 , wherein the control logic is further configured to calculate the pixel activity for the block independently of the previously calculated pixel activity if the cost is greater than or equal to the second threshold.

5. The system as recited in claim 1 , wherein the control logic is configured to classify the new video frame based on the estimates, and wherein the block-level pixel activity represents gradients, co-occurrence matrices, or any other metric where results of a mathematical operation on a first pixel value and a second pixel value at a defined relative displacement to the first pixel value are aggregated on blocks of the new video frame.

6. The system as recited in claim 1 , wherein the previously calculated block-level pixel activity is at a first granularity, and wherein the encoder is configured to generate estimates for block-level pixel activity for the new video frame at a second granularity, wherein the first granularity is a finer granularity than the second granularity.

7. The system as recited in claim 6 , wherein the encoder is configured to generate cumulative estimates for the block-level pixel activity for each block of the new video frame by summing pixel activities for a plurality of blocks from the reference video frame.

8. A method comprising:

receiving, by a server, a new video frame of a video stream; and

generating, by control logic, estimates of block-level pixel activity for a new video frame of the video stream based on:

motion estimation data for the new video frame; and

previously calculated block-level pixel activity from a reference video frame; and

generating, by an encoder, an encoded video frame based on the estimates, wherein the encoded video frame represents the new video frame.

9. The method as recited in claim 8 , further comprising:

comparing, to a first threshold, a cost of a block of the new video frame with respect to a corresponding block of the reference video frame; and

generating an estimate of pixel activity for the block, wherein the estimate is equal to previously calculated pixel activity of a corresponding block in the reference video frame if the cost is less than the first threshold.

10. The method as recited in claim 9 , further comprising:

comparing the cost of the block to a second threshold;

responsive to determining that the cost is greater than or equal to the first threshold and less than the second threshold:

mapping the cost to a correction factor using a transfer function; and

generating an estimate of the pixel activity for the block by applying the correction factor to the previously calculated pixel activity of the corresponding block in the reference video frame.

11. The method as recited in claim 10 , further comprising calculating the pixel activity for the block independently of the previously calculated pixel activity if the cost is greater than or equal to the second threshold.

12. The method as recited in claim 8 , further comprising classifying the new video frame based on the estimates, wherein the block-level pixel activity represents gradients, co-occurrence matrices, or any other metric where results of a mathematical operation on a first pixel value and a second pixel value at a defined relative displacement to the first pixel value are aggregated on blocks of the new video frame.

13. The method as recited in claim 8 , wherein the previously calculated block-level pixel activity is at a first granularity, and wherein the method further comprising generating estimates for block-level pixel activity for the new video frame at a second granularity, wherein the first granularity is a finer granularity than the second granularity.

14. The method as recited in claim 13 , further comprising generating cumulative estimates for the block-level pixel activity for each block of the new video frame by summing pixel activities for a plurality of blocks from the reference video frame.

15. An apparatus comprising:

a memory;

an encoder coupled to the memory; and

control logic coupled to the encoder, wherein the control logic is configured to generate estimates of block-level pixel activity for a new video frame based on:

motion estimation data for the new video frame; and

previously calculated block-level pixel activity from a reference video frame stored in the memory;

wherein the encoder is configured to generate an encoded video frame based on the estimates, wherein the encoded video frame represents the new video frame.

16. The apparatus as recited in claim 15 , wherein for each block of the new video frame, the control logic is configured to:

compare, to a first threshold, a cost of the block of the new video frame with respect to a corresponding block of the reference video frame; and

generate an estimate of pixel activity for the block, wherein the estimate is equal to previously calculated pixel activity of a corresponding block in the reference video frame if the cost is less than the first threshold.

17. The apparatus as recited in claim 16 , wherein for each block of the new video frame, the control logic is further configured to:

compare the cost of the block to a second threshold;

responsive to determining that the cost is greater than or equal to the first threshold and less than the second threshold:

map the cost to a correction factor using a transfer function; and

generate an estimate of the pixel activity for the block by applying the correction factor to the previously calculated pixel activity of the corresponding block in the reference video frame.

18. The apparatus as recited in claim 17 , wherein the control logic is further configured to calculate the pixel activity for the block independently of the previously calculated pixel activity if the cost is greater than or equal to the second threshold.

19. The apparatus as recited in claim 15 , wherein the control logic is configured to classify the new video frame based on the estimates, and wherein the block-level pixel activity represents gradients, co-occurrence matrices, or any other metric where results of a mathematical operation on a first pixel value and a second pixel value at a defined relative displacement to the first pixel value are aggregated on blocks of the new video frame.

20. The apparatus as recited in claim 15 , wherein the previously calculated block-level pixel activity is at a first granularity, and wherein encoder is configured to generate estimates for block-level pixel activity for the new video frame at a second granularity, wherein the first granularity is a finer granularity than the second granularity.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2018
From: SAEEDI, MEHDI; IVANOVIC, BORIS
To: ATI TECHNOLOGIES ULC
Reel/Frame 047276/0714 →
Continuity (1)
Related Publication 20200107024A1 · Apr 2, 2020
Cited By (2)
US 12,190,847 US 12,238,295