KR101716862B1 - 영상데이터 관리 장치 및 방법 - Google Patents

영상데이터 관리 장치 및 방법 Download PDF

Info

Publication number
KR101716862B1
KR101716862B1 KR1020160127640A KR20160127640A KR101716862B1 KR 101716862 B1 KR101716862 B1 KR 101716862B1 KR 1020160127640 A KR1020160127640 A KR 1020160127640A KR 20160127640 A KR20160127640 A KR 20160127640A KR 101716862 B1 KR101716862 B1 KR 101716862B1
Authority
KR
South Korea
Prior art keywords
shared memory
image data
control unit
state
image
Prior art date
Application number
KR1020160127640A
Other languages
English (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 KR1020160127640A priority Critical patent/KR101716862B1/ko
Priority to PCT/KR2016/013227 priority patent/WO2018066750A1/ko
Priority to US15/318,392 priority patent/US10530980B2/en
Application granted granted Critical
Publication of KR101716862B1 publication Critical patent/KR101716862B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/21Intermediate information storage
    • H04N1/2104Intermediate information storage for one or a few pictures
    • H04N1/2112Intermediate information storage for one or a few pictures using still video cameras
    • H04N1/2137Intermediate information storage for one or a few pictures using still video cameras with temporary storage before final recording, e.g. in a frame buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/71Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F17/30784
    • 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/44Arrangements for executing specific programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/90Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • H04N5/77Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television camera

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Image Input (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

모바일과 연결된 영상촬영장치로부터 상기 모바일로 전송된 영상데이터를 관리하는 영상데이터 관리 장치가 개시된다. 상기 영상데이터 관리 장치는, 네이티브 레이어(native layer)에 위치하고 자바 레이어(java layer)와 통신하는 제 1 제어부, 상기 자바 레이어에 위치하고 상기 네이티브 레이어와 통신하는 제 2 제어부 및 상기 영상촬영장치에서 전송되는 영상데이터가 저장되는 링버퍼 형태의 복수의 공유메모리들을 구비할 수 있다. 상기 제 1 제어부는 상기 공유메모리들의 순서에 따라 상기 영상데이터를 프레임 단위로 대응하는 공유메모리에 저장하되 상기 공유메모리의 상태정보가 제 1 상태인 경우에만 상기 영상촬영장치에서 전송되는 영상데이터를 프레임 단위로 상기 공유메모리에 저장하고, 상기 공유메모리들 각각에 상기 프레임 단위의 영상데이터의 저장이 완료되면 상기 공유메모리의 상태정보를 제 2 상태로 변경할 수 있다. 상기 제 2 제어부는 상기 공유메모리들의 순서에 따라 상기 저장된 영상데이터를 리드하되 상기 공유메모리의 상태정보가 상기 제 2 상태인 경우에만 상기 공유메모리에 저장되어 있는 영상데이터를 리드하고, 상기 공유메모리에 저장되어 있는 영상데이터의 리드가 완료되면 상기 공유메모리의 상태정보를 상기 제 1 상태로 변경할 수 있다.

Description

영상데이터 관리 장치 및 방법{Apparatus for managing video data and method the same}
본 발명은 영상데이터 관리 장치 및 방법에 관한 것으로, 특히 모바일과 연결된 영상촬영장치에서 촬영된 영상데이터를 고속으로 상기 모바일의 네이티브 레이어(native layer)에서 자바 레이어(java layer)로 전달할 수 있는 영상데이터 관리 장치 및 방법에 관한 것이다.
자바 언어는 모바일 환경에서 지속적으로 사용된 언어다. CLDC(Connected Limited Device Configuration)와 MIDP(Mobile Information Device Profile)로 대표되는 J2ME(java 2 Platform, Standard Edition)를 비롯해 한국의 무선 인터넷 표준 플랫폼인 WIPI(Wireless Internet Platform for Interoperability) 등에서 널리 사용되고 있다.
자바 언어로 개발한 어플리케이션은 기본적으로 JVM/KVM(Java Virtual Machine)/(Kilobyte Virtual Machine)과 같은 가상 머신 위에서 동작하기 때문에 스마트폰과 같은 모바일에서 안정성이 있다. 또한, 자바 언어는 C/C++ 언어나 어셈블리 언어보다 개발이 용이하고 개발자들이 많이 선호하는 언어로 모바일 환경에서 많이 사용되고 있다. 최근 출시된 스마트폰들에서도 자바를 이용해 애플리케이션을 사용하고 있어 모바일 환경에서 자바 언어는 점차 확대되고 있는 추세이다.
안드로이드(android) 시스템에서 자바 레이어(java layer)와 네이티브 레이어(native layer)는 이종의 프로그래밍 언어로 작성된 프로그램이 각각 동작하는 영역으로서 직접 통신이 불가능한다. 따라서 안드로이드 시스템에서는 자바 레이어에서 동작하는 프로그램과 네이티브 레이어에서 동작하는 프로그램을 연동해 주기 위하여 JNI(Java Native Interface) 프레임워크를 제공한다.
JNI의 기본 데이터 전달 방식은 메모리 복사에 기초한다. 자바 레이어에 있는 메모리 영역은 네이티브 레이어에서는 접근할 수 없고, 네이티브 레이어에 있는 메모리 영역은 자바 레이어에서 접근할 수 없다. 따라서 영상데이터 등의 데이터를 어플리케이션으로 전송하고자 하는 경우, 네이티브 레이어의 메모리 영역에 수신된 영상데이터를 저장한 후 자바 레이어에 있는 메모리 영역에 복사하는 방식을 이용하고 있다. 즉, 종래에는 모바일에 연결된 영상촬영장치로부터 모바일로 전송된 영상데이터를 어플리케이션으로 전송하기 위해서는, 네이티브 레이어의 메모리 영역에 수신된 영상데이터를 저장(write) 및 리드(read)한 후 리드된 데이터를 다시 자바 레이어의 메모리 영역에 저장(write)한 후 리드하여 어플리케이션으로 전달하는 방식을 사용하고 있다.
그러나 이와 같은 방법을 이용하여 데이터를 네이티브 레이어에서 자바 레이어로 전달하는 경우 전송속도가 매우 느리므로, 비디오카메라와 같은 영상촬영장치에서 촬영된 영상은 어플리케이션에서 사실상 사용이 불가능하고 영상을 재생하더라고 끊김현상이 발생하는 문제점이 있다. 즉, 자바에서는 USB로 연결되는 장치 제어를 위해 USB Host API (Application Programming Interface) 세트를 제공하고 있으나, UVC (USB Video Class) 카메라장치와 같이 대용량 데이터가 발생하는 경우 데이터 유실 및 지연 등으로 SD 해상도(640 x 480, MJPEG(Motion JPEG) 압축)에서 초당 3프레임의 달성이 어렵다. 이는 최대 버퍼사이즈의 제한, 자바 레이어와 네이티브 레이어 사이에서의 전송 지연 등의 문제점이 있기 때문이다. 영상 데이터의 경우 초당 24프레임 이상이 되어야 사용자가 영상을 시청함에 있어 영상이 자연스럽게 느껴지기 때문에 초당 3프레임으로는 카메라장치의 사용이 사실상 불가능한 문제점이 있다.
본 발명이 해결하고자 하는 과제는 외부촬영장치에서 촬영된 영상데이터를 고속으로 모바일의 네이티브 레이어(native layer)에서 자바 레이어(java layer)로 전달할 수 있는 영상데이터 관리 장치 및 방법을 제공하는데 있다.
상기 과제를 달성하기 위한 본 발명의 일 실시예에 따른 모바일과 연결된 영상촬영장치로부터 상기 모바일로 전송된 영상데이터를 관리하는 영상데이터 관리 장치는, 네이티브 레이어(native layer)에 위치하고 자바 레이어(java layer)와 통신하는 제 1 제어부, 상기 자바 레이어에 위치하고 상기 네이티브 레이어와 통신하는 제 2 제어부 및 상기 영상촬영장치에서 전송되는 영상데이터가 저장되는 링버퍼 형태의 복수의 공유메모리들을 구비할 수 있다. 상기 제 1 제어부는 상기 공유메모리들의 순서에 따라 상기 영상데이터를 프레임 단위로 대응하는 공유메모리에 저장하되 상기 공유메모리의 상태정보가 제 1 상태인 경우에만 상기 영상촬영장치에서 전송되는 영상데이터를 프레임 단위로 상기 공유메모리에 저장하고, 상기 공유메모리들 각각에 상기 프레임 단위의 영상데이터의 저장이 완료되면 상기 공유메모리의 상태정보를 제 2 상태로 변경할 수 있다. 상기 제 2 제어부는 상기 공유메모리들의 순서에 따라 상기 저장된 영상데이터를 리드하되 상기 공유메모리의 상태정보가 상기 제 2 상태인 경우에만 상기 공유메모리에 저장되어 있는 영상데이터를 리드하고, 상기 공유메모리에 저장되어 있는 영상데이터의 리드가 완료되면 상기 공유메모리의 상태정보를 상기 제 1 상태로 변경할 수 있다.
상기 제 1 제어부는 상기 공유메모리에 저장할 상기 영상데이터가 수신되었으나 상기 제 1 상태의 공유메모리가 없는 경우, 상기 공유메모리의 생성을 요청하는 생성요청신호를 상기 제 2 제어부로 전송하고, 상기 제 2 제어부는 상기 생성요청신호를 수신한 경우 공유메모리를 추가로 생성하면서 마지막 순서의 공유메모리의 다음 순서로 설정하고, 상기 추가로 생성된 공유메모리의 상태정보를 상기 제 1 상태로 지정하며, 상기 추가로 생성된 공유메모리의 정보를 상기 제 1 제어부로 전송할 수 있다.
상기 제 1 제어부는 상기 모바일에 상기 영상촬영장치가 연결된 것으로 인식하는 경우 또는 상기 모바일에 연결된 상기 영상촬영장치로부터 상기 영상데이터를 수신하는 경우, 적어도 하나의 상기 공유메모리의 생성을 요청하는 생성요청신호를 상기 제 2 제어부로 전송하고, 상기 제 2 제어부는 상기 생성요청신호를 수신한 경우 상기 적어도 하나의 공유메모리를 생성하고, 상기 적어도 하나의 공유메모리의 상태정보를 상기 제 1 상태로 지정하며, 상기 적어도 하나의 공유메모리의 정보를 상기 제 1 제어부로 전송할 수 있다.
상기 생성요청신호는 상기 영상데이터의 프레임 크기 정보를 포함하고, 상기 제 2 제어부는 상기 영상데이터의 프레임 크기 정보를 이용하여 상기 프레임 크기 이상의 크기를 가지는 공유메모리를 생성하며, 상기 생성된 공유메모리의 어드레스 정보 및 상태정보를 포함하는 상기 공유메모리의 정보를 상기 제 1 제어부로 전송할 수 있다.
상기 제 1 제어부는 상기 모바일과 연결된 영상촬영장치가 분리된 경우 또는 상기 영상촬영장치에서 상기 영상데이터가 수신되지 않는 경우, 상기 제 2 제어부로 종료신호를 전송하고, 상기 제 2 제어부는 상기 종료신호를 수신한 경우 상기 공유메모리로 설정된 영역을 해제할 수 있다.
상기 영상데이터 관리 장치는, 상기 네이티브 레이어에 위치하고, 상기 영상촬영장치에 배타적으로 접근 가능한 파일 디스크립터(file descriptor)를 포함하며, 상기 영상촬영장치의 연결 여부를 판단하고 상기 영상촬영장치의 접근 권한을 관리하는 추상화부, 상기 네이티브 레이어에 위치하고, 상기 영상촬영장치를 제어하기 위한 함수들을 포함하는 라이브러리 및 상기 네이티브 레이어에 위치하고, 상기 영상촬영장치에서 수신되는 상기 영상데이터를 상기 제 1 제어부로 전달하며, 상기 라이브러리의 함수를 호출하여 상기 영상촬영장치의 기능을 제어하는 장치제어부를 더 구비할 수 있다.
상기 과제를 달성하기 위한 본 발명의 일 실시예에 따른 모바일과 연결된 영상촬영장치로부터 상기 모바일로 전송된 영상데이터를 관리하는 영상데이터 관리 방법은, 네이티브 레이어(native layer)에 위치한 제 1 제어부에서, 상기 모바일에 상기 영상촬영장치가 연결된 것으로 인식하는 경우 또는 상기 모바일에 연결된 상기 영상촬영장치로부터 상기 영상데이터를 수신하는 경우, 상기 영상촬영장치의 정보 또는 상기 영상데이터의 정보를 이용하여 상기 공유메모리의 개수를 설정하고 상기 설정된 개수의 공유메모리들의 생성을 요청하는 생성요청신호를 자바 레이어(java layer)에 위치한 제 2 제어부로 전송하는 단계, 상기 제 2 제어부에서, 상기 생성요청신호를 수신한 경우 링버퍼 형태의 공유메모리들을 생성하면서 상기 공유메모리들의 순서를 설정하고, 상기 공유메모리의 상태정보를 상기 제 1 상태로 지정하며, 상기 공유메모리들 각각의 정보를 상기 제 1 제어부로 전송하는 단계, 상기 제 1 제어부에서, 상기 공유메모리들의 순서에 따라 상기 영상데이터를 프레임 단위로 대응하는 공유메모리에 저장하되 상기 공유메모리의 상태정보가 제 1 상태인 경우에만 상기 영상촬영장치에서 전송되는 영상데이터를 프레임 단위로 상기 공유메모리에 저장하고, 상기 공유메모리들 각각에 상기 프레임 단위의 영상데이터의 저장이 완료되면 상기 공유메모리의 상태정보를 제 2 상태로 변경하는 단계 및 상기 제 2 제어부에서, 상기 공유메모리들의 순서에 따라 상기 저장된 영상데이터를 리드하되 상기 공유메모리의 상태정보가 상기 제 2 상태인 경우에만 상기 공유메모리에 저장되어 있는 영상데이터를 리드하고, 상기 공유메모리에 저장되어 있는 영상데이터의 리드가 완료되면 상기 공유메모리의 상태정보를 상기 제 1 상태로 변경하는 단계를 구비할 수 있다.
상기 영상데이터 관리 방법은, 상기 공유메모리에 저장할 상기 영상데이터가 수신되었으나 상기 제 1 상태의 공유메모리가 없는 경우, 상기 제 1 제어부에서 상기 공유메모리의 생성을 요청하는 생성요청신호를 상기 제 2 제어부로 전송하는 단계 및 상기 제 2 제어부에서, 상기 생성요청신호를 수신한 경우 공유메모리를 추가로 생성하면서 마지막 순서의 공유메모리의 다음 순서로 설정하고, 상기 추가로 생성된 공유메모리의 상태정보를 상기 제 1 상태로 지정하며, 상기 추가로 생성된 공유메모리의 정보를 상기 제 1 제어부로 전송하는 단계를 더 포함할 수 있다.
상기 과제를 달성하기 위한 본 발명의 일 실시예에 따른 모바일과 연결된 영상촬영장치로부터 상기 모바일로 전송된 영상데이터를 관리하는 영상데이터 관리 방법은, 네이티브 레이어(native layer)에 위치한 제 1 제어부에서, 상기 공유메모리들의 순서에 따라 상기 영상데이터를 프레임 단위로 대응하는 공유메모리에 저장하되 상기 공유메모리의 상태정보가 제 1 상태인 경우에만 상기 영상촬영장치에서 전송되는 영상데이터를 프레임 단위로 상기 공유메모리에 저장하고, 상기 공유메모리들 각각에 상기 프레임 단위의 영상데이터의 저장이 완료되면 상기 공유메모리의 상태정보를 제 2 상태로 변경하는 단계, 자바 레이어(java layer)에 위치한 제 2 제어부에서, 상기 공유메모리들의 순서에 따라 상기 저장된 영상데이터를 리드하되 상기 공유메모리의 상태정보가 상기 제 2 상태인 경우에만 상기 공유메모리에 저장되어 있는 영상데이터를 리드하고, 상기 공유메모리에 저장되어 있는 영상데이터의 리드가 완료되면 상기 공유메모리의 상태정보를 상기 제 1 상태로 변경하는 단계, 상기 공유메모리에 저장할 상기 영상데이터가 수신되었으나 상기 제 1 상태의 공유메모리가 없는 경우, 상기 제 1 제어부에서 상기 공유메모리의 생성을 요청하는 생성요청신호를 상기 제 2 제어부로 전송하는 단계 및 상기 제 2 제어부에서, 상기 생성요청신호를 수신한 경우 공유메모리를 추가로 생성하면서 마지막 순서의 공유메모리의 다음 순서로 설정하고, 상기 추가로 생성된 공유메모리의 상태정보를 상기 제 1 상태로 지정하며, 상기 추가로 생성된 공유메모리의 정보를 상기 제 1 제어부로 전송하는 단계를 포함할 수 있다.
상기 영상데이터 관리 방법은, 상기 제 1 제어부에서, 상기 모바일에 상기 영상촬영장치가 연결된 것으로 인식하는 경우 또는 상기 모바일에 연결된 상기 영상촬영장치로부터 상기 영상데이터를 수신하는 경우, 공유메모리의 생성을 요청하는 생성요청신호를 제 2 제어부로 전송하는 단계 및 상기 제 2 제어부에서, 상기 생성요청신호를 수신한 경우 상기 공유메모리를 생성하고, 상기 공유메모리의 상태정보를 제 1 상태로 지정하며, 상기 공유메모리의 정보를 상기 제 1 제어부로 전송하는 단계를 더 포함할 수 있다.
본 발명의 기술적 사상에 의한 일 실시예에 따른 영상데이터 관리 장치 및 방법은 모바일과 연결된 영상촬영장치에서 모바일로 전송된 영상데이터를 네이티브 레이어(native layer)에서 자바 레이어(java layer)로 고속으로 전달할 수 있으므로 어플리케이션에서 안정적으로 영상을 제공할 수 있는 장점이 있다. 즉, 종래 방식의 경우 네이티브 레이어에서 자바 레이어로 데이터를 전송함에 있어 지연이 발생하므로 초당 3프레임 정도밖에 전송하지 못하였으나, 본 발명을 적용하는 경우 초당 약 30프레임 이상의 데이터를 전송할 수 있으므로 HD 해상도 (1280 x 720, MJPEG 압축)의 영상 뿐 아니라 FullHD 해상도 (1920 x 1080, MJPEG 압축)의 영상까지도 전송이 가능하게 되었다.
또한, 공유메모리를 사용한다고 하여도 공유메모리에 저장한 후 리드가 완료될 때까지 다른 프레임을 상기 공유메모리에 저장할 수 없으므로 프레임 단위의 전송이 지연될 수 있으나, 본 발명의 경우 링버퍼(ring-buffer) 형태의 공유메모리를 사용하므로 병목현상의 발생 없이 고속으로 영상데이터를 네이티브 레이어에서 자바 레이어로 전달할 수 있는 장점이 있다.
따라서, 본 발명을 이용하는 경우 영상의 고속 전송이 가능하므로 고화질의 영상데이터 또는 복수의 영상촬영장치에서 전송되는 영상데이터를 이용하여 어플리케이션이 안정적으로 동작할 수 있는 장점이 있다. 또한, 본 발명을 이용하는 경우 모바일을 통해 영상촬영장치에서 촬영한 영상을 끊김없이 안정적으로 실시간 재생 또는 실시간 방송을 할 수 있는 장점이 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 기술적 사상에 의한 일 실시예에 따른 영상데이터 관리 장치의 블록도이다.
도 2는 도 1의 영상데이터 관리 장치의 일 실시예에 따른 동작을 설명하기 위한 도면이다.
도 3은 도 1의 영상데이터 관리 장치의 다른 일 실시예에 따른 동작을 설명하기 위한 도면이다.
도 4는 본 발명의 기술적 사상에 의한 일 실시예에 따른 영상데이터 관리 방법의 흐름도이다.
도 5는 본 발명의 기술적 사상에 의한 일 실시예에 따른 영상데이터 관리 방법의 흐름도이다.
도 6은 복수의 영상촬영장치가 연결된 경우 영상데이터 관리 장치의 블록도이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 기술적 사상에 의한 일 실시예에 따른 영상데이터 관리 장치(100)의 블록도이고, 도 2는 도 1의 영상데이터 관리 장치(100)의 일 실시예에 따른 동작을 설명하기 위한 도면이며, 도 3은 도 1의 영상데이터 관리 장치(100)의 다른 일 실시예에 따른 동작을 설명하기 위한 도면이다.
도 1 내지 도 3을 참조하면, 영상데이터 관리 장치(100)는 영상촬영장치(20)에서 전송되는 영상데이터를 관리할 수 있다. 영상촬영장치(20)는 모바일(10)과 연결되어 있으며, 예를 들어 USB 등을 통하여 모바일과 연결될 수 있다. 영상촬영장치(20)에서 촬영된 영상데이터는 USB 등을 통하여 모바일(10)로 전송되며, 모바일(10)로 전송된 상기 영상데이터는 이하에서 설명하는 영상데이터 관리 장치(100)를 통하여 고속으로 네이티브 레이어(110)에서 자바 레이어(130)로 전달함으로써 어플리케이션(131)이 안정적으로 동작할 수 있다. 즉, 영상데이터 관리 장치(100)는 모바일(10)에 포함되어 있는 장치일 수 있고, 모바일(10)의 운영체제는 안드로이드(Android)일 수 있다.
영상데이터 관리 장치(100)는 제 1 제어부(115), 제 2 제어부(135), 복수의 공유메모리들(ME_1, ME_2, ME_3, ME_4), 추상화부(116), 장치제어부(117) 및 라이브러리(118)를 포함할 수 있다. 제 1 제어부(115)는 네이티브 레이어(native layer)(110)에 위치하고 자바 레이어(java layer)(130)와 통신할 수 있다. 또한, 아래에서 설명하는 것과 같이 제 1 제어부(115)는 공유메모리(120)에 영상데이터를 저장할 수 있다.
제 2 제어부(135)는 자바 레이어(130)에 위치하고 네이티브 레이어(110)와 통신할 수 있다. 또한, 아래에서 설명하는 것과 같이 제 2 제어부(135)는 공유메모리(120)에 저장되어 있는 영상데이터를 리드할 수 있으며, 리드된 데이터를 어플리케이션(131)으로 전달할 수 있다.
복수의 공유메모리들(ME_1, ME_2, ME_3, ME_4)은 영상촬영장치(20)에서 전송되는 영상데이터가 저장될 수 있는 공간으로 링버퍼(ring-buffer) 형태를 가질 수 있다. 상기 링버퍼 형태란 상기 공유메모리들이 물리적으로 연결되어 있지는 않지만 가상으로 연결되어 있다고 가정하고 순서에 따라 순차적으로 데이터가 전달될 수 있는 구조를 의미한다. 공유메모리들(ME_1, ME_2, ME_3, ME_4) 각각에는 상기 영상데이터가 프레임 단위로 저장될 수 있다. 예를 들어, 제 1 공유메모리(ME_1), 제 2 공유메모리(ME_2), 제 3 공유메모리(ME_3) 및 제 4 공유메모리(ME_4)의 순서로 상기 영상데이터가 프레임 단위로 저장된다고 가정한다. 4개의 프레임을 가지는 영상데이터를 저장하는 경우, 제 1 공유메모리(ME_1)에는 제 1 프레임이 저장되고 제 2 공유메모리(ME_2)에는 제 2 프레임이 저장되고 제 3 공유메모리(ME_3)에는 제 3 프레임이 저장되며 제 4 공유메모리(ME_4)에는 제 4 프레임이 저장될 수 있다. 상기 영상데이터가 공유메모리에 저장되는 방법에 대하여는 관련된 부분을 참조하여 보다 상세하게 설명한다. 도 1에서는 영상데이터 관리 장치(100)가 4개의 공유메모리(ME_1, ME_2, ME_3, ME_4)를 포함하는 경우에 대하여 도시하고 있으나, 본 발명이 이 경우에 한정되는 것은 아니며 공유메모리의 개수는 필요에 따라 다르게 설정될 수 있다.
상기 공유메모리로 사용할 영역은 모바일(10)에 영상촬영장치(20)가 연결되어 있는지와 무관하게 특정 영역으로 설정해 놓을 수도 있고, 영상촬영장치(20)가 연결되는 경우 또는 상기 영상데이터가 수신되는 경우 공유메모리로 사용할 영역을 설정하였다가 해제할 수도 있다. 예를 들어, 모바일(10)에 영상촬영장치(20)가 연결되거나 영상촬영장치(20)로부터 상기 영상데이터가 수신되는 경우, 영상촬영장치(20)의 정보 또는 영상촬영장치(20)에서 전송할 영상데이터의 정보를 이용하여 공유메모리(120)로 사용될 영역이 설정될 수 있다. 또한, 상기 공유메모리를 몇 개로 설정할 것인지는 연결되는 영상촬영장치(20)의 정보 또는 모바일(10)로 전송되는 상기 영상데이터의 정보를 이용하여 결정될 수 있다. 상기 공유메모리의 개수는 필요에 따라 더 설정할 수도 있고, 설정되어 있는 공유메모리들 중 일부를 해제할 수도 있다. 그리고, 모바일(10)에 연결되어 있던 영상촬영장치(20)가 분리되거나 영상촬영장치(20)에서 상기 영상데이터가 수신되지 않는 경우 공유메모리(120)로 설정되어 있던 영역이 해제될 수 있다. 이에 대하여는 아래의 관련된 부분에서 보다 상세하게 설명한다.
제 1 제어부(115)는 공유메모리들(ME_1, ME_2, ME_3, ME_4)의 순서에 따라 상기 영상데이터를 프레임 단위로 대응하는 공유메모리에 저장할 수 있다. 이 경우, 제 1 제어부(115)는 상기 공유메모리의 상태정보가 제 1 상태인 경우에만 영상촬영장치(20)에서 전송되는 영상데이터를 프레임 단위로 상기 공유메모리에 저장할 수 있다. 그리고, 제 1 제어부(115)는 상기 프레임 단위의 영상데이터의 저장이 완료된 공유메모리의 상태정보를 상기 제 1 상태에서 제 2 상태로 변경할 수 있다.
제 2 제어부(135)는 공유메모리들(ME_1, ME_2, ME_3, ME_4)의 순서에 따라 상기 저장된 영상데이터를 리드할 수 있다. 이 경우, 제 2 제어부(135)는 상기 공유메모리의 상태정보가 상기 제 2 상태인 경우에만 상기 공유메모리에 저장되어 있는 영상데이터를 리드할 수 있다. 그리고, 제 2 제어부(135)는 상기 공유메모리에 저장되어 있는 영상데이터의 리드가 완료되면 상기 공유메모리의 상태정보를 상기 제 2 상태에서 상기 제 1 상태로 변경할 수 있다.
상기 상태정보는 상기 공유메모리에 상기 영상데이터를 저장해도 되는지 또는 상기 공유메모리에 저장되어 있는 상기 영상데이터를 리드해도 되는지에 대한 상태를 알려주는 정보이다. 상기 공유메모리의 상태정보가 제 1 상태인 경우는 상기 공유메모리에 상기 영상데이터를 저장해도 되는 상태임을 의미하고, 상기 공유메모리의 상태정보가 제 2 상태인 경우는 상기 공유메모리에 저장되어 있는 상기 영상데이터를 리드해도 됨을 의미한다. 예를 들어, 상기 공유메모리 중 상기 상태정보를 지정하는 비트가 '0'이면 제 1 상태이고 '1'이며 제 2 상태인 것으로 지정할 수 있다.
추상화부(136)는 네이티브 레이어(110)에 위치하고, 영상촬영장치(20)에 배타적으로 접근 가능한 파일 디스크립터(file descriptor)를 포함하며, 영상촬영장치(20)의 연결 여부를 판단하고 영상촬영장치(20)의 접근 권한을 관리할 수 있다. 즉, 추상화부(116)는 영상촬영장치(20)를 추상화한 클래스로써, 추상화된 클래스 내부에 영상촬영장치(20)에 대해 배타적으로 접근 가능한 파일 디스크립터가 존재할 수 있다. 영상촬영장치(20)에 대한 모든 제어명령은 내부적으로 상기 파일 디스크립터에 리드/라이트 작업으로 처리될 수 있다. 추상화부(116)는 영상촬영장치(20)가 모바일(10)에 연결되는 경우, 제 1 제어부(115)가 상기 연결된 영상촬영장치(20)에 대응하여 생성할 수 있다. 만약, 복수의 영상촬영장치들이 모바일(10)에 연결되는 경우, 제 1 제어부(110)는 상기 연결된 영상촬영장치마다 별도로 대응하는 추상화부(116)를 생성할 수 있다.
라이브러리(118)는 네이티브 레이어(110)에 위치하고, 영상촬영장치(20)를 제어하기 위한 함수들을 포함할 수 있다.
장치제어부(117)는 네이티브 레이어(110)에 위치하고, 영상촬영장치(20)에서 수신되는 상기 영상데이터를 제 1 제어부(115)로 전달하며, 라이브러리(118)의 함수를 호출하여 영상촬영장치(20)의 기능을 제어할 수 있다. 즉, 어플리케이션(131)에 입력된 명령이 영상촬영장치(20)의 기능을 제어하기 위한 명령인 경우, 제 2 제어부(135)는 제 1 제어부(115)로 상기 명령을 전달하고, 제 1 제어부(115)는 추상화부(116)를 통해 장치제어부(117)로 상기 명령을 전달하며, 장치제어부(117)는 전달받은 명령에 대응하는 함수를 라이브러리(118)에서 호출하여 영상촬영장치(20)의 기능을 제어할 수 있다. 예를 들어, 영상촬영장치(20)에서 제공하는 포맷목록(예를 들어, 해상도, FPS(Frame Per Second) 등)을 획득하여 자바 레이어(130)로 전달하고, 어플리케이션(131)을 통해 사용자가 입력한 값을 전달받아 포맷을 변경할 수 있다. 또한, 영상촬영장치(20)가 카메라인 경우, 비디오 포커싱 모드 전환, 노출, 줌, 팬&틸트, 조리개, 밝기 및 채도, 대비, 감마, 화이트 밸런스 등 확장 기능을 구현할 수도 있다. 그리고, 장치제어부(117)는 영상촬영장치(20)에서 수신된 상기 영상데이터를 제 1 제어부(115)로 전달하는 기능을 수행한다. 장치제어부(117)는 영상촬영장치(20)가 모바일(10)에 연결되는 경우, 제 1 제어부(115)가 상기 연결된 영상촬영장치(20)에 대응하여 생성할 수 있다. 만약, 복수의 영상촬영장치들이 모바일(10)에 연결되는 경우, 제 1 제어부(110)는 상기 연결된 영상촬영장치마다 별도로 대응하는 장치제어부(117)를 생성할 수 있다.
이하에서는 도 1 내지 도 3을 참조하여 영상데이터 관리 장치(100)의 각 구성요소의 동작을 보다 상세하게 설명한다. 도 2의 실시예는 상기 링버퍼 형태의 공유메모리가 설정된 이후 영상데이터가 저장되는 경우를 설명하기 위한 도면이고, 도 3의 실시예는 필요에 따라 공유메모리를 추가하는 경우를 설명하기 위한 도면이다.
먼저 도 1 및 도 2를 참조하면, 영상촬영장치(20)가 모바일(10)에 연결된 것으로 인식된 경우 또는 모바일(10)에 연결된 영상촬영장치(20)로부터 영상데이터가 수신되는 경우, 제 1 제어부(115)는 상기 공유메모리들의 생성을 요청하는 생성요청신호를 제 2 제어부(135)로 전송할 수 있다. 이 경우, 제 1 제어부(115)는 상기 영상촬영장치의 정보 또는 상기 영상데이터의 정보를 이용하여 상기 공유메모리의 개수를 설정하고 상기 설정된 개수의 공유메모리들의 생성을 요청하는 생성요청신호를 제 2 제어부(135)로 전송할 수 있다. 즉, 제 1 제어부(115)는 상기 영상데이터의 한 프레임의 크기, 상기 영상데이터의 프레임들이 전송되는 전송속도, 상기 공유메모리에 한 프레임을 저장하는데 소요되는 시간, 상기 공유메모리에 저장된 프레임을 리드하는데 소요되는 시간 등을 고려하여 상기 영상데이터가 프레임 단위로 상기 공유메모리에 저장되는 동작을 함에 문제가 없을 정도로 상기 공유메모리들의 개수를 설정할 수 있다. 영상촬영장치(20)가 모바일(10)에 연결되었는지 여부는 제 1 제어부(115) 또는 추상화부(116)에서 판단할 수 있다. 상기 생성요청신호에는 상기 영상데이터의 프레임 크기 정보를 포함할 수 있다. 이하에서는 설명의 편의상 4개의 공유메모리를 사용하는 경우 안정적으로 상기 영상데이터를 전달할 수 있다고 가정한다.
제 2 제어부(135)는 상기 생성요청신호를 수신하는 경우 링버퍼 형태의 공유메모리들(ME_1, ME_2, ME_3, ME_4)을 생성하면서 상기 공유메모리들의 순서를 설정할 수 있다. 즉, 제 2 제어부(135)는 상기 생성요청신호에 응답하여 상기 공유메모리들로 사용할 영역을 설정할 수 있으며, 예를 들어 상기 공유메모리들 각각으로 사용할 영역의 어드레스를 설정할 수 있다. 상기 생성요청신호가 상기 프레임 크기 정보를 포함하는 경우, 제 2 제어부(135)는 상기 영상데이터의 프레임 크기 정보를 이용하여 상기 프레임 크기 이상의 크기를 가지는 상기 공유메모리를 생성할 수 있다. 공유메모리(120)에는 상기 영상데이터가 프레임 단위로 저장될 수 있으나, 본 발명이 이 경우에 한정되는 것은 아니며 이하에서 설명하는 것과 같이 영상데이터 관리 장치(100)가 동작할 수 있다면 프레임 단위가 아닌 다른 단위로 상기 공유메모리들을 각각 설정하고 상기 공유메모리들 각각에 영상데이터가 저장될 수도 있다. 또한, 제 2 제어부(135)는 공유메모리들(ME_1, ME_2, ME_3, ME_4)에 상기 영상데이터가 저장되는 순서를 미리 설정할 수 있다. 이하에서는 설명의 편의 상 제 1 공유메모리(ME_1), 제 2 공유메모리(ME_2), 제 3 공유메모리(ME_3) 및 제 4 공유메모리(ME_4)의 순서로 상기 영상데이터가 프레임 단위로 저장된다고 가정한다.
제 2 제어부는 공유메모리들(ME_1, ME_2, ME_3, ME_4)의 상태정보를 상기 제 1 상태로 지정함으로써, 상기 공유메모리들에 상기 영상데이터가 저장될 수 있는 상태임을 표시할 수 있다. 제 2 제어부(135)는 공유메모리들(ME_1, ME_2, ME_3, ME_4) 각각의 정보를 제 1 제어부(115)로 전송할 수 있다. 상기 공유메모리들 각각의 정보는 상기 생성된 공유메모리들 각각의 어드레스 정보 및 상기 상태정보를 포함할 수 있다.
이상에서는 상기 공유메모리들의 영역이 설정되어 있지 않은 경우에 대하여 설명하였으나, 상기 공유메모리들이 이미 설정되어 있는 경우 영상데이터 관리 장치(10)는 앞서 설명한 공유메모리를 설정하는 동작을 생략하고 이하에서 설명하는 영상데이터를 전달하는 동작만 수행할 수 있다.
도 2에는 영상촬영장치(20)에서 100개의 프레임을 가지는 영상데이터를 전송하는 경우를 도시하고 있고, 상기 공유메모리들 각각에 프레임 단위로 저장되는 경우를 도시하고 있다. 이하에서는 100개의 프레임을 포함하는 영상데이터가 전송되는 경우를 설명한다. 다만, 본 발명이 이 경우에 한정되는 것은 아니며, 다른 개수의 프레임들을 포함하는 영상데이터가 수신되거나 프레임 단위가 아닌 다른 단위로 공유메모리에 영상데이터를 저장하는 경우에도 이하에서 설명하는 방식과 동일하게 동작할 수 있다.
새로운 영상데이터가 수신되는 경우이므로 공유메모리들(ME_1, ME_2, ME_3, ME_4)의 상태정보는 제 1 상태를 유지하고 있어, 제 1 제어부(115)는 모바일(10)로 전송된 영상데이터 중 제 1 프레임을 제 1 공유메모리(ME_1)에 저장한다. 제 1 제어부(115)가 제 1 공유메모리(ME_1)에 상기 제 1 프레임을 모두 저장한 경우, 제 1 제어부(115)는 제 1 공유메모리(ME_1)의 상태정보를 제 1 상태에서 제 2 상태로 변경한다. 제 1 공유메모리(ME_1)의 상태정보가 제 2 상태로 변경되었으므로, 제 2 제어부(135)는 제 1 공유메모리(ME_1)에 저장되어 있는 제 1 프레임을 리드한다. 그리고, 제 2 제어부(135)가 제 1 공유메모리(ME_1)에 저장되어 있는 상기 제 1 프레임을 모두 리드한 경우, 제 2 제어부(135)는 제 1 공유메모리(ME_1)의 상태정보를 제 2 상태에서 제 1 상태로 변경한다.
제 1 제어부(115)는 상기 제 1 프레임을 제 1 공유메모리(ME_1)에 모두 저장하고 제 1 공유메모리(ME_1)의 상태정보를 제 2 상태로 변경한 경우, 제 1 공유메모리(ME_1)의 상태정보가 다시 제 1 상태로 변경될 때까지 기다리지 않고 바로 제 2 프레임을 제 1 상태의 제 2 공유메모리(ME_2)에 저장할 수 있다. 제 1 제어부(115)가 제 2 공유메모리(ME_2)에 상기 제 2 프레임을 모두 저장한 경우, 제 1 제어부(115)는 제 2 공유메모리(ME_2)의 상태정보를 제 1 상태에서 제 2 상태로 변경한다. 제 2 공유메모리(ME_2)의 상태정보가 제 2 상태로 변경되었으므로, 제 2 제어부(135)는 제 1 공유메모리(ME_1)에 저장되어 있는 제 1 프레임을 모두 리드한 후 제 2 공유메모리(ME_2)에 저장되어 있는 제 2 프레임을 리드한다. 그리고, 제 2 제어부(135)가 제 2 공유메모리(ME_2)에 저장되어 있는 상기 제 2 프레임을 모두 리드한 경우, 제 2 제어부(135)는 제 2 공유메모리(ME_2)의 상태정보를 제 2 상태에서 제 1 상태로 변경한다.
동일한 방식으로, 제 1 제어부(115)는 제 2 프레임의 저장이 완료되면 제 1 상태의 제 3 공유메모리(ME_3)에 제 3 프레임을 저장하고, 제 3 프레임의 저장이 완료되면 제 1 상태의 제 4 공유메모리(ME_4)에 제 4 프레임을 저장한다. 제 1 제어부(115)가 제 4 프레임의 저장을 완료하고 제 4 공유메모리(ME_4)의 상태정보를 제 2 상태로 변경한 경우, 제 1 공유메모리(ME_1)가 제 1 상태인지 확인하여 제 1 상태인 경우 제 1 공유메모리(ME_1)에 제 5 프레임을 저장한다. 만약, 제 1 제어부(115)가 제 4 프레임의 저장이 완료되고 제 4 공유메모리(ME_4)의 상태정보를 제 2 상태로 변경한 이후에도 제 1 공유메모리(ME_1)가 제 2 상태인 경우, 제 1 제어부(115)는 제 2 제어부(135)로 추가 공유메모리의 생성을 요청할 수도 있다. 즉, 상기 공유메모리에 저장할 데이터가 수신되었으나 제 1 상태의 공유메모리가 없는 경우, 제 1 제어부(115)는 추가 공유메모리의 생성을 제 2 제어부(135)에 요청할 수 있는데, 이 경우의 실시예에 대하여는 도 3과 관련하여 보다 상세하게 설명한다.
마찬가지로, 제 2 제어부(135)는 제 2 프레임의 리드가 완료되면 제 2 상태의 제 3 공유메모리(ME_3)에서 제 3 프레임을 리드하고, 제 3 프레임의 리드가 완료되면 제 2 상태의 제 4 공유메모리(ME_4)에서 제 4 프레임을 리드한다. 제 2 제어부(135)가 제 4 프레임의 리드를 완료하고 제 4 공유메모리(ME_4)의 상태정보를 제 1 상태로 변경한 경우, 제 1 공유메모리(ME_1)가 제 2 상태인지 확인하여 제 2 상태인 경우 제 1 공유메모리(ME_1)에서 제 5 프레임을 리드한다.
이상과 같은 동작을 제 100 프레임까지 반복하여 수행함으로써, 100개의 프레임이 모두 제 1 제어부(115)에서 제 2 제어부(135)로 전달되며, 제 2 제어부(135)는 각각의 리드된 프레임을 어플리케이션(131)으로 전달할 수 있다.
이상에서는 설명의 편의상 상기 공유메모리들 각각에 프레임만 저장되는 것으로 설명하였으나, 본 발명이 이 경우에 한정되는 것은 아니며 프레임 단위의 영상데이터 외에도 관련된 정보가 저장될 수 있다. 예를 들어, 제 1 제어부(115)는 상기 공유메모리에 상기 프레임 단위의 영상데이터의 발생시간(timestamp) 정보, 크기 정보, 해상도 정보, 포맷 정보, 샘플레이트 정보, 비트 정보 및 채널 수 정보 중 적어도 하나를 상기 공유메모리에 상기 프레임 단위의 영상데이터와 함께 저장할 수 있으며, 제 2 제어부(135)도 이와 같이 상기 공유메모리에 저장되어 있는 모든 데이터를 리드할 수 있다.
모바일(10)에 연결되어 있던 영상촬영장치(20)가 분리되거나 영상촬영장치(20)에서 상기 영상데이터가 수신되지 않는 경우, 제 1 제어부(115)는 제 2 제어부(135)로 공유메모리(120)의 해제를 요청하는 종료신호를 전송할 수 있다. 영상촬영장치(20)가 모바일(10)에 분리되었는지 여부는 제 1 제어부(115) 또는 추상화부(116)에서 판단할 수 있다. 제 2 제어부(135)는 상기 종료신호를 수신한 경우 상기 공유메모리로 설정된 영역들을 해제할 수 있으며, 상기 공유메모리로 설정된 영역들이 해제되었음을 제 1 제어부(115)로 알려줄 수 있다. 또한, 필요한 경우 제 1 제어부(115)는 제 2 제어부(135)로 상기 공유메모리들 중 일부의 공유메모리의 해제를 요청하는 종료신호를 전송할 수도 있다. 예를 들어, 모바일(10)에 수신되는 영상데이터의 크기가 변경되거나 전송속도가 변경되는 등의 이유로 일부 공유메모리를 사용하지 않아도 고속으로 전송이 가능한 경우, 일부의 공유메모리를 해제할 수 있다.
다음으로, 도 1 내지 도 3을 참조하여 영상데이터를 상기 공유메모리에 저장하는 동작을 수행하다가 상기 공유메모리를 추가로 생성하는 경우에 대하여 설명한다. 앞서 도 1 및 도 2와 관련하여 설명된 내용과 중복되는 내용은 도 1 및 도 2와 관련된 설명으로 대체한다. 제 1 공유메모리(ME_1)가 설정되어 있는 경우, 새로운 영상데이터가 수신되는 경우이므로 제 1 공유메모리(ME_1)의 상태정보는 제 1 상태를 유지하고 있어 제 1 제어부(115)는 모바일(10)로 전송된 영상데이터 중 제 1 프레임을 제 1 공유메모리(ME_1)에 저장한다. 제 1 제어부(115)가 제 1 공유메모리(ME_1)에 상기 제 1 프레임을 모두 저장한 경우, 제 1 제어부(115)는 제 1 공유메모리(ME_1)의 상태정보를 제 1 상태에서 제 2 상태로 변경한다. 제 1 공유메모리(ME_1)의 상태정보가 제 2 상태로 변경되었으므로, 제 2 제어부(135)는 제 1 공유메모리(ME_1)에 저장되어 있는 제 1 프레임을 리드한다. 그리고, 제 2 제어부(135)가 제 1 공유메모리(ME_1)에 저장되어 있는 상기 제 1 프레임을 모두 리드한 경우, 제 2 제어부(135)는 제 1 공유메모리(ME_1)의 상태정보를 제 2 상태에서 제 1 상태로 변경한다.
제 1 제어부(115)가 제 1 프레임을 모두 저장하고 제 2 프레임을 저장하려고 하는데 제 1 공유메모리(ME_1)는 제 2 상태를 가지고 있으므로 제 1 상태의 공유메모리가 없는 상태이다. 이 경우, 제 1 제어부(115)는 제 1 공유메모리(ME_1)가 제 1 상태가 될 때까지 기다리지 않고 제 2 제어부(135)에 추가 공유메모리의 생성을 요청하는 생성요청신호를 전송할 수 있다. 상기 생성요청신호는 앞서 설명한 생성요청신호와 동일한 정보를 포함할 수 있다. 제 2 제어부(135)는 상기 생성요청신호를 수신한 경우 제 2 공유메모리(ME_2)를 추가로 생성하면서 마지막 순서의 공유메모리의 다음 순서로 설정할 수 있다. 현재는 제 1 공유메모리(ME_1)밖에 존재하지 않으므로 제 2 공유메모리(ME_2)는 제 1 공유메모리(ME_1)의 다음 순서로 설정된다. 만약, 제 2 공유메모리(ME_2)가 설정된 이후 추가로 공유메모리를 설정하고자 하는 경우, 마지막 순서인 제 2 공유메모리(ME_2)의 다음 순서로 새로운 공유메모리의 순서가 설정될 것이다. 그리고, 제 2 제어부(135)는 추가로 생성된 제 2 공유메모리(ME_2)의 상태정보를 제 1 상태로 지정하고, 상기 추가로 생성된 제 2 공유메모리(ME_2)의 정보를 제 1 제어부(115)로 전송할 수 있다.
이와 같이 제 2 공유메모리(ME_2)가 생성된 경우, 제 1 제어부(115)는 제 1 공유메모리(ME_1)의 상태정보가 제 1 상태로 변경될 때까지 기다리지 않고, 제 2 공유메모리(ME_2)에 제 2 프레임을 저장하고, 제 2 프레임의 저장이 완료되면 제 2 공유메모리(ME_2)의 상태정보를 제 2 상태로 변경한다. 그리고, 제 1 제어부(115)는 제 2 공유메모리(ME_2)의 상태정보를 변경한 후 제 1 공유메모리(ME_1)가 제 1 상태이면 제 1 공유메모리(ME_1)에 제 3 프레임을 저장하고 제 1 상태의 공유메모리가 없는 경우 다시 제 2 제어부(135)로 추가 공유메모리의 생성을 요청할 수 있다.
제 2 제어부(135)는 제 1 공유메모리(ME_1)에 저장된 제 1 프레임의 리드가 완료된 후, 제 2 공유메모리(ME_2)의 상태정보가 제 2 상태인 경우 제 2 공유메모리(ME_2)에 저장된 제 2 프레임을 리드한다. 그리고, 제 2 제어부(135)는 제 2 공유메모리(ME_2)에 저장된 제 2 프레임의 리드가 완료된 후, 제 1 공유메모리(ME_1)의 상태정보가 제 2 상태인 경우 제 1 공유메모리(ME_1)에 저장된 제 3 프레임을 리드한다.
본 발명은 이상에서 설명한 것과 같은 방식을 이용하여 영상촬영장치(20)에서 전송된 영상데이터를 어플리케이션(131)까지 고속으로 전송할 수 있다. 즉, 본 발명에서는 데이터를 저장하고 리드하는 횟수를 종래기술에 비하여 절반으로 줄일 수 있으므로, 고속으로 영상데이터를 전송할 수 있다. 종래에는 네이티브 레이어(110)에서 자바 레이어(130)로 영상을 전달하기 위해서는, 네이티브 레이어(110)에 위치하는 메모리에 영상데이터를 저장한 후 리드하고, 자바 레이어(120)에 위치하는 메모리에 상기 리드된 데이터를 저장한 후 다시 리드하여 어플리케이션(131)으로 전달하였으나, 본 발명의 경우에는 상기 공유메모리들에 저장된 데이터를 제 2 제어부(135)에서 바로 리드하여 어플리케이션(131)으로 전달할 수 있으므로 영상데이터의 고속 전송이 가능하도록 하였다. 또한, 상기 영상데이터의 저장 및 리드를 함에 있어서 병목현상이 발생하는 것을 방지하기 위하여 링버퍼 형태의 복수의 공유메모리들을 사용하고 필요한 경우 추가로 공유메모리를 생성할 수 있도록 함으로써 하나의 공유메모리를 사용하는 경우보다 더 빠르게 상기 영상데이터를 네이티브 레이어에서 자바 레이어로 전송할 수 있다.
도 4는 본 발명의 기술적 사상에 의한 일 실시예에 따른 영상데이터 관리 방법의 흐름도이다.
이하에서는, 도 1 내지 도 4를 참조하여 모바일(10)과 연결된 영상촬영장치(20)로부터 모바일(10)로 전송되는 영상데이터를 모바일(10)에서 관리하기 위한 영상데이터 관리 방법에 대하여 설명한다. 이하 중복되는 부분은 도 1 내지 도 3과 관련된 부분으로 대체한다.
먼저, 모바일(10)에 영상촬영장치(20)가 연결된 것으로 인식하거나 모바일(10)에 연결된 영상촬영장치(20)로부터 영상데이터를 수신하는 경우, 네이티브 레이어(110)에 위치한 제 1 제어부(115)에서 영상촬영장치(20)의 정보 또는 상기 영상데이터의 정보를 이용하여 공유메모리의 개수를 설정하고 상기 설정된 개수의 공유메모리들의 생성을 요청하는 생성요청신호를 자바 레이어(130)에 위치한 제 2 제어부(135)로 전송한다(S410). 제 2 제어부(135)는 상기 생성요청신호를 수신한 경우 링버퍼 형태의 공유메모리들을 생성하면서 상기 공유메모리들의 순서를 설정하고, 상기 공유메모리들의 상태정보를 제 1 상태로 지정하며, 상기 공유메모리들 각각의 정보를 제 1 제어부(115)로 전송한다(S420).
이후, 영상촬영장치(20)에서 영상데이터가 모바일(10)로 전송되면(S430), 제 1 제어부(115)는 제 1 상태인 상기 공유메모리들의 순서에 따라 상기 전송되는 영상데이터를 프레임 단위로 대응하는 공유메모리에 저장한다(S440). 제 1 제어부(115)는 상기 영상데이터의 저장이 완료된 공유메모리의 상태정보를 상기 제 2 상태로 변경한다(S460). 상기 공유메모리의 상태정보가 상기 제 2 상태로 변경된 경우, 제 2 제어부(135)는 상기 공유메모리에 저장되어 있는 영상데이터를 리드하고(S470), 상기 공유메모리에 저장되어 있는 영상데이터의 리드가 완료되면 상기 공유메모리의 상태정보를 상기 제 1 상태로 변경한다(S480). 이상과 같은 동작이 상기 영상데이터가 수신되는 동안 반복하여 수행되는데, 상기 공유메모리들의 순서대로 상기 영상데이터가 프레임 단위로 다른 공유메모리에 저장된 후 리드되게 된다. 예를 들어, 3개의 공유메모리가 있다고 가정하면, 제 1 프레임은 제 1 공유메모리에 저장 후 리드되고 제 2 프레임은 제 2 공유메모리에 저장 후 리드되고 제 3 프레임은 제 3 공유메모리에 저장 후 리드되며 제 4 프레임은 다시 제 1 공유메모리에 저장 후 리드되는 방식으로 공유메모리들을 순환하면서 저장 및 리드하게 된다.
도 3과 관련하여 살펴본 것과 같이, 제 1 제어부(115)가 상기 프레임 단위의 영상데이터를 저장하고자 하는데 제 1 상태의 공유메모리가 존재하지 않는 경우(S440), 제 1 제어부(115)는 추가 공유메모리의 생성을 요청하는 생성요청신호를 제 2 제어부(135)로 전송하고(S410), 제 2 제어부(135)는 상기 생성요청신호에 응답하여 공유메모리를 추가로 생성하고 생성하면서 마지막 순서의 공유메모리의 다음 순서로 설정하고, 상기 추가로 생성된 공유메모리의 상태정보를 상기 제 1 상태로 지정하며, 상기 추가로 생성된 공유메모리의 정보를 제 1 제어부(115)로 전송할 수 있다(S420). 이와 같이 추가로 공유메모리가 생성되는 경우 생성된 공유메모리에도 프레임 단위의 영상데이터가 저장된 후 리드되게 된다.
영상데이터의 수신이 완료되어 더 이상 영상데이터가 모바일(10)로 전송되지 않거나 모바일(10)에 연결된 영상촬영장치(20)가 분리된 경우(S430), 제 1 제어부(115)는 제 2 제어부(135)로 종료신호를 전송하고(S491), 제 2 제어부(135)는 상기 종료신호를 수신한 경우 상기 공유메모리들로 설정된 영역을 해제할 수 있다(S492).
도 5는 본 발명의 기술적 사상에 의한 일 실시예에 따른 영상데이터 관리 방법의 흐름도이다.
이하에서는, 도 1 내지 도 5를 참조하여 모바일(10)과 연결된 영상촬영장치(20)로부터 모바일(10)로 전송되는 영상데이터를 모바일(10)에서 관리하기 위한 영상데이터 관리 방법에 대하여 설명한다. 이하 중복되는 부분은 도 1 내지 도 4와 관련된 부분으로 대체한다.
영상촬영장치(20)에서 전달된 영상데이터가 모바일(10)로 수신되고(S510) 제 1 상태의 공유메모리가 존재하는 경우(S520), 제 1 제어부(115)는 순차적으로 공유메모리에 프레임 단위의 영상데이터를 저장하고(S530), 저장이 완료된 상기 공유메모리의 상태정보를 제 2 상태로 변경한다(S540). 그리고 제 2 제어부(135)는 제 2 상태의 공유메모리에 저장된 프레임 단위의 영상데이터를 순차적으로 리드하고(S550), 리드가 완료된 상기 공유메모리의 상태정보를 제 1 상태로 변경한다(S550). S520 단계에서 제 1 상태의 공유메모리 존재하지 않는 경우, 제 1 제어부(115)는 추가 공유메모리의 생성을 요청하는 생성요청신호를 제 2 제어부(135)로 전송하고(S570), 제 2 제어부(135)는 상기 생성요청신호에 응답하여 공유메모리를 추가로 생성하고 생성하면서 마지막 순서의 공유메모리의 다음 순서로 설정하고, 상기 추가로 생성된 공유메모리의 상태정보를 상기 제 1 상태로 지정하며, 상기 추가로 생성된 공유메모리의 정보를 제 1 제어부(115)로 전송할 수 있다(S580). 이와 같이 추가로 공유메모리가 생성되는 경우 생성된 공유메모리에도 프레임 단위의 영상데이터가 저장된 후 리드되게 된다.
영상데이터의 수신이 완료되어 더 이상 영상데이터가 모바일(10)로 전송되지 않거나 모바일(10)에 연결된 영상촬영장치(20)가 분리된 경우(S410), 제 1 제어부(115)는 제 2 제어부(135)로 종료신호를 전송하고(S591), 제 2 제어부(135)는 상기 종료신호를 수신한 경우 상기 공유메모리들로 설정된 영역을 해제할 수 있다(S592).
이상에서는 모바일(10)에 하나의 영상촬영장치(20)가 연결된 경우를 설명하였으나, 본 발명이 이 경우에 한정되는 것은 아니며 복수의 영상촬영장치(20)가 연결되는 경우에도 동일하게 동작함으로써 수신되는 영상데이터를 고속으로 네이티브 레이어(110)에서 자바 레이어(130)로 전달할 수 있다. 도 6은 복수의 영상촬영장치가 연결된 경우 영상데이터 관리 장치(100')의 블록도이다.
도 1 내지 도 6을 참조하면, 복수의 영상촬영장치(20_1, 20_2)가 연결되는 경우, 영상촬영장치(20_1)에 대응하는 공유메모리들(120_1), 추상화부(116_1) 및 장치제어부(117_1)가 생성될 수 있고, 영상촬영장치(20_2)에 대응하는 공유메모리들(120_2), 추상화부(116_2) 및 장치제어부(117_2)가 생성될 수 있다. 예를 들어, 제 1 제어부(115)는 영상촬영장치(20_1)에서 수신된 영상데이터를 장치제어부(117_1)를 통해 전달받아 공유메모리(120_1)에 저장하고, 제 2 제어부(135)는 공유메모리(120_1)에서 리드한 영상데이터를 영상촬영장치(20_1)에서 촬영한 영상데이터인 것으로 인식하고 처리할 수 있다. 즉, 복수의 영상촬영장치(20_1, 20_2)가 연결되는 경우 영상촬영장치마다 별도로 상기 공유메모리, 상기 추상화부 및 상기 장치제어부가 생성되는 것이며, 각각의 구성요소의 기능은 도 1 내지 도 5와 관련하여 설명한 것과 동일하므로, 각 구성요소에 대한 설명은 도 1 내지 도 5와 관련하여 설명한 내용으로 대체한다.
모바일(10)에 복수의 영상촬영장치가 연결된 경우 복수의 공유메모리를 설정하는 과정을 살펴보면, 제 1 제어부(115)는 연결된 영상촬영장치(20_1, 20_2)마다 별도로 생성요청신호를 생성하여 제 2 제어부(135)로 전송할 수 있다. 그리고, 제 2 제어부(135)는 수신된 생성요청신호마다 공유메모리(120_1, 120_2)로 사용할 영역을 설정할 수 있다. 즉, 제 2 제어부(135)는 수신된 생성요청신호를 이용하여 복수의 영상촬영장치들(20_1, 20_2)마다 별도로 링버퍼형태의 공유메모리들을 생성하고, 생성된 공유메모리들(120_1, 120_2)의 상태정보를 모두 제 1 상태로 지정하며, 상기 공유메모리들(120_1, 120_2) 각각의 정보를 제 1 제어부(115)로 전송할 수 있다. 또한, 모바일(10)에 복수의 영상촬영장치(20_1, 20_2)가 연결된 경우, 제 1 제어부(115)는 상기 연결된 영상촬영장치(20_1, 20_2)마다 별도로 대응하는 추상화부(116_1, 116_2) 및 장치제어부(117_1, 117_2)를 생성할 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (17)

  1. 모바일과 연결된 영상촬영장치로부터 상기 모바일로 전송된 영상데이터를 관리하는 영상데이터 관리 장치에 있어서,
    네이티브 레이어(native layer)에 위치하고 자바 레이어(java layer)와 통신하는 제 1 제어부;
    상기 자바 레이어에 위치하고 상기 네이티브 레이어와 통신하는 제 2 제어부; 및
    상기 영상촬영장치에서 전송되는 영상데이터가 저장되는 링버퍼 형태의 복수의 공유메모리들을 구비하고,
    상기 제 1 제어부는,
    상기 공유메모리들의 순서에 따라 상기 영상데이터를 프레임 단위로 대응하는 공유메모리에 저장하되 상기 공유메모리의 상태정보가 제 1 상태인 경우에만 상기 영상촬영장치에서 전송되는 영상데이터를 프레임 단위로 상기 공유메모리에 저장하고, 상기 공유메모리들 각각에 상기 프레임 단위의 영상데이터의 저장이 완료되면 상기 공유메모리의 상태정보를 제 2 상태로 변경하며,
    상기 제 2 제어부는,
    상기 공유메모리들의 순서에 따라 상기 저장된 영상데이터를 리드하되 상기 공유메모리의 상태정보가 상기 제 2 상태인 경우에만 상기 공유메모리에 저장되어 있는 영상데이터를 리드하고, 상기 공유메모리에 저장되어 있는 영상데이터의 리드가 완료되면 상기 공유메모리의 상태정보를 상기 제 1 상태로 변경하는 것을 특징으로 하는 영상데이터 관리 장치.
  2. 제1항에 있어서, 상기 제 1 제어부는,
    상기 공유메모리에 저장할 상기 영상데이터가 수신되었으나 상기 제 1 상태의 공유메모리가 없는 경우, 상기 공유메모리의 생성을 요청하는 생성요청신호를 상기 제 2 제어부로 전송하고,
    상기 제 2 제어부는,
    상기 생성요청신호를 수신한 경우 공유메모리를 추가로 생성하면서 마지막 순서의 공유메모리의 다음 순서로 설정하고, 상기 추가로 생성된 공유메모리의 상태정보를 상기 제 1 상태로 지정하며, 상기 추가로 생성된 공유메모리의 정보를 상기 제 1 제어부로 전송하는 것을 특징으로 하는 영상데이터 관리 장치.
  3. 제1항에 있어서, 상기 제 1 제어부는,
    상기 모바일에 상기 영상촬영장치가 연결된 것으로 인식하는 경우 또는 상기 모바일에 연결된 상기 영상촬영장치로부터 상기 영상데이터를 수신하는 경우, 적어도 하나의 상기 공유메모리의 생성을 요청하는 생성요청신호를 상기 제 2 제어부로 전송하고,
    상기 제 2 제어부는,
    상기 생성요청신호를 수신한 경우 상기 적어도 하나의 공유메모리를 생성하고, 상기 적어도 하나의 공유메모리의 상태정보를 상기 제 1 상태로 지정하며, 상기 적어도 하나의 공유메모리의 정보를 상기 제 1 제어부로 전송하는 것을 특징으로 하는 영상데이터 관리 장치.
  4. 제3항에 있어서, 상기 제 1 제어부는,
    상기 모바일에 복수의 상기 영상촬영장치들이 연결된 경우, 상기 연결된 영상촬영장치마다 별도로 상기 생성요청신호를 상기 제 2 제어부로 전송하고,
    상기 제 2 제어부는,
    상기 수신된 생성요청신호를 이용하여 상기 복수의 영상촬영장치들마다 별도로 상기 공유메모리를 생성하는 것을 특징으로 하는 영상데이터 관리 장치.
  5. 제3항에 있어서, 상기 생성요청신호는,
    상기 영상데이터의 프레임 크기 정보를 포함하고,
    상기 제 2 제어부는,
    상기 영상데이터의 프레임 크기 정보를 이용하여 상기 프레임 크기 이상의 크기를 가지는 공유메모리를 생성하며, 상기 생성된 공유메모리의 어드레스 정보 및 상태정보를 포함하는 상기 공유메모리의 정보를 상기 제 1 제어부로 전송하는 것을 특징으로 하는 영상데이터 관리 장치.
  6. 제1항에 있어서, 상기 제 1 제어부는,
    상기 모바일과 연결된 영상촬영장치가 분리된 경우 또는 상기 영상촬영장치에서 상기 영상데이터가 수신되지 않는 경우, 상기 제 2 제어부로 종료신호를 전송하고,
    상기 제 2 제어부는,
    상기 종료신호를 수신한 경우 상기 공유메모리로 설정된 영역을 해제하는 것을 특징으로 하는 영상데이터 관리 장치.
  7. 제1항에 있어서, 상기 제 1 제어부는,
    상기 프레임 단위의 영상데이터 외에 상기 프레임 단위의 영상데이터의 발생시간(timestamp) 정보, 크기 정보, 해상도 정보, 포맷 정보, 샘플레이트 정보, 비트 정보 및 채널 수 정보 중 적어도 하나를 상기 공유메모리에 상기 프레임 단위의 영상데이터와 함께 저장하는 것을 특징으로 하는 영상데이터 관리 장치.
  8. 제1항에 있어서, 상기 영상데이터 관리 장치는,
    상기 네이티브 레이어에 위치하고, 상기 영상촬영장치에 배타적으로 접근 가능한 파일 디스크립터(file descriptor)를 포함하며, 상기 영상촬영장치의 연결 여부를 판단하고 상기 영상촬영장치의 접근 권한을 관리하는 추상화부;
    상기 네이티브 레이어에 위치하고, 상기 영상촬영장치를 제어하기 위한 함수들을 포함하는 라이브러리; 및
    상기 네이티브 레이어에 위치하고, 상기 영상촬영장치에서 수신되는 상기 영상데이터를 상기 제 1 제어부로 전달하며, 상기 라이브러리의 함수를 호출하여 상기 영상촬영장치의 기능을 제어하는 장치제어부를 더 구비하는 것을 특징으로 하는 영상데이터 관리 장치
  9. 제8항에 있어서, 상기 제 1 제어부는,
    상기 모바일에 상기 영상촬영장치가 연결된 경우 상기 연결된 영상촬영장치에 대응하는 상기 추상화부 및 상기 장치제어부를 생성하고, 상기 모바일에 복수의 상기 영상촬영장치들이 연결된 경우, 상기 연결된 영상촬영장치마다 별도로 대응하는 상기 추상화부 및 상기 장치제어부를 생성하는 것을 특징으로 하는 영상데이터 관리 장치.
  10. 모바일과 연결된 영상촬영장치로부터 상기 모바일로 전송된 영상데이터를 관리하는 영상데이터 관리 방법에 있어서,
    네이티브 레이어(native layer)에 위치한 제 1 제어부에서, 상기 모바일에 상기 영상촬영장치가 연결된 것으로 인식하는 경우 또는 상기 모바일에 연결된 상기 영상촬영장치로부터 상기 영상데이터를 수신하는 경우, 상기 영상촬영장치의 정보 또는 상기 영상데이터의 정보를 이용하여 공유메모리의 개수를 설정하고 상기 설정된 개수의 공유메모리들의 생성을 요청하는 생성요청신호를 자바 레이어(java layer)에 위치한 제 2 제어부로 전송하는 단계;
    상기 제 2 제어부에서, 상기 생성요청신호를 수신한 경우 링버퍼 형태의 공유메모리들을 생성하면서 상기 공유메모리들의 순서를 설정하고, 상기 공유메모리의 상태정보를 제 1 상태로 지정하며, 상기 공유메모리들 각각의 정보를 상기 제 1 제어부로 전송하는 단계;
    상기 제 1 제어부에서, 상기 공유메모리들의 순서에 따라 상기 영상데이터를 프레임 단위로 대응하는 공유메모리에 저장하되 상기 공유메모리의 상태정보가 제 1 상태인 경우에만 상기 영상촬영장치에서 전송되는 영상데이터를 프레임 단위로 상기 공유메모리에 저장하고, 상기 공유메모리들 각각에 상기 프레임 단위의 영상데이터의 저장이 완료되면 상기 공유메모리의 상태정보를 제 2 상태로 변경하는 단계; 및
    상기 제 2 제어부에서, 상기 공유메모리들의 순서에 따라 상기 저장된 영상데이터를 리드하되 상기 공유메모리의 상태정보가 상기 제 2 상태인 경우에만 상기 공유메모리에 저장되어 있는 영상데이터를 리드하고, 상기 공유메모리에 저장되어 있는 영상데이터의 리드가 완료되면 상기 공유메모리의 상태정보를 상기 제 1 상태로 변경하는 단계를 포함하는 것을 특징으로 하는 영상데이터 관리 방법.
  11. 제10항에 있어서, 상기 영상데이터 관리 방법은,
    상기 공유메모리에 저장할 상기 영상데이터가 수신되었으나 상기 제 1 상태의 공유메모리가 없는 경우, 상기 제 1 제어부에서 상기 공유메모리의 생성을 요청하는 생성요청신호를 상기 제 2 제어부로 전송하는 단계; 및
    상기 제 2 제어부에서, 상기 생성요청신호를 수신한 경우 공유메모리를 추가로 생성하면서 마지막 순서의 공유메모리의 다음 순서로 설정하고, 상기 추가로 생성된 공유메모리의 상태정보를 상기 제 1 상태로 지정하며, 상기 추가로 생성된 공유메모리의 정보를 상기 제 1 제어부로 전송하는 단계를 더 포함하는 것을 특징으로 하는 영상데이터 관리 방법.
  12. 제10항에 있어서, 상기 영상데이터 관리 방법은,
    상기 모바일과 연결된 영상촬영장치가 분리된 경우 또는 상기 영상촬영장치에서 상기 영상데이터가 수신되지 않는 경우, 상기 제 1 제어부에서 상기 제 2 제어부로 종료신호를 전송하는 단계; 및
    상기 제 2 제어부에서, 상기 종료신호가 수신된 경우 상기 공유메모리로 설정된 영역을 해제하는 단계를 더 포함하는 것을 특징으로 하는 영상데이터 관리 방법.
  13. 제10항에 있어서, 상기 영상데이터 관리 방법은,
    상기 영상촬영장치가 연결되는 경우, 상기 영상촬영장치의 연결 또는 분리 여부를 판단하여 상기 영상촬영장치의 접근 권한을 관리하는 추상화부를 상기 네이티브 레이어에 생성하는 단계; 및
    상기 영상촬영장치가 연결되는 경우, 상기 영상촬영장치에서 수신되는 상기 영상데이터를 상기 제 1 제어부로 전달하며, 라이브러리의 함수를 호출하여 상기 영상촬영장치의 기능을 제어하는 장치제어부를 상기 네이티브 레이어에 생성하는 단계를 더 포함하는 것을 특징으로 하는 영상데이터 관리 방법.
  14. 모바일과 연결된 영상촬영장치로부터 상기 모바일로 전송된 영상데이터를 관리하는 영상데이터 관리 방법에 있어서,
    네이티브 레이어(native layer)에 위치한 제 1 제어부에서, 공유메모리들의 순서에 따라 상기 영상데이터를 프레임 단위로 대응하는 공유메모리에 저장하되 상기 공유메모리의 상태정보가 제 1 상태인 경우에만 상기 영상촬영장치에서 전송되는 영상데이터를 프레임 단위로 상기 공유메모리에 저장하고, 상기 공유메모리들 각각에 상기 프레임 단위의 영상데이터의 저장이 완료되면 상기 공유메모리의 상태정보를 제 2 상태로 변경하는 단계;
    자바 레이어(java layer)에 위치한 제 2 제어부에서, 상기 공유메모리들의 순서에 따라 상기 저장된 영상데이터를 리드하되 상기 공유메모리의 상태정보가 상기 제 2 상태인 경우에만 상기 공유메모리에 저장되어 있는 영상데이터를 리드하고, 상기 공유메모리에 저장되어 있는 영상데이터의 리드가 완료되면 상기 공유메모리의 상태정보를 상기 제 1 상태로 변경하는 단계;
    상기 공유메모리에 저장할 상기 영상데이터가 수신되었으나 상기 제 1 상태의 공유메모리가 없는 경우, 상기 제 1 제어부에서 상기 공유메모리의 생성을 요청하는 생성요청신호를 상기 제 2 제어부로 전송하는 단계; 및
    상기 제 2 제어부에서, 상기 생성요청신호를 수신한 경우 공유메모리를 추가로 생성하면서 마지막 순서의 공유메모리의 다음 순서로 설정하고, 상기 추가로 생성된 공유메모리의 상태정보를 상기 제 1 상태로 지정하며, 상기 추가로 생성된 공유메모리의 정보를 상기 제 1 제어부로 전송하는 단계를 포함하는 것을 특징으로 하는 영상데이터 관리 방법.
  15. 제14항에 있어서, 상기 영상데이터 관리 방법은,
    상기 제 1 제어부에서, 상기 모바일에 상기 영상촬영장치가 연결된 것으로 인식하는 경우 또는 상기 모바일에 연결된 상기 영상촬영장치로부터 상기 영상데이터를 수신하는 경우, 상기 공유메모리의 생성을 요청하는 생성요청신호를 제 2 제어부로 전송하는 단계; 및
    상기 제 2 제어부에서, 상기 생성요청신호를 수신한 경우 상기 공유메모리를 생성하고, 상기 공유메모리의 상태정보를 상기 제 1 상태로 지정하며, 상기 공유메모리의 정보를 상기 제 1 제어부로 전송하는 단계를 더 포함하는 것을 특징으로 하는 영상데이터 관리 방법.
  16. 제14항에 있어서, 상기 영상데이터 관리 방법은,
    상기 모바일과 연결된 영상촬영장치가 분리된 경우 또는 상기 영상촬영장치에서 상기 영상데이터가 수신되지 않는 경우, 상기 제 1 제어부에서 상기 제 2 제어부로 종료신호를 전송하는 단계; 및
    상기 제 2 제어부에서, 상기 종료신호가 수신된 경우 상기 공유메모리로 설정된 영역을 해제하는 단계를 더 포함하는 것을 특징으로 하는 영상데이터 관리 방법.
  17. 제14항에 있어서, 상기 영상데이터 관리 방법은,
    상기 영상촬영장치가 연결되는 경우, 상기 영상촬영장치의 연결 또는 분리 여부를 판단하여 상기 영상촬영장치의 접근 권한을 관리하는 추상화부를 상기 네이티브 레이어에 생성하는 단계; 및
    상기 영상촬영장치가 연결되는 경우, 상기 영상촬영장치에서 수신되는 상기 영상데이터를 상기 제 1 제어부로 전달하며, 라이브러리의 함수를 호출하여 상기 영상촬영장치의 기능을 제어하는 장치제어부를 상기 네이티브 레이어에 생성하는 단계를 더 포함하는 것을 특징으로 하는 영상데이터 관리 방법.
KR1020160127640A 2016-10-04 2016-10-04 영상데이터 관리 장치 및 방법 KR101716862B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160127640A KR101716862B1 (ko) 2016-10-04 2016-10-04 영상데이터 관리 장치 및 방법
PCT/KR2016/013227 WO2018066750A1 (ko) 2016-10-04 2016-11-16 영상데이터 관리 장치 및 방법
US15/318,392 US10530980B2 (en) 2016-10-04 2016-11-16 Apparatus for managing video data and method the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160127640A KR101716862B1 (ko) 2016-10-04 2016-10-04 영상데이터 관리 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101716862B1 true KR101716862B1 (ko) 2017-03-15

Family

ID=58403162

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160127640A KR101716862B1 (ko) 2016-10-04 2016-10-04 영상데이터 관리 장치 및 방법

Country Status (3)

Country Link
US (1) US10530980B2 (ko)
KR (1) KR101716862B1 (ko)
WO (1) WO2018066750A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005028957A1 (de) * 2003-09-03 2005-03-31 Siemens Aktiengesellschaft Verfahren zum anfahren eines durchlaufdampferzeugers und durchlaufdampferzeuger zur durchführung des verfahrens
KR20110027950A (ko) * 2009-09-11 2011-03-17 주식회사 이지에이치엘디 화면 출력 제어 방법, 장치 및 기록매체
KR20120100358A (ko) * 2011-03-04 2012-09-12 세크론 주식회사 영상 처리 방법 및 장치
KR20130091104A (ko) * 2012-02-07 2013-08-16 현대모비스 주식회사 안드로이드 플랫폼 기반 듀얼 메모리를 이용한 비디오 디코딩 장치 및 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549948B1 (en) * 1994-10-18 2003-04-15 Canon Kabushiki Kaisha Variable frame rate adjustment in a video system
JP2008046969A (ja) * 2006-08-18 2008-02-28 Fujitsu Ltd 共有メモリのアクセス監視方法及び装置
KR101490468B1 (ko) 2010-02-04 2015-02-06 삼성전자 주식회사 데이터 처리 장치 및 방법
US8463980B2 (en) * 2010-09-30 2013-06-11 Microsoft Corporation Shared memory between child and parent partitions
US9697629B1 (en) * 2013-01-22 2017-07-04 Hypori, Inc. System, method and computer product for user performance and device resolution settings
CN104102549B (zh) * 2013-04-01 2017-12-15 华为技术有限公司 一种实现多线程互斥操作的方法、装置和芯片
US10454850B2 (en) * 2014-12-24 2019-10-22 Intel Corporation Apparatus and method for buffering data in a switch

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005028957A1 (de) * 2003-09-03 2005-03-31 Siemens Aktiengesellschaft Verfahren zum anfahren eines durchlaufdampferzeugers und durchlaufdampferzeuger zur durchführung des verfahrens
KR20110027950A (ko) * 2009-09-11 2011-03-17 주식회사 이지에이치엘디 화면 출력 제어 방법, 장치 및 기록매체
KR20120100358A (ko) * 2011-03-04 2012-09-12 세크론 주식회사 영상 처리 방법 및 장치
KR20130091104A (ko) * 2012-02-07 2013-08-16 현대모비스 주식회사 안드로이드 플랫폼 기반 듀얼 메모리를 이용한 비디오 디코딩 장치 및 방법

Also Published As

Publication number Publication date
US10530980B2 (en) 2020-01-07
US20190215435A1 (en) 2019-07-11
WO2018066750A1 (ko) 2018-04-12

Similar Documents

Publication Publication Date Title
KR100890236B1 (ko) 카메라핸드폰을 컴퓨터의 카메라로 사용하여비디오데이터를 취득하는 방법
KR100502225B1 (ko) 미팅 시스템
US8817114B2 (en) Image capture apparatus
US20100231754A1 (en) Virtual camera for sharing a physical camera
US20060064701A1 (en) Multi-instance input device control
KR20070039982A (ko) 비디오 카메라 공유
JP2004297801A (ja) デジタル撮像装置およびそのデータ伝送モードの選択方法
US20060242677A1 (en) Extendible and open camera connector system
CN115484403B (zh) 录像方法和相关装置
KR20180086112A (ko) 웹 브라우저에서 미디어를 재생하고 탐색하는 장치 및 방법
CN113347450B (zh) 一种多应用共享音视频设备的方法、装置和***
KR101716861B1 (ko) 영상데이터 관리 장치 및 방법
KR20190123680A (ko) 미디어사물인터넷의 거래 시스템 및 그 방법
KR101716862B1 (ko) 영상데이터 관리 장치 및 방법
KR20080101636A (ko) 모바일 폰의 두 개의 상이한 프로세서들 간의 파일시스템들을 브릿징하기 위한 시스템 및 방법
US6539441B1 (en) Multi-instance input device control
KR101591061B1 (ko) 실시간 처리를 위한 전송 라이브러리 시스템 및 그 시스템에서의 송/수신 방법
JP3684009B2 (ja) 映像通信システム及び情報処理装置及びその制御方法
KR102328151B1 (ko) 제로 레이턴시를 위한 데이터 전송 장치 및 방법
KR20010053436A (ko) 미팅 시스템 및 정보기억 매체
CN117742982A (zh) 一种截图画面显示方法及显示设备
CN117971514A (zh) 一种进程间数据传输方法及显示设备
KR101809404B1 (ko) 비디오 스트리밍 시스템에서 애플케이션 요구 기반 영상 품질 설정 방법
CN117478654A (zh) 图像数据传输过程的异常处理方法、设备及协同工作***
JP2023022710A (ja) 通信装置およびその制御方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191220

Year of fee payment: 4