IP Library Granted Patent US 12666007
Granted Patent B2
US 12666007 · App. 18/738,013 · Granted Jun 23, 2026

Application accelerator

Inventors: Dotan David Levi (Kiryat Motzkin, IL); Assaf Weissman (Moreshet, IL); Kobi Pines (Yahad, IL); Noam Bloch (Bat Shlomo, IL); Erez Yaacov (Kibbutz Sarid, IL); Ariel Naftali Cohen (Zichron Yaakov, IL)
Assignee: Mellanox Technologies, Ltd.
H04N19/105H04N19/139H04N19/176H04N19/147
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 12666007
App. No.
18/738,013
Granted
Jun 23, 2026
Kind
B2
Abstract

A system for video encoding includes an acceleration device, to select from a video stream a target video frame and one or more reference frames. The target and reference frames are divided into respective first pluralities of first blocks of a first size and into respective second pluralities of second blocks of a second size, larger than the first size. At least a first map and a second map are computed, including respective motion vectors between each first block in the target video frame and corresponding first blocks in the reference frames, and between each second block in the target video frame and corresponding second blocks in the one or more reference frames. A control unit encodes the target video frame based on at least one of the reference frames by selecting motion vectors from among the motion vectors in the first and second maps.

Claims (27)

1 . A system for video encoding, comprising:

an acceleration device, to select from a video stream a target video frame and one or more reference frames to be applied in encoding the target video frame, to divide the target video frame and the one or more reference frames into respective first pluralities of first blocks of a first size and into respective second pluralities of second blocks of a second size, larger than the first size, to divide the target video frame and the one or more reference frames further into respective third pluralities of third blocks of a third size, larger than the second size, to compute at least a first map, comprising respective first motion vectors between each first block in the target video frame and corresponding first blocks in the one or more reference frames, a second map, comprising respective second motion vectors between each second block in the target video frame and corresponding second blocks in the one or more reference frames, and a third map, comprising respective third motion vectors between each third block in the target video frame and corresponding third blocks in the one or more reference frames; and

a control unit, to encode the target video frame based on at least one of the reference frames by selecting motion vectors from among the first, second and third motion vectors in the first, second and third maps.

2 . The system according to claim 1 , wherein the acceleration device is to downscale the target video frame and the one or more reference frames and to derive the second blocks from the downscaled target video and reference frames.

3 . The system according to claim 2 , wherein the acceleration device is to derive the first block from the target video frame and the one or more reference frames at a full resolution of the video stream.

4 . The system according to claim 2 , wherein the downscaled target video and reference frames are downscaled by ¼×¼ relative to the target video and reference frames that are selected from the video stream.

5 . The system according to claim 2 , wherein the downscaled target video and reference frames are downscaled by ⅛×⅛ relative to the target video and reference frames that are selected from the video stream.

6 . The system according to claim 2 , wherein the downscaled target video and reference frames are downscaled asymmetrically relative to the target video and reference frames that are selected from the video stream.

7 . The system according to claim 1 , wherein the acceleration device is to compute a result map, which comprises entries each comprising a respective first or second motion vector and respective reference scores for the motion vectors in the entries, and wherein the control unit is to encode the target video frame by selecting the motion vectors from the result map responsively to the reference scores.

8 . The system according to claim 7 , wherein the control unit is to encode a plurality of adjacent blocks having equal motion vectors by aggregating the plurality of adjacent blocks into a larger block.

9 . The system according to claim 1 , wherein the acceleration device is to compute at least the first and second maps with respect to at least first and second, different reference frames.

10 . The system according to claim 1 , wherein the acceleration device is to select a plurality of target video frames from the video stream and to compute the first and second maps with respect to a give reference frame for each of at least two of the target video frames.

11 . A method for video encoding, comprising:

selecting from a video stream a target video frame and one or more reference frames to be applied in encoding the target video frame;

dividing the target video frame and the one or more reference frames into respective first pluralities of first blocks of a first size and into respective second pluralities of second blocks of a second size, larger than the first size;

dividing the target video frame and the one or more reference frames further into respective third pluralities of third blocks of a third size, larger than the second size;

computing at least a first map, comprising respective first motion vectors between each first block in the target video frame and corresponding first blocks in the one or more reference frames, a second map, comprising respective second motion vectors between each second block in the target video frame and corresponding second blocks in the one or more reference frames, and a third map, comprising respective third motion vectors between each third block in the target video frame and corresponding third blocks in the one or more reference frames; and

encoding the target video frame based on at least one of the reference frames by selecting motion vectors from among the first second and third motion vectors in the first second and third maps.

12 . The method according to claim 11 , wherein dividing the target video frame and the one or more reference frames comprises downscaling the target video frame and the one or more reference frames and deriving the second blocks from the downscaled target video and reference frames.

13 . The method according to claim 12 , wherein dividing the target video frame and the one or more reference frames comprises deriving the first block from the target video frame and the one or more reference frames at a full resolution of the video stream.

14 . The method according to claim 12 , wherein the downscaled target video and reference frames are downscaled by ¼×¼ relative to the target video and reference frames that are selected from the video stream.

15 . The method according to claim 12 , wherein the downscaled target video and reference frames are downscaled by ⅛×⅛ relative to the target video and reference frames that are selected from the video stream.

16 . The method according to claim 12 , wherein the downscaled target video and reference frames are downscaled asymmetrically relative to the target video and reference frames that are selected from the video stream.

17 . The method according to claim 11 , and comprising computing a result map, which comprises multiple entries each comprising a respective first or second motion vector and respective reference scores for the motion vectors in the entries, and wherein encoding the target video frame comprises selecting the motion vectors from the result map responsively to the reference scores.

18 . The method according to claim 17 , wherein selecting the motion vectors comprises encoding a plurality of adjacent blocks having equal motion vectors by aggregating the plurality of adjacent blocks into a larger block.

19 . The method according to claim 11 , wherein the first and second maps are computed with respect to at least first and second, different reference frames.

20 . The method according to claim 11 , wherein selecting the target video frame comprises selecting a plurality of target video frames from the video stream, and wherein computing at least the first map and the second map comprises computing the first and second maps with respect to a give reference frame for each of at least two of the target video frames.