Movie Atoms

JUNE·2021년 7월 29일
0

QTFF

목록 보기
3/3

이 챕터는 QuickTime movie atom에 대한 일반적인 소개와 atom의 layout과 사용법에 대한 구체적인 세부사항을 제공한다.


Overview of Movie Atoms

QuickTime movie atom은 'moov' 타입의 atom을 가진다. 이 atom은 movie의 데이터를 설명하는 정보의 container의 역할을 한다. 이 정보(또는 메타데이터)는 다양한 다른 타입의 atom들이 저장되어 있다. 일반적으로 메타데이터는 movie atom에만 저장된다. movie의 sample data(audio나 video sample)는 movie atom에서 참조될 뿐 그것들을 포함하지는 않는다.

Movie atom은 본질적으로 다른 atom들의 Container이다. 이 atom들이 합쳐져서 movie의 내용(contents)을 묘사한다. 최고 수준(highest level)에서 movie atom은 일반적으로 track atom을 포함하며, 이 track atom은 media atom을 포함한다. 최저 수준(lowest level)에서는 not-atom 데이터(일반적으로 테이블이나 데이터 요소의 집합 형태)를 포함하는 leaf atom입니다.


위 그림은 간단한 One-track QuickTime movie 구성에 대한 개념적인 뷰를 나타낸다. 각 내포된 상자는 parent atom에 속하는 atom들을 나타낸다. 그림에 atom의 data 영역을 나타내지는 않는다. 이 그림은 표준 movie atom의 구성을 보여준다. 무손실 압축 알고리즘을 사용하여 movie 메타데이터를 압축할 수 있다. 이 경우, movie atom은 하나의 child atom(compressed movie atom('cmov'))을 가진다. 이 atom이 압축되지 않았을때는, 그 내용이 위 그림에 표시된 구조와 일치한다.

다른 movie를 참조하는 reference movie를 만드는 것도 가능하다. 이 경우 movie atom은 reference movie atom('rmra')만 담고있다.

그림에 나타나지 않은 추가 atom이 있을 수도 있다.


The Movie Atom

Movie atom을 사용하여 application이 다른 곳에 저장된 샘플 데이터를 해석하는 정보를 지정한다. Movie atom은 일반적으로 movie header atom을 담고 있다. 이 header atom은 movie 전체의 시간과 기간, 화면 특성(display characterisitcs)를 포함한다. 기존 movie에는 필수 코덱, 최대 bitrate, movie의 주요 특징(main feature)를 요약한 movie profile atom이 포함된다. 또한 movie atom은 movie 안에 있는 각 트랙에 대한 track atom을 포함한다.

Movie atom은 'moov' type을 가진다. 이 atom은 "movie header atom('mvhd')", "compressed movie atom('cmov')" or "reference movie atom('rmra')" 중 적어도 하나를 포함하고 있다.
압축되지 않은 movie atom은 movie header atom과 reference movie atom 둘 다 포함할 수 있다.(둘 중 하나는 반드시 포함해야 한다.) 몇가지 다른 atom들도 포함할 수 있는데 clipping atom('clip'), 하나 이상의 track atom('trak'), color table atom('ctab'), user data atom('udta') 등도 포함할 수 있다.

전형적인 movie atom의 레이아웃이다.
movie atom은 아래의 필드들을 포함할 수 있다.

  • Size : 해당 movie atom의 byte 수
  • Type : 해당 movie atom의 type : 'moov'
  • Profile atom
  • Movie header atom
  • Movie clipping atom
  • Track atoms
  • User data atom
  • Color table atom
  • Compressed movie atom
  • Reference movie atom

The Movie Profile Atom

Profile atoms은 QuickTime file format에서 deprecated 됐음(ExoPlayer에서도 안보이는듯). 다음에 나오는 정보는 profile atom을 포함하는 기존 내용을 문서화하기 위한 것

Movie profile atom은 플레이어 애플리케이션이나 디바이스가 해당 movie를 플레이하기 위한 필수적인 리소스를 가지고 있는지 신속하게 확인할 수 있도록 필요한 코덱과 최대 bit rate 같은 movie의 특징(feature)과 복잡성(Complexity)을 요약한다.

여기서 movie의 특징은 일반적으로 video와 audio의 최대 bit rate, video, audio의 코덱 타입 리스트, movie's video dimension(해상도), 적용가능한(applicable) MPEG-4 profile과 level 등이 포함된다. 이 정보들은 모두 movie 파일의 내용을 좀 더 자세히 살펴보아야 얻을 수 있는 정보들이다. 이 요약은 애플리케이션과 디바이스가 동영상을 재생할 수 있는지 여부를 신속하게 확인할 수 있도록 하기 위한 것입니다.
Movie의 다른 곳에서는 찾아볼 수 없는 정보를 담기 위한 container가 아니며, 그렇게 사용해서는 안됩니다.

profile atom에 feature가 나타나지 않는다고 movie에 feature가 없는 것은 아니다. Profile atom 자체가 없거나 movie feature의 subset으로 나열될 수도 있다. profile atom에 나타난 feature들이 완전한 것일 수도 있지만, 아닐수도 있다.

profile atom을 생성할 때, movie의 일부 feature를 생략할 수 있지만, profile에 포함된 feature들의 정보는 완전히 지정해야한다.
예를 들어, video를 포함하는 movie는 profile atom에 비디오 코텍 유형이 있을수도 있고 없을 수도 있지만, 포함된 경우에는 필요한 모든 비디오 코덱을 profile atom에 나열해야한다.

movie profile atom('prfl')은 parent가 movie atom이다. 이는 parent가 track atom인 track profile atom과는 구별된다. 두 atom의 구조는 동일하지만, movie profile atom의 내용은 movie 전체를 설명하는 반면, track profile atom은 특정 트랙에 한정된다.

feature 리스트의 각 항목은 네 개의 32bit 필드로 구성된다.

  • 첫번째 필드 : reserved, 반드시 0으로 설정해야한다.
  • 두번째 필드 : part-ID, brand-specific(?) 또는 Universal 로 정의한다. brand-specific은 특정 brand에 따라 다르다. Universal은 profile atom은 모든 file type에서 찾을 수 있다. Universal feature는 4개의 ASCII 코드 (0x20202020) 이라는 part-ID를 가진다. Brand-specific은 file type atom('ftyp')에 지정한 대로, 해당 파일 타입의 Compatible_brand code 중 하나인 part-ID가 있다. 예를 들어, QuickTime-specific feature의 part-ID는 'qt '. 그러나 이 문서에서 설명한 모든 feature는 universal이다.
profile
이것저것

0개의 댓글