Projekte > MPEG-1/2 Video > MPEG-2 Elementar Stream Video

Picture Display Extension

Dem Extension Start Code mit der ID $B5 folgen vier Bit mit der Extension ID $B7.

Aufbau

  • 4 Byte: EXTENSION_START_CODE = $000001B5
  • 4 Bit: Start Code Identifier - Picture Display Extension = $7
  • Für 0 = i < number_of_frame_centre_offsets (maximal 3 Offsets)
    • 2 Byte (Int16): frame_centre_horizontal_offset
    • 1 Bit: Marker
    • 2 Byte (Int16): frame_centre_vertical_offset
    • 1 Bit: Marker

Als Schema

 76543210
0EXTENSION_START_CODE
 
$000001B5
1
2
3
4Start Code Identifier = $7frame_centre_horizontal_offset
5noch frame_centre_horizontal_offset
6noch frame_centre_horizontal_offsetMarkerframe_centre_vertical_offset
7noch frame_centre_vertical_offset
8noch frame_centre_vertical_offsetMarker...

Erläuterungen

Diese Extension ist für den normalen Decodingprozess nicht notwendig. Sie erlaubt es jedoch, das Picture auf dem Display zu positionieren. Eine Anwendung dazu ist Pan & Scan. Dieser Extension muss eine Sequence Display Extension vorangegangen sein.

frame_centre_horizontal_offset
Ist der horizontale Offset in Einheiten von 1/16 Sample. Ein positiver Wert bedeutet, dass das Zentrum des Picture rechts vom Zentrum des Displays liegt.

frame_centre_vertical_offset
Ist der vertikale Offset in Einheiten von 1/16 Sample. Ein positiver Wert bedeutet, dass das Zentrum des Picture unter dem Zentrum des Displays liegt.

Die Größe des Diplays ist in der Sequence Display Extension definiert. Die Koordinaten für das decodete Picture in der Picture Display Extension. Das Zentrum des decodeten Picture ist das Zentrum des Displays. Ein Picture kann sich auf ein, zwei oder drei decodierte Felder beziehen, d.h. es können bis zu drei Offsets enthalten sein.

Die Anzahl der Offsets ergibt sich aus den Flags progressive_sequence, repeat_first_field und top_field_first.

if ( progressive_sequence == 1)
   { if ( repeat_first_field == 1 )
        { if ( top_field_first == 1 )
             number_of_frame_centre_offsets = 3
          else
             number_of_frame_centre_offsets = 2
        }
        else
        {
        number_of_frame_centre_offsets = 1
        }
   }
   else
   { if (picture_structure == "field")
        { number_of_frame_centre_offsets = 1
        }
        else
        { if (repeat_first_field == 1 )
             number_of_frame_centre_offsets = 3
          else
             number_of_frame_centre_offsets = 2
        }
   }

Das Flag progressive_sequence ist in der Sequence Extension enthalten. repeat_first_field, top_field_first und picture_structure in der Picture Coding Extension.

Das Fehlen der Offsets bedeutet, dass die zuvor verwendeten Werte verwendet werden sollen. Das gilt auch, wenn nicht alle Offsets angegeben sind. Nach einem Sequence Header werden wieder Nullwerte verwendet, bis wieder Werte angegeben werden.

Das Bild unten stammt aus einem Draft zur ISO 13818-2.

Testprogramm

Mit dem folgenden kleinen Testprogramm kann man einen MPEG-2 Video Elementar Stream scannen und die Picture Display Extension anzeigen lassen. In Ermangelung eines Teststreams mit Picture Display Extension wird im Testprogramm nur ein Offset ausgelesen.

MPEG2 Elementar Test 9 (165 kb) - MD5
Stand: 13. Oktober 2008