[opendtv] Re: New Thread: What becomes of Legacy Analog Equipment

  • From: Ron Economos <w6rz@xxxxxxxxxxx>
  • To: opendtv@xxxxxxxxxxxxx
  • Date: Sat, 01 Dec 2007 19:43:20 -0800

Trust your instincts Bob. Feel the Force. Actually, black and white images
do save bits. When the chroma pixels are all the same value (128) as they
are in a black and white image, they become easily compressible. Even in
an intra picture, it only takes 4 bits to code the chroma in a macroblock
(due to differential encoding of DC coefficients and a short VLC code
for zero difference).

# Macroblock 134  (14, 1) #
      2 Macroblock_Type                               1
      0 Dct_Type                                      0
      0 Dct_Dc_Size_Luminance                         100
      0 Dct_Dc_Size_Luminance                         100
      0 Dct_Dc_Size_Luminance                         100
      0 Dct_Dc_Size_Luminance                         100
      0 Dct_Dc_Size_Chrominance                       00    <---
      0 Dct_Dc_Size_Chrominance                       00    <---
      1 Macroblock_Address_Increment                  1

A typical 4:2:0 MPEG-2 sequence expends on average about 25% of the total coded DCT coefficient bits on chroma. This makes sense because each macroblock contains 4 luma blocks and 2 chroma blocks (1 for Cb and 1 for Cr). Here's a dump of some typical video:

Interactive MPEG Decoder intd 0.72A
@ Statistics output turned on.
@  Found Sequence Start Code at byte position 0.
* --------  Sequence Start Code at 0        ---------
* --------       GOP Start Code at 22       ---------
* --------          Intra frame at 30       ---------
* Frame number: 2              Average mquant: 3.21
* --- Number of bits used ---
*     High level headers :   8805  (0.79%)
*     Macroblock headers :  47948  (4.29%)
*         Motion vectors :      0  (0.00%)
*       DCT coefficients : 1060563  (94.92%)
*                  Luma  : 820629  (77.38%)
*                Chroma  : 239934  (22.62%)
* --- Macroblock types ---
*                  Intra :   8160  (100.00%)
* --------  Bidirectional frame at 139989   ---------
* Frame number: 3              Average mquant: 4.55
* --- Number of bits used ---
*     High level headers :   7444  (2.22%)
*     Macroblock headers : 112149  (33.50%)
*         Motion vectors :  95500  (28.53%)
*       DCT coefficients : 119689  (35.75%)
*                  Luma  :  88732  (74.14%)
*                Chroma  :  30957  (25.86%)
* --- Macroblock types ---
*                  Intra :     45  (0.55%)
*          Frame Forward :   1845  (22.61%)
*          Field Forward :     66  (0.81%)
*         Frame Backward :   5872  (71.96%)
*         Field Backward :     27  (0.33%)
*    Frame Bidirectional :    154  (1.89%)
*    Field Bidirectional :      8  (0.10%)
*                Skipped :    143  (1.75%)
* --------  Bidirectional frame at 182103   ---------
* Frame number: 4              Average mquant: 3.28
* --- Number of bits used ---
*     High level headers :   7440  (1.67%)
*     Macroblock headers : 131419  (29.47%)
*         Motion vectors :  94157  (21.12%)
*       DCT coefficients : 212895  (47.74%)
*                  Luma  : 160392  (75.34%)
*                Chroma  :  52503  (24.66%)
* --- Macroblock types ---
*                  Intra :     35  (0.43%)
*          Frame Forward :   3908  (47.89%)
*          Field Forward :     41  (0.50%)
*         Frame Backward :   3864  (47.35%)
*         Field Backward :     52  (0.64%)
*    Frame Bidirectional :    160  (1.96%)
*    Field Bidirectional :      6  (0.07%)
*                Skipped :     94  (1.15%)
* --------      Predicted frame at 238201   ---------
* Frame number: 5              Average mquant: 2.22
* --- Number of bits used ---
*     High level headers :   7444  (0.83%)
*     Macroblock headers : 126886  (14.19%)
*         Motion vectors : 103744  (11.60%)
*       DCT coefficients : 655924  (73.37%)
*                  Luma  : 494258  (75.35%)
*                Chroma  : 161666  (24.65%)
* --- Macroblock types ---
*                  Intra :     58  (0.71%)
*          Frame Forward :   7721  (94.62%)
*          Field Forward :    301  (3.69%)
*                Skipped :     80  (0.98%)

For black and white encoding, there's 8 (low end for B-frames) to 30 (high end for I-frames) percent (of the total bit budget per frame) more bits available for the the luma DCT coefficients.

Ron

Bob Miller wrote:

    Also, I don't see how you could save bits by transmitting black
    and white images, since chroma and luma are needed to make
    pictures, even if the source is black and white.

    The chroma formats permitted by MPEG-2 are 4:2:0, 4:2:2 and 4:4:4.
     They are *component*: A matrix, block or single sample from one
    of the three matrices (luminance and two chrominance) that make up
    a picture.


Shows you what I know. Thought b&W would save something.

Other related posts: