FourCC
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
FourCC는 1984년 애플의 매킨토시 OS에서 처음 사용된 4바이트 식별자로, 파일 형식, 코덱, 색 공간 등을 나타내는 데 사용된다. OSType에서 시작되어 IFF를 거쳐 QuickTime, DirectShow 등 다양한 파일 형식에서 활용되었으며, AVI 파일의 비디오 코덱 식별, PNG, MIDI, 3DS 파일 등에서도 사용된다. FourCC는 사람이 읽을 수 있는 문자를 사용하며, 32비트 정수와 동일한 메모리 공간을 차지하여 코드 내에서 효율적으로 활용될 수 있다.
더 읽어볼만한 페이지
- 맥 OS - 맥 OS X 서버 1.0
맥 OS X 서버 1.0은 애플이 1999년에 출시한 서버 운영 체제로, 클래식 맥 OS와 넥스트스텝 기술을 결합하여 넷부트 서버, 아파치 웹 서버, 퀵타임 스트리밍 서버 등의 기능을 제공했지만, 높은 가격과 일부 단점으로 인해 빠르게 단종되었다. - 맥 OS - 시스템 7
시스템 7은 1991년 애플이 출시한 매킨토시 운영 체제의 주요 업그레이드 버전으로, 싱글 태스킹 한계를 극복하고 개인 파일 공유, 별칭, 드래그 앤 드롭 등 다양한 기능을 제공하며 PowerPC 기반 컴퓨터를 지원한다. - 메타데이터 - DOAJ
DOAJ는 과학 및 학술 저널의 오픈 액세스 가시성을 높이고 이용 편의성을 향상시켜 접근성과 영향력을 확대하며, 피어 리뷰를 거친 학술지를 엄격하게 심사하여 수록하고 모든 콘텐츠를 무료로 제공하는 오픈 액세스 저널 디렉토리이다. - 메타데이터 - 해시태그
해시태그는 2007년 트위터에서 관심 주제를 묶기 위해 제안되어 마이크로블로깅 네트워크에서 널리 사용되기 시작했으며, 다양한 분야에서 활용되고 언어학적 분석의 대상이 되기도 한다. - 애플의 소프트웨어 - 아이튠즈
아이튠즈는 애플이 개발한 멀티미디어 플랫폼이자 디지털 미디어 플레이어 소프트웨어로, 초기에는 음악 재생 및 관리에 집중했으나 이후 기능이 확장되어 macOS Catalina부터는 개별 앱으로 기능이 분리되었고 윈도우에서는 'Apple 기기' 앱에 관련 기능이 통합되었다. - 애플의 소프트웨어 - 사파리 (웹 브라우저)
사파리는 애플이 개발한 웹 브라우저로, 2003년 처음 출시되어 웹킷 엔진을 기반으로 빠른 속도와 웹 표준 지원을 제공하며, macOS, iOS, iPadOS 등에서 기본 브라우저로 사용된다.
FourCC |
---|
2. 역사
FourCC는 Mac OS의 OSType에서 유래되었으며, Amiga/일렉트로닉 아츠(Electronic Arts)의 Interchange File Format(IFF)에 채택되어 여러 포맷으로 확산되었다. 이후 QuickTime이나 DirectShow/Direct3D/DirectDraw에서 압축 형식이나 색 공간을 식별하는 데 사용되었다.[13][14]
FourCC는 4바이트 식별자로, 사람이 읽을 수 있는 문자를 사용하면서도 32비트 정수 하나를 저장하는 것과 같은 공간만 차지한다. (단, 엔디안 문제는 존재한다.)
1985년 일렉트로닉 아츠는 IFF라는 메타 포맷을 제안했는데, 이는 Amiga용으로 처음 사용되었다. IFF 파일은 '청크' 배열로 구성되며, 각 청크는 임의의 데이터를 저장하고 4바이트 ID를 가진다. IFF 사양에는 FourCC의 기원이 애플임이 명확하게 기술되어 있다.
IFF는 널리 사용되었으며, 애플의 AIFF나 마이크로소프트의 RIFF(AVI 및 WAV 기반)가 대표적이다. 애플은 이러한 코드를 OSType이라 불렀고, Windows 개발자는 FourCC라고 불렀다. 마이크로소프트는 DirectX 데이터 포맷 식별에도 FourCC를 사용했다.
대표적인 예로 AVI 파일의 비디오 코덱 식별자가 있다. CVID, IV32, DIVX, XVID, H264, AVC1, WMV3 등이 있다. 오디오 코덱의 경우 AVI나 WAV 파일은 2바이트 식별자를 16진수로 표기한다(예: MP3는 0055). RealMedia 파일도 FourCC를 사용하지만, 식별자는 AVI나 QuickTime과 다르다.
MIDI, PNG, 3DS, ICC 프로필 포맷, Quake III Arena 맵 포맷 등도 FourCC를 사용한다. Windows 비트맵이나 DirectDraw(DirectDraw Surface)에서는 YUV 색 공간 지원에 FourCC가 사용된다.[13][14]
2. 1. 기원과 초기 발전
1984년, 최초의 매킨토시 OS 버전인 시스템 1이 출시되었다. 이는 단일 레벨 매킨토시 파일 시스템을 사용했으며, 파일 유형, 생성자(응용 프로그램) 정보, 추가 리소스를 저장하기 위한 포크를 포함한 메타데이터 필드를 사용했다. 데이터 자체를 변경하지 않고도 이 정보를 변경하여 다르게 해석할 수 있었다. 동일한 코드는 모든 종류의 데이터에 대한 유형 태그로 시스템 전체에서 사용되었다.[1][2]1985년, 일렉트로닉 아츠(Electronic Arts)는 아미가(Amiga)에서 사용할 목적으로 고안된 교환 파일 형식(IFF, Interchange File Format) 메타 형식(파일 형식군)을 소개했다. 이 파일은 임의의 데이터를 포함할 수 있는 일련의 "청크"로 구성되었으며, 각 청크는 4바이트 ID로 시작했다. IFF 명세에는 FourCC 아이디어의 기원이 애플에 있음이 명시적으로 언급되어 있다.[3]
2. 2. 애플 시스템에서의 발전
Mac OS X Panther 이후, OSType 시그니처는 UTI를 결정하기 위해 검사될 수 있는 여러 출처 중 하나이며 더 이상 기본 데이터 유형 시그니처로 사용되지 않는다. macOS는 파일 이름 확장자를 사용하여 파일 형식을 레이블링하는 더 일반적인 관례를 선호한다. 이 변경은 애플이 메타데이터를 파일 이름에 잘못 배치하는 더 원시적인 방식으로 되돌아가고 있다고 믿었던 구세대 사용자들 사이에서 큰 논쟁의 원인이 되었다.[4][5]파일 시스템과 관련된 유형 코드는 사용자가 조작하기 어렵지만, 특정 소프트웨어, 특히 개발자 도구의 일부로 `/Developer/Tools`에 설치된 macOS 명령줄 도구 `GetFileInfo` 및 `SetFile`, 또는 구형 Mac에서 사용할 수 있는 ResEdit 유틸리티를 사용하여 보고 변경할 수 있다.
2. 3. 마이크로소프트와 윈도우에서의 확산
마이크로소프트는 교환 파일 형식(IFF)을 기반으로 RIFF 파일을 개발했으며, 이는 AVI 및 WAV 파일 형식의 기초로 사용되었다.[3] 마이크로소프트와 윈도우 개발자들은 4바이트 식별자를 "FourCC" 또는 "Four-Character Codes"라고 불렀다. FourCC는 마이크로소프트가 DirectX에서 사용되는 데이터 형식을 식별하기 위해 채택되었으며, 특히 DirectShow 및 DirectX Graphics 내에서 사용되었다.[3]AVI 파일에서 비디오 코덱의 식별자로는 CVID, IV32, DIVX, XVID, H264, AVC1, WMV3 등이 있다. 오디오 코덱의 경우, AVI 파일이나 WAV 파일은 2바이트 식별자를 사용하며, 16진수로 표기된다 (예: MP3의 ID는 0055).[3] Windows 비트맵이나 DirectDraw(DirectDraw Surface)에서는 YUV 색 공간을 지원할 때 FourCC가 식별자로 사용된다.[13][14]
3. 기술적 세부 사항
FourCC는 ASCII 인쇄 가능 문자로 제한되며, 짧은 시퀀스를 채우기 위해 공백 문자가 예약된다.[6][7][8] 파일 확장자와 달리 대소문자를 구분한다. FourCC는 16진수로 인코딩되거나(예: avc1의 경우 "0x31637661"), 사람이 읽을 수 있는 방식으로 인코딩될 수 있다(예: mp4a).[9] 일부 FourCC는 인쇄할 수 없는 문자를 포함할 수 있다.
4바이트 식별자는 32비트 시스템에서 정수에 할당되는 4바이트 메모리 공간에 맞기 때문에 유용하다. 코드는 프로그램 코드에서 정수처럼 효율적으로 사용될 수 있으며, 검사 시 바이너리 데이터 스트림에서 단서를 제공할 수 있다.
3. 1. 컴파일러 지원
많은 C 컴파일러는 다중 문자 리터럴을 지원하여 FourCC를 쉽게 작성할 수 있도록 한다. GCC를 포함한 컴파일러는 최하위 바이트에 오른쪽 정렬되도록 하므로 '1234'는 ASCII에서 `0x31323334`가 된다.[10] 이는 Mac OS 프로그래머가 클래식 Mac OS에서 사용하던 FourCC 코드를 작성하는 일반적인 방법이었다.리틀 엔디안 머신에서는 바이트 순서를 올바르게 만들기 위해 바이트 교환이 필요할 수 있다. 예를 들어 'avc1' 리터럴은 정수 값 `0x61766331`로 변환되지만, 리틀 엔디안 머신은 바이트 순서를 반전시켜 `31 63 76 61`로 저장한다. 올바른 바이트 시퀀스 `61 76 63 31`을 생성하려면 사전 교환된 값 `0x31637661`을 사용한다.
4. 일반적인 사용 예
FourCC는 주로 AVI 파일에서 비디오 코덱이나 비디오 코딩 형식을 식별하는 데 사용된다. ''DIVX'', ''XVID'', ''H264'' 등이 대표적인 예이다. 오디오 코딩 형식의 경우, AVI 및 WAV 파일은 보통 16진수로 된 2바이트 식별자를 사용한다(예: MP3는 ''0055''). QuickTime 파일에서는 이 2바이트 식별자 앞에 "ms"를 붙여 FourCC 형태를 만든다. RealMedia 파일도 FourCC를 사용하지만, AVI나 QuickTime 파일과는 다른 코드를 사용한다.
FourCC는 표준 MIDI 파일(SMF), PNG 이미지 파일, 3DS (3D Studio Max) 메시 파일, ICC 프로필 형식 등 다른 파일 형식에서도 중요하게 사용된다.
4. 1. 기타 응용 프로그램
UEFI 포럼[11]은 ACPI ID 레지스트리의 공급업체를 위해 ACPI 소스 언어(ASL)에서 4자 식별자를 정의한다. Synopsys는 IP (DesignWare collection)의 레지스터를 통해 구성 요소 ID를 알린다.4. 2. OSType의 다른 용도
- AppleEvents의 레코드 필드 ID 및 이벤트 유형 및 클래스 ID로 사용[12]
- 구성 요소 관리자의 구성 요소를 식별하는 데 사용[12]
- QuickTime 영화 및 이미지 파일 형식의 "원자" ID로 사용[12]
- 폴더 관리자에서 표준 폴더를 식별하는 지역화에 독립적인 방법으로 사용[12]
- QuickDraw GX에서 gxTag 유형으로, 그리고 컬렉션 관리자에서 컬렉션 항목의 유형으로 사용[12]
- Apple API의 열거형 상수(정수; 호스트 엔디안)로 사용[12]
- QuickTime과 같은 특정 라이브러리의 "OSStatus" 오류 코드 (정수; 호스트 엔디안)로 사용[12]
참조
[1]
citation
The Type/Creator Database
http://www.lacikam.c[...]
[2]
웹사이트
Signatures of Macintosh Files
http://www.macdisk.c[...]
Logiciels & Services Duhem
2015-12-01
[3]
웹사이트
"EA IFF 85" Standard for Interchange Format Files
http://www.martinred[...]
Electronic Arts
1985-01-14
[4]
citation
Darwin reference
https://developer.ap[...]
Apple
[5]
citation
Darwin reference
https://developer.ap[...]
Apple
[6]
웹사이트
What Is A Codec Tag?
https://www.get-meta[...]
2019-06-09
[7]
웹사이트
git.videolan.org Git - ffmpeg.git/blob - libavformat/isom.c
https://git.videolan[...]
2019-06-09
[8]
웹사이트
FFmpeg/FFmpeg search
https://github.com/F[...]
2019-06-09
[9]
웹사이트
FFmpeg: libavcodec/raw.c Source File
https://ffmpeg.org/d[...]
2019-06-09
[10]
웹사이트
The C Preprocessor: Implementation-defined behavior
https://gcc.gnu.org/[...]
[11]
웹사이트
ACPI ID Registry
http://www.uefi.org/[...]
[12]
웹사이트
OSStatus — Apple API Errors
https://www.osstatus[...]
[13]
Microsoft Docs
BITMAPINFOHEADER (wingdi.h)
https://docs.microso[...]
[14]
Microsoft Docs
DirectDraw and Color Space Conversion - Windows drivers
https://docs.microso[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com