KR102138847B1 - 알파 블렌딩을 사용한 동적 이미지 컬러 리매핑 방법 - Google Patents

알파 블렌딩을 사용한 동적 이미지 컬러 리매핑 방법 Download PDF

Info

Publication number
KR102138847B1
KR102138847B1 KR1020197035309A KR20197035309A KR102138847B1 KR 102138847 B1 KR102138847 B1 KR 102138847B1 KR 1020197035309 A KR1020197035309 A KR 1020197035309A KR 20197035309 A KR20197035309 A KR 20197035309A KR 102138847 B1 KR102138847 B1 KR 102138847B1
Authority
KR
South Korea
Prior art keywords
image
alpha
color
projection
alpha channel
Prior art date
Application number
KR1020197035309A
Other languages
English (en)
Other versions
KR20190138885A (ko
Inventor
에밀리오 아우투네즈
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20190138885A publication Critical patent/KR20190138885A/ko
Application granted granted Critical
Publication of KR102138847B1 publication Critical patent/KR102138847B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/62Semi-transparency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2012Colour editing, changing, or manipulating; Use of colour codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Architecture (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

시스템, 방법 및 컴퓨터 판독 가능 저장 매체는 알파 투영을 수행하는 데 사용될 수 있다. 일 방법은 하나 이상의 이미지를 저장하는 시스템으로부터 이미지를 수신하는 단계를 포함한다. 이 방법은 상기 수신된 이미지에 알파 채널 값들을 할당하도록 상기 수신된 이미지를 알파 투영하는 단계 - 상기 단계는 상기 수신된 이미지의 하나 이상의 픽셀을 오리지널 컬러로부터 제 2 컬러로 투영하는 것과, 투영 원점 컬러와 알파 블렌딩된 각각의 제 2 컬러가 상기 오리지널 컬러가 되게 하는 알파 채널 값을 결정함으로써 상기 하나 이상의 픽셀에 대한 알파 채널 값들을 설정하는 것에 의해 수행됨 -를 추가로 포함할 수 있다. 이 방법은 상기 알파 투영된 이미지를 전경 이미지로서 배경 이미지 위에 디스플레이하는 단계를 추가로 포함할 수 있다.

Description

알파 블렌딩을 사용한 동적 이미지 컬러 리매핑 방법
본 출원은 2017년 9월 8일자로 출원된 미국 특허 출원 번호 제15/699,908호의 우선권 및 이익을 주장하며, 이 미국 출원은 2017년 8월 25일자로 출원된 미국 가특허 출원 번호 제62/550,309호의 우선권 및 이익을 주장하며, 이들은 모두 본원에 참고로 포함된다.
알파 블렌딩(Alpha-blending)은 전경 이미지인 제 1 이미지를 배경 이미지인 제 2 이미지와 블렌딩하는 방법이다. 배경 이미지가 전경 이미지를 통해 "블리드(bleeds)"되는 정도는 전경 이미지의 픽셀들에 대한 알파 채널 값들에 기반하고 있다. 각 픽셀의 알파 채널 값은 픽셀의 반투명도(translucency)를 정의하는 숫자 값일 수 있다. 예를 들어, 제로의 알파 채널 값은 픽셀이 완전히 투명하다는 것을 나타낼 수 있는데, 이는 배경 픽셀이 전경 이미지의 완전 투명 픽셀을 통해 완전히 가시적이라는 것을 의미한다. 부호없는 8 비트 정수인 알파 채널 값에 대한 최대 알파 채널 값(예를 들어, 255)은 픽셀이 투명성을 가지지 않아 완전히 불투명하다는 것을 의미할 수 있다. 배경 픽셀과 알파 블렌딩될 때 완전히 불투명한 픽셀은 전경 픽셀만이 가시적일 수 있게 하고 배경 이미지는 전경 이미지를 통해 "블리딩(bleeding)"되지 않게 된다. 알파 값들의 변화는 전경 이미지 또는 배경 이미지가 강하게 나타나도록 할 수 있고, 즉, 블렌딩된 이미지에서 더 우세해지게 할 수 있다.
알파 투영(alpha-projection)을 수행하기 위한 하나의 예시적인 방법은 하나 이상의 이미지를 저장하는 시스템으로부터 이미지를 수신하는 단계를 포함한다. 방법은 상기 수신된 이미지에 알파 채널 값들을 할당하도록 상기 수신된 이미지를 알파 투영하는 단계 - 상기 단계는 상기 수신된 이미지의 하나 이상의 픽셀을 오리지널 컬러로부터 제 2 컬러로 투영하는 것과, 투영 원점 컬러(projection origin color)와 알파 블렌딩된 각각의 제 2 컬러가 상기 오리지널 컬러가 되게 하는 알파 채널 값을 결정함으로써 상기 하나 이상의 픽셀에 대한 알파 채널 값들을 설정하는 것에 의해 수행됨 -를 추가로 포함한다. 방법은 알파 투영된 이미지를 전경 이미지로서 배경 이미지 위에 디스플레이하는 단계를 추가로 포함한다.
일부 구현예는 적어도 하나의 메모리에 동작 가능하게 연결된 적어도 하나의 컴퓨팅 디바이스를 구비한 시스템에 관한 것이다. 컴퓨팅 디바이스는 하나 이상의 이미지를 저장하는 시스템으로부터 이미지를 수신하도록 구성된다. 컴퓨팅 디바이스는 상기 수신된 이미지에 알파 채널 값들을 할당하도록 상기 수신된 이미지를 알파 투영하는 단계를 수행하도록 추가로 구성되며, 상기 단계는 상기 수신된 이미지의 하나 이상의 픽셀을 오리지널 컬러로부터 제 2 컬러로 투영하는 것과, 투영 원점 컬러(projection origin color)와 알파 블렌딩된 각각의 제 2 컬러가 상기 오리지널 컬러가 되게 하는 알파 채널 값을 결정함으로써 상기 하나 이상의 픽셀에 대한 알파 채널 값들을 설정하는 것에 의해 수행된다. 컴퓨팅 디바이스는 알파 투영된 이미지를 전경 이미지로서 배경 이미지 위에 디스플레이하도록 구성된다.
일부 구현예는 명령어가 저장된 하나 이상의 컴퓨터 판독 가능 저장 매체에 관한 것이다. 적어도 하나의 프로세서에 의해 실행될 때, 동작은 하나 이상의 이미지를 저장하는 시스템으로부터 이미지를 수신하는 단계를 포함한다. 동작은, 상기 수신된 이미지에 알파 채널 값들을 할당하도록 상기 수신된 이미지를 알파 투영하는 단계 - 상기 단계는 상기 수신된 이미지의 하나 이상의 픽셀을 오리지널 컬러로부터 제 2 컬러로 투영하는 것과, 투영 원점 컬러와 알파 블렌딩된 각각의 제 2 컬러가 상기 오리지널 컬러가 되게 하는 알파 채널 값을 결정함으로써 상기 하나 이상의 픽셀에 대한 알파 채널 값들을 설정하는 것에 의해 수행됨 -를 추가로 포함한다. 동작은 투명성을 강제하기 위한 알파 투영된 이미지의 픽셀들을 선택함으로써 알파 투영된 이미지에 투명성을 강제하는 단계를 추가로 포함한다. 동작은 투명성 함수(transparency function), 선택된 픽셀들에 대한 입력 알파 채널 값들, 및 수신된 이미지의 엣지로부터의 선택된 픽셀들의 각각의 거리에 기초하여 상기 선택된 픽셀들에 대한 알파 채널 값들을 조정함으로써 상기 투명성 함수에 기초하여 상기 선택된 픽셀들에 대한 알파 채널 값들을 조정하는 단계를 추가로 포함한다. 동작은 알파 투영된 이미지를 전경 이미지로서 배경 이미지 위에 디스플레이하는 단계를 추가로 포함한다.
특허 또는 출원 파일은 컬러로 실행되는 적어도 하나의 도면을 포함한다. 컬러 도면(들)과 함께 이 특허 또는 특허 출원 공개물의 사본들은 요청과 필요한 비용의 지불시에 특허청에 의해 제공될 것이다.
본 명세서에 기술된 요지의 하나 이상의 구현예의 세부 사항은 첨부된 도면 및 이하의 설명에서 열거된다. 본 요지의 다른 특징들, 양태들, 및 장점들은 설명, 도면, 및 청구범위로부터 명백해질 것이다.
도 1은 예시적인 구현예에 따른 이미지 관리 시스템 및 관련 환경의 블록도이다.
도 2는 예시적인 구현예에 따라 이미지의 픽셀을 알파 투영하고 알파 투영된 이미지에 대한 투명성을 강제하는 프로세스의 흐름도이다.
도 3은 예시적인 구현예에 따라 더 상세히 기술된 알파 투영을 수행하는 프로세스의 흐름도이다.
도 4는 예시적인 구현예에 따라 더 상세히 기술되는 이미지에 대한 투명성을 강제하는 프로세스의 흐름도이다.
도 5는 예시적인 구현예에 따라 배경 위에 디스플레이된 다수의 제품 이미지를 포함하는 컨텐츠 항목의 예시도이다.
도 6은 예시적인 구현예에 따라 오리지널 컬러로부터 제 2 컬러로의 픽셀에 대한 알파 투영을 나타내는 차트로서, 여기서 투영 원점 컬러는 백색이다.
도 7은 예시적인 구현예에 따라 알파 투영에 대한 조정된 알파 채널 값을 나타내는 차트로서, 여기서 투영 원점 컬러는 백색이다.
도 8은 예시적인 구현예에 따라 알파 투영에 대한 적색, 녹색, 청색(RGB) 컬러 볼륨을 나타내는 차트로서, 여기서 투영 원점 컬러는 백색이다.
도 9는 예시적인 구현예에 따라 알파 투영된 이미지를 새로운 배경 컬러로 알파 블렌딩한 결과의 리매핑된 컬러 볼륨을 나타내는 차트이다.
도 10은 예시적인 구현예에 따라 제 1 투영 반경과의 알파 투영을 위해 새로운 배경 컬러로 알파 투영된 이미지를 알파 블렌딩한 결과의 리매핑된 컬러 볼륨을 나타내는 차트이다.
도 11은 예시적인 구현예에 따라 제 2 투영 반경과의 컬러 투영을 위해 새로운 배경 컬러로 알파 투영된 이미지를 알파 블렌딩한 결과의 리매핑된 컬러 볼륨을 나타내는 차트이다.
도 12는 예시적인 구현예에 따라 알파 투영 없음, 제 1 투영 반경과의 알파 투영, 및 제 2 투영 반경과의 알파 투영을 나타내는 이미지들의 세트이다.
도 13은 예시적인 구현예에 따른 패딩 엣지 강제 투명성(padded-edge forced transparency)의 결과를 나타내는 이미지 세트이다.
도 14는 예시적인 구현예에 따른 강제 투명성 함수를 나타내는 차트이다.
도 15는 예시적인 구현예에 따라 비 백색 투영 원점 컬러와의 알파 투영을 나타내는 차트로서, 여기서 비 백색 컬러는 RGB 컬러 큐브의 표면 상에 놓인다.
도 16은 예시적인 구현예에 따라 비 백색 컬러 투영 원점 컬러와의 알파 투영을 위해 새로운 배경 컬러로 알파 투영된 이미지를 알파 블렌딩한 결과의 리매핑된 컬러 볼륨을 나타내는 차트로서, 여기서 비 백색 컬러는 RGB 컬러 큐브의 엣지 상에 놓인다.
도 17은 예시적인 구현예에 따라 비 백색 투영 원점 컬러와의 알파 투영을 나타내는 차트로서, 여기서 비 백색 컬러는 RGB 컬러 큐브의 엣지 상에 놓이지 않는다.
도 18은 예시적인 구현예에 따라 비 백색 투영 원점 컬러와의 알파 투영을 위해 새로운 배경 컬러로 알파 투영된 이미지를 알파 블렌딩하기 위한 리매핑된 컬러 볼륨을 나타내는 차트로서, 여기서 비 백색 컬러는 RGB 컬러 큐브의 엣지 상에 놓이지 않는다.
도 19는 예시적인 구현예에 따른 투영 솔리드(projection solid)로서 직사각형 프리즘과의 알파 투영을 나타내는 차트이다.
도 20은 예시적인 구현예에 따른 투영 솔리드로서 구체(sphere)와의 컬러 매핑을 나타내는 차트이다.
도 21은 예시적인 구현예에 따른 투영 솔리드로서 사면체와의 컬러 매핑을 나타내는 차트이다.
도 22는 예시적인 구현예에 따른 컴퓨팅 시스템의 블록도이다.
일반적으로 도면을 참조하면, 배경 이미지와 블렌딩될 이미지를 준비하는 방법이 다양한 구현예에 따라 기술된다. 일부 구현예에서, 본원에 기술된 방법들은 두 개의 부분을 가질 수 있는 픽셀별 변환을 포함한다. 제 1 부분은 본원에서 알파 투영(alpha-projection)이라고 지칭되는 적색, 녹색, 청색, 알파(red, green, blue, alpha)(RGBA) 컬러 공간 투영이다. 제 2 부분은 이미지의 엣지 근처에 있는 알파 채널 값을 수정하는 것으로, 본원에서는 투명성을 강제하는 것이라고 지칭된다. 알파 투영은 다음 예를 참조하면 이해될 수 있다. T라고 지칭되는 완전한 투명성을 만들고자 하는 RGB 컬러의 경우, RGB 공간에서 그 컬러 주변의 다른 컬러의 볼륨이 정의될 수 있다. 이미지 픽셀이 이 볼륨에 속하는 컬러 C를 갖는 경우, C는 T로부터 볼륨의 투영 표면인 볼륨의 경계에 있는 RGB 컬러 P 상으로 선형적으로 투영된다. 그 다음, 컬러 P를 갖는 픽셀에는 알파 채널 값이 할당될 수 있고, 그에 따라, 컬러 P가 컬러 T의 상부에 렌더링될 때, 알파 블렌딩 공식은 오리지널 RGB 컬러 C를 재구성하게 된다.
이 변환의 결과로, "투영된 볼륨" 내부의 모든 컬러는 어느 정도의 투명성을 할당받으며, T에 더 가까운 컬러에 대해서는 더 큰 투명성이 할당된다. 이 이미지가 컬러 T의 배경 위에 렌더링되는 경우, 알파 브렌딩된 결과는 대략적으로 오리지널 이미지를 재구성해야 한다(양자화 및 반올림의 작은 효과는 무시한다). 배경 컬러가 T에서 다른 컬러 U로 이동함에 따라, 오리지널 컬러 T였던 픽셀은 컬러 U로 나타날 뿐만 아니라 투영된 볼륨 내의 모든 컬러들은 매끄럽게 매칭하도록 리매핑된다.
제 2 단계는 투명성을 강제하는 것인, 패딩된 엣지 알파 보정이다. 위의 예를 계속하면, 입력 이미지의 엣지 상의 모든 픽셀이 T에 매우 가까운 컬러를 갖는 경우를 제외하고는 그 모든 픽셀은 완전히 투명하지는 않을 것이다. 그러한 경우 및 (이미지가 전체 해상도로 뷰포트를 채울만큼 충분히 크지 않거나 이미지와 뷰포트 종횡비가 매칭되지 않는 이유로 인해) 이미지가 뷰포트로부터의 패딩으로 렌더링되어야 하는 경우, 이미지의 경계들에서 완전한 투명성의 부족은 이미지가 끝나고 뷰포트가 시작되는 위치를 분명하게 하여 뷰포트에 걸쳐 있는 하나의 연속 이미지의 환상을 깨뜨릴 수 있다. 이 문제를 피하기 위해, 패딩된 엣지 근처의 알파 채널에 대한 추가 변환을 수행하여, 경계에서 거의 투명한 픽셀을 완전히 투명한 픽셀로 매끄럽게 변환할 수 있다. 이러한 투명성 강제 방법은 이미지 경계로부터 멀어 질수록 효과를 약화시킬 수 있으며, 따라서 이미지 경계로부터 약간의 짧은 거리에 위치한 픽셀은 제 1 단계에 의해 할당된 투명성을 사용한다.
솔리드 배경(solid background) 위에 중심 피사체(예를 들어, 제품의 이미지들, 의류 모델의 이미지들, 등)를 나타내는 이미지가 일반적인데, 이는 뷰어의 관심을 그 피사체에 유지하는 데 도움이 되고 중간적 표시(neutral presentation)는 다수의 사용자 인터페이스(user interfaces)(UIs)와 호환되도록 하기 때문이다. 그러나, 다른 UI들은 (원하는 대로, 렌더링되는 영역과 대비 또는 블렌딩을 위해) 다른 배경 컬러, 그래디언트, 및 패턴을 사용하거나 다른 크기 또는 종횡비로 패딩되어 (원하는 뷰포트를 완전히 채울 수 있는) 상이한 버전의 이미지로부터는 이점을 가질 수도 있다. 일부 구현예에서, 각각 원하는 조합의 크기 및 배경에 대해 상이한 버전의 이미지가 생성될 수 있다. 그러나, 이로 인해 저장 및 제공 용량의 사용이 많아질 수 있다.
하나의 해결책은 배경이 투명하도록 이미지를 변환하는 것일 수 있다. 이러한 방식으로, 단일 버전의 이미지를 저장 및 제공한 다음, 원하는 배경 및 크기의 뷰포트 위에 렌더링하여 원하는 이미지를 시뮬레이션할 수 있다. 그러나, 이러한 투명한 배경 이미지는 이미지를 캡처하는 동안 특별한 설정 또는 도구를 필요로 하거나, 사람의 편집 및/또는 자동화된 방법을 사용하여 표준(투명하지 않은) 이미지에서 전경 및 배경 영역의 분할을 필요로 할 수 있기 때문에 생성이 어려울 수 있다.
이들 접근 방식은 힘들고 및/또는 오류가 발생하기 쉬울 수 있다. 문제는 다른 사람이 생성한 이미지를 제시하려는 경우 훨씬 더 어려워진다. 투명한 배경 이미지는 비교적 흔하지 않기 때문에 원하는 효과를 얻기 위해 오류가 발생하기 쉬운 이미지 분할 기술에 의존해야 할 가능성이 높다. 이미지가 여러 다양한 출처에서 나오고 그 표시가 일관성이 없다면, 가능한 모든 이미지와 피사체 변형에서 잘 작동하는 신뢰성 있는 방법을 생성하는 것이 훨씬 더 어려울 수 있다.
이것은 쇼핑 웹 사이트가 직면한 하나의 문제이며, 이 웹 사이트는 많은 상이한 판매자들에 의해 제공된 거대한 코퍼스(corpus)로부터 제품 이미지를 제시할 수 있어야 한다. 쇼핑 웹 사이트에 디스플레이되어야 하는 많은 이미지는 불투명한 백색 또는 매우 밝은 컬러의 배경에 표시될 수 있다. 고려 중인 새로운 컨텐츠 포맷은 상이한(예를 들어, 밝은 회색) 배경 컬러와 일관된 종횡비로 이미지를 표시하는 것으로부터 이점을 가질 수 있다. 쇼핑 웹 사이트에 이미 존재하는 백색 배경 이미지에서 이미지를 생성하는 것이 유익할 수 있다.
이미지 캡처 동안, 크로마 키잉(chroma keying)(예를 들어, 녹색 스크린) 및 심도 매핑(depth-mapping)과 같은 방법이 사용될 수 있다. 크로마 키잉은 알려진 컬러의 스테이지 배경 앞에 있는 이미지 피사체를 캡처한 다음 해당 컬러의 존재를 사용하여 배경에 속하는 픽셀을 검출할 수 있다. 배경 컬러는 피사체 상의 어떠한 컬러와도 겹치지 않도록 신중하게 선택되어야 하며, 그렇지 않으면 피사체의 컬러 매칭 부분은 배경으로 잘못 분류될 수 있다.
또한, 심도 매핑이 사용될 수 있다. 여러 이미지 캡처 설정은 각 픽셀의 컬러뿐만 아니라 카메라와의 거리도 캡처할 수 있다. 배경이 피사체로부터 거리가 충분하게 분리되어 있으면, 피사체에 속하는 픽셀을 배경에 속하는 픽셀과 분리할 수 있다. 사용된 기술에 따라, 심도 매핑 및 크로마 키잉 기술에는 특수한 하드웨어, 제어된 캡처 조건, 및 피사체에 대한 제한(예를 들어, 너무 반사적이거나 투명한 성분이 없는 것)이 필요할 수 있다.
이미지 캡처 후, 이미지 분할/매팅(segmentation/matting) 및 균일한 이미지 투명성이 사용될 수 있다. 이미지 분할 및 매팅은 픽셀을 둘 이상의 시멘틱상 유의미한 영역(semantically-meaningful regions)에 할당하려고 하는 진행중인 컴퓨터 비전 연구의 영역이다. "분할"과 "매팅"은 밀접하게 관련되어 있지만 약간 다른 개념으로, 전자는 각각의 픽셀을 정확히 하나의 영역에 할당하는 것을 지칭하고 후자는 부분 멤버쉽의 픽셀들(pixels fractional membership)을 하나 이상의 영역에 할당하는 것을 지칭한다(예를 들어, 객체 경계 상의 픽셀들은 반 배경 및 반 전경일 수 있다). 완벽한 기술은 없으며, 잠재적 오류에는 다른 영역과 유사한 속성을 가진 한 영역의 부분들을 혼합하는 것(예를 들어, 백색 배경 이미지에서, 전경의 임의의 백색 부분들을 배경으로서 레이블을 잘못 지정하는 것)이 포함된다. 가장 강력한 기술에는 계산 시간이 느리고, 많은 트레이닝 데이터가 필요하고, 이미지 속성에 대한 가정과 같은 다른 결점들이 있다.
배경 컬러에 대한 일부 제어를 가능하게 하는 하나의 기술은 이미지 내의 모든 픽셀에 부분적이고 균일한 투명성을 할당한 다음, 그 이미지를 알파 블렌딩된 배경 컬러를 원하는 컬러로 푸시하는 뷰포트 컬러 위에 렌더링하는 것이다. 이 기술은 계산이 매우 간단해지지만 두 가지의 중대한 단점이 있다: 즉, 이미지 대비를 크게 줄이고 일반적으로 인식되는 컬러를 왜곡할 수 있으며(예를 들어, 배경을 어둡게 하고자 하는 경우, 전체 이미지가 어둡게 됨), 그리고 이미지 경계를 완전히 투명하게 하지 못하며, 이는 이미지를 상이한 종횡비의 뷰포트로 렌더링하는 경우에 분명해질 것이라는 것을 의미한다.
픽셀들을 전경 또는 배경으로서 라벨링하는 것을 포함하는 전술한 기술들 중 일부(즉, 균일한 투명성을 제외한 모든 것)는 단점들을 가지지만, 이는 본원에 기술된 알파 투영 및 투명성 강제 방법으로 극복될 수 있다. 첫째, 배경을 완전 투명한 영역으로 만들어 교체하면 배경 영역의 특징(예를 들어, 쉐도우, 반사, 및 배경 질감)을 유지할 수 없다. 둘째, 전경과 유사한 컬러의 배경에 투명 이미지를 렌더링하면, 전경-배경 경계에서 모든 대비를 상실할 수 있다.
알파 투영 및 투명성 강제를 위해 본원에 기술된 방법은 일부 구현예에서 준 백색 픽셀을 투명하게 만들 수 있다. 균일한 투명성 방법과는 달리, 본원에 기술된 방법은 전경과 배경을 명시적으로 구별하려고 시도하지 않을 수 있다. 본원에 기술된 방법은 입력 컬러에 기초하여 투명성을 할당할 수 있어, 변환된 이미지에 보다 바람직한 속성을 제공할 수 있다. 이 방법은 전경과 배경을 명시적으로 구별하려고 시도하지 않기 때문에, 일부 구현예에서, 배경 컬러의 변화는 또한 전경 내의 그 컬러에 영향을 미치게 될 것이고, 그에 따라 본 기술은 배경 컬러의 완만한 변화에 대해서는 가장 안정적으로 작동할 수 있다.
본원에 기술된 방법은 분할 기반 기술에 유리할 수 있다. 이 기술은 전경 영역에 약간의 투명성을 매우 자주 할당할 수 있지만, 배경 컬러가 너무 과도하게 변경되지 않는 한, 알파 블렌딩 후 이러한 오류의 시각적 증거는 감지가 보다 어려워지는 경향이 있다. 분류 오류는 (블렌딩된 컬러의 불연속성이 매우 가시적인) 솔리드 영역들(solid regions)의 중간에 투명성 변화를 가할 수 있기 때문에 시각적으로 더욱 분명해지는 경향이 있고, 실수로 배경으로 분류할 수 있는 영역들에서 모든 대비를 없애는 경향이 있다. 이 기술은 이미지에서 가시적인 대비를 유지하는 경향이 있으므로 배경 컬러가 오리지널 전경 컬러와 매칭하도록 변경되더라도 전경이 배경에 블렌딩되지 않을 것이다. 이 기술은 쉐도우, 반사 및 질감을 포함하는 배경의 미세한 패턴과 특징을 보존할 수 있다.
본원에 제공된 예시적인 방법은 일부 구현예에서 (균일한 투명성을 포함하는) 다른 컬러 리매핑 방식과 비교하여 이점을 가질 수 있다. 오리지널 배경 컬러가 사용되는 경우, 이미지는 알파 블렌딩 후 컬러 및 대비에서의 최소한의 변경을 겪게 된다. 컬러 왜곡 및 대비 손실은 배경 컬러가 얼마나 많이 변경되었는지에 비례할 수 있으므로 배경 컬러의 완만한 변화의 경우 큰 컬러 왜곡은 없을 수 있다. 변환 포인트에서 투영된 볼륨의 크기를 조정함으로써 컬러 보존(볼륨을 보다 작게)과 대비 보존(볼륨을 보다 크게)을 트레이드 오프(trade off)할 수 있다. 선택된 투영 볼륨에 관계없이, RGB 큐브의 경계 상의 컬러 중 적어도 절반은 이 변환에 의해 완벽하게 보존되어야 한다. 예시적인 실시예에 따르면, 본원에 제시된 방법은 불투명한 배경 위에 렌더링된 단일의 투명한 이미지를 가정할 수 있지만, 알파 블렌딩 알고리즘은 다수의 투명한 이미지들이 합성되게 할 수 있다. 하나의 대안적인 구현예는 알파 블렌딩될 때 이 알고리즘에 의해 직접 계산된 것과 같은 이미지를 생성하는 2 개 이상의 투명한 이미지를 생성하는 것이다. 그것은 사용자에게 제시하기 위해 이미지 당 다수의 이미지 파일을 저장해야 하지만, 배경을 동적으로 재색(recolor)하는 비슷한 기능이 있다.
전경과 배경을 시멘틱적으로 구별하려고 하는 분할/매팅 기술과 비교하여, 알파 백색 "오류"(전경 픽셀에 투명성 할당)는 보다 흔하지만, 또한 시각적으로는 보다 미묘하다. 결과적으로, 알파 투영 방법을 사용하면, 실패할 수도 있을 이미지에 대해 덜 적극적으로 필터링하여, 투명한 배경을 가진 이미지의 수를 증가시킬 수 있다.
분할/매팅에 대한 시각적으로 분명한 실패 타입은 솔리드 컬러 영역들에 강한 알파 전환을 두는 것을 포함하는데, 이는 비 백색 배경 컬러 위에서 이미지를 알파 블렌딩한 후 선명한 컬러 불연속성을 초래한다. 알파 투영 방법은 입력 컬러의 큰 변동에서 알파의 큰 변동만을 유발할 수 있으므로 배경 컬러를 변경해도 유사하게 분명한 불연속성은 발생하지 않는다.
분할/매팅이 전경을 배경으로 잘못 분류할 경우, 그 픽셀의 알파를 0으로 설정하여, 그 영역에서 임의의 RGB 대비를 제거할 수 있다. 알파 백색 변환은 해당 영역의 대비를 감소시킬 수 있지만 완전히 지울 수는 없다.
2 개의 입력 픽셀이 0이 아닌 대비를 갖는 경우, 알파 블렌딩된 결과에서도 마찬가지이다. 특히, 백색 배경 상에 투영된 제품 쉐도우는 항상 보존되며, 배경이 어두워져 제품의 오리지널 컬러를 띠더라도 준 백색 제품은 배경 내로 완전히 블렌딩되지 않는다. 분할 및 매트는 영역 분류를 목표로 하며, 그의 알파 계산에서 컬러 매핑을 보장하도록 디자인되지는 않는다.
본원에 기술된 방법의 변환, 알파 투영, 및 투명성 강제는 매우 빠르고 리소스가 경량이어서, 풀 사이즈 썸네일을 계산할 수 있으며, 이는 보다 다양한 UI에서 결과가 사용 가능하다는 것을 의미한다. 분할 및 매트 방법은 훨씬 느리며, 그 런타임은 일반적으로 이미지 픽셀 수에서 초선형적으로(superlinearly) 증가한다.
알파 백색 알고리즘은 배경에 있는 백색 픽셀을 제품에 속하는 것들과 구별하려고 시도하지 않기 때문에, 뷰포트 컬러가 준 백색으로 유지된다면(예를 들어, 회색 235까지 내려가면), 모든 경우에 효과가 잘 작동한다. 분할 및 매트 기술이 잘 작동하면, 전경을 불투명하게 유지하여, 배경 교체 컬러의 선택에 훨씬 더 많은 자유도를 허용해야 한다(그러나, 처음에 언급했듯이 전경 컬러와 매칭되지 않도록 주의해야 한다).
동적 재색(dynamic recoloring)을 위한 다른 옵션은 전체 이미지를 균일성있게 투명하게 하여 각 픽셀에 어떠한 중간 알파를 할당하는 것이다. 이는 속도는 빠를 수 있지만 또한 전체적으로 컬러를 많이 왜곡한다. 특히, 이러한 보다 간단한 변환에 대해 알파(α)를 사용하면, 모든 알파 블렌딩된 컬러 채널은 (선택된 뷰포트 컬러에 관계없이) 크기 α의 범위로 제한되어, 전체 컬러 공간에 걸쳐 대비가 낮아지게 된다. 그것은 또한 오리지널 이미지 경계 컬러가 뷰포트 컬러와 매칭되는 경우(이는 처음에 투명성을 부가하려는 목적을 무산시킬 수 있음)를 제외하고는 "패딩 엣지 강제 투명성"으로 기술된 동일한 패딩 불연속성을 나타낼 것이다.
이와는 대조적으로, 알파 투영된 썸네일은 일부 컬러들에 걸친 대비만을 희생하며, 뷰포트 컬러가 백색으로부터 얼마나 멀리 떨어져 있는지에만 비례한다. 뷰포트 컬러가 백색이라면, 알파 블렌딩은 (변환 및 알파 블렌딩 동안 양자화로 인한 작은 왜곡은 제외하고) 주로 오리지널 이미지를 재구성해야 한다. 선택된 투영 반경과 뷰포트 컬러에 관계없이, 알파 백색 썸(alpha-white thumbs)은 적어도 하나의 컬러 채널이 0으로 설정된 컬러로 항상 완벽하게 유지(즉, 완전한 불투명도를 할당)할 수 있다. 이는 모든 무지개 컬러의 가장 포화된 버전뿐만 아니라 이들과 흑색 사이에 존재할 수 있는 모든 컬러를 포함할 수 있다.
이제 도 1을 참조하면, 예시적인 구현예에 따른 이미지 관리 시스템(120) 및 관련 환경(100)의 블록도가 도시되어 있다. 하나 이상의 사용자 디바이스들(104)은 다양한 동작을 수행하고/하거나 다양한 타입의 컨텐츠에 액세스하기 위해 사용자에 의해 사용될 수 있으며, 그 중 일부는 네트워크(102)(예를 들어, 인터넷, LAN, WAN 등)를 통해 제공될 수 있다. 본원에 사용된 "사용자" 또는 "엔티티"는 사용자 디바이스들(104) 등을 통해 리소스들 또는 컨텐츠 항목들과 상호 작용하는 개별 작동 사용자 디바이스들(104)을 지칭할 수 있다. 사용자 디바이스들(104)은 (예를 들어, 인터넷 브라우저를 사용하여) 웹 사이트들 , 미디어 파일들, 및/또는 임의의 다른 타입의 콘텐츠에 액세스하는 데 사용될 수 있다. 컨텐츠 관리 시스템(108)은 리소스들(예를 들어, 웹 페이지들, 애플리케이션들 등) 내에서 사용자에게 디스플레이할 컨텐츠를 선택하고, 네트워크(102)를 통해 컨텐츠 항목들을 사용자 디바이스들(104)에 제공하여 리소스 내에 디스플레이하도록 구성될 수 있다. 컨텐츠 관리 시스템(108)이 항목들을 선택하는 컨텐츠는 하나 이상의 컨텐츠 제공자 디바이스들(106)을 사용하는 하나 이상의 컨텐츠 제공자들에 의해 네트워크(102)를 통해 제공될 수 있다.
일부 구현예에서, 컨텐츠 관리 시스템(108)은 컨텐츠 제공자들로부터의 컨텐츠 항목들을 선택하여 사용자 디바이스들(104) 상에 디스플레이되도록 할 수 있다. 이러한 구현예에서, 컨텐츠 관리 시스템(108)은 리소스들(예를 들어, 웹 페이지, 애플리케이션 등)의 하나 이상의 컨텐츠 인터페이스들에 게재될 컨텐츠를 결정할 수 있다. 컨텐츠 관리 시스템(108)은 제 3 자 컨텐츠 제공자들 사이에서 컨텐츠 경매를 수행하여 어떠한 제 3 자 컨텐츠가 사용자 디바이스(104)에 제공될 것인지를 결정하도록 구성될 수 있다. 경매 당첨자는 입찰 금액 및 품질 스코어(즉, 사용자 디바이스(104)의 사용자가 컨텐츠를 클릭할 가능성의 척도)에 기초하여 결정될 수 있다. 일부 구현예에서, 컨텐츠 관리 시스템(108)은 컨텐츠 제공자들이 컨텐츠 캠페인을 생성할 수 있게 한다. 캠페인은 최소 및 최대 입찰 금액, 목표 입찰 금액, 및/또는 하나 이상의 예산 금액(예를 들어, 일일 예산, 주간 예산, 총 예산 등)과 같은 임의의 개수의 파라미터를 포함할 수 있다.
이미지 관리 시스템(120)은 하나 이상의 프로세서들(예를 들어, 임의의 범용 또는 특수 목적 프로세서)을 포함할 수 있고, 하나 이상의 일시적 및/또는 비 일시적 저장 매체들 및/또는 메모리 디바이스들(예를 들어, 자기 스토리지, 광학 스토리지, 플래시 스토리지, RAM 등과 같은 임의의 컴퓨터 판독 가능 저장 매체)을 포함 및/또는 이들에 동작 가능하게 연결될 수 있다. 다양한 구현예에서, 이미지 관리 시스템(120) 및 컨텐츠 관리 시스템(108)은 개별 시스템으로서 구현될 수 있거나 단일 시스템 내에 통합될 수 있다(예를 들어, 컨텐츠 관리 시스템(108)은 이미지 관리 시스템(120)의 기능들/능력들의 일부 또는 전부를 통합하도록 구성될 수 있다).
이미지 관리 시스템(120)은 데이터베이스(130)에 통신 가능하고 동작 가능하게 연결될 수 있다. 이미지 관리 시스템(120)은 데이터베이스(130)에 정보를 질의하고 데이터베이스(130)에 정보를 저장하도록 구성될 수 있다. 다양한 구현예에서, 데이터베이스(130)는 다양한 일시적 및/또는 비 일시적 저장 매체들을 포함한다. 저장 매체들은 자기 스토리지, 광학 스토리지, 플래시 스토리지, RAM 등을 포함할 수 있지만 이에 국한되는 것은 아니다. 데이터베이스(130) 및/또는 이미지 관리 시스템(120)은 다양한 API들을 사용하여 데이터베이스 기능(즉, 데이터베이스(130)에 저장된 데이터 관리)을 수행할 수 있다. API들은 SQL, ODBC, JDBC 등일 수 있지만 이에 국한되는 것은 아니다.
이미지 관리 시스템(120)은 네트워크(102)를 통해 환경(100)에 도시된 임의의 디바이스 또는 시스템과 통신하도록 구성될 수 있다. 이미지 관리 시스템(120)은 네트워크(102)로부터 정보를 수신하도록 구성될 수 있다. 정보는 브라우징 이력들, 쿠키 로그들, 텔레비전 광고 데이터, 인쇄된 게재 광고 데이터, 라디오 광고 데이터, 및/또는 온라인 광고 활동 데이터를 포함할 수 있다. 이미지 관리 시스템(120)은 사용자 디바이스들(104)이 네트워크(102) 상에서 갖는 상호 작용들을 수신 및/또는 수집하도록 구성될 수 있다.
이미지 소스들(110)은 이미지들(예를 들어, 이미지(132))을 생성 및/또는 저장하는 시스템들일 수 있다. 이미지 제어기(122)는 제 3 자 시스템(예를 들어, 이미지 소스들(110))으로부터 이미지(132)를 수신할 수 있다. 제 3 자 시스템은 판매자, 제조업체, 및/또는 임의의 다른 엔티티 또는 시스템일 수 있다. 일부 실시예에서, 이미지 관리 시스템(120) 자체는 이미지를 생성 및/또는 이미지 저장 시스템으로부터 이미지를 검색한다. 이미지는 제품의 이미지일 수 있다. 일부 실시예에서, 이미지는 라인 아트 이미지들(line art images), 예를 들어, 다이어그램들, 맵들, 카툰들, 특정 이미지 피사체 등에 초점을 둔 스톡 사진(stock photography)일 수 있다. 본원에 기술된 방법은 임의의 타입의 이미지에 적용될 수 있다.
이미지 관리 시스템(120)은 다양한 메트릭 또는 처리된 이미지들과 관련된 정보 및/또는 통지들을 컨텐츠 제공자 디바이스들(106)에 전송하도록 구성될 수 있다. 이것은 컨텐츠 제공자 디바이스들(106) 중 하나의 사용자로 하여금 이미지 관리 시스템(120)이 결정 및/또는 생성하는 다양한 메트릭 또는 이미지들을 검토하게 할 수 있다. 또한, 이미지 관리 시스템(120)은 다양한 메트릭을 사용하여 사용자와의 접촉을 위한 적절한 시간을 식별하거나 또는 다양한 미디어 채널들(예를 들어, 텔레비전 광고, 인터넷 광고, 라디오 광고, 등) 상에서 소비할 적절한 양(예를 들어, 최적의 혼합 미디어 소비량)을 식별할 수 있다. 이미지 관리 시스템(120)은 컨텐츠 관리 시스템(108)이 특정 시간에 특정 사용자와 접촉해야 하고/하거나 컨텐츠 캠페인이 특정 파라미터들로 작동한다는 것을 나타내는 메시지가 컨텐츠 관리 시스템(108) 및/또는 컨텐츠 제공자 디바이스(106)로 전송되게 할 수 있다. 이는 컨텐츠 관리 시스템(108)이 그에 따라 컨텐츠 경매들을 관리하고 및/또는 다양한 시스템 부하들을 식별하게 할 수 있다.
이미지 관리 시스템(120)은 이미지 관리 시스템(120)의 다양한 기능들을 수행하도록 구성된 하나 이상의 모듈들(즉, 프로세서에 의해 실행 가능한 컴퓨터 판독 가능 명령어들) 및/또는 회로들(즉, ASICs, 프로세서 메모리 조합들, 로직 회로들, 등)을 포함할 수 있다. 일부 구현예에서, 모듈들은 알파 투영 회로(124), 강제 투명성 회로(126), 및 이미지 블렌딩 회로(128)를 포함하는 것으로 도시된 이미지 제어기(122)일 수 있거나 이를 포함할 수 있다.
이미지 제어기(122)는 데이터베이스(130)와 통신 및/또는 데이터베이스(130)를 관리하도록 구성될 수 있다. 이미지 제어기(122)는 데이터베이스(130)로부터 이미지들 및/또는 임의의 다른 데이터를 저장 및/또는 검색하도록 구성될 수 있다. 이미지 제어기(122)는 이미지 소스들(110)로부터 다양한 이미지들을 수신하고 수신된 이미지들을 데이터베이스(130)에 저장하도록 구성될 수 있다. 이미지 소스들(110)은 판매자, 아티스트, 사진사, 및/또는 이미지들을 가질 수 있는 임의의 다른 엔티티를 위한 시스템(예를 들어, 서버, 사용자 디바이스(예를 들어, 사용자 디바이스들(104)), 이미지 데이터베이스, 및/또는 임의의 다른 컴퓨팅 또는 저장 디바이스)일 수 있다. 이미지 제어기(122)는 이미지 소스들(110)로부터 수신한 이미지를 이미지(132)로서 저장하도록 구성될 수 있다.
이미지(132)는 RGB 또는 RGBA 이미지일 수 있다. 알파 투영 회로(124)는 이미지(132)의 픽셀들에 대한 알파 값을 생성하고/하거나 이미지(132)의 픽셀들에 대해 이미 존재하는 알파 채널 값을 조정함으로써 이미지(132)에 대한 알파 투영을 수행하도록 구성될 수 있다. 알파 투영 회로(124)가 수행하도록 구성될 수 있는 알파 투영은 알파 투영된 이미지(136)를 생성할 수 있다.
알파 투영된 이미지(136)는 알파 투영 회로(124)에 의해 수행된 알파 투영으로 인해 알파 투영된 이미지(136)의 픽셀들에 대해 선택된 알파 채널 값들을 가질 수 있다. 강제 투명성 회로(126)는 알파 투영된 이미지(136)에 기초하여 강제 투명성 이미지(138)를 생성하도록 구성될 수 있다. 강제 투명성 회로(126)는 투명성 함수 및 알파 투영된 이미지(136)의 엣지로부터의 각 픽셀의 거리를 사용하여 알파 투영된 이미지(136)의 픽셀들에 대한 알파 채널 값들을 조정하도록 구성될 수 있다. 투명성 함수는 알파 투영된 이미지(136)의 픽셀에 대한 입력 알파 채널 값을 취할 수 있고 이 픽셀에 대한 출력 알파 채널 값을 생성할 수 있으며, 이것은 알파 투영된 이미지(136)의 픽셀들에 대한 알파 채널 값들을 조정할 수 있다.
이미지 블렌딩 회로(128)는 블렌딩된 이미지(140)를 생성하도록 구성될 수 있다. 블렌딩된 이미지(140)는 사용자 디바이스들(104)에 제공되는 컨텐트 항목, 쇼핑 웹 사이트 상의 제품 리스트, 및/또는 사용자에게 디스플레이되는 임의의 다른 이미지일 수 있고/있거나 그에 포함될 수 있다. 이미지 블렌딩 회로(128)는 배경 이미지(예를 들어, 배경 이미지(134)) 위에 강제 투명성 이미지(138) 또는 알파 투영된 이미지(136)를 디스플레이함으로써 블렌딩된 이미지(140)를 생성하도록 구성될 수 있다. 배경 이미지(134)는 솔리드 컬러(solid color), 예를 들어, 백색, 밝은 회색, 및/또는 임의의 다른 컬러일 수 있다. 일부 구현예에서, 배경 이미지(134)는 패턴 또는 임의의 다른 타입의 배경 이미지일 수 있다. 이미지 블렌딩 회로(128)는 알파 투영된 이미지(136) 또는 강제 투명성 이미지(138)를 배경 이미지(134)와 알파 블렌딩함으로써 블렌딩된 이미지(140)를 생성하도록 구성될 수 있다.
일부 구현예에서, 사용자 디바이스들(104)은 이미지 제어기(122)를 포함할 수 있고/있거나 이미지 제어기(122)의 기능의 일부 및/또는 모두를 수행할 수 있다. 사용자 디바이스들(104)은 하나 이상의 프로세서들, 하나 이상의 메모리 디바이스들(예를 들어, RAM, ROM, 등), 및/또는 임의의 다른 비 일시적 또는 일시적 저장 매체를 포함하는 프로세싱 회로를 포함할 수 있다. 사용자 디바이스들(104)의 프로세싱 회로는 이미지 제어기(122) 및/또는 이미지 제어기(122)의 기능 중 일부를 구현하도록 구성될 수 있다. 이와 관련하여, 이미지 제어기(122)의 일부 및/또는 모든 기능은 클라우드에서의, 가령, 이미지 관리 시스템(120)에 의해서가 아니라, 사용자 디바이스들(104)에 의해 로컬로 수행될 수 있다. 사용자 디바이스들(104)은 도 22를 참조하여 기술된 바와 같이 컴퓨팅 시스템(2200)의 실시예일 수 있고/있거나 이를 포함할 수 있다.
일부 구현예에서, 이미지 관리 시스템(120)은 알파 투영된 이미지(136) 및/또는 강제 투명성 이미지(138)를 생성한다. 이미지 관리 시스템(120)은 알파 투영된 이미지(136) 및/또는 강제 투명성 이미지(138)를 네트워크(102)를 통해 사용자 디바이스들(104)에 전송하도록 구성될 수 있다. 이미지 관리 시스템(120)은 이미지들을 사용자 디바이스들(104)에 전송하여 컨텐츠 항목에 대해, 쇼핑 웹 사이트 인터페이스에서, 및/또는 임의의 타입의 웹 사이트 상의 이미지로서 디스플레이되게 할 수 있다. 사용자 디바이스들(104)은 배경 이미지 및/또는 배경 컬러, 예를 들어, 뷰포트, 컨텐츠 항목, 등, 및/또는 이미지 관리 시스템(120)으로부터 수신될 수 있는 배경 이미지(134)와의 수신된 이미지들(예를 들어, 알파 투영된 이미지(136) 및/또는 강제 투명성 이미지(138))의 알파 블렌딩을 수행하도록 구성될 수 있다.
일 예로서, 사용자 디바이스(104)는 사용자 디바이스(104) 상에서 실행되는 브라우저에서 웹 사이트 및/또는 웹 사이트 상의 컨텐츠 항목을 디스플레이할 수 있다. 이미지 디바이스(104)는 알파 투영된 이미지(136) 및/또는 강제 투명성 이미지(138)를 네트워크(102)를 통해 이미지 제어기(122)로부터 수신할 수 있다. 이미지들은 웹 페이지 및/또는 웹 페이지에 디스플레이될 이미지를 요청하는 사용자 디바이스(104)의 웹 브라우저에 응답하여 사용자 디바이스들(104)로 수신 및/또는 전송될 수 있다. 사용자 디바이스(104)는 사용자 디바이스 상에서 실행되는 웹 브라우저가 수신된 투명성 이미지를 웹 브라우저에 디스플레이된 웹 페이지 상에 렌더링하는 것에 응답하여 수신된 투명 이미지를 배경 이미지 및/또는 배경 컬러와 알파 블렌딩할 수 있다.
이미지 제어기(122)는 이미지들을 함께 블렌딩하기 위한 알파 블렌딩을 수행하거나 알파 투영을 수행하도록 구성될 수 있다. 구체적으로, 알파 투영 회로(124)는 알파 블렌딩(예를 들어, 식 1에서 정의된 바와 같은 알파 블렌딩)을 이용함으로써 알파 투영을 수행하고 알파 투영된 이미지(136)를 생성하도록 구성될 수 있다. 또한, 이미지 블렌딩 회로(128)는 알파 투영된 이미지(136) 또는 강제 투명성 이미지(138)를 배경 이미지(134)와 알파 블렌딩함으로써 블렌딩된 이미지(140)를 생성하도록 구성될 수 있다.
알파 블렌딩은 다른 컬러 위에 투명한 픽셀을 렌더링하는 데 사용될 수 있다. RGB (불투명) 배경 컬러(Br, Bg, Bb) 위의 전경 RGBA 컬러(Fr, Fg, Fb, Fa)의 경우, 알파 블렌딩된 결과(Rr, Rg, Rb)는 가중치로서
Figure 112019123057079-pct00001
를 사용하는 두 개의 컬러의 RGB 공간 선형 보간일 수 있다. 예를 들어, 적색 채널은 다음의 (식 1)과 동일할 것이다:
Figure 112019123057079-pct00002
녹색 및 청색 채널들에 대한 값들은 유사할 수 있고 식 1에 의해 결정될 수 있다. 본원에서 논의된 방법들과 관련하여, 투명한 컬러들에 대한 적색, 녹색, 청색, 알파(RGBA) 표현이 이미지들을 위해 사용되는 것으로 가정될 수 있다. 일부 구현예에서, 각각의 채널 값이 0 내지 255 범위의 8-비트의 부호없는 정수인 것으로 또한 가정될 수 있으며, 여기서 알파 0은 완전 투명도를 나타내고 알파 255는 완전 불투명도를 나타낸다. 그러나, 본원에 기술된 방법들은 다른 넘버링 시스템(numbering systems)(예를 들어, [0.0, 1.0] 범위의 부동 소수점 값들)을 사용할 수 있다.
알파 채널은 이미지 합성을 위해 사용될 수 있다. 이것은 컬러를 결정한 이미지 피사체에 의해 얼마나 많은 픽셀이 점유되었는지를 분류하는 데 사용될 수 있으므로, 큰 솔리드 객체들의 경우, 대부분의 전경 픽셀들은 완전히 불투명해야 하고 대부분의 배경 픽셀들은 완전히 투명해야 하며, 중간 값들은 픽셀이 전경 및 배경 모두와 부분적으로 겹치는 객체 경계들에서만 존재해야 한다. 투명성은 또한 "이미지 페더링(image feathering)" 기술에서와 같이, 두 개의 이미지를 매끄럽게 블렌딩하는 데 보다 창의적인 방식으로 사용될 수 있다.
이제 도 2를 참조하면, 예시적인 구현예에 따라, 이미지에 대해 알파 투영을 수행하고 알파 투영된 이미지에 투명성을 강제하기 위한 프로세스(200)가 도시되어 있다. 이미지 제어기(122), 구체적으로 알파 투영 회로(124), 강제 투명성 회로(126), 및 이미지 블렌딩 회로(128)는 프로세스(200)를 수행하도록 구성될 수 있다. 또한, 본원에 기술된 임의의 컴퓨팅 디바이스는 프로세스(200), 예를 들어, 도 22를 참조하여 기술된 컴퓨터 시스템(2200)을 수행하도록 구성될 수 있다. 본원에 기술된 방법, 구체적으로 프로세스(300)의 실행은 고속일 수 있고 입력 픽셀들의 수와 선형적으로 스케일링될 수 있다. 메모리가 출력 버퍼에 할당되는 것을 제외하고는, 메모리 사용은 본원에 기술된 방법들에 대해서는 무시될 수 있다.
단계(202)에서, 이미지 제어기(122)는 하나 이상의 이미지를 저장하는 이미지 저장 시스템으로부터 이미지(예를 들어, 이미지(132))를 수신하도록 구성될 수 있다. 일부 실시예에서, 이미지 제어기(122)는 제 3 자 시스템(예를 들어, 이미지 소스들(110))으로부터 이미지(132)를 수신한다. 일부 실시예에서, 이미지 제어기(122)는 데이터베이스(130), 사용자 디바이스들(104), 및/또는 컨텐츠 제공자 디바이스(106)로부터 이미지(132)를 검색한다.
단계(204)에서, 알파 투영 회로(124)는 수신된 이미지(132)를 알파 투영하도록 구성될 수 있다. 수신된 이미지(132)의 알파 투영은 알파 투영된 이미지(136)를 생성할 수 있다. 수신된 이미지(132)가 알파 채널 값들을 갖지 않는 RGB 이미지인 경우, 이미지를 알파 투영하는 것은 수신된 이미지(132)의 각 픽셀의 알파 채널 값을 결정하는 것을 포함할 수 있다. 수신된 이미지(132)의 일부 또는 모든 픽셀이 이미 알파 채널 값을 갖는 경우, 알파 투영 회로(124)는 완전 불투명도(예컨대, 255) 미만의 알파 채널 값을 갖는 수신된 이미지(132)의 임의의 픽셀을 백색 배경과 알파 블렌딩하여, 단계(204)를 수행하기 전에 상기 픽셀들에 대한 완전한 불투명성을 보장할 수 있다.
이미지(132)의 픽셀들을 알파 투영하는 것은 투영 솔리드(projection solid)로 RGB 컬러 볼륨을 정의하는 것을 포함할 수 있으며, 즉, 컬러 볼륨은 RGB 큐브 내의 투영 솔리드의 볼륨일 수 있다. 이미지(132)를 알파 투영하는 것은 정의된 컬러 볼륨 내에 있는 이미지(132)의 각각의 픽셀을 투영 솔리드의 표면에 투영하는 것과, 투영된 컬러를 디폴트 컬러(예를 들어, 백색, 디폴트 회색)와 알파 블렌딩하여 각각의 픽셀의 오리지널 컬러가 달성되도록 각각의 픽셀에 대해 알파 채널 값을 설정하는 것을 추가로 포함할 수 있다. 알파 투영 회로(124)에 의해 수행될 수 있는 알파 투영은 도 3의 프로세스(300) 및 본원의 다른 곳에서 더 상세히 기술된다.
단계(206)에서, 강제 투명성 회로(126)는 단계(204)에서 생성된 알파 투영된 이미지(136)에 대한 투명성을 강제하여 강제 투명성 이미지(138)를 생성하도록 구성될 수 있다. 알파 투영된 이미지(136)에 대한 투명성을 강제하는 것은 제 2 프로젝션 솔리드로 제 2 RGB 컬러 볼륨을 정의하는 것을 포함할 수 있다. 제 2 컬러 볼륨 내에 있는 알파 투영된 이미지(136)의 픽셀들은 강제 투명성 회로(126)에 의해 선택될 수 있다.
선택된 픽셀들은 강제 투명성 함수를 갖는 강제 투명성 회로(126)에 의해 조정된 각각의 알파 채널 값들을 가질 수 있다. 강제 투명성 함수는 선택된 알파 채널 값들에 대한 조정을 정의할 수 있다. 강제 투명성 함수는 선택된 이미지들의 어느 알파 채널 값들이 조정되는지, 그리고 그 값들이 조정되는 양을 정의하는 강제 임계치 및 보존 임계치를 포함할 수 있다. 강제 투명성은 도 4의 프로세스(400) 및 본원의 다른 곳을 참조하여 더 상세히 기술된다. 강제 투명성 함수는 도 14의 차트(1400) 및 본원의 다른 곳을 참조하여 기술된다.
단계(208)에서, 이미지 블렌딩 회로(128)는 컨텐츠 항목들, 웹 사이트 배너들, 온라인 쇼핑 인터페이스들, 및/또는 임의의 다른 인터페이스들에 디스플레이하기 위해 블렌딩된 이미지(140)를 생성하도록 구성될 수 있다. 이미지 블렌딩 회로(128)는 전경 이미지로서 강제 투명성 이미지(138)(또는 알파 투영된 이미지(136)) 및 배경으로서 배경 이미지(134)와의 블렌딩된 이미지(140)를 생성하도록 구성될 수 있다. 이미지 블렌딩 회로(128)는 강제 투명성 이미지(138)와 배경 이미지(134)를 알파 블렌딩함으로써 블렌딩된 이미지(140)를 생성하도록 구성될 수 있다. 일부 실시예에서, 배경 이미지(134)는 (예를 들어, 도 5에 도시된 바와 같이) 강제 투명성 이미지(138)보다 더 큰 치수들을 갖는다. 이미지 블렌딩 회로(128)는 이미지들을 합성하기 전에 강제 투명성 이미지(138)를 배경 이미지(134)의 중앙에 위치시키도록 구성될 수 있다.
단계(210)에서, 이미지 제어기(122)는 블렌딩된 이미지(140)가 컨텐츠 항목들에 또는 웹 사이트들 상에 디스플레이되게 구성될 수 있다. 예를 들어, 블렌딩된 이미지(140)는 컨텐츠 데이터베이스(107)의 컨텐츠 항목들(112) 내에 포함될 수 있다. 블렌딩된 이미지(140)를 갖는 이러한 컨텐츠 항목들(112)은 사용자 디바이스들(104)에 제공될 수 있다. 일부 실시예에서, 블렌딩된 이미지(140)는 쇼핑 웹 사이트와 같은 웹 사이트에 디스플레이될 수 있다.
이제 도 3을 참조하면, 예시적인 구현예에 따라, 알파 투영 프로세스를 보다 상세하게 예시하는 프로세스(300)가 도시되어 있다. 프로세스(300)는 도 2를 참조하여 기술된 프로세스(200)의 단계(204)를 수행하기 위한 프로세스일 수 있다. 이미지 제어기(122), 특히 알파 투영 회로(124)는 프로세스(300)를 수행하도록 구성될 수 있다. 또한, 본원에 기술된 임의의 컴퓨팅 디바이스는 프로세스(300), 예를 들어, 컴퓨팅 시스템(2200)을 수행하도록 구성될 수 있다. 프로세스(300)의 단계(302)에서, 제 1 투영 솔리드에 기초하여 적색, 녹색, 청색(RGB) 컬러 큐브 내의 제 1 컬러 볼륨을 정의한다. 투영 솔리드는 투영 반경에 의해 정의된 솔리드, 예를 들어, 구체, 직사각형 프리즘, 사면체, 및/또는 임의의 다른 형상일 수 있다. 이들 투영 솔리드들의 예는 도 19, 도 20, 및 도 21에서 볼 수 있다. 투영 솔리드는 투영 반경이 투영되는 투영 원점 컬러에 기초하여 정의될 수 있다.
단계(304)에서, 제 1 컬러 볼륨 내에 있는 이미지의 픽셀들은 제 1 투영 솔리드에 기초하여 오리지널 컬러로부터 제 2 컬러로 투영된다. 투영은 투영 컬러 원점으로부터 오리지널 컬러로의 라인을 생성함으로써 수행될 수 있다. 투영 솔리드의 표면, 즉 "투영 표면"과 교차하는 라인의 투영은 제 2 컬러를 정의할 수 있다. 이는 도 6을 참조하여 더 상세히 기술된다.
일부 구현예에서, 투영 솔리드는 연결된 적색, 녹색, 및 청색(RGB) 포인트들의 세트이다. 이 포인트들의 세트에서, 직선 선분은 투영 솔리드 내의 임의의 포인트와 배경 컬러 세트 내의 임의의 포인트 사이에서 그려질 수 있다. 배경 컬러 세트는 투영 원점 컬러를 포함할 수 있고, 투영 솔리드의 연결된 RGB 포인트들의 서브 세트일 수 있다. 투영 솔리드의 연결된 RGB 포인트들의 세트는 배경 컬러 세트의 슈퍼 세트(superset)일 수 있다. 또한, 상기 선분은 연결된 RGB 포인트들의 세트의 컬러들만을 포함할 수 있다. 일부 구현예에서, 투영 솔리드는 큐브, 구체, 직사각형 프리즘, 또는 사면체와 같은 3 차원 솔리드이다. 투영 솔리드는 투영 원점 컬러(예를 들어, 백색)로부터 연장되는 투영 반경에 의해 정의될 수 있다. 투영 반경은 투영 솔리드의 투영 볼륨 및 투영 표면을 정의할 수 있다.
알파 투영 회로(124)는 투영된 픽셀들에 대한 알파 채널 값을 선택 및/또는 조정(대체)하도록 구성될 수 있다. 알파 투영 회로(124)는, 투영 원점 컬러인 선택된 배경 컬러(예를 들어, 백색)와 알파 블렌딩될 때의 제 2 컬러가 오리지널 컬러가 되도록 하는 알파 채널 값을 결정함으로써 투영된 픽셀들에 대한 알파 채널 값을 결정하도록 구성될 수 있다.
본원에 기술된 바와 같이, 축 정렬된 직사각형 프리즘 내부의 이산 RGB 포인트들의 집합체와 연속 공간에서의 실제 직사각형 프리즘 사이의 명백한 유추에 대한 암시적 의존이 있을 수 있다. 상기 연속 공간에서, 볼륨의 "표면"이 무엇인지, 그리고 그 표면과 "광선"을 교차시키는 것이 무엇을 의미하는지는 명확할 수 있다.
이러한 "투영"을 정의하는 여러 가지 방식이 있을 수 있다. 예를 들어, 투영된 볼륨에 속하는 RGB 그리드 포인트들과 그렇지 않은 RGB 그리드 포인트들을 분리하는 연속 표면이 정의된다. 그러한 것을 수행하기 위한, 가령, "마칭 큐브(marching cubes)" 메시 알고리즘과 같은 여러 가지 기술들이 있다. 그 후에, 연속 공간에서 광선-표면 교차점의 정의에 의존할 수 있다.
다른 예는 한 RGB 포인트에서 다른 RGB 포인트로의 광선을 구분하는 것일 수 있고, 그에 따라 광선 자체는 RGB 포인트들로 구성되게 된다. (구분은 컴퓨터 그래픽 분야에서 공지된 여러 라인 드로잉 알고리즘들(line-drawing algorithms)을 통해 수행될 수 있다.) 그런 다음, 이 구분된 광선을 따른 어떠한 포인트에서 광선이 투영된 볼륨의 "표면"과 교차하는지를 결정할 수 있다. 또한, 이를 수행하는 여러 가지 방식이 존재하는데, 예를 들어, 소스로부터의 거리가 어떠한 거리 임계치 미만인 광선 상의 최종 포인트가 존재하며, 그 광선 상의 최종 포인트는 투영된 볼륨에 속하게 되는 등의 방식이 있다.
주목되는 것은, 주어진 투영된 볼륨에 대한 투영 표면 및 투영 소스는 투영 함수에 의해 그 투영된 볼륨 내의 임의의 입력들에 출력될 수 있는 모든 포인트들의 세트에 불과할 수 있다는 것이다(투영 소스를 제외하면, 그의 RGB 투영은 정의되지 않았지만 항상 완전한 투명성이므로 문제로 되지는 않는다).
단계(306)에서, 알파 투영 회로(124)는 투영된 픽셀들에 대한 알파 채널 값들을 선택하도록 구성될 수 있다. 알파 투영 회로(124)는, 투영 원점 컬러와 블렌딩될 제 2 컬러가 오리지널 컬러가 되도록 하는 알파 채널 값을 결정함으로써 투영된 픽셀들의 각각에 대한 적절한 알파 채널 값을 결정하도록 구성될 수 있다. 투영 원점 컬러는 완전한 투명성이 요구되는 컬러일 수 있다. 이러한 이유로, 이미지의 모든 픽셀들은 투영 원점 컬러인 경우 완전 투명성으로 할당될 수 있다. 일부 구현예에서, 투영 원점 컬러는 백색 또는 밝은 회색이다. 그러나, 투영 원점 컬러는 임의의 컬러일 수 있다.
이제 도 4를 참조하면, 예시적인 구현예에 따라, 투명성을 강제하는 프로세스를 보다 상세하게 예시하는 프로세스(400)가 도시되어 있다. 프로세스(400)는 도 2를 참조하여 기술된 프로세스(200)의 단계(206)를 수행하기 위한 프로세스일 수 있다. 이미지 제어기(122), 특히 강제 투명성 회로(126)는 프로세스(400)를 수행하도록 구성될 수 있다. 또한, 본원에 기술된 임의의 컴퓨팅 디바이스는 프로세스(400), 예를 들어, 도 22를 참조하여 기술된 컴퓨팅 시스템(2200)을 수행하도록 구성될 수 있다.
단계(402)에서, 강제 투명성 회로(126)는 제 2 투영 솔리드에 기초하여 RGB 컬러 큐브 내의 제 2 컬러 볼륨을 정의하도록 구성될 수 있다. 제 2 컬러 볼륨 및/또는 제 2 투영 솔리드는 제 1 컬러 볼륨 및 제 1 투영 솔리드와 동일하거나 유사할 수 있다. 단계(404)에서, 강제 투명성 회로(126)는 제 2 컬러 볼륨 내에 있는 이미지(예를 들어, 이미지(132) 및/또는 알파 투영된 이미지(136))의 픽셀들을 선택하도록 구성될 수 있다.
단계(406)에서, 강제 투명성 회로(126)는 이미지의 선택된 픽셀들의 알파 채널 값들을 조정하도록 구성될 수 있다. 강제 투명성 회로(126)는 투명성 함수를 사용하여 이미지의 알파 채널 값들을 조정하도록 구성될 수 있다. 투명성 함수는 선택된 픽셀들의 각각의 입력 알파 채널 값에 대한 출력 알파 채널 값을 정의하는 하나 이상의 함수일 수 있다. 투명성 함수는 도 14에 그래픽으로 도시되어 있다. 투명성 함수는 하나 이상의 비 감소 함수(non-decreasing functions)일 수 있다. 투명성 함수는 또한 하나 이상의 선형 또는 비선형 함수일 수 있다. 투명성 함수는 강제 임계치 및 보존 임계치에 의해 정의될 수 있다. 강제 임계치 및 보존 임계치는 입력 알파 채널 값들일 수 있다. 선택된 픽셀의 입력 알파 채널 값이 강제 임계치 미만이면, 제 1 투명성 함수는 그 픽셀에 적용될 수 있다. 선택된 픽셀의 입력 알파 채널 값이 강제 임계치와 보존 임계치 사이에 있다면, 제 2 투명성 함수가 그 픽셀에 적용될 수 있다. 그러나, 선택된 알파 채널 값의 입력 알파 채널 값이 보존 임계치를 초과하면, 알파 채널 값은 전혀 변경되지 않을 수 있다.
강제 투명성 함수는 이미지의 엣지로부터의 이미지의 선택된 픽셀들의 거리를 사용할 수 있다. 이미지의 엣지에 더 가까운 픽셀들은 이미지의 엣지에서 더 멀리 있는 픽셀들보다 더 적극적으로 조정될 수 있다. 이것은 다수의 라인에 의해 정의되고, 이 라인은 도 14에 도시된 항등 변환(identity transformation)에 근접한다(즉, 입력은 이미지의 엣지로부터 특정 거리에서의 출력과 동일하다).
투명성 함수는 하나 이상의 함수일 수 있으며, 예를 들어, 투명성 함수는 구간별 함수(piecewise function)일 수 있다. 이 함수들은 선형 또는 비선형일 수 있으며, 이 함수들은 임의의 순서일 수 있다. 투명성 함수는 비 감소 함수일 수 있다. 예를 들어, 입력 알파 채널 값 및 거리 입력과 관련하여, 투명성 함수는 알파 입력 값을 증가시키고 거리를 증가시키기 위해 증가하는 알파 값들을 출력할 수 있다. 또한, 투명성 함수들의 출력은 0과 입력 알파 채널 값 사이일 수 있다.
투명성 함수는 강제 임계치 및 보존 임계치에 기초하여 정의될 수 있다. 투명성 함수의 출력은 보존 임계치 및 강제 임계치에 기초할 수 있다. 보존 임계치 및 강제 임계치는 입력 알파 값이 강제 임계치 미만인지, 강제 임계치와 보존 임계치 사이에 있는지, 또는 보존 임계치보다 큰지에 기초하여 입력 픽셀 알파 값의 특정 처리를 정의할 수 있다. 보존 임계치는 강제 임계치보다 큰 알파 채널 값일 수 있다. 또한, 입력 알파 채널 값이 강제 임계치와 보존 임계치 사이에 있다면, 알파 채널 값은 강제 임계치보다 작은 입력 알파 채널 값보다 높은 알파 채널 값으로 조정될 수 있다. 또한, 투명성 함수는 조정되지 않는 보존 임계치보다 큰 알파 채널 값을 조정할 수 없다.
일부 구현예에서, 투명성 함수는 구간별 선형 함수이며, 즉 다중 선형 투명성 함수들이다. 이 선형 함수들은 특정 범위의 입력 알파 값들에 적용할 수 있다. 예를 들어, 제 1 선형 함수는 제로에서 강제 임계치의 범위의 입력 값에 대해 알파 채널 값들을 조정하는 데 사용될 수 있다. 제 2 선형 함수는 강제 임계치와 보존 임계치 사이에 있는 알파 채널 값들에 적용될 수 있다.
이제 도 5를 참조하면, 배경 이미지(134) 위에 디스플레이되는 하나 이상의 이미지(132)와 함께 컨텐츠 항목(500)(예를 들어, 컨텐트 항목(112)과 동일 및/또는 유사한 컨텐츠 항목)은 솔리드 백색 컬러로 디스플레이된다. 제품 이미지들(502, 504, 및 506)은 배경 이미지(134) 위에 디스플레이된다. 도 5는 백색 카드 상에 3 개의 예시적인 이미지를 갖는 컨텐츠 유닛의 일 예를 도시한다. 제품 이미지(506)인 도 5의 좌측 이미지는 모든 이미지에 대해 이상적으로 원할 수 있는 타입의 회색 배경을 갖는 이미지이다. 제품 이미지(502)인 도 1의 중간 이미지는 전술한 제 1 문제를 나타내는 백색 배경 이미지이다. 제품 이미지(504)인 도 1의 우측 이미지는 전술한 제 2 문제를 나타내는, 배경이 완전한 백색이 아닌 비 직사각형 이미지(non-rectangular image)이다. 기술적으로, 두 문제 모두는 투명성을 도입하지 않고도 해결될 수 있다. 정적 컬러 리매핑을 수행할 수 있고 배경 컬러의 패딩을 조금 더 추가할 수 있지만 본원에 기술된 방법들에 의해 제공되는 투명한 배경은 (많은 쇼핑 웹사이트의 규모로 볼 때 원하는 배경당 수백 TB의 파일을 의미할 수 있는) 많은 중복성 파일을 저장하지 않고도 여러 배경 회색 음영들로 자유롭게 실험할 수 있다.
도 2, 도 3, 및 도 4를 다시 참조하면, 본원에 기술된 방법들은 제 1 스테이지 방법 및 제 2 스테이지 방법으로서 구현될 수 있다. 제 1 스테이지 방법은 알파 투영 스테이지(예를 들어, 프로세스(300))이고, 제 2 스테이지 방법은 이미지에 대해 투명성을 강제하기 위한 스테이지(예를 들어, 프로세스(400))이다. 제 1 스테이지 방법은 단일 파라미터인, [1, 255] 범위의 "투영 반경", 즉 채널 값> 0에 따라 달라질 수 있다. 측면 길이가 해당 반경과 같고 최대 모서리가 백색인 RGB 큐브에서, 해당 큐브의 모든 컬러들은 백색으로부터 대향하는 큐브면들 중 하나로 투영된다. 3 개의 대향하는 큐브면들은 집합적으로 투영 표면으로 지칭될 수 있고, 그 큐브의 내부는 투영 볼륨으로 지칭될 수 있거나, 또는 이와는 달리 컬러 볼륨으로 지칭될 수 있다.
투영 표면에 투영되는 컬러 볼륨 내의 각각의 RGB 컬러에는 알파 값이 할당될 수 있어서, 이것이 백색 배경 위에 표시될 때, 알파 블렌딩은 대략 오리지널 RGB 컬러를 생성하게 된다. 도 6 내지 도 11은 (예를 들어, 청색이 최대치인 평면에서) 오직 적색 및 녹색 좌표(예를 들어, 녹색은 z 축에 있고, R은 y 축에 있고 B는 x에 있을 수 있음)에서만의 투영을 도시한다. 그러나, 본원의 방법들은 3 차원 RGB 컬러 큐브에 적용되며 본원에서 논의되는 2 차원 예에 국한되지 않음을 이해해야 한다.
도 6을 참조하면, 차트(600)는 예시적인 구현예에 따라, 큐브 내부의 포인트가 알파 투영에 의해 제 1 투영 솔리드의 표면(606) 상에서 오리지널 컬러(602)의 백색으로부터 제 2 컬러(604)로 어떻게 투영되는지를 도시한다. 도 6에서, 제 1 컬러 볼륨은 제 1 투영 솔리드에 의해 정의된다. 도 6에서, 컬러 볼륨 및 투영 솔리드는 투영 반경(608)에 대한 값에 의해 정의된다. 투영 솔리드 및 투영 반경에 의해 정의된 제 1 컬러 볼륨 내에 있는 모든 컬러들은 투영 솔리드의 투영 표면 상에 투영될 수 있다. 녹색(투영 표면(610)) 및 청색(투영 표면(606))에 대한 2 개의 투영 표면(610, 606)만이 도 6에 표시되어 있지만, 녹색에 대한 제 3 투영 표면이 존재한다는 것을 이해해야 한다.
도 7을 참조하면, 차트(700)는 예시적인 구현예에 따라, 투영 후에 동일한 알파 채널 값을 수신할 수 있는 사전 투영 포인트들의 라인들을 도시하며, 여기서 보다 백색의 라인들은 보다 낮은 알파 채널 값들에 대응하고 보다 흑색의 라인들은 보다 높은 알파 채널 값들에 대응한다. 주목할 것은 컬러가 큐브 내의 투영 원점 컬러인 백색에 가까울수록, 그 투영 원점 컬러에는 보다 낮은 알파 값이 할당될 수 있다(즉, 보다 더 투명해진다)는 것이다. 극단들에서, 투영된 제 1 컬러 볼륨 외부의 모든 컬러들은 알파 채널 값이 255인 오리지널 RGB 값들로 유지되고, 알파 채널 값이 0인 컬러에는 백색이 리매핑된다. 백색이 투영되는 RGB 값들은 완전히 투명하기 때문에 시각적으로 문제가 되지 않지만, 투영 표면의 반대쪽 모서리로 투영하는 것은 압축에는 좋을 수 있으며, 모든 알파 채널들은 255-투영 반경으로 설정될 수 있고, 다른 모든 투영된 RGB 값은 동일한 값을 가진 적어도 하나의 채널을 갖도록 보장될 수 있다.
이제 도 8 내지 도 9를 참조하면, 예시적인 구현예에 따라, 배경 컬러로 알파 블렌딩된 알파 투영된 이미지의 컬러 매핑을 예시하는 차트들(800 및 900)이 도시되어 있다. 투영 원점 컬러(802)는 이미지를 알파 투영하는 데 사용되는 원점 컬러일 수 있으며, 완전한 투명성을 받는 컬러일 수 있다. 도 9에서, 매핑된 컬러(804)는 알파 블렌딩 후 투영 원점 컬러(802)가 매핑될 컬러를 도시한다. 이 보간된 투명성의 결과로서, 배경 컬러(예를 들어, 솔리드 컬러인 경우 배경 이미지(134)의 컬러)가 백색으로부터 멀어지게 이동함에 따라, 투영된 큐브의 오리지널 백색 모서리가 그에 따라 이동하고, 투영된 큐브의 볼륨은 도 8 내지 도 9에 도시된 바와 같이, 새로운 백색 모서리 위치를 수용하도록 매끄럽게 스쿼징(squish)된다.
이제 도 10 내지 도 11을 참조하면, 차트들(1000 및 1100)은 배경 이미지와 알파 블렌딩된 알파 투영된 이미지에 대한 컬러 매핑 결과들을 도시하며, 알파 투영된 이미지들은 상이한 투영 반경들로 알파 투영된다. 도 10에서, 제 1 투영 반경(1002)이 사용되며, 투영 반경은 255 미만이 된다. 도 11에서, 사용된 투영 반경은 도 10에서보다 크고, 그 투영 반경은 255이다. 제 1 투영 솔리드에 대한 투영 반경의 선택은 컬러 보존 및 대비 보존에 대한 하나의 트레이드 오프를 야기하며, 이는 도 10 내지 도 11에 개략적으로 도시되어 있다. 뷰포트 컬러가 더욱 어두워짐에 따라, 반경이 작을수록 더 적은 컬러들로 변경되지만 투영된 컬러들 간의 대비가 보다 과장되게 손실된다(백색 모서리의 특정 이동의 경우, 더 작게 투영된 큐브는 더 많이 스쿼징(squish)되어야 할 것이다). 반경이 크면 더 넓은 컬러 범위에 걸쳐 백색 위치의 임의의 변화가 분산되고 (그에 따라 대비가 보다 우수하게 보존되지만), 보다 많은 컬러들이 이동하며 밝은 컬러들은 보다 급격하게 어두워질 것이다(적색으로 표시된 내부 화살표들의 상대적 크기 참조).
도 12를 참조하면, 이미지들(1200, 1202, 및 1204)은 상이한 투영 반경들과의 알파 투영 결과들을 도시한다. 도 12에서, 예시적인 구현예에 따라, 반경이 크면 더 넓은 컬러 범위에 걸쳐 백색 위치의 임의의 변화가 분산되지만 보다 많은 컬러들이 이동하고 밝은 컬러들이 보다 급격하게 어두워질 것이라는 효과가 도시된다. 제품 이미지(1200)인 오리지널 이미지는 좌측에 있고, 제품 이미지(1202)인 중간 이미지는 40의 투영 반경으로 생성되었으며, 제품 이미지(1204)인 우측 이미지는 255의 투영 반경으로 생성되었다. 주목할 것은 중간 이미지는 컬러를 유지하는 데 보다 나은 작업을 수행하지만(피부와 백색 상단은 다른 두 개의 이미지 중 어느 것에서보다도 우측 이미지에서 눈에 띄게 어두워짐), 우측 이미지는 오리지널에서의 대비를 유지하는 데 보다 나은 작업을 수행한다는 것이다.
이미 투명한 픽셀들을 갖는 입력 이미지들을 지원하기 위해, 알파<255(최대치)를 갖는 임의의 입력 픽셀들은 백색 배경으로 알파 블렌딩되어 전술한 변환을 적용하기 전에 불투명한 RGB 컬러를 생성할 수 있다. 주목할 것은 알파가 높은 RGBA 입력 픽셀들은 이 알파 블렌딩 후에 백색에 가까운 RGB 컬러들에 매핑될 수 있으므로 알파 백색 변환 후에는 결국 높은 알파 값들을 갖게 된다는 것이다.
이미지의 종횡비가 뷰포트의 종횡비와 완벽하게 매칭되지 않으면, "오버 롱(overlong)" 축이 뷰포트에 정확하게 맞도록 이미지를 스케일링할 수 있지만, 다른 축은 뷰포트 픽셀들로 패딩되어야만 할 것이다. 이러한 현상이 발생하고 패딩된 엣지가 완전히 투명하지 않은 경우(즉, 알파 0), 뷰어는 이미지와 뷰포트 픽셀들 사이의 전환을 볼 수 있게 되어 "풀 블리드(full bleed)" 이미지의 환상을 깨뜨릴 수 있을 것이다. 이 효과는 도 13의 이미지에 도시되어 있다.
이제 도 13을 참조하면, 예시적인 구현예에 따라 패딩된 엣지들이 완전하게 투명하지 않은 효과를 나타내는 제품 이미지들(1300, 1302, 및 1304)이 도시되어 있다. 도 13에서, 제품 이미지(1300)인 오리지널 이미지가 백색 배경과 함께 좌측에 도시되어 있다. 투영을 위한 원점으로서 백색을 사용한 알파 투영(알파 백색 투영)만의 효과는 중앙에 제품 이미지(1302)로 도시되어 있다. 이러한 이유로, 도 2 및 도 4의 프로세스들(200 및 400)을 참조하여 기술된 바와 같은 패딩 엣지 강제 투명성이 수행될 수 있고, 그 결과의 예가 우측 측면 이미지에서 제품 이미지(1304)로 도시되어 있다.
알파 채널 값들은 패딩된 엣지 근처의 0을 향해 더욱 적극적으로 푸시될 수 있으므로, 우측의 제품 이미지(1304)에 도 13에 도시된 것과 유사한 이미지가 생성되어, 이미지 경계들이 있는 장소를 덜 명확하게 한다. 패딩된 엣지들을 따라 모든 픽셀들이 완전히 투명하게 유지되도록 강제되는 것은 아닌데, 이는 일부 높은 알파 픽셀들이 합법적으로 보존해야 하는 전경 객체들에 속할 수도 있기 때문이다. 대신, (투영 반경과 유사한) "투명 반경"은 알파 채널 값을 0으로 강제해야 하는 컬러 원점(예를 들어, 백색) 근처의 제 2 컬러 볼륨을 정의한다. 투명성 강제(프로세스(400))는 알파 백색 투영(프로세스(300)) 후에 발생하는 알파 조정으로서 이미지 상에 구현될 수 있다.
도 14를 참조하면, 예시적인 구현예에 따라, 투명성 함수가 차트(1400)를 통해 기술된다. 차트(1400)에서, 강제 임계치(1402) 및 보존 임계치(1404)가 도시되어 있다. 투명 반경에서의 모든 컬러에는 투영에 의해 동일한 알파가 할당될 수 있으며, 이는 강제 임계치(1402)로 지칭될 수 있으며, 이는 그 임계치 미만의 모든 알파들이 긴 이미지 엣지를 따라 0으로 강제되기 때문이다. 컬러들의 불투명도에서 갑작스러운 불연속성을 피하기 위해, 보존 임계치(1404)를 초과해서는 알파 값들이 변경되지 않는 제 2의 보다 높은 임계치가 정의될 수 있고, 그 후 두 임계치 사이에서 알파는 선형적으로 스케일링된다. 도 14에서의 하단의 (흑색) 구간별 곡선은 이러한 알파 변환을 예시한다. 강제 투명성이 패딩된 엣지로부터 멀어지게 이동함에 따라, 강제 알파 임계치를 더 높은 알파들로 매핑함으로써 강제 투명성의 효과를 축소할 수 있다. 이것은 도 14의 보다 밝은 곡선들의 시퀀스에 의해 예시되어 가장 밝은 회색에서의 항등 변환으로 종결된다.
쇼핑 웹 사이트에 사용되는 뷰포트들은 주로 정사각형일 수 있으므로, 투영시 정사각형이 아닌 이미지들의 긴 엣지들에만 이 변환이 적용될 수 있다. (종횡비들이 상이한 뷰포트들이 선호된다면, 해당 종횡비에 비해 긴 엣지들이 변환될 수 있다.) 이미지들은 또한 대부분 하나의 축만이 패딩을 필요로 할 정도로 충분히 클 수 있지만, 그렇지 않은 경우 4 개의 모든 엣지에 대해 이러한 변환을 적용할 수 있다(그러나, 피사체가 짧은 경계와 교차하는 경우 아티팩트를 보다 자주 유발할 수 있으며, 이는 위의 예에서 모델의 얼굴과 다리가 이미지 경계들에 의해 잘린 경우이다).
도 14에 도시된 강제 투명성 함수는 구간별 선형일 수 있지만, 유사한 효과를 가질 수 있는 다른 비선형 함수들이 사용될 수 있다. 예를 들어, 패딩된 엣지에서, 강제 임계치와 보존 임계치 사이의 함수는 (강제 임계치, 0)를 보존 임계치(Preserved Threshold)에 연결하는 임의의 비 감소 함수일 수 있다. 포인트는 0으로 강제되는 입력 알파들과 완벽하게 보존되는 입력 알파간 사이에서 매끄럽게 전환될 수 있다. 또한, 패딩된 엣지로부터의 거리(d)에서, 입력 알파로부터 출력 알파까지의 함수
Figure 112019123057079-pct00003
는 출력이 0과
Figure 112019123057079-pct00004
사이에 있으며
Figure 112019123057079-pct00005
d에서 감소하지 않는 함수일 수 있다.
패딩된 엣지 상의 많은 픽셀이 전술한 바와 같이 투명하게 만들어질 수 없다면, 이미지는 풀 블리드 이미지처럼 보이지 않을 수 있다. 따라서, 알파 0 패딩 엣지 픽셀들의 비율이 임계치보다 높지 않으면 변환은 실패하도록 설정될 수 있다. 정사각형 뷰포트를 가정하면, 정사각형 이미지가 완전히 투명한 엣지 픽셀들을 갖는 것은 중요하지 않는데, 이는 이미지가 뷰포트를 완전히 채우므로 블렌딩을 필요로 하는 뷰포트 패딩이 없기 때문이다. 그러나, 정사각형의 엣지에 준 백색 픽셀이 없거나 거의 없는 경우, 알파 백색 변환을 수행하지 않는 것이 좋으며, 이미지 자체가 뷰포트와 이미지가 나타나는 백색 카드 간의 필요한 대비를 제공한다. 이러한 이유로, 이 방법은 ("너무 적은" 및 "준 백색"의 사용자 지정 값들에 대해) 너무 적은 픽셀이 준 백색인 경우 변환을 실패로 표시할 수 있다.
일반적으로, 도 1 내지 도 11을 참조하면, 본원에 기술된 방법들은 백색 배경을 대체하는 데 적합할 수 있지만, 다른 컬러로 대체하고 약간 상이한 투영 거동을 구현하기 위해서는 이러한 동일 개념에 대한 변경이 사용될 수 있다. 백색은 도 6 내지 도 11에 도시된 하나의 투영 소스로서, 완전한 투명도로 매핑되는 컬러를 만들지만, 그 목적을 위해 다른 컬러를 사용하도록 일반화될 수 있다.
백색 대신에, 투영 소스(투영 원점 컬러)를 RGB 포인트 s = (Sr, Sg, Sb)로 한다. 투영된 볼륨을 s와의 좌표 별 차이들이 모두 투영 반경보다 작은(즉, L∞ - ) 모든 RGB 포인트들의 세트로 설정한다. 주목할 것은 이것은 두 큐브의 비어 있지 않은 교차점(L∞ - s 주변의 및 RGB 큐브 자체)이어서, 결과의 볼륨은 직사각형 프리즘이어야 한다는 것이다. 따라서, 그 경계는 6 개의 직사각형면을 포함하고 있다.
주어진 면 F에 대해, s가 그 면 상에 나타나지 않으면, s에서 시작하여 F에 포인트 X를 투영하는 것이 무엇을 의미하는지는 분명하며: s에서 x까지의 광선은 단일 포인트에서 F와 교차하거나, 또는 전혀 교차하지 않는다. 그러나, s가 F에 속하는 경우, 전술한 광선과 F의 교차점이 포인트들의 전체 선분이기 때문에, F 상에서도 다른 X에 대한 투영이 더 이상 고유하게 정의되지 않는다. 이러한 모호성을 피하고 경계 포인트들과 내부 포인트들 사이에서 알파 할당을 공간적으로 일관성있게 유지하고자 할 수 있다(후자는 모두는 그들이 속하지 않는 프리즘면으로 투영된다). 두 가지 이유로, 투영 표면은 적어도 하나의 면에 나타나지 않는 투영된 컬러 볼륨의 경계 상의 포인트들에 국한될 수 있다.
주목할 것은 본원에 기술된 알파 백색 투영 방법(백색인 소스 컬러로 알파 투영)은 알파 투영의 일 구현예일 수 있다는 것이다. s가 백색 포인트라면, 투영된 볼륨이 잘려서 그의 면들 중 세 개가 RGB 큐브의 최대 면 상에 놓인다. 백색 포인트가 또한 이들 투영된 볼륨 면 중 3 개에 존재하기 때문에, 투영 표면은 다른 세 개의 면 상의 포인트들로 구성된다. 또한 RGB 큐브의 내부 또는 경계에 s가 있으면 투영 및 후속 알파 블렌딩이 약간 다르게 작동할 수 있다는 것에 주목해야 한다.
이제 도 15 내지 도 16을 참조하면, 차트들(1500 및 1600)은 예시적인 구현예에 따라 RGB 큐브의 엣지에 놓인 비-백색 투영 원점 컬러와의 알파 투영 및 알파 블렌딩을 도시한다. 마커(1502)로 표시된 투영 원점 컬러 s는 RGB 큐브의 엣지에 존재하는 것으로 표시된다. 1504로 표시된 투영 반경은 투영 솔리드를 정의하지만, 투영 솔리드는 RGB 큐브 내에 완전히 포함되지는 않는다. s가 경계에 존재하는 경우, 뷰포트 컬러가 해당 경계를 벗어나면, 알파 블렌딩에 의해서는 재구성되지 않을 (s 자체를 포함하는) 몇몇 컬러들이 있을 것이다. (이것은 투영 원점 컬러로서 백색을 사용한 알파 투영이 뷰포트 컬러가 백색이 아닌 한 알파 블렌딩된 이미지 경계 상의 컬러가 백색이 되지 않도록 보장하는 이유이다.)
이제 도 17 내지 도 18을 참조하면, 차트들(1700 및 1800)은 예시적인 구현예에 따라 RGB 큐브 내에 있는 비-백색 투영 원점 컬러와의 알파 투영 및 알파 블렌딩을 도시한다. 마커(1702)로 표시된 투영 원점 컬러 s는 RGB 큐브 내에 존재하는 것으로 표시된다. 투영 반경(1704)은 투영 솔리드를 정의하며, 이 솔리드는 도 15 및 도 16과 유사하게 RGB 큐브 내에 완전히 포함되는 것은 아니다. 도 17 내지 도 18에 도시된 바와 같이, 컬러가 RGB 큐브의 내부에 있는 경우, 투영 및 알파 블렌딩은 단지 투영된 볼륨 내부의 컬러들의 재분포만을 나타낼 뿐이다. 알파 블렌딩 결과에서 누락될 것으로 보장되는 컬러는 존재하지 않는다. 그러한 이유로 인해, 예를 들어, 중간 회색을 선택하면, 알파 블렌딩 후 경계에 회색 음영이 나타나지 않을 것이라고 보장할 수는 없다(이는 변환을 계산하여 이미지와 해당 특정 회색 음영 간의 대비를 생성하는 경우 문제가 될 수도 있다).
이제 도 19 내지 도 21을 참조하면, 차트들(1900, 2000, 및 2100)은 예시적인 구현예에 따른 3 개의 상이한 투영 솔리드를 도시한다. 도 19에서, 투영 솔리드는 큐브이다. 도 20에서, 투영 솔리드는 구체인 반면, 도 21에서 투영 솔리드는 사면체이다. 본원에서 정의된 바와 같이, 투영 표면은 유리한 속성들을 가질 수 있다. RGB 공간 내의 포인트들은 그 표면에 속할 수 있다. 정수 투영 반경의 경우, RGB 포인트는 (S와의 최대 단일 채널 차이가 제각기 투영 반경보다 적거나, 동일하거나, 또는 큰지에 따라) 투영된 볼륨의 내부, 투영 표면, 또는 투영된 볼륨의 외부에 명확하게 존재할 수 있다. 백색으로부터 해당 표면으로의 임의의 RGB 포인트의 투영이 정의될 수 있다. 기술적으로, 이산 RGB 공간에서 해당 "표면"이 이산 포인트들의 집합체일 수 있지만 이산 토폴로지의 세부 사항을 탐구하지 않더라도, 이러한 포인트들을 연결하는 직관적인 연속 표면이 정의될 수 있다. 그런 다음, 임의의 RGB 포인트는 그 표면 상으로 투영될 수 있고 최근접 이산 포인트에 리매핑될 수 있다.
백색에 가까운 뷰포트 컬러들/투영 표면에 너무 근접하지 않은 뷰포트 컬러들의 경우, 2 개의 픽셀은 오리지널 이미지에서 매우 유사한 컬러인 경우를 제외하고는 동일한 컬러로 알파 블렌딩할 수 없다. 이것은 전체 투영 표면이 백색과 관심 대상의 모든 뷰포트 컬러 모두에서 (스스로를 가리는 것이 아닌) "가시적인" 사실의 결과일 수 있다. 표면 상의 한 포인트가 그 표면 상의 다른 (거리에 있는) 포인트의 뷰포트 컬러의 시야를 차단할 수 있다면, 그것이 의미하는 바는 그러한 세 개의 포인트들이 대략 동일 선상에 있고, (선형 보간인) 알파 블렌딩이 그러한 거리에 있는 표면 포인트들을 특정 쌍의 알파들에 대해 동일한 컬러 상으로 매핑할 수 있다는 것이다.
즉, 본원에 사용되는 L∞ - 구체 투영 표면은 이들 속성들을 갖는 데 있어서 고유하지 않을 수 있다. 다양한 잠재적 표면들을 설명하기 위해, 도 19 내지 도 21은 백색 주위의 "구체들"을 도시하며, 여기서 "구체"는 상이한 L - 놈(norm)을 사용하여 각각의 사례: L∞ (도 19), L2 (도 20), 및 L1 (도 21)에서의 거리를 정의하기 위해 동일한 거리에 있는 포인트들의 세트를 지칭한다. 투영 표면들은 또한 이들 구체로 국한되는 것은 아니다. 소스를 포함하는 임의의 개수의 연결된 RGB 포인트 세트들이 존재하며, 이는 또한 투영 볼륨으로도 사용될 수 있다.
다시, 주목할 것은 먼저 기술된 알파 백색 알고리즘은 이 일반적인 알고리즘의 특별한 경우이며, 여기서 투영 소스는 백색이고, 투영된 볼륨은 RGB 큐브와의 L∞ - 의 교차점이며, 가까운 RGB 격자 포인트로 스냅하기 전에 유클리드 3D 공간에서 투영이 행해진다는 것이다.
일 예로서, 투영 원점 컬러를 포함해야 하는 새로운 배경 컬러로서 잠재적으로 사용하고자 하는 컬러들의 세트를 B로 함으로써 투영 솔리드가 정의될 수 있다. 유효한 투영 솔리드 V (B의 슈퍼 세트일 수 있음)는 임의의 세트의 연결된 RGB 포인트들일 수 있으며, 그에 따라 V 내의 임의의 포인트 v와 B 내의 임의의 포인트 b 사이에 직선 선분을 그릴 수 있으며 해당 선분은 V 내의 전체 포인트들로 구성된다. 그러한 임의의 솔리드의 경우, 투영 소스로부터 멀리 투영 동작을 명확하게 정의할 수 있고, B 내의 임의의 배경 컬러와의 결과 이미지의 알파 블렌딩이 잘 작동될 것이다. 구분된 컬러 공간에서 "직선"이 의미하는 것과 투영 동작이 정의될 수 있는 방법은 아래에서 보다 상세히 논의된다.
도 22는, 예를 들어, 본원에 기술된 시스템 및 방법을 구현하는 데 사용될 수 있는 컴퓨터 시스템(2200)을 도시한다. 예를 들어, 예시적인 사용자 디바이스, 예시적인 컨텐츠 관리 시스템, 예시적인 컨텐츠 제공자 디바이스, 예시적인 분석 시스템, 및/또는 다른 예시적인 시스템을 구현하는 것이 본 개시 내용에 기술되고 있다. 컴퓨팅 시스템(2200)은 정보를 통신하기 위한 버스(2205) 또는 다른 통신 컴포넌트, 및 버스(2205)에 연결되어 정보를 처리하기 위한 프로세서(2210)를 포함한다. 컴퓨팅 시스템(2200)은 또한 정보를 저장하기 위해 버스(2205)에 연결된, 랜덤 액세스 메모리(RAM) 또는 다른 동적 저장 디바이스와 같은 메인 메모리(2215), 및 프로세서(2210)에 의해 실행될 명령어들을 포함한다. 메인 메모리(2215)는 또한 프로세서(2210)에 의한 명령어들의 실행 동안 위치 정보, 임시 변수 또는 다른 중간 정보를 저장하기 위해 사용될 수 있다. 컴퓨팅 시스템(2200)은 프로세서(2210)를 위한 정적 정보 및 명령어들을 저장하기 위해 버스(2205)에 연결된 판독 전용 메모리(read only memory)(ROM)(2210) 또는 다른 정적 저장 디바이스를 추가로 포함할 수 있다. 솔리드 스테이트 디바이스, 자기 디스크 또는 광 디스크와 같은 저장 디바이스(2225)는 정보 및 명령어들을 지속적으로 저장하기 위해 버스(2205)에 연결된다.
컴퓨팅 시스템(2200)은 버스(2205)를 통해 액정 디스플레이 또는 액티브 매트릭스 디스플레이와 같은 디스플레이(2235)에 연결되어, 사용자에게 정보를 디스플레이할 수 있다. 영숫자 및 다른 키를 포함하는 키보드와 같은 입력 디바이스(2230)는 버스(2205)에 연결되어, 정보 및 커맨드 선택을 프로세서(2210)에 전달할 수 있다. 다른 구현예에서, 입력 디바이스(2230)는 터치 스크린 디스플레이(2235)를 갖는다. 입력 디바이스(2230)는 마우스, 트랙볼, 또는 커서 방향 키와 같은 커서 컨트롤을 포함하여, 방향 정보 및 커맨드 선택을 프로세서(2210)에 전달하고 디스플레이(2235) 상의 커서 이동을 제어할 수 있다.
일부 구현예에서, 컴퓨팅 시스템(2200)은 네트워킹 어댑터와 같은 통신 어댑터(2240)를 포함할 수 있다. 통신 어댑터(2240)는 버스(2205)에 연결될 수 있고 컴퓨팅 또는 통신 네트워크(2245) 및/또는 다른 컴퓨팅 시스템과의 통신을 가능하게 하도록 구성될 수 있다. 다양한 예시적인 구현예에서, 임의의 타입의 네트워킹 구성은 유선(예를 들어, 이더넷을 통해), 무선(예를 들어, WiFi, 블루투스 등을 통해), 미리 구성된, 애드혹, LAN, WAN, 등과 같은 통신 어댑터(2240)를 사용하여 달성될 수 있다.
다양한 구현예에 따르면, 본원에 기술된 예시적인 구현예를 수행하는 프로세스는 프로세서(2210)가 메인 메모리(2215)에 포함된 명령어들의 배열을 실행하는 것에 응답하여 컴퓨팅 시스템(2200)에 의해 달성될 수 있다. 이러한 명령어들은 저장 디바이스(2225)와 같은 다른 컴퓨터 판독 가능 매체로부터 메인 메모리(2215) 내로 판독될 수 있다. 메인 메모리(2215)에 포함된 명령어들의 배열의 실행은 컴퓨팅 시스템(2200)으로 하여금 본원에 기술된 예시적인 프로세스를 수행하게 한다. 멀티 프로세싱 배열체 내의 하나 이상의 프로세서는 또한 메인 메모리(2215)에 포함된 명령어들을 실행하는 데 사용될 수 있다. 대안적인 구현예에서, 하드 와이어드 회로(hard-wired circuitry)는 예시적인 구현예를 구현하기 위해 소프트웨어 명령어들 대신에 또는 이들과 함께 사용될 수 있다. 따라서, 구현예들은 하드웨어 회로 및 소프트웨어의 임의의 특정 조합에 국한되는 것은 아니다.
예시적인 프로세싱 시스템이 도 22에 기술되었지만, 본 명세서에 기술된 요지의 구현예들 및 기능 동작들은 다른 타입들의 디지털 전자 회로를 사용하여 수행될 수 있거나, 또는 컴퓨터 소프트웨어, 펌웨어, 또는 본 명세서에 개시된 구조들 및 이들의 구조적 등가물을 포함하는 하드웨어에서, 또는 이들 중 하나 이상의 조합들에서 수행될 수 있다.
본 명세서에 기술된 요지의 구현예들 및 동작들은 디지털 전자 회로를 사용하여 수행될 수 있거나, 또는 유형적인 매체 상에 구현된 컴퓨터 소프트웨어, 펌웨어, 또는 본 명세서에 개시된 구조들 및 이들의 구조적 등가물을 포함하는 컴퓨터 하드웨어에서, 또는 이들 중의 하나 이상의 조합들에서 수행될 수 있다. 본 명세서에 기술된 요지의 구현예들은 하나 이상의 컴퓨터 프로그램들로서, 즉, 데이터 프로세싱 장치에 의한 실행을 위해 또는 데이터 프로세싱 장치의 동작을 제어하기 위해 하나 이상의 컴퓨터 저장 매체 상에 인코딩되는 컴퓨터 프로그램 명령어들의 하나 이상의 모듈들로서 구현될 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령어들은 인공적으로 생성된 전파되는 신호, 예를 들어, 데이터 프로세싱 장치에 의한 실행을 위해 적당한 수신기 장치로의 전송을 위한 정보를 인코딩하도록 생성되는, 머신으로 생성된 전기적, 광학적, 또는 전자기 신호 상에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 이들 내에 포함될 수 있다. 또한, 컴퓨터 저장 매체는 전파되는 신호는 아니지만, 컴퓨터 저장 매체는 인공적으로 생성된 전파 신호로 인코딩된 컴퓨터 프로그램 명령어들의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 개별 컴포넌트 또는 매체(예를 들어, 다수의 CD, 디스크 또는 다른 저장 디바이스)일 수 있거나 그에 포함될 수 있다. 따라서, 컴퓨터 저장 매체는 유형 및 비 일시적이다.
본 명세서에 기술된 동작들은 하나 이상의 컴퓨터 판독 가능 저장 디바이스 상에 저장된 또는 다른 소스들로부터 수신된 데이터에 대해 데이터 프로세싱 장치에 의해 수행되는 동작들로 구현될 수 있다.
용어 “데이터 프로세싱 장치” 또는 “컴퓨팅 디바이스”는 데이터를 처리하기 위한 모든 종류의 장치, 디바이스, 및 머신을 포함할 수 있으며, 예로서, 프로그래머블 프로세서, 컴퓨터, 하나의 칩 또는 복수의 칩 상의 시스템, 또는 이들의 조합들을 포함한다. 장치는 특수 목적 로직 회로, 예를 들어, 필드 프로그래머블 게이트 어레이(FPGA) 또는 주문형 집적 회로(ASIC)를 포함할 수 있다. 장치는 또한 하드웨어 외에도, 당해 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 교차 플랫폼 런타임 환경, 가상 머신, 또는 이들 중 하나 이상의 조합을 포함할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 기반구조와 같은 다양한 상이한 컴퓨팅 모델 기반구조를 실현할 수 있다.
컴퓨터 프로그램(이는 또한 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드로 알려짐)은 컴파일된 또는 해석된 랭귀지, 선언적 또는 절차적 랭귀지를 포함하는 임의의 형태의 프로그래밍 랭귀지로 작성될 수 있으며, 그리고 독립형 프로그램으로서 또는 모듈로서, 컴포넌트, 서브루틴, 객체, 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함하는 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 대응할 수 있지만 이에 대응할 필요는 없다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 랭귀지 문서에 저장된 하나 이상의 스크립트들)를 보유하는 파일의 일부 내에, 당해의 프로그램에 전용되는 단일 파일 내에, 또는 여러 개의 편성된 파일들(예를 들어, 하나 이상의 모듈들, 서브 프로그램들, 또는 코드의 부분들을 저장하는 파일들) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서 또는 한 사이트에 위치하거나 다수의 사이트에 걸쳐 분산되어 통신 네트워크에 의해 상호 접속된 다수의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본 명세서에 기술된 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하여 출력 데이터를 생성함으로써 동작들을 수행하는 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그램 가능한 프로세서들에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한, 필드 프로그래머블 게이트 어레이(FPGA) 또는 주문형 집적 회로(ASIC)와 같은 특수 목적의 로직 회로에 의해 수행될 수 있으며, 장치가 또한 그 특수 목적의 논리 회로로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서들은, 예로서, 범용 및 특수 목적의 마이크로프로세서들과, 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 이들 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들에 따라 동작들을 수행하기 위한 프로세서와, 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어, 자기 디스크, 자기 광 디스크, 또는 광 디스크를 포함하거나, 또는 이들로부터 데이터를 수신하거나 이들에 데이터를 전송하거나, 또는 이들 모두를 수행하도록 동작가능하게 연결될 것이다. 그러나, 컴퓨터는 이러한 디바이스를 가질 필요는 없다. 또한, 컴퓨터는 다른 디바이스에, 예를 들어, 모바일 텔레폰, 개인 휴대용 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기, 또는 휴대용 저장 디바이스(가령, USB 플래시 드라이브)에 내장될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 디바이스들은 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함하며, 예로서, 반도체 메모리 디바이스들, 가령, EPROM, EEPROM 및 플래시 메모리 디바이스들; 자기 디스크들, 가령, 내부 하드 디스크들 또는 이동식 디스크들; 자기-광학 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함한다. 프로세서들 및 메모리는 특수 목적 로직 회로에 의해 보완되거나 특수 목적 로직 회로 내에 포함될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에서 기술된 본 요지의 구현예들은, 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스(예를 들어, 음극선관(CRT) 또는 액정 디스플레이(LCD) 디바이스), 및 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 키보드 및 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 갖는 컴퓨터를 사용하여 수행될 수 있다. 다른 종류의 디바이스들은 또한 사용자와의 상호 작용을 제공하는 데 사용될 수 있으며, 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백일 수 있고; 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자가 사용하는 디바이스와 문서를 전송 및 수신함으로써, 예를 들어, 웹 브라우저로부터 수신된 요청들에 응답하여 사용자의 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지를 전송함으로써 사용자와 상호 작용할 수 있다.
본 명세서에 기술된 요지의 구현예들은, 예를 들어, 데이터 서버로서 백엔드 컴포넌트를 포함하는, 또는 미들웨어 컴포넌트, 예를 들어, 애플리케이션 서버를 포함하는, 또는 프런트엔드 컴포넌트, 예를 들어, 사용자가 본 명세서에 기술된 요지의 구현예와 상호 작용할 수 있게 하는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터를 포함하는, 또는 하나 이상의 그러한 백엔드, 미들웨어, 또는 프런트엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템을 사용하여 수행될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어, 통신 네트워크에 의해 상호 연결될 수 있다. 통신 네트워크들의 예는 근거리 네트워크("LAN") 및 광역 네트워크("WAN"), 인터 네트워크(예를 들어, 인터넷), 및 피어 투 피어 네트워크들(예를 들어, ad hoc 피어 투 피어 네트워크)을 포함한다.
컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는, 제각기의 컴퓨터들 상에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 발생한다. 일부 구현예에서, 서버는 (예를 들어, 클라이언트 디바이스와 상호 작용하는 사용자에게 데이터를 디스플레이하고 그 사용자로부터 사용자 입력을 수신하기 위해) 데이터(예를 들어, HTML 페이지)를 클라이언트 디바이스로 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호 작용의 결과)는 서버에서 클라이언트 디바이스로부터 수신될 수 있다.
일부 예시적인 구현예에서, 본원에 개시된 특징들은 스마트 텔레비전 모듈(또는 연결된 텔레비전 모듈, 하이브리드 텔레비전 모듈, 등) 상에서 구현될 수 있으며, 이 모듈은 (예를 들어, 케이블, 위성, OTA (over-the-air), 또는 다른 신호들을 통해 수신되는) 보다 전통적인 텔레비전 프로그래밍 소스들과 인터넷 연결을 통합하도록 구성된 프로세싱 회로를 포함할 수 있다. 스마트 텔레비전 모듈은 텔레비전 세트에 물리적으로 통합될 수 있거나, 셋탑박스, 블루레이 또는 다른 디지털 미디어 플레이어, 게임 콘솔, 호텔 텔레비전 시스템, 및 다른 컴패니언 디바이스와 같은 별도의 디바이스를 포함할 수 있다. 스마트 텔레비전 모듈은 시청자들로 하여금 웹 상의, 로컬 케이블 TV 채널 상의, 위성 TV 채널 상의, 또는 로컬 하드 드라이브에 저장된 비디오, 영화, 사진 및 다른 컨텐츠를 검색하고 찾을 수 있도록 구성될 수 있다. 셋탑박스(STB) 또는 셋탑유닛(STU)은, 튜너를 포함할 수 있고 텔레비전 세트 및 외부 신호 소스에 연결하여 신호를 콘텐츠로 전환한 다음 텔레비전 스크린 또는 다른 디스플레이 디바이스에 디스플레이하는 정보 가전 디바이스(information appliance device)를 포함할 수 있다. 스마트 텔레비전 모듈은 웹 브라우저 및 복수의 스트리밍 미디어 서비스들(예를 들어, Netflix, Vudu, Hulu, 등)과 같은 복수의 상이한 애플리케이션을 위한 아이콘들을 포함하는 홈 스크린(home screen) 또는 탑레벨 스크린(top level screen)을 제공하도록 구성될 수 있다. 스마트 텔레비전 모듈은 또한 사용자에게 전자 프로그래밍 가이드를 제공하도록 구성될 수 있다. 스마트 텔레비전 모듈에 대한 컴패니언 애플리케이션은 사용자에게 이용 가능한 프로그램들에 대한 추가 정보를 제공하여, 사용자로 하여금 스마트 텔레비전 모듈, 등을 제어하게 할 수 있도록 모바일 컴퓨팅 디바이스 상에서 동작 가능할 수 있다. 대안적인 구현예에서, 특징들은 랩탑 컴퓨터 또는 다른 퍼스널 컴퓨터, 스마트폰, 다른 모바일폰, 핸드 헬드 컴퓨터, 태블릿 PC, 또는 다른 컴퓨팅 디바이스 상에서 구현될 수 있다.
본 명세서는 많은 특정 구현 세부 사항들을 포함하고 있지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 안되며, 오히려 특정 발명들의 특정 구현예들에 특정되는 특징들에 대한 설명으로 해석되어야 한다. 개별 구현예들의 상황에서 본 명세서에 기술된 특정 특징들은 또한 단일 구현예에서 또는 조합적으로 수행될 수 있다. 반대로, 단일 구현예의 상황에서 기술되는 다양한 특징들은 또한 다수의 구현예들에서, 개별적으로, 또는 임의의 적합한 서브 조합으로 수행될 수 있다. 또한, 특징들이 위에서 특정의 조합들에서 작용하고 심지어는 그와 같이 최초로 청구되는 것으로 기술될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 경우에 따라서는 그 조합으로부터 제거될 수 있고, 청구된 조합은 서브 조합 또는 서브 조합의 변형으로 유도될 수 있다. 부가적으로, 특정 주제들과 관련하여 기술된 특징들은 다른 주제들 하에서 기술된 예시적인 구현예와 관련하여 및/또는 그와 조합하여 이용될 수 있으며; 주제들은 제공시, 판독을 위해서만 포함되며 그러한 주제들과 관련하여 제공된 임의의 특징들을 제한하는 것으로 해석되어서는 안된다.
유사하게, 동작들이 도면에서 특정 순서로 도시되어 있지만, 이는 이러한 동작들이 도시된 특정 순서 또는 순차적 순서로 수행되어야 하거나 예시된 동작들이 원하는 결과들을 달성하도록 수행되어야 할 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황들에서, 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 또한, 전술한 구현예들에서 다양한 시스템 컴포넌트들의 분리는 모든 구현예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 기술된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품에서 함께 통합되거나 또는 유형의 매체 상에 구현되는 여러 소프트웨어 제품에 패키징될 수 있다.
따라서, 특정 요지의 구현예들이 기술되었다. 다른 구현예들은 아래의 청구범위의 범주 내에 있다. 일부 경우에, 청구범위에 언급된 동작들은 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 달성할 수 있다. 또한, 첨부된 도면에 도시된 프로세스들은 바람직한 결과들을 달성하기 위해, 도시된 특정 순서 또는 순차적 순서를 반드시 필요로 하는 것은 아니다. 특정 구현예들에서, 멀티 태스킹 및 병렬 처리가 유리할 수 있다.

Claims (20)

  1. 방법으로서,
    하나 이상의 이미지를 저장하는 시스템으로부터 이미지를 수신하는 단계;
    컬러 큐브 내에서 투영 솔리드(projection solid)를 정의하는 투영 솔리드 파라미터를 수신하는 단계 -상기 투영 솔리드는 상기 이미지가 배경 이미지 위에 전경 이미지로서 디스플레이될 때 상기 이미지의 하나 이상의 객체의 대비(contrast)를 정의함-;
    상기 이미지의 하나 이상의 픽셀에 알파 채널 값들을 할당하도록 상기 이미지를 알파 투영하는 단계 - 상기 알파 투영하는 단계는 상기 이미지의 하나 이상의 픽셀을 오리지널 컬러로부터 투영 솔리드의 표면상의 제 2 컬러로 투영하는 것과, 투영 원점 컬러(projection origin color)와 알파 블렌딩된 각각의 제 2 컬러가 상기 오리지널 컬러가 되게 하는 특정 알파 채널 값을 결정함으로써 상기 하나 이상의 픽셀에 대한 상기 알파 채널 값들을 설정하는 것에 의해 수행됨 -; 및
    상기 알파 투영된 이미지를 상기 전경 이미지로서 상기 배경 이미지 위에 디스플레이하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 투영 솔리드는 연결된 적색, 녹색 및 청색(RGB) 포인트들의 세트이며,
    직선 선분은 상기 투영 솔리드 내의 임의의 제1 포인트와 배경 컬러 세트 내의 임의의 제2 포인트 사이에서 그려질 수 있고,
    상기 직선 선분은 상기 연결된 적색, 녹색 및 청색(RGB) 포인트들의 세트 중 하나 이상을 포함하고,
    상기 배경 컬러 세트는 상기 투영 원점 컬러를 포함하고, 상기 투영 솔리드의 연결된 RGB 포인트들의 서브 세트이며,
    상기 투영 솔리드의 상기 연결된 RGB 포인트들의 세트는 상기 배경 컬러 세트를 포함하는 슈퍼세트(superset)인 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 투영 솔리드는 3 차원 형상이고, 큐브, 구체, 직사각형 프리즘 및 사면체 중 적어도 하나이고; 그리고
    상기 투영 원점 컬러는 백색이고, 알파 투영될 때 백색인 이미지의 임의의 픽셀에는 완전 투명성(full transparency)의 알파 채널 값이 할당되는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    투영 솔리드 파라미터는 투영 반경이고,
    상기 하나 이상의 픽셀 각각을 상기 오리지널 컬러로부터 상기 제 2 컬러로 투영하는 것은 상기 투영 반경에 기초하고, 그리고:
    하나 이상의 투영 표면을 포함하는 제 1 투영 솔리드에 기초하여 컬러 큐브의 제 1 컬러 볼륨을 정의하는 것 -상기 하나 이상의 투영 표면은 표면을 포함하고, 상기 컬러 큐브는 적색, 녹색, 청색 (RGB) 컬러 큐브임 -; 및
    상기 제 1 컬러 볼륨 내의 제1 컬러인 상기 이미지의 하나 이상의 픽셀의 오리지널 컬러를 상기 오리지널 컬러로부터 표면의 상기 제 2 컬러로 투영하는 것을 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    상기 투영 솔리드의 하나 이상의 투영 표면은 상기 투영 원점 컬러로부터 연장되는 투영 반경에 의해 정의되는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 알파 투영된 이미지에 대한 투명성을 강제(forcing)하는 단계 - 상기 강제하는 단계는: 투명성을 강제하기 위해 상기 알파 투영된 이미지의 픽셀들을 선택하는 것; 및 투명성 함수(transparency function), 상기 선택된 픽셀들에 대한 입력 알파 채널 값들, 및 상기 이미지의 엣지로부터의 상기 선택된 픽셀들의 각각의 거리에 기초하여 상기 선택된 픽셀들에 대한 알파 채널 값들를 조정함으로써 상기 투명성 함수에 기초하여 상기 선택된 픽셀들에 대한 알파 채널 값들을 조정하는 것에 의해 수행됨 -를 추가로 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 투명성 함수는 상기 입력 알파 채널 값들 및 상기 이미지의 엣지로부터의 상기 선택된 픽셀들의 각각의 거리에 대해 감소하지 않는 하나 이상의 비 감소(non-decreasing) 함수이며, 상기 하나 이상의 비 감소 함수는 상기 알파 투영된 이미지의 각각의 선택된 픽셀과 상기 알파 투영된 이미지의 엣지 사이의 거리에 기초하며, 상기 투명성 함수의 출력은 0과 특정 입력 알파 채널 값 사이에 있는 것을 특징으로 하는 방법.
  8. 제6항에 있어서,
    상기 선택된 픽셀들에 대한 상기 알파 채널 값들을 조정하는 것은 또한 상기 입력된 알파 채널 값들에 대한 강제 임계치 및 보존 임계치에 기초하고,
    상기 보존 임계치는 상기 강제 임계치보다 큰 값이고;
    상기 강제 임계치와 상기 보존 임계치 사이에 있는 입력 알파 채널 값들은 상기 강제 임계치보다 작은 상기 입력 알파 채널 값들보다 높은 알파 채널 값들로 조정되며; 그리고
    상기 보존 임계치보다 큰 알파 채널 값들은 조정되지 않는 것을 특징으로 하는 방법.
  9. 제6항에 있어서,
    상기 투명성 함수는 제 1 선형 함수 및 제 2 선형 함수를 포함하고,
    상기 선택된 픽셀들에 대한 상기 알파 채널 값들을 조정하는 것은:
    0 내지 강제 임계치 범위의 제1 입력 알파 채널 값들에 대한 제 1 선형 함수에 기초하여 상기 선택된 픽셀들에 대한 알파 채널 값들을 조정하는 것 - 상기 제1 입력 알파 채널 값들은 상기 선택된 픽셀들의 알파 채널 값들이 조정되기 전의 상기 선택된 픽셀들의 알파 채널 값들임 -; 및
    상기 강제 임계치로부터 보존 임계치까지의 범위의 제2 입력 알파 채널 값들에 대한 제 2 선형 함수에 기초하여 상기 선택된 픽셀들에 대한 알파 채널 값들을 조정하는 것을 포함하는 것을 특징으로 하는 방법.
  10. 제6항에 있어서,
    상기 알파 투영된 이미지의 픽셀들을 선택하는 것은:
    제 2 투영 솔리드에 기초하여 적색, 녹색, 청색(RGB) 큐브의 제 2 컬러 볼륨을 정의하는 것; 및
    상기 제 2 컬러 볼륨 내의 컬러를 갖는 알파 투영된 이미지의 픽셀들을 선택하는 것을 포함하는 것을 특징으로 하는 방법.
  11. 적어도 하나의 메모리에 동작 가능하게 연결되고 다음의 방법을 수행하도록 구성된 적어도 하나의 컴퓨팅 디바이스를 포함하는 시스템으로서,
    상기 방법은:
    하나 이상의 이미지를 저장하는 시스템으로부터 이미지를 수신하는 단계;
    컬러 큐브 내에서 투영 솔리드(projection solid)를 정의하는 투영 솔리드 파라미터를 수신하는 단계 -상기 투영 솔리드는 상기 이미지가 배경 이미지 위에 전경 이미지로서 디스플레이될 때 상기 이미지의 하나 이상의 객체의 대비(contrast)를 정의함-;
    상기 이미지의 하나 이상의 픽셀에 알파 채널 값들을 할당하도록 상기 이미지를 알파 투영하는 단계 - 상기 알파 투영하는 단계는 상기 이미지의 하나 이상의 픽셀을 오리지널 컬러로부터 투영 솔리드의 표면상의 제 2 컬러로 투영하는 것과, 투영 원점 컬러(projection origin color)와 알파 블렌딩된 각각의 제 2 컬러가 상기 오리지널 컬러가 되게 하는 특정 알파 채널 값을 결정함으로써 상기 하나 이상의 픽셀에 대한 상기 알파 채널 값들을 설정하는 것에 의해 수행됨 -; 및
    상기 알파 투영된 이미지를 상기 전경 이미지로서 상기 배경 이미지 위에 디스플레이하는 단계를 포함하는 것을 특징으로 하는 시스템.
  12. 제11항에 있어서,
    상기 투영 솔리드는 연결된 적색, 녹색 및 청색(RGB) 포인트들의 세트이며,
    직선 선분은 상기 투영 솔리드 내의 임의의 제1 포인트와 배경 컬러 세트 내의 임의의 제2 포인트 사이에서 그려질 수 있고,
    상기 직선 선분은 상기 연결된 적색, 녹색 및 청색(RGB) 포인트들의 세트 중 하나 이상을 포함하고,
    상기 배경 컬러 세트는 상기 투영 원점 컬러를 포함하고, 상기 투영 솔리드의 연결된 RGB 포인트들의 서브세트이며,
    상기 투영 솔리드의 상기 연결된 RGB 포인트들의 세트는 상기 배경 컬러 세트를 포함하는 슈퍼세트(superset)인 것을 특징으로 하는 시스템.
  13. 제12항에 있어서,
    상기 투영 솔리드는 3 차원 형상이고, 큐브, 구체, 직사각형 프리즘 및 사면체 중 적어도 하나이고; 그리고
    상기 투영 원점 컬러는 백색이고, 알파 투영될 때 백색인 이미지의 임의의 픽셀에는 완전 투명성(full transparency)의 알파 채널 값이 할당되는 것을 특징으로 하는 시스템.
  14. 제11항에 있어서,
    투영 솔리드 파라미터는 투영 반경이고,
    상기 적어도 하나의 컴퓨팅 디바이스가 상기 하나 이상의 픽셀들 각각을 상기 오리지널 컬러로부터 상기 제 2 컬러로 투영하도록 구성되는 것은 투영 반경에 기초하고, 그리고:
    하나 이상의 투영 표면을 포함하는 상기 투영 솔리드에 기초하여 컬러 큐브의 제 1 컬러 볼륨을 정의하는 것 -상기 하나 이상의 투영 표면은 표면을 포함하고, 상기 컬러 큐브는 적색, 녹색, 청색 (RGB) 컬러 큐브임 -; 및
    상기 제 1 컬러 볼륨 내의 제1 컬러인 상기 이미지의 하나 이상의 픽셀의 오리지널 컬러를 상기 오리지널 컬러로부터 표면의 상기 제 2 컬러로 투영하는 것에 의해 수행되며, 상기 투영 솔리드의 상기 하나 이상의 투영 표면은 상기 투영 원점 컬러로부터 연장되는 투영 반경에 의해 정의되는 것을 특징으로 하는 시스템.
  15. 제11항에 있어서,
    상기 적어도 하나의 컴퓨팅 디바이스가 상기 알파 투영된 이미지에 대한 투명성을 강제하도록 구성되는 것은:
    투명성을 강제하기 위해 상기 알파 투영된 이미지의 픽셀들을 선택하는 것; 및
    투명성 함수, 상기 선택된 픽셀들에 대한 입력 알파 채널 값들, 및 상기 이미지의 엣지로부터의 상기 선택된 픽셀들의 각각의 거리에 기초하여 상기 선택된 픽셀들에 대한 알파 채널 값들를 조정함으로써 상기 투명성 함수에 기초하여 상기 선택된 픽셀들에 대한 알파 채널 값들을 조정하는 것에 의해 수행되는 것을 특징으로 하는 시스템.
  16. 제15항에 있어서,
    상기 투명성 함수는 상기 입력 알파 채널 값들 및 상기 이미지의 엣지로부터의 상기 선택된 픽셀들의 각각의 거리에 대해 감소하지 않는 하나 이상의 비 감소(non-decreasing) 함수이며, 상기 하나 이상의 비 감소 함수는 상기 알파 투영된 이미지의 각각의 선택된 픽셀과 상기 알파 투영된 이미지의 엣지 사이의 거리에 기초하며, 상기 투명성 함수의 출력은 0과 특정 입력 알파 채널 값 사이에 있는 것을 특징으로 하는 시스템.
  17. 제15항에 있어서,
    상기 선택된 픽셀들에 대한 상기 알파 채널 값들을 조정하는 것은 또한 상기 입력된 알파 채널 값들에 대한 강제 임계치 및 보존 임계치에 기초하고,
    상기 보존 임계치는 상기 강제 임계치보다 큰 값이고;
    상기 강제 임계치와 상기 보존 임계치 사이에 있는 입력 알파 채널 값들은 상기 강제 임계치보다 작은 상기 입력 알파 채널 값들보다 높은 알파 채널 값들로 조정되며; 그리고
    상기 보존 임계치보다 큰 알파 채널 값들은 조정되지 않는 것을 특징으로 하는 시스템.
  18. 제15항에 있어서,
    상기 투명성 함수는 제 1 선형 함수 및 제 2 선형 함수를 포함하고, 상기 선택된 픽셀들에 대한 상기 알파 채널 값들을 조정하는 것은:
    0 내지 강제 임계치 범위의 제1 입력 알파 채널 값들에 대한 제 1 선형 함수에 기초하여 상기 선택된 픽셀들에 대한 알파 채널 값들을 조정하는 것 - 상기 제1 입력 알파 채널 값들은 상기 선택된 픽셀들의 알파 채널 값들이 조정되기 전의 상기 선택된 픽셀들의 알파 채널 값들임 -; 및
    상기 강제 임계치로부터 보존 임계치까지의 범위의 제2 입력 알파 채널 값들에 대한 제 2 선형 함수에 기초하여 상기 선택된 픽셀들에 대한 알파 채널 값들을 조정하는 것을 포함하는 것을 특징으로 하는 시스템.
  19. 적어도 하나의 프로세서에 의한 실행될 때, 상기 적어도 하나의 프로세서로 하여금, 동작을 수행하게 하는 명령어들을 저장한 하나 이상의 비-일시적 컴퓨터 판독 가능 저장 매체로서,
    상기 동작은:
    하나 이상의 이미지를 저장하는 시스템으로부터 이미지를 수신하는 단계;
    컬러 큐브 내에서 투영 솔리드(projection solid)를 정의하는 투영 솔리드 파라미터를 수신하는 단계 -상기 투영 솔리드는 상기 이미지가 배경 이미지 위에 전경 이미지로서 디스플레이될 때 상기 이미지의 하나 이상의 객체의 대비(contrast)를 정의함-;
    상기 이미지의 하나 이상의 픽셀에 알파 채널 값들을 할당하도록 상기 이미지를 알파 투영하는 단계 - 상기 알파 투영하는 단계는 상기 이미지의 하나 이상의 픽셀을 오리지널 컬러로부터 투영 솔리드의 표면상의 제 2 컬러로 투영하는 것과, 투영 원점 컬러(projection origin color)와 알파 블렌딩된 각각의 제 2 컬러가 상기 오리지널 컬러가 되게 하는 특정 알파 채널 값을 결정함으로써 상기 하나 이상의 픽셀에 대한 상기 알파 채널 값들을 설정하는 것에 의해 수행됨 -; 및
    상기 알파 투영된 이미지에 대한 투명성을 강제하는 단계 - 상기 강제하는 단계는 투명성을 강제하기 위해 상기 알파 투영된 이미지의 픽셀들을 선택하는 것, 및 투명성 함수, 상기 선택된 픽셀들에 대한 입력 알파 채널 값들, 및 상기 이미지의 엣지로부터의 상기 선택된 픽셀들의 각각의 거리에 기초하여 상기 선택된 픽셀들에 대한 알파 채널 값들를 조정함으로써 상기 투명성 함수에 기초하여 상기 선택된 픽셀들에 대한 알파 채널 값들을 조정하는 것에 의해 수행됨 -; 및
    상기 알파 투영된 이미지를 전경 이미지로서 배경 이미지 위에 디스플레이하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 판독 가능 저장 매체.
  20. 삭제
KR1020197035309A 2017-08-25 2018-06-15 알파 블렌딩을 사용한 동적 이미지 컬러 리매핑 방법 KR102138847B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762550309P 2017-08-25 2017-08-25
US62/550,309 2017-08-25
US15/699,908 2017-09-08
US15/699,908 US10529124B2 (en) 2017-08-25 2017-09-08 Methods for dynamic image color remapping using alpha blending
PCT/IB2018/054442 WO2019038604A1 (en) 2017-08-25 2018-06-15 METHODS OF REMOVING DYNAMIC IMAGE COLOR USING ALPHA MIXTURE

Publications (2)

Publication Number Publication Date
KR20190138885A KR20190138885A (ko) 2019-12-16
KR102138847B1 true KR102138847B1 (ko) 2020-07-28

Family

ID=65437535

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197035309A KR102138847B1 (ko) 2017-08-25 2018-06-15 알파 블렌딩을 사용한 동적 이미지 컬러 리매핑 방법

Country Status (6)

Country Link
US (1) US10529124B2 (ko)
EP (1) EP3568833B1 (ko)
JP (1) JP6831482B2 (ko)
KR (1) KR102138847B1 (ko)
CN (1) CN110392904B (ko)
WO (1) WO2019038604A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024076011A1 (ko) * 2022-10-06 2024-04-11 삼성전자 주식회사 비디오 편집을 위한 전자 장치 및 그 동작 방법

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019106856A1 (de) 2019-03-18 2020-09-24 Hueck Rheinische Gmbh Verfahren und System zum Herstellen einer Werkstoffplatte
CN111124404B (zh) * 2019-11-29 2023-06-20 武汉虹信技术服务有限责任公司 一种自定义颜色的显示方法及系统
CN111314770B (zh) * 2020-03-06 2022-03-04 网易(杭州)网络有限公司 游戏中列表的显示方法、装置以及终端设备
CN111915478B (zh) * 2020-07-14 2023-06-23 厦门真景科技有限公司 一种基于保边模糊的美颜方法、装置、设备及计算机可读存储介质
CN112802174B (zh) * 2020-12-31 2023-12-15 珠江水利委员会珠江水利科学研究院 一种基于Web的风场三维动态可视化呈现方法
KR102439429B1 (ko) * 2021-12-21 2022-09-05 주식회사 인피닉 객체 추출이 용이한 어노테이션 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080101691A1 (en) * 2004-08-27 2008-05-01 Alias Systems Transparency And/Or Color Processing
JP2010527168A (ja) * 2007-04-03 2010-08-05 ライフ タッチ インク. スチル写真における背景置換方法及び背景置換装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038031A (en) * 1997-07-28 2000-03-14 3Dlabs, Ltd 3D graphics object copying with reduced edge artifacts
US8508546B2 (en) * 2006-09-19 2013-08-13 Adobe Systems Incorporated Image mask generation
CN101295408A (zh) * 2007-04-27 2008-10-29 新奥特硅谷视频技术有限责任公司 一种3d图文渲染方法和渲染系统
CN101409790B (zh) * 2008-11-24 2010-12-29 浙江大学 一种高效的多投影仪拼接融合方法
US8995783B2 (en) * 2012-09-19 2015-03-31 Qualcomm Incorporation System for photograph enhancement by user controlled local image enhancement
WO2015167738A1 (en) * 2014-04-30 2015-11-05 Replay Technologies Inc. System and method of limiting processing by a 3d reconstruction system of an environment in a 3d reconstruction of an event occurring in an event space
JP6494249B2 (ja) * 2014-11-12 2019-04-03 キヤノン株式会社 画像形成装置、画像形成方法、プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080101691A1 (en) * 2004-08-27 2008-05-01 Alias Systems Transparency And/Or Color Processing
JP2010527168A (ja) * 2007-04-03 2010-08-05 ライフ タッチ インク. スチル写真における背景置換方法及び背景置換装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
T. Porter, et al. Compositing digital images. Proc. of 11th annual conf. on Computer graphics and interactive techniques. Jan. 1984, pp.253-259

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024076011A1 (ko) * 2022-10-06 2024-04-11 삼성전자 주식회사 비디오 편집을 위한 전자 장치 및 그 동작 방법

Also Published As

Publication number Publication date
WO2019038604A1 (en) 2019-02-28
JP6831482B2 (ja) 2021-02-17
EP3568833B1 (en) 2020-08-05
US10529124B2 (en) 2020-01-07
JP2020526808A (ja) 2020-08-31
US20190066367A1 (en) 2019-02-28
CN110392904B (zh) 2020-07-07
CN110392904A (zh) 2019-10-29
EP3568833A1 (en) 2019-11-20
KR20190138885A (ko) 2019-12-16

Similar Documents

Publication Publication Date Title
KR102138847B1 (ko) 알파 블렌딩을 사용한 동적 이미지 컬러 리매핑 방법
US10242265B2 (en) Actor/person centric auto thumbnail
US10489970B2 (en) 2D image processing for extrusion into 3D objects
KR102366752B1 (ko) 지도 인터페이스들의 지연시간 단축
US11119719B2 (en) Screen sharing for display in VR
US20130162766A1 (en) Overlaying frames of a modified video stream produced from a source video stream onto the source video stream in a first output type format to generate a supplemental video stream used to produce an output video stream in a second output type format
US10204447B2 (en) 2D image processing for extrusion into 3D objects
US11514554B2 (en) Method to generate additional level of detail when zooming in on an image
CN112596843B (zh) 图像处理方法、装置、电子设备及计算机可读存储介质
US20120293616A1 (en) Apparatus and method for converting 2d content into 3d content, and computer-readable storage medium thereof
US20210067766A1 (en) Data transmission method, method of displaying three-dimensional image, data transmission device and three-dimensional image display device
US8908964B2 (en) Color correction for digital images
CN109743566A (zh) 一种用于识别vr视频格式的方法与设备
US8824778B2 (en) Systems and methods for depth map generation
US20120293638A1 (en) Apparatus and method for providing 3d content
US20130162762A1 (en) Generating a supplemental video stream from a source video stream in a first output type format used to produce an output video stream in a second output type format
US20170168687A1 (en) Image processing method and apparatus for operating in low-power mode
US20130162765A1 (en) Modifying luminance of images in a source video stream in a first output type format to affect generation of supplemental video stream used to produce an output video stream in a second output type format
KR20230022153A (ko) 소프트 레이어링 및 깊이 인식 복원을 사용한 단일 이미지 3d 사진
CN117221504B (zh) 一种视频抠像方法及装置
KR20170069134A (ko) 저전력 모드를 위한 영상 처리 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant