IP Library Granted Patent US 9,020,045
Granted Patent B1
US 9,020,045 · App. 13/722,105 · Granted Apr 28, 2015

Progressive block encoding using region analysis

Inventors: David Victor Hobbs (Surrey, CA); Patrick Ratto (Burnaby, CA)
Assignee: Teradici Corporation
H04N19/00945
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,020,045
App. No.
13/722,105
Granted
Apr 28, 2015
Kind
B1
Abstract

Methods of encoding an image stream. In one embodiment, the method comprises generating, by a computer, a lossless encoding of a first portion of a frame of an image based on identifying the first portion as (i) changed since a previous frame of the image and (ii) comprising a first image type; generating an initial quality lossy encoding of a second portion of the frame based on identifying the second portion as (iii) changed since the previous frame and (iv) comprising a second image type; and generating a quality improvement encoding of a third portion of the frame based on identifying the third portion as (v) unchanged since the previous frame and (vi) encoded to less than a defined quality.

Claims (17)

1. A method of encoding an image stream at a host computer, comprising:

generating the image stream by the host computer, the image stream comprising a plurality of image frames, each image frame comprising at least a video insert portion, a text portion and a picture portion;

generating, by the host computer, an encoding of a first block of pixels of a frame of the image stream, wherein the encoding of the first block is generated at a lossless coding quality level if the first block (i) has changed with respect to a corresponding block in a directly previous frame of the image stream and (ii) comprises a first image type identified by a first static image property;

generating an encoding of a second block of pixels of the frame, wherein the encoding of the second block is generated at a first lossy coding quality level if the second block (iii) has changed with respect to a corresponding block in the directly previous frame and (iv) comprises a second image type identified by a second static image property;

generating an encoding of a third block of pixels of the frame at an initial encoding quality level if the third block of pixels comprises the second image type and the third block of pixels is changed from a first reference corresponding block of pixels in the directly previous frame;

generating an encoding of the third block of pixels at a previous encoding quality level if the third block comprises the second image type, the third block of pixels is unchanged from the first reference corresponding block of pixels, and the third block is changed from a second reference corresponding block in a frame at least two frames previous to the frame;

generating an encoding of the third block at an increased encoding quality level greater than the initial encoding quality level if the third block comprises the second image type, the third block is unchanged since the second reference corresponding block;

generating an unchanged indication with respect to a fourth block of pixels of the frame if the fourth block (v) has remained unchanged with respect to a corresponding block in the directly previous frame, (vi) comprises the second image type and (vii) is changed with respect to a sixth corresponding block in a frame previous to the directly previous frame; and

transmitting the encoded first block of pixels, the encoded second block of pixels, the encoded third block of pixels and the unchanged indication with respect to the fourth block of pixels to a client computer for display as part of a decoding of an encoding of the image stream,

wherein coding quality level of each block defines a measurable image quality level of a corresponding block in the decoding.

2. The method of claim 1 , further comprising using image decomposition filters to identify that the first block comprises, the first image type and that the second, the third and the fourth blocks comprise the second image type.

3. The method of claim 1 , wherein the unchanged indication is generated if a build state of the fourth block of pixels, generated as part of encoding the directly previous frame, identifies one of a final coding quality level or a delaying of an encoded quality build sequence, for the fourth block of pixels.

4. The method of claim 1 , further comprising updating a build state table, wherein the build state table identifies, for each block of pixels of a plurality of blocks of pixels of the frame, (a) a current build state and a number of frames that have passed since the each block of pixels has changed, and (b) a number of quality levels to be encoded, and wherein generating the encoding of the first block comprises updating the build state table to identify the first block as unchanged for zero frames, generating the encoding of the second block comprises updating the build state table to identify the second block as unchanged for zero frames, and generating an encoding of the fourth block comprises updating the build state table to identify the fourth block as unchanged for one additional frame.

5. The method of claim 4 , wherein generating the encodings of the first, the second, the third and the fourth blocks comprises updating the build state table to identify the first block as encoded to the lossless coding quality level, the second block as encoded to the first lossy coding quality level, and the fourth block as encoded to the first lossy coding quality level.

6. The method of claim 1 , wherein a previous coding quality level of the third block of pixels is identified as less than a defined quality coding level by referencing a record in a build state table, and wherein the record is generated as part of a previous encoding of the third block of pixels.

7. The method of claim 1 , wherein generating the encoding of the third block at the increased encoding quality level comprises encoding an additional bit plane of a discrete transform of the third block.

8. The method of claim 1 , further comprising transmitting, over an inter-computer network, the encodings of the first, the second, and the third blocks, and the unchanged indication.

Assignments (5)
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 →
Continuity (10)
Continuation 11549577 · Oct 13, 2006
Continuation In Part 11537545 · Sep 29, 2006
Continuation In Part 11333955 · Jan 17, 2006
Continuation In Part 11532865 · Sep 18, 2006
Continuation In Part 11532865
Continuation In Part 11333955
Continuation In Part 11333955
Provisional Application 60703767 · Jul 28, 2005
Provisional Application 60719050 · Sep 20, 2005
Provisional Application 60726418 · Oct 12, 2005