IP Library Granted Patent US 7,463,793
Granted Patent B2
US 7,463,793 · App. 11/439,007 · Granted Dec 9, 2008

Method and system using non-uniform image blocks for rapid interactive viewing of digital image over a network

Assignee: Quark, Inc.
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 7,463,793
App. No.
11/439,007
Granted
Dec 9, 2008
Kind
B2
Abstract

Apparatus and method for rapid interactive viewing of a digital image over a network. A client computer displays a view of an image. The image is originally resident on a server computer. The client computer maintains a cache, initially empty, of image blocks already obtained from the server. When the client computer is asked to render a view of a particular portion of the image at a particular resolution, it first ascertains if any image blocks in the image-block cache intersect the requested view. It then computes the residual area of the view resulting from subtracting out from the view the intersecting portions of cached image blocks, and, if the residual area is positive, downloads from the server computer a set of image blocks comprising the residual portion of the view at the given resolution.

Claims (40)

1. A method for communicating a digital image over a network, the method comprising:

storing a digital image on a server computer;

maintaining stored image blocks on a client computer, wherein the stored image blocks include portions of the digital image that have been downloaded from the server computer to the client computer;

computing a residual area of a particular view by subtracting intersecting portions of the stored image blocks out from the particular view; and

downloading from the server computer a residual portion corresponding to the residual area of the particular view.

2. The method of claim 1 , wherein the method further comprises:

partitioning the residual portion into the minimum possible number of rectangles and downloading these rectangles from the server computer.

3. The method of claim 2 , wherein the operation of partitioning the residual portion of the view into the minimum possible number of rectangles comprises recursively executing, for the initial view and each subsequent subview, a procedure that tries to find a first stored image-block intersecting the view, and, if one is found, partitions the residual area of the view into the minimum possible number of rectangular sub views, and, if none is found, treats the entire view as a rectangle to be downloaded from the server computer.

4. A method for communicating a compressed digital image over a network, the method comprising:

storing a compressed digital image, partitioned into a regular grid of compression rectangles, on a server computer;

in response to a user request for a given view, comprising a particular image portion at a given resolution,

constructing a virtual view, comprising the given view expanded as is minimally necessary for its boundary to correspond to an integer number of whole compression-grid tiles, and

ascertaining if any image blocks in the client computer's image-block cache intersect the given virtual view, and then

computing the residual area of the virtual view resulting from subtracting out from the virtual view the intersecting portions of cached image blocks, and, if the residual area is positive,

downloading from the server computer a set of image compression-grid cells comprising the residual portion of the virtual view at the given resolution.

5. The method of claim 4 , wherein the method further comprises:

partitioning the residual portion of the virtual view into the optimum number of rectangles corresponding exactly to an integer number of whole compression-grid cells, and downloading these rectangles from the server computer.

6. The method of claim 5 , wherein the operation of partitioning the residual portion of the virtual view into the optimum possible number of rectangles corresponding exactly to an integer number of whole compression-grid cells comprises recursively executing, for the initial virtual view and each subsequent subview, a procedure that tries to find a first cached image-block intersecting the view, and, if one is found, partitions the residual area of the view into the minimum possible number of rectangular subviews, and, if none is found, treats the entire view as a rectangle to be downloaded from the server computer.

7. The method of claim 5 , wherein the method further comprises displaying the given view to the user.

8. The method of claim 5 , wherein the method further comprises: decompressing the downloaded image portion and placing the decompressed image portion in the client computer's image-block cache.

9. The method of claim 5 , wherein the method further comprises: placing the downloaded compressed image portion in the client computer's compressed image-block cache.

10. The method of claim 5 , wherein the method further comprises: selectively removing items from the client computer's image-block cache when the size of the cache reaches a limit.

11. The method of claim 5 , wherein the method further comprises: selectively removing items from the client computer's compressed image-block cache when the size of the cache reaches a limit.

12. An apparatus for communicating a digital image over a network, comprising:

a server computer including

a database of digital images;

a server message handler, operative to receive from client computers requests for image blocks and to transmit image blocks to client computers;

a server image-block assembly processor, operative to examine the server's digital image database in order to locate a specific digital image therein, and to read out of the database of digital images a set of pixels necessary to construct a specific image block; and

a client computer including

a cache of image blocks;

a client message handler, operative to send to the server computer requests for image blocks and to receive said image blocks from the server computer; and

a client main processor, operative to receive from the client computer's user a request for a particular view, comprising a particular image portion at a given resolution, to ascertain if any image blocks in the client computer's image-block cache intersect the given view, and to compute the residual area of the view resulting from subtracting out from the view the intersecting portions of cached image blocks.

13. The apparatus of claim 12 , further comprising apparatus on the client computer for partitioning the residual portion of the view into the minimum possible number of rectangles.

14. Apparatus on the client computer according to claim 13 wherein the operation of partitioning the residual portion of the view into the minimum possible number of rectangles comprises recursively executing, for the initial view and each subsequent subview, a procedure that tries to find a first cached image-block intersecting the view, and, if one is found, partitions the residual area of the view into the minimum possible number of rectangular subviews, and, if none is found, treats the entire view as a rectangle to be downloaded from the server computer.

15. The apparatus of claim 13 , further comprising a display device for displaying the given view to the user.

16. The apparatus of claim 13 , further comprising apparatus for placing the downloaded image portion in the client computer's image-block cache.

17. The apparatus of claim 16 , further comprising apparatus for selectively removing items from the client computer's image-block cache when the size of the cache reaches a limit.

18. The apparatus of claim 16 wherein some of the digital images in the server image database are compressed into regular grids of compression rectangles, wherein the server image-block assembly processor is operative to examine the server's digital image database in order to locate a specific compressed digital image therein, and to read out of the database of digital images a set of compression grid cells necessary to construct a specific compressed image block.

19. The apparatus of claim 16 wherein the client main processor is operative to receive from the client computer's user a request for a particular view, comprising a particular image portion at a given resolution, to construct a virtual view, comprising the given view expanded as is minimally necessary for its boundary to correspond to an integer number of whole compression-grid tiles, to ascertain if any image blocks in the client computer's image-block cache intersect the given virtual view, and to compute the residual area of the virtual view resulting from subtracting out from the virtual view the intersecting portions of cached image blocks.

20. The apparatus of claim 16 , further comprising, on the client computer, a cache of compressed image blocks.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Jun 23, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: QUARK SOFTWARE, INC.
Reel/Frame 053018/0066 →
SECURITY INTEREST Recorded Jun 19, 2018
From: QUARK SOFTWARE, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 046128/0908 →
RELEASE OF SECURITY INTEREST Recorded Oct 2, 2014
From: Q LIQUIDATING TRUST F/K/A QUARK HOLDINGS, INC.
To: QUARK ACQUISITION CORPORATION
Reel/Frame 033873/0579 →
CHANGE OF NAME Recorded Jan 15, 2014
From: QUARK HOLDINGS, INC.
To: QH HOLDINGS CORPORATION
Reel/Frame 032020/0142 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2014
From: QH HOLDINGS CORPORATION
To: Q LIQUIDATING TRUST
Reel/Frame 031973/0394 →
SECURITY AGREEMENT Recorded Dec 6, 2013
From: QUARK ACQUISITION CORPORATION
To: QUARK HOLDINGS, INC.
Reel/Frame 031768/0217 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2012
From: QUARK ACQUISITION CORPORATION
To: QUARK SOFTWARE, INC.
Reel/Frame 029439/0226 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2012
From: QUARK, INC.
To: QUARK ACQUISITION CORPORATION
Reel/Frame 029393/0679 →
SECURITY AGREEMENT Recorded Nov 19, 2012
From: QUARK SOFTWARE, INC.
To: QUARK HOLDING CORPORATION
Reel/Frame 029321/0776 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2007
From: QUARK MEDIA HOUSE SARL
To: QUARK, INC.
Reel/Frame 019952/0240 →
Continuity (2)
Continuation 0962522600 · Jul 24, 2000
Related Publication 20060210196A1 · Sep 21, 2006