KR101615296B1 - 내포된 클럭 복원 - Google Patents

내포된 클럭 복원 Download PDF

Info

Publication number
KR101615296B1
KR101615296B1 KR1020117026070A KR20117026070A KR101615296B1 KR 101615296 B1 KR101615296 B1 KR 101615296B1 KR 1020117026070 A KR1020117026070 A KR 1020117026070A KR 20117026070 A KR20117026070 A KR 20117026070A KR 101615296 B1 KR101615296 B1 KR 101615296B1
Authority
KR
South Korea
Prior art keywords
rate
source
logical channel
data
data stream
Prior art date
Application number
KR1020117026070A
Other languages
English (en)
Other versions
KR20120004503A (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 에이티아이 테크놀로지스 유엘씨
Publication of KR20120004503A publication Critical patent/KR20120004503A/ko
Application granted granted Critical
Publication of KR101615296B1 publication Critical patent/KR101615296B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0262Arrangements for detecting the data rate of an incoming signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • G09G5/008Clock recovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Communication Control (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Multimedia (AREA)
  • Television Systems (AREA)

Abstract

소스 디바이스와 싱크 디바이스를 동기화시키기 위한 방법 및 시스템이 개시된다. 싱크 디바이스는 싱크 디바이스가 소스 디바이스에 직접적으로 연결되지 않는 경우에도 소스 데이터 속도를 효율적으로 결정할 수 있다. 소스 디바이스로부터 싱크 디바이스로 소스 데이터 스트림을 전송하는 방법은, 상기 소스 디바이스로부터 상기 싱크 디바이스로의 논리 채널을 형성하는 단계를 포함하며, 상기 논리 채널은 소스 데이터 스트림, 그리고 하나 이상의 속도 파라미터들을 운반한다. 속도 파라미터들은 상기 소스 데이터 스트림의 데이터 속도를 상기 논리 채널의 데이터 속도에 관련시킨다. 싱크 디바이스가 소스 데이터 스트림의 데이터 속도를 복원하는 방법은, 수신된 데이터 스트림에서 논리 채널을 검출하는 단계와, 상기 논리 채널은 상기 소스 데이터 스트림을 운반하며, 수신된 상기 데이터 스트림으로부터 하나 이상의 속도 파라미터들을 복원하는 단계와, 상기 논리 채널의 데이터 속도를 결정하는 단계와 그리고 상기 논리 채널의 데이터 속도 및 상기 하나 이상의 속도 파라미터들에 기초하여 상기 소스 데이터 스트림의 데이터 속도를 결정하는 단계를 포함한다. 대응하는 시스템 및 컴퓨터 프로그램 제품이 또한 설명된다.

Description

내포된 클럭 복원{EMBEDDED CLOCK RECOVERY}
일반적으로, 본 발명은 소스 디바이스와 싱크 디바이스를 동기화시키는 것에 관한 발명이다.
송신기와 수신기 사이의 클럭 동기화는 데이터 통신에서 매우 중요한 요소이다. 종종, 클럭 동기화는, 송신기와 수신기를 연결하는 물리적 링크를 통해 데이터를 전송하는데 이용되는 클럭 주파수를 참조한다. 하지만, 몇몇 데이터 통신 어플리케이션에서는 물리적 링크의 클럭 주파수가 아닌 소정의 클럭 주파수를 수신기가 결정할 필요가 있다. 예를 들어, 텔레비전 디스플레이와 같은 수신기는, DVD 디코더와 같은 데이터 소스가 데이터 스트림을 출력하는 클럭 주파수를 결정하도록 요구될 수도 있다. 오리지널 데이터가 송신기로 공급되는 클럭 속도(clock rate)를 수신기 측에서 요구하는 데이터 스트림들은, 등시성(isochronous) 데이터 스트림이라 지칭된다.
등시성 데이터 스트림의 전송을 위한 공지된 여러 방법들이 존재한다. 통상적인 방법 중 하나는, 소스 디바이스가 하나 이상의 파라미터들을 싱크 디바이스로 전송할 것을 요구하는바, 싱크 디바이스는 소스 데이터 속도를 링크 데이터 속도에 관련시킨다. 하지만, 링크 데이터 속도에 따라 소스측과 싱크측에서 링크 데이터 속도들이 다른 경우에는 불일치(incompatibilities)를 야기할 수 있다. 통상적인 방법들 중 다른 하나는 싱크 디바이스에서 버퍼를 사용하는 것인바, 클럭 속도를 결정하기 위해서 버퍼의 깊이(depth of the buffer)가 싱크에 의해 이용된다. 하지만, 버퍼에 의존하는 것은 다양한 지연들과 값비싼 버퍼 요건들을 야기한다. 또 다른 통상적인 방법은 임의의 중간 디바이스를 필요로 하는바, 상기 중간 디바이스는 중간 디바이스를 들어오고 나가는(incoming and outgoing) 링크 속도들의 데이터 속도에 기초하여 소스 디바이스에 의해 전송된 속도 파라미터들(rate parameters)을 재생성한다. 하지만, 속도 파라미터들을 재생성하기 위하여 중간 디바이스를 이용하는 것은, 복잡도를 증가시키며 그리고 이러한 디바이스로 인해 비용이 추가되는 단점이 있다.
따라서, 싱크 디바이스가 소스 데이터 스트림의 클럭 속도를 복원(recover)할 수 있는 개선된 방법 및 시스템이 요구되고 있다. 좀더 상세하게는, 등시성 데이터 스트림의 전송 동안에 소스 디바이스와 싱크 디바이스를 동기화시키기 위한 개선된 방법이 요구되고 있다.
소스 디바이스와 싱크 디바이스를 동기화시키기 위한 장치 및 방법이 개시되는바, 본 발명에 따른 싱크 디바이스는 싱크 디바이스가 소스 디바이스에 직접 접속되지 않은 경우에도 소스 데이터 속도를 효과적으로 결정할 수 있다. 소스 디바이스로부터 싱크 디바이스로 소스 데이터 스트림을 전송하기 위한 방법은, 소스 디바이스로부터 싱크 디바이스로의 논리 채널(logical channel)을 형성하는 단계를 포함한다. 논리 채널은 소스 데이터 스트림과 하나 이상의 속도 파라미터들을 운반하도록 구성된다. 속도 파라미터들은 소스 데이터 스트림의 데이터 속도를 논리 채널의 데이터 속도에 관련시킨다.
싱크 디바이스가 소스 데이터 속도를 복원시키기 위한 방법은, 수신된 데이터 스트림에서 논리 채널을 검출하는 단계, 상기 논리 채널은 소스 데이터 스트림을 포함하며, 수신된 상기 데이터 스트림으로부터 하나 이상의 속도 파라미터들을 복원하는 단계, 논리 채널의 데이터 속도를 결정하는 단계, 그리고 상기 논리 채널의 데이터 속도와 상기 하나 이상의 속도 파라미터들에 기초하여 상기 소스 데이터 스트림의 데이터 속도를 결정하는 단계를 포함한다.
싱크 디바이스가 소스 데이터 속도를 결정할 수 있게 하는 데이터 전송 시스템이 개시되는바, 상기 데이터 전송 시스템은 소스 디바이스 및 상기 소스 디바이스에 직접적으로 혹은 간접적으로 접속된 싱크 디바이스를 포함한다. 소스 디바이스는 소스 디바이스로부터 싱크 디바이스로의 논리 채널을 형성하도록 구성되며, 상기 논리 채널은 (i) 소스 데이터 스트림, 그리고 (ii) 하나 이상의 속도 파라미터들을 운반하도록 구성되며, 그리고 전송 링크를 통해 상기 논리 채널을 전송한다. 속도 파라미터들은 소스 데이터 스트림의 데이터 속도를 논리 채널의 데이터 속도에 관련시킨다. 싱크 디바이스는, 수신된 데이터 스트림에서 논리 채널을 검출하고, 상기 수신된 데이터 스트림으로부터 하나 이상의 속도 파라미터들을 복원하고, 논리 채널의 데이터 속도를 결정하고, 그리고 논리 채널의 데이터 속도와 상기 하나 이상의 속도 파라미터들에 기초하여 상기 소스 데이터 스트림의 데이터 속도를 결정하도록 구성된다.
본 발명의 다양한 실시예들의 구성 및 동작 뿐만 아니라 본 발명의 다른 실시예들, 피처들 및 장점들은 첨부된 도면들을 참조하여 좀더 상세히 후술될 것이다.
본 명세서에 통합되며 본 명세서의 일부를 구성하는 첨부된 도면들은 본 발명의 실시예들을 예시하며, 그리고 전술한 바와 같은 일반적인 서술들 및 실시예들에 대한 후술될 상세한 설명들과 함께 본 발명의 원리들을 설명하는 역할을 수행한다.
도1은 본 발명의 일실시예에 따른 소스 디바이스와 싱크 디바이스를 포함하는 시스템을 도시한다.
도2는 발명의 일실시예에 따라 소스 디바이스, 중간 디바이스, 및 다수의 싱크 디바이스를 포함하는 시스템을 도시한다.
도3은 본 발명의 일실시예에 따른 소스 디바이스를 도시한다.
도4는 본 발명의 일실시예에 따른 싱크 디바이스를 도시한다.
도5는 본 발명의 일실시예에 따라 소스 디바이스에서 구현되는 프로세스의 단계들을 도시한 순서도이다.
도6은 본 발명의 일실시예에 따라 싱크 디바이스에서 구현되는 프로세스의 단계들을 도시한 순서도이다.
본 발명의 일실시예에 따르면 싱크 디바이스측에서 소스 클럭 속도의 효과적인 복원이 가능하다. 비록, 특정 어플리케이션들에 대한 예시적인 실시예들로 본 발명이 서술되고 있지만, 본 발명은 이에 한정되지 않음을 유의해야 한다. 본 명세서에서 제공되는 가르침을 이해할 수 있는 해당 기술분야의 당업자라면, 본 발명의 기술적 사상의 범위 내에 있는 추가적인 변형예들, 응용예들 및 실시예들을 능히 인식할 수 있을 것이며 그리고 본 발명이 유용하게 이용될 수 있는 다른 분야들을 인식할 수 있을 것이다.
본 발명의 실시예들은, 임의의 컴퓨터 시스템, 컴퓨팅 디바이스, 엔터테인먼트 시스템, 매체 시스템(media system), 게임 시스템, 혹은 하나 이상의 전송 링크들이 소스 디바이스와 싱크 디바이스를 접속하는 임의의 시스템에서 이용될 수 있다. 본 발명은, 상기 시스템이 등시성 데이터 스트림을 포함하는 경우에 특히 유용하다.
등시성 데이터 스트림은, 전송된 데이터가 생성되었던 그 클럭 주파수를 수신기(즉, 싱크 디바이스)가 결정할 수 있을 것을 요구한다. 압축되지 않은(uncompressed) 오디오 및 비디오 데이터 스트림들이 등시성 데이터 스트림의 일례이다. 예를 들어, 압축되지 않은 오디오 및 비디오 스트림을 DVD 플레이어로부터 수신하는 평판 텔레비전 디스플레이는, DVD 플레이어가 상기 데이터를 스트리밍했던 속도를 요구할 것인바, 이는 수신된 데이터 스트림들을 디스플레이에 적절히 재현하기 위한 것이다.
DisplayPort, High Definition Multimedia Interface (HDMI), Digital Visual Interface (DVI) 등등의 산업 표준들은, 소스 디바이스와 하나 이상의 싱크 디바이스들을 연결하기 위한 인터페이스들을 특정한다. 예를 들어, DisplayPort 는 소스 데이터에 적용된 클럭 주파수를 싱크 디바이스가 복원할 수 있게 하는 방법을 특정한다.
DisplayPort 1.1 에서는, 소스 디바이스가 M 파라미터와 N 파라미터를 계산하는바, 이는 소스 데이터 속도와 링크 속도에 관한 것이며, 계산된 M 파라미터와 N 파라미터는 싱크 디바이스로 전송된다. 싱크 디바이스는 소스 디바이스에 의해서 전송된 M 및 N 파라미터들을 복구하며(retrieve) 그리고, 인커밍 링크 속도를 결정함에 의해서, 상기 싱크 디바이스는 소스 디바이스에서 이용되었던 소스 데이터 속도를 결정할 수 있다. 소스 디바이스가 싱크 디바이스에 직접 접속된 경우에는 DisplayPort 1.1 에서 정의된 상기 방법이 적절할 수도 있지만, 데이터 스트림이 싱크 디바이스에 도달하기 이전에 다수의 링크들을 경유하는 경우에는 상기 방법이 오동작할 것이다. 예를 들어, 소스 데이터 스트림이 다수의 링크를 경유하는 경우, 소스에서의 링크 속도(link rate)는 싱크에서의 링크 속도와 동일하지 않을 수 있다. 본 발명에 따르면, 싱크 디바이스가 소스 디바이스에 직접 혹은 간접 접속되었는지에 상관없이, 싱크 디바이스가 소스 데이터 속도를 결정하는 것이 가능하다. 본 발명은 한쌍의 내장(embedded) 파라미터들을 제공함으로써, 소스 속도(source rate)의 복원을 더 빠르게 하며 그리고 단순화시킬 수 있다. 일실시예에 따르면, 견실하게 검출가능한(robustly detectable) 데이터 채널에는 양호하게 조절된 속도(well regulated rate)가 제공되는바, 이는 소스로부터 싱크에게로 기준 속도(reference rate)를 전송하기 위한 것이다. 또한, 상기 데이터 채널에 관련하여 데이터 채널에 내장된 데이터의 속도에 대한 안정적이며 정확한 측정이 전송된다.
일반적으로, 본 발명에서는 수신된 데이터 스트림에 내장된 데이터를 파스(parse)할 필요가 없어진다. 내장된 데이터를 파스하는 것은 많은 단점들을 야기할 수 있다. 예를 들면, 비디오 데이터는 데이터 전송이 없는 공백 간격(blank interval)을 갖는바, 따라서 싱크 디바이스는 액티브 간격을 단지 주시(look at)함에 의해서 상기 속도를 어떻게 재구성할지를 결정해야만 한다. 예를 들면, 수직 블랭킹 영역(vertical blanking region)에서 비디오 데이터의 속도 변화를 추적하지 못할 수도 있다. 또한, 비디오 스트림에 내장된 오디오 데이터는 일반적으로 버스트하며(busty)(예컨대, 액티브 비디오 데이터에 의해서 주기적으로 블로킹되는 그 전송 때문에) 그리고 상대적으로 낮은 속도로 싱크에 도달하는바, 이는 속도 추적을 어렵게 만들며 그리고 상대적으로 긴 록 시간(lock times)을 초래할 수 있다. 이러한 점은, 싱크가 오디오 데이터 속도에 록킹하려 시도할 때에 매우 긴 턴-온 지연(turn-on delay) 및/또는 왜곡된 재생(distorted playback)을 유발할 수 있다. 또한, 이러한 점은, 싱크의 속도 복원 로직이 오디오 데이터의 버스트들을 추적하는 경우에 신호 왜곡을 잠정적으로 유발할 수도 있다.
또한, 통상적인 방법들은 중간(intermediate) 디바이스들로 하여금 M 및 N 파라미터들을 갱신하게 하며 그리고 입력 및 출력 인터페이스 링크 속도에 따라 인커밍 링크 속도와 아웃고잉 링크 속도 사이에서 몇몇 스케일링 팩터를 계산하게 한다. 하지만, 중간 디바이스들로 하여금 이러한 기능들을 수행하게 하는 것은 복잡도와 비용을 증가시킨다. 다른 방법은, 스트림 싱크 디바이스로 하여금 오디오 및/또는 비디오 데이터를 가령, 선입선출(FIFO) 버퍼와 같은 버퍼 내에 버퍼링하게 한다. 이후, 상기 스트림 싱크 디바이스는 버퍼 레벨을 모니터링하며 그리고 복원된 클럭 속도를 증가 및/또는 감소시키는데에 상기 버퍼 레벨을 이용한다. 버퍼 레벨이 증가하는 경우에는, 버퍼 드레인 속도(buffer drain rate)가 증가하도록 클럭 속도가 증가한다. 버퍼 레벨이 감소하는 경우에는, 상기 버퍼 레벨이 증가하도록 클럭 속도가 감소한다. 이러한 접근법은, 가령, 모니터들 사이에서의 오디오 페이즈 오정렬(audio phase misalignment), 오디오 클럭의 증가/감소로 인한 오디오 신호 왜곡, 오디오/비디오 클럭에 대한 느린(예컨대, 수 초 단위) 신호 록 시간들(signal lock times) 및 상대적으로 고가인 버퍼 요건들과 같은 문제점들을 야기할 수 있다.
도1은 본 발명의 일실시예에 따른 시스템을 도시한다. 시스템(100)은 소스 디바이스(101), 싱크 디바이스(102), 메인 링크(110), 보조 링크(auxiliary link)(112)를 포함한다. 소스 디바이스(101)는 예컨대, DVD 디코더, CD 플레이어, 디지털 카메라, 혹은 MP3 플레이어 등과 같은 오디오 및/또는 비디오 스트리밍 디바이스가 될 수 있다. 또한, 소스 디바이스(101)는 등시성 데이터를 생성하는 컴퓨터 혹은 다른 컴퓨팅 디바이스가 될 수도 있다. 소스 디바이스는 소스 데이터의 스트림을 생성 및/또는 수신하는 기능 그리고 소스 데이터를 직접 혹은 하나 이상의 중간 디바이스들(브랜치 디바이스 : branch device)을 통해 싱크 디바이스로 전송하는 기능을 포함한다. 또한, 소스 디바이스(101)는 필요하다면, 전송 이전에 소스 데이터를 프로세싱하는 기능을 포함할 수도 있다. 도3은 본 발명의 일실시예에 따른 소스 디바이스를 좀더 상세히 예시한 도면이다.
싱크 디바이스(102)는 예컨대, 텔레비전 디스플레이, 컴퓨터 디스플레이 혹은 오디오 스피커 시스템 등이 될 수 있다. 싱크 디바이스(102)는 또한, 오디오 및/또는 비디오 스트림들이 디스플레이 혹은 스피커 시스템과 같은 재생 디바이스로 전송되기 전에 이러한 스트림들에 대한 다양한 프로세싱 기능을 수행할 수 있는 오디오 혹은 비디오 수신기와 같은 중간 디바이스가 될 수도 있다. 본 발명에서 싱크 디바이스(102)는, 소스 데이터 스트림의 재생 및/또는 소스 데이터 스트림에 대한 후속 프로세싱 등을 위한 이유로, 소스 데이터 스트림 및 관련된 소스 데이터 속도를 필요로 하는 디바이스를 나타낸다. 싱크 디바이스(102)는 소스 디바이스(101)로부터 소스 데이터 스트림을 수신하고, 그리고 소스 데이터의 클럭 속도(즉, 소스 데이터 속도)를 복원하는 기능을 포함한다. 도4는 본 발명의 일실시예에 따른 싱크 디바이스를 좀더 상세히 예시한 도면이다.
메인 링크(110)는 소스 디바이스(101)와 싱크 디바이스(102)를 접속한다. 메인 링크(110)는 소스 디바이스(101)와 싱크 디바이스(102) 사이에서 데이터 및 제어 정보가 흐를 수 있는 전송 링크(transmission link)이다. 메인 링크(110)는 가령, 소스 디바이스(101)와 싱크 디바이스(102) 사이의 유선 혹은 무선 연결들과 같은 하나 이상의 물리적 전송 매체를 포함할 수 있다. 메인 링크(110)를 구성하는 다수의 물리적 링크들이 데이터 통신에 대해 투과성(transparent)이 될 수 있도록, 소스 디바이스(101)의 송신기와 싱크 디바이스(102)의 수신기는 메인 링크를 통한 전송을 조정할 수 있다. 예를 들어, 전송중인 데이터는 심볼 레벨(symbol level)에서 여러 개의 물리적 링크들을 통해 분산될 수도 있는바, 각각의 심볼로부터 동일한 비트수가 각각의 이용가능한 물리적 링크들을 통해 전송될 수 있다.
데이터는 패킷-기반의 형식으로 메인 링크(110)를 통해 전송되는 것이 바람직하다. 패킷은 소정 분량의 데이터를 캡슐화하며(encapsulate) 그리고 소스 디바이스(101)와 싱크 디바이스(102) 양측이 모두 알고 있는 포맷을 갖는다. 예를 들어, 패킷은 헤더부와 데이터부를 포함할 수 있다. 헤더부는 데이터부에 있는 데이터의 유형, 소스 디바이스의 식별자, 싱크 디바이스의 식별자 등등과 같은 제어 정보를 포함한다.
본 발명의 몇몇 실시예들은 소스 디바이스(101)와 싱크 디바이스(102) 사이에서 보조 링크(112)를 포함할 수 있다. 보조 링크(112)는 예컨대, 소스 디바이스(101)와 싱크 디바이스(102) 사이에서 제어 정보를 양-방향 전송하는데 이용될 수 있다. 일실시예에서, 보조 링크(112)는 싱크 디바이스(102)에 의해 이용되어 최대 수신 속도와 같은 싱크 디바이스의 데이터 수신 용량을 소스 디바이스(101)에게 알려줄 수 있는바, 따라서 소스 디바이스(101)는 특정된 상기 속도를 초과하지 않도록 자신의 송신기를 설정할 수 있다. 몇몇 실시예에서는, 부차적인(secondary) 데이터 및 제어 정보가 별도의 보조 링크(auxiliary link)(112) 대신에 메인 링크(110)를 통하여 전송될 수도 있다.
가상 채널(virtual channel)(120)은 메인 링크(110)를 통해 데이터 스트림을 운반하는 논리 채널(logical channel)이다. 가상 채널(120)은 메인 링크(110) 상에 논리적으로 오버레이되며, 그리고 메인 링크(110)의 개별적인 하나 이상의 물리적 링크들을 이용할 수 있다. 가령, 120과 같은 하나 이상의 가상 채널들("논리 채널들" 이라고 지칭되기도 함)이 메인 링크(110) 상에 개시될 수도 있다. 가상 채널에 속한 데이터는 그 가상 채널에서 데이터를 운반하는 각각의 패킷의 헤더부에 포함된 식별자들에 기초하여 식별될 수 있다. 예를 들어, 헤더부는 가상 채널을 고유하게 식별해주는 채널-식별자를 포함할 수도 있다.
본 발명의 몇몇 실시예에서, 가상 채널(120)은 소스 디바이스(101)로부터 싱크 디바이스(102)로 등시성 데이터 스트림을 운반하는데 이용될 수 있다. 예를 들면, DVD 플레이어로부터 비디오 데이터 스트림을 운반하는데 하나의 가상 채널이 이용될 수 있으며, 그리고 다른 하나의 가상 채널은 관련된 오디오 스트림을 운반할 수 있다. 대안적으로는, 동일한 가상 채널이 오디오와 비디오 둘다를 운반할 수도 있다. 가령, 120과 같은 가상 채널들은 등시성 데이터 스트림을 포함하는 동시에 발생하는 다수의 데이터 스트림들을 위해서, 메인 링크(110)의 전체 대역폭이 이용되게 할 수 있다.
본 발명의 일실시예에서, 소스 디바이스(101), 싱크 디바이스(102), 메인 링크(110), 보조 링크(112), 그리고 가상 채널(120)은 가령, DisplayPort 혹은 그의 변형들 중 하나와 같은 공지된 표준에 따라 동작한다. 예를 들어, DisplayPort 는, 메인 링크(110)는 소스 디바이스(101)로부터 싱크 디바이스(102)로의 단방향이며, 그리고 메인 링크(110)는 1, 2 혹은 4개의 물리적 링크들을 포함할 수 있다고 규정한다. DisplayPort 사양서에 따르면, 보조 링크(112)는 싱크 디바이스(102)에 의해서 핸들링될 수 있는 최대 링크 속도 및 최대 채널 속도와 같은 정보를 포함하는 부차적인 정보(secondary information)의 양방향 교환을 위해 이용될 수 있다. 다른 실시예들에서, 시스템(100)은 High Definition Multimedia Interface (HDMI), Digital Visual Interface (DVI), Video Graphics Array (VGA) 혹은 그 변형들, 및 Low Voltage Differential Signaling (LVDS) 혹은 이와 유사한 데이터 전송 표준들과 같은 공지된 또 다른 표준에 따라 동작하는 메인 링크(110)를 가질 수도 있다.
도2는 본 발명의 일실시예에 따른 다른 시스템(200)을 도시한다. 시스템(200)은 소스 디바이스(201), 다수의 싱크 디바이스들(202, 203), 및 브랜치 디바이스(204)를 포함한다. 소스 디바이스(201)와 싱크 디바이스들(202, 203)은 도1에 관련하여 앞서 설명된 것과 동일할 수 있다. 브랜치 디바이스(204)는, 인커밍 데이터 스트림을 입력으로 채택하고 그리고 하나 이상의 싱크 디바이스들에게 데이터 스트림을 출력하는 중간 디바이스이다.
시스템(200)에 대응하는 시스템의 일례로는 멀티채널 오디오 스피커 시스템을 들 수 있는바, 여기서, 오디오 리시버 브랜치 디바이스는 소스 디바이스(예컨대, DVD 플레이어)로부터 입력 오디오 스트림을 수신하고 그리고 오디오 및 비디오를 개별 싱크 디바이스들(예컨대, 각각의 오디오 채널에 대한 개별 스피커들, 그리고 비디오를 위한 텔레비전 디스플레이)에게 분배한다. 또 다른 일례는, 하나의 소스 디바이스(예컨대, 컴퓨터)로부터 출력되는 비디오를 여러 개의 싱크 디바이스들(예컨대, 디스플레이 디바이스들)에게 분배할 수 있는 비디오 분배 시스템이 될 수 있다.
시스템(200)은 또한 DisplayPort 표준 혹은 이것의 하나 이상의 변형예들을 따를 수 있다. 따라서, 메인 링크(210, 211, 212)는 등시성 데이터 스트림의 전송에 이용될 수 있는 단방향 링크가 될 수 있다. 각각의 등시성 데이터 스트림은 예를 들면, 가상 채널 내에서 전송될 수 있다. 예를 들어, 소스 디바이스(201)에서 생성된 비디오 스트림과 같은 등시성 데이터 스트림은 가상 채널(220)을 통해 소스 디바이스(201)로부터 브랜치 디바이스(204)로 전송될 수 있다. 이후, 브랜치 디바이스(204)는 비디오 스트림을 싱크 디바이스들(202, 203)에게 분배하는데, 이들은 디스플레이 모니터가 될 수 있다. 브랜치 디바이스(204)로부터 각각의 싱크 디바이스로의 비디오 스트림은 가상 채널을 통해 전송된다. 메인 링크들(201, 211, 212)의 링크 속도들은 각각 다를 수 있다,
시스템들(100, 200 등등)에 대응하여, 본 발명의 설명은 여러개의 클럭 주파수들이 구별될 것을 요구한다. 본 명세서에서 사용된 "심볼(symbol)"은 "데이터 심볼(data symbol)" 혹은 "제어 심볼(control symbol)"을 지칭할 수 있다. 데이터 심볼은 전송될 데이터이며, 이는 소스 디바이스 및 싱크 디바이스가 알고 있는 프로토콜에 따라 인코딩된다. 데이터 심볼은 디스플레이되는 비디오 데이터와 같은 액티브 데이터를 포함할 수 있을 뿐만 아니라 공백 간격 데이터(blanking interval data)도 포함할 수 있다. 제어 심볼들은 데이터 심볼들을 프레이밍(framing)하는데 이용되는 일 세트의 심볼들이며, 그리고 소스 디바이스 및 싱크 디바이스가 알고 있는 프로토콜에 따라 인코딩된다.
링크 속도는, 가령, 메인 링크(210, 211, 212)와 같은 물리적 링크 상에서 심볼들이 전송되는 속도 혹은 주파수를 지칭한다. 각각의 메인 링크(210, 211, 212)는 서로 다른 링크 속도를 가질 수도 있다. 링크 속도에 관련된 것은 링크 심볼 클럭 혹은 LS_CLK 이며, 이는 각각의 링크에 대해 타이밍을 확립한다.
소스 데이터 속도는 소스가 데이터 스트림을 출력하는 속도 혹은 주파수이다. 예를 들어, DVD 디코더로부터의 비디오 소스 데이터 속도는 디코더로부터 출력되는 비디오 데이터의 속도이다. DVD 디코더로부터의 오디오 소스 데이터 속도는 디코더로부터 출력되는 오디오 데이터의 속도이다. 따라서, 소스 데이터 속도는 실제 비디오 데이터와 같은 액티브 데이터 뿐만 아니라 공백 간격(blanking interval)을 포함한다. 데이터 스트림의 소스 데이터 속도를 복원하는 것이 본 발명의 중요한 특징이다.
가상 채널 데이터 속도는 소스 데이터를 포함하는 데이터가 인터페이스 송신기 디바이스(interface transmitter device)에 입력되는 속도 혹은 주파수이다. 이것은 또한, 인터페이스 수신 디바이스(interface receiving device)가 수신된 데이터 스트림을 재생을 위해 싱크 디바이스로 입력시키는 속도이다. 다르게 표현하면, 상기 가상 채널 데이터 속도는 가상 채널에 대한 데이터가 송신기로 입력되는 속도이다. 따라서, 가상 채널 데이터 속도는 대응하는 소스 데이터 속도보다 빠르며 그리고 링크 속도보다 느리다.
도3은 본 발명의 일실시예에 따른 소스 디바이스(201)를 도시한다. 소스 디바이스(201)는 제어기(301), 메모리(302), 지속성 저장소자(persistent storage) (303), 통신 프레임워크(304), 데이터 소스(310), 링크 모듈(320), 송신 인터페이스(330), 클럭 소스(340), 채널라이저(channelizer)(322) 그리고 기준 속도 모듈(reference rate module)(324)을 포함한다. 제어기(301)는 중앙 처리 유닛(CPU) 혹은 그래픽 처리 유닛(GPU)을 포함하는 하나 이상의 임의의 프로세서가 될 수 있다. 제어기(301)는 소스 디바이스(201)에 있는 디바이스들의 동작을 제어한다. 예를 들어, 제어기(301)는 링크 모듈(320), 송신 인터페이스(330), 클럭 소스(340), 채널라이저(322) 그리고 기준 속도 모듈(324) 중 하나 이상을 구현하는 논리 명령들을 실행할 수 있다. 링크 모듈(320), 송신 인터페이스(330), 클럭 소스(340), 채널라이저(322) 그리고 기준 속도 모듈(324)의 논리 명령들은 소프트웨어, 하드웨어, 혹은 이들의 조합으로 구현될 수 있다.
메모리(302)는 예를 들어 동적 랜덤 액세스 메모리(DRAM) 디바이스 등의 하나 이상의 메모리 디바이스들을 포함한다. 메모리(302)는 실행을 위해 필요한 경우, 링크 모듈(320), 송신 인터페이스(330), 클럭 소스(340), 채널라이저(322) 그리고 기준 속도 모듈(324)을 포함하는 모듈들의 일부를 위한 로직을 저장하는데 이용된다. 메모리(302)는 또한 데이터 소스(310)로부터 송신 인터페이스(330)로의 인커밍 스트림 데이터를 버퍼링하는데 이용될 수도 있다.
지속성 저장소자(303)는 가령, 자기 디스크, 광 디스크, 플래시 메모리 등등의 하나 이상의 지속성 저장 디바이스를 포함할 수 있다. 지속성 저장소자(303)는 필요하다면, 링크 모듈(320), 송신 인터페이스(330), 클럭 소스(340), 채널라이저(322) 그리고 기준 속도 모듈(324)의 로직을 저장할 수 있다. 예를 들면, 일실시예에서, 지속성 저장소자(303)는 소스 디바이스(201)의 기동시에 메모리(302)에 로딩되기 위하여 실행가능한 형태로 소프트웨어로 구현되는 링크 모듈(320), 송신 인터페이스(330), 클럭 소스(340), 채널라이저(322) 그리고 기준 속도 모듈(324)의 모든 부분들을 저장한다.
통신 버스(304)는 소스 디바이스(201)의 구성요소들을 연결하는바, 가령, 301, 302, 302, 310, 320, 322, 324, 330, 340 중 2개 이상의 구성요소들을 연결한다. 통신 버스(304)는 주변 구성요소 인터페이스(Peripheral Component Interface: PCI) 버스 혹은 이것의 변형들, 범용 직렬 버스(Universal Serial Bus : USB), 파이어와이어(Firewire), 이더넷(Ethernet), 기타 등등을 포함할 수 있다.
데이터 소스(310)는 소스 데이터 스트림을 생성하는 임의의 디바이스가 될 수 있다. 예를 들면, 비디오 혹은 음악 재생 디바이스(예컨대, DVD, CD, MP3, 디지털 카메라 등등의 디코더 혹은 재생 디바이스)가 데이터 소스(310)에 포함될 수 있다. 일실시예에서, 데이터 소스(310)는, 송신 인터페이스(330)로 데이터가 전송되기 전에, DVD에 저장된 비디오 데이터를 디코딩하고 그리고 압축해제하는 DVD 재생 디바이스가 될 수 있다. 예를 들어, DVD 비디오 데이터는 동영상 전문가 그룹 버전 2 (Moving Picture Expert Group 2 : MPEG2) 비디오 압축 표준을 이용하여 저장될 수도 있다. 데이터 소스(310)는 MPEG 2 표준에 따라 MPEG 2 비디오를 압축해제할 수 있으며 그리고 상기 압축해제된 비디오 데이터를 링크 모듈(320)로 주입할 수 있는바, 이는 디스플레이 상에서 재현되도록 싱크 디바이스(202)로 전송하기 위한 것이다. 비록, 본 명세서에 서술되어 있지는 않지만, 해당 기술분야의 당업자라면 링크 모듈(320)로 입력될 소스 데이터 스트림을 생성하는데 이용될 수 있는 프레임 버퍼, 디코더, 타이밍 제어기 등등(이에 한정되는 것은 아님)과 같은 구성요소들을 데이터 소스(310)가 포함할 수 있다는 점을 능히 이해할 것이다.
링크 모듈(320)은 전송 규격에 따른 패킷들 및/또는 프레임들의 패킹(packing) 및/또는 스터핑(stuffing)과 같은 서비스들을 제공하기 위한 기능을 포함한다. 링크 모듈(320)은 또한, 보조 데이터(가령, 제어 정보 및/또는 비디오 스트림과 함께 디스플레이되는 정보)를 멀티플렉싱하고 그리고 암호화를 수행하는 기능을 제공한다.
채널라이저(322)는 링크 모듈(320)의 일부로서 구현될 수도 있으며 또는 별도의 모듈로 구현될 수도 있다. 채널라이저(322)는 데이터 소스(310)로부터 소스 데이터 스트림을 수신하고 그리고 상기 소스 데이터를 하나 이상의 소스 데이터 스트림으로서 싱크 디바이스로 전송하기 위하여 하나 이상의 가상 채널들을 기동시키는 기능을 포함한다. 예를 들어, 데이터 소스(310)로부터 DVD 비디오 및 오디오 스트림을 수신하면, 채널라이저는 그 비디오 및 오디오 스트림에 대하여 하나 이상의 가상 채널들을 기동시킬 수 있다. 채널을 기동시키는 것은, 채널에 대해 식별자를 생성하고 그리고 대응 데이터 스트림과 함께 적절한 식별자를 링크 계층으로 전달(passing)하는 것을 포함한다. 본 발명의 몇몇 실시예에서, 가상 채널의 기동은 해당 싱크 디바이스들과 브랜치 디바이스들 간의 메시지 교환을 포함한다. 예를 들어, 가상 채널을 셋업하기 전에 메시지들을 교환하는 것은, 동적으로 결정된 채널 속도로 가상 채널을 구성하는 것을 가능케 한다.
예를 들어, 가상 채널의 채널 속도는 데이터 플로우의 경로 상에 있는 각각의 디바이스를 지원할 수 있는 속도로 설정될 수 있다. 일실시예에서, 채널 속도는, 해당 소스 데이터 스트림의 피크 속도보다 크며 그리고 언더라잉 전송 매체의 물리적인 전송 특성에 매핑되는 값으로 결정된다. 또한, 채널 속도는, 데이터 플로우의 경로를 따라 있는 모든 중간 디바이스들에 의해서 실질적으로 지원될 수 있는 레벨로 설정되는 것이 바람직하다. 바람직하게는, 채널라이저(322) 혹은 링크 모듈(320)은 가상 채널 데이터 스트림의 인-액티브(in-active) 데이터를 스터프(stuff)할 수 있기 때문에, 채널 속도를 설정된 레벨로 유지할 수 있다.
기준 속도 모듈(324)은 타이밍 관계(timing relationship)를 전달하는 하나 이상의 기준 파라미터들을 결정하는 기능을 포함하는바, 이는 싱크 디바이스로 전송될 수 있다. 일실시예에서, 기준 속도 모듈(324)은 싱크 디바이스(202)로 전송될 제 1 파라미터 및 제 2 파라미터를 결정한다. 제 1 파라미터와 제 2 파라미터는 상기 관계(relationship)(소스 데이터 속도)/(채널 속도)를 표현하도록 결정된다. 일실시예에서, 제 2 파라미터는 대응 가상 채널 클럭의 소정 개수의 싸이클들(predetermined number of cycles)이 될 수 있다. 제 1 파라미터는, 상기 제 2 파라미터에 의해서 정의된 가상 채널 클럭 간격(interval) 내에서 발생하는 소스 데이터 스트림 클럭의 사이클들의 개수가 될 수 있다. 하나 이상의 위상 고정 루프(phase lock loop) 혹은 이와 유사한 것들이 이용되어 클럭(예컨대, 클럭 소스 340 로부터의 클럭)에 록 온(lock on)될 수 있다.
클럭 소스(340)는 소스 데이터 스트림 클럭, 가상 채널 클럭, 그리고 링크 클럭을 생성하는데 이용되는 하나 이상의 클럭 소스들을 포함할 수 있다. 본 발명의 실시예들은 소스 데이터 스트림 클럭, 가상 채널 클럭, 그리고 링크 클럭 각각에 대하여 상기 클럭 소스(340)와는 별개인 별도의 클럭을 이용할 수도 있으며, 이들 모두에 대하여 하나의 클럭을 이용할 수도 있고, 혹은 이들의 조합을 이용할 수도 있다. 예를 들어, 소스 데이터 스트림 클럭과 가상 채널 클럭으로 동일한 클럭이 이용되는 경우, 상기 제 1 및 제 2 파라미터는 소스 데이터 스트림의 전송 동안에 그 값이 변하지 않을 것이다. 만일, 서로 다른 클럭 소스들이 이용되는 경우, 제 2 파라미터는 일정하게 유지될 수 있는 반면에 제 1 파라미터는 변동될 수 있는데, 왜나하면 제 1 파라미터는 제 2 파라미터에 호응하여 정의되기 때문이다. 클럭 소스(340)에서 이용되는 클럭 소스들은 하나 이상의 수정(crystal) 발진기 혹은 실리콘 발진기와 같은 임의의 공지된 클럭 생성 디바이스들을 포함할 수도 있다.
송신 인터페이스(330)는 예컨대, 링크 모듈(320)로부터의 아웃고잉 데이터 스트림을 수신하고 그리고 가령, 링크(210)와 같은 전송 링크를 통해 상기 아웃고잉 데이터 스트림을 싱크 디바이스(가령, 202)로 혹은 브랜치 디바이스(가령, 240)로 전송하는 기능을 포함한다. 송신 인터페이스(330)는 또한, 시스템의 메인 링크 및 보조 링크(2개 유형의 링크들이 존재하는 경우)를 통해 데이터를 적절하게 전송하는 기능을 포함한다. 일실시예에서, 송신 인터페이스(330)는 물리 계층(physical layer)에 명시된 기능, 가령, 물리적 전송 및 전송된 데이터의 에러 보정 등을 포함한다. 데이터의 전송은 링크 클럭에 따라 발생된다. 일실시예에서, 송신 인터페이스(330)는 차동 송신기(differential transmitter)를 포함할 수 있다. 예를 들어, 일시예에서 송신 인터페이스(330)는 저-전압 차동 시그널링(low-voltage differential signaling : LVDS) 인터페이스 표준을 이용하여 비디오 데이터 프레임들과 제어 정보를 메인 링크(210)를 통해 전송하는데 필요한 기능들을 포함한다.
해당 기술분야의 당업자라면 상기 소스 디바이스(201)가 도면에 도시된 것들 이외의 구성요소들 혹은 모듈들 혹은 이들의 다른 조합들을 포함할 수도 있다는 점을 능히 이해할 것이다. 또한, 데이터 소스(310), 링크 모듈(320), 송신 인터페이스(330), 채널라이저(322), 기준 속도 모듈(324), 클럭 소스(340)의 기능은 소프트웨어, 하드웨어, 펌웨어, 혹은 이들의 조합으로 구현될 수도 있음을 유의해야 한다. 일실시예에서, 예를 들어, 데이터 소스(310), 링크 모듈(320), 송신 인터페이스(330), 채널라이저(322), 기준 속도 모듈(324), 클럭 소스(340)의 기능은, Verilog, RTL, netlist 등의 하드웨어 기술 언어(hardware description language)로 명시될 수 있는바, 따라서 본 명세서에 기술된 본 발명의 피처들이 내재된 하드웨어 디바이스를 제작하도록 마스크작업/포토마스크의 생성을 통해 제조 프로세스를 최종적으로 구성하는 것이 가능해진다.
도4는 본 발명의 일실시예에 따른 싱크 디바이스(202)를 예시한다. 싱크 디바이스(202)는 제어기(401), 메모리(402), 지속성 저장소자(403), 통신 프레임워크(404), 데이터 싱크(430), 링크 모듈(420), 수신 인터페이스(410), 클럭 소스(440), 채널 프로세서(422) 그리고 속도 유도기(rate deriver)(424)을 포함한다. 제어기(401)는 중앙 처리 유닛(CPU) 혹은 그래픽 처리 유닛(GPU)을 포함하는 하나 이상의 임의의 프로세서가 될 수 있다. 제어기(401)는 싱크 디바이스(202)에 있는 디바이스들의 동작을 제어한다. 예를 들어, 제어기(401)는 링크 모듈(420), 수신 인터페이스(410), 클럭 소스(440), 채널 프로세서(422) 그리고 속도 유도기(424) 중 하나 이상을 구현하는 논리 명령들을 실행할 수 있다. 링크 모듈(420), 수신 인터페이스(410), 클럭 소스(440), 채널 프로세서(422) 그리고 속도 유도기(424)의 논리 명령들은 소프트웨어, 하드웨어, 혹은 이들의 조합으로 구현될 수 있다.
메모리(402)는 예를 들어 동적 랜덤 액세스 메모리(DRAM) 디바이스 등의 하나 이상의 메모리 디바이스들을 포함한다. 메모리(402)는 실행을 위해 필요한 경우, 링크 모듈(420), 수신 인터페이스(410), 클럭 소스(440), 채널 프로세서(422) 그리고 속도 유도기(424)을 포함하는 모듈들의 일부를 위한 로직을 저장하는데 이용된다. 메모리(402)는 또한 수신 인터페이스(410)로부터 데이터 싱크(430)로의 인커밍 스트림 데이터를 버퍼링하는데 이용될 수도 있다.
지속성 저장소자(403)는 가령, 자기 디스크, 광 디스크, 플래시 메모리 등등의 하나 이상의 지속성 저장 디바이스를 포함할 수 있다. 지속성 저장소자(403)는 필요한 경우, 링크 모듈(420), 수신 인터페이스(410), 클럭 소스(440), 채널 프로세서(422) 그리고 속도 유도기(424)의 로직을 저장할 수 있다. 예를 들면, 일실시예에서, 지속성 저장소자(403)는 싱크 디바이스(202)의 기동시에 메모리(402)에 로딩되기 위하여 실행가능한 형태로 소프트웨어로 구현되는 링크 모듈(420), 수신 인터페이스(410), 클럭 소스(440), 채널 프로세서(422) 그리고 속도 유도기(424)의 모든 부분들을 저장한다.
통신 버스(404)는 소스 디바이스(202)의 구성요소들을 연결하는바, 가령, 401, 402, 403, 410, 420, 422, 424, 430, 440 중 2개 이상의 구성요소들을 연결한다. 통신 버스(404)는 주변 구성요소 인터페이스(Peripheral Component Interface: PCI) 버스 혹은 이것의 변형들, 범용 직렬 버스(Universal Serial Bus : USB), 파이어와이어(Firewire), 이더넷(Ethernet), 기타 등등을 포함할 수 있다.
수신 인터페이스(410)는 소스 디바이스 혹은 브랜치 디바이스로부터의 인커밍 데이터 스트림을 가령, 메인 링크(211)와 같은 링크로부터 수신하는 기능을 포함한다. 수신된 데이터는 링크 모듈(420)로 전송될 수 있다. 수신 인터페이스(410)는 또한, 시스템의 메인 링크 및 보조 링크(2개 유형의 링크들이 존재하는 경우)를 통해 데이터를 적절하게 수신하는 기능을 포함한다. 일실시예에서, 수신 인터페이스(410)는 물리 계층(physical layer)에 명시된 기능 즉, 물리적 전송 및 전송된 데이터의 에러 보정 등을 포함한다. 일실시예에서, 수신 인터페이스(410)는 차동 수신기를 포함할 수 있다. 예를 들어, 일시예에서 수신 인터페이스(410)는 저-전압 차동 시그널링(LVDS) 인터페이스 표준을 이용하여 메인 링크(210)를 통해 비디오 데이터 프레임들과 제어 정보를 수신하기 위한 기능들을 포함한다.
링크 모듈(420)은 소스 디바이스 혹은 브랜치 디바이스로부터 패킷들이 어떻게 전송되었는지에 따라, 패킷들 및/또는 프레임들을 언패킹(unpacking) 및/또는 디스터핑(destuffing)하는 것과 같은 서비스들을 제공하기 위한 기능을 포함한다. 링크 모듈(420)은 또한, 보조 데이터(가령, 제어 정보 및/또는 비디오 스트림과 함께 디스플레이되는 정보)를 디멀티플렉싱하고 그리고 필요한 경우 인커밍 스트림에 대한 암호해독을 수행하는 기능을 제공한다.
데이터 싱크(430)는 인커밍 데이터 스트림을 수신하고 이를 프로세싱하고 및/또는 이를 재현할 수 있는 임의의 디바이스가 될 수 있다. 예를 들어, 데이터 싱크(430)는 가령, 텔레비전 디스플레이와 같은 비디오 및/또는 오디오 재생 디바이스 혹은 스피커 시스템과 같은 오디오 재생 디바이스가 될 수 있다. 몇몇 실시예에서, 데이터 싱크(430)는 외부 재생 디바이스가 연결되는 인터페이스가 될 수도 있다. 일실시예에서, 데이터 싱크(430)는 압축되지 않은(uncompressed) 비디오 데이터 및 이와 관련된 타이밍 정보를 수신하는 디스플레이 디바이스가 될 수 있다. 비록, 본 명세서에 서술되어 있지는 않지만, 해당 기술분야의 당업자라면, 데이터 싱크(430)가 프레임 버퍼, 디코더, 및 디스플레이 타이밍 복원 모듈 등과 같은 구성요소들(이에 한정되는 것은 아님)을 포함할 수 있음을 능히 이해할 것이다.
채널 프로세서(422)는 링크 모듈(420)의 일부로서 구현될 수도 있으며 별도의 모듈로 구현될 수도 있다. 채널 프로세서(422)는 링크 모듈(420)로부터 소스 데이터 스트림을 수신하고 그리고 하나 이상의 소스 데이터 스트림들로서 소스 데이터를 포함하고 있는 하나 이상의 가상 채널들을 검출하는 기능을 포함한다. 예를 들어, 링크 모듈(420)로부터 DVD 비디오 및 오디오 스트림을 수신하면, 채널 프로세서(422)는 상기 비디오 및 오디오 스트림에 대한 하나 이상의 가상 채널들을 결정할 수 있다. 이러한 결정은, 가상 채널을 정의하는 고유 식별자를 검출하는 것에 기초할 수 있다. 또한, 채널 프로세서(422)는 가상 채널의 설정시에 소스 디바이스로부터 메시지들을 수신하고 이에 응답하는 기능을 포함할 수 있다. 또한, 채널 프로세서(422) 및/또는 링크 모듈(420)은 예컨대, 채워넣기 데이터(fill data)(가령, 가상 채널의 전송 속도를 기결정된 채널 속도에 등화시키기 위하여 브랜치 디바이스에 의해 포함된 데이터)를 식별하고 그리고 이를 폐기하는 기능을 포함할 수 있다.
속도 유도기(424)는 소스 디바이스(201)로부터 전송된 하나 이상의 기준 속도 파라미터들을 검출하고, 그리고 이들 파라미터들, 링크 속도, 및 채널 속도에 기초하여 소스 데이터 속도를 결정하는 기능을 포함한다. 속도 파라미터들은 소스 데이터 속도와 채널 속도 사이의 타이밍 관계를 정의한다. 소스 디바이스(201)로부터 전송된 하나 이상의 속도 파라미터들은, 예컨대, 인커밍 패킷 스트림에 있는 패킷들의 헤더 정보로부터 복원될 수 있다. 링크 속도 및 채널 속도는 국부적으로(locally)으로 결정될 수 있다. 가령, 링크 클럭, 가상 채널 클럭 및/또는 소스 데이터 스트림 클럭과 같은 수신된 검출 클럭들에 록온하기 위하여, 하나 이상의 위상 고정 루프, 발진기, 및/또는 기타 등등이 이용될 수 있다.
클럭 소스(440)는 데이터 스트림 클럭, 가상 채널 클럭, 및 링크 클럭 중 하나 이상에 록온하는데 이용되는 하나 이상의 클럭 소스들 및/또는 클럭 회로를 포함할 수 있다. 본 발명의 실시예들은 소스 데이터 스트림 클럭, 가상 채널 클럭, 그리고 링크 클럭 각각에 대하여 상기 클럭 소스(440)와는 별개인 클럭을 이용할 수도 있으며, 이들 모두에 대하여 하나의 클럭을 이용할 수도 있고, 혹은 이들의 조합을 이용할 수도 있다. 클럭 소스(440)로 이용되는 클럭 소스들은 하나 이상의 수정 발진기 혹은 실리콘 발진기 혹은 위상 고정 루프 회로 등의 클럭 고정 회로와 같은 임의의 공지된 클럭 생성 디바이스를 포함할 수 있다.
해당 기술분야의 당업자라면 상기 싱크 디바이스(202)가 도면에 도시된 것들 이외의 구성요소들 혹은 모듈들 혹은 이들의 다른 조합들을 포함할 수도 있다는 점을 능히 이해할 것이다. 또한, 데이터 싱크(430), 링크 모듈(420), 수신 인터페이스(410), 클럭 소스(440), 채널 프로세서(422) 그리고 속도 유도기(424)의 기능은 소프트웨어, 하드웨어, 펌웨어, 혹은 이들의 조합으로 구현될 수도 있음을 유의해야 한다. 일실시예에서, 예를 들어, 데이터 싱크(430), 링크 모듈(420), 수신 인터페이스(410), 클럭 소스(440), 채널 프로세서(422) 그리고 속도 유도기(424)의 기능은, Verilog, RTL, netlist 등의 하드웨어 기술 언어(hardware description language)로 명시될 수 있는바, 따라서 본 명세서에 기술된 본 발명의 피처들이 내재된 하드웨어 디바이스를 제작하도록 마스크작업/포토마스크의 생성을 통해 제조 프로세스를 최종적으로 구성하는 것이 가능해진다.
도5는 프로세스(500)를 예시한 것으로, 소스 데이터 속도를 재생성하기 위하여 소스 디바이스(가령, 소스 디바이스 201)는 싱크 디바이스(가령, 싱크 디바이스 202)에 필요한 정보를 전송할 수 있다. 단계 510에서, 소스 디바이스는 소스 데이터 스트림을 수신하거나 및/또는 생성한다. 예를 들어, 소스 디바이스는 비디오 및/또는 오디오 스트림을 생성하는 DVD 재생 디바이스와 같은 데이터 소스가 될 수 있다. 이러한 데이터 소스에 의해 생성된 비디오 및/또는 오디오 스트림은, 소스 데이터 스트림이라 지칭된다. 데이터 소스는, 비디오 및 오디오 데이터의 인코딩(가령, MPEG2)을 포함하는 여러 인자들에 의해서 결정된 속도로 소스 데이터 스트림을 생성한다. 예컨대, 클럭 소스(340)로부터의 클럭 소스 혹은 클럭 고정 회로는, 소정 클럭을 생성하거나 혹은 소스 데이터 스트림으로부터 생성된 클럭에 록온하는데 이용될 수 있다. 소스 데이터 스트림의 데이터 속도를 결정하는 클럭 주파수는, 소스 데이터 스트림 클럭 혹은 소스 데이터 스트림 속도라고 지칭된다.
단계 520에서, 소스 데이터 스트림은 하나 이상의 가상 채널에 매핑된다. 전술한 바와 같이, 가상 채널은 물리적 전송 링크 상에 부과된 논리 스트림(logical stream)이다. 일반적으로, 가상 채널과 소스 데이터 스트림간에는 일대일 매핑이 존재한다. 하지만, 몇몇 경우에서는, 하나의 소스 데이터 스트림이 여러개의 가상 채널에 매핑될 수도 있다. 설명의 편의를 위해서 그리고 범용성을 훼손하는 일 없이, 프로세스(500)에 대한 다음의 설명에서는 소스 데이터 스트림과 가상 채널이 일대일 매핑된다고 대체적으로 가정한다. 예를 들어, 비디오 및 다중-채널 오디오를 구비한 소스 데이터 스트림은 다수의 가상 채널들에 매핑될 수도 있다. 소스 데이터 스트림의 첫번째 데이터(first data)를 수신하면, 채널라이저 및/또는 링크 모듈은 새로운 가상 채널이 필요한지를 결정한다. 채널라이저는 채널 식별자를 생성할 수 있는바, 채널 식별자는 소스 데이터 스트림에서 데이터를 운반하는 모든 패킷의 헤더부에 있게 될 것이다. 몇몇 실시예에서, 상기 소스 디바이스는 예컨대, 채널라이저 및/또는 링크 모듈을 이용하여, 싱크 디바이스 및/또는 해당 브랜치 디바이스에게 새로운 가상 채널의 기동(initiation)을 통지할 수 있다.
단계 530에서, 가상 채널에 대한 채널 속도가 결정된다. 채널 속도 혹은 가상 채널 클럭 속도는, 가상 채널에 소스 데이터와 다른 보조 데이터가 거주하는(populate) 속도이다. 예를 들어, 채널 속도는 소스 데이터와 보조 데이터가 패킷들에 패킹되고, 헤더들이 구성되고, 데이터가 심볼들로 인코딩되고, 그리고 임의의 제어 심볼들이 패킷들에 부가되는 속도들을 나타낼 수 있다. 하지만, 본 발명의 실시예들은, 채널 속도에서 제외된 전술한 양상들 중 몇몇에 포함되거나 및/또는 몇몇을 갖는 다른 양상들을 가질 수 있다는 점을 유의해야 한다. 각각의 실시예들은 소스 디바이스와 하나 이상의 대응 싱크 디바이스 사이의 채널 속도를 결정하는 일관된 방법을 가질 수 있다.
단계 540에서, 소스 데이터 스트림이 채널라이즈된다. 예를 들어, 채널라이저(322) 및/또는 링크 모듈(320)은, 소스 데이터 스트림으로부터 데이터를 패킷화(packetize)할 수 있다. 본 발명의 몇몇 실시예에서, 보조(secondary) 데이터는 가상 채널 안으로 멀티플렉싱될 수도 있다. 채널라이징은, 데이터 스트림 데이터과 임의의 보조 데이터를 고정 사이즈 혹은 가변 사이즈의 패킷으로 패킹하고, 각 패킷의 헤더부들을 형성하고, 인코딩 체계에 따라 데이터 스트림 데이터와 보조 데이터를 인코딩하고 그리고 재현 디바이스에서의 소스 데이터 스트림의 재현을 위해 필요로 하는 제어 심볼들을 부가하는 것을 포함한다. 예를 들어, 비디오 소스 데이터 스트림은 인액티브(inactive) 데이터와 함께 패킹될 필요가 있을 수도 있는바, 이는 가상 채널 데이터가 소정의 채널 데이터 속도로 전송될 수 있도록 하기 위한 것이다.
단계 550에서, 링크 속도가 결정된다. 예를 들어, 링크 속도는 링크 모듈(320) 송신 인터페이스(330)를 통해 패킷들을 전송하는 속도이다. 전형적으로, 각각의 소스 디바이스, 브랜치 디바이스, 및 싱크 디바이스는 그 각각이 동작할 수 있는 하나 이상의 링크 속도들을 갖는다. 본 명세서의 프로세스(500)에서 사용되는 "링크 속도" 라는 용어는 가령, 메인 링크(210)와 같은 아웃고잉 링크가 동작하는 클럭 속도를 지칭한다. 링크 대역폭은 메인 링크(210)를 구성하는 모든 물리적 링크들의 용량들의 합계를 지칭함을 유의해야 한다. 링크 속도는 일반적으로, 예컨대, 클럭 소스(340)로부터 미리구성된(preconfigured) 클럭에 의해 결정된다.
단계 560에서, 싱크 디바이스에게 전송될 속도 파라미터들이 결정된다. 본 발명의 일실시예에서, 제 1 속도 파라미터(M)와 제 2 속도 파라미터(N)가 결정된다. 본 발명에 따르면, 파라미터 M 및 N은 소스 데이터 스트림 클럭과 가상 채널 클럭 사이의 관계(relationship)를 운반하도록 의도된다. 일실시예에서, N은 가상 채널 클럭의 기결정된 개수의 싸이클들에 대응하는 값을 갖도록 구성되며, 그리고 M은 상기 N에 의해 정의되는 간격(interval) 동안에 발생하는 소스 데이터 스트림의 싸이클들의 개수로서 측정된다. 다른 실시예들은, 소스 데이터 속도와 채널 속도 사이의 관계(relationship)를 여전히 운반하면서도, M과 N을 서로 다르게 계산하는 방법들을 포함할 수도 있다. M 파라미터들과 N 파라미터들은 각각의 가상 채널에 대하여 개별적으로 결정된다. 또한, M 파라미터들과 N 파라미터들은 서로 다른 유형의 데이터, 예컨대, 비디오와 오디오에 대해서 개별적으로 결정될 수 있다. 예를 들면, 심지어 하나의 가상 스트림 내에서도, 비디오와 오디오는 서로 다른 속도에서 재생될 것을 요구할 수도 있다.
일실시예에 따르면, N 파라미터가 결정된 이후에, 예를 들어, 다음의 식(1)이 이용되어 M을 결정할 수 있다.
Figure 112011086027166-pct00001
여기서, N 은 가상 채널 클럭의 설정된 개수의 싸이클들에 대응하는 지속기간이며, Fsource_data_rate 는 소스 데이터 스트림의 주파수이며, Fvirtual_channel_rate 는 가상 채널 클럭의 주파수이며 M 은 소스 데이터 스트림에 대한 M 파라미터이다. 상기 Fsource_data_rate 와 Fvirtual_channel_rate 는 단계 510 및 단계 530에 관련하여 각각 전술한 바와 같이 결정될 수 있다.
단계 570에서, 상기 결정된 M 과 N 파라미터들이 싱크 디바이스로 전송된다. 예를 들어, 가상 채널에 대하여 오직 한쌍의 M 및 N 파라미터들만이 결정되었다면, 이 한쌍의 값들이 전송된다. 만일, 가상 채널에 대하여 여러 쌍의 M 및 N 값들이 결정되었다면, 실질적으로 이들 모든 쌍들이 전송될 수도 있다. 전송될 상기 M 및 N 값들은 소스 디바이스에서 싱크 디바이스로의 패킷 스트림 안으로 인코딩될 수 있다. 일실시예에서, 상기 M 및 N 값들은, 소스 데이터 스트림으로부터 소정 포맷에 따라 데이터를 운반하는 패킷의 헤더 필드에 인코딩된다. 다른 실시예에서, 상기 M 및 N 값들은, 기결정된 포맷의 특별한 패킷들을 통해 통신될 수도 있다.
본 발명의 실시예들에서, 프로세스(500)(단계 510 내지 단계 570)는 싱크 디바이스로 전송되는 M 및 N 파라미터들을 업데이트하기 위하여, 일정한 간격으로 반복될 수 있다. 프로세스(500)의 반복들 사이의 간격에서, 마지막으로 계산된 M 및 N 값들은, 가상 채널이 존재하는 동안의 간격들에서 전송될 수 있다.
도6은 본 발명의 일실시예에 따라 소스 데이터 스트림 속도를 유도하는 프로세스(600)를 예시한다. 본 명세서에서, 프로세스(600)는 가령, 싱크 디바이스(202)와 같은 싱크 디바이스에서 실행되는 것으로 서술된다. 하지만, 전술한 바와 같이, 소스 데이터 스트림 속도를 복원할 필요가 있는 경우, 프로세스(600)는 중간 디바이스 혹은 브랜치 디바이스를 포함하는 다른 디바이스들에서 실행될 수도 있다.
단계 610에서, 데이터 스트림으로부터 데이터가 수신된다. 예를 들어, 싱크 디바이스(202)의 수신 인터페이스(410)는 데이터 스트림을 소스 디바이스(201)로부터 직접 수신하거나 혹은 하나 이상의 중간 디바이스들(204)을 통해 수신할 수 있다. 수신 인터페이스는 가령, 메인 링크(211)와 같은 인커밍 링크를 통하여 데이터 스트림을 수신할 수 있으며, 에러 보정 등과 같은 물리적 계층의 기능들을 수행하며, 그리고 복원된 프레임들을 가령, 링크 모듈(420)과 같은 다른 모듈로 전달한다.
단계 620에서, 가령, 링크 모듈(420)과 같은 모듈 및/또는 채널 프로세서(422)는 인커밍 데이터 스트림에서 가상 채널을 검출한다. 예를 들어, 링크 모듈(420)은 패킷들을 복원하고, 그리고 스터핑(stuffing) 패킷들 및 심볼들을 검출 및 제거하기 위하여 인커밍 프레임들을 프로세싱할 수 있다. 채널 프로세서(422)는 예를 들어, 동일한 가상 채널로부터와 같이 헤더 필드에서 동일한 채널 식별자를 갖는 패킷들을 프로세싱할 수 있다.
단계 630에서, 소스 디바이스로부터 전송된 속도 파라미터들이 복원된다. 예를 들어, 제 1 및 제 2 속도 파라미터들(M 및 N)은 하나 이상의 인커밍 패킷들의 헤더부에 인코딩될 수 있다. 다른 실시예에서, 상기 M과 N 파라미터들은 소스 디바이스로부터 전송된 별개의 패킷들로부터 복원될 수 있다. 프로세스 500에 관하여 앞서 설명된 바와 같이, M 및 N 파라미터들의 하나 이상의 쌍들은 대응 소스 데이터 스트림 클럭들을 복원하는데 이용될 수 있다.
단계 640에서, 링크 속도가 결정된다. 싱크 디바이스의 링크 속도는 가령, 시스템(200)에서 처럼 소스 디바이스의 링크 속도보다 지연될 수 있는데, 시스템(200)에서는 소스 디바이스(201)와 싱크 디바이스(202) 사이에 브랜치 디바이스(204)가 존재한다. 싱크 디바이스의 링크 속도는 수신된 클럭에 고정시킴에 의해서 싱크 디바이스에 의해 결정될 수 있다. 예를 들어, 싱크 디바이스(202)는 인커밍 데이터 스트림에서 수신된 클럭에 고정시킴에 의해서, 자신의 링크 속도(즉, 메인 링크 211가 동작하는 속도)를 검출할 수 있다. 일실시예에서, 클럭 소스 및/또는 위상 고정 루프와 같은 록킹 회로는 상기 링크를 통해 어떤 데이터가 수신되는지에 기초하여 클럭을 검출 및 동기화시키는데 이용될 수 있다.
단계 650에서, 가상 채널의 채널 속도가 결정된다. 예를 들어, 채널 프로세서(422) 및/또는 링크 모듈(420)은 가상 채널 데이터가 수신되는 속도를 결정할 수 있다. 채널 속도를 결정하기에 앞서, 링크 모듈(420) 및/또는 채널 프로세서(422)는, 임의의 채워넣기 데이터(fill data), 예컨대, 가상 채널의 전송을 기결정된 채널 속도로 유지하기 위해서 중간 디바이스에 의해서 삽입된 데이터를 벗겨낸다(strip away). 예를 들어, 소스 디바이스 및/또는 중간 디바이스는, 아웃고잉 채널 속도를 조절하기 위하여, 스터핑 패킷들과 채워넣기 데이터를 삽입할 수 있다. 채널 속도의 결정은, 인커밍 가상 채널 데이터에 의해서 생성된 클럭에 고정시키는 것에 기초하여 수행될 수도 있다. 일실시예에서는, 인커밍 가상 채널 데이터에 의해서 생성된 클럭에 고정시킴에 의해서 채널 속도가 판별되는 기준으로서 링크 클럭이 이용된다.
단계 660에서, 소스 데이터 스트림 클럭 혹은 소스 데이터 속도가 결정된다. 예를 들어, 속도 유도기(424)는 채널 프로세서(422)에 의해서 복원된 M 및 N 파라미터 값들, 링크 모듈(420)에 의해서 결정된 링크 클럭 그리고 채널 프로세서(422)와 링크 모듈(420)에 의해서 결정된 가상 채널 데이터 속도를 수신할 수 있다. 수신된 파라미터들 및 결정된 클럭 속도들은, 소스 데이터 속도를 유도하는데 이용될 수 있다. 일실시예에서, 소스 데이터 속도는 다음의 식을 이용하여 결정될 수 있다.
Figure 112011086027166-pct00002
여기서, N 은 가상 채널 클럭의 기결정된 개수의 싸이클들에 대응하는 지속기간이며, M 은 N에 의해 정의되는 인터벌 내의 소스 데이터 클럭의 사이클들의 개수이다. N 과 M은 소스 디바이스로부터 수신된 파라미터들이다. Fvirtual_channel_rate 는 채널 속도이며, 싱크 디바이스에서 결정된다. Fls_clk 는 링크 속도이며, 이는 단계 640에서 전술한 바와 같이 싱크 디바이스에서 또한 결정된다. Fsource_data_rate 는 상기 식 (2)를 이용하여 결정될 수 있다. 식 (2)에서 링크 속도(링크 클럭) 대신에 임의의 기준 클럭이 이용될 수 있음을 유의해야 한다. 또한, 몇몇 실시예들 가령, 채널 속도가 독립적으로 결정될 수 있는 실시예들에서는, M 과 N 및 채널 속도만을 이용하여 소스 데이터 속도가 결정될 수 있다.
프로세스 600은 관련 소스 데이터 스트림 클럭 속도들을 재계산하기 위해서 주기적으로 반복될 수 있다. 또한, 소스 디바이스로부터 수신된 하나 이상의 속도 파라미터들을 이용하여 관련 소스 데이터 클럭 속도들을 결정하기 위하여, 본 발명의 실시예들은 프로세스 600 혹은 이와 유사한 프로세스를 구현할 수도 있음을 유의해야 한다. 소스 디바이스로부터 수신된 속도 파라미터들은 가상 채널 클럭 속도와 소스 데이터 클럭 속도를 관련시킨다(relate).
전술한 바와 같이, 본 발명은 싱크 디바이스가 소스 디바이스에 직접적으로 혹은 간접적으로 연결되었는지에 상관없이, 등시성 데이터 스트림의 소스 데이터 속도를 싱크 디바이스가 결정하는 것을 허용한다. 소스 데이터 스트림에 대해 가상 채널을 기동시키고 그리고 채널 속도를 소스 데이터 속도에 관련시키는 하나 이상의 파라미터들을 싱크 디바이스와 통신함에 의해서, 소스 디바이스 및 싱크 디바이스 서로 다른 링크 클럭들을 갖고 있는 경우라 할지라도, 소스 디바이스는 싱크 디바이스가 관련 소스 클럭들을 재생성하는 것을 가능케한다.
종래의 방법들과 비교되는 본 발명의 장점들은 브랜치 디바이스들과 싱크 디바이스들에서의 절감된 비용 및 감소된 복잡도, 짧은 록 지속기간(short lock duration), 향상된 신호대잡음비, 그리고 재현 디바이스들 간의 오디오 위상 정렬(audio phase alignment)의 가능성을 포함한다. 브랜치 디바이스들이 간단해지는바, 이는 M 및 N 파라미터들을 통과시키기 전에 M 및 N 파라미터들을 브랜치 디바이스들이 재계산할 필요가 없기 때문이다. 또한, 싱크 디바이스도 간단해지는바, 이는 가상 채널 클럭을 결정하고 그리고 요구되는 소스 속도를 계산하는 것 말고는 아무런 부담도 싱크 디바이스에 부과되지 않기 때문이다. 또한, 본 발명에 따르면 소스 데이터 속도를 좀더 정확하게 복원할 수 있기 때문에, 수신된 신호의 신호대잡음비가 높아진다. 또한, 재현 디바이스들 간의 위상 정렬이 가능해지는바, 이는 다양한 지연 구성요소들이 본 발명에 따라 프로세싱 경로에서 제거되기 때문이다.
발명의 개요부분 및 요약서에는 발명자(들)에 의해서 고려되는 본 발명의 예시적인 실시예들 중 하나 이상이 개시될 수도 있으나(하지만 모든 실시예가 개시되지는 않음), 이는 본 발명 및 첨부된 청구범위을 어떠한 방식으로든 제한하고자 의도된 것이 아님을 유의해야 한다.
본 발명은 특정한 기능들 및 이들 간의 관계에 대한 구현예를 예시한 기능성 빌딩 블록들의 도움을 받아 서술되었다. 이들 기능성 빌딩 블록들의 범위는 설명의 편의를 위해 본 명세서에서 임의적으로 정의되었다. 하지만, 특정한 기능들 및 이들의 관계들이 적절히 수행되기만 한다면 대안적인 범위들이 정의될 수도 있다.
특정 실시예들에 대한 전술한 바와 같은 서술은 본 발명의 일반적인 본질을 완전히 설명할 것인바, 해당 기술분야의 당업자라면 해당 기술분야에 속한 지식을 적용함으로써, 과도한 실험 없이 그리고 본 발명의 일반적인 개념을 벗어나지 않고도 본 발명의 특정 실시예들과 같은 다양한 응용예들을 용이하게 수정 및/또는 개조할 수 있을 것이다. 따라서, 이러한 수정예들 및 개조예들은, 본 명세서에 제공된 가르침 및 지도(guidance)에 기초하여, 본 명세서에 개시된 실시예들의 등가물들의 의미 및 범위 내에 속한 것으로 의도된 것이다.
본 명세서의 어구(phraseology) 혹은 용어(terminology)는 설명을 위한 것이며 한정을 위한 것이 아님을 유의해야 한다. 따라서, 본 명세서의 이러한 어구 혹은 용어들은 상기 가르침 및 지도(guidance)를 감안하여 당업자에 의해 이해되어야 한다.
본 발명의 기술적 사상의 범위는 전술한 바와 같은 예시적인 실시예만으로 제한되는 것이 아니며, 오직 다음의 청구범위 및 이의 등가물들에 따라 정의되어야만 한다.

Claims (20)

  1. 소스 디바이스로부터 싱크 디바이스로 소스 데이터 스트림을 전송하는 방법으로서,
    상기 소스 디바이스로부터 상기 싱크 디바이스로의 하나 이상의 물리적 링크를 통해 논리 채널(logical channel)을 형성하는 단계를 포함하며,
    상기 논리 채널은 (i) 소스 데이터 스트림 및 (ii) 2개 이상의 속도(rate) 파라미터들을 운반하고,
    상기 속도 파라미터들은 상기 소스 데이터 스트림의 데이터 속도를 상기 논리 채널의 데이터 속도에 관련시키며, 상기 2개 이상의 속도 파라미터들 각각은 상기 논리 채널에서 전송되는 하나 이상의 패킷에 포함되는 것을 특징으로 하는 소스 데이터 스트림을 전송하는 방법.
  2. 제1항에 있어서,
    상기 형성하는 단계는,
    채워넣기 데이터(fill data)를 배제한 데이터 속도에 기초하여 상기 논리 채널의 데이터 속도를 결정하는 단계
    를 포함하는 소스 데이터 스트림을 전송하는 방법.
  3. 제1항에 있어서,
    상기 형성하는 단계는,
    논리 채널 클럭의 복수의 싸이클들에 대응하는 제 1 속도 파라미터를 결정하는 단계 -상기 논리 채널 클럭은 상기 논리 채널의 데이터 속도에 관련되며- ; 및
    제 1 간격(interval) 내에 있는 소스 스트림 클럭의 복수의 싸이클들에 대응하는 제 2 속도 파라미터를 결정하는 단계 -상기 제 1 간격은 상기 제 1 속도 파라미터 및 상기 논리 채널 클럭에 기초하여 결정되며 그리고 상기 소스 스트림 클럭은 상기 소스 데이터 스트림의 데이터 속도에 관련됨-
    를 포함하며,
    상기 2개 이상의 속도 파라미터들은 상기 제 1 속도 파라미터와 상기 제 2 속도 파라미터를 포함하는 것을 특징으로 하는 소스 데이터 스트림을 전송하는 방법.
  4. 제3항에 있어서,
    상기 제 1 속도 파라미터와 상기 제 2 속도 파라미터를 상기 논리 채널에 내포(embedding)시키는 단계
    를 더 포함하는 소스 데이터 스트림을 전송하는 방법.
  5. 제1항에 있어서,
    상기 소스 디바이스에서 상기 소스 데이터 스트림을 수신하는 단계; 및
    수신된 상기 소스 데이터 스트림에 기초하여 상기 소스 데이터 스트림의 데이터 속도를 결정하는 단계
    를 더 포함하는 소스 데이터 스트림을 전송하는 방법.
  6. 제1항에 있어서,
    상기 소스 디바이스에서 상기 소스 데이터 스트림을 생성하는 단계; 및
    생성된 상기 소스 데이터 스트림에 기초하여 상기 소스 데이터 스트림의 데이터 속도를 결정하는 단계
    를 더 포함하는 소스 데이터 스트림을 전송하는 방법.
  7. 제1항에 있어서,
    하나 이상의 브랜치(branch) 디바이스를 통해 상기 싱크 디바이스로 상기 논리 채널을 전송하는 단계
    를 더 포함하는 소스 데이터 스트림을 전송하는 방법.
  8. 싱크 디바이스가 소스 데이터 스트림의 데이터 속도를 복원하는 방법으로서,
    수신된 데이터 스트림에서 논리 채널을 검출하는 단계 -상기 논리 채널은 소스 디바이스로부터 상기 싱크 디바이스로의 하나 이상의 물리적 링크를 통해 상기 소스 데이터 스트림을 운반하며- ;
    수신된 상기 데이터 스트림으로부터 2개 이상의 속도 파라미터들을 복원하는 단계 - 상기 2개 이상의 속도 파라미터들 각각은 상기 논리 채널에서 전송되는 하나 이상의 패킷에 포함되며 - ;
    상기 논리 채널의 데이터 속도를 결정하는 단계; 및
    상기 논리 채널의 데이터 속도 및 상기 2개 이상의 속도 파라미터들에 기초하여 상기 소스 데이터 스트림의 데이터 속도를 결정하는 단계
    를 포함하는 소스 데이터 스트림의 데이터 속도를 복원하는 방법.
  9. 제8항에 있어서,
    상기 소스 데이터 스트림의 데이터 속도를 결정하는 단계는 링크 속도에 더 기초하는 것을 특징으로 하는 소스 데이터 스트림의 데이터 속도를 복원하는 방법.
  10. 제8항에 있어서,
    상기 2개 이상의 속도 파라미터들을 복원하는 단계는,
    제 1 속도 파라미터를 수신하는 단계; 및
    제 2 속도 파라미터를 수신하는 단계를 포함하며,
    상기 제 1 속도 파라미터와 제 2 속도 파라미터는 상기 소스 데이터 스트림의 데이터 속도를 상기 논리 채널의 데이터 속도에 관련시키는 것을 특징으로 하는 소스 데이터 스트림의 데이터 속도를 복원하는 방법.
  11. 제8항에 있어서,
    상기 논리 채널의 데이터 속도를 결정하는 단계는,
    채워넣기 데이터를 배제한 데이터 속도에 기초하여 상기 논리 채널의 데이터 속도를 결정하는 것을 특징으로 하는 소스 데이터 스트림의 데이터 속도를 복원하는 방법.
  12. 제10항에 있어서,
    상기 소스 데이터 스트림의 데이터 속도를 결정하는 단계는,
    상기 논리 채널의 데이터 속도에 상기 제 2 속도 파라미터와 제 1 속도 파라미터의 비율(ratio)을 곱하는 것을 특징으로 하는 소스 데이터 스트림의 데이터 속도를 복원하는 방법.
  13. 데이터 전송 시스템으로서,
    소스 디바이스; 및
    상기 소스 디바이스에 직접적으로 혹은 간접적으로 연결된 싱크 디바이스를 포함하며,
    상기 소스 디바이스는,
    상기 소스 디바이스로부터 상기 싱크 디바이스로의 하나 이상의 물리적 링크를 통해 논리 채널을 형성하며, 상기 논리 채널은 (i) 소스 데이터 스트림 및 (ii) 2개 이상의 속도 파라미터들을 운반하며, 상기 속도 파라미터들은 상기 소스 데이터 스트림의 데이터 속도를 상기 논리 채널의 데이터 속도에 관련시키고, 상기 2개 이상의 속도 파라미터들 각각은 상기 논리 채널에서 전송되는 하나 이상의 패킷에 포함되고; 그리고
    상기 하나 이상의 물리적 링크중 적어도 하나를 전송 링크를 통해 상기 논리 채널을 전송하며,
    상기 싱크 디바이스는:
    수신된 데이터 스트림에서 상기 논리 채널을 검출하고;
    수신된 상기 데이터 스트림으로부터 상기 2개 이상의 속도 파라미터들을 복원하며;
    상기 논리 채널의 데이터 속도를 결정하며; 그리고
    상기 논리 채널의 데이터 속도 및 상기 2개 이상의 속도 파라미터들에 기초하여 상기 소스 데이터 스트림의 데이터 속도를 결정하는 것을 특징으로 하는 데이터 전송 시스템.
  14. 제13항에 있어서,
    상기 소스 디바이스와 상기 싱크 디바이스에 직접적으로 혹은 간접적으로 연결된 브랜치 디바이스를 더 포함하며,
    상기 브랜치 디바이스는:
    상기 논리 채널을 수신하고; 그리고
    수신된 상기 논리 채널을 상기 논리 채널의 데이터 속도로 전송하는 것을 특징으로 하는 데이터 전송 시스템.
  15. 제13항에 있어서,
    상기 소스 디바이스는 또한,
    논리 채널 클럭의 기결정된 개수의 싸이클들에 대응하는 제 1 속도 파라미터를 결정하고 -상기 논리 채널 클럭은 상기 논리 채널의 데이터 속도에 관련되며- ;
    제 1 간격(interval) 내에 있는 소스 스트림 클럭의 복수의 싸이클들에 대응하는 제 2 속도 파라미터를 결정하고 -상기 제 1 간격은 상기 제 1 속도 파라미터 및 상기 논리 채널 클럭에 기초하여 결정되며 그리고 상기 소스 스트림 클럭은 상기 소스 데이터 스트림의 데이터 속도에 관련됨- ; 그리고
    상기 제 1 속도 파라미터 및 제 2 속도 파라미터를 상기 싱크 디바이스로 전송하는 것을 특징으로 하는 데이터 전송 시스템.
  16. 제13항에 있어서,
    상기 싱크 디바이스에서의 아웃고잉 전송 링크와 인커밍 전송 링크는 DisplayPort 표준에 부합하는 것을 특징으로 하는 데이터 전송 시스템.
  17. 컴퓨터 프로그램 로직이 기록되어 있는 컴퓨터 판독가능 매체로서, 상기 컴퓨터 프로그램 로직은 적어도 하나의 프로세서로 하여금,
    소스 디바이스로부터 싱크 디바이스로의 하나 이상의 물리적 링크를 통해 논리 채널을 형성하게 하며, 상기 논리 채널은 (i) 소스 데이터 스트림 및 (ii) 2개 이상의 속도 파라미터들을 운반하고, 상기 속도 파라미터들은 상기 소스 데이터 스트림의 데이터 속도를 상기 논리 채널의 데이터 속도에 관련시키며, 상기 2개 이상의 속도 파라미터들 각각은 상기 논리 채널에서 전송되는 하나 이상의 패킷에 포함되는 것을 특징으로 하는 컴퓨터 판독가능 기록 매체.
  18. 제17항에 있어서,
    상기 컴퓨터 프로그램 로직은 또한, 상기 적어도 하나의 프로세서로 하여금,
    논리 채널 클럭의 기결정된 개수의 싸이클들에 대응하는 제 1 속도 파라미터를 결정하게 하고 -상기 논리 채널 클럭은 상기 논리 채널의 데이터 속도에 관련되며- ;
    제 1 간격(interval) 내에 있는 소스 스트림 클럭의 복수의 싸이클들에 대응하는 제 2 속도 파라미터를 결정하게 하고 -상기 제 1 간격은 상기 제 1 속도 파라미터 및 상기 논리 채널 클럭에 기초하여 결정되며 그리고 상기 소스 스트림 클럭은 상기 소스 데이터 스트림의 데이터 속도에 관련됨- ; 그리고
    상기 제 1 속도 파라미터 및 제 2 속도 파라미터를 상기 싱크 디바이스로 전송하게 하는 것을 특징으로 하는 컴퓨터 판독가능 기록 매체.
  19. 컴퓨터 프로그램 로직이 기록되어 있는 컴퓨터 판독가능 매체로서, 상기 컴퓨터 프로그램 로직은 적어도 하나의 프로세서로 하여금,
    수신된 데이터 스트림에서 논리 채널을 검출하게 하고, 상기 논리 채널은 소스 디바이스로부터 싱크 디바이스로의 하나 이상의 물리적 링크를 통해 소스 데이터 스트림을 운반하며;
    수신된 상기 데이터 스트림으로부터 하나 이상의 속도 파라미터들을 복원하게 하며, 2개 이상의 속도 파라미터들 각각이 상기 논리 채널에서 전송되는 하나 이상의 패킷에 포함되며;
    상기 논리 채널의 데이터 속도를 결정하게 하며; 그리고
    상기 논리 채널의 데이터 속도 및 상기 2개 이상의 속도 파라미터들에 기초하여 상기 소스 데이터 스트림의 데이터 속도를 결정하게 하는 것을 특징으로 하는 컴퓨터 판독가능 기록 매체.
  20. 제19항에 있어서,
    상기 컴퓨터 프로그램 로직은 또한, 상기 적어도 하나의 프로세서로 하여금,
    링크 속도에 더 기초하여 상기 소스 데이터 스트림의 데이터 속도를 결정하게 하는 것을 특징으로 하는 컴퓨터 판독가능 기록 매체.
KR1020117026070A 2009-04-14 2010-04-12 내포된 클럭 복원 KR101615296B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16913309P 2009-04-14 2009-04-14
US61/169,133 2009-04-14

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020157010642A Division KR101627779B1 (ko) 2009-04-14 2010-04-12 내포된 클럭 복원

Publications (2)

Publication Number Publication Date
KR20120004503A KR20120004503A (ko) 2012-01-12
KR101615296B1 true KR101615296B1 (ko) 2016-04-25

Family

ID=42934396

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157010642A KR101627779B1 (ko) 2009-04-14 2010-04-12 내포된 클럭 복원
KR1020117026070A KR101615296B1 (ko) 2009-04-14 2010-04-12 내포된 클럭 복원

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020157010642A KR101627779B1 (ko) 2009-04-14 2010-04-12 내포된 클럭 복원

Country Status (6)

Country Link
US (2) US8161204B2 (ko)
EP (2) EP3664323B1 (ko)
JP (1) JP5694292B2 (ko)
KR (2) KR101627779B1 (ko)
CN (2) CN102439926A (ko)
WO (1) WO2010119326A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156238B2 (en) 2009-05-13 2012-04-10 Stmicroelectronics, Inc. Wireless multimedia transport method and apparatus
US8429440B2 (en) 2009-05-13 2013-04-23 Stmicroelectronics, Inc. Flat panel display driver method and system
US8671234B2 (en) 2010-05-27 2014-03-11 Stmicroelectronics, Inc. Level shifting cable adaptor and chip system for use with dual-mode multi-media device
US8611486B2 (en) * 2011-04-08 2013-12-17 Silicon Image, Inc. Adjustment of clock signals regenerated from a data stream
US9165537B2 (en) * 2011-07-18 2015-10-20 Nvidia Corporation Method and apparatus for performing burst refresh of a self-refreshing display device
US9712573B2 (en) * 2011-09-13 2017-07-18 Qualcomm Incorporated Synchronized wireless display devices
US8730328B2 (en) 2011-10-06 2014-05-20 Qualcomm Incorporated Frame buffer format detection
US9398065B2 (en) * 2011-12-17 2016-07-19 Intel Corporation Audio/video streaming in a topology of devices with native WiGig sink
KR102176504B1 (ko) * 2014-02-25 2020-11-10 삼성디스플레이 주식회사 표시장치와 그 구동방법
WO2015133249A1 (ja) * 2014-03-03 2015-09-11 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
US9794979B2 (en) * 2015-04-13 2017-10-17 Qualcomm Incorporated Method for arbitration and adaptive power-cycling in a multi-channel network
US10148582B2 (en) * 2016-05-24 2018-12-04 Samsung Electronics Co., Ltd. Managing buffers for rate pacing
KR20180024616A (ko) * 2016-08-30 2018-03-08 삼성전자주식회사 디스플레이 장치 및 디스플레이 장치의 캘리브레이션 수행 방법
WO2019003493A1 (ja) * 2017-06-29 2019-01-03 パナソニックIpマネジメント株式会社 クロックリカバリシステム
JP6617388B1 (ja) * 2018-06-21 2019-12-11 レノボ・シンガポール・プライベート・リミテッド 情報処理装置、映像表示装置、および映像表示システム
CN116580680B (zh) * 2023-07-11 2024-02-20 苏州华星光电技术有限公司 显示面板的驱动方法、亮度补偿装置及显示装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2377866A (en) * 2001-07-19 2003-01-22 Visteon Global Tech Inc Transmission of digital information of varying sample rates over a synchronous network
US20090027401A1 (en) * 2007-07-25 2009-01-29 Graham Loveridge Methods and apparatus for latency control in display devices

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763319A (en) * 1986-05-19 1988-08-09 Bell Communications Research, Inc. Multi-rate synchronous virtual circuit network for voice and data communications
US5544324A (en) 1992-11-02 1996-08-06 National Semiconductor Corporation Network for transmitting isochronous-source data using a frame structure with variable number of time slots to compensate for timing variance between reference clock and data rate
JPH08340350A (ja) * 1995-06-12 1996-12-24 Sony Corp データ伝送システム
JP3317140B2 (ja) * 1996-05-07 2002-08-26 ヤマハ株式会社 データ伝送方式
EP1102171A3 (en) 1999-11-22 2004-09-08 Texas Instruments Incorporated Universal serial bus network peripheral device
KR100815128B1 (ko) * 2000-07-26 2008-03-20 톰슨 라이센싱 비동기 디지털 홈네트워크에서 멀티-미디어 지터 제거
US7088398B1 (en) 2001-12-24 2006-08-08 Silicon Image, Inc. Method and apparatus for regenerating a clock for auxiliary data transmitted over a serial link with video data
US7158596B2 (en) * 2002-08-14 2007-01-02 Standard Microsystems Corp. Communication system and method for sending and receiving data at a higher or lower sample rate than a network frame rate using a phase locked loop
JP2004153437A (ja) * 2002-10-29 2004-05-27 Murata Mfg Co Ltd 通信装置および通信状態最適化システム
US6992987B2 (en) * 2003-05-01 2006-01-31 Genesis Microchip Inc. Enumeration method for the link clock rate and the pixel/audio clock rate
US7800623B2 (en) * 2003-09-18 2010-09-21 Genesis Microchip Inc. Bypassing pixel clock generation and CRTC circuits in a graphics controller chip
FR2898452A1 (fr) * 2006-03-13 2007-09-14 Thomson Licensing Sas Procede de generation d'un double descripteur temporel pour la transmission d'un signal genlock sur un reseau ip

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2377866A (en) * 2001-07-19 2003-01-22 Visteon Global Tech Inc Transmission of digital information of varying sample rates over a synchronous network
US20090027401A1 (en) * 2007-07-25 2009-01-29 Graham Loveridge Methods and apparatus for latency control in display devices

Also Published As

Publication number Publication date
EP2420013B1 (en) 2019-11-13
JP2012523784A (ja) 2012-10-04
CN107257264B (zh) 2019-10-11
KR20120004503A (ko) 2012-01-12
US20120236755A1 (en) 2012-09-20
KR101627779B1 (ko) 2016-06-08
WO2010119326A1 (en) 2010-10-21
CN107257264A (zh) 2017-10-17
KR20150048253A (ko) 2015-05-06
US20100260296A1 (en) 2010-10-14
US8626966B2 (en) 2014-01-07
US8161204B2 (en) 2012-04-17
EP2420013A4 (en) 2015-04-15
EP2420013A1 (en) 2012-02-22
EP3664323B1 (en) 2021-07-07
JP5694292B2 (ja) 2015-04-01
CN102439926A (zh) 2012-05-02
EP3664323A1 (en) 2020-06-10

Similar Documents

Publication Publication Date Title
KR101615296B1 (ko) 내포된 클럭 복원
KR101514413B1 (ko) 정보 스큐 및 리던던트 콘트롤 정보에 의한 데이터 송신 장치 및 방법
US8397272B2 (en) Multi-stream digital display interface
JP4201743B2 (ja) データ送信装置および方法
JP2007150855A (ja) 受信システム
JP2007020166A (ja) Hdmi伝送システム
JP2013505664A (ja) 無線ネットワークでのオーディオ通信のための無線通信方法及びシステム
US8862256B2 (en) Electronic apparatus
KR20140018235A (ko) 패킷화된 통신 네트워크를 통해 통신되는 스트리밍 콘텐츠를 위한 클럭 복원 메커니즘
KR20070008069A (ko) 음성/영상신호의 동기화 장치 및 방법
JP6720566B2 (ja) オーディオ機器
JP2006332943A (ja) ストリーム制御装置、ストリーム再生方法、映像記録再生システム
US20230016118A1 (en) System and method to synchronize rendering of multi-channel audio to video presentation
US10750233B2 (en) Recording apparatus, recording method, and program
JP2000122681A (ja) 音声データ同期再生装置
CN114189727B (zh) 同步播放方法、装置、系统、电子设备及可读存储介质
US20150358647A1 (en) Data Network, Method and Playback Device for Playing Back Audio and Video Data in an In-Flight Entertainment System
JP5166394B2 (ja) マルチメディア処理システム
JP2004158921A (ja) データ送信装置及びデータ受信装置
JP2007068103A (ja) Mpeg符号化装置
JP2005086433A (ja) 機能モジュールカード及びホスト機器

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
A107 Divisional application of patent
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant