KR20140004240A - 이미지 검색 방법, 시스템 및 컴퓨터 기록매체 - Google Patents
이미지 검색 방법, 시스템 및 컴퓨터 기록매체 Download PDFInfo
- Publication number
- KR20140004240A KR20140004240A KR1020137031762A KR20137031762A KR20140004240A KR 20140004240 A KR20140004240 A KR 20140004240A KR 1020137031762 A KR1020137031762 A KR 1020137031762A KR 20137031762 A KR20137031762 A KR 20137031762A KR 20140004240 A KR20140004240 A KR 20140004240A
- Authority
- KR
- South Korea
- Prior art keywords
- image
- cache
- main
- chain
- rendered
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2350/00—Solving problems of bandwidth in display systems
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
- Controls And Circuits For Display Device (AREA)
- Digital Computer Display Output (AREA)
Abstract
이미지 검색 방법, 시스템 및 컴퓨터 기록 매체가 개시된다. 상기 이미지 검색 방법은, 이미지에 대한 사용자의 동작 요청을 획득하는 단계; 상기 동작 요청을 기설정된 조건과 비교하고, 상기 이미지를 메인 캐시에 캐시하는 것이 요구되는지 여부를 판단하는 단계; 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되는 경우, 상기 이미지가 렌더링되는 것이 처음인지 여부를 추가로 판단하되, 상기 이미지가 렌더링되는 것이 처음이라면, 상기 이미지를 상기 메인 캐시에 캐시하고, 상기 이미지를 상기 메인 캐시로부터 획득하고, 상기 이미지를 렌더링하기 위해 메인 쓰레드를 이용하고, 상기 이미지가 렌더링되는 것이 처음이 아니라면, 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고 상기 이미지를 렌더링하기 위해 메인 쓰레드를 이용하는 단계; 및 렌더링된 상기 이미지를 표시하는 단계;를 포함한다. 상기 이미지 검색 방법, 시스템 및 컴퓨터 기록 매체는 렌더링될 이미지들의 시간 소모적인 생성에 의한 원활하지 않은 이미지 검색을 방지하므로, 이미지는 더욱 순조롭게 검색될 수 있다.
Description
본 발명은 일반적으로 이미지 처리 분야에 관한 것으로서, 특히, 이미지 검색 방법, 시스템 및 컴퓨터 기록 매체에 관한 것이다.
이미지를 검색할 때, 사용자들은 흔히 스케일링(scaling), 드래깅(dragging) 및 스위칭(switching)과 같은 다양한 동작들을 이미지에 수행한다.
그러나, 윈도우 픽쳐(Windows Picture)와 팩스 뷰어(Fax Viewer) 같은 종래의 이미지 뷰어가 고해상도 이미지를 검색하기 위해 사용되면, 이미지를 적절히 캐시하는 것(caching)과 최적화의 부재로 인해 상기 이미지에 대한 보간(interpolation) 산술 연산이 매우 느려질 것이고, 이로써 이미지의 원활하지 않은 스케일링과 드래깅 동작, 또는 심지어 이미지의 무반응을 초래할 수도 있다.
전술한 바에 따라, 이미지의 원활한 검색을 가능하게 하는 이미지 검색 방법을 제공할 필요가 있다.
이미지 검색을 위한 방법은,
이미지에 대한 사용자의 동작 요청을 획득하는 단계;
상기 동작 요청을 기설정된 조건과 비교하고, 상기 이미지를 메인 캐시(cache)에 캐시(cache)하는 것이 요구되는지 여부를 판단하는 단계;
상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구될 경우, 상기 이미지가 렌더링(rendering)되는 것이 처음인지 추가적으로 판단하되, 상기 이미지가 렌더링되는 것이 처음이라면, 메인 쓰레드(thread)를 이용하여 상기 이미지를 상기 메인 캐시에 캐시하고, 상기 메인 캐시로부터 상기 이미지를 획득하고, 상기 이미지를 렌더링하고, 상기 이미지가 렌더링되는 것이 처음이 아니라면, 메인 쓰레드를 이용하여 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하며;
렌더링된 상기 이미지를 표시하는 단계; 를 포함한다.일 실시예에서, 상기 방법은,
상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되지 않는 경우, 메인 쓰레드를 이용하여 상기 이미지를 상기 메인 캐시로부터 직접적으로 획득하고, 상기 이미지를 렌더링하는 단계를 추가적으로 포함할 수 있다.
일 실시예에서, 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하는 단계는 구체적으로, 상기 이미지의 이미지 체인이 생성되었는지 여부를 판단하되, 상기 이미지 체인이 생성되었다면, 상기 메인 쓰레드를 이용하여 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하고, 상기 이미지 체인이 생성되지 않았다면, 상기 메인 쓰레드를 이용하여 상기 이미지 체인을 생성하고, 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하는 단계를 포함할 수 있다.
일 실시예에서, 상기 방법은, 상기 이미지의 이미지 체인이 생성되었는지 여부를 판단한 뒤, 상기 이미지 체인이 서브 캐시 내에 있는지 여부를 판단하되, 상기 이미지 체인이 서브 캐시 내에 있다면, 메인 쓰레드를 이용하여 상기 서브 캐시 내의 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하고, 상기 이미지 체인이 서브 캐시 내에 있지 않다면, 메인 쓰레드를 이용하여 생성된 상기 이미지 체인을 상기 서브 캐시에 캐시하는 단계; 상기 이미지의 상기 이미지 체인이 아직 생성되지 않은 것으로 판단된 경우, 상기 메인 쓰레드를 이용하여 상기 이미지의 이미지 체인을 생성하고, 생성된 상기 이미지 체인을 서브 캐시에 캐시하고, 상기 서브 캐시 내의 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 상기 이미지를 획득하고, 상기 이미지를 렌더링하는 단계를 추가로 포함할 수 있다.
일 실시예에서, 상기 기설정된 조건은 다음 중 어느 하나로 선택될 수 있다:
이미지가 렌더링된 것이 처음이다;
상기 이미지의 크기가 상기 메인 캐시의 용량보다 크다; 및
사용자가 이미지 스케일링 또는 드래깅의 동작을 수행하고 있다.
일 실시예에서, 이미지를 상기 메인 캐시에 캐시하는 것이 요구되고, 이미지가 렌더링된 것이 처음이 아닌 경우, 상기 방법은, 서브 쓰레드를 이용하여 이미지를 생성하고, 생성된 상기 이미지를 상기 메인 캐시에 캐시하는 단계; 상기 메인 쓰레드를 이용하여 생성된 상기 이미지를 상기 메인 캐시로부터 획득하고, 상기 이미지를 렌더링하는 단계를 추가로 포함한다.
또한, 이미지 검색을 위한 시스템을 제공할 필요도 있고, 이는 이미지의 원활한 검색을 가능하게 한다.
이미지 검색을 위한 시스템은,
이미지에 대한 사용자의 동작 요청을 획득하는 획득 모듈;
상기 동작 요청을 기설정된 조건과 비교하고, 상기 이미지를 메인 캐시에 캐시하는 것이 요구되는지 여부 및 이미지가 렌더링되는 것이 처음인지 여부를 판단하는 판단 모듈;
상기 판단 모듈이 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되고, 상기 이미지가 렌더링되는 것이 처음인 것으로 판단한 경우, 렌더링 모듈은 메인 쓰레드를 이용하여 상기 이미지를 상기 메인 캐시에 캐시하고, 상기 메인 캐시로부터 상기 이미지를 획득하고, 상기 이미지를 렌더링하고; 상기 판단 모듈이 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되고, 상기 이미지가 렌더링되는 것이 처음이 아닌 것으로 판단한 경우, 상기 렌더링 모듈은 메인 쓰레드를 이용하여 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하며;
렌더링된 상기 이미지를 표시하는 표시 모듈; 을 포함한다.
일 실시예에서, 상기 판단 모듈이 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되지 않는 것으로 판단한 경우, 상기 렌더링 모듈은 상기 메인 쓰레드를 이용하여 상기 메인 캐시로부터 직접적으로 상기 이미지를 획득하고, 상기 이미지를 렌더링한다.
일 실시예에서, 상기 판단 모듈은 또한 상기 이미지의 이미지 체인이 생성되었는지 여부를 판단하며; 상기 이미지 체인이 생성되었다면, 상기 메인 쓰레드 모듈은 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링한다; 상기 이미지 체인이 생성되지 않았다면, 상기 메인 쓰레드 모듈은 이미지 체인을 생성하고, 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링한다.
일 실시예에서, 상기 판단 모듈은 또한, 상기 이미지의 상기 이미지 체인이 생성되었는지 여부를 판단한 뒤, 상기 이미지 체인이 서브 캐시 내에 있는지 여부를 판단한다; 상기 이미지 체인이 상기 서브 캐시 내에 있다면, 상기 렌더링 모듈은 상기 메인 쓰레드를 이용하여 상기 서브 캐시 내의 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링한다; 서브 캐시내에 있지 않다면, 상기 렌더링 모듈은 메인 쓰레드를 이용하여 생성된 상기 이미지 체인을 상기 서브 캐시에 캐시한다; 상기 판단 모듈이 상기 이미지의 상기 이미지 체인이 아직 생성되지 않은 것으로 판단한 경우, 상기 렌더링 모듈은 상기 메인 쓰레드를 이용하여 상기 이미지 체인을 생성하고, 생성된 상기 이미지 체인을 서브 캐시에 캐시한 후, 상기 서브 캐시 내의 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 상기 이미지를 획득하고, 상기 이미지를 렌더링한다.
일 실시예에서, 상기 기설정된 조건은 다음 중 어느 하나로 선택된다:
이미지가 렌더링된 것이 처음이다;
상기 이미지의 크기가 상기 메인 캐시의 용량보다 크다; 및
사용자가 이미지 스케일링 또는 드래깅의 동작을 수행하고 있다.
일 실시예에서, 상기 판단 모듈이 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되고, 이미지가 렌더링되는 것이 처음이 아닌 것으로 판단한 경우, 상기 렌더링 모듈은 서브 쓰레드를 이용하여 이미지를 생성하고, 생성된 상기 이미지를 상기 메인 캐시에 캐시한다; 그 후 상기 렌더링 모듈은 상기 메인 쓰레드를 이용하여 생성된 상기 이미지를 상기 메인 캐시로부터 획득하고, 상기 이미지를 렌더링한다.
뿐만 아니라, 컴퓨터 기록 매체를 제공할 필요도 있다.
하나 이상의 컴퓨터 프로세서에 의해 실행되었을 때, 상기 하나 이상의 컴퓨터 프로세서가 이미지 검색 방법을 수행하도록 하는 컴퓨터 실행가능한 명령을 저장하는 비일시적(non-transitory) 컴퓨터 기록 매체에 있어서, 상기 방법은,
이미지에 대한 사용자의 동작 요청을 획득하는 단계;
상기 동작 요청을 기설정된 조건과 비교하고, 상기 이미지를 메인 캐시에 캐시하는 것이 요구되는지 여부를 판단하는 단계;
상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되는 경우, 상기 이미지가 렌더링되는 것이 처음인지 추가로 판단하되, 상기 이미지가 렌더링되는 것이 처음이라면, 메인 쓰레드를 이용하여 상기 이미지를 상기 메인 캐시에 캐시하고, 상기 메인 캐시로부터 상기 이미지를 획득하고, 상기 이미지를 렌더링하고, 상기 이미지가 렌더링되는 것이 처음이 아니라면, 상기 메인 쓰레드를 이용하여 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하며; 및
렌더링된 상기 이미지를 표시하는 단계; 를 포함한다.
일 실시예에서, 상기 방법은, 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되지 않는 경우, 상기 메인 쓰레드를 이용하여 상기 메인 캐시로부터 직접적으로 상기 이미지를 획득하고, 상기 이미지를 렌더링하는 단계를 추가적으로 포함한다.
일 실시예에서, 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하는 단계는 구체적으로, 상기 이미지의 이미지 체인이 생성되었는지 여부를 판단하되, 상기 이미지 체인이 생성되었다면, 상기 메인 쓰레드를 이용하여 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하고, 상기 이미지 체인이 생성되지 않았다면, 상기 메인 쓰레드를 이용하여 이미지 체인을 생성하고, 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하는 단계를 포함한다.
일 실시예에서, 상기 방법은, 상기 이미지의 상기 이미지 체인이 생성된 것을 판단한 뒤, 상기 이미지 체인이 상기 서브 캐시 내에 있는지 여부를 판단하되, 상기 이미지 체인이 상기 서브 캐시 내에 있다면, 메인 쓰레드를 이용하여 상기 서브 캐시 내의 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하고, 상기 이미지 체인이 상기 서브 캐시 내에 있지 않다면, 메인 쓰레드를 이용하여 생성된 상기 이미지 체인을 상기 서브 캐시에 캐시하는 단계; 상기 이미지의 상기 이미지 체인이 아직 생성되지 않은 것으로 판단된 경우, 메인 쓰레드를 이용하여 상기 이미지 체인을 생성하고, 생성된 상기 이미지 체인을 상기 서브 캐시에 캐시하고, 상기 서브 캐시 내의 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 상기 이미지를 획득하고, 상기 이미지를 렌더링하는 단계를 추가로 포함한다.
일 실시예에서, 상기 기설정된 조건은 다음 중 어느 하나로 선택될 수 있다:
이미지가 렌더링된 것이 처음이다;
상기 이미지의 크기가 상기 메인 캐시의 용량보다 크다; 및
상기 사용자가 이미지 스케일링 또는 드래깅의 동작을 수행하고 있다.
일 실시예에서, 이미지를 상기 메인 캐시에 캐시하는 것이 요구되고, 이미지가 렌더링된 것이 처음이 아닌 경우, 상기 방법은, 서브 쓰레드를 이용하여 이미지를 생성하고, 생성된 상기 이미지를 상기 메인 캐시에 캐시하는 단계; 상기 메인 쓰레드를 이용하여 생성된 상기 이미지를 상기 메인 캐시로부터 획득하고, 상기 이미지를 렌더링하는 단계를 추가로 포함한다.
상술한 이미지 검색 방법, 시스템 및 컴퓨터 기록 매체에 의해, 이미지를 메인 캐시에 캐시하는 것이 요구되고, 이미지가 렌더링되는 것이 처음인 경우, 상기 이미지는 메인 캐시에 캐시되고, 메인 캐시로부터 획득되고, 렌더링되며; 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되고, 이미지가 렌더링되는 것이 처음이 아닌 경우, 상기 이미지는 상기 이미지 체인으로부터 획득되고, 렌더링된다. 다른 크기의 이미지열인 이미지 체인으로부터 적절한 이미지를 선택하는 것은 빠른 렌더링을 실현하고, 이는 렌더링될 이미지들의 시간 소모적인 생성에 의한 원활하지 않은 이미지 검색을 막는다. 따라서, 사용자는 이미지를 더욱 순조롭게 검색할 수 있다. 한편, 상기 메인 쓰레드를 이용하여 상기 서브 캐시 내의 상기 이미지 체인으로부터 이미지를 획득하고, 상기 서브 쓰레드를 이용하여 상기 이미지를 생성함으로써, 각 쓰레드의 렌더링 부담이 감소되고; 게다가, 더블 캐시하는 것(double caching)은 전체적인 이미지 검색 과정을 더욱 원활하게 하면서, 렌더링될 이미지로의 쉽고 빠른 접근을 용이하게 한다.
도 1 은 본 발명의 일 실시예에 따른 이미지 검색 방법의 순서도이다;
도 2 는 본 발명의 다른 실시예에 따른 이미지 검색 방법의 순서도이다;
도 3 은 본 발명의 일 실시예에 따른 이미지 검색 시스템의 도식 구조 차트이다.
도 2 는 본 발명의 다른 실시예에 따른 이미지 검색 방법의 순서도이다;
도 3 은 본 발명의 일 실시예에 따른 이미지 검색 시스템의 도식 구조 차트이다.
본 발명은 구체적인 실시예 및 첨부된 도면과 함께 작성된 다음의 설명을 참고하면 더욱 잘 이해될 것이다.
일 실시예에서, 도 1 에 나타난 바와 같이, 이미지 검색을 위한 방법은 다음의 단계를 포함한다:
S110 단계 : 이미지에 대한 사용자의 동작 요청을 획득하는 단계.
이미지에 대한 사용자의 동작 요청은 이미지 보기, 스케일링 및 드래깅 동작일 수 있다. 동작 요청은 최초 렌더링 정보, 이미지 크기 정보 및 스케일링 정보 등을 포함할 수 있다.
S120 단계 : 상기 동작 요청을 기설정된 조건과 비교하고, 상기 이미지를 메인 캐시에 캐시하는 것이 요구되는지 여부를 판단하며; 요구된다면, S130 단계를 수행하고; 요구되지 않는다면, S160 단계를 수행한다.
상기 메인 캐시에 저장되는 것은 소스 이미지의 일부이다. 렌더링될 부분이 상기 메인 캐시에 저장되어 있는 부분을 초과할 경우, 상기 이미지를 메인 캐시에 캐시하는 것이 요구되며, 이 때, 캐시될 이미지와 상기 메인에 이미 저장되어 있는 이미지는 모두 동일한 소스 이미지의 일부이다. 캐시하는 것은 이미지의 스케일링과 클리핑(clipping) 및 메모리로부터 비디오 메모리로 이미지 데이터를 로딩하는 동작을 의미한다. 메모리는 D3D의 D3DPOOL_SYSTEMMEM 리소스 풀(pool)을 나타내고, 이 때 D3DPOOL_SYSTEMMEM 리소스 풀에 저장된 리소스들은 장치에 의해 직접적으로 접근될 수 없다. 비디오 메모리는 D3D의 D3DPOOL_DEFAULT 리소스 풀을 나타낸다; 상기 D3DPOOL_DEFAULT 리소스 풀은 상기 비디오 메모리 내에 생성되기 때문에, 시스템 메모리를 사용하지만, 장치가 손실될 경우를 대비하여 재생성되어야 한다. 상기 메인 캐시는 화질이 기설정된 기준에 부합하는 이미지들을 저장하기 위해 사용된다.
일 실시예에서, 상기 기설정된 조건은 다음 중 어느 하나로 선택된다:
(1) 이미지가 렌더링되는 것이 처음이다.
사용자는 이미지에 동작을 수행한다. 상기 동작에 따라, 상기 이미지가 렌더링되는 것이 처음이라면, 메인 쓰레드(thread)를 이용하여 상기 메인 캐시로부터 상기 이미지를 획득하고 상기 이미지를 렌더링하기 위해, 상기 이미지를 메인 캐시에 캐시하는 것이 요구된다.
(2) 상기 이미지의 크기는 상기 메인 캐시의 용량보다 크다.
이미지 크기가 상기 메인 캐시의 용량보다 큰 경우, 상기 이미지는 상기 메인 캐시에 모두 캐시될 수 없다; 이미지를 메인 캐시의 용량에 알맞은 크기로 스케일링한 후, 그것을 상기 메인 캐시에 캐시하는 것이 요구된다.
(3) 사용자는 이미지 스케일링 또는 드래깅의 동작을 수행하고 있다.
사용자가 스케일링 동작을 수행하고 있을 때, 기설정된 기준에 부합하는 화질을 갖는 새로운 이미지의 생성은 비교적 느릴 것이다; 따라서, 상기 메인 캐시로부터의 이미지 추출 효율은 낮을 것이다. 만약 이미지가 이미지 체인으로부터 획득된다면, 동작은 더욱 빠를 것이고, 이는 스케일링 정도가 너무 크지 않을 것이기 때문이다. 이미지 체인은 밉맵(Mipmap) 이미지 처리 기술에 의해 생성된 이미지열(a string of images)로서, 상기 이미지열의 각각의 이미지들은 이전 이미지의 1/4의 크기, 즉, 이전 이미지의 1/2의 길이와 너비를 갖는다. 상기 이미지 체인의 이미지들의 화질은 기설정된 기준에 부합하지 않는다.
S130 단계 : 상기 이미지가 렌더링된 것이 처음인지 여부를 추가로 판단하며; 상기 이미지가 렌더링되는 것이 처음이라면, S140 단계를 수행하고; 상기 이미지가 렌더링되는 것이 처음이 아니라면, S150 단계를 수행한다.
S140 단계 : 상기 메인 쓰레드를 이용하여 상기 이미지를 상기 메인 캐시에 캐시하고, 상기 메인 캐시로부터 상기 이미지를 획득하고, 상기 이미지를 렌더링한다.
만약 상기 이미지가 렌더링되는 것이 처음이라면, 상기 메인 쓰레드를 이용하여 생성된 상기 이미지를 상기 메인 캐시에 캐시하고, 상기 메인 캐시로부터 상기 이미지를 획득하고, 상기 이미지를 렌더링한다.
S150 단계 : 상기 메인 쓰레드를 이용하여 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링한다.
상기 메인 쓰레드는 상기 이미지 체인으로부터 상기 이미지를 획득하고, 이미지를 렌더링하며; 렌더링된 상기 이미지의 화질은 상기 기설정된 기준에 부합하지 않고, 렌더링된 후 일시적으로 표시될 것이다. 상기 기설정된 기준에 부합하는 이미지가 생성되고 상기 메인 캐시에 캐시된 후, 생성된 상기 이미지는 상기 메인 캐시로부터 획득되고 렌더링되며, 이는 상기 기준에 부합하는 이미지로서 표시되기 위한 것이다.
S160 단계 : 상기 메인 쓰레드를 이용하여 상기 메인 캐시로부터 직접적으로 상기 이미지를 획득하고, 상기 이미지를 렌더링한다.
이미지를 메인 캐시에 캐시하는 것이 요구되지 않는 경우, 즉, 조건 (1) 내지 (3) 중 어느 하나도 충족되지 않으면, 이미지는 상기 메인 캐시로부터 직접적으로 획득되고, 렌더링될 수 있다.
S170 단계 : 렌더링된 상기 이미지를 표시한다.
렌더링된 상기 이미지는 사용자가 볼 수 있도록 표시된다.
도 2 는 다른 실시예에 따른 이미지 검색 방법의 순서도이다. 상기 방법은 다음의 단계를 포함한다:
S201 단계 : 이미지에 대한 사용자의 동작 요청을 획득하는 단계.
이미지에 대한 사용자의 동작 요청은 이미지 보기, 스케일링 및 드래깅 동작일 수 있다. 동작 요청은 최초 렌더링 정보, 이미지 크기 정보 및 스케일링 정보 등을 포함할 수 있다.
S202 단계 : 상기 동작 요청을 기설정된 조건과 비교하고, 상기 이미지를 메인 캐시에 캐시하는 것이 요구되는지 여부를 판단하며; 요구된다면, S204 단계를 수행하고; 요구되지 않는다면, S203 단계를 수행한다.
상기 메인 캐시에 저장되는 것은 소스 이미지의 일부이다. 렌더링될 부분이 상기 메인 캐시에 저장되어 있는 부분을 초과할 경우, 상기 이미지를 메인 캐시에 캐시하는 것이 요구되며, 이 때, 캐시될 이미지와 메인에 이미 저장되어 있는 이미지는 모두 동일한 소스 이미지의 일부이다. 캐시하는 것은 이미지의 스케일링과 클리핑 및 메모리로부터 비디오 메모리로 이미지 데이터를 로딩하는 것을 의미한다. 메모리는 D3D의 D3DPOOL_SYSTEMMEM 리소스 풀을 나타내고, 이 때 D3DPOOL_SYSTEMMEM 리소스 풀에 저장된 리소스들은 장치에 의해 직접적으로 접근될 수 없다. 비디오 메모리는 D3D의 D3DPOOL_DEFAULT 리소스 풀을 나타낸다; 상기 D3DPOOL_DEFAULT 리소스 풀은 상기 비디오 메모리 내에 생성되기 때문에, 시스템 메모리를 사용하지만, 장치가 분실될 경우를 대비하여 재생성되어야 한다. 상기 메인 캐시는 화질이 기설정된 기준에 부합하는 이미지들을 저장하기 위해 사용된다.
S203 단계 : 메인 쓰레드를 이용하여 상기 메인 캐시로부터 상기 이미지를 획득하고, 상기 이미지를 렌더링한다.
S204 단계 : 상기 이미지가 렌더링된 것이 처음인지 여부를 추가로 판단하며; 상기 이미지가 렌더링되는 것이 처음이라면, S205 단계를 수행한다; 상기 이미지가 렌더링되는 것이 처음이 아니라면, S206 단계를 수행한다.
일 실시예에서, 상기 방법은, S206 단계와 동시에, 이미지를 생성하고, 생성된 이미지를 상기 메인 캐시에 캐시하고, 생성된 이미지를 상기 메인 캐시로부터 획득하고, 상기 이미지를 렌더링하는 단계를 추가로 포함한다. 상기 기설정된 기준에 부합하는 화질의 이미지를 렌더링하는 것은 서브 쓰레드에 의해 실현된다.
S205 단계 : 상기 메인 쓰레드를 이용하여 상기 메인 캐시에 상기 이미지를 캐시하고, S203 단계를 수행한다.
만약 상기 이미지를 렌더링하는 것이 처음이라면, 상기 메인 쓰레드를 이용하여 생성된 상기 이미지를 상기 메인 캐시에 캐시하고, 상기 메인 캐시로부터 상기 이미지를 획득하고, 상기 이미지를 렌더링한다.
S206 단계 : 상기 이미지의 이미지 체인이 생성되었는지 여부를 판단하며; 상기 이미지 체인이 생성되었다면, S207 단계를 수행하고; 상기 이미지 체인이 생성되지 않았다면, S208 단계를 수행한다.
상기 이미지의 이미지 체인이 생성되었는지 여부를 판단하며, 상기 이미지 체인이 생성되었다면, 상기 메인 캐시의 용량에 알맞은 상기 이미지를 상기 이미지 체인으로부터 직접적으로 획득하고, 이미지를 렌더링하고, 또는 상기 이미지 체인이 서브 캐시 내에 있는지 여부를 추가적으로 판단하고, 만약 상기 이미지 체인이 아직 상기 이미지 체인이 생성되지 않았다면, 상기 이미지 체인을 생성하고, 상기 메인 캐시의 용량에 알맞은 상기 이미지를 상기 이미지 체인으로부터 획득하고, 상기 이미지를 렌더링하고, 또는 상기 이미지를 서브 캐시에 캐시한다. 상기 이미지 체인은 상기 서브 캐시에 저장된다.
S207 단계 : 상기 이미지 체인이 상기 서브 캐시에 있는지 여부를 판단하며; 상기 서브 캐시에 있다면, S210 단계를 수행하고; 상기 서브 캐시에 있지 않다면, S209 단계를 수행한다.
상기 서브 캐시의 이용은 기설정된 기준에 부합하지 않는 이미지들을 빠르게 캐시할 수 있고, 이는 상기 메인 쓰레드가 기설정된 기준에 부합하지 않는 이미지들을 상기 서브 캐시로부터 획득하고, 상기 이미지를 만들 수 있도록 하고, 따라서 원활한 동작을 가능하게 한다.
S208 단계 : 상기 메인 쓰레드를 이용하여 상기 이미지의 이미지 체인을 생성하고, 생성된 상기 이미지 체인을 서브 캐시에 캐시한다.
S209 단계 : 상기 메인 쓰레드를 이용하여 생성된 상기 이미지 체인을 상기 서브 캐시에 캐시한다.
S210 단계 : 상기 메인 쓰레드를 이용하여 상기 서브 캐시 내의 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 상기 이미지를 획득하고, 상기 이미지를 렌더링한다.
렌더링될 이미지 체인으로부터 획득된 이미지는 화질 기준에 부합하지 않으며; 기설정된 기준에 부합하는 화질을 갖는 이미지를 생성하기 위해, 렌더링된 이미지는 일시적으로 표시된다. 상기 이미지를 상기 메인 캐시에 캐시한 후, 상기 기설정된 기준에 부합하는 화질을 갖는 이미지는 상기 메인 캐시로부터 획득되고, 렌더링되므로; 상기 기설정된 기준에 부합하는 화질을 갖는 이미지가 표시된다.
S211 단계 : 상기 렌더링된 이미지를 표시한다.
렌더링된 상기 이미지는 사용자가 볼 수 있도록 표시된다.
그리고, 본 발명은 컴퓨터 실행가능한 명령들을 저장하는 컴퓨터 기록 매체도 제공한다. 상기 컴퓨터 실행가능한 명령들은 이미지를 검색하기 위한 방법을 실행하고, 이 때 상기 컴퓨터 기록 매체에 저장된 컴퓨터 실행가능한 명령들에 의해 실행되는 이미지를 검색하기 위한 방법에 포함된 단계들은 전술한 바와 같고, 여기에서 상세히 설명하지 않는다.
도 3에 나타난 바와 같이, 이미지 검색 시스템은 획득 모듈(310), 렌더링 모듈(320), 판단 모듈(330) 및 표시 모듈(340)을 포함한다.
획득 모듈(310)은 이미지에 대한 사용자의 동작 요청을 획득한다. 이미지에 대한 사용자의 동작 요청은 이미지 보기, 스케일링 및 드래깅 동작일 수 있다. 동작 요청은 최초 렌더링 정보, 이미지 크기 정보 및 스케일링 정보 등을 포함할 수 있다.
렌더링 모듈(320)은 상기 동작 요청에 따라 이미지를 렌더링한다.
판단 모듈(330)은 상기 동작 요청을 기설정된 조건과 비교하고, 상기 이미지를 메인 캐시에 캐시하는 것이 요구되는지 여부 및 이미지가 렌더링되는 것이 처음인지 여부를 판단한다.
판단 모듈(330)이 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되고 상기 이미지가 렌더링되는 것이 처음인 것으로 판단한 경우, 렌더링 모듈(320)은 메인 쓰레드를 이용하여 상기 이미지를 상기 메인 캐시에 캐시하고 상기 이미지를 상기 메인 캐시로부터 획득하고, 상기 이미지를 렌더링한다. 상기 이미지가 렌더링되는 것이 처음인 경우, 렌더링 모듈(320)은 상기 메인 쓰레드를 이용하여 생성된 상기 이미지를 상기 메인 캐시에 캐시하고 상기 이미지를 상기 메인 캐시로부터 획득하고, 상기 이미지를 렌더링한다.
판단 모듈(330)이 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되고 상기 이미지가 렌더링되는 것이 처음이 아닌 것으로 판단한 경우, 렌더링 모듈(320)은 상기 메인 쓰레드를 이용하여 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링한다. 렌더링 모듈(320)은 상기 메인 쓰레드를 이용하여 상기 이미지 체인으로부터 상기 이미지를 획득하고, 상기 이미지의 화질은 상기 기설정된 기준에 부합하지 않는다. 렌더링된 이미지는 일시적으로 표시될 것이다. 상기 기설정된 기준에 부합하는 이미지가 생성되고 상기 메인 캐시에 캐시된 후, 상기 생성된 이미지는 상기 메인 캐시로부터 획득되고 렌더링되며, 이는 상기 기준에 부합하는 이미지로서 상기 표시 모듈(340)에 의해 표시되기 위한 것이다.
판단 모듈(330)이 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되고, 상기 이미지가 렌더링되는 것이 처음이 아닌 것으로 판단한 경우, 렌더링 모듈(320)은 서브 쓰레드를 이용하여 상기 이미지를 생성하고 생성된 상기 이미지를 상기 메인 캐시에 캐시하고, 상기 메인 쓰레드를 이용하여 생성된 상기 이미지를 상기 메인 캐시로부터 획득하고, 상기 이미지를 렌더링한다. 생성된 상기 이미지의 화질은 기설정된 기준에 부합한다.
사용자가 이미지 스케일링 동작을 수행하고 있을 때, 세 가지의 이미지 스케일링 함수가 이용될 수 있는데: StretchDIBits, D3DXLoadSurfaceFromMemory 및 D3DXLoadSurfaceFromSurface. StretchDIBits은 빠르고 인터럽트(interrupt)가 불가능하고, 멀티 쓰레드에서 명확한 스케일의 이미지를 생성하는데 주로 사용되며; D3DXLoadSurfaceFromMemory와 D3DXLoadSurfaceFromSurface는 느리지만 인터럽트(interrupt)가 가능하고, 이미지를 서브 캐시에 캐시하기 위해 사용된다. 스케일링 동작의 렌더링은 렌더링할 이미지 체인으로부터의 이미지를 주로 사용하고, 이는 매우 빠르다.
사용자가 이미지 드래깅 동작을 수행하고 있을 때, 상기 메인 캐시가 드래깅 동작 동안에 충분한 용량을 갖고 있기 때문에, 상기 이미지는 재차 캐시할 필요 없이 바로 렌더링될 수 있고, 이는 효율이 높다. 사용자가 집중적으로 드래깅할 경우, 이미지 체인으로부터 이미지를 렌더링하는 것이 더욱 효과적일 것이다.
바람직한 일 실시예에서, 판단 모듈(330)이 이미지를 상기 메인 캐시에 캐시하는 것이 요구되고, 이미지가 렌더링되는 것이 처음이 아닌 것으로 판단한 경우, 판단 모듈(330)은 상기 이미지의 이미지 체인을 생성해야 하는지 여부도 추가적으로 판단하며; 생성해야 한다면, 렌더링 모듈(320)은 상기 메인 쓰레드를 이용하여 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 상기 이미지를 획득하고, 상기 이미지를 렌더링하고; 생성하지 않아도 된다면, 렌더링 모듈(320)은 상기 메인 쓰레드를 이용하여 상기 이미지 체인을 생성하고, 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 상기 이미지를 획득하고, 상기 이미지를 렌더링한다.
바람직한 일 실시예에서, 판단 모듈(330)은 상기 이미지 체인이 생성된 것으로 판단한 후, 상기 이미지 체인이 서브 캐시내에 있는지 여부도 추가로 판단하며; 상기 이미지 체인이 상기 서브 캐시 내에 있다면, 렌더링 모듈(320)은 상기 메인 쓰레드를 이용하여 상기 서브 캐시 내의 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 상기 이미지를 획득하고, 상기 이미지를 렌더링하고; 서브 캐시내에 있지 않다면, 렌더링 모듈(320)은 상기 메인 쓰레드를 이용하여 렌더링된 상기 이미지를 상기 서브 캐시에 캐시한다. 상기 서브 캐시를 이용하는 것은 기설정된 기준에 부합하지 않는 이미지들을 신속히 캐시할 수 있고, 이는 렌더링 모듈(320)이 기설정된 기준에 부합하지 않는 이미지들을 상기 서브 캐시로부터 획득하고, 이미지들을 렌더링할 수 있도록 하고, 따라서 사용자의 원활한 동작이 가능하다.
판단 모듈(330)이 상기 이미지의 상기 이미지 체인이 아직 생성되지 않은 것으로 판단한 경우, 렌더링 모듈(320)은 또한, 상기 이미지 체인을 생성하고, 생성된 이미지 체인을 상기 서브 캐시에 캐시하고, 상기 서브 캐시 내의 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 상기 이미지를 획득하고, 상기 이미지를 렌더링한다.
판단 모듈(330)이 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되지 않는 것으로 판단한 경우, 렌더링 모듈(320)은 상기 메인 캐시로부터 직접적으로 상기 이미지를 획득하고, 상기 이미지를 렌더링한다.
상기 메인 캐시에 저장되는 것은 소스 이미지의 일부이다. 렌더링될 부분이 상기 메인 캐시에 저장되어 있는 부분을 초과할 경우, 상기 이미지를 메인 캐시에 캐시하는 것이 요구되며, 이 때, 캐시될 이미지와 상기 메인에 이미 저장되어 있는 이미지는 모두 동일한 소스 이미지의 일부이다. 캐시하는 것은 이미지의 스케일링과 클리핑 및 메모리로부터 비디오 메모리로 이미지 데이터를 로딩하는 동작을 의미한다. 메모리는 D3D의 D3DPOOL_SYSTEMMEM 리소스 풀을 나타내고, 이 때 D3DPOOL_SYSTEMMEM 리소스 풀에 저장된 리소스들은 장치에 의해 직접적으로 접근될 수 없다. 비디오 메모리는 D3D의 D3DPOOL_DEFAULT 리소스 풀을 나타낸다; 상기 D3DPOOL_DEFAULT 리소스 풀은 상기 비디오 메모리 내에 생성되기 때문에, 시스템 메모리를 사용하지만, 장치가 손실될 경우를 대비하여 재생성되어야 한다. 상기 메인 캐시는 화질이 기설정된 기준에 부합하는 이미지들을 저장하기 위해 사용된다.
일 실시예에서, 상기 기설정된 조건은 다음 중 어느 하나로 선택된다.
(1) 이미지가 렌더링되는 것이 처음이다.
사용자는 이미지에 동작을 수행한다. 상기 동작에 따라, 상기 이미지가 렌더링되는 것이 처음이라면, 메인 쓰레드를 이용하여 상기 메인 캐시로부터 상기 이미지를 획득하고 렌더링하기 위해, 상기 이미지를 메인 캐시에 캐시하는 것이 요구된다.
(2) 상기 이미지의 크기는 상기 메인 캐시의 용량보다 크다.
이미지 크기가 상기 메인 캐시의 용량보다 큰 경우, 상기 이미지는 상기 메인 캐시에 모두 캐시될 수 없으므로; 이미지를 메인 캐시의 용량에 알맞은 크기로 스케일링한 후, 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구된다.
(3) 사용자는 이미지 스케일링 또는 드래깅의 동작을 수행하고 있다.
사용자가 스케일링 동작을 수행하고 있을 때, 기설정된 기준에 부합하는 화질을 갖는 새로운 이미지의 생성은 비교적 느릴 것이므로; 상기 메인 캐시로부터의 이미지 추출 효율은 낮을 것이다. 만약 이미지가 이미지 체인으로부터 획득된다면, 동작은 더욱 빠를 것이고, 이는 스케일링 정도가 너무 크지 않을 것이기 때문이다. 이미지 체인은 밉맵 이미지 처리 기술에 의해 생성된 이미지열로서, 상기 이미지열의 각각의 이미지들은 이전 이미지의 1/4의 크기, 즉, 이전 이미지의 1/2의 길이와 너비를 갖는다. 상기 이미지 체인의 이미지들의 화질은 기설정된 기준에 부합하지 않는다.
표시 모듈(340) 은 렌더링된 상기 이미지를 표시한다.
상술한 이미지 검색 방법, 시스템 및 컴퓨터 기록 매체에 의해, 이미지를 메인 캐시에 캐시하는 것이 요구되지 않는 경우, 상기 이미지는 상기 메인 캐시로부터 직접적으로 획득되고, 렌더링되며; 이미지를 메인 캐시에 캐시하는 것이 요구되고, 이미지가 렌더링되는 것이 처음인 경우, 상기 이미지는 상기 메인 캐시에 캐시되고 상기 메인 캐시로부터 획득되고, 렌더링되고; 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되고, 이미지가 렌더링되는 것이 처음이 아닌 경우, 상기 이미지는 상기 이미지 체인으로부터 획득되고, 렌더링된다. 다른 크기의 이미지열인 이미지 체인으로부터 적절한 이미지를 선택하는 것은 빠른 렌더링을 실현하고, 렌더링될 이미지들의 시간 소모적인 생성에 의한 원활하지 않은 이미지 검색을 막을 수 있다. 따라서, 사용자는 이미지를 더욱 순조롭게 검색할 수 있다.
또한, 상기 서브 쓰레드에 의해 상기 이미지를 생성하고 상기 메인 쓰레드에 의해 상기 이미지를 렌더링함으로써, 원활한 이미지 검색을 보장하며, 효율적인 렌더링이 더욱 강화된다.
본 실시예들은 당업자가 본 발명과 다양한 실시예 및 예상되는 특정 용도에 맞는 다양한 변형을 활용할 수 있도록 발명의 원칙과 응용을 설명하기 위해 선택되고 기술되었다. 대체 가능한 실시예들은 발명의 본질과 범위를 벗어나지 않는 범위에서 본 발명이 속하는 기술분야의 당업자에게 명백해 질 것이다. 따라서, 본 발명의 범위는 전술한 설명과 그 안에 기술된 예시적 실시예보다 첨부된 청구범위에 의해 정의된다.
Claims (18)
- 이미지에 대한 사용자의 동작 요청을 획득하는 단계;
상기 동작 요청과 기설정된 조건을 비교하고, 상기 이미지를 메인 캐시(cache)에 캐시하는 것이 요구되는지 여부를 판단하는 단계;
상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되는 경우, 상기 이미지가 렌더링되는 것이 처음인지 여부를 추가적으로 판단하되, 상기 이미지가 렌더링되는 것이 처음이라면, 메인 쓰레드(thread)를 이용하여 상기 이미지를 상기 메인 캐시에 캐시하고, 상기 이미지를 상기 메인 캐시로부터 획득하고, 상기 이미지를 렌더링하고, 상기 이미지가 렌더링되는 것이 처음이 아니라면, 메인 쓰레드를 이용하여 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하는 단계; 및
렌더링된 상기 이미지를 표시하는 단계;
를 포함하는 이미지 검색을 위한 방법. - 제 1 항에 있어서,
상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되지 않는 경우, 메인 쓰레드를 이용하여 상기 이미지를 상기 메인 캐시로부터 직접적으로 획득하고, 상기 이미지를 렌더링하는 단계를 추가로 포함하는 이미지 검색을 위한 방법. - 제 1 또는 2 항에 있어서,
상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하는 단계는, 구체적으로, 상기 이미지의 이미지 체인이 생성되었는지 여부를 판단하며; 상기 이미지 체인이 생성되었다면, 상기 메인 쓰레드를 이용하여 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하며; 상기 이미지 체인이 생성되지 않았다면, 상기 메인 쓰레드를 이용하여 상기 이미지 체인을 생성하고, 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하는 단계를 포함하는 이미지 검색을 위한 방법. - 제 3 항에 있어서,
상기 이미지의 이미지 체인이 생성되었는지 여부를 판단한 뒤, 상기 이미지 체인이 서브 캐시 내에 있는지 여부를 판단하며; 상기 이미지 체인이 상기 서브 캐시 내에 있다면, 상기 메인 쓰레드를 이용하여 상기 서브 캐시 내의 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하고; 상기 이미지 체인이 상기 서브 캐시 내에 있지 않다면, 상기 메인 쓰레드를 이용하여 생성된 상기 이미지 체인을 상기 서브 캐시에 캐시하며; 상기 이미지의 상기 이미지 체인이 아직 생성되지 않은 것으로 판단된 경우, 상기 메인 쓰레드를 이용하여 상기 이미지의 이미지 체인을 생성하고, 생성된 상기 이미지 체인을 서브 캐시에 캐시하고, 상기 서브 캐시 내의 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 상기 이미지를 획득하고, 상기 이미지를 렌더링하는 단계를 추가로 포함하는 이미지 검색을 위한 방법. - 제 1 또는 2 항에 있어서,
상기 기설정된 조건은,
이미지가 렌더링되는 것이 처음이다;
상기 이미지의 크기가 상기 메인 캐시의 용량보다 크다; 및
상기 사용자가 이미지 스케일링(scaling) 또는 드래깅(dragging)의 동작을 수행하고 있다;
중 어느 하나로 선택되는 이미지 검색을 위한 방법. - 제 1 또는 2 항에 있어서,
이미지를 상기 메인 캐시에 캐시하는 것이 요구되고, 상기 이미지가 렌더링되는 것이 처음이 아닌 경우, 서브 쓰레드를 이용하여 이미지를 생성하고, 생성된 상기 이미지를 상기 메인 캐시에 캐시하는 단계; 상기 메인 쓰레드를 이용하여 상기 메인 캐시로부터 생성된 상기 이미지를 획득하고, 상기 이미지를 렌더링하는 단계를 추가로 포함하는 이미지 검색 방법. - 이미지에 대한 사용자의 동작 요청을 획득하는 획득 모듈;
상기 동작 요청과 기설정된 조건을 비교하고, 상기 이미지를 메인 캐시에 캐시해야 하는지 여부 및 이미지가 렌더링되는 것이 처음인지 여부를 판단하는 판단모듈;
상기 판단 모듈이 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되고 상기 이미지가 렌더링되는 것이 처음인 것으로 판단한 경우, 렌더링 모듈은 메인 쓰레드를 이용하여 상기 이미지를 상기 메인 캐시에 캐시하고, 상기 이미지를 상기 메인 캐시로부터 획득하고, 상기 이미지를 렌더링하고; 상기 판단 모듈이 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되고 상기 이미지가 렌더링되는 것이 처음이 아닌 것으로 판단한 경우, 상기 렌더링 모듈은 상기 메인 쓰레드를 이용하여 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하며;
렌더링된 상기 이미지를 표시하는 표시 모듈;
을 포함하는 이미지 검색을 위한 시스템. - 제 7 항에 있어서,
상기 판단 모듈이 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되지 않는 것으로 판단한 경우, 상기 렌더링 모듈은 상기 메인 쓰레드를 이용하여 상기 이미지를 상기 메인 캐시로부터 직접적으로 획득하고, 상기 이미지를 렌더링하는 이미지 검색을 위한 시스템. - 제 7 또는 8 항에 있어서,
상기 판단 모듈은 상기 이미지의 이미지 체인이 생성되었는지 여부를 추가적으로 판단하되, 상기 이미지 체인이 생성되었다면, 상기 메인 쓰레드 모듈은 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하고, 상기 이미지 체인이 생성되지 않았다면, 상기 메인 쓰레드 모듈은 이미지 체인을 생성하고, 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하는 이미지 검색을 위한 시스템. - 제 9 항에 있어서,
상기 판단 모듈은, 상기 이미지의 상기 이미지 체인이 생성되었는지 여부를 판단한 뒤, 상기 이미지 체인이 서브 캐시 내에 있는지 여부를 추가적으로 판단하며; 상기 이미지 체인이 상기 서브 캐시 내에 있다면, 상기 렌더링 모듈은 상기 메인 쓰레드를 이용하여 상기 서브 캐시 내의 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하고; 상기 이미지 체인이 상기 서브 캐시 내에 있지 않다면, 상기 렌더링 모듈은 상기 메인 쓰레드를 이용하여 생성된 상기 이미지 체인을 상기 서브 캐시에 캐시하며; 상기 판단 모듈이 상기 이미지의 상기 이미지 체인이 아직 생성되지 않은 것으로 판단한 경우, 상기 렌더링 모듈은 상기 메인 쓰레드를 이용하여 상기 이미지 체인을 생성하고, 생성된 상기 이미지 체인을 서브 캐시에 캐시하여, 상기 서브 캐시 내의 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 상기 이미지를 획득하고, 상기 이미지를 렌더링하는 이미지 검색을 위한 시스템. - 제 7 또는 8 항에 있어서,
상기 기설정된 조건은,
이미지가 렌더링되는 것이 처음이다;
상기 이미지의 크기가 상기 메인 캐시의 용량보다 크다; 및
상기 사용자가 이미지 스케일링 또는 드래깅의 동작을 수행하고 있다;
중 어느 하나로 선택되는 이미지 검색을 위한 시스템. - 제 7 또는 8 항에 있어서,
상기 판단 모듈이 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되고, 이미지가 렌더링되는 것이 처음이 아닌 것으로 판단한 경우, 상기 렌더링 모듈은 서브 쓰레드를 이용하여 이미지를 생성하고, 생성된 상기 이미지를 상기 메인 캐시에 캐시하여, 상기 렌더링 모듈은 상기 메인 쓰레드를 이용하여 생성된 상기 이미지를 상기 메인 캐시로부터 획득하고, 상기 이미지를 렌더링하는 이미지 검색을 위한 시스템. - 하나 이상의 컴퓨터 프로세서에 의해 실행될 경우, 상기 하나 이상의 컴퓨터 프로세서가 이미지 검색 방법을 수행하도록 하는 컴퓨터 실행가능한 명령을 저장하는 비일시적인(non-transitory) 컴퓨터 기록매체에 있어서, 상기 방법은,
이미지에 대한 사용자의 동작 요청을 획득하는 단계;
상기 동작 요청과 기설정된 조건을 비교하고, 상기 이미지를 메인 캐시에 캐시하는 것이 요구되는지 여부를 판단하는 단계;
상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되는 경우, 상기 이미지가 렌더링되는 것이 처음인지 여부를 추가적으로 판단하되, 상기 이미지가 렌더링되는 것이 처음이라면, 메인 쓰레드를 이용하여 상기 이미지를 상기 메인 캐시에 캐시하고, 상기 이미지를 상기 메인 캐시로부터 획득하고, 상기 이미지를 렌더링하고, 상기 이미지가 렌더링되는 것이 처음이 아니라면, 상기 메인 쓰레드를 이용하여 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하는 단계; 및
렌더링된 상기 이미지를 표시하는 단계;
를 포함하는 컴퓨터 기록매체. - 제 13 항에 있어서,
상기 방법은, 상기 이미지를 상기 메인 캐시에 캐시하는 것이 요구되지 않는 경우, 상기 메인 쓰레드를 이용하여 상기 이미지를 상기 메인 캐시로부터 직접적으로 획득하고, 상기 이미지를 렌더링하는 단계를 추가로 포함하는 컴퓨터 기록 매체. - 제 13 또는 14 항에 있어서,
이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하는 단계는, 상기 이미지의 이미지 체인이 생성되었는지 여부를 판단하며; 상기 이미지 체인이 생성되었다면, 상기 메인 쓰레드를 이용하여 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하며; 상기 이미지 체인이 생성되지 않았다면, 상기 메인 쓰레드를 이용하여 상기 이미지 체인을 생성하고, 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하는 단계를 포함하는 컴퓨터 기록매체. - 제 15 항에 있어서,
상기 방법은, 상기 이미지의 이미지 체인이 생성되었는지 여부를 판단한 뒤, 상기 이미지 체인이 서브 캐시 내에 있는지 여부를 판단하며; 상기 이미지 체인이 상기 서브 캐시 내에 있다면, 상기 메인 쓰레드를 이용하여 상기 서브 캐시 내의 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하고; 상기 이미지 체인이 상기 서브 캐시 내에 있지 않다면, 상기 메인 쓰레드를 이용하여 생성된 상기 이미지 체인을 상기 서브 캐시에 캐시하며; 상기 이미지의 상기 이미지 체인이 아직 생성되지 않은 것으로 판단된 경우, 상기 메인 쓰레드를 이용하여 상기 이미지의 이미지 체인을 생성하고, 생성된 상기 이미지 체인을 서브 캐시에 캐시하고, 상기 서브 캐시 내의 상기 이미지 체인으로부터 상기 메인 캐시의 용량에 알맞은 이미지를 획득하고, 상기 이미지를 렌더링하는 단계를 추가로 포함하는 컴퓨터 기록매체. - 제 13 또는 14 항에 있어서,
상기 기설정된 조건은,
이미지가 렌더링되는 것이 처음이다;
상기 이미지의 크기가 상기 메인 캐시의 용량보다 크다; 및
상기 사용자가 이미지 스케일링 또는 드래깅의 동작을 하고 있다;
중 어느 하나로 선택되는 컴퓨터 기록매체. - 제 13 또는 14 항에 있어서,
상기 방법은, 이미지를 상기 메인 캐시에 캐시하는 것이 요구되고, 이미지가 렌더링되는 것이 처음이 아닌 경우, 서브 쓰레드를 이용하여 이미지를 생성하고, 생성된 상기 이미지를 상기 메인 캐시에 캐시하는 단계; 상기 메인 쓰레드를 이용하여 생성된 상기 이미지를 상기 메인 캐시로부터 획득하고, 상기 이미지를 렌더링하는 단계를 추가로 포함하는 컴퓨터 기록매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110295468.4 | 2011-09-29 | ||
CN201110295468.4A CN103034465B (zh) | 2011-09-29 | 2011-09-29 | 图像浏览方法及浏览*** |
PCT/CN2012/080028 WO2013044695A1 (zh) | 2011-09-29 | 2012-08-13 | 图像浏览方法及浏览***、计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140004240A true KR20140004240A (ko) | 2014-01-10 |
KR101541413B1 KR101541413B1 (ko) | 2015-08-03 |
Family
ID=47994239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137031762A KR101541413B1 (ko) | 2011-09-29 | 2012-08-13 | 이미지 검색 방법, 시스템 및 컴퓨터 기록매체 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20140198118A1 (ko) |
JP (1) | JP2014517395A (ko) |
KR (1) | KR101541413B1 (ko) |
CN (1) | CN103034465B (ko) |
AU (1) | AU2012315252B2 (ko) |
WO (1) | WO2013044695A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160127369A (ko) | 2015-04-27 | 2016-11-04 | 삼성에스디에스 주식회사 | 이미지 검색 시스템 및 방법 |
CN113838182A (zh) * | 2021-11-24 | 2021-12-24 | 之江实验室 | 基于多线程的磁共振3d图像大数据量渲染方法及*** |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108549562A (zh) * | 2018-03-16 | 2018-09-18 | 阿里巴巴集团控股有限公司 | 一种图像加载的方法及装置 |
CN110471720A (zh) * | 2018-05-09 | 2019-11-19 | 福建天泉教育科技有限公司 | 一种图片裁剪的方法及终端 |
CN111045576B (zh) * | 2018-10-11 | 2023-06-02 | 阿里巴巴集团控股有限公司 | 显示控制方法、显示控制装置、终端设备和电子设备 |
CN109821236B (zh) * | 2019-01-18 | 2022-02-22 | 恒信东方文化股份有限公司 | 一种实时图像的提取方法 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0713549A (ja) * | 1993-06-25 | 1995-01-17 | Hitachi Ltd | ディスプレイ表示処理方法 |
US6300959B1 (en) * | 1998-05-13 | 2001-10-09 | Compaq Computer Corporation | Method and system condensing animated images |
US6246797B1 (en) * | 1999-11-12 | 2001-06-12 | Picsurf, Inc. | Picture and video storage management system and method |
US7236637B2 (en) * | 1999-11-24 | 2007-06-26 | Ge Medical Systems Information Technologies, Inc. | Method and apparatus for transmission and display of a compressed digitized image |
US7116843B1 (en) * | 2000-07-24 | 2006-10-03 | Quark, Inc. | Method and system using non-uniform image blocks for rapid interactive viewing of digital images over a network |
US7162080B2 (en) * | 2001-02-23 | 2007-01-09 | Zoran Corporation | Graphic image re-encoding and distribution system and method |
JP3840966B2 (ja) * | 2001-12-12 | 2006-11-01 | ソニー株式会社 | 画像処理装置およびその方法 |
JP2003196674A (ja) * | 2001-12-25 | 2003-07-11 | Mega Chips Corp | 画像処理方法、画像処理装置及びコンピュータ読み取り可能記憶媒体 |
GB0303888D0 (en) * | 2003-02-19 | 2003-03-26 | Sec Dep Acting Through Ordnanc | Image streaming |
JP4451717B2 (ja) * | 2004-05-31 | 2010-04-14 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および情報処理方法 |
US9041744B2 (en) * | 2005-07-14 | 2015-05-26 | Telecommunication Systems, Inc. | Tiled map display on a wireless device |
US7460136B2 (en) * | 2005-08-19 | 2008-12-02 | Seiko Epson Corporation | Efficient scaling of image data in graphics display systems |
US7626591B2 (en) * | 2006-01-24 | 2009-12-01 | D & S Consultants, Inc. | System and method for asynchronous continuous-level-of-detail texture mapping for large-scale terrain rendering |
JP4642697B2 (ja) * | 2006-05-24 | 2011-03-02 | Necディスプレイソリューションズ株式会社 | 画像キャッシュメモリを有する画像表示装置 |
CN101122908A (zh) * | 2006-08-11 | 2008-02-13 | 仇伟军 | 一种原版报刊网络发布方法 |
JP4784446B2 (ja) * | 2006-08-31 | 2011-10-05 | 富士通セミコンダクター株式会社 | 画像処理装置 |
KR100867131B1 (ko) * | 2006-11-10 | 2008-11-06 | 삼성전자주식회사 | 휴대용 단말기의 이미지 출력 장치 및 방법 |
GB2445008B (en) * | 2006-12-20 | 2008-12-31 | Sony Comp Entertainment Europe | Image compression and/or decompression |
US8022960B2 (en) * | 2007-02-22 | 2011-09-20 | Qualcomm Incorporated | Dynamic configurable texture cache for multi-texturing |
US20080218527A1 (en) * | 2007-03-09 | 2008-09-11 | Romanick Ian D | Method and Apparatus for Improving Hit Rates of a Cache Memory for Storing Texture Data During Graphics Rendering |
GB2462589B (en) * | 2008-08-04 | 2013-02-20 | Sony Comp Entertainment Europe | Apparatus and method of viewing electronic documents |
JP5310079B2 (ja) * | 2009-02-24 | 2013-10-09 | 富士通セミコンダクター株式会社 | 画像描画装置 |
US8369564B2 (en) * | 2009-06-30 | 2013-02-05 | Apple Inc. | Automatic generation and use of region of interest and domain of definition functions |
JP5455213B2 (ja) * | 2009-11-17 | 2014-03-26 | Necシステムテクノロジー株式会社 | 画像描画装置、画像描画方法およびプログラム |
JP5299383B2 (ja) * | 2010-08-20 | 2013-09-25 | 株式会社Jvcケンウッド | 画像補正装置および画像補正方法 |
-
2011
- 2011-09-29 CN CN201110295468.4A patent/CN103034465B/zh active Active
-
2012
- 2012-08-13 WO PCT/CN2012/080028 patent/WO2013044695A1/zh active Application Filing
- 2012-08-13 AU AU2012315252A patent/AU2012315252B2/en active Active
- 2012-08-13 KR KR1020137031762A patent/KR101541413B1/ko active IP Right Grant
- 2012-08-13 JP JP2014511730A patent/JP2014517395A/ja active Pending
- 2012-08-13 US US14/112,197 patent/US20140198118A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160127369A (ko) | 2015-04-27 | 2016-11-04 | 삼성에스디에스 주식회사 | 이미지 검색 시스템 및 방법 |
CN113838182A (zh) * | 2021-11-24 | 2021-12-24 | 之江实验室 | 基于多线程的磁共振3d图像大数据量渲染方法及*** |
Also Published As
Publication number | Publication date |
---|---|
JP2014517395A (ja) | 2014-07-17 |
CN103034465A (zh) | 2013-04-10 |
AU2012315252A1 (en) | 2013-10-31 |
US20140198118A1 (en) | 2014-07-17 |
KR101541413B1 (ko) | 2015-08-03 |
CN103034465B (zh) | 2016-04-27 |
WO2013044695A1 (zh) | 2013-04-04 |
AU2012315252B2 (en) | 2015-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102419745B1 (ko) | 게임 렌더링 방법, 및 게임 자원 파일 생성 방법, 장치, 및 기기 | |
US10063808B2 (en) | Apparatus and method for ultra-high resolution video processing | |
KR101541413B1 (ko) | 이미지 검색 방법, 시스템 및 컴퓨터 기록매체 | |
TWI691931B (zh) | 圖片載入方法及裝置 | |
US9830308B2 (en) | Rendering apparatus and method for operating a web-platform | |
CN110377264B (zh) | 图层合成方法、装置、电子设备及存储介质 | |
RU2583730C2 (ru) | Адаптивная визуализация изображения и использование фиктивного изображения | |
JP7129517B2 (ja) | 360ビデオストリーミングのための予測ビットレート選択 | |
US20160291846A1 (en) | Generating carousel user interface with graphics processing unit | |
WO2018184436A1 (zh) | 图片的显示方法和装置 | |
US8078695B2 (en) | Media on demand using an intermediary device to output media from a remote computing device | |
US10204598B2 (en) | Predictive pre-decoding of encoded media item | |
US20130120424A1 (en) | Method and apparatus for improved rendering of images | |
JP5611464B2 (ja) | 描画装置 | |
CN114969409A (zh) | 一种图像显示方法、装置及可读介质 | |
CN108235144B (zh) | 播放内容获取方法、装置及计算设备 | |
US10515432B2 (en) | Methods and apparatuses for managing graphics data using two-stage lookup tables in cache | |
JP5419783B2 (ja) | 画像再生装置及び画像再生装置の制御方法 | |
KR100744057B1 (ko) | 임베디드 시스템 및 그 gui 디스플레이방법 | |
CN114100130A (zh) | 一种游戏画面截取方法、装置、设备及云服务器 | |
CN117237508A (zh) | 像素纹理值的加载方法、装置、设备及存储介质 | |
CN117892021A (zh) | 一种基于Flutter图形库skia的在线图片加载与缓存方法 | |
CN116934570A (zh) | 一种应用程序页面的图像处理方法、装置及电子设备 | |
CN117950777A (zh) | 后台应用程序的预览方法、设备及存储介质 | |
CN112149018A (zh) | 一种基于局部性原理的大幅影像预加载方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20180719 Year of fee payment: 4 |