KR101019558B1 - Method for Compression in System for Editing Virtual Reality - Google Patents

Method for Compression in System for Editing Virtual Reality Download PDF

Info

Publication number
KR101019558B1
KR101019558B1 KR1020090040739A KR20090040739A KR101019558B1 KR 101019558 B1 KR101019558 B1 KR 101019558B1 KR 1020090040739 A KR1020090040739 A KR 1020090040739A KR 20090040739 A KR20090040739 A KR 20090040739A KR 101019558 B1 KR101019558 B1 KR 101019558B1
Authority
KR
South Korea
Prior art keywords
virtual reality
data
reality content
matrix
size
Prior art date
Application number
KR1020090040739A
Other languages
Korean (ko)
Other versions
KR20100034686A (en
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 KR20100034686A publication Critical patent/KR20100034686A/en
Application granted granted Critical
Publication of KR101019558B1 publication Critical patent/KR101019558B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Architecture (AREA)
  • Geometry (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은 가상현실 편집 프로그램 구동 시 높은 압축비로 가상현실 콘텐츠 데이터를 저장하여 파일 크기를 줄임으로써 웹 서버에 전송된 가상현실 콘텐츠의 리얼리티를 증가시킬 수 있는 가상현실 편집 시스템에서의 압축 방법에 관한 것으로, 3차원 애플리케이션으로 제작된 3차원 모델 데이터를 읽어들여 가상현실 콘텐츠로 생성하는 단계, 상기 가상현실 콘텐츠의 내부정보 데이터를 무손실 압축하는 단계 및 상기 가상현실 콘텐츠의 외부정보 데이터를 손실 압축하는 단계를 포함한다.The present invention relates to a compression method in a virtual reality editing system that can increase the reality of the virtual reality content transmitted to a web server by reducing the file size by storing the virtual reality content data at a high compression ratio when the virtual reality editing program is running. Reading the 3D model data produced by the 3D application and generating the virtual reality content, losslessly compressing the internal information data of the virtual reality content, and lossy compressing the external information data of the virtual reality content. Include.

본 발명에 따르면, 3차원 모델 데이터의 내부 데이터는 무손실 압축 알고리즘을 사용하여 압축을 하고, 외부 데이터는 손실 압축 알고리즘을 사용하여 압축함으로써, 보편화 된 하드웨어 사양에서도 가상현실 콘텐츠를 초당 수십 프레임 이상의 속도로 렌더링할 수 있으며, 높은 압축비로 콘텐츠를 저장하여 파일 크기를 줄일 수 있어서 리얼리티를 증가시킬 수 있는 가상현실 편집 시스템에서의 압축 방법을 제공할 수 있다.According to the present invention, the internal data of the 3D model data is compressed using a lossless compression algorithm, and the external data is compressed using the lossy compression algorithm, so that virtual reality content can be compressed at a rate of several tens of frames per second or more even in a generalized hardware specification. It is possible to provide a compression method in a virtual reality editing system that can render and store content at a high compression ratio, thereby reducing file size and increasing reality.

Description

가상현실 편집 시스템에서의 압축 방법{Method for Compression in System for Editing Virtual Reality}Method for Compression in System for Editing Virtual Reality

본 발명은 가상현실 편집 시스템에서의 압축 방법에 관한 것으로, 상세하게는 가상현실 편집 프로그램 구동 시 높은 압축비로 가상현실 콘텐츠 데이터를 저장하여 파일 크기를 줄임으로써 웹 서버에 전송된 가상현실 콘텐츠의 리얼리티를 증가시킬 수 있는 가상현실 편집 시스템에서의 압축 방법에 관한 것이다.The present invention relates to a compression method in a virtual reality editing system. Specifically, the virtual reality content data is stored at a high compression ratio when the virtual reality editing program is driven, thereby reducing the file size to improve the reality of the virtual reality content transmitted to the web server. A compression method in a virtual reality editing system that can be increased.

기존에는 HTML(Hyper Text Markup Language)을 기반으로 하는 2차원적이고 정적인 이미지 및 텍스트가 인터넷 문서의 주를 이루었으나, 최근 들어 자바(Java)와 액티브 엑스(Active X) 및 VRML을 이용하여 사용자와 상호작용이 가능한 3차원 영상이 인터넷의 주 영역으로 확대되고 있다.In the past, two-dimensional and static images and text based on Hyper Text Markup Language (HTML) have been the mainstay of Internet documents. However, in recent years, users can use Java, ActiveX, and VRML to communicate with users. Interactive three-dimensional images are expanding into the Internet.

이러한 상호작용이 가능한 3차원 영상은 인터넷을 통하여 웹(Web)상에 적용되는데, 3차원 영상을 직접 웹상에서 작동시키기 위해서는 먼저 3D 모델링 프로그램으로 모델화시키고, 웹에서 구동 가능한 형태로 변환시키게 된다.This interactive 3D image is applied on the web through the Internet. In order to operate the 3D image directly on the web, the 3D image is first modeled by a 3D modeling program and converted into a form that can be driven on the web.

그런데, 3차원 영상을 현실감 있게 표현하기 위해 세밀하게 표현하고, 재질까지 실제와 비슷하게 입히면 콘텐츠(Contents) 데이터 파일의 크기가 매우 커지게 된다. 인터넷이라는 매체가 가지는 온라인이라는 특성상 파일의 크기가 커지면 전송속도의 한계 때문에 사용자가 느끼는 반응성은 느려지게 되고 해당 페이지는 외면받게 된다.However, when the 3D image is expressed in detail in order to realistically express and even the material is coated in a similar manner to the reality, the size of the contents data file becomes very large. Due to the nature of the online medium of the Internet, the larger the file size, the lower the responsiveness the user feels due to the limitation of the transmission speed, and the corresponding page is turned off.

이에 대한 해결책으로 용량을 줄이기 위해 표현을 간소화하고, 재질을 평범하게 바꾸는 등의 퀄리티(Quality)를 낮추거나, 렌더링 주사 비율(Frame Rate)을 눈이 인지할 수 있는 30프레임 이하로 낮추게 되는데, 이는 인터넷상에서 디스플레이되는 3차원 영상의 리얼리티가 떨어지는 문제점이 있다.The solution is to reduce the quality, such as simplification of expression, to change the material in order to reduce the capacity, or to lower the rendering frame rate below 30 frames that can be perceived by the eyes. There is a problem that the reality of the three-dimensional image displayed on the Internet is falling.

상술한 문제점을 해결하기 위한 본 발명의 목적은, 가상현실 콘텐츠 데이터의 내부 데이터는 무손실 압축 알고리즘을 사용하여 압축을 하고, 외부 데이터는 손실 압축 알고리즘을 사용하여 압축함으로써, 보편화 된 하드웨어 사양에서도 가상현실 콘텐츠를 초당 수십 프레임 이상의 속도로 렌더링할 수 있으며, 높은 압축비로 가상현실 콘텐츠를 저장하여 파일 크기를 줄일 수 있어서 리얼리티를 증가시킬 수 있는 가상현실 편집 시스템에서의 압축 방법을 제공하는 것이다.An object of the present invention for solving the above problems is that the internal data of the virtual reality content data is compressed using a lossless compression algorithm, and the external data is compressed using the lossy compression algorithm, so that even in the generalized hardware specifications It is possible to render content at a rate of more than a few tens of frames per second, and to provide a compression method in a virtual reality editing system that can increase the reality by reducing the file size by storing the virtual reality content at a high compression ratio.

상기 목적을 달성하기 위한 본 발명의 가상현실 편집 시스템에서의 압축 방법은, (a) 3차원 애플리케이션으로 제작된 3차원 모델 데이터를 읽어들여 가상현실 콘텐츠로 생성하는 단계, (b) 상기 가상현실 콘텐츠의 내부정보 데이터를 무손실 압축하는 단계 및 (c) 상기 가상현실 콘텐츠의 외부정보 데이터를 손실 압축하는 단계를 포함하는 가상현실 편집 시스템에서의 압축 방법을 제공한다.Compression method in the virtual reality editing system of the present invention for achieving the above object, (a) reading the three-dimensional model data produced by the three-dimensional application to create a virtual reality content, (b) the virtual reality content Lossless compression of the internal information data of and (c) Lossless compression of the external information data of the virtual reality content provides a compression method in a virtual reality editing system.

상기 (b) 단계는, (b1) 상기 가상현실 콘텐츠의 내부정보 데이터를 LZ77 알고리즘으로 압축하는 단계, (b2) 상기 압축된 데이터를 호프만 코딩으로 압축하는 단계를 포함할 수 있다.The step (b) may include (b1) compressing the internal information data of the virtual reality content using an LZ77 algorithm, and (b2) compressing the compressed data by Huffman coding.

상기 (c) 단계는, (c1) 가상현실 콘텐츠의 외부 데이터를 소정 크기의 행렬로 나누어 각각 블록을 형성하는 단계, (c2) 상기 각 블록의 행렬 데이터를 이산 코사인 변환하는 단계, (c3) 상기 각 이산 코사인 변환된 행렬 데이터를 양자화하 는 단계, (c4) 상기 각 양자화된 행렬 데이터를 지그재그 스캐닝하는 단계, (c5) 상기 지그재그 스캐닝 된 데이터를 호프만 코딩으로 압축하는 단계를 포함할 수 있다.In the step (c), (c1) dividing the external data of the virtual reality content into a matrix having a predetermined size to form a block, (c2) discrete cosine transforming matrix data of each block, (c3) Quantizing each discrete cosine transformed matrix data, (c4) zigzag scanning the quantized matrix data, and (c5) compressing the zigzag scanned data with Hoffman coding.

상기 (c1) 단계는, (c11) 사용자에 의해 기 설정된 각 블록 행렬의 크기를 설정파일에서 읽어들이는 단계, (c12) 상기 기 설정된 각 블록 행렬의 크기로써 가상현실 콘텐츠의 외부 데이터를 나누어 각각 블록을 형성하는 단계를 포함할 수 있다.In the step (c1), (c11) reading the size of each block matrix preset by the user from a configuration file, (c12) dividing the external data of the virtual reality content by the size of each preset block matrix. Forming a block.

상기 (c) 단계는, 적어도 하나 이상의 행렬 크기에 대하여 상기 (c1) 내지 (c5)의 단계를 반복하는 단계, 상기 각 행렬 크기로써 반복하여 압축된 데이터의 크기를 비교하여 가장 크기가 작은 압축 데이터 및 행렬의 크기를 선택하는 단계, 상기 선택된 압축 데이터의 헤더에 상기 압축에 사용된 행렬의 크기를 기록하여 저장하는 단계를 포함할 수 있다.In the step (c), repeating the steps (c1) to (c5) with respect to at least one matrix size, comparing the sizes of the compressed data repeatedly repeated with the respective matrix sizes, and having the smallest compressed data. And selecting the size of the matrix, and recording and storing the size of the matrix used for compression in the header of the selected compressed data.

상술한 바와 같이 본 발명에 따르면, 3차원 모델 데이터의 내부 데이터는 무손실 압축 알고리즘을 사용하여 압축을 하고, 외부 데이터는 손실 압축 알고리즘을 사용하여 압축함으로써, 보편화 된 하드웨어 사양에서도 가상현실 콘텐츠를 초당 수십 프레임 이상의 속도로 렌더링할 수 있으며, 높은 압축비로 콘텐츠를 저장하여 파일 크기를 줄일 수 있어서 리얼리티를 증가시킬 수 있는 가상현실 편집 시스템에서의 압축 방법을 제공할 수 있다.As described above, according to the present invention, the internal data of the three-dimensional model data is compressed using a lossless compression algorithm, and the external data is compressed using the lossy compression algorithm, so that virtual reality content can be stored in tens of seconds per the generalized hardware specification. It is possible to provide a compression method in a virtual reality editing system capable of rendering at a speed higher than a frame, and storing content at a high compression ratio to reduce file size, thereby increasing reality.

이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세하게 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention.

도 1은 본 발명의 일실시예에 따른 가상현실 편집 시스템을 나타내는 블록도, 도 2는 본 발명의 일실시예에 따른 가상현실 콘텐츠 생성부를 나타내는 블록도, 도 3은 본 발명의 일실시예에 따른 가상현실 콘텐츠 생성부가 사용자 단말기에 디스플레이되는 상태를 나타내는 예시도이다.1 is a block diagram showing a virtual reality editing system according to an embodiment of the present invention, Figure 2 is a block diagram showing a virtual reality content generating unit according to an embodiment of the present invention, Figure 3 is an embodiment of the present invention FIG. 3 is an exemplary diagram illustrating a state in which a virtual reality content generating unit is displayed on a user terminal.

본 발명의 일실시예에 따른 가상현실 편집 시스템은, 도 1과 도 2에 나타낸 바와 같이, 3차원 애플리케이션으로 제작된 3차원 모델 데이터(160)를 읽어들여 가상현실 콘텐츠로 생성시키는 가상현실 콘텐츠 생성부(150)가 구비되는 사용자 단말기(100) 및 가상현실 콘텐츠 생성부(150)를 통하여 생성된 가상현실 콘텐츠를 전송받아 저장시키는 웹 서버(200)를 포함한다.In the virtual reality editing system according to an embodiment of the present invention, as shown in FIGS. 1 and 2, virtual reality content generation is performed by reading three-dimensional model data 160 produced by a three-dimensional application and generating virtual reality content. And a web server 200 for receiving and storing the virtual reality content generated through the user terminal 100 and the virtual reality content generation unit 150 provided with the unit 150.

사용자 단말기(100)는 인터넷(300)에 접속할 수 있는 인터넷 익스플로워 등의 웹브라우저(110)가 구비되며, 콘텐츠 등의 데이터가 임시 저장되는 임시저장부(130)가 구비된다.The user terminal 100 is provided with a web browser 110 such as an internet explorer capable of accessing the internet 300, and has a temporary storage unit 130 for temporarily storing data such as content.

여기서, 가상현실 콘텐츠 생성부(150)는 소프트웨어 형태로 사용자 단말기(100)에 설치되는 것으로, 3차원 애플리케이션으로 제작된 3차원 모델 데이터(160)를 읽어들여 웹(Web) 상에서 구동할 수 있도록 편집(Editing) 할 수가 있다.Here, the virtual reality content generating unit 150 is installed in the user terminal 100 in the form of software, and edits the 3D model data 160 produced by the 3D application to be driven on the web. (Editing)

가상현실 콘텐츠 생성부(150)는, 도 2에 나타낸 바와 같이, 3차원 엔진(151), 오브젝트 파일 생성부(155), html 파일 생성부(156)로 구성되어 진다.As shown in FIG. 2, the virtual reality content generating unit 150 includes a three-dimensional engine 151, an object file generating unit 155, and an html file generating unit 156.

3차원 엔진(151)은 오픈지엘(openGL) 기반으로 모든 라이브러리와 정적연결로 관계된 공용 라이브러리(152), 오픈지엘 래퍼 및 각종 오브젝트에 대해 정의된 오픈지엘 구현부(153)로 구성되어있다.The 3D engine 151 is composed of a common library 152, an OpenGL wrapper, and an OpenGL implementation unit 153 defined for various objects related to all libraries and open links based on OpenGL.

공용 라이브러리(152)는 수학(선형대수)관련 함수 및 클래스, 자료구조 클래스들 및 그 밖에 유틸리티 함수 및 클래스로 구성되어 시스템 전반에 걸쳐 정적으로 연결된다.The common library 152 is composed of mathematical (linear algebra) related functions and classes, data structure classes, and other utility functions and classes, and is statically linked throughout the system.

오픈지엘 구현부(153)는 공용 라이브러리(153)에서 정의된 최소단위 클래스를 포함하여 기하학적 엔티티(Entity), 텍스쳐 이미지, 질감 등과 같이 하나의 장면을 구성하는 클래스들과 이를 최적으로 배치하여 화면상에 표현해주는 파이프라인, 그 밖의 유틸리티 클래스 등으로 구성된다.OpenGL implementation unit 153 includes the minimum unit class defined in the common library 153, and the classes constituting a single scene such as geometric entities, texture images, textures and the like optimally placed on the screen It consists of a pipeline, other utility classes, and so on.

그래서, 오픈지엘에서 지원하는 기능 외에도 특수한 변환을 필요로 하는 경우, 이와 같은 수식변환을 따르는 함수를 구성하여 호출에 의한 기능을 추가로 제작한다. Therefore, if a special conversion is required in addition to the functions supported by OpenGL, a function by following the above formula conversion is configured to make additional functions by calling.

이는 오픈지엘의 기본 라이브러리에는 포함되지는 않지만 동일한 변환식을 사용하므로 라이브러리로의 인식이 가능한데, 이렇게 구성한 공용 라이브러리(152)들을 오픈지엘에 접목시킴으로써 3차원 엔진(151)을 구성한다.This is not included in OpenGL's basic library, but it can be recognized as a library because it uses the same conversion formula. The 3D engine 151 is constructed by integrating the common libraries 152 configured to OpenGL.

오브젝트 파일 생성부(155)는 3차원 엔진(151)의 사용자 인터페이스(User Interface)에 해당되며, 3차원 엔진(151)에 의해 편집된 3차원 모델 데이터(160)와 트리거 액션 및 이벤트를 저장하여 오브젝트 파일을 생성한다.The object file generator 155 corresponds to a user interface of the 3D engine 151, and stores the 3D model data 160 edited by the 3D engine 151, trigger actions, and events. Create an object file.

그리고, 오브젝트 파일 실행기(미도시)는 웹서버에 저장되어 게시된 오브젝트 파일을 전송받아 실행될 수 있도록 한다. 상기 오브젝트 파일 실행기는 본 발명에 따른 가상 현실 편집 시스템에서 생성된 오브젝트 파일을 읽어들여서 사용자의 브라우저에서 임베드된 형태로 실행하는 모듈이다.In addition, the object file executor (not shown) may be executed by receiving the posted object file stored in the web server. The object file executor is a module that reads an object file generated in the virtual reality editing system according to the present invention and executes the object file in an embedded form in a user's browser.

html 파일 생성부(156)는 웹 브라우저(110)에 임베디드(Embedded)된 상태로 동작하며, 오브젝트 파일을 임베드(Embed) 하는 html(hypertext markup language)을 생성시킨다. 즉, 웹 서버에 게시된 오브젝트 파일을 전송받아, 실행되도록 하기 위하여 오브젝트 파일 생성부(155)를 호출하는 html 스크립트를 생성한다.The html file generator 156 operates while being embedded in the web browser 110 and generates html (hypertext markup language) for embedding the object file. That is, an html script that calls the object file generator 155 is generated to receive and execute the object file posted on the web server.

그리고, 본 발명의 일실시예에 따른 가상현실 콘텐츠 생성부(150)는 소프트웨어 형태로 사용자 단말기(100)에 설치되어, 사용자 단말기(100)로 디스플레이된다.In addition, the virtual reality content generating unit 150 according to an embodiment of the present invention is installed in the user terminal 100 in the form of software and displayed on the user terminal 100.

가상현실 콘텐츠 생성부(150)는, 도 3에 나타낸 바와 같이, 메뉴(Menu; 400), 모델 뷰어(Model Viewer; 500), 장면 그래프(Scene Graph; 600), 액션/이벤트 트리(Action/Event Tree; 700), 오브젝트 특성(Object Properties; 800) 및 이벤트 맵(Event Map; 900)으로 구성된다.As shown in FIG. 3, the virtual reality content generating unit 150 includes a menu 400, a model viewer 500, a scene graph 600, and an action / event tree. Tree 700, Object Properties 800, and Event Map 900.

메뉴(400)는 메인(Main) 메뉴, 액션/이벤트(Action/Event) 메뉴, 플레이백(Playback) 메뉴, 프레임(Frame) 메뉴, 디폴트 카메라(Default Camera) 메뉴, 로테이트(Rotate) 메뉴, 줌(Zoom) 메뉴, 뷰(View) 메뉴 등이 구성된다.The menu 400 includes the main menu, action / event menu, playback menu, frame menu, default camera menu, rotate menu, zoom ( Zoom menu, View menu, etc. are configured.

메인 메뉴는 새로운 작업 프레임을 설정하고, 3차원 모델 데이터(160) 파일을 읽어들인다. 그리고, 현재 작업 중인 창을 종료하거나, 현재 작업중인 파일을 저장시키며, 저장된 가상현실 콘텐츠를 웹상에서 볼 수 있도록 인터넷 익스플로워 등의 웹브라우저(110)와 연결되도록 한다.The main menu sets up a new work frame and reads in the 3D model data 160 file. In addition, the current work window is terminated or the currently working file is stored, and the connected virtual browser is connected to a web browser 110 such as an internet explorer so that the stored virtual reality content can be viewed on the web.

액션/이벤트 메뉴는 3차원 모델 데이터(160) 등의 모델의 움직임(Movement), 가시성(Visibility), 카메라(Camera), 사운드(Sound) 등을 정의하며, 정의된 액션을 적절한 이벤트에 의해 마우스 클릭(Mouse Click), 키스트로크(Keystroke), 월드 메시지(World Message), 인터널 이벤트(Internal Event) 등을 통하여 제어할 수 있게 해준다. 그리고, 액션과 이벤트를 트리거(Trigger)로 묶어주는 기능을 하며, 지정된 트리거를 실행시킨다.The action / event menu defines the movement, visibility, camera, sound, etc. of the model, such as the 3D model data 160, and clicks the defined action with an appropriate event. It can be controlled through (Mouse Click), Keystroke, World Message, Internal Event, etc. It also binds actions and events to a trigger and executes the specified trigger.

플레이백 메뉴는 3차원 애니메이션(Animation)을 재생하거나 일시중지 또는 정지시키며, 3차원 애니메이션을 처음 또는 마지막으로 되돌릴 수 있다.The playback menu plays, pauses, or stops the 3D animation, and the 3D animation can be returned to the beginning or the end.

프레임 메뉴는 3차원 모델 데이터(160)의 편집을 쉽게 할 수 있도록 시점 및 좌표를 변환시켜준다.The frame menu converts viewpoints and coordinates so that the 3D model data 160 can be easily edited.

또한, 3차원 모델 데이터(160)를 화면 중점으로 이동시킬 수 있으며, 3차원 모델 데이터(160)의 화면 전환 시 부드럽게 전환되도록 해준다.In addition, the 3D model data 160 may be moved to the screen center point, and the 3D model data 160 may be smoothly changed when the screen is changed.

디폴트 카메라 메뉴는 카메라의 좌표를 기본적으로 설정된 좌표로 변환시켜주며, 카메라의 시점 좌표를 X-Z 평면, X-Y 평면 또는 Y-Z 평면으로 변환시켜 주며, 파이(π) 평면으로도 변환시켜 준다.The default camera menu converts the camera's coordinates to the default coordinates, converts the camera's viewpoint to the X-Z plane, the X-Y plane, or the Y-Z plane, and also the pi (π) plane.

로테이트 메뉴는 모델을 X, Y 및 Z 축으로 로테이션시켜주며, X축 방형으로 15도 회전, Y축 방향으로 15도 회전 또는 Z축 방향으로 15도 회전시킬 수가 있다.The rotate menu rotates the model in the X, Y, and Z axes, and can rotate 15 degrees in the X-axis rectangle, 15 degrees in the Y-axis, or 15 degrees in the Z-axis.

줌 메뉴는 모델의 줌인/아웃(Zoom In/Out) 또는 화면에 알맞게 피트 스크린(Fit Screen) 시킬 수가 있다. 아울러, 모델을 5% 확대 또는 축소할 수 있다. The zoom menu can be used to zoom in / out the model or fit screen to fit the screen. In addition, the model can be scaled up or down by 5%.

뷰 메뉴는 모델 뷰어(500), 장면 그래프(600), 액션/이벤트 트리(700), 오브젝트 특성(800) 및 이벤트 맵(900)을 구성하는 윈도우(Windows)를 활동 또는 비활성 되도록 한다.The view menu enables or disables the windows constituting the model viewer 500, the scene graph 600, the action / event tree 700, the object properties 800, and the event map 900.

모델 뷰어(500)는 웹서버(200)에서 다운로드 받은 가상현실 콘텐츠가 디스플레이되며 또한 3차원 모델 데이터(160)가 변환된 가상현실 콘텐츠가 디스플레이된다.The model viewer 500 displays the virtual reality content downloaded from the web server 200 and displays the virtual reality content converted from the 3D model data 160.

장면 그래프(600)는 읽어들인 3차원 모델 데이터(160)의 오브젝트 트리(Object Tree), 카메라(Camera), 라이트(Light), 물질 리스트(Material List), 맵 특성(Map Properties), 텍스쳐 이미지(Texture Images) 및 사운드 정보를 나타낸다.The scene graph 600 may include an object tree, a camera, a light, a material list, a map property, and a texture image of the read 3D model data 160. Texture Images) and sound information.

오브젝트 트리 정보에서는 3차원 모델 데이터(160)의 오브젝트 정보를 열거해 준다. 오브젝트를 선택하면 모델 뷰어(500)에 해당하는 3차원 모델 데이터(160)가 활성화된다.The object tree information enumerates object information of the 3D model data 160. When the object is selected, the 3D model data 160 corresponding to the model viewer 500 is activated.

아울러, 오브젝트 트리에서는 해당 오브젝트의 액션/이벤트, 쇼/하이드(Show/Hide) 및 쉐이드 모드(Shade Mode)를 설정할 수 있으며, 오브젝트 선택시 페이드인/아웃(Fade In/Out) 액션을 제공해준다.In addition, in the object tree, you can set the action / event, show / hide, and shade mode of the object, and provide a fade in / out action when selecting an object.

카메라 정보에서는 3차원 모델 데이터(160)를 관찰할 수 있는 카메라를 설정 할 수 있게 한다. 기본적인 카메라는 전방(front), 후방(rear), 왼쪽(left), 오른쪽(right), 상부(top) 및 하부(bottom)로 구성되고, 해당 카메라를 선택시에는 카메라 특성(Camera Properties)이 활성화된다.In the camera information, it is possible to set a camera that can observe the 3D model data 160. The basic camera consists of front, rear, left, right, top and bottom, and the camera properties are activated when the camera is selected. do.

카메라 특성은 3차원 모델 데이터(160)의 관측 카메라의 타입(Type), 투사(Projection), 위치(Position), 시계 범위(Field Of View; Fov), 거리(Distance) 및 이동 제한(Movement restrict)을 설정한다.Camera characteristics include the type, projection, position, field of view (Fov), distance, and movement restrict of the observation camera of the three-dimensional model data 160. Set.

라이트 정보는 3차원 모델 데이터(160)의 라이트 정보를 나타내어 준다. 아울러, 3ds max에서 제공되는 타켓 스폿(Target spot), 프리 스폿(Free spot), 타겟 다이렉트(Target Direct), 프리 다이렉트(Free Direct), 옴니 스카이라이트(Omni Skylight)를 기본적으로 제공하고 있다.The light information represents the light information of the 3D model data 160. In addition, Target Spot, Free Spot, Target Direct, Free Direct, and Omni Skylight provided by 3ds max are provided by default.

물질 리스트 정보는 3차원 모델 데이터(160)의 물질 리스트 정보를 나타내며, 사용자 임의의 물질로 편집(Editing) 할 수 있다.The substance list information represents the substance list information of the 3D model data 160 and can be edited by a user arbitrary substance.

아울러, 물질(Material) 선택시 오브젝트(Object)의 컬러(Color) 값 변환 액션을 제공한다. 참고로, 물질은 3차원 모델 데이터(160)를 구성하는 표면의 질감을 표현해 주는 중요한 기능을 한다.In addition, it provides a color value conversion action of an object when selecting a material. For reference, the material has an important function of expressing the texture of the surface constituting the 3D model data 160.

텍스쳐 이미지 정보는 3차원 모델 데이터(160)에 사용된 텍스쳐 이미지 리스트와 특성을 제공해 준다. 텍스쳐 이미지 특성은 선택된 이미지의 정보 및 편집 기능과 해당 이미지를 다른 이미지로 변환하는 기능을 수행한다. 예를 들면, 이미지 스켈링(Image Scaling), 퀄리티(Quality), 사이즈(Size), 줌인/아웃 등의 기능을 수행한다.The texture image information provides a texture image list and characteristics used for the 3D model data 160. The texture image feature performs information and editing of the selected image and converts the image into another image. For example, it performs functions such as image scaling, quality, size, zoom in / out, and the like.

텍스쳐 이미지 리스트는 3차원 모델 데이터(160)에 사용된 이미지 리스트를 미리보기(PreView) 한다.The texture image list previews an image list used for the 3D model data 160.

액션/이벤트 트리(700)에서 액션 트리는 움직임, 가시성, 카메라, 사운드의 설정 값으로 구성된다.In the action / event tree 700, the action tree consists of setting values of motion, visibility, camera, and sound.

움직임(Movememt)은 오브젝트의 스켈링(Scaling), 로테이션(Rotation), 트랜스레이션(Translation) 및 콤바인드(Combined)의 설정을 이벤트와 연동을 시킨다.Movememt associates Scaling, Rotation, Translation, and Combined settings of objects with events.

가시성(Visibility)은 오브젝트의 체인지 컬러(Change Color), 페이드인/아웃(Fade In/Out)의 설정을 이벤트와 연동을 시킨다.Visibility links the change color and fade in / out settings of an object with events.

카메라(Camera)는 카메라의 시점을 이벤트에 연동시켜 주며, 사운드(Sound)는 오브젝트의 사운드를 이벤트에 연동시켜 준다.The camera associates the camera's viewpoint with the event, and the sound associates the object's sound with the event.

액션/이벤트 트리(700)에서 이벤트 트리는 액션을 마우스(Mouse), 키스트로크(Keystroke), 플레이백 컨트롤(Playback Control), 월드 메시지(World Message) 및 인터널 이벤트(Internal Event)와 연결하여 다양한 설정의 이벤트를 제공한다.In the action / event tree 700, the event tree associates an action with a mouse, keystroke, playback control, world message, and internal event. Provides an event.

이때, 하나의 액션은 하나 이상의 이벤트와 링크(Link)가 되어야 하며, 액션(Action)은 링크된 특정한 이벤트가 발생하였을 때에 이루어지게 된다.At this time, one action should be linked with one or more events, and an action is performed when a specific linked event occurs.

오브젝트 특성(800)은 선택된 오브젝트의 네임(Name), 트랜스폼(Transform), 트랜스레이션(Translation), 로테이션(Rotation), 스케일(Scale), 물질 레퍼런스(Material reference)의 정보를 제공해 준다.The object property 800 provides information of a name, a transform, a translation, a rotation, a scale, and a material reference of the selected object.

하나의 3차원 모델 데이터(160)는 다양한 오브젝트로 구성되며, 선택된 오브젝트의 정보를 보기 위해서는 오브젝트 특성(800)이 필요하다.One three-dimensional model data 160 is composed of a variety of objects, the object properties 800 is required to view the information of the selected object.

이벤트 맵(900)은 사용자에 의해 만들어진 3차원 모델 데이터(160)의 액션과 이벤트를 연결하는 기능을 수행한다. 타임 스팬(Time span) 시스템을 도입하여 입력된 시간 안에 액션/이벤트를 서서히 진행하며, 단위는 1/1000초(millisec)이다.The event map 900 performs a function of connecting the event and the action of the 3D model data 160 made by the user. The time span system is introduced and the action / event is gradually progressed within the input time. The unit is 1/1000 second (millisec).

생성된 이벤트 맵은 파이어(Fire) 명령에 의해서 실행시킬 수 있다. The generated event map can be executed by a Fire command.

도 4는 본 발명의 일실시예에 따른 가상현실 편집 시스템에서의 압축 방법을 나타내는 플로우차트, 도 5는 본 발명의 일실시예에 따른 LZ77 압축 알고리즘을 나타내는 예시도, 도 6은 본 발명의 일실시예에 따른 호프만 코딩 알고리즘을 나타내는 예시도이다.4 is a flowchart illustrating a compression method in a virtual reality editing system according to an embodiment of the present invention, FIG. 5 is an exemplary view showing an LZ77 compression algorithm according to an embodiment of the present invention, and FIG. 6 is an embodiment of the present invention. An exemplary view showing a Hoffman coding algorithm according to an embodiment.

상술한 바와 같이 가상현실 콘텐츠 생성부(150)가 사용자 단말기(100)에 설치되고, 3차원 모델 데이터(160)를 생성할 수 있는 ASE, 3ds max, MAYA 등의 3차원 애플리케이션 등으로 3차원 모델 데이터(160)를 제작한다(단계 S110). As described above, the virtual reality content generating unit 150 is installed in the user terminal 100, and the three-dimensional model is used for three-dimensional applications such as ASE, 3ds max, MAYA, etc., which can generate the three-dimensional model data 160. The data 160 is produced (step S110).

여기서, ASE 형식의 파일은 3D 데이터를 ASCII 형태로 출력한 파일이며, 텍스트(Text) 형태이므로 값을 쉽게 볼 수 있고, 쉽게 파악을 할 수 있다. 따라서, 출력된 ASE 파일에서 특정한 데이터를 간단하게 없애거나, 추가하는 것이 자유롭다.Here, the ASE format file is a file that outputs 3D data in ASCII format. Since the text format is text, the value can be easily seen and easily grasped. Therefore, it is free to simply remove or add specific data from the output ASE file.

한편, ASE 파일은 텍스트로 출력되므로 프로그램에서 사용하려면, 그 텍스트를 읽어들일 추가적인 해석기가 필요하다. 따라서, ASE 파일을 로드하고, ASE 파일의 문장을 단어(TOKEN) 단위로 끊고, 단어의 의미를 분석하게 된다.On the other hand, ASE files are output as text, so to use them in a program, you need an additional parser to read the text. Therefore, the ASE file is loaded, the sentence of the ASE file is broken by word (TOKEN) unit, and the meaning of the word is analyzed.

그래서, 단어 단위로 자르는 것을 렉서(Lexer) 라고 하며, 자른 단어가 쓸만 한지 판단하여 데이터화 하기 위한 의미 분석을 파서(Parser) 라고 한다. Therefore, the word-cutting is called lexer, and the semantic analysis to determine whether the cut word is useful is called a parser.

이어서, 본 발명에 따른 가상현실 콘텐츠 생성부(150)에서 입출력부(154)를 통하여 3차원 모델 데이터(160)를 읽어들이고, 오브젝트 파일 생성부(155)를 이용하여 그래픽 데이터로 생성된다. Subsequently, the 3D model data 160 is read from the virtual reality content generation unit 150 through the input / output unit 154 and generated as graphic data using the object file generation unit 155.

이렇게, 오브젝트 파일 생성부(155)에서 입력받은 3차원 모델 데이터(160)를 사용자 인터페이스를 통해 사용자가 편집하여 가상현실 콘텐츠로 생성시키면, 웹 서버(200)에서 가상현실 콘텐츠의 리얼리티를 증가시키기 위해서 데이터를 압축하게 된다.In this way, when the user edits the 3D model data 160 input by the object file generator 155 through the user interface and generates the virtual reality content, the web server 200 increases the reality of the virtual reality content. Compress the data.

모델 정점 데이터, 애니메이션 키 데이터, 상호작용 반응 값 등의 가상현실 콘텐츠의 내부데이터는 주요 데이터가 하나라도 손실이 되면 해당 가상현실 콘텐츠는 사용할 수 없게 된다. 따라서, 가상현실 콘텐츠 내부데이터는 손실은 전혀 없으면서 압축 효율은 높고, 압축 연산에 소모되는 시간은 적은 무손실 압축 알고리즘인 디플레이트(Deflate) 알고리즘을 사용하여 압축된다(단계 S120).Internal data of virtual reality contents such as model vertex data, animation key data, and interaction response values cannot be used if any of the main data is lost. Therefore, the virtual reality content internal data is compressed using a Deflate algorithm, which is a lossless compression algorithm having high compression efficiency with little loss and no time spent in the compression operation (step S120).

디플레이트 알고리즘은 필 케츠에 의해 발표된 알고리즘으로 기본적으로 LZ77 알고리즘을 통해 가상현실 콘텐츠 내부데이터를 압축한 후 중복되는 내용에 대한 포인터 즉, 데이터가 일치하는 위치와 길이를 호프만 코딩을 사용하여 한번 더 압축한다.The deplate algorithm is an algorithm published by Phil Ketz, who basically compresses the data inside the virtual reality content through the LZ77 algorithm, and once again uses Huffman coding for a pointer to the overlapping content, that is, the location and length of the data match. Compress.

LZ77 알고리즘은 Abraham Lempel과 Jakob Ziv가 1977년에 발표한 것으로 데이터에서 동일한 패턴이 발견되면 그 내용을 위치와 길이만으로 기록하는데, 이 패턴의 길이는 가능한 긴 것을 찾아 그 효율성을 높이는 알고리즘이다.The LZ77 algorithm was published in 1977 by Abraham Lempel and Jakob Ziv, and if the same pattern is found in the data, the content is recorded only by location and length. The length of the pattern is the algorithm that finds the longest possible length and improves its efficiency.

호프만 코딩은 데이비드 호프만이 1958년에 발표한 알고리즘으로 문자들의 빈도로부터 접두 부호(어떤 한 문자에 대한 부호가 다른 부호들의 접두어가 되지 않는 부호)를 만들어내는 알고리즘으로써 적게 나오는 문자일수록 더 긴 부호를 쓰고 많이 나오는 문자일수록 더 짧은 부호를 쓴다. Hoffman coding is an algorithm that David Hoffmann published in 1958 that produces a prefix from the frequency of the characters (a code for which one character is not a prefix of another). The more characters that appear, the shorter the sign.

호프만 코딩은 주어진 빈도에 대해서 항상 최적의 접두 부호를 만들어 내며, 각 문자들의 빈도가 2의 거듭제곱 꼴이거나 모두 같은 경우 이 접두 부호는 간단한 이진 블록 부호와 동일하다.Huffman coding always produces an optimal prefix for a given frequency, and this prefix is equivalent to a simple binary block code if the frequency of each character is a power of two or all of the same.

예를 들어, 'AABBCCDAABBAABB'라는 데이터가 있다면, 무손실 압축 알고리즘을 사용하여, 도 5와 도 6에 나타낸 바와 같은 순서로 압축이 진행된다.For example, if there is data called 'AABBCCDAABBAABB', compression is performed in the order as shown in FIGS. 5 and 6 using a lossless compression algorithm.

먼저, 도 5a에 나타낸 바와 같이, 검색 대상인 문자열의 맨 처음 'A'의 앞에는 아무런 데이터가 없기 때문에 (위치, 길이)가 모두 '0'이 되고, 앞 부분과 일치하지 않는 첫 번째 글자를 출력하여, (0, 0)A가 출력되면서 길이가 0+1로 된다.First, as shown in FIG. 5A, since there is no data in front of the first 'A' of the string to be searched, (position, length) is all '0', and the first letter that does not match the preceding part is output. , (0, 0) A is output and the length becomes 0 + 1.

이어서, 도 5b에 나타낸 바와 같이, 검색 대상은 길이가 0+1로 되어 두번째 'A'가 되고, 'A'는 앞에 존재하는 값이므로, 위치와 길이로 대체하고, 일치하지 않는 다음 문자의 첫번째 글자를 출력한다. 따라서, (0,0)A(1,1)B 가 출력하게 된다.Subsequently, as shown in FIG. 5B, the search object has a length of 0 + 1, which is the second 'A', and 'A' is a value present in front, so that the position and length are replaced, and the first of the next non-matching characters is replaced. Print a letter. Therefore, (0,0) A (1,1) B will be output.

이어서, 도 5c에 나타낸 바와 같이, 검색 대상은 1+1+1, 즉 1+2가 되어 두번째 'B'가 되고, 'B'는 앞에 존재하는 값이므로, (0,0)A(1,1)B(1,1)C 가 출력된다Subsequently, as shown in FIG. 5C, the search target is 1 + 1 + 1, that is, 1 + 2, which is the second 'B', and since 'B' is a value present in front, (0,0) A (1, 1) B (1,1) C is output

이어서, 도 5d에 나타낸 바와 같이, 검색 대상은 1+2+1+1, 즉 1+2+2가 되어 두번째 'C'가 되고, 'C'는 앞에 존재하는 값이므로, 위와 같이 반복하면 (0,0)A(1.1)B (1,1)C(1,1)D 출력된다.Subsequently, as shown in FIG. 5D, the search target becomes 1 + 2 + 1 + 1, that is, 1 + 2 + 2, and becomes the second 'C', and since 'C' is a value present before, 0,0) A (1.1) B (1,1) C (1,1) D is output.

이어서, 도 5e에 나타낸 바와 같이, 검색 대상은 1+2+2+1+1, 즉 1+2+2+2가 되어 세번째 'A'가 된다. 여기서, 'A' 값을 시작으로 'AABB'가 앞에 존재하는 값이므로, 출력값은 (0,0)A(1,1)B(1,1)C(1,1)D(7,4)A가 된다.Subsequently, as shown in Fig. 5E, the search target becomes 1 + 2 + 2 + 1 + 1, that is, 1 + 2 + 2 + 2, and becomes the third 'A'. Here, the output value is (0,0) A (1,1) B (1,1) C (1,1) D (7,4) because 'AABB' is present in front of 'A'. Becomes A.

이어서, 도 5f와 도5g에 나타낸 바와 같이, 검색 대상은 1+2+2+2+4+1, 즉 1+2+2+2+5가 되어 마지막 'A'가 된다. 여기서, 'A'값을 시작으로 'ABB'가 앞에 존재하는 값이므로, 최종 출력 값은 (0,0)A(1,1)B(1,1)C(1,1)D(7,4)A(4,3)이 된다.Subsequently, as shown in Figs. 5F and 5G, the search target is 1 + 2 + 2 + 2 + 4 + 1, that is, 1 + 2 + 2 + 2 + 5, which is the last 'A'. Here, 'AB' starts with 'ABB', so the final output value is (0,0) A (1,1) B (1,1) C (1,1) D (7, 4) A (4,3).

그리고, LZ77 알고리즘의 결과로 만들어진 인코딩 데이터(Encoding Data)를, 도 6에 나타낸 바와 같이, 호프만 코딩(Hoffman Coding)에 의해 다시 압축하여 빈도 수가 높은 패턴에 대해서는 작은 비트(Bit)의 데이터로 치환하는 작업을 수행한다.The Encoding Data produced as a result of the LZ77 algorithm is again compressed by Hoffman Coding, and replaced with a small bit of data for a high frequency pattern. Do the work.

먼저, LZ77 알고리즘으로부터 획득한 데이터는 '00A11B11C11D74A43'와 같으며 각 문자의 빈도를 측정하여 분류한다.First, the data obtained from the LZ77 algorithm is the same as '00A11B11C11D74A43', and the frequency of each letter is measured and classified.

이어서, 도 6b에 나타낸 바와 같이, 빈도 수가 가장 작은 값을 기준으로 그룹을 만들면서 이러한 작업을 반복한다.Then, as shown in Fig. 6B, this operation is repeated while grouping based on the value with the smallest frequency.

그래서, 도 6c에 나타낸 바와 같이, 1은 '01', 0은 '101', A는 '100', 4는 '001', B는 '110', C는 '0001', D는 '0000', 7은 '1111', 3은 '1110'로 되고,So, as shown in Figure 6c, 1 is '01', 0 is '101', A is '100', 4 is '001', B is '110', C is '0001', D is '0000' , 7 becomes '1111', 3 becomes '1110',

00A11B11C11D74A43의 결과값은 The result of 00A11B11C11D74A43 is

'1011011000101110010100010101000011110011000011110'의 총 7바이트(Byte) 로 나타낼 수가 있다.A total of 7 bytes of '1011011000101110010100010101000011110011000011110' can be represented.

도 7은 본 발명의 일실시예에 따른 손실 압축 알고리즘을 나타내는 예시도, 도 8은 본 발명의 일실시예에 따른 웹 서버에서 디스플레이되는 가상현실 콘텐츠를 나타내는 예시도이다.7 is an exemplary diagram illustrating a lossy compression algorithm according to an embodiment of the present invention, and FIG. 8 is an exemplary diagram illustrating virtual reality content displayed on a web server according to an embodiment of the present invention.

이어서, 리얼리티를 높일수록 그 크기가 기하급수적으로 커지는 가상현실 콘텐츠의 재질 등의 외부데이터에 대해서는 손실은 약간 있지만 압축효율 면에서 우수한 손실 압축 알고리즘을 사용한다(단계 S130).Subsequently, a loss loss algorithm is used for the external data such as the material of the virtual reality content whose size increases exponentially as the reality is increased, but the compression efficiency is excellent in terms of compression efficiency (step S130).

재질 데이터의 경우에는 가상현실 콘텐츠의 각각의 좌표마다 컬러 정보를 기록하는데, 2차원 데이터의 경우 이미지에 해당하는 값이 3차원에서는 각 면마다 값을 저장하여야 하기 때문에 그 크기는 매우 커질 수밖에 없다. 하지만, 보통의 경우 한 점의 컬러는 주변 점들의 컬러와 비슷할 확률이 매우 높다. In the case of material data, color information is recorded for each coordinate of the virtual reality content. In the case of two-dimensional data, the value corresponding to the image has to be very large because the value corresponding to the image must be stored for each side in three dimensions. In general, however, the color of one point is very likely to be similar to the color of the surrounding points.

이는 사진과 마찬가지로, 예를 들어 바닷가에서 사진을 찍으면, 바닥은 황토색 모래들로, 하늘은 파란색과 흰색 구름으로 이루어지는데 아주 작은 한 점을 보았을 때 그 주변은 분명히 같은 색일 확률이 높다는 것이다. This is similar to photography, for example when photographing by the sea, the bottom is made of ocher sand and the sky is made up of blue and white clouds, and when you see a tiny point, the surroundings are most likely the same color.

이러한 특성과, 사람의 눈은 상당히 둔감하기 때문에 작은 점이 주변의 색과 약간은 다르지만 이 색을 주변 색으로 바꾸더라도, 즉 데이터가 손실되더라도 언뜻 보기에 비슷해 보인다는 점을 이용한다면 디플레이트 알고리즘보다 더 뛰어난 압축 효율을 낼 수 있다.This characteristic and the human eye are so insensitive that small dots are slightly different from the surrounding color, but if you change the color to the surrounding color, that is, at first glance, even if the data is lost, it looks more similar than the deflating algorithm. Excellent compression efficiency can be achieved.

그래서, 재질 데이터의 경우에는 각각의 좌표계를 8*8 매트릭스(Matrix)로 나누어 블록을 구성하고, 이 블록에 대하여 DCT(Discete Cosine Transform; 이산 코사인 변환), 양자화(Quantization), 지그재그 스캐닝(Zig-zag Scanning) 및 호프만코딩 알고리즘을 차례로 수행하여 압축 효율을 높인다.Thus, in the case of material data, each coordinate system is divided into 8 * 8 matrices to form a block, and DCT (Discete Cosine Transform), quantization, and zigzag scanning are performed on the block. zag Scanning) and Hoffman coding algorithms are performed sequentially to increase the compression efficiency.

먼저, 도 7a에 나타낸 바와 같이, 가상현실 콘텐츠 영상을 8*8 행렬 블록(block)으로 나눈다. 이 8*8의 블록 행렬은 DCT에 의해서, 도 7b에 나타낸 바와 같이, 정보량이 줄어들게 된다.First, as shown in FIG. 7A, the virtual reality content image is divided into 8 * 8 matrix blocks. In this 8 * 8 block matrix, the amount of information is reduced by the DCT as shown in Fig. 7B.

DCT(Discete Cosine Transform)는 1차원이나 2차원의 데이터를 공간영역에서 주파수 영역으로 변환하는 알고리즘으로, DCT 연산을 하면 블록에서 왼쪽 위쪽으로 큰 숫자들이 몰리게 된다. DCT (Discete Cosine Transform) is an algorithm that transforms one-dimensional or two-dimensional data from the spatial domain to the frequency domain. When DCT operation is performed, large numbers are collected from the block to the upper left.

그래서, 제일 좌측 상단에 있는 큰 숫자를 DC(저주파)값, 나머지 63개의 숫자는 AC(고주파)값이라고 부르며, 특히, DC 값 및 이 근처에 있는 숫자들은 블록 전체의 명도를 좌지우지하는 매우 중요한 정보를 담고 있다.Thus, the large number at the top left is called the DC (low frequency) value, and the remaining 63 numbers are called AC (high frequency) values. In particular, the DC value and the numbers in the vicinity are very important information that controls the brightness of the entire block. Contains.

가상현실 콘텐츠 재질 데이터의 경우 변화가 적으므로 낮은 주파수, 0 주파수(DC) 성분이 큰 값을 가지게 되고 높은 주파수 성분은 상대적으로 작은 값을 가지는데, 대부분의 정보가 낮은 주파수 쪽으로 몰리게 되므로 양자화 과정을 적절히 거치면 높은 압축률을 가져올 수 있다.In the case of virtual reality content material data, since the change is small, the low frequency and zero frequency (DC) components have large values, and the high frequency components have relatively small values. Proper treatment can lead to high compression ratios.

양자화는 DCT로 변환된 행렬을, 도 7c에 나타낸 바와 같은 임의의 정수 행렬인 양자화 행렬로 나누는 과정이다. 이 과정에서 작은 값들은, 도 7d에 나타낸 바와 같이, '0'으로 변하게 되어 데이터가 작아지지만, 사라진 숫자들 때문에 약간의 데이터 정보 손실(loss)이 발생하게 된다.Quantization is a process of dividing a matrix converted into DCT into a quantization matrix, which is an arbitrary integer matrix as shown in FIG. 7C. In this process, small values are changed to '0' as shown in FIG. 7D, so that the data becomes small, but some data information loss occurs due to the missing numbers.

DCT 과정과 양자화 과정을 거친 행렬은, 도 7e에 나타낸 바와 같이, 지그재그 스캐닝으로 [15, 0, -2, -1, -1, -1, -1, 0, 0, -1]과 같이 정수 열을 만들고, 정수 열을 이진수로 바꾼다.The matrix, which has undergone the DCT process and the quantization process, is an integer such as [15, 0, -2, -1, -1, -1, -1, 0, 0, -1] by zigzag scanning as shown in FIG. 7E. Create a column and convert the integer column to binary.

이어서, 이진수의 인근 값 특성 및 확률(0 또는 1이 연속으로 몇 개가 계속되는지 등등)을 이용한 호프만 코딩을 이용해서 8*8 행렬이 [101 0110 111001 01 00 0 00 0 00 0 11011 0]와 같이 불과 몇 개의 0과 1의 조합으로 줄어들게 된다.Subsequently, using Hoffman coding using the neighbor value property and probability of binary numbers (how many 0s or 1s continue in a row, etc.), an 8 * 8 matrix is represented by [101 0110 111001 01 00 0 00 0 00 0 11011 0]. It is reduced to only a few combinations of zeros and ones.

이렇게 호프만 코딩을 이용해 압축하면 적게는 10배에서 많게는 20배 이상의 압축 효율을 가져올 수 있다.Compressing this with Hoffman coding can result in compression efficiencies of as little as 10 to as much as 20 times.

따라서, 원래의 8*8 정수 행렬이 DCT - 양자화 - 지그재그 스캐닝 - 호프만 코딩의 과정을 거치면서, 데이터량이 엄청나게 줄어드는 것을 확인하실 수 있다.Therefore, as the original 8 * 8 integer matrix goes through the process of DCT-quantization-zigzag scanning-Hoffman coding, it can be seen that the amount of data is greatly reduced.

단, 양자화 과정에서 아주 작은 AC 값들은 손실되기 때문에 원래 영상에 비해 약간 화질이 저하되는 손실압축방식이 되는 것이다.However, very small AC values are lost in the quantization process, which results in a lossy compression method that slightly degrades the quality of the original image.

참고로, 본 발명에서는 가상현실 콘텐츠 영상을 8*8 행렬 블록으로 나누었지만 사용자가 임의로 행렬의 크기를 설정할 수가 있다. For reference, in the present invention, the virtual reality content image is divided into 8 * 8 matrix blocks, but the user can arbitrarily set the size of the matrix.

따라서, 8*8을 포함하여 행렬의 크기를 16*16, 32*32, 64*64, 128*128 등으로 나누어 사용자가 임의로 각각 블록을 구성하고, 이 블록에 대하여 DCT, 양자화, 지그재그 스캐닝 및 호프만코딩 알고리즘을 차례로 수행하는 것이다.Therefore, by dividing the size of the matrix including 8 * 8 into 16 * 16, 32 * 32, 64 * 64, 128 * 128, etc., the user arbitrarily constructs each block, and DCT, quantization, zigzag scanning, The Huffman coding algorithm is performed in sequence.

그래서, 여러 크기별로 블록을 잘라서 압축해본 결과 가장 압축률이 좋은 것을 선택할 수 있다. 이때, 행렬의 크기는 압축데이터 헤더에 저장하고, ActiveX 등 의 형식으로 만들어진 전용 플레이어가 이를 실행할 때 헤더를 읽어 압축을 풀 수가 있는 것이다.So, by cutting blocks into blocks of different sizes, you can choose the one with the best compression. At this time, the size of the matrix is stored in the compressed data header, and the dedicated player made in the ActiveX format can read the header and decompress it when executed.

이어서, 상술한 바와 같이, 무손실 압축 알고리즘과 손실 압축 알고리즘을 사용하여 압축된 가상현실 콘텐츠를 저장한 후 또는 저장과 동시에 가상현실 콘텐츠를 웹 서버(200)에 전송할 수 있다(단계 S140).Subsequently, as described above, after the virtual reality content compressed using the lossless compression algorithm and the lossy compression algorithm is stored or simultaneously with the storage, the virtual reality content may be transmitted to the web server 200 (step S140).

즉, html 파일 생성부(156)를 통하여 만들어진 html 파일은 웹 브라우저(110)에서 임베디드 된 상태로 가상현실 콘텐츠가 실행되도록 하여, 사용자 단말기(100)에서 출력되도록 하거나 인터넷(300)을 통하여 웹 서버(200)로 전송시킨다. 이어서, 웹서버(200)에서는 전송받은 가상현실 콘텐츠가 구동되는 것이다.That is, the html file generated by the html file generating unit 156 allows the virtual reality content to be executed in the embedded state in the web browser 110 to be output from the user terminal 100 or the web server through the Internet 300. Send to (200). Subsequently, the received virtual reality content is driven in the web server 200.

이러한 방식의 사용으로, 웹서버(200)를 통해 ActiveX 컨트롤 형식으로 자체형식의 압축파일을 읽어올 수 있는 기본 플레이어를 사용자에게 제공하여 웹서버(200)를 통해 가상현실 콘텐츠를 디스플레이하는 최종적인 결과를 달성한다.By using this method, the final result of displaying the virtual reality content through the web server 200 by providing the user with a basic player capable of reading a compressed file of its own format in the form of an ActiveX control through the web server 200 is provided. To achieve.

참고로, 웹 서버(200)에서 구동되는 가상현실 콘텐츠는 현실과 구분이 되지 않을 정도의 리얼리티가 있어야 하므로, 가상현실 콘텐츠를 초당 30프레임 이상의 렌더링으로 처리하여야 한다.For reference, since the virtual reality content driven in the web server 200 should have a reality that is indistinguishable from reality, the virtual reality content should be processed at a rendering of 30 frames or more per second.

따라서, 본 발명에 따른 가상현실 콘텐츠 생성부(150)는 보편화된 하드웨어 사양에서도 범프 맵핑(Bump Mapping), 섀도잉(Shadowing) 등이 적용된 수만 폴리곤의 가상현실 콘텐츠를 초당 30프레임 내지 99프레임의 수십 프레임 이상의 속도로 렌더링할 수가 있다. 또한, 가상현실 콘텐츠를 높은 압축비로 저장하여 파일 크기 를 줄임으로써, 웹 서버(200)에서 리얼리티가 가능하게 구동되도록 할 수가 있다.Therefore, the virtual reality content generating unit 150 according to the present invention is the virtual reality content of tens of thousands of polygons applied to bump mapping (shadowing), shadowing (shadowing), etc., even in the generalized hardware specifications dozens of 30 to 99 frames per second You can render at rates higher than the frame. In addition, by storing the virtual reality content at a high compression ratio to reduce the file size, the reality can be driven in the web server 200.

아울러, 본 발명에 따른 가상현실 콘텐츠 생성부(150)는 웹 서버(200)에서의 고객이 원하는 부분에 최대한 접근할 수 있는 확장성과 응용성이 가능하도록 하여 고객이 원하는 공간으로 신속히 찾아갈 수 있도록 하였다.In addition, the virtual reality content generation unit 150 according to the present invention enables the customer to quickly go to the desired space by enabling the expandability and applicability to the maximum access to the desired portion of the customer in the web server 200. It was.

이상의 설명에서는 본 발명의 바람직한 실시예를 제시하여 설명하였으나, 본 발명이 반드시 이에 한정되는 것은 아니며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경할 수 있음을 쉽게 알 수 있을 것이다.In the above description, the present invention has been described with reference to preferred embodiments, but the present invention is not necessarily limited thereto, and a person having ordinary skill in the art to which the present invention pertains does not depart from the technical spirit of the present invention. It will be readily appreciated that various substitutions, modifications and variations can be made.

도 1은 본 발명의 일실시예에 따른 가상현실 편집 시스템을 나타내는 블록도,1 is a block diagram showing a virtual reality editing system according to an embodiment of the present invention;

도 2는 본 발명의 일실시예에 따른 가상현실 콘텐츠 생성부를 나타내는 블록도,2 is a block diagram showing a virtual reality content generating unit according to an embodiment of the present invention;

도 3은 본 발명의 일실시예에 따른 가상현실 콘텐츠 생성부가 사용자 단말기에 디스플레이되는 상태를 나타내는 예시도,3 is an exemplary view illustrating a state in which a virtual reality content generating unit is displayed on a user terminal according to an embodiment of the present invention;

도 4는 본 발명의 일실시예에 따른 가상현실 편집 시스템에서의 압축 방법을 나타내는 플로우차트,4 is a flowchart illustrating a compression method in a virtual reality editing system according to an embodiment of the present invention;

도 5는 본 발명의 일실시예에 따른 LZ77 압축 알고리즘을 나타내는 예시도,5 is an exemplary diagram illustrating an LZ77 compression algorithm according to an embodiment of the present invention;

도 6은 본 발명의 일실시예에 따른 호프만 코딩 알고리즘을 나타내는 예시도,6 is an exemplary diagram illustrating a Hoffman coding algorithm according to an embodiment of the present invention;

도 7은 본 발명의 일실시예에 따른 손실 압축 알고리즘을 나타내는 예시도,7 is an exemplary diagram illustrating a lossy compression algorithm according to an embodiment of the present invention;

도 8은 본 발명의 일실시예에 따른 웹 서버에서 디스플레이되는 가상현실 콘텐츠를 나타내는 예시도이다.8 is an exemplary view showing virtual reality content displayed on a web server according to an embodiment of the present invention.

Claims (5)

(a) 3차원 애플리케이션으로 제작된 3차원 모델 데이터를 읽어들여 가상현실 콘텐츠로 생성하는 단계;(a) reading the three-dimensional model data produced by the three-dimensional application to create a virtual reality content; (b) 상기 가상현실 콘텐츠의 내부정보 데이터를 무손실 압축하는 단계; 및(b) losslessly compressing the internal information data of the virtual reality content; And (c) 상기 가상현실 콘텐츠의 외부정보 데이터를 손실 압축하는 단계;를 포함하고,and (c) lossy compressing the external information data of the virtual reality content. 상기 (b) 단계는,In step (b), (b1) 상기 가상현실 콘텐츠의 내부정보 데이터를 LZ77 알고리즘으로 압축하는 단계; 및(b1) compressing internal information data of the virtual reality content with an LZ77 algorithm; And (b2) 상기 압축된 데이터를 호프만 코딩으로 압축하는 단계;를 포함하고,(b2) compressing the compressed data with Hoffman coding; 상기 (c) 단계는,In step (c), (c1) 가상현실 콘텐츠의 외부 데이터를 소정 크기의 행렬로 나누어 각각 블록을 형성하는 단계;(c1) dividing the external data of the virtual reality content into a matrix having a predetermined size to form blocks respectively; (c2) 상기 각 블록의 행렬 데이터를 이산 코사인 변환하는 단계;(c2) discrete cosine transforming the matrix data of each block; (c3) 상기 각 이산 코사인 변환된 행렬 데이터를 양자화하는 단계;(c3) quantizing each discrete cosine transformed matrix data; (c4) 상기 각 양자화된 행렬 데이터를 지그재그 스캐닝하는 단계; 및(c4) zigzag scanning each of the quantized matrix data; And (c5) 상기 지그재그스캐닝된 데이터를 호프만 코딩으로 압축하는 단계;를 포함하고,(c5) compressing the zigzag-scanned data with Hoffman coding; 상기 (c1) 단계는,Step (c1), (c11) 사용자에 의해 기 설정된 각 블록 행렬의 크기를 설정파일에서 읽어들이는 단계; 및(c11) reading the size of each block matrix preset by the user from the configuration file; And (c12) 상기 기 설정된 각 블록 행렬의 크기로써 가상현실 콘텐츠의 외부 데이터를 나누어 각각 블록을 형성하는 단계;를 포함하고,(c12) dividing the external data of the virtual reality content by the size of each preset block matrix to form blocks respectively; 상기 (c) 단계는,In step (c), 적어도 하나 이상의 행렬 크기에 대하여 상기 (c1) 내지 (c5)의 단계를 반복하는 단계;Repeating steps (c1) through (c5) for at least one matrix size; 상기 각 행렬 크기로써 반복하여 압축된 데이터의 크기를 비교하여 가장 크기가 작은 압축 데이터 및 행렬의 크기를 선택하는 단계; 및Selecting the size of the compressed data and the matrix having the smallest size by comparing the size of the repeatedly compressed data with each matrix size; And 상기 선택된 압축 데이터의 헤더에 상기 압축에 사용된 행렬의 크기를 기록하여 저장하는 단계;를 포함하는 가상현실 편집 시스템에서의 압축 방법.And recording and storing the size of the matrix used in the compression in the header of the selected compressed data. 삭제delete 삭제delete 삭제delete 삭제delete
KR1020090040739A 2008-09-23 2009-05-11 Method for Compression in System for Editing Virtual Reality KR101019558B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20080093276 2008-09-23
KR1020080093276 2008-09-23

Publications (2)

Publication Number Publication Date
KR20100034686A KR20100034686A (en) 2010-04-01
KR101019558B1 true KR101019558B1 (en) 2011-03-08

Family

ID=42212798

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090040739A KR101019558B1 (en) 2008-09-23 2009-05-11 Method for Compression in System for Editing Virtual Reality

Country Status (1)

Country Link
KR (1) KR101019558B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2608885A (en) * 2021-05-05 2023-01-18 Retail Social Ltd Systems and methods for the display of virtual clothing

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101654571B1 (en) 2010-07-21 2016-09-06 삼성전자주식회사 Apparatus and Method for Transmitting Data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100294923B1 (en) * 1998-10-02 2001-09-07 윤종용 3-D mesh coding/decoding method and apparatus for error resilience and incremental rendering
KR100451942B1 (en) * 1997-07-28 2004-10-08 피지컬 옵틱스 코포레이션 Method of isomorphic singular manifold projection still/video imagery compression

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100451942B1 (en) * 1997-07-28 2004-10-08 피지컬 옵틱스 코포레이션 Method of isomorphic singular manifold projection still/video imagery compression
KR100294923B1 (en) * 1998-10-02 2001-09-07 윤종용 3-D mesh coding/decoding method and apparatus for error resilience and incremental rendering

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2608885A (en) * 2021-05-05 2023-01-18 Retail Social Ltd Systems and methods for the display of virtual clothing
GB2608885B (en) * 2021-05-05 2024-10-16 Retail Social Ltd Systems and methods for the display of virtual clothing

Also Published As

Publication number Publication date
KR20100034686A (en) 2010-04-01

Similar Documents

Publication Publication Date Title
RU2237283C2 (en) Device and method for presenting three-dimensional object on basis of images having depth
Guéziec et al. A framework for streaming geometry in VRML
JP4759284B2 (en) Method and apparatus for encoding / decoding three-dimensional volume data
US9426259B2 (en) Client server interaction for graphical/audio applications
RU2237284C2 (en) Method for generating structure of assemblies, meant for presenting three-dimensional objects with use of images having depth
Behr et al. Using images and explicit binary container for efficient and incremental delivery of declarative 3d scenes on the web
EP1866870B1 (en) Rendering 3d computer graphics using 2d computer graphics capabilities
KR100319380B1 (en) Video image decoding and synthesizing method and video image decoding and synthesizing apparatus
KR20130030914A (en) 3d rendering editing system and method of thereof
KR20010103709A (en) Method and system for controlling multimedia streams using dynamic prototypes
KR101061923B1 (en) Virtual Reality Editing System and Method
Evans et al. Web-based visualisation of on-set point cloud data
Chong et al. Grid-based computer animation rendering
CN114491352A (en) Model loading method and device, electronic equipment and computer readable storage medium
Limper et al. Fast, progressive loading of binary-encoded declarative-3d web content
KR101019558B1 (en) Method for Compression in System for Editing Virtual Reality
CN111243072A (en) WebVR three-dimensional display method, device and system and readable storage medium
CN112843700B (en) Terrain image generation method and device, computer equipment and storage medium
EP0849951A2 (en) Method for encoding digital information
CN113938666B (en) Video data transmission method, device and storage medium based on key frames
CN110443873A (en) A kind of children's book equipped AR scene shows method, apparatus, storage medium
US6765582B1 (en) Hybrid procedural/pixel based textures
Zhang et al. Hybrid coding for animated polygonal meshes: Combining delta and octree
CN115250335A (en) Video processing method, device, equipment and storage medium
CN112181221A (en) Image processing method and device, computer readable medium and electronic device

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: 20131231

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141231

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160226

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170222

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180226

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190218

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200226

Year of fee payment: 10