아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명하도록 한다.
그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
참고로, 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다.
또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 첨부된 구성도 또는 처리 흐름도를 참고하여, 본 발명의 실시를 위한 구체적인 내용을 설명하도록 한다.
도 1은 본 발명의 일 실시예에 따른 3D 가속 기능을 이용하는 프로그램에 의해 사용되는 복수의 이미지를 자동 배치하는 장치의 구성을 도시한 블록도이다.
본 발명의 일 실시예에 따른 3D 가속 기능을 이용하는 프로그램에 의해 사용되는 복수의 이미지를 자동 배치하는 장치(100)는 이미지 선택부(110), 이미지 배치부(120) 및 기준 이미지 영역 관리부(130)를 포함한다.
참고로, 본 발명의 실시예에 따른 도 1에 도시된 구성 요소들은 소프트웨어 또는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)와 같은 하드웨어 구성 요소를 의미하며, 소정의 역할들을 수행한다.
그렇지만 '구성 요소들'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 각 구성 요소는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.
따라서, 일 예로서 구성 요소는 소프트웨어 구성 요소들, 객체지향 소프트웨어 구성 요소들, 클래스 구성 요소들 및 태스크 구성 요소들과 같은 구성 요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다.
구성 요소들과 해당 구성 요소들 안에서 제공되는 기능은 더 작은 수의 구성 요소들로 결합되거나 추가적인 구성 요소들로 더 분리될 수 있다.
먼저, 이미지 선택부(110)는 3D 가속 기능을 이용하는 애플리케이션이나 게임에서 사용하는 복수의 이미지를 면적, 즉 '폭 X 높이'가 큰 순서로 정렬한다. 이때, 이미지 선택부(110)는 정렬된 이미지 각각에 고유한 아이디를 부여할 수도 있다.
참고로, 이미지 선택부(110)는 상기한 복수의 이미지를 '폭 X 높이'가 큰 순서가 아닌, 이미지의 폭이 큰 순서 또는 이미지의 높이가 큰 순서로 정렬할 수도 있다.
이하, 본 발명의 실시예에서는 설명의 편의를 위해 이미지 선택부(110)에서 이미지의 면적, 즉, '폭 X 높이'가 큰 순서로 정렬하는 경우에 대해 설명하도록 하며, '폭 X 높이'를 '사이즈'라 칭하도록 한다.
또한, 이미지 선택부(110)는 사이즈가 큰 순서로 정렬된 이미지와 이미지가 배치되는 기준 이미지 영역의 폭과 높이를 비교하여, 정렬된 이미지 중 기준 이미지 영역의 폭과 높이를 초과하지 않으면서 가장 큰 사이즈의 이미지를 선택한다.
여기에서, 기준 이미지 영역은 최초로 설정되는 기준 이미지 영역과 재설정된 기준 이미지 영역을 포함한다. 최초로 설정되는 기준 이미지 영역은 3D 가속 기능을 이용하는 애플리케이션이나 게임에서 한번에 로딩하는 단위 영역으로서, 복수의 이미지들이 배치되는 공간이며, 다시 복수 개의 재설정된 기준 이미지 영역으로 분할될 수 있다. 또한, 최초로 설정된 기준 이미지 영역은 복수 개일 수 있으며, 최초로 설정된 기준 이미지 영역마다 각각 고유한 아이디가 부여될 수 있다.
예를 들어, 하나의 애플리케이션에 사용되는 이미지의 개수가 1000개인 경우, 이들 1000개의 이미지는 1024 X 1024 사이즈를 갖는 20개의 최초 설정 기준 이미지 영역에 나누어 배치될 수 있다. 또한, 하나의 최초 설정 기준 이미지 영역은 복수 개의 재설정된 기준 이미지 영역을 포함할 수 있다. 따라서, 애플리케이션은 1024 X 1024 사이즈를 갖는 20개의 최초 설정 기준 이미지 영역만을 로딩한 후, 로딩된 최초 설정 기준 이미지 영역 내에서 1000개의 이미지 각각을 읽어내서 사용할 수 있게 된다.
참고로, 최초로 설정되는 기준 이미지 영역의 사이즈는
(m, n은 자연 수) 단위이며, 최초로 설정되는 기준 이미지 영역의 사이즈가 클수록 기준 이미지 영역에 가능한 많은 이미지를 로딩함으로써 텍스쳐 스위칭의 횟수를 줄일 수 있으나, 바람직하게는, 시스템의 성능을 고려한 기준 이미지 영역의 사이즈 설정이 필요하다.
또한, 최초로 설정되는 기준 이미지 영역의 사이즈는 당업자에 따라 다양하게 설정될 수 있으며, 본 발명의 실시예에서는 1024 X 1024 사이즈를 예로 들어 설명하도록 한다.
한편, 재설정된 기준 이미지 영역은 도 2a 내지 도 4f를 참조하여 후술하도록 하겠다.
본 발명의 일 실시예에 따른 3D 가속 기능을 이용하는 프로그램에 의해 사용되는 복수의 이미지를 자동 배치하는 장치(100) 중 이미지 배치부(120)는 이미지 선택부(110)에서 선택된 이미지를 기준 이미지 영역 내의 한쪽 모서리에 배치한다. 이때, 이미지 배치부(120)는 선택된 이미지를 기준 이미지 영역 내의 좌측 상단 모서리에 배치할 수 있으며, 배치된 이미지에 대해 기준 이미지 영역 내의 위치 정보, 예를 들어, 이미지가 배치된 좌측 상단 모서리의 x, y 좌표 값과, 배치된 이미지의 폭(w) 및 높이(h) 정보를 파악하여 저장한다.
한편, 기준 이미지 영역 관리부(130)는 이미지 배치부(120)에서 기준 이미지 영역에 이미지를 배치한 결과 남게 되는 두 개의 사각형 영역을 각각 기준 이미지 영역으로 재설정한다.
이때, 기준 이미지 영역 관리부(130)는 배치된 이미지의 우변을 따라 연장된 직선의 우측 영역과, 배치된 이미지의 하변의 하측 영역을 기준 이미지 영역으로 재설정할 수 있으며, 이와 달리, 배치된 이미지의 하변을 따라 연장된 직선의 하측 영역과, 배치된 이미지의 우변의 우측 영역을 기준 이미지 영역으로 재설정할 수도 있다.
이하, 도 2a 내지 도 4f를 참조하여 이미지 배치부(120)의 이미지 배치와 기준 이미지 영역 관리부(130)의 기준 이미지 영역 재설정에 대하여 상세하게 설명하도록 한다.
도 2a 및 도 2b는 본 발명의 일 실시예에 따른 재설정된 기준 이미지 영역을 도시한 도면이다.
먼저, 도 2a에서, 최초로 설정된 기준 이미지 영역(200) 내에 이미지(201)가 배치되면, 두 개의 사각형 영역(210, 220)이 남게 되는데, 기준 이미지 영역 관리부(130)는 이 두 개의 사각형 영역(210, 220)을 기준 이미지 영역으로 각각 재설정한다. 재설정 방법은 다음과 같다.
기준 이미지 영역 관리부(130)는 배치된 이미지(201)의 우변(201a)을 따라 연장된 직선(201a’)의 우측 영역(210)과, 배치된 이미지의 하변(201b)의 하측 영역(220)을 기준 이미지 영역으로 재설정할 수 있다.
이하에서는, 도 2b를 참조하여 우측 영역(210)에 이미지가 배치되는 경우를 설명하도록 한다.
기준 이미지 영역 관리부(130)에서, 상기한 바와 같이, 우측 영역(210)과 하측 영역(220)을 기준 이미지 영역으로 재설정하고, 우측 영역(210)에 이미지를 배 치하는 경우, 이미지 선택부(110)는 재설정된 기준 이미지 영역, 즉, 우측 영역(210)의 폭과 높이를 초과하지 않으면서, 가장 큰 사이즈를 갖는 이미지(202)를 선택한다.
이후, 이미지 배치부(120)는 이미지 선택부(110)에서 선택된 이미지(202)를 우측 영역(210) 내의 좌측 상단 모서리에 배치할 수 있으며, 배치된 이미지(202)에 대해 최초 기준 이미지 영역(200) 내의 위치 정보, 예를 들어, 좌측 상단 모서리의 x, y 좌표 값과, 배치된 이미지(202)의 폭 및 높이를 파악하여 저장한다.
이후, 기준 이미지 영역 관리부(130)는 우측 영역(210)에 배치된 이미지(202)의 우변(202a)을 따라 연장된 직선(202a’)의 우측 영역(211)과, 배치된 이미지(202)의 하변(202b)의 하측 영역(212)을 기준 이미지 영역으로 재설정한다.
이후, 이미지 선택부(110), 이미지 배치부(120) 및 기준 이미지 영역 관리부(130)는 도 2a 및 도 2b를 참조하여 설명한 과정을 반복함으로써, 최초로 설정된 기준 이미지 영역(200) 내에 이미지들을 배치할 수 있다.
도 3a 및 도 3b는 본 발명의 다른 실시예에 따른 재설정된 기준 이미지 영역을 도시한 도면이다.
도 2a 및 도 2b에 도시된 방법 외에도, 기준 이미지 영역 관리부(130)는, 도 3a에 도시된 바와 같이, 최초로 설정된 기준 이미지 영역(300)에 배치된 이미지(301)의 하변(301a)을 따라 연장된 직선(301a’)의 하측 영역(310)과, 배치된 이미지(301)의 우변(301b)의 우측 영역(320)을 기준 이미지 영역으로 재설정할 수도 있다.
이하에서는, 도 3b를 참조하여, 하측 영역(310)에 먼저 이미지가 배치되는 경우를 설명하도록 한다.
기준 이미지 영역 관리부(130)에서, 상기한 바와 같이, 하측 영역(310)과 우측 영역(320)을 기준 이미지 영역으로 재설정하고, 하측 영역(310)에 이미지를 배치하는 경우, 이미지 선택부(110)는 재설정된 기준 이미지 영역, 즉, 하측 영역(310)의 폭과 높이를 초과하지 않으면서 가장 큰 사이즈를 갖는 이미지(302)를 선택한다.
이후, 이미지 배치부(120)는 선택된 이미지(302)를 하측 영역(310) 내의 한쪽 모서리에 배치한다. 이때, 이미지 배치부(120)는 이미지 선택부(110)에서 선택된 이미지(302)를 하측 영역(310) 내의 좌측 상단 모서리에 배치할 수 있으며, 배치된 이미지(302)에 대해 최초 기준 이미지 영역(200) 내의 위치 정보, 예를 들어, 좌측 상단 모서리의 x, y 좌표 값과, 배치된 이미지(302)의 폭 및 높이를 파악하여 저장한다.
이후, 기준 이미지 영역 관리부(130)는 하측 영역(310)에 배치된 이미지(302)의 하변(302a)을 따라 연장된 직선(302a’)의 하측 영역(311)과, 배치된 이미지(302)의 우변(302b)의 우측 영역(312)을 기준 이미지 영역으로 재설정한다.
이후, 이미지 선택부(110), 이미지 배치부(120) 및 기준 이미지 영역 관리부(130)는 도 3a 및 도 3b를 참조하여 설명한 과정을 반복함으로써, 최초로 설정된 기준 이미지 영역(200) 내에 이미지들을 배치할 수 있다.
도 4a 내지 도 4f는 본 발명의 일 실시예에 따른 기준 이미지 영역 내에 복 수의 이미지를 배치하는 과정을 도시한 도면이다.
설명의 편의 상, 3D 가속 기능을 이용하는 애플리케이션이나 게임에서 사용하는 복수의 이미지는 이미지 선택부(110)에 의해 사이즈가 큰 순서로 정렬되어 있고, 이미지 선택부(110)는 정렬된 이미지 중 최초로 설정된 기준 이미지 영역(400)의 폭과 높이를 초과하지 않으면서 가장 큰 사이즈의 이미지를 선택하였다고 가정하도록 한다.
여기에서, 최초로 설정된 기준 이미지 영역(400) 내에 배치된 6개의 이미지(401 내지 406)는 이미지 선택부(110)에 의해 각각 고유한 아이디가 부여되었고, 각 이미지의 아이디, 폭(w) 및 높이(h)는 다음과 같다.
이미지 1(401) - 아이디 : img_01, 폭(w) : 69, 높이(h) : 81
이미지 2(402) - 아이디 : img_02, 폭 : 54, 높이 : 56
이미지 3(403) - 아이디 : img_03, 폭 : 53, 높이 : 49
이미지 4(404) - 아이디 : img_04, 폭 : 61, 높이 : 21
이미지 5(405) - 아이디 : img_05, 폭 : 48, 높이 : 16
이미지 6(406) - 아이디 : img_06, 폭 : 117, 높이 : 52
먼저, 도 4a는 최초로 설정된 기준 이미지 영역(400) 내에 이미지 1(401) 이 배치된 결과를 도시한 도면이다.
이미지 배치부(120)는, 도 4a에 도시된 바와 같이, 최초로 설정된 기준 이미지 영역(400) 내의 한쪽 모서리, 더 상세하게는 좌측 상단 모서리에, 이미지 선택부(110)에서 선택된 이미지 1(401)을 배치한다. 이때, 이미지 배치부(120)는 배치 된 이미지 1(401)에 대해 최초로 설정된 기준 이미지 영역(400) 내에서의 위치 정보, 예를 들어 좌측 상단 모서리의 x, y 좌표 값과 배치된 이미지 1(410)의 폭(w) 및 높이(h) 등을 파악하여 저장한다.
따라서, 이미지 배치부(120)는 이전에 배치된 이미지에 대한 기준 이미지 영역(400) 내의 위치를 참조함으로써 공간의 낭비 없이 다음에 배치할 이미지의 위치를 설정할 수 있다.
이후, 기준 이미지 영역 관리부(130)는, 도 4a에 도시된 바와 같이, 최초로 설정된 기준 이미지 영역(400)에 배치된 이미지 1(401)의 하변을 따라 연장된 직선(410)의 하측 영역(410a)과, 배치된 이미지 1(401)의 우변의 우측 영역(410b)을 기준 이미지 영역으로 재설정하고, 이미지 배치부(120)는 재설정된 두 영역(410a, 410b) 중 우측 영역(410b)에 이미지를 배치하고, 우측 영역(410b)에 더 이상 이미지를 배치할 공간이 없다면, 하측 영역(410a)에 이미지를 이어서 배치한다.
참고로, 하측 영역(410a)에 이미지를 배치하고, 하측 영역(410a)에 더 이상 이미지를 배치할 공간이 없다면, 우측 영역(410b)에 이미지를 이어서 배치할 수도 있으므로, 이미지 배치 순서는 도 4a에 도시된 실시예로 한정하지 않는다.
또한, 배치된 이미지 1(401)의 우변을 따라 연장된 직선의 우측 영역과, 배치된 이미지의 하변의 하측 영역을 기준 이미지 영역으로 재설정할 수도 있으므로, 기준 이미지 영역의 재설정 방법 역시, 도 4a에 도시된 실시예로 한정하지 않는다.
도 4b는 최초로 설정된 기준 이미지 영역(400) 내에 배치된 이미지 2(402)를 도시한 도면이다.
이미지 선택부(110)는 도 4a에서 기준 이미지 영역으로 재설정된 우측 영역(410b)의 폭과 높이를 초과하지 않으면서 가장 큰 사이즈의 이미지인 이미지 2(402)를 선택하고, 이미지 배치부(120)는, 도 4b에 도시된 바와 같이, 우측 영역(410b) 내의 좌측 상단 모서리에 선택된 이미지 2(402)를 배치한다.
이때, 이미지 배치부(120)는 이미 배치된 이미지 1(401)에 대한, 최초로 설정된 기준 이미지 영역(400) 내에서의 위치 정보, 예를 들어, 좌측 상단 모서리의 x, y 좌표 값과 배치된 이미지 1(410)의 폭(w), 높이(h)를 참조하여, 우측 영역(410b) 내의 좌측 상단 모서리에 선택된 이미지 2(402)를 배치한다.
이후, 기준 이미지 영역 관리부(130)는, 우측 영역(410b)에 배치된 이미지 2(402)의 하변을 따라 연장된 직선(420)의 하측 영역(420a)과, 배치된 이미지 2(402)의 우변의 우측 영역(420b)을 기준 이미지 영역으로 다시 재설정하고, 이미지 배치부(120)는 재설정된 두 영역(420a, 420b) 중 우측 영역(420b)에 이미지를 배치한 후, 우측 영역(420b)에 더 이상 이미지를 배치할 공간이 없다면, 하측 영역(420a)에 이미지를 이어서 배치한다.
도 4c는 최초로 설정된 기준 이미지 영역(400) 내에 배치된 이미지 3(403)을 도시한 도면이다.
이미지 선택부(110)는 재설정된 기준 이미지 영역인 우측 영역(420b)의 폭과 높이를 초과하지 않으면서 가장 큰 사이즈의 이미지인 이미지 3(403)을 선택하고, 이미지 배치부(120)는, 도 4c에 도시된 바와 같이, 도 4b에서 기준 이미지 영역으로 재설정된 우측 영역(420b) 내의 좌측 상단 모서리에 선택된 이미지 3(403)을 배 치한다.
이때, 이미지 배치부(120)가 이미지 3(403)을 배치하는 방법은 이미지 2(402)를 배치하는 방법과 동일하므로 생략하도록 한다.
이후, 기준 이미지 영역 관리부(130)는, 우측 영역(420b)에 배치된 이미지 3(403)의 하변을 따라 연장된 직선(430)의 하측 영역(430a)과, 배치된 이미지 3(403)의 우변의 우측 영역(430b)을 기준 이미지 영역으로 다시 재설정한다.
이후, 이미지 배치부(120)는 재설정된 두 영역(430a, 430b) 중 우측 영역(430b)에 이미지를 배치하고, 우측 영역(430b)에 더 이상 이미지를 배치할 공간이 없다면, 하측 영역(430a)에 이미지를 이어서 배치한다.
도 4d는 최초로 설정된 기준 이미지 영역(400) 내에 배치된 이미지 4(404)를 도시한 도면이다.
먼저, 이미지 선택부(110)는 복수의 이미지 중 도 4c에서 기준 이미지 영역으로 재설정된 우측 영역(430b)의 폭과 높이를 초과하지 않으면서 가장 큰 사이즈를 갖는 이미지를 검색한다. 검색 결과, 해당 이미지가 존재하지 않는 경우, 이미지 선택부(110)는 도 4c에서 기준 이미지 영역으로 재설정된 하측 영역(430a)의 폭과 높이를 초과하지 않으면서 가장 큰 사이즈를 갖는 이미지를 검색한다.
만일, 이 경우에도, 복수의 이미지 중 하측 영역(430a)의 폭과 높이를 초과하지 않으면서 가장 큰 사이즈를 갖는 이미지가 존재하지 않는다면, 이미지 선택부(110)는, 다시, 도 4b에서 기준 이미지 영역으로 재설정된 하측 영역(420a)의 폭과 높이를 초과하지 않으면서 가장 큰 사이즈를 갖는 이미지를 검색하여 이미지 4(404)를 선택하고, 이미지 배치부(120)는, 도 4d에 도시된 바와 같이, 하측 영역(420a) 내의 좌측 상단 모서리에 선택된 이미지 4(404)를 배치한다.
이때, 이미지 배치부(120)가 이미지 4(404)를 배치하는 방법은 이미지 3(403)를 배치하는 방법과 동일하므로 생략하도록 한다.
이후, 기준 이미지 영역 관리부(130)는, 하측 영역(420a)에 배치된 이미지 4(404)의 하변을 따라 연장된 직선(440)의 하측 영역(440a)과, 배치된 이미지 4(404)의 우변의 우측 영역(440b)을 기준 이미지 영역으로 다시 재설정한다.
이후, 이미지 배치부(120)는 재설정된 두 영역(440a, 440b) 중 우측 영역(440b)에 이미지를 배치하고, 우측 영역(440b)에 더 이상 이미지를 배치할 공간이 없다면, 하측 영역(440a)에 이미지를 이어서 배치한다.
도 4e는 최초로 설정된 기준 이미지 영역(400) 내에 배치된 이미지 5(405)를 도시한 도면이다.
이미지 선택부(110)는 복수의 이미지 중 도 4d에서 기준 이미지 영역으로 재설정된 우측 영역(440b)의 폭과 높이를 초과하지 않으면서 가장 큰 사이즈를 갖는 이미지인 이미지 5(405)을 선택한다.
이후, 이미지 배치부(120)는, 도 4e에 도시된 바와 같이, 우측 영역(440b) 내의 좌측 상단 모서리에 선택된 이미지 5(405)를 배치한다.
이때, 이미지 배치부(120)가 이미지 5(405)를 배치하는 방법은 이미지 4(404)를 배치하는 방법과 동일하므로 생략하도록 한다.
이후, 기준 이미지 영역 관리부(130)는, 우측 영역(440b)에 배치된 이미지 5(405)의 하변을 따라 연장된 직선(450)의 하측 영역(450a)과, 배치된 이미지 5(405)의 우변의 우측 영역(450b)을 기준 이미지 영역으로 다시 재설정한다.
이후, 이미지 배치부(120)는 재설정된 두 영역(450a, 450b) 중 우측 영역(450b)에 이미지를 배치하고, 우측 영역(450b)에 더 이상 이미지를 배치할 공간이 없다면, 하측 영역(450a)에 이미지를 이어서 배치한다.
도 4f는 최초로 설정된 기준 이미지 영역(400) 내에 배치된 이미지 6(406)을 도시한 도면이다.
이미지 선택부(110)는 복수의 이미지 중 도 4e에서 기준 이미지 영역으로 재설정된 우측 영역(450b)의 폭과 높이를 초과하지 않으면서 가장 큰 사이즈를 갖는 이미지를 검색한다. 검색 결과, 해당 이미지가 존재하지 않는 경우, 이미지 선택부(110)는 도 4e에서 기준 이미지 영역으로 재설정된 하측 영역(450a)의 폭과 높이를 초과하지 않으면서 가장 큰 사이즈를 갖는 이미지를 검색한다.
만일, 이 경우에도, 복수의 이미지 중 하측 영역(450a)의 폭과 높이를 초과하지 않으면서 가장 큰 사이즈를 갖는 이미지가 존재하지 않는다면, 이미지 선택부(110)는, 다시, 도 4d에서 기준 이미지 영역으로 재설정된 하측 영역(440a)의 폭과 높이를 초과하지 않으면서 가장 큰 사이즈를 갖는 이미지를 검색한다.
검색 결과, 해당 이미지가 역시 존재하지 않는다면, 이미지 선택부(110)는, 또 다시, 도 4a에서 기준 이미지 영역으로 재설정된 하측 영역(410a)의 폭과 높이를 초과하지 않으면서 가장 큰 사이즈를 갖는 이미지를 검색하여 이미지 6(406)을 선택한다.
이후, 이미지 배치부(120)는, 도 4f에 도시된 바와 같이, 하측 영역(410a) 내의 좌측 상단 모서리에 선택된 이미지 6(406)을 배치한다.
이때, 이미지 배치부(120)가 이미지 6(406)을 배치하는 방법은 이미지 5(405)를 배치하는 방법과 동일하므로 생략하도록 한다.
이후, 기준 이미지 영역 관리부(130)는, 하측 영역(410a)에 배치된 이미지 6(406)의 하변을 따라 연장된 직선(460)의 하측 영역(460a)과, 배치된 이미지 6(406)의 우변의 우측 영역(460b)을 기준 이미지 영역으로 다시 재설정한다.
이후, 이미지 배치부(120)는 재설정된 두 영역(460a, 460b) 중 우측 영역(460b)에 이미지를 배치하고, 우측 영역(460b)에 더 이상 이미지를 배치할 공간이 없다면, 하측 영역(460a)에 이미지를 이어서 배치한다.
도 4a 내지 도 4f에는, 재설정된 기준 이미지 영역 중 우측 영역에 이미지를 배치하고, 우측 영역에 더 이상 이미지를 배치할 공간이 없다면, 하측 영역에 이미지를 이어서 배치하는 경우를 설명하였지만, 상기한 방법 외에도, 재설정된 기준 이미지 영역 중 하측 영역에 이미지를 배치한 후, 하측 영역에 더 이상 이미지를 배치할 공간이 없다면 우측 영역에 이미지를 이어서 배치할 수도 있으며, 재설정된 기준 이미지 영역에 랜덤하게 이미지를 배치할 수도 있으므로, 이미지 배치 순서를 본 발명의 실시예로 한정하는 것은 아니다.
도 5는 본 발명의 일 실시예에 따른 기준 이미지 영역에 배치된 이미지의 위치를 관리하는 데이터베이스의 구성을 도시한 도면이다.
이미지 배치부(120)에 의해서 기준 이미지 영역에 배치된 이미지들의 위치 정보는 도 5에 도시된 바와 같이 데이터베이스에 저장되어 관리될 수 있다.
기준 이미지 영역에 배치된 이미지의 위치를 관리하는 데이터베이스(500)의 구성은 이미지 아이디(510), 최초로 설정된 기준 이미지 영역의 아이디(520) 및 최초로 설정된 기준 이미지 영역 내에 배치된 이미지들의 위치 정보(530), 예를 들어, 이미지가 배치된 최초로 설정된 기준 이미지 영역 내 좌측 상단 모서리의 x, y 좌표 값과 배치된 이미지의 폭 및 높이를 포함할 수 있다.
참고로, 이미지 배치부(120)에서 이미지를 배치할 때, 기준 이미지 영역내의 한쪽 모서리, 더 상세하게는 좌측 상단 모서리에 이미지를 배치하므로, 이미지가 배치되는 최초로 설정된 기준 이미지 영역 내 좌측 상단 모서리의 x, y 좌표와 배치된 이미지의 폭 및 높이를 알고 있다면, 이전에 배치된 이미지들의 각 위치 정보를 참조하여 이후에 배치될 이미지의 배치 위치를 알 수 있다.
따라서 이미지 배치부(120)는, 도 5에 도시된, 데이터베이스(500)로부터, 이전에 배치된 이미지에 대한 최초로 설정된 기준 이미지 영역 내에서의 위치를 참조하여, 공간의 낭비 없이 다음에 배치할 이미지의 배치 위치를 설정한 후 이미지를 배치할 수 있다.
도 6a 및 도 6c는 본 발명의 일 실시예에 따른 기준 이미지 영역 관리부(130)의 기준 이미지 영역 관리 방법을 도시한 도면이다.
참고로, 도 6a 내지 도 6c에 도시된 최초로 설정된 기준 이미지 영역(600)의 폭과 높이는 각각 1024 이다.
도 6a는, 이미지 선택부(110)에서 정렬된 복수의 이미지 중 마지막 이미 지(613)가 최초로 설정된 기준 이미지 영역(600)에 배치된 후의 모습을 나타낸 것이다. 도 6a에서 볼 수 있듯이, 마지막 이미지(613)가 최초로 설정된 기준 이미지 영역(600)에 배치된 후 낭비되는 영역(620)이 존재한다.
이 낭비되는 영역(620)을 줄이기 위해서, 기준 이미지 영역 관리부(130)는 정렬된 복수의 이미지 중 마지막 이미지(613)가 최초로 설정된 기준 이미지 영역(600)에 배치되면, 최초로 설정된 기준 이미지 영역(600) 내에 배치된 전체 이미지(611, 612, 613)에 대한 폭(610a)과 높이(610b)를 확인한다.
이때, 기준 이미지 영역 관리부(130)는 전체 이미지(601, 602, 603)의 폭(610a)과 높이(610b)를 포함하는 최소의
(p, q는 자연수) 단위의 사이즈를 갖는 영역을 파악하고, 최초로 설정된 기준 이미지 영역(600)에서, 최소의
(p, q는 자연수) 단위의 사이즈를 갖는 영역을 제외한 나머지 영역을 제거한다.
예를 들어, 도 6b에 도시된 것처럼, 마지막 이미지(613)를 배치한 후 전체 이미지(611, 612, 613)의 폭(610a)이 468, 높이(610b)가 497인 경우, 이 전체 이미지(611, 612, 613)의 폭(610a)과 높이(610b)를 포함하는 최소의
(p, q는 자연수) 단위의 사이즈를 갖는 영역(630)은
, 즉, 512 X 512 이다.
따라서, 기준 이미지 영역 관리부(130)는 최초로 설정된 기준 이미지 영역(600)에서, 전체 이미지(611, 612, 613)의 폭(610a)과 높이(610b)를 포함하는 512 X 512 사이즈의 영역(630)을 제외한 나머지 영역(640)을 제거함으로써 낭비되는 영역을 최소화 할 수 있다.
결국, 마지막 이미지(613)가 배치된 후 불필요한 나머지 영역(640)을 제거한 최종 모습은 도 6c에 도시된 바와 같다.
도 7은 본 발명의 다른 실시예에 따른 기준 이미지 영역 관리부(130)의 기준 이미지 영역 관리 방법을 도시한 도면이다.
도 7에는, 상하로 움직임을 표현하기 위한 스프라이트(sprite) 이미지(710, 720)가 도시되어 있다. 종래에는 상하로 움직임을 표현하기 위해서 상하 움직임에 필요한 빈 공간(711, 721)(컬러는 투명한 상태로 저장됨)이 이미지에 포함되어, 실제 이미지(730, 740)보다 더 큰 사이즈의 공간이 필요했었다.
본 발명의 실시예에서는 이러한 스프라이트 이미지(710, 720) 저장 시, 상하 움직임에 필요한 빈 공간(711, 721)을 제거하여 저장한 후, 저장된 이미지(730, 740)를 화면에 디스플레이할 때 해당 이미지(710, 720)들의 상대적인 위치(Relative Position)를 활용한다.
즉, 저장된 이미지(730, 740)를 화면에 디스플레이할 때, 움직임을 표현하기 위한 두 이미지의 위치 차이만큼 조절하여 화면에 디스플레이함으로써 이미지가 상하로 움직이는 것을 표현할 수 있으며, 기준 이미지 영역에 이미지 저장 시 낭비되는 영역(711, 721)을 최소화할 수도 있다.
도 8은 본 발명의 일 실시예에 따른 3D 가속 기능을 이용하는 프로그램에 의해 사용되는 복수의 이미지를 자동으로 배치하는 방법의 이미지 수에 따른 메모리 사용률을 도시한 도면이다.
참고로 도 8의 결과는, 랜덤한 사이즈를 갖는 복수의 이미지를 대상으로, 사이즈, 즉, 폭 X 높이가 큰 순서로 정렬하여 기준 이미지 영역에 배치한 경우(810)와, 폭이 큰 순서로 정렬하여 기준 이미지 영역에 배치한 경우(820) 및 높이가 큰 순서로 정렬하여 기준 이미지 영역에 배치한 경우(830)에 대하여, 이미지 수에 따른 메모리 사용률을 나타내고 있으며, 이때, 최초로 설정된 기준 이미지 영역의 폭과 높이는 1024 X 1024 이다.
또한, 도 8의 결과는, 도 6a 내지 도 6c에 도시된 기준 이미지 영역 관리 방법을 적용하지 않은 결과이며, 도시된 그래프에서 x 축은 배치된 이미지의 수를 나타내고, y 축은 배치된 이미지 수에 따른 메모리 사용률을 나타낸다.
도 8을 통해서, 동일하게 배치된 이미지 수에 대하여, 이미지의 사이즈가 큰 순서로 정렬하여 최초로 설정된 기준 이미지 영역에 배치한 경우(810)가 메모리 사용률이 가장 낮음을 알 수 있다. 또한, 이미지의 사이즈가 큰 순서로 정렬하여 기준 이미지 영역에 배치한 경우(810), 이미지의 수가 대략 500개 이상이면, 약 50% 이상의 메모리 사용률 절감 효과가 있음을 알 수 있다.
도 9a 및 도 9b는 본 발명의 일 실시예에 따른 3D 가속 기능을 이용하는 프로그램에 의해 사용되는 복수의 이미지를 자동으로 배치하는 과정을 도시한 흐름도이다.
설명의 편의 상, 도 1에 도시된 장치(100)의 구성 요소를 참조하여 설명하도록 한다.
먼저, 이미지 선택부(110)는 3D 가속 기능을 이용하는 애플리케이션이나 게임에서 사용하는 복수의 이미지를 사이즈가 큰 순서로 정렬한다(S901).
이때, 이미지 선택부(110)는 정렬된 이미지 각각에 고유한 아이디를 부여할 수도 있다.
단계 S901 후, 이미지 선택부(110)는 사이즈가 큰 순서로 정렬된 이미지와 최초로 설정된 기준 이미지 영역의 폭과 높이를 비교하여, 정렬된 이미지 중 최초로 설정된 기준 이미지 영역의 폭과 높이를 초과하지 않으면서 가장 큰 사이즈의 이미지를 선택한다(S902).
여기에서, 최초로 설정되는 기준 이미지 영역은 3D 가속 기능을 이용하는 애플리케이션이나 게임에서 한번에 로딩하는 단위 영역으로서, 복수의 이미지들이 배치되는 공간이며, 다시 복수 개의 재설정된 기준 이미지 영역으로 분할될 수 있다. 또한, 최초로 설정된 기준 이미지 영역은 복수 개일 수 있으며, 최초로 설정된 기준 이미지 영역마다 고유한 아이디가 부여될 수 있다. 참고로, 최초로 설정된 기준 이미지 영역의 사이즈는
(m, n은 자연수) 단위이다.
단계 S902 후, 이미지 배치부(120)는 이미지 선택부(110)에서 선택된 이미지를 최초로 설정된 기준 이미지 영역 내의 한쪽 모서리, 더 상세하게는 최초로 설정된 기준 이미지 영역 내의 좌측 모서리 상단에 배치한다(S903).
이때, 이미지 배치부(120)는, 배치된 이미지에 대해 최초로 설정된 기준 이미지 영역 내에서의 위치 정보, 예를 들어, 이미지가 배치된 좌측 상단 모서리의 x, y 좌표 값과, 배치된 이미지의 폭(w) 및 높이(h)를 파악하여 저장할 수 있다. 따라서, 이전에 배치된 이미지에 대하여, 최초로 설정된 기준 이미지 영역 내의 위치를 참조함으로써 공간의 낭비 없이 다음에 배치할 이미지의 위치를 설정할 수 있다.
단계 S903 후, 기준 이미지 영역 관리부(130)는 단계 S903의 배치 결과 남게 되는 두 개의 사각형 영역을 각각 기준 이미지 영역으로 재설정한다(S904).
이때, 기준 이미지 영역 관리부(130)는 배치된 이미지의 우변을 따라 연장된 직선의 우측 영역과, 배치된 이미지의 하변의 하측 영역을 기준 이미지 영역으로 재설정할 수 있으며, 그렇지 않고, 배치된 이미지의 하변을 따라 연장된 직선의 하측 영역과, 배치된 이미지의 우변의 우측 영역을 기준 이미지 영역으로 재설정할 수도 있다.
단계 S904 후, 이미지 선택부(110)에서 사이즈가 큰 순서로 정렬된 이미지 중 마지막 이미지가 배치될 때까지, 단계 S902 내지 단계 S904의 과정이 반복하여 실행되며, 이미지 배치부(120)에 의해 마지막 이미지가 배치되면(S905), 최초로 설정된 기준 이미지 영역 내에 배치된 전체 이미지에 대한 폭과 높이를 확인한다(S906).
참고로, 단계 S905에서 배치된 이미지가 마지막 이미지가 아닌 경우, 단계 S902 내지 단계 S904의 과정을 반복하게 되는데, 이때 반복되는 단계 S902 내지 단계 S904에서는, 최초로 설정된 기준 이미지 영역이 아닌, 단계 S904에서 재설정된 기준 이미지 영역이 적용된다.
이를 나타내고자, 도 9a의 단계 S902 및 단계 S903의‘최초로 설정된 기준 이미지 영역’텍스트에 괄호를 표시하였다.
단계 S906 후, 기준 이미지 영역 관리부(130)는 전체 이미지의 폭과 높이를 포함하는 최소의
(p, q는 자연수) 단위의 사이즈를 갖는 영역을 파악하여(S907), 최초로 설정된 기준 이미지 영역에서, 상기한 최소의
(p, q는 자연수) 단위의 사이즈를 갖는 영역을 제외한 나머지 영역을 제거하고(S908) 이미지 배치를 종료한다.
예를 들어, 도 6b에 도시된 것처럼, 마지막 이미지(613)를 배치한 후 전체 이미지(611, 612, 613)의 폭(610a)이 468, 높이(610b)가 497인 경우, 이 전체 이미지(611, 612, 613)의 폭(610a)과 높이(610b)를 포함하는 최소의
(p, q는 자연수) 단위의 사이즈를 갖는 영역(630)은
, 즉, 512 X 512 이므로, 기준 이미지 영역 관리부(130)는 최초로 설정된 기준 이미지 영역(600)에서, 전체 이미지(611, 612, 613)의 폭(610a)과 높이(610b)를 포함하는 512 X 512 사이즈의 영역(630)을 제외한 나머지 영역(640)을 제거함으로써 낭비되는 영역을 최소화 할 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다.
그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.