Patent application number | Description | Published |
20100142813 | Remote desktop protocol compression acceleration using single instruction, multiple dispatch instructions - Techniques are disclosed for compressing image data using the parallel instructions available on a vector processor. In an embodiment, a source image in RGBA format is received. A series of vector processor instructions are used to perform parallel processing steps of splitting the image into separate R, G, B, and A channels, then converting it into a YCoCg colorspace, compressing the Y, Co, and Cg channels separately, then saving an output image corresponding to a compressed version of the source image. | 06-10-2010 |
20100146127 | USER-MODE BASED REMOTE DESKTOP PROTOCOL (RDP) ENCODING ARCHITECTURE - Techniques are disclosed for a user-mode based remote desktop protocol (RDP) encoding architecture. A user mode desktop application and user mode virtual channel application run in user-mode session space. Virtual channel data from the virtual channel application is marshaled and sent to a RDP encoder process in user-mode system space. There it is converted to RDP protocol data units (PDU) and sent to a remote client across a communications network. Graphics data from the desktop application is sent to a display driver in kernel-mode session space and then to a graphics reflector that marshals the graphics data and sends it to the RDP encoder for a similar transformation. | 06-10-2010 |
20100215280 | RDP BITMAP HASH ACCELERATION USING SIMD INSTRUCTIONS - Systems, methods and computer readable media are disclosed for a vectorized tile differencing algorithm for a remote desktop protocol (RDP). A server executes a CBC-variant vectorized hash algorithm that is used to produce a big key that identifies the tile, and keeps track of these big keys. Where a serial version of the algorithm operates on a single portion of the image at once—such as 32 bits—the vectorized algorithm operates on a plurality of these portions simultaneously. Where the server identifies that a tile has already been sent to a client via RDP because it has a second big key that matches the big key, it sends the big key to the client—which caches received tiles—and the client uses it to access the proper tile for display. Where the server identifies that a tile has not already been sent to the client, it sends the client the tile. | 08-26-2010 |
20100226548 | Remote desktop protocol (RDP) Tile Image Classification for Improving Compression Efficiency and Quality - Systems, methods and computer readable media are disclosed for improving compression efficiency and quality in a remote session via tile image classification and variable encoding. A server determines a set of codecs that are shared by both the server and a corresponding client. Then, when it receives an image, it determines whether classification of the image is required. Where classification of the image is not required, the server sends the client the image, either uncompressed or compressed with a default codec and default fidelity. Where classification of the image is required, the server classifies the image (e.g. the image comprises either text or photograph), and based on that classification determines a codec with which to encode the image, and a fidelity to use on the encoding. The server performs that encoding with the codec and the fidelity, and then sends this encoded image to the client. | 09-09-2010 |
20100228871 | TEAR-FREE REMOTE DESKTOP PROTOCAL (RDP) DISPLAY - Systems, methods and computer readable media are disclosed for reducing the tearing of display data received across a communications network. A server determines at least two logically related drawing orders in an order heap and warps those orders with a begin marker and an end marker. It sends those wrapped orders across the communications network to a client. The client receives those orders and renders them to a shadow buffer. When the client processes the end marker, it moves the drawing orders in the shadow buffer to a client display surface. | 09-09-2010 |
20100254616 | IMAGE COMPRESSION ACCELERATION USING MULTIPLE PROCESSORS - Systems, methods and computer readable media are disclosed for accelerating the compression of images on a multi-processor computer. In an embodiment, an image is divided into a plurality of slices, each slice having the same width as the image. These slices are provided to a work manager that maintains a thread for each processor. The work manager assigns each slice to a thread for processing in an efficient manner (such as the thread corresponding to the first available processor), and when an indication that the slice has been compressed for each slice is received, the work manager assembles the compressed image. | 10-07-2010 |
20110142334 | Accelerating Bitmap Remoting By Identifying And Extracting 2D Patterns From Source Bitmaps - Systems, methods and computer-readable storage media are disclosed for accelerating bitmap remoting by extracting non-grid tiles from source bitmaps. A server takes a source image, identifies possibly repetitive features, and tiles the image. For each tile that contains part of a possibly repetitive feature, the server replaces that part with the dominant color of the tile. The system then sends to a client a combination of new tiles and features, and indications to tiles and features that the client has previously received and stored, along with an indication of how to recreate the image based on the tiles and features. | 06-16-2011 |
20110255791 | Accelerating Bitmap Remoting By Identifying And Extracting Patterns From Source Bitmaps Through Parallel Processing Techniques - Systems, methods and computer-readable storage media are disclosed for accelerating bitmap remoting by extracting patterns from source bitmaps. A server takes a source image, and performs an edge-detection operation on it. From this edge-detected image, connected segments of the image are determined by executing multiple iterations of a small operation upon the image in parallel—for instance, by assigning each non-white pixel a unique value, then assigning each pixel the minimum value among itself and its neighbors until no pixel is assigned a new value in an iteration. Executing these operations in parallel greatly reduces the time required to identify the connected segments. When the segments are identified, they may be cached by the client so that they do not need to be re-sent to the client when re-encountered by the server. | 10-20-2011 |
20110299785 | MOTION DETECTION TECHNIQUES FOR IMPROVED IMAGE REMOTING - Techniques are disclosed for acceleration techniques for improved image remoting. A rolling 2D hash of a first image sent to a client is computed. When the server has a second image to send to the client, it calculates a rolling 2D hash of the new image. It also calculates “pivot points” for the images based on the rolling 2D hashes. Based on the pivot points, it determines possible matching hash windows between the two images that correspond to window moves or scrolls. Where a match is confirmed, it determines whether a “larger” a larger matching rectangle exists between the two images. It then instructs the client to display the matching rectangle that exists in the first image that the client has in the appropriate location in the second image, thereby saving the bandwidth requirements to re-transmit it to the client. | 12-08-2011 |
20120294523 | Compression Of Text Contents For Display Remoting - Embodiments of the invention compress an image that contains a representation of text. Embodiments take an image of graphical data and determines one or more portions of that image that have a high probability of containing text. Embodiments then take each such portion of the image and determines one or more rows of text within each portion (where text does, in fact, exist within the portion). The embodiments then traverse each vertical band of pixels of each row to determine sub-glyphs. Where a particular sub-glyph is encountered for the first time, the embodiments cache that sub-glyph, and send it (or a compressed representation thereof) to a client in a remote presentation session. Where a particular sub-glyph has been cached already, the embodiments send a reference to that cached vertical band to the client. | 11-22-2012 |
20120314938 | Image Type Classifier For Improved Remote Presentation Session Compression - An invention is disclosed for classifying a graphic—e.g. as text or non-text. In embodiments, machine learning is used to generate a solution for classifying graphics of a graphic based on providing the machine learning system a plurality of graphics that are already classified. The way to determine a classification is then used by a remote presentation session server to classify tiles of frames to be transmitted to a client in a remote presentation session. The server encodes the tiles based on their classifications and transmits the encoded tiles to the client. | 12-13-2012 |
20120317236 | Web-Browser Based Desktop And Application Remoting Solution - An invention is disclosed for conducting a remote presentation session with a client that uses a web browser to conduct the session. In embodiments, a proxy server exists between the remote presentation server and the client. The proxy server establishes a HTTP session with the client and a remote presentation session with the client. The server generates graphics encoded with a remote presentation protocol and sends them to the proxy, which re-encodes them as video and sends them to the client for display in the web browser. The client captures user input at the web browser and sends it to the proxy, which encodes it with the remote presentation protocol and sends it to the server to be processed. | 12-13-2012 |
20130054835 | Data Compressor Using Hints - An invention is disclosed for compressing data. In embodiments of the invention, input data is processed to determine one or more hints, or meta-data about how to compress the data. These hints may be produced based on the contents of the data itself, or by the process which generated the data. A hint may comprise an indication that a portion of the data matches another portion of the data, an indication that the portion of the data should not be compressed by an associated compressor, or an indication that the portion of the data should be compressed normally by the associated compressor. The source data and these hints may then be sent to a compressor, which traverses both the source data and the hints, and encodes the source data accordingly to produce an encoded data output stream. | 02-28-2013 |
20130070844 | Low-Complexity Remote Presentation Session Encoder - An invention is disclosed for encoding and decoding data in a 4:4:4 subsampling scheme, using an encoder/decoder that is not configured to encode or decode data in 4:4:4. In embodiments, an encoder planararizes an input frame into three component frames in a 4:0:0 scheme. The encoder then encodes each component frame in the 4:0:0 scheme, and aggregates the encoded component frames into a bit stream. A decoder receives such a bit stream, and decodes it with a component not configured to decode data in 4:4:4. The decoder decodes the bit stream to produce a representation of the three component frames in 4:0:0, then aggregates the three component frames into a representation of the original frame in 4:4:4. | 03-21-2013 |
20140241622 | Image Type Classifier For Improved Remote Presentation Session Compression - An invention is disclosed for classifying a graphic—e.g. as text or non-text. In embodiments, machine learning is used to generate a solution for classifying graphics of a graphic based on providing the machine learning system a plurality of graphics that are already classified. The way to determine a classification is then used by a remote presentation session server to classify tiles of frames to be transmitted to a client in a remote presentation session. The server encodes the tiles based on their classifications and transmits the encoded tiles to the client. | 08-28-2014 |
20140254926 | ACCELERATING BITMAP REMOTING BY IDENTIFYING AND EXTRACTING 2D PATTERNS FROM SOURCE BITMAPS - Systems, methods and computer-readable storage media are disclosed for accelerating bitmap remoting by extracting non-grid tiles from source bitmaps. A server takes a source image, identifies possibly repetitive features, and tiles the image. For each tile that contains part of a possibly repetitive feature, the server replaces that part with the dominant color of the tile. The system then sends to a client a combination of new tiles and features, and indications to tiles and features that the client has previously received and stored, along with an indication of how to recreate the image based on the tiles and features. | 09-11-2014 |