KR20190011056A - Apparatus and method for processing data - Google Patents

Apparatus and method for processing data Download PDF

Info

Publication number
KR20190011056A
KR20190011056A KR1020170093523A KR20170093523A KR20190011056A KR 20190011056 A KR20190011056 A KR 20190011056A KR 1020170093523 A KR1020170093523 A KR 1020170093523A KR 20170093523 A KR20170093523 A KR 20170093523A KR 20190011056 A KR20190011056 A KR 20190011056A
Authority
KR
South Korea
Prior art keywords
data
cmd
data processing
list
command
Prior art date
Application number
KR1020170093523A
Other languages
Korean (ko)
Other versions
KR102009469B1 (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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Image Input (AREA)

Abstract

Disclosed are an apparatus for processing data and a method thereof. According to an embodiment of the present invention, the method of processing data using the apparatus for processing data comprises the following steps: checking 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 CMD to the memory structure; and receiving data corresponding to the CMD from the device and processing the data by buffering in the memory structure.

Description

데이터 처리 장치 및 방법 {APPARATUS AND METHOD FOR PROCESSING DATA}[0001] APPARATUS AND METHOD FOR PROCESSING DATA [0002]

본 발명은 데이터 처리 기술에 관한 것으로, 보다 상세하게는 실시간 대용량 데이터를 처리하는 기술에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data processing technique, and more particularly, to a technique for processing real time large data.

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

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

그러나, 소형화된 홍채인식제품이 35~100Cm 거리에서 1.1Cm의 작은 홍채를 240화소 이상의 고해상도로 캡쳐(Capture)할 수 있으면서, 홍채의 인식률을 높이기 위해서는 광학부품의 사양 조절에 한계가 있다. However, the miniaturized iris recognition product 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, and there is a limitation in controlling the specification of the optical component in order to increase the recognition rate of the iris.

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

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

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

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

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

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

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

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

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

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

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

상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 데이터 처리 방법은 데이터 처리 장치의 데이터 처리 방법에 있어서, USB 인터페이스를 통해 연결된 디바이스를 확인하고, 상기 디바이스로부터 수신한 데이터를 저장하기 위한 메모리 구조를 생성하는 단계; 태스크를 수행하기 위한 명령(CMD)을 생성하여, 상기 명령(CMD)에 상응하는 메모리 영역을 상기 메모리 구조에 할당하는 단계 및 상기 디바이스로부터 상기 명령(CMD)에 상응하는 데이터를 수신하고, 상기 데이터를 상기 메모리 구조에 버퍼링 하여 처리하는 단계를 포함한다.According to an aspect of the present invention, there is provided a data processing method for a data processing apparatus, including: checking a device connected through a USB interface, storing data received from the device, Creating a structure; (CMD) for performing a task, assigning a memory area corresponding to the command (CMD) to the memory structure, receiving data corresponding to the command (CMD) from the device, To the memory structure.

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

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

이 때, 상기 이중 연결 리스트는 복수개의 엔트리 리스트들의 테일 포인트와 헤드 포인트가 서로 연결되어 구성될 수 있다.At this time, the dual linked list may be configured such that a tail point and a head point of a plurality of entry lists are connected 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) 구조체로 관리될 수 있다.At this time, the ring buffer corresponds to a paged memory provided by the Window Driver Frameworks (WDF), and can be managed by a MDL (Memory Descriptor List) structure.

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

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

이 때, 상기 할당하는 단계는 상기 유저 영역에서 생성된 명령(CMD)이 기생성된 명령(CMD)인지 판단하여 새로운 명령(New CMD)인 경우, 상기 커널 영역의 이중 연결 리스트의 메모리 구조에 상기 새로운 명령(New CMD)에 상응하는 엔트리 리스트를 생성할 수 있다.In this case, in the case where the command (CMD) generated in the user area is a pre-generated command (CMD) and the new command is a new command (New CMD) An entry list corresponding to a new command (New CMD) can be generated.

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

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

이 때, 상기 처리하는 단계는 상기 링버퍼의 헤드 포인트(Head Point)와 테일 포인트(Tail Point)의 값 차이에 기반하여 데이터 처리를 종료할 수 있다.At this time, the processing may terminate the data processing based on the difference between the values of 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 the data stored in the ring buffer until the difference between the head point and the tail point of the dual linked list becomes '0' can do.

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

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

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

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

또한, 본 발명은 이미지 센서를 이용한 홍채인식에 있어서 데이터 처리 성능 향상과 데이터 손실을 방지할 수 있다.In addition, the present invention can improve data processing performance and 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 showing a data acquisition apparatus and a data processing apparatus according to an embodiment of the present invention.
2 is a detailed block diagram showing an example of the data acquisition apparatus shown in FIG.
3 is a detailed block diagram showing another example of the data acquisition apparatus shown in FIG.
4 is a detailed block diagram illustrating an example of the data processing apparatus shown in FIG.
5 is a diagram illustrating a memory structure of a dual connection list according to an embodiment of the present invention.
6 is a flowchart illustrating a data processing method according to an embodiment of the present invention.
FIG. 7 is a flowchart illustrating an example of the memory structure generating step shown in FIG. 6 in detail.
FIG. 8 is an operation flowchart showing an example of the kernel area initialization step shown in FIG. 7 in detail.
FIG. 9 is an operation flowchart illustrating an example of the user area initialization step shown in FIG. 7 in detail.
FIG. 10 is an operational flow chart detailing an example of the instruction (CMD) assignment step shown in FIG.
FIG. 11 is an operation flow chart showing an example of the data processing step shown in FIG. 6 in detail.
12 is a block diagram illustrating a computer system in accordance with an embodiment of the present invention.

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

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when an element is referred to as "comprising ", it means that it can include other elements as well, without excluding other elements unless specifically stated otherwise.

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

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

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

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

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

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

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

이 때, 데이터 획득 장치(10)와 데이터 처리 장치(100)는 서로 USB 인터페이스를 이용하여 연결될 수 있고, USB 프로토콜을 통해 실시간으로 데이터를 전송할 수 있다.At this time, the data acquisition apparatus 10 and the data processing apparatus 100 can be connected to each other using a USB interface, and can transmit data in real time via 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에 도시된 데이터 획득 장치의 다른 예를 세부적으로 나타낸 블록도이다.2 is a detailed block diagram showing an example of the data acquisition apparatus shown in FIG. 3 is a detailed block diagram showing another example of the data acquisition apparatus shown in FIG.

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

이 때, 데이터 획득부(11)는 데이터를 수신, 입력 또는 센싱하여 데이터를 획득할 수 있다.At this time, the data acquisition unit 11 can receive, input or sense data to acquire data.

이 때, 데이터 획득부(11)는 데이터를 획득하기 위한 카메라 유닛, 센서 유닛, 네트워크 인터페이스 유닛 또는 사용자 인터페이스 유닛 등을 더 포함할 수 있다.At this time, the data acquiring 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 generating unit 12 may receive the acquired data and generate data processed by the data processing apparatus 100 to process the data.

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

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

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

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

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

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

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

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

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

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

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

이 때, 데이터 처리 장치(100)는 실시간으로 수신한 홍채이미지의 홍채인식을 수행할 수 있다.At this time, the data processing apparatus 100 can 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 shown in FIG.

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

본 발명의 일실시예에 따른 데이터 처리 장치(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 later.

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

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

이 때, USB 드라이버부(110)는 커널(Kernel) 영역에서 구동하는 WDF(Window Driver Frameworks) 기반 USB 드라이버에 상응할 수 있다.At this time, the USB driver 110 may correspond to a Windows Driver Framework (WDF) -based USB driver that runs in a kernel area.

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

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

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

이 때, USB 드라이버부(110)는 연결된 디바이스에 대한 USB 열거(USB Enumeration) 동작을 수행하여 디바이스를 인식할 수 있다.At this time, the USB driver unit 110 can perform USB enumeration operation on the connected device to recognize the device.

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

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

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

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

이 때, USB 드라이버부(110)는 이중 연결 리스트의 초기(Initial) 엔트리 리스트(Entry list)를 생성할 수 있고, 초기 엔트리 리스트에 링버퍼를 생성하여 할당할 수 있다.At this time, the USB driver unit 110 can generate an initial entry list of the dual connection list, and can create and allocate a ring buffer in the initial entry list.

이 때, 이중 연결 리스트는 명령(CMD)을 할당하기 위한 엔트리 리스트(Entry List)를 추가로 생성할 수 있다.At this time, the dual link list can additionally generate an entry list for assigning the command CMD.

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

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

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

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

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

데이터 처리 제어부(120)는 유저 영역을 초기화할 수 있다.The data processing control unit 120 can 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 can initialize all the variables previously declared in the user area.

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

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

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

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

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

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

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

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

이 때, 데이터 처리 제어부(120)는 USB 드라이버부(110)에게 WDF 요청 처리를 수행할 수 있다(S520).At this time, the data processing control unit 120 can perform the WDF request processing to the USB driver unit 110 (S520).

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

USB 드라이버부(110)는 요청한 명령(CMD)이 새로운 명령(New CMD) 인지 판단할 수 있다(S530).The USB driver unit 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).The USB driver unit 110 can process the existing command CMD by referring to the dual linked list when the requested command CMD is the pre-allocated CMD command and if the new command CMD is a new command , An entry list corresponding to a new command (New CMD) may be created in the memory structure of the dual linked list in the kernel area and a new CMD may be allocated (S540).

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

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

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

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

예를 들어, 단계(S550)는 데이터 획득 장치(10)가 홍채이미지를 획득하여 데이터 처리 장치(100)에게 전송할 수 있다.For example, the step S550 can acquire the iris image from the data acquisition device 10 and transmit it to the data processing apparatus 100. [

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

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

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

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

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

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

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

이 때, USB 드라이버부(110)는 데이터를 저장할 다음 링버퍼의 테일 포인트를 계산할 수 있다.At this time, the USB driver unit 110 may calculate the tail point of the next ring buffer in which data is to be stored.

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

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

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

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

예를 들어, 데이터 처리 제어부(120)는 링버퍼에 저장된 홍채이미지를 순차적으로 읽어와서 홍채인식을 수행할 수 있다.For example, the data processing controller 120 can sequentially read 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 control unit 120 can end the procedure and delete the head list for all the head points.

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

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

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

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

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

이 때, 데이터 처리 제어부(120)는 홍채 부위만 크롭된 홍채 이미지를 탬플릿 생성부(130)에 전달할 수 있다.At this time, the data processing control unit 120 can transmit the iris image cropped only to the iris region to the template generation unit 130.

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

이 때, 탬플릿 생성부(130)는 생성한 탬플릿을 탬플릿 매칭부(140)에 전달할 수 있다.At this time, the template generating unit 130 can transmit the generated template to the template matching unit 140.

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

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

도 5는 본 발명의 일실시예에 따른 이중 연결 리스트와 링버퍼 구조를 나타낸 도면이다.5 is a diagram illustrating a dual link 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, each time a new command (New CMD) for performing a task is generated, the dual linked list according to an embodiment of the present invention includes entry lists 20-1 and 20-2 -2, 20-3).

이 때, 이중 연결 리스트는 엔트리 리스트(20-1, 20-2, 20-3) 별로 링버퍼(30-1, 30-2, 30-3)를 생성하여 할당할 수 있고, 태스크 별로 실시간으로 수신한 데이터를 링버퍼(30-1, 30-2, 30-3)에 저장할 수 있다.At this time, the dual link list can be created and assigned to the ring buffers 30-1, 30-2, and 30-3 for each of the entry lists 20-1, 20-2, and 20-3, The received data can 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 can sequentially store the received data from the 0th memory to the 64th memory, and if data is stored up to the 64th memory, You can skip over and overwrite the data again, or you can skip back to the 63rd memory and overwrite and store the data again.

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

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

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

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

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

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

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

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

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

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

이 때, 단계(S211)는 연결된 디바이스에 대한 USB 열거(USB Enumeration) 동작을 수행하여 디바이스를 인식할 수 있다.At this time, the step S211 can recognize the device by performing USB enumeration operation for the connected device.

또한, 단계(S210)는 커널 영역을 초기화할 수 있다(S212).In addition, the step S210 can initialize the kernel area (S212).

도 8을 참조하면, 단계(S212)는 먼저 IOCTL 셋팅을 수행할 수 있다(S310).Referring to FIG. 8, in operation S212, an IOCTL setting may be performed in operation S310.

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

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

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

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

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

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

이 때, 이중 연결 리스트는 명령(CMD)을 할당하기 위한 엔트리 리스트(Entry List)를 추가로 생성할 수 있다.At this time, the dual link list can additionally generate an entry list for assigning the command CMD.

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

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

또한, 단계(S212)는 커널 영역에 이벤트를 할당할 수 있다(S340).In addition, the step S212 may allocate an event to the kernel area (S340).

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

또한, 단계(S212)는 맵핑을 수행할 수 있다(S350).In addition, the step S212 may perform the mapping (S350).

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

또한, 단계(S210)는 유저 영역을 초기화할 수 있다(S213).In addition, the step S210 can initialize the user area (S213).

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

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

또한, 단계(S213)는 USB 인터페이스를 통해 연결된 디바이스를 확인할 수 있다(S420).In addition, in step S213, the device connected through the USB interface can be confirmed (S420).

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

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

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

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

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

또한, 단계(S213)는 이벤트를 대기할 수 있다(S440).In addition, the step S213 may wait for the event (S440).

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

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

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

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

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

또한, 단계(S220)는 WDF 요청 처리를 수행할 수 있다(S520).In addition, the step S220 may perform the WDF request processing (S520).

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

또한, 단계(220)는 요청한 명령(CMD)이 새로운 명령(New CMD) 인지 판단할 수 있다(S530).In addition, step 220 may determine whether the requested command CMD is a new command (New CMD) (S530).

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

또한, 단계(S220)는 WDF 요청을 송신할 수 있다(S550).In addition, step S220 may transmit the WDF request (S550).

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

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

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

예를 들어, 단계(S550)는 데이터 획득 장치(10)가 홍채이미지를 획득하여 데이터 처리 장치(100)에게 전송할 수 있다.For example, the step S550 can acquire the iris image from the data acquisition device 10 and transmit it 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 the ring buffer point (S610).

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

또한, 단계(S230)는 데이터 버퍼링을 수행할 수 있다(S620).Also, step S230 may perform data buffering (step S620).

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

예를 들어, 단계(S620)는 데이터 획득 장치(10)로부터 수신한 홍채이미지를 링버퍼에 순차적으로 저장할 수 있다.For example, the 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 in which to store the data.

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

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

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

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

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

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

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

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

이에 따라, 본 발명의 일실시예에 따른 데이터 처리 방법은 실시간으로 수신하는 데이터 손실을 방지할 수 있다.Accordingly, the data processing method according to an embodiment of the present invention can prevent data loss which is 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 iris recognition is performed, iris recognition may be performed by partially cropping only iris regions in the iris image.

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

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

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

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

도 12는 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 블록도이다.12 is a block diagram illustrating a computer system in accordance with 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 can be implemented in a computer system 1100 such as a computer-readable recording medium. 12, the computer system 1100 includes one or more processors 1110, a memory 1130, a user interface input device 1140, a user interface output device 1150, 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 the processing instructions stored in the memory 1130 or the storage 1160. Memory 1130 and storage 1160 can be various types of volatile or non-volatile storage media. For example, the memory may include ROM 1131 or 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 above, but the embodiments may be modified in various ways All or some of the embodiments may be selectively 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:
11-1: a left iris image capturing unit 11-2: a right iris image capturing unit
11-3: face image capture unit
12: Data generator 13: USB controller
20-1, 20-2, 20-3: entry list
30-1, 30-2, 30-3: Ring buffer
100: data processing apparatus 110: USB driver section
120: Data processing control unit 130: Template generating unit
140: a template matching unit 150: a network interface unit
1100: Computer system 1110: Processor
1120: bus 1130: memory
1131: ROM 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)에 상응하는 데이터를 수신하고, 상기 데이터를 상기 메모리 구조에 버퍼링하여 처리하는 단계;
를 포함하는 것을 특징으로 하는 데이터 처리 방법.
A data processing method of a 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, from the device, data corresponding to the command (CMD), buffering and processing the data in the memory structure;
Wherein the data processing method comprises the steps of:
청구항 1에 있어서,
상기 생성하는 단계는
이중 연결 리스트(Doubly Linked List)의 메모리 구조를 생성하는 것을 특징으로 하는 데이터 처리 방법.
The method according to claim 1,
The generating step
And generating a memory structure of a Doubly Linked List.
청구항 2에 있어서,
상기 생성하는 단계는
상기 이중 연결 리스트에 상기 명령(CMD)을 할당하기 위한 엔트리 리스트(Entry List)를 생성하는 것을 특징으로 하는 데이터 처리 방법.
The method of claim 2,
The generating step
And generating an entry list (Entry List) for assigning the command (CMD) to the double linked list.
청구항 3에 있어서,
상기 이중 연결 리스트는
복수개의 엔트리 리스트들의 테일 포인트와 헤드 포인트가 서로 연결되어 구성되는 것을 특징으로 하는 데이터 처리 방법.
The method of claim 3,
The double linked list
Wherein a tail point and a head point of a plurality of entry lists are connected to each other.
청구항 4에 있어서,
상기 엔트리 리스트는
링버퍼의 구조에 상응하는 것을 특징으로 하는 데이터 처리 방법.
The method of claim 4,
The entry list
Characterized in that it corresponds to the structure of the ring buffer.
청구항 5에 있어서,
상기 링버퍼는
WDF(Window Driver Frameworks)에서 제공하는 페이지드(paged) 메모리에 상응하며, MDL(Memory Descriptor List) 구조체로 관리되는 것을 특징으로 하는 데이터 처리 방법.
The method of claim 5,
The ring buffer
Wherein the data is managed by a MDL (Memory Descriptor List) structure corresponding to a paged memory provided by a WDF (Window Driver Frameworks).
청구항 5에 있어서,
상기 생성하는 단계는
커널 영역에 상기 이중 연결 리스트의 메모리 구조를 할당하고, 유저 영역에 상기 이중 연결 리스트의 메모리 구조를 맵핑하는 것을 특징으로 하는 데이터 처리 방법.
The method of claim 5,
The generating step
Allocating a memory structure of the dual link list to a kernel area and mapping a memory structure of the dual link list to a user area.
청구항 7에 있어서,
상기 생성하는 단계는
상기 유저 영역에서 상기 디바이스에 관한 정보를 확인하여, 상기 디바이스가 연결된 개수에 상응하는 프로세스 쓰레드를 생성하는 것을 특징으로 하는 데이터 처리 방법.
The method of claim 7,
The generating step
Checking information about the device in the user area, and generating a process thread corresponding to the number of devices connected to the device.
청구항 8에 있어서,
상기 할당하는 단계는
상기 유저 영역에서 생성된 명령(CMD)이 기생성된 명령(CMD)인지 판단하여 새로운 명령(New CMD)인 경우, 상기 커널 영역의 이중 연결 리스트의 메모리 구조에 상기 새로운 명령(New CMD)에 상응하는 엔트리 리스트를 생성하여 상기 새로운 명령(New CMD)을 할당하는 것을 특징으로 하는 데이터 처리 방법.
The method of claim 8,
The allocating step
(New CMD) to the memory structure of the dual linked list of the kernel area if it is judged that the command (CMD) generated in the user area is a previously generated command (CMD) And generates a new entry (New CMD).
청구항 9에 있어서,
상기 처리하는 단계는
상기 디바이스로부터 획득한 데이터를 상기 유저 영역에 맵핑된 이중 연결 리스트의 링버퍼에 순차적으로 저장하여 버퍼링 하는 것을 특징으로 하는 데이터 처리 방법.
The method of claim 9,
The processing step
And sequentially storing the data acquired from the device in the ring buffer of the dual linked list mapped to the user area, and buffering the data.
청구항 10에 있어서,
상기 처리하는 단계는
상기 이중 연결 리스트의 링버퍼에 순차적으로 저장된 데이터를 순차적으로 읽어와서 버퍼링 하는 것을 특징으로 하는 데이터 처리 방법.
The method of claim 10,
The processing step
And sequentially reading and buffering the data sequentially stored in the ring buffer of the dual linked list.
청구항 11에 있어서,
상기 처리하는 단계는
상기 링버퍼의 헤드 포인트(Head Point)와 테일 포인트(Tail Point)의 값 차이에 기반하여 데이터 처리를 종료하는 것을 특징으로 하는 데이터 처리 방법.
The method of claim 11,
The processing step
Wherein the data processing is terminated 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 of claim 12,
The processing step
And sequentially reads and buffers data stored in the ring buffer until a difference between a head point and a tail point of the dual linked list becomes '0'. .
USB 인터페이스를 통해 연결된 디바이스를 확인하고, 상기 디바이스로부터 수신한 데이터를 저장하기 위한 명령(CMD)에 상응하는 메모리 영역이 할당된 메모리 구조를 생성하고, 상기 디바이스로부터 상기 명령(CMD)에 상응하는 데이터를 수신하여 메모리 구조에 저장하는 USB 드라이버부; 및
상기 메모리 구조에 저장된 데이터를 읽어와서 상기 데이터를 처리하는 데이터 처리 제어부;
를 포함하는 것을 특징으로 하는 데이터 처리 장치.
(CMD) to which a memory area corresponding to a command (CMD) for storing data received from the device is allocated, from a device connected via a USB interface, A USB driver unit for receiving and storing the received data in a memory structure; And
A data processing controller for reading data stored in the memory structure and processing the data;
The data processing apparatus comprising:
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 true KR20190011056A (en) 2019-02-01
KR102009469B1 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210004503A (en) * 2019-07-05 2021-01-13 에스케이하이닉스 주식회사 Memory system, memory controller, and operating method

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210004503A (en) * 2019-07-05 2021-01-13 에스케이하이닉스 주식회사 Memory system, memory controller, and operating method

Also Published As

Publication number Publication date
KR102009469B1 (en) 2019-08-09

Similar Documents

Publication Publication Date Title
EP3579544B1 (en) Electronic device for providing quality-customized image and method of controlling the same
KR102385360B1 (en) Electronic device performing image correction and operation method of thereof
US12010423B2 (en) Electronic device for recording image as per multiple frame rates using camera and method for operating same
CN109756671B (en) Electronic device for recording images using multiple cameras and method of operating the same
US10956774B2 (en) Electronic device for acquiring image using plurality of cameras and method for processing image using the same
US11048913B2 (en) Focusing method, device and computer apparatus for realizing clear human face
US20100118169A1 (en) Apparatus and methods for controlling image sensors
KR102383134B1 (en) Electronic device for processing image based on priority and method for operating thefeof
KR102495763B1 (en) Electronic device and method for correcting images corrected by a first image processing mode in external electronic device using a second image processing mode
US9886766B2 (en) Electronic device and method for adding data to image and extracting added data from image
CN109068059B (en) Method for calling camera, mobile terminal and storage medium
US11558540B2 (en) Image capturing apparatus, control method, and computer-readable storage medium
US11765469B2 (en) Image capturing apparatus, device, control method, and computer-readable storage medium
CN109683698B (en) Payment verification method and device, electronic equipment and computer-readable storage medium
US20190251670A1 (en) Electronic device and method for correcting images using external electronic device
US11422852B2 (en) Electronic device capable of increasing task management efficiency of digital signal processor
US11126322B2 (en) Electronic device and method for sharing image with external device using image link information
KR20190011056A (en) Apparatus and method for processing data
US20210216801A1 (en) Information processing apparatus, computter-readable recording medium recording fake determination program, and fake determination method
CN112163436A (en) Information identification system, method and device
US11843847B2 (en) Device, information processing apparatus, control method therefor, and computer-readable storage medium
US11483464B2 (en) Image capturing apparatus, device, control method, and computer-readable storage medium
US11380096B2 (en) Electronic device for performing image processing and method thereof
JP7298709B2 (en) Parameter determination device, parameter determination method and recording medium
US11647272B2 (en) Image capturing apparatus, control method, and computer-readable storage medium

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