KR20210012954A - 컬러와 깊이의 다수 스트림에 대한 공간 적응적 비디오 압축 - Google Patents

컬러와 깊이의 다수 스트림에 대한 공간 적응적 비디오 압축 Download PDF

Info

Publication number
KR20210012954A
KR20210012954A KR1020200091782A KR20200091782A KR20210012954A KR 20210012954 A KR20210012954 A KR 20210012954A KR 1020200091782 A KR1020200091782 A KR 1020200091782A KR 20200091782 A KR20200091782 A KR 20200091782A KR 20210012954 A KR20210012954 A KR 20210012954A
Authority
KR
South Korea
Prior art keywords
value
color image
depth
image
color
Prior art date
Application number
KR1020200091782A
Other languages
English (en)
Other versions
KR102396728B1 (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 KR20210012954A publication Critical patent/KR20210012954A/ko
Application granted granted Critical
Publication of KR102396728B1 publication Critical patent/KR102396728B1/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/271Image signal generators wherein the generated image signals comprise depth maps or disparity maps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/257Colour aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/34Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2213/00Details of stereoscopic systems
    • H04N2213/005Aspects relating to the "3D+depth" image format

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

컬러 비디오 이미지들을 압축하는 기법은 깊이 이미지 표면 법선과 컬러 이미지와 연관된 뷰 방향 사이의 유사성에 기초하여 컬러 이미지에 대한 델타 양자화 파라미터(
Figure pat00073
)를 계산하는 것을 포함한다. 예를 들어, 다수의 컬러 및 깊이 이미지들을 갖는 이미지를 갖는 프레임을 수신하면, 컴퓨터는 컬러 이미지에 대한 배향에 가장 가까운 깊이 이미지를 찾는다. 해당 깊이 이미지의 각 픽셀에 대해, 컴퓨터는 깊이 이미지의 포지션에 대한 법선의 배향 및 복수의 컬러 이미지가 캡처되었던 시점들에 기초하여 블렌드 가중치를 생성한다. 그 다음 컴퓨터는 블렌드 가중치에 기초하여
Figure pat00074
의 갑을 생성하고, 포지션에 대응하는 컬러 이미지의 매크로블록을 결정하며, 상기 매크로블록은 픽셀에 대한
Figure pat00075
의 값과 연관된다.

Description

컬러와 깊이의 다수 스트림에 대한 공간 적응적 비디오 압축{SPATIALLY ADAPTIVE VIDEO COMPRESSION FOR MULTIPLE STREAMS OF COLOR AND DEPTH}
본 설명은 비디오 이미지 압축에 관한 것이다.
오브젝트들의 컬러 비디오 이미지를 생성하도록 구성된 일부 컴퓨터는 압축 방식을 사용하여 네트워크를 통해 컬러 비디오 이미지를 전송한다. 기술적인 문제는 가능한 한 작은 비트 전송률을 사용하여 네트워크를 통해 오브젝트의 컬러 비디오 이미지를 전송하는 것이다. 이러한 기술적 문제를 해결하기 위한 종래의 접근법은 델타 양자화 파라미터
Figure pat00001
값을 각 비디오 프레임의 각각의 매크로블록(예를 들어, 32 X 32 픽셀)과 연관시키는 것을 포함한다. 이러한 방식으로, 사용자는 프레임의 특정한 공간 영역에서 비디오의 품질을 선택적으로 증가 또는 감소시킬 수 있다.
하나의 일반적 양태에서, 방법은 (i) 오브젝트의 복수의 깊이 이미지들을 표현하는 깊이 이미지 데이터 - 상기 복수의 깊이 이미지들 각각은 각각의 시점으로부터 캡처된 상기 오브젝트의 깊이 이미지임 - 및 (ii) 복수의 컬러 이미지들을 표현하는 컬러 이미지 데이터 - 상기 복수의 컬러 이미지들 각각은 (a) 각각의 시점으로부터 캡처된 상기 오브젝트의 컬러 이미지이고 (b) 복수의 매크로블록들을 가지며, 매크로블록들 각각은 상기 컬러 이미지의 각각의 영역에 대응함 - 를 수신하는 단계를 포함할 수 있다. 또한 방법은 상기 복수의 컬러 이미지들 중 하나의 컬러 이미지에 대해: 상기 컬러 이미지와 연관된 상기 복수의 깊이 이미지들 중 깊이 이미지를 식별하는 단계; 상기 깊이 이미지의 각 픽셀에 대해: 해당 픽셀과 연관된 상기 깊이 이미지의 깊이 값에 기초하여 상기 오브젝트의 표면의 포지션을 결정하는 단계; 상기 결정된 포지션에 대응하는 조합 파라미터의 값을 생성하는 단계, 상기 조합 파라미터의 값은 상기 포지션에서의 깊이 이미지의 표면 법선(surface normal)과 상기 깊이 이미지가 캡처된 시점 사이의 유사성에 기초하며; 상기 블렌드 가중치에 기초하여 델타 양자화 파라미터(
Figure pat00002
)의 값을 생성하는 단계; 및 상기 포지션에 대응하는 상기 컬러 이미지의 상기 복수의 매크로블록들 중 매크로블록을 결정하는 단계를 포함할 수 있고, 상기 매크로블록은 상기 픽셀에 대한
Figure pat00003
의 값과 연관된다. 상기 방법은 상기 컬러 이미지에 대해 압축 동작을 수행하는 단계를 더 포함할 수 있고, 상기 컬러 이미지의 상기 복수의 매크로블록들 각각의 압축 비율은 상기 매크로블록이 연관된
Figure pat00004
의 값에 기초한다.
하나 이상의 구현예들의 세부 내용들이 첨부 도면과 아래의 설명에서 기술된다. 다른 구성들은 아래의 설명, 도면들 및 청구항들로부터 명백해질 것이다.
도 1은 본 명세서에 기술된 기술적 해결책을 구현하기 위한 예시적 전자 환경을 도시하는 도면이다.
도 2는 도 1에 도시된 전자 환경 내에서 기술적 해결책을 수행하는 예시적 방법을 예시하는 흐름도이다.
도 3a 및 3b는 도 1에 도시된 전자 환경 내에서 블렌드 가중치에 기초하여 압축 품질을 결정하기 위한 예시적 기하구조를 도시하는 도면이다.
도 4는 도 1에 도시된 전자 환경 내의 표면 포인트와 매크로블록 사이의 예시적 투영을 도시하는 도면이다.
도 5은 본 명세서에 기술된 회로들과 함께 사용될 수 있는 컴퓨터 디바이스와 모바일 컴퓨터 디바이스의 예시를 도시한다.
일부 컬러 비디오 시스템은 하드웨어 비디오 인코딩 및 다중 비디오 스트림의 디코딩, 예를 들어 3개의 깊이 뷰 및 4개의 컬러 뷰를 이용함으로써 컬러 비디오의 실시간 전송을 달성한다. 이러한 뷰는 수신기에 융합되어 수신기의 추적된 눈을 기반으로 대기 시간이 짧은 왼쪽/오른쪽 뷰를 만든다.
이러한 시스템의 경우, 일반적인 문제점은 비디오 스트림, 특히 복수의 컬러 뷰에 의해 요구되는 네트워크 전송 비트레이트를 감소시키는 것이다. 네트워크 전송 비트레이트를 감소시키기 위한 종래의 접근법은 프레임의 특정한 공간 영역에서 비디오의 품질을 선택적으로 증가 또는 감소시키는 것을 포함한다. 예를 들어, 화상 회의 시나리오에서, 이러한 종래의 접근법은 프레임의 다른 부분이 품질을 저하시키지 않으면서 사용자의 얼굴을 보다 상세하게 유지하기 위해 사용될 수 있다. 다른 종래의 접근법은 다수의 컬러 이미지 각각의 품질을 보존하려고 시도한다; 이것은 최종 오브젝트의 고품질 렌더링을 압축된 뷰들의 조합으로서 가능하게 하는 목적으로 뷰 이미지들의 품질을 적응시킴으로써(예를 들어, 압축 품질을 공간적으로 압축함으로써) 이루어진다.
네트워크 전송 비트레이트에 대한 전술한 종래의 접근법에 연관된 기술적 문제점은 이러한 접근법이 다수의 컬러 및 깊이 뷰의 존재에서 효과적이지 않다는 것이다. 예를 들어, 컬러 뷰의 중복(redundancy)에 상당한 오버헤드가 존재한다. 즉, 환경의 한 포인트를 종종 여러 컬러 뷰에서 볼 수 있다는 사실. 이러한 중복은 종래의 접근법에서는 해결되지 않는다.
전술한 기술적 문제를 해결하기 위한 종래의 접근법과 달리, 전술한 기술적 문제에 대한 기술적 해결책은 깊이 이미지 표면 법선과 컬러 이미지와 연관된 뷰 방향 사이의 유사성에 기초하여 컬러 이미지들에 대한 델타 양자화 파라미터(
Figure pat00005
)를 계산하는 단계를 포함한다. 예를 들어, 다수의 컬러 및 깊이 이미지들을 갖는 이미지를 갖는 프레임을 수신하면, 컴퓨터는 컬러 이미지에 대한 배향에 가장 가까운 깊이 이미지를 찾는다. 해당 깊이 이미지의 각 픽셀에 대해, 컴퓨터는 깊이 이미지의 포지션에 대한 법선의 배향 및 복수의 컬러 이미지가 캡처되었던 시점들에 기초하여 블렌드 가중치를 생성한다. 그 다음 컴퓨터는 블렌드 가중치에 기초하여
Figure pat00006
의 갑을 생성하고, 포지션에 대응하는 컬러 이미지의 매크로블록을 결정하며, 상기 매크로블록은 픽셀에 대한
Figure pat00007
의 값과 연관된다. 그 다음 컴퓨터는 상기 컬러 이미지에 대해 압축 동작을 수행하며, 상기 컬러 이미지의 상기 복수의 매크로블록들 각각의 압축 비율은 상기 매크로블록이 연관된
Figure pat00008
의 값에 기초한다.
전술한 기술적 해결책의 기술적 이점은 상기 기술적 해결책은 중복 정보가 감소되거나 제거되기 때문에 다수의 컬러 및 깊이 이미지들을 가진 컬러 비디오 이미지를 보다 효율적으로 압축할 수 있다는 것이다. 이 효율성은 최종 블렌딩된 렌더링에 기여하지 않는 입력 컬러 이미지들의 콘텐츠를 식별하고 해당 콘텐츠의 압축 품질을 저하시킴으로써 달성된다.
기술적 해결책에 따라 개선된 컬러 비디오 시스템에서, 수신기에서 렌더링된 좌측/우측 뷰는 (i) 다수의 깊이 뷰를 기하학적으로 융합하여 3D 표면을 생성하고 (ii) 이 융합 표면에 다수의 컬러 뷰를 블렌딩함으로써 생성된다. 컬러 뷰는 블렌드 가중치에 따라 각 표면 포인트에서 함께 블렌딩되며, 여기서 각 뷰와 연관된 블렌드 가중치는 (i) 표면 포인트가 뷰에서 가시적인지(즉, 시야에서 가리지 않았거나 시야 밖이 아닌지) 및 (ii) 표면 법선과 뷰 방향 사이의 유사성의 함수이다.
컬러 뷰의 픽셀은 (i) 픽셀을 통한 뷰 광선이 장면 표면과 교차하지 않고 대신 배경을 보거나 (ii) 광선은 표면과 비스듬히 교차하여 다른 뷰가 해당 표면 포인트에서 더 나은(보다 정면에서) 커버리지를 제공하기 때문에, 장면 표면의 컬러 재구성에서 작은 블렌드 가중치에만 기여할 수 있다. 따라서, 컬러 뷰에서 픽셀들의 블록이 모두 작은 블렌드 가중치에 기여하는 경우, 최종 재구성의 품질에 영향을 주지 않으면서, 해당 블록을 낮은 품질로 압축할 수 있다(높은
Figure pat00009
값을 사용하여).
도 1은 상기 기술된 개선된 기법들이 구현될 수 있는 예시적 전자적 환경(100)을 도시하는 도면이다. 도 1에 도시된 바와 같이, 예시적인 전자 환경(100)은 컴퓨터(120)를 포함한다.
컴퓨터(120)는 컬러 이미지를 압축하도록 구성된다. 컴퓨터(120)는 네트워크 인터페이스(122), 하나 이상의 프로세싱 유닛들(124) 및 메모리(126)를 포함한다. 네트워크 인터페이스(122)는 네트워크로부터 수신된 전자 및/또는 광 신호를 컴퓨터(120)에 의한 사용을 위해 전자적 형태로 변환하기 위한, 예를 들어 이더넷 어댑터 등을 포함한다. 프로세싱 유닛들의 세트(124)는 하나 이상의 프로세싱 칩들 및/또는 어셈블리들을 포함한다. 메모리(126)는 휘발성 메모리(예컨대, RAM) 및 하나 이상의 ROM들, 디스크 드라이브들, 솔리드 스테이트 드라이브들 등과 같은 비휘발성 메모리 모두를 포함한다. 프로세싱 유닛들의 세트(124) 및 메모리(126)는 본 명세서에서 기술된 바와 같이 다양한 방법들 및 기능들을 수행하도록 구성되고 배치된 제어 회로를 함께 형성한다.
일부 실시예에서, 컴퓨터(120)의 하나 이상의 컴포넌트들은 메모리(126)에 저장된 명령어들을 프로세싱하도록 구성된 프로세서들(예를 들어, 프로세싱 유닛(124)) 일 수 있거나 그것을 포함할 수 있다. 도 1에 도시된 바와 같은 그러한 명령의 예는 깊이 이미지 관리자(130), 컬러 이미지 관리자(140), 깊이 이미지 식별 관리자(150), 블렌드 가중치 관리자(160), 양자화 파라미터 관리자(170), 매크로블록 관리자(180) 및 압축 관리자(190)를 포함한다. 또한, 도 1에 도시된 바와 같이, 메모리(126)는 이러한 데이터를 사용하는 각각의 관리자에 관하여 설명된 다양한 데이터를 저장하도록 구성된다.
깊이 이미지 관리자(130)는 깊이 이미지 데이터(132)를 수신하도록 구성된다. 깊이 이미지 관리자(130)는 일부 구현예에서 네트워크 인터페이스(122)를 통해 네트워크를 통해 깊이 이미지 데이터(132)를 수신한다. 일부 구현예에서, 깊이 이미지 관리자(130)는 로컬 저장 디바이스, 예를 들어 하드 드라이브, 플래시 드라이브, 저장 디스크 등으로부터 깊이 이미지 데이터(132)를 수신한다.
깊이 이미지 데이터(132)는 오브젝트의 복수의 깊이 이미지들(134(1)…134(N))을 표현한다. 각각의 깊이 이미지, 예를 들어 깊이 이미지(134(1))는 카메라로부터 오브젝트의 표면의 픽셀까지의 선을 따른 거리의 맵을 표현한다. 카메라는 깊이 이미지가 캡처되는 시점에 의해 표시된 각도로 오브젝트에 대해 배향된다. 일부 구현예에서, 복수의 깊이 이미지들(134(1)… 134(N)) 각각은 복수의 픽셀들을 가지며, 여기서 각각의 픽셀은 깊이 값과 연관된다. 일부 구현예에서, 각각의 깊이 이미지는 이미지 캡처 디바이스(예를 들어, 카메라)의 기준 프레임에서 표면 포인트의 깊이 값(
Figure pat00010
)을 표현한다.
컬러 이미지 관리자(140)는 컬러 이미지 데이터(142)를 수신하도록 구성된다. 컬러 이미지 관리자(140)는 일부 구현예에서 네트워크 인터페이스(122)를 통해 네트워크를 통해 컬러 이미지 데이터(142)를 수신한다. 일부 구현예에서, 컬러 이미지 관리자(140)는 로컬 저장 디바이스, 예를 들어 하드 드라이브, 플래시 드라이브, 스토리지 디스크 등으로부터 컬러 이미지 데이터(142)를 수신한다.
컬러 이미지 데이터(142)는 오브젝트의 복수의 컬러 이미지(144(1)… 144(N))를 표현한다. 각각의 컬러 이미지, 예를 들어 컬러 이미지(144(1))는 카메라로부터 오브젝트의 표면의 픽셀까지의 선을 따른 거리 또는 깊이의 맵을 표현한다. 카메라는 깊이 이미지가 캡처되는 시점에 의해 표시된 각도로 오브젝트에 대해 배향된다.
깊이 이미지 식별 관리자(150)는 해당 컬러 이미지와 연관된 복수의 깊이 이미지들 중 깊이 이미지를 식별하도록 구성된다. 일부 구현예에서, 깊이 이미지 식별 관리자(150)는 컬러 이미지(예를 들어, 컬러 이미지(134(1)))와 연관된 깊이 이미지로서, 컬러 이미지(134(1))의 투영 중심에 가장 가까운 투영 중심을 갖는 깊이 이미지(예를 들어, 깊이 이미지(144(1)))를 식별한다. 이러한 식별은 도 3a와 관련하여 더 설명된다.
블렌드 가중치 관리자(160)는 깊이 이미지의 픽셀과 연관된 깊이 이미지의 깊이 값에 기초하여 컬러 이미지의 포지션을 결정하고, 결정된 포지션에 대응하는 블렌드 가중치를 생성하여 블렌드 가중치 데이터를 생성하도록 구성된다. 일부 구현예에서, 포지션은 3차원 세계 공간 포지션이다. 일부 구현예에서, 블렌드 가중치 관리자(160)는 복수의 컬러 이미지들에 걸쳐 블렌드 가중치를 정규화하도록 구성된다.
블렌드 가중치 데이터(162)는 각 깊이 이미지의 각 픽셀에 대해 계산된 각각의 블렌드 가중치를 표현한다. 일부 구현예에서, 깊이 이미지의 픽셀에 대한 블렌드 가중치는 컬러 이미지가 캡처되는 포지션 및 시점에서 오브젝트 표면의 법선(normal)의 내적(inner product)에 기초한다. 일부 구현예에서, 해당 픽셀에 대한 블렌드 가중치는 특정 지수의 제곱(power)으로 증가된 내적에 비례한다. 일부 구현예에서, 해당 픽셀에 대한 블렌드 가중치는 컬러 이미지가 캡처되는 시점을 따라 포지션에서의 포인트가 가시적인지 여부에 더 기초한다.
양자화 파라미터(
Figure pat00011
) 관리자(170)는 해당 픽셀에 대한 블렌드 가중치에 기초하여 복수의 픽셀들 각각에 대한 델타 양자화 파라미터의 값(
Figure pat00012
)을
Figure pat00013
데이터(172)로서 생성하도록 구성된다. 일부 구현예에서,
Figure pat00014
는 정규화된 가중치에 기초한다.
Figure pat00015
데이터(172)는 각 컬러 이미지의 픽셀들에 걸친, 그리고 궁극적으로는, 각 컬러 이미지의 매크로블록에 걸친
Figure pat00016
값을 표현한다.
Figure pat00017
은 컬러 이미지의 이산 코사인 변환(DCT)의 계수를 유한한 단계들의 세트와 연관시키기 위한 단계 크기를 결정한다.
Figure pat00018
의 큰 값들은 대부분의 신호를 몇 가지 계수로만 캡처할 수 있도록 변환을 대략적으로 근사하는 큰 단계를 표현한다.
Figure pat00019
의 작은 값들은 블록의 공간 주파수 스펙트럼을 보다 정확하게 근사하지만, 더 많은 비트가 필요하다. H.264에서,
Figure pat00020
의 각 유닛 증가는 단계 크기를 12% 늘리고, 비트 전송률을 약 12% 감소시킨다.
매크로블록 관리자(180)는 매크로블록 데이터(182)를 생성하기 위해 포지션에 대응하는 컬러 이미지의 복수의 매크로블록 중 매크로블록을 결정하도록 구성된다. 궁극적으로, 매크로블록은 깊이 이미지의 픽셀에 대한
Figure pat00021
의 집계(예: 평균, 중앙값, 최대값, 최소값)값과 연관된다(예를 들어, 깊이 이미지의 픽셀에 대한
Figure pat00022
의 값에 기초함). 일부 구현예에서, 매크로블록 관리자(180)는 표면의 포지션에서 포인트를 픽셀에 대한 값
Figure pat00023
과 연관된 매크로블록을 결정하기 위해 카메라가 위치된 컬러 이미지 평면에 투영하도록 구성된다.
일부 구현예에서, 매크로블록 관리자(180)는 프레임버퍼의 복수의 픽셀들 중 픽셀에서
Figure pat00024
의 새로운 값을 저장하기 위해 포인트에서 컬러 이미지와 연관된 프레임버퍼로의 래스터화 동작을 수행하도록 구성된다. 프레임버퍼는 또한 복수의 타일들을 포함하고, 복수의 타일 각각은 프레임버퍼의 픽셀들의 세트를 포함한다. 이 경우, 매크로블록 관리자(180)는
Figure pat00025
의 집계된 값을 생산하기 위해 매크로블록에 대응하는 프레임버퍼의 타일에 대한 판독 동작을 수행하도록 더 구성된다.
Figure pat00026
의 집계된 값은 타일의
Figure pat00027
의 새로운 값들에 기초한다.
매크로블록 데이터(182)는 각 컬러 이미지의 매크로블록에 대한
Figure pat00028
의 값들의 행렬들을 표현한다. 깊이 이미지 표면에서 컬러 이미지를 쉽게 볼 수 있다면, 가중치가 커지고, 픽셀과 연관된 포인트가 투영되는 매크로블록에 대한
Figure pat00029
의 값은 그에 따라 작아질 것이며, 그 반대도 마찬가지이다.
일부 구현예에서, 매크로블록 관리자(180)는 각 매크로블록에 투영된 깊이 이미지의 영역들에 기초하여 매크로블록 데이터(182)를 업데이트할 수 있다. 예를 들어, 사람의 얼굴로 식별되는 매크로블록에 대한
Figure pat00030
의 값들은 감소될 수 있고, 사람의 다른 부분과 연관된 다른 매크로블록은
Figure pat00031
의 증가된 값을 가질 수 있다.
압축 관리자(190)는 매크로블록 데이터(182)에 따라 각 컬러 이미지에 대해 압축 동작을 수행하여 압축 데이터(192)를 생성하도록 구성된다. 압축 데이터(192)는 수신기에 전송되고, 압축 해제(디코딩) 및 융합되어 단일 컬러 비디오 이미지를 생성한다.
도 2는 컬러 이미지들을 압축하는 예시적 방법(200)을 도시하는 흐름도이다. 방법(200)은 도 1과 관련하여 기술된 소프트웨어 구조들에 의해 수행될 수 있고, 상기 소프트웨어 구조들은 사용자 디바이스 컴퓨터(120)의 메모리(126)에 상주하며 프로세싱 유닛들(124)의 세트에 의해 실행된다.
202에서, 깊이 이미지 관리자(130)는 오브젝트의 복수의 깊이 이미지들을 표현하는 깊이 이미지 데이터(132) - 상기 복수의 깊이 이미지들 각각은 각각의 시점으로부터 캡처된 상기 오브젝트의 깊이 이미지임 - 를 수신하고, 그리고 컬러 이미지 관리자(140)는 복수의 컬러 이미지들을 표현하는 컬러 이미지 데이터(142) - 상기 복수의 컬러 이미지들 각각은 (a) 각각의 시점으로부터 캡처된 상기 오브젝트의 컬러 이미지이고 (b) 복수의 매크로블록들을 가지며, 매크로블록들 각각은 상기 컬러 이미지의 각각의 영역에 대응함 - 를 수신한다.
204에서, 깊이 이미지 식별 관리자(150)는 복수의 컬러 이미지 각각에 대해, 해당 컬러 이미지와 연관된 복수의 깊이 이미지들 중 깊이 이미지를 식별한다. 일부 구현예에서, 연관된 깊이 이미지는 컬러 이미지의 값들에 가장 가까운 뷰 파라미터들의 값을 갖는 것으로 선택된다.
206에서, 블렌드 가중치 관리자(160)는 깊이 이미지의 각 픽셀에 대해, 해당 픽셀과 연관된 깊이 이미지의 깊이 값에 기초하여 오브젝트의 표면의 포지션을 결정한다.
208에서, 블렌드 가중치 관리자(160)는 깊이 이미지의 각 픽셀에 대해, 결정된 포지션에 대응하는 블렌드 가중치를 생성하며, 블렌드 가중치는 포지션에서의 깊이 이미지의 표면 법선과 깊이 이미지가 캡처되었던 시점 사이의 유사성에 기초한다. 표면 법선과 표면 포인트로부터 컬러 이미지 시점을 향한 방향 사이의 유사성에 기초하여 각 컬러 이미지에 대해 블렌드 가중치가 계산된다. 그 다음이 블렌드 가중치는 정규화(예: 합산)되고,
Figure pat00032
값이 계산된 현재 컬러 이미지와 연관된 정규화된 블렌드 가중치가 유지된다.
210에서, 양자화 관리자(170)는 깊이 이미지의 각 픽셀에 대해 블렌드 가중치에 기초하여, 델타 양자화 파라미터(
Figure pat00033
)의 값을 생성한다. 위에서 논의된 바와 같이,
Figure pat00034
의 각각의 그러한 값은 프레임버퍼의 픽셀에 저장된다.
212에서, 매크로블록 관리자(180)는 깊이 이미지의 각 픽셀에 대해, 포지션에 대응하는 컬러 이미지의 복수의 매크로블록들 중 매크로블록을 결정하며, 매크로블록은 픽셀에 대한
Figure pat00035
의 값과 연관된다. 위에서 논의한 바와 같이, 매크로블록에 대한
Figure pat00036
의 값은 매크로블록에 대응하는 프레임버퍼의 타일의 모든 픽셀에 걸쳐서
Figure pat00037
의 값의 집계이다.
214에서, 압축 관리자(190)는 해당 컬러 이미지에 대한 압축 동작을 수행하고, 해당 컬러 이미지의 복수의 매크로블록 각각의 압축 비율은 매크로블록이 연관된
Figure pat00038
의 값에 기초한다.
도 3a는 깊이 이미지의 표면(310)의 포지션(314)에 대한 블렌드 가중치를 생성하기 위한 예시적 기하형상(300)을 예시하는 도면이다. 도 3a는 방향(342)을 갖는 깊이 이미지의 시점(340) 뿐만 아니라 각각의 방향(322 및 332)을 갖는 한 쌍의 컬러 이미지 시점(320, 330)을 도시한다.
포인트(314)는 위에서 논의된 바와 같이, 깊이 맵의 픽셀에 대응하는 깊이 맵의 깊이 값으로부터 결정된다. 즉, 표면(310)의 포인트(314)의 결정은 깊이 이미지의 각각의 픽셀에 대해 그리고 그에 따라 표면(310) 위에서 반복된다.
또한 도 3a에 도시된 것은 포인트(314)에서 표면(310)에 대한 법선(312)이다. 법선의 방향을
Figure pat00039
으로, 방향(322)을
Figure pat00040
으로, 방향(324)를
Figure pat00041
로 표시한다. 시점(320)을 갖는 컬러 이미지에 대응하는 가중치는
Figure pat00042
에 의해 주어지며, 시점(330)을 갖는 컬러 이미지에 대응하는 가중치는
Figure pat00043
에 의해 주어지며, 여기서
Figure pat00044
는 지수이다. 일부 구현예에서, 지수
Figure pat00045
는 특정된다. 일부 구현예에서, 지수
Figure pat00046
목표 압축비에 기초하여 경험적으로 결정된다.
도 3a에 도시된 바와 같이, 포인트(314)는 시점(330)보다 시점(320)에서 더 잘 보인다. 따라서,
Figure pat00047
. 포인트(314) 부근의 컬러는 시점(320)을 갖는 컬러 이미지에서 고품질로 유지된다. 또한, 이들 컬러 이미지들이 수신기에서 수신되고 압축 해제될 때, 컬러 이미지는 가중치
Figure pat00048
Figure pat00049
에 따라 결합될 것이다. 예를 들어, 정규화된 블렌드 가중치는 다음과 같다.
Figure pat00050
Figure pat00051
일부 구현예에서, 둘 이상의 컬러 뷰가 있을 때, 정규화된 블렌드 가중치의 분모는 컬러 뷰에 대한 블렌드 가중치의 합이다. 그 후, 정규화된 블렌드 가중치
Figure pat00052
Figure pat00053
의 값을 계산하는데 사용된다.
일부 구현예에서, 법선(314)은 포인트(314)의 이웃(316)에서의 깊이 값들에 따라 계산된다. 일부 구현예에서, 이웃(316)은 포인트(314)에 대응하는 픽셀을 포함하는 픽셀들의 그리드를 포함한다. 일부 구현예에서, 그리드는 5 X 5이다.
도 3b는 깊이 이미지의 표면(310)의 포지션(364)에 대한 블렌드 가중치를 생성하기 위한 예시적 기하형상(350)을 예시하는 도면이다. 도 3b는 방향(342)을 갖는 깊이 이미지의 시점(340) 뿐만 아니라 각각의 방향(322 및 336)을 갖는 한 쌍의 컬러 이미지 시점(320, 330)을 도시한다.
포인트(364)는 위에서 논의된 바와 같이, 깊이 맵의 다른 픽셀에 대응하는 깊이 맵의 깊이 값으로부터 결정된다. 즉, 표면(310)의 포인트(364)의 결정은 깊이 이미지의 각각의 픽셀에 대해 그리고 그에 따라 표면(310) 위에서 반복된다.
또한 도 3a에 도시된 것은 포인트(364)에서 표면(310)에 대한 법선(360)이다. 법선의 방향을
Figure pat00054
으로, 방향(322)을
Figure pat00055
으로, 방향(324)를
Figure pat00056
로 표시한다. 시점(320)을 갖는 컬러 이미지에 대응하는 가중치는
Figure pat00057
에 의해 주어지며, 시점(330)을 갖는 컬러 이미지에 대응하는 가중치는
Figure pat00058
에 의해 주어지며, 여기서
Figure pat00059
는 지수이다. 일부 구현예에서, 지수
Figure pat00060
는 특정된다. 일부 구현예에서, 지수
Figure pat00061
목표 압축비에 기초하여 경험적으로 결정된다.
도 3b에 도시된 바와 같이, 포인트(364)는 시점(320)보다 시점(330)에서 더 잘 보인다. 따라서,
Figure pat00062
. 포인트(364) 부근의 컬러는 시점(330)을 갖는 컬러 이미지에서 고품질로 유지된다. 또한, 이들 컬러 이미지들이 수신기에서 수신되고 압축 해제될 때, 컬러 이미지는 가중치
Figure pat00063
Figure pat00064
에 따라 결합될 것이다.
일부 구현예에서, 법선(364)은 포인트(364)의 이웃(366)에서의 깊이 값들에 따라 계산된다. 일부 구현예에서, 이웃(366)은 포인트(364)에 대응하는 픽셀을 포함하는 픽셀들의 그리드를 포함한다. 일부 구현예에서, 그리드는 5 X 5이다.
도 4는 표면 포인트(예를 들어, 포인트(314 및 364))와 깊이 이미지(예를 들어, 배향(340)을 갖는 깊이 이미지(310))와 연관된 컬러 이미지의 매크로블록(420) 사이의 예시적 투영을 예시하는 예를 도시하는 도면이다. 각 매크로블록(420)은 깊이 이미지의 다수의 픽셀들로부터 매핑되어서, 각 매크로블록(420)은 깊이 이미지의 일부를 포함한다.
각 매크로블록(420)은
Figure pat00065
의 값과 연관되며, 이는 깊이 이미지의 각 픽셀의 각각의 블렌드 가중치로부터 결정된다. 일부 구현예에서, 매크로블록(420)에 대한
Figure pat00066
의 값은 매크로블록(420)에 매핑된 모든 픽셀에 대한 가중치의 값에 의존한다. 일부 구현예에서, 매크로블록(420)에 대한
Figure pat00067
의 값은 매크로블록(420)에 매핑된 픽셀의 가중치의 평균에 기초한다. 일부 구현예에서, 매크로블록(420)에 대한
Figure pat00068
의 값은 매크로블록(420)에 매핑된 픽셀의 최소 가중치에 기초한다. 일부 구현예에서, 매크로블록(420)에 대한
Figure pat00069
의 값은 매크로블록(420)에 매핑된 픽셀의 최대 가중치에 의존한다. 일부 구현예에서, 매크로블록(420)에 대한
Figure pat00070
의 값은 매크로블록(420)에 매핑된 픽셀의 가중치의 중앙값에 기초한다.
일부 구현예에서, 깊이 또는 컬러 이미지의 픽셀들은 픽셀들을 포함하는 깊이 이미지의 부분이 중요 영역(예를 들어, 사람의 얼굴)과 연관되는지를 식별하는 식별자들을 포함한다. 이러한 구현예에서
Figure pat00071
의 값은 이러한 식별자를 갖는 픽셀들을 포함하는 매크로블록들(420)에 대해서는 감소된다. 반대로, 일부 구현예에서
Figure pat00072
의 값은 이러한 식별자를 갖지 않는 픽셀들을 포함하는 매크로블록들(420)에 대해서는 증가된다.
도 5는 본 명세서에 기술된 기법들과 사용될 수 있는 일반적 컴퓨터 디바이스(500)와 일반적 모바일 컴퓨터 디바이스(550)의 예시를 도시한다.
도 5에 도시된 바와 같이, 컴퓨팅 디바이스(500)는 랩톱, 데스크톱, 워크 스테이션, 개인 휴대 정보 단말기, 서버, 블레이드 서버, 메인 프레임 및 다른 적절한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터들을 나타내기 위한 것이다. 컴퓨팅 디바이스(550)는 개인 휴대 정보 단말기, 셀룰러 전화기, 스마트폰 및 다른 유사한 컴퓨팅 디바이스들과 같은 다양한 형태의 모바일 디바이스들을 나타내기 위한 것이다. 여기에 도시된 컴포넌트들, 그들의 연결 및 관계, 및 그들의 기능은 단지 예시적인 것을 의미하며, 본 명세서에 기술된 및/또는 청구된 발명의 구현을 제한하는 것을 의미하지는 않는다.
컴퓨팅 디바이스(500)는 프로세서(502), 메모리(504), 저장 디바이스(506), 메모리(504) 및 고속 확장 포트(510)에 연결되는 고속 인터페이스(508) 및 저속 버스(514) 및 저장 디바이스(506)에 연결되는 저속 인터페이스(512)를 포함한다. 컴포넌트들(502, 504, 506, 508, 510 및 512) 각각은 다양한 버스들을 사용하여 상호 연결되고, 공통 마더 보드 상에 또는 적절한 다른 방식으로 장착될 수 있다. 프로세서(502)는 메모리(504) 또는 저장 디바이스(506)에 저장된 명령어들을 포함하는, 컴퓨팅 디바이스(500) 내에서 실행하기 위한 명령어들을 프로세싱하여, 고속 인터페이스(508)에 연결된 디스플레이(516)와 같은 외부 입/출력 디바이스상에 GUI에 대한 그래픽 정보를 디스플레이할 수 있다. 다른 구현예에서, 다수의 프로세서들 및/또는 다수의 버스들이 다수의 메모리들 및 다수의 유형의 메모리와 함께, 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(500)은 필요한 동작의 부분들을 제공하는 각 디바이스와 연결될 수 있다(예를 들어, 서버 뱅크, 블레이드 서버 그룹 또는 멀티 프로세서 시스템).
메모리(504)는 컴퓨팅 디바이스(500) 내에 정보를 저장한다. 일 구현예에서, 메모리(504)는 휘발성 메모리 유닛 또는 유닛들이다. 다른 구현예에서, 메모리(504)는 비휘발성 메모리 유닛 또는 유닛들이다. 또한, 메모리(504)는 자기 또는 광학 디스크와 같은 컴퓨터 판독가능 매체의 다른 형태 일 수 있다.
저장 디바이스(506)는 컴퓨팅 디바이스(500)에 대한 대형 스토리지를 제공할 수 있다. 일 구현예에서, 저장 디바이스(506)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성의 디바이스를 포함하는 디바이스의 어레이와 같은 컴퓨터 판독가능 매체이거나 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 프로그램 제품은 정보 캐리어에 유형적으로 수록될 수 있다. 컴퓨터 프로그램 제품은 또한 실행될 때 상기 기술된 바와 같은 하나 이상의 방법을 수행하는 명령어들을 포함할 수 있다. 정보 캐리어는 메모리(504), 저장 디바이스(506) 또는 프로세서(502)상의 메모리와 같은 컴퓨터 또는 기계 판독가능 매체이다.
고속 제어기(508)는 컴퓨팅 디바이스(500)에 대한 대역폭 집중 동작들을 관리하는 반면, 저속 제어기(512)는 낮은 대역폭 집중 동작들을 관리한다. 이러한 기능들의 할당은 단지 예시적인 것이다. 일 구현예에서, 고속 제어기(508)는 메모리(504), 디스플레이(516)(예를 들어, 그래픽 프로세서 또는 가속기를 통해) 및 다양한 확장 카드(도시되지 않음)를 수용할 수 있는 고속 확장 포트(510)에 연결된다. 구현예에서, 저속 제어기(512)는 저장 디바이스(506) 및 저속 확장 포트(514)에 결합된다. 다양한 통신 포트(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트는 키보드, 포인팅 디바이스, 스캐너와 같은 하나 이상의 입력/출력 디바이스 또는 예를 들어 네트워크 어댑터를 통해 스위치 또는 라우터와 같은 네트워킹 디바이스에 결합될 수 있다.
컴퓨팅 디바이스(500)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 그것은 표준 서버(520)로서 또는 그러한 서버들의 그룹에서 다수로 구현될 수 있다. 또한, 랙 서버 시스템(524)의 일부로서 구현될 수 있다. 또한, 랩톱 컴퓨터(522)와 같은 퍼스널 컴퓨터에서 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(500)로부터의 컴포넌트들은 디바이스(550)와 같은 모바일 디바이스(도시되지 않음) 내의 다른 컴포넌트들과 결합될 수 있다. 상기 디바이스들 각각은 컴퓨팅 디바이스(500, 550) 중 하나 이상을 포함할 수 있고, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스들(500, 550)로 구성될 수 있다.
컴퓨팅 디바이스(550)는 다른 여러 컴포넌트들 중에서도 특히, 프로세서(552), 메모리(564), 디스플레이(554)와 같은 입/출력 디바이스, 통신 인터페이스(566) 및 송수신기(568)를 포함한다. 디바이스(550)에는 또한 추가적 저장을 제공하기 위해 마이크로 드라이브 또는 다른 디바이스와 같은 저장 디바이스가 제공될 수 있다. 컴포넌트들(550, 552, 564, 554, 566 및 568) 각각은 다양한 버스들을 사용하여 상호 연결되고, 몇몇 컴포넌트들은 공통 마더 보드 상에 또는 적절한 다른 방식으로 장착될 수 있다.
프로세서(552)는 메모리(564)에 저장된 명령어들을 포함하는 컴퓨팅 디바이스(450)내의 명령어들을 실행할 수 있다. 프로세서는 별개의 그리고 다수의 아날로그 및 디지털 프로세서들을 포함하는 칩들의 칩셋으로서 구현될 수 있다. 프로세서는 예를 들어 사용자 인터페이스들, 디바이스(550)에 의해 실행되는 어플리케이션 및 디바이스(550)에 의한 무선 통신과 같은 디바이스(550)의 다른 컴포넌트들의 조정을 제공할 수 있다.
프로세서(552)는 제어 인터페이스(558) 및 디스플레이(554)에 연결된 디스플레이 인터페이스(556)를 통해 사용자와 통신할 수 있다. 디스플레이(554)는 예를 들어, TFT LCD(박막 트랜지스터 액정 디스플레이) 또는 OLED(유기 발광 다이오드) 디스플레이 또는 다른 적절한 디스플레이 기술을 포함할 수 있다. 디스플레이 인터페이스(556)는 사용자에게 그래픽 및 다른 정보를 제공하기 위해 디스플레이(554)를 구동하기 위한 적절한 회로를 포함할 수 있다. 제어 인터페이스(558)는 사용자로부터 명령을 수신하고, 프로세서(552)에 제출하기 위해 그들을 변환할 수 있다. 추가로, 외부 인터페이스(562)는 프로세서(552)와의 통신에 제공되어 다른 디바이스들과 디바이스(550)의 근거리 통신을 가능하게 할 수 있다. 외부 인터페이스(562)는 예를 들면, 일부 구현예들에서는 유선 통신을 위해 또는 다른 구현예들에서는 무선 통신을 위해 제공될 수 있고, 다수의 인터페이스들도 사용될 수 있다.
메모리(564)는 컴퓨팅 디바이스(550) 내에 정보를 저장한다. 메모리(564)는 컴퓨터 판독가능 매체 또는 매체들, 휘발성 메모리 유닛 또는 유닛들, 비휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로 구현될 수 있다. 또한 확장 메모리(574)는 예를 들어 SIMM(Single In Line Memory Module) 카드 인터페이스를 포함할 수 있는 확장 인터페이스(572)를 통해 디바이스(550)에 제공되고 접속될 수 있다. 상기 확장 메모리(574)는 디바이스(550)에 대해 추가 저장 공간을 제공할 수 있거나, 또는 어플리케이션들 또는 디바이스(550)에 대한 다른 정보를 저장할 수 있다. 특히, 확장 메모리(574)는 전술한 프로세스들을 수행하거나 보충하는 명령어들을 포함할 수 있으며, 또한 보안 정보를 포함할 수 있다. 따라서, 예를 들면, 확장 메모리(574)는 디바이스(550)에 대한 보안 모듈로서 제공될 수 있고, 디바이스(550)의 보안 사용을 허용하는 명령어들로 프로그래밍될 수 있다. 또한, 보안 어플리케이션들은 SIMM 카드 상의 식별 정보를 해킹할 수 없는 방식으로 배치하는 것과 같이, SIMM 카드들을 통해 추가 정보와 함께 제공될 수 있다.
메모리는 예를 들어, 후술되는 바와 같이, 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현예에서, 컴퓨터 프로그램 제품은 정보 캐리어에 유형적으로 수록된다. 컴퓨터 프로그램 제품은 또한 실행될 때 상기 기술된 바와 같은 하나 이상의 방법을 수행하는 명령어들을 포함한다. 정보 캐리어는 예를 들어 송수신기(568) 또는 외부 인터페이스(562)를 통해 수신될 수 있는 메모리(564), 확장 메모리(574) 또는 프로세서(552)상의 메모리와 같은 컴퓨터 또는 기계 판독가능 매체이다.
디바이스(550)는 필요에 따라 디지털 신호 처리 회로를 포함할 수 있는 통신 인터페이스(566)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(566)는 다른 것들 중에서도 GSM 보이스 콜들, SMS, EMS 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000 또는 GPRS와 같은 다양한 모드들 또는 프로토콜들 하에서의 통신을 위해 제공될 수 있다. 이러한 통신은 예를 들어, 무선 주파수 송수신기(568)를 통해 발생될 수 있다. 추가로, 블루투스, Wi-Fi 또는 다른 트랜시버(도시되지 않음)를 사용하는 것과 같은 단거리 통신이 발생될 수 있다. 추가로, GPS(Global Positioning System) 수신기 모듈(570)은 디바이스(550)상에서 실행되는 어플리케이션들에 의해 적절히 사용될 수 있는 추가적인 네비게이션 및 위치 관련 무선 데이터를 디바이스(550)에 제공할 수 있다.
디바이스(550)는 또한 사용자로부터 발화된 정보를 수신하고 그것을 이용가능한 디지털 정보로 변환할 수 있는 오디오 코덱(560)을 사용하여 청각적으로 통신할 수 있다. 오디오 코덱(560)은 마찬가지로, 예를 들어 디바이스(550)의 핸드셋 내의 스피커를 통하는 것과 같이, 사용자를 위한 가청 사운드를 생성할 수 있다. 이러한 사운드는 보이스 전화 콜들로부터의 사운드 포함할 수 있고, 기록된 사운드(예를 들어, 음성 메시지, 음악 파일 등)를 포함할 수 있고, 또한 디바이스(550)상에서 동작하는 어플리케이션들에 의해 생성된 사운드를 포함할 수 있다.
컴퓨팅 디바이스(550)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들면, 그것은 셀룰러 전화(580)로서 구현될 수 있다. 또한 스마트폰(582), 개인 휴대 정보 단말기(PDA), 또는 다른 유사한 이동 디바이스의 일부로서 구현될 수 있다.
본 명세서에 기술된 시스템들 및 기법들의 다양한 구현예들은 디지털 전자 회로, 집적 회로, 특수하게 설계된 ASIC들(application specific integrated circuits), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 구현될 수 있다. 이들 다양한 구현예들은 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템 상에서 실행가능하고 및/또는 인터프리트가능한 하나 이상의 컴퓨터 프로그램들에서의 구현예를 포함할 수 있고, 이는 전용 또는 범용일 수 있고, 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어들을 수신하고 그에 데이터 및 명령어들을 전송하기 위해 연결될 수 있다.
이들 컴퓨터 프로그램들(프로그램, 소프트웨어, 소프트웨어 어플리케이션 또는 코드로도 알려짐)은 프로그래머블 프로세서에 대한 기계 명령어들을 포함하며, 하이레벨 절차어 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리/기계어에서 구현될 수 있다. 본 명세서에서 사용된 바와 같이, 용어 “기계 판독가능 매체”, “컴퓨터 판독가능 매체”는 기계 판독가능 신호로서 기계 명령어들을 수신하는 기계 판독가능 매체를 포함하여, 기계 명령어들 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 컴퓨터 프로그램 물, 장치 및/또는 디바이스 예를 들어, 자기 디스크, 광학 디스크, 메모리, 프로그래머블 로직 디바이스(PLD)를 지칭한다. 용어 “기계 판독가능 신호”는 기계 명령어들 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 신호를 지칭한다.
사용자와의 인터렉션을 제공하기 위해, 본 명세서에서 기술된 시스템들 및 기법들은 사용자에게 정보를 디스플레이하기 위해 예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스 예를 들어, 마우스 또는 트랙볼을 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스들도 사용자와의 인터렉션을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
본 명세서에서 기술된 시스템들 및 기법들은 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 어플리케이션 서버와 같은 미들웨어 컴포넌트 또는 그래픽 사용자 인터페이스를 가지는 사용자 컴퓨터 또는 사용자가 본 명세서에 기술된 시스템들 및 기법들의 구현예와 인터렉션할 수 있는 웹 브라우저와 같은 프론트엔드 컴포넌트 또는 하나 이상의 상기 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예시들은 LAN(local area network), WAN(wide area network) 및 인터넷을 포함한다.
컴퓨팅 시스템은 사용자들 및 서버들을 포함할 수 있다. 사용자와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 인터렉션한다. 사용자와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 사용자-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다.
도 1로 돌아가서, 일부 구현예에서, 메모리(126)는 랜덤 액세스 메모리, 디스크 드라이브 메모리, 플래시 메모리 등과 같은 임의의 유형의 메모리일 수 있다. 일부 구현예에서, 메모리(126)는 압축 컴퓨터(120)의 컴포넌트들과 연관된 하나 이상의 메모리 컴포넌트(예를 들어, 하나 이상의 RAM 컴포넌트 또는 디스크 드라이브 메모리)로서 구현될 수 있다. 일부 구현예에서, 메모리(126)는 데이터베이스 메모리일 수 있다. 일부 구현예에서, 메모리(126)는 비-로컬 메모리거나 또는 이를 포함할 수 있다. 예를 들어, 메모리(126)는 다수의 디바이스들(도시되지 않음)에 의해 공유되는 메모리거나 또는 이를 포함할 수 있다. 일부 구현예에서, 메모리(126)는 네트워크 내의 서버 디바이스(도시되지 않음)와 연관될 수 있고, 압축 컴퓨터(120)의 컴포넌트들을 서비스하도록 구성될 수 있다.
압축 컴퓨터(120)의 컴포넌트들(예를 들어, 모듈들, 프로세싱 유닛들(124))은 하나 이상의 유형의 하드웨어, 소프트웨어, 펌웨어, 운영체제, 런타임 라이브러리 등을 포함할 수 있는 하나 이상의 플랫폼들(예를 들어, 하나 이상의 유사하거나 상이한 플랫폼)에 기초하여 동작하도록 구성된다. 일부 구현예에서, 압축 컴퓨터(120)의 컴포넌트는 디바이스들의 클러스터(예를 들어, 서버 팜) 내에서 동작하도록 구성될 수 있다. 그러한 구현예에서, 압축 컴퓨터(120)의 컴포넌트들의 기능 및 프로세싱은 디바이스들의 클러스터의 몇몇 디바이스들에게로 분배될 수 있다.
압축 컴퓨터(120)의 컴포넌트들은 속성들을 프로세싱하도록 구성된 임의의 유형의 하드웨어 및/또는 소프트웨어일 수 있거나 이들을 포함할 수 있다. 일부 구현예에서, 도 1의 컴퓨터(120)의 컴포넌트들에 도시된 컴포넌트들의 하나 이상의 부분은, 하드웨어 기반 모듈(예를 들어, 디지털 신호 프로세서(DSP), 필드 프로그래머블 게이트 어레이(FPGA), 메모리), 펌웨어 모듈 및/또는 소프트웨어 기반 모듈(예를 들어, 예를 들어, 컴퓨터 코드 모듈, 컴퓨터에서 실행될 수 있는 컴퓨터 판독 가능 명령어들의 세트)이거나 이들을 포함할 수 있다. 예를 들어, 일부 구현예에서, 컴퓨터(120)의 컴포넌트들의 하나 이상의 부분들은 적어도 하나의 프로세서(도시되지 않음)에 의해 실행되도록 구성된 소프트웨어 모듈이거나 또는 이를 포함할 수 있다. 일부 구현예에서, 컴포넌트들의 기능은 도 1에 도시된 것들과 상이한 모듈 및/또는 상이한 컴포넌트들에 포함될 수 있다.
도시되지는 않았지만, 일부 구현예에서, 컴퓨터(120)의 컴포넌트(또는 그 일부)는, 예를 들어 데이터 센터(예를 들어, 클라우드 컴퓨팅 환경), 컴퓨터 시스템, 하나 이상의 서버/호스트 디바이스들 및/또는 기타 등등 내에서 동작하도록 구성될 수 있다. 일부 구현예에서, 컴퓨터(120)(또는 그 일부)의 컴포넌트들은 네트워크 내에서 동작하도록 구성될 수 있다. 따라서, 컴퓨터(120)(또는 그 일부)의 컴포넌트들은 하나 이상의 디바이스들 및/또는 하나 이상의 서버 디바이스들을 포함할 수 있는 다양한 유형의 네트워크 환경들 내에서 기능하도록 구성될 수 있다. 예를 들어, 네트워크는 근거리 통신망(LAN), 광역 통신망(WAN) 등이거나 이들을 포함할 수 있다. 네트워크는 예를 들어 무선 네트워크 및/또는 게이트웨이 디바이스들, 브리지들, 스위치들 등을 사용하여 구현된 무선 네트워크이거나 또는 이들을 포함할 수 있다. 네트워크는 하나 이상의 세그먼트를 포함할 수 있고 및/또는 인터넷 프로토콜(IP) 및/또는 전용 프로토콜과 같은 다양한 프로토콜들에 기초한 부분을 가질 수 있다. 네트워크는 인터넷의 적어도 일부를 포함할 수 있다.
일부 실시예에서, 컴퓨터(120)의 하나 이상의 컴포넌트들은 메모리에 저장된 명령어들을 프로세싱하도록 구성된 프로세서들이거나 그것을 포함할 수 있다. 예를 들어, 깊이 이미지 관리자(130)(및/또는 그 일부), 컬러 이미지 관리자(140)(및/또는 그 일부), 깊이 이미지 식별 관리자(150)(및/또는 그 일부), 블렌드 가중치 관리자(160)(및/또는 그 일부), QP 관리자(170)(및/또는 그 일부), 매크로블록 관리자(180)(및/또는 그 일부) 및 압축 관리자(190)(및/또는 그 일부)는 하나 이상의 기능을 구현하기 위한 프로세스와 연관된 명령어를 실행하도록 구성된 프로세서 및 메모리의 조합일 수 있다.
다수의 실시예들이 기술되었다. 그럼에도 불구하고, 다양한 수정들이 본 발명의 정신과 범위로부터 벗어나지 않고 이루어질 수 있다는 것이 이해될 것이다.
또한, 엘리먼트가 다른 엘리먼트 상에 존재하거나, 그에 연결되거나, 전기적으로 연결되거나, 접속되거나, 전기적으로 결합되는 것으로 언급될 때, 그 엘리먼트는 다른 엘리먼트 바로 위에 있거나 연결되거나 결합될 수 있거나 또는 하나 이상의 개재 엘리먼트들이 존재할 수 있다는 것이 이해될 것이다. 대조적으로, 엘리먼트가 다른 엘리먼트에 직접적으로 존재하거나 또는 직접 연결되거나 직접 결합되는 것으로 언급될 때, 개재 엘리먼트가 존재하지 않을 수 있다. 직접적 존재, 직접적 연결 또는 직접적 결합이라는 용어들이 상세한 설명 전체에 걸쳐 사용되지 않았을 수 있지만, 직접적 존재, 직접적 연결 또는 직접적 결합된 것으로 도시된 엘리먼트들은 그러한 것으로 지칭될 수 있다. 출원의 청구항들은 명세서에서 설명되거나 도면에 도시된 예시적인 관계를 기재하도록 수정될 수 있다.
기술된 구현예의 특정 구성들이 본 명세서에 기술된 바와 같이 설명되었지만, 많은 수정, 대체, 변경 및 균등물이 통상의 기술자로 인해 발생할 것이다. 그러므로, 첨부된 청구범위는 구현의 범위 내에 있는 그러한 모든 수정 및 변경을 포함하도록 의도된 것으로 이해되어야 한다. 이들 실시예는 제한적인 것이 아닌 예시일 뿐이며, 형태 및 세부사항의 다양한 변경이 이루어질 수 있음이 이해되어야 한다. 본 명세서에 기술된 장치 및/또는 방법의 임의의 부분은 상호 배타적인 조합을 제외하고는 임의의 조합으로 결합될 수 있다. 본 명세서에 기술된 구현예들은 기재된 다른 구현예들의 기능, 컴포넌트 및/또는 구성들의 다양한 조합 및/또는 서브 조합을 포함할 수 있다.
추가로, 도면들에 도시된 논리 흐름들은 원하는 결과들을 달성하기 위해 특정한 도시된 순서, 또는 시계열적 순서를 반드시 필요로 하지 않는다. 추가로, 다른 단계들이 제공될 수 있거나, 단계들이 기술된 흐름으로부터 생략될 수 있고, 다른 컴포넌트들이 기술된 시스템에 추가되거나 그로부터 제거될 수 있다. 따라서, 다른 실시예들도 다음의 청구항들의 범위 내에 있다.

Claims (20)

  1. 방법으로서,
    (i) 오브젝트의 복수의 깊이 이미지들을 표현하는 깊이 이미지 데이터 - 상기 복수의 깊이 이미지들 각각은 각각의 시점으로부터 캡처된 상기 오브젝트의 깊이 이미지임 - 및 (ii) 복수의 컬러 이미지들을 표현하는 컬러 이미지 데이터 - 상기 복수의 컬러 이미지들 각각은 (a) 각각의 시점으로부터 캡처된 상기 오브젝트의 컬러 이미지이고 (b) 복수의 매크로블록들을 가지며, 매크로블록들 각각은 상기 컬러 이미지의 각각의 영역에 대응함 - 를 수신하는 단계;
    상기 복수의 컬러 이미지들 중 하나의 컬러 이미지에 대해:
    상기 컬러 이미지와 연관된 상기 복수의 깊이 이미지들 중 깊이 이미지를 식별하는 단계;
    상기 깊이 이미지의 각 픽셀에 대해:
    해당 픽셀과 연관된 상기 깊이 이미지의 깊이 값에 기초하여 상기 오브젝트의 표면의 포지션을 결정하는 단계;
    상기 결정된 포지션에 대응하는 조합 파라미터의 값을 생성하는 단계, 상기 조합 파라미터의 값은 상기 포지션에서의 깊이 이미지의 표면 법선(surface normal) 및 상기 복수의 컬러 이미지들이 캡처된 시점들에 기초하며;
    상기 조합 파라미터의 값에 기초하여 델타 양자화 파라미터의 값을 생성하는 단계; 및
    상기 포지션에 대응하는 상기 컬러 이미지의 상기 복수의 매크로블록들 중 매크로블록을 결정하는 단계, 상기 매크로블록은 상기 픽셀에 대한 상기 델타 양자화 파라미터의 값과 연관되며; 및
    상기 컬러 이미지에 대해 압축 동작을 수행하는 단계를 포함하며, 상기 컬러 이미지의 상기 복수의 매크로블록들 각각의 압축 비율은 상기 매크로블록이 연관된 상기 델타 양자화 파라미터의 값에 기초하는, 방법.
  2. 청구항 1에 있어서, 상기 컬러 이미지와 연관된 상기 깊이 이미지를 식별하는 단계는:
    해당 컬러 이미지의 투영 중심에 가장 가까운 투영 중심을 갖는 상기 복수의 깊이 이미지들 중 상기 깊이 이미지를 결정하는 단계를 포함하는, 방법.
  3. 청구항 1에 있어서, 상기 깊이 이미지의 해당 픽셀에 대한 상기 조합 파라미터의 값은 상기 컬러 이미지가 캡처된 상기 포지션 및 상기 시점에서 상기 오브젝트의 상기 표면의 법선의 내적(inner product)에 기초하는, 방법.
  4. 청구항 3에 있어서, 해당 픽셀에 대한 상기 조합 파라미터의 값은 특정 지수의 제곱(power)으로 상승된 내적에 비례하는, 방법.
  5. 청구항 1에 있어서, 해당 픽셀에 대한 상기 조합 파라미터의 값은 상기 컬러 이미지가 캡처된 상기 시점을 따라 상기 표면의 포지션에서의 포인트가 가시적인지 여부에 더 기초하는, 방법.
  6. 청구항 1에 있어서,
    상기 깊이 이미지의 상기 복수의 픽셀들 각각에 대해, 해당 픽셀에서 상기 복수의 컬러 이미지들에 걸친 상기 조합 파라미터의 값의 합이 특정 상수 값과 동일하도록 해당 픽셀에 대한 블렌드 가중치들 각각에 대해 리스케일링 동작을 수행하는 단계를 더 포함하는, 방법.
  7. 청구항 1에 있어서, 상기 포지션에 대응하는 상기 컬러 이미지의 상기 복수의 매크로블록들 중 상기 매크로블록을 결정하는 단계는:
    상기 표면의 포지션에서의 포인트를 오브젝트 캡처 디바이스가 위치된 컬러 이미지 평면으로 투영하는 단계를 포함하며, 상기 오브젝트 캡처 디바이스는 상기 컬러 이미지를 캡처하도록 구성되는, 방법.
  8. 청구항 7에 있어서, 상기 표면의 포인트들이 투영되지 않는 상기 컬러 이미지의 상기 복수의 매크로블록들 중 매크로블록은 배경 픽셀과 연관된 상기 델타 양자화 파라미터의 값을 갖는, 방법.
  9. 청구항 7에 있어서,
    프레임버퍼의 복수의 픽셀들의 픽셀에 저장된 상기 델타 양자화 파라미터의 새로운 값을 저장하기 위해 상기 포인트에서 상기 컬러 이미지와 연관된 프레임버퍼로의 래스터화 동작을 수행하는 단계, 상기 프레임버퍼는 또한 복수의 타일들을 포함하며, 상기 복수의 타일들 각각은 상기 프레임버퍼의 상기 복수의 픽셀들 중 픽셀들의 세트를 포함하며;
    상기 양자화 파라미터의 집계된 값을 생성하기 위해 상기 프레임버퍼의 상기 복수의 타일들 중 하나의 타일에 판독 동작을 수행하는 단계, 상기 타일은 매크로블록에 대응하며, 상기 파라미터의 집계된 값은 상기 타일의 상기 픽셀들의 세트의 상기 양자화 파라미터의 새로운 값에 기초하며; 및
    상기 델타 양자화 파라미터의 값을 상기 델타 양자화 파라미터의 집계된 값으로 교체하는 단계를 더 포함하는, 방법.
  10. 청구항 7에 있어서,
    상기 매크로블록 내의 이미지 콘텐츠를 상기 오브젝트 특정 피처로서 식별하는 단계; 및
    상기 매크로블록에서 상기 이미지 콘텐츠의 상기 오브젝트의 특정 피처로의 식별에 응답하여, 상기 매크로블록에 대한 상기 델타 양자화 파라미터의 값을 조정하는 단계를 더 포함하는, 방법.
  11. 비일시적 저장 매체를 포함하는 컴퓨터 프로그램 물로서, 상기 컴퓨터 프로그램 물은 오브젝트들의 비디오 이미지들을 압축하도록 구성된 서버 컴퓨팅 시스템의 프로세싱 회로에 의해 실행될 때, 상기 프로세싱 회로로 하여금 방법들을 수행하게 하는 코드를 포함하며, 상기 방법들은:
    (i) 오브젝트의 복수의 깊이 이미지들을 표현하는 깊이 이미지 데이터 - 상기 복수의 깊이 이미지들 각각은 각각의 시점으로부터 캡처된 상기 오브젝트의 깊이 이미지임 - 및 (ii) 복수의 컬러 이미지들을 표현하는 컬러 이미지 데이터 - 상기 복수의 컬러 이미지들 각각은 (a) 각각의 시점으로부터 캡처된 상기 오브젝트의 컬러 이미지이고 (b) 복수의 매크로블록들을 가지며, 매크로블록들 각각은 상기 컬러 이미지의 각각의 영역에 대응함 - 를 수신하는 단계;
    상기 복수의 컬러 이미지들 중 하나의 컬러 이미지에 대해:
    상기 컬러 이미지와 연관된 상기 복수의 깊이 이미지들 중 깊이 이미지를 식별하는 단계;
    상기 깊이 이미지의 각 픽셀에 대해:
    해당 픽셀과 연관된 상기 깊이 이미지의 깊이 값에 기초하여 상기 오브젝트의 표면의 포지션을 결정하는 단계;
    상기 결정된 포지션에 대응하는 조합 파라미터의 값을 생성하는 단계, 상기 조합 파라미터의 값은 상기 포지션에서의 깊이 이미지의 표면 법선(surface normal) 및 상기 복수의 색 이미지들이 캡처된 시점들에 기초하며;
    상기 조합 파라미터의 값에 기초하여 델타 양자화 파라미터의 값을 생성하는 단계; 및
    상기 포지션에 대응하는 상기 색 이미지의 상기 복수의 매크로블록들 중 매크로블록을 결정하는 단계, 상기 매크로블록은 상기 픽셀에 대한 상기 델타 양자화 파라미터의 값과 연관되며; 및
    상기 색 이미지에 대해 압축 동작을 수행하는 단계를 포함하며, 상기 색 이미지의 상기 복수의 매크로블록들 각각의 압축 비율은 상기 매크로블록이 연관된 상기 델타 양자화 파라미터의 값에 기초하는, 컴퓨터 프로그램 물.
  12. 청구항 11에 있어서, 상기 컬러 이미지와 연관된 상기 깊이 이미지를 식별하는 단계는:
    해당 컬러 이미지의 투영 중심에 가장 가까운 투영 중심을 갖는 상기 복수의 깊이 이미지들 중 상기 깊이 이미지를 결정하는 단계를 포함하는, 컴퓨터 프로그램 물.
  13. 청구항 11에 있어서, 상기 깊이 이미지의 해당 픽셀에 대한 상기 조합 파라미터의 값은 상기 컬러 이미지가 캡처된 상기 포지션 및 상기 시점에서 상기 오브젝트의 상기 표면의 법선의 내적(inner product)에 기초하는, 컴퓨터 프로그램 물.
  14. 청구항 13에 있어서, 해당 픽셀에 대한 상기 조합 파라미터의 값은 특정 지수의 제곱(power)으로 상승된 내적에 비례하는, 컴퓨터 프로그램 물.
  15. 청구항 11에 있어서, 해당 픽셀에 대한 상기 조합 파라미터의 값은 상기 컬러 이미지가 캡처된 상기 시점을 따라 상기 표면의 포지션에서의 포인트가 가시적인지 여부에 더 기초하는, 컴퓨터 프로그램 물.
  16. 청구항 11에 있어서,
    상기 깊이 이미지의 상기 복수의 픽셀들 각각에 대해, 해당 픽셀에서 상기 복수의 컬러 이미지들에 걸친 상기 조합 파라미터의 값의 합이 특정 상수 값과 동일하도록 해당 픽셀에 대한 조합 파라미터의 값들 각각에 대해 리스케일링 동작을 수행하는 단계를 더 포함하는, 컴퓨터 프로그램 물.
  17. 청구항 11에 있어서, 상기 포지션에 대응하는 상기 컬러 이미지의 상기 복수의 매크로블록들 중 상기 매크로블록을 결정하는 단계는:
    상기 표면의 포지션에서의 포인트를 오브젝트 캡처 디바이스가 위치된 컬러 이미지 평면으로 투영하는 단계를 포함하며, 상기 오브젝트 캡처 디바이스는 상기 컬러 이미지를 캡처하도록 구성되는, 컴퓨터 프로그램 물.
  18. 청구항 17에 있어서, 상기 표면의 포인트들이 투영되지 않는 상기 컬러 이미지의 상기 복수의 매크로블록들 중 매크로블록은 배경 픽셀과 연관된 상기 델타 양자화 파라미터의 값을 갖는, 컴퓨터 프로그램 물.
  19. 청구항 17에 있어서,
    상기 매크로블록 내의 이미지 콘텐츠를 상기 오브젝트 특정 피처로서 식별하는 단계; 및
    상기 매크로블록에서 상기 이미지 콘텐츠의 상기 오브젝트의 특정 피처로의 식별에 응답하여, 상기 매크로블록에 대한 상기 델타 양자화 파라미터의 값을 조정하는 단계를 더 포함하는, 컴퓨터 프로그램 물.
  20. 오브젝트들의 비디오 이미지들을 압축하도록 구성된 전자 장치로서,
    메모리; 및
    상기 메모리에 연결된 제어 회로를 포함하고, 상기 제어 회로는,
    (i) 오브젝트의 복수의 깊이 이미지들을 표현하는 깊이 이미지 데이터 - 상기 복수의 깊이 이미지들 각각은 각각의 시점으로부터 캡처된 상기 오브젝트의 깊이 이미지임 - 및 (ii) 복수의 컬러 이미지들을 표현하는 컬러 이미지 데이터 - 상기 복수의 컬러 이미지들 각각은 (a) 각각의 시점으로부터 캡처된 상기 오브젝트의 컬러 이미지이고 (b) 복수의 매크로블록들을 가지며, 매크로블록들 각각은 상기 컬러 이미지의 각각의 영역에 대응함 - 를 수신하고;
    상기 복수의 컬러 이미지들 중 하나의 컬러 이미지에 대해:
    상기 컬러 이미지와 연관된 상기 복수의 깊이 이미지들 중 깊이 이미지를 식별하고;
    상기 깊이 이미지의 각 픽셀에 대해:
    해당 픽셀과 연관된 상기 깊이 이미지의 깊이 값에 기초하여 상기 오브젝트의 표면의 포지션을 결정하고;
    상기 결정된 포지션에 대응하는 조합 파라미터의 값을 생성하고, 상기 조합 파라미터의 값은 상기 포지션에서의 깊이 이미지의 표면 법선(surface normal) 및 상기 복수의 컬러 이미지들이 캡처된 시점들에 기초하며;
    상기 조합 파라미터의 값에 기초하여 델타 양자화 파라미터의 값을 생성하고; 그리고
    상기 포지션에 대응하는 상기 컬러 이미지의 상기 복수의 매크로블록들 중 매크로블록을 결정하고, 상기 매크로블록은 상기 픽셀에 대한 상기 델타 양자화 파라미터의 값과 연관되며; 그리고
    상기 컬러 이미지에 대해 압축 동작을 수행하도록 구성되며, 상기 컬러 이미지의 상기 복수의 매크로블록들 각각의 압축 비율은 상기 매크로블록이 연관된 상기 델타 양자화 파라미터의 값에 기초하는, 전자 장치.
KR1020200091782A 2019-07-26 2020-07-23 컬러와 깊이의 다수 스트림에 대한 공간 적응적 비디오 압축 KR102396728B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/523,247 2019-07-26
US16/523,247 US10757410B1 (en) 2019-07-26 2019-07-26 Spatially adaptive video compression for multiple streams of color and depth

Publications (2)

Publication Number Publication Date
KR20210012954A true KR20210012954A (ko) 2021-02-03
KR102396728B1 KR102396728B1 (ko) 2022-05-11

Family

ID=71786834

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200091782A KR102396728B1 (ko) 2019-07-26 2020-07-23 컬러와 깊이의 다수 스트림에 대한 공간 적응적 비디오 압축

Country Status (4)

Country Link
US (1) US10757410B1 (ko)
EP (2) EP4135318A1 (ko)
KR (1) KR102396728B1 (ko)
CN (2) CN115550627A (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130329008A1 (en) * 2010-11-22 2013-12-12 Sony Corporation Encoding apparatus, encoding method, decoding apparatus, and decoding method
WO2019198501A1 (ja) * 2018-04-10 2019-10-17 ソニー株式会社 画像処理装置、画像処理方法、プログラム、および画像伝送システム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9648346B2 (en) * 2009-06-25 2017-05-09 Microsoft Technology Licensing, Llc Multi-view video compression and streaming based on viewpoints of remote viewer
MX352224B (es) * 2011-03-18 2017-11-15 Sony Corp Aparato de procesamiento de imagenes y metodo de procesamiento de imagenes.
CN103379333B (zh) * 2012-04-25 2018-12-04 浙江大学 编解码方法、视频序列码流的编解码方法及其对应的装置
CN106612431A (zh) * 2016-01-29 2017-05-03 四川用联信息技术有限公司 一种基于hevc平台对深度图像和彩色图像的编码压缩方法
US10003783B2 (en) * 2016-02-26 2018-06-19 Infineon Technologies Ag Apparatus for generating a three-dimensional color image and a method for producing a three-dimensional color image
US10904531B2 (en) * 2017-03-23 2021-01-26 Qualcomm Incorporated Adaptive parameters for coding of 360-degree video

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130329008A1 (en) * 2010-11-22 2013-12-12 Sony Corporation Encoding apparatus, encoding method, decoding apparatus, and decoding method
WO2019198501A1 (ja) * 2018-04-10 2019-10-17 ソニー株式会社 画像処理装置、画像処理方法、プログラム、および画像伝送システム

Also Published As

Publication number Publication date
CN115550627A (zh) 2022-12-30
CN111800622B (zh) 2022-08-26
EP4135318A1 (en) 2023-02-15
EP3771207B1 (en) 2022-10-05
KR102396728B1 (ko) 2022-05-11
US10757410B1 (en) 2020-08-25
CN111800622A (zh) 2020-10-20
EP3771207A1 (en) 2021-01-27

Similar Documents

Publication Publication Date Title
US9871995B2 (en) Object of interest based image processing
US11159796B2 (en) Data transmission
KR101523133B1 (ko) 비디오 디스플레이 시스템을 위한 스트리밍 기술
US20170103577A1 (en) Method and apparatus for optimizing video streaming for virtual reality
CN111770340B (zh) 视频编码方法、装置、设备以及存储介质
TW201501761A (zh) 以遊戲者之注意區域爲基礎改善視訊串流的速率控制位元分配
US20220122236A1 (en) Image processing method and apparatus
WO2020011265A1 (zh) 点云编解码方法和编解码器
US10553035B2 (en) Valence based implicit traversal for improved compression of triangular meshes
EP3410400A1 (en) Guided traversal in compression of triangular meshes
EP4044615A1 (en) Method and device for adjusting attribute of video stream
US11094087B2 (en) Dual serving scheme for LOD sequences
KR102396728B1 (ko) 컬러와 깊이의 다수 스트림에 대한 공간 적응적 비디오 압축
CN114760309A (zh) 基于云端服务的终端的业务交互方法、装置、设备和介质
EP3619679B1 (en) Chromatic aberration modeling in image compression and enhancement
US20240095966A1 (en) Coding of displacements by use of contexts for vertex mesh (v-mesh)
US11228786B2 (en) Compressing frame based on errors of previous frames
KR102537913B1 (ko) 특정영역에서의 vmi화면과 로컬화면 표시 방법 및 장치
US20150256826A1 (en) Multi-symbol run-length coding
CN114025083A (zh) 云设备的视频采集方法、装置、电子设备和介质
CN115767116A (zh) 基于云应用的数据处理方法、装置、电子设备及存储介质
CN111768459A (zh) 图像处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right