Макроблок
Макроблок представляет собой блок обработки форматов сжатия изображений и видео, основанный на линейных блочных преобразованиях, обычно дискретном косинусном преобразовании (DCT). Макроблок обычно состоит из 16×16 выборок и далее подразделяется на блоки преобразования и может быть дополнительно подразделен на блоки предсказания. Форматы, основанные на макроблоках, включают JPEG , где они называются блоками MCU , H.261 , MPEG-1 часть 2 , H.262/MPEG-2 часть 2 , H.263 , MPEG-4 часть 2 и H.264. /MPEG-4 AVC . [ 1 ] [ 2 ] [ 3 ] [ 4 ] В H.265/HEVC макроблок как базовая единица обработки был заменен единицей дерева кодирования . [ 5 ]
Технические детали
[ редактировать ]Преобразование блоков
[ редактировать ]Макроблок делится на блоки преобразования, которые служат входными данными для преобразования линейного блока, например DCT. В H.261, первом видеокодеке, использующем макроблоки, блоки преобразования имеют фиксированный размер 8×8 выборок. [ 1 ] В цветовом пространстве YCbCr с субдискретизацией цветности 4:2:0 макроблок 16×16 состоит из образцов яркости (Y) 16×16 и образцов цветности 8×8 (Cb и Cr). Эти образцы разделены на четыре блока Y, один блок Cb и один блок Cr. Эта конструкция также используется в JPEG и большинстве других видеокодеков на основе макроблоков с фиксированным размером блока преобразования, таких как MPEG-1 Part 2 и H.262/MPEG-2 Part 2. В других форматах субдискретизации цветности , например 4:0 :0, 4:2:2 или 4:4:4, количество образцов цветности в макроблоке будет меньше или больше, и группировка образцов цветности в блоки будет соответственно отличаться.
In more modern macroblock-based video coding standards such as H.263 and H.264/AVC, transform blocks can be of sizes other than 8×8 samples. For instance, in H.264/AVC main profile, the transform block size is 4×4.[4] In H.264/AVC High profile, the transform block size can be either 4×4 or 8×8, adapted on a per-macroblock basis.[4]
Prediction blocks
[edit]Distinct from the division into transform blocks, a macroblock can be split into prediction blocks. In early standards such as H.261, MPEG-1 Part 2, and H.262/MPEG-2 Part 2, motion compensation is performed with one motion vector per macroblock.[1][2] In more modern standards such as H.264/AVC, a macroblock can be split into multiple variable-sized prediction blocks, called partitions.[4] In an inter-predicted macroblock in H.264/AVC, a separate motion vector is specified for each partition.[4] Correspondingly, in an intra-predicted macroblock, where samples are predicted by extrapolating from the edges of neighboring blocks, the predicted direction is specified on a per-partition basis.[4] In H.264/AVC, prediction partition size ranges from 4×4 to 16×16 samples for both inter-prediction (motion compensation) and intra-prediction.[4]
Bitstream representation
[edit]A possible bitstream representation of a macroblock in a video codec which uses motion compensation and transform coding is given below.[6] It is similar to the format used in H.261.[1]
+------+------+-------+--------+-----+----+----+--------+ | ADDR | TYPE | QUANT | VECTOR | CBP | b0 | b1 | ... b5 | +------+------+-------+--------+-----+----+----+--------+
- ADDR — address of block in image
- TYPE — identifies type of macroblock (intra frame, inter frame, bi-directional inter frame)
- QUANT — quantization value to vary quantization
- VECTOR — motion vector
- CBP — Coded Block Pattern, this is bit mask indicating for which blocks coefficients are present.
- bN — the blocks (4 Y, 1 Cr, 1 Cb)
Macroblocking
[edit]The term macroblocking is commonly used to refer to block coding artifacts.
See also
[edit]- JPEG, H.261, MPEG-1 Part 2, H.262/MPEG-2 Part 2, H.263 and H.264
- Coding tree unit
- Discrete cosine transform
- Video compression picture types
- Compression artifact
- Deblocking filter
- Pixelation
References
[edit]- ^ Jump up to: a b c d ITU-T (March 1993). "Video codec for audiovisual services at p x 64 kbit/s". Retrieved 2013-04-28.
- ^ Jump up to: a b ITU-T (February 2012). "Advanced video coding for generic audiovisual services". Retrieved 2013-04-28.
- ^ ITU-T (January 2005). "Video coding for low bit rate communication". Retrieved 2013-04-28.
- ^ Jump up to: a b c d e f g ITU-T (April 2013). "Information technology — Generic coding of moving pictures and associated audio information: Video". Retrieved 2013-04-28.
- ^ G.J. Sullivan; J.-R. Ohm; W.-J. Han; T. Wiegand (2012-05-25). "Overview of the High Efficiency Video Coding (HEVC) Standard" (PDF). IEEE Transactions on Circuits and Systems for Video Technology. Retrieved 2013-04-26.
- ^ Marshall, Dave (2001-04-10). "Intra Frame Coding". Multimedia Module No: CM0340. Retrieved 2014-02-13.