JavaScript RDP Image Decompressor for Web Browser Canvas Rendering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Standards-based web browsers lack native support for rendering graphics information in remote desktop protocol (RDP) data packets, particularly due to limited color space support, necessitating color space conversion from 8, 16, or 24-bit to 32-bit for HTML5 and CANVAS compatibility, which is challenging in a scripting language like JAVASCRIPT without access to operating system graphics libraries.

Innovation Solution

A run-length encoded image decompressor is implemented in JAVASCRIPT within a web client, determining the color space and algorithm for received packets, converting them if necessary, and rendering graphics on a canvas using HTML5 and CANVAS, allowing for real-time color space conversion and rendering of RDP graphics data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If RDP graphics data in 8, 16, or 24-bit color space is received from the remote server, then the data can be transmitted efficiently, but it cannot be directly rendered by HTML5 and CANVAS which only support 32-bit color space

Engineering Contradiction:
Improvegraphics rendering efficiencyVSAvoidcolor space compatibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent changes the color depth parameter from 8, 16, or 24-bit to 32-bit by padding the color data. This allows the graphics data to be compatible with HTML5 and CANVAS while maintaining efficient transmission. The conversion is achieved by adding alpha channel information and adjusting the pixel data structure to match the 32-bit color space requirement.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent introduces an intermediary conversion process that transforms RDP graphics data between different color spaces. This mediator layer handles the color space conversion and padding operations, enabling seamless communication between the RDP protocol (which uses 8, 16, or 24-bit color) and the web browser's rendering engine (which requires 32-bit color).

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of manufacture

If a native RDP client is written in C or C++ with access to operating system graphics library, then graphics can be displayed efficiently, but it cannot be implemented in a standards-based web browser which uses scripting language without such library access

Engineering Contradiction:
Improveclient implementation easeVSAvoidgraphics rendering capability
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent replaces the native C/C++ implementation with a JavaScript-based implementation. Instead of using operating system graphics libraries directly, the patent uses HTML5 CANVAS and its two-dimensional drawing context, which are web standards that can be accessed from within a browser's scripting environment. This substitution enables RDP client functionality to work within the constrained web environment.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent makes the RDP client implementation universal by using web standards (HTML5, CANVAS, JavaScript) that can run across different platforms and browsers without requiring native compilation or operating system-specific graphics libraries. This multi-functional approach allows the same code to work in various web environments while maintaining graphics rendering capability.

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

Data Source

PatentUS20170127067A1Run-length encoded image decompressor for a remote desktop protocol client in a standards-based web browser
Publication Date: 2017.05.04 DELL PROD LP
  • US20170127067A1 patent drawing
  • US20170127067A1 patent drawing
  • US20170127067A1 patent drawing

AI summary

A web client may receive a run-length encoded packet of graphics data from a Remote Desktop Protocol server via a web-socket server. The web client may determine a run-length encoding algorithm for the packet based on a first color space associated with the packet. The web client may decompress the packet based on the determined run-length encoding algorithm, where decompressing the packet involves determining a plurality of commands to be performed on a canvas associated with the web client. The web client may render the graphics data on the canvas using the plurality of commands, wherein the graphics data is associated with a graphical interface for viewing and interacting with a remote desktop.