맨위로가기

RIFF

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

RIFF(Resource Interchange File Format)는 1985년 일렉트로닉 아츠가 Amiga 컴퓨터용으로 개발한 IFF에 기반한 파일 형식이다. 마이크로소프트와 IBM이 공동 개발하여 Windows 3.1 멀티미디어 파일의 기본 형식으로 채택되었으며, x86 프로세서의 리틀 엔디안 바이트 순서를 사용한다. RIFF는 청크라는 기본 단위로 구성되며, 각 청크는 청크 ID, 청크 크기, 청크 데이터로 이루어진다. RIFF는 다양한 파생 파일 형식을 가지며, WAV, AVI, WebP 등이 대표적이다. RF64는 유럽 방송 연맹에서 개발한 RIFF 기반의 다중 채널 파일 형식으로, 4GB 이상의 파일 크기를 지원한다.

더 읽어볼만한 페이지

  • 파일 포맷 - 바로 가기
    바로 가기는 운영체제에서 파일, 폴더, 프로그램, 웹 페이지에 대한 참조를 제공하는 기능 및 파일로, 사용자들이 원본에 빠르게 접근하도록 GUI 환경의 사용성을 향상시킨다.
  • 파일 포맷 - EXE
    EXE 파일 형식은 운영 체제에 따라 다양한 종류가 있는 실행 파일의 한 형태로, DOS MZ 실행 파일에서 PE, PE32+까지 발전해 왔으며, 코드, 데이터, 스택을 별도 관리하고 재배치 항목을 통해 실행 환경에 유연하게 대응하는 특징을 가진다.
RIFF - [IT 관련 정보]에 관한 문서
일반 정보
개발자마이크로소프트, IBM
발표일1991년 8월
확장.riff
MIME 형식해당 없음
유형 코드해당 없음
균일 유형 식별자해당 없음
매직 넘버RIFF
확장 형식교환 파일 형식
확장 대상AVI, ANI, PAL, RDIB, RMIDI, RMMP, WAV
공개 여부
사용료
URL해당 없음
상세 정보
설명태그가 지정된 멀티미디어 리소스 파일 구조

2. 역사

RIFF는 1991년 마이크로소프트IBM이 도입하였으며, Windows 3.1 멀티미디어 파일의 기본 형식으로 사용되었다. 이는 1985년 일렉트로닉 아츠가 Amiga용으로 개발한 IFF(교환용 파일 형식)에 기반한다. IFF는 Amiga의 Motorola 68000 CPU의 빅 엔디안 규칙을 사용하지만, RIFF는 IBM PC 호환 기종에서 사용되는 x86 프로세서의 리틀 엔디안 순서로 멀티바이트 정수를 저장한다. 빅 엔디안 형식인 RIFX 형식도 도입되었다.

2010년 구글은 RIFF를 컨테이너로 사용하는 WebP 그림 형식을 도입했다.[1]

3. 구조

RIFF 파일은 "청크"라고 불리는 기본 단위로 구성된다.[6] 각 청크는 청크 ID, 청크 크기, 청크 데이터로 구성된다.

청크 구조
오프셋(비트)
0청크 FourCC
16
32청크 크기
48
64+청크 페이로드



'''청크 FourCC'''는 ASCII 코드로 된 4바이트 문자열로, 청크의 종류를 나타낸다.[7] 예를 들어 'fmt ', 'data', 'RIFF', 'LIST'와 같은 식별자가 사용된다.

'''청크 크기'''는 청크 데이터의 크기(바이트)를 나타내는 32비트 리틀 엔디안 정수이다. 청크 데이터는 실제 데이터를 포함하며, 길이가 홀수일 경우 짝수로 맞추기 위해 0으로 패딩(padding)이 추가된다.

3. 1. RIFF 헤더

RIFF 파일은 RIFF 헤더로 시작하며, 이 헤더는 파일 형식을 나타내는 4바이트 식별자(FourCC)와 나머지 청크들을 포함한다.[10] RIFF 헤더의 청크 ID는 `RIFF`이다.[10] 청크 데이터의 시작 부분에는 파일 형식(예: `WAVE`, `AVI` 등)을 나타내는 4바이트 식별자가 위치한다.

RIFF 헤더의 청크 크기는 "파일 크기 - 8(`RIFF` + 청크 크기 속성)"이다. RIFF 헤더 사양에 의해 RIFF 파일은 "맨 앞에 헤더, 그 뒤에 임의 개수의 청크"라는 구성을 갖는다.

RIFF 헤더는 다음과 같은 제약을 가진다.

  • RIFF 컨테이너 시작 부분에 단 하나만 위치한다.
  • 청크 FourCC가 `RIFF`이다.[10]
  • 청크 페이로드는 "파일 포맷 이름" + "청크 열"이며 최대 232-10 바이트이다.
  • 처음 4바이트: 청크 FourCC 형식으로 표현된 파일 포맷 이름
  • 그 이후: 임의 개수의 청크

3. 2. LIST 청크

LIST 청크는 다른 청크들을 포함할 수 있는 특수한 청크이다.[6] LIST 청크의 청크 ID는 'LIST'이며,[6] 청크 데이터는 하위 청크의 종류를 나타내는 4바이트 식별자와 하위 청크들로 구성된다.[6]

LIST 청크는 다음 구조를 가진다.

  • 청크 FourCC가 `LIST`이다.
  • 청크 페이로드는 "하위 청크 타입" + "하위 청크 열"로 구성된다.
  • 첫 4 바이트: 청크 FourCC 형식으로 표현된 하위 청크 타입이다.
  • 그 이후: 임의 개수의 청크가 온다.

4. RIFF 정보 태그 (INFO 청크)

RIFF 파일은 선택적으로 INFO 청크를 포함하여 파일에 대한 메타데이터를 저장할 수 있다. INFO 청크는 저작권(ICOP영어), 코멘트(ICMT영어), 아티스트(IART영어) 등 여러 사전 정의된 범주에 속하는 정보를 표준화된 방식으로 "태그"할 수 있게 해준다.[10] 이러한 정보는 파일 형식의 나머지 부분이 인식되지 않더라도 RIFF 파일에서 읽을 수 있으며, 사용자 정의 필드를 사용하는 것도 가능하다.[10] 비표준 필드를 사용할 때는 동일한 비표준 하위 청크 ID가 서로 다른 애플리케이션에서 서로 다른 방식으로 사용될 수 있음을 유의해야 한다.[10]

Microsoft Windows XP의 파일 관리에서는 RIFF 형식의 파일이 있으면 자동으로 INFO 청크를 읽으려고 시도했으며, 사용자는 파일 크기나 작성일 등의 속성 정보 외에 RIFF 필드 (작성자, 저작권 날짜)를 지정할 수도 있었다.

4. 1. INFO 청크 문제점

초기에는 INFO 청크의 위치에 대한 표준이 명확하지 않아 파일의 시작 또는 끝부분에 배치되는 등 혼란이 있었다.[1] 일부 프로그램은 파일 끝에 INFO 청크를 배치하여 호환성 문제를 일으키기도 했다.[1] Windows 3.1 공식 문서에는 파일 맨 앞에 INFO 청크를 배치해야 한다고 명시되어 있었지만, Windows XP의 파일 관리에서는 RIFF 형식 파일의 INFO 청크를 자동으로 읽으려고 시도하는 등 구현 방식에 차이가 있었다.[1]

대용량 파일의 경우 INFO 청크 수정 시 파일 전체를 다시 써야 하는 문제가 발생할 수 있다.[1] 이를 방지하기 위해 파일 생성 시 더미 데이터를 사용하여 INFO 청크를 미리 채우는 방법이 사용되기도 했다.[1]

일부 프로그래머들은 마이크로소프트의 문서가 분산되어 있어 파악하기 어렵다는 이유로 파일 맨 뒤에 INFO 청크를 추가하는 방식을 택하기도 했다.[1] 이로 인해 비호환성 문제가 발생하여, 올바른 파일 형식만 인식하는 소프트웨어에서 파일 끝의 INFO 청크가 덮어씌워지는 등의 문제가 발생했다.[1]

이러한 문제는 특히 Macintosh에서 자주 발생했는데, 이는 Macintosh 프로그래머들이 마이크로소프트의 사양을 제대로 파악하지 못했기 때문이라고 한다.[1] Sony의 Windows 전용 소프트웨어와 같이, 잘못된 INFO 청크를 처리하지 못하는 경우도 있어, 미디어 파일을 일괄 처리할 때 메타데이터가 손실되는 문제가 발생하기도 했다.[1]

CorelDRAW 10은 RIFF 파일 구조를 사용하지만, INFO 청크를 파일 끝에 배치하여, 기본 Windows 파일 관리자에서 비트맵 미리 보기가 표시되지 않는 문제가 있었다.[1]

5. 파생 파일 형식

RIFF는 범용 컨테이너 형식으로, 다양한 파생 파일 형식이 존재한다. RIFF에서 파생되어 식별자나 트리 구조에 제약을 가한 분야 특화 컨테이너 형식이 다양하게 제안, 실용화되었다. 마이크로소프트는 RIFF 메타 형식을 기반으로 한 AVI, ANI, WAV 등의 파일 형식을 구현하였다.

5. 1. 주요 파생 형식


  • WAV (윈도우 오디오)[1]
  • AVI (윈도우 오디오-비주얼)[1]
  • .RMI (윈도우 "RIFF MIDI 파일")[1]
  • WebP (Google|구글영어에서 개발한 이미지 형식)[1]

5. 2. 기타 파생 형식


  • CDR (코렐드로우 벡터 그래픽 파일)[1]
  • ANI (애니메이션 윈도우 커서)[1]
  • PAL (팔레트)[1]
  • DLS (다운로드 가능한 사운드)[1]
  • XMA (마이크로소프트 Xbox 360 콘솔 오디오 형식, WMA Pro 기반)[1]

6. RF64

RF64는 유럽 방송 연합에서 개발한 RIFF 기반의 다중 채널 파일 형식이다. 이 형식은 BWF과 호환되며, 64비트 크기의 "ds64" 청크를 사용하여 4 기가바이트 이상의 파일 크기를 지원한다.

참조

[1] 간행물 RIFF (Resource Interchange File Format) https://www.loc.gov/[...] Library of Congress 2021-12-13
[2] 서적 Multimedia Programming Interface and Data Specifications 1.0 https://www.mmsp.ece[...] IBM / Microsoft 2017-07-07
[3] 웹사이트 RIFF (Resource Interchange File Format) http://www.digitalpr[...] Library of Congress 2014-03-11
[4] 서적 Encyclopedia of Graphics File Formats, Second Edition https://www.fileform[...] O'Reilly Media 2016-04-07
[5] 웹사이트 RIFF Container http://code.google.c[...] 2010-10-01
[6] 웹사이트 WebP Container Specification https://developers.g[...] 2024-11-12
[7] 웹사이트 WebP Container Specification https://developers.g[...] 2024-11-12
[8] 웹사이트 WebP Container Specification https://developers.g[...] 2024-11-12
[9] 웹사이트 WebP Container Specification https://developers.g[...] 2024-11-12
[10] 웹사이트 WebP Container Specification https://developers.g[...] 2024-11-12



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com