KR19980035726A - Method and apparatus for generating panoramic image of virtual reality system - Google Patents

Method and apparatus for generating panoramic image of virtual reality system Download PDF

Info

Publication number
KR19980035726A
KR19980035726A KR1019960054143A KR19960054143A KR19980035726A KR 19980035726 A KR19980035726 A KR 19980035726A KR 1019960054143 A KR1019960054143 A KR 1019960054143A KR 19960054143 A KR19960054143 A KR 19960054143A KR 19980035726 A KR19980035726 A KR 19980035726A
Authority
KR
South Korea
Prior art keywords
panoramic image
image
codebook
generating
frame
Prior art date
Application number
KR1019960054143A
Other languages
Korean (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 배순훈
Priority to KR1019960054143A priority Critical patent/KR19980035726A/en
Publication of KR19980035726A publication Critical patent/KR19980035726A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/008Vector quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Signal Processing (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은 가상 현실 시스템(VR : Virtual Reality System)에 관한 것으로, 특히 파노라믹 이미지(panoramic image)를 압축기법을 이용하여 생성하는 파노라믹 이미지 생성기에 관한 것으로서, 프레임별로 구분되어 각각 저장된 영상을 라인순서 대로 다시 재배열하여 하나의 파노라믹 이미지를 생성하는 제 1 과정과; 상기 제 1 과정의 파노라믹 이미지에 대해 벡터 양자화를 실시하여 코드워드와 코드북을 생성하여 메모리에 저장하는 제 2 과정을 포함하여 구성되는 것을 특징으로하는 가상 현실 시스템의 파노라믹 이미지 생성 방법과, 영상 데이터 저장수단(60)과; 단일 파노라믹 이미지를 생성해주는 파노라믹 이미지 생성수단(61); 코드북과 코드워드를 생성하는 VQ 처리 수단(62); 파노라믹 이미지 저장수단(63); 렌더링 및 텍스춰 매핑하여 RGB영상신호를 출력하는 3차원 그래픽처리부(64-1, 64-2); 신호변환기(65-1, 65-2); 영상표시 및 움직임 검출 수단(66); 위치 및 방향 추적기(67); 및 시야각 계산부(68)로 구성된 가상 현실 시스템의 파노라믹 이미지 생성 장치를 통해서, 단일 파노라믹 이미지를 생성하고, 벡터 양자화하여 메모리 소비를 효과적으로 줄이며, 인덱스만 전송하면 되기 때문에 빠른 전송속도를 갖는 효과가 있다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a virtual reality system (VR), and more particularly, to a panoramic image generator for generating a panoramic image by using a compression method. A first process of rearranging the lines in line order to generate one panoramic image; And a second process of performing vector quantization on the panoramic image of the first process, generating a codeword and a codebook, and storing the codeword and the codebook in a memory. Image data storage means (60); Panoramic image generating means (61) for generating a single panoramic image; VQ processing means 62 for generating codebooks and codewords; Panoramic image storage means (63); 3D graphics processing units 64-1 and 64-2 for rendering and texture mapping to output RGB image signals; Signal converters 65-1 and 65-2; Image display and motion detection means (66); Position and direction tracker 67; And a panoramic image generating device of a virtual reality system comprising a viewing angle calculator 68, which generates a single panoramic image, vector quantizes it to effectively reduce memory consumption, and transmits only an index. It has an effect.

Description

가상 현실 시스템의 파노라믹 이미지 생성 방법 및 그 장치 ( A method of panoramic images generating in a Virtual Reality system and thereof an apparatus)A method of panoramic images generating in a virtual reality system and pretty an apparatus

본 발명은 가상 현실 시스템(VR : Virtual Reality System)에 관한 것으로, 특히 파노라믹 이미지(panoramic image)를 압축기법을 이용하여 생성하는 파노라믹 이미지 생성방법 및 장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a virtual reality system (VR). More particularly, the present invention relates to a method and an apparatus for generating a panoramic image using a compressor method.

가상 현실시스템은 우리가 직접 경험할 수 없고 미완성 또는 존재하지 않은 가상상황을 마치 실제 상황인 것처럼 느낄 수 있도록 생생하게 보여주고, 사용자로 하여금 그 속에서 원하는 행동을 자유롭게 할 수 있도록 하여 많은 지식과 체험을 얻을 수 있게 하는 것으로, 컴퓨터기술과 영상기술을 기반으로 구현된다. 기존 컴퓨터가 2차원의 사용환경을 윈도우(window) 형태로 제공하고, 사용자를 관찰자 또는 국외자로 대하는 방법과는 달리 가상현실(VR)은 3차원의 사용환경(가상세계)을 사용자에게 제공하여 자신이 가상세계 속에 있는 것처럼 느끼고, 가상현실에 나타나는 물체들을 직접 조작할 수 있도록 해준다. 이와 같은 차이로 인해 가상현실(VR)기술을 이용하면 기존의 정보제공방식 및 상호작용방식으로는 제공하기 어려운 생생한 지식과 체험을 가능하게 하기 때문에 교육/훈련, 오락/문화, 과학/의학, 설계/제조, 통신, 국방등 다양한 분야에서 방대한 새로운 시장을 창출할 수 있을 것으로 기대된다.The virtual reality system vividly shows the unfinished or non-existent virtual situation as if it is a real situation, and gives users a lot of knowledge and experience by freeing the desired action in it. It is implemented based on computer technology and image technology. Unlike the existing computer that provides a two-dimensional environment of use in the form of a window and treats the user as an observer or a foreigner, VR provides a three-dimensional environment of use (virtual world) to the user. It feels like you are in this virtual world and allows you to directly manipulate objects that appear in virtual reality. Because of these differences, the use of virtual reality (VR) technology enables vivid knowledge and experiences that are difficult to provide by traditional information provision and interaction methods, so education / training, entertainment / culture, science / medicine, design, etc. It is expected to create a huge new market in various fields such as manufacturing, telecommunications, and defense.

이러한 가상현실(VR)은 보는 관점에 따라 가상환경(Virtual Environment), 가상존재(Virtual Presence), 인공세계(Artifical World), 가상세계(Virtual World), 사이버스페이스(Cyberspace)와 같은 용어로 혼용하고 있으나, 일반적으로 컴퓨터가 만들어낸 실세계와 유사한 3차원 가상세계를 사용자에게 제공하고, 그 가상세계와 실시간으로 자유롭게 조작할 수 있는 입력수단과 사용자의 조작에 대응하여 실제적인 감각을 제공하는 감각궤환(Sensory feedback)수단을 제공하므로써 인공적인 체험과 경험을 할 수 있도록 해주는 기술이라 할 수 있다.Such VRs are used interchangeably with terms such as virtual environment, virtual presence, artificial world, virtual world, cyberspace, depending on the point of view. However, in general, a sensor provides a three-dimensional virtual world similar to the real world created by a computer, an input means that can be freely manipulated in real time with the virtual world, and a real sense in response to the user's manipulation. It is a technology that enables artificial experience and experience by providing a means of sensory feedback.

이와 같은 가상현실(VR)시스템은 효과 발생기(Effectors)와, 리얼리티 엔진(Reality Engine), 어플리케이션(Application), 입체모델(Geometry)로 구성되며, 각각의 정의해보면 다음과 같이 설명된다.Such a virtual reality (VR) system is composed of effect generators, a reality engine, an application, and a three-dimensional model, each of which is described as follows.

효과 발생기(Effectors)는 일종의 하드웨어로 가상 환경을 제어하기 위한 입출력 센서와 장치들을 뜻한다.Effectors are a kind of hardware that represent input and output sensors and devices to control the virtual environment.

리얼리티 엔진(Reality Engine)은 효과 발생기에 필요한 감각 정보를 전달하는 신시사이저(synthesizing)등과 같은 외부적 하드웨어들로서, 현실감 엔진을 구성한다.The Reality Engine is external hardware such as a synthesizer that delivers sensory information necessary for an effect generator, and constitutes a reality engine.

어플리케이션(Application)은 시뮬레이션과 그 동력, 구조, 객체와 사용자간의 상호 작용들의 짜임새를 묘사하는 소프트웨어를 말한다.An application is software that describes the simulation and its power, structure, and texture of the interactions between objects and users.

그리고, 입체 모델(Geometry)은 객체의 속성 즉, 형상, 색, 위치 등에 관한 축적된 3D 모델 데이터 베이스를 말한다. 이것은 집의 형태나 위치, 구조, 색깔을 묘사하고 이 정보는 어플리케이션에 의해 처리되어 가상 세계의 창조에 사용된다.In addition, the three-dimensional model (Geometry) refers to the accumulated 3D model database on the properties of the object, that is, the shape, color, position and the like. It describes the shape, location, structure, and color of the house, and this information is processed by the application and used to create the virtual world.

예로서 도 1에 도시된 바와 같이, 효과발생기(Effectors)는 사용자가 쓰고 가상현실의 세계를 시청각으로 경험하기 위한 헤드 마운티드 디스플레이(HMD:1)와, 송신기(2), 조이스틱(3) 등으로 이루어져 있다. 그리고, HMD(1)는 사용자의 머리방향을 검출하기 위한 센서(1-1), 입체음향을 제공하기 위한 좌우측 스피커, 영상을 디스플레이해 주는 좌우측 LCD, 광학렌즈 등을 포함하고 있다.As an example, as shown in FIG. 1, the effectors include a head mounted display (HMD: 1), a transmitter (2), a joystick (3), etc., for the user to write and to experience the world of virtual reality visually. consist of. The HMD 1 includes a sensor 1-1 for detecting a head direction of a user, left and right speakers for providing stereo sound, left and right LCDs for displaying an image, an optical lens, and the like.

그리고, 리얼리티 엔진(reality engine)은 컴퓨터 시스템 내부에 존재하는 하드웨어로 제 1 3D 그래픽보드(4), 제2 3D 그래픽보드(5), 3D 사운드 보드(6), 사운드 소스(7), 통신포트(8), 컴퓨터 인터페이스보드(9)가 있고, 컴퓨터 외부에 존재하는 하드웨어로 제1 3D 그래픽보드의 RGB 신호를 NTSC방식의 TV신호로 변환하는 제1 신호변환기(10), 제2 3D 그래픽보드의 RGB 신호를 NTSC방식의 TV신호로 변환하는 제2 신호변환기(11) 및 위치 및 방향 추적기(12)로 구성되어 있다.In addition, the reality engine is a hardware existing inside the computer system. The first 3D graphics board 4, the second 3D graphics board 5, the 3D sound board 6, the sound source 7, and the communication port 8, a computer interface board (9), the first signal converter 10, the second 3D graphics board for converting the RGB signal of the first 3D graphics board into NTSC TV signal with hardware existing outside the computer Is composed of a second signal converter 11 and a position and direction tracker 12 for converting the RGB signal into an NTSC TV signal.

그리고, 어플리케이션(Application)은 사용자 응용 소프트웨어를 저장하고 있는 메모리(13)와, 가상세계를 시뮬레이션하기위한 시뮬레이션 메니저(14)로 구성되어 있다.The application is composed of a memory 13 storing user application software and a simulation manager 14 for simulating a virtual world.

그리고, 입체 모델(Geometry)은 가상 현실의 각각의 객체를 3차원 모델링 구축을 위한 데이터베이스가 저장되어 하드디스크(15)로 구성되어 있다.In addition, the three-dimensional model (Geometry) is composed of a hard disk 15 is stored in the database for building the three-dimensional modeling of each object of the virtual reality.

이와 같은 시스템은 사용자의 머리 움직임을 송신기(2), 센서(1-1), 및 위치방향 추적기(12)에 의해 추적하여 어플리케이션 또는 시뮬레이션 메니저의 조작 및 제어에 의해서 리얼리티 엔진이 동작하면서 사용자의 머리 움직임을 감지하고 계산하여 적절한 시점에 따라 가상 세계를 다시 디스플레이하여 제공한다.Such a system tracks the movement of the user's head by the transmitter 2, the sensor 1-1, and the position tracker 12 so that the reality engine is operated by the operation or control of the application or simulation manager. It detects and calculates motion and displays and presents the virtual world again at the appropriate time.

따라서, 리얼리티 엔진은 피험자의 머리나 손의 움직임을 추적하고, 디스플레이에 새로운 이미지를 만드는데 전체 사이클을 실시간동안 진행시켜야 하는데, 인간의 지각력에 관한 연구에서 100밀리초 이내의 반응은 일반적으로 실시간으로간주된다고 알려진 바, 루프를 한번 회전하는데 100밀리초가 걸린다면 그후 매 0.1초 마다 한 화면이 채워지고, 1초에 10개의 화면이 채워지는 것이다.Therefore, the reality engine tracks the subject's head or hand movements and creates a new image on the display, which must go through the entire cycle in real time. In studies of human perception, a response of less than 100 milliseconds is generally considered in real time. If it takes 100 milliseconds to rotate the loop once, then it fills one screen every 0.1 seconds and then 10 screens per second.

어플리케이션은 가상 세계를 편집하고 실행하고 제어하기 위한 소프트웨어로서 , 시뮬레이션 메니저는 가상세계를 위해 구축된 데이터 베이스를 읽어 실시간으로 피험자의 행동과 객체간의 상호작용등을 감시하면서 그때 그때의 상황을 전개해 나간면서 추적된 객체(object)와 주변 환경(Backdrop)을 제공하여 사용자가 그 환경에 몰입하도록 한다.The application is software for editing, executing, and controlling the virtual world. The simulation manager reads a database built for the virtual world and monitors the behavior of the subject and the interactions between objects in real time, and then develops the situation. At the same time, it provides a tracked object and a backdrop, allowing users to immerse themselves in that environment.

기하학적 모델은 현재 3차원 Auto-CAD 와 같은 툴로 만들어지며 여기서 구축된 화일은 어플리케이션의 제어로 가상 세계에서 표현될 때 시점에 따라 연산 처리되어 재구성된다.Geometric models are currently created with tools such as 3D Auto-CAD, where the constructed files are computed and reconstructed from time to time when represented in the virtual world under the control of the application.

그런데 가상 세계의 표현에서 발생되는 문제점은 이러한 기하학적 모델을 구성하는데 소요되는 폴리건(polygon)의 수와 폴리건을 재구성하기위한 속도 처리에 있다. 폴리건은 다각형을 말하는데 테두리만 분리시켜 선으로 표시하는 와이어 프레임으로 작성된다. 예를 들어 배경(backdrop)은 200에서 20,000개의 분산된 다각형으로 구성될 수 있다. 사용자가 움직일 때마다 전경의 각 삼각형들의 위치와 그림자들은 재계산되고 다시 그려져야 한다. 따라서, 배경이 복잡할 수록 폴리건의 수가 더 많이 필요하게 된다.However, the problem that occurs in the representation of the virtual world is the number of polygons required to construct such a geometric model and the speed processing for reconstructing the polygons. Polygons are polygons that are created as wireframes that separate the borders and display them as lines. For example, the backdrop may consist of 200 to 20,000 distributed polygons. Each time the user moves, the position and shadows of each triangle in the foreground must be recalculated and redrawn. Thus, the more complex the background, the greater the number of polygons required.

그리고, 강력한 현실감을 얻기 위해 새로운 텍스쳐 매핑 기술이 쓰여지고 있는데, 텍스쳐 매핑은 사실적인 모델을 구현하기 위해 객체의 표면에 그림을 입혀 나타내는 기법이다.In addition, new texture mapping techniques are being used to achieve a strong sense of realism. Texture mapping is a technique of painting an object's surface to create a realistic model.

종래의 파노라믹 이미지를 생성하는 방법을 도 2에 도시하였다. 도 2a에서 보는 바와 같이 Sa, Sb, Sc 3개의 프레임(각 프레임은 640 x 480의 픽셀로 이루어졌다고 가정한다)으로 이루어진 한 장의 파노라믹 영상이면, 이 프레임들의 영상 데이터는 3a에 도시된 바와 같이, 비디오 램상에 각각 구분되어 저장되어 있다.A method of generating a conventional panoramic image is shown in FIG. 2. As shown in Fig. 2A, if a single panoramic image is composed of three frames Sa, Sb, and Sc (assuming each frame is composed of 640 x 480 pixels), the image data of these frames is shown in 3a. Similarly, the video is stored separately on the RAM.

즉, Sa 프레임은 a1부터 a480까지의 라인으로 이루어져 있고, 이들 데이터는 비디오 램상에 a1부터 순차적으로 a480까지 저장되어 있고, Sb 프레임은 b1부터 b480까지의 라인으로 이루어져 있고, 이들 데이터는 비디오 램상에 b1부터 순차적으로 b480까지 저장되어 있으며, Sc 프레임은 c1부터 c480까지의 라인으로 이루어져 있으며, 이들 데이터는 비디오 램상에 c1부터 순차적으로 c480까지 저장되어 있어 상당한 메모리가 요구되었다.That is, the Sa frame consists of lines a1 to a480, these data are stored sequentially from a1 to a480 on the video RAM, and the Sb frame consists of lines from b1 to b480, and these data are stored on the video RAM. From b1 to sequentially b480, the Sc frame consists of lines from c1 to c480, and these data are stored from c1 to c480 sequentially on the video RAM, requiring considerable memory.

또한, 이와 같은 파노라믹 영상이 종래의 가상현실시스템에서 디스플레이될 경우에는 라인별로 스켄되면서 주사되기 때문에 Sa프레임의 라인이 모두 주사된 이후, Sb프레임, Sc프레임 순으로 순차적으로 주사된다.In addition, when such a panoramic image is displayed in the conventional virtual reality system, since the scan is scanned for each line, the lines of the Sa frames are all scanned, and then sequentially scanned in the order of Sb frames and Sc frames.

따라서, 어느 한 프레임 화면만 디스플레이되기 때문에 화면의 이동이 급격하다. 예컨대, 사용자의 시점이 Sa화면으로부터 Sb화면으로 서서히 이동할 경우, Sa화면의 우측일부와 Sb화면의 좌측일부가 보이면서 점차 Sb화면으로 이동해야 하나 종래에는 Sa화면이 보이다가 갑자기 Sb화면이 나타났기 때문에 시점과 화면이 일치하지 않게 되는 문제점이 있었다.Therefore, since only one frame screen is displayed, the screen moves abruptly. For example, when the user's viewpoint gradually moves from the Sa screen to the Sb screen, the right part of the Sa screen and the left part of the Sb screen should be visible and gradually moved to the Sb screen. There was a problem that the screen does not match.

이를 해결하고자 본 발명자에 의해 발명되어 제안된 파노라믹 이미지 생성기에 관한 발명이 대한 민국 특허 출원 번호 제 96-43227호에 등록되어 있으며, 그에 대한 내용을 설명하면 다음과 같다.In order to solve this problem, the invention related to the proposed panoramic image generator is registered in Korean Patent Application No. 96-43227, which will be described below.

간단히 요약하면, 본 발명에서는 도 2a와 같은 3개의 프레임으로 구부된 화면을 도 3a와 같이 하나의 광대역 프레임(즉, 파노라믹 이미지: Sp)으로 구성하여 사용자의 시점(view point)에 따라 대응하는 영상데이터를 형성하여 디스플레이하도록 하므로써 시점에 대응하여 자연스럽게 파노라믹 화면이 제공되도록 하는 것이다.In summary, in the present invention, a screen bent in three frames as shown in FIG. 2A is configured as one broadband frame (ie, a panoramic image Sp) as shown in FIG. 3A to correspond to a user's view point. By forming and displaying image data, a panoramic screen is naturally provided corresponding to a viewpoint.

도 3a와 같은 광대역 프레임을 형성하도록 이미지를 라인별로 저장한 메모리의 구조를 도 3b에 도시하였다.A structure of a memory in which images are stored line by line to form a wideband frame as shown in FIG. 3A is illustrated in FIG. 3B.

도 2a에서 보는 바와 같이 3개의 프레임이 하나의 파노라믹 이미지를 만들 경우에 a1, a2, ... a480, b1, b2. ..., b480, c1, c2, ... c480 순으로 저장된 영상데이터를 도 3b에서 보는 바와 같이, a1+b1+c1를 합성하여 d1, a2+b2+c2를 합성하여 d2, ... a480+b480+c480를 합성하여 d480 순으로 저장하는 것이다. 이렇게 되면, 도 3a와 같이 파노라믹 이미지가 광대역 프레임 즉, 단일 이미지로 합성되고 라인순서로 주사되므로써 자연스러운 화면을 제공 받을 수 있게 되는 것이다.A1, a2, ... a480, b1, b2 when three frames make one panoramic image as shown in FIG. 2A. As shown in FIG. 3B, image data stored in order of b480, c1, c2, ... c480 is synthesized by combining a1 + b1 + c1 to synthesize d1, a2 + b2 + c2. a480 + b480 + c480 is synthesized and stored in the order of d480. In this case, as shown in FIG. 3A, the panoramic image is synthesized into a wideband frame, that is, a single image, and scanned in line order, thereby providing a natural screen.

그러나, 이와 같이 넓은 바닷가와 같은 파노라믹 화면은 동일한 장면(배경)이라도 보는 시점에 따라 여러 각도에서 관찰되는 사진 혹은 영상들을 기하학적인 평면 조각으로 매핑 즉, 영상을 구면체나 원기둥에 텍스쳐 매핑하는 형태이기 때문에 여러장의 이미지가 필요하게 된다.However, such a wide ocean-like panoramic screen maps photographs or images observed from different angles into geometric planar fragments, that is, texture mapping of images onto a spherical body or cylinder according to the point of view of the same scene (background). Because of this, several images are required.

따라서, 파노라믹 이미지를 보여주기 위한 이들 여러장의 이미지들은 동일한 배경으로 부터 얻은 영상들이기 때문에 서로 상관도(correlation)가 높음에도 불구하고, 여러장의 이미지를 각각 저장하므로써 상당한 메모리가 소요되는 문제점이 있었다.Therefore, these multiple images for displaying the panoramic images are obtained from the same background, but despite the high correlation, there is a problem in that a large amount of memory is required by storing the multiple images. .

이에 본 발명은 상기와 같은 문제점을 해소하기 위하여 여러개의 프레임으로 나누어진 영상을 합성하여 하나의 파노라믹 이미지를 생성한 후 압축 효율이 높은 벡터 양자화 기법을 이용하여 압축한 후 저장하므로써 메모리를 절약할 수 있도록 된 가상 현실시스템의 파노라믹 이미지 생성기를 제공하는 데 그 목적이 있다.In order to solve the above problem, the present invention synthesizes an image divided into several frames to generate one panoramic image, and then saves the memory by compressing and storing the same by using a vector compression technique having high compression efficiency. The objective is to provide a panoramic image generator of a virtual reality system that can be enabled.

상기와 같은 목적을 달성하기 위하여 본 발명의 방법은, 프레임별로 구분되어 각각 저장된 영상을 라인순서 대로 다시 재배열하여 하나의 파노라믹 이미지를 생성하는 제 1 과정과; 상기 제 1 과정의 파노라믹 이미지에 대해 벡터 양자화를 실시하여 코드워드와 코드북을 생성하여 메모리에 저장하는 제 2 과정을 포함하여 구성된다.In order to achieve the above object, the method of the present invention includes a first process of generating a panoramic image by rearranging images stored separately for each frame in a line order; And a second step of generating a codeword and a codebook by performing vector quantization on the panoramic image of the first step and storing the codeword and the codebook in a memory.

상기와 같은 목적을 달성하기 위하여 본 발명의 장치는, 여러개의 프레임으로 구분된 영상 데이터를 입력받아 파노라믹 이미지를 생성해주는 파노라믹 이미지 생성수단; 상기 생성된 파노라믹 이미지를 압축하여 코드북과 코드워드를 생성하는 VQ 처리 수단; 상기 생성된 코드북과 코드워드를 저장하고 있는 파노라믹 저장수단; 사용자의 시점에 따라 대응하는 한 프레임의 영상데이터를 상기 파노라믹 이미지 저장수단으로부터 읽어와 렌더링 및 텍스춰 매핑하여 RGB영상신호를 출력하는 3차원 그래픽처리부; 상기 3차원 그래픽처리부의 RGB출력을 TV영상신호로 변환하는 신호변환기; 상기 신호변환기의 출력을 입력받아 디스플레이함과 아울러 사용자의 움직임을 검지하는 영상표시 및 움직임 검출 수단; 상기 영상표시 및 움직임 검출수단으로부터 사용자의 움직임신호를 입력받아 사용자의 위치 및 방향을 산출하는 위치 및 방향 추적기; 및 상기 위치 및 방향 추적기로부터 입력된 사용자의 움직임에 따라 파노라믹 이미지의 뷰 볼륨을 산출하여 상기 3차원 그래픽보드로 출력하는 시야각 계산부를 포함하는 것을 특징으로 한다.In order to achieve the above object, the apparatus of the present invention, the panoramic image generating means for receiving the image data divided into a plurality of frames to generate a panoramic image; VQ processing means for compressing the generated panoramic image to generate a codebook and a codeword; Panoramic storage means for storing the generated codebook and codeword; A three-dimensional graphic processing unit which reads out image data of one frame corresponding to the viewpoint of a user from the panoramic image storage unit, renders and texture-maps and outputs an RGB image signal; A signal converter for converting the RGB output of the 3D graphic processor into a TV image signal; Image display and motion detection means for receiving and displaying the output of the signal converter and detecting a user's movement; A position and direction tracker which receives a user's motion signal from the image display and motion detection means and calculates the position and direction of the user; And a viewing angle calculator for calculating a view volume of the panoramic image according to the movement of the user input from the position and direction tracker and outputting the view volume to the 3D graphic board.

따라서, 파노라믹 이미지를 라인별로 재 배열한후 벡터 양자화를 통하여서, 코드북과 코드워드에 대한 정보만을 저장하도록 하여 메모리 용량을 감소 시킴과 더불어, 고속의 전송을 가능케하는 것이다.Therefore, by rearranging the panoramic images line by line and storing the information about the codebook and the codeword through vector quantization, the memory capacity is reduced and high speed transmission is possible.

도 1은 전형적인 가상 현실 시스템을 도시한 구성도,1 is a block diagram showing a typical virtual reality system,

도 2a, 2b 는 종래의 방식으로 프레임 단위로 파노라믹 이미지를 생성하는 개념을 도시한 도면,2A and 2B illustrate a concept of generating a panoramic image on a frame-by-frame basis in a conventional manner;

도 3a, 3b 는 라인단위로 단일 파노라믹 이미지를 생성하는 개념을 도시한 도면,3A and 3B illustrate a concept of generating a single panoramic image on a line basis;

도 4 는 도 2b를 도 3b와 같이 변환하여 단일 파노라믹 이미지를 생성하는 방법을 도시한 흐름도,4 is a flowchart illustrating a method of generating a single panoramic image by converting FIG. 2B into FIG. 3B;

도 5 는 본 발명에 이용되는 벡터 양자화 기법의 코드북 생성 알고리즘을 설명하기 위한 흐름도,5 is a flowchart illustrating a codebook generation algorithm of the vector quantization technique used in the present invention;

도 6 은 본 발명에 따라 압축된 파노라믹 이미지를 디스플레이 하는 가상 현실 시스템의 구성도이다.6 is a block diagram of a virtual reality system displaying a compressed panoramic image according to the present invention.

* 도면의 주요 부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

60 : 영상 데이터 저장부 61 : 파노라믹 이미지 생성부60: image data storage unit 61: panoramic image generating unit

62 : VQ 처리부 63 : 파노라믹 이미지 저장부62: VQ processing unit 63: Panoramic image storage unit

64-1, 64-2 : 3차원 그래픽 보드 65-1, 65-2 : 신호 변환기64-1, 64-2: 3D Graphics Board 65-1, 65-2: Signal Converter

66 : 3차원 음향 처리부 67 : 위치 및 방향 추적기66: three-dimensional sound processor 67: position and direction tracker

68 : 시야각 계산부 70 :HMD68: viewing angle calculation unit 70: HMD

71 : 송신기 72 : 입력 장치71: transmitter 72: input device

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 자세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

이를 위하여 본 발명의 제 1 과정은, 도 2b와 같이 프레임 단위로 구분되어 저장된 영상 데이터를 어드레스 변환을 통하여서 도 3b와 같이 라인별로 연속되게 저장한다.To this end, in the first process of the present invention, image data divided and stored in units of frames as shown in FIG. 2B are continuously stored line by line as shown in FIG. 3B through address conversion.

그리고, 본 발명의 제 2 과정은, 제 1과정을 통해 도 4b와 같이 합성된 하나의 파노라믹 이미지를 벡터 양자화시켜, 픽셀당 소요되는 바이트 수를 줄이므로써, 소요되는 메모리 용량 및 네트워크를 통한 전송 속도를 줄이는 것이다.The second process of the present invention vector-quantizes a single panoramic image synthesized as shown in FIG. 4B through the first process, thereby reducing the required memory capacity and network by reducing the number of bytes required per pixel. To reduce the transmission speed.

여기서, 픽셀이란 컴퓨터 그래픽상에서 그래픽 이미지의 한 점을 말하며, 표준VGA에서는 640×480(pixel)을 갖는다. 픽셀당 비트수는 표현되는 이미지 컬러가 어느정도로 많은가에 따라 결정된다. VGA디스플레이에서는 한 픽셀당 8개의비트를 갖으므로 256가지 색상을 디스플레이 할수 있다.Here, a pixel refers to a point of a graphic image on computer graphics, and has a pixel of 640 x 480 (pixel) in a standard VGA. The number of bits per pixel depends on how much of the image color is represented. VGA displays have eight bits per pixel, so they can display 256 colors.

상기 제 1 과정의 어드레스 변환이 이루어지는 과정을 도 4의 흐름도를 참조하여 설명하고자 한다.A process of performing the address conversion of the first process will be described with reference to the flowchart of FIG. 4.

n개의 라인으로 이루어진 k 개의 프레임으로 하나의 파노라믹 이미지를 생성하는 본 발명에 따른 방법은, 제1 프레임부터 제k 프레임까지 프레임별로 구분되어 저장된 제1 메모리로부터 제1 프레임의 제1 라인부터 제k 프레임의 제n 라인까지 라인번호순으로 순차적으로 읽어와 제2 메모리에 저장하여 단일 파노라믹 이미지를 생성한다.According to an exemplary embodiment of the present invention, a single panoramic image is generated by k frames including n lines. From the first line of the first frame to the k-th frame, the first memory is divided into frames. The n th line of the k th frame is sequentially read in line number order and stored in the second memory to generate a single panoramic image.

도 4에서 초기화단계(50)에서는 프레임 변수 i와 라인변수 j를 1로 초기화하고, 독출단계(51)에서는 i 프레임의 j라인 데이터를 제1 메모리로부터 읽어오고, 저장단계(52)에서는 읽어온 i 프레임 j라인 데이터를 제2 메모리상에 순차적으로 저장한다.In the initialization step 50 of FIG. 4, the frame variable i and the line variable j are initialized to 1, and in the reading step 51, the j line data of the i frame is read from the first memory, and the storage step 52 is read. i-frame j-line data is sequentially stored on the second memory.

이어서 상기 프레임변수 i를 1증가시킨 후(53) 증가된 프레임변수 i가 마지막 프레임번호 k보다 크지 않으면, 다른 프레임의 동일 라인번호에 대해 상기 독출단계 (51)및 저장단계(52)를 반복하고, 증가된 프레임변 수 i가 마지막 프레임번호 k보다 크면, 다음 행에 대해서 상기 과정을 반복하도록 한다.Subsequently, after the frame variable i is increased by one (53) and the increased frame variable i is not larger than the last frame number k, the reading step 51 and the storing step 52 are repeated for the same line number of another frame. If the increased frame variable i is greater than the last frame number k, the process is repeated for the next row.

즉, 증가된 프레임변 수 i가 마지막 프레임번호 k보다 크면, 행변수 j를 1증가시키고(55), 프레임 변수 i 를 1로 초기화한 후 증가된 행변수 j가 마지막 행번호 n보다 크지 않으면 다른 행번호에 대해 상기 독출단계(51) 및 저장단계(52)를 반복하고, 증가된 행변수 j가 마지막 행번호 k보다 크면 종료한다(57).That is, if the increased frame variable i is greater than the last frame number k, the row variable j is increased by 1 (55), and if the increased row variable j is not greater than the last row number n after the initialization of the frame variable i to 1, The reading step 51 and the storing step 52 are repeated for the row number, and the process ends when the increased row variable j is greater than the last row number k (57).

이와 같은 과정을 수행하게 되면 제2 메모리에는 하나의 파노라믹 이미지가 저장되게 된다.When such a process is performed, one panoramic image is stored in the second memory.

이어서, 상기 제 1 과정에서 얻은 하나의 파노라믹 이미지를 벡터 양자화하는 제 2 과정에 대한 이해를 돕고저 벡터 양자화에 대한 개념을 살펴보고자 한다.Next, to help understand the second process of vector quantizing one panoramic image obtained in the first process, the concept of low vector quantization will be described.

본 발명에 이용되는 벡터 양자화(Vector Quantization)는 높은 앞축율로 좋은 화질의 영상을 복원할 수 있으며 복호기가 간단하여 하드웨어의 실시간 적용이 용이하다는 장점으로 많이 사용되고 있다. 이 벡터 양자화에 의한 방법은 크게 코드북 생성과정과 생성된 코드북을 이용한 압축과정으로 나뉘는데, 특히 코드북 생성과정은 벡터 양자화 성능을 좌우하는 중요한 과정이다.Vector quantization used in the present invention has been widely used due to the fact that it is possible to reconstruct an image having a good image quality with a high condensation rate, and that the decoder is simple, so that hardware can be easily applied in real time. The vector quantization method is divided into a codebook generation process and a compression process using the generated codebook. In particular, the codebook generation process is an important process that determines the vector quantization performance.

벡터 양자화는 K차원의 유클리디안 공간(euclidean space) RK상의 임의의 벡터를 RK상의 유한한 크기의 부분 집합 Y내에 속하는 대표 벡터(reproduction vector)로 대응시키는 사상 Q로 정의된다.Vector quantization is any vector on the Euclidean space R K in the K dimension. Is a representative vector belonging to a finite size subset Y on R K. It is defined as the mapping Q corresponding to.

상기 수학식 1 에서는 대표 벡터의 집합 즉, 코드북을 나타내며, 인덱스 N은 대표 백터의 수를 나타낸다.In Equation 1 Represents a set of representative vectors, that is, a codebook, and index N represents the number of representative vectors.

입력 벡터를 대표 백터로 대응시킬 때, 두 백터사이의 왜곡을 최소화 하는 것이 최적의 사상이 된다.Input vector Representing vector Distortion between two vectors Minimizing is the optimal idea.

주어진 훈력 백터(training vector)들에 대해 최적의 코드북을 설계하고, 설계된 코드북에서 최적의 대응이 되도록 대표 백터를 찾는 방법으로 LBG 알고리즘이 많이 사용된다. 그리고 왜곡 측도(distortion measure)로는 하기 수학식 2와 같은 자승 오차식이 많이 사용된다.The LBG algorithm is frequently used to design an optimal codebook for a given training vector, and to find a representative vector for an optimal correspondence in the designed codebook. As a distortion measure, a square error formula such as Equation 2 is used.

여기서,는 각기 원 영상 벡터 및 재구성 영상의 벡터를 나타낸다.here, Denote a vector of the original image vector and the reconstructed image, respectively.

이와같이 코드북을 만드는 방법으로는 LBG 알고리즘을 이용하여 어떻게 초기치를 설정하는가에 따라 RANDOM CODES, BINARY-SPLITTING, PNN(pairwise nearest neighbor), CLUSTERING 등으로 나뉜다.In this way, the codebook is divided into RANDOM CODES, BINARY-SPLITTING, pairwise nearest neighbor (PNN), and CLUSTERING depending on how the initial value is set using the LBG algorithm.

즉, 벡터 양자화에서는 블럭 형태나 알고리즘 진행에 약간의 차이는 있지만, 대개의 경우 근본적으로 블럭과 벡터들 사이의 MSE를 계산하여 이 값이 최소가 되는 벡터에 블럭을 소속시켜, 그 벡터의 어드레스로 이 블럭내의 픽셀들을 대치시켜 압축시키는 방식을 취한다. 이 의미는 한 블럭을 대신할 만한 블럭을 코드북에서 찾는데 이때, 왜곡이 가장 적은 것으로 정한다는 것이다.That is, in vector quantization, there is a slight difference in the form of the block and the progress of the algorithm. However, in most cases, the MSE between the block and the vectors is basically calculated and the block is assigned to the vector having the minimum value. It replaces the pixels in this block and compresses them. This means that the codebook looks for a block to replace one block, with the least distortion.

그리고, 벡터 양자화 압축 기법 적용시 압축율은 하기 수학식 3과 같다.In addition, when the vector quantization compression technique is applied, the compression ratio is expressed by Equation 3 below.

상기 수학식 3에서 보는 바와 같이 압축률은 대표벡터 즉, 코드북의 크기의 로그값에 반비례하고, 색수와, 색을 표현하는 비트수, 벡터넓이, 벡터높이에 비례함을 알수 있다.As shown in Equation 3, the compression ratio is inversely proportional to the log value of the representative vector, that is, the size of the codebook, and is proportional to the number of colors, the number of bits representing the color, the vector width, and the vector height.

이어서, 도 5는 본 발명에 이용되는 VQ의 알고리즘을 설명하기 위한 흐름도로서, 도 5는 군집화 알고리즘(CLUSTRIN) 방법에 의한 코드북 생성 알고리즘이다.5 is a flowchart for explaining an algorithm of VQ used in the present invention, and FIG. 5 is a codebook generation algorithm by a clustering algorithm (CLUSTRIN) method.

군집화 알고리즘은 양자화 하려고 하는 신호의 확률 분포 함수가 잘 알려져 있지 않기 때문에 훈련 벡터(training vector)라 불리는 표본 벡터들로 훈련 집합(TS)을 구성하여 이를 군집화(clustering)하는 일종의 순환(iteration)방법으로 코드북을 설계한다.The clustering algorithm is a kind of iteration method of constructing and clustering a training set (TS) with sample vectors called a training vector because the probability distribution function of the signal to be quantized is not well known. Design the codebook.

훈련 벡터들을 미리 설정한 코드워드(codeword)의 갯수 만큼 군집화하여 코드북을 설계하는 것이다.The codebook is designed by clustering the training vectors by a predetermined number of codewords.

이 방법은 최소 왜곡 척도를 가지는 칼라군(color cluster)의 쌍을 연속적으로 집단화 해 나감으로써 더 큰 칼라군들을 형성하며 이 칼라군들의 중심 값으로 팔레트를 구성한다.This method forms larger color groups by successively grouping pairs of color clusters with the least distortion measure and constructs a palette with the center values of these color groups.

본 실시예에서는 집단화 방법을 이용하여 칼라 팔레트를 구성하였으며 수행속도를 빠르게 하기 위하여 적, 녹, 청으로 구성되는 3차원 히스토그램상에 있는 각각의 칼라군을 중심으로 탐색하여 블럭내의 중심 칼라에 대해 가장 작은 왜곡 척도를 갖는 칼라군들을 집단화하였다.In this embodiment, the color palette is composed by using the grouping method. In order to speed up the performance, the color palette is searched for each color group on the three-dimensional histogram composed of red, green, and blue to simulate the center color in the block. Color groups with small distortion measures were grouped.

초기의 코드북 백터는 발생확률이 높은 칼라군을 코드북의 구성 벡터로 입력받아 아래의 과정을 수행한다.The initial codebook vector receives the color group with high probability of occurrence as a component vector of the codebook and performs the following process.

도 5의 흐름도에서 사용된 변수를 설명하자면, TH는 실제 벡터와 코드북 백터간의 왜곡 정도를 나타내며, Nc는 원하고자 하는 코드북 벡터의 최대 갯수를 나타내는 상수이다. 그리고, n은 코드북에 현재까지 저장된 벡터의 갯수이고, i는 훈련 벡터의 인덱스이고, j는 상기 코드북에 저장되어 있는 벡터의 인덱스이다.Referring to the variable used in the flowchart of FIG. 5, TH represents a degree of distortion between the actual vector and the codebook vector, and Nc is a constant representing the maximum number of codebook vectors to be desired. N is the number of vectors stored so far in the codebook, i is the index of the training vector, and j is the index of the vector stored in the codebook.

(510)임계치(TH), 코드북의 최대 갯수(Nc)를 초기화 한다.(510) Initialize the threshold (TH) and the maximum number of codebooks (Nc).

(520)코드북에 현재 까지 저장된 벡터의 갯수 n, 훈련 벡터의 인덱스 i를 0으로 초기화 한다.(520) Initialize the number n of the vectors stored so far in the codebook and the index i of the training vector to 0.

(530)실제 이미지의 칼라 백터(훈력 벡터:TV[i])를 입력받는다.(530) A color vector (train vector: TV [i]) of the actual image is input.

(540)코드북 벡터의 인덱스 j를 0으로 초기화 한다.(540) The index j of the codebook vector is initialized to zero.

(550)코드북의 첫번째 벡터(CV[0])를 입력받는다.(550) The first vector (CV [0]) of the codebook is input.

(560)코드북 백터(CV[j])와 입력된 훈련 벡터(TV[i]) 사이의 왜곡(D)을 구하여 임계치(TH)와 왜곡(D)을 비교한다.A distortion D between the codebook vector CV [j] and the input training vector TV [i] is obtained and the threshold TH and the distortion D are compared.

(570)임계치(TH)보다 왜곡(D)이 작으면, 훈련 벡터는 코드북 벡터와 유사한 것으로 간주하여, 다음 훈련 벡터를 입력받기위해 훈련 벡터 인덱스를 1증가 시킨후(i=i+1), 상기 (3)단계부터 반복한다.If the distortion (D) is smaller than the threshold (TH), the training vector is considered to be similar to the codebook vector, and the training vector index is increased by 1 to receive the next training vector (i = i + 1). Repeat from step (3).

(580)임계치(TH)보다 왜곡(D)이 크면, 훈련 벡터는 현재 코드북 벡터와는 다르므로 코드북 벡터 인덱스를 하나 증가시킨다.(j=j+1)If the distortion (D) is greater than the threshold (TH), the training vector is different from the current codebook vector, and thus increases the codebook vector index by one (j = j + 1).

(590)코드북 내의 다음 벡터가 있는지를 조사하기 위해 현재 코드북에 저장된 갯수 n와 상기 (580)단계의 코드북 벡터 인덱스 j의 크기를 비교하여, 코드북 내에 다음 코드벡터가 있으면(nj), 상기 (650)단계를 수행한다.In order to check whether there is a next vector in the codebook, the number n stored in the current codebook is compared with the size of the codebook vector index j in step 580, and if there is a next code vector in the codebook (nj), the (650) Follow the steps.

(600)코드북 내에 다음 코드벡터가 없을 경우에는(nj), 코드북의 현재 저장된 백터 갯수 n와 코드북의 최대 갯수 Nc를 비교한다.(600) If there is no next code vector in the codebook (nj), then compare the currently stored number n of codebooks with the maximum number Nc of codebooks.

(610)상기 (600)단계의 비교결과, 현재 백터 갯수 n가 최대 벡터 갯수 Nc보다 작으면, 상기 훈련 벡터를 코드북에 저장하고, 코드북의 벡터 갯수를 1증가 시킨후(n=n+1), 상기 (570)단계부터 반복한다.As a result of the comparison in the step (600), if the current vector number n is smaller than the maximum vector number Nc, the training vector is stored in the codebook, and the number of vector of the codebook is increased by one (n = n + 1). Repeat from step 570.

(620)상기 (600)단계의 비교결과, 현재 벡터 갯수 n가 최대 벡터 갯수 Nc보다 크면 운하는 갯수만큼 코드북이 완성됨을 의미하므로 종료한다.As a result of the comparison of the step (600), if the current number of vectors n is greater than the maximum number of vectors Nc, the canal ends because the number of codebooks is completed.

이와 같이 색신호를 값을 일차원 신호로 보는 스칼라 양자화 하는 것 보다, 색신호의 중복성을 이용하여 각 색신호값을 벡터성분으로하여 양자화를 수행하게 되면, 더욱더 좋은 성능을 얻을 수 있다. 즉, 원래 실제 영상이 갖고 있는 색이 65,000가지의 화소값이라면 이것을 256가지의 화소값으로 제한 하여 일정 범위안의 화소값을 256가지 레벨로 매핑하는 코드북을 설계하여, 부호화 과정에서 코드북의 인덱스만을 전송하므로써 압축효율과 전송 효율을 높이게 된다.As described above, rather than scalar quantization of values of color signals as one-dimensional signals, better performance can be obtained by performing quantization using each color signal value as a vector component using redundancy of the color signals. That is, if the original image has 65,000 pixel values, the codebook is designed to map the pixel values within a certain range to 256 levels by limiting them to 256 pixel values, and transmit only the index of the codebook in the encoding process. This increases the compression efficiency and the transmission efficiency.

이어서, 도 6은 본 발명에 따라 파노라믹 이미지를 디스플레이하기 위한 가상 현실시스템의 구성도로서, 본 발명의 장치는 영상 데이터 저장부(60), 파노라믹 이미지 생성부(61)과, VQ처리부(62), 파노라믹 이미지 저장부(63), 제 1 3차원 그래픽 보드(64-1), 제 2 3차원 그래픽 보드(64-2), 제 1 신호 변환기(65-1), 제 2 신호 변환기(65-2), 3차원 음향 처리부(66), 위치 및 방향 추적기(67), 시야각 계산부(68), CPU(69)로 구성된 컴퓨터 시스템과, HMD(70), 송신기(71), 및 입력 장치(72)로 구성되어 있다.6 is a configuration diagram of a virtual reality system for displaying a panoramic image according to the present invention. The apparatus of the present invention includes an image data storage unit 60, a panoramic image generation unit 61, and a VQ. Processing unit 62, panoramic image storage unit 63, first three-dimensional graphics board 64-1, second three-dimensional graphics board 64-2, first signal converter 65-1, first Computer system composed of two signal transducers 65-2, three-dimensional sound processor 66, position and direction trackers 67, viewing angle calculator 68, CPU 69, HMD 70, transmitter 71 ) And an input device 72.

상기 영상 데이터 저장부(60)는 다수의 프레임으로 구분된 영상 데이터들이 정장되어 있으며, 하드 디스크 드라이브(HDD) 혹은 다른 보조 기억장치들이 이용될 수 있다.The image data storage unit 60 is provided with image data divided into a plurality of frames, and a hard disk drive (HDD) or other auxiliary storage devices may be used.

상기 파노라믹 이미지 생성부(61)는 여러개의 프레임으로 구분된 영상 데이터를 입력받아 단일 파노라믹 이미지를 생성해준다.The panoramic image generator 61 receives image data divided into a plurality of frames and generates a single panoramic image.

상기 VQ처리부(62)는 상기 파노라믹 이미지 생성부(61)에서 생성된 단일 파노라믹 이미지를 벡터 양자화로 압축하여 코드북과 코드워드를 생성한다.The VQ processor 62 generates a codebook and a codeword by compressing the single panoramic image generated by the panoramic image generator 61 by vector quantization.

상기 파노라믹 이미지 저장부(63)는 상기 생성된 코드북과 코드워드를 저장하고 있다.The panoramic image storage unit 63 stores the generated codebook and codeword.

상기 제 1 3차원 그래픽 처리부(64-1)는 상기 시야각 계산기(68)로부터 입력되는 사용자의 시점에 따라 대응하는 한 프레임의 영상데이터를 상기 파노라믹 이미지 저장부(63)에 저장된 코드북의 인덱스(N)에 해당하는 코드워드를 읽어와 렌더링 및 텍스춰 매핑하여 좌측 RGB영상신호를 발생한다.The first 3D graphic processor 64-1 indexes the codebook stored in the panoramic image storage 63 with image data of one frame corresponding to the user's viewpoint input from the viewing angle calculator 68. The codeword corresponding to (N) is read, rendered, and texture mapped to generate the left RGB image signal.

상기 제 2 3차원 그래픽 처리부(64-2)는 상기 시야각 계산기(68)로부터 입력되는 사용자의 시점에 따라 대응하는 한 프레임의 영상데이터를 상기 파노라믹 이미지 저장부(63)에 저장된 코드북의 인덱스(N)에 해당하는 코드워드를 읽어와 렌더링 및 텍스춰 매핑하여 우측 RGB영상신호를 발생한다.The second 3D graphic processor 64-2 indexes image data of one frame corresponding to the viewpoint of the user input from the viewing angle calculator 68 to the codebook stored in the panoramic image storage unit 63. The codeword corresponding to (N) is read, rendered, and texture mapped to generate the right RGB image signal.

이때, 3 차원 그래픽에서 파노라믹 이미지를 시점 변화에 대응시키기 위해서 사용되는 기법은 원기둥모양의 좌표축 내측에 파노라믹 이미지를 텍스춰 매핑(texure mapping )한 후, 사용자 헤드의 움직임에 따라 뷰 볼륨(view volum)을 계산해서 해당되는 데이터만을 추출하여 표시해주는 것이다. 이를 위해서 사용자의 머리 방향은 HMD(70)의 센서에서 감지되어 위치 및 방향 추적기(67)를 통해 위치와 방향이 계산된다.In this case, the technique used to correspond to the change in the viewpoint of the panoramic image in the three-dimensional graphics is to texture-map the panoramic image inside the cylindrical coordinate axis, and then the view volume ( view volum) is calculated and only the relevant data is extracted and displayed. To this end, the head direction of the user is detected by the sensor of the HMD 70 and the position and direction are calculated by the position and direction tracker 67.

상기 제 1 및 제2 신호 변환기(65-1, 65-2)는 상기 3차원 그래픽 보드(64-1, 64-2)의 RGB출력을 TV영상신호로 변환하는 신호 변환기이다.The first and second signal converters 65-1 and 65-2 are signal converters for converting RGB outputs of the 3D graphics boards 64-1 and 64-2 into TV video signals.

상기 HMD(70)에서는 상기 신호변환기(65-1, 65-2)의 출력을 입력받아 디스플레이함과 아울러 사용자의 움직임을 검지하는 영상표시 및 움직임을 검출하여 상기 위치 및 방향 추적기(67)로 전달해준다.The HMD 70 receives and displays the outputs of the signal converters 65-1 and 65-2, detects an image display and a movement for detecting a user's movement, and transmits the image to the position and direction tracker 67. Do it.

상기 위치 및 방향 추적기(67)에서는 상기 HMD(70)로부터 사용자의 움직임신호를 입력받아 사용자의 위치 및 방향을 산출하여 상기 시야각 계산부(68)로 전달한다.The position and direction tracker 67 receives a user's motion signal from the HMD 70, calculates the position and direction of the user, and transmits the position and direction to the viewing angle calculator 68.

상기 시야각 계산부(68)에서는 상기 위치 및 방향 추적기(67)로부터 입력된 사용자의 움직임에 따라 파노라믹 이미지의 뷰 볼륨을 산출하여 상기 3차원 그래픽보드(64-1, 64-2)로 출력한다.The viewing angle calculator 68 calculates a view volume of the panoramic image according to the user's movement input from the position and direction tracker 67 and outputs the view volume to the 3D graphics boards 64-1 and 64-2. do.

이때, 상기 시야각 계산부(68)의 뷰 볼륨계산은 사용자 헤드의 각도 변환량을 계산한 후에 이값에 따라 디스플레이상의 픽셀 변화량을 계산하고, 현재 뷰 포인트에 픽셀 변화량을 가산하여 새로운 뷰 포인트를 설정하여 이값에 따라 뷰 볼륨이 계산되어 지는 것이다.In this case, the view volume calculation of the viewing angle calculator 68 calculates an amount of change in the angle of the user head, calculates the amount of pixel change on the display according to this value, and sets a new view point by adding the amount of pixel change to the current view point. Based on this value, the view volume is calculated.

상기 CPU(69)는 소정의 프로그램을 수행하여 시스템을 구성하는 제반 구성요소들을 제어한다.The CPU 69 executes a predetermined program to control various components constituting the system.

입력 장치(72)는 사용자가 가상 현실 세계에서 자유로운 조작을 하기 위한 것으로 조이스틱이나 마우스, 데이터 글로브 등이 이용될 수 있다.The input device 72 is for a user to freely operate in the virtual reality world, and a joystick, a mouse, a data globe, and the like may be used.

상기 HMD(70)에서는 사용자의 방향을 검출하기 위해 위치 및 방향 추적기(67)의 제어신호에 따라 송신기(71)가 무선 신호를 송신하여 상기 HMD(70)내부에 있는 센서가 이를 수신하여 위치 및 방향 추적기(11)로 수신된 신호를 전달하게 되면, 위치 및 방향추적기(67)는 수신된 신호를 분석하여 사용자의 위치와 방향을 검출하는 것이다.In the HMD 70, the transmitter 71 transmits a radio signal according to the control signal of the position and direction tracker 67 to detect the direction of the user, and the sensor inside the HMD 70 receives the position and When the signal received by the direction tracker 11 is transmitted, the position and direction tracker 67 analyzes the received signal to detect the position and direction of the user.

이상과 같이, 다수의 프레임으로 구성된 파노라믹 이미지를 벡터 양자화 하여 디스플레이하게 하는 VQ처리부의 부호화 동작은 하나의 입력 벡터가 부호화되기 위하여 입력되면 코드북의 N개의 대표 벡터와 비교되어 가장 왜곡이 적은 것을 선택하여 양자화하여 하나의 인덱스를 내보내는 것이다.As described above, the encoding operation of the VQ processing unit for vector quantizing and displaying a panoramic image composed of a plurality of frames is compared with the N representative vectors of the codebook when one input vector is input for encoding. Select, quantize, and export one index.

이때, 이러한 관점에서 VQ의 VLSI구조는 방대한 양의 데이터와 계산량, 프로세싱 엘리먼트간의 국부 연결, 데이터 흐름 등으로 규칙성과 모듈성을 가지는 시스톨릭 어레이 구조가 요구되어 지기도 한다.At this point, the VLSI structure of the VQ requires a systolic array structure having regularity and modularity due to the huge amount of data and computation, local connection between processing elements, and data flow.

그리고, 복호화과정은 부호화 과정에서 많은 계산량이 요구되는 것과는 달리 롬과 같은 메모리에 의해 룩업 테이블 형태로 간단히 구현 가능하기도 한다.In addition, the decoding process may be simply implemented in the form of a lookup table by a memory such as a ROM, unlike a large amount of computation required in the encoding process.

이상에서 살펴본 바와 같이 본 발명에 따라 다수의 프레임으로 구분되어 저장된 영상 데이터를 재배열하여 파노라믹 이미지를 생성하고, 벡터 양자화하여 이를 시점에 따라 해당되는 데이터만을 추출하여 프레임을 형성한 후 디스플레이해 주므로써 가상 현실시스템에서 사용자의 시점(view point)에 따라 파노라믹(panoramic) 이미지를 자연스럽게 디스플레이해 줄 수 있는 효과가 있다.As described above, according to the present invention, rearranged image data divided into a plurality of frames to generate a panoramic image, vector quantization, and extract only the corresponding data according to a viewpoint to form a frame and then display the image. As a result, the virtual reality system can display a panoramic image naturally according to the user's view point.

또한, 칼라성분을 벡터 양자화하므로써 몇 개의 대표 벡터만을 저장하는 코드북과 코드워드에 대한 메모리만을 사용하여 메모리 소비를 효과적으로 줄이며, 인덱스만 전송하면 되기 때문에 빠른 전송속도를 갖는 효과가 있다.In addition, by using vector quantization of color components, memory consumption can be effectively reduced by using only a codebook and a memory for codewords storing only a few representative vectors.

Claims (5)

프레임별로 구분되어 각각 저장된 영상을 라인순서 대로 다시 재배열하여 하나의 파노라믹 이미지를 생성하는 제 1 과정과;A first process of generating one panoramic image by rearranging the images divided by frames and storing the stored images in line order; 상기 제 1 과정의 파노라믹 이미지에 대해 벡터 양자화를 실시하여 코드워드와 코드북을 생성하여 메모리에 저장하는 제 2 과정을 포함하여 구성되는 것을 특징으로하는 가상 현실 시스템의 파노라믹 이미지 생성 방법.And a second process of performing vector quantization on the panoramic image of the first process to generate a codeword and a codebook and storing the codeword and the codebook in a memory. 제 1 항에 있어서, 상기 제 1 과정은, 제1 프레임부터 제k 프레임까지 프레임별로 구분되어 저장된 제1 메모리로부터 제1 프레임의 제1 라인부터 제k 프레임의 제n 라인까지 라인 번호순으로 순차적으로 읽어와서 제2 메모리에 저장하여 단일 파노라믹 이미지를 생성하는 어드레스 변환 과정을 통해 이루어지는 것을 특징으로 하는 가상 현실 시스템의 파노라믹 이미지 생성 방법.The method of claim 1, wherein the first process is performed in order of line number from the first memory of the first frame to the n-th line of the k-th frame to the k-th frame of the first memory. A method of generating a panoramic image of a virtual reality system, comprising: performing an address conversion process of reading and storing in a second memory to generate a single panoramic image. 제 1 항에 있어서, 상기 제 2 과정은, RGB칼라 성분을 벡터량으로 하여 실제 영상의 M개의 화소값을 N개의 대표 벡터로 레벨화한 인덱스를 갖는 코드북을 설계하는 과정을 포함하여 구성되는 것을 특징으로하는 가상 현실 시스템의 파노라믹 이미지 생성 방법.The method of claim 1, wherein the second process comprises a process of designing a codebook having an index of leveling M pixel values of an actual image with N representative vectors by using an RGB color component as a vector amount. How to create a panoramic image of a virtual reality system. 영상 데이터 저장수단(60)과;Image data storage means (60); 상기 영상 데이터 저장수단(60)의 여러개의 프레임으로 구분된 영상 데이터를 입력받아 단일 파노라믹 이미지를 생성해주는 파노라믹 이미지 생성수단(61);Panoramic image generating means (61) for receiving image data divided into a plurality of frames of the image data storing means (60) and generating a single panoramic image; 상기 생성된 파노라믹 이미지를 압축하여 코드북과 코드워드를 생성하는 VQ 처리 수단(62);VQ processing means (62) for compressing the generated panoramic image to generate a codebook and codeword; 상기 생성된 코드북과 코드워드를 저장하고 있는 파노라믹 이미지 저장수단(63);A panoramic image storing means (63) for storing the generated codebook and codeword; 사용자의 시점에 따라 대응하는 한 프레임의 영상데이터를 상기 파노라믹 이미지 저장수단(63)으로부터 읽어와 렌더링 및 텍스춰 매핑하여 RGB영상신호를 출력하는 3차원 그래픽처리부(64-1, 64-2);3D graphics processing unit 64-1, 64-2 for reading image data of one frame corresponding to the user's viewpoint from the panoramic image storage means 63, rendering and texture mapping and outputting an RGB image signal ; 상기 3차원 그래픽처리부(64-1, 64-2)의 RGB출력을 TV영상신호로 변환하는 신호변환기(65-1, 65-2);Signal converters 65-1 and 65-2 for converting the RGB output of the three-dimensional graphics processing units 64-1 and 64-2 into TV video signals; 상기 신호변환기(65-1, 65-2)의 출력을 입력받아 디스플레이함과 아울러 사용자의 움직임을 검지하는 영상표시 및 움직임 검출 수단(66);Image display and motion detection means (66) for receiving and displaying the outputs of the signal converters (65-1, 65-2) and detecting a user's movement; 상기 영상표시 및 움직임 검출수단(66)으로부터 사용자의 움직임신호를 입력받아 사용자의 위치 및 방향을 산출하는 위치 및 방향 추적기(67); 및A position and direction tracker 67 which receives a user's motion signal from the image display and motion detection means 66 and calculates the position and direction of the user; And 상기 위치 및 방향 추적기(67)로부터 입력된 사용자의 움직임에 따라 파노라믹 이미지의 뷰 볼륨을 산출하여 상기 3차원 그래픽처리부(64-1, 64-2)로 출력하는 시야각 계산부(78)를 포함하여 구성되는 것을 특징으로하는 가상 현실 시스템의 파노라믹 이미지 생성 장치.The viewing angle calculator 78 calculates a view volume of the panoramic image according to the movement of the user input from the position and direction tracker 67 and outputs the output to the 3D graphics processing units 64-1 and 64-2. Panoramic image generating device of a virtual reality system, characterized in that comprising a. 제 4항에 있어서, 상기 파노라믹 이미지 생성수단(61)이 n개의 행으로 이루어진 k 개의 프레임이 저장된 영상 데이터 저장부(60)로부터 제1 프레임의 제1 라인부터 제k 프레임의 제n 라인까지 라인번호순으로 순차적으로 읽어와서 라인순서로 저장된 단일 파노라믹 이미지를 생성하는 어드레스 변환기능을 갖는 것을 특징으로 하는 가상 현실시스템의 파노라믹 이미지 생성 장치.The nth line of the k th frame from the first line of the first frame from the image data storage unit 60 in which k frames of n rows are stored. And an address conversion function for generating a single panoramic image stored in line order by sequentially reading up to line number order.
KR1019960054143A 1996-11-14 1996-11-14 Method and apparatus for generating panoramic image of virtual reality system KR19980035726A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960054143A KR19980035726A (en) 1996-11-14 1996-11-14 Method and apparatus for generating panoramic image of virtual reality system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960054143A KR19980035726A (en) 1996-11-14 1996-11-14 Method and apparatus for generating panoramic image of virtual reality system

Publications (1)

Publication Number Publication Date
KR19980035726A true KR19980035726A (en) 1998-08-05

Family

ID=66320305

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960054143A KR19980035726A (en) 1996-11-14 1996-11-14 Method and apparatus for generating panoramic image of virtual reality system

Country Status (1)

Country Link
KR (1) KR19980035726A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100460081B1 (en) * 2001-04-06 2004-12-03 (주)이음미디어 A moving picture virtual reality image construction system and a method thereof
US10827160B2 (en) 2016-12-16 2020-11-03 Samsung Electronics Co., Ltd Method for transmitting data relating to three-dimensional image

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100460081B1 (en) * 2001-04-06 2004-12-03 (주)이음미디어 A moving picture virtual reality image construction system and a method thereof
US10827160B2 (en) 2016-12-16 2020-11-03 Samsung Electronics Co., Ltd Method for transmitting data relating to three-dimensional image

Similar Documents

Publication Publication Date Title
CN111542861A (en) System and method for rendering an avatar using a depth appearance model
US9934602B2 (en) System, method and device for three-dimensional modeling
JP4384813B2 (en) Time-dependent geometry compression
JP2020529693A (en) Systems and methods for real-time complex character animation and interaction
JP2004234285A (en) Device and method for compressing texture image, device and method for extracting texture image, data structure, and storage medium
US6906714B2 (en) Accelerated visualization of surface light fields
US11270468B1 (en) Joint color image and texture data compression
Shopf et al. March of the Froblins: simulation and rendering massive crowds of intelligent and detailed creatures on GPU
KR20010113681A (en) 3D transformation matrix compression and decompression
Livny et al. A GPU persistent grid mapping for terrain rendering
CN116977522A (en) Rendering method and device of three-dimensional model, computer equipment and storage medium
EP2065854B1 (en) posture dependent normal vectors for texture mapping
CN114255313A (en) Three-dimensional reconstruction method and device for mirror surface object, computer equipment and storage medium
CN116843841A (en) Large-scale virtual reality system based on grid compression
US20210368157A1 (en) Methods, systems, and media for generating an immersive light field video with a layered mesh representation
WO2021245326A1 (en) A method, an apparatus and a computer program product for video encoding and video decoding
KR19980035726A (en) Method and apparatus for generating panoramic image of virtual reality system
US11647193B2 (en) Adaptive range packing compression
KR20010003022A (en) Apparatus for Visual Navigation interface of Large-scale Volume Data
US6919889B2 (en) Compression of surface light fields
KR19980023727A (en) Virtual Reality System for Displaying Panoramic Images
CN115035231A (en) Shadow baking method, shadow baking device, electronic apparatus, and storage medium
Lei et al. Design of 3d modeling face image library in multimedia film and television
US11769299B1 (en) Systems and methods for capturing, transporting, and reproducing three-dimensional simulations as interactive volumetric displays
CN116051746A (en) Improved method for three-dimensional reconstruction and neural rendering network

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application