Abstract:
Techniques for encoding data based at least in part upon an awareness of the decoding complexity of the encoded data and the ability of a target decoder to decode the encoded data are disclosed. In some embodiments, a set of data is encoded based at least in part upon a state of a target decoder to which the encoded set of data is to be provided. In some embodiments, a set of data is encoded based at least in part upon the states of multiple decoders to which the encoded set of data is to be provided.
Abstract:
A method and system for caching and streaming media content, including predictively delivering and/or acquiring content is provided. In the system, client devices may be communicatively coupled in a network, and may access and share cached content. Video segments making up a media stream may be selectively delivered to the clients such that a complete media stream may be formed from the different segments delivered to the different clients. Video segments may be pushed by the server to the client or requested by the client according to a prioritization scheme, including downloading: partial items on a client's subscription log, lower quality version(s) of content before higher quality version(s), higher bitrate segments before lower bitrate segments, summaries of full-length content, advertisements and splash screens common to multiple video clips.
Abstract:
A first improvement is described for prediction of motion vectors to be used in prediction of video data for enhancement layer data. Arbitrary pixelblock partitioning between base layer data and enhancement layer data raises problems to identify base layer motion vectors to be used as prediction sources for enhancement layer motion vectors. The disclosed method develops enhancement layer motion vectors by scaling a base layer pixelblock partition map according to a size difference between the base layer video image and the enhancement layer video image, then identified scale base layer pixelblocks that are co-located with the enhancement layer pixelblocks for which motion vector prediction is to be performed. Motion vectors from the scaled co-located base layer pixelblocks are averaged, weighted according to a degree of overlap between the base layer pixelblocks and the enhancement layer pixelblock. Another improvement is obtained by filtering recovered base layer image data before being provided to an enhancement layer decoder. When a specified filter requires image data outside a prediction region available from a base layer decoder, the prediction region data may be supplemented with previously-decoded data from an enhancement layer at a border of the prediction region.
Abstract:
Embodiments of the present invention provide apparatuses and methods of coding video. The apparatuses and methods may further provide coding a source video sequence according to a block-based coding process, estimating processing capabilities of a target decoder, determining if the estimated processing capabilities are sufficient to perform deblocking filtering. If not sufficient, the apparatuses and methods may provide computing deblocking filter strengths for pixel blocks of the source video sequence to be used at decoding, and transmitting the deblocking filter strengths in a coded video data signal with the coded video data. Moreover, if not sufficient, the apparatuses and methods may provide changing coding parameters including, but not limited to, block sizes, transform sizes, and Qmatrix.
Abstract:
Coding techniques for input video may include assigning picture identifiers to input frames in either long-form or short-form formats. If a network error has occurred that results in loss of previously-coded video data, a new input frame may be assigned a picture identifier that is coded in a long-form coding format. If no network error has occurred, the input frame may be assigned a picture identifier that is coded in a short-form coding format. Long-form coding may mitigate against loss of synchronization between an encoder and a decoder by picture identifiers.
Abstract:
In a video coding/decoding system, reference picture caches in a video coder and decoder may be partitioned dynamically based on camera and background motion can lead to improved coding efficiency and coding quality. When a camera is fixed and therefore exhibits low motion, a system may allocate larger portions of the reference picture cache to storage of long term reference frames. In this case, foreground elements of an image (for example, a person) may move in front of a relatively fixed background. Increasing the number of long term reference frames can increase the chances that, no matter where the foreground elements are within a frame currently being coded, the reference picture cache will contain at least one frame that provides an adequate prediction match to background elements within the new frame. Thus the background elements uncovered in the current frame can be coded at high quality with a low number of bits. When a camera exhibits high motion, the system may allocate larger portions of the reference picture cache to storage of short term reference frames.
Abstract:
Embodiments of the present invention provide apparatuses and methods of coding video. The apparatuses and methods may further provide coding a source video sequence according to a block-based coding process, estimating processing capabilities of a target decoder, determining if the estimated processing capabilities are sufficient to perform deblocking filtering. If not sufficient, the apparatuses and methods may provide computing deblocking filter strengths for pixel blocks of the source video sequence to be used at decoding, and transmitting the deblocking filter strengths in a coded video data signal with the coded video data. Moreover, if not sufficient, the apparatuses and methods may provide changing coding parameters including, but not limited to, block sizes, transform sizes, and Qmatrix.
Abstract:
System and methods for improved playback of a video stream are presented. Video snippets are identified that include a number of consecutive frames for playback. Snippets may be evenly temporally spaced in the video stream or may be content adaptive. Then the first frame of a snippet may be selected as the first frame of a scene or other appropriate stopping point. Scene detection, object detection, motion detection, video metadata, or other information generated during encoding or decoding of the video stream may aid in appropriate snippet selection.