KR20010089535A - 3d 생성 장면에서 로테이션과 노멀을 인코딩하는 방법 및시스템 - Google Patents

3d 생성 장면에서 로테이션과 노멀을 인코딩하는 방법 및시스템 Download PDF

Info

Publication number
KR20010089535A
KR20010089535A KR1020017006857A KR20017006857A KR20010089535A KR 20010089535 A KR20010089535 A KR 20010089535A KR 1020017006857 A KR1020017006857 A KR 1020017006857A KR 20017006857 A KR20017006857 A KR 20017006857A KR 20010089535 A KR20010089535 A KR 20010089535A
Authority
KR
South Korea
Prior art keywords
normal
rotation
encoding
face
computer
Prior art date
Application number
KR1020017006857A
Other languages
English (en)
Other versions
KR100458102B1 (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 KR20010089535A publication Critical patent/KR20010089535A/ko
Application granted granted Critical
Publication of KR100458102B1 publication Critical patent/KR100458102B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Processing Or Creating Images (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Stereoscopic And Panoramic Photography (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

로테이션 및 노멀(200)에 대한 컴팩트한 표현을 이용하여 비디오 스트림을 인코딩하기 위한 방법 및 시스템(102). 방법 및 시스템(102)은 로테이션과 노멀(200)을 정규화된 로테이션 및 노멀로 변환한 후, 정규화된 버젼을 단위 체적(215)상으로 투사한다. 각 로테이션 및 노멀(200)은 그것이 투사된 면에 따라 인코딩된다. 또한, 단위 체적(215)를 가로지르는 이동에 의한 모션(motion)도 컴팩트하게 표현될 수 있다.

Description

3D 생성 장면에서 로테이션과 노멀을 인코딩하는 방법 및 시스템{METHOD AND SYSTEM FOR ENCODING ROTATIONS AND NORMALS IN 3D GENERATED SCENES}
관련된 출원서에 대한 교차 참조
본 발명은 본원의 동 발명자에 의해, 동일자로 출원된 출원번호 09/205,191인 "데이터 어레이의 예측 인코딩을 위한 방법 및 시스템"과 관련되어 있다. 상기 출원서의 내용을 참조로 첨부하였다.
"컴퓨터 생성 이미지"라는 것은 비디오 기술의 확장 영역까지를 포함한다. 원래 이 용어는 단순한 텍스트 이미지 또는 2D 이미지와 동일한 것으로 간주되곤 했다. 그러나, 현재 이 용어는 디지털로 인코딩된 비디오 스트림의 모든 형태를 포함하고 있다. 동화상 전문가 그룹(MPEG, Motion Pictures Expert Group)은 이미지 스트림의 인코딩 및 디코딩에 필요한 기술을 연구하기 위해 형성되었다. 그 결과로서 나타난 표준(지금은 MPEG-1이라고 불려짐)이 2개의 추가 MPEG 표준, 즉 MPEG-2 및 MPEG-4에 대한 기초를 이루고 있다. MPEG-4는 진행 중인 표준으로서,본 발명의 기본을 제공하고 있다. 최종 위원회 표준안은 ISO/IEC FCD 14496-1 MPEG-4 Systems and -2 MPEG-4 Visual이고, 그 내용을 참고로 첨부하였다.
잠정 표준(draft standard)은 비디오의 단일 스트림 기반 모델로부터 시작하여, 동시에 동작하는 연속적인 스트림에 촛점을 맞추고 있다. 표준의 한 부분은 장면에 대한 이진 포맷("BIFS"라고 알려져 있기도 함)이다. 이 포맷은 3D 오브젝트 및 그 모션의 표현(description)을 가능하게 하고, 비디오 스트림의 일부와 더 많은 상호작용을 가능하게 한다. 그러나, 잠정 표준은 보상 프로세스를 지원하는 기하학적인 양자화 방법(topologically coherent quantization scheme)을 직접적으로 제공하지는 않는다.
로테이션을 사원법으로 표현하여 3D 컴퓨팅에 이용하는 것이 알려져 있지만, 본 발명의 명세서에서는 이용하지 않는다. 이러한 것을 이용한 예로서는 2개의 로테이션간을 보간하는데 사원법이 내부적으로 이용되어 가공물을 렌더링하는 것을 피하는 코스모 뷰어(Cosmo viewer)가 있다.
본 발명은 컴퓨터 생성 이미지의 인코딩에 관한 것으로, 더 구체적으로는 3D 로테이션(rotation)과 3D 노멀(normal)을 이용하는 3D 장면(scene)의 인코딩에 관한 것이다.
도 1은 본 발명의 인코딩 및/또는 디코딩 서비스를 제공하기 위한 컴퓨터의 모식도.
도 2는 노멀이 투사되는 단위 체적에 의해 둘러싸인 단위 구를 도시한 도면.
도 3은 원래 포인트(205)로부터 새로운 포인트(205')로의 이동을 보여주기 위해 도 2의 단위 체적을 펼친 도면.
도 4는 도 2의 단위 체적 상에서의 포인트(205')를 도시한 도면.
도 5는 이전의 인코딩과 본 발명에 따른 인코딩의 차이를 도시한 도면.
표준의 BIFS 부분에는 로테이션과 노멀을 효율적으로 계산하고, 저장하며, 디코딩할 수 있는 내용을 제공하지 못하고 있다. 그러므로, 본 발명은 이러한 결점을 충족시키는 것을 그 목적으로 한다.
본 발명의 또 다른 목적은 컴퓨터 생성 이미지 스트림내의 로테이션을 더 효율적으로 인코딩하기 위한 컴퓨터 구현 방법 및 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 컴퓨터 생성 이미지 스트림내의 노멀을 더 효율적으로 인코딩하기 위한 컴퓨터 구현 방법 및 시스템을 제공하는 것이다.
본 발명의 이러한 및 다른 목적들은 (1) 로터이션 및 노멀을 인코딩하기 위한 컴퓨터 구현 방법 및 시스템, (2) 로테이션과 노멀을 인코딩하기 위한 시스템, 및 (3) 로테이션과 노멀을 인코딩하기 위한 컴퓨터 프로그램 제품 중 하나 이상에 의해 충족된다. 이러한 시스템은 게임, 가상 현실 환경, 및 영화의 저장 및 재생을 개선하는데 적용될 수 있다. 덧붙여, 개선된 효율에 기초하여, 본 발명에 따라 인코딩된 비디오 스트림은 저효율로 인코딩된 스트림보다 더 낮은 대역폭 통신을 통해 재생될 수도 있다.
첨부된 도면을 참조로 한 이하의 상세한 설명을 통해, 본 발명을 더 완전하게 이해할 수 있을 뿐만 아니라, 본 발명의 많은 장점들이 훨씬 더 명백하게 될 것이다.
이제, 도면을 참조하면, 수개의 도면에 걸쳐 동일하거나 대응하는 부분은 동일한 참조 번호로 나타내었다. 도 1은 장면 표현 및/또는 애니메이션내의 로테이션 및/또는 노멀을 인코딩 및/또는 디코딩하기 위한 컴퓨터 시스템의 모식도이다. 컴퓨터(100)는 본 발명의 방법을 수행하는 것으로서, 컴퓨터 하우징(102)은 CPU(106), 메모리(108, 예를들면 DRAM, ROM, EPROM, EEPROM, SRAM, 및 플래시 RAM), 및 다른 선택적인 특별 목적의 논리 디바이스(예를들면, ASIC) 또는 구성가능한 논리 디바이스(예를 들면 GAL 및 재프로그램가능한 FPGA)를 포함하는 마더보드(104)를 하우징한다. 컴퓨터(100)는 또한 복수의 입력 장치(예를 들면, 키보드(122) 및 마우스(124)), 및 모니터(120)를 제어하기 위한 디스플레이 카드(110)를 포함한다. 또한, 컴퓨터 시스템(100)은 적절한 디바이스 버스(예를들면 SCSI 버스, 인핸스드 IDE 버스, 또는 울트라 DMA 버스)를 이용하여 접속되는 플로피 디스크 드라이브(114), 다른 착탈 가능한 매체 디바이스(119, 예를 들면 컴팩트 디스크, 테이프, 착탈가능한 광학 매체(도시되지 않음)), 및 하드 디스크(112) 또는 다른 고정된 고밀도 매체 드라이브를 구비한다. 컴퓨터(100)는 동일한 디바이스 버스 또는 다른 디바이스 버스에 접속되는 컴팩트 디스크 판독기(118), 컴팩트 디스크 판독/기록 유닛(도시되지 않음) 또는 컴팩트 디스크 쥬크 박스(도시되지 않음)를 추가적으로 더 포함할 수도 있다. 컴팩트 디스크(119)가 CD 캐디내로 도시되어 있지만, 캐디가 필요없는 CD-ROM 드라이브에 직접 삽입될 수도 있다. 또한, 프린터(도시되지 않음)는 로테이션 및/또는 노멀의 인코딩 및/또는 디코딩된 리스트를 프린팅하여 제공한다.
상기 설명한 바와 같이, 시스템은 적어도 하나의 컴퓨터 판독가능 매체를 포함하고 있다. 컴퓨터 판독가능 매체의 예로서는 컴팩트 디스크(119), 하드 디스크(112), 플로피디스크, 테이프, 광자기 디스크, PROM(EPROM, EEROM, 플래시 EPROM), DRAM, SRAM, SDRAM 등을 들 수 있다. 본 발명은 컴퓨터 판독가능 매체의 어느 하나 또는 조합에 저장되고, 컴퓨터(100)의 하드웨어를 제어하며 컴퓨터(100)와 사용자간의 상호작용을 가능하게 하는 소프트웨어를 포함한다. 그러한 소프트웨어는 디바이스 드라이브, 오퍼레이팅 시스템 및 개발 도구(tool)와 같은 사용자 어플리케이션을 포함할 수도 있다. 여기에서 예로 든 상기 소프트웨어는 제한적으로 해석해서는 안된다. 그러한 컴퓨터 판독가능 매체는 장면 표현 및/또는 애니메이션내의 노멀 및/또는 로테이션을 인코딩 및/또는 디코딩하기 위한 본 발명의 컴퓨터 프로그램 제품을 더 포함한다. 본 발명의 컴퓨터 코드 메카니즘/디바이스는 스크립트(script), 인터프리터(interpreter), 다이나믹 링크 라이브러리(dynamic link library), 자바 클래스, 및 완전 실행 파일을 포함하여(이것으로 한정되는 것은 아님) 기계어변환된(interpreted) 또는 실행가능한(executable) 코드 메카니즘의 어느 하나가 될 수 있다.
도 2에 도시한 바와 같이, 본 발명은 단위 구를 둘러싸고 있는 "단위" 체적상으로 노멀 및 로테이션을 매핑하는 양자화 프로세스를 기반으로 한다. 상기 프로세스는 디코더가 노멀과 로테이션을 재구축하는 것을 가능하게 한다. 후-처리(예를들면 보간, 아날로그 필터링 및 재구축)는 분리되어 수행될 수 있다. 예를 들면, 처음에는 3차원 단위 벡터로서 표현되는 노멀(200)이 3D 단위구(210)상의 3D단위 벡터로서 투사된다. (처음에는 각도를 추가적으로 갖는 (축에 대한) 3차원 단위 벡터로서 표현되는 로테이션이 사원수, 즉 4D 단위구 상의 4D 단위 벡터로 변환되어 얻어진다.)
그리고나서, 둘러싸는 "단위" 체적(215)의 한 면에 노멀(200)이 교차하여 "단위" 체적(215)의 특정 면(즉, 본 실시예에서는 양의 y 면)상에서 포인트를 발생시킴으로써, 노멀(200)을 양자화한다. 그러므로, 노멀은 3차원 벡터를 (1) 포인트(205)의 위치(+1, +2), (2) 포인트(205)의 축이 배치되는 오리엔테이션(예를들면, x축에 대해서는 0, y축에 대해서는 1, 및 z축에 대해서는 2), 및 (3) 단위 벡터의 방향(예를 들면, +1 또는 -1)으로 변환함으로써 "압축"될 수 있다. (로테이션의 경우에는, 단위구 상에서 반대 방향으로 존재하는 사원수는 동일한 로테이션을 나타내므로, 방향을 저장할 필요가 없다는 점 이외에는, 노멀과 동일한 프로세스가 수행될 수 있다.) 도 2는 면상에서 컴포넌트당 3비트를 이용하는 것을 도시하고 있다.
노멀(200, 또는 로테이션)이 양자화되었으면, 큐빅 매핑(cubic mapping)이 제공하는 기하학적 코히어런스(topological coherence)를 이용하여 비디오 스트림의 프레임간 포인트(205)의 이동을 인코딩할 수 있다. 가장 단순한 형태로는, 보상 벡터가 포인트(205)의 현재면 상의 이동을 기술하는 것이다. 그러나, 포인트(205)는 프레임 사이에서 다른 면으로 이동할 수도 있다. 이 경우에, 양자화 프로세스에 이용되는 면 인덱스(face index)가 새로운 위치를 계산할 수 있게 한다.
포인트(205)의 이동을 도 3을 참조하여 설명한다. 도 3에서, 도 2의 체적이 펼쳐져있다. 각 면은 왼쪽 상부 코너에 적절하게 라벨링되어 있다. 원래 포인트(205)가 vDelta=[+6, -2] 및 Inverse=+1에 따라 이동된 것이다. 도 3은 원래 포인트(205)가 어떻게 새로운 포인트(205')로 이동했는지를 펼쳐진 체적상에 도시하고 있다. 마찬가지로, 도 4는 동일한 모션과 결과를 도 2의 원래 체적상에 도시하고 있다. 도 4에서 알 수 있는 바와 같이, 오리엔테이션이 y축(ori=1)에서 z축(ori=2)으로 변화되었고, 노멀(200')이 새로운 위치를 가르키고 있다. 그러나, 그 방향은 +1로 그대로이다. 흥미롭게도, +y면에서 반대 면(즉, -y면)으로 튄다면, 방향 비트를 이용하여 이전 포인트의 방향을 전환함으로써 곧바로 그 면으로 "점핑"함으로써 이동을 인코딩할 수 있다. 그러므로, 반대 면 상에서 시작함으로써, 체적의 면을 따른 긴 이동을 방지할 수 있다.
상기 예는 프레임간 포인트의 이동을 제공하고 있지만, 상기 방법은 아래에 설명하는 바와 같이 일반화될 수 있다.
각 노멀은 수학식 1에 따라 체적에 재정규화된다.
로테이션(축, 각도 α)은 수학식 2에 따라 사원수로서 표시된다.
노멀 및 로테이션은 컴포넌트 형태로 변환된다. 변환된 컴포넌트의 수는 N으로 정의하고, 노멀에 대해서는 N=2, 로테이션에 대해서는 N=3이다. 따라서,ν의 차수는 N+1이다. 압축 및 양자화 프로세스는 노멀 및 로테이션 양쪽에 대해 동일하고, (1) 오리엔테이션, (2) 방향, 및 (3) 노멀 또는 로테이션 각각의 컴포넌트를 결정하는 것을 포함한다. 단위 벡터ν의 오리엔테이션 k는 인덱스 i(i는 0 내지 N의 범위임)이고, 오리엔테이션의 컴포넌트가 가장 큰 절대값(즉, |v[i]|)을 가지고 있다. 이 정수는 2비트를 이용하여 인코딩된다. k를 알았으면, 단위 벡터ν의 방향 dir(여기에서 dir= 1 또는 -1)을 컴포넌트 v[k]의 부호를 이용하여 결정한다. 상기 설명한 바와 같이, 이 값은 로테이션에 대해서는 쓰여지지 않는다(사원수의 성질 때문에).
단위구 상의 사각형를 수학식 3에 따라 N차원 사각형으로 매핑함으로써, 압축된 벡터의 N 컴포넌트들을 계산할 수 있다.
아크 탄젠트 함수를 제외한 다른 함수도 가능하다. 체적 면의 평탄함으로 기인한 매핑의 왜곡을 감소시킬 수 있는 좌표 변환 함수라면 어느 것이라도 이용할 수 있다. 실제로는, 주어진 수의 비트가 바로 아래에 존재하는 구 상의 어디에서나 거의 동일한 양자화 에러에 대응하도록, 상기 함수가 싸고있는 체적의 평면을 가상으로 구부려야만 한다. 더구나, 상기와 같이,a*tan -1 (b*c)의 형태 (c= v[(i+k+1) mod (N+1)] / v[k])인 다른 함수도 가능하지만, 이들 형태가 추가적으로 복잡해짐에 따라 인코딩 및 디코딩 시간이 길어지게 된다. b=0.7과 같은 일부 값들은 압축시 약간의 증가를 나타내지만(여기에서 속도는 제어 인자이다), a 및 b는 1.0으로 설정된다.
그러나, 전체 양자화 프로세스는 인코딩된 노멀 또는 로테이션을 나타내는데 이용되는 비트수 QuantNbBits에 의해 제어된다. 인코딩의 경우, QuanNbBits=0이면, 각 i에 대해νq[i]=0이므로 인코딩 프로세스가 사소하고(trivial), 값들이 전혀 코딩되거나 기록될 필요가 없다, 즉 값들은 제로 비트를 이용하여 "가상으로" 코딩된다. 그렇지 않으면,ν c의 각 컴포넌트(-1 과 1 사이에 존재함)는 수학식 4와 같이 부호있는 정수로서 양자화된다.
여기에서 Round()는ν c[i]의 정수 부분을 리턴한다. 컴포넌트들ν c를 계산했으므로, 컴포넌트들은 면 인덱스 및 면상의 위치로 인코딩된다. 면 인덱스는 오리엔테이션(2 비트, 부호없는 정수)으로서 인코딩되고, 노멀에 대해서만 방향(1비트, 부호없는 정수(예를들면, 0은 -1로서 이용되고, 1은 1로서 이용됨))으로서 인코딩된다. 컴포넌트들 자체는 2QuantNbbits-1+vq[i]에 따라 QuantNbBits상에 부호없는 또는부호있는 정수로서 코딩된다. 즉, 각 노멀은 비트(bits) = 1(방향) + 2(오리엔테이션) + 2*QuantNbBits에 의해 주어지는 비트수로 인코딩되고, 또는 더 구체적으로 본 예와 같이 QuantNbBits=3인 경우에는 비트(bits) = 1(방향)+2(오리엔테이션)+ 2*3(즉, QuantNbBits) = 9이다. 로테이션에 대해서는, 방향 비트가 생략되므로, 인코딩을 위한 비트의 수는 비트(bits)=2(오리엔테이션)+3*QuantNbBits로 주어지고, 또는 더 구체적으로, 본 예와 같이 QuantNbBits=3인 경우에는 bits=2(오리엔테이션)+3*3(즉, QuantNbBits)=11이다.
디코딩 프로세스는 반대로 동작하고, 동일한 비트수를 이용하여 면 인덱스(방향 및 오리엔테이션을 포함하여)를 디코딩한다. 컴포넌트 자체는νq'[i] =ν decoded - 2QuantNnbBits-1에 따라 부호있는 값으로 디코딩된다.
인코딩된 값들을 디코딩된 값들로 변환했으므로, 양자화 프로세스는 역 양자화 프로세스를 통해 복원되어야 한다. 상기 설명한 바와 같이, QuantNbBits가 제로이면, 코딩 프로세스는 사소한 것이었고, 실제 어떤 비트에도 기록되지 않았으므로, 디코딩 프로세스도 또한 마찬가지로 사소하고 어떤 비트에서도 판독되지 않으며, vc[i]는 0으로 설정된다. 그러나, QuantNbBits가 제로가 아닌 경우에는, 역 양자화 프로세스는 수학식 5에 따라 수행된다.
오리엔테이션 k 및 방향 dir을 추출한 후에, 역 매핑이 수학식 6 및 7에 따라 수행될 수 있다.
오브젝트가 로테이션이면,ν'는 직접 이용되거나 사원수로부터 Rotation(축, 각 α)으로 역변환될 수도 있다.
오브젝트가 노멀이면,ν'는 디코딩된 노멀의 컴포넌트로서 직접 이용될 수 있다.
그러나, 인코딩 및 디코딩 능력은 목적을 달성하기 위한 단지 수단일 뿐이다. 본 발명의 전체 프로세스는 모션에 대해 효율적인 보상(compensation)을 가능하게 한다. 따라서, 상당히 가깝게 양자화된 2개의 값들간의 차이는 압축을 증가시킨다. 보상 프로세스는 양자화 프로세스에서 정의된 정수 QuantNbBits를 통해 충분히 특정되지만, 프로세스에 의해 출력된 값들을 코딩하기 위해서는, 이하의 파라미터가 정의되어야 한다.
CompMin: 보상 벡터 vDelta의 최소 한계를 정의하는 정수열.
CompNbBits: 보상 벡터의 컴포넌트를 나타내는데 이용되는 비트수를 정의하는 정수.
각 컴포넌트 vDelta[i]는 CompMin[i]에 의해 평행 이동(translate)되어 CompNbBits 상에 코딩된다. 그러므로, 실제 코딩된 값은 vDelta[i]-CompMin[i]이고, 인코딩 프로세스는 양자화된 노멀 또는 로테이션 vq1 및 vq2간의 보상 벡터 vDelta를 계산하는 방법을 정의한다.
양자화 프로세스에서 면 인덱스의 인코딩과 같이, 보상 프로세스에서는 파라미터 vq1 및 vq2 각각에 대해 (1) ori1 및 dir1 (2) ori2 및 dir2로서 표시되는 각각의 오리엔테이션과 방향에 의해 파라미터 vq1 및 vq2가 정의된다. ori1, dir1, ori2, 및 dir2는 모두 정수이다. 또한, vq1 및 vq2는 대응하는 어레이 vq1[] 및 vq2[]에 저장된 양자화된 정수 컴포넌트의 어레이 각각을 포함한다.
vq1 및 vq2에 기초하여, 보상 벡터 vDelta의 방향이 -1 또는 1로서 계산되고(로테이션에서는 이 값은 무시됨), 정수 인버스로서 표시된다. 그리고나서, 한 셋트의 보상 컴포넌트가 계산되어 정수열 vDelta[]에 저장된다. vDelta의 값들은 이하의 기재된 방법에 따라 얻어진다.
변환된 컴포넌트의 수를 N이라 하자(여기에서, 노멀에 대해서는 N=2이고, 로테이션에 대해서는 N=3이다). 그리고나서, vq1과 vq2간의 미분 오리엔테이션 dOri 및 미분 방향 dDir이 수학식 9에 따라 계산된다.
즉, 스케일(scale)은 양자화에 이용된 비트수에 기초하여 체적의 면 상에 표시되는 최대값을 나타낸다. 그러나, 0 및 1 비트는 QuantNbBits에 있어서 특별한 경우이다. 0 및 1 비트의 경우에는 체적상의 면들의 중앙만이 표현될 수 있다. 그러므로, 0 비트(방향과 오리엔테이션 비트가 더해짐)로 코딩하는 것이 1 비트로 코딩하는 것보다 더 효율적이다. 왜냐하면, 0 비트가 더 적은 공간을 이용하면서도 동일한 정보의 코딩을 가능하기 때문이다. 더구나, 본 발명의 양호한 실시예는 제로가 각 면상에서 정확하게 표현될 수 있는 것을 보장하기 위해 각 면의 한계(limit)에 대해 홀수를 이용한다. 면 값들을 이와 같이 나타내는 것이 하나의 값(예를 들면, QuantNbBits=8일때 -128)을 사용하지 않고 남겨두어, 코딩의 효율이 약간 떨어지지만, 방향 자체를 정확하게 표현하므로 더 바람직하다. 사실상, 저효율 코딩을 일반적으로 보상하기 위해서는, 추가적인 코딩층(예를 들면 호프만(Huffman) 코딩)이 상부에서 이용될 수 있다. 그러나, 양호한 실시예에서는, 추가된 복잡성을 상쇄할 만큼 상당히 중요한 이득이 발생하지 않으므로, 상실되는 한 비트를 복원하기 위해 추가적인 코딩을 할 필요가 없다.
그리고나서, 미분 오리엔테이션 dOri에 따라서, 표 1에 나타난 바와 같이 두 경우가 각각 분리되어 고려된다.
dOri=0 vDelta는 vDelta[i]=vq2[i]-vq1[i]에 의해 정의된다.
dOri≠0 dist= vq2[N-dOri]+vq1[dOri-1]이라 하고,dist<0 이면 inv = -1이고vDelta는 이하와 같이 정의된다.
0≤i<dOri-1 vDelta[i]=inv*vq2[i-dOri-1]-vq[i]
i=dOri-1 vDelta[i]=inv*2*scale-dist
dOri≤i<N vDelta[i]=inv*vq2[i-dOri]-vq1[i]
변수 inv가 계산중에 변화될 수도 있으므로, 변수 inverse는 팩트(fact) 후에 inverse = inv*dDir에 따라 계산된다. 종종, 투사된 포인트가 보여지는 면에 따라서 동일한 로테이션을 표현하는 두가지 방법이 있다. 그러나, vq1이 vDelta에 의해 보상되어 vq2'를 생성할 때, 이러한 양자화 프로세스의 최소한의 비단사성(marginal non-injectivity)으로 인해 vq2가 정확하게 도출되지 않을 수도 있다. 그러나, vq2 와 vq2'는 항상 동일한 노멀 또는 로테이션을 나타낼 것이다.
보상을 계산했으므로, 양자화시에 수행된 바와 같이 보상이 인코딩되어야 한다. 노멀의 경우에만, 인버스는 단일 비트로 코딩된다. 보상 벡터의 컴포넌트들은 -CompMin에 의해 평행이동되어ν encoded =vDelta[i]-CompMin[i]에 따라 CompNbBits 상에 코딩된다. 그리고나서, 인코딩 프로세스가 반전되어, 보상 벡터가 디코딩된다. 디코딩 프로세스는 보상 벡터 vDelta에 의해 노멀 또는 로테이션 vq1을 변환하여 양자화된 노멀 또는 로테이션 vq2를 도출한다. 노멀의 경우에만, 단일 비트 인버젼이 디코딩된다. 그리고나서, 보상 벡터의 컴포넌트가 CompMin에 의해 평행 이동되어 vDelta[i]=ν decoded +CompMin[i]에 따라 CompNbBits로 코딩된다.
vDelta로부터 보상 프로세스가 진행할 수 있다. 초기 파라미터 vq1은 (1)orientation1, (2) direction1, 및 (3) 정수열 vq1[]에 저장된 양자화된 컴포넌트의 셋트를 포함한다. 마찬가지로, 보상 벡터 vDelta는 (1) "inverse"로 라벨링된 인버스 정수, 및 (2) 정수열 vDelta[]에 저장된 보상 컴포넌트들의 셋트를 포함한다. 보상 프로세스의 출력은 (1) 오리엔테이션 (2) 방향, 및 (3) 정수열 vq2[]에 저장된 양자화된 컴포넌트의 셋트에 의해 정의되는 양자화된 파라미터 vq2이다. vq2[]의 값들이 계산된다. 또한 스케일은 scale=max(1/2, 2QuantNbBits-1-1)에 의해 주어진다. 처음으로 vqtemp[i]=vq1[i]+vDelta[i]에 따라 컴포넌트끼리 가산이 수행되어, 임시 어레이에 저장된다. 상기와 마찬가지로, N은 변환된 컴포넌트의 수이고, 노멀에 대해서는 n=2이며, 로테이션에 대해서는 N=3이다. 초기 계산을 바탕으로, 표 2에 나타난 3가지 경우 중 어느것이 참이냐에 따라 추가적인 프로세싱이 수행된다.
모든 인덱스 i에 대해,|vqTemp[i]|≤ scale vq2는 이하와 같이 정의된다.vq2[i] = vqTemp[i]orientaion2 = orientation1direction2 = direction1 * inverse
|vqTemp[i]|> scale를 만족하는 단지 하나의 인덱스 k가 존재한다. 매핑 체적의 면상에서의 글라이딩과 같이 vq2가 리스케일링된다.vqTemp[k]≥0이면 inv=1, 그렇지 않으면 inv=-1이라 하자.dOri = k + 1이라 하자.vq2의 컴포넌트들은 이하와 같이 계산된다.
0≤i<N-dOri vq2[i] = inv * vqTemp[(i+dOri)mod N]
i=N-dOri vq2[i] = inv*2*scale-vqTemp[dOri-1]
N-dOri<i<N vq2[i] = inv * vqTemp[(i+dOri-1)mod N]
orientation2 = (orientation1 + dOri) mod (N+1)direction2 = direction1*inverse*inv
|vqTemp[i]|> scale를 만족하는 수개의 인덱스 k가 존재한다. 결과는 정의되지 않는다. 이것은 인코딩 프로세스가 이 상태가 발생하지 않도록 해야 된다는 것을 의미하지만, 디코더에 대한 백업 전략이 용이하게 설계될 수 있다.
따라서, 본 발명은 노멀과 로테이션이 더 효율적으로 코딩되는 것을 가능하게 한다. 로테이션 및 노멀에 적용되는 방법이 동일하므로, 장면 인코딩을 위해 최적의 시스템이 구축되는 것을 가능하게 한다. 적절한 양자화 및 엔트로피 코딩과 함께 조합되어 설명된 예측/보상 프로세스는, 도 5에 도시한 바와 같이, 비디오 스트림에 있어서의 데이터 사이즈 감소를 가능하게 한다. 그러한 감소는 약 5:1의 양자화 감소 및 양자화 상태로부터 약 2:1 내지 3:1의 보상 감소의 측면에서 15 이상의 인자에 의해 될 것으로 기대된다.
이하의 표 3에 도시된 바와 같이, 본 발명에 따른 로테이션 및 노멀의 압축을 거의 동일한 비디오 스트림을 표현하는 VRML ASCII 파일에 비교했을 때, 장면의 상당한 압축을 제공할 수 있다.
파일 VRML 애니매이션 파일 크기(kB) 로테이션 및 노멀의 비율 BIFS Anim98년 8월 Draft BIFS-Anim로테이션/노멀 보상시 구체적인 압축 이득
파일 사이즈(kB) 파일 사이즈(kB) 비율
인트로 730 50% 45 30 24.3 +100%
프롤로그 672 50% 80 54 12.4 +97%
영화 1 1402 50% 125 84 16.7 +98%
피날레 126 60% 9 5.3 23.8 +115%
영화 2 111 50% 9.5 6.3 17.6 +100%
스켈레톤 38 50% 4 2.5 15.2 +120%
본 기술계의 통상의 기술자에게는 명백한 바와 같이, 본 발명의 사상를 벗어나지 않는 범주내에서 방법 및 시스템을 다르게 실시할 수도 있다. 그러므로, 본 명세서는 발명의 범위를 한정하기 위한 것이 아니며, 본 발명의 범주는 청구 범위의 범주에 의해서만 정의된다.

Claims (6)

  1. 비디오 스트림을 인코딩하는 컴퓨터 구현 방법에 있어서,
    (a) 노멀과 로테이션중의 하나를 나타내는 원래 벡터(original vector)를 계산하는 단계;
    (b) 상기 원래 벡터로부터 정규화된 벡터를 계산하는 단계;
    (c) 상기 정규화된 벡터를 단위 체적상으로 투사하여 상기 단위 체적의 제1 면상의 제1 포인트를 생성하는 단계; 및
    (d) 상기 제1 면의 인덱스와 상기 제1 면상의 상기 제1 포인트의 위치를 이용하여 비디오 스트림을 인코딩하는 단계
    를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    (e) 상기 제1 면상의 상기 제1 포인트와 제2 면상의 제2 포인트 간의, 상기 단위 체적을 따른 모션(motion)에 기초하여 모션 벡터를 계산하는 단계; 및
    (f) 상기 모션 벡터를 이용하여 상기 비디오 스트림을 인코딩하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  3. 제2항에 있어서, 상기 제1 면 및 상기 제2 면은 상기 단위 체적상에서 동일한 면인 컴퓨터 구현 방법.
  4. 제2항에 있어서, 상기 제1 면 및 상기 제2 면은 상기 단위 체적상에서 다른 면인 컴퓨터 구현 방법.
  5. 제1항에 있어서, 상기 제1 면의 인덱스 및 상기 제1 포인트를 수신하여 상기 노멀과 로테이션중의 하나로 역전환함으로써 상기 비디오 스트림을 디코딩하는 단계를 더 포함하는 컴퓨터 구현 방법.
  6. 제2항에 있어서, 상기 모션 벡터를 수신하여 노멀과 로테이션 중 대응하는 하나를 계산함으로써 상기 비디오 스트림을 디코딩하는 단계를 더 포함하는 컴퓨터 구현 방법.
KR10-2001-7006857A 1998-12-04 1999-11-30 3d 생성 장면에서 로테이션과 노멀을 인코딩하는 방법 및시스템 KR100458102B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/205,190 US6204854B1 (en) 1998-12-04 1998-12-04 Method and system for encoding rotations and normals in 3D generated scenes
US09/205,190 1998-12-04
PCT/US1999/026030 WO2000034917A2 (en) 1998-12-04 1999-11-30 Method and system for encoding rotations and normals in 3d generated scenes

Publications (2)

Publication Number Publication Date
KR20010089535A true KR20010089535A (ko) 2001-10-06
KR100458102B1 KR100458102B1 (ko) 2004-11-26

Family

ID=22761177

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-7006857A KR100458102B1 (ko) 1998-12-04 1999-11-30 3d 생성 장면에서 로테이션과 노멀을 인코딩하는 방법 및시스템

Country Status (11)

Country Link
US (1) US6204854B1 (ko)
EP (1) EP1138020A4 (ko)
JP (2) JP4108935B2 (ko)
KR (1) KR100458102B1 (ko)
CN (1) CN100388315C (ko)
AU (1) AU759970B2 (ko)
BR (1) BR9915941B1 (ko)
CA (1) CA2352291C (ko)
IL (2) IL143436A0 (ko)
NO (1) NO318833B1 (ko)
WO (1) WO2000034917A2 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2359260C (en) * 2000-10-20 2004-07-20 Samsung Electronics Co., Ltd. Coding apparatus and method for orientation interpolator node
EP2302930B1 (en) * 2001-11-27 2015-07-15 Samsung Electronics Co., Ltd. Coding and decoding of a bitstream with a coordinate interpolator
GB0216668D0 (en) * 2002-07-17 2002-08-28 Imagination Tech Ltd Method and apparatus for compressed data storage and retrieval
US7809204B2 (en) * 2002-10-18 2010-10-05 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding key value data of coordinate interpolator
US20060279436A1 (en) * 2005-03-25 2006-12-14 Ambroziak Russell A Digital elevation model data structure for geospatial analysis
EP2839439B1 (en) 2012-04-18 2024-02-28 InterDigital Madison Patent Holdings, SAS Vertex correction method and apparatus for rotated three-dimensional (3d) components
US9866840B2 (en) 2013-01-10 2018-01-09 Thomson Licensing Method and apparatus for vertex error correction
US9111164B1 (en) 2015-01-19 2015-08-18 Snapchat, Inc. Custom functional patterns for optical barcodes
US9911073B1 (en) * 2016-03-18 2018-03-06 Snap Inc. Facial patterns for optical barcodes
US10313673B2 (en) * 2016-10-19 2019-06-04 Google Llc Methods and apparatus to encode and/or decode normals of geometric representations of surfaces
US10733766B2 (en) * 2016-10-19 2020-08-04 Google, Llc Methods and apparatus to encode and/or decode normals of geometric representations of surfaces
US9787321B1 (en) 2016-11-17 2017-10-10 Google Inc. Point cloud data compression using a space-filling curve
US10999602B2 (en) 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
KR102443381B1 (ko) * 2017-01-11 2022-09-15 주식회사 케이티 비디오 신호 처리 방법 및 장치
US11259046B2 (en) 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
US10924747B2 (en) 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
US10553035B2 (en) 2017-06-02 2020-02-04 Google Llc Valence based implicit traversal for improved compression of triangular meshes
US11093752B2 (en) 2017-06-02 2021-08-17 Apple Inc. Object tracking in multi-view video
US10950042B2 (en) 2017-06-02 2021-03-16 Google Llc Guided traversal in compression of triangular meshes
US10754242B2 (en) 2017-06-30 2020-08-25 Apple Inc. Adaptive resolution and projection format in multi-direction video
US20190005709A1 (en) * 2017-06-30 2019-01-03 Apple Inc. Techniques for Correction of Visual Artifacts in Multi-View Images
GB2567623B (en) 2017-10-12 2021-10-27 Samsung Electronics Co Ltd Compression of 360 degree content
CN111386551A (zh) 2017-10-19 2020-07-07 交互数字Vc控股公司 点云的预测编码、解码的方法和设备
WO2019194576A1 (en) 2018-04-03 2019-10-10 Samsung Electronics Co., Ltd. Methods and apparatus for determining rotation angle for spherical multimedia content
US10740957B1 (en) * 2018-06-14 2020-08-11 Kilburn Live, Llc Dynamic split screen
US10573060B1 (en) * 2018-06-14 2020-02-25 Kilburn Live, Llc Controller binding in virtual domes

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5307449A (en) * 1991-12-20 1994-04-26 Apple Computer, Inc. Method and apparatus for simultaneously rendering multiple scanlines
EP0582875B1 (en) * 1992-07-27 2001-10-31 Matsushita Electric Industrial Co., Ltd. Apparatus for parallel image generation
US5392393A (en) 1993-06-04 1995-02-21 Sun Microsystems, Inc. Architecture for a high performance three dimensional graphics accelerator
US5793371A (en) 1995-08-04 1998-08-11 Sun Microsystems, Inc. Method and apparatus for geometric compression of three-dimensional graphics data
US5736987A (en) 1996-03-19 1998-04-07 Microsoft Corporation Compression of graphic data normals

Also Published As

Publication number Publication date
WO2000034917A2 (en) 2000-06-15
CA2352291A1 (en) 2000-06-15
JP2005332412A (ja) 2005-12-02
NO20012724D0 (no) 2001-06-01
CA2352291C (en) 2002-11-12
US6204854B1 (en) 2001-03-20
BR9915941B1 (pt) 2010-12-14
WO2000034917A3 (en) 2000-10-12
KR100458102B1 (ko) 2004-11-26
JP2002532791A (ja) 2002-10-02
IL143436A0 (en) 2002-04-21
JP4399393B2 (ja) 2010-01-13
AU1908700A (en) 2000-06-26
EP1138020A4 (en) 2010-12-01
CN100388315C (zh) 2008-05-14
NO20012724L (no) 2001-08-02
JP4108935B2 (ja) 2008-06-25
AU759970B2 (en) 2003-05-01
CN1329736A (zh) 2002-01-02
BR9915941A (pt) 2003-01-07
NO318833B1 (no) 2005-05-09
IL143436A (en) 2008-08-07
EP1138020A2 (en) 2001-10-04

Similar Documents

Publication Publication Date Title
KR100458102B1 (ko) 3d 생성 장면에서 로테이션과 노멀을 인코딩하는 방법 및시스템
JP4444943B2 (ja) データアレイの予測符号化方法およびシステム
Hoppe Efficient implementation of progressive meshes
Briceño Pulido Geometry videos: a new representation for 3D animations
Fenney Texture compression using low-frequency signal modulation
JP4384813B2 (ja) 時間依存ジオメトリの圧縮
JP2022517060A (ja) 点群符号化構造
CN111937041A (zh) 通过提供几何代理进行视频编码
Mamou et al. TFAN: A low complexity 3D mesh compression algorithm
Jang et al. Interpolator data compression for MPEG-4 animation
Pereira et al. Point cloud coding: A privileged view driven by a classification taxonomy
JP4350504B2 (ja) メッシュを導入した画像の符号化及び復号のための方法及び装置とそれに対応するプログラム
Chou et al. Dynamic polygon clouds: Representation and compression for VR/AR
Guenter et al. Motion compensated compression of computer animation frames
RU2236751C2 (ru) Способы и устройство для сжатия и восстановления траектории анимации с использованием линейной аппроксимации
Zhang et al. Hybrid coding for animated polygonal meshes: Combining delta and octree
MXPA01005522A (en) Method and system for encoding rotations and normals in 3d generated scenes
Santa-Cruz et al. Coding of 3D virtual objects with NURBS
CN117915105A (zh) 网格编码方法、网格解码方法及相关设备
MXPA01005520A (en) Method and system for predictive encoding of arrays of data
Koloros et al. Coding of vectorized cartoon video data
US9794565B2 (en) Bit allocation scheme for repetitive structure discovery based 3D model compression
Pulido Geometry videos: A new representation for 3D animations
Doggett et al. Texture Compression using Low-Frequency Signal Modulation

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
FPAY Annual fee payment

Payment date: 20121101

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20131104

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee