[Theory/Multimedia] - 액세스 유닛[Access Unit]


시작하기에 앞서 Elementary Stream 자체를 이해하기 편하게 하기 위해서는 기왕이면, 이전 글을 읽고 오시는 것을 추천하고 싶습니다.


일단 Stream이라는 것의 정의부터 좀 하고 지나가는 것이 좋을 것 같다는 생각이 듭니다. 보통 영상 쪽에서의 Stream이란, 그것이 파일이든, 네트워크이든 어떤 것을 통해서 들어오든, 어떤 형태(예를 들면, MPEG 2, MPEG 4)를 띄고 들어오든 일련의 데이터가 들어오는 것을 의미합니다.


우선 Elementary Stream이 무엇인지 살펴보겠습니다. 다른 곳에서 확인을 하더라도 유사한 내용으로 설명이 나오는데요. 일단 위키피디아에서 가장 첫 줄에 정의되어있는 내용을 보면, "Elementary Stream은 MPEG 통신 프로토콜에서 정의하기를, 보통 오디오와 비디오 인코더의 출력"이라고 표현하고 있습니다. 이제 액세스 유닛을 보고 오는 것이 좋을 것이라는 내용을 이해하셨으리라 생각합니다. 결국 Elementary Stream이란, 이러한 액세스 유닛의 집합체라고 볼 수 있기 때문입니다.


여기에서 오해를 남기지 않기 위해서 하나 짚고 넘어가자면, Elementary Stream이 반드시 액세스 유닛의 집합체를 의미하는 것은 아닙니다. 예를 들어서 MPEG 2 시스템의 경우, PSI라고 불리는 별도의 정보가 있습니다. 자막이 있을 수도 있고, 채널, 인코더 정보 등이 포함되어 있는 경우도 있습니다. 액세스 유닛의 집합체라는 말이 틀린 것도 아니지만, 그렇다고 맞는 말도 아니기 때문에 그렇습니다. 그리고 글 아래에 링크가 되어있는 위키피디아의 내용 중에서 Elementary Stream의 경우에는 정의를 제외하고는 그다지 보지 않으시는 것이 더 좋을 수 있습니다.


Packetized Elementary Stream(PES)는 위에서 설명한 Elementary Stream을 일정한 크기의 패킷으로 쪼갠 것입니다. 그렇다면, 조금은 궁금해지는 것이 도대체 왜 쪼개는가? 입니다. 그냥 그대로 넣어서 돌리면 되는 일을 굳이 쪼개서 사람 복잡하게 만들 필요가 있을까? 하는 생각입니다. 하지만 우리는 쪼개서 얻을 수 있는 이득이 훨씬 많습니다. 모르셨겠지만, 우리에게 흔한 DVD를 구입하더라도 보통 다양한 음성이 그것도 고음질로 들어있습니다. 그렇다보니 용량에 비해서 굉장히 저화질로 나오는 것인데요. 이 경우에는 하나의 영상과 여러 음성이 섞여있는 것입니다. 영화를 보다가 음성을 한국어 더빙에서 영어로 변경을 할 때, 빠른 전환을 하기 위해서는 데이터가 서로 잘 섞여있어야 합니다. 그리고 PES Optional Header 부분에서는 CRC 체크도 할 수 있기 때문에 100% 완전한 데이터를 받아서 처리할 수 있는 환경이 아니라고 할지라도, 해당 Packet만 오류가 있다고 판단을 해서 제거하고 처리할 수 있는 상황도 존재하는 것입니다.


PES Packet Header

 Name

 Size

 Start Code

 4 bytes. 0x000001(C0-DF: Audio, E0-EF: Video)

 Length

 2 bytes.

 Optional

 Variable

 Data

 Variable


일단 간략하게 표현하기 위해서 이렇게 표현을 했습니다. 더 자세한 내용은 하단의 위키피디아를 참고하세요.

각 부분에 대한 상세한 설명을 하기에는 이번 글에서 너무 양이 방대해지는 것 같으니, 그 부분은 생략하도록 하고요. 다만 한가지 좀 더러운 부분만 이야기를 하고 싶습니다. 설명을 보시면 아시겠지만, PES Header에서 Length 부분은 0이 될 수 있습니다. 이는 정해지지 않았다는 것입니다. 그러면, 얄짤없이 PES Packet의 시작과 끝을 파싱을 해야 합니다.


참고자료

http://en.wikipedia.org/wiki/Elementary_stream

http://en.wikipedia.org/wiki/Packetized_elementary_stream


MPEG 시스템
국내도서
저자 : 유시룡
출판 : 브레인코리아 2004.04.28
상세보기


저작자 표시 비영리 변경 금지
신고
by 가우초 2013.11.25 21:43

티스토리 툴바