Abstract:
The present disclosure is directed to a method and system for increasing virtual machine (VM) density on a server system through adaptive rendering by dynamically shifting video rendering tasks to a client computing device. In one embodiment, a processor in a server manages virtual machines in the server by controlling a number of VMs and an amount of system resources allocated to the VMs. The number of VMs and the amount of resources allocated to the VMs are controlled by shifting video rendering from at least one of the VMs to a client device, and increasing the number of the VMs in the server after the shifting.
Abstract:
In various examples, a media stream may be received by a re-encode system that may leverage a recode engine to convert (e.g., at an interval, based on a request, etc.) an inter-frame associated with the media stream to an intra-frame. The intra-frame may be converted from the inter-frame using parameters or other information associated with and received with the media stream. The converted intra-frame may be merged into an updated segment of the media stream in place of the original inter-frame to enable storage of the updated segment—or a portion thereof—for later use.
Abstract:
The present disclosure is directed to a method to increase virtual machine density on a server system through adaptive rendering by dynamically determining when to shift video rendering tasks between the server system and a client computing device. In another embodiment, the adaptive rendering, using various parameters, can select one or more encoding and compression algorithms to use to prepare and process the video for transmission to the client computing device. In another embodiment, a video rendering system is disclosed that can adaptively alter how and where a video is rendered, encoded, and compressed.
Abstract:
The present disclosure is directed to a method and system for increasing virtual machine (VM) density on a server system through adaptive rendering by dynamically shifting video rendering tasks to a client computing device. In one embodiment, a processor in a server manages virtual machines in the server by controlling a number of VMs and an amount of system resources allocated to the VMs. The number of VMs and the amount of resources allocated to the VMs are controlled by shifting video rendering from at least one of the VMs to a client device, and increasing the number of the VMs in the server after the shifting.
Abstract:
A subsystem configured to upsample a video data stream encoded in YCrCb format 4:2:0 (also termed YUV 4:2:0) performs an algorithm upon a two-by-two group of subsampled pixels. The subsystem computes an inside probability that the chrominance of a target pixel is a close match to the chrominance inside the group of four pixels. The subsystem further computes three weighting factors relating the chrominance of the target pixel to each of three adjacent pixels in an upsampled four-by-four pixel group. The subsystem then computes an outside estimate of the chrominance based on the weighting factors. Finally, the subsystem computes the chrominance of the target pixel based on the inside probability, the outside estimate, and the subsampled chrominance. The subsystem performs the algorithm upon all two-by-two groups of four pixels within a subsampled YUV 4:2:0 video data stream and generates an upsampled YUV 4:4:4 video data stream.
Abstract:
Systems and methods for multiplexing audio/video data and generating transport streams for WiFi network with reduced latency for real time playback at a remote device. A virtual presentation clock reference (PCR) representing a scheduled transmission time of a transport stream packet at a transport stream multiplexer is calculated based on the network transmission rate and generation of the data packets. The virtual PCR is compared with the corresponding system PCR to derive a time difference. Based on the time difference, the transport stream multiplexer is configured to adaptively drop packets or throttle packet generation so as to synchronize the playback of audio/video data on a sink device with the generation of interleaved audio/video packets.
Abstract:
A method, computer program product, and system are provided for multi-threaded video encoding. The method includes the steps of generating a set of motion vectors in a hardware video encoder based on a current frame of a video stream and a reference frame of the video stream, dividing the current frame into a number of slices, encoding each slice of the current frame based on the set of motion vectors, and combining the encoded slices to generate an encoded bitstream.
Abstract:
In various examples, processing content data using graphics processing units for video streaming systems and applications is described herein. Systems and methods are disclosed that offload at least a portion of the processing that is typically performed by a central processing unit (CPU) to a graphics processing unit (GPU). For example, and for a streaming application, the GPU may initially generate and then encode a content stream (e.g., a video stream, an audio stream, etc.). In some examples, the GPU generates and/or encodes the content stream based on input data received from one or more client devices. The GPU may then perform additional processing associated with the encoded content stream, such as packetization, forward error correction (FEC), encryption, and/or any other processing. The CPU may then use packet pacing when causing the processed content stream to be streamed to the client device(s).
Abstract:
In various examples, a media stream may be received by a re-encode system that may leverage a recode engine to convert (e.g., at an interval, based on a request, etc.) an inter-frame associated with the media stream to an intra-frame. The intra-frame may be converted from the inter-frame using parameters or other information associated with and received with the media stream. The converted intra-frame may be merged into an updated segment of the media stream in place of the original inter-frame to enable storage of the updated segment—or a portion thereof—for later use.
Abstract:
In various examples, a media stream may be received by a re-encode system that may leverage a recode engine to convert (e.g., at an interval, based on a request, etc.) an inter-frame associated with the media stream to an intra-frame. The intra-frame may be converted from the inter-frame using parameters or other information associated with and received with the media stream. The converted intra-frame may be merged into an updated segment of the media stream in place of the original inter-frame to enable storage of the updated segment—or a portion thereof—for later use.