IP Library Granted Patent US 8,861,875
Granted Patent B1
US 8,861,875 · App. 13/194,728 · Granted Oct 14, 2014

Method and apparatus for encoding changed image regions

Inventors: Daniel Jean Donat Doucette (Port Moody, CA); Sergey Zhuravlev (Richmond, CA)
Assignee: Teradici Corporation
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,861,875
App. No.
13/194,728
Granted
Oct 14, 2014
Kind
B1
Abstract

A method of encoding an input image divided into a set of image blocks and stored in computer readable memory. In one embodiment, the method comprises determining a sequence of block test patterns, each (i) identifying, for each image block of the set, a separate portion of the image block; and (ii) determined to minimize a maximum unidentified portion size of the input image when used on all image blocks of the set; assembling an active block test pattern comprising one of the block test patterns; comparing, based on the active block test pattern, at least one image block of the set with a reference image comprising a previously encoded copy of the input image to generate a block change detection; and encoding, based on the block change detection, a changed image block of the at least one image block to generate a portion of an encoded image.

Claims (25)

1. A method of encoding an input image divided into a set of image blocks and stored in computer readable memory, the method comprising:

determining a sequence of block test patterns, wherein each block test pattern of the sequence (i) identifies, for each image block of the set, a separate portion of the image block; and (ii) minimizes a maximum size of an undetected image feature of the input image when used on all image blocks of the set;

assembling, by a computer, an active block test pattern comprising one of the block test patterns of the sequence;

comparing, by the computer, based on the active block test pattern, at least one image block of the set with a reference image comprising a previously encoded copy of the input image to generate a block change detection; and

encoding, by an encoder, based on the block change detection, a changed image block of the at least one image block to generate a portion of an encoded image, wherein the sequence is a repeating sequence; for each image block of the set, an assembly of all block test patterns of the sequence identifies an entire image block; the active block test pattern comprises a combination of at least two sequential block test patterns of the sequence; and the sequence is determined to minimize maximum untested portion sizes of the input image resulting from sequential combinations of the block test patterns of the sequence.

2. The method of claim 1 , wherein encoding the changed image block comprises encoding a selection of neighboring image blocks adjacent to the at least one image block.

3. The method of claim 1 , wherein each block test pattern of the sequence is determined based on at least one of (i) memory access methods of the computer, (ii) data comparison methods of the computer or (iii) a number of block test patterns in the sequence.

4. The method of claim 1 , wherein the assembling, the comparing and the encoding are performed independent of timing of updates to the input image.

5. The method of claim 1 , wherein comparing the at least one image block is scheduled based on an update indication associated with a change to the input image.

6. The method of claim 1 , further comprising obtaining the input image from a source image.

7. The method of claim 6 , wherein, based on the block change detection, an additional image block is copied from the source image to the input image.

8. The method of claim 1 , wherein comparing the at least one image block is based on a block change detection history.

9. The method of claim 1 , wherein assembling the active block test pattern comprises combining a sequential selection of the repeating sequence based on a period of time since previously comparing the at least one image block.

10. The method of claim 1 , wherein determining the sequence is based on a planned encoding frequency of the input image.

11. The method of claim 10 , wherein the planned encoding frequency is determined based on at least one of (a) an available network bandwidth used to transmit the portion of the encoded image, or (b) an available processing bandwidth of the computer.

12. The method of claim 1 , wherein each block test pattern of the sequence minimizes a maximum untested rectangle of the input image when comparing, based on the active block test pattern, all image blocks of the set with the reference image.

13. The method of claim 1 , further comprising updating, based on the block change detection, respective blocks of the reference image with the at least one image block.

14. A non-transitory computer readable storage medium for storing computer instructions that, when executed by a processor within a computer system, cause the processor to perform a method of encoding an input image divided into a set of image blocks and stored in computer readable memory, the method comprising:

assembling, by a computer, an active block test pattern comprising a block test pattern of a sequence of block test patterns, wherein each block test pattern of the sequence (i) identifies, for each image block of the set, a separate portion of the image block; and (ii) minimizes a maximum size of an undetected image feature of the input image when used on all image blocks of the set;

comparing, by the computer, based on the active block test pattern, at least one image block of the set with a reference image comprising a previously encoded copy of the input image to generate a block change detection; and

encoding, by an encoder, based on the block change detection, a changed image block of the at least one image block to generate a portion of an encoded image, wherein the sequence is a repeating sequence; for each image block of the set, an assembly of all block test patterns of the sequence identifies an entire image block; the active block test pattern comprises a combination of at least two sequential block test patterns of the sequence; and the sequence is determined to minimize maximum untested portion sizes of the input image resulting from sequential combinations of the block test patterns of the sequence.

15. The non-transitory computer readable storage medium of claim 14 , wherein each block test pattern of the sequence is determined based on at least one of (i) memory access methods of the computer, (ii) data comparison methods of the computer or (iii) a number of block test patterns in the sequence.

16. The non-transitory computer readable storage medium of claim 14 , wherein assembling the active block test pattern comprises combining a sequential selection of the repeating sequence based on a period of time since previously comparing the at least one image block.

17. The non-transitory computer readable storage medium of claim 14 , wherein the sequence is determined based on a planned encoding frequency of the input image and the planned encoding frequency is determined based on at least one of (a) an available network bandwidth used to transmit the portion of the encoded image, or (b) an available processing bandwidth of the computer.

18. The non-transitory computer readable storage medium of claim 14 , wherein the method further comprises updating, based on the block change detection, respective blocks of the reference image with the at least one image block.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2025
From: TERADICI CO.
To: HP TECHNOLOGY HOLDINGS LLC
Reel/Frame 071854/0373 →
CHANGE OF NAME Recorded May 19, 2025
From: TERADICI CORPORATION
To: TERADICI CO.
Reel/Frame 071296/0559 →
RELEASE OF SECURITY INTEREST Recorded May 13, 2025
From: COMERICA BANK
To: TERADICI CORPORATION
Reel/Frame 071097/0240 →
RELEASE OF SECURITY INTEREST Recorded Mar 4, 2019
From: WF FUND IV LIMITED PARTNERSHIP
To: TERADICI CORPORATION
Reel/Frame 048499/0800 →
RELEASE OF SECURITY INTEREST Recorded Feb 28, 2019
From: BEEDIE CAPITAL PARTNERS FUND I LIMITED PARTNERSHIP
To: TERADICI CORPORATION
Reel/Frame 048473/0846 →
SECURITY INTEREST Recorded Feb 27, 2019
From: TERADICI CORPORATION
To: COMERICA BANK
Reel/Frame 048454/0895 →
SECURITY INTEREST Recorded Mar 3, 2016
From: TERADICI CORPORATION
To: BEEDIE CAPITAL PARTNERS FUND I LIMITED PARTNERSHIP
Reel/Frame 037988/0364 →
SECURITY AGREEMENT Recorded Feb 12, 2013
From: TERADICI CORPORATION
To: WF FUND IV LIMITED PARTNERSHIP
Reel/Frame 029800/0593 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2011
From: DOUCETTE, DANIEL JEAN DONAT; ZHURAVLEV, SERGEY
To: TERADICI CORPORATION
Reel/Frame 027048/0376 →