KR102674142B1 - 미디어 데이터를 전송하는 방법 및 장치 - Google Patents
미디어 데이터를 전송하는 방법 및 장치 Download PDFInfo
- Publication number
- KR102674142B1 KR102674142B1 KR1020200029413A KR20200029413A KR102674142B1 KR 102674142 B1 KR102674142 B1 KR 102674142B1 KR 1020200029413 A KR1020200029413 A KR 1020200029413A KR 20200029413 A KR20200029413 A KR 20200029413A KR 102674142 B1 KR102674142 B1 KR 102674142B1
- Authority
- KR
- South Korea
- Prior art keywords
- media data
- data
- external device
- control core
- request
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000006870 function Effects 0.000 claims abstract description 60
- 230000004044 response Effects 0.000 claims abstract description 21
- 230000005540 biological transmission Effects 0.000 claims description 19
- 230000006854 communication Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 238000003384 imaging method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4305—Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
- H04N7/181—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast for receiving images from a plurality of remote sources
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Communication Control (AREA)
Abstract
본 발명에 따른 디바이스 간에 미디어 데이터를 전송하는 방법은, 상기 제어 코어가 상기 외부 디바이스로부터 미디어 데이터의 요청을 수신하는 단계와, 상기 제어 코어가 상기 미디어 데이터의 요청에 포함된 응답 시간 내에 상기 미디어 데이터를 전송할 수 있는지 판단하는 단계와, 상기 판단 결과, 상기 응답 시간 내에 상기 미디어 데이터를 전송할 수 없으면, 메모리에 기 저장된 미디어 데이터의 세션에 관한 설정 정보를 상기 외부 디바이스에 전송하는 단계와, 상기 기능 모듈로부터 상기 미디어 데이터의 처리가 완료되면, 상기 제어 코어는 상기 미디어 데이터를 상기 외부 디바이스에 전송하는 단계로 이루어진다.
Description
본 발명은 미디어 데이터를 전송하는 방법 및 장치에 관한 것으로, 다수의 기능 모듈이 연결된 멀티 코어를 사용하는 디바이스 또는 독립된 제어 코어와 대응되는 기능 모듈로 구성되고 상호 간에 네트워크 내에서 통신하는 디바이스 간에 미디어 데이터를 전송하는 방법에 관한 것이다.
일반적으로 네트워크 통신 프로토콜로는 TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)가 많이 사용된다.
TCP 프로토콜은 핸드쉐이크(handshake) 및 ACK 방식을 이용하여, 디바이스 상호간에 정상적인 입력 및 출력을 확인하고 SYN(Synchronize Sequence Number) 및 ACK(Acknowledge)을 송수신하면서 상호간 상태를 확인한다. 그러나, 이와 같은 방식은 디바이스 상호간에 데이터 처리 속도의 차이가 발생할 경우에는 통신 속도의 저하 문제가 발생한다. 특히, 이와 같은 취약점은, 멀티 코어 환경의 각종 디바이스 개발에 있어서 해결되어야 할 주요 문제이다.
한편 UDP 프로토콜은, 클라이언트(Client)가 서버(Server)에 요청(Request)을 전달하면, 서버는 클라이언트에 데이터만 전달할 뿐이고 데이터의 도착 여부 및 무결성을 검증하지 않는다. 따라서 이러한 방식은 빠른 속도를 보장하지만, 멀티 코어 상에서 데이터의 도착 여부 및 무결성을 확인하지 않는다는 측면에서 안정적인 데이터의 송수신을 필요로 하는 환경에서는 문제가 될 수 있다.
대부분의 통신에 필요한 기본 데이터(예: 디바이스간 설정 정보, 통신하고자 하는 데이터의 속성 등)는 한번 설정되면 그 다음부터는 변경되지 않는 것이 대부분이나, 각 제어 코어별로 안정적이고 보장된 동작을 위하여 코어별로 상기 통신에 필요한 기본 데이터를 요청하고 전달받게 된다. 이러한 과정이 지속되면서 제어 코어별로 데이터 처리 속도의 차이가 많이 나거나, 상기 데이터의 처리 방식이 제어 코어별로 상이할 경우에는 데이터 싱크(Data Sync)의 차이가 많이 날 수 있다.
도 1은 멀티 코어(10)에 복수의 기능 모듈들이 결합된 시스템 구조를 보여주는 도면이다. 여기서 기능 모듈의 예로서는 고정 카메라(11, 12) 및 PTZ(pan-tilt-zoom) 카메라(13, 14)가 예시되어 있다. 도 1과 같은 멀티 코어(10)를 갖는 디바이스의 경우 멀티 코어(10)가 각각의 기능 모듈을 제어하기 위해 상기 기능 모듈과 수시로 통신하여야 하는데, 각 기능 모듈별로 정밀 제어를 위해서는 통신 관련 정보를 지속적으로 요청하고 업데이트 하게 된다. 그러나 각각의 기능 모듈에서 이루어지는 데이터의 처리 속도 및 응답 속도는 제 각각 이기 때문에, 만약 멀티 코어(10)에서 모든 정보가 업데이트 된 후 후속 작업을 실행하게 된다면 결과적으로 처리속도의 저하로 이어진다. 또한 미디어를 실시간으로 처리하는 어플리케이션을 사용하는 경우에는 근본적인 데이터 싱크(Data Sync)의 문제가 발생할 수밖에 없다.
도 2는 디바이스(50)가 기능 모듈(60)과 제어 코어(70)를 갖는 경우에 다른 디바이스와의 통신 과정을 보여주는 타이밍 차트이다. 일 예로서, 상기 기능 모듈(60)은 오디오 리슨(audio listen) 기능과 오디오 톡(audio talk) 기능을 지원하는 장치를 포함한다. 상기 오디오 리슨 기능은 다른 디바이스의 요청에 따라 기능 모듈(60)이 캡쳐 된 오디오 스트림을 상기 다른 디바이스에 제공하는 기능을 의미하고, 상기 오디오 톡 기능은 디바이스들 간에 오디오 스트림을 상호 송수신하는 기능을 의미한다.
통상, 오디오 리슨 기능은 디바이스(50)의 성능상 처리 속도가 매우 빨리 문제될 것이 없지만, 오디오 톡 기능은 데이터 처리에 소요되는 시간이 오디오 리슨 기능에 비해 많이 소요된다. 이러한 시나리오에 따라 디바이스(50)와 외부 디바이스(다른 디바이스) 간의 통신이 이루어질 때 도 2에 도시된 바와 같은 과정을 거칠 수 있다.
먼저, 제어 코어(70)가 기능 모듈(60)에 오디오 리슨 기능을 시작할 것을 명령하면(S1), 기능 모듈(60)은 오디오 리슨 기능을 활성화함과 동시에 제어 코어(70)에 ACK를 전송한다(S2). 이후 제어 코어(70)는 외부 디바이스에 오디오 데이터를 전송할 수 있다.
그런데, 제어 코어(70)가 기능 모듈(60)에 오디오 톡 기능을 시작할 것을 명령하면(S3), 기능 모듈(60)은 오디오 톡 기능을 준비하지만 오디오 리슨 기능과 달리 상당한 시간이 소요된다(S4). 이 때, 외부 디바이스가 오디오 톡 기능 요청에 대한 응답 시간을 설정하였다고 하면, 제어 코어(70)는 해당 응답 시간이 경과하면 톡 세션 설정 정보 및 오디오 데이터를 상기 외부 디바이스에 전송하려 한다. 그러나, 기능 모듈(60)에서는 아직 오디오 톡 기능이 활성화되지 않았기 때문에 이러한 제어 코어(70)의 데이터 전송은 실제로는 가비지(garbage) 데이터가 된다(S5). 이를 수신한 외부 디바이스는 가비지 데이터를 정상적인 오디오 데이터로 인식하기 때문에 문제가 발생하는 것이다. 이후에 기능 모듈(60)에서 상기 오디오 톡 기능의 준비가 완료되어 톡 세션 설정 정보 및 오디오 데이터를 전송해 오더라도(S6) 이는 이미 오동작이 발생한 이후이다.
이와 같이, 외부 디바이스에서는 디바이스(50) 내의 상황이나 여력을 알 수 없기 때문에 상기와 같은 오류가 발생하는 것이다. 향후 멀티 코어를 사용하는 환경에서 빠른 데이터 처리 속도를 원하는 요구사항이 늘어날 것을 고려하면, 이와 같이 핸드쉐이크(handshake) 과정에서 속도 저하가 불가피하다. 더욱이 고품질, 다량의 미디어(영상, 음성) 데이터를 통신해야 하는 경우에는 위와 같은 상황은 보다 자주 발생하게 될 것이다.
따라서, 이와 같이, 제어 코어가 기능 모듈을 갖는 디바이스에서 미디어 전송과 관련된 특정 기능을 수행할 때 요청시간 이상이 소요되는 경우에, 예외 처리 기능을 제공할 필요가 있다.
본 발명이 이루고자 하는 기술적 과제는, 멀티 코어 네트워크에 연결된 디바이스들 간의 통신 환경에서 처리해야할 데이터 량이 증가하고, 각각의 디바이스의 기능이나 사양이 상이하여 오디오, 비디오와 같은 미디어의 전송 처리가 동일한 시간에 이루어질 수 없는 상황에서, 오류 예외 저리(Error Exceptional Handling)를 가능하게 하는 것이다.
본 발명이 이루고자 하는 다른 기술적 과제는, 대부분의 통신에 필요한 기본 데이터는 한번 설정되면 변경되지 않는 경우가 대부분이라는 점을 고려하여, 미디어 전송 처리에 지연이 발생될 상황에서는 기 저장된 기본 데이터를 그대로 활용하여 통신 중인 디바이스 간에 실제 미디어 전송 전에 신속한 사전 세션 설정이 가능하게 하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한, 외부 디바이스의 요청에 따라 기능 모듈과 제어 코어를 포함하는 디바이스로부터, 상기 외부 디바이스에 미디어 데이터를 전송하는 방법은,
상기 제어 코어가 상기 외부 디바이스로부터 제1 미디어 데이터의 요청을 수신하는 단계; 상기 기능 모듈로부터의 응답에 따라 상기 제어 코어가 상기 제1 미디어 데이터를 상기 외부 디바이스에 전송하는 단계; 상기 제어 코어가 상기 외부 디바이스로부터 제2 미디어 데이터의 요청을 수신하는 단계; 상기 제어 코어가 상기 제2 미디어 데이터의 요청에 포함된 응답 시간 내에 상기 제2 미디어 데이터를 전송할 수 있는지 판단하는 단계; 상기 판단 결과, 상기 응답 시간 내에 상기 제2 미디어 데이터를 전송할 수 없으면, 메모리에 기 저장된 제2 미디어 데이터의 세션에 관한 설정 정보를 상기 외부 디바이스에 전송하는 단계; 및 상기 기능 모듈로부터 상기 제2 미디어 데이터의 처리가 완료되면, 상기 제어 코어는 상기 제2 미디어 데이터를 상기 외부 디바이스에 전송하는 단계를 포함하되, 상기 제2 미디어 데이터는 상기 제1 미디어 데이터에 비해 상기 기능 모듈에서의 처리 시간이 더 긴 데이터이다.
상기 제1 미디어 데이터는 미디어 리슨 데이터(media listen data)이고, 상기 제2 미디어 데이터는 미디어 톡 데이터(media talk data)이다.
상기 외부 디바이스로부터의 상기 제1 및 제2 미디어 데이터의 요청과, 상기 제1 및 제2 미디어 데이터의 외부 디바이스로의 전송은, 각각 동기화 시퀀스 번호(synchronize sequence number)를 포함한다.
상기 판단 결과, 상기 응답 시간 내에 상기 제2 미디어 데이터를 전송할 수 있으면, 상기 기능 모듈로부터 제공되는 상기 제2 미디어 데이터에 관한 설정 정보와 함께 상기 제2 미디어 데이터를 상기 외부 디바이스에 전송하는 단계를 더 포함한다.
상기 제2 미디어 데이터의 요청을 수신하는 단계는, 상기 제어 코어가 상기 외부 디바이스로부터 상기 제1 미디어 데이터의 전송에 대한 ACK(acknowledgement)와 함께, 상기 제2 미디어 데이터의 요청을 수신하는 단계를 포함한다.
상기 제2 미디어 데이터에 관한 설정 정보는,
스트리밍 방식(steaming type), 미디어 코덱(media codec), 프레임 해상도(frame resolution), 프레임 레이트(frame-rate) 중에서 적어도 하나 이상을 포함한다.
본 발명에 따른 미디어 데이터를 전송하는 방법 및 장치에 의하면, 멀티 코어 네트워크에 연결된 디바이스들 간의 통신 환경에서 미디어 전송 처리가 이루어질 때, 오동작 및 데이터 싱크 지연을 방지하고 및 전체 시스템의 성능 향상을 도모할 수 있다.
도 1은 종래의 멀티 코어에 복수의 기능 모듈들이 결합된 시스템 구조를 보여주는 도면이다.
도 2는 종래의 디바이스가 기능 모듈과 제어 코어를 갖는 경우에 다른 디바이스와의 통신 과정을 보여주는 타이밍 차트이다.
도 3은 3-웨이 핸드쉐이크(handshake)의 일 예를 보여주는 도면이다.
도 4는 카메라 모듈과 제어 코어를 포함하는 디바이스가 외부 디바이스의 요청에 따라 미디어 데이터를 전송하는 방법을 도시한 타이밍 차트이다.
도 5는 본 발명의 일 실시예에 따른 미디어를 송수신하는 디바이스의 구성을 도시하는 블록도이다.
도 2는 종래의 디바이스가 기능 모듈과 제어 코어를 갖는 경우에 다른 디바이스와의 통신 과정을 보여주는 타이밍 차트이다.
도 3은 3-웨이 핸드쉐이크(handshake)의 일 예를 보여주는 도면이다.
도 4는 카메라 모듈과 제어 코어를 포함하는 디바이스가 외부 디바이스의 요청에 따라 미디어 데이터를 전송하는 방법을 도시한 타이밍 차트이다.
도 5는 본 발명의 일 실시예에 따른 미디어를 송수신하는 디바이스의 구성을 도시하는 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
이하 첨부된 도면들을 참조하여 본 발명의 일 실시예를 상세히 설명한다.
TCP, 즉 전송 제어 프로토콜(Transmission Control Protocol)은 인터넷 프로토콜(IP)의 핵심 프로토콜 중 하나로, IP와 함께 TCP/IP라는 명칭으로도 널리 불린다. TCP는 전송 계층에 위치하며, 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟(octet)을 안정적으로, 순서대로, 에러없이 교환할 수 있게 해 준다. TCP는 네트워크의 정보 전달을 통제하는 프로토콜이자 인터넷을 이루는 핵심 프로토콜의 하나로서 국제 인터넷 표준화 기구(IETF)의 RFC 793에 기술되어 있다.
TCP는 장치들 사이에는 논리적인 접속을 성립(establish)시키기 위하여 3-웨이 핸드쉐이크(3-way handshake) 과정을 사용한다. 상기 TCP의 3-웨이 핸드쉐이크는, TCP/IP프로토콜을 이용해서 통신을 하는 디바이스의 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 디바이스(외부 디바이스)와 사전에 세션을 수립하는 과정을 의미한다. 상기 디바이스들 중에서 최초로 통신을 요청하는 디바이스를 클라이언트(client)(20)라고 하고, 이러한 요청을 받는 디바이스를 서버(server)(30)라고 한다면, 3-웨이 핸드쉐이크는 도 3에 도시된 바와 같이 세션 수립을 위한 3가지 절차(S11 내지 S13)를 포함한다.
먼저, 클라이언트(20)가 서버(30)에 TCP SYN(TCP synchronize sequence numbers)를 전송하면(S11), 서버(30)에서는 이러한 TCP SYN에 대한 ACK(acknowledgement)을 전송한다(S12). 이후 클라이언트(20)가 서버(30)에 TCP ACK 및 데이터 요청 전송을 하면(S13), 3-웨이 핸드쉐이크 절차가 완료되고 클라이언트(20)와 서버(30) 간의 데이터 전송 세션이 수립된다. 이러한 3-웨이 핸드쉐이크 절차는 TCP 접속을 성공적으로 성립하기 위하여 필요하다. 이후 서버(30)는 클라이언트(20)에 미디어 데이터와 같은 실제 데이터를 전송할 수 있다(S14).
이러한 3-웨이 핸드쉐이크 절차를 이용하는, 본 발명에 일 실시예 따른 디바이스는 기능 모듈과 제어 코어를 포함하며, 외부 디바이스의 요청에 따라 미디어를 전송한다. 상기 기능 모듈이란 독립적으로 미디어를 생성하여 제공하는 장치를 의미하며, 이하 본 발명에서는 상기 기능 모듈의 대표적인 예로서 카메라 모듈(110)을 예로 들어 설명하는 것으로 한다. 다만, 이에 한하는 것은 아니며, 상기 기능 모듈은 외부로부터 음성을 캡쳐하는 마이크로폰일 수도 있고, 기타 외부로부터 감지할 수 있는 다양한 정보를 캡쳐하여 전송하는 장치일 수 있다. 또한, 상기 제어 모듈이란 디바이스(100) 내에서 카메라 모듈(110)와 연동하여 통신하고, 외부의 디바이스와 데이터를 송수신하는 장치로서, 적어도 하나의 CPU(Central Processing Unit), 메모리(memory) 및 네트워크 인터페이스(network interface)를 포함하여 구성될 수 있다.
도 4는 카메라 모듈(110)과 제어 코어(160)를 포함하는 디바이스(100)가 외부 디바이스의 요청에 따라 미디어 데이터를 전송하는 방법을 도시한 타이밍 차트이다. 도 4에서는 상대적으로 신속한 처리가 가능한 오디오 리슨 데이터와, 상대적으로 처리 시간이 오래 소요되는 오디오 톡 데이터를 예로 들어 설명한다. 일반적으로, 오디오 리슨 기능은 오디오 톡 기능과 달리 데이터를 준비하는 시간이 매우 빠르기 때문에 문제가 없지만, 오디오 톡 기능은 디바이스(100) 내에서도 여러 과정을 거쳐야 하기 때문에 요청시부터 준비 완료 및 전송시까지 시간이 오래 걸릴 수밖에 없다. 이러한 처리 시간의 지연은 그래도 디바이스(100) 내에서는 정밀 제어를 통한 시간 단축이 가능할 수 있지만, 외부 디바이스와 연동하는 구조에서는 그 조차도 가능하지 않기 때문에 본 발명은 이를 극복하는 방안을 제시하고자 한다.
먼저, 제어 코어(160)가 상기 외부 디바이스(200)로부터 제1 미디어 데이터의 요청을 수신한다(S21). 상기 제1 미디어 데이터는 처리되는 속도가 빠른, 오디로 리슨 데이터일 수 있다. 이하에서는 상기 제1 미디어 데이터는 오디오 리슨 데이터를 예로 들어 설명할 것이지만 이에 한하지 않고 상기 미디어 데이터는 비디오 데이터 또는 기타의 미디어 데이터일 수 있다. 제어 코어(160)가 상기 오디오 리슨 데이터의 요청을 수신할 때에는 3-웨이 핸드쉐이크에 따른 SYN(Synchronize Sequence Number)도 같이 수신할 수 있다.
제어 코어(160)는 상기 오디오 리슨 데이터의 요청을 수신하면 이를 카메라 모듈(110)에 전달하고(S22), 이에 응답하여 카메라 모듈(110)은 오디오 리슨 기능을 활성화한다(S23). 이 때 오디로 리슨 기능을 활성화하는 데에는 특별히 오랜 시간이 소요되지 않기 때문에, 카메라 모듈(110)은 오디오 리슨 기능을 활성화한 후 (S23), 실제로 오디오 리슨 데이터를 제어 코어(160)에 전달한다(S24).
이와 같이 전달된 오디오 리슨 데이터는 제어 코어(160)에 의해 외부 디바이스(200)로 전송된다(S25). 이 때, 3-웨이 핸드쉐이크 절차에 따라 SYN 및 ACK(Acknowledgement)도 함께 전송된다.
이후, 외부 디바이스(200)가 디바이스(100)에 제2 미디어 데이터의 요청을 전송하는 경우가 발생할 수 있다. 이 때에는 외부 디바이스(200)는 제어 코어(160)에 제2 미디어 데이터의 요청과 함께 3-웨이 핸드쉐이크에 따른 SYN을 전송할 수 있다(S26). 상기 제2 미디어 데이터는 처리되는 속도가 느린, 오디로 톡 데이터일 수 있다. 이하에서는 상기 제2 미디어 데이터는 오디오 톡 데이터를 예로 들어 설명할 것이지만 이에 한하지 않고 상기 미디어 데이터는 비디오 데이터 또는 기타의 미디어 데이터일 수 있다.
또한, 외부 디바이스(200)가 제어 코어(160)에 오디오 톡 데이터(제2 미디어 데이터)의 요청을 전송할 때, 동시에 이전의 제1 미디어 데이터의 전송에 대한 ACK(acknowledgement)도 함께 전송할 수 있다.
이와 같이 오디오 톡 데이터의 요청을 수신하면, 제어 코어(160)는 상기 오디오 톡 데이터를 카메라 모듈(110)에 요청한다(S27). 카메라 모듈(110)은 이에 응답하여 오디오 톡 기능의 활성화를 시작하지만 오디오 리슨 데이터에 비해 처리시간이 더 많이 소요된다(S28). 이 때, 제어 코어(160)는 이러한 오디오 톡 데이터의 전달을 기다리지 않고, 상기 오디오 톡 데이터의 요청에 포함된 응답 시간 내에, 상기 오디오 톡 데이터를 전송할 수 있는지 판단한다(S29).
상기 판단 결과, 상기 응답 시간 내에 상기 오디오 톡 데이터를 전송할 수 있으면, 카메라 모듈(110)로부터 제공되는 상기 오디오 톡 데이터에 관한 설정 정보와 함께 상기 오디오 톡 데이터를 상기 외부 디바이스(200)에 전송하게 될 것이다.
그러나, 상기 판단 결과 그렇지 않다면, 제어 코어(160)는 메모리에 저장된 상기 오디오 톡 세션에 관한 기존의 설정 정보를 판독하고(S29), 상기 판독된 설정 정보를 외부 디바이스(200)에 즉시 전송한다(S30). 이 때, 3-웨이 핸드쉐이크 과정에 따라 SYN 및 ACK도 함께 전송될 수 있다.
상기 오디오 톡 세션에 관한 설정 정보, 즉 제2 미디어 데이터의 세션에 관한 설정 정보는 스트리밍 방식(steaming type), 미디어 코덱(media codec), 프레임 해상도(frame resolution), 프레임 레이트(frame-rate) 중에서 적어도 하나 이상을 포함한다. 다음의 표 1은 이와 같이 전송되는 설정 정보를 기재한 의사코드 중의 일부이다.
RTSP/1.0 200 OK CSeq: 7 Date: Fri, 21 Feb 2020 06:43:53 GMT Expires: Fri, 21 Feb 2020 06:43:53 GMT Cache-Control: must-revalidate Content-Base: rtsp://192.168.38.187:554/onvif/profile2/media.smp Content-Type: application/sdp Content-Length: 763 x-Accept-Retransmit: our-retransmit x-Accept-Dynamic-Rate: 1 v=0 o=- 0 0 IN IP4 192.168.38.183 s=Media Presentation i=samsung c=IN IP4 0.0.0.0 b=AS:2632 t=0 0 a=control:rtsp://192.168.38.187:554/onvif/profile2/media.smp a=range:npt=now- m=video 40130 RTP/AVP 98 b=AS:2560 a=rtpmap:98 H264/90000 a=control:rtsp://192.168.38.187:554/onvif/profile2/media.smp/trackID=v a=cliprect:0,0,1080,1920 a=framesize:98 1920-1080 a=framerate:30.0 a=fmtp:98 packetization-mode=1;profile-level-id=640033;sprop-parameter-sets= ? m=application 40134 RTP/AVP 107 b=AS:8 a=rtpmap:107 vnd.onvif.metadata/90000 a=control:rtsp://192.168.38.187:554/onvif/profile2/media.smp/trackID=m a=recvonly |
위의 의사코드 중에서 "m=video 40130 RTP/AVP 98"는 오디오 및 비디오를 위한 RTP 프로파일을 이용한다는 것을 의미하고, " a=rtpmap:98 H264/90000"는 이 때 비디오 코덱으로 H.264를 이용한다는 것을 의미한다. 또한, "a=framesize:98 1920-1080"은 프레임 크기를 1920x1080의 해상도로 설정한다는 의미이고, "a=framerate:30.0"는 프레임 레이트를 초당 30 프레임으로 설정한다는 의미이다.
이와 같이, 본 발명에서는 카메라 모듈(110)에서 오디오 톡 기능을 활성화하는 데에 시간이 소요되어 외부 디바이스의 요청에 포함된 응답 시간을 초과하더라도, 제어 코어(160)가 메모리에 기 저장된 위의 예시와 같은 비디오/오디오 톡 세션에 관한 설정 정보를 미리 판독하여 외부 디바이스(200)에 미리 전송함으로써 가비지 데이터가 전송되는 문제를 방지함과 아울러, 외부 디바이스(200)와의 오디오 톡 세션을 미리 설정할 수 있는 장점이 있다.
일반적으로 데이터 통신을 위해 필요한 설정 정보는 대부분 한 번 정해지면 변하지 않는 경우가 대부분이다. 그러나 각 기능별 처리 시간이 모두 일정할 수는 없으므로, 이와 같은 방법으로 대응한다면 좀 더 응답속도가 빨라질 수 있는 것이다.
다시 도 4를 참조하면, 카메라 모듈(110)에서 상당한 시간 경과 후 오디오 톡 기능이 활성화되면, 카메라 모듈(110)은 오디오 톡 데이터를 제어 코어(160)에 전달한다(S31). 제어 코어(160)는 이에 응답하여 오디오 톡 데이터를 외부 디바이스(200)에 전송한다(S32). 외부 디바이스(200)는 S30 단계에서 제어 코어(160)로부터 오디오 톡 세션에 관한 설정 정보를 미리 받아서 제어 코어(100)와 상기 톡 세션을 미리 수립한 상태이므로 정상적으로 오디오 톡 데이터를 수신하고, 이러한 오디오 톡 데이터에 대한 ACK를 제어 코어(160)에 전송할 수 있게 된다.
도 5는 본 발명의 일 실시예에 따른 미디어를 송수신하는 디바이스(100)의 구성을 도시하는 블록도이다. 전술한 바와 같이, 디바이스(100)는 기본적으로 기능 모듈의 예시로서 카메라 모듈(110)과 제어 코어(160)를 포함하여 구성된다.
먼저 제어 코어(160)는 CPU(180), 메모리(175), I/O 장치(170), 네트워크 인터페이스(165) 및 스토리지(185)를 포함하여 구성될 수 있다. 물론, 제어 코어(160)가 CPU(180) 및 메모리(175)만으로 구성되고 나머지 장치들은 이러한 제어 코어(160)에 부차적으로 연결되는 구성도 당연히 가능하다.
프로세서(180)는 RAM과 같은 휘발성 메모리 소자 또는 ROM과 같은 비휘발성 메모리 소자 형성된 메모리(175)에 다양한 처리 명령, 쓰레드 등을 로딩(loading)하고 이들을 처리하는 기능을 갖는다. 또한 프로세서(180)는 통신 버스(150)에 연결된 다양한 다른 구성요소들의 동작을 제어한다. 특히, 도 4에서 제어 코어(160)가 카메라 모듈(110)과 연동하여 수행하는 동작들은 실제로 프로세서(180)의 관여 하에 이루어진다.
I/O 장치(170)는 사용자의 입력을 수신하기 위한 사용자 인터페이스로서, 키보드, 마우스, 포인팅 장치, 터치 패드, 스타일러스, 음성 인식기 등 다양한 사용자 명령 입력 수단과 연결될 수 있는 USB 버스, RS-232 직렬 포트, SCSI 버스 등을 포함한다.
네트워크 인터페이스(165)는 외부 디바이스(200)와 통신할 수 있도록 물리적인 통신 계층을 제공하는 장치로서, LTE(Long-Term Evolution), 802.11a/b/n (WLAN), 802.15.3(WPAN) 등과 같은 무선 매체나, 802.3(이더넷)와 같은 무선 매체로 구현될 수 있다.
스토리지(185)는 대용량의 비휘발성 저장 매체로서, MS-윈도우즈, Mac OS, 안드로이드 등의 다양한 OS(operating system)와, 미리 설치된 특정 목적 또는 범용 목적의 소프트웨어들이 기록된 장소이며, 사용자 명령에 따라 카메라 모듈(110)로부터 제공된 미디어 데이터, 또는 외부 디바이스(200)로부터 전송된 데이터를 일시적으로 또는 반영구적으로 저장할 수 있는 저장 공간이다.
한편, 카메라 모듈(110)은 촬상 소자(115), 영상 처리부(120), 영상 인코더(125) 및 영상 컨트롤러(130)를 포함하여 구성될 수 있다.
촬상 소자(115)는 피사 영역으로부터 영상을 촬영한다. 이러한 영상 촬영은 피사 영역으로부터 온 광이 CCD(Charge Coupled Device)나 CMOS(Complimentary Meta Oxide Semiconductor)와 같은 소자에 의해 감광되어 각 픽셀 단위로 전기신호를 발생하는 형태로 이루어진다,
영상 처리부(120)는 상기 촬영된 영상에 대해 영상 처리를 수행한다. 이러한 영상 처리는 영상의 품질을 향상시키고 영상을 목적에 맞는 형태로 수정하기 위한 다양한 처리를 의미하며, 예를 들어, 감마 조절, 노이즈 제거, 화이트 밸런스 조절, 콘트라스트 확대/축소, 밝기 조절, WDR(wide dynamic range) 처리, HDR (High Dynamic Range) 처리 등이 포함될 수 있다.
영상 인코더(125)는 상기 영상 처리부(120)에서 처리된 영상을 입력으로 하여 네트워크 전송에 적합한 압축된 영상으로 인코드한다. 이러한 인코드 시에는 미디어 코덱이 사용되는데, 영상 코덱으로는 MPEG-4, H.264, VP9, HEVC 등이 있으며, 음성 코덱으로는 MP3, AAC, AC3, DTS, G.726, G.729 등이 알려져 있다.
영상 컨트롤러(130)는 영상 인코더(125)에서 제공되는 미디어 스트림을 소정의 설정 정보에 맞게 생성하여 버퍼링하고, 이를 제어 코어(160)의 요청에 따라 제공한다. 전술한 바와 같이, 상기 설정 정보는 스트리밍 방식, 미디어 코덱, 오디오 또는 비디오 프레임의 해상도, 프레임 레이트 등을 포함할 수 있다. 특히, 도 4에서 카메라 모듈(110)이 제어 코어(160)와 연동하여 수행하는 동작들은 실제로 영상 컨트롤러(130)에 의해 이루어진다.
버스(150)는 프로세서(180), 메모리(175)를 비롯하여 디바이스(100) 내의 각종 구성요소들 간의 연결이 가능하도록 제공된 데이터 통신을 위한 통로이다. 도 5에서는 단일의 버스(150)에 제어 코어(160)의 구성요소들과 카메라 모듈(110)의 구성요소들이 연결되어 있는 것으로 도시되어 있으나 이에 한하지 않고 제어 코어(160)와 카메라 모듈(110)이 각각의 버스를 가지고, 상기 각각의 버스가 다시 외부 버스에 의해 연결되는 구조도 당연히 가능하다.
전술한 도 5의 각 구성요소들은 메모리 상의 소정 영역에서 수행되는 태스크, 클래스, 서브 루틴, 프로세스, 오브젝트, 실행 쓰레드, 프로그램과 같은 소프트웨어(software)나, FPGA(field-programmable gate array)나 ASIC(application-specific integrated circuit)과 같은 하드웨어(hardware)로 구현될 수 있으며, 또한 상기 소프트웨어 및 하드웨어의 조합으로 이루어질 수도 있다. 상기 구성요소들은 컴퓨터로 판독 가능한 저장 매체에 포함되어 있을 수도 있고, 복수의 컴퓨터에 그 일부가 분산되어 분포될 수도 있다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능하다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야 한다.
10: 멀티 코어 11, 12: 고정 카메라
13, 14: PTZ 카메라 20: 클라이언트
30: 서버 50, 100, 200: 디바이스
60: 기능 모듈 70, 160: 제어 코어
110: 카메라 모듈 115: 촬상 소자
120: 영상 처리부 125: 영상 인코더
130: 영상 컨트롤러 150: 버스
165: 네트워크 인터페이스 170: I/O 장치
175: 메모리 180: 프로세서
185: 스토리지
13, 14: PTZ 카메라 20: 클라이언트
30: 서버 50, 100, 200: 디바이스
60: 기능 모듈 70, 160: 제어 코어
110: 카메라 모듈 115: 촬상 소자
120: 영상 처리부 125: 영상 인코더
130: 영상 컨트롤러 150: 버스
165: 네트워크 인터페이스 170: I/O 장치
175: 메모리 180: 프로세서
185: 스토리지
Claims (6)
- 외부 디바이스의 요청에 따라, 기능 모듈과 제어 코어를 포함하는 디바이스로부터, 상기 외부 디바이스에 미디어 데이터를 전송하는 방법에 있어서,
상기 제어 코어가 상기 외부 디바이스로부터 제1 미디어 데이터의 요청을 수신하고 상기 요청을 상기 기능 모듈에 전달하는 단계;
상기 기능 모듈에 전달된 요청에 대한, 상기 기능 모듈로부터 상기 제어 코어로의 응답에 따라, 상기 제어 코어가 상기 제1 미디어 데이터를 상기 외부 디바이스에 전송하는 단계;
상기 제어 코어가 상기 외부 디바이스로부터 제2 미디어 데이터의 요청을 수신하는 단계;
상기 제어 코어가 상기 제2 미디어 데이터의 요청에 포함된 응답 시간 내에 상기 제2 미디어 데이터를 전송할 수 있는지 판단하는 단계;
상기 판단 결과, 상기 응답 시간 내에 상기 제2 미디어 데이터를 전송할 수 없으면, 메모리에 기 저장된 제2 미디어 데이터의 세션에 관한 설정 정보를 상기 외부 디바이스에 전송하는 단계; 및
상기 기능 모듈로부터 상기 제2 미디어 데이터의 처리가 완료되면, 상기 제어 코어는 상기 제2 미디어 데이터를 상기 외부 디바이스에 전송하는 단계를 포함하되,
상기 제2 미디어 데이터는 상기 제1 미디어 데이터에 비해 상기 기능 모듈에서의 처리 시간이 더 긴 데이터인, 미디어 데이터를 전송하는 방법. - 제1항에 있어서,
상기 제1 미디어 데이터는 미디어 리슨 데이터(media listen data)이고, 상기 제2 미디어 데이터는 미디어 톡 데이터(media talk data)인, 미디어 데이터를 전송하는 방법. - 제1항에 있어서,
상기 외부 디바이스로부터의 상기 제1 및 제2 미디어 데이터의 요청과, 상기 제1 및 제2 미디어 데이터의 외부 디바이스로의 전송은, 각각 동기화 시퀀스 번호(synchronize sequence number)를 포함하는, 미디어 데이터를 전송하는 방법. - 제1항에 있어서,
상기 판단 결과, 상기 응답 시간 내에 상기 제2 미디어 데이터를 전송할 수 있으면, 상기 기능 모듈로부터 제공되는 상기 제2 미디어 데이터에 관한 설정 정보와 함께 상기 제2 미디어 데이터를 상기 외부 디바이스에 전송하는 단계를 더 포함하는, 미디어 데이터를 전송하는 방법. - 제1항에 있어서,
상기 제2 미디어 데이터의 요청을 수신하는 단계는,
상기 제어 코어가 상기 외부 디바이스로부터 상기 제1 미디어 데이터의 전송에 대한 ACK(acknowledgement)와 함께, 상기 제2 미디어 데이터의 요청을 수신하는 단계를 포함하는, 미디어 데이터를 전송하는 방법. - 제1항에 있어서, 상기 제2 미디어 데이터에 관한 설정 정보는,
스트리밍 방식, 미디어 코덱, 프레임 해상도, 프레임 레이트 중에서 적어도 하나 이상을 포함하는, 미디어 데이터를 전송하는 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200029413A KR102674142B1 (ko) | 2020-03-10 | 2020-03-10 | 미디어 데이터를 전송하는 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200029413A KR102674142B1 (ko) | 2020-03-10 | 2020-03-10 | 미디어 데이터를 전송하는 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210114141A KR20210114141A (ko) | 2021-09-23 |
KR102674142B1 true KR102674142B1 (ko) | 2024-06-10 |
Family
ID=77926358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200029413A KR102674142B1 (ko) | 2020-03-10 | 2020-03-10 | 미디어 데이터를 전송하는 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102674142B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102705267B1 (ko) * | 2022-11-14 | 2024-09-11 | 주식회사 인포웍스 | 다중 영상 및 데이터 간 동기화 송수신 시스템 및 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008278240A (ja) | 2007-04-27 | 2008-11-13 | Sony Corp | 通信システム、通信装置、および通信方法、並びにプログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4419955B2 (ja) * | 2003-05-16 | 2010-02-24 | ソニー株式会社 | 無線通信システム、無線通信装置及び無線通信方法、並びにコンピュータ・プログラム |
KR101419820B1 (ko) * | 2012-11-27 | 2014-07-15 | 윤택현 | 방송 서비스 제공 방법, 방송 서비스 제공 서버 및 방송 서비스 제공 시스템 |
KR20170097546A (ko) * | 2016-02-18 | 2017-08-28 | 에스케이텔레콤 주식회사 | 이종 네트워크상에서의 컨텐츠 전송 방법 및 이를 위한 장치 |
JP6380902B2 (ja) | 2016-06-15 | 2018-08-29 | 株式会社エム・クレスト | 遠隔監視システム用端末、遠隔監視用プログラム及び遠隔監視システム |
-
2020
- 2020-03-10 KR KR1020200029413A patent/KR102674142B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008278240A (ja) | 2007-04-27 | 2008-11-13 | Sony Corp | 通信システム、通信装置、および通信方法、並びにプログラム |
Also Published As
Publication number | Publication date |
---|---|
KR20210114141A (ko) | 2021-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7114684B2 (ja) | 対話型ビデオ会議 | |
EP3229476B1 (en) | Method and apparatus for playing media stream on web browser | |
US11412021B2 (en) | Method and device for media streaming between server and client using RTP/RTSP standard protocol | |
CN110121114B (zh) | 发送流数据的方法及数据发送设备 | |
US20130346562A1 (en) | Data transmission method and apparatus for mobile terminal | |
CN111147893B (zh) | 一种视频自适应方法、相关设备以及存储介质 | |
US10194180B2 (en) | Systems and methods for transmitting video data over a network | |
WO2016027174A1 (en) | Device switching for a streaming service | |
RU2624641C2 (ru) | Способ и устройство для регулировки качества видео на основе сетевой среды | |
KR101821123B1 (ko) | 웹브라우저 상에서 미디어 스트림을 재생하는 방법 및 장치 | |
KR101821124B1 (ko) | 웹브라우저 상에서 미디어 스트림을 재생하는 방법 및 장치 | |
KR102674142B1 (ko) | 미디어 데이터를 전송하는 방법 및 장치 | |
US10085029B2 (en) | Switching display devices in video telephony | |
CN113992883A (zh) | 视频会议处理方法、处理设备、会议系统以及存储介质 | |
JP2016506206A (ja) | エラー制御のための再送およびフレーム同期 | |
US20120236927A1 (en) | Transmission apparatus, transmission method, and recording medium | |
CN109729438B (zh) | 一种发送视频包、接收视频包的方法及装置 | |
US20190132078A1 (en) | Dynamically partitioning media streams | |
WO2017160404A1 (en) | User input based adaptive streaming | |
US9049350B2 (en) | Imaging apparatus that transmits media data to reception apparatus, method of processing information, and storage medium | |
JP2016149648A5 (ja) | 通信装置、通信方法、及びプログラム | |
KR101440131B1 (ko) | 모바일 클라이언트 단말기에서 다채널 CCTV 관제를 위한 Qos 영상처리 시스템 및 Qos 영상 처리 방법 | |
US9866541B2 (en) | Communication control apparatus, communication control method, and recording medium | |
US20240298051A1 (en) | Data relay apparatus, distribution system, data relay method, and computer-readable medium | |
US20240163324A1 (en) | Systems and methods for additive bitrate fragmentation |
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 |