[go: up one dir, main page]

KR102483269B1 - 서버 장치, 사용자 단말 장치, 그 제어 방법들 및 스트리밍 시스템 - Google Patents

서버 장치, 사용자 단말 장치, 그 제어 방법들 및 스트리밍 시스템 Download PDF

Info

Publication number
KR102483269B1
KR102483269B1 KR1020160109986A KR20160109986A KR102483269B1 KR 102483269 B1 KR102483269 B1 KR 102483269B1 KR 1020160109986 A KR1020160109986 A KR 1020160109986A KR 20160109986 A KR20160109986 A KR 20160109986A KR 102483269 B1 KR102483269 B1 KR 102483269B1
Authority
KR
South Korea
Prior art keywords
frame
encoded
encoder
specific frame
frames
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020160109986A
Other languages
English (en)
Other versions
KR20180024217A (ko
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 KR1020160109986A priority Critical patent/KR102483269B1/ko
Priority to EP17846890.6A priority patent/EP3461303B1/en
Priority to PCT/KR2017/009023 priority patent/WO2018043965A1/en
Priority to US15/681,614 priority patent/US20180062907A1/en
Publication of KR20180024217A publication Critical patent/KR20180024217A/ko
Application granted granted Critical
Publication of KR102483269B1 publication Critical patent/KR102483269B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/23Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with coding of regions that are present throughout a whole video segment, e.g. sprites, background or mosaic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3077Sorting
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6017Methods or arrangements to increase the throughput
    • H03M7/6023Parallelization

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

서버 장치가 개시된다. 본 서버 장치는 사용자 단말 장치와 통신을 수행하는 통신부, 병렬적으로 인코딩 동작을 수행하는 복수의 인코더 및 실시간으로 생성되는 프레임을 복수의 인코더에 순차적으로 할당하고, 복수의 인코더로부터 병렬적으로 출력되는 복수의 인코딩된 프레임이 사용자 단말 장치로 개별적으로 스트리밍되도록 통신부를 제어하는 프로세서를 포함한다.

Description

서버 장치, 사용자 단말 장치, 그 제어 방법들 및 스트리밍 시스템 { SERVER APPARATUS, USER TERMINAL APPARATUS, CONTROL METHODS THEREOF AND STREAMING SYSTEM }
본 발명은 서버 장치, 사용자 단말 장치, 그 제어 방법들 및 스트리밍 시스템에 대한 것으로, 더욱 상세하게는 스트리밍 서비스를 제공하는 서버 장치, 사용자 단말 장치, 그 제어 방법들 및 스트리밍 시스템에 대한 것이다.
전자 기술의 발달로 FHD(Full High Definition) 컨텐츠 및 UHD(Ultra High Definition) 컨텐츠와 같은 고해상도의 영상이 보급되고 있다. 특히, 고해상도의 컨텐츠를 압축하는 것뿐만 아니라 실시간으로 스트리밍 서비스를 제공하는 기술도 보급되고 있다.
다만, 고해상도의 컨텐츠를 제공하기 위해서는 고효율의 영상 압축 기술이 필요하다. 예를 들어, 1280×720 해상도(HD)의 component sample 당 8bits인 RGB 영상을 초당 30장 처리하는 경우 초당 1280×720×8×3×30=663,552,000 비트를 처리해야 하나, 3840×2160 해상도(UHD)의 component sample 당 8bits인 RGB 영상을 초당 30장 처리하는 경우에는 초당 3840×2160×8×3×30=5,971,968,000 비트를 처리해야 한다. 즉, 컨텐츠의 해상도가 커질수록 처리해야 하는 비트는 기하급수적으로 증가하게 되고, 컨텐츠의 실시간 전송에 어려움이 있어왔다.
그에 따라, 실시간으로 고해상도의 컨텐츠의 스트리밍 서비스를 제공하기 위한 기술이 필요하게 되었다.
본 발명은 상술한 문제점을 해결하기 위한 것으로, 본 발명의 목적은 고용량의 컨텐츠에 대한 스트리밍 서비스를 제공하는 서버 장치, 사용자 단말 장치, 그 제어 방법들 및 스트리밍 시스템을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 서버 장치는 사용자 단말 장치와 통신을 수행하는 통신부, 병렬적으로 인코딩 동작을 수행하는 복수의 인코더 및 실시간으로 생성되는 프레임을 상기 복수의 인코더에 순차적으로 할당하고, 상기 복수의 인코더로부터 병렬적으로 출력되는 복수의 인코딩된 프레임이 상기 사용자 단말 장치로 개별적으로 스트리밍되도록 상기 통신부를 제어하는 프로세서를 포함한다.
또한, 상기 복수의 인코더는 제1 인코더 및 제2 인코더를 포함하며, 상기 프로세서는 상기 실시간으로 생성되는 프레임 중 홀수 프레임을 상기 제1 인코더에 할당하고, 짝수 프레임을 상기 제2 인코더에 할당할 수 있다.
그리고, 상기 프로세서는 상기 사용자 단말 장치로부터 특정 프레임에 대한 재요청 신호가 수신되면, 상기 특정 프레임이 제1 인코딩 타입으로 인코딩된 프레임인 경우 상기 특정 프레임부터 재전송하고, 상기 특정 프레임이 제2 인코딩 타입으로 인코딩된 프레임인 경우 상기 특정 프레임이 인코딩되는 인코더에서 출력되는 인코딩된 프레임 중 상기 특정 프레임 이후의 상기 제1 인코딩 타입으로 인코딩된 프레임부터 재전송할 수 있다.
또한, 상기 프로세서는 상기 사용자 단말 장치로부터 특정 프레임에 대한 재요청 신호가 수신되면, 상기 특정 프레임이 인트라 프레임인 경우 상기 특정 프레임부터 재전송하고, 상기 특정 프레임이 인터 프레임인 경우 상기 특정 프레임이 인코딩되는 인코더에서 출력되는 인코딩된 프레임 중 상기 특정 프레임 이후의 인트라 프레임부터 재전송할 수 있다.
그리고, 상기 프로세서는 동영상 데이터를 포함하는 프레임 및 상기 동영상 데이터와 함께 제공되는 UI 데이터를 포함하는 프레임이 생성되면, 상기 UI 데이터를 포함하는 프레임을 상기 복수의 인코더 중 하나에 할당하고, 상기 동영상 데이터를 포함하는 프레임을 상기 복수의 인코더 중 나머지에 순차적으로 할당할 수 있다.
한편, 이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 사용자 단말 장치는 디스플레이, 서버 장치와 통신을 수행하는 통신부, 병렬적으로 디코딩 동작을 수행하는 복수의 디코더, 상기 복수의 디코더에 연결된 적어도 하나의 버퍼 및 상기 서버 장치에 구비된 복수의 인코더로부터 병렬적으로 출력되어, 상기 서버 장치로부터 개별적으로 스트리밍되는 복수의 인코딩된 프레임을 상기 복수의 디코더에 순차적으로 할당하고, 상기 복수의 디코더로부터 병렬적으로 출력되는 복수의 디코딩된 프레임을 상기 적어도 하나의 버퍼에 저장하며, 상기 적어도 하나의 버퍼에 저장된 상기 복수의 디코딩된 프레임에 포함된 식별 정보에 기초하여 상기 복수의 디코딩된 프레임을 순서대로 상기 디스플레이에 디스플레이하는 프로세서를 포함한다.
또한, 상기 프로세서는 특정 프레임의 디코딩 과정에서 오류가 발생하면 상기 특정 프레임을 재요청하는 신호를 상기 서버 장치로 전송하고, 상기 복수의 디코더 중 상기 특정 프레임에 대응되는 디코더를 제외한 나머지 디코더에서 출력되는 복수의 프레임을 순서대로 디스플레이할 수 있다.
그리고, 상기 프로세서는 상기 서버 장치로부터 개별적으로 스트리밍된 동영상 데이터를 포함하는 인코딩된 프레임 및 상기 동영상 데이터와 함께 제공되는 UI 데이터를 포함하는 인코딩된 프레임을 상기 복수의 디코더에 순차적으로 할당하고, 상기 복수의 디코더 각각으로부터 출력되는 디코딩된 UI 데이터 프레임을 디코딩된 동영상 데이터 프레임과 동기화시켜 디스플레이할 수 있다.
한편, 이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 스트리밍(Streaming) 시스템은 병렬적으로 인코딩 동작을 수행하는 복수의 인코더를 포함하며, 실시간으로 생성되는 프레임을 상기 복수의 인코더에 순차적으로 할당하고, 상기 복수의 인코더로부터 병렬적으로 출력되는 복수의 인코딩된 프레임을 상기 사용자 단말 장치로 개별적으로 스트리밍하는 서버 및 디스플레이, 병렬적으로 디코딩 동작을 수행하는 복수의 디코더 및 상기 복수의 디코더에 연결된 적어도 하나의 버퍼를 포함하며, 상기 서버 장치로부터 스트리밍되는 상기 복수의 인코딩된 프레임을 상기 복수의 디코더에 순차적으로 할당하고, 상기 복수의 디코더로부터 병렬적으로 출력되는 복수의 디코딩된 프레임을 상기 적어도 하나의 버퍼에 저장하며, 상기 적어도 하나의 버퍼에 저장된 상기 복수의 디코딩된 프레임에 포함된 식별 정보에 기초하여 상기 복수의 디코딩된 프레임을 순서대로 상기 디스플레이에 디스플레이하는 사용자 단말 장치를 포함한다.
한편, 본 발명의 일 실시 예에 따르면, 서버 장치의 제어 방법은 실시간으로 생성되는 프레임을, 병렬적으로 인코딩 동작을 수행하는 복수의 인코더에 순차적으로 할당하는 단계 및 상기 복수의 인코더로부터 병렬적으로 출력되는 복수의 인코딩된 프레임을 사용자 단말 장치로 개별적으로 스트리밍하는 단계를 포함한다.
또한, 상기 복수의 인코더는 제1 인코더 및 제2 인코더를 포함하며, 상기 할당하는 단계는 상기 실시간으로 생성되는 프레임 중 홀수 프레임을 상기 제1 인코더에 할당하고, 짝수 프레임을 상기 제2 인코더에 할당할 수 있다.
그리고, 상기 사용자 단말 장치로부터 특정 프레임에 대한 재요청 신호를 수신하는 단계 및 상기 특정 프레임이 제1 인코딩 타입으로 인코딩된 프레임인 경우 상기 특정 프레임부터 재전송하고, 상기 특정 프레임이 제2 인코딩 타입으로 인코딩된 프레임인 경우 상기 특정 프레임이 인코딩되는 인코더에서 출력되는 인코딩된 프레임 중 상기 특정 프레임 이후의 상기 제1 인코딩 타입으로 인코딩된 프레임부터 재전송하는 단계를 더 포함할 수 있다.
또한, 상기 재전송하는 단계는 상기 특정 프레임이 인트라 프레임인 경우 상기 특정 프레임부터 재전송하고, 상기 특정 프레임이 인터 프레임인 경우 상기 특정 프레임이 인코딩되는 인코더에서 출력되는 인코딩된 프레임 중 상기 특정 프레임 이후의 인트라 프레임부터 재전송할 수 있다.
그리고, 상기 할당하는 단계는 동영상 데이터를 포함하는 프레임 및 상기 동영상 데이터와 함께 제공되는 UI 데이터를 포함하는 프레임이 생성되면, 상기 UI 데이터를 포함하는 프레임을 상기 복수의 인코더 중 하나에 할당하고, 상기 동영상 데이터를 포함하는 프레임을 상기 복수의 인코더 중 나머지에 순차적으로 할당할 수 있다.
한편, 본 발명의 일 실시 예에 따르면, 서버 장치에 구비된 복수의 인코더로부터 병렬적으로 출력되어, 스트리밍되는 복수의 인코딩된 프레임을 수신하여 처리하는 사용자 단말 장치의 제어 방법은 상기 서버 장치로부터 개별적으로 스트리밍되는 상기 복수의 인코딩된 프레임을, 병렬적으로 디코딩 동작을 수행하는 복수의 디코더에 순차적으로 할당하는 단계, 상기 복수의 디코더로부터 병렬적으로 출력되는 복수의 디코딩된 프레임을, 상기 복수의 디코더에 연결된 적어도 하나의 버퍼에 저장하는 단계 및 상기 적어도 하나의 버퍼에 저장된 상기 복수의 디코딩된 프레임에 포함된 식별 정보에 기초하여 상기 복수의 디코딩된 프레임을 순서대로 디스플레이하는 단계를 포함한다.
또한, 특정 프레임의 디코딩 과정에서 오류가 발생하면 상기 특정 프레임을 재요청하는 신호를 상기 서버 장치로 전송하는 단계를 더 포함하고, 상기 디스플레이하는 단계는 상기 복수의 디코더 중 상기 특정 프레임에 대응되는 디코더를 제외한 나머지 디코더에서 출력되는 복수의 프레임을 순서대로 디스플레이할 수 있다.
그리고, 상기 할당하는 단계는 상기 서버 장치로부터 개별적으로 스트리밍된 동영상 데이터를 포함하는 인코딩된 프레임 및 상기 동영상 데이터와 함께 제공되는 UI 데이터를 포함하는 인코딩된 프레임을 상기 복수의 디코더에 순차적으로 할당하고, 상기 복수의 디코더 각각으로부터 출력되는 디코딩된 UI 데이터 프레임을 디코딩된 동영상 데이터 프레임과 동기화시켜 디스플레이하는 단계를 더 포함할 수 있다.
이상과 같은 본 발명의 다양한 실시 예에 따르면, 서버 장치와 사용자 단말 장치는 고용량의 컨텐츠를 복수의 인코더 및 복수의 디코더를 이용하여 처리함에 따라 고품질의 스트리밍 서비스를 제공할 수 있다.
도 1은 본 발명의 일 실시 예에 따른, 스트리밍 시스템을 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 서버 장치의 구성을 나타내는 블럭도이다.
도 3은 본 발명의 일 실시 예에 따른 서버 장치의 스트리밍 동작을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 특정 프레임에 대한 재요청 신호가 수신된 경우의 동작을 설명하기 위한 도면이다.
도 5a 및 도 5b는 본 발명의 일 실시 예에 따른 멀티 윈도우 프레임을 할당하는 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시 예에 따른 사용자 단말 장치의 구성을 나타내는 블럭도이다.
도 7은 본 발명의 일 실시 예에 따른 사용자 단말 장치의 컨텐츠 디스플레이 동작을 설명하기 위한 도면이다.
도 8은 본 발명의 특정 프레임에 대한 재요청 신호를 전송하는 동작을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시 예에 따른 멀티 윈도우 프레임을 복원하는 방법을 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시 예에 따른 서버 장치의 제어 방법을 설명하기 위한 흐름도이다.
도 11은 본 발명의 일 실시 예에 따른 사용자 단말 장치의 제어 방법을 설명하기 위한 흐름도이다.
이하, 본 발명의 다양한 실시 예에 대해서, 첨부된 도면을 참조하여 설명한다. 본 명세서에 기재된 내용은, 본 발명의 범위를 특정한 실시 형태로 한정하려는 것이 아니며, 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.
또한, 본 명세서에서 하나의 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 기능적 또는 통신적으로(operatively or communicatively) 연결(coupled)되어 있다거나, 접속되어(connected to) 있다고 언급하는 것은, 각 구성요소들이 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 간접적으로 연결되는 경우까지 모두 포함할 수 있다는 것으로 이해되어야 한다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 어떤 구성요소와 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 명세서(disclosure)에서 사용된 용어들은, 임의의 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 또한, 본 명세서에서는 설명의 편의상 단수 표현을 사용할 수도 있으나, 이는 문맥상 명백하게 다르게 뜻하지 않는 한, 복수 표현까지 포함하는 의미로 해석될 수 있다. 또한, 본 명세서에서 사용되는 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 명세서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 명세서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 명세서에서 정의된 용어일지라도 본 명세서의 실시 예들을 배제하도록 해석될 수 없다.
이하에서, 첨부된 도면을 이용하여 본 발명의 다양한 실시 예들에 대하여 구체적으로 설명한다.
도 1은 본 발명의 일 실시 예에 따른, 스트리밍 시스템(1000)을 도시한 도면이다. 도 1에 도시된 바와 같이, 스트리밍 시스템(1000)은 서버 장치(100) 및 사용자 단말 장치(200)를 포함한다.
서버 장치(100)는 사용자 단말 장치(200)와 통신을 수행할 수 있다. 서버 장치(100)는 사용자 단말 장치(200)에서 제공될 컨텐츠를 실시간으로 전송할 수 있다. 한편, 서버 장치(100)는 사용자 단말 장치(200)로부터 특정 프레임에 대한 재요청 신호를 수신할 수도 있다.
서버 장치(100)는 복수의 인코더를 포함할 수 있다. 복수의 인코더는 병렬적으로 인코딩 동작을 수행할 수 있다. 예를 들어, 복수의 인코더는 복수 개로 구분된 하나의 컨텐츠를 병렬적으로 인코딩할 수 있다. 또는, 복수의 인코더는 각각 복수 개의 컨텐츠를 병렬적으로 인코딩할 수 있다.
서버 장치(100)는 실시간으로 생성되는 프레임을 복수의 인코더에 순차적으로 할당할 수 있다. 예를 들어, 서버 장치(100)가 두 개의 인코더를 구비하고 있는 경우, 서버 장치(100)는 실시간으로 생성되는 프레임을 두 개의 인코더에 교번적으로 할당할 수 있다. 또는, 서버 장치(100)는 실시간으로 생성되는 제1 프레임 및 제2 프레임을 두 개의 인코더 중 제1 인코더에 할당하고, 실시간으로 생성되는 제3 프레임 및 제4 프레임을 두 개의 인코더 중 제2 인코더에 할당하는 방식으로 프레임을 할당할 수도 있다.
서버 장치(100)는 복수의 인코더로부터 병렬적으로 출력되는 복수의 인코딩된 프레임을 사용자 단말 장치로 개별적으로 스트리밍할 수 있다. 예를 들어, 서버 장치(100)는 복수의 인코더로부터 병렬적으로 출력되는 복수의 인코딩된 프레임을 복수의 채널을 통해 사용자 단말 장치로 개별적으로 스트리밍할 수 있다.
사용자 단말 장치(200)는 다양한 전자 장치가 될 수 있다. 예를 들어, 디지털 카메라, MP3 플레이어, PMP, 스마트폰, 셀룰러폰, 스마트 안경, 태블릿 PC, 스마트 워치 등 다양한 장치로 구현 가능하다. 특히, 사용자 단말 장치(200)는 디스플레이가 구비된 장치일 수 있다.
사용자 단말 장치(200)는 서버 장치(100)와 통신을 수행할 수 있다. 사용자 단말 장치(200)는 서버 장치(100)에서 제공되는 컨텐츠를 실시간으로 수신할 수 있다. 한편, 사용자 단말 장치(200)는 서버 장치(100)로 특정 프레임에 대한 재요청 신호를 전송할 수도 있다.
사용자 단말 장치(200)는 복수의 디코더를 포함할 수 있다. 복수의 디코더는 병렬적으로 디코딩 동작을 수행할 수 있다. 예를 들어, 복수의 디코더는 복수 개로 구분된 하나의 컨텐츠를 병렬적으로 디코딩할 수 있다. 또는, 복수의 디코더는 각각 복수 개의 컨텐츠를 병렬적으로 디코딩할 수 있다.
사용자 단말 장치(200)는 서버 장치(100)에 구비된 복수의 인코더로부터 병렬적으로 출력되어, 서버 장치(100)로부터 개별적으로 스트리밍되는 복수의 인코딩된 프레임을 복수의 디코더에 순차적으로 할당할 수 있다.
사용자 단말 장치(200)는 복수의 디코더로부터 병렬적으로 출력되는 복수의 디코딩된 프레임을, 복수의 디코더에 연결된 적어도 하나의 버퍼에 저장할 수 있다. 사용자 단말 장치(200)는 적어도 하나의 버퍼에 저장된 복수의 디코딩된 프레임에 포함된 식별 정보에 기초하여 복수의 디코딩된 프레임을 순서대로 디스플레이에 디스플레이할 수 있다.
상술한 바와 같이 서버 장치(100)는 사용자 단말 장치(200)로 복수의 인코딩된 프레임을 개별적으로 스트리밍할 수 있다. 사용자 단말 장치(200)는 개별적으로 스트리밍된 복수의 인코딩된 프레임을 디코딩하여 순서대로 디스플레이할 수 있다. 즉, 하나의 컨텐츠를 복수 개로 구분하여 인코딩 및 디코딩을 수행하고, 복수의 채널을 통해 전송함에 따라 고용량의 컨텐츠에 대한 스트리밍 서비스를 제공할 수 있게 된다.
도 2는 본 발명의 일 실시 예에 따른 서버 장치(100)의 구성을 나타내는 블럭도이다.
도 2에 도시된 바와 같이, 서버 장치(100)는 통신부(110), 복수의 인코더(120) 및 프로세서(320)를 포함한다.
한편, 도 2는 서버 장치(100)가 통신 기능, 인코딩 기능 및 제어 기능 등과 같은 기능을 구비한 장치인 경우를 예로 들어, 각종 구성 요소들을 간략하게 도시한 것이다. 따라서, 실시 예에 따라서는, 도 2에 도시된 구성 요소 중 일부는 생략 또는 변경될 수도 있고, 다른 구성 요소가 더 추가될 수도 있다.
통신부(110)는 사용자 단말 장치(200)와 통신을 수행한다. 또한, 통신부(110)는 사용자 단말 장치(200)에서 제공될 컨텐츠를 실시간으로 전송할 수 있다. 특히, 통신부(110)는 컨텐츠가 인코딩된 복수의 인코딩된 프레임을 복수의 채널을 통해 개별적으로 사용자 단말 장치(200)로 전송할 수 있다.
통신부(110)는 사용자 단말 장치(200)로 QoS(Quality of Service) 정보를 전송할 수 있다. QoS(Quality of Service) 정보에 대하여는 후술한다.
통신부(110)는 사용자 단말 장치(200)로부터 특정 프레임에 대한 재요청 신호를 수신할 수도 있다. 이 경우, 통신부(110)는 특정 프레임에 대응되는 채널을 통한 전송을 중단할 뿐, 나머지 채널은 재요청 신호와 무관하게 전송 상태를 유지할 수 있다.
통신부(110)는 BT(BlueTooth), BLE(Bluetooth Low Energy), WI-FI(Wireless Fidelity), Zigbee, IR(Infrared), Serial Interface, USB(Universal Serial Bus), NFC(Near Field Communication) 등과 같은 다양한 통신 방식을 통해 사용자 단말 장치(200)와 통신을 수행할 수 있다. 이 중 NFC 칩은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 동작하는 칩을 의미한다. 와이파이 칩이나 블루투스 칩을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. 무선 통신 칩은 IEEE, 지그비, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution) 등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다.
한편, 이상에서는 통신부(110)가 하나의 구성요소인 것으로 설명하였지만, 실시 예에 따라 사용자 단말 장치(200)와 통신을 수행하는 제1 통신부(미도시) 및 타 사용자 단말 장치(미도시)와 통신을 수행하는 제2 통신부(미도시)가 별개로 구현되는 것도 가능하다. 또한, 제1 통신부 및 제2 통신부의 통신하는 방식은 동일할 수도 있으나, 상이할 수도 있다.
복수의 인코더(120)는 병렬적으로 인코딩 동작을 수행할 수 있다. 구체적으로, 복수의 인코더(120)는 실시간으로 생성되는 프레임을 병렬적으로 인코딩하여 다른 신호 형태로 변경할 수 있다.
복수의 인코더(120)는 실시간으로 생성되는 프레임 각각을 복수의 블록으로 구분하여 인코딩을 수행할 수 있다. 복수의 인코더(120)는 블록 단위로 시간적 또는 공간적 예측, 변환, 양자화, 필터링, 엔트로피 부호화 등을 거쳐 인코딩을 수행할 수 있다. 인코더의 구체적인 동작은 발명의 범위를 벗어나므로 구체적인 설명은 생략한다.
복수의 인코더(120)는 서로 다른 종류일 수 있다. 예를 들어, 복수의 인코더(120) 중 제1 인코더는 HEVC 인코더일 수 있고, 복수의 인코더(120) 중 나머지 인코더는 H.264 인코더일 수 있다. 다만, 이는 일 실시 예에 불과하고, 복수의 인코더(120)의 구성은 얼마든지 변경될 수 있다. 또한, 복수의 인코더(120)는 모두 동일한 인코더일 수도 있다.
각각의 인코더는 프레임 별로 인트라(intra) 인코딩 또는 인터(inter) 인코딩을 수행할 수 있다.
인트라 인코딩은 화면 내 예측을 통해 인코딩을 수행하는 것을 의미한다. 구체적으로, 인트라 인코딩은 현재 프레임 내의 인접 픽셀들로부터 공간적으로 예측을 수행하여 인코딩을 수행하는 것을 의미한다.
인터 인코딩은 화면 간 예측을 통해 인코딩을 수행하는 것을 의미한다. 인코더는 현재 부호화하려는 프레임과 상관도가 높은 일부의 참조 프레임을 저장하고 이를 이용하여 화면 간 예측을 수행할 수 있다. 즉, 인코더는 이전 프레임 중 참조 프레임으로부터 시간적으로 예측을 수행하여 인코딩을 수행할 수 있다.
즉, 인트라 프레임은 디코딩 과정에서 다른 프레임의 참조 없이 디코딩이 가능하나, 인터 프레임은 디코딩 과정에서 다른 프레임의 참조가 있어야 디코딩이 가능하다. 인터 인코딩 및 인트라 인코딩에 대한 구체적인 내용은 본 발명의 범위를 벗어나므로 구체적인 설명은 생략한다.
프로세서(130)는 서버 장치(100)의 동작을 전반적으로 제어한다.
프로세서(130)는 사용자 단말 장치(200)에 제공될 프레임을 실시간으로 생성할 수 있다. 예를 들어, 서버 장치(100)는 사용자 단말 장치(200)에서 실행 중인 클라우드 게임과 관련된 프레임을 실시간으로 생성할 수 있다. 이 경우, 사용자 단말 장치(200)는 서버 장치(200)로부터 프레임을 수신받아 디스플레이할 수 있다.
프로세서(130)는 실시간으로 생성되는 프레임을 복수의 인코더(120)에 순차적으로 할당할 수 있다. 예를 들어, 복수의 인코더(120)는 제1 인코더 및 제2 인코더를 포함하며, 프로세서(130)는 실시간으로 생성되는 프레임 중 홀수 프레임을 제1 인코더에 할당하고, 짝수 프레임을 제2 인코더에 할당할 수 있다.
다만, 이는 일 실시 예에 불과하고, 프로세서(130)는 기설정된 개수의 연속된 프레임을 제1 인코더에 할당하고, 이후의 기설정된 개수의 연속된 프레임을 제2 인코더에 할당할 수도 있다. 예를 들어, 프로세서(130)는 제1 프레임부터 제5 프레임을 제1 인코더에 할당하고, 제6 프레임부터 제10 프레임을 제2 인코더에 할당할 수도 있다. 한편, 복수의 인코더(120)는 얼마든지 다른 개수로 구비될 수도 있다.
프로세서(130)는 복수의 인코더(120)로부터 병렬적으로 출력되는 복수의 인코딩된 프레임이 사용자 단말 장치(200)로 개별적으로 스트리밍되도록 통신부(110)를 제어할 수 있다. 예를 들어, 프로세서(130)는 제1 인코더로부터 출력되는 인코딩된 프레임을 제1 채널을 통해 사용자 단말 장치(200)로 전송하고, 제2 인코더로부터 출력되는 인코딩된 프레임을 제2 채널을 통해 사용자 단말 장치(200)로 전송할 수 있다.
한편, 프로세서(130)는 사용자 단말 장치(200)로부터 특정 프레임에 대한 재요청 신호가 수신되면, 특정 프레임이 제1 인코딩 타입으로 인코딩된 프레임인 경우 특정 프레임부터 재전송하고, 특정 프레임이 제2 인코딩 타입으로 인코딩된 프레임인 경우 특정 프레임이 인코딩되는 인코더에서 출력되는 인코딩된 프레임 중 특정 프레임 이후의 제1 인코딩 타입으로 인코딩된 프레임부터 재전송할 수 있다.
구체적으로, 프로세서(130)는 사용자 단말 장치(200)로부터 특정 프레임에 대한 재요청 신호가 수신되면, 특정 프레임이 인트라 프레임인 경우 특정 프레임부터 재전송하고, 특정 프레임이 인터 프레임인 경우 특정 프레임이 인코딩되는 인코더에서 출력되는 인코딩된 프레임 중 특정 프레임 이후의 인트라 프레임부터 재전송할 수 있다. 즉, 프로세서(130)는 자체적으로 디코딩이 불가능한 인터 프레임만을 전송하는 불필요한 동작을 수행하지 않을 수 있다.
한편, 프로세서(130)는 동영상 데이터를 포함하는 프레임 및 동영상 데이터와 함께 제공되는 UI 데이터를 포함하는 프레임을 생성할 수도 있다. 이때, 동영상 데이터는 UI 데이터에 의해 구성되는 화면의 일 영역에 디스플레이되는 데이터일 수 있다.
프로세서(130)는 동영상 데이터를 포함하는 프레임 및 동영상 데이터와 함께 제공되는 UI 데이터를 포함하는 프레임이 생성되면, UI 데이터를 포함하는 프레임을 복수의 인코더(120) 중 하나에 할당하고, 동영상 데이터를 포함하는 프레임을 복수의 인코더(120) 중 나머지에 순차적으로 할당할 수 있다.
즉, UI 데이터를 포함하는 프레임은 프레임 간 변화가 크지 않기 때문에 하나의 인코더로 처리하는 것이 효율적일 수 있다. 동영상 데이터를 포함하는 프레임을 복수의 인코더(120) 중 나머지에 순차적으로 할당하는 동작은 이상에서 설명한 바와 동일하다.
도 3은 본 발명의 일 실시 예에 따른 서버 장치(100)의 스트리밍 동작을 설명하기 위한 도면이다. 이하에서, f1, f2, ..., f9, ...은 전송될 프레임 및 그 순서를 의미하고, f1', f2', ..., f9', ...은 인코딩된 프레임 및 그 순서를 의미하고, f1", f2", ..., f9", ...은 디코딩된 프레임 및 그 순서를 의미한다.
먼저, 스플리터(splitter, 310)는 프로세서(130)의 일 구성으로, 서버 장치(100)에서 실시간으로 생성되는 프레임을 제1 인코더(320-1) 및 제2 인코더(320-2)에 순차적으로 할당할 수 있다. 예를 들어, 스플리터(310)는 실시간으로 생성되는 프레임 중 홀수 프레임을 제1 인코더(320-1)에 할당하고, 짝수 프레임을 제2 인코더(320-2)에 할당할 수 있다. 여기서, 스플리터(310)는 매퍼(Mapper)로 지칭될 수도 있다.
제1 인코더(320-1) 및 제2 인코더(320-2)는 각각으로 입력되는 프레임을 순차적으로 인코딩할 수 있다. 이때, 제1 인코더(320-1)와 제2 인코더(320-2)는 서로 다른 인코더일 수 있다. 예를 들어, 제1 인코더(320-1)는 HEVC 인코더일 수 있고, 제2 인코더(320-2)는 H.264 인코더일 수 있다.
FEC(Forward Error Correction) 1 블록(330-1)은 제1 인코더(320-1)로부터 출력되는 인코딩된 프레임에 순방향 오류 정정(Forward Error Correction) 알고리즘을 적용할 수 있다. FEC 2 블록(330-2)은 제2 인코더(320-2)로부터 출력되는 인코딩된 프레임에 순방향 오류 정정 알고리즘을 적용할 수 있다. 여기서, FEC 1 블록(330-1) 및 FEC 2 블록(330-2)은 프로세서(130)의 일 구성일 수 있다.
FEC 1 블록(330-1) 및 FEC 2 블록(330-2)은 각각 제1 인코더(320-1) 및 제2 인코더(320-2)의 타입에 기초하여 서로 다른 순방향 오류 정정 알고리즘을 적용할 수도 있다. 예를 들어, 제1 인코더(320-1)는 HEVC 인코더이고, 제2 인코더(320-2)는 H.264 인코더인 경우, FEC 1 블록(330-1)은 FEC 2 블록(330-2)보다 신뢰도가 높은 순방향 오류 정정 알고리즘을 적용할 수 있다.
구체적으로, HEVC 인코더의 경우 H.264 인코더보다 효율이 좋기 때문에 출력되는 인코딩된 프레임의 용량이 더 낮을 수 있다. 이 경우, HEVC 인코더로부터 출력되는 인코딩된 프레임은 H.264 인코더로부터 출력되는 인코딩된 프레임보다 더 많은 오류 정정용 부호가 부가될 수 있다. 특히, 각각의 전송 채널이 동일한 용량이라면, HEVC 인코더로부터 출력되는 인코딩된 프레임이 H.264 인코더로부터 출력되는 인코딩된 프레임보다 더 많은 오류 정정용 부호가 부가되더라도 전송 속도의 차이가 크지 않을 수 있다.
또는, 각 인코더의 처리 속도에 기초하여 FEC 1 블록(330-1) 및 FEC 2 블록(330-2) 각각의 순방향 오류 정정 알고리즘이 결정될 수도 있다. 예를 들어, 제1 인코더(320-1)는 HEVC 인코더이고, 제2 인코더(320-2)는 H.264 인코더인 경우, FEC 1 블록(330-1)은 FEC 2 블록(330-2)보다 처리 속도가 빠른 순방향 오류 정정 알고리즘을 적용할 수 있다.
구체적으로, HEVC 인코더의 경우 H.264 인코더보다 복잡하여 처리 속도가 느릴 수 있다. 이 경우, FEC 1 블록(330-1)은 FEC 2 블록(330-2)보다 처리 속도가 빠른 순방향 오류 정정 알고리즘을 적용하여 전송 속도의 차이를 줄여줄 수도 있다.
다만, 이는 일 실시 예에 불과하고, FEC 블록은 인코더로부터 출력되는 인코딩된 프레임의 종류에 따라 순방향 오류 정정 알고리즘의 종류를 결정할 수도 있다. 예를 들어, 인트라 프레임과 인터 프레임에 적용되는 순방향 오류 정정 알고리즘의 종류는 다를 수 있다.
스트리머 1(Streamer 1, 340-1) 및 스트리머 2(Streamer 2, 340-2)는 각각으로 입력되는 순방향 오류 정정 알고리즘이 적용된 인코딩된 프레임을 네트워크 1(N/W 1, 350-1) 및 네트워크 2(N/W 2, 350-2)를 통해 각각 사용자 단말 장치(200)로 개별적으로 스트리밍할 수 있다. 여기서, 네트워크 1(350-1) 및 네트워크 2(350-2)는 각각 채널 1 및 채널 2로 지칭될 수도 있다.
한편, 프로세서(130)는 사용자 단말 장치(200)로 QoS 정보를 전송할 수 있다. 이때, QoS 정보는 각 네트워크를 통해 전송되는 인코딩된 프레임에 적용된 인코더 종류 및 순방향 오류 정정 알고리즘의 종류에 대한 정보를 포함할 수 있다.
도 3에서는 두 개의 인코더를 이용하는 것으로 설명하였으나, 얼마든지 다른 개수의 인코더가 이용될 수도 있고, 이 경우에도 동일한 방법으로 프레임을 할당하여 스트리밍을 수행할 수 있다. 복수의 인코더가 이용되는 경우, 복수의 인코더 중 제1 인코더는 HEVC 인코더이고, 복수의 인코더 중 나머지는 H.264 인코더일 수 있다.
도 4는 본 발명의 일 실시 예에 따른 특정 프레임에 대한 재요청 신호가 수신된 경우의 동작을 설명하기 위한 도면이다. 여기서, 사용자 단말 장치(200)는 특정 프레임에 대한 재요청 신호를 서버 장치(100)로 전송할 수 있다. 예를 들어, 사용자 단말 장치(200)는 특정 프레임을 수신하지 못한 경우, 특정 프레임에 대한 재요청 신호를 서버 장치(100)로 전송할 수 있다.
프로세서(130)는 사용자 단말 장치(200)로부터 특정 프레임에 대한 재요청 신호가 수신되면, 특정 프레임이 제1 인코딩 타입으로 인코딩된 프레임인 경우 특정 프레임부터 재전송하고, 특정 프레임이 제2 인코딩 타입으로 인코딩된 프레임인 경우 특정 프레임이 인코딩되는 인코더에서 출력되는 인코딩된 프레임 중 특정 프레임 이후의 제1 인코딩 타입으로 인코딩된 프레임부터 재전송할 수 있다.
구체적으로, 프로세서(130)는 사용자 단말 장치(200)로부터 특정 프레임에 대한 재요청 신호가 수신되면, 특정 프레임이 인트라 프레임인 경우 특정 프레임부터 재전송하고, 특정 프레임이 인터 프레임인 경우 특정 프레임이 인코딩되는 인코더에서 출력되는 인코딩된 프레임 중 특정 프레임 이후의 인트라 프레임부터 재전송할 수 있다.
예를 들어, 도 4에 도시된 바와 같이, 제1 인코더(410-1)는 제4 인코딩된 프레임, 제7 인코딩된 프레임 및 제10 인코딩된 프레임을 순차적으로 출력하고, 제2 인코더(410-2)는 제5 인코딩된 프레임, 제8 인코딩된 프레임 및 제11 인코딩된 프레임을 순차적으로 출력하고, 제3 인코더(410-3)는 제6 인코딩된 프레임, 제9 인코딩된 프레임 및 제12 인코딩된 프레임을 순차적으로 출력할 수 있다. 각각의 출력된 인코딩된 프레임은 각각의 네트워크를 통해 사용자 단말 장치(200)로 개별적으로 전송될 수 있다. 다른 인코딩된 프레임의 전송은 생략하였다.
이때, 사용자 단말 장치(200)로부터 제8 인코딩된 프레임의 재요청 신호가 수신되면, 프로세서(130)는 제8 인코딩된 프레임이 인트라 프레임이므로 제8 인코딩된 프레임부터 순차적으로 재전송할 수 있다. 이때, 프로세서(130)는 재요청 신호와 무관하게 제1 인코더(410-1) 및 제3 인코더(410-3)로부터 출력되는 인코딩된 프레임을 계속하여 사용자 단말 장치(200)로 전송할 수 있다.
한편, 사용자 단말 장치(200)로부터 제5 인코딩된 프레임의 재요청 신호가 수신되면, 프로세서(130)는 제5 인코딩된 프레임이 인터 프레임이므로 제5 인코딩된 프레임 이후의 인트라 프레임인 제8 인코딩된 프레임부터 순차적으로 재전송할 수 있다. 이 경우에도 마찬가지로, 프로세서(130)는 재요청 신호와 무관하게 제1 인코더(410-1) 및 제3 인코더(410-3)로부터 출력되는 인코딩된 프레임을 계속하여 사용자 단말 장치(200)로 전송할 수 있다.
또는, 사용자 단말 장치(200)로부터 제6 인코딩된 프레임의 재요청 신호가 수신되면, 프로세서(130)는 제6 인코딩된 프레임이 인터 프레임이므로 제6 인코딩된 프레임 이후의 인트라 프레임인 제12 인코딩된 프레임부터 순차적으로 재전송할 수 있다. 이 경우에도 마찬가지로, 프로세서(130)는 재요청 신호와 무관하게 제1 인코더(410-1) 및 제2 인코더(410-2)로부터 출력되는 인코딩된 프레임을 계속하여 사용자 단말 장치(200)로 전송할 수 있다.
한편, 도 4에서는 제1 인코더(410-1), 제2 인코더(410-2) 및 제3 인코더(410-3) 각각으로부터 복수의 인코딩된 프레임이 동시에 출력되는 것으로 도시되었으나, 이는 설명의 편의를 위한 것이다. 예를 들어, 제1 인코더(410-1)로부터 제4 인코딩된 프레임이 출력되는 동안 제2 인코더(410-2) 및 제3 인코더(410-3) 각각으로부터 제8 인코딩된 프레임 및 제9 인코딩된 프레임이 출력될 수도 있다. 또는, 제1 인코더(410-1)로부터 제4 인코딩된 프레임이 출력되는 중간에 제2 인코더(410-2) 및 제3 인코더(410-3) 각각으로부터 제5 인코딩된 프레임 및 제6 인코딩된 프레임의 출력이 완료될 수도 있다. 이는, 각 인코더의 성능 차이가 있을 수 있기 때문이다.
이 경우에도 마찬가지로, 프로세서(130)는 다른 인코딩된 프레임의 출력을 기다리지 않고, 출력되는 인코딩된 프레임을 FEC 블록을 거쳐 사용자 단말 장치(200)로 전송할 수 있다. 사용자 단말 장치(200)는 프레임의 순서와 무관하게 복수의 인코딩된 프레임을 수신할 수 있으나, 후술할 버퍼를 이용하여 디코딩된 프레임을 순서대로 디스플레이할 수 있다.
도 5a 및 도 5b는 본 발명의 일 실시 예에 따른 멀티 윈도우 프레임을 할당하는 방법을 설명하기 위한 도면이다.
멀티 윈도우 프레임은 동영상 데이터를 포함하는 프레임 및 동영상 데이터와 함께 제공되는 UI 데이터를 포함하는 프레임을 포함할 수 있다. 예를 들어, 도 5a에 도시된 바와 같이, 멀티 윈도우 프레임은 동영상 데이터를 포함하는 프레임(510) 및 UI 데이터를 포함하는 프레임(520)이 오버레이된 프레임일 수 있다.
도 5b에 도시된 바와 같이, 프로세서(130)는 동영상 데이터를 포함하는 프레임(510) 및 동영상 데이터와 함께 제공되는 UI 데이터를 포함하는 프레임(520)이 생성되면, UI 데이터를 포함하는 프레임(520)을 복수의 인코더 중 하나에 할당하고, 동영상 데이터를 포함하는 프레임(510)을 복수의 인코더 중 나머지에 순차적으로 할당할 수 있다.
예를 들어, 프로세서(130)의 일 구성인 스플리터(530)는 UI 데이터를 포함하는 프레임(520)을 복수의 인코더 중 제1 인코더(540-1)에 할당할 수 있다. 이때, 프로세서(130)는 UI 데이터를 포함하는 프레임(520)에서 동영상 데이터가 디스플레이될 영역을 기설정된 색상으로 처리하여 제1 인코더(540-1)에 할당할 수 있다. UI 데이터를 포함하는 프레임(520)에서 UI 데이터는 큰 변경이 없고, 동영상 데이터가 디스플레이될 영역이 기설정된 색상으로 모든 프레임에서 동일하게 처리됨에 따라 하나의 인코더만을 이용하더라도 실시간 스트리밍에 가능하도록 처리할 수 있다.
한편, 스플리터(530)는 동영상 데이터를 포함하는 프레임(510)을 복수의 인코더 중 나머지에 순차적으로 할당할 수 있다. 이는 도 3에서 설명한 바와 동일하므로 구체적인 설명은 생략한다.
프로세서(130)는 복수의 네트워크를 통해 복수의 인코딩된 프레임을 사용자 단말 장치(200)로 전송할 수 있다. 또한, 프로세서(130)는 UI 데이터를 포함하는 프레임(520)에 대응되는 인코딩된 프레임이 전송되는 네트워크에 대한 정보 및 동영상 데이터를 포함하는 프레임(510)에 대응되는 복수의 인코딩된 프레임이 전송되는 네트워크에 대한 정보를 사용자 단말 장치(200)로 전송할 수 있다. 또한, 프로세서(130)는 UI 데이터를 포함하는 프레임(520)에서 동영상 데이터가 디스플레이될 영역에 대한 정보를 사용자 단말 장치(200)로 전송할 수도 있다.
도 6은 본 발명의 일 실시 예에 따른 사용자 단말 장치(200)의 구성을 나타내는 블럭도이다.
도 6에 도시된 바와 같이, 사용자 단말 장치(200)는 디스플레이(210), 통신부(220), 복수의 디코더(230), 적어도 하나의 버퍼(240) 및 프로세서(250)를 포함한다.
한편, 도 6은 사용자 단말 장치(200)가 디스플레이 기능, 통신 기능, 디코딩 기능, 저장 기능 및 제어 기능 등과 같은 기능을 구비한 장치인 경우를 예로 들어, 각종 구성 요소들을 간략하게 도시한 것이다. 따라서, 실시 예에 따라서는, 도 6에 도시된 구성 요소 중 일부는 생략 또는 변경될 수도 있고, 다른 구성 요소가 더 추가될 수도 있다.
디스플레이(210)는 프로세서(250)의 제어에 의해 복수의 디코딩된 프레임을 순서대로 디스플레이할 수 있다. 예를 들어, 디스플레이(210)는 제1 디코딩된 프레임, 제2 디코딩된 프레임, ...을 순서대로 디스플레이할 수 있다.
다만, 이에 한정되는 것은 아니며, 디스플레이(210)는 일부 프레임이 생략되고, 나머지 프레임을 순서대로 디스플레이할 수도 있다. 예를 들어, 디스플레이(210)는 제1 디코딩된 프레임, 제2 디코딩된 프레임, 제4 디코딩된 프레임, 제5 디코딩된 프레임, ...을 순서대로 디스플레이할 수도 있다.
한편, 디스플레이(210)는 LCD(Liquid Crystal Display Panel), OLED(Organic Light Emitting Diodes) 등으로 구현될 수 있으나, 이에 한정되는 것은 아니다. 또한, 디스플레이(210)는 경우에 따라 플렉서블 디스플레이, 투명 디스플레이 등으로 구현되는 것도 가능하다.
통신부(220)는 서버 장치(100)와 통신을 수행한다. 또한, 통신부(220)는 서버 장치(100)에서 제공되는 컨텐츠를 실시간으로 수신할 수 있다. 특히, 통신부(220)는 서버 장치(100)로부터 컨텐츠가 인코딩된 복수의 인코딩된 프레임을 복수의 채널을 통해 개별적으로 수신할 수 있다.
통신부(220)는 서버 장치(100)로부터 QoS(Quality of Service) 정보를 수신할 수 있다.
통신부(220)는 서버 장치(100)로 특정 프레임에 대한 재요청 신호를 전송할 수도 있다. 이 경우, 재요청 신호와 무관하게, 특정 프레임에 대응되는 채널을 제외한 나머지 채널의 전송 상태가 유지될 수 있다.
통신부(220)는 BT(BlueTooth), BLE(Bluetooth Low Energy), WI-FI(Wireless Fidelity), Zigbee, IR(Infrared), Serial Interface, USB(Universal Serial Bus), NFC(Near Field Communication) 등과 같은 다양한 통신 방식을 통해 사용자 단말 장치(200)와 통신을 수행할 수 있다. 이 중 NFC 칩은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 동작하는 칩을 의미한다. 와이파이 칩이나 블루투스 칩을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. 무선 통신 칩은 IEEE, 지그비, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution) 등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다.
한편, 이상에서는 통신부(220)가 하나의 구성요소인 것으로 설명하였지만, 실시 예에 따라 서버 장치(100)와 통신을 수행하는 제1 통신부(미도시) 및 타 서버 장치(미도시)와 통신을 수행하는 제2 통신부(미도시)가 별개로 구현되는 것도 가능하다. 또한, 제1 통신부 및 제2 통신부의 통신하는 방식은 동일할 수도 있으나, 상이할 수도 있다.
복수의 디코더(230)는 병렬적으로 디코딩 동작을 수행할 수 있다. 구체적으로, 복수의 디코더(230)는 실시간으로 수신되는 복수의 인코딩된 프레임을 병렬적으로 디코딩하여 다른 신호 형태로 변경할 수 있다.
복수의 디코더(230)는 블록 단위로 엔트로피 복호화, 역양자화, 역변환, 필터링 등을 거쳐 디코딩을 수행할 수 있다. 디코더의 구체적인 동작은 발명의 범위를 벗어나므로 구체적인 설명은 생략한다.
복수의 디코더(230)는 서로 다른 종류일 수 있다. 예를 들어, 복수의 디코더(230) 중 제1 디코더는 HEVC 디코더일 수 있고, 복수의 디코더(230) 중 나머지 디코더는 H.264 디코더일 수 있다. 다만, 이는 일 실시 예에 불과하고, 복수의 디코더(230)의 구성은 얼마든지 변경될 수 있다. 또한, 복수의 디코더(230)는 모두 동일한 디코더일 수도 있다.
각각의 디코더는 프레임 별로 인트라(intra) 디코딩 또는 인터(inter) 디코딩을 수행할 수 있다.
인트라 디코딩은 현재 프레임 내의 인접 픽셀들로부터 공간적으로 참조를 수행하여 디코딩을 수행하는 것을 의미한다.
인터 디코딩은 화면 간 참조를 통해 디코딩을 수행하는 것을 의미한다. 디코더는 현재 부호화하려는 프레임과 상관도가 높은 일부의 참조 프레임을 복원하고 이를 이용하여 화면 간 참조를 수행할 수 있다. 즉, 디코더는 이전 프레임 중 참조 프레임으로부터 시간적으로 참조를 수행하여 디코딩을 수행할 수 있다.
인터 디코딩 및 인트라 디코딩에 대한 구체적인 내용은 본 발명의 범위를 벗어나므로 구체적인 설명은 생략한다.
적어도 하나의 버퍼(240)는 복수의 디코더(230)에 연결될 수 있다. 여기서, 적어도 하나의 버퍼(240)는 복수의 디코더(230)로부터 출력되는 디코딩된 프레임을 일시적으로 저장할 수 있다.
프로세서(250)는 사용자 단말 장치(200)의 동작을 전반적으로 제어한다.
프로세서(250)는 서버 장치(100)에 구비된 복수의 인코더로부터 병렬적으로 출력되어, 서버 장치(100)로부터 개별적으로 스트리밍되는 복수의 인코딩된 프레임을 복수의 디코더(230)에 순차적으로 할당할 수 있다. 예를 들어, 프로세서(250)는 제1 채널로부터 수신되는 인코딩된 프레임을 제1 디코더에 할당하고, 제2 채널로부터 수신되는 인코딩된 프레임을 제2 디코더에 할당할 수 있다.
한편, 복수의 디코더(230)는 얼마든지 다른 개수로 구비될 수도 있다. 다만, 복수의 디코더(230) 중 일부 디코더만이 이용될 수도 있다. 예를 들어, 복수의 디코더(230) 중 스트리밍 시 이용되는 채널의 개수만큼의 디코더만이 이용될 수도 있다.
프로세서(250)는 복수의 디코더(230)로부터 병렬적으로 출력되는 복수의 디코딩된 프레임을 적어도 하나의 버퍼(240)에 저장하고, 적어도 하나의 버퍼(240)에 저장된 복수의 디코딩된 프레임에 포함된 식별 정보에 기초하여 복수의 디코딩된 프레임을 순서대로 디스플레이(210)에 디스플레이할 수 있다.
한편, 프로세서(250)는 특정 프레임의 디코딩 과정에서 오류가 발생하면 특정 프레임을 재요청하는 신호를 서버 장치(100)로 전송하고, 복수의 디코더(230) 중 특정 프레임에 대응되는 디코더를 제외한 나머지 디코더에서 출력되는 복수의 프레임을 순서대로 디스플레이할 수 있다.
한편, 프로세서(250)는 서버 장치(100)로부터 개별적으로 스트리밍된 동영상 데이터를 포함하는 인코딩된 프레임 및 동영상 데이터와 함께 제공되는 UI 데이터를 포함하는 인코딩된 프레임을 복수의 디코더(230)에 순차적으로 할당하고, 복수의 디코더(230) 각각으로부터 출력되는 디코딩된 UI 데이터 프레임을 디코딩된 동영상 데이터 프레임과 동기화시켜 디스플레이할 수 있다.
도 7은 본 발명의 일 실시 예에 따른 사용자 단말 장치(200)의 컨텐츠 디스플레이 동작을 설명하기 위한 도면이다.
먼저, 스트리머 1(Streamer 1, 720-1) 및 스트리머 2(Streamer 2, 720-2)는 각각 네트워크 1(N/W 1, 710-1) 및 네트워크 2(N/W 2, 720-2)를 통해 서버 장치(100)로부터 개별적으로 스트리밍되는 복수의 인코딩된 프레임을 수신할 수 있다.
FEC 1을 이용한 오류 정정 블록(730-1)은 스트리머 1(720-1)로부터 수신되는 인코딩된 프레임에 포함된 오류 정정용 부호를 이용하여 오류를 정정할 수 있다. FEC 2를 이용한 오류 정정 블록(730-2)은 스트리머 1(720-2)로부터 수신되는 인코딩된 프레임에 포함된 오류 정정용 부호를 이용하여 오류를 정정할 수 있다. 여기서, FEC 1을 이용한 오류 정정 블록(730-1) 및 FEC 2를 이용한 오류 정정 블록(730-2)은 프로세서(250)의 일 구성일 수 있다.
프로세서(250)는 서버 장치(100)로부터 수신된 QoS 정보에 기초하여 인코딩된 프레임 각각에 대응되는 FEC를 이용한 오류 정정 블록을 할당할 수 있다. 이때, QoS 정보는 인코딩된 프레임 각각에 적용된 인코더 종류 및 순방향 오류 정정 알고리즘의 종류에 대한 정보를 포함할 수 있다.
제1 디코더(740-1) 및 제2 디코더(740-2)는 각각으로 입력되는 인코딩된 프레임을 순차적으로 디코딩할 수 있다. 이때, 제1 디코더(740-1)와 제2 디코더(740-2)는 서로 다른 디코더일 수 있다. 예를 들어, 제1 디코더(740-1)는 HEVC 디코더일 수 있고, 제2 디코더(740-2)는 H.264 디코더일 수 있다.
프로세서(250)는 서버 장치(100)로부터 수신된 QoS 정보에 기초하여 인코딩된 프레임 각각에 대응되는 디코더를 할당할 수 있다.
도 7에서는 디코딩된 프레임을 f1", f2", ..., f9", ...로 도시하였는데, 이는 인코딩 전의 f1, f2, ..., f9, ... 프레임과 디코딩된 프레임이 유사하나, 동일하지 않음을 표현하기 위함이다. 다만, 이에 한정되는 것은 아니며, 무손실(lossless) 인코더 및 디코더를 이용하는 경우에는 인코딩 전의 프레임과 디코딩 후의 프레임이 동일할 수도 있다.
믹서(Mixer, 750)는 프로세서(250)의 일 구성 및 및 적어도 하나의 버퍼(240)를 포함하는 개념이다. 믹서(750)는 제1 디코더(740-1) 및 제2 디코더(740-2)로부터 병렬적으로 출력되는 복수의 디코딩된 프레임을, 각각의 식별 정보에 기초하여 순서대로 출력할 수 있다. 여기서, 믹서(750)는 조이너(Joiner)로 지칭될 수도 있다. 디코딩된 프레임은 식별 정보를 포함할 수 있다. 예를 들어, 디코딩된 프레임은 PTS(Presentation Time Stamp) 정보를 포함할 수 있다.
한편, 스트리머 1(720-1) 및 스트리머 2(720-2)는 서버 장치(100)로부터 개별적으로 스트리밍되는 복수의 인코딩된 프레임을 수신할 수 있으나, 복수의 인코딩된 프레임의 수신 시간은 차이가 있을 수 있다. 또한, FEC 1을 이용한 오류 정정 블록(730-1) 및 FEC 2를 이용한 오류 정정 블록(730-2) 각각의 오류 정정 시간은 다를 수 있고, 각각 하나의 프레임을 처리하는 시간은 다를 수 있다. 또한, 제1 디코더(740-1) 및 제2 디코더(740-2) 각각의 디코딩 시간은 다를 수 있고, 각각 하나의 프레임을 처리하는 시간은 다를 수 있다. 즉, 믹서(750)는 복수의 디코딩된 프레임을 순서와 상관 없이 수신할 수 있다. 그에 따라, 믹서(750)는 일부 프레임을 일시적으로 저장하고, 사용자에게 디스플레이될 순서에 기초하여 순서대로 프레임을 출력할 수 있다.
한편, 도 7에서는 두 개의 디코더를 이용하는 것으로 설명하였으나, 얼마든지 다른 개수의 디코더가 이용될 수도 있고, 이 경우에도 동일한 방법으로 컨텐츠를 복원할 수 있다. 복수의 디코더가 이용되는 경우, 복수의 디코더 중 제1 디코더는 HEVC 디코더이고, 복수의 디코더 중 나머지는 H.264 디코더일 수 있다.
도 8은 본 발명의 특정 프레임에 대한 재요청 신호를 전송하는 동작을 설명하기 위한 도면이다.
도 8에 도시된 바와 같이, 프로세서(250)는 특정 프레임의 디코딩 과정에서 오류가 발생하면 특정 프레임을 재요청하는 신호를 서버 장치(100)로 전송할 수 있다. 다만, 이에 한정되는 것은 아니며, 프로세서(250)는 특정 프레임의 디코딩 과정이 아닌 수신 과정이나 오류 정정 과정에서 오류가 발생하여 특정 프레임을 재요청하는 신호를 서버 장치(100)로 전송할 수도 있다.
이때, 프로세서(250)는 복수의 디코더(230) 중 특정 프레임에 대응되는 디코더를 제외한 나머지 디코더에서 출력되는 복수의 프레임을 순서대로 디스플레이할 수 있다. 예를 들어, 프로세서(250)는 제2 인코딩된 프레임의 디코딩 과정에서 오류가 발생하면 제2 인코딩된 프레임의 재요청 신호를 서버 장치(100)로 전송하고, 제1 디코딩된 프레임, 제3 디코딩된 프레임, 제4 디코딩된 프레임, 제6 디코딩된 프레임, ...을 순서대로 디스플레이할 수 있다.
여기서, 제1 디코딩된 프레임 및 제4 디코딩된 프레임은 제1 디코더(810-1)로부터 출력된 프레임이고, 제3 디코딩된 프레임 및 제6 디코딩된 프레임은 제3 디코더(810-3)로부터 출력된 프레임일 수 있다.
제2 디코더(810-2)는 제2 디코딩된 프레임, 제5 디코딩 프레임, ...을 순차적으로 출력해야 하나, 제2 디코딩된 프레임이 출력되지 않음에 따라 이후의 프레임도 출력되지 않을 수 있다.
다만, 이에 한정되는 것은 아니며, 프로세서(250)는 특정 프레임에 대한 재요청 신호를 전송하고, 특정 프레임이 디스플레이되기 전에 특정 프레임이 서버 장치(100)로부터 수신되어 디코딩되면, 특정 프레임을 포함하여 순서대로 디스플레이할 수도 있다.
예를 들어, 상술한 예에서, 프로세서(250)는 제2 디코딩된 프레임이 디스플레이되기 전에 제2 인코딩된 프레임이 서버 장치(100)로부터 수신되어 디코딩되면, 제1 디코딩된 프레임, 제2 디코딩된 프레임, 제3 디코딩된 프레임, 제4 디코딩된 프레임, 제5 디코딩된 프레임, 제6 디코딩된 프레임, ...을 순서대로 디스플레이할 수도 있다.
도 9는 본 발명의 일 실시 예에 따른 멀티 윈도우 프레임을 복원하는 방법을 설명하기 위한 도면이다.
도 9에 도시된 바와 같이, 프로세서(250)는 서버 장치(100)로부터 개별적으로 스트리밍된 동영상 데이터를 포함하는 인코딩된 프레임 및 동영상 데이터와 함께 제공되는 UI 데이터를 포함하는 인코딩된 프레임을 복수의 디코더(230)에 순차적으로 할당할 수 있다.
프로세서(250)는 상기 복수의 디코더 각각으로부터 출력되는 디코딩된 UI 데이터 프레임을 디코딩된 동영상 데이터 프레임과 동기화시켜 디스플레이할 수 있다. 이때, 프로세서(250)는 서버 장치(100)로부터 수신된, UI 데이터를 포함하는 프레임(520)에 대응되는 인코딩된 프레임이 전송되는 네트워크에 대한 정보 및 동영상 데이터를 포함하는 프레임(510)에 대응되는 복수의 인코딩된 프레임이 전송되는 네트워크에 대한 정보에 기초하여, 디코딩된 UI 데이터 프레임과 디코딩된 동영상 데이터 프레임을 구분할 수 있다.
믹서(920)는 제2 디코더(910-2), ..., 제N 디코더(910-N)로부터 출력되는 복수의 디코딩된 동영상 데이터 프레임을 순차적으로 출력할 수 있다. 이는 도 7에서 설명한 바와 동일하므로 구체적인 설명은 생략한다.
프로세서(250)는 서버 장치(100)로부터 수신된, UI 데이터를 포함하는 프레임에서 동영상 데이터가 디스플레이될 영역에 대한 정보에 기초하여, 디코딩된 UI 데이터 프레임 및 디코딩된 동영상 데이터 프레임을 동기화하여 디스플레이할 수 있다.
다만, 이에 한정되는 것은 아니며, 프로세서(250)는 디코딩된 UI 데이터 프레임의 일 영역이 기설정된 색상으로 처리된 경우, 기설정된 색상으로 처리된 영역을 동영상 데이터가 디스플레이될 영역으로 결정할 수도 있다. 이 경우, 프로세서(250)는 서버 장치(100)로부터 UI 데이터를 포함하는 프레임에서 동영상 데이터가 디스플레이될 영역에 대한 정보를 수신하지 않을 수도 있다.
도 10은 본 발명의 일 실시 예에 따른 서버 장치의 제어 방법을 설명하기 위한 흐름도이다.
먼저, 실시간으로 생성되는 프레임을, 병렬적으로 인코딩 동작을 수행하는 복수의 인코더에 순차적으로 할당한다(S1010). 그리고, 복수의 인코더로부터 병렬적으로 출력되는 복수의 인코딩된 프레임을 사용자 단말 장치로 개별적으로 스트리밍한다(S1020).
여기서, 복수의 인코더는 제1 인코더 및 제2 인코더를 포함하며, 할당하는 단계(S1010)는 실시간으로 생성되는 프레임 중 홀수 프레임을 제1 인코더에 할당하고, 짝수 프레임을 제2 인코더에 할당할 수 있다.
한편, 사용자 단말 장치로부터 특정 프레임에 대한 재요청 신호를 수신하는 단계 및 특정 프레임이 제1 인코딩 타입으로 인코딩된 프레임인 경우 특정 프레임부터 재전송하고, 특정 프레임이 제2 인코딩 타입으로 인코딩된 프레임인 경우 특정 프레임이 인코딩되는 인코더에서 출력되는 인코딩된 프레임 중 특정 프레임 이후의 제1 인코딩 타입으로 인코딩된 프레임부터 재전송하는 단계를 더 포함할 수 있다.
여기서, 재전송하는 단계는 특정 프레임이 인트라 프레임인 경우 특정 프레임부터 재전송하고, 특정 프레임이 인터 프레임인 경우 특정 프레임이 인코딩되는 인코더에서 출력되는 인코딩된 프레임 중 특정 프레임 이후의 인트라 프레임부터 재전송할 수 있다.
한편, 할당하는 단계(S1010)는 동영상 데이터를 포함하는 프레임 및 동영상 데이터와 함께 제공되는 UI 데이터를 포함하는 프레임이 생성되면, UI 데이터를 포함하는 프레임을 복수의 인코더 중 하나에 할당하고, 동영상 데이터를 포함하는 프레임을 복수의 인코더 중 나머지에 순차적으로 할당할 수 있다.
도 11은 본 발명의 일 실시 예에 따른 사용자 단말 장치의 제어 방법을 설명하기 위한 흐름도이다.
먼저, 서버 장치에 구비된 복수의 인코더로부터 병렬적으로 출력되어, 서버 장치로부터 개별적으로 스트리밍되는 복수의 인코딩된 프레임을, 병렬적으로 디코딩 동작을 수행하는 복수의 디코더에 순차적으로 할당한다(S1110). 그리고, 복수의 디코더로부터 병렬적으로 출력되는 복수의 디코딩된 프레임을, 복수의 디코더에 연결된 적어도 하나의 버퍼에 저장한다(S1120). 그리고, 적어도 하나의 버퍼에 저장된 복수의 디코딩된 프레임에 포함된 식별 정보에 기초하여 복수의 디코딩된 프레임을 순서대로 디스플레이한다(S1130).
여기서, 특정 프레임의 디코딩 과정에서 오류가 발생하면 특정 프레임을 재요청하는 신호를 서버 장치로 전송하는 단계를 더 포함하고, 디스플레이하는 단계(S1130)는 복수의 디코더 중 특정 프레임에 대응되는 디코더를 제외한 나머지 디코더에서 출력되는 복수의 프레임을 순서대로 디스플레이할 수 있다.
한편, 할당하는 단계(S1110)는 서버 장치로부터 개별적으로 스트리밍된 동영상 데이터를 포함하는 인코딩된 프레임 및 동영상 데이터와 함께 제공되는 UI 데이터를 포함하는 인코딩된 프레임을 복수의 디코더에 순차적으로 할당하고, 복수의 디코더 각각으로부터 출력되는 디코딩된 UI 데이터 프레임을 디코딩된 동영상 데이터 프레임과 동기화시켜 디스플레이하는 단계를 더 포함할 수 있다.
이상과 같은 본 발명의 다양한 실시 예에 따르면, 서버 장치와 사용자 단말 장치는 고용량의 컨텐츠를 복수의 인코더 및 복수의 디코더를 이용하여 처리함에 따라 고품질의 스트리밍 서비스를 제공할 수 있다.
한편, 이상에서는 서버 장치 및 사용자 단말 장치가 구분되어 설명되었으나, 서버 장치 및 사용자 단말 장치는 하나의 시스템으로 구성될 수도 있다.
한편, 이상에서는 복수의 인코더 및 복수의 디코더가 하드웨어적으로 구현되는 것으로 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 프로세서는 소프트웨어적으로 복수의 인코더 및 복수의 디코더의 동작을 수행할 수도 있다.
한편, 이러한 다양한 실시 예에 따른 방법들은 프로그래밍되어 각종 저장 매체에 저장될 수 있다. 이에 따라, 저장 매체를 실행하는 다양한 유형의 전자 장치에서 상술한 다양한 실시 예에 따른 방법들이 구현될 수 있다.
구체적으로는, 상술한 제어 방법을 순차적으로 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
1000 : 스트리밍 시스템 100 : 서버 장치
110 : 통신부 120 : 복수의 인코더
130 : 프로세서 200 : 사용자 단말 장치
210 : 디스플레이 220 : 통신부
230 : 복수의 디코더 240 : 적어도 하나의 버퍼
250 : 프로세서

Claims (17)

  1. 사용자 단말 장치와 통신을 수행하는 통신부;
    병렬적으로 인코딩 동작을 수행하는 복수의 인코더; 및
    실시간으로 생성되는 프레임을 상기 복수의 인코더에 순차적으로 할당하고, 상기 복수의 인코더로부터 병렬적으로 출력되는 복수의 인코딩된 프레임이 상기 사용자 단말 장치로 개별적으로 스트리밍되도록 상기 통신부를 제어하는 프로세서;를 포함하며,
    상기 프로세서는,
    상기 사용자 단말 장치로부터 특정 프레임에 대한 재요청 신호가 수신되면, 상기 복수의 인코더 중 상기 특정 프레임에 대응되는 인코더를 제외한 나머지 인코더의 스트리밍을 유지하고,
    상기 특정 프레임이 제1 인코딩 타입으로 인코딩된 프레임인 경우 상기 특정 프레임부터 재전송하고, 상기 특정 프레임이 제2 인코딩 타입으로 인코딩된 프레임인 경우 상기 특정 프레임이 인코딩되는 인코더에서 출력되는 인코딩된 프레임 중 상기 특정 프레임 이후의 상기 제1 인코딩 타입으로 인코딩된 프레임부터 재전송하도록 상기 특정 프레임에 대응되는 인코더를 제어하는 서버 장치.
  2. 제1항에 있어서,
    상기 복수의 인코더는, 제1 인코더 및 제2 인코더를 포함하며,
    상기 프로세서는,
    상기 실시간으로 생성되는 프레임 중 홀수 프레임을 상기 제1 인코더에 할당하고, 짝수 프레임을 상기 제2 인코더에 할당하는, 서버 장치.
  3. 삭제
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 사용자 단말 장치로부터 특정 프레임에 대한 재요청 신호가 수신되면, 상기 특정 프레임이 인트라 프레임인 경우 상기 특정 프레임부터 재전송하고, 상기 특정 프레임이 인터 프레임인 경우 상기 특정 프레임이 인코딩되는 인코더에서 출력되는 인코딩된 프레임 중 상기 특정 프레임 이후의 인트라 프레임부터 재전송하는, 서버 장치.
  5. 제1항에 있어서,
    상기 프로세서는,
    동영상 데이터를 포함하는 프레임 및 상기 동영상 데이터와 함께 제공되는 UI 데이터를 포함하는 프레임이 생성되면, 상기 UI 데이터를 포함하는 프레임을 상기 복수의 인코더 중 하나에 할당하고, 상기 동영상 데이터를 포함하는 프레임을 상기 복수의 인코더 중 나머지에 순차적으로 할당하는, 서버 장치.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 스트리밍(Streaming) 시스템에 있어서,
    병렬적으로 인코딩 동작을 수행하는 복수의 인코더를 포함하며, 실시간으로 생성되는 프레임을 상기 복수의 인코더에 순차적으로 할당하고, 상기 복수의 인코더로부터 병렬적으로 출력되는 복수의 인코딩된 프레임을 사용자 단말 장치로 개별적으로 스트리밍하는 서버 장치; 및
    디스플레이, 병렬적으로 디코딩 동작을 수행하는 복수의 디코더 및 상기 복수의 디코더에 연결된 적어도 하나의 버퍼를 포함하며, 상기 서버 장치로부터 스트리밍되는 상기 복수의 인코딩된 프레임을 상기 복수의 디코더에 순차적으로 할당하고, 상기 복수의 디코더로부터 병렬적으로 출력되는 복수의 디코딩된 프레임을 상기 적어도 하나의 버퍼에 저장하며, 상기 적어도 하나의 버퍼에 저장된 상기 복수의 디코딩된 프레임에 포함된 식별 정보에 기초하여 상기 복수의 디코딩된 프레임을 순서대로 상기 디스플레이에 디스플레이하는 상기 사용자 단말 장치;를 포함하며,
    상기 서버 장치는,
    상기 사용자 단말 장치로부터 특정 프레임에 대한 재요청 신호가 수신되면, 상기 복수의 인코더 중 상기 특정 프레임에 대응되는 인코더를 제외한 나머지 인코더의 스트리밍을 유지하고,
    상기 특정 프레임이 제1 인코딩 타입으로 인코딩된 프레임인 경우 상기 특정 프레임부터 상기 특정 프레임에 대응되는 인코더를 통해 재전송하고, 상기 특정 프레임이 제2 인코딩 타입으로 인코딩된 프레임인 경우 상기 특정 프레임이 인코딩되는 인코더에서 출력되는 인코딩된 프레임 중 상기 특정 프레임 이후의 상기 제1 인코딩 타입으로 인코딩된 프레임부터 상기 특정 프레임에 대응되는 인코더를 통해 재전송하는 스트리밍 시스템.
  10. 실시간으로 생성되는 프레임을, 병렬적으로 인코딩 동작을 수행하는 복수의 인코더에 순차적으로 할당하는 단계; 및
    상기 복수의 인코더로부터 병렬적으로 출력되는 복수의 인코딩된 프레임을 사용자 단말 장치로 개별적으로 스트리밍하는 단계;
    상기 사용자 단말 장치로부터 특정 프레임에 대한 재요청 신호를 수신하는 단계; 및
    상기 복수의 인코더 중 상기 특정 프레임에 대응되는 인코더를 제외한 나머지 인코더의 스트리밍을 유지하고, 상기 특정 프레임이 제1 인코딩 타입으로 인코딩된 프레임인 경우 상기 특정 프레임부터 상기 특정 프레임에 대응되는 인코더를 통해 재전송하고, 상기 특정 프레임이 제2 인코딩 타입으로 인코딩된 프레임인 경우 상기 특정 프레임이 인코딩되는 인코더에서 출력되는 인코딩된 프레임 중 상기 특정 프레임 이후의 상기 제1 인코딩 타입으로 인코딩된 프레임부터 상기 특정 프레임에 대응되는 인코더를 통해 재전송하는 단계;를 포함하는 서버 장치의 제어 방법.
  11. 제10항에 있어서,
    상기 복수의 인코더는, 제1 인코더 및 제2 인코더를 포함하며,
    상기 할당하는 단계는,
    상기 실시간으로 생성되는 프레임 중 홀수 프레임을 상기 제1 인코더에 할당하고, 짝수 프레임을 상기 제2 인코더에 할당하는, 제어 방법.
  12. 삭제
  13. 제10항에 있어서,
    상기 재전송하는 단계는,
    상기 특정 프레임이 인트라 프레임인 경우 상기 특정 프레임부터 상기 특정 프레임에 대응되는 인코더를 통해 재전송하고, 상기 특정 프레임이 인터 프레임인 경우 상기 특정 프레임이 인코딩되는 인코더에서 출력되는 인코딩된 프레임 중 상기 특정 프레임 이후의 인트라 프레임부터 상기 특정 프레임에 대응되는 인코더를 통해 재전송하는, 제어 방법.
  14. 제10항에 있어서,
    상기 할당하는 단계는,
    동영상 데이터를 포함하는 프레임 및 상기 동영상 데이터와 함께 제공되는 UI 데이터를 포함하는 프레임이 생성되면, 상기 UI 데이터를 포함하는 프레임을 상기 복수의 인코더 중 하나에 할당하고, 상기 동영상 데이터를 포함하는 프레임을 상기 복수의 인코더 중 나머지에 순차적으로 할당하는, 제어 방법.
  15. 삭제
  16. 삭제
  17. 삭제
KR1020160109986A 2016-08-29 2016-08-29 서버 장치, 사용자 단말 장치, 그 제어 방법들 및 스트리밍 시스템 Active KR102483269B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020160109986A KR102483269B1 (ko) 2016-08-29 2016-08-29 서버 장치, 사용자 단말 장치, 그 제어 방법들 및 스트리밍 시스템
EP17846890.6A EP3461303B1 (en) 2016-08-29 2017-08-18 Server device, user terminal device, control methods thereof and streaming system
PCT/KR2017/009023 WO2018043965A1 (en) 2016-08-29 2017-08-18 Server device, user terminal device, control methods thereof and streaming system
US15/681,614 US20180062907A1 (en) 2016-08-29 2017-08-21 Server device, user terminal device, control methods thereof and streaming system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160109986A KR102483269B1 (ko) 2016-08-29 2016-08-29 서버 장치, 사용자 단말 장치, 그 제어 방법들 및 스트리밍 시스템

Publications (2)

Publication Number Publication Date
KR20180024217A KR20180024217A (ko) 2018-03-08
KR102483269B1 true KR102483269B1 (ko) 2023-01-02

Family

ID=61243829

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160109986A Active KR102483269B1 (ko) 2016-08-29 2016-08-29 서버 장치, 사용자 단말 장치, 그 제어 방법들 및 스트리밍 시스템

Country Status (4)

Country Link
US (1) US20180062907A1 (ko)
EP (1) EP3461303B1 (ko)
KR (1) KR102483269B1 (ko)
WO (1) WO2018043965A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102347598B1 (ko) * 2017-10-16 2022-01-05 삼성전자주식회사 영상 부호화 장치 및 인코더

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080152014A1 (en) * 2006-12-21 2008-06-26 On Demand Microelectronics Method and apparatus for encoding and decoding of video streams
US20150229329A1 (en) * 2012-09-21 2015-08-13 Nippon Telegraph And Telephone Corporation Encoding/decoding system for parallel data

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1130839B1 (en) * 2000-03-02 2005-06-08 Matsushita Electric Industrial Co., Ltd. Method and apparatus for retransmitting video data frames with priority levels
KR100429838B1 (ko) * 2000-03-14 2004-05-03 삼성전자주식회사 인터랙티브 멀티미디어 콘텐츠 서비스에서 업스트림채널을 이용한 사용자 요구 처리방법 및 그 장치
JP2007166192A (ja) * 2005-12-13 2007-06-28 Toshiba Corp 情報処理装置、制御方法およびプログラム
KR101362382B1 (ko) * 2007-07-10 2014-02-12 삼성전자주식회사 디지털 방송 수신기에서 채널 절환시 비디오 프레임을출력하는 방법 및 장치
TW200952411A (en) * 2008-03-10 2009-12-16 Koninkl Philips Electronics Nv An efficient multi-band communication system
KR101539461B1 (ko) * 2008-07-16 2015-07-30 삼성전자주식회사 멀티미디어 시스템에서 사용자 인터페이스 서비스를 제공하는 방법 및 장치
GB2495469B (en) * 2011-09-02 2017-12-13 Skype Video coding
JP6410495B2 (ja) * 2014-07-07 2018-10-24 ルネサスエレクトロニクス株式会社 画像符号化装置、画像復号装置、および画像通信システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080152014A1 (en) * 2006-12-21 2008-06-26 On Demand Microelectronics Method and apparatus for encoding and decoding of video streams
US20150229329A1 (en) * 2012-09-21 2015-08-13 Nippon Telegraph And Telephone Corporation Encoding/decoding system for parallel data

Also Published As

Publication number Publication date
EP3461303A4 (en) 2019-04-03
KR20180024217A (ko) 2018-03-08
WO2018043965A1 (en) 2018-03-08
EP3461303B1 (en) 2019-12-18
EP3461303A1 (en) 2019-04-03
US20180062907A1 (en) 2018-03-01

Similar Documents

Publication Publication Date Title
EP3304277B1 (en) Low latency screen mirroring
KR102120571B1 (ko) 넌-4:4:4 크로마 서브-샘플링의 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들
CN108881951B (zh) 执行基于条带的压缩的图像处理装置和图像处理方法
AU2019330406B2 (en) Method and apparatus for intra prediction
EP3635953B1 (en) Electronic device for high-speed compression processing of feature map of cnn utilizing system and controlling method thereof
CN108353177A (zh) 在显示流压缩dsc中用于降低切片边界视觉假象的系统及方法
KR101667970B1 (ko) 서버 장치, 단말, 씬 클라이언트 시스템, 화면 송신 방법 및 프로그램
WO2017034725A1 (en) Reliable large group of pictures (gop) file streaming to wireless displays
US20170149856A1 (en) Wireless video transmission device, video playing device and method, and system
TW202016875A (zh) 用於高速壓縮處理使用卷積類神經網路的系統的特徵圖的電子裝置及其控制方法
CN102972033B (zh) 用于立体三维视频信息的通信的方法和系统
KR102483269B1 (ko) 서버 장치, 사용자 단말 장치, 그 제어 방법들 및 스트리밍 시스템
US20240314361A1 (en) Systems and methods for data partitioning in video encoding
US11277608B2 (en) Method and apparatus for intra prediction
EP2801194A1 (en) Quantization matrix (qm) coding based on weighted prediction
KR20160105203A (ko) 멀티미디어 코덱, 상기 멀티미디어 코덱을 포함하는 애플리케이션 프로세서, 및 상기 애플리케이션 프로세서의 동작 방법
US12015801B2 (en) Systems and methods for streaming extensions for video encoding
US11871003B2 (en) Systems and methods of rate control for multiple pass video encoding
KR20170033234A (ko) 분할화면 송수신 기반의 영상 처리 장치 및 방법
CN110731082A (zh) 使用反向排序来压缩视频帧组
WO2021237475A1 (zh) 图像编解码方法和装置
KR20220144241A (ko) 서버 및 그 제어 방법
CN113596470A (zh) 应用中压缩算法的超高清视频无线发送、接收方法及设备
KR20170033235A (ko) 즉각적 분할화면 송수신 기반의 영상 처리 장치 및 방법
KR20190023665A (ko) 영상처리장치 및 그 제어방법

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20160829

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20210804

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20160829

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20220714

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20220929

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20221227

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20221228

End annual number: 3

Start annual number: 1

PG1601 Publication of registration