IP Library Granted Patent US 9,438,844
Granted Patent B2
US 9,438,844 · App. 12/099,380 · Granted Sep 6, 2016

Video multiviewer system using direct memory access (DMA) registers and block RAM

Inventors: Cristian Camer (York, CA); Marcin Komorowski (Toronto, CA)
Assignee: Imagine Communications Corp.
H04N5/44591G09G5/001G09G5/006G09G5/14G09G5/363G09G5/397H04N5/44504H04N21/426H04N21/42653H04N21/4316H04N21/440263G09G2340/0407G09G2352/00G09G2360/126G09G2370/10
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,438,844
App. No.
12/099,380
Granted
Sep 6, 2016
Kind
B2
Abstract

A video multiviewer system includes a Graphics Processing Unit (GPU) that includes a GPU memory. A video input module is operative with the GPU for receiving video data and transferring the video data to the GPU memory via a Direct Memory Access (DMA). A programmable circuit such as a Field Programmable Gate Array (FPGA) includes a multi-ported and in one aspect a dual ported block Random Access Memory (RAM) configured for a plurality of DMA channels for receiving video data and allowing uninterrupted operation of consecutive DMA transfers of video data to the GPU memory. A display displays the multiple video windows based upon video data received within the GPU memory.

Claims (31)

1. A video multiviewer system comprising:

a graphics processing unit (GPU) comprising a GPU memory;

a Direct Memory Access (DMA) controller;

a video input module configured to receive simultaneously a plurality of video streams corresponding to video data and transfer the video data to the GPU memory via DMA, wherein the video input module comprises a programmable circuit having dual-ported Block Random Access Memory (RAM) comprising first and second ports, wherein the first port is operative with a host and the second port is operative with the DMA controller, wherein the dual-ported Block RAM is configured with a plurality of DMA channels for receiving the video data based on a number of plurality of video streams received at the video input module and is further configured to allow uninterrupted operation of consecutive DMA transfers of the video data to the GPU memory, wherein the first port is configured to allow independent read/write access by the host for configuration of the plurality of DMA channels using the first port, and the second port is configured to access video data in the plurality of DMA channels using simultaneous read/write access by DMA controller through the second port; and

a display configured to receive the video data stored at the GPU memory and simultaneously present multiple video streams in respective windows of the display.

2. The video multiviewer system according to claim 1 , and further comprising a Read/Write controller and plurality of registers, wherein as the DMA controller operates on DMA channel “n,” the Read/Write controller is operative for pre-reading registers for DMA channel “n+1”.

3. The video multiviewer system according to claim 2 , wherein the DMA controller changes state variables in registers when the video data is transferred within DMA channel “n”.

4. The video multiviewer system according to claim 2 , wherein the DMA controller is operative for modifying the video data within registers and passing the video data back to the Read/Write controller to be stored back within the dual-ported Block RAM.

5. The video multiviewer system according to claim 1 , and further comprising a video data controller operative with the video input module for assigning addresses to be used for the video data within the GPU memory.

6. The video multiviewer system according to claim 1 , and further comprising a plurality of video scalers operating in parallel for generating initially scaled video data by performing video scaling in at least one dimension on the plurality of video streams.

7. A video multiviewer system comprising:

a graphics processing unit (GPU) comprising a GPU memory;

a Direct Memory Access (DMA) controller;

a Read/Write controller;

a video input module configured to receive simultaneously a plurality of video streams corresponding to video data and transfer the video data to the GPU memory via DMA, wherein the video input module comprises a Field Programmable Gate Array (FPGA) comprising a dual ported Block Random Access Memory (RAM) comprising Pre-read registers, Write Back registers and Working registers, and further comprising first and second ports, wherein the dual-ported Block RAM is configured with a plurality of DMA channels for receiving the video data based on a number of plurality of video streams received at the video input module, wherein the first port is operative with a host and the second port is operative with the DMA controller, wherein the DMA controller and the Read/Write controller are operative together with the Pre-read registers, Write Back registers and Working registers for receiving the video data and allowing uninterrupted operation of consecutive DMA transfers of the video data to the GPU memory, wherein the first port is configured to allow independent read/write access by the host for configuration of the plurality of DMA channels through the first port, and the second port is configured to access the video data of the plurality of DMA channels using simultaneous read/write access by the DMA controller through the second port; and

a display configured to receive the video data stored at the GPU memory and simultaneously present video streams in respective windows of the display.

8. The video multiviewer system according to claim 7 , wherein as the DMA controller operates on DMA channel “n,” the Read/Write controller is operative for pre-reading registers for DMA channel “n+1.

9. The video multiviewer system according to claim 7 , wherein the DMA controller changes state variables in registers when the video data is transferred within DMA channel “n”.

10. The video multiviewer system according to claim 7 , wherein the DMA controller is operative for modifying the video data and passing the video data back to the Read/Write controller to be stored back the dual-ported Block RAM.

11. The video multiviewer system according to claim 7 , and further comprising a video data controller operative with the video input module for assigning addresses to be used for the video data within the GPU memory.

12. The video multiviewer system according to claim 7 , and further comprising a plurality of video scalers operating in parallel for generating initially scaled video data by performing video scaling in at least one dimension on the plurality of video streams.

13. A method for displaying multiple video windows on a video multiviewer display, comprising:

receiving, at a video input module, simultaneously a plurality of video streams corresponding to video data, wherein the video input module is coupled to a Graphics Processing Unit (GPU) having a GPU memory and further coupled to a DMA controller;

transferring the video data to the GPU memory via DMA through a programmable circuit having a dual ported Block Random Access Memory (RAM) comprising first and second ports, wherein the first port is operative with a host and the second port is operative with the DMA controller, wherein the dual-ported Block RAM is configured with a plurality of DMA channels for receiving the video data based on a number of plurality of video streams received at the video input module and is further configured to allow uninterrupted operation of consecutive DMA transfers of the video data to the GPU memory, wherein the first port is configured to allow independent read/write access by the host for configuration of the plurality of DMA channels through the first port, and the second port is configured to access video data in the plurality of DMA channels using simultaneous read/write access by the DMA controller through the second port;

receiving, at a display, the video data stored at the GPU memory; and

presenting simultaneously video streams in respective windows.

14. The method according to claim 13 , which further comprises operating on DMA channel “n” with the DMA controller while the Read/Write controller pre-reads registers for DMA channel “n+1”.

15. The method according to claim 13 , which further comprises changing state variables in registers while transferring the video data within DMA channel “n”.

16. The method according to claim 13 , which further comprises modifying the video data within registers and passing the video data back to the Read/Write controller to be stored back within the dual-ported Block RAM.

17. The method according to claim 13 , which further comprises assigning addresses for the video data within the GPU memory.

18. The method according to claim 13 , which further comprises scaling the video data within a plurality of video scalers operating in parallel and generating initially scaled video data by performing video scaling in at least one dimension on the plurality of video streams.

Assignments (9)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 28, 2020
From: PNC BANK, NATIONAL ASSOCIATION, AS EXISTING AGENT
To: BROADCAST LENDCO, LLC, AS SUCCESSOR AGENT
Reel/Frame 052050/0074 →
CHANGE OF NAME Recorded Jul 26, 2016
From: HBC SOLUTIONS, INC.
To: IMAGINE COMMUNICATIONS CORP.
Reel/Frame 039463/0636 →
CHANGE OF NAME Recorded Jul 13, 2016
From: HBC SOLUTIONS, INC.
To: IMAGINE COMMUNICATIONS CORP.
Reel/Frame 039324/0942 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2013
From: HARRIS CORPORATION; EAGLE TECHNOLOGY, LLC
To: HBC SOLUTIONS, INC.
Reel/Frame 030333/0671 →
SECURITY AGREEMENT Recorded Apr 10, 2013
From: HBC SOLUTIONS, INC.
To: PNC BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 030192/0355 →
SECURITY AGREEMENT Recorded Apr 5, 2013
From: HBC SOLUTIONS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 030156/0636 →
SECURITY AGREEMENT Recorded Apr 5, 2013
From: HB CANADA COMMUNICATIONS LTD
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 030156/0751 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2013
From: HARRIS CORPORATION; EAGLE TECHNOLOGY INC.
To: HBC SOLUTIONS, INC.
Reel/Frame 029759/0416 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2008
From: CAMER, CRISTIAN; KOMOROWSKI, MARCIN
To: HARRIS CORPORATION
Reel/Frame 020989/0932 →
Continuity (1)
Related Publication 20090254683A1 · Oct 8, 2009