KR101732995B1 - 스트리밍 레이턴시 최소화 시스템 및 이를 사용하는 방법 - Google Patents

스트리밍 레이턴시 최소화 시스템 및 이를 사용하는 방법 Download PDF

Info

Publication number
KR101732995B1
KR101732995B1 KR1020150019905A KR20150019905A KR101732995B1 KR 101732995 B1 KR101732995 B1 KR 101732995B1 KR 1020150019905 A KR1020150019905 A KR 1020150019905A KR 20150019905 A KR20150019905 A KR 20150019905A KR 101732995 B1 KR101732995 B1 KR 101732995B1
Authority
KR
South Korea
Prior art keywords
data
unit
buffer
converted
latency
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
KR1020150019905A
Other languages
English (en)
Other versions
KR20160098625A (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 KR1020150019905A priority Critical patent/KR101732995B1/ko
Priority to US15/015,793 priority patent/US10652548B2/en
Priority to JP2016022724A priority patent/JP2016149770A/ja
Publication of KR20160098625A publication Critical patent/KR20160098625A/ko
Application granted granted Critical
Publication of KR101732995B1 publication Critical patent/KR101732995B1/ko
Assigned to 엔에이치엔클라우드 주식회사 reassignment 엔에이치엔클라우드 주식회사 권리의 전부이전등록 Assignors: 엔에이치엔 주식회사
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23113Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving housekeeping operations for stored content, e.g. prioritizing content for deletion because of storage space restrictions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • 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
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel

Landscapes

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

Abstract

본 발명에 따른 스트리밍 데이터 레이턴시 최소화 시스템 및 방법은, 버퍼의 언더플로우로 인한 스트리밍 데이터 레이턴시를 최소화 하는 시스템을 제공함으로써 사용자가 스트리밍 형태의 영상 데이터를 감상 시 발생하는 레이턴시(버퍼링) 현상을 줄이도록 한다.

Description

스트리밍 레이턴시 최소화 시스템 및 이를 사용하는 방법 {System with minimized streaming latency and the method using thereof}
본 발명은 스트리밍 레이턴시 최소화 시스템 관한 것으로서, 더욱 상세하게는 디코더단 버퍼의 언더플로우로 인한 레이턴시를 최소화 하기 위한 시스템 및 이를 사용하는 방법에 관한 것이다.
일반적으로 영상 제공 장치는 동영상 데이터를 처리하기 위한 비디오 코덱을 구비한다. 이 비디오 코덱은 인코딩부와 디코딩부로 구성되며, 인코딩부는 동영상 데이터를 인코딩 및 압축하여 전송하는 기능을 수행하고, 디코딩부는 수신된 동영상 데이터를 디코딩 및 압축 해제하여 원 영상으로 복원하는 기능을 수행한다. 이와 같은 비디오 코텍에 있어서, 상기 인코딩부와 디코딩부는 동영상의 효율적인 송/수신을 위하여 버퍼(buffer)를 구비한다.
도 1은 종래 영상 제공 장치의 인코딩부(110)와 디코딩부(120)를 나타낸 블록 구성도이다.
도 1을 참조하면, 종래 인코딩부(110)는 데이터 입력부(111), 데이터 변환부(112), 및 제1 버퍼(113)으로 구성된다. 상기 데이터 입력부(111)는 스트리밍 데이터를 입력 받고, 데이터 변환부(112)는 상기 입력된 데이터를 압축 및 변환하여 비디오 인코딩 데이터를 출력하고, 상기 제1 버퍼(113)는 상기 변환된 데이터를 저장하고 외부 장치의 요구 신호에 따라 저장된 데이터를 출력한다. 또한, 종래의 디코딩부(120)는 제2 버퍼(121), 데이터 변환부(122), 및 데이터 출력부(123)으로 구성된다. 상기 제2 버퍼(121)는 상기 인코딩부(110)의 제1 버퍼(113)에서 출력된 데이터를 입력 받고, 상기 데이터 변환부(123)는 상기 입력 받은 데이터를 변환하고, 상기 데이터 출력부는 상기 변환된 데이터를 출력하는 스트리밍 형태로 출력한다.
이와 같이 구성된 종래의 영상 제공 시스템의 동작은 다음과 같다.
우선, 데이터 입력부(111)로 스트리밍 타입의 영상 데이터가 입력되고, 데이터 변환부(112)는 입력된 영상 데이터를 압축 변환하여 출력한다. 이어서, 상기 변환된 데이터는 제1 버퍼(113)에 저장되며, 상기 제1 버퍼(113)는 외부 장치로부터 변환된 데이터의 출력 요구가 있을 때에 저장된 데이터를 외부 장치로 출력한다.
디코딩부(120)의 제2 버퍼(121)는 상기 인코딩부(110)의 제1 버퍼(113)에서 출력된 데이터를 네트워크를 통해 입력 받고, 이를 상기 데이터 변환부(122)로 출력한다. 상기 데이터 변환부(122)는 입력 받은 데이터를 변환하여 스트리밍 형태로 상기 데이터 출력부(123)를 통해서 출력한다.
이때, 상기 인코딩부(110)의 제1 버퍼(113)와 상기 디코딩부(120)의 제2 버퍼(121)는 입력되는 데이터를 실시간으로 데이터를 출력하나, 상기 출력되는 데이터의 양이 상기 제1 버퍼(113) 또는 제2 버퍼(121)로 입력되는 데이터의 양보다 많으면 상기 제1 버퍼(113) 또는 제2 버퍼(121)는 언더플로우 (underflow) 상태가 되며, 상기 제1 버퍼(113) 또는 제2 버퍼(121)가 채워질 때까지 데이터의 출력을 일시적으로 중지하고 대기한다. 이로 인하여, 인코딩부(110)의 제1 버퍼(113)를 통해서 네트워크로 출력되는 데이터, 또는, 디코딩부(120)의 제2 버퍼(121)를 통해서 상기 데이터 변환부(123)로 입력되는 데이터에 순간적으로 레이턴시(latency)가 발생하게 되고, 결과적으로, 디코딩부(120)의 데이터 출력부(123)로 출력되는 스트리밍 데이터에도 레이턴시가 발생하여, 영상을 제공받는 사용자는 순간 순간 영상이 끊기는 버퍼링 현상을 받게 된다.
이와 같은 문제점을 해결하기 위해서, 버퍼에서 언더플로우 발생 시, 실시간으로 비트율이 가변 되는 인코더가 제시 되고 있으나, 비트율이 고정된 인코더에서는 이를 해결하기 위한 마땅한 방법이 없는 것이 현실이다.
본 발명은 상기한 종래 기술에 따른 문제점을 해결하기 위한 것이다. 즉, 본 발명의 목적은 비트율이 일정한 인코더 및 디코더 버퍼의 언더플로우로 인한 스트리밍 데이터 레이턴시를 최소화하는 시스템 및 방법을 제공함에 있다.
상기의 목적을 달성하기 위한 기술적 사상으로서 본 발명의 일실시예에 따른 스트리밍 레이턴시 최소화 시스템은 스트리밍 타입의 데이터를 입력 받아 출력하는 데이터 입력부, 상기 스트리밍 타입의 데이터를 입력 받아 변환하여 출력하는 데이터 변환부, 상기 변환된 데이터를 입력 받아 출력하는 제 1 버퍼, 상기 변환된 데이터의 크기 및 변환 소요 시간을 산출하는 데이터 측정부, 및 상기 산출 결과를 기준 소요 시간과 기준 크기와 비교하여 레이턴시를 판단하는 레이턴시 판단부를 포함하는 인코딩부, 및 상기 제1 버퍼에서 출력된 데이터를 입력 받는 제 2 버퍼를 포함하는 디코딩부를 포함하며, 상기 레이턴시 판단부는 상기 제1 버퍼 또는 상기 제2 버퍼의 언더플로우 발생 가능성을 판단하고, 상기 판단 결과를 상기 데이터 입력부로 회신하며, 상기 데이터 입력부는 상기 회신 결과에 따라 마지막 스트리밍 데이터를 다시 상기 데이터 변환부로 출력한다.
일 예로, 상기 데이터 입력부는 상기 데이터 변환부로 데이터를 프레임 단위로 출력하며, 상기 마지막 스트리밍 데이터는 마지막 프레임 데이터인 것을 특징으로 한다.
일예로, 상기 기준 소요 시간은 8ms 이며, 상기 레이턴시 판단부는 상기 산출된 변환 소요 시간이 상기 기준 소요 시간 보다 짧은 경우 언더플로우로 판단하는 것을 특징으로 한다.
일예로, 상기 기준 크기는 20000 byte 이며, 상기 레이턴시 판단부는 상기 변환된 데이터의 크기가 상기 기준 크기보다 보다 작은 경우 언더플로우로 판단한다.
일예로, 상기 데이터 변환부는 BITRATE가 일정한 MPEG(Moving Picture Expert Group) 인코더인 것을 특징으로 한다.
본 발명의 일실시예에 따른 스트리밍 레이턴시 최소화 방법은 스트리밍 데이터를 입력 받는 단계, 상기 입력된 스트리밍 데이터를 변환하는 단계, 상기 변환된 데이터를 전송하는 단계, 상기 변환된 데이터의 변환 소요 시간 및 변환된 데이터의 크기를 산출하는 단계, 상기 산출된 변환 소요 시간과 상기 변환된 데이터의 크기를 기준 소요 시간과 기준 크기와 비교하는 단계, 비교 결과를 기준으로 버퍼의 언더플로우를 판단하는 단계, 및 상기 언더플로우 판단 결과에 따라서 마지막 스트리밍 데이터를 다시 변환하는 단계를 포함한다.
일예로, 상기 스트리밍 데이터는 프레임 단위로 인코딩 되며, 상기 마지막 스트리밍 데이터는 마지막 프레임 데이터인 것을 특징으로 한다.
일예로, 상기 버퍼는 상기 변환된 데이터를 출력하는 인코딩부의 제1 버퍼 또는 상기 출력된 데이터를 입력 받는 디코딩부의 제2 버퍼인 것을 특징으로 한다.
일예로, 상기 데이터 변환은 BITRATE가 일정한 MPEG(Moving Picture Expert Group) 인코더로 변환하는 것을 특징으로 한다.
일예로, 상기 기준 소요 시간은 8ms 이며, 상기 레이턴시 판단부는 상기 산출된 변환 소요 시간이 상기 기준 소요 시간 보다 짧은 경우 언더플로우로 판단하는 것을 특징으로 한다.
일예로, 상기 기준 크기는 20000 byte 이며, 상기 레이턴시 판단부는 상기 변환된 데이터의 크기가 상기 기준 크기보다 보다 작은 경우 언더플로우로 판단하는 것을 특징으로 한다.
본 발명의 일실시예에 따른 인코딩부는 스트리밍 타입의 데이터를 입력 받아 출력하는 데이터 입력부, 상기 스트리밍 타입의 데이터를 입력 받아 변환하여 출력하는 데이터 변환부, 상기 변환된 데이터를 입력 받아 디코더의 제2 버퍼로 출력하는 제 1 버퍼, 상기 변환된 데이터의 크기 및 변환 소요 시간을 산출하는 데이터 측정부, 및 상기 산출 결과를 기준 소요 시간과 기준 크기와 비교하여 레이턴시를 판단하는 레이턴시 판단부를 포함하고, 상기 레이턴시 판단부는 상기 변환된 데이터의 크기 및 상기 변환 소요 시간을 기준 소요 시간과 기준 크기와 비교하여 상기 제1버퍼 또는 제2 버퍼의 언더플로우 발생 가능성을 판단하고, 상기 판단 결과를 상기 데이터 입력부로 회신하며, 상기 데이터 입력부는 상기 회신 결과에 따라 마지막 스트리밍 데이터를 다시 상기 데이터 변환부로 출력한다.
일예로, 상기 데이터 입력부는 상기 데이터 변환부로 데이터를 프레임 단위로 출력하며, 상기 마지막 스트리밍 데이터는 마지막 프레임 데이터인 것을 특징으로 한다.
일예로, 상기 기준 소요 시간은 8ms 이며, 상기 레이턴시 판단부는 상기 산출된 변환 소요 시간이 상기 기준 소요 시간 보다 짧은 경우 언더플로우로 판단하는 것을 특징으로 한다.
일예로, 상기 기준 크기는 20000 byte 이며, 상기 레이턴시 판단부는 상기 변환된 데이터의 크기가 상기 기준 크기보다 보다 작은 경우 언더플로우로 판단하는 것을 특징으로 한다.
일예로, 상기 데이터 변환부는 BITRATE가 일정한 MPEG(Moving Picture Expert Group) 인코더인 것을 특징으로 한다.
본 발명에 따른 스트리밍 데이터 레이턴시 최소화 시스템 및 방법은, 버퍼의 언더플로우로 인한 스트리밍 데이터 레이턴시를 최소화 하는 시스템을 제공함으로써 사용자가 스트리밍 형태의 영상 데이터를 감상 시 발생하는 레이턴시(버퍼링) 현상을 줄이도록 한다.
도 1은 종래 영상 제공 장치의 인코딩부와 디코딩부를 나타낸 블록 구성도이다.
도 2는 본 발명의 일실시예에 따른 스트리밍 레이턴시 최소화 시스템의 인코딩부와 디코딩부를 나타낸 블록 구성도이다.
도 3은 본 발명의 일실시예에 따른 스트리밍 레이턴시 최소화 방법에 대한 플로우 차트이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
본 출원에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명한다.
도 2는 본 발명의 일실시예에 따른 스트리밍 레이턴시 최소화 시스템의 인코딩부와 디코딩부를 나타낸 블록 구성도이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 스트리밍 레이턴시 최소화 시스템은 인코딩부(210) 및 디코딩부(220)를 포함한다. 상기 인코딩부(210)는 데이터 입력부(211), 데이터 변환부(212), 제1 버퍼(213), 데이터 측정부(214), 및 레이턴시 판단부(215)를 포함한다. 상기 디코딩부(220)는 제2 버퍼(221), 데이터 변환부(222), 및 데이터 출력부(223)를 포함한다.
상기 데이터 입력부(211)는 디지털화된 영상 데이터를 스트리밍 형태로 입력 받고, 상기 입력된 스트리밍 데이터를 상기 데이터 변환부(212)로 출력한다. 이때, 상기 데이터 입력부(211)는 상기 스트리밍 데이터를 프레임 단위로 상기 데이터 변환부로 출력한다.
상기 데이터 변환부(212)는 입력 되는 상기 스트리밍 데이터를 압축 변환하여 상기 제1 버퍼(213) 및 상기 데이터 측정부(214)로 출력한다. 상기 데이터 변환부(212)는 비디오 및 오디오 신호를 부호화 하는 MPEG 인코더 일 수 있다. 상기 MPEG 인코더의 출력 비트율은 일정한 것을 특징으로 한다.
상기 제1 버퍼(213)는 입력 받은 변환된 데이터를 네트워크를 통해서 상기 디코딩부(220)로 출력하며, 변환된 데이터는 압축된 비트열인 부호화 데이터이다.
상기 데이터 변환부(212)에서 출력되는 변환된 데이터는 상기 데이터 측정부(214)로 입력되며, 상기 데이터 측정부(214)는 상기 변환된 데이터의 크기와 변환 소요 시간을 산출한다. 데이터의 크기는 프레임 데이터의 유형에 따라 달라질 수 있으며, 크기에 따라서 변환 소요 시간도 줄어들 수 있다.
보다 상세하게 설명하면, MPEG에서는 모든 프레임을 개별 정화상으로 압축하는 것이 아니라, 인접 프레임 사이에 유사점이 많다는 점을 이용한다. 예를 들면, 움직이는 동영상에서, 배경화면은 변경 사항 없이 그대로 유지되면서, 좌우로 이동하는 오브젝트가 있다고 가정하면, 배경과 같이 유사한 픽셀을 갖는 프레임은 크게 변화한 정보가 없기 때문에 인접 프레임의 속성을 그대로 이어 받고 변화된 정보가 많은 자동차 부분만 압축을 행해서 데이터의 용량을 줄이게 된다. 즉, 동작 보상을 하게 되는 것이고, 이는 다시 예측과 보간을 이용해 좀 더 많은 압축 효율을 가지게 된다. 그러나 재생 중 임의의 지점으로 접근이 가능해야 한다는 등의 여러 이유로 인해 MPEG 비디오에서는 자신이 가지고 있는 정보만으로도 복원될 수 있는 프레임이 규칙적으로 삽입되어야 하며 이러한 프레임은 정화상으로 압축된다. 바로 정화상으로 압축된 프레임을 I 프레임, 예측만을 한 프레임을 P 프레임, 보간을 한 프레임을 B 프레임이라 하는데, MPEG 비디오는 이들 세 종류의 프레임들이 일정한 패턴으로 섞여서 하나의 완성된 영상을 표현해 낸다고 볼 수 있다. 상기와 같은 방법으로 비디오 영상이 압축되므로 배경 화면 및 오브젝트에 따라서 변환된 프레임 데이터의 크기와 변환 소요 시간은 유동적일 수 있다.
상기 산출된 데이터의 크기와 변환 소요 시간은 레이턴시 판단부(215)로 입력되며, 상기 레이턴시 판단부(215)는 상기 산출 결과를 기준 소요 시간 및 기준 크기와 비교하여 레이턴시 발생 여부를 판단한다. 상기 산출된 변환 소요 시간이 상기 기준 소요 시간보다 짧거나, 상기 변환된 데이터의 크기가 상기 기준 크기 보다 작은 경우 언더플로우로 판단하고, 상기 결과를 데이터 입력부(211)로 전송한다.
이때 상기 기준 크기는 20000 byte 이며, 상기 변환된 데이터의 크기가 2000 byte 보다 작은 경우 언더플로우로 판단하고, 상기 기준 소요 시간은 8ms 이며, 상기 산출된 변환 소요 시간이 8ms보다 짧은 경우 언더플로우로 판단한다.
상기 결과가 상기 데이터 입력부(211)로 회신되면, 상기 데이터 입력부(211)는 상기 회신 신호에 따라서 상기 데이터 변환부(212)로 마지막 프레임 데이터를 다시 출력한다.
즉, 상기 데이터 변환부(212)는 입력 받은 프레임 단위의 데이터를 변환하여 출력하고, 변환된 데이터가 기준 크기 또는 기준 소요 시간을 만족하지 못하면, 마지막 프레임을 다시 입력 받아 동일한 프레임을 다시 한번 변환하게 된다. 다시 말해, 변환된 데이터가 기준값 보다 작거나 기준값 보다 빨리 변환 되면 동일 프레임을 다시 변환하여 출력한다.
상기 디코딩부(220)의 상기 제2 버퍼(221)는 네트워크를 통해서 상기 인코딩부(210)에서 출력된 변환된 비트열의 데이터를 입력 받는다. 상기 데이터 변환부(222)는 입력된 비트열의 데이터를 변환하여 상기 데이터 출력부(223)로 출력한다. 이때, 데이터 변환부(222)는 비디오 및 오디오 신호를 복호화 하는 MPEG 디코더일 수 있다. 상기 데이터 변환부(222)에서 변환된 데이터는 데이터 출력부(223)를 통해서 출력되며, 상기 데이터 출력부(223)는 스트리밍 형태의 데이터를 프레임 단위로 출력하여 사용자에게 영상으로 제공된다.
상기와 같은 본 발명의 일실시예에 따르면, 인코딩부(210)에서 추가적인 데이터 변환이 이루어지므로 인코딩부(210)의 효율은 감소하나, 인코딩부(210) 또는 디코딩부(220)의 버퍼에서 발생 가능한 언더플로우를 예방할 수 있고, 그에 따라, 사용자에게 제공되는 영상의 버퍼링을 줄일 수 있는 효과가 있다.
도 3은 본 발명의 일실시예에 따른 스트리밍 레이턴시 최소화 방법에 대한 플로우 차트이다.
도 3를 참조하면, 본 발명의 일실시예에 따른 스트리밍 레이턴시 최소화 방법은 스트리밍 데이터를 입력 받는 단계 (S1), 상기 스트리밍 데이터를 변환하는 단계(S2), 상기 변환된 데이터를 전송하는 단계(S3), 상기 데이터의 변환 소요 시간 및 변환된 데이터의 크기를 산출하는 단계(S4), 상기 산출된 변환 소요 시간과 변환된 데이터의 크기를 기준 소요 시간 및 기준 크기와 비교하는 단계(S5), 비교 결과를 기준으로 버퍼의 언더플로우를 판단하는 단계(S6), 및 상기 언더플로우 판단 결과에 따라서 마지막 스트리밍 데이터를 다시 변환하는 단계(S7)를 포함한다.
상기 스트리밍 데이터를 입력 받는 단계 (S1)는, 디지털화된 영상 데이터를 프레임 단위로 입력 받으며, 상기 마지막 스트리밍 데이터를 다시 변환하는 단계 (S7)는 상기 입력된 스트리밍 데이터 중 마지막 프레임을 다시 변환한다.
상기 버퍼의 언더플로우를 판단하는 단계 (S6)의 버퍼는 상기 변환된 데이터를 출력하는 인코딩부(210)의 제1 버퍼(213) 또는 상기 출력된 데이터를 입력 받는 디코딩부(220)의 제2 버퍼(221)일 수 있다.
상기 스트리밍 데이터를 변환하는 단계 (S2)는, 비디오 및 오디오 신호를 부호화 하는 MPEG 인코더로 변환될 수 있다. MPEG 인코더의 출력 비트율은 일정한 것을 특징으로 한다.
상기 산출된 변환 소요 시간과 변환된 데이터의 크기를 기준 크기 및 기준 소요 시간과 비교하는 단계 (S5)에서, 상기 기준 크기는 20000 byte 이며, 상기 변환된 데이터의 크기가 2000 byte 보다 작은 경우 언더플로우로 판단하고, 상기 기준 소요 시간은 8ms 이며, 상기 산출된 변환 소요 시간이 8ms보다 짧은 경우 언더플로우로 판단한다.
본 발명의 일실시예에 따른 인코딩 시스템은 스트리밍 타입의 데이터를 입력 받는 데이터 입력부(211), 상기 스트리밍 타입의 데이터를 변환하여 출력하는 데이터 변환부(212), 상기 변환된 데이터를 입력 받아 디코딩부(220)의 제2 버퍼로 출력하는 제 1 버퍼(213), 상기 변환된 데이터의 크기 및 변환 소요 시간을 산출하는 데이터 측정부(214), 및 상기 산출된 결과를 기준으로 레이턴시를 판단하는 레이턴시 판단부(215)를 포함하고, 상기 레이턴시 판단부(215)는 상기 변환된 데이터의 크기 및 변환 소요 시간을 기준 소요 시간 및 기준 크기와 비교하여 상기 제1버퍼(213) 또는 제2 버퍼(221)의 언더플로우 발생 가능성을 판단하고, 상기 판단 결과를 상기 데이터 입력부(211)로 회신하며, 상기 데이터 입력부(211)는 상기 회신 결과에 따라 마지막 스트리밍 데이터를 다시 상기 데이터 변환부(212)로 출력한다.
상기 데이터 입력부(211)는 상기 데이터 변환부(212)에 데이터를 프레임 단위로 출력하며, 상기 마지막 스트리밍 데이터는 마지막 프레임 데이터인 것을 특징으로 한다.
이때 상기 기준 소요 시간은 8ms 이며, 상기 레이턴시 판단부(215)는 상기 산출된 변환 소요 시간이 상기 기준 소요 시간 보다 짧은 경우 언더플로우로 판단하고, 상기 기준 크기는 20000 byte 이며, 상기 레이턴시 판단부(215)는 상기 변환된 데이터의 크기가 상기 기준 크기보다 보다 작은 경우 언더플로우로 판단한다.
상기 데이터 변환부(212)는 BITRATE가 일정한 MPEG(Moving Picture Expert Group) 인코더인 것을 특징으로 한다.
상기와 같은 본 발명의 일실시예에 따른 스트리밍 레이턴시 최소화 방법은, 데이터를 변환하는 과정에서 기준값과 비교하여, 언더플로우가 예상되는 경우, 마지막 프레임을 다시 변환하여 출력하는 것을 특징으로 하고 있으며, 상기와 같은 방법으로 인코딩부 또는 디코딩부의 버퍼에서 발생 가능한 언더플로우를 예방할 수 있고, 그에 따라, 사용자에게 제공되는 영상의 버퍼링을 줄일 수 있는 효과가 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것은 아니며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백하다 할 것이다.
110, 210 : 인코딩부
120, 220 : 디코딩부
111, 211 : 데이터 입력부
112, 122, 212, 222 : 데이터 변환부
113, 213 : 제1 버퍼
121, 221 : 제2 버퍼
214 : 데이터 측정부
215 : 레이턴시 판단부
223 : 데이터 출력부

Claims (16)

  1. 외부로부터 스트리밍 타입의 데이터를 입력받아 프레임 단위로 출력하는 데이터 입력부, 상기 데이터 입력부로부터 상기 스트리밍 타입의 데이터를 제공받아 상기 스트리밍 타입의 데이터를 변환한 후 변환된 데이터를 출력하는 데이터 변환부, 상기 데이터 변환부로부터 상기 변환된 데이터를 제공받아 저장한 후 저장된 데이터를 출력하는 제1 버퍼, 상기 데이터 변환부로부터 상기 변환된 데이터를 제공받아 상기 변환된 데이터의 크기 및 변환 소요 시간을 산출한 후 산출 결과를 출력하는 데이터 측정부, 및 상기 데이터 측정부로부터 상기 산출 결과를 제공받아 상기 산출 결과를 기준 소요 시간과 기준 크기와 비교하여 레이턴시를 판단하는 레이턴시 판단부를 포함하는 인코딩부; 및
    상기 제1 버퍼에서 출력된 데이터를 제공받아 저장하고, 저장된 데이터를 출력하는 제2 버퍼를 포함하는 디코딩부를 포함하고,
    상기 레이턴시 판단부는
    상기 데이터 측정부로부터 제공된 상기 변환된 데이터의 크기가 상기 기준 크기보다 작거나, 상기 데이터 측정부로부터 제공된 상기 변환된 데이터의 변환 소요 시간이 상기 기준 소요 시간보다 작을 경우, 상기 제1 버퍼 또는 상기 제2 버퍼에서 언더플로우가 발생될 것으로 판단한 후, 판단 결과를 상기 데이터 입력부로 전송하며,
    상기 데이터 입력부는
    상기 판단 결과에 따라 상기 제1 버퍼 또는 상기 제2 버퍼에서 언더플로우가 발생될 것으로 판단되면, 상기 스트리밍 타입의 데이터 중 마지막 프레임 데이터를 다시 상기 데이터 변환부로 출력하는 것을 특징으로 하는 스트리밍 레이턴시 최소화 시스템.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서, 상기 데이터 변환부는
    고정된 BITRATE을 갖는 MPEG(Moving Picture Expert Group) 인코더인 것을 특징으로 하는 스트리밍 레이턴시 최소화 시스템.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 외부로부터 스트리밍 타입의 데이터를 입력받아 프레임 단위로 출력하는 데이터 입력부;
    상기 데이터 입력부로부터 상기 스트리밍 타입의 데이터를 제공받아 상기 스트리밍 타입의 데이터를 변환한 후 변환된 데이터를 출력하는 데이터 변환부;
    상기 데이터 변환부로부터 상기 변환된 데이터를 제공받아 저장한 후 저장된 데이터를 디코딩부의 제2 버퍼로 출력하는 제1 버퍼;
    상기 데이터 변환부로부터 상기 변환된 데이터를 제공받아 상기 변환된 데이터의 크기 및 변환 소요 시간을 산출한 후 산출 결과를 출력하는 데이터 측정부; 및
    상기 데이터 측정부로부터 상기 산출 결과를 제공받아 상기 산출 결과를 기준 소요 시간과 기준 크기와 비교하여 레이턴시를 판단하는 레이턴시 판단부를 포함하고,
    상기 레이턴시 판단부는
    상기 데이터 측정부로부터 제공된 상기 변환된 데이터의 크기가 상기 기준 크기보다 작거나, 상기 데이터 측정부로부터 제공된 상기 변환된 데이터의 변환 소요 시간이 상기 기준 소요 시간보다 작을 경우, 상기 제1 버퍼 또는 상기 제2 버퍼에서 언더플로우가 발생될 것으로 판단한 후, 판단 결과를 상기 데이터 입력부로 전송하며,
    상기 데이터 입력부는
    상기 판단 결과에 따라 상기 제1 버퍼 또는 상기 제2 버퍼에서 언더플로우가 발생될 것으로 판단되면, 상기 스트리밍 타입의 데이터 중 마지막 프레임 데이터를 다시 상기 데이터 변환부로 출력하는 것을 특징으로 하는 인코딩 시스템.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 제12항에 있어서, 상기 데이터 변환부는
    고정된 BITRATE을 갖는 MPEG(Moving Picture Expert Group) 인코더인 것을 특징으로 하는 인코딩 시스템.
KR1020150019905A 2015-02-10 2015-02-10 스트리밍 레이턴시 최소화 시스템 및 이를 사용하는 방법 Active KR101732995B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150019905A KR101732995B1 (ko) 2015-02-10 2015-02-10 스트리밍 레이턴시 최소화 시스템 및 이를 사용하는 방법
US15/015,793 US10652548B2 (en) 2015-02-10 2016-02-04 Video system and method with minimized streaming latency
JP2016022724A JP2016149770A (ja) 2015-02-10 2016-02-09 ストリーミングレイテンシの最小化システム及びそれを使用する方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150019905A KR101732995B1 (ko) 2015-02-10 2015-02-10 스트리밍 레이턴시 최소화 시스템 및 이를 사용하는 방법

Publications (2)

Publication Number Publication Date
KR20160098625A KR20160098625A (ko) 2016-08-19
KR101732995B1 true KR101732995B1 (ko) 2017-05-25

Family

ID=56567252

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150019905A Active KR101732995B1 (ko) 2015-02-10 2015-02-10 스트리밍 레이턴시 최소화 시스템 및 이를 사용하는 방법

Country Status (3)

Country Link
US (1) US10652548B2 (ko)
JP (1) JP2016149770A (ko)
KR (1) KR101732995B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4111697B1 (en) 2020-02-27 2025-08-20 IMAX Corporation Real-time latency measurement of video streams

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003333488A (ja) 2002-05-09 2003-11-21 Mitsubishi Electric Corp ストリーミングデータ再生方式及びストリーミングデータ再生方法
WO2008032660A1 (en) * 2006-09-11 2008-03-20 Panasonic Corporation Image decoding device, image decoding method, image decoding system, and system lsi

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3203168B2 (ja) 1994-11-30 2001-08-27 三洋電機株式会社 Mpegビデオデコーダ
JPH11252552A (ja) * 1998-03-05 1999-09-17 Sony Corp ビデオ信号の圧縮符号化方法及び圧縮符号化装置、並びに、圧縮符号化データの多重化方法及び多重化装置
US6570921B1 (en) * 1998-07-10 2003-05-27 Koninklijke Philips Electronics N.V. Data compression assembly having several data-compression channels
ES2259827T3 (es) * 1998-10-13 2006-10-16 Matsushita Electric Industrial Co., Ltd. Regulacion de los requisitos de calculo y de memoria de un tren de bits comprimido en un decodificador de video.
US20060125835A1 (en) * 2004-12-10 2006-06-15 Li Sha DMA latency compensation with scaling line buffer
US7895629B1 (en) * 2007-11-07 2011-02-22 At&T Mobility Ii Llc Video service buffer management in a mobile rate control enabled network
US9094684B2 (en) * 2011-12-19 2015-07-28 Google Technology Holdings LLC Method for dual pass rate control video encoding
US9419912B2 (en) * 2014-02-11 2016-08-16 International Business Machines Corporation Selective underflow protection in a network switch
US9973795B2 (en) * 2014-08-27 2018-05-15 ClearOne Inc. Method for video synchronization in video distribution systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003333488A (ja) 2002-05-09 2003-11-21 Mitsubishi Electric Corp ストリーミングデータ再生方式及びストリーミングデータ再生方法
WO2008032660A1 (en) * 2006-09-11 2008-03-20 Panasonic Corporation Image decoding device, image decoding method, image decoding system, and system lsi

Also Published As

Publication number Publication date
US10652548B2 (en) 2020-05-12
KR20160098625A (ko) 2016-08-19
JP2016149770A (ja) 2016-08-18
US20160234505A1 (en) 2016-08-11

Similar Documents

Publication Publication Date Title
US11871040B2 (en) Reducing latency in video encoding and decoding
US8311107B2 (en) Image data compression device, compressing method, image data decompression device, decompressing method, and recording medium
WO2011109555A1 (en) Enabling delta compression and modification of motion estimation and metadata for rendering images to a remote display
AU2011371809A1 (en) Reducing latency in video encoding and decoding
KR101732995B1 (ko) 스트리밍 레이턴시 최소화 시스템 및 이를 사용하는 방법
JP3948597B2 (ja) 動画像圧縮符号化送信装置、受信装置および送受信装置
KR20160111662A (ko) 영상 처리 시스템 및 방법
JP2009246489A (ja) 映像信号切替装置
JP2003348588A (ja) 動画像符号化装置と映像伝送システム
HK40100960A (en) Reducing latency in video encoding and decoding
HK40101355A (en) Reducing latency in video encoding and decoding
JP2005286594A (ja) 映像符号化装置
JPH11313320A (ja) データ符号化装置および動画像データ符号化方法
JPH1066075A (ja) 復号開始制御装置及び復号装置
JP2000350199A (ja) 映像符号化装置
JP2002118850A (ja) 動画像符号化方法、動画像復号化方法、動画像符号化装置および動画像復号化装置
JP2010098694A (ja) ビデオトランスコーダ

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

A201 Request for examination
PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

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

St.27 status event code: A-1-2-D10-D21-exm-PE0902

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

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

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

FPAY Annual fee payment

Payment date: 20200330

Year of fee payment: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

FPAY Annual fee payment

Payment date: 20210324

Year of fee payment: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

FPAY Annual fee payment

Payment date: 20220329

Year of fee payment: 6

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R14-asn-PN2301

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 8

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 9

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-4-4-U10-U11-OTH-PR1001 (AS PROVIDED BY THE NATIONAL OFFICE)

Year of fee payment: 9