Abstract:
A three-dimensional (3D) video codec encodes multiple views of a 3D video, each including texture and depth components. The encoders of the codec encode video blocks of their respective views based on a set of prediction parameters, such as quad-tree split flags, prediction modes, partition sizes, motion fields, inter directions, reference indices, luma intra modes, and chroma intra modes. The prediction parameters may be inherited across different views and different ones of the texture and depth components.
Abstract:
Systems, devices and methods for performing low memory access candidate-based decoder-side motion vector determination (DMVD) are described. The number of candidate motion vectors (MVs) searched may be confined by limiting the range of pixels associated with candidate MVs to a pre-defined window. Reference windows may then be loaded into memory only once for both DMVD and motion compensation (MC) processing. Reference window size may be adapted to different PU sizes. Further, various schemes are described for determining reference window positions.
Abstract:
Video compression encoding includes intra and inter prediction to reduce spatial and temporal redundancies in video. Prediction results or residuals represent differences between original video pixel values and predicted pixel values. The prediction residuals may be transformed into coefficients, referred to as transform coefficients, in the frequency domain. The transform coefficients may be quantized and entropy encoded. The transform coefficients can be sub-sampled prior to quantization to reduce their number. For example, sub-sampling may reduce more high frequency components than low frequency components represented in the transform coefficients. Therefore, sub-sampling reduces the number of transform coefficients that need to be quantized, reduces quantization complexity, and correspondingly increases throughput in the encoding.
Abstract:
Systems, devices and methods for performing luma-based chroma ultra prediction are described. Down-sample filters may be applied to luma values of luma pixel positions to generate reconstructed luma values for chroma pixel positions in a prediction unit of an intra frame. The down-sampled reconstructed luma values may then be used to predict chroma values for the chroma pixel positions. In some implementations, a reconstructed luma value of a chroma position may be used to predict that position's chroma value. In other implementations, reconstructed luma values of neighboring chroma pixel positions may be analyzed to adaptively predict a chroma value for a chroma pixel position.
Abstract:
Systems and methods for choosing whether to select either a spatial interpolation value or a motion compensation interpolation value for deinterlacing an interlaced frame. A minimal sum of absolute differences (SAD) may be determined for a current pixel. Depending on the magnitude of the minimal SAD relative to two threshold values, different checks may be applied. The outcome of the checks may determine whether the spatial interpolation value or the motion compensation interpolation value may be used in deinterlacing. Generally, the magnitude of the minimal SAD may determine the reliability of the SAD and the consequent trustworthiness of the associated motion vector (MV). Greater reliability of the minimal SAD may suggest that the motion compensation interpolation value may be used for purposes of deinterlacing. Less reliability in the minimal SAD may motivate additional checks to further evaluate whether the motion compensation interpolation value should be used. A less reliable minimal SAD and/or failure of some of the checks may suggest that the motion compensation interpolation value should not be used.
Abstract:
Adaptive control can use hierarchical motion estimation (HME) and/or multiple reference motion estimation (MRME) for the motion estimation of current encoding blocks. Both HME and MRME are allowed in the motion estimation to achieve a high coding gain. Control consists of slice level control and macro-block (MB) level control. A slice is one or more contiguous macroblocks. In slice level control, it is decided to use only one reference frame or use multiple reference frames to coding current slice based on the motion vectors obtained in coarse level motion estimation. In MB level control, it is decided to perform MRME or perform HME for the MB and its subblocks based on the coarse level motion vectors of the MB.