Abstract:
Techniques are disclosed for coding video data predictively based on predictions made from spherical-domain projections of input pictures to be coded and reference pictures that are prediction candidates. Spherical projection of an input picture and the candidate reference pictures may be generated. Thereafter, a search may be conducted for a match between the spherical-domain representation of a pixel block to be coded and a spherical-domain representation of the reference picture. On a match, an offset may be determined between the spherical-domain representation of the pixel block to a matching portion of the of the reference picture in the spherical-domain representation. The spherical-domain offset may be transformed to a motion vector in a source-domain representation of the input picture, and the pixel block may be coded predictively with reference to a source-domain representation of the matching portion of the reference picture.
Abstract:
A video streaming method for transitioning between multiple sequences of coded video data may include receiving and decoding transmission units from a first sequence of coded video data. In response to a request to transition to a second sequence of coded video data, the method may determine whether a time to transition to the second sequence of coded video data can be reduced by transitioning to the second sequence of coded video data via an intermediate sequence of coded video data. If the time can be reduced, the method may include receiving at least one transmission unit from an intermediate sequence of coded video data that corresponds to the request to transition, decoding the transmission unit from the intermediate sequence, and transitioning from the first sequence to the second sequence via the decoded transmission unit from the intermediate sequence.
Abstract:
Video coding systems and methods are provided that protect against various artifacts (e.g., banding artifacts) in decoded frame content. The embodiments to protect against introducing artifacts include pre-processing the input video frame, controlling the encoding parameters and/or post-processing the decoded video frame. A method for encoding a frame may include calculating a dark-scene score for the frame based on measured statistics of the frame. The dark-scene score may be compared to a threshold to determine if the banding artifacts may be present in the frame. Based on the comparison, filtering parameters for the frame may be altered to reduce the amount of noise filtered from the frame. The frame may be filtered based on the altered filtering parameters and encoded.
Abstract:
Techniques for coding video data estimate depths of different elements within video content and identify regions within the video content based on the estimated depths. One of the regions may be assigned as an area of interest. Thereafter, video content of a region that is not an area of interest may be masked out and the resultant video content obtained from the masking may be coded. The coded video content may be transmitted to a channel. These techniques permit a coding terminal to mask out captured video content prior to coding in order to support coding policies that account for privacy interests or video composition features during a video coding session.
Abstract:
Techniques are disclosed for managing memory allocations when coding video data according to multiple codec configurations. According to these techniques, devices may negotiate parameters of a coding session that include parameters of a plurality of different codec configurations that may be used during the coding session. A device may estimate sizes of decoded picture buffers for each of the negotiated codec configurations and allocate in its memory a portion of memory sized according to a largest size of the estimated decoded picture buffers. Thereafter, the devices may exchange coded video data. The exchange may involve decoding coded data of reference pictures and storing the decoded reference pictures in the allocated memory. During the coding session, the devices may toggle among the different negotiated codec configurations. As they do, reallocations of memory may be avoided.
Abstract:
Techniques for cropping images containing an occlusion are presented. A method for image editing is presented comprising, when an occlusion is detected in an original digital image, determining an area occupied by the occlusion, assigning importance scores to different content elements of the original digital image, defining a cropping window around an area of the original digital image that does not include the area occupied by the occlusion and that is based on the importance scores, and cropping the original digital image to the cropping window.
Abstract:
Method For Implementing A Quantizer In A Multimedia Compression And Encoding System is disclosed. In the Quantizer system of the present invention, several new quantization ideas are disclosed. In one embodiment, adjacent macroblocks are grouped together into macroblock groups. The macroblock groups are then assigned a common quantizer value. The common quantizer value may be selected based upon how the macroblocks are encoded, the type of macroblocks within the macroblock group (intra-blocks or inter-blocks), the history of the motion vectors associated with the macroblocks in the macroblock group, the residuals of the macroblocks in the macroblock group, and the energy of the macroblocks in the macroblock group. The quantizer value may be adjusted in a manner that is dependent on the current quantizer value. Specifically, if the quantizer value is at the low end of the quantizer scale, then only small adjustments are made. If the quantizer value is at the high end then larger adjustments may be made to the quantizer. Finally, in one embodiment, the quantizer is implemented along with an inverse quantizer for efficient operation.
Abstract:
Image and video processing techniques are disclosed for processing components of a color space individually by determining limits for each component based on the relationship between each component in a color space. These limits may then be used to clip each component such that the component values are within the determined range for that component. In this manner, more efficient processing of images and/or video may be achieved.
Abstract:
Techniques are disclosed for overcoming communication lag between interactive operations among devices in a streaming session. According to the techniques, a first device streaming video content to a second device and an annotation is entered to a first frame being displayed at the second device, which is communicated back to the first device. Responsive to a communication that identifies the annotation, a first device may identify an element of video content from the first frame to which the annotation applies and determine whether the identified element is present in a second frame of video content currently displayed at the first terminal. If so, the first device may display the annotation with the second frame in a location where the identified element is present. If not, the first device may display the annotation via an alternate technique.
Abstract:
Techniques are described for responding to changes in bandwidth that are available to transmit coded video data between an encoder and a decoder. When such changes in bandwidth occur, estimates may be derived of visual significance of coded video data that has not yet been transmitted and also video data that is next to be coded. These estimates may be compared to each other. When the estimated visual significance of the coded video data that has not yet been transmitted is greater than the estimated visual significance of the video data that is next to be coded, transmission of the coded video data that has not yet been transmitted may be prioritized over coding of the video data that is next to be coded. When the estimated visual significance of the video data that is next to be coded is greater than the estimated visual significance of the coded video data that has not yet been transmitted, coding of the video data that is next to be coded may be prioritized over transmission of the coded video data that has not yet been transmitted. Resources may be allocated to the prioritized coder operation.