KR102223599B1 - 깊이 오프셋 압축 기법 - Google Patents

깊이 오프셋 압축 기법 Download PDF

Info

Publication number
KR102223599B1
KR102223599B1 KR1020167033498A KR20167033498A KR102223599B1 KR 102223599 B1 KR102223599 B1 KR 102223599B1 KR 1020167033498 A KR1020167033498 A KR 1020167033498A KR 20167033498 A KR20167033498 A KR 20167033498A KR 102223599 B1 KR102223599 B1 KR 102223599B1
Authority
KR
South Korea
Prior art keywords
zmin
zmax
depth
bits
tile
Prior art date
Application number
KR1020167033498A
Other languages
English (en)
Other versions
KR20170005035A (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 KR20170005035A publication Critical patent/KR20170005035A/ko
Application granted granted Critical
Publication of KR102223599B1 publication Critical patent/KR102223599B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

깊이 오프셋 압축을 위해 Zmin 및 Zmax가 결정된다. 다음에, 검사는 Zmin이 Zmax와 동일한지 결정한다. Zmin이 Zmax와 동일하다면, 깊이 오프셋 압축을 위해 Zmin 및 Zmax 중 단지 하나를 이용하고 인덱스 마스크는 사용되지 않는다. 이에 의해 절약되는 비트는 정밀도 향상을 포함하는 다른 목적을 위해 사용될 수 있다.

Description

깊이 오프셋 압축 기법{DEPTH OFFSET COMPRESSION}
압축 방법은 그래픽 하드웨어 아키텍처용으로 점차 중요하게 되어가는데, 그 이유는 압축 방법이 사용되는 전력을 줄일 수 있고 능률을 높일 수 있기 때문이다. 깊이(depth)의 압축은 다양한 방식으로 행해질 수 있다.
깊이 오프셋(depth offset; DO)은 깊이를 압축하기 위한 매우 간단한 방법이다. 깊이의 직사각형 영역인 타일(tile)이 한번에 압축된다. Zmin 및 Zmax로 정의된 최소 및 최대 깊이가 타일에서 발견된다. 각각의 깊이 값에 대해, 깊이가 Zmin에 대해 인코딩되는지 아니면 Zmax에 대해 인코딩되는지를 나타내는 하나의 비트가 저장된다. 다음에, 각각의 깊이에 대해, Zmin 또는 Zmax에 대한 잔차(residual)가 저장된다.
모든 압축된 잔차가 타일에 대한 희망하는 비트 예산(bit budget) 내에 맞도록 충분히 작으면, 압축은 성공한다. 그렇지 않으면, 데이터는 비압축 형태로 저장되거나 몇몇 다른 방법을 이용하여 압축된다.
더 좋은 압축은 전력 소모를 줄이는데 도움을 줄 수 있고 및/또는 능률을 증가시킬 수 있기 때문에 항상 바람직하다. 대역폭은, 타일의 많은 부분이 압축될 수 있을 때 및/또는 몇몇 타일이 고압축비로 압축된다면, 상당히 낮아질 수 있다.
몇몇 실시예는 다음의 도면에 대해 설명한다.
도 1은 일 실시예에 따른 압축된 깊이 아키텍처를 도시한다.
도 2는 일 실시예에 대한 플루우 차트이다.
도 3는 일 실시예에 대한 플루우 차트이다.
도 4는 일 실시예에 대한 플루우 차트이다.
도 5는 일 실시예에 대한 플루우 차트이다.
도 6은 일 실시예에 대한 시스템 도면이다.
도 7은 일 실시예에 대한 정면도이다.
DO 압축 기법에서 제공되는 "무의미(meaningless)" 조합은 더 좋은 압축을 달성하는데 이용될 수 있다. Zmin 및 Zmax는 기준점을 설명하며 이로부터 양 및 (내재적) 음의 잔차가 각각 인코딩된다. Zmin 및 Zmax 각각에 b 비트가 사용되고 깊이당 k 잔차 비트가 사용된다고 가정하자. 이 레이아웃을 이용하게 되면, Zmin 및 Zmax의 범위가 중첩될 수 있기 때문에 동일한 깊이 값을 나타내는데 여분의 방법이 존재한다. 더욱이, Zmin은 Zmax보다 항상 작아야한다. 일반적으로, Zmin+2K>Zmax-2k이기만 하면, 동일한 깊이는 Zmin 및 Zmax에 대하여 모두 인코딩될 수 있다.
따라서, Zmin 및 Zmax의 유효 조합의 수는 (2b-2k-1)2/2가 되는 한편, DO에서 일반적으로 발견되는 조합의 할당된 수는 2b이다. 이것은 조합의 적어도 절반이 사용되지 않는다는 것을 의미한다.
예로서, 몇몇의 상이한 b 및 k에 대해 24 비트 깊이 버퍼에 대한 여분의 조합의 퍼센트는 다음과 같다:
Figure 112016117062255-pct00001
전술한 리던던시는 압축을 향상시키는데 사용될 수 있다. 예를 들면, Zmin 및 Zmax는 24비트 각각을 이용하여 저장되고, 전체 타일은 512비트 이하로 압축되어야 한다고 가정하자. Zmin이 Zmax와 동일하면, 나머지 512-24=488 비트를 다른 방식으로 표현하기 위해 동일성(equality)이 신호로서 사용될 수 있다. Zmin으로부터 다시 수집되는 24 비트가 Zmax와 동일하기 때문에 단지 24만이 차감되며, 이들은 Zmin-값이 Zmax-값과 동일한 한 임의의 값으로 설정될 수 있다.
이것은 단지 예라는 것을 유의하자. 전술한 바와 같이, Zmin-범위 및 Zmax-범위가 중첩할 수 있는 리던던트 조합뿐만 아니라 Zmin≥Zmax가 충족될 수 있는 모든 조합을 고려함으로써 더 많은 비트가 재활용될 수 있다.
일 실시예는 잔차를 샘플 당 여분의 비트로 확장하며, 샘플 당 여분의 비트는 잔차가 Zmin에 대한 것인지 또는 Zmax에 대한 것인지를 인덱싱하는데 사용될 수 있다.
또 다른 실시예는 함께 대체 압축 알고리즘 상에서 재사용된 비트를 소비한다. 비트는, 예를 들면, 픽셀당 잔차로 면 방정식을 인코딩하는데 사용될 수 있다.
추가의 불필요한 조합은 인덱스 마스크를 고려함으로써 발견될 수 있다. 인덱스 마스크는 그 샘플에 대한 기준점으로서 Zmin 또는 Zmax를 선택하기 위한 샘플 당 한 비트를 포함한다. 모든 인덱스가 0이거나 그들 모두가 1이면, Zmin 또는 Zmax 값은 압축/압축해제에 사용되지 않을 것이고, 따라서 리던던트이다. 이것은 Zmin 또는 Zmax에 대해 할당된 비트가 다른 목적을 위해 또한 사용될 수 있다는 것을 의미한다. 앞서 설명된 여분의 Zmin/Zmax 조합을 사용한다면, 인덱스 마스크의 거동이 변경될 수 있고, 따라서, 추가의 조합이 얻어지지 않는다. 그러나, 모든 유효한 Zmin/Zmax 조합에 대해, 인덱스 마스크 리던던시가 사용될 수 있다.
일 실시예에서, 이것은, 단지 하나의 간격을 갖는 동안, 인덱스 마스크에 모두 0이 있는지 또는 모두 1이 있는지를 검출함으로써 직사각형 범위를 향상시키는데 사용되고, 잔차 값의 정확도를 향상시키기 위해 Zmin 또는 Zmax의 미사용 비트를 이용한다.
Zmin 및 Zmax로부터의 정보는 또한 DO의 변형을 생성하는데 사용될 수 있다. 예로서, Zmin 및 Zmax 값이 일반적으로 저장된다고 가정하자. Zmin과 Zmax 사이의 보간에 의해 6개의 새로운 Z-값이 균일하게 생성된다고 가정하자. Zmin과 Zmax와 함께 선택하기 위한 8개의 값이 존재한다. 다음에, 각각의 2×2 서브타일은 보존 Zmin-값을 식별하기 위해 Z-값의 이 파렛트(palette)에 포인팅하기 위한 3 비트, 그리고 보존 Zmax-값에 포인팅하기 위한 또 다른 3 비트를 저장한다. 다음에, 2×2 서브타일마다 이들 새로운 Zmin-값 및 Zmax-값에 대해 잔차가 계산된다. 이것은임의의 타일/서브타일 크기로, 그리고 (합이 짝수 2n(even 2n)인 한) Zmin과 Zmax 사이에서의 보간된 깊이의 임의의 수로 일반화될 수 있다.
리던던트 조합을 이용하여 Zmin 또는 Zmax에 대한 정밀도의 또 다른 비트의 가치를 얻는 것도 가능하다. 예를 들면, Zmin이 16 비트 정밀도를 갖고 타겟 깊이가 24라고 가정하자. Zmin>Zmax이면, 그들을 스왑(swap)하지만, 또한 Zmin의 17번째 비트를 1로 설정한다. 그렇지 않고, Zmin<Zmax이면, Zmin의 17번째 비트를 0으로 설정한다. 이 방식에서 여분의 비트가 Zmin(또는 바람직하다면 Zmax)의 정밀도를 증가시킨다.
Zmax에 대해 Zmin을 비교하는 것으로부터 여분의 비트를 이용하는 또 다른 방식은 다음과 같다. Zmin>Zmax이면, 다음 W*H 비트는 픽셀이 클리어되었는지 여부를 나타내는 클리어 마스크라고 가정하며, 여기서, W는 타일 폭이고 H는 타일 높이이다. 비클리어된 깊이(non-cleared depth)가 거의 없다면, 이들은 비압축 형태로 저장될 수 있고, 그렇지 않으면, 전술한 바와 같이, 잔차가 저장되지만 단지 비클리어된 픽셀에 대해서만 저장된다.
상기 논의는 깊이와 관련되었지만, 컬러에 대한 오프셋 압축에도 동일한 접근법을 적용한다.
하나로 합쳐 생각하면, 상기 기술은 다수의 상이한 방식으로 원래의 DO(depth offset) 방법을 향상시키고, 그들은 DO가 타일을 성공적으로 압축하는 기회를 증가시킨다. 따라서, 이것은 전력 소모를 줄일 수 있고 및/또는 성능을 증가시킬 수 있다.
도 1을 참조하면, 픽셀 파이프라인(10)은 래스터화기(11)로부터 픽셀을 수신한다. 래스터화기는 현재 렌더링되고 있는 삼각형 내에 어떤 픽셀이 있는지를 식별한다. 래스터화기는 n×m 픽셀의 타일에 대해 한번에 동작할 수 있다. 래스터화기가 부분적으로 삼각형과 중첩하는 타일을 발견하는 경우, 그 타일 내의 픽셀을 다수의 픽셀 파이프라인(10) 위에 배포한다. 각각의 픽셀 파이프라인은 픽셀의 깊이 및 컬러를 계산한다.
픽셀 파이프라인(10)은 깊이 값을 깊이 비교 유닛(12)에 공급한다. 깊이 비교 유닛은 깊이 캐시(14)에 기록하고 캐시로부터 판독한다. 퇴거(eviction) 시에, 깊이 캐시는 압축, 및 메모리 계층(18) 내의 다음 레벨에, 압축된 대로, 궁극적인 저장을 위해 깊이 데이터를 압축기(16)로 전송한다. 다음에, 그 계층 내의 정보가 압축해제기(19)에서 압축해제되어 깊이 캐시(14)에 공급되어 깊이 비교 유닛(12)에 의해 판독될 수 있다. 깊이 캐시(14)가 6개의 타일을 유지하는 것으로 도시되어 있지만, 다른 크기의 깊이 캐시가 사용될 수 있다.
도 2 내지 도 5를 참조하면, 여기서 설명되는 시퀀스는 소프트웨어, 펌웨어 및/또는 하드웨어에서 구현될 수 있다. 소프트웨어 및 펌웨어 실시예에서, 그들은 자기, 광학 또는 반도체 스토리지와 같은 하나 이상의 비일시적 컴퓨터 판독가능 매체에 저장된 컴퓨터 실행 명령어에 의해 구현될 수 있다. 일 실시예에서, 도 1에 도시된 압축기는 프로세서를 기반으로 할 수 있고 스토리지는 압축기와 연관될 수 있다.
도 2의 시퀀스(20)는, 다이아몬드(22)에 표시된 바와 같이, Zmax가 Zmin과 동일한지를 판정하는 것으로 시작된다. 동일하다면, 인덱스 마스크없이 Zmin과 Zmax 중 단지 하나만이 이용된다.
다음에, 잔차는, 블록(26)에 표시된 바와 같이, 샘플당 한 비트만큼 확장될 수 있다.
도 3을 참조하면, 시퀀스(31)는 또한 도 2의 단계(22 및 24)를 이용할 수 있다. 블록(30)에 도시된 바와 같이, 다른 압축 알고리즘을 위해 Zmin의 비트 및 모든 나머지 비트를 이용한다.
도 4에 도시된 또 다른 경우에, 다이아몬드(40)에 표시된 바와 같이, 모든 인덱스 마스크 비트가 1 또는 0인지 여부가 판정될 수 있다. 모든 인덱스 마스크 비트가 1 또는 0이면, 블록(42)에 표시된 바와 같이, 실제로 사용되는 Zmin 또는 Zmax의 정밀도를 향상시키기 위해 Zmin 또는 Zmax의 미사용 비트를 이용할 수 있다.
도 5에 도시된 시퀀스(50)를 참조하면, 블록(52)에 표시된 바와 같이 처음에 Zmin 및 Zmax 값이 저장된다. 다음에, Zmin과 Zmax 값 사이에 새로운 Z 값이 보간될 수 있다(블록 54). 예를 들면, Zmin과 Zmax 사이의 보간에 의해 6개의 새로운 Z값이 균일하게 생성되고, 다음에, Zmin과 Zmax와 함께 선택하기 위한 8개의 값이 존재한다. 일 실시예에서, 타일은 2×2 서브타일로 분할될 수 있다. 임의의 경우에, 타일은 블록(56)에 표시된 바와 같이 원하는 크기의 서브타일로 분할될 수 있다. 보간된 깊이 값 중에서 선택함으로써 각각의 서브타일에 대해 로컬 Zmin 및 Zmax 값을 할당한다. 추가의 비트는 보유 Zmax 값을 포인팅한다. 예를 들면, 타일이 2×2 서브타일로 분할되면, 각각의 서브타일은 보유 Zmin 값을 식별하기 위해 Z 값의 파렛트에 포인팅하기 위한 세 개의 비트 및 보유 Zmax 값에 포인팅하기 위한 또 다른 세 개의 비트를 저장한다. 다음에, 서브타일마다 이들 새로운 Zmin 및 Zmax 값에 대해 잔차가 계산된다. 블록(60)에 표시된 바와 같이, 보간된 깊이 값 중에서 선택함으로써 각각의 서브타일에 대해 로컬 Zmin 및 Zmax 값을 할당한다. 다음에, 블록(64)에 표시된 바와 같이, 서브타일마다 새로운 Zmin 및 Zmax 값에 대해 잔차가 계산된다. 물론, 합이 짝수 2n인 한 Zmin과 Zmax 사이에 임의의 수의 보간된 깊이와 함께 임의의 서브타일 및 타일 크기가 사용될 수 있다.
몇몇 실시예에서, 도 2 내지 도 5의 시퀀스는 개별적으로 또는 조합하여 사용될 수 있다.
도 6은 시스템(700)의 일 실시예를 보여준다. 실시예에서, 시스템(700)은 미디어 시스템일 수 있지만, 그러나 시스템(700)은 본 맥락에 한정되지 않는다. 예를 들면, 시스템(700)은 개인용 컴퓨터(PC), 랩톱 컴퓨터, 울트라-랩톱 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜톱 컴퓨터, 개인용 디지털 보조기(PDA), 셀룰러 폰, 셀룰러 폰/PDA 조합, 텔레비전, 스마트 장치(예를 들면, 스마트 폰, 스마트 태블릿이나 스마트 텔레비전), 모바일 인터넷 장치(MID), 메시징 장치, 데이터 통신 장치 등 내에 포함될 수 있다.
실시예에서, 시스템(700)은 디스플레이(720)에 연결되는 플랫폼(702)을 포함한다. 플랫폼(702)은 콘텐츠 서비스 장치(들)(730)나 콘텐츠 전달 장치(들)(740)나, 또는 기타 유사한 콘텐츠 소스와 같은 콘텐츠 장치로부터 콘텐츠를 수신할 수 있다. 하나 이상의 네비게이션 특징을 포함하는 네비게이션 컨트롤러(750)는, 예를 들면, 플랫폼(702) 및/또는 디스플레이(720)와 상호작용하기 위하여 사용될 수 있다. 이들 각 컴포넌트는 이하 더 상세하게 설명된다.
실시예에서, 플랫폼(702)은 칩셋(705), 프로세서(710), 메모리(712), 저장소(714), 그래픽 서브시스템(715), 애플리케이션(716) 및/또는 무선장치(718)의 조합을 포함할 수 있다. 칩셋(705)은 프로세서(710), 메모리(712), 저장소(714), 그래픽 서브시스템(715), 애플리케이션(716) 및/또는 무선장치(718) 사이의 상호통신을 제공할 수 있다. 예를 들면, 칩셋(705)은 저장소(714)와의 상호통신을 제공할 수 있는 저장소 어댑터(미도시)를 포함할 수 있다.
프로세서(710)는 복합 명령 세트 컴퓨터(CISC)나 축소 명령 세트 컴퓨터(RISC) 프로세서, x86 명령 세트 호환 프로세서, 멀티-코어, 또는 기타 다른 마이크로프로세서나 중앙 처리 유닛(CPU)으로 구현될 수 있다. 실시예에서, 프로세서(710)는 듀얼-코어 프로세서(들), 듀얼-코어 모바일 프로세서(들) 등을 포함할 수 있다. 프로세서는 메모리(712)와 함께 도 2 내지 6의 시퀀스를 구현할 수 있다.
메모리(712)는 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 또는 정적 RAM(SRAM)과 같은 휘발성 메모리 장치로서 구현될 수 있지만, 이에 한정되지 않는다.
저장소(714)는 마그네틱 디스크 드라이브, 옵티컬 디스크 드라이브, 테입 드라이브, 내부 저장 장치, 부착된 저장 장치, 플래시 메모리, 배터리 지원 SDRAM(동기화 DRAM), 및/또는 네트워크 접근 저장 장치와 같은 비-휘발성 저장 장치로서 구현될 수 있지만, 이에 한정되지 않는다. 실시예에서, 저장소(714)는, 예를 들면, 복수의 하드 드라이브가 포함될 때, 중요한 디지털 미디어에 대하여 저장 성능이 강화된 보호를 증가시키는 기술을 포함할 수 있다.
그래픽 서브시스템(715)은 디스플레이에 대하여 스틸이나 비디오와 같은 이미지의 프로세싱을 수행할 수 있다. 그래픽 서브시스템(715)은 예를 들면 그래픽 프로세싱 유닛(GPU)이나 비주얼 프로세싱 유닛(VPU)일 수 있다. 아날로그나 디지털 인터페이스는 그래픽 서브시스템(715)과 디스플레이(720)를 통신으로 연결할 수 있다. 예를 들면, 인터페이스는 고화질 멀티미디어 인터페이스, 디스플레이포트, 무선 HDMI, 및/또는 무선 HD 준용 기술 중의 어느 것일 수 있다. 그래픽 서브시스템(715)은 프로세서(710)나 칩셋(705)에 통합될 수 있다. 그래픽 서브시스템(715)은 칩셋(705)에 통신으로 연결되는 스탠드-얼론 카드일 수 있다.
본 출원에서 설명되는 그래픽 및/또는 비디오 프로세싱 기술은 다양한 하드웨어 아키텍처 내에 구현될 수 있다. 예를 들면, 그래픽 및/또는 비디오 기능성은 칩셋에 통합될 수 있다. 대안으로, 불연속 그래픽 및/또는 비디오 프로세서가 사용될 수 있다. 다른 실시예에서, 그래픽 및/또는 비디오 기능은 멀티-코어 프로세서를 포함하여, 범용 프로세서로 구현될 수 있다. 또 다른 실시예에서, 기능들은 소비자 전자 장치 내에 구현될 수 있다.
무선장치(718)는 다양한 적절한 무선 통신 기술을 사용하여 신호를 전송하고 수신할 수 있는 하나 이상의 무선장치를 포함할 수 있다. 이러한 기술은 하나 이상의 무선 네트워크를 가로지르는 통신을 포함할 수 있다. 표본적인 무선 네트워크는 (한정되지는 않지만) 무선 로컬 영역 네트워크(WLANs), 무선 개인 영역 네트워크(WPANs), 무선 도시지역 네트워크(WMANs), 셀룰러 네트워크 및 위성 네트워크를 포함할 수 있다. 이러한 네트워크 전체에서 통신할 때, 무선장치(718)는 여타 버전의 하나 이상의 적용가능한 표준에 따라서 동작할 수 있다.
실시예에서, 디스플레이(720)는 텔레비전 타입의 모니터나 디스플레이를 포함할 수 있다. 디스플레이(720)는, 예를 들면, 컴퓨터 디스플레이 스크린, 터치 스크린 디스플레이, 비디오 모니터, 텔레비전-같은 장치 및/또는 텔레비전을 포함할 수 있다. 디스플레이(720)는 디지털 및/또는 아날로그일 수 있다. 실시예에서, 디스플레이(720)는 홀로그래픽 디스플레이일 수 있다. 또한, 디스플레이(720)는 비디오 프로젝션을 수신하는 투명 표면일 수 있다. 이러한 프로젝션은 다양한 형태의 정보, 이미지, 및/또는 오브젝트를 전달할 수 있다. 예를 들면, 이러한 프로젝션은 모바일 증강 현실(MAR) 애플리케이션에 대한 비주얼 오버레이일 수 있다. 하나 이상의 소프트웨어 애플리케이션(716)의 제어하에, 플랫폼(702)은 디스플레이(720) 상에 사용자 인터페이스(722)를 디스플레이할 수 있다.
실시예에서, 콘텐츠 서비스 장치(들)(730)는 국가적인, 국제적인, 그리고/또는 독립적인 서비스에 의해서 호스팅될 수 있고, 이에 따라, 예를 들면, 인터넷을 통해 플랫폼(702)에 접근가능할 수 있다. 콘텐츠 서비스 장치(들)(730)는 플랫폼(702) 및/또는 디스플레이(720)에 연결될 수 있다. 플랫폼(702) 및/또는 콘텐츠 서비스 장치(들)(730)는 네트워크(760)에 연결되어 미디어 정보를 네트워크(760)로/로부터 주고받을 수 있다(예를 들면, 송신하고 그리고/또는 수신할 수 있다). 콘텐츠 전달 장치(들)(740)는 또한 플랫폼(702) 및/또는 디스플레이(720)에 연결될 수 있다.
실시예에서, 콘텐츠 서비스 장치(들)(730)는 케이블 텔레비전 박스, 개인용 컴퓨터, 네트워크, 전화, 인터넷 인에블드 장치나 디지털 정보 및/또는 콘텐츠를 전달할 수 있는 어플라이언스, 그리고 네트워크(760)를 통하거나 또는 직접 콘텐츠 제공자들과 플랫폼(702) 및/또는 디스플레이(720) 사이에 콘텐츠를 일 방향으로 또는 양 방향으로 전달할 수 있는 기타 유사한 장치를 포함할 수 있다. 콘텐츠는 시스템(700) 내의 어느 컴포넌트와 콘텐츠 제공자로/로부터 네트워크(760)를 통해 일방향으로 그리고/또는 양방향으로 통신할 수 있다는 것이 인식될 것이다. 콘텐츠의 예는, 예를 들면, 비디오, 음악, 의료 및 게임 정보 등을 포함하는 임의의 미디어 정보를 포함할 수 있다.
콘텐츠 서비스 장치(들)(730)는 미디어 정보, 디지털 정보 및/또는 다른 콘텐츠를 포함하는 케이블 텔레비전 프로그래밍과 같은 콘텐츠를 수신한다. 콘텐츠 제공자의 예는 케이블, 위성 텔레비전 또는 무선장치, 또는 인터넷 콘텐츠 제공자를 포함할 수 있다. 제공된 예는 본 개시의 실시예들을 한정하도록 의도되지 않는다.
실시예에서, 플랫폼(702)은 하나 이상의 네비게이션 특징을 갖는 네비게이션 컨트롤러(750)로부터 제어 신호를 수신할 수 있다. 컨트롤러(750)의 네비게이션 특징은, 예를 들면, 사용자 인터페이스(722)와 상호작용하도록 사용될 수 있다. 실시예에서, 네비게이션 컨트롤러(750)는 사용자가 (예를 들면, 연속적인 다차원의) 공간 데이터를 컴퓨터에 입력하는 것을 허용하는 컴퓨터 하드웨어 컴포넌트(특히 휴먼 인터페이스 장치)인 포인팅 장치일 수 있다. 그래픽 사용자 인터페이스(GUI), 텔레비전 및 모니터 같은 많은 시스템은 사용자가 물리적 제스처를 사용하여 컴퓨터나 텔레비전으로 데이터를 제어하고 제공하는 것을 허용한다.
컨트롤러(750)의 네비게이션 특징의 움직임은 포인터, 커서, 포커스 링이나 디스플레이에 디스플레이되는 기타 비주얼 인디케이터에 의해 디스플레이(예를 들면, 디스플레이(720)) 상에 반영될 수 있다. 예를 들면, 소프트웨어 애플리케이션(716)의 제어하에, 네비게이션 컨트롤러(750)에 위치하는 네비게이션 특징은, 예를 들면, 사용자 인터페이스(722) 상에 디스플레이되는 가상 네비게이션 특징에 매핑될 수 있다. 실시예에서, 컨트롤러(750)는 별도의 컴포넌트가 아니고 플랫폼(702) 및/또는 디스플레이(720)에 통합될 수 있다. 실시예는, 그러나, 여기 보여지거나 기술되는 구성요소나 맥락에 한정되지 않는다.
실시예에서, 드라이버(미도시)는, 예를 들면, 인에이블되었을때, 초기 부팅이후에, 사용자가 텔레비전 같은 플랫폼(702)을 버튼을 터치하여 바로 켜거나 끌 수 있도록 하는 기술을 포함할 수 있다. 프로그램 로직은, 플랫폼이 꺼졌을 때, 플랫폼(702)이 콘텐츠를 미디어 어댑터나, 다른 콘텐츠 서비스 장치(들)(730) 또는 콘텐츠 전달장치(들)(740)로 스트리밍하는 것을 허용할 수 있다. 또한, 칩셋(705)은 5.1 서라운드 사운드 오디오 및/또는 7.1 서라운드 사운드 오디오에 대한 하드웨어 및/또는 소프트웨어 지원을 포함할 수 있다. 드라이버는 통합된 그래픽 플랫폼을 위한 그래픽 드라이버를 포함할 수 있다. 실시예에서, 그래픽 드라이버는 퍼리퍼럴 컴포넌트 인터커넥트(PCI) 익스프레스 그래픽 카드를 포함할 수 있다.
다양한 실시예에서, 시스템(700) 내에 도시된 컴포넌트들 중의 하나 이상이 통합될 수 있다. 예를 들면, 플랫폼(702)과 콘텐츠 서비스 장치(들)(730)가 통합되거나, 또는 플랫폼(702)과 콘텐츠 전달 장치(들)(740)가 통합되거나, 또는 플랫폼(702), 콘텐츠 서비스 장치(들)(730) 및 콘텐츠 전달 장치(들)(740)가 통합될 수 있다. 실시예에서, 플랫폼(702)과 디스플레이(720)는 통합된 유닛일 수 있다. 예를 들면, 디스플레이(720)와 콘텐츠 서비스 장치(들)(730)가 통합되거나, 디스플레이(720)와 콘텐츠 전달 장치(들)(740)가 통합될 수 있다. 이들 예는 본 개시를 한정하도록 의도되지 않는다.
다양한 실시예에서, 시스템(700)은 무선 시스템, 유선 시스템이나 그들의 조합으로 구현될 수 있다. 무선 시스템으로 구현될 때, 시스템(700)은 하나 이상의 안테나, 전송기, 수신기, 트랜스시버, 증폭기, 필터, 제어 로직 등과 같은 무선 공유된 미디어를 통해 통신하기에 적합한 컴포넌트 및 인터페이스를 포함할 수 있다. 무선 공유 미디어의 예는, RF 스펙트럼 등과 같은, 무선 스펙트럼의 부분을 포함할 수 있다. 유선 시스템으로 구현될 때, 시스템(700)은 입력/출력(I/O) 어댑터, I/O 어댑터를 대응하는 유선 통신 매체와 연결하는 물리적 커넥터, 네트워크 인터페이스 카드(NIC), 디스크 컨트롤러, 비디오 컨트롤러, 오디오 컨트롤러 등과 같은 유선 통신 미디어를 통해 통신하기에 적합한 컴포넌트 및 인터페이스를 포함할 수 있다. 유선 통신 미디어의 예는, 와이어, 케이블, 메탈 리드, 인쇄 회로 기판(PCB), 백플레인, 스위치 패브릭, 반도체 재료, 트위스트-페어 와이어, 동축 케이블, 광 섬유 등을 포함할 수 있다.
플랫폼(702)은 정보를 전달하기 위한 하나 이상의 논리 또는 물리적 채널을 설정할 수 있다. 정보는 미디어 정보와 제어 정보를 포함할 수 있다. 미디어 정보는 사용자를 위한 콘텐츠를 표현하는 데이터를 참조할 수 있다. 콘텐츠의 예는, 예를 들면, 음성 대화, 비디오 컨퍼런스, 스트리밍 비디오, 전자 메일("이메일") 메시지, 보이스 메일 메시지, 알파뉴메릭 심볼, 그래픽, 이미지, 비디오, 텍스트 등으로부터의 데이터를 포함할 수 있다. 음성 대화로부터의 데이터는, 예를 들면, 스피치 정보, 침묵 기간, 배경 소음, 컴포트 노이즈, 톤 등일 수 있다. 제어 정보는 커맨드, 명령 또는 자동화된 시스템을 위한 제어 단어를 표현하는 여느 데이터를 참조할 수 있다. 예를 들면, 제어 정보는 미디어 정보를 시스템을 통해 라우팅하거나, 미리 결정된 방식으로 미디어 정보를 프로세싱하도록 노드에게 지시할 수 있다. 이러한 실시예는, 그러나, 도 6에 도시되거나 기술되는 구성요소나 맥락에 한정되지 않는다.
앞에서 설명한 것처럼, 시스템(700)은 다앙한 물리적 스타일이나 폼팩터(form factor)로 구현될 수 있다. 도 7은 시스템(700)이 구현되는 작은 폼팩터 장치(800)의 실시예를 보여준다. 실시예에서, 예를 들면, 장치(800)는 무선 성능을 갖는 모바일 컴퓨팅 장치로 구현될 수 있다. 모바일 컴퓨팅 장치는 프로세싱 시스템과, 예를 들면, 하나 이상의 배터리 같은, 모바일 파워 소스 또는 서플라이를 갖는 장치를 지칭할 수 있다.
앞에서 설명한 것처럼, 모바일 컴퓨팅 장치의 예는 개인용 컴퓨터(PC), 랩톱 컴퓨터, 울트라-랩톱 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜톱 컴퓨터, 개인용 디지털 보조기(PDA), 셀룰러 폰, 셀룰러 폰/PDA 조합, 텔레비전, 스마트 장치(예를 들면, 스마트 폰, 스마트 태블릿이나 스마트 텔레비전), 모바일 인터넷 장치(MID), 메시징 장치, 데이터 통신 장치 등을 포함할 수 있다.
모바일 컴퓨팅 장치의 예는 또한, 손목 컴퓨터, 손가락 컴퓨터, 반지 컴퓨터, 안경 컴퓨터, 벨트-클립 컴퓨터, 팔-밴드 컴퓨터, 신발 컴퓨터, 의복 컴퓨터 및 기타 입을 수 있는 컴퓨터와 같은 사람이 입도록 준비된 컴퓨터를 포함할 수 있다. 실시예에서, 예를 들면, 모바일 컴퓨팅 장치는 음성 통신 및/또는 데이터 통신 뿐만아니라, 컴퓨터 애플리케이션을 실행시킬 수 있는 스마트폰으로 구현될 수 있다. 비록 일부 실시예가 스마트폰으로 구현되는 모바일 컴퓨팅 장치의 예를 들어 설명되지만, 다른 실시예가 다른 무선 모바일 컴퓨팅 장치도 사용하여 구현될 수 있다는 것이 인정될 것이다. 실시예는 이러한 맥락에 한정되지 않는다.
여기서 설명되는 그래픽 프로세싱 기술은 다양한 하드웨어 아키텍처에서 구현될 수 있다. 예를 들면, 그래픽 기능을 칩셋 내에 통합될 수 있다. 대안으로, 개별 그래픽 프로세서가 사용될 수 있다. 또 다른 실시예에서, 그래픽 기능은 멀티코어 프로세서를 포함하는 범용 프로세서에 의해 구현될 수 있다.
다음의 절 및/또는 예는 추가의 실시예에 관한 것이다.
하나의 예시적인 실시예는, 하드웨어 프로세서를 이용하여, 깊이 오프셋 압축을 위한 Zmin 및 Zmax를 결정하는 단계, Zmin이 실질적으로 Zmax와 동일한지를 판정하는 단계, 및, 동일하다면, 깊이 오프셋 압축을 위해 Zmin 및 Zmax 중 하나만을 이용하고 인덱스 마스크를 이용하는 것을 억제하는 단계를 포함하는 방법일 수 있다. 상기 방법은 Zmin 또는 Zmax 중 단지 하나만을 사용함으로써 절약되는 비트를 이용하여 샘플 당 하나의 비트로 잔차를 확장하는 단계를 포함할 수 있다. 상기 방법은 상이한 압축 알고리즘을 이용하기 위해 잔차가 Zmin 또는 Zmax에 대한 것인지를 특정하기 위한 필요성을 회피함으로써 절약되는 비트를 이용하는 단계를 포함할 수 있다. 상기 방법은 Zmin이 Zmax보다 큰지를 판정하는 단계, 및, Zmin이 Zmax보다 크다면, Zmin 및 Zmax의 정밀도를 스와핑하고 Zmin으로 여분의 비트를 이용하는 단계를 포함할 수 있다. 상기 방법은 Zmin이 Zmax보다 작은지를 판정하는 단계, 및, Zmin이 Zmax보다 작다면, 여분의 비트를 이용하여 Zmin이 Zmax보다 작다는 것을 나타내는 단계를 포함할 수 있다. 상기 방법은 인덱스 마스크가 모두 1 또는 0인지를 검출하는 단계, 및, 상기 인덱스 마스크가 모두 1 또는 0이면, 실제로 이용되는 기준 값의 정밀도를 향상시키기 위해 Zmin 또는 Zmax의 미사용 비트를 이용하는 단계를 포함할 수 있다. 상기 방법은 Zmin이 Zmax보다 작다면, 다음 WxH 비트를, 픽셀이 클리어되는지 여부를 나타내기 위한 클리어 마스크로서 사용하는 단계를 포함할 수 있고, 여기서, W는 타일의 폭이고 H는 타일의 높이이다. 상기 방법은 얼마나 많은 비클리어된 깊이가 존재하는지에 따라 비압축 형태로 깊이를 저장하는 단계를 포함할 수 있다. 상기 방법은 타일 당 두 개보다 많은 깊이 값을 결정하는 단계를 포함할 수 있다. 상기 방법은 타일을 서브타일로 분해하는 단계, 깊이 값을 상기 서브타일에 할당하는 단계, 및 상기 타일의 깊이 값으로서 적어도 하나의 서브타일의 깊이 값을 선택하는 단계를 포함할 수 있다.
또 다른 예시적인 실시예는 명령어를 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 매체로서, 프로세서에 의해 실행되는 상기 명령어는, 하드웨어 프로세서를 이용하여, 깊이 오프셋 압축을 위한 Zmin 및 Zmax를 결정하는 단계, Zmin이 실질적으로 Zmax와 동일한지를 판정하는 단계, 및, 동일하다면, 깊이 오프셋 압축을 위해 Zmin 및 Zmax 중 하나만을 이용하고 인덱스 마스크를 이용하는 것을 억제하는 단계를 포함하는 시퀀스를 수행한다. 상기 매체는 또한 Zmin 또는 Zmax 중 단지 하나만을 사용함으로써 절약되는 비트를 이용하여 샘플 당 하나의 비트로 잔차를 확장하는 단계를 포함하는 시퀀스를 실행하기 위한 명령어를 저장할 수 있다. 상기 매체는 또한 상이한 압축 알고리즘을 이용하기 위해 잔차가 Zmin 또는 Zmax에 대한 것인지를 특정하기 위한 필요성을 회피함으로써 절약되는 비트를 이용하는 단계를 포함하는 시퀀스를 수행하기 위한 명령어를 저장할 수 있다. 상기 매체는 또한 Zmin이 Zmax보다 큰지를 판정하는 단계, 및, Zmin이 Zmax보다 크다면, Zmin 및 Zmax의 정밀도를 스와핑하고 Zmin으로 여분의 비트를 이용하는 단계를 포함하는 시퀀스를 수행하기 위한 명령어를 저장할 수 있다. 상기 매체는 또한 Zmin이 Zmax보다 작은지를 판정하는 단계, 및, Zmin이 Zmax보다 작다면, 여분의 비트를 이용하여 Zmin이 Zmax보다 작다는 것을 나타내는 단계를 포함하는 시퀀스를 수행하기 위한 명령어를 저장할 수 있다. 상기 매체는 또한 인덱스 마스크가 모두 1 또는 0인지를 검출하는 단계, 및, 상기 인덱스 마스크가 모두 1 또는 0이면, 실제로 이용되는 기준 값의 정밀도를 향상시키기 위해 Zmin 또는 Zmax의 미사용 비트를 이용하는 단계를 포함하는 시퀀스를 수행하기 위한 명령어를 저장할 수 있다. 상기 매체는 또한 Zmin이 Zmax보다 작다면, 다음 WxH 비트를, 픽셀이 클리어되는지 여부를 나타내기 위한 클리어 마스크로서 사용하는 단계를 포함하는 시퀀스를 수행하기 위한 명령어를 저장할 수 있고, 여기서, W는 타일의 폭이고 H는 타일의 높이이다. 상기 매체는 또한 얼마나 많은 비클리어된 깊이가 존재하는지에 따라 비압축 형태로 깊이를 저장하는 단계를 포함하는 시퀀스를 수행하기 위한 명령어를 저장할 수 있다. 상기 매체는 또한 타일 당 두 개보다 많은 깊이 값을 결정하는 단계를 포함하는 시퀀스를 수행하기 위한 명령어를 저장할 수 있다. 상기 매체는 또한 타일을 서브타일로 분해하는 단계, 깊이 값을 상기 서브타일에 할당하는 단계, 및 상기 타일의 깊이 값으로서 적어도 하나의 서브타일의 깊이 값을 선택하는 단계를 포함하는 시퀀스를 수행하기 위한 명령어를 저장할 수 있다.
또 다른 예시적인 실시예는, 하드웨어 프로세서를 이용하여, 깊이 오프셋 압축을 위한 Zmin 및 Zmax를 결정하고, Zmin이 실질적으로 Zmax와 동일한지를 판정하고, 동일하다면, 깊이 오프셋 압축을 위해 Zmin 및 Zmax 중 하나만을 이용하고 인덱스 마스크를 이용하는 것을 억제하기 위한 프로세서, 및 상기 프로세서에 결합된 스토리지를 포함하는 장치일 수 있다. 상기 장치는 상기 프로세서가 Zmin 또는 Zmax 중 단지 하나만을 사용함으로써 절약되는 비트를 이용하여 샘플 당 하나의 비트로 잔차를 확장하는 것을 포함할 수 있다. 상기 장치는 상기 프로세서가 상이한 압축 알고리즘을 이용하기 위해 잔차가 Zmin 또는 Zmax에 대한 것인지를 특정하기 위한 필요성을 회피함으로써 절약되는 비트를 이용하는 것을 포함할 수 있다. 상기 장치는 상기 프로세서가 Zmin이 Zmax보다 큰지를 판정하고, Zmin이 Zmax보다 크다면, Zmin 및 Zmax의 정밀도를 스와핑하고 Zmin으로 여분의 비트를 이용하는 것을 포함할 수 있다. 상기 장치는 상기 프로세서가 Zmin이 Zmax보다 작은지를 판정하고, Zmin이 Zmax보다 작다면, 여분의 비트를 이용하여 Zmin이 Zmax보다 작다는 것을 나타내는 것을 포함할 수 있다. 상기 장치는 상기 프로세서가 인덱스 마스크가 모두 1 또는 0인지를 검출하고, 상기 인덱스 마스크가 모두 1 또는 0이면, 실제로 이용되는 기준 값의 정밀도를 향상시키기 위해 Zmin 또는 Zmax의 미사용 비트를 이용하는 것을 포함할 수 있다. 상기 장치는 상기 프로세서가 Zmin이 Zmax보다 작다면, 다음 WxH 비트를, 픽셀이 클리어되는지 여부를 나타내기 위한 클리어 마스크로서 사용하는 것을 포함할 수 있고, 여기서, W는 타일의 폭이고 H는 타일의 높이이다. 상기 장치는 상기 프로세서가 얼마나 많은 비클리어된 깊이가 존재하는지에 따라 비압축 형태로 깊이를 저장하는 것을 포함할 수 있다. 상기 장치는 상기 프로세서가 타일 당 두 개보다 많은 깊이 값을 결정하는 것을 포함할 수 있다. 상기 장치는 상기 프로세서가 타일을 서브타일로 분해하고, 깊이 값을 상기 서브타일에 할당하고, 상기 타일의 깊이 값으로서 적어도 하나의 서브타일의 깊이 값을 선택하는 것을 포함할 수 있다. 상기 장치는 상기 프로세서에 통신가능하게 결합된 디스플레이를 포함할 수 있다. 상기 장치는 상기 프로세서에 결합된 배터리를 포함할 수 있다.
본 명세서 전체에서 "일 실시예" 또는 "하나의 실시예"에 대한 언급은 상기 실시예와 관련되어 설명되는 특별한 특징, 구조 또는 특성이 본 개시내에 포함되는 적어도 일 구현 내에 포함된다는 것을 의미한다. 따라서 "일 실시예" 또는 "하나의 실시예"의 표현이 반드시 동일한 실시예를 의미하는 것은 아니다. 또한, 특정 특징, 구조 또는 특성은 도해되는 특정 실시예와 본 출원의 청구범위 내에 포함될 수 있는 모든 그러한 형식 이외의 다른 적합한 형식 내에 구성될 수 있다.
한정된 수의 실시예가 설명되어졌지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 이에 대한 다양한 수정과 변형을 인정할 것이다. 첨부되는 청구범위는 본 개시의 사상과 범위 내에 속하는 모든 그러한 수정과 변형을 커버한다고 의도된다.

Claims (30)

  1. 하드웨어 프로세서를 이용하여, 깊이 오프셋 압축을 위한 최소 깊이(Zmin), 최대 깊이(Zmax), 잔차(residual) 및 Zmin/Zmax-인덱스 선택 마스크를 결정하는 단계와,
    특정 압축 기법에 할당되었던 미사용 비트를 다른 압축 기법으로 변환하는 단계와,
    상기 인덱스 선택 마스크가 모두 1 또는 0인지 여부를 검출하는 단계 - 상기 인덱스 선택 마스크가 모두 1 또는 0이면, Zmin 또는 Zmax의 미사용 비트를 사용하여 기준값의 정밀도를 향상시키거나 상기 미사용 비트를 상기 잔차 중에 재분배함 -
    를 포함하는
    방법.
  2. 제1항에 있어서,
    Zmin 및 Zmax의 범위를 결정하는 단계와, 중첩되는 Zmin 및 Zmax의 범위를 결정하는 단계와, Zmin 및 Zmax 범위를 중첩시킴으로써 발생하는 리던던트 비트 조합을 식별하여 재사용하는 단계를 포함하는
    방법.
  3. 제1항에 있어서,
    Zmax에 연관된 Zmin을 포함하는 Zmin/Zmax-쌍을 식별하는 단계와,
    상기 Zmin/Zmax-쌍이 깊이 오프셋 압축을 위한 무효 기준 값 쌍(invalid reference value pair)인지 또는 리던던트 조합을 구성하는지를 판정하는 단계와,
    상기 Zmin/Zmax-쌍이 깊이 오프셋 압축을 위한 무효 기준 값 쌍이거나 또는 리던던트 조합을 구성하면, 잔여 비트와 함께 상이한 압축 알고리즘, 또는 상이한 깊이 오프셋 압축 기법을 이용하는 단계를 포함하는
    방법.
  4. 제3항에 있어서,
    상기 미사용 비트를 재사용하여 샘플당 한 비트로 잔차를 확장하는 단계를 포함하는
    방법.
  5. 제1항에 있어서,
    Zmin이 Zmax보다 큰지를 판정하는 단계와, Zmin이 Zmax보다 크다면, Zmin의 비트와 Zmax의 비트를 스와핑(swapping)하고 여분의 비트를 Zmin에 더하여 Zmin의 정밀도를 향상시키는 단계를 포함하는
    방법.
  6. 제1항에 있어서,
    Zmin이 Zmax보다 크다면, 다음 W×H 비트를, 픽셀이 클리어되는지 여부를 나타내기 위한 클리어 마스크로서 이용하는 단계를 포함하되, W는 타일의 폭이고 H는 타일의 높이인
    방법.
  7. 제6항에 있어서,
    얼마나 많은 비클리어된(non-cleared) 깊이의 픽셀이 존재하는지 여부에 따라 깊이를 비압축 형태로 저장하는 단계를 포함하는
    방법.
  8. 삭제
  9. 제1항에 있어서,
    압축되는 타일에 대하여, 타일 당 두 개보다 많은 깊이 값을 결정하는 단계를 포함하는
    방법.
  10. 제9항에 있어서,
    타일을 서브타일로 분해하는 단계, 및 상기 서브타일 각각에 하나 이상의 기준 깊이 값을 할당하는 단계를 포함하는
    방법.
  11. 제1항에 있어서,
    특정 압축 기법에 할당되었던 컬러 데이터에 대한 미사용 비트를 다른 압축 기법으로 변환하는 단계를 포함하는
    방법.
  12. 명령어를 저장한 하나 이상의 비일시적 컴퓨터 판독가능 매체로서,
    상기 명령어는 프로세서에 의해 실행되어,
    하드웨어 프로세서를 이용하여, 깊이 오프셋 압축을 위한 최소 깊이(Zmin) 및 최대 깊이(Zmax)를 결정하는 것과,
    깊이 오프셋 압축에 대해 사용되지 않는 Zmin 또는 Zmax 중 적어도 하나에 대해 깊이 당 잔차 비트를 결정하는 것과,
    특정 압축 기법에 할당되었던 미사용 비트를 다른 압축 기법으로 변환하는 것과,
    Zmax에 연관된 Zmin을 포함하는 Zmin/Zmax-쌍을 식별하고, Zmin이 Zmax와 동일한지 여부를 판정하고, 상기 Zmin/Zmax-쌍이 깊이 오프셋 압축을 위한 무효 기준 값 쌍(invalid reference value pair) 또는 리던던트 조합을 구성하는 경우, 잔여 비트와 함께 상이한 압축 알고리즘, 또는 상이한 깊이 오프셋 압축 기법을 이용하는 것
    을 포함하는 시퀀스를 수행하는
    컴퓨터 판독가능 매체.
  13. 제12항에 있어서,
    Zmin 및 Zmax의 범위를 결정하는 것과, 중첩되는 Zmin 및 Zmax의 범위를 결정하는 것과, Zmin 및 Zmax 범위를 중첩시킴으로써 발생하는 리던던트 비트 조합을 식별하여 재사용하는 것을 포함하는
    컴퓨터 판독가능 매체.
  14. 삭제
  15. 제12항에 있어서,
    상기 시퀀스는 상기 미사용 비트를 재사용하여 샘플당 한 비트로 잔차를 확장하는 것을 포함하는
    컴퓨터 판독가능 매체.
  16. 제12항에 있어서,
    상기 시퀀스는 Zmin이 Zmax보다 큰지를 판정하는 것과, Zmin이 Zmax보다 크다면, Zmin의 비트와 Zmax의 비트를 스와핑(swapping)하여 여분의 비트를 Zmin에 더하여 Zmin의 정밀도를 향상시키는 것을 포함하는
    컴퓨터 판독가능 매체.
  17. 제12항에 있어서,
    상기 시퀀스는, Zmin이 Zmax보다 크다면, 다음 W×H 비트를, 픽셀이 클리어되는지 여부를 나타내기 위한 클리어 마스크로서 이용하는 것을 포함하되, W는 타일의 폭이고 H는 타일의 높이인
    컴퓨터 판독가능 매체.
  18. 제17항에 있어서,
    상기 시퀀스는 얼마나 많은 비클리어된 깊이의 픽셀이 존재하는지에 따라 깊이를 비압축 형태로 저장하는 것을 포함하는
    컴퓨터 판독가능 매체.
  19. 제12항에 있어서,
    상기 시퀀스는 인덱스 마스크가 모두 1 또는 0인지를 검출하는 것과, 상기 시퀀스는 상기 인덱스 마스크가 모두 1 또는 0이면, Zmin 또는 Zmax의 미사용 비트를 이용하여 기준값의 정밀도를 향상시키거나 상기 잔차 중에서 여분의 비트를 재분배하는 것을 포함하는
    컴퓨터 판독가능 매체.
  20. 제12항에 있어서,
    상기 시퀀스는 압축되는 타일에 대하여, 타일 당 두 개보다 많은 깊이 값을 결정하는 것을 포함하는
    컴퓨터 판독가능 매체.
  21. 제20항에 있어서,
    상기 시퀀스는 타일을 서브타일로 분해하는 것, 상기 서브타일 각각에 깊이 값을 할당하는 것을 포함하는
    컴퓨터 판독가능 매체.
  22. 제12항에 있어서,
    특정 압축 기법에 할당되었던 컬러 데이터에 대한 미사용 비트를 다른 압축 기법으로 변환하는 것을 포함하는
    컴퓨터 판독가능 매체.
  23. 깊이 오프셋 압축을 위한 최소 깊이(Zmin) 및 최대 깊이(Zmax)를 결정하고, 깊이 오프셋 압축에 대해 사용되지 않는 Zmin 또는 Zmax 중 적어도 하나에 대해 깊이 당 잔차 비트를 결정하고, 특정 압축 기법에 할당되었던 미사용 비트를 다른 압축 기법으로 변환하고, Zmin이 Zmax보다 큰지를 판정하고, Zmin이 Zmax보다 크다면, Zmin의 비트와 Zmax의 비트를 스와핑(swapping)하여 여분의 비트를 Zmin에 더하여 Zmin의 정밀도를 향상시키는 하드웨어 프로세서와,
    상기 하드웨어 프로세서에 결합된 스토리지를 포함하는
    장치.
  24. 제23항에 있어서,
    상기 프로세서는 Zmin 및 Zmax의 범위를 결정하고, 중첩되는 Zmin 및 Zmax의 범위를 결정하고, Zmin 및 Zmax 범위를 중첩시킴으로써 발생하는 리던던트 비트 조합을 식별하여 사용하는
    장치.
  25. 제23항에 있어서,
    상기 프로세서는 Zmax에 연관된 Zmin을 포함하는 Zmin/Zmax-쌍을 식별하고, Zmin이 Zmax와 동일한지 여부를 판정하고, 상기 Zmin/Zmax-쌍이 깊이 오프셋 압축을 위한 무효 기준 값 쌍(invalid reference value pair) 또는 리던던트 조합을 구성하는 경우, 잔여 비트와 함께 상이한 압축 알고리즘, 또는 상이한 깊이 오프셋 압축 기법을 이용하는
    장치.
  26. 제23항에 있어서,
    상기 프로세서는 상기 미사용 비트를 재사용하여 샘플당 한 비트로 잔차를 확장하는
    장치.
  27. 제23항에 있어서,
    상기 프로세서는, Zmin이 Zmax보다 크다면, 다음 W×H 비트를, 픽셀이 클리어되는지 여부를 나타내기 위한 클리어 마스크로서 이용하되, W는 타일의 폭이고 H는 타일의 높이인
    장치.
  28. 제23항에 있어서,
    상기 프로세서는 얼마나 많은 비클리어된 깊이의 픽셀이 존재하는지에 따라 깊이를 비압축 형태로 저장하는
    장치.
  29. 제23항에 있어서,
    상기 프로세서는 인덱스 마스크가 모두 1 또는 0인지 여부를 검출하고, 상기 인덱스 마스크가 모두 1 또는 0이면, Zmin 또는 Zmax의 미사용 비트를 사용하여 기준값의 정밀도를 향상시키거나 상기 미사용 비트를 상기 잔차 중에 재분배하는
    장치.
  30. 깊이 테스트를 위한 장치로서,
    하드웨어 프로세서를 이용하여, 깊이 오프셋 압축을 위한 최소 깊이(Zmin), 최대 깊이(Zmax), 잔차(residual) 및 Zmin/Zmax-인덱스 선택 마스크를 결정하는 수단과,
    특정 압축 기법에 할당되었던 미사용 비트를 다른 압축 기법으로 변환하는 수단과,
    상기 인덱스 선택 마스크가 모두 1 또는 0인지 여부를 검출하는 수단 - 상기 인덱스 선택 마스크가 모두 1 또는 0이면, Zmin 또는 Zmax의 미사용 비트를 사용하여 기준값의 정밀도를 향상시키거나 상기 미사용 비트를 상기 잔차 중에 재분배함 - 과,
    Zmin이 Zmax보다 큰 경우, 다음 W×H 비트를, 픽셀이 클리어되는지 여부를 나타내기 위한 클리어 마스크로서 이용하는 수단 - W는 타일의 폭이고 H는 타일의 높이임 -
    을 포함하는
    장치.
KR1020167033498A 2014-06-30 2015-06-25 깊이 오프셋 압축 기법 KR102223599B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/318,986 2014-06-30
US14/318,986 US9552620B2 (en) 2014-06-30 2014-06-30 Depth offset compression
PCT/US2015/037592 WO2016003755A1 (en) 2014-06-30 2015-06-25 Depth offset compression

Publications (2)

Publication Number Publication Date
KR20170005035A KR20170005035A (ko) 2017-01-11
KR102223599B1 true KR102223599B1 (ko) 2021-03-05

Family

ID=54931089

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167033498A KR102223599B1 (ko) 2014-06-30 2015-06-25 깊이 오프셋 압축 기법

Country Status (7)

Country Link
US (1) US9552620B2 (ko)
EP (1) EP3161780A4 (ko)
JP (2) JP6484898B2 (ko)
KR (1) KR102223599B1 (ko)
CN (1) CN106462936B (ko)
SG (1) SG11201609931SA (ko)
WO (1) WO2016003755A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9824412B2 (en) * 2014-09-24 2017-11-21 Intel Corporation Position-only shading pipeline
WO2020053482A1 (en) * 2018-09-13 2020-03-19 Nokia Technologies Oy A method, an apparatus and a computer program product for volumetric video
CN111047656A (zh) * 2019-11-18 2020-04-21 中国航空工业集团公司西安航空计算技术研究所 一种动态参考点深度偏移z值压缩算法
CN110956670A (zh) * 2019-11-18 2020-04-03 中国航空工业集团公司西安航空计算技术研究所 一种基于深度偏移的多模式自适应z值压缩算法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030038803A1 (en) * 2001-08-23 2003-02-27 Ati Technologies System, Method, and apparatus for compression of video data using offset values
JP5208218B2 (ja) * 2008-09-25 2013-06-12 パナソニック株式会社 画像符号化装置、デジタルスチルカメラ、デジタルビデオカメラ、撮像素子、および画像符号化方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2191443B1 (en) 2007-09-12 2013-01-23 Telefonaktiebolaget L M Ericsson (publ) Depth buffer compression
CN101771874B (zh) * 2009-12-31 2011-09-14 华中科技大学 一种卫星图像压缩方法及其实现装置
US8923389B1 (en) * 2011-01-13 2014-12-30 Zenverge, Inc. Unified scaling with differential coding for internal bit depth extension and reference frame compression
JP5751616B2 (ja) * 2011-03-14 2015-07-22 国立研究開発法人情報通信研究機構 立体映像符号化装置およびその方法、ならびに、立体映像復号化装置およびその方法
CN103518227B (zh) * 2011-04-28 2017-09-15 英特尔公司 用于随机运动模糊栅格化的深度缓冲器压缩
KR101604420B1 (ko) * 2011-12-29 2016-03-21 인텔 코포레이션 가변 깊이 압축
US20130265305A1 (en) 2012-04-04 2013-10-10 Jon N. Hasselgren Compressed Depth Cache
US9111392B2 (en) 2012-09-27 2015-08-18 Intel Corporation Stochastic depth buffer compression using generalized plane encoding
US9665973B2 (en) 2012-11-20 2017-05-30 Intel Corporation Depth buffering
US9582847B2 (en) * 2013-04-22 2017-02-28 Intel Corporation Color buffer compression
US9098924B2 (en) * 2013-07-15 2015-08-04 Nvidia Corporation Techniques for optimizing stencil buffers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030038803A1 (en) * 2001-08-23 2003-02-27 Ati Technologies System, Method, and apparatus for compression of video data using offset values
JP5208218B2 (ja) * 2008-09-25 2013-06-12 パナソニック株式会社 画像符号化装置、デジタルスチルカメラ、デジタルビデオカメラ、撮像素子、および画像符号化方法

Also Published As

Publication number Publication date
KR20170005035A (ko) 2017-01-11
US9552620B2 (en) 2017-01-24
JP2017525003A (ja) 2017-08-31
JP6745020B2 (ja) 2020-08-26
CN106462936A (zh) 2017-02-22
JP2019057320A (ja) 2019-04-11
US20150379681A1 (en) 2015-12-31
SG11201609931SA (en) 2016-12-29
JP6484898B2 (ja) 2019-03-20
WO2016003755A1 (en) 2016-01-07
CN106462936B (zh) 2020-04-14
EP3161780A1 (en) 2017-05-03
EP3161780A4 (en) 2018-02-21

Similar Documents

Publication Publication Date Title
JP6504212B2 (ja) 装置、方法およびシステム
KR101717915B1 (ko) 동적 생성 그래픽 자원들에 대한 압축 기술들
US20130268569A1 (en) Selecting a tile size for the compression of depth and/or color data
JP6745020B2 (ja) 方法、コンピュータプログラム、コンピュータ可読記録媒体および装置
CN104933750B (zh) 一种紧凑深度平面表示的方法、装置及介质
JP6182225B2 (ja) カラーバッファ圧縮
KR102063373B1 (ko) 컬러 압축을 위한 클러스터링 및 인코딩
US9336561B2 (en) Color buffer caching
EP2889875B1 (en) Adaptive depth offset compression
US9262841B2 (en) Front to back compositing

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