ZigZag Sin
登 陆
前面没有了 下一篇:从码流中读取到宏块

宏块是什么

乔红
2021-2-1 12:48 阅读 4604

引言

我们今天来介绍一下宏块是什么。在比较流行的视频编解码标准中,例如 H.264,H.265,还有 AV1 中,对图像进行压缩的时候,并不是直接对整张图像进行处理,而是先把图像分成一个一个的小块,对每一块进行较为独立的处理。当然,处理的时候也会考虑周围小方块的情况。这些小方块,就是宏块。

H.264 中的宏块 ( Macroblock )

一般情况下,宏块可以分为两个部分,那就是亮度块(Luma)和色度块(Chroma)

  • 亮度块 ( Luma )

    MB_Luma

    这是一个亮度块,它的大小是固定的 16 乘 16 个像素,注意,对于亮度块来说,这里面的一个像素不是指一组 YUV,而是只有一个 Y。这也就是为什么我们要管他叫做亮度宏块了,因为它里面真的只有亮度。

  • 色度块 ( Chroma )

    MB_Chroma

    同样,有了亮度块,就会有色度块,一般情况下,一个亮度块会对应两个色度块,亮度块就是 YUV 中的 Y,色度块就是 YUV 中的 UV。在 YUV 420 的图像中,两个色度块的大小都是 8 乘 8 的大小。而对于 YUV 422 的图像,色度块是 16 乘 8 的大小;对于 YUV 444 的图像,色度块是 16 乘 16 的大小。下图是三种色度块的对比

    MB_Chroma

综上,一个 YUV420 的宏块,看起来就是这个样子的:

MB_Luma_Chroma

前面没有了 下一篇:从码流中读取到宏块
给我买个键盘吧。。。求打赏。。。
欢迎加群,一起交流~~~