Ogg 페이지

Ogg page
Ogg 페이지 머리글

Ogg 페이지Ogg 비트스트림의 데이터 단위로서, 보통 4 kB에서 8 kB 사이이며, 최대 크기는 65,307 바이트이다.[1]

목적

멀티미디어 컨테이너 포맷의 목적 중 하나는 여러 코덱하나의 파일이나 스트림에 저장하도록 하는 것이다.예를 들어 오디오, 비디오, 자막을 하나의 파일로 결합하는 경우.

Ogg 형식을 만든 크리스토퍼 몽고메리(Christopher Montgomery)가 보유한 관점은 포함된 데이터를 디코딩할 때 필요한 버퍼링의 양을 제한하기 위해 코덱에서 사용하는 데이터 단위와는 별도의 추상화 계층이어야 한다는 것이다.Xiph.org 재단과 함께 일하는 다른 개발자들의 지원을 받는 그의 생각에서, 이것은 Oggg에게 AVI, QuickTime, MPEG와 같은 대체 비트스트림 형식보다 기술적 우위를 준다.

또한 각 Oggg 페이지에는 포함된 데이터의 시간 오프셋이 제공되므로 정확하고 스트리밍과 호환되는 효율적인 검색이 가능하다.대조적으로, 많은 다른 형식들은 스트림에서 바이트 위치를 찾거나 정보를 찾기 위해 목차에 의존한다.

페이지 구조

모든 Ogg 페이지는 4바이트 마법 문자열 "OggS"로 시작한다.동기화가 손실된 경우 디코더는 이 시퀀스의 다음 발생을 찾아 다시 디코딩을 시작할 수 있다.이 4바이트 다음에 Ogg 버전 0이 0이 된다.버전 필드는 원래 서로 다른 페이로드에 맞게 조정된 여러 Ogg 페이지 유형이 동일한 스트림에 공존할 수 있도록 하기 위한 것이었다.2000년대에 한 페이지 버전만 사용될 것이 분명해졌다.[2]

각 페이지의 6번째 바이트는 유형 플래그를 지정한다.값 1은 이전 페이지에서 지속된 패킷의 데이터를 페이지에 포함하도록 지정한다.값 2는 이것이 스트림의 첫 페이지임을, 값 4는 이것이 스트림의 마지막 페이지임을 명시한다.이러한 값은 추가 또는 논리적 OR과 결합할 수 있다.

다음 8바이트 또는 64비트는 디코드 타임스탬프, 프리젠테이션 타임스탬프 및 처음 필요한 참조까지의 거리를 인코딩하는 합성값인 절대 그래플 위치라고 불린다.그란울레 위치의 정확한 인코딩은 특정 코덱에 달려 있다.[2][3]

다음 4바이트는 이 페이지가 속한 스트림 일련번호다.각 논리 스트림에는 물리적 스트림 내에 고유한 일련 번호가 있어야 한다.또한 서로 다른 스트림을 멀티플렉싱할 때 충돌 가능성이 매우 낮도록 약한 해시처럼 사용하기 위한 것으로, 멀티플렉싱 단계마다 페이지 헤더를 지속적으로 재계산할 필요가 없다.

다음 4바이트는 스트림 내의 페이지 순서 번호다.이것은 분실된 페이지를 탐지할 수 있는 페이지 카운터다.다른 컨테이너 형식과 비교하여, 많은 수의 비트는 또한 Oggg 처리 재순서와 재조립을 처리하는 UDP 유니캐스트/멀티캐스트를 허용한다.[2]

페이지의 23번째 바이트에서 시작되는 다음 4바이트는 페이지의 CRC 체크섬이다.이 필드의 값이 변경되기 때문에 이 필드가 0인 것으로 검사 결과를 계산한다.

다음으로, 각 페이지의 27번째 바이트는 0부터 255까지의 범위에서 포함하는 세그먼트 수를 지정한다.이는 다음 세그먼트 테이블의 크기(바이트)이기도 하다.세그먼트 테이블의 각 바이트는 세그먼트의 길이를 제공한다.

각 세그먼트는 길이가 최대 255바이트까지 가능하며 페이지에 의해 경계가 지정된다.255바이트보다 작은 세그먼트는 패킷의 끝을 나타낸다. 다음 세그먼트는 새로운 패킷을 시작할 것이다.길이가 255바이트인 패킷은 길이 0의 세그먼트로 끝난다.페이지의 마지막 세그먼트가 255바이트인 경우, 마지막 패킷은 다음 페이지에서 계속된다.

페이지를 사용하여 편집

Ogg 페이지의 일반적인 용도 중 하나는 품질을 저하시키거나 파일을 변환할 필요 없이 Ogg 파일을 편집할 수 있게 하는 것이다.

스트림 내의 모든 페이지 시리즈는 스트림의 헤더 페이지(절대 그래플 위치가 0인 페이지)가 선행할 수 있으며 미디어 플레이어에 의해 적절히 디코딩된다.이 기술은 미디어 파일을 손실 없이 자르는 데 사용될 수 있다.

이러한 세그먼트의 일련 번호가 고유 번호로 수정될 경우 체인으로 알려진 프로세스를 사용하여 여러 개의 절단 세그먼트를 서로 추가할 수 있다.또한 이 세그먼트들 사이에 새로운 콘텐츠가 삽입될 수 있다.

참조

  1. ^ "RFC 3533 - The Ogg Encapsulation Format Version 0".
  2. ^ a b c Montgomery, Christopher (2010-04-27). "Monty - In Defense of Ogg's Good Name". people.xiph.org/~xiphmont. Archived from the original on 2010-04-29. Retrieved 2010-05-02.
  3. ^ "ogg-multiplex". Retrieved 2011-03-02.

외부 링크