A video encoder compresses video information so that more information can be sent over a given bandwidth or saved in a given file size. The compressed signal or file may be transmitted to a receiver or video decoder that may decode or decompress the signal or file for display to a user. Such video encoder-decoder systems may follow a format or standard. For example, video compression standards include the H.264/MPEG-4 Advanced Video Coding (AVC) standard, the High Efficiency Video Coding (HEVC) standard, the VP8 standard, and the VP9 standard. Such standards may include basic functional modules such as intra/inter prediction, transform, quantization, in-loop filtering, and entropy coding.
In such advanced video coding standards, 16×16 macroblocks (in H.264) or up to 64×64 coding units (in HEVC) may be divided into smaller partition units and encoded. For example, a frame may be divided into blocks of different sizes that may be predicted either temporally (inter) or spatially (intra). After determining whether a block is to be intra or inter coded, the difference with block and associated source pixels may be determined. That difference (e.g., residual) may then be converted to the frequency domain (e.g., via discrete cosine transform) and converted to coefficients (e.g., via quantization). Such pixels may then need to be inverse quantized and inverse transformed such that after the inverse transform, a reconstructed image may be generated. For example, the reconstructed image is what the image will look like after a decoder decodes the bitstream.
In intra-prediction, spatially adjacent pixels with respect to a block are used for prediction. The determination of which spatially adjacent pixels are used for prediction is made based on available intra modes such that the mode that provides a lowest cost (e.g., in terms of distortion and bit rate) is selected for prediction. Such a mode decision may be based on reconstructed pixels or source pixels in various architectures. However, in some examples, a mode selection from the available modes may provide encode processing performance inefficiencies. Furthermore, some mode selections may offer very little compression improvement over other mode selections such that the encode processing performance inefficiencies do not offer requisite gains in video quality or bit rate savings.
Therefore, current encoding techniques may provide efficient compression, but, as discussed, they may provide performance inefficiencies in certain intra mode selections. As such, existing techniques do not provide improved computational efficiency while maintaining compression efficiency. Such problems may become critical as the desire to compress high quality video becomes more widespread.