KR102282189B1 - Mipmap Generation Method and apparatus - Google Patents

Mipmap Generation Method and apparatus Download PDF

Info

Publication number
KR102282189B1
KR102282189B1 KR1020140082528A KR20140082528A KR102282189B1 KR 102282189 B1 KR102282189 B1 KR 102282189B1 KR 1020140082528 A KR1020140082528 A KR 1020140082528A KR 20140082528 A KR20140082528 A KR 20140082528A KR 102282189 B1 KR102282189 B1 KR 102282189B1
Authority
KR
South Korea
Prior art keywords
mipmap
level
calculated
texture
mipmap level
Prior art date
Application number
KR1020140082528A
Other languages
Korean (ko)
Other versions
KR20160004096A (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 삼성전자 주식회사
Priority to KR1020140082528A priority Critical patent/KR102282189B1/en
Priority to US14/598,590 priority patent/US9881392B2/en
Publication of KR20160004096A publication Critical patent/KR20160004096A/en
Application granted granted Critical
Publication of KR102282189B1 publication Critical patent/KR102282189B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/001Texturing; Colouring; Generation of texture or colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)

Abstract

밉맵 생성 장치가, 밉맵(mipmap) 생성 함수 호출에 따라, 텍스처(texture)에 대해 생성된 밉맵 레벨을 나타내는 밉맵 상태 레지스터(mipmap status register)를 할당하고, 텍스처에 대한 요청을 수신하고, 텍스처에 대해 요청되는 밉맵 레벨(mipmap level)을 산출하고, 밉맵 상태 레지스터를 이용하여, 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단하고, 판단 결과에 기초하여, 산출된 밉맵 레벨의 밉맵을 생성할지 여부를 결정하는, 방법이 개시된다.The mipmap generator allocates a mipmap status register indicating the mipmap level generated for the texture, receives a request for the texture, and receives the request for the texture, according to the mipmap generation function call. Calculates the requested mipmap level, uses the mipmap status register to determine whether a mipmap of the calculated mipmap level exists, and determines whether to generate a mipmap of the calculated mipmap level based on the determination result A method of determining is disclosed.

Description

밉맵 생성 방법 및 장치{Mipmap Generation Method and apparatus}Mipmap Generation Method and Apparatus

개시된 실시 예들은 밉맵 생성 방법 및 장치에 관한 것이다.The disclosed embodiments relate to a mipmap generating method and apparatus.

텍스처 매핑(texture mapping)이란 컴퓨터 그래픽스 분야에서 가상의 삼차원 물체의 표면에 세부적인 질감을 묘사하거나 색을 칠하는 기법이다. 텍스처란, 텍스처 매핑 시 물체의 표면에 입혀지는 이미지를 의미한다. 일반적으로 텍스처 매핑에서 단순한 이차원 정지 이미지인 2D 텍스처가 사용되며, 이때 렌더링 속도의 향상과 에일리어싱(aliasing) 방지를 위해 밉맵(mipmap)이라는 기법이 사용된다.Texture mapping is a technique for depicting detailed textures or coloring the surface of a virtual three-dimensional object in the field of computer graphics. A texture refers to an image applied to the surface of an object during texture mapping. In general, in texture mapping, a 2D texture, which is a simple two-dimensional still image, is used. In this case, a technique called mipmap is used to improve rendering speed and prevent aliasing.

3차원 그래픽스의 텍스처 매핑 분야에서, 밉맵은 렌더링 속도를 향상시키기 위한 목적으로 기본 텍스처와 이를 연속적으로 미리 축소시킨 텍스처들로 이루어진 비트맵 이미지의 집합이다. 밉맵을 사용할 경우 최종 결과에서 텍스처가 입혀지는 물체의 크기를 고려하여 이에 대응되는 텍스처를 사용하게 된다. 텍스처가 미리 그려진 이미지인 경우, 밉맵으로 사용되는 여러 크기의 이미지는 일반적으로 오프라인으로 계산되어 렌더링 시 즉시 사용될 수 있다.In the field of texture mapping of 3D graphics, a mipmap is a set of bitmap images consisting of a basic texture and textures that are successively reduced in advance for the purpose of improving rendering speed. When mipmap is used, the corresponding texture is used in consideration of the size of the textured object in the final result. If the texture is a pre-drawn image, images of different sizes used as mipmaps are usually computed offline and can be used immediately upon rendering.

특정한 경우에 있어, 미리 그려진 텍스처를 사용할 수 없는 경우가 있다. 렌더-투-텍스처(render to texture)란, 동적으로 화면을 반영하는 표면 등의 특수 효과를 만들 때 렌더링을 화면이 아닌 텍스처에 수행하여, 프로그램 실행 중에 텍스처를 생성하고, 이를 다른 장면의 렌더링에 사용하는 기법이다. 또한, 정지 영상이 아닌 동영상을 텍스처로 사용하는 경우도 있다. 예들 들어, 가상의 공간에 존재하는 TV를 렌더링 하는 경우, 화면에 보여지는 영상 자체를 모델링 하는 것은 어렵기 때문에, 모델링된 화면에 동영상의 각 프레임을 텍스처로 사용하여 마치 TV 영상이 나오는 것과 같은 효과를 얻을 수 있다. 이러한 기법은 텍스처 스트리밍, 혹은 (동적) 비디오 텍스처라고 한다.In certain cases, pre-drawn textures may not be available. Render-to-texture is when creating special effects such as a surface that dynamically reflects the screen, rendering is performed on a texture rather than the screen, creating a texture while the program is running, and applying it to the rendering of other scenes. is the method used. Also, there are cases where a moving image rather than a still image is used as a texture. For example, when rendering a TV that exists in a virtual space, it is difficult to model the image itself on the screen, so each frame of the video is used as a texture on the modeled screen to produce an effect like a TV image. can get This technique is called texture streaming, or (dynamic) video textures.

비디오 텍스처에서, 요구되는 비디오 프레임을 계산하고 해당 프레임의 압축을 해제해야 현재 렌더링 중인 장면에 사용할 2D 텍스처를 얻을 수 있다. 또한, 렌더-투-텍스처의 경우에도 해당 장면의 렌더링이 완료된 이후에 사용할 텍스처가 생성된다. 이렇게 얻은 텍스처는 밉맵이 아닌 기본 크기의 텍스처이므로 밉맵 생성과정을 거쳐야 일반적인 텍스처와 같이 사용이 가능하다. 이처럼 응용 프로그램의 실행 중에 매 프레임에 대한 밉맵을 생성하는 경우, 오프라인에서 생성이 가능한 일반 영상의 텍스처와 달리 응용 프로그램의 속도가 저하될 수 있다. From a video texture, you need to calculate the required video frames and decompress those frames to get a 2D texture to use for the scene being rendered. Also, in the case of render-to-texture, a texture to be used after the rendering of the corresponding scene is completed is generated. The texture obtained in this way is not a mipmap, but a texture of a basic size, so it can be used like a normal texture only through the mipmap generation process. In this way, when mipmaps for every frame are generated while the application is running, the speed of the application may be reduced, unlike textures of general images that can be generated offline.

일 실시예는 실제 밉맵이 요청된 시점으로 밉맵 생성 시점을 지연시켜 요청되는 밉맵 레벨의 밉맵을 생성할 수 있는 밉맵 생성 방법 및 장치를 제공한다. An embodiment provides a mipmap generating method and apparatus capable of generating a mipmap of a requested mipmap level by delaying a mipmap generating time to a time at which an actual mipmap is requested.

또한, 다른 실시예는 사용될 밉맵 레벨을 예측하고, 예측된 밉맵 레벨의 밉맵을 준비할 수 있는 장치 및 방법을 제공한다.Another embodiment provides an apparatus and method capable of predicting a mipmap level to be used and preparing a mipmap of the predicted mipmap level.

일 실시 예에 따른 밉맵 생성 방법은, 밉맵(mipmap) 생성 함수 호출에 따라, 텍스처(texture)에 대해 생성된 밉맵 레벨을 나타내는 밉맵 상태 레지스터(mipmap status register)를 할당하는 단계; 상기 텍스처에 대한 요청을 수신하고, 상기 텍스처에 대해 요청되는 밉맵 레벨(mipmap level)을 산출하는 단계; 상기 밉맵 상태 레지스터를 이용하여, 상기 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단하는 단계; 및 상기 판단 결과에 기초하여, 상기 산출된 밉맵 레벨의 밉맵을 생성할지 여부를 결정하는 단계를 포함한다. A mipmap generating method according to an embodiment may include allocating a mipmap status register indicating a mipmap level generated with respect to a texture according to a call to a mipmap generating function; receiving a request for the texture and calculating a mipmap level requested for the texture; determining whether a mipmap of the calculated mipmap level exists using the mipmap status register; and determining whether to generate a mipmap of the calculated mipmap level based on the determination result.

또한, 상기 결정하는 단계는, 상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정하는 단계; 및 상기 산출된 밉맵 레벨의 밉맵에 액세스하는 단계를 포함할 수 있다. The determining may include: if it is determined as a result of the determination that a mipmap of the calculated mipmap level exists, determining not to generate a mipmap of the calculated mipmap level; and accessing a mipmap of the calculated mipmap level.

또한, 상기 결정하는 단계는, 상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정하는 단계; 상기 산출된 밉맵 레벨의 밉맵을 생성하는 단계; 및 상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는 단계를 포함할 수 있다.The determining may include: if it is determined as a result of the determination that a mipmap of the calculated mipmap level does not exist, determining that a mipmap of the calculated mipmap level is to be generated; generating a mipmap of the calculated mipmap level; and writing in the mipmap status register to indicate that a mipmap of the mipmap level has been generated.

또한, 상기 밉맵을 생성하는 것으로 결정하는 단계는, 상기 텍스처 요청을 다시 시도할 것을 명령하는 단계; 및 상기 텍스처 요청이 다시 시도되기 전까지 다른 텍스처 요청을 처리하는 단계를 더 포함할 수 있다.In addition, determining to generate the mipmap may include: instructing to retry the texture request; and processing another texture request until the texture request is retried.

또한, 상기 밉맵 상태 레지스터를 할당하는 단계는, 상기 텍스처에 대해, 요청되는 밉맵 레벨을 예측하여 기록할 밉맵 예측 레지스터를 할당하는 단계; 상기 밉맵 레벨을 예측하는 단계; 상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨을 기록하는 단계; 상기 예측된 밉맵 레벨의 밉맵을 생성하는 단계; 및 상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는 단계를 더 포함할 수 있다. In addition, allocating the mipmap status register may include: allocating a mipmap prediction register to be recorded by predicting a mipmap level requested for the texture; predicting the mipmap level; writing the predicted mipmap level to the mipmap prediction register; generating a mipmap of the predicted mipmap level; and writing in the mipmap status register to indicate that a mipmap of the mipmap level has been generated.

또한, 상기 결정하는 단계는, 상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정하는 단계; 및 상기 산출된 밉맵 레벨의 밉맵에 액세스하는 단계를 포함할 수 있다. The determining may include: if it is determined as a result of the determination that a mipmap of the calculated mipmap level exists, determining not to generate a mipmap of the calculated mipmap level; and accessing a mipmap of the calculated mipmap level.

또한, 상기 결정하는 단계는, 상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정하는 단계; 상기 산출된 밉맵 레벨의 밉맵을 생성하는 단계; 및 상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는 단계를 포함할 수 있다.The determining may include: if it is determined as a result of the determination that a mipmap of the calculated mipmap level does not exist, determining that a mipmap of the calculated mipmap level is to be generated; generating a mipmap of the calculated mipmap level; and writing in the mipmap status register to indicate that a mipmap of the mipmap level has been generated.

또한, 상기 밉맵을 생성하는 것으로 결정하는 단계는, 상기 텍스처 요청을 다시 시도할 것을 명령하는 단계; 및 상기 텍스처 요청이 다시 시도되기 전까지 다른 텍스처 요청을 처리하는 단계를 더 포함할 수 있다.In addition, determining to generate the mipmap may include: instructing to retry the texture request; and processing another texture request until the texture request is retried.

또한, 상기 밉맵 상태 레지스터를 할당하는 단계는, 상기 텍스처에 대해, 실제 요청된 밉맵 레벨을 기록할 밉맵 요청 레지스터를 할당하는 단계를 더 포함하고, 상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨을 기록하는 단계는, 상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨로부터 허용 오차(tolerance) 범위 내의 밉맵 레벨을 기록하는 단계를 포함하고, 상기 예측된 밉맵 레벨의 밉맵을 생성하는 단계는, 상기 예측된 밉맵 레벨로부터 상기 허용 오차 범위 내의 밉맵 레벨의 밉맵들을 생성하는 단계를 포함하고, 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는 단계는, 상기 밉맵 상태 레지스터에 상기 예측된 밉맵 레벨로부터 상기 허용 오차 범위 내의 밉맵 레벨의 밉맵들이 생성된 것을 나타내도록 기록하는 단계를 포함하고, 상기 밉맵 레벨을 산출하는 단계는, 상기 밉맵 요청 레지스터 상에 상기 산출된 밉맵 레벨을 기록하는 단계를 더 포함할 수 있다. In addition, the allocating the mipmap status register further includes allocating a mipmap request register for recording an actual requested mipmap level for the texture, and writing the predicted mipmap level to the mipmap prediction register. the step of writing a mipmap level within a tolerance range from the predicted mipmap level in the mipmap prediction register, wherein generating a mipmap of the predicted mipmap level includes: generating mipmaps of a mipmap level within the tolerance range, and recording to indicate that a mipmap of the mipmap level has been generated includes: from the predicted mipmap level in the mipmap status register to a mipmap within the tolerance range The method may include recording to indicate that mipmaps of the level have been generated, and the calculating of the mipmap level may further include recording the calculated mipmap level in the mipmap request register.

또한, 상기 밉맵 레벨을 예측하는 단계는, 상기 텍스처를 사용할 프리미티브를 구성하는 정점에 기초하여 상기 밉맵 레벨을 예측하는 단계를 포함할 수 있다.Also, the predicting of the mipmap level may include predicting the mipmap level based on vertices constituting a primitive using the texture.

또한, 상기 밉맵 레벨을 예측하는 단계는, 상기 프리미티브를 구성하는 정점의 좌표를 획득하는 단계; 상기 정점의 좌표에 기초하여 상기 프리미티브의 크기 및 Z 평면상에서의 기울기를 산출하는 단계; 및 상기 프리미티브의 크기, 상기 프리미티브의 Z 평면상에서의 기울기, 상기 텍스처의 좌표 및 상기 텍스처의 크기에 기초하여 상기 밉맵 레벨을 예측하는 단계를 포함할 수 있다.The predicting of the mipmap level may include: obtaining coordinates of vertices constituting the primitive; calculating a size of the primitive and a slope on the Z plane based on the coordinates of the vertex; and predicting the mipmap level based on the size of the primitive, the slope of the primitive on the Z plane, coordinates of the texture, and the size of the texture.

또한, 상기 허용 오차는 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨의 일치 여부에 기초하여 조정될 수 있다.Also, the tolerance may be adjusted based on whether the predicted mipmap level matches the calculated mipmap level.

또한, 상기 밉맵 예측 레지스터 및 상기 밉맵 요청 레지스터를 이용하여, 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨의 일치 여부를 판단하는 단계; 및 상기 판단 결과, 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨이 일치하는 경우, 상기 허용 오차를 감소시키는 단계를 더 포함할 수 있다.determining whether the predicted mipmap level matches the calculated mipmap level using the mipmap prediction register and the mipmap request register; and reducing the tolerance when the predicted mipmap level and the calculated mipmap level match as a result of the determination.

또한, 상기 밉맵 예측 레지스터 및 상기 밉맵 요청 레지스터를 이용하여, 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨의 일치 여부를 판단하는 단계; 및 상기 판단 결과, 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨이 일치하지 않는 경우, 상기 허용 오차를 증가시키는 단계를 더 포함할 수 있다.determining whether the predicted mipmap level matches the calculated mipmap level using the mipmap prediction register and the mipmap request register; and increasing the tolerance when the predicted mipmap level and the calculated mipmap level do not match as a result of the determination.

다른 실시예는, 상기 밉맵 생성 방법을 수행하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.Another embodiment provides a computer-readable recording medium in which a computer program for performing the mipmap generating method is recorded.

또 다른 실시예는, 밉맵 생성 장치에 있어서, 밉맵(mipmap) 생성 함수 호출에 따라, 텍스처(texture)에 대해 생성된 밉맵 레벨을 나타내는 밉맵 상태 레지스터(mipmap status register)를 할당하는 레지스터 할당부; 상기 텍스처에 대한 요청을 수신하고, 상기 텍스처에 대해 요청되는 밉맵 레벨(mipmap level)을 산출하는 밉맵 레벨 산출부; 및 상기 밉맵 상태 레지스터를 이용하여, 상기 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단하고, 상기 판단 결과에 기초하여, 상기 산출된 밉맵 레벨의 밉맵을 생성할지 여부를 결정하는 제어부를 포함한다. Another embodiment provides an apparatus for generating a mipmap, comprising: a register allocator for allocating a mipmap status register indicating a mipmap level generated for a texture according to a call of a mipmap generating function; a mipmap level calculator for receiving the request for the texture and calculating a mipmap level requested for the texture; and a control unit that determines whether a mipmap of the calculated mipmap level exists using the mipmap status register, and determines whether to generate a mipmap of the calculated mipmap level based on the determination result.

또한, 상기 제어부는, 상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정하고, 상기 산출된 밉맵 레벨의 밉맵에 액세스 할 수 있다.Also, when it is determined as a result of the determination that a mipmap of the calculated mipmap level exists, the control unit determines not to generate a mipmap of the calculated mipmap level, and accesses a mipmap of the calculated mipmap level there is.

또한, 상기 제어부는, 상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정하고, 상기 산출된 밉맵 레벨의 밉맵을 생성하고, 상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다.Also, when it is determined as a result of the determination that a mipmap of the calculated mipmap level does not exist, the controller determines to generate a mipmap of the calculated mipmap level, and generates a mipmap of the calculated mipmap level; It may be written to the mipmap status register to indicate that a mipmap of the mipmap level has been generated.

또한, 상기 레지스터를 할당부는, 상기 텍스처에 대해, 요청되는 밉맵 레벨을 예측하여 기록할 밉맵 예측 레지스터를 할당하고, 상기 제어부는, 상기 밉맵 레벨을 예측하고, 상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨을 기록하고, 상기 예측된 밉맵 레벨의 밉맵을 생성하고, 상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다. In addition, the register allocating unit allocates a mipmap prediction register to be recorded by predicting a requested mipmap level with respect to the texture, and the controller predicts the mipmap level and assigns the predicted mipmap level to the mipmap prediction register. may be recorded, a mipmap of the predicted mipmap level may be generated, and the mipmap status register may be recorded to indicate that a mipmap of the mipmap level has been generated.

또한, 상기 레지스터를 할당부는, 상기 텍스처에 대해, 실제 요청된 밉맵 레벨을 기록할 밉맵 요청 레지스터를 할당하고, 상기 제어부는, 상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨로부터 허용 오차(tolerance) 범위 내의 밉맵 레벨을 기록하고, 상기 예측된 밉맵 레벨로부터 상기 허용 오차 범위 내의 밉맵 레벨의 밉맵들을 생성하고, 상기 밉맵 상태 레지스터에 상기 예측된 밉맵 레벨로부터 상기 허용 오차 범위 내의 밉맵 레벨의 밉맵들이 생성된 것을 나타내도록 기록하고, 상기 밉맵 요청 레지스터 상에 상기 산출된 밉맵 레벨을 기록할 수 있다.In addition, the register allocating unit allocates a mipmap request register in which an actual requested mipmap level is recorded to the texture, and the controller is configured to allocate the mipmap prediction register to the mipmap prediction register within a tolerance range from the predicted mipmap level. record the mipmap level, generate mipmaps of the mipmap level within the tolerance from the predicted mipmap level, and indicate in the mipmap status register that mipmaps of the mipmap level within the tolerance range are generated from the predicted mipmap level and write the calculated mipmap level in the mipmap request register.

일 실시 예에 따른 밉맵 생성 방법은 프로그램의 실행 중에 밉맵을 생성하는 경우 밉맵 생성으로 인한 프로그램의 실행 속도 저하를 줄일 수 있다. The mipmap generating method according to an embodiment may reduce a decrease in the execution speed of the program due to mipmap generation when the mipmap is generated while the program is being executed.

또한, 일 실시 예에 따른 밉맵 생성 방법은 실제 밉맵이 사용되는 시점에, 요청되는 밉맵 레벨의 밉맵을 생성할 수 있다. Also, the mipmap generating method according to an embodiment may generate a mipmap of a requested mipmap level at a point in time when an actual mipmap is used.

또한, 일 실시 예에 따른 밉맵 생성 방법은 밉맵 레벨을 예측하여 밉맵을 생성할 수 있다.Also, the mipmap generating method according to an embodiment may generate a mipmap by predicting a mipmap level.

도 1은 밉맵의 사용 예 및 일 실시예에 따른 지연된 밉맵 생성을 설명하기 위한 개념도이다.
도 2는 일 실시 예에 따른 밉맵 생성 방법을 설명하기 위한 흐름도이다.
도 3은 일 실시 예에 따른 지연된 밉맵 생성 방법을 설명하기 위한 흐름도이다.
도 4는 도 3에 도시된 방법에 따른 밉맵 상태 레지스터의 예시도이다.
도 5는 다른 실시 예에 따른 밉맵 레벨을 예측하여 밉맵을 생성하는 방법을 설명하기 위한 흐름도이다.
도 6은 도 5에 도시된 방법에 따른 밉맵 상태 레지스터의 예시도이다.
도 7은 다른 실시 예에 따른 밉맵 레벨을 예측하는 방법을 설명하기 위한 흐름도이다.
도 8은 또 다른 실시 예에 따른 밉맵 레벨을 예측 시 허용 오차 조정을 설명하기 위한 예시도이다.
도 9는 일 실시 예에 따른 밉맵 생성 장치의 구조를 나타내는 블록도이다.
1 is a conceptual diagram illustrating an example of using a mipmap and delayed mipmap generation according to an embodiment.
2 is a flowchart illustrating a mipmap generation method according to an embodiment.
3 is a flowchart illustrating a method for generating a delayed mipmap according to an embodiment.
FIG. 4 is an exemplary diagram of a mipmap status register according to the method shown in FIG. 3 .
5 is a flowchart illustrating a method of generating a mipmap by predicting a mipmap level according to another embodiment.
FIG. 6 is an exemplary diagram of a mipmap status register according to the method shown in FIG. 5 .
7 is a flowchart illustrating a method of predicting a mipmap level according to another embodiment.
8 is an exemplary diagram for explaining tolerance adjustment when predicting a mipmap level according to another embodiment.
9 is a block diagram illustrating a structure of an apparatus for generating a mipmap according to an embodiment.

본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 개시된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. Since the present embodiments can apply various transformations and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the scope of the specific embodiments, and it should be understood to include all transformations, equivalents and substitutions included in the spirit and scope of the disclosed technology. In describing the embodiments, if it is determined that a detailed description of a related known technology may obscure the subject matter, the detailed description thereof will be omitted.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. Terms such as first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.

본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 권리범위를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the scope of rights. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present application, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is "connected" with another part, this includes not only the case of being "directly connected" but also the case of being "electrically connected" with another element interposed therebetween. . In addition, when a part "includes" a certain component, this means that other components may be further included, rather than excluding other components, unless otherwise stated.

이하, 실시 예를 첨부도면을 참조하여 상세히 설명하기로 한다. 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. Hereinafter, an embodiment will be described in detail with reference to the accompanying drawings. The invention may be embodied in many different forms and is not limited to the embodiments described herein. In addition, parts irrelevant to the description are omitted in the drawings, and similar reference numerals are attached to similar parts throughout the specification.

도 1은 밉맵의 사용 예 및 일 실시예에 따른 지연된 밉맵 생성을 설명하기 위한 개념도이다.1 is a conceptual diagram illustrating an example of using a mipmap and delayed mipmap generation according to an embodiment.

도 1(a)는 일반적인 밉맵 집합 및 밉맵의 맵핑을 설명하기 위한 개념도이다. 1A is a conceptual diagram for explaining a general mipmap set and mapping of mipmaps.

밉맵은 하나의 이미지를 기반으로 이를 축소시킨 여러 개의 이미지로 구성된다. 구현에 따라 차이가 있지만 보통 6 내지 8정도의 레벨을 가지며, 낮은 레벨은 높은 정밀도를 가지는 원본 이미지를, 높은 레벨은 낮은 정밀도를 가지는 이미지를 나타낸다. 밉맵 레벨이 올라감에 따라 일반적으로 이미지의 가로, 세로는 각각 (2를 밉맵 레벨만큼 거듭제곱한)만큼 작아지게 된다. 보통 X, Y축 방향으로 동시에 축소되지만 특이한 경우 X, Y축으로 서로 다른 비율의 축소를 적용하여 최종 결과물의 품질을 향상시키기도 한다. 사용될 밉맵의 밉맵 레벨(Level Of Detail)은, 연산에 의해 산출된다. 오브젝트가 화면에 크게 사상되는 경우(110), 낮은 밉맵 레벨(120)이 선택된다. 동일한 텍스쳐를 사용하는 오브젝트가 화면에 작게 사상되는 경우(130), 높은 밉맵 레벨(140)이 선택된다. A mipmap consists of several images that are reduced to one image. Although there are differences depending on implementation, it usually has about 6 to 8 levels. A low level indicates an original image with high precision, and a high level indicates an image with low precision. As the mipmap level rises, the image width and height will generally decrease by (2 multiplied by the mipmap level), respectively. Usually, it is reduced in the X and Y axis directions at the same time, but in unusual cases, the quality of the final result can be improved by applying different ratio reductions in the X and Y axes. The mipmap level (Level Of Detail) of the mipmap to be used is calculated by an operation. When the object is largely mapped to the screen (110), a low mipmap level (120) is selected. When an object using the same texture is mapped to a small screen (130), a high mipmap level (140) is selected.

일반적으로 텍스처로 사용될 2D 이미지가 생성되면, 텍스처 바인딩, 밉맵을 저장할 메모리 공간 할당, 밉맵 생성, 밉맵 사용의 순으로 단계가 진행된다. In general, when a 2D image to be used as a texture is created, the following steps are performed: binding the texture, allocating a memory space to store the mipmap, generating the mipmap, and using the mipmap.

도 1(b)는 일 실시예에 따른 지연된 밉맵 생성 및 사용을 나타내는 개념도이다. 1B is a conceptual diagram illustrating generation and use of a delayed mipmap according to an embodiment.

일 실시예에 따르면, 밉맵 생성은 함수 호출 단계가 아닌, 밉맵이 사용될 시점으로 미뤄질 수 있다. 즉, 밉맵 생성 장치는 텍스처로 사용될 2D 이미지의 밉맵 생성 함수가 호출된 시점에 이를 기록해 두고 함수를 리턴시키고, 실제 텍스처 요청이 발생한 시점에 요청된 밉맵 레벨의 밉맵을 생성할 수 있다. 이 경우, 정확히 사용되는 밉맵 레벨의 밉맵만을 생성할 수 있다.According to an embodiment, the mipmap generation may be deferred to a point in time when the mipmap is to be used instead of the function call stage. That is, the mipmap generating apparatus may record the mipmap generating function of the 2D image to be used as the texture at the time when the function is called, return the function, and generate a mipmap of the requested mipmap level when the actual texture request occurs. In this case, only mipmaps of the mipmap level that are used correctly can be generated.

다른 실시예에 따르면, 밉맵 생성 장치는 프리미티브(primitive)의 셋업 단계를 거쳐 화면 좌표가 얻어진 시점에서 밉맵 레벨을 예측하고, 예측된 밉맵 레벨의 밉맵을 생성할 수 있다. 이 경우 드로우 명령을 받은 이후부터 각각의 프리미티브에 대한 픽셀 셰이딩(Pixel Shading)이 수행될 때까지의 시간 동안 밉맵이 생성될 수 있기 때문에, 밉맵이 생성되는 시간이 감춰질 수 있다. 프리미티브란, 컴퓨터 그래픽스에서 그래픽스 프로그램에 의해 개별적인 실체로 그려지고 저장, 조작될 수 있는 선/원/곡선/다각형과 같은 그래픽 디자인을 창작하는 데 필요한 요소를 의미한다. 개시된 실시예를 적용하기 위한 프리미티브는 복잡하지 않은 형태인 것을 가정한다. 또한, 픽셀 셰이딩이란, 렌더링 단계에서 각각의 픽셀을 부드럽게 보이도록 하는 기능을 의미한다.According to another embodiment, the apparatus for generating a mipmap may predict a mipmap level at a point in time when screen coordinates are obtained through a primitive setup step, and may generate a mipmap of the predicted mipmap level. In this case, since mipmaps may be generated during a time from when a draw command is received until pixel shading is performed on each primitive, the mipmap generation time may be hidden. Primitives refer to elements necessary for creating graphic designs such as lines/circles/curves/polygons that can be drawn, stored, and manipulated as individual entities by a graphics program in computer graphics. It is assumed that the primitives for applying the disclosed embodiment are in an uncomplicated form. In addition, pixel shading refers to a function of making each pixel appear smooth in the rendering stage.

개시된 실시예들은 초대규모 집적 회로 (VLSI: Very Large Scale Integration), 그래픽 처리 장치 (GPU: Graphics Processing Unit), 애플리케이션 프로세서 (AP: Application Processor) 등의 분야에 적용될 수 있으나, 이에 제한되지 않는다. The disclosed embodiments may be applied to fields such as a very large scale integration (VLSI), a graphics processing unit (GPU), an application processor (AP), but is not limited thereto.

도 2는 일 실시 예에 따른 밉맵 생성 방법을 설명하기 위한 흐름도이다. 2 is a flowchart illustrating a mipmap generation method according to an embodiment.

단계 210에서, 밉맵 생성 장치는 밉맵(mipmap) 생성 함수 호출에 따라, 텍스처(texture)에 대해 생성된 밉맵 레벨을 나타내는 밉맵 상태 레지스터(register)를 할당한다.In operation 210, the mipmap generating apparatus allocates a mipmap status register indicating a mipmap level generated for a texture according to a mipmap generating function call.

일 실시예에 따라, 밉맵 생성 장치는 프레임 내의 각각의 텍스처에 대해 밉맵 상태 레지스터를 할당할 수 있다. 밉맵 상태 레지스터는, 구현되는 밉맵 레벨에 기초하여, 각각의 밉맵 레벨을 나타내는 비트(bit)들의 집합인 비트 벡터로 구성될 수 있다. 밉맵 상태 레지스터는 해당 밉맵 레벨의 밉맵이 존재하는지 여부를 나타낼 수 있다.According to an embodiment, the mipmap generating apparatus may allocate a mipmap status register to each texture in a frame. The mipmap status register may be composed of a bit vector that is a set of bits indicating each mipmap level based on the implemented mipmap level. The mipmap status register may indicate whether a mipmap of the corresponding mipmap level exists.

다른 실시예에 따라, 밉맵 생성 장치는 예측된 밉맵 레벨을 기록할 밉맵 예측 레지스터 및 실제 요청된 밉맵 레벨을 기록할 밉맵 요청 레지스터 각각에 슬롯을 더 할당할 수 있다. 밉맵 생성 장치는 밉맵 레벨을 예측하고, 예측된 밉맵 레벨의 밉맵을 생성할 수 있다. 또한, 밉맵 생성 장치는 밉맵 상태 레지스터에 생성된 밉맵 레벨을 나타내도록 기록할 수 있다. According to another embodiment, the mipmap generating apparatus may further allocate a slot to each of a mipmap prediction register in which a predicted mipmap level is recorded and a mipmap request register in which an actual requested mipmap level is recorded. The mipmap generating apparatus may predict a mipmap level and generate a mipmap of the predicted mipmap level. Also, the mipmap generating apparatus may record the mipmap level to indicate the generated mipmap level in the mipmap status register.

일 실시예에 따른 밉맵 생성 장치는, 최초의 밉맵 상태 레지스터가 원본 텍스처(레벨 0)가 존재하는 것을 나타내도록 초기값을 설정할 수 있다. The mipmap generating apparatus according to an embodiment may set an initial value such that the first mipmap status register indicates that the original texture (level 0) exists.

단계 220에서, 밉맵 생성 장치는 텍스처에 대한 요청을 수신하고, 텍스처에 대해 요청되는 밉맵 레벨을 산출한다. In operation 220, the mipmap generating apparatus receives a request for a texture, and calculates a mipmap level requested for the texture.

일 실시예에 따른 밉맵 생성 장치는 해당 오브젝트에 사용될 텍스처에 대한 밉맵 레벨을 산출할 수 있다. 밉맵 생성 장치는 픽셀 셰이딩에서 발생한 텍스쳐 요청에 따라, 주소 생성 유닛에서 참조할 밉맵의 레벨을 산출할 수 있다. 밉맵 레벨의 산출은 호스트 프로세서에서 수행될 수도 있고, 별도의 하드웨어에서 수행될 수도 있으나, 이에 제한되지 않는다. The mipmap generating apparatus according to an embodiment may calculate a mipmap level for a texture to be used for a corresponding object. The mipmap generating apparatus may calculate a mipmap level to be referenced by the address generating unit according to a texture request generated in pixel shading. The calculation of the mipmap level may be performed in the host processor or in separate hardware, but is not limited thereto.

단계 230에서, 밉맵 생성 장치는 밉맵 상태 레지스터에 기초하여, 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단한다.In operation 230, the mipmap generating apparatus determines whether a mipmap of the calculated mipmap level exists, based on the mipmap status register.

밉맵 상태 레지스터에 기초하여 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단하는 방법에 대해서는, 도 4에서 후술 하도록 한다.A method of determining whether a mipmap of a mipmap level calculated based on the mipmap status register exists will be described later with reference to FIG. 4 .

단계 240에서, 밉맵 생성 장치는 판단 결과에 기초하여, 산출된 밉맵 레벨을 생성할지 여부를 결정한다.In operation 240, the mipmap generating apparatus determines whether to generate the calculated mipmap level based on the determination result.

일 실시예에 따른 밉맵 생성 장치는, 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정할 수 있다. 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵에 액세스할 수 있다. 밉맵 생성 장치는 액세스한 밉맵을 이용하여 텍스처 맵핑을 수행할 수 있다. When it is determined that a mipmap of the calculated mipmap level exists, the mipmap generating apparatus according to an embodiment may determine not to generate a mipmap of the calculated mipmap level. The mipmap generating device may access a mipmap of the calculated mipmap level. The mipmap generating apparatus may perform texture mapping using the accessed mipmap.

예를 들어, 다른 프리미티브에 의해 해당 텍스처의 밉맵이 이미 생성되어 있는 경우, 밉맵 생성 장치는 재차 밉맵 생성 단계를 거칠 필요 없이, 필요한 밉맵 레벨의 밉맵을 액세스하여 텍스처 맵핑에 사용할 수 있다.For example, if a mipmap of the corresponding texture has already been generated by another primitive, the mipmap generator can access the mipmap of the required mipmap level and use it for texture mapping without having to go through the mipmap generation step again.

일 실시예에 따른 밉맵 생성 장치는, 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정할 수 있다. 밉맵 생성 장치는, 산출된 밉맵 레벨의 밉맵을 생성할 수 있다. 밉맵 생성 장치는, 밉맵 상태 레지스터에 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다. When it is determined that a mipmap of the calculated mipmap level does not exist, the mipmap generating apparatus according to an embodiment may determine to generate a mipmap of the calculated mipmap level. The mipmap generating apparatus may generate a mipmap of the calculated mipmap level. The mipmap generating apparatus may write to the mipmap status register to indicate that a mipmap of a mipmap level has been generated.

또한, 판단 결과, 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 밉맵 생성 장치는 텍스처 요청을 다시 시도할 것을 명령할 수 있다. 밉맵 생성 장치는, 산출된 밉맵 레벨의 밉맵을 생성하는 동안에, 텍스처 요청이 다시 시도되기 전까지 다른 텍스처 요청을 처리할 수 있다. Also, if it is determined as a result of the determination that a mipmap of the calculated mipmap level does not exist, the mipmap generating apparatus may instruct to retry the texture request. While generating a mipmap of the calculated mipmap level, the mipmap generating apparatus may process another texture request until the texture request is retryed.

일 실시예에 따라, 해당 밉맵이 준비되지 전까지 텍스처 요청에 대해 전술한 단계 220 내지 단계 240이 반복적으로 수행될 수 있다. 다른 텍스처 요청은 현재 처리 중인 텍스처와는 무관하게, 해당 밉맵이 준비되면 곧바로 처리될 수 있다. According to an embodiment, the aforementioned steps 220 to 240 may be repeatedly performed with respect to the texture request until the corresponding mipmap is not prepared. Other texture requests can be processed as soon as the corresponding mipmap is ready, regardless of the texture currently being processed.

도 3은 일 실시 예에 따른 지연된 밉맵 생성 방법을 설명하기 위한 흐름도이다.3 is a flowchart illustrating a method for generating a delayed mipmap according to an embodiment.

도 2에서와 중복되는 설명은 생략한다.A description overlapping with that of FIG. 2 will be omitted.

단계 310에서, 밉맵 생성 장치는 비디오 프레임을 디코딩하고, 렌더-투-텍스처 기법을 적용하여 텍스처를 생성할 수 있다.In operation 310, the mipmap generating apparatus may generate a texture by decoding a video frame and applying a render-to-texture technique.

단계 320에서, 밉맵 생성 장치는 생성된 텍스처를 바인딩할 수 있다.In operation 320, the mipmap generating apparatus may bind the generated texture.

단계 330에서, 밉맵 생성 장치는 밉맵 생성 함수의 호출에 따라, 텍스처에 대해 생성된 밉맵 레벨을 나타내는 밉맵 상태 레지스터를 할당할 수 있다. In operation 330, the mipmap generating apparatus may allocate a mipmap status register indicating the mipmap level generated for the texture according to the call of the mipmap generating function.

일 실시예에 따라, 밉맵 생성 장치는 텍스처 밉맵 생성 명령과 무관하게 메모리 공간 할당 후, 밉맵은 생성하지 않은 채로 명령을 리턴할 수 있다. According to an embodiment, the mipmap generating apparatus may return a command without generating a mipmap after allocating a memory space regardless of the texture mipmap generating command.

단계 340에서, 밉맵 생성 장치는 텍스처 요청을 수신하고, 텍스처에 대해 요청되는 밉맵 레벨을 산출할 수 있다. In operation 340, the mipmap generating apparatus may receive a texture request and calculate a mipmap level requested for the texture.

일 실시예에서 밉맵 생성 장치는, 픽셀 셰이딩 중 실제 텍스처 요청이 발생한 경우, 픽셀 셰이딩에서 발생한 텍스처 요청을 기반으로 주소 생성 유닛에서 참조할 밉맵의 레벨을 산출할 수 있다. In an embodiment, when an actual texture request occurs during pixel shading, the mipmap generating apparatus may calculate a mipmap level to be referenced by the address generating unit based on the texture request generated in the pixel shading.

밉맵 생성 장치는 그래픽스 파이프라인(graphics pipeline)을 통과하여 해당 텍스처에 대한 실제 요청이 발생했을 때, 텍스처 주소를 참조해, 산출된 밉맵 레벨을 수신할 수 있다. 그래픽스 파이프라인이란, 3차원 컴퓨터 그래픽스에서 3차원 이미지를 2차원 래스터 이미지로 표현을 하기 위한 단계적인 방법을 의미한다. 대부분의 그래픽 카드는 그래픽 처리 과정을 3차원 사영, 윈도 클리핑, 셰이딩, 렌더링 등으로 나누어 각각의 하부 모듈에서 병렬적으로 수행할 수 있다. When an actual request for a corresponding texture occurs through a graphics pipeline, the mipmap generating apparatus may receive the calculated mipmap level by referring to the texture address. The graphics pipeline refers to a step-by-step method for expressing a 3D image as a 2D raster image in 3D computer graphics. Most graphics cards divide the graphics processing process into 3D projection, window clipping, shading, rendering, etc., and can be performed in parallel in each sub-module.

단계 350에서, 밉맵 생성 장치는 밉맵 상태 레지스터를 이용하여 산출된 밉맵 레벨의 밉맵이 존재하는지 판단할 수 있다. In operation 350, the mipmap generating apparatus may determine whether a mipmap of the calculated mipmap level exists using the mipmap status register.

밉맵 생성 장치는, 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 단계 360을 수행하고, 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 단계 370을 수행할 수 있다. If it is determined that a mipmap of the calculated mipmap level exists, the apparatus for generating a mipmap may perform operation 360 , and if it is determined that a mipmap of the calculated mipmap level does not exist, may perform operation 370 .

단계 360에서, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 존재한다고 판단됨에 따라, 산출된 밉맵 레벨의 밉맵에 액세스할 수 있다. In operation 360 , the mipmap generating apparatus may access a mipmap of the calculated mipmap level as it is determined that a mipmap of the calculated mipmap level exists.

밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 존재한다고 판단됨에 따라, 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정할 수 있다.As it is determined that a mipmap of the calculated mipmap level exists, the mipmap generating apparatus may determine not to generate a mipmap of the calculated mipmap level.

밉맵 생성 장치는 액세스된 밉맵을 해당 오브젝트에 대한 텍스처 맵핑에 사용할 수 있다.The mipmap generator may use the accessed mipmap for texture mapping for that object.

예를 들어, 최초 상태에서는 원본 텍스처(레벨 0)만이 존재하지만, 산출된 밉맵 레벨이 레벨 0인 경우, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 존재한다고 판단할 수 있다. 또한, 밉맵 생성 장치는 원본 텍스처를 사용하여 텍스처 맵핑을 수행할 수 있다. For example, in the initial state, only the original texture (level 0) exists, but when the calculated mipmap level is level 0, the mipmap generating apparatus may determine that a mipmap of the calculated mipmap level exists. Also, the mipmap generating apparatus may perform texture mapping using the original texture.

다른 예로, 산출된 밉맵 레벨이 레벨 0이 아니지만, 해당 텍스처가 이전에 요청되어 산출된 밉맵 레벨의 밉맵이 이미 생성된 경우, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 존재한다고 판단할 수 있다.As another example, if the calculated mipmap level is not level 0, but a mipmap of the calculated mipmap level has already been generated because a corresponding texture has been previously requested, the mipmap generating apparatus may determine that a mipmap of the calculated mipmap level exists.

단계 370에서, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단됨에 따라, 텍스처 요청을 다시 시도할 것을 명령할 수 있다. In operation 370, the mipmap generating apparatus may instruct to retry the texture request as it is determined that a mipmap of the calculated mipmap level does not exist.

예를 들어, 해당 텍스처가 최초로 요청된 경우, 원본 텍스처(레벨 0)만이 존재하므로, 산출된 밉맵 레벨이 0이 아닌 경우, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단할 수 있다.For example, when the corresponding texture is requested for the first time, only the original texture (level 0) exists. Therefore, when the calculated mipmap level is not 0, the mipmap generating apparatus may determine that a mipmap of the calculated mipmap level does not exist. .

밉맵 생성 장치는, 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단됨에 따라, 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정할 수 있다.When it is determined that a mipmap of the calculated mipmap level does not exist, the mipmap generating apparatus may determine to generate a mipmap of the calculated mipmap level.

단계 380에서, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵을 생성할 수 있다. In operation 380, the mipmap generating apparatus may generate a mipmap of the calculated mipmap level.

일 실시예에 따라, 밉맵 생성을 함수 호출 단계가 아닌, 텍스처가 요청된 이후로 지연됨으로써, 밉맵 생성 장치는 실제로 사용되는 밉맵 레벨의 밉맵만을 생성할 수 있다. 따라서, 밉맵 생성 장치는 불필요한 밉맵 레벨의 밉맵 생성을 피할 수 있다. According to an embodiment, since mipmap generation is delayed after a texture is requested instead of a function call step, the mipmap generating apparatus may generate only a mipmap of a mipmap level that is actually used. Accordingly, the mipmap generating apparatus may avoid generating a mipmap of an unnecessary mipmap level.

단계 390에서, 밉맵 생성 장치는 밉맵 상태 레지스터에 산출된 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다. In operation 390, the mipmap generating apparatus may record in the mipmap status register to indicate that a mipmap of the calculated mipmap level is generated.

일 실시예에 따른 밉맵 생성 장치는, 생성된 밉맵의 밉맵 레벨에 대응되는, 밉맵 상태 레지스터의 비트 벡터에 밉맵이 생성된 것을 나타내도록 기록할 수 있다. The mipmap generating apparatus according to an embodiment may record the mipmap generation in a bit vector of a mipmap status register corresponding to the mipmap level of the generated mipmap.

또한, 밉맵 생성 장치는 일정 시간 경과 후, 텍스처 요청을 다시 수신할 수 있다. 즉, 다시 단계 340이 수행될 수 있다. 밉맵 생성 장치는 밉맵 상태 레지스터를 이용하여, 텍스처에 대해 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단할 수 있다. 판단 결과 산출된 밉맵 레벨의 밉맵이 존재하는 경우, 단계 360이 수행되어, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵에 액세스할 수 있다. Also, the mipmap generating apparatus may receive the texture request again after a predetermined time has elapsed. That is, step 340 may be performed again. The mipmap generating apparatus may determine whether a mipmap of a mipmap level calculated for the texture exists by using the mipmap status register. As a result of the determination, if a mipmap of the calculated mipmap level exists, operation 360 is performed, and the mipmap generating apparatus may access a mipmap of the calculated mipmap level.

일 실시예에 따르면, 원본 텍스처(레벨 0)만이 사용되었을 경우, 또는 해당 텍스처가 전혀 사용되지 않았을 경우, 밉맵 생성 단계를 생략할 수 있다. 이에 따라, 프로그램 실행 중 밉맵 생성에 따른 부하를 제거할 수 있다. According to an embodiment, when only the original texture (level 0) is used, or when the corresponding texture is not used at all, the mipmap generation step may be omitted. Accordingly, the load due to mipmap generation during program execution can be removed.

또한, 예를 들어, 8개의 밉맵 레벨 중 레벨 1의 텍스처만 사용되는 경우, 레벨 1의 밉맵만을 생성하면 되므로, 레벨 2 내지 레벨 8의 밉맵 생성에 필요한 시간 및 컴퓨팅 소스를 절감할 수 있다. Also, for example, when only the level 1 texture is used among the eight mipmap levels, only the level 1 mipmap needs to be generated, thereby reducing the time and computing source required for generating the level 2 to level 8 mipmaps.

도 4는 도 3에 도시된 방법에 따른 밉맵 상태 레지스터의 예시도이다.FIG. 4 is an exemplary diagram of a mipmap status register according to the method shown in FIG. 3 .

도 4a는 할당된 최초의 밉맵 상태 레지스터를 나타낸다. Figure 4a shows the first mipmap status register allocated.

일 실시예에 따라, 밉맵 생성 장치는 프레임 내의 각각의 텍스처에 대해 밉맵 상태 레지스터를 할당할 수 있다. 즉, 밉맵 생성 장치는 각각의 텍스처마다 밉맵 상태를 저장하기 위해 저장 공간의 한 슬롯(slot)(430)을 할당할 수 있다. 도 4a를 참조하면, 제1 텍스처, 제2 텍스처, 제3 텍스처, … 각각에 대해 밉맵 상태 레지스터가 할당된 것이 나타난다. According to an embodiment, the mipmap generating apparatus may allocate a mipmap status register to each texture in a frame. That is, the mipmap generating apparatus may allocate one slot 430 of the storage space to store the mipmap state for each texture. Referring to FIG. 4A , a first texture, a second texture, a third texture, . . . It appears that a mipmap status register has been allocated for each.

밉맵 상태 레지스터는, 구현되는 밉맵 레벨에 기초하여, 각각의 밉맵 레벨을 나타내는 비트(410-418)들의 집합인 비트 벡터(420)로 구성될 수 있다. The mipmap status register may consist of a bit vector 420 that is a set of bits 410-418 representing each mipmap level, based on the implemented mipmap level.

도 4a를 참조하면, 밉맵은 8개의 밉맵 레벨로 구현될 수 있다. 밉맵 상태 레지스터의 제1 비트(410)는 원본 텍스처 즉, 레벨 0을 나타내고, 제2 비트(411)는 레벨 1을 나타내고, 제3 비트(412)는 레벨 2를 나타내고, 제4 비트(413)는 레벨 3를 나타내고, 제5 비트(414)는 레벨 4를 나타내고, 제6 비트(415)는 레벨 5를 나타내고, 제7 비트(416)는 레벨 6을 나타내고, 제8 비트(417)는 레벨 7을 나타내고, 제9 비트(418)는 레벨 8을 나타낼 수 있다. Referring to FIG. 4A , a mipmap may be implemented with eight mipmap levels. The first bit 410 of the mipmap status register represents the original texture, i.e. level 0, the second bit 411 represents level 1, the third bit 412 represents level 2, and the fourth bit 413 represents level 3, a fifth bit 414 represents level 4, a sixth bit 415 represents level 5, a seventh bit 416 represents level 6, and an eighth bit 417 represents a level 7, and the ninth bit 418 may indicate level 8.

일 실시예에 따른 밉맵 생성 장치는, 최초의 밉맵 상태 레지스터가 원본 텍스처(레벨 0)가 존재하는 것을 나타내도록 초기값을 설정할 수 있다. 즉, 밉맵 상태 레지스터의 제1 비트는 ‘1’이고, 나머지 제2 내지 제9 비트는 ‘0’을 나타낼 수 있다. 이는, 현재 원본 텍스처만이 존재하며, 레벨 1 내지 레벨 8의 밉맵은 존재하지 않는다는 것을 나타낼 수 있다. The mipmap generating apparatus according to an embodiment may set an initial value such that the first mipmap status register indicates that the original texture (level 0) exists. That is, the first bit of the mipmap status register may indicate '1', and the remaining second to ninth bits may indicate '0'. This may indicate that only the original texture currently exists, and the mipmaps of level 1 to level 8 do not exist.

도 4b는 밉맵 생성 후 상태 레지스터를 나타낸다. 4B shows the status register after mipmap generation.

도 4b를 참조하면, 설명의 편의를 위해 제1 텍스처에 대한 상태 레지스터만이 도시되어 있다. Referring to FIG. 4B , only the status register for the first texture is shown for convenience of description.

일 실시예에 따른 밉맵 생성 장치는, 밉맵 생성 단계에서, 밉맵 상태 레지스터에 밉맵이 생성된 것을 나타내도록 기록할 수 있다.The mipmap generating apparatus according to an embodiment may record the mipmap generation to indicate that the mipmap is generated in the mipmap status register in the mipmap generating step.

예를 들어, 밉맵 생성 장치는, 요청되는 밉맵 레벨이 레벨 3인 경우, 원본 텍스처로부터 레벨 1, 레벨2, 및 레벨 3의 밉맵을 순차적으로 생성할 수 있다. For example, when the requested mipmap level is level 3, the mipmap generating apparatus may sequentially generate level 1, level 2, and level 3 mipmaps from the original texture.

일 실시예에 따라, 요청되는 밉맵 레벨의 밉맵과 이전에 순차적으로 생성된 밉맵들을 모두 저장하는 경우(440), 밉맵 생성 장치는 제2 내지 제4 비트에 ‘1’을 기록할 수 있다. 이 경우, 밉맵 상태 레지스터의 원본 텍스처를 나타내는 제1 비트 및 레벨 1 내지 3을 나타내는 제2 내지 제4 비트는 ‘1’을 나타내고, 레벨 4 내지 8을 나타내는 제4 내지 제8 비트는 ‘0’을 나타낼 수 있다. According to an embodiment, when both the mipmap of the requested mipmap level and the previously sequentially generated mipmaps are stored ( 440 ), the mipmap generating apparatus may write '1' in the second to fourth bits. In this case, the first bit representing the original texture of the mipmap status register and the second to fourth bits representing levels 1 to 3 represent '1', and the fourth to eighth bits representing levels 4 to 8 are '0'. can represent

다른 실시예에 따라, 요청되는 밉맵 레벨의 밉맵만을 저장하고, 이전에 순차적으로 생성된 밉맵들은 저장하지 않는 경우(450), 밉맵 생성 장치는 밉맵 상태 레지스터의 제4 비트에 ‘1’을 기록할 수 있다. 이 경우, 밉맵 상태 레지스터의 원본 텍스처를 나타내는 제1 비트 및 레벨 3을 나타내는 제4 비트는 ‘1’을 나타내고, 레벨 1, 2, 4 내지 8을 나타내는 제2, 제3, 제5 내지 제9 비트는 ‘0’을 나타낼 수 있다. According to another embodiment, when storing only mipmaps of the requested mipmap level and not storing previously sequentially generated mipmaps ( 450 ), the mipmap generating device may write '1' to the fourth bit of the mipmap status register. can In this case, the first bit representing the original texture of the mipmap status register and the fourth bit representing level 3 represent '1', and the second, third, fifth to ninth bits representing levels 1, 2, 4 to 8 A bit may represent '0'.

도 5는 다른 실시 예에 따른 밉맵 레벨을 예측하여 밉맵을 생성하는 방법을 설명하기 위한 흐름도이다.5 is a flowchart illustrating a method of generating a mipmap by predicting a mipmap level according to another embodiment.

단계 510에서, 밉맵 생성 장치는 밉맵 생성 함수 호출에 따라, 텍스처에 대해, 해당 텍스처의 밉맵 레벨의 밉맵이 존재하는지 여부를 나타내는 밉맵 상태 레지스터 및 요청되는 밉맵 레벨을 예측하여 기록할 밉맵 예측 레지스터를 할당할 수 있다.In step 510, the mipmap generating device allocates, for the texture, a mipmap status register indicating whether a mipmap of the mipmap level of the texture exists, and a mipmap prediction register to predict and write the requested mipmap level according to the mipmap generating function call can do.

일 실시예에 따라, 밉맵 생성 장치는 프레임 내의 각각의 텍스처에 대해, 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 실제 요청된 밉맵 레벨을 기록할 밉맵 요청 레지스터를 할당할 수 있다. According to an embodiment, the mipmap generating apparatus may allocate a mipmap status register, a mipmap prediction register, and a mipmap request register in which an actual requested mipmap level is recorded, to each texture in a frame.

단계 520에서, 밉맵 생성 장치는 렌더링을 시작할 수 있다.In operation 520, the mipmap generating apparatus may start rendering.

단계 530에서, 밉맵 생성 장치는 오브젝트가 밉맵 생성이 요청되는 텍스처를 사용하는지 여부를 판단할 수 있다. In operation 530, the mipmap generating apparatus may determine whether the object uses a texture for which mipmap generation is requested.

판단 결과, 오브젝트가 밉맵 생성이 요청되는 텍스처를 사용하는 경우, 단계 540이 수행되고, 오브젝트가 밉맵 생성이 요청되는 텍스처를 사용하지 않는 경우, 단계 545가 수행될 수 있다. As a result of the determination, if the object uses a texture for which mipmap generation is requested, step 540 may be performed, and if the object does not use a texture for which mipmap generation is requested, step 545 may be performed.

단계 545에서, 오브젝트가 밉맵 생성이 요청되는 텍스처를 사용하지 않는다는 판단에 따라, 밉맵 생성 장치는 밉맵 기법의 적용이 없이 렌더링을 수행할 수 있다.In operation 545 , according to a determination that the object does not use a texture for which mipmap generation is requested, the mipmap generating apparatus may perform rendering without applying the mipmap technique.

단계 540에서, 오브젝트가 밉맵 생성이 요청되는 텍스처를 사용한다는 판단에 따라, 밉맵 생성 장치는 사용될 밉맵 레벨을 예측할 수 있다. In operation 540, according to determining that the object uses a texture for which mipmap generation is requested, the mipmap generating apparatus may predict a mipmap level to be used.

일 실시예에 따라, 밉맵 생성 장치는 밉맵 예측 레지스터에 예측된 밉맵 레벨을 기록할 수 있다.According to an embodiment, the mipmap generating apparatus may record the predicted mipmap level in the mipmap prediction register.

일 실시예에 따라, 밉맵 생성 장치는 오브젝트마다 밉맵 레벨을 예측할 수 있다. 이 경우, 실제 요청되는 밉맵 레벨의 산출은 오브젝트를 구성하는 각각의 픽셀마다 행해진다는 점에서, 밉맵 레벨의 산출과 밉맵 레벨의 예측은 차이가 있다. According to an embodiment, the apparatus for generating a mipmap may predict a mipmap level for each object. In this case, the calculation of the mipmap level and the prediction of the mipmap level are different in that the calculation of the actually requested mipmap level is performed for each pixel constituting the object.

일 실시예에 따라, 밉맵 생성 장치는 정점 셰이딩을 통과한 각 정점과 이를 기반으로 하는 프리미티브가 셋업 단계를 거쳐 화면 좌표가 얻어지면, 이를 기초로 하여 밉맵 레벨을 예측할 수 있다. 밉맵 생성 장치는 실제 텍스처 요청과 무관하게 그리기 명령(드로우 콜)이 들어온 이후 셋업 단계에서 각 프리미티브를 구성하는 여러 정점의 화면좌표, Z평면상 기울기, 텍스처 좌표 및 텍스쳐의 크기를 기반으로 해당 밉맵 레벨을 예측할 수 있다. According to an embodiment, the mipmap generating apparatus may predict the mipmap level based on the screen coordinates obtained through a setup step of each vertex passing through vertex shading and a primitive based thereon. The mipmap generation device generates the corresponding mipmap level based on the screen coordinates, inclination on the Z plane, texture coordinates, and texture size of various vertices constituting each primitive in the setup stage after a drawing command (draw call) is received regardless of the actual texture request. can be predicted.

일 실시예에 따라, 밉맵 생성 장치는 예측된 밉맵 레벨의 밉맵을 생성할 수 있다. 또한, 밉맵 생성 장치는 밉맵 상태 레지스터에 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다.According to an embodiment, the mipmap generating apparatus may generate a mipmap of the predicted mipmap level. Also, the mipmap generating apparatus may record in the mipmap status register to indicate that a mipmap of a mipmap level is generated.

밉맵 레벨을 예측하는 방법에 대해서는 도 7에서 상세히 후술한다.A method of predicting the mipmap level will be described in detail later with reference to FIG. 7 .

단계 550에서, 밉맵 생성 장치는 텍스처를 요청하고 텍스처에 대해 요청되는 밉맵 레벨을 산출할 수 있다. In operation 550, the mipmap generating apparatus may request a texture and calculate a requested mipmap level for the texture.

밉맵 생성 장치는 예측된 밉맵 레벨과는 별개로, 실제 맵핑에 사용될 밉맵 레벨을 산출할 수 있다. The mipmap generating apparatus may calculate a mipmap level to be used for actual mapping independently from the predicted mipmap level.

일 실시예에 따른 밉맵 생성 장치는, 밉맵 요청 레지스터 상에 산출된 밉맵 레벨을 기록할 수 있다.The mipmap generating apparatus according to an embodiment may record the calculated mipmap level in the mipmap request register.

단계 560에서, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단할 수 있다. In operation 560, the mipmap generating apparatus may determine whether a mipmap of the calculated mipmap level exists.

일 실시예에서, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 밉맵 상태 레지스터에 기초하여 판단할 수 있다.In an embodiment, the mipmap generating apparatus may determine whether a mipmap of the calculated mipmap level exists based on the mipmap status register.

판단 결과, 산출된 밉맵 레벨의 밉맵이 존재한다고 판단되면, 단계 575가 수행되고, 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단되면, 단계 570이 수행될 수 있다. As a result of the determination, if it is determined that a mipmap of the calculated mipmap level exists, operation 575 may be performed. If it is determined that a mipmap of the calculated mipmap level does not exist, operation 570 may be performed.

단계 575에서, 산출된 밉맵 레벨의 밉맵이 존재한다고 판단됨에 따라, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정하고, 산출된 밉맵 레벨의 밉맵에 액세스할 수 있다. In operation 575, as it is determined that a mipmap of the calculated mipmap level exists, the mipmap generating apparatus may determine not to generate a mipmap of the calculated mipmap level, and may access a mipmap of the calculated mipmap level.

밉맵 생성 장치는 액세스한 밉맵을 맵핑에 사용하여 장면 렌더링을 수행할 수 있다. The mipmap generating apparatus may perform scene rendering by using the accessed mipmap for mapping.

단계 570에서, 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단됨에 따라, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정하고, 텍스처 요청을 다시 시도할 것을 명령을 할 수 있다. In operation 570, when it is determined that a mipmap of the calculated mipmap level does not exist, the mipmap generating apparatus determines to generate a mipmap of the calculated mipmap level, and may instruct to retry the texture request.

단계 580에서, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵을 생성할 수 있다. In operation 580, the mipmap generating apparatus may generate a mipmap of the calculated mipmap level.

단계 590에서, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 밉맵 상태 레지스터에 기록할 수 있다. In operation 590, the mipmap generating apparatus may write to the mipmap status register to indicate that a mipmap of the calculated mipmap level has been generated.

또한 밉맵 생성 장치는, 일정 시간 경과 후, 텍스처 요청을 다시 수신할 수 있다. 즉, 단계 550이 다시 수행될 수 있다. Also, the mipmap generating apparatus may receive the texture request again after a predetermined time has elapsed. That is, step 550 may be performed again.

일 실시예에 따른 밉맵 생성 장치는, 밉맵 상태 레지스터에 기초하여, 텍스처에 대해 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단할 수 있다. 판단 결과, 산출된 밉맵 레벨의 밉맵은 단계 580에서 이미 생성되었으므로, 산출된 밉맵 레벨의 밉맵이 존재한다고 판단될 수 있다. 이러한 판단 결과에 기초하여, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵에 액세스할 수 있다. The mipmap generating apparatus according to an embodiment may determine whether a mipmap of a mipmap level calculated for a texture exists, based on the mipmap status register. As a result of the determination, since the mipmap of the calculated mipmap level has already been generated in operation 580, it may be determined that a mipmap of the calculated mipmap level exists. Based on the determination result, the mipmap generating apparatus may access a mipmap of the calculated mipmap level.

일 실시예에 따르면, 예측된 밉맵 레벨이 실제 사용되는 것으로 산출된 밉맵 레벨과 상이할 수도 있다. 그러나, 밉맵이 생성되는 시간은 드로우 명령을 받은 이후부터 해당 각 프리미티브에 대한 픽셀 셰이딩이 수행 될 때까지의 시간으로 감춰질 수 있다. According to an embodiment, the predicted mipmap level may be different from the mipmap level calculated as being actually used. However, the time when the mipmap is generated may be hidden as the time from receiving a draw command until pixel shading is performed for each corresponding primitive.

일 실시예에 따르면, 밉맵 생성 장치는 프리미티브의 개수에 따라, 프리미티브의 개수가 임계값 이상인 경우, 밉맵 생성 지연 방식을 적용하지 않고, 모든 밉맵 레벨에 대해 밉맵을 생성하는 일반적인 방식을 적용할 수 있다. 임계값은 프리미티브의 개수가 많음으로 인해, 개시된 실시예에 따른 밉맵 생성 지연 방식을 적용하는 것이 큰 부하로 작용하여 오히려 종래 방식을 적용하는 것보다 비효율적인 것으로 판단되는 수준에서 정해질 수 있다. According to an embodiment, the mipmap generating apparatus may apply a general method of generating mipmaps for all mipmap levels without applying a mipmap generation delay method when the number of primitives is equal to or greater than a threshold according to the number of primitives. . Due to the large number of primitives, the threshold value may be set at a level at which it is determined that applying the mipmap generation delay method according to the disclosed embodiment acts as a heavy load and is rather inefficient than applying the conventional method.

일 실시예에 따르면, 밉맵 생성 장치는 오브젝트의 바운딩 박스에 기초하여, 복잡한 프리미티브를 가지는 오브젝트에 대해서는, 밉맵 생성 지연 방식을 적용하지 않고, 모든 밉맵 레벨에 대해 밉맵을 생성하는 일반적인 방식을 적용할 수 있다. 복잡한 프리미티브란, 개시된 실시예에 따른 밉맵 생성 지연 방식을 적용하는 것이 큰 부하로 작용하여 오히려 종래 방식을 적용하는 것보다 비효율적인 것으로 판단되는 수준에서 정해질 수 있다. According to an embodiment, the mipmap generating apparatus may apply a general method of generating mipmaps for all mipmap levels without applying a mipmap generation delay method to an object having a complex primitive based on the object's bounding box. there is. The complex primitive may be determined at a level at which it is judged that applying the mipmap generation delay method according to the disclosed embodiment acts as a heavy load and is rather inefficient than applying the conventional method.

도 6은 도 5에 도시된 방법에 따른 밉맵 상태 레지스터의 예시도이다.FIG. 6 is an exemplary diagram of a mipmap status register according to the method shown in FIG. 5 .

일 실시예에 따라, 밉맵 생성 장치는 프레임 내의 각각의 텍스처에 대해 밉맵 상태 레지스터(StatusReg), 밉맵 예측 레지스터(PredReg) 및 밉맵 요청 레지스터(RequestReg)를 할당할 수 있다. 밉맵 상태 레지스터는, 구현되는 밉맵 레벨에 기초하여, 각각의 밉맵 레벨을 나타내는 비트들의 집합인 비트 벡터로 구성될 수 있다. 마찬가지로, 밉맵 예측 레지스터는 구현되는 밉맵 레벨에 기초하여, 각각의 밉맵 레벨을 나타내는 비트들의 집합인 비트 벡터로 구성될 수 있다. 밉맵 요청 레지스터 또한, 구현되는 밉맵 레벨에 기초하여, 각각의 밉맵 레벨을 나타내는 비트들의 집합인 비트 벡터로 구성될 수 있다.According to an embodiment, the mipmap generating apparatus may allocate a mipmap status register (StatusReg), a mipmap prediction register (PredReg), and a mipmap request register (RequestReg) to each texture in a frame. The mipmap status register may consist of a bit vector that is a set of bits indicating each mipmap level based on the implemented mipmap level. Similarly, the mipmap prediction register may be composed of a bit vector that is a set of bits representing each mipmap level, based on the implemented mipmap level. The mipmap request register may also consist of a bit vector that is a set of bits indicating each mipmap level based on the implemented mipmap level.

도 6를 참조하면, 밉맵은 8개의 밉맵 레벨로 구현될 수 있으며, 하나의 텍스처에 대한 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터가 나타난다. 밉맵 상태 레지스터의 제1 비트는 원본 텍스처 즉, 레벨 0을 나타내고, 제2 비트는 레벨 1을 나타내고, 제n 비트는 n을 나타낼 수 있다. 밉맵 예측 레지스터의 제1 비트는 원본 텍스처 즉, 레벨 0을 나타내고, 제2 비트는 레벨 1을 나타내고, 제n 비트는 레벨 n을 나타낼 수 있다. 밉맵 요청 레지스터의 제1 비트는 원본 텍스처 즉, 레벨 0을 나타내고, 제2 비트는 레벨 1을 나타내고, 제n 비트는 레벨 n을 나타낼 수 있다.Referring to FIG. 6 , a mipmap may be implemented with eight mipmap levels, and a mipmap status register, a mipmap prediction register, and a mipmap request register for one texture are shown. The first bit of the mipmap status register may indicate the original texture, that is, level 0, the second bit may indicate level 1, and the nth bit may indicate n. The first bit of the mipmap prediction register may indicate the original texture, that is, level 0, the second bit may indicate level 1, and the nth bit may indicate level n. The first bit of the mipmap request register may indicate the original texture, that is, level 0, the second bit may indicate level 1, and the nth bit may indicate level n.

도 6a는 일 실시예에 따라 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치하는 경우를 나타낸다. 6A illustrates a case in which a predicted mipmap level and a calculated mipmap level match, according to an embodiment.

610은 최초로 할당된 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다. 610 denotes an initially allocated mipmap status register, mipmap prediction register, and mipmap request register.

일 실시예에 따른 밉맵 생성 장치는, 최초의 밉맵 상태 레지스터가 원본 텍스처(레벨 0)가 존재하는 것을 나타내도록 초기값을 설정할 수 있다. 예를 들어, 밉맵 상태 레지스터의 제1 비트는 ‘1’이고, 나머지제2 내지 제9 비트는 ‘0’을 나타낸다. 이는, 현재 원본 텍스처만이 존재하며, 레벨 1 내지 8의 밉맵은 존재하지 않는다는 것을 나타낼 수 있다. The mipmap generating apparatus according to an embodiment may set an initial value such that the first mipmap status register indicates that the original texture (level 0) exists. For example, the first bit of the mipmap status register indicates '1', and the remaining second to ninth bits indicate '0'. This may indicate that only the original texture currently exists, and the mipmaps of levels 1 to 8 do not exist.

612는 밉맵 레벨이 예측되고, 예측된 밉맵 레벨의 밉맵이 생성된 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다. 612 indicates a mipmap status register, a mipmap prediction register, and a mipmap request register after a mipmap level is predicted and a mipmap of the predicted mipmap level is generated.

일 실시예에 따른 밉맵 생성 장치는, 밉맵 생성 단계에서, 밉맵 상태 레지스터에 밉맵이 생성된 것을 나타내도록 기록할 수 있다.The mipmap generating apparatus according to an embodiment may record the mipmap generation to indicate that the mipmap is generated in the mipmap status register in the mipmap generating step.

예를 들어, 예측된 밉맵 레벨이 레벨 3인 경우, 원본 텍스처로부터 레벨 1, 레벨2, 및 레벨 3의 밉맵을 순차적으로 생성할 수 있다. 일 실시예에 따라, 요청되는 밉맵 레벨의 밉맵과 이전에 순차적으로 생성된 밉맵들을 저장하는 경우, 밉맵 생성 장치는 제2 내지 제4 비트에 ‘1’을 기록할 수 있다. 이 경우, 밉맵 상태 레지스터의 원본 텍스처를 나타내는 제1 비트 및 레벨 1 내지 3을 나타내는 제2 내지 제4 비트는 ‘1’을 나타내고, 레벨 4 내지 8을 나타내는 나머지 비트들은 ‘0’을 나타낼 수 있다. For example, when the predicted mipmap level is level 3, mipmaps of level 1, level 2, and level 3 may be sequentially generated from the original texture. According to an embodiment, when storing a mipmap of a requested mipmap level and previously sequentially generated mipmaps, the mipmap generating apparatus may write '1' in the second to fourth bits. In this case, the first bit representing the original texture of the mipmap status register and the second to fourth bits representing levels 1 to 3 may represent '1', and the remaining bits representing levels 4 to 8 may represent '0'. .

614는 실제 요청되는 밉맵 레벨이 산출된 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.614 indicates a mipmap status register, a mipmap prediction register, and a mipmap request register after the actual requested mipmap level is calculated.

예를 들어, 실제 요청되는 밉맵 레벨이 레벨 3으로 산출된 경우, 레벨 3을 나타내는, 밉맵 요청 레지스터의 제4 비트에 ‘1’을 기록할 수 있다.For example, when the actually requested mipmap level is calculated as level 3, '1' may be written to the fourth bit of the mipmap request register indicating level 3.

616은 산출된 밉맵 레벨의 밉맵이 존재하는지 여부에 대한 판단에 따른 수행 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.616 indicates a mipmap status register, a mipmap prediction register, and a mipmap request register after execution according to the determination of whether a mipmap of the calculated mipmap level exists.

산출된 밉맵 레벨과 예측된 밉맵 레벨이 일치하는 경우 즉, 산출된 밉맵 레벨의 밉맵이 이미 존재하는 경우, 밉맵 생성 장치는 밉맵 생성을 새로 할 필요가 없이 이미 존재하는 밉맵을 액세스하여 사용할 수 있다. 따라서, 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터는 614에서와 비교하여 변화가 없다.When the calculated mipmap level matches the predicted mipmap level, that is, when a mipmap of the calculated mipmap level already exists, the mipmap generator can access and use the existing mipmap without needing to create a new mipmap. Accordingly, the mipmap status register, mipmap prediction register, and mipmap request register are unchanged compared to in 614 .

도 6b는 일 실시예에 따라 예측된 밉맵 레벨과 산출된 밉맵 레벨이 상이한 경우를 나타낸다. 6B illustrates a case in which a predicted mipmap level and a calculated mipmap level are different from each other according to an embodiment.

이하, 도 6a에서 전술한 것과 중복되는 내용은 생략한다. Hereinafter, content overlapping with the above in FIG. 6A will be omitted.

620은 최초로 할당된 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다. 620 indicates an initially allocated mipmap status register, mipmap prediction register, and mipmap request register.

622는 밉맵 레벨이 예측되고, 예측된 밉맵 레벨의 밉맵이 생성된 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다. 622 indicates a mipmap status register, a mipmap prediction register, and a mipmap request register after a mipmap level is predicted and a mipmap of the predicted mipmap level is generated.

624는 실제 요청되는 밉맵 레벨이 산출된 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.624 indicates a mipmap status register, a mipmap prediction register, and a mipmap request register after the actual requested mipmap level is calculated.

예를 들어, 실제 요청되는 밉맵 레벨이 레벨 4으로 산출된 경우, 레벨 4를 나타내는, 밉맵 요청 레지스터의 제5 비트에 ‘1’을 기록할 수 있다.For example, when the actually requested mipmap level is calculated as level 4, '1' may be written to the fifth bit of the mipmap request register indicating level 4.

626은 산출된 밉맵 레벨의 밉맵이 존재하는지 여부에 대한 판단에 따른 수행 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.626 indicates a mipmap status register, a mipmap prediction register, and a mipmap request register after execution according to the determination of whether a mipmap of the calculated mipmap level exists.

산출된 밉맵 레벨과 예측된 밉맵 레벨이 상이한 경우 즉, 산출된 밉맵 레벨의 밉맵이 존재하지 않는 경우, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵을 생성할 수 있다. 밉맵 생성 장치는 밉맵 상태 레지스터에 산출된 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다. 밉맵 생성 장치는 레벨 4를 나타내는, 밉맵 상태 레지스터의 제5 비트에 ‘1’을 기록할 수 있다.When the calculated mipmap level is different from the predicted mipmap level, that is, when a mipmap of the calculated mipmap level does not exist, the mipmap generating apparatus may generate a mipmap of the calculated mipmap level. The mipmap generating apparatus may record in the mipmap status register to indicate that a mipmap of the calculated mipmap level is generated. The mipmap generating device may write '1' to the fifth bit of the mipmap status register, indicating level 4.

도 6c는 일 실시예에 따라 예측된 밉맵 레벨과 산출된 밉맵 레벨이 상이하고, 순차적으로 생성된 밉맵이 모두 저장된 경우를 나타낸다. 6C illustrates a case in which a predicted mipmap level and a calculated mipmap level are different and all sequentially generated mipmaps are stored, according to an exemplary embodiment.

이하, 도 6a에서 전술한 것과 중복되는 내용은 생략한다. Hereinafter, content overlapping with the above in FIG. 6A will be omitted.

630은 최초로 할당된 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다. 630 indicates the initially allocated mipmap status register, mipmap prediction register, and mipmap request register.

632는 밉맵 레벨이 예측되고, 예측된 밉맵 레벨의 밉맵이 생성된 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다. 632 indicates a mipmap status register, a mipmap prediction register, and a mipmap request register after a mipmap level is predicted and a mipmap of the predicted mipmap level is generated.

634는 실제 요청되는 밉맵 레벨이 산출된 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.634 indicates a mipmap status register, a mipmap prediction register, and a mipmap request register after the actual requested mipmap level is calculated.

예를 들어, 실제 요청되는 밉맵 레벨이 레벨 1로 산출된 경우, 레벨 1을 나타내는, 밉맵 요청 레지스터의 제2 비트에 ‘1’을 기록할 수 있다.For example, when the actually requested mipmap level is calculated as level 1, '1' may be written to the second bit of the mipmap request register indicating level 1.

636은 산출된 밉맵 레벨의 밉맵이 존재하는지 여부에 대한 판단에 따른 수행 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.Reference numeral 636 denotes a mipmap status register, a mipmap prediction register, and a mipmap request register after execution according to the determination of whether a mipmap of the calculated mipmap level exists.

도 6c를 참조하면, 산출된 밉맵 레벨과 예측된 밉맵 레벨이 상이하다. 그러나, 밉맵 생성 장치가 예측된 밉맵 레벨의 밉맵을 생성할 때, 원본 텍스처로부터 레벨 1, 레벨 2, 및 레벨 3의 밉맵을 순차적으로 생성하여 저장하였으므로, 산출된 밉맵 레벨인 레벨 2의 밉맵이 존재한다. 따라서, 산출된 밉맵 레벨과 예측된 밉맵 레벨이 일치하지 않지만, 산출된 밉맵 레벨의 밉맵이 이미 존재하므로, 밉맵 생성 장치는 밉맵을 새로 생성할 필요 없이 이미 존재하는 밉맵을 액세스하여 사용할 수 있다. 따라서, 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터는 634에서와 비교하여 변화가 없다.Referring to FIG. 6C , the calculated mipmap level is different from the predicted mipmap level. However, when the mipmap generator generates a mipmap of the predicted mipmap level, it sequentially generates and stores the mipmaps of level 1, level 2, and level 3 from the original texture, so that the calculated mipmap level, which is the mipmap of level 2, exists. do. Accordingly, although the calculated mipmap level and the predicted mipmap level do not match, since a mipmap of the calculated mipmap level already exists, the mipmap generating apparatus can access and use an existing mipmap without needing to generate a new mipmap. Therefore, the mipmap status register, mipmap prediction register, and mipmap request register are unchanged compared to 634.

도 6d는 일 실시예에 따라 예측된 밉맵 레벨과 산출된 밉맵 레벨이 상이하고, 예측된 밉맵 레벨의 밉맵만이 저장된 경우를 나타낸다. 6D illustrates a case in which a predicted mipmap level is different from a calculated mipmap level, and only a mipmap of the predicted mipmap level is stored, according to an embodiment.

이하, 도 6a에서 전술한 것과 중복되는 내용은 생략한다. Hereinafter, content overlapping with the above in FIG. 6A will be omitted.

640은 최초로 할당된 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다. 640 indicates the first allocated mipmap status register, mipmap prediction register, and mipmap request register.

642는 밉맵 레벨이 예측되고, 예측된 밉맵 레벨의 밉맵이 생성된 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다. 642 indicates a mipmap status register, a mipmap prediction register, and a mipmap request register after a mipmap level is predicted and a mipmap of the predicted mipmap level is generated.

도 6d를 참조하면, 밉맵 생성 장치는 예측된 밉맵 레벨의 밉맵만을 저장할 수 있다. 예를 들어, 예측된 밉맵 레벨이 레벨 3인 경우, 원본 텍스처로부터 레벨 1, 레벨 2, 및 레벨 3의 밉맵을 순차적으로 생성하나, 레벨 3만을 저장할 수 있다. 일 실시예에 따라, 예측된 밉맵 레벨의 밉맵만을 저장하는 경우, 밉맵 생성 장치는 제4 비트에 ‘1’을 기록할 수 있다. 이 경우, 밉맵 상태 레지스터의 원본 텍스처를 나타내는 제1 비트 및 레벨 3을 나타내는 제4 비트는 ‘1’을 나타내고, 레벨 1, 2, 및 4 내지 8을 나타내는 나머지 비트들은 ‘0’을 나타낼 수 있다.Referring to FIG. 6D , the mipmap generating apparatus may store only the mipmap of the predicted mipmap level. For example, when the predicted mipmap level is level 3, mipmaps of level 1, level 2, and level 3 are sequentially generated from the original texture, but only level 3 may be stored. According to an embodiment, when only a mipmap of a predicted mipmap level is stored, the mipmap generating apparatus may write '1' in the fourth bit. In this case, the first bit representing the original texture of the mipmap status register and the fourth bit representing level 3 may represent '1', and the remaining bits representing levels 1, 2, and 4 to 8 may represent '0'. .

644는 실제 요청되는 밉맵 레벨이 산출된 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.644 indicates a mipmap status register, a mipmap prediction register, and a mipmap request register after the actual requested mipmap level is calculated.

예를 들어, 실제 요청되는 밉맵 레벨이 레벨 2로 산출된 경우, 레벨 2를 나타내는, 밉맵 요청 레지스터의 제3 비트에 ‘1’을 기록할 수 있다.For example, when the actually requested mipmap level is calculated as level 2, '1' may be written to the third bit of the mipmap request register indicating level 2.

646은 산출된 밉맵 레벨의 밉맵이 존재하는지 여부에 따른 수행 후 밉맵 상태 레지스터, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다.646 indicates a mipmap status register, a mipmap prediction register, and a mipmap request register after execution according to whether a mipmap of the calculated mipmap level exists.

산출된 밉맵 레벨과 예측된 밉맵 레벨이 상이한 경우 즉, 산출된 밉맵 레벨의 밉맵이 존재하지 않는 경우, 밉맵 생성 장치는 산출된 밉맵 레벨의 밉맵을 생성할 수 있다. 밉맵 생성 장치는 밉맵 상태 레지스터에 산출된 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다. 밉맵 생성 장치는 레벨 2를 나타내는, 밉맵 상태 레지스터의 제3 비트에 ‘1’을 기록할 수 있다.When the calculated mipmap level is different from the predicted mipmap level, that is, when a mipmap of the calculated mipmap level does not exist, the mipmap generating apparatus may generate a mipmap of the calculated mipmap level. The mipmap generating apparatus may record in the mipmap status register to indicate that a mipmap of the calculated mipmap level is generated. The mipmap generating device may write '1' to the third bit of the mipmap status register, indicating level 2.

도 7은 다른 실시 예에 따른 밉맵 레벨을 예측하는 방법을 설명하기 위한 흐름도이다.7 is a flowchart illustrating a method of predicting a mipmap level according to another embodiment.

단계 710에서 밉맵 생성 장치는, 텍스처를 사용할 프리미티브를 구성하는 정점의 좌표를 획득할 수 있다. In operation 710, the mipmap generating apparatus may obtain coordinates of vertices constituting a primitive to use a texture.

단계 720에서, 밉맵 생성 장치는 텍스처를 사용할 프리미티브를 구성하는 정점에 기초하여 밉맵 레벨을 예측할 수 있다. In operation 720, the mipmap generating apparatus may predict a mipmap level based on vertices constituting a primitive to use a texture.

일 실시예에 따른 밉맵 생성 장치는, 프리미티브를 구성하는 정점의 좌표를 획득하고, 획득된 정점의 좌표에 기초하여 프리미티브의 크기 및 Z 평면상에서의 기울기를 산출할 수 있다. 밉맵 생성 장치는 프리미티브의 크기, 프리미티브의 Z 평면상에서의 기울기, 텍스처의 좌표 및 텍스처의 크기에 기초하여 밉맵 레벨을 예측할 수 있다. The mipmap generating apparatus according to an embodiment may obtain coordinates of vertices constituting a primitive, and calculate a size and a slope of the primitive on the Z plane based on the obtained coordinates of the vertices. The mipmap generating apparatus may predict the mipmap level based on the size of the primitive, the slope of the primitive on the Z plane, the coordinates of the texture, and the size of the texture.

단계 730에서, 밉맵 생성 장치는 밉맵 레벨 예측에 허용 오차(tolerance)를 적용할지 여부를 판단할 수 있다. In operation 730, the mipmap generating apparatus may determine whether to apply tolerance to the mipmap level prediction.

예를 들어, 밉맵 생성 장치는 사용자 입력에 기초하여 밉맵 레벨 예측에 허용 오차를 적용할지 여부를 결정할 수 있다. For example, the mipmap generating apparatus may determine whether to apply the tolerance to the mipmap level prediction based on a user input.

허용 오차를 적용하는 경우, 단계 740이 수행되고, 허용 오차를 적용하지 않는 경우, 단계 745가 수행될 수 있다. If the tolerance is applied, step 740 may be performed, and if the tolerance is not applied, step 745 may be performed.

단계 740에서, 허용 오차를 적용함에 따라, 밉맵 생성 장치는 예측된 밉맵 레벨로부터 허용 오차 범위 내의 레벨의 밉맵을 생성할 수 있다. In operation 740, as the tolerance is applied, the mipmap generating apparatus may generate a mipmap of a level within the tolerance range from the predicted mipmap level.

단계 750에서, 밉맵 생성 장치는 예측된 밉맵 레벨이 산출된 밉맵 레벨과 일치하는지 여부에 따라 허용 오차를 조정할 수 있다. In operation 750, the mipmap generating apparatus may adjust the tolerance according to whether the predicted mipmap level matches the calculated mipmap level.

단계 760에서, 예측된 밉맵 레벨이 산출된 밉맵 레벨과 일치하는 경우, 밉맵 생성 장치는 허용 오차 범위를 감소시킬 수 있다. In operation 760, when the predicted mipmap level matches the calculated mipmap level, the mipmap generating apparatus may decrease the tolerance range.

단계 765에서, 예측된 밉맵 레벨이 산출된 밉맵 레벨과 일치하지 않는 경우, 밉맵 생성 장치는 허용 오차 범위를 증가시킬 수 있다. In operation 765 , when the predicted mipmap level does not match the calculated mipmap level, the mipmap generating apparatus may increase the tolerance range.

허용 오차 조정에 대한 상세한 설명은 도 8에서 후술한다. A detailed description of the tolerance adjustment will be described later with reference to FIG. 8 .

단계 745에서, 허용 오차를 적용 적용하지 않음에 따라, 밉맵 생성 장치는 예측된 레벨의 밉맵만을 생성할 수 있다.In operation 745 , since the tolerance is not applied, the mipmap generating apparatus may generate only the mipmap of the predicted level.

도 8은 또 다른 실시 예에 따른 밉맵 레벨을 예측 시 허용 오차 조정을 설명하기 위한 예시도이다.8 is an exemplary diagram for explaining tolerance adjustment when predicting a mipmap level according to another embodiment.

일 실시예에 따라, 허용 오차는 예측된 밉맵 레벨 및 산출된 밉맵 레벨의 일치 여부에 기초하여 조정될 수 있다.According to an embodiment, the tolerance may be adjusted based on whether the predicted mipmap level matches the calculated mipmap level.

밉맵 생성 장치는 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 이용하여, 예측된 밉맵 레벨 및 산출된 밉맵 레벨의 일치 여부를 판단할 수 있다. The mipmap generating apparatus may determine whether the predicted mipmap level matches the calculated mipmap level by using the mipmap prediction register and the mipmap request register.

도 8a는 예측된 밉맵 레벨 및 산출된 밉맵 레벨이 일치하는 경우 허용 오차 조정을 설명하기 위한 예시도이다. 8A is an exemplary diagram for explaining tolerance adjustment when a predicted mipmap level and a calculated mipmap level match.

일 실시예에 따라, 예측된 밉맵 레벨이 산출된 밉맵 레벨과 일치하는 경우, 밉맵 생성 장치는 허용 오차 범위를 감소시킬 수 있다.According to an embodiment, when the predicted mipmap level matches the calculated mipmap level, the mipmap generating apparatus may decrease the tolerance range.

810은 최초로 할당된 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다. 810 denotes an initially allocated mipmap prediction register and mipmap request register.

812는 예측된 밉맵 레벨이 레벨 3인 경우를 나타낸다. 즉, 레벨 3을 나타내는 제4 비트가 ‘1’을 나타낸다. 812 indicates a case where the predicted mipmap level is level 3. That is, the fourth bit representing level 3 represents '1'.

814는 밉맵 레벨 예측에 허용 오차를 적용한 것을 나타낸다. 814 indicates that the tolerance is applied to the mipmap level prediction.

일 실시예에 따라, 밉맵 생성 장치는 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨을 나타내는 밉맵 예측 레지스터의 비트에 ‘1’을 기입하고, 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨에 대해 밉맵을 생성할 수 있다. According to an embodiment, the mipmap generating apparatus writes '1' to a bit of a mipmap prediction register indicating a mipmap level within the tolerance range from the predicted mipmap level, and a mipmap for a mipmap level within the tolerance range from the predicted mipmap level. can create

예를 들어, 예측된 밉맵 레벨이 레벨 3이고, 허용 오차의 값이 2인 경우, 레벨 1 내지 레벨 5를 나타내는 제2 내지 제6 비트에 ‘1’을 기입하고, 레벨 1 내지 레벨 5의 밉맵 레벨에 대해 밉맵을 생성할 수 있다.For example, if the predicted mipmap level is level 3 and the tolerance value is 2, '1' is written in the second to sixth bits representing the levels 1 to 5, and the mipmaps of the levels 1 to 5 are written. You can create mipmaps for your level.

즉, 허용 오차 적용 범위는 <수식 1>에 의해 산출될 수 있다.That is, the allowable error application range may be calculated by <Equation 1>.

<수식 1><Formula 1>

Pred_Mip_Level - t ≤ Gen_Mip ≤ Pred_Mip_Level + tPred_Mip_Level - t ≤ Gen_Mip ≤ Pred_Mip_Level + t

수식 1에서, Pred_Mip_Level은 예측된 밉맵 레벨을, t는 허용 오차를, Gen_Mip는 허용 오차 적용 범위 내의 밉맵 레벨을 나타낼 수 있다. In Equation 1, Pred_Mip_Level may indicate a predicted mipmap level, t may indicate a tolerance, and Gen_Mip may indicate a mipmap level within a tolerance application range.

일 실시예에서, 최초의 허용 오차 값은 미리 설정될 수 있다. 예를 들어, 밉맵 생성 장치는 최초의 허용 오차 값을 사용자 입력에 기초하여 결정할 수 있다. 다른 예로, 최초의 허용 오차 값을 <수식 2>에 의해 결정할 수 있다. In one embodiment, the initial tolerance value may be preset. For example, the mipmap generating apparatus may determine an initial tolerance value based on a user input. As another example, the initial allowable error value may be determined by <Equation 2>.

<수식 2><Formula 2>

t = NUM_MIP_LEVEL/2t = NUM_MIP_LEVEL/2

여기서, t는 허용 오차를, NUM_MIP_LEVEL은 구현되는 밉맵 레벨을 의미할 수 있다. Here, t may indicate a tolerance, and NUM_MIP_LEVEL may indicate an implemented mipmap level.

816은 예측된 밉맵 레벨과 산출된 밉맵 레벨의 일치 여부를 판단하는 것을 나타낸다. Reference numeral 816 denotes determining whether the predicted mipmap level matches the calculated mipmap level.

밉맵 생성 장치는 예측된 밉맵 레벨(PredReg)과 실제 요청되는 밉맵 레벨인 산출된 밉맵 레벨(RequestReg)을 비교할 수 있다. 예를 들어, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하는 경우에만 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치한다고 판단할 수 있다.The mipmap generating apparatus may compare the predicted mipmap level (PredReg) with the calculated mipmap level (RequestReg), which is the actual requested mipmap level. For example, the mipmap generating apparatus may determine that the predicted mipmap level matches the calculated mipmap level only when the predicted mipmap level and the calculated mipmap level exactly match.

다른 예로, 밉맵 생성 장치는 “AND(PredReg, RequestReg)”이 0이 아니면 즉, 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨 중 적어도 하나와 산출된 밉맵 레벨이 일치하는 경우, 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치한다고 판단할 수 있다. As another example, if “AND(PredReg, RequestReg)” is non-zero, that is, if the calculated mipmap level matches with at least one of the mipmap levels within the tolerance range from the predicted mipmap level, the predicted mipmap level and It may be determined that the calculated mipmap levels match.

밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치한다는 판단에 따라, 허용 오차의 크기를 감소시킬 수 있다. 예를 들어, 초기 허용 오차 값이 2인 경우, 1로 감소시킬 수 있다. The mipmap generating apparatus may reduce the size of the tolerance according to determining that the predicted mipmap level matches the calculated mipmap level. For example, if the initial tolerance value is 2, it may be reduced to 1.

일 실시예에서, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하는 경우와, 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하지는 않지만 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨 중 적어도 하나와 산출된 밉맵 레벨이 일치하는 경우에, 허용 오차의 감소 폭을 달리 할 수 있다. In an embodiment, the apparatus for generating a mipmap includes a case where the predicted mipmap level and the calculated mipmap level exactly match, and the predicted mipmap level and the calculated mipmap level do not exactly match, but the mipmap level is within a tolerance range from the predicted mipmap level When at least one of the calculated mipmap levels coincides with each other, the reduction width of the tolerance may be different.

예를 들어, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하는 경우, 허용 오차의 크기를 2만큼 감소시킬 수 있다. 또한, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하지는 않지만 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨 중 적어도 하나와 산출된 밉맵 레벨이 일치하는 경우, 허용 오차의 크기를 1만큼 감소시킬 수 있다. For example, when the predicted mipmap level and the calculated mipmap level exactly match, the mipmap generating apparatus may reduce the tolerance by two. In addition, the mipmap generating device sets the tolerance size to 1 when the predicted mipmap level and the calculated mipmap level do not exactly match, but at least one of the mipmap levels within the tolerance range from the predicted mipmap level matches the calculated mipmap level. can be reduced by

여기 개시된 예에서는, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하는 경우에만 허용 오차의 크기를 1만큼 감소시킬 수 있다.In the example disclosed herein, the mipmap generating apparatus may reduce the tolerance by 1 only when the predicted mipmap level and the calculated mipmap level exactly match.

820은 밉맵 생성 장치가 새로 밉맵 레벨을 예측하는 경우를 나타낸다. 예를 들어, 예측된 밉맵 레벨은 레벨 4일 수 있다. 820 indicates a case in which the mipmap generating apparatus newly predicts a mipmap level. For example, the predicted mipmap level may be level 4.

822는 밉맵 레벨 예측에 새로운 허용 오차를 적용한 것을 나타낸다. 822 indicates that a new tolerance is applied to the mipmap level prediction.

일 실시예에 따라, 밉맵 생성 장치는 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨을 나타내는 밉맵 예측 레지스터의 벡터에 ‘1’을 기입하고, 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨에 대해 밉맵을 생성할 수 있다. According to an embodiment, the mipmap generating apparatus writes '1' to a vector of a mipmap prediction register indicating a mipmap level within the tolerance from the predicted mipmap level, and a mipmap for a mipmap level within the tolerance from the predicted mipmap level. can create

예를 들어, 예측된 밉맵 레벨이 레벨 4이고, 허용 오차의 값이 1이 된 경우, 레벨 3 내지 레벨 5를 나타내는 제4 내지 제6 비트에 ‘1’을 기입하고, 레벨 3 내지 레벨 5의 밉맵 레벨에 대해 밉맵을 생성할 수 있다.For example, when the predicted mipmap level is level 4 and the tolerance value is 1, '1' is written in the 4th to 6th bits representing levels 3 to 5, and A mipmap can be generated for a mipmap level.

일 실시예에서, 밉맵 생성 장치는 허용 오차 값이 0인 경우, 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치하는 경우에도 허용 오차 값이 더이상 감소시키지 않을 수 있다. In an embodiment, when the tolerance value is 0, the mipmap generating apparatus may not decrease the tolerance value any more even when the predicted mipmap level and the calculated mipmap level match.

도 8b는 예측된 밉맵 레벨 및 산출된 밉맵 레벨이 일치하지 않는 경우 허용 오차 조정을 설명하기 위한 예시도이다. 8B is an exemplary diagram for explaining tolerance adjustment when a predicted mipmap level and a calculated mipmap level do not match.

전술한 도 8a에서와 중복되는 내용은 생략한다. The content overlapping with the above-described FIG. 8A will be omitted.

일 실시예에 따라, 예측된 밉맵 레벨이 산출된 밉맵 레벨과 일치하지 않는 경우, 밉맵 생성 장치는 허용 오차 범위를 증가시킬 수 있다. According to an embodiment, when the predicted mipmap level does not match the calculated mipmap level, the mipmap generating apparatus may increase the tolerance range.

830은 최초로 할당된 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 나타낸다. 830 denotes an initially allocated mipmap prediction register and mipmap request register.

832는 예측된 밉맵 레벨이 레벨 3인 경우를 나타낸다. 즉, 레벨 3을 나타내는 제4 비트가 ‘1’을 나타낸다. 832 indicates a case where the predicted mipmap level is level 3. That is, the fourth bit representing level 3 represents '1'.

834는 밉맵 레벨 예측에 허용 오차를 적용한 것을 나타낸다. 834 indicates that the tolerance is applied to the mipmap level prediction.

예를 들어, 예측된 밉맵 레벨이 레벨 3이고, 허용 오차의 값이 2인 경우, 레벨 1 내지 레벨 5의 밉맵 레벨에 대해 밉맵을 생성하고, 레벨 1 내지 레벨 5를 나타내는 제2 내지 제6 비트에 ‘1’을 기입할 수 있다.For example, if the predicted mipmap level is level 3 and the tolerance value is 2, a mipmap is generated for the mipmap levels of level 1 to level 5, and second to sixth bits representing levels 1 to 5 are generated. You can enter '1' in .

836은 예측된 밉맵 레벨과 산출된 밉맵 레벨의 일치 여부를 판단하는 것을 나타낸다. Reference numeral 836 denotes determining whether the predicted mipmap level matches the calculated mipmap level.

밉맵 생성 장치는 예측된 밉맵 레벨(PredReg)과 실제 요청되는 밉맵 레벨인 산출된 밉맵 레벨(RequestReg)을 비교할 수 있다. 예를 들어, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하는 경우에만 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치한다고 판단할 수 있다.The mipmap generating apparatus may compare the predicted mipmap level (PredReg) with the calculated mipmap level (RequestReg), which is the actual requested mipmap level. For example, the mipmap generating apparatus may determine that the predicted mipmap level matches the calculated mipmap level only when the predicted mipmap level and the calculated mipmap level exactly match.

다른 예로, 밉맵 생성 장치는 “AND(PredReg, RequestReg)”이 0이 아니면 즉, 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨 중 적어도 하나와 산출된 밉맵 레벨이 일치하는 경우, 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치한다고 판단할 수 있다. As another example, if “AND(PredReg, RequestReg)” is non-zero, that is, if the calculated mipmap level matches with at least one of the mipmap levels within the tolerance range from the predicted mipmap level, the predicted mipmap level and It may be determined that the calculated mipmap levels match.

밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치하지 않는다는 판단에 따라, 허용 오차의 크기를 증가시킬 수 있다. 예를 들어, 초기 허용 오차 값이 2인 경우, 4로 증가시킬 수 있다. The mipmap generating apparatus may increase the size of the tolerance according to the determination that the predicted mipmap level and the calculated mipmap level do not match. For example, if the initial tolerance value is 2, it may be increased to 4.

일 실시예에서, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하지는 않지만 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨 중 적어도 하나와 산출된 밉맵 레벨이 일치하는 경우와, 산출된 밉맵 레벨이 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨 중 어느 것과도 일치하지 않는 경우에, 허용 오차의 증가 폭을 달리 할 수 있다. In an embodiment, the mipmap generating apparatus is configured to match the calculated mipmap level with at least one of the mipmap levels within the tolerance range from the predicted mipmap level, although the predicted mipmap level and the calculated mipmap level do not exactly match; When the mipmap level does not match any of the mipmap levels within the tolerance range from the predicted mipmap level, the tolerance may be increased.

예를 들어, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하지는 않지만 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨 중 적어도 하나와 산출된 밉맵 레벨이 일치하는 경우, 허용 오차의 크기를 1만큼 증가시킬 수 있다. 또한, 밉맵 생성 장치는 산출된 밉맵 레벨이 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨 중 어느 것과도 일치하지 않는 경우, 허용 오차의 크기를 2만큼 증가시킬 수 있다. For example, if the mipmap generation device does not exactly match the predicted mipmap level and the computed mipmap level, but at least one of the mipmap levels within the tolerance range from the predicted mipmap level matches the computed mipmap level, the size of the tolerance can be increased by 1. Also, when the calculated mipmap level does not match any of the mipmap levels within the tolerance range from the predicted mipmap level, the mipmap generating apparatus may increase the tolerance level by 2.

여기 개시된 예에서는, 예측된 밉맵 레벨과 산출된 밉맵 레벨이 정확히 일치하지 않는 경우, 밉맵 생성 장치는 허용 오차의 크기를 2만큼 증가시킬 수 있다.In the example disclosed herein, when the predicted mipmap level and the calculated mipmap level do not exactly match, the mipmap generating apparatus may increase the tolerance by two.

840은 밉맵 생성 장치가 새로 밉맵 레벨을 예측하는 경우를 나타낸다. 예를 들어, 예측된 밉맵 레벨은 레벨 4일 수 있다. 840 indicates a case in which the mipmap generating apparatus newly predicts a mipmap level. For example, the predicted mipmap level may be level 4.

842는 밉맵 레벨 예측에 새로운 허용 오차를 적용한 것을 나타낸다. 842 indicates that a new tolerance is applied to the mipmap level prediction.

일 실시예에 따라, 밉맵 생성 장치는 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨에 대해 밉맵을 생성하고, 해당 밉맵 레벨을 나타내는 밉맵 요청 레지스터의 벡터에 ‘1’을 기입할 수 있다. According to an embodiment, the mipmap generating apparatus may generate a mipmap for a mipmap level within an allowable error range from the predicted mipmap level, and write '1' to a vector of a mipmap request register indicating the corresponding mipmap level.

예를 들어, 예측된 밉맵 레벨이 레벨 4이고, 허용 오차의 값이 4이 된 경우, 레벨 0 내지 레벨 8의 밉맵 레벨에 대해 밉맵을 생성하고, 레벨 1 내지 레벨 8을 나타내는 첫 번째 내지 여덟 번째 벡터에 ‘1’을 기입할 수 있다.For example, if the predicted mipmap level is level 4, and the tolerance value is 4, the mipmap is generated for the mipmap levels from level 0 to level 8, and the first to eighth times representing levels 1 to 8 are generated. You can write '1' to the vector.

일 실시예에서, 허용 오차 값이 <수식 2>에서 산출된 값과 같은 경우, 예측된 밉맵 레벨과 산출된 밉맵 레벨이 일치하지 않는 경우에도 허용 오차 값을 더이상 증가시키지 않을 수 있다. In an embodiment, when the tolerance value is the same as the value calculated in <Equation 2>, the tolerance value may not be increased any more even when the predicted mipmap level and the calculated mipmap level do not match.

일 실시예에서, 밉맵 생성 장치는 허용 오차 값의 증가 크기와 감소 크기를 다르게 할 수도 있다. 또한, 밉맵 생성 장치는 예측된 밉맵 레벨과 산출된 밉맵 레벨의 차이에 따라 허용 오차 값의 증감 폭을 가변적으로 할 수 있다. 또한, 밉맵 생성 장치는 과거 다른 오브젝트 또는 다른 프레임에 대한 텍스쳐 사용 기록을 허용 오차 설정에 사용할 수 있다. In an embodiment, the mipmap generating apparatus may set the increase size and decrease size of the tolerance value differently. Also, the mipmap generating apparatus may vary the increase/decrease width of the tolerance value according to a difference between the predicted mipmap level and the calculated mipmap level. Also, the mipmap generating apparatus may use a texture use record for another object or another frame in the past to set the tolerance.

일 실시예에서, 밉맵 생성 장치는 허용 오차의 적용을 선택적으로 할 수 있으며, 허용 오차를 적용하지 않는 경우 t=0이 된다. 예를 들어, 밉맵 생성 장치는 허용 오차 적용 여부를 사용자 입력에 기초하여 결정할 수 있다. In an embodiment, the mipmap generating apparatus may selectively apply the tolerance, and when the tolerance is not applied, t=0. For example, the mipmap generating apparatus may determine whether to apply the tolerance based on a user input.

도 9는 일 실시 예에 따른 밉맵 생성 밉맵 생성 장치의 구조를 나타내는 블록도이다. 9 is a block diagram illustrating a structure of an apparatus for generating mipmaps according to an embodiment.

도 9에 도시된 바와 같이, 본 발명의 일 실시예에 따른 밉맵 생성 장치 (900)는, 레지스터 할당부(910), 밉맵 레벨 산출부(920) 및 제어부(930)를 포함할 수 있다. 그러나 도시된 구성요소보다 많은 구성요소에 의해 밉맵 생성 장치 (900)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 디바이스(100)는 구현될 수 있다.As shown in FIG. 9 , the mipmap generating apparatus 900 according to an embodiment of the present invention may include a register allocator 910 , a mipmap level calculator 920 , and a controller 930 . However, the mipmap generating apparatus 900 may be implemented with more components than the illustrated components, and the device 100 may be implemented with fewer components.

레지스터 할당부(910)는, 밉맵(mipmap) 생성 함수 호출에 따라, 텍스처에 대해 생성된 밉맵 레벨을 나타내는 밉맵 상태 레지스터를 할당한다.The register allocator 910 allocates a mipmap status register indicating a mipmap level generated for a texture according to a mipmap generation function call.

일 실시예에 따른 레지스터 할당부(910)는, 텍스처에 대해, 요청되는 밉맵 레벨을 예측하여 기록할 밉맵 예측 레지스터를 할당할 수 있다. 또한, 레지스터 할당부(910)는, 텍스처에 대해, 실제 요청된 밉맵 레벨을 기록할 밉맵 요청 레지스터를 할당할 수 있다. The register allocator 910 according to an embodiment may allocate a mipmap prediction register to be recorded by predicting a requested mipmap level with respect to the texture. Also, the register allocator 910 may allocate a mipmap request register in which an actual requested mipmap level is recorded to the texture.

밉맵 레벨 산출부(920)는, 텍스처에 대한 요청을 수신하고, 텍스처에 대해 요청되는 밉맵 레벨(mipmap level)을 산출한다.The mipmap level calculator 920 receives a request for a texture and calculates a mipmap level requested for the texture.

제어부(930)는 밉맵 상태 레지스터를 이용하여, 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단하고, 판단 결과에 기초하여, 산출된 밉맵 레벨의 밉맵을 생성할지 여부를 결정한다.The controller 930 determines whether a mipmap of the calculated mipmap level exists using the mipmap status register, and determines whether to generate a mipmap of the calculated mipmap level based on the determination result.

일 실시예에 따른 제어부(930)는, 판단 결과, 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정하고, 산출된 밉맵 레벨의 밉맵에 액세스할 수 있다. When it is determined as a result of the determination that a mipmap of the calculated mipmap level exists, the controller 930 according to an embodiment determines not to generate a mipmap of the calculated mipmap level, and accesses a mipmap of the calculated mipmap level. can

일 실시예에 따른 제어부(930)는, 판단 결과, 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정하고, 산출된 밉맵 레벨의 밉맵을 생성하고, 밉맵 상태 레지스터에 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다. 또한, 제어부(930)는, 텍스처 요청을 다시 시도할 것을 명령하고, 텍스처 요청이 다시 시도되기 전까지 다른 텍스처 요청을 처리할 수 있다.When it is determined as a result of the determination that a mipmap of the calculated mipmap level does not exist, the controller 930 according to an embodiment determines to generate a mipmap of the calculated mipmap level, and generates a mipmap of the calculated mipmap level; , can be written to the mipmap status register to indicate that a mipmap of the mipmap level has been created. Also, the controller 930 may command to retry the texture request, and process another texture request until the texture request is attempted again.

다른 실시예에 따른 제어부(930)는, 밉맵 레벨을 예측하고, 밉맵 예측 레지스터에 예측된 밉맵 레벨을 기록할 수 있다. 또한, 제어부(930)는, 예측된 밉맵 레벨의 밉맵을 생성하고, 밉맵 상태 레지스터에 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록할 수 있다. The controller 930 according to another embodiment may predict a mipmap level and write the predicted mipmap level in a mipmap prediction register. Also, the controller 930 may generate a mipmap of the predicted mipmap level and record it in the mipmap status register to indicate that the mipmap of the mipmap level is generated.

예를 들어, 제어부(930)는 텍스처를 사용할 프리미티브를 구성하는 정점에 기초하여 밉맵 레벨을 예측할 수 있다. 구체적으로, 제어부(930)는 프리미티브를 구성하는 정점의 좌표를 획득하고, 정점의 좌표에 기초하여 상기 프리미티브의 크기 및 Z 평면상에서의 기울기를 산출할 수 있다. 제어부(930)는 프리미티브의 크기, 프리미티브의 Z 평면상에서의 기울기, 텍스처의 좌표 및 텍스처의 크기에 기초하여 밉맵 레벨을 예측할 수 있다. For example, the controller 930 may predict a mipmap level based on vertices constituting a primitive to use a texture. Specifically, the controller 930 may obtain the coordinates of the vertices constituting the primitive, and calculate the size and the inclination of the primitive on the Z plane based on the coordinates of the vertices. The controller 930 may predict the mipmap level based on the size of the primitive, the slope of the primitive on the Z plane, the coordinates of the texture, and the size of the texture.

또 다른 실시예에 따른 제어부(930)는, 밉맵 예측에 허용 오차를 적용함에 따라, 밉맵 예측 레지스터에 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨을 기록할 수 있다. 제어부(930)는, 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨의 밉맵들을 생성하고, 밉맵 상태 레지스터에 예측된 밉맵 레벨로부터 허용 오차 범위 내의 밉맵 레벨의 밉맵들이 생성된 것을 나타내도록 기록할 수 있다. 또한, 제어부(930)는, 밉맵 요청 레지스터 상에 산출된 밉맵 레벨을 기록할 수 있다. According to another embodiment, the controller 930 may record a mipmap level within a tolerance range from the predicted mipmap level in the mipmap prediction register by applying the tolerance to the mipmap prediction. The controller 930 may generate mipmaps of a mipmap level within the tolerance range from the predicted mipmap level, and record in the mipmap status register indicating that mipmaps of the mipmap level within the tolerance range are generated from the predicted mipmap level. . Also, the controller 930 may record the calculated mipmap level in the mipmap request register.

허용 오차는 예측된 밉맵 레벨 및 산출된 밉맵 레벨의 일치 여부에 기초하여 조정될 수 있다. 예를 들어, 제어부(930)는, 밉맵 예측 레지스터 및 밉맵 요청 레지스터를 이용하여, 예측된 밉맵 레벨 및 산출된 밉맵 레벨의 일치 여부를 판단할 수 있다. 판단 결과, 예측된 밉맵 레벨 및 산출된 밉맵 레벨이 일치하는 경우, 제어부(930)는 허용 오차를 감소시킬 수 있다. 상기 판단 결과, 예측된 밉맵 레벨 및 산출된 밉맵 레벨이 일치하지 않는 경우, 제어부(930)는 허용 오차를 증가시킬 수 있다.The tolerance may be adjusted based on whether the predicted mipmap level matches the calculated mipmap level. For example, the controller 930 may determine whether the predicted mipmap level matches the calculated mipmap level using the mipmap prediction register and the mipmap request register. As a result of the determination, when the predicted mipmap level and the calculated mipmap level match, the controller 930 may reduce the tolerance. As a result of the determination, when the predicted mipmap level and the calculated mipmap level do not match, the controller 930 may increase the tolerance.

일 실시예에 따른 밉맵 생성 장치(900)는 실행되는 응용 프로그램에 의해 밉맵 생성 명령이 발생했을 때 이를 즉시 처리하지 않고 우선 리턴한 후, 실제 밉맵이 사용되는 시점, 혹은 사용 이전 시점에 예측하여 밉맵을 준비할 수 있다. The mipmap generating apparatus 900 according to an embodiment does not immediately process a mipmap generating command when a mipmap generating command is generated by an executed application program, but first returns it, and then predicts the mipmap at a point in time when the actual mipmap is used or before use can prepare

일 실시예에 따라, 밉맵 생성 장치(900)는 밉맵 생성을 위한 별도의 하드웨어(미도시)를 구비할 수 있다. 별도의 하드웨어를 두지 않는 경우, 호스트 프로세서의 디바이스 드라이버(미도시)를 통해 밉맵 생성을 수행할 수도 있다. According to an embodiment, the mipmap generating apparatus 900 may include separate hardware (not shown) for mipmap generating. If no separate hardware is provided, mipmap generation may be performed through a device driver (not shown) of the host processor.

본 실시 예들에 따른 밉맵 생성 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다. The mipmap generating apparatus according to the present embodiments includes a processor, a memory for storing and executing program data, a permanent storage such as a disk drive, a communication port for communicating with an external device, a touch panel, a key, a button, etc. It may include the same user interface device and the like. Methods implemented as software modules or algorithms may be stored on a computer-readable recording medium as computer-readable codes or program instructions executable on the processor. Here, the computer-readable recording medium includes a magnetic storage medium (eg, read-only memory (ROM), random-access memory (RAM), floppy disk, hard disk, etc.) and an optically readable medium (eg, CD-ROM). ), and DVD (Digital Versatile Disc)). The computer-readable recording medium is distributed among computer systems connected through a network, so that the computer-readable code can be stored and executed in a distributed manner. The medium may be readable by a computer, stored in a memory, and executed on a processor.

본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.This embodiment may be represented by functional block configurations and various processing steps. These functional blocks may be implemented in any number of hardware and/or software configurations that perform specific functions. For example, an embodiment may be an integrated circuit configuration, such as memory, processing, logic, look-up table, etc., capable of executing various functions by the control of one or more microprocessors or other control devices. can be hired Similar to how components may be implemented as software programming or software components, this embodiment includes various algorithms implemented in a combination of data structures, processes, routines, or other programming constructs, including C, C++, Java ( Java), assembler, etc. may be implemented in a programming or scripting language. Functional aspects may be implemented in an algorithm running on one or more processors. In addition, the present embodiment may employ the prior art for electronic environment setting, signal processing, and/or data processing. Terms such as “mechanism”, “element”, “means” and “configuration” may be used broadly and are not limited to mechanical and physical configurations. The term may include the meaning of a series of routines of software in association with a processor or the like.

본 실시 예에서 설명하는 특정 실행들은 예시들로서, 어떠한 방법으로도 기술적 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. The specific implementations described in this embodiment are examples, and do not limit the technical scope in any way. For brevity of the specification, descriptions of conventional electronic components, control systems, software, and other functional aspects of the systems may be omitted. In addition, the connection or connection members of the lines between the components shown in the drawings exemplarily represent functional connections and/or physical or circuit connections, and in an actual device, various functional connections, physical connections that are replaceable or additional may be referred to as connections, or circuit connections.

본 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 포함하는 것으로서(이에 반하는 기재가 없다면), 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 한정되는 것은 아니다. 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 기술적 사상을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.In this specification (especially in the claims), the use of the term "above" and similar referential terms may be used in both the singular and the plural. In addition, when a range is described, individual values within the range are included (unless there is a description to the contrary), and each individual value constituting the range is described in the detailed description. Finally, the steps constituting the method may be performed in an appropriate order, unless the order is explicitly stated or there is no description to the contrary. It is not necessarily limited to the order of description of the above steps. The use of all examples or exemplary terms (eg, etc.) is merely for describing the technical idea in detail, and the scope is not limited by the examples or exemplary terms unless limited by the claims. In addition, those skilled in the art will appreciate that various modifications, combinations, and changes may be made in accordance with design conditions and factors within the scope of the appended claims or their equivalents.

Claims (20)

밉맵(mipmap) 생성 함수가 호출되면, 텍스처(texture)에 대해 생성된 밉맵 레벨을 나타내는 밉맵 상태 레지스터(mipmap status register)를 할당하는 단계;
상기 밉맵 생성 함수의 호출 시점으로부터 제1 기간 이후에 상기 텍스처에 대한 요청을 수신하면, 상기 텍스처에 대해 요청되는 밉맵 레벨(mipmap level)을 산출하는 단계;
상기 밉맵 상태 레지스터를 이용하여, 상기 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단하는 단계; 및
상기 판단 결과에 기초하여, 상기 산출된 밉맵 레벨의 밉맵을 생성할지 여부를 결정하는 단계를 포함하는 밉맵 생성 방법.
allocating a mipmap status register indicating a mipmap level generated for a texture when a mipmap generating function is called;
calculating a mipmap level requested for the texture when the request for the texture is received after a first period from the time of calling the mipmap generation function;
determining whether a mipmap of the calculated mipmap level exists using the mipmap status register; and
and determining whether to generate a mipmap of the calculated mipmap level based on a result of the determination.
제1항에 있어서,
상기 결정하는 단계는,
상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정하는 단계; 및
상기 산출된 밉맵 레벨의 밉맵에 액세스하는 단계를 포함하는 밉맵 생성 방법.
According to claim 1,
The determining step is
determining not to generate a mipmap of the calculated mipmap level when it is determined that a mipmap of the calculated mipmap level exists as a result of the determination; and
and accessing a mipmap of the calculated mipmap level.
제1항에 있어서,
상기 결정하는 단계는,
상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정하는 단계;
상기 산출된 밉맵 레벨의 밉맵을 생성하는 단계; 및
상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는 단계를 포함하는, 밉맵 생성 방법.
According to claim 1,
The determining step is
determining that a mipmap of the calculated mipmap level is to be generated when it is determined that a mipmap of the calculated mipmap level does not exist as a result of the determination;
generating a mipmap of the calculated mipmap level; and
and writing in the mipmap status register to indicate that a mipmap of the mipmap level has been generated.
제3항에 있어서,
상기 밉맵을 생성하는 것으로 결정하는 단계는,
상기 텍스처 요청을 다시 시도할 것을 명령하는 단계; 및
상기 텍스처 요청이 다시 시도되기 전까지 다른 텍스처 요청을 처리하는 단계를 더 포함하는, 밉맵 생성 방법.
4. The method of claim 3,
The step of determining to generate the mipmap comprises:
instructing to retry the texture request; and
and processing another texture request until the texture request is retried.
제1항에 있어서,
상기 밉맵 상태 레지스터를 할당하는 단계는,
상기 텍스처에 대해, 요청되는 밉맵 레벨을 예측하여 기록할 밉맵 예측 레지스터를 할당하는 단계;
상기 밉맵 레벨을 예측하는 단계;
상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨을 기록하는 단계;
상기 예측된 밉맵 레벨의 밉맵을 생성하는 단계; 및
상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는 단계를 더 포함하는, 밉맵 생성 방법.
According to claim 1,
Allocating the mipmap status register comprises:
allocating a mipmap prediction register to be written by predicting a requested mipmap level for the texture;
predicting the mipmap level;
writing the predicted mipmap level to the mipmap prediction register;
generating a mipmap of the predicted mipmap level; and
and writing in the mipmap status register to indicate that a mipmap of the mipmap level has been generated.
제5항에 있어서,
상기 결정하는 단계는,
상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정하는 단계; 및
상기 산출된 밉맵 레벨의 밉맵에 액세스하는 단계를 포함하는, 밉맵 생성 방법.
6. The method of claim 5,
The determining step is
determining not to generate a mipmap of the calculated mipmap level when it is determined that a mipmap of the calculated mipmap level exists as a result of the determination; and
and accessing a mipmap of the calculated mipmap level.
제5항에 있어서,
상기 결정하는 단계는,
상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정하는 단계;
상기 산출된 밉맵 레벨의 밉맵을 생성하는 단계; 및
상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는 단계를 포함하는, 밉맵 생성 방법.
6. The method of claim 5,
The determining step is
determining that a mipmap of the calculated mipmap level is to be generated when it is determined that a mipmap of the calculated mipmap level does not exist as a result of the determination;
generating a mipmap of the calculated mipmap level; and
and writing in the mipmap status register to indicate that a mipmap of the mipmap level has been generated.
제7항에 있어서,
상기 밉맵을 생성하는 것으로 결정하는 단계는,
상기 텍스처 요청을 다시 시도할 것을 명령하는 단계; 및
상기 텍스처 요청이 다시 시도되기 전까지 다른 텍스처 요청을 처리하는 단계를 더 포함하는, 밉맵 생성 방법.
8. The method of claim 7,
The step of determining to generate the mipmap comprises:
instructing to retry the texture request; and
and processing another texture request until the texture request is retried.
제5항에 있어서,
상기 밉맵 상태 레지스터를 할당하는 단계는,
상기 텍스처에 대해, 실제 요청된 밉맵 레벨을 기록할 밉맵 요청 레지스터를 할당하는 단계를 더 포함하고,
상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨을 기록하는 단계는,
상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨로부터 허용 오차(tolerance) 범위 내의 밉맵 레벨을 기록하는 단계를 포함하고,
상기 예측된 밉맵 레벨의 밉맵을 생성하는 단계는,
상기 예측된 밉맵 레벨로부터 상기 허용 오차 범위 내의 밉맵 레벨의 밉맵들을 생성하는 단계를 포함하고,
상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는 단계는,
상기 밉맵 상태 레지스터에 상기 예측된 밉맵 레벨로부터 상기 허용 오차 범위 내의 밉맵 레벨의 밉맵들이 생성된 것을 나타내도록 기록하는 단계를 포함하고,
상기 밉맵 레벨을 산출하는 단계는,
상기 밉맵 요청 레지스터 상에 상기 산출된 밉맵 레벨을 기록하는 단계를 더 포함하는, 밉맵 생성 방법.
6. The method of claim 5,
Allocating the mipmap status register comprises:
for the texture, allocating a mipmap request register to record the actual requested mipmap level;
Writing the predicted mipmap level to the mipmap prediction register comprises:
recording a mipmap level within a tolerance from the predicted mipmap level in the mipmap prediction register;
The step of generating a mipmap of the predicted mipmap level comprises:
generating mipmaps of a mipmap level within the tolerance range from the predicted mipmap level;
The step of recording to indicate that the mipmap of the mipmap level has been generated comprises:
writing to the mipmap status register to indicate that mipmaps of a mipmap level within the tolerance range have been generated from the predicted mipmap level;
Calculating the mipmap level includes:
The method further comprising the step of recording the calculated mipmap level in the mipmap request register.
제5항에 있어서,
상기 밉맵 레벨을 예측하는 단계는,
상기 텍스처를 사용할 프리미티브를 구성하는 정점에 기초하여 상기 밉맵 레벨을 예측하는 단계를 포함하는, 밉맵 생성 방법.
6. The method of claim 5,
Predicting the mipmap level comprises:
and predicting the mipmap level based on vertices constituting a primitive that will use the texture.
제10항에 있어서,
상기 밉맵 레벨을 예측하는 단계는,
상기 프리미티브를 구성하는 정점의 좌표를 획득하는 단계;
상기 정점의 좌표에 기초하여 상기 프리미티브의 크기 및 Z 평면상에서의 기울기를 산출하는 단계; 및
상기 프리미티브의 크기, 상기 프리미티브의 Z 평면상에서의 기울기, 상기 텍스처의 좌표 및 상기 텍스처의 크기에 기초하여 상기 밉맵 레벨을 예측하는 단계를 포함하는, 밉맵 생성 방법.
11. The method of claim 10,
Predicting the mipmap level comprises:
obtaining coordinates of vertices constituting the primitive;
calculating a size of the primitive and a slope on the Z plane based on the coordinates of the vertex; and
and predicting the mipmap level based on the size of the primitive, the slope of the primitive on the Z plane, the coordinates of the texture, and the size of the texture.
제9항에 있어서,
상기 허용 오차는 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨의 일치 여부에 기초하여 조정되는, 밉맵 생성 방법.
10. The method of claim 9,
and the tolerance is adjusted based on whether the predicted mipmap level matches the calculated mipmap level.
제9항에 있어서,
상기 밉맵 예측 레지스터 및 상기 밉맵 요청 레지스터를 이용하여, 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨의 일치 여부를 판단하는 단계; 및
상기 판단 결과, 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨이 일치하는 경우, 상기 허용 오차를 감소시키는 단계를 더 포함하는, 밉맵 생성 방법.
10. The method of claim 9,
determining whether the predicted mipmap level matches the calculated mipmap level using the mipmap prediction register and the mipmap request register; and
and reducing the tolerance when the predicted mipmap level matches the calculated mipmap level as a result of the determination.
제9항에 있어서,
상기 밉맵 예측 레지스터 및 상기 밉맵 요청 레지스터를 이용하여, 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨의 일치 여부를 판단하는 단계; 및
상기 판단 결과, 상기 예측된 밉맵 레벨 및 상기 산출된 밉맵 레벨이 일치하지 않는 경우, 상기 허용 오차를 증가시키는 단계를 더 포함하는, 밉맵 생성 방법.
10. The method of claim 9,
determining whether the predicted mipmap level matches the calculated mipmap level using the mipmap prediction register and the mipmap request register; and
and increasing the tolerance when the predicted mipmap level and the calculated mipmap level do not match as a result of the determination.
제1항 내지 제14항 중 어느 한 항에 따른 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium in which a program for executing the method according to any one of claims 1 to 14 in a computer is recorded. 밉맵(mipmap) 생성 함수가 호출되면, 텍스처(texture)에 대해 생성된 밉맵 레벨을 나타내는 밉맵 상태 레지스터(mipmap status register)를 할당하는 레지스터 할당부;
상기 밉맵 생성 함수의 호출 시점으로부터 제1 기간 이후에 상기 텍스처에 대한 요청을 수신하면, 상기 텍스처에 대해 요청되는 밉맵 레벨(mipmap level)을 산출하는 밉맵 레벨 산출부; 및
상기 밉맵 상태 레지스터를 이용하여, 상기 산출된 밉맵 레벨의 밉맵이 존재하는지 여부를 판단하고, 상기 판단 결과에 기초하여, 상기 산출된 밉맵 레벨의 밉맵을 생성할지 여부를 결정하는 제어부를 포함하는, 밉맵 생성 장치.
a register allocator for allocating a mipmap status register indicating a mipmap level generated for a texture when a mipmap generating function is called;
a mipmap level calculator configured to calculate a mipmap level requested for the texture when the request for the texture is received after a first period from the time of calling the mipmap generating function; and
and a controller configured to determine whether a mipmap of the calculated mipmap level exists using the mipmap status register, and determine whether to generate a mipmap of the calculated mipmap level based on a result of the determination; generating device.
제16항에 있어서,
상기 제어부는, 상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재한다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하지 않는 것으로 결정하고, 상기 산출된 밉맵 레벨의 밉맵에 액세스하는, 밉맵 생성 장치.
17. The method of claim 16,
When it is determined as a result of the determination that a mipmap of the calculated mipmap level exists, the controller determines not to generate a mipmap of the calculated mipmap level, and accesses a mipmap of the calculated mipmap level. Device.
제16항에 있어서,
상기 제어부는, 상기 판단 결과, 상기 산출된 밉맵 레벨의 밉맵이 존재하지 않는다고 판단된 경우, 상기 산출된 밉맵 레벨의 밉맵을 생성하는 것으로 결정하고, 상기 산출된 밉맵 레벨의 밉맵을 생성하고, 상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는, 밉맵 생성 장치.
17. The method of claim 16,
When it is determined as a result of the determination that a mipmap of the calculated mipmap level does not exist, the controller determines to generate a mipmap of the calculated mipmap level, generates a mipmap of the calculated mipmap level, and generates the mipmap and writing to a status register indicating that a mipmap of the mipmap level has been generated.
제16항에 있어서,
상기 레지스터를 할당부는, 상기 텍스처에 대해, 요청되는 밉맵 레벨을 예측하여 기록할 밉맵 예측 레지스터를 할당하고,
상기 제어부는, 상기 밉맵 레벨을 예측하고, 상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨을 기록하고, 상기 예측된 밉맵 레벨의 밉맵을 생성하고, 상기 밉맵 상태 레지스터에 상기 밉맵 레벨의 밉맵이 생성된 것을 나타내도록 기록하는, 밉맵 생성 장치.
17. The method of claim 16,
The register allocator allocates a mipmap prediction register to be recorded by predicting a requested mipmap level for the texture,
the control unit predicts the mipmap level, records the predicted mipmap level in the mipmap prediction register, generates a mipmap of the predicted mipmap level, and determines that a mipmap of the mipmap level is generated in the mipmap status register A mipmap generator that writes to display.
제19항에 있어서,
상기 레지스터를 할당부는, 상기 텍스처에 대해, 실제 요청된 밉맵 레벨을 기록할 밉맵 요청 레지스터를 할당하고,
상기 제어부는, 상기 밉맵 예측 레지스터에 상기 예측된 밉맵 레벨로부터 허용 오차(tolerance) 범위 내의 밉맵 레벨을 기록하고, 상기 예측된 밉맵 레벨로부터 상기 허용 오차 범위 내의 밉맵 레벨의 밉맵들을 생성하고, 상기 밉맵 상태 레지스터에 상기 예측된 밉맵 레벨로부터 상기 허용 오차 범위 내의 밉맵 레벨의 밉맵들이 생성된 것을 나타내도록 기록하고, 상기 밉맵 요청 레지스터 상에 상기 산출된 밉맵 레벨을 기록하는, 밉맵 생성 장치.
20. The method of claim 19,
The register allocating unit allocates a mipmap request register in which an actual requested mipmap level is recorded for the texture;
The control unit records a mipmap level within a tolerance range from the predicted mipmap level in the mipmap prediction register, generates mipmaps with a mipmap level within the tolerance range from the predicted mipmap level, and the mipmap state and writing in a register indicating that mipmaps of a mipmap level within the tolerance range are generated from the predicted mipmap level, and writing the calculated mipmap level in the mipmap request register.
KR1020140082528A 2014-07-02 2014-07-02 Mipmap Generation Method and apparatus KR102282189B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140082528A KR102282189B1 (en) 2014-07-02 2014-07-02 Mipmap Generation Method and apparatus
US14/598,590 US9881392B2 (en) 2014-07-02 2015-01-16 Mipmap generation method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140082528A KR102282189B1 (en) 2014-07-02 2014-07-02 Mipmap Generation Method and apparatus

Publications (2)

Publication Number Publication Date
KR20160004096A KR20160004096A (en) 2016-01-12
KR102282189B1 true KR102282189B1 (en) 2021-07-27

Family

ID=55017332

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140082528A KR102282189B1 (en) 2014-07-02 2014-07-02 Mipmap Generation Method and apparatus

Country Status (2)

Country Link
US (1) US9881392B2 (en)
KR (1) KR102282189B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170243375A1 (en) * 2016-02-18 2017-08-24 Qualcomm Incorporated Multi-step texture processing with feedback in texture unit
GB2557657B (en) * 2016-12-14 2020-08-12 Samsung Electronics Co Ltd Mipmap rendering
WO2018111014A1 (en) * 2016-12-14 2018-06-21 Samsung Electronics Co., Ltd. Method and apparatus for rendering object using mipmap including plurality of textures
KR102589861B1 (en) 2018-11-01 2023-10-16 삼성전자주식회사 Display device
USD938985S1 (en) 2018-12-20 2021-12-21 Samsung Electronics Co., Ltd. Display screen or portion thereof with transitional graphical user interface

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120038657A1 (en) * 2010-08-16 2012-02-16 Microsoft Corporation Gpu texture tile detail control
US20130321443A1 (en) * 2012-06-05 2013-12-05 Aroon Pahwa Method, system and apparatus for rendering a map with adaptive textures for map features

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3645024B2 (en) 1996-02-06 2005-05-11 株式会社ソニー・コンピュータエンタテインメント Drawing apparatus and drawing method
US5973701A (en) * 1996-09-30 1999-10-26 Cirrus Logic, Inc. Dynamic switching of texture mip-maps based on pixel depth value
KR100258883B1 (en) 1997-09-23 2000-06-15 구자홍 The method and apparatus for cache memory control of multiprocessor
JPH11195132A (en) 1997-10-31 1999-07-21 Hewlett Packard Co <Hp> Buffer for texture mapping and three-dimensional graphics processor and system therefor and method therefor and storage medium for storing processing program
US6219064B1 (en) 1998-01-07 2001-04-17 Seiko Epson Corporation Graphics mechanism and apparatus for mipmap level estimation for anisotropic texture mapping
US6452603B1 (en) * 1998-12-23 2002-09-17 Nvidia Us Investment Company Circuit and method for trilinear filtering using texels from only one level of detail
US6924814B1 (en) * 2000-08-31 2005-08-02 Computer Associates Think, Inc. System and method for simulating clip texturing
DE10242639A1 (en) 2002-09-13 2004-03-25 Sp3D Chip Design Gmbh Method for analysis and modification of footprint i.e. perspective projection of pixel e.g. for computerized raster image displays, requires initially establishing resolution of textured elements associated with footprint
US8106918B2 (en) * 2007-05-01 2012-01-31 Vivante Corporation Apparatus and method for texture level of detail computation
KR101345379B1 (en) 2007-06-28 2014-01-22 삼성전자주식회사 Method and apparatus for rendering three dimensional graphics data
US8233006B2 (en) * 2008-10-10 2012-07-31 Advanced Micro Devices, Inc. Texture level tracking, feedback, and clamping system for graphics processors
KR101508388B1 (en) * 2008-12-15 2015-04-06 엘지전자 주식회사 Apparatus and method for generating mipmap
EP2610814A4 (en) * 2010-08-27 2014-10-01 Siliconarts Inc Method for selecting mip-map level and system for texture mapping using same
TWI528328B (en) 2012-04-20 2016-04-01 財團法人資訊工業策進會 3d texture mapping method, apparatus with function for selecting level of detail by image content and computer readable storage medium storing the method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120038657A1 (en) * 2010-08-16 2012-02-16 Microsoft Corporation Gpu texture tile detail control
US20130321443A1 (en) * 2012-06-05 2013-12-05 Aroon Pahwa Method, system and apparatus for rendering a map with adaptive textures for map features

Also Published As

Publication number Publication date
US9881392B2 (en) 2018-01-30
US20160005191A1 (en) 2016-01-07
KR20160004096A (en) 2016-01-12

Similar Documents

Publication Publication Date Title
US10991152B2 (en) Adaptive shading in a graphics processing pipeline
US9569885B2 (en) Technique for pre-computing ambient obscurance
KR102282189B1 (en) Mipmap Generation Method and apparatus
US9842424B2 (en) Volume rendering using adaptive buckets
US9153209B2 (en) Method and system for generating a displacement map from a normal map
KR102247565B1 (en) Method and apparatus for redndering
CA2866849C (en) Method for estimating the opacity level in a scene and corresponding device
KR102651126B1 (en) Graphic processing apparatus and method for processing texture in graphics pipeline
KR20160049031A (en) Tessellation in tile-based rendering
JP6333840B2 (en) Method for forming shell mesh based on optimized polygons
US9773341B2 (en) Rendering cover geometry without internal edges
US20150213638A1 (en) Hierarchical tiled caching
US9396515B2 (en) Rendering using multiple render target sample masks
US9558573B2 (en) Optimizing triangle topology for path rendering
CN105096375B (en) Image processing method and apparatus
US8854392B2 (en) Circular scratch shader
US9342891B2 (en) Stencil then cover path rendering with shared edges
US10607390B2 (en) Techniques for tiling compute work with graphics work
KR102399686B1 (en) 3d rendering method and apparatus
US9767600B2 (en) Target independent rasterization with multiple color samples
EP4205082A1 (en) Shader core instruction to invoke depth culling
KR20230018368A (en) Methods and apparatus for occlusion treatment techniques
US10636210B2 (en) Dynamic contour volume deformation
US10255717B2 (en) Geometry shadow maps with per-fragment atomics
US20230063422A1 (en) Techniques for rendering signed distance functions

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant