KR102009469B1 - Apparatus and method for processing data - Google Patents

Apparatus and method for processing data Download PDF

Info

Publication number
KR102009469B1
KR102009469B1 KR1020170093523A KR20170093523A KR102009469B1 KR 102009469 B1 KR102009469 B1 KR 102009469B1 KR 1020170093523 A KR1020170093523 A KR 1020170093523A KR 20170093523 A KR20170093523 A KR 20170093523A KR 102009469 B1 KR102009469 B1 KR 102009469B1
Authority
KR
South Korea
Prior art keywords
data
linked list
memory structure
data processing
generating
Prior art date
Application number
KR1020170093523A
Other languages
Korean (ko)
Other versions
KR20190011056A (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 KR1020170093523A priority Critical patent/KR102009469B1/en
Publication of KR20190011056A publication Critical patent/KR20190011056A/en
Application granted granted Critical
Publication of KR102009469B1 publication Critical patent/KR102009469B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Abstract

데이터 처리 장치 및 방법이 개시된다. 본 발명의 일실시예에 따른 데이터 처리 방법은 데이터 처리 장치의 데이터 처리 방법에 있어서, USB 인터페이스를 통해 연결된 디바이스를 확인하고, 상기 디바이스로부터 수신한 데이터를 저장하기 위한 메모리 구조를 생성하는 단계; 태스크를 수행하기 위한 명령(CMD)을 생성하여, 상기 명령(CMD)에 상응하는 메모리 영역을 상기 메모리 구조에 할당하는 단계; 및 상기 디바이스로부터 상기 명령(CMD)에 상응하는 데이터를 수신하고, 상기 데이터를 상기 메모리 구조에 버퍼링하여 처리하는 단계를 포함한다.A data processing apparatus and method are disclosed. In accordance with another aspect of the present invention, a data processing method includes: identifying a device connected through a USB interface, and generating a memory structure for storing data received from the device; Generating a command CMD for performing a task and allocating a memory area corresponding to the command CMD to the memory structure; And receiving data corresponding to the command CMD from the device, and buffering the data in the memory structure for processing.

Figure R1020170093523
Figure R1020170093523

Description

데이터 처리 장치 및 방법 {APPARATUS AND METHOD FOR PROCESSING DATA}Data processing unit and method {APPARATUS AND METHOD FOR PROCESSING DATA}

본 발명은 데이터 처리 기술에 관한 것으로, 보다 상세하게는 실시간 대용량 데이터를 처리하는 기술에 관한 것이다.The present invention relates to data processing technology, and more particularly, to a technology for processing real-time mass data.

현재 개발중인 홍채인식제품들은 점점 소형화되고 있고, 1.1Cm 인 홍채를 고해상도로 캡쳐(capture)하기 위한 기술이 개발되고 있다. The iris recognition products currently being developed are becoming smaller and smaller, and a technology for capturing 1.1 cm iris in high resolution is being developed.

이러한 홍채인식제품은 고해상도의 홍채이미지를 캡쳐(capture)할 수 있어야 하고, 대중화를 위해서 가격이 저렴해야 한다. 결국, 선명하고 정확한 고해상도 홍채이미지를 캡쳐(capture) 하기 위해서는 광학 및 광로 설계, 그리고 하드웨어(Hardware) 설계가 중요하다.Such iris recognition products should be able to capture high resolution iris images and should be inexpensive for popularization. As a result, optical and optical path design and hardware design are important for capturing clear and accurate high resolution iris images.

그러나, 소형화된 홍채인식제품이 35~100Cm 거리에서 1.1Cm의 작은 홍채를 240화소 이상의 고해상도로 캡쳐(Capture)할 수 있으면서, 홍채의 인식률을 높이기 위해서는 광학부품의 사양 조절에 한계가 있다. However, while miniaturized iris recognition products can capture a small iris of 1.1 cm at a high resolution of 240 pixels or more at a distance of 35 to 100 cm, there are limitations in controlling the specification of the optical component in order to increase the recognition rate of the iris.

이러한 한계를 극복하기 위해서는 이미지센서의 해상도를 높여 렌즈와 같은 광학부품의 한계를 극복하는 방법이 있다. 그러나, 이미지 센서의 해상도를 높이는 방법은 이미지 데이터 양이 2에 2승씩 커진다는 문제와 IR-LED 빛의 세기를 체적당 2에 3승씩 늘려야 하는 문제가 있다.In order to overcome these limitations, there is a method of overcoming the limitations of optical components such as lenses by increasing the resolution of the image sensor. However, the method of increasing the resolution of an image sensor has a problem that the amount of image data increases by 2 powers of 2 and the problem of increasing the intensity of IR-LED light by 2 powers of 3 per volume.

최근 새로운 렌즈연마제작기법과 설계방식으로 광학부품(렌즈)의 한계가 극복되어 35Cm 거리에서 11.6° 렌즈와 1.3M(메가픽셀) 이미지센서를 사용한 TTL=15mm까지 설계가 가능한 카메라 모듈로 홍채를 200화소 이상 촬영할 수 있게 되었다. 나아가, 현재 시장은 모바일(mobile)에 적용 가능한 TTL=4.55mm와 250화소 홍채이미지 해상도를 요구하고 있다.Recently, the new lens polishing method and design method overcome the limitations of optical parts (lenses), so the camera module can be designed up to TTL = 15mm using a 11.6 ° lens and 1.3M (megapixel) image sensor at a distance of 35 cm. You can shoot more than a pixel. Furthermore, the current market demands TTL = 4.55mm and 250 pixel iris image resolution applicable to mobile.

따라서, 렌즈의 한계를 극복하는 것보다는 이미지센서의 해상도를 높이는 것이 바람직하다. 이 때, 이미지센서의 해상도를 높일 경우 발생되는 IR-LED의 비용 문제는 백색LED처럼 수요가 늘어나면 가격도 싸질 것으로 기대된다.Therefore, it is desirable to increase the resolution of the image sensor rather than overcome the limitations of the lens. At this time, the cost problem of IR-LED caused by increasing the resolution of the image sensor is expected to be cheaper if demand increases like white LED.

홍채인식 기술은 생체인식방법들 중에서 가장 정확하고, 위조 또는 변조가 불가능하다. 왜냐하면, 사용자의 홍채는 변하지 않으며, 같은 홍채의 모양이 존재할 확률이 매우 적기 때문이다. 그러나, 이러한 불변성을 지닌 홍채 관련 데이터가 해킹 등으로 유출되면, 개인이나 사회적으로 재앙이 발생할 수도 있다.Iris recognition technology is the most accurate of the biometric methods and is not forgery or modulation. This is because the user's iris does not change, and the likelihood of the same iris shape is very small. However, if the invariant iris-related data is leaked due to hacking or the like, disasters may occur both personally and socially.

특히, 고해상도의 홍채이미지를 전송하게 되면서 홍채이미지의 데이터 보안과 손실 위험도 그만큼 커지게 되었다.In particular, the transmission of high-resolution iris images increases the data security and risk of loss of iris images.

따라서, 본 발명에서는 3M(메가픽셀) 이상의 이미지센서 사용으로 인해 발생되는 실시간 대용량 이미지 데이터 처리 문제를 해결하는 방법에 관하여 제안한다.Accordingly, the present invention proposes a method for solving the problem of real-time large-scale image data processing caused by the use of an image sensor of 3M (megapixel) or more.

한편, 한국공개특허 제10-2017-0019239호“통신 중단시 데이터 손실을 방지하도록 동작하는 스토리지 장치” 는 호스트에 의해 리셋되기 전에 버퍼에 저장된 데이터를 보존하여, 데이터 손실을 방지하는 스토리지 장치에 관하여 개시하고 있다.On the other hand, Korean Patent Application Publication No. 10-2017-0019239 "Storage device that operates to prevent data loss in case of communication interruption" relates to a storage device that preserves data stored in a buffer before being reset by the host, thereby preventing data loss. It is starting.

본 발명은 실시간으로 전송되는 대용량 데이터의 처리 성능을 향상시키는 것을 목적으로 한다.An object of the present invention is to improve the processing performance of a large amount of data transmitted in real time.

또한, 본 발명은 대용량 데이터의 처리 과정 중에 발생하는 데이터 손실을 방지하는 것을 목적으로 한다.In addition, an object of the present invention is to prevent data loss that occurs during the processing of large amounts of data.

또한, 본 발명은 USB 프로토콜에서 대용량 데이터 처리에 대한 메모리 관리 기능을 제공하는 것을 목적으로 한다.It is also an object of the present invention to provide a memory management function for processing large data in the USB protocol.

또한, 본 발명은 이미지 센서를 이용한 홍채인식에 있어서 데이터 처리 성능 향상과 데이터 손실을 방지하는 것을 목적으로 한다.In addition, an object of the present invention is to improve data processing performance and prevent data loss in iris recognition using an image sensor.

상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 데이터 처리 방법은 데이터 처리 장치의 데이터 처리 방법에 있어서, USB 인터페이스를 통해 연결된 디바이스를 확인하고, 상기 디바이스로부터 수신한 데이터를 저장하기 위한 메모리 구조를 생성하는 단계; 태스크를 수행하기 위한 명령(CMD)을 생성하여, 상기 명령(CMD)에 상응하는 메모리 영역을 상기 메모리 구조에 할당하는 단계 및 상기 디바이스로부터 상기 명령(CMD)에 상응하는 데이터를 수신하고, 상기 데이터를 상기 메모리 구조에 버퍼링 하여 처리하는 단계를 포함한다.Data processing method according to an embodiment of the present invention for achieving the above object is a data processing method of the data processing apparatus, a memory for identifying a device connected via a USB interface, and stores the data received from the device Creating a structure; Generating a command CMD to perform a task, allocating a memory region corresponding to the command CMD to the memory structure; receiving data corresponding to the command CMD from the device; Buffering and processing the memory structure.

이 때, 상기 생성하는 단계는 이중 연결 리스트(Doubly Linked List)의 메모리 구조를 생성할 수 있다.In this case, the generating may generate a memory structure of a double linked list.

이 때, 상기 생성하는 단계는 상기 이중 연결 리스트에 상기 명령(CMD)을 할당하기 위한 엔트리 리스트(Entry List)를 생성할 수 있다.In this case, the generating may generate an entry list for allocating the command CMD to the dual linked list.

이 때, 상기 이중 연결 리스트는 복수개의 엔트리 리스트들의 테일 포인트와 헤드 포인트가 서로 연결되어 구성될 수 있다.In this case, the dual linked list may be configured by connecting tail points and head points of a plurality of entry lists to each other.

이 때, 상기 엔트리 리스트는 링버퍼의 구조에 상응할 수 있다.At this time, the entry list may correspond to the structure of the ring buffer.

이 때, 상기 링버퍼는 WDF(Window Driver Frameworks)에서 제공하는 페이지드(paged) 메모리에 상응하며, MDL(Memory Descriptor List) 구조체로 관리될 수 있다.In this case, the ring buffer corresponds to a paged memory provided by Window Driver Frameworks (WDF), and may be managed as a memory descriptor list (MDL) structure.

이 때, 상기 생성하는 단계는 커널 영역에 상기 이중 연결 리스트의 메모리 구조를 생성하고, 유저 영역에 상기 이중 연결 리스트의 메모리 구조를 맵핑할 수 있다.In this case, the generating may generate a memory structure of the dual linked list in a kernel region and map the memory structure of the dual linked list in a user region.

이 때, 상기 생성하는 단계는 상기 유저 영역에서 상기 디바이스에 관한 정보를 확인하여, 상기 디바이스가 연결된 개수에 상응하는 프로세스 쓰레드를 생성할 수 있다.In this case, the generating may check the information about the device in the user area, and may generate a process thread corresponding to the number of connected devices.

이 때, 상기 할당하는 단계는 상기 유저 영역에서 생성된 명령(CMD)이 기생성된 명령(CMD)인지 판단하여 새로운 명령(New CMD)인 경우, 상기 커널 영역의 이중 연결 리스트의 메모리 구조에 상기 새로운 명령(New CMD)에 상응하는 엔트리 리스트를 생성할 수 있다.In this case, the allocating step determines whether the command CMD generated in the user area is a pre-generated command CMD, and if the command is a new command New CMD, the memory structure of the dual linked list of the kernel area. It is possible to create an entry list corresponding to a new command (New CMD).

이 때, 상기 처리하는 단계는 상기 디바이스로부터 획득한 데이터를 상기 유저 영역에 맵핑된 이중 연결 리스트의 링버퍼에 순차적으로 저장하여 버퍼링 할 수 있다.In this case, the processing may sequentially buffer the data obtained from the device in a ring buffer of a dual linked list mapped to the user region.

이 때, 상기 처리하는 단계는 상기 이중 연결 리스트의 링버퍼에 순차적으로 저장된 데이터를 순차적으로 읽어와서 버퍼링 할 수 있다.In this case, the processing may sequentially read and buffer data sequentially stored in the ring buffer of the dual linked list.

이 때, 상기 처리하는 단계는 상기 링버퍼의 헤드 포인트(Head Point)와 테일 포인트(Tail Point)의 값 차이에 기반하여 데이터 처리를 종료할 수 있다.In this case, the processing may end the data processing based on the difference between the head point and the tail point of the ring buffer.

이 때, 상기 처리하는 단계는 상기 이중 연결 리스트의 헤드 포인트(Head Point)와 테일 포인트(Tail Point)의 값의 차이가 '0'이 될 때까지 상기 링버퍼에 저장된 데이터를 순차적으로 읽어와서 버퍼링 할 수 있다.In this case, the processing may include sequentially reading and buffering the data stored in the ring buffer until the difference between the values of the head point and tail point of the dual linked list becomes '0'. can do.

또한, 상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 데이터 처리 장치는 USB 인터페이스를 통해 연결된 디바이스를 확인하고, 상기 디바이스로부터 수신한 데이터를 저장하기 위한 명령(CMD)에 상응하는 메모리 영역이 할당된 메모리 구조를 생성하고, 상기 디바이스로부터 상기 명령(CMD)에 상응하는 데이터를 수신하여 메모리 구조에 저장하는 USB 드라이버부 및 상기 메모리 구조에 저장된 데이터를 읽어와서 상기 데이터를 처리하는 데이터 처리 제어부를 포함한다.In addition, the data processing apparatus according to an embodiment of the present invention for achieving the above object is a memory area corresponding to the command (CMD) for identifying the device connected via the USB interface, and storing the data received from the device A USB driver for generating the allocated memory structure, receiving data corresponding to the command (CMD) from the device, storing the data in the memory structure, and a data processing control unit for reading the data stored in the memory structure and processing the data. It includes.

본 발명은 실시간으로 전송되는 대용량 데이터의 처리 성능을 향상시킬 수 있다.The present invention can improve the processing performance of a large amount of data transmitted in real time.

또한, 본 발명은 대용량 데이터의 처리 과정 중에 발생하는 데이터 손실을 방지할 수 있다.In addition, the present invention can prevent data loss that occurs during the processing of large amounts of data.

또한, 본 발명은 USB 프로토콜에서 대용량 데이터 처리에 대한 메모리 관리 기능을 제공할 수 있다.In addition, the present invention can provide a memory management function for processing large data in the USB protocol.

또한, 본 발명은 이미지 센서를 이용한 홍채인식에 있어서 데이터 처리 성능 향상과 데이터 손실을 방지할 수 있다.In addition, the present invention can improve data processing performance and prevent data loss in iris recognition using an image sensor.

도 1은 본 발명의 일실시예에 따른 데이터 획득 장치 및 데이터 처리 장치를 나타낸 블록도이다.
도 2는 도 1에 도시된 데이터 획득 장치의 일 예를 세부적으로 나타낸 블록도이다.
도 3은 도 1에 도시된 데이터 획득 장치의 다른 예를 세부적으로 나타낸 블록도이다.
도 4는 도 1에 도시된 데이터 처리 장치의 일 예를 세부적으로 나타낸 블록도이다.
도 5는 본 발명의 일실시예에 따른 이중 연결 리스트의 메모리 구조를 나타낸 도면이다.
도 6은 본 발명의 일실시예에 따른 데이터 처리 방법을 나타낸 동작 흐름도이다.
도 7은 도 6에 도시된 메모리 구조 생성 단계의 일 예를 세부적으로 나타낸 동작 흐름도이다.
도 8은 도 7에 도시된 커널 영역 초기화 단계의 일 예를 세부적으로 나타낸 동작 흐름도이다.
도 9는 도 7에 도시된 유저 영역 초기화 단계의 일 예를 세부적으로 나타낸 동작 흐름도이다.
도 10은 도 6에 도시된 명령(CMD) 할당 단계의 일 예를 세부적으로 나타낸 동작 흐름도이다.
도 11은 도 6에 도시된 데이터 처리 단계의 일 예를 세부적으로 나타낸 동작 흐름도이다.
도 12는 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.
1 is a block diagram illustrating a data acquisition device and a data processing device according to an embodiment of the present invention.
FIG. 2 is a detailed block diagram illustrating an example of the apparatus for acquiring data shown in FIG. 1.
3 is a detailed block diagram illustrating another example of the apparatus for acquiring data shown in FIG. 1.
4 is a detailed block diagram illustrating an example of the data processing apparatus of FIG. 1.
5 is a diagram illustrating a memory structure of a dual linked list according to an embodiment of the present invention.
6 is an operation flowchart illustrating a data processing method according to an embodiment of the present invention.
FIG. 7 is a flowchart illustrating an example of a process of generating a memory structure shown in FIG. 6 in detail.
8 is a flowchart illustrating an example of the kernel region initialization step illustrated in FIG. 7 in detail.
9 is a flowchart illustrating an example of a user area initialization step illustrated in FIG. 7 in detail.
FIG. 10 is an operation flowchart showing an example of a command (CMD) allocation step shown in FIG. 6 in detail.
11 is a flowchart illustrating an example of a data processing step illustrated in FIG. 6 in detail.
12 is a block diagram illustrating a computer system according to an embodiment of the present invention.

본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings. Here, the repeated description, well-known functions and configurations that may unnecessarily obscure the subject matter of the present invention, and detailed description of the configuration will be omitted. Embodiments of the present invention are provided to more completely describe the present invention to those skilled in the art. Accordingly, the shape and size of elements in the drawings may be exaggerated for clarity.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is said to "include" a certain component, it means that it can further include other components, except to exclude other components unless specifically stated otherwise.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 따른 데이터 획득 장치 및 데이터 처리 장치를 나타낸 블록도이다.1 is a block diagram illustrating a data acquisition device and a data processing device according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른 데이터 획득 장치(10) 및 데이터 처리 장치(100)를 나타낸 것을 알 수 있다.Referring to FIG. 1, it can be seen that the data acquisition device 10 and the data processing device 100 according to an embodiment of the present invention are shown.

데이터 획득 장치(10)는 데이터를 획득하는 디바이스에 상응할 수 있다.The data acquisition apparatus 10 may correspond to a device for acquiring data.

예를 들어, 데이터 획득 장치(10)는 이미지를 획득하는 카메라 장치에 상응할 수 있으며, 사람의 홍채이미지를 획득하는 홍채인식 장치에 상응할 수도 있다.For example, the data acquisition device 10 may correspond to a camera device for acquiring an image, or may correspond to an iris recognition device for acquiring an iris image of a person.

데이터 처리 장치(100)는 입력 받은 데이터를 처리, 저장, 송수신 할 수 있는 PC 등의 컴퓨팅 장치에 상응할 수 있다.The data processing apparatus 100 may correspond to a computing device such as a PC capable of processing, storing, and transmitting and receiving input data.

이 때, 데이터 획득 장치(10)는 획득한 데이터를 데이터 처리 장치(100)에게 전송할 수 있다.At this time, the data obtaining apparatus 10 may transmit the obtained data to the data processing apparatus 100.

이 때, 데이터 획득 장치(10)와 데이터 처리 장치(100)는 서로 USB 인터페이스를 이용하여 연결될 수 있고, USB 프로토콜을 통해 실시간으로 데이터를 전송할 수 있다.In this case, the data acquisition apparatus 10 and the data processing apparatus 100 may be connected to each other using a USB interface, and may transmit data in real time through the USB protocol.

이 때, USB 인터페이스는 USB 2.0 또는 USB 3.0 인터페이스에 상응할 수 있다.At this time, the USB interface may correspond to a USB 2.0 or USB 3.0 interface.

도 2는 도 1에 도시된 데이터 획득 장치의 일 예를 세부적으로 나타낸 블록도이다. 도 3은 도 1에 도시된 데이터 획득 장치의 다른 예를 세부적으로 나타낸 블록도이다.FIG. 2 is a detailed block diagram illustrating an example of the apparatus for acquiring data shown in FIG. 1. 3 is a detailed block diagram illustrating another example of the apparatus for acquiring data shown in FIG. 1.

도 2를 참조하면, 본 발명의 일실시예에 따른 데이터 획득 장치(10)는 데이터 획득부(11), 데이터 생성부(12) 및 USB 제어부(13)를 포함할 수 있다.Referring to FIG. 2, the data obtaining apparatus 10 according to an embodiment of the present invention may include a data obtaining unit 11, a data generating unit 12, and a USB controller 13.

이 때, 데이터 획득부(11)는 데이터를 수신, 입력 또는 센싱하여 데이터를 획득할 수 있다.At this time, the data obtaining unit 11 may obtain data by receiving, inputting or sensing the data.

이 때, 데이터 획득부(11)는 데이터를 획득하기 위한 카메라 유닛, 센서 유닛, 네트워크 인터페이스 유닛 또는 사용자 인터페이스 유닛 등을 더 포함할 수 있다.In this case, the data obtaining unit 11 may further include a camera unit, a sensor unit, a network interface unit or a user interface unit for acquiring data.

데이터 생성부(12)는 획득한 데이터를 전달 받아 데이터 처리 장치(100)가 데이터를 처리하기 위하여 가공한 데이터를 생성할 수 있다.The data generator 12 may receive the obtained data and generate data processed by the data processing apparatus 100 to process the data.

이 때, 데이터 생성부(12)는 데이터 처리 장치(100)를 위한 특별한 데이터의 가공이 필요하지 않은 경우, 데이터를 바로 전달할 수 있으며, 데이터를 저장할 수도 있다.At this time, if the data generation unit 12 does not require the processing of special data for the data processing apparatus 100, the data may be directly transferred, or may store the data.

이 때, 데이터 생성부(12)는 데이터를 영구적 또는 임시적으로 저장한 뒤(Gathering 또는 Buffering), 데이터를 전달할 수도 있다.At this time, the data generating unit 12 may store the data permanently or temporarily (Gathering or Buffering), and then transfer the data.

USB 제어부(13)는 USB 인터페이스를 이용하여 데이터 획득 장치(10)를 데이터 처리 장치(100)와 연결할 수 있다.The USB controller 13 may connect the data acquisition device 10 with the data processing device 100 using a USB interface.

이 때, USB 제어부(13)는 전달받은 데이터를 USB 프로토콜을 통해 데이터 처리 장치(100)에게 전송할 수 있다.At this time, the USB controller 13 may transmit the received data to the data processing apparatus 100 through the USB protocol.

도 3을 참조하면, 데이터 획득 장치(10)의 다른 예로 홍채인식 장치를 세부적으로 나타낸 것을 알 수 있다.Referring to FIG. 3, it can be seen that the iris recognition device is shown in detail as another example of the data acquisition device 10.

이 때, 데이터 획득부(11)는 좌측홍채이미지 캡쳐부(11-1), 우측홍채이미지 캡쳐부(11-2) 및 얼굴이미지 캡쳐부(11-3)를 포함할 수 있다.In this case, the data acquisition unit 11 may include a left iris image capture unit 11-1, a right iris image capture unit 11-2, and a face image capture unit 11-3.

좌측홍채이미지 캡쳐부(11-1), 우측홍채이미지 캡쳐부(11-2) 및 얼굴이미지 캡쳐부(11-3)는 각각 홍채이미지 데이터를 획득하여 프레임당 3~5MByte의 속도로 데이터 생성부(12)로 데이터를 전달할 수 있다.The left iris image capture unit 11-1, the right iris image capture unit 11-2, and the face image capture unit 11-3 acquire iris image data, respectively, and generate data at a rate of 3 to 5 MBytes per frame. Data can be passed to (12).

이 때, 좌측홍채이미지, 우측홍채이미지 및 얼굴이미지의 해상도는 640x480 해상도에 상응할 수 있다.At this time, the resolution of the left iris image, the right iris image and the face image may correspond to 640x480 resolution.

데이터 생성부(12)는 각각의 홍채이미지를 전달받아 실시간으로 버퍼링을 수행하면서 USB 프로토콜을 통해 데이터 처리 장치(100)에게 전송할 수 있다.The data generator 12 may receive each iris image and perform buffering in real time and transmit the data to the data processing apparatus 100 through the USB protocol.

이 때, 데이터 생성부(12)는 상기에서 설명한 USB 제어부(13)의 기능을 더 포함할 수도 있다.In this case, the data generator 12 may further include the functions of the USB controller 13 described above.

또한, 데이터 처리 장치(100)는 USB 프로토콜을 통해 실시간으로 홍채이미지를 수신할 수 있다.In addition, the data processing apparatus 100 may receive an iris image in real time through a USB protocol.

이 때, 데이터 처리 장치(100)는 실시간으로 수신한 홍채이미지의 홍채인식을 수행할 수 있다.At this time, the data processing apparatus 100 may perform iris recognition of the iris image received in real time.

도 4는 도 1에 도시된 데이터 처리 장치의 일 예를 세부적으로 나타낸 블록도이다.4 is a detailed block diagram illustrating an example of the data processing apparatus of FIG. 1.

도 4를 참조하면, 본 발명의 일실시예에 따른 데이터 처리 장치(100)는 USB 드라이버부(110), 데이터 처리 제어부(120), 탬플릿 생성부(130), 탬플릿 매칭부(140) 및 네트워크 인터페이스부(150)를 포함할 수 있다.Referring to FIG. 4, the data processing apparatus 100 according to an exemplary embodiment may include a USB driver 110, a data processing controller 120, a template generator 130, a template matching unit 140, and a network. The interface unit 150 may be included.

본 발명의 일실시예에 따른 데이터 처리 장치(100)는 상기에서 설명한 바와 같이 PC 등의 컴퓨팅 장치에 상응할 수 있으며, 운영체제는 Windows 7 이상의 환경에 상응할 수 있다.The data processing apparatus 100 according to an embodiment of the present invention may correspond to a computing device such as a PC as described above, and the operating system may correspond to an environment of Windows 7 or higher.

USB 드라이버부(110)는 USB 인터페이스를 통해 연결된 디바이스를 확인하고, 상기 디바이스로부터 수신한 데이터를 저장하기 위한 명령(CMD)에 상응하는 메모리 영역이 할당된 메모리 구조를 생성하고, 상기 디바이스로부터 상기 명령(CMD)에 상응하는 데이터를 수신하여 메모리 구조에 저장할 수 있다.The USB driver 110 checks a device connected through a USB interface, generates a memory structure in which a memory area corresponding to a command CMD for storing data received from the device is allocated, and generates the command from the device. Data corresponding to the (CMD) can be received and stored in the memory structure.

데티터 처리 제어부(120)는 상기 메모리 구조에 저장된 데이터를 읽어와서 상기 데이터를 처리할 수 있다.The data processing controller 120 may read data stored in the memory structure and process the data.

이 때, USB 드라이버부(110)는 커널(Kernel) 영역에서 구동하는 WDF(Window Driver Frameworks) 기반 USB 드라이버에 상응할 수 있다.In this case, the USB driver 110 may correspond to a WDF (Window Driver Frameworks) based USB driver which is driven in the kernel region.

이 때, USB 드라이버부(110)는 USB 인터페이스를 이용하여 다른 USB 인터페이스를 이용하는 장치와 연결될 수 있다.In this case, the USB driver 110 may be connected to a device using another USB interface by using a USB interface.

이 때, USB 드라이버부(110)는 USB 인터페이스를 통해 연결된 디바이스를 인식할 수 있다.In this case, the USB driver 110 may recognize a device connected through a USB interface.

이 때, USB 드라이버부(110)는 연결된 디바이스의 드라이버 생성을 위한 시스템 파일('*.sys' 파일)을 리드(Read)할 수 있다.At this time, the USB driver 110 may read a system file ('* .sys' file) for generating a driver of the connected device.

이 때, USB 드라이버부(110)는 연결된 디바이스에 대한 USB 열거(USB Enumeration) 동작을 수행하여 디바이스를 인식할 수 있다.In this case, the USB driver 110 may recognize a device by performing a USB enumeration operation on the connected device.

또한, USB 드라이버부(110)는 IOCTL 셋팅을 수행할 수 있다(S310).In addition, the USB driver 110 may perform IOCTL setting (S310).

이 때, USB 드라이버부(110)는 유저 영역과 커널 영역 사이의 통로인 I/O 버퍼 셋팅(Buffered setting)을 수행할 수 있다.In this case, the USB driver 110 may perform I / O buffered setting, which is a path between the user area and the kernel area.

이 때, USB 드라이버부(110)는 커널 영역에 디바이스의 드라이버를 생성할 수 있다.At this time, the USB driver 110 may generate a driver for the device in the kernel region.

이 때, USB 드라이버부(110)는 이중 연결 리스트(Doubly Linked List)의 메모리 구조를 생성할 수 있다.In this case, the USB driver 110 may generate a memory structure of a double linked list.

이 때, USB 드라이버부(110)는 이중 연결 리스트의 초기(Initial) 엔트리 리스트(Entry list)를 생성할 수 있고, 초기 엔트리 리스트에 링버퍼를 생성하여 할당할 수 있다.In this case, the USB driver 110 may generate an initial entry list of the dual linked list, and generate and assign a ring buffer to the initial entry list.

이 때, 이중 연결 리스트는 명령(CMD)을 할당하기 위한 엔트리 리스트(Entry List)를 추가로 생성할 수 있다.In this case, the dual linked list may further generate an entry list for allocating the command CMD.

이 때, 이중 연결 리스트는 복수개의 엔트리 리스트들의 테일 포인트와 헤드 포인트가 서로 연결되어 구성될 수 있다.In this case, the dual linked list may be configured by connecting tail points and head points of the plurality of entry lists to each other.

이 때, 링버퍼는 WDF(Window Driver Frameworks)에서 제공하는 페이지드(paged) 메모리에 상응할 수 있으며, MDL(Memory Descriptor List) 구조체로 관리될 수 있다.In this case, the ring buffer may correspond to paged memory provided by the Window Driver Frameworks (WDF), and may be managed by a memory descriptor list (MDL) structure.

또한, USB 드라이버부(110)는 유저 영역에게 알리기 위한 준비(Ready), 에러(Error) 등에 상응하는 각종 이벤트(Event)들을 커널 영역에 할당할 수 있다.In addition, the USB driver 110 may allocate various events corresponding to the ready, error, etc. to notify the user area to the kernel area.

이 때, USB 드라이버부(110)는 커널 영역에 할당된 이벤트 및 이중 연결 리스트의 메모리 구조를 유저 영역에 맵핑할 수 있다.At this time, the USB driver 110 may map the memory structure of the event and the dual connection list allocated to the kernel region to the user region.

이 때, 데이터 처리 제어부(120)는 유저 영역에 맵핑된 이중 연결 리스트의 메모리 구조를 확인할 수 있다.In this case, the data processing controller 120 may check the memory structure of the dual linked list mapped to the user area.

데이터 처리 제어부(120)는 유저 영역을 초기화할 수 있다.The data processing controller 120 may initialize the user area.

이 때, 데이터 처리 제어부(120)는 먼저 변수 초기화를 수행할 수 있다(S410).In this case, the data processing controller 120 may first perform variable initialization (S410).

이 때, 데이터 처리 제어부(120)는 기존에 유저 영역에 선언 되어있는 모든 변수를 초기화할 수 있다.At this time, the data processing control unit 120 may initialize all variables previously declared in the user area.

또한, 데이터 처리 제어부(120)는 USB 드라이버부(110)로부터 커널 영역에서 USB 인터페이스를 통해 연결된 디바이스의 정보를 획득할 수 있다.In addition, the data processing controller 120 may obtain information of a device connected through the USB interface in the kernel area from the USB driver 110.

이 때, 데이터 처리 제어부(120)는 연결된 디바이스와 디바이스의 종류를 확인할 수 있고, 어느 하나라도 확인되지 않는 경우, 데이터 처리를 종료할 수 있다.At this time, the data processing control unit 120 may check the connected device and the type of the device, and if no one is confirmed, may end the data processing.

또한, 데이터 처리 제어부(120)는 USB 인터페이스를 통해 연결된 디바이스로부터 수신한 데이터를 처리 하기 위한 프로세스 쓰레드를 생성할 수 있다.In addition, the data processing controller 120 may generate a process thread for processing data received from a device connected through a USB interface.

예를 들어, 데이터 처리 제어부(120)는 USB 인터페이스를 통해 연결된 데이터 획득 장치(10)가 홍채인식 장치로 확인된 경우, 3개의 이미지 데이터인 좌측홍채이미지, 우측홍채이미지 및 얼굴이미지를 송신할 수 있으므로, 3개의 프로세스 쓰레드를 생성할 수 있다.For example, when the data acquisition device 10 connected through the USB interface is identified as an iris recognition device, the data processing control unit 120 may transmit three image data, the left iris image, the right iris image, and the face image. Thus, three process threads can be created.

또한, 데이터 처리 제어부(120)는 유저 응용으로부터 태스크를 수행하기 위한 이벤트를 요청 받은 경우, 다음 단계로 진행하고, 이벤트를 요청 받지 못한 경우 현재 상태에서 이벤트를 대기할 수 있다.In addition, when receiving an event for performing a task from the user application, the data processing control unit 120 may proceed to the next step, and if the event is not requested, may wait for the event in the current state.

예를 들어, 데이터 처리 제어부(120)는 홍채인식을 수행하는 경우, 홍채인식 태스크를 수행하기 위한 시작 이벤트를 입력 받아 다음 단계로 진행할 수 있다.For example, when performing iris recognition, the data processing controller 120 may receive a start event for performing an iris recognition task and proceed to the next step.

이 때, 데이터 처리 제어부(120)는 태스크를 수행하기 위한 명령(CMD)을 생성할 수 있다.In this case, the data processing controller 120 may generate a command CMD for performing a task.

이 때, 데이터 처리 제어부(120)는 새로운 태스크가 시작되면 유저 영역에서 CMD를 생성할 수 있다.At this time, the data processing controller 120 may generate a CMD in the user area when a new task is started.

이 때, 데이터 처리 제어부(120)는 USB 드라이버부(110)에게 WDF 요청 처리를 수행할 수 있다(S520).In this case, the data processing controller 120 may perform a WDF request processing on the USB driver 110 (S520).

데이터 처리 제어부(120)는 유저 영역에서 생성한 명령(CMD)에 대한 처리를 USB 드라이버부(110)를 통해 커널 영역에 요청할 수 있다.The data processing controller 120 may request the kernel region through the USB driver 110 to process a command CMD generated in the user region.

USB 드라이버부(110)는 요청한 명령(CMD)이 새로운 명령(New CMD) 인지 판단할 수 있다(S530).The USB driver 110 may determine whether the requested command CMD is a new command New CMD (S530).

USB 드라이버부(110)는 요청한 명령(CMD)이 기할당된 기존 명령(CMD) 인 경우, 이중 연결 리스트를 참조하여, 기존 명령(CMD)을 처리할 수 있고, 새로운 명령(New CMD) 인 경우, 커널 영역의 이중 연결 리스트의 메모리 구조에 새로운 명령(New CMD)에 상응하는 엔트리 리스트를 생성하여 새로운 CMD를 할당할 수 있다(S540).If the requested command (CMD) is a pre-assigned existing command (CMD), the USB driver 110 may process the existing command (CMD) by referring to the dual connection list, and when the new command (New CMD) In operation S540, a new CMD may be allocated by generating an entry list corresponding to a new command New CMD in the memory structure of the dual-linked list of the kernel region.

또한, USB 드라이버부(110)는 WDF 요청을 송신할 수 있다(S550).In addition, the USB driver 110 may transmit a WDF request (S550).

이 때, USB 드라이버부(110)는 요청한 명령(CMD)에 대한 태스크를 수행하기 위하여 USB 인터페이스를 통해 연결된 디바이스에게 태스크 수행을 요청할 수 있다.In this case, the USB driver 110 may request a device to perform a task to a device connected through a USB interface in order to perform a task for the requested command CMD.

예를 들어, USB 드라이버부(110)는 홍채인식을 수행하기 위하여 홍채이미지 획득을 데이터 획득 장치(10)에게 요청할 수 있다.For example, the USB driver 110 may request the data acquisition apparatus 10 to acquire an iris image in order to perform iris recognition.

이 때, USB 드라이버부(110)는 태스크에 상응하는 데이터를 수신할 수 있다.At this time, the USB driver 110 may receive data corresponding to the task.

예를 들어, 단계(S550)는 데이터 획득 장치(10)가 홍채이미지를 획득하여 데이터 처리 장치(100)에게 전송할 수 있다.For example, in operation S550, the data obtaining apparatus 10 may obtain an iris image and transmit the iris image to the data processing apparatus 100.

이 때, USB 드라이버부(110)는 데이터 획득 장치(10)로부터 수신한 좌측홍채이미지, 우측홍채이미지 및 얼굴이미지를 초당 36Mbyte 속도로 데이터 처리 제어부(120)에 전달할 수 있다.In this case, the USB driver 110 may transmit the left iris image, the right iris image, and the face image received from the data acquisition apparatus 10 to the data processing controller 120 at a speed of 36 Mbytes per second.

이 때, USB 드라이버부(110)는 해상도가 640x480 인 이미지 3장을 동시에 데이터 처리 제어부(120)에 전달할 수 있다.In this case, the USB driver 110 may simultaneously transfer three images having a resolution of 640x480 to the data processing controller 120.

이 때, USB 드라이버부(110)는 디바이스로부터 상기 명령(CMD)에 상응하는 데이터를 수신하고, 상기 메모리 구조에 저장할 수 있다.In this case, the USB driver 110 may receive data corresponding to the command CMD from a device and store the data in the memory structure.

이 때, USB 드라이버부(110)는 먼저 링버퍼의 포인트를 셋팅할 수 있다(S610).At this time, the USB driver 110 may first set the point of the ring buffer (S610).

이 때, USB 드라이버부(110)는 디바이스로부터 수신한 데이터를 링버퍼에 저장하기 위하여 테일 포인트(Tail Point)를 셋팅 할 수 있다.At this time, the USB driver 110 may set a tail point in order to store the data received from the device in the ring buffer.

이 때, USB 드라이버부(110)는 디바이스로부터 수신한 데이터를 링버퍼에 순차적으로 저장할 수 있다.At this time, the USB driver 110 may sequentially store the data received from the device in the ring buffer.

예를 들어, 단계(S620)는 데이터 획득 장치(10)로부터 수신한 홍채이미지를 링버퍼에 순차적으로 저장할 수 있다.For example, step S620 may sequentially store the iris image received from the data acquisition device 10 in the ring buffer.

이 때, USB 드라이버부(110)는 데이터를 저장할 다음 링버퍼의 테일 포인트를 계산할 수 있다.In this case, the USB driver 110 may calculate a tail point of the next ring buffer to store data.

또한, 데이터 처리 제어부(120)는 메모리 구조에 저장된 데이터를 읽어와서 데이터를 처리할 수 있다.In addition, the data processing controller 120 may read data stored in the memory structure and process the data.

이 때, 데이터 처리 제어부(120)는 현재 헤드 포인트(Head Point)를 가져와서 링버퍼에 저장된 데이터를 순차적으로 읽어올 수 있다.At this time, the data processing control unit 120 may read the data stored in the ring buffer sequentially by taking the current head point.

이 때, 데이터 처리 제어부(120)는 링버퍼에 저장된 데이터를 기설정된 시간 마다 한꺼번에 읽어올 수도 있다.At this time, the data processing control unit 120 may read data stored in the ring buffer at one time every predetermined time.

이 때, 데이터 처리 제어부(120)는 데이터를 읽어올 다음 링버퍼의 헤드 포인트를 계산할 수 있다.At this time, the data processing control unit 120 may calculate the head point of the ring buffer after reading the data.

예를 들어, 데이터 처리 제어부(120)는 링버퍼에 저장된 홍채이미지를 순차적으로 읽어와서 홍채인식을 수행할 수 있다.For example, the data processing controller 120 may sequentially read the iris images stored in the ring buffer and perform iris recognition.

이 때, 데이터 처리 제어부(120)는 홍채이미지의 홍채인식이 완료된 경우, 해당 절차를 종료하고 모든 헤드 포인트에 대한 헤드 리스트를 삭제할 수 있다.At this time, when the iris recognition of the iris image is completed, the data processing controller 120 may terminate the procedure and delete the head list for all head points.

또한, 데이터 처리 제어부(120)는 링버퍼의 헤드 포인트(Head Point)와 테일 포인트(Tail Point)의 값 차이에 기반하여 데이터 처리를 종료할 수 있다(S630).In addition, the data processing controller 120 may end the data processing based on the difference between the values of the head point and the tail point of the ring buffer (S630).

이 때, 데이터 처리 제어부(120)는 이중 연결 리스트의 헤드 포인트(Head Point)와 테일 포인트(Tail Point)의 값의 차이가 '0'이 될 때까지 상기 링버퍼에 저장된 데이터를 순차적으로 읽어와서 버퍼링 할 수 있다.At this time, the data processing controller 120 sequentially reads the data stored in the ring buffer until the difference between the values of the head point and tail point of the dual linked list becomes '0'. Can be buffered

이 때, 데이터 처리 제어부(120)는 헤드 포인트(Head Point)와 테일 포인트(Tail Point)의 값의 차이가 '0'이 된 것은 모든 데이터를 획득한 것이므로, 해당 절차를 종료할 수 있다.At this time, the data processing control unit 120 has obtained all the data that the difference between the value of the head point and the tail point becomes '0', and thus may terminate the procedure.

이에 따라, 데이터 처리 제어부(120)는 실시간으로 수신하는 홍채이미지의 데이터 손실을 방지할 수 있다.Accordingly, the data processing controller 120 may prevent data loss of the iris image received in real time.

또한, 데이터 처리 제어부(120)는 전달받은 홍채이미지에서 홍채 부위만 일부 크롭(Crop)하여 홍채인식을 수행할 수 있다.In addition, the data processing control unit 120 may crop the iris part only in the received iris image to perform iris recognition.

이 때, 데이터 처리 제어부(120)는 홍채 부위만 크롭된 홍채 이미지를 탬플릿 생성부(130)에 전달할 수 있다.In this case, the data processing controller 120 may transmit the iris image cropped only to the iris portion to the template generator 130.

탬플릿 생성부(130)는 전달받은 홍채이미지를 홍채알고리즘을 이용하여 홍채인식을 수행하기 위한 탬플릿을 생성할 수 있다.The template generator 130 may generate a template for performing iris recognition on the received iris image by using an iris algorithm.

이 때, 탬플릿 생성부(130)는 생성한 탬플릿을 탬플릿 매칭부(140)에 전달할 수 있다.In this case, the template generator 130 may transfer the generated template to the template matching unit 140.

탬플릿 매칭부(140)는 수신한 제1 탬플릿을 탬플릿 데이터베이스에 저장된 제2 탬플릿을 탬플릿 매칭 알고리즘을 이용하여 탬플릿 비교를 통해 사용자의 홍채인식을 수행할 수 있다.The template matching unit 140 may perform iris recognition of the user through template comparison using a template matching algorithm with a second template stored in the received first template in a template database.

네트워크 인터페이스부(150)는 네트워크를 통해 클라우드 서비스를 이용하여 홍채인식 및 탬플릿 매칭에 필요한 정보를 송수신할 수 있다.The network interface unit 150 may transmit and receive information necessary for iris recognition and template matching using a cloud service through a network.

도 5는 본 발명의 일실시예에 따른 이중 연결 리스트와 링버퍼 구조를 나타낸 도면이다.5 is a diagram illustrating a dual linked list and a ring buffer structure according to an embodiment of the present invention.

도 5를 참조하면, 본 발명의 일실시예에 따른 이중 연결 리스트는 태스크를 수행하기 위한 새로운 명령(New CMD)가 생성될 때마다, 그에 상응하는 엔트리 리스트(Entry list)(20-1, 20-2, 20-3)를 생성할 수 있다.Referring to FIG. 5, whenever a new command (New CMD) for performing a task is generated, a dual linked list according to an embodiment of the present invention may have a corresponding entry list 20-1 and 20. -2, 20-3).

이 때, 이중 연결 리스트는 엔트리 리스트(20-1, 20-2, 20-3) 별로 링버퍼(30-1, 30-2, 30-3)를 생성하여 할당할 수 있고, 태스크 별로 실시간으로 수신한 데이터를 링버퍼(30-1, 30-2, 30-3)에 저장할 수 있다.In this case, the dual linked list may generate and allocate ring buffers 30-1, 30-2, and 30-3 for each entry list 20-1, 20-2, and 20-3. The received data may be stored in the ring buffers 30-1, 30-2, and 30-3.

이 때, 링버퍼(30-1, 30-2, 30-3)는 수신한 데이터를 0번째 메모리부터 64번째 메모리까지 순차적으로 저장할 수 있으며, 64번째 메모리까지 데이터가 저장된다면, 0번째 메모리로 넘어가서 다시 데이터를 덮어쓰며 저장할 수 있고, 63번째 메모리로 역으로 넘어가며 다시 데이터를 덮어쓰며 저장할 수도 있다.At this time, the ring buffers 30-1, 30-2, and 30-3 may sequentially store the received data from the 0th memory to the 64th memory. If the data is stored up to the 64th memory, the ring buffers 30-1, 30-2, and 30-3 may store the received data. You can go ahead and save the data again, or you can go back to the 63rd memory and overwrite it again.

이 때, 링버퍼(30-1, 30-2, 30-3)는 데이터 출력 요청이 있을 경우, 0번째 메모리부터 64번째 메모리까지 순차적으로 출력할 수 있다.In this case, the ring buffers 30-1, 30-2, and 30-3 may sequentially output from the 0th memory to the 64th memory when a data output request is made.

또한, 이중 연결 리스트는 첫번째 엔트리 리스트(20-1)의 링버퍼(30-1)가 64번째 메모리까지 데이터가 저장된 경우, 다음 두번째 엔트리 리스트(20-2)의 링버퍼(30-2)의 0번째 메모리부터 데이터를 저장할 수도 있다.In addition, the double-linked list is used when the ring buffer 30-1 of the first entry list 20-1 stores data up to the 64th memory, and the ring buffer 30-2 of the next second entry list 20-2 is stored. You can also store data from the 0th memory.

즉, 링버퍼(30-1, 30-2, 30-3)는 저장된 데이터를 출력하면서, 데이터를 출력한 메모리에 새로운 데이터를 저장시킬 수도 있다.That is, the ring buffers 30-1, 30-2, and 30-3 may store the new data in the memory which outputs the data while outputting the stored data.

이 때, 이중 연결 리스트는 모든 절차가 종료되어, 종료 명령(CMD)을 입력 받은 경우, 모든 엔트리 리스트(20-1, 20-2, 20-3)와 링버퍼(30-1, 30-2, 30-3)를 초기화 할 수 있다.At this time, the double linked list is terminated all procedures, and when the termination command (CMD) is input, all the entry list (20-1, 20-2, 20-3) and the ring buffer (30-1, 30-2) , 30-3) can be initialized.

도 6은 본 발명의 일실시예에 따른 데이터 처리 방법을 나타낸 동작 흐름도이다. 도 7은 도 6에 도시된 메모리 구조 생성 단계의 일 예를 세부적으로 나타낸 동작 흐름도이다. 도 8은 도 7에 도시된 커널 영역 초기화 단계의 일 예를 세부적으로 나타낸 동작 흐름도이다. 도 9는 도 7에 도시된 유저 영역 초기화 단계의 일 예를 세부적으로 나타낸 동작 흐름도이다. 도 10은 도 6에 도시된 명령(CMD) 할당 단계의 일 예를 세부적으로 나타낸 동작 흐름도이다. 도 11은 도 6에 도시된 데이터 처리 단계의 일 예를 세부적으로 나타낸 동작 흐름도이다.6 is an operation flowchart illustrating a data processing method according to an embodiment of the present invention. FIG. 7 is a flowchart illustrating an example of a process of generating a memory structure shown in FIG. 6 in detail. 8 is a flowchart illustrating an example of the kernel region initialization step illustrated in FIG. 7 in detail. 9 is a flowchart illustrating an example of a user area initialization step illustrated in FIG. 7 in detail. FIG. 10 is an operation flowchart showing an example of a command (CMD) allocation step shown in FIG. 6 in detail. 11 is a flowchart illustrating an example of a data processing step illustrated in FIG. 6 in detail.

도 6을 참조하면, 본 발명의 일실시예에 따른 데이터 처리 방법은 먼저 메모리 구조를 생성할 수 있다(S210).Referring to FIG. 6, the data processing method according to an embodiment of the present invention may first generate a memory structure (S210).

즉, 단계(S210)는 USB 인터페이스를 통해 연결된 디바이스를 확인하고, 상기 디바이스로부터 수신한 데이터를 저장하기 위한 메모리 구조를 생성할 수 있다.That is, step S210 may identify a device connected through a USB interface and generate a memory structure for storing data received from the device.

도 7을 참조하면, 단계(S210)는 먼저 디바이스 삽입을 인식을 할 수 있다(S211).Referring to FIG. 7, in step S210, device insertion may be recognized first (S211).

즉, 단계(S211)는 USB 인터페이스를 통해 연결된 디바이스를 인식할 수 있다.In other words, step S211 may recognize a device connected through the USB interface.

이 때, 단계(S211)는 연결된 디바이스의 드라이버 생성을 위한 시스템 파일('*.sys' 파일)을 리드(Read)할 수 있다.In this case, step S211 may read a system file ('* .sys' file) for generating a driver of the connected device.

이 때, 단계(S211)는 연결된 디바이스에 대한 USB 열거(USB Enumeration) 동작을 수행하여 디바이스를 인식할 수 있다.In this case, step S211 may perform a USB enumeration operation on the connected device to recognize the device.

또한, 단계(S210)는 커널 영역을 초기화할 수 있다(S212).In operation S212, the kernel region may be initialized (S212).

도 8을 참조하면, 단계(S212)는 먼저 IOCTL 셋팅을 수행할 수 있다(S310).Referring to FIG. 8, step S212 may first perform IOCTL setting (S310).

즉, 단계(S310)는 유저 영역과 커널 영역 사이의 통로인 I/O 버퍼 셋팅(Buffered setting)을 수행할 수 있다.That is, step S310 may perform I / O buffered setting, which is a path between the user area and the kernel area.

또한, 단계(S212)는 디바이스 크리에이트를 수행할 수 있다(S320).In operation S212, device creation may be performed (S320).

즉, 단계(S420)는 커널 영역에 디바이스의 드라이버를 생성할 수 있다.That is, step S420 may generate a driver of the device in the kernel region.

또한, 단계(S212)는 커널 영역에 메모리맵을 할당할 수 있다(S330).In operation S212, the memory map may be allocated to the kernel region (S330).

즉, 단계(S330)는 이중 연결 리스트(Doubly Linked List)의 메모리 구조를 생성할 수 있다.That is, step S330 may generate a memory structure of a double linked list.

이 때, 단계(S330)는 이중 연결 리스트의 초기(Initial) 엔트리 리스트(Entry list)를 생성할 수 있고, 초기 엔트리 리스트에 링버퍼를 생성하여 할당할 수 있다.In this case, step S330 may generate an initial entry list of the dual linked list, and generate and assign a ring buffer to the initial entry list.

이 때, 이중 연결 리스트는 명령(CMD)을 할당하기 위한 엔트리 리스트(Entry List)를 추가로 생성할 수 있다.In this case, the dual linked list may further generate an entry list for allocating the command CMD.

이 때, 이중 연결 리스트는 복수개의 엔트리 리스트들의 테일 포인트와 헤드 포인트가 서로 연결되어 구성될 수 있다.In this case, the dual linked list may be configured by connecting tail points and head points of the plurality of entry lists to each other.

이 때, 링버퍼는 WDF(Window Driver Frameworks)에서 제공하는 페이지드(paged) 메모리에 상응할 수 있으며, MDL(Memory Descriptor List) 구조체로 관리될 수 있다.In this case, the ring buffer may correspond to paged memory provided by the Window Driver Frameworks (WDF), and may be managed by a memory descriptor list (MDL) structure.

또한, 단계(S212)는 커널 영역에 이벤트를 할당할 수 있다(S340).In operation S212, an event may be allocated to a kernel region (S340).

즉, 단계(S340)는 유저 영역에게 알리기 위한 준비(Ready), 에러(Error) 등에 상응하는 각종 이벤트(Event)들을 커널 영역에 할당할 수 있다.That is, in operation S340, various events corresponding to ready, error, etc. for notifying the user area may be allocated to the kernel area.

또한, 단계(S212)는 맵핑을 수행할 수 있다(S350).In operation S212, mapping may be performed (S350).

즉, 단계(S350)는 커널 영역에 할당된 이벤트 및 이중 연결 리스트의 메모리 구조를 유저 영역에 맵핑할 수 있다.That is, step S350 may map the memory structure of the event and the dual linked list allocated to the kernel region to the user region.

또한, 단계(S210)는 유저 영역을 초기화할 수 있다(S213).In operation S210, the user region may be initialized (S213).

도 9를 참조하면, 단계(S213)는 먼저 변수 초기화를 수행할 수 있다(S410).Referring to FIG. 9, in step S213, variable initialization may first be performed (S410).

이 때, 단계(S410)는 기존에 유저 영역에 선언 되어있는 모든 변수를 초기화할 수 있다.At this time, step S410 may initialize all variables previously declared in the user area.

또한, 단계(S213)는 USB 인터페이스를 통해 연결된 디바이스를 확인할 수 있다(S420).In operation S420, a device connected through a USB interface may be checked.

즉, 단계(S420)는 커널 영역로부터 USB 인터페이스를 통해 연결된 디바이스의 정보를 획득할 수 있다.That is, step S420 may obtain information of a device connected through the USB interface from the kernel region.

이 때, 단계(S420)는 연결된 디바이스와 디바이스의 종류를 확인할 수 있고, 어느 하나라도 확인되지 않는 경우, 데이터 처리를 종료할 수 있다.In this case, in step S420, the connected device and the type of the device may be checked, and if none of the devices are checked, the data processing may be terminated.

또한, 단계(S213)는 프로세스 쓰레드를 생성할 수 있다(S430).In operation S430, a process thread may be created.

즉, 단계(S430)는 USB 인터페이스를 통해 연결된 디바이스로부터 수신한 데이터를 처리 하기 위한 프로세스 쓰레드를 생성할 수 있다.That is, step S430 may create a process thread for processing data received from the device connected through the USB interface.

예를 들어, 단계(S430)는 USB 인터페이스를 통해 연결된 데이터 획득 장치(10)가 홍채인식 장치로 확인된 경우, 3개의 이미지 데이터인 좌측홍채이미지, 우측홍채이미지 및 얼굴이미지를 송신할 수 있으므로, 3개의 프로세스 쓰레드를 생성할 수 있다.For example, in operation S430, when the data acquisition device 10 connected through the USB interface is identified as the iris recognition device, three image data, the left iris image, the right iris image, and the face image may be transmitted. You can create three process threads.

또한, 단계(S213)는 이벤트를 대기할 수 있다(S440).In operation S440, an event may be waited for.

즉, 단계(S440)는 유저 응용으로부터 태스크를 수행하기 위한 이벤트를 요청 받은 경우, 다음 단계로 진행하고, 이벤트를 요청 받지 못한 경우 현재 상태에서 이벤트를 대기할 수 있다.That is, step S440 may proceed to the next step when receiving an event for performing a task from the user application, and wait for the event in the current state when the event is not requested.

예를 들어, 단계(S440)는 홍채인식을 수행하는 경우, 홍채인식 태스크를 수행하기 위한 시작 이벤트를 입력 받아 다음 단계로 진행할 수 있다.For example, when performing iris recognition, step S440 may receive a start event for performing an iris recognition task and proceed to the next step.

또한, 본 발명의 일실시예에 따른 데이터 처리 방법은 명령(CMD)을 할당할 수 있다(S220).In addition, the data processing method according to an embodiment of the present invention may allocate a command (CMD) (S220).

도 10을 참조하면, 단계(S220)는 먼저 명령(CMD)을 생성할 수 있다(S510).Referring to FIG. 10, step S220 may first generate a command CMD (S510).

즉, 단계(S510)는 새로운 태스크가 시작되면 유저 영역에서 CMD를 생성할 수 있다.That is, step S510 may generate a CMD in a user area when a new task is started.

또한, 단계(S220)는 WDF 요청 처리를 수행할 수 있다(S520).In operation S520, the WDF request may be processed.

즉, 단계(S520)는 유저 영역에서 생성한 명령(CMD)에 대한 처리를 커널 영역에 요청할 수 있다.That is, step S520 may request the kernel region to process the command CMD generated in the user region.

또한, 단계(220)는 요청한 명령(CMD)이 새로운 명령(New CMD) 인지 판단할 수 있다(S530).In operation S530, the requested command CMD may be determined to be a new command CMD.

즉, 단계(S530)는 요청한 명령(CMD)이 기할당된 기존 명령(CMD) 인 경우, 이중 연결 리스트를 참조하여, 기존 명령(CMD)을 처리할 수 있고, 새로운 명령(New CMD) 인 경우, 커널 영역의 이중 연결 리스트의 메모리 구조에 새로운 명령(New CMD)에 상응하는 엔트리 리스트를 생성하여 새로운 CMD를 할당할 수 있다(S540).That is, in step S530, when the requested command CMD is a pre-assigned existing command CMD, the existing command CMD may be processed by referring to the dual linked list, and the new command may be a new CMD. In operation S540, a new CMD may be allocated by generating an entry list corresponding to a new command New CMD in the memory structure of the dual-linked list of the kernel region.

또한, 단계(S220)는 WDF 요청을 송신할 수 있다(S550).In operation S550, a WDF request may be transmitted.

즉, 단계(S550)는 요청한 명령(CMD)에 대한 태스크를 수행하기 위하여 USB 인터페이스를 통해 연결된 디바이스에게 태스크 수행을 요청할 수 있다.That is, step S550 may request that the device connected through the USB interface perform the task in order to perform the task for the requested command CMD.

예를 들어, 단계(S550)는 데이터 처리 장치(100)가 홍채인식을 수행하기 위하여 홍채이미지 획득을 데이터 획득 장치(10)에게 요청할 수 있다.For example, in operation S550, the data processing apparatus 100 may request the data obtaining apparatus 10 to acquire an iris image in order to perform iris recognition.

이 때, 단계(S550)는 태스크에 상응하는 데이터를 수신할 수 있다.At this time, step S550 may receive data corresponding to the task.

예를 들어, 단계(S550)는 데이터 획득 장치(10)가 홍채이미지를 획득하여 데이터 처리 장치(100)에게 전송할 수 있다.For example, in operation S550, the data obtaining apparatus 10 may obtain an iris image and transmit the iris image to the data processing apparatus 100.

또한, 본 발명의 일실시예에 따른 데이터 처리 방법은 데이터를 처리할 수 있다(S230).In addition, the data processing method according to an embodiment of the present invention may process data (S230).

즉, 단계(S230)는 디바이스로부터 상기 명령(CMD)에 상응하는 데이터를 상기 메모리 구조에 버퍼링하여 처리할 수 있다.That is, step S230 may buffer and process data corresponding to the command CMD from the device in the memory structure.

도 11을 참조하면, 단계(S230)는 먼저 링버퍼의 포인트를 셋팅할 수 있다(S610).Referring to FIG. 11, step S230 may first set a point of a ring buffer (S610).

즉, 단계(S610)는 디바이스로부터 수신한 데이터를 링버퍼에 저장하기 위하여 테일 포인트(Tail Point)를 셋팅 할 수 있다.That is, in step S610, a tail point may be set in order to store the data received from the device in the ring buffer.

또한, 단계(S230)는 데이터 버퍼링을 수행할 수 있다(S620).In operation S230, data buffering may be performed.

즉, 단계(S620)는 디바이스로부터 수신한 데이터를 링버퍼에 순차적으로 저장할 수 있다.That is, step S620 may sequentially store the data received from the device in the ring buffer.

예를 들어, 단계(S620)는 데이터 획득 장치(10)로부터 수신한 홍채이미지를 링버퍼에 순차적으로 저장할 수 있다.For example, step S620 may sequentially store the iris image received from the data acquisition device 10 in the ring buffer.

이 때, 단계(S620)는 데이터를 저장할 다음 링버퍼의 테일 포인트를 계산할 수 있다.At this time, step S620 may calculate the tail point of the next ring buffer to store the data.

이 때, 단계(S620)는 현재 헤드 포인트(Head Point)를 가져와서 링버퍼에 저장된 데이터를 순차적으로 읽어올 수 있다.In this case, step S620 may read the data stored in the ring buffer sequentially by taking the current head point (Head Point).

이 때, 단계(S620)는 링버퍼에 저장된 데이터를 기설정된 시간 마다 한꺼번에 읽어올 수도 있다.At this time, step S620 may read data stored in the ring buffer at once every predetermined time.

이 때, 단계(S620)는 데이터를 읽어올 다음 링버퍼의 헤드 포인트를 계산할 수 있다.In this case, step S620 may calculate the head point of the ring buffer after reading data.

예를 들어, 단계(S620)는 링버퍼에 저장된 홍채이미지를 순차적으로 읽어와서 홍채인식을 수행할 수 있다.For example, step S620 may sequentially read the iris images stored in the ring buffer to perform iris recognition.

이 때, 단계(S620)는 홍채이미지의 홍채인식이 완료된 경우, 해당 절차를 종료하고 모든 헤드 포인트에 대한 헤드 리스트를 삭제할 수 있다.At this time, in step S620, when the iris recognition of the iris image is completed, the procedure may be terminated and the head list for all head points may be deleted.

또한, 단계(S230)는 링버퍼의 헤드 포인트(Head Point)와 테일 포인트(Tail Point)의 값 차이에 기반하여 데이터 처리를 종료할 수 있다(S630).In operation S230, data processing may be terminated based on a difference between values of a head point and a tail point of the ring buffer (S630).

즉, 단계(S630)는 이중 연결 리스트의 헤드 포인트(Head Point)와 테일 포인트(Tail Point)의 값의 차이가 '0'이 될 때까지 상기 링버퍼에 저장된 데이터를 순차적으로 읽어와서 버퍼링 할 수 있다.That is, step S630 may sequentially read and buffer the data stored in the ring buffer until the difference between the values of the head point and tail point of the dual linked list becomes '0'. have.

이 때, 단계(S630)는 헤드 포인트(Head Point)와 테일 포인트(Tail Point)의 값의 차이가 '0'이 된 것은 모든 데이터를 획득한 것이므로, 해당 절차를 종료할 수 있다.In this case, in step S630, since the difference between the values of the head point and the tail point becomes '0' is all data is acquired, the procedure may be terminated.

이에 따라, 본 발명의 일실시예에 따른 데이터 처리 방법은 실시간으로 수신하는 데이터 손실을 방지할 수 있다.Accordingly, the data processing method according to an embodiment of the present invention can prevent data loss received in real time.

또한, 단계(S230)는 명령(CMD)에 상응하는 추가적인 데이터 처리를 수행할 수도 있다.In addition, step S230 may perform additional data processing corresponding to the command CMD.

예를 들어, 단계(S230)는 홍채인식을 수행하는 경우, 홍채이미지에서 홍채 부위만 일부 크롭(Crop)하여 홍채인식을 수행할 수 있다.For example, in step S230, when performing iris recognition, iris recognition may be performed by partially cropping only the iris portion in the iris image.

이 때, 단계(S230)는 홍채 부위만 크롭된 홍채 이미지에 대한 탬플릿을 생성할 수 있다.In this case, step S230 may generate a template for the iris image cropped only in the iris region.

즉, 단계(S230)는 전달받은 홍채이미지를 홍채알고리즘을 이용하여 홍채인식을 수행하기 위한 탬플릿을 생성할 수 있다.That is, step S230 may generate a template for performing iris recognition on the received iris image using the iris algorithm.

이 때, 단계(S230)는 생성한 탬플릿을 데이터베이스에 저장된 탬플릿과 비교하여 홍채인식을 수행할 수 있다.At this time, step S230 may perform the iris recognition by comparing the generated template with the template stored in the database.

또한, 단계(S230)는 네트워크를 통해 클라우드 서비스를 이용하여 홍채인식 및 탬플릿 매칭에 필요한 정보를 송수신 할 수도 있다.Further, step S230 may transmit and receive information necessary for iris recognition and template matching using a cloud service through a network.

도 12는 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.12 is a block diagram illustrating a computer system according to an embodiment of the present invention.

도 12를 참조하면, 본 발명의 일실시예에 따른 데이터 획득 장치(10) 및 데이터 처리 장치(100)는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다. 도 12에 도시된 바와 같이, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.Referring to FIG. 12, the data acquisition apparatus 10 and the data processing apparatus 100 according to an embodiment of the present invention may be implemented in a computer system 1100 such as a computer-readable recording medium. As shown in FIG. 12, computer system 1100 includes one or more processors 1110, memory 1130, user interface input device 1140, user interface output device 1150 that communicate with each other via a bus 1120. And storage 1160. In addition, the computer system 1100 may further include a network interface 1170 connected to the network 1180. The processor 1110 may be a central processing unit or a semiconductor device that executes processing instructions stored in the memory 1130 or the storage 1160. The memory 1130 and the storage 1160 may be various types of volatile or nonvolatile storage media. For example, the memory may include a ROM 1131 or a RAM 1132.

이상에서와 같이 본 발명의 일실시예에 따른 데이터 처리 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, the data processing apparatus and method according to an embodiment of the present invention are not limited to the configuration and method of the embodiments described as described above, but the embodiments may be modified in various ways. All or some of the embodiments may be optionally combined.

10: 데이터 획득 장치 11: 데이터 획득부
11-1: 좌측홍채이미지 캡쳐부 11-2: 우측홍채이미지 캡쳐부
11-3: 얼굴이미지 캡쳐부
12: 데이터 생성부 13: USB 제어부
20-1,20-2,20-3: 엔트리 리스트
30-1,30-2,30-3: 링버퍼
100: 데이터 처리 장치 110: USB 드라이버부
120: 데이터 처리 제어부 130: 탬플릿 생성부
140: 탬플릿 매칭부 150: 네트워크 인터페이스부
1100: 컴퓨터 시스템 1110: 프로세서
1120: 버스 1130: 메모리
1131: 롬 1132: 램
1140: 사용자 인터페이스 입력 장치
1150: 사용자 인터페이스 출력 장치
1160: 스토리지 1170: 네트워크 인터페이스
1180: 네트워크
10: data acquisition device 11: data acquisition unit
11-1: Left iris image capture section 11-2: Right iris image capture section
11-3: face image capture unit
12: data generation unit 13: USB control unit
20-1,20-2,20-3: entry list
30-1,30-2,30-3: Ring buffer
100: data processing device 110: USB driver unit
120: data processing control unit 130: template generation unit
140: template matching unit 150: network interface unit
1100: computer system 1110: processor
1120: bus 1130: memory
1131: Romans 1132: Ram
1140: user interface input device
1150: user interface output device
1160: storage 1170: network interface
1180: network

Claims (14)

데이터 처리 장치의 데이터 처리 방법에 있어서,
USB 인터페이스를 통해 연결된 디바이스를 확인하고, 상기 디바이스로부터 수신한 데이터를 저장하기 위한 메모리 구조를 생성하는 단계;
태스크를 수행하기 위한 명령(CMD)을 생성하여, 상기 명령(CMD)에 상응하는 메모리 영역을 상기 메모리 구조에 할당하는 단계; 및
상기 디바이스로부터 상기 명령(CMD)에 상응하는 데이터를 수신하고, 상기 데이터를 상기 메모리 구조에 버퍼링하여 처리하는 단계;
를 포함하고,
상기 생성하는 단계는
이중 연결 리스트(Doubly Linked List)의 메모리 구조를 생성하고, 상기 이중 연결 리스트에 상기 명령(CMD)을 할당하기 위한 엔트리 리스트(Entry List)를 생성하는 것을 특징으로 하는 데이터 처리 방법.
In the data processing method of the data processing apparatus,
Identifying a device connected via a USB interface and creating a memory structure for storing data received from the device;
Generating a command CMD for performing a task and allocating a memory area corresponding to the command CMD to the memory structure; And
Receiving data corresponding to the command CMD from the device and buffering the data in the memory structure for processing;
Including,
The generating step
And generating an entry list for generating a memory structure of a doubly linked list and assigning the command CMD to the doubly linked list.
삭제delete 삭제delete 청구항 1에 있어서,
상기 이중 연결 리스트는
복수개의 엔트리 리스트들의 테일 포인트와 헤드 포인트가 서로 연결되어 구성되는 것을 특징으로 하는 데이터 처리 방법.
The method according to claim 1,
The double linked list is
And a tail point and a head point of the plurality of entry lists are connected to each other.
청구항 4에 있어서,
상기 엔트리 리스트는
링버퍼의 구조에 상응하는 것을 특징으로 하는 데이터 처리 방법.
The method according to claim 4,
The entry list is
And a data processing method corresponding to the structure of the ring buffer.
청구항 5에 있어서,
상기 링버퍼는
WDF(Window Driver Frameworks)에서 제공하는 페이지드(paged) 메모리에 상응하며, MDL(Memory Descriptor List) 구조체로 관리되는 것을 특징으로 하는 데이터 처리 방법.
The method according to claim 5,
The ring buffer is
Corresponding to the paged memory provided by the Window Driver Frameworks (WDF), the data processing method characterized in that it is managed by a Memory Descriptor List (MDL) structure.
청구항 5에 있어서,
상기 생성하는 단계는
커널 영역에 상기 이중 연결 리스트의 메모리 구조를 할당하고, 유저 영역에 상기 이중 연결 리스트의 메모리 구조를 맵핑하는 것을 특징으로 하는 데이터 처리 방법.
The method according to claim 5,
The generating step
And allocating a memory structure of the double linked list to a kernel region, and mapping a memory structure of the double linked list to a user region.
청구항 7에 있어서,
상기 생성하는 단계는
상기 유저 영역에서 상기 디바이스에 관한 정보를 확인하여, 상기 디바이스가 연결된 개수에 상응하는 프로세스 쓰레드를 생성하는 것을 특징으로 하는 데이터 처리 방법.
The method according to claim 7,
The generating step
Identifying information about the device in the user area and generating a process thread corresponding to the number of connected devices.
청구항 8에 있어서,
상기 할당하는 단계는
상기 유저 영역에서 생성된 명령(CMD)이 기생성된 명령(CMD)인지 판단하여 새로운 명령(New CMD)인 경우, 상기 커널 영역의 이중 연결 리스트의 메모리 구조에 상기 새로운 명령(New CMD)에 상응하는 엔트리 리스트를 생성하여 상기 새로운 명령(New CMD)을 할당하는 것을 특징으로 하는 데이터 처리 방법.
The method according to claim 8,
The assigning step
If it is determined that the command CMD generated in the user area is a pre-generated command CMD, the command CMD corresponds to the new command New CMD in the memory structure of the dual linked list of the kernel area. Generating a list of entries and allocating the new command (New CMD).
청구항 9에 있어서,
상기 처리하는 단계는
상기 디바이스로부터 획득한 데이터를 상기 유저 영역에 맵핑된 이중 연결 리스트의 링버퍼에 순차적으로 저장하여 버퍼링 하는 것을 특징으로 하는 데이터 처리 방법.
The method according to claim 9,
The processing step
And buffering the data obtained from the device sequentially in a ring buffer of a dual linked list mapped to the user area.
청구항 10에 있어서,
상기 처리하는 단계는
상기 이중 연결 리스트의 링버퍼에 순차적으로 저장된 데이터를 순차적으로 읽어와서 버퍼링 하는 것을 특징으로 하는 데이터 처리 방법.
The method according to claim 10,
The processing step
And sequentially buffer the data sequentially stored in the ring buffer of the dual linked list.
청구항 11에 있어서,
상기 처리하는 단계는
상기 링버퍼의 헤드 포인트(Head Point)와 테일 포인트(Tail Point)의 값 차이에 기반하여 데이터 처리를 종료하는 것을 특징으로 하는 데이터 처리 방법.
The method according to claim 11,
The processing step
And processing data based on a difference between a value of a head point and a tail point of the ring buffer.
청구항 12에 있어서,
상기 처리하는 단계는
상기 이중 연결 리스트의 헤드 포인트(Head Point)와 테일 포인트(Tail Point)의 값의 차이가 '0'이 될 때까지 상기 링버퍼에 저장된 데이터를 순차적으로 읽어와서 버퍼링 하는 것을 특징으로 하는 데이터 처리 방법.
The method according to claim 12,
The processing step
The data processing method is characterized by sequentially reading and buffering data stored in the ring buffer until the difference between the value of the head point and tail point of the dual linked list becomes '0'. .
USB 인터페이스를 통해 연결된 디바이스를 확인하고, 상기 디바이스로부터 수신한 데이터를 저장하기 위한 명령(CMD)에 상응하는 메모리 영역이 할당된 메모리 구조를 생성하고, 상기 디바이스로부터 상기 명령(CMD)에 상응하는 데이터를 수신하여 메모리 구조에 저장하는 USB 드라이버부; 및
상기 메모리 구조에 저장된 데이터를 읽어와서 상기 데이터를 처리하는 데이터 처리 제어부;
를 포함하고,
상기 USB 드라이버부는
이중 연결 리스트(Doubly Linked List)의 메모리 구조를 생성하고, 상기 이중 연결 리스트에 상기 명령(CMD)을 할당하기 위한 엔트리 리스트(Entry List)를 생성하는 것을 특징으로 하는 데이터 처리 장치.
Identify a device connected via a USB interface, create a memory structure assigned a memory area corresponding to a command CMD for storing data received from the device, and generate data corresponding to the command CMD from the device. Receiving a USB driver for storing in the memory structure; And
A data processing controller which reads data stored in the memory structure and processes the data;
Including,
The USB driver unit
And generating an entry list for generating a memory structure of a double linked list and assigning the command CMD to the double linked list.
KR1020170093523A 2017-07-24 2017-07-24 Apparatus and method for processing data KR102009469B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170093523A KR102009469B1 (en) 2017-07-24 2017-07-24 Apparatus and method for processing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170093523A KR102009469B1 (en) 2017-07-24 2017-07-24 Apparatus and method for processing data

Publications (2)

Publication Number Publication Date
KR20190011056A KR20190011056A (en) 2019-02-01
KR102009469B1 true KR102009469B1 (en) 2019-08-09

Family

ID=65368055

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170093523A KR102009469B1 (en) 2017-07-24 2017-07-24 Apparatus and method for processing data

Country Status (1)

Country Link
KR (1) KR102009469B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040175094A1 (en) * 2003-03-05 2004-09-09 Pioneer Digital Technologies, Inc. A personal video recorder storing digital information in a doubly linked list
US20070140020A1 (en) 2005-12-15 2007-06-21 Simpletech, Inc. Parallel data storage system
US20130254457A1 (en) * 2012-03-21 2013-09-26 Lsi Corporation Methods and structure for rapid offloading of cached data in a volatile cache memory of a storage controller to a nonvolatile memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040175094A1 (en) * 2003-03-05 2004-09-09 Pioneer Digital Technologies, Inc. A personal video recorder storing digital information in a doubly linked list
US20070140020A1 (en) 2005-12-15 2007-06-21 Simpletech, Inc. Parallel data storage system
US20130254457A1 (en) * 2012-03-21 2013-09-26 Lsi Corporation Methods and structure for rapid offloading of cached data in a volatile cache memory of a storage controller to a nonvolatile memory

Also Published As

Publication number Publication date
KR20190011056A (en) 2019-02-01

Similar Documents

Publication Publication Date Title
US11012626B2 (en) Electronic device for providing quality-customized image based on at least two sets of parameters
US11616900B2 (en) Electronic device for recording image as per multiple frame rates using camera and method for operating same
US10812768B2 (en) Electronic device for recording image by using multiple cameras and operating method thereof
KR102385360B1 (en) Electronic device performing image correction and operation method of thereof
US8466974B2 (en) Apparatus and methods for controlling image sensors
US11048913B2 (en) Focusing method, device and computer apparatus for realizing clear human face
JP2001189886A (en) Image pickup device, information processor, system and method for processing image and storage medium
EP3481052B1 (en) Electronic device for processing image based on priority and method for operating thereof
CN109145653B (en) Data processing method and device, electronic equipment and computer readable storage medium
US11570350B2 (en) Device, control method, and storage medium
US11422852B2 (en) Electronic device capable of increasing task management efficiency of digital signal processor
US20190251670A1 (en) Electronic device and method for correcting images using external electronic device
CN109683698B (en) Payment verification method and device, electronic equipment and computer-readable storage medium
US10827125B2 (en) Electronic device for playing video based on movement information and operating method thereof
CN110705356B (en) Function control method and related equipment
KR102009469B1 (en) Apparatus and method for processing data
KR102422448B1 (en) electronic device and method for sharing image of the same
US20200204747A1 (en) Electronic device and method for obtaining data from second image sensor by means of signal provided from first image sensor
WO2024001652A1 (en) Network adaptation method and apparatus between devices, storage medium, and electronic device
KR102499187B1 (en) Electronic device for compression processing image acquired by using camera and method for operating thefeof
KR20200101226A (en) Method for processing shooted image and electronic device thereof
US11373445B2 (en) Method and apparatus for processing data, and computer readable storage medium
CN105426885A (en) Multi-modal biological recognition device and image transmission method thereof
CN105426849A (en) Multi-modal biological recognition device and image acquisition method thereof
KR102503440B1 (en) An electronic device obtaining an security image using security processing module

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