PES Packt Header   PES 헤더, PES 패킷 헤더

(2018-11-05)
1. PES 패킷 헤더 구조

    


2. PES 패킷 헤더의 기본 필드

  ㅇ packet_start_code_prefix (24 비트)
     - `0000 0000 0000 0000 0000 0001 (0x 00 00 01)`
        . 바이트 단위 정렬 : 23개 비트 `0`과 마지막 비트 `1`로써 구성됨

  ㅇ stream_id (8 비트)
     - PES 패킷 유료부하에 포함된 ES(Elementary Stream) 타입 및 번호를 나타냄
        . `1011 1100 (0x BC)` : Program Stream Map
        . `1011 1101 (0x BD)` : Private stream 1 (non MPEG audio, subpictures)
           .. PES 헤더에 선택 확장 필드 있음
        . `1011 1110 (0x BE)` : Padding stream
           .. 수납된 스트림정보 없이 단순히 덧붙이기 임
           .. PES 헤더에 선택 확장 필드 없음
        . `1011 1111 (0x BF)` : Private stream 2 (navigation data)
           .. PES 헤더에 선택 확장 필드 없음
        . `110x xxxx (Ox C0 ~ DF)` : Audio Stream
           .. PES 헤더에 선택 확장 필드 있음
           .. 뒤의 `x`는 다중화되는 여러 오디오 ES들의 일련번호로써 사용됨
        . `1110 xxxx (Ox E0 ~ EF)` : Video Stream
           .. PES 헤더에 선택 확장 필드 있음
           .. 뒤의 `x`는 다중화되는 여러 비디오 ES들의 일련번호로써 사용됨 
        . (...) 등
      - PSI(프로그램사양정보)에 정의되는 값(PMT의 stream_type)과 일관성이 있어야 함

  ㅇ PES_packet_length (16 비트)
     - 이 필드 바로 다음부터 PES 패킷 끝까지의 길이 바이트 수
        . `0`이면, 비디오 ES 이고 그 길이가 제한없음을 뜻함 
           .. PES 패킷 길이는 비디오 제외하고는 최대 64 kbytes(65,536 바이트) 이하

  *  한편, packet start code 라고 하면, (packet_start_code_prefix + stream_id)를 말함


3. PES 패킷 헤더의 선택 필드 (optional PES Header)PES_scrambling_control (2 비트)
     - 유료부하 내 데이터의 스크램블링 모드를 결정함
        . 00 : not scrambled, 그 이외 값 : user defined

  ㅇ PES_priority (1 비트)
     - PES 패킷 유료부하의 우선순위를 나타냄 (`1`은 우선순위 높음)

  ㅇ (기타 선택 필드들)
     - 타이밍 시간 정보   : ESCR(Elementary Stream Clock Reference), 
                            PTS(Presentation Time Stamp), DTS(Decoding Time Stamp)
     - 우선순위 플래그    : 패킷의 중요도를 표기
     - 암호화 제어 플래그 
     - 트릭모드 재생 정보 : 빠른 재생 등 비디오 재생 관련
     - 저작권


[MPEG 다중화] 1. MPEG 다중화 2. MPEG 스트림 3. ES 4. PES 5. PES 패킷 헤더 6. PS 7. TS 8. TS 패킷 9. TS 패킷 헤더 10. TS 패킷 적응필드 11. 프로그램 12. PID 13. PSI 14. PSI 관련 테이블들

 
        최근수정     요약목록     참고문헌