Shared Dictionary Image Compression for Graphics Remoting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

There is a lack of efficient data compression mechanisms to improve network traffic and processing efficiency in desktop virtualization environments, where graphics remoting systems transmit similar images repeatedly, leading to inefficiencies in data transmission and processing.

Innovation Solution

The implementation of a shared dictionary in graphics remoting systems that encodes sequences of pixels in images by referencing similar sequences from previously transmitted images, allowing for efficient compression and decompression of images using hashing and image window management to reduce network traffic.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If images are transmitted repeatedly in graphics remoting systems, then visual representation is maintained, but network traffic increases and processing efficiency decreases

Engineering Contradiction:
Improvevisual representation continuityVSAvoidnetwork traffic
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent combines multiple similar images into a single compressed representation by identifying and merging common pixel sequences. The shared dictionary stores unique image sequences once, and subsequent similar images reference these stored sequences, reducing redundant data transmission while maintaining visual representation continuity.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent creates compressed copies of image data by storing unique sequences in a shared dictionary and referencing them multiple times. Instead of transmitting full image copies, the system transmits references to previously stored sequences, significantly reducing network traffic while preserving the ability to reconstruct complete images at the client side.

Inventive Principle:
Principle #26Copying

2Measurement precision

If full images are transmitted repeatedly, then image quality is maintained, but processing efficiency at the client decreases

Engineering Contradiction:
Improveimage qualityVSAvoidprocessing efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent segments images into sequences of pixels and identifies common segments across multiple images. By dividing images into manageable sequences and storing only unique segments in the shared dictionary, the system maintains complete image quality for reconstruction while reducing the processing load through selective storage and referencing of segments.

Inventive Principle:
Principle #1Segmentation

3Loss of energy

If a shared dictionary is implemented for image compression, then network traffic is reduced, but system complexity increases

Engineering Contradiction:
Improvenetwork trafficVSAvoidsystem complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The shared dictionary serves multiple functions: it stores unique image sequences, provides compression references for subsequent images, and enables both compression and decompression operations. This multi-functionality reduces the need for separate compression and decompression mechanisms, managing system complexity while achieving significant network traffic reduction.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9369721B2Data compression of images using a shared dictionary
Publication Date: 2016.06.14 RED HAT ISRAEL
  • US9369721B2 patent drawing
  • US9369721B2 patent drawing
  • US9369721B2 patent drawing

AI summary

A method and system for data compression of images using a shared dictionary are described herein. According to one embodiment, a server identifies a current images that is part of a stream of images generated by an application hosted by the server. The stream of images includes images previously transmitted to the client. For each segment of pixels in the current image, the server searches a dictionary containing data for the stream of images. If the dictionary includes data corresponding to the segment of pixels in the current image, the server determines metadata for the segment of pixels in the current image using the corresponding data from the dictionary, and transmits the metadata to the client without transmitting the segment of pixels from the current image.