摘要:
An application program utilizes a decoding sub-system and a three-dimensional (3D) rendering sub-system to apply effects to a video in-place in a document. The program configures pixel shaders for use with a rendering device for applying pixel-level effects to the decoded frames of the video, generates meshes, and pre-renders textures for use in implementing effects. When a request is received to play back the video in-place in the document, a decoding surface and a rendering surface are allocated. The decoding sub-system decodes frames of the video and copies the decoded frames to the decoding surface on one thread. A separate thread copies decoded frames from the decoding surface to a texture and from the texture to the rendering surface. The rendering device utilizes the pixel shaders, meshes, pre-computed textures, and other data to render the frames of the video to a rendering target.
摘要:
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.
摘要:
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.
摘要:
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.
摘要:
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.
摘要:
An invention is disclosed for efficiently processing and transmitting graphics data in a remote desktop environment. In embodiments of the invention, a connection is established between a remote desktop server computer and a remote desktop client computer. The remote desktop server computer may process graphics data representative of a remote user desktop. The remote desktop server computer may divide the remote desktop screen in data regions and portions. The remote desktop server computer may then encode and transmit each region to the remote desktop client computer at a certain quality that may be adjusted progressively across the screen frames. The remote desktop server computer may also stop encoding and transmitting the portions of the data region that would not be visible to a user when the region is rendered on a display. The remote desktop user experiences an image quality gradually improving with each frame containing information about the image.
摘要:
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.
摘要:
An application program utilizes a decoding sub-system and a three-dimensional (3D) rendering sub-system to apply effects to a video in-place in a document. The program configures pixel shaders for use with a rendering device for applying pixel-level effects to the decoded frames of the video, generates meshes, and pre-renders textures for use in implementing effects. When a request is received to play back the video in-place in the document, a decoding surface and a rendering surface are allocated. The decoding sub-system decodes frames of the video and copies the decoded frames to the decoding surface on one thread. A separate thread copies decoded frames from the decoding surface to a texture and from the texture to the rendering surface. The rendering device utilizes the pixel shaders, meshes, pre-computed textures, and other data to render the frames of the video to a rendering target.
摘要:
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.
摘要:
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.