프로젝트 소개
libheif는 ISO/IEC 23008-12 HEIF 및 AVIF(AV1 Image File Format) 디코더이자 인코더입니다. HEIC와 AVIF는 각각 HEVC(H.265) 또는 AV1 코딩을 사용하여 강력한 압축을 제공하는 이미지 형식입니다. HEIC와 AVIF 외에도 VVC, AVC, JPEG, JPEG-2000 및 ISO/IEC 23001-17로 코딩된 HEIF 이미지도 처리합니다. 후자는 내장되어 있으며 다양한 형식의 무손실 이미지와 비디오를 저장합니다.
코덱 지원은 외부 라이브러리를 통해 제공됩니다. HEIC용 libde265와 x265, AVIF용 libaom, dav1d, svt-av1 또는 rav1e, 그리고 vvdec/vvenc/uvg266, openh264/x264, libjpeg(-turbo), OpenJPEG 및 OpenJPH가 있습니다. 빌드에는 코덱의 일부만 포함하거나, 의존성과 크기를 줄이기 위해 동적으로 로드되는 플러그인으로 컴파일할 수 있습니다.
기능으로는 알파 채널, 깊이 맵, 썸네일, 보조 이미지, 파일당 여러 이미지, 이미지 시퀀스 및 MP4 비디오(오디오 제외), 타일별 디코딩과 증분 인코딩을 지원하는 타일 이미지, 내장 프로필의 색상 변환을 통한 HDR, 자르기/미러/회전 변환, 오버레이 이미지, EXIF 및 XMP 메타데이터 읽기, 영역 주석 및 마스크 이미지, 데이터 리더 인터페이스를 통한 스트리밍이 있습니다.
이 라이브러리는 폭넓은 언어 통합을 위한 C API를 제공하며, 바이너리 호환성을 유지하는 헤더 전용 C++ 래퍼도 있습니다. 동일한 디코딩 코드가 모든 형식에서 작동하며, 인코딩 형식은 인코더 조회에 heif_compression_HEVC, heif_compression_AV1 또는 다른 형식을 전달하여 선택합니다. README의 예제 코드는 기본 이미지 로드, HEIF 파일 쓰기, EXIF 메타데이터 읽기를 다룹니다.
빌드 시스템은 CMake이며(v1.16.0에서 autotools 제거), 프리셋은 release(코덱을 플러그인으로), release-noplugins(자체 포함 HEIC/AVIF), testing 및 fuzzing입니다. 구성 변수는 각 코덱(WITH_{codec}, WITH_{codec}_PLUGIN), 플러그인 로딩, 비압축 코덱, 헤더 압축, libsharpyuv 색상 변환, 실험적 기능, 멀티스레딩, 병렬 타일 디코딩, 플러그인 디렉터리 및 심볼 가시성을 제어합니다. macOS는 Homebrew 의존성을 사용하고, Windows는 vcpkg로 빌드합니다. third-party의 스크립트는 libaom, rav1e, dav1d 및 SVT-AV1 빌드를 돕습니다.
명령줄 도구로는 heif-dec(JPEG, PNG, TIFF, WebP 또는 Y4M으로 디코딩, 시퀀스 및 MP4 포함), heif-enc(해당 형식, 원시 픽셀 데이터 또는 HEIF/AVIF에서 인코딩), heif-info(개요 또는 전체 박스 덤프), heif-view(시퀀스 표시)가 있습니다. 보안 제한은 과대 이미지와 서비스 거부 공격을 방지하며, API로 조정하거나 --disable-limits로 비활성화하거나 LIBHEIF_SECURITY_LIMITS=off로 전역 설정할 수 있습니다. 취약점은 GitHub 비공개 취약점 보고를 통해 보고됩니다.
.NET, Go, JavaScript/NodeJS, Python(pyheif, pillow-heif), Rust, Swift 및 JavaFX용 언어 바인딩이 있으며, C 호환 언어는 직접 작동합니다. libheif는 emscripten으로 JavaScript/WASM으로 컴파일할 수 있고, 온라인 브라우저 데모도 제공됩니다. Gnome 썸네일러와 gdk-pixbuf 로더도 함께 제공됩니다.
GIMP, Krita, ImageMagick, GraphicsMagick, darktable, digiKam, libvips/sharp, pillow-heif, kImageFormats, GNOME 데스크톱, libGD, Kodi, bimg, GDAL, OpenImageIO 및 XnView를 포함한 많은 오픈 소스 이미지 애플리케이션이 이 라이브러리에 의존합니다. 이 프로젝트는 독립 개발자가 유지 관리하며 자금 및 상업적 지원을 요청하고 있습니다. GNU Lesser General Public License에 따라 배포됩니다.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.