네트워크2012. 11. 9. 22:58

 

Introduction to QuickTime File Format Specification

 

QTFF 는 devices, applications, operationg systems 간에 디지털미디어의 교환을 쉽게해주기 위한 이상적인 fomat. 이유는, QTFF 가 거의 대부분의 미디어 구조를 describe하는데에 사용될 수 있기 때문이다. The file format 은 (객체들의 유연한 모음으로 구성되어서 쉽게 분석되고, 쉽게 확장될 수 있는) object-oriented의 성질을 갖고있다. 모르는 객체는 간단하게 무시되거나 넘어갈 수 있다(skip). 이렇게 함으로써 새로운 객체 타입이 선언되었을때(introduced) 많은 수의 접근호환성(forward compatibility)을 지원해준다. 

 

QuickTime 그 자체로 많은 high-level function들을 제공해준다. 당신은 high-level function를 이용하여 실제 파일 포맷에 대한 이해없이, QuickTime files을 만들거나 조작하는 작업들을 수행할 수 있다. 이러한 함수들은 개발자들에게 operation 의 low-level 구체사항에 대한 요구를 필요없도록 도와준다. 그 이야기는 여기에 표현된(presented) 정보들 없이는 모든 종류의 QuickTime files 이 만들어질수없다는 것이다.

 

Important : QuickTime File Format 은 ISO에서 개발된 MPEG-4 기준과, JPEG-2000 기준으로 사용되는 포맷이다. 하지만 이들 file type 들은 비슷한 구조들을 갖고있고, 많은 함수적인 동일 요소(functionally identical elements)들을 포함하고 있음에도, 여전히 distinct 한 file types 이다.

 

Warning : Do NOT use this specification to interpret a file that conforms to a different specification, however similar

 

QuickTime 은 audio/visual media 에서의 새로운 사용들과 요구들에 의해 계속해서 진화해가는 a rich technology 이다. 이때문에, 최근 QuickTime technology의 요소들은 시간이 지남에 따라 become deprecated 될지도 모른다. 이런 요소들은 포함하는 현존하는 QuickTime file 들에 대한 법적 요소(components)들의 충분한 정보들을 보존하기 위하여 deprecated 요소들은 QuickTime File Format Specification 의 수정사항 부분의 가장 위의 section 에 note 에 표기해놓을 것이다.

 

 

 

 

Overview of QTFF

 

QuickTime movies 는 정보를 저장하기 위한 2 가지 기본적인 구조를 이용하여 disk 에 저장한다.

- atoms (또한 simple atoms or classic atoms 로도 알려져있다.)

- QT atoms

 

어떻게 QuickTime movies 가 저장되는지를 알기위하여, 당신은 앞으로 서술할 기본적인 atom 구조에 대하여 이해해야한다.

당신이 QuickTime File Format 에서 만나는 대부분의 atom 들은 간단하거나 classic atoms 이다.하지만 simple atomsQT atoms 나 둘다 당신이 마음대로 복잡한 계층의 데이터구조를 설계할 수 있게끔 도와주고, 둘다 당신의 어플리케이션이 그들이 이해하지못한 data 를 무시할수 있게 허락한다.  

 

 

 

 

Media Description

 

QuickTime file 은 그 미디어에 대한 서술들을 미디어 데이터(media data)와 따로 저장한다. 

 

- Movie resource, movie atom, the movie (description)

 

이 서술을 movie resource, movie atom 또는 간단하게 the movie 라고 부르고, 이 서술은 트랙의 수, 비디오 압축 포맷, 시간 정보와 같은 정보들은 포함한다. movie resource 는 또한 어디에 모든 미디어 데이터가 저장되어 있는지를 서술하는 index 도 포함하고 있다.

 

- media data (actual data)

 

media data 는 비디오 프레임과 오디오 샘플들과 같은 the movie 에서 사용되는 실질적인 샘플 데이타이다. media data 는 1) QuickTime movie 와 같은 파일로, 2) 분리된 파일로, 3) 복수의 파일로, 4) 데이터베이스 혹은 실시간 스트림처럼 대체적인 소스로, 혹은 5) 이런것들중 몇몇의 조합으로 저장될 것이다. 

 

 

 

 

Atoms

 

QuickTime file 에서의 기본적인 데이터 단위는 atom 이다. 각각의 atom 은 다른 data 들에 앞서서 size 와 type field 들을 포함하고 있다. size field 는 size 와 type field 들을 포함하여 atom 에 있는 총 바이트수를 표시하고, type field 는 atom 에 저장된 데이타의 타입과 데이터의 포맷(data format 은 암시에 의하여(by impilcation))을 명시한다. 어느 경우에는 size 와 type field 들이 version field 와 flags field 에 따라 나오기도 한다. 이러한 version, flags field 들을 포함한 atom 을 두고 종종 full atom 이라 부르기도 한다.

 

Note : 이 문서에서 서술된 atom 은 MPEG-4 와 Motion JPEG-2000 을 위한 ISO 사양(specifications) 에서 서술된 box 와 기능적으로 동일하다. 그리고 또한 이런 사양에서 정의된 full box 와 version 과 flags fields 를 포함한 atom (즉, full atom) 과 기능적으로 동일하다.

 

atom type 들은 전형적으로 ASCII code 4 글자로 번역될 수 있는 32-bit unsigned int 로 명시된다. (Apple, inc. 는 전부 소문자들로 이루어진 모든 4 글자 코드에 대해 법적 권리를 가지고 있다.) 만약 다른 언급이 없으면(Unless otherwise stated), QuickTime movie 의 모든 데이터들은 네트워크 바이트 ordering 으로 일반적으로 알려져있는 big-endian (MSB 가 가장 먼저 저장되고, 가장 먼저 전송되는) 으로 저장된다.

 

atom 은 본질적으로 계층구조를 갖고있다. 이 말은 즉슨, 하나의 atom 이 또 다른 것들을 포함할 가능성이 있는 다른 atom 들을 포함할 수 있다. 이런 계층구조는 종종 부모, 자식, 형제(siblings), 손주(grandchildren), 등등으로 표현되기도 한다. 다른 atom 을 포함하는 atom 을 container atom 이라고 부르며, parent atom 은 계층구조에서 주어진 atom 에서 정확히 한 단계 위의 container atom 을 가리킨다.

 

다른 atom 들을 포함하지 않는 atom 은 leaf atom 이라고 부른다. 이 leaf atom 은 전형적으로 하나 또는 더 많은 필드나 테이블(tables)로서의 data 를 포함한다. 하지만 어떤 몇몇의 leaf atom 들은 flags 나 placeholders 처럼 행동하고, size 와 type fields 외에는 어떠한 정보도 갖지 않는다.

 

given atom 에 저장된 데이타의 포맷은 항상 혼자서 atom 의 type field 에 의해 결정될 수 없다.; parent atom 의 타입 또한 중요할 수도 있다. 다른 말로, given atom 타입은 parent atom 에 의존하는 다른 종류의 정보들을 포함할 수 있다. 예를 들어 movie atom 안에 있는 profile atom 은 the movie 에 대한 정보들을 포함한다. 반면에 profile atom 이 track atom 안에 있다면, profile atom 은 트랙에 대한 정보들을 포함하게된다.

 

 

 

 

 

'네트워크' 카테고리의 다른 글

[QTFF] QT Atoms and Atom Containers  (0) 2012.11.15
[QTFF] Atoms  (0) 2012.11.09
Posted by 하늘_