Abstract:
Techniques are described for efficiently encoding video data by skipping evaluation of certain encoding modes based on various evaluation criteria. In some solutions, intra-block evaluation is performed in a specific order during encoding, and depending on encoding cost calculations of potential intra-block encoding modes, evaluation of some of the potential modes can be skipped. In some solutions, some encoding modes can be skipped depending on whether blocks are simple (e.g., simple vertical, simple horizontal, or both) or non-simple. In some solutions, various criteria are applied to determine whether chroma-from-luma mode evaluation can be skipped. The various solutions can be used independently and/or in combination.
Abstract:
An adaptive screen and video coding system adaptively selects different coding schemes for coding an image block of a screen or video image based on a type of content included in the image block. The adaptive screen and video coding system further includes a screen coding scheme that classifies pixels of the image block into major colors and escape pixels and convert values of the pixels into index values assigned to the major colors and the escape pixels. Since the number of index values is usually less than a normal range of pixel values, using the index values instead of actual pixel values further facilitate compression and coding of the image block, thus improving coding accuracy and efficiency of the screen or video image. In one embodiment, the adaptive screen and video coding system may be used for screen sharing application.
Abstract:
In some examples, a layered encoding component and a layered decoding component provide for different ways to encode and decode, respectively, video streams transmitted between devices. For instance, in encoding a video stream, a layered encoding component may analyze the content of successive video frames and determine different types of encoding techniques to use for different ones of the video frames. Further, in some cases, some of the encoding techniques may be used on less than an entire video frame. In another example, in decoding a video stream, a layered decoding component may receive video frames encoded with different types of encoding. The layered decoding component may decode the differently encoded video frames and combine them to reconstruct a video stream.
Abstract:
An “Interactive Virtual Display,” as described herein, provides various systems and techniques that facilitate ubiquitous user interaction with both local and remote heterogeneous computing devices. More specifically, the Interactive Virtual Display uses various combinations of small-size programmable hardware and portable or wearable sensors to enable any display surface (e.g., computer display devices, televisions, projected images/video from projection devices, etc.) to act as a thin client for users to interact with a plurality heterogeneous computing devices regardless of where those devices are located relative to the user. The Interactive Virtual Display provides a flexible system architecture that enables communication and collaboration between a plurality of both local and remote heterogeneous computing devices. This communication and collaboration enables a variety of techniques, such as adaptive screen compression, user interface virtualization, real-time gesture detection to improve system performance and overall user experience, etc.
Abstract:
A home cloud computing system employs a virtualization system to virtualize data of a device and adaptively transform type or format of the virtualized data for one or more other devices, thus leveraging resources of the device for the one or more other devices. Through data virtualization and adaptive transformation, devices of heterogeneous types are seamlessly connected to one another and can act as input or output devices for each other to create a home cloud network of devices.
Abstract:
Implementations of the subject matter described herein provide a solution for rate control based on reinforcement learning. In this solution, an encoding state of a video encoder is determined, the encoding state being associated with encoding of a first video unit by the video encoder. An encoding parameter associated with rate control in the video encoder is determined by a reinforcement learning model and based on the encoding state of the video encoder. A second video unit different from the first video unit is encoded based on the encoding parameter. In this way, it is possible to achieve a better quality of experience (QOE) for real time communication with computation overhead being reduced.
Abstract:
A computer-implemented method for displaying at least a portion of content being displayed on a first device to also be displayed on a second device. The method includes causing content to be displayed on a first device. The method then includes detecting a second device to concurrently display at least a portion of the content being displayed on the first device. A capability of the first device is compared with a capability of the second device. Based on the comparing, the at least the portion of the content is automatically provided to be displayed on the second device.
Abstract:
Disclosed in some examples are methods, systems, and machine-readable mediums which determine jitter buffer delay by inputting jitter buffer and currently observed network status information to a machine learned model that is trained using a reinforcement learning (RL) method. The model maps these inputs to an action to compress, stretch, or hold the jitter buffer delay, which is used by a recipient computing device to optimize the jitter buffer delay. The model may be trained using a simulator that uses network traces of past real streaming sessions (e.g., communication sessions) of users. By training the model through reinforcement learning, the model learns to make better decisions through reinforcement in the form of reward signals that reflect the performance of each decision.
Abstract:
Techniques are described for efficiently encoding video data by skipping evaluation of certain encoding modes based on various evaluation criteria. In some solutions, intra-block evaluation is performed in a specific order during encoding, and depending on encoding cost calculations of potential intra-block encoding modes, evaluation of some of the potential modes can be skipped. In some solutions, some encoding modes can be skipped depending on whether blocks are simple (e.g., simple vertical, simple horizontal, or both) or non-simple. In some solutions, various criteria are applied to determine whether chroma-from-luma mode evaluation can be skipped. The various solutions can be used independently and/or in combination.
Abstract:
Techniques are described for efficiently encoding video data by skipping evaluation of certain encoding modes based on various evaluation criteria. In some solutions, intra-block evaluation is performed in a specific order during encoding, and depending on encoding cost calculations of potential intra-block encoding modes, evaluation of some of the potential modes can be skipped. In some solutions, some encoding modes can be skipped depending on whether blocks are simple (e.g., simple vertical, simple horizontal, or both) or non-simple. In some solutions, various criteria are applied to determine whether chroma-from-luma mode evaluation can be skipped. The various solutions can be used independently and/or in combination.