KR100579012B1 - A System for Transporting Moving Picture Stream Having Multi Bit Rates Support In Real Time - Google Patents

A System for Transporting Moving Picture Stream Having Multi Bit Rates Support In Real Time Download PDF

Info

Publication number
KR100579012B1
KR100579012B1 KR1020040029478A KR20040029478A KR100579012B1 KR 100579012 B1 KR100579012 B1 KR 100579012B1 KR 1020040029478 A KR1020040029478 A KR 1020040029478A KR 20040029478 A KR20040029478 A KR 20040029478A KR 100579012 B1 KR100579012 B1 KR 100579012B1
Authority
KR
South Korea
Prior art keywords
channel
real
video
video stream
time video
Prior art date
Application number
KR1020040029478A
Other languages
Korean (ko)
Other versions
KR20050104455A (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 KR1020040029478A priority Critical patent/KR100579012B1/en
Publication of KR20050104455A publication Critical patent/KR20050104455A/en
Application granted granted Critical
Publication of KR100579012B1 publication Critical patent/KR100579012B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Abstract

본 발명은 네트워크망의 데이터 송수신 환경과 클라이언트들의 다양한 품질 요구를 만족시키기 위하여 하나의 실시간 동영상 데이터를 서로 다른 비트율을 갖는 다중 동영상 스트림으로 인코딩하여 실시간으로 클라이언트에게 전송할 수 있도록 하는 다중 비트율을 지원하는 실시간 동영상 스트림 전송 시스템에 관한 것이다.The present invention encodes a single real-time video data into multiple video streams having different bit rates in order to satisfy various quality requirements of data transmission environments and clients of a network, and supports multiple bit rates to transmit to a client in real time. A video stream transmission system.

본 발명에 따른 다중 비트율을 지원하는 실시간 동영상 스트림 전송 시스템은 상기 비디오 카메라(100)로부터 전송되는 1채널 실시간 동영상 데이터의 영상을 다채널을 갖는 다수의 영상으로 복제하여 다채널 동영상 데이터를 생성하는 영상 복제장치(220)와; 상기 영상 복제장치(220)로부터 복제된 다채널 동영상 데이터를 전송받아 채널별로 각각 분리한 후, 서로 다른 비트율을 갖도록 각 채널을 병렬로 인코딩하여 다중 비트율을 갖는 다채널 실시간 동영상 스트림을 생성하는 동영상 압축장치(230)와; 상기 동영상 압축장치(230)를 통하여 출력되는 다중 비트율을 갖는 다채널 실시간 동영상 스트림을 공유 메모리(242)에 저장하고, 상기 공유 메모리(242)에 저장되는 다채널 실시간 동영상 스트림 중 클라이언트(400)와의 네트워크 환경에 따라 설정된 적어도 어느 한 채널의 실시간 동영상 스트림을 인출하여 클라이언트(400)에게 전송하는 중앙제어부(240);를 포함하여 이루어지는 것을 특징으로 한다.The real-time video stream transmission system supporting the multi-bit rate according to the present invention is to generate a multi-channel video data by copying the video of the one-channel real-time video data transmitted from the video camera 100 to a plurality of images having a multi-channel A replicating device 220; After receiving the multi-channel video data copied from the image copying device 220 and separating each channel, video compression for generating a multi-channel real-time video stream having multiple bit rates by encoding each channel in parallel to have different bit rates. Device 230; The multi-channel real time video stream having the multi bit rate output through the video compression device 230 is stored in the shared memory 242, and the multi-channel real time video stream stored in the shared memory 242 with the client 400 And a central controller 240 for extracting a real-time video stream of at least one channel set according to a network environment and transmitting the same to the client 400.

비트율, 다중 비트율, 실시간, 동영상, 인코딩Bit rate, multi bit rate, real time, video, encoding

Description

다중 비트율을 지원하는 실시간 동영상 스트림 전송 시스템 { A System for Transporting Moving Picture Stream Having Multi Bit Rates Support In Real Time } A system for transporting moving picture stream having multi bit rates support in real time}             

도 1은 종래 기술에 따른 이중 동영상 압축 방법을 적용한 네트워크 카메라와 네트워크 디지털 비디오 레코더의 구성도,1 is a block diagram of a network camera and a network digital video recorder to which a dual video compression method according to the prior art is applied;

도 2는 본 발명에 따른 다중 비트율을 지원하는 실시간 동영상 스트림 전송 시스템의 네트워크 연결도,2 is a network connection diagram of a real-time video stream transmission system supporting multiple bit rates according to the present invention;

도 3은 본 발명에 따른 동영상 스트리밍 서버의 전체적인 블록 구성도,3 is an overall block diagram of a video streaming server according to the present invention;

도 4는 본 발명에 따른 영상 복제장치인 Quad Duplicator를 통하여 영상이 복제되는 것을 나타내는 일 실시예,4 is a diagram showing an example of copying an image through a quad duplicator, which is an image copying apparatus according to the present invention;

도 5는 본 발명에 따른 영상 압축장치인 MPEG4 Encoder를 통하여 동영상 데이터가 인코딩되는 것을 나타내는 일 실시예, FIG. 5 is a diagram showing that video data is encoded through MPEG4 Encoder, which is an image compression apparatus according to the present invention; FIG.

도 6은 본 발명에 따른 공유 메모리의 구조를 나타내는 일 실시예,6 is a diagram illustrating the structure of a shared memory according to the present invention;

도 7은 본 발명에 따른 오디오 버퍼의 구조를 나타내는 일 실시예,7 is a diagram showing the structure of an audio buffer according to the present invention;

도 8은 본 발명에 따른 Pumper 프로세스를 통하여 동영상 스트림이 재구성되는 것을 나타내는 일 실시예,8 is an embodiment illustrating that a video stream is reconstructed through a pumper process according to the present invention;

도 9는 본 발명에 따른 1채널 동영상 데이터가 다중 비트율을 갖는 다수의 동영상 스트림으로 인코딩되는 전체 과정을 나타낸 흐름도, 9 is a flowchart illustrating an entire process of encoding one-channel video data into a plurality of video streams having multiple bit rates according to the present invention;

도 10은 본 발명에 따른 Pumper 프로세스를 통하여 최종적으로 출력되는 각 채널별 동영상 스트림의 비트율 테이블을 나타내는 일 실시예,10 is a diagram illustrating a bit rate table of a video stream for each channel finally output through a pumper process according to the present invention;

도 11은 본 발명에 따른 Pumper 프로세스와 클라이언트간의 데이터 송수신 과정을 나타내는 일 실시예,11 is an embodiment illustrating a data transmission and reception process between a pumper process and a client according to the present invention;

도 12는 본 발명에 따른 동영상 스트리밍 서버를 통하여 실시간 동영상 스트림이 생성되어 클라이언트에 전송되는 과정을 나타낸 흐름도,12 is a flowchart illustrating a process of generating a real-time video stream and transmitting the same to a client through a video streaming server according to the present invention;

도 13은 본 발명에 따른 공유 메모리에 동영상 스트림이 저장되는 과정을 나타낸 흐름도이다.13 is a flowchart illustrating a process of storing a video stream in a shared memory according to the present invention.

※ 도면의 주요 부분에 대한 부호의 설명※ Explanation of codes for main parts of drawing

100 : 비디오 카메라 200 : 동영상 스트리밍 서버100: video camera 200: video streaming server

210 : AD변환기(Analog-to-Digital Converter)210: AD-to-Digital Converter

211 : 오디오 ADC 212 : 비디오 ADC211: Audio ADC 212: Video ADC

220 : 영상 복제장치 221 : Quad Duplicator220: Image duplicater 221: Quad Duplicator

222 : 메모리 230 : 영상 압축장치222: memory 230: video compression device

231 : MPEG4 Encoder 232 : 메모리231: MPEG4 Encoder 232: Memory

240 : 중앙제어부 241 : 중앙처리장치240: central control unit 241: central processing unit

242 : 메모리 243 : 플래시 메모리242: memory 243: flash memory

250 : 네트워크 인터페이스 251 : 내부 네트워크 인터페이스250: network interface 251: internal network interface

252 : 외부 네트워크 인터페이스 300 : 기억장치252: external network interface 300: storage device

400 : 클라이언트400: client

본 발명은 실시간 동영상 스트림 전송 시스템에 관한 것으로, 보다 상세히는 네트워크망의 데이터 송수신 환경과 클라이언트들의 다양한 품질 요구를 만족시키기 위하여 하나의 실시간 동영상 데이터를 서로 다른 비트율을 갖는 다중 동영상 스트림으로 인코딩하여 실시간으로 클라이언트에게 전송할 수 있도록 하는 다중 비트율을 지원하는 실시간 동영상 스트림 전송 시스템에 관한 것이다.The present invention relates to a real-time video stream transmission system, and more particularly, in order to satisfy a variety of quality requirements of data transmission and reception environments and clients of a network, one real-time video data is encoded into multiple video streams having different bit rates in real time. The present invention relates to a real-time video stream transmission system supporting multiple bit rates that can be transmitted to a client.

일반적으로 아날로그 카메라, TV 안테나, 캠코더 등에서 출력되는 아날로그 동영상 데이터는 TV 모니터를 통하여 디스플레이 되거나, VCR(Video Cassette Recorder) 등의 녹화장치를 통해 저장된다. 최근에는 디지털 미디어의 발달에 힘입어 아날로그 동영상 데이터를 디지털 동영상 데이터로 변환시킨 후 하드디스크 등의 고용량 녹화매체에 저장하여 이용하고 있으며, 더 나아가 디지털 동영상 데이터를 네트워크망을 통하여 원격지에 전송하여 원격지에서 수신된 동영상 데이터를 시청하거나 저장할 수 있도록 하는 등 그 응용분야가 더욱 다양해지고 있다. In general, analog video data output from an analog camera, a TV antenna, a camcorder, etc. are displayed through a TV monitor or stored through a recording device such as a VCR (Video Cassette Recorder). Recently, thanks to the development of digital media, analog video data is converted into digital video data and stored in high-capacity recording media such as hard disks, and furthermore, digital video data is transmitted to a remote location through a network network. Applications such as allowing viewing or storing received video data are becoming more diverse.

하지만, 디지털 동영상 데이터는 그 크기가 방대하기 때문에 다양한 압축 알고리즘을 사용하여 그 크기를 수십 또는 수백분의 일로 압축하여 사용하게 된다. 이렇게 압축된 디지털 동영상 데이터는 복원 알고리즘을 통하여 아날로그 동영상 데이터로 복원된 다음 사용되게 되는데, 상기 압축 과정에서 압축 방법과 압축률에 따라 동영상의 품질이 결정되게 된다. 동영상의 품질을 나타내는 단위로서 동영상의 시간당 비트수(bit/second)를 나타내는 비트율(bit rate)을 사용하게 되는데, 이 비트율이 높을수록 고화질의 동영상을 얻을 수 있으며, 비트율이 낮을 수록 저화질의 동영상을 얻게 된다. However, since digital video data is huge in size, it is used by compressing the size into tens or hundreds of data using various compression algorithms. The compressed digital video data is restored to analog video data through a decompression algorithm and then used. In the compression process, the quality of the video is determined according to the compression method and the compression ratio. As a unit indicating the quality of a video, a bit rate indicating a bit / second of a video is used. A higher bit rate yields a higher quality video, and a lower bit rate provides a lower quality video. You get

최근, 디지털 비디오 레코더(DVR), 네트워크 카메라 또는 네트워크 비디오 서버 등에서 다양한 동영상 압축 방법을 이용하여 실시간 동영상 데이터를 저장하거나 네트워크망을 통하여 원격지의 클라이언트에게 전송하고 있는데, 이들 대부분은 클라이언트 또는 시스템이 지정한 고정된 비트율을 사용하여 압축하기 때문에, 하나의 동영상 비디오 입력에 대해 모두 동일한 동영상 품질의 출력을 얻을 수밖에 없었다.Recently, digital video recorders (DVRs), network cameras, or network video servers use various video compression methods to store real-time video data or transmit it to remote clients via a network. Most of these are fixed by a client or a system. Compressed at the same bit rate, the result is the same video quality output for a single video input.

하지만, 이러한 하나의 고정된 비트율을 갖는 동영상 품질은 동일한 내용의 동영상 입력에 대해 그 처리 목적이 다르거나 네트워크 환경이 다른 여러 사용자가 동시에 사용하고자 하는 경우 그 응용분야에 제약이 따르게 된다. 예를 들면, 하나의 동영상 입력에 대하여 해당 동영상을 고화질의 비트율로 저장매체에 저장하고자 하는 경우, 동영상 입력을 열악한 네트워크 환경에 따라 저화질의 비트율로 원격지에 전송하고자 하는 경우, 동영상 입력을 양호한 네트워크 환경에 따라 중화질의 비트율로 원격지에 전송하고자 하는 경우, 동영상 입력을 클라이언트 선택에 따라 저화질의 비트율로 전송하고자 하는 경우 등의 다양한 비트율이 요구되는 경우가 발생될 수 있는데, 종래에 하나의 비트율로 고정된 동영상 품질로는 이러한 다양한 요구 조건을 충족할 수 없는 문제가 있었다.However, the video quality having a single fixed bit rate is limited in the application field when multiple users with different processing purposes or different network environments want to use the same video input with the same content at the same time. For example, if a video input is to be stored in a storage medium with a high bit rate for one video input, and the video input is to be transmitted to a remote place at a low bit rate according to a poor network environment, the video input is preferably in a good network environment. According to the present invention, if a user wants to transmit a bitrate of a medium quality to a remote location, various bit rates may be required, such as a video input of a low quality bit rate according to a client selection. There was a problem that video quality could not satisfy these various requirements.

한편, 상기와 같은 문제점을 해결하기 위하여 실용신안등록 제318389호가 제안되었는데, 상기 등록실용신안은 모니터상에 고화질의 실시간 동영상을 디스플레이하고 하드디스크에 저화질의 실시간 동영상을 녹화할 수 있는 이중 동영상 압축 방법을 적용한 네트워크 카메라와 네트워크 디지털 비디오 레코더에 관한 것이다. 도 1은 상기 등록실용신안의 구성을 나타낸 도면으로서, 실시간 동영상 디스플레이 전용의 제1 동영상 인코더(120)와, 녹화 전용의 제2 동영상 인코더(130)를 이중으로 내장하고, 비디오 카메라(10)로부터 입력된 하나의 영상에 대하여 각 동영상 인코더가 독립적으로 동영상 압축하여 네트워크 디브이알(170)로 전송하도록 구성된다.On the other hand, utility model registration No. 318389 has been proposed to solve the above problems, the registered utility model is a dual video compression method that can display a high-quality real-time video on the monitor and record a low-quality real-time video on the hard disk The present invention relates to a network camera and a network digital video recorder. FIG. 1 is a diagram showing the configuration of the above-described registered utility model, in which a first video encoder 120 dedicated to real-time video display and a second video encoder 130 dedicated to recording are built-in. Each video encoder is configured to independently compress video and transmit it to the network DVR 170 for one input video.

상기의 등록실용신안은 카메라 모듈로부터 촬영된 하나의 디지털 영상에 대하여 각 동영상 인코더가 독립적으로 서로 다른 화질과 속도로 동영상 압축하여 네트워크로 전송할 수 있도록 함으로써, 고화질의 실시간 동영상 디스플레이와 저화질 저속 녹화라는 두 가지 요구 조건을 충족시킬 수 있도록 하고 있다.The above-mentioned registered utility model allows each video encoder to independently compress and transmit a video to a network at a different image quality and speed for a single digital video photographed from a camera module. To meet different requirements.

하지만, 상기 등록실용신안은 비디오 디코더를 통하여 분기되어 전송되는 비디오 입력을 각각 독립적으로 압축하기 위하여 두개의 동영상 인코더를 사용하기 때문에 시스템의 구축비용이 많이 소요되는 문제점이 있었다. 또한, 동영상의 압축 비트율이 서로 다른 3개 이상 필요한 경우에는 상기 등록실용신안이 그대로 적용될 수 없었으며, 이에 적용시키기 위하여는 보다 많은 독립적인 동영상 인코더가 필요하기 때문에 시스템 구축에 보다 많은 비용이 소요되어야 하는 문제점이 있었다. However, since the registration utility model uses two video encoders to independently compress the video inputs branched and transmitted through the video decoder, there is a problem in that the construction cost of the system is high. In addition, if more than three different compression bit rates of video are required, the registration utility model could not be applied as it is, and in order to apply it, more independent video encoders are required. There was a problem.

따라서, 본 발명은 상술한 종래의 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 하나의 동영상 데이터를 입력받아 동일한 다수의 동영상 데이터로 분기한 후 분기된 다수의 동영상 데이터를 서로 다른 비트율로 압축하여 서로 다른 비트율을 갖는 다수의 동영상 스트림으로 생성하고, 생성되는 동영상 스트림을 기억장치 또는 원격 클라이언트에게 전송할 수 있도록 하는 다중 비트율을 지원하는 실시간 동영상 스트림 전송 시스템을 제공하는데 있다.Accordingly, the present invention has been made to solve the above-mentioned conventional problem, and an object of the present invention is to input a single video data and to branch to the same plurality of video data, and then branch the plurality of video data to different bit rates. The present invention provides a real-time video stream transmission system that supports multiple bit rates by compressing and generating a plurality of video streams having different bit rates, and transmitting the generated video streams to a storage device or a remote client.

본 발명의 다른 목적은 하나의 동영상 스트림에 대하여 독자적으로 영상을 구성할 수 있는 특정 프레임을 선별적으로 선택하여 적어도 두 가지 이상의 서로 다른 비트율을 갖는 동영상 스트림으로 재생성함으로써 보다 다양한 비트율의 실시간 동영상 스트림을 기억장치 또는 원격 클라이언트에게 전송할 수 있도록 하는 실시간 동영상 스트림 전송 시스템을 제공하는데 있다.
Another object of the present invention is to select a specific frame capable of composing an image independently for one video stream, and regenerate the video stream having at least two different bit rates to generate a real-time video stream having a different bit rate. To provide a real-time video stream transmission system that can be transmitted to a storage device or a remote client.

상기의 목적을 달성하기 위한 본 발명의 다중 비트율을 지원하는 실시간 동영상 스트림 전송 시스템은 비디오 카메라로부터 촬영되는 동영상 데이터를 입력받아 실시간 동영상 스트림으로 인코딩하여 네트워크망을 통하여 클라이언트에게 제공하는 실시간 동영상 스트림 전송 시스템에 있어서, 상기 비디오 카메라로부터 전송되는 1채널 실시간 동영상 데이터의 영상을 다채널을 갖는 다수의 영상으로 복제하여 다채널 동영상 데이터를 생성하는 영상 복제장치와; 상기 영상 복제장치로부터 복제된 다채널 동영상 데이터를 전송받아 채널별로 각각 분리한 후, 서로 다른 비트율을 갖도록 각 채널을 병렬로 인코딩하여 다중 비트율을 갖는 다채널 실시간 동영상 스트림을 생성하는 동영상 압축장치와; 상기 동영상 압축장치를 통하여 출력되는 다중 비트율을 갖는 다채널 실시간 동영상 스트림을 공유 메모리에 저장하고, 상기 공유 메모리에 저장되는 다채널 실시간 동영상 스트림 중 클라이언트와의 네트워크 환경에 따라 설정된 적어도 어느 한 채널의 실시간 동영상 스트림을 인출하여 클라이언트에게 전송하는 중앙제어부;를 포함하여 이루어진다.The real-time video stream transmission system supporting the multi-bit rate of the present invention for achieving the above object is a real-time video stream transmission system that receives the video data taken from the video camera and encodes it into a real-time video stream to provide to the client through a network network An image replicating apparatus for generating multi-channel video data by copying images of one-channel real-time video data transmitted from the video camera into a plurality of images having multiple channels; A video compression device that receives the multi-channel video data copied from the image copying device and separates each channel for each channel, and then encodes each channel in parallel to have different bit rates to generate a multi-channel real-time video stream having multiple bit rates; A multi-channel real time video stream having a multi bit rate output through the video compression device is stored in a shared memory, and the real time of at least one channel set according to a network environment with a client among the multi channel real time video streams stored in the shared memory. And a central controller for extracting a video stream and transmitting the same to the client.

상기 중앙제어부는 공유 메모리에 저장되는 다채널 실시간 동영상 스트림 중 적어도 어느 한 채널의 실시간 동영상 스트림을 선택하고, 선택된 채널의 실시간 동영상 스트림에 포함된 독자적으로 영상을 구성할 수 있는 특정 프레임을 선별적으로 선택하여 취합함으로써 서로 다른 비트율을 갖는 실시간 동영상 스트림으로 재구성하게 된다.The central controller selects a real-time video stream of at least one channel among the multi-channel real-time video streams stored in the shared memory, and selectively selects a specific frame capable of composing an image independently included in the real-time video stream of the selected channel. By selecting and collecting, the video is reconstructed into a real-time video stream having different bit rates.

또한, 상기 중앙제어부는 클라이언트가 요청하는 비트율과 가장 근접한 비트율을 갖는 채널의 동영상 스트림을 선택하여 클라이언트에게 전송하게 된다.In addition, the central controller selects a video stream of a channel having a bit rate closest to the bit rate requested by the client and transmits the video stream to the client.

뿐만 아니라, 상기 중앙제어부는 네트워크망을 통하여 수신되는 동영상 스트림의 수신 비트율을 검사하는 클라이언트로부터 수신 비트율의 변경에 따른 채널 변경이 요청되면, 기 설정된 수신 비트율을 유지하는 다른 채널의 실시간 동영상 스트림을 선택하여 클라이언트에게 전송하게 된다.In addition, the central control unit selects a real-time video stream of another channel that maintains a predetermined reception bit rate when a channel change request is made from a client that checks a reception bit rate of a video stream received through a network. To the client.

상기 영상 복제장치는 입력되는 동영상 데이터의 1채널 영상을 4채널 영상으로 복제하는 Quad Duplicator와 메모리를 포함하여 이루어지고, 상기 영상 압축장치는 영상 복제장치로부터 전송되는 다채널 영상을 각각 구분하여 인코딩하는 MPEG4 Encoder와 메모리를 포함하여 이루어진다.The image copying apparatus includes a quad duplicator for copying a 1-channel image of input video data into a 4-channel image and a memory, and the image compression apparatus distinguishes and encodes multi-channel images transmitted from the image copying apparatus. It includes MPEG4 Encoder and memory.

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

도 2는 본 발명의 실시예에 따른 다중 비트율을 지원하는 실시간 동영상 스트림 전송 시스템의 네트워크 연결도를 나타낸 것이다.2 illustrates a network connection diagram of a real-time video stream transmission system supporting multiple bit rates according to an embodiment of the present invention.

도 2에 도시된 바와 같이, 본 발명에 따른 실시간 동영상 스트림 전송 시스템은 비디오 카메라(100)를 통하여 촬영되어 실시간으로 전송되는 동영상 데이터를 입력받아 서로 다른 비트율을 갖는 다수의 동영상 스트림으로 인코딩하는 동영상 스트리밍 서버(200)와, 상기 동영상 스트리밍 서버(200)에서 인코딩되어 네트워크망을 통하여 전송되는 실시간 동영상 스트림을 저장하는 다수의 기억장치(300)와, 상기 동영상 스트리밍 서버(200)에서 인코딩되어 네트워크망을 통하여 전송되는 실 시간 동영상 스트림을 화면에 디스플레이하는 다수의 클라이언트(400)를 포함하여 이루어진다. As shown in FIG. 2, the real-time video stream transmission system according to the present invention receives video data captured by the video camera 100 and is transmitted in real time, and streams video to encode a plurality of video streams having different bit rates. A server 200, a plurality of storage device 300 for storing a real-time video stream encoded in the video streaming server 200 and transmitted through a network network, and encoded in the video streaming server 200 to network It includes a plurality of clients 400 for displaying the real-time video stream transmitted through the screen.

상기 기억장치(300)는 하드디스크 등의 기억매체로서, 동영상 스트리밍 서버(200)로부터 내부 네트워크를 통하여 전송되는 실시간 동영상 스트림을 저장하게 된다. 또한, 상기 클라이언트(400)는 동영상 스트리밍 서버(200)에 동영상 데이터를 요청하여 동영상 스트리밍 서버(200)로부터 외부 네트워크를 통하여 전송되는 실시간 동영상 스트림을 화면에 디스플레이하는 사용자 컴퓨터를 나타낸다. 상기 네트워크망 중 내부 네크워크는 동영상 스트리밍 서버(200)의 입출력 인터페이스를 통하여 직접 연결되는 통신망이나 내부적으로 연결되는 근거리 통신망(LAN)을 의미하며, 외부 네트워크는 인터넷 등의 광역 통신망을 의미하는데, 상기 기억장치(300)와 클라이언트(400)는 위치에 따라 외부 네트워크 또는 내부 네트워크를 통하여 동영상 스트리밍 서버(200)와 연결될 수도 있다.The storage device 300 is a storage medium such as a hard disk, and stores a real-time video stream transmitted from the video streaming server 200 through an internal network. In addition, the client 400 indicates a user computer for requesting video data from the video streaming server 200 to display a real-time video stream transmitted from the video streaming server 200 through an external network on the screen. The internal network of the network means a communication network directly connected through an input / output interface of the video streaming server 200 or a local area network (LAN) connected internally, and the external network means a wide area communication network such as the Internet. The device 300 and the client 400 may be connected to the video streaming server 200 through an external network or an internal network depending on the location.

도 3은 본 발명의 실시예에 따른 동영상 스트리밍 서버의 블록 구성도를 나타낸 것이다.3 is a block diagram of a video streaming server according to an embodiment of the present invention.

비디오 카메라(100)로부터 전송되는 실시간 동영상 데이터를 다중 비트율을 갖도록 다수의 동영상 스트림으로 인코딩하는 동영상 스트리밍 서버(200)에는 AD변환기(210), 영상 복제장치(220), 영상 압축장치(230), 중앙제어부(240), 네트워크 인터페이스(250) 등이 구비되어 있다.The video streaming server 200 which encodes real-time video data transmitted from the video camera 100 into a plurality of video streams having a multi-bit rate includes an AD converter 210, an image replicating device 220, an image compression device 230, The central controller 240, the network interface 250, and the like are provided.

상기 네트워크 인터페이스(250)는 네트워크망을 통하여 기억장치(300) 및 클 라이언트(400)와의 통신을 설정하고 관리하기 위한 통신장치로서, 이 네트워크 인터페이스(250)는 내부 네트워크를 위한 내부 네트워크 인터페이스(251)와 외부 네트워크를 위한 외부 네트워크 인터페이스(252)로 구분되는데, 상기 네트워크 인터페이스(250)는 통상의 LAN 장치 등의 통신 하드웨어 장치와 상기 하드웨어 장치를 구동하는 소프트웨어로 이루어진다.The network interface 250 is a communication device for establishing and managing communication with the storage device 300 and the client 400 through a network, and the network interface 250 is an internal network interface 251 for an internal network. ) And an external network interface 252 for an external network. The network interface 250 includes a communication hardware device such as a general LAN device and software for driving the hardware device.

상기 AD변환기(ADC ; Analog-to-Digital Converter)(210)는 비디오 카메라(100)로부터 입력되는 아날로그 동영상 데이터를 디지털 동영상 데이터로 변환하는 아날로그 디지털 변환기로서, 이 AD변환기(210)는 비디오 카메라(100)로부터 입력되는 아날로그 동영상 데이터 중 아날로그 오디오 데이터를 디지털 오디오 데이터로 변환하는 오디오 ADC(211)와 아날로그 비디오 데이터를 디지털 비디오 데이터로 변환하는 비디오 ADC(212)로 구성된다. 한편, 이 AD변환기(210)는 상기 비디오 카메라(100)가 디지털 비디오 카메라이거나 입력되는 동영상 데이터가 디지털 동영상 데이터인 경우에는 생략될 수 있다.The analog-to-digital converter (ADC) 210 is an analog-to-digital converter for converting analog video data input from the video camera 100 into digital video data. The AD converter 210 is a video camera ( Among the analog video data input from 100, the audio ADC 211 converts analog audio data into digital audio data, and the video ADC 212 converts analog video data into digital video data. The AD converter 210 may be omitted when the video camera 100 is a digital video camera or the input video data is digital video data.

상기 영상 복제장치(220)는 AD변환기(210)로부터 전송되는 일채널 동영상 데이터를 다채널 동영상 데이터로 복제하여 출력하는 장치로서, 본 발명의 실시예에서 상기 영상 복제장치(220)는 Quad Duplicator(221)와 메모리(222)를 포함하여 이루어진다. 상기 영상 복제장치(220)에 적용된 Quad Duplicator(221)는 AD변환기(210)의 비디오 ADC(212) 또는 디지털 비디오 카메라로부터 입력되는 1채널 디지털 영상을 4채널 영상으로 복제하게 된다. 도 4는 본 발명의 실시예에 따라 상기 Quad Duplicator(221)를 통하여 하나의 영상이 4개의 영상으로 복제되는 일례를 나타낸 것으로서, Quad Duplicator(221)에 입력되는 1채널 영상은 4채널 영상으로 복제되어 출력된다. 이 때, 복제된 영상은 원래 영상의 크기보다 1/4로 줄어들기 때문에 각 채널당 영상의 해상도도 1/4로 줄어들게 된다. 예를 들면, Quad Duplicator(221)에 입력되는 1채널 영상의 해상도가 640×480인 경우, Quad Duplicator(221)는 입력 채널의 영상을 320×240의 해상도로 축소하며, 축소된 채널을 복제하여 전체적으로 640×480의 채널로 출력하게 된다.
본 발명에서 명칭되는 채널은 물리적으로 구분되는 데이터 전송 경로를 의미하는 것이 아니라, 서로 독립적으로 구분되는 영상 또는 동영상 스트림 단위를 의미한다.
The image copying device 220 is a device for copying and outputting one channel video data transmitted from the AD converter 210 into multi-channel video data. In the embodiment of the present invention, the image copying device 220 is a quad-upperformer ( 221 and a memory 222. The Quad Duplicator 221 applied to the image replicating apparatus 220 replicates the 1-channel digital image input from the video ADC 212 or the digital video camera of the AD converter 210 into a 4-channel image. 4 illustrates an example in which one image is duplicated into four images through the Quad Duplicator 221 according to an embodiment of the present invention. One channel image input to the Quad Duplicator 221 is duplicated into a four channel image. And output. At this time, since the duplicated image is reduced to 1/4 of the size of the original image, the resolution of the image for each channel is also reduced to 1/4. For example, when the resolution of a 1-channel image input to the Quad Duplicator 221 is 640 × 480, the Quad Duplicator 221 reduces the image of the input channel to a resolution of 320 × 240 and duplicates the reduced channel. In total, the output will be 640 × 480 channels.
In the present invention, the channel does not mean a data transmission path that is physically separated, but means a video or video stream unit that is independently separated from each other.

상기 영상 압축장치(230)는 영상 복제장치(220)로부터 출력되는 다채널 동영상 데이터를 각각 다른 비트율을 갖는 다수의 동영상 스트림으로 인코딩하는 장치로서, 본 발명의 실시예에서 상기 영상 압축장치(230)는 MPEG4 Encoder(231)와 메모리(232)를 포함하여 이루어진다. 도 5는 본 발명의 실시예에 따른 MPEG4 Encoder(231)를 통하여 다채널 동영상 데이터가 인코딩되는 일례를 나타낸 것으로, 이 MPEG4 Encoder(231)는 Quad Duplicator(221)를 통하여 전송되는 4채널(A)(B)(C)(D)의 영상을 각 채널별로 분리하여 각각 서로 다른 비트율(α)(β)(γ)(δ)을 갖도록 인코딩하여 실시간 동영상 스트림을 생성하게 된다. 또한, MPEG4 Encoder(231)는 상기 AD변환기(210)의 오디오 ADC(211)로부터 전송되는 디지털 오디오 데이터를 인코딩하게 되는데, 이에 따라 MPEG4 Encoder(231)를 통하여 출력되는 실시간 동영상 스트림에는 비디오 영역의 I 프레임과 P 프레임 및 오디오 데이터가 포함된다.The image compression apparatus 230 is an apparatus for encoding the multi-channel video data output from the image duplication apparatus 220 into a plurality of video streams having different bit rates, respectively, in the embodiment of the present invention. This includes MPEG4 Encoder 231 and a memory 232. FIG. 5 illustrates an example in which multi-channel video data is encoded through an MPEG4 encoder 231 according to an embodiment of the present invention. The MPEG4 encoder 231 is a 4-channel A transmitted through a quad duplicator 221. The video of (B) (C) (D) is separated for each channel and encoded to have different bit rates α (β) (γ) (δ) to generate a real-time video stream. In addition, the MPEG4 Encoder 231 encodes digital audio data transmitted from the audio ADC 211 of the AD converter 210. Accordingly, the MPEG4 Encoder 231 encodes digital audio data transmitted through the MPEG4 Encoder 231. Frames, P frames, and audio data.

상기 중앙제어부(240)는 동영상 스트리밍 서버(200)의 각 구성부를 제어하고 관리하는 역할을 수행하게 되는데, 이 중앙제어부(240)에는 중앙처리장치 (CPU)(241), 메모리(Memory)(242) 및 플래시 메모리(Flash Memory)(243) 등의 하드웨어 장치가 구비되어 컴퓨터 시스템을 동작시키게 된다. 상기 플래시 메모리(243)에는 중앙처리장치(241)에 의해 인식되어 실행되는 Pumper 소프트웨어가 탑재되는데, 중앙처리장치(241)는 이 Pumper 소프트웨어를 실행시켜 Pumper 프로세스를 생성시키고 생성된 Pumper 프로세스는 영상 압축장치(230)로부터 전송되는 실시간 동영상 스트림을 제어하여 네트워크 인터페이스(250)를 통하여 기억장치(300) 또는 클라이언트(400)에게 전송하게 된다.The central controller 240 controls and manages each component of the video streaming server 200. The central controller 240 includes a central processing unit (CPU) 241 and a memory 242. Hardware devices, such as a flash memory 243 and the like, to operate a computer system. The flash memory 243 is equipped with Pumper software recognized and executed by the central processing unit 241. The central processing unit 241 executes the Pumper software to generate a Pumper process, and the generated Pumper process compresses an image. The real-time video stream transmitted from the device 230 is controlled and transmitted to the storage device 300 or the client 400 through the network interface 250.

상기 메모리(242)는 영상 압축장치(230)를 통하여 출력되는 다채널 동영상 스트림을 임시 저장하는 공유영역 메모리로서, 본 발명의 실시예에서 상기 메모리(242)에는 영상 압축장치(230)의 Encoder 프로세스의 제어에 의해 영상 압축장치(230)로부터 출력되는 다채널 동영상 스트림이 저장된다. 이 때, 메모리(242)에는 Encoder 프로세스와 Pumper 프로세스 등 다른 프로세스가 동시에 접근될 수 있기 때문에 프로세스간의 충돌을 방지하기 위하여 세마포어(Semaphores)가 사용된다. 도 6은 본 발명의 실시예에 따른 공유 메모리의 구조 일례를 나타낸 것으로, 하나의 버퍼(buf)에 모든 데이터가 등록되어 포인터(Offset)로서 접근되게 된다. 도 6에 표시된 Nextoffset은 다음 데이터가 위치될 오프셋을 나타내고, 버퍼가 다 차게 되면 처음부터 다시 쓰기 시작하는데, 처음부터 다시 쓰기 시작한 부분을 가리키고 있는 큐의 슬롯은 유효 Flag가 0이 되어 구분될 수 있도록 한다. 또한, 각 데이터의 등록 정보를 나타내기 위하여 각 채널별로 하나씩의 환형큐(CQ ; Circular Queue)가 구비되는데, 각 큐에는 30개의 슬롯이 포함되며, 큐의 각 슬롯에는 다음 과 같은 필드가 포함된다.The memory 242 is a shared area memory that temporarily stores a multi-channel video stream output through the image compression device 230. In the embodiment of the present invention, the memory 242 includes an encoder process of the image compression device 230. Under the control of the multi-channel video stream output from the video compression device 230 is stored. At this time, since other processes, such as an encoder process and a pumper process, may be simultaneously accessed in the memory 242, semaphores are used to prevent collisions between processes. 6 illustrates an example of a structure of a shared memory according to an exemplary embodiment of the present invention, in which all data is registered in one buffer and accessed as a pointer. Nextoffset shown in FIG. 6 indicates the offset where the next data is to be placed, and when the buffer becomes full, the write starts again from the beginning. The slot of the queue indicating the rewrite start from the beginning can be distinguished by the effective flag being 0. do. In addition, one circular queue (CQ) is provided for each channel to indicate registration information of each data. Each queue includes 30 slots, and each slot of the queue includes the following fields. .

Flag : 해당 슬롯의 유효 여부 (0 : 유효하지 않음, 1 : 유효함)Flag: Whether the slot is valid (0: invalid, 1: valid)

Type : 미디어 형 (0 : I 프레임, 1 : P 프레임, 2 : 오디오 데이터)Type: Media type (0: I frame, 1: P frame, 2: audio data)

TSP : 데이터의 생성시간 (timestamp)TSP: Data creation time (timestamp)

Len : 데이터의 길이Len: length of data

Offset : 데이터가 위치하고 있는 buf내의 위치Offset: position in buf where data is located

Lastindex : 큐에서 가장 최근에 쓰여진 슬롯 번호Lastindex: Slot number most recently written in the queue

또한, 이 공유 메모리(242)에는 비디오와 동기화되는 오디오 데이터가 저장되어야 하는데, 오디오 데이터는 그 크기가 작고 빈번하게 발생되기 때문에 본 발명의 실시예에서 비디오 한 프레임 사이의 모든 오디오 데이터를 하나의 오디오 버퍼에 저장하게 된다. 도 7은 본 발명의 실시예에 따른 오디오 버퍼의 일례를 나타낸 것으로, 큐에서 오디오 버퍼가 하나의 슬롯을 차지하게 되는데 오디오 버퍼는 buf에 복사된 후 클리어(Clear) 된다. 상기 공유 메모리(242)에 비디오 및 오디오 데이터가 등록되는 과정은 도 13에서 후술된다. 상기 도 6의 공유 메모리 구조에서는 오디오 데이터의 저장 위치를 나타내는 오디오 채널 정보가 표시되어 있지 않지만, 상기 공유 메모리(242)에는 오디오 데이터의 저장 정보를 나타내는 오디오 채널의 환형큐가 더 포함될 수 있으며, 경우에 따라서는 별도의 오디오 채널을 대신하여 비디오 채널에 오디오 정보가 포함될 수도 있다.The shared memory 242 also needs to store audio data that is synchronized with the video. Since the audio data is small in size and frequently generated, all audio data between one frame of video in one embodiment of the present invention is one audio. Will be stored in a buffer. FIG. 7 shows an example of an audio buffer according to an embodiment of the present invention. An audio buffer occupies one slot in a queue. The audio buffer is copied to buf and then cleared. A process of registering video and audio data in the shared memory 242 will be described later with reference to FIG. 13. In the shared memory structure of FIG. 6, audio channel information indicating a storage location of audio data is not displayed. However, the shared memory 242 may further include an annular queue of audio channels indicating storage information of audio data. In some cases, audio information may be included in a video channel instead of a separate audio channel.

한편, 상기 플래시 메모리(243)에 탑재된 Pumper 소프트웨어는 중앙처리장치(241)에 의해 실행되어 Pumper 프로세스를 생성시키게 되는데, 이 Pumper 프로세스 는 공유 메모리(242)에 저장되는 각 채널의 동영상 스트림에 포함된 비디오 프레임을 선별적으로 선택하여 동영상 스트림의 비트율을 더욱 다양하게 생성하고 이를 기억장치(300) 또는 클라이언트(400)에 전송하게 된다. 본 발명의 실시예에서 상기 Pumper 프로세스는 공유 메모리(242)에 저장되는 동영상 스트림 중 독자적으로 영상을 구성할 수 있는 I 프레임을 선별적으로 선택하여 동영상 스트림을 재구성함으로써 비트율을 더욱 다양하게 만든다. 도 8은 본 발명의 실시예에 따른 Pumper 프로세스를 통하여 동영상 스트림이 재구성되는 일례를 나타낸 것으로, Pumper 프로세스는 각각의 채널에 대하여 한 채널당 4개의 서로 다른 비트율을 갖도록 I 프레임을 선별적으로 선택하게 된다. 도 8에 도시된 바와 같이, I 프레임과 P 프레임의 데이터 량의 비율이 100:30 이라고 가정하면, I 프레임과 P 프레임 모두를 선택하면 채널 고유의 100%의 동영상 스트림이 생성되고, I 프레임만을 모두 선택하면 53%의 동영상 스트림이 생성되며, I 프레임만을 두 번에 한번 비율로 선택하면 26%의 동영상 스트림이 생성되고, I 프레임만을 네번에 한번 비율로 선택하면 18%의 동영상 스트림이 생성되게 된다. Meanwhile, the Pumper software mounted in the flash memory 243 is executed by the central processing unit 241 to generate a Pumper process, which is included in the video stream of each channel stored in the shared memory 242. Selected video frames are selectively selected to generate various bit rates of the video stream and transmit them to the storage device 300 or the client 400. In the embodiment of the present invention, the Pumper process makes the bit rate more varied by selectively reconstructing the video stream by selectively selecting an I frame capable of constructing a video independently from the video stream stored in the shared memory 242. 8 illustrates an example in which a video stream is reconstructed through a pumper process according to an embodiment of the present invention. The pumper process selectively selects I frames to have four different bit rates for one channel for each channel. . As shown in FIG. 8, assuming that the ratio of the data amount of the I frame and the P frame is 100: 30, selecting both the I frame and the P frame generates a 100% video stream unique to the channel, and only the I frame. If you select all, 53% of the video stream will be generated. If you select only one I frame at a time, 26% will be generated. If you select only one I frame at a time, 18% will be generated. do.

도 9는 본 발명의 실시예에 따라 영상 복제장치(220)인 Quad Duplicator(221)에 입력되는 1채널 동영상 데이터가 영상 압축장치(230)인 MPEG4 Encoder(231)와 중앙제어부(240)를 통하여 다중 비트율을 갖는 다수의 동영상 스트림으로 인코딩되는 전체 과정을 나타낸 흐름도이고, 도 10은 본 발명의 실시예에 따라 Pumper 프로세스를 통하여 최종적으로 출력되는 각 채널별 동영상 스트림의 비트율 테이블 일례를 나타낸 것이다. FIG. 9 illustrates that one-channel video data input to the Quad Duplicator 221, which is an image copying apparatus 220, is transmitted through an MPEG4 Encoder 231, which is an image compression apparatus 230, and a central controller 240, according to an embodiment of the present invention. 10 is a flowchart illustrating an entire process of encoding a plurality of video streams having multiple bit rates, and FIG. 10 illustrates an example of a bit rate table of video streams for each channel finally output through a pumper process according to an exemplary embodiment of the present invention.

도 9와 도 10에 도시된 바와 같이, 본 발명의 실시예에 따라 영상 복제장치(220)에 입력되는 하나의 동영상 데이터는 4채널로 분기되고 영상 압축장치(230)를 통하여 인코딩 됨으로써 4채널의 서로 다른 비트율을 갖는 동영상 스트림이 생성되고, 이 4채널의 동영상 스트림의 I 프레임을 선별적으로 선택하여 각 채널당 4개의 서로 다른 비트율을 갖는 동영상 스트림이 생성됨으로써, 최종적으로 16(4ch×4) 채널의 서로 다른 비트율을 갖는 동영상 스트림이 생성되게 된다. As shown in FIG. 9 and FIG. 10, according to an embodiment of the present invention, one video data inputted to the image duplication apparatus 220 is divided into four channels and encoded through the image compression apparatus 230 so as to generate four channels. A video stream having different bit rates is generated, and the video streams having four different bit rates for each channel are generated by selectively selecting I frames of the four channel video streams, thereby finally providing 16 (4ch × 4) channels. Video streams having different bit rates of H are generated.

도 10에 도시된 16채널의 서로 다른 비트율을 갖는 동일한 내용의 동영상 스트림은 클라이언트(400)와의 네트워크 환경 또는 클라이언트(400)의 요청에 의해 적절한 비트율을 갖는 채널의 동영상 스트림이 선택되어 클라이언트(400) 또는 기억장치(300)에 전송되게 된다.The video stream of the same content having different bit rates of the 16 channels shown in FIG. 10 is selected by the network environment with the client 400 or the request of the client 400, and the video stream of the channel having an appropriate bit rate is selected. Or to the memory device 300.

도 11은 실시간 동영상 스트림을 재생성하는 중앙제어부(240)의 Pumper 프로세스와 클라이언트(User)(400)간의 데이터 송수신 과정을 나타내는 일례로서, 클라이언트(400)는 Pumper 프로세스로부터 전송되는 실시간 동영상 스트림에 포함된 TSP를 기준으로 초당 수신되는 데이터 량을 측정하여 수신 비트율을 계산하게 되고, 수신 비트율이 지정된 기준 수신 비트율과 차이가 발생하면 수신 비트율이 기준 수신 비트율을 만족할 수 있도록 새로운 채널을 통한 동영상 스트림 전송을 Pumper 프로세스에 요청하게 되다. 이를 위하여 클라이언트에는 동영상 스트림의 수신 비트율을 실시간으로 감시하고 감시 결과에 따라 채널 변경을 요청하는 프로그램이 설치되어 있는데, 이 프로그램은 스니퍼(Sniffer), MRTG(Multirouter traffic grapher) 등 통상적인 트래픽 감시 프로그램으로 구현될 수 있다. 채널 변경을 요청받은 Pumper 프로세스는 요청되는 비트율에 가장 근접하는 새로운 채널의 실시간 동영상 스트림을 선택하여 선택된 채널을 통하여 실시간 동영상 스트림을 클라이언트(400)에게 전송하게 된다. FIG. 11 illustrates an example of a process of transmitting and receiving data between a pumper process of a central controller 240 and a client 400 to regenerate a real time video stream. The client 400 is included in a real time video stream transmitted from a pumper process. The received bit rate is calculated by measuring the amount of data received per second based on the TSP. When the received bit rate differs from the specified standard received bit rate, the pumper sends a video stream through a new channel so that the received bit rate satisfies the standard received bit rate. Request to process To this end, the client is equipped with a program that monitors the received bit rate of the video stream in real time and requests a channel change according to the monitoring result. This program is a typical traffic monitoring program such as sniffer and MRTG (multirouter traffic grapher). Can be implemented. The pumper process, which has been requested to change the channel, selects the real-time video stream of the new channel that is closest to the requested bit rate and transmits the real-time video stream to the client 400 through the selected channel.

한편, 동영상 스트리밍 서버(200)의 Pumper 프로세스는 클라이언트(400)의 요청에 의한 것뿐만 아니라, 자체적으로 클라이언트(400)와의 데이터 전송 비트율을 지속적으로 검사하여 트래픽 등에 의하여 데이터 전송 비트율이 변경되는 경우 전송 비트율을 일정하게 유지하기 위하여 다른 채널로 변경하여 실시간 동영상 스트림을 클라이언트(400)에 전송할 수도 있다. 본 발명에서 채널을 변경한다는 것은 동영상 스트리밍 서버의 전송 비트율 또는 클라이언트의 수신 비트율에 따라 전송하던 동영상 스트리밍을 기 설정된 전송 또는 수신 비트율을 만족하는 다른 비트율로 인코딩된 동영상 스트리밍으로 변경하는 것을 의미한다.On the other hand, the Pumper process of the video streaming server 200 is not only at the request of the client 400, but also continuously checks the data transmission bit rate with the client 400 itself, and transmits when the data transmission bit rate is changed by traffic or the like. In order to keep the bit rate constant, the real time video stream may be transmitted to the client 400 by changing to another channel. In the present invention, changing the channel means changing the video stream transmitted according to the transmission bit rate of the video streaming server or the reception bit rate of the client to the video stream encoded at another bit rate satisfying the preset transmission or reception bit rate.

이하에서, 상기의 구성으로 이루어진 실시간 동영상 스트림 전송 시스템을 통하여 다채널 실시간 동영상 스트림이 생성되어 클라이언트에 전송되는 과정에 대하여 설명한다.Hereinafter, a process of generating and transmitting a multi-channel real-time video stream to the client through the real-time video stream transmission system having the above configuration will be described.

도 12는 본 발명의 실시예에 따른 동영상 스트림 전송 시스템을 통하여 실시간 동영상 스트림이 생성되고 클라이언트에 전송되는 과정을 나타낸 흐름도이다.12 is a flowchart illustrating a process of generating a real time video stream and transmitting the same to a client through a video stream transmission system according to an exemplary embodiment of the present invention.

도 12에 도시된 바와 같이, 먼저 실시간 동영상 스트림을 생성하기 위하여 동영상 스트리밍 서버(200) 측은 비디오 카메라(100)를 통하여 실시간으로 동영상을 촬영하게 되고 촬영되는 동영상 데이터는 동영상 스트리밍 서버(200)로 전송된다(단계 S110).As shown in FIG. 12, in order to generate a real-time video stream, the video streaming server 200 captures a video in real time through the video camera 100 and transmits the captured video data to the video streaming server 200. (Step S110).

동영상 스트리밍 서버(200)는 비디오 카메라(100)로부터 입력되는 아날로그 동영상 데이터를 AD변환기(210)를 통하여 디지털 동영상 데이터로 변환하여 영상 복제장치(220)로 전송한다(단계 S120). 영상 복제장치(220)의 Quad Duplicator(221)는 입력되는 1채널 동영상 데이터의 영상을 4채널 영상으로 복제하 여 영상 압축장치(230)로 전송하게 된다(단계 S130).The video streaming server 200 converts the analog video data input from the video camera 100 into digital video data through the AD converter 210 and transmits the digital video data to the image replicating apparatus 220 (step S120). The Quad Duplicator 221 of the image replicating apparatus 220 duplicates the input 1-channel video data into a 4-channel image and transmits it to the image compression apparatus 230 (step S130).

영상 압축장치(230)의 MPEG4 Encoder(231)는 영상 복제장치(220)로부터 전송되는 4채널 동영상 데이터를 기설정된 서로 다른 비트율로 각각 인코딩하여 실시간 동영상 스트림을 생성하게 되며(단계 S140), 생성되는 4채널의 동영상 스트림은 공유 메모리(242)에 저장되게 되는데(단계 S150), 상기 공유 메모리(242)에 동영상 스트림이 저장되는 과정은 도 13을 통하여 후술된다. The MPEG4 Encoder 231 of the image compression device 230 encodes 4-channel video data transmitted from the image copying device 220 at different preset bit rates to generate a real-time video stream (step S140). The four-channel video stream is stored in the shared memory 242 (step S150), and the process of storing the video stream in the shared memory 242 will be described later with reference to FIG. 13.

공유 메모리(242)에 4채널 동영상 스트림이 저장되면, 중앙제어부(240)의 Pumper 프로세스는 4채널 동영상 스트림에 포함된 비디오 프레임의 I 프레임을 선별적으로 선택하여 한 채널당 4개의 서로 다른 비트율을 갖는 동영상 스트림을 생성함으로서 최종적으로 16채널의 서로 다른 비트율을 갖는 실시간 동영상 스트림을 설정할 수 있게 된다(단계 S160).When the 4-channel video stream is stored in the shared memory 242, the pumper process of the central controller 240 selectively selects I frames of the video frames included in the 4-channel video stream to have four different bit rates per channel. By generating the video stream, it is possible to finally set a real-time video stream having different bit rates of 16 channels (step S160).

Pumper 프로세스는 기설정된 비트율의 실시간 동영상 스트림을 클라이언트(400)에 전송하기 위하여 해당 설정 비트율을 갖는 채널을 선택한 후, 선택된 채널에서 해당 비트율의 실시간 동영상 스트림을 인출하여 클라이언트(400)에 전송하게 된다(단계 S170).The pumper process selects a channel having a corresponding set bit rate in order to transmit the real time video stream having a predetermined bit rate to the client 400, and then extracts the real time video stream having the corresponding bit rate from the selected channel and transmits it to the client 400 ( Step S170).

실시간 동영상 스트림을 수신하는 클라이언트(400)의 트래픽 감시 프로그램은 실시간으로 수신되는 동영상 스트림의 초당 데이터 량을 측정하여 수신 비트율을 계산하게 되고, 이 수신 비트율이 기 설정된 기준 수신 비트율과 차이가 발생하게 되면 동영상 스트리밍 서버(200)의 Pumper 프로세스에 설정된 기준 수신 비트율을 계속하여 만족할 수 있도록 채널 변경을 요청하게 된다. 동영상 스트리밍 서버(200)의 Pumper 프로세스는 클라이언트(400)로부터 채널 변경 요청신호가 수신되면(단계 S180), 클라이언트(200)의 기 설정된 수신 비트율을 만족하는 채널을 선택하여 선택된 채널의 실시간 동영상 스트림을 클라이언트(400)에게 지속적으로 전송하게 된다(단계 S181). The traffic monitoring program of the client 400 receiving the real-time video stream calculates the received bit rate by measuring the amount of data per second of the received video stream in real time. When the received bit rate is different from the preset reference received bit rate, The channel change request is made to continuously satisfy the reference reception bit rate set in the Pumper process of the video streaming server 200. When the pump change process of the video streaming server 200 receives a channel change request signal from the client 400 (step S180), the pumper process selects a channel that satisfies the preset reception bit rate of the client 200 to obtain a real-time video stream of the selected channel. Continuous transmission to the client 400 (step S181).

상기의 실시간 동영상 스트림 전송 과정은 동영상 스트리밍 서버(200)에 클라이언트(400)로부터 동영상 스트림의 전송 종료 요청이 수신되거나 전송하고자 하는 실시간 동영상 스트림이 모두 전송될 때까지 반복되게 된다(단계 S190).The real-time video stream transmission process is repeated until the video streaming server 200 receives a request to terminate transmission of the video stream from the client 400 or transmits all the real-time video streams to be transmitted (step S190).

도 13은 본 발명의 실시예에 따라 상기 도 12에서 설명한 공유 메모리에 동영상 스트림이 저장되는 과정을 나타낸 흐름도이다.FIG. 13 is a flowchart illustrating a process of storing a video stream in the shared memory described with reference to FIG. 12 according to an embodiment of the present invention.

도 13에 도시된 바와 같이, 동영상 압축장치(230)의 MPEG4 Encoder(231)를 통하여 인코딩된 실시간 동영상 스트림을 공유 메모리(242)에 저장하기 위하여 Encoder 프로세스는 MPEG4 Encoder(231)로부터 인코딩되는 동영상 데이터를 인출하여(단계 S151), 인출된 동영상 데이터가 오디오 데이터인지를 먼저 검사하게 된다(단계 S152). As shown in FIG. 13, in order to store the real-time video stream encoded through the MPEG4 Encoder 231 of the video compression apparatus 230 in the shared memory 242, the Encoder process encodes the video data encoded from the MPEG4 Encoder 231. Is extracted (step S151), and it is first checked whether the extracted video data is audio data (step S152).

인출된 동영상 데이터가 오디오 데이터인 경우 해당 오디오 데이터를 공유 메모리(242)의 오디오 버퍼에 등록하고, 오디오 버퍼에 데이터가 등록되었음을 나타내도록 필드 Abuf 값을 1로 설정한다(단계 S152). 오디오 버퍼에 오디오 데이터가 등록되면 상기 단계 S151로 돌아가 다음 동영상 데이터를 인출하여 동영상 데이터가 오디오 데이터인지를 판단하는 상기의 과정을 반복하게 된다. If the extracted video data is audio data, the corresponding audio data is registered in the audio buffer of the shared memory 242, and the field Abuf value is set to 1 to indicate that the data is registered in the audio buffer (step S152). When the audio data is registered in the audio buffer, the process returns to step S151 and the next process of retrieving the next video data and determining whether the video data is audio data is repeated.

만약, 인출하는 동영상 데이터가 계속하여 오디오 데이터라면 지속적으로 오디오 버퍼에 오디오 데이터를 등록하고 다음 동영상 데이터를 인출하는 과정을 반복하며, 만약 인출되는 동영상 데이터가 오디오 데이터가 아닌 비디오 데이터인 경우에는 공유 메모리(242)의 세마포어를 확인하게 된다(단계 S154). 공유 메모리(242)의 세마포어는 공유 메모리(242)의 동시 접근을 방지하기 위한 것이므로, 세마포어를 참조하여 공유 메모리(242)의 접근이 가능할 때 세마포어의 값을 변경시켜 다른 프로세스가 접근되지 않도록 설정한 후, 인출된 비디오 데이터를 공유 메모리(242)에 등록하게 된다(단계 S155). If the video data to be fetched is audio data continuously, the audio data is continuously registered in the audio buffer and the next video data is fetched. If the video data to be fetched is video data instead of audio data, the shared memory is used. The semaphore of step 242 is confirmed (step S154). Since the semaphore of the shared memory 242 is for preventing simultaneous access of the shared memory 242, when the shared memory 242 is accessible by referring to the semaphore, the semaphore is changed so that no other process is accessed. Thereafter, the extracted video data is registered in the shared memory 242 (step S155).

공유 메모리(242)에 비디오 데이터를 등록한 후, Encoder 프로세스는 오디오 버퍼의 Abuf 값을 검사하여 설정 값이 1인지를 확인한다(단계 S156). 만약, 오디오 버퍼의 Abuf 값이 1이라면 오디오 버퍼에 오디오 데이터가 등록되어 있는 것을 나타내므로, Encoder 프로세스는 오디오 버퍼에 등록된 오디오 데이터를 공유 메모리(242)에 복사하여 저장하게 된다(단계 S157). After registering the video data in the shared memory 242, the Encoder process checks the Abuf value of the audio buffer to confirm whether the setting value is 1 (step S156). If the Abuf value of the audio buffer is 1, it indicates that audio data is registered in the audio buffer. Therefore, the encoder process copies and stores the audio data registered in the audio buffer to the shared memory 242 (step S157).

상기 과정을 통하여 공유 메모리(242)에 비디오 데이터와 오디오 데이터를 등록한 후, 공유 메모리(242)의 세마포어 값을 변경하여 타 프로세스의 접근을 허용토록 하며(단계 S158), 오디오 버퍼에 등록되어 있는 오디오 데이터를 삭제(Clear)한 후(단계 S159), 상기 초기 단계(S151)로 돌아가 상기의 과정을 지속적으로 반복하여 수행하게 된다.After registering the video data and the audio data in the shared memory 242 through the above process, the semaphore value of the shared memory 242 is changed to allow access of another process (step S158), and the audio is registered in the audio buffer. After the data is cleared (step S159), the process returns to the initial step (S151) and is repeatedly performed.

상기의 과정을 통하여 동영상 스트리밍 서버(200)는 비디오 카메라(100)로부 터 촬영되는 동영상을 다중 비트율을 갖는 실시간 동영상 스트림으로 생성하여 클라이언트(400)의 요구 조건 또는 네트워크 환경에 적합한 비트율을 갖는 실시간 동영상 스트림을 제공할 수 있게 된다.Through the above process, the video streaming server 200 generates a video captured by the video camera 100 into a real-time video stream having multiple bit rates, thereby real-time video having a bit rate suitable for the requirements or network environment of the client 400. You can now provide a stream.

본 발명은 상술한 실시예에 한정되는 것은 아니며 동일 내지 유사한 기능을 수행할 수 있도록 적절한 형태로 변형되어 이용될 수 있다. 예를 들면, 본 발명의 영상 분할장치(220)에 적용된 Quad Duplicator와 영상 압축장치(230)에 적용된 MPEG4 Encoder는 동일 내지 유사한 기능을 수행하는 다른 종류의 장치로 변경될 수 있으며, Pumper 프로세스에서 실시간 동영상 스트림 중 I 프레임을 다른 비율로 선택하여 비트율을 조절할 수 있음은 당연하다. The present invention is not limited to the above-described embodiment, and may be modified and used in a suitable form so as to perform the same to similar functions. For example, the Quad Duplicator applied to the image segmentation apparatus 220 and the MPEG4 Encoder applied to the image compression apparatus 230 of the present invention may be changed to other kinds of apparatuses that perform the same or similar functions. Naturally, the bit rate can be adjusted by selecting an I frame in the video stream at a different ratio.

따라서, 본 발명은 상기에서 언급되고 도시된 실시예에만 한정되는 것은 아니며, 본 발명의 기술적 사상으로부터 다양한 변형과 모방이 가능하며 이와 같은 변형과 모방은 본 발명의 권리범위에 속함은 자명하다.Therefore, the present invention is not limited only to the above-mentioned and illustrated embodiments, and various modifications and imitations are possible from the technical spirit of the present invention, and such modifications and imitations are obviously within the scope of the present invention.

상술한 바와 같이, 본 발명에 따른 다중 비트율을 지원하는 실시간 동영상 스트림 전송 시스템은 비디오 카메라로부터 촬영되는 하나의 동영상에 대하여 서로 다른 비트율을 갖는 다수의 실시간 동영상 스트림을 생성하여, 클라이언트의 다양한 요구조건이나 네트워크 환경에 따라 최적화된 비트율을 갖는 실시간 동영상 스트림을 클라이언트에게 전송할 수 있으며, 별도의 기억장치에 저장할 수 있으므로 자원의 응용분야를 넓히고 보다 효율적으로 사용할 수 있는 효과가 있다.
As described above, the real-time video stream transmission system supporting the multi-bit rate according to the present invention generates a plurality of real-time video streams having different bit rates for one video captured from the video camera, so as to meet various requirements of the client Real-time video streams with optimized bit rates can be transmitted to the client according to the network environment, and can be stored in a separate storage device, thereby extending the application of resources and using them more efficiently.

Claims (6)

비디오 카메라로부터 촬영되는 동영상 데이터를 입력받아 실시간 동영상 스트림으로 인코딩하여 네트워크망을 통하여 클라이언트에게 제공하는 실시간 동영상 스트림 전송 시스템에 있어서,In the real-time video stream transmission system that receives the video data shot from the video camera to encode the real-time video stream to provide to the client through a network, 상기 비디오 카메라(100)로부터 전송되는 1채널 실시간 동영상 데이터의 영상을 다채널을 갖는 다수의 영상으로 복제하여 다채널 동영상 데이터를 생성하는 영상 복제장치(220)와; An image copying apparatus (220) for generating multi-channel video data by copying the video of one-channel real-time video data transmitted from the video camera (100) into a plurality of images having multiple channels; 상기 영상 복제장치(220)로부터 복제된 다채널 동영상 데이터를 전송받아 채널별로 각각 분리한 후, 서로 다른 비트율을 갖도록 각 채널을 병렬로 인코딩하여 다중 비트율을 갖는 다채널 실시간 동영상 스트림을 생성하는 동영상 압축장치(230)와; After receiving the multi-channel video data copied from the image copying device 220 and separating each channel, video compression for generating a multi-channel real-time video stream having multiple bit rates by encoding each channel in parallel to have different bit rates. Device 230; 상기 동영상 압축장치(230)를 통하여 출력되는 다중 비트율을 갖는 다채널 실시간 동영상 스트림을 공유 메모리(242)에 저장하고, 상기 공유 메모리(242)에 저장되는 다채널 실시간 동영상 스트림 중 클라이언트(400)와의 네트워크 환경에 따라 설정된 적어도 어느 한 채널의 실시간 동영상 스트림을 인출하여 클라이언트(400)에게 전송하는 중앙제어부(240);를 포함하여 이루어지는 것을 특징으로 하는 다중 비트율을 지원하는 실시간 동영상 스트림 전송 시스템. The multi-channel real time video stream having the multi bit rate output through the video compression device 230 is stored in the shared memory 242, and the multi-channel real time video stream stored in the shared memory 242 with the client 400 Real-time video stream transmission system supporting multiple bit rates, characterized in that it comprises a; central control unit 240 for extracting the real-time video stream of at least one channel set according to the network environment to transmit to the client (400). 제 1항에 있어서, 상기 중앙제어부(240)는 The method of claim 1, wherein the central control unit 240 상기 공유 메모리(242)에 저장되는 다채널 실시간 동영상 스트림 중 적어도 어느 한 채널의 실시간 동영상 스트림을 선택하고, 선택된 채널의 실시간 동영상 스트림에 포함된 독자적으로 영상을 구성할 수 있는 특정 프레임을 선별적으로 선택하여 취합함으로써 서로 다른 비트율을 갖는 실시간 동영상 스트림으로 재구성하는 것을 특징으로 하는 다중 비트율을 지원하는 실시간 동영상 스트림 전송 시스템.Select a real-time video stream of at least one channel among the multi-channel real-time video streams stored in the shared memory 242, and selectively select a specific frame capable of composing an image independently included in the real-time video stream of the selected channel. Real-time video stream transmission system supporting multiple bit rates, characterized in that the reconstructed into a real-time video stream having a different bit rate by selecting and collecting. 제 1항에 있어서, 상기 중앙제어부(240)는 The method of claim 1, wherein the central control unit 240 상기 클라이언트(400)가 요청하는 비트율과 가장 근접한 비트율을 갖는 채널의 동영상 스트림을 선택하여 클라이언트(400)에게 전송하는 것을 특징으로 하는 다중 비트율을 지원하는 실시간 동영상 스트림 전송 시스템. And a video stream of a channel having a bit rate closest to the bit rate requested by the client (400) to be transmitted to the client (400). 제 1항에 있어서, 상기 중앙제어부(240)는 The method of claim 1, wherein the central control unit 240 상기 네트워크망을 통하여 수신되는 동영상 스트림의 수신 비트율을 검사하는 클라이언트(400)로부터 수신 비트율의 변경에 따른 채널 변경이 요청되면, 기 설정된 수신 비트율을 유지하는 다른 채널의 실시간 동영상 스트림을 선택하여 클라이언트(400)에게 전송하는 것을 특징으로 하는 다중 비트율을 지원하는 실시간 동영상 스트림 전송 시스템.When a channel change request according to a change in the reception bit rate is requested from the client 400 inspecting the reception bit rate of the video stream received through the network, the client selects a real-time video stream of another channel maintaining the preset reception bit rate. Real-time video stream transmission system supporting multiple bit rates, characterized in that for transmitting. 제 1항에 있어서, 상기 영상 복제장치(220)는The image replication apparatus 220 of claim 1, 입력되는 동영상 데이터의 1채널 영상을 4채널 영상으로 복제하는 Quad Duplicator(221)와 메모리(222)를 포함하여 이루어지는 것을 특징으로 하는 다중 비트율을 지원하는 실시간 동영상 스트림 전송 시스템.A real-time video stream transmission system supporting multiple bit rates, characterized in that it comprises a Quad Duplicator (221) and a memory (222) for copying the 1-channel image of the input video data into a 4-channel image. 제 1항에 있어서, 상기 영상 압축장치(230)는 The image compression apparatus 230 of claim 1, 상기 영상 복제장치(220)로부터 전송되는 다채널 영상을 각각 구분하여 인코딩하는 MPEG4 Encoder(231)와 메모리(232)를 포함하여 이루어지는 것을 특징으로 하는 다중 비트율을 지원하는 실시간 동영상 스트림 전송 시스템.And a MPEG4 Encoder (231) and a memory (232) for separately encoding and encoding the multi-channel video transmitted from the image copying device (220).
KR1020040029478A 2004-04-28 2004-04-28 A System for Transporting Moving Picture Stream Having Multi Bit Rates Support In Real Time KR100579012B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040029478A KR100579012B1 (en) 2004-04-28 2004-04-28 A System for Transporting Moving Picture Stream Having Multi Bit Rates Support In Real Time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040029478A KR100579012B1 (en) 2004-04-28 2004-04-28 A System for Transporting Moving Picture Stream Having Multi Bit Rates Support In Real Time

Publications (2)

Publication Number Publication Date
KR20050104455A KR20050104455A (en) 2005-11-03
KR100579012B1 true KR100579012B1 (en) 2006-05-12

Family

ID=37281989

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040029478A KR100579012B1 (en) 2004-04-28 2004-04-28 A System for Transporting Moving Picture Stream Having Multi Bit Rates Support In Real Time

Country Status (1)

Country Link
KR (1) KR100579012B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100881371B1 (en) * 2007-05-04 2009-02-02 이동수 Apparatus of transmitting real time moving picture using wireless multiple access, apparatus of receiving real time moving picture using wireless multiple access, apparatus of transmitting/receiving real time moving picture using wireless multiple access and method thereof

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100778229B1 (en) * 2006-02-20 2007-11-22 박창영 Network DVR System for searching the Moving Picture Data in Multi- Virtual Storage
KR100802091B1 (en) * 2006-08-10 2008-02-11 주식회사 케이티프리텔 Method and system for multi-outputing multimedia data
KR100894328B1 (en) * 2008-01-31 2009-04-24 주식회사 유티티 System, apparatus and method for transmitting image data
KR101037868B1 (en) * 2008-08-11 2011-05-31 주식회사 케이티 Dual mode video encoder, Encoding devices and Methods using the same, Storage medium storing the same
KR101009356B1 (en) * 2010-07-02 2011-01-19 (주)호서텔레콤 A multi encoder for broadcasting
KR101901740B1 (en) 2016-07-21 2018-09-28 지엘디앤아이에프 주식회사 System for separating network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100881371B1 (en) * 2007-05-04 2009-02-02 이동수 Apparatus of transmitting real time moving picture using wireless multiple access, apparatus of receiving real time moving picture using wireless multiple access, apparatus of transmitting/receiving real time moving picture using wireless multiple access and method thereof

Also Published As

Publication number Publication date
KR20050104455A (en) 2005-11-03

Similar Documents

Publication Publication Date Title
US7835439B2 (en) Video compression system
US7231132B1 (en) Trick-mode processing for digital video
KR100962673B1 (en) Video processing system, video processing method and video transfer method
US20120291080A1 (en) Image delivery system with image quality varying with frame rate
US7697768B2 (en) Method and apparatus for encoding an image
JP6686541B2 (en) Information processing system
JP2006254366A (en) Image processing apparatus, camera system, video system, network data system, and image processing method
US20030223733A1 (en) System and method of processing audio/video data in a remote monitoring system
JP4148673B2 (en) Video distribution system
KR100579012B1 (en) A System for Transporting Moving Picture Stream Having Multi Bit Rates Support In Real Time
KR20140007893A (en) A method for optimizing a video stream
US20230162435A1 (en) Information processing apparatus, information processing method, and storage medium
EP2260644A1 (en) A method of recording quality images
JP4097586B2 (en) Data processing device
JP2004349743A (en) Video stream switching system, method, and video image monitoring and video image distribution system including video stream switching system
WO2017179271A1 (en) Monitor camera system and monitor camera data saving method
WO2001019082A9 (en) Converting non-temporal based compressed image data to temporal based compressed image data
JPH10117346A (en) Information-supplying device, information-reproducing device and information-supplying and reproducing system
KR100466790B1 (en) integerated DVR system
KR101190753B1 (en) Method for transmitting video frame in digital video recorder
JP2005006002A (en) Camera photographing system
JPH10210441A (en) Data-receiving device, data-transmitting device and data-receiving and transmitting device
JP2006128848A (en) Home network system
JPH10327379A (en) Video reproducing device
JPH10294940A (en) System and device for image transmission

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090427

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee