IP Library Granted Patent US 8,755,609
Granted Patent B2
US 8,755,609 · App. 13/963,449 · Granted Jun 17, 2014

Method of processing a viewport 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 8,755,609
App. No.
13/963,449
Granted
Jun 17, 2014
Kind
B2
Abstract

A method of processing a viewport within an image arranged as a matrix of tiles from a container file is provided. The method includes reading data of the viewport starting from a point of origin of the viewport, the viewport having a pixel width and a pixel height, the viewport being a portion of an image stored in a record within the file container; reading record metadata of the record; computing column numbers or row numbers, or both, of the tiles containing the viewport; and launching parallel or asynchronous read requests for each row or each column of the viewport.

Claims (49)

1. A method of processing a viewport within an image arranged as a matrix of tiles from a container file, the method being implemented by a computer system that includes one or more processors configured to execute processing operations, the method comprising:

reading, by the one or more processors, data of the viewport starting from a point of origin of the viewport, the viewport having a pixel width and a pixel height, the viewport being a portion of an image stored in a record within the file container;

reading, by the one or more processors, record metadata of the record;

computing, by the one or more processors, column numbers or row numbers, or both, of the tiles containing the viewport; and

launching, by the one or more processors, parallel or asynchronous read requests for each row or each column of the viewport.

2. The method according to claim 1 , wherein reading record metadata includes reading a record metadata section at absolute container file offset O rm =S fcm +(S r ×N), where S fcm corresponds to a size of the record metadata section and S r corresponds to a size of the record, and N is a record number.

3. The method according to claim 1 , further comprising determining, by the one or more processors, if the record contains an image uncompressed, tiled arranged in a column major order, or an image compressed, tiled and arranged in column major order, or an image compressed, tiled and arranged in a row-major order, or in a third party file format.

4. The method according to claim 3 , wherein if the record contains an image uncompressed, tiled arranged in a column major order,

computing top left and bottom right column numbers of the tiles containing the viewport,

for each column, computing an absolute aligned offset from a start of the container file, and an aligned size of a strip starting from line Y 0 to and including line Y 0 +V h −1, and

collecting and processing only pixels that reside within the viewport bounds to generate the output viewport in a single raster.

5. The method according to claim 3 , wherein if the record contains an image compressed, tiled, with the tiles arranged in row-major order,

computing top left and bottom right column and row numbers of the tiles containing the viewport,

for each row, launching parallel or asynchronous operations to read tiles for each row, and

reading an entire tile strip for each row in a single read operation or reading one or more individual tiles in parallel or in asynchronous operation.

6. The method according to claim 5 , wherein reading the tile strip comprises reading from a storage device block size (SDBS) aligned location prior to or equal to a start of an initial tile in the tile strip and ends at a storage device block size (SDBS) aligned location after or equal to an end of a last tile in the tile strip.

7. The method according to claim 6 , further comprising reading multiple individual tiles in parallel or asynchronously, each tile read starts from a storage device block size (SDBS) aligned location prior to or equal to the start of a tile and ends at a storage device block size (SDBS) aligned location after or equal to the end of the same tile.

8. The method according to claim 7 , further comprising collecting and processing only pixels that reside within viewport bounds to generate an output viewport in a single raster.

9. The method according to claim 3 , wherein if the record contains an image stored compressed, tiled, with the tiles arranged in column-major order,

computing top left and bottom right column and row numbers of the tiles containing the viewport,

for each column, launching parallel or asynchronous operations to read tiles for each column, and

reading an entire tile strip for the column in a single read operation or reading one or more individual tiles in parallel or in asynchronous operation.

10. The method according to claim 9 , wherein reading a tile strip comprises reading from a storage device block size (SDBS) aligned location prior to or equal to a start of an initial tile and ending at a storage device block size (SDBS) aligned location after or equal to an end of a last tile.

11. The method according to claim 9 , further comprising reading multiple individual tiles in parallel or asynchronously, each tile read starts from a storage device block size (SDBS) aligned location prior to or equal to a start of a tile and ends at a storage device block size (SDBS) aligned location after or equal to the end of the same tile.

12. The method according to claim 11 , further comprising collecting and processing only pixels that reside within the viewport bounds to generate the output viewport in a single raster.

13. The method according to claim 1 , wherein if the record contains an image stored in a third party tiled file format,

computing a top left and bottom right column and row numbers of the tiles containing the viewport,

determining whether the record metadata section holds a table of offsets and sizes of each tile in the image that exists in a known third-party file format, and

determining whether data in the image is stored in row-major order or column-major order.

14. The method according to claim 13 , wherein if the image data is stored in column-major order,

computing a top left and bottom right column and row numbers of the tiles containing the viewport,

for each column, launching parallel or asynchronous operations to read tiles for each column, and

reading the entire tile strip for the column in a single read operation or reading one or more individual tiles in parallel or in asynchronous operation.

15. The method according to claim 13 , if the image data is stored in row-major order,

computing a top left and bottom right column and row numbers of the tiles containing the viewport,

for each row, launching parallel or asynchronous operations to read tiles for each row, and

reading the entire tile strip for the row in a single read operation or reading one or more individual tiles in parallel or in asynchronous operation.

16. A method of processing a viewport within an image arranged as a matrix of tiles from a file container, the method being implemented by a computer system that includes one or more processors configured to execute processing operations, the method comprising:

reading, by the one or more processors, parameters including an identification of a record where the image containing the viewport is stored, an origin of the viewport and a width in pixels and a height in pixels of the viewport;

requesting, by the one or more processors, the viewport from the file container using the parameters; and

reading, by the one or more processors, data of the viewport starting from the point of origin of the viewport.

17. The method according to claim 16 , further comprising outputting the data of the viewport.

18. The method according to claim 17 , wherein requesting comprises requesting using hypertext transfer protocol (HTTP) and wherein the outputting comprises transmitting the data using HTTP.

19. The method according to claim 16 , wherein the reading of the parameters comprises reading a desired format of the image in which a response needs to be delivered.

20. The method according to claim 19 , further comprising transcoding or encoding the data of the viewport into the desired format.

21. The method according to claim 16 , further comprising computing top most row of tiles in the image and left most column of the tiles in the image and bottom most row of the tiles in the image and right most column of the tiles in the image that contain the viewport.

22. The method according to claim 16 , further comprising launching a plurality of asynchronous read requests, each read request being assigned to each row of the tiles contained within the viewport or assigned to each column of the tiles contained within the viewport.

23. The method according to claim 16 , further comprising accumulating pixels that belong in the viewport into a raster in memory that substantially equals a size of the viewport.

24. The method according to claim 16 , further comprising displaying the viewport on a display device or processing the viewport by a processing device to analyze data in the viewport, or both.

Assignments (12)
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 →
SECOND LIEN SECURITY AGREEMENT Recorded May 26, 2021
From: CUBIC CORPORATION; PIXIA CORP.; NUVOTRONICS, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 056393/0314 →
FIRST LIEN SECURITY AGREEMENT Recorded May 26, 2021
From: CUBIC CORPORATION; PIXIA CORP.; NUVOTRONICS, INC.
To: BARCLAYS BANK PLC
Reel/Frame 056393/0281 →
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 →
SECURITY INTEREST Recorded May 14, 2015
From: PIXIA CORP.
To: SILICON VALLEY BANK
Reel/Frame 035644/0524 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2013
From: THAKKAR, RAHUL C.; PAKULA, SCOTT L.; ERNST, RUDOLF O.
To: PIXIA CORP.
Reel/Frame 030979/0788 →