KR101226184B1 - Digital video recorder system and driving method thereof - Google Patents

Digital video recorder system and driving method thereof Download PDF

Info

Publication number
KR101226184B1
KR101226184B1 KR1020110006313A KR20110006313A KR101226184B1 KR 101226184 B1 KR101226184 B1 KR 101226184B1 KR 1020110006313 A KR1020110006313 A KR 1020110006313A KR 20110006313 A KR20110006313 A KR 20110006313A KR 101226184 B1 KR101226184 B1 KR 101226184B1
Authority
KR
South Korea
Prior art keywords
module
encoding
decoding
hardware
function
Prior art date
Application number
KR1020110006313A
Other languages
Korean (ko)
Other versions
KR20120084964A (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 KR1020110006313A priority Critical patent/KR101226184B1/en
Publication of KR20120084964A publication Critical patent/KR20120084964A/en
Application granted granted Critical
Publication of KR101226184B1 publication Critical patent/KR101226184B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • H04N7/181Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Abstract

본 발명은 DVR 시스템 및 그 구동 방법에 관한 것이다.
본 발명에 따른 DVR 시스템은, DVR 시스템의 애플리케이션과 인터페이싱하여 레코딩(recording) 기능 및 플레이(play) 기능을 수행하는 애플리케이션 지원부; 상기 DVR 시스템의 하드웨어와 인터페이싱하여 인코딩 기능 및 디코딩 기능을 수행하는 하드웨어 지원부; 및 상기 애플리케이션 지원부와 하드웨어 지원부를 상호 연동시키는 연동 제어부를 포함하는 것을 특징으로 한다.
The present invention relates to a DVR system and a driving method thereof.
The DVR system according to the present invention comprises an application support unit for interfacing with an application of the DVR system to perform a recording function and a play function; A hardware support unit for performing an encoding function and a decoding function by interfacing with the hardware of the DVR system; And an interworking control unit for interlocking the application support unit and the hardware support unit.

Description

DVR 시스템 및 그 구동 방법 {Digital video recorder system and driving method thereof}DVB system and driving method thereof {Digital video recorder system and driving method}

본 발명은 DVR(Digital Video Recorder) 시스템 및 그 구동 방법에 관한 것으로, 보다 상세하게는 보안을 목적으로 영상, 음성 등을 녹화 및 재생하는 DVR(Digital Video Recorder) 시스템 및 그 구동 방법에 관한 것이다.The present invention relates to a DVR (Digital Video Recorder) system and a driving method thereof, and more particularly, to a DVR (Digital Video Recorder) system and a driving method for recording and reproducing video, audio, etc. for security purposes.

DVR(Digital Video Recorder) 시스템은 감시, 녹화, 검색, 재생, 백업, 네트워크 전송 등의 다양한 기능을 수행하는 보안용 장비이다. 이러한 기능은 다양한 내장 장치를 이용하여 제공되는데, 코덱(Codec), 비디오 디코더(Video Decoder), 비디오 인코더(Video Encoder), 멀티플렉서(Multiplexer) 등이 이에 속한다. 그러나, 이러한 내장 장치들은 표준화되어 있지 않아 장치 제조사들에 의해 그 인터페이스(interface)가 각각 결정되며, 이에 따라 DVR 소프트웨어(software)도 해당 장치별 인터페이스에 맞도록 개발되고 있는 실정이다.DVR (Digital Video Recorder) system is a security equipment that performs various functions such as surveillance, recording, search, playback, backup, network transmission. These functions are provided using various built-in devices, such as a codec, a video decoder, a video encoder, a multiplexer, and the like. However, these built-in devices are not standardized, and their interfaces are determined by device manufacturers, and accordingly, DVR software is being developed to match the device-specific interfaces.

도 1은 이러한 종래기술에 따른 DVR 시스템의 구성도를 개략적으로 도시한 것인데, 도 1에 도시된 바와 같이, 종래기술에 따른 DVR 시스템은 애플리케이션(application)(10)과 하드웨어(hardware)(20)가 직접적으로 인터페이싱하는 구조이다. 그러므로, 종래기술의 경우 장치별로 서로 다른 인터페이스를 이용해서 개발되는 DVR 소프트웨어(애플리케이션)는 하드웨어에 의존적일 수 밖에 없으며, 이에 따라 새로운 하드웨어가 개발되면 그 인터페이스에 맞도록 애플리케이션을 개발하여 DVR 시스템을 구동하였다.FIG. 1 schematically illustrates the configuration of a DVR system according to the prior art. As shown in FIG. 1, the DVR system according to the prior art includes an application 10 and a hardware 20. Is a direct interfacing structure. Therefore, in case of the prior art, DVR software (application) developed using different interfaces for each device has to be dependent on the hardware. Accordingly, when new hardware is developed, the application is developed to fit the interface to drive the DVR system. It was.

한편, DVR 시스템에서 주로 다루는 멀티미디어 데이터는 그 양이 초당 수 ~ 수십 메가바이트(MB; megabyte)에 이른다. 다수의 카메라 영상을 압축/저장/재생하는 DVR 시스템은 카메라의 수에 따라서 처리해야 할 데이터 양도 증가하게 되는데, 이는 소프트웨어 개발 시 메모리 복사를 제한하는 요인이 된다. 그리고, 이에 따라 종래기술에 따른 DVR 시스템은 최소한의 메모리 복사를 위해 하나의 프로세스(process)에서 다수개의 쓰레드(thread)가 동작하는 구조로 설계되었다.On the other hand, the amount of multimedia data mainly dealt with in a DVR system amounts to several megabytes (MB) per second. The DVR system that compresses / stores / plays back many camera images also increases the amount of data to be processed according to the number of cameras, which limits the memory copying during software development. Accordingly, the DVR system according to the prior art is designed in such a manner that a plurality of threads operate in one process for minimal memory copying.

이와 같이, 종래기술에 따른 DVR 시스템에서는 하드웨어에 대한 의존성으로 인해, 하드웨어 변경 시 관련된 모든 소프트웨어를 변경해야 하는 문제점이 있었다. 이는 특히 하드웨어 관련 부분을 명확히 정의해 놓지 않았을 경우 소프트웨어의 상당히 많은 부분을 변경해야 하였으며, 이에 따라 새로운 하드웨어를 이용한 제품을 개발하는데 많은 인력과 비용을 소비하게 됨으로써 생산성을 떨어뜨리는 문제점이 있었다.As described above, in the DVR system according to the related art, there is a problem in that all related software should be changed when changing hardware due to dependency on hardware. In particular, if the hardware-related part was not clearly defined, a large amount of software had to be changed, and accordingly, it required a lot of manpower and cost to develop a product using the new hardware, thereby reducing productivity.

그리고, 전술한 소프트웨어 제약사항으로 인해 하나의 프로세스로 모든 기능을 구현하게 되면 사소한 문제가 발생하더라도 시스템 전체에 영향을 끼쳐 보안장비의 필수 요소인 안정성을 현저히 떨어뜨리게 되는 문제점이 발생한다. 또한, 하나의 프로세스로 구현되므로 소프트웨어 복잡도가 매우 높아지고, 이로 인해 개발 난이도가 상승하게 되며 새로운 기능 추가에도 어려움으로 나타나게 된다.In addition, if all the functions are implemented in one process due to the aforementioned software constraints, even if a minor problem occurs, the entire system may be affected, thereby significantly reducing the stability, an essential element of the security equipment. In addition, since it is implemented as a single process, the software complexity becomes very high, which leads to an increase in development difficulty and difficulty in adding new functions.

본 발명은 전술한 바와 같은 문제점을 해결하기 위해 창안된 것으로, 본 발명의 목적은 애플리케이션이나 하드웨어가 변경되더라도 기존 시스템의 구성 변경을 최소화할 수 있는 상호 독립적 분리 구조의 DVR 시스템 및 그 구동 방법을 제공하는 것이다.The present invention was devised to solve the above problems, and an object of the present invention is to provide a DVR system having a mutually independent structure and a driving method thereof, which can minimize configuration changes of an existing system even if an application or hardware is changed. It is.

본 발명의 다른 목적은 DVR 시스템의 기능별로 모듈들을 분리시키고 RPC(Remote Procedure Call)을 이용하여 각 모듈들을 상호 연동시킴으로써 시스템의 확장 및 분리가 용이한 DVR 시스템 및 그 구동 방법을 제공하는 것이다.Another object of the present invention is to provide a DVR system and a driving method thereof, by which modules are separated by functions of a DVR system and interoperable with each module using an RPC (Remote Procedure Call).

본 발명의 또 다른 목적은 복수개의 프로세스를 이용하여 각 프로세스가 DVR 시스템의 상호 관련된 기능들을 처리하도록 함으로써 시스템의 안정성과 효율성을 높일 수 있는 DVR 시스템 및 그 구동 방법을 제공하는 것이다.It is still another object of the present invention to provide a DVR system and a driving method thereof, which can increase the stability and efficiency of the system by allowing each process to process interrelated functions of the DVR system using a plurality of processes.

상기 목적을 위하여, 본 발명의 일 형태에 따른 DVR 시스템은, DVR 시스템의 애플리케이션과 인터페이싱하여 레코딩(recording) 기능 및 플레이(play) 기능을 수행하는 애플리케이션 지원부; 상기 DVR 시스템의 하드웨어와 인터페이싱하여 인코딩 기능 및 디코딩 기능을 수행하는 하드웨어 지원부; 및 상기 애플리케이션 지원부와 하드웨어 지원부를 상호 연동시키는 연동 제어부를 포함하는 것을 특징으로 한다.For this purpose, the DVR system of one embodiment of the present invention includes an application support unit for interfacing with an application of the DVR system to perform a recording function and a play function; A hardware support unit for performing an encoding function and a decoding function by interfacing with the hardware of the DVR system; And an interworking control unit for interlocking the application support unit and the hardware support unit.

그리고, 본 발명의 다른 형태에 따른 DVR 시스템은, DVR 시스템의 애플리케이션과 인터페이싱하여 레코딩(recording) 기능을 수행하는 레코딩 모듈; 상기 DVR 시스템의 애플리케이션과 인터페이싱하여 플레이(play) 기능을 수행하는 플레이 모듈; 상기 DVR 시스템의 하드웨어와 인터페이싱하여 인코딩(encoding) 기능을 수행하는 인코딩 모듈; 상기 DVR 시스템의 하드웨어와 인터페이싱하여 디코딩(decoding) 기능을 수행하는 디코딩 모듈; 상기 레코딩 모듈, 플레이 모듈, 인코딩 모듈, 디코딩 모듈 사이에 IPC(Inter Processor Communication)를 제공하는 버스(Bus) 드라이버; 및 상기 레코딩 모듈, 플레이 모듈, 인코딩 모듈, 디코딩 모듈 사이에 데이터 전송과 이벤트 전송을 수행하는 큐(Queue) 드라이버를 포함하는 것을 특징으로 한다.In addition, a DVR system according to another aspect of the present invention includes a recording module for performing a recording function by interfacing with an application of the DVR system; A play module for performing a play function by interfacing with an application of the DVR system; An encoding module for performing an encoding function by interfacing with hardware of the DVR system; A decoding module for performing a decoding function by interfacing with hardware of the DVR system; A bus driver providing interprocessor communication (IPC) between the recording module, the play module, the encoding module, and the decoding module; And a queue driver for performing data transmission and event transmission between the recording module, the play module, the encoding module, and the decoding module.

그리고, 본 발명의 또 다른 형태에 따른 DVR 시스템은, DVR 시스템의 애플리케이션과 인터페이싱하여 레코딩(recording) 기능을 수행하는 레코딩 모듈, 및 상기 레코딩 모듈과 IPC(Inter Processor Communication)을 통해 연동하며 네트워크에 대한 인터페이싱을 수행하는 제1 블로커(Broker)를 포함하는 제1 장치; 및 상기 DVR 시스템의 하드웨어와 인터페이싱하여 인코딩(encoding) 기능을 수행하는 인코딩 모듈, 및 상기 인코딩 모듈과 IPC를 통해 연동하며 상기 네트워크에 대한 인터페이싱을 수행하여 상기 제1 블로커와 연동하는 제2 블로커를 포함하는 제2 장치를 포함하는 것을 특징으로 한다.In addition, the DVR system according to another embodiment of the present invention, a recording module for performing a recording function by interfacing with an application of the DVR system, and interworking with the recording module through IPC (Inter Processor Communication) to the network A first device comprising a first blocker for performing interfacing; And an encoding module interfacing with hardware of the DVR system to perform an encoding function, and a second blocker interworking with the encoding module through IPC and interfacing with the network to interwork with the first blocker. It characterized in that it comprises a second device.

그리고, 본 발명의 또 다른 형태에 따른 DVR 시스템은, DVR 시스템의 애플리케이션과 인터페이싱하여 플레이(play) 기능을 수행하는 플레이 모듈, 및 상기 플레이 모듈과 IPC(Inter Processor Communication)을 통해 연동하며 네트워크에 대한 인터페이싱을 수행하는 제1 블로커(Broker)를 포함하는 제1 장치; 및 상기 DVR 시스템의 하드웨어와 인터페이싱하여 디코딩(decoding) 기능을 수행하는 디코딩 모듈, 및 상기 디코딩 모듈과 IPC를 통해 연동하며 상기 네트워크에 대한 인터페이싱을 수행하여 상기 제1 블로커와 연동하는 제2 블로커를 포함하는 제2 장치를 포함하는 것을 특징으로 한다.In addition, the DVR system according to another embodiment of the present invention, a play module for performing a play function by interfacing with an application of the DVR system, and interworking with the play module through IPC (Inter Processor Communication) A first device comprising a first blocker for performing interfacing; And a decoding module interfacing with hardware of the DVR system to perform a decoding function, and a second blocker interworking with the decoding module through IPC and interfacing with the network to interwork with the first blocker. It characterized in that it comprises a second device.

한편, 본 발명의 일 형태에 따른 DVR 시스템 구동 방법은, a) DVR 시스템의 애플리케이션과 인터페이싱하는 레코딩(recording) 모듈이 버스 드라이버(Bus Driver)로 인코딩(encoding) 서비스를 요청하는 단계; b) 상기 버스 드라이버가 상기 DVR 시스템의 하드웨어와 인터페이싱하는 인코딩 모듈로 인코딩 서비스 요청을 전달하는 단계; c) 상기 인코딩 모듈이 상기 DVR 시스템의 하드웨어와 연동하여 인코딩 서비스를 수행하고, 인코딩 수행 결과를 상기 버스 드라이버로 전송하는 단계; 및 d) 상기 버스 드라이버가 상기 레코딩 모듈로 인코딩 수행 결과를 전달하는 단계를 포함하는 것을 특징으로 한다.On the other hand, a method for driving a DVR system according to one embodiment of the present invention includes the steps of: a) requesting an encoding service to a bus driver by a recording module that interfaces with an application of the DVR system; b) the bus driver forwarding an encoding service request to an encoding module that interfaces with hardware of the DVR system; c) the encoding module performing an encoding service in cooperation with hardware of the DVR system, and transmitting an encoding result to the bus driver; And d) transmitting, by the bus driver, a result of performing encoding to the recording module.

그리고, 본 발명의 다른 형태에 따른 DVR 시스템 구동 방법은, a) DVR 시스템의 애플리케이션과 인터페이싱하는 플레이(play) 모듈이 버스 드라이버(Bus Driver)로 디코딩(decoding) 서비스를 요청하는 단계; b) 상기 버스 드라이버가 상기 DVR 시스템의 하드웨어와 인터페이싱하는 디코딩 모듈로 디코딩 서비스 요청을 전달하는 단계; c) 상기 디코딩 모듈이 상기 DVR 시스템의 하드웨어와 연동하여 디코딩 서비스를 수행하고, 디코딩 수행 결과를 상기 버스 드라이버로 전송하는 단계; 및 d) 상기 버스 드라이버가 상기 플레이 모듈로 디코딩 수행 결과를 전달하는 단계를 포함하는 것을 특징으로 한다.In addition, a method of driving a DVR system according to another aspect of the present invention may include: a) requesting a decoding service to a bus driver from a play module interfaced with an application of the DVR system; b) the bus driver forwarding a decoding service request to a decoding module that interfaces with hardware of the DVR system; c) the decoding module performing a decoding service in association with hardware of the DVR system, and transmitting a decoding performance result to the bus driver; And d) delivering, by the bus driver, a result of performing decoding to the play module.

본 발명에 따르면, DVR 시스템을 상호 독립적 분리 구조로 구현함으로써 애플리케이션이나 하드웨어의 개발이 용이한 효과를 가지며, 애플리케이션이나 하드웨어가 변경되더라도 관련 모듈만 변경함으로써 기존 시스템의 구성 변경을 최소화할 수 있는 효과를 가진다.According to the present invention, by implementing the DVR system in a mutually independent structure, it is easy to develop an application or hardware, and even if the application or hardware is changed, by changing only the relevant module, it is possible to minimize the configuration change of the existing system. Have

그리고, 본 발명에 따르면, DVR 시스템의 기능별로 모듈들을 분리시키고 RPC(Remote Procedure Call)을 이용하여 각 모듈들을 상호 연동시킴으로써 시스템의 확장 및 분리가 용이한 효과를 가진다.In addition, according to the present invention, by separating the modules by the function of the DVR system and interworking each module using the RPC (Remote Procedure Call) has the effect of easy expansion and separation of the system.

또한, 본 발명에 따르면, 복수개의 프로세스를 이용하여 각 프로세스가 DVR 시스템의 상호 관련된 기능들을 처리하도록 함으로써 시스템의 안정성과 효율성을 높일 수 있는 효과를 가진다.In addition, according to the present invention, by using a plurality of processes each process to process the interrelated functions of the DVR system has the effect of increasing the stability and efficiency of the system.

도 1은 종래기술에 따른 DVR 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 DVR 시스템의 구성도이다.
도 3은 RPC(Remote Procedure Call)를 이용하여 각 모듈간 상호 연동하는 방식을 설명하는 도면이다.
도 4는 본 발명의 다른 실시예에 따른 DVR 시스템의 구성도로서, 기능별로 분리된 장치들이 상호 연동하는 방식을 설명하는 도면이다.
1 is a block diagram of a DVR system according to the prior art.
2 is a block diagram of a DVR system according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating a method of interworking between modules by using a RPC (Remote Procedure Call).
4 is a diagram illustrating a configuration of a DVR system according to another embodiment of the present invention, illustrating a manner in which devices separated by functions are interoperable with each other.

이하에서는 첨부 도면 및 바람직한 실시예를 참조하여 본 발명을 상세히 설명한다. 참고로, 하기 설명에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings and preferred embodiments. In the following description, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention unnecessarily obscure.

도 2는 본 발명의 일 실시예에 따른 DVR 시스템의 구성도를 나타낸 도면이다.2 is a diagram illustrating a configuration of a DVR system according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 DVR 시스템은 애플리케이션(100), 애플리케이션 지원부(200), 하드웨어 지원부(300), 연동 제어부(400), 하드웨어(500) 등을 포함한다.2, a DVR system according to an embodiment of the present invention includes an application 100, an application support unit 200, a hardware support unit 300, an interworking control unit 400, and a hardware 500.

이를 상술하면, 먼저 애플리케이션(100)은 DVR 시스템을 구동하기 위한 소프트웨어로서 시스템 구동/설정 등을 위한 사용자 인터페이스(User Interface)를 제공하고 사용자의 조작/설정에 따라서 DVR 시스템을 구동한다. 본 발명의 경우, 애플리케이션(100)은 하드웨어(500) 및 하드웨어 지원부(400)와는 독립적인 형태로 구현되며, 따라서 애플리케이션 개발 시 하드웨어의 인터페이스를 고려할 필요가 없다.In detail, the application 100 first provides a user interface for driving / setting the system as software for driving the DVR system, and drives the DVR system according to a user's operation / setting. In the case of the present invention, the application 100 is implemented in a form independent of the hardware 500 and the hardware support unit 400, so it is not necessary to consider the interface of the hardware when developing the application.

애플리케이션 지원부(200)는 레코딩 모듈(210), 플레이 모듈(220), 라이브 디스플레이 모듈(230), 백업 모듈(240), 셋업 모듈(250) 등으로 구성되며, 애플리케이션(100)과 직접적으로 인터페이싱하여 애플리케이션(100)으로부터 전송된 설정값/명령 등에 따라 하드웨어 지원부(300)와 연동하여 해당 기능을 수행한다.The application support unit 200 includes a recording module 210, a play module 220, a live display module 230, a backup module 240, a setup module 250, and the like, by directly interfacing with the application 100. The corresponding function is performed in cooperation with the hardware support unit 300 according to a setting value / command transmitted from the application 100.

먼저, 레코딩 모듈(210)은 레코딩(recoding) 기능을 수행하는 모듈로서, 사용자 인터페이스를 통해 레코딩 명령을 수신하면 레코딩할 비디오/오디오 데이터와 인코딩 규칙(rule)을 인코딩 모듈(310)로 전송한다.First, the recording module 210 performs a recording function. When the recording command is received through the user interface, the recording module 210 transmits video / audio data and an encoding rule to be recorded to the encoding module 310.

플레이 모듈(220)은 플레이(play) 기능을 수행하는 모듈로서, 사용자 인터페이스를 통해 플레이 명령을 수신하면 재생(플레이)할 비디오/오디오 데이터를 저장 장치로부터 읽어 들여 디코딩 모듈(320)로 전송한다.The play module 220 performs a play function. When a play command is received through a user interface, the play module 220 reads video / audio data to be played (played) from the storage device and transmits the video / audio data to the decoding module 320.

라이브 디스플레이 모듈(230)은 적어도 하나의 카메라로부터 입력되는 영상을 실시간으로 디스플레이하는 기능을 수행하는 모듈로서, 사용자 인터페이스를 통해 라이브 화면 분할 정보, 카메라 정보 등을 수신하면 디스플레이 모듈(330)로 화면 분할 변경, 카메라 변경 등을 요청하고, 라이브 화면 분할 관리, 줌(zoom)/프리즈(freeze) 관리, 이벤트 발생 시 관련 카메라 팝업(pop up) 등을 수행한다.The live display module 230 performs a function of displaying an image input from at least one camera in real time. The live display module 230 divides the screen into the display module 330 when receiving live screen segmentation information and camera information through a user interface. It requests change, camera change, etc., and manages live screen division, zoom / freeze, and pops up related camera when an event occurs.

백업 모듈(240)은 데이터 백업(backup) 기능을 수행하는 모듈로서, 사용자 인터페이스를 통해 백업 규칙을 입력 받으면 저장 장치로부터 해당 데이터를 읽어와 백업 장치로 복사한다.The backup module 240 performs a data backup function. When the backup rule is input through the user interface, the backup module 240 reads the corresponding data from the storage device and copies the data to the backup device.

셋업 모듈(250)은 시스템 셋업(setup) 기능을 수행하는 모듈로서, 현재의 시스템 설정을 관리하며 사용자 인터페이스를 통한 설정값 변경이 있는 경우 변경된 설정값을 해당 모듈에 적용하여 시스템 설정을 변경한다.The setup module 250 is a module that performs a system setup function. The setup module 250 manages current system settings and changes the system settings by applying the changed setting values to the corresponding module when there is a setting value change through the user interface.

한편, 하드웨어 지원부(300)는 인코딩 모듈(310), 디코딩 모듈(320), 디스플레이 모듈(330) 등으로 구성되며, 하드웨어(500)와 직접적으로 인터페이싱하여 애플리케이션 지원부(200)에서 전송된 설정값/명령 등에 따라 하드웨어(500)를 제어한다.Meanwhile, the hardware support unit 300 is composed of an encoding module 310, a decoding module 320, a display module 330, and the like, and the setting value transmitted from the application support unit 200 by directly interfacing with the hardware 500. The hardware 500 is controlled according to an instruction or the like.

인코딩 모듈(310)은 인코딩(encoding) 기능을 수행하는 모듈로서, 레코딩 모듈(210)로부터 인코딩 규칙을 수신하면 이에 따라 인코더(encoder)(이는 하드웨어(500)에 포함됨)의 설정을 변경한다. 그리고, 레코딩 모듈(210)이 인코딩 모듈(310)에게 인코딩을 지시하면, 인코딩 모듈(310)은 인코딩을 수행하도록 인코더를 제어하고 인코더가 인코딩한 비디오/오디오 데이터를 레코딩 모듈(210)로 전송한다.The encoding module 310 performs an encoding function. When the encoding module receives an encoding rule from the recording module 210, the encoding module 310 changes the setting of the encoder (which is included in the hardware 500) accordingly. In addition, when the recording module 210 instructs the encoding module 310 to encode, the encoding module 310 controls the encoder to perform encoding and transmits the video / audio data encoded by the encoder to the recording module 210. .

디코딩 모듈(320)은 디코딩(decoding) 기능을 수행하는 모듈로서, 플레이 모듈(220)로부터 전송된 인코딩된 데이터를 수신하여 디코더(decoder)(이는 하드웨어(500)에 포함됨)로 전송하고, 이를 디코딩하도록 제어한다.The decoding module 320 performs a decoding function. The decoding module 320 receives encoded data transmitted from the play module 220 and transmits the encoded data to a decoder (which is included in the hardware 500). To control.

디스플레이 모듈(330)은 디스플레이(display) 기능을 수행하는 모듈로서, 라이브 디스플레이 모듈(230) 등으로부터 화면 분할 변경, 카메라 변경 등을 요청받으면 이에 따라 분할 화면 변경, 각 분할별 카메라 출력 제어, 줌(Zoom)/프리즈(Freeze) 제어 등을 수행한다.The display module 330 is a module that performs a display function. When a display split request or a camera change request is requested from the live display module 230, the display module 330 changes the split screen, controls the camera output for each split, and zooms. Perform Zoom / Freeze control.

한편, 연동 제어부(400)는 버스 드라이버(410), 큐 드라이버(420) 등으로 구성되며, 애플리케이션 지원부(200)와 하드웨어 지원부(300)를 상호 연동시킨다.Meanwhile, the interworking control unit 400 includes a bus driver 410, a queue driver 420, and the like, and interlocks the application support unit 200 and the hardware support unit 300.

먼저, 버스(Bus) 드라이버(410)는 모듈(210, 220, 230, 240, 250, 310, 320, 330) 상호간에 IPC(Inter Processor Communication)를 제공하며, 이에 따라 각 모듈들은 버스 드라이버(410)를 통해 IPC 기반의 RPC(Remote Procedure Call)를 수행한다.First, the bus driver 410 provides an interprocessor communication (IPC) between the modules 210, 220, 230, 240, 250, 310, 320, and 330, whereby each module provides a bus driver 410. ) Performs IPC based RPC (Remote Procedure Call).

그리고, 큐(Queue) 드라이버(420)는 공유 메모리(Shared Memory) 및 이벤트 큐(Event Queue)와 연동하여 모듈 상호간에 데이터 전송 및 이벤트 전송을 담당한다.In addition, the queue driver 420 is in charge of data transmission and event transmission between modules in association with a shared memory and an event queue.

마지막으로, 하드웨어(500)는 하드웨어 지원부(300)의 제어 하에 인코딩, 디코딩, 디스플레이 등을 실질적으로 수행하는 장치이며, 하드웨어의 예로는 인코더(Encoder), 디코더(Decoder), 디스플레이(Display) 등을 들 수 있다. 본 발명의 경우, 하드웨어는(500)는 애플리케이션(100) 및 애플리케이션 지원부(200)와는 독립적인 형태로 구현되며, 따라서 하드웨어 개발 시 애프리케이션의 인터페이스를 고려할 필요가 없다.
Lastly, the hardware 500 is an apparatus that substantially performs encoding, decoding, and display under the control of the hardware support unit 300. Examples of the hardware include an encoder, a decoder, a display, and the like. Can be mentioned. In the case of the present invention, the hardware 500 is implemented in a form independent of the application 100 and the application support unit 200, so it is not necessary to consider the interface of the application when developing the hardware.

이하에서는 본 발명에 따른 DVR 시스템의 각 모듈들이 상호 연동하여 레코딩 기능, 플레이 기능 등을 수행하는 방식, 즉 본 발명에 따른 DVR 시스템 구동 방법에 대해 설명한다.Hereinafter, a method in which each module of the DVR system according to the present invention interoperates with each other to perform a recording function, a play function, etc., that is, a method of driving the DVR system according to the present invention will be described.

먼저, 도 3은 RPC(Remote Procedure Call)를 이용하여 각 모듈간 상호 연동하는 방식을 설명하는 도면이다.First, FIG. 3 is a diagram illustrating a method of interworking between modules by using a RPC (Remote Procedure Call).

도 3을 참조하면, 먼저 서비스를 제공할 모듈(서버)은 버스 드라이버 노드(node)를 오픈(open)하여 서비스를 등록한다(단계 S610). 그리고, 현재 서비스를 제공하고 있지 않은 경우, 버스 드라이버에 서비스 요청 대기를 알리고(단계 S620), 대기 상태로 상태를 변경한다(단계 S630).Referring to FIG. 3, a module (server) to provide a service first registers a service by opening a bus driver node (step S610). If no service is currently provided, the bus driver is notified of the service request wait (step S620), and the state is changed to the standby state (step S630).

한편, 서비스를 요청하는 모듈(클라이언트)은 RPC(Remote Procedure Call)를 생성하여 버스 드라이버로 서비스를 요청하고(단계 S640), 서비스가 완료될 때까지 대기한다(S650). 한편, 버스 드라이버는 해당 서비스를 수행할 수 있는 서버 노드의 큐에 RPC를 추가하고 서버에게 통지한다(단계 S660). 그러면, 서버는 RPC를 해석하여 해당 서비스를 수행하고(S670), 서비스 수행 결과를 버스 드라이버로 전달한다(S680). 그러면, 버스 드라이버는 서비스 수행 결과를 클라이언트 노드의 큐에 추가하고 클라이언트에게 통지한다(S690).On the other hand, the module requesting the service (client) generates a remote procedure call (RPC) to request the service with the bus driver (step S640), and waits until the service is completed (S650). Meanwhile, the bus driver adds an RPC to the queue of the server node capable of performing the corresponding service and notifies the server (step S660). Then, the server interprets the RPC to perform the corresponding service (S670), and transmits the service performance result to the bus driver (S680). Then, the bus driver adds the result of the service to the queue of the client node and notifies the client (S690).

이하에서는, 전술한 내용에 기초하여, 애플리케이션 지원부의 레코딩 모듈과 하드웨어 지원부의 인코딩 모듈이 상호 연동하여 레코딩 기능을 수행하는 방법에 대해 설명한다.Hereinafter, a method of performing a recording function by interworking with a recording module of the application support unit and an encoding module of the hardware support unit based on the above description.

먼저, 본 발명에 따른 각 모듈들(레코딩 모듈, 인코딩 모듈 등)은 버스 드라이버에 자신이 수행할 수 있는 서비스를 등록하고, 타 모듈로부터 서비스 요청이 있을 때까지 대기한다.First, each module (recording module, encoding module, etc.) according to the present invention registers a service that can be performed by the bus driver, and waits for a service request from another module.

그리고, 만약 사용자가 애플리케이션의 사용자 인터페이스 등을 통해 레코딩 명령을 실행하면, 애플리케이션과 인터페이싱하는 레코딩 모듈은 RPC(Remote Procedure Call)를 생성하여 버스 드라이버로 인코딩 서비스를 요청한다. 그리고, 레코딩 모듈은 레코딩할 비디오/오디오 데이터와 인코딩 규칙(인코딩 파라미터)을 큐 드라이버의 제어 하에 있는 공유 메모리로 전송한다. 여기서, 인코딩 규칙의 예로는 인코딩 방식, 해상도, FPS(Frame Per Second), 화질 등을 들 수 있다.If the user executes a recording command through an application user interface or the like, the recording module interfaced with the application generates an RPC (Remote Procedure Call) and requests an encoding service from the bus driver. The recording module then transfers the video / audio data to be recorded and the encoding rules (encoding parameters) to the shared memory under the control of the queue driver. Here, examples of the encoding rule may include an encoding scheme, a resolution, a frame per second (FPS), an image quality, and the like.

한편, 레코딩 모듈로부터 인코딩 서비스를 요청 받은 버스 드라이버는 인코딩 모듈의 노드의 큐에 RPC를 추가하여 인코딩 모듈에게 인코딩 서비스를 요청한다. 그러면, 하드웨어(구체적으로는, 인코더)와 인터페이싱하는 인코딩 모듈은 인코딩 규칙에 따라서 인코더의 설정을 변경하고, 인코더가 비디오/오디오 데이터를 인코딩하도록 명령한다. 그리고, 인코딩 모듈은 인코더에 의해 인코딩된 데이터에 헤더(header)를 추가하여 공유 메모리로 전송하고 버스 드라이버로 인코딩 수행 결과를 전송한다. 그러면, 버스 드라이버는 레코딩 모듈의 노드의 큐에 인코딩 수행 결과를 추가하여 레코딩 모듈에게 서비스 완료를 통지하고, 레코딩 모듈은 공유 메모리로부터 인코딩된 데이터를 읽어 와서 기 설정된 레코딩 규칙에 따라 저장 장치에 저장한다.Meanwhile, the bus driver receiving the encoding service from the recording module requests an encoding service from the encoding module by adding an RPC to the queue of the node of the encoding module. The encoding module interfacing with the hardware (specifically, the encoder) then changes the encoder's settings according to the encoding rules and instructs the encoder to encode the video / audio data. The encoding module adds a header to the data encoded by the encoder, transmits the header to the shared memory, and transmits an encoding performance result to the bus driver. Then, the bus driver adds the result of performing the encoding to the node of the recording module's queue to notify the recording module of the completion of the service, and the recording module reads the encoded data from the shared memory and stores the encoded data in the storage device according to a preset recording rule. .

이하에서는, 모듈 상호 간 연동의 다른 예로서, 애플리케이션 지원부의 플레이 모듈과 하드웨어 지원부의 디코딩 모듈이 상호 연동하여 플레이 기능을 수행하는 방법에 대해 설명한다.Hereinafter, as another example of interworking between modules, a method in which a play module of an application support unit and a decoding module of a hardware support unit interoperate with each other to perform a play function will be described.

전술한 바와 마찬가지로, 먼저 본 발명에 따른 각 모듈들(플레이 모듈, 디코딩 모듈 등)은 버스 드라이버에 자신이 수행할 수 있는 서비스를 등록하고, 타 모듈로부터 서비스 요청이 있을 때까지 대기한다.As described above, each module (play module, decoding module, etc.) according to the present invention first registers a service that can be performed by the bus driver, and waits for a service request from another module.

그리고, 만약 사용자가 애플리케이션의 사용자 인터페이스 등을 통해 플레이 명령을 실행하면, 애플리케이션과 인터페이싱하는 플레이 모듈은 RPC(Remote Procedure Call)를 생성하여 버스 드라이버로 디코딩 서비스를 요청한다. 그리고, 플레이 모듈은 플레이할 비디오/오디오 데이터를 큐 드라이버의 제어 하에 있는 공유 메모리로 전송한다.If a user executes a play command through an application user interface or the like, the play module interfacing with the application generates an RPC (Remote Procedure Call) and requests a decoding service from the bus driver. The play module then transfers the video / audio data to be played to the shared memory under the control of the cue driver.

한편, 플레이 모듈로부터 디코딩 서비스를 요청 받은 버스 드라이버는 디코딩 모듈의 노드의 큐에 RPC를 추가하여 디코딩 모듈에게 디코딩 서비스를 요청한다. 그러면, 하드웨어(구체적으로는, 디코더)와 인터페이싱하는 디코딩 모듈은 공유 메모리로부터 디코딩할 데이터을 읽어 와서 헤더를 분리한 후 디코더로 전송하고, 디코더로 하여금 디코딩을 수행하도록 명령한다. 그리고, 디코딩 모듈은 디코더에 의해 디코딩된 데이터를 공유 메모리로 전송하고 버스 드라이버로 디코딩 수행 결과를 전송한다. 그러면, 버스 드라이버는 플레이 모듈의 노드의 큐에 디코딩 수행 결과를 추가하여 플레이 모듈에게 서비스 완료를 통지한다.Meanwhile, the bus driver, which has received a decoding service from the play module, requests an decoding service from the decoding module by adding an RPC to a queue of a node of the decoding module. Then, the decoding module interfacing with the hardware (specifically, the decoder) reads the data to decode from the shared memory, separates the headers, and sends them to the decoder, and instructs the decoder to perform the decoding. The decoding module transmits the data decoded by the decoder to the shared memory and transmits the decoding performance result to the bus driver. The bus driver then adds the decoding performance result to the queue of the node of the play module to notify the play module of the completion of the service.

한편, 플레이 모듈은 마찬가지의 방식으로 버스 드라이버를 통해 디스플레이 모듈에게 디스플레이 서비스를 요청하고, 디스플레이 모듈은 하드웨어(구체적으로는, 디스플레이)를 제어하여 디코딩된 데이터를 디스플레이한다.Meanwhile, the play module requests display service to the display module through the bus driver in a similar manner, and the display module controls hardware (specifically, display) to display decoded data.

지금까지 레코딩 모듈과 인코딩 모듈이 상호 연동하는 방식과 플레이 모듈과 디코딩 모듈이 상호 연동하는 방식에 대해 설명하였는데, 본 발명의 경우 각각의 모듈은 RPC를 통해 상호 연동될 수 있으며, 이는 애플리케이션 지원부의 모듈 간에 그리고 하드웨어 지원부의 모듈 간에도 적용될 수 있다. 예컨대, 애플리케이션 지원부의 셋업 모듈(250)이 RPC를 생성하여 레코딩 모듈로 레코딩 설정의 변경을 요청하고 이에 따라 레코딩 모듈이 레코딩 설정을 변경할 수 있다.So far, the recording module and the encoding module have been described with each other, and the play module and the decoding module have been described with each other. In the case of the present invention, each module may be interoperable with each other through an RPC, which is a module of an application support unit. Can be applied between modules of hardware support. For example, the setup module 250 of the application support unit may generate an RPC to request the recording module to change the recording setting, and thus the recording module may change the recording setting.

또한, 바람직하게는, 본 발명에 따른 DVR 시스템을 2 이상의 프로세스로 구동하고, 관련 기능들을 동일한 프로세스가 처리하도록 함으로써(예컨대, 제1 프로세스가 레코딩 모듈과 인코딩 모듈의 처리를 담당하고, 제2 프로세스가 플레이 모듈과 디코딩 모듈의 처리를 담당함으로써), 시스템의 안정성과 효율성을 높일 수 있다.
Further, preferably, the DVR system according to the present invention is driven by two or more processes, and the related processes are processed by the same process (eg, the first process is in charge of the processing of the recording module and the encoding module, and the second process). By taking care of the play module and the decoding module), the stability and efficiency of the system can be increased.

이하에서는 도 4를 참조하여 본 발명에 따른 DVR 시스템이 2 이상의 장치로 분리되어 서로 연동하는 방식에 대해 설명한다.Hereinafter, a method in which the DVR system according to the present invention is separated into two or more devices and interoperates with reference to FIG. 4 will be described.

도 4는 본 발명의 다른 실시예에 따른 DVR 시스템의 구성도를 나타낸 것으로, 제1 기능을 수행하는 제1 모듈과 제2 기능을 수행하는 제2 모듈이 별개의 장치로 구성되어 상호 연동하는 방식을 설명하는 도면이다. 참고로, 비록 도면에서는 하나의 장치가 하나의 모듈을 포함하는 구성을 나타내었지만, 물론 하나의 장치가 2 이상의 모듈을 포함하도록 구현될 수도 있다.4 is a block diagram of a DVR system according to another embodiment of the present invention, in which a first module that performs a first function and a second module that performs a second function are configured as separate devices and interoperate with each other It is a figure explaining. For reference, although one device shows a configuration including one module, of course, one device may be implemented to include two or more modules.

도 4를 참조하면, 제1 장치(710)는 제1 기능을 수행하는 제1 모듈(711) 및 네트워크에 대한 인터페이싱을 수행하는 제1 블로커(Broker)(712)를 포함한다. 여기서, 제1 모듈(711)과 제1 블로커(712)는 IPC(Inter Processor Communication)을 통해 서로 연동한다.Referring to FIG. 4, the first device 710 includes a first module 711 performing a first function and a first blocker 712 performing an interface to a network. Here, the first module 711 and the first blocker 712 interwork with each other through IPC (Inter Processor Communication).

그리고, 제2 장치(720)는 제2 기능을 수행하는 제2 모듈(721) 및 네트워크에 대한 인터페이싱을 수행하는 제2 블로커(722)를 포함한다. 여기서, 제2 모듈(721)과 제2 블로커(722)도 마찬가지로 IPC을 통해 서로 연동한다.In addition, the second device 720 includes a second module 721 for performing a second function and a second blocker 722 for interfacing the network. Here, the second module 721 and the second blocker 722 likewise interwork with each other through the IPC.

한편, 제1 블로커(712)와 제2 블로커(722)는 TCP/IP를 통해 서로 연동하며, IPC 기반으로 동작하는 RPC(Remote Procedure Call)를 네트워크 상에서 동작될 수 있도록 변환한다. 그리고, 이에 따라 제1 모듈(711)과 제2 모듈(721)은 네트워크 상에서 RPC를 수행할 수 있다.Meanwhile, the first blocker 712 and the second blocker 722 interoperate with each other through TCP / IP, and convert an RPC (Remote Procedure Call) operating based on IPC to be operated on a network. And, accordingly, the first module 711 and the second module 721 may perform RPC on the network.

예컨대, 도 4를 참조하여 본 발명에 따른 DVR 시스템이 레코딩 기능을 수행하는 경우를 설명하면, 제1 장치(710)는 DVR 시스템의 애플리케이션과 인터페이싱하여 레코딩(recording) 기능을 수행하는 레코딩 모듈(711), 및 상기 레코딩 모듈(711)과 IPC(Inter Processor Communication)을 통해 연동하며 네트워크에 대한 인터페이싱을 수행하는 제1 블로커(Broker)(712)로 구성될 수 있다. 그리고, 제2 장치(720)는 DVR 시스템의 하드웨어와 인터페이싱하여 인코딩(encoding) 기능을 수행하는 인코딩 모듈(721), 및 상기 인코딩 모듈(721)과 IPC를 통해 연동하며 네트워크에 대한 인터페이싱을 수행하는 제2 블로커(722)로 구성될 수 있다. 여기서, 제1 블로커(712)와 제2 블로커(722)는 TCP/IP를 통해 서로 연동된다.For example, referring to FIG. 4, when the DVR system according to the present invention performs a recording function, the first device 710 may interface with an application of the DVR system to perform a recording function 711. And a first blocker 712 interworking with the recording module 711 through Inter Processor Communication (IPC) and interfacing the network. In addition, the second device 720 interfaces with hardware of the DVR system to perform an encoding function and performs an encoding function. The second device 720 interworks with the encoding module 721 through IPC and performs an interface to a network. It may be composed of a second blocker 722. Here, the first blocker 712 and the second blocker 722 are interworked with each other through TCP / IP.

그리고, 만약 제1 장치(710)의 레코딩 모듈(711)이 제2 장치(720)의 인코딩 모듈(712)로 인코딩 서비스를 요청할 경우, 레코딩 모듈(711)은 인코딩 서비스를 요청하는 IPC 기반의 RPC(Remote Procedure Call)를 생성하여 제1 블로커(712)로 전송하고, 제1 블로커(712)는 상기 RPC를 TCP/IP 기반으로 변환하여 제2 장치(720)의 제2 블로커(722)로 전송한다. 그러면, 제2 블로커(722)는 다시 상기 RPC를 IPC 기반으로 변환하여 인코딩 모듈(721)로 전송하고, 인코딩 모듈은 인코더와 연동하여 인코딩을 수행한다. 그리고, 인코딩 모듈(721)은 마찬가지의 방식으로 레코딩 모듈(711)로 인코딩 수행 결과를 전송한다.And, if the recording module 711 of the first device 710 requests the encoding service to the encoding module 712 of the second device 720, the recording module 711 is an IPC-based RPC requesting the encoding service A remote procedure call is generated and transmitted to the first blocker 712, and the first blocker 712 converts the RPC to TCP / IP based and transmits the converted RPC to the second blocker 722 of the second device 720. do. Then, the second blocker 722 converts the RPC based on the IPC and transmits it to the encoding module 721, and the encoding module performs encoding in cooperation with the encoder. The encoding module 721 transmits the result of encoding to the recording module 711 in the same manner.

또 다른 예로서, 본 발명에 따른 DVR 시스템이 플레이 기능을 수행하는 경우를 설명하면, 제1 장치(710)는 DVR 시스템의 애플리케이션과 인터페이싱하여 플레이(play) 기능을 수행하는 플레이 모듈(711), 및 상기 플레이 모듈(711)과 IPC(Inter Processor Communication)을 통해 연동하며 네트워크에 대한 인터페이싱을 수행하는 제1 블로커(Broker)(712)로 구성될 수 있다. 그리고, 제2 장치(720)는 DVR 시스템의 하드웨어와 인터페이싱하여 디코딩(decoding) 기능을 수행하는 디코딩 모듈(721), 및 상기 디코딩 모듈(721)과 IPC를 통해 연동하며 네트워크에 대한 인터페이싱을 수행하는 제2 블로커(722)로 구성될 수 있다. 여기서, 제1 블로커(712)와 제2 블로커(722)는 TCP/IP를 통해 서로 연동된다.As another example, when the DVR system according to the present invention performs a play function, the first device 710 is a play module 711 for performing a play function by interfacing with an application of the DVR system, And a first blocker 712 interworking with the play module 711 through an inter processor communication (IPC) and performing an interface to a network. In addition, the second device 720 interfaces with hardware of the DVR system to perform a decoding function for performing a decoding function, and interworking with the decoding module 721 through IPC to perform an interface for a network. It may be composed of a second blocker 722. Here, the first blocker 712 and the second blocker 722 are interworked with each other through TCP / IP.

그리고, 만약 제1 장치(710)의 플레이 모듈(711)이 제2 장치(720)의 디코딩 모듈(712)로 디코딩 서비스를 요청할 경우, 플레이 모듈(711)은 디코딩 서비스를 요청하는 IPC 기반의 RPC(Remote Procedure Call)를 생성하여 제1 블로커(712)로 전송하고, 제1 블로커(712)는 상기 RPC를 TCP/IP 기반으로 변환하여 제2 장치(720)의 제2 블로커(722)로 전송한다. 그러면, 제2 블로커(722)는 다시 상기 RPC를 IPC 기반으로 변환하여 디코딩 모듈(721)로 전송하고, 디코딩 모듈은 디코더와 연동하여 디코딩을 수행한다. 그리고, 디코딩 모듈(721)은 마찬가지의 방식으로 플레이 모듈(711)로 디코딩 수행 결과를 전송한다.
If the play module 711 of the first device 710 requests the decoding service to the decoding module 712 of the second device 720, the play module 711 requests the decoding service based on the IPC based RPC. A remote procedure call is generated and transmitted to the first blocker 712, and the first blocker 712 converts the RPC to TCP / IP based and transmits the converted RPC to the second blocker 722 of the second device 720. do. Then, the second blocker 722 converts the RPC to IPC-based again and transmits the decoded module to the decoding module 721, and the decoding module performs decoding in association with the decoder. The decoding module 721 transmits the decoding performance result to the play module 711 in the same manner.

이상에서 설명한 바와 같이, 본 발명에 따른 DVR 시스템은 DVR 애플리케이션의 각 기능들을 위한 인터페이스를 제공하는 각각의 모듈들(예, 레코딩 모듈, 플레이 모듈, 라이브 디스플레이 모듈, 백업 모듈, 셋업 모듈)과 DVR 하드웨어의 각 장치들(예, 인코더, 디코더, 디스플레이)에 대한 인터페이스를 제공하는 각각의 모듈들(예, 인코딩 모듈, 디코딩 모듈, 디스플레이 모듈)을 상호 독립적인 분리 구조로 구현함으로써, DVR 애플리케이션과 DVR 하드웨어는 각각 상대방에 대한 의존성을 탈피하여 개별적으로 자유롭게 개발될 수 있다. 그리고, 애플리케이션 및/또는 하드웨어 개발 시 일부 기능이나 일부 장치의 추가/변경을 통해 용이하게 개발할 수 있으며, 애플리케이션 및/또는 하드웨어가 개발 또는 변경되더라도 애플리케이션 지원부의 해당 모듈 및/또는 하드웨어 지원부의 해당 모듈만 변경함으로써 기존 시스템의 구성 변경을 최소화할 수 있다. 또한, 본 발명에 따른 DVR 시스템은 각각의 기능을 수행하는 모듈들이 독립적으로 동작하기 때문에 시스템의 확장 및 분리가 용이하며, 관련 모듈 또는 기능들을 하나의 프로세스로 처리함으로써 시스템의 안정성과 효율성을 높일 수 있다.As described above, the DVR system according to the present invention is a DVR hardware and each module (eg, recording module, play module, live display module, backup module, setup module) that provides an interface for each function of the DVR application DVR applications and DVR hardware by implementing separate modules (eg, encoding module, decoding module, display module) that provide interfaces for each device (eg, encoder, decoder, display) Each can be freely developed independently of each other by avoiding dependence on the other party. In addition, the application and / or hardware development can be easily developed by adding or changing some functions or some devices, even if the application and / or hardware is developed or changed, only the corresponding module of the application support and / or the corresponding module By making changes, you can minimize configuration changes to existing systems. In addition, the DVR system according to the present invention is easy to expand and separate the system because the modules that perform each function independently operate, and can increase the stability and efficiency of the system by processing related modules or functions in one process. have.

한편, 본 발명에 따른 DVR 시스템 구동 방법은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독가능 기록매체를 통하여 실시될 수 있다. 상기 컴퓨터 판독가능 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 기록매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
Meanwhile, the method of driving a DVR system according to the present invention may be implemented through a computer readable recording medium including program instructions for performing operations implemented by various computers. The computer-readable recording medium may include a program command, a data file, a data structure, and the like, alone or in combination. The recording medium may be those specially designed and configured for the present invention or may be those known and used by those skilled in the computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floppy disks, and ROMs, And hardware devices specifically configured to store and execute the same program instructions. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like.

지금까지 본 발명을 바람직한 실시예를 참조하여 상세히 설명하였지만, 본 발명이 속하는 기술분야의 당업자는 본 발명의 기술적 사상이나 필수적 특징들을 변경하지 않고서 다른 구체적인 다양한 형태로 실시할 수 있는 것이므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. It is to be understood that the embodiments are to be considered in all respects as illustrative and not restrictive.

그리고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 특정되는 것이며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태는 본 발명의 범위에 포함되는 것으로 해석되어야 한다.It is to be understood that both the foregoing general description and the following detailed description of the present invention are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. .

Claims (21)

DVR(Digital Video Recorder) 시스템에 있어서,
DVR 시스템의 애플리케이션과 인터페이싱하여 레코딩(recording) 기능 및 플레이(play) 기능을 수행하는 애플리케이션 지원부;
상기 DVR 시스템의 하드웨어와 인터페이싱하여 인코딩(encoding) 기능 및 디코딩(decoding) 기능을 수행하는 하드웨어 지원부; 및
상기 애플리케이션 지원부와 하드웨어 지원부를 상호 연동시키는 연동 제어부를 포함하고,
상기 연동 제어부는, 상기 애플리케이션 지원부와 상기 하드웨어 지원부 사이에 IPC(Inter Processor Communication)를 제공하는 버스(Bus) 드라이버; 및 상기 애플리케이션 지원부와 상기 하드웨어 지원부 사이에 데이터 전송과 이벤트 전송을 수행하는 큐(Queue) 드라이버를 포함하며,
상기 애플리케이션 지원부와 상기 하드웨어 지원부는 상기 버스 드라이버를 통한 IPC 기반의 RPC(Remote Procedure Call)를 수행하여 상호 연동하며,
상기 애플리케이션 지원부는 상기 하드웨어 지원부로 인코딩 서비스 및 디코딩 서비스 중 적어도 하나를 요청하는 RPC를 수행하고, 상기 하드웨어 지원부는 상기 DVR 시스템의 하드웨어와 연동하여 인코딩 서비스 및 디코딩 서비스 중 적어도 하나를 수행한 후 수행 결과를 상기 애플리케이션 지원부로 전송하는 것을 특징으로 하는 시스템.
In the DVR (Digital Video Recorder) system,
An application support unit for interfacing with an application of the DVR system to perform a recording function and a play function;
A hardware support unit interfacing with hardware of the DVR system to perform an encoding function and a decoding function; And
It includes an interlocking control unit for interlocking the application support unit and the hardware support unit,
The interlocking control unit may include: a bus driver providing IPC (Inter Processor Communication) between the application support unit and the hardware support unit; And a queue driver performing data transmission and event transmission between the application support unit and the hardware support unit.
The application support unit and the hardware support unit interoperate with each other by performing an IPC-based Remote Procedure Call (RPC) through the bus driver.
The application support unit performs an RPC requesting at least one of an encoding service and a decoding service to the hardware support unit, and the hardware support unit performs at least one of an encoding service and a decoding service in cooperation with hardware of the DVR system. The system characterized in that for transmitting to the application support.
삭제delete 삭제delete 삭제delete 제1항에 있어서,
상기 레코딩 기능과 상기 인코딩 기능은 제1 프로세스에 의해 구동되고,
상기 플레이 기능과 상기 디코딩 기능은 제2 프로세스에 의해 구동되는 것을 특징으로 하는 시스템.
The method of claim 1,
The recording function and the encoding function are driven by a first process,
The play function and the decoding function are driven by a second process.
DVR(Digital Video Recorder) 시스템에 있어서,
DVR 시스템의 애플리케이션과 인터페이싱하여 레코딩(recording) 기능을 수행하는 레코딩 모듈;
상기 DVR 시스템의 애플리케이션과 인터페이싱하여 플레이(play) 기능을 수행하는 플레이 모듈;
상기 DVR 시스템의 하드웨어와 인터페이싱하여 인코딩(encoding) 기능을 수행하는 인코딩 모듈;
상기 DVR 시스템의 하드웨어와 인터페이싱하여 디코딩(decoding) 기능을 수행하는 디코딩 모듈;
상기 레코딩 모듈, 플레이 모듈, 인코딩 모듈, 디코딩 모듈 사이에 IPC(Inter Processor Communication)를 제공하는 버스(Bus) 드라이버; 및
상기 레코딩 모듈, 플레이 모듈, 인코딩 모듈, 디코딩 모듈 사이에 데이터 전송과 이벤트 전송을 수행하는 큐(Queue) 드라이버를 포함하고,
상기 레코딩 모듈, 플레이 모듈, 인코딩 모듈, 디코딩 모듈은 상기 버스 드라이버를 통한 IPC 기반의 RPC(Remote Procedure Call)를 수행하여 상호 연동하며,
상기 레코딩 모듈은 상기 인코딩 모듈로 인코딩 서비스를 요청하는 RPC를 수행하고, 상기 인코딩 모듈은 상기 DVR 시스템의 하드웨어와 연동하여 인코딩 서비스를 수행한 후 인코딩 수행 결과를 상기 레코딩 모듈로 전송하는 것을 특징으로 하는 시스템.
In the DVR (Digital Video Recorder) system,
A recording module for performing a recording function by interfacing with an application of the DVR system;
A play module for performing a play function by interfacing with an application of the DVR system;
An encoding module for performing an encoding function by interfacing with hardware of the DVR system;
A decoding module for performing a decoding function by interfacing with hardware of the DVR system;
A bus driver providing interprocessor communication (IPC) between the recording module, the play module, the encoding module, and the decoding module; And
A queue driver for performing data transmission and event transmission between the recording module, the play module, the encoding module, and the decoding module,
The recording module, play module, encoding module, and decoding module interoperate with each other by performing an IPC-based RPC (Remote Procedure Call) through the bus driver.
The recording module performs an RPC requesting an encoding service to the encoding module, and the encoding module performs an encoding service in conjunction with hardware of the DVR system, and then transmits an encoding result to the recording module. system.
삭제delete 삭제delete 제6항에 있어서,
상기 플레이 모듈은 상기 디코딩 모듈로 디코딩 서비스를 요청하는 RPC를 수행하고, 상기 디코딩 모듈은 상기 DVR 시스템의 하드웨어와 연동하여 디코딩 서비스를 수행한 후 디코딩 수행 결과를 상기 플레이 모듈로 전송하는 것을 특징으로 하는 시스템.
The method according to claim 6,
The play module performs an RPC requesting a decoding service to the decoding module, and the decoding module performs a decoding service in cooperation with hardware of the DVR system, and then transmits a decoding performance result to the play module. system.
제6항 또는 제9항에 있어서,
상기 레코딩 모듈과 상기 인코딩 모듈은 제1 프로세스에 의해 구동되고,
상기 플레이 모듈과 상기 디코딩 모듈은 제2 프로세스에 의해 구동되는 것을 특징으로 하는 시스템.
10. The method according to claim 6 or 9,
The recording module and the encoding module are driven by a first process,
The play module and the decoding module are driven by a second process.
DVR(Digital Video Recorder) 시스템에 있어서,
DVR 시스템의 애플리케이션과 인터페이싱하여 레코딩(recording) 기능을 수행하는 레코딩 모듈, 및 상기 레코딩 모듈과 IPC(Inter Processor Communication)을 통해 연동하며 TCP/IP 기반 네트워크에 대한 인터페이싱을 수행하는 제1 블로커(Broker)를 포함하는 제1 장치; 및
상기 DVR 시스템의 하드웨어와 인터페이싱하여 인코딩(encoding) 기능을 수행하는 인코딩 모듈, 및 상기 인코딩 모듈과 IPC를 통해 연동하며 상기 TCP/IP 기반 네트워크에 대한 인터페이싱을 수행하여 상기 제1 블로커와 연동하는 제2 블로커를 포함하는 제2 장치를 포함하고,
상기 레코딩 모듈은 상기 인코딩 모듈로 인코딩 서비스를 요청하는 RPC(Remote Procedure Call)를 수행하고, 상기 인코딩 모듈은 상기 DVR 시스템의 하드웨어와 연동하여 인코딩 서비스를 수행한 후 인코딩 수행 결과를 상기 레코딩 모듈로 전송하는 것을 특징으로 하는 시스템.
In the DVR (Digital Video Recorder) system,
A recording module interfacing with an application of the DVR system to perform a recording function, and a first blocker interworking with the recording module through IPC (Inter Processor Communication) and interfacing the TCP / IP based network. A first device comprising a; And
An encoding module interfacing with the hardware of the DVR system to perform an encoding function, and a second interworking with the encoding module through IPC and interfacing with the TCP / IP based network to interwork with the first blocker. A second device comprising a blocker,
The recording module performs an RPC (Remote Procedure Call) requesting an encoding service to the encoding module, and the encoding module performs an encoding service in conjunction with hardware of the DVR system, and then transmits an encoding execution result to the recording module. System characterized in that.
삭제delete DVR(Digital Video Recorder) 시스템에 있어서,
DVR 시스템의 애플리케이션과 인터페이싱하여 플레이(play) 기능을 수행하는 플레이 모듈, 및 상기 플레이 모듈과 IPC(Inter Processor Communication)을 통해 연동하며 TCP/IP 기반 네트워크에 대한 인터페이싱을 수행하는 제1 블로커(Broker)를 포함하는 제1 장치; 및
상기 DVR 시스템의 하드웨어와 인터페이싱하여 디코딩(decoding) 기능을 수행하는 디코딩 모듈, 및 상기 디코딩 모듈과 IPC를 통해 연동하며 상기 TCP/IP 기반 네트워크에 대한 인터페이싱을 수행하여 상기 제1 블로커와 연동하는 제2 블로커를 포함하는 제2 장치를 포함하고,
상기 플레이 모듈은 상기 디코딩 모듈로 디코딩 서비스를 요청하는 RPC(Remote Procedure Call)를 수행하고, 상기 디코딩 모듈은 상기 DVR 시스템의 하드웨어와 연동하여 디코딩 서비스를 수행한 후 디코딩 수행 결과를 상기 플레이 모듈로 전송하는 것을 특징으로 하는 시스템.
In the DVR (Digital Video Recorder) system,
A play module interfacing with an application of the DVR system to perform a play function, and a first blocker interworking with the play module through IPC (Inter Processor Communication) and interfacing the TCP / IP based network. A first device comprising a; And
A decoding module interfacing with the hardware of the DVR system to perform a decoding function, and a second interworking with the decoding module through IPC and interfacing the TCP / IP based network to interwork with the first blocker. A second device comprising a blocker,
The play module performs an RPC (Remote Procedure Call) requesting a decoding service to the decoding module, and the decoding module performs a decoding service in conjunction with hardware of the DVR system and then transmits a decoding performance result to the play module. System characterized in that.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020110006313A 2011-01-21 2011-01-21 Digital video recorder system and driving method thereof KR101226184B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110006313A KR101226184B1 (en) 2011-01-21 2011-01-21 Digital video recorder system and driving method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110006313A KR101226184B1 (en) 2011-01-21 2011-01-21 Digital video recorder system and driving method thereof

Publications (2)

Publication Number Publication Date
KR20120084964A KR20120084964A (en) 2012-07-31
KR101226184B1 true KR101226184B1 (en) 2013-01-24

Family

ID=46715678

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110006313A KR101226184B1 (en) 2011-01-21 2011-01-21 Digital video recorder system and driving method thereof

Country Status (1)

Country Link
KR (1) KR101226184B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020048231A (en) * 2000-12-18 2002-06-22 오길록 Independent Design Of Processor Board For Easy Upgrading
KR100779762B1 (en) 2007-05-03 2007-11-26 (주)지에스피 씨스템즈 Multi channel module type dvr system of embedded base
US20090216520A1 (en) 2008-02-26 2009-08-27 Streaming Networks (Pvt.) Ltd. System and method for interfacing a media processing apparatus with a computer
KR20090112336A (en) * 2008-04-24 2009-10-28 파인트론 주식회사 Separable digital video recorder board

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020048231A (en) * 2000-12-18 2002-06-22 오길록 Independent Design Of Processor Board For Easy Upgrading
KR100779762B1 (en) 2007-05-03 2007-11-26 (주)지에스피 씨스템즈 Multi channel module type dvr system of embedded base
US20090216520A1 (en) 2008-02-26 2009-08-27 Streaming Networks (Pvt.) Ltd. System and method for interfacing a media processing apparatus with a computer
KR20090112336A (en) * 2008-04-24 2009-10-28 파인트론 주식회사 Separable digital video recorder board

Also Published As

Publication number Publication date
KR20120084964A (en) 2012-07-31

Similar Documents

Publication Publication Date Title
US8134605B2 (en) Apparatus for transmitting an HTML file with a captured or stored image to an electronic device over a network
EP2061241A1 (en) Method and device for playing video data of high bit rate format by player suitable to play video data of low bit rate format
JP2013038766A (en) Transmitter, transmitter control method, control program, and recording medium
JPH11161663A (en) Moving picture reproduction control method and image display device applied with same
CN111182322B (en) Director control method and device, electronic equipment and storage medium
CN112637661B (en) Video stream switching method and device, computer storage medium and electronic equipment
JP3655266B2 (en) Information processing device
JP2006339855A (en) Network control apparatus, coding system conversion apparatus, and content data reproduction system
US7936963B2 (en) Video reproduction apparatus
JP4322944B2 (en) VIDEO REPRODUCTION DEVICE, VIDEO REPRODUCTION METHOD, AND VIDEO REPRODUCTION PROCESSING PROGRAM
JP2002051307A (en) Device and method for processing image and recording medium
JP6385474B2 (en) Cloud streaming-based broadcast-linked service system, broadcast-linked service client device, trigger content providing server, and method using the same
KR101226184B1 (en) Digital video recorder system and driving method thereof
JPH1032809A (en) Video-on-demand system and video server device and terminal equipment constituting it
CN115243074A (en) Video stream processing method and device, storage medium and electronic equipment
JP6294527B2 (en) Transmission device, transmission method, reproduction device, and reproduction method
WO2015125420A1 (en) Imaging apparatus and imaging system
JP4682267B1 (en) Progressive download playback method and playback program
JP2005275643A (en) Contents data processor, and method
KR101837980B1 (en) Total image transmission and using system having different kinds of image providing apparatus and control method of the same
JP2011087333A (en) Image reproducing device
JP2003235012A (en) File and content management
JP2009016909A (en) Reproducer, and reproducing method
CN115604496A (en) Display device, live broadcast channel switching method and storage medium
CN114979763A (en) Playing control method and device during video playback and video playback system

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee