KR101668283B1 - Method for displaying video considered latency, apparatus and cloud streaming service system therefor - Google Patents

Method for displaying video considered latency, apparatus and cloud streaming service system therefor Download PDF

Info

Publication number
KR101668283B1
KR101668283B1 KR1020140013562A KR20140013562A KR101668283B1 KR 101668283 B1 KR101668283 B1 KR 101668283B1 KR 1020140013562 A KR1020140013562 A KR 1020140013562A KR 20140013562 A KR20140013562 A KR 20140013562A KR 101668283 B1 KR101668283 B1 KR 101668283B1
Authority
KR
South Korea
Prior art keywords
video data
decoded video
input buffer
unit
rendering
Prior art date
Application number
KR1020140013562A
Other languages
Korean (ko)
Other versions
KR20150092928A (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 KR1020140013562A priority Critical patent/KR101668283B1/en
Publication of KR20150092928A publication Critical patent/KR20150092928A/en
Application granted granted Critical
Publication of KR101668283B1 publication Critical patent/KR101668283B1/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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof

Abstract

본 발명은 랜더링되지 못하고 복호화된 비디오 데이터가 소정 프레임 이상 누적되면 그 중 일부를 제거함으로써 복호화된 비디오 데이터가 누적되어 발생하는 처리 지연에 기인한 레이턴시를 해결할 수 있는 레이턴시를 고려한 영상 출력 방법, 이를 수행하는 장치 및 클라우드 스트리밍 서비스 시스템에 관한 것으로서, 영상 출력 기능을 포함하는 장치가, 입력 버퍼에 저장된 복호화된 비디오 데이터를 프레임 단위로 가져와 순차적으로 랜더링하되, 일정 주기로 상기 입력 버퍼에 저장된 복호화된 비디오 데이터의 수를 확인하고, 그 중 일부를 프레임 단위로 삭제하는 것을 특징으로 한다.The present invention relates to a video output method considering latency that can solve a latency due to a processing delay in which decoded video data is accumulated by removing a part of video data that has not been rendered and decoded and accumulated over a predetermined frame, And an apparatus including a video output function, wherein the apparatus including a video output function fetches decoded video data stored in an input buffer and sequentially rasterizes the decoded video data stored in the input buffer, And deletes some of them in units of frames.

Description

레이턴시를 고려한 영상 출력 방법, 이를 수행하는 장치 및 클라우드 스트리밍 서비스 시스템{Method for displaying video considered latency, apparatus and cloud streaming service system therefor}TECHNICAL FIELD [0001] The present invention relates to a video output method, a device and a cloud streaming service system,

본 발명은 클라우드 스트리밍 서비스에 관한 것으로서, 더욱 상세하게는 복호화된 비디오 데이터가 랜더링되지 못하고 소정 프레임 이상 누적되면 그 중 일부를 제거함으로써 복호화된 비디오 데이터가 누적되어 발생하는 처리 지연에 기인한 레이턴시를 해결할 수 있는 레이턴시를 고려한 영상 출력 방법, 이를 수행하는 장치 및 클라우드 스트리밍 서비스 시스템에 관한 것이다. More particularly, the present invention relates to a cloud streaming service, and more particularly, to a cloud streaming service that resolves a latency due to a processing delay in which decoded video data is accumulated, And an apparatus and a cloud streaming service system for performing the method.

이동통신망의 발달과 단말기 사양의 발전에 따라 종래의 단순한 통신장치 또는 정보 제공 장치의 범주를 벗어나 이동통신단말기는 현대인의 필수 소지품이 되었고, 토탈 엔터테인먼트 기기로 진화해 가고 있는 추세에 있다.With the development of the mobile communication network and the development of the terminal specification, the mobile communication terminal has become a necessity of modern people and has evolved into a total entertainment device beyond the conventional category of simple communication apparatus or information providing apparatus.

아울러, 최근에는 성능이 낮은 클라이언트 단말기가 대용량의 영상 등을 처리하는데 무리가 있으므로, 이러한 점을 감안하여 원격지에 있는 클라우드 서버(Cloud server)를 통해 해당 데이터를 처리하도록 하고, 그 처리된 결과 화면만을 클라이언트 단말기에서 수신하여 디스플레이하는 클라우드 컴퓨팅(Cloud computing) 기술이 사용되고 있다.In addition, in recent years, it is difficult for a low-performance client terminal to process a large-capacity image, so that the data is processed through a cloud server at a remote location, and only the processed result screen And a cloud computing technology for receiving and displaying data on a client terminal is used.

이러한, 클라우드 컴퓨팅 환경에서는 개별 기술에 대한 전문성 없이도 서비스를 이용하는 형태로 IT(Information Technology) 환경을 구축하고 이용할 수 있게 되었다. In the cloud computing environment, it is possible to build and use the information technology (IT) environment in which the service is used without the expertise of individual technologies.

특히, 클라우드 컴퓨팅 기술을 기반으로, 게임, VOD, 실시간 방송 컨텐츠 등을 서버 측에서 실행한 후, 그 실행 화면을 스트리밍 방식으로 사용자 장치에 전송하여, 사용자 장치에서는 입력 및 출력만 이루어지게 함으로써, 사용자 장치의 사양 및 성능에 관계없이 사용자가 원하는 컨텐츠를 이용할 수 있도록 하는 것을 클라우드 스트리밍 서비스라 한다.Particularly, a game, a VOD, a real-time broadcast content, and the like are executed on the server side based on the cloud computing technology, and the execution screen is transmitted to the user device in a streaming manner, A cloud streaming service is a service that allows a user to use a desired content regardless of device specifications and performance.

이러한 클라우드 스트리밍 서비스와 같이, 사용자 장치에서 입력된 요청을 상기 사용자 장치와 통신망을 통해 연결된 서비스 장치에서 실행한 후, 그 결과를 사용자 장치로 전송하여 출력하는 경우, 사용자 요청 후 그 결과를 수신하여 출력하는 데까지 걸리는 대기 시간(Latency)이 길어질 수 록 사용자 만족도 및 서비스 품질이 저하된다.In a case where a request input from a user device is executed in a service device connected to the user device via a communication network and the result is transmitted to a user device and output, such a cloud streaming service, The longer the latency is, the lower the user satisfaction and service quality are.

따라서, 사용자가 사용자 장치에서 해당 컨텐츠를 실행하거나 재생하는 것처럼 느낄 수 있도록 빠른 응답을 제공할 필요가 있다.Accordingly, there is a need to provide a quick response so that the user can feel as if the user is playing or playing the content on the user device.

그런데, 클라우드 스트리밍 서비스의 경우, 사용자의 요청에 따라서 실행 또는 재생 결과에 대응하는 동영상의 비디오 데이터 및 오디오 데이터를 통신망을 통해서 스트리밍 방식으로 사용자 장치로 전송하게 되는데, 네트워크 전송 대역폭, 단말의 멀티미디어 데이터 처리 능력, 동기화 등 여러 해결해야 할 문제들이 존재하며, 이러한 문제들은 대기 시간(latency)을 증가시켜 서비스 품질을 저하시킬 수 있다.In the case of the cloud streaming service, video data and audio data of a moving picture corresponding to the execution or playback result are transmitted to the user device through a communication network in a streaming manner in response to a user's request. The network transmission bandwidth, There are many problems to be solved, such as ability, synchronization, etc. These problems can increase the latency and degrade the service quality.

구체적으로, 통신망을 통해 요청에 대한 응답으로서 비디오 데이터 및 오디오 데이터를 포함하는 비트 스트림을 수신한 사용자 장치는, 역다중화를 통해서 비트 스트림으로부터 비디오 데이터와 오디오 데이터를 분리하고, 헤더를 파싱하여 상기 비디오 데이터 및 오디오 데이터를 각각 디코딩하며, 비디오 데이터와 오디오 데이터 간의 재생 시점을 맞추는 동기화를 수행한 후, 랜더링 과정을 통해 영상 및 음성으로 출력하여야 하는데, 상기 역다중화, 동기화 등을 위한 처리에 소요되는 시간만큼 영상 및 음성 출력이 지연되는 사용자의 대기 시간을 증가시키게 된다.Specifically, a user equipment receiving a bit stream including video data and audio data as a response to a request over a communication network separates video data and audio data from the bit stream through demultiplexing, parses the header, Data and audio data are respectively decoded and synchronized in order to match the reproduction time point between the video data and the audio data and then outputted as video and audio through a rendering process. The time required for processing for demultiplexing, The waiting time of the user whose delay of the video and audio output is delayed is increased.

따라서, 사용자의 대기 시간을 줄여 서비스 품질을 향상시키기 위해서는, 역다중화, 동기화, 랜더링 과정에 소요되는 시간을 최소화하기 위한 노력이 요구된다.Therefore, efforts to minimize the time required for demultiplexing, synchronization, and rendering processes are required to improve the service quality by reducing the waiting time of the user.

한국등록특허 제10-0226528호, 1999년 07월 28일 등록 (명칭: 다중화 압축 화상/음성 데이터의 복호장치)Korean Registered Patent No. 10-0226528, July 28, 1999 (Name: Multiplexed Compressed Image / Audio Data Decoding Apparatus)

이에 본 발명은 클라우드 스트리밍 서비스를 제공하는데 있어서, 사용자 요청 후 응답받기까지의 대기 시간(Latency)를 최소화하기 위하여 제안된 것으로서, 특히, 랜더링되지 못하고 복호화된 비디오 데이터가 소정 프레임 이상 누적되면 그 중 일부를 제거함으로써 복호화된 비디오 데이터가 누적되어 발생하는 처리 지연에 기인한 레이턴시를 해결할 수 있는 레이턴시를 고려한 영상 출력 방법, 이를 수행하는 장치 및 클라우드 스트리밍 서비스 시스템을 제공하고자 한다.The present invention has been proposed in order to minimize the latency between receiving a user request and a response in providing a cloud streaming service. Particularly, when video data that has not been rendered and decoded is accumulated over a predetermined number of frames, And a latency that can be solved due to a processing delay caused by accumulation of decoded video data by removing the latency of the decoded video data, and an apparatus for performing the method and a cloud streaming service system.

상술한 과제의 해결 수단으로서, 본 발명은 부호화된 비디오 데이터를 포함하는 비트 스트림을 수신하는 네트워크 수신부; 상기 네트워크 수신부에 의해 수신된 비트 스트림을 복호화하는 디코딩부; 상기 디코딩부에서 출력되는 복호화된 비디오 데이터를 입력 버퍼에 저장하고, 입력 버퍼에 저장된 복호화된 비디오 데이터를 프레임 단위로 가져와 순차적으로 랜더링하여 출력 영상을 구성하는 랜더링부; 및 일정 주기로 상기 입력 버퍼에 저장된 복호화된 비디오 데이터의 수를 확인하고, 그 중 일부를 프레임 단위로 삭제하는 제어부를 포함하는 것을 특징으로 하는 사용자 장치를 제공한다.As a means for solving the above-mentioned problems, the present invention provides a video decoding apparatus comprising: a network receiving unit for receiving a bitstream including encoded video data; A decoding unit decoding the bit stream received by the network receiving unit; A rendering unit that stores decoded video data output from the decoding unit in an input buffer, sequentially fetches decoded video data stored in an input buffer on a frame basis, and sequentially composes the decoded video data to form an output image; And a controller for checking the number of decoded video data stored in the input buffer at regular intervals and deleting a part of the decoded video data in a frame unit.

여기서, 제어부는 상기 랜더링부가 특정 프레임의 복호화된 비디오 데이터를 상기 입력 버퍼에서 가져와 랜더링을 시작한 시점을 기준으로 소정 시간 이내에, 상기 입력 버퍼에 저장된 비디오 데이터가 존재하는 지를 확인하여, 상기 입력 버퍼에 저장되어 있는 복호화된 비디오 데이터를 삭제하거나, 상기 입력 버퍼에 두 프레임 이상의 복호화된 비디오 데이터가 존재하는 지를 확인하고, 두 프레임 이상의 복호화된 비디오 데이터가 존재하는 경우, 이 중 일부를 선택적으로 삭제할 수 있다.Here, the controller checks whether the video data stored in the input buffer exists within a predetermined time based on the time when the rendering unit fetches the decoded video data of the specific frame from the input buffer and starts rendering, and stores the decoded video data in the input buffer And decrypts the decrypted video data. If there is decrypted video data of two or more frames, it can selectively delete some of the decrypted video data.

아울러, 본 발명에 따른 사용자 장치에 있어서, 상기 네트워크 수신부는 클라우드 스트리밍 서비스 장치로부터 프레임단위로 재생시간에 맞추어 전송되는 부호화된 비디오 데이터를 수신하여 상기 디코딩부로 전달하고, 상기 디코딩부는 상기 부호화된 비디오 데이터가 수신되는 대로 복호화할 수 있다.In addition, in the user equipment according to the present invention, the network receiving unit receives the encoded video data transmitted in accordance with the reproduction time frame by frame from the cloud streaming service apparatus, and transmits the encoded video data to the decoding unit, Can be decoded as it is received.

더하여, 본 발명은, 사용자 장치와 접속되어 제어 신호 및 비디오 데이터를 송수신하기 위한 접속 인터페이스부; 상기 접속 인터페이스부를 통해 사용자 장치로부터 전달받은 복호화된 비디오 데이터를 입력 버퍼에 저장하고, 입력 버퍼에 저장된 복호화된 비디오 데이터를 프레임 단위로 가져와 순차적으로 랜더링하여 출력 영상을 구성하는 랜더링부; 및 일정 주기로 상기 입력 버퍼에 저장된 복호화된 비디오 데이터의 수를 확인하고, 그 중 일부를 프레임 단위로 삭제하는 제어부를 포함하는 영상 출력 장치를 제공한다.In addition, the present invention provides a communication apparatus comprising: a connection interface unit connected to a user apparatus to transmit and receive control signals and video data; A rendering unit that stores decoded video data received from a user apparatus through the connection interface unit in an input buffer, sequentially fetches decoded video data stored in an input buffer on a frame basis, and sequentially composes the decoded video data to form an output image; And a control unit for checking the number of decoded video data stored in the input buffer at regular intervals and deleting a part of the decoded video data in frame units.

더하여, 본 발명은 부호화된 비디오 데이터를 수신하여, 기 설정된 디코딩 속도로 복호화하는 사용자 장치; 상기 사용자 장치와 유선 또는 무선 방식으로 접속되어, 상기 사용자 장치로부터 전달받은 복호화된 비디오 데이터를 입력 버퍼에 저장하고, 입력 버퍼에 저장된 복호화된 비디오 데이터를 프레임 단위로 가져와 순차적으로 랜더링하여 출력 영상을 구성하되, 일정 주기로 상기 입력 버퍼에 저장된 복호화된 비디오 데이터의 수를 확인하고, 그 중 일부를 프레임 단위로 삭제하는 영상 출력 장치를 포함하는 클라우드 스트리밍 서비스 시스템을 제공한다.In addition, the present invention relates to a user apparatus for receiving coded video data and decoding the coded video data at a predetermined decoding rate; The decoded video data stored in the input buffer is fetched in units of frames and sequentially rendered so as to form an output video, And a video output device for confirming the number of decoded video data stored in the input buffer at predetermined intervals and deleting a part of the decoded video data in a frame unit.

본 발명에 따른 클라우드 스트리밍 서비스 시스템은 상기 사용자 장치가 요청한 컨텐츠의 부호화된 비디오 데이터를 상기 사용자 장치에서의 재생 시간에 맞추어 프레임 단위로 순차 전송하는 클라우드 스트리밍 서비스 장치를 더 포함할 수 있다.The cloud streaming service system according to the present invention may further comprise a cloud streaming service device for sequentially transmitting coded video data of the content requested by the user device on a frame-by-frame basis in accordance with a playback time of the user device.

더하여, 본 발명은 영상 출력 기능을 포함하는 장치가, 입력 버퍼에 저장된 복호화된 비디오 데이터를 프레임 단위로 가져와 순차적으로 랜더링하는 단계; 및 일정 주기로 상기 입력 버퍼에 저장된 복호화된 비디오 데이터의 수를 확인하고, 그 중 일부를 프레임 단위로 삭제하는 단계를 포함하는 것을 특징으로 하는 레이턴시를 고려한 영상 출력 방법을 제공한다.In addition, the present invention provides an apparatus including a video output function, wherein the apparatus includes: sequentially fetching and decoding the decoded video data stored in an input buffer on a frame-by-frame basis; And checking the number of decoded video data stored in the input buffer at predetermined intervals and deleting a part of the decoded video data in a frame unit.

상기 레이턴시를 고려한 영상 출력 방법에 있어서, 상기 삭제하는 단계는 상기 입력 버퍼에서 가져와 랜더링을 시작한 시점을 기준으로 소정 시간 이내에, 상기 입력 버퍼에 저장된 비디오 데이터가 존재하는 지를 확인하는 단계; 및 확인 결과, 상기 입력 버퍼에 존재하는 복호화된 비디오 데이터를 삭제하는 단계를 포함할 수 있다.The video output method according to claim 1, wherein the deleting step comprises: checking whether video data stored in the input buffer is present within a predetermined time based on a time point at which rendering is started and taken from the input buffer; And deleting the decoded video data present in the input buffer as a result of the checking.

또한, 상기 레이턴시를 고려한 영상 출력 방법에 있어서, 상기 삭제하는 단계는, 상기 입력 버퍼에 두 프레임 이상의 복호화된 비디오 데이터가 존재하는 지를 확인하는 단계; 및 두 프레임 이상의 복호화된 비디오 데이터가 존재하는 경우, 이 중 일부를 선택적으로 삭제하는 단계를 포함할 수 있다.In addition, in the video output method in consideration of the latency, the deleting step may include: checking whether the input buffer has decoded video data of two or more frames; And selectively deleting some of the decoded video data in the case of two or more frames of video data.

더하여, 상기 레이턴시를 고려한 영상 출력 방법은, 통신망을 통해 상기 부호화된 비디오 데이터를 프레임 단위로 재생 시간에 맞추어 수신하는 단계; 상기 수신된 부호화된 비디오 데이터를 복호화하여 상기 입력 버퍼에 저장하는 단계를 더 포함할 수 있다.In addition, the video output method considering the latency includes: receiving the encoded video data through a communication network in units of frames in accordance with the reproduction time; And decoding the received encoded video data and storing the decoded video data in the input buffer.

더하여, 본 발명은 상술한 레이턴시를 고려한 영상 출력 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체를 제공한다.In addition, the present invention provides a computer-readable recording medium on which a program for executing the video output method in consideration of the latency described above is recorded.

본 발명은 부호화된 비디오 데이터를 복호화하고 랜더링을 통해 출력 영상을 구성하는데 있어서, 랜더링되지 못하고 복호화된 비디오 데이터가 소정 프레임 이상 누적되면 그 중 일부를 제거함으로써 복호화된 비디오 데이터가 누적되어 발생하는 레이턴시를 해결할 수 있다.The present invention decodes encoded video data and constructs an output image through rendering. When unrendered and decoded video data is accumulated over a predetermined number of frames, the decoded video data is partially accumulated, Can be solved.

특히, 본 발명은 랜더링 처리가 디코딩 처리보다 늦어져 복호화된 비디오 데이터가 처리되지 못하고 지연될 경우, 동영상 화질을 저하시키지 않는 수준에서 선택적으로 처리되지 못한 비디오 데이터 중 일부를 제거함으로써 보다 빠른 영상 출력이 이루어질 수 있도록 하며, 이를 통해서 클라우드 스트리밍 서비스에 있어서의 사용자 요청으로부터 응답이 이루어지기까지의 시간을 최소화할 수 있다.Particularly, according to the present invention, when the decoded video data is delayed due to the rendering process being slower than the decode process, a part of the video data that can not be selectively processed at a level that does not deteriorate the video quality is removed, And it is possible to minimize the time from the user request to the response in the cloud streaming service.

도 1은 본 발명에 따른 클라우드 스트리밍 서비스 시스템에 나타낸 블럭도이다.
도 2는 본 발명에 따른 클라우드 스트리밍 서비스 시스템에 있어서, 클라우드 스트리밍 서비스 장치의 구성을 나타낸 블럭도이다.
도 3은 본 발명의 일 실시 예에 따른 사용자 장치의 구성을 나타낸 블럭도이다.
도 4는 본 발명의 일 실시 예에 따른 영상 출력 장치를 나타낸 블럭도이다.
도 5 및 도 6은 본 발명에 따른 영상 출력 방법을 설명하기 위한 도면이다.
1 is a block diagram of a cloud streaming service system according to the present invention.
2 is a block diagram illustrating a configuration of a cloud streaming service apparatus in a cloud streaming service system according to the present invention.
3 is a block diagram illustrating a configuration of a user apparatus according to an exemplary embodiment of the present invention.
4 is a block diagram illustrating a video output apparatus according to an embodiment of the present invention.
5 and 6 are views for explaining a video output method according to the present invention.

이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description and the accompanying drawings, detailed description of well-known functions or constructions that may obscure the subject matter of the present invention will be omitted. It should be noted that the same constituent elements are denoted by the same reference numerals as possible throughout the drawings.

아울러, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.In addition, terms and words used in the present specification and claims should not be construed to be limited to ordinary or dictionary meanings, and the inventor shall appropriately define it as a concept of terminology for explaining its own invention in the best way. It should be construed as meaning and concept consistent with the technical idea of the present invention. Therefore, the embodiments described in the present specification and the configurations shown in the drawings are merely the most preferred embodiments of the present invention, and not all of the technical ideas of the present invention are described. Therefore, It is to be understood that equivalents and modifications are possible.

더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을 의미한다. 다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.In addition, when referring to an element as being "connected" or "connected" to another element, it means that it can be connected or connected logically or physically. In other words, it is to be understood that although an element may be directly connected or connected to another element, there may be other elements in between, or indirectly connected or connected.

또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Also, the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. It is also to be understood that the terms such as " comprising "or" having ", as used herein, are intended to specify the presence of stated features, integers, It should be understood that the foregoing does not preclude the presence or addition of other features, numbers, steps, operations, elements, parts, or combinations thereof.

본 발명은 부호화된 비디오 데이터를 복호화하여 영상으로 출력하는 과정에서, 랜더링 속도가 디코딩 속도보다 느려 랜더링 처리되지 못하고 누적된 복호화된 비디오 데이터 중 일부를 삭제함으로써, 화질이 저하되지 않는 범위에서 복호화된 비디오 데이터의 누적에 따른 불필요한 대기 시간을 줄이고자 한 것으로서, 영상 출력 기능이 포함한 장치 및 서비스에 적용될 수 있다.In the process of decoding encoded video data and outputting it as an image, since the rendering speed is lower than the decoding speed and the rendering process can not be performed, a part of the accumulated decoded video data is deleted so that the decoded video And can be applied to devices and services including a video output function, which is intended to reduce unnecessary waiting time due to accumulation of data.

일 예로서, 본 발명은 게임, VOD, 실시간 방송 컨텐츠 등을 서버 측에서 실행한 후, 그 실행 화면을 스트리밍 방식으로 사용자 장치로 전송하여, 사용자 장치에서는 입력 및 출력만 이루어지는 클라우드 스트리밍 서비스에 적용될 수 있다.For example, the present invention can be applied to a cloud streaming service in which a game, a VOD, a real-time broadcast content, and the like are executed on the server side and then the execution screen is transmitted to the user device in a streaming manner, have.

이하, 클라우드 스트리밍 서비스에 적용된 경우를 예로 들어, 본 발명에 따른 레이턴시를 고려한 영상 출력 방법, 이를 수행하는 장치 및 클라우드 스트리밍 서비스 시스템을 설명한다.Hereinafter, a video output method considering latency according to the present invention, an apparatus for performing the video output, and a cloud streaming service system will be described as an example of application to a cloud streaming service.

먼저, 도 1은 본 발명이 적용된 클라우드 스트리밍 서비스 시스템에 나타낸 블럭도이다.1 is a block diagram of a cloud streaming service system to which the present invention is applied.

도 1을 참조하면, 본 발명이 적용되는 클라우드 스트리밍 서비스 시스템은, 통신망(10)을 통해서 연결된 클라우드 스트리밍 서비스 장치(100), 하나 이상의 사용자 장치(200, 200')를 포함하여 이루어질 수 있다. 이때, 상기 하나 이상의 사용자 장치(200, 200')는 영상 출력 수단(예를 들어, 터치 스크린, LCD 디스플레이 등)을 구비한 사용자 장치(200)와 영상 출력 수단을 구비하지 않은 사용자 장치(200')로 구분될 수 있으며, 이 중 영상 출력 수단을 구비하지 않은 사용자 장치(200')는 소정의 접속 인터페이스를 통해서 영상 출력 장치(300)와 연결될 수 있다.Referring to FIG. 1, a cloud streaming service system to which the present invention is applied may include a cloud streaming service apparatus 100 connected through a communication network 10, and one or more user apparatuses 200 and 200 '. At this time, the one or more user devices 200 and 200 'include a user device 200 having video output means (e.g., a touch screen, an LCD display, etc.) and a user device 200' The user device 200 'having no video output means can be connected to the video output device 300 through a predetermined connection interface.

본 발명이 적용된 클라우드 스트리밍 서비스 시스템은, 클라우드 컴퓨팅 기술을 이용하여 게임, VOD, 실시간 방송 등 사용자가 요청한 컨텐츠 등을 실행 또는 재생한 후, 그 결과를 스트리밍 방식으로 제공하도록 구현된 것이다.The cloud streaming service system to which the present invention is applied is implemented by providing a streaming method after executing user-requested contents such as game, VOD, real-time broadcasting, etc. using cloud computing technology.

이를 위하여, 상기 클라우드 스트리밍 서비스 장치(100)는 사용자 장치(200)로부터의 요청에 따라서 소정의 컨텐츠를 실행 또는 재생하고 그 결과에 대응하는 비디오 데이터 및 오디오 데이터를 부호화하여 통신망(10)을 통해 사용자 장치(200)로 전송한다. 이때, 상기 컨텐츠는 앞서 설명한 바와 같이, 게임 어플리케이션, VOD, 실시간 방송, 사용자 입력을 위한 GUI(Graphic User Interface) 중 하나 이상을 포함할 수 있다. For this purpose, the cloud streaming service apparatus 100 executes or reproduces predetermined content according to a request from the user apparatus 200, encodes video data and audio data corresponding to the result, To the device (200). At this time, as described above, the content may include at least one of a game application, a VOD, a real-time broadcast, and a GUI (Graphic User Interface) for user input.

특히, 본 발명의 일 실시 예에 있어서, 상기 부호화된 비디오 데이터 및 오디오 데이터를 사용자 장치(200)로 전송하는데 있어서, 클라우드 스트리밍 서비스 장치(100)는, 사용자 장치(200)에서 요청한 컨텐츠의 부호화된 비디오 데이터 및 오디오 데이터를 동기를 맞추어 전송하되, 사용자 장치(200)에서의 재생 시간에 맞추어 프레임 단위로 상기 부호화된 비디오 데이터 및 오디오 데이터를 순차 전송함으로써, 상기 사용자 장치 측에서 역다중화 처리 및 비디오 및 오디오 신호 간의 동기화 처리없이 수신되는 대로 복호화하여 출력할 수 있으며, 그 결과, 역다중화 처리 및 동기화 처리에 소요되는 시간을 줄임으로써 사용자의 대기 시간을 최소화하도록 할 수 있다.In particular, in an embodiment of the present invention, in transmitting the encoded video data and audio data to the user device 200, the cloud streaming service device 100 may be configured to transmit the encoded content of the content requested by the user device 200 Video data and audio data in synchronism with each other, and sequentially transmitting the encoded video data and audio data on a frame-by-frame basis in accordance with the reproduction time of the user apparatus 200, It is possible to decode and output the audio signal as it is received without synchronization processing between audio signals. As a result, it is possible to minimize the waiting time of the user by reducing the time required for the demultiplexing processing and the synchronization processing.

즉, 본 발명에 있어서, 상기 클라우드 스트리밍 서비스 장치(100)는 상기 비디오 데이터 및 오디오 데이터를 프레임 단위로 부호화하되, 부호화된 비디오 데이터 및 오디오 데이터를 다중화 처리 없이 비트 스트림 그대로 사용자 장치(200)로 전송할 수 있다.That is, in the present invention, the cloud streaming service apparatus 100 encodes the video data and audio data on a frame-by-frame basis, and transmits the encoded video data and audio data to the user device 200 as a bit stream without multiplexing processing .

아울러, 상기 클라우드 스트리밍 서비스 장치(100)는 상기 프레임단위의 부호화된 비디오 데이터 및 오디오 데이터를 사용자 장치(200)에서의 재생 시간에 맞추어 순차 전송한다. 예를 들어, 동영상의 압축율이 30fps(frame per second)인 경우, 상기 클라우드 스트리밍 서비스 장치(100)는 재생 시간에 맞추어 대략 33msec 주기로 부호화된 비디오 데이터 및 오디오 데이터를 전송할 수 있다. 아울러, 클라우드 스트리밍 서비스 장치(100)는 전송하는 비디오 데이터 및 오디오 데이터의 동기를 맞추어 전송하는 것이 바람직하다.In addition, the cloud streaming service apparatus 100 sequentially transmits the coded video data and audio data for each frame in accordance with the playback time of the user apparatus 200. For example, when the compression rate of the moving picture is 30 frames per second, the cloud streaming service apparatus 100 may transmit the encoded video data and audio data at a cycle of about 33 msec in accordance with the reproduction time. In addition, it is preferable that the cloud streaming service apparatus 100 transmits the video data and audio data to be transmitted in synchronization with each other.

상기 하나 이상의 사용자 장치(200, 200')는 통신망(10)을 통해 상기 클라우드 스트리밍 서비스 장치(100)에 접속하여, 상기 클라우드 스트리밍 서비스 장치(100)로부터 전송되는 부호화된 비디오 데이터 및 오디오 데이터를 수신하여 처리할 수 있는 장치를 의미한다. The one or more user devices 200 and 200 'access the cloud streaming service apparatus 100 through the communication network 10 and receive the encoded video data and audio data transmitted from the cloud streaming service apparatus 100 And the like.

이러한 사용자 장치(200, 200')는 기본적으로 부호화된 비디오 데이터를 포함하는 비트 스트림을 수신하여, 상기 비디오 데이터를 복호화할 수 있다.These user devices 200 and 200 'basically receive a bitstream including encoded video data and can decode the video data.

특히 사용자 장치(200, 200')는 상기 클라우드 스트리밍 서비스 장치(100)에 접속하여, 클라우드 스트리밍 서비스 장치(100)로부터 프레임단위로 부호화된 비디오 데이터 및 오디오 데이터를 재생시간에 맞추어 각각 수신하면, 수신된 비디오 데이터 및 오디오 데이터를 역다중화 및 동기화 처리 없이 수신되는 대로 디코딩할 수 있다. 이는 상기 클라우드 스트리밍 서비스 장치(100)에서 재생 시점에 맞추어 프레임 단위로 부호화된 비디오 데이터와 오디오 데이터를 전송함에 따른 것으로서, 역다중화 및 동기화 소요 시간을 줄여 대기 시간을 더 감소시킬 수 있다.Particularly, the user apparatuses 200 and 200 'access the cloud streaming service apparatus 100 and receive video data and audio data encoded frame by frame from the cloud streaming service apparatus 100 in accordance with the reproduction time, And decode the received video data and audio data as received without demultiplexing and synchronization processing. This is due to transmission of video data and audio data encoded on a frame-by-frame basis in accordance with the playback timing in the cloud streaming service apparatus 100, and it is possible to further reduce the waiting time by reducing the time required for demultiplexing and synchronization.

아울러, 영상 출력 수단, 예를 들어, LCD 디스플레이 등을 포함하는 사용자 장치(200)는 복호화된 비디오 데이터를 랜더링하여 영상을 출력할 수 있다.In addition, the user device 200 including video output means, for example, an LCD display, etc., can render the decoded video data and output an image.

이때, 상기 사용자 장치(200)는 랜더링 수행 시, 랜더링 처리할 비디오 데이터, 즉, 복호화된 비디오 데이터가 둘 이상 대기하고 있는 지를 확인하고, 둘 이상 존재하는 경우, 그 중 일부를 선택적으로 삭제함으로써, 랜더링 처리 중 발생하는 레이턴시를 줄이도록 한다.At this time, when performing rendering, the user device 200 confirms whether two or more video data to be rendered, i.e., decoded video data, is waiting and if there are two or more, the user device 200 selectively deletes some of the video data, Thereby reducing the latency occurring during the rendering process.

한편, 영상 출력 수단을 포함하고 있지 않은 사용자 장치(200')는, 부호화된 비디오 데이터를 포함하는 비트 스트림의 수신 및 복호화 기능만을 수행하며, 복호화된 비디오 데이터를 연결된 영상 출력 장치(300)로 전송하여, 상기 영상 출력 장치(300)를 통해 출력할 수 있다. 이 경우, 상기 복호화된 비디오 데이터의 랜더링 처리는 상기 영상 출력 장치(300)를 통해서 이루어질 수 있다.On the other hand, the user apparatus 200 'not including the video output means performs only the function of receiving and decoding the bit stream including the encoded video data, and transmits the decoded video data to the connected video output apparatus 300 And output it through the video output apparatus 300. [ In this case, the decoding process of the decoded video data may be performed through the video output apparatus 300.

이때, 상기 영상 출력 장치(300)는 상기 사용자 장치(200')로부터 전송되어 버퍼링된 복호화된 비디오 데이터가 둘 이상 대기하고 있는 지를 확인하고, 둘 이상 대기하는 경우, 그 중 일부를 선택적으로 삭제함으로써, 랜더링 처리 중 발생하는 레이턴시를 줄이도록 한다.At this time, the video output apparatus 300 confirms whether two or more buffered decoded video data transmitted from the user apparatus 200 'are waiting, and when two or more waiters are waiting, a part of the decoded video data is selectively deleted , Thereby reducing the latency occurring during the rendering process.

이러한 클라우드 스트리밍 서비스 시스템에 있어서, 상술한 클라우드 스트리밍 서비스 장치(100)와 사용자 장치(200, 200')를 연결하여 데이터를 전달하는 통신망(10)은, 현재 이용되거나 현재 개발 중으로 향후 이용 가능한 하나 이상의 통신 방식을 포함하여 이루어질 수 있다. 예를 들어, 통신망(10)은 WLAN(Wireless LAN), 와이파이(Wi-Fi), 와이브로(Wibro), 와이맥스(Wimax)와 같은 무선 통신, HSDPA(High Speed Downlink Packet Access), CDMA, LTE(Long Term Evolution) 등과 같은 이동통신, 이더넷(Ethernet), xDSL(ADSL, VDSL), HFC(Hybrid Fiber Coax), FTTC(Fiber to The Curb), FTTH(Fiber To The Home) 등의 유선 통신 방식 중 적어도 하나에 따른 통신망 들의 결합으로 이루어질 수 있다.In such a cloud streaming service system, the communication network 10 for connecting the cloud streaming service apparatus 100 and the user apparatuses 200 and 200 'to transmit the data may include one or more And a communication method. For example, the communication network 10 may be a radio communication such as a wireless LAN (WLAN), a Wi-Fi, a Wibro, a WiMAX, a High Speed Downlink Packet Access (HSDPA) At least one of wired communication methods such as mobile communication such as Ethernet, Terminology, Term Evolution, Ethernet, xDSL (ADSL, VDSL), Hybrid Fiber Coax (HFC), Fiber to the Curb (FTTC) Or a combination of communication networks according to FIG.

따라서, 상술한 클라우드 스트리밍 서비스를 처리하기 위한 사용자 장치(200, 200')는, 사용자가 이용하는 다양한 정보통신기기 중, 통신망(10)을 통해 통신 가능하다면 어떠한 것이라도 가능하다. 예를 들어, 사용자 장치(200)는, 멀티미디어 단말기, 유선 단말기, 고정형 단말기 및 IP(Internet Protocol) 단말기 등의 다양한 단말기에 적용될 수 있다. Therefore, the user devices 200 and 200 'for processing the above-described cloud streaming service can be any of various information communication devices used by the user, as long as they can communicate through the communication network 10. For example, the user device 200 may be applied to various terminals such as a multimedia terminal, a wire terminal, a fixed terminal, and an IP (Internet Protocol) terminal.

특히, 영상 출력 수단을 구비한 사용자 장치(200)는 휴대폰, 스마트폰과 같은 이동통신단말기뿐만 아니라, PMP(Portable Multimedia Player), MID(Mobile Internet Device), 데스크톱PC(Desktop), 태블릿컴퓨터(Tablet PC), 노트북(Note book), 넷북(Net book), 방송 수신 기능과 함께 통신망(10)을 통한 인터넷 서비스를 지원하는 스마트 TV 등 다양한 장치가 될 수 있다.In particular, the user device 200 having the video output means can be used not only for a mobile communication terminal such as a mobile phone and a smart phone but also for a portable multimedia player (PMP), a mobile internet device (MID), a desktop PC, PCs, notebooks, netbooks, smart TVs that support Internet services through the network 10 in addition to broadcast reception functions, and the like.

반면, 상기 영상 출력 수단을 구비하지 않은 사용자 장치(2003)는 통신망(10)에 접속 가능하여 IPTV 방송 데이터를 수신하여 TV를 통해서 재생하는 셋탑박스가 될 수 있다.On the other hand, the user apparatus 2003 without the video output means can be a set-top box that is connectable to the communication network 10 and receives IPTV broadcast data and reproduces the IPTV broadcast data through the TV.

다음으로, 도 2 내지 도 4를 참조하여, 본 발명에 따른 클라우드 스트리밍 서비스 시스템의 각 장치의 구성 및 작용을 더 구체적으로 설명한다.Next, the configuration and operation of each device of the cloud streaming service system according to the present invention will be described in more detail with reference to FIG. 2 to FIG.

도 2는 본 발명에 따른 클라우드 스트리밍 서비스 장치의 구성을 나타낸 블럭도이다.2 is a block diagram illustrating a configuration of a cloud streaming service apparatus according to the present invention.

도 2를 참조하면, 본 발명에 따른 클라우드 스트리밍 서비스 장치(100)는 서비스 통신부(110)와, 스트리밍 제어부(120)와, 부호화부(130)와, 서비스 저장부(140)와, 실시간 방송 수신부(150)와, 클라우드 컴퓨팅 처리부(160)를 포함하여 이루어질 수 있다.2, a cloud streaming service apparatus 100 according to the present invention includes a service communication unit 110, a streaming control unit 120, a coding unit 130, a service storage unit 140, (150), and a cloud computing processing unit (160).

상기 서비스 통신부(110)는 통신망(10)을 통해 하나 이상의 사용자 장치(200, 200')와 통신하기 위한 구성이다. 이러한 서비스 통신부(110)는 하나 이상의 전송 프로토콜을 기반으로 데이터를 송수신할 수 있다.The service communication unit 110 is configured to communicate with one or more user devices 200 and 200 'through a communication network 10. The service communication unit 110 may transmit and receive data based on one or more transmission protocols.

구체적으로 상기 서비스 통신부(110)는 서비스를 요청한 사용자 장치(200, 200')와 통신 채널을 형성하고, 상기 형성된 통신 채널을 통해서 요청된 컨텐츠의 부호화된 비디오 데이터 및 오디오 데이터를 구분하여 상기 사용자 장치(200, 200')로 전송한다. 더 구체적으로, 본 발명의 일 실시 예에서 상기 서비스 통신부(110)는 상기 사용자 장치(200, 200')와 두 개의 통신 채널을 형성한 후, 상기 부호화된 비디오 데이터 및 오디오 데이터를 각각 할당된 통신 채널을 통해서 전송할 수 있다. 이때, 비디오 데이터가 전송되는 통신 채널과 오디오 데이터가 전송되는 통신 채널이 구분되어 있기 때문에, 사용자 장치(200)는 통신 채널을 기반으로 비디오 데이터와 오디오 데이터를 구분할 수 있다.Specifically, the service communication unit 110 forms a communication channel with the user device 200 or 200 'requesting the service, identifies the encoded video data and audio data of the requested content through the formed communication channel, (200, 200 '). More specifically, in one embodiment of the present invention, the service communication unit 110 forms two communication channels with the user device 200 and 200 ', and then transmits the encoded video data and audio data to the respective communication Channel. ≪ / RTI > At this time, since the communication channel through which the video data is transmitted and the communication channel through which the audio data is transmitted are distinguished, the user device 200 can distinguish the video data from the audio data based on the communication channel.

또한, 본 발명의 다른 실시 예에서, 상기 서비스 통신부(110)는 데이터 종류, 예를 들어, 비디오 데이터와 오디오 데이터를 구분하는 식별자를 상기 부호화된 비디오 데이터 및 오디오 데이터와 함께 전송한다. 이 경우, 사용자 장치(200, 200')는 수신된 데이터에 포함된 식별자를 이용하여 비디오 데이터와 오디오 데이터를 구분할 수 있다.In addition, in another embodiment of the present invention, the service communication unit 110 transmits an identifier for distinguishing a data type, for example, video data and audio data, together with the encoded video data and audio data. In this case, the user device 200 or 200 'can distinguish the video data from the audio data using the identifier included in the received data.

다음으로, 스트리밍 제어부(120)는 클라우드 스트리밍 서비스에 있어서, 전송 처리를 수행하기 위한 구성이다. 구체적으로 상기 스트리밍 제어부(120)는 상기 서비스 통신부(110)를 통해 접속된 사용자 장치(200, 200')의 서비스 요청에 따라서, 상기 사용자 장치(200, 200')가 요청한 컨텐츠의 부호화된 비디오 데이터 및 오디오 데이터를 사용자 장치(200)로 전송한다. 특히, 본 발명에 따른 스트리밍 제어부(120)는 상기 부호화된 비디오 데이터 및 오디오 데이터를 서로 동기를 맞추어 사용자 장치(200, 200')로 전송하는데, 상기 부호화된 비디오 데이터 및 오디오 데이터를 재생 전에 미리 전송하는 것이 아니라, 상기 사용자 장치(200, 200')에서의 재생 시간에 맞추어 프레임 단위로 상기 부호화된 비디오 데이터 및 오디오 데이터를 순차 전송한다. 예를 들어, 상기 스트리밍 제어부(120)는 압축율이 30fps인 동영상을 전송한다고 할 때, 특정 프레임에 대응하는 부호화된 비디오 데이터 및 오디오 데이터를 전송한 후, 33msec 후에 다음 프레임의 부호화된 비디오 데이터 및 오디오 데이터를 전송할 수 있다. 특히, 본 발명에 따른 스트리밍 제어부(120)는 부호화된 비디오 데이터 및 오디오 데이터에 대한 패킷화 및 다중화 처리 없이, 부호화된 비트 스트림 그대로 전송한다.Next, the streaming control unit 120 is a configuration for performing transmission processing in the cloud streaming service. Specifically, the streaming control unit 120 transmits the encoded video data of the content requested by the user device 200 or 200 'according to a service request of the user device 200 or 200' connected thereto through the service communication unit 110 And audio data to the user device 200. In particular, the streaming control unit 120 according to the present invention transmits the encoded video data and audio data in synchronization with each other to the user apparatuses 200 and 200 ', and transmits the encoded video data and audio data in advance , And sequentially transmits the encoded video data and audio data on a frame-by-frame basis in accordance with the reproduction time of the user apparatus (200, 200 '). For example, when the moving picture having a compression rate of 30 fps is to be transmitted, the streaming control unit 120 transmits the encoded video data and audio data corresponding to a specific frame, and after 33 msec, Data can be transmitted. In particular, the streaming control unit 120 according to the present invention transmits the encoded bit stream as it is without packetizing and multiplexing the encoded video data and audio data.

아울러, 상기 스트리밍 제어부(120)는 사용자 장치(200, 200')에서 수신된 데이터가 비디오 데이터인지 오디오 데이터인지 구분할 수 있도록 부호화된 비디오 데이터 및 오디오 데이터에 데이터 종류를 구분할 수 있는 식별자를 포함시킬 수 있다.In addition, the streaming control unit 120 may include an identifier capable of distinguishing a data type from the encoded video data and audio data so that the data received from the user device 200 or 200 'may be video data or audio data have.

다음으로, 상기 부호화부(130)는, 상기 부호화된 비디오 데이터 및 오디오 데이터를 생성하기 위한 구성이다. 즉, 부호화부(130)는 상기 사용자 장치(200, 200')에서 요청한 컨텐츠의 비디오 데이터 및 오디오 데이터를 소정의 압축 프로토콜에 따라서 부호화한다. 이때, 비디오 데이터 및 오디오 데이터의 압축 방식은 서로 상이할 수 있다. 또한, 상기 부호화부(130)는 상기 서비스 저장부(140), 상기 실시간 방송 수신부(150), 및 클라우드 컴퓨팅 처리부(160)중 적어도 하나로부터 비디오 데이터 및 오디오 데이터를 전달받아 부호화를 수행할 수 있다.Next, the encoding unit 130 is configured to generate the encoded video data and audio data. That is, the encoding unit 130 encodes the video data and the audio data of the content requested by the user apparatuses 200 and 200 'according to a predetermined compression protocol. At this time, the compression methods of the video data and the audio data may be different from each other. The encoding unit 130 may receive video data and audio data from at least one of the service storage unit 140, the real-time broadcast receiving unit 150, and the cloud computing processing unit 160 to perform encoding .

상기 서비스 저장부(140)는 본 발명에 따른 클라우드 스트리밍 서비스 장치(100)의 동작에 필요한 데이터 및 프로그램을 저장하기 위한 구성으로서, 서비스 실행을 위한 프로그램 및 데이터들을 저장할 수 있다. 더 구체적으로, 서비스 저장부(140)는 사용자 장치(200, 200')에 서비스할 컨텐츠 데이터를 저장할 수 있다. 이때, 상기 컨텐츠 데이터는 부호화 전의 비디오 데이터 및 오디오 데이터를 포함할 수 있으며, 경우에 따라서 상기 컨텐츠 데이터는 부호화된 비디오 데이터 및 오디오 데이터를 포함할 수 있다.The service storage unit 140 stores data and programs necessary for the operation of the cloud streaming service apparatus 100 according to the present invention and may store programs and data for service execution. More specifically, the service storage unit 140 may store content data to be served to the user device 200, 200 '. In this case, the content data may include video data and audio data before being encoded, and the content data may include encoded video data and audio data.

아울러, 본 발명에 따른 클라우드 스트리밍 서비스 장치(100)는 실시간으로 방송되는 컨텐츠를 사용자 장치(200, 200')에 서비스할 수 있다.In addition, the cloud streaming service apparatus 100 according to the present invention can serve contents broadcasted in real time to the user apparatuses 200 and 200 '.

이를 위하여, 상기 실시간 방송 수신부(150)는 외부 장치, 예를 들어, CATV 또는 IPTV 등의 방송 서비스 장치로부터 실시간으로 방송되는 컨텐츠를 수신할 수 있다. To this end, the real-time broadcast receiver 150 can receive contents broadcasted in real time from an external device, for example, a broadcast service device such as CATV or IPTV.

아울러, 앞서 설명한 바와 같이, 클라우드 스트리밍 서비스는, 서버측에서 사용자가 요청한 컨텐츠를 대신 실행하거나 재생한 후, 그 결과(비디오 데이터 및 오디오 데이터)를 사용자 장치(200, 200')로 전송하는 서비스이다.In addition, as described above, the cloud streaming service is a service for transmitting or receiving the result (video data and audio data) to the user apparatuses 200 and 200 'after executing or playing back the content requested by the user on the server side .

이를 위하여, 본 발명에 따른 클라우드 스트리밍 서비스 장치(100)는 클라우드 컴퓨텅 처리부(160)를 더 포함할 수 있다.To this end, the cloud streaming service apparatus 100 according to the present invention may further include a cloud computing unit 160. [

상기 클라우드 컴퓨팅 처리부(160)는 사용자 장치(200,200')가 요청한 컨텐츠를 사용자 장치(200, 200')를 대신하여 실행하거나 재생한 후, 그에 따른 비디오 데이터 및/또는 오디오 데이터를 출력한다. 이때, 상기 클라우드 컴퓨팅 처리부(160)는 사용자 장치(200,200')로부터 전송된 입력 신호에 따라서 상기 컨텐츠의 실행 또는 재생을 수행할 수 있다.The cloud computing processor 160 executes or plays the content requested by the user device 200 or 200 'on behalf of the user device 200 or 200', and outputs the corresponding video data and / or audio data. At this time, the cloud computing processor 160 may execute or play the content according to an input signal transmitted from the user device 200 or 200 '.

예를 들어, 사용자 장치(200,200')에서 요청된 컨텐츠가 게임 등의 어플리케이션을 포함하는 경우, 해당 컨텐츠는 클라우드 컴퓨팅 처리부(160)에서 실행하고, 그 실행 결과로 출력된 비디오 데이터 및 오디오 데이터를 부호화부(130)를 통해 부호화한 후, 스트리밍 제어부(120)를 통해서 사용자 장치(200, 200')로 전송하게 된다.For example, when the content requested by the user device 200 or 200 'includes an application such as a game, the content is executed by the cloud computing processing unit 160, and the video data and audio data output as a result of the execution are encoded And transmits the encoded data to the user apparatuses 200 and 200 'through the streaming control unit 120. [

다른 예로, 사용자 장치(200, 200')에서 요청된 컨텐츠가 실시간 방송을 포함하는 경우, 해당 컨텐츠는 실시간 방송 수신부(150)로 수신되어, 부호화부(130)를 통해 부호화된 후, 스트리밍 제어부(120)를 통해서 사용자 장치(200, 200')로 전송된다.As another example, when the content requested by the user apparatus 200 or 200 'includes real-time broadcasting, the corresponding content is received by the real-time broadcast receiving unit 150, encoded through the encoding unit 130, 120 to the user device 200, 200 '.

아울러, 사용자 장치(200, 200')에서 요청한 컨텐츠는 서로 다른 종류의 컨텐츠를 하나 이상 포함할 수 있다. 예를 들어, 실시간 방송 및 채팅 어플리케이션을 포함할 수 있다. 이에, 상기 클라우드 컴퓨팅 처리부(160)는, 서비스 저장부(140)에 하나 이상의 컨텐츠의 출력을 믹싱하여 출력할 수 있다.In addition, the contents requested by the user apparatuses 200 and 200 'may include one or more contents of different kinds. For example, a real-time broadcast and chat application. The cloud computing processing unit 160 may mix output of one or more contents to the service storage unit 140 and output the mixed output.

따라서, 상기 클라우드 스트리밍 서비스 장치(100)는, 서비스 통신부(100)와, 스트리밍 제어부(120)와, 부호화부(130)와, 서비스 저장부(140)와, 실시간 방송 수신부(150)와, 클라우드 컴퓨팅 처리부(160) 중 둘 이상의 구성 간의 연동을 통해서, 본 발명에 따른 클라우드 스트리밍 서비스를 제공하게 된다.Accordingly, the cloud streaming service apparatus 100 includes a service communication unit 100, a streaming control unit 120, a coding unit 130, a service storage unit 140, a real-time broadcast receiving unit 150, The cloud processing apparatus 100 may provide a cloud streaming service according to the present invention through interworking between two or more configurations of the computing processor 160. [

이러한 클라우드 스트리밍 서비스 장치(100)로부터 사용자 요청에 대응하는 부호화된 비디오 데이터 및 오디오 데이터를 수신하여 출력하는 사용자 장치(200, 200')는 도 3 또는 도 4에 도시된 바와 같이 구성될 수 있다. 참고로, 도 3 및 도 4는 본 발명과 관련된 구성만을 도시한 것으로서, 사용자 장치(200, 200')는 도시된 구성 이외의 다른 구성을 포함할 수 있다. 아울러, 도 3 및 도 4에 도시된 각 구성은, 소프트웨어, 하드웨어 또는 소프트웨어와 하드웨어의 조합으로 구현될 수 있는 것으로서, 그 구현 형태나 명칭에 관계없이 이하에서 기술된 기능을 수행한다는 동일한 구성으로 이해될 수 있다.The user apparatuses 200 and 200 'receiving and outputting the encoded video data and audio data corresponding to the user request from the cloud streaming service apparatus 100 may be configured as shown in FIG. 3 or FIG. 3 and 4 show only the configuration related to the present invention, and the user device 200, 200 'may include other configurations than those shown. 3 and 4 may be implemented by software, hardware, or a combination of software and hardware, and the same configuration that performs the functions described below regardless of its implementation form or name may be understood .

특히, 도 3은 본 발명에 따른 사용자 장치 중, 영상 출력 수단을 구비한 사용자 장치(200)의 구성을 나타내고, 도 4는 영상 출력 수단을 구비하지 못한 사용자 장치(200') 및 영상 출력 장치(300)의 구성을 나타낸다.In particular, FIG. 3 shows a configuration of a user device 200 having a video output means among user devices according to the present invention, FIG. 4 shows a configuration of a user device 200 'and a video output device 300 shown in FIG.

본 발명의 일 실시 예에서, 영상 출력 수단을 구비한 사용자 장치(200)는 도 3에 도시된 바와 같이, 네트워크 수신부(210)와, 디코딩부(220)와, 랜더링부(230) 및 제어부(240)를 포함하여 이루어질 수 있다.3, the user apparatus 200 having the video output unit may include a network receiving unit 210, a decoding unit 220, a rendering unit 230, and a control unit 240).

네트워크 수신부(210)는, 통신망(10)을 통해서 클라우드 스트리밍 서비스 장치(100)에 접속하여 데이터를 수신하기 위한 구성이다.The network receiving unit 210 is a configuration for accessing the cloud streaming service apparatus 100 via the communication network 10 to receive data.

상기 네트워크 수신부(210)는, 상기 클라우드 스트리밍 서비스 장치(100)로부터 사용자 요청에 대응하는 비트 스트림을 수신하며, 상기 비트 스트림은 부호화된 비디오 데이터 및 오디오 데이터를 포함할 수 있다.The network receiving unit 210 receives a bit stream corresponding to a user request from the cloud streaming service apparatus 100, and the bit stream may include encoded video data and audio data.

더 구체적으로, 상기 네트워크 수신부(210)는, 프레임단위로 부호화된 비디오 데이터 및 오디오 데이터를 재생시간에 맞추어 각각 수신할 수 있으며, 수신된 비디오 데이터 및 오디오 데이터를 구분하여 상기 디코딩부(220)로 전달할 수 있다.More specifically, the network receiving unit 210 can receive the video data and the audio data, which are coded on a frame-by-frame basis, in accordance with the reproduction time, and divides the received video data and audio data into the decoded data .

여기서, 네트워크 수신부(210)는 수신된 데이터에 대한 역다중화를 수행하는 것이 아니라, 수신된 데이터가 비디오 데이터인지 오디오 데이터인지를 구분하여, 그대로 디코딩부(220)로 전달한다. 본 발명의 일 실시 예에 있어서, 네트워크 수신부(210)는, 서로 다른 채널을 통해서 상기 부호화된 비디오 데이터 및 오디오 데이터를 각각 수신하며, 수신된 채널을 통해 부호화된 비디오 데이터와 오디오 데이터를 구분하거나, 상기 부호화된 비디오 데이터 및 오디오 데이터와 함께, 데이터 종류를 구분하는 식별자를 더 수신하고, 상기 수신한 식별자를 이용하여 부호화된 비디오 데이터와 오디오 데이터를 구분할 수 있다. Here, the network receiving unit 210 does not perform demultiplexing on the received data but distinguishes whether the received data is video data or audio data, and transmits the data to the decoding unit 220 as it is. In an embodiment of the present invention, the network receiving unit 210 receives the encoded video data and audio data through different channels, distinguishes the encoded video data and audio data through the received channel, In addition to the encoded video data and audio data, an identifier for distinguishing a data type may be further received, and the encoded video data and audio data may be distinguished from each other using the received identifier.

이러한 동작을 위하여, 네트워크 수신부(210)는 통신망(10)을 통해 수신한 부호화된 비디오 데이터 및 오디오 데이터를 구분하여 저장하는 네트워크 버퍼를 포함할 수 있다.For this operation, the network receiving unit 210 may include a network buffer for separating and storing the encoded video data and the audio data received through the communication network 10.

디코딩부(220)는 부호화된 비디오 데이터와 오디오 데이터를 각각의 복호화 알고리즘에 따라서 복호화하기 위한 구성이다. 이를 위하여, 상기 디코딩부(220)는 오디오 디코딩 모듈(도시생략) 및 비디오 디코딩 모듈(도시생략)을 포함할 수 있다. 특히, 상기 디코딩부(220)는 네트워크 수신부(210)로부터 전달된 비디오 데이터와 오디오 데이터를 별도의 동기화 처리 없이, 수신되는 대로 복호화하여 출력한다. 이때, 상기 네트워크 수신부(210)로 수신된 부호화된 비디오 데이터 및 오디오 데이터는, 프레임 단위로 재생 시간에 맞추어 전송되는 것이므로, 상기 비디오 디코딩부(220) 및 오디오 디코딩부(230) 간의 동기화 처리 없이도 비디오 데이터와 오디오 데이터의 동기화가 이루어지며 재생 시점에 맞추어 출력될 수 있다. The decoding unit 220 is configured to decode the encoded video data and audio data according to respective decoding algorithms. For this, the decoding unit 220 may include an audio decoding module (not shown) and a video decoding module (not shown). In particular, the decoding unit 220 decodes the video data and the audio data transmitted from the network receiving unit 210 as they are received without performing a separate synchronization process. Since the encoded video data and audio data received by the network receiving unit 210 are transmitted in accordance with the reproduction time on a frame-by-frame basis, the video decoding unit 220 and the audio decoding unit 230, Data and audio data are synchronized and can be output at the time of playback.

상기 디코딩부(220)에서 복호화된 비디오 데이터는 프레임 단위로 랜더링부(230)로 전송되어, 상기 랜더링부(230)의 입력버퍼(231)에 저장된다.The video data decoded by the decoding unit 220 is transmitted to the rendering unit 230 on a frame basis and is stored in the input buffer 231 of the rendering unit 230.

다음으로, 랜더링부(230)는 상기 디코딩부(220)로부터 복호화된 비디오 데이터를 랜더링하여, 화면에 출력될 영상을 구성하기 위한 구성이다. 더 구체적으로, 상기 랜더링부(230)는 입력버퍼(231)에 저장된 복호화된 비디오 데이터를 프레임 단위로 순차적으로 가져와 랜더링한다.Next, the rendering unit 230 is configured to render the decoded video data from the decoding unit 220 and construct an image to be output on the screen. More specifically, the rendering unit 230 sequentially fetches and decodes the decoded video data stored in the input buffer 231 on a frame-by-frame basis.

통상적으로, 랜더링(Rendering)은 컴퓨터 프로그램을 통해 영상 데이터로부터 기 설정된 해상도의 영상을 구성하는 과정을 의미하는 것으로서, 부호화된 영상 데이터를 영상 출력 수단에서 표현되는 원색들의 디지털 화소값으로 계산하여 상기 영상 출력 수단에 영상 데이터에 대응하는 출력 영상을 구성하는 것이다.Conventionally, rendering refers to a process of composing an image having a predetermined resolution from image data through a computer program. The rendering process calculates the digital image data of the primary colors represented by the image output means, And the output means constitutes an output image corresponding to the image data.

제어부(240)는 상술한 복호화 및 랜더링 과정을 제어하기 위한 구성으로서, 특히, 본 발명에 있어서, 제어부(240)는 랜더링부(230)의 입력버퍼(231)에 저장된 둘 이상의 복호화된 비디오 데이터 중 일부를 선택적으로 제거함으로써, 랜더링 처리의 지연에 따른 레이턴시를 줄이도록 한다. 이러한 제어부(240)에 의한 구체적인 제어 방법은 도 5 및 도 6의 순서도를 참조하여 후에 더 구체적으로 설명하기로 한다.The control unit 240 controls the decoding and rendering process described above in the present invention so that the control unit 240 controls the decoding unit 230 to decode the at least one of the two or more decoded video data stored in the input buffer 231 of the rendering unit 230 By selectively removing some of them, the latency due to the delay of the rendering process is reduced. The specific control method by the control unit 240 will be described later in detail with reference to the flowcharts of FIGS. 5 and 6. FIG.

상술한 바와 같이 구성된 사용자 장치(200)는, 비디오 데이터를 복호화하여 출력하는 과정에서, 디코딩 처리가 랜더링 처리보다 빠름에 의해 발생화는 랜더링 단계에서의 레이턴시를 줄임으로써, 기존에 랜더링부(230)의 처리 지연으로 복호화된 비디오 데이터가 대기하는 문제를 최소화할 수 있다.The user device 200 configured as described above can reduce the latency in the rendering step by generating the decoding process faster than the rendering process in the process of decoding and outputting the video data, It is possible to minimize the problem that the video data decoded due to the processing delay of the video data is queued.

한편, 본 발명에 다른 실시 예에 있어서, 상기 사용자 장치(200')는 영상 출력 수단을 포함하지 않고, 영상 출력 장치(300)를 통해서 영상이 출력되도록 한다.Meanwhile, in another embodiment of the present invention, the user device 200 'does not include a video output means and outputs an image through the video output device 300.

이러한 본 발명의 다른 실시 예에 따른, 영상 출력 수단을 구비하지 않은 사용자 장치(200')는 도 4에 도시된 바와 같이, 네트워크 수신부(210)와, 디코딩부(220)와, 접속 인터페이스부(250)를 포함할 수 있다. 4, a user apparatus 200 'having no video output means according to another embodiment of the present invention includes a network receiving unit 210, a decoding unit 220, a connection interface unit 250).

즉, 본 발명의 다른 실시 예에 따른 사용자 장치(200')는, 랜더링부(230)를 포함하지 않고, 접속 인터페이스부(250)를 통해서 영상 출력 장치(300)와 연결될 수 있다.That is, the user apparatus 200 'according to another embodiment of the present invention may be connected to the video output apparatus 300 through the connection interface unit 250 without including the rendering unit 230.

여기서, 상기 네트워크 수신부(210)와 디코딩부(220)의 처리는 본 발명의 일 실시 예에서와 동일하게 동작하므로 그에 대한 설명을 생략한다.Here, the processing of the network receiving unit 210 and the decoding unit 220 operates in the same manner as in the embodiment of the present invention, and therefore, a description thereof will be omitted.

다만, 상기 디코딩부(220)에서 복호화된 비디오 데이터 및 오디오 데이터는, 영상 출력을 위하여 접속 인터페이스부(250)를 통해서 영상 출력 장치(300)로 출력된다.However, the video data and the audio data decoded by the decoding unit 220 are output to the video output apparatus 300 through the connection interface unit 250 for video output.

상기 접속 인터페이스부(250)는 사용자 장치(200')와 영상 출력 장치(300) 간을 연결하여 데이터를 전달하기 위한 구성으로서, 소정 규격의 인터페이스, 예를 들어, HDMI(High definition multimedia interface), DVI(Digital Visual Interface) 등으로 구현될 수 있다.The connection interface unit 250 is a structure for connecting data between the user device 200 'and the video output device 300 and transmits an interface of a predetermined standard, for example, a high definition multimedia interface (HDMI) DVI (Digital Visual Interface) or the like.

이때, 영상 출력 장치(300)는, 영상 출력 기능을 갖는 장치를 의미하는 것으로서, 예를 들어, 모니터, TV, 프로젝터 등이 될 수 있다.At this time, the video output apparatus 300 means a device having a video output function, and may be, for example, a monitor, a TV, a projector, or the like.

이러한 영상 출력 장치(300)는 사용자 장치(200')로부터 복호화된 비디오 데이터를 전달받아 랜더링하여 스크린상에 영상을 출력하는 것으로서, 도 4에 도시된 바와 같이, 접속 인터페이스부(310)와, 랜더링부(320)와, 제어부(330)를 포함하여 이루어질 수 있다.As shown in FIG. 4, the video output apparatus 300 includes a connection interface unit 310, a rendering unit 320, and a rendering unit 330. The video output unit 300 includes a connection interface 310, 320, and a control unit 330. The control unit 330 may be a microcomputer.

상기 접속 인터페이스부(310)는 상기 사용자 장치(200')에 구비된 접속 인터페이스부(250)와 동일한 인터페이스 규격에 따라서 상기 사용자 장치(200)에 접속되어, 제어 신호 및 데이터를 송수신하기 위한 구성이다. 구체적으로 접속 인터페이스부(310)는 사용자 장치(200')로부터 복호화된 비디오 데이터를 수신할 수 있다.The connection interface unit 310 is connected to the user equipment 200 according to the same interface standard as the connection interface unit 250 included in the user equipment 200 'and is configured to transmit and receive control signals and data . Specifically, the connection interface unit 310 can receive the decoded video data from the user device 200 '.

상기 접속 인터페이스부(310)를 통해서 전달된 복호화된 비디오 데이터는 랜더링부(320)의 입력 버퍼(321)에 순차적으로 저장되어, 랜더링 처리될 때까지 대기하게 된다.The decoded video data transmitted through the connection interface unit 310 is sequentially stored in the input buffer 321 of the rendering unit 320 and waits until it is rendered.

그리고, 랜더링부(320)는 입력 버퍼(321)에 저장된 복호화된 비디오 데이터를 프레임 단위로 읽어와 랜더링하여 출력 영상을 구성한다. The rendering unit 320 reads and decodes the decoded video data stored in the input buffer 321 on a frame-by-frame basis to form an output image.

이때, 제어부(330)는 상기 랜더링부(320)의 입력 버퍼(321)에 저장된 복호화된 비디오 데이터를 확인하고, 둘 이상이 누적되어 있는 경우, 저장된 비디오 데이터 중 일부를 삭제한다. 더 구체적으로 상기 제어부(330)는 상기 랜더링부(320)의 입력 버퍼(321)에 일정 수 이하의 프레임(예를 들어, 1 프레임)만이 존재하도록 상기 입력 버퍼(321)를 관리하게 된다.At this time, the control unit 330 checks the decoded video data stored in the input buffer 321 of the rendering unit 320, and deletes some of the stored video data when two or more are accumulated. More specifically, the control unit 330 manages the input buffer 321 such that only a certain number of frames (for example, one frame) exist in the input buffer 321 of the rendering unit 320.

상술한 바에 의하면, 사용자 장치(200')가 다른 영상 출력 장치(300)를 통해서 영상을 출력하는 경우에도, 영상 출력 장치(300)에서 복호화된 비디오 데이터가 누적되어 대기하는 문제 및 그에 따른 레이턴시 증가를 해결할 수 있게 된다.According to the above description, even when the user apparatus 200 'outputs an image through the other image output apparatus 300, the problem that the video data decoded by the image output apparatus 300 is cumulatively accumulated and the latency increase Can be solved.

이하, 본 발명에 따른 레이턴시를 고려한 영상 출력 방법을 더 구체적으로 설명하기로 한다.Hereinafter, a video output method in consideration of latency according to the present invention will be described in more detail.

도 5는 본 발명의 일 실시 예에 따른 레이턴시를 고려한 영상 출력 방법을 설명하기 위한 순서도이다.5 is a flowchart illustrating an image output method in consideration of latency according to an embodiment of the present invention.

도 5는 영상 출력 기능(수단)을 포함하는 장치에 의하여 수행되는 영상 출력 과정을 나타낸 것으로서, 도 3에 도시된 사용자 장치(200) 혹은 도 4에 도시된 영상 출력 장치(300)에 의해 수행될 수 있다.5 shows an image output process performed by an apparatus including a video output function (means), which is performed by the user apparatus 200 shown in FIG. 3 or the video output apparatus 300 shown in FIG. 4 .

도 5를 참조하면, 영상 출력 수단을 포함하는 사용자 장치(200)의 랜더링부(230)는 디코딩부(230)에서 복호화된 후 입력 버퍼(231)에 순차로 저장되는 복호화된 비디오 데이터를 프레임 단위로 읽어와 랜더링 처리를 수행한다(S105). 이렇게 랜더링 처리되는 비디오 데이터는 입력 버퍼(231)에서 삭제되므로, 상기 입력 버퍼(231)에는 랜더링 처리를 대기중인 복호화된 비디오 데이터만이 저장되게 된다.5, the rendering unit 230 of the user device 200 including the video output unit decodes the decoded video data, which is decoded by the decoding unit 230 and then stored in the input buffer 231, And performs a rendering process (S105). Since the video data to be rendered in this way is deleted in the input buffer 231, only the decoded video data waiting for the rendering process is stored in the input buffer 231.

이때, 사용자 장치(200)의 제어부(240) 또는 영상 출력 장치(300)의 제어부(330)는, 랜더링부(230, 320)가 랜더링 처리를 위해 입력 버퍼(231, 321)에 저장된 복호화된 비디오 데이터를 가져간 후, 상기 입력 버퍼(231, 321)에 대기중인 복호화된 비디오 데이터가 남아 있는 지를 확인한다(S110).The control unit 240 of the user device 200 or the control unit 330 of the video output device 300 may be configured to allow the rendering units 230 and 320 to decode the decoded video data stored in the input buffers 231 and 321 After the data is fetched, it is checked whether the decoded video data waiting in the input buffers 231 and 321 remain (S110).

만약, 복호화와 랜더링 처리가 거의 비슷한 속도로 이루어지는 경우, 랜더링부(230,320)에서 다음 프레임의 비디오 데이터를 가져가 랜더링을 수행하는 동안, 디코딩부(230)에서 그 다음 프레임의 비디오 데이터에 대한 복호화가 처리되어 상기 입력 버퍼(231, 321)로 전달되게 된다. 따라서, 상기 랜더링부(230, 320)가 다음 프레임에 대한 랜더링을 위하여 입력 버퍼(231, 321)에 저장된 복호화된 비디오 데이터를 가져가는 시점에, 상기 입력 버퍼(231, 321)에는 다른 복호화된 비디오 데이터가 존재하지 않게 된다.If the decoding and rendering processes are performed at almost the same rate, while the rendering units 230 and 320 take the video data of the next frame and perform rendering, the decoding unit 230 decodes the video data of the next frame And transmitted to the input buffers 231 and 321. Accordingly, at the time when the rendering units 230 and 320 take decoded video data stored in the input buffers 231 and 321 for rendering for the next frame, the input buffers 231 and 321 are supplied with different decoded video The data does not exist.

반면, 복호화 처리가 랜더링 처리보다 빠르게 이루어지는 경우, 상기 입력 버퍼(231, 321)에는 다수의 비디오 데이터가 누적 저장되어, 상기 랜더링부(230, 320)가 다음 프레임에 대한 랜더링을 위하여 입력 버퍼(231, 321)에 저장된 복호화된 비디오 데이터를 가져간 시점에도, 상기 입력 버퍼(231, 321)에는 하나 이상의 복호화된 비디오 데이터가 존재할 수 있다.In contrast, when the decoding process is performed faster than the rendering process, a plurality of video data is accumulated in the input buffers 231 and 321, and the rendering units 230 and 320 output the input buffer 231 , And 321, the input buffers 231 and 321 may have one or more decoded video data.

따라서, 상기 제어부(240, 330)는 상기 랜더링부(230, 320)가 특정 프레임의 복호화된 비디오 데이터에 대한 랜더링을 시작한 시점으로부터 소정 시간 이내에 상기 입력 버퍼(231, 321)에 다른 프레임의 비디오 데이터가 존재하는 지를 확인하고, 그 결과, 존재하는 경우, 상기 입력 버퍼(231, 321)에 남아 있는 다른 프레임 비디오 데이터를 삭제한다(S115). 이때, 상기 제어부(240, 330)는 상기 입력 버퍼(231, 321)에 남아 있는 비디오 데이터 전체를 삭제하거나, 그 중 일부를 선택적으로 삭제할 수 있다. 선택적으로 삭제하는 경우, 상기 제어부(240, 330)는 연속되지 않은 프레임을 선택하여 삭제함으로써, 스크린 상에서 출력되는 영상의 품질을 저하시키지 않도록 할 수 있다. 또한, 상기 제어부(240, 330)는 동시에 삭제하는 프레임의 수를 제한함으로써, 영상 품질 저하를 최소화시킬 수 있다.Accordingly, the control unit 240 or 330 may transmit the video data of the other frame to the input buffer 231 or 321 within a predetermined time from the time when the rendering unit 230 or 320 starts rendering of the decoded video data of the specific frame, (Step S115). As a result, if there are other frame video data remaining in the input buffers 231 and 321, the frame buffer deletes the frame video data. At this time, the control unit 240 or 330 may delete all of the video data remaining in the input buffers 231 and 321, or may selectively delete some of the video data. In the case of selective deletion, the control unit 240 or 330 may select and delete non-consecutive frames so as not to deteriorate the quality of the image output on the screen. In addition, the control unit 240 and 330 can limit the number of frames to be deleted at the same time, thereby minimizing degradation in image quality.

반면에, S110 단계에서 확인 결과 입력 버퍼(231, 321)에 남아 있는 비디오 데이터가 없는 경우, 랜더링 처리 지연이 발생하지 않은 것이므로, S115 단계를 수행하지 않는다.On the other hand, if there is no video data remaining in the input buffers 231 and 321 as a result of the check in step S110, since no rendering processing delay has occurred, step S115 is not performed.

상술한 과정(S105 단계 ~ S115단계)는 영상 출력 종료될 때까지 반복적으로 실행되어(S120), 영상 출력이 이루어지는 동안 랜더링 처리 지연에 의한 레이턴시가 발생하지 않도록 관리하게 된다.The above-described processes (steps S105 to S115) are repeatedly executed until the video output ends (S120), and the latency due to the rendering process delay is not generated during the video output.

도 6은 본 발명의 다른 실시 예에 따른 레이턴시를 고려한 영상 출력 방법을 설명하기 위한 순서도이다.6 is a flowchart illustrating an image output method in consideration of latency according to another embodiment of the present invention.

도 6에 도시한 영상 출력 과정도, 도 3에 도시된 사용자 장치(200) 혹은 도 4에 도시된 영상 출력 장치(300)에 의해 수행될 수 있다.The video output process shown in FIG. 6 may also be performed by the user apparatus 200 shown in FIG. 3 or the video output apparatus 300 shown in FIG.

도 6을 참조하면, 영상 출력 수단을 포함하는 사용자 장치(200)의 랜더링부(230)는 디코딩부(230)에서 복호화된 후 입력 버퍼(231)에 순차로 저장되는 복호화된 비디오 데이터를 프레임 단위로 읽어와 랜더링 처리를 수행한다(S205). 이렇게 랜더링 처리되는 비디오 데이터는 입력 버퍼(231)에서 삭제되므로, 상기 입력 버퍼(231)에는 랜더링 처리 대기중인 복호화된 비디오 데이터만이 저장되게 된다.Referring to FIG. 6, the rendering unit 230 of the user apparatus 200 including the video output unit decodes the decoded video data, which is decoded by the decoding unit 230 and stored in the input buffer 231, And performs a rendering process (S205). Since the video data to be rendered in this manner is deleted in the input buffer 231, only the decoded video data waiting for the rendering process is stored in the input buffer 231.

이때, 사용자 장치(200)의 제어부(240) 또는 영상 출력 장치(300)의 제어부(330)는, 상기 랜더링부(230,320)의 입력 버퍼(231, 321) 상태를 모니터링하여, 상기 입력 버퍼(231, 321)에 두 프레임 이상의 복호화된 비디오 데이터가 남아 있는 지를 확인한다(S210).The control unit 240 of the user device 200 or the control unit 330 of the video output device 300 monitors the states of the input buffers 231 and 321 of the rendering units 230 and 320 and controls the input buffer 231 , 321) whether the decoded video data of two or more frames remains (S210).

앞서 설명한 바와 마찬가지로, 복호화와 랜더링 처리가 거의 비슷한 속도로 이루어지는 경우, 랜더링부(230,320)에서 다음 프레임의 비디오 데이터를 가져가 랜더링을 수행하는 동안, 디코딩부(230)에서 그 다음 프레임의 비디오 데이터에 대한 복호화가 처리되어 상기 입력 버퍼(231, 321)로 전달되게 된다. 따라서, 상기 입력 버퍼(231, 321)에는 1 프레임 이하의 복호화된 비디오 데이터가 존재하게 된다.When the decoding and rendering processes are performed at almost the same speed, while the rendering units 230 and 320 take the next frame of video data and perform rendering, the decoding unit 230 decodes the video data of the next frame Decoding is performed and transferred to the input buffers 231 and 321. Accordingly, the input buffers 231 and 321 have decoded video data of one frame or less.

반면, 복호화 처리가 랜더링 처리보다 빠르게 이루어지는 경우, 상기 입력 버퍼(231, 321)에는 다수의 비디오 데이터가 누적 저장되어, 두 프레임 이상의 복호화된 비디오 데이터가 존재할 수 있다.On the other hand, when the decoding process is performed faster than the rendering process, the input buffers 231 and 321 accumulate a plurality of video data, and there may exist decoded video data of two or more frames.

따라서, 상기 제어부(240, 330)는 S210 단계에서의 확인 결과, 상기 입력 버퍼(231, 321)에 두 프레임 이상의 비디오 데이터가 존재하는 경우, 상기 입력 버퍼(231, 321)에 저장된 비디오 데이터를 한 프레임을 제외하고 나머지는 삭제한다S215). 이때, 상기 제어부(240, 330)는 연속되지 않은 프레임을 선택하여 삭제함으로써, 스크린 상에서 출력되는 영상의 품질을 저하시키지 않도록 할 수 있다. 또한, 상기 제어부(240, 330)는 동시에 삭제하는 프레임의 수를 제한함으로써, 영상 품질 저하를 최소화시킬 수 있다.Accordingly, if it is determined in step S210 that there is more than two frames of video data in the input buffers 231 and 321, the control units 240 and 330 transmit the video data stored in the input buffers 231 and 321 The remaining frames are deleted except for the frame S215). At this time, the control unit 240 and 330 may select and delete non-consecutive frames so as not to deteriorate the quality of the image output on the screen. In addition, the control unit 240 and 330 can limit the number of frames to be deleted at the same time, thereby minimizing degradation in image quality.

반면에, S210 단계에서 확인 결과 입력 버퍼(231, 321)에 1 프레임 이하의 비디오 데이터가 존재하는 경우, 랜더링 처리 지연이 발생하지 않은 것이므로, S215 단계를 수행하지 않는다.On the other hand, if it is determined in step S210 that video data of one frame or less exists in the input buffers 231 and 321, the rendering processing delay does not occur, and therefore, step S215 is not performed.

상술한 과정(S205 단계 ~ S215단계)는 영상 출력 종료될 때까지 반복적으로 실행되어(S220), 영상 출력이 이루어지는 동안 랜더링 처리 지연에 의한 레이턴시가 발생하지 않도록 관리하게 된다.The above-described processes (steps S205 to S215) are repeatedly executed until the video output ends (S220), and the latency due to the rendering process delay is managed while the video output is performed.

상술한 레이턴시를 고려한 영상 출력 방법은 다양한 컴퓨터 수단을 통하여 판독 가능한 소프트웨어 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM, Random Access Memory), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The video output method considering the above latency can be implemented in software form readable by various computer means and recorded in a computer readable recording medium. Here, the recording medium may include program commands, data files, data structures, and the like, alone or in combination. Program instructions to be recorded on a recording medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. For example, the recording medium may be an optical recording medium such as a magnetic medium such as a hard disk, a floppy disk and a magnetic tape, a compact disk read only memory (CD-ROM), a digital video disk (DVD) Includes a hardware device that is specially configured to store and execute program instructions such as a magneto-optical medium such as a floppy disk and a ROM, a random access memory (RAM), a flash memory, do. Examples of program instructions may include machine language code such as those generated by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like. Such a hardware device may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

또한, 본 발명에 따른 클라우드 스트리밍 서비스 장치(100)나 사용자 장치(200)나 영상 출력 장치(300)에 탑재되는 프로세서는 본 발명에 따른 방법을 실행하기 위한 프로그램 명령을 처리할 수 있다. 일 구현 예에서, 이 프로세서는 싱글 쓰레드(Single-threaded) 프로세서일 수 있으며, 다른 구현 예에서 본 프로세서는 멀티 쓰레드(Multithreaded) 프로세서일 수 있다. 나아가 본 프로세서는 메모리 혹은 저장 장치 상에 저장된 명령을 처리하는 것이 가능하다.In addition, the processor installed in the cloud streaming service apparatus 100, the user apparatus 200, and the video output apparatus 300 according to the present invention can process program instructions for executing the method according to the present invention. In one implementation, the processor may be a single-threaded processor, and in other embodiments, the processor may be a multithreaded processor. Further, the processor is capable of processing instructions stored on a memory or storage device.

본 발명에 따른 클라우드 스트리밍 서비스 장치(100)나 사용자 장치(200)나 영상 출력 장치(300)는 하나 이상의 프로세서로 하여금 앞서 설명한 기능들과 프로세스를 수행하도록 하는 명령에 의하여 구동될 수 있다. 예를 들어 그러한 명령으로는, 예컨대 JavaScript나 ECMAScript 명령 등의 스크립트 명령과 같은 해석되는 명령이나 실행 가능한 코드 혹은 컴퓨터로 판독 가능한 매체에 저장되는 기타의 명령이 포함될 수 있다. 나아가 본 발명에 따른 장치는 서버 팜(Server Farm)과 같이 네트워크에 걸쳐서 분산형으로 구현될 수 있으며, 혹은 단일의 컴퓨터 장치에서 구현될 수도 있다.The cloud streaming service apparatus 100, the user apparatus 200, and the video output apparatus 300 according to the present invention can be driven by an instruction to cause one or more processors to perform the functions and processes described above. Such instructions may include, for example, interpreted instructions such as script commands, such as JavaScript or ECMAScript commands, or other instructions stored in executable code or computer readable media. Further, the apparatus according to the present invention may be implemented in a distributed manner across a network, such as a server farm, or may be implemented in a single computer device.

비록 본 명세서와 도면에서는 예시적인 장치 구성을 기술하고 있지만, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 다른 유형의 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 본 발명에 따른 장치의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.Although the present specification and drawings describe exemplary device configurations, the functional operations and subject matter implementations described herein may be embodied in other types of digital electronic circuitry, or alternatively, of the structures disclosed herein and their structural equivalents May be embodied in computer software, firmware, or hardware, including, or in combination with, one or more of the foregoing. Implementations of the subject matter described herein may be embodied in one or more computer program products, i. E. One for computer program instructions encoded on a program storage medium of the type for < RTI ID = 0.0 & And can be implemented as a module as described above. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter that affects the machine readable propagation type signal, or a combination of one or more of the foregoing.

본 발명에 따른 장치에 탑재되고 본 발명에 따른 방법을 실행하는 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일 되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.A computer program (also known as a program, software, software application, script, or code) that is loaded on an apparatus according to the present invention and which implements the method according to the present invention may be a compiled or interpreted language, a program containing a priori or procedural language Language, and may be deployed in any form including standalone programs or modules, components, subroutines, or other units suitable for use in a computer environment. A computer program does not necessarily correspond to a file in the file system. The program may be stored in a single file provided to the requested program, or in multiple interactive files (e.g., a file storing one or more modules, subprograms, or portions of code) (E.g., one or more scripts stored in a markup language document). A computer program may be deployed to run on multiple computers or on one computer, located on a single site or distributed across multiple sites and interconnected by a communications network.

본 명세서에서 설명한 주제의 구현물은 예컨대 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 예컨대 어플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 예컨대 사용자가 본 명세서에서 설명한 주제의 구현물과 상호 작용할 수 있는 웹 브라우저나 그래픽 유저 인터페이스를 갖는 클라이언트 컴퓨터와 같은 프론트엔드 컴포넌트 혹은 그러한 백엔드, 미들웨어 혹은 프론트엔드 컴포넌트의 하나 이상의 모든 조합을 포함하는 연산 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 예컨대 통신 네트워크와 같은 디지털 데이터 통신의 어떠한 형태나 매체에 의해서도 상호 접속 가능하다.Implementations of the subject matter described herein may include, for example, a back-end component such as a data server, or may include a middleware component, such as an application server, or may be a web browser or a graphical user, for example a user, who may interact with an implementation of the subject- Front-end components such as client computers with interfaces, or any combination of one or more of such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication, such as, for example, a communications network.

본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.While the specification contains a number of specific implementation details, it should be understood that they are not to be construed as limitations on the scope of any invention or claim, but rather on the description of features that may be specific to a particular embodiment of a particular invention Should be understood. Certain features described herein in the context of separate embodiments may be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments, either individually or in any suitable subcombination. Further, although the features may operate in a particular combination and may be initially described as so claimed, one or more features from the claimed combination may in some cases be excluded from the combination, Or a variant of a subcombination.

마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다.Likewise, although the operations are depicted in the drawings in a particular order, it should be understood that such operations must be performed in that particular order or sequential order shown to achieve the desired result, or that all illustrated operations should be performed. In certain cases, multitasking and parallel processing may be advantageous. Also, the separation of the various system components of the above-described embodiments should not be understood as requiring such separation in all embodiments, and the described program components and systems will generally be integrated together into a single software product or packaged into multiple software products It should be understood.

아울러, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으나, 여기에 개시된 실시 예외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to be exemplary and explanatory only and is not restrictive of the invention, It is self-evident to those who have knowledge. Furthermore, although specific terms are used in this specification and the drawings, they are used in a generic sense only to facilitate the description of the invention and to facilitate understanding of the invention, and are not intended to limit the scope of the invention.

따라서 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.Therefore, the scope of the present invention should not be limited by the described embodiments but should be defined by the claims.

본 발명은 부호화된 비디오 데이터를 복호화하고 랜더링을 통해 출력 영상을 구성하는데 있어서, 랜더링되지 못하고 복호화된 비디오 데이터가 소정 프레임 이상 누적되면 그 중 일부를 제거함으로써 복호화된 비디오 데이터가 누적되어 발생하는 레이턴시를 해결할 수 있다.The present invention decodes encoded video data and constructs an output image through rendering. When unrendered and decoded video data is accumulated over a predetermined number of frames, the decoded video data is partially accumulated, Can be solved.

특히, 본 발명은 랜더링 처리가 디코딩 처리보다 늦어져 복호화된 비디오 데이터가 처리되지 못하고 지연될 경우, 동영상 화질을 저하시키지 않는 수준에서 선택적으로 처리되지 못한 비디오 데이터 중 일부를 제거함으로써 보다 빠른 영상 출력이 이루어질 수 있도록 하며, 이를 통해서 클라우드 스트리밍 서비스에 있어서의 사용자 요청으로부터 응답이 이루어지기까지의 시간을 최소화하할 수 있다.Particularly, according to the present invention, when the decoded video data is delayed due to the rendering process being slower than the decode process, a part of the video data that can not be selectively processed at a level that does not deteriorate the video quality is removed, So that the time from the user request to the response in the cloud streaming service can be minimized.

10: 통신망 100: 클라우드 스트리밍 서비스 장치
110: 서비스 통신부 120: 스트리밍 제어부
130: 부호화부 140: 서비스 저장부
150: 실시간 방송 수신부 160: 클라우드 컴퓨팅 처리부
200, 200': 사용자 장치 210: 네트워크 수신부
220: 디코딩부 230: 랜더링부
240: 제어부 250: 접속 인터페이스부
300: 영상 출력 장치 310: 접속 인터페이스부
320: 랜더링부 330: 제어부
10: communication network 100: cloud streaming service device
110: service communication unit 120: streaming control unit
130: encoding unit 140:
150: real-time broadcast receiver 160: cloud computing processor
200, 200 ': user device 210: network receiver
220: decoding unit 230: rendering unit
240: control unit 250: connection interface unit
300: video output apparatus 310: connection interface unit
320: a rendering unit 330:

Claims (12)

부호화된 비디오 데이터를 포함하는 비트 스트림을 수신하는 네트워크 수신부;
상기 네트워크 수신부에 의해 수신된 비트 스트림을 복호화하는 디코딩부;
상기 디코딩부에서 출력되는 복호화된 비디오 데이터를 입력 버퍼에 저장하고, 입력 버퍼에 저장된 복호화된 비디오 데이터를 프레임 단위로 가져와 순차적으로 랜더링하여 출력 영상을 구성하는 랜더링부; 및
상기 렌더링부에서 상기 복호화된 비디오 데이터를 입력 버퍼에서 가져와 순차적으로 랜더링을 시작한 시점을 기준으로, 소정 시간 이내에 상기 입력 버퍼에 저장된 다른 복호화된 비디오 데이터가 존재하는 지를 확인하여, 존재할 경우 상기 다른 복호화된 비디오 데이터를 삭제하는 제어부를 포함하는 것을 특징으로 하는 사용자 장치.
A network receiving unit for receiving a bitstream including encoded video data;
A decoding unit decoding the bit stream received by the network receiving unit;
A rendering unit that stores decoded video data output from the decoding unit in an input buffer, sequentially fetches decoded video data stored in an input buffer on a frame basis, and sequentially composes the decoded video data to form an output image; And
The rendering unit fetches the decoded video data from the input buffer and determines whether other decoded video data stored in the input buffer exists within a predetermined time based on a time point at which the rendering is sequentially started, And a control unit for deleting the video data.
삭제delete 제1항에 있어서, 상기 제어부는
상기 입력 버퍼에 두 프레임 이상의 복호화된 비디오 데이터가 존재하는 지를 확인하고, 두 프레임 이상의 복호화된 비디오 데이터가 존재하는 경우, 이 중 일부를 선택적으로 삭제하는 것을 특징으로 하는 사용자 장치.
The apparatus of claim 1, wherein the control unit
And if the decoded video data of two or more frames exists, selectively deletes some of the decoded video data in the input buffer.
제1항에 있어서,
상기 네트워크 수신부는 클라우드 스트리밍 서비스 장치로부터 프레임단위로 재생시간에 맞추어 전송되는 부호화된 비디오 데이터를 수신하여 상기 디코딩부로 전달하고,
상기 디코딩부는 상기 부호화된 비디오 데이터가 수신되는 대로 복호화하는 것을 특징으로 하는 사용자 장치.
The method according to claim 1,
The network receiving unit receives coded video data transmitted from the cloud streaming service apparatus on a frame-by-frame basis in accordance with the reproduction time, transfers the coded video data to the decoding unit,
Wherein the decoding unit decodes the encoded video data as it is received.
사용자 장치와 접속되어 제어 신호 및 비디오 데이터를 송수신하기 위한 접속 인터페이스부;
상기 접속 인터페이스부를 통해 상기 사용자 장치로부터 전달받은 복호화된 비디오 데이터를 입력 버퍼에 저장하고, 입력 버퍼에 저장된 복호화된 비디오 데이터를 프레임 단위로 가져와 순차적으로 랜더링하여 출력 영상을 구성하는 랜더링부; 및
상기 랜더링부에서 상기 복호화된 비디오 데이터를 입력 버퍼에서 가져와 순차적으로 랜더링을 시작한 시점을 기준으로, 소정 시간 이내에 상기 입력 버퍼에 다른 복호화된 비디오 데이터가 저장되어 있는 지를 확인하여 저장되어 있을 경우, 상기 다른 복호화된 비디오 데이터를 삭제하는 제어부를 포함하는 영상 출력 장치.
A connection interface unit connected to the user apparatus to transmit and receive control signals and video data;
A rendering unit that stores decoded video data received from the user equipment through the connection interface unit in an input buffer, sequentially fetches decoded video data stored in an input buffer on a frame basis, and sequentially rendering the decoded video data; And
If the decoded video data is stored in the input buffer by checking whether the decoded video data is stored in the input buffer within a predetermined time based on a time point at which the decoded video data is fetched from the input buffer and the rendering is sequentially started, And a control unit for deleting the decoded video data.
부호화된 비디오 데이터를 수신하여, 기 설정된 디코딩 속도로 복호화하는 사용자 장치;
상기 사용자 장치와 접속되어, 상기 사용자 장치로부터 전달받은 복호화된 비디오 데이터를 입력 버퍼에 저장하고, 입력 버퍼에 저장된 복호화된 비디오 데이터를 프레임 단위로 가져와 순차적으로 랜더링하여 출력 영상을 구성하되, 상기 랜더링을 시작한 시점을 기준으로 소정 시간 이내에 상기 입력 버퍼에 다른 복호화된 비디오 데이터가 저장되어 있는 지를 확인하여 저장되어 있을 경우, 상기 다른 복호화된 비디오 데이터를 삭제하는 영상 출력 장치를 포함하는 클라우드 스트리밍 서비스 시스템.
A user apparatus for receiving coded video data and decoding the coded video data at a predetermined decoding rate;
A decoding unit for decoding the decoded video data stored in the input buffer and decoding the decoded video data stored in the input buffer for each frame and sequentially rendering the decoded video data; And a video output device for deleting the other decoded video data when it is confirmed whether other decoded video data is stored in the input buffer within a predetermined time based on the starting point of time.
제6항에 있어서,
상기 사용자 장치가 요청한 컨텐츠의 부호화된 비디오 데이터를 상기 사용자 장치에서의 재생 시간에 맞추어 프레임 단위로 순차 전송하는 클라우드 스트리밍 서비스 장치를 더 포함하는 것을 특징으로 하는 클라우드 스트리밍 서비스 시스템.
The method according to claim 6,
Further comprising a cloud streaming service device for sequentially transmitting the encoded video data of the content requested by the user device on a frame-by-frame basis in accordance with a playback time of the user device.
영상 출력 기능을 포함하는 장치가,
입력 버퍼에 저장된 복호화된 비디오 데이터를 프레임 단위로 가져와 순차적으로 랜더링하는 단계; 및
상기 랜더링을 시작한 시점을 기준으로 소정 시간 이내에, 상기 입력 버퍼에 저장된 비디오 데이터가 존재하는 지를 확인하는 단계; 및
확인 결과, 상기 입력 버퍼에 존재하는 복호화된 비디오 데이터를 삭제하는 단계를 포함하는 것을 특징으로 하는 레이턴시를 고려한 영상 출력 방법.
An apparatus including a video output function,
Fetching the decoded video data stored in the input buffer in units of frames and sequentially rendering the decoded video data; And
Confirming whether video data stored in the input buffer is present within a predetermined time based on the starting time of the rendering; And
And deleting the decoded video data present in the input buffer as a result of the determination.
삭제delete 제8항에 있어서, 상기 삭제하는 단계는
상기 입력 버퍼에 두 프레임 이상의 복호화된 비디오 데이터가 존재하는 지를 확인하는 단계; 및
두 프레임 이상의 복호화된 비디오 데이터가 존재하는 경우, 이 중 일부를 선택적으로 삭제하는 단계를 포함하는 것을 특징으로 하는 레이턴시를 고려한 영상 출력 방법.
9. The method of claim 8,
Confirming whether or not two or more frames of decoded video data exist in the input buffer; And
And selectively deleting a part of the decoded video data if there is decoded video data of two or more frames.
제8항에 있어서,
통신망을 통해 부호화된 비디오 데이터를 프레임 단위로 재생 시간에 맞추어 수신하는 단계;
상기 수신된 부호화된 비디오 데이터를 복호화하여 상기 입력 버퍼에 저장하는 단계를 더 포함하는 것을 특징으로 하는 레이턴시를 고려한 영상 출력 방법.
9. The method of claim 8,
Receiving encoded video data through a communication network in a frame unit in accordance with a reproduction time;
And decoding the received encoded video data and storing the decoded video data in the input buffer.
제8항, 제10항 내지 제11항 중 어느 한 항에 기재된 레이턴시를 고려한 영상 출력 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.A program for executing a video output method in consideration of latency as set forth in any one of claims 8 to 10.
KR1020140013562A 2014-02-06 2014-02-06 Method for displaying video considered latency, apparatus and cloud streaming service system therefor KR101668283B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140013562A KR101668283B1 (en) 2014-02-06 2014-02-06 Method for displaying video considered latency, apparatus and cloud streaming service system therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140013562A KR101668283B1 (en) 2014-02-06 2014-02-06 Method for displaying video considered latency, apparatus and cloud streaming service system therefor

Publications (2)

Publication Number Publication Date
KR20150092928A KR20150092928A (en) 2015-08-17
KR101668283B1 true KR101668283B1 (en) 2016-10-24

Family

ID=54057048

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140013562A KR101668283B1 (en) 2014-02-06 2014-02-06 Method for displaying video considered latency, apparatus and cloud streaming service system therefor

Country Status (1)

Country Link
KR (1) KR101668283B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022244961A1 (en) * 2021-05-17 2022-11-24 삼성전자주식회사 Control method and device using same method

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018088583A1 (en) * 2016-11-10 2018-05-17 에스케이테크엑스 주식회사 Cloud streaming service system, image cloud streaming service method using reciprocal cache, and device therefor
CN114071224B (en) * 2020-07-31 2023-08-25 腾讯科技(深圳)有限公司 Video data processing method, device, computer equipment and storage medium
CN113347488B (en) * 2021-08-04 2021-11-19 腾讯科技(深圳)有限公司 Video rendering method, device, equipment and storage medium
CN116916095B (en) * 2023-09-12 2024-01-12 深圳云天畅想信息科技有限公司 Smooth display method, device and equipment of cloud video and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006339980A (en) 2005-06-01 2006-12-14 Hitachi Ltd Image reproducer
JP2008211331A (en) * 2007-02-23 2008-09-11 Oki Electric Ind Co Ltd Stream data receiving and reproducing device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69631393T2 (en) 1995-03-29 2004-10-21 Hitachi Ltd Decoder for compressed and multiplexed image and audio data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006339980A (en) 2005-06-01 2006-12-14 Hitachi Ltd Image reproducer
JP2008211331A (en) * 2007-02-23 2008-09-11 Oki Electric Ind Co Ltd Stream data receiving and reproducing device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
배태면, Cloud Streaming 소개: 개념, 기술적 어려운 점, 그리고 응용.. SK플래닛 기술 블로그, 2013년 7월 29일*

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022244961A1 (en) * 2021-05-17 2022-11-24 삼성전자주식회사 Control method and device using same method

Also Published As

Publication number Publication date
KR20150092928A (en) 2015-08-17

Similar Documents

Publication Publication Date Title
CN108076364B (en) Adaptive media streaming apparatus and media service apparatus
US10219010B2 (en) Selective media playing method and apparatus according to live streaming and recorded streaming
US11070872B2 (en) Receiving device, transmitting device, and data processing method
US10979785B2 (en) Media playback apparatus and method for synchronously reproducing video and audio on a web browser
US9641906B2 (en) Content transmission device, content playback device, content distribution system, method for controlling content transmission device, method for controlling content playback device, control program, and recording medium
KR101668283B1 (en) Method for displaying video considered latency, apparatus and cloud streaming service system therefor
US20190184284A1 (en) Method of transmitting video frames from a video stream to a display and corresponding apparatus
US20150195327A1 (en) Method and apparatus for streaming dash content over broadcast channels
CN101883097A (en) Method and device for realizing that server equipment shares screen of client equipment
CN110113621B (en) Media information playing method and device, storage medium and electronic device
CN106464933B (en) Apparatus and method for remotely controlling rendering of multimedia content
JP7100052B2 (en) Electronic device and its control method
KR20200109359A (en) Video streaming
KR20180086113A (en) Media playback apparatus and method for synchronously reproducing video and audio on a web browser
CN113938470A (en) Method and device for playing RTSP data source by browser and streaming media server
KR101824278B1 (en) Receiver and method at the receiver for enabling channel change with a single decoder
CN108882010A (en) A kind of method and system that multi-screen plays
US9148289B2 (en) Method for streaming video data
EP2477397A1 (en) Handling the initialization for HTTP streaming of multimedia files via parallel TCP connections
KR20130099515A (en) Apparatas and method of displaying a contents using for key frame in a terminal
CN106612462B (en) Fast forward and fast backward processing method and terminal
KR101164746B1 (en) System and method for compensating consecutive palyback delay of video playback service based on real-time streaming protocol
CN103957445A (en) Video redirecting system and method based on application virtualization technology
KR101671311B1 (en) Cloud stream service system, apparatus and cloud streaming service method thereof
KR101678388B1 (en) Video processing method be considered latency, apparatus and cloud streaming service system therefor

Legal Events

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

Payment date: 20190916

Year of fee payment: 4