KR101090440B1 - 데이터 통신 시스템의 수신기에서 버퍼 데이터량 조정장치및 방법, 적응적 클럭 동기부를 갖는 실시간 데이터재생장치 및 방법 - Google Patents

데이터 통신 시스템의 수신기에서 버퍼 데이터량 조정장치및 방법, 적응적 클럭 동기부를 갖는 실시간 데이터재생장치 및 방법 Download PDF

Info

Publication number
KR101090440B1
KR101090440B1 KR1020030088752A KR20030088752A KR101090440B1 KR 101090440 B1 KR101090440 B1 KR 101090440B1 KR 1020030088752 A KR1020030088752 A KR 1020030088752A KR 20030088752 A KR20030088752 A KR 20030088752A KR 101090440 B1 KR101090440 B1 KR 101090440B1
Authority
KR
South Korea
Prior art keywords
clock
buffer
data
data stored
frequency
Prior art date
Application number
KR1020030088752A
Other languages
English (en)
Other versions
KR20050055530A (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 KR1020030088752A priority Critical patent/KR101090440B1/ko
Priority to US11/003,351 priority patent/US7343433B2/en
Publication of KR20050055530A publication Critical patent/KR20050055530A/ko
Application granted granted Critical
Publication of KR101090440B1 publication Critical patent/KR101090440B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/38Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
    • H04B1/40Circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags

Abstract

데이터 통신 시스템의 수신기에서 버퍼 데이터량 조정장치 및 방법, 및 적응적 클럭 동기부를 갖는 실시간 데이터 재생장치 및 방법에 관한 것이다.
본 발명에 따른 버퍼 데이터량 조정장치는 버퍼, 상기 버퍼에 저장된 데이터를 사용할 속도를 정하는 적응적 속도 결정부, 및 상기 적응적 속도 결정부에 의해 제공된 속도 정보에 맞추어 상기 버퍼에 저장된 데이터를 사용하는 데이터 사용부를 포함한다.
본 발명에 따른 버퍼 데이터량 조정방법은 버퍼에 저장된 데이터를 사용할 속도를 정하는 (a) 단계, 및 상기 정해진 속도에 맞추어 상기 버퍼에 저장된 데이터를 사용하는 (b) 단계를 포함한다.
본 발명에 따른 실시간 데이터 재생방법은 클럭을 발생시키는 (a) 단계, 및 상기 클럭에 동기해서 상기 버퍼에 저장된 데이터를 재생하는 (b) 단계를 포함한다.
본 발명에 따른 실시간 데이터 재생장치는 버퍼, 클럭을 발생시키는 적응적 클럭 동기부, 및 상기 적응적 클럭동기부에서 발생된 클럭에 따라 버퍼에 저장된 실시간 데이터를 디코딩하여 재생시키는 재생부를 포함한다.
본 발명에 따르면 수신기 동작 환경에 적응적으로 실시간 데이터 재생이 가능하다.
클럭조정, 버퍼, 실시간 데이터, 적응적 클럭조정, 클럭 조정함수

Description

데이터 통신 시스템의 수신기에서 버퍼 데이터량 조정장치 및 방법, 적응적 클럭 동기부를 갖는 실시간 데이터 재생장치 및 방법{Apparatus and method for controlling buffer data level in receiver of data communication system, and apparatus and method for playing streaming data with adaptive clock synchronizer}
도 1은 종전의 실시간 데이터 송수신 시스템의 구성을 보여주는 기능성 블록도이다.
도 2는 본 발명의 실시예에 따른 실시간 데이터 송수신 시스템의 구성을 보여주는 기능성 블록도이다.
도 3은 도 2의 적응적 클럭 동기부의 보다 상세한 구성을 보여주는 기능성 블록도이다.
도 4는 본 발명의 실시예에 따른 클럭 조정과정을 보여주는 흐름도이다.
도 5는 본 발명에 따른 적응적 클럭 조정함수의 예들을 보여주는 도면이다.
도 6a, 6b는 각각 버퍼 데이터량에 따른 클럭 조정 여부를 보여주는 도면이다.
도 7은 실시간 데이터의 검색 모드에서의 버퍼 데이터량의 모습을 보여주는 도면이다.
도 8은 본 발명에 따른 실시간 데이터 송수신 시스템의 적용예들을 보여주는 도면이다.
본 발명은 실시간 데이터 재생장치 및 방법에 관한 것으로서, 보다 상세하게는 실시간 데이터의 재생 상태에 따라 적응적으로 클럭 동기 기능을 갖는 실시간 데이터 재생장치 및 방법에 관한 것이다.
지난 수십년간 영상 데이터와 오디오 데이터는 아날로그 데이터 형식으로 텔레비전에 전송되어 왔다. 그러나 디지털 신호의 다양한 장점으로 인하여 점차로 많은 영상 정보들이 디지털 정보로 표현되고 기록되고 있다. 최근에는 디지털 영상과 오디오는 위성방송이나 지상파방송 또는 케이블 방송을 통해 전송되고 있으며, 사용자는 셋톱 박스와 디지털 텔레비전을 이용하여 디지털 영상과 오디오를 시청할 수 있게 되었다.
한편, 최근에는 인터넷 기술의 발전과 더불어 VOD(Video On Demand) 서비스가 증가하고 있다. 인터넷 영화관 또는 음악 감상실이 이에 해당할 수 있는데, 사용자가 컴퓨터 상에서 요구하는 영화를 서비스업자는 인터넷을 통해 실시간 데이터로 전송하고 사용자는 전송받은 영화를 컴퓨터 상에서 감상할 수 있다.
디지털 텔레비전이나 VOD 서비스는 모두 사용자가 인터넷 혹은 무선으로 전송받은 실시간 데이터를 통해 영상이나 음악을 감상한다는 공통점을 갖는다.
도 1은 실시간 데이터 송수신 시스템의 구성을 간략히 보여주는 기능성 블록도를 보여주고 있다.
실시간 데이터 송수신 시스템은 실시간 데이터를 송신하는 실시간 송신기(10)와 실시간 송신기(10)가 전송매체를 통해 송신한 실시간 데이터를 수신하여 처리하는 실시간 수신기(20)를 포함한다. 본 발명에서 실시간 데이터란 실시간 전송을 필요로 하는 데이터로서 비디오나 오디오 데이터 등이 이에 해당한다.
실시간 송신기(10)는 실시간 데이터를 생성하는 실시간 데이터 생성부(12)와 생성된 데이터를 송신하는 실시간 데이터 송신부(14)를 포함한다. 실시간 데이터 생성부(12)는 동영상 이미지나 오디오 신호를 MPEG-2(Motion Picture Expert Group 2)와 같은 압축 알고리즘으로 인코딩한다. 인코딩된 실시간 데이터는 실시간 데이터 송신부(14)를 통해 전송매체를 통해 송신한다.
실시간 수신기(20)는 전송매체를 통해 전송된 실시간 데이터를 수신하여 동영상 이미지와 오디오 신호를 디코딩한다. 이를 위하여 실시간 수신기(20)는 전송매체를 통해 전송되는 실시간 데이터를 수신하는 실시간 데이터 수신부(22)와 수신된 실시간 데이터를 임시로 저장하는 버퍼(24)와 실시간 데이터의 재생시간을 동기화하기 위한 클럭을 생성하는 클럭 동기부(26) 및 실시간 데이터를 디코딩하고 클럭에 동기해서 재생시키는 재생부(28)를 포함한다.
전송매체란 유선이나 무선매체 등이 될 수 있다. 유선 전송매체를 사용하는 경우에는 매체를 공유하여 사용하는 다른 디바이스들의 데이터 전송량에 따라 데이터 전송율이 증가하거나 감소하는 영향을 받을 수 있다. 무선 전송매체를 사용하 는 경우에는 매체를 공유하여 사용하는 다른 디바이스들의 데이터 전송량에 따라 데이터 전송율이 변동할 수 있으며, 이 밖에 노이즈 등의 영향에 의해 전송 중인 데이터 손실이 발생할 가능성도 있다. 수신기(20)의 수신부(22)는 전송 중인 데이터가 손실된 경우에 손실된 데이터를 무시하거나 송신기(10)에 데이터의 재전송을 요구하는 경우가 있는데, UDP(User Datagram Protocol)이나 UDP 상위층인 RTP(Real-time Transport Protocol)을 이용하는 경우는 전자에 해당되고 TCP(Transmission Control Protocol)을 이용하는 경우는 후자에 해당될 수 있다.
대개 실시간 데이터 송수신 시스템에서는 UDP 혹은 UDP의 상위층인 RTP 프로토콜을 사용하여 데이터를 전송한다.
데이터가 전송 중에 손실되거나 수신기(20)의 재전송 요구에 의해 시간이 지연된 경우 혹은 다른 디바이스의 매체 사용이 증가하여 송신기(10)의 데이터 전송량이 감소한 경우에 실시간 데이터를 재생하는 수신기(20)는 화면의 끊김 현상이 나타날 수 있는데, 이를 방지하기 위하여 버퍼(24)를 둔다. 즉, 수신기(20)는 일정한 양의 데이터를 미리 버퍼(24)에 저장하고서 실시간 데이터의 재생을 시작한다. 실시간 데이터의 재생 중에 전송 중인 실시간 데이터의 손실이나 재전송 혹은 전송매체의 환경에 따른 전송지연이 생기더라도 화면의 끊김 현상은 어느 정도 방지할 수 있다.
그러나 버퍼링을 통한 전송지연에 따른 화면 끊김 현상 등을 방지하거나 데이터 재전송을 시간적 여유를 확보할 수는 있지만 다음과 같은 문제점들이 있다.
즉, 실시간 데이터의 재생기는 실시간 데이터의 재생을 시작하기 위해서는 일정한 시간동안 버퍼에 실시간 데이터를 채우는 시간이 필요하다. 이러한 시간은 사용자가 실시간 데이터를 통해 동영상이나 음악을 감상하려고 할 때 답답함을 느끼게 하는 원인이 된다. 특히 사용자가 영화의 특정한 장면을 검색하는 경우에 있어서는 특정한 부분을 선택할 때 버퍼링 시간이 지난 후에야 검색한 장면을 볼 수 있다. 또한 다른 부분을 선택할 때는 기존의 버퍼링된 데이터를 비우고 새로 버퍼링을 해야하므로 사용자가 느끼는 답답함은 더욱 증가한다. 한편, 영화 감상 중에도 전송매체의 환경에 따라 전송율이 떨어지게 될 수 있는데 버퍼에 저장된 데이터의 양이 일정량 이하로 줄어들면 실시간 데이터 재생기는 버퍼링을 통해 버퍼에 데이터를 일정 수준 이상으로 채운 후에 영화를 재생한다.
초기 재생을 위한 버퍼링 시간의 줄이거나 버퍼에 저장된 데이터의 양을 일정하게 유지하기 위하여 클럭을 고의로 지연시키거나 증가시키는 방법들이 고안되었다. 일본국 공개특허 1999-112982의 경우에 버퍼 메모리의 데이터 양의 평균치를 산출하여 허용범위 외에 존재할 경우에 클럭 신호의 주파수를 조정함으로써 버퍼 메모리의 언더플로 또는 오버플로 상태의 발생으로 인한 화상의 중단현상을 감소시키고자 했다. 미합중국 특허출원 2003-0002609에서는 송신측으로부터 받은 데이터의 예상치와 디코더 버퍼의 실제 레벨을 비교한 후에 피드백 루프를 사용하여 수신측의 클럭을 조정하는 방법을 개시하였다. 이 밖에 클럭 주파수 보정을 통한 언더플로나 오버플로를 감소시키는 방법으로 미합중국 특허 6,456,702와 5,473,385, 또는 대한민국공개특허 2002-0020955 등이 공개되어 있다.
그러나 상기 특허 또는 특허출원에 개시된 기술들은 실시간 데이터 수신장치 의 버퍼와 기준값을 비교하는 방식에 의하여 클럭주파수를 보정한다. 따라서 실제로 실시간 데이터 수신장치의 환경적인 요소들에 대한 고려가 적다. 예를 들어, 어떤 장면을 찾기 위해 영화의 위치를 여러 번 검색하는 경우에는 버퍼링 시간을 좀더 짧게 할 수 있으며, 전송환경이 안정적인 경우에는 클럭주파수 조정을 가능하면 억제하는 것이 좋은데 이러한 것에 대한 고려가 적다. 따라서 실시간 데이터 수신장치가 동작하는 환경적인 요소에 따라 적응적으로 버퍼링 상태를 바꿀 수 있는 방법과 장치가 필요하다.
본 발명은 상술한 필요성에 의해 안출된 것으로서, 본 발명은 실시간 데이터 수신장치의 동작 환경에 따라 버퍼링 동작을 적응적으로 조정할 수 있는 실시간 데이터 재생방법 및 장치를 제공하는 것을 그 기술적 과제로 한다.
상기 기술적 과제를 달성하기 위하여, 본 발명에 따른 데이터 통신 시스템의 수신기에서 버퍼 데이터량 조정방법은 상기 수신기의 동작 환경과 상기 버퍼에 저장된 데이터량을 이용하여 상기 버퍼에 저장된 데이터를 사용할 속도를 결정하는 (a) 단계, 및 상기 결정된 속도에 맞추어 상기 버퍼에 저장된 데이터를 사용하는 (b) 단계를 포함한다. 이 때 상기 버퍼에 저장된 데이터는 실시간 데이터이고 상기 수신기는 상기 버퍼에 저장된 데이터를 재생한다.
상기 수신기의 동작 환경은 상기 버퍼에 저장된 데이터의 오버플로/언더플로 빈도에 대한 정보 및 상기 통신 시스템의 네트워크 안정성에 대한 정보 중에서 적 어도 하나를 포함하고, 상기 버퍼에 저장된 데이터를 사용할 속도는 상기 동작 환경에 따라 상기 속도를 정하는 함수를 결정하고 상기 버퍼에 저장된 데이터량을 상기 결정된 입력함수에 대입하여 산출된 값에 의해 정해지는 것을 특징으로 한다.
한편, 상기 결정된 속도는 클럭주파수로 제공되며, 상기 클럭주파수에 따라 상기 수신기는 상기 버퍼에 저장된 데이터를 재생한다.
상기 기술적 과제를 달성하기 위하여, 본 발명에 따른 데이터 통신 시스템의 수신기에서 버퍼 데이터량 조정장치는 수신되는 데이터를 임시로 저장하는 버퍼, 상기 수신기의 동작 환경과 상기 버퍼에 저장된 데이터량을 이용하여 상기 버퍼에 저장된 데이터를 사용할 속도를 결정하는 적응적 속도 결정부, 및 상기 결정된 속도에 맞추어 상기 버퍼에 저장된 데이터를 사용하는 데이터 사용부를 포함한다.
이 때 상기 버퍼에 저장된 데이터는 실시간 데이터이고, 상기 데이터 사용부는 상기 버퍼에 저장된 데이터를 재생한다.
상기 적응적 속도 결정부는 상기 버퍼에 저장된 데이터의 오버플로/언더플로 빈도에 대한 정보 및 상기 통신 시스템의 네트워크 안정성에 대한 정보 중에서 적어도 하나를 포함하는 상기 수신기의 동작 환경에 따라 상기 속도를 정하는 함수를 결정하고, 상기 버퍼에 저장된 데이터량을 상기 결정된 입력함수에 대입하여 속도를 산출하고 이를 상기 데이터 사용부에 제공한다. 한편, 상기 결정된 속도는 클럭주파수로 제공되며, 클럭주파수에 따라 상기 수신기는 상기 버퍼에 저장된 데이터를 재생한다.
상기 기술적 과제를 달성하기 위하여, 본 발명에 따른 실시간 데이터 재생방 법은 실시간으로 수신되는 데이터를 버퍼에 저장하고 상기 버퍼에 저장된 데이터량과 수신기 동작환경을 이용하여 클럭주파수를 결정하고, 상기 결정된 클럭주파수에 해당하는 클럭을 발생시키는 (a) 단계, 및 상기 클럭에 동기해서 상기 버퍼에 저장된 데이터를 재생하는 (b) 단계를 포함한다. 이 때 상기 버퍼에 저장되는 데이터는 MPEG형식의 데이터이고, 상기 (b) 단계는 상기 클럭에 동기해서 상기 버퍼에 저장된 데이터를 디코딩하고 디코딩된 신호를 재생하는 것이 바람직하다.
상기 수신기 동작환경은 상기 버퍼의 오버플로/언더플로가 발생하는 빈도에 대한 정보와 네트워크 안정에 관한 정보 중 적어도 한가지 정보를 포함하며, 상기 (a) 단계는 상기 수신기 동작환경에 의해 클럭 조정함수를 결정하고, 결정된 상기 클럭 조정함수에 상기 버퍼에 저장된 데이터량을 대입하여 클럭주파수를 산출하고 이에 해당하는 클럭을 발생시킨다. 상기 (a) 단계에서 상기 오버플로/언더플로가 발생하는 빈도에 대한 정보에 따라 상기 클럭 조정함수의 차수가 결정되고, 상기 네트워크 안정에 관한 정보에 의해 상기 클럭 조정함수에서 클럭주파수가 일정하게 출력되는 버퍼 데이터량의 범위의 기준값인 하한치와 상한치가 결정된다.
상기 (a) 단계는 오버플로/언더플로가 발생하는 빈도에 대한 정보와 네트워크 안정성에 대한 정보 중 적어도 하나의 정보에 의해 클럭 조정함수를 결정하는 (a1) 단계, 상기 클럭 조정함수에 버퍼 데이터량을 대입하여 클럭주파수를 결정하는 (a2) 단계, 및 상기 결정된 클럭주파수에 해당하는 클럭을 발생시키는 (a3) 단계를 포함한다. 상기 (a3) 단계는 상기 (a2) 단계에서 결정된 클럭주파수를 대표하는 전압을 전압 제어 오실레이터(Voltage Controlled Oscillator)에 입력하여 클 럭을 발생시킬 수 있다.
상기 기술적 과제를 달성하기 위하여, 본 발명에 따른 실시간 데이터 재생장치는 실시간으로 수신되는 데이터를 임시로 저장하는 버퍼, 상기 버퍼에 저장된 데이터량과 수신기 동작환경을 이용하여 클럭주파수를 결정하고 상기 클럭주파수에 해당하는 클럭을 발생시키는 적응적 클럭 동기부, 및 상기 발생된 클럭에 동기해서 상기 버퍼에 저장된 데이터를 재생하는 재생부를 포함한다. 이 때 상기 버퍼에 저장되는 데이터는 MPEG형식의 데이터이고, 상기 재생부는 상기 클럭에 동기해서 상기 버퍼에 저장된 데이터를 MPEG 디코딩 알고리즘에 의해 디코딩하고 디코딩된 신호를 재생하는 것이 바람직하다.
상기 적응적 클럭 동기부는 상기 버퍼의 오버플로/언더플로가 발생하는 빈도에 대한 정보와 네트워크 안정에 관한 정보 중 적어도 한가지 정보를 포함하는 수신기 동작환경을 입력받아 상기 입력받은 수신기 동작환경에 따라 클럭 조정함수를 결정하고, 상기 결정된 상기 클럭 조정함수에 상기 버퍼에 저장된 데이터량을 대입하여 클럭주파수를 결정하고 이에 해당하는 클럭을 발생시킨다.
상기 적응적 클럭 동기부는 상기 오버플로/언더플로가 발생하는 빈도에 대한 정보에 따라 상기 클럭 조정함수의 차수가 결정하고, 상기 네트워크 안정에 관한 정보에 의해 상기 클럭 조정함수에서 클럭주파수가 일정하게 출력되는 버퍼 데이터량의 범위의 기준값인 하한치와 상한치가 결정한다.
상기 적응적 클럭 동기부는 오버플로/언더플로가 발생하는 빈도에 대한 정보와 네트워크 안정성에 대한 정보 중 적어도 하나의 정보에 의해 클럭 조정함수를 결정하는 클럭 정책 관리부, 상기 클럭 정책 관리부에 의해 결정된 클럭 조정함수에 버퍼 데이터량을 대입하여 클럭주파수와 상기 실시간 데이터의 인코딩 주파수와의 비율을 구하는 클럭 조정 배수 결정부, 및 상기 클럭 조정 배수 결정부에 의해 구해진 상기 비율 값을 입력받아 클럭을 발생시키는 클럭 발생부를 포함한다. 상기 클럭 발생부는 전압에 따라 다른 주파수의 클럭을 발생시키는 전압 제어 오실레이터, 및 상기 클럭 조정 배수 결정부에서 입력받은 상기 비율에 해당하는 클럭주파수의 클럭을 상기 전압 제어 오실레이터가 발생시킬 수 있도록 하는 전압을 발생시키는 전압 인가부를 포함한다.
이하에서는 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대해 기술한다.
도 2는 본 발명의 실시예에 따른 실시간 데이터 송수신 시스템의 구성을 보여주는 기능성 블록도이다.
실시간 데이터 송수신 시스템은 크게 실시간 데이터를 송신하는 실시간 송신기(100)와 실시간 데이터를 수신하는 실시간 수신기(200)를 포함한다.
실시간 송신기(100)는 실시간 데이터 소스(110)와 실시간 데이터 소스로부터 받은 실시간 데이터를 전송매체로 전송하는 실시간 데이터 송신부(120)를 포함한다. 실시간 데이터 소스(110)는 동영상 이미지와 오디오 신호를 MPEG-2, MPEG-4, H.264 등과 같은 소정의 방법을 사용하여 인코딩하는 인코더가 이에 해당될 수 있으나, 인코딩된 실시간 데이터를 다른 장치로부터 받는 수신부도 이에 해당될 수 있다. 실시간 데이터를 실시간 데이터 소스(110)로부터 받은 실시간 데이터 송신 부(120)는 전송매체를 통해 실시간 수신기(200)로 실시간 데이터를 전송한다. 전송매체는 인터넷망과 같은 유선매체나 전파 등을 전송하기 위한 무선매체가 될 수 있으며, 이 밖에 적외선(InfraRed; IR) 전송매체 등이 될 수도 있다.
실시간 수신기(200)는 전송매체를 통해 전송된 실시간 데이터를 수신하여 디코딩한 후에 재생한다. 이를 위하여 실시간 수신기(200)는 전송매체를 통해 전송되는 실시간 데이터를 수신하는 실시간 데이터 수신부(210)와 수신된 실시간 데이터를 임시로 저장하는 버퍼(220)와 실시간 데이터의 재생을 위한 클럭을 발생시키는 적응적 클럭 동기부(230) 및 적응적 클럭 동기부(230)에서 발생된 클럭에 맞추어 버퍼(220)에 저장된 실시간 데이터를 디코딩하여 동영상 및 오디오 신호를 재생하는 재생부(240)를 포함한다. 실시간 데이터 수신부(210)는 전송매체를 통해 전송된 실시간 데이터를 수신하는데 위성파 또는 지상파 디지털 방송의 경우에 채널 디코더나 컴퓨터의 네트워크 카드 등이 이에 해당될 수 있다. 실시간 데이터 수신부(210)를 통해 수신된 실시간 데이터는 버퍼(220)에 저장된다. 버퍼(220)는 용량이 충분한 경우에는 주로 언더플로가 문제가 되지만 용량이 부족한 경우에는 오버플로도 문제가 될 수 있다. 재생부(240)는 버퍼에 저장된 실시간 데이터의 형식에 따라 디코딩을 하고 적응적 클럭 동기부(230)가 발생한 클럭에 동기화해서 동영상 및 오디오와 자막 등의 기타 데이터를 재생한다. 즉 재생부(240)는 적응적 클럭 동기부(230)가 발생한 클럭주파수에 맞춰서 버퍼(220)에 저장된 실시간 데이터를 비운다. 적응적 클럭 동기부(230)의 보다 자세한 구조는 도 3을 통해 설명한다.
도 3은 도 2의 적응적 클럭 동기부의 보다 상세한 구성을 보여주는 기능성 블록도이다.
적응적 클럭 동기부(230)는 실시간 수신기(200)의 동작 환경에 따라 클럭 조정함수를 결정하는 클럭 정책 관리부(232)와 클럭 조정함수를 이용하여 버퍼(220)에 저장되어 있는 실시간 데이터의 양에 따라 클럭 조정 배수를 결정하는 클럭 조정 배수 결정부(234)와 클럭 조정 배수와 동기화를 위한 기본 클럭 주파수 값을 곱한 주파수로 클럭을 발생시키는 클럭 발생부(236)를 포함한다.
먼저 발명의 명확함을 위해 용어를 정의한다.
오버플로란 버퍼의 용량인 최대 버퍼값을 넘게 실시간 데이터가 버퍼에 입력됨으로써 최대 버퍼값을 넘는 실시간 데이터를 버리게 되는 현상을 말한다. 오버플로가 발생하는 경우에는 버려진 데이터에 의한 화상의 불연속이나 끊김 현상이 나타날 수 있다.
언더플로란 버퍼에 저장된 실시간 데이터가 재생을 하는 재생 시작치보다 적게 되는 현상을 말한다. 언더플로가 발생하는 경우에는 동영상 재생이 중단되고 버퍼에 저장되는 실시간 데이터의 양이 재생 시작치보다 커졌을 경우부터 다시 재생을 시작한다.
클럭 조정함수란 버퍼에 저장된 데이터의 과부족에 따라 출력할 클럭 주파수를 결정하기 위한 함수를 의미한다. 클럭 조정함수에 대해서는 도 5를 통해 후술한다. 본 발명에 따르면 클럭 조정함수는 오버플로/언더플로 빈도와 같은 실시간 수신기의 동작 환경에 따라 변경될 수 있는데, 클럭 조정함수를 이용함으로써 실시간 수신기는 동작 상태에 따라 적응적으로 버퍼링을 수행할 수 있게 된다.
상한치와 하한치는 클럭이 조정되기 시작하는 버퍼에 저장된 데이터량의 경계지점을 나타내는 용어이다. 본 발명은 상한치와 하한치 개념을 도입함으로써 전송환경에 따라 클럭 조정범위를 적응적으로 바꿀 수 있다.
클럭 조정배수란 실시간 데이터를 재생하기 위한 클럭과 실제로 발생시키는 클럭과의 비율을 의미한다. 클럭 조정배수가 0.8인 경우에는 실시간 데이터를 재생하기 위한 클럭보다 실제 실시간 데이터를 재생시키기 위해 발생시키는 클럭의 주파수가 20% 느리다는 것을 의미한다. 예컨대, MPEG2의 경우에 인코딩은 27MHz의 주파수로 수행되고 이를 재생시키려면 27MHz의 주파수로 디코딩해야 한다. 만일 클럭 조정배수가 0.9인 경우라면 디코딩을 위한 클럭주파수는 27MHz의 0.9배인 24.3MHz가 된다.
버퍼 데이터량은 버퍼에 저장되어 있는 데이터의 양을 나타내는 값을 의미하는데, 이는 실제로 버퍼에 저장된 데이터량을 의미하도록 쓰일 수도 있으나 버퍼 데이터량과 권장되는 기준치와의 차이에 의해 버퍼 잉여량의 의미로 사용될 수도 있다. 버퍼 잉여량이 결정되면 버퍼 잉여량에 따라 클럭 조정배수가 결정된다.
네트워크 안정성에 대한 정보는 버퍼에 저장된 실시간 데이터가 상한치와 하한치의 범위를 벗어나는 정도가 어느 정도인지를 나타내는 값이다. 안정적인 QoS(Quality of Service)가 보장되는 전송매체를 갖는 네트워크의 실시간 수신기의 경우에 실시간 데이터를 계속적으로 재생시키고 있을 때는 버퍼에 저장된 데이터가 상한치와 하한치의 범위를 넘게 되는 정도가 적게 될 것이다. 이러한 경우에는 상한치와 하한치의 범위를 좀더 넓게 하여 클럭 주파수가 조정되는 경우를 가급적 줄 인다. 그렇게 함으로써 보통의 동영상을 감상하는 경우와 마찬가지로 일정한 주파수로 재생되는 동영상을 감상할 수 있게 된다.
클럭 정책 관리부(232)에 버퍼 데이터량과 오버플로/언더플로 정보와 네트워크 안정성 정보 등이 입력된다. 버퍼 데이터량을 통해 현재 저장되어 있는 실시간 데이터가 부족한지 남는지를 판단할 수 있다. 버퍼의 오버플로/언더플로 정보 또한 클럭 조정함수를 결정하기 위한 중요한 자료가 된다. 예를 들면 사용자가 동영상의 특정 부분을 찾기 위해 검색을 여러 번 실시하는 경우에 언더플로가 일정한 시간동안에 자주 발생하게 된다. 이러한 경우에는 버퍼에 쌓이는 실시간 데이터가 재생시작치에 가급적이면 빨리 도달할 수 있도록 클럭 조정함수를 결정해야 한다.
네트워크 안정성에 대한 정보를 통해 클럭 주파수를 조정해야할 범위와 클럭 주파수를 조정하지 않아도 되는 범위를 결정할 수 있다.
클럭 조정 배수 결정부(234) 클럭 정책 관리부(232)에 의해 결정된 클럭 조정함수와 버퍼 데이터량을 이용하여 클럭 조정 배수를 결정한다. 클럭 조정이 불필요한 경우에 클럭 조정 배수는 1이 된다.
클럭 발생부(236)는 클럭 조정 배수와 인코딩 클럭주파수의 곱에 해당하는 주파수의 클럭을 발생시킨다. 발생된 클럭은 실시간 데이터 재생을 위해 재생부(240)에 전달된다.
클럭 재생부(234)를 구현하는 방법은 인코딩 클럭주파수(제1 주파수)보다 훨씬 빠른 클럭을 갖는 제2 주파수를 발생시키는 오실레이터와 제2 주파수의 진동 횟수를 계산하는 덧셈기와 덧셈된 진동횟수가 진동횟수 기준 값을 넘을 때마다 1과 0 을 교대로 출력하는 클럭 발생기로 구성할 수 있다. 예를 들어 인코딩 주파수가 10MHz인 실시간 데이터에 대하여 제2 주파수는 100MHz라고 하자. 진동 횟수 기준 값이 10인 경우라면 클럭 발생기는 100MHz를 발생시키는 오실레이터가 10회 진동할 때마다 1과 0 값을 교대로 바꾸면서 클럭을 발생시킨다. 진동 횟수 기준 값이 9인 경우에는 클럭 발생기는 100/9=11.1MHz의 클럭 주파수를 발생시킨다. 이는 인코딩 주파수보다 약 11% 빠른 주파수이다. 한편 진동 횟수 기준 값이 11인 경우에는 클럭 발생기는 100/11=9.1MHz의 클럭 주파수를 발생시킨다. 이는 인코딩 주파수보다 약 9% 느려진 주파수이다. 진동 횟수 기준 값이 10일 때 클럭 조정배수는 1이 되고 진동 횟수 기준 값이 11일 때 클럭 조정배수는 0.91이 되며 진동 횟수 기준 값이 9일 때 클럭 조정배수는 1.11이 된다. 이에 따라 클럭 조정배수가 결정되면 클럭 조정배수에 따라 계산된 클럭주파수와 가까운 주파수의 클럭이 발생되도록 진동 횟수 기준 값을 조정하는 방법에 의해 클럭 발생부(236)가 발생시키는 클럭의 주파수를 조정할 수 있다.
클럭 재생부(234)는 오실레이터와 가산기 및 클럭 발생기를 사용하여 구현할 수도 있지만, 전압 제어 오실레이터(Voltage Controlled Oscillator; 이하, VCO라 함)와 클럭 조정배수에 따라 VCO에 인가되는 전압을 결정하는 전압 인가 장치를 통해 구현할 수도 있다. VCO는 인가되는 전압의 크기에 따라 다른 주파수의 클럭을 발생시키는데, 클럭 조정배수에 따라 VCO에 인가되어야 할 전압을 발생시키는 전압 인가 장치를 함께 구비함으로써 클럭 재생부(234)는 조정된 클럭주파수를 갖는 클럭을 발생시킬 수 있다. 이를 구현하기 위해 VCO가 인가되는 전압과 발생되는 클 럭주파수와의 관계를 결정한다. 이 관계는 설계된 VCO의 고유한 특성이다. 그리고 전압 인가장치는 특정 클럭 조정배수를 입력받을 때 클럭 조정배수와 인코딩 주파수의 곱이 VCO가 발생시키는 클럭주파수와 일치하는 인가전압을 발생시키도록 구현한다. 이러한 방식으로 구현한 클럭 재생부(234)에 의해서도 클럭 조정배수에 따른 조정된 클럭을 발생시킬 수 있다. 클럭 조정과정은 도 4를 통해 설명한다.
도 4는 본 발명의 실시예에 따른 클럭 조정과정을 보여주는 흐름도이다.
클럭을 발생시키기 위해서 먼저 클럭 조정함수를 초기화한다(s10). 초기화에 의해 클럭 조정함수는 여러 클럭 조정함수들 중 어느 한 함수로 결정된다. 클럭 조정함수에 대해서는 도 5를 통해 후술한다.
클럭 조정함수가 초기화되면 버퍼 잉여량을 계산한다(s20). 버퍼 잉여량은 현재 저장된 데이터량과 가장 바람직한 상태의 버퍼 데이터량의 차이 값으로 계산할 수 있다.
버퍼 잉여량이 계산되면 클럭 조정함수에 버퍼 잉여량을 대입하여 클럭 조정배수를 결정한다(s30). 클럭 조정배수는 발생시킬 클럭주파수와 인코딩 주파수의 비율을 의미한다.
클럭 조정배수를 결정하면 인코딩 주파수와 클럭 조정배수의 곱에 해당하는 클럭주파수를 발생시킨다(s40). 발생된 클럭에 맞추어 실시간 데이터는 디코딩되며 재생된다.
이러한 과정 중에 네트워크 안정성의 변동이 있는지 여부를 판단한다(s50).
네트워크 안정성의 변동이 있는 경우에는 상한치와 하한치를 조정한다(s60). 네트워크 안정성은 QoS가 보장되는 정도를 의미한다. 예를 들면 QoS가 보장되어 버퍼에 저장된 실시간 데이터의 양이 일정하게 유지될 수 있는 경우라면 어떤 요인에 의해 버퍼 데이터량이 일시적으로 줄어들거나 늘어나더라도 오버플로/언더플로가 발생할 가능성은 높지 않다. 이러한 경우에는 클럭주파수를 가급적 조정하지 않고 인코딩 주파수와 동일한 클럭주파수를 이용하도록 하는 것이 바람직하다.
한편 오버플로나 언더플로가 일정한 시간동안 얼마나 자주 발생했는지에 대한 오버플로/언더플로 빈도값을 조사하여 그 값이 기준값을 초과했는지 여부를 판단한다(s70). 기준값을 초과한 경우에는 클럭 조정함수를 변경한다(s80). 오버플로/언더플로가 자주 발생한다는 것은 실시간 수신기의 동작 환경이 변경된다는 것을 의미한다. 예를 들면 오버플로가 자주 발생되는 예는 전송채널은 양호한 상태이지만 스트림으로 전달되는 실시간 데이터의 전송속도가 잘 조절되지 않는 경우를 들 수 있다. 또한 언더플로가 자주 발생하는 것의 예로는 사용자가 동영상의 특정한 부분을 찾기 위해 이곳저곳을 검색하는 경우를 들 수 있다. 이러한 검색의 경우에 있어서는 특히 초기재생을 위해 버퍼링을 해야하는 초기지연시간을 줄이는 것이 중요한데 클럭 조정함수를 변경함으로써 가능하다. 클럭 조정함수를 결정하는 방법은 도 5를 통해 설명한다.
도 5는 본 발명에 따른 적응적 클럭 조정함수의 예들을 보여주는 도면이다.
클럭 조정함수는 여러가지 함수가 가능하지만 각 클럭 조정함수는 실시간 수신기의 동작환경의 특성에 적합하여야 한다. (a)의 경우에 클럭 조정함수의 차수는 1차이고, (b)의 경우에 클럭 조정함수의 차수는 1보다 작은 차수이며, (c)의 경 우에 클럭 조정함수의 차수는 1보다 크다. 한편, (d)의 경우에 클럭 조정함수의 차수는 버퍼 잉여량이 마이너스 값을 가질 때는 1보다 작지만 버퍼 잉여량이 플러스 값을 가질 때는 1보다 크다. 차수가 1보다 큰 함수의 예로는 2차 함수, 3차 함수, 지수함수를 들 수 있으며 차수가 1보다 작은 함수의 예로는 제곱근 함수, 3제곱근 함수, 로그함수 등을 들 수 있다.
먼저 (a)의 그래프를 참조하면, (a)의 클럭조정함수는 버퍼에 저장된 데이터의 양이 너무 많거나 너무 적을 때 클럭주파수를 조정하는데 클럭의 변화가 선형적이면서 연속적으로 변하는 특징을 갖는다. 예를 들면 하한치 이하의 버퍼 잉여량에서 모두 같은 값을 갖는 지연된 클럭 주파수를 사용한다고 하면 버퍼 잉여량이 하한치를 넘을 때 동영상을 재생하는 속도의 급격한 변화가 생길 수 있다. (a)는 이러한 경우를 방지하기 위하여 연속적으로 클럭주파수가 변하도록 클럭 조정함수를 정의한 것의 예이다.
(b)의 그래프를 참조하면, (a)의 그래프와 비교할 때 버퍼 잉여량이 하한치 또는 상한치에서 멀리 떨어져 있을 때 클럭주파수의 조정을 가중시킨다. 예를 들면 실시간 수신기에서 실시간 데이터를 받아 동영상을 재생시킬 때 버퍼가 하한치에 도달할 때까지 클럭주파수가 가급적 많이 지연된 상태로 조정한다. 이러한 경우는 사용자가 동영상의 특정부분을 찾기 위해서 검색을 자주하는 경우에 (a)에 비해서 초기 재생을 위하여 버퍼링하는 시간을 줄일 수 있는 장점이 있다. 또한 오버플로가 자주 발생하는 경우에도 (a)에 비해 버퍼에 저장된 데이터량을 빨리 줄이도록 해서 오버플로의 발생빈도를 줄인다.
(c)의 그래프를 참조하면, 상한치 또는 하한치를 벗어나더라도 가급적 클럭주파수의 조정을 적게 하는 경우를 보여준다. (c)의 클럭 조정함수는 사용자가 검색을 하지 않고 비교적 장시간 동영상을 감상할 때 클럭주파수의 조정을 가급적 적게 하여 동영상의 품질을 높이려고 할 때 사용할 수 있다.
(d)의 그래프를 참조하면, (d)의 클럭 조정함수는 오버플로는 거의 발생하지 않으나 언더플로가 자주 발생하는 경우에 사용될 수 있는 클럭 조정함수를 보여준다. (d)의 클럭 조정함수가 주로 이용될 수 있는 상황은 오버플로가 잘 발생되지 않는 전송매체 환경에서 사용자가 동영상의 특정 부분을 검색하려고 할 때 사용되면 유용하다.
도 6a, 6b는 각각 버퍼 데이터량에 따른 클럭 조정 여부를 보여주는 도면이다.
음영이 있는 부분은 클럭주파수의 조정이 있는 부분이다. 하한치 이하에서는 클럭주파수를 지연시키고 상한치 이상에서는 클럭주파수를 빠르게 한다. 이를 통해 버퍼 데이터량이 가급적 일정하게 유지될 수 있도록 한다. 한편, 상한치와 하한치는 네트워크가 안정적인 경우와 그렇지 않은 경우에 달라질 수 있다. 기본적으로 네트워크가 안정적이어서 QoS가 보장된다면 상한치와 하한치의 간격은 벌어지는 것이 바람직하며, 반대로 네트워크가 불안정하다면 상한치와 하한치의 간격은 좁아지는 것이 바람직하다. 또한 도 6a와 비교하여 도 6b 처럼 상한치와 하한치의 변경 정도를 다르게 할 수 있다. 도 6b의 경우는 전송매체가 혼잡하여 전송지연이 자주 발생하는 경우에 적용될 수 있다. 즉 도 6b의 상한치와 하한치는 도 6a의 경 우와 비교할 때 전송매체가 혼잡하여 버퍼 데이터량이 최대 버퍼값을 넘는 경우가 발생할 가능성이 적고 오히려 재생시작치 밑으로 버퍼 데이량이 떨어질 가능성이 많은 경우에 적당할 수 있다. 따라서 버퍼 데이터량이 조금만 감소하더라도 가급적 클럭을 조금이라도 지연시켜 버퍼 데이터량이 재생 시작치 이하로 떨어져서 화면이 멈추는 일이 벌어지지 않도록 한다. 한편 최대 버퍼값을 초과하여 버퍼 데이터량이 저장될 가능성은 적으므로 상한치 값을 높인다. 이에 따라 버퍼 데이터량이 일부 증가하더라도 클럭주파수를 조정하지는 않는다.
도 7은 실시간 데이터의 검색 모드에서의 버퍼 데이터량의 모습을 보여주는 도면이다.
실제 사용자가 동영상의 특정 부분을 검색하면 기존에 버퍼에 저장된 실시간 데이터는 모두 버려지고 새로 버퍼링을 수행해야 한다. 검색을 통해 동영상의 특정부분을 찾으려고 할 때는 최대한 재생시작까지 걸리는 지연시간을 줄이는 것이 중요하다. 따라서 이러한 경우에는 도 5에서 본다면 (a)나 (c)의 경우보다는 (b)나 (d)의 클럭 조정함수를 이용하는 것이 바람직하다.
도 8은 본 발명에 따른 실시간 데이터 송수신 시스템의 적용예들을 보여주는 도면이다.
적응적 클럭 동기부를 갖는 실시간 데이터 수신기를 포함한 송수신 시스템은 다양한 형태로 구현될 수 있다. (a)에서와 같이 셋톱박스에서 디지털 TV로 무선스트리밍으로 실시간 데이터를 전송할 때 무선매체의 환경에 따라 지연이 발생할 수도 있기 때문에 이 경우에 디지털 텔레비전은 적응적 클럭 동기부를 갖도록 할 수 있다.
(b)에서는 방송국에서 디지털 영상 송출 장치를 통해 실시간 영상을 송출할 때 공중파나 위성파 또는 케이블이라는 전송매체를 통해 영상신호는 셋톱박스를 포함하고 있는 디지털 텔레비전에 수신되고 디지털 텔레비전은 수신된 영상 신호를 재생한다. 이 경우에 공중파, 위성파, 또는 케이블이라는 전송매체에서 지연 등이 발생하는 경우를 대비하여 디지털 텔레비전은 적응적 클럭 동기부를 포함할 수 있다.
(c)에서는 (b)와는 달리 셋톱박스와 디지털 텔레비전이 별도로 분리된 경우를 보여주고 있으며 이 경우에는 (a)와 달리 셋톱 박스 자체가 적응적 클럭 동기부를 포함할 수 있다.
(d)는 인터넷 VOD 서비스 업체가 이더넷을 통해 개인용 컴퓨터에 주문형 비디오 신호를 전송하는 경우를 보여주고 있는데 이 때에도 개인용 컴퓨터는 적응적 클럭 동기부를 포함하여 이더넷 망에서의 지연 등의 효과를 줄일 수 있다.
상세한 설명에서 실시간 데이터 수신장치에서 버퍼 데이터량을 조정하는 것을 기준으로 설명하였으나 본 발명의 기술적 사상은 이에 한정되지는 않으며, 실시간 데이터가 아니더라도 버퍼 데이터량을 조정할 필요가 있는 다른 데이터 통신 장치에도 적용될 수 있다.
이상에서 본 발명에 대하여 상세히 기술하였지만, 본 발명이 속하는 기술 분야에 있어서 통상의 지식을 가진 사람이라면, 첨부된 청구범위에 정의된 본 발명의 정신 및 범위를 벗어나지 않으면서 본 발명을 여러 가지로 변형 또는 변경하여 실 시할 수 있음은 자명하며, 따라서 본 발명의 실시예에 따른 단순한 변경은 본 발명의 기술을 벗어날 수 없을 것이다.
본 발명에 따르면 실시간 데이터를 재생할 때 실시간 수신기는 적응적 클럭 동기부를 가지므로 초기 재생을 위하여 버퍼를 채울 때 필요한 지연을 줄일 수 있다. 또한 본 발명에 네트워크의 상태나 버퍼에 저장된 실시간 데이터의 양 또는 오버플로/언더플로의 발생 빈도 등의 정보를 받아 클럭 조정함수를 적응적으로 변경시킬 수 있다. 클럭 조정함수의 변경이 가능하므로 실시간 수신기의 동작 환경에 따라 적절한 클럭주파수 조정을 할 수 있다.

Claims (22)

  1. 데이터 통신 시스템의 수신기에서 버퍼 데이터량 조정방법으로서,
    상기 수신기의 동작 환경과 상기 버퍼에 저장된 데이터량을 이용하여 상기 버퍼에 저장된 데이터를 사용할 속도를 결정하는 (a) 단계; 및
    상기 결정된 속도에 맞추어 상기 버퍼에 저장된 데이터를 사용하는 (b) 단계를 포함하되,
    상기 수신기의 동작 환경은 상기 버퍼에 저장된 데이터의 오버플로 또는 언더플로 빈도에 대한 정보 및 상기 통신 시스템의 네트워크 안정성에 대한 정보 중에서 적어도 하나를 포함하고, 상기 버퍼에 저장된 데이터를 사용할 속도는 상기 동작 환경에 따라 상기 속도를 정하는 함수를 결정하고 상기 버퍼에 저장된 데이터량을 상기 결정된 입력함수에 대입하여 산출된 값에 의해 정해지는 것을 특징으로 하는 버퍼 데이터량 조정방법
  2. 제1항에 있어서, 상기 버퍼에 저장된 데이터는 실시간 데이터이고, 상기 수신기는 상기 버퍼에 저장된 데이터를 재생하는 것을 특징으로 하는 버퍼 데이터량 조정방법
  3. 삭제
  4. 제1항에 있어서, 상기 결정된 속도는 클럭주파수로 제공되며 상기 클럭주파수에 따라 상기 수신기는 상기 버퍼에 저장된 데이터를 재생하는 것을 특징으로 하는 버퍼 데이터량 조정방법
  5. 데이터 통신 시스템의 수신기에서 버퍼 데이터량 조정장치로서,
    수신되는 데이터를 임시로 저장하는 버퍼;
    상기 수신기의 동작 환경과 상기 버퍼에 저장된 데이터량과 이용하여 상기 버퍼에 저장된 데이터를 사용할 속도를 결정하는 적응적 속도 결정부; 및
    상기 결정된 속도에 맞추어 상기 버퍼에 저장된 데이터를 사용하는 데이터 사용부를 포함하되,
    상기 적응적 속도 결정부는 상기 버퍼에 저장된 데이터의 오버플로 또는 언더플로 빈도에 대한 정보 및 상기 통신 시스템의 네트워크 안정성에 대한 정보 중에서 적어도 하나를 포함하는 상기 수신기의 동작 환경에 따라 상기 속도를 정하는 함수를 결정하고, 상기 버퍼에 저장된 데이터량을 상기 결정된 입력함수에 대입하여 속도를 산출하고 이를 상기 데이터 사용부에 제공하는 것을 특징으로 하는 버퍼 데이터량 조정장치
  6. 제5항에 있어서, 상기 버퍼에 저장된 데이터는 실시간 데이터이고, 상기 데이터 사용부는 상기 버퍼에 저장된 데이터를 재생하는 것을 특징으로 하는 버퍼 데이터량 조정장치
  7. 삭제
  8. 제5항에 있어서, 상기 결정된 속도는 클럭주파수로 제공되며, 클럭주파수에 따라 상기 수신기는 상기 버퍼에 저장된 데이터를 재생하는 것을 특징으로 하는 버퍼 데이터량 조정장치
  9. 실시간으로 수신되는 데이터를 버퍼에 저장하고 상기 버퍼에 저장된 데이터량과 수신기 동작환경을 이용하여 클럭주파수를 결정하고, 상기 클럭주파수에 해당하는 클럭을 발생시키는 (a) 단계; 및
    상기 결정된 클럭에 동기해서 상기 버퍼에 저장된 데이터를 재생하는 (b) 단계를 포함하되,
    상기 수신기 동작환경은 상기 버퍼의 오버플로 또는 언더플로가 발생하는 빈도에 대한 정보와 네트워크 안정에 관한 정보 중 적어도 한가지 정보를 포함하며, 상기 (a) 단계는 상기 수신기 동작환경에 의해 클럭 조정함수를 결정하고, 결정된 상기 클럭 조정함수에 상기 버퍼에 저장된 데이터량을 대입하여 클럭주파수를 산출하고 이에 해당하는 클럭을 발생시키는 것을 특징으로 하는 실시간 데이터 재생방법
  10. 제9항에 있어서, 상기 버퍼에 저장되는 데이터는 MPEG형식의 데이터이고, 상기 (b) 단계는 상기 클럭에 동기해서 상기 버퍼에 저장된 데이터를 디코딩하고 디코딩된 신호를 재생하는 것을 특징으로 하는 실시간 데이터 재생방법
  11. 삭제
  12. 제9항에 있어서, 상기 (a) 단계에서 상기 오버플로 또는 언더플로가 발생하는 빈도에 대한 정보에 따라 상기 클럭 조정함수의 차수가 결정되는 것을 특징으로 하는 실시간 데이터 재생방법
  13. 제9항에 있어서, 상기 (a) 단계에서 상기 네트워크 안정에 관한 정보에 의해 상기 클럭 조정함수에서 클럭주파수가 일정하게 출력되는 버퍼 데이터량의 범위의 기준값인 하한치와 상한치가 결정되는 것을 특징으로 하는 실시간 데이터 재생방법
  14. 제9항에 있어서, 상기 (a) 단계는 오버플로 또는 언더플로가 발생하는 빈도에 대한 정보와 네트워크 안정성에 대한 정보 중 적어도 하나의 정보에 의해 클럭 조정함수를 결정하는 (a1) 단계;
    상기 클럭 조정함수에 버퍼 데이터량을 대입하여 클럭주파수를 결정하는 (a2) 단계; 및
    상기 결정된 클럭주파수에 해당하는 클럭을 발생시키는 (a3) 단계를 포함하는 것을 특징으로 하는 실시간 데이터 재생방법
  15. 제14항에 있어서, 상기 (a3) 단계는 상기 (a2) 단계에서 결정된 클럭주파수 를 대표하는 전압을 전압 제어 오실레이터(Voltage Controlled Oscillator)에 입력하여 클럭을 발생시키는 것을 특징으로 하는 실시간 데이터 재생방법
  16. 실시간으로 수신되는 데이터를 임시로 저장하는 버퍼;
    상기 버퍼에 저장된 데이터량과 수신기 동작환경을 이용하여 클럭주파수를 결정하고 상기 클럭주파수에 해당하는 클럭을 발생시키는 적응적 클럭 동기부; 및
    상기 발생된 클럭에 동기해서 상기 버퍼에 저장된 데이터를 재생하는 재생부를 포함하되,
    상기 적응적 클럭 동기부는 상기 버퍼의 오버플로 또는 언더플로가 발생하는 빈도에 대한 정보와 네트워크 안정에 관한 정보 중 적어도 한가지 정보를 포함하는 수신기 동작환경을 입력받아 상기 입력받은 수신기 동작환경에 따라 클럭 조정함수를 결정하고, 상기 결정된 상기 클럭 조정함수에 상기 버퍼에 저장된 데이터량을 대입하여 클럭주파수를 산출하고 이에 해당하는 클럭을 발생시키는 것을 특징으로 하는 실시간 데이터 재생장치
  17. 제16항에 있어서, 상기 버퍼에 저장되는 데이터는 MPEG형식의 데이터이고, 상기 재생부는 상기 클럭에 동기해서 상기 버퍼에 저장된 데이터를 MPEG 디코딩 알고리즘에 의해 디코딩하고 디코딩된 신호를 재생하는 것을 특징으로 하는 실시간 데이터 재생장치
  18. 삭제
  19. 제16항에 있어서, 상기 적응적 클럭 동기부는 상기 오버플로 또는 언더플로가 발생하는 빈도에 대한 정보에 따라 상기 클럭 조정함수의 차수가 결정하는 것을 특징으로 하는 실시간 데이터 재생장치
  20. 제16항에 있어서, 상기 적응적 클럭 동기부는 상기 네트워크 안정에 관한 정보에 의해 상기 클럭 조정함수에서 클럭주파수가 일정하게 출력되는 버퍼 데이터량의 범위의 기준값인 하한치와 상한치가 결정하는 것을 특징으로 하는 실시간 데이터 재생장치
  21. 제16항에 있어서, 상기 적응적 클럭 동기부는 오버플로 또는 언더플로가 발생하는 빈도에 대한 정보와 네트워크 안정성에 대한 정보 중 적어도 하나의 정보에 의해 클럭 조정함수를 결정하는 클럭 정책 관리부;
    상기 클럭 정책 관리부에 의해 결정된 클럭 조정함수에 버퍼 데이터량을 대입하여 클럭주파수와 상기 실시간 데이터의 인코딩 주파수와의 비율을 구하는 클럭 조정 배수 결정부; 및
    상기 클럭 조정 배수 결정부에 의해 구해진 상기 비율 값을 입력받아 클럭을 발생시키는 클럭 발생부를 포함하는 것을 특징으로 하는 실시간 데이터 재생장치
  22. 제21항에 있어서, 상기 클럭 발생부는 전압에 따라 다른 주파수의 클럭을 발생시키는 전압 제어 오실레이터; 및
    상기 클럭 조정 배수 결정부에서 입력받은 상기 비율에 해당하는 클럭주파수의 클럭을 상기 전압 제어 오실레이터가 발생시킬 수 있도록 하는 전압을 발생시키는 전압 인가부를 포함하는 것을 특징으로 하는 실시간 데이터 재생장치
KR1020030088752A 2003-12-08 2003-12-08 데이터 통신 시스템의 수신기에서 버퍼 데이터량 조정장치및 방법, 적응적 클럭 동기부를 갖는 실시간 데이터재생장치 및 방법 KR101090440B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020030088752A KR101090440B1 (ko) 2003-12-08 2003-12-08 데이터 통신 시스템의 수신기에서 버퍼 데이터량 조정장치및 방법, 적응적 클럭 동기부를 갖는 실시간 데이터재생장치 및 방법
US11/003,351 US7343433B2 (en) 2003-12-08 2004-12-06 Method and apparatus for controlling amount of buffer data in a receiver of a data communication system, and method and apparatus for playing streaming data with adaptive clock synchronization unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030088752A KR101090440B1 (ko) 2003-12-08 2003-12-08 데이터 통신 시스템의 수신기에서 버퍼 데이터량 조정장치및 방법, 적응적 클럭 동기부를 갖는 실시간 데이터재생장치 및 방법

Publications (2)

Publication Number Publication Date
KR20050055530A KR20050055530A (ko) 2005-06-13
KR101090440B1 true KR101090440B1 (ko) 2011-12-06

Family

ID=34675710

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030088752A KR101090440B1 (ko) 2003-12-08 2003-12-08 데이터 통신 시스템의 수신기에서 버퍼 데이터량 조정장치및 방법, 적응적 클럭 동기부를 갖는 실시간 데이터재생장치 및 방법

Country Status (2)

Country Link
US (1) US7343433B2 (ko)
KR (1) KR101090440B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180077379A (ko) * 2016-12-28 2018-07-09 네이버 주식회사 실시간 라이브 환경에서 버퍼 기반 대역폭 측정 및 적응형 데이터 전송을 위한 방법 및 시스템

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1872533B1 (en) 2005-04-22 2019-05-22 Audinate Pty Limited Network, device and method for transporting digital media
WO2007131296A1 (en) * 2006-05-17 2007-11-22 National Ict Australia Limited Redundant media packet streams
US7689847B2 (en) * 2006-06-13 2010-03-30 Via Technologies, Inc. Method for increasing the data processing capability of a computer system
US8094685B2 (en) * 2006-10-04 2012-01-10 Siemens Medical Solutions Usa, Inc. Systems and methods for synchronizing multiple video streams
EP1933223A1 (en) * 2006-12-15 2008-06-18 Agilent Technologies, Inc. Synchronous data reception by means of a local clock
CN100508458C (zh) * 2007-01-10 2009-07-01 杭州华三通信技术有限公司 基于广电网络的以太网数据传输方法及phy芯片
US8438604B2 (en) * 2007-05-08 2013-05-07 At&T Intellectual Property I, Lp System and method of indicating quality of service
CN101731011B (zh) 2007-05-11 2014-05-28 奥迪耐特有限公司 用于设置接收器延迟时间的方法
KR101390192B1 (ko) * 2008-01-17 2014-04-29 삼성전자주식회사 동영상 전송 시스템의 송신 장치 및 수신 장치, 그 버퍼제어 방법
WO2009105838A1 (en) 2008-02-29 2009-09-03 Audinate Pty Ltd Network devices, methods and/or systems for use in a media network
EP2254342A1 (de) * 2009-05-18 2010-11-24 Albis Technologies AG Verfahren zur Audio-/Videosynchronisation
US8379659B2 (en) * 2010-03-29 2013-02-19 Intel Corporation Performance and traffic aware heterogeneous interconnection network
US9772958B2 (en) * 2011-10-31 2017-09-26 Hewlett Packard Enterprise Development Lp Methods and apparatus to control generation of memory access requests
US9986159B2 (en) * 2013-04-05 2018-05-29 Nvidia Corporation Technique for reducing the power consumption for a video encoder engine
US9766686B2 (en) * 2014-01-14 2017-09-19 Cisco Technology, Inc. Dynamically adjusting data processing speed based on buffer utilization

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11112982A (ja) * 1997-10-08 1999-04-23 Fujitsu Ltd Mpegデータ受信装置
US20030133446A1 (en) * 2002-01-04 2003-07-17 Schoenblum Joel W. Transmitting streams over asynchronous networks

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5473385A (en) * 1994-06-07 1995-12-05 Tv/Com Technologies, Inc. Clock correction in a video data decoder using video synchronization signals
FR2741763B1 (fr) * 1995-11-23 1998-01-23 Jean Louis Simon Systeme de regulation de trains d'information pour commutateur paquet
US5787259A (en) * 1996-03-29 1998-07-28 Microsoft Corporation Digital interconnects of a PC with consumer electronics devices
US5944801A (en) * 1997-08-05 1999-08-31 Advanced Micro Devices, Inc. Isochronous buffers for MMx-equipped microprocessors
US6061768A (en) * 1997-12-18 2000-05-09 Advanced Micro Devices, Inc. Apparatus and method in a network interface device for storing tracking information indicating stored data status between contending memory controllers
US6233226B1 (en) * 1998-12-14 2001-05-15 Verizon Laboratories Inc. System and method for analyzing and transmitting video over a switched network
JP3506960B2 (ja) 1999-08-03 2004-03-15 シャープ株式会社 パケット処理装置及びパケット処理プログラムを記録した記憶媒体
JP3465227B2 (ja) * 2000-01-26 2003-11-10 日本電気エンジニアリング株式会社 電話端末装置
US7460629B2 (en) * 2001-06-29 2008-12-02 Agere Systems Inc. Method and apparatus for frame-based buffer control in a communication system
US6757292B2 (en) * 2001-07-11 2004-06-29 Overture Networks, Inc. Automatic adjustment of buffer depth for the correction of packet delay variation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11112982A (ja) * 1997-10-08 1999-04-23 Fujitsu Ltd Mpegデータ受信装置
US20030133446A1 (en) * 2002-01-04 2003-07-17 Schoenblum Joel W. Transmitting streams over asynchronous networks

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180077379A (ko) * 2016-12-28 2018-07-09 네이버 주식회사 실시간 라이브 환경에서 버퍼 기반 대역폭 측정 및 적응형 데이터 전송을 위한 방법 및 시스템
KR101937247B1 (ko) * 2016-12-28 2019-01-14 네이버 주식회사 실시간 라이브 환경에서 버퍼 기반 대역폭 측정 및 적응형 데이터 전송을 위한 방법 및 시스템
US10594583B2 (en) 2016-12-28 2020-03-17 Naver Corporation Bandwidth estimation based on buffer and adaptive bitrate publish in real-time live environment

Also Published As

Publication number Publication date
KR20050055530A (ko) 2005-06-13
US7343433B2 (en) 2008-03-11
US20050138459A1 (en) 2005-06-23

Similar Documents

Publication Publication Date Title
US10623785B2 (en) Streaming manifest quality control
KR101090440B1 (ko) 데이터 통신 시스템의 수신기에서 버퍼 데이터량 조정장치및 방법, 적응적 클럭 동기부를 갖는 실시간 데이터재생장치 및 방법
KR100629158B1 (ko) 스트리밍된 데이터를 버퍼링하기 위한 방법 및 시스템
US7490342B2 (en) Content provisioning system and method
JP4729570B2 (ja) トリックモードおよび速度移行
KR101106445B1 (ko) 동적 비트 레이트 인코딩의 제공시 사용하는 장치 및 방법과 무선 멀티 미디어 시스템
US8467457B2 (en) System and a method for controlling one or more signal sequences characteristics
US20060140221A1 (en) Reproduction apparatus and decoding control method
JP2006050604A (ja) Avデータ受信時のバッファ量をコンテンツ属性によって弾力的に調節する方法及び装置
US7627685B2 (en) System and method for controlling transport rate of real time streaming service
WO2008076537A1 (en) Method and system for providing adaptive trick play control of streaming digital video
US10063404B2 (en) Apparatus, systems and methods for monitoring the transmission of media content events
Chou Streaming media on demand and live broadcast
JP4561240B2 (ja) データ処理装置およびデータ処理方法並びにデータ送受信システム
JP4212404B2 (ja) ストリーム受信機のシステムクロック制御装置及びシステムクロック制御方法
JP5505591B2 (ja) 動画像配信システム、動画像配信装置および動画像配信方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee