Nothing Special   »   [go: up one dir, main page]

KR101710011B1 - Image data transmission and reception method and apparatus - Google Patents

Image data transmission and reception method and apparatus Download PDF

Info

Publication number
KR101710011B1
KR101710011B1 KR1020150076056A KR20150076056A KR101710011B1 KR 101710011 B1 KR101710011 B1 KR 101710011B1 KR 1020150076056 A KR1020150076056 A KR 1020150076056A KR 20150076056 A KR20150076056 A KR 20150076056A KR 101710011 B1 KR101710011 B1 KR 101710011B1
Authority
KR
South Korea
Prior art keywords
divided
data
frame
unit
image data
Prior art date
Application number
KR1020150076056A
Other languages
Korean (ko)
Other versions
KR20160140012A (en
Inventor
김중곤
Original Assignee
엔쓰리엔 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔쓰리엔 주식회사 filed Critical 엔쓰리엔 주식회사
Priority to KR1020150076056A priority Critical patent/KR101710011B1/en
Publication of KR20160140012A publication Critical patent/KR20160140012A/en
Application granted granted Critical
Publication of KR101710011B1 publication Critical patent/KR101710011B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • 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 or manipulating encoded video stream scene graphs
    • H04N21/23412Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 영상 데이터를 전송하는 방법을 개시하고 있다. 상기 방법은 영상 데이터를 입력받는 단계, 상기 입력받은 영상 데이터의 하나의 프레임을 복수 개로 분할하는 단계, 복수 개로 분할된 각각의 분할 프레임을 독립적으로 인코딩하는 단계 및 분할 프레임 단위로 인코딩이 완료되는 대로 인코딩된 영상 데이터를 수신측으로 전송하는 단계를 포함한다.The present invention discloses a method for transmitting image data. The method includes the steps of receiving image data, dividing one frame of the received image data into a plurality of frames, independently encoding each of the plurality of divided frames, and encoding And transmitting the encoded image data to the receiving side.

Figure R1020150076056
Figure R1020150076056

Description

영상 데이터 전송 및 수신 방법 및 장치{IMAGE DATA TRANSMISSION AND RECEPTION METHOD AND APPARATUS}TECHNICAL FIELD [0001] The present invention relates to a method and apparatus for transmitting and receiving image data,

본 발명은 영상 데이터를 전송 및 수신하는 방법 및 장치에 관한 것으로, 보다 상세하게는 영상 전송 지연속도를 줄이기 위한 영상 데이터 전송 및 수신 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for transmitting and receiving image data, and more particularly, to a method and apparatus for transmitting and receiving image data for reducing a delay in image transmission.

일반적으로 영상 데이터는 데이터의 크기가 크기에 압축 부호화하는 과정이 요구되고, 압축 부호화된 데이터를 이더넷(ethernet)과 같은 네트워크를 이용하여 전송하는 과정이 필요하며 이를 효율적으로 하기 위한 다양한 방법들이 개발되어 왔다. 특히, 영상 압축 부호화는 MPEG(Moving Picture Expert Group)에서 표준화한 여러 기술들(예컨대, H.264/AVC, SVC(Scalable Video Coding), HEVC(High Efficiency Video Coding 등)이 존재하며 이러한 기술은 대용량의 Full HD(High Definition) 멀디미디어 데이터를 전송하는데 사용된다. Generally, video data is required to be compression-encoded in size of data, and it is necessary to transmit compression-encoded data using a network such as ethernet. Various methods have been developed to efficiently perform this process come. Particularly, there are various techniques standardized by MPEG (Moving Picture Expert Group) (for example, H.264 / AVC, Scalable Video Coding (SVC), and High Efficiency Video Coding (HEVC) Is used to transfer Full HD (High Definition) multimedia data.

특히 고해상도의 대용량 데이터를 네트워크 상에서 전송하는 초고속 통신 기술은 데이터를 전솔할 때 실시간 전송이 되지 않는 문제를 해결하기 위해 대용량 영상, 음향 전송 속도를 향상을 위한 방향으로 개발되어 왔다. 이를 위해 디지털 신호 처리(DSP: Digital Signal Processing)를 통해 인코딩된 영상을 사용자 영역과 리눅스 커널(Linux Kernel)을 통해 네트워크로 스트리밍 전송이 가능하도록 개발되어 왔다. In particular, high-speed communication technology for transmitting high-resolution large-capacity data over a network has been developed in order to improve the transmission speed of a large-capacity image and sound, in order to solve the problem that data can not be transmitted in real time. For this purpose, it has been developed to enable streaming of encoded video through Digital Signal Processing (DSP) to the network through the user area and the Linux kernel.

통상적으로 모든 시스템들은 사용자 명령을 해독하여 디바이스로 전달하는 운영체계(OS: Operating System)를 포함하며, 이러한 운영체계의 핵심적인 동작은 커널 영역(Kernel area)에서 이루어진다. 다만, 통상적인 커널 영역에서의 처리 시스템은 사용자 모드에서 멀티미디어 어플리케이션에 의해 멀티미디어 데이터와 함께 만들어진 RTP(Real-Time Protocol) 헤더는 커널 모드에서 동작하는 일련의 처리모듈들에 의해 디바이스에게 전달된다. 예컨대, UDP(User Datagram Protocol)를 거쳐 IP(Internet Protocol), ETH(Ethernet) 및 ETHDRV(Ethernet Driver)와 같은 네트워크 인터페이스로 전달된다. 따라서, RTP 데이터의 생성과 하부 계층으로의 전송을 무수히 반복하는 멀티미디어 데이터의 경우 사용자 영역의 버퍼와 커널영역의 버퍼 사이에 과도한 데이터 복사 및 교환이 발생하는 문제점이 있다. Typically, all systems include an operating system (OS) that decrypts user commands and passes them to the device. The core operation of such an operating system is in the kernel area. However, a processing system in a normal kernel area is a real-time protocol (RTP) header created with a multimedia application by a multimedia application in a user mode, and is delivered to a device by a series of processing modules operating in a kernel mode. For example, a network interface such as an IP (Internet Protocol), an Ethernet (ETH), and an Ethernet driver (ETHDRV) via a User Datagram Protocol (UDP). Therefore, in the case of multimedia data which is repeatedly generated for RTP data generation and transmission to the lower layer, excessive data copying and exchange occur between the buffer of the user area and the buffer of the kernel area.

통상적으로 먼저, 사용자 모드에서 소정의 처리 명령에 의해 데이터 처리를 요청하면 커널 모드에서는 데이터 저장영역에서 처리 대상 데이터를 검출한 후, 커널 버퍼에 저장하고 소정 단위로 구성된 그 처리 대상 데이터를 단위별로 사용자 모드측으로 전송하고, 사용자 모드로부터 처리 결과 데이터를 수신하는 과정을 거쳐야 한다. 이때, 사용자 모드는 위 과정에서 전송되는 데이터를 사용자 영역 버퍼에 저장하고 원하는 프로세스를 수행한 후, 커널 모드 측으로 전송하고 커널모드는 데이터를 받아 원격 디바이스로 전송한다. 이러한 과정은 모드 처리 대상 데이터가 처리 완료될 때까지 반복하기 때문에, 커널모드와 사용자 모드간 데이터 전송이 반복됨에 따라 데이터 복사 및 문맥 교환 과정도 반복되야 하고, 멀티미디어 데이터 등과 같은 스트리밍 데이터 전송시 많은 오버헤드가 발생하게 된다. Generally, first, when requesting data processing by a predetermined processing command in the user mode, the processing target data is detected in the data storage area in the kernel mode, then stored in the kernel buffer, and the processing target data, Mode, and the process result data is received from the user mode. In this case, the user mode stores the data transmitted in the above process in the user area buffer, performs a desired process, and transmits the data to the kernel mode side. In the kernel mode, the data is received and transmitted to the remote device. This process is repeated until the data to be processed is processed. Therefore, the data copying and the context exchange process must be repeated as the data transfer between the kernel mode and the user mode is repeated. Also, when transmitting streaming data such as multimedia data, Head is generated.

도 1은 종래 기술에 따라 영상 데이터의 입력부터 데이터 수신측에서 영상을 출력할 때까지의 과정을 설명하기 위한 개념도이다.FIG. 1 is a conceptual diagram illustrating a process from input of image data to output of an image from a data receiving side according to the related art.

도 1을 참조하면, 로컬 디바이스(110)가 원격 디바이스(120)로 입력되는 모니터 영상을 전송하기 위해서 먼저 모니터 영상을 HDMI(High Definition Multimedia Interface)를 통해 입력받고, 이를 로컬 디바이스(110) 내의 내부 메모리에 복사 저장하며, 내부 메모리의 영상 데이터를 인코당하여 압축 영상을 생성한다. 그리고는, 이를 이더넷을 통해 원격 디바이스(120)로 전송할 수 있다. 원격 디아비스(120)는 압축 영상을 수신하여 이를 디코딩하여 원격 디바이스(120)의 내부 메모리에 복사 및 저장하고 이를 HDMI를 통해 연결된 출력 디바이스(예컨대, 모니터)에 출력한다. 1, in order to transmit a monitor image input to the remote device 120, the local device 110 first receives a monitor image through an HDMI (High Definition Multimedia Interface) And stores the image data in the memory. The image data of the internal memory is encoded to generate a compressed image. It may then transmit it to the remote device 120 via Ethernet. The remote device 120 receives the compressed image, decodes it, and copies it to the internal memory of the remote device 120, and outputs it to an output device (e.g., a monitor) connected via HDMI.

이때, 로컬 디바이스(110)에서는 비디오 입력 시간(t-VI : Video Input time), 인코딩 시간(t-EN l: Video Encoding time) 및 데이터 전송 시간(t-EX : Ethernet Transmission time)이 소요되고, 원격 디바이스(120)에서의 디코딩 시간(t-DE : Video Decoding time) 및 비디오 출력 시간(t-VO : Video Output time)이 소요되고, 대용량 멀티미디어 데이터의 경우 로컬 디바이스(110) 및 원격 디바이스(120)에서의 소요 시간은 더 오래 걸리게 된다. 특히, 프레임 단위로 이전 과정이 완료되야 다음 동작이 순차적으로 이루어지기 때문에, 상당히 많은 시간이 소요되며, 이때, 사용자 영역과 커널 영역의 호출 시간 등을 고려하면 영상 데이터 전송 효율성이 떨어지는 문제점이 있다.At this time, the local device 110 takes a video input time (t-VI), a video encoding time (t-EN) and a data transmission time (t-EX: Ethernet transmission time) Video decoding time (t-DE) and video output time (t-VO) at the remote device 120 are required. In the case of the large-capacity multimedia data, the local device 110 and the remote device 120 ) Takes longer. In particular, since the next operation is sequentially performed after the transfer process is completed on a frame-by-frame basis, it takes a considerable amount of time. In consideration of the call time of the user area and the kernel area,

상술한 문제점을 해결하기 위한 본 발명의 목적은 영상 데이터를 입력받아 하나의 프레임을 분할하여 분할 프레임 단위로 데이터 입력, 인코딩 및 전송 과정이 독립적으로 수행되어 데이터 전송 효율을 제고시킬 수 있는 영상 데이터 전송 및 수신 방법 및 장치를 제공하는 것이다. According to an aspect of the present invention, there is provided an image data transmission method, comprising: inputting image data and dividing a frame into independent frames for data input, encoding and transmission in units of divided frames; And a receiving method and apparatus.

또한 본 발명의 다른 목적은 사용자 영역과 커널 영역의 호출 및 정보 교환시간을 최소화하여 응용 레벨에서 드라비어 액세스시 발생하는 오버헤드를 감소시킬 수 있는 통합 드라이버를 제공하는 것이다. It is another object of the present invention to provide an integrated driver capable of minimizing call and information exchange time between a user area and a kernel area, thereby reducing an overhead incurred in accessing a Drabee at an application level.

상기한 목적을 달성하기 위한 본 발명의 영상 데이터를 전송하는 방법은 영상 데이터를 입력받는 단계, 상기 입력받은 영상 데이터의 하나의 프레임을 복수 개로 분할하는 단계, 복수 개로 분할된 각각의 분할 프레임을 독립적으로 인코딩하는 단계 및 분할 프레임 단위로 인코딩이 완료되는 대로 인코딩된 영상 데이터를 수신측으로 전송하는 단계를 포함할 수 있다.According to an aspect of the present invention, there is provided a method of transmitting image data, the method including receiving image data, dividing one frame of the received image data into a plurality of divided frames, And transmitting the encoded image data to the receiver upon completion of encoding in units of divided frames.

상기 복수 개로 분할된 각각의 분할 프레임을 독립적으로 인코딩하는 단계는 상기 분할 프레임이 모두 입력되는 시점에 상기 분할 프레임에 대한 인코딩을 시작하는 단계를 포함할 수 있다.The step of independently encoding each of the plurality of divided frames may include a step of starting encoding of the divided frame at a time point when all of the divided frames are input.

상기 분할 프레임은 소정 분할 단위로 동일한 크기로 분할될 수 있다.The divided frames may be divided into equal sizes in a predetermined division unit.

상기 영상 데이터 전송 방법은 상기 분할 프레임을 인코딩하는 중에, 다음 번에 인코딩되어야 할 분할 프레임을 버퍼에 입력하는 단계를 더 포함할 수 있다.The image data transmission method may further include inputting a divided frame to be encoded next into the buffer while encoding the divided frame.

상기 입력되는 영상 데이터는 메모리에 복사되지 않고 DMA(Direct Memory Access) 방식을 통해 액세스될 수 있다.The input image data may be accessed through a direct memory access (DMA) method without being copied to a memory.

사용자 영역과 커널 영역으로 나뉘어서 영상 데이터 입력부터 인코딩된 영상 데이터의 전송까지의 영상 관련 이벤트를 처리하되, 상기 영상 데이터 전송 방법은 상기 사용자 영역의 제어 스레드(control thread)가 상기 커널 영역의 각 드라이버에 대한 제어 설정을 초기에 설정하는 단계 및 상기 커널 영역이 상기 제어쓰레드의 설정을 기반으로 상기 영상 관련 이벤트를 상기 사용자 영역으로의 호출 없이 처리하는 단계를 더 포함할 수 있다.Related event from a video data input to a transmission of encoded video data by dividing the video data into a user area and a kernel area, wherein the control thread of the user area is connected to each driver of the kernel area And the kernel region may process the image related event without a call to the user area based on the setting of the control thread.

상기 커널 영역은 상기 영상 관련 이벤트를 인터럽트(interrupt)로 처리할 수 있다.The kernel area may process the image related event as an interrupt.

상기 제어쓰레드가 비디오 데이터 입력 드라이버로 전송하는 비디오 입력 설정 정보는 영상의 해상도 정보, 리사이즈(resize) 정보 및 프레임의 분할되는 단위 정보인 분할 단위 정보를 포함할 수 있다.The video input setting information transmitted by the control thread to the video data input driver may include resolution information of the image, resize information, and divided unit information, which is unit information of the frame.

상기 제어쓰레드가 인코더 드라이버로 전송하는 인코딩 설정 정보는 GOP(Group of Picture) 정보, 비트레이트 정보 및 품질(quality) 정보를 포함할 수 있다.The encoding setting information transmitted by the control thread to the encoder driver may include GOP (Group of Picture) information, bit rate information, and quality information.

상기 제어쓰레드가 이더넷 드라이버로의 데이터 전송 설정 정보는 IP 포트 정보 및 MAC 어드레스 정보를 포함할 수 있다.The data transmission setting information of the control thread to the Ethernet driver may include IP port information and MAC address information.

상기 인코딩된 영상 데이터는 페이로드로 하여 구성되는 패킷의 헤더에 포함되는 RTP(Real-Time Protocol) 정보는 상기 커널 영역의 통합 드라이버의 수도 스택(Pseudo Stack)을 통해 생성될 수 있다.The RTP (Real-Time Protocol) information included in the header of the packet composed of the encoded video data may be generated through a pseudo stack of the integrated driver of the kernel area.

상기한 목적을 달성하기 위한 본 발명의 영상 데이터를 전송하는 장치는, 영상 데이터를 입력받고 상기 입력받은 영상 데이터의 하나의 프레임을 복수 개로 분할하는 영상 입력부, 복수 개로 분할된 각각의 분할 프레임을 독립적으로 인코딩하는 인코딩부 및 분할 프레임 단위로 인코딩이 완료되는 대로 인코딩된 영상 데이터를 수신측으로 전송하는 데이터 전송부를 포함할 수 있다.According to an aspect of the present invention, there is provided an apparatus for transmitting image data, the apparatus including: an image input unit for receiving image data and dividing one frame of the received image data into a plurality of frames; And a data transmission unit for transmitting the encoded image data to the receiver upon completion of encoding in units of divided frames.

사용자 영역과 커널 영역으로 나뉘어서 영상 데이터 입력부터 인코딩된 영상 데이터의 전송까지의 영상 관련 이벤트를 처리하되, 상기 커널 영역은 상기 커널 영역의 각 드라이버에 대한 제어 설정을 초기에 설정하는 제어 쓰레드(control thread)를 포함하고, 상기 커널 영역은 상기 영상 입력부, 상기 인코딩부 및 상기 데이터 전송부를 포함할 수 있다.Related events from the input of the image data to the transmission of the encoded image data by dividing the kernel area into a user area and a kernel area, wherein the kernel area is a control thread for initially setting control settings for each driver of the kernel area ), And the kernel region may include the image input unit, the encoding unit, and the data transfer unit.

상기 사용자 영역의 제어 스레드가 상기 영상 입력부로의 비디오 입력 설정, 상기 인코딩부로의 인코딩 설정 및 상기 데이터 전송부로의 데이터 전송 설정을 초기에 설정하고 나면, 상기 커널 영역은 상기 제어쓰레드의 설정을 기반으로 상기 사용자 영역으로의 호출 없이 상기 영상 관련 이벤트를 처리할 수 있다.After the control thread of the user area initially sets the video input setting to the video input unit, the encoding setting to the encoding unit, and the data transfer setting to the data transfer unit, the kernel area is set based on the setting of the control thread The image related event can be processed without a call to the user area.

상기한 목적을 달성하기 위한 본 발명의 영상 데이터를 수신하는 방법은 인코딩된 영상 데이터를 수신하는 단계, 상기 수신되는 영상 데이터가 분할 프레임 - 분할 프레임은 하나의 프레임을 복수 개로 분할한 프레임을 나타냄 - 단위로 수신되는 대로 독립적으로 디코딩하는 단계 및 분할 프레임 단위로 디코딩된 영상 데이터를 하나의 프레임으로 조합하여 디스플레이하는 단계를 포함할 수 있다.According to another aspect of the present invention, there is provided a method of receiving image data, the method comprising: receiving encoded image data; dividing the received image data into a plurality of divided frames; And a step of combining the decoded image data in units of one frame and displaying the combined decoded image data.

상기 분할 프레임 단위로 독립적으로 디코딩하는 단계는 상기 분할 프레임을 상기 분할 프레임이 모두 수신되는 시점에 디코딩을 시작하는 단계를 포함할 수 있다.The step of independently decoding the divided frames may include starting decoding the divided frames at a time point when all of the divided frames are received.

상기 분할 프레임은 소정 분할 단위로 동일한 크기로 분할될 수 있다.The divided frames may be divided into equal sizes in a predetermined division unit.

상기 영상 데이터 수신 방법은 상기 분할 프레임을 디코딩하는 중에, 다음 번에 디코딩되어야 할 분할 프레임을 수신하여 버퍼에 저장하는 단계를 더 포함할 수 있다.The image data receiving method may further include receiving a divided frame to be decoded next time during decoding the divided frame and storing the divided frame in a buffer.

상기 영상 데이터 수신 방법은 사용자 영역과 커널 영역으로 나뉘어서 영상 데이터 수신부터 디코딩된 데이터의 재생까지의 영상 관련 이벤트를 처리하되, 상기 커널 영역에서 상기 영상 관련 이벤트를 상기 사용자 영역 호출 없이 처리하는 단계를 더 포함할 수 있다.Wherein the image data receiving method comprises the steps of processing a video related event from the reception of video data to the reproduction of decoded data by dividing into a user area and a kernel area and processing the video related event in the kernel area without calling the user area .

상기 커널 영역은 상기 영상 관련 이벤트를 인터럽트(interrupt)로 처리할 수 있다.The kernel area may process the image related event as an interrupt.

상기 인코딩된 영상 데이터는 페이로드로 하여 구성되는 패킷의 헤더에 포함되는 RTP(Real-Time Protocol) 정보는 상기 커널 영역의 통합 드라이버의 수도 스택(Pseudo Stack)을 통해 파싱될 수 있다.RTP (Real-Time Protocol) information included in the header of the packet composed of the encoded video data may be parsed through a pseudo stack of the integrated driver of the kernel area.

상기한 목적을 달성하기 위한 본 발명의 영상 데이터를 수신하는 장치는 인코딩된 영상 데이터를 수신하는 데이터 수신부, 상기 수신되는 영상 데이터가 분할 프레임 - 분할 프레임은 하나의 프레임을 복수 개로 분할한 프레임을 나타냄 - 단위로 수신되는 대로 독립적으로 디코딩하는 디코딩부 및 분할 프레임 단위로 디코딩된 영상 데이터를 하나의 프레임으로 조합하여 디스플레이되도록 제어하는 비디오 제어부를 포함할 수 있다.According to another aspect of the present invention, there is provided an apparatus for receiving image data, the apparatus comprising: a data receiver for receiving encoded image data; and a divided frame-division frame for the received image data represents a frame obtained by dividing one frame into a plurality of frames - decoding unit that independently decodes as it is received in units of one frame and a video controller that controls to display and display the video data decoded in units of divided frames in one frame.

사용자 영역과 커널 영역으로 나뉘어서 영상 데이터 수신부터 디코딩된 데이터의 재생까지의 영상 관련 이벤트를 처리하되, 상기 커널 영역은 상기 데이터 수신부, 상기 디코딩부 및 상기 비디오 제어부를 포함할 수 있다.The kernel region may include the data receiving unit, the decoding unit, and the video control unit, the video area being divided into a user area and a kernel area to process image related events from receiving image data to reproducing decoded data.

상기 커널 영역은 상기 영상 관련 이벤트를 상기 사용자 영역 호출 없이 처리할 수 있다.The kernel area may process the image related event without calling the user area.

본 발명의 영상 데이터 전송 및 수신 방법 및 장치에 따르면, 영상 데이터가 전송측에서는 분할된 프레임 단위로 입력, 인코딩 및 전송되고, 수신측에서도 분할 프레임 단위로 수신, 디코딩 및 출력 처리되어 영상 데이터의 전송 효율을 제고시키고 처리 시간을 단축시키는 효과가 있다.According to the video data transmission and reception method and apparatus of the present invention, video data is input, encoded and transmitted on a divided frame basis on the transmission side and received, decoded and output processed on a divided frame basis on the receiving side, It has the effect of improving the processing time and shortening the processing time.

또한, 본 발명의 영상 데이터 전송 및 수신 방법 및 장치에 따르면, 사용자 영역과 커널 영역 간의 호출 및 정보 교환 횟수를 줄여 영역간 오버헤드를 감소시키고 데이터 전송 효율을 높이는 효과가 있다.In addition, according to the method and apparatus for transmitting and receiving video data of the present invention, it is possible to reduce the number of calls and information exchanges between a user area and a kernel area, thereby reducing inter-area overhead and increasing data transmission efficiency.

도 1은 종래 기술에 따라 영상 데이터의 입력부터 데이터 수신측에서 영상을 출력할 때까지의 과정을 설명하기 위한 개념도,
도 2는 본 발명의 일 실시예에 따른 영상 데이터 전송 및 수신 시스템을 설명하기 위한 개념도,
도 3a은 본 발명의 일 실시예에 있어서, 비디오 입력부, 인코딩부 및 데이터 전송부가 분할 프레임을 처리하는 과정을 시간축 상에 각각 나타낸 도면,
도 3b는 본 발명의 다른 실시예에 있어서, 비디오 입력부, 인코딩부 및 데이터 전송부가 분할 프레임을 처리하는 과정을 시간축 상에 각각 나타낸 도면,
도 4는 본 발명의 일 실시예에 따른 영상 데이터 전송 장치를 개략적으로 나타낸 블록도,
도 5는 본 발명의 일 실시예에 따른 영상 데이터 전송 장치의 사용자 영역(응용 레벨)과 커널 영역(드라이브 레벨)의 구성 및 동작을 설명하기 위한 블록도,
도 6은 커널 영역의 통합 드라이버가 사용자 영역으로부터 제어 명령을 받아 패킷을 생성하여 실시간으로 전송하는 과정을 설명하기 위한 블록도,
도 7은 본 발명의 일 실시예에 따른 영상 데이터 수신 장치를 개략적으로 나타낸 블록도,
도 8는 본 발명의 일 실시예에 따른 영상 데이터 수신 장치의 사용자 영역(응용 레벨)과 커널 영역(드라이브 레벨)의 구성 및 동작을 설명하기 위한 블록도,
도 9는 커널 영역의 통합 드라이버가 사용자 영역으로부터 제어 명령을 받아 패킷을 수신하여 실시간으로 출력하는 과정을 설명하기 위한 블록도이다.
FIG. 1 is a conceptual diagram for explaining a process from inputting image data to outputting an image from a data receiving side according to the related art,
2 is a conceptual diagram for explaining an image data transmission and reception system according to an embodiment of the present invention;
FIG. 3A is a diagram illustrating a process of processing a divided frame by a video input unit, an encoding unit, and a data transmitting unit, respectively, on a time axis, according to an embodiment of the present invention;
FIG. 3B is a diagram illustrating a process of processing a divided frame by a video input unit, an encoding unit, and a data transmission unit on a time axis, according to another embodiment of the present invention;
4 is a block diagram schematically illustrating an image data transmission apparatus according to an embodiment of the present invention.
FIG. 5 is a block diagram for explaining the configuration and operation of a user area (application level) and a kernel area (drive level) of the image data transmission device according to an embodiment of the present invention;
6 is a block diagram for explaining a process in which a unified driver in a kernel area receives a control command from a user area to generate a packet and transmits the packet in real time;
7 is a block diagram schematically showing an image data receiving apparatus according to an embodiment of the present invention.
8 is a block diagram for explaining the configuration and operation of a user area (application level) and a kernel area (drive level) of an image data receiving apparatus according to an embodiment of the present invention;
9 is a block diagram for explaining a process of receiving a control command from a user area and receiving a packet and outputting the packet in real time.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail.

그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.It is to be understood, however, that the invention is not to be limited to the specific embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the relevant art and are to be interpreted in an ideal or overly formal sense unless explicitly defined in the present application Do not.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In order to facilitate the understanding of the present invention, the same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

영상 데이터의 전송 및 수신 시스템Video data transmission and reception system

도 2는 본 발명의 일 실시예에 따른 영상 데이터 전송 및 수신 시스템을 설명하기 위한 개념도이다. 도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 영상 데이터 전송 및 수신 시스템은 로컬 디바이스(210) 및 원격 디바이스(220)를 포함할 수 있다.2 is a conceptual diagram for explaining an image data transmission and reception system according to an embodiment of the present invention. 2, the system for transmitting and receiving image data according to an exemplary embodiment of the present invention may include a local device 210 and a remote device 220. As shown in FIG.

도 2를 참조하면, 로컬 디바이스(210)는 원격 디바이스(220)로 압축된(예컨대, 인코딩된) 영상을 전송할 수 있다. 로컬 디바이스(210)는 영상 데이터를 HDMI등의 입력 포트를 통해 외부로부터 입력받을 수 있다. 로컬 디바이스(210)는 영상 데이터의 인코딩을 수행하는 인코더(인코딩부로 불릴 수 있음)를 포함할 수 있다. 또한, 네트워크를 통해 데이터를 전송하는 데이터 전송부(예컨대, 이더넷 MAC(Media Access Control) 모듈을 포함할 수 있음)를 포함할 수 있다. 데이터 전송부는 유무선 네트워크를 통해 인코딩된 영상 데이터를 전송할 수 있다. 원격 디바이스(220)는 로컬 디아비스(210)로부터 인코딩된 영상 데이터를 수신하여 출력 포트와 연결된 디스플레이 장치(예컨대, 모니터)에 전송된 영상을 디스플레이하도록 제어할 수 있다. 원격 디바이스(220)는 영상 데이터를 수신하는 데이터 수신부, 디코더, 영상 데이터의 디스플레이를 제어하는 비디오 제어부를 포함할 수 있다. 로컬 디바이스(210)와 원격 디바이스(220)는 반드시 별도의 외부 영상 제공 수단 및 외부 영상 출력 수단을 구비해야만 하는 것은 아니고, 내부에 영상 제공 수단 및 영상 출력 수단을 구비하여 동작할 수 있다. 2, the local device 210 may transmit a compressed (e.g., encoded) image to the remote device 220. [ The local device 210 can receive video data from outside through an input port such as HDMI. The local device 210 may include an encoder (which may be referred to as an encoding unit) that performs encoding of the image data. It may also include a data transfer portion (e.g., may include an Ethernet MAC (Media Access Control) module) for transferring data over the network. The data transmission unit can transmit the encoded image data through the wired / wireless network. The remote device 220 may receive the encoded image data from the local device 210 and control to display the transmitted image on a display device (e.g., a monitor) coupled to the output port. The remote device 220 may include a data receiving unit for receiving image data, a decoder, and a video controller for controlling display of image data. The local device 210 and the remote device 220 need not necessarily have separate external image providing means and external image output means but may be provided with an image providing means and a video output means therein.

본 발명의 일 실시예에 따르면, 로컬 디바이스(210)는 모니터 영상을 포트를 통해 입력받을 수 있다. 이때, 입력되는 영상을 내부 메모리(예컨대, 버퍼일 수 있음)에 액세스할 때, 하나의 프레임 단위가 아닌 분할 프레임 단위로 복수 개로 분할하여 액세스할 수 있다. 로컬 디바이스(210)는 소정 분할 프레임 단위를 설정하여 설정된 분할 프레임 단위로 영상 프레임을 쪼갠 후, 내부 메모리에 액세스하여 저장할 수 있다. 분할 프레임은 n 등분된 프레임으로 설정될 수 있다. 이때, n은 2 이상의 자연수로 본 실시예에서는 4등분된 분할 프레임을 기준으로 설명하고자 한다. 다만, 반드시 이에 국한되는 것은 아니고, 반드시 등분될 필요도 없다. According to an exemplary embodiment of the present invention, the local device 210 may receive a monitor image via a port. At this time, when an input image is accessed to an internal memory (which may be, for example, a buffer), it can be divided into a plurality of divided frames for accessing instead of one for each frame. The local device 210 may set a predetermined divided frame unit, split the image frame in units of divided frames, and then access and store the divided data in the internal memory. The divided frame may be set to n equally divided frames. Herein, n is a natural number of 2 or more, and will be described with reference to divided frames divided into quadrants in this embodiment. However, it is not necessarily limited to this, and it does not necessarily have to be divided equally.

로컬 디바이스(210)는 분할 프레임 단위로 프레임을 분할하고 나서, 분할 프레임을 분할 프레임 단위로 인코딩한다. 즉, 하나의 프레임 데이터를 전부 입력받고 나서 인코딩을 시작하는 것이 아니라, 분할 프레임 데이터가 전부 입력되는 시점에 인코딩을 시작할 수 있다. 인코딩을 가장 상단 주사선부터 시작하여 분할 프레임의 가장 하단 주사선에서 완료되는 방식으로 수행될 수 있다. 또한, 분할 프레임의 인코딩이 완료되는 시점에 바로 압축된 영상을 원격 디바이스(220)로 전송할 수 있다. 이를 통해 프레임 단위로 입력받고 입력이 완료되면 인코딩이 수행되며, 프레임 단위 인코딩이 완료되야 영상을 전송하던 시간과 비교할 때, 분할 프레임 단위로 인코딩을 수행하면서 다음 분할 프레임에 해당하는 데이터를 입력받고 분할 프레임 단위로 인코딩되는 즉시, 데이터를 내보낼 수 있어, 영상 입력 시간(t-VI), 인코딩 시간(t-EN) 및 데이터 전송 시간(t-EX)을 1/4로 줄일 수 있다. The local device 210 divides a frame into units of divided frames, and then encodes the divided frames into units of divided frames. In other words, the encoding can be started at the time when the divided frame data is completely inputted, instead of starting the encoding after receiving all the one frame data. The encoding may be performed in a manner starting from the top scan line and ending at the bottom scan line of the split frame. In addition, the compressed image can be directly transmitted to the remote device 220 at the time when the encoding of the divided frames is completed. When the input is completed and the input is completed, the encoding is performed. When the frame encoding is completed, the data corresponding to the next divided frame is inputted while performing encoding in units of divided frames when compared with the time of transmitting the image. Immediately after being encoded in units of frames, data can be exported, and the video input time (t-VI), encoding time (t-EN) and data transmission time (t-EX) can be reduced to 1/4.

원격 디바이스(220)도 수신되는 압축 영상을 원격 디바이스(220)에서 설정한 분할 프레임 단위로 분할할 수 있다. 이는 약속에 의해 인코더와 동일하게 설정할 수도 있으나, 원격 디바이스(220) 자체적인 분할 단위 설정 또한 가능하다. 원격 디바이스(220)의 분할 프레임도 하나의 프레임을 4등분한 프레임을 사용하는 것으로 가정한다. 원격 디바이스(220)는 4등분된 분할 프레임 단위로 디코딩을 수행할 수 있다. 이 역시 분할 프레임 데이터가 모두 입력되는 시점부터 디코딩을 수행할 수 있다. 그리고는, 분할 프레임 단위로 디코딩이 완료되는 즉시 내부 메모리에 액세스하여 저장하고 모니터 등 디스플레이 장치를 통해 출력할 때는 하나의 프레임으로 조합하여 출력되도록 제어할 수 있다. 이를 통해, 디코딩 시간(t-DE)을 1/4로 단축시킬 수 있다. 다만, 영상의 출력 시간(t-VO)은 하나의 프레임을 완성하여 디스플레이하기 때문에, 단축되지 않을 수 있다. The remote device 220 may also divide the received compressed image into units of divided frames set by the remote device 220. It may be set to be the same as the encoder by appointment, but it is also possible to set the split unit of the remote device 220 itself. It is assumed that the divided frame of the remote device 220 also uses a frame obtained by dividing one frame into quarters. The remote device 220 may perform decoding in quadrant divided frames. It is also possible to perform decoding from the point in time when all the divided frame data are inputted. Then, as soon as decoding is completed in units of divided frames, the internal memory is accessed and stored, and when outputting through a display device such as a monitor, it can be controlled so as to be combined and output in one frame. Thus, the decoding time (t-DE) can be shortened to 1/4. However, the output time (t-VO) of the image may not be shortened because one frame is completed and displayed.

즉, 본 발명의 영상 전송 및 수신 방법에 따르면, 영상 전송 지연속도를 줄이기 위해, 하나의 프레임 영상을 소정 단위(예컨대, 1/4) 단위로 분할하여 각각을 독립적으로 처리하여 획기적으로 전송 시간을 단축시킬 수 있다. That is, according to the image transmission and reception method of the present invention, in order to reduce the image transmission delay rate, one frame image is divided into a predetermined unit (for example, 1/4) Can be shortened.

일반적인 영상 전송 시간(t-Total) = t-VI + t-EN + t-EX + t-DE + t-VO 인데, 반해, 본 발명에 따른 고속 영상 전송 시간(t-Total') = t-VI/4 + t-EN/4 + t-EX/4 + t-DE/4 + t-VO이 될 수 있고, 이는 60Hz의 프레임 레이트를 갖는 실시예에서 20ms보다 작은 값을 가질 수 있다. (T-total) = t-VI + t-EN + t-EX + t-DE + t-VO, V / 4 + t-EN / 4 + t-EX / 4 + t-DE / 4 + t-VO, which may have a value less than 20 ms in embodiments with a frame rate of 60 Hz.

도 3a은 본 발명의 일 실시예에 있어서, 비디오 입력부, 인코딩부 및 데이터 전송부가 분할 프레임을 처리하는 과정을 시간축 상에 각각 나타낸 도면이다. 여기서, 비디오 입력부는 영상 데이터를 입력받아 분할 프레임 단위로 분할하여 인코딩부로 전송할 수 있다. 인코딩부는 분할프레임이 전부 입력되는 시점부터 인코딩을 수행할 수 있으며, 분할 프레임 단위 인코딩이 완료되는 대로 데이터 전송부는 인코딩된 영상을 전송한다. FIG. 3A is a diagram illustrating, on a time axis, a process of processing a divided frame by a video input unit, an encoding unit, and a data transmitting unit, according to an embodiment of the present invention. Here, the video input unit may receive the video data, divide the video data into units of divided frames, and transmit the divided video data to the encoding unit. The encoding unit can perform encoding from a point in time when all the divided frames are inputted. When the divided frame unit encoding is completed, the data transmitting unit transmits the encoded image.

도 3a를 참조하면, 비디오 입력부는 제 1 분할 프레임을 T1/4시간동안 입력받을 수 있다. 여기서, T1은 하나의 프레임이 입력 완료되는 시점이고, 60Hz의 경우 16ms 정도일 수 있다. 또한, 도 3a의 실시예에서 하나의 분할 프레임은 프레임을 4등분한 프레임으로 가정한다. 비디오 입력부는 제 1 분할 프레임이 입력 완료되는 T1/4 시점에 해당 영상 데이터를 인코딩부로 전송한다. 인코딩부는 T1/4 시점부터 제 1 분할 프레임에 대한 인코딩을 시작한다. 도 3a의 실시예는 인코딩의 해상도를 다소 낮게 설정하여 하나의 분할 프레임에 대한 인코딩 완료 시점이 다음 분할 프레임의 입력 완료 시점보다 앞선 경우를 가정한다. 제 1 분할 프레임에 대한 인코딩이 완료되면 비디오 전송부는 바로 제 1 분할 프레임을 패킷으로 생성하여 실시간으로 RTP, UDP 또는 IP를 통해 원격 디바이스로 전송할 수 있다. 이때, 인코딩부는 제 1 분할 프레임의 인코딩이 완료된 시점부터 제 2 분할 프레임의 입력이 완료되는 시점인 2T1/4까지 대기한다. 그리고는, 제 2 분할 프레임이 입력 완료되는 2T1/4 시점에 제 2 분할 프레임의 인코딩을 수행하고, 데이터 전송부는 제 2 분할프레임의 인코딩이 완료되는 즉시 데이터를 원격 디바이스로 전송할 수 있다. 이러한 과정을 반복하여 하나의 프레임에 대해 T1 시점으로부터 제 4 분할 프레임의 인코딩 및 전송 시간을 더한만큼의 시점 내에서 처리가 완료될 수 있다. Referring to Figure 3a, it has a video input section a first divided frame to receive input for T 1/4 hour. Here, T 1 is a time point at which one frame is input, and may be about 16 ms at 60 Hz. Further, in the embodiment of FIG. 3A, one divided frame is assumed to be a frame obtained by dividing the frame into four equal parts. The video input unit may transmit the amount of 1 frame is divided input complete encoding the image data to the T 1/4 time being. Encoding unit starts the encoding of the first divided frame from the time T 1/4. In the embodiment of FIG. 3A, it is assumed that the resolution of the encoding is set to be somewhat lower and the encoding completion time for one divided frame is higher than the input completion time of the next divided frame. When the encoding of the first divided frame is completed, the video transmitting unit can directly generate the first divided frame as a packet and transmit it to the remote device through RTP, UDP, or IP in real time. At this time, the encoding unit and waits until the first divided from the time of encoding is completed in the frame time of the input of the second divided frame completed 2T 1/4. And, the second may be performing a second encoding of the divided frame to 2T 1/4 time of the divided frames is completed input, and to transfer the immediate data in which the data transfer unit is encoded in the second sub-frame is complete to the remote device. By repeating this process, the processing can be completed within a time point equivalent to the encoding and transmission time of the fourth divided frame from the time T 1 for one frame.

도 3b는 본 발명의 다른 실시예에 있어서, 비디오 입력부, 인코딩부 및 데이터 전송부가 분할 프레임을 처리하는 과정을 시간축 상에 각각 나타낸 도면이다.FIG. 3B is a diagram illustrating a process of processing a divided frame by a video input unit, an encoding unit, and a data transmitting unit, respectively, on a time axis in another embodiment of the present invention.

도 3b를 참조하면, 본 실시예에서도 역시 하나의 분할 프레임은 프레임을 4등분한 프레임으로 가정한다. 비디오 입력부는 제 1 분할 프레임이 입력 완료되는 T1/4 시점에 해당 영상 데이터를 인코딩부로 전송하고 인코딩부는 T1/4 시점부터 제 1 분할 프레임에 대한 인코딩을 시작한다. 도 3b의 실시예는 인코딩의 해상도를 다소 높게 설정하여 하나의 분할 프레임에 대한 인코딩 완료 시점이 다음 분할 프레임의 입력완료 시점보다 늦는 경우를 가정할 수 있다. 제 1 분할 프레임의 입력 완료 시점부터 인코딩을 개시하여 제 2 분할 프레임의 입력 완료 시점인 2T1/4를 지나서 제 1 분할 프레임에 대한 인코딩이 완료되면 비디오 전송부는 인코딩 완료 즉시, 제 1 분할 프레임을 패킷으로 생성하여 실시간으로 RTP, UDP 또는 IP를 통해 원격 디바이스로 전송할 수 있다. 인코딩부는 제 1 분할 프레임의 인코딩이 완료된 시점에 이미 제 2 분할 프레임의 입력이 완료되었기 때문에, 대기 시간 없이 바로 제 2 분할 프레임의 인코딩을 수행한다. 데이터 전송부는 제 2 분할프레임의 인코딩이 완료되는 즉시 데이터를 원격 디바이스로 전송하고, 제 2 분할 프레임의 인코딩 완료 시점에 제 3 분할 프레임 역시 이미 입력 완료되었기 때문에, 바로 제 3 분할 프레임에 대한 인코딩을 수행할 수 있다. 즉, 인코딩 및 데이터 전송부는 별도 대기시간 없이 바로바로 인코딩 및 데이터 패킷 전송을 수행할 수 있다. 이러한 과정을 반복하여 제 4 분할 프레임의 인코딩 및 데이터 전송이 완료될 때까지 수행하면 하나의 프레임의 영상 데이터의 처리가 마무리된다.
Referring to FIG. 3B, in this embodiment, one divided frame is also assumed to be a frame divided into quarters. The video input unit starts the first divided frame is input complete T 1/4 transfers the image data portion encoding in time and encoding portion T 1/4 the first encoding of the divided frame from the time. In the embodiment of FIG. 3B, it may be assumed that the resolution of encoding is set somewhat higher and the encoding completion time of one divided frame is later than the input completion time of the next divided frame. Claim 1 When starting the encoding from the input completion time of the divided frame to a second complete the input of the divided frame time of 2T 1/4 to beyond the first encoding of the division frame is complete video transmitting unit completes encoding instant, a first divided frame Packet, and transmit it to the remote device via RTP, UDP, or IP in real time. Since the input of the second divided frame has already been completed at the time when the encoding of the first divided frame is completed, the encoding unit encodes the second divided frame immediately without waiting time. The data transmission unit transmits the data to the remote device as soon as the encoding of the second divided frame is completed, and since the third divided frame has already been input at the completion of the encoding of the second divided frame, Can be performed. That is, the encoding and data transmission unit can directly perform encoding and data packet transmission without waiting time. This process is repeated until the encoding and data transmission of the fourth divided frame is completed, thereby completing the processing of the video data of one frame.

영상 데이터 전송 장치의 구성Configuration of image data transmission device

도 4는 본 발명의 일 실시예에 따른 영상 데이터 전송 장치를 개략적으로 나타낸 블록도이다. 도 4에 도시된 바와 같이, 본 발명의 일 실시예에 따른 영상 데이터 전송 장치(400)는 입력 포트(402), 버퍼(404), 영상 입력부(410), 인코딩부(420) 및 데이터 전송부(430)를 포함할 수 있다. 영상 입력부(410), 인코딩부(420), 데이터 전송부(430)는 드라이버로 연결된 하드웨어 프로세서, 외부 디바이스(비디오 콘트롤러, 인코더, 이더넷 프로세서 등)와 같은 구성요소일 수 있다.4 is a block diagram schematically showing an image data transmission apparatus according to an embodiment of the present invention. 4, an image data transmission apparatus 400 according to an exemplary embodiment of the present invention includes an input port 402, a buffer 404, an image input unit 410, an encoding unit 420, (Not shown). The video input unit 410, the encoding unit 420, and the data transmission unit 430 may be components such as a hardware processor connected by a driver, an external device (video controller, encoder, Ethernet processor, etc.).

도 4를 참조하면, 입력 포트(402)는 외부 영상 제공 장치로부터 영상 데이터를 입력 받을 수 있다. 입력 포트(402)는 HDMI, USB 포트, DVI 포트, D-SUB 포트, 오디오 입력 포트 등을 포함할 수 있고, 하나의 장치(400)에 복수 개의 입력 포트(402)가 존재할 수 있다. 입력 포트(402)에 연결되는 장치는 영상 데이터를 제공하는 수단, 예컨대, USB 메모리, 카메라, 휴대용 단말 등이 있을 수 있다. Referring to FIG. 4, the input port 402 may receive image data from an external image providing apparatus. The input port 402 may include an HDMI, a USB port, a DVI port, a D-SUB port, and an audio input port, and a plurality of input ports 402 may exist in one device 400. The device connected to the input port 402 may be means for providing image data, for example, a USB memory, a camera, a portable terminal, or the like.

영상 입력부(410)는 입력 포트(402)를 통해 입력되는 영상 데이터를 수신하여 미리 설정된 분할 프레임 단위로 분할하여 버퍼(404)에 저장할 수 있다. 영상 입력부(410)는 입력부(412) 및 분할부(414)를 포함할 수 있다. 입력부(412)는 입력 포트(402)를 통해 제공되는 영상 데이터를 입력받는 구성요소이다. 분할부(414)는 설정된 분할 프레임 단위로 영상 데이터를 분할하여 버퍼(404) 또는 인코딩부(420)로 제공할 수 있다. 분할부(414)는 인코딩부(420)에서의 인코딩 진행 상황을 보고 분할 프레임 데이터를 인코딩부(420)로 보낼지 버퍼(404)로 보낼지 결정할 수 있다. 만약, 현재 인코딩부(420)에서 인코딩이 진행중인 경우, 다음 번 분할 프레임 데이터를 바로 인코딩부(420)로 전송하지 않고, 버퍼(404)로 전송한다. 분할부(414)는 분할된 데이터의 최앞단 위치와 최후단 위치를 나타내는 정보를 생성하면서 프레임을 분할할 수 있다. 이는 추후 원격 디바이스(미도시)에서 프레임을 조합할 때 사용될 수 있다. The image input unit 410 may receive the image data input through the input port 402 and may divide the image data into a predetermined divided frame unit and store the divided image data in the buffer 404. The image input unit 410 may include an input unit 412 and a division unit 414. [ The input unit 412 is a component that receives image data provided through the input port 402. The division unit 414 may divide the image data in units of divided frames and provide the divided image data to the buffer 404 or the encoding unit 420. The division unit 414 may determine the encoding progress in the encoding unit 420 and determine whether to send the divided frame data to the encoding unit 420 or the buffer 404. If encoding is currently being performed in the encoding unit 420, the next divided frame data is not directly transmitted to the encoding unit 420 but is transmitted to the buffer 404. The partitioning unit 414 can divide the frame while generating information indicating the positions of the front end and the rear end of the divided data. This may be used when combining frames in a remote device (not shown) in the future.

분할부(414)는 프레임이 분할되는 단위 설정 정보를 참조하여 영상 데이터를 분할할 수 있다. 분할되는 단위 설정은 예컨대, 분할되는 프레임 개수 정보(예컨대, 3개, 4개 등), 분할되는 프레임의 크기 정보, 등분할 것인지에 대한 정보를 포함할 수 있다. 이러한 설정은 사용자 인터페이스(미도시)를 통해 추후에 변경가능하다. 또한, 데이터 전송 속도를 모니터링하면서, 전송 속도에 따라 분할되는 프레임 크기 또는 개수를 적응적으로 가변시키는 것도 가능하다. The division unit 414 can divide the image data by referring to the unit setting information in which the frame is divided. The unit setting to be divided may include, for example, information on the number of frames to be divided (for example, three, four, etc.), size information of the divided frame, These settings can be changed later through a user interface (not shown). It is also possible to adaptively vary the frame size or the number of frames divided according to the transmission rate while monitoring the data transmission rate.

버퍼(404)는 분할된 데이터 일시 보관하는 메모리이다. 이는 플래시 메모리, RAM(Random Access Memory)일 수 있다. 버퍼(404)는 인코딩부(420)의 인코딩 진행 상태를 보고, 현재 중인 분할 프레임의 인코딩이 완료되는 시점에 보유하고 있는 다음번 분할 프레임 데이터를 인코딩부(420)로 순차적으로 전송한다. The buffer 404 is a memory for temporarily storing divided data. This may be a flash memory or a random access memory (RAM). The buffer 404 reports the encoding progress of the encoding unit 420 and sequentially transmits the next divided frame data held at the time when the encoding of the current divided frame is completed to the encoding unit 420. [

인코딩부(420)는 영상 입력부(410) 또는 버퍼(404)로부터 전송되는 분할 프레임 데이터를 수신하여 인코딩을 수행한다. 인코딩에는 H.264/AVC, SVC, MVC(Multi-view Video Coding), HEVC 등의 MPEG 표준 기술이 사용될 수 있다. 인코딩부(420)는 분할 프레임 단위로 독립적으로 처리할 수 있다. 인코딩부(420)는 분할 프레임 데이터가 입력되는 대로 인코딩을 시작할 수 있고, 해당 분할 프레임의 인코딩이 완료되는 즉시 바로 데이터 전송부(430)로 인코딩된 영상 데이터를 전송할 수 있다.The encoding unit 420 receives the divided frame data transmitted from the image input unit 410 or the buffer 404 and performs encoding. For encoding, MPEG standard technologies such as H.264 / AVC, SVC, Multi-view Video Coding (MVC), and HEVC may be used. The encoding unit 420 can independently process the data in units of divided frames. The encoding unit 420 can start encoding as soon as the divided frame data is input and can transmit the encoded image data to the data transmitting unit 430 as soon as the encoding of the corresponding divided frame is completed.

데이터 전송부(430)는 인코딩부(420)로부터 전송된 분할 프레임 단위의 영상 데이터를 기반으로 패킷을 생성하여 RTP, UDP 및 IP 중 적어도 하나를 사용하여 원격 디바이스로 전송할 수 있다. 패킷 생성시, 인코딩된 영상 데이터를 페이로드에 포함시키고, RTP, UDP, IP 헤더 정보를 붙여 패킷을 구성할 수 있다. 데이터 전송부(430)는 인코딩부(420)로부터 인코딩 완료된 분할 프레임 데이터를 수신하는 즉시 패킷을 생성하여 실시간으로 원격 디바이스로 전송할 수 있다. 이를 통해 하나의 프레임 데이터가 모두 인코딩되는 시간동안 기다렸다가 전송함에 따른 지연시간을 감소시킬 수 있다. 데이터 전송부(430)는 안테나 및/또는 통신 프로세서 칩을 포함할 수 있다.
The data transmission unit 430 may generate a packet based on the image data of the divided frame unit transmitted from the encoding unit 420 and transmit the packet to the remote device using at least one of RTP, UDP, and IP. When the packet is generated, the encoded video data may be included in the payload and the RTP, UDP, and IP header information may be added to form a packet. The data transmission unit 430 may generate the packet as soon as it receives the encoded partitioned frame data from the encoding unit 420 and transmit the generated packet to the remote device in real time. Accordingly, it is possible to reduce the delay time due to transmission after waiting for the time that all the one frame data is encoded. The data transfer unit 430 may include an antenna and / or a communication processor chip.

영상 데이터 전송 장치의 사용자 영역 및 커널 영역의 기능The functions of the user area and the kernel area of the image data transmission device

도 5는 본 발명의 일 실시예에 따른 영상 데이터 전송 장치의 사용자 영역(응용 레벨)과 커널 영역(드라이브 레벨)의 구성 및 동작을 설명하기 위한 블록도이다. 도 5에 도시된 바와 같이, 본 발명의 일 실시예에 따른 영상 데이터 전송 장치는 사용자 영역(502: 응용 레벨)과 커널 영역(504: 드리이버 레벨)을 포함할 수 있다.5 is a block diagram illustrating a configuration and operation of a user area (application level) and a kernel area (drive level) of the image data transmission apparatus according to an embodiment of the present invention. As shown in FIG. 5, the video data transmission apparatus according to an exemplary embodiment of the present invention may include a user area 502 (application level) and a kernel area 504 (driver level).

도 5를 참조하면, 사용자 영역(502)은 특정 응용 프로그램을 통해 동작을 수행하는 영역이고, 커널 영역(504)은 하드웨어의 자원을 필요한 프로세스에 할당하고, 프로세스 제어(태스크 매니저), 메모리 제어, 프로그램이 운영체제에 요구하는 시스템 콜 등을 수행하는 영역이다. 이는 CPU 하드웨어 프로세서로 구현된다. 5, the user area 502 is an area for performing an operation through a specific application program. The kernel area 504 allocates hardware resources to necessary processes, and controls the process control (task manager), memory control, This is the area where the program performs the system calls required by the operating system. It is implemented as a CPU hardware processor.

본 발명의 일 실시예에 따르면, 응용 레벨(502)에는 비디오 쓰레드(510) 및 제어 쓰레드(512)가 위치할 수 있다. 비디오 쓰레드(510)는 비디오 입력부(520)에 대해 상태 폴링을 지시하고 이에 대한 상태 결과를 수신하여 제어 쓰레드(512)로 상태를 보고하는 기능을 수행하는 소프트웨어 모듈일 수 있다. 이는 반드시 필요한 구성요소는 아니고, 경우에 따라 비디오 쓰레드(510) 없이 동작할 수도 있다. 제어 쓰레드(512)는 비디오 입력 ISR(522: Interrupt Service Routine), 인코더 ISR(522) 및 이더넷 드라이버(542)로 각각 비디오 입력 제어 정보, 인코딩 제어 정보 및 데이터 전송 설정 정보를 제공한다. 제어 쓰레드(512)는 한번 비디오 입력 제어 정보, 인코딩 제어 정보 및 데이터 전송 설정 정보를 커널 내의 각 ISR 및 드라이버로 전송하고 나면, IP 설정이나 해상도 변경과 같은 상태 변경이 있기 전까지 재차 제어정보를 제공하지 않을 수 있다. 이를 통해, 드라이버 액세스시 발생하는 오버헤드를 줄일 수 있다. According to one embodiment of the present invention, video thread 510 and control thread 512 may be located at application level 502. [ Video thread 510 may be a software module that performs the function of directing status polling to video input 520 and receiving status results therefrom and reporting status to control thread 512. [ This is not necessarily a necessary component and may optionally operate without video thread 510. Control thread 512 provides video input control information, encoding control information, and data transmission configuration information to a video input ISR (Interrupt Service Routine) 522, an encoder ISR 522, and an Ethernet driver 542, respectively. Once the control thread 512 has transmitted the video input control information, the encoding control information, and the data transfer setting information to each ISR and driver in the kernel, it does not provide control information again until there is a status change such as IP setting or resolution change . This reduces the overhead incurred in accessing the driver.

커널 영역(504)는 비디오 입력부(520), 인코딩부(530) 및 이더넷 MAC 모듈(540)과 같은 하드웨어 구성요소 및 비디오 입력부 ISR(522), 인코더 ISR(532) 및 이더넷 드라이버(542)와 같은 소프트웨어 모듈을 포함할 수 있다. 비디오 입력부(520)는 HDMI와 같은 입력포트를 통해 영상 데이터를 입력 받고, 비디오 입력부 ISR(522)로 인터럽트를 전달하여, 현재 프로세스를 끊고 영상 데이터의 처리가 이루어질 수 있도록 한다. 비디오 입력부 ISR(522)은 제어 쓰레드(512)로부터 비디오 입력 설정 정보를 수신하여 이를 토대로 영상을 분할하도록 제어할 수 있다. 이때 수신되는 비디오 입력 설정 정보에는 영상의 해상도 정보, 리사이즈(resize) 정보 및 프레임의 분할 단위 정보(얼마 단위로 분할할지에 대한 정보 포함) 등이 포함될 수 있다. 이는 애플리케이션 기능적인 정보가 포함될 수 있다. 이러한 제어 정보를 통해 비디오 입력부(510)는 영상을 버퍼 등의 내부 메모리에 저장할 수 있다. 이때, 영상 데이터는 메모리 복사(memory copy)하지 않고 DMA(Direct Memory Access)를 통해 메모리에 접근할 수 있다. DMA를 통해 내부 메모리에 저장된 분할 프레임 영상 데이터는 인코딩부(530)로 전송되어 인코딩부(530)를 통해 인코딩된다. 이때, 인코더 ISR(532)로 인터럽트를 줘서 인터럽트를 발생시키고, 인코딩이 수행될 수 있도록 프로세스를 할당받을 수 있다. 인코딩부(530)를 통해 압축된 영상도 내부 메모리에 DMA를 통해 저장될 수 있다. 인코더 ISR(532)로 제공되는 인코딩 설정 정보에는 GOP(Group of Picture) 정보(I 프레임과 다음 I 프레임 사이의 픽처 그룹에 대한 정보), 비트레이트 정보 및 품질 정보 등을 포함할 수 있다. 별도의 사용자 영역(502)으로부터의 설정 정보 변경이 없는한, 시스템 콜(호출) 없이 이러한 인코딩 설정 정보에 의해 인코딩이 수행되어 DMA가 수행된다. 이더넷 MAC 모듈(540)은 이더넷 드라이버(542)의 설정 정보에 따라 인코딩된 분할 프레임 영상 데이터를 패킷화하여 원격 디바이스로 전송할 수 있다. 이더넷 드라이버(542)로 전송되는 비디오 전송 설정 정보는 IP 주소, 포트 정보 및 MAC 어드레스(address) 정보를 포함할 수 있다. 즉, 한번 해당 패킷의 IP 주소, 포트 정보 및 목적지에 대한 MAC 어드레스 정보가 설정되면, 사용자 영역(502)으로부터의 특별한 설정 변경 요청이 없는 한 커널 영역(504)에서 패킷 생성 및 패킷 전송 동작이 수행된다. 이더넷 MAC 모듈(540)은 PHY(물리 계층)의 동작 구성요소를 포함할 수 있다. 보다 구체적으로, 이더넷 MAC 모듈(540)은 이더넷에서 사용하는 데이터링크 프레임 중 MAC 패킷을 생성할 수 있다. MAC 패킷은 목적지 주소, 발신지 주소, 길이 정보 및 영상 데이터(패ELD 포함) 및 CRC 비트를 포함하여 생성될 수 있다. 이더넷 MAC 모듈(540)은 충돌이 발생할 경우 감지하고 전송을 중단시키기 위한 시간인 슬롯 타임(slot time)이 필요한데, 최소한의 슬롯 타임 동안 계속 데이터를 전송할 수 있도록 최소 패킷 길이(최소 프레임 길이라고도 불림)를 설정하여 데이터 패킷을 생성할 수 있다. 최소 패킷 길이는 64 ㅂ바이트(byte)일 수 있다. The kernel region 504 includes hardware components such as a video input 520, an encoding unit 530 and an Ethernet MAC module 540 and a video input unit ISR 522, an encoder ISR 532, and an Ethernet driver 542 Software modules. The video input unit 520 receives image data through an input port such as HDMI and transmits an interrupt to the video input unit ISR 522 to interrupt the current process and process image data. The video input unit ISR 522 receives video input setting information from the control thread 512 and can control to divide the video based on the received video input setting information. At this time, the received video input setting information may include resolution information of an image, resize information, and divided unit information of the frame (including information on how to divide the unit). This may include application functional information. Through the control information, the video input unit 510 can store an image in an internal memory such as a buffer. At this time, the image data can be accessed through DMA (direct memory access) without memory copy. The divided frame image data stored in the internal memory via the DMA is transmitted to the encoding unit 530 and is encoded through the encoding unit 530. [ At this time, an interrupt is generated by giving an interrupt to the encoder ISR 532, and a process can be allocated so that encoding can be performed. An image compressed through the encoding unit 530 can also be stored in the internal memory through DMA. The encoding setting information provided to the encoder ISR 532 may include GOP (Group of Picture) information (information on a picture group between an I frame and a next I frame), bit rate information, quality information, and the like. Unless there is a change in the setting information from the separate user area 502, the encoding is performed by such encoding setting information without a system call (call), and DMA is performed. The Ethernet MAC module 540 may packetize the encoded divided frame image data according to the setting information of the Ethernet driver 542 and transmit it to the remote device. The video transmission setting information transmitted to the Ethernet driver 542 may include an IP address, port information, and MAC address information. That is, once the IP address, port information, and destination MAC address information of the corresponding packet are set, a packet generation and packet transmission operation is performed in the kernel area 504 unless there is a special setting change request from the user area 502 do. The Ethernet MAC module 540 may include operational components of the PHY (physical layer). More specifically, the Ethernet MAC module 540 may generate a MAC packet among the data link frames used in the Ethernet. The MAC packet can be generated including destination address, source address, length information, and image data (including L ELD) and CRC bits. The Ethernet MAC module 540 detects a collision and needs a slot time, which is a time for stopping the transmission. A minimum packet length (also referred to as a minimum frame length) is set so that data can be continuously transmitted for a minimum slot time. To generate a data packet. The minimum packet length can be 64 bytes.

전체적으로, 영상 관련 이벤트는 인터럽트로 처리하되, 커널 레벨(504)에서 처리되도록 할 수 있다. 다만, 전술한 바와 같이, 영상의 해상도, IP 설정 변경 등의 고속처리가 필요없는 제어 정보의 처리는 사용자 영역(502)에서 처리될 수 있다.
Overall, video-related events can be handled as interrupts, but processed at kernel level 504. However, as described above, the processing of control information that does not require high-speed processing such as image resolution, IP setting change, and the like can be processed in the user area 502. [

커널 영역의 통합 드라이버의 동작Behavior of integrated driver in kernel area

도 6은 커널 영역의 통합 드라이버가 사용자 영역으로부터 제어 명령을 받아 패킷을 생성하여 실시간으로 전송하는 과정을 설명하기 위한 블록도이다. 도 6에 도시된 바와 같이, 본 발명의 일 실시예에 따른 영상 데이터 전송 장치는 사용자 영역(602) 및 커널 영역(604)을 포함할 수 있다.6 is a block diagram illustrating a process in which a unified driver in a kernel area receives a control command from a user area to generate a packet and transmits the packet in real time. As shown in FIG. 6, the apparatus for transmitting image data according to an exemplary embodiment of the present invention may include a user area 602 and a kernel area 604.

도 6을 참조하면, 사용자 영역(602)은 제어 정보를 전송하는 제어 쓰레드(605)를 포함할 수 있다. 제어 쓰레드(605)는 커널 영역(604)의 통합 드라이버(620)로 비디오 입력 설정 정보, 인코딩 설정 정보 및 패킷 설정 정보를 제공할 수 있다.Referring to FIG. 6, the user area 602 may include a control thread 605 that transmits control information. The control thread 605 may provide video input configuration information, encoding configuration information, and packet configuration information to the integrated driver 620 of the kernel area 604.

본 발명의 일 실시예에 따르면, 커널 영역(604)의 비디오 입력과 관련된 드라이버, 인코더와 관련된 드라이버를 통합하여 통합 드라이버(620)로 구현할 수 있다. 통합 드라이버(620)는 비디오 입력부(610)에서 DMA로 입력되는 영상 데이터에 대해 분할 프레임 단위로 독립적으로 인코딩이 수행되도록 제어하여 생성된 인코딩된 영상 데이터(632)를 패킷의 페이로드로 구성할 수 있다. According to an embodiment of the present invention, a driver related to the video input of the kernel area 604 and a driver related to the encoder may be integrated into the integrated driver 620. The integrated driver 620 may configure the encoded video data 632 generated by controlling the video data input from the video input unit 610 to be independently encoded in units of divided frames for the video data input from the DMA to the payload of the packet have.

본 발명의 일 실시예에 따르면, 리눅스 운영 체제 응용레벨의 UDP 스택을 사용하지 않고, 커널 레벨(604)의 통합 드라이버(620)에서 RTP, UDP 및 IP 프로토콜 스택을 직접 구현할 수 있다. 다만, 영상 패킷 외의 일반 이더넷 데이터(ARP(Address Resolution Protocol), ICMP(Internet Control Message Protocol) 등)들은 정상적으로 리눅스 운영 체제로 전달될 수 있다. 즉, IP 설정 변경이나 ARP 등의 처리는 응용 레벨(602)에서 처리되도록 한다. According to one embodiment of the present invention, the RTP, UDP, and IP protocol stacks can be directly implemented in the integrated driver 620 of the kernel level 604 without using the UDP stack of the Linux operating system application level. However, the general Ethernet data (ARP (Address Resolution Protocol), ICMP (Internet Control Message Protocol), etc.) other than the video packet can be normally transmitted to the Linux operating system. That is, processing such as IP setting change or ARP is processed at the application level 602. [

통합 드라이버(620)의 수도 스택(622: pseudo stack)은 영상 패킷을 인코더 영역에서 디바이스 드라이버로 바로 전송하기 위해, 디바이스 드라이버의 리눅스 소켓(socket) 관련 작업을 수행할 수 있다. 즉, 이는 리눅스 소켓과 호환가능하게 설계된다. 수도 스택(622)은 RTP 스택, UDP 스택 및 IP 스택일 수 있다. 이를 통해 RTP 패킷, UDP 패킷 및 IP 패킷을 생성할 수 있다. 즉, 수도 스택(622)은 제어 쓰레드(605)로부터의 패킷 헤더 정보를 기반으로 RTP, UDP 및 IP 패킷 헤더를 생성하여 패킷을 감쌀 수 있다. The pseudo stack 622 of the integrated driver 620 can perform a Linux socket related operation of the device driver to directly transfer the video packet from the encoder region to the device driver. That is, it is designed to be compatible with Linux sockets. The metric stack 622 may be an RTP stack, a UDP stack, and an IP stack. This allows RTP packets, UDP packets and IP packets to be generated. That is, the count stack 622 may generate RTP, UDP, and IP packet headers based on the packet header information from the control thread 605 to wrap the packet.

최종적으로, 수도 스택(622)에서 헤더 정보를 붙여서 생성된 패킷은 이더넷 MAC 구성요소(640)를 통해 원격 디바이스로 전송될 수 있다. 이때, 이더넷 네트워크 전송망의 상태에 따라 압축률과 패킷 사이즈 등을 자동으로 조절되도록 할 수 있다.
Finally, packets generated by attaching header information in the numeric stack 622 may be transmitted to the remote device via the Ethernet MAC component 640. At this time, the compression rate and the packet size can be automatically adjusted according to the state of the Ethernet network transmission network.

영상 데이터 수신 장치The video data receiving device

도 7은 본 발명의 일 실시예에 따른 영상 데이터 수신 장치를 개략적으로 나타낸 블록도이다. 도 7에 도시된 바와 같이, 본 발명의 일 실시예에 따른 영상 데이터 수신 장치(700)는 데이터 수신부(710), 디코딩부(720) 및 비디오 출력부(730)를 포함할 수 있다.7 is a block diagram schematically showing an image data receiving apparatus according to an embodiment of the present invention. 7, the video data receiving apparatus 700 according to an embodiment of the present invention may include a data receiving unit 710, a decoding unit 720, and a video output unit 730.

도 7을 참조하면, 데이터 수신부(710)는 로컬 디바이스(미도시)로부터 인코딩된 데이터 패킷을 수신하여 미리 설정된 분할 프레임 단위로 분할할 수 있다. 데이터 수신부(710)는 수신부(712) 및 분할부(714)를 포함할 수 있다. 수신부(710)는 인코딩된 데이터 패킷을 수신한다. 수신부(710)는 안테나 및/또는 통신 프로세서 칩을 포함할 수 있다. 수신부(710)는 패킷을 파싱하여 패킷 내의 페이로드, 즉 인코딩된 영상 데이터를 추출할 수 있다. 분할부(714)는 수신부(712)로부터 인코딩된 영상 데이터를 수신하여 미리 설정된 분할 프레임 단위로 분할할 수 있다. 미리 설정된 분할 프레임 관련 정보는 분할 프레임 크기, 분할 프레임 개수 등의 정보를 포함할 수 있다. 이는 패킷 내에 분할 프레임 관련 정보로써 포함되어 로컬 디바이스의 인코딩부와 서로 알고 있는 정보일 수 있다. 분할부(714)는 분할 프레임 데이터를 디코딩부(720)로 바로 전송할 수도 있고, 디코딩부(720)가 디코딩을 수행 중이라면 버퍼(716)에 저장할 수도 있다. 버퍼(716)는 RAM과 같은 내부 메모리로써, 데이터를 저장할 수 있다. 버퍼(716)는 디코딩부(720)의 인코딩 진행 상태를 보고, 현재 디코딩 중인 분할 프레임의 디코딩이 완료되는 시점에 보유하고 있는 다음번 분할 프레임 데이터를 디코딩부(720)로 순차적으로 전송한다. Referring to FIG. 7, the data receiving unit 710 may receive a data packet encoded from a local device (not shown) and divide it into a predetermined divided frame unit. The data receiving unit 710 may include a receiving unit 712 and a dividing unit 714. Receiving unit 710 receives the encoded data packet. The receiver 710 may include an antenna and / or a communications processor chip. The receiving unit 710 can extract the payload in the packet, i.e., the encoded image data, by parsing the packet. The division unit 714 can receive the encoded image data from the receiving unit 712 and divide it into a predetermined division frame unit. The predetermined divided frame related information may include information such as the divided frame size, the number of divided frames, and the like. This may be information contained in the packet as divided frame related information and known to each other with the encoding unit of the local device. The division unit 714 may transmit the divided frame data directly to the decoding unit 720 or may store the divided frame data in the buffer 716 if the decoding unit 720 is performing decoding. The buffer 716 is an internal memory such as a RAM, and can store data. The buffer 716 reports the encoding progress of the decoding unit 720 and sequentially transmits the next divided frame data held at the time when the decoding of the divided frame currently being decoded is completed to the decoding unit 720.

디코딩부(420)는 데이터 수신부(710) 또는 버퍼(716)로부터 전송되는 분할 프레임 데이터를 수신하여 디코딩을 수행한다. 디코딩에도 인코딩과 마찬가지로 H.264/AVC, SVC, MVC(Multi-view Video Coding), HEVC 등의 MPEG 표준 기술이 사용될 수 있다. 디코딩은 인코딩에서 사용한 표준 기술과 대응되는 디코딩 기술이 사용될 수 있다. 디코딩부(720)는 분할 프레임 단위로 독립적으로 처리할 수 있다. 디코딩부(720)는 분할 프레임 데이터가 입력 완료되는 대로 디코딩을 시작할 수 있고, 해당 분할 프레임의 디코딩이 완료되는 즉시 바로 비디오 출력부(730)로 디코딩된 영상 데이터를 전송할 수 있다.The decoding unit 420 receives the divided frame data transmitted from the data receiving unit 710 or the buffer 716 and performs decoding. As with encoding, MPEG standard technologies such as H.264 / AVC, SVC, Multi-view Video Coding (MVC) and HEVC can be used for decoding. For decoding, a decoding technique corresponding to the standard technique used in the encoding may be used. The decoding unit 720 can perform processing independently on a divided frame basis. The decoding unit 720 can start decoding when the divided frame data is input and can transmit the decoded video data to the video output unit 730 as soon as the decoding of the corresponding divided frame is completed.

비디오 출력부(730)는 디코딩부(720)로부터 전송된 디코딩된 분할 프레임 단위의 영상 데이터를 조합하여 출력 포트(732)에 연결된 디스플레이 디바이스(예컨대, 모니터, 스마트 TV, 노트북, 휴대용 단말 등)에 제공할 수 있다. 영상 데이터는 하나의 프레임 단위로 조합될 수 있다. 이때, 분할 프레임 별로 최초 위치 및 최종 위치와 관련된 정보가 같이 전달되어 분할 프레임의 연접시 이를 참조할 수 있다. 비디오 출력부(730)는 내부 버퍼(732)를 이용하여 디코딩된 분할 프레임을 임시 저장할 수 있다. 즉, 4등분된 분할 프레임 중 앞선 3개의 분할 프레임은 4번째 분할 프레임이 도착할 때까지 버퍼에 임시 보관되어 있다가 4번째 분할 프레임이 도착되면 조합하여 하나의 프레임으로써 출력 포트(732)를 통해 디스플레이 디바이스에 디스플레이될 수 있다. The video output unit 730 combines the decoded video data of the divided frames transmitted from the decoding unit 720 and outputs the decoded video data to a display device (e.g., a monitor, a smart TV, a notebook, a portable terminal, etc.) connected to the output port 732 . The video data can be combined in one frame unit. At this time, the information related to the initial position and the final position are transmitted together for each divided frame, so that they can be referenced when the divided frames are connected. The video output unit 730 may temporarily store the decoded divided frames using the internal buffer 732. [ That is, the preceding three divided frames of the four divided frames are temporarily stored in the buffer until the fourth divided frame arrives. When the fourth divided frames arrive, they are combined and output as one frame through the output port 732 Can be displayed on the device.

이를 통해 하나의 프레임 데이터가 모두 수신되고 수신된 하나의 프레임이 모두 디코딩되는 시간동안 기다렸다가 디스플레이를 수행함에 따른 데이터 수신 및 출력 지연시간을 감소시킬 수 있다.
Accordingly, it is possible to reduce the data reception and output delay time as a result of performing display after waiting for one frame data to be completely received and all the received frames are decoded.

영상 데이터 수신 장치의 사용자 영역 및 커널 영역의 기능The function of the user area and the kernel area of the video data receiving apparatus

도 8는 본 발명의 일 실시예에 따른 영상 데이터 수신 장치의 사용자 영역(응용 레벨)과 커널 영역(드라이브 레벨)의 구성 및 동작을 설명하기 위한 블록도이다. 도 8에 도시된 바와 같이, 본 발명의 일 실시예에 따른 영상 데이터 수신 장치는 사용자 영역(802: 응용 레벨)과 커널 영역(804: 드리이버 레벨)을 포함할 수 있다.8 is a block diagram for explaining the configuration and operation of a user area (application level) and a kernel area (drive level) of the image data receiving apparatus according to an embodiment of the present invention. As shown in FIG. 8, the image data receiving apparatus according to an embodiment of the present invention may include a user area 802 (application level) and a kernel area 804 (driver level).

도 8을 참조하면, 응용 레벨(802)에는 비디오 쓰레드(810) 및 제어 쓰레드(812)가 위치할 수 있다. 비디오 쓰레드(810)는 이더넷 ISR(824)로부터 현재 네트워크 전송 상태 정보를 보고받고, 이를 제어쓰레드(812)로 보고할 수 있다. 네트워크 전송 상태 정보는 추후 디코더 ISR(832) 및 비디오 드라이버(842)로의 제어 정보에 영향을 줄 수 있다. 만약, 현재 네트워크 상태를 채널 상태 정보(CSI: Channel State Indicator)를 통해 파악할 수 있고, 전송 속도 등이 좋지 않으면, 디코더 ISR(832)로 디코딩 해상도 및 비트 레이트를 자체적으로 변경하도록 할 수 있다. 또는 디스플레이되는 프레임 레이트를 변경할 수도 있다. 이때는 설정 변경을 위해 시스템 콜이 필요할 수 있다. 다만, 디코딩 프로세스에서는 인코딩 측에서 인코딩된 데이터에 대한 코딩 정보가 표준화된 규약에 의해 모두 포함되어 있으므로 특별한 상황 변화 또는 사용자의 개입 없이는 별도의 제어정보를 커널 영역(804)으로 제공하지 않을 수 있다. 즉, 모든 디코딩 및 디스플레이 처리가 커널 영역(804) 내에서 이루어질 수 있다.. Referring to FIG. 8, application level 802 may include video thread 810 and control thread 812. The video thread 810 may receive the current network transmission status information from the Ethernet ISR 824 and report it to the control thread 812. The network transmission status information may affect control information to the decoder ISR 832 and the video driver 842 in the future. If the current network status can be grasped through CSI (Channel State Indicator) and the transmission speed is not good, the decoder ISR 832 can change the decoding resolution and the bit rate by itself. Or may change the frame rate being displayed. At this time, a system call may be required to change the setting. However, in the decoding process, since the coding information for the encoded data on the encoding side is all included by the standardized protocol, it is possible not to provide separate control information to the kernel area 804 without special situation change or user intervention. That is, all decoding and display processing can be done in the kernel area 804.

커널 영역(804)는 이더넷 MAC 모듈(820), 디코딩부(830) 및 비디오 출력부(840)와 같은 하드웨어 구성요소를 포함하고, 이더넷 드라이버(822), 이더넷 ISR(824), 디코더 ISR(832) 및 비디오 드라이버(842)와 같은 소프트웨어 모듈을 포함할 수 있다. The kernel region 804 includes hardware components such as an Ethernet MAC module 820, a decoding unit 830 and a video output unit 840 and includes an Ethernet driver 822, an Ethernet ISR 824, a decoder ISR 832 ) And a video driver 842, as shown in FIG.

이더넷 MAC 모듈(820)은 로컬 디바이스(미도시)로부터 인코딩된 영상 데이터 패킷을 수신하여 패킷을 파싱하고 영상 데이터를 추출할 수 있다. 그리고는, 영상 데이터를 복수 개의 분할 프레임 단위로 분할할 수 있다. 분할 프레임 단위 및 분할 정보는 인코딩된 영상 데이터 내에 포함되어 이를 파싱하여 획득할 수 있다. 이더넷 드라이버(822)는 이더넷 MAC 모듈(820)을 구동시키기 위한 드라이버로 커널 영역 내에 설치된 소프트웨어 모듈일 수 있다. 이더넷 드라이버(822)는 영상 데이터를 수신하는 경우 이더넷 ISR(824)에 인터럽트를 걸어 현재 프로세스를 중단시키고, 영상 수신 동작을 위한 프로세스를 할당받는다. 이를 통해 생성된 분할 프레임 압축 영상은 DMA를 통해 내부 메모리(예컨대, 버퍼)에 저장될 수 있다. The Ethernet MAC module 820 receives the encoded image data packet from a local device (not shown), parses the packet, and extracts the image data. Then, the video data can be divided into a plurality of divided frame units. The divided frame unit and the division information can be included in the encoded image data and can be obtained by parsing the divided image data. The Ethernet driver 822 may be a software module installed in the kernel area as a driver for driving the Ethernet MAC module 820. When receiving the image data, the Ethernet driver 822 interrupts the Ethernet ISR 824 to stop the current process and is allocated a process for the image reception operation. The divided frame compressed image generated through this can be stored in an internal memory (e.g., a buffer) via DMA.

디코딩부(830)는 DMA를 통해 저장된 분할 프레임 압축 영상을 입력으로 받아 디코딩을 수행한다. 이때, 디코더 ISR(832)로 인터럽트를 줘서 인터럽트를 발생시키고, 디코딩이 수행될 수 있도록 프로세스를 할당받을 수 있다. 디코딩부(830)를 통해 디코딩된 영상도 내부 메모리에 DMA를 통해 저장될 수 있다. 디코더 ISR(832)은 특수 상태에 따른 설정 변경(예컨대, 네트워크 상태에 따른 해상도의 강제 변경, 디코딩 설정 변경)에 따른 제어 정보를 제어쓰레드(812)로부터 수신할 수 있다. 이때는 수신된 설정 변경 정보에 입각하여 디코딩을 수행할 수 있다. 별도의 사용자 영역(802)으로부터의 설정 정보 변경이 없는한, 시스템 콜(호출) 없이 압축 데이터에 포함된 디코딩 관련 정보를 기반으로 디코딩이 수행되고 DMA가 수행된다.The decoding unit 830 receives the divided frame compressed image stored through the DMA and performs decoding. At this time, an interrupt is generated by giving an interrupt to the decoder ISR 832, and a process can be allocated so that decoding can be performed. The decoded image through the decoding unit 830 can also be stored in the internal memory through DMA. The decoder ISR 832 can receive control information from the control thread 812 in accordance with a setting change according to a special status (for example, a forced change of the resolution according to the network conditions, a change in the decoding setting). At this time, it is possible to perform decoding based on the received setting change information. The decoding is performed based on the decoding related information included in the compressed data and the DMA is performed without a system call (call) unless the setting information is changed from the separate user area 802.

비디오 출력부(840)는 디코딩된 분할 프레임 정보를 수신하여 하나의 프레임 단위로 조합하여 출력 포트(HDMI와 같은 포트를 포함함)를 통해 디스플레이 장치로 내보낸다. 비디오 드라이버(842)는 비디오 출력부(840)를 제어할 수 있는 소프트웨어 모듈로써, 영상을 플레이할 때나 미디어 플레이를 할 때 필요한 비디오 관련 프로그램일 수 있다. 비디오 드라이버(842)는 제어쓰레드(812)로부터 영상 데이터의 출력 관련 설정 정보를 수신하여 해당 설정에 맞제 영상을 출력할 수 있다. The video output unit 840 receives the decoded divided frame information, combines the decoded divided frame information in units of one frame, and outputs the decoded divided frame information to a display device through an output port (including a port such as HDMI). The video driver 842 is a software module that can control the video output unit 840 and may be a video related program required when playing a video or playing a media. The video driver 842 may receive the output-related setting information of the video data from the control thread 812 and output the matching video to the corresponding setting.

사용자 영역(802)으로부터의 특별한 설정 변경 요청이 없는 한 커널 영역(804)에서 패킷 수신, 디코딩 및 영상 출력까지의 모든 동작이 사용자 영역(802)으로/에서의 호출 없이 수행된다. 즉, 이와 같은 수신 장치에서의 영상 관련 이벤트는 인터럽트로 처리하되, 모두 커널 레벨(804)에서 처리되도록 할 수 있다.
All operations up to packet reception, decoding, and video output in the kernel area 804 are performed without a call to / from the user area 802, unless there is a specific configuration change request from the user area 802. That is, video related events in such a receiving apparatus can be processed as an interrupt, but all are processed at the kernel level 804. [

커널 영역의 통합 드라이버의 동작Behavior of integrated driver in kernel area

도 9는 커널 영역의 통합 드라이버가 사용자 영역으로부터 제어 명령을 받아 패킷을 수신하여 실시간으로 출력하는 과정을 설명하기 위한 블록도이다. 도 9에 도시된 바와 같이, 본 발명의 일 실시예에 따른 영상 데이터 수신 장치는 사용자 영역(902) 및 커널 영역(904)을 포함할 수 있다.9 is a block diagram for explaining a process of receiving a control command from a user area and receiving a packet and outputting the packet in real time. 9, the apparatus for receiving image data according to an embodiment of the present invention may include a user area 902 and a kernel area 904.

도 9를 참조하면, 사용자 영역(902)은 제어 정보를 전송하는 제어 쓰레드(905)를 포함할 수 있다. 제어 쓰레드(905)는 커널 영역(904)의 통합 드라이버(920)로부터 패킷 헤더를 통해 파싱되는 정보를 제공받을 수 있다. 예컨대, 목적지 정보, 수신지 정보 등을 파싱할 수 있다. 다만, 이러한 정보는 사용자 설정을 통해 동일 전송측 주소로부터의 최초 패킷으로부터 한번 수신하고 나면, 이후 동일한 전송측 주소로부터의 패킷에 대해서는 추가적으로 관련 정보를 수신하지 않도록 동작할 수 있다. 즉, 한번의 패킷 헤더 정보 파싱 이후에는 추가적인 시스템 콜이 발생하지 않도록 할 수 있다.Referring to FIG. 9, the user area 902 may include a control thread 905 that transmits control information. The control thread 905 may be provided with information that is parsed via the packet header from the integrated driver 920 of the kernel area 904. For example, destination information, destination information, and the like can be parsed. However, once this information is received from the first packet from the same sending side address through the user setup, it can then operate so as not to receive further related information for packets from the same sending side address. That is, after the packet header information is parsed once, an additional system call can be prevented from occurring.

본 발명의 일 실시예에 따르면, 커널 영역(904)의 디코더 및 비디오 출력과 관련된 드라이버를 통합하여 통합 드라이버(920)로 구현할 수 있다. 통합 드라이버(920)는 이더넷 드라이버(912)를 통해 제어되는 이더넷 MAC 모듈(910)를 통해 수신된 영상 데이터(932)에 대해 분할 프레임 단위로 독립적으로 디코딩이 수행되도록 제어하며 디코딩된 영상 데이터(932)를 하나의 프레임 단위로 비디오 출력부(940)를 통해 출력되도록 제어할 수 있다. According to an embodiment of the present invention, a decoder associated with the kernel area 904 and a driver associated with video output may be integrated into the integrated driver 920. The integrated driver 920 controls the decoding of the video data 932 received through the Ethernet MAC module 910 controlled through the Ethernet driver 912 to be performed independently on a divided frame basis and outputs the decoded video data 932 Can be controlled to be outputted through the video output unit 940 in units of one frame.

본 발명의 일 실시예에 따르면, 리눅스 운영 체제 응용 레벨(902)의 UDP 스택을 사용하지 않고, 커널 레벨(904)의 통합 드라이버(920)에서 RTP, UDP 및 IP 프로토콜 스택을 직접 구현할 수 있다. 또한, 영상 패킷 외의 일반 이더넷 데이터들은 정상적으로 리눅스 운영 체제로 전달될 수 있다. According to one embodiment of the present invention, RTP, UDP, and IP protocol stacks may be implemented directly in integrated driver 920 at kernel level 904 without using the UDP stack of Linux operating system application level 902. In addition, the general Ethernet data other than the video packet can be normally transmitted to the Linux operating system.

통합 드라이버(920)의 수도 스택(922)은 영상 패킷을 디코더 영역에서 디바이스 드라이버로 바로 전송하기 위해, 디바이스 드라이버의 리눅스 소켓(socket) 관련 작업을 수행할 수 있다. 수도 스택(922)은 RTP 스택, UDP 스택 및 IP 스택일 수 있으며, 이를 통해 RTP 패킷, UDP 패킷 및 IP 패킷의 헤더(934)를 추출 및 파싱할 수 있다. 즉, 수도 스택(922)은 제어 쓰레드(905)로부터의 패킷을 감싸고 있는 패킷 헤더 정보를 추출하여 제공할 수 있다. 다만 이는 동일 전송자에게서의 최초 헤더만을 파싱하여 제공하고 이후의 패킷에 대해서는 헤더 정보를 제공하지 않을 수 있다.
The numeric stack 922 of the integrated driver 920 may perform a Linux socket related operation of the device driver to directly transfer the video packet from the decoder area to the device driver. The serving stack 922 may be an RTP stack, a UDP stack, and an IP stack, through which a header 934 of an RTP packet, a UDP packet, and an IP packet can be extracted and parsed. That is, the number stack 922 can extract and provide packet header information wrapping packets from the control thread 905. [ However, it may provide only the first header of the same sender and provide header information for subsequent packets.

이상 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 상기 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the inventions as defined by the following claims It will be understood that various modifications and changes may be made thereto without departing from the spirit and scope of the invention.

Claims (24)

영상 데이터를 전송하는 방법에 있어서,
영상 데이터를 입력받는 단계;
상기 입력받은 영상 데이터의 하나의 프레임을 복수 개로 분할하는 단계;
복수 개로 분할된 각각의 분할 프레임을 독립적으로 인코딩하는 단계; 및
분할 프레임 단위로 인코딩이 완료되는 대로 인코딩된 영상 데이터를 수신측으로 전송하는 단계를 포함하되,
사용자 영역과 커널 영역으로 나뉘어서 영상 데이터 입력부터 인코딩된 영상 데이터의 전송까지의 영상 관련 이벤트를 처리하고,
상기 사용자 영역의 제어 쓰레드(control thread)가 상기 커널 영역의 각 드라이버에 대한 제어 설정을 초기에 설정하는 단계; 및
상기 커널 영역이 상기 제어쓰레드의 설정을 기반으로 상기 영상 관련 이벤트를 상기 사용자 영역으로의 호출 없이 처리하는 단계를 더 포함하는 것을 특징으로 하는 영상 데이터 전송 방법.
A method for transmitting video data,
Receiving image data;
Dividing one frame of the input image data into a plurality of frames;
Independently encoding each divided frame into a plurality of divided frames; And
And transmitting the encoded image data to the receiver upon completion of encoding in units of divided frames,
A user area and a kernel area to process image related events from input of image data to transmission of encoded image data,
The control thread of the user area initially setting control settings for each driver of the kernel area; And
Further comprising the step of processing the image related event without a call to the user area based on the setting of the control thread.
제 1 항에 있어서, 상기 복수 개로 분할된 각각의 분할 프레임을 독립적으로 인코딩하는 단계는
상기 분할 프레임이 모두 입력되는 시점에 상기 분할 프레임에 대한 인코딩을 시작하는 단계를 포함하는 것을 특징으로 하는 영상 데이터 전송 방법.
The method of claim 1, wherein independently encoding each of the plurality of divided frames comprises:
And starting encoding of the divided frame at a time when all of the divided frames are inputted.
제 1 항에 있어서,
상기 분할 프레임은 소정 분할 단위로 동일한 크기로 분할되는 것을 특징으로 하는 영상 데이터 전송 방법.
The method according to claim 1,
Wherein the divided frames are divided into equal sizes in a predetermined division unit.
제 1 항에 있어서,
상기 분할 프레임을 인코딩하는 중에, 다음 번에 인코딩되어야 할 분할 프레임을 버퍼에 입력하는 단계를 더 포함하는 것을 특징으로 하는 영상 데이터 전송 방법.
The method according to claim 1,
Further comprising the step of inputting a divided frame to be encoded next into the buffer during the encoding of the divided frame.
제 4 항에 있어서,
상기 입력되는 영상 데이터는 메모리에 복사되지 않고 DMA(Direct Memory Access) 방식을 통해 액세스되는 것을 특징으로 하는 영상 데이터 전송 방법.
5. The method of claim 4,
Wherein the input image data is accessed through a direct memory access (DMA) method without being copied to a memory.
삭제delete 제 1 항에 있어서,
상기 커널 영역은 상기 영상 관련 이벤트를 인터럽트(interrupt)로 처리하는 것을 특징으로 하는 영상 데이터 전송 방법.
The method according to claim 1,
Wherein the kernel region processes the image-related event as an interrupt.
제 1 항에 있어서,
상기 제어쓰레드가 비디오 데이터 입력 드라이버로 전송하는 비디오 입력 설정 정보는 영상의 해상도 정보, 리사이즈(resize) 정보 및 프레임의 분할되는 단위 정보인 분할 단위 정보를 포함하는 것을 특징으로 하는 영상 데이터 전송 방법.
The method according to claim 1,
Wherein the video input setting information transmitted by the control thread to the video data input driver includes resolution information of a video, resize information, and division unit information which is divided unit information of a frame.
제 1 항에 있어서,
상기 제어쓰레드가 인코더 드라이버로 전송하는 인코딩 설정 정보는 GOP(Group of Picture) 정보, 비트레이트 정보 및 품질(quality) 정보를 포함하는 것을 특징으로 하는 영상 데이터 전송 방법.
The method according to claim 1,
Wherein the encoding setting information transmitted by the control thread to the encoder driver includes GOP (Group of Picture) information, bit rate information, and quality information.
제 1 항에 있어서,
상기 제어쓰레드가 이더넷 드라이버로의 데이터 전송 설정 정보는 IP 포트 정보 및 MAC 어드레스 정보를 포함하는 것을 특징으로 하는 영상 데이터 전송 방법.
The method according to claim 1,
And the data transmission setting information of the control thread to the Ethernet driver includes IP port information and MAC address information.
제 1 항에 있어서,
상기 인코딩된 영상 데이터는 페이로드로 하여 구성되는 패킷의 헤더에 포함되는 RTP(Real-Time Protocol) 정보는 상기 커널 영역의 통합 드라이버의 수도 스택(Pseudo Stack)을 통해 생성되는 것을 특징으로 하는 영상 데이터 전송 방법.
The method according to claim 1,
Wherein RTP (Real-Time Protocol) information included in a header of a packet composed of the encoded video data is generated through a pseudo stack of an integrated driver of the kernel area. Transmission method.
영상 데이터를 전송하는 장치에 있어서,
영상 데이터를 입력받고 상기 입력받은 영상 데이터의 하나의 프레임을 복수 개로 분할하는 영상 입력부;
복수 개로 분할된 각각의 분할 프레임을 독립적으로 인코딩하는 인코딩부; 및
분할 프레임 단위로 인코딩이 완료되는 대로 인코딩된 영상 데이터를 수신측으로 전송하는 데이터 전송부를 포함하되,
사용자 영역과 커널 영역으로 나뉘어서 영상 데이터 입력부터 인코딩된 영상 데이터의 전송까지의 영상 관련 이벤트를 처리하고,
상기 커널 영역은 상기 커널 영역의 각 드라이버에 대한 제어 설정을 초기에 설정하는 제어 쓰레드(control thread)를 포함하며,
상기 커널 영역은 상기 영상 입력부, 상기 인코딩부 및 상기 데이터 전송부를 포함하고,
상기 사용자 영역의 제어 스레드가 상기 영상 입력부로의 비디오 입력 설정, 상기 인코딩부로의 인코딩 설정 및 상기 데이터 전송부로의 데이터 전송 설정을 초기에 설정하고 나면, 상기 커널 영역은 상기 제어쓰레드의 설정을 기반으로 상기 사용자 영역으로의 호출 없이 상기 영상 관련 이벤트를 처리하는 것을 특징으로 하는 영상 데이터 전송 장치.
An apparatus for transmitting image data,
A video input unit for receiving video data and dividing one frame of the received video data into a plurality of frames;
An encoding unit that independently encodes each divided frame into a plurality of divided frames; And
And a data transmission unit for transmitting the encoded image data to the receiver upon completion of encoding in units of divided frames,
A user area and a kernel area to process image related events from input of image data to transmission of encoded image data,
Wherein the kernel area includes a control thread that initially sets control settings for each driver in the kernel area,
Wherein the kernel region includes the image input unit, the encoding unit, and the data transfer unit,
After the control thread of the user area initially sets the video input setting to the video input unit, the encoding setting to the encoding unit, and the data transmission setting to the data transmitting unit, the kernel area is set based on the setting of the control thread And processes the image related event without a call to the user area.
삭제delete 삭제delete 영상 데이터를 수신하는 방법에 있어서,
인코딩된 영상 데이터를 수신하는 단계;
상기 수신되는 영상 데이터가 분할 프레임 - 분할 프레임은 하나의 프레임을 복수 개로 분할한 프레임을 나타냄 - 단위로 수신되는 대로 독립적으로 디코딩하는 단계; 및
분할 프레임 단위로 디코딩된 영상 데이터를 하나의 프레임으로 조합하여 디스플레이하는 단계를 포함하되,
사용자 영역과 커널 영역으로 나뉘어서 영상 데이터 수신부터 디코딩된 데이터의 재생까지의 영상 관련 이벤트를 처리하고,
상기 커널 영역에서 상기 영상 관련 이벤트를 상기 사용자 영역 호출 없이 처리하는 단계를 더 포함하는 것을 특징으로 하는 영상 데이터 수신 방법.
A method for receiving image data,
Receiving encoded image data;
Dividing the received video data into a plurality of divided frames, dividing the divided frames into a plurality of frames; independently decoding the received frames as they are received; And
And displaying the combined image data decoded in units of divided frames in one frame,
Related event from the reception of the video data to the reproduction of the decoded data by being divided into the user area and the kernel area,
And processing the image related event in the kernel area without calling the user area.
제 15 항에 있어서, 상기 분할 프레임 단위로 독립적으로 디코딩하는 단계는
상기 분할 프레임을 상기 분할 프레임이 모두 수신되는 시점에 디코딩을 시작하는 단계를 포함하는 것을 특징으로 하는 영상 데이터 수신 방법.
16. The method of claim 15, wherein independently decoding in units of divided frames comprises:
And starting to decode the divided frame at a time when all of the divided frames are received.
제 15 항에 있어서,
상기 분할 프레임은 소정 분할 단위로 동일한 크기로 분할되는 것을 특징으로 하는 영상 데이터 수신 방법.
16. The method of claim 15,
Wherein the divided frames are divided into equal sizes in a predetermined division unit.
제 15 항에 있어서,
상기 분할 프레임을 디코딩하는 중에, 다음 번에 디코딩되어야 할 분할 프레임을 수신하여 버퍼에 저장하는 단계를 더 포함하는 것을 특징으로 하는 영상 데이터 수신 방법.
16. The method of claim 15,
Receiving a divided frame to be decoded next and storing the divided frame in a buffer during decoding the divided frame.
삭제delete 제 15 항에 있어서,
상기 커널 영역은 상기 영상 관련 이벤트를 인터럽트(interrupt)로 처리하는 것을 특징으로 하는 영상 데이터 수신 방법.
16. The method of claim 15,
Wherein the kernel region processes the image related event as an interrupt.
제 15 항에 있어서,
상기 인코딩된 영상 데이터는 페이로드로 하여 구성되는 패킷의 헤더에 포함되는 RTP(Real-Time Protocol) 정보는 상기 커널 영역의 통합 드라이버의 수도 스택(Pseudo Stack)을 통해 파싱되는 것을 특징으로 하는 영상 데이터 수신 방법.
16. The method of claim 15,
Wherein real-time protocol (RTP) information included in a header of a packet composed of the encoded video data is parsed through a pseudo stack of an integrated driver of the kernel area, Receiving method.
영상 데이터를 수신하는 장치에 있어서,
인코딩된 영상 데이터를 수신하는 데이터 수신부;
상기 수신되는 영상 데이터가 분할 프레임 - 분할 프레임은 하나의 프레임을 복수 개로 분할한 프레임을 나타냄 - 단위로 수신되는 대로 독립적으로 디코딩하는 디코딩부; 및
분할 프레임 단위로 디코딩된 영상 데이터를 하나의 프레임으로 조합하여 디스플레이되도록 제어하는 비디오 제어부를 포함하되,
사용자 영역과 커널 영역으로 나뉘어서 영상 데이터 수신부터 디코딩된 데이터의 재생까지의 영상 관련 이벤트를 처리하고,
상기 커널 영역은 상기 데이터 수신부, 상기 디코딩부 및 상기 비디오 제어부를 포함하는 것을 특징으로 하는 영상 데이터 수신 장치.
An apparatus for receiving image data,
A data receiving unit for receiving the encoded image data;
A decoding unit for independently decoding the received video data as it is received, the divided frame-divided frame representing a frame obtained by dividing one frame into a plurality of frames; And
And a video controller for controlling the video data decoded in units of divided frames to be displayed in a single frame,
Related event from the reception of the video data to the reproduction of the decoded data by being divided into the user area and the kernel area,
Wherein the kernel region includes the data receiving unit, the decoding unit, and the video control unit.
삭제delete 제 22 항에 있어서,
상기 커널 영역은 상기 영상 관련 이벤트를 상기 사용자 영역 호출 없이 처리하는 것을 특징으로 하는 영상 데이터 수신 장치.
23. The method of claim 22,
Wherein the kernel region processes the image related event without calling the user area.
KR1020150076056A 2015-05-29 2015-05-29 Image data transmission and reception method and apparatus KR101710011B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150076056A KR101710011B1 (en) 2015-05-29 2015-05-29 Image data transmission and reception method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150076056A KR101710011B1 (en) 2015-05-29 2015-05-29 Image data transmission and reception method and apparatus

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020170022187A Division KR101839415B1 (en) 2017-02-20 2017-02-20 Image data transmission and reception method and apparatus

Publications (2)

Publication Number Publication Date
KR20160140012A KR20160140012A (en) 2016-12-07
KR101710011B1 true KR101710011B1 (en) 2017-03-08

Family

ID=57573817

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150076056A KR101710011B1 (en) 2015-05-29 2015-05-29 Image data transmission and reception method and apparatus

Country Status (1)

Country Link
KR (1) KR101710011B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102340510B1 (en) * 2021-05-28 2021-12-17 주식회사 쿠오핀 Video encoding apparatus and method for an ultra low latency
KR102340490B1 (en) * 2021-05-28 2021-12-17 주식회사 쿠오핀 Platform system and method of transmitting real time video for an ultra low latency
KR102621335B1 (en) * 2021-10-13 2024-01-05 (주)나임기술 Image acquisition device and method using high-speed serial interface

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012010182A (en) * 2010-06-25 2012-01-12 Sony Corp Information processing apparatus and information processing method
KR101347956B1 (en) 2013-07-29 2014-01-10 주식회사 리버스톤미디어 System for stream transformation and restoration of ultra high-definition image and method for stream transformation and restoration of ultra high-definition image therefor
KR101410837B1 (en) * 2013-09-10 2014-06-24 이에스이 주식회사 Apparatus for managing image by monitoring video memory

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150033194A (en) * 2013-09-23 2015-04-01 삼성전자주식회사 Parallel Encoding/Decoding Method and Apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012010182A (en) * 2010-06-25 2012-01-12 Sony Corp Information processing apparatus and information processing method
KR101347956B1 (en) 2013-07-29 2014-01-10 주식회사 리버스톤미디어 System for stream transformation and restoration of ultra high-definition image and method for stream transformation and restoration of ultra high-definition image therefor
KR101410837B1 (en) * 2013-09-10 2014-06-24 이에스이 주식회사 Apparatus for managing image by monitoring video memory

Also Published As

Publication number Publication date
KR20160140012A (en) 2016-12-07

Similar Documents

Publication Publication Date Title
US20220263885A1 (en) Adaptive media streaming method and apparatus according to decoding performance
US11258631B2 (en) Streaming on diverse transports
JP5332854B2 (en) Wireless transmitter, wireless transmission method, wireless receiver, and wireless reception method
CN104168439A (en) Video coding method and apparatus
US20220286489A1 (en) System and method of streaming content between peer devices in a broadcast environment
KR101710011B1 (en) Image data transmission and reception method and apparatus
WO2018072337A1 (en) Wireless transmission method, device, terminal and head-mounted display device for virtual reality
US9936266B2 (en) Video encoding method and apparatus
CN109862400B (en) Streaming media transmission method, device and system
CN103503381B (en) The method of data transmission of device redirection, Apparatus and system
US7496114B2 (en) IP image transmission apparatus
KR101839415B1 (en) Image data transmission and reception method and apparatus
KR101579850B1 (en) Apparatus for packetizing non compressed video in 10GbE(Gigabit Ethernet) network and method for transmitting and receiving using the same
WO2022206016A1 (en) Data layering transport method, apparatus and system
WO2018054349A1 (en) Data sending and receiving methods, and apparatuses and systems thereof
US11671976B2 (en) Early notification for transmission of encoded video data
US11991228B2 (en) Systems and methods for controlling high speed video
EP3866401A1 (en) Move stream content from point to point over the existing ip gateway
CN113347468B (en) Audio and video transmission method and device based on Ethernet frame and storage medium
JP2008016939A (en) Program, information storage medium, data transmission apparatus, and data transmission system
JP7264517B2 (en) Transmitting device, receiving device, control method, and program
EP4262218A1 (en) Wireless screen projection method and apparatus
CN113453006A (en) Picture packaging method, equipment and storage medium
CN117793363A (en) Video decoding and FC video transmitting system based on embedded Soc
JP2016116178A (en) Communication device and communication method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
A107 Divisional application of patent
GRNT Written decision to grant
R401 Registration of restoration