KR100458101B1 - 데이터 어레이의 예측 인코딩 방법 및 시스템 - Google Patents

데이터 어레이의 예측 인코딩 방법 및 시스템 Download PDF

Info

Publication number
KR100458101B1
KR100458101B1 KR10-2001-7006856A KR20017006856A KR100458101B1 KR 100458101 B1 KR100458101 B1 KR 100458101B1 KR 20017006856 A KR20017006856 A KR 20017006856A KR 100458101 B1 KR100458101 B1 KR 100458101B1
Authority
KR
South Korea
Prior art keywords
value
quantization
values
encoding
video stream
Prior art date
Application number
KR10-2001-7006856A
Other languages
English (en)
Other versions
KR20010101112A (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 KR20010101112A publication Critical patent/KR20010101112A/ko
Application granted granted Critical
Publication of KR100458101B1 publication Critical patent/KR100458101B1/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
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)

Abstract

비디오 스트림내의 값들의 어레이를 일정하게 인코딩하기 위한 방법 및 시스템을 제공한다. 인코딩될 엘리먼트(element)의 데이터 타입을 이용하여, 예측값이 비디오 스트림의 일부로서 양자화 및 인코딩된다. 결과적인 비디오 스트림은 로테이션(rotation), 노멀, 및 벡터를 인코딩한다.

Description

데이터 어레이의 예측 인코딩 방법 및 시스템{METHOD AND SYSTEM FOR PREDICTIVE ENCODING OF ARRAYS OF DATA}
관련된 출원서에 대한 교차 참조
본 발명은 본원의 동 발명자(Julien Signes 및 Oliver Ondet)에 의해, 동일자로 출원된 출원번호 09/205,190인 "3D 생성 장면내의 로테이션과 노멀을 인코딩하기 위한 방법 및 시스템"과 관련되어 있다. 본 명세서는 상기 출원서의 내용을 참조하여 포함하고 있다.
"컴퓨터 생성 이미지"라는 것은 비디오 기술의 확장 영역까지를 포함한다. 원래 이 용어는 단순한 텍스트 이미지 또는 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)을 가능하게 하고, 비디오 스트림의 일부와 더 많은 상호작용을 가능하게 한다. MPEG-4 BIFS에 대한 잠정 표준은 선형 양자화 프로세스에 의해 복수의 데이터 필드를 인코딩하는 것을 제안하고 있지만, 이는 복수의 필드들내의 상관관계를 설명해 주지는 못한다. 그러므로, MPEG-4 BIFS는 어레이의 예측 인코딩을 제공하지 않는다.
다른 제안된 그래픽스 포맷으로서는 소수의 노드 및 제한된 서브셋트의 데이터 타입에만 적용 가능한 인코딩 방법을 포함하는 VRML(Virtual Reality Markup Language)에 대한 압축 이진 포맷(이후에는 "CBF VRML"이라고 함)이 있다. 1977년 8월 22일 및 1997년 10월 15일에 각각 발표된 CBF VRML 표준의 제4 및 제5 잠정안은 www.vrml.org에서 얻을 수 있고, 본 명세서에서 참조된다. 또한, 1998년 4월 3일 발표된 CBF VRML97에 대한 개정된 요구 내용도 본 명세서에서 참조된다.
또 다른 그래픽스 포맷으로는 태그 이미지 파일 포맷(TIFF; Tag Image File Format)이 있다. TIFF 명세(specification)의 버젼 6.0의 내용을 본 명세서에서 참조하고 있다. TIFF 파일내의 각 엔트리는 4개의 부분, 즉 (1) 태그, (2) 타입(type) 식별자, (3) 카운트, (4) 하나 이상의 값으로서 저장된다. 버젼 6.0 명세의 16 페이지에는 "대부분의 필드가 단지 하나의 값을 포함하고 있을 지라도, 모든 필드는 실제로 1차원의 어레이이다"라고 언급하고 있다. 더구나, 16 페이지에서는 파일당 복수의 이미지가 있을 수도 있다고 언급하고 있지만, 상기 명세는 스트리밍 3D 이미지(streaming 3D image)보다는 개별적으로 코딩된 2D 이미지용으로 설계되어 있다.
본 발명은 컴퓨터 생성 이미지의 인코딩에 관한 것으로, 특히 데이터의 함수와는 상관없이 데이터 어레이를 일정하게 인코딩하는 방법에 관한 것이다. 따라서, 위치 데이터 어레이, 로테이션(rotation), 및 노멀(normal)을 일정하게 인코딩한다.
도 1은 본 발명의 인코딩 및/또는 디코딩 서비스를 제공하기 위한 컴퓨터에 대한 모식도.
도 2는 인코더/디코더 시스템의 모식도.
도 3a는 128 비트의 로테이션을 인코딩하는데 이용되는 원래의 비트 길이를 도시한 도면.
도 3b는 8비트 양자화를 이용하여 로테이션의 열을 각각 27 비트로 인코딩하는 주지의 양자화 및 인코딩 방법을 이용한 결과를 도시한 도면.
도 3c는 본 발명에 따른 양자화 및 예측 인코딩 방법을 이용한 결과를 도시한 도면 -즉, 8비트 양자화 및 4비트 예측 인코딩을 이용하여 (1) 제1 로테이션을 27 비트로 인코딩하고 (2) 후속 로테이션의 열을 각각 12비트로 인코딩함-.
본 발명은 주지된 MPEG-4 BIFS 데이터 스트림의 코딩의 비효율성(inefficiency)을 해결하는 데에 그 목적이 있다.
본 발명의 또 다른 목적은 임시적인 예측 인코딩 프로세스를 이용하여 장면이나 오브젝트를 기술하는 데이터 어레이를 인코딩하기 위한 방법과 시스템을 제공하는 것을 목적으로 한다.
본 발명의 이러한 목적 및 다른 목적들은 (1) 값들의 어레이를 일정하게 인코딩하기 위한 컴퓨터 구현 방법, (2) 값들의 어레이를 일정하게 인코딩하기 위한 시스템, 및 (3) 값들의 어레이를 일정하게 인코딩하기 위한 컴퓨터 프로그램 제품중 하나 이상에 의해 충족된다. 이러한 시스템은 게임, 가상현실 환경, 및 영화의 저장 및 재생을 개선하는데 이용될 수 있다. 덧붙여, 개선된 효율에 기초하여, 본 발명에 따라 인코딩된 비디오 스트림은 저효율로 인코딩된 스트림보다 더 낮은 대역폭 통신을 통해 재생될 수도 있다.
첨부된 도면을 참조로 한 이하의 상세한 설명을 통해, 본 발명을 더 완전하게 이해할 수 있을 뿐만 아니라, 본 발명의 많은 장점들이 훨씬 더 명백하게 될 것이다.
이제, 도면을 참조하면, 수개의 도면에 걸쳐 동일하거나 대응하는 부분은 동일한 참조 번호로 나타내었다. 도 1은 값들의 어레이를 일정하게 인코딩 및/또는 디코딩하기 위한 컴퓨터 시스템의 모식도이다. 컴퓨터(100)는 본 발명의 방법을 구현하는 것으로서, 컴퓨터 하우징(102)은 CPU(106), 메모리(108, 예를들면 DRAM, ROM, EPROM, EEPROM, SRAM, SDRAM 및 플래시 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, EEPROM, 플래시 EPROM), DRAM, SRAM, SDRAM 등을 들 수 있다. 본 발명은 컴퓨터 판독가능 매체의 어느 하나 또는 조합에 저장되고, 컴퓨터(100)의 하드웨어를 제어하며 컴퓨터(100)와 사용자간의 상호작용을 가능하게 하는 소프트웨어를 포함한다. 그러한 소프트웨어는 디바이스 드라이브, 오퍼레이팅 시스템 및 개발 도구(tool)와 같은 사용자 어플리케이션을 포함할 수도 있다. 여기에서 예로 든 상기 소프트웨어는 제한적으로 해석해서는 안된다. 그러한 컴퓨터 판독가능 매체는 장면 기술 및/또는 애니메이션내의 어레이를 일정하게 인코딩 및/또는 디코딩하기 위한 본 발명의 컴퓨터 프로그램 제품을 더 포함한다. 본 발명의 컴퓨터 코드 메카니즘/디바이스는 스크립트(script), 인터프리터(interpreter), 다이나믹 링크 라이브러리들(dynamic link libraries), 자바 클래스, 및 완전 실행가능 프로드램을 포함하여(이것으로 한정되는 것은 아님) 기계어변환된(interpreted) 또는 실행가능한(executable) 코드 메카니즘의 어느 하나가 될 수 있다.
도 2에 도시한 바와 같이, 제1 단계에서 저작 도구(200, authoring tool)를 이용하여 장면(240)을 생성한다. 저작 도구(200)가 이미지 열(a series of images)을 생성하였으면, 이미지 열은 양자화기(205)에 보내진다. 양자화 후, 양자화된 이미지는 예측기(210)에 전달되어, 이전 프레임과 다음 프레임간의 유사성을 이용하여 차분 인코딩을 통해 다음 프레임의 콘텐츠를 더 컴팩트하게 표현한다. 예측기는 선형 또는 비선형(즉, 복수 차수) 보간을 포함할 수도 있다. 프레임들간 차이는 엔트로피 인코더/디코더(215)에 의해 인코딩된다. 인코더/디코더(215)는 다수의 엔트로피 시스템(예를 들면 적응형 산술 인코더) 중 어느 하나가 될 수 있다. 인코더/디코더(215)의 결과는 내장(embedding) 프로토콜(220)에 의해 포맷되어, 전송기 또는 저장 디바이스(225)를 이용하여 전송되거나 저장된다.
포맷되고, 저장/전송된 이미지를 디코딩하기 위해, 인코딩 프로세스는 역으로 하여 복원된다. 우선, 포맷팅은 내장 프로토콜(220)에 의해 디코딩되어 원래의 엔트로피 인코딩된 데이터를 만들어낸다. 엔트로피 인코딩된 데이터는 보상기를 포함하는 디코더(230)에 공급된다. 보상기는 이전 프레임들과 차분 인코딩들을 이용하여 양자화된 데이터의 프레임들을 만들어낸다. 양자화된 데이터는 역 양자화기(235)에 전송되어 데이터를 장면으로 역 양자화한다. 양자화 프로세스에 이용되는 비트수 때문에, 상기 장면은 저작된 원래 장면을 완벽하게 표현해 주지 않을 수도 있지만, 본 발명을 이용함으로써, 어레이들이 더 효율적으로 인코딩되어 추가적인 비트들을 다른 목적(예를 들면, 더 높은 해상도 양자화)에 이용할 수도 있다.
명확하게 하기 위해, 이하에는 저작(authoring)을 애니메이션 파라미터의 열 ν을 생성하도록 수행되는 것으로 기술한다. 임의의 파라미터 νi는 열에서 i번째 파라미터이고, 그 자체가 실수값의 어레이를 포함할 수도 있다. 양자화 동안, 파라미터 νi는 양자화된 파라미터 νqi로 변환된다. 양자화 방법의 한 예는 MPEG-4 BIFS 버젼 1에 기재된 바와 같은 선형 균등 양자화(linear uniform quantization)이다.
그러한 양자화 프로세스는 이하에 설명되는 보상 프로세스를 지원하는데, 이들 보상 프로세스에서는 값들의 예측이 모든 값 타입까지로 확장된다. 각 데이터 타입에 대해 하나 이상의 예측 함수들이 정의되어, 상기 데이터 타입의 값들이 예측될 수 있다. 다른 실시예에서, 하나의 예측 함수(예를 들면, 가산)가 모든 데이터 타입에 이용된다. 예측의 결과로서, 디코딩시, 의도한 장면을 재생성하는데 일반적으로 더 적은 비트가 필요하다.
이하에 설명하는 코딩 방법은 장면내의 데이터 어레이의 모든 타입에 적용하는 일반화되고 일정한 예측 코딩 방법이다. 그러므로, 상기 방법은 인트라-프레임 인코딩(즉, I-모드) 및 예측 인코딩(즉, P-모드)에 적용가능하다. 다른 실시예로서, P-모드에서, 가변 길이 인코더를 이용하여 데이터 크기를 더 감소시킨다. 도 3a 내지 3c에 도시한 바와 같이, 로테이션에 적용된 경우, 데이터의 인코딩은 양자화가 없는 경우보다 더 적은 비트로 수행될 수 있고, 예측 인코딩과 조합된 경우에는 더욱 더 적은 비트로 수행될 수 있다.
추가적인 데이터 타입도 처리될 수 있다. 임의의 2D 또는 3D 파라미터 ν는, ν=(ν[0], ν[1], ..., ν[D-1])로 주어지는 디멘젼 D의 실수값 벡터로서 나타날 수 있다. 이 파라미터의 대응하는 양자화된 값은 q=(q[0], q[1], ..., q[D'-1])로 주어지는 디멘젼 D'의 정수 어레이이다. 여기에서 디멘젼 D'는 D와 반드시 동일할 필요는 없다. 벡터, 단위 벡터 및 정수는 본 발명의 예측, 양자화 인코딩에 따라 인코딩되는 파라미터들의 3가지 구체적인 카테고리를 구성한다.
"벡터들" 그룹은 3차원, 2차원, 1차원 벡터들로 분할된다. 3차원 벡터는 위치 3D, 크기 3D, 및 텍스쳐 좌표 타입의 값들을 인코딩하는데 이용된다. 2차원 벡터는 위치 2D, 크기 2D, 및 텍스쳐 좌표 타입의 값들을 인코딩하는데 이용된다. 1차원 벡터는 임의의 단일, 비정수 값을 인코딩하는 플로우트(float)들이다. 즉, 길이가 1인 플로팅 포인트 어레이는 각도(Angle), 스케일(Scale), 보간기 키(Interpolator key), 및 바운드플로우트(BoundFloat) 타입의 값들을 인코딩하는데 이용된다. 또한, 컬러는 각각이 0.0-1.0의 스케일로 나타나는 적, 녹 및 청색 컴포넌트를 갖는 플로팅 포인트 3차원 벡터의 특별한 형태이다. MPEG-4 BIFS v1 명세에 기초하여, 벡터들은 QuantTypes 및 AnimationTypes이 1, 2, 4, 5, 6, 7, 8, 11, 및 12인 카테고리에 이용된다.
단위 벡터라는 특성으로 인해, 단위 벡터들은 분리되어 처리되고, 노멀 및 로테이션(QuantTypes 및 AnimationTypes가 9 및 10임)에 이용된다. 로테이션과 노멀의 이용에 대한 추가적인 상세한 설명은 상기 언급한 동시 계류중인 특허 출원서에 기재되어 있다.
마지막 카테고리인 정수도 또한 예측, 양자화된 인코딩에 종속된다. MPEG-4 BIFS v1 명세에 기초하여, 이 카테고리는 QuantTypes 및 AnimationTypes 3, 13, 및 14와 매칭한다. 참고로, 카테고리에 대한 완전한 설명을 이하의 표 1 및 표 2에 나타내었다.
양자화/역 양자화 프로세스는 수개의 파라미터에 의해 지정된다. 이들 파라미터는 코딩된 파라미터의 일반적인 카테고리에 따른다. 벡터들에 대해, 양자화기/역양자화기에는 이하의 것이 제공되어야 한다.
QuantMin: 벡터에 대한 양자화의 최소 한계 -- 파라미터의 디멘젼 D와 동일한 디멘젼의 플로팅 포인트 숫자("플로우트")의 어레이로서 코딩됨.
QuantMax: 벡터에 대한 양자화의 상한 한계 -- 파라미터의 디멘젼 D와 동일한 디멘젼의 플로우트의 어레이로서 코딩됨.
QuantnbBits: 벡터 양자화에 이용되는 비트 수.
(컬러(Colors) 또는 본래의 바운드플로우트(Bound Floats)와 같은) 특정 카테고리에 대해서는, QuantMin 및 QuantMax 값은 파라미터의 디폴트(유한) 한계로부터 얻어질 수 있다. 다른 실시예에서는, QuantMax 대신에 양자화 단계, 즉 QuantStep = (QuantMax - QuantMin)/((2(QuantNbBits))-1)이 지정된다.
마찬가지로, 단위 벡터에 대해, 인코더/디코더에는 하나의 인코딩 파라미터 QuantNbBits - 벡터 양자화에 이용된 비트수 -만이 공급된다. 일관성을 위해, 플로우트 QuantMin 및 QuantMax는 각각 0과 1로 정의된다.
정수에 대해, 양자화기/역양자화기에는 이하의 것이 제공된다.
QuantMin: 벡터에 대한 양자화의 하한- 정수로서 코딩됨.
QuantNbBits: 벡터 양자화에 이용되는 비트수.
기본적인 양자화 프로세스는 이하의 3개의 파라미터에 따라 실수를 양자화한다.
QuantMin : 최소 양자화 값.
QuantMax : 최대 양자화 값.
QuantNbBits : 양자화에 의해 이용되는 비트수.
그리고나서, 양자화 단계는 이하의 표 3에 따라서 정의될 수 있다.
그리고 나서, 이하의 함수(C 프로그래밍 언어 스타일)에 의해 기본적인 양자화 프로세스가 정의된다.
int quantize(float QuantMin, float QuantMax, float ν, int QuantNbBits)
returns the rounded value of (ν-QuantMin)/QuantStep
따라서, 기본적인 역 양자화 프로세스는 이하의 함수에 의해 정의된다.
float invQuantize(float QuantMin, float QuantMax, float νq, int QuantNbBits)
returns (QuantMin + νq*QuantStep)
MPEG-4 BIFS v1에 기술된 양자화 프로세스는 상기 설명한 바와 같은 양자화 및 역 양자화 함수들을 이용하며, 이들은 본 발명에도 적용가능하다. 양자화 프로세스가 보상 프로세스를 지원하기만 한다면, 다른 양자화 및 역 양자화 함수를 다른 실시예에서 이용할 수도 있다.
보상 프로세스의 일부로서, 이하의 파라미터가 정의된다.
CompMin: 보상 벡터 νDelta의 하한을 정의하는 정수 어레이.
CompNbBits: 보상 벡터의 컴포넌트를 코딩하는데 이용되는 비트수를 정의하는 정수.
이들 값들은 보상기의 특성은 아니지만, 이진 파일내의 보상 벡터 νDelta의 컴포넌트의 인코딩을 정의한다. 각 컴포넌트 νDelta[i]는 CompMin[i]에 의해 변환되고, CompNbBits를 이용하여 코딩된다. 실제 코딩된 값은 νDelta[i]-CompMin[i]이다.
이제, 연속하는 양자화된 값 νq1, νq2 및 그들 νDelta간의 델타값의 측면에서 일반적인 예측 프로세스를 설명한다.
우선, 인코딩 프로세스를 설명한다. 벡터 및 정수에 대해서는, 계산이 직접적으로 이루어지며, νDelta[i]=νq2[i]-νq1[i]에 의해 주어진다.
단위 벡터에 대해서는, 더 상세한 계산이 이용된다(더 상세하게는 상기 언급한 동시 계류중인 출원서에 기재되어 있음). 상기 설명한 바와 같이, QuantNbBits=0이면, 어떤 비트도 이용되지 않으므로, 실제 코딩은 없다. 그 경우에, 모든 값들은 제로로 간주되고, 비디오 스트림에 기록될 필요가 없다.
그러나, QuantNbBits>0이면, 코딩 프로세스는 이하와 같이 수행된다. 우선, 변수 inv가 1로서 초기 설정된다(그러나 이 변수는 프로세스 동안에 변할 수도 있다). 그리고나서, 변환된 컴포넌트의 수 N이 결정되는데, 노멀에 대해서는 N=2이고, 로테이션에 대해서는 N=3이다. 그리고나서, νq1 및 νq2간의 차분 오리엔테이션 및 방향 (differential orientations and directions)이 dOri=(ori2-ori1)mod(N+1), dDir=dir1*dir2, scale=2QuantNbBits-1에 기초하여 계산된다.
그리고나서, 이하의 표 4와 같이 2가지 경우를 고려할 수 있다.
변수 inverse는 inverse = inv*dDir에 따라 계산된다. 양자화 프로세스 νq2'의 최소한의 비단사성(marginal non-injectivity)의 결과로서, νDelta에 의한 νq1의 보상이 정확하게 νq2를 도출하지 않을 수도 있다. 그러나, vq2 와 vq2'는 항상 거의 동일한 노멀 또는 로테이션을 나타낼 것이다.
값들의 3개의 기본 카테고리들 각각(즉, 정수, 벡터, 및 단위 벡터)이 예측될 수 있다. 정수는 단순한 감산을 이용하여 예측된다. 벡터는 양자화된 컴포넌트 기반 감산을 이용하여 예측이 수행된다. 단위 벡터는 매핑 큐브(mapping cube)의 위상 기하학적 구조(topological structure)를 기반으로 한 특별 감산을 이용한다.
각 데이터 타입에 대한 값들을 예측하였으므로, 디코딩하는 동안, 보상을 이용하여 예측된 값 및 실제값들간의 차이를 정정한다. νq1을 이전에 계산된 양자화된 파라미터라 하고, νDelta를 델타 값으로 하며, νq2를 가산의 결과 얻어진 양자화된 값이라고 하자. 그리고나면, 양자화된 값 νq는 정수의 어레이 νq[]를 포함한다. 추가적으로, 노멀 및 로테이션에 대해 νq1은 오리엔테이션을 포함하고, 노멀에 대해서만은 방향을 포함한다. 마찬가지로, 델타 값 νDelta는 정수의 어레이 νDelta[]를 포함한다. 추가적으로, 노멀에 대해서는 그 값이 -1 또는 1인 정수 인버스(integer inverse)를 포함한다. 그리고나서, 계산되는 값의 타입에 따라 결과 νq2가 계산된다. 벡터 및 정수에 대해, νq2의 컴포넌트들은 νq2[i]=νq1[i]+νDelta[i]로 주어진다. 그러나, 단위 벡터에 대해서는 단위 큐브 구조(unit cube structure) 때문에 추가적인 프로세싱이 수행된다.
상기 설명한 바와 같이, 이하의 방법이 수행된다. 우선, 컴포넌트끼리의 가산이 수행되고, 그 결과는 νqTemp[i]=νq1[i]+νDelta[i]로 주어지는 임시 어레이에 저장된다. QuantNbBits가 제로 또는 1이면, 스케일은 1/2로 설정되고, 그렇지 않으면 2QuantNbBits-1-1로 설정된다. 동시 계류중인 출원서에 더 상세히 설명한 바와 같이, QuantNbBits=0의 이용은 본 발명에 대해 QuantNbBits=1과 실질적으로 등가이다. 방향 및 오리엔테이션 정보만을 이용함으로써(즉, QuantNbBits=0일 때), 한 면으로부터 다른 모든 면으로의 이동을 기술할 수 있다.
그러나, 이하의 설명하는 더 일반적인 경우에는 QuantNbBits≥2이다. 그러면, 변환된 컴포넌트의 수 N이 설정된다(노멀에 대해서는 N=2, 로테이션에 대해서는 N=3이다). 이들 초기 단계들이 수행되었으면, 3가지 조건이 충족하는지에 따라 이하의 기술한 추가적인 프로세싱이 수행된다.
값들의 3가지 타입(즉, 정수, 벡터 및 단위 벡터) 각각에 대해, 보상 프로세스는 예측 프로세스의 반대로 수행된다. 그러므로, 정수에 대해서는 단순한 가산 프로세스가 예측 감산을 복원한다. 마찬가지로, 벡터들에 대해서는 양자화된 컴포넌트 기반의 가산이 이용된다. 마지막으로, 위상 기하학적 가산이 단위 벡터들에 대해 이용되고, 잠재적으로는 새로운 오리엔테이션과 방향의 계산이 필요하다.
도 2를 참조하여 설명한 바와 같이, 인코더(215)가 엔트로피 인코딩을 완료하였으면, 결과 값들은 헤더 정보와 함께 프로토콜에 의해 지정되는 포맷으로 저장되어야 한다. 그러므로, 하나의 실시예는 이하의 구조(다른 구조도 가능함)를 이용한다. 우선, 이전에 설명된 프로세스에 따라 QuantMin, QuantMax, QuantNbBits, CompMin, CompNbBits 중 어느것이 이용되어야 할지를 기술하는 파라미터 카테고리에 각 노드의 각 필드가 주어진다. 그리고나서, 각 어레이에 대한 헤더가 코딩된다. 상기 헤더는 (1) 필드의 길이; 및 (2) 이하의 3개 카테고리 중 하나가 주어지는 경우 I-모드(즉, 단순 양자화) 및 P-모드에 대한 정책(policy) - (a) 유일한 예측 코딩된 값들을 수반하는 단일 인트라 값, (b) 각 n개의 p-값에 대해 제공되는 I-값(이에 의해서 에러의 전파 길이를 제한함), (c) 그 값이 I-값 또는 P-값인지를 표시하는 비트가 각 값에 선행 (또는 후행)함 -를 포함한다.
그리고나서, 코딩 예측값들에 대한 양자화 및 보상 파라미터가 스트림에 부가된다. 인트라 양자화 파라미터(QuantMin, QuantMax, QuantNbBits)는 인코딩된 필드의 범위내에서 대응하는 양자화 파라미터(Quantization Parameter)에 의해 BIFS에서 검색될 수 있다. 보상 파라미터(CompMin, CompNbBits)는 스트림에 직접 부가될 수 있다.
마지막으로, 양자화된 값들의 어레이가 인트라/예측 정책에 따라 코딩된다. I-값들은 양자화된 값들로 코딩된다. P-값들은 그 세션이 임의의 2개의 인트라들간에서 개방되는 산술적 적응 인코더를 통해 인코딩된다.
이하의 비트 스트림 구문(syntax)은 값들의 어레이를 코딩하는데 이용된다. 비트 스트림 구문은 MPEG-4 FDIS 14496-1에 의해 지정되는 MSDL 언어의 규약을 이용한다.
1.0 ArrayOfData
1.1 구문(Syntax)
1.2 의미(Semantic)
데이터 어레이는 Header와 ArrayOfValues로 구성된다.
2.0 ArrayHeader
2.1 구문
2.2 의미
어레이 헤더는 필드의 수를 지정하는 제1 정보를 포함한다(NbBits는 numberOfFields를 코딩하는데 이용되는 비트수이다). 그러면, 인트라/예측 정책(IPPolicy)이 이하와 같이 지정된다.
IPPolicy가 0이면, 초기에 단지 하나의 인트라 값이면 유일하게 예측 코딩된 값들.
IPPolicy가 1이면, 주어진 수의 예측값들마다의 인트라.
IPPolicy가 2이면, 그 값이 인트라 또는 예측값인지를 결정하는 각 값의 비트
마지막으로 InitialArrayQP가 코딩된다.
3.0 InitialArrayQP
3.1 구문
3.2 의미
IPPolicy가 1이면, 2개의 인트라간 인터벌의 크기가 처음으로 지정된다. IPPolicy와는 개별적으로, 예측 모드에 이용된 비트수 CompNbBits 및 CompMins가 코딩된다. (함수 NbComp()는 양자화 한계의 컴포넌트 수를 리턴하고, 오브젝트에 좌우되는 함수이다. 예를 들어, 3D 위치에 대해서는 3을 리턴하고, 2D 위치에 대해서는 2를 리턴하며, 로테이션에 대해서는 3을 리턴한다.)
4.0 ArrayQP
4.1 구문
4.2 의미
ArrayQP는 InitialArrayQP와 동일한 목적을 수행하지만, 이 경우에 파라미터는 선택적으로 설정된다. 파라미터가 스트림내에 설정되어 있지 않으면, InitialArrayQP 또는 최종 수신된 파라미터 값을 참조하여 디폴트로 설정된다.
IPPolicy가 1이면, 2개의 인트라간 인터벌의 크기가 처음으로 지정된다. 어느 경우든, 예측 모드에 이용된 비트수 CompNbBits 및 CompMins가 코딩된다. 함수 NbComp()는 양자화 한계의 컴포넌트 수를 리턴하는 함수이고, 오브젝트에 따라 좌우된다. 예를 들어, 3D 위치에 대해서는 3이고, 2D 위치에 대해서는 2이며, 로테이션에 대해서는 3이다.
5.0 ArrayOfValues
5.1 구문
5.2 의미
값들의 어레이는 우선 제1 인트라 값을 코딩한 후, IPPolicy에 따라 인트라 및 예측 값들을 코딩한다. P 모드만에서는, 더 이상 인트라 값들은 코딩되지 않는다. 제2 모드에서, 각 값에서의 P 또는 I 모드의 비트가 결정된다. 그 경우에, 인트라 값들에 대한 QP가 전송될 수 있다. QP가 전송되면, 산술 인코더의 통계가 리셋된다. 제3 모드에서, 매 인트라 인터벌 값들마다 인트라가 전송된다.
6.0 ArrayIValue
6.1 구문
6.2 의미
ArrayIValue는 필드의 양자화된 인트라 값을 나타낸다. 그 값은 양자화 섹션에 설명된 양자화 프로세스 이후에 필드의 타입에 따라 코딩된다. 노멀에 대해서는 양자화 프로세스에서 지정된 방향 및 오리엔테이션 값들이 우선 코딩된다. 로테이션에 대해서는 오리엔테이션 값만 코딩된다. 방향을 나타내는 비트가 0이면, 노멀의 방향이 1로 설정되고, 비트가 1이면, 노멀의 방향이 -1로 설정된다. 오리엔테이션의 값은 2비트를 이용하여 부호없는 정수로서 코딩된다. 그러면, 필드값의 압축된 컴포넌트들 νq[i]은 필드 데이터 구조에 지정된 비트수를 이용하여 부호없는 정수열로서 코딩된다. 인트라 모드에서의 디코딩 프로세스는 역 양자화 프로세스를 적용함으로써 애니메이션 값들을 계산한다.
7.0 ArrayPValue
7.1 구문
7.2 의미
ArrayPValue는 필드의 이전에 수신된 양자화된 값과 현재의 양자화된 값과의 차이를 나타낸다. 상기 값은 상기 설명한 보상 프로세스를 이용하여 코딩된다.
값들은 절차 ν_aac=aa_decode(모델)을 구비한 적응형 산술 코더 비트스트림으로부터 디코딩된다. 상기 모델은 절차 model_update(모델, ν_aac)로 업데이트된다. 노멀에 대해서는, 인버스 값은 일정하고 비갱신된 모델을 가진 적응형 산술 코더를 통해 디코딩된다. 비트가 0이면, 인버스는 1로 설정되고, 비트가 1이면, 인버스는 -1로 설정된다. 그 다음, 보상 값들 νqDelta[i]이 하나씩 디코딩된다. νq(t-1)을 이전 프레임에서 디코딩된 양자화 값이라고 하고, ν_aac(t)를 순간 t에서 필드의 모델을 갖는 프레임의 적응형 산술 디코더에 의해 디코딩된 값이라고 하자. 시각 t에서의 값은 이전 값으로부터 νDelta(t)=ν_acc(t)+Pmin, νq(t) = AddDelta(νq(t-1), νDelta(t)), ν(t)=InvQuant(νq(t))를 통해 얻어질 수 있다.필드의 모델은 값이 적응형 산술 코더를 통해 디코딩될 때마다 갱신된다. animType가 1(위치 3D) 또는 2(위치 2D)인 경우, 필드 값의 각 컴포넌트는 그 자신 모델 및 오프셋 PMin[i]을 이용하고 있다. 다른 모든 경우에는, 동일한 모델 및 오프셋 PMin[0]이 모든 컴포넌트에 이용된다.
이하의 표 6에 도시된 바와 같이, 본 발명에 따른 값들의 어레이의 압축은 실질적으로 동일한 비디오 스트림을 기술하는 VRML ASCII 파일에 비교했을 때, 장면의 상당한 압축을 제공할 수 있다.
본 발명은, 당해 기술분야의 통상의 기술자에게는 명백한 바와 같이, 본 발명의 사상를 벗어나지 않는 범주내에서 방법 및 시스템을 다르게 실시할 수도 있다. 그러므로, 본 명세서는 발명의 범위를 한정하기 위한 것이 아니며, 본 발명의 범주는 청구 범위의 범주에 의해서만 정의된다.

Claims (3)

  1. 비디오 스트림을 일정하게 인코딩하는 컴퓨터 구현 방법에 있어서,
    (a) 상기 비디오 스트림에 이용되는 실질적인 각 데이터 타입에 대해, 대응하는 타입-특정(type-specific) 양자화 파라미터들을 결정하는 단계;
    (b) 상기 비디오 스트림에 이용된 상기 데이터 타입들 중 하나의 제1 어레이로부터 제1 값을 선택하는 단계;
    (c) 상기 대응하는 타입-특정 양자화 파라미터들을 이용하여 상기 제1 값을 양자화하는 단계;
    (d) 상기 비디오 스트림에 이용되는 상기 데이터 타입들 중 하나의 상기 제1 어레이로부터 제2 값을 선택하는 단계;
    (e) 상기 대응하는 타입-특정 양자화 파라미터들을 이용하여 상기 제1 값 및 상기 제2 값으로부터 예측된 값을 결정하는 단계;
    (f) 상기 대응하는 타입-특정 양자화 파라미터들을 이용하여 상기 예측된 값을 양자화하는 단계;
    (g) 상기 양자화된 제1 값과 상기 양자화된 예측된 값을 상기 비디오 스트림내로 인코딩하는 단계; 및
    (h) 상기 비디오 스트림 내의 인코딩되는 실질적인 모든 어레이에 대해 상기 단계 (b)-(g)를 반복하는 단계
    를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서, 헤더 정보를 상기 비디오 스트림내로 인코딩하는 단계를 더 포함하는 컴퓨터 구현 방법.
  3. 제1항에 있어서, 상기 단계 (g) 및 (h)에서 인코딩된 상기 비디오 스트림을 디코딩하는 단계를 더 포함하는 컴퓨터 구현 방법.
KR10-2001-7006856A 1998-12-04 1999-11-30 데이터 어레이의 예측 인코딩 방법 및 시스템 KR100458101B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/205,191 1998-12-04
US09/205,191 US6075901A (en) 1998-12-04 1998-12-04 Method and system for predictive encoding of arrays of data

Publications (2)

Publication Number Publication Date
KR20010101112A KR20010101112A (ko) 2001-11-14
KR100458101B1 true KR100458101B1 (ko) 2004-11-26

Family

ID=22761183

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-7006856A KR100458101B1 (ko) 1998-12-04 1999-11-30 데이터 어레이의 예측 인코딩 방법 및 시스템

Country Status (11)

Country Link
US (1) US6075901A (ko)
EP (1) EP1138012A4 (ko)
JP (2) JP3999463B2 (ko)
KR (1) KR100458101B1 (ko)
CN (1) CN1124563C (ko)
AU (1) AU753876B2 (ko)
BR (1) BR9915947B1 (ko)
CA (1) CA2352292C (ko)
IL (1) IL143438A (ko)
NO (1) NO20012723L (ko)
WO (1) WO2000034912A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6693645B2 (en) * 1999-12-01 2004-02-17 Ivast, Inc. Optimized BIFS encoder
US7216288B2 (en) * 2001-06-27 2007-05-08 International Business Machines Corporation Dynamic scene description emulation for playback of audio/visual streams on a scene description based playback system
EP1322120B1 (en) 2001-11-27 2011-03-30 Samsung Electronics Co., Ltd. Encoding and decoding key value data of orientation interpolator node
US7026960B2 (en) 2001-11-27 2006-04-11 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding key data
KR100480787B1 (ko) * 2001-11-27 2005-04-07 삼성전자주식회사 좌표 인터폴레이터의 키 값 데이터 부호화/복호화 방법 및 장치
EP2302929B1 (en) * 2001-11-27 2015-03-25 Samsung Electronics Co., Ltd. Coding and decoding of a bitstream with a coordinate interpolator
EP1322118B1 (en) * 2001-11-27 2012-11-14 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding key data
EP1331824A3 (en) * 2001-11-27 2005-09-14 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding key value data of coordinate interpolator
EP1320265B1 (en) 2001-11-27 2014-05-21 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding position interpolator
CN100581253C (zh) * 2001-11-27 2010-01-13 三星电子株式会社 用于解码比特流的装置和方法
EP1592253B1 (en) * 2001-11-27 2012-06-27 Samsung Electronics Co., Ltd. Generating differentially coded data of quantized coordinate data of vertices of moving objects
US7013803B2 (en) 2002-02-06 2006-03-21 Quad/Tech, Inc. Color registration control system for a printing press
US7253929B2 (en) * 2002-02-06 2007-08-07 Quad/Tech, Inc. Camera assembly for a printing press
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
US20070110151A1 (en) * 2005-11-14 2007-05-17 Ess Technology, Inc. System and method for video frame buffer compression
CA2628746C (en) * 2005-12-05 2014-08-26 Jeffrey Fischer Chemical composition and method for detecting counterfeit paper currency
KR100738109B1 (ko) * 2006-04-03 2007-07-12 삼성전자주식회사 입력 신호의 양자화 및 역양자화 방법과 장치, 입력신호의부호화 및 복호화 방법과 장치
BR112014025640B1 (pt) * 2012-04-18 2021-08-10 Interdigital Madison Patent Holdings Método e aparelho para gerar ou decodificar um fluxo de bits que representa um modelo 3d
AU2013372617B2 (en) 2013-01-10 2019-07-04 Interdigital Vc Holdings, Inc. Method and apparatus for vertex error correction

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4751742A (en) * 1985-05-07 1988-06-14 Avelex Priority coding of transform coefficients
US5227878A (en) * 1991-11-15 1993-07-13 At&T Bell Laboratories Adaptive coding and decoding of frames and fields of video
US5793371A (en) * 1995-08-04 1998-08-11 Sun Microsystems, Inc. Method and apparatus for geometric compression of three-dimensional graphics data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Proceedings of Computer Animation(1998.6.8-10, pp. 49-55) *

Also Published As

Publication number Publication date
IL143438A0 (en) 2002-04-21
KR20010101112A (ko) 2001-11-14
IL143438A (en) 2005-12-18
AU1713200A (en) 2000-06-26
CA2352292A1 (en) 2000-06-15
CA2352292C (en) 2008-01-22
EP1138012A4 (en) 2005-01-19
CN1329733A (zh) 2002-01-02
NO20012723D0 (no) 2001-06-01
BR9915947B1 (pt) 2010-12-14
EP1138012A1 (en) 2001-10-04
JP4444943B2 (ja) 2010-03-31
CN1124563C (zh) 2003-10-15
JP3999463B2 (ja) 2007-10-31
JP2007116725A (ja) 2007-05-10
NO20012723L (no) 2001-08-01
US6075901A (en) 2000-06-13
BR9915947A (pt) 2001-08-21
AU753876B2 (en) 2002-10-31
WO2000034912A1 (en) 2000-06-15
JP2002532923A (ja) 2002-10-02

Similar Documents

Publication Publication Date Title
JP4444943B2 (ja) データアレイの予測符号化方法およびシステム
US20230090436A1 (en) Hybrid coding order for point cloud coding
JP4399393B2 (ja) 3次元生成シーンにおける回転および垂線の符号化方法およびシステム
US8411975B2 (en) Method and apparatus for encoding and decoding key value data of coordinate interpolator
US9547916B2 (en) Segment-based encoding system including segment-specific metadata
KR100552666B1 (ko) 좌표 인터폴레이터의 키 및 키 값 데이터의 부호화/복호화장치, 및 좌표 인터폴레이터를 부호화한 비트스트림을기록한 기록 매체
JPH08214318A (ja) ビデオ画像のシーケンスを符号化するための領域ベースアプローチに対する方法及び装置
JP2007151119A (ja) ダイナミックプロトタイプを使用してマルチマディアストリームを制御する方法およびシステム
Guarda et al. Deep learning-based point cloud geometry coding: RD control through implicit and explicit quantization
Isik et al. Lvac: Learned volumetric attribute compression for point clouds using coordinate based networks
JP2022526232A (ja) 点群圧縮のための方法並びにその、装置およびコンピュータプログラム
KR20030081403A (ko) 영상의 부호화 및 복호화 방법, 장치 및 그 애플리케이션
EP0734168A2 (en) Apparatus for encoding a moving image signal having a still object
US7809204B2 (en) Method and apparatus for encoding and decoding key value data of coordinate interpolator
Guenter et al. Motion compensated compression of computer animation frames
MXPA01005520A (en) Method and system for predictive encoding of arrays of data
KR20240052425A (ko) 3차원 메쉬의 텍스처맵 생성 방법 및 장치
JP3066278B2 (ja) 画像符号化装置及び画像復号化装置
Chai et al. Mesh-based depth map compression and transmission for real-time view-based rendering
CN115152225A (zh) 用于点云译码的方法和设备
Smolic et al. A survey on coding of static and dynamic 3D meshes
Gost et al. Efficient coding of homogeneous textures using stochastic vector quantisation and linear prediction
Song et al. Progressive compression and transmission of PointTexture images
Chiueh Zodiac2: An Authoring Tool for Active Video Content
MXPA01005522A (en) Method and system for encoding rotations and normals in 3d generated scenes

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