KR100699460B1 - 시리얼 링크를 통한 비디오 및 보조 데이터 전송 방법 및시스템 - Google Patents

시리얼 링크를 통한 비디오 및 보조 데이터 전송 방법 및시스템 Download PDF

Info

Publication number
KR100699460B1
KR100699460B1 KR1020047009982A KR20047009982A KR100699460B1 KR 100699460 B1 KR100699460 B1 KR 100699460B1 KR 1020047009982 A KR1020047009982 A KR 1020047009982A KR 20047009982 A KR20047009982 A KR 20047009982A KR 100699460 B1 KR100699460 B1 KR 100699460B1
Authority
KR
South Korea
Prior art keywords
data
video
transmitter
receiver
word
Prior art date
Application number
KR1020047009982A
Other languages
English (en)
Other versions
KR20040075030A (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
Priority claimed from US10/036,234 external-priority patent/US7359437B2/en
Priority claimed from US10/095,422 external-priority patent/US7257163B2/en
Priority claimed from US10/171,860 external-priority patent/US7088398B1/en
Application filed by 실리콘 이미지, 인크.(델라웨어주 법인) filed Critical 실리콘 이미지, 인크.(델라웨어주 법인)
Priority claimed from PCT/US2002/038766 external-priority patent/WO2003058946A2/en
Publication of KR20040075030A publication Critical patent/KR20040075030A/ko
Application granted granted Critical
Publication of KR100699460B1 publication Critical patent/KR100699460B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/12Systems in which the television signal is transmitted via one channel or a plurality of parallel channels, the bandwidth of each channel being less than the bandwidth of the television signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/08Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division

Abstract

송신기, 수신기, 및 시리얼 링크를 포함하는 통신 시스템이 개시된다. 상기 통신 시스템에서, 인코딩된 데이터(예를 들어, 비디오, 오디오, 및 선택적으로는 다른 보조 데이터)가 송신기로부터 수신기로 전송된다. 시리얼 링크는 TMDS 링크 또는 TMDS-like 링크일 수는 있지만 반드시 그럴 필요는 없다. 일반적인 실시예에서, 인코딩된 오디오 데이터들의 패킷들이 인코딩된 비디오 데이터 버스트 사이의 데이터 아일랜드 동안 링크의 하나 이상의 각 채널을 통해 전송된다. 본 발명의 다른 특징은 시리얼 링크를 통해 인코딩 데이터의 전송을 위해 사용되는 송신기와, 이러한 데이터를 수신하기 위한 수신기, 및 시리얼 링크를 통해 인코딩된 데이터를 전송하는 방법에 있다.

Description

시리얼 링크를 통한 비디오 및 보조 데이터 전송 방법 및 시스템{Method and system for video and auxiliary data transmission over a serial link}
본 출원은 2002년 6월 14일자로 출원되고 본 출원의 양수인에게 양도된 미국 특허 출원 No.10/171,860 호, 2002년 3월 12일자로 출원되고 본 출원의 양수인에게 양도된 미국 특허 출원 No.10/095,422호, 및 2001년 12월 24일자로 출원되고 본 출원의 양수인에게 양도된 미국 특허 출원 No.10/036,234호의 계속출원이다.
본 발명은 인코딩된 비디오 데이터 및 하나 이상의 다른 인코딩 데이터 스트림(예를 들어, 인코딩된 비디오 데이터 및 인코딩된 오디오 데이터 및/또는 다른 부가적인 데이터 패킷)을 시리얼 링크를 통해 전송하는 방법 및 시스템과, 이러한 시스템에서 사용하는 송신기 및 수신기에 관한 것이다. 바람직한 실시예에서, 시리얼 링크는 TMDS (transition minimized differential signaling) 링크이거나 TMDS 링크의 특징을 전부는 아니지만 몇 가지는 갖는 다른 링크일 수 있다.
명세서 전 부분에서, 데시멀(10진수) 수는 부가적인 접두사(prefix) 또는 접미사(suffix)를 사용하지 않고, 때때로 아래의 표시법(notation)이 사용된다.
"bit 0"는 바이트 또는 워드의 최하위 비트(least-significant bit)를 나타낸다.
접두사 "Ox"는 다음의 기호가 16진수로 표시되는 숫자임을 나타낸다(예를 들어, "OxC"는 이진수1100를 나타낸다).
접두사"Ob"는 다음의 기호가 바이너리(2진수)로 표시되는 숫자임을 나타낸다(예를 들어, "Ob1000"는 십진수 8을 나타낸다).
본 발명의 구성 요소들은 시리얼 링크의 특성에 기초한다. 데이터 및 클록 신호를 전송하기 위한 다양한 시리얼 링크가 알려져 있다.
호스트 프로세스 (예를 들어, 퍼스널 컴퓨터)로부터 모니터로 비디오 데이터의 고속 전송을 위해 주로 사용되는 종래의 시리얼 링크 중의 하나로, "TMDS" 링크 (transition minimized differential signaling interface)가 알려져 있다. TMDS 링크는 다음과 같은 특징을 포함한다.
1. 비디오 데이터는 인코딩된 다음 인코딩된 워드로 전송된다(각 8비트의 디지털 비디오 데이터 워드는 전송 전에 인코딩된 10 비트 워드로 전환된다.);
a. 상기 인코딩은 "in-band" 워드 세트들과 "out-of-band" 워드 세트들을 결정한다(인코더는 제어 신호 또는 동기 신호에 응답하여 "out-of-band" 워드들만 생성할 수 있더라도, 비디오 데이터에 응답해서는 "in-band" 워드들만을 생성할 수 있다. 각 in-band 워드는 하나의 입력 비디오 데이터 워드의 인코딩 결과 생성된 인코딩된 워드이다. 링크를 통해 전송된 in-band 워드들이 아닌 모든 워드들은 "out-of-band" 워드들이다.);
b. 비디오 데이터의 인코딩은 in-band 워드들이 천이(transition)가 최소화되도록 수행된다(in-band 워드들의 시퀀스는 감소된 또는 최소의 천이 수를 갖는다.);
c. 비디오 데이터의 인코딩은 in-band 워드들이 DC 밸런스 되도록 수행된다(상기 인코딩은 in-band 워드들의 시퀀스를 전송하는 각 전송된 전압 파형이 기준 전압으로부터 소정의 문턱 전압보다 크게 벗어나지 않게 한다. 특히, 각 "in-band" 워드의 10번째 비트는 in-band 워드의 다른 9개 비트들 중 8개 비트들이 인코딩 처리 중에 반전되었는지를 나타내고, 전에 인코딩된 데이터 비트들의 스트림에서 1 및 0들의 러닝 카운트들(running counts) 사이의 불균형을 수정한다.);
2. 인코딩된 비디오 데이터 및 비디오 클록 신호는 차동 신호(differential signals)로 전송된다(비디오 클록 및 인코딩된 비디오 데이터는 컨덕터 쌍(conductor pair)을 통해 차동 신호로 전송된다.);
3. 3 개의 컨덕터 쌍들이 상기 인코딩된 비디오 신호를 전송하고, 4번째 컨덕터 쌍이 비디오 클록 신호를 전송한다;
4. 신호 전송은 송신기(일반적으로 데스크 탑 또는 휴대용 컴퓨터, 또는 다른 호스트들과 관련된다)로부터, 수신기(일반적으로 모니터 또는 다른 디스플레이 장치 요소)로의 한 방향으로 이루어진다.
TMDS 시리얼 링크를 사용하는 것 중 하나는 디지털 디스플레이 워킹 그룹(Digital Display Working Group)에 의해 채택된 "Digital Visual Interface" 인터페이스("DVI" 링크)이다. 이것은 도 1을 참조하여 설명된다. DVI 링크는 송신기와 수신기 사이의 부가적인 제어 라인뿐만 아니라, (비디오 클록 신호를 전송하는데 공통의 컨덕터 쌍을 공유하는)두 개의 TMDS 링크 또는 하나의 TMDS 링크를 포함하도록 구성될 수 있다. 도 1의 DVI 링크는 송신기(1), 수신기(3) 및 송신기와 수신기 사이의 다음과 같은 컨덕터들을 포함한다: 4 개의 컨덕터 쌍(비디오 데이터를 위한 채널 0, 채널 1, 및 채널 2와, 비디오 클록 신호를 위한 채널 C), 송신기와 종래의 디스플레이 데이터 채널 표준(Video Electronics Standard Association 의 1996년 4월 9일자 "Display Data Channel Standard" Version 2, Rev0)과 관련된 수신기를 갖는 모니터 사이의 양방향 통신용 "DDC"(Display Data Channel) 라인, HPD(Hot Plug Detect) 라인(이를 통해 모니터는 송신기와 관련된 프로세서를 인에이블 시키는 신호를 전송하여 모니터의 존재를 나타낸다), (수신기로 아날로그 비디오를 전송하기 위한) 아날로그 라인, (수신기 및 수신기와 관련된 모니터에 DC 전력을 공급하기 위한) 전력 라인. 디스플레이 데이터 채널 표준은 송신기 및 수신기와 관련된 모니터 사이의, 모니터에 의한 모니터의 다양한 특성을 규정하는 "EDID"(Extended Display Identification) 메시지의 전송 및 송신기에 의한 모니터 제어 신호의 전송을 포함하는, 양방향 통신을 위한 프로토콜을 규정한다. 송신기(1)는 3개의 동일한 인코더/직렬변환기 유닛(2, 4, 및 6) 및 부가적인 회로(미도시)를 포함한다. 수신기(3)는 3개의 동일한 복원(recovery)/디코더 유닛(8, 10, 및 12)과 도시된 바와 같이 연결된 인터-채널 배열 회로(14) 및 부가적인 회로(미도시)를 포함한다.
도 1에 도시된 바와 같이, 회로(2)는 채널 0을 통해 전송될 데이터를 인코딩하고 인코딩된 비트들을 직렬 변환한다. 마찬가지로, 회로(4)는 채널 1을 통해 전송될 데이터를 인코딩하고 (또한, 인코딩된 비트들을 직렬 변환한다), 회로(6)는 채널 2를 통해 전송될 데이터를 인코딩한다 (또한, 인코딩된 비트들을 직렬 변환한다). 회로(2, 4 및 6) 각각은, 제어 신호("data enable" 또는 "DE" 신호로 불리는 액티브 하이 이진 제어 신호)에 응답하여, (하이 값을 갖는 DE 에 응답하여) 디지털 비디오 워드, 또는 (로우 값을 갖는 DE에 응답하여) 제어 또는 동기 신호 쌍을 선택적으로 인코딩한다. 인코더(2, 4 및 6) 각각은 다른 쌍의 제어 또는 동기 신호를 수신한다: 인코더(2)는 수직 및 수평 동기 신호(HSYNC 및 VSYNC)를 수신하고; 인코더(4)는 제어 비트들(CTL0 및 CTL1)을 수신하고; 인코더(6)는 제어 비트들(CTL2 및 CTL3)를 수신한다. 따라서, 인코더(2, 4 및 6) 각각은 (하이 값을 갖는 DE에 응답하여) 비디오 데이터를 나타내는 in-band 워드들을 생성하고, 인코더(2)는 (로우 값을 갖는 DE에 응답하여) HSYNC 및 VSYNC의 값을 나타내는 out-of-band 워드들을 생성하고, 인코더(4)는 (로우 값을 갖는 DE에 응답하여) CTL0 및 CTL1의 값을 나타내는 out-of-band 워드들을 생성하고, 인코더(6)는 (로우 값을 갖는 DE에 응답하여) CTL2 및 CTL3의 값을 나타내는 out-of-band 워드들을 생성한다. 로우 값을 갖는 DE에 응답하여, 인코더(4 및 6) 각각은, 제어 비트 CTL0 및 CTL1 (또는 CTL2 및 CTL3)의 값(00, 01, 10, 또는 11)을 각각 나타내는 4 개의 특정한 out-of-band 워드들을 생성한다.
시리얼 링크를 통해 전송된 비디오 데이터를 암호화하는 것이 제안되었다. 예를 들어, DVI 링크를 통해 전송될 디지털 비디오를 암호화하고, DVI 수신기에서 상기 데이터를 복호화하는 "HDCP"(High bandwidth Digital Content Protection)이라고 알려진 암호 프로토콜을 사용하는 것이 제안되었다. HDCP를 구현하는 DVI 송 신기는, 비디오 활성 주기(즉, DE가 하이 일 때) cout[23:0]으로 알려진 24-비트 버스들을 출력한다. 상기 24-비트 cout 데이터는, 비디오 데이터의 암호화를 위해 송신기로 입력되는 24-비트 RGB 비디오 데이터와 (송신기의 논리 회로 내에서) "Exclusive Ored" 된다. 그런 다음, 상기 암호화된 데이터는 (TMDS 표준에 따라) 전송을 위해 인코딩된다. 또한, 동일한 cout 데이터가 수신기에서 생성된다. 그런 다음, 수신기에서 수신된 인코딩되고 암호화된 데이터는 TMDS 디코딩을 하게된다. cout 데이터는 디코딩된 데이터를 복호화하고 처음 입력된 비디오 데이터를 복원하기 위해 논리 회로 내에서 디코딩된 비디오와 함께 처리된다.
송신기가, HDCP 암호화되고 인코딩된 비디오 데이터의 전송을 시작하기 전에, 상기 송신기 및 수신기는 (수신기가 보호받는 컨텐츠를 인증하고, 입력 데이터의 암호화 및 전송된 암호화된 데이터의 복호화에 사용되는 공유된 비밀 값(secret value)을 확립시키는 것을 증명하는) 인증 프로토콜을 수행하기 위해 양방향으로 통신한다. 수신기가 인증된 다음, 송신기는 제어 신호에 응답하여 (입력 비디오 데이터의 제1 라인을 암호화하기 위한) 암호화 키의 초기 세트를 계산하고, 수신기가 (전송된 비디오 데이터의 수신되고 인코딩된 제1 라인을 복호화하기 위한) 복호화 키의 초기 세트를 계산하도록 (DE 가 로우 일 때 각 수직 블랭크 구간 동안) 수신기로 상기 제어 신호를 보낸다. 암호화/복호화 키들의 초기 세트를 생성한 다음, 송신기 및 수신기 각각은 비디오 데이터의 다음 라인을 암호화 (또는 복호화)하기 위한 새로운 키 세트들을 생성하기 위해 각 블랭크 (수직 또는 수평) 구간 동안 리-키잉(re-keying)을 수행하고, 입력된 비디오 데이터의 실제 암호화 (또는 수 신되고, 디코딩된 비디오 데이터의 복호화)는 DE가 하이 일 때 (블랭크 구간이 아닐 동안)에만 마지막 키 세트를 이용하여 수행한다.
송신기 및 수신기 각각은 선형 피드백 쉬프트 레지스터(LFSR; Liner Feedback Shift Register) 모듈, 상기 LFSR 모듈을 출력하기 위해 연결된 블록 모듈, 및 상기 블록 모듈으 출력에 연결된 출력 모듈을 포함하는 HDCP 사이퍼(cipher) 회로(여기서는, 때때로 "HDCP cipher"로 나타내진다)를 포함한다. LFSR 모듈은 세션 키(Ks) 및 프레임 키(Ki)를 이용하여 인에이블 신호 각각의 인가(assertion)에 응답하여 리-키(re-key) 블록 모듈에 이용된다. 상기 블록 모듈은 세션의 시작에서 키(Ks)를 생성하고(또한, LFSR 모듈에 제공한다), (프레임의 제1 수직 블랭크 구간에 발생하는 제어 신호의 상승 에지에 응답하여) 비디오 데이터의 각 프레임의 시작에서 키(Ki)의 새로운 값을 생성한다(또한, LFMS 모듈에 제공한다).
블록 모듈은 "Round Function K" 및 "Round Function B"로 알려진 두 개의 반쪽부를 포함한다. Round Function K는 28-비트 레지스터(Kx, Ky 및 Kz)와 7 개의 S-박스들(각각 룩-업 테이블을 포함하는 4 입력 비트에 4 출력 비트의 S-박스), 선형 변환 유닛(K)을 포함한다. Round Function B는 28-비트 레지스터(Bx, By 및 Bz)와 7 개의 S-박스들(각각 룩-업 테이블을 포함하는 4 입력 비트에 4 출력 비트의 S-박스), 및 선형 변환 유닛(B)을 포함한다. Round Function K 및 Round Function B는 비슷하게 설계되었지만, Round Function K는 LFSR 모듈의 출력에 응답하여 각 클록 사이클에서 28-비트의 라운드 키들(Ky 및 Kz)이 다른 쌍(pair)을 ( 출력 모듈로) 인가(assert)하기 위해 클록 사이클 당 하나의 클록 사이퍼(cipher) 라운드를 수행하고, Round Function B는 Round Function K로부터의 각 28-비트 라운드 키(Ky)에 응답하여, 클록 사이클 당 하나의 블록 사이퍼 라운드를 수행하고 LFSR 모듈로 출력하여, 각 클록 사이클에서 28-비트 라운드 키(By 및 Bz)의 다른 쌍들을 (출력 모듈로) 인가한다.
송신기는 인증 프로토콜의 시작에서 값(An)을 생성하고, 수신기는 인증 진행 동안 상기 값(An)에 응답한다. 상기 값(An)은 세션 키를 무작위 추출하는 데 사용된다. 블록 모듈은 인증 값(An) 및 각 프레임의 시작에서 출력 모듈에 의해 업데이트 되는 초기화 값(Mi)(또는 완전 증명 값(integrity verification value)으로 불린다)에 응답하여 동작한다.
선형 변환 유닛(K 및 B) 각각은 각 클록 사이클 당 56 비트를 출력한다. 이 출력 비트들은 각 변환 유닛 내의 8 개의 확산 네트워크들(diffusion networks)의 출력들과 결합된다. 선형 변환 유닛(K)의 각 확산 네트워크는 레지스터(Ky 및 Kz)의 7개의 현재 출력 비트들에 응답하여 7 개의 출력 비트들을 생성한다. 신형 변환 유닛(B)의 4개의 확산 네트워크들 각각은 레지스터들(By, Bz 및 Ky)의 7 개의 현재 출력 비트들에 응답하여 7 개의 출력 비트들을 생성하고, 선형 변환 유닛(B)의 다른 4 개의 확산 네트워크들 각각은 레지스터(By 및 Bz)의 7개의 현재 출력 비트들에 응답하여 7 개의 출력 비트들을 생성한다.
출력 모듈은 각 클록 사이클 동안 블록 모듈에 의해 입력된(모두 112 비트) 28-비트 키들(By, Bz, Ky 및 Kz)에 압축 동작을 수행하여, 클록 사이클 당 24-비트 블록의 의사-랜덤(pseudo-random) 비트 cout[23:0]를 생성한다. 출력 모듈의 24 출력 비트들 각각은 9 텀(term)의 배타적 OR("XOR")로 구성된다.
송신기에서, 논리 회로는 각각 24-비트 블록의 cout 데이터 및 각각 입력된 24-비트 RGB 비디오 데이터 워드를 수신하고, 비디오 데이터의 암호화를 위해 그곳에 비트단위의 XOR 동작을 처리하여 암호화된 RGB 비디오 데이터 워드를 생성한다. 일반적으로, 암호화된 데이터는 수신기로 전송되기 전에 순차적으로 TMDS 인코딩을 한다. 수신기에서, 논리 회로는 각각 24-비트 블록의 cout 데이터 및 각각 복원된 24-비트 RGB 비디오 데이터 워드를 수신하고 (그리고 나서, 상기 복원된 데이터는 TMDS 디코딩을 거친다), 그곳에 비트 단위의 XOR 동작을 처리하여, 복원된 비디오 데이터를 복호화한다.
명세서 전체에 걸쳐 "TMDS-like 링크"의 표현은, 송신기로부터 수신기로 인코딩된 데이터(즉, 인코딩된 디지털 비디오 데이터) 및 인코딩된 데이터를 위한 클록을 전송할 수 있고, 상기 소신기와 수신기 사이에 하나 이상의 부가적인 신호들(즉, 인코딩된 디지털 오디오 신호 또는 다른 인코딩 데이터)를 전송할 수 있는, TMDS 링크 또는 TMDS 링크의 특성 전부는 아니지만 몇 가지 특성을 갖는 링크를 포함하는 시리얼 링크를 지칭할 때 사용될 것이다. TMDS-like 링크의 예들로 TMDS 링크와 10-비트 TMDS 코드 워드들이 아닌 N-비트(예들 들어, N 10) TMDS 코드 워드들로 데이터를 인코딩하는 것이 다를 뿐인 링크들과, TMDS 링크들과 3개 초과 또는 3개 미만의 컨덕터 쌍을 통해 인코딩된 비디오를 전송하는 것이 다를 뿐인 링크들을 포함한다. 종래에 몇 가지 TMDS-like 링크들이 존재한다.
여기서 "송신기(transmitter)"라는 용어는 데이터를 인코딩하고 상기 인코딩된 데이터를 시리얼 링크를 통해 전송할 수 있는 (그리고, 전송될 데이터의 암호화 및, 데이터의 인코딩, 전송 또는 암호화에 관련된 다른 동작을 포함할 수 있는 부가적인 기능을 선택적으로 수행하는) 어떤 장치를 지칭하는 넓은 의미로 사용된다. 여기서 "수신기(receiver)"라는 용어는 시리얼 링크를 통해 전송된 데이터를 수신하고 디코딩할 수 있는 (그리고, 수신된 데이터의 복호화 및, 상기 수신된 데이터의 디코딩, 수신 또는 복호화에 관련된 다른 동작을 포함할 수 있는 다른 부가적인 기능을 선택적으로 수행하는) 어떤 장치를 지칭하는 넓은 의미로 사용된다. 예를 들어, 송신기라는 용어는 송신기의 기능뿐만 아니라 수신기의 기능도 수행하는 송수신기를 지칭할 수 있다. 좀더 구체적인 예를 들면, (TMDS-like 링크 또는 다른 직렬 링크를 통해 비-오디오 보조 데이터를 전송하는 장치와 관련하여)송신기라는 용어는 상기 링크를 통해 비디오 데이터 및 오디오 데이터를 수신하고 상기 링크를 통해 비-오디오 보조 데이터를 전송하도록 구성된 송수신기를 지칭할 수 있다.
몇 가지 TMDS-like 링크는 전송될 입력 비디오 데이터( 및 다른 데이터)를 TMDS 링크에서 사용되는 특정 알고리즘이 아닌 코딩 알고리즘을 사용하여 입력되는 데이터보다 더 많은 비트를 포함하는 인코딩 워드들로 인코딩하고, 상기 인코딩된 비디오 데이터를 in-band 속성으로 전송하고 다른 인코딩 데이터를 out-of-band 속성으로 전송한다. 상기 속성들은 그들이 천이 최소화 및 DC 밸런스 기준을 만족시키는지에 기초하는 in-band 또는 out-of-band 속성으로 분류될 필요는 없다. 오히려, 다른 분류 기준이 사용될 수 있다. TMDS 링크에서 사용되는 것이 아닌 TMDS- like 링크에서 사용될 수 있는, 인코딩 알고리즘의 예로, IBM 8b10b 코딩이 있다. (in-band 및 out-of-band 속성 사이의) 상기 분류는 천이의 수가 많은지 적은지 에만 기초할 필요는 없다. 예를 들어, 각 in-band 및 out-of-band 속성의 천이의 수는 (몇 가지 실시예에서) 단일 범위(즉, 천이의 최소수 및 최대수로 정의된 중간 범위)내일 수 있다.
TMDS-like 링크의 송신기 및 수신기 사이에서 전송된 데이터는 (한 쌍의 컨덕터를 통해) 차동적으로 전송될 수 있지만, 반드시 그럴 필요는 없다. 또한, TMDS 링크가 (단일 픽셀 버전에서) 4개의 차동 쌍, 즉 비디오 데이터에 3개 쌍과 비디오 클록에 다른 한 쌍을 갖지만, TMDS-like 링크는 다른 컨덕터 수 또는 다른 컨덕터 쌍을 가질 수 있다.
일반적으로, TMDS 링크에 의해 전송되는 주 데이터는 비디오 데이터이다. 여기에서 종종 중요하게 여기는 것은 비디오 데이터가 연속적이지 않고, 대신에 블랭크 구간(blanking interval)을 갖는다는 것이다. 이들 블랭크 구간들은 보조 데이터가 전송될 수 있는 (본 발명의 몇 가지 실시예에서 이용되는) 기회를 제공하고, 블랭크 구간들은 사용되지 않는 대역폭(bandwidth)을 의미한다. 한편, 많은 직렬 링크는 블랭크 구간들을 갖는 데이터를 전송하지 않고, 따라서, 데이터 인에이블 신호에 응답하여 (전송을 위한) 입력 데이터를 인코딩하지 않는다. 예를 들어, 오디오 직렬 링크는 일반적으로 연속적인 데이터를 전송한다.
"보조 데이터(auxiliary data)"라는 표현은 디지털 오디오 데이터 또는 비디오 데이터가 아닌 다른 형태의 데이터 및 비디오 데이터를 위한 타이밍 정보(예를 들어 비디오 클록)를 지칭하는 넓은 의미로 사용된다. 예를 들어, 오디오 데이터를 위한 타이밍 정보(즉, 전송된 오디오 데이터를 복원하기 위한 클록)는 "보조 데이터"의 범위에 해당한다. 본 발명에 따른 전송된 "보조 데이터"의 다른 예들은 컴퓨터 키보드 신호, (즉, 카메라에 의해 생성된)스틸 이미지 데이터, 텍스트 데이터, 전력 공급을 위한 제어 신호, 그림 데이터에서의 그림, 모니터 제어 정보(오디오 볼륨, 밝기, 전력 상태), 모니터 또는 키보드 상의 라이트를 나타내기 위한 제어 신호, 비-오디오 또는 비디오 제어 정보 등을 포함한다.
여기에서 사용되는 "스트림(stream)"이라는 용어는, 모든 그 데이터가 동일한 형태이고, 동일 클록 주파수 내에 전송되는 것을 지칭한다. 여기서 사용되는 "채널(channel)"이라는 용어는, 데이터를 전송하는 데 이용되는 직렬 링크의 부분(즉, 데이터가 전송되는 송신기와 수신기 사이의 특정 컨덕터 또는 컨덕터 쌍, 및 데이터의 전송 및/또는 복원에 사용되는 송신기 및/또는 수신기 내의 특정 회로) 및 상기 링크를 통해 데이터를 전송하는 데 사용되는 기술을 지칭한다. 본 발명의 중요한 어플리케이션들에서 많은 다른 보조 데이터 스트림을 전송하는 것이 바람직하기 때문에, 본 발명의 바람직한 실시예들은 상기 링크를 통해 양 방향(즉, 비디오 데이터 방향 및 반대 방향)으로 보조 데이터의 전송을 위한 채널들을 포함하는 보조 데이터의 전송을 위한 복수의 채널들을 제공한다. 몇 가지 구현 예들에서, 하나 이상의 보조 데이터 스트림을 전송하도록 채널이 제공된다. 본 발명의 일 실시예에서, 2 개 (또는 2 이상)의 직렬 비디오 데이터 스트림들이 (1, 2 또는 2 이상의 채널을 통해) 전송되고, 또한, 1, 2 또는 2 이상의 직렬 보조 데이터 스트림 들이 전송된다.
1999년 12월 7일 등록된 미국 특허 제 5,999,571 호는 (즉, col. 5에서) TMDS 링크를 통해 전송된 (비디오 데이터를 나타내는) 코드 워드들이 천이 최소화 워드들(transition minimized words) (코드 워드 세트의 제1 서브세트) 일 때, (천이 최소화 코드 워드들과 구별되는) 동기화 워드들(synchronization words)은 인코딩된 비디오 데이터가 전송되지 않는 "프리앰블(preamble)" 주기 동안 상기 링크를 통해 전송될 수 있다는 것을 개시하고 있다. 상기 동기화 워드들은 상기 코드 워드 세트의 (상기 제1 서브세트와 분리된) 제2 서브세트의 멤버인 천이 최소화 워드들일 수 있다. 미국 특허 제 5,999,571호는 동기화 워드가 몇 번(예를 들어, 세 번) 반복적으로 연속 전송되어, 상기 동기화 워드들 중 하나의 특정 천이(예를 들어, 리딩 에지(leading edge))을 (수신기 내의) 디코더가 빠르고 정확하게 식별할 수 있게 하여 (송신기 내의) 인코더와 동기가 완성될 수 있게 하는 것을 개시하고 있다.
200년 11월 21자로 등록된 미국 특허 제6,151,334호는 각각 데이터를 표시하는 천이 최소화 코드와 구별될 수 있는, 인코딩된 제어 워드들의 몇 가지 다른 형태의 (TMDS 링크를 통한) 전송을 개시하고 있다. 상기 제어 워드들 중 최소한 몇 가지는 천이 최소화 워드들일 수 있다. 상기 제어 워드들 중 하나는, 데이터 버스트의 전 또는 후에 전송되고, 버스트의 시작과 끝 그리고 상기 버스트 동안에 전송되는 데이터의 형태를 나타내는, "데이터 스트림 분리(data stream separation)" 워드이다. 상기 제어 워드들 중 다른 하나는, 일반적으로 블랭크 구간의 시작 또 는 끝 부분에서 전송되는 동기화 속성이고, 블랭크 구간의 형태(즉, 수평 또는 수직)를 나타내며, 상기 블랭크 구간의 시작 및 끝 사이를 구별하는 "등시성 데이터 전송(isochronous data transfer)" 워드이다. 예를 들어, 제1 등시성 데이터 전송 워드는 수직 블랭크 구간의 시작을 나타내고, 제1 데이터 스트림 분리 워드는 수직 블랭크 구간의 데이터 버스트의 시작을 나타내고, 제2 데이터 스트림 분리 워드는 이러한 데이터 버스트의 끝을 나타내며, 제2 등시성 데이터 전송 워드는 수직 블랭크 구간의 끝을 나타낸다. 제1 등시성 데이터 전송 워드, 제1 데이터 스트림 분리 워드, 제2 데이터 스트림 분리 워드 및, 제2 등시성 데이터 전송 워드 각각은 천이 최소화 코드 워드이고, 천이 최소화 코드 워드는 (수직 블랭크 구간 내에서 전송된) 데이터 버스트의 데이터의 각 워드를 나타낼 수 있고, 수직 블랭크 구간 다음에는, 비디오 데이터 그 차제를 나타내는 천이 최소화 코드 워드들의 스트림이 뒤에 따라오는 (비디오 데이터 스트림의 시작을 나타내는) 제3 데이터 스트림 분리 워드를 포함하는 액티브 비디오 주기가 따라올 수 있다.
본 발명의 실시예들에서, 본 발명은, 송신기, 수신기, 상기 송신기로부터 상기 수신기로 링크의 하나 이상의 채널 각각을 통해 인코딩된 비디오 데이터 스트림 및 하나 이상의 인코딩된 다른 데이터 스트림(예를 들어 인코딩된 오디오 데이터)를 전송하기 위한 (하나 이상의 채널을 갖는) 시리얼 링크를 포함하는 통신 시스템이다. 바람직한 실시예에서, 상기 시리얼 링크는 TMDS 또는 TMDS-like 링크이다. 바람직한 실시예에서, 상기 송신기는 액티브 비디오 주기(active video period) 동 안 상기 링크의 하니 이상의 비디오 채널 각각을 통해 인코딩된 비디오를 상기 수신기로 전송하고, 데이터 아일랜드(data islands) 동안 상기 하나 이상의 비디오 채널 각각을 통해 상기 수신기로 인코딩된 보조 데이터(예를 들어, 오디오 데이터)가 포함된 패킷을 전송하며, 상기 데이터 아일랜드 각각은 상기 어떤 액티브 비디오 주기과도 동시에 발생하지 않고 겹치지도 않는 타임 주기이다. 또한, 상기 송신기는 제어 데이터 주기(control data period) 동안 하나 이상의 비디오 채널 각각을 통해 제어 데이터를 상기 수신기로 전송하고, 상기 제어 데이터 주기는 어떤 데이터 아일랜드와도 동시에 발생하지 않고 겹치지도 않으며, 어떤 액티브 비디오 주기과도 동시에 발생하지 않고 겹치지도 않는다. 본 발명의 다른 특징은, 복수의 데이터 스트림들을 포맷하고 인코딩하며 시리얼 링크를 통해 전송하는데 사용하는 송신기, 시리얼 링크를 통해 전송된 복수의 인코딩된 데이터 스트림을 수신하고 디코딩하기 위한 수신기, 및 인코딩된 복수의 데이터 스트림을 시리얼 링크를 통해 전송하는 방법에 있다.
하나 이상의 패킷들이 각 데이터 아일랜드에서 전송될 수 있다. (때때로 "제어 데이터 구간(control data interval)" 또는 "제어 주기(control period)"로 불리는) 각 제어 데이터 주기(control data period) 내에서 (동기 워드 및 "프리앰블(preamble)" 워드를 포함하는) 인코딩된 제어 워드들이 전송될 수 있다. 바람직하게는, 제1 프리앰블 워드는 각 데이터 아일랜드 바로 전에 전송되고, 제2 프리앰블 워드는 각 액티브 비디오 주기 바로 전에 전송된다. 바람직하게는, 각 데이터 아일랜드의 제1 워드는 "가드 밴드(guard band)" 워드이고, 동일한(또는 다른) 가 드 밴드 워드가 각 데이터 아일랜드의 끝에서 전송되며, 동일한(또는 다른) 가드 밴드 워드가 각 활성 비디오 주기의 제1 워드로 전송된다. 각 프리앰블 워드 및 가드 밴드 워드는 반복적으로 전송될 수 있다(즉, 각 데이터 아일랜드 전에 프리앰블은 8 개의 동일한 프리앰블 워드들의 버스트일 수 있고, 각 데이터 아일랜드 및 각 액티브 비디오 주기의 시작 부분의 가드 밴드는 2개의 동일한 가드 밴드 워드들의 버스트일 수 있다). 상기 가드 밴드 및 프리앰블 워드들은, 수신기가 각 데이터 아일랜드의 각 리딩(leading) 및 트레일링(trailing) 에지와 액티브 비디오 주기의 각 리딩 에지를 신뢰성을 갖고 식별할 수 있도록 하는 패턴을 갖도록 선택된다.
바람직하게는, 각 데이터 아일랜드는 여기서 "골든 워드(golden words)"로 지칭되는 형태의 코드 워드들로 구성된다. 각 채널에서, 상기 골든 워드 중 하나는 (상기 비디오 버스트의 리딩 에지를 식별하기 위해) 각 액티브 비디오 주기의 시작 부분에서 전송된 비디오 가드 밴드 워드로 이용되고, 다른 골든 워드는 (각 데이터 아일랜드의 리딩 및 트레일링 에지를 식별하기 위해) 각 데이터 아일랜드의 시작 및 끝 부분에서 전송된 데이터 아일랜드 가드 밴드 워드로 이용된다. 더욱 일반적으로는, 각 채널에서, 하나 이상의 소정의 골든 워드가 특정 형태의 인코딩된 데이터의 각 버스트들의 시작 또는 끝 부분(또는 시작 및 끝 부분)에서 가드 밴드로 전송될 수 있다. 2 개의 다른 가드 밴드 워드들이 각 버스트에 이용될 수 있다: 하나는 (버스트의 리딩 에지를 식별하기 위해) 상기 버스트의 시작 부분에서 전송되고; 다른 하나는 (버스트의 트레일링 에지를 식별하기 위해) 상기 버스트의 끝 부분에서 전송된다.
본 발명이 구현하는 시스템에 있어서, (각각 TMDS 인코딩 알고리즘을 이용하여 10-비트로 인코딩된, 천이 최소화 코드 워드인) 8 비트 비디오 데이터 워드들이 액티브 비디오 주기 동안 TMDS 링크(또는 직렬 비디오를 전송하기 위한 복수의 채널을 갖는 다른 TMDS-like 링크)의 비디오 채널들을 통해 전송된다. 상기 액티브 비디오 주기들 사이의 데이터 아일랜드 동안, TMDS 인코딩 알고리즘을 이용하여 10-비트로 각각 인코딩되고, 천이 최소화 코드 워드이며, 바람직하게 10-비트 골든 워드인, (일반적으로 4 비트 오디오 데이터 워드를 포함하는) 4-비트 워드를 포함하는 패킷들은 상기 비디오 채널 중 몇 개의 각각을 통해 전송된다. 상기 액티브 비디오 주기 및 데이터 아일랜드 사이의 제어 데이터 주기 동안, 상기 송신기는 (각각 10-비트로 인코딩되고, 2 제어 비트:CTL0 및 CTL1, 또는 CTL2 및 CTL3를 나타내는 천이 최소화 코드 워드인) 제어 워드 및 (각각 10-비트로 인코딩되고, 2 동기 비트:HSYNC 및 VSYNC를 나타내는 천이 최소화 코드 워드인) 동기 워드를 상기 비디오 채널들을 통해 전송한다. 각 액티브 비디오 주기 동안, 상기 수신기는, HSYNC, VSYNC, CTL0,CTL1, CTL2 및 CTL3 가 상기 액티브 비디오 주기가 시작할 때 갖던 값을 유지하고 있는 것으로 가정한다.
바람직하게는, HSYNC 및 VSYNC 비트를 나타내는 천이 최소화 코드 워드들(즉, 각 워드가 HSYNC 비트, VSYNC 비트, 패킷 헤더 비트, 및 다른 비트를 나타내는, 픽셀 클록 사이클 당 하나의 코드 워드)은 각 데이터 아일랜드 동안 한 채널(즉, CH0)을 통해 전송된다. 따라서, HSYNC 및 VSYNC 는 데이터 아일랜드 동안 패 킷을 전송하기 위해 요구되는 N-픽셀 클록 주기를 통해 반복적으로 전송될 수 있다(N은 일반적으로 32이다). 바람직하게는, 데이터 아일랜드 동안 전송된 각 패킷은 N-비트 패킷 헤더를 포함하고, 데이터 아일랜드 동안 전송되는 HSYNC 및 VSYNC를 나타내는 각 코드 워드는, 또한 상기 패킷 헤더의 한 비트를 나타낸다. 따라서, 전체 32-비트 패킷 헤더를 전송하기 위해서는 32 픽셀 클록 사이클이 필요하다.
(액티브 비디오 주기 동안) TMDS 링크의 비디오 채널을 통해 비디오 데이터가 전송되는 바람직한 실시예에서, 픽셀 클록은 TMDS 링크의 클록 채널을 통해 전송되고, 오디오(또는 다른 보조 데이터)를 포함하는 패킷들은 액티브 비디오 주기 사이의 구간에서 상기 비디오 채널을 통해 전송되며, 또한 상기 패킷들은 보조 데이터에 대한 클록을 결정하는 타임 스탬프 데이터를 포함한다. 바람직하게는, 각 패킷의 헤더는 헤더 데이터 및 상기 헤더 데이터에 대한 BCH 패리티 비트를 포함하고, 각 서브-패킷은 데이터 및 상기 서브-패킷의 데이터에 대한 BCH 패리티 비트를 포함한다. 바람직하게는, 상기 송신기는, 상기 패킷이 TMDS 링크의 3 채널(CH0, CH1 및 CH2)을 통해 확산되도록 하고, 각 서브-패킷이 상기 링크의 2 채널(CH1 및 CH2)을 통해 확산되도록 각 패킷을 (데이터 아일랜드 동안) 전송할 뿐만 아니라, 상기 송신기는, 각 서브-패킷에 대한 BCH 패리티를 분리하여 생성하고, 이들 BCH 패리티 비트들이 상기 링크의 2 채널(CH1 및 CH2)를 통해 확산되도록 각 서브-패킷에 대한 상기 BCH 패리티 비트를 전송한다.
본 발명에 따른 시스템의 일 실시예에서, 상기 송신기는 제1 테스트 패턴을 인가(assert)하도록 구성된 제1 테스트 패턴 생성기를 포함하고, 상기 수신기는, 상기 제1 테스트 패턴과 동일한 제2 테스트 패턴을 인가하도록 구성된 제2 테스트 패턴 생성기를 포함하고, 상기 송신기 및 수신기는, 상기 제1 테스트 패턴 생성기 및 상기 제2 테스트 패턴 생성기가 상기 시리얼 링크의 에러 레이트를 나타내는 테스트 데이터를 생성하도록 제어되는 테스트 모드에서 동작될 수 있다. 바람직하게는, 상기 송신기는 상기 테스트 모드 동안 하나 이상의 비디오 채널을 통해 상기 제1 테스트 패턴을 인코딩하고 전송하도록 구성되고, 상기 송신기는 상기 테스트 모드 동안 상기 제2 테스트 패턴 생성기의 동작을 제어하도록 구성되며, 상기 수신기는 상기 테스트 모드 동안 상기 테스트 데이터를 생성하도록 구성된다.
바람직한 실시예에서, 본 발명에 따른 시스템은, 수신기, 송신기, 및 상기 송신기와 수신기 사이의 비디오 채널들을 포함하는 시리얼 링크를 포함한다. 상기 송신기는, 인코딩된 비디오데이터 및 인코딩된 보조 데이터를 생성하고, 상기 인코딩된 비디오 데이터를 액티브 비디오 주기 동안 상기 비디오 채널들을 통새 상기 수신기로 전송하고, 상기 인코딩된 보조 데이터를 포함하는 패킷들을 데이터 아일랜드 동안 상기 비디오 채널들을 통해 상기 수신기로 전송하며, 상기 데이터 아일랜드 각각은 어떤 액티브 비디오 주기와도 동시에 발생하거나 겹치지도 않는 타임 구간이다. 상기 패킷 각각은 코드 워드들의 세트를 포함하고, 상기 송신기는 2 이상의 비디오 채널들 각각을 통해 상기 코드 워드들 세트의 다른 서브세트를 전송하도록 구성된다.
다른 실시예에서, 본 발명에 따른 시스템의 송신기는, 상기 송신기가 (데이 터 아일랜드 동안) 시리얼 링크의 2 이상의 비디오 채널들 각각을 통해, 하나 이상의 패킷의 암호화된 데이터를 나타내는 코드 워드 다음에 오는 비-암호화된 아일랜드 가드 밴드를 전송하고, 또한 상기 송신기가 (각 액티브 비디오 주기 동안) 상기 링크의 2 이상의 비디오 채널들 각각을 통해 암호화된 비디오 데이터를 나타내는 코드 워드 버스트 다음에 오는 비-암호화된 비디오 가드 밴드를 전송하는, 데이터 아일랜드 모드에서 동작하도록 구성된다. 또한, 상기 데이터 아일랜드 모드 동안, 상기 송신기는, 비디오 채널 각각을 통해 하나 이상의 데이터 아일랜드 프리앰블 워드를 상기 데이터 아일랜드 각각의 프리앰블로서 전송하고, 상기 비디오 채널 각각을 통해 하나 이상의 비디오 프리앰블 워드를 상기 액티브 비디오 주기 각각의 프리앰블로서 전송한다.
바람직하게는, 상기송신기는 또한, 인코딩된 비디오 데이터를 생성하고 어떤 비디오 채널들을 통해 어떤 아일랜드 가드 밴드 또는 비디오 가드 밴드를 전송하지 않고 상기 인코딩된 비디오 데이터를 액티브 비디오 주기 동안 상기 비디오 채널들을 통해 상기 수신기로 전송하는 제2 모드에서 동작가능하고, 상기 수신기는, 하나 이상의 비디오 채널들 상에서 데이터 아일랜드 프리앰블에서 아일랜드 가드 밴드로의 천이를 검출하는 것에 응답하여 상기 제2 모드의 동작에서 상기 데이터 아일랜드 모드의 동작으로 천이하도록 구성된다.
바람직한 실시예에서, 본 발명에 따른 시스템의 송신기 및 수신기는 시리얼 링크를 통해 전송된 오디오 및 비디오 데이터를 각각 암호화 및 복호화 하는 모드에서 동작 가능하고, (때때로) 상기 수신기가 복원된 암호화 데이터를 적절하게 복 호화 하는지를 판단하는 링크 증명 체크(link verification check)를 수행한다. 상기 링크 증명 체크는 상기 송신기로부터의 결과 값 및 상기 수신기로부터의 수신기 결과 값을 캡쳐(capture)하는 단계와 상기 수신기 결과 값이 상기 결과 값과 일치하는 지를 판단하는 단계를 포함한다. 다른 실시예에서, 상기 링크 증명 체크는, 제1 주기와 같이 발생하는 제1 기간(duration)의 제1 타임 윈도우즈 내에서, 상기 송신기 내의 송신기 결과 값과, 이에 대응하는 상기 수신기 내의 수신기 결과 값을 주기적으로 생성하는 단계, 제2 주기와 같이 발생하는 제2 기간의 샘플링 타임 윈도우즈 내에서, 상기 송신기 내의 송신기 결과 값과 이에 대응하는 상기 수신기 내의 수신기 결과 값을 샘플링하는 단계, 및 가장 최근에 샘플링된 수신기 결과 값이 가장 최근에 샘플링된 송신기 결과 값에 일치하는 지를 판단하는 단계를 포함하고, 상기 샘플링 윈도우즈의 어느 것도 상기 제1 타임 윈도우즈와 동시에 발생하거나 겹치지 않는다.
도 1은 종래의 DVI(Digital Visual Interface) 링크를 포함하는 시스템을 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 시스템을 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 제어 데이터 주기의 "보조 프리앰블" 및 "비디오 프리앰블" 부분에 전송된 데이터 패턴 및 상기 보조 프리앰블 및 비디오 프리앰블 부분 뒤에 전송된 가드 밴드 코드 워드를 나타낸 테이블이다.
도 4a 및 도 4b는 각각 본 발명의 일 실시예에 따른 (2 가드 밴드 워드들을 포함하는) 본 발명의 코드 워드들 중 17개 세트를 나타낸 테이블이다. 또한, 상기 테이블은 상기 실시예에 따라 설계된 수신기에 의해 상기 17개 코드 워들 각각에 매핑된 다른 코드 워드들을 나타낸 테이블이다. 도 4a 및 도 4b를 합하여 "도 4"로 부른다.
도 5는 본 발명의 일 실시예에 따른 시스템의 제어 데이터 주기 및 데이터 아일랜드 동안 송신기로 입력된 신호, 및 상기 신호에 응답하여 상기 시스템의 TMDS 링크를 통해 전송된 인코딩된 신호의 타이밍도이다.
도 6은 본 발명의 일 실시예에 따른 시스템의 제어 데이터 주기의 비디오 프리앰블 부분 동안 ( 및 그 다음의 액티브 비디오 주기 동안) 상기 송신기로 입력된 신호, 및 상기 신호에 응답하여 상기 시스템의 TMDS 링크를 통해 전송된 인코딩된 신호의 타이밍도이다.
도 7은 본 발명의 일 실시예에 따라 수신된 코드 워드들의 클러스터들(즉, 클러스터 Sa 및 Sb)을 전송된 코드 워드들(즉, 코드 워드 "a" 및 "b") 각각에 매핑시킨 도면이다.
도 8은 본 발명의 바람직한 실시예에서, 비디오 데이터( 및 가드 밴드)가 액티브 비디오 주기에 전송되고, 데이터 패킷( 및 가드 밴드)이 데이터 아일랜드 동안 전송되고, 프리앰블 워드들 및 제어 워드들이 제어 데이터 주기에 전송되는 포맷을 나타내는 도면이다.
도 9는 본 발명의 바람직한 실시예에서, 데이터가 (데이터 아일랜드 동안) 패킷으로 전송되는 포맷을 나타내는 도면이다.
도 9a는 본 발명의 바람직한 실시예에 따른, 패킷화된 데이터에 포함되는 BCH 패리티 비트를 생성하고 전송하기 위한 회로를 나타내는 구성도이다.
도 9b는 본 발명의 바람직한 실시예에 따른, 패킷화된 데이터에 포함되는 BCH 패리티 비트를 생성하고 전송하기 위한 회로를 나타내는 구성도이다.
도 9c는 본 발명의 바람직한 실시예에 따른, 패킷화된 데이터로부터 신드롬(syndrome)을 생성하기 위한 회로를 나타내는 구성도이다.
도 9d는 본 발명의 바람직한 실시예에 따른, 패킷화된 데이터로부터 신드롬을 생성하기 위한 회로를 나타내는 구성도이다.
도 10은 본 발명의 일 실시예에서, RGB 비디오 데이터가 TMDS 링크를 통해 전송되는 포맷을 나타내는 타이밍도이다.
도 11은 본 발명의 일 실시예에서, YCbCr 4:4:4 비디오 데이터가 TMDS 링크를 통해 전송되는 포맷을 나타내는 타이밍도이다.
도 12는 본 발명의 일 실시예에서, YCbCr 4:2:2 비디오 데이터가 TMDS 링크를 통해 전송되는 포맷을 나타내는 타이밍도이다.
도 13은 본 발명의 바람직한 실시예에 따른 송신기를 나타내는 블록도이다.
도 13a는 본 발명의 일 실시예에 따른 송신기에 사용되는 액티브 비디오 주기 사이에 데이터 아일랜드를 삽입할 지의 여부를 판단하는 회로를 나타내는 블록도이다.
도 13b는 도 13a의 회로가 동작할 때 상기 회로에의 해 수신되고 생성된 몇 가지 신호들을 나타낸 타이밍도이다.
도 13c는 본 발명의 일 실시예에 따른 송신기에 사용되는 액티브 비디오 주기 사이에 데이터 아일랜드는 삽입하기 위한 회로를 나타내는 블록도이다.
도 14는 본 발명의 바람직한 실시예에 따른 수신기를 나타내는 블록도이다.
도 15는 본 발명에 일반적인 실시예에 따른 시스템에 사용되는 보저 데이터 클록 전송 및 재생성(regeneration) 회로를 나타내는 블록도이다.
도 16은 본 발명의 일반적인 실시예에 따른 수신기에 사용되는 보조 데이터 클록 재생성 회로를 나타내는 블록도이다.
도 17, 18, 19, 20 및 21 각각은 본 발명의 일 실시예에 따른 시스템 (또는 데이터가 시리얼 링크를 통해 전송되는 다른 시스템)에서 구현될 수 있는 링크 완결성 체크 동작(link integrity check operation)을 나타내는 타이밍도이다.
도 22는 본 발명의 송신기에 인가될 수 있는 오디오 및 픽셀 클록의 타이밍도이다. 상기 오디오 및 픽셀 클록들은 완전히 동기하지 않는 것으로 도시된다.
도 23은 상기 송신기 및 수신기 카운팅에 의한 CTS 카운트가 어떻게 재동기화될 수 있는지를 나타내는, 본 발명의 바람직한 실시예에 따른 시스템에 의해 생성된 신호들의 타이밍도이다.
상술한 바와 같이, (여기에서 사용된) 데이터의 "스트림"이란 용어는 그 모든 데이터가 동일한 형태이고 동일한 클록 주파수에 따라 전송되는 데이터를 지칭하며, (여기에서 사용된) "채널"이란 용어는 데이터를 전송하기 위해 사용되는 시 리얼 링크의 부분(예를 들어, 데이터가 전송되는 송신기와 수신기 사이의 특정 컨덕터 또는 컨덕터 쌍, 및 상기 데이터의 전송 및/또는 복원에 사용되는 상기 송신기 및/또는 수신기 내의 특정 회로) 및 상기 링크를 통해 데이터를 전송하는 데 사용되는 기술을 지칭한다.
시리얼 링크를 통해 오디오 (또는 다른 보조) 데이터를 전송할 때, 종종 복수의 보조 데이터 스트림을 전송할 필요가 있고, 또한 보조 데이터를 전송하는 데에 링크의 복수 채널이 종종 유용하다. 예를 들어, 2 오디오 스트림(스테레오 오디오의 좌측 및 우측 스트림), 6 오디오 스트림(예를 들어, "5.1" 서라운드 사운드의 스트림), 또는 8 스트림(예를 들어, "7.1" 서라운드 사운드의 스트림)이 있을 수 있다. 반면에, 비디오와 함께 더 많은 오디오 데이터 스트림을 전송하고, 또는 오디오 및 비디오와 함께 비-오디오 보조 데이터 스트림(비디오와 동기되는 비-오디오 효과를 제공하기 위해)을 전송하는 것이 요구될 수 있다. 이러한 모든 보조 데이터 스트림들은 일반적으로 동일한 타이밍 베이스에 기초하지만, 반면에, 오디오 데이터 중 몇 가지 (또는 다른 보조) 데이터는 다른 타임 베이스에 기초할 수 있거나, 다른 샘플링 레이트를 가질 수 있다. 예를 들어, 링크를 통한 6 개의 펄스 코드 변조(PCM; Pulse code modulated) 오디오 데이터의 전송은 하나의 클록에 기초할 수 있다. (감소된 스피커 수에서 재생시키기 위해) 다운-믹스 등을 통한, 또 다른 2개의 압축 오디오 데이터 스트림이 비디오 및 PCM 데이터와 함께 전송될 수도 있다.
고속 시리얼 디지털 데이터 전송에서 데이터는 천이의 수를 최대화 또는 최소화 하거나 또는 DC 레벨의 균형을 잡기 위해 종종 인코딩을 한다. 예를 들어, 본 발명의 일 실시예에 따른 하나 이상의 TMDS 링크를 포함하는 시스템에서, 천이 최소화되고, DC 밸런스되고, TMDS 인코딩된 비디오 데이터는 TMDS 링크의 3 채널 각각을 통해 전송되고, 인코딩된 보조 데이터(즉, 오디오 데이터)는 상기 액티브 비디오 주기들 사이의 블랭크 구간 동안 상기 3 채널 중 하나 이상의 채널을 통해 전송될 수 있다. 보조 데이터에 필요한 대역폭이 주 데이터(비디오 데이터)에 필요한 대역폭보다 작고 보조 데이터 채널이 (긴 케이블로부터 발생될 수 있는) 심각한 ISI를 갖는다면, 상기 보조 데이터는 전송을 위해 비디오 데이터를 인코딩하는 데 사용되는 천이-최소화(transition-minimized) TMDS 코드 워드들의 ("골든 워드"들을 포함하는) 서브세트들을 이용하여 바람직하게 인코딩될 수 있다.
본 발명에 따른 일 실시예는, 도 2에 도시된 형태의 시스템으로 구현될 수 있다. 도 2의 송신기(1' 및 2') 사이의 TMDS 링크는 도 1의 송신기(1 및 3) 사이의 TMDS 링크와 동일하지만, 도 1에 도시된 링크의 컨덕터들 중 몇 개는 도 2에 도시되지 않는다(단순화를 위해). 도 2의 시스템도 도 1의 시스템의 기능을 수행하고, 도 1의 종래의 시스템과 같은 방식으로 비디오 데이터를 인코딩할 뿐만 아니라, 오디오 데이터(또는 다른 보조 데이터)를 인코딩하고, TMDS 링크의 채널 0, 채널 1, 및 채널 2 중 하나 이상을 통해 상기 인코딩된 보조 데이터를 전송하며(또한, 상기 각 채널을 통해 인코딩된 비디오 데이터도 전송한다), (인코딩된 비디오 데이터뿐만 아니라) 상기 인코딩된 보조 데이터를 디코딩하도록 구성된다.
도 2의 송신기(1') 및 수신기(2')는, 각각 도 1의 송신기(1) 및 수신기(3)에 대응되지만, 도 1의 송신기(1) 및 수신기(3)가 수행하지 않았던 보조 데이터 디코딩, 전송, 및 디코딩 기능을 수행한다. 도 2의 송신기(1')는 도시된 바와 같이 결합된 MPEG2 디코더(13) 및 마이크로컨트롤러(15)도 포함하는 소스 장치의 구성요소이다. 디코더(13)는 송신기(1')의 비디오 데이터 프로세싱 서브시스템으로 입력 비디오("DigVideo)를 인가하고, 송신기(1')의 오디오 데이터 프로세싱 서브시스템으로 오디오 데이터("SPDIF") 및 오디오 기준 클록("MCLK")을 입력한다. 입력된 오디오(SPDIF)는 오디오 데이터의 2 이상의 스트림(즉, 스테레오 신호의 좌측 및 우측 스트림)을 나타낼 수 있다. EEPROM(14)는 수신기(2')로 전송될 내용의 HDCP 암호화에 사용되는 키 값(key value) 및 인증 비트(identification bits)를 저장한다.
도 2의 수신기(2')는 도시된 바와 같이 결합된, EDID ROM(23), 마이크로컨트롤러(25), 디스플레이 회로(26) 및 오디오 디지털-아날로그 변환기(27; "DAC")도 포함하는 싱크(sink) 장치의 구성요소이다. EDID ROM(23)은 TMDS 링크의 DDC 채널과 연결되고, 상기 DDC 채널을 통해 마이크로컨트롤러(15)에 의해 판독될 수 있는 상태 및 구성 비트를 저장한다. 또한, 수신기(2')는 DDC 채널을 통해 마이크로컨트롤러(15)와의 통신을 위한 인터페이스(예를 들어, 도 14의 인터페이스(201))를 포함한다. 마이크로컨트롤러(25)는 I2C 통신을 위해 수신기(2')와 연결된다. EEPROM(24)는 송신기(1')로부터 수신된 내용의 HDCP 복호화에 이용되는 키 값 및 인증 비트를 저장한다.
또한, 싱크 장치(sink device)는 수신기(2')에 의해 복원된 아날로그 및/또 는 디지털 비디오를 수신하는 디스플레이 회로(26)와 수신기(2')에 의해 복원된 디지털 오디오를 수신하는 오디오 디지털-아날로그 변환기(27; DAC(27))를 포함한다.
바람직하게, 도 2의 시스템은 상기 TMDS 링크의 (도 2에 "채널 C"로 명명된)컨덕터 쌍을 통해 비디오 클록을 전송하고, 또한, 상기 링크의 하나 이상의 채널을 통해 보조 데이터를 위한 클록을 전송한다. 예를 들어, 전송기(1')는 액티브 비디오 주기 동안 (도 1의 시스템의 채널에 붙여진 참조부호와 동일한 참조부호를 갖는) 채널 0, 1 및 2를 통해 수신기(2')로 비디오 데이터를 전송하고, 상기 액티브 비디오 주기 동안이 아닌 시간에 채널 0, 1 및 2 중 하나 이상을 통해 오디오 데이터(예를 들어, 스테레오 신호의 좌측 및 우측 신호)를 전송하고, 계속해서 (예를 들어, 이진 파형의 라이징 에지에 의해 결정되는) 비디오 클록을 채널 C를 통해 전송하고, 오디오 데이터의 각 버스트와 함께 (채널 0, 1 및 2 중 하나 이상을 통해) 타임 스탬프 데이터를 전송한다. 상기 타임 스탬프 데이터는 상술한 2001년 9월 12일자로 출원된 미국 특허 출원 No.09/954,663호에 개시된 바와 같이, 오디오 데이터에 대한 클록을 결정한다. 수신기(2')는 오디오 데이터를 전송하는 데 이용되는 오디오 클록을 재생성하기 위해 상기 타임 스탬프 데이터를 프로세싱 하도록 구성된다. 전송된 타임 스탬프 데이터로부터 클록을 재생성하기 위한 바람직한 방법 및 시스템이 아래에 구체적으로 설명된다.
일반적으로 오디오 데이터 스트림에 대한 클록은 비디오 스트림에 대한 픽셀 클록보다 훨씬 낮은 주파수를 갖는다. 하지만, 대부분의 어플리케이션에서 오디오 클록은 지터(jitter)를 줄이기 위해 상기 픽셀 클록보다 훨씬 정교함을 요구한다. (지터를 갖는 디지털 오디오 데이터로부터 생성된) 아날로그 오디오의 왜곡이, 동일한 양의 지터를 갖는 디지털 비디오로부터 생성된 디스플레이된 비디오 프로그램 내의 왜곡보다 (아날로그 오디오에 노련한 사람에게) 훨씬 쉽게 식별될 수 있기 때문이다.
도 2의 시스템에서, 비디오 데이터의 8-비트 소스 워드들은 천이-최소화 10-비트 코드 워드로 인코딩되고, 그 다음 직렬 변환되고 채널 미디엄(채널 0, 1 및 2로 식별되는 컨덕터 쌍의 중 하나)을 통해 전송된다. 수신기(2')에서 각 10-비트 코드 워드는 에러가 존재하지 않으면 원래의 8-비트 워드로 다시 디코딩된다. 각 코드 워드는 9-비트 기본(9-비트 패턴의 29 세트의 천이-최소수를 갖고, 이것의 가장 중요한 비트는 기본 패턴이 천이-최소화이고, 기본 패턴 중 8 개의 가장 무의미한 비트들이 DC 밸런싱 알고리즘에 따라 반전되었거나 반전되지 않았는지를 나타내는 10번 째 비트와 연관되었음을 나타내는)의 패턴을 포함한다. 송신기(1')에서, 각 8-비트 소스 워드는 먼저 9-비트 기본 패턴들 중 하나로 인코딩되며, 그런 다음, 상기 9-비트 기본 패턴 스트림은 상기 10-비트 코드 워드 스트림으로서 (전송된 10-비트 코드 워드 스트림의 DC 밸런스를 향상시키는 방법으로) 인코딩된다. 그러나, 상기 디코딩된 비디오 데이터는, 전송된 시리얼 비트 스트림의 특정 채널 미디어 및 특정 데이터 패턴에 따라, (특히 관련된 채널이 심각한 ISI를 갖고 있을 때) 에러를 포함할 수 있다.
만일 송신기(1') 및 수신기(2')가 비디오 데이터의 인코딩 및 디코딩 방법과 동일한 방법으로 보조 데이터를 인코딩 및 디코딩하고, 시리얼 링크의 동일한 채널을 통해 인코딩된 데이터의 두 형태 모두를 전송하면, 상기 디코딩된 보조 데이터는 동일한 에러 레이트로 에러를 가질 것이다. 상기 에러 레이트는, 비디오 데이터에 대해서는 받아들일 수 있을지라도, 보조 데이터(특히 상기 보조 데이터가 오디오 데이터 일 때)에 대해서는 받아들일 수 없을 정도로 높을 수 있다. 상기 보조 데이터에 대한 에러 레이트를 줄이기 위해, 송신기(1')는 아래에 설명될 "골든 워드(golden words)"를 이용하여 보조 데이터를 인코딩하도록 구성될 수 있다. 선택적으로는, 송신기(1')는 또한 "골든 워드"를 이용하여 비디오 데이터를 인코딩하도록 구성될 수 있다 (또는, "골든 워드"를 이용하여 비디오 데이터 및 보조 데이터 모두를 인코딩하는 모드에서 동작할 수 있다). 그러나, "골든 워드"(코드 워드의 "풀 세트(full set)" 중 로버스트(robust)한 서브세트)를 이용하여 인코딩된 데이터는, 동일한 코드 워드의 "풀 세트"를 이용하여 인코딩된 동일 데이터보다 더 낮은 데이터 전송률을 반드시 갖는다(인코딩된 비트 스트림 양쪽 모두 동일 클록 주파수로 전송된다고 가정할 때). 여러 어플리케이션에서, 비디오 데이터는 골든 워드를 이용하여 인코딩되면 실제로 적절한 레이트로 전송되지 못한다. 따라서, 도 2의 시스템은 일반적으로 골든 워드를 이용하여 (비디오 데이터가 아닌) 보조 데이터를 인코딩하도록 구현된다.
본 발명의 일 실시예에서, 본 발명에 따른 송신기 및 수신기는 (액티브 비디오 주기 사이의) 각 블랭크 구간을 3 개 이상의 부분으로 구별한다: ("데이터 아일랜드 프리앰블"이 전송될 수 있는) 초기 부분 다음으로, (때때로 "데이터 아일랜 드"로 불리는) 보조 데이터 부분이 뒤따라오고, 그 뒤로 ("비디오 프리앰블"이 전송될 수 있는) 마지막 부분이 뒤따라온다. 한편, (각각 다른 인코딩된 보조 데이터 스트림의 버스트가 뒤따라오는 하나 이상의 보조 가드 밴드를 포함하는) 블랭크 구간 내에 2 또는 그 이상의 데이터 아일랜드가 있다. 즉, (블랭크 구간의 시작 부분에서) DE의 폴링 에지 및 제1 데이터 아일랜드의 끝 부분 사이의 초기 부분, 상기 블랭크 구간 내의 각 연속적인 데이터 아일랜드 전의 (다른 데이터 아일랜드 프리앰블을 포함하는) 부가적인 부분, 마지막 데이터 아일랜드 및 다음 액티브 비디오 주기 사이의 (비디오 프리앰블을 포함하는) 마지막 부분이 있다. 각 블랭크 구간의 초기 데이터 아일랜드 프리앰블 동안, 제어 비트(CTL3, CTL2, CTL1 및 CTL0)의 특정 패턴을 나타내는 코드 워드가 반복적으로 전송되고, 선택적으로 초기 비트 패턴들(예를 들어, 채널(CH2 및 CH1)의 초기 보조 프리앰블의 시작 부분에서 도 5에 "Rsvd"로 표시된 타임 구간 내의 패턴들)도 또한 전송된다. 각 블랭크 구간의 비디오 프리앰블 동안, 제어 비트(CTL3, CTL2, CTL1 및 CTL0)의 다른 특정 패턴들을 나타내는 코드 워드들이 반복적으로 전송되고, 선택적으로 초기 비트 패턴(예를 들어, 채널(CH2 및 CH1)의 비디오 프리앰블의 시작 부분에서 도 6에 "Rsvd"로 표시된 타임 구간 내의 패턴들)도 또한 전송된다. 바람직하게는, 각 데이터 아일랜드 동안, 각각 인코딩된 보조 데이터 및 가드 밴드 워드들을 나타내는 코드 워드 패킷들이 전송된다.
상술한 바와 같이, 2 또는 그 이상의 데이터 아일랜드들은 (그 사이에 액티브 비디오 주기가 없이) 연속적으로 전송될 수 있다. 또한, 2 도는 그 이상의 액 티브 비디오 주기들이 (그 사이에 데이터 아일랜드 없이) 연속적으로 전송될 수 있고, 도한, 데이터 아일랜드가 액티브 비디오 주기와 교대로 전송될 수 있다.
본 발명의 일 실시예에서, (도 3 및 도 6에 도시된 바와 같이) 비디오 프리앰블 동안 다음의 신호들이 전송된다: CTL3=0, CTL2=0을 나타내는 코드 워드 "0010101011"가 CH2를 통해 (바람직하게는, "Rsvd" 구간 내의 초기 비트 패턴 다음으로) 반복적으로 전송되고, CTL1=0, CTL0=0을 나타내는 코드 워드 "0010101011"가 CH1를 통해 (바람직하게는, 초기 비트 패턴 다음으로) 반복적으로 전송되고, 싱크 비트들(HSYNC 및 VSYNC)의 4 개의 가능한 조합 중 하나를 타나내는 코드 워드가 CH0를 통해 반복적으로 전송된다. 일반적인 동작에서, (도 6에 도시된 바와 같이 DE의 0에서 1로의 천이 전에) 비디오 프리앰블의 마지막 12 픽셀 클록 사이클 동안, 싱크 비트(HSYNC 및 VSYNC) 모두는 0의 값을 갖고, 따라서, HSYNC=0, VSYNC=0를 나타내는 코드 워드(즉 도 6의 아래 부분에 나타낸 코드 워드 "0010101011")가 채널0를 통해 전송된다.
일 실시예에서, (도 3 및 도 5에 나타낸 바와 같이) 초기 데이터 아일랜드 프리앰블 동안 다음 신호들이 전송된다: CTL3=0, CTL2=1을 나타내는 코드 워드 "1101010100"가 CH2를 통해 (바람직하게는, "Rsvd" 구간 내의 초기 비트 패턴 다음으로) 반복적으로 전송되고, CTL1=1, CTL0=0을 나타내는 코드 워드 "0010101010"가 CH1를 통해 (바람직하게는, 초기 비트 패턴 다음으로) 반복적으로 전송되고, 싱크 비트들(HSYNC 및 VSYNC)의 4 개의 가능한 조합 중 하나를 타나내는 코드 워드가 CH0를 통해 반복적으로 전송된다.
송신기로부터 수신기로의 시리얼 링크를 통해 데이터를 전송하는 동안, 심볼간 간섭(ISI; inter-symbol interference)이 에러를 일으켜 수신된 데이터가 전송된 데이터가 서로 다르게 될 수 있다. 이러한 에러를 일으키는 레이트는 채널 미디엄, 데이터가 이진 비트의 패턴인 시기, 전송되는 특정 비트 패턴 등의 요소에 따라 다르다. 본 발명의 바람직한 실시예에서, 데이터(예를 들어, 액티브 비디오 주기 사이의 데이터 아일랜드 동안 전송된 오디오 데이터)는, 시리얼 링크를 통한 전송을 위해, 종래의 동일한 데이터의 인코딩 버전에 의해 판단되는 패턴보다 링크를 통한 전송 도중 ISI에 덜 민감한 비트 패턴으로 인코딩된다. 따라서, 본 발명의 실시예에서, 데이터는 더욱 신뢰성을 갖고 전송되고, 종래의 동일한 데이터의 인코딩 보전에 비해 감소된 에러 레이트를 갖는다. 더욱 구체적으로는, 바람직한 실시예에서, 데이터는 코드 워드의 풀 세트 중 서브세트("로버스트"한 서브세트)를 이용하여 인코딩된다. 일반적으로, 풀 세트에서의 코드 워드들은 동일한 길이(에를 들어, 각각 N 비트로 구성된다)를 갖는다. 로버스트 서브세트는 여기서 때때로 코드 워드의 "선택된(selected)" 또는 "본 발명의(inventive)" 세트로 지칭될 수 있고, 로버스트 서브세트의 코드 워드들은 때때로 "본 발명에 따른" 코드 워드 (또는 "골든 워드")로 지칭될 수 있다. 로버스트 서브세트는, 전송된 (본 발명의 코드 워드 세트의 멤버들뿐만 아니라, 본 발명의 코드 워드 세트 멤버가 아닌 풀 세트의 코드 워드를 이용하여 코딩되는) 동일한 데이터의 종래 코딩 버전에 의해 판단되는 패턴보다, 시리얼 링크를 통한 전송 도중 ISI에 덜 민감한 패턴을 갖는 인코딩 데이터(본 발명의 코드 워드 세트의 멤버들만을 이용하여 코딩된)의 스트림으 로 각각 전송되도록 선택된다. 본 발명이 코드 워드 세트보다 풀 세트의 코드 워드들이 더 많기 때문에, 전송된 데이터가 종래의 코드 워드의 풀 세트를 이용하여 인코딩되는 것보다 전송된 데이터가 본 발명의 코드 워드만을 이용하여 인코딩되었다면, 단일 시간당 더 적은 데이터의 워드들이 링크를 통해 전송될 수 있다.
본 발명에 따른 데이터의 인코딩 방법은, 상기 인코딩된 데이터가 매우 긴 컨덕터, 또는 다른 방법을 이용했을 경우 전송 도중 ISI 때문에 발생하는 에러의 높은 위험이 있을 수 있는 다른 컨덕터를 통해 전송되는 어플리케이션에서 특히 매우 유용하다.
본 발명의 일 실시예에서, 송신기(1')는 본 발명에 다른 액티브 비디오 주기 사이에 전송된 보조 데이터를 다음과 같이 인코딩하도록 구성된다. 10-비트 TMDS 코드 워드 풀 세트의 서브세트는, 인코딩된 보조 데이터(본 발명의 코드 워드로만 구성되고, 때때로 "골든 워드"로 불린다)의 10-비트 워드의 전송된 각 스트림이 (본 발명의 코드 워드뿐만 아니라 본 발명의 코드 워드가 아닌 풀 세트 모든 멤버들을 포함하는)동일한 데이터의 TMDS 인코딩 버전의 전송된 스트림에 의해 결정된 패턴보다 덜 민감한 심볼간 간섭을 갖는 패턴을 갖는다.
일 실시예에서, 본 발명의 코드 워드 세트로 10-비트 TMDS 코드 워드 풀 세트의 2M-비트 서브 세트(여기서 M<8)가 선택된다. 선택적으로는, 상기 본 발명의 코드 워드 세트는 또한, 가드 밴드 워드로 사용되는 풀 세트의 하나 이상의 코드 워드를 포함한다. 도 3 및 도 4를 참조하여 아래에 설명될 (각각 10 비트를 포함 하는) 17 개의 본 발명의 코드 워드들은 하나의 부가적 가드 밴드 워드에 의해 추가된 2M-비트 서브세트(여기서 M=4)인 예들이다. 수신기(2')는 M 비트 길이의 보조 데이터 워드로서 수신된 본 발명의 10-비트 코드 워드들 각각 디코딩하도록 구현된다. 수신기(2')는 액티브 비디오 주기 동안 수신된 종래의 방법으로 인코딩된 비디오 워드들에 수행되었던 동작과 같은 디코딩 동작을 블랭크 구간 동안 수신된 인코딩된 보조 데이터에 대해서 수행한다. 그러나, 소스 보조 데이터를 (본 발명의 코드 워드들을 이용하여) 인코딩하는 동안, 송신기(1')는 소스 비디오 데이터의 종래 방법에 따라 인코딩하는 동안 수행되었던 종래의 DC 밸런싱 단계("N+1"번 째 인코딩된 비디오 워드 중 8개의 가장 무의미한 비트들이 반전되어, 9 개의 비트들을 구별되는 10번째의, N 개의 이전의 인코딩된 비디오 워드들의 누적 DC 드리프트(drift)가 소정의 문턱 값에 도달할 때의 가장 중요한 비트, 와 연관시키고, 그렇지 않으면 "N+1"번 째 인코딩된 비디오 워드 중 8개의 가장 무의미한 비트들이 반전되지 않고, 대신 상기 워드를 구별되는 다른 가장 중요한 10번 째 비트와 연관시킨다)를 수행하지 않는다. 반면에, 송신기(1')는, 결과적인 본 발명의 코드 워드 스트림의 DC 드리프트의 누적에 상관없이(또한, 본 발명의 코드 워드의 MSB가 1 또는 0인지에 관계없이), 보조 데이터의 각 4-비트 소스 워드를 본 발명의 코드 워드 중 대응되는 코드 워드로 단순히 대체하도록 구성된다. 본 발명의 코드 워드는 바람직하게는, 본 발명의 코드 워드 스트림의 비트들이 시리얼 링크를 통해 전압의 라이징 및 폴링의 천이에 연속하여 전송될 때, 본 발명의 코드 워드의 이러한 스트림들의 비트 패턴이 오버 타임을 판단하는 전압 드리프트가 적절한 양으로 제한되도록 DC 밸런스(또는 DC 밴런스와 유사하게)되게 선택된다.
일 실시예에서, 송신기(1')는 소스 보조 데이터를 (본 발명의 코드 워드를 이용하여) 인코딩하는 동안 그리고 소스 비디오 데이터를 종래 방법을 통해 인코딩하는 동안, 동일한 DC 밸런싱 단계를 수행하지 않는다. 이것은 본 발명의 코드 워드 세트를 선택하는데 고려 사항이 된다. 특히, 본 발명의 코드 워드 세트의 각 코드 워드는, 소스 보조 데이터의 4-비트 워드를 인코딩하는 동안(이를 워드를 본 발명의 10-비트 코드 워드들로 대체하기 위해), 10-비트 TMDS 코드 워드의 풀 세트 중 선택된 9-비트 기본 패턴 영역(space)의 멤버인 9-비트 기본 패턴을 갖고, 상기 9-비트 기본 패턴의 8개의 가장 무의미한 비트들은, 반전되고 제1 값을 갖는 10번 째 (가장 중요한) 비트와 관련된 결과 패턴이거나 또는, 상기 기본 패턴이 반전되지 않고 전에 인코딩된 보조 워드 스트림의 누적 DC 드리프트가 소정의 문턱 값에 도달하는지에 따라 제2의 값을 갖는 (가장 중요한) 10번 째 비트에 연관된다. 이 실시예들에서, 수신기(2')는, 액티브 비디오 주기 동안 수신된 종래의 방법으로 인코딩된 비디오 데이터 워드들에 대해 수행된 동일한 디코딩 동작을 블랭크 구간 동안 수신된 인코딩된 보조 데이터 워드들에 대해 수행되도록 하고, (10-비트 인코딩된 보조 데이터 워드들 중 하나를 종래 방법을 통한 디코딩을 통해 생성된) 각 8-비트 워드를 M-비트 길이를 각각 갖는 2M 개의 보조 데이터 워드들 중 하나로 매밍하도록 구현된다.
도 2의 시스템에 나타낸 실시예에서, 보조 데이터 인코딩 영역의 크기(본 발명의 코드 워드 세트로 인코딩될 수 잇는 다른 보조 데이터 워드들의 수)는 본 발명에 따르면 28(256)에서 2M (여기서 M<8)으로 줄어들고, 따라서, 전송될 수 있는 (본 발명에 따라 인코딩된) 보조 데이터의 유효 레이트는 채널 당 클록 주기 당 8 비트에서 채널 당 클록 당 M 비트로 줄어든다. M 값을 줄임으로써(즉, 풀 세트로부터 더 작은 본 발명의 코드 워드 세트를 선택하여), 더 낮은 비트 에러 레이트(BER)를 이룰 수 있지만, 이와 더불어 데이터 레이트도 줄어들게 된다. 이에 비해, 파라미터 M의 증가는 데이터 레이트를 증가시킬 수 있지만, BER를 증가시키는 대가를 치른다.
도 3 및 도 4를 참조하여 본 발명의 코드 워드 세트의 일 실시예를 설명한다. 상기 코드 워드 세트는 종래의 TMDS 10-비트 코드 워드의 풀 세트의 서브세트이며, 비디오 데이터의 데이터 레이트의 반절로 보조 데이터를 전송하기에 적합할 때의, 8-비트 비디오 워드(종래의 방법으로 TMDS 10-비트 코드 워드들의 풀 세트를 이용하여 인코딩된) 또한 전송되는 TMDS 링크(또는 TMDS-like 링크)를 통한 인코딩된 보조 데이터의 4-비트 워드의 전송에 유용하다. 일반적으로, 바이너리 보조 데이터의 8-비트 입력 워드들은 버퍼링되고, 각각의 4개의 가장 무의미한 비트이 도 4의 좌측 칼럼("Input D7-D0"로 표시된)에서 16개의 8-비트 워드(AD0-AD15) 중 하나로 (도 2의 송신기(1')에서) 인코딩되며, 각 8-비트 입력 워드 중 4 개의 가장 중요한 비트들 또한 16 개의 8-비트 워드(AD0-AD15) 중 적합한 하나로 인코딩된다. 상기 워드(AD0-AD15) 각각은 도 4의 좌측에서 두 번째 칼럼에 나타낸 16진수로 표기를 갖는다. 그리고, 워드(AD0-AD15) 각각은 (송신기(1')에서) 도 4의 세 번째 칼럼("TMDS 결과"로 표시된)에 나타난 바와 같이 10-비트 패턴의 대응되는 하나로 인코딩된다. 도 4의 다른 칼럼들은 코드 워드 클러스트의 매핑에 관계되는 본 발명의 특징을 참조하여 아래에 설명한다.
도 4( 및 도3)에서, 각 코드 워드의 좌측 비트는 LSB이고, (각 10-비트 코드 워드의 경우) 직렬 링크를 통해 전송될 최초 비트이다. 또한, 각 코드 워드의 우측 비트는 MSB이고, (각 10-비트 코드 워드의 경우) 상기 시리얼 링크를 통해 전송될 마지막 비트이다.
예를 들어, (LSB가 1인) 입력 보조 데이터 워드 10000000는 두 부분(1000 및 0000)으로 분할되고, 상기 두 부분은 각각 AD1 및 AD0 로서 인코딩된다. 그런 다음, 8-비트 워드 AD0는 본 발명의 10-비트 워드 "0011100101"로 인코딩되고, 상기 8-비트 워드 AD1는 본 발명의 10-비트 워드 "0110001101"로 인코딩된다. 그런 다음, 2 개의 본 발명의 워드는, 입력 워드의 가장 무의미한 반 쪽(1000)을 나타내는 비트 "0110001101" 전에 전송될 입력 워드의 "가장 중요한" 반 쪽(0000)을 나타내는 비트 "0011100101"로 직렬 변환되고 상기 시리얼 링크를 통해 전송된다. 수신기에서, 각 본 발명에 따른 10-비트 워드는 8-비트 워드 AD0-AD15 중 하나로 디코딩되고, 워드 AD0-AD15 각각과 각 8-비트 입력 보조 데이터 워드의 반 쪽(4 비트) 사이에 일대일 매핑이 존재하기 때문에, 원래의 8-비트 보조 데이터 워드가 복원된 워드 AD0-AD15로부터 재구성될 수 있다.
물론, 송신기(예를 들어 송신기(1')로) 인가되는 입력 보조 데이터는 4-비트 워드가 될 수 있고, 이 경우, 송신기는 수신된 입력 보조 데이터 워드를 워드(AD0-AD15)의 시퀀스로서 인코딩하기 전에 4-비트 포맷으로 분할(또는 포장)할 필요가 없다. 한편, 상기 입력 보조 데이터는 8-비트 워드(AD0-AD15)의 시퀀스로서 프리-인코딩(pre-encoding)될 수 있고, 상기 프리-인코딩된 보조 데이터는 8-비트 워드(AD0-AD15)의 시퀀스의 형태로 상기 송신기로 제공된다.
일반적으로, 상기 인코딩된 보조 데이터는 비디오 데이터가 전송되는 TMDS 링크의 동일 채널(CH0, CH1, 및 CH2)에서 전송되지만, 상기 보조 데이터는 비디오 데이터가 전송되는 액티브 비디오 주기 사이의 블랭크 구간 동안 전송된다. 도 5 및 도 6은 이러한 본 발명의 실시예에 따라 전송되는 신호들을 나타낸 타이밍도이다. 도 5의 위 측 9개의 신호들은 (블랭크 구간의) 제어 데이터 주기 및 데이터 아일랜드 동안 송신기로 입력되는 신호를 나타내고, 도 5의 아래 측 3개의 신호들은 상기 위 측 9개의 신호들에 응답하여 제어 데이터 주기 및 데이터 아일랜드 동안 채널(CH0, CH1 및 CH2)를 통해 전송되는 (도 4의 10-비트 워드를 이용하여 인코딩된) 보조 데이터 및 (아래에 설명될) 인코딩된 제어 및 동기 신호를 나타낸다. 이와 마찬가지로, 도 6의 위 측 9개의 신호들은 블랭크 구간(도 5의 블랭크 구간)의 끝 부분의 상기 제어 데이터 주기 및 상기 제어 데이터 주기 다음에 오는 액티브 비디오 주기 동안 송신기로 입력되는 신호들을 나타내고, 도 6의 아래 측 3 개의 신호들은 상기 위 측 9 개의 신호들에 응답하여 채널(CH0, CH1 및 CH2)을 통해 전송될 (도 4의 10-비트 워드를 이용하여 인코딩된) 보조 데이터 및 (종래의 방법 으로 인코딩된) 비디오 데이터, 및 (아래에 설명될) 인코딩된 제어 및 동기 신호를 나타낸다.
도 5 및 도 6에서:
24-비트 워드의 입력 데이터는 인코딩되기 위해 송신기의 인코딩 회로로 제공된다. 도 5는 보조 데이터 워드인 워드들(각각 도 5에서 D[23:0]로 나타낸다)에 관한 것이다. 도 6은 비디오 데이터 워드인 워드들(각각 도 6에서 D[23:0]으로 나타낸다)에 관한 것이다. 각 입력 워드 중 8 개의 비트(D{23:16])는 채널(CH2)를 통해 (10-비트 인코딩된 워드 CH2[0:9]로서) 전송되고, 각 입력 워드 중 다른 8 비트(D[15:8])는 채널(CH1)를 통해 (10-비트 인코딩된 워드 CH1[0:9]로서) 전송되고, 각 입력 워드 중 다른 8 비트(D[7:0])는 채널(CH0)를 통해 (10-비트 인코딩된 워드 CH0[0:9]로서) 전송된다. 일 실시예에서, 상기 비디오 데이터는 RGB 포맷을 갖는다 (그리고 레드, 그린 및 블루 픽셀들이 각각 CH2, CH1 및 CH0를 통해 전송된다), 따라서, 채널(CH2, CH1 및 CH0)들은 각각 여기서(도 3에서와 같이) 때때로 레드(또는 R) 채널, 그린(또는 G) 채널, 블루(또는 B) 로 불린다. 한편, 상기 인코딩된 (그리고 전송된) 비디오 데이터는 루미넌스-크로미넌스(luminance-chrominance) 포맷이다.
파형 "DCK" 는 데이터 클록을 나타낸다. 상기 데이터 클록의 각 사이클 동안, 보조 데이터(또는 가드 밴드)를 나타내는 본 발명에 따른 코드 워드 각각의 10 비트, 또는 비디오 데이터를 나타내는 종래 방법에 따른 TMDS 10-비트 코드 워드 각각은 채널(CH0, CH1 및 CH2) 중 관련된 채널을 통해 순차적으로 전송된다. 실제 구현되는 몇 가지 방법에서, 위상 쉬프팅 회로가 클록(DCK)의 다중, 위상 쉬프트된 버전을 생성하기 위해 사용되고, 그런 다음 (클록(DCK) 그 자체와 함께) 인코딩, 전송, 및 디코딩 동작의 타이밍을 제어하기 위해 이용된다. 다르게 구현되는 몇 가지 예에서, DCK의 주파수의 10 배의 주파수를 갖는 (하지만 DCK와 위상이 같은) 클록은 인코딩, 전송, 및 디코딩 동작의 타이밍을 제어하는 데 사용될 수 있고, 하나의 코드 비트가 상기 더 빠른 클록의 각 사이클 동안에 전송될 수 있다.
(도 6)의 파형 "DE" 는 비디오 데이터 인에이블 신호이고, (도 5)의 파형 "AUX DE'는 보조 데이터 인에이블 신호이다. DE=1 이고 AUX DE=0 이면, (도 6에서 D[23:16], D[15:8] 및 D[7:0]으로 나타낸) 비디오 데이터가 인코딩 되고, 상기 인코딩 비디오의 직렬 변환된 10-비트 워드는 채널(CH0, CH1 및 CH2)을 통해 전송된다. DE=0 이고 AUX DE=1 이면, (도 5의 D[23:16], D[15:8] 및 D[7:0]으로 나타낸) 보조 데이터가 인코딩되고, 상기 인코딩된 보조 데이터의 직렬 변환된 10-비트 워드는 채널(CH0, CH1 및 CH2)을 통해 전송된다. DE=0 이고 AUX DE=0이면, 상기전송기는 데이터 입력들로 인가된 신호들을 무시하고, 그 대신, 그 제어 입력(도 5 및 도 6에서 CTL[3:2]로 나타낸, 비트 CLT3 및 CLT2, 및 도 5 및 도 6에서 CTL[1:0] 로 나타낸, 비트 CTL1 및 CLT0)으로 인가된 제어 비트 쌍을 (10-비트 TMDS 코드 워드로) 인코딩하고, 상기 코드 워드들을 직렬 변환하며, 채널(CH1 및 CH2)를 통해 상기 직렬 변환된 코드 워드들을 전송한다. DVI 시스템에서, 상기 송신기는 그의 동기 입력으로 인가된 동기 비트 쌍(HSYNC 및 VSYNC)을 (10-비트 천이 최대화 워드로) 인코딩하고, 상기 인코딩 워드들을 직렬 변환하며, DE=0 일 때 채널(CH0)를 통해 상기 직렬 변환된 코드 워드들을 전송한다. 그러나, 본 발명의 바람직한 실시예에서, 각 데이터 아일랜드 동안, HSYNC 및 VSYNC를 나타내는 10-비트 천이-최소화 코드 워드는 채널(CH0)을 통해 각 픽셀 클록 사이클 단위로 전송된다(예를 들어, HSYNC, VSYNC 및 다른 2 비트를 나타내는 하나의 코드 워드가 픽셀 클록 사이클 단위로 전송된다). 이러한 방법으로, 데이터 아일랜드 동안 패킷을 전송하기 위해 필요한 32-픽셀 클록 주기를 통해 HSYNC 및 VSYNC 가 반복적으로 전송될 수 있다. 바람직하게는, 데이터 아일랜드 동안 전송된 각 패킷은 32-비트 패킷 헤더를 포함하고, 데이터 아일랜드 동안 전송된 HSYNC 및 VSYNC를 나타내는 각 코드 워드는 또한, 상기 패킷 헤더의 한 비트를 나타낸다. 따라서, 전체 32-비트 패킷 헤더를 전송하기 위해 32-픽셀 클록 사이클들이 요구된다.
도 5 및 도 6이 2 데이터 인에이블 신호 "DE" 및 "AUX DE"를 참조하여 설명되었지만, 상기 본 발명에 따른 송신기는 신호 데이터 인에이블 신호(예를 들어 신호 (DE 및 AUX DE)의 논리적 "OR" 동작의 수행 결과를 나타내는 결합된 인에이블 신호)에 응답하여 설명된 인코딩, 직렬 변환, 및 전송을 수행하도록 구성된 부분(예를 들어, 도 13의 송신기(100)의 "코아" 프로세서(114))으로 구현될 수 있음을 알 수 있다. 상기 송신기의 외측의 부가적 회로인 코아는 보조 데이터(예를 들어 24-비트 보조 데이터 워드) 및 비디오 데이터(예를 들어, 24-비트 비디오 데이터 워드)의 분리된 세트. 및 비디오 데이터 인에이블 신호(DE), 보조 데이터 인에이블 신호(AUX DE)를 수신하도록 구성된다. 데이터 인에이블 신호 다음에 오는 값들의 반복적인 시퀀스를 갖는다: (DE=0, AUX DE=0), 그리고, (DE=1, AUX DE=0), 그리 고, (DE=0, AUX DE=0), 그리고 (DE=0, AUX DE=1). 물론, 데이터 인에이블 신호 또한 비-반복 시퀀스를 포함하는 다른 값들의 시퀀스로 발생할 수 있다. 예를 들어, 몇 가지 환경에서는, 보조 데이터는 모든 비디오 블랭크 구간이 아닌 몇 개의 블랭크 구간에서만 전송된다. 따라서, 보조 데이터는 하나의 블랭크 구간에서 전송되고 이웃하는 다음 블랭크 구간에서는 전송되지 않을 수 있다. 이때, 신호(DE 및 AUX DE)는 다음 값의 시퀀스를 갖는다: (DE=0, AUX DE=0), 그리고, (DE=1, AUX DE=0), 그리고 (DE=0, AUX DE=0), 그리고 (DE=0, AUX DE=1), 그리고 (DE=0, AUX DE=0), 그리고 (DE=1, AUX DE=0), 그리고 (DE=0, AUX DE=0), 그리고 (DE=1, AUX DE=0). 상기 송신기의 부가적 회로는 결합된 데이터 인에이블 신호를 생성하기 위해 신호(DE 및 AUX DE)들을 OR 연산하는 논리 회로부를 포함할 수 있다. 상기 부가 회로는 상기 보조 데이터를 4-비트 포맷으로 포장할 수 있고, 상기 보조 데이터의 각 4-비트 부분을 도 3에 도시된 워드(AD0-AD15) 중 하나로 인코딩할 수 있고, 가드 밴드 워드를 적절한 타이밍으로 보조 데이터 워드(AD0-AD15)의 스트림으로 추가하고, 비디오 가드 밴드 워드를 비디오 데이터 스트림으로 추가(또는 적절한 타이밍으로, 비디오 데이터의 워드들을 비디오 가드 밴드 워드들로 대체)할 수 있다. 상기 부가 회로는 비디오 데이터 버스트의 시퀀스(비디오 가드 밴드 워드와 함께), 및 보조 데이터(가드 밴드 워드와 함께)를 (예를 들어, 비디오 가드 밴드 워드와 함께 하는 비디오 데이터 버스트와 가드 밴드 워드와 함께 하는 보조 데이터를 교대로)코어로 인가할 수 있고, 상기 결합된 데이터 인에이블 신호를 코어로 또한 인가할 수 있다. 상기 코어는 (분리된 DE 및 AUX DE 신호보다는) 상기 결합된 데이 터 인에이블 신호 및 비디오 및 보조 데이터 버스트에 응답하여 도 5 및 도 6을 참조하여 설명된 모든 인코딩, 직렬 변환, 및 전송 동작을 수행한다.
이전의 문단에서 설명된 실시예들의 변형에서, 상기 송신기의 "부가 회로(additional circuitry)"는 2 이상의 보조 데이터 세트(각각의 세트는 다른 형태의 보조 데이터를 포함한다)를 수신하고 인코딩하도록 연결되고 구성된다. 또한, 상기 부가 회로는 비디오 데이터 세트, 보조 데이터 세트 각각에 대한 보조 데이터 인에이블 신호(예를 들어, 제1 및 제2 보조 데이터 인에이블 신호(AUX1 DE, AUX2 DE), 및 비디오 데이터 인에이블 신호(DE)를 수신하고, 비디오 데이터 버스트 및 인코딩된 보조 데이터 버스트의 시퀀스를 상기 송신기의 코어로 인가하도록 연결되고, 구성된다. 비디오 데이터 인에이블 신호(DE) 및 보조 데이터 인에이블 신호(AUX1 DE 및 AUX2 DE)는 다음과 같은 값의 반복적인 시퀀스를 갖는다: (DE=0, AUX1 DE=0, AUX2 DE=0), 그리고, (DE=1, AUX1 DE=0, AUX2 DE=0), 그리고 (DE=0, AUX1 DE=0, AUX2 DE=0), 그리고 (DE=0, AUX1 DE=1, AUX2 DE=0), 그리고 (DE=0, AUX1 DE=0, AUX2 DE=1). 상기 부가 회로는 결합된 데이터 인에이블 신호를 생성하기 위해 신호들(DE, AUX1 DE, 및 AUX2 DE)를 OR 논리 연산하고, 상기 결합된 데이터 인에이블 신호를(개별적인 비디오 데이터 인에이블 신호 및 보조 데이터 인에이블 신호가 아닌) 상기 코아로 인가하는 논리 회로부를 포함할 수 있다.
시리얼 링크의 하나 이상의 채널 각각에서(예를 들어, TMDS 링크를 통해 본 발명에 따른 데이터 전송 시의 채널(CH2 및 CH1) 각각에서), 본 발명에 따른 코드 워드 중 적절한 하나의 워드(또는 본 발명에 따른 가드 밴드 워드 중 2 이상의 적 절한 워드들)가 바람직하게, 인코딩된 보조 데이터 버스트 각각의 시작 부분(즉, 각 블랭크 구간의 각 "보조 프리앰블" 바로 뒤), 인코딩된 보조 데이터 버스트 각각의 끝 부분, 및 인코딩된 비디오 데이터 버스트 각각의 시작 부분(즉, 각 블랭크 구간의 "비디오 프리앰블" 바로 뒤)에서 (가드 밴드 워드 또는 가드 밴드 워드 세트로서) 전송된다.
본 발명의 바람직한 실시예에서, 데이터 아일랜드 동안 전송될 소스 데이터는 코드 워드 풀 세트의 "로버스트" 서브세트를 이용하여 인코딩된다. 각각의 "로버스트" 서브세트는 코어 워드 세트(여기서 때때로 "골든 세트"로 불린다)로 구성되고, 각 골든 세트는 하나 이상의 코어 워드(여기서 때때로 "골든 워드"로 불린다)로 구성된다. 골든 세트의 각 "골든 워드"는 단일 소스 데이터 값(예를 들어 소스 데이터 워드)를 나타낸다. 골든 세트가 2 이상의 골든 워드로 구성된 경우, 이들 골든 워드 각각은 동일한 소스 데이터 값을 나타낸다. 풀 세트 내의 코어 워드의 클러스터들이 결정된다. 각 클러스터는 "골든 세트"를 포함하고, 또한, 선택적으로 하나 이상의 부가적인 풀 세트의 코어 워드를 포함하고, 여기서 부가적인 코어 워드 각각은 각 부가적인 코어 워드가 상기 골든 워드의 전송 또는 전송 및 디코딩 중에 있을 수 있는 비트 에러 결과 생성될 수 있다는 점에서 클러스터의 골든 세트의 골든 워드와 "유사"하다. 상기 클러스터들 중 하나 내의 수신된 코어 워드 각각은 클러스터 골든 세트에 의해 결정된 소스 데이터 값으로 매핑된다. 수신된 코드 워드의 클러스터로부터 단일 소스 데이터 값으로의 매핑 각각은, 상기 클러스터 내에서 에러를 갖는 워드를 상기 에러를 갖는 워드에 가장 적절하게 대응 되는 소스 데이터 값으로 다시 매핑 시킴으로써 에러 정정을 제공할 수 있다.
코드 워드의 풀 세트는, 시리얼 링크의 채널을 통한 전송을 위해 한 종류의 데이터(예를 들어, 비디오 데이터)를 인코딩하는 데 이용될 수 있고, 상기 로버스트 서브세트는, 상기 동일 채널을 통한 전송을 위해 다른 종류의 데이터(예를 들어, 오디오 데이터 또는 비디오 데이터에 관련되거나 유용한 다른 "보조" 데이터)를 인코딩하는 데 이용될 수 있다.
일 실시예에서, 각 골든 세트 내의 각 코드 워드(그리고 풀 세트 내의 각 코드 워드)는 M-비트의 인코딩된 버전을 갖는 N-비트 워드이며, 여기서 M은 N보다 작은 정수이다. 시리얼 링크를 통해 N-비트 골든 워드의 시퀀스 전송 뒤, 수신된 N-비트 코드 워드 각각은 (전송에 에러가 발생하면) 골든 워드들 중 하나와 다를 수 있고, 또는 상기 전송된 골든 워드들 중 하나와 동일할 수 있다. 상기 클러스터들 중 하나 내의 수신된 N-비트 코드 워드 각각은 디코딩된 M-비트 워드를 생성하기 위해 디코딩되고, 상기 디코딩된 M-비트 워드 각각은 상기 클러스터의 골든 세트에 의해 결정된 소스 데이터 값으로 매핑된다.
예를 들어, 일 실시예에서, 코드 워드의 풀 세트는 10-비트의 세트이고, 256 개의 8-비트 소스 워드를 나타내는 천이-최소화 TMDS-인코딩 워드이다. 상기 풀 세트의 로버스트 서브세트는 256 개의 8-비트 소스 워드 풀 세트의 서브세트를 나타내는 8-비트 "골든 워드"로 구성된다. 본 발명의 바람직한 실시예에서, 수신된 상기 클러스터들 중 하나 내의 10-비트 코드 워드 각각은 8-비트 워드를 복원하기 위해 TMDS 디코딩 알고리즘(또는 상기 알고리즘의 변형 버전)에 따라 디코딩되고, 복원된 8-비트 워드 각각은 클러스터에 의해 결정된 8-비트 소스 워드로 매핑된다.
도 7을 참조하여, 본 발명의 바람직한 실시예에서 이용되는 수신된 워드의 클러스터(예를 들어, 도 7의 클러스터(Sa 및 Sb))를 개개의 전송된 소스 데이터 워드(예를 들어, 워드(a 및 b))로 매핑하는 방법의 개념을 설명한다. 그리고, 도 4를 참조하여 상기 매핑의 특정 예를 설명한다.
도 7을 참조하면, (예를 들어, 보조 데이터가 풀 세트의 본 발명에 따라 "골든 워드"만을 이용하여 인코딩되었을 때, 주 데이터를 인코딩하도록 사용될 수 있는) 코드 워드의 풀 세트는 2N 개의 다른 소스 데이터 워드를 인코딩하는 데 사용될 수 있는 코드 워드들(2N 공간(space))이고, 각 소스 데이터 워드는 정된된 쿠 비트의 세트이다. 상기 골든 워드(2n 공간)는 2n 개의 다른 소스 데이터 워드를 인코딩하는 데 이용될 수 있는 풀 세트 코드 워드의 서브세트이며, 상기 소스 데이터 워드 각각은 정돈된 n 비트의 세트(여기서 "n"은 N보다 작은 정수)이다. 맨 처음, 원래의 소스 데이터(어떤 길이의 워드를 구성할 수 있는)는 n-비트 포맷(즉, 2n 소스 데이터 워드 세트의 n-비트 멤버로)으로 버퍼링되고 포장될 수 있다. 그런 다음, 각각의 다른 n-비트 소스 데이터 워드는, 골든 워드 중 하나(2n 공간에서)로서 인코딩될 수 있고, 시리얼 링크(일반적으로 상기 링크의 단일 채널을 통해)를 통해 전송된다. 상기 전송은 에러를 낼 수 있거나 에러가 없을 수 있다.
코드 워드의 풀 세트의 클러스터들은, 각 클러스터가 (하나 이상의 골든 워 드인) "골든 세트", 및 선택적으로 하나 이상의 풀 세트의 부가적 코드 워드를 포함하도록 미리 예정될 수 있고, 상기 부가적 코드 워드 각각은 상기 클러스터의 골든 세트의 골든 워드와 유사하다. 도 7에서, 예를 들어, 클러스터(Sa)는 소스 워드(a)를 인코딩하는 골든 워드 각각을 구성하는 골든 세트를 포함하고, 클러스터(Sb)는 소스 워드(b)를 인코딩하는 골든 워드 각각을 구성하는 골든 세트를 포함한다. 상기 클러스터들 중 하나 내의 수신된 코드 워드 각각은 상기 클러스터 골든 세트에 의해 결정된 소스 데이터 값에 매핑된다.
N=8이고 n=4인 일 실시예에서, 2N 공간의 각 코드 워드는 10-비트 TMDS 인코딩된 워드이며, 상기 2n 공간은 10-비트 TMDS 인코딩된 워드의 풀 세트의 서브세트이다. 전송된 10-비트 TMDS 코드 워드 각각은 TMDS 디코딩 알고리즘 (또는 상기 알고리즘의 변형 버전)을 따라 디코딩되어 8-비트 코드 워드를 생성한다. 본 발명의 상기 실시예 및 다른 실시예에서, 골든 워드의 전송( 및 상기 골든 워드의 어떤 디코딩)은 에러가 있을 수 있거나 또는 에러가 없을 수 있다.
특정 골든 워드 각각에 대해, 전송 에러들의 어떤 형태들은 상기 채널이 심볼간 간섭 또는 다른 감성(degradation)을 가질 때 예상된다. 따라서, 각 골든 워드에 대해(즉, 2n 공간의 N-비트 멤버 각각에 대해), 이러한 골든 워드를 포함하는 클러스터는 바람직하게, 골든 워드의 전송 도중 전송 에러의 발생이 유발될 수 있는 2n 공간의 모든 N-비트 멤버들을 포함한다. 그러나, 상기 클러스터들은 분리되 어 있기 때문에, 하나의 클러스터 내의 N-비트 워드는 모든 다른 클러스터들로부터 제외된다.
본 발명에 따른 각 실시예는 골든 세트의 각 골든 워드에 부가되는 하나 이상의 코드를 포함하는 하나 이상( 및 일반적으로 1보다 많이)의 클러스터를 이용한다. 본 발명에 따른 몇 가지 실시예에서는 골든 세트의 각 골든 워드에 부가되는 하나 이상의 코드를 포함하는 하나 이상의 클러스터 및, 골드 세트의 각 골든 워드 외의 다른 코드를 포함하지 않는 하나 이상의 다른 클러스터를 이용한다. 모든 클러스터들(예를 들어, 도 7의 Sa, Sb 등)은 서로 상호 분리되어 있기 때문에, 전송 도중(또는 전송 및 디코딩 도중) 에러가 발생하거나 발생하지 않거나에 관계없이, 클러스터가 수신된 N-비트 코드를 포함하고 있으면, 상기 수신된 코드는 정정된 소스 워드로 재 매핑된다.
도 7의 실시예에서, 코드 워드의 풀 세트(2n 공간)은 10-비트 TMDS 코드 워드의 풀 세트이고, 상기 2n 공간은 16개의 다른 8-비트 소스 데이터 워드의 소정 세트를 나타내는 TMDS 코드 워드들로 구성된다. 따라서, 각 클러스터는 16 개의 다른 소스 데이터 워드 중 하나를 나타내는 골든 워드를 포함하는 TMDS 코드 워드의 골든 세트를 포함한다. 일반적으로, 원본 소스 데이터의 4-비트 워드는 16 개의 다른 8-비트 소스 데이터 워드로 예비적으로 인코딩되고, 그런 다음 생성된 8-비트 소스 데이터 워드 각각은 전송을 위해 2n 공간의 10-비트 멤버 중 하나로 인코딩된 다. 따라서, (TMDS 코드 워드의 풀 세트의) 로버스트 서브세트는 (TMDS 디코딩 알고리즘 또는 상기 알고리즘의 변형 버전으로 디코딩될 때)(TMDS 코드 워드의 풀 세트에 이해 결정된 256 개의 8-비트 소스 데이터 워드의) 16 개의 소정의 8-비트 소스 데이터 워드를 결정하는 10-비트 TMDS 코드 워드로 구성된다. 각 클러스터는 바람직하게, 골든 세트의 골든 워드뿐만 아니라, 다른 TMDS 코드 워드보다 골든 워드의 전송 중 비트 에러로부터 더 발생할 수 있다는 점에서 골든 워드 중 하나와 "유사한" (즉, 골든 워드와 유사한 코드 워드는 골든 워드와 비트들 중 하나의 값만이 다르다) 하나 이상의 10-비트 TMDS 코드 워드를 포함한다.
코드 워드의 풀 세트로부터 골든 세트를 선택하는 과정은 매우 중요하다. 일반적으로, 바이너리 코드 워드의 풀 세트로부터 선택된 특정 골든 세트에 대한 최고의 선택은 풀 세트에 의해 구현된 특정 코딩에 달려 있다(즉, 풀 세트의 각 코드 워드의 비트의 어떤 것이 0이고, 어떤 것이 1인지의 구체적인 사항). 상술한 바와 같이, 몇 가지 바람직한 실시예에서, 골든 세트의 코드 워드는 (전송 중의) 시리얼 패턴이 더 적은 연속된 0 및 1들을 갖는(예를 들어, 평균적으로) 것들로 선택되고, 따라서, 선택되지 않는 풀 세트의 코드 워드들 보다 전송 도중 ISI 에 덜 민감하게 된다(예를 들어, 골든 워드의 코드 워드 당, 연속된 0 및 1의 평균 수는 골든 워드로 선택되지 않는 풀 세트의 코드 워드들 보다 훨씬 작다).
다른 바람직한 실시예에서, 상기 골든 워드는 하나의 클러스터 내의 어떤 골든 워드와 다른 클러스터 내의 어떤 골든 워드 사이의 해밍(Hamming) 거리가 문턱 값을 초과하는 기준 및, 다른 클러스터들 내의 골든 워드들 사이의 해밍 거리가 서로 분리된 클러스터들에 구속(constraint)되는 실제 거리를 최대화(몇 가지 의미에서)하는 기준(예를 들어, 다른 클러스터들 내의 골든 워드들 사이의 평균 해밍 거리가 최대화되는 기준)을 만족하도록 선택된다. 이것은 클러스터들이 서로 분리된 구속을 유지하면서, 각 클러스터에 포함될 수 있는 (하나의 골든 세트의 골든 코드들이 아닌 다른 코드인) "에러가 있는 코드(errored codes)"의 멤버의 수를 증가시키도록 한다.
본 발명을 구현하기 위해, 수신기(예를 들어, 도 14의 수신기(200))는 바람직하게, 상기 클러스터의 요소를 나타내는 각 입력들에 응답하여 (즉, 상기 클러스터가 하나의 골든 워드 및 상기 골든 워드와 유사한 3개의 코드 워드로 구성된, 4개의 수신된 코드 워드 각각에 응답하여), 각 클러스터에 의해 결정된 하나의 값(예를 들어, 소스 데이터 워드)을 출력하는 소정의 테이블을 포함하도록 구성된다. 상기 테이블은, 각 클러스터 내의 수신된 코드 워드 각각을 상기 클러스터의 골든 세트에 의해 결정된 소스 워드로 매핑하거나, 또는 각 클러스터 내의 수신된 코드 워드 각각을 상기 클러스터의 골든 세트의 골든 워드로 매핑하거나(그런 다음, 수신기 (또는 수신기 외부) 내에 있는 종래의 하드웨어 또는 소프트웨어에 의해 상기 클러스터 골든 세트에 의해 결정된 소스 워드로 매핑된다), 또는 각 클러스터 내의 수신된 코드 워드 각각의 디코딩 버전을 상기 클러스터 골든 세트에 의해 결정된 소스 워드로 매핑하거나, 또는 각 클러스터 내의 수신된 코드 워드 각각의 디코딩 버전을 단일 디코딩된 코드 워드로 매핑한다(그런 다음, 상시 수신기 내 또는 외부에 있는 종래의 하드웨어 또는 소프트웨어에 의해 상기 클러스터 골든 세트에 의해 결정된 소스 워드로 매핑된다).
예를 들어, 도 14의 수신기(200)는 이러한 테이블을 구현하는 (코어 워드 복원 회로를 포함하는) 코어 프로세서, 및 (시스템(208)의) 매핑 및 디코딩 회로(20)를 포함한다. 회로(214)는 TMDS 채널(CH0, CH1 및 CH2) 각각에서 수신된 데이터로부터 10-비트 TMDS 코드 워드를 복원하도록 구성된다. 회로(20)는 (테이블을 이용하여) 상기 클러스터 중 하나 내의 복원된 워드 각각을 상기 클러스터의 골든 워드로 매핑하고, 골든 워드 각각을 디코딩하여 8-비트 디코딩 값(도 4의 좌측 칼럼 내의 17 개의 8-비트 워드 중 하나)을 생성하도록 구성된다. 상기 8-비트 디코딩 값은 소스 워드들을 나타낸다. 본 발명의 몇 가지 실시예들에서, 매핑 및 디코딩 회로가 (도 4의 워드(AD0-AD15) 중 하나를 나타내는) 디코딩된 8-비트 워드 각각에 응답하여 4-비트의 원본 소스 데이터 워드를 생성하지만, 도 14의 회로(20_는 복호화 회로(21)로 8-비트 디코딩된 워드들을 인가한다.
상기 클러스터(그리고 상기 수신기 내의 상술한 테이블로의 입력)는 코드 워드의 풀 세트(예를 들어, 도 7의 2N 공간)의 부분이 될 수 있고, 상기 클러스터의 결합은 코드 워드의 전체 공간(예를 들어, 도 7의 전체 2N 공간)을 커버하고, 상기 클러스터들을 상호 분리된다. 그러나, 상기 풀 세트 내의 코드 워드들 중 하나가 하나의 골든 워드의 전송에 응답하여 수신될 수 있는 가능성은 매우 작거나 무시될 수 있고, 따라서, 이러한 코드 워드는 상기 클러스터 모드로부터 제외될 수 있다(그리고 상기 테이블에서 누락될 수 있다). 후자의 경우, 상기 클러스터의 결합은 코드 워드의 전체 공간(예를 들어, 도 7의 전체 2N 공간)을 커버하지 않는다.
편의상, 청구항에서, "클러스터의 코드 워드 각각을 상기 클러스터의 바람직한 워드 세트(또는 골든 세트)에 의해 결정된 입력 데이터(또는 소스 데이터) 값으로 매핑하기 위해" 또는 이러한 표현의 변형된 표현이 사용된다. 이러한 표현은, 클러스터의 코드 워드 각각을 상기 클러스터의 바람직한 워드 세트(골든 세트)에 의해 결정된 소스 데이터(입력 데이터) 값으로 직접 매핑하는 것을 가리키며, 또는 상기 골든 워드(또는 바람직한 워드)에서 상기 클러스터의 골든 세트(또는 바람직한 워드 세트)에 의해 결정된 소스 데이터(입력 데이터) 값으로의 종래 방법에 따른 매핑이 선택적으로 뒤따라오는 클러스터의 코드 워드 각각을 상기 클러스터의 골든 세트(또는 바람직한 워드 세트)의 골든 워드(또는 바람직한 골든 워드)로 매핑하는 것을 가리키며, 또는 클러스터의 코드 워드 각각의 디코딩된 버전을 상기 클러스터의 골든 세트(또는 바람직한 워드 세트)에 의해 결정된 소스 데이터(입력 데이터) 값으로 매핑하는 것을 가리키며, 또는 상기 디코딩된 코드 워드를 상기 클러스터의 골든 세트(또는 바람직한 워드 세트)에 의해 결정된 소스 데이터(입력 데이터)로 종래의 방법에 따라서 매핑하는 것이 선택적으로 뒤따라오는 클러스터의 코드 워드 각각의 디코딩된 버전을 단일 디코딩 코드 워드로 매핑하는 것을 가리킨다.
각 클러스터 내의 워드들의 골든 코드로의 매핑은, 예를 들어, 상기 골든 코드를 포함하는 소정 클러스터에 속하는 수신된 워드 각각에 대한 골든 코드를 대신 하기 위해 클록 로직(clocked logic)을 이용하여, 어떤 의미로는 "온 더 플라이(on the fly)" 방식으로 수행될 수 있다. 예를 들어, 몇 가지 실시예들에서, 상기 수신기는, 수신된 코드 워드의 어떤 비트가 에러가 발생할 것 같은지를 판단하고, 상기 수신된 코드 워드를 에러가 발생할 것 같다고 판단한 각 비트를 플리핑(flipping)함으로써 골든 코드로 매핑하는 규칙을 적용하는 (도 14의 회로(20) 내의) 논리부를 포함한다. 한편, 각 클러스터 내의 워드로부터 골든 코드로의 매핑 방법은, 상기 골든 코드를 포함하는 클러스터의 각 워드에 응답하여 골든 코드를 출력하는 룩-업 테이블을 이용하여 수행된다.
일반적으로, 골든 워드 내의 어떤 비트("취약한" 비트로 불린다)가 가장 에러에 취약한지 판단하기 위해 알고리즘이 (예를 들어, 소프트웨어 또는 논리 회로에 의해) 구현될 수 있고, 그런 다음, "에러를 포함할 것 같은 코드 워드"를 판단하기 위해 골든 워드의 취약한 비트를 에러가 있는 버전으로 대체되는 프로세스가 구현되고, 그런 다음, "에러를 포함할 것 같은 코드 워드" 모두(또는 그 모두의 서브세트)를 실제 수신된 코드 워드와 비교하는 프로세스가 구현되어 "에러를 포함할 것 같은 코드 워드"인 수신된 코드 워드 각각을 대응하는 골든 워드로 매핑한다. 취약한 비트를 식별하기 위한 알고리즘은 바람직하게 심볼간 간섭에 가장 민감한 비트를 식별한다. '1' 비트들의 스트림 내의 단일 '0' 비트가 그 예가 된다.
취약한 비트들이 발견되면, 이들은 상기 골든 워드 내에서 플리핑되고, 따라서, "에러를 포함할 것 같은 코드 워드"를 생성한다. 단일 또는 하나 이상의 취약한 비트는 이들 각각이 에러에 얼마나 취약한 지에 따라, 플리핑 될 수 있다. 다 른 방법으로는, 어느 비트 패턴이 취약한 비트들을 포함하는지 수동적으로 판단하고, 설계자가 골든 워드를 따라 어드레스하기를 원하는 각 비트 패턴으로 마스크 시리즈를 저장한다. 그런 다음, 논리부는 "에러를 포함할 것 같은 코드 워드"를 생성하기 위해 골든 워드 내의 적절한 비트를 플리핑 하기만 하면 된다.
어떤 코드 워드가 각 클러스터 내에 포함되는 지를 선택하는 프로세스는 논리 회로(또는 소프트웨어)를 이용하여 자동화될 수 있다. 예를 들어, 이러한 프로세스는, 골든 워드 세트의 어떤 비트들이 전송 및/또는 복원 도중의 에러 결과 반전(또는 누락) 된 것 같은 지와 각 골든 워드의 가장 에러를 포함할 것 같고 골든 워드와 함께 클러스터 내에 포함된 버전을 판단하는 소프트웨어 (또는 논리 회로)를 이용하여 시스템적으로 판단할 수 있다. 다른 예로는, 이미 클러스터 내에 포함된 코드 워드 각각에 대해, 4 개의 부가적 코드 워드들이 상기 클러스터에 자동적으로 부가될 수 있다: 상기 코드 워드의 2 번 좌측-쉬프트된 버전(하나는 오픈 스팟에서 "0"으로, 다른 하나는 오픈 스팟에서 "1"로); 상기 코드 워드의 2번 우측-쉬프트된 버전(하나는 오픈 스팟에서 "0"으로, 다른 하나는 오픈 스팟에서 "1"), 이때, 동일한 코드 워드를 2 개의 다른 클러스터들에 할당하는 것을 피하기 위한 규칙이 적용되도록 한다.
상기 클러스터들이 엄격하게 분리되어야 하지만, 2 이상의 클러스터들이 조건부로 동일한 코드 워드를 포함할 수 있다(편의상 "다중-값(multi-value)" 코드 워로 지칭된다), 이때, 다중-값 코드 워드는 소정의 조건이 충족될 때만 제공되는 클러스터의 골든 워드로 매핑된다는 점에서 클러스터에 "조건부로 포함"된다. 다 른 클러스터내의 다중-값 코드 워드와 관련된 조건들은 서로 달라야 하고, 상기 조건들 중 하나만이 어떤 특정 경우에만 충족될 수 있도록 선택되어, 수신기가 다중-값 코드 워드를 특정 경우 각각의 하나의 특정 클러스터의 골든 워드로 매핑할 수 있도록 해야 한다. 이러한 실시예에서, 수신기는 상기 조건들 중 어느 것이 특정 경우 각각에 충족되는지 판단하도록 소정의 규칙을 이전에-존재하는 정보에 적용한다. 예를 들어, 수신된 에러를 포함하는 워드(A)가 조건(X)하에서 가장 워드(B)로서 전송된 것 같고, 다른 조건(Y)하에서 가장 워드(C)로서 전송된 것 같다고 가정한다. 제1 클러스터는 워드(B)를 포함하고 (조건(X)에 속하는) 워드(A)를 조건부로 포함한다. 제2 클러스터는 워드(C)를 포함하고 (조건(Y)에 속하는) 워드(A)를 조건부로 포함한다. 이 예에서, 상기 수신기는 이미-존재하는 정보에 알고리즘을 적용하여 조건들(X 및 Y) 중 어느 것이 코드 워드의 전송 도중 충족되는지를 판단한다. 예를 들어, 상기 수신기는 가장 최근의 본 발명에 따른 코드 워드인 "Z"의 스트림의 비트 패턴이 DC 밸런스 되었는지 판단할 수 있고, (조건(Y)이 아닌) 조건(X)이 비트 패턴이 정방향에서 DC-언밸런스 되었는지를 충족하는지, 아니면, (조건(X)이 아닌) 조건(Y)이 충족하는지를 판단할 수 잇다. 이 예에서, 이미-존재하는 정보는 특정 비트 패턴의 DC-밸런스 레벨이다. 한편, 이미-존재하는 정보는 에러 형태의 기록, 또는 픽셀 클록 주파수, 또는 지터 형태, 또는 다른 정보일 수 있다.
많은 수의 가능한 에러가 발생할 수 있기 때문에, (2개의 다른 골든 세트의) 2 개의 다른 골든 워드의 전송에 영향을 줄 것 같은 예상된 에러가 동일한 수신 코 드를 생성할 수 있는 것이 가능하다. 이것은, 클러스터들 중 하나가 상기 수신된 코드를 제외하도록 예정되지 않으면(또는 이전 문단에서 설명한 바와 같이 상기 수신된 코드가 2 이상의 클러스터 내에서 조건적으로 포함되지 않으면), 2 개의 골든 세트를 포함하는 클러스터들 내에서 원하지 않는 오버랩을 유발할 수 있게 한다. 클러스터 사이의 이러한 오버랩을 피하기 위해, 바람직하게는, 덜 발생할 것 같은 수신 코드는 관련된 클러스터로부터 제외된다. 예를 들어, 제1 클러스터가 제1 골든 워드를 포함하고, 제2 클러스터가 제2 골든 워드를 포함하고, (골든 워드가 아닌) 수신된 코드 워드가 제1 골든 워드의 전송 결과 (가능성(P1)을 갖고) 예상되며, 동일한 수신 코드 워드가 제2 골든 워드의 전송 결과 (가능성(P2)을 갖고, 이때, P2는 P1보다 작다) 예상되면, 제1 클러스터는 수신된 코드 워드를 포함하지만, 상기 수신된 코드 워드는 제2 클러스터에 포함되지 않는다.
예를 들어, 수신된 에러를 포함하는 워드(A)가 가장 골든 워드(B)로 전송된 가능성이 있고, 워드(C)로 전송된 가능성이 좀 작다고 가정한다(워드(B)와 워드(C)는 하나의 비트만이 다르다). 바람직한 실시예에서, 코드 워드(A, B 및 C)를 포함하는 2개의 분리된 클러스터는 다음과 같이 결정된다: 골든 워드(B) 및 (일반적으로 B와 유사한 다른 워드인) 워드(A)를 포함하는 제1 클러스터; 제1 클러스터에는 포함되지 않는 골든 워드(C) 및 C와 유사한 하나 이상의 다른 워드들을 포함하는 제2 클러스터. 이러한 방법으로 결정된 클러스터들로, 워드(C)의 전송, 전송된 워드(C)의 전송 및/또는 복원 중의 에러 결과) 워드(A)의 수신, 상기 수신된 워드(A)를 골든 워드(B)로의 매핑 결과 하나의 비트 에러가 발생한다. 바람직하게, 수신 기는 에러 정정 회로(ECC)를 포함하고, 상기 수신기는 (상기 클러스터에 속하는) 수신된 워드의 매핑 결과인 코드 워드가 골든 워드라고 ECC에 인가하도록 구성된다. 적절한 경우, 상기 ECC는 코드 워드의 블록 내의 워드(B)를 워드(C)로 대체한다. 예를 들어, ECC가 워드(B)가 하나의 배드 비트를 갖는다고 판단하면, 상기 워드(B)가 상기 비트를 플리핑(flipping) 하여 워드(C)로 변환되고, 그런 다음, 상기 비트가 전체 ECC 블록에 대한 단 하나의 배드 비트가 된다면, 상기 ECC는 상기 배드 비트를 플리핑하여 에러를 정정하고 워드(B)를 워드(C)로 변환한다.
상술한 바와 같이, 본 발명에 따른 수신기의 몇 가지 구현에서는 상기 수신기는 골든 워드의 수신된 버전을 소스 데이터 값으로 매핑하는 두-단계를 수행하도록 구성된다: 클러스터 내의 수신된 코드 워드 각각을 상기 클러스터의 골든 세트의 골든 워드로 매핑하는 제1 단계; 상기 제1 단계에서 결정된 골든 워드를 상기 클러스터의 골든 세트에 의해 결정된 소스 워드로 매핑하는 제2 단계. 이러한 구현 예에서, 에러 정정 코드의 부가적 블록이 각 골든 워드 세트와 같이 전송되며, 상기 수신기는 (어떤 클러스터의 멤버도 아닌 에러를 포함하는 수신 코드 워드를 정정하고, 이들을 가능한 정도로 골든 워드로 정정하기 위해) 데러 정정 코드를 이용하여 에러 정정을 하기 전에 매핑하는 제1 단계를 수행하도록 구성된다. 후자의 구현에서, 본 발명에 따른 골든 워드 및 클러스터들은 바람직하게는 에러 정정을 수행함으로써 제공된 자유도를 이용하는 매핑을 구현하기 위해 선택된다, 예를 들어, 상기 골든 워드는 다른 클러스터들 내의 어떤 2 골든 워드들 사이의 해밍(Hamming) 거리가 실행할 수 있을 정도로 최소화(또는 최대화가 아닌)하고, 상 기 클러스터들이 상호 분리되는 기준을 만족시키도록 선택될 수 있다. 이러한 골드 워드를 포함하는 클러스터와 함께, 수신기 내의 에러 정정 회로에 의해 검출된 에러 비트의 수는 최소화 될 수 있고, 에러 정정 코드의 오버헤드도 최소화 될 수 있다.
예를 들어, 도 14의 수신기(200)는 "매핑 및 디코딩" 회로(20)으로 부터의 8-비트 디코딩된 워드를 수신하고 복호화하는 복호화 회로(21) 및, 상기 회로(21)로부터 출력된 복호화되고, 디코딩된 워드를 수신하도록 연결된 에러 정정 회로(22)를 포함한다. 회로(20)는 본 발명에 따른 클러스터들 중 하나의 멤버인 수신된 코드 워드 각각에 응답하여 골든 워드를 생성(그리고 회로(21)에 인가)하기 위해 매핑의 제1 단계를 수행하도록 구성되었지만, 몇 개의 복원된 워드들 내에 있는 에러들은 회로(20)가 에러를 포함하는 복원 워드들을 골든 워드로 매핑하는 것을 방해할 수 잇다. 회로(20)에 의해 결정된 골든 워드의 복호화된 버전, 에러를 포함하는 복원된 워드, 및 코드 워드로 복원된 에러 정정 코드들은 에러 정정 회로(22)로 인가된다. 회로(22)는 수신한 복호화된 골든 워드 전체를 통과시켜, 본 발명에 따른 어떤 클러스터의 멤버도 아닌 에러를 포함하는 코드 워드를 정정하는 에러 정정 코드를 이용하여 에러를 정정하고, 상기 에러를 포함하는 코드 워드를 가능한 정도로 골든 워드로 대체할 수 있다. 설명된 수신기(200)의 구현의 변형으로, 에러 정정이 수행되지 않고 회로(22)가 빠질 수 있다.
도 4를 참조하여, 본 발명의 바람직한 실시예에서 이용되는17 개의 골든 워드 세트 및 (각각 하나의 골든 워드를 포함하는) 코드 워드 클러스터 세트의 특정 예를 설명한다. 도 4에서, (좌측으로부터) 세 번째 칼럼(column)은 상술했던 17개의 골든 워드를 나타낸다. 상기 골든 워드 중 16 개는 16 개의 다른 8-비트 소스 데이터 워드(각각 4 비트의 원본 소스 데이터를 나타내는 8-비트 소스 데이터 워드)를 인코딩하는 데 이용되고, 다른 골든 워드(제1 로우(raw)의 워드 "1100110010")는 가드 밴드 워드로만 이용된다. 골든 워드 각각은 10-비트 TMDS 인코딩된 워드이다. (좌측으로부터) 네 번째 칼럼은 10-비트 골든 워드 각각에 대한 몇 가지 가능한 에러의 경우를 나타내며, 다섯 번째 칼럼은 종래의 TMDS 디코딩 알고리즘에 따라 대응하는 네 번째 칼럼 내의 10-비트 워드를 디코딩한 결과인 8-비트 워드를 나타내고, 여섯 번째 칼럼은 대응하는 다섯 번째 칼럼 내의 요소를 단순히 16진수 표기로 나타낸 것이다. (좌측으로부터) 일곱 번째 칼럼은 대응하는 네 번째 칼럼 내의 워드 각각이 대응하는 세 번째 칼럼 내의 골든 워드를 포함하는 클러스터의 멤버인지의 여부의 표시를 포함한다. 특히, 상기 일곱 번째 칼럼 내의 "무시(IGNORE)"라는 용어는 대응하는 네 번째 칼럼 내의 워드가 대응하는 세 번째 칼럼 내의 골든 워드를 포함하는 클러스터의 멤버가 아님을 나타낸다.
(도 4의 수평선에 의해 분리된) 17 개의 클러스터들이 있다: 골든 워드"1100110010" 및 (모두 "프리 데이터" 보조 가드 밴드 워드 "01010101"에 매핑되는) 코드 워드 "1110110010", "1100010010" 를 포함하는 제1 클러스터; 골든 워드 "0011100101" 및 (모두 소스 워드(AD0)에 매핑되는) 코드 워드 "1011100101", "0001100101", "0011110101", 및"0011100001"를 포함하는 (소스 데이터(AD0)를 인코딩하기 위한) 제2 클러스터; 골든 워드 "0110001101" 및 (모드 소스 워드(AD1) 에 매핑되는) 코드 워드 "0111001101" 및 "0110000101"를 포함하는 (소스 워드(AD1)을 인코딩하기 위한) 제3 클러스터; (각각 14 개의 다른 골든 워드 중 다른 하나를 포함하고, 소스 워드(AD2-AD15) 중 다른 하나에 매핑되는 워드들을 포함하는) 클러스터들을 나타내는 다른 14개.
상기 수신기가 표시된 클러스터들 중 하나 내의 (도 4내의 네 번째 칼럼에 있는) 코드 워드를 복원할 때(여기에는 상기 복원된 코드 워드에 대응되는 일곱 번째 칼럼에 어떠한 "IGNORE" 기호가 없다), 상기 수신기는 복원된 코드 워드를 클러스터의 골든 워드에 의해 결정된 (도 4의 첫 번째 칼럼에 있는) 소스 워드로 매핑할 것이다( 이것은, 상기 복원된 코드 워드를 세 번째 칼럼에 있는 클러스터의 골든 워드로 매핑하는 것과 동일하다).
일곱 번째 칼럼 내의 "IGNORE" 표현이 표기된 네 번째 칼럼 내의 이들 코드 워드들은 대응하는 골든 워드를 포함하는 클러스터의 멤버가 아니다. 예를 들어, 도 4의 세 번째 로우 내의 코드 워드 "1100111010"은, 상기 코드 워드가 골든 워드 "1000111010"를 포함하는 클러스터의 멤버이기 때문에 (골든 워드 "1100110010"를 포함하는) 제1 클러스터의 멤버가 아니며, 상기 클러스터들은 서로 분리되어야 한다. 상기 수신기가, (도 4의 첫 번째 로우 내의) 골든 워드 "1100110010" 의 전송 중 (상대적으로 높은 가능성을 갖는) 단일 비트 에러 결과, 그리고, (도 4의 45 번째 로우 내의) 골든 워드 "1000111010"의 전송 중 (또한 상대적으로 높은 가능성을 갖는) 단일 비트 에러의 결과로서 코드 워드 "1100111010"를 복원하더라도, 상기 수신기는 상기 수신된 워드를 골든 워드 "1100110010" 에 의해 결정된 소스 워드 ("01010101")로 매핑하는 것이 아니라, (수신된 워드를 골든 워드 "1000111010"으로 매핑하는 것과 동일한) 8-비트 소스 워드(AD10)으로 매핑할 것이다.
다른 예를 들면, 송신기가 (도 4의 첫 번째 로우 내의) 골든 워드 "1100110010"를 전송 할 때, 수신기는 전송 중 (매우 높은 가능성을 갖는) 에러가 없다면 코드 워드 "1100110010"를 복원할 것이다. 상기 수신기는 이 복원된 워드를 종래의 TMDS 디코딩 알고리즘에 따라 디코딩하여 디코딩된 8-비트 워드 "01010101"를 결정하고, 상기 복원된 8-비트 워드를 (프리-데이터 보조 가드 밴드 워드인) 소스 워드 "01010101"로 매핑할 것이다. 상기 수신기는 골든 워드 "0011001101"의 전송 중 (상대적으로 낮은 가능성을 갖는) 단일 비트 에러 결과 (도 4의 52 번째 로우에 있는) 워드 "0011001111"를 복원하고, 또한 상기 수신기는 이 복원된 워드를 종래의 TMDS-디코딩 알고리즘으로 디코딩(이것이 DC 밸런싱 비트의 값의 결과 8 개의 가장 무의미한 비트들을 반전)하여 동일한 디코딩된 8-비트 워드("01010101")를 결정할 것이다. 상기 수신기는 (수신된 워드를 골든 워드 "1000111010"으로 매핑하는 것과 동일한) 이 수신된 워드를 소스 워드 "01010101"로 매핑할 것이다.
때때로, "골든 워드"라는 용어는 10-비트 "골든" 코드 워드(예를 들어, 도 4에서 좌측에서 세 번째 칼럼 내의 워드)에 의해 결정된 8-비트 워드 소스 워드(예를 들어, 도 4의 좌측 칼럼내의 워드)를 지칭할 때 사용한다.
상술한 본 발명에 따른 가드 밴드 워드를 참조하면, 각 가드 밴드 워드는, 각 가드 밴드 워드에 대한 클러스터가 있을 수 있고, 이러한 클러스터 각각이 2 이 상의 (가드 밴드 워드를 포함하는) 코드 워드를 포함하는 경우에는 (도 4의 예처럼) 골든 워드가 될 수 있다. 한편, 상기 가드 워드는 골든 워드가 아니고, 상기 골든 워드와 확실히 구별될 수 있다.
하나 이상의 가드 밴드 워드를 이용하난 본 발명의 각 실시예에서, 가드 밴드 워드 각각은, 수신기가 인코딩된 제어(또는 동기) 워드 전송 및 인코딩된 데이터 전송 사이에 (가드 밴드 워드 또는 워드들에 의해 나타내는) 관련된 천이를 더욱 확실히 식별하도록 하게 하는 비트 패턴을 가져야 한다. 따라서, 본 발명에 따른 골든 세트의 선택에서의 부가적 요소는, 상기 골든 세트가 적절한 가드 밴드 워드를 포함해야 하고(즉, 상기 가드 밴드 워드가 골든 워드이다), 또는 상기 골든 세트의 골든 워드 각각이 이용된 각 가드 밴드 워드와 확실히 구별되어야 한다는 것이다. 예를 들어, 도 4에 나타낸 17 개 골든 워드 세트는 보조 데이터 버스트의 시작을 식별하는 데 이용되는 (도 4의 첫 번째 로우의 세 번째 칼럼에 나타낸 비트 패턴 "1100110010"를 갖는) 특정한 보조 가드 밴드 워드를 포함한다. 도 5에 도시된 바와 같이, 이 "프리-데이터" 보조 가드 밴드 워드는 바람직하게 2 번 반복적으로 채널(CH2 및 CH1)를 각각에서 인코딩된 보조 데이터 각각의 시작 부분(즉, 각 보조 프리앰블 바로 뒤)에서 전송된다. (보조 프리앰블 동안) 채널(CH2 및 CH1)로 전송된 특정 인코딩된 제어 워드 각각의 마지막 비트가 상술한 바와 같이 "0"이기 때문에, 프리-데이터 보조 가드 밴드 워드로서 선택된 코드 워드의 첫 번째 전송된 비트는 "1"이 되어 수신기가 전송된 보조 데이터 버스트의 시작을 식별하는 것에 대한 신뢰성을 증가시킨다.
또한, 도 4에 도시된 17 개의 골든 워드 세트는 보조 데이터 버스트의 끝을 식별하는 데 이용되는 워드(입력 워드(AD11)에 대응되는 골든 워드 "0011001101")를 포함하고, 또한, 비디오 가드 밴드 워드로서 이용된다. 도 5에 도시된 바와 같이, 이 "포스트-데이터" 보조 가드 밴드 워드는 바람직하게는 채널(CH2 및 CH1) 각각에서 인코딩된 보조 데이터 버스트 각각의 끝 부분(즉, 각 비디오 프리앰블 바로 전)에서 2번 반복적으로 전송된다.
상기 프리-데이터 보조 가드 밴드 워드는 각 보조 데이터 버스트의 시작 부분에서 반복(2번 전송)될 필요가 없고, 상기 포스트-데이터 보조 가드 밴드 워드는 각 보조 데이터 버스트의 끝 부분에서 반복될 필요는 없다. (도 5에 의해 나타낸) 바람직한 실시예에서, 데이터의 전송 및 복원 도중 발생할 수 있는 채널 사이의 데이터 쉬프트 에러(예를 들어, 채널(CH1) 상에서 수신된 데이터의 트레이스(trace) 길이 및 채널(CH2) 상에서 수신된 데이터의 트레이스 길이의 에러)를 상기 수신기가 좀 더 쉽게 발견하고 정정하게 하기 위해 각각 반복되는 것이다. 본 발명의 다른 실시예에서, 보조 가드 밴드 워드는 각 보조 데이터 버스트의 시작 부분에서 2번 이상 반복적으로 전송되고(또는 단 한번 전송되고), 각 보조 데이터 버스트의 끝 부분에서 2번 이상 반복적으로 전송(또는 단 한번 전송)된다.
도 4를 참조하면, (입력 워드(AD11)에 대응하는) 골든 워드 "0011001101"는, 입력 워드(AD11)를 나타내는 보조 데이터의 4-비트 분량을 인코딩하기 위한 코드워드로 이용되고, 포스트-데이터 보조 가드 밴드 워드로 이용되는 것 이외에, 비디오 데이터 버스트의 시작 부분을 식별하는 비디오 가드 밴드 워드로 이용된다. 도 6 에 나타난 바와 같이, 상기 비디오 가드 밴드 워드는 바람직하게 인코딩된 비디오 데이터의 각 버스트의 시작 부분(즉, 각 비디오 프리앰블 바로 뒤)에서 2번 반복적으로 전송된다. 채널(CH1 및 CH2) 각각에서 (비디오 프리앰블 끝 부분에서) 전송된 인코딩된 제어 또는 동기 워드의 마지막 2 비트가 상술한 바와 같이 "11"일 가능성이 있기 때문에, 상기 비디오 가드 밴드 워드의 처음 2개 전송된 비트들은 수신기가 전송된 비디오 데이터 버스트의 시작 부분을 식별할 수 있는 신뢰성을 증가시키기 위해 "00"으로 선택된다.
상기 비디오 가드 밴드 워드는 비디오 데이터 버스트 각각의 시작 부분에서 반복될(2번 전송될) 필요가 없다. 도 6의 실시예에서는, 버스트 동안 픽셀의 짝수(even number)를 나타내는 코드 워드의 (채널(CH0, CH1 및 CH2) 각각을 통한) 전송을 안전하게 하기 위해 반복 전송되었다. 다른 실시예에서, 비디오 가드 밴드 워드는 비디오 데이터 버스트 각각의 시작 부분에서 2 번 이상 반복 (또는 단 한번 전송)된다.
본 발명의 몇 가지 실시예에서, 비디오 데이터의 2 (또는 2 이상의) 스트림이 (하나, 둘, 또는 2 이상의 채널을 통해) 전송된다. 예를 들어, 2 이상의 비디오 데이터 스트림이 도 2의 하나 이상의 채널(0, 1, 2) 각각을 통해 시-다중 방식(time-multiplexed fashion)으로 전송될 수 있다. 비디오 데이터의 다른 스트림의 버스트들이 한 채널을 통해 순차적으로 전송되면, 각각 다른 스트림들이 다른 비디오 가드 밴드 워드에 의해 식별되는, 다른 비디오 가드 밴드 워드들이 각 버스트의 시작 부분(및/또는 끝 부분)에서 전송될 수 있다. 이와 유사하게, 2 개(또는 2 이상의) 보조 데이터 스트림들이 1, 2 또는 2 이상의 채널을 통해 전송될 수 있다. 다른 보조 데이터 스트림의 버스트들이 하나의 채널을 통해 순차적으로 전송되면, 각각 다른 스트림들이 다른 가드 밴드 워드에 의해 식별되는, 다른 보조 가드 밴드 워드들이 각 버스트의 시작 부분(및/또는 끝 부분)에서 전송될 수 있다.
인코딩된 데이터가 다중 독립 채널들을 통해 순차적으로 전송되는 곳에서는, 각 개별 채널에서의 DE 쉬프트는 각 채널의 가드 밴드 워드를 이용하여 (본 발명에 따라) 독립적으로 정정될 수 있다. (ISI 또는 링크의 다른 노이즈 소스에 의해) 어떤 방향에서의 한 픽셀 클록 사이클(또는 하나 이상의 픽셀 클록 사이클)에 의해 TMDS 링크(또는 TMDS-like 링크 또는 다른 직렬 링크)의 다중 채널을 통해 전송된 비트에 의해 나타나는 DE 천이 사이에 부정합이 있을 수 있기 때문에, 동일한 가드 밴드 워드 세트(각각 본 발명에 따른 코드 워드 세트의 멤버인)는 바람직하게, 각 채널을 통해 전송된 본 발명에 따른 코드 워드를 이용하여 인코딩된 데이터 버스트 각각의 시작 및/또는 끝 부분(예를 들어, 각 채널의 보조 프리앰블의 끝 부분, 밑/또는 각 채널의 비디오 프리앰블의 시작 부분, 및/또는 각 채널의 비디오 프리앰블의 끝 부분)에서 본 발명에 따른 방법으로 전송된다. 이것은 채널 대 채널 정합(alignment)과 데이터 완전성을 향상시킬 수 잇다. 이용 가능한 가드 밴드 워드의 적절한 수를 갖는 필요성은 본 발명에 다른 코드 워드 세트의 선택의 한 요소가 된다.
가드 밴드 워드를 (예상된 비트 패턴과 이러한 패턴 다음에 오는 본 발명에 따라 인코딩된 데이터 버스트 사이의 천이에서, 또는 본 발명에 따라 인코딩된 데 이터 버스트와 이러한 데이터 다음에 오는 예상된 비트 패턴 사이의 천이 어느 한 쪽에서) 반복적으로 전송하는 목적은 두 가지 종류의 천이 부정합을 방지하기 위한 것이다: 너무 일찍 천이를 식별하는 것과 너무 늦게 천이를 식별하는 것. N 개의 가드 밴드 워드의 시퀀스를 반복적으로 전송함으로써, 본 발명은 이러한 픽셀 쉬프트 에러를 어느 방향에서도 N 픽셀 이상 되는 것을 방지한다. 예를 들어, N 개의 포스트-데이터 가드 밴드 워드의 시퀀스가 인코딩된 데이터 버스트에 부가되면, 본 발명은, 좌측으로의 N 픽셀 쉬프트가 발생했을 때 마지막 데이터 값이 손실되지 않았음을 보증한다(포스트-데이터 가드 밴드 워드만이 손실된다). 일반적으로, 단 N 개의 포스트-데이터 가드 밴드 워드의 시퀀스만이 N 프리-데이터 가드 밴드 워드와 함께 사용될 필요가 있다.
(도 5에 나타낸) 바람직한 실시예에서, 채널(CH2 및 CH1) 상에서 각 보조 데이터 버스트의 시작 및 끝 부분에서 전송된 보조 가드 밴드 워드는 채널(CH0) 상에서 각 보조 데이터 버스트의 시작 및 끝 부분에서는 전송되지 않는다. 오히려, 특정 인코딩 방법이 채널(CH0) 상에서 각 보조 데이터 버스트 내에 전송된 최초 2 개 및 마지막 2 개의 10-비트의 본 발명에 따른 코드 워드를 결정하기 위해 이용된다. 특히, 각 보조 데이터 버스트의 최초 2개 및 마지막 2개의 픽셀 클록 사이클 각각 동안 입력된 보조 데이터의 2 비트가 인코딩되고 전송된다(이에 비해, 상술한 바와 같이 각 보조 데이터 버스트 각각의 다른 모든 픽셀 클록 사이클 동안 입력된 보조 데이터의 4개 비트가 인코딩되고 전송된다). 제1 클록 사이클 동안 전송될 입력 보조 데이터의 2 비트가 도 4의 워드(AD0, AD1, AD2 및 AD3) 중 하나로 인코딩되 고, 제2 클록 사이클 동안 전송될 입력 보조 데이터의 2 비트가 워드(AD0, AD1, AD2 및 AD3) 중 다른 하나로 인코딩된다. 따라서, 상기 버스트로 전송된 최초 2 개의 10-비트 워드는 이들 2개의 워드 (AD0, AD1, AD2 및 AD3)를 나타내는 본 발명에 따른 코드 워드의 변형이다(따라서, 입력 보조 데이터의 최초 4 개 비트를 나타낸다). 이와 유사하게, 마지막 클록 사이클 이전 사이클 동안 전송될 입력 보조 데이터의 2개 비트가 도 4의 워드(AD0, AD1, AD2 및 AD3) 중 하나로 인코딩되고, 마지막 클록 사이클 동안 전송될 입력 보조 데이터의 2 개 비트가 워드(AD0, AD1, AD2 및 AD3) 중 다른 하나로 인코딩된다. 버스트로 전송된 마지막 2개의 10-비트 워드는 이들 2개의 워드(AD0, AD1, AD2 및 AD)를 나타내는 본 발명에 따른 코드 워드의 변형이다(따라서, 입력 보조 데이터의 마지막 4 개 비트를 나타낸다). 4 개의 10-비트 골든 워드를 이용하여 2-비트 보조 데이터 워드를 인코딩하는 이러한 방법은, 여기서 때때로 "TERC4" 인코딩이라고 불리는 16 개의 10-비트 골든 워드를 이용하여 4-비트 보조 데이터 워드를 인코딩하는 것과 대비하여, 여기서 때때로 "TERC2"로 불린다.
더욱 일반적으로, ISI 가 시리얼 데이터 전송 채널 상에 존재하는 경우, 다른 제어 또는 동기 비트(예를 들어, DVI 설명에서의 비트(CTL0:CTL1 또는 CTL2:CTL3를 나타내는 10-비트 제어 문자)는 상기 제어 문자 바로 뒤에 전송될 비디오(또는 보조) 데이터 비트 상에 다른 에러를 유발할 수 있다. 바람직하게, 이것은 비디오(또는 보조) 데이터를 전송하는데 사용되는 본 발명에 따른 코드 워드를 선택하는 요소로 인식되고 사용된다. 한편, (본 발명에 따라 인코딩된) 데이터 바로 전에 전송된 제어 코드는 ISI 영향을 감소시키도록 제어된다.
본 발명의 다른 실시예에서, 인보딩된 보조 데이터 버스트 및 인코딩된 비디오 데이터 버스트가 시리얼 링크(반드시 TMDS 링크일 필요는 없다)를 통해 전송되고, 상기 보조 데이터는 본 발명에 따른 코드 워드 세트를 이용하여 본 발명의 방법에 따라 인코딩된다. 본 발명에 따른 코드 워드 세트는 인코딩된 비디오 데이터 버스트 각각의 시작 부분에서 전송된 "비디오" 가드 밴드 워드, 및 인코딩된 보조 데이터 버스트 각각의 시작 부분에서 전송된 "보조" 가드 밴드 워드를 포함한다. 일 실시예에서, 비디오 가드 밴드 워드는 또한, 제2 목적: 보조 데이터를 인코딩하기 위해 사용된다. 이러한 실시예의 바람직한 구현에서, 상기 인코딩된 비디오 데이터는 비디오 데이터 인에이블 신호가 하이인(즉, 제어 신호 "DE"가 DE=1를 만족할 때) 액티브 비디오 주기 동안 전송되고, 인코딩된 제어(또는 동기) 신호 및 인코딩된 보조 데이터가 액티브 비디오 주가 사이의 (상기 비디오 데이터 인에이블 신호가 로우인) 블랭크 구간 동안 전송된다. 비디오 가드 밴드 워드는 액티브 비디오 주기 각각의 시작 부분에서 전송된다. 각각의 블랭크 구간은, 특정 형태의 제어(또는 동기) 신호가 전송되는 (비디오 데이터 인에이블 신호의 폴링 에지와 보조 데이터 버스트의 시작 부분 사이의) "보조" 프리앰블 구간, 상기 보조 프리앰블 구간 뒤의 하나 이상의 보조 데이터 주기(각 보조 데이터 주기는 인코딩된 보조 데이터 버스트가 뒤따라오는 보조 가드 밴드 워드를 포함한다), 및 마지막 보조 데이터 주기 및 다음에 오는 액티브 비디오 주기 사이의 "비디오" 프리앰블 주기를 포함한다. 일반적으로, 본 발명에 따라 가드 밴드 워드를 사용하는 목적은, 수신기 가, 인코딩된 데이터 버스트의 시작 부분에서 전송된 제1 가드 밴드 워드와 이러한 가드 밴드 워드 이전에 전송된 마지막 비트 사이의 천이와, 인코딩된 데이터 버스트의 끝 부분에서 전송된 마지막 가드 밴드 워드와 이러한 가드 밴드 워드 뒤에 전송된 최초 비트 사이의 천이를 인식할 수 있도록 하는 데 있다.
본 발명의 이러한 실시예에서, 시리얼 링크를 통해 버스트로 전송하기 위해 (비디오 데이터 일 수 있지만 반드시 그럴 필요는 없는) 주 데이터를 인코딩하기 위해 종래의 인코딩 알고리즘이 사용되며, 보조 데이터(예를 들어, 오디오 데이터 또는 상기 주 데이터보다 낮은 데이터 레이트로 전송될 수 있는 다른 형태의 데이터)는 시리얼 링크를 통해 (인코딩된 주 데이터 버스트들 사이에서) 버스트로 전송하기 위해 본 발명에 따라 인코딩된다. 주 데이터를 인코딩하는 데 사용되는 코드 워드 풀 세트는 주 데이터(때때로 소스 데이터 워드로 불리는)의 2N 개의 다른 워드들 각각에 대해 하나 이상의 코드 워드를 갖는다. 이러한 풀 세트의 본 발명에 따른 서브세트는 보조 데이터(이것 또한 때때로 소스 데이터 워드로 불린다)의 2M 개(여기서 M<N)보다 작은 다른 워드를 각각에 대해 하나 이상의 코드 워드를 갖는다. 상기 보조 데이터는 버퍼링되고 M-비트 포맷(즉, M 비트로 각각 구성된 워드로)으로 포장된다. M-비트 소스 데이터의 각 가능한 값들은 본 발명에 따른 코드 워드에 의해 제공된 2M 개의 워드 공간 내의 미리 선택된 코드를 갖는다. 보조 데이터의 M-비트 워드는 2M 워드 공간 내의 볼 발명에 따른 코드 워드로 매핑되고, 이것은 링크를 통해 전송된다.
본 발명에 따라 인코딩된 데이터(예를 들어, 비디오 데이터와 별개인 보조 데이터)를 전송하기 위해 이용되는 본 발명에 따른 골든 워드를 선택할 때, (멀티-비트로 인코딩된 워드 중에서) 어떤 비트가 다른 비트들보다 에러가 발생할 수 있는 더 큰 위험이 존재하는 지를 관찰하는 것이 중요하다. 예를 들어, 보조 데이터를 전송하기 위해 TMDS-인코딩된 골든 워드를 이용할 때, DC 밸런싱 비트와 천이 제어 비트(예를 들어, 비트 Q[9], 및 Q[8])은 다른 비트들보다 더 큰 에러 리스크를 갖는다. DC 밸런싱 및 천이 제어 비트의 처리 도중 일어나는 모든 비트는 멀티-비트 인코딩된 워드들의 다른 비트들에게 영향을 줄 수 있다. 따라서, 결정적인 비트들 중 하나에서의 1-비트 에러는 버스트 에러로 변화될 수 있다. 바람직하게는, 이러한 영향은 TMDS-인코딩된 워드들의 풀 세트로부터 본 발명에 따른 코드 워드의 선택에 고려된다.
도 2 및 도 8을 참조하여, 본 발명의 바람직한 실시예에 따른 시스템에서 TMDS 링크를 통해 전송될 데이터의 포맷과 타이밍에 대해 설명한다. 이들 실시예에서, 송신기(즉, 도 2의 송신기(1')는 제어 신호(DE)가 하이인 액티브 비디오 주기 동안 TMDS 링크의 비디오 채널(CH0, CH1 및 CH2)을 통해 (각각 TMDS 인코딩 알고리즘을 이용하여 10-비트 천이-최소화 코드 워드로 인코딩된) 8-비트 비디오 데이터 워드를 전송한다. 액티브 비디오 주기 사이의 (또한 DE가 하이인) 데이터 아일랜드 동안, 상기 송신기는 비디오 채널을 통해, TMDS 인코딩 알고리즘을 이용하여 10-비트 천이-최소화 코드 워드, 바람직하게 10-비트 골든 워드로 인코딩된, (일반적으로 4-비트 오디오 데이터 워드인) 4-비트 워드를 포함하는 패킷들을 전송한다. 액티브 비디오 주기 및 데이터 아일랜드 사이의 (DE가 로우인) "제어 데이터" 주기 동안, 상기 송신기는, 채널(CH1 및 CH2)을 통해 제어 워드(각각 2 제어 비트:CTL0 및 CTL1 또는 CTL2 및 CTL3를 나타내는 10-비트, 천이-최대화(transition-maximized) 코드 워드로 인코딩된) 제어 워드를 전송하고, 채널(CH0)을 통해 (각각 2 동기 비트:HSYNC 및 VSYNC를 나타내는 10-비트, 천이-최대화 코드 워드로 인코딩된) 동기 워드를 전송한다. 각 액티브 비디오 주기 동안, 수신기는(예를 들어, 도 2의 수신기(2')), HSYNC, VSSYNC, CTL0, CTL1, CTL2 및 CTL3 이 상기 액티브 비디오 주기가 시작될 때 그들이 갖는 값들을 유지하고 있는 것으로 가정한다.
각 데이터 아일랜드는 하나 이상의 패킷을 포함하고, 각 패킷은 32 개의 픽셀 클록 사이클의 주기를 통해 전송된다. 도 8에 도시된 바와 같이, 각 패킷의 일부가 상기 32-픽셀 클록 주기 동안 채널(CH0, CH1 및 CH2) 각각을 통해 전송된다. 각 픽셀 클록 사이클 동안, 상기 송신기는 채널(CH0, CH1 및 CH2) 각각을 통해 하나의 직렬 변환된 10-비트 TMDS 코드 워드를 송신한다는 것을 알 수 있다. 따라서, 각 패킷은 96(=3*32) 개의 TMDS 코드 워드를 포함하고, 각 코드 워드는 4-비트 소스 워드를 나타낸다.
각 데이터 아일랜드 동안, HSYNC 및 VSYNC 비트를 나타내는 천이-최소화 코드 워드는 채널(CH0)을 통해 전송된다(예를 들어, HSYNC 비트, VSYNC 비트, 및 2 개의 다른 비트를 나타내는 하나의 코드 워드가 픽셀 클록 사이클 단위로 전송된다). 바람직하게는, 데이터 아일랜드 동안 전송된 각 패킷은 32-비트 패킷 헤더를 포함하고, 데이터 아일랜드 동안 전송된 HSYNC 및 VSYNC를 나타내는 각 코드 워드는 또한 상기 패킷 헤더의 하나의 비트를 나타낸다.
어떤 데이터 아일랜드도 전송되지 않는 모드에서는, 각 제어 데이터 주기는 2개의 연속된 액티브 비디오 주기 사이의 수평(또는 수직) 블랭크 구간 전체가 된다. 다른 모드에서는, 상기 송신기는 수평 블랭크 구간 및 수직 블랭크 구간 각각 안에 (또는 상기 블랭크 구간들의 서브세트 각각 안에) 하나 이상의 데이터 아일랜드를 삽입한다.
채널(CH1 및 CH2) 각각에서, "데이터 아일랜드" 프리앰들 워드가 각 데이터 아일랜드 바로 전에 (제어 데이터 주기에서) 반복적으로 전송되고, 비디오 프리앰블 워드가 각 액티브 비디오 주기 바로 전에 (제어 데이터 주기에서) 반복적으로 전송된다. 이러한 채널 각각에서, 바람직하게는 8 개의 동일한 데이터 아일랜드 프리앰블 워드의 버스트가 각 데이터 아일랜드 바로 전에 전송되고, 바람직하게는 8 개의 동일한 비디오 프리앰블 워드의 버스트가 각 액티브 비디오 주기 바로 전에 전송된다. 채널(CH1)을 통해 전송된 각 데이터 아일랜드 프리앰블 워드는 CTL0=1 및 CTL1=0을 나타내는 10-비트 TMDS 코드 워드이며, 채널(CH2)를 통해 전송된 각 데이터 아일랜드 프리앰들 워드는 CTL2=1 및 CTL3=0을 나타내는 10-비트 TMDS 코드 워드이다. 채널(CH1)을 통해 전송된 각 비디오 프리앰블 워드는 CTL0=1 및 CTL1=0을 나타내는 10-비트 TMDS 코드 워드이며, 채널(CH2)을 통해 전송된 각 비디오 프리앰블 워드는 CTL2=0 및 CTL3=0을 나타내는 10-비트 TMDS 코드 워드이다.
도 2 및 도 8을 참조하여 설명된 바람직한 실시예에서, 채널(CH1 및 CH2) 각각에서의 각 데이터 아일랜드는 2 개의 동일한 가드 밴드 워드(상술한 데이터 아일랜드 가드 밴드 워드 "DATA Island GB"=0b1100110010)의 버스트로 시작하고 끝나며, 각 액티브 비디오 주기는 2개의 동일한 가드 밴드 워드(채널(CH0 및 CH2)에서의 상술한 워드 "Video GB(CH0, CH2)"=0b0011001101, 및 채널(CH1)에서의 상술한 워드 "Video GB(CH1)"=0b1100110010)의 버스트로 시작한다. 이전 문단에서 설명된 이러한 가드 밴드 워드 및 프리앰블 워드는, 수신기가 각 데이터 아일랜드의 각 리딩 및 트레일링(trailing) 에지와 액티브 비디오 주기의 각 리딩 에지를 확실하게 식별할 수 있게 하는 패턴을 갖도록 선택된다. 채널(CH0)의 각 데이터 아일랜드는 2개의 동일한 가드 밴드 워드(수신기가 데이터 아일랜드의 각 리딩 에지 및 트레일링 에지를 확실하게 식별할 수 있도록 HSYNC 및 VSYNC 값에 따라, 0xC, 0xD, 0xE 및 0xF 값 중 어느 것을 나타내는 천이 최소화된 TMDS 10-비트 코드 워드)의 버스트로 시작하고 끝난다.
바람직한 실시예에서, 도 4를 참조하여 설명된 버전이 아닌, 아래에 있는 예시적인 (때때로 "TERC4 코딩"으로 불리는) 인코딩 방법이, 각 데이터 아일랜드 동안 직렬 변환되고 전송된 10-비트 천이-최소화 TMDS 코드 워드를 나타내는 4 비트의 오디오 데이터(또는 다른 보조 데이터)를 인코딩하는 데 이용된다(나열된 TMDS 코드 워드는 "골든 워드"들이다):
소스 워드TMDS 코드 워드
(bit3, bit2, bit2, bit0)
0000:q_out[0:9]=0b0011100101;
0001:q_out[0:9]=0b1100011001;
0010:q_out[0:9]=0b0010011101;
0011:q_out[0:9]=0b0100011101;
0100:q_out[0:9]=0b1000111010;
0101:q_out[0:9]=0b0111100010;
0110:q_out[0:9]=0b0111000110;
0111:q_out[0:9]=0b0011110010;
1000:q_out[0:9]=0b0011001101;
1001:q_out[0:9]=0b1001110010;
1010:q_out[0:9]=0b0011100110;
1011:q_out[0:9]=0b0110001101;
1100:q_out[0:9]=0b0111000101;
1101:q_out[0:9]=0b1000111001;
1110:q_out[0:9]=0b1100011010;
1111:q_out[0:9]=0b1100001101;
Video GB:q_out[0:9]=0b1100110010;
(CH1)
Video GB:q_out[0:9]=0b0011001101;
(CH0,CH2)
Data Island GB:q_out[0:9]=0b1100110010;
(CH1,CH2)
위에 나열된 TMDS 코드 워드에서, 각 코드 워드의 가장 무의미한 비트(q_out[0])은 처음 전송되는 비트이고, 가장 중요한 비트(q_out[9])는 마지막에 전송되는 비트이며, 워드(Video GB(CH1))는 채널(CH1)에서 전송되는 비디오 가드 밴드 워드이며, 워드(Video GB(CH0,CH2))는 채널(CH0 및 HC2)에서 전송되는 비디오 가드 밴드 워드이며, 워드(Data Island GB(CH1,CH2))는 채널(CH1 및 HC2)에서 전송되는 데이터 아일랜드 가드 밴드 워드이다. TMDS 링크의 채널(CH0, CH1 및 CH2)를 통해 데이터 아일랜드 동안 위에 나열된 골든 워드들이 전송되는 실시예에서, 액티브 비디오 주기 동안 채널(CH0, CH1 및 CH2)를 통해 전송된 비디오 워드는 천이-최소화된 TMDS 코드 워드의 풀 세트를 이용하여 인코딩될 수 있다.
위에 나열된 코드 워드가 사용되는 경우, 비디오 프리앰블은, 제어 비트 값 CTL0, CTL1=1,0을 나타내는 (CH1에서 전송된) 10-비트 천이-최대화된 TMDS 코드 워드, 및 제어 비트 값 CTL2, CTL3=0,0 을 나타내는 (CH2에서 전송된) 10-비트 천이-최대화된 TMDS 코드 워드의 반복(바람직하게 8번 반복)을 통해 결정되고, 데이터 아일랜드 프리앰블은, 제어 비트 값 CTL0, CTL1=1,0을 나타내는 (CH1에서 전송된) 10-비트 천이-최대화된 TMDS 코드 워드, 및 제어 비트 값 CTL2, CTL3=1,0 을 나타내는 (CH2에서 전송된) 10-비트 천이-최대화된 TMDS 코드 워드의 반복(바람직하게 8번 반복)을 통해 결정된다. 이러한 가드 밴드 워드 및 프리앰블의 결합은 수신기로 하여금 각 액티브 비디오 주기의 시작과 각 데이터 아일랜드의 시작 및 끝을 확 실하게 식별할 수 있게 한다.
이전의 2개의 문단에서 설명된 코드 워드 및 프리앰블 워드의 리스트를 이용하면, 특정한 인코딩 방법이 바람직하게 채널(CH0) 상에서 각 데이터 아일랜드에서 전송된 최초 2개 및 마지막 2 개의 10-비트의 본 발명에 따른 코드 워드를 결정하는 데 이용된다. 특히, 입력된 보조 데이터의 2 비트가 바람직하게 각 데이터 아일랜드의 최초 2개 및 마지막 2개의 픽셀 클록 사이클 각각 동안 채널(CH0) 상에서 인코딩되고 전송된다(여기서, 입력된 보조 데이터의 4개 비트는 상술한 바와 같이 가가 데이터 아일랜드의 다른 모든 픽셀 클록 사이클 동안 채널(CH0) 상에서 인코딩되고 전송된다). 각 데이터 아일랜드의 첫 번째, 두 번째, 마지막 이전 및 마지막 픽셀 클록 사이클 각각 동안 CH0 상에서 전송될 입력 보조 데이터의 2개 비트는 바람직하게, 상기-나열된 코드 워드 0b0111000101, 0b1000111001, 0b1100011010, 및 0b1100001101 중의 하나로 인코딩된다.
도 2 및 도 8을 참조하여 설명된 본 발명의 바람직한 실시예에 따른 시스템에서, 각 데이터 아일랜드는 하나 이상의 패킷(이것의 최소 존속시간을 리딩 가드 밴드에 대한 2개의 픽셀 클록 사이클과, 트레일링 가드 밴드에 대한 2개의 픽셀 클록 사이클을 포함하는 36 픽셀 클록 사이클로 한정시키는)을 포함한다. 각 데이터 아일랜드는 정수의 패킷 수를 포함해야하고, 바람직하게는 (데이터 아일랜드 내의 데이터의 신뢰성을 보증하기 위해) 각 데이터 아일랜드 내의 최대 패킷 수는 14이다. 에러 검출 및 정정 (바람직하게는 개발자들인 Bose, Chauduri, 및 Hocquenghem 의 이름을 딴 잘 알려진 에러 검출 및 정정 기술인, BCH 에러 검출 및 정정 기술)이 각 데이터 아일랜드 동안 각 패킷에 적용된다.
각 패킷에 대한 바람직한 포맷 방법이 도 9를 참조하여 설명된다. 각 패킷은, 도 9의 패킷(P)와 같이, 32-비트(4-바이트) 패킷 헤더와 4개의 서브-패킷 (각각 64비트=8바이트로 구성된)을 갖는다. 도 9에서, 상기 서브패킷들은 서브패킷0(또는 SP0), 서브패킷1, 서브패킷2 및 서브패킷3으로 표시된다. 각 서브패킷은 8 개의 BCH 패리티 비트가 따라오는 56 데이터 비트(즉, 7바이트, 각 바이트는 하나의 10-비트 TMDS 코드 워드에 대응된다)를 포함한다. 9 개의 데이터 비트 패킷이 픽셀 클록 사이클 단위로 전송된다. 이들 중, 1개의 비트 데이터(헤더 비트)가 채널(CH0)에서 픽셀 클록 사이클 단위로 (HSYNC 및 VSYNC 비트를 인코딩하는 하나의 10-비트 TMDS 코드 워드의 형태로) 전송되고, 4개의 비트 데이터가 채널(CH1 및 CH2) 각각에서 픽셀 클록 사이클 단위로 (하나의 TMDS 코드 워드 형태로) 전송된다. 각 픽셀 클록 사이클 동안, 상기 수신기 내의 TMDS 디코딩 회로는 채널(CH0)로부터(즉, 하나의 TMDS 코드 워드로부터) 4 비트의 데이터를 복원하고, 채널(CH1)로부터 4 이상의 비트의 데이터를 복원하며, 채널(CH2)로부터 4 이상의 비트의 데이터를 복원한다.
도 9에서, 서브패킷0의 데이터 및 패리티 비트는 "BCH block0"로 식별되고, 서브패킷1의 데이터 및 패리티 비트는 "BCH block1"로 식별되고, 서브패킷2의 데이터 및 패리티 비트는 "BCH block2"로 식별되고, 서브패킷3의 데이터 및 패리티 비트는 "BCH block3"로 식별된다. 패킷 헤더는 8 개의 BCH 패리티 비트들이 뒤따라오는 24 개의 데이터 비트(3 바이트의 데이터)를 포함한다(이들 데이터 및 패리 티 비트는 도 9에서 "BCH block4"로 식별된다).
바람직하게는, 각 패킷 헤더에 대한 BCH 패리티 비트는, 도 9a의 생성기에 의해 다항식 G(x)=1+x6+x7+x8 ( 127 번의 반복 사이클을 갖는)을 사용하여 생성되는 BCH(32, 24)이다. 바람직하게는, 서브-패킷에 대한 BCH 패리티 비트는 도 9b의 생성기에 의해 다항식 G(x)=1+x6+x7+x8 ( 127 번의 반복 사이클을 갖는)을 사용하여 생성되는 BCH(64, 56)이다. 바람직하게는, 본 발명의 실시예에 따른 송신기는, 각 서브패킷의 56 데이터 비트에 대한 BCH 패리티 비트를 생성하기 위한 도 9b 회로와, 각 패킷 헤더의 24 데이터 비트에 대한 BCH 패리티 비트를 생성하기 위한 도 9a 회로를 포함한다.
BCH 패리티 비트가 도 9a 및 도 9b를 이용하여 생성되는 수신된 패킷을 수신하는 본 발명의 바람직한 실시예에 따른 수신기는, (각 서브패킷의 64 비트로부터 BCH 신드롬을 생성하기 위한) 도 9d 회로와, (각 패킷 헤더의 32 비트로부터 BCH 신드롬을 생성하기 위한) 도 9c 회로도 포함한다.
더욱 일반적으로는, 도 9b 및 도 9d 회로는, 입력 데이터의 병렬 스트림으로부터 에러 정정 코드 비트(예를 들어, 패리티 비트 또는 신드롬 비트)를 생성하고, BCH 다항식과 같은 사이클릭 다항식으로부터 에러 정정 비트를 생성하기 위해 필요한 사이클의 수를 줄이고, 사이클릭 다항식에 의해 생성된 신드롬 코드를 계산하기 위해 필요한 사이클의 수를 줄이는 다양한 컨텍트(context)에 유용한 본 발명에 따른 특징을 구현한다. 본 발명의 이러한 특징은, 에러 정정 코드(예를 들어, BCH 패리티 비트, 및 BCH 패리티 비트 및 데이터로부터 생성된 신드롬)가 부분적으로 병렬 변환된 데이터 스트림으로부터 생성되어야 하고, 입력 데이터의 다음 블록의 작은 수(예를 들어 2)의 입력 비트가 입력 데이터의 현재 블록에 대한 에러 정정 코드를 생성하는 동안 이용될 수 있는, 다양한 시스템에 유용하다. 이러한 시스템에서, 입력 데이터의 각 블록의 짝수 비트들은, 줄어든 수의 클록 사이클에서 각 블록에 대한 에러 정정 코드를 생성하기 위해, 본 발명에 따른 입력 데이터 블록 각각으로부터의 홀수 비트들과 함께 동시에(병렬로) 처리될 수 있다. 본 발명을 이용하지 않고는, 본 발명에 따라 (시스템 클록을 이용하여) 코드가 생성될 수 있는 동일한 시간 내에 동일한 에러 정정 코드를 생성하기 위해서는 시스템 클록(에러 정정 코드 생성보다는 다른 목적으로 시스템에서 사용되는 클록) 주파수의 몇 배(예를 들어, 2x, 3x, 또는 4x)의 주파수를 갖는 클록을 이용해야 할 필요가 있다. 몇 배의 시스템 클록을 구현하는 것은, 더 빨리 동작할 수 있는 클록 논리부(clocked logic)가 요구되고, 몇 배의 주파수를 갖는 시스템 클록 버전이 존재할 것이 요구된다는 점에서 불리하다(이러한 몇 배의 주파수를 갖는 클록을 생성하는 것은 보통 일반적으로 PLL을 포함하는 클록 배율기 회로가 요구되기 때문에 비싸다).
도 9a 및 도 9b 각각의 에러 정정 코드 생성 회로는, 회로가 입력부에서 수신된 입력 데이터를 그 출력부로 통과되는 지와, 회로가 에러 정정 코드를 그 출력부로 인가하는 지를 제어하는 제어 비트(C1)를 이용한다. 도 9a를 참조하면, 최초 "z" 클록 사이클 동안, 제이 비트(C1)는 하이이고, 입력 데이터(INPUT)의 z-비트 블록이 쉬프트 레지스터로 제공되도록 하고, 에러 정정 코드가 생성되며, 또한, 상기 클록은 멀티플렉서(300)를 통해 출력부로 통과된다. 도 9a의 회로가 본 발명에 따른 송신기에 구현될 때,(예를 들어, 도 13의 송신기(100)의 바람직한 구현), C1이 하이 일 동안 패킷 헤더 비트의 24-비트 블록이 입력된다(그리고 출력부로 통과한다). 그리고, C1이 로우로 가고, 멀티플렉서(300)가 입력 데이터 대신에 레지스터(Q7)의 출력을 통과시키게 한다. C1이 로우일 동안은, 8 개의 BCH 패리티 비트 시퀀스가 8 개의 클록 사이클 동안 쉬프트되어 레지스터(Q7)에서 나온다. C1이 로우일 동안, 입력 데이터의 소스는 활동하지 않는다.
도 9b의 회로는 도 9a의 회로와 유사하게 동작한다. 그러나, 도 9b의 회로는, 각 입력 노드가 입력 비트의 다른 서브세트를 수신하는 2 입력 노드 및 2 출력 노드를 갖는 쉬프트 레지스터를 포함하고(도 9a에 하나의 입력을 갖는 쉬프트 레지스터가 아닌), 8 개의 BCH 패리티 비트를 생성하기 위해 단 (N/2)+1 개의 클록 사이클이 요구되며(이에 비해 도 9a 회로는 상기 동일 비트를 생성하기 위해 N+1 개의 클록 사이클을 요구한다), (4개의 BCH 패리티 비트를 레지스터(Q7)로부터 쉬프트 시키는 동안, 4개의 BCH 패리티 비트를 레지스터(Q6)로부터 쉬프트 시킴으로써) 8 개의 BCH 패리티 비트를 쉬프트 출력시키기 위한 4 개의 부가적인 클록 사이클이 요구된다. 입력 데이터의 현재 블록의 인가 끝 부분에서 (도 9b의 레지스터(Q0-Q7) 각각의) 레지스터 값과, 입력 데이터의 다음 블록의 최초 짝수 비트("IN[0]") 및 최초 홀수 비트("IN[1]")이 주어지면, 입력 데이터의 현재 블록에 대한 (2개의 쉬프트 레지스터로부터 멀티플렉서(301 및 302)에 인가된) BCH 패리티 비트는 항상 결정된다. 도 9b의 회로가 본 발명의 바람직한 실시예에서의 송신기 내에 구현되면(예를 들면, 도 13의 송신기(100) 내의 바람직한 구현), 56 데이터 비트의 서브 패킷은, C1이 하이 인 28 클록 사이클 동안, 클록 사이클 단위로 수신된 서브패킷 비트의 다른 쌍, IN[0], IN[1] 과 함께, 입력부에서 수신된다(그리고, 출력부로 통과된다). 일반적으로, "m" 개의 입력 노드를 갖는 쉬프트 레지스터를 갖고, 현재 블록에 대한 에러 정정 코드를 생성하면서 입력 데이터의 다음 블록의 "m" 비트를 (각 쉬프트 레지스터 입력부에서 "m" 비트 중 하나씩) 수신하는, 도 9b 의 변형된 설계는, "k/m+p" 클록 사이클에서 입력 데이터의 현재 블록에 대한 에러 정정 코드(예를 들어, BCH 패리티 비트)를 생성할 수 있고, (C1 로우 일 때) "n/m" 사이클에서 에러 정정 코드를 쉬프트 출력할 수 있으며, 이때, "n", "p" 및 "k" 는 각 입력 블록에 사이즈 및 각 입력 블록에 대해 생성되는 에러 정정 코드의 비트 수에 의해 결정되는 파라미터이다.
도 9b 회로의 일반적인 동작에서, 입력 데이터의 다음 블록의 최초 짝수 비트("IN[0]") 및 최초 홀수 비트("IN[1]")는 C1이 하이-로우로 천이하는 타이밍에서 도 9b의 회로의 입력부에 인가되고, IN[0] 및 IN[1] 값들은 C1이 로우로 유지되는 동안 상기 입력부에 계속 인가된다. C1 이 하이-로우로 천이되는 타이밍에서, 레지스터(Q0, Q1, Q2, Q3, Q4, Q5, Q6 또는 Q7) 각각의 비트를 지칭하기 위해, "Q0, Q1, Q2, Q3, Q4, Q5, Q6 또는 Q7" 이라는 표기를 사용한다. C1 이 로우 일 때, 비트(Q0, Q2, Q4 및 Q6)는 (이 과정 동안 AND 게이트(308)의 출력부가 로우이기 때문에) 하나의 쉬프트 레지스터로부터 멀티플렉서(301)로 쉬프트 출력되고, 비트(Q1, Q3, Q5 및 Q7)는 (이 과정 동안 AND 게이트(309)의 출력부가 로우이기 때문에) 하나의 쉬프트 레지스터로부터 멀티플렉서(302)로 쉬프트 출력된다 이들 비트의 값들은 다음과 같다:
Q0 = ((Q7 ^ IN[0]) ^ (Q6 ^ IN[1])) & C1;
Q1 = (Q7 ^ IN[0]) & C1;
Q2 = Q0;
Q3 = Q1;
Q4 = Q2;
Q5 = Q3;
Q6 = Q4 ^ (((Q7 ^ IN[0]) ^ (Q6 ^ IN[1])) & C1; 및
Q7 = Q5 ^ ((Q6 ^ IN[1]) & C1),
여기서 "^"는 배타적 OR(exclusive OR) 동작을 나타내고, "&"는 AND 동작을 나타낸다.
비트(Q0, Q1, Q2, Q3, Q4, Q5, Q6 및 Q7)는 C1이 하이 일 때, 생성된다. C1 이 로우이면, 도 9b의 회로는 단순한 쉬프트 레지스터로 기능하여, Q0, Q2, Q4 및 Q6를 멀티플렉서(301)로 쉬프트 출력하고, Q1, Q3, Q5 및 Q7을 멀티플렉서(302)로 쉬프트 출력한다.
도 9b 회로로부터 출력된 비트들(Q0, Q1, Q2, Q3, Q4, Q5, Q6 및 Q7)의 동일한 값들이 도 9a의 회로로부터 출력되지만(C1 이 하이-로우로 천이하기 전에 도 9a 및 도 9b의 회로에 동일한 입력 값들이 인가되고, 다음 블록의 최초 홀수 비트(IN[1])가 입력 값으로 인가 된 다음 클록 에지에서 제어 비트(C1)이 하이-로우로 천이한다고 가정한다), 도 9a 회로는 이 값들을 멀티플렉서(300)로 쉬프트 시키기 위해 8 개의 클록 사이클을 요구하지만, 도 9b 회로는 이 값들을 멀티플렉서(301 및 302)로 쉬프트 시키기 위해 단 4 개의 클록 사이클만이 요구된다.
신드롬(syndrome)은 그 에러 정정 코드를 갖는 전송된 시퀀스가 변조되었는 지를 나타낸다. 변조가 일어나지 않았다면, 신드롬은 0이다. 어떤 비트가 변조되었으면, 신드롬은 0이 아니게 될 것이다. 변조된 비트의 수와, 인코딩된 시퀀스의 해밍 거리에 따라, 상기 신드롬은 변조된 비트를 정정하는 데 이용될 수 있다.
도 9c 및 도 9d 각각의 신드롬 생성 회로는, 상기 회로가 입력부에서 수신된 입력 데이터를 그 출력부로 통과시키는 지와, 상기 회로가 신드롬 비트를 그 추력부로 인가하는 지를 제어하는 제어 비트(C2)를 이용한다. 도 9c를 참조하면, 최초 "z" 클록 사이클 동안, 제어 비트(C2)는 하이 이고, z-비트 블록의 입력 데이터(INPUT)를 쉬프트 레지스터로 제공하여, 멀티플렉스(303)를 통해 출력부로 통과되도록 한다. 도 9c의 수신기가 본 발명의 바람직한 실시예에 따른 수신기에 구현되면(예를 들어, 도 14의 수신기(200)의 바람직한 구현), 32-비트 패킷 헤더는 C2가 하이 인 각 구간 동안 입력된다(그리고 출력부로 통과된다). 그리고, C2가 로우로 천이되면, 멀티플렉서(303)는 입력 데이터 대신에 레지스터(Q7)의 출력을 통과시킨다. C2 가 로우 일 때, 8 개의 신드롬 비트의 시퀀스는, 8 클록 사이클 동안, 레지스터(Q7)에서 쉬프트 출력된다.
도 9d 회로는 도 9c와 유사하게 동작하지만, 도 9d 회로는 (도 9c 에서의 단 하나의 입력 노드를 갖는 쉬프트 레지스터와 달리) 2 개의 입력 노드와 2 개의 출력 노드를 갖고, 각 입력 노드는 입력 비트의 다른 서브세트를 수신하는 쉬프트 레지스터를 포함하고, 8 개의 신드롬 비트를 생성하기 위해 단 (N/2)+1 개의 클록 사이클과(도 9c가 동일한 비트를 생성하기 위해 N+1 클록 사이클이 필요한 반면), 상기 8 개의 신드롬 비트를 쉬프트 출력하기 위해 4 개의 추가적인 클록 사이클(4개의 신드롬 비트를 레지스터(Q6)로부터 쉬프트 시키고, 4개의 신드롬 비트를 레지스터(Q7)로부터 쉬프트 시킴으로써) 만을 요구한다. 입력 데이터의 현재 블록의 인가 끝 부분에서 (도 9d의 레지스터(Q0-Q7) 각각의) 레지스터 값과, 입력 데이터의 다음 블록의 최초 짝수 비트("IN[0]") 및 최초 홀수 비트("IN[1]")이 주어지면, 입력 데이터의 현재 블록에 대한 (레지스터(Q6 및 Q7)로부터 멀티플렉서(304 및 305)에 인가된) 신드롬 비트는 항상 결정된다. 도 9d의 회로가 본 발명의 바람직한 실시예에서의 수신기 내에 구현되면(예를 들면, 도 14의 수신기(200) 내의 바람직한 구현), 64 비트의 서브패킷은, C2 가 하이 인 32 클록 사이클 동안, 클록 사이클 단위로 수신된 서브패킷 비트의 다른 쌍, IN[0], IN[1] 및 클록 사이클 단위로 출력된 서브패킷 비트의 다른 쌍 OUT[0], OUT[1]과 함께, 입력부에서 수신된다(그리고, 출력부로 통과된다). 일반적으로, "m" 개의 입력 노드를 갖는 쉬프트 레지스터를 갖고, 현재 블록에 대한 신드롬을 생성하면서 입력 데이터의 다음 블록의 "m" 비트를 (각 쉬프트 레지스터 입력부에서 "m" 비트 중 하나씩) 수신하는, 도 9d 의 변형된 설계는, "k/m+p" 클록 사이클에서 입력 데이터의 현재 블록에 대한 신드롬 비트를 생성할 수 있고, (예를 들어, C2 가 로우 일 때) "n/m" 사이클에서 상기 신 드롬 비트를 쉬프트 출력할 수 있으며, 이때, "n", "p" 및 "k" 는 각 입력 블록에 사이즈 및 각 입력 블록에 대해 생성되는 신드롬 비트의 수에 의해 결정되는 파라미터이다.
도 9d 회로의 일반적인 동작에서, 입력 데이터의 다음 블록의 최초 짝수 비트("IN[0]") 및 최초 홀수 비트("IN[1]")는 C2가 하이-로우로 천이하는 타이밍에서 도 9d의 회로의 입력부에 인가되고, IN[0] 및 IN[1] 값들은 C2 가 로우로 유지되는 동안 상기 입력부에 계속 인가된다. C2 가 하이-로우로 천이되는 타이밍에서, 레지스터(Q0, Q1, Q2, Q3, Q4, Q5, Q6 또는 Q7) 각각의 비트를 지칭하기 위해, "Q0, Q1, Q2, Q3, Q4, Q5, Q6 또는 Q7" 이라는 표기를 사용한다. C2 가 로우 일 때, 비트(Q0, Q2, Q4 및 Q6)는 (이 과정 동안 AND 게이트(311)의 출력부가 로우이기 때문에) 하나의 쉬프트 레지스터로부터 멀티플렉서(305)로 쉬프트 출력되고, 비트(Q1, Q3, Q5 및 Q7)는 (이 과정 동안 AND 게이트(310)의 출력부가 로우이기 때문에) 하나의 쉬프트 레지스터로부터 멀티플렉서(304)로 쉬프트 출력된다 이들 신드롬 비트의 값들은 다음과 같다:
Q0 = IN[1] ^ ((Q6 ^ Q7) & C2);
Q1 = IN[0] ^ (Q7 & C2);
Q2 = Q0;
Q3 = Q1;
Q4 = Q2;
Q5 = Q3;
Q6 = Q4 ^ ((Q6 ^ Q7) & C2); 및
Q7 = Q5 ^ Q6,
여기서 "^"는 배타적 OR(exclusive OR) 동작을 나타내고, "&"는 AND 동작을 나타낸다.
비트(Q0, Q1, Q2, Q3, Q4, Q5, Q6 및 Q7)는 C2 가 하이 일 때, 생성된다. C2 가 로우이면, 도 9d의 회로는 단순한 쉬프트 레지스터로 기능하여, Q0, Q2, Q4 및 Q6를 멀티플렉서(305)로 쉬프트 출력하고, Q1, Q3, Q5 및 Q7을 멀티플렉서(304)로 쉬프트 출력한다.
도 9d 회로로부터 출력된 비트들(Q0, Q1, Q2, Q3, Q4, Q5, Q6 및 Q7)의 동일한 값들이 도 9c의 회로로부터 출력되지만(C2 가 하이-로우로 천이하기 전에 도 9c 및 도 9d의 회로에 동일한 입력 값들이 인가되고, 다음 블록의 최초 홀수 비트(IN[1])가 입력 값으로 인가 된 다음, 클록 에지에서 제어 비트(C2) 가 하이-로우로 천이한다고 가정한다), 도 9c 회로는 이 값들을 멀티플렉서(303)로 쉬프트 시키기 위해 8 개의 클록 사이클을 요구하지만, 도 9d 회로는 이 값들을 멀티플렉서(304 및 305)로 쉬프트 시키기 위해 단 4 개의 클록 사이클만이 요구된다.
또한, 바람직하게는, 본 발명에 따른 시스템에서, BCH 에러 검출의 신뢰성을 향상시키기 위해, 송신기는 입력 데이터 스트림 내에 (상기 입력 데이터 스트림이 서브패킷으로 그룹핑 될 때) 자동적으로 0 비트들을 삽입하도록 하여, 상기 삽입된 0 비트들이 각 데이터 비트들에 대해 이용 가능한 각 서브패킷의 56 슬롯들 중 알려진 위치에서 발생할 수 있도록 구성된다. (이러한 송신기와 같이 사용되는) 수 신기 내의 에러 검출 회로는, 각 복원된 데이터의 서브패킷의 예상된 슬롯 내의 0들을 체크하여, 각 복원된 데이터의 서브패킷 각각의 에러를 나타내는 결과 정보를 이용하도록 구성되어야 한다.
패킷 전송의 32 픽셀 클록 사이클 중 어느 한 사이클 동안 CH0 상에서 전송된 10-비트 코드 워드에 의해 결정된 각 4-비트 워드의, 제3 비트(도 9의 "bit2")는, 상기 패킷 헤더의 비트들 중 하나의 비트이다. 패킷 전송의 32 픽셀 클록 사이클 동안 CH1 상에서 전송된 10-비트 코드 워드에 의해 결정된 4-비트 워드는, 상기 서브패킷의 짝수 비트들이다. 패킷 전송의 32 픽셀 클록 사이클 동안 CH2 상에서 전송된 10-비트 코드 워드에 의해 결정된 4-비트 워드는, 상기 서브패킷의 홀수 비트들이다.
더욱 구체적으로는, 도 9에 나타낸 바와 같이, "N" 번째 픽셀 클록 사이클 동안 CH1 상에서 전송된 코드 워드 각각은 서브패킷0, 1, 2 및 3 각각의 짝수 비트를 결정하고, "N" 번째 픽셀 클록 사이클 동안 CH2 상에서 전송된 코드 워드 각각은 서브패킷0, 1, 2 및 3 각각의 홀수 비트를 결정한다. "N" 번째 픽셀 클록 사이클 동안 CH0 상에서 전송된 코드 워드 각각은 (HSYNC 비트 및 VSYNC 비트뿐만 아니라) 상기 패킷 헤더 1 비트를 결정한다. "N+1" 번째 픽셀 클록 사이클 동안 CH1 상에서 전송된 코드 워드 각각은 서브패킷0, 1, 2 및 3 각각의 다음 짝수 비트를 결정하고, "N+1" 번째 픽셀 클록 사이클 동안 CH2 상에서 전송된 코드 워드 각각은 서브패킷0, 1, 2 및 3 각각의 다음 홀수 비트를 결정한다. "N+1" 번째 픽셀 클록 사이클 동안 CH0 상에서 전송된 코드 워드 각각은 (다음 HSYNC 비트 및 다음 VSYNC 비트뿐만 아니라) 다음 비트의 패킷 헤더를 결정한다.
패킷 헤더의 BCH 패리티 비트(상기 패킷 헤더의 마지막 8 비트)는 상기 패킷 헤더의 24 데이터 비트를 통해 계산되고, 상기 패킷의 마지막 8 픽셀 클록 사이클 동안 CH0를 통해 전송된 코드 워드를 통해 결정된다. 각 서브패킷에 대한 BCH 패리티 비트는, 상기 서브패킷의 56 데이터 비트를 통해 계산되고, 상기 패킷의 마지막 4 픽셀 클록 사이클 동안 CH1 및 CH2를 통해 전송된 코드 워드에 의해 결정된다(각 서브패킷에 대한 패리티 비트는 2 채널:CH1 및 CH2를 통해 전송된 비트들을 포함한다).
따라서, 바람직한 실시예에서, 송신기는, 패킷이 TMDS 링크의 세 채널(CH0, CH1 및 CH2)을 통해 확산되고, 패킷의 각 서브패킷이 링크의 두 채널(CH1 및 CH2)을 통해 확산된, 패킷 각각을 (데이터 아일랜드 동안) 전송할 뿐만 아니라, 상기 송신기는 패킷의 서브패킷 각각에 대한 BCH 패리티 비트를 개별적으로 생성하고, 이들 BCH 패리티 비트들이 링크의 두 채널(CH1 및 CH2)을 통해 확산되도록 서브패킷 각각에 대한 BCH 패리티 비트들을 전송한다.
바람직하게는, 각 패킷 헤더의 첫 번째 바이트는 "Packet Type" 코드이고, 각 패킷 헤더의 두 번째 및 세 번째 바이트 각각은 패킷-특정(packet-specific) 데이터를 나타낸다. 바람직하게는, 송신기는 4개 이상의 타입의 패킷을 생성할 수 있다: (패킷 타입 코드 0x00=0b00000000 에 의해 나타내는) 널 패킷(null packet); (패킷 타입 코드 0x01 = 0b00000001 에 의해 나타내는) 오디오 클록 재생성(ACR; audio clock regeneration) 패킷; (패킷 타입 코드 0x02 = 0b00000010 에 의해 나타내는) 오디오 샘플 패킷; (패킷 타입 코드 0x80 + InfoFrame Type = 0b1xxxxxxx 에 의해 나타내고, 여기서 7 개의 LSB는 EIA/CEA-861B 설명서에 의해 정의된 InfoFrmae 의 타입을 나타낸다).
다음으로, 바람직한 실시예에 따른 이들 패킷의 4 가지 타입 각각의 포맷과 사용을 설명한다.
송신기는 널 패킷을 어느 때라도 송신할 수 있지만, 수신기는 널 패킷으로부터 데이터를 복원하지 않는다. 수신기가 (패킷 헤더의 첫 번째 바이트 내의 0x00 값을 식별함으로써) 널 패킷을 식별하면, 수신기는 패킷 헤더의 첫 번째 바이트 다음부터 널 패킷 내의 모든 값들을 무시한다("정의되지 않은(undefined)" 것으로 여긴다).
오디오 클록 재생성(ACR) 패킷은 CTS(Cycle Time Stamp) 값과, 오디오 클록 재생성에 사용되는 N 값( 아래에 설명됨) 모두를 포함한다. ACR 패킷의 4개의 서브패킷들은 동일하다. 각 서브패킷은 20-비트의 "N" 값과 20-비트의 "CTS" 값을 포함한다. CTS 값은 CTS의 새로운 값이 없다는 것을 나타낼 때 0이다.
오디오 샘플 패킷은 오디오 샘플들의 1, 2, 3 또는 4개의 쌍(각 샘플 쌍은 패킷의 다른 서브패킷에 의해 결정된다)을 포함할 수 있다. 이들은 다른 샘플들, 다른 부분 샘플들(예를 들어, 6개의 채널 중 2개), 또는 반복된 샘플들일 수 있다. 오디오 샘플 패밋의 헤더의 두 번째 및 세 번째 바이트 내의 비트들은, 패킷의 서브패킷 각각의 구성을 나타내고, 각 서브패킷이 샘플을 포함하고 있는지의 여부를 나타내며, 또한, 각 서브패킷이 "플랫라인(flatline)" 샘플(즉, 크기가 0인 것)을 포함하고 있는지를 나타낸다. 바람직하게는, 패킷 헤더의 두 번째 바이트의 4 LSB 각각은 대응하는 서브패킷이 오디오 패킷을 포함하는 지를 타나내며, 패킷 헤더의 세 번째 바이트의 4 LSB는 대응하는 서브패킷이 "플랫라인" 샘플을 포함하는 지를 나타낸다. 하지만, 상기 세 번째 바이트의 어떤 LSB의 (플랫라인 샘플을 나타내는) "1" 값은 상기 두 번째 바이트의 대응하는 "현재" 비트(상기 두 번째 바이트의 4 LSB 중 하나)가 서브패킷이 샘플을 포함하고 있음을 나타내고 있는 경우에는 무의미한 값이 된다. 오디오 샘플 패킷의 각 서브패킷은 오디오 샘플을 나타내는 비트뿐만 아니라 채널 상태 비트 및 패리티 비트도 포함할 수 있다.
바람직하게는, (오디오 샘플 패킷의) 각 서브패킷의 오디오 데이터는, IEC_60958 또는 IEC_61937 프래임과 매우 유사하지만, (패킷 헤더의) "시작" 비트를 IEC_60598 도는 IEC)61937 프래임의 각 서브-프래임의 다중-비트 프리앰블로 대체한 구조로 포맷된다. 오디오 샘플 패킷의 각 서브패킷은 2 개의 28-비트 워드를 포함할 수 있고(예를 들어, 좌측 스테레오 스트림의 28-비트 워드 및 우측 스테레오 스트림의 28-비트 워드), 각 28-비트 워드는 IEC_60958 프래임의 2 서브-프래임 중 하나에 대응되고, 유효 비트, 패리티 비트, 채널 상태 비트 및 사용자 데이터 비트뿐만 아니라 24 비트의 오디오 데이터를 포함한다. 바람직하게는, 오디오 샘플 패킷의 각 서브패킷 내의 모든 영역은 IEC_60958 또는 IEC_61937 설명서 내의 대응하는 규칙에 따른다.
바람직한 실시예에서, 오디오 샘플 패킷의 패킷 헤더의 세 번째 바이트의 4 LSB 각각은, 대응하는 서브패킷이 오디오 샘플의 IEC_60958(또는 IEC_61937) 프래 임의 첫 번째 프래임을 포함하는 지를 나타내는 "시작" 비트이다. 송신기는, 대응하는 서브패킷이 블록의 첫 번째 "B, W" 프래임을 포함하면, 시작 비트를 "1"로 설정하고, 대응하는 서브패킷이 블록의 첫 번째 "M, W" 프래임을 포함하면, 시작 비트를 "0"으로 소거한다.
바람직하게는, 본 발명에 따른 시스템은, (스테레오 또는 압축된 서라운드-사운드 스트림을 결정할 수 있는) 32kHz, 44.1kHz 또는 48kHz의 샘플 레이트를 갖는 IEC_60958 또는 IEC_61937 오디오 스트림을 전송할 수 있고, 96kHz 까지의 샘플 레이트로 IEC_60958 또는 IEC_61937 데이터의 4개까지의 스트림(예를 들어 8 스테레오 채널), 또는 192kHz의 샘플 레이트로 IEC_60958 또는 IEC_61937 데이터의 하나 이상의 스트림을 전송할 수 있다.
InfoFrame 패킷은 전송될 오디오 및/또는 비디오 데이터에 관련된 포맷 정보 및 관련 정보를 포함할 수 있다. EIA/CEA-861B 표준은, 전송된 디지털 오디오 및/또는 디지털 비디오 데이터에 관련된 포맷 정보 및 관련 정보를 포함하는 하나 이상의 "InfoFrames"로 구성된 "InfoPacket" 데이터 구조를 정의한다. 바람직한 실시예에서, 본 발명에 따른 시스템에 의해 전송된 각 InfoFrame 패킷은 다음의 제한을 갖는 EIA/CEA-861B InfoPacket의 정보를 포함한다: 본 발명에 따른 InfoFrame 패킷은 최대 30 바이트의 크기를 갖는 단을 EIA/CEA-861B InfoFrame의 정보만을 포함할 수 있다(InfoFrame 타입 코드를 나타내는 패킷 헤더의 첫 번째 바이트, 버전 넘버 영역을 나타내는 패킷 헤더의 두 번째 바이트, 및 InfoFrame 길이 영역을 나타내는 패킷 헤더의 세 번째 바이트의 7 개의 LSB를 포함한다); 타입 코드는 0에 서 127 범위 내에 있어야만 한다(타입 코드는 패킷 헤더의 첫 번째 바이트의 7 LSB에 의해 나타나기 때문이다). InfoFrame 타입 코드의 예들은, (InfoFrame 패킷이 AVI(Auxiliary Video information) InfoFrame의 데이터를 포함하는 것을 나타내는) 0x02, (InfoFrame 패킷이 오디오 InfoFrame의 데이터를 포함하는 것을 나타내는) 0x03, (InfoFrame 패킷이 DVD 제어 InforFrame의 데이터를 포함하는 것을 나타내는) 0x04이다. 바람직하게는, InfoFrame 길이 영역은, 패킷 헤더의 3 바이트 및 (길이의 최대 값 "31"이 되도록) 체크섬(checksum)을 포함하는 패킷 내의 무의미한 바이트를 포함하며, EIA/CEA-861B 표준 단위로 InfoFrame 패킷의 길이를 바이트로 나타낸다.
AVI(Auxiliary video information) InfoFrame 패킷은 수신기로 전송된 (또는 전송될) 현재 비디오 스트림의, 상기 비디오 데이터가 RGB, YCbCr 4:2:2, YCbCr 4:4:4 포맷인지를 나타내는지, 상기 비디오 데이터가 오버스캔드 된 또는 언더스캔드 된 화면 종횡비(picture aspect ratio)를 나타내는지(그리고, 상기 화면이 수평 도는 수직으로 크기 변환되었는지), 비디오 요소의 비트 뎁스(bit depth), 라인 당 픽셀 수 및 프레임 당 라인 수, 픽셀 반복 수(즉, 각 픽셀은 반복되지 않거나, 또는 N 번 전송된다, 이때 N은 1보다 큰 정수다) 등의 다양한 특징을 나타낸다. 오디오 InfoFrame 패킷은, 오디오 데이터의 스트림 수, 각 스트림에 대한 샘플링 주파수, 및 샘플 크기(비트의 수) 등의 전송된(또는 전송될) 오디오 데이터의 다양한 특징을 나타낸다.
바람직하게는, 본 발명에 따른 시스템은, 충분한 오디오 대역폭을 제공하기 에 필요한 만큼의 비디오 픽셀의 복사를 사용할 수 있다. 예를 들어, 비디오의 프레임이 L 개의 라인으로 구성되고(이 픽셀들은 첫 번째 픽셀 클록 주파수에서 반복되지 않는 형태로 전송된다), (비디오 라인 다음에 오는 블랭크 구간 내에 각각 삽입되는) 2L 개의 데이터 아일랜드가 비디오의 한 프레임에 대응되는 오디오 비트를 전송할 필요가 있으면, 시스템은 바람직하게 각 픽셀의 전송이 반복되는 모드에서 동작할 수 있다. 픽셀 클록 주파수가 변하지 않으면, 각 픽셀의 반복된 전송이 비디오 전송 레이트를 반으로 줄이는 효과가 있지만(2 반복된 픽셀의 라인들이 반복되지 않는 라인 각각의 모든 픽셀을 전송하는데 필요하기 때문), 반복되지 않는 비디오의 풀 프레임에 대한 오디오 비트가, 프레임의 픽셀들이 반복적으로 전송되는 2L 개의 액티브 비디오 주기 중 한 주기 다음에 오는 2L 데이터 아일랜드에서 전송되도록 한다. 일반적으로, 픽셀 클록 주파수는 픽셀이 반복적으로 전송되는 각 모드 동안에 (반복되지 않는 전송에 대해 사용된 픽셀 클록 주파수에 비해) 증가된다. 예를 들면, 픽셀 클록 주파수가 2 배 되고 각 픽셀의 전송이 한번 반복되는 모드에서, 오디오 데이터는 액티브 비디오 주기 사이에서 (2배된 픽셀 클록에 기초한 타임 스탬프를 갖고) 2배가 된 데이터 레이트로 전송될 수 있지만, 유효한 비디오 픽셀 전송 레이트는 변하지 않는다. 몇 가지 반복된 픽셀 전송 모드에서, 각 픽셀의 전송은 1회 이상 반복된다(예를 들어, 각각이 픽셀 클록의 주파수가 3배된 버전을 이용하여 세 번 전송된다). 어떤 반복된 픽셀 전송 모드에서 전송된 비디오 데이터를 수신하면, 수신기는 각 액티브 비디오 주기 동안 수신된 동일한 비디오 샘플들 각 세트 중 하나의 샘플을 제외한 나머지 모두를 버리지만(예를 들어, 수신기는 각 픽셀이 2번 전송될 때 모든 홀수 비디오 샘플들을 버리거나 모든 짝수 비디오 샘플들을 버린다), 수신기는 액티브 비디오 주시 사이의 데이터 아일랜드 동안 수신된 패킷화된 데이터의 모든 샘플들을 프로세싱한다.
송신기의 픽셀-반복의 사용은 바람직하게 전송된 AVI InfoFrame 패킷 내의 픽셀 반복 수 영역 (Pixel_Repetition_Count field)에 의해 나타난다. 이러한 영역은 각 유일 픽셀들이 얼마나 반복되어 전송되었는지를 수신기에 나타낸다. 반복되지 않는 픽셀 전송 모드에서는, 상기 영역의 값은 0 이다. 픽셀 반복의 모드에서는, 상기 영역의 값은 수신기에 의해 버려져야 할 (연속적으로 수신된 픽셀의 각 세트에서의) 픽셀의 수를 나타낸다. 바람직하게는, 각 라인의 첫 번째 픽셀 클록 사이클 동안 전송된 비디오 샘플들은 유일하지만( 그리고, 버려지지 않는다), 이들 샘플들의 반복 각각은 픽셀 반복 모드에서 버려진다.
바람직한 실시예에서, 본 발명에 따른 시스템은 비디오 데이터를 TMDS 링크를 통해 몇 가지의 다른 포맷으로 전송하도록 구성되고, 수신기는 이러한 포맷 중 어떤 포맷으로도 된 데이터를 복원하도록 구성된다. 바람직하게는, 상기 시스템은 비디오 데이터를 이러한 링크의 CH0, CH1 및 CH2 채널을 통해 YCbCr 4:4:4 포맷, YCbCr 4:2:2 포맷 또는 RGB 포맷 중 어느 것으로, 픽셀 반복 또는 반복 없이 전송할 수 있다. 모든 경우에, 이들 채널을 통해 픽셀 클록 사이클 당 24 비트까지 전송될 수 있다. 도 10에 나타난 바와 같이, RGB 비디오의 전송 도중, 각 픽셀 클록 사이클 동안, 8-비트의 레드 칼라 요소가 채널(CH2)을 통해 전송될 수 있고, 8-비트의 그린 칼라 요소가 채널(CH1)을 통해 전송될 수 있고, 8-비트의 블루 칼라 요 소가 채널(CH0)을 통해 전송될 수 있다. 각 라인의 첫 번째 픽셀의 R, G 및 B 요소는 비디오 가드 밴드 다음에 첫 번째 픽셀 클록 사이클 도안 전송된다(예를 들어, 비디오 가드 밴드 코드가 2번 연속적으로 전송된 두 번째 뒤).
도 11에 나타난 바와 같이, TCbCr 4:4:4 비디오의 전송 도중, 각 픽셀 클록 상클 동안, 8-비트의 "Cr" 샘플이 채널(CH2)을 통해 전송될 수 있고, 8-비트의 "Y" 샘플이 채널(CH1)을 통해 전송될 수 있고, 8-비트의 "Cb" 샘플이 채널(CH0)을 통해 전송될 수 있다.
4:2:2 데이터는 각 픽셀 클록 사이클 당 2 개의 구성요소(Y 및 Cr 또는 Y 및 Cb)의 전송만을 요구하기 때문에, 더 많은 비트들이 각 구성요소 단 많이 배당될 수 있다. 이용 가능한 24 비트들은 Y 구성요소에 대한 12비트로 쪼개지고, C 구성요소에 대한 12 비트로 쪼개진다. 도 12에 나타난 바와 같이, YCbCr 4:2:2 비디오의 전송의 N 번째 픽셀 클록 사이클 동안, 12 비트의 휘도(Y) 구성요소는 채널(CH0 및 CH1)을 통해 전송될 수 있고, 12 비트의 Cb 샘플은 채널(CH0 및 CH2) 채널을 통해 전송될 수 있다. Y 샘플의 4개의 가장 무의미한 비트와 Cb 샘플의 4개의 가장 무의미한 비트가 채널(CH0)을 통해 전송된 TMDS 코드 워드에 의해 결정된다. 그러면, 다음 "N+1" 번째 픽셀 클록 사이클 동안, 다음 12 비트 Y 샘플이 채널 (CH0 및 CH1)를 통해 전송될 수 있고, 12 비트 Cr 샘플이 채널(CH0 및 CH2)을 통해 전송될 수 있다. Y 샘플의 4개의 가장 무의미한 비트와 Cr 샘플의 4개의 가장 무의미한 비트가 CH0을 통해 전송된 TMDS 코드 워드에 의해 결정된다. N 번째 클록 사이클 동안 전송된 Cb 샘플의 비트들은, 동일한 클록 사이클 동안 전송된 Y 샘플을 포함 하는 픽셀에 대한 것이다. "N+1" 번째 클록 사이클 동안 전송된 Cr 샘플 비트들은, 동일한 "N+1" 번째 클록 사이클 동안 전송된 Y 샘플을 포함하는 픽셀에 대한 것이다. Y, Cr 및 Cb 샘플 각각의 12 비트보다 적은 비트로 구성되면, 유효한 비트들은 왼쪽-정렬되어야 하고(가장 중요한 유효 비트들이 정렬되어야 한다), 0 들은 가장 덜 중요한 비트 아래에 메워야 한다.
픽셀-배가(pixel-doubling)를 갖는 비디오 전송 모드 도중, N 번째 픽셀 클록 사이클 동안 전송된 모든 데이터는 다음 "N+1" 번째 픽셀 클록 사이클 동안 다시 전송되고, 다음 데이터 세트는 다음 "N+2" 번째 픽셀 클록 사이클 동안 전송되는 식으로 진행된다.
바람직한 실시예에서, 본 발명에 따른 송신기는 데이터의 HDCP 암호화를 지원하고, 수신기와 HDCP 인증 교환을 초기화하고 수신기 내의 레지스터를 HDCP 컨텐츠 보호를 구현하도록 적절히 연결되었는지 질문하기 위해 수신기와 (예를 들어, TMDS 링크의 DDC 채널을 통해) 통신하도록 프로그램 된 프로세서(예를 들어, 도 2의 마이크로컨트롤러(15))를 포함한다. 상기 프로세서는 바람직하게, 데이터 아일랜드 모드 동작(아래에 설명된다) 동안 HDCP 암호화를 취해 송신기(예를 들어 도 13의 인터페이스(101)를 통해) 및 수신기(예를 들어, DDC 채널을 통해)를 셋업 하기 위해 시스템 소프트웨어로 프로그램 된다. 특히, 시스템 소프트웨어는 송신기가 데이터 아일랜드 모드로 들어가고 (아래에 설명할 바와 같이) 패킷을 수신기로 전송함으로써 수신기의 엔트리를 데이터 아일랜드 모드로 들어가도록 유발시키고, 그런 다음 수신기 내의 적절한 레지스터로 하여금 상기 수신기가 확실히 데이터 아 일랜드 모드로 천이되었는지를 증명하기 위해 질문한다. 수신기 및 송신기 모두가 데이터 아일랜드 모드에 있으면, 송신기 내의 프로세서는 HDCP 인증 소프트웨어를 실행하여 (인증 교환이 성공적으로 완성되면) 송신기가 액티브 비디오 주기 및 데이터 아일랜드 동안 전송될 데이터를 암호화하도록 하게 한다.
데이터 아일랜드 모드의 바람직한 실시예에서, 액티브 비디오 주기 동안 TMDS 링크의 채널(CH0, CH1 및 CH2)를 통해 전송된 (비디오 가드 밴드 워드가 암호화되지 않는 것을 예외하고) 모든 비디오 데이터가 HDCP 암호화되고, 각 데이터 아일랜드 동안, 채널(CH1 및 CH2)를 통해 전송된 코드 워드가 HDCP 암호화된다(하지만, 리딩 데이터 아일랜드 가드 밴드 워드 또는 트레일링 데이터 아일랜드 가드 밴드 워드는 암호화되지 않는다).
(HDCP 암호화가 인에이블 된) DVI 모드에서, 하이 값의 DE는 비디오 데이터가 전송되었음을 나타내고 (또는, 보조 데이터가 액티브 비디오 주기 사이에 전송되었음을 나타내고), DE 가 하이 인 동안 전송된 모든 데이터는 암호화된다. 또한, HDCP 리키잉(rekeying)은 DE의 하이-로우로의 천이 각각에 의해 유발된다. 어떤 실제 "DE" 신호는 전송되지 않는다: 오히려 DE가 로우임을 나타내는 천이-최대화된 코드 워드와, DE가 하이 임을 나타내는 천이-최소화된 코드 워드가 전송된다.
데이터 아일랜드 모드의 바람직한 구현에서, 전송된 데이터가 암호화되었다는 것을 나타내는 단일 DE 값 대신, 2개의 바이너리 암호 모드 값이 데이터가 암호화되었는지를 효과적으로 결정한다. 실제로, 제1 암호 모드 신호(M1)의 하이 값은 비디오 데이터 픽셀들이 암호화되었음을 나타내고, 제2 암호 모드 신호(M2)의 하이 값은 (데이터 아일랜드 동안 전송된) 보조 데이터가 암호화되었음을 나타낸다. M1 및 M2 중 어떤 값 또는 M2와 논리적 OR 연산된 M1의 값은 DVI 모드에서 이용된 DE 값에 대응한다. (비디오 가드 밴드가 아닌) 비디오 데이터를 나타내는 천이-최소화 코드 워드가 TMDS 링크의 채널(CH0, CH1 및 CH2)를 통해 전송될 때만 M1이 하이 이다. (리딩 데이터 아일랜드 가드 밴드 워드 또는 트레일링 데이터 아일랜드 가드 밴드 워드가 아닌) 천이-최소화 코드 워드가 데이터 아일랜드 동안 채널(CH1 및 CH2)를 통해 전송될 때만 M2가 하이 이다. 따라서, 비디오 가드 밴드를 전송하는 도중에는, DE는 하이 이지만, M1과 M2는 하이가 아니다.
(M1이 하이 일 때) 24-비트 비디오 픽셀을 암호화하기 위해, 송신기의 HDCP 사이퍼(chpher) 엔진은 (상술한) 잘 알려진 방법으로 생성된 24-비트 의사-랜덤 값의 스트림을 이용하여 비디오 픽셀에 비트단위의 XOR 동작을 수행한다. (M2가 하이 일 때) 본 발명에 따른 바람직한 실시예에서의 데이터 아일랜드에서 픽셀 클록 사이클 단위로 전송될 8-비트 오디오 데이터를 암호화하기 위해(이러한 오디오 데이터의 4비트는 CH1을 통해 전송을 하기 위해 10-비트 TMDS 골든 워드를 이용하여 인코딩되고, 이러한 오디오 데이터의 다른 4-비트는 CH2를 통해 전송을 하기 위해 10-비트 TMDS 골든 워드를 이용하여 인코딩된다), 송신기 내의 HDCP 사이버 엔진은 종래의 방법에 따라 생성된 의사-랜덤 값 스트림의 24-비트 의사-랜덤 값 각각의 비트 중 선택된 8-비트 서브페트를 이용하여 8 개의 오디오 데이터 비트에 비트단위의 XOR 동작을 수행한다.
데이터 아일랜드 모드의 바람직한 구현에서, HDCP 리키잉(rekeying)은 M1의 하이-로우로의 천이 각각에 응답하여(즉, 각 액티브 비디오 주기 끝 부분에서) 수행된다. 바람직하게는, 상기 리키잉은 Y 픽셀 클록 사이클 내에서 완수되어야 하고(예를 들어, M1의 하이-로우로의 천이의 58 픽셀 클록 사이클 내에서), 상기 송신기는 그 HDCP 암호화 화로가 리키잉을 완료하는 액티브 비디오 주기 사이의 타임 슬롯에만 각 데이터 아일랜드를 위치시키도록 구성되고, 데이터 아일랜드에서 전송될 패킷화된 데이터를 암호화하도록 준비한다.
데이터 아일랜드 모드의 바람직한 구현에서, 본 발명에 따른 송신기는 HDCP 암호화 인디케이터(indicator)(4 개의 제어 비트(CTL0, CTL1, CTL2 및 CTL3)의 값들의 특정 세트, 바람직하게는, CTL3=1, CTL2=0, CTL1=0 그리고 CTL0=1)를 수신기로 전송하여 수신기의 HDCP 사이버 엔진이 프레임 키 계산을 초기화 해야함을 나타내고, 상기 수신기는 프레임 키 계산을 수행함으로써 이러한 HDCP 암호화 인디케이터에 응답하도록 구성된다. 바람직하게는, HDCP 암호화 인디케이터는 블랭크 구간(데이터 아일랜드 또는 액티브 비디오 주기가 아닌), 바람직하게는 수직 블랭크 구간 동안, TMDS 링크의 채널(CH1, 및 CH2)를 통해 전송된 (제어 비트(CTL0, CTL1, CTL2 및 CTL3)의 소정 값을 나타내는) 2 개의 천이-최대화 TMDS 제어 워드에 의해 나타낸다. 도 3의 아래 부분으로부터 두 번째 및 세 번째 로우(row)에, 이러한 HDCP 암호화 인디케이터를 나타내는 코드 워드가 도시된다.
이러한 HDCP 암호화 인디케이터 (때때로 "키 제어" 데이터 또는 "복호화 제어" 데이터로 불린다)의 사용은 수신기가 프레임 키 계산을 수행하는 때(송신기 및 수신기에 의한 HDCP 인증 교환이 완료된 후)를 결정하는 것에 대한 신뢰성을 증가 시킨다. 이러한 암호화 인디케이터는 (제어 비트 CTL3만이 아니라) 4 개의 모든 제어 비트에 종속하기 때문에, 신뢰성은 향상되고 미래의 확장성도 가능하다.
바람직하게는, 수신기는, 비트(CTL0, CTL1, CTL2 및 CTL3)의 소정의 값(예를 들어, CTL3=1, CTL2=0, CTL1=0 그리고 CTL0=1)을 나타내는 코드 워드가, VSYNC 의 액티브 에지 뒤에 오는 (즉, VSYNC의 라이징 에지를 나타내는 코드 워드의 검출 뒤에 오는) 소정의 존속시간(바람직하게는 72 픽셀 클록 사이클)을 갖는 WOO(windows of opportunity) 동안 연속된 픽셀 클록 사이클의 소정의 최소 수(바람직하게는 16 개의 연속된 픽셀 클록 사이클) 각각 동안 검출될 때만, HDCP 암호화 인디케이터를 검출하도록 구성된다. 이러한 HDCP 암호화 인디케이터의 제약은, 인디케이터가 송신기에 의해 전송되고 수신기에 의해 기대될 때 수신기가 인디케이터를 검출하는 것에 대한 신뢰성을 향상시키기 위해 추가된다.
상술한 바와 같이, 데이터 아일랜드 또는 액티브 비디오 주기에 선행하는 프리앰블에서, 제어 문자(특정 값으로 설정된 CTL0, CTL1, CTL2 및 CTL3)는 바람직하게, 다가오는 DE-하이 주기가 데이터 아일랜드인지 또는 액티브 비디오 주기인지를 식별한다. 바람직하게는, 모든 데이터 아일랜드 및 액티브 비디오 주기의 (최초 2 픽셀 클록 사이클 동안 전송된) 최초 2개 코드 워드는 매우 로버스트(robust)한 DE 라이징 에지를 생성하도록 설계된 가드 밴드 코드이다. 송신기는 가드 밴드 워드 코드를 절대 암호화하지 않도록 구성되어야 하며, 수신기는 가드 밴드 코드 워드를 절대 복호화하지 않도록 구성되어야 한다.
바람직한 실시예에서, 본 발명에 따른 시스템의 송신기 및 수신기는 하나 이 상의 TMDS 링크로 연결되고, DVI(digital visual interface) 모드 또는 "데이터 아일랜드" 모드에서 동작 가능하다. DVI 모드에서, 수신기는, 송신기로부터 TMDS 채널(CH0) 상의 HSYNC 및 VSYNC를 나타내는 종래의 천이 최대화된(out-of-band) 코드 워드를 기다리고, 채널(CH0, CH1 및 CH2) 상에 입력되는 코드 워드가 (블랭크 구간 내의) 아웃-오브-밴드 코드 워드인지 또는 (액티브 비디오 주기 및 보조데이터 버스트 내의) 인-밴드 코드 워드인지 식별함으로써 액티브 비디오 주기로부터 ( 및 또한 선택적으로 블랭크 구간 내의 보조 데이터 버스트로부터) 블랭크 구간을 구별하며, 지시에 대한 입력되는 데이터가 데이터 아일랜드 모드로 들어오는 지를 모니터링 한다. 데이터 아일랜드 모드에서, 수신기는, 액티브 비디오 주기 사이의 데이터 아일랜드에서 오디오 데이터(또는 다른 보조 데이터)의 패킷을 기다리고, 데이터 아일랜드 동안 채널(CH0) 상의 HSYNC, VSYNC 및 패킷 헤더 비트를 나타내는 천이-최소화 코드 워드를 기다리며, 리딩 비디오 가드 밴드를 검출함으로써 액티브 비디오 주기를 식별한다. 바람직하게는, 송신기 및 수신기는 DVI 모드로부터 데이터 아일랜드 모드로 동기화된(그리고 거의 동시의) 천이를 거친다.
바람직하게는, 각 DVI-데이터 아일랜드 모드로의 천이는 송신기가 데이터 아일랜드 모드로 들어가고 수신기에 의해 검출되는 데이터 아일랜드를 송신할 때 발생한다. 데이터 아일랜드가 뒤따라온다는 것을 나타내는 (CH1 및 CH2 모드에서 전송되고, 바람직하게는, CH2 상에서 CTL3, CTL2=01을 나타내는 코드 워드, CH1 상에서 CTL1, CTL0=01을 나타내는 코드 워드에 의한) 프리앰블, 및 상기 프리앰블 뒤에 오는 하나 이상의 특수 가드 밴드 코드(바람직하게는 CH1 및 CH2 상 각각에서 값 0x55 값을 각각 갖는 2 개의 연속된 동일한 가드 밴드 코드)에 의해 데이터 아일랜드가 표시된다. 데이터 아일랜드를 검출함에 응답하여 (예를 들어, 데이터 아일랜드 프리앰블을 검출하고, 그런 다음 (데이터 아일랜드 프리앰블 뒤의 첫 번째 픽셀 클록 사이클 내에서) 가드 밴드 워드 0x55를 검출하고, 그런 다음 (데이터 아일랜드 프리앰블 뒤의 두 번째 픽셀 클록 사이클 내에서) 가드 밴드 워드 0x55를 검출함으로써), 수신기는 데이터 아일랜드 모드로 들어간다. 바람직하게는, 수신기는 데이터 아일랜드 모드에 들어가자마자, 송신기에 이해 판독 가능한 레지스터 내의 (데이터 아일랜드 모드 동작을 나타내는) 비트를 세팅한다. 예를 들어, 수신기는 레지스터 내의 비트를 송신기가 DDC 채널을 통해 판독할 수 있는 HDCP 레지스터 공간(예를 들어, 도 14의 레지스터(203))으로 세팅한다. 바람직하게는, 이 비트는 수신기의 하드웨어 리셋만을 통해 소거될 수 있다.
데이터 아일랜드 모드에서, 수신기 내의 회로는 액티브 비디오 주기를 나타내는 각 프리앰블/가드 밴드 결합과, 데이터 아일랜드를 나타내는 각 프리앰블/가드 밴드 결함에 대한 입력 데이터를 모니터링 한다.
바람직한 실시예에서, 송신기는 DDC 채널을 통해 수신기 모드 상태를 판단할 수 있다(예를 들어, 수신기가 DVI 또는 데이터 아일랜드 모드에 있는지, 수신기가 수행할 수 있는 HDCP 암호화가 어떤 타입인지). 만일 송신기가, 수신기가 데이터 아일랜드 모드에 있고 특정 타입의 HDCP를 지원하는 것을 나타내는 레지스터 비트를 (DDC 채널을 통해) 판독하면, 송신기는 (천이-최대화 코드 워드가 아닌 천이-최소화 TMDS 코드 워드에 의해 결정된 비트로 데이터 아일랜드 동안 VSYNC 및 HSYNC 를 전송하고, 비디오 가드 밴드 코드를 비디오 스트림으로 삽입하는) 데이터 아일랜드 모드에서 동작할 것이고, 전송될 데이터를 암호화하기 위해 적절한 HDCP 상태 머쉰을 이용할 것이다(그러나 어떤 비디오 가드 밴드도 암호화하지 않는다).
데이터 아일랜드 모드에서, 송신기는 바람직하게, EDID 데이터 구조 (바람직하게는 EDID에 이에 정의된 EIA/CEA-861B를 포함하는)를 판독함으로써 (예를 들어 도 2의 ROM(23)으로부터) 수신기의 능력 및 특성을 판단하는 데 DDC 채널을 이용한다. 또한, 송신기는 다양한 클러스터-와이드(cluster-wide) 제어 동작에서의 사용을 위해, 그 자체적인 물리적 장치 어드레스를 판단하는 데 DDC 채널을 사용할 수 있다. 바람직하게는 송신기는 수신기의 복호화 능력 (어떤 것이라도)의 판단에 응답하여 어떤 타입의 암호화를 사용할지 판단하고, 수신기로 선택된 암호화 모드를 통보한다.
바람직한 실시예에서, 다음의 단계들이 전송된 데이터의 HDCP 암호화를 갖는 데이터 아일랜드 모드 동작을 시작하기 위해 송신기에 의해 취해져야 한다:
1. 송신기의 상태는 초기 상태로 리셋된다;
2. 송신기는 수신기의 EDID 데이터를 판독하여 (예를 들면, EDID 데이터는 DDC 채널을 통해 도 2의 ROM(23)에 저장된다) 수신기가 데이터 아일랜드 모드 동작이 가능한지를 판단한다;
3. 수신기가 데이터 아일랜드 모드 동작을 할 수 있으면, 송신기는 특수 모드 비트 (예를 들어, 데이터 아일랜드 모드 =1)를 (송신기의 구성 레지스터 내에) 기록한다;
4. 송신기는 데이터 아일랜드 패킷을 수신기로 전송한다(예를 들어 널 패킷(Null packet));
5. 송신기는 DDC 채널을 통해 수신기의 레지스터 내의 특수 모드 비트를 판독한다 (예를 들어, 도 14의 레지스터(203) 내의 소정 위치에 있는 데이터 아일랜드 모드 비트);
6. 수신기의 특수 모드 비트가 설정되면 (예를 들어, 데이터 아일랜드 모드 비트 = 1), 송신기 및 수신기는 단계 7로 간다. 그렇지 않으면, 송신기 및 수신기는 단계 4로 간다;
7. 여기서, 송신기 및 수신기는 데이터 아일랜드 모드에서 동작한다. 그리고 송신기는 HDCP 인증 절차를 시작한다; 그리고
8. 7 단계 후에, HDCP 인증이 완료되면, 모든 송신기의 HDCP 엔진이 인에이블 되었다는 것에 응답하여, 송신기는 송신기의 구성 레지스터 내의 비트(예를 들어 비트"HDCP Authenticated(HDCP 인증됨)")를 설정한다.
바람직하게는, 시작하는 동안, 원하지 않는 비디오 출력이 수신기로부터 발생할 수 있는, 송신기가 데이터 아일랜드 모드에 있지만 수신기가 아직 DVI 모드에 있는, 시작하는 동안의 시간이 있기 때문에, 수신기는 비디오 및 오디오 출력을 디스에이블 시킨다.
도 13은 본 발명의 실시예에 따른 송신기인 송신기(100)의 블록도이다. 송신기(100)는 외부 소스로부터 수신된 비디오 데이터(D[23:0])에 파이프라인 암호화(pipelined encryption) 및 다른 파이프라인 프로세싱 (예를 들어, 재 포맷, 업샘플링 및/또는 칼라 공간 전환)을 수행하는 비디오 서브시스템(106)을 포함한다. 일반적으로, 비디오 데이터 클록(IDCK, 여기서 "픽셀 클록"으로 지칭된다), 비디오 데이터 인에이블 신호(DE), 수평 및 수직 동기 제어 신호(HSYNC 및 VSYNC)는 외부 소스로부터 입력된 비디오 데이터와 함께 수신된다. 송신기(100)는 일반적으로 25MHz에서 112MHz까지의 범위의 주파수를 갖는 픽셀 클록에 응답하여 동작하도록 구성된다. 서브시스템(106)은 사이퍼(cipher) 엔진(104)으로부터의 의사-램덤 값을 이용하여 입력 비디오 데이터(또는 재 포맷된 또는 입력 비디오의 다르게 프로세싱된 버전)를 암호화하고 암호화된 비디오를 멀티플렉서의 제1 입력으로 인가한다. 동작하는 동안, 사이퍼 엔진(104)은 레지스터(103) 내의 비트들을 이용한다. 레지스터(103)는 인터페이스(101) 및/또는 인터페이스(102)를 통해 수신된 값으로 로딩될 수 있다.
일반적으로, 인터페이스(101)는 마이크로컨트롤러(예를 들어, 도 2의 마이크로컨트롤러(15))와의 I2C 통신을 위해 연결된다. 또한, 마이크로컨트롤러는 TMDS 링크의 DDC 채널 및 입력 데이터 소스(예를 들어, 비디오 소스)와 연결된다. 인터페이스(101)는 I2C 슬래이브 프로토콜에 정보 및 구성 비트(예를 들어, InfoFrame 비트) 및 다른 비트(예를 들어, HDCP 인증 절차 동안 수신된 키 값)를 수신하도록 하게 하고, 이러한 비트를 레지스터(105 및 103)에 로딩하게 할 수 있다.
송신기(100)가 집적 회로로 구현되면, 키 값 및 (복호화에 사용되는) 인증 비트가 미리 로딩된 EEPROM은 송신기 (100) 및 EEPROM 모두를 포함하는 보안 멀티-칩 모듈(MCM) 내의 개별적인 칩으로 구현될 수 있다. 이러한 EEPROM의 예는 도 2 의 EEPROM(14)이다. 인터페이스(102)는 송신기(100) 및 EEPROM 사이의 인터페이스를 제공한다. 인터페이스(102)는 수신기와의 HDCP 인증 교환 도중 등의, 적절한 시기에 EEPROM으로부터 값들을 추출할 수 있다. 인터페이스(102)는 EEPROM과의 I2C 통신을 위해 사용하는 클록(예를 들어, 100kHz 클록)을 생성하기 위해 링 오실레이터 (113)의 (일반적으로 64MHz 또는 51.2MHz에서 76.8MHz 사이의 주파수를 갖는) 출력을 사용한다.
또한, 송신기(100)는 외부 소스로부터 수신된 오디오 데이터(AUD)에 파이프라인(pipelined) 포맷, 패킷화, 암호화 및 다른 파이프라인 프로세싱을 수행하는 오디오 서브시스템(108)을 포함한다(AUD가 오디오 데이터가 아닌 보조 데이터일 수는 있지만, 여기서는 이것을 간단히 오디오 데이터라 지칭한다). 일반적인 실시예에서, 송신기(100)는 32kHz 내지 48kHz 범위 내의 샘플 레이트(Fs)를 갖는 S/PDIF 포맷으로, 도는 다른 포맷의 어떤 수(예를 들어, 2-채널의 압축되지 않은 PCM 데이터 또는 멀티-채널 데이터를 나타내는 압축된 비트 스트림)로도 오디오 데이터(AUD)를 받아들 일 수 있다. 오디오 기준 클록(MCLK)는 입력 데이터(AUD)와 함께 수신된다. 클록 MCLK (또한 마스터 클록으로 지칭된다)은 바람직한 실시예에서, 256*Fs (또는 384*Fs)의 주파수를 갖는다.
메인 PLL(phase lock loop;116)은 픽셀 클록 IDCK의 안정된 버전을 생성한다.
리셋 회로(112)는 외부 프로세서로부터 리셋 비트를 수신하기 위해 리셋 핀과 연결된다. 송신기(100)는 소정의 값을 갖는 리셋 비트에 응답하여 송신기를 초 기 상태로 리셋하도록 구성된다. 테스트 회로(110)는 외부 소스로부터 테스트 모드 비트를 수신하기 위해 테스트 비트와 연결된다. 송신기(100)는 상기 테스트 모드 비트 값에 따라 테스트 모드 또는 노말 동작 모드에서 동작하도록 구성된다.
서브시스템(108)은 (2*128Fs 보다 큰 픽셀 클록 주파수가 제공되는 안정된 픽셀 클록), 클록 MCLK, 또는 MCLK의 배가된 주파수 버전을 사용하여 heldh 데이터를 샘플링 할 수 있다. 서브시스템(108)은 샘플링된 오디오 데이터를 포함하는 패킷을 생성하고, 패킷 내의 데이터를 암호화하고, TERC2 또는 TERC4 인코딩을 이용하여 암호화된 데이터를 인코딩하며, 인코딩되고 암호화된 데이터를 포함하는 패킷들을 멀티플렉서(118)의 제2 입력부로 인가한다. TERC4 인코딩을 수행할 때, 서브시스템(108)은 암호화된 샘플 각각의 4개의 가장 무의미한 비트를 16 개의 "골든 워드" (예를 들어, 도 4의 좌측 칼럼의 8-비트 워드 "AD0-AD15") 중 하나로 인코딩하고, 암호화된 샘플 각각의 4 개의 가장 중요한 비트를 다른 골든 워드로 인코딩한다.
또한, 서브시스템(108)은 데이터 아일랜드가 (각각의 데이터는 하나 이상의 패킷을 포함한다) 멀티플렉서(118)에 인가되는 타이밍(DE에 대한)을 판단한다. 서브시스템(108)은 다음을 나타내는 제어 워드를 포함하는 제어 워드들을 데이터 아일랜드와 시-분할-멀티플렉싱(time-division-multiplex)한다: 데이터 아일랜드 프리앰블(예를 들어, 서브시스템(108)은 각 데이터 아일랜드 바로 전에 보조 데이터 프리앰블 워드의 8 픽셀 클록 사이클을 삽입한다), HSYNC 및 VSYNC(예를 들어, 서브시스템(108)은 보조 데이터 프리앰블 워드의 버스트 전에 동기 워드의 12개 이상 의 픽셀 클록 사이클을 삽입한다), 리딩 및 트레일링 데이터 아일랜드 가드 밴드(예를 들어, 서브시스템(108)은 각 데이터 아일랜드의 최초 2개 워드로 리딩 가드 밴드 워드의 2 픽셀 클록 사이클과 각 데이터 아일랜드의 마지막 2개 워드로 트레일링 가드 밴드 워드의 2 픽셀 클록 사이클을 삽입한다), 비디오 프리앰블(예를 들어, 서브시스템(108)은 각 데이터 아일랜드 뒤에 비디오 프리앰블 워드를 삽입한다), 및 비디오 가드 밴드(예를 들어, 서브시스템(108)은 각 비디오 프리앰블 뒤에 비디오 가드 밴드 워드의 2 픽셀 클록 사이클을 삽입한다).
DE (인터페이스9107)에서 수신된 DE 신호)를 나타내는 제어 신호에 응답하여, 멀티플렉서(118)는 (DE가 하이 일 때) 서브시스템(106)으로부터의 비디오 데이터 또는 (DE가 로우 일 때) 서브시스템(108)으로부터의 출력을 TMDS 코어 프로세서(114)로 보낸다.
코어 프로세서(114)는 (PLL(116)에 의해 생성된) 안정된 픽셀 클록에 응답하여 동작하고, 상술한 8-비트 데이터 워드를 10-비트 TMDS 코드 워드로 인코딩하는 동작, 데이터를 직렬 변환하는 동작 및 상기 직렬 변환된 인코딩된 데이터( 및 직렬 변환된 픽셀 클록)를 TMDS 링크를 통해 도 14의 수신기(200) (본 발명의 실시예에 따른 수신기)로 전송하는 동작을 수행한다.
도 14에 도시된 바와 같이, 수신기(200)는 TMDS 링크와 연결되어 동작하는 코어 프로세서(214)를 포함한다. 프로세서(214)는 링크의 클록 채널로부터 픽셀 클록을 복원하고, 메인 PLL(216)은 복원된 픽셀 클록에 응답하여 픽셀 클록을 안정화한다. 상기 안정화되고 복원된 픽셀 클록에 응답하여, 프로세서(214)는 상수한 링크를 통해 수신된 데이터의 복-직렬 변환(de-serializing)하는 동작, 복-직렬 변환된 10-비트 TMDS 코드 워드를 디코딩하여 8-비트 코드 워드로 복원하는 동작, 및 상기 8-비트 코드워드를 분할 유닛(splitting unit; 218)로 인가하는 동작을 수행한다.
유닛(218)은 또한, 프로세서(214)로부터 DE를 나타내는 신호 및 안정화된 복원된 픽셀 클록을 수신한다. 유닛(218)은 프로세서(214)로부터의 코드 워드 스트림 내의 각 데이터 아일랜드 및 각 액티브 비디오 주기의 시작과 끝을 (상술한 타입의 가드 밴드 및 프리앰블 코드 워드를 식별함으로써) 검출하고, (각 데이터 아일랜드의) 각 오디오 데이터 패킷을 파이프라인 오디오 서브시스템(208)으로 발송하고, (비디오 데이터의 모든 버스트들을 포함하는) 남은 데이터를 파이프라인 비디오 서브시스템(206)으로 발송한다. 몇 가지 동작 모드에서, 유닛(218)에 의해 서브시스템(206)으로 인가된 데이터는 HSYNC 및 VSYNC 코드 워드를 포함한다.
비디오 서브시스템(206)은 유닛(218)으로부터 수신된 비디오 데이터에 복호화 및 다른 프로세싱(예를 들어, 재 포맷, 업샘플링 또는 서브샘플링 및/또는 칼라 공간 변환)을 수행한다. 서브시스템(206)은 유닛(218)로부터의 비디오 데이터를 (8-비트 복호화된 워드를 생성하기 위해) 사이퍼 엔진(204)으로부터의 의사-랜덤 값을 이용하여 복호화하고, 상기 복호화된 비디오를 다른 프로세싱(예를 들어, 재 포맷, 서브샘플링, 및 칼라 공간 변환)을 수행하기 위해 파이프라인 된 회로로 인가한다. 파이프라인 된 회로는, 일반적으로 최종 재-포맷 후에, 대응하는 DE, HSYNC 및 VSYNC 신호 및 픽셀 클록과 함께, 복호화되고 프로세싱 된 비디오 비트(Q[23:0])를 출력한다. 한편, 서브시스템(206)은 또한 8-비트의 복호화되고 프로세싱 된 비디오 워드에 응답하여, 레드, 그린, 및 블루 칼라 요소 신호 또는 휘도 및 색차 신호일 수 있는, 아날로그 비디오 신호(AnRPr, AnGY, 및 AnBPb)를 생성하고 출력하는 디지털-아날로그 변환기를 포함한다. 동작 동안에, 사이퍼 엔진(204)은 레지스터(203) 내의 비트들을 이용한다. 레지스터(203)에는 인터페이스(201) 및/또는 인터페이스(202)를 통해 수신된 값이 로딩될 수 있다.
수신기(200)가 집적 회로로 구현되면, 키 값 및 (복호화에 사용되는) 인증 비트가 미리 로딩된 EEPROM은 수신기 (200) 및 EEPROM 모두를 포함하는 보안 멀티-칩 모듈(MCM) 내의 개별적인 칩으로 구현될 수 있다. 이러한 EEPROM의 예는 도 2의 EEPROM(24)이다. 인터페이스(202)는 수신기(200) 및 EEPROM 사이의 인터페이스를 제공한다. 인터페이스(202)는 송신기와의 HDCP 인증 교환 도중 등의, 적절한 시기에 EEPROM으로부터 값들을 추출할 수 있다. 인터페이스(202)는 EEPROM과의 I2C 통신을 위해 사용하는 클록을 생성하기 위해 링 오실레이터 (213)의 (일반적으로 64MHz 또는 51.2MHz에서 76.8MHz 사이의 주파수를 갖는) 출력을 사용한다.
인터페이스(201)는 TMDS 링크의 DDC 채널과 연결될 수 있고, DDC 채널을 통해 송신기와의 통신을 위해 (예를 들어, DDC 채널을 통해 송신기로부터 수신된 키 값을 레지스터(203)에 로딩하는 것을 포함하는 HDCP 인증을 수행하기 위해) I2C 슬래이브 프로토콜을 구현할 수 있다.
한편, 수신기(200)가 (송신기(100)로부터 데이터를 수신하도록 구성된 것 이 에외, 다른 수신기로 데이터를 전송하는 송신기로서 동작하도록 구성된) 중계기(repeater) 일 때, 수신기(200)는 인터페이스(207)를 포함한다. 인터페이스(207)는 호스트 장치와 연결될 수 있고, 정보 및 구성 비트 및 이러한 비트를 레지스터(205 및 203)에 로딩하기 위한 I2C 슬래이브 프로토콜을 구현할 수 있다. 적절한 시기에(즉, 소정 상태, 정보 또는 에러 조건에 응답하여), 인터럽트(INT)가 레지스터(205)로부터 호스트 장치로 인가되어 소프트웨어 처리를 요구한다.
수신기(200)는 또한, 유닛(218)로부터의 오디오 데이터 패킷을 수신하고 프로세싱하기 위한 파이프라인 된 오디오 서브시스템(208)을 포함한다. 서브시스템(208)은 패킷 내의 골든 워드를 디코딩하여 (송신기가 오디오 데이터를 인코딩하기 위해 TERC4 인코딩 방법을 이용했을 때) 골든 워드 각 쌍에 의해 나타내는 8-비트 워드를 결정하고, (송신기가 오디오 데이터를 인코딩하기 위해 RERC2 인코딩 방법을 이용했을 때) 골든 워드 각 쌍에 의해 나타내는 4-비트 워드를 결정한다. 또한, 서브시스템(208)은 디코딩된 오디오 샘플을(사이퍼 엔진(204)으로부터의 의사-랜덤 비트를 이용하여) 복호화하고, 상기 복호화되고 디코딩된 샘플에 에러 정정을 수행하고, 상기 패킷으로부터 에러-정정되고 복호화되고 디코딩된 샘플을 언팩(unpack)하고 (그리고 상기 패킷으로부터의 구성 및 상태 정보를 적절한 레지스터로 발송한다), 그리고 상기 언팩된 오디오 샘플에 다른 프로세싱 한다(예를 들어, S/PDIF 및 I2S 출력 엔진에 대한 오디오 데이터 조직화하여, 이러한 엔진들 중 하나 또는 모두의 조직화된 데이터를 프로세싱 하여 S/PDIF 또는 I2S 포맷 중 어느 하나 또는 양쪽 모두의 출력 데이터를 생성한다). 일반적으로, 서브시스템(208)은 어떤 수의 다른 포맷을 갖는 오디오 데이터를 출력할 수 있다(예를 들어, 2-채널의 압축되지 않은 PCM 데이터로 또는 멀티-채널 데이터를 나타내는 압축된 비트스트림으로). 다른 동작 모드에서, 서브시스템(208)은 주파수가 오디오 비트 레이트인 하나 이상의 비트 클록(SCK), 송신기(100)에 의해 이용되는 MCLK 클록의 복원된 버전인 오디오 기준 클록(MCLK), 2 오디오 채널을 나타내는 시-분할 멀티플렉싱된 출력 오디오 데이터 스트림의 디멀티플렉싱에 이용되는 시리얼 데이터 출력 클록(SDO), 및 워드 선택 클록(WS)을(출력 오디오 데이터와 함께) 인가한다.
메인 PLL(216)은 인터페이스(214) 및 수신기(200)의 다른 요소에 의해 사용되기 위한, TMDS 링크의 클록 채널로부터 복원된 픽셀 클록의 안정화된 버전을 생성한다.
리셋 회로(212)는 외부 프로세서로부터 리셋 비트를 수신하기 위해 리셋 핀과 연결된다. 수신기(200)는 소정의 값을 갖는 리셋 비트에 응답하여 수신기를 초기 상태로 리셋하도록 구성된다. 테스트 회로(210)는 외부 소스로부터 테스트 모드 비트를 수신하기 위해 테스트 비트와 연결된다. 수신기(200)는 상기 테스트 모드 비트 값에 따라 테스트 모드 또는 노말 동작 모드 중 한 모드에서 동작하도록 구성된다.
일반적으로, 본 발명의 실시예에 따른 시스템에 사용되는 송신기 및 수신기 각각은 상세한 설명의 내용에 충족되도록 제작된다. 바람직하게는, 송신기 및 수 신기 각각은 상기 명세서에 따라 효과적으로 테스트될 수 있는 방법으로 제작된다.
예를 들면, 본 발명에 따른 실시예들에서, 본 발명에 따른 송신기는 테스트 패턴 생성기(예를 들어, 도 13의 송신기(100)의 테스트 패턴 생성기(119))를 포함하고, 본 발명에 따른 수신기는 동일한 테스트 패턴 생성기(예를 들어, 도 14의 수신기(200)의 테스트 회로(210))를 포함한다. 수신기 내의 테스트 패턴 생성기는 바람직하게는 테스트 모드에 있는 송신기 또는 상기 송신기 내의 테스트 패턴 생성기에 의헤 제어될 수 있고, 수신기는 (예를 들어, 호스트 장치에 의해) 개별적으로 제어될 수 있어, 송신기와 수신기 사이의 시리얼 링크 상의 에러 레이트를 검출할 수 있도록 한다. 예를 들어, 테스트 모드에서, 송신기(100)의 테스트 패턴 생성기(119)는 테스트 데이터를 멀티플렉서(118)를 통해 코어 프로세서(114)로 인가하고, 프로세서(114)는 테스트 데이터를 인코딩하여 상기 인코딩된 테스트 데이터를 TMDS 링크를 통해 수신기(200)으로 전송한다. 테스트 모드에서, 수신기(200)는 데이터를 수신하고 디코딩하여 복원된 데이터를 테스트 회로(210)로 인가한다. 테스트 회로(210) 내의 에러 검출 및 누적 논리부는 복원된 데이터를 회로(210)의 테스트 패턴 생성기에 의해 생성된 테스트 데이터와 비교한다. 복원된 테스트 데이터의 측정된 에러 레이트를 포함하는 테스트 결과는, 링크의 DDC 채널 (예를 들어 인터페이스(201)를 통해)을 통해 송신기(100)으로 재-전송될 수 있고, 및/또는 호스 장치로 (예를 들어 인터페이스(207)를 통해) 인가될 수 있다. 바람직하게는, 송신기 내의 테스트 패턴 생성기(예를 들어, 패턴 생성기(119))와 수신기 내의 동일한 패턴 생성기는 의사-랜덤 테스트 패턴을 생성하는 LFSR(Linear feedback shift register)를 포함하고, 양 패턴 생성기는 동일한 초기 상태 (테스트 모드 동작 동안)에서 시작하여 테스트 모드 동작 동안 동일한 의사-랜덤 테스트 패턴을 생성한다.
DDC 채널을 이 테스트 모드(또는 다른 테스트 모드 동작) 동안 백-채널로 이용하는 것은 송신기(예를 들어, 도 2의 마이크로컨트롤러(15))가 수신기의 테스트 패턴 생성기 및 에러 검출 및 누적 논리부의 상태를 물을 수 있게 한다. 바람직하게는 송신기는 또한 DDC 채널 또는 다른 채널을 통해 수신기의 테스트 모드 동작을 제어할 수 있다. 테스트 모드 동작 동안 DDC 채널(또는 시리얼 링크의 다른 채널)을 에러-검출 백-채널로 이용하는 것은 송신기(예를 들어, 도 2의 마이크로컨트롤러(15))가 송신기의 하나 이상의 파라미터를 바꿀 수 있게 하고, 송신기 파라미터 세트 각각으로부터의 발생하는 에러 레이트를 (수신기에서) 검출할 수 있게 한다. 따라서, 송신기는 링크의 신뢰성을 동작 파라미터의 다양한 세트의 기능으로 판단할 수 있고, 송신기는 동작 파라미터를 최적화하여 수신기에서의 에러 레이트를 줄이거나 최소화할 수 있다.
바람직하게는, 본 발명에 따른 수신기 및 본 발명에 따른 송신기는 테스트 핀(도 13의 테스트 회로(110) 또는 도 14의 테스트 회로(210)와 연결된 핀의 인가를 통해 인에이블된 테스트 특성의 로버스트 세트를 지원하도록 구현된다. 개별적인 테스트 모드는 테스트 모드 동작 동안 테스트 수정 핀으로 재-설계된 입력 가능한 핀 또는 레지스터 비트를 통해 선택될 수 있다. 한편, 테스트 모드 인에이블링은 예를 들어 I2C 인터페이스(도 14의 인터페이스(207) 또는 도 13의 인터페이스(107) 등의)를 통해 비트를 레지스터(예를 들어, 도 14의 수신기(200)의 레지스터(205) 또는 도 13의 송신기(100)의 레지스터(105))로 비트를 로딩함으로써 달성될 수 있다. 레지스터 비트의 로딩을 통한 테스트 모드 인에이블링은 테스트 모드를 인에이블 시키기 위해 더 큰 세트의 벡터를 요구하지만, 이것은 송신기 또는 수신기가 더 적은 입력 핀으로 설게될 수 있게 한다. 8-비트 테스트 모드 레지스터 64 개의 다른 테스트 모드를 가능하게 한다.
바람직하게는, 테스트 모드는 로직 테스트(예를 들어, 풀 스캔), EEPROM 테스트(예를 들어, 체크섬(checksum) BIST, 또는 빌트-인-셀프-테스트(built-in-self-test)), TMDS 코어 테스트(예를 들어, 코어(114 또는 214)가 분리되고 그런 다음 테스트된다), DAC 테스트(예를 들어, 수신기 DAC 회로가 분리되고 그런 다음 테스트 패턴을 이용하여 테스트된다), PLL 테스트, 링 오실레이터 테스트, 및 하나 이상의 디버그 테스트(예를 들어, 내부 신호는 입/출력 핀들로 멀티플렉싱 된다)를 포함한다.
일반적으로, 풀 스캔 로직 테스트는 전용의 입력 및 출력 핀을 필요로 하고, 이들은 로직 테스트 모드 동작 동안 테스트 핀으로 구성된다. 일반적으로, 체크섬-기본의 BIST 방법은 외부 키 EEPROM(예를 들어, 도 2의 EEPROM(14) 또는 EEPROM(24))을 테스트하도록 구현된다. 테스트 회로는 인에이블 되면, EEPROM의 컨텐츠를 판독하고, 체크섬 계산을 수행하고, 그런 다음 EEPROM으로부터 판독된 체크섬과 비교한다. 바람직하게는, 단일 Pass/Fail 인디케이터만이 테스트 회로에 인가되어, 보안을 유지한다.
본 발명에 따른 수신기의 일반적인 TMDS 코어 테스트에서, (도 14의) 코어(214)의 디지털 출력은 회로(206 또는 208)의 출력으로 직접 멀티플렉싱 된다. 바람직하게는, 재생성된 픽셀 클록 또한 아이 다이어그램 테스팅(eye diagram testing)을 가능하게 하기 위해 출력 핀으로 멀티플렉싱 될 수 있다. 본 발명에 따른 수신기의 일반적인 DAC 테스트에서, 입력 클록 핀은 테스트 클록을 (예를 들어 회로(206 또는 208) 내의) DAC 에 직접 제공하여 테스트되게 하여, 외부 장치가 DAC의 클록을 직접 제어할 수 있다. 그러면, 카운터 및 상태 머신을 통해, 특정 테스트 패턴이 DAC로 적용되어 잘-제어된 테스트를 제공한다. 일반적인 PLL 테스트에서, (테스트될 각 PLL으로부터) LOCK 인디케이터는 출력 핀으로 멀티플렉싱 된다. 일반적인 링 오실레이터 테스트에서, 테스트되는 링 오실레이터(예를 들어, 링 오실레이터(113 또는 213))의 클록 신호는 출력 핀으로 멀티플렉싱 된다.
상술한 바와 같이, 실시예들에서, 본 발명에 따른 수신기는 제어 데이터 주기 (즉, 데이터 아일랜드 및 액티브 비디오 주기 동안이 아닌) 동안 (송신기에 의해) 시리얼 링크를 통해 전송된 (프리앰블 코드 워드를 포함하는) 제어 신호에 응답한다. 이러한 제어 신호 각각은 비트 패턴(예를 들어, 비트 CTL0 및 CTL1, 도는 CTL2 및 CTL3를 나타내는 10-비트 TMDS 코드 워드)에 의해 결정된다. 바람직한 실시예에서, 수신기는, 비트 패턴의 반복의 최소 수를 검출할 때만 제어 신호에 응답하고, 또는 제어 데이터 주기의 소정 영역(타임 윈도우) 내의 비트 패턴(또는 비트 패턴의 반복되는 최소 수)을 검출할 때만 제어 신호에 응답한다. 일반적으로, 수신기는 지난 X 픽셀 클록 사이클 내의, Y개 이상의 수신된 비트 패턴이 매칭된 소 정의 패턴(Z)을 갖고 있는지를 검출하도록 구성된다. 그러면, 수신기는 패턴(Z)에 의해 결정된 제어 신호에 응답한다. 예를 들어, 수신기는 바람직하게는, 지난 8 픽셀 사이클 내에서, 채널(CH1) 상에서 수신된 8 개 이상의 비트 패턴이 제어 비트 값 CTL0,CTL1=1,0을 나타내는 매칭된 10-비트 천이-최대화 TMDS 코드 워드의 패턴을 갖고 있고, 채널(CH2) 상에서 수신된 8 개 이상의 비트 패턴이 제어 비트 값 CTL2,CTL3=0,0을 나타내는 매칭된 10-비트 천이-최대화 TMDS 코드 워드의 패턴을 갖고 있다고 판단함에 의해서만 비디오 프리앰블을 인식한다. 다른 예로, 수신기는 바람직하게는, 지난 8 픽셀 사이클 내에서, 채널(CH1) 상에서 수신된 8 개 이상의 비트 패턴이 제어 비트 값 CTL0,CTL1=1,0을 나타내는 매칭된 10-비트 천이-최대화 TMDS 코드 워드의 패턴을 갖고 있고, 채널(CH2) 상에서 수신된 8 개 이상의 비트 패턴이 제어 비트 값 CTL2,CTL3=1,0을 나타내는 매칭된 10-비트 천이-최대화 TMDS 코드 워드의 패턴을 갖고 있다고 판단함에 의해서만 데이터 아일랜드 프리앰블을 인식한다.
바람직한 실시예에서, 본 발명에 따른 수신기는, 송신기로부터 수신기로의 (일반적으로 롱 케이블을 통해) 전송 동안 신호가 손상되는 열화를 보상하기 위해 설계된 방법으로 TMDS 링크의 채널(CH0, CH1 및 CH2) 상의 입력 신호를 필터링 함으로써, 균등화(이퀄라이제이션;equalization)을 구현한다. 예를 들어, 도 14의 수신기9200)의 코어 프로세서(214)의 바람직한 구현은 이러한 필터를 포함한다. 이퀄라이제이션 필터를 설계하기 위해, 전송되는 케이블에 의해 어떤 "케이블 필터"가 효과적으로 신호에 적용되는지를 판단하기 위해 케이블의 필터링 효과가 분 석되고, 상기 케이블 필터의 반전된 버전이 이퀄라이제이션 필터로 선택된다. 따라서, 이퀄라이제이션 필터는 상기 케이블 필터를 보상한다(그리고 바람직하게는 소거한다).
본 발명에 따른 시스템의 몇 가지 바람직한 실시예에서는 전송된 보조 및 비디오 데이터의 복원 도중에 수신기 내에 이퀄라이제이션 필터를 이용할 뿐만 아니라, 전송을 위한 보조 데이터를 인코딩 하기 위해 (상술한 코드 워드의 풀 세트의 서브세트인) "골든 워드"를 사용하며, 양 기술은 모두 복원된 데이터의 에러 레이트를 감소시키는 데 효과적이다.
바람직한 실시예에서, 본 발명에 따른 수신기는 데이터 아일랜드 도중 전송된 적어도 오디오 데이터 (또는 다른 보조 데이터) 내의 검출된 에러를 정정하기 위해, 그리고 또한 선택적으로 액티브 비디오 주기 동안 전송된 비디오 데이터 내의 검출된 에러를 정정하기 위해, 에러 정정 회로(예를 들어 도 14의 수신기(200)의 회로(22))를 포함한다.
예를 들어, 데이터 아일랜드에서 전송된 패킷의 코드 워드 각각은 반복적으로 전송될 수 있다. 세 번 반복된 코딩과 함께 (여기서 전송될 각 코드 워드는 3 개의 연속된 클록 사이클 동안 세 번 전송된다), 패킷화된 데이터는, 예를 들어 블랭크 구간을 정의하는 특정 아웃-오브-밴드 워드를 식별하는 TMDS 링크의 비디오 채널에서 종래에 이용된 동일 기술을 사용하여, 신뢰성을 갖고 복원될 수 있다. 세 번 반복된 인코딩된 데이터의 전송 도중 일어난 에러들은 수신기 내에서 "버플 정정" 에러 정정을 구현함으로써 일반적으로 정정될 수 있다.
버블 정정은 (단일 클록 폭을 갖는) 의심되는 데이터 값을 그 이웃하는 데이터 값으로 제거하고 대체하는 것이다. 다음으로 하나의 코드 워드가 클록 사이클 단위로 전송되고, 세 번 반복된 코딩이 이용되고(각각 다른 코드 워드가 세 번 전송된다), 수신기가 10-비트 TMDS 코드 워드의 (각 10-비트 TMDS 코드 워드는 4-비트 워드로 디코딩된다) 각 시퀀스에 응답하여 4 개의 단일 시퀀스를 생성한다고 가정하는 버블 정정의 예를 설명한다. 이 예에서, 수신기가 동일한 N 번째 비트 및 N+2 번째 비트가 다른 비트에 의해 분리(즉, N+1 번째 비트는 N 번째 비트와 다르다) 되었음을 (복원된 단일 비트의 4 개 시퀀스 중 어느 하나에서)식별하는 경우, 수신기 내의 에러 정정 회로는 가운데 비트(N+1 번째 비트)를 이웃하는 비트 중 어느 하나(즉, N번째 비트)로 대체하고 버블 정정을 완료한다.
버블 정정이 수행된 뒤, 단일의 복원된 보조 데이터 비트의 각 시퀀스에 대한 샘플링 포인트는, TMDS 인코딩된 비디오 데이터 스트림의 블랭크 구간을 식별하기 위해 TMDS 수신기의 디지털 PLL에 의해 종래의 방법으로 수행된 것과 실질적으로 동일한 방법으로 결정될 수 있다. 그러나, 보조 데이터에 대한 샘플링 포인트를 검출하는 회로는 일반적으로 TMDS 인코딩된 비디오 데이트 스트림의 블랭크 구간의 식별 동안 TMDS 수신기의 디지털 PLL 만큼 빨리 동작할 필요는 없다. 또한, 이것은 보조 데이터의 복원 도중 최적 샘플링 포인트를 선택하기 위해 디지털 PLL을 반드시 이용할 필요도 없다. 오히려, 발명자들은 어떤 천이(예를 들어 데이터 아일랜드의 시작) 후의 (단일의 복원된 보조 데이터 비트의 각 시퀀스의) 두 번째 샘플과 그 후의 다음 천이 전까지의 모든 세 번째 샘플을 선택하는 것이 일반적으 로 단순히 충분하다는 것을 알고 있다.
다른 실시예에서, 본 발명에 따른 수신기는 복원된 데이터에서 검출된 에러를 숨기기 위해 보간법(interpolation)을 이용하는 에러 정정 회로를 포함한다. 보간 기술의 어떤 변형도 고차 커브-피팅(curve-fitting)을 이용하는 선형 보간 기술을 포함하여 구현될 수 있다.
바람직한 실시예에서, 본 발명에 따른 송신기는 데이터 아일랜드가 다른 신호(예를 들어 리-키잉하는 사이퍼 엔진에 이용되는 신호)의 전송과 충돌하지 않고, 암호 프로토콜(예를 들어 HDCP)이 고려되도록 두 액티브 비디오 주기 사이에 전송될 각 데이터 아일랜드의 임시적 배치와 존속시간을 결정한다. 바람직한 실시예에서, 송신기의 데이터 아일랜드 포맷에 대해 다음의 제약을 따른다: 데이터 아일랜드는 하나 이상의 패킷을 포함해야 한다(따라서, 그 최소 존속시간은 36 픽셀 클록 사이클이다); 각 아일랜드는 정수의 패킷을 포함해야 한다; 그리고 (데이터 아일랜드 내의 데이터의 신뢰성을 보증하기 위해) 어떤 데이터 아일랜드도 14 개를 초과하는 패킷을 포함할 수 없다.
바람직하게는, 상기 송신기는, 이전 라인 또는 프레임으로부터, (전송을 위해 인코딩될) 비디오 프레임의 시퀀스의 액티브 비디오 주기 및 블랭크 주기가 어디에서 일어나는지를 자동적으로 판단하도록 구성되어, 상기 송신기는 이들 주기들이 전송될 프레임 및 라인의 시퀀스로 언제 발생하는 지와 다른 이벤트(HDCP 리-키잉 이벤트 등)가 연속하는 프레임 및 라인 내에 언제 일어날 필요가 있는지를 알게 된다. 이러한 블랭크 주기의 자동 검출은 송신기가 데이터 아일랜드(이것은 다음 액티브 비디오 주기 또는 다음 HDCP 리-키잉 또는 다른 필요한 이벤트 전에 최소 44 픽셀 클록 사이클을 요구하고: 44 픽셀 클록 사이클 = 패킷에 대한 32 픽셀 사이클 + 데이터 아일랜드 가드 밴드 워드에 대한 4 클록 사이클 + 비디오 프리앰블 코드 워드에 대한 8 픽셀 클록 사이클, 필요한 동기 신호 모두가 전송되었다고 가정한다)를 초기화 할 것이지, 또는 다른 패킷을 갖는 데이터 아일랜드(이것은 최소 42 픽셀 클록 사이클을 요구한다; 42 픽셀 클록 사이클 = 패킷에 대한 32 픽셀 사이클 + 트레일링 가드 밴드 워드에 대한 2 클록 사이클 + 비디오 프리앰블 코드 워드에 대한 8 픽셀 클록 사이클)를 지속할 것인지를 결정하게 한다. 만일 송신기는 다른 액티브 비디오 주기(또는 다른 필요한 이벤트)가 데이터 아일랜드(또는 추가적 패킷)의 전송이 완료될 수 있기 전에 시작된다고 예상하면, 송신기는 일반적으로 데이터 아일랜드의 전송(또는 데이터 아일랜드 내의 다른 패킷의 전송)을 연기한다. 새로운 라인의 비디오 데이터가 비디오 소스로부터 송신기로 인가될 때 송신기가 데이터 아일랜드를 전송하고 있었다면, 송신기는 데이터 아일랜드를 완료할 수 있을 때까지 소스로부터의 입력되는 비디오 픽셀을 무시하고, (바람직한 실시예에서, 제어 데이터 주기에서 12 픽셀 클록 사이클을 요구하는) 필수적인 동기 신호를 전송하고, 그런 다음 비디오 리딩 가드 밴드를 전송하고, 그런 다음에야 인코딩된 비디오 픽셀을 전송할 필요가 있다. 물론, 송신기가 디스플레이 되려 했던 픽셀을 버리는 것은 바람직하지 못하다.
다른 바람직한 실시예에서, 송신기는 블랭크 구간 존속시간의 레지스터 지시에 기초하여 데이터 아일랜드 전송을 초기화하도록 구성된다. 이러한 실시예에서, 송신기는 비디오 프레임 시퀀스의 액티브 비디오 및 블랭크 주기가 전송될 서브시퀀스 프레임 및 라인으로) 언제 발생하는 지와 다른 필요한 이벤트(HDCP 리-키잉 이벤트 등의)가 서브시퀀트 프레임 및 라인의 전송 도중 발생해야 하는지를 나타내는 비트를 저장할 수 있는 레지스터(예를 들어, 도 13의 레지스터(105))를 포함한다. 호스트 장치(예를 들어 비디오 소스)는 중요한 값을 나타내는 비트를 레지스터로 로딩할 수 있다. 이것은 송신기가 이전의 라인 또는 프레임으로부터 비디오 프레임의 시퀀스의 액티브 비디오 및 블랭크 주기 및 중요한 이벤트가 언제 발생(이전의 문단에서 설명된 실시예에서와 같이)하는 지를 자동적으로 판단하기 위한 회로를 포함해야하는 필요성을 제거한다. 레지스터 내의 비트에 의해 나타내는 중요한 값은 예를 들어, HSYNC 의 발생 또는 비디오 소스로부터 Video DE의 라이징 에지(액티브 비디오 주기의 시작)의 (송신기로의) 인가 등의, 그 타이밍이 송신기에 알려진 몇 가지 이벤트에 연결될 필요가 있다. 예를 들어, 송신기는 Video De의 라이징 에지가 HSYNC 의 라이징 에지 (또는 Video De의 라이징 또는 폴링) 뒤의 X 픽셀 다음에 발생하는 것을 나타내는 비트를 저장하는 레지스터를 포함할 수 있다. 송신기가 HSYNC의 다음 라이징 에지(또는 비디오 De의 다음 라이징 또는 폴링)를 알게되면, 송신기 내의 카운터는 카운트하기 시작한다. 송신기가 데이터 아일랜드를 전송하길 원한다고 결정하면, 송신기는 카운터를 체크하고 상기 현재 카운터로부터 전체 데이터 아일랜드를 전송하기에 현재 시간과 비디오 DE의 다음 예상되는 라이징 에지 (또는 다음의 다른 필요한 이벤트) 사이에 충분한 픽셀 클록 사이클이 있는지의 여부를 판단한다.
도 13a 및 도 13c의 회로는 두 액티브 비디오 주기 사이에 데이터 아일랜드를 삽입할 지를 판단하고, 삽입될 데이터 아일랜드 각각의 임시 배치 및 존속시간을 판단하며, 각 데이터 아일랜드를 적절한 타임 슬롯에 삽입하기 위해 본 발명에 바람직한 실시예에 따른 송신기 내에서 구현된다. 도 13a 및 도 13c는 도 13의 송신기(100)의 바람직한 실시예에서 멀티플렉서(118), 코어(114), 및 서브시스템(106 및 108)과 연결된다.
도 13a 회로는 상기 블랭크 구간 내에 데이터 아일랜드를 삽입하기 위해 (또는 이미 삽입된 데이터 아일랜드에 다른 패킷을 추가하기 위해) 현재 블랭크 구간 내에 전송을 위한 충분한 시간이 남아있는지를 나타내는 신호(ok_to_xmit)를 생성한다. 도 13a 의 카운터(140 및 142) 및 논리 유닛(141 및 143) 각각은 송신기로 인가된 픽셀 클록 및 데이터 인에이블 신호 (DE), 및 리셋 신호를 수신한다. 도 13b는 동작 시 도 13a의 회로에 의해 생성된 신호 v_blk_inc, ok_to_xmit_h, ok_to_xmit_v, 및 ok_to_xmit 와 도 13a 회로에 의해 수신된 신호 (DE)의 타이밍도이다.
수직 블랭크 구간 동안, 유닛(141)은 타이밍 신호 v_blank_inc (De 의 라이징 에지와 동일한 위상이며, 송신기에 인가된 입력 비디오의 라인 당 라이징 에지가 한번 일어나는 펄스의 시퀀스)를 카운터(140 및 142)에 인가한다.
수직 블랭크 구간 동안, 카운터(142)는 신호 "v_blank_inc", DE, 및 픽셀 클록("clk")에 응답하여, 수직 블랭크 구간의 시작으로부터 경과된 픽셀 클록의 수를 나타내는 카운트("v_blk_count[5:0])를 생성한다. 카운터(140)는, DE의 마지막 라 이징 에지 또는 "v_blank_inc"의 마지막 라이징 에지 중 뒤에 발생하는 것으로부터 경과된 픽셀 클록 사이클의 수를 나타내는 카운트("h_count[11:0]")를 생성한다. 따라서, 카운터(140)은 수직 블랭크 구간 동안에도 h_count[11:0]을 계속 생성한다. 논리 유닛(143)은 카운터(142)로부터 "v_blk_count[5:0]" 값 및 송신기에 인가된 입력 비디오의 각 수직 블랭크 구간의 소정 길이를 나타내는 (일반적으로 송신기의 구성 레지스터로부터) "v_blank_lt[5:0]" 값을 수신한다. 이에 응답하여, 유닛(143)은 출력 신호 "ok_to_xmit_v"를 생성한다. 출력신호 "ok+to_xmit_v"의 라이징 에지는, 수직 블랭크 구간에서 수신된 'v_blank_inc"의 첫 번째 펄스의 에지와 동시에 일어나고, 출력신호 "ok+to_xmit_v"의 폴링 에지는, 수직 블랭크 구간 내에 데이터 아일랜드를 삽입할 더 이상의 충분한 시간이 남아 있지 않을 때 발생한다. 논리 유닛(141)은 카운터(140)로부터 "h_count" 값 및 송신기에 인가된 입력 비디오의 각 수평 라인의 소정 길이를 나타내는 (일반적으로 송신기의 구성 레지스터로부터) "h_total[11:0]" 값을 수신한다. 이에 응답하여, 유닛(141)은 출력 신호 "ok_to_xmit_h"를 생성한다. 출력신호 "ok+to_xmit_h"는 픽셀 클록 사이클의 소정 수가 마지막 수평 블랭크 구간(또는 "v_blank_inc"의 마지막 펄스)의 끝으로부터 경과되면 라이징 에지를 갖고, 수평 블랭크 구간 내에 데이터 아일랜드를 삽입할 더 이상의 충분한 시간이 남아 있지 않을 때 폴링 에지를 갖는다.
OR 게이트(144)의 입력부가 "ok_to_xmit_h" 신호를 수신하고 OR 게이트(144)의 다른 입력부가 "ok_to_xmit_v" 신호를 수신하면, OR 게이트(144)는 "ok_to_xmit" 신호를 출력부로 인가한다.
도 13c의 논리 유닛(151) 회로는 OR 게이트(144)로부터 "ok_to_xmit" 신호를 수신한다. 논리 유닛(151)은 또한, VSWOO ("VSYNC windows of opportunity") 생성기(150)의 출력, 및 (송신기가 데이터 아일랜드 내의 패킷을 전송할 준비가 되었는지를 나타내는) "packet_req", (송신기가 데이터 아일랜드 내의 패킷을 시리얼 링크로 인가하는 모드에서 동작하고 있는 지를 나타내는) "HDMI_mode", 및 (송신기의 HDCP 사이퍼 엔진이 인에이블 되었는지를 나타내는) "hdcp_enc_en" 신호를 수신한다. 논리 유닛(151)은 액티브 비디오 주기 사이로 데이터 아일랜드를 삽입하고, 데이터 아일랜드 내에서 송신될 각 가드 밴드 및 패킷을 전송하기 위해 필요한 타이밍 및 제어 신호를 생성하도록 구성된다. 바람직하게는, 유닛(151)은 다음의 신호들을 출력한다: (각각 어떤 비디오 가드 밴드도 포함하지 않는 액티브 비디오 주기의 부분과, 어떤 데이터 아일랜드 가드 밴드도 포함하지 않는 데이터 아일랜드의 부분을 나타내기 위해 HDCP 사이퍼 엔진으로 인가되는) vidDEnoGB 및 audDEnoGB, (액티브 비디오 주기 및 데이터 아일랜드를 각각 나타내는) vidDe 및 audDE , DE(명 DE와 논리적으로 "OR' 연산된 vidDE), (송신기가 채널(CH1 및 CH2) 상에서 상술한 HDCP 암호 인디케이터를 나타내는 코드 워드를 전송할 수 있는 타임 구간을 나타내는) hdcp_vs, (비디오 데이터, 비디오 가드 밴드, 리딩 또는 트레일링 데이터 아일랜드 가드 밴드, 또는 패킷화된 데이터 아일랜드 데이터가 제어 데이터 주기 동안이 아닌 타이밍에 전송되는 지를 나타내는) data_set[2:0], (제어 데이터 주기 동안 전송을 위해 인코딩될 CTL0, CTL1, CTL2 및 CTL3 값을 나타내는) control[3:0], (데이터 아일랜드 데이터가 전송을 위해 패킷화되었음을 나타내는) load_pkt 신호. 유닛(151)은 범용 카운터(general purpose counter; 152)로부터의 카운트(cnt)에 응답하여 동작하고, 카운터(152)가 카운트해야 할 값을 판단하도록 하는 제어 비트(ld_cnt)를 카운터(152)로 인가한다. 카운트(152)는 이들 제어 비트, 픽셀 클록 및 리셋 신호를 수신하기 위해 수신기와 연결된다.
VSWOO 생성기 (150)는 송신기로 입력되는 데이터 인에이블(DE), 픽셀 클록("clk") 및 VSYNC 신호, 및 리셋 신호를 수신하고, 송신기가 상술한 HDCP 암호 인디케이터를 송신해야 하는 뒤따라오는 VSYNC의 각 액티브 에지의 소정 기간을 갖는 상술한 WOO (windows of opportunity)를 나타내는 신호를 생성한다. 바람직하게는, 생성기(150)는 상기 WOO의 기간을 72 픽셀 클록 사이클로 설정하도록 구성되고, 생성기(150)는 다음의 신호들을 출력한다: (WOO 동안 하이 인) vswoo, (WOO의 시작 및 끝을 나타내는) vswoo_start_p 및 vswoo_end_p, (VSYNC 펄스의 송신기로의 인가가 끝단 뒤 48번째 픽셀 클록 사이클을 나타내는) vswoo_48_p, (VSYNC 펄스의 송신기로의 인가의 끝을 나타내는) vsync_end_p, 및 (각 블랭크 구간의 시작 및 끝을 나타내는) de_start_p 및 de_end_p.
바람직하게는, 유닛(151)에 의해 인가되는 타이밍 신호는 데이터 아일랜드 프리앰블 각각이 vidDEnoGB의 각 폴링 에지 다음 48 픽셀 클록 사이클 뒤에 (이보다는 빠르지 않게) 전송되도록 하게 한다. 상술한 바와 같이, 본 발명의 바람직한 실시예에 따른 송신기는, TMDS 링크의 채널(CH1 및 CH2) 각각을 통해, 8 개의 동일한 데이터 아일랜드 프리앰블 코드 워드 버스트를 각 데이터 아일랜드 바로 전에, 8개의 동일한 비디오 프리앰블 코드 워드 버스트를 각 액티비 비디오 주기 바로 전 에 전송한다. 바람직한 실시예에서, 송신기는 데이터 아일랜드 프리앰블 코드 워드의 인가 전에 제어 데이터 주기 동안 채널(CH1 및 CH2) 각각을 통해 디폴트("idle") 제어 워드를 전송한다.
픽셀 클록 레이트의 변화는 본 발명에 따른 시스템이 송신기 및 수신기 사이의 동기를 자주 놓치도록 하게 한다. 송신기 및 수신기를 (픽셀 클록 레이트를 변경하기 전에) 본 발명의 실시예에 따라 "침묵(mute)" 상태로 들어가도록 하게 함으로써, 송신기 및 수신기 내의 암호화 및 복호화 회로는 동기를 놓치지 않고 픽셀 클록 레이트의 변경에 응답할 수 있다. 일반적으로, 이것은 송신기로 (일반적으로 제어 비트로 나타내는) 경보를 전송함으로서 달성된다. 상기 경보에 응답하여, 송신기는 침묵 상태에 들어가고, 패킷 내에 (일반적으로 하나 이상의 침묵 상태 제어 비트에 의해 나타내는) 수신기 경보를 포함시키고, 상기 패킷을 데이터 아일랜드 동안 수신기로 전송한다. 상기 수신기 경보에 응답하여, 수신기는 침묵 상태로 들어간다.
상기 경보에 응답하여, 송신기는 일반적으로 플래그("AVMUTE" 플래그)를 설정한다. 도 13의 송신기(100)의 일반적인 구현에서, 상기 경보는 인터페이스(101)에서 수신되고, 송신기로 하여금 레지스터(103) 및/또는 레지스터(105) 내의 "AVMUTE" 플래그를 설정하게 한다. 도 14의 수신기(200)의 일반적인 구현에서, 상기 수신기 경보는, 수신기로 하여금 레지스터(203) 및/또는 레지스터(205) 내의 AVMUTE 플래그를 설정하게 한다. 송신기 내의 AVMUTE 플래그에 응답하여, 암호화 회로(예를 들어, 도 13의 송신기(100) 내의 사이퍼 엔진(104))는 비디오의 현재 프 레임의 프로세싱을 완료한 뒤 미활동(idle) 상태로 천이된다. 수신기 내의 AVMUTE 플래그에 응답하여, 복호화 회로(예를 들어, 도 14의 수신기9200) 내의 사이퍼 엔진(204))는 비디오의 현재 프레임의 프로세싱을 완료한 뒤 미활동(idle) 상태로 천이된다. 암호화 회로가 미활동 상태로 천이되면 송신기는 침묵 상태로 들어가고, 복호화 회로가 미활동 상태로 천이되면 수신기는 침묵 상태로 들어간다.
본 발명의 바람직한 실시예에 따른 송신기에서, AVMUTE 플래그의 설정 뒤에 발생하는 다음 수직 블랭크 구간의 VSYNC의 액티브 에지 뒤에 오는 (상술한) WOO(window of opportunity)의 끝에서 상기 암호화 회로의 동작은 결빙(freeze) 된다(그리고, 미활동 상태로 들어간다). 이 때, 송신기는 침묵 상태로 들어가고, 패킷 상태의 유용한 보조 데이터(예를 들어, 오디오 데이터)의 전송을 중단하며, 유용한 비디오 정보의 전송을 중단한다(예를 들어, 송신기의 비디오 및 오디오 출력은 그곳에 인가된 입력 오디오 및 비디오에 응답하여 변화되지 않는다). (침묵 상태의) 송신기는 그런 다음 데이터 아일랜드 동안 수신기에게 (예를 들어, 바람직하게는 이전의 액티브 비디오 주기의 하나의 HSYNC 주기 내에, VSYNC 가 인액티브 일 때 데이터 아일랜드 동안 전송된 패킷 형태인 하나 이상의 제어 비트로) 경보를 전송한다.
본 발명의 바람직한 실시예에 따른 수신기에서, 수신기 내의 AVMUTE 플래그의 설정 뒤에 발생하는 다음 수직 블랭크 구간의 VSYNC의 액티브 에지 뒤에 오는 (상술한) WOO(window of opportunity)의 끝에서 상기 복호화 회로의 동작은 결빙(freeze) 된다(그리고, 미활동 상태로 들어간다). 이 때, 수신기는 침묵 상태 로 들어가고, 그 출력부에서의 유용한 보조 데이터(예를 들어, 패킷으로부터 추출된 오디오 데이터)의 인가를 중단하며, 그 출력부에서의 유용한 비디오 정보의 인가를 중단한다. 따라서, 침묵 상태 동작 동안 송신기가 유용한 정보(예를 들어, 비디오 및/또는 오디오)를 링크를 통해 수신기로 전송하는 것을 중단하지 않더라도, 침묵 상태에 있는 수신기는 어떤 유용한 정보가 그 출력부 어디에서부터라도 보이거나(seen), 들리거나(heard), 또는 재-전송되게 하는 것을 방지한다.
송신기의 암호화 회로와 수신기의 복호화 회로가 그들의 미활동 상태로 들어가면, 픽셀 클록 레이트의 변화는 발생할 수 있다. 픽셀 클록이 안정화되고, 수신기 내의 모든 PLL 들이 안정화되면, 바람직하게는 ("침묵 오프" 명령에 응답하여) 송신기와 수신기가 상기 침묵 상태를 떠나게 허가하는 메시지가 전송되어, 암호화 및 복호화를 재개하고 오디오 및 비디오를 "비-침묵(unmuting)" 하게 한다. 픽셀 클록 레이트가 변하는 동안, 본 발명의 실시예에 따른 일반적인 수신기는 수신된 데이터를 신뢰성 있게 디코딩하는 능력을 상실한다. 이 시간 동안, 모드 종류의 가짜 신호들이 수신기의 디코더에서 출력될 수 있다. 이러한 이유에서, 바람직하게는 수신기가 침묵 상태일 때 픽셀 클록 레이트의 변화가 일어나고, 침묵 상태 동안 수신기의 출력이 침묵된다.
상기 침묵 상태에서 떠는 것은 바람직하게 "침묵 오프(mute off)" 신호를 (일반적으로 제어 비트에 의해 나타내진다) 송신기로 전송함으로써 완료된다. 상기 침묵 오프 신호(그리고, 바람직하게 암호 인디케이터 또한)에 응답하여, 송신기는 침묵 상태를 떠나고, (일반적으로 하나 이상의 침묵 제어 비트에 의해 나타내지는) "수신기 침묵 오프" 데이터를 패킷으로 포함시키고, 상기 패킷을 데이터 아일랜드 동안 수신기로 전송한다. 상기 수신기 침묵 오프 신호( 그리고 또한 바람직하게는 암호화 인디케이터)에 응답하여, 수신기는 침묵 상태를 떠난다.
일반적으로, 상기 침묵 오프 신호는 송신기가 상술한 AVMUTE 플래그를 소거하고, 상기 "수신기 침묵 오프" 데이터는 수신기가 AVMUTE 플래그를 소거하도록 하게 한다. 송신기 내의 AVMUTE 플래그의 소거에 응답하여, 송신기 내의 암호화 회로(예를 들어 사이퍼 엔진(104))는, AVMUTE 플래그가 소거된 뒤 발생하는 다음 수직 블랭크 구간 내의 VSYNC의 액티브 에지 뒤에 오는 송신기에 인가될 수 있는 암호화 인디케이터에 응답하여, 미활동 상태를 떠난다(송신기는 암호화 인디케이터를 수신하자마자 침묵 상태를 떠난다). 수신기 내의 AVMUTE 플래그의 소거에 응답하여, 수신기 내의 복호화 회로(예를 들어, 사이퍼 엔진(204))는, AVMUTE 플래그가 소거된 뒤 발생하는 다음 수직 블랭크 구간 내의 VSYNC의 액티브 에지 뒤에 오는 WOO(window of opportunity) 내에 수신될 수 있는 암호화 인디케이터(예를 들어, 상술한 HDCP 암호화 인디케이터)에 응답하여, 미활동 상태를 떠난다. 수신기는 상기 암호화 인디케이터를 수신하자마자 침묵 상태를 떠난다.
몇 가지 바람직한 실시예에서, 본 발명은, 전송된 데이터를 복원하고 프로세싱하기 위해 필요한 회로 대부분 또는 모두를 포함하는 제1 칩 (예를 들어, 도 2의 수신기(2'), 또는 EEPROM(24)를 제외한 도 2의 수신기(2')), EDID(Enhanced Display Identification Data) ROM을 포함하는 다른 칩(일반적으로 EPROM으로 구현된다)을 적어도 포함하는 멀티-칩 모듈(MCM)이다. 공장에서, EDID PROM 칩은 수신 기의 구성 및/또는 능력을 나타내는 데이터, 그리고 또한 선택적으로는 복호화에 사용되는 키 및 인증 데이터(예를 들어 HDCP 키)를 가지고 프로그램 될 수 있다. 한편, 이러한 MCM 은 복호화에 사용되는 키 및 인증 데이터를 안전하게 저장하는 EEPROM (예를 들어, 도 2의 EEPROM(24))을 포함하는 제3 칩을 포함할 수 있다.
다른 바람직한 실시예에서, 본 발명에 따른 송신기는 암호화에 사용되는 키 및 인증 데이터를 안전하게 저장하고, 또한, InfoFrame 데이터를 저장하기 위한 PROM (예를 들어, 도 2의 EEPROM(14)를 포함한다. 상술한 바와 같이, EIA/CEA-861B 표준은 포맷 정보 및 디지털 오디오 및/또는 디지털 비디오 데이터에 관한 관련 정보를 포함하는 하나 이상의 InfoFrame로 구성된 InfoPacket 데이터 구조를 규정한다. PROM 에 저장된 InfoFrame 데이터는 바람직하게 상기 포맷 정보 및 관련 정보를 나타낸다. 몇 가지 실시예에서, PROM 은 MCM내에서 별개의 칩으로 구현되고, 또한 MCM은 데이터의 인코딩 및 전송에 필요한 회로(도 2의 회로(1')) 대부분 또는 모드를 구현하는 하나 이상의 다른 칩을 포함할 수 있다. 이러한 분리된 PROM 칩은 공작에서, HDCP 또는 다른 암호화 키 데이터뿐만 아니라 InfoFrame 데이터로 프로그램 되고, 안전하게 MCOM 내에서 임베딩될 수 있다.
다른 실시예에서, 본 발명에 따른 송신기 또는 수신기는, 선택 가능한 호스트 마이크로-억세서블 영역 (예를 들어, 테스트 모드 동작 동안, 예를 들어 테스트 결과를 판독하거나 또는 테스트를 위해 송신기 또는 수신기를 구성하는 것 등의 호스트에 의해 억세스 가능한 영역), 및 비-호스트 억세서블 영역(예를 들어, 암호화 및 복호화에 사용되는 키 및 인증 데이터를 안전하게 저장하는 데 사용될 수 있는) 을 갖는 ROM을 포함하는 칩을 포함하는 MCM 이다. 예를 들어, 도 2의 EEPROM(14)는 이러한 칩으로 구현되고, 도2의 송신기(1')는 다른 칩으로 구현될 수 있고, 이 양 칩은 모두 MCM 내에 포함될 수 있다. EEPROM(14)의 이러한 집적 회로의 구현의 비-호스트 억세스블 영역은, 송신기(1')의 집적 회로 구현에 의해서만 억세스 가능하고, 송신기(1') 이외의 다른 어떤 장치도 억세스 할 수 없는 HDCP 키 및/또는 다른 암호 키 데이터를 ( 및 선택적으로 다른 데이터 또한) 저장할 수 있다.
다른 실시예에서, 본 발명에 따른 송신기 및 수신기는 암호화 또는 목호화에 사용되는 키 및 인증 데이터(예를 들어 HDCP 키) 및/또는 EDID(Enhanced Display Identification Data)를 저장하기 위한 하나 이상의 PROM을 포함하는 집적 회로로 구현된다. 본 발명의 실시예에 따른 송신기의 이러한 집적 회로로 구현된 PROM 은 공장에서 HDCP 또는 다른 암호 키를 가지고 프로그램 될 수 있다. 본 발명의 실시예에 따른 수신기의 이러한 집적 회로로 구현된 PROM 은 공장에서 HDCP 또는 다른 복호화 키 및/또는 수신기의 구성 및/또는 능력을 나타내는 EDID 데이터를 가지고 프로그램 될 수 있다.
본 발명의 실시예에서, 본 발명에 따른 송신기는, 바람직하게는 상술한 InfoFramde 패킷 포맷 및 다른 포맷을 갖는 정보 패킷을 포함하는 어떤 다양한 포맷을 갖는 패킷을 (데이터 아일랜드에서) 전송하도록 구성된다. 수신기가 특정 포맷의 패킷을 수신하도록 구성되면, 수신기는 바람직하게 이러한 포맷을 나타내는 데이터를 (예를 들어, EDID ROM 내에) 저장하도록 구성되고, 송신기는 바람직하게 이 데이터를 (예를 들어, TMDS 링크의 DDC 채널을 통해)억세스하고, 패킷을 이러한 포맷으로 수신기에 전송함으로써 여기에 응답하도록 구성된다. 한편, 그렇지 않으면, 수신기는, 패킷을 수신기로 보내기 위해 송신기에 의해 사용되는 포맷을 정의하도록 송신기에 신호로 요청할 수 있다.
이러한 방법으로 송신기를 구현하는 것은 수신기로의 한번 전송 또는 수신기로의 반복된 전송 중 어느 하나에 대한, 패킷 포맷의 미래의 규정(예를 들어 정보 패킷 포맷)을 가능하게 한다.
바람직하게는, 송신기 및 수신기는 패킷(예를 들어 변경할 수 있는 패킷)의 자동 전송을 제어하기 위해 2-비트 신호장치(semaphore) (또는 한편으로 몇 가지 다른 시그널링 스킴)를 사용하도록 구성된다. 예를 들어, 송신기 및 수신기는 InfoFrame 패킷 및 다른 포맷을 갖는 정보 패킷의 전송을 서로 제어하기 위한 2-비트 코드를 전송하도록 구성된다. 한 비트는 "전송(send)" 비트이다. 수신기는 상기 전송 비트를 송신기로 전송하여 송신기가 패킷을 전송하게 하거나 전송을 중단하도록 하게 한다. 두 번째 비트는 "반복(repeat)" 비트이다. 송신기는, 송신기가 반복된 패킷을 전송하고 있음을 나타내는 값으로 "반복" 비트를 덧쓰도록(overwrite) 하게 함으로써 수신기로부터의 상기 전송(send) 비트에 응답하고, 이러한 "반복" 비트를 포함하는 2-비트 코드를 수신기에 전송하도록 구성될 수 있다. 그런 다음, 수신기는 다른 전송(send) 비트를 송신기에 인가함으로써 응답할 수 있다. 몇 가지 실시예에서, 상기 2-비트 코드는 DDC 링크 (또는 송신기와 수신기 사이의 다른 양방향 채널)를 통해 전송되어, 하나 이상의 다른 채널(예를 들어, TMDS 링크의 채널(CH0, CH1 및 CH2)을 통한 패킷 전송을 야기한다.
바람직하게는, 본 발명에 따른 송신기 및/또는 본 발명에 따른 수신기는, 오디오 및/또는 비디오 포맷 정보 및 전송된 또는 전송될 오디오 및/또는 비디오 데이터에 대한 관련 정보 등의 InfoFrame 패킷(또는 다른 포맷을 갖는 정보 패킷)으로부터 추출된 (또는 안에 포함되는) 데이터를 저장하기 위한 외부 장치에서 (예를 들어, I2C 링크를 통해) 억세스 가능한 레지스터 공간을 포함한다. 예를 들어, 외부 소스는 이러한 데이터를 송신기 내의 이러한 레지스터 (예를 들어, 도 13의 레지스터(105))로 로딩할 수 있고, 그리고, 송신기는 데이터 아일랜드 동안 수신기로의 전송을 위해 패킷에 포함될 데이터를 얻기 위해 레지스터를 판독할 수 있다. 바람직하게는, 송신기는, 예를 들어 레지스터로부터 (외부 소스로부터 수신되고 레지스터로 로딩된) 비트를 판독하고, 상기 비트를 전송을 위해 InfoFrame 패킷으로 집합되는 데이터 스트림의 특정의 소정 타임 슬롯 내에 삽입하도록 구성된 회로를 포함으로써, 레지스터 공간을 InfoFrame 패킷 (또는 다른 정보 패킷)으로 매핑하도록 구성된다. 바람직하게는, 수신기는 (예를 들어, 데이터 아일랜드 동안 TMDS 링크의 CH0, CH1 및 CH2를 통해) 수신기로 전송된 패킷들로부터 데이터를 추출하고, 상기 추출된 데이터를 억세스 가능한 레지스터(예를 들어 도 14의 레지스터(205))로 로딩할 수 있다. 그러면, 외부 장치는 바람직하게 I2C 링크를 통해, 수신기의 레지스터를 억세스 할 수 있다. 예를 들어, 송신기가 TMDS 링크의 DDC 채널을 통해 수신기 내의 레지스터를 억세스 할 수 있거나, 또는 호스 장치가 TMDS 링크의 DDC 채널이 아닌 I2C 링크를 통해 수신기 내의 이러한 레지스터를 억세스 할 수 있 다.
바람직하게는, 수신기는 인지되지 않은 정보 패킷(TMDS 또는 다른 시리얼 링크를 통해 수신된)을 저장하도록 구성되어, 호스트(예를 들어, CPU 또는 수신기와 결합된 다른 프로세서)가 상기 저장된 패킷을 억세스 할 수 있다. 이것은 적절한 소프트웨어로 프로그램된 호스트가 이러한 저장된 패킷 각각을 분석(parse)하고, 바람직하게는 수신기가 상기 분석된 패킷에 의해 특정된 방법으로 링크를 통해 전송될 오디오 및/또는 비디오 데이터를 프로세싱 하도록 구성하는 비트로 상기 수신기 내의 레지스터에 로딩하게 할 수 있다.
바람직하게는, 본 발명에 따른 수신기는, TMDS 링크(또는 다른 시리얼 링크)를 통해 수신된 AVI(Auxiliary Video information) InfoFrame 패킷 (또는 다른 정보 패킷)을 분석하는 하드웨어, 자동-구성 CSC(color space conversion) 회로, 채도(chroma) 업/다운 샘플랭 회로, 그리고 선택적으로 패킷에 의해 결정되는 방식을 갖는 수신기 내의 다른 비디오 프로세싱 회로로 구성된다. 따라서, AVI 정보 패킷이 비디오와 결합되어 (예를 들어, 데이터 아일랜드 내에) 수신기로 전송되면, 수신기는 비디오를 프로세싱하기 위해 그 비디오 프로세싱 회로를 적절하게 구성함으로써 AVI InfrFrame 패킷 내의 데이터에 응답할 수 있다.
바람직하게는, 본 발명에 따른 수신기는 TMDS 링크 (또는 다른 시리얼 링크)를 통해 수신된 AI(Audio InfoFrame) 패킷 (또는 다른 정보 패킷)을 분석하는 하드웨어, 패킷에 의해 결정되는 방식을 갖는 수신기 내의 자동-구성 오디오 데이터 프로세싱 회로로 구성된다. 따라서, AI 패킷이 오디오와 결합되어 데이터 아일랜드 내에 전송되면, 수신기는 오디오 데이터를 프로세싱하기 위해 오디오 데이터 프로세싱 회로를 적절하게 구성함으로써 AI 패킷 내의 데이터에 응답할 수 있다.
바람직한 실시예에서, 본 발명에 따른 송신기는 하나 이상의 I2S 링크를 통해 오디오 및 다른 보조 데이터를 수신하도록 구성된 입력 인터페이스(예를 들어, 도 13의 인터페이스(109)의 바라직한 구현)를 갖고, 각 I2S 링크를 통해 수신된 입력 데이터를 패킷으로 시리얼 링크를 통해 전송 (바람직하게는 상술한 포맷을 갖는 오디오 샘플 포맷으로 데이터 아일랜드 동안 TMDS 링크의 CH0, CH1, 및 CH2 채널을 통해 전송)하기 위해 포맷하도록 구성된다. "I2S 라는 표현은 데이터(일반적으로 오디오 데이터)에 대한 제1 컨덕터, 비트 클록에 대한 제2 컨덕터, 워드 클록(에를 들어, 제1 컨덕터를 통해 전송될 데이터의 채널을 식별하는 Left/Right 워드 선택 클록)에 대한 제3 컨덕터를 포함하는 3-컨덕터 링크를 지칭하는 넓은 의미로 사용된다. 바람직하게는, 수신기는 하나 이상의 I2S 출력 포트를 갖고, 전송된 패킷 (예를 들어, 오디오 샘플 패킷)으로부터 오디오 데이터를 추출하고, 상기 추출된 데이터를 하나 이상의 I2S 링크를 통해 인가하기 위해 필요한 만큼 재-포맷하고, 상기 추출된 데이터를 I2S 포맷으로 하나 이상의 I2S 출력 포트로 인가하도록 구성된다.
바람직하게는, 본 발명에 따른 수신기는, I2S 링크로부터 PCM 입력 데이터(즉, 비-압축된 I2S 데이터)를 받아들이고 여기에 응답하여 상술한 본 발명의 바람직 한 실시예에 따른 시스템에 사용되는 것과 동일한 포맷을 갖는 오디오 샘플 패킷으로 전송하기 위해 데이터를 재-포맷하고 S/PDIF 오디오 데이터를 전송한다. 바람직하게는, 송신기는 필요한 재-포맷을 수행하기 위해 (입력 데이터 소스로부터) 입력 데이터 포맷을 나타내는 채널 상태 비트로 프로그램된 레지스터를 이용한다. 예를 들어, I2S 데이터 워드 클록의 첫 번째 사이클에서, 송신기는 I2S 데이터 비트 클록의 선택된 에지에서 입력 데이터를 샘플링하고 상기 샘플을 (FIFO를 통해) "좌측" 채널 S/PDIF 샘플을 위한 서브패킷의 타임 슬롯으로 삽입하고, I2S 데이터 워드 클록의 다음 사이클에서, 송신기는 계속해서 I2S 데이터 비트 클록의 선택된 에지에서 입력 데이터를 샘플링하지만 상기 샘플을 (FIFO를 통해) "우측" 채널 S/PDIF 샘플을 위한 서브패킷의 타임 슬롯으로 삽입한다. 오디오 데이터 샘플과 함께, 적절한 채널 상태, 유효한 유저 데이터, 및 패리티 비트가 바람직하게 서브패킷의 적절한 타임 슬롯으로 삽입되고, 시작 비트가 적절한 타이밍으로 패킷 헤더로 (FIFO를 통해) 삽입된다.
바람직한 실시예에서, 본 발명에 따른 송신기는 1-4 개의 I2S 링크로부터 입력 오디오 데이터를 받아들일 수 있는 입력 인터페이스를 갖는다. 이러한 몇 가지 실시예에서, 송신기는 1, 2, 3 또는 4 개의 I2S 링크 상의 멀티채널 시스템으로부터 입력 오디오 데이터를 받아들일 수 있으며, 여기서 I2S 링크들은 모드 동일한 비트 및 워드 클록을 사용하고(따라서, 2, 6. 9 또는 12 입력 I2S 컨덕터 내의 모든 정보는 3, 4, 5 또는 6 개의 입력 I2S 컨덕터 내에 포함된다: 하나의 비트 클록 컨덕터; 하나의 데이터 클록 컨덕터, 및 1, 2, 3 또는 4 데이터 컨덕터들) 전송하기 위한 데이터를 패킷으로 (바람직하게는 상술한 포맷을 갖는 오디오 샘플 포맷) 포맷한다. 다른 실시예에서, 송신기는, 각 I2S 입력이 독립된 클록을 갖고 있을 때에도(따라서 모든 입력 I2S 컨덕터에서 수신된 비트는 패킷화 되어야한다), 1-4 개의 I2S 입력으로부터 입력 오디오 데이터를 받아들을 수 있는 입력 인터페이스를 갖고, 전송하기 위한 데이터를 패킷으로(바람직하게는 상술한 포맷을 갖는 오디오 샘플 포맷으로) 포맷한다.
바람직한 실시예에서, 본 발명에 따른 송신기는 전송하기 위해 데이터를 패킷화하기 위한 이용 가능한 채널/스피커 배치에 의해 부과되는 제약 내에서 입력 오디오 데이터의 스트림/채널 매핑을 재구성할 수 있는 (예를 들어, 도 13의 인터페이스(109)의 데이터 캡쳐 블록 내의)멀티플렉서 회로를 포함한다. 따라서, 이러한 송신기는 입력 오디오 데이터(예를 들어 하나 이상의 I2S 링크로부터의 입력 오디오)를 어떤 포맷의 세트로도(각각 유일한 스트림/채널 매핑을 갖는) 받아들일 수 있고, 상기 데이터를 패킷(바람직하게는 상술한 포맷을 갖는 오디오 샘플 포맷으로)으로 전송하기 위해 인정되는 포맷의 다른 세트 중 하나로 재 포맷할 수 있다.
S/PDIF 데이터 스트림은 자신의 클록(데이터 샘플속에 임베딩된)을 갖는다. 몇 가지 실시예에서, 본 발명에 따른 송신기는 입력 데이터 속에 임베딩된 클록과 알려지지 않은 위상 관계를 갖는 픽셀 클록으로 S/PDIF 데이터 (일반적으로, S/PDIF 오디오 데이터)의 입력 스트림을 샘플링하고, 상기 픽셀-클록-샘플된 데이터를 전송하도록 구성된다. 다른 실시예에서, 송신기는, Fs가 S/PDIF 데이터의 샘플 레이트이고, 입력 데이터 속에 임베딩된 클록과 알려지지 않은 위상 관계가 있을 때, 적어도 256*Fs (또는 바람직한 실시예에서 384*Fs)의 주파수를 갖는 오디오 기준 클록 (때때로 "MCLK" 또는 마스터 클록으로 불린다)으로 S/PDIF 데이터의 입력 스트림을 샘플링하도록 구성된다.
바람직한 실시예에서, 본 발명에 따른 송신기는 다중의 독립된, 동기 가능한 S/PDIF 스트림을 받아들이고 동기화할 수 있도록 구성된다.
바람직하게는, 본 발명에 따른 송신기는, (전부 0들로 구성된) 플랫라인(flatline) S/PDIF 입력을 패킷으로 능률적으로 전송을 하기 위해 포맷으로 변형하도록 구성된다. 예를 들어, 송신기는 패킷 헤더의 4 비트를 대응하는 서브패킷이 "플랫라인" 샘플(즉 전부 0들로 구성된 샘플)을 포함하고 있는 지를 나타내도록 설정하도록 구성된다. 예를 들어, 송신기는 (상술한 바와 같이) 패킷 헤더의 세 번째 바이트의 4 LSB를 대응하는 서브패킷이 "플랫라인" 샘플을 포함하는 지를 나타내도록 설정하도록 구성되고, 이 경우 수신기는 바람직하게 헤더의 두 번째 바이트의 대응하는 "현재" 비트 (상기 두 번째 바이트의 4 LSB 중 하나)가 대응하는 서브패킷이 샘플을 포함하는 것을 나타낼 때에만, 이들 LSB 중 어떤 것의 "1" 값을 유효하다고 여기도록 구성된다.
바람직한 실시예에서, 본 발명에 따른 송신기는 DSD(Direct Stream Digital) 입력 데이터를 받아들이고 이 입력 데이터를 데이터 아일랜드 동안 IEC60958-타입으로 전송하기 위해 포맷하도록 구성된다. 종래의 DSD (Direct Sream Digital) 포맷 내의 오디오 데이터 (예를 들어, SACD 또는 "Super Audio CD" 데이터)는 3-컨덕터 링크: 비트 클록에 대한 한 링크; 다른 채널 각각에 대한 2 컨덕터(즉, 하나의 좌측 채널 컨덕터와 하나의 우측 채널 컨덕터): 상에 전송된다. 바람직하게는, 수신기는 하나 이상의 DSD 출력부를 갖고, 전송된 패킷(예를 들어 오디오 샘플 패킷)으로부터 오디오 데이터를 추출하고, 상기 추출된 데이터를 DSD 출력 스트림으로 인가하기에 필요한 만큼 재 포맷하고, DSD 포맷의 추출된 데이터를 하나 이상의 DSD 출력 포트로 인가한다.
바람직하게는, 본 발명에 따른 송신기는 DSD 입력 데이터를 받아들이고, S/PDIF 오디오 데이터를 전송하기 위해 상술한 본 발명의 바람직한 실시예에 따른 시스탬 내에 사용되는 것과 동일한 포맷을 갖는 오디오 샘플 패킷으로 전송하기 위해 데이터를 재 포맷하여 DSD 입력 데이터에 응답하도록 구성된 입력 인터페이스를 갖는다. 바람직하게는, 송신기는 필요한 재 포맷을 수행하기 위해 (입력 데이터 소스로부터의) 입력 데이터 포맷을 나타내는 채널 상태 비트로 프로그램된 레지스터를 이용한다.
바람직한 실시예에서, 본 발명에 따른 송신기는 DSD 포맷 입력 오디오의 다중 스트림을 받아들일 수 있는 입력 인터페이스를 갖는다. 이러한 몇 가지 실시예에서, 송신기는, 각 DSD 스트림이 독립된 클록을 가질 때도(따라서 모든 입력 DSD 컨덕터에서 수신된 비트들이 패킷화 되어야 한다) 다중 DSD 링크로부터 DSD 포맷 입력 오디오 데이터를 받아들 일 수 있고, 데이터를 패킷으로(바람직하게는 상술한 포맷을 갖는 오디오 샘플 패킷으로) 전송하도록 포맷할 수 있는 입력 인터페이스를 갖는다.
송신기가 상술한 바와 같이 (3-컨덕터: 비트 클록에 대한 한 컨덕터; L/R 클록데 대한 한 컨덕터; 데이터를 위한 다른 컨덕터: 상에)I2S 포맷으로 입력 오디오 데이터를 받아들이도록 구성될 때, 송신기는 또한 바람직하게는 동일한 3-컨덕터 입력 포트에서 DSD 포맷으로 오디오 데이터를 받아들이고 전송하도록 구성된다. 이러한 송신기는 바람직하게는, 3개 입력 스트림을 적절하게 상술한 포맷을 갖는 오디오 샘플 패킷으로 전송하기 위한 입력 데이터를 포맷하기 위한 회로로 매핑하는 멀티플렉서를 포함한다.
바람직한 실시예에서, 본 발명에 따른 수신기는 하나 이상의 I2S 출력 인터페이스를 갖고, 오디오 샘플 패킷으로부터 PCM 데이터를 복원하고, 상기 복원된 데이터를 I2S 포맷으로 (예를 들어, 송신기에 의해 오디오 샘플 패킷과 함께 수신기로 보내진 오디오 InfoFrame(AI) 패킷 내에 전송된 채널 상태 비트로 프로그램된 레지스터를 이용하여)변형하도록 구성된다.
바람직한 실시예에서, 수신기는 1에서 4 까지의 I2S 출력 (각 출력은 3-컨덕터 I2S 링크로 연결되도록 구성된다) 상에서 I2S 포맷으로 (오디오 샘플 패킷으로부터 복원된) 오디오 데이터를 출력하도록 구성된다.
바람직한 실시예에서, 본 발명에 따른 수신기는 (다른 독립된 클록을 갖는 다른 I2S 데이터 스트림을 다른 출력부에 인가하는 것을 포함하는) 1에서 4까지의 I2S 출력 상에서 I2S 포맷으로 (오디오 샘플 패킷으로부터 출력된) 오디오 데이터를 출력하도록 구성된다.
바람직한 실시예에서, 본 발명에 따른 수신기는 데이터를 패킷화하기 위한 이용 가능한 채널/스피커 배치에 의해 부과되는 제약 내의 포맷으로 패킷으로부터 추출된 오디오 데이터의 스트림/채널 매핑을 재구성할 수 있는 멀티플렉서 회로를 포함한다. 따라서, 이러한 수신기는, 패킷 (바람직하게는 상술한 포맷을 갖는 오디오 샘플 패킷)으로부터 데이터를 추출하고, 패킷화된 인정되는 포맷의 다른 세트 중 하나로부터 추출된 데이터를 재 포맷한 뒤, 뒤, 오디오 데이터를 (예를 들어 하나 이상의 I2S 링크 상에서) (각각 유일한 스트림/채널 매핑을 갖는) 어떤 포맷의 세트로도 출력할 수 있다.
바람직한 실시예에서, 본 발명에 따른 수신기는 S/PDIF 포맷 데이터를 출력하도록 구성된다. 바람직하게는, 수신기는 (전부 0들로 구성된) 플랫라인 S/PDIF 데이터를 나타내는 패킷화된 코드를 플랫라인 S/PDIF 포맷 출력 데이터로 변형하도록 구성된다. 몇 가지 실시예에서, 수신기는 패킷 헤더의 4 비트가 대응하는 서브패킷이 "플랫라인" 샘플(즉 전부 0들로 구성된 샘플)을 포함하고 있는 지를 나타내고 있는지를 인지하도록 구성된다. 예를 들어, 수신기는 (상술한 바와 같이) 패킷 헤더의 세 번째 바이트의 4 LSB가 대응하는 서브패킷이 "플랫라인" 샘플을 포함 하는 지를 나타내고 있는지를 인지하도록 구성되고, 헤더의 두 번째 바이트의 대응하는 "현재" 비트 (상기 두 번째 바이트의 4 LSB 중 하나)가 대응하는 서브패킷이 샘플을 포함하는 것을 나타낼 때에만, 이들 LSB 중 어떤 것의 "1" 값이 유효하다고 여기도록 구성된다.
바람직하게는, 본 발명에 따른 수신기는 DSD 데이터의 인코딩된 버전을 포함하는 오디오 샘플 패킷에 응답하여 DSD 포맷으로 데이터를 출력하도록 구성된다. 바람직하게는, 수신기는 DSD 데이터의 인코딩된 버전을 포함하는 오디오 샘플 패킷에 응답하여, 독립된 클록을 가지고 다중 DSD 데이터 스트림을 출력하도록 구성된다. 수신기가 오디오 샘플 패킷에 응답하여 (비트 클록에 대해 하나의 컨덕터; L/R에 대한 하나; 및 데이터에 대한 다른 하나의 컨덕터를 포함하는 3-컨덕터 링크로의 연결을 위해) 출력 포트에서 I2S 포맷으로 오디오 데이터를 출력하도록 구성되고, 바람직하게는 수신기는 또한 동일한 출력 포트에서 DSD 포맷으로 오디오데이터를 출력하도록 구성된다(예를 들어, 수신기는 오디오 샘플 패킷으로부터 복원된 3 개의 입력 스트림을 출력 포트의 적절한 컨덕터로 매핑하는 멀티플렉서를 포함한다).
본 발명의 바람직산 실시예들에서, 시리얼 링크를 통한 오디오 데이터의 전송은 픽셀 클록에 의해서만 구동되어, 오리지널 오디오 샘플 클록은 ACR(Audio Clock Regeneration)으로 알려진 동작으로 수신기에서 재생성되어야 한다. 다음으로 ACR아 바람직한 방법으로 구현되는 본 발명의 몇 가지 실시예를 설명한다.
상술한 바와 같이, 본 발명의 바람직한 실시예에 따른 시스템은 (TMDS 도는 다른 시리얼 링크를 통해 데이터 아일랜드에서 전송될 오디오 데이터에 대한) 오디오클록을 나타내는 타임 스탬프("CTS" 값)을 전송하고, 바람직하게는 오디오 클록 재생성에 사용되는 "CTS" 값 및 "N" 값 모두를 포함하는 "오디오 클록 재생성" 패킷을 전송한다. "N" 값은 수신기가 오디오 클록을 재생성하기 위해 픽셀 클록의 주파수를 승산하는 분수의 분자를 나타내는 "분자" 값이다.
본 발명의 시스템의 수신기에 구현될 수 있는 클록 재생성 방법에는 다양한 방법이 있다. 많은 비디오 소스 장치에서, 오디오 및 비디오 클록은 코먼 클록(common clock)으로부터 생성된다. 이 경우, 오디오 및 비디오 클록 사이에 비율 (정수로 나눈 정수) 관계가 존재한다. 클록 재생성 구조는 이들 비율 관계의 이점을 취할 수 있고, 또한 이들 두 클록 사이에 이러한 관계가 없는 환경에서도 동작할 수 있다.
도 15는 오디오 클록 재생성을 위한 본 발명에 따른 시스템의 바라직한 실시예에 의해 사용되는 전체 시스템의 구조 모델의 블록도이다. 송신기는 픽셀 클록 (비디오 클록)과 오디오 기준 클록("MCLK" 또는 마스터 클록으로 알려지고, MCLK 는 Z*Fs와 같은 주파수를 가지며, 이때, Fs는 오디오 샘플 레이트이고, Z는 일반적으로 Y*128과 같다. 여기서 Y는 1, 2 또는 3 등의 작은 정수이다) 사이의 비율 관계를 결정한다. 송신기는 이 비율에 대한 분자(numerator; N) 및 분모(denominator; CTS), 및 픽셀 클록을 시리얼 링크를 통해 (송신기의 포맷, 인코딩 및 전송 회로(138)을 통과하여) 수신기로 전달한다. 그런 다음 수신기 내의 복원 및 디코딩 회로(139)는 픽셀 클록 및 N 및 CTS 값을 나타내는 데이터를 복원하고, 수신기는 클록 디바이더(132) 및 클록 배율기(133)를 이용하여 (주파수가 "PixelClock"으로 지칭되는) 픽셀 클록으로부터 MCLK 클록을 재-생성한다. 클록 배율기(133)는 일반적으로 도 16에 도시된 바와 같이 연결된, 위상 검출기(134), 로우-패스 필터(135), 전압-제어 발진기(136) 및 주파수 디바이더(137)를 포함하는 PLL로 구현된다. MCLK 및 픽셀 클록 주파수 사이의 정확한 관계는 Z*Fs = PixelClock * N/CTS 이다.
송신기는 도 15에 도시된 바와 같이 (일반적으로 입력 데이터 소스에 의해 입력된) 분자 "N" 값을 판단하고, "N"을 나타내는 데이터를 레지스터(129)에 저장한다. N 값은 클록 디바이더(130)에서 사용되며, 클록 디바이더(130)는 또한 MCLK 클록보다 인자(N) 만큼 느린 중개 클록을 생성하기 위해 (Z*Fs의 주파수를 갖는) MCLK를 수신한다. 픽셀 클록 및 중개 클록은 카운터(131)에 인가된다. 카운터(131)는 중개 클록의 각 클록 동안 (마지막 CTS 값이 인가된 뒤로) 경과된 픽셀 클록 사이클의 수를 카운팅 함으로써 CTS(Cycle Time Stamp) 카운트를 생성한다.
N 및 CTS 값을 나타내는 데이터는 (바람직하게는 데이터 아일랜드 동안 TMDS 링크를 통해 포맷, 인코딩 및 전송 회로(138)에 의해 전송된 오디오 클록 재생성 패킷 각각으로) 수신기로 전송되고, 픽셀 클록은 수신기로 인가된다. 상기 픽셀 클록은 바람직하게는 TMDS 링크의 클록 채널(예를 들어 도 2의 채널(CHC) 로 (예를 들어, 도 15의 회로(138)에 의해) 수신기로 전송된다.
MCLK 및 픽셀 클록 사이에 일정한 비율 관계가 존재하면, 이 두 클록은 정확히 동기하고, 연속하는 CTS 값들은 상수로 빨리 수렴한다. MCLK 및 픽셀 클록이 동기하지 않거나, 그들 사이에 약간 량의 지터가 존재하면, 연속하는 CTS 값들은 일반적으로 2개 또는 가능한 3 개의 다른 값을 반복한다.
바람직한 실시예에서, 본 발명에 따른 송신기는 (128*Fs의 주파수를 갖는 MCLK 가 아닌) 128*Fs의 몇 배의 주파수를 갖는 MCLK를 받아들이고, 이러한 MCLK 각각을 동일한 분자 값 "N"을 이용하여 주파수 분할하도록 구성된다.
(Fs=32kHz를 갖는 데이터, Fs=44.1kHz를 갖는 데이터 및 Fs=48kHz를 갖는 데이 등의 다른 샘플 레이트 각각을 갖고, 오디오 데이터의 몇 가지 타입이 송신기로 입력되는) 다른 바람직한 실시예에서, 본 발명에 따른 송신기는 (주파수가 모든 가능한 오디오 샘플 주파수의 최대 공약수인)오디오 클록의 "분할된(divided down)" 버전에 기초한 오디오클록을 받아들이도록 구성된다. 이러한 오디오 클록의 주파수는 Z*Fs/M 이고, 여기서 Z 및 M 은 정수, Fs는 오디오 샘플 주파수이며, Fs/M은 모든 가능한 오디오 샘플 주파수의 최대 공약수이다. 이러한 송신기를 사용하기 위해, 수신기는 전송된 타임 스탬프로부터 오디오 클록의 "분할된(divided down)" 버전을 재생성하도록 구성되고, 또한 바람직하게는 재생성된 클록에 적절한 인자(factor)를 곱한 주파수 배율을 통해 재생성된 클록으로부터 오리지널 오디오 클록을 재생성하도록 구성된다. 이 인자는 바람직하게는 "오디오 클록 재생성" 패킷으로, 수신기로 통신된다.
가장 낮은 주파수들("기본 주파수(base frequencies)"로 불린다)의 작은 세 트의 배수인 몇 가지 클록 주파수를 지원하기 위해 통신 링크가 요구되면, 원하는 주파수에 대응하는 기본 주파수만이 전송될 필요가 있고, 수신기에서 상기 원하는 주파수는 상기 기본 주파수를 적절한 인자로 곱함으로써 재생성될 수 있다. 이것은 수신기가 더 단순하고 가능한 더 신뢰성이 있는 클록 재생성 PLL로 구현될 수 있게 하는 이익을 갖는다.
예를 들어, 일반적으로 사용되는 오디오 포맷에서, 데이터 레이트는 32kHz 또는 48kHz의 배수이다. 이들 주파수 양쪽 모두를 지원하도록 설계된 PLL은 32kHz에서 48kHz 범위의 기준 주파수를 필요로 한다. (주파수가 최대 공약수 16kHz 인) 분할된 오디오 클록을 이용하여 데이터가 전송되면, 클록 재생성 PLL은 (수신기가 어떤 오리지널 오디오 클록을 재생성하기 위해, 2 및 3의 배율 인자로, 주파수 배율 회로를 포함하도록 구성될 필요가 있더라도)기준 클록이 16kHz가 되도록 구현될 수 있다.
한편, 더욱 구체적인 구현은 전송된 클록 주파수로 32kHz를 사용한다. 레이트가 48kHz인 오디오 데이터를 전송하는 경우, 이것은 구현이 효과가 없도록 만드는 2 가지 약점을 가지고 있다. 첫 째로, 송신기 측에서, 48kHz 클록은 2/3 배율 회로를 이용하여 32kHz 클록으로 동기화할 필요가 있으며, 이것은 송신기측에 복잡한 PLL을 요구하고, 이에 반하여, 이전 문단에 설명된 구현은 하드웨어적으로 더욱 효과적으로 구현될 수 있는 송신기 측의 디바이더(카운터)만을 요구한다. 또한, 수신기 측은 수신된 32kHz 클록을 원하는 48kHz 클록으로 재-동기하기 위해 3/2 클록 재생성 회로를 요구한다. 이것은 2개의 가능한 구현: PLL의 위상 검출 전에 ( 예를 들어, 도 16의 위상 검출(134) 전에) (재생성된 32kHz 클록의 주파수를 반분하는) 주파수 디바이더, 및 PLL 내의 3으로 나누는(divide-by three) 주파수 디바이더(N=3으로 도 16의 주파수 디바이더(137)의 구현)를 포함하는 것 하나; 또는 PLL에서 생성된 96kHz의 주파수를 반분하는 주파수 디바이더가 따라오는, 3으로 나누는 (divide-by three) 주파수 디바이더(N=3으로 도 16의 주파수 디바이더(137)의 구현)를 갖는 PLL을 포함하는 것 하나: 을 갖는 수신기 내의 복잡한 클록 재생성 회로를 요구한다. 일반적인 두 번째 구현이, PLL VCO 설계상의 어려움을 불필요하게 증가시키는, 가장 높은 실제 원하는 주파수(48kHz)보다 더 높은 VCO 출력(96kHz)를 요구함에 따라 생기는 문제점이 있더라도, 이러한 프로세스 기술 및 이전 디자인의 재사용 등의 인자에 따라, 이러한 PLL 설계 중 하나는 가장 효율적일 것이다.
위의 예는 오디오 클록 주파수가 32kHz 및 48kHz로 가정하지만, 예시적인 목적으로 가정한 것이다. 실제 일반적으로 사용되는 오디오 주파수는 현재 32kHz, 44.1kHz 및 48kHz의 x1, x2 및 x4 배이고, 더 높거나 더 낮게(/2, /4) 승산하는 것 모두 개발 중에 있다.
일반적으로 사용되는 3 가지 32kHz, 44.1kHz, 및 48kHz 의 주파수에 대해서도, 수신기 구현의 단순화는, 16kHz(=32kHz/2 =48kHz/3) 또는 22.05kHz(=44.1kHz/2)와 같은 기본 주파수(B) 또는 각 기본 주파수의 배수(MB)를 갖는 오디오 클록을 송신기에 인가하고, 이러한 오디오 클록에 응답하여 타임 스탬프(CTS 값), 분자값 "N" 및 "L", 분모 값 "D", 및 픽셀 클록을 수신기로 인가하도 록 송신기를 동작함으로써 본 발명에 따라 구현될 수 있다. 수신기는 타임 스탬프 및 픽셀 클록으로부터 (주파수 B/N을 갖는) 중개 클록을 재생성하는 주파수 디바이더(도 15의 회로(132)의 구현), 및 PLL을 포함하고 중개 클록을 적절히 주파수 배율하여 "N" 및 "L" 값으로부터 원하는 주파수 BL=32kHz, BL=44.1kHz 또는 BL=48kHz 중 어느 하나를 갖는 오디오 클록을 재생성하는 재생성 회로(도 15의 회로(133)의 구현)로 구현된다. 이것은, 수신기의 재생성 회로 내의 PLL의 기준 주파수 범위가 32kHz-48kHz로부터 16kHz-22.05kHz로 줄어들기 때문에, 설계의 요구를 완화시킨다. 이러한 실시예에서, 송신기는 어떤 PLL 도 필요로 하지 않으며, 수신기 내의 PLL구현 요구도 감소된다. 입력 오디오 주파수의 더 큰 범위가 지원되기 때문에, 수신기 내의 구현의 단순화는 이에 대응하여 더 커진다.
더욱 일반적으로 본 발명의 바람직한 실시예에서, 송신기는 입력 오디오 클록(이 주파수 b는 모든 가능한 입력 오디오 클록 주파수들의 최대공약수이다)의 "분할된" 버전에 기초한 오디오 클록을 받아들이고, 이러한 오디오 클록에 응답하여 타임 스탬프(CTS 값), 분자 값 "N", "L", 분모 값 "D" 및 픽셀 클록을 수신기로 인가하도록 구성된다. 수신기는 타임 스탬프 및 픽셀 클록으로부터 (주파수 B/N을 갖는) 중개 클록을 재생성하는 주파수 디바이더(도 15의 회로(132)의 구현), 및 및 PLL을 포함하고 중개 클록 및 "N" 및 "L" 값으로부터 주파수 BL(여기서 BL은 가능한 오디오 샘플 주파수들 중 어느 하나와 같다)을 갖는 오디오 클록을 재생성하기 위해 중재 클록의 주파수 배율을 적절하게 완수하는 재생성 회로(도 15의 회로(133)의 구현)로 구현된다. 선택적으로, 송신기는 "L 값을 인가하지 않고, 수 신기 내의 재생성 회로는 중개 클록 및 "N" 값으로부터(B와 같은 주파수를 갖는) 입력 오디오 클록의 "분할된' 버전만을 재생성한다.
타임 스탬프 값("CTS" 값) 및 픽셀 클록을 수신기로 전송함으로써 오디오 클록이 전송되는 본 발명의 바람직한 실시예에 따른 시스템에서, 이들 클록이 모두 공통(common) 클록에서 끌러낸 것이라는 점이 명확할 때, 송신기는 오디도 클록(예를 들어 도 15의 송신기에 인가된 MCLK) 및 픽셀 클록을 동기화하기 위해 자동-위상 정렬을 구현하도록 구성된다. 이것은 타임 스탬프 값이 시간에 따라 변하지 않음을 보증한다.
픽셀 클록(또한 아래에서 "비디오 클록"으로 불린다) 및 오디오 클록이 동기하거나 거의 동기하면, 오디오 클록 정보는 오디오 클록 주기 단위로 비디오 클록 주기의 수를 카운팅 함으로써 링크를 통해 전송될 수 있다. 오디오 및 비디오가 동기되면, 이 숫자는 일정해야 한다. 그러나, 오디오 클록의 라이징 에지가 비디오 클록의 라이징 에지 매우 근처에서 발생하면, 아주 작은 양의 지터가 오디오 클록 에지를 비디오 클록 에지의 앞뒤로 움직일 수 있다. 이것은 "오디오 클록 주기 당 비디오 클록 주기" ("CTS" 값)의 카운트가 오버 타임 변동하게 한다. CTS 값의 이 지터는 재생성된 오디오 클록의 퀄리티에 잠재적으로 영향을 주고, 오리지널 오디오 클록 내의 작은 양의 지터가 증폭되는 정도까지 영형을 준다(재생성된 오디오 클록은 오리지널 오디오 클록에 비해 더 나쁜 퀄리티를 가지고 있다는 점에서).
오디오 클록 내의 지터에 의한 CTS 내의 지터 문제를 처리하기 위해, 본 발명의 바람직한 실시예는 지연을 자동적으로 선택하도록 클록 도메인 "경계" (오디 오 및 비디오 클록 상의 경계)에서 오버샘플링 기술을 이용하여, 셋업 및 홀드 타임을 최대화한다. 즉, 오디오 클록의 다양한 위상-쉬프트된 버전이 생성되고 (예를 들어, 비디오 클록 자체 및 비디오 클록의 반전 등의 비디오 클록의 다양한 버전을 이용하여 오디오 클록을 "오버샘플링"함으로써), 최소의 CTS 지터를 만드는 샘플들의 결과 스트림들 중 하나가 선택된다. 이것은 비디오 및 오디오 클록이 동기화되고 적당히 안정적인 한 어떤 "CTS 지터"도 막을 수 있다. 이러한 설계의 중요한 이점은 시스템 레벨의 설계를 단순화할 수 있다는 것이다(본 발명이 오디오 및 비디오 클록 스큐(skew)에 대해 걱정할 필요성을 제거했기 때문이다).
몇 가지 실시예에서, 송신기는 비디오 클록(VCLK) 및 반전된 비디오 클록(VCLK_bar)을 이용하여 오디오 클록 에지를 카운팅하여, 2 세트의 CTS 값을 생성하고, 상기 2 세트의 CTS 값을 비교하여 어떤 것이 시간에 따라 덜 적은 변동을 나타내는 것을 판단한다. VCLK-기본의 출력은 이것이 시간에 따라 더 적은 CTS 값 변동을 보이면 VCLK_bar-기본의 출력으로 스위칭되는 옵션으로, 처음에 (수신기로 전송될 CTS 값으로) 선택될 수 있다. 이러한 실시예들은 순수한 디지털 설계를 갖는 이점을 갖고, 이를 달성하기 위한 회로는 집적 회로로 자동적으로 구현(배치 또는 라우팅) 될 수 있고, 더 쉽게 새로운 집적 회로 제작 프로세스로 변형될 수 있다.
다른 실시예들은 비디오 클록의 다양항 위상 버전을 생성하기 위해 몇 가지 지연 셀들을 이용하고, 다른 버전의 비디오 클록을 각각 이용하는 CTS 값 세트를 생성함으로써 다양한 세트의 CTS 값을 생성한다. 그러면 송신기는 천이(transition)하기 위한 상기 세트의 CTS 값들을 모니터하고, 가장 적은 천이를 갖는 세트를 선택한다. 이 방법은 송신기 칩 상에서 아주 작은 면적을 이용하지만 핸드 디자인 및 타이밍 크리티컬 섹션에 대한 레이아웃을 요구한다.
"자동 정렬(autoaligning)"이 행해지는 레이트는 (다른 세트의 CTS 값들 사이의 스위칭) 어지간히 낮게 유지되어야 한다(초 단위의 타임 스케일로, 또는 시작할 때와 오디오 또는 비디오 주파수가 변할 때 만). 이것은 오디오 및 비디오 클록 사이에 조금 느린(즉, 온도 관련되) 위상 쉬프트가 없다면, 오디오 클록 및 비디오 클록 타이밍은 간섭성의(coherent) 오디오 및 비디오가 전송되었는지를 특정 설계에서 많이 예상하지 못하기 때문이다. 비디오 및 오디오 클록의 상대적인 타이밍이 상당히 자주 변동되면(즉, 간섭성이 없는 비디오 및 비디오의 경우), CTS 카운팅 방법의 용도인 링크를 통해 전송된 CTS 값이 변동된다.
자동 정렬이 계속해서 수행되면, 오디오 및 비디오 클록이 완전히 동기하지 않는 경우(즉, 두 클록 신호 사이에 느린 드리프트)에 전송된 CTS 값이 정확하다는 것을 보증하기 위해 부가적인 논리부가 필요하다. 이것은 도 22를 관찰함으로써 알 수 있다.
도 22를 참조하면, 먼저, VCLK 타이밍에 대한 오디오 클록이 Case 1에 나타낸 바와 같고, VCLK의 폴링 에지는 기준으로 사용되고, 적은 CTS 카운트가 VCLK 카운터의 라이징 에지 및 폴링 에지 모두(즉, VCLK에 기초한 하나의 CTS 카운트와 VCLK의 반전에 기초한 다른 CTS 카운트)에 대해 27,000이라고 가정한다. 그러면, 오디오 클록 에지가 case 2에 도시된 바와 같이 오른쪽으로 드리프트되면, 이것은 VCLK 폴링 에지를 넘어가고, "라이징 에지 VCLK" CTS 값은 일정하게 유지되고, "포링 에지 VCLK" CTS 값은 오디오 클록 에지가 VCLK 폴링 에지를 넘어가면 1만큼 증가된다(클록들 사이에 지터가 있으면, 폴링 에지 CTS 값은 노말 값의 +1 및 -1 로 흔들리지만, 에지의 우측에서 최종적으로 정착될 때의 라이닝 에지 VCLK 아래 1로 유지된다). 이때, 본 발명에 따른 송신기 내의 자동 정렬 회로는 "라이징 에지 VCLK" CTS 값을 선택해야 한다. 토론의 실마리로, (라이징 에지 VCLK CTS 갑스로의) 전환은 오디오 클록이 폴링 에지를 넘었을 때 만들어지고, 그리고 리턴된다고 가정한다. 이 경우, 전송된 CTS 값은 27,000의 평균 값 근처를 바운딩 하지만, 전체 평균 값은 계속 27,000이다. 그 후에, "라이징 에지 VCLK" CTS 값이 27,000의 상수일 때 이용된다. 그리고, case 3의 경우, 시간이 앞으로 더 지나가서, 오디오 클록 에지가 다시 VCLK의 라이징 에지를 지나간다. 우리는 다시 동일한 일이 발생했다고 가정한다, 즉 자동 정렬 회로가 VCLK 클록 에지를 스위칭하기 전에 오디오 클록 에지가 VCLK 라이징 에지 근처에서 앞뒤로 지터되고, 오디오 클록 에지가 여전히 VCLK 라이징 에지의 좌측에 있을 때 스위칭된다. 다시, 라이징 에지 CTS 카운터에 의해 전송된 평균 CTS 값은 27,000 이다. 그러면, 송신기는 "폴링 에지 VCLK" CTS 카운터로 스위칭하고, 27,000의 상수 값을 전달한다. 그래서, 전송된 CTS 값은 항상 27,000을 유지하지만, 실제 누적된 CTS 값은 1 높다. 이러한 결과로 동작하기 위해, 바람직한 실시예에 따른 송신기는 누적된 CTS 값 및 "라이징 및 폴링 에지 VCLK" CTS 값 사이의 차이를 카운트하고 , 자동 정렬 회로가 새로운 VCLK 에지로 스위치되면, (CTS의 누적 카운트 값 및 선택된 새로운 VCLK 에지에 기 초한 누적 카운트 사이의)상기 차이 카운트는 이러한 에러를 피하기 위해 수신기로 전송되어야 한다.
(오디오 클록을 샘플링하기 위해 이용된 픽셀 클록의 다른 버전에 기초한 다른 CTS 값을 선택하는) 상술한 자동 정렬 기술의 대안인, (상술한 오디오 및 픽셀 클록 내의 위상 정렬로부터 생긴) 오디오 클록 내의 지터로 인한 (전송된 CTS 값을 이용하여 재생성된) 재생성된 오디오 클록 내의 증폭된 지터를 줄이는 다른 방법은, 송신기를 상기 픽셀 클록보다 더 높은 주파수를 갖는 클록으로 오디오 클록을 샘플링하도록 구현하는 것이다. 위에서 설명한 바와 같이, 오리지널 오디오 클록 내의 지터는, 재생성된 오디오 클록의 퀄리티에 영향을 줄 수 있는, CTS 값의 지터를 유발할 수 있고, (재생성된 오디오 클록이 오리지널 오디오 클록보다 더 나쁜 퀄리티를 갖는 다는 점에서) 오리지널 오디오 클록 내의 작은 양의 지터가 증폭되기도 한다. 가장 나쁜-케이스의 상태는 오디오 클록 에지가 비디오 클록 에지 가까이 있지만, 상기 에지의 앞뒤로 움직이는 것이다. 이 경우 작은 량의 오디오 및 비디오 클록 지터(예를 들어, 1ns 지터)는 CTS 값이 앞뒤로 토글되면(25MHz 픽셀 클록이 이용되면 40ns까지) 더 많은 양의 지터를 생성할 수 있다. 이 CTS 지터는 낮은 퀄리티의 복원 오디오 클록에서 발생할 수 있다.
(더 높은 주파수에서 샘플링함으로써) 오디오 클록의 좀 더 정확한 측정의 다른 이점은 재생성된 오디오 클록 내의 실제 지터가 좀 더 면밀히 추적되도록 하게 하는 것이다. 지터의 좀 더 정확한 측정은 또한 MCLK 재생성 회로가 커버하는데 필요한 주파수 범위를 줄일 수 있고, 몇 가지 환경에서는 수신기 설계 부분이 좀 더 쉽게 구현될 수 있게 한다.
오디오 클록 주기의 좀 더 섬세한 해상도 측정을 하기 위한 단순한 오버샘플링 방법은 비디오 클록의 라이징 에지 및 폴링 에지 모두를 이용하여 오디오 클록 주기를 측정하는 것이다. 비디오 클록 듀티 사이클이 50%에 근접하면, 이 방법은 비디오 클록의 라이징 (또는 폴링) 에지만을 이용하여 얻을 수 있는 해상도의 2배로 측정할 수 있다. 다른 오버샘플링 방법은 타임 해상도를 10x 또는 30x 까지 늘릴 수 있는, (도 13의 송신기(100) 내의 프로세서(114) 등의 TMDS 코어 프로세스 내의 다른 목적을 위해 일반적으로 생성되는) 오버샘플된 픽셀 클록을 이용하는 것이나, 이것은 좀 더 복잡한 회로를 필요로 하고, 이 좀 더 섬세한 해상도 측정을 링크를 통해 전송하기에 적절한 포맷을 갖는 패킷을 이용해야 할 것을 요구한다.
MCLK 및 픽셀 클록이 모두 공통 클록에서 추출되었다는 점에서 상관성이 있다면(따라서, "오디오 클록 주기 당 픽셀 클록 주기"의 카운트를 나타내는 CTS 값이 오디오 데이터의 단일 스트림 또는 스트림 세트의 전송 도중 변동된다고 예상되지 않는다), 본 발명에 따른 송신기는 (CTS 값을 생성하기 위한, 예를 들어, 도 15 송신기의 요소(130 및 131), 회로가 아닌) 프로그램 가능한 CTS 레지스터를 포함하도록 구현될 수 있다. 외부 장치가 업데이트된 CTS 값을 때때로(바람직하게는 주기적으로) CTS 레지스터로 로딩하고, 송신기는 수신기로 전송된 각 오디오 클록 재생성 패킷(Audio Clock Regeneration Packet) 내의 현재 CTS 값을 (CTS 레지스터 내에) 포함하도록 구성된다.
본 발명의 바람직한 구현에 따른 수신기에서, 오디오 클록 재생성(ACR) 회로 는, 픽셀 클록, 타임 스탬프 값 CTS, 송신기로부터의 하나 이상의 다른 값(예를 들어, 송신기로부터 몇 가지 다른 값들과 함께 인가된 상술한 분자 값 "N"의 단일 값 및 주파수 배수 값 "M")에 응답하여, 제1 주파수 Z*Fs (여기서 Z는 일반적으로 128이다)의 몇 배인 M*Z*Fs의 주파수를 갖는 재생성된 버전의 오디오 클록(MCLK)을 (출력부로) 인가하도록 구성된다. 예를 들어, 수신기는, M=1에 응답하여 128*Fs의 주파수를 갖는 MCLK를, M=2에 응답하여 256*Fs의 주파수를 갖는 MCLK를, M=3에 응답하여 384*Fs의 주파수를 갖는 MCLK를 출력한다.
바람직한 구현에서, 본 발명에 따른 수신기는 2 가지 모드에서 동작하도록 구성된다; 오디오 클록(MCLK)을 재생성하고 선택적으로 또한 이 오디오 클록의 배수와 같은 주파수를 갖는 하나 이상의 클록을 생성하는 (PLL을 포함하는) 내부 오디오 클록 재생성(ACR) 회로를 이용하는 제1 모드; 내부 ARC 회로는 무시되고 대신에 송신기로부터 수신된 CTS 및 N 값 및 픽셀 클록이 MCLK 클록 재생성을 위해 외부 장치(예를 들어, 도 15의 외부 PLL 유닛(160))으로 인가되는 제2 모드. 상기 제2 모드의 수신기는 외부 장치로부터 재생성된 MCLK를 이용할 수 있고(VCO를 갖는 내부 PLL회로 내에서 안정시키는 것에 의한 것을 포함하여) 및/또는 이것을 다른 장치로 보낼 수 있다. 몇 가지 바람직한 실시예에서, 도 15의 장치는, 외부 ACR 장치를 구동하기 위해 수신기의 제2 동작 모드 내의 클록 다바이더(132)에 의해 생성된 중개 클록(이 중개 클록은 Z*Fs/N의 주파수를 갖는다)을 출력하고, 외부 ACR 장치로부터 재생성된 MCLK를 수신하도록 구성되도록 약간 변형된다. 도 15 수신기의 이러한 약간의 변형은, 외부 장치로부터 수신하는 재생성된 MCLK를 출력하거나 또는 재생성된 MCLK를 (클록 배율기 (133)을 구현한 PLL, 또는 VCO를 갖는 다른 내부 PLL 내에서 안정화시킴으로써) 더 프로세싱할 수 있다. 몇 가지 실시예에서, (제2 모드로 동작하는) 도 15의 변형된 수신기로 재생성된 MCLK를 제공하는 외부 ACR 장치는 상대적으로 좁은 주파수 범위 내에서만 안정적 복원된 MCKL를 제공하는 PLL(예를 들어 전압 제어 크리스탈 발진기 또는 VCXO(voltage controlled crystal oscillator)를 포함하는 것)를 포함한다. 이 경우, 수신기는, 자동 클록 늘임(stretching) 또는 줄임(shrinking)(즉, 필요할 때 외부 PLL로부터 재생성된 MCLK 신호의 감소된 또는 증가된 주파수 버전을 생성하기 위해)을 통해, 또는 자동 샘플 반복 또는 제거(즉, 복원된 MCLK 신호의 주파수와는 다른 샘플링 레이트를 가는 출력 오디오 샘플 스트림을 생성하기 위해, 패킷으로부터 복원된 오디오 데이터를 샘플하기 위해 외부 PLL로부터 재생성된 MCLK 신호를 사용함으로써, 하지만, 출력하는 복원된 오디오 샘플로 반복된 샘플을 삽입하거나 이로부터 몇 가지 샘플을 제거함으로써) 함으로서 외부 PLL등을 지원하도록 구성될 수 있다.
몇 가지 바람직한 실시예에서, 본 발명에 따른 수신기는 오디오 클록 재생성에 "아주 작은-N(fractional-N)" 주파수 신디사이저 PLL을 이용한다. 예를 들어, 도 15 수신기의 클록 배율기(133)의 PLL 구현은 회로(132)로부터의 클록 신호의 주파수를 비-정수 값 "N"을 승산하여 효과적으로 구성된다. 예를 들어, 이러한 주파수 신디사이저 PLL은 주파수 디바이더(137)가 듀얼 모듈러스(dual-modulus) 주파수 디바이더 일 때, 도 16의 요소(134, 135, 136 및 137)에 의해 구현될 수 있다. 이러한 PLL에서, 위상 검출기(134)는 주파수 디바이더(132 및 137)의 출력을 수신하 고 응답하여 이 상대적 위상을 나타내는 신호를 생성하며, 루프 필터(135)는 루프-패스 필터 및 위상 검출기(134)의 출력을 수신하여 디바이더(134 및 137)의 출력들의 상대적 위상을 나타내는 에러 신호를 생성하며, VCO(136)는 필터(135)로부터의 에러 신호에 응답하여 (Z*Fs와 거의 같은 주파수를 갖는) 출력 클록을 인가한다. "N"이 I<N<I+1을 만족하는 비-정수일 때(여기서 I는 정수), 주파수 디바이더(137)는 출력 클록을 수신하고 이에 응답하여 Z*Fs/I 또는 Z*Fs/I+1 으리 주파수를 갖는 클록을 출력한다. 디바이더(137)이 양쪽 모듈러스로 순환적으로 동작할 때(모듈러스 I, 그 뒤로 모듈러스 I+1, 그 뒤로 모듈러스 I, 이런 순으로), 디바이더(137)가 모듈러스 I로 동작하는 듀티 사이클 및 디바이더(137)가 모듈러스 I+1로 동작하는 듀티 사이클의 제어는, 아래의 출력 클록 주파수의 시-평균 값을 발생한다:
(Z*Fs)av = W*Fs, Z<W<(Z+1).
디바이더(137)는 그 듀티 사이클이 N 과 N 과 가장 가까운 정수 사이의 차이로 설정되도록 구성되어야 하고, 이로써 출력 클록 주파수의 시 평균 값은 Z*Fs로부터 적당한 량 이상으로 크게 차이 나지 않는다.
바람직한 실시예에서, 본 발명에 따른 수신기는 오디오 클록 복원을 위한 좁은 범위의 PLL을 포함하는 회로를 이용한다(예를 들어, 주파수 디바이더(132)로부터 그곳으로의 입력되는 클록의 주파수가 좁은 VCO 주파수 범위 내에 있을 때에만 안정적이고 정확한 도 15 수신기의 클록 배율기(133)의 PLL 구현). 이러한 수신기 내의 ACR 회로는, 좁은-범위 PLL로부터 출력된 재생성된 클록 신호의 주파수를 몇 가지 다른 수 중 어느 하나로 승산하며, 여기서 PLL은 좁은 범위의 주파수를 갖는 재성성된 클록만을 출력 가능하고 이 범위 밖의 주파수를 갖는 재생성된 클록은 필요하거나 요구될 수 있다. 그러나, 주파수 배율 그 자체는 일반적으로 PLL을 요구하며, 본 발명의 이러한 실시예는, (주파수 배율을 위한) 하나 이상의 부가적인 PLL들과 함께 (클록 재생성을 위한) 좁은-범위 PLL이 클록 재생성을 위한 넓은-범위 PLL 보다 단순하거나 덜 비싸다면 일반적으로 유용하다.
몇 가지 실시예에서, 본 발명에 따른 수신기는 2 이상의 칩으로 구성된다. 제1 칩은 오디오 클록 재생성에 이용되는 PLL을 제외한 필요한 회로 대부분 또는 모두를 포함하고, 제2 칩은 PLL을 포함한다. 이러한 멀티-칩 모듈(MCM) 구현은 동일한 회로의 단일-칩 구현에 비해, 노이즈를 현저하게 줄일 수 있다. 한편, 상기 제2 칩(예를 들어, 도 16의 회로(161))는 PLL에 이용되는 로우-패스 필터만을 구현하고, PLL의 나머지와 다른 클록 복원 회로는 상기 제1 칩 내에 구현된다. 후자의 실시예에 따른 도 16 구현의 변형에서, 로우-패스 필터(135)는 제거될 수있고, 외부 필터(161) 또는 필터(135)에 의해 수행된 기능은 포함될 수 있고, 수신기는 내부 필터(135) 또는 외부 필터(161) 중 어느 하나를 이용하여 동작하도록 구성된다.
다른 실시예에서, 본 발명에 따른 수신기는 송신기가 동일한 픽셀 클록으로부터 타임 스탬프(CTSv)를 생성하는 시간과 같은 시각에 상기 동일 픽셀 클록으로부터 "안정된" 타임 스탬프(CTSx)를 생성하기 위해 안정된 클록(stable clock)(예를 들어 크리스탈 클록)을 이용하는 오디오 클록 재생성 회로를 포함한다. 수신기는 재생성된 오디오 클록(CTSx 또는 CTSv 타임 스탬프 중 하나를 이용하여 재생성 된 오디오 클록) 아니면 피셀 클록의 지터에 의해 발생하는 에러를 줄이기 위해, 적절한 시기에 수신기로부터 일반적으로 전송된 타임 스탬프(CTSv) 대신에 안정 타임 스탬프를 이용한다.
본 발명에 따른 시스템의 바람직한 실시예는 송신기와 수신기 사이의 오디오 클록(예를 들어, MCLK)를 정송하기 위해 타임-스탬프 방법을 사용하고, 여기서 디지털 사이클 타임 스탬프(CTS) 값은 MCLK 및 CTS 값이 수신기로 전송되는 각 주기의 픽셀 클록 사이클(VCLK 사이클)의 수를 카운팅 함으로써 결정된다. 수신기에서, MCLK는 재성성된 MCLK의 주기당 "CTS" VCLK 사이클을 카운팅 오프함으로써 재구성된다. 이 과정에서, 오리지널 MCLK 및 VCLK("VCLK" 는 픽셀 클록을 지칭한다)의 위상 정렬에 의한 지터뿐만 아니라 오리지널 MCLK 상의 지터 등의 많은 지터 소스가 있을 수 있다. MCLK 및 VCLK 가 독립된 소스를 가지고 있기 때문에, CTS 값은 일반적으로 시간에 따라 다양하고 따라서 지터를 재구성된 MCLK 안으로 삽입한다. 이들과 지터의 다른 소스들이 중요하고 또한 최종 오디오 퀄리티에 영향을 줄 수 있는 반면, 이들은, VCLK 지터를 제외하고, (여기에 개시된) 다른 기술들에 의해 관리되어 복원된 오디오 퀄리티를 떨어뜨리지 않게 한다.
다음에 설명될 실시예들에 의해 제시되는 문제는 VCLK 지터에 위한 복원된 오디오 퀄리티의 열화(degrade)이다. 이러한 열화는 다음의 경우에 명백히 볼 수 있다. MCLK 주파수가 1kHz(1ms 주기)이고, VCLK 가 0.5kHz(2ms 주기) 지터 요소를 가진다고 가정하고, 또한, CTS 값은 (VCLK 주기가 평균보다 길고, 예를 들어, 평균 주기가 사용되는 경우보다 CTS 카운트 값이 더 작게 나오는) VCLK 지터의 첫 번째 반 사이클 동안 측정된다고 가정하면, 평균보다 더 작은 CTS 값은 링크를 통해 전송되고 (VCLK 주기가 평균보다 더 짧을 때) VCLK 지터의 두 번째 반 사이클 동안 MCLK를 재생성하기 위해 이용된다. 평균보다 짧은 VCLK 주기를 카운트 아웃하기 위해 평균보다 작은 CTS 값을 이용하는 것은 재생성된 MCLK 주기가 이상적인 MCLK 보다 짧게 되도록 하게 한다. 사실 MCLK 지터는 VCLK 지터의 증폭된(더블된) 버전이다. 이것은 링크의 각 사이드에서 VCLK를 이용한 결과이다. 이것은 가장 나쁜 경우이고 잠재적으로 오디오 퀄리티를 심각하게 열화시킬 수 있다.
요약하면, VCLK 지터를 MCLK로 전송하는 도중의 문제는, VCLK 상의 지터가 CTS의 측정 도중에는 어느 한 위상에 있다가, MCLK 재생성 도중에는 다른 위상에 있을 때 발생한다. 상술한 최악의 경우, CTS 측정 및 MCLK 재생성 사이의 특정 타임 간격은, 본 발명에 따라 정정되는 VCLK 지터의 최대 주파수에 영향을 줄 때만 중요하다. 기본적으로, 특정 CTS 값을 측정, 전송 및 사용하는 데 필요한 시간에 비해 VCLK 지터가 빨리 변화되면, VCLK 지터는 효과적으로 필터링되어 제거될 수 없다. 따라서, CTS 경로에서의 더 긴 지연은 대신에 500Hz (1kHz CTS 클록 레이트에 대한 최고의 케이스) 까지의 VCLK 지터만을 필터링 하여 제거할 수 있음을 의미하며, 예를 들어, 필터링은 500Hz 이하의 주파수를 갖는 지터만을 정정할 수 있다.
VCLK 지터 문제를 해결하기 위해, (지터를 무시할 수 있는) 안정된 타임 베이스가 수신기에서 사용되고, MCLK 주기를 측정하기 위해 "CTS" VCLK 사이클이 송신기 내에서 카운트 오프된 시간과 동일 시각에서 안정된 타임 베이스를 이용하여 "CTS" VCLK 사이클이 수신기 내에서 카운트 오프된다. 안정된 타임 베이스를 사용 하는 수신기의 카운트가 알려지면, 한번 안정된 타임 베이스를 사용했기 때문에 지터를 삽입하는 것 없이 MCLK를 재생성하기 위해 나중에 어느 때라도 이것을 사용할 수 있다.
수신기에서의 안정된 타임 기본은 바람직하게 안정된 클록(XCLK)를 제공하기 위해 수신기 외부의 크리스털을 이용함으로써 구현된다.
상술한 스킴을 구현하는 데 주된 어려움은 다음 2가지이다. 첫 째로, 상기 절차는 동일 MCLK 주기에 대한 XCLK 사이클의 수(CTSx)가 수신기 내에서 카운트 오프되는 시각과 동일한 시각에서 송신기 측의 MCLK 주기 내의 VCLK가 발생하는 수(CTSv)의 측정을 요구한다. 즉, 카운팅은 링크의 양 측에서 동시(또는 거의 동시에) 시작해야 한다. 이것은 송신기 및 수신기 내의 카운팅의 시작을 동기화하는 방법을 필요로 한다. 두 번째 어려움은, 송신기 내에서 동시에 측정될 VCLK 사이클의 동일한 CTSv 수를 (XCLK 사이클 내에서) 수신기가 카운트할 필요가 있으며, CTSv 값이 측정할 때마다 변하기 때문에 수신기는 CTSv 값을 포함하는 패킷이 링크를 통해 전송될 때까지 송신기 내에서 어떤 값이 측정되었는지 정확히 알 수 없다. 이것은 송신기에서 현재 측정되고 있는 CTSv 값을 수신기가 예상하여, 링크의 양 사이드에서 같은 (또는 거의 같은) 시간에 카운팅을 정지하는 방법을 요구한다.
송신기 및 수신기 카운팅에 의한 카운트를 동기화하는 다른 많은 방법이 용인될 수 있다. 일반적으로 동기는, 카운팅이 시작해야 하는 시각에서 (VCLK 사이클의 수 등의) 구간을 정의하는 원인(origin)으로서 송신기 및 수신기 양 측 모두에 공통적인 신호를 사용할 것을 요구한다. 이러한 신호를 링크를 통해 전송함으 로써, 일찍 시작할 수도 있는 수신기 내의 CTSx 카운팅은 송신기 및 수신기 내의 카운팅을 동기화하기 위해 적절한 양만큼 지연될 수 있다. 어떤 리-싱크 프로세스도 MCLK 및 비디오 신호 소스가 독립적인 상황을 처리할 수 있어야 한다.
송신기 내에서 현재 측정되는 CTSv 값을 수신기가 예상하여, 링크의 양측에서 같은 (또는 거의 같은) 시각에 카운팅이 정지되도록 하는 방법은, CTS 값이 일반적으로 시간에 따라 광범위하게 변동되지 않는다고 예상된다는 사실을 이용할 수 있다(일반적으로, CTS 값은 일반적인 값으로부터 +1 또는 -1 정도의 작은 량만 변동되는 것으로 예상된다). 그러면 이것은 수신기가 작은 범위의 CTSv 값에 대해 CTSX 값을 카운트하고 저장하게 하고, 그런 다음 실제 CTSv 값이 링크를 통해 전송될 때, 수신기는 단지 CTSx 값을 정정하기 위한 포인터로 실제 CTSv 값을 이용할 뿐이다. 이 방법은 CTSx 값이 MCLK 주기의 재생성에 이용될 수 있기 전에 링크를 통해 전송되는 CTSv 패킷의 가장 나쁜 시간 지연까지 CTSx 값이 버퍼링되는 것을 요구한다. 안정 타임 베이스가 이러한 레이턴시를 지터의 채용없이 가능하게 하기 때문에 이 방법은 일반적으로 적당하다.
도 23의 타이밍도는 송신기 및 수신기 카운팅이 어떻게 재-동기화될 수 있는 지를 나타내는 한 예이다. 송신기 내의 CTSv 카운터의 값은 VSYNC 의 리딩 에지에서 캡쳐되고( 이 값은 도 23에서 "CTS_sync"로 표시된다), 높은 우선순위로 링크를 통해 전송된다. CTS_sync 및 대응하는 주기에 대한 CTSv 값(이 값은 도 23에서 "CTSv_0"으로 표시된다)을 이용하여, 수신기 카운팅이 VSYNC 의 리딩 에지에서 처음 시작했다면 송신기 카운팅 및 수신기 카운팅 사이의 지연은 판단될 수 있다. 그런 다음 VCLK 지터가 재생성된 MCLK에 더 이상 영향을 주지 않는 시점에서 (수신기가 MCLK 재생성을 위해 적당한 CTSx 값을 사용할 것이기 때문에) 수신기 내의 카운팅은 적절하게 송신기 카운팅과 동기된다.
몇 가지 변형예에서, (MCLK로부터 생성된) 기준 클록에 대한 타임 스탬프가MCLK 그 자체에 대한 타임 스탬프 대신에 링크를 통해 전송된다. 그런 다음 재생성된 기준 클록은 MCLK를 재생성하기 위해 사용된다.
바람직한 구현에서, 송신기 및 수신기 사이의 동기의 레이턴시(latency)는 신중하게 처리된다. 이 레이턴시는, 수신기가 송신기로 인가된 VSYNC 신호의 지연된 버전에 실제 동기하기 때문에 송신기 및 수신기 사이의 고정 오프셋을 채용할 수 있다. 이것은 이 오프셋이 작을 경우에는 받아들일 수 있지만, 최대 레이턴시는 제어될 필요가 있다. 다른 옵션은 송신기 레이턴시를 패킷으로 링크를 통해 전송하여 적절한 조절을 이룰 것인가를 결정하는 데 수신기가 이것을 이용할 수 있게 하는 것이다.
수신기는 몇 가지 일반적인 CTSv 값만을 카운트하기 때문에, 카운팅의 시작 포인트는 실제 CTSv 값이 수신기에서 이용 가능하게 될 때까지 전진 방식(ongoing manner)으로 정정될 필요가 있다. VCLK 사이클 또는 XCLK 사이클 어느 쪽도 카운팅에서 제거되거나 추가되지 않는 것은 (롱 텀 드리프트(long term drift)를 방지하기 위해) 위험한 것이기 때문에, 카운팅의 시작이 조절되면, 이전 CTSx 값의 조절에 의해 상기 변화는 고려될 필요가 있을 것이다.
상술한 실시예들의 변형예에서, CTS_sync 값은 (VSYNC게 기초하는 것으로 가 정한) 비디오 프레임 단위로 한번 전송된다. 이것은 수신기가 송신기-수신기 카운팅 동기의 롱 텀 드리프트를 방지하는 프레임 기본의 작은 정정을 하게 한다. 다른 구현예에서, 카운팅을 동기화하기 위해 CTS_sync 값을 송신기가 전송하게 할 필요가 있다고 호스트에 나타내는 적절한 시기에 수신기는 호스트에 인터럽트를 인가한다.
VCLK 지터가 지나칠 정도로 심하지 않으면, 몇 가지 경우에 더 낮은 퀄리티의 오디오 어플리케이션을 위해 VCLK 지터가 (본 발명에 따라) 어드레스 되지 않는 표준 모드의 동작에서 크리스탈 클록 없이 수신기를 이용하는 것이 가능하며, 반면에 더 높은 오디오 퀄리티 어플리케이션에 대해서는 VCLK 지터의 영향을 제거하기 위해 상술한 바와 같이 외부 크리스탈이 제공되고 이용된다.
MCLK를 재생성하기 위해 VCLK 지터의 전송을 방지하는 상술한 기술은 (VCLK의 주파수가 EMI를 줄이기 위해 일부러 변경되는) 상기 링크 상에서 확산 스펙트럼 클록킹을 지원하도록 하게 할 수 있다. 수신기 내의 구현은 주파수 변동의 최악의 경우를 지원할 필요가 있다.
많은 CTSx 값을 저장하고 정확한 저장 값을 선택하기 위해 CTSv 값을 이용하는 다른 방법은 수신기가 일반적인 CTSv 값에 대응되는 CTSx 값만을 측정하고, CTSv 값이 이용 가능할 때 CTSx에 대한 정정을 계산하도록 구현하는 것이다. 후자의 방법은 CTSv 변화가 +/-1 보다 큰 경우의 상황에 유용하다고 예상된다. 이것은 링크 상에 확산 스펙트럼 클록킹(clocking)을 이용할 때의 경우 일 수 있다. 이 계산을 하기 위한 많은 클록 사이클이 있을 것이기 때문에, 하드웨어 구현은 많은 영역이라는 불리함을 요구하지 않을 것이다. 수신기 내의 카운팅의 시작을 동기화하고 조절하는 것은 여전이 요구된다.
다른 바람직한 실시예는 수신기로 전송된 CTS 값의 디지털 필터링(로우 패스 필터링)을 구현한다. 전송된 CTS 값을 이용하여 (타임-스탬프 방법론) 클록을 재생성하는 동안 (예를 들어, 오디오 클록 재생성), 픽셀 클록 지터(재생성될 클록을 샘플링하기 위해 이용된 클록 내의 지터) 뿐만 아니라 양자화 에러로 인해 전송된 실제 CTS 값은 평균 값(짧은 기간 동안 평균 낸) 으로부터 변화될 수 있다. 이 변동은 재생성된 클록 상에 지터를 생성한다.
몇 가지 바람직한 실시예에서, 양자화된 에러 및 픽셀 클록 지터에 의해 야기된 재생성된 클록의 지터를 줄이기 위해 CTS 값은 디지털로 필터링될 수 있다. 상기 디지털 필터는 타임-스탬프 변동의 더 높은 주파수 요소를 억제하기 위해 로우-패스 필터로 기능하며, 상기 재생성된 클록 지터의 더 높은 주파수를 대응하여 억제한다.
필터 출력을 위해 요구되는 워드 길이는 오리지널 타임-스탬프 값보다 더 클 수 있다. 즉, 디지털적으로 필터링된 타임-스탬프 값은 오리지널 정수 타임-스탬프에 비해 분수 부분을 갖는다(즉, 74 대신에 74.25). 더 긴 타임-스탬프 워드가 단순히 끝 수를 절단하여 정수가 된다면, 필터는 여전히 더 높은 주파수 지터를 약하게 하는 기능을 할 것이다. 그러나, 끝 수가 절단된 타임-스탬프 값의 평균은 오리지널 타임-스탬프의 시퀀스의 평균과 같지 알 수 있고, 재생성된 클록 주파수는 정확하지 않고 상기 클록은 오리지널 클록에 비해 롱 텀 드리프트를 갖는다. 재생성된 클록에 의해 클록킹될 전송되고 있는 일정한 데이터의 스트림이 또한 있다면, 재생성된 클록 내의 이러한 드리프트는 데이터 소스(source) 및 싱크(sink) 사이의 데이터-레이트 부정합(mismatch)을 야기하고, 싱크 측 상에서 갭(gap) 또는 빠진 데이터(dropped data)를 생성할 수 있다. 롱 텀 드리프트에 더해, 필터링된 타임-스탬프 값의 끝 수 절단은 재생성된 클록의 지터를 증가시키는 절단 에러(truncation error)를 유발한다.
따라서, 클록을 재생성할 때 필터린린된 CTS 값의 분수 부분이 유지되는 것이 중요하다. 몇 가지 실시예에서, 분수적-N 타입 PLL이 더 긴 워드를 보호하기 위해 (상술한 바와 같이) 수신기 내에 이용된다.
이러한 실시예들에서 한가지 중요한 어플리케이션은 타임-스탬프 방법을 이용하는 디지털 오디오 클록의 전송이다. 특히, 타임-스탬프 업데이트 레이트가 오디오 밴드 근처 또는 내에 있을 때에는, 타임-스탬프 변동에 의해 생성된 지터는 최종 아날로그 오디오로 변조될 수 있고 오디오 퀄리티의 열화를 야기할 수 있다. 오디오 밴드 내의 지터 주파수를 억제하기 위해 디지털 필터를 사용함으로써, 오디오 퀄리티 상의 지터의 영향은 줄어들거나 제거될 수 있다. 아날로그 기술을 이용하여 동일한 이익을 얻기 위해서는, 집적시키기도 어렵고 설계, 테스트 제작하는데 상당한 노력이 요구되는(IC 레벨 과 보드 레벨 모두) 매우 낮은 대역폭의 클록 재생성 PLL(예를 들어, 100Hz 정도의 대역폭을 갖는 PLL)을 요구한다. 바대로, 한번 적절하게 설계된 디지털 방법은 간단히 제작 및 테스트 할 수 있고, 보드 레벨 설계로 쉽게 적용 가능하다.
바람직한 실시예에서, 본 발명에 따른 송신기는 ITU-BT.656 또는 YCbCr 4:2:2 포맷으로 입력 비디오를 받아들이고, 전송을 위해 ITU-BT.656 포맷을 YCbCr 4:2:2 포맷으로 변환하도록 구성된다. 바람직하게는, 송신기는 (한 채널로) 2 스트림의 (함께 시-분할-멀티플렉싱된) ITU-BT.656 또는 YCbCr 4:2:2 비디오를 (각 스트림은 N-비트 성분을 포함한다) 받아들이고, 전송을 위해 상기 입력 비디오를 (2N-비트를 성분을 포함하고, 각 2N-비트 성분은 입력 비디오의 2 성분을 나타내는) YCbCr 4:2:2 포맷으로 변환할 수 있다.
다른 바람직한 실시예에서, 본 발명에 따른 송신기는 DDR YCbCr 4:4:4 포맷으로 입력 비디오를 받아들이도록 구성된다(DDR은 "더블 데이터 레이트(double data rate)"을 지칭하며, DDR 포맷의 비디오는 라이징 클록 에지뿐만 아니라 폴링 클록 에지 상에서, 동기식 DRAM의 한 타입인, DDR RAM에 기록될 수 있다). 송신기는 전송을 위해 입력 비디오를 (DDR이 아닌) 종래의 YCbCr 4:4:4 포맷으로 놓을 수도 있다. 다른 방도로, 또는 선택적으로는, 송신기는 DDR YCbCr 4:4:4 포맷의 입력 비디오를 받아들이고 전송을 위해 상기 입력 비디오를 종래의 YCbCr 4:4:4 포맷으로 놓도록 구성된다. 바람직하게는, 송신기는 (한 채널 상에서) 2 스트림의 (함께 시-분할-멀티플렉싱된) DDR ITU-BT.656 포맷의 입력 비디오를 받아들이고, 전송을 위해 상기 입력 비디오를 종래의 YCbCr 4:2:2 포맷으로 위치시킬 수 있다.
다른 바람직한 실시예에서, 본 발명에 따른 송신기는 (많은 수의 소스 장치를 지원하도록 하기 위해) 데이터 또는 분리된 HSYNC 및 VSYNC와 함께 임베드 된 동기 비트로, YCbCr 포맷의 어떤 변형으로도 입력 비디오를 받아들이도록 구성되고, 상기 입력 비디오를 전송을 위해 YCbCr 4:4:4 또는 YCbCr 4:2:2 포맷 비디오로 재 포맷하도록 구성된다.
다른 바람직한 실시예에서, 본 발명에 따른 송신기는 YCbCr 4:2:2 포맷으로 입력 비디오를 받아들이도록 구성되고, 상기 입력 데이터를 전송을 위해 YCbCr 4:4:4 포맷으로 전환하기 위한 업컨버트(upconversion) 회로를 포함한다.
다른 바람직한 실시예에서, 본 발명에 따른 송신기는 YCbCr 포맷의 어떤 변형으로도 입력 비디오를 받아들이도록 구성되고 전송을 위해 (프로그램 가능한 또는 고정된 계수를 갖는) YCbCr에서 RGB로의 칼라 공간 전환 회로 및 입력 비디오를 RGB 포맷으로 전환하기 위한 유니버설 매핑 회로를 포함한다.
바람직한 실시예에서, 본 발명에 따른 수신기는 ITU-BT.656 포맷으로 비디오 스트림을 출력하도록 구성되고 YCbCr 4:2:2 포맷으로 복원된 비디오의 Y, Cr 및 Cb 성분을 ITU-BT.656 포맷으로 위치시키는 멀티플렉서 회로를 포함한다. 바람직하게는, 상기 수신기는 (타이밍이 ITU-Bt.656 스트림 내에 임베드된 동기 비트의 타이밍과 매칭되는) ITU.BT.656 출력 비디오 스트림과 함께, 별개의 HSYNC 및 VSYNC 신호를 인가할 수 있다. 바람직하게는, 수신기는 (2N-비트를 성분을 포함하고, 각 2N-비트 성분은 입력 비디오의 2 성분을 나타내는) 복원된 YCbCr 4:2:2 비디오에 응답하여 (한 채널로) 2 스트림의 (함께 시-분할-멀티플렉싱된) ITU-BT.656 비디오(각 스트림은 N-비트의 성분을 포함한다)를 출력하도록 구성된다. 더욱 바람직하게는, 수신기는 출력된 Y, Cr 및 Cb 성분(예를 들어, ITU-BT.656) 내에 임베드 된 동기 비트, 및/또는 출력된 Y, Cr 및 Cb 성분의 스트림과 분리되어 출력된 HSYNC 및 VSYNC를 포함할 수 있는 원하는 출력 포맷으로 YCbCr 4:2:2 포맷으로 복원된 비디오를 놓도록 구성된다.
다른 바람직한 실시예에서, 본 발명에 따른 수신기는 DDR YCbCr 4:4:2, DDr YCbCr 4:2:2 또는 DDR ITU-BT.656 포맷으로 비디오를 출력하도록 구성되고(DDR은 "더블 데이터 레이트"를 지칭한다), (DDR 이 아닌) 종래의 YCbCr 4:4:4 또는 YCbCr 4:2:2 포맷으로 복원된 비디오를 DDR YCbCr 4:4:4, DDR YCbCr 4:2:2 또는 DDr ITU-BT.656 출력 포맷으로 재 포맷하기 위한 회로를 포함한다.
다른 바람직한 실시예에서, 본 발명에 따른 수신기는 YCbCr 포맷의 어떤 변형으로 비디오를 출력하도록 구성되고 종래의 YCbCr 4:4:4 또는 YCbCr 4:2:2 포맷의 복원된 비디오를 출력 포맷 중 어느 원하는 포맷으로 전환하는 유니버설 매핑 회로를 포함한다.
다른 바람직한 실시예에서, 본 발명에 따른 수신기는 복원된 비디오 상에 다운컨버팅 또는 업컨버팅을 수행하는 회로를 포함한다(예를 들어, YCbCr 4:4:4 포맷의 복원 비디오를 YCbCr 4:2:2 포맷의 출력 비디오로 전환하거나, YCbCr 4:2:2 포맷의 복원 비디오를 YCbCr 4:4:4 포맷의 출력 비디오로 전환하기 위한 회로).
다른 바람직한 실시예에서, 본 발명에 따른 수신기는 YCbCr 포맷의 어떤 병형으로 비디오를 출력하도록 구성되고, (프로그램 가능한 또는 고정된 계수를 갖는) RGB에서 YCbCr로의 칼라 공간 전환 회로 및 RGB 포맷의 복원 비디오를 출력 포맷 중 원하는 한 포맷으로 전환하기 위한 일반적인 매핑 회로를 포함한다.
다음으로, 링크 완전형 체크를 위한 향상된 방법을 구현하는 본 발명의 실시 예들을 설명한다.
시리얼 링크를 통한 전송을 위해 비디오 데이터 및/또는 패킷화된 보조 데이터를 암호화하는 본 발명의 바람직한 실시예에 의한 시스템을 포함하는, 컨텐츠 보호 시스템은, 일반적으로 시스템이 여전히 올바르게 동작하는 지를 증명하는 몇 가지 방법을 필요로 한다. 시스템의 올바른 동작은 일반적으로, 링크를 통해 전송된 데이터는 송신기에 의해 암호화되고 수신기에 의해 복호화되며, 암호화 및 복호화 동작의 올바른 동기가 유지되어야 하는 요건을 포함한다.
한가지 증명 방법은, 링크의 각 사이드에서 "결과" 벡터를 주기적으로 판독하는 것이다. 벡터가 변하고, (일반적으로 링크의 각 사이드에서 동일한 값을 갖고) 예상된 시퀀스로 변화하면, 시스템이 올바르게 동작하고 있는 것의 강한 표시이다. 종래의 HDCP 프로토콜은 "링크 완결성 체크(link integrity check)"로 알려진 이러한 방법을 이용한다.
그러나, 링크 완결성 에크는 아주 간단한 방법이 아니다. 이러한 방법 그 자체로는 같은 순간 동시에 정확히 링크의 양 사이드를 샘플링 할 수 없다. 게다가, 샘플링 레이트는 결과 벡터가 변하는 레이트와 다를 수 있다 (실제, 2가지 이벤트가 완전히 비동기될 수 있다). 이들 요소들은 링크가 상하지 않을 때에도 링크가 상한 것으로 나타날 수 있는 변칙 상황으로 유도한다. 더 나쁜 경우는, 링크가 실제 상한 경우, 링크가 좋은 것으로 나타날 수 있다.
본 발명에 따른 시스템의 바람직한 실시예들은 링크 완결성을 체크하기 위한 향상된 방법을 구현한다.
아래에 오는 설명이 HDCP 컨텐츠 보호 프로토콜이 이용되었다고 가정하지만, 본 발명의 링크 완결성 체크 특성을 이용하는 본 발명에 따른 시스템의 몇 가지 실시예들은, HDCP 가 아닌 다른 컨텐츠 보호 프로토콜을 구현한다. 본 발명에 다른 링크 완결성 체크 방법 및 장치는 또한, 시스템이 데이터 아일랜드 또는 액티브 아일랜드 주기 사이에서 링크를 통해 암호화된 오디오 데이터 (또는 다른 보조 데이터)의 패킷을 전송하도록 구성되었는가에 상관없이, 시리얼 링크를 통해 암호화된 비디오를 전송하는 시스템에서 유용하다.
몇 가지 실시예에서, 본 발명에 따른 시스템의 송신기는 HDCP를 이용하여 오디오 데이터의 패킷 및 비디오를 암호화하고, 128 비디오 프레임마다 링크 완결성 체크 기능을 수행하여 송신기 및 수신기 양측으로부터 16-비트 결과 벡터(Ri로 부린다)를 캡쳐하고 2초마다 이 결과들을 비교하거나 또는 이들이 매칭되는지 확인한다. 이 스킴은 다음의 결점을 갖는다:
송신기 및 수신기 내의 사이퍼 엔진들이 정확히 동기되는지를 보증하지 못한다. 상기 사이퍼 엔진들이 약간 만 오프되어 있으면, Ri 값은 대부분 시간 매칭되는 것으로 나타난다;
Ri 값의 "스냅샷" (샘플)이 취해지는 레이트는 이들이 비교되는 레이트와 관련되지 않는다. 이 레이트들은, 샘플이 스냅샷 경계를 걸쳐 있기 때문에 송신기 및 수신기가 때때로 다른 값을 보이는 경우, 완전히 비동기될 것이다; 그리고
반대로, 샘플 레이트는 동기(또는 거의 동기) 한다. 이것은 수신 스트래들 링(straddling) 에러를 방지한다. 그러나, 완결성 체크가 스냅샷 경계에서 걸쳐있으면, 상황은 비정상으로 되고, 절대 해결될 수 없을 수 있다.
이러한 문제를 설명하기 위해, 먼저 도 17을 참조한다. 도 17에 나타난 바와 같이, 송신기 및 수신기의 Ri 스냅샷은, 동기되어야 하는 것처럼, 정확히 동기한다. 링크 완결성 체크는 약간 다른 레이트를 가질지라도 유사하게 일어난다. 송신기 완결성 체크 및 수신기 완결성 체크 모두 대부분 Ri 스냅샷 사이의 동일한 "윈도우(window)" 안에서 일어난다. 이것은 양측 Ri 값이 매칭되고, 링크 완결성 체크가 성공할 것이라는 것을 의미한다. 그러나, 한가지 케이스에서, 송신기 및 수신기 완결성 체크의 일부가 Ri 스탭샷을 걸쳐 있다. 이것은 보이는 Ri 값이 다르다는 것을 의미한다. 일반적으로 DHCP를 구현하는 시스템은 이러한 사건이 일어나면 짧은 시간에 다시 완결성 체크를 수행한다.
다음, 도 18 및 도 19를 참조하여, 링크 완결성 체크가 Ri 스냅샷과 정학히 동일한 레이트로 일어나는 경우를 살펴본다. 일반적인 종래의 HDCP 시스템은 링크 완결성 체크를 이러한 방식으로 수행한다. 일반적으로, 도 18에 도시된 바와 같이, 링크 완결성 체크가 항상 시간 상의 동일한 상대적 지점에서 발생되기 때문에, Ri 값은 항상 매칭된다. 그런, 도 19에 도시된 바와 같이, 링크 완결성 체크가 Ri 스냅샷에 걸쳐서 있는 비정상적인 (따라서 매우 나쁜) 경우가 있고, 이때 Ri 값은 결코 매칭되지 않는다.
상술한 경우 모두에서, (Ri 값의 한번의 체크 결과 매칭되지 않을 때) 가장 빠른 기회에 링크 완결성 체크를 재시도 하는 것은 실제 링크 완결성을 확립하기 위한 신뢰성 있는 메커니즘을 제공하지만, 이러한 방법은 복잡하고 예상치 못했던 부가적인 부담을 더하게 된다.
다음으로, 도 20 및 21을 참조하여, 송신기 및 수신기 사이퍼 엔진이 적절하게 정렬되지 않는 경우를 살펴본다. 이 경우는 예를 들어 VSYNC 고장이 있는 경우에 발생할 수 있다. 이러한 경우, 어떠한 이용가능한 비디오도 링크를 통해 전송되지 않는다. 그러나, 도 20에 도시된 바와 같이, 이것은 많은 경우에 발생할 수 있고, 링크 완결성 체크는 스냅샷들 사이의 동일 윈도우에서 발생하며, Ri 값은 올바른 것으로 나타날 것이다. 따라서, 실제 시스템이 정상적이 못하더라도, 정상적으로 동작하고 있는 것으로 나타날 것이다.
최종적으로, 완결성 체크는 (도 20의 좌측으로부터 네 번째 완결성 체크처럼) Ri 스냅샷에 걸쳐 있을 수 있지만, 이것이 때맞춰 일어날 것이라는 보증이 없고 또는 이런 보정이 전혀 없다. 이러한 행운적인 사건 사이의 경과되는 시간의 길이는 Ri 스냅샷 구간 및 링크 완결성 구간에 의해 형성된 비트 주파수에 반비례하고, 이 비트 주파수는 0일 수 있다.
가장 나쁜 경우의 시나리오는 도 21에 도시된다. 여기서, 링크 완결성 주파수는 Ri 스냅샷에 동기(또는 거의 동기) 하지만, 사이퍼 상태 머신내의 시퀀스 에러 를 못 보게 하는 너무 큰 상이 위상(out-of-phase)이 있다. 이 시스템은 정상적으로 동작하지 않지만, 몇 가지 외부 요소(예를 들어 실망한 사용자)의 간섭이 있을 때까지는 링크 완결성 체크는 그 사실을 깨닫지 못한다.
상술한 문제를 방지하고, 시스템의 비정상적인 동작이 빨리 정확히 검출되도록 보증하기 위해서, 다음 개선 중 하나 이상이 본 발명에 따라 만들어진다:
송신기 및 수신기는 송신기 및 수신기 사이퍼 엔진이 상이 위상(out-of-phase)을 갖게 하는 에러를 줄이거나 제거하도록 구현된다;
링크 완결성 체크는 위상에 관계없이 송신기 및 수신기 모두에서 Ri 스냅샷이 같은 시간에 일어나도록 보증하는 방식으로 행해진다;
링크 완결성 체크는 Ri 스냅샷과의 알려진 관계로 행해진다. 이것은 이들이 동기되어야 한다는 것을 의미하지 않지만, 이들이 완전히 비동기 일 수는 없다. 특히, 링크 완결성 체크가 Ri 스냅샷에 걸쳐 있지 않다는 것을 보증하는 것이 반드시 가능해야 한다; 그리고
정상적인 시스템 동작을 나타내는 상태 (예를 들어 "스노우(snow)" 상태)에 대한 수신된, 복호화된 데이터를 직접 체크하기 위한 방법이 구현된다. 예를 들어, 주기적으로 (또는 때때로), 알려진 데이터 패턴이 송신기로 입력되고, 암호화되고, 전송되고, 수신되고, 복호화되고, 그리고 수신되고 복호화된 패턴이 상기 알려진 데이터 패턴과 매칭하는 지 알기 위해 체크되어야 한다.
송신기 및 수신기 사이퍼 엔진은, 어떤 제어 신호가 고장나면 상이 위상이 될 수 있다. 예를 들어, 수신기가 VSYNC 신호를 보지 않으면 뒤쳐진다. 수신기가 여분의 VSYNC 신호를 받으면, 앞서간다. 이러한 것들이 발생하고 수신기가 정상적으로 복호화할 수 없게되면, 스크린은 "스노우(snow)"를 보인다.
수신기가 Ri 값의 "스냅샷"을 취하는 포인트가 동일한 방식(뒤쳐지거나 앞서는 것)으로 움직이면, 수신기는 계속해서 올바른 Ri 값을 생성할 것이다. 이것은 Ri 시퀀스가 상수 및 프fp임 시퀀스만의 함수이기 때문이다. 이것은 중간적인 데이터에 의존하지 않는다. 이것은 링크 완결성 체크가 대부분의 시간에 올바른, 도 20 또는 도 21와 매우 유사한 상황으로 유도한다. 실제, 수신기가 한 프레임 앞으로 또는 뒤로 간다면, 이것은 Ri 값은 128 프레임 중 127 상에서 송신기 내의 그것을 정확히 매칭할 것이다. 이것은 매우 큰 윈도우이며, 에러가 발견되기 전 한동안 취해질 수 있다.
이러한 시나리오의 가능성을 줄이는 한가지 방법은, 각 어드밴스를 제어하기 위한 다른 신호들을 이용함으로써 Ri 스냅샷이 발생할 때 사이퍼를 구동하는 상태 머신을 제어하는 상태 머신으로부터 분리하는 것이다. 이 방법에서, 신호 장애는 한 머신이 동기에서 벗어나게 할 수 있지만, 다른 것에는 거의 영향을 미치지 않는다. 예를 들어, VSYNC 는 사이퍼 엔진의 어드밴스를 제어하는 데 이용될 수 있고, CTL3는 스냅샷 카운터의 어드밴스를 제어하는 데 이용될 수 있다. 스냅샷이 사이퍼 엔진 사이클 내의 다른 상대적 지점에서 일어나면, Ri 시퀀스는 매우 다를 것이 고 이것은 즉시 명백해질 것이다.
다른 대안은 링크 완결성 체크가 일어날 때 신호를 보낼 수 있는 "인터럽트" 능력을 송신기 또는 수신기에게 부여하는 것이다. 이 기능은 일반적으로 이들 에크를 초기화하는 시스템의 요소(예를 들어, HDCP를 구현하는 시스템의 송신기_ 내에 있다. 이 방법은 인터럽트 레이턴시 타임이 항상 하나의 비디오 프레임보다 작을 때 잘 동작하며, 이는 여기에 어떤 스트레들링(straddling)도 없고, 수신기가 하나 이상의 프레임이 앞서가는 에러를 검출하는 것을 보증할 수 있기 때문이다. 고장이 VSYNC를 완전히 제거하는 것보다는 추가적인 VSYNC 에지를 야기할 수 있기 때문에 이것은 더욱 일반적인 경우일 것으로 예상된다. 이 방법은, 인터럽트 레이턴시 타임이 몇 배의 프레임에 걸쳐있고(이것이 보통과 달리 예상할 수 없다면), 또는 수신기 사이퍼 엔진이 하나 이상의 프레임 뒤처지면 잘 동작하지 않는다.
더 낳은 접근 방법은 몇 가지 형태의 외부 자극이 적용될 때만 송신기 및/또는 수신기가 스냅샷을 취하도록 설계하는 것이다. 이 방법으로, 송신기 및 수신기가 스냅샷을 항상 같은 시간에 취하는 것을 보증할 수 있다(따라서, 또한 사이퍼 엔진 상태의 어떤 모순도 강조할 수 있다). 예를 들어, 송신기가 송신기의 사이퍼 엔진과 수신기의 사이퍼 엔진 모두에 스냅샷의 요구를 전송하도록 하는 명령을 송신기로 제공한다. 그리고 송신기 및 수신기 모두는 적절한 동기 이벤트(VSYNC의 다음 리딩 에지 등)를 기다리고 그리고 나서 모두 스냅샷을 위한다. 그리고 나서, 송신기 및/또는 수신기는 오리지널 명령을 완성했다는 신호를 보낸다. 명령이 내려지는 다음 시간까지 새로운 스냅샷이 일어날 수 없기 때문에, 이 시점에서 시스 템(예를 들어, 시스템에 의해 구현되는 소프트웨어 도는 펌웨어)은 링크 완결성 체크를 수행할 수 있는 시간을 얻을 수 있다.
이 방법은 많은 이점을 갖는다. 첫 째로, 스냅샷이 항상 링크의 양측에서 동시에 일어난다. 둘 째로, 링크 완결성 체크는 다음 스냅샷 이전에 (프로토콜 안에 조립된 인터락(interlock)에 의해) 확실히 완료될 수 있다. 셋 째로, 링크 완결성 체크는 시스템의 필요에 맞춰 자주 또는 아주 가끔 행해질 수 있다. 이 레이트는 한 시기에서 다음 시기에도 필요한 만큼 변경될 수 있다. 이 마지막 사항에서, 링크 완결성 체크가 최소한 받아들일 수 있는 주기로 수행되는 것을 증명하기 위해 수신기 내에 "데드맨 타이머(deadman timer)"를 포함시키는 것이 유용하거나 바람직할 수 있다. 한편, 수신기가 데드맨 타이머를 포함시키도록 구성될 수 있지만, 송신기가 이를 포함하는 것은 일반적으로 바람직하다. 이는, 송신기가 일반적으로 보호되는 컨텐츠가 적당한 암호화 없는 시스템을 떠나지 않을 보증할 책임이 있고, 따라서 송신기는 적절한 체크 및 밸런스가 제 위치에 있음을 보정하는 논리적 지원자이기 때문이다.
본 발명의 다른 특징에 따르면, 본 발명의 시스템의 일 실시예에서의 수신기는, 송신기로부터 수신기로 전송된 데이터만을 이용하여. 송신기 및 수신기 내의 사이퍼 엔진들 사이의 동기가 손실되었는지를 직접 판단한다. 이러한 본 발명의 특징을 구현하는 바람직한 실시예에서, 송신기는 암호화된 비디오 데이터를 (액티브 비디오 주기 동안) TMDS 링크의 비디오 채널을 통해 수신기로 전송하고, 암호화된 오디오(또는 다른 보조 데이터)를 포함하는 패킷은 액티브 비디오 주기 사이의 구간에 비디오 채널을 통해 전송된다. 각 패킷은 헤더 및 2 이상의 서브-패킷을 포함하고, 각 패킷의 헤더는 (일반적으로 암호화되지 않는) 헤더 데이터 및 헤데 데이터에 대한 BCH 패리티 비트를 포함하며, 각 서브-패킷은 데이터 및 서브-패킷의 데이터에 대한 BCH 패리티 비트를 포함한다, 수신기는, 수신되고 복호화된 데이터 내에 일어나는 에러의 형태를 체크하고, 대부분의 에러가 전송 에러 인지 또는 HDCP 복호화 에러인지를 이 정보로부터 판단하도록 구성된다. 특히, 암호화된 데이터가 상술한 TERC4 인코딩 기술을 이용하여 인코딩 될 때, 수신기가 그 TERC4 인코딩 동작이 거의 없는(또는 전혀 없는) 비-골든 코드 수신을 검출하고 BCH 에러 정정 회로가 복호화된 서브패킷 데이터 내의 일관된 에러를 검출하고 정정하면, 수신기는 HDCP 복호화가 실패하였다고 결론짓는다. 이와 유사하게, 수신기가, (암호화된 데이터로 전송되고 수신기에서 복호화된) 서브패킷 데이터의 BCH 에러 정정 레이트 및 (비-암호화된 데이터로 전송된) 패킷 헤더 데이터 사이에 현저한 차기가 있다고 판단하면, 수신기는 HDCP 복호화가 실패했다고 결론짓는다. 수신기는 이러한 결론을 신뢰성있게 하는 단순한 프로세싱을 이용하도록 구현될 수 있다. 멀티 패킷을 통해(예를 들어, 비디오 필드 또는 프레임을 통해, 또는 소정 수의 픽셀 또는 소정 시간을 통해) 검출된 에러 레이트 정보(수신기에서 생성된다)를 필터링하는 것은 완벽한 또는 거의 완벽한 검출을 제공할 수 있다.
일반적인 구현에서, 송신기는 오디오 및 다른 보조 데이터를 운송하기 위해 (데이터 아일랜드에서) 자주 패킷을 전송한다. 이러한 패킷 각각은 바람직하게는 24-비트의 패킷 헤더 데이터와 4 개의 56-비트 서브패킷 데이터 블록을 포함한다. 수신기는 상기 패킷 헤더 데이터 상에 BCH(32, 24) 에러 검출 및 정정을 수행하고, 서브패킷 각각에 BCH(64, 56) 에러 검출 및 정정을 수행한다. 채널1 또는 채널 2 상으로 전송하기 위해 TMDS 코드 워드로 인코딩될 각각 4-비트 분량으로 HDCP 암호화를 수행하지만, 채널0으로 전송하기 위해 인코딩된 데이터에는 어떤 HDCP 암호화가 수행되지 않는다. 송신기는 채널0으로 전송될 데이터(패킷 헤더 데이터) 및 채널 1 및 2로 전송도리 데이터(서브패킷 데이터)에 TERC4 인코딩을 수행한다. 수신기는 상기 과정의 역과정을 수행한다: 채널0, 1 및 2 상으로 수신된 데이터의 TERC4 디코딩; 채널 1 및 2 상에 수신된 디코딩된 데이터의 HDCP 복호화; 채널0으로부터 디코딩된 데이터 및 채널1 및 2로부터 디코딩되고 복호화된 데이터의 BCH 에러 정정 및 검출; 및 역 패킷화(de-packetization)을 수행한다.
수신기 내의 이러한 몇 가지 동작을 구현하기 위한 회로는 일반적으로 몇 r가지 형태의 에러를 검출 (그리고 때때로 정정)하는 능력을 갖는다(또는 이러한 능력을 갖도록 쉽게 변형될 수 있다). 이것은 발생하는 에러에 대한 적당한 고장지점(point-of-failure)을 수신기가 검출할 수 있게 한다. 전송 에러는 일반적으로 수신된 값이 전송된 값의 가능한 값 중 하나(즉, 골든 코드 워드 중 하나)에 직접 매칭되는 지를 판단함으로써 TERC4 디코딩 회로에 의해 검출된다. 복호화 에러를 야기하는, HDCP 동기 손실(loss-of-synchronization) 에러는 BCH 에러 검출 및 정정 회로의 일반적인 구현에 의해 쉽게 검출될 수 있다. TERC4 디코딩 회로가 낮은 레벨의 에러를 나타낼 때 BCH 에러 검출 및 정정 회로가 낮은 레벨의 에러를 나타내면, 이것은 모든 또는 대부분의 에러가 HDCP 복호화 과정에서 일어났음을 강하게 제시한다.
패킷 헤더 데이터가 암호화되지 않았지만 서브패킷 데이터가 송신기에 의해 암호화되었을 때, 수신기는 이들 두 타입의 데이터에 대한 에러 레이트를 비교함으로써 복호화가 실패하였는지를 판단할 수 있다. 서브패킷 데이터에 대한 BCH 에러 레이트는 패킷 헤더 데이터에 대한 BCH 에러 레이트보다 훨씬 높고, 이것은 또한, 복호화가 주된 원인이라는 것을 제시한다.
2 이상의 에러 레이트 검출 및 비교 메커니즘을 하나의 수신기로 집적하는 것은, 수신기가 복호화 실패를 검출하고, 복호화 회로가 정상적으로 기능한다고 "잘못된 긍정(false positive)" 결혼에 도달하지 않으며 수신기가 그 기능이 실패하였다고 결론짓는 것에 대한 강한 정도의 신뢰를 제공할 수 있다.
다른 실시예들에서, 알려진 데이터 패턴이 송신기로 제공되거나, 존재하는 데이터가 소정의 방법으로 변형되고, 그 결과가 암호화되고 전송된다. 그리고, 수신기가 데이터를 복호화할 때 예상되는 결과인지를 체크한다. 수신기가 예상된 결과를 찾으면 상기 복호화는 올바르게 동작하고 있다고 여겨질 수 있다. 그렇지 않으면 암호화/복호화 기능이 올바르게 동작하지 않는다고 여긴다. 이러한 방법은 매우 직접적인 이점을 갖는다: 이 방법은 Ri 등의 결과 벡터로부터의 간접적인 증거에 의존하지 않는다. 이 방법은 또한, 존재하는 프로토콜과 역으로 비교 가능하며, 종래의 HDCP 시스템에 작은 량의 외부 또는 내부 논리부 만이 추가되며, 링크 동작에 다른 변화는 주지 않을 수 있다. 예를 들어, 모든 프레임의 최초 2 픽셀이 각각 "A" 및 "B"라고 정의된다고 여기자. 이 픽셀들은 스크린의 위쪽 좌측 부분에 아주 작은 부분으로 표시된다. 이들은 백그라운드 색일 수 있고, 주기적으로 또는 아주 가끔 동일한 칼라일 수 있다. 송신기는 변경된 비디오를 암호화하고 전송하기 전에, 이들이 항상 픽셀 A 및 B가 같도록 픽셀 A 및 B의 가장 무의미한 비트를 수정하도록 구성될 수 있다. 예를 들어, 송신기는 A red[0]=B red[0], A green[0]= B green[0], A blue[0]=B blue[0]가 되도록 픽셀 A 및 B의 세 칼라 성분 각각에서 bit[0]을 변형할 수 있다. 정확한 알고리즘이 다향한 구현예로 변경될 수 있고, (화면 상에 가장 적은 가능한 임팩트를 갖도록) 적응될 수 있다. 필요한 것은 마지막 결과가 소정(알려진) 형태를 갖는 변형 데이터라는 것뿐이다.
변형된 프레임이 암호화되고 복호화되면, 수신기는 복호화된 데이터에서 소정의 패턴을 체크할 수 있다. 수신기는 링크 내의 작은 수의 비트 에러를 카운트하는 방식으로 체크를 해야한다. 인식된 결과에 대해 문턱값을 설정함으로써 체크를 할 수 있다. 예를 들어, 상술한 3 요건 중 2 개만 충족해도 충분하다. 또는 이것은 프레임 몇 개에 대한 결과를 평균할 수 있다. 다른 경우, 수신기는 암호화/목호화 기능이 정상적으로 동작할 때에만 정상적인 값을 찾도록 구성되어야 한다. 수신기는 이 결과를 몇 가지 방법으로 호스트로 다시 신호하여 보낼 수 있다. 이것을 하기 위한 한 가지 방법은 레지스터의 비트를 설정하는 직접적인 방법이다. 이 결과를 신호로 보내는 다른 방법은 간접적으로 (예를 들어, Ri 값을 고의로 바꾸는 것 등) 하는 것이다. 후자의 방법은, 어떤 링크(어떤 송신기-수신기 쌍 사이의 링크)의 중단이 호스트 쪽으로 업스트림을 전달하도록 용이하게 만들어 질 수 있는, 중계기 환경에서 잘 동작하는 이점을 갖는다.
이전 2 문단에서 설명한 방법은 다음 방법으로 역 호환성을 갖는다: "새로운(new)" 송신기는 "이전의(old)" 수신기로 어떤 불리한 영향을 미치지 않고 이를 구현할 수 있다; "새로운" 수신기는 이것을 구현할 수 있지만, "이전의" 송신기과 같이 이용될 때 체크를 인에이블 할 수 없다; "이전의" 송신기 및 수신기는 적절한 방법으로 데이터 경로에 단순히 도청함으로써, 외부 논리부에 이 기능을 용이하게 추가할 수 있다.
역 호환성이 중요하지 않으면, 알려진 데이터 패턴은 비디오 화면에 어떤 방법으로도 영향을 주지 않는 다른 방법으로 구현될 수 있다. 예를 들어, 특정한 "테스트" 패킷이 데이터 스트림 안으로 삽입될 수 있고, 또는 "테스트" 데이터가 다른 패킷 또는 위치에 삽입될 수 있다. 비디오 라인은 또한, "테스트" 데이터를 수용하기 위해 늘어날 수도 있고, 그런 다음 수신기에서 원래 크기로 줄어줄 수 있다.
본 발명의 특정 형태가 여기서 도시되고 설명되었지만, 본 발명은 여기에 설명되고 도시된 특정 실시예에만 국한되는 것이 아닌 청구항에 의해서 정의됨을 이해해야 한다.

Claims (134)

  1. 수신기;
    송신기; 및
    상기 송신기 및 수신기 사이에 하나 이상의 비디오 채널을 포함하는 시리얼 링크로, 상기 송신기는 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 생성하고, 액티브 비디오 주기 동안 상기 비디오 채널을 통해 수신기로 상기 인코딩된 비디오 데이터를 전송하고, 데이터 아일랜드 동안 상기 링크를 통해 상기 수신기로 인코딩된 보조 데이터를 포함하는 패킷을 전송하도록 구성되며, 여기서 상기 데이터 아일랜드 각각은 상기 어느 액티브 비디오 주기와 동시에 일어나지도 또는 겹치지도 않는 타임 구간인, 시리얼 링크를 포함하며,
    여기서 상기 송신기는 제어 데이터 주기 동안 상기 비디오 채널을 통해 수신기로 제어 데이터를 전송하도록 구성되고, 상기 제어 데이터 주기는 상기 어느 데이터 아일랜드와 동시에 일어나지도 또는 겹치지도 않으며, 상기 어느 액티브 비디오 주기와 동시에 일어나지도 겹치지도 않는 것을 특징으로 하는 통신 시스템.
  2. 제 1 항에 있어서,
    상기 인코딩된 보조 데이터는 인코딩된 오디오 데이터를 포함하는 것을 특징으로 하는 통신 시스템.
  3. 제 1 항에 있어서,
    상기 송신기는 비디오 데이터 및 보조 데이터를 수신하도록 연결되고 상기비디오 및 보조 데이터를 인코딩함으로써 상기 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 생성하도록 구성되고, 상기 인코딩된 보조 데이터는 선택된 코드 워드의 시퀀스이며, 상기 선택된 코드 워드 각각은 코드 워드 풀 세트의 로버스트한 서브세트의 멤버이고, 상기 인코딩된 비디오 데이터는 상기 코드 워드의 풀 세트에 의해 결정되고, 상기 풀 세트는 상기 코드 워드의 소정 분리된 클러스터들을 포함하며, 상기 보조 데이터는 종래의 풀 세트의 코드 워드의 시퀀스로 인코딩될 수 있고, 상기 선택된 코드 워드의 시퀀스는 종래의 코드 워드 시퀀스보다 링크를 통한 전송 도중 심볼-간 간섭에 덜 민감하며, 여기서, 상기 로버스트 서브세트는 상기 풀 세트의 바람직한 워드로 구성되고, 상기 풀 세트의 바람직한 워드가 아닌 상기 코드 워드는 비-바람직한 워드이며, 상기 바람직한 워드 각각은 입력 데이터 값을 나타내고, 상기 클러스터 각각은 하나 이상의 상기 바람직한 워드로 구성된 바람직한 워드 세트를 포함하고, 또한 하나 이상의 클러스터들은 하나 이상의 비-바람직한 워드를 포함하고, 상기 바람직한 워드 세트 각각은 다른 입력 데이터 값을 나타내고, 상기 수신기는 상기 클러스터 중 하나의 멤버인 상기 인코딩된 보조 데이터의 수신된 코드 워드 각각을 상기 클러스터의 중 상기 하나의 바람직한 워드 세트에 의해 결정된 입력 데이터 값으로 매핑하도록 구성되는 것을 특징으로 하는 통신 시스템.
  4. 제 1 항에 있어서,
    상기 제어 데이터 주기 동안 전송된 제어 데이터는 동기화 워드를 포함하며, 상기 패킷 각각은 하나 이상의 동기 비트 타임 슬롯을 포함하며, 상기 송신기는 상기 데이터 아일랜드 동안 상기 동기 비트 타임 슬롯 각각에서 동기 비트를 전송하도록 구성되는 것을 특징으로 하는 통신 시스템.
  5. 제 1 항에 있어서,
    상기 패킷 각각은 하나 이상의 수직 동기 비트 타임 슬롯 및 하나 이상의 수평 동기 비트 타임 슬롯을 포함하고, 상기 송신기는 데이터 아일랜드 동안 상기 수직 동기 비트 타임 슬롯 각각 내에 수직 동기 비트를 전송하고, 상기 수평 동기 비트 타임 슬롯 각각 내에 수평 동기 비트를 전송하는 것을 특징으로 하는 통신 시스템.
  6. 제 1 항에 있어서,
    상기 링크는 2 이상의 비디오 채널을 포함하고, 상기 송신기는 상기 액티브 비디오 주기 동안 상기 비디오 채널을 통해 상기 인코딩된 비디오 데이터를 전송하고, 상기 데이터 아일랜드 동안 상기 비디오 채널을 통해 상기 패킷을 전송하고, 상기 제어 데이터 주기 동안 상기 비디오 채널을 통해 상기 제어 데이터를 전송하도록 구성되는 것을 특징으로 하는 통신 시스템.
  7. 제 6 항에 있어서,
    상가 제어 데이터는 하나 이상의 아일랜드 프리앰블 워드 및 하나 이상의 비디오 프리앰블 워드를 포함하고, 상기 송신기는 하나 이상의 상기 아일랜드 프리앰블 워드를 상기 비디오 채널 각각을 통해 상기 데이터 아일랜드 각각에 대한 프리앰블로서 전송하고 하나 이상의 상기 비디오 프리앰블 워드를 상기 비디오 채널 각각을 통해 상기 액티브 비디오 주기 각각에 대한 프리앰블로서 전송하도록 구성되고, 전송된 각 아일랜드 프리앰블 워드는 전송된 각 비디오 프리앰블 워드와는 별개인 것을 특징으로 하는 통신 시스템.
  8. 제 7 항에 있어서,
    상기 송신기는 동일한 아일랜드 프리앰블 워드의 시퀀스를 상기 데이터 아일랜드 각각에 대한 프리앰블로서 전송하고 동일한 비디오 프리앰블 워드의 시퀀스를 상기 액티브 비디오 주기 각각에 대한 프리앰블로서 전송하도록 구성되는 것을 특징으로 하는 통신 시스템.
  9. 제 7 항에 있어서,
    상기 링크는 TMDS 링크이며, 상기 각 아일랜드 프리앰블 워드 및 상기 각 비디오 프리앰블 워드는 천이-최대화 TMDS 코드 워드이며, 상기 인코딩된 비디오 데이터 및 상기 인코딩된 보조 데이터는 천이-최소화 TMDS 코드 워드인 것을 특징으로 하는 통신 시스템.
  10. 제 9 항에 있어서, 상기 송신기는 8 개 이상의 동일한 아일랜드 프리앰블 워드의 시퀀스를 상기 데이터 아일랜드 각각에 대한 프리앰블로서 전송하고 8 개 이상의 동일한 비디오 프리앰블 워드의 시퀀스를 상기 액티브 비디오 주기 각각에 대한 프리앰블로서 전송하도록 구성되는 것을 특징으로 하는 통신 시스템.
  11. 제 6 항에 있어서,
    상기 송신기는 상기 데이터 아일랜드 각각에서 상기 비디오 채널 각각을 통해 리딩 아일랜드 가드 밴드, 그 뒤로 하나 이상의 패킷의 데이터, 그 뒤로 트레일링 아일랜드 가드 밴드를 전송하도록 구성되는 것을 특징으로 하는 통신 시스템.
  12. 제 11 항에 있어서,
    각 리등 아일랜드 가드 밴드는 하나 이상의 가드 밴드 워드로 구성되고, 상기 제어 데이터 주기 동안 전송된 상기 제어 데이터는 하나 이상의 아일랜드 프리앰블 워드를 포함하며, 상기 송신기는 상기 비디오 채널들 각각을 통해 하나 이상의 상기 아일랜드 프리앰블 워드를 상기 데이터 아일랜드 각각에 대한 프리앰블로서 전송하도록 구성되고, 상가 아일랜드 프리앰블 워드 각각은 상기 리딩 아일랜드 가드 밴드 각각의 각 가드 밴드 워드와 별개인 것을 특징으로 하는 통신 시스템.
  13. 제 11 항에 있어서,
    상기 송신기는, 상기 액티브 비디오 주기 각각에서, 상기 비디오 채널 각각을 통해, 비디오 가드 밴드 및 그 뒤로 인코딩된 비디오 데이터 버스트를 전송하도록 구성되는 것을 특징으로 하는 통신 시스템.
  14. 제 13 항에 있어서,
    각 리딩 아일랜드 가드 밴드 및 각 비디오 가드 밴드는 하나 이상의 가드 밴드 워드로 구성되고, 상기 제어 데이터 주기 동안 전송된 상기 제어 데이터는 하나 이상의 아일랜드 프리앰블 워드 및 하나 이상의 비디오 프리앰블 워드를 포함하고, 상기 송신기는 하나 이상의 상기 아일랜드 프리앰블 워드를 상기 비디오 채널 각각을 통해 상기 데이터 아일랜드 각각에 대한 프리앰블로서 전송하고 하나 이상의 비디오 프리앰블 워드를 상기 액티브 비디오 주기 각각에 대한 프리앰블로서 전송하도록 구성되고, 전송된 각 아일랜드 프리앰블 워드는 전송된 각 비디오 프리앰블 워드 및 상기 리딩 아일랜드 가드 밴드 각각의 각 가드 밴드 워드와 별개이며, 전송된 각 비디오 프리앰블 워드는 상기 비디오 가드 밴드 각각에 대한 각 가드 밴드 워드와는 별개인 것을 특징으로 하는 통신 시스템.
  15. 제 14 항에 있어서,
    상기 링크는 TMDS 링크이며, 상기 각 아일랜드 프리앰블 워드 및 상기 각 비디오 프리앰블 워드는 천이-최대화 TMDS 코드 워드이며, 상기 각 가드 밴드 워드는 천이-최소화 TMDS 코드 워드이고, 상기 인코딩된비디오 데이터 및 상기 인코딩된 보조 데이터는 천이-최소화 TMDS 코드 워드인 것을 특징으로 하는 통신 시스템.
  16. 제 1 항에 있어서,
    상기 패킷 각각은 헤더, 2 이상의 서브-패킷, 및 다수의 소정의 포맷들로부터 선택된 포맷을 포함하고, 각 패킷의 상기 헤더는 헤더 데이터 및 상기 헤더 데이터에 대한 BCH 패리티 비트를 포함하고, 상기 헤더 데이터는 상기 패킷의 포맷을 나타내는 데이터를 포함하고, 상기 서브-패킷 각각은 서브-패킷 데이터 및 상기 서브-패킷 데이터에 대한 BCH 패리티 비트를 포함하는 것을 특징으로 하는 통신 시스템.
  17. 제 16 항에 있어서,
    상기 패킷 각각은 상기 헤더를 나타내는 코드 워드, 상기 헤더 데이터에 대한 상기 BCH 패리티 비트, 상기 서브-패킷 데이터, 및 상기 서브-패킷 데이터에 대한 상기 BCH 패리티 비트로 구성되는 것을 특징으로 하는 통신 시스템.
  18. 제 16 항에 있어서,
    상기 송신기는 상기 서브-패킷 각각의 상기 서브-패킷 데이터 사이의 알려진 위치에 소정의 비트들을 삽입하고, 상기 서브-패킷 각각에 대한 상기 소정 비트를 포함하는 상기 서브-패킷 데이터로부터 상기 서브-패킷 각각에 대한 상기 BCH 패리티 비트를 생성하도록 구성되는 것을 특징으로 하는 통신 시스템.
  19. 제 1 항에 있어서,
    상기 패킷 각각은 헤더, 2 이상의 서브-패킷, 및 다수의 소정의 포맷들로부터 선택된 포맷을 포함하고, 각 패킷의 상기 헤더는 상기 패킷의 포맷을 나타내는 것을 특징으로 하는 통신 시스템.
  20. 제 19 항에 있어서,
    상기 링크는 적어도 제1 비디오 채널, 제2 비디오 채널, 및 제3 비디오 채널을 포함하고, 상기 송신기는 상기 각 액티브 비디오 주기 동안 상기 제1 비디오 채널, 상기 제2 비디오 채널, 및 상기 제3 비디오 채널 각각을 통해 상기 수신기로 상기 인코딩된 비디오 데이터의 다른 부분을 전송하도록 구성되고,
    상기 송신기는 상기 패킷 각각의 헤더를 나타내는 코드 워드를 상기 제1 비디오 채널을 통해 상기 수신기로 전송하고, 상기 패킷 각각의 서브-패킷을 나타내는 코드 워드를 상기 각 데이터 아일랜드 동안 상기 제2 비디오 채널 및 상기 제3 비디오 채널을 통해 상기 수신기로 전송하도록 구성되는 것을 특징으로 하는 통신 시스템.
  21. 제 20 항에 있어서,
    상기 각 패킷의 헤더는 헤더 데이터 및 상기 헤더 데이터에 대한 BCH 패리티 비트를 포함하고, 상기 서브-패킷 각각은 서브-패킷 데이터 및 상기 서브-패킷 데 이터에 대한 BCH 패리티 비트를 포함하고, 그리고
    상기 송신기는 상기 각 서브-패킷의 서브-패킷 데이터에 대한 상기 BCH 패리티 비트의 다른 서브세트를 포함하는, 서브-세트 각각의 다른 부분을 나타내는 코드 워드들을, 상기 각 데이터 아일랜드 동안 상기 제2 비디오 채널 및 상기 제3 비디오 채널 각각을 통해 전송하도록 구성되는 것을 특징으로 하는 통신 시스템.
  22. 제 21 항에 있어서,
    상기 링크는 TMDS 링크이며, 상기 인코딩된 비디오 데이터 및 인코딩된 보조 데이터는 TMDS 코드 워드인 것을 특징으로 하는 통신 시스템.
  23. 제 22 항에 있어서,
    상기 각 헤더는 S 개의 패리티 비트를 포함하는 R 개의 비트로 구성되고, 상기 각 패킷은 T 개의 서브-패킷들을 포함하고, 상기 서브-패킷 각각은 S 개의 패리티 비트를 포함하는 U 개의 비트로 구성되며, 상기 송신기는 픽셀 클록 사이들 단위로 상기 제1 비디오 채널을 통해 상기 패킷 각각의 V 개 비트를 나타내는 TMDS 코드 워드를 전송하고, 픽셀 클록 사이클 단위로 상기 제2 비디오 채널을 통해 상기 패킷의 W 개 비트를 나타내는 TMDS 코드 워드를 전송하고, 픽셀 클록 사이클 단위로 상기 제3 비디오 채널을 통해 상기 패킷의 X 개 비트를 나타내는 TMDS 코드 워드를 전송하도록 구성되는 것을 특징으로 하는 통신 시스템.
  24. 제 23 항에 있어서,
    R=32, S=8, T=4, U=64, V=1. W=4, 및 X=4 인 것을 특징으로 하는 통신 시스템.
  25. 제 21 항에 있어서,
    상기 각 헤더는 S 개의 패리티 비트를 포함하는 R 개의 비트로 구성되고, 상기 각 패킷은 T 개의 서브-패킷들을 포함하고, 상기 서브-패킷 각각은 S 개의 패리티 비트를 포함하는 U 개의 비트로 구성되며, 상기 송신기는 픽셀 클록 사이들 단위로 상기 제1 비디오 채널을 통해 상기 패킷 각각의 V 개 비트를 나타내는 코드 워드를 전송하고, 픽셀 클록 사이클 단위로 상기 제2 비디오 채널을 통해 상기 패킷의 W 개 비트를 나타내는 코드 워드를 전송하고, 픽셀 클록 사이클 단위로 상기 제3 비디오 채널을 통해 상기 패킷의 X 개 비트를 나타내는 코드 워드를 전송하도록 구성되는 것을 특징으로 하는 통신 시스템.
  26. 제 19 항에 있어서,
    각 패킷의 상기 헤더는 상기 패킷의 포맷을 나타내는 패킷 타입 코드, 및 패킷-특정 데이터를 나타내는 하나 이상의 워드를 포함하는 것을 특징으로 하는 통신 시스템.
  27. 제 19 항에 있어서,
    상기 패킷 중 하나 이상은 널 패킷이고, 상기 널 패킷 각각의 헤더는 소정의 타임 슬롯 내의 널 패킷 코드를 포함하며, 상기 수신기는 상기 널 패킷 코드가 아닌 상기 널 패킷 각각의 모든 데이터를 정의되지 않은 것으로 처리하도록 구성되는 것을 특징으로 하는 통신 시스템.
  28. 제 19 항에 있어서,
    상기 패킷 중 하나 이상은 오디오 샘플 패킷이고, 상기 오디오 샘플 패킷 각각의 헤더는 소정의 타임 슬롯 내의 오디오 샘플 패킷 코드를 포함하며, 상기 수신기는 하나 이상의 오디오 데이터 출력 스트림, 상기 오디오 샘플 패킷의 하나 이상의 상기 서브-패킷 내의 데이터에 의해 결정되는 각 오디오 샘플을 포함하도록 구성되는 것을 특징으로 하는 통신 시스템.
  29. 제 28 항에 있어서,
    상기 각 오디오 샘플 패킷의 헤더 또한, 하나 이상의 다른 소정의 타임 슬롯 내에, 하나 이상의 오디오 샘플을 포함하는 각 패킷의 서브-패킷을 식별하는, 데이터를 포함하는 것을 특징으로 하는 통신 시스템.
  30. 제 29 항에 있어서,
    상기 오디오 샘플 패킷 각각의 헤더는, 하나 이상의 다른 소정의 타임 슬롯 내에, 플랫라인 오디오 샘플을 포함하는 상기 패킷의 서브-패킷 각각을 식별하는, 부가적인 데이터를 포함하는 것을 특징으로 하는 통신 시스템.
  31. 제 28 항에 있어서,
    상기 오디오 샘플 패킷 각각의 헤더는 또한, 하나 이상의 다른 소정의 타임 슬롯 내에, 플랫라인 오디오 샘플을 포함하는 상기 패킷의 서브-패킷 각각을 식별하는 데이터를 포함하는 것을 특징으로 하는 통신 시스템.
  32. 제 19 항에 있어서,
    상기 패킷 중 하나 이상은 오디오 클록 재생성 패킷이며, 상기 오디오 클록 재생성 패킷의 헤더는 소정 타임 슬롯 내에 오디오 클록 재생성 패킷 코드를 포함하고, 상기 수신기는 하나 이상의 다른 패킷 내에 전송된 인코딩된 오디오 데이터를 위한 클록을 재생성하기 위해 상기 오디오 클록 재생성 패킷 각각의 하나 이상의 서브-패킷 내의 데이터를 이용하도록 구성되는 것을 특징으로 하는 통신 시스템.
  33. 제 32 항에 있어서,
    상기 오디오 클록 재생성 패킷 중 하나 이상의 서브-패킷은 사이클 타임 스탬브 값인 것을 특징으로 하는 통신 시스템.
  34. 제 19 항에 있어서,
    하나 이상의 패킷은 구성 정보 패킷이며, 상기 구성 정보 패킷 각각의 헤더는 소정 타임 슬롯 내에 정보 패킷 코드를 포함하고, 상기 수신기는 상기 링크를 통해 전송될 몇 개 이상의 인코딩된 비디오 데이터 및 인코딩된 보조 데이터에 응답하여 출력 데이터를 생성하기 위한 상기 수신기의 회로를 구성하기 위해 상기 구성 정보 패킷 각각의 하나 이상의 서브-패킷 내의 데이터를 이용하도록 구성되는 것을 특징으로 하는 통신 시스템.
  35. 제 34 항에 있어서,
    상기 구성 정보 패킷의 서브-패킷은 EIA/CEA-861B InfoFrame의 몇 가지 이상의 정보를 나타내는 것을 특징으로 하는 통신 시스템.
  36. 제 34 항에 있어서,
    상기 구성 정보 패킷은 패킷으로 전송될 인코딩된 오디오 데이터의 포맷을 나타내는 것을 특징으로 하는 통신 시스템.
  37. 제 34 항에 있어서,
    상기 구성 정보 패킷은 상기 링크를 통해 전송될 인코딩된 비디오 데이터의 포맷을 나타내는 것을 특징으로 하는 통신 시스템.
  38. 제 37 항에 있어서,
    비디오 정보 패킷은 상기 인코딩된 비디오가 RGB 포캣, YCbCr 4:4:4 포맷, 또는 YCbCr 4:2:2 포맷으로 전송되는 지를 나타내는 데이터를 포함하는 것을 특징으로 하는 통신 시스템.
  39. 제 34 항에 있어서,
    상기 송신기는 상기 송신기에 의해 결정된 포맷으로 상기 구성 정보 패킷 각각을 생성하도록 구성되는 것을 특징으로 하는 통신 시스템.
  40. 제 34 항에 있어서,
    상기 송신기는 상기 수신기가 수신하도록 구성된 하나 이상의 패킷 포맷을 나타내는 상기 수신기로부터의 하나 이상의 신호에 응답하여 상기 송신기에 의해 결정된 포맷으로 상기 구성 정보 패킷을 생성하도록 구성되는 것을 특징으로 하는 통신 시스템.
  41. 제 40 항에 있어서,
    상기 송신기 및 수신기는, 상기 송신기가 상기 구성 정보 패킷 각각을 생성하는 포맷을 제어하기 위해 서로 2-비트 코드를 전송하고 수신하도록 구성되는 것을 특징으로 하는 통신 시스템.
  42. 제 19 항에 있어서,
    상기 송신기는 호스트-접속가능 레지스터 공간을 포함하고, 상기 송신기는 상기 레지스터로부터 하나 이상의 비트를 판독하고 상기 레지스터 공간으로부터 판독된 상기 비트에 응답하여 하나 이상의 패킷을 생성하도록 구성되는 것을 특징으로 하는 통신 시스템.
  43. 제 19 항에 있어서,
    상기 수신기는 호스트-접속가능 레지스트 공간을 포함하고, 상기 수신기는 상기 레지스터 공간에 하나 이상의 패킷으로부터 추출된 몇 개 이상의 데이터를 로딩하도록 구성되는 것을 특징으로 하는 통신 시스템.
  44. 제 6 항에서,
    상기 링크는 제1 비디오 채널, 제2 비디오 채널, 제3 비디오 채널을 포함하고,
    상기 송신기는 상기 인코딩된 비디오 데이터를 YCbCr 4:2:2 포맷으로 전송하고,
    상기 액티브 비디오 주기 각각의 각 홀수 픽셀 클록 사이클 동안, 2 개의 연속된 Cb 샘플 및 각 홀수 Y 샘플의 제1 부분을 나타내는 코드 워드를 상기 제1 비디오 채널 및 상기 제3 비디오 채널을 통해 전송하고, 각 홀수 Y 샘플의 제2 부분을 나타내는 코드 워드를 상기 제2 비디오 채널을 통해 전송하고,
    상기 액티브 비디오 주기 각각의 각 짝수 픽셀 클록 사이클 동안, 2 개의 연 속된 Cr 샘플 및 각 짝수 Y 샘플의 제1 부분을 나타내는 코드 워드를 상기 제1 비디오 채널 및 상기 제3 비디오 채널을 통해 전송하고, 각 짝수 Y 샘플의 제2 부분을 나타내는 코드 워드를 상기 제2 비디오 채널을 통해 전송하도록 구성된 통신 시스템.
  45. 제 1 항에 있어서,
    상기 링크는 2 이상의 비디오 채널을 포함하고, 상기 송신기는 비디오 데이터 및 보조 데이터를 수신하도록 연결되고, 상기 비디오 데이터 및 보조 데이터를 암호화함으로써 암호화된 비디오 데이터 및 암호화된 보조 데이터를 생성하도록 구성되고, 상기 암호화된 비디오 데이터 및 암호화된 보조 데이터를 인코딩함으로써 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 생성하도록 구성되며,
    상기 수신기는 상기 링크를 통해 수신된 상기 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 디코딩함으로써 암호화된 데이터를 복원하고, 상기 복원된 암호화 데이터를 복호화하도록 구성되며,
    상기 송신기는 하나 이상의 상기 각 제어 데이터 주기 동안 2 이상의 비디오 채널을 통해 복호화 제어 데이터를 전송하도록 구성되고, 여기서 상기 각 제어 데이터 주기 동안 전송된 상기 복호화 제어 데이터는 픽셀 클록 사이클 동안 상기 비디오 채널 중 하나를 통해 전송된 하나 이상의 제어 워드 및 상기 픽셀 클록 사이클 동안 상기 비디오 채널 중 다른 하나를 통해 전송된 하나 이상의 다른 제어 워드를 포함하고, 및
    상기 수신기는 상기 각 제어 데이터 주기 동안 전송된 상기 복호화 제어 데이터에 응답하여 키 계산 동작을 초기화하도록 구성되는 것을 특징으로 하는 통신 시스템.
  46. 제 45 항에 있어서,
    상기 시리얼 링크는 TMDS 링크이고, 상기 인코딩된 비디오 데이터 및 인코딩된 보조 데이터는 TMDS 코드 워드이며, 상기 각 픽셀 클록 사이클 동안 전송된 상기 복호화 제어 데이터는 2 제어 비트, CTL0 및 CTL1의 특정 값을 나타내고, 상기 비디오 채널들 중 하나를 통해 전송된 제1 TMDS 제어 워드 및, 2 개의 다른 제어 비트 CTL2 및 CTL3의 특정 값을 나타내고, 상기 비디오 채널들 중 다른 하나를 통해 전송된 제2 TMDS 제어 워드를 포함하는 것을 특징으로 하는 통신 시스템.
  47. 제 45 항에 있어서,
    상기 시리얼 링크는 TMDS 링크이며, 상기 송신기는 상기 TMDS 링크의 비디오 채널을 통해 상기 인코딩된 비디오 데이터 프레임들을 전송하도록 구성되고, 상기 각 픽셀 클록 사이클 동안 전송된 상기 복호화 제어 데이터는 제1 TMDS 제어 워드 및 제2 TMDS 제어 워드를 포함하고, 상기 수신기는 상기 각 프레임들의 전송 동안 단일 제어 데이터 주기 동안의 소정 타임 슬롯 내에 소정 최소 수의 연속된 각 픽셀 클록 사이클 동안 상기 제1 TMDS 제어 워드 및 상기 제2 TMDS 제어 워드 모드를 검출하는 것에만 응답하여 각 상기 키 계산 동작을 초기화하도록 구성되는 것을 특 징으로 하는 통신 시스템.
  48. 제 1 항에 있어서,
    상기 송신기는 픽셀 클록에 응답하여 상기 비디오 채널을 통해 상기 인코딩된 비디오 데이터를 나타내는 코드 워드를 전송하고 상기 픽셀 클록에 응답하여 상기 링크를 통해 상기 패킷을 나타내는 코드 워드를 전송하도록 구성되며, 상기 송신기는 상기 인코딩된 비디오 데이터의 픽셀을 나타내는 각 코드 워드를 상기 비디오 채널을 통해 반복적으로 전송하는 픽셀 반복 모드에서 동작 가능한 것을 특징으로 하는 통신 시스템.
  49. 제 1 항에 있어서,
    상기 송신기는 상기 인코딩된 비디오 데이터를 나타내는 코드 워드가 제1 주파수를 갖는 픽셀 클록에 응답하여 상기 비디오 채널을 통해 전송되는 비-픽셀(non-pixel) 반복 모드에서 동작 가능하고, 상기 픽셀 반복 모드에서의 상기 송신기는 상기 제1 주파수보다 더 큰 제2 주파수를 갖는 픽셀 클록에 응답하여 상기 인코딩된 비디오 데이터를 나타내는 코드 워드를 상기 비디오 채널을 통해 전송하는 것을 특징으로 하는 통신 시스템.
  50. 제 1 항에 있어서,
    상기 송신기는 상기 제어 데이터 주기 동안 상기 비디오 채널을 통해 상기 제어 데이터를 나타내는 코드 워드들을 전송하도록 구성되고, 상기 수신기는 상기 코드 워드들 중 하나의 소정 최소 수의 반복을 검출할 때에만 상기 코드 워드들 중의 상기 하나에 응답하도록 구성되는 것을 특징으로 하는 통신 시스템.
  51. 제 1 항에 있어서,
    상기 송신기는 상기 제어 데이터 주기 동안 상기 비디오 채널을 통해 상기 제어 데이터를 나타내는 코드 워드들을 전송하도록 구성되고, 상기 수신기는 상기 제어 데이터 주기들 중 하나의 소정 타임 슬롯 내의 상기 코드 워드들 중 하나의 소정 최소 수의 반복을 검출할 때에만 상기 코드 워드들 중의 상기 하나에 응답하도록 구성되는 것을 특징으로 하는 통신 시스템.
  52. 제 1 항에 있어서,
    상기 수신기는, 상기 패킷들로부터 상기 인코딩된 보조 데이터를 나타내는 코드 워드들을 복원하고, 상기 코드 워드들을 디코딩함으로써 상기 코드 워드들로부터 보조 데이터를 복원하고, 상기 복원된 보조 데이터에 에러 정정을 수행하도록 구성되고, 상기 에러 정정은 하나 이상의 버블 정정 및 보간법(interpolation)을 포함하는 것을 특징으로 하는 통신 시스템.
  53. 제 1 항에 있어서,
    상기 수신기는 상기 패킷드로부터 상기 인코딩된 보조 데이터를 나타내는 코 드 워드들을 복원하고, 상기 복원된 코드 워드들에 에러 정정을 수행함으로써 정정된 코드 워드들을 생성하고, 상기 정정된 코드 워드들을 디코딩함으로써 상기정정도된 코드 워드들로부터 보조 데이터를 복원하도록 구성되며, 상기 에러 정정은 하나 이상의 버블 정정 및 보간법을 포함하는 것을 특징으로 하는 통신 시스템.
  54. 제 1 항에 있어서,
    상기 송신기는 제1 테스트 패턴을 인가하도록 구성된 제1 테스트 패턴 생성기를 포함하고, 상기 수신기는 상기 제1 테스트 패턴과 동일한 제2 테스트 패턴을 인가하도록 구성된 제2 테스트 패턴 생성기를 포함하며, 상기 송신기 및 수신기는 상기 제1 테스트 패턴 생성기와 상기 제2 테스트 패턴 생성기가 상기 시리얼 싱크 상의 에러 레이트를 나타내는 테스트 데이터를 생성하도록 제어되는 테스트 모드에서 동작 가능한 것을 특징으로 하는 통신 시스템.
  55. 제 54 항에 있어서,
    상기 송신기는 상기 제1 테스트 패턴을 인코딩하고 상기 테스트 모드 동안 상기 비디오 채널을 통해 전송하도록 구성되고, 상기 송신기는 상기 테스트 모드 동안 상기 제2 테스트 패턴 생성기의 동작을 제어하도록 구성되며, 상기 수신기는 상기 테스트 모드 동안 상기 테스트 데이터를 생성하도록 구성되는 것을 특징으로 하는 통신 시스템.
  56. 제 54 항에 있어서,
    상기 제1 테스트 패턴 생성기 및 상기 제2 테스트 패턴 생성기 각각은 의사-랜덤 테스트 패턴을 생성하는 선형 피드백 쉬프트 레지스터(linear feedback shift register)를 포함하는 것을 특징으로 하는 통신 시스템.
  57. 제 1 항에 있어서,
    상기 링크는 비-비디오(non-video) 채널을 포함하고, 상기 송신기 및 수신기는 테스트 모드 회로를 포함하며, 상기 송신기 및 수신기는 상기 비-비디오 채널을 통해 상기 수신기의 상기 테스트 모드의 상태를 상기 송신기가 판단하는 테스트 모드에서 동작 가능한 것을 특징으로 하는 통신 시스템.
  58. 제 57 항에 있어서,
    상기 링크는 DDC 채널을 갖는 TMDS 링크이며, 상기 비-비디오 채널은 상기 DDC 채널인 것을 특징으로 하는 통신 시스템.
  59. 제 1 항에 있어서,
    상기 링크는 비-비디오(non-video) 채널을 포함하고, 상기 송신기 및 수신기는 테스트 모드 회로를 포함하며, 상기 송신기 및 수신기는 상기 비-비디오 채널을 통해 상기 수신기의 상기 테스트 모드의 상태를 상기 송신기가 제어하는 테스트 모드에서 동작 가능한 것을 특징으로 하는 통신 시스템.
  60. 수신기;
    송신기; 및
    상기 송신기 및 수신기 사이에 하나 이상의 비디오 채널들을 포함하는 시리얼 링크로, 상기 송신기는 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 생성하고, 액티브 비디오 주기 동안 상기 비디오 채널을 통해 수신기로 상기 인코딩된 비디오 데이터를 전송하고, 데이터 아일랜드 동안 상기 링크를 통해 상기 수신기로 인코딩된 보조 데이터를 포함하는 패킷을 전송하도록 구성되며, 여기서 상기 데이터 아일랜드 각각은 상기 어느 액티브 비디오 주기와 동시에 일어나지도 또는 겹치지도 않는 타임 구간인, 시리얼 링크를 포함하며,
    여기서 상기 각 패킷들은 코드 워드들의 세트를 포함하고, 상기 송신기는 2 이상의 비디오 채널들 각각을 통해 상기 코드 워드들의 세트의 다른 서브세트를 전소하도록 구성되는 것을 특징으로 하는 통신 시스템.
  61. 제 60 항에 있어서,
    상기 패킷들은 헤더 및 2 이상의 서브-패킷들을 갖고, 상기 각 서브-패킷은 서브-패킷 데이터 및 상기 서브-패킷 데이터에 대한 BCH 패리티 비트를 포함하며,
    상기 각 패킷의 코드 워드들의 세트는 상기 헤더를 나타내는 제1 코드 워드 서브세트, 상기 서브-패킷들 중 제1 서브-패킷에 대한 상기 BCH 패리티 비트를 나타내는 제2 코드 워드 서브세트 및, 상기 서브-패킷들 중 제2 서브-패킷에 대한 상 기 BCH 패리티 비트를 나타내는 제3 코드 워드 서브세트를 포함하고,
    상기 송신기는 상기 비디오 채널들 중 한 채널을 통해 상기 제2 코드 워드 서브세트 및 상기 제3 코드 워드 서브세트 각각에 대한 제1 부분, 및 상기 비디오 채널들 중 다른 한 채널을 통해 상기 제2 코드 워드 서브세트 및 상기 제3 코드 워드 서브세트의 제2 부분을 전송하도록 구성되는 것을 특징으로 하는 통신 시스템.
  62. 제 61 항에 있어서,
    상기 송신기는 픽셀 클록에 응답하여 상기 비디오 채널들을 통해 상기 인코딩된 비디오 데이터를 전송하고 상기 픽셀 클록에 응답하여 상기 비디오 채널들을 통해 상기 패킷들을 전송하도록 구성되며, 상기 링크는 적어도 제1 비디오 채널, 제2 비디오 채널, 및 제3 비디오 채널을 포함하고, 상기 송신기는 상기 각 액티브 비디오 주기 동안 상기 제1 비디오 채널, 상기 제2 비디오 채널, 및 상기 제3 비디오 채널 각각을 통해 상기 수신기로 상기 인코딩된 비디오 데이터의 다른 부분을 전송하도록 구성되며,
    상기 헤더는 R 비트의 헤더 데이터 및 상기 헤더 데이터에 대한 S 개의 패리티 비트를 포함하고, 상기 각 서브-패킷은 U 비트의 서브-패킷 데이터 및 상기 서브-패킷 데이터에 대한 S 개의 패리티 비트로 구성되고, 상기 송신기는 상기 R 비트의 헤더 데이터를 통해 상기 헤더 데이터에 대한 상기 패리티 비트를 계산하고 상기 서브-패킷에 대한 U 비트의 서브-패킷 데이터를 통해 상기 서브-패킷들 각각에 대한 상기 BCH 패리티 비트들을 계산하도록 구성되며,
    상기 송신기는 마지막 X 픽셀 클록 사이클의 패킷 전송 동안 상기 제2 비디오 채널을 통해 상기 제2 코드 워드 서브세트 및 상기 제3 코드 워드 서브 세트 각각의 제1 부분 및 상기 제3 비디오 채널을 통해 상기 제2 코드 워드 서브세트 및 상기 제3 코드 워드 서브세트 각각의 제2 부분을 전송하도록 구성되는 것을 특징으로 하는 통신 시스템.
  63. 제 61 항에 있어서,
    상기 송신기는 픽셀 클록에 응답하여 상기 비디오 채널들을 통해 상기 인코딩된 비디오 데이터를 전송하고 상기 픽셀 클록에 응답하여 상기 비디오 채널들을 통해 상기 패킷들을 전송하도록 구성되고, 상기 링크는 적어도 제1 비디오 채널, 제2 비디오 채널, 및 제3 비디오 채널을 포함하고, 상기 송신기는 상기 인코딩된 비디오 데이터의 다른 부분을 상기 각 액티브 비디오 주기 동안 상기 제1 비디오 채널, 상기 제2 비디오 채널, 및 상기 제3 비디오 채널 각각을 통해 상기 수신기로 전송하도록 구성되며,
    상기 송신기는 상기 각 데이터 아일랜드 동안, 상기 제1 비디오 채널을 통해 상기 제1 코드 워드 서브세트를 전송하고, 상기 제2 비디오 채널을 통해 상기 제2 코드 워드 서브세트 및 상기 제3 코드 워드 서브세트의 제1 부분을 전송하고, 상기 제3 비디오 채널을 통해 상기 제2 코드 워드 서브세트 및 상기 제3 코드 워드 서브세트의 제2 부분을 전송하도록 구성되며,
    상기 각 헤더는 S 개의 패리티 비트를 포함하는 R 개의 비트로 구성되고, 상 기 각 패킷은 T 개의 서브-패킷들을 포함하고, 상기 각 서브-패킷들은 S 개의 패리티 비트를 포함하는 U 개의 비트로 구성되고, 상기 송신기는 픽셀 클록 사이클 단위로 상기 제1 비디오 채널을 통해 V 비트의 상기 각 패킷을 나타내는 코드 워드를 전송하고, 픽셀 클록 사이클 단위로 상기 제2 비디오 채널을 통해 W 개 비트의 패킷들 나타내는 코드 워드를 전송하고, 픽셀 클록 사이클 단위로 상기 제3 비디오 채널을 통해 X 비트의 패킷을 나타내는 코드 워드를 전송하도록 구성되는 것을 특징으로 하는 통신 시스템.
  64. 제 61 항에 있어서,
    상기 링크는 적어도 제1 비디오 채널, 제2 비디오 채널, 및 제3 비디오 채널을 포함하고, 상기 송신기는 상기 인코딩된 비디오 데이터의 다른 부분을 상기 각 액티브 비디오 주기 동안 상기 제1 비디오 채널, 상기 제2 비디오 채널 및 상기 제3 비디오 채널 각각을 통해 수신기로 전송하도록 구성되며, 그리고
    상기 송신기는 상기 각 데이터 아일랜드 동안 상기 제1 비디오 채널을 통해 제1 코드 워드 서브세트를 전송하고, 상기 제2 비디오 채널을 통해 상기 제2 코드 워드 서브세트 및 상기 제3 코드 워드 서브세트의 제1 부분을 전송하고, 상기 제3 비디오 채널을 통해 상기 제2 코드 워드 서브세트 및 상기 제3 코드 워드 서브세트의 제2 부분을 전송하도록 구성되는 것을 특징을 하는 통신 시스템.
  65. 제 60 항에 있어서,
    상기 링크는 적어도 제1 비디오 채널, 제2 비디오 채널, 및 제3 비디오 채널을 포함하고, 상기 송신기는 상기 인코딩된 비디오 데이터의 다른 부분을 상기 각 액티브 비디오 주기 동안 상기 제1 비디오 채널, 상기 제2 비디오 채널 및 상기 제3 비디오 채널 각각을 통해 수신기로 전송하도록 구성되며, 상기 각 패킷은 헤더 및 2 이상의 서브-패킷을 포함하고, 그리고
    상기 송신기는 상기 각 데이터 아일랜드 동안 상기 제1 비디오 채널을 통해 상기 헤더를 나타내는 코드 워드들을 전송하고, 상기 각 데이터 아일랜드 동안 상기 제2 비디오 채널을 통해 상기 서브-패킷들의 짝수 비트를 나타내는 코드 워드들을 전송하고, 상기 각 데이터 아일랜드 동안 상기 제3 비디오 채널을 통해 상기 서브-패킷들의 홀수 비트들을 나타내는 코드 워드들을 전송하도록 구성되는 것을 특징을 하는 통신 시스템.
  66. 제 60 항에 있어서,
    상기 송신기는 비디오 데이터 및 보조 데이터를 수신하도록 연결되고, 상기 비디오 데이터 및 보조 데이터를 암호화함으로써 암호화된 비디오 데이터 및 암호화된 보조 데이터를 생성하도록 구성되고, 상기 암호화된 비디오 데이터 및 상기 암호화된 보조 데이터를 인코딩함으로써 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 생성하도록 구성되고, 상기 제어 데이터 주기 동안 전송된 몇 개 이상의 상기 제어 데이터는 상기 수신기에 의해 사용되기 위한 복호화 제어 데이터이며, 상기 액티비 비디오 주기들은 소정의 주기적 타이밍으로 일어나고, 그리고
    상기 송신기는 상기 복호화 제어 데이터의 전송과 동시에 일어나지도 겹치지도 않는 상기 액티브 비디오 주기들 사이의 타임 슬롯에만 상기 데이터 아일랜드를 위치시키도록 구성되는 것을 특징으로 하는 통신 시스템.
  67. 제 66 항에 있어서,
    상기 송신기는 픽셀 클록에 응답하여 상기 비디오 채널들을 통해 상기 인코딩된 비디오 데이터를 전송하고, 상기 픽셀 클록에 응답하여 상기 비디오 채널들을 통해 상기 패킷들을 전송하고, 존속시간이 N 개의 소정의 픽셀 클록 사이클인 타임 슬롯 내에서 상기 각 패킷들 전송하고, MN+P 픽셀 클록 사이클과 같은 최소 존속시간을 갖는 타임 슬롯 내에서만 상기 각 데이터 아일랜드를 전송하도록 구성되며, 여기서 M, N 및 P는 정수인 것을 특징으로 하는 통신 시스템.
  68. 제 67 항에 있어서,
    N=32 및 1≤M≤14 인 것을 특징으로 하는 통신 시스템.
  69. 제 67 항에 있어서,
    상기 액티브 비디오 주기는 소정의 주기적 타이밍을 가지고 일어나며, 상기 송신기는 상기 비디오 채널들을 통해 상기 인코딩된 비디오 데이터의 프레임들을 전송하도록 구성되고, 상기 수신기는, 상기 액티브 비디오 주기의 상기 소정 주기적 타임의 인식(knowledge)을 갖고, 상기 액티브 비디오 주기들 사이의 상기 타임 슬롯 내의 상기 데이터 아일랜드의 배치를 자동적으로 제어하도록 구성되는 것을 특징으로 하는 통신 시스템.
  70. 제 60 항에 있어서,
    상기 송신기는 제1 테스트 패턴을 인가하도록 구성된 제1 테스트 패턴 생성기를 포함하고, 상기 수신기는 상기 제1 테스트 패턴과 동일한 제2 테스트 패턴을 인가하도록 구성된 제2 테스트 패턴 생성기를 포함하고, 상기 송신기 및 수신기는 상기 제1 테스트 패턴 생성기와 상기 제2 테스트 패턴 생성기가 상기 시리얼 싱크 상의 에러 레이트를 나타내는 테스트 데이터를 생성하도록 제어되는 테스트 모드에서 동작 가능한 것을 특징으로 하는 통신 시스템.
  71. 제 70 항에 있어서,
    상기 송신기는 상기 제1 테스트 패턴을 인코딩하고 상기 테스트 모드 동안 상기 비디오 채널을 통해 전송하도록 구성되고, 상기 송신기는 상기 테스트 모드 동안 상기 제2 테스트 패턴 생성기의 동작을 제어하도록 구성되며, 상기 수신기는 상기 테스트 모드 동안 상기 테스트 데이터를 생성하도록 구성되는 것을 특징으로 하는 통신 시스템.
  72. 제 70 항에 있어서,
    상기 제1 테스트 패턴 생성기 및 상기 제2 테스트 패턴 생성기 각각은 의사- 랜덤 테스트 패턴을 생성하는 선형 피드백 쉬프트 레지스터(linear feedback shift register)를 포함하는 것을 특징으로 하는 통신 시스템.
  73. 제 60 항에 있어서,
    상기 링크는 비-비디오(non-video) 채널을 포함하고, 상기 송신기 및 수신기는 테스트 모드 회로를 포함하며, 상기 송신기 및 수신기는 상기 비-비디오 채널을 통해 상기 수신기의 상기 테스트 모드의 상태를 상기 송신기가 판단하는 테스트 모드에서 동작 가능한 것을 특징으로 하는 통신 시스템.
  74. 제 73 항에 있어서,
    상기 링크는 DDC 채널을 갖는 TMDS 링크이며, 상기 비-비디오 채널은 상기 DDC 채널인 것을 특징으로 하는 통신 시스템.
  75. 제 60 항에 있어서,
    상기 링크는 비-비디오(non-video) 채널을 포함하고, 상기 송신기 및 수신기는 테스트 모드 회로를 포함하며, 상기 송신기 및 수신기는 상기 비-비디오 채널을 통해 상기 수신기의 상기 테스트 모드의 상태를 상기 송신기가 제어하는 테스트 모드에서 동작 가능한 것을 특징으로 하는 통신 시스템.
  76. 수신기;
    송신기; 및
    상기 송신기 및 수신기 사이에 하나 이상의 비디오 채널들을 포함하는 시리얼 링크로, 여기서 상기 송신기는 비디오 데이터 및 보조 데이터를 수신하도록 연결되며, 상기 비디오 데이터 및 보조 데이터를 암호화함으로써 암호화된 비디오 데이터 및 암호화된 보조 데이터를 생성하는 데이터 아일랜드 모드에서 동작하도록 구성되며, 상기 암호화된 비디오 데이터 및 암호화된 보조 데이터를 인코딩함으로써 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 생성하고, 액티브 비디오 주기들 동안 상기 비디오 채널들을 통해 상기 인코딩된 비디오 데이터를 수신기로 전송하고, 데이터 아일랜드들 동안 상기 비디오 채널들을 통해 상기 인코딩된 보조 데이터를 포함하는 패킷들을 수신기로 전송하며, 여기서 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와 동시에 일어나지도 또는 겹치지도 않는 타임 구간인, 시리얼 링크를 포함하며,
    여기서, 상기 송신기는 상기 데이터 아일랜드 모드에서 제어 데이터 주기 동안 상기 비디오 채널들을 통해 제어 데이터를 수신기로 전송하도록 구성되고, 상기 제어 데이터 주기는 상기 어느 데이터 아일랜드와 동시에 일어나지도 또는 겹치지도 않고, 상기 어느 액티브 비디오 주기와 동시에 일어나지도 또는 겹치지도 않으며, 상기 제어 데이터는 하나 이상의 아일랜드 프리앰블 워드 및 하나 이상의 비디오 프리앰블 워드를 포함하고,
    상기 송신기는 상기 데이터 아일랜드 모드 동안 상기 각 데이터 아일랜드 내에서 상기 각 비디오 채널들을 통해 비-암호화된 아일랜드 가드 밴드와 그 뒤로 하 나 이상의 패킷들의 데이터를 전송하고, 상기 데이터 아일랜드 모드 동안 상기 각 액티브 비디오 주기 내에서 상기 각 비디오 채널들을 통해 비-암호화된 비디오 가드 밴드와 그 뒤로 상기 인코딩된 비디오 데이터 버스트를 전송하도록 구성되고, 그리고
    상기 송신기는, 상기 데이터 아일랜드 모드 동안, 하나 이상의 상기 아일랜드 프리앰블 워드를 상기 각 비디오 채널들을 통해 상기 각 데이터 아일랜드의 데이터 아일랜드 프리앰블로서 전송하고, 하나 이상의 상기 비디오 프리앰블 워드를 상기 각 비디오 채널들을 통해 상기 액티브 비디오 주기의 비디오 프리앰블로서 전송하도록 구성되는 것을 특징으로 하는 통신 시스템.
  77. 제 76 항에 있어서,
    상기 링크는 TMDS 링크이며, 상기 인코딩된 비디오 데이터 및 상기 인코딩된 보조 데이터는 천이-최소화 TMDS 코드 워드이며, 상기 각 아일랜드 가드 밴드 및 상기 각 비디오 가드 밴드는 하나 이상의 천이-최소화 TMDS 코드 워드로 구성되며, 그리고
    상기 수신기는 상기 링크를 통해 수신된 상기 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 디코딩함으로써 상기 암호화된 비디오 데이터 및 상기 암호화된 보조 데이터를 복원하고, 상기 복원된 암호화된 비디오 데이터 및 상기 복원된 암호화된 보조 데이터를 복호화하고, 상기 어느 아일랜드 가드 밴드의 복호화 없이 데이터 아일랜드 프리앰블에서 아일랜드 가드 밴드로의 천이를 검출함으로써 상기 데이터 아일랜드들을 식별하고, 상기 어느 비디오 가드 밴드의 복호화 없이 비디오 프리앰블에서 비디오 가드 밴드로의 천이를 검출함으로써 상기 액티브 비디오 주기들을 식별하는 데이터 아일랜드 모드에서 동작하도록 구성되는 것을 특징으로 하는 통신 시스템.
  78. 수신기;
    송신기; 및
    상기 송신기 및 수신기 사이에 하나 이상의 비디오 채널들을 포함하는 시리얼 링크로, 상기 송신기는 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 생성하고, 액티브 비디오 주기들 동안 상기 비디오 채널들을 통해 상기 인코딩된 비디오 데이터를 상기 수신기로 송신하고, 데이터 아일랜드들 동안 상기 비디오 채널들을 통해 상기 인코딩된 보조 데이터를 포함하는 패킷들을 수신기로 전송하는 데이터 아일랜드 모드에서 동작하도록 구성되며, 여기서 상기 데이터 아일랜드 각각은 상기 어느 액티브 비디오 주기와 동시에 일어나지도 또는 겹치지도 않는 타임 구간인, 시리얼 링크를 포함하며,
    여기서, 상기 송신기는 상기 데이터 아일랜드 모드에서 제어 데이터 주기 동안 상기 비디오 채널들을 통해 제어 데이터를 수신기로 전송하도록 구성되고, 상기 제어 데이터 주기는 상기 어느 데이터 아일랜드와 동시에 일어나지도 또는 겹치지도 않고, 상기 어느 액티브 비디오 주기와 동시에 일어나지도 또는 겹치지도 않으며, 상기 제어 데이터는 하나 이상의 아일랜드 프리앰블 워드 및 하나 이상의 비디 오 프리앰블 워드를 포함하고,
    상기 송신기는 상기 데이터 아일랜드 모드 동안 상기 각 데이터 아일랜드 내에서 상기 각 비디오 채널들을 통해 아일랜드 가드 밴드와 그 뒤로 하나 이상의 패킷들의 데이터를 전송하고, 상기 데이터 아일랜드 모드 동안 상기 각 액티브 비디오 주기 내에서 상기 각 비디오 채널들을 통해 비디오 가드 밴드와 그 뒤로 상기 인코딩된 비디오 데이터 버스트를 전송하도록 구성되고,
    상기 송신기는, 상기 데이터 아일랜드 모드 동안, 하나 이상의 상기 아일랜드 프리앰블 워드를 상기 각 비디오 채널들을 통해 상기 각 데이터 아일랜드의 데이터 아일랜드 프리앰블로서 전송하고, 하나 이상의 상기 비디오 프리앰블 워드를 상기 각 비디오 채널들을 통해 상기 액티브 비디오 주기의 비디오 프리앰블로서 전송하도록 구성되고,
    상기 송신기는 어떤 아일랜드 가드 밴드 또는 비디오 가드 밴드를 상기 어떤 비디오 채널들을 통해 전송하는 없이, 인코딩된 비디오 데이터를 생성하고 액티브 비디오 주기 동안 상기 비디오 채널들을 통해 상기 인코딩된 비디오 데이터를 전송하는 제2 모드에서 동작 가능하도록 구성되고, 상기 송신기는 상기 제2 모드에서 상기 데이터 아일랜드 모드로의 천이를 진행하도록 구성되며,
    상기 수신기는 어떤 비디오 프리앰블에서 비디오 가드 밴드로의 천이를 식별함이 없이 액티브 비디오 주기를 식별하고, 상기 액티브 비디오 주기 동안 상기 비디오 채널들을 통해 수신된 인코딩된 비디오 데이터로부터 비디오 데이터를 복원하는 제2 모드에서 동작 가능하도록 구성되며, 그리고
    상기 수신기는 하나 이상의 비디오 채널 상에서 데이터 아일랜드 프리앰블에서 아일랜드 가드 밴드로의 천이를 검출하는 것에 응답하여 상기 제2 모드의 동작에서 상기 데이터 아일랜드 모드의 동작으로 천이를 진행하도록 구성되는 것을 특징으로 하는 통신 시스템.
  79. 제 78 항에 있어서,
    상기 링크는 TMDS 링크이며, 상기 인코딩된 비디오 데이터 및 상기 인코딩된 보조 데이터는 천이-최소화 TMDS 코드 워드이고, 상기 각 아일랜드 가드 밴드 및 상기 각 비디오 가드 밴드는 하나 이상의 천이-최소화 TMDS 코드 워드로 구성되고, 상기 각 아일랜드 프리앰블 워드 및 비디오 프리앰블 워드는 천이-최대화 TMDS 제어 워드이며, 그리고
    상기 수신기는 2 제어 비트 CTL0, 및 CTL1를 나타내는 특정 값의 제1 TMDS 제어 워드와, 상기 비디오 채널들 중 하나의 아일랜드 가드 밴드 사이의 천이, 및 2 제어 비트 CTL2, 및 CTL3를 나타내는 특정 값의 제2 TMDS 제어 워드와, 상기 비디오 채널들 중 다른 하나의 아일랜드 가드 밴드 사이의 동시 천이의 검출에 응답하여 상기 제2 모드의 동작에서 상기 데이터 아일랜드의 모드로 천이를 진행하도록 구성되는 것을 특징으로 하는 통신 시스템.
  80. 제 78 항에 있어서,
    상기 수신기는, 상기 제2 모드의 동작으로부터 상기 데이터 아일랜드 모드의 동작으로의 상기 각 천이로 진행하면, 데이터 아일랜드 모드의 동작을 나타내고 상기 링크의 하나 이상의 채널을 통해 상기 송신기에 의해 판독 가능한, 하나 이상의 레지스터 비트를 설정하도록 구성되는 것을 특징으로 하는 통신 시스템.
  81. 수신기;
    송신기; 및
    상기 송신기 및 수신기 사이에 하나 이상의 비디오 채널들을 포함하는 시리얼 링크로, 상기 송신기는 비디오 데이터 및 보조 데이터를 암호화함으로써 암호화된 비디오 데이터 및 암호화된 보조 데이터를 생성하도록 구성되고, 상기 암호화된 비디오 데이터 및 암호화된 보조 데이터를 인코딩함으로써 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 생성하고, 액티브 비디오 주기 동안 상기 비디오 채널들을 통해 상기 인코딩된 비디오 데이터를 상기 수신기로 전송하고, 데이터 아일랜드 동안 상기 비디오 채널들을 통해 상기 인코딩된 보조 데이터를 나타내는 패킷들을 상기 수신기로 전송하며, 여기서 상기 데이터 아일랜드 각각은 상기 어느 액티브 비디오 주기와 동시에 일어나지도 또는 겹치지도 않는 타임 구간인, 시리얼 링크를 포함하며,
    상기 수신기는 상기 비디오 채널들을 통해 수신하는 상기 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 디코딩함으써 암호화된 데이터를 복원하도록 구성되고, 상기 수신기는 상기 복원된 암호화된 데이터를 복호화하도록 연결되고 구성된 하나 이상의 수신기 사이퍼(cipher) 엔진을 포함하며, 그리고
    상기 송신기 및 수신기는 상기 수신기가 상기 복원되고 암호화된 데이터를 올바르게 복호화하고 있는지를 판단하기 위해 링크 완결성 체크(link verification check)를 수행하도록 구성되고, 상기 링크 완결성 체크는 상기 송신기로부터의 결과 값과 상기 수신기로부터의 수신기 결과 값을 캡쳐링하는 단계와 상기 수신기 결과 값이 상기 결과 값에 매칭하는 지를 판단하는 단계를 포함하며, 상기 수신기는 상기 비디오 데이터 및 보조 데이터를 암호화함으로써 암호화된 비디오 데이터 및 암호화된 보조 데이터를 생성하도록 구성된 하나 이상의 송신기 사이퍼 엔진들을 포함하며, 여기서 상기 각 송신기 사이퍼 엔진은 제1 제어 신호 세트 중 하나 이상의 제어 신호에 응답하여 동작하고, 상기 각 수신기 사이퍼 엔진은 제2 제어 신호 세트 중 하나 이상의 제어 신호에 응답하여 동작하며, 상기 제2 제어 신호 세트의 각 제어 신호는 상기 제1 제어 신호 세트의 각 제어 신호보다 적어도 실질적으로 같은 주파수를 갖지 않도록 그렇지만 위상은 상기 제1 제어 신호 세트의 각 제어 신호의 위상과 현저하게 다르지 않도록 생성되는 것을 특징으로 하는 통신 시스템.
  82. 제 81 항에 있어서,
    상기 링크는 TMDS 링크이며, 상기 각 송신기 사이퍼 엔진은 몇 개 이상의 상기 비디오 데이터 및 보조 데이터에 HDCP 암호화를 수행하도록 구성되는 것을 특징으로 하는 통신 시스템.
  83. 수신기;
    송신기; 및
    상기 송신기 및 수신기 사이에 하나 이상의 비디오 채널들을 포함하는 시리얼 링크로, 상기 송신기는 비디오 데이터 및 보조 데이터를 암호화함으로써 암호화된 비디오 데이터 및 암호화된 보조 데이터를 생성하도록 구성되고, 상기 암호화된 비디오 데이터 및 암호화된 보조 데이터를 인코딩함으로써 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 생성하고, 액티브 비디오 주기 동안 상기 비디오 채널들을 통해 상기 인코딩된 비디오 데이터를 상기 수신기로 전송하고, 데이터 아일랜드 동안 상기 비디오 채널들을 통해 상기 인코딩된 보조 데이터를 나타내는 패킷들을 상기 수신기로 전송하며, 여기서 상기 데이터 아일랜드 각각은 상기 어느 액티브 비디오 주기와 동시에 일어나지도 또는 겹치지도 않는 타임 구간인, 시리얼 링크를 포함하며,
    상기 수신기는 상기 비디오 채널들을 통해 수신하는 상기 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 디코딩함으써 암호화된 데이터를 복원하도록 구성되고, 상기 수신기는 상기 복원된 암호화된 데이터를 복호화하도록 연결되고 구성된 하나 이상의 수신기 사이퍼(cipher) 엔진을 포함하며, 그리고
    상기 송신기 및 수신기는 상기 수신기가 상기 복원되고 암호화된 데이터를 올바르게 복호화하고 있는지를 판단하기 위해 링크 완결성 체크(link verification check)를 수행하도록 구성되고, 상기 링크 완결성 체크는 상기 송신기로부터의 결과 값과 상기 수신기로부터의 수신기 결과 값을 캡쳐링하는 단계와 상기 수신기 결과 값이 상기 결과 값에 매칭하는 지를 판단하는 단계를 포함하며, 상기 송신기는 외부 자극에 응답하여 상기 결과 값을 캡쳐하도록 구성되고, 상기 수신기는 동일한 상기 외부 자극에 응답하여 상기 수신기 결과 값을 캡쳐하도록 구성되고, 상기 송신기 및 수신기는 항상 소정의 만족할만한 존속시간 보다 적은 존속시간을 갖는 타임 윈도우 내에서 상기 결과 값 및 상기 수신기 결과 값을 캡쳐하도록 구성되는 것을 특징으로 하는 통신 시스템.
  84. 수신기;
    송신기; 및
    상기 송신기 및 수신기 사이에 하나 이상의 비디오 채널들을 포함하는 시리얼 링크로, 상기 송신기는 비디오 데이터 및 보조 데이터를 암호화함으로써 암호화된 비디오 데이터 및 암호화된 보조 데이터를 생성하도록 구성되고, 상기 암호화된 비디오 데이터 및 암호화된 보조 데이터를 인코딩함으로써 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 생성하고, 액티브 비디오 주기 동안 상기 비디오 채널들을 통해 상기 인코딩된 비디오 데이터를 상기 수신기로 전송하고, 데이터 아일랜드 동안 상기 비디오 채널들을 통해 상기 인코딩된 보조 데이터를 나타내는 패킷들을 상기 수신기로 전송하며, 여기서 상기 데이터 아일랜드 각각은 상기 어느 액티브 비디오 주기와 동시에 일어나지도 또는 겹치지도 않는 타임 구간인, 시리얼 링크를 포함하며,
    상기 수신기는 상기 비디오 채널들을 통해 수신하는 상기 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 디코딩함으써 암호화된 데이터를 복원하도록 구 성되고, 상기 수신기는 상기 복원된 암호화된 데이터를 복호화하도록 연결되고 구성된 하나 이상의 수신기 사이퍼(cipher) 엔진을 포함하며, 그리고
    상기 송신기 및 수신기는 상기 수신기가 상기 복원되고 암호화된 데이터를 올바르게 복호화하고 있는지를 판단하기 위해 링크 완결성 체크(link verification check)를 수행하도록 구성되고, 상기 링크 완결성 체크는 제1 주기에서 일어나는 제1 존속시간의 제1 타임 윈도우 내에서 상기 송신기의 송신기 결과 값 및 대응하는 상기 수신기의 수신기 결과 값을 주기적으로 생성하는 단계. 제2 주기에서 일어나는 제2 존속시간의 샘플링 타임 윈도우 내에서 상기 송신기의 상기 송신기 결과 값과 대응하는 상기 수신기의 상기 수신기 결과 값을 샘플링하는 단계, 및 가장 최근에 샘플링된 수신기 결과 값 각각이 가장 최근에 샘플링된 송신기 결과 값 각각에 매칭되는지를 판단하는 단계를 포함하고, 상기 어느 샘플링 윈도우도 상기 어느 제1 타임 윈도우와 동시에 일어나지도 또는 겹치지도 않는 것을 특징으로 하는 통신 시스템.
  85. 수신기, 송신기 및 상기 송신기와 수신기 사이에 비디오 채널들을 포함하는 시리얼 링크를 포함하고, 상기 송신기는 비디오 데이터 및 보조 데이터를 암호화함으로써 암호화된 비디오 데이터 및 암호화된 보조 데이터를 생성하고, 상기 암호화된 비디오 데이터 및 암호화된 보조 데이터를 인코딩함으로써 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 생성하고, 액티브 비디오 주기 동안 상기 비디오 채널들을 통해 상기 인코딩된 비디오 데이터를 상기 수신기로 전송하고, 데이터 아일랜드 동안 상기 비디오 채널들을 통해 상기 인코딩된 보조 데이터를 나타내는 패킷들을 상기 수신기로 전송하는 모드에서 동작하도록 구성되며, 여기서 상기 데이터 아일랜드 각각은 상기 어느 액티브 비디오 주기와 동시에 일어나지도 또는 겹치지도 않는 타임 구간이며, 상기 수신기는 상기 비디오 채널들을 통해 수신하는 상기 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 디코딩함으로써 암호화된 데이터를 복원하도록 구성되고, 상기 수신기는 상기 복원된 암호화된 데이터를 복호화하기 위해 연결되고 구성된 하나 이상의 사이퍼 엔진을 포함하는 통신 시스템 상의 암호화 체크를 수행하는 방법에 있어서, 상기 방법은:
    (a) 때때로, 암호화된 데이터를 생성하기 위해 알려진 비트 패턴을 나타내는 테스트 데이터를 암호화하고, 상기 암호화된 데이터를 인코딩함으로써 인코딩된 테스트 데이터를 생성하도록 상기 송신기를 동작시키고, 상기 인코딩된 테스트데이터를 상기 비디오 채널들 중 하나 이상을 통해 상기 수신기로 전송시키는 단계;
    (b) 상기 인코딩된 테스트 데이터를 디코딩하고 복호화함으로써 복호화된 테스트 데이터를 생성하도록 상기 수신기를 동작시키는 단계; 및
    (c) 상기 복호화된 테스트 데이터가 상기 테스트 데이터에 매칭되는 지 체크하는 단계를 포함하는 것을 특징으로 하는 방법.
  86. 제 85 항에 있어서,
    상기 (a) 단계는 상기 수신기로 하나 이상의 상기 패킷을 전송하는 단계를 포함하고, 상기 각 패킷은 몇 개 이상의 상기 인코딩된 테스트 데이터를 나타내는 코드 워드들의 세트를 포함하고, 상기 코드 워드의 세트의 다른 서브세트는 상기 비디오 채널들 중 2 이상의 채널 각각을 통해 전송되는 것을 특징으로 하는 방법.
  87. 하나 이상의 비디오 채널을 포함하는 시리얼 링크에 연결되도록 구성된 송신기로서, 상기 송신기는:
    비디오 데이터를 수신하기 위해 연결된 하나 이상의 입력부 및 보조 데이터를 수신하기 위해 연결된 하나 이상의 입력부;
    상기 링크와 연결되도록 구성된 하나 이상의 출력부; 및
    상기 각 입력부 및 상기 각 출력부 사이에 연결되고, 상기 비디오 데이터 및 보조 데이터를 인코딩함으로써 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 생성하고, 액티브 비디오 주기 동안 상기 인코딩된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 데이터 아일랜드 동안 상기 인코딩된 보조 데이터를 포함하는 패킷들을 상기 하나 이상의 출력부로 인가하도록 구성된 회로로, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기들과 동시에 일어나지도 또는 겹치지도 않는 타임 구간인, 회로를 포함하고,
    상기 회로는 또한 제어 데이터 주기 동안 제어 데이터를 상기 하나 이상의 출력부로 인가하도록 구성되고, 상기 제어 데이터 주기는 상기 어느 데이터 아일랜드와 동시에 일어나지도 또는 겹치지도 않고 상기 어느 비디오 주기와 동시에 일어나지도 겹치지도 않는 것을 특징으로 하는 송신기.
  88. 제 87 항에 있어서,
    상기 회로는 상기 패킷 각각이 헤더, 2 이상의 서브-패킷들, 소정 수의 포맷들로부터 선택된 포맷을 갖도록 상기 패킷을 인가하도록 구성되고, 각 패킷의 상기 헤더는 헤더 데이터 및 상기 헤더 데이터에 대한 BCH 패리티 비트를 포함하고, 상기 헤더 데이터는 상기 패킷의 상기 포맷을 나타내는 데이터를 포함하고, 상기 각 서브-패킷은 서브-패킷 데이터 및 상기 서브-패킷 데이터에 대한 BCH 패리티 비트를 포함하는 것을 특징으로 하는 송신기.
  89. 제 87 항에 있어서,
    상기 회로는 상기 패킷 각각이 헤더, 2 이상의 서브-패킷들, 소정 수의 포맷들로부터 선택된 포맷을 갖도록 상기 패킷을 인가하도록 구성되고, 각 패킷의 상기 헤더는 상기 패킷의 상기 포맷을 나타내는 것을 특징으로 하는 송신기.
  90. 제 89 항에 있어서,
    상기 링크는 적어도 제1 비디오 채널, 제2 비디오 채널, 및 제3 비디오 채널을 포함하고, 상기 하나 이상의 출력부는 상기 제1 비디오 채널과 연결되도록 구성된 하나 이상의 제1 출력부, 상기 제2 비디오 채널과 연결되도록 구성된 하나 이상의 제2 출력부, 및 상기 제3 비디오 채널과 연결되도록 구성된 하나 이상의 제3 출력부를 포함하고, 상기 회로는 상기 각 액티브 비디오 주기 동안 상기 인코딩된 비디오 데이터의 제1 부분을 상기 하나 이상의 제1 출력부에 인가하고, 상기 인코딩 된 비디오 데이터의 제2 부분을 상기 하나 이상의 제2 출력부에 인가하고, 및 상기 인코딩된 비디오 데이터의 제3 부분을 상기 하나 이상의 제3 출력부에 인가하도록 구성되며, 그리고
    상기 회로는 상기 각 데이터 아일랜드 동안 상기 각 패킷의 헤더를 나타내는 코드 워드를 상기 하나 이상의 제1 출력부에 인가하고, 상기 각 패킷의 서브-패킷을 나타내는 코드 워드를 상기 하나 이상의 제2 출력부 및 상기 하나 이상의 제3 출력부에 인가하도록 구성되는 것을 특징으로 하는 송신기.
  91. 제 87 항에 있어서,
    상기 링크는 TMDS 링크이며, 상기 회로는 상기 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 나타내는 TMDS 코드 워드를 상기 하나 이상의 출력부로 인가하도록 구성되는 것을 특징으로 하는 송신기.
  92. 제 87 항에 있어서,
    상기 회로는 상기 비디오 데이터 및 보조 데이터를 암호화함으로써 암호화된 비디오 데이터 및 암호화된 보조 데이터를 생성하고, 상기 암호화된 비디오 데이터 및 암호화된 보조 데이터를 인코딩함으로써 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 생성하도록 구성되며, 상기 송신기는 또한:
    상기 회로와 연결되고, 하나 이상의 구성 데이터 및 암호화 키들로 프로그램된 PROM을 포함하는 것을 특징으로 하는 송신기.
  93. 제 92 항에 있어서,
    상기 구성 정보는 InfoFrame 데이터를 포함하는 것을 특징으로 하는 송신기.
  94. 제 92 항에 있어서,
    상기 회로, 상기 하나 이상의 입력부, 상기 하나 이상의 출력부는 제1 집적 회로로 구현되고, 상기 PROM은 상기 제1 집적 회로와 연결된 제2 집적 회로로서 구현되는 것을 특징으로 하는 송신기.
  95. 제 94 항에 있어서,
    상기 제2 집적 회로는, 암호화 키들이 상기 제1 집적 회로의 상기 회로에만 접속 가능하도록 상기 암호화 키들을 안전하게 저장하고, 또한 상기 제2 집적 회로는 다른 데이터가 호스트 장치에 의해서 접속 가능하도록 상기 다른 데이터를 저장하는 것을 특징으로 하는 송신기.
  96. 제 92 항에 있어서,
    상기 회로, 상기 하나 이상의 입력부, 상기 하나 이상의 출력부, 및 상기 PROM은 하나의 집적 회로로 구현되는 것을 특징으로 하는 송신기.
  97. 제 87 항에 있어서,
    상기 회로는 외부 장치에 의해 접속 가능하게 연결되고 구성된 레지스터를 포함하여 상기 외부 장치는 구성 비트를 상기 레지스터 안에 로딩할 수 있고, 상기 회로는 상기 레지스터 내에 몇 개 이상의 상기 구정 비트를 포함하도록 몇 개 이상의 상기 패킷들을 생성하도록 구성되는 것을 특징으로 하는 송신기.
  98. 하나 이사의 비디오 채널을 포함하는 시리얼 링크에 연결되록 구성된 수신기로서, 상기 수신기는:
    상기 링크와 연결되도록 구성된 하나 이상의 입력부;
    상기 링크로부터 복원된 비디오 데이터를 인가하기 위한 하나 이상의 비디오 출력부 및 상기 링크로부터 복원된 오디오 데이터를 인가하기 위한 하나 이상의 오디오 출력부; 및
    상기 각 입력부 및 상기 각 출력부 사이에 연결되고, 액티브 비디오 주기 동안 상기 하나 이상의 입력부에서 수신된 인코딩된 비디오 데이터를 디코딩 등을 수행함으로써 복원된 비디오 데이터를 생성하고, 상기 복원된 비디오 데이터를 하나 이상의 상기 비디오 출력부로 인가하고, 데이터 아일랜드 동안 상기 하나 이상의 입력부에서 수신된 상기 패킷을 나타내는 코드 워드를 디코딩 등을 수행함으로써 보조 데이터의 패킷을 복원하고, 상기 복원된 패킷들로부터 추출된 데이터로부터 하나 이상의 오디오 데이터 스트림을 생성하고, 및 상기 오디오 데이터 스트림을 상기 하나 이상의 오디오 출력부로 인가하도록 구성된 회로로, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와도 동시에 일어나거나 또는 겹치지도 않는 타임 구간인, 회로를 포함하는 것을 특징으로 하는 수신기.
  99. 제 98 항에 있어서,
    상기 링크는 TMDS 링크이며, 상기 인코딩된 비디오 데이터는 TMDS 코드 워드이고, 상기 패킷들을 나타내는 상기 코드 워드들은 TMDS 코드 워드인 것을 특징으로 하는 수신기.
  100. 제 98 항에 있어서,
    상기 회로는 상기 복원된 패킷들로부터 추출된 암호화된 오디오 데이터를 복호화함으로써 복호화된 오디오 데이터를 생성하고, 상기 복호화된 오디오 데이터로부터 하나 이상이 상기 오디오 데이터 스트림을 생성하도록 구성되며, 상기 수신기는 또한:
    상기 회로와 연결되고, 하나 이상의 식별 데이터 및 복호화 키들로 프로그램된 PROM을 포함하는 것을 특징으로 하는 수신기.
  101. 제 100 항에 있어서,
    상기 회로, 상기 하나 이상의 입력부, 상기 하나의 이상의 비디오 출력부, 및 상기 하나 이상의 오디오 출력부는 제1 집적 회로로 구현되고, 상기 PROM은 상기 제1 집적 회로와 연결된 제2 집적 회로로 구현되는 것을 특징으로 하는 수신기.
  102. 제 101 항에 있어서,
    상기 제2 집적 회로는, 복호화 키들이 상기 제1 집적 회로의 상기 회로에만 접속 가능하도록 상기 복호화 키들을 안전하게 저장하고, 또한 상기 제2 집적 회로는 다른 데이터가 호스트 장치에 의해서 접속 가능하도록 상기 다른 데이터를 저장하는 것을 특징으로 하는 수신기.
  103. 제 100 항에 있어서,
    상기 회로, 상기 하나 이상의 입력부, 상기 하나 이상의 비디오 출력부, 상기 하나 이상의 오디오 출력부, 및 상기 PROM은 하나의 집적 회로로 구현되는 것을 특징으로 하는 수신기.
  104. 제 98 항에 있어서,
    상기 회로는 외부 장치에 의해서 접속 가능하도록 연결되고 구성된 레지스터를 포함하고, 상기 회로는 상기 패킷들 중 인식되지 않는 패킷들을 상기 레지스터에 저장하도록 구성되는 것을 특징으로 하는 수신기.
  105. 제 98 항에 있어서,
    상기 회로는 상기 복원된 비디오 데이터를 생성하고 상기 복원된 비디오 데이터를 상기 하나 이상의 비디오 출력부로 인가하도록 구성된 비디오 프로세싱 회로를 포함하고, 상기 회로는 상기 하나 이상의 패킷들로부터 추출된 데이터에 응답 하여 상기 비디오 프로세싱 회로의 하나 이상의 동작 파라미터를 설정하는 것을 특징으로 하는 수신기.
  106. 제 98 항에 있어서,
    상기 회로는 상기 복원된 패킷들로부터 추출된 데이터로부터 상기 각 오디오 데이터 스트림을 생성하고 상기 각 오디오 데이터 스트림을 상기 하나 이상의 오디오 출력부로 인가하도록 구성된 오디오 프로세싱 회로를 포함하고, 상기 회로는 상기 하나 이상의 패킷들로부터 추출된 데이터에 응답하여 상기 오디오 프로세싱 회로의 하나 이상의 동작 파라미터를 설정하는 것을 특징으로 하는 수신기.
  107. 수신기;
    송신기; 및
    상기 송신기 및 수신기 사이의 시리얼 링크로서, 상기 송신기는 입력 데이터를 수신하도록 연결되고, 상기 입력 데이터를 인코딩함으로써 선택된 코드 워드의 시퀀스를 생성하도록 구성되고, 상기 선택된 코드 워드의 시퀀스를 상기 시리얼 링크를 통해 상기 수신기로 전송하도록 구성되며, 상기 각 선택된 코드 워드는 코드 워드 풀 세트의 로버스트 서브세트의 멤버이며, 상기 풀 세트는 상기 코드 워드들의 소정 분리된 클러스터들을 포함하고, 상기 입력 데이터는 상기 풀 세트의 종래의 코드 워드 시퀀스로 인코딩될 수 있고, 상기 선택된 코드 워드의 시퀀스는 상기 링크를 통한 전송 도중 상기 종래의 코드 워드 시퀀스보다 심볼-간 간섭에 덜 민감 한, 시리얼 링크를 포함하며,
    상기 로버스트 서브세트는 상기 풀 세트의 바람직한 워드들로 구성되고, 상기 풀 세트의 바람직한 워드가 아닌 상기 코드 워드는 비-바람직한 워드이며, 상기 바람직한 워드 각각은 입력 데이터 값을 나타내고, 상기 클러스터 각각은 하나 이상의 상기 바람직한 워드로 구성된 바람직한 워드 세트를 포함하고, 또한 하나 이상의 클러스터들은 하나 이상의 비-바람직한 워드를 포함하고, 상기 바람직한 워드 세트 각각은 다른 입력 데이터 값을 나타내고, 상기 수신기는 상기 링크를 통해 전송된 상기 코드 워드들을 수신하도록 연결되고 상기 클러스터 중 하나의 멤버인 수신된 코드 워드 각각을 상기 클러스터의 중 상기 하나의 바람직한 워드 세트에 의해 결정된 입력 데이터 값으로 매핑하도록 구성된 논리 회로를 포함하는 것을 특징으로 하는 통신 시스템.
  108. 제 107 항에 있어서,
    상기 논리 회로는 수신된 각 코드 워드의 하나 이상의 비트가 에러가 있을 것 같은지를 판단하는 소정의 룰을 적용하고, 상기 에러가 있을 것 같다고 판단된 각 비트를 반전시킴으로써, 에러가 있을 것 같은 하나 이상의 비트를 포함한다고 판단된 수신된 각 코드 워드를 바람직한 워드들 중 하나로 매핑하도록 구성되는 것을 특징으로 하는 통신 시스템.
  109. 제 107 항에 있어서,
    상기 링크는 하나 이상의 비디오 채널을 포함하고, 상기 송신기는 상기 비디오 채널을 통해 비디오 데이터 및 보조 데이터를 전송하도록 구성되고, 상기 비디오 데이터는 상기 풀 세트의 코드 워드들에 의해 결정되며, 상기 보조 데이터는 상기 바람직한 워드들에 의해 결정되는 것을 특징으로 하는 통신 시스템.
  110. 제 109 항에 있어서,
    상기 링크는 TMDS 링크이고, 상기 로버스트 서브세트는, 가드 밴드 워드로만 사용되는 하나 이상의 천이-최소화 TMDS 코드 워드를 포함하는, 17 개의 다른 천이-최소화 TMDS 코드 워드로 구성되는 것을 특징으로 하는 통신 시스템.
  111. 제 107 항에 있어서,
    상기 링크는 TMDS 링크이고, 상기 로버스트 서브세트는, 가드 밴드 워드로만 사용되는 하나 이상의 TMDS 코드 워드를 포함하는 17 개의 다른 TMDS 코드 워드로 구성되는 것을 특징으로 하는 통신 시스템.
  112. 제 111 항에 있어서,
    상기 각 바람직한 워드 세트는 상기 바람직한 워드들의 워드로만 구성되는 것을 특징으로 하는 통신 시스템.
  113. 수신기;
    송신기; 및
    상기 송신기 및 수신기 사이의 시리얼 링크로서, 상기 송신기는 입력 데이터를 수신하도록 연결되고, 상기 입력 데이터를 인코딩함으로써 선택된 코드 워드의 시퀀스를 생성하도록 구성되고, 상기 선택된 코드 워드의 시퀀스를 상기 시리얼 링크를 통해 상기 수신기로 전송하도록 구성되며, 상기 각 선택된 코드 워드는 코드 워드 풀 세트의 로버스트 서브세트의 멤버이며, 상기 풀 세트는 상기 코드 워드들의 소정 분리된 클러스터들을 포함하고, 상기 입력 데이터는 상기 풀 세트의 종래의 코드 워드 시퀀스로 인코딩될 수 있고, 상기 선택된 코드 워드의 시퀀스는 상기 링크를 통한 전송 도중 상기 종래의 코드 워드 시퀀스보다 심볼-간 간섭에 덜 민감한, 시리얼 링크를 포함하며,
    상기 로버스트 서브세트는 상기 풀 세트의 바람직한 워드들로 구성되고, 상기 풀 세트의 바람직한 워드가 아닌 상기 코드 워드는 비-바람직한 워드이며, 상기 바람직한 워드 각각은 입력 데이터 값을 나타내고, 상기 클러스터 각각은 하나 이상의 상기 바람직한 워드로 구성된 바람직한 워드 세트를 포함하고, 또한 하나 이상의 클러스터들은 하나 이상의 비-바람직한 워드를 포함하고, 상기 바람직한 워드 세트 각각은 다른 입력 데이터 값을 나타내고, 상기 수신기는 상기 클러스터 중 하나의 멤버인 수신된 코드 워드 각각을 상기 클러스터의 중 상기 하나의 바람직한 워드 세트에 의해 결정된 입력 데이터 값으로 매핑하도록 구성되며,
    상기 각 클러스터는 적어도 제1 비-바람직한 워드, 제2 비-바람직한 워드, 및 제3 비-바람직한 워드를 포함하고, 상기 제1 비-바람직한 워드의 N번째 비트는 상기 클러스터의 상기 바람직한 워드들 중 하나의 N 번째 비트와 다르고, 상기 제2 비-바람직한 워드는 상기 제1 비-바람직한 워드의 우측-쉬프트된 버전이며, 상기 제3 비-바람직한 워드는 상기 제1 비-바람직한 워드의 좌측-쉬프트된 버전인 것을 특징으로 하는 통신 시스템.
  114. 제 113 항에 있어서,
    상기 각 클러스터는 또한, 제4 비-바람직한 워드 및 제5 비-바람직한 워드를 포함하며, 상기 제4 비-바람직한 워드는 상기 제2 비-바람직한 워드와 가장 중요한 비트만 다를 뿐 상기 제2 비-바람직한 워드와 동일하며, 상기 제5 비-바람직한 워드는 상기 제5 비-바람직한 워드와 가장 중요한 비트만 다를 뿐 상기 제5 비-바람직한 워드와 동일한 것을 특징으로 하는 시스템.
  115. 제 113 항에 있어서,
    상기 링크는 하나 이상의 비디오 채널을 포함하고, 상기 송신기는 상기 비디오 채널을 통해 비디오 데이터 및 보조 데이터를 전송하도록 구성되고, 상기 비디오 데이터는 상기 풀 세트의 코드 워드들에 의해 결정되며, 상기 보조 데이터는 상기 바람직한 워드들에 의해 결정되는 것을 특징으로 하는 통신 시스템.
  116. 제 115 항에 있어서,
    상기 링크는 TMDS 링크이고, 상기 로버스트 서브세트는, 가드 밴드 워드로만 사용되는 하나 이상의 천이-최소화 TMDS 코드 워드를 포함하는, 17 개의 다른 천이-최소화 TMDS 코드 워드로 구성되는 것을 특징으로 하는 통신 시스템.
  117. 제 113 항에 있어서,
    상기 링크는 TMDS 링크이고, 상기 로버스트 서브세트는, 가드 밴드 워드로만 사용되는 하나 이상의 TMDS 코드 워드를 포함하는 17 개의 다른 TMDS 코드 워드로 구성되는 것을 특징으로 하는 통신 시스템.
  118. 송신기;
    하나 이상의 입력부 및 하나 이상의 출력부를 갖는 수신기; 및
    하나 이상의 비디오 채널을 갖고, 상기 송신기 및 상기 수신기의 하나 이상의 입력부 사이에 연결된 하나 이상의 시리얼 링크를 포함하고,
    상기 송신기 및 수신기 각각은 전송 상태 및 침묵 상태 중 어느 선택된 한 상태에서 동작 가능하며, 상기 전송 상태의 송신기는 비디오 데이터 및 보조 데이터를 암호화 및 인코딩함으로써 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 생성하고, 액티브 비디오 주기 동안 상기 비디오 채널을 통해 상기 인코딩된 비디오 데이터를 상기 수신기로 전송하고, 데이터 아일랜드 동안 상기 링크를 통해 상기 인코딩된 보조 데이터를 포함하는 패킷들을 상기 수신기로 전송하도록 구성되며, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와도 동시에 일어나거나 겹치지도 않는 타임 구간이며, 상기 침묵 상태의 송신기는 상기 비디오 데이터 및 상기 보조 데이터 어느 것도 암호화하지 않으며, 상기 송신기는 상기 전송 상태 및 상기 침묵 상태에서 상기 어느 액티브 비디오 주기와 동시에 일어나지도 겹치지도 않는 제어 데이터 주기 동안 상기 링크를 통해 제어 데이터를 상기 수신기로 전송하도록 동작 가능하고,
    상기 수신기는 상기 전송 상태에서 상기 링크를 통해 수신된 몇 개 이상의 상기 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 디코딩 등을 수행함으로써 복원된 비디오 데이터 및 복원된 보조 데이터를 생성하고, 상기 복원된 비디오 데이터 및 상기 복원된 보조데이터를 상기 하나 이상의 출력부로 인가하도록 동작 가능하며, 상기 침묵 상태의 수신기는 상기 링크를 통해 전송된 데이터에 의해 결정된 유용한 보조 데이터 또는 유용한 비디오 데이터 어느 것도 상기 하나 이상의 출력부에 인가하지 않고, 상기 수신기는 상기 링크를 통해 수신된 제어 신호에 응답하여 상기 제어 데이터 주기 동안에만 상기 침묵 상태와 상기 전송 상태 사이의 천이를 진행하도록 구성되는 것을 특징으로 하는 통신 시스템.
  119. 제 118 항에 있어서,
    상기 송신기는 상기 몇 개 이상의 각 제어 데이터 주기 동안 상기 링크를 통해 복호화 제어 데이터를 전송하고, 하나 이상의 침묵 상태 입장(entry) 신호 및 하나 이상의 침묵 상태 퇴장(exit) 신호를 상기 링크를 통해 전송하도록 구성되며, 그리고
    상기 수신기는 상기 제어 데이터 주기들 중 한 주기 동안 수신된 상기 복호 화 제어 데이터에 응답하여 키 계산 동작을 시작하는 상기 전송 상태의 동작이 가능하고, 상기 침묵 상태 입장 신호 및 상기 복호화 제어 신호에 응답하여 상기 침묵 상태로 입장하도록 구성되고, 상기 침묵 퇴장 신호 및 상기 복호화 제어 신호에 응답하여 상기 침묵 상태로부터 상기 전송 상태로의 천이를 진행하도록 구성되는 것을 특징으로 하는 통신 시스템.
  120. 제 119 항에 있어서,
    상기 송신기는 상기 전송 상태에서 상기 각 침묵 상태 입장 신호를 나타내는 제어 패킷을 상기 링크를 통해 전송하도록 동작 가능하며, 상기 침묵 상태에서 상기 각 침묵 상태 퇴작 신호를 나타내는 제어 패킷을 상기 링크를 통해 전송하도록 동작 가능한 것을 특징으로 하는 통신 시스템.
  121. 제 120 항에 있어서,
    상기 수신기는 상기 한 침묵 상태 입장 신호를 나타내는 제어 패킷 중 하나를 수신한 뒤 상기 제어 데이터 주기 중 한 주기 동안 상기 복호화 제어 데이터를 수신하는 것에 응답하여 상기 전송 상태로부터 상기 침묵 상태로의 천이를 진행하도록 구성되는 것을 특징으로 하는 통신 시스템.
  122. 제 119 항에 있어서,
    상기 시리얼 링크는 TMDS 링크이며, 상기 송신기는 상기 전송 상태에서 상기 TMDS 링크의 상기 비디오 채널들을 통해 상기 인코딩된 비디오 데이터의 프레임들을 전송하도록 동작 가능하며, 상기 수신기는 상기 전송 상태에서 상기 제어 데이터 주기들 중 한 주기 동안 소정 타임 슬롯 내의 소정 최소 수의 연속된 각 픽셀 클록 사이클 동안 상기 복호화 제어 데이터를 검출하는 것만 응답하여 상기 키 계산 동작을 시작하도록 동작 가능한 것을 특징으로 하는 통신 시스템.
  123. 제 118 항에 있어서,
    상기 송신기는 상기 침묵 상태에서 상기 어느 인코딩된 비디오 데이터 또는 상기 어느 인코딩된 보조 데이터를 상기 링크를 통해 전송하지 않는 것을 특징으로 하는 통신 시스템.
  124. 하나 이상의 비디오 채널을 갖는 하나 이상의 시리얼 링크와 상기 시리얼 링크에 연결된 수신기를 포함하는 통신 시스템에서 사용하기 위한 송신기에 있어서, 상기 송신기는 전송 상태 및 침묵 상태 중 어느 선택된 상태에서 동작 가능하며, 상기 송신기는:
    상기 전송 상태에서 비디오 데이터 및 보조 데이터를 암호화함으로써 암호화된 비디오 데이터 및 암호화된 보조 데이터를 생성하도록 동작 가능한 암호화 회로로서, 상기 침묵 상태에서의 상기 암호화 회로는 암호화된 비디오 데이터 및 암호화된 보조 데이터 어느 것도 생성하지 않는, 암호화 회로; 및
    상기 암호화 회로와 연결되고 상기 링크와 연결된 하나 이상의 출력부를 갖 는 부가 회로로서, 상기 부가 회로는 상기 전송 상태에서 상기 암호화된 비디오 데이터 및 암호화된 보조 데이터를 인코딩함으로써 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 생성하고, 액티브 비디오 주기 동안 상기 인코딩된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 데이터 아일랜드 주기 동안 상기 인코딩된 보조 데이터를 포함하는 패킷들을 상기 하나 이상의 출력부로 인가하도록 동작 가능하며, 상기 데이터 아일랜드는 상기 어느 액티브 비디오 주기와도 동시에 일어나거나 겹치지도 않는 타임 구간인, 부가 회로를 포함하고,
    상기 부가 회로는 상기 전송 상태 및 상기 침묵 상태에서 상기 어느 액티브 비디오 주기와도 동시에 일어나거나 겹치지도 않는 제어 데이터 주기 동안 제어 데이터를 상기 하나 이상의 출력부로 인가하도록 동작 가능하며, 또한 상기 부가 회로는 침묵 상태 경고 신호를 수신하고 상기 침묵 상태 경고 신호에 응답하여 상기 제어 데이터 주기 동안에만 상기 암호화 회로를 상기 전송 상태로부터 상기 침묵 상태로의 천이를 진행하도록 야기하는 것을 특징으로 하는 송신기.
  125. 제 124 항에 있어서,
    상기 부가 회로는 상기 전송 상태에서 상기 링크를 통해 침묵 상태 입장 신호를 나타내는 제어 패킷을 전송하고, 상기 침묵 상태에서 상기 링크를 통해 침묵 상태 퇴장 신호를 나타내는 제어 패킷을 전소하도록 동작 가능한 것을 특징으로 하는 송신기.
  126. 제 125 항에 있어서,
    상기 부가 회로는 상기 몇 개 이상의 각 제어 데이터 주기 동안 복호화 제어 데이터를 상기 하나 이상의 출력부로 인가하도록 구성되는 것을 특징으로 하는 송신기.
  127. 제 124 항에 있어서,
    상기 시리얼 링크는 TMDS 링크이며, 상기 부가 회로는 상기 전송 상태에서 상기 TMDS 링크의 비디오 채널을 통해 상기 인코딩된 비디오 데이터의 프레임을 전송하도록 동작 가능하고, 또한 상기 부가 회로는 상기 전송 상태 및 상기 침묵 상태에서 몇 개 이상의 제어 데이터 주기들 각각의 소정 타임 슬롯 동안 복호화 제어 데이터를 상기 하나 이상의 출력부로 반복적으로 인가하도록 동작 가능한 것을 특징으로 하는 송신기.
  128. 제 124 항에 있어서,
    상기 부가 회로는 상기 침묵 상태에서 상기 인코딩된 비디오 데이터 또는 상기 인코딩된 보조 데이터 어느 것도 상기 하나 이상의 출력부로 인가하지 않는 것을 특징으로 하는 송신기.
  129. 송신기 및 상기 송신기와 연결된 하나 이상의 시리얼 링크를 포함하는 통신 시스템에서 사용하기 위한 수신기에 있어서, 상기 수신기는 전송 상태 및 침묵 상 태 중 어느 선택된 상태에서 동작 가능하며, 상기 수신기는:
    상기 링크와 연결되도록 구성된 하나 이상의 입력부를 갖는 제1 회로로, 상기 제1 회로는 상기 전송 상태에서 액티부 비디오 주기 동안 상기 하나 이상의 입력부에서 수신된 암호화된 비디오 데이터를 디코딩함하고 데이터 아일랜드 동안 상기 하나 이상의 입력부에서 수신된 암호화된 비디오 데이터를 디코딩함으로써 디코딩된 비디오 데이터 및 디코딩된 보조데이터를 생성하도록 동작 가능하고, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와도 동시에 일어나지 않고 겹치지도 않는 타임 구간인, 제1 회로;
    상기 제1 회로와 연결되고, 상기 전송 모드에서 상기 디코딩된 비디오 및 상기 디코딩된 보조 데이터를 복호화함으로써 복호화된 비디오 데이터 및 복호화된 보조 데이터를 생성하도록 동작 가능한 복호화 회로로, 상기 복호화 회로는 침묵 모드에서 어느 암호화된 비디오 데이터 및 어느 암호화된 보조 데이터도 생성하지 않는, 복호화 회로; 및
    상기 복호화 회로와 연결되고, 하나 이상의 출력부를 갖는 출력 회로로, 상기 출력 회로는 상기 전송 모드에서, 상기 하나 이상의 출력부로, 상기 복호화된 보조 데이터 및 상기 복호화된 비디오 데이터에 의해 결정된 복원된 보조 데이터 및 복원된 비디오 데이터를 인가하도록 동작 가능하고, 상기 출력 회로는 상기 침묵 모드에서 상기 복호화 회로로부터 상기 출력 회로에 의해 수신된 데이터에 의해 결정된 어느 유용한 보조 데이터 또는 어느 유용한 비디오 데이터도 상기 하나 이상의 출력부로 인가하지 않으며, 상기 복호화 회로 및 상기 제1 회로 및 상기 출력 회로 중 하나 이상은 상기 제1 회로의 하나 이상의 입력부에서 수신된 제어 신호에 응답하여 제어 데이터 주기 동안에만 상기 침묵 상태와 상기 전송 상태 사이의 천이를 진행하도록 구성되며, 상기 제어 데이터 주기는 상기 어느 액티브 비디오 주기와도 동시에 일어나거나 또는 겹치지도 않는, 출력 회로부를 포함하는 것을 특징으로 하는 수신기.
  130. 제 129 항에 있어서,
    상기 제1 회로는 하나 이상의 레지스터를 포함하고, 상기 하나 이상의 입력부에서 수신된 침묵 상태 입장 신호에 응답하여 상기 레지스터 내의 하나 이상의 침묵 상태 입장 비트를 설정하도록 구성되며, 상기 복호화 회로는 상기 전송 상태에서 상기 침묵 상태 입장 비트가 설정되었을 때의 한 제어 데이터 주기 동안 상기 제1 회로의 하나 이상의 입력부에서의 복호화 제어 데이터의 수신에 응답하여 상기 침묵 상태로의 천이를 진행하도록 동작 가능하며, 그리고
    상기 복호화 회로는 상기 전송 상태에서 상기 침묵 상태 입장 비트가 설정되었을 때의 한 제어 데이터 주기 동안 상기 제1 회로의 하나 이상의 입력부에서의 상기 복호화 제어 데이터의 수신에 응답하여 키 계산 동작을 시작하도록 동작 가능한 것을 특징으로 한 수신기.
  131. 제 130 항에 있어서,
    상기 복호화 회로는 상기 전송 상태에서 상기 침묵 상태 입장 비트가 설정되 었을 때의 한 제어 데이터 주기 동안 소정 타임 슬롯 내의 소정 최소 수의 연속된 각 픽셀 클록 동안 상기 제1 회로의 하나 이상의 입력부에서의 상기 복호화 제어 데이터의 수신에만 응답하여 상기 각 키 계산 동작을 시작하도록 동작 가능한 것을 특징으로 한 수신기.
  132. 하나 이상의 비디오 채널을 포함하는 시리얼 링크에 연결되도록 구성된 수신기로서, 상기 수신기는:
    상기 링크와 연결되도록 구성된 하나 이상의 입력부;
    상기 하나 이상의 입력부에서 수신된 데이터로부터 복원된 비디오 데이터를 인가하기 위한 하나 이상의 비디오 출력부 및 상기 하나 이상의 입력부에서 수신된 데이터로부터 복원된 보조 데이터를 인가하기 위한 하나 이상의 비-비디오 출력부; 및
    상기 각 입력부 및 상기 각 출력부 사이에 연결되고, 액티브 비디오 주기 동안 상기 하나 이상의 입력부에서 수신된 인코딩된 비디오 데이터를 디코딩 등을 수행함으로써 복원된 비디오 데이터를 생성하고, 상기 복원된 비디오 데이터를 상기 하나 이상의 비디오 출력부로 인가하고, 데이터 아일랜드 동안 상기 하나 이상의 입력부에서 수신된 몇 개 이상의 코드 워드 패킷들을 디코딩함으로써 디코딩된 워드를 생성하고, 상기 디코딩된 워드로부터 하나 이상의 보조 데이터 스트림을 생성하고, 상기 각 보조 데이터 스트림을 상기 하나 이상의 비-비디오 출력부로 인가하도록 구성된 회로로서, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 아일랜드와 동시에 일어나지도 겹치지도 않는 타임 구간이며, 상기 회로는 몇 개 이상의 상기 디코딩된 워드를 복호화 하도록 구성된 복호화 회로를 포함하고, 상기 회로는 상기 몇 개 이상의 디코딩된 워드들 및 상기 몇 개 이상의 디코딩된 워드들의 복호화된 버전들로부터 상기 복호화 회로가 정상적으로 동기화된 방식으로 동작하는 지를 판단하도록 구성된, 회로를 포함하는 것을 특징으로 하는 수신기.
  133. 제 132 항에 있어서,
    상기 보조 데이터 스트림은 오디오 데이터 스트림이고, 상기 회로는 상기 몇 개 이상의 디코딩된 워드들 및 상기 몇 개 이상의 디코딩된 워드들의 복호화된 버전들로부터 상기 복호화 회로가 몇 개 이상의 각 패킷들에 의해 결정된 몇 개 이상의 데이터를 암호화하기 위해 이용된 암호화 회로와 동기하여 동작하고 있는 지를 판단하도록 구성되는 것을 특징으로 하는 수신기.
  134. 제 132 항에 있어서,
    상기 링크는 TMDS 링크이며, 상기 인코딩된 비디오 데이터는 TMDS 코드 워드이며, 상기 패킷들의 코드 워드들은 TMDS 코드 워드이고, 상기 각 패킷은 헤더 및 2 이상의 서브-패킷들을 포함하고, 상기 각 패킷의 헤더는 헤더 데이터 및 상기 헤더 데이터에 대한 BCH 패리티 비트를 포함하고, 상기 각 서브-패킷들은 서브-패킷 데이터 및 상기 서브-패킷 데이터에 대한 BCH 패리티 비트를 포함하고, 상기 회로는 상기 몇 개 이상의 디코딩된 워드들 및 상기 몇 개 이상의 디코딩된 워드들의 복호화된 버전들로부터 전송 에러들 및 복호화 에러들을 식별하고 구별하도록 구성되는 것을 특징으로 하는 수신기.
KR1020047009982A 2001-12-24 2002-12-05 시리얼 링크를 통한 비디오 및 보조 데이터 전송 방법 및시스템 KR100699460B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US10/036,234 US7359437B2 (en) 2001-09-12 2001-12-24 Encoding method and system for reducing inter-symbol interference effects in transmission over a serial link
US10/036,234 2001-12-24
US10/095,422 2002-03-12
US10/095,422 US7257163B2 (en) 2001-09-12 2002-03-12 Method and system for reducing inter-symbol interference effects in transmission over a serial link with mapping of each word in a cluster of received words to a single transmitted word
US10/171,860 US7088398B1 (en) 2001-12-24 2002-06-14 Method and apparatus for regenerating a clock for auxiliary data transmitted over a serial link with video data
US10/171,860 2002-06-14
US10/192,296 2002-07-10
US10/192,296 US6914637B1 (en) 2001-12-24 2002-07-10 Method and system for video and auxiliary data transmission over a serial link
PCT/US2002/038766 WO2003058946A2 (en) 2001-12-24 2002-12-05 Method and system for video and auxiliary data transmission over a serial link

Publications (2)

Publication Number Publication Date
KR20040075030A KR20040075030A (ko) 2004-08-26
KR100699460B1 true KR100699460B1 (ko) 2007-03-27

Family

ID=50036063

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020047009982A KR100699460B1 (ko) 2001-12-24 2002-12-05 시리얼 링크를 통한 비디오 및 보조 데이터 전송 방법 및시스템
KR1020047009983A KR100699469B1 (ko) 2001-12-24 2002-12-05 데이터 전송을 위한 클록을 재생성하기 위한 시스템

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020047009983A KR100699469B1 (ko) 2001-12-24 2002-12-05 데이터 전송을 위한 클록을 재생성하기 위한 시스템

Country Status (1)

Country Link
KR (2) KR100699460B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130076928A (ko) * 2011-12-29 2013-07-09 삼성전자주식회사 데이터 송신 장치, 데이터 수신 장치, 부가 데이터 송신 방법 및 수신 방법

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101444842B1 (ko) * 2009-09-08 2014-09-26 삼성테크윈 주식회사 감시 카메라의 제어 방법 및 이를 채용한 감시 카메라
US9300235B2 (en) * 2013-03-27 2016-03-29 Allegro Microsystems, Llc System and method for serial communication by an electronic circuit
KR102157092B1 (ko) * 2014-03-06 2020-09-18 엘지전자 주식회사 전자 기기 및 그 제어 방법
KR101683175B1 (ko) * 2014-03-06 2016-12-06 삼성전자주식회사 영상 복호화 방법 및 그 장치, 영상 부호화 방법 및 그 장치
US10575267B2 (en) * 2017-01-05 2020-02-25 Samsung Electronics Co., Ltd System and method for providing weighted pattern demapper for Bluetooth® low energy long range
KR102223031B1 (ko) 2019-03-20 2021-03-04 삼성전자주식회사 향상된 브레이드 클락 시그널링을 이용한 차동 신호 처리장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130076928A (ko) * 2011-12-29 2013-07-09 삼성전자주식회사 데이터 송신 장치, 데이터 수신 장치, 부가 데이터 송신 방법 및 수신 방법
KR101863944B1 (ko) * 2011-12-29 2018-06-04 삼성전자주식회사 데이터 송신 장치, 데이터 수신 장치, 부가 데이터 송신 방법 및 수신 방법

Also Published As

Publication number Publication date
KR20040071247A (ko) 2004-08-11
KR20040075030A (ko) 2004-08-26
KR100699469B1 (ko) 2007-03-27

Similar Documents

Publication Publication Date Title
JP4176643B2 (ja) シリアルリンク上をビデオデータと共に伝送された補助データのためのクロックを再生する方法および装置
EP1486056B1 (en) System for video and auxiliary data transmission over a serial link
CA2471541A1 (en) System for serial transmission of video and packetized audiodata in multiple formats
US7283566B2 (en) Method and circuit for generating time stamp data from an embedded-clock audio data stream and a video clock
US7797536B1 (en) Cryptographic device with stored key data and method for using stored key data to perform an authentication exchange or self test
JP4229836B2 (ja) 一群の受信ワードの各ワードを単一送信ワードにマッピングすることで連続リンク送信上のシンボル間干渉効果を低減させる方法および装置。
US7295578B1 (en) Method and apparatus for synchronizing auxiliary data and video data transmitted over a TMDS-like link
US7558326B1 (en) Method and apparatus for sending auxiliary data on a TMDS-like link
US20070009060A1 (en) Method and system for transmiting N-bit video data over a serial link
KR100699460B1 (ko) 시리얼 링크를 통한 비디오 및 보조 데이터 전송 방법 및시스템
KR100699452B1 (ko) 비디오 및 패킷화된 오디오 데이터를 다수의 포맷으로직렬 전송하기 위한 시스템
US20070297342A1 (en) Information processor with digital broadcast receiver
US7792152B1 (en) Scheme for transmitting video and audio data of variable formats over a serial link of a fixed data rate
EP1330910B1 (en) Method and system for reducing inter-symbol interference effects in transmission over a serial link with mapping of each word in a cluster of received words to a single transmitted word
JP2006050353A (ja) 通信方法、送信装置及び通信システム

Legal Events

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

Payment date: 20130308

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140310

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150306

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160308

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170314

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180307

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190312

Year of fee payment: 13