코어 이미지

Core Image

Core Image는 Mac OS X의 픽셀 단위 정밀도로 실시간에 가까운 비파괴 이미지 처리 기술입니다.Mac OS X 10.4 이후 QuartzCore 프레임워크의 일부로 구현된 Core Image는 Quartz 그래픽 렌더링 레이어 [1]내에서 필터와 효과를 적용하기 위한 플러그인 기반 아키텍처를 제공합니다.이 프레임워크는 나중에 iOS [2]5에서 iOS에 추가되었습니다.

개요

Core Image는 이미지에 필터를 적용할 때 필요한 픽셀 수준의 조작 프로세스를 추상화하므로 광범위한 코딩 없이 애플리케이션이 이미지 변환 기능을 쉽게 구현할 수 있습니다.심플한 실장에서는, 코어 이미지는, 소정의 소스의 픽셀 데이터에 단일의 이미지 필터를 적용시켜 변환된 이미지를 생성합니다.각 이미지 필터는 코어 이미지에 내장되거나 이미지 유닛이라는 플러그인에서 로드되는 단일 변환 또는 효과를 지정합니다.프리셋 또는 사용자 정의 입력 파라미터와 조합하여 필터를 변경하지 않고 원래 픽셀 데이터에 적용할 수 있으므로 비파괴 이미지 편집이 [3][4]가능합니다.

포토샵과 같이, 코어 이미지는 같은 이미지 소스에 복수의 필터를 적용할 수 있습니다.일련의 필터를 개별적으로 적용하는 대신, 코어 이미지는 동적 명령 파이프라인을 조립하여 픽셀 데이터에 하나의 계산만 적용하면 누적 효과를 얻을 수 있습니다.복수의 필터에 관련 붙여진 픽셀 조작을, 처리 시간의 큰 증가 없이 동시에 실시할 수 있습니다.필터의 수에 관계없이 코어 이미지는 저스트 인 타임 컴파일러를 사용하여 이 명령 파이프라인의 코드를 조립합니다.저스트 인 타임 컴파일러는 CPU 또는 그래픽 카드의 GPU 중 어느 쪽이든 계산을 [5]더 빨리 실행할 수 있습니다.

필터는 OpenGL Shading Language(GLSL)[6] 명령어 서브셋을 공유하는 코어 이미지 커널 언어로 작성됩니다.호환되는 GPU를 사용할 수 있는 경우 코어 이미지 컴파일러는 GLSL을 사용하여 명령 파이프라인을 작성하고 버퍼 및 상태를 투명하게 처리합니다.GPU 렌더링을 사용하는[citation needed] 것이 좋지만 컴파일러는 CPU 폴백모드로 동작하여 현재의 CPU 아키텍처에 적합한 명령어를 생성할 수 있습니다.[7]CPU 폴백은 현재 CPU 또는 CPU의 벡터 처리 기능을 사용하며 멀티프로세서를 인식합니다.따라서 코어 이미지의 퍼포먼스는 GPU의 GLSL 기능 또는 CPU의 처리 능력에 따라 달라집니다.지원되는 GPU를 사용하면 대부분의 효과를 실시간 또는 거의 [8]실시간으로 렌더링할 수 있습니다.

이력 및 구현

코어 이미지는 Mac OS X 10.[9]4에서 도입되었습니다.Dashboard의 파급효과와 애플의 전문 디지털 사진 애플리케이션[10]Aperture에서 초기 사용 예를 볼 수 있습니다.Mac OS X 10.5부터는 이미지 키트를 구현하는 모든 애플리케이션에서 코어 이미지를 [11]사용할 수 있습니다.프리뷰iPhoto가 일반적인 예입니다.

2011년, 애플은 iOS 5.0의 [2]iOS에 코어 이미지를 추가했다.

Xcode 툴에는 Core Image Fun House와 Quartz Composer가 포함되어 있으며 둘 다 Core Image를 사용합니다.

픽셀의 정밀도

이미지 유닛에 의해 제공되는 모든 픽셀 처리는 빨강, 초록, 파랑 및 투명(알파)의 4가지 색 채널을 저장하는 사전 증배 알파(RGBA) 색 공간에서 수행됩니다.각 컬러 채널은 32비트 부동소수점 번호로 표시됩니다.각 픽셀은 128비트 벡터(4개의 32비트 컬러 채널)로 표시되므로 사람의 으로 인식할 수 있는 것보다 훨씬 더 높은 색심도를 제공합니다.비트 깊이가 낮은 색 공간에 대해서는 코어 이미지에서 채택한 부동소수점 계산 모델이 탁월한 성능을 제공하여 여러 이미지 또는 비디오 [3][12]프레임을 처리할 때 유용합니다.

지원 그래픽스 프로세서

필요한 OpenGL 셰이더(GLSL) 명령을 지원하는 프로그래밍 가능한 GPU는 모두 코어 이미지를 지원합니다.Apple은 Mac OS X 10.4 및 Aperture에서 코어 이미지 GPU 처리를 지원하기 위해 다음과 같은 그래픽 카드를 사용했습니다. 따라서 다음 목록은 최소 [10][13]요구 사항의 예로 간주될 수 있습니다.

  • ATI Mobility Rade on 9700 (모바일 Rade on 9600도 지원)
  • ATI Rade on 9550, 9600, 9650, 9600 XT, 9600 Pro, 9700 Pro, 9800 XT 및 9800 Pro
  • ATI Rade on X600 XT, X600 Pro, X800 XT, X850 XT, X1600, X1900 XT
  • ATI Radeon HD 2400 XT, HD 2600 Pro 및 HD 2600 XT
  • NVIDIA GeForce FX 5200 Ultra, FX Go 5200
  • NVIDIA GeForce 6600, 6600 LE, 6800 Ultra DDL 및 6800 GT DDL
  • NVIDIA GeForce 7300 GT, 7600 GT 및 7800 GT
  • NVIDIA GeForce 8600M GT 및 8800 GT
  • NVIDIA GeForce 9400M 및 9600M GT
  • NVIDIA GeForce GT 120 및 GT 130
  • NVIDIA GeForce GTX 285
  • NVIDIA Quadro FX 4500 및 FX 5600
  • NVIDIA Quadro FX 4800
  • NVIDIA Quadro 4000
  • NVIDIA GeForce 320M
  • NVIDIA GeForce GT 330M
  • NVIDIA GeForce GT 640M
  • NVIDIA GeForce GT 650M
  • NVIDIA GeForce GTX 660M
  • NVIDIA GeForce GTX 675M
  • NVIDIA GeForce GTX 680MX
  • NVIDIA GeForce GT 750M
  • NVIDIA GeForce GT 755M
  • NVIDIA GeForce GTX 775M
  • NVIDIA GeForce GTX 780M
  • 인텔 GMA 900, GMA 950 또는 GMA X3100
  • 인텔 HD 그래픽스 3000 (Sandy Bridge)
  • 인텔 HD 그래픽스 4000 (Ivy 브리지)
  • 인텔 HD 그래픽스 5000 (Haswell)
  • 인텔 Iris 5100 (Haswell)
  • 인텔 Iris Pro 5200 (Haswell)
  • 인텔 HD 그래픽스 5300 (Broadwell)
  • 인텔 HD 그래픽스 6000 (Broadwell)
  • 인텔 Iris 6100 (Broadwell)

코어 이미지 명령을 처리할 수 있는 GPU는 Quartz Extreme에도 대응합니다.코어 이미지의 요건은 Quartz [13]Extreme의 요건보다 큽니다.

내장 필터

"컬러 흑백", "병렬 타일" 및 "핀치 왜곡" 이미지 단위를 적용한 Wikipedia 로고

macOS에는 다음과 같은 내장 필터가 다수 포함되어 있습니다.그 중 100개 이상의 Mac OS X 10.4가 도입되었으며 Mac OS X 10.5가 목록에 [3][14]추가되었습니다.

  • 중위수, 가우스, 모션 및 노이즈와 같은 블러
  • 노출, 감마 조정, 세피아 톤 등의 색상 조정과 효과
  • 추가 및 다중 혼합, 하드 라이트 등의 구성 작업
  • 핀치, 원 스플래시 및 소용돌이와 같은 왜곡
  • 스타샤인이나 렌티큘러 헤일로 같은 발전기
  • 자르기, 축척, 회전 및 아핀 변환과 같은 지오메트리 조정
  • 하프톤, 타일 및 포스터라이즈 필터
  • 용해나 리플 등의 이행

내장된 코어 이미지 필터용 오픈소스 매뉴얼 웹사이트는 CIFilter.io 에서 관리되고 있습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Mac Dev Center - Introduction to Core Image Programming Guide". Retrieved September 20, 2009.
  2. ^ a b "iOS 5.0 API Diffs". Retrieved September 14, 2012.
  3. ^ a b c "Apple - Developer - Developing with Core Image". Retrieved September 20, 2009.
  4. ^ "Mac Dev Center - Introduction to Core Image Programming Guide - Filter Clients and Filter Creators". Retrieved September 20, 2009.
  5. ^ "ArsTechnica - Mac OS X 10.4 Tiger - Page 15". Retrieved September 20, 2009.
  6. ^ "Mac Dev Center - Core Image Kernel Language Reference - Introduction". Retrieved September 20, 2009.
  7. ^ "Mac Dev Center - Core Image Programming Guide - Core Image Concepts - Core Image and the GPU". Retrieved September 20, 2009.
  8. ^ "ArsTechnica - Mac OS X 10.4 Tiger - Page 15". Retrieved April 17, 2007.
  9. ^ "Mac Dev Center - Core Image Programming Guide - Core Image Concepts". Retrieved September 20, 2009.
  10. ^ a b "Apple - Aperture - Tech Specs". Retrieved September 20, 2009.
  11. ^ "Mac Dev Center - Image Kit Programming Guide - Introduction to Image Kit Programming Guide". Retrieved September 20, 2009.
  12. ^ "Mac Dev Center - Core Image Programming Guide - Core Image Concepts - Color Components and Premultiplied Alpha". Retrieved September 20, 2009.
  13. ^ a b "Mac OS X 10.4 - Requirements for Quartz Extreme and Core Image Graphics". Retrieved September 20, 2009.
  14. ^ "Mac Dev Center - Core Image Filter Reference". Retrieved September 20, 2009.

외부 링크