KR20190013151A - Multi-thread Based Big Image Display Acceleration Method - Google Patents

Multi-thread Based Big Image Display Acceleration Method Download PDF

Info

Publication number
KR20190013151A
KR20190013151A KR1020170097297A KR20170097297A KR20190013151A KR 20190013151 A KR20190013151 A KR 20190013151A KR 1020170097297 A KR1020170097297 A KR 1020170097297A KR 20170097297 A KR20170097297 A KR 20170097297A KR 20190013151 A KR20190013151 A KR 20190013151A
Authority
KR
South Korea
Prior art keywords
image
buffer
image buffer
image data
chip
Prior art date
Application number
KR1020170097297A
Other languages
Korean (ko)
Other versions
KR101964973B1 (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 KR1020170097297A priority Critical patent/KR101964973B1/en
Publication of KR20190013151A publication Critical patent/KR20190013151A/en
Application granted granted Critical
Publication of KR101964973B1 publication Critical patent/KR101964973B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Abstract

According to an embodiment, the present invention relates to a large-capacity display acceleration system using multiple threads, which comprises: a chip image storage unit storing an image of a chip; a memory including a hash table indicating the position of the chip image, which is divided in a lattice structure based on the size of resolution of the screen, with a matrix number and a file pointer, and a visible image buffer storing image data of a part to be displayed on the screen by a user from the chip image; and a control unit including a display coordinate determination module determining the position of the part to be displayed on the screen by the user from the chip image, based on the hash table, and a buffer process control module controlling the image data, which corresponds to the position of the part to be displayed on the screen determined by the display coordinate determination module, to be stored in the visible image buffer. Therefore, the large-capacity display acceleration system can quickly display a large-capacity chip image.

Description

다중 스레드를 이용한 대용량 이미지 표시 가속화 시스템{Multi-thread Based Big Image Display Acceleration Method}[0001] Multi-thread Based Big Image Display Acceleration Method [

본 발명은 대용량 이미지 표시 가속화 시스템에 대한 것으로, 보다 구체적으로, 대용량 칩 이미지를 처리하기 위한 대용량 이미지 표시 가속화 시스템 및 방법에 관한 것이다. The present invention relates to a large capacity image display acceleration system, and more particularly, to a large capacity image display acceleration system and method for processing a large capacity chip image.

사용자와의 대화방식으로 데이터를 교환하면서 설계를 지원하는 캐드 소프트웨어는 기본적으로 그래픽 사용자 인터페이스를 제공한다. 일반적으로 반도체 설계에 사용되는 데이터의 종류로는 C 코드, Verilog 코드, EDIF 형식 파일, GDSII 형식 파일 등으로서 순수한 텍스트 데이터이거나 그림으로 표현되는 좌표 데이터이다. 또한, 대용량의 이미지 데이터를 직접 사용하는 캐드툴은 역공학 캐드 소프트웨어만이 사용되고 있다.The CAD software that supports the design while exchanging data with the user interactively provides a graphical user interface by default. Generally, the data used in the semiconductor design are C code, Verilog code, EDIF format file, GDSII format file, and the like, which are pure text data or coordinate data represented by pictures. In addition, CAD tools that directly use large amounts of image data are used only by reverse engineering CAD software.

하지만, 역공학 캐드 소프트웨어는 타기업의 기술 도용을 감시하기 위한 특수한 용도로만 사용되기 때문에 몇 개 국가만이 자체 기술로 개발한 소수의 제품만이 존재한다. 이로 인해 역공학 캐드 소프트웨어 자체는 제공하지 않고, 역공학 설계 서비스만 제공하는 경우와 고가의 라이센스로 역공학 캐드 소프트웨어를 리스하는 서비스만 존재하며, 역공학 캐드 소프트웨어의 구현 기술은 소수의 기업 고유의 자산으로 외부에 노출하고 있지 않고 있다.However, since the reverse engineering CAD software is used only as a special purpose to monitor technology abuse of other companies, only a few countries have only a few products developed with their own technology. As a result, only the reverse engineering CAD software itself is provided, only the reverse engineering design service is provided, and only the service that leases the reverse engineering CAD software with the expensive license exists, and the implementation technology of the reverse engineering CAD software is a small number It is not exposed to the outside as assets.

종래기술은 패키지를 디캡하여 나타나는 칩의 표면 이미지를 현미경으로 확대 촬영하여 얻은 이미지들을 붙여 획득한 대용량의 칩 이미지로부터 전자회로를 추출하는 과정에서 역공학 캐드 소프트웨어를 사용하였을 때, 칩 이미지가 너무 크기 때문에 컴퓨터 메모리에 모두 올릴 수 없을 뿐만 아니라, 처리 속도가 느려서 사용자가 수작업으로 회로를 추출 하는 것이 불가능하였다.In the prior art, when the reverse engineering CAD software is used in the process of extracting an electronic circuit from a large-capacity chip image obtained by attaching images obtained by enlarging a surface image of a chip, which is obtained by decapsulating a package, by a microscope, Therefore, not only can not all be put in the computer memory, but the processing speed is slow and it is impossible for the user to manually extract the circuit.

본 발명은 상술한 요구에 부응하기 위하여 안출된 것으로, 본 발명은 여러 계층의 대용량 칩 이미지를 배경으로 전자회로를 추출하는 역공학 전용 캐드 소프트웨어의 칩 이미지 처리에 관련된 특허이다. 특히, 본 발명은 패키지를 디캡하여 나타나는 칩의 표면 이미지를 현미경으로 확대 촬영하여 얻은 이미지들을 붙여 획득한 대용량의 칩 이미지로부터 전자회로를 추출하는 역공학 캐드 소프트웨어에 적용하는 기술이다. 칩 이미지는 대용량이기 때문에 칩 이미지 전체를 컴퓨터 메모리에 탑재할 수 없고, 혹시 가능하더라도 이미지 처리 속도가 크게 저하되어 사용자가 실시간으로 전자회로를 추출하는 것이 불편한 경우 숨겨진 이미지 버퍼와 해쉬테이블과 멀티스레드 기술을 도입하여 이미지 표시 처리를 가속화 시키는 새로운 알고리즘을 제안한다. The present invention has been devised in order to meet the above-mentioned demand, and the present invention is a patent relating to chip image processing of CAD software for reverse engineering, which extracts electronic circuits in the background of a multi-layer large capacity chip image. In particular, the present invention is a technology applied to reverse engineering CAD software for extracting electronic circuits from a large-capacity chip image obtained by attaching images obtained by enlarging a surface image of a chip, which is obtained by decapsulating a package, by a microscope. Since the chip image is large in size, it is impossible to mount the entire chip image in the computer memory. If it is inconvenient for the user to extract the electronic circuit in real time because the image processing speed deteriorates even if it is possible, a hidden image buffer, a hash table, We propose a new algorithm to accelerate image display processing.

본 발명에 따르면, 대용량 칩 이미지를 행렬 격자로 나누고 격자 행렬 번호, 파일 포인터 및 이미지 좌표를 매핑하는 해쉬 테이블을 통해 전체 칩 이미지를 스캔할 필요없이 필요한 부분의 이미지 데이터만을 읽으므로, 대용량 칩 이미지 표시 속도를 높일 수 있다.According to the present invention, since only a necessary portion of image data is read without dividing a large chip image into a matrix grid and scanning a whole chip image through a hash table mapping a grid matrix number, a file pointer and image coordinates, It can speed up.

본 발명의 실시예에 따른 다중 스레드를 이용한 대용량 이미지 표시 가속화 시스템은 칩 이미지를 저장하는 칩 이미지 저장부; 상기 칩 이미지를 화면의 해상도 크기를 기준으로 격자구조로 나누었을 때의 상기 칩 이미지 상에서의 위치를 행렬 번호 및 파일 포인터로 나타내는 해쉬 테이블 및 상기 칩 이미지 중 사용자가 상기 화면에 표시하고자 하는 부분의 이미지 데이터를 저장하는 가시적 이미지 버퍼를 포함하는 메모리; 및 상기 칩 이미지 중 사용자가 화면에 표시하고자 하는 부분의 위치를 상기 해쉬 테이블에 기초하여 결정하는 표시 좌표 결정 모듈, 및 상기 표시 좌표 결정 모듈에서 결정한 화면에 표시하고자 하는 부분의 위치에 해당하는 이미지 데이터를 상기 가시적 이미지 버퍼에 저장하도록 제어하는 버퍼 프로세스 제어 모듈을 포함하는 제어부를 포함할 수 있다.According to an embodiment of the present invention, there is provided a system for accelerating a large image display using a multithread, comprising: a chip image storage unit for storing a chip image; A hash table in which a position on the chip image when the chip image is divided into a grid structure based on a resolution size of a screen is represented by a matrix number and a file pointer, and a hash table in which a user wants to display an image A memory including a visible image buffer for storing data; And a display coordinate determination module that determines a position of a portion of the chip image that the user intends to display on the screen based on the hash table and a display coordinate determination module that determines image coordinates of the image data corresponding to the position of the portion to be displayed on the screen determined by the display coordinate determination module And a buffer process control module for controlling to store the image data in the visible image buffer.

이 경우, 상기 메모리는 상기 가시적 이미지 버퍼와 이웃하는 영역의 이미지 데이터를 저장하는 비가시적 이미지 버퍼 및 상기 비가시적 이미지 버퍼에 이웃하는 영역의 이미지 데이터를 저장하는 예측 이미지 버퍼를 더 포함하며, 상기 제어부는 상기 사용자의 화면 이동 방향의 통계 기록에 따라 사용자가 이동할 방향을 예측하는 사용자 이동 예측 모듈을 더 포함하며, 상기 가시적 이미지 버퍼와 이웃하여 배치되는 영역의 이미지 데이터를 상기 비가시적 이미지 버퍼에 저장하며, 상기 비가시적 이미지 버퍼와 상기 이동할 방향으로 이웃하여 배치되는 이미지 데이터를 상기 예측 이미지 버퍼에 저장하도록 제어할 수 있다. In this case, the memory further includes an invisible image buffer storing image data of an area adjacent to the visible image buffer, and a predicted image buffer storing image data of an area neighboring the invisible image buffer, Further comprising a user movement prediction module for predicting a direction in which the user moves in accordance with the statistical recording of the screen movement direction of the user, wherein the image data of the area neighboring the visible image buffer is stored in the invisible image buffer , And control to store the invisible image buffer and the image data arranged adjacent to the moving direction in the predictive image buffer.

또한, 상기 제어부는 다중 스레드를 통하여 대용량 이미지 표시 가속화 시스템이 병렬 처리를 수행하도록 제어하며, 상기 다중 스레드는 상기 비가시적 이미지 버퍼의 이미지 데이터를 상기 가시적 이미지 버퍼에 복사하거나, 상기 예측 이미지 버퍼의 이미지 데이터를 상기 비가시적 이미지 버퍼에 복사하거나 또는 상기 가시적 이미지 버퍼의 이미지 데이터를 상기 비가시적 이미지 버퍼에 복사하는 버퍼 복사 프로세스; 및 상기 해쉬 테이블에 기초하여 결정된 위치의 이미지 데이터를 읽고 상기 가시적 이미지 버퍼, 상기 비가시적 이미지 버퍼 또는 상기 예측 이미지 버퍼 중 어느 하나에 저장하는 버퍼 읽기 프로세스를 포함할 수 있다.Also, the control unit controls the multi-threaded image processing system to perform parallel processing, and the multithreaded processor copies the image data of the invisible image buffer into the visible image buffer, or the image of the predictive image buffer A buffer copy process of copying data into the invisible image buffer or copying the image data of the visible image buffer into the invisible image buffer; And a buffer reading process of reading image data at a position determined based on the hash table and storing the image data in either the visible image buffer, the invisible image buffer, or the predicted image buffer.

또한, 상기 다중 스레드는, 상기 버퍼 읽기 프로세스 보다 상기 버퍼 복사 프로세스가 우선권을 갖도록 구성될 수 있다.Also, the multithread may be configured such that the buffer copy process has priority over the buffer read process.

또한, 상기 버퍼 읽기 프로세스는, 상기 가시적 이미지 버퍼, 상기 비가시적 이미지 버퍼 또는 상기 예측 이미지 버퍼에 가장 최근에 실행된 사용자의 이동 방향으로 이웃하는 영역에 해당하는 이미지 데이터를 읽을 때에 상기 다중 스레드에서 우선권을 갖도록 구성될 수 있다.In addition, the buffer reading process may further include, when reading image data corresponding to an area neighboring the moving direction of the user most recently executed in the visible image buffer, the invisible image buffer, or the predictive image buffer, . ≪ / RTI >

또한, 상기 다중 스레드에서 병렬로 실행되는 스레드의 전체 개수는 프로세서에서 연산이 가능한 코어의 개수에 의해 결정되도록 구성될 수 있다.In addition, the total number of threads executed in parallel in the multithread may be configured to be determined by the number of cores that can be operated on by the processor.

또한, 상기 칩 이미지 중 표시할 영역의 확대 또는 축소 비율에 따라 매핑되는 행렬 번호의 개수가 달라지도록 구성될 수 있다.In addition, the number of matrix numbers mapped according to the enlargement or reduction ratio of the area to be displayed among the chip images may be changed.

한편, 본 발명에 따른 다중 스레드를 이용한 대용량 이미지 표시 가속화 방법은, 칩 이미지를 화면의 해상도 크기를 기준으로 격자구조로 나누었을 때의 상기 칩 이미지 상에서의 위치를 행렬 번호 및 파일 포인터를 포함하는 해쉬 테이블로 저장하는 단계; 상기 칩 이미지 중 사용자가 화면에 표시하고자 하는 부분의 위치를 상기 해쉬 테이블에 기초하여 결정하는 단계; 상기 결정하는 단계에서 결정된 화면에 표시하고자 하는 부분의 위치에 해당하는 이미지 데이터를 가시적 이미지 버퍼에 저장하는 단계; 및 상기 가시적 이미지 버퍼에 저장된 이미지를 표시하는 단계를 포함할 수 있다.Meanwhile, a method for accelerating a large-capacity image display using multithread according to the present invention is a method for accelerating a large-capacity image display using a multithread, wherein a position on the chip image when a chip image is divided into a grid structure based on a resolution size of a screen is represented by a hash Storing as a table; Determining a position of a portion of the chip image that the user wants to display on the screen based on the hash table; Storing image data corresponding to a position of a portion to be displayed on a screen determined in the determining step in a visible image buffer; And displaying the image stored in the visible image buffer.

이 경우, 다중 스레드를 이용한 대용량 이미지 표시 가속화 방법은 상기 가시적 이미지 버퍼와 이웃하는 영역의 이미지 데이터를 비가시적 이미지 버퍼에 저장하는 단계; 상기 사용자의 화면 이동 방향의 통계 기록에 따라 사용자가 이동할 방향을 예측하는 단계; 및 상기 비가시적 이미지 버퍼에 상기 예측하는 단계에서 예측된 이동하는 방향으로 이웃하는 영역의 이미지 데이터를 예측 이미지 버퍼에 저장하는 단계를 더 포함할 수 있다.In this case, a method for accelerating a large image display using a multithread includes storing image data of an area neighboring the visible image buffer in an invisible image buffer; Estimating a direction in which the user moves according to the statistical recording of the screen movement direction of the user; And storing the image data of the area neighboring in the moving direction predicted in the predicting step in the invisible image buffer in the predictive image buffer.

또한, 다중 스레드를 이용한 대용량 이미지 표시 가속화 방법은 상기 비가시적 이미지 버퍼의 이미지 데이터를 상기 가시적 이미지 버퍼에 복사하거나, 상기 예측 이미지 버퍼의 이미지 데이터를 상기 비가시적 이미지 버퍼에 복사하거나 또는 상기 가시적 이미지 버퍼의 이미지 데이터를 상기 비가시적 이미지 버퍼에 복사하는 버퍼 복사 단계; 및 상기 해쉬 테이블에 기초하여 결정된 위치의 이미지 데이터를 읽고 상기 가시적 이미지 버퍼, 상기 비가시적 이미지 버퍼 또는 상기 예측 이미지 버퍼 중 어느 하나에 저장하는 버퍼 읽기 단계를 더 포함하며, 상기 버퍼 복사 단계 및 상기 버퍼 읽기 단계는 다중 스레드를 통하여 병렬적으로 처리될 수 있다.Also, a method for accelerating a large image display using a multithread may include copying the image data of the invisible image buffer to the visible image buffer, copying the image data of the predictive image buffer to the invisible image buffer, A buffer copy step of copying the image data of the image data into the invisible image buffer; And a buffer reading step of reading image data at a position determined based on the hash table and storing the image data in either the visible image buffer, the invisible image buffer, or the predicted image buffer, The read phase can be handled in parallel through multiple threads.

또한, 상기 버퍼 복사 단계는 상기 버퍼 읽기 단계보다 상기 다중 스레드에서 우선권을 갖을 수 있다.In addition, the buffer copying step may have priority over the multithreading step than the buffer reading step.

또한, 상기 버퍼 읽기 단계는, 상기 가시적 이미지 버퍼, 상기 비가시적 이미지 버퍼 또는 상기 예측 이미지 버퍼에 가장 최근에 실행된 사용자의 이동 방향으로 이웃하는 영역에 해당하는 이미지 데이터를 읽을 때에 상기 다중 스레드에서 우선권을 갖도록 구성될 수 있다.In addition, the buffer reading step may include, when reading image data corresponding to a region neighboring the moving direction of the user most recently executed in the visible image buffer, the invisible image buffer, or the predictive image buffer, . ≪ / RTI >

또한, 상기 다중 스레드에서 스레드의 전체 개수는 프로세서에서 연산이 가능한 코어의 개수에 의해 결정될 수 있다.Also, the total number of threads in the multithread may be determined by the number of cores that can be operated on by the processor.

또한, 상기 해쉬 테이블은, 상기 칩 이미지 중 표시할 영역의 확대 또는 축소 비율에 따라 매핑되는 행렬 번호의 개수가 달라질 수 있다.In the hash table, the number of matrix numbers mapped according to the enlargement or reduction ratio of the area to be displayed among the chip images may be changed.

상기한 바와 같이 이루어진 본 발명에 따른 다중 스레드를 이용한 대용량 이미지 표시 가속화 시스템은 대용량 칩 이미지를 행렬 격자로 나누며, 전체 칩 이미지의 격자 행렬 번호, 파일 포인터 및 이미지 좌표를 매핑하는 해쉬 테이블을 통해, 컴퓨터 메모리 용량이 제한되어 칩 이미지 전체를 컴퓨터 메모리에 탑재할 수 없을 경우 또는 이미지 처리 속도가 크게 저하되는 부분을 해결할 수 있다.The large-capacity image display acceleration system using the multithread according to the present invention divides a large-capacity chip image into a matrix grid, and through a hash table mapping a grid matrix number, a file pointer and an image coordinate of the entire chip image, The memory capacity is limited so that the entire chip image can not be mounted in the computer memory or the image processing speed is greatly reduced.

또한, 사용자의 이미지 처리 속도가 느려지거나, 컴퓨터의 성능에 상관없이, 이미지를 표시하는 기능은 정상적으로 실행될 수 있다. 물론 이러한 효과들에 의해 본 발명의 범위가 한정되는 것은 아니다.Further, the function of displaying an image can be normally executed irrespective of the performance of the computer or the performance of the image processing of the user is slowed down. Of course, the scope of the present invention is not limited by these effects.

도 1은 본 발명의 실시예에 따른 다중 스레드를 이용한 대용량 이미지 표시 가속화 시스템의 블록도이다.
도 2는 본 발명의 실시예에 따른 다중 스레드를 이용한 대용량 이미지 표시 가속화 시스템을 설명하는 도면이다.
도 3은 본 발명의 실시예에 따른 다중 스레드에서 수행되는 프로세스에 관한 블록도이다.
도 4는 본 발명의 실시예에 따른 다중 스레드의 프로세스 우선권에 관한 순서도이다.
도 5는 본 발명의 실시예에 따른 다중 스레드를 이용한 대용량 이미지 표시 가속화 방법에 대한 순서도이다.
1 is a block diagram of a multi-threaded large image display acceleration system in accordance with an embodiment of the present invention.
2 is a view for explaining a large-capacity image display acceleration system using a multithread according to an embodiment of the present invention.
3 is a block diagram of a process performed in a multi-thread according to an embodiment of the present invention.
4 is a flow diagram of multi-threaded process priority according to an embodiment of the present invention.
5 is a flowchart illustrating a method of accelerating a large-capacity image display using a multithread according to an exemplary embodiment of the present invention.

이하, 첨부된 도면들을 참조하여 본 발명의 실시예를 상세히 설명하면 다음과 같다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있는 것으로, 이하의 실시예는 본 발명의 개시가 완전하도록 하며, 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 또한, 설명의 편의를 위하여 도면에서는 구성 요소들이 그 크기가 과장 또는 축소될 수 있다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. It should be understood, however, that the invention is not limited to the disclosed embodiments, but may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, Is provided to fully inform the user. In addition, for convenience of explanation, components may be exaggerated or reduced in size.

그러나, 이하의 실시예는 이 기술분야에서 통상적인 지식을 가진 자에게 본 발명이 충분히 이해되도록 제공되는 것으로서 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 기술되는 실시예에 한정되는 것은 아니다.However, it should be understood that the following embodiments are provided so that those skilled in the art will be able to fully understand the present invention, and that various modifications may be made without departing from the scope of the present invention. It is not.

도 1은 본 발명의 실시예에 따른 다중 스레드를 이용한 대용량 이미지 표시 가속화 시스템의 블록도이다.1 is a block diagram of a multi-threaded large image display acceleration system in accordance with an embodiment of the present invention.

도 1을 참조하면, 본 발명에 따른 대용량 이미지 표시 가속화 시스템(100)은 제어부(110), 메모리(130) 및 칩 이미지 저장부(140)를 포함할 수 있다.Referring to FIG. 1, a large-capacity image display acceleration system 100 according to the present invention may include a control unit 110, a memory 130, and a chip image storage unit 140.

이 경우, 제어부(110)는 표시 좌표 결정 모듈(113), 사용자 이동 예측 모듈 (115) 및 버퍼 프로세스 제어 모듈(117)을 포함할 수 있다.In this case, the control unit 110 may include a display coordinate determination module 113, a user movement prediction module 115, and a buffer process control module 117.

본 발명에 따른 제어부, 모듈은 프로세서 상에서 실행되는 소프트웨어 프로그램 또는 전용 로직 회로를 이용한 하드웨어 모듈 등 다양한 형태로 구현될 수 있다.The control unit and the module according to the present invention may be implemented in various forms such as a software program executed on the processor or a hardware module using the dedicated logic circuit.

표시 좌표 결정 모듈(113)은 대용량 칩 이미지를 디스플레이 화면 크기에 기초하여 격자 구조로 나누고, 격자 행렬 번호를 획득하며, 획득된 행렬 번호에 대응하는 위치에 해당하는 이미지 데이터의 포인터들을 매핑하여 해쉬 테이블(230)로 해쉬 테이블에 저장한다. 이 경우, 해쉬 테이블(230)의 저장은 최초 수행시 1회만 수행될 수 있다.The display coordinate determination module 113 divides the large-capacity chip image into a grid structure based on the display screen size, acquires the grid matrix number, maps pointers of image data corresponding to the obtained matrix number, (230) in the hash table. In this case, the storage of the hash table 230 may be performed only once in the initial execution.

또한, 사용자가 화면에 칩 이미지의 적어도 일부를 표시하려고 할 때에 해쉬 테이블(230)에 기초하여 전체 칩 이미지 중 표시할 부분을 결정하여 이하에서 설명할 가상적 이미지 버퍼, 비가상적 이미지 버퍼들 및 예측 이미지 버퍼에 저장할 이미지 데이터를 결정한다. In addition, when the user tries to display at least a part of the chip image on the screen, the portion to be displayed of the entire chip image is determined based on the hash table 230 and the virtual image buffer, the non-virtual image buffers, And determines the image data to be stored in the buffer.

사용자 이동 예측 모듈 (115)은 사용자가 컴퓨터 화면으로 보는 칩 이미지(200)를 좌우 방향 또는 상하 방향으로 이동할 지를 미리 예측하여, 칩 이미지 상에서 비가시적 이미지 버퍼(215)에 저장된 이미지 데이터에 이웃한 부분의 이미지 데이터를 예측 이미지 데이터로서 준비할 수 있다.The user movement prediction module 115 predicts in advance whether the user wants to move the chip image 200 viewed from the computer screen in the left or right direction or the up and down direction and determines whether or not the portion adjacent to the image data stored in the invisible image buffer 215 on the chip image Can be prepared as predicted image data.

예를 들어, 사용자 이동 예측 모듈(115)은 사용자가 상단으로 이동될 것으로 예측되는 경우에 칩 이미지 상에서 비가시적 이미지 상단 버퍼에 저장된 칩 이미지의 위쪽 부분을 에측 이미지로서 예측 이미지 버퍼에 저장하도록 제어할 수 있다.For example, the user movement prediction module 115 controls the upper portion of the chip image stored in the invisible image upper buffer on the chip image to be stored in the prediction image buffer as an image on the chip when the user is predicted to move to the top .

이 경우, 사용자 이동 예측 모듈(115)은 예측 이미지 버퍼(218)의 개수를 여분의 메모리 용량에 따라 결정할 수 있다. In this case, the user movement prediction module 115 can determine the number of prediction image buffers 218 according to the extra memory capacity.

또한, 사용자 이동 예측 모듈(115)은 사용자의 이동 기록 통계에 기초하여 사용자의 이동을 예측할 수 있다. 예를 들어, 사용자가 통계적으로 오른쪽으로 많이 이동했을 경우, 비가상적 이미지 우측 버퍼에 저장된 칩 이미지의 오른쪽 부분을 예측 이미지로서 예측 이미지 버퍼(118)에 저장할 수 있다. 따라서, 사용자가 예측과 같이 실제 오른쪽으로 칩 이미지를 이동시켜 볼 경우에 이동 속도가 빨라질 수 있다. In addition, the user movement prediction module 115 can predict the movement of the user based on the movement record statistics of the user. For example, if the user moves statistically to the right, the right portion of the chip image stored in the non-hypothetical image right buffer can be stored as the predicted image in the predicted image buffer 118. Therefore, the moving speed can be increased when the user actually moves the chip image to the right side as expected.

또는 사용자 이동 예측 모듈(115)은 사용자가 최근 이동한 방향에 기초하여 사용자의 이동 방향을 예측할 수도 있다.Or the user movement prediction module 115 may predict the moving direction of the user based on the direction in which the user has recently moved.

또한, 사용자가 컴퓨터 화면상의 칩 이미지(100)를 상하좌우 골고루 이동할 경우, 에측 이미지 버퍼(118)는 비가시적 이미지 버퍼에 저장된 칩 이미지의 상하좌우의 이미지를 고르게 저장할 수 있다. In addition, when the user moves the chip image 100 on the computer screen evenly, the image buffer 118 can evenly store upper, lower, left, and right images of the chip image stored in the invisible image buffer.

버퍼 프로세스 제어 모듈(117)은 프로세서 상의 다중 스레드(220)에서 수행될 버퍼와 관련된 프로세스를 제어할 수 있다. 예를 들어, 버퍼와 관련된 프로세스는 버퍼 읽기 프로세스(223) 및 버퍼 복사 프로세스(225)를 포함할 수 있다.한편, 메모리(130)는 해당 칩 이미지를 표시하는 디바이스, 예를 들어, 컴퓨터 상의 비휘발성 메모리를 의미한다. 또한, 칩 이미지 저장 모듈(140)는 전체 칩 이미지(200)를 저장할 수 있는 대용량의 저장장치를 의미 예를 들어, 하드 디스크 등의 비휘발성 메모리일 수 있다. Buffer process control module 117 may control the process associated with the buffer to be performed in multithreaded 220 on the processor. For example, the process associated with the buffer may include a buffer read process 223 and a buffer copy process 225. On the other hand, the memory 130 may be a device that displays the chip image, for example, Volatile memory. In addition, the chip image storage module 140 may be a non-volatile memory such as a hard disk, for example, a large-capacity storage device capable of storing the entire chip image 200. [

도 2는 본 발명의 실시예에 따른 다중 스레드를 이용한 대용량 이미지 표시 가속화 장치의 동작을 설명하기 위한 도면이다.2 is a view for explaining the operation of the multi-threaded large image display acceleration apparatus according to the embodiment of the present invention.

도 2를 참조하면, 표시 좌표 결정 모듈(113)은 디스플레이의 화면 해상도 크기를 기본 단위로 하여, 전체 칩 이미지(200)를 행과 열로 구성된 격자구조로 나눌 수 있다. 여기서 표시 좌표 결정 모듈(113)은 전체 칩 이미지(200)를 격자 크기로 실제 분할하는 것이 아니며 해쉬 테이블(230)을 구축하는데 필요한 정보를 얻기 위하여 격자구조로 구분하는 것이다.Referring to FIG. 2, the display coordinate determination module 113 divides the entire chip image 200 into a grid structure composed of rows and columns, with the screen resolution size of the display as a basic unit. Here, the display coordinate determination module 113 does not actually divide the entire chip image 200 into a grid size, but divides it into a grid structure in order to obtain information necessary for constructing the hash table 230.

이 때, 해쉬 테이블(230)은 메모리 상에 상주하면서 전체 칩 이미지를 표시할 화면의 해상도 크기를 기본단위로 나누었을 때, 전체 칩 이미지 상에서 해당 영역의 위치 정보를 저장한 테이블이다. 이 경우, 해쉬 테이블(230)은 상술한 격자 행렬의 행렬 번호와 대응하는 칩 이미지 데이터의 포인터를 저장할 수 있다.In this case, the hash table 230 is a table in which the position information of the corresponding area is stored on the entire chip image when the size of the resolution of the screen on which the entire chip image is displayed is divided by the basic unit. In this case, the hash table 230 may store the pointer of the chip image data corresponding to the matrix number of the above-mentioned lattice matrix.

본 발명에서 가시적 이미지 버퍼, 비가시적 이미지 버퍼는 해당 해쉬 테이블(230)에 기초하여 이미지 데이터를 저장하게 된다. In the present invention, the visible image buffer and the non-visible image buffer store image data based on the corresponding hash table 230.

예컨대, 칩 이미지(200)는 파일로 저장되어 있어, 종래 기술에 따르면 임의의 격자에 해당하는 이미지 데이터를 읽기 위하여 처음부터 스캔하여 찾아야했다. 그러나, 본 발명과 같이 전체 칩 이미지(200)를 행렬 격자구조로 나누어 해쉬 테이블(230)에 해당 행렬 격자에 대한 위치 정보를 저장해 둘 경우, 해쉬 테이블(230)을 통하여 해당 격자 위치의 칩 이미지 데이터에 직접 접근하여 독립적으로 읽을 수 있으며, 이로 인해 데이터를 읽는 속도가 현저히 증가할 수 있다.For example, the chip image 200 is stored as a file, and according to the prior art, the image data corresponding to an arbitrary grid has to be scanned from the beginning to be read. However, if the entire chip image 200 is divided into the matrix lattice structure and the position information of the corresponding matrix lattice is stored in the hash table 230 as in the present invention, the chip image data of the corresponding lattice position And can be read independently, which can significantly increase the speed of reading data.

이미지 버퍼(210)는 가시적 이미지 버퍼(213), 비가시적 이미지 버퍼(215) 및 예측 이미지 버퍼(218)를 포함할 수 있다. 이 경우, 이미지 버퍼(210)는 컴퓨터 화면 해상도와 동일한 크기의 이미지 데이터를 복수 개 저장할 수 있다. The image buffer 210 may include a visible image buffer 213, an invisible image buffer 215, and a predicted image buffer 218. In this case, the image buffer 210 may store a plurality of pieces of image data having the same size as the computer screen resolution.

여기서, 가시적 이미지 버퍼(213)는 컴퓨터 화면에 나타나는 이미지 데이터를 저장할 수 있으며 또한, 가시적 이미지 버퍼(113)에 저장된 데이터는 컴퓨터 화면에 바로 표시될 수 있다.Here, the visible image buffer 213 may store image data displayed on a computer screen, and the data stored in the visible image buffer 113 may be directly displayed on a computer screen.

비가시적 이미지 버퍼(115)는 가시적 이미지 버퍼(113)의 상하좌우에 바로 이웃하여 배치될 수 있는 이미지를 저장할 수 있다. 예컨대, 비가시적 이미지 버퍼(215)는 사용자가 현재 이미지 상에서 회로 추출 수작업을 진행하는 동안 여유의 컴퓨팅 자원을 활용하여, 칩 이미지(200) 데이터를 읽고 저장할 수 있다. 이로 인해, 비가시적 이미지 버퍼(215)의 사용은 백그라운드에서 처리되고 사용자의 회로 추출 수작업이 많은 용량의 컴퓨팅 자원을 활용하지 않아, 사용자의 작업을 방해하지 않을 수 있다. The invisible image buffer 115 may store images that can be placed immediately adjacent to the top, bottom, left, and right of the visual image buffer 113. [ For example, the invisible image buffer 215 can read and store the chip image 200 data, utilizing the available computing resources while the user proceeds on circuit extraction operations on the current image. Because of this, the use of the invisible image buffer 215 is handled in the background, and the user's circuit extraction manipulation does not utilize a large amount of computing resources and may not interfere with the user's work.

또한, 비가시적 이미지 버퍼(215)는 메모리에 저장되어 숨겨져 있지만 가시적 이미지 버퍼(213)로 이동하면 컴퓨터 화면에 나타나게 될 수 있으며, 이처럼 사용자가 컴퓨터 화면에 나타난 칩 이미지(200)의 이동에 대비하여 미리 준비할 수 있다.In addition, although the invisible image buffer 215 is stored in the memory and hidden, the invisible image buffer 215 may be displayed on the computer screen when moving to the visible image buffer 213. Thus, in preparation for movement of the chip image 200 displayed on the computer screen You can prepare in advance.

예측 이미지 버퍼(218)는 사용자의 화면 이동을 예측하여, 사용자가 이동하는 방향에 해당되는 예측 이미지 데이터를 생성할 수 있다.The predictive image buffer 218 predicts the screen movement of the user and can generate predictive image data corresponding to the direction in which the user moves.

또한, 예측 이미지 버퍼(218)는 사용자가 컴퓨터 화면으로 보는 칩 이미지(200)를 좌우 방향 또는 상하 방향으로 이동하는 경우를 미리 예측하여, 비가시적 이미지 버퍼(215)에 이웃하여 예측 이미지 데이터를 준비할 수 있다.The predictive image buffer 218 predicts the case where the user moves the chip image 200 viewed from the computer screen in the horizontal direction or the vertical direction and predicts the predicted image data adjacent to the invisible image buffer 215 can do.

예를 들어, 예측 이미지 버퍼(218)는 사용자가 컴퓨터 화면의 칩 이미지(200)의 이동 방향에 따라, 비가시적 이미지 우측 버퍼의 오른쪽, 비가시적 이미지 좌측 버퍼의 왼쪽, 비가시적 이미지 상단 버퍼의 위쪽, 비가시적 이미지 하단 버퍼의 아래쪽에 배치될 수 있다. 여기서, 본 명세서에서는 “버퍼”가 배치된 다는 것은 버퍼가 전체 칩 이미지 상에서 사용자가 지정한 위치에 대응하는 해쉬 테이블(230) 상의 해당 격자의 위치에 해당하는 이미지 데이터를 버퍼에 저장한다는 의미로 해석되어야 한다. For example, the predictive image buffer 218 may include a predictive image buffer 218, which may be located at the right side of the invisible image right buffer, the left side of the invisible image left buffer, the upper side of the invisible image upper buffer , It can be placed underneath the invisible image lower buffer. In this specification, the term " buffer " is interpreted to mean that the buffer stores the image data corresponding to the position of the corresponding grid on the hash table 230 corresponding to the position designated by the user on the entire chip image do.

또한, 본 명세서에서 이웃하는 영역이라는 의미는 사용자가 방향을 선택할 경우에 다음에 나타낼 이미지 데이터에 해당하는 영역을 의미한다.The term " neighboring region " in this specification means an area corresponding to image data to be displayed next when a user selects a direction.

또한, 예측 이미지 버퍼(218)의 개수는 컴퓨터 메모리 용량에 의해 결정될 수 있으며, 예컨대, 예측 이미지 버퍼(218)가 배치되는 위치는 사용자의 이동 기록 통계에 의해 결정될 수 있다. In addition, the number of prediction image buffers 218 may be determined by computer memory capacity, e.g., the location at which the prediction image buffer 218 is located may be determined by the user's movement history statistics.

본 발명의 또하나의 특징은 다중 스레드(220)를 이용하여 버퍼에서 일어나는 버퍼 읽기 프로세스와 버퍼 복사 프로세스를 병렬 처리할 수 있다는 점이다.Another aspect of the present invention is that it is possible to parallelize the buffer read process and the buffer copy process occurring in the buffer using the multithread 220. [

예를 들어, 다중 스레드(220)는 전체 칩 이미지(200) 중 사용자가 표시하고자 하는 영역의 이미지 데이터를 읽어 크기 및 위치 정보를 변환한 후, 이미지 버퍼(210)에 저장하는 프로세스를 수행할 수 있다. 이 때, 다중 스레드(220)에서 병렬로 실행되는 스레드의 총 개수는 프로세서 내에 존재하는 멀티 코어의 개수와 동일한 개수의 스레드를 생성할 수 있다.For example, the multithread 220 can process the entire chip image 200 by reading the image data of the area to be displayed by the user, converting the size and position information, and then storing the size and position information in the image buffer 210 have. At this time, the total number of threads executed in parallel in the multi-thread 220 can generate the same number of threads as the number of multi-cores existing in the processor.

버퍼 복사 프로세스(223)는 이미지 버퍼 사이의 이미지 데이터를 복사하는 프로세스이다. The buffer copy process 223 is a process of copying image data between image buffers.

예를 들어, 버퍼 복사 프로세스(223)는 컴퓨터 화면의 칩 이미지(200)가 오른쪽으로 이동하는 경우, 이미지 버퍼(110)에 저장된 이미지 데이터로서 왼쪽에 인접한 이미지 버퍼(200)에 저장된 데이터를 그대로 복사할 수 있으며, 이로 인해, 파일로부터 데이터를 읽지 않고 메모리상에 존재하는 데이터의 복사를 수행하여 처리속도가 빠를 수 있다. For example, when the chip image 200 on the computer screen moves to the right, the buffer copy process 223 copies the data stored in the image buffer 200 adjacent to the left side as image data stored in the image buffer 110 as it is Thus, the copying of the data existing in the memory can be performed without reading the data from the file, thereby speeding up the processing speed.

버퍼 읽기 프로세스(225)는 전체 칩 이미지(200)에서 해쉬 테이블(230)이 매핑하는 일부 격자에 저장된 이미지 데이터를 읽어 이미지 버퍼(210)에 저장할 수 있다. The buffer read process 225 may read the image data stored in the partial grid mapped by the hash table 230 in the entire chip image 200 and store the image data in the image buffer 210.

또한, 버퍼 읽기 프로세스(225)는 파일에서 데이터를 읽고, 해쉬 테이블(230)을 이용하여 이미지 구간을 결정하며, 이미지 축소 또는 확대 계산을 수행할 수 있다. The buffer read process 225 may also read data from the file, determine the image interval using the hash table 230, and perform image reduction or enlargement calculations.

또한 버퍼 읽기 프로세스(225)는 가장 최근에 실행된 컴퓨터 화면 칩 이미지(200)의 이동 방향에 해당하는 이미지 버퍼(210)에 대하여 가장 높은 우선권을 주어 처리할 수 있다.In addition, the buffer read process 225 can process the image buffer 210 corresponding to the moving direction of the most recently executed computer screen chip image 200 with the highest priority.

한편, 버퍼 복사 프로세스(223)와 버퍼 읽기 프로세스(225) 중 스레드로 병렬 처리하는 과정에서 버퍼 복사 프로세스(223)가 버퍼 읽기 프로세스(225) 보다 우선권을 가질 수 있는데, 다중 스레드(220)의 프로세스 우선권에 관한 설명은 도 4에서 상세히 후술하기로 한다.The buffer copy process 223 may have priority over the buffer read process 225 in the process of parallel processing by the thread among the buffer copy process 223 and the buffer read process 225. In the process of the multithread 220 The description of the priority will be described in detail later with reference to FIG.

해쉬 테이블은(230) 칩 이미지(200)의 각 격자 이미지 데이터 위치 및 크기 속성을 추출하고 이를 저장할 수 있다. 보다 구체적으로, 해쉬 테이블(230)은 전체 칩 이미지(100)의 격자 행렬값과 이미지 상의 위치 좌표값 및 파일 포인터 값 사이의 관계를 매핑할 수 있으며, 이로 인해 소프트웨어가 원하는 위치의 격자에 해당되는 이미지를 직접 찾아 접근하여 데이터 검색 속도가 향상될 수 있다.The hash table 230 may extract and store the respective grid image data location and size attributes of the chip image 200. More specifically, the hash table 230 can map the relationship between the lattice matrix values of the entire chip image 100 and the position coordinate values and file pointer values on the image, The data retrieval speed can be improved by directly accessing the image.

또한, 해쉬 테이블(230)은 이미지 버퍼(210)에 저장할 이미지 데이터를 전체 칩 이미지(200)에서 빠르게 찾아 접근할 수 있도록 정보를 제공할 수 있다.In addition, the hash table 230 can provide information so that the image data to be stored in the image buffer 210 can be quickly accessed and accessed from the entire chip image 200.

한편, 해쉬 테이블(230)은 하나의 이미지 버퍼(210)가 하나의 칩 이미지(200)의 격자 이미지 데이터와 항상 일대일 대응하지 않을 수 있으며, 예컨대 칩 이미지(200)를 컴퓨터 화면에 나타낼 때 확대하거나 축소하는 비율에 따라 일대다로 매핑 될 수 있다.Meanwhile, the hash table 230 may not correspond to the one-to-one correspondence between the one image buffer 210 and the grid image data of one chip image 200. For example, when the chip image 200 is displayed on the computer screen, Can be mapped to one-to-many according to the reduction ratio.

예컨대, 칩 이미지(200)와 이미지 버퍼(210)가 일대다로 매핑되는 경우, 이미지 상의 위치 좌표값은 변경될 수 있다.For example, when the chip image 200 and the image buffer 210 are mapped to one-to-many, the position coordinate value on the image can be changed.

또한, 이미지 버퍼(200)와 격자간의 대응관계는 이미지를 처리하는 프로세서가 담당하여 처리할 수 있으며, 예컨대 해쉬 테이블(230)은 최초에 한번만 계산하여 구출할 수 있다.Also, the correspondence between the image buffer 200 and the grid can be handled and processed by the processor that processes the image. For example, the hash table 230 can be calculated only once and then rescued.

한편, 본 발명은 여러 계층의 대용량 칩 이미지를 배경으로 전자회로를 추출하는 역공학 전용 캐드 소프트웨어가 실행되는 컴퓨터 메모리 용량이 제한되어, 칩 이미지(200) 전체를 컴퓨터 메모리에 탑재할 수 없거나, 이미지 처리 속도가 크게 저하되는 단점을 해결할 수 있다. 또한, 사용자가 사용하는 컴퓨터의 성능이 부족한 경우 및 칩 이미지(200)가 커서 이미지 처리 속도가 느려질 수 있으나, 이미지를 표시하는 기능은 정상적으로 실행될 수 있다. 또한, 본 발명은 사용자와 대화 방식으로 작동하면서 이미지를 처리하는 일반 소프트웨어에도 적용이 가능할 수 있다.In the meantime, the present invention is limited in the capacity of a computer memory in which CAD software for reverse engineering, which extracts electronic circuits from a plurality of layers of large-capacity chip images, is executed, so that the entire chip image 200 can not be mounted in a computer memory, The disadvantage that the processing speed is largely lowered can be solved. In addition, when the performance of the computer used by the user is insufficient and the chip image 200 is large, image processing speed may be slowed down, but the function of displaying an image can be normally executed. In addition, the present invention can be applied to general software that processes images in an interactive manner with a user.

도 4는 다중 스레드의 프로세스 우선권에 관한 순서도이다.4 is a flow diagram of process priority of a multi-thread.

먼저, 다중 스레드(220)는 버퍼 복사 프로세서(223) 또는 버퍼 읽기 프로세서(225)가 동시에 수행되고 있는지 확인한다. (단계 S300)First, the multi-thread 220 checks whether the buffer copy processor 223 or the buffer read processor 225 is executing at the same time. (Step S300)

만약, 동시에 수행되고 있다면, 버퍼 복사 프로세서(223)를 먼저 실행한다. (단계 S310)If it is concurrently executing, the buffer copy processor 223 is executed first. (Step S310)

예컨대, 버퍼 복사 프로세스(223)는 이미지 데이터를 복사하는 태스크 처리 속도가 빠르기 때문에 실행 우선권이 높을 수 있다. For example, the buffer copy process 223 may have a high execution priority because the task processing speed of copying image data is fast.

버퍼 복사 프로세서(223)를 실행한 후, 버퍼 읽기 프로세서(225)를 실행한다. (단계 S320)After executing the buffer copy processor 223, the buffer read processor 225 is executed. (Step S320)

예컨대, 버퍼 읽기 프로세스(225)의 새로운 이미지 데이터를 생성하는 태스크는 처리 속도가 느리기 때문에 우선권이 낮을 수 있다. For example, the task of generating new image data in the buffer read process 225 may be low in priority because of the slow processing speed.

이와 같이, 버퍼 복사 프로세스(223)와 버퍼 읽기 프로세스(225) 중 스레드로 병렬 처리하는 과정에서 버퍼 복사 프로세스(223)가 버퍼 읽기 프로세스(225) 보다 우선권을 가질 수 있다. As described above, the buffer copy process 223 may have priority over the buffer read process 225 in the process of parallel processing by the thread among the buffer copy process 223 and the buffer read process 225.

한편, 버퍼 복사 프로세서(223)만 실행되었을 경우, 우선권에 상관없이, 버퍼 복사 프로세스(223)를 실행한다.또한, 버퍼 읽기 프로세서(225)만 실행되었을 경우, 우선권에 상관없이, 버퍼 읽기 프로세스(225)를 실행한다. (단계 S330)On the other hand, when only the buffer copy processor 223 is executed, the buffer copy process 223 is executed irrespective of the priority. When only the buffer read processor 225 is executed, 225). (Step S330)

도 5는 본 발명의 실시예에 따른 다중 스레드를 이용한 대용량 이미지 표시 가속화 방법에 대한 순서도이다.5 is a flowchart illustrating a method of accelerating a large-capacity image display using a multithread according to an exemplary embodiment of the present invention.

먼저, 컴퓨터의 화면의 해상도 크기를 기본 단위로 하여, 전체 칩 이미지(200)를 행과 열로 구성된 격자구조로 나누고, 칩 이미지 상에서 각 격자의 위치 정보를 해쉬 테이블(230)에 매핑시켜 저장시킬 수 있다. (단계 S400) 이 경우, 해쉬 테이블에는 전체 칩 이미지(200)의 격자 행렬값과 이미지 상의 위치 좌표값 및 파일 포인터 값 사이의 관계가 매핑되어 저장될 수 있다. First, the entire chip image 200 is divided into a grid structure composed of rows and columns, and the position information of each grid on the chip image is mapped to the hash table 230 and stored have. (Step S400) In this case, the relation between the lattice matrix value of the entire chip image 200, the position coordinate value on the image, and the file pointer value may be mapped and stored in the hash table.

종래 기술에서는 칩 이미지(200)가 파일로 저장되어 있어, 임의의 격자에 해당하는 이미지 데이터를 읽으려면 처음부터 스캔하여 찾아야 하였다. 그러나, 상술한 해쉬 테이블을 이용할 경우에는 해쉬 테이블(230)을 활용하여 격자에 해당하는 이미지 데이터에 직접 접근하여 독립적으로 읽을 수 있으며, 이로 인해 데이터를 검색하고 읽는 속도가 증가할 수 있다.In the prior art, the chip image 200 is stored as a file. In order to read image data corresponding to an arbitrary grid, the chip image 200 must be scanned from the beginning. However, when the hash table described above is used, the hash table 230 can be used to directly access the image data corresponding to the grid and read it independently, thereby increasing the speed of retrieving and reading data.

한편, 제어부(110)는 해쉬 테이블에 기초하여 전체 칩 이미지(200) 중 사용자가 화면에 나타내고자 하는 부분에 해당하는 이미지 데이터를 읽어 크기 및 위치 정보를 변환한 후, 이미지 버퍼(210)에 저장할 수 있다. (단계 S410)On the other hand, the controller 110 reads image data corresponding to a portion of the entire chip image 200 to be displayed on the screen based on the hash table, converts the size and position information, and stores the size and position information in the image buffer 210 . (Step S410)

이 경우, 크기 및 위치는 사용자가 지정하는 화면 배율 및 위치에 따라 결정된다. 사용자는 방향키 등을 통하여 방향을 지정하여 현재 지정된 위치에서 다른 위치로 이동할 수 있다. 이미지 버퍼(210)는, 가시적 이미지 버퍼, 비가시적 이미지 버퍼 및 예측 이미지 버퍼로 구분될 수 있으며, 사용자에 의하여 위치가 변한 경우에는 다시 변한 위치에 기초하여 이미지 버퍼(210)에 이미지 데이터를 업데이트 할 수 있다. (단계 S420)In this case, the size and position are determined according to the screen magnification and position designated by the user. The user can specify a direction through a direction key or the like to move from a currently specified position to another position. The image buffer 210 may be divided into a visible image buffer, an invisible image buffer, and a predicted image buffer. If the position is changed by the user, the image buffer 210 may update the image data based on the changed position . (Step S420)

이미지 버퍼(210)는, 컴퓨터 화면에 나타나는 이미지 데이터는 가시적 이미지 버퍼(213)에 저장하고, 상하좌우에 인접한 이미지 데이터는 비가시적 이미지 버퍼(215)에 저장된다.The image buffer 210 stores the image data appearing on the computer screen in the visible image buffer 213, and the image data adjacent to the upper, lower, left, and right sides are stored in the invisible image buffer 215.

이 때, 사용자의 화면 이동 방향의 통계 기록에 따라 사용자의 이동 방향을 예측하여 추가적으로 예측 이미지 버퍼를 상하좌우 방향으로 할당할 수 있다. (단계 S430)At this time, the moving direction of the user may be predicted according to the statistical recording of the screen moving direction of the user, and the prediction image buffer may be further allocated in the up, down, left, and right directions. (Step S430)

따라서, 본 발명에 따르면, 해쉬 테이블(230)을 사용하여, 소프트웨어가 원하는 위치의 격자에 해당되는 이미지를 직접 찾아 접근하여 데이터 검색 속도가 향상될 수 있으며, 이미지 버퍼(210)에 저장할 이미지 데이터를 전체 칩 이미지에서 빠르게 찾아 접근할 수 있도록 정보를 제공할 수 있다.Therefore, according to the present invention, by using the hash table 230, the data retrieval speed can be improved by the software directly searching for and accessing the image corresponding to the grid at the desired position, and the image data to be stored in the image buffer 210 Information can be provided to quickly locate and access the entire chip image.

한편, 본 발명의 상세한 설명 및 첨부도면에서는 구체적인 실시예에 관해 설명하였으나, 본 발명은 개시된 실시예에 한정되지 않고 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러가지 치환, 변형 및 변경이 가능하다. 따라서, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들을 포함하는 것으로 해석되어야 할 것이다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, Various substitutions, modifications, and variations are possible without departing from the scope of the invention. Accordingly, the scope of the present invention should be construed as being limited to the embodiments described, and it is intended that the scope of the present invention encompasses not only the following claims, but also equivalents thereto.

200: 칩 이미지
210: 이미지 버퍼
213: 가시적 이미지 버퍼
215: 비가시적 이미지 버퍼
220: 다중 스레드
223: 버퍼 복사 프로세스
225: 버퍼 읽기 프로세스
230: 해쉬 테이블
200: chip image
210: image buffer
213: Visible image buffer
215: Invisible image buffer
220: Multithreaded
223: Buffer copy process
225: Buffer Reading Process
230: Hash table

Claims (14)

칩 이미지를 저장하는 칩 이미지 저장부;
상기 칩 이미지를 화면의 해상도 크기를 기준으로 격자구조로 나누었을 때의 상기 칩 이미지 상에서의 위치를 행렬 번호 및 파일 포인터로 나타내는 해쉬 테이블 및 상기 칩 이미지 중 사용자가 상기 화면에 표시하고자 하는 부분의 이미지 데이터를 저장하는 가시적 이미지 버퍼를 포함하는 메모리; 및
상기 칩 이미지 중 사용자가 화면에 표시하고자 하는 부분의 위치를 상기 해쉬 테이블에 기초하여 결정하는 표시 좌표 결정 모듈, 및 상기 표시 좌표 결정 모듈에서 결정한 화면에 표시하고자 하는 부분의 위치에 해당하는 이미지 데이터를 상기 가시적 이미지 버퍼에 저장하도록 제어하는 버퍼 프로세스 제어 모듈을 포함하는 제어부를 포함하는 것을 특징으로 하는,
다중 스레드를 이용한 대용량 이미지 표시 가속화 시스템.
A chip image storage unit for storing a chip image;
A hash table in which a position on the chip image when the chip image is divided into a grid structure based on a resolution size of a screen is represented by a matrix number and a file pointer, and a hash table in which a user wants to display an image A memory including a visible image buffer for storing data; And
A display coordinate determination module that determines a position of a portion of the chip image that the user wants to display on the screen based on the hash table and a display coordinate determination module that determines image data corresponding to a position of a portion to be displayed on the screen determined by the display coordinate determination module And a buffer process control module for controlling the image buffer to store the image data in the visible image buffer.
Large Image Display Acceleration System using Multi - thread.
제 1 항에 있어서,
상기 메모리는 상기 가시적 이미지 버퍼와 이웃하는 영역의 이미지 데이터를 저장하는 비가시적 이미지 버퍼 및 상기 비가시적 이미지 버퍼에 이웃하는 영역의 이미지 데이터를 저장하는 예측 이미지 버퍼를 더 포함하며,
상기 제어부는 상기 사용자의 화면 이동 방향의 통계 기록에 따라 사용자가 이동할 방향을 예측하는 사용자 이동 예측 모듈을 더 포함하며, 상기 가시적 이미지 버퍼와 이웃하여 배치되는 영역의 이미지 데이터를 상기 비가시적 이미지 버퍼에 저장하며, 상기 비가시적 이미지 버퍼와 상기 이동할 방향으로 이웃하여 배치되는 이미지 데이터를 상기 예측 이미지 버퍼에 저장하도록 제어하는,
다중 스레드를 이용한 대용량 이미지 표시 가속화 시스템.
The method according to claim 1,
Wherein the memory further comprises an invisible image buffer storing image data of an area neighboring the visible image buffer and a predicted image buffer storing image data of an area neighboring the invisible image buffer,
Wherein the control unit further includes a user movement prediction module for predicting a direction in which the user moves in accordance with the statistical recording of the screen movement direction of the user, wherein the control unit controls the invisible image buffer to store the image data of the area neighboring the visible image buffer And stores the image data arranged in the invisible image buffer and the moving direction in the predictive image buffer,
Large Image Display Acceleration System using Multi - thread.
제 2 항에 있어서,
상기 제어부는 다중 스레드를 통하여 대용량 이미지 표시 가속화 시스템이 병렬 처리를 수행하도록 제어하며,
상기 다중 스레드는 상기 비가시적 이미지 버퍼의 이미지 데이터를 상기 가시적 이미지 버퍼에 복사하거나, 상기 예측 이미지 버퍼의 이미지 데이터를 상기 비가시적 이미지 버퍼에 복사하거나 또는 상기 가시적 이미지 버퍼의 이미지 데이터를 상기 비가시적 이미지 버퍼에 복사하는 버퍼 복사 프로세스; 및
상기 해쉬 테이블에 기초하여 결정된 위치의 이미지 데이터를 읽고 상기 가시적 이미지 버퍼, 상기 비가시적 이미지 버퍼 또는 상기 예측 이미지 버퍼 중 어느 하나에 저장하는 버퍼 읽기 프로세스를 포함하는,
다중 스레드를 이용한 대용량 이미지 표시 가속화 시스템.
3. The method of claim 2,
The control unit controls the large-capacity image display acceleration system to perform parallel processing through the multithread,
Wherein the multithread is configured to copy the image data of the invisible image buffer to the visible image buffer, copy the image data of the predictive image buffer to the invisible image buffer, or copy the image data of the invisible image buffer to the non- Buffer copy process to copy to buffer; And
And a buffer reading process of reading image data at a position determined based on the hash table and storing the image data in either the visible image buffer, the invisible image buffer, or the predicted image buffer.
Large Image Display Acceleration System using Multi - thread.
제 3 항에 있어서,
상기 다중 스레드는, 상기 버퍼 읽기 프로세스 보다 상기 버퍼 복사 프로세스가 우선권을 갖도록 구성되는,
다중 스레드를 이용한 대용량 이미지 표시 가속화 시스템.
The method of claim 3,
Wherein the multithread is configured such that the buffer copy process has priority over the buffer read process.
Large Image Display Acceleration System using Multi - thread.
제 3 항에 있어서,
상기 버퍼 읽기 프로세스는, 상기 가시적 이미지 버퍼, 상기 비가시적 이미지 버퍼 또는 상기 예측 이미지 버퍼에 가장 최근에 실행된 사용자의 이동 방향으로 이웃하는 영역에 해당하는 이미지 데이터를 읽을 때에 상기 다중 스레드에서 우선권을 갖도록 구성되는,
다중 스레드를 이용한 대용량 이미지 표시 가속화 시스템.
The method of claim 3,
Wherein the buffer read process is adapted to have priority in the multithread when reading image data corresponding to an area neighboring the moving direction of the most recently executed user in the visible image buffer, the invisible image buffer, or the predictive image buffer Configured,
Large Image Display Acceleration System using Multi - thread.
제 3 항에 있어서,
상기 다중 스레드에서 병렬로 실행되는 스레드의 전체 개수는 프로세서에서 연산이 가능한 코어의 개수에 의해 결정되도록 구성되는,
다중 스레드를 이용한 대용량 이미지 표시 가속화 시스템.
The method of claim 3,
Wherein the total number of threads executing in parallel in the multithreaded processor is configured to be determined by the number of cores that are operable in the processor,
Large Image Display Acceleration System using Multi - thread.
제 1 항에 있어서,
상기 칩 이미지 중 표시할 영역의 확대 또는 축소 비율에 따라 매핑되는 행렬 번호의 개수가 달라지는,
다중 스레드를 이용한 대용량 이미지 표시 가속화 시스템.
The method according to claim 1,
Wherein a number of matrix numbers mapped according to an enlargement or reduction ratio of an area to be displayed among the chip images is varied,
Large Image Display Acceleration System using Multi - thread.
칩 이미지를 화면의 해상도 크기를 기준으로 격자구조로 나누었을 때의 상기 칩 이미지 상에서의 위치를 행렬 번호 및 파일 포인터를 포함하는 해쉬 테이블로 저장하는 단계;
상기 칩 이미지 중 사용자가 화면에 표시하고자 하는 부분의 위치를 상기 해쉬 테이블에 기초하여 결정하는 단계;
상기 결정하는 단계에서 결정된 화면에 표시하고자 하는 부분의 위치에 해당하는 이미지 데이터를 가시적 이미지 버퍼에 저장하는 단계; 및
상기 가시적 이미지 버퍼에 저장된 이미지를 표시하는 단계를 포함하는,
다중 스레드를 이용한 대용량 이미지 표시 가속화 방법.
Storing a position on the chip image as a hash table including a matrix number and a file pointer when a chip image is divided into a lattice structure based on a resolution size of a screen;
Determining a position of a portion of the chip image that the user wants to display on the screen based on the hash table;
Storing image data corresponding to a position of a portion to be displayed on a screen determined in the determining step in a visible image buffer; And
And displaying an image stored in the visible image buffer.
A method for accelerating large image display using multithreading.
제 8 항에 있어서,
상기 가시적 이미지 버퍼와 이웃하는 영역의 이미지 데이터를 비가시적 이미지 버퍼에 저장하는 단계;
상기 사용자의 화면 이동 방향의 통계 기록에 따라 사용자가 이동할 방향을 예측하는 단계; 및
상기 비가시적 이미지 버퍼에 상기 예측하는 단계에서 예측된 이동하는 방향으로 이웃하는 영역의 이미지 데이터를 예측 이미지 버퍼에 저장하는 단계를 더 포함하는,
다중 스레드를 이용한 대용량 이미지 표시 가속화 방법.
9. The method of claim 8,
Storing image data of an area neighboring the visible image buffer in an invisible image buffer;
Estimating a direction in which the user moves according to the statistical recording of the screen movement direction of the user; And
And storing the image data of the area neighboring in the moving direction predicted in the predicting step in the invisible image buffer in the predictive image buffer.
A method for accelerating large image display using multithreading.
제 8 항에 있어서,
상기 비가시적 이미지 버퍼의 이미지 데이터를 상기 가시적 이미지 버퍼에 복사하거나, 상기 예측 이미지 버퍼의 이미지 데이터를 상기 비가시적 이미지 버퍼에 복사하거나 또는 상기 가시적 이미지 버퍼의 이미지 데이터를 상기 비가시적 이미지 버퍼에 복사하는 버퍼 복사 단계; 및
상기 해쉬 테이블에 기초하여 결정된 위치의 이미지 데이터를 읽고 상기 가시적 이미지 버퍼, 상기 비가시적 이미지 버퍼 또는 상기 예측 이미지 버퍼 중 어느 하나에 저장하는 버퍼 읽기 단계를 더 포함하며,
상기 버퍼 복사 단계 및 상기 버퍼 읽기 단계는 다중 스레드를 통하여 병렬적으로 처리되는,
다중 스레드를 이용한 대용량 이미지 표시 가속화 방법.
9. The method of claim 8,
Copying the image data of the invisible image buffer to the invisible image buffer, copying the image data of the predictive image buffer to the invisible image buffer, or copying the image data of the invisible image buffer to the invisible image buffer Buffer copying step; And
Further comprising a buffer reading step of reading image data at a position determined based on the hash table and storing the image data in either the visible image buffer, the invisible image buffer, or the predicted image buffer,
Wherein the buffer copy step and the buffer read step are performed in parallel through multiple threads,
A method for accelerating large image display using multithreading.
제 10 항에 있어서,
상기 버퍼 복사 단계는 상기 버퍼 읽기 단계보다 상기 다중 스레드에서 우선권을 갖는,
다중 스레드를 이용한 대용량 이미지 표시 가속화 방법.
11. The method of claim 10,
Wherein the buffer copying step has a priority in the multi-
A method for accelerating large image display using multithreading.
제 10 항에 있어서,
상기 버퍼 읽기 단계는, 상기 가시적 이미지 버퍼, 상기 비가시적 이미지 버퍼 또는 상기 예측 이미지 버퍼에 가장 최근에 실행된 사용자의 이동 방향으로 이웃하는 영역에 해당하는 이미지 데이터를 읽을 때에 상기 다중 스레드에서 우선권을 갖도록 구성되는,
다중 스레드를 이용한 대용량 이미지 표시 가속화 방법.
11. The method of claim 10,
Wherein the buffer reading step includes a step of reading the image data corresponding to the area neighboring the moving direction of the most recently executed user in the visible image buffer, the invisible image buffer, or the predictive image buffer so as to have priority in the multithread Configured,
A method for accelerating large image display using multithreading.
제 10 항에 있어서,
상기 다중 스레드에서 스레드의 전체 개수는 프로세서에서 연산이 가능한 코어의 개수에 의해 결정되는,
다중 스레드를 이용한 대용량 이미지 표시 가속화 방법.
11. The method of claim 10,
Wherein the total number of threads in the multithread is determined by the number of cores available for operation in the processor,
A method for accelerating large image display using multithreading.
제 8 항에 있어서,
상기 해쉬 테이블은, 상기 칩 이미지 중 표시할 영역의 확대 또는 축소 비율에 따라 매핑되는 행렬 번호의 개수가 달라지는,
다중 스레드를 이용한 대용량 이미지 표시 가속화 방법.

9. The method of claim 8,
Wherein the hash table has a number of matrix numbers mapped according to an enlargement or reduction ratio of an area to be displayed among the chip images,
A method for accelerating large image display using multithreading.

KR1020170097297A 2017-07-31 2017-07-31 Multi-thread Based Big Image Display Acceleration Method KR101964973B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170097297A KR101964973B1 (en) 2017-07-31 2017-07-31 Multi-thread Based Big Image Display Acceleration Method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170097297A KR101964973B1 (en) 2017-07-31 2017-07-31 Multi-thread Based Big Image Display Acceleration Method

Publications (2)

Publication Number Publication Date
KR20190013151A true KR20190013151A (en) 2019-02-11
KR101964973B1 KR101964973B1 (en) 2019-08-07

Family

ID=65370528

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170097297A KR101964973B1 (en) 2017-07-31 2017-07-31 Multi-thread Based Big Image Display Acceleration Method

Country Status (1)

Country Link
KR (1) KR101964973B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102174429B1 (en) 2020-01-09 2020-11-04 조성희 Turning-hottapping gate valve
KR102571702B1 (en) * 2022-08-31 2023-08-29 한전케이피에스 주식회사 Apparatus and method for analysis image

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11174952A (en) * 1997-12-11 1999-07-02 Fumio Mizoguchi Reading method for map data in lookahead and map scrolling method
JP2009219148A (en) * 1999-04-29 2009-09-24 Mitsubishi Electric Research Laboratories Inc Video display system and method for double-buffering image data for displaying it on television display screen
JP2013157759A (en) * 2012-01-30 2013-08-15 Nippon Hoso Kyokai <Nhk> Video distribution device, terminal device and program thereof, and video distribution system
JP2014106715A (en) * 2012-11-27 2014-06-09 Fujitsu Ltd Control program of processing unit, control method of processing unit, and processing unit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11174952A (en) * 1997-12-11 1999-07-02 Fumio Mizoguchi Reading method for map data in lookahead and map scrolling method
JP2009219148A (en) * 1999-04-29 2009-09-24 Mitsubishi Electric Research Laboratories Inc Video display system and method for double-buffering image data for displaying it on television display screen
JP2013157759A (en) * 2012-01-30 2013-08-15 Nippon Hoso Kyokai <Nhk> Video distribution device, terminal device and program thereof, and video distribution system
JP2014106715A (en) * 2012-11-27 2014-06-09 Fujitsu Ltd Control program of processing unit, control method of processing unit, and processing unit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102174429B1 (en) 2020-01-09 2020-11-04 조성희 Turning-hottapping gate valve
KR102571702B1 (en) * 2022-08-31 2023-08-29 한전케이피에스 주식회사 Apparatus and method for analysis image

Also Published As

Publication number Publication date
KR101964973B1 (en) 2019-08-07

Similar Documents

Publication Publication Date Title
US9373308B2 (en) Multi-viewport display of multi-resolution hierarchical image
CN102750664B (en) Based on the queuing to texture requests of register
EP0871933B1 (en) Method and apparatus to display objects using windows
US9053529B2 (en) System and method for capturing digital images
US9761204B1 (en) System and method for accelerated graphic rendering of design layout having variously sized geometric objects
US20140368547A1 (en) Controlling Element Layout on a Display
US11170555B2 (en) Graphics processing systems
JP5368254B2 (en) Image file generation device, image processing device, image file generation method, image processing method, and data structure of image file
US20060230362A1 (en) Information management program product allowing enhanced searchability
JP2007025958A (en) Preview display device, preview display method and preview display program
WO2011114114A1 (en) Memory management system and method
KR101964973B1 (en) Multi-thread Based Big Image Display Acceleration Method
CN109410118B (en) Rapid loading and displaying method for massive point cloud data
JP2008096725A (en) Display control unit, display control method, and program
JP2013167797A (en) Image forming device and control method thereof
US20120011421A1 (en) Fail analysis system and method for semiconductor device
KR100247720B1 (en) Method and system for generating a global hit test data structure using scan line compression of windows in a graphical user interface
JPH10293759A (en) Document managing device
JP6233034B2 (en) Substrate analysis program, information processing apparatus, and substrate analysis method
CN101620743B (en) Graphics processing with hidden surface removal
US11487134B2 (en) Display processing device, and display processing method
EP3321793A1 (en) Method and system for real-time slide displaying of scanned image
US20150123981A1 (en) Image data forming apparatus and control method therefor
TWI246052B (en) Large graphic data high-speed describing method
US20050052459A1 (en) Method and system for rendering macropixels in a graphical image

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant