2014-06-11 2 views
23

코어 이미지와 GPUImage 프레임 워크의 주요 차이점은 무엇입니까 (GPUImage는 오픈 소스 임)? 한 눈에 그들의 인터페이스는 꽤 비슷해 보입니다 ... 일련의 필터를 입력에 적용하여 출력을 생성합니다. GPUImage가 가지고있는 LookupFilter를 사용하기 쉽도록 몇 가지 작은 차이점이 있습니다. 나는 왜 누군가가 사진 필터링 응용 프로그램을 위해 다른 것을 하나씩 선택할지 알아 내려고 노력 중이다.코어 이미지와 GPUImage의 주요 차이점

+2

GPUImage의 readme 파일에 대한 정보를 읽으셨습니까? 여기에 모두 설명되어 있습니다. –

+0

감사합니다 .. 필터링 된 비디오를 내보내는 것이 Core Image보다 빠르다고 생각하는 것이 안전합니까? –

+0

GPUImage가 Core Image보다 반드시 빠르지는 않으며 그 반대도 마찬가지입니다. 때로는 때때로 그렇지 않습니다. 자신의 필요에 가장 적합한 프레임 워크를 확인해야합니다. – lxt

답변

75

GPUImage의 저자로서, 내가 말한 것을 소금 한알로 가져 가고 싶을 수 있습니다. 우선 Core Image 팀에 대한 존경심과 프레임 워크를 계속 업데이트하는 방법에 대해 많은 경의를 표해야합니다. 저는 GPUImage를 작성하기 전에 무거운 Core Image 사용자였습니다. Core Image가 Mac에서 어떻게 작동했는지에 따라 많은 디자인 요소를 패턴했습니다.

두 프레임 워크는 끊임없이 진화하고 있기 때문에 오늘 비교를 한 것은 몇 개월 만에 사실이 아닐 수도 있습니다. 현재의 기능과 벤치 마크를 지적 할 수는 있지만, 우리 중 누구도 업데이트 할 때 뒤집히지 않을 것이라는 보장은 없습니다.

GPUImage를 사용한 필자의 생각은 셰이더로 렌더링 된 OpenGL (ES) 쿼드를 경량 래퍼로 만들고 가능한 한 간단한 인터페이스로 그렇게하는 것이 었습니다. 이전에 언급했듯이, 내가 좋아했던 Core Image의 측면을 뽑아 냈지만, 나는 또한 과거에 나를 트 랩핑 한 인터페이스 부분을 변경했다. 또한 Core Image는 이미지 처리 만 다루는 반면, 동영상 재생, 카메라 입력, 비디오 녹화 및 이미지 캡처를 연결하는 과정에서 조금 더 확장되었습니다.

원래이 아이디어를 시작했을 때 Core Image는 아직 iOS에 없었습니다. 내가 출시했을 때 Core Image가 iOS에 추가되었습니다. 그러나 당시 iOS에서 지원되는 필터 수는 was fairly limited (예 : 흐리게 표시되지 않음)이며 iOS의 코어 이미지는 Mac에서와 마찬가지로 사용자 정의 커널을 만들 수 없습니다.

GPUImage는 Core Image가 지원하지 않는 iOS에서 이미지 및 비디오에 맞춤 GPU 가속 작업을 수행 할 수있는 수단을 제공했습니다. 이런 이유로 사용을 시작한 대부분의 사람들은 재고 코어 이미지 필터로 할 수없는 효과가 있었기 때문에 그렇게했습니다.

처음에는 GPUImage도 had significant performance advantages for many common operations입니다. 그러나 코어 이미지 팀은 각 iOS 버전에서 처리 속도가 크게 향상되었으며 현재 상황이 매우 비슷합니다. 일부 작업의 경우 GPUImage가 빠르며 다른 경우 Core Image가 빠릅니다. 그들은 내 GPUImageiOSBlurFilter와 같은 것으로 복제하기 시작한 pretty clever optimizations for things like blurs을 고용하려고합니다. 또한 다중 단계 작업을 지능적으로 결합합니다. 여기서는 필터 단계를 별도의 항목으로 처리합니다. 어떤 경우에는 iOS에서이 점이 나에게 유리하게 작용합니다. 최근에 메모리의 결과를 줄이려고했으나 많은 유형의 필터 체인을보다 잘 처리합니다.

iOS 8은 iOS의 Core Image에서 항상 Mac에서 사용하고있는 맞춤 커널 지원을 도입했습니다. 이렇게하면 iOS의 코어 이미지에 맞춤 필터 및 기타 작업을 작성할 수 있으므로 더 이상 GPUImage의 장점이 아닙니다. 물론 구형 iOS 버전을 타겟으로 삼고 싶은 사람들은 CoreImage가 할 수있는 것, 즉 GPUImage가 iOS 4.0을 대상으로 할 수있는 곳에서 여전히 제한 될 것입니다.

Core Image에는 iOS 응용 프로그램이 백그라운드 (CPU 기반, iOS 8에는 지금 GPU 측 지원 추가) 동안 필터링을 수행 할 수 있다는 점에서 몇 가지 훌륭한 기능이 있습니다. GPUImage의 의존성 on OpenGL ES는 응용 프로그램이 백그라운드에있을 때 실행되지 않도록합니다. iOS 8에서는이 제한 사항을 해결할 수있는 방법이있을 수 있지만 아직 모든 문서를 작성하지는 못했습니다.

GPUImage와의 나의 관심사는 머신 비전 분야입니다.이미지 필터는 즐거움을주는 요소이지만이 프레임 워크를 사용하여 GPU 가속 이미지 분석으로 가능한 것을 탐색하고 싶습니다. 저는 임의의 물체 인식과 추적 작업을하고 있습니다. 그 방향은 제가 프레임 워크를 향해 계속 진화 할 방향입니다. 그러나 프레임 워크에는 the code이 있으므로 나에게 의존 할 필요가 없습니다.

2

이것은 오래된 스레드이지만, GPUImage에도 코어 이미지에없는 몇 가지 기능이 있다는 것을 알았습니다. 특히 hough transform 및 여러 가장자리 감지 필터가 있습니다.

Core Image는 필터와 효과를 적용하는 것처럼 보입니다. GPUImage가 이미지/비디오 분석에 대해 더 많이 탐구하고, 더 많은 방법으로 openCV와 비슷하지만보다 효율적인 방법을 탐색하는 것이 좋습니다.

관련 문제