KR20190135527A - 결합형 양방향 필터의 효율적인 구현 - Google Patents

결합형 양방향 필터의 효율적인 구현 Download PDF

Info

Publication number
KR20190135527A
KR20190135527A KR1020197033378A KR20197033378A KR20190135527A KR 20190135527 A KR20190135527 A KR 20190135527A KR 1020197033378 A KR1020197033378 A KR 1020197033378A KR 20197033378 A KR20197033378 A KR 20197033378A KR 20190135527 A KR20190135527 A KR 20190135527A
Authority
KR
South Korea
Prior art keywords
image
depth
splatting
volume
pixel
Prior art date
Application number
KR1020197033378A
Other languages
English (en)
Other versions
KR102464876B1 (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 KR20190135527A publication Critical patent/KR20190135527A/ko
Application granted granted Critical
Publication of KR102464876B1 publication Critical patent/KR102464876B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/261Image signal generators with monoscopic-to-stereoscopic image conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/10Image enhancement or restoration using non-spatial domain filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/271Image signal generators wherein the generated image signals comprise depth maps or disparity maps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details
    • G06T2207/20028Bilateral filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

결합형 양방향 필터를 감소된 계산 복잡도로 사용하여 이미지로부터 깊이 맵을 추정하기 위한 집적 회로 및 컴퓨터에 의해 구현되는 방법이 제공된다. 그 목적을 위해, 템플릿 깊이 맵의 깊이 데이터뿐만 아니라 이미지의 이미지 데이터가 액세스된다. 그 다음에 결합형 양방향 필터가 결합형 양방향 필터에서의 범위 항으로서 이미지 데이터를 사용하여 템플릿 깊이 맵에 적용되며, 그럼으로써 출력으로서 이미지 적응 깊이 맵을 획득한다. 결합형 양방향 필터를 적용하는 단계는 가중된 깊이 합 볼륨 및 가중치 합 볼륨을 메모리에서 각각의 비어 있는 데이터 구조들로서 초기화하는 단계, 상기 볼륨들을 채우기 위해 스플래팅 동작을 수행하는 단계, 이미지 적응 깊이 볼륨을 획득하도록 슬라이싱 동작을 수행하는 단계, 이미지의 각각의 픽셀에 대한 이미지 적응 깊이 맵의 이미지 적응 깊이 값을 획득하도록 보간 동작을 수행하는 단계를 포함한다. 결합형 양방향 필터를 사용하여 이미지로부터 깊이 맵을 추정하기 위한 알려진 방법들과 비교하여, 감소된 계산 복잡도가 획득된다.

Description

결합형 양방향 필터의 효율적인 구현
본 발명은 결합형 양방향 필터(joint bilateral filter)를 사용하여 이미지로부터 깊이 맵을 추정하도록 구성된 집적 회로에 관한 것이다. 본 발명은 또한 결합형 양방향 필터를 사용하여 이미지로부터 깊이 맵을 추정하기 위한 방법, 및 프로세서 시스템으로 하여금 방법을 수행하게 하도록 배열된 명령어들을 나타내는 일시적 또는 비일시적 데이터를 포함하는 컴퓨터 판독 가능 매체에 관한 것이다.
텔레비전들, 태블릿들 및 스마트 폰들과 같은 디스플레이 디바이스들은 그러한 디바이스에서 콘텐츠를 볼 때 사용자에게 깊이의 인식을 제공하는 3D 디스플레이를 포함할 수 있다. 그 목적을 위해, 이러한 3D 디스플레이들은 그들 독자적으로 또는 사용자가 착용한 안경과 함께, 입체 영상(stereoscopy)에 기초하여 사용자에게 깊이의 인식을 제공하기 위해 사용자의 각각의 눈에 상이한 이미지들을 제공할 수 있다.
3D 디스플레이들은 전형적으로 깊이 정보를 포함하는 콘텐츠를 필요로 한다. 깊이 정보는 3D 콘텐츠에서 암시적으로 제공될 수 있다. 예를 들어, 짧게 '스테레오' 콘텐츠라고도 지칭하는 입체 영상 콘텐츠의 경우, 깊이 정보는 좌측 이미지와 우측 이미지 사이의 차이들에 의해 제공된다. 깊이 정보는 또한 3D 콘텐츠에서 명시적으로 제공될 수 있다. 예를 들어, 소위 이미지 + 깊이 포맷으로 인코딩된 3D 콘텐츠에서, 깊이 정보는 깊이 값들, 디스패리티 값들 및/또는 시차 변이(parallactic shift) 값들을 포함할 수 있는 깊이 맵에 의해 제공되며, 상기 값들 각각은 카메라를 향하는 이미지 내의 물체들이 거리를 나타낸다.
현재 이용 가능한 많은 양의 콘텐츠, 예를 들어 영화들, 텔레비전 프로그램들, 이미지 등은 2D 콘텐츠이다. 이러한 콘텐츠는 그의 3D 렌더링을 3D 디스플레이에서 가능하게 하기 위해 3D로 변환될 필요가 있다. 3D 로의 변환은 2D 이미지에 대하여, 예를 들어 2D 비디오의 각각의 2D 이미지에 대하여 깊이 맵을 생성하는 것을 포함할 수 있다. 일반적으로, 이러한 프로세스는 '2D에서 3D로 변환'이라고 말하며, 깊이 맵을 수동으로 생성하는 것을 포함할 수 있다. 예를 들어, 워크스테이션에서 실행되는 소프트웨어 툴은 디지털 펜을 사용하여 깊이 맵들을 끌어냄으로써 전문 사용자에게 2D 이미지들에 깊이를 추가할 수 있는 가능성을 제공할 수 있다. 깊이 맵은 또한 자동으로 생성될 수도 있다. 예를 들어, 디바이스는 2D 이미지 내의 물체들이 카메라를 향하고 있는 거리를 추정하고, 그에 기초하여, 2D 이미지에 대한 깊이 맵을 생성할 수 있다.
깊이 맵의 자동 생성의 예는 단안 정보(monocular information)를 이용하여 이미지에 대한 깊이 맵을 생성하는 방법을 설명하는 US 8,447,141로부터 알려져 있다. 이 방법은 전역적 깊이 프로파일(global depth profile)을 제공하고, 그리고 기울기(slant)와 같은 간단한 일반 템플릿일 수 있는 이미지에 대한 제1 깊이 맵을 생성하는 단계를 포함한다. 더욱이, 제1 깊이 맵의 깊이 값들 및 이미지의 컬러 및/또는 루미넌스 값들에 기초하는 제2 깊이 맵이 생성된다. 제2 깊이 맵을 생성하는 단계는 이미지로부터의 범위 정보를 사용하여 결합형 양방향 필터를 제1 깊이 맵에 적용하는 단계를 포함할 수 있다. 그 결과, 물체들이 전역적 깊이 프로파일과 뚜렷이 다르게 만들어 질 것이라고 한다.
효과적으로, US 8,447,141은 결합형 양방향 필터를 사용하여 깊이 맵에 의해 제공되는 일반적인 템플릿을 이미지의 실제 콘텐츠에 적응시킨다.
그러나, 결합형 양방향 필터의 구현은 계산적으로 복잡하다. 출판물("A fast approximation of the bilateral filter using a signal processing approach" by Paris et al., International Journal of Computer Vision 81.1, 2009, pp. 24-52)에는 계산적으로 덜 복잡하다고 말하는 결합형 양방향 필터의 근사물이 기재되어 있다. 불리하게도, 기재되어 있는 양방향 필터의 근사물은 여전히 비교적 계산적으로 복잡하며, 이에 따라 소비자 디바이스들에서, 예를 들어, 집적 회로에서 비용 효율적인 구현에 매우 적합하진 않다.
본 발명의 목적들 중 하나는 결합형 양방향 필터를 사용하여 이미지로부터 깊이 맵을 추정하도록 구성된 집적 회로를 획득하는 것으로, 이것은 Paris 등에 의해 기재된 근사물보다 계산적으로 덜 복잡하다.
본 발명의 제1 양태는 이미지로부터 깊이 맵을 추정하도록 구성된 집적 회로를 제공하며, 집적 회로는 메모리를 포함하거나 상기 메모리에 연결되고, 상기 집적 회로는,
- 상기 이미지의 이미지 데이터에 액세스하도록 구성된 이미지 데이터 인터페이스;
- 템플릿 깊이 맵(template depth map)의 깊이 데이터에 액세스하도록 구성된 깊이 데이터 인터페이스 - 상기 템플릿 깊이 맵은 상기 이미지 데이터에 적응될 템플릿을 나타냄 - ;
- 상기 이미지 데이터를 결합형 양방향 필터(joint bilateral filter)에서의 범위 항(range term)으로서 사용하여 상기 결합형 양방향 필터를 상기 템플릿 깊이 맵에 적용하고, 그럼으로써 출력으로서 이미지 적응 깊이 맵(image-adapted depth map)을 획득하도록 구성된 처리 서브시스템을 포함하고;
상기 처리 서브시스템은,
- 가중된 깊이 합 볼륨(sum-of-weighted-depths volume) 및 가중치 합 볼륨(sum-of-weights volume)을 상기 메모리 내의 각각의 비어 있는 데이터 구조들로서 초기화하고 - 상기 볼륨들의 각각은,
- 상기 이미지 데이터의 2 개의 공간 차원들의 다운 샘플링된 버전을 나타내는 2 개의 공간 차원들, 및
- 상기 이미지 데이터의 범위 차원의 다운 샘플링된 버전을 나타내는 적어도 하나의 범위 차원을 포함하고, 상기 볼륨들의 셀들은 상기 이미지의 2 개의 공간 차원들 및 상기 이미지 데이터의 범위 차원에 대하여 정의된 상기 이미지의 좌표계에서 빈들을 정의함 - ;
- 상기 볼륨들을 채우기 위해 스플래팅 동작(splatting operation)을 수행하고 - 상기 스플래팅 동작은, 상기 이미지의 각각의 픽셀에 대해,
- 상기 이미지의 상기 좌표계에서의 상기 픽셀의 좌표에 기초하여 - 상기 좌표는 상기 볼륨들 각각의 빈들에 대한 상기 픽셀의 상대적 위치를 나타냄 - ,
- 인접한 빈들에 맵핑되는 상기 스플래팅 동작에서 풋프린트(footprint)를 갖는 픽셀에 기초하여 상기 픽셀이 상기 스플래팅 동작에 기여하는, 상기 가중된 깊이 합 볼륨에서 상기 인접한 빈들을 식별하는 것을 포함하고, 상기 스플래팅 동작에 기여하는 것은,
- 상기 템플릿 깊이 맵으로부터 상기 픽셀의 깊이 값을 획득하는 것;
- 상기 인접한 빈들 각각에 대해,
- 상기 깊이 값을 가중하기 위한 스플래팅 가중치를 획득하는 것 - 상기 스플래팅 가중치는 각각의 빈에 대한 상기 픽셀의 상기 상대적 위치에 기초하여 결정됨 -,
- 상기 스플래팅 가중치에 의해 상기 깊이 값을 가중하는 것,
- 상기 가중된 깊이 값을 상기 가중된 깊이 합 볼륨의 상기 각각의 빈에 누적하고, 상기 스플래팅 가중치를 상기 가중치 합 볼륨의 대응하는 빈에 누적하는 것을 포함함 - ;
- 상기 가중된 깊이 합 볼륨의 각각의 빈 및 상기 가중치 합 볼륨의 대응하는 빈에 대해, 상기 누적된 가중된 깊이 값들을 상기 누적된 가중치들로 나눔으로써 이미지 적응 깊이 볼륨(image-adapted depth volume)을 획득하도록 슬라이싱 동작을 수행하고;
상기 이미지 내의 각각의 픽셀에 대해, 상기 이미지 적응 깊이 맵의 이미지 적응 깊이 값을 획득하도록 보간 동작을 수행함으로써,
상기 결합형 양방향 필터를 구현하도록 구성되고,
상기 보간 동작은,
- 상기 이미지의 상기 좌표계에서의 상기 픽셀의 상기 좌표에 기초하여, 상기 스플래팅 동작 동안 상기 가중된 깊이 합 볼륨의 대응하는 빈들에 기여하는 상기 픽셀에 기초하여 상기 이미지 적응 깊이 볼륨에서 상기 인접한 빈들을 식별하는 것;
- 상기 이미지 적응 깊이 볼륨의 인접한 빈들에 보간 필터를 적용하는 것을 포함하고, 상기 보간 필터는, 상기 인접한 빈들 각각에 대해, 상기 각각의 빈에 대한 상기 픽셀의 상대적 위치에 기초하여 결정되는 보간 가중치를 포함한다.
본질적으로, 집적 회로는 거친 해상도이지만, Paris 등과 상이한 방식으로 결합형 양방향 필터를 구현한다. 유리한 차이점들 중 하나는 Paris 등은 먼저 보간을 수행한 다음 슬라이싱 동작(slicing operation)을 수행한다는 것으로, 후자의 슬라이싱 동작은 분할(division)을 포함한다. 따라서 Paris 등에서의 분할은 거꾸로 풀 해상도로 보간된 데이터에 대해 수행된다. 청구된 바와 같은 집적 회로는 다운 샘플링된 볼륨들에 대해 슬라이싱 동작을 수행하며, 그래서 해상도가 크게 감소된다. 예를 들어, 18x12x18(높이 x 너비 x 범위)의 볼륨들이 사용되면, 3,888 번의 분할 동작들만이 필요하며, 이것은 예를 들어 480 x 270 이미지에 대해 분할을 수행하는 데 필요했을 것(129,600 번의 분할 동작들)보다 훨씬 적다. 다운 샘플링된 볼륨들에 대해 슬라이싱 동작을 수행하는 것의 품질 감소는 매우 제한적인 것으로 밝혀졌다. 그러나, 분할 동작들은 구현하는 데 계산적으로 복잡하기 때문에, 결합형 양방향 필터를 수행하는 것의 계산 부담은 크게 감소된다. 이것은 스플라이싱 동작이 소프트웨에서 수행될 수 있게 하며, 이는 추가로, 그 구현과 관련하여 유연성을 얻을 수 있다.
입력으로서 사용되는 깊이 맵은 템플릿 깊이 맵(template depth map)일 수 있고, 그로 인해 기울기와 같은 미리 결정된 일반 깊이 프로파일, 또는 이미지의 콘텐츠와 가장 일치하는 것으로서 상이한 일반 깊이 프로파일들의 리스트로부터 선택되는 일반 깊이 프로파일에 대응한다는 점을 유의하여야 한다. 그러나, 일반적으로, 깊이 맵은 이미지에 추가로 적응됨으로써 이득을 주는 임의의 깊이 맵일 수 있다.
또한, 볼륨들은, 예를 들어 이미지의 2 개의 공간 차원들의 다운 샘플링된 버전들 및 이미지의 성분들 중 하나, 예를 들면 루미넌스 성분의 범위 차원의 다운 샘플링된 버전에 의해 구성되는 3 차원 볼륨들일 수 있다는 것을 유의하여야 한다. 대안적으로, 볼륨들은 2 개 이상의 범위 차원들을 포함할 수 있으며, 범위 차원들은 이미지의 성분들 중 2 개 이상, 예를 들어 YUV 이미지의 루미넌스 및 하나 이상의 크로미넌스 성분들, 또는 RGB 이미지의 개별 색 성분들 등에 대응할 수 있다.
임의로, 처리 서브시스템은 애플리케이션 특정 하드웨어 회로 및 소프트웨어에 의해 구성 가능한 마이크로프로세서를 포함하며, 여기서:
- 애플리케이션 특정 하드웨어 회로는 스플래팅 동작 및 보간 동작을 수행하도록 구성되고;
- 마이크로프로세서는, 집적 회로의 동작 동안, 소프트웨어에 의해 슬라이싱 동작을 수행하도록 구성된다.
본 발명의 이러한 양태는 스플래팅 동작 및 보간 동작 둘 모두가 여전히 비교적 계산적으로 복잡하지만, 슬라이싱 동작은 다운 샘플링된 볼륨들에 대해서만 단독으로 동작함으로써 Paris 등과 비교하여 복잡성이 상당히 감소되었다는 통찰에 기초한다. 이와 같이, 슬라이싱 동작은 소프트웨어에서 수행되어, 유연성을 얻을 수 있는 반면, 스플래팅 동작 및 보간 동작은 소프트웨어에 비해 하드웨어 구현의 일반적으로 더 높은 효율을 고려하여 하드웨어에서 수행될 수 있다.
임의로, 애플리케이션 특정 하드웨어 회로는 스플래팅 동작에서 사용된 스플래팅 가중치들 및/또는 보간 동작에서 사용된 보간 가중치들을 저장하기 위한 필터 테이블을 포함한다. 스플래팅 동작 및 보간 동작이 하드웨어 동작들인 경우, 상기 가중치들은 판독 전용 메모리 또는 랜덤 액세스 메모리일 수 있는, 하드웨어 회로의 필터 테이블에 저장될 수 있다. 이것은 상기 가중치들이 각각의 동작들의 하드웨어에 의해 쉽게 액세스될 수 있게 한다.
임의로, 필터 테이블에는 각각의 동작을 수행하기 이전에 스플래팅 동작에서 사용된 스플래팅 가중치들 및 보간 동작에서 사용된 보간 가중치들이 로딩된다. 스플래팅 동작에 대해 보간 동작과 상이한 가중치들이 사용되는 경우, 이들 가중치들은 각각의 동작이 수행되기 이전에, 예를 들어 마이크로프로세서에 의해 필터 테이블에 로딩될 수 있다. 이러한 방식으로, 필터 테이블의 하드웨어는 재사용되며 스플래팅 동작의 하드웨어 및 보간 동작의 하드웨어 둘 모두에 대해 별도로 구현되지 않는다. 스플래팅과 보간 동작 사이에서 필터 테이블의 하드웨어의 재사용 외에도 또는 대안적으로, 일반적으로 스플래팅과 보간 동작 사이에서 빈 내의 샘플의 상대적 위치를 결정하기 위한 하드웨어의 재사용이 또한 있을 수 있다는 것을 유의하여야 한다.
임의로, 스플래팅 동작에서 사용된 스플래팅 가중치들 및 보간 동작에서 사용된 보간 가중치들은 동일하다. 이러한 본 발명의 양태는 스플래팅 동작을 수행하는 것에 대하여 보간 동작을 수행하는 것과 동일한 가중치들이 사용될 수 있다는 통찰을 기초로 하는데, 왜냐하면 두 동작들 모두는 본 맥락에서 또한 한편으로는 이미지에 대해 동작하고, 다른 한편으로는, 이미지의 2 개의 공간 차원들 및 범위 차원에 대해 다운 샘플링된 차원들을 갖는 다차원 볼륨에 대해 동작하는 본질적으로 유사한 동작들이기 때문이다. 동일한 가중치들을 사용함으로써 두 동작들 모두의 구현이 상당히 더 효율적이다.
임의로, 스플래팅 동작에서 사용된 스플래팅 가중치들 및 보간 동작에서 사용된 보간 가중치들은 이미지의 좌표계에 대해 선형 보간을 나타낸다. 따라서, 가중치들은 볼륨들의 각각의 차원들을 따라 스플래팅 동작 및 보간 동작의 각각의 볼륨들의 데이터에 선형 보간이 적용되도록 선택된다. 예를 들어, 3 차원 볼륨의 경우, 3중 선형 보간(tri-linear interpolation)이 사용될 수 있는 반면, 예를 들어 2 개의 범위 차원들을 갖는 4 차원 볼륨의 경우, 4중 선형 보간(quad-linear interpolation)이 사용될 수 있다. 선형 보간은 스패팅 동작 및 보간 동작에 매우 적합한 것으로 밝혀졌다. 대안적으로, 3차 보간(cubic interpolation)을 비롯한(그러나, 이에 제한되지 않음), 고차 보간이 각각의 차원에서 사용될 수 있다.
임의로, 마이크로프로세서는 소프트웨어에 의해, 집적 회로의 동작 동안, 슬라이싱 동작을 수행하기 이전에 가중된 깊이 합(sum-of-weighted-depths) 볼륨 및 가중치 합(sum-of-weights) 볼륨에 시간 필터링(temporal filtering)을 적용하도록 구성된다. 시간 필터링은 종종 깊이 맵들에 적용되어 시간 안정성(temporal stability)을 보장한다. 그러한 시간 필터링을 깊이 맵에 적용하는 것 대신에 또는 추가적으로, 깊이 맵을 독자적으로 생성하는데 사용되는 볼륨들이 시간적으로 필터링될 수 있다. 이것은 보다 시간적으로 안정적인 깊이 맵을 얻으면서, 이미지에 비해 상대적으로 작은 크기의 볼륨들로 구현하는 데 계산적으로 효율적인 것으로 밝혀졌다. 예를 들어, 전형적인 18x12x18의 볼륨에는 필터링될 3,888 개의 데이터 값들이 포함되어 있고, 반면에 480x270의 이미지에는 필터링될 129,600 개의 데이터 값들이 포함되어 있다. 필터링이 구체적으로 볼륨(들)에 적용되므로, 소프트웨어 구현이 가능하다. 유리하게는, 무한 임펄스 응답(Infinite Impulse Response)(MR) 필터를 가중된 깊이 합 볼륨에 적용하는 것이, 소위 말하는 숏-컷들(shot-cuts)의 경우에, 전용의 숏-컷 처리를 필요로 하지 않고, 예를 들면, 전용의 숏-컷 검출기들을 포함하지 않고, 결과로 생긴 깊이 맵의 시간적 안정성을 개선하는 것으로 밝혀졌다. 시간 필터링은, 예를 들어 1 차 또는 고차 무한 임펄스 응답 필터일 수 있고, 볼륨 데이터에 대한 다른(비선형) 동작의 일부로서 구현될 수 있다.
임의로, 마이크로프로세서는 소프트웨어에 의해, 집적 회로의 동작 동안, 이미지 적응 깊이 볼륨(image-adapted depth volume)에 시간적 필터링을 적용하도록 구성된다. 이러한 시간적 필터링은 가중된 깊이 합 볼륨 또는 가중치 합 볼륨의 필터링과 관련하여 설명되는 바와 같이 실제 이미지의 필터링과 비교하여 계산 복잡도에서 상당한 감소들을 제공한다. 시간 필터링은 가중된 깊이 합 볼륨 또는 가중치 합 볼륨의 필터링과 관련하여 설명되는 것과 동일한 유형의 것일 수 있다.
임의로, 처리 서브시스템은 스플래팅 동작을 수행한 이후에, 가중된 깊이 합 볼륨을 가우스 커널(Gaussian kernel)로 컨볼루션하도록 구성된다. 그러한 컨볼루션은 깊이 맵의 품질을 개선하는 것으로 밝혀졌다.
임의로, 템플릿 깊이 맵은 이미지에 관련하여 감소된 공간 해상도를 가지며, 예를 들어 가중된 깊이 합 볼륨 및 가중치 합 볼륨이라는 2 개의 공간 차원들에 대응하는 2 개의 공간 차원들을 갖는다. 템플릿 깊이 맵은 그 다음에 스플래팅 동작에서 사용되는 것과 동일한 가중치들을 사용하여 보간될 수 있다.
임의로, 결합형 양방향 필터는 이미지의 루미넌스 데이터에만 적용된다. 임의로, 결합형 양방향 필터는 이미지의 루미넌스 데이터 및 크로미넌스 데이터에 적용된다. 후자의 경우, 볼륨들은 3 개의 범위 차원들, 예를 들어 Y, U 및 V 차원을 갖는 5 차원 볼륨들일 수 있다.
임의로, 집적 회로는 필드 프로그래머블 게이트 어레이(field-programmable gate array) 또는 시스템 온 칩(system on chip)이거나 그 일부이다. 집적 회로는 디스플레이 디바이스 또는 셋톱 박스와 같은 디바이스의 일부일 수 있지만, 또한 깊이 맵을 추정함으로써 2D 비디오를 3D 비디오로 변환하는 데 사용될 수 있는 다른 디바이스일 수도 있다.
본 발명의 다른 양태는 이미지로부터 깊이 맵을 추정하기 위한 컴퓨터에 의해 구현되는 방법을 제공하며, 방법은:
- 상기 이미지의 이미지 데이터에 액세스하는 단계;
- 템플릿 깊이 맵 의 깊이 데이터에 액세스하는 단계 - 상기 템플릿 깊이 맵은 상기 이미지 데이터에 적응될 템플릿을 나타냄 - ;
- 상기 이미지 데이터를 결합형 양방향 필터에서의 범위 항으로서 사용하여 상기 템플릿 깊이 맵에 상기 결합형 양방향 필터를 적용하고 그럼으로써 출력으로서 이미지 적응 깊이 맵을 획득하는 단계를 포함하고,
상기 결합형 양방향 필터를 적용하는 단계는,
- 가중된 깊이 합 볼륨 및 가중치 합 볼륨을 메모리 내의 각각의 비어 있는 데이터 구조들로서 초기화하는 단계 - 상기 볼륨들의 각각은,
- 상기 이미지 데이터의 2 개의 공간 차원들의 다운 샘플링된 버전을 나타내는 2 개의 공간 차원들, 및
- 상기 이미지 데이터의 범위 차원의 다운 샘플링된 버전을 나타내는 적어도 하나의 범위 차원을 포함하고, 상기 볼륨들의 셀들은 상기 이미지의 2 개의 공간 차원들 및 상기 이미지 데이터의 범위 차원에 대하여 정의된 상기 이미지의 좌표계에서 빈들을 정의함 - ;
- 상기 볼륨들을 채우기 위해 스플래팅 동작을 수행하는 단계 - 상기 스플래팅 동작은, 상기 이미지의 각각의 픽셀에 대해,
- 상기 이미지의 상기 좌표계에서의 상기 픽셀의 좌표에 기초하여 - 상기 좌표는 상기 볼륨들 각각의 빈들에 대한 상기 픽셀의 상대적 위치를 나타냄 - ,
- 인접한 빈들에 맵핑되는 상기 스플래팅 동작에서 풋프린트를 갖는 픽셀에 기초하여 상기 픽셀이 상기 스플래팅 동작에 기여하는, 상기 가중된 깊이 합 볼륨에서 상기 인접한 빈들을 식별하는 것을 포함하고, 상기 스플래팅 동작에 기여하는 것은,
- 상기 템플릿 깊이 맵으로부터 상기 픽셀의 깊이 값을 획득하는 것;
- 상기 인접한 빈들 각각에 대해,
- 상기 깊이 값을 가중하기 위한 스플래팅 가중치를 획득하는 것 - 상기 스플래팅 가중치는 각각의 빈에 대한 상기 픽셀의 상기 상대적 위치에 기초하여 결정됨 -,
- 상기 스플래팅 가중치에 의해 상기 깊이 값을 가중하는 것,
- 상기 가중된 깊이 값을 상기 가중된 깊이 합 볼륨의 상기 각각의 빈에 누적하고, 상기 스플래팅 가중치를 상기 가중치 합 볼륨의 대응하는 빈에 누적하는 것을 포함함 - ;
- 상기 가중된 깊이 합 볼륨의 각각의 빈 및 상기 가중치 합 볼륨의 대응하는 빈에 대해, 상기 누적된 가중된 깊이 값들을 상기 누적된 가중치들로 나눔으로써 이미지 적응 깊이 볼륨을 획득하도록 슬라이싱 동작을 수행하는 단계;
상기 이미지 내의 각각의 픽셀에 대해, 상기 이미지 적응 깊이 맵의 이미지 적응 깊이 값을 획득하도록 보간 동작을 수행하는 단계를 포함하고,
상기 보간 동작은,
- 상기 이미지의 상기 좌표계에서의 상기 픽셀의 상기 좌표에 기초하여, 상기 스플래팅 동작 동안 상기 가중된 깊이 합 볼륨의 대응하는 빈들에 기여하는 상기 픽셀에 기초하여 상기 이미지 적응 깊이 볼륨에서 상기 인접한 빈들을 식별하는 것;
- 상기 이미지 적응 깊이 볼륨의 인접한 빈들에 보간 필터를 적용하는 것을 포함하고, 상기 보간 필터는, 상기 인접한 빈들 각각에 대해, 상기 각각의 빈에 대한 상기 픽셀의 상대적 위치에 기초하여 결정되는 보간 가중치를 포함한다.
발명의 다른 양태는 프로세서 시스템으로 하여금 방법을 수행하게 하도록 배열된 명령어들을 나타내는 일시적 또는 비일시적 데이터를 포함하는 컴퓨터 판독 가능 매체를 제공한다.
관련 기술분야의 통상의 기술자라면 본 발명의 위에서 언급된 둘 이상의 실시예들, 구현예들 및/또는 양태들이 유용하다고 생각되는 임의의 방식으로 결합될 수 있다는 것을 인식할 것이다.
집적 회로의 설명된 수정들 및 변형들에 대응하는 방법의 수정들 및 변형들은 본 설명에 기초하여 관련 기술분야의 통상의 기술자에 의해 수행될 수 있다.
본 발명의 이러한 양태들 및 다른 양태들은 이하에서 설명되는 실시예들로부터 명백 해지고 실시예들을 참조하여 상세히 설명될 것이다. 도면에서,
도 1은 계산적으로 효과적인 방식으로 이미지로부터 깊이 맵을 추정하도록 구성된 집적 회로를 개략적으로 도시한다.
도 2는 스플래팅 동작 동안 가중치들 및 가중된 깊이 값들을 누적하는데 사용될 수 있고 보간 동작 동안 깊이 값들을 보유할 수 있는 이미지와 볼륨 사이의 관계를 도시한다.
도 3a는 스플래팅 동작의 간략화된 예를 도시한다.
도 3b는 스플래팅 동작 및 보간 동작 둘 다에 대한 빈 어드레싱(bin addressing) 및 연관된 가중치들을 예시하는 상세한 예를 도시한다.
도 4는 스플래팅 동작의 다양한 양태들을 도시한다.
도 5 내지 도 7은 보간 동작의 다양한 양태들을 도시한다. 도 8은 이미지로부터 깊이 맵을 추정하기 위한 방법을 도시한다.
도 9는 프로세서 시스템으로 하여금 방법을 수행하게 하기 위한 명령어들을 포함하는 컴퓨터 판독 가능 매체를 도시한다.
상이한 도면들에서 동일한 참조 번호들을 갖는 항목들은 동일한 구조적 특징들 및 동일한 기능들을 갖거나 동일한 신호들이라는 것을 유의하여야 한다. 그러한 항목의 기능 및/또는 구조가 설명된 경우, 상세한 설명에서 그에 관한 반복 설명은 필요하지 않다.
참조 부호 및 약어들의 리스트
다음의 참조 부호 및 약어들의 리스트는 도면들의 해석을 용이하게 하기 위해 제공되며 청구 범위를 제한하는 것으로 해석되어서는 안된다.
010 이미지 데이터
020 깊이 볼륨 입력 데이터
022 깊이 출력 데이터
024 템플릿 깊이 데이터
026 보간된 템플릿 깊이 데이터
030 가중치 합 볼륨 데이터
032 가중된 깊이 합 볼륨 데이터 052 가중치 및 볼륨 인덱스 데이터
054 가중치 데이터
100 집적 회로의 처리 서브시스템
110 이미지 데이터 입력 인터페이스
120 깊이 볼륨 데이터 입력 인터페이스
122 깊이 데이터 출력 인터페이스
130-132 볼륨 데이터 출력 인터페이스
140 스플래팅 블록
150 가중 블록
160 보간 블록
170 2D 보간 블록
180 제어 로직
200 이미지
210 수평 차원
220 수직 차원
250 밝은 이미지 패치의 매핑
260 어두운 이미지 배경의 매핑
300 이미지의 볼륨 표현
310 수평 차원
320 수직 차원
330 범위 차원
400 차원(수평, 수직 또는 범위) 410 일련의 깊이 샘플들
420 스플랫 누적 간격
430 가중치 함수
440 빈 간격
442 에지 빈
444 비 에지 빈(non-edge bin)
500 이미지로부터 깊이 맵을 추정하기 위한 방법
510 이미지 데이터에 액세스
520 깊이 데이터에 액세스
530 결합형 양방향 필터를 적용
540 볼륨들을 초기화
550 스플래팅 동작
560 슬라이싱 동작
570 보간 동작
600 컴퓨터 판독 가능 매체
610 명령어들을 나타내는 비일시적 데이터
도 1은 계산적으로 효과적인 방식으로 이미지로부터 깊이 맵을 추정하도록 구성된 집적 회로의 처리 서브시스템(100)을 개략적으로 도시한다. 처리 서브시스템(100)은 기능 블록도로서 도시되며, 마이크로프로세서, 애플리케이션 특정 하드웨어 회로 및 하나 이상의 로컬 메모리들과 같은 구성 요소들에 의해 구현될 수 있다. 집적 회로는 다른 마이크로프로세서들, 버스 시스템, 다른 메모리들 등을 비롯한(그러나 이에 제한되지 않음), 도 1에 도시되지 않은 다른 구성 요소들을 포함할 수 있다. 일반적으로, 집적 회로는 필드 프로그래머블 게이트 어레이(FPGA) 또는 시스템-온-칩(SoC)으로서, 또는 그 일부로서, 또는 다른 적합한 방식으로 구현될 수 있다.
처리 서브시스템(100)은 이미지 데이터(010)가, 예를 들어 직접 메모리 액세스(Direct Memory Access)(DMA) 통신을 통해, 메모리로부터 판독될 수 있는 이미지 데이터 입력 인터페이스(110)를 포함하는 것으로 도시된다. 예를 들어, 이미지 데이터는 루미넌스 입력 데이터(Yin)일 수 있다. 이와 관련하여, 처리 서브시스템(100)의 이미지 데이터 입력 인터페이스(110) 및 다른 인터페이스들은 도 1 전체에서 'Buf'로 표시된 버퍼로서 작용하는 로컬 메모리를 포함하거나 로컬 메모리에 연결될 수 있다는 것에 유의한다.
처리 서브시스템(100)은 또한 깊이 볼륨 데이터(020)가 메모리로부터 판독될 수 있게 하는 깊이 볼륨 데이터 입력 인터페이스(120), 및 깊이 데이터(022)가 메모리에 기입될 수 있게 하는 깊이 데이터 출력 인터페이스(122)를 포함하는 것으로 도시된다. 처리 서브시스템(100)은 또한 가중치 합 볼륨 데이터(030) 및 가중된 깊이 합 볼륨 데이터(032)를 메모리에 기입하기 위한 각각의 볼륨 데이터 출력 인터페이스(130, 132)를 포함하는 것으로 도시된다.
처리 서브시스템(100)의 다른 기능 블록들은 볼륨 데이터 출력 인터페이스(130, 132)와 통신하는 스플래팅 블록(140), 깊이 데이터 인터페이스(120, 122)와 통신하는 보간 블록(160), 이미지 데이터 입력 인터페이스(110)와 통신하고 가중치 및 볼륨 인덱스 데이터(052)를 스플래팅 블록(140) 및 보간 블록(160)에 제공하는 가중 블록(150), 제어 로직(180)으로부터 템플릿 깊이 데이터(024) 및 가중 블록(150)으로부터 가중치 데이터(054)를 수신하고 보간된 템플릿 깊이 데이터(026)를 스플래팅 블록(140)에 제공하는 2D 보간 블록(170)을 포함한다.
실시예에서, 도 1에 도시된 바와 같은 처리 서브시스템(100)은 애플리케이션 특정 하드웨어 회로로서 구현될 수 있다. 게다가, 앞으로도 또한 논의되는 바와 같이, 별도의 마이크로프로세서(도 1에 도시되지 않음)가 슬라이싱 동작을 수행하도록 구성된 집적 회로에서 제공될 수 있다. 그 목적을 위해, 마이크로프로세서는 예를 들어 DMA를 통해 메모리에 액세스할 수 있다. 대안적으로, 슬라이싱 동작은 또한 애플리케이션 특정 하드웨어 회로에 의해 구현될 수 있다.
처리 서브시스템(100) 및 그 기능 블록들의 동작은 도 2 내지 도 7을 참조하여 추가로 설명될 것이다. 이와 관련하여, 도 1에서 "*"는 도 2를 참조하여 설명되는 것처럼, 볼류메트릭(volumetric) 다차원 데이터 표현과 연관된 로컬 버퍼 또는 인터페이스를 나타낸다는 것을 유의하여야 한다.
도 2는 이미지(200)와 볼륨(300) 사이의 관계를 도시하는 것으로, 이러한 유형의 볼륨은 스플래팅 동작 동안 가중치들 및 가중된 깊이 값들을 누적하고 보간 동작 동안 이미지(200)의 픽셀들의 깊이 값을 보유하기 위해 사용된다. 볼륨(300)은 세 개의 차원들을 갖는 것으로 도시된다. X 차원(310)은 이미지(200)의 수평 축(210)에 대응할 수 있다. Y 차원(320)은 이미지(200)의 수직 축(220)에 대응할 수 있다. I 차원(330)는 이미지의, 예를 들어, 루미넌스 성분과 같은(그러나 이에 제한되지 않음) 이미지(200)의 이미지 성분의 범위 차원에 대응할 수 있다. 볼륨(300)은 이미지(200)의 공간 차원들 및 범위 차원들에 대해 서브샘플링된 크기를 가질 수 있다. 예를 들어, 이미지(200)는 480 픽셀들 x 270 라인들의 공간 차원들(X, Y) 및 256 값들의 범위를 정의하는 8-비트 범위 차원(I)을 가질 수 있지만, 볼륨(300)은 18x12x18(X, Y, I), 즉 공간 차원들(310, 320)에 대해 18x12(X, Y) 및 범위 차원(330)에 대해 18(I)를 가질 수 있다.
볼륨(300)의 셀들은 빈들을 나타낼 수 있다. 스플래팅 동작 동안, 이러한 빈들은 이미지(200)의 깊이 정보의 누적에 대한 누적 간격들을 정의할 수 있다. 여기서, 특정 픽셀과 연관된 가중치 또는 가중된 깊이 값의 누적에 사용되는 빈들은 픽셀의 공간 좌표 및 그 범위 값의 함수로서 선택된다. 예를 들어, 어두운 이미지 콘텐츠의 깊이 정보가 화살표(260)로 도시된 바와 같은 볼륨(300)의 '더 낮은' 빈들에 누적될 수 있고, 반면에 밝은 이미지 콘텐츠의 깊이 정보가 화살표(250)로 도시된 바와 같은 볼륨(300)의 '더 높은' 빈들에 누적될 수 있다는 점에서, 이미지(200)의 루미넌스 값들은 볼륨(300)의 I 차원(330)을 따라 놓인 빈의 좌표를 결정할 수 있다. 또한, 이미지 콘텐츠의 공간 위치는 볼륨(300)의 공간 차원들(310, 320)을 따라 놓인 빈의 위치를 정의할 수 있다. 따라서, 이미지(200)의 픽셀의 공간 좌표 및 범위 값의 조합은, 즉 이미지의 (적어도) 3D 좌표계에서 픽셀의 좌표는 가중치 또는 가중된 깊이 값이 스플래팅 동작 동안 볼륨(300)의 어느 빈(들)에 누적되는지, 또는 어느 빈(들)이 보간 동작에 의한 보간을 위해 픽셀의 깊이 값을 보유하는지를 결정할 수 있다.
이렇게 빈들을 결정하는 것은 본질적으로 픽셀의 공간 좌표 및 범위 값을 볼륨의 좌표 공간 내 좌표에 스플래팅 및 보간 동안 사용될 빈들을 식별하는 볼륨 내 상대적 위치에 기초하여 매핑하는 것을 포함할 수 있다. 효과적으로, 스플래팅 동안, 인접한 빈들은 스플래팅 풋프린트(splatting footprint)에 기초하여 픽셀이 어느 빈들에 기여하는지를 결정하기 위해 식별될 수 있고('기여'는 가중치 또는 가중된 깊이 값의 누적임), 반면에 보간 동안, 인접한 빈들은 볼륨 내 픽셀의 상대적 위치에 기초하여 보간이 어느 빈들 사이에서 수행될지를 결정하기 위해 식별될 수 있다. 그 목적을 위해, 픽셀의 공간 좌표 및 범위 값을 볼륨의 좌표 공간 내 좌표에 매핑하는 매핑 함수가 사용될 수 있으며, 후자의 좌표는 그런 다음, 직접적으로 인접한 빈들을 나타낸다.
서브샘플링으로 인해, 이미지(200)의 다수의 픽셀들은, 그들의 깊이 값들이 적어도 부분적으로 단일 빈에 누적될 수 있다는 점에서, 볼륨(300)의 단일 빈에 기여할 수 있다. 반대로, 단일의 픽셀은 볼륨의 좌표계 내 그의 좌표들이 볼륨(300)의 여러 셀들 사이에 있을 수 있으므로 볼륨(300)의 여러 빈들에 기여할 수 있다. 이와 같이, 볼륨(300)에서 픽셀의 깊이 값을 누적할 때, 깊이 값이 볼륨(300)의 여러 셀들에 기여한다는 것을 감안하기 위해 가중되어야 할 수 있다. 이것은 또한 '스플래팅'이라고도 지칭한다.
도 3a는 단일 차원(K)(400)을 따라 행해지는 이러한 스플래팅 동작을 도시한다. 이러한 차원(K)은 수평(X), 수직(Y) 또는 루미넌스(I) 차원일 수 있다. 이러한 설명을 위해, 차원(K)(400)은 루미넌스 차원(I)을 나타내는 것으로 간주된다. 먼저, 이러한 차원은, 예를 들어, 루미넌스 차원(I)의, 예를 들어, 256 개 값들(8 비트, 0 내지 255)로부터 너비 16의 16 개 빈들에 이르기 까지의, 서브-샘플링에 의해 빈들(440)로 분할된다. 본래 알려진 바와 같이, 각각의 빈은 특정 값 또는 누적된 값들의 합을 보유할 수 있는 저장 요소이다. 예시의 목적들을 위해, 그리고 특히 도면들의 가시성을 개선하기 위해, 도 3a 및 다음에서, 총 12 개의 빈들: 10 개의 '정상' 빈들 [1] 내지 [10] 및 2 개의 소위 '에지 빈들(edge bins)' [0] 및 [11]만을 포함하는 빈 구성(binning)이 도시된다는 것을 유의하여야 한다. 에지 빈들 [0] 및 [11]의 상이한 크기 및 목적은 도 3b와 추가로 관련하여 설명될 것이란 점에 유의한다.
다음은 히스토그램 동작과 관련하여 스플래팅 동작을 예시한다. 종래의 히스토그램은 다음과 같이 획득될 수 있다: 이미지의 각각의 픽셀에 대해, 루미넌스 값이 어느 단일 빈에 속하는지가 결정될 수 있다. 그 다음에, 그 빈의 값은 예를 들어 1씩 증가될 수 있다. 결과적으로, 빈과 연관된 루미넌스 간격에 대해 루미넌스 값의 상대적 위치는 관련이 없을 수 있다. 예를 들어, 누적 동안 빈이 [0 ... 7]이라는 루미넌스 간격을 정의하면, 이러한 빈에 속하는 모든 루미넌스 값들은, 루미넌스 값이 빈의 중앙에 속하는지(예를 들어, 루미넌스 값들이 3 및 4임) 또는 빈의 에지에 있는지(예를 들어, 루미넌스 값들이 0 및 7임)에 관계 없이, 동일한 증분, 즉 1이라는 증분을 야기할 수 있다.
스플래팅 기술들은 더 나은, 예를 들어, 보다 정확한 히스토그램 표현을 얻기 위해 사용될 수 있다. 즉, 빈 내에서 루미넌스 값의 상대적 위치는 가중함으로써 고려될 수 있다. 이러한 스플래팅 기술들에서, '스플랫(splat)'되는 픽셀의 기여는 루미넌스 차원을 따라 놓인 픽셀의 좌표에, 예를 들어 루미넌스 값에 풋프린트를 명시적으로 또는 암시적으로 할당함으로써 결정될 수 있다. 스플래팅에 의한 누적은 다음과 같이 수행될 수 있다: 픽셀의 루미넌스 값에 대해, 픽셀이 어느 인접한 빈들에 기여하는지가 결정되며, "기여한다는 것"은 픽셀의 풋프린트 내에 적어도 부분적으로 속하는 빈을 지칭한다. 그런 다음 인접한 빈들 내의 값들은 2 개의 빈들과 관련하여 루미넌스 값의 상대적 위치에 의존하는 각각의 가중치들에 의해 증분될 수 있다. 예를 들어, 루미넌스 값이 '현재' 빈 내에서 중앙에 속하여 있을 때, 그 빈에 대한 기여는 '높음'일 수 있는 반면에 '이전' (더 낮은) 빈 및 '다음' (더 높은) 빈에 대한 기여는 낮을 수 있다. 유사하게, 루미넌스 값이 2 개의 빈들 사이에 있을 때, 각각의 빈에 대한 기여는 '높은' 값의 절반일 수 있다.
전술한 위치 의존적 가중(position-dependent weighting)은 빈들에 대한 그러한 풋프린트에 기반한 기여를 구현할 수 있다. 가중은 단지 특정 간격 내에서 빈에 대한 기여를 정의할 뿐이기 때문에, 이러한 간격은 또한 특정 빈의 '누적 간격(accumulation interval)'을 나타내는 것으로 간주될 수 있다는 것에 유의한다. 예를 들어, '현재' (또는 '지금') 빈의 누적 간격은 현재 빈을 포함하면서 또한 이전 빈과 다음 빈 중간쯤으로 확장하는 것으로 간주될 수 있다. 따라서, 이전 빈의 중간쯤에서 시작한다면, 현재 빈에 대한 기여는 0로부터 현재 빈 내에서 중간의 최대까지 서서히 증가한 후 다음 빈에서 서서히 중간쯤에서 제로로 감소할 수 있다.
스플래팅 동작을 사용한 결과로서, 빈들에서 누적된 값들은 히스토그램의 보다 정확한 표현을 나타낼 수 있다.
스플래팅 동작의 구체적이고 효율적인 구현에서, 풋프린트는, 예를 들어, 빈의 크기에 대응하는 크기를 갖거나 더 작은 크기를 가짐으로써 많아야 2 개의 인접한 빈들에 기여하는 것으로 간주된다. 이 경우, 픽셀은 많아야 빈 [n] 및 빈 [n+1]에 기여하며, n은 볼륨의 좌표계에서 빈 인덱스(bin index) 또는 좌표이다. 제1 빈은 다음에서 '현재' 빈이라고 지칭될 수 있고 제2 빈은 '다음' 빈이라고 지칭될 수 있다.
특히 구체적이고 효율적인 구현은 현재 빈 내에서 픽셀의 기여가 현재 빈 및 다음 빈에만 기여하도록 빈들의 누적 간격들을 정의한다. 그러나, 이러한 구현은 픽셀의 기여가 거짓일 것이라고 직관적으로 이해될 수 있는 경우 빈의 절반의 '오프셋(offset)'을 갖는 것으로 간주될 수 있다. 즉, 이러한 특정 구현에서, 빈에 대한 최대의 기여는 빈의 중간에서 얻어지는 것이 아니라 빈의 가장 낮은 경계에서 얻어진다. 이러한 방식으로 빈들을 정의하는 이유는, 예를 들어, 가중치들의 계산 및 저장 및/또는 빈에 대한 상대적 위치들의 계산을 고려할 때, 스플래팅 동작과 보간 동작 사이에 하드웨어를 더 많이 재사용할 수 있게 하기 위한 것이다.
예로서, 도 3a에서 빈 [0]의 좌측에 있는 루미넌스 값인 루미넌스 값(p0)의 경우를 고려해 본다. 이러한 상대적 위치는 가중 함수(430)에 따라 빈 [5]에 '높은' 가중치를 기여할 수 있고(점선이 최대 값에 놓여 있음/최대 값에 가까움), 빈 [6]에 '낮은' 가중치를 기여할 수 있다(파선이 0에 놓여 있음/0에 가까움). 다음으로, 빈 [5]의 중간에 있는 루미넌스 값(p1)의 경우를 고려해 본다. 이러한 상대적 위치는 빈들 [5] 및 [6]에 동일한 가중치('높은' 가중치의 절반)를 기여할 수 있다. 마지막으로, 빈 [5]의 우측에 있는 루미넌스 값(p2)의 경우를 고려해 본다. 이러한 상대적 위치는 빈 [5]에 '낮은' 가중치를 기여할 수 있고 빈 [6]에 '높은' 가중치를 기여할 수 있다. 따라서, 루미넌스 값의 상대적 위치는 루미넌스 값이 현재 및 다음 빈에서 누적되는 가중치를 결정할 수 있다. 이에 따라 도 3a의 예는 루미넌스 값에 따라 빈 [5]에 최대의 기여를 하는 것에서부터 빈 [6]에 최대의 기여를 하는 것까지 선형적인 '페이드-오버(fade-over)'를 도시한다.
현재 빈 내에서 루미넌스 값을 갖는 픽셀이 현재 빈 및 다음 빈에만 기여하는 이러한 구체적이고 효율적인 구현에서, 빈 [5]와 연관된 누적 간격은 빈 [5]과 그 이전 빈에 걸친 간격, 예를 들어, 도 3a에서 빈들 [4] 및 [5]를 담당하는 점선에 대응하는 간격일 수 있다는 것을 인식할 것이다. 마찬가지로, 빈 [6]과 연관된 누적 간격은 빈 [6]과 그 이전의 빈에 걸친 간격, 예를 들어 도 3a에서 빈 [5] 및 [6]을 담당하는 파선에 대응하는 간격일 수 있다.
도 3b는 유사한 실시예의 보다 상세한 내용을 도시하지만, 각각의 볼륨, 즉 전술한 가중된 깊이 합 볼륨 및 가중치 합 볼륨에 가중된 깊이 값들 및 가중치들의 누적에 적용된다.
이 예에서, 두 볼륨들 모두 이미지 크기와 상관없이 18x12x18 빈들의 고정된 최대 크기 (X, Y, I)를 갖지만, 실제 빈들의 수는 달라질 수 있다. 즉, 스플래팅 동작에서 비 에지 빈(444)의 크기를 정의하고 이에 따라 얼마나 많은 빈들이 사용되는지를 결정하는 "sizeBinK" 파라미터가 사용될 수 있다. 이러한 크기는 구현의 복잡성을 줄이기 위해 2의 거듭 제곱일 수 있다. 차원 "edgeBinK"의 에지에 있는 2 개의 빈들의 크기는 임의의 차원 크기 값을 허용하도록 달라질 수 있다. 도 3b는 더 낮은 에지 빈(442)을 도시한다. 예를 들어, 이미지 너비가 480이고 sizeBinX가 32인 것으로 선택되면, 각각 (480-14*32)/2 = 16)의 너비를 갖는 14개의 비 에지 빈들 및 2 개의 에지 빈들이 있을 수 있다. 다른 예에서, 이미지 높이가 270이고 sizeBinY가 32이면, 에지 빈들 각각의 너비는 (270-8*32)/2 = 7일 수 있다. 이와 같이, 에지 빈들을 사용하면 비 에지 빈들이 2의 거듭 제곱과 동일한 크기를 가질 수 있게 하고, 그럼으로써 구현 복잡성을 단순화한다. 즉, 고정 소수점 산술의 정규화가 간단한 시프트 연산에 의해 수행될 수 있다. 또한, (상단 및 하단에 있는) 2 개의 에지 빈들을 사용하면 에지 빈들이 이미지의 에지들과 일치하므로 더 나은 필터 결과들을 산출하는 것으로 보여주었다. 따라서, 목적에 따라 특정 크기의 에지 빈들을 갖는 것이 바람직할 수 있다. 예를 들어, 에지 빈들이 정규의 비 에지 빈의 절반 크기인 것이 바람직할 수 있지만, 정규 빈 크기의 최소 ¼ 및 정규 빈 크기의 최대 ¾을 갖는 것이 바람직한 것으로 밝혀졌다.
도 3b는 또한 스플래팅 및 보간 동작 둘 다에 대한 빈 어드레싱(bin addressing) 및 연관된 가중치들의 예를 도시한다. 용이한 이해를 위해, 도 3b는 단일 차원만을 도시한다. 이러한 차원은 이미지 위치의 X, Y 또는 범위 차원일 수 있다. 구체적으로, 도 3b는, 예를 들어, 도 1의 템플릿 깊이 데이터(024)로부터 획득된 바와 같은, 예를 들어 입력 깊이 맵에서 라인을 따라 놓인 샘플들의 위치들에 대응하는, 표시된 인덱스 위치들 [0] … [12]에서 깊이 샘플들의 위치(410)를 도시한다. 각각의 인덱스 위치에 대해, 대응하는 스플랫 누적 간격(420), 스플래팅 및 (도 1의 참조 번호(170)로 표시된) 깊이 프로파일 보간을 위해 가중치 함수(430)에 의해 결정된 가중치 및 빈 간격(440)이 도시된다. 도 3b는 다음과 같이 해석될 것이다. 주어진 인덱스 위치, 예를 들면, 인덱스 위치 [7]에 대해, 동일한 숫자 [7]에 의해 표시될 뿐만 아니라, 누적 간격 [7]과 동일한 선형태로 도시된 대응하는 가중치 함수(430)에 의해 표시되는 누적 간격이 정의된다. 가중치 함수(430)는 누적 간격 [7]의 에지들로부터의 0으로부터 누적 간격 [7]의 중심의 1까지 선형적으로 전이하는 가중치 "f"를 나타낸다. 동일한 누적 간격 [7] 내에는, 누적 간격 [7]의 좌측 절반에서, 중간쯤에서 겹치는 누적 간격 [6]에서의 깊이 샘플 [6]에 대한 가중치를 나타내고, 누적 간격 [7]의 우측 절반에서, 중간쯤에서 겹치는 누적 간격 [8]의 깊이 샘플 [8]에 대한 가중치를 나타내는, 가중치 "1-f"가 또한 도시된다.
도시된 차원을 따라 놓인 주어진 위치(p)에 대해, 가중치 합 볼륨의 빈들이 SW[x] + = f 및 SW[x+1] + = (1-f)에 따라 누적될 수 있고, 반면에 가중된 깊이 합 볼륨의 빈들이 SWD[x] + = f*dp 및 SWD[x+1] + =(1-f)*dp 에 따라 누적될 수 있도록 누적 간격들 및 가중치들이 선택된다는 것을 알 수 있다. 여기서, 위치(p)는 빈(x)을 이 예에서 [6]인 것으로 결정하고, 깊이 값(d)은 dp =(1 -f) * D[x] + f * D[x+1]에 따라 깊이 맵(D)로부터 깊이 프로파일 보간(도 1의 '170')에 의해 획득된다. 이것은 단지 단일 차원에 대한 것일 뿐이고; 전형적으로 빈들의 어드레싱은 이미지의 공간 차원(X, Y) 및 하나 이상의 범위 차원(I)에 기초하며, 그럼으로써 전형적으로 이미지 데이터 자체에 의존한다는 것을 유의하여야 한다.
가중치들 및 '(1-f)'는 정규화된 표현식들을 사용하여 고정 소수점 값들로 계산될 수 있다는 것에 유의한다. 예를 들어, 이진수 점 다음의 3 비트들의 경우, 8이라는 값은 '1'을 나타내고 이에 따라 'f는 [0..8] 범위 내에 있다. 특정 예에서, 우리가 dp =(f-1) * D[x] + f * D[x+1]이 계산되고, D[x]가 24이고, D[x+1]가 8이며, f가 6이라고 가정했다면, 'dp'는 ((8-6)*24 + 6*8)/8 = 96/8 = 12 로서 계산될 수 있다. 8로 나누는 것은 정규화 단계이다. 이 예는 또한 도 5의 테이블에서 Y 위치 10에 관하여 도시된다. 이러한 도면 및 다른 도면과 텍스트 전체에서 'wny' 및 'wpy'는 이러한 정규화 이전의 'f' 및 '(1-f)'의 고정 소수점 값들을 나타낸다.
구체적이고 효율적인 실시예에서, 최대 가중치는 빈들의 크기, 예를 들어 빈의 크기가 8 인 경우 8에 대응할 수 있다. 따라서, 루미넌스 값에서의 각각의 단차(step)는 2 개의 인접한 빈들 각각에 대한 가중치에서의 단차를 초래한다. 유사하게, (x 또는 y) 위치에서의 각각의 단차는 2 개의 각각의 인접한 빈들 각각의 가중치에서의 단차를 초래한다.
도 4는 단일 차원을 따라 놓인 가중된 깊이 합(SWD)과 가중치 합(SW)을 채우는 스플래팅 동작을 도시한다. 이 예에서, 수직 Y 축이 선택되며, 빈들의 크기는 8( "sizeBinY")이고 첫 번째 빈은 4의 크기("edgeBinY")를 갖는다. "Yposition"은 단순히 라인 번호이다. 도 4의 테이블은 인덱스가 1인 binY의 라인들에 관련한 보간을 보여준다. "factorY"는 빈 내의 라인의 상대적 위치이다. "factorY" 값에 기초하여, 2 개의 가중치들 "wpy"및 "wny"이 도출되는데, 가중치들은 도 3b에 대해 설명된 바와 같이 상보적 가중치들 "f" 및 "1-f"와 관련되지만, 이제는 '다음' 빈에 대한 가중치 "wny" 및 '현재' 빈에 대한 가중치 "wpy"로서 표현되며, '다음' 및 '현재'는 2 개의 연속적이고 공간적으로 인접한 빈들을 지칭한다. 스플래팅은 본질적으로 고해상도 입력이 저해상도 출력으로 변환되는 다운 샘플링 기능이다. 이 예에서, binY 번호 1 내의 모든 라인들은 입력 깊이 값 "20"을 갖는다. 라인 위치에 따라, 가중치가 점차적으로 빈 1에서 빈 2로 이동한다. 이와 같이, 라인 번호 4(빈 1의 첫 번째 라인)에서, 완전한 값이 빈 1에 누적되고 빈 2에는 어떠한 값도 추가되지 않으며, 이것은 도 4에서 2 개의 화살표들로 예시된다. 라인 번호 8(빈의 중간쯤)에서, 값의 50 %가 빈 1에 추가되고 50 %가 빈 2에 추가된다. 이러한 방식으로, 빈들 사이의 선형적 페이드-오버가 달성된다. 가중치들을 사용하면, SW(가중치 합) 볼륨의 셀들은 적용된 가중치들 만을 누적하는 반면, SWD(가중된 깊이 합) 볼륨의 셀들은 가중치를 곱한 깊이 값("가중된 깊이")을 누적한다.
요약하면, 스플래팅 동작은, 이미지의 각각의 픽셀에 대해, 예를 들어 (Χ, Υ, I) 좌표, (X, Y, R, G, B) 좌표 또는 (X, Y, I, U, V) 좌표의 형태로, 이미지의 좌표계에서 픽셀의 좌표를 결정하는 것을 포함할 수 있다. 후자에서, (I, U, V)는 YUV 신호의 성분들을 지칭하며, Y(루미넌스) 성분은 Y 공간 차원과 구별하기 위해 I(강도)로 지칭된다. 그 다음에, 가중치 합 볼륨 내의 어느 인접 셀들이 픽셀과 연관된 누적 간격들을 나타내는지가 결정될 수 있다. 깊이 맵이 이미지보다 낮은 공간 해상도를 갖는다면, 픽셀의 깊이 값은 아마도 보간을 사용하여 깊이 맵으로부터 획득될 수 있다. 인접한 셀들 각각에 대해, 깊이 값을 가중하기 위한 가중치가 획득될 수 있다. 가중치는 좌표에 의해 표시되는 바와 같이 각각의 셀의 누적 간격에 대한 픽셀의 상대적 위치에 기초하여 (미리) 계산될 수 있다. 그 다음에 깊이 값은 가중치에 의해 가중되고 가중된 깊이 합 볼륨의 각각의 셀에 누적될 수 있으며, 가중치 자체는 가중치 합 볼륨의 대응하는 셀에 누적된다.
단일 차원의 경우, 선형 보간에는 2 개의 값들이 필요하다는 것을 유의하여야 한다. 유사하게, 2 개의 차원들의 경우, 이중 선현 보간(bi-linear interpolation)에는 4 개의 값들이 필요하다. 3 개 차원들의 볼륨의 경우, 삼중 선형 보간은 8 개의 값들을 사용한다. 가중치들은 빈 내에서 샘플의 상대적 위치의 함수로서 미리 계산된 값들일 수 있다. 깊이 맵이 이미지에 대해 감소된 공간 해상도, 및 특히 가중된 깊이 합 볼륨 및 가중치 합 볼륨과 동일한 감소된 공간 해상도를 갖는 경우, 깊이 맵은 스플래팅 동작에서 사용되는 것과 동일한 가중치들을 사용하여 스플래팅 동작 이전에 이미지 해상도에 보간될 수 있다. 이것은 도 1에서 가중 블록(150)에 의해 이미지 해상도에 깊이 템플릿을 보간하는 가중치 데이터(054)를 2D 보간 블록(170)에 제공하는 것으로 도시된다.
스플래팅 동작을 수행한 이후에, 슬라이싱 동작이 수행되어 이미지 적응 깊이 볼륨을 획득할 수 있다. 이러한 슬라이싱 동작은 소프트웨어에 의해 구성된 마이크로프로세서에 의해 수행될 수 있는데, 마이크로프로세서는 도 1에 명시적으로 도시되지 않지만, 예를 들어 DMA 통신을 통해 메모리에 액세스할 수 있다. 슬라이싱 동작은, 가중된 깊이 합 볼륨의 각각의 셀 및 가중치 합 볼륨의 대응하는 셀에 대해, 누적된 가중된 깊이 값들을 누적된 가중치로 나누는 것을 포함할 수 있다. 이러한 나누기의 결과로서, 각각의 빈은 이제 이미지 적응 깊이 값(image-adapted depth value)을 포함하고, 이에 따라 전체 볼륨은 이미지 적응 깊이 볼륨(image-adapted depth volume)을 나타낸다.
슬라이싱 동작을 수행한 이후에, 보간 동작이 수행되어 이미지 내의 각각의 픽셀에 대해 이미지 적응 깊이 맵(image-adapted depth map)의 이미지 적응 깊이 값을 획득할 수 있다. 이러한 보간 동작은 이미지 적응 깊이 볼륨의 인접한 셀들을, 픽셀의 좌표에 기초하여 가중된 깊이 합 볼륨의 픽셀에 대한 누적 간격을 나타내는 상기 셀들에 기초하여 식별하는 것, 및 이미지 적응 깊이 볼륨의 인접한 셀들에 보간 필터를 적용하는 것을 포함할 수 있으며, 여기서 보간 필터는, 셀들 각각에 대해, 좌표에 의해 표시되는 것과 같은 각각의 셀의 누적 간격에 대한 픽셀의 상대적 위치에 기초하여 결정되는 가중치를 포함한다. 다시 말해, 픽셀의 공간 좌표 및 픽셀의 범위 값(들)에 의해 결정되는 픽셀의 위치는 보간에 사용될 빈들을 결정할 수 있는 반면에, 빈 내의 픽셀의 상대적 위치는 보간 가중치들을 결정할 수 있다. 가중치들은 미리 계산될 수 있다. 특히, 가중치들은 스플래팅 동작에서 또한 사용되는 것과 동일한 가중치들일 수 있고 및/또는 동일한 하드웨어 회로는 가중치들을 저장하거나 계산하는데 사용될 수 있다.
도 5는 보간 동작을 도 4가 스플래팅 동작을 위해 수행하는 것과 유사한 방식으로 도시한다. 여기서, 가중치들은 이미지 적응 깊이 볼륨으로부터 출력 깊이 값을 보간하는 데 사용된다. 도 5를 도 4와 비교할 때 알 수 있는 바와 같이, 동일한 가중치들이 빈 내의 특정 상대적 위치에 사용된다. 이것은 도 1에서 가중 블록(150)에 의해 스플래팅 블록(140)에 제공하는 것과 동일한 가중치 및 볼륨 인덱스 데이터(052)를 보간 블록(160)에 제공하는 것으로 도시된다. 테이블의 우측 부분은 가중치들이 어떻게 입력 깊이 값들 24 및 8에 적용되는지를 보여준다. 예를 들어, Y 위치 7에 대해 보간하면 ((5x24 + 3x8))/8 = 18을 산출한다.
도 6은 도 4 및 도 5에 사용된 두 개의 가중치들, 즉 수평 축상의 라인 번호 Y의 함수로서 수직 축상의 "wpy" 및 "wpy"값을 그래픽으로 도시한다. 가중치 "wpy"는 "현재" 값에 적용되는 반면, 가중치 "wny"는 "다음" 값에 적용된다. 도 7은 도 6에 대응하지만 도 5에 도시된 바와 같이 입력 깊이 값들 24 및 8 사이에서 획득되는 보간된 출력을 추가로 도시한다 - 입력 깊이 값들 사이에 선형 페이딩(linear fading)을 제공하기 위해 가중치들이 계산되는 것을 볼 수 있다. 선형 페이딩 외에도, 3 차(cubic) 또는 스플라인(spline) 보간들과 같은 고차 보간 함수들이 또한 사용될 수 있다.
일반적으로, 설명된 볼륨들의 X 또는 Y 차원에서 빈들의 크기는 항상 2의 거듭 제곱일 수 있다는 것을 유의하여야 하는데, 왜냐하면 이 경우 예를 들어 고정 소수점 3 중 선형 보간인 보간이 정규화를 위해 시프트 연산을 사용할 수 있기 때문이며, 이것은 하드웨어 비용의 상당한 절감으로 이어진다. 이것은 이미지 크기에 따라 다양한 수의 빈들이 필요하다는 결과를 가져올 수 있다. 빈 크기를 변경하면, 필터 성능이 영향을 받을 수 있다. 그러나, 실험에 따르면 시각적 성능에는 큰 영향을 미치지 않다는 것을 보여준다. 더욱이, 고정된 수의 빈들 대신에 가변적인 수의 빈들을 사용하는 것은 하드웨어 설계에 큰 영향을 미치지 않는다. X 또는 Y 차원에서 빈의 크기는 하드웨어 파라미터에 의해 명시될 수 있지만, 어떤 값을 선택할 것인지를 분석하는 것은, 예를 들어 마이크로프로세서의 소프트웨어에 맡겨둘 수 있다.
일반적으로, 처리 서브시스템은 설명된 집적 회로와 별도로, 예를 들어 다른 유형의 SoC에서 제공될 수 있다는 것이 인식될 것이다.
데이터는 처리 서브시스템을 네트리스트(netlist) 및/또는 합성 가능한 RTL의 형태로 정의하는 컴퓨터 판독 가능 매체 상에 제공될 수 있다. 컴퓨터 판독 가능 매체 및 이에 따라 매체에 저장된 데이터는 일시적이거나 비일시적일 수 있다. 예를 들어, 처리 서브시스템은, 예를 들어 Verilog 또는 VHDL과 같은 하드웨어 서술 언어로 된, 합성 가능한 코어로서 또는 일반 게이트 또는 프로세스 특정 표준 셀들로서 구현된 RTC IP 블록의 논리적 기능의 부울 대수 표현을 제공하는 일반 게이트-레벨 넷리스트로서 제공될 수 있다.
'맵'이라는 용어는 행들과 열들로 배열된 데이터를 지칭한다. 더욱이, 형용사 '깊이'는 카메라를 향한 이미지의 부분들의 깊이를 나타내는 것으로 이해되어야 한다. 그러므로, 깊이 맵은 깊이 값들에 의해 구성될 수 있지만, 예를 들어 디스패리티 값들 또는 시차 변이 값들로도 또한 구성될 수 있다. 본질적으로, 그러므로 깊이 맵은 디스패리티 맵 또는 시차 변이 맵을 구성할 수 있다. 여기서, 디스패리티라는 용어는 사용자의 왼쪽 눈 또는 오른쪽 눈으로 인식될 때 물체의 위치 차이를 지칭한다. 시차 변이라는 용어는 상기 디스패리티를 사용자에게 제공하기 위해 물체의 두 시점들 사이에서의 변위를 지칭한다. 디스패리티 및 시차 변이는 일반적으로 거리 또는 깊이와 부정적으로 상관된다. 상기 유형들의 모든 맵들 및/또는 값들 사이의 변환을 위한 디바이스 및 방법들은 공지되어 있다.
도 8은 이미지로부터 깊이 맵을 추정하기 위한 컴퓨터에 의해 구현된 방법(500)을 도시한다. 방법(500)은 "이미지 데이터에 액세스(ACCESSING IMAGE DATA)"라는 동작에서, 이미지의 이미지 데이터에 액세스하는 단계(510), "깊이 데이터에 액세스(ACCESSING DEPTH DATA)"라는 동작에서, 템플릿 깊이 맵의 깊이 데이터에 액세스하는 단계(520), "결합형 양방향 필터를 적용(APPILING JOINT BILATERAL FILTER)"이라는 동작에서, 결합형 양방향 필터 에서의 범위 항으로서 이미지 데이터를 사용하여 템플릿 깊이 맵에 결합형 양방향 필터를 적용하는 단계(530) - 그럼으로써 출력으로서 이미지 적응 깊이 맵을 획득함 - 를 포함하고, 여기서 결합형 양방향 필터를 적용하는 단계는, "볼륨들을 초기화(INITIALIZING VOLUMES)"라는 동작에서, 가중된 깊이 합 볼륨 및 가중치 합 볼륨을 메모리에서 각각의 데이터가 비어 있는 구조들로서 초기화하는 단계(540), "스플래팅 동작(SPLATTING OPERATION)"이라는 동작에서, 상기 볼륨들을 채우기 위해 스플래팅 동작(550)을 수행하는 단계(550), "슬라이싱 동작(SLICING OPERATION)"이라는 동작에서, 이미지 적응 깊이 볼륨을 획득하도록 슬라이싱 동작을 수행하는 단계(560), 및 "보간 동작(INTERPOLATION OPERATION)"이라는 동작에서, 이미지 내의 각각의 픽셀에 대해, 이미지 적응 깊이 맵의 이미지 적응 깊이 값을 획득하도록 보간 동작을 수행하는 단계(570)를 포함한다. 상기 동작은, 적용 가능한 경우, 예를 들어 입력/출력 관계들에 의해 특정 순서가 필요하게 만들어지는 임의의 적절한 순서로, 예를 들어, 연속적으로, 동시적으로, 또는 이들의 조합으로 수행될 수 있다는 것이 인식될 것이다. 예를 들어, 동작들(510 및 520)은 병렬로 또는 순차적으로 수행될 수 있다.
방법(500)은 프로세서 시스템 상에서, 예를 들어 컴퓨터 상에서, 컴퓨터에 의해 구현된 방법으로서, 전용 하드웨어로서, 또는 이 둘의 조합으로서 구현될 수 있다. 도 9에서 또한 도시되는 바와 같이, 컴퓨터에 필요한 명령어들, 예를 들어, 실행 가능한 코드가 컴퓨터 판독 가능 매체(600) 상에, 예를 들어 일련의 머신 판독 가능 물리적 마크들(610)의 형태로 및/또는 상이한 전기적, 예를 들어 자기 적 또는 광학적 특성들 또는 값들을 갖는 일련의 요소들로서 저장될 수 있다. 실행 가능한 코드는 일시적 또는 비일시적 방식으로 저장될 수 있다. 컴퓨터 판독 가능 매체들의 예들은 메모리 디바이스들, 광학 저장 디바이스들, 집적 회로들, 서버들, 온라인 소프트웨어 등을 포함한다. 도 9는 광학 디스크(600)를 도시한다.
위에서 언급한 실시예들은 본 발명을 제한하기보다는 예시하는 것이며, 관련 기술분야의 통상의 기술자는 많은 대안적인 실시예들을 설계할 수 있을 것이라는 것을 유의하여야 한다.
청구 범위에서, 괄호들 사이에 놓인 임의의 참조 부호들은 청구 범위를 제한하는 것으로 해석되지 않아야 한다. 동사 "포함하다" 및 그 활용형들을 사용한다고 하여 청구 범위에 언급된 것들 이외의 요소들 또는 단계들의 존재를 배제하지 않는다. 요소 앞에 오는 관사 "a" 또는 "an"은 복수의 그러한 요소들의 존재를 배제하지 않는다. 본 발명은 몇 가지 뚜렷이 다른 요소들을 포함하는 하드웨어에 의해 그리고 적절하게 프로그램된 컴퓨터에 의해 구현될 수 있다. 여러 수단들을 열거하는 디바이스 청구 범위에서, 이들 수단들 중 여러 개는 하나 및 동일한 하드웨어 항목에 의해 구현될 수 있다. 특정 조치들이 서로 상이한 종속 항들에서 인용된다는 사실만으로 이러한 조치들의 조합이 유리하게 사용될 수 없다는 것을 시사하지는 않는다.

Claims (15)

  1. 이미지로부터 깊이 맵을 추정하도록 구성된 집적 회로로서,
    상기 집적 회로는 메모리를 포함하거나 상기 메모리에 연결되고, 상기 집적 회로는,
    - 상기 이미지의 이미지 데이터에 액세스하도록 구성된 이미지 데이터 인터페이스;
    - 템플릿 깊이 맵(template depth map)의 깊이 데이터에 액세스하도록 구성된 깊이 데이터 인터페이스 - 상기 템플릿 깊이 맵은 상기 이미지 데이터에 적응될 템플릿을 나타냄 - ;
    - 상기 이미지 데이터를 결합형 양방향 필터(joint bilateral filter)에서의 범위 항(range term)으로서 사용하여 상기 결합형 양방향 필터를 상기 템플릿 깊이 맵에 적용하고, 그럼으로써 출력으로서 이미지 적응 깊이 맵(image-adapted depth map)을 획득하도록 구성된 처리 서브시스템을 포함하고;
    상기 처리 서브시스템은,
    - 가중된 깊이 합 볼륨(sum-of-weighted-depths volume) 및 가중치 합 볼륨(sum-of-weights volume)을 상기 메모리 내의 각각의 비어 있는 데이터 구조들로서 초기화하고 - 상기 볼륨들의 각각은,
    - 상기 이미지 데이터의 2 개의 공간 차원들의 다운 샘플링된 버전을 나타내는 2 개의 공간 차원들, 및
    - 상기 이미지 데이터의 범위 차원의 다운 샘플링된 버전을 나타내는 적어도 하나의 범위 차원을 포함하고, 상기 볼륨들의 셀들은 상기 이미지의 2 개의 공간 차원들 및 상기 이미지 데이터의 범위 차원에 대하여 정의된 상기 이미지의 좌표계에서 빈들을 정의함 - ;
    - 상기 볼륨들을 채우기 위해 스플래팅 동작(splatting operation)을 수행하고 - 상기 스플래팅 동작은, 상기 이미지의 각각의 픽셀에 대해,
    - 상기 이미지의 상기 좌표계에서의 상기 픽셀의 좌표에 기초하여 - 상기 좌표는 상기 볼륨들 각각의 빈들에 대한 상기 픽셀의 상대적 위치를 나타냄 - ,
    - 인접한 빈들에 맵핑되는 상기 스플래팅 동작에서 풋프린트(footprint)를 갖는 픽셀에 기초하여 상기 픽셀이 상기 스플래팅 동작에 기여하는, 상기 가중된 깊이 합 볼륨에서 상기 인접한 빈들을 식별하는 것을 포함하고, 상기 스플래팅 동작에 기여하는 것은,
    - 상기 템플릿 깊이 맵으로부터 상기 픽셀의 깊이 값을 획득하는 것;
    - 상기 인접한 빈들 각각에 대해,
    - 상기 깊이 값을 가중하기 위한 스플래팅 가중치를 획득하는 것 - 상기 스플래팅 가중치는 각각의 빈에 대한 상기 픽셀의 상기 상대적 위치에 기초하여 결정됨 -,
    - 상기 스플래팅 가중치에 의해 상기 깊이 값을 가중하는 것,
    - 상기 가중된 깊이 값을 상기 가중된 깊이 합 볼륨의 상기 각각의 빈에 누적하고, 상기 스플래팅 가중치를 상기 가중치 합 볼륨의 대응하는 빈에 누적하는 것을 포함함 - ;
    - 상기 가중된 깊이 합 볼륨의 각각의 빈 및 상기 가중치 합 볼륨의 대응하는 빈에 대해, 상기 누적된 가중된 깊이 값들을 상기 누적된 가중치들로 나눔으로써 이미지 적응 깊이 볼륨(image-adapted depth volume)을 획득하도록 슬라이싱 동작을 수행하고;
    상기 이미지 내의 각각의 픽셀에 대해, 상기 이미지 적응 깊이 맵의 이미지 적응 깊이 값을 획득하도록 보간 동작을 수행함으로써,
    상기 결합형 양방향 필터를 구현하도록 구성되고,
    상기 보간 동작은,
    - 상기 이미지의 상기 좌표계에서의 상기 픽셀의 상기 좌표에 기초하여, 상기 스플래팅 동작 동안 상기 가중된 깊이 합 볼륨의 대응하는 빈들에 기여하는 상기 픽셀에 기초하여 상기 이미지 적응 깊이 볼륨에서 상기 인접한 빈들을 식별하는 것;
    - 상기 이미지 적응 깊이 볼륨의 인접한 빈들에 보간 필터를 적용하는 것을 포함하고,
    상기 보간 필터는, 상기 인접한 빈들 각각에 대해, 상기 각각의 빈에 대한 상기 픽셀의 상대적 위치에 기초하여 결정되는 보간 가중치를 포함하는,
    집적 회로.
  2. 제1 항에 있어서,
    상기 처리 서브시스템은 애플리케이션 특정 하드웨어 회로 및 소프트웨어에 의해 구성 가능한 마이크로프로세서를 포함하고,
    상기 애플리케이션 특정 하드웨어 회로는 상기 스플래팅 동작 및 상기 보간 동작을 수행하도록 구성되고;
    상기 마이크로프로세서는 상기 소프트웨어에 의해, 상기 집적 회로의 동작 동안, 상기 슬라이싱 동작을 수행하도록 구성되는,
    집적 회로.
  3. 제2 항에 있어서,
    상기 애플리케이션 특정 하드웨어 회로는 상기 스플래팅 동작에서 사용된 상기 스플래팅 가중치들 및/또는 상기 보간 동작에서 사용된 상기 보간 가중치들을 저장하기 위한 필터 테이블을 포함하는,
    집적 회로.
  4. 제3 항에 있어서,
    상기 필터 테이블에는 상기 각각의 동작을 수행하기 이전에 상기 스플래팅 동작에서 사용된 상기 스플래팅 가중치들 및 상기 보간 동작에서 사용된 상기 보간 가중치들이 로딩되는,
    집적 회로.
  5. 제1 항 내지 제3 항 중 어느 한 항에 있어서,
    상기 스플래팅 동작에서 사용된 상기 스플래팅 가중치들 및 상기 보간 동작에서 사용된 상기 보간 가중치들은 동일한,
    집적 회로.
  6. 제1 항 내지 제5 항 중 어느 한 항에 있어서,
    상기 스플래팅 동작에서 사용된 상기 스플래팅 가중치들 및 상기 보간 동작에서 사용된 상기 보간 가중치들은 상기 이미지의 상기 좌표계에 대해 선형 보간을 나타내는,
    집적 회로.
  7. 제2 항 내지 제2 항에 종속하는 제6 항 중 어느 한 항에 있어서,
    상기 마이크로프로세서는 상기 소프트웨어에 의해, 상기 집적 회로의 동작 동안, 상기 슬라이싱 동작을 수행하기 이전에 가중된 깊이 합 볼륨 및 가중치 합 볼륨에 시간 필터링(temporal filtering)을 적용하도록 구성되는,
    집적 회로.
  8. 제7 항에 있어서,
    상기 시간 필터링은 1 차 또는 고차 무한 임펄스 응답 필터인,
    집적 회로.
  9. 제1 항 내지 제8 항 중 어느 한 항에 있어서,
    상기 처리 서브시스템은 상기 스플래팅 동작을 수행한 이후에, 상기 가중된 깊이 합 볼륨을 가우스 커널(Gaussian kernel)로 컨볼루션하도록 구성되는,
    집적 회로.
  10. 제1 항 내지 제9 항 중 어느 한 항에 있어서,
    상기 집적 회로는 필드 프로그래머블 게이트 어레이(field-programmable gate array)이거나 그 일부인,
    집적 회로.
  11. 제1 항 내지 제9 항 중 어느 한 항에 있어서,
    상기 집적 회로는 시스템-온-칩(system-on-chip)이거나 그 일부인,
    집적 회로.
  12. 제1 항 내지 제11 항 중 어느 한 항에 따른 상기 집적 회로를 포함하는,
    디바이스.
  13. 제12 항에 있어서,
    상기 디바이스는 디스플레이 디바이스 또는 셋톱 박스인,
    디바이스.
  14. 이미지로부터 깊이 맵을 추정하기위한 컴퓨터로 구현되는 방법으로서,
    - 상기 이미지의 이미지 데이터에 액세스하는 단계;
    - 템플릿 깊이 맵 의 깊이 데이터에 액세스하는 단계 - 상기 템플릿 깊이 맵은 상기 이미지 데이터에 적응될 템플릿을 나타냄 - ;
    - 상기 이미지 데이터를 결합형 양방향 필터에서의 범위 항으로서 사용하여 상기 템플릿 깊이 맵에 상기 결합형 양방향 필터를 적용하고 그럼으로써 출력으로서 이미지 적응 깊이 맵을 획득하는 단계를 포함하고,
    상기 결합형 양방향 필터를 적용하는 단계는,
    - 가중된 깊이 합 볼륨 및 가중치 합 볼륨을 메모리 내의 각각의 비어 있는 데이터 구조들로서 초기화하는 단계 - 상기 볼륨들의 각각은,
    - 상기 이미지 데이터의 2 개의 공간 차원들의 다운 샘플링된 버전을 나타내는 2 개의 공간 차원들, 및
    - 상기 이미지 데이터의 범위 차원의 다운 샘플링된 버전을 나타내는 적어도 하나의 범위 차원을 포함하고, 상기 볼륨들의 셀들은 상기 이미지의 2 개의 공간 차원들 및 상기 이미지 데이터의 범위 차원에 대하여 정의된 상기 이미지의 좌표계에서 빈들을 정의함 - ;
    - 상기 볼륨들을 채우기 위해 스플래팅 동작을 수행하는 단계 - 상기 스플래팅 동작은, 상기 이미지의 각각의 픽셀에 대해,
    - 상기 이미지의 상기 좌표계에서의 상기 픽셀의 좌표에 기초하여 - 상기 좌표는 상기 볼륨들 각각의 빈들에 대한 상기 픽셀의 상대적 위치를 나타냄 - ,
    - 인접한 빈들에 맵핑되는 상기 스플래팅 동작에서 풋프린트를 갖는 픽셀에 기초하여 상기 픽셀이 상기 스플래팅 동작에 기여하는, 상기 가중된 깊이 합 볼륨에서 상기 인접한 빈들을 식별하는 것을 포함하고, 상기 스플래팅 동작에 기여하는 것은,
    - 상기 템플릿 깊이 맵으로부터 상기 픽셀의 깊이 값을 획득하는 것;
    - 상기 인접한 빈들 각각에 대해,
    - 상기 깊이 값을 가중하기 위한 스플래팅 가중치를 획득하는 것 - 상기 스플래팅 가중치는 각각의 빈에 대한 상기 픽셀의 상기 상대적 위치에 기초하여 결정됨 -,
    - 상기 스플래팅 가중치에 의해 상기 깊이 값을 가중하는 것,
    - 상기 가중된 깊이 값을 상기 가중된 깊이 합 볼륨의 상기 각각의 빈에 누적하고, 상기 스플래팅 가중치를 상기 가중치 합 볼륨의 대응하는 빈에 누적하는 것을 포함함 - ;
    - 상기 가중된 깊이 합 볼륨의 각각의 빈 및 상기 가중치 합 볼륨의 대응하는 빈에 대해, 상기 누적된 가중된 깊이 값들을 상기 누적된 가중치들로 나눔으로써 이미지 적응 깊이 볼륨을 획득하도록 슬라이싱 동작을 수행하는 단계;
    상기 이미지 내의 각각의 픽셀에 대해, 상기 이미지 적응 깊이 맵의 이미지 적응 깊이 값을 획득하도록 보간 동작을 수행하는 단계를 포함하고,
    상기 보간 동작은,
    - 상기 이미지의 상기 좌표계에서의 상기 픽셀의 상기 좌표에 기초하여, 상기 스플래팅 동작 동안 상기 가중된 깊이 합 볼륨의 대응하는 빈들에 기여하는 상기 픽셀에 기초하여 상기 이미지 적응 깊이 볼륨에서 상기 인접한 빈들을 식별하는 것;
    - 상기 이미지 적응 깊이 볼륨의 인접한 빈들에 보간 필터를 적용하는 것을 포함하고,
    상기 보간 필터는, 상기 인접한 빈들 각각에 대해, 상기 각각의 빈에 대한 상기 픽셀의 상대적 위치에 기초하여 결정되는 보간 가중치를 포함하는,
    방법.
  15. 프로세서 시스템으로 하여금 제14 항에 따른 상기 방법을 수행하게 하도록 배열된 명령어들을 나타내는 일시적 또는 비일시적 데이터를 포함하는 컴퓨터 판독 가능 매체.
KR1020197033378A 2017-04-13 2018-04-04 결합형 양방향 필터의 효율적인 구현 KR102464876B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17166455.0A EP3389265A1 (en) 2017-04-13 2017-04-13 Efficient implementation of joint bilateral filter
EP17166455.0 2017-04-13
PCT/EP2018/058604 WO2018189010A1 (en) 2017-04-13 2018-04-04 Efficient implementation of joint bilateral filter

Publications (2)

Publication Number Publication Date
KR20190135527A true KR20190135527A (ko) 2019-12-06
KR102464876B1 KR102464876B1 (ko) 2022-11-07

Family

ID=58632767

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197033378A KR102464876B1 (ko) 2017-04-13 2018-04-04 결합형 양방향 필터의 효율적인 구현

Country Status (12)

Country Link
US (1) US11216962B2 (ko)
EP (2) EP3389265A1 (ko)
JP (1) JP7094299B2 (ko)
KR (1) KR102464876B1 (ko)
CN (1) CN110506418B (ko)
BR (1) BR112019019379A2 (ko)
CA (1) CA3056371C (ko)
ES (1) ES2928563T3 (ko)
IL (1) IL269868B (ko)
RU (1) RU2767512C2 (ko)
TW (1) TWI762617B (ko)
WO (1) WO2018189010A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11501413B2 (en) * 2020-11-17 2022-11-15 Adobe Inc. Kernel reshaping-powered splatting-based efficient image space lens blur

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050087269A (ko) * 2004-02-26 2005-08-31 삼성전자주식회사 암호화된 방송 데이터를 위한 제한수신기능과복제방지기능을 구비하는 장치 및 방법
KR20080114324A (ko) * 2007-06-27 2008-12-31 엘지이노텍 주식회사 카메라 모듈, 이의 검사 장치 및 검사 방법
WO2010134890A1 (en) * 2009-05-21 2010-11-25 Esa Group Pte Ltd System and method for testing and managing camera modules
CN106210713A (zh) * 2016-08-30 2016-12-07 昆山软龙格自动化技术有限公司 一种手机摄像头模组多模组同时测试装置
US20170034507A1 (en) * 2015-07-28 2017-02-02 Jds Uniphase Corporation Distance to fault measurements in cable tv networks

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2317336A1 (en) * 2000-09-06 2002-03-06 David Cowperthwaite Occlusion resolution operators for three-dimensional detail-in-context
RU2215326C2 (ru) * 2001-06-29 2003-10-27 Самсунг Электроникс Ко., Лтд. Иерархическое основанное на изображениях представление неподвижного и анимированного трехмерного объекта, способ и устройство для использования этого представления для визуализации объекта
EP2184713A1 (en) * 2008-11-04 2010-05-12 Koninklijke Philips Electronics N.V. Method and device for generating a depth map
WO2010084460A1 (en) 2009-01-20 2010-07-29 Nxp B.V. Image processing using a bilateral grid
US8988461B1 (en) * 2011-01-18 2015-03-24 Disney Enterprises, Inc. 3D drawing and painting system with a 3D scalar field
CN102055996B (zh) * 2011-02-23 2013-01-23 南京航空航天大学 基于空间逐层扫描的真三维立体显示系统及其显示方法
US8754829B2 (en) * 2012-08-04 2014-06-17 Paul Lapstun Scanning light field camera and display
TW201432622A (zh) 2012-11-07 2014-08-16 Koninkl Philips Nv 產生一關於一影像之深度圖
CN103927717B (zh) 2014-03-28 2017-03-15 上海交通大学 基于改进型双边滤波的深度图像恢复方法
US8988317B1 (en) * 2014-06-12 2015-03-24 Lytro, Inc. Depth determination for light field images

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050087269A (ko) * 2004-02-26 2005-08-31 삼성전자주식회사 암호화된 방송 데이터를 위한 제한수신기능과복제방지기능을 구비하는 장치 및 방법
KR20080114324A (ko) * 2007-06-27 2008-12-31 엘지이노텍 주식회사 카메라 모듈, 이의 검사 장치 및 검사 방법
WO2010134890A1 (en) * 2009-05-21 2010-11-25 Esa Group Pte Ltd System and method for testing and managing camera modules
US20170034507A1 (en) * 2015-07-28 2017-02-02 Jds Uniphase Corporation Distance to fault measurements in cable tv networks
CN106210713A (zh) * 2016-08-30 2016-12-07 昆山软龙格自动化技术有限公司 一种手机摄像头模组多模组同时测试装置

Also Published As

Publication number Publication date
CN110506418A (zh) 2019-11-26
RU2767512C2 (ru) 2022-03-17
RU2019136258A3 (ko) 2021-05-13
KR102464876B1 (ko) 2022-11-07
JP2020518892A (ja) 2020-06-25
IL269868B (en) 2022-03-01
TW201837863A (zh) 2018-10-16
BR112019019379A2 (pt) 2020-05-05
EP3389265A1 (en) 2018-10-17
US11216962B2 (en) 2022-01-04
JP7094299B2 (ja) 2022-07-01
EP3610645B1 (en) 2022-07-13
US20210192760A1 (en) 2021-06-24
EP3610645A1 (en) 2020-02-19
CA3056371C (en) 2024-04-02
ES2928563T3 (es) 2022-11-21
TWI762617B (zh) 2022-05-01
CA3056371A1 (en) 2018-10-18
WO2018189010A1 (en) 2018-10-18
RU2019136258A (ru) 2021-05-13
CN110506418B (zh) 2021-05-25

Similar Documents

Publication Publication Date Title
JP6563453B2 (ja) 例示的な類似画像と関連した例示的な近似奥行きマップを用いた、入力画像に対する奥行きマップの生成
KR101775253B1 (ko) 2차원 이미지 또는 비디오의 3차원 스테레오 이미지 또는 비디오로의 실시간 자동 변환
KR101690297B1 (ko) 영상 변환 장치 및 이를 포함하는 입체 영상 표시 장치
US8902229B2 (en) Method and system for rendering three dimensional views of a scene
CN103369331A (zh) 图像空洞的填补方法和装置及视频图像的处理方法和装置
KR102464876B1 (ko) 결합형 양방향 필터의 효율적인 구현
KR102294937B1 (ko) 듀얼 모드 깊이 추정기
US20140198176A1 (en) Systems and methods for generating a depth map and converting two-dimensional data to stereoscopic data
EP2677496B1 (en) Method and device for determining a depth image
WO2023235273A1 (en) Layered view synthesis system and method
CN102986221B (zh) 图像编码装置及其集成电路、以及图像编码方法

Legal Events

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