바이트 스트림 포맷 (Byte stream format)

Posted in Video by

 

비디오 코덱에서는 압축된 데이터는 일반적으로 네트워크를 이용하여 전송되기 때문에, 네트워크 전송 기술을 고려하여 압축할 필요가 있다. 실제로 비디오 코덱에서는 ITU-T H.222.0|ISO/IEC 13818-1 같은 시스템 표준기술을 고려하여 NAL 유닛 뿐만 아니라 NAL 유닛을 구분하기 위한 스타트 코드, 바이트 정렬 등의 추가적인 코드가 포함된다. 이와 같이 NAL 유닛과 추가적인 코드를 포함하여 바이트 스트림 NAL 유닛이라고 정의하고 하나 이상의 바이트 스트림 NAL 유닛이 연속하여 위치하는 것을 바이트 스트림 포맷이라고 정의 한다.

 

image

image

바이트 스트림 NAL 유닛 (Byte stream NAL unit)

하나의 바이트 스트림 NAL 유닛은 그림과 같이 leading_zero_bits, zero_byte, start_code_prefix, NAL 유닛으로 구성된다.

1. leading_zero_bits / trailing_zero_8bits

  NAL 유닛의 바이트 정렬을 고려하여 NAL 유닛의 앞과 뒤쪽에 추가적인 데이터 (0)가 삽입 될 수 있다.

2. zero_byte

  엑세스 유닛 (access unit)을 구분 하기 위해 추가되는 바이트이다. 해당 신택스는 아래와 같은 조건일 때 전송된다.

  - NAL 유닛이 VPS_NUT, SPS_NUT or PPS_NUT 일 경우

  - 엑세스 유닛의 첫번 째 NAL 유닛일 경우

3. start_code_prefix

  0x000001 이라는 고정 값으로 NAL unit의 시작을 알리기 위해 인코더에서 디코더로 명시적으로 전송되는 값이다.

4. NAL unit

  네트워크 기기와의 통신을 고려하여 압축된 슬라이스에 대한 요약 정보 등이 포함되어 캡슐화된 압축된 비디오 스트림이다.