KR20160147616A - Method and system for multichannel video streaming, and Method and system for receiving multichannel video streaming - Google Patents

Method and system for multichannel video streaming, and Method and system for receiving multichannel video streaming Download PDF

Info

Publication number
KR20160147616A
KR20160147616A KR1020150138002A KR20150138002A KR20160147616A KR 20160147616 A KR20160147616 A KR 20160147616A KR 1020150138002 A KR1020150138002 A KR 1020150138002A KR 20150138002 A KR20150138002 A KR 20150138002A KR 20160147616 A KR20160147616 A KR 20160147616A
Authority
KR
South Korea
Prior art keywords
images
data streams
encoded data
avc
devices
Prior art date
Application number
KR1020150138002A
Other languages
Korean (ko)
Other versions
KR102368226B1 (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 한화테크윈 주식회사
Publication of KR20160147616A publication Critical patent/KR20160147616A/en
Application granted granted Critical
Publication of KR102368226B1 publication Critical patent/KR102368226B1/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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • 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
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2385Channel allocation; Bandwidth allocation

Abstract

Disclosed are a multi-channel video streaming method for providing a reduced bit rate while transmitting data streams and a system thereof. According to an embodiment of the present invention, the method includes receiving multiple encoded data streams from each of multiple devices. The method also includes decoding multiple advanced video coding (AVC) encoded data streams to obtain multiple images. Each of the images corresponds to each of the images provided by the devices. The method includes grouping the images into individual images and/or subsets based on the correlation coefficients calculated between the images. The method also includes transmitting the individual images and/or the subsets thereof to another system in an encoded format.

Description

멀티채널 비디오 스트리밍 방법 및 시스템, 및 멀티채널 비디오 스트리밍 수신 방법 및 시스템{Method and system for multichannel video streaming, and Method and system for receiving multichannel video streaming}TECHNICAL FIELD The present invention relates to a multi-channel video streaming method and system, and a multichannel video streaming receiving method and system,

본 발명은 멀티채널 비디오 스트리밍에 관한 것으로, 보다 상세하게는 멀티채널 비디오 스트리밍 동안에 비트 레이트를 감소시키는 방법에 관한 것이다.The present invention relates to multi-channel video streaming, and more particularly, to a method for reducing bit rate during multi-channel video streaming.

오늘날 상업, 산업, 정부 및 주거 환경에서 모티터링, 보안 및 데이터 수집을 위한 멀티채널 비디오 감시 시스템들은 일반적이다. 멀티채널 라이브(live)/녹화 재생 비디오 시스템은 연결된 라이브 네트워크 아이피 카메라들(촬상 장치들)에서 출력되는 다중 부호화 비디오 데이터를 네트워크 상에서 스트리밍 하거나 또는 녹화된 콘텐츠를 중간 미디어 서버를 통해 스트리밍 해준다. 현재 멀티채널 비디오 시스템 솔루션은 상이한 IP/네트워크 카메라들로부터 출력되는 다중 부호화/압축 데이터 스트림들을 요청된 사용자/클라이언트로 전송하는 것으로 구성된다.Multichannel video surveillance systems for monitoring, security, and data collection in today's commercial, industrial, government, and residential environments are commonplace. Multichannel live / recording / playback video systems stream multiple encoded video data output from connected live network IP cameras (imaging devices) over a network or stream recorded content through an intermediate media server. Currently, a multi-channel video system solution consists of transmitting multiple encoded / compressed data streams from different IP / network cameras to the requested user / client.

기존의 멀티채널 비디오 시스템들은 요청된 부호화 데이터 스트림들의 동시 전송에 따른 네트워크 대역폭의 도전에 직면해 있다. 다중 부호화 데이터 스트림들은 또한, 사용자 측에서 동시 디스플레이를 위해 복호화될 때, 더 많은 시스템 자원들을 소비한다. 감시 네트워크 내의 입력 네트워크 IP 카메라들과 같은 촬상 장치들의 개수가 증가함에 따라, 영상 감시 등과 같은 멀티채널 비디오 시스템들은 부호화 데이터 스트림들을 요청 사용자/클라이언트로 동시에 전송하기 위해 높은 대역폭을 필요로 한다. 또한, 기존의 시스템들은 멀티채널 비디오 시스템의 사용자 측에서 더 높은 시스템 자원을 필요로 한다. 동시에 실행하는 데 필요한 디코더의 개수는 입력 부호화 비디오 스트림들의 개수에 따라 달라진다. 이것은 많은 시스템 자원을 소비하며, 성능은 입력 스트림들의 개수에 의해 제한된다.Conventional multi-channel video systems face the challenge of network bandwidth due to the simultaneous transmission of the requested encoded data streams. Multiple encoded data streams also consume more system resources when decoded for simultaneous display at the user end. As the number of imaging devices such as input network IP cameras in the surveillance network increases, multi-channel video systems such as video surveillance require high bandwidth to simultaneously transmit the encoded data streams to the requesting user / client. Also, existing systems require higher system resources on the user side of a multi-channel video system. The number of decoders required to run concurrently depends on the number of input encoded video streams. This consumes a lot of system resources, and performance is limited by the number of input streams.

한국공개특허 제2007-0122330호Korea Patent Publication No. 2007-0122330

본 실시예들은 부호화된 포맷으로 다른 시스템(수신부)에 전송되는 데이터 스트림들의 최종 개수(resultant number)에 있어서 중복 비트들(redundant bits)을 줄임으로써, 멀티채널 비디오 스트리밍 환경의 비트 레이트를 감소시키기 위한 방법 및 시스템(서버)을 제공하는 것이다.The present embodiments reduce redundant bits in the resultant number of data streams transmitted to other systems (receiving units) in an encoded format, thereby reducing the bit rate of a multi-channel video streaming environment Method and system (server).

본 실시예들은 각각이 다수의 촬상 장치 또는 저장 장치에 대응되는 복수의 영상들을, 상호 연관된 서브셋들 및/또는 개별 영상들로 그룹화함으로써, 데이터 스트림들의 최종 개수(resultant number)에 있어서 중복 비트들을 줄이기 위한 방법을 제공하는 것이다. 또한, 각 서브셋은 MVC(multiview coding) 부호화 데이터 스트림으로서 수신부에 전송되고, 각 개별 영상은 AVC(Advanced Video Coding) 부호화 데이터 스트림으로서 수신부에 전송된다.These embodiments reduce the number of redundant bits in the resultant number of data streams by grouping a plurality of images, each corresponding to a plurality of imaging devices or storage devices, into interrelated subsets and / And a method for providing the same. Each subset is transmitted as a MVC (multiview coding) encoded data stream to a receiver, and each individual video is transmitted as an AVC (Advanced Video Coding) encoded data stream to a receiver.

본 실시예들은 복수의 영상들을 복수의 영상들 간의 콘텐츠 리던던시에 기초하여 그룹화하는 방법을 제공하는 것이다.The present embodiments provide a method of grouping a plurality of images based on content redundancy between a plurality of images.

본 실시예들은 부호화 포맷의 데이터 스트림들(MVC 부호화 데이터 스트림들과 AVC 부호화 데이터 스트림들)을 수신하고, 수신된 데이터 스트림들을 복호화하는 방법을 제공하는 것이다.These embodiments provide a method of receiving data streams in an encoded format (MVC encoded data streams and AVC encoded data streams) and decoding the received data streams.

본 발명의 일 실시예는 멀티채널 비디오 스트리밍 방법을 제공한다. 상기 방법은 복수의 장치들 각각으로부터 복수의 AVC 부호화 데이터 스트림들을 수신하는 것을 포함한다. 또한, 상기 방법은 복수의 영상들을 얻기 위해 상기 복수 개의 AVC 부호화 데이터 스트림들을 복호화하는 것을 포함한다. 상기 복수의 영상들 중의 각각의 영상은 상기 복수의 장치들 각각에 의해 제공된 영상에 대응한다. 또한, 상기 방법은, 상기 복수의 영상들 간의 콘텐츠 리던던시에 기초하여, 상기 복수의 영상들을 서브셋들과 개별 영상들 중의 적어도 어느 하나로 그룹화하는 것을 포함한다. 나아가, 상기 방법은 상기 서브셋들과 상기 개별 영상들 중의 적어도 어느 하나를 전송하는 것을 포함한다.One embodiment of the present invention provides a multi-channel video streaming method. The method includes receiving a plurality of AVC encoded data streams from each of the plurality of devices. The method also includes decoding the plurality of AVC encoded data streams to obtain a plurality of images. Wherein each of the plurality of images corresponds to an image provided by each of the plurality of devices. The method also includes grouping the plurality of images into subsets and / or individual images based on content redundancy between the plurality of images. Further, the method includes transmitting at least one of the subsets and the individual images.

본 발명의 일 실시예는 멀티채널 비디오 스트림들을 수신하는 방법을 제공한다. 상기 방법은 부호화된 포맷의 데이터 스트림들을 수신하는 것을 포함한다. 상기 MVC 부호화 데이터 스트림들의 각각의 MVC 부호화 데이터 스트림은 서로 연관된 복수의 영상들을 포함하는 서브셋에 대응한다. 상기 AVC 부호화 데이터 스트림들의 각각의 AVC 부호화 데이터 스트림은 상기 서브셋에 포함되지 않은 개별 영상에 대응한다. 또한, 상기 방법은 상기 데이터 스트림들에서 MVC 부호화 데이터 스트림들과 AVC 부호화 데이터 스트림들을 식별하는 것을 포함한다. 또한, 상기 방법은, 복수의 영상들을 얻기 위해, MVC 부호화 데이터 스트림은 MVC 디코더 모듈을 사용하여 복호화하고 AVC 부호화 데이터 스트림들은 AVC 디코더 모듈에 의해 복호화하는 것을 포함한다. 나아가, 상기 방법은 상기 복수의 영상들을 디스플레이 화면 상에 디스플레이하는 것을 포함한다.One embodiment of the present invention provides a method for receiving multi-channel video streams. The method includes receiving data streams in an encoded format. Each MVC encoded data stream of the MVC encoded data streams corresponds to a subset comprising a plurality of images associated with each other. Each AVC encoded data stream of the AVC encoded data streams corresponds to an individual image not included in the subset. The method also includes identifying MVC encoded data streams and AVC encoded data streams in the data streams. The method also includes decoding the MVC encoded data stream using an MVC decoder module and decoding the AVC encoded data streams using an AVC decoder module to obtain a plurality of images. Further, the method includes displaying the plurality of images on a display screen.

본 발명의 일 실시예는 멀티채널 비디오 스트리밍 시스템을 제공하며, 상기 시스템은, 프로세서; 및 상기 프로세서에 연결된 메모리를 구비하고, 상기 메모리는 상기 프로세서에 의해 실행될 일군의 명령어들(a set of instructions)을 저장한다. 상기 일군의 명령어들은 복수의 장치들 각각으로부터 복수의 AVC 부호화 데이터 스트림을 수신하는 것을 포함한다. 또한, 상기 일군의 명령어들은 복수의 영상들을 얻기 위해 상기 복수의 AVC 부호화 데이터 스트림들을 복호화하는 것을 포함한다. 상기 복수의 영상들 중의 각각의 영상은 상기 복수의 장치들 각각에 의해 제공된 영상에 대응한다. 또한, 상기 일군의 명령어들은, 상기 프로세서에 의해, 상기 복수의 영상들간의 콘텐츠 리던던시에 기초하여 복수의 영상들을 서브셋들과 개별 영상들 중의 적어도 어느 하나로 그룹화하는 것을 포함한다. 나아가, 상기 일군의 명령어들은, 상기 프로세서에 의해, 상기 서브셋들과 상기 개별 영상들 중의 적어도 어느 하나를 전송하는 것을 포함한다. One embodiment of the present invention provides a multi-channel video streaming system, the system comprising: a processor; And a memory coupled to the processor, the memory storing a set of instructions to be executed by the processor. The group of instructions includes receiving a plurality of AVC encoded data streams from each of the plurality of devices. The set of instructions also includes decoding the plurality of AVC encoded data streams to obtain a plurality of images. Wherein each of the plurality of images corresponds to an image provided by each of the plurality of devices. The group of instructions further comprises grouping, by the processor, a plurality of images into subsets and / or individual images based on content redundancy between the plurality of images. Further, the set of instructions includes transmitting, by the processor, at least one of the subsets and the individual images.

본 발명의 일 실시예는 멀티채널의 비디오 스트림들을 수신하는 시스템을 제공한다. 상기 시스템은 프로세서 및 상기 프로세서에 연결된 메모리를 포함한다. 상기 메모리는 상기 프로세서에 의해 실행되는 일군의 명령어들을 저장한다. 상기 일군의 명령들은 부호화된 포맷의 데이터 스트림을 수신하는 것을 포함한다. 상기 데이터 스트림들은 MVC 부호화 데이터 스트림들과 AVC 부호화 데이터 스트림들 중의 적어도 어느 하나를 포함한다. 상기 MVC 부호화 데이터 스트림들의 각각의 MVC 부호화 데이터 스트림은 서로 연관된 복수의 영상들을 포함하는 서브셋에 대응한다. 상기 AVC 부호화 데이터 스트림들의 각각의 AVC 부호화 데이터 스트림은 상기 서브셋에 포함되지 않은 개별 영상에 대응한다. 또한, 상기 일군의 명령어들은 상기 데이터 스트림들 내의 상기 MVC 부호화 데이터 스트림들과 상기 AVC 부호화 데이터 스트림들을 식별하는 것을 포함한다. One embodiment of the present invention provides a system for receiving multi-channel video streams. The system includes a processor and a memory coupled to the processor. The memory stores a group of instructions that are executed by the processor. The set of instructions includes receiving a data stream in an encoded format. The data streams include at least one of MVC encoded data streams and AVC encoded data streams. Each MVC encoded data stream of the MVC encoded data streams corresponds to a subset comprising a plurality of images associated with each other. Each AVC encoded data stream of the AVC encoded data streams corresponds to an individual image not included in the subset. The set of instructions also includes identifying the MVC encoded data streams and the AVC encoded data streams in the data streams.

본 발명의 일 실시예는 컴퓨터 판독가능한 비휘발성 저장매체(a computer readable non-transitory storage medium)에 기록된 컴퓨터 실행가능 프로그램 코드를 포함하는 컴퓨터 프로그램 제품을 제공한다. 상기 컴퓨터 실행가능 프로그램 코드는, 실행되었을 때, 복수의 장치들 각각으로부터 복수의 AVC 부호화 데이터 스트림들을 수신하는 것을 포함하는 액션들을 일으킨다. 또한, 상기 컴퓨터 실행가능 프로그램 코드는, 복수의 영상들을 얻기 위해, 상기 복수의 AVC 부호화 데이터 스트림들을 복호화하는 것을 포함하며, 상기 복수의 영상들의 각각의 영상은 상기 복수의 장치들 각각에 의해 제공된 영상에 대응한다. 또한 상기 컴퓨터 실행가능 프로그램 코드는, 상기 복수의 영상들 간의 콘텐츠 리던던시에 기초하여, 상기 복수의 영상들을 서브셋들과 개별 영상들 중의 적어도 어느 하나로 그룹화하는 것을 포함한다. 나아가, 상기 컴퓨터 실행가능 프로그램 코드는 상기 서브셋들과 상기 개별 영상들 중의 적어도 어느 하나를 전송하는 것을 포함한다.One embodiment of the present invention provides a computer program product comprising computer executable program code recorded on a computer readable non-transitory storage medium. The computer executable program code, when executed, causes actions comprising receiving a plurality of AVC encoded data streams from each of the plurality of devices. The computer-executable program code may further comprise decrypting the plurality of AVC encoded data streams to obtain a plurality of images, wherein each image of the plurality of images comprises an image provided by each of the plurality of devices . The computer executable program code also includes grouping the plurality of images into subsets and / or individual images based on content redundancy between the plurality of images. Further, the computer executable program code comprises transmitting at least one of the subsets and the individual images.

본 발명의 일 실시예는 컴퓨터 판독가능한 비휘발성 저장매체에 기록된 컴퓨터 실행가능 프로그램 코드를 포함하는 컴퓨터 프로그램 제품을 제공한다. 상기 컴퓨터 실행가능 프로그램 코드는, 실행되었을 때, 부호화 포맷의 데이터 스트림들을 수신하는 것을 포함하는 액션들을 일으키며, 상기 데이터 스트림은 MVC 부호화 데이터 스트림들과 AVC 부호화 데이터 스트림들의 적어도 어느 하나를 포함한다. 여기서, 상기 MVC 부호화 데이터 스트림들의 각각의 MVC 부호화 데이터 스트림은 서로 연관되어 있는 복수의 영상들을 포함하는 서브셋에 대응하고, 상기 AVC 부호화 데이터 스트림들의 각각의 AVC 부호화 데이터 스트림은 상기 서브셋들에 포함되지 않는 개별 영상에 대응한다. 또한, 상기 컴퓨터 실행가능 프로그램 코드는 상기 데이터 스트림들에서 상기 MVC 부호화 데이터 스트림들과 AVC 부호화 데이터 스트림들을 식별하는 것을 포함한다. 또한, 상기 컴퓨터 실행가능 프로그램 코드는, 복수의 영상들을 얻기 위해, MVC 디코더 모듈을 사용하여 상기 MVC 부호화 데이터 스트림들을 복호화하는 것과 AVC 디코더 모듈에 의해 상기 AVC 부호화 데이터 스트림들을 복호화하는 것을 포함한다. 나아가, 상기 컴퓨터 실행가능 프로그램 코드는 상기 복수의 영상들을 디스플레이 화면에 표시하는 것을 포함한다. One embodiment of the invention provides a computer program product comprising computer executable program code recorded on a computer readable non-volatile storage medium. The computer executable program code, when executed, causes actions to be taken that include receiving data streams in an encoded format, the data stream comprising at least one of MVC encoded data streams and AVC encoded data streams. Wherein each MVC encoded data stream of the MVC encoded data streams corresponds to a subset comprising a plurality of images associated with each other and wherein each AVC encoded data stream of the AVC encoded data streams is not included in the subset Corresponding to individual images. The computer executable program code further comprises identifying the MVC encoded data streams and the AVC encoded data streams in the data streams. The computer executable program code also includes decrypting the MVC encoded data streams using an MVC decoder module and decoding the AVC encoded data streams by an AVC decoder module to obtain a plurality of images. Further, the computer executable program code comprises displaying the plurality of images on a display screen.

본 실시예들의 전술한 내용 및 기타 여러 가지 다른 측면들은 이하의 설명 및 첨부도면들과 함께 고려될 때 더 잘 알 수 있고 이해될 수 있을 것이다. 그렇지만, 이하의 설명들은, 바람직한 실시예들과 이들에 관한 수많은 구체적인 세부 사항들을 나타내지만, 본 발명에 관한 예시로서 주어지는 것이지 본 발명을 한정하고자 하는 것은 아님을 이해하여야 한다. 본 발명의 사상을 벗어나지 않고 실시예들의 범위 내에서 여러 가지 변경 및 변형이 이루어질 수 있으며, 여기서 언급하는 실시예들은 그러한 모든 변경이나 변형을 포함한다.The foregoing and various other aspects of the embodiments will be better understood and understood when considered in conjunction with the following description and the accompanying drawings. However, it should be understood that the following description, while indicating preferred embodiments and numerous specific details about them, is given by way of illustration of the invention and not by way of limitation. Various changes and modifications can be made within the scope of the embodiments without departing from the spirit of the present invention, and the embodiments mentioned herein include all such changes and modifications.

본 발명의 실시예는 데이터 스트림을 전송하는 동안 감소된 비트 레이트를 제공할 수 있다. Embodiments of the present invention may provide a reduced bit rate during transmission of a data stream.

본 발명은 첨부 도면들에 예시되어 있으며, 첨부 도면 전체에서 동일한 참조 문자는 여러 도면들에서 대응하는 부분을 표시한다. 실시예들은 도면들을 참조하면서 기술되는 상세한 설명으로부터 더 잘 이해될 것이다.
도 1은 본 발명의 일 실시예에 따른 감소된 비트 레이트로 데이터의 스트리밍을 제공하는 멀티채널 비디오 스트리밍 환경을 개략적으로 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 서버로서 기능하는 시스템의 복수의 구성 요소들을 도시한다.
도 3은 본 발명의 일 실시예에 따른 수신부로서 기능하는 다른 시스템의 복수의 구성 요소들을 도시한다.
도 4a는 본 발명의 일 실시예에 따른 시스템(서버)에 의한 멀티채널 비디오 스트리밍을 위한 방법을 예시하는 흐름도이다.
도 4b는 본 발명의 일 실시예에 따른 시스템(서버)에 의해 달성되는 비트 레이트의 감소를 나타내는 예를 도시한다.
도 5는 본 발명의 일 실시예에 따른 선택된 1차 영상(들)에 대하여, 복수의 영상들 중의 영상들에 관한 상관계수(correlation coefficients)들을 계산함으로써 복수의 영상들 간의 콘텐츠 리던던시를 식별하는 것에 의해, 복수의 영상들을 하나 이상의 서브셋으로 그룹화하는 방법을 예시하는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 수신부에 의해 멀티채널 비디오 스트림들을 수신하기 위한 방법을 나타내는 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 멀티채널 비디오 스트리밍을 위한 방법을 구현하는 컴퓨팅 환경을 도시한다.
BRIEF DESCRIPTION OF THE DRAWINGS The present invention is illustrated in the accompanying drawings, wherein like reference characters throughout the accompanying drawings indicate corresponding parts in the various figures. BRIEF DESCRIPTION OF THE DRAWINGS Embodiments will be better understood from the detailed description set forth with reference to the drawings.
1 is a schematic diagram of a multi-channel video streaming environment providing streaming of data at a reduced bit rate in accordance with an embodiment of the present invention.
Figure 2 illustrates a plurality of components of a system that serves as a server in accordance with an embodiment of the present invention.
Figure 3 illustrates a plurality of components of another system functioning as a receiver in accordance with an embodiment of the present invention.
4A is a flow chart illustrating a method for multi-channel video streaming by a system (server) in accordance with an embodiment of the present invention.
4B illustrates an example illustrating a reduction in bit rate achieved by a system (server) in accordance with an embodiment of the present invention.
FIG. 5 illustrates a method for identifying the content redundancy between a plurality of images by calculating correlation coefficients for images in a plurality of images, for a selected primary image (s) according to an embodiment of the present invention ≪ / RTI > is a flowchart illustrating a method of grouping a plurality of images into one or more subsets.
6 is a flow chart illustrating a method for receiving multi-channel video streams by a receiver according to an embodiment of the present invention.
Figure 7 illustrates a computing environment for implementing a method for multi-channel video streaming in accordance with an embodiment of the present invention.

본 명세서의 실시예들과 이들의 다양한 특징 및 유리한 세부 사항은, 첨부 된 도면에서 예시되고 이하의 설명에서 구체적으로 기술되는 비제한적인 실시예를 참조하여 더 완전하게 설명된다. 본 발명의 실시예들을 불명료하게 하지 않도록 하기 위해, 잘 알려진 구성요소들과 처리 기술들에 대한 설명은 생략한다. 또한, 여기서 설명되는 여러 가지 실시예들은, 새로운 실시예들을 형성하기 위해 몇몇 실시예들이 하나 이상의 다른 실시예들과 조합될 수 있으므로, 반드시 상호 배타적이지 않다. 여기서 사용되는 용어 "또는"은 다르게 언급하지 않는 한, 비배타적인 또는(or)을 가리킨다. 여기서 사용되는 예들은 본 발명의 실시예들이 실행될 수 있는 방법들의 이해를 용이하게 하고 당해 기술분야의 통상의 기술자들이 본 발명의 실시예들을 실시할 수 있게 할 의도로 제시될 뿐이다. 따라서, 그 예들은 본 발명의 실시예들의 범위를 한정하는 것으로 해석되어서는 아니 된다.BRIEF DESCRIPTION OF THE DRAWINGS Embodiments of the present disclosure and various features and advantageous details thereof are more fully described with reference to the non-limiting embodiments illustrated in the accompanying drawings and described in detail in the accompanying drawings. In order not to obscure the embodiments of the present invention, descriptions of well-known components and processing techniques are omitted. In addition, various embodiments described herein are not necessarily mutually exclusive, as some embodiments may be combined with one or more other embodiments to form new embodiments. The term "or" as used herein, unless otherwise indicated, refers to a non-exclusive or (or). The examples used herein are merely intended to facilitate understanding of the ways in which the embodiments of the present invention may be practiced and to enable those of ordinary skill in the art to practice the embodiments of the present invention. Accordingly, the examples should not be construed as limiting the scope of embodiments of the present invention.

본 실시예들은 멀티채널 비디오 스트리밍 환경의 비트 레이트를 감소시키기 위한 방법과 시스템을 제공한다. 멀티채널 비디오 스트리밍 환경은, 촬상 장치들의 시야 내에서 영상들을 촬영하여 관심 위치를 감시하는 것과 같은 하나 이상의 목적을 위해 인접한 위치에 설치된 복수의 촬상 장치들을 제공한다. 복수의 촬상 장치들(예를 들면, 인터넷 접속이 가능한 IP 카메라들)은 각각이 라이브 영상들(정지 영상 또는 동영상)을 촬영하며, 촬영된 영상들을 AVC/H.264와 같은 표준 부호화 기술들을 기초로 AVC 부호화 데이터 스트림으로 부호화한다. 또한, 복수의 촬상 장치들 각각은 AVC 부호화 데이터 스트림들을 예컨대 인터넷과 같은 네트워크를 통해 시스템(예를 들면, 서버)으로 전송한다. The embodiments provide a method and system for reducing the bit rate of a multi-channel video streaming environment. A multi-channel video streaming environment provides a plurality of imaging devices located in adjacent locations for one or more purposes, such as capturing images within the field of view of the imaging devices to monitor the location of interest. A plurality of image pickup devices (for example, IP cameras capable of being connected to the Internet) each photograph live images (still image or moving image), and convert the photographed images into image data based on standard encoding techniques such as AVC / H.264 Into an AVC encoded data stream. Further, each of the plurality of image pickup devices transmits AVC encoded data streams to a system (e.g., a server) via a network such as the Internet.

일 실시예에서, 하나 이상의 저장 장치는 복수의 촬상 장치로부터 AVC 부호화 데이터 스트림을 수신할 수도 있다. 또한, 하나 이상의 저장 장치들은 인터넷과 같은 네트워크를 통해 시스템에 AVC 부호화 데이터 스트림들을 전송한다.In one embodiment, the one or more storage devices may receive an AVC encoded data stream from a plurality of imaging devices. In addition, one or more storage devices transmit AVC encoded data streams to the system over a network such as the Internet.

복수의 촬상 장치들 또는 하나 이상의 저장 장치들로부터 AVC 부호화 데이터 스트림을 수신하면, 시스템은 수신된 AVC 부호화 데이터 스트림을 처리하도록 구성된다. AVC 부호화 데이터 스트림의 처리가 수행되어 처리된 AVC 부호화 데이터 스트림들에서, 하나 이상의 서브셋들을 생성하고 하나 이상의 개별 영상들을 식별한다. 또한, 시스템은 서브셋들을, 예를 들면, MVC를 사용하여, MVC 부호화 데이터 스트림들로 부호화하도록 구성된다. MVC 부호화 데이터 스트림들은, 부호화된 비트 스트림들을 네트워크를 통해 다른 시스템(예를 들면, 사용자측에 있는 수신부)에 전달하는 동안에, 비트 레이트의 감소를 제공한다. 또한, 시스템은, 식별된 개별 영상들을 다른 시스템에 AVC 부호화 데이터 스트림들로서 전달하도록 구성된다.Upon receiving an AVC encoded data stream from a plurality of image capture devices or one or more storage devices, the system is configured to process the received AVC encoded data stream. Processing of the AVC encoded data stream is performed to generate one or more subsets and identify one or more individual images in the processed AVC encoded data streams. The system is also configured to encode the MVC encoded data streams using, for example, MVC. The MVC encoded data streams provide a reduction in bit rate during transmission of the encoded bit streams over a network to another system (e.g., a receiver on the user side). The system is also configured to deliver the identified individual images to another system as AVC encoded data streams.

다른 시스템 내의 디코더 모듈은 MVC 부호화 데이터 스트림들을 복호화하기 위한 MVC 디코더와, 개별 영상들에 대응하는 AVC 부호화 데이터 스트림들을 복호화하기 위한 AVC 디코더를 포함한다. 일단 복호화되면, MVC 부호화 데이터 스트림들과 AVC 부호화 데이터 스트림들을 복호화한 후 획득된 복수의 영상들은 사용자 측의 디스플레이 화면 상에 표시된다.The decoder module in the other system includes an MVC decoder for decoding MVC encoded data streams and an AVC decoder for decoding AVC encoded data streams corresponding to individual images. Once decoded, the plurality of images obtained after decoding the MVC encoded data streams and the AVC encoded data streams are displayed on the display screen of the user side.

이하, 도 1 내지 도 7을 참조하여 실시예들을 설명한다. 도면 내 유사한 참조 부호는 도면 전체에 걸쳐서 대응하는 구성들을 나타낸다. Hereinafter, embodiments will be described with reference to Figs. 1 to 7. Fig. Like reference numerals in the drawings denote corresponding structures throughout the drawings.

도 1은 본 발명의 실시예들에 따른 감소된 비트 레이트로 데이터의 스트리밍을 제공하는 멀티채널 비디오 스트리밍 환경(100)의 개략적인 구성을 도시한다. 1 illustrates a schematic configuration of a multi-channel video streaming environment 100 that provides streaming of data at a reduced bit rate in accordance with embodiments of the present invention.

실시예에서, 멀티채널 비디오 스트리밍 환경(100)은 기록된 영상들의 라이브 스트리밍을 위한 복수의 장치들(1041 내지 104n)로부터 AVC 부호화 데이터 스트림들을 수신하는 시스템(102)(예를 들면, 서버)을 포함한다.In an embodiment, a multi-channel video streaming environment 100 includes a system 102 (e. G., A server 102) that receives AVC encoded data streams from a plurality of devices 104 1 through 104 n for live streaming of recorded images. ).

실시예에서, 복수의 장치들(1041 내지 104n)은 라이브 영상들을 촬영하고, 라이브 영상들을 대응하는 AVC 부호화 데이터 스트림들로 부호화하여 시스템(102)으로 전송하는 복수의 촬상장치들을 포함한다.In an embodiment, the plurality of devices 104 1 through 104 n include a plurality of imaging devices that capture live images, encode the live images into corresponding AVC encoded data streams, and transmit the encoded images to the system 102.

실시예에서, 복수의 장치들(1041 내지 104n)은 복수의 촬상장치들에 의해 전송된 AVC 부호화 데이터 스트림들을 저장하고, AVC 부호화 데이터 스트림들을 네트워크를 통해 시스템(102)으로 전송하는 하나 이상의 저장 장치를 포함한다.In an embodiment, a plurality of devices 104 1 through 104 n may be used to store AVC encoded data streams transmitted by the plurality of imaging devices, and to transmit one or more AVC encoded data streams to the system 102 over the network Storage device.

또한, 시스템(102)은 수신된 AVC 부호화 데이터 스트림들을 처리하고, 데이터 스트림들을, 부호화 포맷으로, 복수의 장치들(1041 내지 104n)로부터 수신된 영상들의 스트리밍을 위한 시스템(106)(수신부로 기능하는 다른 시스템)으로 동시에 전송한다. 시스템(106)은 부호화 포맷으로 수신된 데이터 스트림들을 복호화한다. 또한, 시스템(106)은 데이터 스트림들의 복호화에 의해 얻어지는 영상들을 디스플레이 화면 상에 디스플레이한다. 예를 들면, 복수의 장치들(1041 내지 104n)은 감시 시스템 내 이웃하는 위치들에 설치되어 촬영한 영상들의 라이브 스트리밍을 제공하는 IP 카메라들일 수 있다. 이웃하는 위치들은 각 IP 카메라의 영상들 또는 카메라 뷰들이 중첩되도록 하거나 또는 중첩되지 않도록 하는 위치일 수 있다.The system 102 also processes the received AVC encoded data streams and provides the data streams in an encoding format to a system 106 for streaming of images received from the plurality of devices 104 1 to 104 n , To another system functioning as a " second " The system 106 decodes the data streams received in an encoded format. In addition, the system 106 displays the images obtained by decoding the data streams on the display screen. For example, the plurality of devices 104 1 through 104 n may be IP cameras installed in neighboring locations in the surveillance system to provide live streaming of the captured images. Neighboring locations may be locations that allow images or camera views of each IP camera to overlap or not overlap.

시스템(102)에 의해 복수의 장치들(1041 내지 104n)로부터 수신된 AVC 부호화 데이터 스트림들 각각은 각 촬상 장치에 의하여 촬영된 복수의 영상들에 대응한다. 예를 들어, AVC 부호화 데이터 스트림들은 AVC/H.264 표준을 기반으로 부호화된다. 시스템(102)은 수신된 AVC 부호화 데이터 스트림을 복호화하여 복수의 영상들을 획득하도록 구성된다. 또한, 시스템(102)은 복수의 영상들 내에서 상호연관된 영상들을 식별하고, 영상들 간의 콘텐츠 리던던시에 기초해서 하나 이상의 서브셋으로 그룹화하도록 구성된다. 그룹화는 선택된 1차 영상(들)에 대해 복수의 영상들 각각에 대한 상관계수를 계산하고 상관계수들을 소정 임계값과 비교하여 수행될 수 있다. 복수의 영상들 중 어떤 서브셋에도 병합되지 않은 영상들은 개별 영상으로 식별(인정)된다. 서브셋들의 형성은 도 5와 관련하여 이후에 설명한다.Each of the AVC encoded data streams received from the plurality of devices 104 1 through 104 n by the system 102 corresponds to a plurality of images taken by each imaging device. For example, AVC encoded data streams are encoded based on the AVC / H.264 standard. The system 102 is configured to decode the received AVC encoded data stream to obtain a plurality of images. The system 102 is also configured to identify images that are correlated within a plurality of images and to group them into one or more subsets based on content redundancy between images. The grouping may be performed by calculating a correlation coefficient for each of a plurality of images for the selected primary image (s) and comparing the correlation coefficients to a predetermined threshold value. Images that are not merged into any subset of the plurality of images are identified (recognized) as individual images. The formation of subsets is described below with respect to FIG.

또한, 시스템(102)은 서브셋 내의 연관된 영상들의 리던던시(중복)을 식별하고, 각 서브셋을 리던던시에 기초하여 MVC 부호화 데이터 스트림으로 부호화하도록 구성된다. 예를 들어, 어떤 MVC 부호화 표준도 MVC 부호화 데이터 스트림을 생성하기 위해 사용될 수 있다. MVC에서 식별된 서브셋들 각각의 부호화는 각각의 수신된 AVC 부호화 스트림들에 비해 더 적은 비트를 사용한다. 따라서, 식별된 서브셋들의 부호화를 위한 더 높은 압축은 복수의 영상들의 라이브 스트리밍에 필요한 전체 비트 레이트를 감소시킨다. 개별 영상으로 식별된 영상들은 동일한 수신 AVC 부호화 데이터 포맷을 이용하여 시스템(106)에 데이터 스트림으로서 전송된다. 그러나, 단일 MVC 부호화 데이터 스트림은 각 서브셋 마다 시스템(106)으로 전송된다. 따라서, 촬영된 영상들의 라이브 스트리밍을 위해 동시에 전송될 데이터 스트림들의 개수는 시스템(102)에 의해 형성된 서브셋들의 개수와 식별된 개별 영상들의 개수로 감소된다. In addition, the system 102 is configured to identify the redundancy of the associated images in the subset and to encode each subset into an MVC encoded data stream based on the redundancy. For example, any MVC encoding standard may be used to generate an MVC encoded data stream. The encoding of each of the subsets identified in the MVC uses fewer bits compared to each received AVC encoded stream. Thus, a higher compression for encoding of the identified subsets reduces the overall bitrate required for live streaming of a plurality of images. The images identified as individual images are transmitted as a data stream to the system 106 using the same received AVC encoded data format. However, a single MVC encoded data stream is transmitted to the system 106 for each subset. Thus, the number of data streams to be transmitted simultaneously for live streaming of captured images is reduced to the number of sub-sets formed by system 102 and the number of individual images identified.

시스템(102)은 이벤트 검출 시에만 그룹화를 수행하도록 구성된다. 이벤트는, 복수의 장치들(1041 내지 104n)로부터 AVC 부호화 데이터 스트림들을 맨 처음 수신하는 것, 또는 복수의 장치들(1041 내지 104n) 중 적어도 하나가 재가동하거나 또는 적어도 하나의 장치가 복수의 장치들(1041 내지 104n)에 추가되거나 또는 복수의 장치들(1041 내지 104n)로부터 제거될 때 복수의 장치들로부터 AVC 부호화 데이터 스트림들을 수신하는 것을 포함한다.The system 102 is configured to perform grouping only upon event detection. Event, is to first receive the AVC encoding a data stream from a plurality of devices (104 1 to 104 n), or at least one of the plurality of devices (104 1 to 104 n) is restarted, or at least one device when removed from the addition to the plurality of devices (104 1 to 104 n), or a plurality of devices (104 1 to 104 n) includes receiving a coded data AVC stream from a plurality of devices.

도 1은 멀티채널 비디오 스트리밍 환경(100)의 제한된 개요로 도시한 예시로서, 다른 실시예들이 이에 국한되는 것은 아니다. 각 모듈이나 구성요소에 제공된 라벨은 단지 예시적인 것이고 본 발명의 범위를 제한하지는 않는다. 또한, 한 개 이상의 모듈들이 본 발명의 범위를 벗어나지 않으면서 유사하거나 또는 실질적으로 유사한 기능들을 수행하도록 결합되거나 분리될 수 있다. 나아가, 환경(100)은 다양한 다른 모듈들 또는 구성요소들을 포함할 수 있는데, 이들은 서로 통신하기 위해 다른 하드웨어 또는 소프트웨어 구성요소들과 로컬 또는 원격으로 상호작용한다. 예를 들면, 구성요소는 제어기 또는 프로세서에서 실행하는 프로세스, 오브젝트, 실행가능한 프로세스, 실행 스레드(thread of execution), 프로그램, 또는 컴퓨터일 수 있지만, 이들에 국한되지 않는다. FIG. 1 is an illustration of a limited overview of a multi-channel video streaming environment 100; other embodiments are not limited in this regard. The labels provided for each module or component are exemplary only and are not intended to limit the scope of the invention. In addition, one or more modules may be combined or separated to perform similar or substantially similar functions without departing from the scope of the present invention. Further, the environment 100 may include various other modules or components, which interact locally or remotely with other hardware or software components to communicate with one another. For example, an element may be, but is not limited to, a process running on a controller or processor, an object, an executable process, a thread of execution, a program, or a computer.

도 2는 본 발명의 실시예에 따라, 서버로서 기능하는 시스템(102)의 복수의 구성요소들을 도시한다. FIG. 2 illustrates a plurality of components of a system 102 serving as a server, in accordance with an embodiment of the present invention.

도 2를 참조하면, 시스템(102)(예를 들어, 서버)은 본 발명의 기술 주제의 실시예에 따라 도시된다. 일 실시예에서, 시스템(102)은 적어도 하나의 프로세서(202), 입/출력(I/O) 인터페이스(204)(변경 가능한(configurable) 사용자 인터페이스), 메모리(208)를 포함할 수 있다. 2, a system 102 (e.g., a server) is depicted in accordance with an embodiment of the subject matter of the present invention. In one embodiment, system 102 may include at least one processor 202, an input / output (I / O) interface 204 (configurable user interface), and memory 208.

적어도 하나의 프로세서(202)는 하나 이상의 마이크로 프로세서, 마이크로 컴퓨터, 마이크로 컨트롤러, 디지털 신호 프로세서, 중앙 처리 장치, 상태 머신(state machines), 로직 회로들, 및/또는 동작 명령들에 기초하여 신호를 조작하는 임의의 장치들로 구현될 수도 있다. 다른 기능 중에서, 적어도 하나의 프로세서(202)는 메모리(208)에 저장된 컴퓨터 판독가능한 명령어들을 가져와서 실행하도록 구성된다.At least one processor 202 may be operable to manipulate signals based on one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuits, and / ≪ / RTI > Among other functions, at least one processor 202 is configured to fetch and execute computer-readable instructions stored in memory 208. [

I/O 인터페이스(204)는 다양한 소프트웨어 및 하드웨어 인터페이스들, 예를 들어, 웹 인터페이스, 그래픽 사용자 인터페이스 등을 포함할 수 있다. I/O 인터페이스(204)는 시스템(102)이 복수의 촬상 장치들(1041 to 104n) 및 시스템(106)과 상호작용하게 할 수도 있다. 또한, I/O 인터페이스(204)는 시스템(102)이 다른 컴퓨팅 장치들, 예를 들면, 웹 서버들 및 외부 데이터 서버들(미도시)과 통신하게 할 수도 있다. I/O 인터페이스(204)는, 예를 들어 LAN, 케이블 등과 같은 유선 네트워크들과 WLAN, 셀룰러망 또는 위성망과 같은 무선 네트워크들을 비롯하여, 다양한 종류의 네트워크와 프로토콜 유형 안에서 다중 통신을 용이하게 할 수도 있다. I/O 인터페이스(204)는 다수의 장치들을 서로 연결하거나 또는 다른 서버에 연결하기 위한 하나 이상의 포트들을 포함할 수도 있다. I / O interface 204 may include various software and hardware interfaces, such as a web interface, a graphical user interface, and the like. The I / O interface 204 may allow the system 102 to interact with the plurality of imaging devices 104 1 to 104 n and the system 106. The I / O interface 204 may also allow the system 102 to communicate with other computing devices, such as web servers and external data servers (not shown). The I / O interface 204 may facilitate multiple communications within various types of networks and protocol types, including wired networks such as LANs, cables, etc., and wireless networks such as WLAN, cellular or satellite networks . The I / O interface 204 may include one or more ports for connecting multiple devices to each other or to another server.

모듈(210)은 특정 태스크, 기능을 수행하거나 특정 추상 데이터형을 구현하는 루틴, 프로그램, 오브젝트, 구성요소, 데이터 구조 등을 포함한다. 일 구현 예에서, 모듈(210)은 복수의 모듈을 포함할 수 있다. The module 210 includes routines, programs, objects, components, data structures, etc. that perform particular tasks, functions, or implement particular abstract data types. In one implementation, the module 210 may comprise a plurality of modules.

송신 및 수신 모듈(212)은 AVC 부호화 데이터 스트림을 수신하고, 수신된 AVC 부호화 데이터 스트림을 처리한 후 다른 시스템(106)에 데이터 스트림들(MVC 부호화 데이터 스트림과 AVC 부호화 데이터 스트림)을 부호화된 포맷으로 송신한다. 복호화 모듈(214)은 수신된 AVC 부호화 데이터 스트림들을 복수의 영상들로 복호화한다. 또한, 복수의 영상들은, 복수의 영상들 간의 계산된 상관계수들에 기초하여, 하나 이상의 서브셋을 생성하는 리던던시 결정 모듈 및 그룹화 모듈(216)에 제공된다. 또한, 리던던시 결정 모듈 및 그룹화 모듈(216)은 병합되지 않고 남아 있는 개별 영상들을 식별한다. 부호화 모듈(218)은 각 서브셋을 대응하는 MVC 부호화 데이터 스트림으로 부호화하고 식별된 개별 영상들에 대응하는 AVC 부호화 데이터 스트림들을 선택한다. 또한, MVC 부호화 데이터 스트림들과 AVC 부호화 데이터 스트림들은 송신 및 수신 모듈(212)에 제공되고, 다음으로 시스템(106)으로 전송된다. 모듈들(210)은 시스템(102)의 애플리케이션들과 기능들을 지원하는 프로그램들이나 코드화된 명령어들을 포함할 수 있다.The transmission and reception module 212 receives the AVC encoded data stream, processes the received AVC encoded data stream, and transmits data streams (MVC encoded data stream and AVC encoded data stream) to another system 106 in a coded format . The decoding module 214 decodes the received AVC encoded data streams into a plurality of images. In addition, the plurality of images are provided to the redundancy determination module and the grouping module 216, which generate one or more subsets based on the calculated correlation coefficients between the plurality of images. In addition, the redundancy determination module and the grouping module 216 identify individual images that are not merged. Encoding module 218 encodes each subset into a corresponding MVC encoded data stream and selects AVC encoded data streams corresponding to the identified individual images. In addition, the MVC encoded data streams and the AVC encoded data streams are provided to the transmit and receive module 212 and then to the system 106. Modules 210 may include programs that support applications and functions of system 102 or coded instructions.

데이터부(220)는 하나 이상의 모듈들(210)에 의해 처리되고, 수신되고, 그리고 생성된 데이터를 저장하기 위한 저장소로서 기능한다. 데이터부(220)는 데이터베이스(222)와 그 외 기타 데이터부(224)를 포함할 수도 있다. 기타 데이터부(224)는 하나 이상의 모듈들(210)의 실행의 결과로서 생성되는 데이터를 포함할 수 있다.The data portion 220 functions as a store for storing data processed, received, and generated by one or more modules 210. The data portion 220 may include a database 222 and other data portions 224. Other data portion 224 may include data generated as a result of the execution of one or more modules 210.

도 2는 시스템(102)의 제한된 개요로 도시하는 것으로, 다른 실시예들은 이에 한정되지 않는다. 각각의 모듈 또는 구성 요소에 제공 라벨은 단지 설명을 위한 것이며 본 발명의 범위를 제한하지 않는다. 또한, 하나 이상의 모듈들은 본 발명의 범위를 벗어나지 않으면서 유사하거나 실질적으로 유사한 기능들을 수행하기 위해 결합되거나 분리될 수 있다. 또한, 시스템(102)은 다양한 다른 모듈들이나 또는 구성요소들을 포함할 수 있는데, 그들은 서로 통신하기 위해 다른 하드웨어 또는 소프트웨어 구성 요소들과 함께 로컬 또는 원격으로 상호작용한다. 예를 들어, 구성요소는 제어기 또는 프로세서에서 실행되는 프로세스, 객체, 실행가능 프로세스, 실행 스레드, 프로그램 또는 컴퓨터일 수 있으나, 이들에 한정되지는 않는다.2 is shown as a limited overview of system 102, other embodiments are not so limited. The labels provided to each module or component are for illustrative purposes only and do not limit the scope of the invention. Also, one or more modules may be combined or separated to perform similar or substantially similar functions without departing from the scope of the present invention. In addition, the system 102 may include various other modules or components, which interact locally or remotely with other hardware or software components to communicate with one another. For example, an element may be, but is not limited to, a process, an object, an executable process, an execution thread, a program, or a computer running on a controller or processor.

도 3은 본 발명의 실시예들에 따라, 수신부로 기능하는 시스템(106)의 복수의 구성요소들을 도시한다. FIG. 3 illustrates a plurality of components of a system 106 serving as a receiver, in accordance with embodiments of the present invention.

도 3을 참조하면, 시스템(106)은 본 발명의 기술주제의 실시예에 따라 예시되어 있다. 일 실시예에서, 시스템(106)은 적어도 하나의 프로세서(302), 입/출력(I/O) 인터페이스(304)(변경 가능한 사용자 인터페이스), 메모리(308)를 포함할 수 있다. Referring to Figure 3, the system 106 is illustrated in accordance with an embodiment of the technical subject matter of the present invention. In one embodiment, the system 106 may include at least one processor 302, an input / output (I / O) interface 304 (a changeable user interface), and a memory 308.

적어도 하나의 프로세서(302)는 하나 이상의 마이크로 프로세서, 마이크로 컴퓨터, 마이크로 컨트롤러, 디지털 신호 프로세서, 중앙 처리 장치, 상태 머신, 로직 회로들, 및/또는 동작 명령어들에 기초하여 신호를 조작하는 임의의 장치들로 구현될 수 있다. 다른 기능들 중에서, 적어도 하나의 프로세서(302)는 메모리(308)에 저장된 컴퓨터 판독가능한 명령어들을 가져와서 실행하도록 구성된다.At least one processor 302 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuits, and / . ≪ / RTI > Among other functions, at least one processor 302 is configured to fetch and execute computer-readable instructions stored in memory 308. [

I/O 인터페이스(304)는 다양한 소프트웨어 및 하드웨어의 인터페이스들, 예를 들어, 웹 인터페이스, 그래픽 사용자 인터페이스 등을 포함할 수 있다. I/O 인터페이스(304)는 시스템(106)이 시스템(102)과 상호 작용할 수 있도록 해준다. 또한, I/O 인터페이스(304)는 시스템(106)이 웹 서버 및 외부 데이터 서버(미도시)와 같은 다른 컴퓨팅 장치와 통신하는 것을 가능하게 할 수 있다. I/O 인터페이스(304)는, 예를 들어, LAN, 케이블 등의 유선 네트워크들과, 예를 들어, WLAN, 셀룰러망, 또는 위성망과 같은 무선 네트워크들을 비롯하여, 여러 가지 다양한 네트워크들과 프로토콜 유형들 안에서 다중 통신을 용이하게 할 수 있도록 할 수 있다. I/O 인터페이스(304)는 다수의 장치들을 서로 연결하거나 또는 다른 서버에 연결하기 위한 하나 이상의 포트들을 포함할 수 있다.I / O interface 304 may include various software and hardware interfaces, such as a web interface, a graphical user interface, and the like. The I / O interface 304 allows the system 106 to interact with the system 102. The I / O interface 304 may also enable the system 106 to communicate with other computing devices, such as a web server and an external data server (not shown). The I / O interface 304 may include various types of networks and protocol types, including, for example, wired networks such as LANs and cables, and wireless networks such as, for example, WLANs, cellular networks, So that multiple communications can be facilitated. The I / O interface 304 may include one or more ports for connecting multiple devices to one another or to another server.

모듈(310)은 특정 태스크들, 기능들을 수행하거나 또는 특정 추상 데이터형을 구현하는 루틴들, 프로그램들, 오브젝트들, 구성요소들, 데이터 구조들 등을 포함한다. 일 구현 예에서, 모듈(310)은 복수의 모듈을 포함할 수 있다. 수신기 모듈(312)은, 시스템(102)에 의해 전송된, 부호화된 포맷의 데이터 스트림들을 수신한다. 스트림 식별기 모듈(314)은 서브셋들에 대응하는 MVC 부호화 데이터 스트림들과, 개별 영상들에 대응하는 AVC 부호화 데이터 스트림들을 식별한다. MVC 디코더 모듈(316)은 MVC 부호화 데이터 스트림들을 서브셋 형성 동안에 서브셋 내에 포함된 영상들에 대응하는 영상들로 복호화한다. AVC 디코더 모듈(318)은 수신된 AVC 부호화 데이터 스트림들을 대응하는 영상들로 복호화한다. 예를 들어, AVC 부호화 데이터 스트림들이 AVC/H.264 부호화 표준을 기반으로 하는 경우, AVC 디코더 모듈(318)은 AVC/H.264 표준 기반의 디코더일 수 있다. MVC 디코더 모듈(316) 및 AVC 디코더 모듈(318)로부터 제공되는 복수의 영상들은 디스플레이 모듈(320)에 의해 디스플레이 화면(108) 상에서 디스플레이된다. 모듈들(310)은 시스템(106)의 애플리케이션들과 기능들을 지원하는 프로그램들 또는 코드화된 명령어들을 포함할 수 있다. The module 310 includes routines, programs, objects, components, data structures, etc. that perform particular tasks, functions, or implement particular abstract data types. In one implementation, module 310 may comprise a plurality of modules. Receiver module 312 receives data streams in an encoded format transmitted by system 102. The stream identifier module 314 identifies the MVC encoded data streams corresponding to the subsets and the AVC encoded data streams corresponding to the individual images. The MVC decoder module 316 decodes the MVC encoded data streams into images corresponding to the images contained in the subset during subset formation. The AVC decoder module 318 decodes the received AVC encoded data streams into corresponding images. For example, if the AVC encoded data streams are based on the AVC / H.264 encoding standard, the AVC decoder module 318 may be a decoder based on the AVC / H.264 standard. A plurality of images provided from the MVC decoder module 316 and the AVC decoder module 318 are displayed on the display screen 108 by the display module 320. The modules 310 may include programs or coded instructions that support the applications and functions of the system 106.

데이터부(322)는, 하나 이상의 모듈들(310)에 의해 처리되고, 수신되고, 그리고 생성된 데이터를 저장하기 위한 저장소로서 기능한다. 데이터부(322)는 또한 데이터베이스(324)와 그 외 기타 데이터부(326)를 포함할 수 있다. 기타 데이터부(326)는 하나 이상의 모듈들(310)의 실행의 결과로서 생성되는 데이터를 포함할 수 있다.The data portion 322 functions as a repository for storing data processed, received, and generated by one or more modules 310. The data portion 322 may also include a database 324 and other data portions 326. Other data portion 326 may include data generated as a result of execution of one or more modules 310. [

도 3은 시스템(106)의 제한된 개요를 도시하는 것으로, 다른 실시예들은 이에 한정되지 않는다. 각각의 모듈 또는 구성 요소에 제공된 라벨들은 단지 설명을 위한 것이며 본 발명의 범위를 제한하지는 않는다. 또한, 하나 이상의 모듈들은 본 발명의 범위를 벗어나지 않으면서 유사하거나 실질적으로 유사한 기능을 수행하기 위해 결합 또는 분리될 수 있다. 또한, 시스템(106)은 다양한 다른 모듈들이나 또는 구성요소들을 포함할 수 있는데, 그들은 서로 통신하기 위해 다른 하드웨어 또는 소프트웨어 구성 요소들과 함께 로컬 또는 원격으로 상호작용한다. 예를 들어, 구성 요소는 제어기 또는 프로세서에서 실행되는 프로세스, 객체, 실행가능한 프로세스, 실행 스레드, 프로그램 또는 컴퓨터일 수 있지만, 그것들에 한정되지는 않는다.3 illustrates a limited overview of system 106, other embodiments are not so limited. The labels provided to each module or component are for illustrative purposes only and are not intended to limit the scope of the invention. Also, one or more modules may be combined or separated to perform similar or substantially similar functions without departing from the scope of the present invention. In addition, the system 106 may include various other modules or components, which interact locally or remotely with other hardware or software components to communicate with one another. For example, a component may be, but is not limited to, a process, an object, an executable process, an execution thread, a program, or a computer running on a controller or processor.

도 4a는 본 발명의 일 실시예에 따라, 시스템(102)에 의한 멀티채널 비디오 스트리밍을 위한 방법(400)을 나타내는 흐름도이다. 4A is a flow diagram illustrating a method 400 for multi-channel video streaming by system 102, in accordance with an embodiment of the present invention.

상기 방법(400)은 복수의 장치들 각각으로부터 AVC 부호화 데이터 스트림들을 수신하는 단계(단계 402)를 포함한다. 예를 들어, AVC 부호화 데이터 스트림은 부호화에 관한 AVC/H.264 표준에 기초할 수 있다. The method 400 includes receiving AVC encoded data streams from each of a plurality of devices (step 402). For example, the AVC encoded data stream may be based on the AVC / H.264 standard for encoding.

상기 방법(400)은 복수의 AVC 부호화 데이터 스트림들을 복호화하여 복수의 영상들을 획득하는 단계(단계 404)를 포함한다. The method 400 includes decoding a plurality of AVC encoded data streams to obtain a plurality of images (step 404).

상기 방법(400)은 복수의 영상들 간의 컨텐츠 리던던시에 기초하여 복수의 영상들을 서브셋 및/또는 개별 영상들로 그룹화하는 단계(단계 406)를 포함한다. 콘텐츠 리던던시는 복수의 영상들 중에서 영상들에 관한 상관계수를 계산함으로써 식별된다. 복수의 영상들을 서브셋으로 그룹화하는 것은 도 5를 참조하여 상세히 설명한다. The method 400 includes grouping (step 406) a plurality of images into a subset and / or individual images based on content redundancy between the plurality of images. The content redundancy is identified by calculating correlation coefficients for images among a plurality of images. Grouping a plurality of images into a subset is described in detail with reference to FIG.

상기 방법(400)은 MVC를 사용하여 각 서브셋을 MVC 부호화 데이터 스트림으로 부호화하여 각 서브셋에 대하여 부호화된 포맷을 생성하는 단계(단계 408)를 포함한다. The method 400 includes encoding each subset to an MVC encoded data stream using MVC to generate an encoded format for each subset (step 408).

상기 방법(400)은 이벤트의 검출 시에만 서브셋을 생성하기 위한 그룹화를 수행할 수 있다. 이벤트는 복수의 장치들(1041 to 104n)로부터 AVC 부호화 데이터 스트림들을 처음으로 수신하거나, 또는 복수의 장치들(1041 to 104n)의 적어도 하나가 다시 시작하거나 또는 적어도 하나의 장치가 복수의 장치들(1041 to 104n)에 추가되거나 또는 복수의 장치들(1041 to 104n)로부터 제거될 때 복수의 장치들(1041 to 104n)로부터 AVC 부호화 데이터 스트림들을 수신하는 것을 포함한다.The method 400 may perform grouping to generate a subset only upon detection of an event. Event may comprise a plurality of devices (104 1 to 104 n) from the AVC encoding data streams first received, or a plurality of devices (104 1 to 104 n) a plurality, at least one is started or the at least one device again of of the device (104 1 to 104 n) includes adding or receiving AVC encoded data streams from a plurality of devices (104 1 to 104 n) when removed from the plurality of devices (104 1 to 104 n) to do.

상기 방법(400)은 복수의 장치들로부터 수신된 복수의 부호화 데이터 스트림들로부터, 개별 영상들에 대응하는 AVC 부호화 데이터 스트림들을 선택하는 단계(단계 410)를 포함한다.The method 400 includes selecting (step 410) AVC encoded data streams corresponding to individual images from a plurality of encoded data streams received from a plurality of devices.

상기 방법(400)은 서브셋들과 개별 영상들을 부호화된 포맷으로 시스템(106)(다른 시스템)에 전송하는 단계(단계 412)를 포함한다. 상기 방법(400)의 다양한 액션(actions), 작용(acts), 블록, 단계 등이, 서로 다른 순서로 또는 동시에 또는 제시된 순서로 수행될 수 있다. 또한, 일부 실시예에서, 발명의 범위를 벗어나지 않으면서, 몇몇 액선, 작용, 블록, 단계 등이 생략, 부가, 변형, 스킵될 수 있다. The method 400 includes transmitting subsets and individual images to the system 106 (another system) in an encoded format (step 412). The various actions, acts, blocks, steps, etc. of the method 400 may be performed in different orders or simultaneously, or in the order presented. Also, in some embodiments, some liquids, actions, blocks, steps, etc. may be omitted, added, modified, or skipped without departing from the scope of the invention.

일 실시예에서, 도 1과 도 2에 도시된 시스템(102)은 단계 402 내지 단계 412를 수행하도록 구성된다.In one embodiment, the system 102 shown in Figures 1 and 2 is configured to perform steps 402 through 412.

도 4b는 본 발명의 일 실시예에 따라, 상기 방법(400)에 의해 달성된 비트 레이트의 감소를 나타내는 예를 도시한다. 상기 방법(400)은 데이터 스트림들을 시스템(102)에서 시스템(106)으로 전송하는 동안에 데이터 스트림들의 비트 레이트를 감소시키고, 전송 시 대역폭 개선을 제공한다. 실험 예들은, 카메라 뷰들(복수의 영상들)에서 콘텐츠-유사 서브셋을 찾아내고 MVC를 이용하여 그들을 함께 부호화함으로써 대역폭에서 얻어지는 이득을 강조하기 위한 것이다. 도 4b는 하기 사례 2의 설명과 결부하여 특정적으로 사용되는 감시 시스템 내의 여러 위치에 설치된 IP 카메라들(1 내지 8)에 의해 촬영된 카메라 뷰들(0 내지 7)을 예시한다.FIG. 4B illustrates an example illustrating a reduction in bit rate achieved by the method 400, in accordance with an embodiment of the present invention. The method 400 reduces the bit rate of the data streams during transmission of the data streams from the system 102 to the system 106 and provides bandwidth improvements in transmission. Experimental examples are to highlight a gain in bandwidth by locating a content-like subset in camera views (a plurality of images) and encoding them together using MVC. FIG. 4B illustrates camera views (0 to 7) photographed by IP cameras 1 to 8 installed at various locations in a surveillance system used in conjunction with the description of Case 2 below.

사례 1: 두 대의 IP 카메라는 카메라 시야(a field of view)가 중첩하지 않는 것으로 간주된다. 비중첩 카메라 뷰들은 분석되어, 배경과 텍스쳐의 유사성 때문에 콘텐츠 리던던시를 갖는 것으로 발견된다. 두 개의 비중첩 카메라 뷰들의 MVC 부호화는 각각의 원래의 AVC 부호화 비디오들(각 카메라로부터 얻어지는 부호화 데이터 스트림들)에 비해 하기와 같은 대역폭 이득을 제공한다: Case 1 : Two IP cameras are considered not to have a field of view overlap. Non-overlapping camera views are analyzed and found to have content redundancy due to the similarity of background and texture. The MVC coding of the two non-overlapping camera views provides a bandwidth gain as compared to each of the original AVC encoded videos (the encoded data streams obtained from each camera): < RTI ID = 0.0 >

뷰 0 - 카메라 1로부터 얻어지는 AVC 부호화 데이터 스트림, VGA, 30fps, 120 프레임, 스트림의 크기: 381.071kb, 비트 레이트: 762 kbpsView 0 - AVC encoded data stream obtained from camera 1, VGA, 30 fps, 120 frames, stream size: 381.071 kb, bit rate: 762 kbps

뷰 1 - 카메라 2로부터 얻어지는 AVC 부호화 데이터 스트림, VGA, 30fps, 120 프레임, 스트림의 크기: 334.876kb, 비트 레이트: 669 kbpsView 1 - AVC encoded data stream obtained from camera 2, VGA, 30 fps, 120 frames, stream size: 334.876 kb, bit rate: 669 kbps

따라서, 각 데이터 스트림들에 대한 총 대역폭(kb기준으로): 715.947kbThus, the total bandwidth (in kb) for each data stream: 715.947 kb

MVC 부호화 데이터 스트림 - (슬라이스용 QP는 28로 설정), 120 프레임, 스트림의 크기: 358.53kb, 비트 레이트: 716.53 kbps, 그리고 대역폭 개선 인자(factor): 1.996896MVC encoded data stream - (QP for slice set to 28), 120 frames, stream size: 358.53 kb, bit rate: 716.53 kbps, and bandwidth factor: 1.996896

사례 2: 다른 각도에서 중첩하는 뷰(카메라 뷰 0 내지 7)를 갖는 여덟 대의 중첩 IP 카메라들. 모든 여덟 대의 카메라 뷰들은 제안된 시스템(102)의 "서브셋 그룹 결정"(방법 단계 406)을 이용하여 처리된다. 리던던시 메트릭(redundancy metric)의 낮은 임계값은 컨텐츠-유사 카메라 뷰들의 서브셋들을 형성함에 있어서 유지된다. 모든 여덟 대의 카메라 뷰들은 이와 같은 특정한 경우에 동일한 하나의 서브셋과 MVC 스트림을 형성하는 것으로 된다. Example 2: Eight overlapping IP cameras with overlapping views (camera views 0 to 7) at different angles. All eight camera views are processed using the "subset group determination" (method step 406) of the proposed system 102. The lower threshold of the redundancy metric is maintained in forming subsets of the content-like camera views. All eight camera views form one and the same subset and MVC stream in this particular case.

카메라 뷰 0 - 카메라 1로부터의 AVC 부호화 데이터 스트림, VGA, 25fps, 120 프레임, 스트림 크기: 256.951 kbCamera view 0 - AVC encoded data stream from camera 1, VGA, 25 fps, 120 frames, stream size: 256.951 kb

카메라 뷰 1 - 카메라 2로부터의 AVC 부호화 데이터 스트림, VGA, 25fps, 120 프레임, 스트림 크기: 225.250 kbCamera view 1 - AVC encoded data stream from camera 2, VGA, 25 fps, 120 frames, stream size: 225.250 kB

카메라 뷰 2 - 카메라 3으로부터의 AVC 부호화 데이터 스트림, VGA, 25fps, 120 프레임, 스트림 크기: 217.190 kbCamera view 2 - AVC encoded data stream from camera 3, VGA, 25 fps, 120 frames, stream size: 217.190 kb

카메라 뷰 3 - 카메라 4로부터의 AVC 부호화 데이터 스트림, VGA, 25fps, 120 프레임, 스트림 크기: 254.212 kbCamera view 3 - AVC encoded data stream from camera 4, VGA, 25 fps, 120 frames, stream size: 254.212 kb

카메라 뷰 4 - 카메라 5로부터의 AVC 부호화 데이터 스트림, VGA, 25fps, 120 프레임, 스트림 크기: 213.709 kb Camera view 4 - AVC encoded data stream from camera 5, VGA, 25 fps, 120 frames, stream size: 213.709 kb

카메라 뷰 5 - 카메라 6으로부터의 AVC 부호화 데이터 스트림, VGA, 25fps, 120 프레임, 스트림 크기: 210.114 kb Camera view 5 - AVC encoded data stream from camera 6, VGA, 25 fps, 120 frames, stream size: 210.114 kb

카메라 뷰 6 - 카메라 7로부터의 AVC 부호화 데이터 스트림, VGA, 25fps, 120 프레임, 스트림 크기: 192.785 kb Camera view 6 - AVC encoded data stream from camera 7, VGA, 25 fps, 120 frames, stream size: 192.785 kb

카메라 뷰 7 - 카메라 8로부터의 AVC 부호화 데이터 스트림, VGA, 25fps, 120 프레임, 스트림 크기: 228.930 kb Camera view 7 - AVC encoded data stream from camera 8, VGA, 25 fps, 120 frames, stream size: 228.930 kb

각 카메라의 뷰가 독립적인 스트림(kb 기준으로)으로서 간주되는 경우의 전체 대역폭: 1799.141 kb. Overall bandwidth when each camera view is considered as an independent stream (in kb basis): 1799.141 kb.

그러나 모든 카메라 뷰는 단일의 서브셋의 일부이고, 상기 단일 서브셋에 대한 하나의 MVC 스트림만이 생성되어 부호화된 포맷의 데이터 스트림이 시스템(106)에 전송된다. However, all camera views are part of a single subset, and only one MVC stream for the single subset is generated and a data stream of the encoded format is transmitted to the system 106.

부호화 MVC 스트림 - (각 뷰와 같은 QP), 120 프레임, 스트림의 크기: 1309.964 kb, 따라서 대역폭 개선 인자: 1.373428.Encoded MVC stream - (QP like each view), 120 frames, stream size: 1309.964 kb, thus bandwidth improvement factor: 1.373428.

도 5는 본 발명의 일 실시예에 따른 선택된 1차 영상(들)에 대하여 복수의 영상들 각각에 대한 상관계수를 계산함으로써 복수의 영상들 간의 콘텐츠 리던던시를 식별하여, 복수의 영상들을 하나 이상의 서브셋들로 그룹화하는 방법을 나타내는 흐름도이다. 5 illustrates a method for identifying a content redundancy between a plurality of images by calculating a correlation coefficient for each of a plurality of images for a selected primary image (s) according to an embodiment of the present invention, Lt; RTI ID = 0.0 > a < / RTI >

상기 방법(500)은 복수의 장치들(1041 내지 104n)로부터 수신된 복수의 AVC 부호화 데이터 스트림들을 복호화함으로써 획득된 복수의 영상들의 개수(N)를 식별하는 단계(단계 502)를 포함한다. The method 500 includes identifying 502 the number N of images obtained by decoding a plurality of AVC encoded data streams received from a plurality of devices 104 1 through 104 n .

상기 방법(500)은 복수의 영상들(N)로부터 하나의 영상을, 현재의 1차 영상(current primary image)으로서 선택하여 서브셋을 생성하는 단계(단계 504)를 포함한다. The method 500 includes selecting a single image from a plurality of images N as a current primary image to generate a subset (step 504).

상기 방법(500)은 N개의 영상들 내에서 2차 영상으로서 선택될 수 있는 임의의 영상의 가용 여부를 체크하는 단계(단계 506)를 포함한다. The method 500 includes checking (step 506) whether any images that can be selected as the secondary images within the N images are available.

가능하다면, 상기 방법(500)은 1차 영상을 참조하여 2차 영상의 상관계수를 계산하여 2차 영상의 콘텐츠 기반 리던던시를 결정하는 단계(단계 508)를 포함한다. If possible, the method 500 includes determining a content-based redundancy of the secondary image (step 508) by calculating a correlation coefficient of the secondary image with reference to the primary image.

상기 방법(500)은 계산된 상관계수가 미리 정의된 값보다 크거나 같은지 여부를 체크하는 단계(단계 510)를 포함한다. The method 500 includes checking whether the calculated correlation coefficient is greater than or equal to a predefined value (step 510).

만약 상관계수가 미리 정의된 값보다 크거나 같다면, 상기 방법(500)은 2차 영상을 현재의 1차 영상과 연관되어 있는 서브셋에 추가하는 단계(단계 512)를 포함한다. If the correlation coefficient is greater than or equal to a predefined value, the method 500 includes adding a secondary image to a subset associated with the current primary image (step 512).

상기 방법(500)은 현재의 서브셋으로의 추가를 위해, 단계 506 내지 단계 512를 반복 수행하여 복수의 영상들 내의 모든 가용한 그룹화되지 않은/병합되지 않은 영상을 스캔한다. The method 500 repeats steps 506 through 512 to scan for all available ungrouped / unmerged images in the plurality of images, for addition to the current subset.

일단 복수의 영상들이 모두 스캔되면, 상기 방법(500)은 병합되지 않고 남아있는 영상들로부터 다음의 서브셋이 형성될 수 있는지 여부를 확인한다. Once all of the images have been scanned, the method 500 determines whether the next subset can be formed from the remaining images that are not merged.

상기 방법(500)은 현재의 순간에 병합되지 않은 영상의 개수(N')를 식별하는 단계(단계 514) 및 N은 N'와 같은지 여부를 체크하는 단계(단계 516)를 포함한다.The method 500 includes a step 514 of identifying the number N 'of images that have not been merged at the current instant (step 514) and checking whether N is equal to N' (step 516).

만약 N이 N'과 같지 않다면, 상기 방법(500)은 N의 값을 N'으로 설정하고(단계 518), 다음 서브셋이 형성될 수 있는지 여부를 체크하기 위해 단계 504부터 516까지를 반복한다. If N is not equal to N ', the method 500 sets the value of N to N' (step 518) and repeats steps 504 through 516 to check whether the next subset can be formed.

일단 단계 504에서 516까지가 반복되고 모든 가능한 서브셋들이 형성되고 나면, 상기 방법(500)은 그룹화 처리를 종료하고, 병합되지 않은 영상들을 개별 영상으로서 식별하는 단계(단계 520)를 포함한다.Once steps 504 through 516 are repeated and all possible subsets are formed, the method 500 ends the grouping process and includes identifying (step 520) unmerged images as separate images.

상기 방법(500)의 다양한 액션(actions), 작용(acts), 블록, 단계 등이, 서로 다른 순서로 또는 동시에 또는 제시된 순서로 수행될 수 있다. 또한, 일부 실시예에서, 발명의 범위를 벗어나지 않으면서, 몇몇 액션, 작용, 블록, 단계 등이 생략, 부가, 변형, 스킵될 수 있다. The various actions, acts, blocks, steps, etc. of the method 500 may be performed in different orders or simultaneously or in the order presented. Furthermore, in some embodiments, some actions, acts, blocks, steps, etc., may be omitted, added, modified, or skipped, without departing from the scope of the invention.

도 6은 본 발명의 일 실시예에 따른 수신부(106)에 의해 멀티채널 비디오 스트리밍을 수신하는 방법을 나타내는 흐름도이다. 6 is a flowchart illustrating a method of receiving multi-channel video streaming by a receiving unit 106 according to an embodiment of the present invention.

상기 방법(600)은 시스템(102)(예를 들어, 서버)으로부터의 데이터 스트림을 부호화 포맷으로 수신하는 단계(단계 602)를 포함한다. 부호화 포맷으로 수신된 데이터 스트림들은 MVC 부호화 데이터 스트림들 및/또는 AVC 부호화 데이터 스트림들을 포함한다. 수신된 MVC 부호화 데이터 스트림들의 개수는 시스템(102)에서 생성된 서브셋들의 개수와 같다. AVC 부호화 데이터 스트림들의 개수는 시스템(102)에서 식별된 개별 영상들의 개수와 같다. 전술한 바와 같이, 각 MVC 부호화 데이터 스트림은 서로 연관되어 있는 복수의 영상들을 포함하는 서브셋에 대응하고, 각 AVC 부호화 데이터 스트림은 어떤 서브셋에도 포함되지 못한 개별 영상에 대응한다. The method 600 includes receiving a data stream from the system 102 (e.g., a server) in an encoded format (step 602). The data streams received in the encoded format include MVC encoded data streams and / or AVC encoded data streams. The number of received MVC encoded data streams is equal to the number of subsets generated in system 102. The number of AVC encoded data streams is equal to the number of individual images identified in system 102. As described above, each MVC encoded data stream corresponds to a subset that includes a plurality of images associated with each other, and each AVC encoded data stream corresponds to an individual image that is not included in any subset.

상기 방법(600)은, 수신부에 의해, 시스템(102)으로부터 수신된 부호화 데이터 스트림들 내의 MVC 부호화 데이터 스트림들과 AVC 부호화 데이터 스트림들을 식별하는 단계(단계 604)를 포함한다. The method 600 includes identifying (step 604) MVC encoded data streams and AVC encoded data streams in encoded data streams received from the system 102 by a receiver.

상기 방법(600)은, 수신부에 의해, MVC 부호화 데이터 스트림들은 MVC 디코더(316)를 사용하여 복호화하고 AVC 부호화 데이터 스트림들은 AVC 디코더 모듈(318)에 의해 복호화하여 복수의 영상들을 획득하는 단계(단계 606)를 포함한다.The method 600 includes the steps of receiving, by a receiver, MVC encoded data streams using an MVC decoder 316 and decoding AVC encoded data streams using an AVC decoder module 318 to obtain a plurality of images 606).

상기 방법(600)은 디스플레이 화면 상에 복수의 영상들을 디스플레이하는 단계(단계 608)를 포함한다.The method 600 includes displaying a plurality of images on a display screen (step 608).

일 실시예에서, 상기 방법(600)의 단계 602 내지 단계 608은 시스템(106)에 의해 수행된다.In one embodiment, steps 602 through 608 of the method 600 are performed by the system 106.

상기 방법(600)의 다양한 액션(actions), 작용(acts), 블록, 단계 등이, 서로 다른 순서로 또는 동시에, 또는 제시된 순서로 수행될 수 있다. 또한, 일부 실시예에서, 발명의 범위를 벗어나지 않으면서, 몇몇 액션, 작용, 블록, 단계 등이 생략, 부가, 변형, 스킵될 수도 있다. The various actions, acts, blocks, steps, etc. of the method 600 may be performed in different orders or simultaneously, or in the order presented. Also, in some embodiments, some actions, acts, blocks, steps, etc., may be omitted, added, modified, or skipped, without departing from the scope of the invention.

아래의 예시적인 사례들은 사용자 측의 시스템(106)의 복호화 성능의 향상을 나타낸다. 단일의 MVC 스트림을 시스템(102)로부터 부호화된 포맷으로 데이터 스트림으로서 수신하는 시스템(106)은 또한 MVC 디코더 모듈(316) 및 AVC 디코더 모듈(318)을 포함하는 디코더의 개선된 성능을 제공한다. 특히 사례 2(도 4b에 도시됨)의 경우, 기존 방법들이 사용하는 것과 같은 다중의 독립적인 AVC 스트림들을 복호화하는 것과 달리, MVC 디코더 모듈은 수신된 단일 MVC 스트림을 복호화한다. 단순화를 위해, 단 두 개의 카메라 뷰를 포함하는 서브셋으로부터의 MVC 단일 스트림에 관한 사용자 측에서의 시스템(106)의 복호화 성능은 하기에서 설명된다:The following illustrative examples illustrate an improvement in the decryption performance of the system 106 on the user side. The system 106 for receiving a single MVC stream as a data stream in an encoded format from the system 102 also provides improved performance of the decoder including the MVC decoder module 316 and the AVC decoder module 318. [ Especially in case 2 (shown in FIG. 4B), the MVC decoder module decodes the received single MVC stream, as opposed to decoding multiple independent AVC streams such as those used by existing methods. For simplicity, the decoding performance of the system 106 at the user side with respect to a single MVC stream from a subset comprising only two camera views is described below:

성능 추정은 JM18.4 기준 디코더(reference decoder)를 사용하여 수행된다. JM에 의한 기존 방법에서 AVC 스트림들로서 수신된 두 개의 독립적인 카메라 뷰를 복호화하는 데 걸린 시간은 다음과 같다:(스트림들은 병렬로 실행되지 않음)Performance estimation is performed using a JM18.4 reference decoder. The time taken to decode the two independent camera views received as AVC streams in the existing method by JM is as follows: (the streams are not executed in parallel)

카메라 뷰 0(VGA, 10 프레임) - 98 msCamera view 0 (VGA, 10 frames) - 98 ms

카메라 뷰 1(VGA, 10 프레임) - 93 msCamera view 1 (VGA, 10 frames) - 93 ms

2개의 AVC 스트림의 총 복호화 시간: 191 ms Total decoding time of two AVC streams: 191 ms

그러나, 상기 방법(600)에 의해 제안되고 시스템(106)에 의해 구현된 바와 같이 JM에 의해 위의 2개의 뷰의 MVC 스트림을 복호화하는 데 걸린 시간은 다음과 같다:However, the time taken to decode the MVC stream of the above two views by the JM as proposed by the method 600 and implemented by the system 106 is as follows:

단일 MVC 스트림의 복호화 시간: 129msDecryption time of a single MVC stream: 129ms

성능에서의 이득: 1.48062 배Gain in performance: 1.48062 times

도 7은 본 발명의 일 실시예에 따른 멀티채널 비디오 스트리밍 방법을 구현하는 컴퓨팅 환경을 도시한다. Figure 7 illustrates a computing environment for implementing a multi-channel video streaming method in accordance with an embodiment of the present invention.

도시된 바와 같이, 컴퓨팅 환경(702)은 제어부(704)와 산술논리연산부(ALU)(706)를 포함하는 적어도 하나의 처리부(processing unit, 708), 메모리(710), 저장부(712), 복수의 네트워킹 장치(716) 및 복수의 입출력(I/O) 장치들(714)을 포함한다. As shown, the computing environment 702 includes at least one processing unit 708 including a control unit 704 and an arithmetic logic unit (ALU) 706, a memory 710, a storage unit 712, A plurality of networking devices 716 and a plurality of input / output (I / O) devices 714.

처리부(708)는 알고리즘의 명령어들을 처리하는 것을 담당한다. 처리부(708)는 제어부(704)로부터 처리를 수행하기 위해 명령어를 수신한다. 또한, 명령어들의 실행과 관련된 임의의 논리 및 산술 연산들은 ALU(706)의 도움으로 계산된다. 전체적인 컴퓨팅 환경(702)은 다수의 동종 및/또는 이종의 코어들, 다른 종류의 다수의 CPU들, 특수 매체 및 기타 가속기들로 구성될 수 있다. 처리부(708)는 알고리즘의 명령어들을 처리를 책임진다. 또한, 복수의 처리부(708)는 단일 칩 또는 복수 칩 상에 위치할 수 있다. The processing unit 708 is responsible for processing the instructions of the algorithm. The processing unit 708 receives a command from the control unit 704 to perform processing. In addition, any logic and arithmetic operations associated with the execution of the instructions are computed with the aid of the ALU 706. [ The overall computing environment 702 may comprise a plurality of homogeneous and / or heterogeneous cores, a plurality of different types of CPUs, special media, and other accelerators. The processing unit 708 is responsible for processing the instructions of the algorithm. In addition, the plurality of processing units 708 may be located on a single chip or a plurality of chips.

구현에 필요한 명령어들 및 코드들로 이루어진 알고리즘은 메모리(710) 또는 저장부(712) 또는 이 둘 모두에 저장된다. 실행시, 명령어들은 대응하는 메모리(710) 및/또는 저장부(712)로부터 가져와서 처리부(708)에 의해 실행된다.An algorithm consisting of the necessary instructions and codes for implementation is stored in the memory 710 or in the storage 712 or both. Upon execution, the instructions are fetched from the corresponding memory 710 and / or storage 712 and executed by the processing unit 708.

임의의 하드웨어 구현의 경우에는 각종 네트워킹 장치(716) 또는 외부 I/O 장치들(714)이 네트워킹 장치(716) 및 I/O 장치(714)를 통한 구현을 지원하기 위해 컴퓨팅 환경에 접속될 수 있다.In the case of any hardware implementation, various networking devices 716 or external I / O devices 714 may be connected to the computing environment to support implementation via networking device 716 and I / O device 714 have.

여기에 개시된 실시예들은 적어도 하나의 하드웨어 장치 상에서 실행되고 구성요소들을 제어하기 위한 네트워크 관리 기능들을 수행하는 적어도 하나의 소프트웨어 프로그램을 통해 실현될 수 있다. 도 1 내지 도 7은 적어도 하나의 하드웨어 장치 또는 하드웨어 장치와 소프트웨어 모듈의 조합일 수 있는 블록들을 포함한다. The embodiments disclosed herein may be implemented through at least one software program that runs on at least one hardware device and performs network management functions to control the components. Figures 1-7 include blocks that can be a combination of at least one hardware device or a hardware device and a software module.

특정 실시예들에 관한 전술된 내용은 실시예들의 일반적인 본질은 완전히 드러나게 할 것인바, 다른 사람들은, 현재의 지식을 적용함으로써, 포괄개념을 벗어나지 않으면서 상기 특정 실시예들을 여러 가지 다양한 응용을 위해 기꺼이 변형 및/또는 적응시킬 수 있고, 그러므로 그러한 적응과 변형들은 개시된 실시예들의 의미와 범위 내로 이해될 필요가 있다. 여기서 사용된 표현 또는 용어는 본 발명의 설명을 위한 것이지 제한을 위한 것은 아니다. 그러므로 본 실시예들은 바람직한 실시예들의 관점에서 설명되었지만, 당업자라면 여기의 실시예들은 설명된 그 실시예들의 사상과 범위 내에서 변형되어 실시될 수 있음을 인식할 것이다.It will be appreciated that the foregoing description of certain embodiments will so fully reveal the general nature of the embodiments, that others, by applying current knowledge, are capable of implementing the specific embodiments described herein for various applications Will be willingly modified and / or adapted, and therefore such adaptations and modifications need to be understood within the meaning and scope of the disclosed embodiments. The phraseology or terminology used herein is for the purpose of description and should not be regarded as limiting. Therefore, while the embodiments have been described in terms of preferred embodiments, those skilled in the art will recognize that the embodiments herein may be practiced with modification within the spirit and scope of the described embodiments.

Claims (16)

프로세서에 의해, 복수의 장치들 각각으로부터 복수의 AVC(Advanced Video Coding) 부호화 데이터 스트림들을 수신하는 단계;
상기 프로세서에 의해, 상기 복수의 AVC 부호화 데이터 스트림들을 복호화 하여 복수의 영상들을 획득하는 단계로서, 상기 복수의 영상들 각각은 상기 복수의 장치들 각각에 의해 제공된 영상인, 상기 획득 단계;
상기 프로세서에 의해, 상기 복수의 영상들 간의 콘텐츠 리던던시에 기초하여, 상기 복수의 영상들을 서브셋들과 개별 영상들 중의 적어도 하나로 그룹화하는 단계; 및
상기 프로세서에 의해, 상기 서브셋들과 상기 개별 영상들 중의 적어도 하나를 전송하는 단계;를 포함하는 멀티채널 비디오 스트리밍 방법.
Receiving, by the processor, a plurality of Advanced Video Coding (AVC) encoded data streams from each of the plurality of devices;
Decoding by the processor a plurality of AVC encoded data streams to obtain a plurality of images, wherein each of the plurality of images is an image provided by each of the plurality of devices;
Grouping, by the processor, the plurality of images into at least one of subsets and individual images based on content redundancy between the plurality of images; And
And transmitting, by the processor, at least one of the subsets and the individual images.
제1항에 있어서,
상기 복수의 장치들은 촬상 장치들과 저장 장치들 중 적어도 하나를 포함하는 멀티채널 비디오 스트리밍 방법.
The method according to claim 1,
Wherein the plurality of devices comprises at least one of imaging devices and storage devices.
제1항에 있어서,
상기 복수의 영상들을 상기 서브셋들과 상기 개별 영상들 중의 적어도 하나로 그룹화하는 단계는,
상기 복수의 영상들로부터 1차 영상을 선택하는 단계;
상기 1차 영상에 대하여, 상기 복수의 영상들에 대한 상관계수들(correlation coefficients)을 계산하여 상기 복수의 영상들 간의 콘텐츠 리던던시를 식별하는 단계;
상기 복수의 영상들 중 계산된 상기 상관계수들이 미리 정의된 값보다 크거나 같은 영상들을, 상기 1차 영상에 대응하는 서브셋에 병합하는 단계;
상기 복수의 영상들로부터 병합되지 않은 영상들에 대해 상기 선택하는 단계와 상기 병합하는 단계를 반복하여 상기 서브셋을 생성하는 단계; 및
상기 복수의 영상들 중 계산된 상기 상관계수들이 상기 미리 정의된 값보다 작은 영상들을 개별 영상들로서 유지하는 단계;를 포함하는 멀티채널 비디오 스트리밍 방법.
The method according to claim 1,
Wherein grouping the plurality of images into at least one of the subsets and the individual images comprises:
Selecting a primary image from the plurality of images;
Identifying the content redundancy between the plurality of images by calculating correlation coefficients for the plurality of images with respect to the primary image;
Merging images of the plurality of images, the calculated correlation coefficients being greater than or equal to a predefined value, into a subset corresponding to the primary image;
Generating the subset by repeating the selecting step and the merging step on the images that are not merged from the plurality of images; And
And maintaining the calculated correlation coefficients among the plurality of images smaller than the predefined value as individual images.
제1항에 있어서,
상기 서브셋들 각각은 MVC(multi-view coding)를 사용하여 MVC 부호화 데이터 스트림으로 부호화되어 부호화 포맷이 생성되는, 멀티채널 비디오 스트리밍 방법.
The method according to claim 1,
Wherein each of the subsets is encoded into an MVC encoded data stream using multi-view coding (MVC) to produce an encoded format.
제1항에 있어서,
상기 복수의 장치들로부터 수신된 복수의 AVC 부호화 데이터 스트림들로부터, 상기 개별 영상들에 대응하는 AVC 부호화 데이터 스트림들을 선택하여, 상기 개별 영상들 각각이 전송되는, 멀티채널 비디오 스트리밍 방법.
The method according to claim 1,
Wherein each of the individual images is transmitted by selecting AVC encoded data streams corresponding to the individual images from a plurality of AVC encoded data streams received from the plurality of devices.
제1항에 있어서,
상기 그룹화 단계는, 이벤트 검출 시 상기 프로세서에 의해 수행되며,
상기 이벤트는, 상기 복수의 장치들로부터 상기 AVC 부호화 데이터 스트림들을 처음으로 수신하는 것과, 상기 복수의 장치들 중 적어도 하나가 재시작할 때 또는 적어도 하나의 장치가 상기 복수의 장치들에 추가되거나 상기 복수의 장치들로부터 제거될 때 상기 복수의 장치들로부터 상기 AVC 부호화 데이터 스트림들을 수신하는 것 중의 적어도 하나를 포함하는, 멀티채널 비디오 스트리밍 방법.
The method according to claim 1,
Wherein the grouping is performed by the processor upon event detection,
Wherein the event is generated by first receiving the AVC encoded data streams from the plurality of devices, when at least one of the plurality of devices is restarting, or when at least one device is added to the plurality of devices, And receiving the AVC encoded data streams from the plurality of devices when they are removed from the devices of the multi-channel video streaming method.
프로세서에 의해, 부호화된 포맷의 데이터 스트림들을 수신하는 단계로서, 상기 데이터 스트림들은 MVC(multi-view coding) 부호화 데이터 스트림들과 AVC(Advanced Video Coding) 부호화 데이터 스트림들 중의 적어도 하나를 포함하고, 상기 MVC 부호화 데이터 스트림들 각각이 서로 관련되어 있는 복수의 영상들을 포함하는 서브셋에 대응하고, 상기 AVC 부호화 데이터 스트림들 각각이 상기 서브셋들에 포함되지 않은 개별 영상에 대응하는, 상기 수신 단계;
상기 프로세서에 의해, 상기 데이터 스트림들에서 상기 MVC 부호화 데이터 스트림들과 상기 AVC 부호화 데이터 스트림들을 식별하는 단계;
상기 프로세서에 의해, 상기 MVC 부호화 데이터 스트림들은 MVC 디코더 모듈을 이용하여 복호화하고, 상기 AVC 부호화 데이터 스트림들은 AVC 디코더 모듈을 이용하여 복호화하는 단계; 및
상기 프로세서에 의해, 상기 복수의 영상들을 디스플레이 화면상에 디스플레이하는 단계;를 포함하는 멀티채널 비디오 스트림 수신 방법.
Receiving data streams in an encoded format by a processor, the data streams comprising at least one of multi-view coding (MVC) encoded data streams and AVC (Advanced Video Coding) encoded data streams, Wherein each of the AVC encoded data streams corresponds to a subset that includes a plurality of images with each of the MVC encoded data streams being associated with each other, wherein each of the AVC encoded data streams corresponds to an individual image not included in the subset;
Identifying, by the processor, the MVC encoded data streams and the AVC encoded data streams in the data streams;
Decoding, by the processor, the MVC encoded data streams using an MVC decoder module and decoding the AVC encoded data streams using an AVC decoder module; And
And displaying, by the processor, the plurality of images on a display screen.
프로세서; 및
상기 프로세서에 연결된 메모리를 구비하며,
상기 메모리는 상기 프로세서에 의해 실행되는 일군의 명령어들(a set of instructions)을 저장하고, 상기 일군의 명령어들은,
복수의 장치들 각각으로부터 복수의 AVC(Advanced Video Coding) 부호화 데이터 스트림들을 수신하는 동작;
상기 복수의 AVC 부호화 데이터 스트림들을 복호화하여 복수의 영상들을 획득하는 동작으로서, 상기 복수의 영상들 각각은 상기 복수의 장치들 각각에 의해 제공된 영상에 대응하는, 상기 획득 동작;
상기 복수의 영상들 간의 콘텐츠 리던던시에 기초하여, 상기 복수의 영상들을 서브셋들과 개별 영상들 중의 적어도 하나로 그룹화하는 동작; 및
상기 서브셋들과 상기 개별 영상들 중의 적어도 하나를 전송하는 동작;을 포함하는 멀티채널 비디오 스트리밍 시스템.
A processor; And
And a memory coupled to the processor,
The memory storing a set of instructions executed by the processor, the set of instructions comprising instructions for:
Receiving a plurality of Advanced Video Coding (AVC) encoded data streams from each of the plurality of devices;
Decoding the plurality of AVC encoded data streams to obtain a plurality of images, wherein each of the plurality of images corresponds to an image provided by each of the plurality of devices;
Grouping the plurality of images into at least one of subsets and individual images based on content redundancy between the plurality of images; And
And transmitting at least one of the subsets and the individual images.
제8항에 있어서,
상기 복수의 장치들은 촬상 장치들과 저장 장치들 중의 적어도 하나를 포함하는 멀티채널 비디오 스트리밍 시스템.
9. The method of claim 8,
Wherein the plurality of devices comprises at least one of imaging devices and storage devices.
제8항에 있어서,
상기 복수의 영상들을 상기 서브셋들과 상기 개별 영상들 중의 적어도 하나로 그룹화하는 동작은,
상기 복수의 영상들로부터 1차 영상(a primary image)을 선택하는 동작;
상기 1차 영상에 대하여 상기 복수의 영상들에 대한 상관계수들(correlation coefficients)을 계산함으로써 상기 복수의 영상들 간의 콘텐츠 리던던시를 식별하는 동작;
상기 복수의 영상들 중, 상기 영상들에 대해 계산된 상기 상관계수들이 미리 정의된 값보다 크거나 같은 영상들을 상기 1차 영상에 대응하는 서브셋으로 병합하는 동작;
상기 복수의 영상들로부터 병합되지 않은 영상들에 대해 상기 선택하는 단계와 상기 병합하는 단계를 반복하여 상기 서브셋들을 생성하는 동작; 및
상기 복수의 영상들 중 계산된 상기 상관계수들이 상기 미리 정의된 값보다 작은 영상들을 개별 영상들로서 유지하는 동작;을 포함하는 멀티채널 비디오 스트리밍 시스템.
9. The method of claim 8,
Wherein grouping the plurality of images into at least one of the subsets and the individual images comprises:
Selecting a primary image from the plurality of images;
Identifying the content redundancy between the plurality of images by calculating correlation coefficients for the plurality of images for the primary image;
Merging, among the plurality of images, images whose correlation coefficients calculated for the images are greater than or equal to a predefined value into a subset corresponding to the primary image;
Generating the subset by repeating the selecting and merging steps for the images that are not merged from the plurality of images; And
And maintaining the calculated correlation coefficients among the plurality of images as individual images smaller than the predefined value.
제8항에 있어서,
상기 서브셋들 각각은 MVC를 이용하여 MVC 부호화 데이터 스트림으로 부호화 되어 부호화 포맷이 생성되는, 멀티채널 비디오 스트리밍 시스템.
9. The method of claim 8,
Wherein each of the subsets is encoded into an MVC encoded data stream using MVC to generate an encoded format.
제8항에 있어서,
상기 복수의 장치들로부터 수신된 복수의 부호화 데이터 스트림들로부터, 상기 개별 영상들에 대응하는 AVC 부호화 데이터 스트림들을 선택하여, 상기 개별 영상들 각각이 전송되는, 멀티채널 비디오 스트리밍 시스템.
9. The method of claim 8,
Wherein each of the individual videos is transmitted by selecting AVC encoded data streams corresponding to the individual videos from a plurality of encoded data streams received from the plurality of devices.
제8항에 있어서,
상기 그룹화 동작은, 이벤트 검출 시 상기 프로세서에 의해 수행되며,
상기 이벤트는, 상기 복수의 장치들로부터 상기 AVC 부호화 데이터 스트림들을 처음으로 수신하는 것과, 상기 복수의 장치들 중 적어도 하나가 재시작할 때 또는 적어도 하나의 장치가 상기 복수의 장치들에 추가되거나 상기 복수의 장치들로부터 제거될 때 상기 복수의 장치들로부터 상기 AVC 부호화 데이터 스트림들을 수신하는 것 중의 하나를 포함하는, 멀티채널 비디오 스트리밍 시스템.
9. The method of claim 8,
Wherein the grouping operation is performed by the processor upon event detection,
Wherein the event is generated by first receiving the AVC encoded data streams from the plurality of devices, when at least one of the plurality of devices is restarting, or when at least one device is added to the plurality of devices, And receiving the AVC encoded data streams from the plurality of devices when they are removed from the devices of the multi-channel video streaming system.
프로세서; 및
상기 프로세서에 연결된 메모리를 구비하며,
상기 메모리는 상기 프로세서에 의해 실행되는 일군의 명령어들(a set of instructions)을 저장하고, 상기 일군의 명령어들은,
부호화된 포맷의 데이터 스트림들을 수신하는 동작으로서, 상기 데이터 스트림들은 MVC(multi-view coding) 부호화 데이터 스트림들과 AVC(Advanced Video Coding) 부호화 데이터 스트림들 중의 적어도 하나를 포함하고, 상기 MVC 부호화 데이터 스트림들 각각이 서로 관련되어 있는 복수의 영상들을 포함하는 서브셋에 대응하고, 상기 AVC 부호화 데이터 스트림들 각각이 상기 서브셋들에 포함되지 않은 개별 영상에 대응하는, 상기 수신 동작;
상기 데이터 스트림들에서 상기 MVC 부호화 데이터 스트림들과 상기 AVC 부호화 데이터 스트림들을 식별하는 동작;
상기 MVC 부호화 데이터 스트림들은 MVC 디코더 모듈을 이용하여 복호화하고, 상기 AVC 부호화 데이터 스트림들은 AVC 디코더 모듈을 이용하여 복호화하는 동작; 및
상기 복수의 영상들을 디스플레이 화면상에 디스플레이하는 동작;을 포함하는 멀티채널 비디오 스트림 수신 시스템.
A processor; And
And a memory coupled to the processor,
The memory storing a set of instructions executed by the processor, the set of instructions comprising instructions for:
Receiving data streams in an encoded format, the data streams comprising at least one of multi-view coding (MVC) encoded data streams and AVC (Advanced Video Coding) encoded data streams, the MVC encoded data stream Each corresponding to a subset comprising a plurality of images associated with each other, wherein each of the AVC encoded data streams corresponds to an individual image not included in the subsets;
Identifying the MVC encoded data streams and the AVC encoded data streams in the data streams;
Decoding the MVC encoded data streams using an MVC decoder module and decoding the AVC encoded data streams using an AVC decoder module; And
And displaying the plurality of images on a display screen.
컴퓨터 판독가능한 비휘발성 저장매체에 기록된 컴퓨터 실행가능 프로그램 코드를 포함하는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 실행가능 프로그램 코드는, 실행되었을 때,
복수의 장치들 각각으로부터 복수의 AVC(Advanced Video Coding) 부호화 데이터 스트림들을 수신하는 단계;
상기 복수의 AVC 부호화 데이터 스트림들을 복호화하여 복수의 영상들을 획득하는 단계로서, 상기 복수의 영상들 각각은 상기 복수의 장치들 각각에 의해 제공된 영상에 대응하는, 상기 획득 단계;
상기 복수의 영상들 간의 콘텐츠 리던던시에 기초하여, 상기 복수의 영상들을 서브셋들과 개별 영상들 중의 적어도 하나로 그룹화하는 단계; 및
상기 서브셋들과 상기 개별 영상들 중의 적어도 하나를 전송하는 단계;를 포함하는 동작들을 수행하는 컴퓨터 프로그램 제품.
17. A computer program product comprising computer executable program code recorded on a computer readable non-volatile storage medium, the computer executable program code comprising:
Receiving a plurality of Advanced Video Coding (AVC) encoded data streams from each of the plurality of devices;
Decoding the plurality of AVC encoded data streams to obtain a plurality of images, wherein each of the plurality of images corresponds to an image provided by each of the plurality of devices;
Grouping the plurality of images into at least one of subsets and individual images based on content redundancy between the plurality of images; And
And transmitting at least one of the subsets and the individual images.
컴퓨터 판독가능한 비휘발성 저장매체에 기록된 컴퓨터 실행가능 프로그램 코드를 포함하는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 실행가능 프로그램 코드는, 실행되었을 때,
부호화된 포맷의 데이터 스트림들을 수신하는 동작으로서, 상기 데이터 스트림들은 MVC(multi-view coding) 부호화 데이터 스트림들과 AVC(Advanced Video Coding) 부호화 데이터 스트림들 중의 적어도 하나를 포함하고, 상기 MVC 부호화 데이터 스트림들 각각이 서로 관련되어 있는 복수의 영상들을 포함하는 서브셋에 대응하고, 상기 AVC 부호화 데이터 스트림들 각각이 상기 서브셋들에 포함되지 않은 개별 영상에 대응하는, 상기 수신 단계;
상기 데이터 스트림들에서 상기 MVC 부호화 데이터 스트림들과 상기 AVC 부호화 데이터 스트림들을 식별하는 단계;
상기 MVC 부호화 데이터 스트림들은 MVC 디코더 모듈을 이용하여 복호화하고, 상기 AVC 부호화 데이터 스트림들은 AVC 디코더 모듈을 이용하여 복호화하는 단계; 및
상기 복수의 영상들을 디스플레이 화면상에 디스플레이하는 단계;를 포함하는 동작들을 수행하는 컴퓨터 프로그램 제품.
17. A computer program product comprising computer executable program code recorded on a computer readable non-volatile storage medium, the computer executable program code comprising:
Receiving data streams in an encoded format, the data streams comprising at least one of multi-view coding (MVC) encoded data streams and AVC (Advanced Video Coding) encoded data streams, the MVC encoded data stream Each corresponding to a subset comprising a plurality of images related to each other, wherein each of the AVC encoded data streams corresponds to an individual image not included in the subsets;
Identifying the MVC encoded data streams and the AVC encoded data streams in the data streams;
Decoding the MVC encoded data streams using an MVC decoder module, and decoding the AVC encoded data streams using an AVC decoder module; And
And displaying the plurality of images on a display screen.
KR1020150138002A 2015-06-15 2015-09-30 Method and system for multichannel video streaming, and Method and system for receiving multichannel video streaming KR102368226B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN2985CH2015 2015-06-15
IN2985/CHE/2015 2015-06-15

Publications (2)

Publication Number Publication Date
KR20160147616A true KR20160147616A (en) 2016-12-23
KR102368226B1 KR102368226B1 (en) 2022-02-28

Family

ID=57736368

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150138002A KR102368226B1 (en) 2015-06-15 2015-09-30 Method and system for multichannel video streaming, and Method and system for receiving multichannel video streaming

Country Status (1)

Country Link
KR (1) KR102368226B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070122330A (en) 2006-06-26 2007-12-31 엘지전자 주식회사 Muti-streaming apparatus and method
KR20090069138A (en) * 2007-12-24 2009-06-29 삼성전자주식회사 Method and system for generating, receiving and playing multi view image, and portable device using the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070122330A (en) 2006-06-26 2007-12-31 엘지전자 주식회사 Muti-streaming apparatus and method
KR20090069138A (en) * 2007-12-24 2009-06-29 삼성전자주식회사 Method and system for generating, receiving and playing multi view image, and portable device using the same

Also Published As

Publication number Publication date
KR102368226B1 (en) 2022-02-28

Similar Documents

Publication Publication Date Title
US10009630B2 (en) System and method for encoding video content using virtual intra-frames
KR102067231B1 (en) Network device and error handling
US20120057640A1 (en) Video Analytics for Security Systems and Methods
US20170230614A1 (en) Techniques to Overcome Communication Lag Between Terminals Performing Video Mirroring and Annotation Operations
CN106713913B (en) Video image frame sending method and device and video image frame receiving method and device
US20130034151A1 (en) Flexible codec switching
GB2527588A (en) Encoder and decoder
CN111641804A (en) Video data processing method and device, terminal, camera and video conference system
KR101680545B1 (en) Method and apparatus for providing panorama moving picture generation service
US10015395B2 (en) Communication system, communication apparatus, communication method and program
US10536726B2 (en) Pixel patch collection for prediction in video coding system
US10051281B2 (en) Video coding system with efficient processing of zooming transitions in video
US9756274B2 (en) Method and device for inserting a graphical overlay in a video stream
US20140044194A1 (en) Entropy coding techniques and protocol to support parallel processing with low latency
WO2020004073A1 (en) Image processing device and method
CN110570614B (en) Video monitoring system and intelligent camera
US9083990B2 (en) Electronic device and method for managing video snapshot
CN107734278B (en) Video playback method and related device
KR102368226B1 (en) Method and system for multichannel video streaming, and Method and system for receiving multichannel video streaming
KR20230023359A (en) surveillance camera system
JP2022064307A (en) Image processing device, camera and method of encoding sequence of video image
KR100899666B1 (en) Dispersed multistreaming transmission apparatus
JP4795141B2 (en) Video coding / synthesizing apparatus, video coding / synthesizing method, and video transmission system
US10154248B2 (en) Encoder apparatus, encoder system, encoding method, and medium for separating frames captured in time series by imaging directions
KR20230115085A (en) Video coding method and apparatus for machine

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