디지털 컴포지팅

Digital compositing
4개의 이미지를 하나의 최종 이미지로 조립

디지털 합성이란, 복수의 화상을 디지털로 조합해 최종 이미지를 작성하는 프로세스입니다.일반적으로 인쇄, 동영상, 또는 화면 표시용으로 사용됩니다.광학 필름 합성 디지털 아날로그입니다.

수학

디지털 합성에서 사용되는 기본 연산을 '알파 혼합'이라고 합니다. 여기서 불투명도 값인 'α'는 단일 출력 픽셀이 되는 두 입력 픽셀 값의 비율을 제어하는 데 사용됩니다.

간단한 예로 동일한 크기의 두 개의 이미지를 사용할 수 있으며 합성해야 한다고 가정합니다.입력된 영상을 전경 영상 및 배경 영상이라고 합니다.각 이미지는 같은 수의 픽셀로 구성됩니다.2개의 입력 화상으로부터 대응하는 화소로부터의 정보를 수학적으로 조합해, 합성 화상이라고 불리는 제3의 화상에 기록함으로써 합성한다.

3픽셀을 고려합니다.

  • 전경 화소, f
  • 배경 픽셀, b
  • 합성 화소 c

그리고.

  • α, 전경 픽셀의 불투명도 값.(불투명한 전경의 경우 α = 1, 완전히 투명한 전경의 경우 α = 0).화소값이 알파값으로 해석되는 단색 래스터 화상을 매트라고 한다.

그런 다음, 가지 색상 채널을 모두 고려하고 색상 채널이 µ=1 색 공간으로 표현된다고 가정하면(즉, 측정된 값은 광도에 비례한다), 다음과 같이 된다.

cr = αr f + (1 - α) br
cg = αg f + (1 - α) bg
cb = αb f + (1 - α) bb

θ가 1이 아닌 색 공간에서 작업을 수행할 경우 작업 시 매트 내 날카로운 모서리를 따라 앨리어싱 아티팩트(또는 '재기')로 보일 수 있는 비선형 효과가 발생한다는 점에 유의하십시오.보다 일반적으로, 알파 채널의 영향이 비선형적이기 때문에 비선형 합성에서는 합성된 객체 주위에 "헤일로스"와 같은 효과가 있을 수 있습니다.작곡가는 비선형 공간에서 작곡의 효과를 보상할 수 있다.

전체 영상 또는 3D 장면에서 알파 혼합을 수행하는 것은 비용이 많이 드는 작업입니다.실시간 비디오 게임에서 이 작업을 해야 한다면 성능을 높이는 쉬운 방법이 있습니다.

cout = αin f + (1 - α) bin
cout = αin f + bin - αin b
cout = bin + α (fin - bin)

수학식을 다시 쓰는 것만으로 필요한 곱셈의 50%를 절약할 수 있습니다.

대수적 성질

많은 부분 투명한 층을 함께 합성해야 할 경우 사용되는 합성 연산자의 대수적 특성을 고려할 가치가 있다.특히, 연관성과 교환성은 반복 계산을 피할 수 있는 시기와 피할 수 없는 시기를 결정합니다.

최종 이미지를 작성하기 위해 4개의 레이어를 블렌딩하는 경우를 생각해 봅시다.F=A*(B*(C*D) 여기서 A, B, C, D는 부분적으로 투명한 이미지 레이어이며, "*"는 합성 연산자(왼쪽 레이어가 오른쪽 레이어 위에 있음)를 나타냅니다.레이어 C만 변경되는 경우 F를 계산할 때 모든 레이어의 재블레이딩을 피할 수 있는 방법을 찾아야 합니다.특별한 고려사항 없이 4개의 전체 이미지 혼합이 필요합니다.가법 혼합과 같이 교환적인 합성 연산자의 경우 혼합 연산을 다시 정렬하는 것이 안전합니다.이 경우 T=A*(B*D)를 한 번만 계산하고 T*C를 혼합하여 단일 연산인 F를 생성할 수 있습니다.유감스럽게도 대부분의 연산자는 가환적이지 않습니다.그러나 많은 경우 관련성이 있으므로 순서를 변경하지 않고 작업을 F=(A*B)*(C*D)로 다시 그룹화하는 것이 안전하다는 것을 알 수 있습니다.이 경우 S:를 계산할 수 있습니다.=A*B를 한 번 실행한 후 결과를 저장합니다.관련 연산자와 F를 형성하려면 F:=S*(C*D)를 계산하여 새로운 레이어 S를 통합하기 위한 두 번의 추가 합성 연산만 수행하면 됩니다.이 표현은 C와 그 아래의 모든 레이어를 한 번에 합성한 후 그 위에 있는 모든 레이어를 이전 결과와 혼합하여 두 번째 단계에서 최종 이미지를 생성하는 것을 나타냅니다.

이미지의 모든 레이어가 정기적으로 변경되지만 여전히 많은 레이어를 합성할 필요가 있는 경우(분산 렌더링 등), 컴포지팅 연산자의 교환성을 이용하여 사전 컴퓨팅에서 얻을 수 없는 경우에도 병렬 처리를 통해 연산 속도를 높일 수 있습니다.다시 이미지 F=A*(B*(C*D))를 검토합니다.이 식에서의 각 컴포지팅 조작은 다음에 의존하기 때문에 시리얼 계산으로 이어집니다.그러나 상호 의존하지 않는 두 가지 연산이 병렬로 실행될 수 있는 경우에는 연관성을 통해 F=(A*B)*(C*D)를 다시 작성할 수 있습니다.일반적으로 레이어 수가 로그인 높이를 가진 쌍별 합성 연산의 트리를 구축할 수 있습니다.

소프트웨어

역사적으로 가장 중요한 비선형 합성 시스템은 시네온으로, 로그 색공간에서 작동했으며, 이는 필름 유제의 자연 광반응을 더 가깝게 모방했습니다(코닥이 만든 시네온 시스템은 더 이상 생산되지 않습니다).처리 속도와 메모리의 한계로 인해, 컴포지트 아티스트는 보통 컴포지트 스텝을 위해 시스템이 선형 공간으로 중간 변환하도록 할 수 없었습니다.시간이 지남에 따라 한계가 훨씬 덜 중요해지고, 이제는 소스 이미지가 로그 색 공간에 있는 경우에도 대부분의 구성이 선형 색 공간에서 수행됩니다.

합성에는 이미지의 스케일링, 리터치 및 색보정도 포함됩니다.

노드 기반 및 계층 기반 구성

근본적으로 다른 두 가지 디지털 컴포지팅 워크플로우가 있습니다. 노드 기반 컴포지팅과 레이어 기반 컴포지팅입니다.

노드 기반 합성은 전체 합성물을 방향 비순환 그래프로 나타내며, 절차 맵에서 미디어 객체와 효과를 링크하고 소스 입력에서 최종 출력까지의 과정을 직관적으로 배치하며, 사실상 모든 합성 애플리케이션이 내부적으로 복합물을 처리하는 방식이다.이러한 유형의 합성 인터페이스를 사용하면 (최종 합성물을 보는 동안) "콘텍스트"에서 이전 이미지 처리 단계의 매개 변수를 수정할 수 있는 기능을 포함하여 매우 유연하게 사용할 수 있습니다.노드 기반 컴포지팅 패키지는 계층 기반 컴포지팅 패키지와 같이 워크플로우가 타임라인에서 직접 생성되지 않기 때문에 키 프레임 및 시간 효과를 제대로 처리하지 못하는 경우가 많습니다.노드 기반 인터페이스를 통합한 소프트웨어로는 Natron(Libre 소프트웨어), Apple Shake, Blender, BlackMagicDesign Fusion 및 The Foundry의 Nuke있습니다.

레이어 기반 컴포지팅은 타임라인 내의 개별 레이어로서 복합 내의 각 미디어 오브젝트를 나타냅니다.각각의 시간 범위, 효과 및 키 프레임이 있습니다.모든 레이어는 원하는 순서로 차례로 겹쳐 쌓이고, 보통 결과 이미지에서 밑 레이어는 베이스로 렌더링되며, 각 상위 레이어는 이전에 합성된 레이어 위에 순차적으로 렌더링되며, 모든 레이어가 최종 합성 레이어로 렌더링될 때까지 위쪽으로 이동합니다.레이어 기반 컴포지팅은 모션 그래픽과 같이 빠른 2D 및 제한된 3D 효과에는 매우 적합하지만 다수의 레이어를 수반하는 복잡한 컴포지트에는 적합하지 않습니다.이것에 대한 부분적인 해결책은, 플로우차트라고 불리는 시각적인 다이어그램과 함께 요소의 복합 순서(이미지, 효과, 또는 다른 속성 등)를 표시해, 다른 구성에 직접 네스트 하는 것으로써, 초기 컴포지티에서 레이어를 먼저 컴포지트 하는 것으로써, 렌더 순서에 복잡함을 더하는 것입니다.온, 그리고 그 결과 이맘(< 이맘?)을 결합합니다.

「 」를 참조해 주세요.

추가 정보

  • Mansi Sharma; Santanu Chaudhury; Brejesh Lall (2014). Content-aware seamless stereoscopic 3D compositing. Proceedings of the 2014 Indian Conference on Computer Vision Graphics and Image Processing, ACM New York, NY, USA. doi:10.1145/2683483.2683555.
  • T. Porter와 T. Duff, "Compositing Digital Images", SIGGRAPH '84, 18(1984)의 계속.
  • 디지털 컴포지팅의 예술과 과학 (ISBN 0-12-133960-2)