X264
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
x264는 로랑 에마르가 처음 개발을 시작한 H.264/MPEG-4 AVC 비디오 코덱의 오픈 소스 인코더이다. API와 명령줄 인터페이스를 제공하며, Staxrip 및 MeGUI와 같은 GUI에서 사용된다. x264는 분산 적응 양자화 및 비트율-왜곡 최적화와 같은 심리 시각적 향상 기능을 포함하여 높은 화질을 제공하며, 다양한 색 공간 인코딩과 10비트 깊이 인코딩을 지원한다. x86, PowerPC, ARM 아키텍처 플랫폼에서 SIMD 어셈블리 코드 가속화를 지원하며, 낮은 레이턴시, 다양한 비트 전송률 및 품질 제어, 블루레이 디스크 호환 등의 기능을 제공한다. 2010년 탠드버그의 특허 출원과 관련된 논란이 있었으며, x264farm과 같은 분산 인코딩 소프트웨어를 통해 분산 인코딩을 지원한다.
더 읽어볼만한 페이지
- 어셈블리어로 작성된 자유 소프트웨어 - VirtualDub
VirtualDub은 윈도우 운영 체제에서 실행되는 무료 오픈 소스 비디오 캡처 및 처리 유틸리티이며, AVI 파일을 주로 처리하고 플러그인을 통해 다른 파일 형식도 지원하며, 동영상 캡처, 편집, 비디오 처리 및 필터 기능을 제공한다. - 어셈블리어로 작성된 자유 소프트웨어 - FASM
FASM은 토마스 그리슈타르가 개발한 어셈블리 언어 컴파일러로, 완전한 어셈블리 언어로 작성되었고 사용자 정의 매크로 지원, 코드 크기 최적화, 자유로운 사전 참조, 그리고 Fresh IDE를 통한 다양한 운영체제 지원이 특징이다. - 자유 멀티미디어 코덱 - FLAC
FLAC은 조시 콜슨이 개발한 무손실 오디오 코덱으로, 원본 음질을 유지하면서 파일 크기를 줄이기 위해 오디오 데이터를 압축하며, 4~32비트 샘플 크기, 최대 8 채널을 지원하고, 미국 국립 문서 기록 관리청에서 디지털 오디오에 선호되는 형식으로 지정되었다. - 자유 멀티미디어 코덱 - Vorbis
Vorbis는 Xiph.Org 재단에서 개발한 로열티 없는 자유 소프트웨어 오디오 코덱으로, MP3의 대안으로 개발되어 가변, 평균, 고정 비트레이트를 지원하며 갭리스 디코딩을 통해 끊김 없는 재생이 가능하고 MP3보다 나은 음질을 제공한다. - 영상 코덱 - VP9
VP9는 구글이 개발한 오픈 소스 비디오 코덱으로, VP8보다 압축 효율을 높이고 HEVC보다 나은 성능을 목표로 개발되었으며, WebM 형식으로 사용되고 주요 웹 브라우저와 넷플릭스, 유튜브 등에서 지원했으나 AV1의 등장으로 개발이 중단되었다. - 영상 코덱 - H.262/MPEG-2 파트 2
H.262/MPEG-2 파트 2는 디지털 TV 및 DVD 등에 사용되는 영상 압축 표준으로, HDTV 카메라의 비압축 영상 스트림을 효율적으로 압축하기 위해 다양한 화면 샘플링 기술을 활용하며, DVD-Video, HDV, XDCAM 등에서 활용된다.
| X264 - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 기본 정보 | |
| 유형 | 비디오 인코더 |
| 라이선스 | GPL-2.0-or-later 또는 상업 라이선스 |
| 웹사이트 | x264 공식 웹사이트 |
![]() | |
| 개발 | |
| 개발자 | x264 팀 |
| 작성자 | Laurent Aimar |
| 프로그래밍 언어 | C, 어셈블리어 |
| 기술 정보 | |
| 플랫폼 | 크로스 플랫폼 (x86, PowerPC, ARMv7 등) |
2. 역사
x264는 로랑 에마르(Laurent Aimar)가 처음 개발했다. 현재는 오런 메릿, 제이슨 개릿글레이저, 스티븐 월터스, 안톤 미트로파노프, 헨리크 그람네르, 대니얼 강 등이 주도적으로 개발하고 있다.[3]
2004년 로랑 에마르가 아테메(ATEME)에 고용되면서 개발이 중단되었다가, 이후 로렌 메리트(Loren Merritt)가 개발을 이어받았다.[3] 2008년에는 피오나 글레이저(Fiona Glaser)가 프로젝트에 합류했으나, 2014년에 둘 다 기여를 중단했다. 현재 x264는 주로 안톤 미트로파노프(Anton Mitrofanov)와 헨릭 그라머(Henrik Gramner)가 개발하고 있다.
2. 1. 주요 개발 이력
- r240: 멀티스레드 지원[3]
- r264: 무손실 인코딩 지원[3]
- r570: 인터레이스 지원[3]
- r581: Video for Windows 공식 지원 삭제[3]
- r607: 멀티스레드 시 분할 방식 변경 (슬라이스 기반에서 프레임 기반으로)[3]
- r733: YV12로의 변환 기능 삭제 (사전에 YV12 형식으로 변환해야 함, AviSynth 사용)[3]
- r1177: 새로운 프리셋 시스템 도입[3]
- r1327: 가중치 P 프레임 예측 지원[3]
- r1379: FFmpeg를 통한 입력 지원[3]
- r1380: 주기적 인트라 업데이트 추가[3]
- r1480: 블루레이 호환 인코딩 지원[3]
- r1657: OpenGOP 지원[3]
- r1666: 9 또는 10비트 인코딩 지원 (출력만 지원하며 입력은 8비트까지)[3]
- r1731: x264에서 10비트에 대한 거의 완전한 지원 (10비트까지의 입력에도 대응)[3]
- r1746: libx264에서 x264cli로 DTS 압축 이동 (EditBox를 정상적으로 처리할 수 없는 환경을 위해 x264cli 측의 mp4 멀티플렉서 옵션으로 남겨둠)[3]
- r1786: 사용자 정의 크로핑 사각형 지원[3]
- r1801: 최초의 Google Code-In 패치에 의한 리비전 업데이트[3]
- r1829: 스테레오 3D 영상 지원 (비 MVC)[3]
- r1880: Intel AVX 지원[3]
- r1881: 어떤 입력에서도 VBV를 유지할 수 있게 됨[3]
- r1935: "--bluray-compat" 도입 (블루레이 호환 인코딩 기능 강화)[3]
- r1961: MBAFF에서 Inter 지원[3]
- r2017: YUV4:4:4 인코딩 지원[3]
- r2018: RGB 인코딩 지원[3]
- r2081: YUV4:2:2 인코딩 지원[3]
- r2257: QNX 지원[3]
- r2286: GPU 인코딩 지원[3]
- r2355: AVC-Intra 지원[3]
3. 기능
x264는 API와 명령줄 인터페이스를 모두 제공한다. 명령줄 인터페이스는 Staxrip[25], MeGUI[22] 등의 GUI에서 사용되며, API는 HandBrake[4], FFmpeg[5] 등에서 사용된다.
x264는 x86, PowerPC (AltiVec 사용), ARMv7 (NEON 사용) 플랫폼에서 SIMD 어셈블리 코드 가속화를 지원한다.
키 프레임 대신 주기적 내부 갱신을 사용하여 각 프레임의 크기를 동일하게 유지하여, 각 슬라이스를 단일 UDP 또는 TCP 패킷으로 즉시 전송하고 도착 즉시 디코딩할 수 있다.[3]
2010년 4월, x264 프로젝트는 완전한 블루레이 호환 비디오 인코딩 기능을 발표하여, x264가 최초의 무료 블루레이 호환 소프트웨어 H.264 인코더가 되었다.[15] x264는 워너 브라더스[16]에서 출시한 상업용 블루레이 디스크 타이틀을 제작하는 데 사용되었다.
3. 1. 화질
x264는 주관적 화질을 향상시키기 위한 여러 심리 시각적 향상 기능을 포함한다.- VAQ를 사용하는 두 가지 모드의 적응 양자화. 두 번째 모드는 나중에 추가되었으며, 품질을 향상시키기 위해 프레임별 강도를 조정한다.[6]
- 유사한 복잡성을 유지하려는 심리 시각적 비트율-왜곡 최적화. 복잡성은 제곱합 최적화(SSD) 및 절대 변환 차이 합계(SATD)의 조합을 사용하여 측정된다.[7]
- 매크로블록 트리 비트 제어. 프레임의 일부가 미래 프레임을 예측하는 데 얼마나 자주 사용되는지 추적하여 품질을 제어한다.[8]
x264는 다음 코덱 비교에서 여러 차례 수상하며 높은 화질을 인정받았다.
또한, 다음과 같은 특징을 가지고 있다.
- PSNR 및 SSIM뿐만 아니라 심리 시각도 중시한다.
- 일반적으로 사용되는 8비트 깊이뿐만 아니라 10비트 깊이의 인코딩에도 대응한다. 8비트 깊이의 소스 영상이라도 고비트 깊이를 사용하면 필터를 사용하지 않고 밴딩을 억제할 수 있으며, 계산 오차가 낮아 파일 크기도 작아진다.[30]
- 일반적으로 사용되는 YUV4:2:0 색 공간뿐만 아니라 YUV4:2:2 색 공간 및 YUV4:4:4 색 공간의 인코딩에도 대응한다. 4:4:4 소스 영상을 깔끔한 화질로 인코딩할 수 있다.
3. 2. 속도
- 멀티 스레드 지원[29]
- 각종 CPU의 SIMD 지원 (MMX, SSE, SSE2, SSE3, SSSE3, SSE4, AVX, 3DNow!, XOP, Altivec, NEON)[29]
3. 3. 낮은 레이턴시
x264는 주기적 인트라 업데이트(--intra-refresh)를 사용하여 I (DR) 프레임 없이도 각 프레임의 크기를 일정하게 유지할 수 있다. 이를 통해 참조 프레임을 사용하면서도 즉시 전송 및 디코딩이 가능하다.[3]3. 4. 기타 기능
x264는 고화질, 고압축률, 고속 인코딩을 지원하는 다양한 기능을 제공한다.[29]- 비트 전송률 및 품질 지정 인코딩: 2패스 이상을 지원하여 사용자가 원하는 비트 전송률 또는 품질을 설정할 수 있다.
- 프리셋 및 튜닝 설정: 인코딩 속도, 소스 영상 특성, 목적에 맞는 다양한 설정을 제공한다.
- 프로파일/레벨 제한: 특정 장치와의 호환성을 위해 프로파일 및 레벨을 제한할 수 있다.
- 블루레이 디스크 호환 인코딩: 블루레이 디스크 재생 장치와 호환되는 영상을 생성할 수 있으며, 오서링 툴과 함께 사용하면 블루레이 디스크 제작도 가능하다.[15]
- I 프레임 전용 인코딩 (`--keyint 1`): 모든 프레임을 I 프레임으로 인코딩하여 영상 편집에 용이하며, 프로용으로 활용 가능하다.[31]
- AVC-Intra 호환 인코딩 (`--avcintra-class 50/100/200`): AVC-Intra 코덱과 호환되는 영상을 생성할 수 있다.
- 무손실 인코딩 (`--qp 0`) 및 RGB 색 공간 지원 (`--output-csp rgb`): 화면 캡처나 무손실 저장을 위한 기능을 제공한다.
- 스테레오 3D 동영상 프레임 형식 정의 (`--frame-packing`): 스테레오 3D 동영상의 프레임 형식을 정의할 수 있다.
이러한 기능들은 Youtube, Facebook 등 다양한 웹사이트와 VLC, HandBrake 등 여러 인코딩 소프트웨어에서 활용되고 있다.[4][5]
3. 5. 지원하지 않는 기능
- 12비트 인코딩은 지원하지 않는다.[31]
- AVC-Ultra는 지원하지 않지만, 패치가 존재한다.[31]
- MPEG-4 MVC는 지원하지 않는다.
- MPEG-4 WVC (MPEG-4 Part 29, MPEG-4 AVC의 서브셋)는 지원하지 않는다.
4. 논란
2010년 11월, x264 개발자 피오나 글레이저는 시스코 시스템즈 자회사 탠드버그의 특허 출원과 관련하여 논란을 제기했다. 자세한 내용은 탠드버그 특허 논란 문단을 참고하면 된다.[17][18][19][20][21]
4. 1. 탠드버그 특허 논란
2010년 11월, x264 개발자인 피오나 글레이저는 시스코 시스템즈 자회사인 탠드버그의 특허 출원 중 하나에 자신이 약 두 달 전에 x264 코드베이스에 커밋한 알고리즘에 대한 단계별 설명이 포함되어 있다고 주장하는 정보를 발표했다.[17][18] 이는 미디어를 통해 전달되었으며, 특허를 출원한 회사가 x264 프로젝트 IRC 개발 채널을 팔로우하고 있으며 프로젝트 개발자들에게 알려져 있었다는 점을 지적했다.[19][20] 이에 탠드버그는 해당 알고리즘을 독자적으로 발견했다고 주장했다.[21]5. x264 프론트엔드
6. x264vfw
x264의 VfW 버전은 r581에서 공식 지원이 중단되었다. VfW 관련 DirectShow가 있지만, 그쪽으로의 대응도 이루어지지 않고 있다.
외부 프로젝트로 BugMaster가 개발을 지속하고 있으며, fourcc도 몇 가지 선택할 수 있게 되었지만, 2017년을 마지막으로 업데이트가 이루어지지 않고 있다.[32]
7. 분산 인코딩
x264는 직접적으로 여러 컴퓨터에서의 분산 인코딩을 지원하지 않는다. 그러나 x264를 백엔드로 사용하는 분산 인코딩 소프트웨어인 x264farm 및 그 파생 버전으로 1pass에 특화된 x264farm-sp가 존재한다. 라이선스는 x264와 마찬가지로 GPL 라이선스이며, OCaml로 작성되었다.
참조
[1]
웹사이트
x264.c · master · VideoLAN / x264 · GitLab
https://code.videola[...]
VideoLAN
2021-07-05
[2]
웹사이트
x264, the best H.264/AVC encoder - VideoLAN
https://www.videolan[...]
VideoLAN
2021-07-01
[3]
웹사이트
x264
https://www.techex.c[...]
2012-07-14
[4]
웹사이트
Handbrake Details
http://handbrake.fr/[...]
Handbrake Project
2011-03-11
[5]
웹사이트
FFmpeg General Documentation
https://ffmpeg.org/g[...]
FFmpeg Team
2021-07-01
[6]
웹사이트
Variance AQ Megathread (AQ v0.48 update--defaults changed)
https://forum.doom9.[...]
2007-02-15
[7]
웹사이트
Psy RDO: Official testing thread (version 0.6 out!)
https://forum.doom9.[...]
2008-05-31
[8]
웹사이트
x264 "Macroblock Tree Ratecontrol" testing (committed)
https://forum.doom9.[...]
2009-08-03
[9]
웹사이트
Third Annual MSU MPEG-4 AVC/H.264 Video Codec Comparison
https://www.compress[...]
2010-12-28
[10]
웹사이트
Fourth Annual MSU MPEG-4 AVC/H.264 Video Codec Comparison
https://www.compress[...]
2010-12-28
[11]
웹사이트
Fifth MSU MPEG-4 AVC/H.264 Video Codec Comparison
https://compression.[...]
2010-12-28
[12]
웹사이트
MSU Sixth MPEG-4 AVC/H.264 Video Codecs Comparison
https://compression.[...]
2010-12-28
[13]
웹사이트
MSU Seventh MPEG-4 AVC/H.264 Video Codecs Comparison
https://compression.[...]
2011-05-26
[14]
웹사이트
MSU Eighth MPEG-4 AVC/H.264 Video Codecs Comparison
https://compression.[...]
2012-06-22
[15]
웹사이트
Announcing the first free software Blu-ray encoder
http://x264dev.multi[...]
2010-04-25
[16]
웹사이트
x264 encoded discs — Authoring a professional Blu-ray Disc with x264
https://sites.google[...]
[17]
웹사이트
Original Tandberg blog post
http://x264.nl/devel[...]
x264.nl
2010-11-25
[18]
웹사이트
Patent skullduggery: Tandberg rips off x264 algorithm
http://x264dev.multi[...]
2010-11-25
[19]
웹사이트
Tandberg coder accused of open source theft
https://usave.co.uk/[...]
2010-11-26
[20]
웹사이트
Tandberg rips off an open source project
http://www.theinquir[...]
The Inquirer
2010-11-26
[21]
웹사이트
Tandberg illustrates stupidity of software patent policy
https://www.zdnet.co[...]
ZDNet
2010-11-27
[22]
웹사이트
MeGUI - x264/XviD/lavc/Snow encoder with MP4/MKV/AVI output & audio
https://forum.doom9.[...]
2005-06-18
[23]
웹사이트
Selecting Codecs and Container Formats
http://www.mplayerhq[...]
MPlayer
2011-03-11
[24]
웹사이트
RipBot264 1.16.3 - VideoHelp.com Downloads
https://www.videohel[...]
2010-12-28
[25]
웹사이트
staxrip/staxrip: 🎞 Video encoding GUI for Windows.
https://github.com/s[...]
2021-07-01
[26]
웹사이트
TMPGEnc Video Mastering Works 5: New Features
https://tmpgenc.pega[...]
2012-09-28
[27]
웹사이트
Compiling x264 for ProMedia Xpress
http://www.harmonici[...]
Harmonic Inc.
2014-00-00
[28]
문서
changelog.txt
http://x264.nl/x264/[...]
[29]
문서
Seventh MPEG-4 AVC/H.264 Video Codecs Comparison - Standard Version
http://www.compressi[...]
[30]
웹사이트
Why does 10-bit save bandwidth
https://x264.nl/x264[...]
x264.nl
2021-12-28
[31]
문서
x264-devel - PATCH - Support 12bit and add ultra calss
https://mailman.vide[...]
[32]
웹사이트
x264vfw - Browse /x264vfw at SourceForge.net
https://sourceforge.[...]
2021-12-28
[33]
웹인용
x264 Home Page
http://www.videolan.[...]
VideoLan Organization
2011-03-11
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
