IP Library Granted Patent US 9,218,637
Granted Patent B2
US 9,218,637 · App. 14/577,265 · Granted Dec 22, 2015

Method of making a video stream from a plurality of viewports within large format imagery

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,218,637
App. No.
14/577,265
Granted
Dec 22, 2015
Kind
B2
Abstract

A method of making a video stream from a plurality of viewports within large format imagery is described. In one embodiment, the method includes retrieving a plurality of viewports within a plurality of images, each image being arranged as a matrix of tiles, from a file container. The method includes inputting parameters including an identification of a plurality of records where the plurality of images containing the plurality of viewports are stored, an origin of each of the plurality of viewports and a pixel width and a pixel height of each of the plurality viewports. The method further includes requesting the plurality of viewports from the file container using the parameters; and reading data of each of the plurality of viewports starting from the origin of each or the plurality of viewports. The method may further include arranging the plurality of viewports as a video codestream of a group of pictures.

Claims (45)

1. A method of retrieving a plurality of viewports within a plurality of temporally sequential images from a file container containing a plurality of records, each image in the plurality of temporally sequential images being located in one record in the plurality of records, the method being implemented by a computer system that includes one or more processors configured to execute computer program modules, the method comprising:

reading, by the one or more processors, data parameters including i) an identification of the plurality of records where the plurality of temporally sequential images containing the plurality of viewports are stored, ii) an origin of each of the plurality of viewports, and iii) a pixel width and a pixel height of each of the plurality of viewports, each of the plurality of viewports being located within a corresponding one of the plurality of temporally sequential images; and

reading, by the one or more processors, data of each of the plurality of viewports that are located in corresponding each of the plurality of temporally sequential images based on the data parameters and starting from the origin of each of the plurality of viewports.

2. The method according to claim 1 , further comprising processing, by the one or more processors, the data of each of the plurality of viewports.

3. The method according to claim 1 , further comprising displaying, by the one or more processors, the data of each of the plurality of viewports on a display device.

4. The method according to claim 1 , further comprising streaming, by the one or more processors, the plurality of viewports as a video codestream in a specified video format.

5. The method according to claim 4 , wherein the video format includes at least one of an MPEG format, MJPEG format, MPEG-2 format, MPEG-4 format, AVI format, MKV format, or WMV format, for display on a display device or for processing by another processing device, or both.

6. The method according to claim 4 , further comprises delivering, by the one or more processors, the video codestream upon receiving a request from a user computer in communication with the computer system.

7. The method according to claim 1 , wherein reading data of each of the plurality of viewports comprises reading the data of each of the plurality of the viewports in parallel.

8. The method according to claim 7 , further comprising ordering the plurality of viewports that are read in parallel to obtain a video codestream.

9. The method according to claim 1 , wherein the plurality of temporally sequential images have substantially equal width and equal height.

10. The method according to claim 1 , wherein the plurality of viewports have substantially equal width and equal height.

11. The method according to claim 1 , wherein a position of the origin of each of the plurality viewports within the corresponding each of the plurality of temporally sequential images is substantially fixed from one viewport in one image of the plurality of images to a next viewport in a next image of the plurality of images.

12. The method according to claim 1 , wherein a position of the origin of each of the plurality of viewports within the corresponding each of the plurality of images is moved from one viewport in one image of the plurality of images to a next viewport in a next image of the plurality of images.

13. The method according to claim 1 , further comprising requesting, by the one or more processors, the plurality of viewports from the file container using the parameters.

14. The method according to claim 13 , wherein the requesting comprises requesting using hypertext transfer protocol (HTTP).

15. The method according to claim 1 , wherein the data parameters further include specifying a desired output format of the plurality of viewports.

16. The method according to claim 1 , wherein the method is implemented as a web-based service.

17. The method according to claim 1 , wherein reading data of each of the plurality of viewports comprises reading the data starting from a location aligned to an integer multiple of a block size of a storage device where the file container is located.

18. A computer program product comprising a computer readable medium having instructions stored thereon when executed by the computer system performs the method recited in claim 1 .

19. A method for providing a video codestream from a container, the method being implemented by a computer system that includes one or more processors configured to execute computer program modules, the method comprising:

receiving, by the one or more processors, a request for streaming video of a sequence of viewports, each viewport in the sequence of viewports being contained within one image in a plurality of temporally sequential images located within a plurality of records stored in the container, each image in the plurality of temporally sequential images being located in one record in the plurality of records;

retrieving, by the one or more processors, the sequence of viewports contained within the plurality of temporally sequential images from the container;

encoding, by the one or more processors, the sequence of viewports into a video codestream; and

streaming, by the one or more processors, the video codestream of the sequence of viewports in a desired temporal sequence.

20. The method according to claim 19 , further comprising validating, by the one or more processors, the request by checking whether the sequence of viewports requested exists within the plurality of records within the container.

21. The method according to claim 20 , further comprising, if an error occurs during the validating of the request, processing the error into a reply message and sending the reply message to a user computer.

22. A method for providing a video codestream from a plurality of containers, the method being implemented by a computer system that includes one or more processors configured to execute computer program modules, the method comprising:

receiving, by the one or more processors, a request comprising a plurality of request parts, each request part being a request for generating a partial video codestream of a plurality of partial video codestreams from a corresponding specified container in a plurality of containers, each partial video codestream containing a sequence of viewports, each viewport in the sequence of viewports being contained within one image in a plurality of temporally sequential images located within a plurality of records stored in the corresponding specified container;

retrieving, by the one or more processors, the sequence of viewports for each partial video codestream in the plurality of partial video codestreams from the corresponding specified container;

encoding, by the one or more processors, the sequence of viewports for each of the plurality of partial video codestreams to generate the plurality of partial video codestreams;

combining, by the one or more processors, the plurality of partial video codestreams into a single video codestream; and

delivering, by the one or more processors, the single video codestream to a user computer in response to the request comprising the plurality of request parts.

23. The method according to claim 22 , further comprising interleaving data between adjacent viewports in the sequence of viewports.

24. The method according to claim 23 , wherein interleaving the data includes interleaving audio information, close captioned data, or Key Length Value (KLV) metadata, or any combination thereof.

25. The method according to claim 22 , wherein retrieving the sequence of viewports for each partial video codestream comprises retrieving the sequence of viewports for each partial video codestream in parallel.

26. The method according to claim 22 , wherein encoding the sequence of viewports for each of the plurality of partial video codestreams comprises encoding the sequence of viewports for each of the plurality of partial video codestreams in parallel.

27. A method for providing a video codestream from a plurality of containers, the method being implemented by a computer system that includes one or more processors configured to execute computer program modules, the method comprising:

receiving, by the one or more processors, a request comprising a first request part and a second request part, the first request part being a request for generating a first partial video codestream from a first container in a plurality of containers, the second request part being a request for generating a second partial video codestream from a second container in the plurality of containers,

the first video codestream containing a first sequence of viewports, each viewport in the first sequence of viewports being contained within one image in a first plurality of temporally sequential images located within a first plurality of records stored in the first container,

the second video codestream containing a second sequence of viewports, each viewport in the second sequence of viewports being contained within one image in a second plurality of temporally sequential images located within a second plurality of records stored in the second container;

retrieving, by the one or more processors, the first sequence of viewports from the first container, and retrieving, by the one or more processors, the second sequence of viewports from the second container;

encoding, by the one or more processors, the first sequence of viewports to generate the first partial video codestream, and encoding, by the one or more processors, the second sequence of viewports to generate the second partial video codestream;

combining, by the one or more processors, the first partial video codestream and the second partial video codestream into a single video codestream; and

delivering the single video codestream to a user computer in response to the request comprising the first request part and the second request part.

Assignments (11)
SUPERPRIORITY PATENT SECURITY AGREEMENT Recorded Oct 6, 2025
From: CUBIC CORPORATION; CUBIC DEFENSE APPLICATIONS INC.; CUBIC DIGITAL INTELLIGENCE INC.; CUBIC ITS, INC.; CUBIC SECURE COMMUNICATIONS, LLC; CUBIC TOTAL LEARNING PLATFORM, LLC; CUBIC TRANSPORTATION SYSTEMS, INC.; GATR TECHNOLOGIES INC.; NUVOTRONICS INC.
To: BARCLAYS BANK PLC
Reel/Frame 073008/0761 →
RELEASE OF SECURITY INTEREST Recorded Jul 30, 2025
From: ALTER DOMUS (US) LLC
To: CUBIC CORPORATION; CUBIC DEFENSE APPLICATIONS, INC.; CUBIC DIGITAL INTELLIGENCE, INC.
Reel/Frame 072278/0272 →
RELEASE OF SECURITY INTEREST Recorded Jul 30, 2025
From: ALTER DOMUS (US) LLC
To: CUBIC CORPORATION; CUBIC DIGITAL SOLUTIONS LLC; NUVOTRONICS, INC.
Reel/Frame 072281/0176 →
RELEASE OF SECURITY INTEREST AT REEL/FRAME 056393/0281 Recorded Jul 28, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: CUBIC CORPORATION; CUBIC DEFENSE APPLICATIONS, INC.; CUBIC DIGITAL SOLUTIONS LLC (FORMERLY PIXIA CORP.)
Reel/Frame 072282/0124 →
SECURITY INTEREST Recorded May 2, 2025
From: CUBIC DEFENSE APPLICATIONS, INC.; CUBIC DIGITAL INTELLIGENCE, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071161/0299 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2024
From: PIXIA CORP.
To: CUBIC DIGITAL INTELLIGENCE, INC.
Reel/Frame 066816/0198 →
FIRST LIEN SECURITY AGREEMENT Recorded May 26, 2021
From: CUBIC CORPORATION; PIXIA CORP.; NUVOTRONICS, INC.
To: BARCLAYS BANK PLC
Reel/Frame 056393/0281 →
SECOND LIEN SECURITY AGREEMENT Recorded May 26, 2021
From: CUBIC CORPORATION; PIXIA CORP.; NUVOTRONICS, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 056393/0314 →
RELEASE OF SECURITY INTEREST Recorded Jun 14, 2019
From: SILICON VALLEY BANK
To: PIXIA CORP.
Reel/Frame 049477/0358 →
SECURITY AGREEMENT Recorded Apr 6, 2016
From: PIXIA CORP.
To: SILICON VALLEY BANK
Reel/Frame 038372/0424 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2014
From: THAKKAR, RAHUL C.; PAKULA, SCOTT; ERNST, RUDOLF O.
To: PIXIA CORP.
Reel/Frame 034558/0757 →