KR100699452B1 - System for serial transmission of video and packetized audiodata in multiple formats - Google Patents

System for serial transmission of video and packetized audiodata in multiple formats Download PDF

Info

Publication number
KR100699452B1
KR100699452B1 KR1020047009984A KR20047009984A KR100699452B1 KR 100699452 B1 KR100699452 B1 KR 100699452B1 KR 1020047009984 A KR1020047009984 A KR 1020047009984A KR 20047009984 A KR20047009984 A KR 20047009984A KR 100699452 B1 KR100699452 B1 KR 100699452B1
Authority
KR
South Korea
Prior art keywords
data
video
audio
format
clock
Prior art date
Application number
KR1020047009984A
Other languages
Korean (ko)
Other versions
KR20040075031A (en
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/038948 external-priority patent/WO2003058826A2/en
Publication of KR20040075031A publication Critical patent/KR20040075031A/en
Application granted granted Critical
Publication of KR100699452B1 publication Critical patent/KR100699452B1/en

Links

Images

Classifications

    • 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

송신기(1), 수신기(2), 및 시리얼 링크를 포함하는 통신 시스템이 개시된다. 상기 통신 시스템에서, 인코딩된 데이터(예를 들어, 비디오, 오디오, 및 선택적으로는 다른 보조 데이터)가 송신기로부터 수신기로 전송된다. 시리얼 링크는 TMDS 링크 또는 TMDS-like 링크일 수는 있지만 반드시 그럴 필요는 없다. 일반적인 실시예에서, 인코딩된 오디오 데이터들의 패킷들이 인코딩된 비디오 데이터 버스트 사이의 데이터 아일랜드 동안 링크의 하나 이상의 각 채널을 통해 전송된다. 본 발명의 다른 특징은 시리얼 링크를 통해 (다수의 포맷 중 어느 하나를 갖는) 비디오 데이터를 인코딩하고 및 (다수의 포맷 중 어느 하나를 갖는) 오디오 데이터를 인코딩하고 패킷화하기 위한 송신기, 이러한 데이터를 수신하기 위한 (그리고 재포맷하기 위한) 수신기, 와 시리얼 링크를 통해 수신된 또는 전송될 데이터의 포맷, 인코딩, 패킷화, 디코딩 그리고 재포맷 방법을 포함한다.A communication system is disclosed that includes a transmitter (1), a receiver (2), and a serial link. In the communication system, encoded data (eg, video, audio, and optionally other auxiliary data) is transmitted from the transmitter to the receiver. The serial link can be a TMDS link or a TMDS-like link, but it is not necessary. In a general embodiment, packets of encoded audio data are transmitted on one or more respective channels of a link during a data island between encoded video data bursts. Another feature of the invention is a transmitter for encoding video data (with any of a number of formats) and serially encoding and packetizing audio data (with any of a number of formats) over a serial link, such data Receivers for receiving (and for reformatting), and methods of formatting, encoding, packetizing, decoding, and reformatting data received or to be transmitted over a serial link.

Description

비디오 및 패킷화된 오디오 데이터를 다수의 포맷으로 직렬 전송하기 위한 시스템{System for serial transmission of video and packetized audiodata in multiple formats}System for serial transmission of video and packetized audio data in multiple formats}

본 출원은 2002년 6월 14일자로 출원되고 본 출원의 양수인에게 양도된 미국 특허 출원 No.10/171,860 호, 2002년 3월 12일자로 출원되고 본 출원의 양수인에게 양도된 미국 특허 출원 No.10/095,422호, 및 2001년 12월 24일자로 출원되고 본 출원의 양수인에게 양도된 미국 특허 출원 No.10/036,234호의 계속출원이다.This application is filed on June 14, 2002 and assigned to the assignee of this application, US Patent Application No. 10 / 171,860, filed on March 12, 2002 and assigned to the assignee of this application. 10 / 095,422, and US Patent Application No. 10 / 036,234, filed December 24, 2001 and assigned to the assignee of the present application.

본 발명은 인코딩된 비디오 데이터 및 하나 이상의 다른 인코딩 데이터 스트림(예를 들어, 인코딩된 비디오 데이터 및 인코딩된 오디오 데이터 및/또는 다른 부가적인 데이터 패킷)을 시리얼 링크를 통해 전송하는 방법 및 시스템과, 이러한 시스템에서 사용하는 송신기 및 수신기에 관한 것이다. 바람직한 실시예에서, 시리얼 링크는 TMDS (transition minimized differential signaling) 링크이거나 TMDS 링크의 특징을 전부는 아니지만 몇 가지는 갖는 다른 링크일 수 있다.The present invention provides a method and system for transmitting encoded video data and one or more other encoded data streams (e.g., encoded video data and encoded audio data and / or other additional data packets) over a serial link; The present invention relates to a transmitter and a receiver used in a system. In a preferred embodiment, the serial link may be a transition minimized differential signaling (TMDS) link or another link having some, but not all, features of the TMDS link.

명세서 전 부분에서, 데시멀(10진수) 수는 부가적인 접두사(prefix) 또는 접미사(suffix)를 사용하지 않고, 때때로 아래의 표시법(notation)이 사용된다.In the previous part of the specification, the decimal number does not use additional prefixes or suffixes, and sometimes the following notation is used.

"bit 0"는 바이트 또는 워드의 최하위 비트(least-significant bit)를 나타 낸다."bit 0" represents the least-significant bit of a byte or word.

접두사 "Ox"는 다음의 기호가 16진수로 표시되는 숫자임을 나타낸다(예를 들어, "OxC"는 이진수1100를 나타낸다).The prefix "Ox" indicates that the following symbol is a number represented in hexadecimal (for example, "OxC" stands for binary 1100).

접두사"Ob"는 다음의 기호가 바이너리(2진수)로 표시되는 숫자임을 나타낸다(예를 들어, "Ob1000"는 십진수 8을 나타낸다).The prefix "Ob" indicates that the following symbol is a number represented in binary (binary) (for example, "Ob1000" represents decimal 8).

본 발명의 구성 요소들은 시리얼 링크의 특성에 기초한다. 데이터 및 클록 신호를 전송하기 위한 다양한 시리얼 링크가 알려져 있다.The components of the present invention are based on the characteristics of the serial link. Various serial links are known for transmitting data and clock signals.

호스트 프로세스 (예를 들어, 퍼스널 컴퓨터)로부터 모니터로 비디오 데이터의 고속 전송을 위해 주로 사용되는 종래의 시리얼 링크 중의 하나로, "TMDS" 링크 (transition minimized differential signaling interface)가 알려져 있다. TMDS 링크는 다음과 같은 특징을 포함한다.As one of the conventional serial links mainly used for high speed transfer of video data from a host process (eg a personal computer) to a monitor, a transition minimized differential signaling interface (TMDS) link is known. The TMDS link includes the following features.

1. 비디오 데이터는 인코딩된 다음 인코딩된 워드로 전송된다(각 8비트의 디지털 비디오 데이터 워드는 전송 전에 인코딩된 10 비트 워드로 전환된다.);1. Video data is encoded and then transmitted in an encoded word (each 8-bit digital video data word is converted to an encoded 10-bit word before transmission);

a. 상기 인코딩은 "in-band" 워드 세트들과 "out-of-band" 워드 세트들을 결정한다(인코더는 제어 신호 또는 동기 신호에 응답하여 "out-of-band" 워드들만 생성할 수 있더라도, 비디오 데이터에 응답해서는 "in-band" 워드들만을 생성할 수 있다. 각 in-band 워드는 하나의 입력 비디오 데이터 워드의 인코딩 결과 생성된 인코딩된 워드이다. 링크를 통해 전송된 in-band 워드들이 아닌 모든 워드들은 "out-of-band" 워드들이다.);a. The encoding determines "in-band" word sets and "out-of-band" word sets (even though the encoder can only generate "out-of-band" words in response to a control signal or a sync signal). Only "in-band" words can be generated in response to the data, each in-band word is an encoded word resulting from the encoding of one input video data word, not in-band words transmitted over the link. All words are "out-of-band" words);

b. 비디오 데이터의 인코딩은 in-band 워드들이 천이(transition)가 최소화되도록 수행된다(in-band 워드들의 시퀀스는 감소된 또는 최소의 천이 수를 갖는다.);b. Encoding of the video data is performed such that transitions in in-band words are minimized (the sequence of in-band words has a reduced or minimum number of transitions);

c. 비디오 데이터의 인코딩은 in-band 워드들이 DC 밸런스 되도록 수행된다(상기 인코딩은 in-band 워드들의 시퀀스를 전송하는 각 전송된 전압 파형이 기준 전압으로부터 소정의 문턱 전압보다 크게 벗어나지 않게 한다. 특히, 각 "in-band" 워드의 10번째 비트는 in-band 워드의 다른 9개 비트들 중 8개 비트들이 인코딩 처리 중에 반전되었는지를 나타내고, 전에 인코딩된 데이터 비트들의 스트림에서 1 및 0들의 러닝 카운트들(running counts) 사이의 불균형을 수정한다.);c. The encoding of the video data is performed such that the in-band words are DC balanced (the encoding ensures that each transmitted voltage waveform carrying the sequence of in-band words does not deviate more than a predetermined threshold voltage from the reference voltage. In particular, each The tenth bit of the "in-band" word indicates whether eight of the other nine bits of the in-band word have been inverted during the encoding process, and the running counts of ones and zeros in the stream of previously encoded data bits ( correct the imbalance between running counts);

2. 인코딩된 비디오 데이터 및 비디오 클록 신호는 차동 신호(differential signals)로 전송된다(비디오 클록 및 인코딩된 비디오 데이터는 컨덕터 쌍(conductor pair)을 통해 차동 신호로 전송된다.);2. The encoded video data and the video clock signal are transmitted as differential signals (the video clock and the encoded video data are transmitted as differential signals via a conductor pair);

3. 3 개의 컨덕터 쌍들이 상기 인코딩된 비디오 신호를 전송하고, 4번째 컨덕터 쌍이 비디오 클록 신호를 전송한다;3. Three conductor pairs transmit the encoded video signal, and a fourth conductor pair transmits the video clock signal;

4. 신호 전송은 송신기(일반적으로 데스크 탑 또는 휴대용 컴퓨터, 또는 다른 호스트들과 관련된다)로부터, 수신기(일반적으로 모니터 또는 다른 디스플레이 장치 요소)로의 한 방향으로 이루어진다.4. The signal transmission takes place in one direction from the transmitter (typically associated with a desktop or portable computer, or other hosts) to the receiver (generally a monitor or other display device element).

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) 및 부가적인 회로(미도시)를 포함한다.One of the uses of the TMDS serial link is the "Digital Visual Interface" interface ("DVI" link) adopted by the Digital Display Working Group. This is explained with reference to FIG. 1. The DVI link can be configured to include two TMDS links or one TMDS link (which share a common conductor pair for transmitting video clock signals), as well as additional control lines between the transmitter and receiver. The DVI link of FIG. 1 includes the transmitter 1, the receiver 3 and the following conductors between the transmitter and the receiver: four conductor pairs (channel 0, channel 1, and channel 2 for video data, and video Channel C for clock signals), for bidirectional communication between a transmitter and a monitor with a receiver associated with a conventional Display Data Channel Standard ("Display Data Channel Standard" Version 2, Rev0 dated April 9, 1996 of the Video Electronics Standard Association). Display Data Channel (DDC) line, Hot Plug Detect (HPD) line (this allows the monitor to send signals that enable the processor associated with the transmitter to indicate the presence of the monitor), (to send analog video to the receiver) Analog line, power line (to supply DC power to the monitor associated with the receiver and receiver). Display data channel standards include the transmission of an Extended Display Identification (EDID) message between a transmitter and a monitor associated with a receiver and a monitor by the monitor and the transmission of a monitor control signal by the transmitter. Specifies protocols for The transmitter 1 comprises three identical encoder / serial converter units 2, 4, and 6 and additional circuitry (not shown). The receiver 3 comprises inter-channel array circuitry 14 and additional circuitry (not shown) connected as shown with three identical recovery / decoder units 8, 10, and 12.

도 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 워드들을 생성한다.As shown in FIG. 1, circuit 2 encodes data to be transmitted over channel 0 and serializes the encoded bits. Similarly, circuit 4 encodes the data to be transmitted over channel 1 (also serializes the encoded bits), and circuit 6 encodes the data to be transmitted over channel 2 (also encoded bits). Serialize them). Each of the circuits 2, 4 and 6 is a digital video word (in response to a DE having a high value) in response to a control signal (an active high binary control signal called a “data enable” or “DE” signal), or Selectively encode a control or sync signal pair (in response to a DE with a low value). Each of encoders 2, 4, and 6 receives a different pair of control or synchronization signals: encoder 2 receives vertical and horizontal synchronization signals HSYNC and VSYNC; The encoder 4 receives the control bits CTL0 and CTL1; Encoder 6 receives control bits CTL2 and CTL3. Thus, each of encoders 2, 4 and 6 generates in-band words representing video data (in response to a DE having a high value), and encoder 2 is HSYNC (in response to a DE having a low value). And generate out-of-band words representing the value of VSYNC, and encoder 4 generates out-of-band words representing the values of CTL0 and CTL1 (in response to DE having a low value), 6) generates out-of-band words representing the values of CTL2 and CTL3 (in response to DE having a low value). In response to the DE having a low value, the encoders 4 and 6 each have four specific out-of representing the values (00, 01, 10, or 11) of the control bits CTL0 and CTL1 (or CTL2 and CTL3), respectively. -band Generate words.

시리얼 링크를 통해 전송된 비디오 데이터를 암호화하는 것이 제안되었다. 예를 들어, 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 데이터는 디코딩된 데이터를 복호화하고 처음 입력된 비디오 데이터를 복원하기 위해 논리 회로 내에서 디코딩된 비디오와 함께 처리된다.It has been proposed to encrypt video data transmitted over a serial link. For example, it has been proposed to use a cryptographic protocol known as "High Bandwidth Digital Content Protection" (HDCP), which encrypts digital video to be transmitted over a DVI link and decrypts the data in a DVI receiver. A DVI transmitter that implements HDCP outputs 24-bit buses known as cout [23: 0] during the video active period (ie, when DE is high). The 24-bit cout data is " Exclusive Ored " (within the logic circuitry of the transmitter) with 24-bit RGB video data input to the transmitter for encryption of the video data. The encrypted data is then encoded for transmission (according to the TMDS standard). In addition, the same cout data is generated at the receiver. Then, the encoded and encrypted data received at the receiver is subjected to TMDS decoding. The cout data is processed together with the decoded video within the logic circuit to decode the decoded data and to reconstruct the first input video data.

송신기가, HDCP 암호화되고 인코딩된 비디오 데이터의 전송을 시작하기 전에, 상기 송신기 및 수신기는 (수신기가 보호받는 컨텐츠를 인증하고, 입력 데이터의 암호화 및 전송된 암호화된 데이터의 복호화에 사용되는 공유된 비밀 값(secret value)을 확립시키는 것을 증명하는) 인증 프로토콜을 수행하기 위해 양방향으로 통신한다. 수신기가 인증된 다음, 송신기는 제어 신호에 응답하여 (입력 비디오 데이터의 제1 라인을 암호화하기 위한) 암호화 키의 초기 세트를 계산하고, 수신기가 (전송된 비디오 데이터의 수신되고 인코딩된 제1 라인을 복호화하기 위한) 복호화 키의 초기 세트를 계산하도록 (DE 가 로우 일 때 각 수직 블랭크 구간 동안) 수신기로 상기 제어 신호를 보낸다. 암호화/복호화 키들의 초기 세트를 생성한 다음, 송신기 및 수신기 각각은 비디오 데이터의 다음 라인을 암호화 (또는 복호화)하기 위한 새로운 키 세트들을 생성하기 위해 각 블랭크 (수직 또는 수평) 구간 동안 리-키잉(re-keying)을 수행하고, 입력된 비디오 데이터의 실제 암호화 (또는 수신되고, 디코딩된 비디오 데이터의 복호화)는 DE가 하이 일 때 (블랭크 구간이 아닐 동안)에만 마지막 키 세트를 이용하여 수행한다.Before the transmitter starts transmitting HDCP encrypted and encoded video data, the transmitter and receiver (the receiver uses a shared secret used to authenticate protected content, encrypt the input data and decrypt the transmitted encrypted data). It communicates in both directions to perform an authentication protocol (proving that it establishes a secret value). After the receiver is authenticated, the transmitter calculates an initial set of encryption keys (for encrypting the first line of input video data) in response to the control signal, and the receiver calculates the received and encoded first line of transmitted video data. The control signal is sent to the receiver (for each vertical blank period when DE is low) to calculate an initial set of decryption keys. After generating an initial set of encryption / decryption keys, each of the transmitter and the receiver each re-keys during each blank (vertical or horizontal) interval to generate new key sets for encrypting (or decrypting) the next line of video data. re-keying), and the actual encryption of the input video data (or decryption of the received and decoded video data) is performed using the last key set only when DE is high (while not in the blank period).

송신기 및 수신기 각각은 선형 피드백 쉬프트 레지스터(LFSR; Liner Feedback Shift Register) 모듈, 상기 LFSR 모듈을 출력하기 위해 연결된 블록 모듈, 및 상기 블록 모듈으 출력에 연결된 출력 모듈을 포함하는 HDCP 사이퍼(cipher) 회로(여기서는, 때때로 "HDCP cipher"로 나타내진다)를 포함한다. LFSR 모듈은 세션 키(Ks) 및 프레임 키(Ki)를 이용하여 인에이블 신호 각각의 인가(assertion)에 응답하여 리-키(re-key) 블록 모듈에 이용된다. 상기 블록 모듈은 세션의 시작에서 키(Ks)를 생성하고(또한, LFSR 모듈에 제공한다), (프레임의 제1 수직 블랭크 구간에 발생하는 제어 신호의 상승 에지에 응답하여) 비디오 데이터의 각 프레임의 시작에서 키(Ki)의 새로운 값을 생성한다(또한, LFMS 모듈에 제공한다).Each of the transmitter and receiver includes an HDCP cipher circuitry comprising a linear feedback shift register (LFSR) module, a block module coupled to output the LFSR module, and an output module coupled to the output of the block module. Herein, sometimes referred to as "HDCP cipher". The LFSR module is used in the re-key block module in response to the assertion of each of the enable signals using the session key Ks and the frame key Ki. The block module generates a key Ks at the beginning of the session (also provides it to the LFSR module) and each frame of video data (in response to the rising edge of the control signal occurring in the first vertical blank period of the frame). Generates a new value of the key Ki at the beginning of (provides it to the LFMS module).

블록 모듈은 "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)의 다른 쌍들을 (출력 모듈로) 인가한다.The block module includes two halves known as "Round Function K" and "Round Function B". Round Function K consists of 28-bit registers (Kx, Ky and Kz) and seven S-boxes (S-boxes with 4 output bits and 4 output bits, each with a look-up table), linear conversion unit (K) It includes. Round Function B consists of 28-bit registers (Bx, By and Bz), seven S-boxes (S-boxes of 4 output bits to 4 input bits each containing a look-up table), and a linear conversion unit (B ). Round Function K and Round Function B are similarly designed, but Round Function K responds to the output of the LFSR module, where 28-bit round keys (Ky and Kz) have different pairs (to output modules) in each clock cycle. One clock cipher round per clock cycle to assert, Round Function B responds to each 28-bit round key Ky from Round Function K, one block cipher per clock cycle The round is performed and output to the LFSR module, applying different pairs of 28-bit round keys (By and Bz) (to the output module) in each clock cycle.

송신기는 인증 프로토콜의 시작에서 값(An)을 생성하고, 수신기는 인증 진행 동안 상기 값(An)에 응답한다. 상기 값(An)은 세션 키를 무작위 추출하는 데 사용된다. 블록 모듈은 인증 값(An) 및 각 프레임의 시작에서 출력 모듈에 의해 업데이트 되는 초기화 값(Mi)(또는 완전 증명 값(integrity verification value)으로 불린다)에 응답하여 동작한다.The transmitter generates a value An at the beginning of the authentication protocol and the receiver responds to the value An during the authentication process. The value An is used to randomize the session key. The block module operates in response to an authentication value An and an initialization value Mi (or called integrity verification value) that is updated by the output module at the beginning of each frame.

선형 변환 유닛(K 및 B) 각각은 각 클록 사이클 당 56 비트를 출력한다. 이 출력 비트들은 각 변환 유닛 내의 8 개의 확산 네트워크들(diffusion networks)의 출력들과 결합된다. 선형 변환 유닛(K)의 각 확산 네트워크는 레지스터(Ky 및 Kz)의 7개의 현재 출력 비트들에 응답하여 7 개의 출력 비트들을 생성한다. 신형 변환 유닛(B)의 4개의 확산 네트워크들 각각은 레지스터들(By, Bz 및 Ky)의 7 개의 현재 출력 비트들에 응답하여 7 개의 출력 비트들을 생성하고, 선형 변환 유닛(B)의 다른 4 개의 확산 네트워크들 각각은 레지스터(By 및 Bz)의 7개의 현재 출력 비트들에 응답하여 7 개의 출력 비트들을 생성한다.Each of the linear conversion units K and B outputs 56 bits per clock cycle. These output bits are combined with the outputs of eight diffusion networks in each conversion unit. Each spreading network of the linear transformation unit K generates seven output bits in response to the seven current output bits of the registers Ky and Kz. Each of the four spreading networks of the new conversion unit B generates seven output bits in response to the seven current output bits of the registers By, Bz and Ky, and the other four of the linear conversion unit B. Each of the spreading networks produces seven output bits in response to the seven current output bits of registers By and Bz.

출력 모듈은 각 클록 사이클 동안 블록 모듈에 의해 입력된(모두 112 비트) 28-비트 키들(By, Bz, Ky 및 Kz)에 압축 동작을 수행하여, 클록 사이클 당 24-비트 블록의 의사-랜덤(pseudo-random) 비트 cout[23:0]를 생성한다. 출력 모듈의 24 출력 비트들 각각은 9 텀(term)의 배타적 OR("XOR")로 구성된다.The output module performs a compression operation on the 28-bit keys (By, Bz, Ky, and Kz) input by the block module (all 112 bits) during each clock cycle, so that a pseudo-random of 24-bit blocks per clock cycle ( pseudo-random) bits cout [23: 0]. Each of the 24 output bits of the output module consists of 9 terms of exclusive OR ("XOR").

송신기에서, 논리 회로는 각각 24-비트 블록의 cout 데이터 및 각각 입력된 24-비트 RGB 비디오 데이터 워드를 수신하고, 비디오 데이터의 암호화를 위해 그곳에 비트단위의 XOR 동작을 처리하여 암호화된 RGB 비디오 데이터 워드를 생성한다. 일반적으로, 암호화된 데이터는 수신기로 전송되기 전에 순차적으로 TMDS 인코딩을 한다. 수신기에서, 논리 회로는 각각 24-비트 블록의 cout 데이터 및 각각 복원된 24-비트 RGB 비디오 데이터 워드를 수신하고 (그리고 나서, 상기 복원된 데이터는 TMDS 디코딩을 거친다), 그곳에 비트 단위의 XOR 동작을 처리하여, 복원된 비디오 데이터를 복호화한다.At the transmitter, the logic circuit receives the 24-bit block cout data and each input 24-bit RGB video data word, and processes the bitwise XOR operation there to encrypt the video data, thereby encrypting the encrypted RGB video data word. Create In general, encrypted data is sequentially TMDS encoded before being sent to the receiver. At the receiver, the logic circuit receives the 24-bit block of cout data and the reconstructed 24-bit RGB video data word, respectively (and then the reconstructed data is subjected to TMDS decoding), where there is a bitwise XOR operation. Processing to decode the reconstructed video data.

명세서 전체에 걸쳐 "TMDS-like 링크"의 표현은, 송신기로부터 수신기로 인코딩된 데이터(즉, 인코딩된 디지털 비디오 데이터) 및 인코딩된 데이터를 위한 클록을 전송할 수 있고, 상기 소신기와 수신기 사이에 하나 이상의 부가적인 신호들(즉, 인코딩된 디지털 오디오 신호 또는 다른 인코딩 데이터)를 전송할 수 있는, TMDS 링크 또는 TMDS 링크의 특성 전부는 아니지만 몇 가지 특성을 갖는 링크를 포함하는 시리얼 링크를 지칭할 때 사용될 것이다. TMDS-like 링크의 예들로 TMDS 링크와 10-비트 TMDS 코드 워드들이 아닌 N-비트(예들 들어, N 10) TMDS 코드 워드들로 데이터를 인코딩하는 것이 다를 뿐인 링크들과, TMDS 링크들과 3개 초과 또는 3개 미만의 컨덕터 쌍을 통해 인코딩된 비디오를 전송하는 것이 다를 뿐인 링크들을 포함한다. 종래에 몇 가지 TMDS-like 링크들이 존재한다.Throughout the specification, a representation of a " TMDS-like link " may transmit encoded data (i.e., encoded digital video data) and a clock for the encoded data from a transmitter to a receiver, and between one or more receivers and the receiver. It will be used when referring to a serial link that includes a TMDS link or a link having some but not all of the characteristics of a TMDS link, which may carry additional signals (ie, an encoded digital audio signal or other encoded data). Examples of TMDS-like links are links that differ only in encoding data into N-bit (eg N 10) TMDS code words, rather than TMDS links and 10-bit TMDS code words, and three TMDS links. Transmitting encoded video over more or less than three conductor pairs only includes links. There are several TMDS-like links in the prior art.

여기서 "송신기(transmitter)"라는 용어는 데이터를 인코딩하고 상기 인코딩된 데이터를 시리얼 링크를 통해 전송할 수 있는 (그리고, 전송될 데이터의 암호화 및, 데이터의 인코딩, 전송 또는 암호화에 관련된 다른 동작을 포함할 수 있는 부가적인 기능을 선택적으로 수행하는) 어떤 장치를 지칭하는 넓은 의미로 사용된다. 여기서 "수신기(receiver)"라는 용어는 시리얼 링크를 통해 전송된 데이터를 수신하고 디코딩할 수 있는 (그리고, 수신된 데이터의 복호화 및, 상기 수신된 데이터의 디코딩, 수신 또는 복호화에 관련된 다른 동작을 포함할 수 있는 다른 부가적인 기능을 선택적으로 수행하는) 어떤 장치를 지칭하는 넓은 의미로 사용된다. 예를 들어, 송신기라는 용어는 송신기의 기능뿐만 아니라 수신기의 기능도 수행하는 송수신기를 지칭할 수 있다. 좀더 구체적인 예를 들면, (TMDS-like 링크 또는 다른 직렬 링크를 통해 비-오디오 보조 데이터를 전송하는 장치와 관련하여)송신기라는 용어는 상기 링크를 통해 비디오 데이터 및 오디오 데이터를 수신하고 상기 링크를 통해 비-오디오 보조 데이터를 전송하도록 구성된 송수신기를 지칭할 수 있다.The term " transmitter " herein refers to the encoding of data and the transmission of the encoded data over a serial link (and the encryption of the data to be transmitted and other operations relating to the encoding, transmission or encryption of the data). In a broad sense to refer to any device) that selectively performs additional functions. The term " receiver " herein includes the operation of receiving and decoding data transmitted over a serial link (and decrypting the received data and other operations related to decoding, receiving or decrypting the received data). Used broadly to refer to a device) that selectively performs other additional functions. For example, the term transmitter may refer to a transceiver that performs not only the function of the transmitter but also the function of the receiver. For a more specific example, the term transmitter (with respect to a device that transmits non-audio auxiliary data over a TMDS-like link or other serial link) may receive video data and audio data over the link and over the link. It may refer to a transceiver configured to transmit non-audio assistance data.

몇 가지 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 속성의 천이의 수는 (몇 가지 실시예에서) 단일 범위(즉, 천이의 최소수 및 최대수로 정의된 중간 범위)내일 수 있다.Some TMDS-like links encode input video data (and other data) to be transmitted into encoded words containing more bits than the data entered using a coding algorithm other than the specific algorithm used in the TMDS link, and The encoded video data is transmitted to the in-band attribute and other encoded data is transmitted to the out-of-band attribute. The attributes need not be classified into in-band or out-of-band attributes based on whether they meet transition minimization and DC balance criteria. Rather, other classification criteria may be used. An example of an encoding algorithm that can be used on a TMDS-like link that is not used on a TMDS link is IBM 8b10b coding. The classification (between in-band and out-of-band attributes) need not be based solely on whether the number of transitions is large or small. For example, the number of transitions of each in-band and out-of-band attribute may be within a single range (in some embodiments) (ie, an intermediate range defined by the minimum and maximum number of transitions).

TMDS-like 링크의 송신기 및 수신기 사이에서 전송된 데이터는 (한 쌍의 컨덕터를 통해) 차동적으로 전송될 수 있지만, 반드시 그럴 필요는 없다. 또한, TMDS 링크가 (단일 픽셀 버전에서) 4개의 차동 쌍, 즉 비디오 데이터에 3개 쌍과 비디오 클록에 다른 한 쌍을 갖지만, TMDS-like 링크는 다른 컨덕터 수 또는 다른 컨덕터 쌍을 가질 수 있다.Data transmitted between the transmitter and receiver of a TMDS-like link can be transmitted differentially (via a pair of conductors), but is not necessary. Also, while TMDS links have four differential pairs (in a single pixel version), three pairs for video data and another pair for video clocks, TMDS-like links can have different conductor numbers or different conductor pairs.

일반적으로, TMDS 링크에 의해 전송되는 주 데이터는 비디오 데이터이다. 여기에서 종종 중요하게 여기는 것은 비디오 데이터가 연속적이지 않고, 대신에 블랭크 구간(blanking interval)을 갖는다는 것이다. 이들 블랭크 구간들은 보조 데이터가 전송될 수 있는 (본 발명의 몇 가지 실시예에서 이용되는) 기회를 제공하고, 블랭크 구간들은 사용되지 않는 대역폭(bandwidth)을 의미한다. 한편, 많은 직렬 링크는 블랭크 구간들을 갖는 데이터를 전송하지 않고, 따라서, 데이터 인에이블 신호에 응답하여 (전송을 위한) 입력 데이터를 인코딩하지 않는다. 예를 들어, 오디오 직렬 링크는 일반적으로 연속적인 데이터를 전송한다.In general, the main data transmitted by the TMDS link is video data. What is often of importance here is that the video data is not continuous, but instead has a blanking interval. These blank intervals provide an opportunity for auxiliary data to be transmitted (used in some embodiments of the present invention), and blank intervals represent unused bandwidth. On the other hand, many serial links do not transmit data with blank intervals and, therefore, do not encode input data (for transmission) in response to a data enable signal. For example, audio serial links generally carry continuous data.

"보조 데이터(auxiliary data)"라는 표현은 디지털 오디오 데이터 또는 비디 오 데이터가 아닌 다른 형태의 데이터 및 비디오 데이터를 위한 타이밍 정보(예를 들어 비디오 클록)를 지칭하는 넓은 의미로 사용된다. 예를 들어, 오디오 데이터를 위한 타이밍 정보(즉, 전송된 오디오 데이터를 복원하기 위한 클록)는 "보조 데이터"의 범위에 해당한다. 본 발명에 따른 전송된 "보조 데이터"의 다른 예들은 컴퓨터 키보드 신호, (즉, 카메라에 의해 생성된)스틸 이미지 데이터, 텍스트 데이터, 전력 공급을 위한 제어 신호, 그림 데이터에서의 그림, 모니터 제어 정보(오디오 볼륨, 밝기, 전력 상태), 모니터 또는 키보드 상의 라이트를 나타내기 위한 제어 신호, 비-오디오 또는 비디오 제어 정보 등을 포함한다.The expression "auxiliary data" is used in a broad sense to refer to timing information (e.g. video clock) for data and video data in a form other than digital audio data or video data. For example, timing information for audio data (ie, clock for recovering transmitted audio data) corresponds to the range of "auxiliary data". Other examples of transmitted "auxiliary data" according to the present invention are computer keyboard signals, still image data (i.e. generated by a camera), text data, control signals for power supply, pictures in picture data, monitor control information. (Audio volume, brightness, power status), control signals for indicating light on a monitor or keyboard, non-audio or video control information, and the like.

여기에서 사용되는 "스트림(stream)"이라는 용어는, 모든 그 데이터가 동일한 형태이고, 동일 클록 주파수 내에 전송되는 것을 지칭한다. 여기서 사용되는 "채널(channel)"이라는 용어는, 데이터를 전송하는 데 이용되는 직렬 링크의 부분(즉, 데이터가 전송되는 송신기와 수신기 사이의 특정 컨덕터 또는 컨덕터 쌍, 및 데이터의 전송 및/또는 복원에 사용되는 송신기 및/또는 수신기 내의 특정 회로) 및 상기 링크를 통해 데이터를 전송하는 데 사용되는 기술을 지칭한다. 본 발명의 중요한 어플리케이션들에서 많은 다른 보조 데이터 스트림을 전송하는 것이 바람직하기 때문에, 본 발명의 바람직한 실시예들은 상기 링크를 통해 양 방향(즉, 비디오 데이터 방향 및 반대 방향)으로 보조 데이터의 전송을 위한 채널들을 포함하는 보조 데이터의 전송을 위한 복수의 채널들을 제공한다. 몇 가지 구현 예들에서, 하나 이상의 보조 데이터 스트림을 전송하도록 채널이 제공된다. 본 발명의 일 실시예에서, 2 개 (또는 2 이상)의 직렬 비디오 데이터 스트림들이 (1, 2 또는 2 이상 의 채널을 통해) 전송되고, 또한, 1, 2 또는 2 이상의 직렬 보조 데이터 스트림들이 전송된다.The term "stream" as used herein refers to all of the data being in the same form and transmitted within the same clock frequency. The term "channel" as used herein refers to the portion of the serial link used to transmit data (i.e., a specific conductor or conductor pair between the transmitter and receiver to which data is transmitted, and the transmission and / or recovery of data. Specific circuitry within a transmitter and / or receiver) and a technique used to transmit data over the link. Since it is desirable to transmit many different auxiliary data streams in the important applications of the present invention, preferred embodiments of the present invention provide for the transmission of auxiliary data in both directions (i.e. video data direction and opposite direction) over the link. It provides a plurality of channels for the transmission of the auxiliary data including the channels. In some implementations, a channel is provided to transmit one or more auxiliary data streams. In one embodiment of the invention, two (or more than two) serial video data streams are transmitted (via one, two or more than two channels), and also one, two or more than two serial auxiliary data streams are transmitted. do.

1999년 12월 7일 등록된 미국 특허 제 5,999,571 호는 (즉, col. 5에서) TMDS 링크를 통해 전송된 (비디오 데이터를 나타내는) 코드 워드들이 천이 최소화 워드들(transition minimized words) (코드 워드 세트의 제1 서브세트) 일 때, (천이 최소화 코드 워드들과 구별되는) 동기화 워드들(synchronization words)은 인코딩된 비디오 데이터가 전송되지 않는 "프리앰블(preamble)" 주기 동안 상기 링크를 통해 전송될 수 있다는 것을 개시하고 있다. 상기 동기화 워드들은 상기 코드 워드 세트의 (상기 제1 서브세트와 분리된) 제2 서브세트의 멤버인 천이 최소화 워드들일 수 있다. 미국 특허 제 5,999,571호는 동기화 워드가 몇 번(예를 들어, 세 번) 반복적으로 연속 전송되어, 상기 동기화 워드들 중 하나의 특정 천이(예를 들어, 리딩 에지(leading edge))을 (수신기 내의) 디코더가 빠르고 정확하게 식별할 수 있게 하여 (송신기 내의) 인코더와 동기가 완성될 수 있게 하는 것을 개시하고 있다.US Patent No. 5,999,571, filed Dec. 7, 1999 (i.e. in col. 5), describes code words (representing video data) transmitted over a TMDS link (transition minimized words) (code word set). Synchronization words (distinguish from transition minimization code words) may be transmitted over the link during a “preamble” period in which encoded video data is not transmitted. It is disclosed that there is. The synchronization words may be transition minimization words that are members of a second subset (separated from the first subset) of the code word set. U. S. Patent No. 5,999, 571 discloses that a synchronization word is repeatedly transmitted several times (e.g. three times) in succession so that a particular transition (e.g., leading edge) of one of the synchronization words (e.g. ) Enabling the decoder to identify quickly and accurately so that synchronization with the encoder (in the transmitter) is completed.

200년 11월 21자로 등록된 미국 특허 제6,151,334호는 각각 데이터를 표시하는 천이 최소화 코드와 구별될 수 있는, 인코딩된 제어 워드들의 몇 가지 다른 형태의 (TMDS 링크를 통한) 전송을 개시하고 있다. 상기 제어 워드들 중 최소한 몇 가지는 천이 최소화 워드들일 수 있다. 상기 제어 워드들 중 하나는, 데이터 버스트의 전 또는 후에 전송되고, 버스트의 시작과 끝 그리고 상기 버스트 동안에 전송되는 데이터의 형태를 나타내는, "데이터 스트림 분리(data stream separation)" 워드이다. 상기 제어 워드들 중 다른 하나는, 일반적으로 블랭크 구간의 시작 또는 끝 부분에서 전송되는 동기화 속성이고, 블랭크 구간의 형태(즉, 수평 또는 수직)를 나타내며, 상기 블랭크 구간의 시작 및 끝 사이를 구별하는 "등시성 데이터 전송(isochronous data transfer)" 워드이다. 예를 들어, 제1 등시성 데이터 전송 워드는 수직 블랭크 구간의 시작을 나타내고, 제1 데이터 스트림 분리 워드는 수직 블랭크 구간의 데이터 버스트의 시작을 나타내고, 제2 데이터 스트림 분리 워드는 이러한 데이터 버스트의 끝을 나타내며, 제2 등시성 데이터 전송 워드는 수직 블랭크 구간의 끝을 나타낸다. 제1 등시성 데이터 전송 워드, 제1 데이터 스트림 분리 워드, 제2 데이터 스트림 분리 워드 및, 제2 등시성 데이터 전송 워드 각각은 천이 최소화 코드 워드이고, 천이 최소화 코드 워드는 (수직 블랭크 구간 내에서 전송된) 데이터 버스트의 데이터의 각 워드를 나타낼 수 있고, 수직 블랭크 구간 다음에는, 비디오 데이터 그 차제를 나타내는 천이 최소화 코드 워드들의 스트림이 뒤에 따라오는 (비디오 데이터 스트림의 시작을 나타내는) 제3 데이터 스트림 분리 워드를 포함하는 액티브 비디오 주기가 따라올 수 있다.US Patent No. 6,151,334, registered November 21, 200, discloses several different forms of transmission (over a TMDS link) of encoded control words, each of which can be distinguished from a transition minimization code representing data. At least some of the control words may be transition minimization words. One of the control words is a " data stream separation " word, transmitted before or after the data burst, indicating the beginning and end of the burst and the type of data transmitted during the burst. The other of the control words is generally a synchronization attribute transmitted at the beginning or end of the blank period, indicating the form of the blank period (ie horizontal or vertical), and distinguishing between the start and end of the blank period. Isochronous data transfer. For example, a first isochronous data transfer word indicates the beginning of a vertical blank interval, a first data stream separation word indicates the beginning of a data burst of a vertical blank interval, and a second data stream separation word indicates the end of such a data burst. The second isochronous data transfer word indicates the end of the vertical blank interval. Each of the first isochronous data transfer word, the first data stream splitting word, the second data stream splitting word, and the second isochronous data transfer word are transition minimizing code words, and the transition minimizing code words are (transmitted within the vertical blank interval). Each word of data in the data burst may be represented, and after the vertical blank interval, a third data stream separation word (indicative of the beginning of the video data stream) followed by a stream of transition minimization code words representing the video data subtraction. It may be followed by an active video cycle.

본 발명의 실시예들에서, 본 발명은, 송신기, 수신기, 상기 송신기로부터 상기 수신기로 링크의 하나 이상의 채널 각각을 통해 인코딩된 비디오 데이터 스트림 및 하나 이상의 인코딩된 다른 데이터 스트림(예를 들어 인코딩된 오디오 데이터)를 전송하기 위한 (하나 이상의 채널을 갖는) 시리얼 링크를 포함하는 통신 시스템이다. 바람직한 실시예에서, 상기 시리얼 링크는 TMDS 또는 TMDS-like 링크이다. 바람직한 실시예에서, 상기 송신기는 액티브 비디오 주기(active video period) 동안 상기 링크의 하니 이상의 비디오 채널 각각을 통해 인코딩된 비디오를 상기 수신기로 전송하고, 데이터 아일랜드(data islands) 동안 상기 하나 이상의 비디오 채널 각각을 통해 상기 수신기로 인코딩된 보조 데이터(예를 들어, 오디오 데이터)가 포함된 패킷을 전송하며, 상기 데이터 아일랜드 각각은 상기 어떤 액티브 비디오 주기과도 동시에 발생하지 않고 겹치지도 않는 타임 주기이다. 또한, 상기 송신기는 제어 데이터 주기 동안 제어 데이터를 상기 비디오 채널을 통해 상기 수신기로 전송하도록 구성되며, 상기 제어 데이터 주기는 상기 어느 데이터 아일랜드와도 동시에 발생하거나 또는 겹치지도 않고 상기 어느 액티브 비디오 주기와도 동시에 발생하거나 또는 겹치지도 않는다. 본 발명의 다른 특징은, 복수의 데이터 스트림들을 포맷하고 인코딩하며 시리얼 링크를 통해 전송하는데 사용하는 송신기, 시리얼 링크를 통해 전송된 복수의 인코딩된 데이터 스트림을 수신하고 디코딩하기 위한 수신기, 및 인코딩된 복수의 데이터 스트림을 시리얼 링크를 통해 전송하는 방법에 있다.In embodiments of the invention, the invention relates to a transmitter, a receiver, an encoded video data stream and one or more other encoded data streams (e.g., encoded audio) over each of one or more channels of a link from the transmitter to the receiver. Communication system including a serial link (having one or more channels) for transmitting data. In a preferred embodiment, the serial link is a TMDS or TMDS-like link. In a preferred embodiment, the transmitter transmits encoded video to each of the at least one video channel of the link to the receiver during an active video period, and each of the one or more video channels during data islands. Transmits a packet including encoded auxiliary data (eg, audio data) to the receiver, wherein each of the data islands is a time period that does not occur simultaneously with or overlap with any of the active video periods. The transmitter is further configured to transmit control data over the video channel to the receiver during a control data period, wherein the control data period does not occur simultaneously with or overlap with any of the data islands. It does not occur at the same time or overlap. Another feature of the invention is a transmitter for formatting, encoding and transmitting a plurality of data streams, a receiver for receiving and decoding a plurality of encoded data streams transmitted over a serial link, and an encoded plurality Is a method of transmitting a data stream through a serial link.

하나 이상의 패킷들이 각 데이터 아일랜드에서 전송될 수 있다. (때때로 "제어 데이터 구간(control data interval)" 또는 "제어 주기(control period)"로 불리는) 각 제어 데이터 주기(control data period) 내에서 (동기 워드 및 "프리앰블(preamble)" 워드를 포함하는) 인코딩된 제어 워드들이 전송될 수 있다. One or more packets may be sent in each data island. Within each control data period (sometimes referred to as a "control data interval" or "control period") (including a sync word and a "preamble" word) Encoded control words can be transmitted.

본 발명이 구현하는 시스템에 있어서, (각각 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 가 상기 액티브 비디오 주기가 시작할 때 갖던 값을 유지하고 있는 것으로 가정한다.In a system implemented by the present invention, a plurality of 8-bit video data words (each of which is a transition-minimization code word, each encoded 10-bit using a TMDS encoding algorithm) are used to transmit a TMDS link (or serial video) during an active video period. Is transmitted over video channels of another TMDS-like link having a channel of < RTI ID = 0.0 > During the data islands between the active video periods, each encoded 10-bit using a TMDS encoding algorithm and is a transition minimized code word, preferably a 10-bit golden word (generally comprising a 4-bit audio data word). Packets containing a 4-bit word are transmitted on each of several of the video channels. During the control data period between the active video period and the data island, the transmitter has a control word (encoded with 10-bits, respectively, and is a transition minimization code word representing CTL0 and CTL1, or CTL2 and CTL3) and A 10-bit encoded, sync word, which is a transition minimization code word representing two sync bits: HSYNC and VSYNC, is transmitted over the video channels. During each active video period, the receiver assumes that HSYNC, VSYNC, CTL0, CTL1, CTL2, and CTL3 maintain the values they had at the beginning of the active video period.

삭제delete

바람직하게는, HSYNC 및 VSYNC 비트를 나타내는 천이 최소화 코드 워드들(즉, 각 워드가 HSYNC 비트, VSYNC 비트, 패킷 헤더 비트, 및 다른 비트를 나타내는, 픽셀 클록 사이클 당 하나의 코드 워드)은 각 데이터 아일랜드 동안 한 채널(즉, CH0)을 통해 전송된다. Preferably, the transition minimization code words representing HSYNC and VSYNC bits (ie, one code word per pixel clock cycle, each word representing HSYNC bits, VSYNC bits, packet header bits, and other bits) are each data island. Is transmitted over one channel (ie CH0).

일 실시예에서, 본 발명은 하나 이상의 비디오 채널을 구비하는 시리얼 링크와 연결되도록 구성된 송신기이다. 상기 송신기는, I2S 포맷 오디오 데이터를 포함하는 비디오 데이터 및 오디오 데이터를 수신하기 위한 입력부들, 상기 링크와 연결되도록 구성된 하나 이상의 출력부, 및 상기 입력부들과 상기 각 출력부 사이에 연결된 회로로, 상기 회로는 상기 비디오 데이터를 인코딩함으로써 인코딩된 비디오 데이터를 생성하고, 보조 데이터의 패킷들을 나타내는 코드 워드들을 생성하고, 액티브 비디오 주기동안 상기 인코딩된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 데이터 아일랜드 동안 보조 데이터의 패킷들을 나타내는 상기 코드 워드들을 상기 하나 이상의 출력부로 인가하는 상기 회로를 포함한다. 상기 보조 데이터는 오디오 데이터를 포함한다.In one embodiment, the invention is a transmitter configured to be connected with a serial link having one or more video channels. The transmitter includes inputs for receiving video data and audio data comprising I 2 S format audio data, one or more outputs configured to be connected to the link, and circuitry coupled between the inputs and each output. The circuit generates encoded video data by encoding the video data, generates code words representing packets of auxiliary data, applies the encoded video data to the one or more outputs during an active video period, and a data island. And said circuitry for applying said code words representing packets of auxiliary data to said one or more outputs. The auxiliary data includes audio data.

본 발명의 다른 실시예에서, 수신기는 복수 스트림의 입력 오디오 데이터(이 데이터는 I2S 포맷 오디오 데이터 및/또는 DSD 포맷 오디오 데이터일 수 있지만 반드시 그러할 필요는 없다)를 수신한다. 상기 수신기는 멀티플렉서 회로 및 데이터 패킷화 회로를 포함한다. 상기 멀티플렉서 회로는 상기 오디오 데이터 스트림들을 수신하고 상기 스트림들 중 소정의 한 스트림을 소정 타이밍에 상기 데이터 패킷화 회로에 인가하도록 연결되고 구성된다.In another embodiment of the present invention, the receiver receives a plurality of streams of input audio data, which data may be I 2 S format audio data and / or DSD format audio data, but need not be so. The receiver includes a multiplexer circuit and a data packetization circuit. The multiplexer circuit is coupled and configured to receive the audio data streams and apply a predetermined one of the streams to the data packetization circuit at a predetermined timing.

다른 실시에에서, 본 발명은, 하나 이상의 비디오 채널을 구비하는 시리얼 링크와 연결되도록 구성된 송신기이다. 상기 송신기는, 임베딩 된 클록을 구비하는 하나 이상의 오디오 데이터 스트림 및 비디오 데이터를 수신하기 위한 입력부들, 상기 링크와 연결되도록 구성된 하나 이상의 출력부들, 및 상기 입력부들 및 상기 각 출력부 사이에 연결된 회로부로, 상기 회로부는 상기 비디오 데이터를 인코딩함으로써 인코딩된 비디오 데이터를 생성하고, 상기 오디오 데이터 스트림을 상기 임베딩 된 클록과 알려지지 않는 위상 관계를 갖는 제2 클록으로 샘플링함으로써 재샘플링된 오디오 데이터를 생성하고, 보조 데이터 패킷들을 나타내는 코드 워드들을 생성하고, 액티브 비디오 주기 동안 픽셀 클록에 응답하여 상기 인코딩된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 데이터 아일랜드 동안 상기 픽셀 클록에 응답하여 상기 보조 데이터 패킷을 나타내는 코드 워드들을 상기 하나 이상의 출력부로 인가하도록 구성된, 상기 회로부를 포함한다. 상기 보조 데이터는 타임 코드 데이터 및 상기 재샘플링된 오디오 데이터를 포함하고, 상기 타임 코드 데이터는 상기 픽셀 클록과 함께 상기 제2 클록을 나타낸다. In another embodiment, the invention is a transmitter configured to be connected with a serial link having one or more video channels. The transmitter includes one or more inputs for receiving audio data and video data having an embedded clock, one or more outputs configured to be connected with the link, and a circuit portion connected between the inputs and each output. The circuitry generates encoded video data by encoding the video data, and generates resampled audio data by sampling the audio data stream with a second clock having an unknown phase relationship with the embedded clock, Generate code words representing data packets, apply the encoded video data to the one or more outputs in response to a pixel clock during an active video period, and represent the auxiliary data packet in response to the pixel clock during a data island. Configured to apply the at least one output to the code word, it comprises the circuit. The auxiliary data includes time code data and the resampled audio data, the time code data representing the second clock along with the pixel clock.

다른 실시예에서, 하나 이상의 비디오 채널을 구비하는 시리얼 링크와 연결되도록 구성된 송신기이다. 상기 송신기는, 임베딩 된 클록을 구비하는 하나 이상의 오디오 데이터 스트림 및 비디오 데이터를 수신하기 위한 입력부들, 상기 링크와 연결되도록 구성된 하나 이상의 출력부들, 및 상기 입력부들 및 상기 각 출력부 사이에 연결된 회로부로, 상기 회로부는 상기 비디오 데이터를 인코딩함으로써 인코딩된 비디오 데이터를 생성하고, 상기 오디오 데이터 스트림을 상기 임베딩 된 클록과 알려지지 않는 위상 관계를 갖는 픽셀 클록으로 샘플링함으로써 재샘플링된 오디오 데이터를 생성하고, 보조 데이터 패킷들을 나타내는 코드 워드들을 생성하고, 액티브 비디오 주기 동안 픽셀 클록에 응답하여 상기 인코딩된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 데이터 아일랜드 동안 상기 픽셀 클록에 응답하여 상기 보조 데이터 패킷을 나타내는 코드 워드들을 상기 하나 이상의 출력부로 인가하도록 구성된, 상기 회로부를 포함한다. 상기 보조 데이터는 상기 재샘플링된 오디오 데이터를 포함한다. In another embodiment, a transmitter configured to be connected with a serial link having one or more video channels. The transmitter includes one or more inputs for receiving audio data and video data having an embedded clock, one or more outputs configured to be connected with the link, and a circuit portion connected between the inputs and each output. The circuitry generates encoded video data by encoding the video data, and resamples the audio data stream with a pixel clock having an unknown phase relationship with the embedded clock to generate resampled audio data, and auxiliary data. Generate code words representing packets, apply the encoded video data to the one or more outputs in response to a pixel clock during an active video period, and represent the auxiliary data packet in response to the pixel clock during a data island. Includes the circuitry, configured to apply code words to the one or more outputs. The auxiliary data includes the resampled audio data.

몇 가지 실시예들에서, 본 발명에 따른 송신기는 보조 데이터 패킷들을 나타내는 코드 워드들을 생성하고, 상기 패킷들 중 몇 이상은 오디오 샘플 패킷들이다. 각 오디오 샘플 패킷들은 헤더를 구비하고, 상기 오디오 데이터의 하나 이상의 샘플을 포함할 수 있다. 상기 헤더는 상기 오디오 샘플 패킷이 오디오 데이터 샘플을 포함하는 지와 상기 각 오디오 데이터 샘플이 플랫라인(flatline) 샘플인지를 나타내는 하나 이상의 소정 타임 슬롯 내의 헤더 데이터를 포함한다. In some embodiments, a transmitter in accordance with the present invention generates code words representing auxiliary data packets, some of which are audio sample packets. Each audio sample packet has a header and may include one or more samples of the audio data. The header includes header data in one or more predetermined time slots indicating whether the audio sample packet contains audio data samples and whether each audio data sample is a flatline sample.

다른 실시예들에서, 본 발명은, 하나의 비디오 클록 채널 및 하나 이상의 비디오 채널을 구비하는 시리얼 링크와 연결되도록 구성된 수신기이다. 상기 수신기는, 상기 링크와 연결되도록 구성되고, 상기 비디오 클록 채널과 연결되도록 구성된 클록 입력부를 포함하는 2 이상의 입력부들, 상기 링크로부터 복원된 비디오 데이터 및 오디오 데이터를 인가하기 위한 출력부들, 및 상기 입력부들 및 상기 각 출력부 사이에 연결되고, 상기 클록 입력부로부터 픽셀 클록을 수신하고, 상기 픽셀 클록에 응답하여 액티브 비디오 주기 동안 상기 하나 이상의 입력부에서 수신된 인코딩된 비디오 데이터를 디코딩 등을 함으로써 복원된 비디오 데이터를 생성하고, 상기 복원된 비디오 데이터를 상기 하나 이상의 출력부에 인가하며, 상기 픽셀 클록에 응답하여 데이터 아일랜드 동안 상기 하나 이상의 입력부에서 수신된 인코딩된 보조 데이터 패킷들의 코드 워드들을 디코딩함으로써 디코딩된 데이터를 생성하고, 상기 디코딩된 데이터로부터 하나 이상의 I2S 포맷 오디오 데이터의 스트림을 생성하고, 상기 각 I2S 포맷 오디오 데이터의 스트림을 상기 하나 이상의 출력부로 인가하도록 구성된 회로부를 포함한다. 상기 디코딩된 데이터 중 몇 이상의 데이터는 타임 스탬프를 나타내는 타임 코드 데이터이다. 상기 타임 코드 데이터는 상기 픽셀 클록과 함께 상기 I2S 포맷 오디오 데이터 스트림에 대한 오디오 클록을 나타낸다.
몇 가지 실시예에서, 본 발명에 따른 수신기는 다중 스트림의 오디오 데이터를 복원하고 상기 각 복원된 오디오 데이터의 스트림을 소정 타이밍으로 상기 출력부들 중 하나 이상의 소정의 출력부로 인가하기 위한 멀티플렉서 회로를 포함한다.
바람직한 실시예에서, 본 발명에 따른 송신기는 제1 포맷을 갖는 입력 비디오에 응답하여 제2 포맷을 갖는 비디오를 나타내는 인코딩된 비디오 데이터를 생성하도록 구성된다. 바람직한 실시예에서, 본 발명에 따른 수신기는 제2 포맷을 갖는 비디오를 나타내는 인코딩된 비디오 데이터에 응답하여 제1 포맷을 갖는 복원된 비디오 데이터를 생성하도록 구성된다.
In other embodiments, the invention is a receiver configured to be connected with a serial link having one video clock channel and one or more video channels. The receiver comprises at least two inputs configured to be connected with the link and comprising a clock input configured to be connected with the video clock channel, outputs for applying video data and audio data recovered from the link, and the input. A reconstructed video connected between the modules and the respective outputs, receiving a pixel clock from the clock input, decoding the encoded video data received at the one or more inputs during an active video period in response to the pixel clock, and the like. Decoded data by generating data, applying the reconstructed video data to the one or more outputs, and decoding code words of encoded auxiliary data packets received at the one or more inputs during a data island in response to the pixel clock. To generate And circuitry configured to generate one or more streams of I 2 S format audio data from the decoded data and to apply each stream of I 2 S format audio data to the one or more outputs. Some or more of the decoded data is time code data representing a time stamp. The time code data together with the pixel clock represents an audio clock for the I 2 S format audio data stream.
In some embodiments, a receiver in accordance with the present invention comprises multiplexer circuitry for restoring multiple streams of audio data and for applying each stream of recovered audio data to one or more of the outputs at a predetermined timing. .
In a preferred embodiment, the transmitter according to the invention is configured to generate encoded video data representing video with a second format in response to input video with the first format. In a preferred embodiment, the receiver according to the invention is configured to generate reconstructed video data having a first format in response to encoded video data representing video having a second format.

도 1은 종래의 DVI(Digital Visual Interface) 링크를 포함하는 시스템을 나타내는 블록도이다.1 is a block diagram illustrating a system including a conventional DVI (Digital Visual Interface) link.

도 2는 본 발명의 일 실시예에 따른 시스템을 나타내는 블록도이다.2 is a block diagram illustrating a system according to an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따른 제어 데이터 주기의 "보조 프리앰블" 및 "비디오 프리앰블" 부분에 전송된 데이터 패턴 및 상기 보조 프리앰블 및 비디오 프리앰블 부분 뒤에 전송된 가드 밴드 코드 워드를 나타낸 테이블이다.3 is a table showing a data pattern transmitted in the "secondary preamble" and "video preamble" portions of a control data period and a guard band code word transmitted after the auxiliary preamble and video preamble portions according to an embodiment of the present invention.

도 4a 및 도 4b는 각각 본 발명의 일 실시예에 따른 (2 가드 밴드 워드들을 포함하는) 본 발명의 코드 워드들 중 17개 세트를 나타낸 테이블이다. 또한, 상기 테이블은 상기 실시예에 따라 설계된 수신기에 의해 상기 17개 코드 워들 각각에 매핑된 다른 코드 워드들을 나타낸 테이블이다. 도 4a 및 도 4b를 합하여 "도 4"로 부른다.4A and 4B are tables illustrating 17 sets of code words of the present invention (including two guard band words), respectively, according to one embodiment of the present invention. Further, the table is a table showing other code words mapped to each of the 17 code words by a receiver designed according to the embodiment. 4A and 4B are collectively called "FIG. 4".

도 5는 본 발명의 일 실시예에 따른 시스템의 제어 데이터 주기 및 데이터 아일랜드 동안 송신기로 입력된 신호, 및 상기 신호에 응답하여 상기 시스템의 TMDS 링크를 통해 전송된 인코딩된 신호의 타이밍도이다.5 is a timing diagram of a signal input to a transmitter during a control data period and a data island of a system in accordance with an embodiment of the present invention, and an encoded signal transmitted over a TMDS link of the system in response to the signal.

도 6은 본 발명의 일 실시예에 따른 시스템의 제어 데이터 주기의 비디오 프리앰블 부분 동안 ( 및 그 다음의 액티브 비디오 주기 동안) 상기 송신기로 입력된 신호, 및 상기 신호에 응답하여 상기 시스템의 TMDS 링크를 통해 전송된 인코딩된 신호의 타이밍도이다.6 illustrates a signal input to the transmitter during the video preamble portion of the control data period of the system (and during the next active video period) and a TMDS link of the system in response to the signal according to an embodiment of the present invention. A timing diagram of an encoded signal transmitted over.

도 7은 본 발명의 일 실시예에 따라 수신된 코드 워드들의 클러스터들(즉, 클러스터 Sa 및 Sb)을 전송된 코드 워드들(즉, 코드 워드 "a" 및 "b") 각각에 매핑시킨 도면이다.7 maps clusters of received code words (ie, clusters S a and S b ) to each of the transmitted code words (ie, code words “a” and “b”) according to one embodiment of the invention. It is a drawing.

도 8은 본 발명의 바람직한 실시예에서, 비디오 데이터( 및 가드 밴드)가 액티브 비디오 주기에 전송되고, 데이터 패킷( 및 가드 밴드)이 데이터 아일랜드 동안 전송되고, 프리앰블 워드들 및 제어 워드들이 제어 데이터 주기에 전송되는 포맷을 나타내는 도면이다.8 shows that in a preferred embodiment of the present invention, video data (and guard bands) are transmitted in an active video period, data packets (and guard bands) are transmitted during a data island, and preamble words and control words are controlled data periods. A diagram illustrating a format transmitted to a.

도 9는 본 발명의 바람직한 실시예에서, 데이터가 (데이터 아일랜드 동안) 패킷으로 전송되는 포맷을 나타내는 도면이다.9 is a diagram illustrating a format in which data is transmitted in a packet (during a data island) in a preferred embodiment of the present invention.

도 9a는 본 발명의 바람직한 실시예에 따른, 패킷화된 데이터에 포함되는 BCH 패리티 비트를 생성하고 전송하기 위한 회로를 나타내는 구성도이다.9A is a block diagram illustrating a circuit for generating and transmitting a BCH parity bit included in packetized data according to a preferred embodiment of the present invention.

도 9b는 본 발명의 바람직한 실시예에 따른, 패킷화된 데이터에 포함되는 BCH 패리티 비트를 생성하고 전송하기 위한 회로를 나타내는 구성도이다.9B is a block diagram illustrating a circuit for generating and transmitting a BCH parity bit included in packetized data according to a preferred embodiment of the present invention.

도 9c는 본 발명의 바람직한 실시예에 따른, 패킷화된 데이터로부터 신드롬(syndrome)을 생성하기 위한 회로를 나타내는 구성도이다.9C is a block diagram illustrating a circuit for generating a syndrome from packetized data according to a preferred embodiment of the present invention.

도 9d는 본 발명의 바람직한 실시예에 따른, 패킷화된 데이터로부터 신드롬을 생성하기 위한 회로를 나타내는 구성도이다.9D is a block diagram illustrating a circuit for generating a syndrome from packetized data according to a preferred embodiment of the present invention.

도 10은 본 발명의 일 실시예에서, RGB 비디오 데이터가 TMDS 링크를 통해 전송되는 포맷을 나타내는 타이밍도이다.10 is a timing diagram illustrating a format in which RGB video data is transmitted through a TMDS link in one embodiment of the present invention.

도 11은 본 발명의 일 실시예에서, YCbCr 4;4:4 비디오 데이터가 TMDS 링크를 통해 전송되는 포맷을 나타내는 타이밍도이다.FIG. 11 is a timing diagram illustrating a format in which YCbCr 4: 4: 4 video data is transmitted through a TMDS link in one embodiment of the present invention.

도 12는 본 발명의 일 실시예에서, YCbCr 4;2:2 비디오 데이터가 TMDS 링크를 통해 전송되는 포맷을 나타내는 타이밍도이다.12 is a timing diagram illustrating a format in which YCbCr 4; 2: 2 video data is transmitted through a TMDS link in one embodiment of the present invention.

도 13은 본 발명의 바람직한 실시예에 따른 송신기를 나타내는 블록도이다.13 is a block diagram illustrating a transmitter according to a preferred embodiment of the present invention.

도 13a는 본 발명의 일 실시예에 따른 송신기에 사용되는 액티브 비디오 주기 사이에 데이터 아일랜드를 삽입할 지의 여부를 판단하는 회로를 나타내는 블록도이다.13A is a block diagram illustrating circuitry for determining whether to insert a data island between active video periods used in a transmitter in accordance with one embodiment of the present invention.

도 13b는 도 13a의 회로가 동작할 때 상기 회로에의 해 수신되고 생성된 몇 가지 신호들을 나타낸 타이밍도이다.FIG. 13B is a timing diagram illustrating some signals received and generated by the circuit of FIG. 13A in operation.

도 13c는 본 발명의 일 실시예에 따른 송신기에 사용되는 액티브 비디오 주기 사이에 데이터 아일랜드는 삽입하기 위한 회로를 나타내는 블록도이다.13C is a block diagram illustrating circuitry for inserting data islands between active video periods used in a transmitter in accordance with one embodiment of the present invention.

도 14는 본 발명의 바람직한 실시예에 따른 수신기를 나타내는 블록도이다.14 is a block diagram illustrating a receiver according to a preferred embodiment of the present invention.

도 15는 본 발명에 일반적인 실시예에 따른 시스템에 사용되는 보저 데이터 클록 전송 및 재생성(regeneration) 회로를 나타내는 블록도이다.FIG. 15 is a block diagram illustrating a complement data clock transfer and regeneration circuit for use in a system according to an embodiment of the present invention.

도 16은 본 발명의 일반적인 실시예에 따른 수신기에 사용되는 보조 데이터 클록 재생성 회로를 나타내는 블록도이다.16 is a block diagram illustrating an auxiliary data clock regeneration circuit used in a receiver according to a general embodiment of the present invention.

도 17, 18, 19, 20 및 21 각각은 본 발명의 일 실시예에 따른 시스템 (또는 데이터가 시리얼 링크를 통해 전송되는 다른 시스템)에서 구현될 수 있는 링크 완결성 체크 동작(link integrity check operation)을 나타내는 타이밍도이다.17, 18, 19, 20 and 21 each illustrate a link integrity check operation that may be implemented in a system (or other system in which data is transmitted over a serial link) in accordance with one embodiment of the present invention. A timing diagram is shown.

도 22는 본 발명의 송신기에 인가될 수 있는 오디오 및 픽셀 클록의 타이밍도이다. 상기 오디오 및 픽셀 클록들은 완전히 동기하지 않는 것으로 도시된다.22 is a timing diagram of an audio and pixel clock that may be applied to the transmitter of the present invention. The audio and pixel clocks are shown as not completely synchronized.

도 23은 상기 송신기 및 수신기 카운팅에 의한 CTS 카운트가 어떻게 재동기화될 수 있는지를 나타내는, 본 발명의 바람직한 실시예에 따른 시스템에 의해 생성된 신호들의 타이밍도이다.23 is a timing diagram of signals generated by a system according to a preferred embodiment of the present invention, showing how the CTS counts by the transmitter and receiver counting can be resynchronized.

상술한 바와 같이, (여기에서 사용된) 데이터의 "스트림"이란 용어는 그 모든 데이터가 동일한 형태이고 동일한 클록 주파수에 따라 전송되는 데이터를 지칭하며, (여기에서 사용된) "채널"이란 용어는 데이터를 전송하기 위해 사용되는 시 리얼 링크의 부분(예를 들어, 데이터가 전송되는 송신기와 수신기 사이의 특정 컨덕터 또는 컨덕터 쌍, 및 상기 데이터의 전송 및/또는 복원에 사용되는 상기 송신기 및/또는 수신기 내의 특정 회로) 및 상기 링크를 통해 데이터를 전송하는 데 사용되는 기술을 지칭한다.As mentioned above, the term "stream" of data (as used herein) refers to data in which all its data is of the same type and transmitted according to the same clock frequency, and the term "channel" (as used herein) The portion of the serial link used to transmit data (e.g., a specific conductor or conductor pair between the transmitter and receiver to which data is transmitted, and the transmitter and / or receiver used to transmit and / or restore the data Specific circuitry) and techniques used to transmit data over the link.

시리얼 링크를 통해 오디오 (또는 다른 보조) 데이터를 전송할 때, 종종 복수의 보조 데이터 스트림을 전송할 필요가 있고, 또한 보조 데이터를 전송하는 데에 링크의 복수 채널이 종종 유용하다. 예를 들어, 2 오디오 스트림(스테레오 오디오의 좌측 및 우측 스트림), 6 오디오 스트림(예를 들어, "5.1" 서라운드 사운드의 스트림), 또는 8 스트림(예를 들어, "7.1" 서라운드 사운드의 스트림)이 있을 수 있다. 반면에, 비디오와 함께 더 많은 오디오 데이터 스트림을 전송하고, 또는 오디오 및 비디오와 함께 비-오디오 보조 데이터 스트림(비디오와 동기되는 비-오디오 효과를 제공하기 위해)을 전송하는 것이 요구될 수 있다. 이러한 모든 보조 데이터 스트림들은 일반적으로 동일한 타이밍 베이스에 기초하지만, 반면에, 오디오 데이터 중 몇 가지 (또는 다른 보조) 데이터는 다른 타임 베이스에 기초할 수 있거나, 다른 샘플링 레이트를 가질 수 있다. 예를 들어, 링크를 통한 6 개의 펄스 코드 변조(PCM; Pulse code modulated) 오디오 데이터의 전송은 하나의 클록에 기초할 수 있다. (감소된 스피커 수에서 재생시키기 위해) 다운-믹스 등을 통한, 또 다른 2개의 압축 오디오 데이터 스트림이 비디오 및 PCM 데이터와 함께 전송될 수도 있다.When transmitting audio (or other auxiliary) data over a serial link, it is often necessary to send a plurality of auxiliary data streams, and also multiple channels of the link are often useful for transmitting auxiliary data. For example, 2 audio streams (left and right streams of stereo audio), 6 audio streams (eg, a stream of “5.1” surround sound), or 8 streams (eg, a stream of “7.1” surround sound). This can be. On the other hand, it may be desired to transmit more audio data streams with video, or to transmit non-audio auxiliary data streams (to provide a non-audio effect synchronized with video) with audio and video. All such auxiliary data streams are generally based on the same timing base, while some (or other auxiliary) data of the audio data may be based on different time bases or may have different sampling rates. For example, the transmission of six Pulse code modulated (PCM) audio data over a link may be based on one clock. Another two compressed audio data streams may be sent along with the video and PCM data, such as down-mix (to play at a reduced number of speakers).

고속 시리얼 디지털 데이터 전송에서 데이터는 천이의 수를 최대화 또는 최소화 하거나 또는 DC 레벨의 균형을 잡기 위해 종종 인코딩을 한다. 예를 들어, 본 발명의 일 실시예에 따른 하나 이상의 TMDS 링크를 포함하는 시스템에서, 천이 최소화되고, DC 밸런스되고, TMDS 인코딩된 비디오 데이터는 TMDS 링크의 3 채널 각각을 통해 전송되고, 인코딩된 보조 데이터(즉, 오디오 데이터)는 상기 액티브 비디오 주기들 사이의 블랭크 구간 동안 상기 3 채널 중 하나 이상의 채널을 통해 전송될 수 있다. 보조 데이터에 필요한 대역폭이 주 데이터(비디오 데이터)에 필요한 대역폭보다 작고 보조 데이터 채널이 (긴 케이블로부터 발생될 수 있는) 심각한 ISI를 갖는다면, 상기 보조 데이터는 전송을 위해 비디오 데이터를 인코딩하는 데 사용되는 천이-최소화(transition-minimized) TMDS 코드 워드들의 ("골든 워드"들을 포함하는) 서브세트들을 이용하여 바람직하게 인코딩될 수 있다.In high-speed serial digital data transmissions, data is often encoded to maximize or minimize the number of transitions or to balance the DC level. For example, in a system including one or more TMDS links in accordance with one embodiment of the present invention, the transition minimized, DC balanced, TMDS encoded video data is transmitted over each of the three channels of the TMDS link, and encoded secondary Data (ie, audio data) may be transmitted over one or more of the three channels during the blank period between the active video periods. If the bandwidth required for auxiliary data is less than the bandwidth required for main data (video data) and the auxiliary data channel has severe ISI (which may arise from long cables), then the auxiliary data is used to encode the video data for transmission. It can preferably be encoded using subsets (including "golden words") of transition-minimized TMDS code words that become.

본 발명에 따른 일 실시예는, 도 2에 도시된 형태의 시스템으로 구현될 수 있다. 도 2의 송신기(1' 및 2') 사이의 TMDS 링크는 도 1의 송신기(1 및 3) 사이의 TMDS 링크와 동일하지만, 도 1에 도시된 링크의 컨덕터들 중 몇 개는 도 2에 도시되지 않는다(단순화를 위해). 도 2의 시스템도 도 1의 시스템의 기능을 수행하고, 도 1의 종래의 시스템과 같은 방식으로 비디오 데이터를 인코딩할 뿐만 아니라, 오디오 데이터(또는 다른 보조 데이터)를 인코딩하고, TMDS 링크의 채널 0, 채널 1, 및 채널 2 중 하나 이상을 통해 상기 인코딩된 보조 데이터를 전송하며(또한, 상기 각 채널을 통해 인코딩된 비디오 데이터도 전송한다), (인코딩된 비디오 데이터뿐만 아니라) 상기 인코딩된 보조 데이터를 디코딩하도록 구성된다.An embodiment according to the present invention may be implemented in a system of the type shown in FIG. 2. The TMDS link between the transmitters 1 'and 2' of FIG. 2 is the same as the TMDS link between the transmitters 1 and 3 of FIG. 1, but some of the conductors of the link shown in FIG. 1 are shown in FIG. 2. (For simplicity) The system of FIG. 2 also performs the functions of the system of FIG. 1, not only encodes video data in the same manner as the conventional system of FIG. 1, but also encodes audio data (or other auxiliary data), and channel 0 of the TMDS link. Transmit the encoded auxiliary data over one or more of channels 1 and 2, and also transmit encoded video data over each channel, as well as the encoded auxiliary data (as well as encoded video data). It is configured to decode.

도 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)를 저장한다.The transmitter 1 ′ and the receiver 2 ′ of FIG. 2 correspond to the transmitter 1 and the receiver 3 of FIG. 1, respectively, but have not been performed by the transmitter 1 and the receiver 3 of FIG. 1. Perform data decoding, transmission, and decoding functions. The transmitter 1 ′ of FIG. 2 is a component of a source apparatus that also includes a combined MPEG2 decoder 13 and microcontroller 15 as shown. The decoder 13 applies an input video ("DigVideo") to the video data processing subsystem of the transmitter 1 ', and audio data ("SPDIF") and an audio reference clock to the audio data processing subsystem of the transmitter 1'. Input (“MCLK”) The input audio SPDIF may represent two or more streams of audio data (ie, left and right streams of stereo signals), and the EEPROM 14 transmits to the receiver 2 '. A key value and identification bits used for HDCP encryption of contents to be stored are stored.

도 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 복호화에 이용되는 키 값 및 인증 비트를 저장한다.The receiver 2 'of FIG. 2 also includes an EDID ROM 23, a microcontroller 25, a display circuit 26 and an audio digital-to-analog converter 27 ("DAC"), coupled as shown. (sink) A component of a device. The EDID ROM 23 is connected to the DDC channel of the TMDS link and stores state and configuration bits that can be read by the microcontroller 15 via the DDC channel. The receiver 2 'also includes an interface for communicating with the microcontroller 15 via the DDC channel (eg, interface 201 of FIG. 14). The microcontroller 25 is connected to the receiver 2 'for I2C communication. The EEPROM 24 stores key values and authentication bits used for HDCP decryption of the content received from the transmitter 1 '.

또한, 싱크 장치(sink device)는 수신기(2')에 의해 복원된 아날로그 및/또는 디지털 비디오를 수신하는 디스플레이 회로(26)와 수신기(2')에 의해 복원된 디 지털 오디오를 수신하는 오디오 디지털-아날로그 변환기(27; DAC(27))를 포함한다.In addition, the sink device is a display circuit 26 for receiving analog and / or digital video restored by the receiver 2'and an audio digital for receiving digital audio restored by the receiver 2 '. -Analog converter 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')는 오디오 데이터를 전송하는 데 이용되는 오디오 클록을 재생성하기 위해 상기 타임 스탬프 데이터를 프로세싱 하도록 구성된다. 전송된 타임 스탬프 데이터로부터 클록을 재생성하기 위한 바람직한 방법 및 시스템이 아래에 구체적으로 설명된다.Advantageously, the system of FIG. 2 transmits a video clock over a pair of conductors (named "channel C" in FIG. 2) of the TMDS link, and also provides a clock for auxiliary data over one or more channels of the link. send. For example, the transmitter 1 'sends video data to the receiver 2' via channels 0, 1 and 2 (with the same reference numerals as those attached to the channels of the system of FIG. 1) during the active video period. Transmit audio data (eg, left and right signals of a stereo signal) over one or more of channels 0, 1, and 2 at a time other than during the active video period, and continue (eg, a binary waveform). Transmit a video clock over channel C (determined by the rising edge of) and transmit time stamp data (via one or more of channels 0, 1 and 2) with each burst of audio data. The time stamp data determines the clock for audio data, as disclosed in US Patent Application No. 09 / 954,663, filed Sep. 12, 2001, supra. Receiver 2 'is configured to process the time stamp data to regenerate an audio clock used to transmit audio data. Preferred methods and systems for regenerating the clock from the transmitted time stamp data are described in detail below.

일반적으로 오디오 데이터 스트림에 대한 클록은 비디오 스트림에 대한 픽셀 클록보다 훨씬 낮은 주파수를 갖는다. 하지만, 대부분의 어플리케이션에서 오디오 클록은 지터(jitter)를 줄이기 위해 상기 픽셀 클록보다 훨씬 정교함을 요구한다. (지터를 갖는 디지털 오디오 데이터로부터 생성된) 아날로그 오디오의 왜곡이, 동 일한 양의 지터를 갖는 디지털 비디오로부터 생성된 디스플레이된 비디오 프로그램 내의 왜곡보다 (아날로그 오디오에 노련한 사람에게) 훨씬 쉽게 식별될 수 있기 때문이다.In general, the clock for an audio data stream has a much lower frequency than the pixel clock for the video stream. However, in most applications the audio clock requires much more sophistication than the pixel clock to reduce jitter. Distortion of analog audio (generated from digital audio data with jitter) can be identified much more easily (for those skilled in analog audio) than distortion in displayed video programs generated from digital video with the same amount of jitter. Because.

도 2의 시스템에서, 비디오 데이터의 8-비트 소스 워드들은 천이-최소화 10-비트 코드 워드로 인코딩되고, 그 다음 직렬 변환되고 채널 미디엄(채널 0, 1 및 2로 식별되는 컨덕터 쌍의 중 하나)을 통해 전송된다. 수신기(2')에서 각 10-비트 코드 워드는 에러가 존재하지 않으면 원래의 8-비트 워드로 다시 디코딩된다. 각 코드 워드는 9-비트 기본(9-비트 패턴의 29 세트의 천이-최소수를 갖고, 이것의 가장 중요한 비트는 기본 패턴이 천이-최소화이고, 기본 패턴 중 8 개의 가장 무의미한 비트들이 DC 밸런싱 알고리즘에 따라 반전되었거나 반전되지 않았는지를 나타내는 10번 째 비트와 연관되었음을 나타내는)의 패턴을 포함한다. 송신기(1')에서, 각 8-비트 소스 워드는 먼저 9-비트 기본 패턴들 중 하나로 인코딩되며, 그런 다음, 상기 9-비트 기본 패턴 스트림은 상기 10-비트 코드 워드 스트림으로서 (전송된 10-비트 코드 워드 스트림의 DC 밸런스를 향상시키는 방법으로) 인코딩된다. 그러나, 상기 디코딩된 비디오 데이터는, 전송된 시리얼 비트 스트림의 특정 채널 미디어 및 특정 데이터 패턴에 따라, (특히 관련된 채널이 심각한 ISI를 갖고 있을 때) 에러를 포함할 수 있다.In the system of FIG. 2, 8-bit source words of video data are encoded into transition-minimized 10-bit code words, then serialized and channel medium (one of the pair of conductors identified as channels 0, 1 and 2). Is sent through. At the receiver 2 'each 10-bit code word is decoded back to the original 8-bit word if no error exists. Each code word has a 9-bit base (2 9 sets of transition-minimums of a 9 -bit pattern, the most significant bit of which is the transition-minimization of the base pattern, and the eight most insignificant bits of the base pattern are DC balanced. Pattern associated with the tenth bit indicating whether or not inverted according to the algorithm. At the transmitter 1 ', each 8-bit source word is first encoded into one of the 9-bit basic patterns, and then the 9-bit basic pattern stream is the 10-bit code word stream (transmitted 10- In a way to improve the DC balance of the bit code word stream). However, the decoded video data may contain errors (especially when the associated channel has severe ISI), depending on the particular channel media and the particular data pattern of the transmitted serial bit stream.

만일 송신기(1') 및 수신기(2')가 비디오 데이터의 인코딩 및 디코딩 방법과 동일한 방법으로 보조 데이터를 인코딩 및 디코딩하고, 시리얼 링크의 동일한 채널 을 통해 인코딩된 데이터의 두 형태 모두를 전송하면, 상기 디코딩된 보조 데이터는 동일한 에러 레이트로 에러를 가질 것이다. 상기 에러 레이트는, 비디오 데이터에 대해서는 받아들일 수 있을지라도, 보조 데이터(특히 상기 보조 데이터가 오디오 데이터 일 때)에 대해서는 받아들일 수 없을 정도로 높을 수 있다. 상기 보조 데이터에 대한 에러 레이트를 줄이기 위해, 송신기(1')는 아래에 설명될 "골든 워드(golden words)"를 이용하여 보조 데이터를 인코딩하도록 구성될 수 있다. 선택적으로는, 송신기(1')는 또한 "골든 워드"를 이용하여 비디오 데이터를 인코딩하도록 구성될 수 있다 (또는, "골든 워드"를 이용하여 비디오 데이터 및 보조 데이터 모두를 인코딩하는 모드에서 동작할 수 있다). 그러나, "골든 워드"(코드 워드의 "풀 세트(full set)" 중 로버스트(robust)한 서브세트)를 이용하여 인코딩된 데이터는, 동일한 코드 워드의 "풀 세트"를 이용하여 인코딩된 동일 데이터보다 더 낮은 데이터 전송률을 반드시 갖는다(인코딩된 비트 스트림 양쪽 모두 동일 클록 주파수로 전송된다고 가정할 때). 여러 어플리케이션에서, 비디오 데이터는 골든 워드를 이용하여 인코딩되면 실제로 적절한 레이트로 전송되지 못한다. 따라서, 도 2의 시스템은 일반적으로 골든 워드를 이용하여 (비디오 데이터가 아닌) 보조 데이터를 인코딩하도록 구현된다.If the transmitter 1 'and the receiver 2' encode and decode auxiliary data in the same way as the encoding and decoding method of video data, and transmit both types of encoded data over the same channel of the serial link, The decoded auxiliary data will have errors at the same error rate. The error rate may be unacceptably high for auxiliary data (particularly when the auxiliary data is audio data), although it may be acceptable for video data. To reduce the error rate for the ancillary data, the transmitter 1 'can be configured to encode the ancillary data using "golden words" to be described below. Optionally, the transmitter 1 'may also be configured to encode video data using a "golden word" (or to operate in a mode of encoding both video data and auxiliary data using a "golden word"). Can be). However, data encoded using a "golden word" (a robust subset of a "full set" of code words) is the same encoded using a "full set" of the same code word. Necessarily have a lower data rate than data (assuming both encoded bit streams are transmitted at the same clock frequency). In many applications, video data is not actually transmitted at the proper rate if it is encoded using golden words. Thus, the system of FIG. 2 is generally implemented to encode auxiliary data (not video data) using golden words.

본 발명의 일 실시예에서, 본 발명에 따른 송신기 및 수신기는 (액티브 비디오 주기 사이의) 각 블랭크 구간을 3 개 이상의 부분으로 구별한다: ("데이터 아일랜드 프리앰블"이 전송될 수 있는) 초기 부분 다음으로, (때때로 "데이터 아일랜드"로 불리는) 보조 데이터 부분이 뒤따라오고, 그 뒤로 ("비디오 프리앰블"이 전 송될 수 있는) 마지막 부분이 뒤따라온다. 한편, (각각 다른 인코딩된 보조 데이터 스트림의 버스트가 뒤따라오는 하나 이상의 보조 가드 밴드를 포함하는) 블랭크 구간 내에 2 또는 그 이상의 데이터 아일랜드가 있다. 즉, (블랭크 구간의 시작 부분에서) DE의 폴링 에지 및 제1 데이터 아일랜드의 끝 부분 사이의 초기 부분, 상기 블랭크 구간 내의 각 연속적인 데이터 아일랜드 전의 (다른 데이터 아일랜드 프리앰블을 포함하는) 부가적인 부분, 마지막 데이터 아일랜드 및 다음 액티브 비디오 주기 사이의 (비디오 프리앰블을 포함하는) 마지막 부분이 있다. 각 블랭크 구간의 초기 데이터 아일랜드 프리앰블 동안, 제어 비트(CTL3, CTL2, CTL1 및 CTL0)의 특정 패턴을 나타내는 코드 워드가 반복적으로 전송되고, 선택적으로 초기 비트 패턴들(예를 들어, 채널(CH2 및 CH1)의 초기 보조 프리앰블의 시작 부분에서 도 5에 "Rsvd"로 표시된 타임 구간 내의 패턴들)도 또한 전송된다. 각 블랭크 구간의 비디오 프리앰블 동안, 제어 비트(CTL3, CTL2, CTL1 및 CTL0)의 다른 특정 패턴들을 나타내는 코드 워드들이 반복적으로 전송되고, 선택적으로 초기 비트 패턴(예를 들어, 채널(CH2 및 CH1)의 비디오 프리앰블의 시작 부분에서 도 6에 "Rsvd"로 표시된 타임 구간 내의 패턴들)도 또한 전송된다. 바람직하게는, 각 데이터 아일랜드 동안, 각각 인코딩된 보조 데이터 및 가드 밴드 워드들을 나타내는 코드 워드 패킷들이 전송된다.In one embodiment of the invention, the transmitter and receiver according to the invention distinguish each blank period (between active video periods) into three or more parts: after the initial part (where the "data island preamble" can be transmitted) This is followed by an auxiliary data part (sometimes called a "data island"), followed by the last part (where a "video preamble" can be transmitted). On the other hand, there are two or more data islands within a blank period (each comprising one or more auxiliary guard bands followed by a burst of different encoded auxiliary data streams). That is, an initial part between the falling edge of DE and the end of the first data island (at the beginning of the blank period), an additional part (including another data island preamble) before each successive data island in the blank period, There is a last part (including the video preamble) between the last data island and the next active video period. During the initial data island preamble of each blank period, a code word representing a specific pattern of control bits CTL3, CTL2, CTL1 and CTL0 is repeatedly transmitted, and optionally the initial bit patterns (e.g., channels CH2 and CH1). (At the beginning of the initial auxiliary preamble), patterns in the time interval indicated by " Rsvd " During the video preamble of each blank period, code words representing other specific patterns of the control bits CTL3, CTL2, CTL1 and CTL0 are repeatedly transmitted, and optionally the initial bit patterns (e.g., of channels CH2 and CH1). At the beginning of the video preamble, patterns in the time interval indicated by " Rsvd " Preferably, during each data island, code word packets are transmitted, each representing encoded auxiliary data and guard band words.

상술한 바와 같이, 2 또는 그 이상의 데이터 아일랜드들은 (그 사이에 액티브 비디오 주기가 없이) 연속적으로 전송될 수 있다. 또한, 2 도는 그 이상의 액티브 비디오 주기들이 (그 사이에 데이터 아일랜드 없이) 연속적으로 전송될 수 있 고, 도한, 데이터 아일랜드가 액티브 비디오 주기와 교대로 전송될 수 있다.As mentioned above, two or more data islands may be transmitted continuously (without an active video period in between). Also, two or more active video periods may be sent continuously (without a data island in between), and a data island may also be sent alternately with the active video period.

본 발명의 일 실시예에서, (도 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를 통해 전송된다.In one embodiment of the invention, the following signals are transmitted during the video preamble (as shown in FIGS. 3 and 6): The code word " 0010101011 " representing CTL3 = 0, CTL2 = 0 is transmitted over CH2 (preferably). Preferably, after the initial bit pattern in the " Rsvd " interval, the code word " 0010101011 " representing CTL1 = 0, CTL0 = 0 is repeatedly transmitted through CH1 (preferably after the initial bit pattern). A code word that is transmitted and that represents one of four possible combinations of sync bits (HSYNC and VSYNC) is repeatedly transmitted over CH0. In normal operation, during the last 12 pixel clock cycles of the video preamble (before the transition from DE to 0 as shown in FIG. 6), both sync bits (HSYNC and VSYNC) have a value of 0, thus HSYNC = A code word (i.e. code word " 0010101011 " shown at the bottom of FIG. 6) indicating 0, VSYNC = 0 is transmitted over channel 0.

일 실시예에서, (도 3 및 도 5에 나타낸 바와 같이) 초기 데이터 아일랜드 프리앰블 동안 다음 신호들이 전송된다: CTL3=0, CTL2=1을 나타내는 코드 워드 "1101010100"가 CH2를 통해 (바람직하게는, "Rsvd" 구간 내의 초기 비트 패턴 다음으로) 반복적으로 전송되고, CTL1=1, CTL0=0을 나타내는 코드 워드 "0010101010"가 CH1를 통해 (바람직하게는, 초기 비트 패턴 다음으로) 반복적으로 전송되고, 싱크 비트들(HSYNC 및 VSYNC)의 4 개의 가능한 조합 중 하나를 타나내는 코드 워드가 CH0를 통해 반복적으로 전송된다.In one embodiment, the following signals are transmitted during the initial data island preamble (as shown in FIGS. 3 and 5): The code word " 1101010100 " representing CTL3 = 0, CTL2 = 1 is preferably over CH2 (preferably, Is repeatedly transmitted after the initial bit pattern in the " Rsvd " interval, and the code word " 0010101010 " representing CTL1 = 1, CTL0 = 0 is repeatedly transmitted (preferably after the initial bit pattern), A code word representing one of four possible combinations of sync bits (HSYNC and VSYNC) is repeatedly transmitted over CH0.

송신기로부터 수신기로의 시리얼 링크를 통해 데이터를 전송하는 동안, 심볼 간 간섭(ISI; inter-symbol interference)이 에러를 일으켜 수신된 데이터가 전송된 데이터가 서로 다르게 될 수 있다. 이러한 에러를 일으키는 레이트는 채널 미디엄, 데이터가 이진 비트의 패턴인 시기, 전송되는 특정 비트 패턴 등의 요소에 따라 다르다. 본 발명의 바람직한 실시예에서, 데이터(예를 들어, 액티브 비디오 주기 사이의 데이터 아일랜드 동안 전송된 오디오 데이터)는, 시리얼 링크를 통한 전송을 위해, 종래의 동일한 데이터의 인코딩 버전에 의해 판단되는 패턴보다 링크를 통한 전송 도중 ISI에 덜 민감한 비트 패턴으로 인코딩된다. 따라서, 본 발명의 실시예에서, 데이터는 더욱 신뢰성을 갖고 전송되고, 종래의 동일한 데이터의 인코딩 보전에 비해 감소된 에러 레이트를 갖는다. 더욱 구체적으로는, 바람직한 실시예에서, 데이터는 코드 워드의 풀 세트 중 서브세트("로버스트"한 서브세트)를 이용하여 인코딩된다. 일반적으로, 풀 세트에서의 코드 워드들은 동일한 길이(에를 들어, 각각 N 비트로 구성된다)를 갖는다. 로버스트 서브세트는 여기서 때때로 코드 워드의 "선택된(selected)" 또는 "본 발명의(inventive)" 세트로 지칭될 수 있고, 로버스트 서브세트의 코드 워드들은 때때로 "본 발명에 따른" 코드 워드 (또는 "골든 워드")로 지칭될 수 있다. 로버스트 서브세트는, 전송된 (본 발명의 코드 워드 세트의 멤버들뿐만 아니라, 본 발명의 코드 워드 세트 멤버가 아닌 풀 세트의 코드 워드를 이용하여 코딩되는) 동일한 데이터의 종래 코딩 버전에 의해 판단되는 패턴보다, 시리얼 링크를 통한 전송 도중 ISI에 덜 민감한 패턴을 갖는 인코딩 데이터(본 발명의 코드 워드 세트의 멤버들만을 이용하여 코딩된)의 스트림으로 각각 전송되도록 선택된다. 본 발명이 코드 워드 세트보다 풀 세트의 코드 워드들이 더 많기 때문에, 전송된 데이터가 종래의 코드 워드의 풀 세트를 이용하여 인코딩되는 것보다 전송된 데이터가 본 발명의 코드 워드만을 이용하여 인코딩되었다면, 단일 시간당 더 적은 데이터의 워드들이 링크를 통해 전송될 수 있다.During the transmission of data over the serial link from the transmitter to the receiver, inter-symbol interference (ISI) causes an error such that the received data may be different from the transmitted data. The rate at which this error occurs depends on factors such as channel medium, when the data is a pattern of binary bits, and the particular bit pattern being transmitted. In a preferred embodiment of the invention, the data (e.g., audio data transmitted during a data island between active video periods) is, for transmission over a serial link, a pattern that is determined by the encoded version of the same conventional data. It is encoded in a bit pattern that is less sensitive to ISI during transmission over the link. Thus, in an embodiment of the present invention, data is transmitted more reliably and with a reduced error rate compared to conventional encoding integrity of the same data. More specifically, in a preferred embodiment, the data is encoded using a subset of the full set of code words (a subset of "robusted"). In general, code words in a full set have the same length (eg, each consisting of N bits). Robust subsets may sometimes be referred to herein as "selected" or "inventive" sets of code words, and code words in robust subsets are sometimes referred to as "code according" Or "golden word"). The robust subset is determined by a conventionally coded version of the same data transmitted (coded using not only the members of the code word set of the invention, but also the full set of code words that are not members of the code word set of the invention). It is selected to be transmitted in a stream of encoded data (coded using only the members of the code word set of the present invention) having a pattern that is less sensitive to ISI during transmission over the serial link than the pattern in which it is transmitted. Since the present invention has more full sets of code words than the code word set, if the transmitted data was encoded using only the code words of the present invention than the transmitted data is encoded using the full set of conventional code words, Less words of data per single time may be sent over the link.

본 발명에 따른 데이터의 인코딩 방법은, 상기 인코딩된 데이터가 매우 긴 컨덕터, 또는 다른 방법을 이용했을 경우 전송 도중 ISI 때문에 발생하는 에러의 높은 위험이 있을 수 있는 다른 컨덕터를 통해 전송되는 어플리케이션에서 특히 매우 유용하다.The method of encoding data according to the invention is particularly well suited for applications in which the encoded data is transmitted via very long conductors or other conductors which may have a high risk of errors due to ISI during transmission if other methods are used. useful.

본 발명의 일 실시예에서, 송신기(1')는 본 발명에 다른 액티브 비디오 주기 사이에 전송된 보조 데이터를 다음과 같이 인코딩하도록 구성된다. 10-비트 TMDS 코드 워드 풀 세트의 서브세트는, 인코딩된 보조 데이터(본 발명의 코드 워드로만 구성되고, 때때로 "골든 워드"로 불린다)의 10-비트 워드의 전송된 각 스트림이 (본 발명의 코드 워드뿐만 아니라 본 발명의 코드 워드가 아닌 풀 세트 모든 멤버들을 포함하는)동일한 데이터의 TMDS 인코딩 버전의 전송된 스트림에 의해 결정된 패턴보다 덜 민감한 심볼간 간섭을 갖는 패턴을 갖는다.In one embodiment of the invention, the transmitter 1 'is configured to encode auxiliary data transmitted between different active video periods in the present invention as follows. A subset of the full set of 10-bit TMDS code words consists of each transmitted stream of 10-bit words of encoded auxiliary data (consisting of only the code words of the present invention, sometimes referred to as " golden words "). It has a pattern that has less sensitive intersymbol interference than the pattern determined by the transmitted stream of the TMDS encoded version of the same data, as well as the code word, as well as all members of the full set of non-code words of the present invention.

일 실시예에서, 본 발명의 코드 워드 세트로 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 밸런스와 유사하게)되게 선택된다.In one embodiment, a 2 M -bit subset (where M <8) of the 10-bit TMDS code word full set is selected as the code word set of the present invention. Optionally, the codeword set of the present invention also includes one or more codewords of the full set used as guard band words. The 17 inventive code words (each including 10 bits) described below with reference to FIGS. 3 and 4 are a subset of the 2 M -bits added by one additional guard band word (where M = 4). ). The receiver 2 'is implemented to decode each of the 10-bit code words of the present invention received as an auxiliary data word of M bit length. The receiver 2 'performs a decoding operation on the encoded auxiliary data received during the blank period, such as an operation performed on the video words encoded by the conventional method received during the active video period. However, while encoding the source assistance data (using the code words of the present invention), the transmitter 1 'is a conventional DC balancing step ("N + 1") that was performed during encoding according to the conventional method of source video data. When the eight most insignificant bits of the first encoded video word are inverted, the cumulative DC drift of the tenth, N previous encoded video words, which distinguishes nine bits, reaches a predetermined threshold. The most significant bit of, and otherwise the eight most insignificant bits of the "N + 1" th encoded video word are not inverted, but instead associate the word with the other most significant tenth bit being distinguished) Do not do it. On the other hand, the transmitter 1 'can be used to determine the angle of the auxiliary data regardless of the accumulation of the resulting DC drift of the code word stream of the present invention (and also whether the MSB of the code word of the present invention is 1 or 0). It is configured to simply replace the 4-bit source word with the corresponding code word of the code word of the present invention. The code word of the present invention preferably overwrites the bit pattern of these streams of the code word of the present invention when the bits of the code word stream of the present invention are transmitted in succession to the rising and falling of the voltage over the serial link. The voltage drift that determines the time is chosen to be DC balanced (or similar to DC balance) such that it is limited to an appropriate amount.

일 실시예에서, 송신기(1')는 소스 보조 데이터를 (본 발명의 코드 워드를 이용하여) 인코딩하는 동안 그리고 소스 비디오 데이터를 종래 방법을 통해 인코딩하는 동안, 동일한 DC 밸런싱 단계를 수행하지 않는다. 이것은 본 발명의 코드 워드 세트를 선택하는데 고려 사항이 된다. 특히, 본 발명의 코드 워드 세트의 각 코드 워드는, 소스 보조 데이터의 4-비트 워드를 인코딩하는 동안(이를 워드를 본 발명의 10-비트 코드 워드들로 대체하기 위해), 10-비트 TMDS 코드 워드의 풀 세트 중 선택된 9-비트 기본 패턴 영역(space)의 멤버인 9-비트 기본 패턴을 갖고, 상기 9-비트 기본 패턴의 8개의 가장 무의미한 비트들은, 반전되고 제1 값을 갖는 10번 째 (가장 중요한) 비트와 관련된 결과 패턴이거나 또는, 상기 기본 패턴이 반전되지 않고 전에 인코딩된 보조 워드 스트림의 누적 DC 드리프트가 소정의 문턱 값에 도달하는지에 따라 제2의 값을 갖는 (가장 중요한) 10번 째 비트에 연관된다. 이 실시예들에서, 수신기(2')는, 액티브 비디오 주기 동안 수신된 종래의 방법으로 인코딩된 비디오 데이터 워드들에 대해 수행된 동일한 디코딩 동작을 블랭크 구간 동안 수신된 인코딩된 보조 데이터 워드들에 대해 수행되도록 하고, (10-비트 인코딩된 보조 데이터 워드들 중 하나를 종래 방법을 통한 디코딩을 통해 생성된) 각 8-비트 워드를 M-비트 길이를 각각 갖는 2M 개의 보조 데이터 워드들 중 하나로 매밍하도록 구현된다.In one embodiment, the transmitter 1 'does not perform the same DC balancing step while encoding the source assistance data (using the codeword of the present invention) and while encoding the source video data through the conventional method. This is a consideration in selecting the code word set of the present invention. In particular, each code word of the code word set of the present invention, while encoding a 4-bit word of source assistance data (to replace it with the 10-bit code words of the present invention), is a 10-bit TMDS code. Having a 9-bit base pattern that is a member of a selected 9-bit base pattern space of the full set of words, the eight most insignificant bits of the 9-bit base pattern are inverted and have a first value having a first value; A result pattern associated with the (most important) bit or a (most important) 10 having a second value depending on whether the underlying pattern is not inverted and the cumulative DC drift of the previously encoded auxiliary word stream reaches a predetermined threshold value. Is associated with the first bit. In these embodiments, the receiver 2 'performs the same decoding operation on the encoded auxiliary data words received during the blank period as for the same decoding operation performed on conventionally encoded video data words received during the active video period. Mapping each 8-bit word into one of 2 M auxiliary data words each having an M-bit length (generated through decoding with one of the 10-bit encoded auxiliary data words). Is implemented.

도 2의 시스템에 나타낸 실시예에서, 보조 데이터 인코딩 영역의 크기(본 발 명의 코드 워드 세트로 인코딩될 수 잇는 다른 보조 데이터 워드들의 수)는 본 발명에 따르면 28(256)에서 2M (여기서 M<8)으로 줄어들고, 따라서, 전송될 수 있는 (본 발명에 따라 인코딩된) 보조 데이터의 유효 레이트는 채널 당 클록 주기 당 8 비트에서 채널 당 클록 당 M 비트로 줄어든다. M 값을 줄임으로써(즉, 풀 세트로부터 더 작은 본 발명의 코드 워드 세트를 선택하여), 더 낮은 비트 에러 레이트(BER)를 이룰 수 있지만, 이와 더불어 데이터 레이트도 줄어들게 된다. 이에 비해, 파라미터 M의 증가는 데이터 레이트를 증가시킬 수 있지만, BER를 증가시키는 대가를 치른다.In the embodiment shown the system of Figure 2, the size of the auxiliary data encoding region (the number of different auxiliary data words linking can be encoded with the foot had codeword set) 2 M (where at 28 (256), according to the present invention M <8), so the effective rate of auxiliary data that can be transmitted (encoded according to the invention) is reduced from 8 bits per clock period per channel to M bits per clock per channel. By reducing the M value (i.e. by selecting a smaller set of code words of the present invention from the full set), a lower bit error rate (BER) can be achieved, but at the same time the data rate is also reduced. In comparison, increasing the parameter M can increase the data rate, but at the cost of increasing the 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의 다른 칼럼들은 코드 워드 클러스트의 매핑에 관계되는 본 발명의 특징을 참조하여 아래에 설명한다.3 and 4, an embodiment of the code word set of the present invention will be described. The code word set is a subset of a full set of conventional TMDS 10-bit code words and is suitable for transmitting auxiliary data at half of the data rate of the video data (in conventional methods). Also useful for the transmission of 4-bit words of encoded auxiliary data over a transmitted TMDS link (or TMDS-like link), which is encoded using a full set of TMDS 10-bit code words. In general, 8-bit input words of binary auxiliary data are buffered, and each of the four most significant bits is represented by 16 8-bit words (AD0-AD15) in the left column of FIG. 4 (indicated by "Input D7-D0"). Is encoded (in the transmitter 1 'of FIG. 2), and the four most significant bits of each 8-bit input word are also encoded into one of the 16 8-bit words AD0-AD15. Each word AD0-AD15 has a hexadecimal representation shown in the second column from the left of FIG. Each word AD0-AD15 is then encoded (as transmitter 1 ') into the corresponding one of the 10-bit patterns, as shown in the third column of FIG. 4 (indicated as "TMDS result"). Other columns of FIG. 4 are described below with reference to features of the present invention related to the mapping of code word clusters.

도 4( 및 도3)에서, 각 코드 워드의 좌측 비트는 LSB이고, (각 10-비트 코드 워드의 경우) 직렬 링크를 통해 전송될 최초 비트이다. 또한, 각 코드 워드의 우측 비트는 MSB이고, (각 10-비트 코드 워드의 경우) 상기 시리얼 링크를 통해 전송될 마지막 비트이다.In Figure 4 (and Figure 3), the left bit of each code word is the LSB, and (for each 10-bit code word) the first bit to be transmitted over the serial link. In addition, the right bit of each code word is the MSB and (in the case of each 10-bit code word) the last bit to be transmitted over the serial link.

예를 들어, (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로부터 재구성될 수 있다.For example, the input auxiliary data word 10000000 (LSB equals 1) is divided into two parts 1000 and 0000, which are encoded as AD1 and AD0, respectively. Then, the 8-bit word AD0 is encoded into the 10-bit word "0011100101" of the present invention, and the 8-bit word AD1 is encoded into the 10-bit word "0110001101" of the present invention. The two inventive words are then serialized into bits "0011100101" representing the "most significant" half (0000) of the input word to be transmitted before the bit "0110001101" representing the most insignificant half (1000) of the input word. Is converted and transmitted over the serial link. At the receiver, each 10-bit word according to the present invention is decoded into one of the 8-bit words AD0-AD15, and one-to-one mapping between each word AD0-AD15 and half (4 bits) of each 8-bit input auxiliary data word. Because of this, the original 8-bit auxiliary data word can be reconstructed from the recovered words AD0-AD15.

물론, 송신기(예를 들어 송신기(1')로) 인가되는 입력 보조 데이터는 4-비트 워드가 될 수 있고, 이 경우, 송신기는 수신된 입력 보조 데이터 워드를 워드(AD0-AD15)의 시퀀스로서 인코딩하기 전에 4-비트 포맷으로 분할(또는 포장)할 필요가 없다. 한편, 상기 입력 보조 데이터는 8-비트 워드(AD0-AD15)의 시퀀스로서 프리-인코딩(pre-encoding)될 수 있고, 상기 프리-인코딩된 보조 데이터는 8-비트 워드(AD0-AD15)의 시퀀스의 형태로 상기 송신기로 제공된다.Of course, the input auxiliary data applied to the transmitter (e.g., to the transmitter 1 ') may be a 4-bit word, in which case the transmitter may regard the received input auxiliary data word as a sequence of words AD0-AD15. There is no need to split (or wrap) into a 4-bit format before encoding. Meanwhile, the input auxiliary data may be pre-encoded as a sequence of 8-bit words AD0-AD15, and the pre-encoded auxiliary data is a sequence of 8-bit words AD0-AD15. It is provided to the transmitter in the form of.

일반적으로, 상기 인코딩된 보조 데이터는 비디오 데이터가 전송되는 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-비트 워드를 이용하여 인코딩된) 보조 데이터 및 (종래의 방법으로 인코딩된) 비디오 데이터, 및 (아래에 설명될) 인코딩된 제어 및 동기 신호를 나타낸다.In general, the encoded auxiliary data is transmitted on the same channel (CH0, CH1, and CH2) of the TMDS link through which video data is transmitted, but the auxiliary data is transmitted during the blank period between active video periods in which video data is transmitted. . 5 and 6 are timing diagrams showing signals transmitted according to this embodiment of the present invention. The upper nine signals of FIG. 5 represent signals input to the transmitter during the control data period and data island (in blank intervals), and the lower three signals of FIG. 5 represent control data in response to the upper nine signals. Auxiliary data (encoded using the 10-bit words of FIG. 4) and encoded control and sync signals (described below) transmitted over channels CH0, CH1 and CH2 during periods and data islands. Similarly, the upper nine signals of FIG. 6 represent signals input to the transmitter during the control data period and the active video period following the control data period at the end of the blank period (blank period of FIG. 5), and FIG. The lower three signals of six are supplemental data (encoded using the 10-bit word of FIG. 4) and conventional (to be transmitted) over the channels CH0, CH1 and CH2 in response to the upper nine signals. Video data encoded in a method, and encoded control and synchronization signals (to be described below).

도 5 및 도 6에서:In Figures 5 and 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) 포맷이다.The input data of the 24-bit word is provided to the encoding circuit of the transmitter for encoding. 5 relates to words that are auxiliary data words (each represented by D [23: 0] in FIG. 5). Figure 6 relates to words that are video data words (each represented by D [23: 0] in Figure 6). Eight bits of each input word (D {23:16]) are transmitted over channel CH2 (as a 10-bit encoded word CH2 [0: 9]) and the other eight bits of each input word (D [ 15: 8]) are transmitted over channel CH1 (as a 10-bit encoded word CH1 [0: 9]), and the other 8 bits (D [7: 0]) of each input word are channel CH0. Is sent (as a 10-bit encoded word CH0 [0: 9]). In one embodiment, the video data has an RGB format (and red, green and blue pixels are transmitted via CH2, CH1 and CH0, respectively), thus the channels CH2, CH1 and CH0 are each here (FIG. 3). Is sometimes referred to as a red (or R) channel, a green (or G) channel, or a blue (or B). On the other hand, the encoded (and transmitted) video data is in a luminance-chrominance format.

파형 "DCK" 는 데이터 클록을 나타낸다. 상기 데이터 클록의 각 사이클 동안, 보조 데이터(또는 가드 밴드)를 나타내는 본 발명에 따른 코드 워드 각각의 10 비트, 또는 비디오 데이터를 나타내는 종래 방법에 따른 TMDS 10-비트 코드 워드 각각은 채널(CH0, CH1 및 CH2) 중 관련된 채널을 통해 순차적으로 전송된다. 실제 구현되는 몇 가지 방법에서, 위상 쉬프팅 회로가 클록(DCK)의 다중, 위상 쉬프트된 버전을 생성하기 위해 사용되고, 그런 다음 (클록(DCK) 그 자체와 함께) 인코딩, 전송, 및 디코딩 동작의 타이밍을 제어하기 위해 이용된다. 다르게 구현되는 몇 가지 예에서, DCK의 주파수의 10 배의 주파수를 갖는 (하지만 DCK와 위상이 같은) 클록은 인코딩, 전송, 및 디코딩 동작의 타이밍을 제어하는 데 사용될 수 있고, 하나의 코드 비트가 상기 더 빠른 클록의 각 사이클 동안에 전송될 수 있다.Waveform "DCK" represents the data clock. During each cycle of the data clock, 10 bits of each of the code words according to the present invention representing auxiliary data (or guard bands), or TMDS 10-bit code words each according to the conventional method of representing video data are channels CH0, CH1. And CH2) sequentially transmitted over the related channel. In some practical implementations, phase shifting circuitry is used to generate multiple, phase shifted versions of the clock DCK, and then (with the clock DCK itself) the timing of encoding, transmitting, and decoding operations. It is used to control. In some other implementations, a clock with a frequency 10 times the frequency of the DCK (but in phase with the DCK) can be used to control the timing of the encoding, transmission, and decoding operations, with one code bit It may be sent during each cycle of the faster clock.

(도 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-픽셀 클록 사이클들이 요구된다.Waveform "DE" in Fig. 6 is a video data enable signal, and waveform "AUX DE 'in Fig. 5 is an auxiliary data enable signal, if DE = 1 and AUX DE = 0, (D in Fig. 6). [23:16], D [15: 8] and D [7: 0] video data are encoded, and the serialized 10-bit word of the encoded video is transmitted through channels CH0, CH1 and CH2. If DE = 0 and AUX DE = 1, auxiliary data (shown as D [23:16], D [15: 8] and D [7: 0] in FIG. 5) is encoded and the encoded auxiliary A serially converted 10-bit word of data is transmitted over channels CH0, CH1 and CH2 If DE = 0 and AUX DE = 0, the transmitter ignores the signals applied to the data inputs, instead Control bits applied to its control inputs (bits CLT3 and CLT2, shown as CTL [3: 2] in FIGS. 5 and 6, and bits CTL1 and CLT0, shown as CTL [1: 0] in FIGS. 5 and 6). Encode pairs (in 10-bit TMDS code words) And serially convert the codewords, and transmit the serialized codewords over channels CH1 and CH2 In a DVI system, the transmitter sends the sync bit pair (HSYNC and VSYNC) applied to its sync input. Encode (in a 10-bit transition maximizing word), serially convert the encoded words, and transmit the serialized codewords over the channel CH0 when DE = 0. However, in a preferred embodiment of the present invention For each data island, a 10-bit transition-minimization code word representing HSYNC and VSYNC is transmitted in each pixel clock cycle unit over channel CH0 (e.g., one representing HSYNC, VSYNC and the other two bits). Code words are sent in pixel clock cycles.) In this way, HSYNC and VSYNC are repeatedly iterated with the 32-pixel clock period needed to transmit a packet during the data island. Can be sent. Preferably, each packet transmitted during the data island includes a 32-bit packet header, and each code word representing HSYNC and VSYNC transmitted during the data island also represents one bit of the packet header. Thus, 32-pixel clock cycles are required to transmit the entire 32-bit packet header.

도 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을 참조하여 설명된 모든 인코딩, 직렬 변환, 및 전송 동작을 수행한다.Although FIGS. 5 and 6 have been described with reference to the two data enable signals "DE" and "AUX DE", the transmitter according to the present invention provides a logic for the signal data enable signals (e.g., signals DE and AUX DE). A portion (eg, a "core" processor of the transmitter 100 of FIG. 13 configured to perform the described encoding, serial conversion, and transmission in response to a combined enable signal indicative of the result of performing an "OR" operation. 114)). The core, an additional circuit outside of the transmitter, is a separate set of auxiliary data (eg 24-bit auxiliary data word) and video data (eg 24-bit video data word). And a video data enable signal DE, an auxiliary data enable signal AUX DE. It has an iterative sequence of values following the data enable signal: (DE = 0, AUX DE = 0), and (DE = 1, AUX DE = 0), and (DE = 0, AUX DE = 0). ), And (DE = 0, AUX DE = 1). Of course, the data enable signal may also occur as a sequence of other values, including a non-repeating sequence. For example, in some circumstances, ancillary data is transmitted only in a few blank intervals, not all video blank intervals. Therefore, the auxiliary data may be transmitted in one blank period and not in the next next blank period. The signals DE and AUX DE then have a sequence of values: (DE = 0, AUX DE = 0), and (DE = 1, AUX DE = 0), and (DE = 0, AUX DE = 0), and (DE = 0, AUX DE = 1), and (DE = 0, AUX DE = 0), and (DE = 1, AUX DE = 0), and (DE = 0, AUX DE = 0) , And (DE = 1, AUX DE = 0). The additional circuitry of the transmitter may include logic circuitry to OR the signals DE and AUX DE to generate a combined data enable signal. The additional circuitry may package the auxiliary data in a 4-bit format, encode each 4-bit portion of the auxiliary data into one of the words AD0-AD15 shown in FIG. 3, and encode a guard band word. It may be added to the stream of auxiliary data words AD0-AD15 at an appropriate timing, and the video guard band word may be added to the video data stream (or, at the appropriate timing, words of video data may be replaced with video guard band words). The additional circuitry includes a sequence of video data bursts (with video guard band words), and ancillary data (with guard band words) along with video data bursts and guard band words (e.g., with video guard band words). May be applied to the core in turn, and the combined data enable signal may also be applied to the core. The core performs all encoding, serial conversion, and transmission operations described with reference to FIGS. 5 and 6 in response to the combined data enable signal and video and auxiliary data bursts (rather than separate DE and AUX DE signals). do.

이전의 문단에서 설명된 실시예들의 변형에서, 상기 송신기의 "부가 회로(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 논리 연산하고, 상기 결합된 데이터 인에이블 신호를(개별적인 비디오 데이터 인에이블 신호 및 보조 데이터 인에이블 신호가 아닌) 상기 코아로 인가하는 논리 회로부를 포함할 수 있다.In a variation of the embodiments described in the previous paragraphs, the "additional circuitry" of the transmitter is coupled to receive and encode two or more auxiliary data sets (each set comprising a different type of auxiliary data) and It is composed. The additional circuit may further include an auxiliary data enable signal (eg, first and second auxiliary data enable signals AUX1 DE and AUX2 DE) for each of the video data set, the auxiliary data set, and the video data enable signal. (DE) is coupled and configured to receive a video data burst and a sequence of encoded auxiliary data bursts to the core of the transmitter: video data enable signal DE and auxiliary data enable signal AUX1 DE and AUX2 DE) has an iterative sequence of values: (DE = 0, AUX1 DE = 0, AUX2 DE = 0), and (DE = 1, AUX1 DE = 0, AUX2 DE = 0), and (DE = 0, AUX1 DE = 0, AUX2 DE = 0), and (DE = 0, AUX1 DE = 1, AUX2 DE = 0), and (DE = 0, AUX1 DE = 0, AUX2 DE = 1). The additional circuitry ORs the signals DE, AUX1 DE, and AUX2 DE to generate a combined data enable signal, and the combined data enable A signal (not the individual video data enable signal and the secondary data-enable signal) may include a logic circuit for applying to the core.

시리얼 링크의 하나 이상의 채널 각각에서(예를 들어, TMDS 링크를 통해 본 발명에 따른 데이터 전송 시의 채널(CH2 및 CH1) 각각에서), 본 발명에 따른 코드 워드 중 적절한 하나의 워드(또는 본 발명에 따른 가드 밴드 워드 중 2 이상의 적절한 워드들)가 바람직하게, 인코딩된 보조 데이터 버스트 각각의 시작 부분(즉, 각 블랭크 구간의 각 "보조 프리앰블" 바로 뒤), 인코딩된 보조 데이터 버스트 각각의 끝 부분, 및 인코딩된 비디오 데이터 버스트 각각의 시작 부분(즉, 각 블랭크 구간의 "비디오 프리앰블" 바로 뒤)에서 (가드 밴드 워드 또는 가드 밴드 워드 세트로서) 전송된다.In each of one or more channels of the serial link (e.g. in each of the channels CH2 and CH1 in the data transmission according to the invention via a TMDS link), one word of the code word according to the invention (or the invention Suitable words of two or more of the guard band words in accordance with the &lt; RTI ID = 0.0 &gt; preferably &lt; / RTI &gt; preferably start at each of the encoded auxiliary data bursts (i.e. immediately after each "secondary preamble" of each blank interval), and at the end of each encoded auxiliary data burst. And at the beginning of each encoded video data burst (ie, immediately after the "video preamble" of each blank period) (as a guard band word or guard band word set).

본 발명의 바람직한 실시예에서, 데이터 아일랜드 동안 전송될 소스 데이터는 코드 워드 풀 세트의 "로버스트" 서브세트를 이용하여 인코딩된다. 각각의 "로버스트" 서브세트는 코어 워드 세트(여기서 때때로 "골든 세트"로 불린다)로 구성되고, 각 골든 세트는 하나 이상의 코어 워드(여기서 때때로 "골든 워드"로 불린다)로 구성된다. 골든 세트의 각 "골든 워드"는 단일 소스 데이터 값(예를 들어 소스 데이터 워드)를 나타낸다. 골든 세트가 2 이상의 골든 워드로 구성된 경우, 이들 골든 워드 각각은 동일한 소스 데이터 값을 나타낸다. 풀 세트 내의 코어 워드의 클러스터들이 결정된다. 각 클러스터는 "골든 세트"를 포함하고, 또한, 선택적으로 하나 이상의 부가적인 풀 세트의 코어 워드를 포함하고, 여기서 부가적인 코어 워드 각각은 각 부가적인 코어 워드가 상기 골든 워드의 전송 또는 전송 및 디코딩 중에 있을 수 있는 비트 에러 결과 생성될 수 있다는 점에서 클러스터의 골든 세트의 골든 워드와 "유사"하다. 상기 클러스터들 중 하나 내의 수신된 코어 워드 각각은 클러스터 골든 세트에 의해 결정된 소스 데이터 값으로 매핑된다. 수신된 코드 워드의 클러스터로부터 단일 소스 데이터 값으로의 매핑 각각은, 상기 클러스터 내에서 에러를 갖는 워드를 상기 에러를 갖는 워드에 가장 적절하게 대응되는 소스 데이터 값으로 다시 매핑 시킴으로써 에러 정정을 제공할 수 있다. In a preferred embodiment of the invention, the source data to be transmitted during the data island is encoded using a "robust" subset of the code word pool set. Each "robust" subset consists of a set of core words (sometimes referred to herein as "golden sets"), and each golden set consists of one or more core words (sometimes referred to herein as "golden words"). Each "golden word" of the golden set represents a single source data value (eg a source data word). If the golden set consists of two or more golden words, each of these golden words represents the same source data value. Clusters of core words in the full set are determined. Each cluster includes a "golden set" and, optionally, also one or more additional full sets of core words, where each additional core word is sent by each additional core word to transmit or transmit and decode the golden word. It is "similar to" the golden word of the golden set of the cluster in that it can be generated as a result of a bit error that may occur. Each received core word in one of the clusters is mapped to a source data value determined by the cluster golden set. Each mapping of a received code word from a cluster to a single source data value may provide error correction by remapping the word with an error in the cluster to a source data value most appropriately corresponding to the word with the error. have.                 

코드 워드의 풀 세트는, 시리얼 링크의 채널을 통한 전송을 위해 한 종류의 데이터(예를 들어, 비디오 데이터)를 인코딩하는 데 이용될 수 있고, 상기 로버스트 서브세트는, 상기 동일 채널을 통한 전송을 위해 다른 종류의 데이터(예를 들어, 오디오 데이터 또는 비디오 데이터에 관련되거나 유용한 다른 "보조" 데이터)를 인코딩하는 데 이용될 수 있다.A full set of code words can be used to encode one type of data (eg, video data) for transmission over a channel of a serial link, the robust subset being transmitted over the same channel. Can be used to encode other kinds of data (e.g., other "auxiliary" data related to or useful with audio data or video data).

일 실시예에서, 각 골든 세트 내의 각 코드 워드(그리고 풀 세트 내의 각 코드 워드)는 M-비트의 인코딩된 버전을 갖는 N-비트 워드이며, 여기서 M은 N보다 작은 정수이다. 시리얼 링크를 통해 N-비트 골든 워드의 시퀀스 전송 뒤, 수신된 N-비트 코드 워드 각각은 (전송에 에러가 발생하면) 골든 워드들 중 하나와 다를 수 있고, 또는 상기 전송된 골든 워드들 중 하나와 동일할 수 있다. 상기 클러스터들 중 하나 내의 수신된 N-비트 코드 워드 각각은 디코딩된 M-비트 워드를 생성하기 위해 디코딩되고, 상기 디코딩된 M-비트 워드 각각은 상기 클러스터의 골든 세트에 의해 결정된 소스 데이터 값으로 매핑된다.In one embodiment, each code word in each golden set (and each code word in a full set) is an N-bit word with an encoded version of M-bits, where M is an integer less than N. After a sequence transmission of N-bit golden words over the serial link, each of the received N-bit code words may be different from one of the golden words (if there is an error in transmission), or one of the transmitted golden words. May be the same as Each received N-bit code word in one of the clusters is decoded to produce a decoded M-bit word, each mapped to a source data value determined by the golden set of the cluster. do.

예를 들어, 일 실시예에서, 코드 워드의 풀 세트는 10-비트의 세트이고, 256 개의 8-비트 소스 워드를 나타내는 천이-최소화 TMDS-인코딩 워드이다. 상기 풀 세트의 로버스트 서브세트는 256 개의 8-비트 소스 워드 풀 세트의 서브세트를 나타내는 8-비트 "골든 워드"로 구성된다. 본 발명의 바람직한 실시예에서, 수신된 상기 클러스터들 중 하나 내의 10-비트 코드 워드 각각은 8-비트 워드를 복원하기 위해 TMDS 디코딩 알고리즘(또는 상기 알고리즘의 변형 버전)에 따라 디코딩되고, 복원된 8-비트 워드 각각은 클러스터에 의해 결정된 8-비트 소스 워드로 매핑된다. For example, in one embodiment, the full set of code words is a set of 10-bits and is a transition-minimizing TMDS-encoding word representing 256 8-bit source words. The robust subset of the full set consists of an 8-bit "golden word" representing a subset of the 256 8-bit source word pool set. In a preferred embodiment of the present invention, each of the 10-bit code words in one of the clusters received is decoded according to the TMDS decoding algorithm (or a modified version of the algorithm) to recover an 8-bit word, and the recovered 8 Each bit word is mapped to an 8-bit source word determined by the cluster.                 

도 7을 참조하여, 본 발명의 바람직한 실시예에서 이용되는 수신된 워드의 클러스터(예를 들어, 도 7의 클러스터(Sa 및 Sb))를 개개의 전송된 소스 데이터 워드(예를 들어, 워드(a 및 b))로 매핑하는 방법의 개념을 설명한다. 그리고, 도 4를 참조하여 상기 매핑의 특정 예를 설명한다.Referring to Figure 7, for the preferred embodiment a cluster of the received word which is used in the Examples (e. G., The cluster (S a and S b) in FIG. 7) for each of the transmitted source data words (for example of the present invention, The concept of the method of mapping to words a and b) is explained. Next, a specific example of the mapping will be described with reference to FIG. 4.

도 7을 참조하면, (예를 들어, 보조 데이터가 풀 세트의 본 발명에 따라 "골든 워드"만을 이용하여 인코딩되었을 때, 주 데이터를 인코딩하도록 사용될 수 있는) 코드 워드의 풀 세트는 2N 개의 다른 소스 데이터 워드를 인코딩하는 데 사용될 수 있는 코드 워드들(2N 공간(space))이고, 각 소스 데이터 워드는 정된된 쿠 비트의 세트이다. 상기 골든 워드(2n 공간)는 2n 개의 다른 소스 데이터 워드를 인코딩하는 데 이용될 수 있는 풀 세트 코드 워드의 서브세트이며, 상기 소스 데이터 워드 각각은 정돈된 n 비트의 세트(여기서 "n"은 N보다 작은 정수)이다. 맨 처음, 원래의 소스 데이터(어떤 길이의 워드를 구성할 수 있는)는 n-비트 포맷(즉, 2n 소스 데이터 워드 세트의 n-비트 멤버로)으로 버퍼링되고 포장될 수 있다. 그런 다음, 각각의 다른 n-비트 소스 데이터 워드는, 골든 워드 중 하나(2n 공간에서)로서 인코딩될 수 있고, 시리얼 링크(일반적으로 상기 링크의 단일 채널을 통해)를 통해 전송된다. 상기 전송은 에러를 낼 수 있거나 에러가 없을 수 있다.7, the full set of (e.g., which may be used to encode the main data as auxiliary data is encoded by using only the "Golden word" in accordance with the invention of the full set) codeword 2 N of There are code words (2 N spaces) that can be used to encode other source data words, each source data word being a defined set of qubits. The golden word (2 n spaces) is a subset of a full set code word that can be used to encode 2n different source data words, each of which is an ordered set of n bits where " n " Integer less than N). Initially, the original source data (which may constitute words of any length) may be buffered and packed in n -bit format (ie, with n -bit members of a 2 n source data word set). Each other n-bit source data word can then be encoded as one of the golden words (in 2 n spaces) and transmitted over a serial link (typically over a single channel of the link). The transmission can be error prone or error free.

코드 워드의 풀 세트의 클러스터들은, 각 클러스터가 (하나 이상의 골든 워드인) "골든 세트", 및 선택적으로 하나 이상의 풀 세트의 부가적 코드 워드를 포 함하도록 미리 예정될 수 있고, 상기 부가적 코드 워드 각각은 상기 클러스터의 골든 세트의 골든 워드와 유사하다. 도 7에서, 예를 들어, 클러스터(Sa)는 소스 워드(a)를 인코딩하는 골든 워드 각각을 구성하는 골든 세트를 포함하고, 클러스터(Sb)는 소스 워드(b)를 인코딩하는 골든 워드 각각을 구성하는 골든 세트를 포함한다. 상기 클러스터들 중 하나 내의 수신된 코드 워드 각각은 상기 클러스터 골든 세트에 의해 결정된 소스 데이터 값에 매핑된다.Clusters of a full set of code words may be pre-scheduled so that each cluster includes a "golden set" (which is one or more golden words), and optionally one or more full sets of additional code words, wherein the additional code Each word is similar to a golden word of the golden set of the cluster. In FIG. 7, for example, cluster S a comprises a golden set constituting each of the golden words encoding source word a, and cluster S b is a golden word encoding source word b. It includes a golden set that makes up each. Each received code word in one of the clusters is mapped to a source data value determined by the cluster golden set.

N=8이고 n=4인 일 실시예에서, 2N 공간의 각 코드 워드는 10-비트 TMDS 인코딩된 워드이며, 상기 2n 공간은 10-비트 TMDS 인코딩된 워드의 풀 세트의 서브세트이다. 전송된 10-비트 TMDS 코드 워드 각각은 TMDS 디코딩 알고리즘 (또는 상기 알고리즘의 변형 버전)을 따라 디코딩되어 8-비트 코드 워드를 생성한다. 본 발명의 상기 실시예 및 다른 실시예에서, 골든 워드의 전송( 및 상기 골든 워드의 어떤 디코딩)은 에러가 있을 수 있거나 또는 에러가 없을 수 있다.In one embodiment where N = 8 and n = 4, each code word in 2 N spaces is a 10-bit TMDS encoded word, and the 2 n spaces are a subset of the full set of 10-bit TMDS encoded words. Each transmitted 10-bit TMDS code word is decoded according to a TMDS decoding algorithm (or a modified version of the algorithm) to produce an 8-bit code word. In the above and other embodiments of the present invention, the transmission of the golden word (and any decoding of the golden word) may or may not be error.

특정 골든 워드 각각에 대해, 전송 에러들의 어떤 형태들은 상기 채널이 심볼간 간섭 또는 다른 감성(degradation)을 가질 때 예상된다. 따라서, 각 골든 워드에 대해(즉, 2n 공간의 N-비트 멤버 각각에 대해), 이러한 골든 워드를 포함하는 클러스터는 바람직하게, 골든 워드의 전송 도중 전송 에러의 발생이 유발될 수 있는 2n 공간의 모든 N-비트 멤버들을 포함한다. 그러나, 상기 클러스터들은 분리되어 있기 때문에, 하나의 클러스터 내의 N-비트 워드는 모든 다른 클러스터들로부터 제 외된다.For each particular golden word, some forms of transmission errors are expected when the channel has intersymbol interference or other degradation. Thus, for each golden word (ie, for each N-bit member of 2 n space), the cluster containing this golden word is preferably 2 n where a generation of a transmission error may occur during the transmission of the golden word. Contains all N-bit members of space. However, because the clusters are separate, the N-bit word in one cluster is excluded from all other clusters.

본 발명에 따른 각 실시예는 골든 세트의 각 골든 워드에 부가되는 하나 이상의 코드를 포함하는 하나 이상( 및 일반적으로 1보다 많이)의 클러스터를 이용한다. 본 발명에 따른 몇 가지 실시예에서는 골든 세트의 각 골든 워드에 부가되는 하나 이상의 코드를 포함하는 하나 이상의 클러스터 및, 골드 세트의 각 골든 워드 외의 다른 코드를 포함하지 않는 하나 이상의 다른 클러스터를 이용한다. 모든 클러스터들(예를 들어, 도 7의 Sa, Sb 등)은 서로 상호 분리되어 있기 때문에, 전송 도중(또는 전송 및 디코딩 도중) 에러가 발생하거나 발생하지 않거나에 관계없이, 클러스터가 수신된 N-비트 코드를 포함하고 있으면, 상기 수신된 코드는 정정된 소스 워드로 재 매핑된다.Each embodiment in accordance with the present invention utilizes one or more (and generally more than one) clusters containing one or more codes added to each golden word of the golden set. Some embodiments in accordance with the present invention utilize one or more clusters that include one or more codes added to each golden word of the golden set, and one or more other clusters that do not contain any code other than each golden word of the gold set. All clusters (e.g., of Figure 7 S a, S b etc) is (or during transmission, and decodes) each other because they are separated, during the transmission from each other, regardless of the error does not occur, or occurs, the cluster is received If it contains an N-bit code, the received code is remapped to a corrected source word.

도 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 코드 워드를 포함한다.In the embodiment of Figure 7, a full set of code words (2 n spaces) is a full set of 10-bit TMDS code words, where the 2 n spaces are TMDS codes representing a predetermined set of 16 different 8-bit source data words. It consists of words. Thus, each cluster contains a golden set of TMDS code words that includes a golden word representing one of 16 different source data words. In general, a 4-bit word of original source data is preliminarily encoded into 16 different 8-bit source data words, and each of the generated 8-bit source data words is then 10-bits of 2 n spaces for transmission. Encoded as one of the members. Thus, the robust subset (of the full set of TMDS code words) is 256 8-bit source data words determined when understood in the full set of TMDS code words (when decoded with the TMDS decoding algorithm or a variant of the algorithm). A) 10-bit TMDS code words that determine 16 predetermined 8-bit source data words. Each cluster is preferably "similar to" one of the golden words (i.e., a codeword similar to a golden word) in that it can occur not only from the golden word of the golden set, but also from bit errors during transmission of the golden word than other TMDS code words. Contains only one or more 10-bit TMDS code words.

코드 워드의 풀 세트로부터 골든 세트를 선택하는 과정은 매우 중요하다. 일반적으로, 바이너리 코드 워드의 풀 세트로부터 선택된 특정 골든 세트에 대한 최고의 선택은 풀 세트에 의해 구현된 특정 코딩에 달려 있다(즉, 풀 세트의 각 코드 워드의 비트의 어떤 것이 0이고, 어떤 것이 1인지의 구체적인 사항). 상술한 바와 같이, 몇 가지 바람직한 실시예에서, 골든 세트의 코드 워드는 (전송 중의) 시리얼 패턴이 더 적은 연속된 0 및 1들을 갖는(예를 들어, 평균적으로) 것들로 선택되고, 따라서, 선택되지 않는 풀 세트의 코드 워드들 보다 전송 도중 ISI 에 덜 민감하게 된다(예를 들어, 골든 워드의 코드 워드 당, 연속된 0 및 1의 평균 수는 골든 워드로 선택되지 않는 풀 세트의 코드 워드들 보다 훨씬 작다).The process of selecting a golden set from a full set of code words is very important. In general, the best choice for a particular golden set selected from a full set of binary code words depends on the particular coding implemented by the full set (ie, which of the bits of each code word of the full set is zero and which one is one. Specifics of cognition). As mentioned above, in some preferred embodiments, the code set of the golden set is chosen to be ones (e.g. on average) with serial sequences (in transit) having fewer consecutive zeros and ones, and thus selection Less sensitive to ISI during transmission than a full set of code words that are not (for example, the average number of consecutive zeros and ones per code word of a golden word is the full set of code words not selected as a golden word). Much smaller than).

다른 바람직한 실시예에서, 상기 골든 워드는 하나의 클러스터 내의 어떤 골든 워드와 다른 클러스터 내의 어떤 골든 워드 사이의 해밍(Hamming) 거리가 문턱 값을 초과하는 기준 및, 다른 클러스터들 내의 골든 워드들 사이의 해밍 거리가 서로 분리된 클러스터들에 구속(constraint)되는 실제 거리를 최대화(몇 가지 의미 에서)하는 기준(예를 들어, 다른 클러스터들 내의 골든 워드들 사이의 평균 해밍 거리가 최대화되는 기준)을 만족하도록 선택된다. 이것은 클러스터들이 서로 분리된 구속을 유지하면서, 각 클러스터에 포함될 수 있는 (하나의 골든 세트의 골든 코드들이 아닌 다른 코드인) "에러가 있는 코드(errored codes)"의 멤버의 수를 증가시키도록 한다.In another preferred embodiment, the golden word is a criterion for which the Hamming distance between a golden word in one cluster and a golden word in another cluster exceeds a threshold and a hamming between golden words in other clusters. To satisfy a criterion that maximizes (in some sense) the actual distance that the distance is constrained to clusters separated from each other (e.g., the criterion where the average hamming distance between golden words in other clusters is maximized). Is selected. This allows the clusters to increase the number of members of "errored codes" (that is, codes other than the golden codes of one golden set) that can be included in each cluster, while keeping the constraints separate from each other. .

본 발명을 구현하기 위해, 수신기(예를 들어, 도 14의 수신기(200))는 바람직하게, 상기 클러스터의 요소를 나타내는 각 입력들에 응답하여 (즉, 상기 클러스터가 하나의 골든 워드 및 상기 골든 워드와 유사한 3개의 코드 워드로 구성된, 4개의 수신된 코드 워드 각각에 응답하여), 각 클러스터에 의해 결정된 하나의 값(예를 들어, 소스 데이터 워드)을 출력하는 소정의 테이블을 포함하도록 구성된다.상기 테이블은, 각 클러스터 내의 수신된 코드 워드 각각을 상기 클러스터의 골든 세트에 의해 결정된 소스 워드로 매핑하거나, 또는 각 클러스터 내의 수신된 코드 워드 각각을 상기 클러스터의 골든 세트의 골든 워드로 매핑하거나(그런 다음, 수신기 (또는 수신기 외부) 내에 있는 종래의 하드웨어 또는 소프트웨어에 의해 상기 클러스터 골든 세트에 의해 결정된 소스 워드로 매핑된다), 또는 각 클러스터 내의 수신된 코드 워드 각각의 디코딩 버전을 상기 클러스터 골든 세트에 의해 결정된 소스 워드로 매핑하거나, 또는 각 클러스터 내의 수신된 코드 워드 각각의 디코딩 버전을 단일 디코딩된 코드 워드로 매핑한다(그런 다음, 상시 수신기 내 또는 외부에 있는 종래의 하드웨어 또는 소프트웨어에 의해 상기 클러스터 골든 세트에 의해 결정된 소스 워드로 매핑된다). To implement the present invention, a receiver (eg, receiver 200 of FIG. 14) preferably responds to each input representing an element of the cluster (i.e., the cluster has one golden word and the golden word). In response to each of the four received code words, consisting of three code words similar to a word, configured to include a predetermined table that outputs one value (eg, source data word) determined by each cluster. The table maps each received code word in each cluster to a source word determined by the golden set of the cluster, or maps each received code word in each cluster to a golden word of the cluster's golden set ( Then, by the cluster golden set by conventional hardware or software within the receiver (or outside of the receiver) Or a decoded version of each received code word in each cluster to a source word determined by the cluster golden set, or a single decoded version of each decoded version of a received code word in each cluster. To a code word (then it is then mapped to a source word determined by the cluster golden set by conventional hardware or software, either in or outside the receiver at all times).                 

예를 들어, 도 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-비트 디코딩된 워드들을 인가한다.For example, receiver 200 of FIG. 14 includes a core processor (including core word recovery circuitry) that implements such a table, and mapping and decoding circuitry 20 (of system 208). Circuit 214 is configured to recover a 10-bit TMDS code word from data received on each of the TMDS channels CH0, CH1 and CH2. The circuit 20 maps each recovered word in one of the clusters (using a table) to a golden word of the cluster, decodes each of the golden words to produce an 8-bit decoding value (17 in the left column of FIG. 4). One of the 8-bit words). The 8-bit decoding value represents source words. In some embodiments of the invention, the mapping and decoding circuitry generates a 4-bit original source data word in response to each of the decoded 8-bit words (representing one of the words AD0-AD15 in FIG. 4). However, the circuit 20_ of FIG. 14 applies 8-bit decoded words to the decoding circuit 21.

상기 클러스터(그리고 상기 수신기 내의 상술한 테이블로의 입력)는 코드 워드의 풀 세트(예를 들어, 도 7의 2N 공간)의 부분이 될 수 있고, 상기 클러스터의 결합은 코드 워드의 전체 공간(예를 들어, 도 7의 전체 2N 공간)을 커버하고, 상기 클러스터들을 상호 분리된다. 그러나, 상기 풀 세트 내의 코드 워드들 중 하나가 하나의 골든 워드의 전송에 응답하여 수신될 수 있는 가능성은 매우 작거나 무시될 수 있고, 따라서, 이러한 코드 워드는 상기 클러스터 모드로부터 제외될 수 있다(그리고 상기 테이블에서 누락될 수 있다). 후자의 경우, 상기 클러스터의 결합은 코드 워드의 전체 공간(예를 들어, 도 7의 전체 2N 공간)을 커버하지 않는다. The cluster (and input to the above-mentioned table in the receiver) may be part of a full set of code words (e.g., 2 N spaces in FIG. 7), and the combination of clusters may result in the total space of the code words For example, the entire 2 N space of FIG. 7), and the clusters are separated from each other. However, the possibility that one of the code words in the full set can be received in response to the transmission of one golden word can be very small or neglected, and thus such code words can be excluded from the cluster mode ( And may be missing from the table). In the latter case, the concatenation of the clusters does not cover the entire space of the code word (eg, the entire 2 N space of FIG. 7).

편의상, 청구항에서, "클러스터의 코드 워드 각각을 상기 클러스터의 바람직한 워드 세트(또는 골든 세트)에 의해 결정된 입력 데이터(또는 소스 데이터) 값으로 매핑하기 위해" 또는 이러한 표현의 변형된 표현이 사용된다. 이러한 표현은, 클러스터의 코드 워드 각각을 상기 클러스터의 바람직한 워드 세트(골든 세트)에 의해 결정된 소스 데이터(입력 데이터) 값으로 직접 매핑하는 것을 가리키며, 또는 상기 골든 워드(또는 바람직한 워드)에서 상기 클러스터의 골든 세트(또는 바람직한 워드 세트)에 의해 결정된 소스 데이터(입력 데이터) 값으로의 종래 방법에 따른 매핑이 선택적으로 뒤따라오는 클러스터의 코드 워드 각각을 상기 클러스터의 골든 세트(또는 바람직한 워드 세트)의 골든 워드(또는 바람직한 골든 워드)로 매핑하는 것을 가리키며, 또는 클러스터의 코드 워드 각각의 디코딩된 버전을 상기 클러스터의 골든 세트(또는 바람직한 워드 세트)에 의해 결정된 소스 데이터(입력 데이터) 값으로 매핑하는 것을 가리키며, 또는 상기 디코딩된 코드 워드를 상기 클러스터의 골든 세트(또는 바람직한 워드 세트)에 의해 결정된 소스 데이터(입력 데이터)로 종래의 방법에 따라서 매핑하는 것이 선택적으로 뒤따라오는 클러스터의 코드 워드 각각의 디코딩된 버전을 단일 디코딩 코드 워드로 매핑하는 것을 가리킨다.For convenience, in the claims, "to map each of the code words of a cluster to input data (or source data) values determined by the preferred word set (or golden set) of said cluster" or a modified representation of this representation is used. This representation refers to the direct mapping of each code word of a cluster to a source data (input data) value determined by the preferred word set (golden set) of the cluster, or in the golden word (or preferred word) of the cluster. Golden words of the cluster's golden set (or preferred word set), each of the code words of the cluster optionally followed by a mapping according to the conventional method to source data (input data) values determined by the golden set (or preferred word set). (Or to a preferred golden word), or to map a decoded version of each code word of a cluster to a source data (input data) value determined by the cluster's golden set (or preferred word set), Or the decoded code word to the Mapping the decoded version of each of the code words of the cluster optionally followed by mapping according to the conventional method to source data (input data) determined by the golden set of data (or preferred word sets). Point.

각 클러스터 내의 워드들의 골든 코드로의 매핑은, 예를 들어, 상기 골든 코드를 포함하는 소정 클러스터에 속하는 수신된 워드 각각에 대한 골든 코드를 대신하기 위해 클록 로직(clocked logic)을 이용하여, 어떤 의미로는 "온 더 플라이(on the fly)" 방식으로 수행될 수 있다. 예를 들어, 몇 가지 실시예들에서, 상기 수신 기는, 수신된 코드 워드의 어떤 비트가 에러가 발생할 것 같은지를 판단하고, 상기 수신된 코드 워드를 에러가 발생할 것 같다고 판단한 각 비트를 플리핑(flipping)함으로써 골든 코드로 매핑하는 규칙을 적용하는 (도 14의 회로(20) 내의) 논리부를 포함한다. 한편, 각 클러스터 내의 워드로부터 골든 코드로의 매핑 방법은, 상기 골든 코드를 포함하는 클러스터의 각 워드에 응답하여 골든 코드를 출력하는 룩-업 테이블을 이용하여 수행된다.The mapping of the words in each cluster to the golden code is in some sense, for example, using clocked logic to replace the golden code for each received word belonging to a given cluster containing the golden code. The furnace may be performed in an "on the fly" manner. For example, in some embodiments, the receiver determines which bits of a received code word are likely to cause an error, and flips each bit that determines that the received code word is likely to be an error. and logic (in circuit 20 of FIG. 14) to apply the rules of mapping to golden codes by flipping. Meanwhile, the mapping method from words in each cluster to a golden code is performed using a look-up table that outputs a golden code in response to each word of the cluster including the golden code.

일반적으로, 골든 워드 내의 어떤 비트("취약한" 비트로 불린다)가 가장 에러에 취약한지 판단하기 위해 알고리즘이 (예를 들어, 소프트웨어 또는 논리 회로에 의해) 구현될 수 있고, 그런 다음, "에러를 포함할 것 같은 코드 워드"를 판단하기 위해 골든 워드의 취약한 비트를 에러가 있는 버전으로 대체되는 프로세스가 구현되고, 그런 다음, "에러를 포함할 것 같은 코드 워드" 모두(또는 그 모두의 서브세트)를 실제 수신된 코드 워드와 비교하는 프로세스가 구현되어 "에러를 포함할 것 같은 코드 워드"인 수신된 코드 워드 각각을 대응하는 골든 워드로 매핑한다. 취약한 비트를 식별하기 위한 알고리즘은 바람직하게 심볼간 간섭에 가장 민감한 비트를 식별한다. '1' 비트들의 스트림 내의 단일 '0' 비트가 그 예가 된다.In general, an algorithm may be implemented (e.g., by software or logic circuitry) to determine which bits in the golden word (called "weak" bits) are most vulnerable to errors, and then include "errors." A process is implemented in which the vulnerable bits of the golden word are replaced with the erroneous version to determine a likely code word ", and then all (or a subset thereof) of" code words likely to contain an error ". A process is compared to the actual received code word is implemented to map each received code word that is a "code word likely to contain an error" to a corresponding golden word. The algorithm for identifying the vulnerable bits preferably identifies the bits most sensitive to intersymbol interference. An example is a single '0' bit in a stream of '1' bits.

취약한 비트들이 발견되면, 이들은 상기 골든 워드 내에서 플리핑되고, 따라서, "에러를 포함할 것 같은 코드 워드"를 생성한다. 단일 또는 하나 이상의 취약한 비트는 이들 각각이 에러에 얼마나 취약한 지에 따라, 플리핑 될 수 있다. 다른 방법으로는, 어느 비트 패턴이 취약한 비트들을 포함하는지 수동적으로 판단하고, 설계자가 골든 워드를 따라 어드레스하기를 원하는 각 비트 패턴으로 마스크 시리 즈를 저장한다. 그런 다음, 논리부는 "에러를 포함할 것 같은 코드 워드"를 생성하기 위해 골든 워드 내의 적절한 비트를 플리핑 하기만 하면 된다.If vulnerable bits are found, they are flipped within the golden word, thus generating a "code word likely to contain an error". One or more vulnerable bits may be flipped, depending on how vulnerable each of them is to an error. Alternatively, manually determine which bit pattern contains the vulnerable bits, and store the mask series in each bit pattern that the designer wants to address along the golden word. Then, the logic only needs to flip the appropriate bits in the golden word to generate a "code word likely to contain an error".

어떤 코드 워드가 각 클러스터 내에 포함되는 지를 선택하는 프로세스는 논리 회로(또는 소프트웨어)를 이용하여 자동화될 수 있다. 예를 들어, 이러한 프로세스는, 골든 워드 세트의 어떤 비트들이 전송 및/또는 복원 도중의 에러 결과 반전(또는 누락) 된 것 같은 지와 각 골든 워드의 가장 에러를 포함할 것 같고 골든 워드와 함께 클러스터 내에 포함된 버전을 판단하는 소프트웨어 (또는 논리 회로)를 이용하여 시스템적으로 판단할 수 있다. 다른 예로는, 이미 클러스터 내에 포함된 코드 워드 각각에 대해, 4 개의 부가적 코드 워드들이 상기 클러스터에 자동적으로 부가될 수 있다: 상기 코드 워드의 2 번 좌측-쉬프트된 버전(하나는 오픈 스팟에서 "0"으로, 다른 하나는 오픈 스팟에서 "1"로); 상기 코드 워드의 2번 우측-쉬프트된 버전(하나는 오픈 스팟에서 "0"으로, 다른 하나는 오픈 스팟에서 "1"), 이때, 동일한 코드 워드를 2 개의 다른 클러스터들에 할당하는 것을 피하기 위한 규칙이 적용되도록 한다.The process of selecting which code words are included in each cluster can be automated using logic circuitry (or software). For example, this process may include which bits in the golden word set are inverted (or missing) as a result of an error during transmission and / or restoration, and will contain the most error of each golden word and cluster with the golden word. The software (or logic circuit) for determining the version included therein may be systematically determined. As another example, for each code word already included in a cluster, four additional code words can be automatically added to the cluster: two left-shifted versions of the code word (one at open spot " 0 ", the other to" 1 "in the open spot); The second right-shifted version of the code word (one with "0" in open spot and one with "1" in open spot), to avoid assigning the same code word to two different clusters. Let the rule apply.

상기 클러스터들이 엄격하게 분리되어야 하지만, 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-밸런스 레벨이다. 한편, 이미-존재하는 정보는 에러 형태의 기록, 또는 픽셀 클록 주파수, 또는 지터 형태, 또는 다른 정보일 수 있다.Although the clusters must be strictly separated, two or more clusters can conditionally contain the same code word (conventionally referred to as a "multi-value" code war), where the multi-value code word is predetermined It is "conditionally included" in the cluster in that it is mapped to the golden word of the cluster provided only when the condition of. The conditions associated with multi-value code words in different clusters must be different and only one of the conditions is selected so that it can be met in any particular case, so that the receiver selects a multi-value code word for each one particular cluster in a particular case. You should be able to map it to a golden word. In this embodiment, the receiver applies certain rules to previously-existing information to determine which of the above conditions are met in each particular case. For example, assume that word A containing the received error seems to have been transmitted as the word B most under condition X, and seems to have been transmitted as the most word C under another condition Y. The first cluster contains word B and conditionally includes word A (belonging to condition X). The second cluster contains word C and conditionally includes word A (belonging to condition Y). In this example, the receiver applies an algorithm to the already-existing information to determine which of the conditions (X and Y) is met during the transmission of the code word. For example, the receiver may determine whether the bit pattern of the most recent stream of code "Z" according to the present invention is DC balanced, and if condition X (not condition Y) is a bit pattern, It can be determined whether it meets DC-unbalanced in the forward direction, or whether condition (Y) (not condition (X)) is met. In this example, the already-existing information is the DC-balance level of the particular bit pattern. On the other hand, the already-existing information may be a recording in error form, or a pixel clock frequency, or jitter form, or other information.

많은 수의 가능한 에러가 발생할 수 있기 때문에, (2개의 다른 골든 세트의) 2 개의 다른 골든 워드의 전송에 영향을 줄 것 같은 예상된 에러가 동일한 수신 코드를 생성할 수 있는 것이 가능하다. 이것은, 클러스터들 중 하나가 상기 수신된 코드를 제외하도록 예정되지 않으면(또는 이전 문단에서 설명한 바와 같이 상기 수신된 코드가 2 이상의 클러스터 내에서 조건적으로 포함되지 않으면), 2 개의 골든 세트를 포함하는 클러스터들 내에서 원하지 않는 오버랩을 유발할 수 있게 한다. 클러스터 사이의 이러한 오버랩을 피하기 위해, 바람직하게는, 덜 발생할 것 같은 수신 코드는 관련된 클러스터로부터 제외된다. 예를 들어, 제1 클러스터가 제1 골든 워드를 포함하고, 제2 클러스터가 제2 골든 워드를 포함하고, (골든 워드가 아닌) 수신된 코드 워드가 제1 골든 워드의 전송 결과 (가능성(P1)을 갖고) 예상되며, 동일한 수신 코드 워드가 제2 골든 워드의 전송 결과 (가능성(P2)을 갖고, 이때, P2는 P1보다 작다) 예상되면, 제1 클러스터는 수신된 코드 워드를 포함하지만, 상기 수신된 코드 워드는 제2 클러스터에 포함되지 않는다.Since a large number of possible errors can occur, it is possible that an expected error that would affect the transmission of two different golden words (of two different golden sets) can produce the same receive code. This includes two golden sets if one of the clusters is not intended to exclude the received code (or if the received code is not conditionally included within two or more clusters as described in the previous paragraph). It is possible to cause unwanted overlap in clusters. To avoid this overlap between clusters, preferably, less likely receive codes are excluded from the clusters involved. For example, the first cluster contains the first golden word, the second cluster contains the second golden word, and the received code word (not the golden word) is the result of the transmission of the first golden word. Is expected, and if the same received code word is expected to result in the transmission of the second golden word (possibility P2, where P2 is less than P1), then the first cluster contains the received code word, The received code word is not included in the second cluster.

예를 들어, 수신된 에러를 포함하는 워드(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)로 변환한다.For example, assume that word A containing the received error is most likely to be transmitted as the golden word B, and that the probability to be transmitted as word C is slightly smaller (word B and word C). ) Is only one bit different). In a preferred embodiment, two separate clusters comprising code words A, B and C are determined as follows: Golden word B and word A (which is generally another word similar to B) A first cluster comprising; A second cluster comprising a golden word (C) not included in the first cluster and one or more other words similar to C. With the clusters determined in this way, the transmission of word C, the result of an error during the transmission and / or restoration of the transmitted word C) the reception of word A, the received word A as a golden word B ), A bit error occurs. Preferably, the receiver comprises an error correction circuit (ECC), and the receiver is configured to apply to the ECC that the code word that is the result of the mapping of the received word (belonging to the cluster) is a golden word. Where appropriate, the ECC replaces word B in a block of code words with word C. For example, if the ECC determines that word B has one bad bit, the word B flips the bit into a word C, and then the bit is If there is only one bad bit for the entire ECC block, the ECC flips the bad bit to correct the error and converts word B to word C.

상술한 바와 같이, 본 발명에 따른 수신기의 몇 가지 구현에서는 상기 수신기는 골든 워드의 수신된 버전을 소스 데이터 값으로 매핑하는 두-단계를 수행하도록 구성된다: 클러스터 내의 수신된 코드 워드 각각을 상기 클러스터의 골든 세트의 골든 워드로 매핑하는 제1 단계; 상기 제1 단계에서 결정된 골든 워드를 상기 클러스터의 골든 세트에 의해 결정된 소스 워드로 매핑하는 제2 단계. 이러한 구현 예에서, 에러 정정 코드의 부가적 블록이 각 골든 워드 세트와 같이 전송되며, 상기 수신기는 (어떤 클러스터의 멤버도 아닌 에러를 포함하는 수신 코드 워드를 정정하고, 이들을 가능한 정도로 골든 워드로 정정하기 위해) 데러 정정 코드를 이용하여 에러 정정을 하기 전에 매핑하는 제1 단계를 수행하도록 구성된다. 후자의 구현에서, 본 발명에 따른 골든 워드 및 클러스터들은 바람직하게는 에러 정정을 수행함으로써 제공된 자유도를 이용하는 매핑을 구현하기 위해 선택된다. 예를 들어, 상기 골든 워드는 다른 클러스터들 내의 어떤 2 골든 워드들 사이의 해밍(Hamming) 거리가 실행할 수 있을 정도로 최소화(또는 최대화가 아닌)하고, 상기 클러스터들이 상호 분리되는 기준을 만족시키도록 선택될 수 있다. 이러한 골드 워드를 포함하는 클러스터와 함께, 수신기 내의 에러 정정 회로에 의해 검출된 에러 비트의 수는 최소화 될 수 있고, 에러 정정 코드의 오버헤드도 최소화 될 수 있다. As mentioned above, in some implementations of the receiver according to the present invention, the receiver is configured to perform a two-step mapping of a received version of a golden word to a source data value: each received code word in a cluster is assigned to the cluster. A first step of mapping to a golden word of a golden set of; And a second step of mapping the golden word determined in the first step to a source word determined by the golden set of the cluster. In this implementation, an additional block of error correction code is sent with each golden word set, and the receiver corrects received code words containing errors that are not members of any cluster, and corrects them to golden words to the extent possible. To perform the first step of mapping before the error correction using the error correction code. In the latter implementation, the golden words and clusters according to the invention are preferably selected to implement a mapping using the degrees of freedom provided by performing error correction. For example, the golden word is minimized (or not maximized) such that the Hamming distance between any two golden words in other clusters is feasible, and the clusters are selected to satisfy a criterion of mutual separation. Can be. With the cluster containing this gold word, the number of error bits detected by the error correction circuit in the receiver can be minimized, and the overhead of the error correction code can be minimized.                 

예를 들어, 도 14의 수신기(200)는 "매핑 및 디코딩" 회로(20)으로 부터의 8-비트 디코딩된 워드를 수신하고 복호화하는 복호화 회로(21) 및, 상기 회로(21)로부터 출력된 복호화되고, 디코딩된 워드를 수신하도록 연결된 에러 정정 회로(22)를 포함한다. 회로(20)는 본 발명에 따른 클러스터들 중 하나의 멤버인 수신된 코드 워드 각각에 응답하여 골든 워드를 생성(그리고 회로(21)에 인가)하기 위해 매핑의 제1 단계를 수행하도록 구성되었지만, 몇 개의 복원된 워드들 내에 있는 에러들은 회로(20)가 에러를 포함하는 복원 워드들을 골든 워드로 매핑하는 것을 방해할 수 잇다. 회로(20)에 의해 결정된 골든 워드의 복호화된 버전, 에러를 포함하는 복원된 워드, 및 코드 워드로 복원된 에러 정정 코드들은 에러 정정 회로(22)로 인가된다. 회로(22)는 수신한 복호화된 골든 워드 전체를 통과시켜, 본 발명에 따른 어떤 클러스터의 멤버도 아닌 에러를 포함하는 코드 워드를 정정하는 에러 정정 코드를 이용하여 에러를 정정하고, 상기 에러를 포함하는 코드 워드를 가능한 정도로 골든 워드로 대체할 수 있다. 설명된 수신기(200)의 구현의 변형으로, 에러 정정이 수행되지 않고 회로(22)가 빠질 수 있다.For example, the receiver 200 of FIG. 14 may include a decoding circuit 21 for receiving and decoding an 8-bit decoded word from the " mapping and decoding " circuit 20, and the output from the circuit 21. And error correction circuit 22 coupled to receive the decoded and decoded words. Circuit 20 is configured to perform a first step of mapping to generate (and apply to circuit 21) a golden word in response to each received code word that is a member of one of the clusters in accordance with the present invention. Errors in some of the recovered words may prevent circuit 20 from mapping the restored words containing the error to a golden word. The decoded version of the golden word determined by the circuit 20, the restored word containing the error, and the error correction codes restored to the code word are applied to the error correction circuit 22. Circuit 22 corrects the error using an error correction code that passes through the received decoded golden word and corrects a code word containing an error that is not a member of any cluster in accordance with the present invention, and includes the error. Can be replaced with a golden word to the extent possible. As a variation of the implementation of the receiver 200 described, the circuit 22 can be omitted without error correction being performed.

도 4를 참조하여, 본 발명의 바람직한 실시예에서 이용되는17 개의 골든 워드 세트 및 (각각 하나의 골든 워드를 포함하는) 코드 워드 클러스터 세트의 특정 예를 설명한다. 도 4에서, (좌측으로부터) 세 번째 칼럼(column)은 상술했던 17개의 골든 워드를 나타낸다. 상기 골든 워드 중 16 개는 16 개의 다른 8-비트 소스 데이터 워드(각각 4 비트의 원본 소스 데이터를 나타내는 8-비트 소스 데이터 워드)를 인코딩하는데 이용되고, 다른 골든 워드(제1 로우(raw)의 워드 "1100110010")는 가드 밴드 워드로만 이용된다. 골든 워드 각각은 10-비트 TMDS 인코딩된 워드이다. (좌측으로부터) 네 번째 칼럼은 10-비트 골든 워드 각각에 대한 몇 가지 가능한 에러의 경우를 나타내며, 다섯 번째 칼럼은 종래의 TMDS 디코딩 알고리즘에 따라 대응하는 네 번째 칼럼 내의 10-비트 워드를 디코딩한 결과인 8-비트 워드를 나타내고, 여섯 번째 칼럼은 대응하는 다섯 번째 칼럼 내의 요소를 단순히 16진수 표기로 나타낸 것이다. (좌측으로부터) 일곱 번째 칼럼은 대응하는 네 번째 칼럼 내의 워드 각각이 대응하는 세 번째 칼럼 내의 골든 워드를 포함하는 클러스터의 멤버인지의 여부의 표시를 포함한다. 특히, 상기 일곱 번째 칼럼 내의 "무시(IGNORE)"라는 용어는 대응하는 네 번째 칼럼 내의 워드가 대응하는 세 번째 칼럼 내의 골든 워드를 포함하는 클러스터의 멤버가 아님을 나타낸다.Referring to Fig. 4, specific examples of the 17 golden word sets and the code word cluster set (each including one golden word) used in the preferred embodiment of the present invention will be described. In FIG. 4, the third column (from the left) represents the 17 golden words described above. 16 of the golden words are used to encode 16 different 8-bit source data words (8-bit source data words each representing 4 bits of original source data), and the other golden words (the first raw) The word " 1100110010 " is used only as a guard band word. Each golden word is a 10-bit TMDS encoded word. The fourth column (from the left) shows some possible error cases for each of the 10-bit golden words, and the fifth column is the result of decoding the 10-bit words in the corresponding fourth column according to the conventional TMDS decoding algorithm. 8-bit word, where the sixth column is simply the hexadecimal representation of the elements in the corresponding fifth column. The seventh column (from the left) includes an indication of whether each word in the corresponding fourth column is a member of a cluster that includes a golden word in the corresponding third column. In particular, the term " IGNORE " in the seventh column indicates that the word in the corresponding fourth column is not a member of the cluster comprising the golden word in the corresponding third column.

(도 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개. There are 17 clusters (separated by horizontal lines in FIG. 4): including golden word “1100110010” and code words “1110110010”, “1100010010” (all mapped to “free data” auxiliary guard band word “01010101”) A first cluster; A first word (for encoding the source data AD0) including the golden word "0011100101" and the code words "1011100101", "0001100101", "0011110101", and "0011100001" (all mapped to the source word AD0). 2 clusters; A third cluster (for encoding source word AD1) comprising a golden word “0110001101” and code words “0111001101” and “0110000101” (mapped to mode source word AD1); Another 14 representing clusters (each containing a different one of 14 different golden words, including words mapped to another one of source words AD2-AD15).                 

상기 수신기가 표시된 클러스터들 중 하나 내의 (도 4내의 네 번째 칼럼에 있는) 코드 워드를 복원할 때(여기에는 상기 복원된 코드 워드에 대응되는 일곱 번째 칼럼에 어떠한 "IGNORE" 기호가 없다), 상기 수신기는 복원된 코드 워드를 클러스터의 골든 워드에 의해 결정된 (도 4의 첫 번째 칼럼에 있는) 소스 워드로 매핑할 것이다(이것은, 상기 복원된 코드 워드를 세 번째 칼럼에 있는 클러스터의 골든 워드로 매핑하는 것과 동일하다).When the receiver recovers a code word (in the fourth column in FIG. 4) within one of the indicated clusters (here there is no "IGNORE" symbol in the seventh column corresponding to the restored code word), The receiver will map the reconstructed code word to the source word determined in the cluster's golden word (in the first column of FIG. 4) (this maps the reconstructed code word to the golden word of the cluster in the third column). Same as).

일곱 번째 칼럼 내의 "IGNORE" 표현이 표기된 네 번째 칼럼 내의 이들 코드 워드들은 대응하는 골든 워드를 포함하는 클러스터의 멤버가 아니다. 예를 들어, 도 4의 세 번째 로우 내의 코드 워드 "1100111010"은, 상기 코드 워드가 골든 워드 "1000111010"를 포함하는 클러스터의 멤버이기 때문에 (골든 워드 "1100110010"를 포함하는) 제1 클러스터의 멤버가 아니며, 상기 클러스터들은 서로 분리되어야 한다. 상기 수신기가, (도 4의 첫 번째 로우 내의) 골든 워드 "1100110010" 의 전송 중 (상대적으로 높은 가능성을 갖는) 단일 비트 에러 결과, 그리고, (도 4의 45 번째 로우 내의) 골든 워드 "1000111010"의 전송 중 (또한 상대적으로 높은 가능성을 갖는) 단일 비트 에러의 결과로서 코드 워드 "1100111010"를 복원하더라도, 상기 수신기는 상기 수신된 워드를 골든 워드 "1100110010" 에 의해 결정된 소스 워드 ("01010101")로 매핑하는 것이 아니라, (수신된 워드를 골든 워드 "1000111010"으로 매핑하는 것과 동일한) 8-비트 소스 워드(AD10)으로 매핑할 것이다.These code words in the fourth column labeled "IGNORE" in the seventh column are not members of the cluster containing the corresponding golden word. For example, the code word "1100111010" in the third row of Figure 4 is a member of the first cluster (including the golden word "1100110010") because the code word is a member of the cluster that contains the golden word "1000111010". The clusters must be separated from each other. The receiver results in a single bit error (with a relatively high likelihood) during transmission of golden word “1100110010” (in the first row of FIG. 4), and golden word “1000111010” (in the 45th row of FIG. 4). Although the receiver recovers the code word "1100111010" as a result of a single bit error (also having a relatively high probability) during the transmission of the source word ("01010101") determined by the golden word "1100110010" Rather than mapping to, it will map to an 8-bit source word AD10 (equivalent to mapping the received word to the golden word “1000111010”).

다른 예를 들면, 송신기가 (도 4의 첫 번째 로우 내의) 골든 워드 "1100110010"를 전송 할 때, 수신기는 전송 중 (매우 높은 가능성을 갖는) 에러가 없다면 코드 워드 "1100110010"를 복원할 것이다. 상기 수신기는 이 복원된 워드를 종래의 TMDS 디코딩 알고리즘에 따라 디코딩하여 디코딩된 8-비트 워드 "01010101"를 결정하고, 상기 복원된 8-비트 워드를 (프리-데이터 보조 가드 밴드 워드인) 소스 워드 "01010101"로 매핑할 것이다. 상기 수신기는 골든 워드 "0011001101"의 전송 중 (상대적으로 낮은 가능성을 갖는) 단일 비트 에러 결과 (도 4의 52 번째 로우에 있는) 워드 "0011001111"를 복원하고, 또한 상기 수신기는 이 복원된 워드를 종래의 TMDS-디코딩 알고리즘으로 디코딩(이것이 DC 밸런싱 비트의 값의 결과 8 개의 가장 무의미한 비트들을 반전)하여 동일한 디코딩된 8-비트 워드("01010101")를 결정할 것이다. 상기 수신기는 (수신된 워드를 골든 워드 "1000111010"으로 매핑하는 것과 동일한) 이 수신된 워드를 소스 워드 "01010101"로 매핑할 것이다.For another example, when the transmitter transmits the golden word “1100110010” (in the first row of FIG. 4), the receiver will recover the code word “1100110010” if there is no error (with a very high likelihood) during transmission. The receiver decodes the recovered word according to a conventional TMDS decoding algorithm to determine a decoded 8-bit word "01010101", and converts the recovered 8-bit word into a source word (which is a pre-data secondary guard band word). Will map to "01010101". The receiver restores a single bit error result (with a relatively low likelihood) word "0011001111" (in the 52th row of FIG. 4) during transmission of the golden word "0011001101", and the receiver also recovers this restored word. Decoding with a conventional TMDS-decoding algorithm (which inverts the eight most insignificant bits as a result of the value of the DC balancing bits) will determine the same decoded 8-bit word ("01010101"). The receiver will map the received word (same as mapping the received word to the golden word “1000111010”) to the source word “01010101”.

때때로, "골든 워드"라는 용어는 10-비트 "골든" 코드 워드(예를 들어, 도 4에서 좌측에서 세 번째 칼럼 내의 워드)에 의해 결정된 8-비트 워드 소스 워드(예를 들어, 도 4의 좌측 칼럼내의 워드)를 지칭할 때 사용한다.Occasionally, the term "golden word" refers to an 8-bit word source word (e.g., in FIG. Word in the left column).

상술한 본 발명에 따른 가드 밴드 워드를 참조하면, 각 가드 밴드 워드는, 각 가드 밴드 워드에 대한 클러스터가 있을 수 있고, 이러한 클러스터 각각이 2 이상의 (가드 밴드 워드를 포함하는) 코드 워드를 포함하는 경우에는 (도 4의 예처럼) 골든 워드가 될 수 있다. 한편, 상기 가드 워드는 골든 워드가 아니고, 상기 골든 워드와 확실히 구별될 수 있다.Referring to the guard band words according to the present invention described above, each guard band word may have clusters for each guard band word, each of which includes two or more code words (including guard band words). In this case, it may be a golden word (as in the example of FIG. 4). On the other hand, the guard word is not a golden word, and can be surely distinguished from the golden word.

하나 이상의 가드 밴드 워드를 이용하난 본 발명의 각 실시예에서, 가드 밴드 워드 각각은, 수신기가 인코딩된 제어(또는 동기) 워드 전송 및 인코딩된 데이 터 전송 사이에 (가드 밴드 워드 또는 워드들에 의해 나타내는) 관련된 천이를 더욱 확실히 식별하도록 하게 하는 비트 패턴을 가져야 한다. 따라서, 본 발명에 따른 골든 세트의 선택에서의 부가적 요소는, 상기 골든 세트가 적절한 가드 밴드 워드를 포함해야 하고(즉, 상기 가드 밴드 워드가 골든 워드이다), 또는 상기 골든 세트의 골든 워드 각각이 이용된 각 가드 밴드 워드와 확실히 구별되어야 한다는 것이다. 예를 들어, 도 4에 나타낸 17 개 골든 워드 세트는 보조 데이터 버스트의 시작을 식별하는 데 이용되는 (도 4의 첫 번째 로우의 세 번째 칼럼에 나타낸 비트 패턴 "1100110010"를 갖는) 특정한 보조 가드 밴드 워드를 포함한다. 도 5에 도시된 바와 같이, 이 "프리-데이터" 보조 가드 밴드 워드는 바람직하게 2 번 반복적으로 채널(CH2 및 CH1)를 각각에서 인코딩된 보조 데이터 각각의 시작 부분(즉, 각 보조 프리앰블 바로 뒤)에서 전송된다. (보조 프리앰블 동안) 채널(CH2 및 CH1)로 전송된 특정 인코딩된 제어 워드 각각의 마지막 비트가 상술한 바와 같이 "0"이기 때문에, 프리-데이터 보조 가드 밴드 워드로서 선택된 코드 워드의 첫 번째 전송된 비트는 "1"이 되어 수신기가 전송된 보조 데이터 버스트의 시작을 식별하는 것에 대한 신뢰성을 증가시킨다.In each embodiment of the present invention, where one or more guard band words have been used, each guard band word is defined by a receiver between an encoded control (or synchronous) word transmission and an encoded data transmission (by a guard band word or words). Should have a bit pattern that makes it possible to more clearly identify the associated transition. Thus, an additional element in the selection of the golden set according to the invention is that the golden set must contain an appropriate guard band word (ie, the guard band word is a golden word), or each of the golden words of the golden set It must be clearly distinguished from each guard band word used. For example, the 17 golden word sets shown in FIG. 4 are used to identify the start of an auxiliary data burst (with the bit pattern “1100110010” shown in the third column of the first row of FIG. 4). Contains a word. As shown in Figure 5, this "pre-data" auxiliary guard band word is preferably repeated twice each channel (CH2 and CH1) at the beginning of each of the encoded auxiliary data (i.e. immediately after each auxiliary preamble). Is sent from). Since the last bit of each specific encoded control word transmitted to the channels CH2 and CH1 (during the auxiliary preamble) is "0" as described above, the first transmitted of the code word selected as the pre-data secondary guard band word is transmitted. The bit becomes " 1 ", increasing the reliability of the receiver identifying the beginning of the transmitted auxiliary data burst.

또한, 도 4에 도시된 17 개의 골든 워드 세트는 보조 데이터 버스트의 끝을 식별하는 데 이용되는 워드(입력 워드(AD11)에 대응되는 골든 워드 "0011001101")를 포함하고, 또한, 비디오 가드 밴드 워드로서 이용된다. 도 5에 도시된 바와 같이, 이 "포스트-데이터" 보조 가드 밴드 워드는 바람직하게는 채널(CH2 및 CH1) 각각에서 인코딩된 보조 데이터 버스트 각각의 끝 부분(즉, 각 비디오 프리앰블 바로 전)에서 2번 반복적으로 전송된다.In addition, the set of 17 golden words shown in FIG. 4 includes a word (golden word "0011001101" corresponding to input word AD11) used to identify the end of the auxiliary data burst, and also a video guard band word. It is used as. As shown in Figure 5, this "post-data" auxiliary guard band word is preferably 2 at the end of each of the encoded auxiliary data bursts (i.e., just before each video preamble) on each of the channels CH2 and CH1. Is sent repeatedly.

상기 프리-데이터 보조 가드 밴드 워드는 각 보조 데이터 버스트의 시작 부분에서 반복(2번 전송)될 필요가 없고, 상기 포스트-데이터 보조 가드 밴드 워드는 각 보조 데이터 버스트의 끝 부분에서 반복될 필요는 없다. (도 5에 의해 나타낸) 바람직한 실시예에서, 데이터의 전송 및 복원 도중 발생할 수 있는 채널 사이의 데이터 쉬프트 에러(예를 들어, 채널(CH1) 상에서 수신된 데이터의 트레이스(trace) 길이 및 채널(CH2) 상에서 수신된 데이터의 트레이스 길이의 에러)를 상기 수신기가 좀 더 쉽게 발견하고 정정하게 하기 위해 각각 반복되는 것이다. 본 발명의 다른 실시예에서, 보조 가드 밴드 워드는 각 보조 데이터 버스트의 시작 부분에서 2번 이상 반복적으로 전송되고(또는 단 한번 전송되고), 각 보조 데이터 버스트의 끝 부분에서 2번 이상 반복적으로 전송(또는 단 한번 전송)된다.The pre-data auxiliary guard band word need not be repeated (transmitted twice) at the beginning of each auxiliary data burst, and the post-data auxiliary guard band word need not be repeated at the end of each auxiliary data burst. . In a preferred embodiment (as shown by Figure 5), data shift errors between channels that may occur during the transmission and restoration of data (e.g., trace length of data received on channel CH1 and channel CH2 Each error is repeated to make it easier for the receiver to find and correct). In another embodiment of the present invention, the auxiliary guard band words are repeatedly transmitted (or transmitted only once) at the beginning of each auxiliary data burst, and repeatedly transmitted at least twice at the end of each auxiliary data burst. (Or just once).

도 4를 참조하면, (입력 워드(AD11)에 대응하는) 골든 워드 "0011001101"는, 입력 워드(AD11)를 나타내는 보조 데이터의 4-비트 분량을 인코딩하기 위한 코드워드로 이용되고, 포스트-데이터 보조 가드 밴드 워드로 이용되는 것 이외에, 비디오 데이터 버스트의 시작 부분을 식별하는 비디오 가드 밴드 워드로 이용된다. 도 6에 나타난 바와 같이, 상기 비디오 가드 밴드 워드는 바람직하게 인코딩된 비디오 데이터의 각 버스트의 시작 부분(즉, 각 비디오 프리앰블 바로 뒤)에서 2번 반복적으로 전송된다. 채널(CH1 및 CH2) 각각에서 (비디오 프리앰블 끝 부분에서) 전송된 인코딩된 제어 또는 동기 워드의 마지막 2 비트가 상술한 바와 같이 "11"일 가능성이 있기 때문에, 상기 비디오 가드 밴드 워드의 처음 2개 전송된 비트들은 수신기 가 전송된 비디오 데이터 버스트의 시작 부분을 식별할 수 있는 신뢰성을 증가시키기 위해 "00"으로 선택된다.4, the golden word " 0011001101 " (corresponding to the input word AD11) is used as a codeword for encoding a 4-bit amount of auxiliary data representing the input word AD11, and post-data. In addition to being used as an auxiliary guard band word, it is used as a video guard band word that identifies the beginning of a video data burst. As shown in Fig. 6, the video guard band word is preferably transmitted repeatedly two times at the beginning of each burst of encoded video data (i.e. immediately after each video preamble). The first two bits of the video guard band word, since the last two bits of the encoded control or sync word transmitted (at the end of the video preamble) in each of the channels CH1 and CH2 are likely to be "11" as described above. The transmitted bits are selected as "00" to increase the reliability with which the receiver can identify the beginning of the transmitted video data burst.

상기 비디오 가드 밴드 워드는 비디오 데이터 버스트 각각의 시작 부분에서 반복될(2번 전송될) 필요가 없다. 도 6의 실시예에서는, 버스트 동안 픽셀의 짝수(even number)를 나타내는 코드 워드의 (채널(CH0, CH1 및 CH2) 각각을 통한) 전송을 안전하게 하기 위해 반복 전송되었다. 다른 실시예에서, 비디오 가드 밴드 워드는 비디오 데이터 버스트 각각의 시작 부분에서 2 번 이상 반복 (또는 단 한번 전송)된다.The video guard band word need not be repeated (transmitted twice) at the beginning of each video data burst. In the embodiment of FIG. 6, it has been repeatedly transmitted to secure transmission (through each of channels CH0, CH1 and CH2) of code words representing even numbers of pixels during a burst. In another embodiment, the video guard band word is repeated (or transmitted only once) two or more times at the beginning of each video data burst.

본 발명의 몇 가지 실시예에서, 비디오 데이터의 2 (또는 2 이상의) 스트림이 (하나, 둘, 또는 2 이상의 채널을 통해) 전송된다. 예를 들어, 2 이상의 비디오 데이터 스트림이 도 2의 하나 이상의 채널(0, 1, 2) 각각을 통해 시-다중 방식(time-multiplexed fashion)으로 전송될 수 있다. 비디오 데이터의 다른 스트림의 버스트들이 한 채널을 통해 순차적으로 전송되면, 각각 다른 스트림들이 다른 비디오 가드 밴드 워드에 의해 식별되는, 다른 비디오 가드 밴드 워드들이 각 버스트의 시작 부분(및/또는 끝 부분)에서 전송될 수 있다. 이와 유사하게, 2 개(또는 2 이상의) 보조 데이터 스트림들이 1, 2 또는 2 이상의 채널을 통해 전송될 수 있다. 다른 보조 데이터 스트림의 버스트들이 하나의 채널을 통해 순차적으로 전송되면, 각각 다른 스트림들이 다른 가드 밴드 워드에 의해 식별되는, 다른 보조 가드 밴드 워드들이 각 버스트의 시작 부분(및/또는 끝 부분)에서 전송될 수 있다.In some embodiments of the invention, two (or more than two) streams of video data are transmitted (via one, two, or more than one channel). For example, two or more video data streams may be transmitted in a time-multiplexed fashion over each of one or more channels (0, 1, 2) of FIG. When bursts of different streams of video data are transmitted sequentially over one channel, different video guard band words are identified at the beginning (and / or end) of each burst, each of which is identified by a different video guard band word. Can be sent. Similarly, two (or more than two) auxiliary data streams may be transmitted over one, two or more than two channels. If bursts of different auxiliary data streams are sent sequentially over one channel, then different auxiliary guard band words are transmitted at the beginning (and / or end) of each burst, each of which is identified by a different guard band word. Can be.

인코딩된 데이터가 다중 독립 채널들을 통해 순차적으로 전송되는 곳에서는, 각 개별 채널에서의 DE 쉬프트는 각 채널의 가드 밴드 워드를 이용하여 (본 발명에 따라) 독립적으로 정정될 수 있다. (ISI 또는 링크의 다른 노이즈 소스에 의해) 어떤 방향에서의 한 픽셀 클록 사이클(또는 하나 이상의 픽셀 클록 사이클)에 의해 TMDS 링크(또는 TMDS-like 링크 또는 다른 직렬 링크)의 다중 채널을 통해 전송된 비트에 의해 나타나는 DE 천이 사이에 부정합이 있을 수 있기 때문에, 동일한 가드 밴드 워드 세트(각각 본 발명에 따른 코드 워드 세트의 멤버인)는 바람직하게, 각 채널을 통해 전송된 본 발명에 따른 코드 워드를 이용하여 인코딩된 데이터 버스트 각각의 시작 및/또는 끝 부분(예를 들어, 각 채널의 보조 프리앰블의 끝 부분, 밑/또는 각 채널의 비디오 프리앰블의 시작 부분, 및/또는 각 채널의 비디오 프리앰블의 끝 부분)에서 본 발명에 따른 방법으로 전송된다. 이것은 채널 대 채널 정합(alignment)과 데이터 완전성을 향상시킬 수 잇다. 이용 가능한 가드 밴드 워드의 적절한 수를 갖는 필요성은 본 발명에 다른 코드 워드 세트의 선택의 한 요소가 된다.Where encoded data is transmitted sequentially over multiple independent channels, the DE shift in each individual channel can be independently corrected (according to the invention) using the guard band words of each channel. Bits transmitted over multiple channels of a TMDS link (or TMDS-like link or other serial link) by one pixel clock cycle (or one or more pixel clock cycles) in any direction (by ISI or other noise source on the link) Since there may be a mismatch between the DE transitions represented by the same guard band word set (each of which is a member of the code word set according to the present invention), the code word according to the present invention transmitted over each channel is preferably used. The beginning and / or end of each encoded data burst (e.g., the end of each channel's auxiliary preamble, the bottom / or beginning of each channel's video preamble, and / or the end of each channel's video preamble). In the method according to the invention. This can improve channel to channel alignment and data integrity. The necessity of having an adequate number of guard band words available is one element of the choice of another set of code words in the present invention.

가드 밴드 워드를 (예상된 비트 패턴과 이러한 패턴 다음에 오는 본 발명에 따라 인코딩된 데이터 버스트 사이의 천이에서, 또는 본 발명에 따라 인코딩된 데이터 버스트와 이러한 데이터 다음에 오는 예상된 비트 패턴 사이의 천이 어느 한 쪽에서) 반복적으로 전송하는 목적은 두 가지 종류의 천이 부정합을 방지하기 위한 것이다: 너무 일찍 천이를 식별하는 것과 너무 늦게 천이를 식별하는 것. N 개의 가드 밴드 워드의 시퀀스를 반복적으로 전송함으로써, 본 발명은 이러한 픽셀 쉬프트 에러를 어느 방향에서도 N 픽셀 이상 되는 것을 방지한다. 예를 들어, N 개의 포스트-데이터 가드 밴드 워드의 시퀀스가 인코딩된 데이터 버스트에 부가되면, 본 발명은, 좌측으로의 N 픽셀 쉬프트가 발생했을 때 마지막 데이터 값이 손실되지 않았음을 보증한다(포스트-데이터 가드 밴드 워드만이 손실된다). 일반적으로, 단 N 개의 포스트-데이터 가드 밴드 워드의 시퀀스만이 N 프리-데이터 가드 밴드 워드와 함께 사용될 필요가 있다.The guard band word (transition between the expected bit pattern and the burst of data encoded according to the invention following this pattern, or the transition between the burst of data encoded according to the invention and the expected bit pattern following this data The purpose of repetitive transmission is to avoid two kinds of transition mismatches: identifying transitions too early and transitions too late. By repeatedly transmitting a sequence of N guard band words, the present invention prevents this pixel shift error from exceeding N pixels in either direction. For example, if a sequence of N post-data guard band words is added to an encoded data burst, the present invention ensures that the last data value was not lost when an N pixel shift to the left occurred (post -Only data guard band words are lost). In general, only a sequence of N post-data guard band words need to be used with the N pre-data guard band words.

(도 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"로 불린다.In the preferred embodiment (shown in FIG. 5), the auxiliary guard band words transmitted at the beginning and end of each auxiliary data burst on channels CH2 and CH1 are at the beginning and end of each auxiliary data burst on channel CH0. Not sent. Rather, a specific encoding method is used to determine the code word according to the invention of the first two and the last two 10-bits transmitted in each auxiliary data burst on channel CH0. In particular, the first of each auxiliary data burst Two bits of auxiliary data input during each of the two and last two pixel clock cycles are encoded and transmitted (in contrast, four of the auxiliary data input during every other pixel clock cycle of each respective burst of burst as described above). Bits are encoded and transmitted). Two bits of input auxiliary data to be transmitted during the first clock cycle are encoded into one of words AD0, AD1, AD2 and AD3 of FIG. 4, and two bits of input auxiliary data to be transmitted during the second clock cycle are represented by the word AD0, Encoded to the other one of AD1, AD2 and AD3). Thus, the first two 10-bit words transmitted in the burst are variations of the code words according to the invention representing these two words (AD0, AD1, AD2 and AD3) (thus the first four bits of the input assistance data). ). Similarly, two bits of input auxiliary data to be transmitted during a cycle before the last clock cycle are encoded into one of the words AD0, AD1, AD2 and AD3 in FIG. 4, and two bits of input auxiliary data to be transmitted during the last clock cycle. The bits are encoded into one of the words AD0, AD1, AD2 and AD3. The last two 10-bit words transmitted in bursts are variations of the code words according to the invention representing these two words (AD0, AD1, AD2 and AD) (thus representing the last four bits of the input assistance data). . This method of encoding a two-bit auxiliary data word using four 10-bit golden words encodes a four-bit auxiliary data word using sixteen 10-bit golden words, sometimes referred to herein as "TERC4" encoding. In contrast to this, sometimes referred to as "TERC2".

더욱 일반적으로, ISI 가 시리얼 데이터 전송 채널 상에 존재하는 경우, 다른 제어 또는 동기 비트(예를 들어, DVI 설명에서의 비트(CTL0;CTL1 또는 CTL2:CTL3를 나타내는 10-비트 제어 문자)는 상기 제어 문자 바로 뒤에 전송될 비디오(또는 보조) 데이터 비트 상에 다른 에러를 유발할 수 있다. 바람직하게, 이것은 비디오(또는 보조) 데이터를 전송하는데 사용되는 본 발명에 따른 코드 워드를 선택하는 요소로 인식되고 사용된다. 한편, (본 발명에 따라 인코딩된) 데이터 바로 전에 전송된 제어 코드는 ISI 영향을 감소시키도록 제어된다.More generally, when ISI is present on a serial data transmission channel, other control or sync bits (e.g., a 10-bit control character representing bits CTL0; CTL1 or CTL2: CTL3 in the DVI description) may be controlled. It may cause other errors on the video (or auxiliary) data bits to be transmitted immediately after the character Preferably, this is recognized and used as an element for selecting a code word according to the invention used for transmitting video (or auxiliary) data. On the other hand, the control code transmitted immediately before the data (encoded according to the invention) is controlled to reduce the ISI impact.

본 발명의 다른 실시예에서, 인보딩된 보조 데이터 버스트 및 인코딩된 비디오 데이터 버스트가 시리얼 링크(반드시 TMDS 링크일 필요는 없다)를 통해 전송되고, 상기 보조 데이터는 본 발명에 따른 코드 워드 세트를 이용하여 본 발명의 방법에 따라 인코딩된다. 본 발명에 따른 코드 워드 세트는 인코딩된 비디오 데이터 버스트 각각의 시작 부분에서 전송된 "비디오" 가드 밴드 워드, 및 인코딩된 보조 데이터 버스트 각각의 시작 부분에서 전송된 "보조" 가드 밴드 워드를 포함한다. 일 실시예에서, 비디오 가드 밴드 워드는 또한, 제2 목적: 보조 데이터를 인코딩하기 위해 사용된다. 이러한 실시예의 바람직한 구현에서, 상기 인코딩된 비디오 데이터는 비디오 데이터 인에이블 신호가 하이인(즉, 제어 신호 "DE"가 DE=1를 만족할 때) 액티브 비디오 주기 동안 전송되고, 인코딩된 제어(또는 동기) 신호 및 인코딩된 보조 데이터가 액티브 비디오 주가 사이의 (상기 비디오 데이터 인에이블 신호가 로우인) 블랭크 구간 동안 전송된다. 비디오 가드 밴드 워드는 액티브 비디오 주기 각각의 시작 부분에서 전송된다. 각각의 블랭크 구간은, 특정 형태의 제어(또는 동기) 신호가 전송되는 (비디오 데이터 인에이블 신호의 폴링 에지와 보조 데이터 버스트의 시작 부분 사이의) "보조" 프리앰블 구간, 상기 보조 프리앰블 구간 뒤의 하나 이상의 보조 데이터 주기(각 보조 데이터 주기는 인코딩된 보조 데이터 버스트가 뒤따라오는 보조 가드 밴드 워드를 포함한다), 및 마지막 보조 데이터 주기 및 다음에 오는 액티브 비디오 주기 사이의 "비디오" 프리앰블 주기를 포함한다. 일반적으로, 본 발명에 따라 가드 밴드 워드를 사용하는 목적은, 수신기가, 인코딩된 데이터 버스트의 시작 부분에서 전송된 제1 가드 밴드 워드와 이러한 가드 밴드 워드 이전에 전송된 마지막 비트 사이의 천이와, 인코딩된 데이터 버스트의 끝 부분에서 전송된 마지막 가드 밴드 워드와 이러한 가드 밴드 워드 뒤에 전송된 최초 비트 사이의 천이를 인식할 수 있도록 하는 데 있다.In another embodiment of the invention, the encoded auxiliary data burst and the encoded video data burst are transmitted over a serial link (not necessarily a TMDS link), the auxiliary data using a code word set according to the invention. Encoded according to the method of the present invention. The code word set according to the invention comprises a "video" guard band word transmitted at the beginning of each encoded video data burst, and a "secondary" guard band word transmitted at the beginning of each encoded auxiliary data burst. In one embodiment, the video guard band word is also used for the second purpose: encoding auxiliary data. In a preferred implementation of this embodiment, the encoded video data is transmitted during an active video period when the video data enable signal is high (ie, when the control signal "DE" satisfies DE = 1), and encoded control (or synchronization). Signal and encoded auxiliary data are transmitted during a blank period between the active video stock price (the video data enable signal is low). The video guard band word is transmitted at the beginning of each active video period. Each blank interval is a "secondary" preamble interval (between the falling edge of the video data enable signal and the beginning of the secondary data burst), in which a particular type of control (or sync) signal is transmitted, one after the secondary preamble interval. The above auxiliary data periods (each auxiliary data period includes an auxiliary guard band word followed by an encoded auxiliary data burst), and a "video" preamble period between the last auxiliary data period and the next active video period. In general, the purpose of using a guard band word in accordance with the present invention is to provide a receiver with a transition between a first guard band word transmitted at the beginning of an encoded data burst and the last bit transmitted before this guard band word, It is to be able to recognize the transition between the last guard band word transmitted at the end of the encoded data burst and the first bit transmitted after this guard band word.

본 발명의 이러한 실시예에서, 시리얼 링크를 통해 버스트로 전송하기 위해 (비디오 데이터 일 수 있지만 반드시 그럴 필요는 없는) 주 데이터를 인코딩하기 위해 종래의 인코딩 알고리즘이 사용되며, 보조 데이터(예를 들어, 오디오 데이터 또는 상기 주 데이터보다 낮은 데이터 레이트로 전송될 수 있는 다른 형태의 데이터)는 시리얼 링크를 통해 (인코딩된 주 데이터 버스트들 사이에서) 버스트로 전송하기 위해 본 발명에 따라 인코딩된다. 주 데이터를 인코딩하는 데 사용되는 코드 워드 풀 세트는 주 데이터(때때로 소스 데이터 워드로 불리는)의 2N 개의 다른 워드들 각각에 대해 하나 이상의 코드 워드를 갖는다. 이러한 풀 세트의 본 발명에 따른 서브세트는 보조 데이터(이것 또한 때때로 소스 데이터 워드로 불린다)의 2M 개(여기서 M<N)보다 작은 다른 워드를 각각에 대해 하나 이상의 코드 워드를 갖는다.상기 보조 데이터는 버퍼링되고 M-비트 포맷(즉, M 비트로 각각 구성된 워드로)으로 포장된다. M-비트 소스 데이터의 각 가능한 값들은 본 발명에 따른 코드 워드에 의해 제공된 2M 개의 워드 공간 내의 미리 선택된 코드를 갖는다. 보조 데이터의 M-비트 워드는 2M 워드 공간 내의 볼 발명에 따른 코드 워드로 매핑되고, 이것은 링크를 통해 전송된다.In this embodiment of the invention, conventional encoding algorithms are used to encode the main data (which may be video data but need not be) for burst transmission over a serial link, and auxiliary data (e.g., Audio data or other forms of data that may be transmitted at a lower data rate than the main data) are encoded in accordance with the invention for transmission in bursts (between encoded main data bursts) over a serial link. The full set of code words used to encode the main data has one or more code words for each of the 2 N different words of main data (sometimes called the source data word). A subset according to the present invention of this full set has one or more code words for each other word less than 2 M (where M <N) of auxiliary data (also sometimes referred to as source data words). The data is buffered and packed in M-bit format (ie, in words each composed of M bits). Each possible value of the M-bit source data has a preselected code in the 2 M word spaces provided by the code word according to the invention. The M-bit words of the supplementary data are mapped to code words according to the invention in the 2 M word space, which are transmitted over the link.

본 발명에 따라 인코딩된 데이터(예를 들어, 비디오 데이터와 별개인 보조 데이터)를 전송하기 위해 이용되는 본 발명에 따른 골든 워드를 선택할 때, (멀티-비트로 인코딩된 워드 중에서) 어떤 비트가 다른 비트들보다 에러가 발생할 수 있는 더 큰 위험이 존재하는 지를 관찰하는 것이 중요하다. 예를 들어, 보조 데이터 를 전송하기 위해 TMDS-인코딩된 골든 워드를 이용할 때, DC 밸런싱 비트와 천이 제어 비트(예를 들어, 비트 Q[9], 및 Q[8])은 다른 비트들보다 더 큰 에러 리스크를 갖는다. DC 밸런싱 및 천이 제어 비트의 처리 도중 일어나는 모든 비트는 멀티-비트 인코딩된 워드들의 다른 비트들에게 영향을 줄 수 있다. 따라서, 결정적인 비트들 중 하나에서의 1-비트 에러는 버스트 에러로 변화될 수 있다. 바람직하게는, 이러한 영향은 TMDS-인코딩된 워드들의 풀 세트로부터 본 발명에 따른 코드 워드의 선택에 고려된다.When selecting a golden word according to the invention which is used to transmit data encoded according to the invention (e.g. auxiliary data separate from video data), which bits are different bits (among multi-bit encoded words). It is important to observe whether there is a greater risk that an error may occur than the For example, when using TMDS-encoded golden words to transmit auxiliary data, the DC balancing bits and the transition control bits (eg, bits Q [9], and Q [8]) are more than other bits. Has a large risk of error. Every bit that occurs during the processing of the DC balancing and transition control bits can affect other bits of the multi-bit encoded words. Thus, the 1-bit error in one of the critical bits can be changed to a burst error. Preferably this influence is taken into account in the selection of the code word according to the invention from a full set of TMDS-encoded words.

도 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 이 상기 액티브 비디오 주기가 시작될 때 그들이 갖는 값들을 유지하고 있는 것으로 가정한다.2 and 8, a format and timing of data to be transmitted through a TMDS link in a system according to a preferred embodiment of the present invention will be described. In these embodiments, the transmitter (i.e., the transmitter 1 'of FIG. 2) performs the TMDS encoding algorithm (respectively through the TMDS encoding algorithms) on the video channels CH0, CH1 and CH2 of the TMDS link during the active video period when the control signal DE is high. Transmit an 8-bit video data word (encoded into a 10-bit transition-minimization code word) during the data island between active video periods (also DE is high). An algorithm is used to transmit packets containing a 4-bit word (generally a 4-bit audio data word) encoded with a 10-bit transition-minimizing code word, preferably a 10-bit golden word. And during the " control data " period (DE is low) between the data islands, the transmitter indicates a control word (2 control bits: CTL0 and CTL1 or CTL2 and CTL3, respectively) via channels CH1 and CH2. I transmit a control word encoded in a 10-bit, transition-maximized code word, and a 10-bit, transition-maximization code representing two sync bits: HSYNC and VSYNC, respectively, through channel CH0. Transmits a synchronous word, encoded during the active video period, during each active video period (e.g., receiver 2 'of FIG. 2), HSYNC, VSSYNC, CTL0, CTL1, CTL2 and CTL3 are the active video periods. Assume that they maintain their values when is started.

각 데이터 아일랜드는 하나 이상의 패킷을 포함하고, 각 패킷은 32 개의 픽셀 클록 사이클의 주기를 통해 전송된다. 도 8에 도시된 바와 같이, 각 패킷의 일부가 상기 32-픽셀 클록 주기 동안 채널(CH0, CH1 및 CH2) 각각을 통해 전송된다. 각 픽셀 클록 사이클 동안, 상기 송신기는 채널(CH0, CH1 및 CH2) 각각을 통해 하나의 직렬 변환된 10-비트 TMDS 코드 워드를 송신한다는 것을 알 수 있다. 따라서, 각 패킷은 96(=3*32) 개의 TMDS 코드 워드를 포함하고, 각 코드 워드는 4-비트 소스 워드를 나타낸다.Each data island contains one or more packets, each packet being transmitted over a period of 32 pixel clock cycles. As shown in FIG. 8, a portion of each packet is transmitted on each of the channels CH0, CH1 and CH2 during the 32-pixel clock period. It can be seen that during each pixel clock cycle, the transmitter transmits one serialized 10-bit TMDS code word on each of the channels CH0, CH1 and CH2. Thus, each packet contains 96 (= 3 * 32) TMDS code words, each code word representing a 4-bit source word.

각 데이터 아일랜드 동안, HSYNC 및 VSYNC 비트를 나타내는 천이-최소화 코드 워드는 채널(CH0)을 통해 전송된다(예를 들어, HSYNC 비트, VSYNC 비트, 및 2 개의 다른 비트를 나타내는 하나의 코드 워드가 픽셀 클록 사이클 단위로 전송된다). 바람직하게는, 데이터 아일랜드 동안 전송된 각 패킷은 32-비트 패킷 헤더를 포함하고, 데이터 아일랜드 동안 전송된 HSYNC 및 VSYNC를 나타내는 각 코드 워드는 또한 상기 패킷 헤더의 하나의 비트를 나타낸다.During each data island, a transition-minimization code word representing HSYNC and VSYNC bits is transmitted over channel CH0 (e.g., one code word representing HSYNC bits, VSYNC bits, and two other bits is the pixel clock). Transmitted in cycles). Preferably, each packet transmitted during the data island includes a 32-bit packet header, and each code word representing HSYNC and VSYNC transmitted during the data island also represents one bit of the packet header.

어떤 데이터 아일랜드도 전송되지 않는 모드에서는, 각 제어 데이터 주기는 2개의 연속된 액티브 비디오 주기 사이의 수평(또는 수직) 블랭크 구간 전체가 된다. 다른 모드에서는, 상기 송신기는 수평 블랭크 구간 및 수직 블랭크 구간 각각 안에 (또는 상기 블랭크 구간들의 서브세트 각각 안에) 하나 이상의 데이터 아일랜드를 삽입한다.In the mode in which no data islands are transmitted, each control data period is the entire horizontal (or vertical) blank period between two consecutive active video periods. In another mode, the transmitter inserts one or more data islands into each of the horizontal blank period and the vertical blank period (or within each of the subset of the blank periods).

채널(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 코드 워드이다.In each of the channels CH1 and CH2, a "data island" preamble word is repeatedly transmitted (in the control data period) immediately before each data island, and the video preamble word is in the control data period just before each active video period. Transmitted repeatedly. In each of these channels, a burst of eight identical data island preamble words is preferably transmitted immediately before each data island, and preferably a burst of eight identical video preamble words is transmitted immediately before each active video period. Each data island preamble word transmitted on channel CH1 is a 10-bit TMDS code word representing CTL0 = 1 and CTL1 = 0, and each data island preamble word transmitted on channel CH2 is CTL2 = 1. And a 10-bit TMDS code word representing CTL3 = 0. Each video preamble word transmitted on channel CH1 is a 10-bit TMDS code word representing CTL0 = 1 and CTL1 = 0, and each video preamble word transmitted on channel CH2 is CTL2 = 0 and CTL3 = 0. Is a 10-bit TMDS code word.

도 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-비트 코드 워드)의 버스트로 시작하고 끝난다.In the preferred embodiment described with reference to FIGS. 2 and 8, each data island in each of the channels CH1 and CH2 has two identical guard band words (the above described data island guard band words “DATA Island GB” = 0b1100110010). Each active video period starts and ends with a burst of two identical guard band words (the above mentioned words " Video GB (CH0, CH2) " = 0b0011001101 in channel 2 (CH0 and CH2), and the details in channel CH1). Start with a burst of one word "Video GB (CH1) = 0b1100110010). These guard band words and preamble words described in the previous paragraph are selected to have a pattern that allows the receiver to reliably identify each leading and trailing edge of each data island and each leading edge of an active video period. . Each data island of channel CH0 has two identical guard band words (0xC, 0xD, 0xE, and 0xF values, depending on the HSYNC and VSYNC values so that the receiver can reliably identify each leading and trailing edge of the data island). The transitions begin and end with a burst of a minimized TMDS 10-bit code word).

바람직한 실시예에서, 도 4를 참조하여 설명된 버전이 아닌, 아래에 있는 예시적인 (때때로 "TERC4 코딩"으로 불리는) 인코딩 방법이, 각 데이터 아일랜드 동안 직렬 변환되고 전송된 10-비트 천이-최소화 TMDS 코드 워드를 나타내는 4 비트의 오디오 데이터(또는 다른 보조 데이터)를 인코딩하는 데 이용된다(나열된 TMDS 코드 워드는 "골든 워드"들이다):In a preferred embodiment, the example (sometimes referred to as "TERC4 coding") encoding method below, rather than the version described with reference to Figure 4, is a 10-bit transition-minimized TMDS serialized and transmitted during each data island. Used to encode four bits of audio data (or other auxiliary data) representing a code word (the TMDS code words listed are "golden words"):

소스 워드TMDS 코드 워드Source WordTMDS Code Word

(bit3, bit2, bit2, bit0)(bit3, bit2, bit2, bit0)

0000:q_out[0:9]=0b0011100101;0000: q_out [0: 9] = 0b0011100101;

0001:q_out[0:9]=0b1100011001;0001: q_out [0: 9] = 0b1100011001;

0010:q_out[0:9]=0b0010011101;0010: q_out [0: 9] = 0b0010011101;

0011:q_out[0:9]=0b0100011101;0011: q_out [0: 9] = 0b0100011101;

0100:q_out[0:9]=0b1000111010;0100: q_out [0: 9] = 0b1000111010;

0101:q_out[0:9]=0b0111100010; 0101: q_out [0: 9] = 0b0111100010;                 

0110:q_out[0:9]=0b0111000110;0110: q_out [0: 9] = 0b0111000110;

0111:q_out[0:9]=0b0011110010;0111: q_out [0: 9] = 0b0011110010;

1000:q_out[0:9]=0b0011001101;1000: q_out [0: 9] = 0b0011001101;

1001:q_out[0:9]=0b1001110010;1001: q_out [0: 9] = 0b1001110010;

1010:q_out[0:9]=0b0011100110;1010: q_out [0: 9] = 0b0011100110;

1011:q_out[0:9]=0b0110001101;1011: q_out [0: 9] = 0b0110001101;

1100:q_out[0:9]=0b0111000101;1100: q_out [0: 9] = 0b0111000101;

1101:q_out[0:9]=0b1000111001;1101: q_out [0: 9] = 0b1000111001;

1110:q_out[0:9]=0b1100011010;1110: q_out [0: 9] = 0b1100011010;

1111:q_out[0:9]=0b1100001101;1111: q_out [0: 9] = 0b1100001101;

Video GB:q_out[0:9]=0b1100110010;Video GB: q_out [0: 9] = 0b1100110010;

(CH1)(CH1)

Video GB:q_out[0:9]=0b0011001101;Video GB: q_out [0: 9] = 0b0011001101;

(CH0,CH2)
(CH0, CH2)

Data Island GB:q_out[0:9]=0b1100110010;Data Island GB: q_out [0: 9] = 0b1100110010;

(CH1,CH2)(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 코드 워드의 풀 세트를 이용하여 인코딩될 수 있다.In the TMDS code words listed above, the most insignificant bit (q_out [0]) of each code word is the first transmitted bit, the most significant bit (q_out [9]) is the last transmitted bit, and the word Video GB (CH1). )) Is the video guard band word transmitted on channel CH1, and the word Video GB (CH0, CH2) is the video guard band word transmitted on channels CH0 and HC2, and the word Data Island GB (CH1). , CH2)) is the data island guard band word transmitted on channels CH1 and HC2. In an embodiment in which the golden words listed above are transmitted during a data island on the channels CH0, CH1 and CH2 of the TMDS link, the video words transmitted on the channels CH0, CH1 and CH2 during the active video period are transition-minimized. It can be encoded using a full set of TMDS code words.

위에 나열된 코드 워드가 사용되는 경우, 비디오 프리앰블은, 제어 비트 값 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번 반복)을 통해 결정된다. 이러한 가드 밴드 워드 및 프리앰블의 결합은 수신기로 하여금 각 액티브 비디오 주기의 시작과 각 데이터 아일랜드의 시작 및 끝을 확실하게 식별할 수 있게 한다.When the code words listed above are used, the video preamble is a 10-bit transition-maximized TMDS code word (transmitted in CH1) indicating control bit values CTL0, CTL1 = 1, 0, and control bit values CTL2, CTL3 = The repetition (preferably 8 repetitions) of a 10-bit transition-maximized TMDS code word (sent at CH2) representing 0,0 is determined, and the data island preamble is the control bit values CTL0, CTL1 = 1,0 Repetition of the 10-bit transition-maximized TMDS code word (transmitted in CH1), and the 10-bit transition-maximized TMDS code word (transmitted in CH2), indicating the control bit values CTL2, CTL3 = 1,0. (Preferably 8 iterations). This combination of guard band words and preambles allows the receiver to reliably identify the beginning of each active video period and the beginning and end of each data island.

이전의 2개의 문단에서 설명된 코드 워드 및 프리앰블 워드의 리스트를 이용하면, 특정한 인코딩 방법이 바람직하게 채널(CH0) 상에서 각 데이터 아일랜드에서 전송된 최초 2개 및 마지막 2 개의 10-비트의 본 발명에 따른 코드 워드를 결정하는 데 이용된다. 특히, 입력된 보조 데이터의 2 비트가 바람직하게 각 데이터 아일 랜드의 최초 2개 및 마지막 2개의 픽셀 클록 사이클 각각 동안 채널(CH0) 상에서 인코딩되고 전송된다(여기서, 입력된 보조 데이터의 4개 비트는 상술한 바와 같이 가가 데이터 아일랜드의 다른 모든 픽셀 클록 사이클 동안 채널(CH0) 상에서 인코딩되고 전송된다). 각 데이터 아일랜드의 첫 번째, 두 번째, 마지막 이전 및 마지막 픽셀 클록 사이클 각각 동안 CH0 상에서 전송될 입력 보조 데이터의 2개 비트는 바람직하게, 상기-나열된 코드 워드 0b0111000101, 0b1000111001, 0b1100011010, 및 0b1100001101 중의 하나로 인코딩된다.Using the list of codewords and preamble words described in the previous two paragraphs, a particular encoding method is preferably used in the invention of the first two and the last two 10-bits transmitted on each data island on channel CH0. Used to determine the code word accordingly. In particular, two bits of input auxiliary data are preferably encoded and transmitted on channel CH0 for each of the first two and last two pixel clock cycles of each data island (where the four bits of the input auxiliary data are As described above, Giga is encoded and transmitted on channel CH0 for all other pixel clock cycles of the data island). The two bits of input auxiliary data to be transmitted on CH0 during each of the first, second, last previous and last pixel clock cycles of each data island are preferably encoded with one of the above-listed code words 0b0111000101, 0b1000111001, 0b1100011010, and 0b1100001101. do.

도 2 및 도 8을 참조하여 설명된 본 발명의 바람직한 실시예에 따른 시스템에서, 각 데이터 아일랜드는 하나 이상의 패킷(이것의 최소 존속시간을 리딩 가드 밴드에 대한 2개의 픽셀 클록 사이클과, 트레일링 가드 밴드에 대한 2개의 픽셀 클록 사이클을 포함하는 36 픽셀 클록 사이클로 한정시키는)을 포함한다. 각 데이터 아일랜드는 정수의 패킷 수를 포함해야하고, 바람직하게는 (데이터 아일랜드 내의 데이터의 신뢰성을 보증하기 위해) 각 데이터 아일랜드 내의 최대 패킷 수는 14이다. 에러 검출 및 정정 (바람직하게는 개발자들인 Bose, Chauduri, 및 Hocquenghem 의 이름을 딴 잘 알려진 에러 검출 및 정정 기술인, BCH 에러 검출 및 정정 기술)이 각 데이터 아일랜드 동안 각 패킷에 적용된다.In the system according to the preferred embodiment of the invention described with reference to Figs. 2 and 8, each data island has one or more packets (the minimum duration of which is two pixel clock cycles for the leading guard band and the trailing guard). Limited to 36 pixel clock cycles, including two pixel clock cycles for the band). Each data island must contain an integer number of packets, and preferably the maximum number of packets in each data island is 14 (to ensure the reliability of the data in the data islands). Error detection and correction (preferably BCH error detection and correction technique, a well-known error detection and correction technique named after developers Bose, Chauduri, and Hocquenghem) is applied to each packet during each data island.

각 패킷에 대한 바람직한 포맷 방법이 도 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 이상의 비트의 데이터를 복원한다.A preferred format method for each packet is described with reference to FIG. Each packet has a 32-bit (4-byte) packet header and four sub-packets (each consisting of 64 bits = 8 bytes), as in packet P of FIG. In FIG. 9, the subpackets are represented by subpacket 0 (or SP0), subpacket 1, subpacket 2 and subpacket 3. Each subpacket contains 56 data bits followed by eight BCH parity bits (ie, seven bytes, each byte corresponding to one 10-bit TMDS code word). Nine data bit packets are sent in pixel clock cycles. Of these, one bit data (header bit) is transmitted in the unit of pixel clock cycles (in the form of one 10-bit TMDS code word encoding HSYNC and VSYNC bits) on the channel CH0, and four bit data are transmitted. Each of the channels CH1 and CH2 is transmitted in pixel clock cycle units (in the form of one TMDS code word). During each pixel clock cycle, the TMDS decoding circuit in the receiver recovers 4 bits of data from channel CH0 (ie, from one TMDS code word), recovers 4 or more bits of data from channel CH1, 4 or more bits of data are recovered from the channel CH2.

도 9에서, 서브패킷0의 데이터 및 패리티 비트는 "BCH block0"로 식별되고, 서브패킷1의 데이터 및 패리티 비트는 "BCH block1"로 식별되고, 서브패킷2의 데이터 및 패리티 비트는 "BCH block2"로 식별되고, 서브패킷3의 데이터 및 패리티 비트는 "BCH block3"로 식별된다. 패킷 헤더는 8 개의 BCH 패리티 비트들이 뒤따라오는 24 개의 데이터 비트(3 바이트의 데이터)를 포함한다(이들 데이터 및 패리티 비트는 도 9에서 "BCH block4"로 식별된다).In FIG. 9, data and parity bits of subpacket 0 are identified as "BCH block0", data and parity bits of subpacket 1 are identified as "BCH block1", and data and parity bits of subpacket 2 are referred to as "BCH block2". ", And the data and parity bits of subpacket 3 are identified by" BCH block3 ". The packet header includes 24 data bits (3 bytes of data) followed by 8 BCH parity bits (these data and parity bits are identified as "BCH block4" in FIG. 9).

바람직하게는, 각 패킷 헤더에 대한 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 회로를 포함한다.Preferably, the BCH parity bit for each packet header is a BCH generated using the polynomial G (x) = 1 + x 6 + x 7 + x 8 (with 127 iteration cycles) by the generator of FIG. 9A. (32, 24). Preferably, the BCH parity bits for the sub-packets are generated by the generator of FIG. 9B using the polynomial G (x) = 1 + x 6 + x 7 + x 8 (with 127 iteration cycles). 64, 56). Preferably, the transmitter according to the embodiment of the present invention comprises the circuit of FIG. 9B for generating BCH parity bits for 56 data bits of each subpacket, and BCH parity bits for 24 data bits of each packet header. Circuit for FIG. 9A.

BCH 패리티 비트가 도 9a 및 도 9b를 이용하여 생성되는 수신된 패킷을 수신하는 본 발명의 바람직한 실시예에 따른 수신기는, (각 서브패킷의 64 비트로부터 BCH 신드롬을 생성하기 위한) 도 9d 회로와, (각 패킷 헤더의 32 비트로부터 BCH 신드롬을 생성하기 위한) 도 9c 회로도 포함한다.A receiver in accordance with a preferred embodiment of the present invention, in which a BCH parity bit is received using FIG. 9A and FIG. 9B, receives a received packet from the circuit of FIG. 9D (for generating a BCH syndrome from 64 bits of each subpacket). And the circuit of FIG. 9C (for generating a BCH syndrome from the 32 bits of each packet header).

더욱 일반적으로는, 도 9b 및 도 9d 회로는, 입력 데이터의 병렬 스트림으로부터 에러 정정 코드 비트(예를 들어, 패리티 비트 또는 신드롬 비트)를 생성하고, BCH 다항식과 같은 사이클릭 다항식으로부터 에러 정정 비트를 생성하기 위해 필요한 사이클의 수를 줄이고, 사이클릭 다항식에 의해 생성된 신드롬 코드를 계산하기 위해 필요한 사이클의 수를 줄이는 다양한 컨텍트(context)에 유용한 본 발명에 따른 특징을 구현한다. 본 발명의 이러한 특징은, 에러 정정 코드(예를 들어, BCH 패리티 비트, 및 BCH 패리티 비트 및 데이터로부터 생성된 신드롬)가 부분적으로 병렬 변환된 데이터 스트림으로부터 생성되어야 하고, 입력 데이터의 다음 블록의 작은 수(예를 들어 2)의 입력 비트가 입력 데이터의 현재 블록에 대한 에러 정정 코드를 생성하는 동안 이용될 수 있는, 다양한 시스템에 유용하다. 이러한 시스템에 서, 입력 데이터의 각 블록의 짝수 비트들은, 줄어든 수의 클록 사이클에서 각 블록에 대한 에러 정정 코드를 생성하기 위해, 본 발명에 따른 입력 데이터 블록 각각으로부터의 홀수 비트들과 함께 동시에(병렬로) 처리될 수 있다. 본 발명을 이용하지 않고는, 본 발명에 따라 (시스템 클록을 이용하여) 코드가 생성될 수 있는 동일한 시간 내에 동일한 에러 정정 코드를 생성하기 위해서는 시스템 클록(에러 정정 코드 생성보다는 다른 목적으로 시스템에서 사용되는 클록) 주파수의 몇 배(예를 들어, 2x, 3x, 또는 4x)의 주파수를 갖는 클록을 이용해야 할 필요가 있다. 몇 배의 시스템 클록을 구현하는 것은, 더 빨리 동작할 수 있는 클록 논리부(clocked logic)가 요구되고, 몇 배의 주파수를 갖는 시스템 클록 버전이 존재할 것이 요구된다는 점에서 불리하다(이러한 몇 배의 주파수를 갖는 클록을 생성하는 것은 보통 일반적으로 PLL을 포함하는 클록 배율기 회로가 요구되기 때문에 비싸다).More generally, the circuits of FIGS. 9B and 9D generate error correction code bits (e.g., parity bits or syndrome bits) from a parallel stream of input data, and generate error correction bits from a cyclic polynomial such as a BCH polynomial. It implements features in accordance with the present invention that are useful for a variety of contexts, reducing the number of cycles needed to generate and reducing the number of cycles needed to calculate the syndrome code generated by a cyclic polynomial. This feature of the invention is that an error correction code (e.g., BCH parity bits, and syndromes generated from BCH parity bits and data) must be generated from a partially parallelized data stream, and the small size of the next block of input data must be generated. It is useful for a variety of systems, where a number (e.g. 2) of input bits may be used while generating an error correction code for the current block of input data. In such a system, the even bits of each block of input data are simultaneously (with odd bits from each of the input data blocks according to the present invention) to generate an error correction code for each block in a reduced number of clock cycles. In parallel). Without using the present invention, in order to generate the same error correction code within the same time that the code can be generated (using the system clock) in accordance with the present invention, it is used in the system for other purposes than generating the error correction code. It is necessary to use a clock having a frequency several times the frequency (for example, 2x, 3x, or 4x). Implementing multiple system clocks is disadvantageous in that clocked logic that can operate faster and a system clock version with multiple frequencies are required to exist. Generating a clock with frequency is usually expensive because a clock multiplier circuit that typically includes a PLL is required).

도 9a 및 도 9b 각각의 에러 정정 코드 생성 회로는, 회로가 입력부에서 수신된 입력 데이터를 그 출력부로 통과되는 지와, 회로가 에러 정정 코드를 그 출력부로 인가하는 지를 제어하는 제어 비트(C1)를 이용한다. 도 9a를 참조하면, 최초 "z" 클록 사이클 동안, 제이 비트(C1)는 하이이고, 입력 데이터(INPUT)의 z-비트 블록이 쉬프트 레지스터로 제공되도록 하고, 에러 정정 코드가 생성되며, 또한, 상기 클록은 멀티플렉서(300)를 통해 출력부로 통과된다. 도 9a의 회로가 본 발명에 따른 송신기에 구현될 때,(예를 들어, 도 13의 송신기(100)의 바람직한 구현), C1이 하이 일 동안 패킷 헤더 비트의 24-비트 블록이 입력된다(그리고 출력부로 통과한다). 그리고, C1이 로우로 가고, 멀티플렉서(300)가 입력 데이터 대신에 레지스 터(Q7)의 출력을 통과시키게 한다. C1이 로우일 동안은, 8 개의 BCH 패리티 비트 시퀀스가 8 개의 클록 사이클 동안 쉬프트되어 레지스터(Q7)에서 나온다. C1이 로우일 동안, 입력 데이터의 소스는 활동하지 않는다.Each of the error correction code generating circuits of FIGS. 9A and 9B includes a control bit C1 that controls whether the circuit passes the input data received at the input to its output and whether the circuit applies the error correction code to its output. Use Referring to FIG. 9A, during the first " z " clock cycle, the J bit C1 is high, causing a z-bit block of input data INPUT to be provided to the shift register, and an error correction code is generated, The clock is passed through the multiplexer 300 to the output. When the circuit of Figure 9A is implemented in a transmitter according to the present invention (e.g., a preferred implementation of transmitter 100 of Figure 13), a 24-bit block of packet header bits is input while C1 is high (and To the output). Then, C1 goes low and causes the multiplexer 300 to pass the output of register Q7 instead of the input data. While C1 is low, eight BCH parity bit sequences are shifted for eight clock cycles to exit register Q7. While C1 is low, the source of input data is inactive.

도 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" 는 각 입력 블록에 사이즈 및 각 입력 블록에 대해 생성되는 에러 정정 코드의 비트 수에 의해 결정되는 파라미터이다.The circuit of FIG. 9B operates similarly to the circuit of FIG. 9A. However, the circuit of FIG. 9B includes a shift register having two input nodes and two output nodes where each input node receives a different subset of input bits (rather than a shift register having one input in FIG. 9A), Only (N / 2) +1 clock cycles are needed to generate 8 BCH parity bits (compared to FIG. 9A circuit, requiring N + 1 clock cycles to generate the same bits), (4 Four additional clock cycles are required to shift out the eight BCH parity bits (by shifting the four BCH parity bits from the register Q6) while shifting the BCH parity bits from the register Q7. At the end of the current block of input data, the register value (each of registers Q0-Q7 in FIG. 9B), the first even bit ("IN [0]") and the first odd bit (") of the next block of input data. Given IN [1] "), the BCH parity bits (applied to the multiplexers 301 and 302 from two shift registers) for the current block of input data are always determined. If the circuit of Figure 9B is implemented in a transmitter in a preferred embodiment of the present invention (e.g., a preferred implementation in transmitter 100 of Figure 13), then a sub-packet of 56 data bits is generated during 28 clock cycles where C1 is high. It is received at the input (and passed to the output) along with the other pairs of subpacket bits, IN [0], IN [1], received in clock cycles. Typically, you have a shift register with "m" input nodes, and generate the error correction code for the current block, while writing the "m" bit of the next block of input data (one of the "m" bits in each shift register input). The modified design of FIG. 9B, which receives, may generate an error correction code (eg, BCH parity bit) for the current block of input data in a “k / m + p” clock cycle, and (C1 low one). When the error correction code is shifted out in the "n / m" cycle, "n", "p" and "k" are the size of each input block and the error correction code generated for each input block. This parameter is determined by the number of bits.

도 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)로 쉬프트 출력된다. 이들 비트의 값들은 다음과 같다:In the general operation of the circuit of FIG. 9B, the first even bit ("IN [0]") and the first odd bit ("IN [1]") of the next block of input data are shown in FIG. 9B at the timing at which C1 transitions high-low. Is applied to the input of the circuit, and the IN [0] and IN [1] values continue to be applied to the input while C1 remains low. At the timing at which C1 transitions high-low, to refer to each bit of the registers Q0, Q1, Q2, Q3, Q4, Q5, Q6 or Q7, "Q0, Q1, Q2, Q3, Q4, Q5, Use the notation Q6 or Q7 ". When C1 is low, bits Q0, Q2, Q4 and Q6 are shifted out from one shift register to multiplexer 301 (because during this process the output of AND gate 308 is low) and bit Q1 , Q3, Q5 and Q7 are shifted out from one shift register to multiplexer 302 (because during this process the output of AND gate 309 is low). The values of these bits are as follows:

Q0 = ((Q7 ^ IN[0]) ^ (Q6 ^ IN[1])) & C1;Q0 = ((Q7 ^ IN [0]) ^ (Q6 ^ IN [1])) &C1;

Q1 = (Q7 ^ IN[0]) & C1; Q1 = (Q7 ^ IN [0]) &C1;                 

Q2 = Q0;Q2 = Q0;

Q3 = Q1;Q3 = Q1;

Q4 = Q2;Q4 = Q2;

Q5 = Q3;Q5 = Q3;

Q6 = Q4 ^ (((Q7 ^ IN[0]) ^ (Q6 ^ IN[1])) & C1; 및Q6 = Q4 ^ (((Q7 ^ IN [0]) ^ (Q6 ^ IN [1])) &C1; and

Q7 = Q5 ^ ((Q6 ^ IN[1]) & C1),Q7 = Q5 ^ ((Q6 ^ IN [1]) & C1),

여기서 "^"는 배타적 OR(exclusive OR) 동작을 나타내고, "&"는 AND 동작을 나타낸다.Where "^" represents an exclusive OR operation and "&" represents an AND operation.

비트(Q0, Q1, Q2, Q3, Q4, Q5, Q6 및 Q7)는 C1이 하이 일 때, 생성된다. C1 이 로우이면, 도 9b의 회로는 단순한 쉬프트 레지스터로 기능하여, Q0, Q2, Q4 및 Q6를 멀티플렉서(301)로 쉬프트 출력하고, Q1, Q3, Q5 및 Q7을 멀티플렉서(302)로 쉬프트 출력한다.Bits Q0, Q1, Q2, Q3, Q4, Q5, Q6 and Q7 are generated when C1 is high. If C1 is low, the circuit of FIG. 9B functions as a simple shift register, shifts Q0, Q2, Q4, and Q6 to multiplexer 301, and shifts Q1, Q3, Q5, and Q7 to multiplexer 302. .

도 9b 회로로부터 출력된 비트들(Q0, Q1, Q2, Q3, Q4, Q5, Q6 및 Q7)의 동일한 값들이 도 9a의 회로로부터 출력되지만(C1 이 하이-로우로 천이하기 전에 도 9a 및 도 9b의 회로에 동일한 입력 값들이 인가되고, 다음 블록의 최초 홀수 비트(IN[1])가 입력 값으로 인가 된 다음 클록 에지에서 제어 비트(C1)이 하이-로우로 천이한다고 가정한다), 도 9a 회로는 이 값들을 멀티플렉서(300)로 쉬프트 시키기 위해 8 개의 클록 사이클을 요구하지만, 도 9b 회로는 이 값들을 멀티플렉서(301 및 302)로 쉬프트 시키기 위해 단 4 개의 클록 사이클만이 요구된다. The same values of the bits Q0, Q1, Q2, Q3, Q4, Q5, Q6 and Q7 output from the circuit of FIG. 9B are output from the circuit of FIG. 9A (FIG. 9A and FIG. 9 before C1 transitions to high-low). Suppose that the same input values are applied to the circuit of 9b, and the first odd bit IN [1] of the next block is applied as the input value and the control bit C1 transitions high-low at the next clock edge. The circuit 9a requires eight clock cycles to shift these values to the multiplexer 300, while the circuit of FIG. 9B only requires four clock cycles to shift these values to the multiplexers 301 and 302.                 

신드롬(syndrome)은 그 에러 정정 코드를 갖는 전송된 시퀀스가 변조되었는 지를 나타낸다. 변조가 일어나지 않았다면, 신드롬은 0이다. 어떤 비트가 변조되었으면, 신드롬은 0이 아니게 될 것이다. 변조된 비트의 수와, 인코딩된 시퀀스의 해밍 거리에 따라, 상기 신드롬은 변조된 비트를 정정하는 데 이용될 수 있다.The syndrome indicates whether the transmitted sequence with its error correction code has been modulated. If no modulation has occurred, the syndrome is zero. If any bit is modulated, the syndrome will not be zero. Depending on the number of modulated bits and the hamming distance of the encoded sequence, the syndrome may be used to correct the modulated bits.

도 9c및 도 9d 각각의 신드롬 생성 회로는, 상기 회로가 입력부에서 수신된 입력 데이터를 그 출력부로 통과시키는 지와, 상기 회로가 신드롬 비트를 그 추력부로 인가하는 지를 제어하는 제어 비트(C2)를 이용한다. 도 9c를 참조하면, 최초 "z" 클록 사이클 동안, 제어 비트(C2)는 하이 이고, z-비트 블록의 입력 데이터(INPUT)를 쉬프트 레지스터로 제공하여, 멀티플렉스(303)를 통해 출력부로 통과되도록 한다. 도 9c의 수신기가 본 발명의 바람직한 실시예에 따른 수신기에 구현되면(예를 들어, 도 14의 수신기(200)의 바람직한 구현), 32-비트 패킷 헤더는 C2가 하이 인 각 구간 동안 입력된다(그리고 출력부로 통과된다). 그리고, C2가 로우로 천이되면, 멀티플렉서(303)는 입력 데이터 대신에 레지스터(Q7)의 출력을 통과시킨다. C2 가 로우 일 때, 8 개의 신드롬 비트의 시퀀스는, 8 클록 사이클 동안, 레지스터(Q7)에서 쉬프트 출력된다.Each of the syndrome generating circuits of FIGS. 9C and 9D has a control bit C2 that controls whether the circuit passes input data received at the input to its output and whether the circuit applies the syndrome bit to its thrust. I use it. Referring to FIG. 9C, during the first " z " clock cycle, control bit C2 is high and provides the input data INPUT of the z-bit block to the shift register, passing through the multiplex 303 to the output. Be sure to If the receiver of FIG. 9C is implemented in a receiver in accordance with a preferred embodiment of the present invention (e.g., a preferred implementation of receiver 200 of FIG. 14), a 32-bit packet header is input for each interval where C2 is high ( And passed to the output). When C2 transitions low, the multiplexer 303 passes the output of the register Q7 instead of the input data. When C2 is low, the sequence of eight syndrome bits is shifted out in register Q7 for eight clock cycles.

도 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" 는 각 입력 블록에 사이즈 및 각 입력 블록에 대해 생성되는 신드롬 비트의 수에 의해 결정되는 파라미터이다.The circuit of FIG. 9D operates similarly to FIG. 9C, but the circuit of FIG. 9D has two input nodes and two output nodes (unlike shift registers with only one input node in FIG. 9C), each input node having an input. A shift register that receives another subset of bits, and only (N / 2) +1 clock cycles to generate eight syndrome bits (N + 1 clock cycles to generate the same bits in FIG. 9C). On the other hand, it only requires four additional clock cycles (by shifting four syndrome bits from register Q6 and four syndrome bits from register Q7) to shift out the eight syndrome bits. . At the end of the application of the current block of input data, the register value (each of registers Q0-Q7 in FIG. 9D), the first even bit ("IN [0]") and the first odd bit (") of the next block of input data. Given IN [1] "), the syndrome bits (applied from registers Q6 and Q7 to multiplexers 304 and 305) for the current block of input data are always determined. If the circuit of Figure 9D is implemented in a receiver in a preferred embodiment of the present invention (e.g., a preferred implementation in receiver 200 of Figure 14), then a 64-bit subpacket will be generated during 32 clock cycles where C2 is high. Received at the input with another pair of subpacket bits received in clock cycles, IN [0], IN [1] and another pair of subpacket bits output in clock cycles OUT [0], OUT [1] (And passed to the output). Typically, you have a shift register with "m" input nodes and receive the "m" bit (one of the "m" bits in each shift register input) of the next block of input data while generating the syndrome for the current block. 9D, the modified design of FIG. 9D may generate syndrome bits for the current block of input data in a “k / m + p” clock cycle, and “n / m” (eg, when C2 is low). The syndrome bits may be shifted out in a cycle, where "n", "p", and "k" are parameters determined by the size of each input block and the number of syndrome bits generated for each input block.

도 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)로 쉬프트 출력된다. 이들 신드롬 비트의 값들은 다음과 같다:In the general operation of the FIG. 9D circuit, the first even bits ("IN [0]") and the first odd bits ("IN [1]") of the next block of input data are plotted at the timing when C2 transitions high-low. Applied to the input of the circuit of 9d, and the IN [0] and IN [1] values continue to be applied to the input while C2 remains low. At the timing at which C2 transitions high-low, to refer to each bit of the registers Q0, Q1, Q2, Q3, Q4, Q5, Q6 or Q7, "Q0, Q1, Q2, Q3, Q4, Q5, Use the notation Q6 or Q7 ". When C2 is low, bits Q0, Q2, Q4 and Q6 are shifted out from one shift register to multiplexer 305 (because during this process the output of AND gate 311 is low) and bit Q1 , Q3, Q5 and Q7 are shifted out from one shift register to multiplexer 304 (because during this process the output of AND gate 310 is low). The values of these syndrome bits are as follows:

Q0 = IN[1] ^ ((Q6 ^ Q7) & C2);Q0 = IN [1] ^ ((Q6 ^ Q7) &C2);

Q1 = IN[0] ^ (Q7 & C2);Q1 = IN [0] ^ (Q7 &C2);

Q2 = Q0;Q2 = Q0;

Q3 = Q1;Q3 = Q1;

Q4 = Q2;Q4 = Q2;

Q5 = Q3;Q5 = Q3;

Q6 = Q4 ^ ((Q6 ^ Q7) & C2); 및Q6 = Q4 ^ ((Q6 ^ Q7) &C2); And

Q7 = Q5 ^ Q6,Q7 = Q5 ^ Q6,

여기서 "^"는 배타적 OR(exclusive OR) 동작을 나타내고, "&"는 AND 동작을 나타낸다. Where "^" represents an exclusive OR operation and "&" represents an AND operation.                 

비트(Q0, Q1, Q2, Q3, Q4, Q5, Q6 및 Q7)는 C2 가 하이 일 때, 생성된다. C2 가 로우이면, 도 9d의 회로는 단순한 쉬프트 레지스터로 기능하여, Q0, Q2, Q4 및 Q6를 멀티플렉서(305)로 쉬프트 출력하고, Q1, Q3, Q5 및 Q7을 멀티플렉서(304)로 쉬프트 출력한다.Bits Q0, Q1, Q2, Q3, Q4, Q5, Q6 and Q7 are generated when C2 is high. If C2 is low, the circuit of FIG. 9D functions as a simple shift register, shifts Q0, Q2, Q4, and Q6 to multiplexer 305, and shifts Q1, Q3, Q5, and Q7 to multiplexer 304. .

도 9d 회로로부터 출력된 비트들(Q0, Q1, Q2, Q3, Q4, Q5, Q6 및 Q7)의 동일한 값들이 도 9c의 회로로부터 출력되지만(C2 가 하이-로우로 천이하기 전에 도 9c 및 도 9d의 회로에 동일한 입력 값들이 인가되고, 다음 블록의 최초 홀수 비트(IN[1])가 입력 값으로 인가 된 다음, 클록 에지에서 제어 비트(C2) 가 하이-로우로 천이한다고 가정한다), 도 9c 회로는 이 값들을 멀티플렉서(303)로 쉬프트 시키기 위해 8 개의 클록 사이클을 요구하지만, 도 9d 회로는 이 값들을 멀티플렉서(304 및 305)로 쉬프트 시키기 위해 단 4 개의 클록 사이클만이 요구된다.The same values of the bits Q0, Q1, Q2, Q3, Q4, Q5, Q6 and Q7 output from the circuit of FIG. 9D are output from the circuit of FIG. 9C, but before C2 transitions to high-low, FIG. 9C and FIG. Suppose that the same input values are applied to the circuit of 9d, the first odd bit IN [1] of the next block is applied as the input value, and then the control bit C2 transitions high-low at the clock edge), The circuit of FIG. 9C requires eight clock cycles to shift these values to the multiplexer 303, while the circuit of FIG. 9D requires only four clock cycles to shift these values to the multiplexers 304 and 305.

또한, 바람직하게는, 본 발명에 따른 시스템에서, BCH 에러 검출의 신뢰성을 향상시키기 위해, 송신기는 입력 데이터 스트림 내에 (상기 입력 데이터 스트림이 서브패킷으로 그룹핑 될 때) 자동적으로 0 비트들을 삽입하도록 하여, 상기 삽입된 0 비트들이 각 데이터 비트들에 대해 이용 가능한 각 서브패킷의 56 슬롯들 중 알려진 위치에서 발생할 수 있도록 구성된다. (이러한 송신기와 같이 사용되는) 수신기 내의 에러 검출 회로는, 각 복원된 데이터의 서브패킷의 예상된 슬롯 내의 0들을 체크하여, 각 복원된 데이터의 서브패킷 각각의 에러를 나타내는 결과 정보를 이용하도록 구성되어야 한다.Further, preferably, in the system according to the present invention, in order to improve the reliability of BCH error detection, the transmitter is arranged to automatically insert zero bits (when the input data stream is grouped into subpackets) in the input data stream. And the inserted zero bits can occur at a known position among the 56 slots of each subpacket available for each data bit. The error detection circuitry in the receiver (used with such a transmitter) is configured to check the zeros in the expected slots of the subpacket of each recovered data and use the resulting information representing the error of each subpacket of each recovered data. Should be.

패킷 전송의 32 픽셀 클록 사이클 중 어느 한 사이클 동안 CH0 상에서 전송 된 10-비트 코드 워드에 의해 결정된 각 4-비트 워드의, 제3 비트(도 9의 "bit2")는, 상기 패킷 헤더의 비트들 중 하나의 비트이다. 패킷 전송의 32 픽셀 클록 사이클 동안 CH1 상에서 전송된 10-비트 코드 워드에 의해 결정된 4-비트 워드는, 상기 서브패킷의 짝수 비트들이다. 패킷 전송의 32 픽셀 클록 사이클 동안 CH2 상에서 전송된 10-비트 코드 워드에 의해 결정된 4-비트 워드는, 상기 서브패킷의 홀수 비트들이다.The third bit (“bit2” in FIG. 9) of each 4-bit word determined by the 10-bit code word transmitted on CH0 during any one of the 32 pixel clock cycles of the packet transfer, bits of the packet header. Is one bit. The 4-bit word determined by the 10-bit code word transmitted on CH1 during the 32 pixel clock cycle of packet transmission is the even bits of the subpacket. The 4-bit word determined by the 10-bit code word transmitted on CH2 during the 32 pixel clock cycle of the packet transfer is the odd bits of the subpacket.

더욱 구체적으로는, 도 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 비트뿐만 아니라) 다음 비트의 패킷 헤더를 결정한다.More specifically, as shown in FIG. 9, each of the code words transmitted on CH1 during an "N" th pixel clock cycle determines the even bits of each of subpackets 0, 1, 2, and 3, and the "N" th pixel. Each code word transmitted on CH2 during a clock cycle determines the odd bits of each of subpackets 0, 1, 2, and 3. Each code word transmitted on CH0 during the " N " th pixel clock cycle determines the packet header 1 bit (as well as the HSYNC bit and the VSYNC bit). Each code word transmitted on CH1 during the " N + 1 " th pixel clock cycle determines the next even bit of each of subpackets 0, 1, 2, and 3, and is transmitted on CH2 during the " N + 1 " th pixel clock cycle. Each code word determines the next odd bit of each of subpackets 0, 1, 2, and 3. Each code word transmitted on CH0 during the " N + 1 " th pixel clock cycle determines the packet header of the next bit (as well as the next HSYNC bit and the next VSYNC bit).

패킷 헤더의 BCH 패리티 비트(상기 패킷 헤더의 마지막 8 비트)는 상기 패킷 헤더의 24 데이터 비트를 통해 계산되고, 상기 패킷의 마지막 8 픽셀 클록 사이클 동안 CH0를 통해 전송된 코드 워드를 통해 결정된다. 각 서브패킷에 대한 BCH 패리 티 비트는, 상기 서브패킷의 56 데이터 비트를 통해 계산되고, 상기 패킷의 마지막 4 픽셀 클록 사이클 동안 CH1 및 CH2를 통해 전송된 코드 워드에 의해 결정된다(각 서브패킷에 대한 패리티 비트는 2 채널:CH1 및 CH2를 통해 전송된 비트들을 포함한다).The BCH parity bit (the last 8 bits of the packet header) of the packet header is calculated over the 24 data bits of the packet header and is determined through the code word transmitted over CH0 during the last 8 pixel clock cycles of the packet. The BCH parity bit for each subpacket is calculated by the 56 data bits of the subpacket and is determined by the code word transmitted over CH1 and CH2 during the last 4 pixel clock cycles of the packet (in each subpacket). Parity bits for the two channels include bits transmitted on CH1 and CH2).

따라서, 바람직한 실시예에서, 송신기는, 패킷이 TMDS 링크의 세 채널(CH0, CH1 및 CH2)을 통해 확산되고, 패킷의 각 서브패킷이 링크의 두 채널(CH1 및 CH2)을 통해 확산된, 패킷 각각을 (데이터 아일랜드 동안) 전송할 뿐만 아니라, 상기 송신기는 패킷의 서브패킷 각각에 대한 BCH 패리티 비트를 개별적으로 생성하고, 이들 BCH 패리티 비트들이 링크의 두 채널(CH1 및 CH2)을 통해 확산되도록 서브패킷 각각에 대한 BCH 패리티 비트들을 전송한다.Thus, in a preferred embodiment, the transmitter is a packet in which a packet is spread over three channels (CH0, CH1 and CH2) of a TMDS link and each subpacket of the packet is spread over two channels (CH1 and CH2) of a link. In addition to transmitting each (during data islands), the transmitter separately generates BCH parity bits for each subpacket of the packet and subpackets such that these BCH parity bits are spread over two channels (CH1 and CH2) of the link. Send BCH parity bits for each.

바람직하게는, 각 패킷 헤더의 첫 번째 바이트는 "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 의 타입을 나타낸다).Preferably, the first byte of each packet header is a "Packet Type" code, and each of the second and third bytes of each packet header represents packet-specific data. Preferably, the transmitter may generate four or more types of packets: null packets (indicated by packet type code 0x00 = 0b00000000); An audio clock regeneration (ACR) packet (indicated by packet type code 0x01 = 0b00000001); An audio sample packet (indicated by packet type code 0x02 = 0b00000010); (Represented by packet type code 0x80 + InfoFrame Type = 0b1xxxxxxx, where seven LSBs represent the type of InfoFrmae defined by the EIA / CEA-861B specification).

다음으로, 바람직한 실시예에 따른 이들 패킷의 4 가지 타입 각각의 포맷과 사용을 설명한다.Next, the format and use of each of the four types of these packets according to the preferred embodiment will be described.

송신기는 널 패킷을 어느 때라도 송신할 수 있지만, 수신기는 널 패킷으로부터 데이터를 복원하지 않는다. 수신기가 (패킷 헤더의 첫 번째 바이트 내의 0x00 값을 식별함으로써) 널 패킷을 식별하면, 수신기는 패킷 헤더의 첫 번째 바이트 다음부터 널 패킷 내의 모든 값들을 무시한다("정의되지 않은(undefined)" 것으로 여긴다).The transmitter can send a null packet at any time, but the receiver does not recover data from the null packet. If the receiver identifies a null packet (by identifying a value of 0x00 in the first byte of the packet header), the receiver ignores all values in the null packet after the first byte of the packet header (as "undefined"). Is considered).

오디오 클록 재생성(ACR) 패킷은 CTS(Cycle Time Stamp) 값과, 오디오 클록 재생성에 사용되는 N 값( 아래에 설명됨) 모두를 포함한다. ACR 패킷의 4개의 서브패킷들은 동일하다. 각 서브패킷은 20-비트의 "N" 값과 20-비트의 "CTS" 값을 포함한다. CTS 값은 CTS의 새로운 값이 없다는 것을 나타낼 때 0이다.The audio clock regeneration (ACR) packet includes both a Cycle Time Stamp (CTS) value and an N value (described below) used for audio clock regeneration. The four subpackets of the ACR packet are identical. Each subpacket contains a 20-bit "N" value and a 20-bit "CTS" value. The CTS value is zero to indicate that there is no new value for the CTS.

오디오 샘플 패킷은 오디오 샘플들의 1, 2, 3 또는 4개의 쌍(각 샘플 쌍은 패킷의 다른 서브패킷에 의해 결정된다)을 포함할 수 있다. 이들은 다른 샘플들, 다른 부분 샘플들(예를 들어, 6개의 채널 중 2개), 또는 반복된 샘플들일 수 있다. 오디오 샘플 패밋의 헤더의 두 번째 및 세 번째 바이트 내의 비트들은, 패킷의 서브패킷 각각의 구성을 나타내고, 각 서브패킷이 샘플을 포함하고 있는지의 여부를 나타내며, 또한, 각 서브패킷이 "플랫라인(flatline)" 샘플(즉, 크기가 0인 것)을 포함하고 있는지를 나타낸다. 바람직하게는, 패킷 헤더의 두 번째 바이트의 4 LSB 각각은 대응하는 서브패킷이 오디오 패킷을 포함하는 지를 타나내며, 패킷 헤더의 세 번째 바이트의 4 LSB는 대응하는 서브패킷이 "플랫라인" 샘플을 포함하는 지를 나타낸다. 하지만, 상기 세 번째 바이트의 어떤 LSB의 (플랫라인 샘플을 나타내는) "1" 값은 상기 두 번째 바이트의 대응하는 "현재" 비트(상기 두 번째 바이트의 4 LSB 중 하나)가 서브패킷이 샘플을 포함하고 있음을 나타내고 있는 경우에는 무의미한 값이 된다. 오디오 샘플 패킷의 각 서브패킷은 오디오 샘플을 나타내는 비트뿐만 아니라 채널 상태 비트 및 패리티 비트도 포함할 수 있다.The audio sample packet may comprise one, two, three or four pairs of audio samples, each pair of samples determined by a different subpacket of the packet. These may be other samples, other partial samples (eg, two of six channels), or repeated samples. The bits in the second and third bytes of the header of the audio sample packet indicate the configuration of each of the subpackets of the packet, and indicate whether each subpacket contains a sample, and each subpacket has a "flatline ( flatline) "sample (ie zero size). Preferably, each of the 4 LSBs of the second byte of the packet header indicates whether the corresponding subpacket contains an audio packet, and the 4 LSBs of the third byte of the packet header indicate that the corresponding subpacket is a "flatline" sample. Indicates whether or not to include. However, a value of "1" (indicative of a flatline sample) of a certain LSB of the third byte indicates that the corresponding "current" bit (one of 4 LSBs of the second byte) of the second byte is a subpacket sample. If it is included, the value is meaningless. Each subpacket of an audio sample packet may include channel status bits and parity bits as well as bits representing audio samples.

바람직하게는, (오디오 샘플 패킷의) 각 서브패킷의 오디오 데이터는, IEC_60958 또는 IEC_61937 프래임과 매우 유사하지만, (패킷 헤더의) "시작" 비트를 IEC_60598 도는 IEC)61937 프래임의 각 서브-프래임의 다중-비트 프리앰블로 대체한 구조로 포맷된다. 오디오 샘플 패킷의 각 서브패킷은 2 개의 28-비트 워드를 포함할 수 있고(예를 들어, 좌측 스테레오 스트림의 28-비트 워드 및 우측 스테레오 스트림의 28-비트 워드), 각 28-비트 워드는 IEC_60958 프래임의 2 서브-프래임 중 하나에 대응되고, 유효 비트, 패리티 비트, 채널 상태 비트 및 사용자 데이터 비트뿐만 아니라 24 비트의 오디오 데이터를 포함한다. 바람직하게는, 오디오 샘플 패킷의 각 서브패킷 내의 모든 영역은 IEC_60958 또는 IEC_61937 설명서 내의 대응하는 규칙에 따른다.Preferably, the audio data of each subpacket (of the audio sample packet) is very similar to the IEC_60958 or IEC_61937 frame, but multiplexes of each sub-frame of the IEC_60598 or IEC) 61937 frame (of the packet header). Formatted in a structure replaced with a bit preamble. Each subpacket of an audio sample packet may contain two 28-bit words (eg, a 28-bit word of the left stereo stream and a 28-bit word of the right stereo stream), each 28-bit word being IEC_60958 Corresponds to one of the two sub-frames of the frame and includes 24 bits of audio data as well as valid bits, parity bits, channel status bits and user data bits. Preferably, all regions in each subpacket of the audio sample packet comply with the corresponding rules in the IEC_60958 or IEC_61937 specification.

바람직한 실시예에서, 오디오 샘플 패킷의 패킷 헤더의 세 번째 바이트의 4 LSB 각각은, 대응하는 서브패킷이 오디오 샘플의 IEC_60958(또는 IEC_61937) 프래임의 첫 번째 프래임을 포함하는 지를 나타내는 "시작" 비트이다. 송신기는, 대응하는 서브패킷이 블록의 첫 번째 "B, W" 프래임을 포함하면, 시작 비트를 "1"로 설정하고, 대응하는 서브패킷이 블록의 첫 번째 "M, W" 프래임을 포함하면, 시작 비트를 "0"으로 소거한다. In a preferred embodiment, each of the 4 LSBs of the third byte of the packet header of the audio sample packet is a "start" bit indicating whether the corresponding subpacket contains the first frame of the IEC_60958 (or IEC_61937) frame of the audio sample. The transmitter sets the start bit to "1" if the corresponding subpacket contains the first "B, W" frame of the block, and if the corresponding subpacket contains the first "M, W" frame of the block. , Clear the start bit to "0".                 

바람직하게는, 본 발명에 따른 시스템은, (스테레오 또는 압축된 서라운드-사운드 스트림을 결정할 수 있는) 32kHz, 44.1kHz 또는 48kHz의 샘플 레이트를 갖는 IEC_60958 또는 IEC_61937 오디오 스트림을 전송할 수 있고, 96kHz 까지의 샘플 레이트로 IEC_60958 또는 IEC_61937 데이터의 4개까지의 스트림(예를 들어 8 스테레오 채널), 또는 192kHz의 샘플 레이트로 IEC_60958 또는 IEC_61937 데이터의 하나 이상의 스트림을 전송할 수 있다.Preferably, the system according to the invention is capable of transmitting IEC_60958 or IEC_61937 audio streams with sample rates of 32 kHz, 44.1 kHz or 48 kHz (which can determine stereo or compressed surround-sound streams) and samples up to 96 kHz. Up to four streams (eg, 8 stereo channels) of IEC_60958 or IEC_61937 data at a rate, or one or more streams of IEC_60958 or IEC_61937 data at a sample rate of 192 kHz.

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 패킷의 길이를 바이트로 나타낸다.The InfoFrame packet may include format information and related information related to audio and / or video data to be transmitted. The EIA / CEA-861B standard defines an "InfoPacket" data structure consisting of one or more "InfoFrames" containing format information and related information related to transmitted digital audio and / or digital video data. In a preferred embodiment, each InfoFrame packet sent by the system according to the invention comprises the information of the EIA / CEA-861B InfoPacket with the following limitations: An InfoFrame packet according to the invention has a maximum size of 30 bytes. May include only information of the EIA / CEA-861B InfoFrame (the first byte of the packet header indicating the InfoFrame type code, the second byte of the packet header indicating the version number region, and the third of the packet header indicating the InfoFrame length region). Includes seven LSBs of bytes); The type code must be in the range 0 to 127 (since the type code is represented by 7 LSBs in the first byte of the packet header). Examples of InfoFrame type codes include 0x02 (indicating that an InfoFrame packet contains data of Auxiliary Video information (AVI) InfoFrame), 0x03 (indicating that an InfoFrame packet contains data of an Audio InfoFrame), and (in which InfoFrame packet is DVD control). 0x04), indicating that it contains InforFrame data. Preferably, the InfoFrame length field contains 3 bytes of the packet header and meaningless bytes in the packet including a checksum (to have a maximum value of "31" in length), the InfoFrame in EIA / CEA-861B standard units. Indicates the length of the packet in bytes.

AVI(Auxiliary video information) InfoFrame 패킷은 수신기로 전송된 (또는 전송될) 현재 비디오 스트림의, 상기 비디오 데이터가 RGB, YCbCr 4:2:2, YCbCr 4:4:4 포맷인지를 나타내는지, 상기 비디오 데이터가 오버스캔드 된 또는 언더스캔드 된 화면 종횡비(picture aspect ratio)를 나타내는지(그리고, 상기 화면이 수평 도는 수직으로 크기 변환되었는지), 비디오 요소의 비트 뎁스(bit depth), 라인 당 픽셀 수 및 프레임 당 라인 수, 픽셀 반복 수(즉, 각 픽셀은 반복되지 않거나, 또는 N 번 전송된다, 이때 N은 1보다 큰 정수다) 등의 다양한 특징을 나타낸다. 오디오 InfoFrame 패킷은, 오디오 데이터의 스트림 수, 각 스트림에 대한 샘플링 주파수, 및 샘플 크기(비트의 수) 등의 전송된(또는 전송될) 오디오 데이터의 다양한 특징을 나타낸다.The AVI (Auxiliary video information) InfoFrame packet indicates whether the video data of the current video stream sent (or to be sent) to the receiver is in RGB, YCbCr 4: 2: 2, YCbCr 4: 4: 4 format, and the video Whether the data represents an overscanned or underscanned picture aspect ratio (and whether the picture is scaled horizontally or vertically), the bit depth of the video element, the number of pixels per line And number of lines per frame, number of pixel repetitions (ie, each pixel is not repeated or is transmitted N times, where N is an integer greater than one). Audio InfoFrame packets represent various features of the transmitted (or to be transmitted) audio data, such as the number of streams of audio data, the sampling frequency for each stream, and the sample size (number of bits).

바람직하게는, 본 발명에 따른 시스템은, 충분한 오디오 대역폭을 제공하기에 필요한 만큼의 비디오 픽셀의 복사를 사용할 수 있다. 예를 들어, 비디오의 프레임이 L 개의 라인으로 구성되고(이 픽셀들은 첫 번째 픽셀 클록 주파수에서 반복되지 않는 형태로 전송된다), (비디오 라인 다음에 오는 블랭크 구간 내에 각각 삽입되는) 2L 개의 데이터 아일랜드가 비디오의 한 프레임에 대응되는 오디오 비트를 전송할 필요가 있으면, 시스템은 바람직하게 각 픽셀의 전송이 반복되는 모드에서 동작할 수 있다. 픽셀 클록 주파수가 변하지 않으면, 각 픽셀의 반복된 전송이 비디오 전송 레이트를 반으로 줄이는 효과가 있지만(2 반복된 픽셀의 라인들이 반복되지 않는 라인 각각의 모든 픽셀을 전송하는데 필요하기 때문), 반복되지 않는 비디오의 풀 프레임에 대한 오디오 비트가, 프레임의 픽셀들이 반복적으로 전송되는 2L 개의 액티브 비디오 주기 중 한 주기 다음에 오는 2L 데이터 아일랜드에서 전송되도록 한다. 일반적으로, 픽셀 클록 주파수는 픽셀이 반복적으로 전송되는 각 모드 동안에 (반복되지 않는 전송에 대해 사용된 픽셀 클록 주파수에 비해) 증가된다. 예를 들면, 픽셀 클록 주파수가 2 배 되고 각 픽셀의 전송이 한번 반복되는 모드에서, 오디오 데이터는 액티브 비디오 주기 사이에서 (2배된 픽셀 클록에 기초한 타임 스탬프를 갖고) 2배가 된 데이터 레이트로 전송될 수 있지만, 유효한 비디오 픽셀 전송 레이트는 변하지 않는다. 몇 가지 반복된 픽셀 전송 모드에서, 각 픽셀의 전송은 1회 이상 반복된다(예를 들어, 각각이 픽셀 클록의 주파수가 3배된 버전을 이용하여 세 번 전송된다). 어떤 반복된 픽셀 전송 모드에서 전송된 비디오 데이터를 수신하면, 수신기는 각 액티브 비디오 주기 동안 수신된 동일한 비디오 샘플들 각 세트 중 하나의 샘플을 제외한 나머지 모두를 버리지만(예를 들어, 수신기는 각 픽셀이 2번 전송될 때 모든 홀수 비디오 샘플들을 버리거나 모든 짝수 비디오 샘플들을 버린다), 수신기는 액티브 비디오 주시 사이의 데이터 아일랜드 동안 수신된 패킷화된 데이터의 모든 샘플들을 프로세싱한다.Preferably, the system according to the invention can use as many copies of video pixels as necessary to provide sufficient audio bandwidth. For example, a frame of video consists of L lines (these pixels are sent in a non-repeating fashion at the first pixel clock frequency), and 2L data islands (each inserted within a blank period following the video line). If it is necessary to transmit audio bits corresponding to one frame of video, the system can preferably operate in a mode in which the transmission of each pixel is repeated. If the pixel clock frequency does not change, repeated transmission of each pixel has the effect of halving the video transmission rate (because the lines of the two repeated pixels are needed to transmit every pixel of each non-repeatable line), but not repeated. The audio bit for a full frame of video that is not video is transmitted in a 2L data island that follows one of the 2L active video periods in which the pixels of the frame are repeatedly transmitted. In general, the pixel clock frequency is increased (relative to the pixel clock frequency used for non-repeatable transmissions) during each mode in which pixels are transmitted repeatedly. For example, in a mode where the pixel clock frequency is doubled and the transmission of each pixel is repeated once, the audio data can be transmitted at a data rate that is doubled (with a time stamp based on the doubled pixel clock) between active video periods. Although, the effective video pixel transfer rate does not change. In some repeated pixel transfer modes, the transmission of each pixel is repeated one or more times (eg, each is transmitted three times using a version with three times the frequency of the pixel clock). When receiving video data transmitted in any repeated pixel transmission mode, the receiver discards all but one of each set of identical video samples received during each active video period (e.g., the receiver discards each pixel). Discarding all odd video samples or discarding all even video samples when transmitted twice), the receiver processes all samples of packetized data received during the data island between active video gazes.

송신기의 픽셀-반복의 사용은 바람직하게 전송된 AVI InfoFrame 패킷 내의 픽셀 반복 수 영역 (Pixel_Repetition_Count field)에 의해 나타난다. 이러한 영역은 각 유일 픽셀들이 얼마나 반복되어 전송되었는지를 수신기에 나타낸다. 반복되지 않는 픽셀 전송 모드에서는, 상기 영역의 값은 0이다. 픽셀 반복의 모드에서는, 상기 영역의 값은 수신기에 의해 버려져야 할 (연속적으로 수신된 픽셀의 각 세트에서의) 픽셀의 수를 나타낸다. 바람직하게는, 각 라인의 첫 번째 픽셀 클록 사이클 동안 전송된 비디오 샘플들은 유일하지만(그리고, 버려지지 않는다), 이들 샘플들의 반복 각각은 픽셀 반복 모드에서 버려진다.The use of pixel-repetition of the transmitter is preferably represented by the Pixel Repetition Count field in the transmitted AVI InfoFrame packet. This area indicates to the receiver how repeatedly each unique pixel has been transmitted. In the non-repeating pixel transfer mode, the value of the region is zero. In the mode of pixel repetition, the value of this region represents the number of pixels (in each set of consecutively received pixels) to be discarded by the receiver. Preferably, video samples transmitted during the first pixel clock cycle of each line are unique (and not discarded), but each repetition of these samples is discarded in pixel repetition mode.

바람직한 실시예에서, 본 발명에 따른 시스템은 비디오 데이터를 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번 연속적으로 전송된 두 번째 뒤).In a preferred embodiment, the system according to the invention is configured to transmit video data in several different formats over a TMDS link, and the receiver is configured to recover data in any of these formats. Advantageously, the system is capable of transmitting video data, in either YCbCr 4: 4: 4 format, YCbCr 4: 2: 2 format, or RGB format, over the CH0, CH1, and CH2 channels of this link without pixel repetition or repetition. have. In all cases, up to 24 bits per pixel clock cycle can be sent over these channels. As shown in Fig. 10, during the transmission of RGB video, during each pixel clock cycle, an 8-bit red color element may be transmitted over channel CH2, and the 8-bit green color element is channel CH1. Can be transmitted, and an 8-bit blue color element can be transmitted on channel CH0. The R, G, and B elements of the first pixel of each line are transmitted after the video guard band, followed by the first pixel clock cycle pattern (e.g., after the second time that the video guard band code has been transmitted twice in succession).

도 11에 나타난 바와 같이, TCbCr 4:4:4 비디오의 전송 도중, 각 픽셀 클록 상클 동안, 8-비트의 "Cr" 샘플이 채널(CH2)을 통해 전송될 수 있고, 8-비트의 "Y" 샘플이 채널(CH1)을 통해 전송될 수 있고, 8-비트의 "Cb" 샘플이 채널(CH0)을 통해 전송될 수 있다.As shown in FIG. 11, during the transmission of TCbCr 4: 4: 4 video, during each pixel clock phase, an 8-bit " Cr " sample can be transmitted over channel CH2, and an 8-bit " Y " "Samples may be sent on channel CH1, and 8-bit" Cb "samples may be sent on channel 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 들은 가장 덜 중요한 비트 아래에 메워야 한다.Since 4: 2: 2 data only requires transmission of two components (Y and Cr or Y and Cb) per pixel clock cycle, more bits can be allocated to each component stage. The 24 bits available are broken into 12 bits for the Y component and 12 bits for the C component. As shown in FIG. 12, during the N th pixel clock cycle of the transmission of YCbCr 4: 2: 2 video, a 12-bit luminance Y component can be transmitted on channels CH0 and CH1, Cb samples may be sent on the channels CH0 and CH2. The four most insignificant bits of the Y sample and the four most insignificant bits of the Cb sample are determined by the TMDS code word transmitted over the channel CH0. Then, during the next " N + 1 " th pixel clock cycle, the next 12 bit Y samples can be sent on channels CH0 and CH1, and the 12 bit Cr samples can be sent on channels CH0 and CH2. . The four most insignificant bits of the Y sample and the four most insignificant bits of the Cr sample are determined by the TMDS code word transmitted on CH0. The bits of the Cb sample transmitted during the N th clock cycle are for the pixel containing the Y samples transmitted during the same clock cycle. Cr sample bits transmitted during an "N + 1" th clock cycle are for a pixel containing Y samples transmitted during the same "N + 1" th clock cycle. If it consists of fewer than 12 bits of each of the Y, Cr, and Cb samples, valid bits must be left-aligned (most significant significant bits must be aligned), and zeros must be padded below the least significant bit.

픽셀-배가(pixel-doubling)를 갖는 비디오 전송 모드 도중, N 번째 픽셀 클록 사이클 동안 전송된 모든 데이터는 다음 "N+1" 번째 픽셀 클록 사이클 동안 다시 전송되고, 다음 데이터 세트는 다음 "N+2" 번째 픽셀 클록 사이클 동안 전송되는 식으로 진행된다.During a video transfer mode with pixel-doubling, all data transmitted during the Nth pixel clock cycle is transmitted again during the next "N + 1" th pixel clock cycle, and the next data set is the next "N + 2. Proceeds during the "th pixel clock cycle.

바람직한 실시예에서, 본 발명에 따른 송신기는 데이터의 HDCP 암호화를 지원하고, 수신기와 HDCP 인증 교환을 초기화하고 수신기 내의 레지스터를 HDCP 컨텐츠 보호를 구현하도록 적절히 연결되었는지 질문하기 위해 수신기와 (예를 들어, TMDS 링크의 DDC 채널을 통해) 통신하도록 프로그램 된 프로세서(예를 들어, 도 2의 마이크로컨트롤러(15))를 포함한다. 상기 프로세서는 바람직하게, 데이터 아일랜드 모드 동작(아래에 설명된다) 동안 HDCP 암호화를 취해 송신기(예를 들어 도 13의 인터페이스(101)를 통해) 및 수신기(예를 들어, DDC 채널을 통해)를 셋업 하기 위해 시스템 소프트웨어로 프로그램 된다. 특히, 시스템 소프트웨어는 송신기가 데이터 아일랜드 모드로 들어가고 (아래에 설명할 바와 같이) 패킷을 수신기로 전송함으로써 수신기의 엔트리를 데이터 아일랜드 모드로 들어가도록 유발시키고, 그런 다음 수신기 내의 적절한 레지스터로 하여금 상기 수신기가 확실히 데이터 아일랜드 모드로 천이되었는지를 증명하기 위해 질문한다. 수신기 및 송신기 모두가 데이터 아일랜드 모드에 있으면, 송신기 내의 프로세서는 HDCP 인증 소프트웨어를 실행하여 (인증 교환이 성공적으로 완성되면) 송신기가 액티브 비디오 주기 및 데이터 아일랜드 동안 전송될 데이터를 암호화하도록 하게 한다. In a preferred embodiment, the transmitter according to the present invention supports HDCP encryption of data, initiates an HDCP authentication exchange with the receiver, and asks the receiver (e.g., to query if it is properly connected to implement HDCP content protection). And a processor (eg, microcontroller 15 of FIG. 2) programmed to communicate over the DDC channel of the TMDS link. The processor preferably takes HDCP encryption during data island mode operation (described below) to set up a transmitter (eg, via interface 101 of FIG. 13) and a receiver (eg, via a DDC channel). It is programmed with the system software to do this. In particular, the system software causes the transmitter to enter the data island mode and send a packet to the receiver (as described below) to cause the receiver's entry to enter the data island mode and then cause the receiver to register the appropriate register in the receiver. Ask questions to prove that you have definitely transitioned to data island mode. If both the receiver and the transmitter are in data island mode, the processor in the transmitter runs HDCP authentication software (if the authentication exchange is successfully completed) to allow the transmitter to encrypt data to be transmitted during the active video period and data island.                 

데이터 아일랜드 모드의 바람직한 실시예에서, 액티브 비디오 주기 동안 TMDS 링크의 채널(CH0, CH1 및 CH2)를 통해 전송된 (비디오 가드 밴드 워드가 암호화되지 않는 것을 예외하고) 모든 비디오 데이터가 HDCP 암호화되고, 각 데이터 아일랜드 동안, 채널(CH1 및 CH2)를 통해 전송된 코드 워드가 HDCP 암호화된다(하지만, 리딩 데이터 아일랜드 가드 밴드 워드 또는 트레일링 데이터 아일랜드 가드 밴드 워드는 암호화되지 않는다).In a preferred embodiment of the data island mode, all video data transmitted over the channels CH0, CH1, and CH2 of the TMDS link during the active video period are HDCP encrypted, except that the video guard band words are not encrypted. During a data island, the code words transmitted over the channels CH1 and CH2 are HDCP encrypted (but the leading data island guard band words or trailing data island guard band words are not encrypted).

(HDCP 암호화가 인에이블 된) DVI 모드에서, 하이 값의 DE는 비디오 데이터가 전송되었음을 나타내고 (또는, 보조 데이터가 액티브 비디오 주기 사이에 전송되었음을 나타내고), DE 가 하이 인 동안 전송된 모든 데이터는 암호화된다. 또한, HDCP 리키잉(rekeying)은 DE의 하이-로우로의 천이 각각에 의해 유발된다. 어떤 실제 "DE" 신호는 전송되지 않는다: 오히려 DE가 로우임을 나타내는 천이-최대화된 코드 워드와, DE가 하이 임을 나타내는 천이-최소화된 코드 워드가 전송된다.In DVI mode (with HDCP encryption enabled), a high value of DE indicates that video data has been transmitted (or ancillary data has been transmitted between active video cycles), and all data transmitted while DE is high is encrypted. do. HDCP rekeying is also caused by each of the DE's transitions to high-low. No actual "DE" signal is transmitted: rather, a transition-maximized code word indicating that DE is low and a transition-minimizing code word indicating that DE is high.

데이터 아일랜드 모드의 바람직한 구현에서, 전송된 데이터가 암호화되었다는 것을 나타내는 단일 DE 값 대신, 2개의 바이너리 암호 모드 값이 데이터가 암호화되었는지를 효과적으로 결정한다. 실제로, 제1 암호 모드 신호(M1)의 하이 값은 비디오 데이터 픽셀들이 암호화되었음을 나타내고, 제2 암호 모드 신호(M2)의 하이 값은 (데이터 아일랜드 동안 전송된) 보조 데이터가 암호화되었음을 나타낸다. M1 및 M2 중 어떤 값 또는 M2와 논리적 OR 연산된 M1의 값은 DVI 모드에서 이용된 DE 값에 대응한다. (비디오 가드 밴드가 아닌) 비디오 데이터를 나타내는 천이-최소화 코드 워드가 TMDS 링크의 채널(CH0, CH1 및 CH2)를 통해 전송될 때만 M1이 하이 이 다. (리딩 데이터 아일랜드 가드 밴드 워드 또는 트레일링 데이터 아일랜드 가드 밴드 워드가 아닌) 천이-최소화 코드 워드가 데이터 아일랜드 동안 채널(CH1 및 CH2)를 통해 전송될 때만 M2가 하이 이다. 따라서, 비디오 가드 밴드를 전송하는 도중에는, DE는 하이 이지만, M1과 M2는 하이가 아니다.In a preferred implementation of data island mode, instead of a single DE value indicating that the transmitted data is encrypted, two binary cryptographic mode values effectively determine whether the data is encrypted. In practice, the high value of the first cryptographic mode signal M1 indicates that the video data pixels have been encrypted, and the high value of the second cryptographic mode signal M2 indicates that the supplementary data (transmitted during the data island) is encrypted. Any of M1 and M2 or the value of M1 logically ORed with M2 corresponds to the DE value used in the DVI mode. M1 is high only when a transition-minimization codeword representing video data (not the video guard band) is transmitted over the channels (CH0, CH1 and CH2) of the TMDS link. M2 is high only when a transition-minimization code word (not a leading data island guard band word or trailing data island guard band word) is transmitted over channels CH1 and CH2 during a data island. Thus, while transmitting the video guard band, DE is high, but M1 and M2 are not high.

(M1이 하이 일 때) 24-비트 비디오 픽셀을 암호화하기 위해, 송신기의 HDCP 사이퍼(chpher) 엔진은 (상술한) 잘 알려진 방법으로 생성된 24-비트 의사-랜덤 값의 스트림을 이용하여 비디오 픽셀에 비트단위의 XOR 동작을 수행한다. (M2가 하이 일 때) 본 발명에 따른 바람직한 실시예에서의 데이터 아일랜드에서 픽셀 클록 사이클 단위로 전송될 8-비트 오디오 데이터를 암호화하기 위해(이러한 오디오 데이터의 4비트는 CH1을 통해 전송을 하기 위해 10-비트 TMDS 골든 워드를 이용하여 인코딩되고, 이러한 오디오 데이터의 다른 4-비트는 CH2를 통해 전송을 하기 위해 10-비트 TMDS 골든 워드를 이용하여 인코딩된다), 송신기 내의 HDCP 사이버 엔진은 종래의 방법에 따라 생성된 의사-랜덤 값 스트림의 24-비트 의사-랜덤 값 각각의 비트 중 선택된 8-비트 서브페트를 이용하여 8 개의 오디오 데이터 비트에 비트단위의 XOR 동작을 수행한다.To encrypt 24-bit video pixels (when M1 is high), the HDCP cipher engine of the transmitter uses a stream of 24-bit pseudo-random values generated in a well-known manner (described above). Performs a bitwise XOR operation at. To encrypt 8-bit audio data to be transmitted in pixel clock cycles on a data island in a preferred embodiment according to the present invention (when M2 is high), 4 bits of such audio data for transmission over CH1. Encoded using a 10-bit TMDS golden word, and the other 4-bits of this audio data are encoded using a 10-bit TMDS golden word for transmission over CH2). A bitwise XOR operation is performed on the eight audio data bits using a selected 8-bit subpet of each bit of the 24-bit pseudo-random value of the pseudo-random value stream generated according to FIG.

데이터 아일랜드 모드의 바람직한 구현에서, HDCP 리키잉(rekeying)은 M1의 하이-로우로의 천이 각각에 응답하여(즉, 각 액티브 비디오 주기 끝 부분에서) 수행된다. 바람직하게는, 상기 리키잉은 Y 픽셀 클록 사이클 내에서 완수되어야 하고(예를 들어, M1의 하이-로우로의 천이의 58 픽셀 클록 사이클 내에서), 상기 송신기는 그 HDCP 암호화 화로가 리키잉을 완료하는 액티브 비디오 주기 사이의 타 임 슬롯에만 각 데이터 아일랜드를 위치시키도록 구성되고, 데이터 아일랜드에서 전송될 패킷화된 데이터를 암호화하도록 준비한다.In a preferred implementation of the data island mode, HDCP rekeying is performed in response to each transition of M1 to high-low (ie, at the end of each active video period). Advantageously, said rekeying must be accomplished within a Y pixel clock cycle (eg within a 58 pixel clock cycle of M1's transition to high-low) and the transmitter is said to have its HDCP cryptography enabled for rekeying. It is configured to place each data island only in time slots between the completion of active video cycles, and prepares to encrypt packetized data to be transmitted in the data island.

데이터 아일랜드 모드의 바람직한 구현에서, 본 발명에 따른 송신기는 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 암호화 인디케이터를 나타내는 코드 워드가 도시된다.In a preferred implementation of the data island mode, the transmitter according to the invention has a specific set of values of HDCP encryption indicators (four control bits CTL0, CTL1, CTL2 and CTL3), preferably CTL3 = 1, CTL2 = 0, CTL1 = 0 and CTL0 = 1) to the receiver to indicate that the receiver's HDCP cyber engine should initiate the frame key calculation, and the receiver is configured to respond to this HDCP encryption indicator by performing frame key calculation. Preferably, the HDCP encryption indicator is transmitted over channels CH1 and CH2 of the TMDS link (control bits CTL0, CTL1) during a blank period (not a data island or active video period), preferably a vertical blank period. , CTL2 and CTL3), represented by two transition-maximizing TMDS control words. In the second and third rows from the bottom of FIG. 3, code words representing such HDCP encryption indicators are shown.

이러한 HDCP 암호화 인디케이터 (때때로 "키 제어" 데이터 또는 "복호화 제어" 데이터로 불린다)의 사용은 수신기가 프레임 키 계산을 수행하는 때(송신기 및 수신기에 의한 HDCP 인증 교환이 완료된 후)를 결정하는 것에 대한 신뢰성을 증가시킨다. 이러한 암호화 인디케이터는 (제어 비트 CTL3만이 아니라) 4 개의 모든 제어 비트에 종속하기 때문에, 신뢰성은 향상되고 미래의 확장성도 가능하다.The use of such HDCP cryptographic indicators (sometimes referred to as "key control" data or "decryption control" data) for determining when the receiver performs frame key calculations (after completion of HDCP authentication exchanges by the transmitter and receiver). Increase reliability. Since this encryption indicator depends on all four control bits (not just control bit CTL3), reliability is improved and future scalability is also possible.

바람직하게는, 수신기는, 비트(CTL0, CTL1, CTL2 및 CTL3)의 소정의 값(예를 들어, CTL3=1, CTL2=0, CTL1=0 그리고 CTL0=1)을 나타내는 코드 워드가, VSYNC 의 액티브 에지 뒤에 오는 (즉, VSYNC의 라이징 에지를 나타내는 코드 워드의 검출 뒤에 오는) 소정의 존속시간(바람직하게는 72 픽셀 클록 사이클)을 갖는 WOO(windows of opportunity) 동안 연속된 픽셀 클록 사이클의 소정의 최소 수(바람직하게는 16 개의 연속된 픽셀 클록 사이클) 각각 동안 검출될 때만, HDCP 암호화 인디케이터를 검출하도록 구성된다. 이러한 HDCP 암호화 인디케이터의 제약은, 인디케이터가 송신기에 의해 전송되고 수신기에 의해 기대될 때 수신기가 인디케이터를 검출하는 것에 대한 신뢰성을 향상시키기 위해 추가된다.Preferably, the receiver has a code word representing a predetermined value of bits CTL0, CTL1, CTL2 and CTL3 (e.g., CTL3 = 1, CTL2 = 0, CTL1 = 0 and CTL0 = 1). A predetermined number of consecutive pixel clock cycles during a window of opportunity (WOO) with a predetermined duration (preferably 72 pixel clock cycles) following the active edge (i.e., following detection of the code word representing the rising edge of VSYNC). Only when detected during each of the minimum number (preferably 16 consecutive pixel clock cycles) is configured to detect the HDCP encryption indicator. The constraints of these HDCP cryptographic indicators are added to improve the reliability of the receiver detecting the indicator when the indicator is sent by the transmitter and expected by the receiver.

상술한 바와 같이, 데이터 아일랜드 또는 액티브 비디오 주기에 선행하는 프리앰블에서, 제어 문자(특정 값으로 설정된 CTL0, CTL1, CTL2 및 CTL3)는 바람직하게, 다가오는 DE-하이 주기가 데이터 아일랜드인지 또는 액티브 비디오 주기인지를 식별한다. 바람직하게는, 모든 데이터 아일랜드 및 액티브 비디오 주기의 (최초 2 픽셀 클록 사이클 동안 전송된) 최초 2개 코드 워드는 매우 로버스트(robust)한 DE 라이징 에지를 생성하도록 설계된 가드 밴드 코드이다. 송신기는 가드 밴드 워드 코드를 절대 암호화하지 않도록 구성되어야 하며, 수신기는 가드 밴드 코드 워드를 절대 복호화하지 않도록 구성되어야 한다.As described above, in the preamble preceding the data island or active video period, the control character (CTL0, CTL1, CTL2 and CTL3 set to a specific value) is preferably whether the upcoming DE-high period is a data island or active video period. Identifies Preferably, the first two code words (transmitted during the first two pixel clock cycles) of all data islands and active video periods are guard band codes designed to produce a very robust DE rising edge. The transmitter should be configured to never encrypt guard band word codes, and the receiver should be configured to never decrypt guard band code words.

바람직한 실시예에서, 본 발명에 따른 시스템의 송신기 및 수신기는 하나 이상의 TMDS 링크로 연결되고, DVI(digital visual interface) 모드 또는 "데이터 아일랜드" 모드에서 동작 가능하다. DVI 모드에서, 수신기는, 송신기로부터 TMDS 채널(CH0) 상의 HSYNC 및 VSYNC를 나타내는 종래의 천이 최대화된(out-of-band) 코드 워드를 기다리고, 채널(CH0, CH1 및 CH2) 상에 입력되는 코드 워드가 (블랭크 구간 내의) 아웃-오브-밴드 코드 워드인지 또는 (액티브 비디오 주기 및 보조데이터 버스트 내의) 인-밴드 코드 워드인지 식별함으로써 액티브 비디오 주기로부터 ( 및 또한 선택적으로 블랭크 구간 내의 보조 데이터 버스트로부터) 블랭크 구간을 구별하며, 지시에 대한 입력되는 데이터가 데이터 아일랜드 모드로 들어오는 지를 모니터링 한다. 데이터 아일랜드 모드에서, 수신기는, 액티브 비디오 주기 사이의 데이터 아일랜드에서 오디오 데이터(또는 다른 보조 데이터)의 패킷을 기다리고, 데이터 아일랜드 동안 채널(CH0) 상의 HSYNC, VSYNC 및 패킷 헤더 비트를 나타내는 천이-최소화 코드 워드를 기다리며, 리딩 비디오 가드 밴드를 검출함으로써 액티브 비디오 주기를 식별한다. 바람직하게는, 송신기 및 수신기는 DVI 모드로부터 데이터 아일랜드 모드로 동기화된(그리고 거의 동시의) 천이를 거친다.In a preferred embodiment, the transmitters and receivers of the system according to the invention are connected by one or more TMDS links and are operable in a digital visual interface (DVI) mode or a "data island" mode. In the DVI mode, the receiver waits for a conventional out-of-band codeword indicating HSYNC and VSYNC on the TMDS channel CH0 from the transmitter and enters the code input on the channels CH0, CH1 and CH2. From the active video period (and also optionally from the auxiliary data burst in the blank period) by identifying whether the word is an out-of-band code word (in the blank period) or an in-band code word (in the active video period and auxiliary data burst). Discriminates the blank interval and monitors whether the incoming data for the indication is coming into the data island mode. In data island mode, the receiver waits for a packet of audio data (or other auxiliary data) in the data island between active video periods, and transition-minimization code indicating HSYNC, VSYNC and packet header bits on channel CH0 during the data island. Wait for a word and identify the active video cycle by detecting the leading video guard band. Preferably, the transmitter and receiver undergo a synchronized (and nearly simultaneous) transition from DVI mode to data island mode.

바람직하게는, 각 DVI-데이터 아일랜드 모드로의 천이는 송신기가 데이터 아일랜드 모드로 들어가고 수신기에 의해 검출되는 데이터 아일랜드를 송신할 때 발생한다. 데이터 아일랜드가 뒤따라온다는 것을 나타내는 (CH1 및 CH2 모드에서 전송되고, 바람직하게는, CH2 상에서 CTL3, CTL2=01을 나타내는 코드 워드, CH1 상에서 CTL1, CTL0=01을 나타내는 코드 워드에 의한) 프리앰블, 및 상기 프리앰블 뒤에 오는 하나 이상의 특수 가드 밴드 코드(바람직하게는 CH1 및 CH2 상 각각에서 값 0x55 값을 각각 갖는 2 개의 연속된 동일한 가드 밴드 코드)에 의해 데이터 아일랜드가 표시된다. 데이터 아일랜드를 검출함에 응답하여 (예를 들어, 데이터 아일랜드 프리앰블을 검출하고, 그런 다음 (데이터 아일랜드 프리앰블 뒤의 첫 번째 픽셀 클록 사이클 내에서) 가드 밴드 워드 0x55를 검출하고, 그런 다음 (데이터 아일랜 드 프리앰블 뒤의 두 번째 픽셀 클록 사이클 내에서) 가드 밴드 워드 0x55를 검출함으로써), 수신기는 데이터 아일랜드 모드로 들어간다. 바람직하게는, 수신기는 데이터 아일랜드 모드에 들어가자마자, 송신기에 이해 판독 가능한 레지스터 내의 (데이터 아일랜드 모드 동작을 나타내는) 비트를 세팅한다. 예를 들어, 수신기는 레지스터 내의 비트를 송신기가 DDC 채널을 통해 판독할 수 있는 HDCP 레지스터 공간(예를 들어, 도 14의 레지스터(203))으로 세팅한다. 바람직하게는, 이 비트는 수신기의 하드웨어 리셋만을 통해 소거될 수 있다.Preferably, the transition to each DVI-data island mode occurs when the transmitter enters the data island mode and transmits the data islands detected by the receiver. A preamble (transmitted in CH1 and CH2 mode, preferably with a code word indicating CTL3, CTL2 = 01 on CH2, a code word indicating CTL1, CTL0 = 01 on CH1) indicating that the data island follows, and the The data islands are represented by one or more special guard band codes following the preamble (preferably two consecutive identical guard band codes, each with a value of 0x55 on each of CH1 and CH2). In response to detecting the data island (e.g., detecting the data island preamble, then detecting the guard band word 0x55 (within the first pixel clock cycle after the data island preamble), and then (the data island Within the second pixel clock cycle after the preamble (by detecting guard band word 0x55), the receiver enters data island mode. Preferably, as soon as the receiver enters data island mode, the receiver sets a bit (indicating data island mode operation) in a register that is readable to the transmitter. For example, the receiver sets the bits in the registers into the HDCP register space (eg, register 203 in FIG. 14) that the transmitter can read over the DDC channel. Preferably, this bit can be cleared only through a hardware reset of the receiver.

데이터 아일랜드 모드에서, 수신기 내의 회로는 액티브 비디오 주기를 나타내는 각 프리앰블/가드 밴드 결합과, 데이터 아일랜드를 나타내는 각 프리앰블/가드 밴드 결함에 대한 입력 데이터를 모니터링 한다.In data island mode, circuitry in the receiver monitors each preamble / guard band combination representing an active video period and input data for each preamble / guard band defect representing a data island.

바람직한 실시예에서, 송신기는 DDC 채널을 통해 수신기 모드 상태를 판단할 수 있다(예를 들어, 수신기가 DVI 또는 데이터 아일랜드 모드에 있는지, 수신기가 수행할 수 있는 HDCP 암호화가 어떤 타입인지). 만일 송신기가, 수신기가 데이터 아일랜드 모드에 있고 특정 타입의 HDCP를 지원하는 것을 나타내는 레지스터 비트를 (DDC 채널을 통해) 판독하면, 송신기는 (천이-최대화 코드 워드가 아닌 천이-최소화 TMDS 코드 워드에 의해 결정된 비트로 데이터 아일랜드 동안 VSYNC 및 HSYNC를 전송하고, 비디오 가드 밴드 코드를 비디오 스트림으로 삽입하는) 데이터 아일랜드 모드에서 동작할 것이고, 전송될 데이터를 암호화하기 위해 적절한 HDCP 상태 머쉰을 이용할 것이다(그러나 어떤 비디오 가드 밴드도 암호화하지 않는다).In a preferred embodiment, the transmitter can determine the receiver mode state over the DDC channel (e.g., whether the receiver is in DVI or data island mode, and what type of HDCP encryption the receiver can perform). If the transmitter reads (via the DDC channel) a register bit that indicates that the receiver is in data island mode and supports a particular type of HDCP, the transmitter may be read by a transition-minimizing TMDS code word rather than a transition-maximization code word. It will operate in data island mode, sending VSYNC and HSYNC during the data island with the determined bits, inserting the video guard band code into the video stream, and using the appropriate HDCP state machine to encrypt the data to be transmitted (but no video guard). Don't encrypt the band).

데이터 아일랜드 모드에서, 송신기는 바람직하게, EDID 데이터 구조 (바람직 하게는 EDID에 이에 정의된 EIA/CEA-861B를 포함하는)를 판독함으로써 (예를 들어 도 2의 ROM(23)으로부터) 수신기의 능력 및 특성을 판단하는 데 DDC 채널을 이용한다. 또한, 송신기는 다양한 클러스터-와이드(cluster-wide) 제어 동작에서의 사용을 위해, 그 자체적인 물리적 장치 어드레스를 판단하는 데 DDC 채널을 사용할 수 있다. 바람직하게는 송신기는 수신기의 복호화 능력 (어떤 것이라도)의 판단에 응답하여 어떤 타입의 암호화를 사용할지 판단하고, 수신기로 선택된 암호화 모드를 통보한다.In data island mode, the transmitter preferably performs the capability of the receiver (eg from the ROM 23 of FIG. 2) by reading the EDID data structure (preferably including the EIA / CEA-861B defined therein in the EDID). And using the DDC channel to determine the characteristics. The transmitter can also use the DDC channel to determine its own physical device address, for use in various cluster-wide control operations. Preferably, the transmitter determines what type of encryption to use in response to the determination of the decryption capability (anything) of the receiver and notifies the receiver of the selected encryption mode.

바람직한 실시예에서, 다음의 단계들이 전송된 데이터의 HDCP 암호화를 갖는 데이터 아일랜드 모드 동작을 시작하기 위해 송신기에 의해 취해져야 한다:In a preferred embodiment, the following steps should be taken by the transmitter to begin data island mode operation with HDCP encryption of the transmitted data:

1. 송신기의 상태는 초기 상태로 리셋된다;1. The state of the transmitter is reset to the initial state;

2. 송신기는 수신기의 EDID 데이터를 판독하여 (예를 들면, EDID 데이터는 DDC 채널을 통해 도 2의 ROM(23)에 저장된다) 수신기가 데이터 아일랜드 모드 동작이 가능한지를 판단한다;2. The transmitter reads the receiver's EDID data (eg, the EDID data is stored in ROM 23 of FIG. 2 via the DDC channel) to determine whether the receiver is capable of data island mode operation;

3. 수신기가 데이터 아일랜드 모드 동작을 할 수 있으면, 송신기는 특수 모드 비트 (예를 들어, 데이터 아일랜드 모드 =1)를 (송신기의 구성 레지스터 내에) 기록한다;3. If the receiver is capable of data island mode operation, the transmitter writes a special mode bit (eg, data island mode = 1) (in the transmitter's configuration register);

4. 송신기는 데이터 아일랜드 패킷을 수신기로 전송한다(예를 들어 널 패킷(Null packet));4. The transmitter sends a data island packet to the receiver (eg a null packet);

5. 송신기는 DDC 채널을 통해 수신기의 레지스터 내의 특수 모드 비트를 판독한다 (예를 들어, 도 14의 레지스터(203) 내의 소정 위치에 있는 데이터 아일랜 드 모드 비트);5. The transmitter reads the special mode bits in the register of the receiver via the DDC channel (eg, the data island mode bits at a location in register 203 of FIG. 14);

6. 수신기의 특수 모드 비트가 설정되면 (예를 들어, 데이터 아일랜드 모드 비트 = 1), 송신기 및 수신기는 단계 7로 간다. 그렇지 않으면, 송신기 및 수신기는 단계 4로 간다;6. If the special mode bit of the receiver is set (eg, data island mode bit = 1), the transmitter and receiver go to step 7. Otherwise, the transmitter and the receiver go to step 4;

7. 여기서, 송신기 및 수신기는 데이터 아일랜드 모드에서 동작한다. 그리고 송신기는 HDCP 인증 절차를 시작한다; 그리고7. Here, the transmitter and receiver operate in data island mode. And the transmitter starts the HDCP authentication procedure; And

8. 7 단계 후에, HDCP 인증이 완료되면, 모든 송신기의 HDCP 엔진이 인에이블 되었다는 것에 응답하여, 송신기는 송신기의 구성 레지스터 내의 비트(예를 들어 비트"HDCP Authenticated(HDCP 인증됨)")를 설정한다.8. After step 7, when HDCP authentication is complete, in response to the HDCP engine of all transmitters being enabled, the transmitter sets a bit in the transmitter's configuration register (eg, bit "HDCP Authenticated"). do.

바람직하게는, 시작하는 동안, 원하지 않는 비디오 출력이 수신기로부터 발생할 수 있는, 송신기가 데이터 아일랜드 모드에 있지만 수신기가 아직 DVI 모드에 있는, 시작하는 동안의 시간이 있기 때문에, 수신기는 비디오 및 오디오 출력을 디스에이블 시킨다.Preferably, during startup, the receiver is configured to provide video and audio output because there is time during startup, where the transmitter is in data island mode but the receiver is still in DVI mode, where unwanted video output may occur from the receiver. Disable it.

도 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)를 통해 수신된 값으로 로딩될 수 있다.13 is a block diagram of a transmitter 100 as a transmitter according to an embodiment of the present invention. Transmitter 100 may use pipelined encryption and other pipeline processing (e.g., reformat, upsampling, and / or color space conversion) to video data D [23: 0] received from an external source. Video subsystem 106 that performs the operation. In general, the video data clock (IDCK, referred to herein as the "pixel clock"), the video data enable signal DE, and the horizontal and vertical sync control signals HSYNC and VSYNC are received together with the video data input from an external source. do. The transmitter 100 is generally configured to operate in response to a pixel clock having a frequency in the range from 25 MHz to 112 MHz. Subsystem 106 encrypts the input video data (or reformatted or otherwise processed version of the input video) using pseudo-random values from cipher engine 104 and stores the encrypted video in the multiplexer. Applies to 1 input. During operation, the cipher engine 104 utilizes the bits in the register 103. The register 103 may be loaded with values received via the interface 101 and / or interface 102.

일반적으로, 인터페이스(101)는 마이크로컨트롤러(예를 들어, 도 2의 마이크로컨트롤러(15))와의 I2C 통신을 위해 연결된다. 또한, 마이크로컨트롤러는 TMDS 링크의 DDC 채널 및 입력 데이터 소스(예를 들어, 비디오 소스)와 연결된다. 인터페이스(101)는 I2C 슬래이브 프로토콜에 정보 및 구성 비트(예를 들어, InfoFrame 비트) 및 다른 비트(예를 들어, HDCP 인증 절차 동안 수신된 키 값)를 수신하도록 하게 하고, 이러한 비트를 레지스터(105 및 103)에 로딩하게 할 수 있다.In general, the interface 101 is connected for I2C communication with a microcontroller (eg, microcontroller 15 of FIG. 2). In addition, the microcontroller is connected to the DDC channel of the TMDS link and an input data source (eg, a video source). Interface 101 allows the I2C slave protocol to receive information and configuration bits (e.g., InfoFrame bits) and other bits (e.g., key values received during the HDCP authentication procedure), and registers these bits in registers ( 105 and 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 사이의 주파수를 갖는) 출력을 사용한다.If the transmitter 100 is implemented as an integrated circuit, the EEPROM, preloaded with key values and authentication bits (used for decryption), is a separate chip within a secure multi-chip module (MCM) that includes both the transmitter 100 and the EEPROM. Can be implemented. An example of such an EEPROM is the EEPROM 14 of FIG. The interface 102 provides an interface between the transmitter 100 and the EEPROM. The interface 102 may extract values from the EEPROM at appropriate times, such as during an HDCP authentication exchange with the receiver. Interface 102 outputs (typically having a frequency between 64 MHz or 51.2 MHz to 76.8 MHz) of ring oscillator 113 to generate a clock (e.g., 100 kHz clock) used for I2C communication with the EEPROM. Use

또한, 송신기(100)는 외부 소스로부터 수신된 오디오 데이터(AUD)에 파이프라인(pipelined) 포맷, 패킷화, 암호화 및 다른 파이프라인 프로세싱을 수행하는 오디오 서브시스템(108)을 포함한다(AUD가 오디오 데이터가 아닌 보조 데이터일 수는 있지만, 여기서는 이것을 간단히 오디오 데이터라 지칭한다). 일반적인 실시예에서, 송신기(100)는 32kHz 내지 48kHz 범위 내의 샘플 레이트(Fs)를 갖는 S/PDIF 포맷으로, 도는 다른 포맷의 어떤 수(예를 들어, 2-채널의 압축되지 않은 PCM 데이터 또는 멀티-채널 데이터를 나타내는 압축된 비트 스트림)로도 오디오 데이터(AUD)를 받아들 일 수 있다. 오디오 기준 클록(MCLK)는 입력 데이터(AUD)와 함께 수신된다. 클록 MCLK (또한 마스터 클록으로 지칭된다)은 바람직한 실시예에서, 256*Fs (또는 384*Fs)의 주파수를 갖는다.Transmitter 100 also includes an audio subsystem 108 that performs pipelined format, packetization, encryption, and other pipeline processing on audio data (AUD) received from an external source (AUD audio It may be auxiliary data rather than data, but this is referred to simply as audio data here). In a typical embodiment, the transmitter 100 is in S / PDIF format with a sample rate (Fs) in the range of 32 kHz to 48 kHz, or any number of other formats (eg, 2-channel uncompressed PCM data or multi Audio data (AUD) can also be accepted as compressed bit streams representing channel data. The audio reference clock MCLK is received with the input data AUD. The clock MCLK (also referred to as the master clock) has a frequency of 256 * Fs (or 384 * Fs) in the preferred embodiment.

메인 PLL(phase lock loop;116)은 픽셀 클록 IDCK의 안정된 버전을 생성한다.The main phase lock loop (PLL) 116 creates a stable version of the pixel clock IDCK.

리셋 회로(112)는 외부 프로세서로부터 리셋 비트를 수신하기 위해 리셋 핀과 연결된다. 송신기(100)는 소정의 값을 갖는 리셋 비트에 응답하여 송신기를 초기 상태로 리셋하도록 구성된다. 테스트 회로(110)는 외부 소스로부터 테스트 모드 비트를 수신하기 위해 테스트 비트와 연결된다. 송신기(100)는 상기 테스트 모드 비트 값에 따라 테스트 모드 또는 노말 동작 모드에서 동작하도록 구성된다.Reset circuit 112 is coupled with a reset pin to receive a reset bit from an external processor. The transmitter 100 is configured to reset the transmitter to an initial state in response to a reset bit having a predetermined value. The test circuit 110 is coupled with the test bits to receive the test mode bits from an external source. The transmitter 100 is configured to operate in a test mode or a normal operation mode according to the test mode bit value.

서브시스템(108)은 (2*128Fs 보다 큰 픽셀 클록 주파수가 제공되는 안정된 픽셀 클록), 클록 MCLK, 또는 MCLK의 배가된 주파수 버전을 사용하여 heldh 데이터를 샘플링 할 수 있다. 서브시스템(108)은 샘플링된 오디오 데이터를 포함하는 패킷을 생성하고, 패킷 내의 데이터를 암호화하고, TERC2 또는 TERC4 인코딩을 이용하여 암호화된 데이터를 인코딩하며, 인코딩되고 암호화된 데이터를 포함하는 패킷들을 멀티플렉서(118)의 제2 입력부로 인가한다. TERC4 인코딩을 수행할 때, 서브시스템(108)은 암호화된 샘플 각각의 4개의 가장 무의미한 비트를 16 개의 "골든 워드" (예를 들어, 도 4의 좌측 칼럼의 8-비트 워드 "AD0-AD15") 중 하나로 인코딩하고, 암호화된 샘플 각각의 4 개의 가장 중요한 비트를 다른 골든 워드로 인코딩한다.Subsystem 108 may sample the heldh data using a (stable pixel clock provided with a pixel clock frequency greater than 2 * 128 Fs), clock MCLK, or a multiplied frequency version of MCLK. Subsystem 108 generates a packet containing the sampled audio data, encrypts the data within the packet, encodes the encrypted data using TERC2 or TERC4 encoding, and multiplexes the packets containing the encoded and encrypted data. To the second input of 118. When performing TERC4 encoding, the subsystem 108 may assign the four most insignificant bits of each of the encrypted samples to sixteen "golden words" (eg, the eight-bit words "AD0-AD15" in the left column of FIG. 4). ) And the four most significant bits of each encrypted sample into another golden word.

또한, 서브시스템(108)은 데이터 아일랜드가 (각각의 데이터는 하나 이상의 패킷을 포함한다) 멀티플렉서(118)에 인가되는 타이밍(DE에 대한)을 판단한다. 서브시스템(108)은 다음을 나타내는 제어 워드를 포함하는 제어 워드들을 데이터 아일랜드와 시-분할-멀티플렉싱(time-division-multiplex)한다: 데이터 아일랜드 프리앰블(예를 들어, 서브시스템(108)은 각 데이터 아일랜드 바로 전에 보조 데이터 프리앰블 워드의 8 픽셀 클록 사이클을 삽입한다), HSYNC 및 VSYNC(예를 들어, 서브시스템(108)은 보조 데이터 프리앰블 워드의 버스트 전에 동기 워드의 12개 이상의 픽셀 클록 사이클을 삽입한다), 리딩 및 트레일링 데이터 아일랜드 가드 밴드(예를 들어, 서브시스템(108)은 각 데이터 아일랜드의 최초 2개 워드로 리딩 가드 밴드 워드의 2 픽셀 클록 사이클과 각 데이터 아일랜드의 마지막 2개 워드로 트레일링 가드 밴드 워드의 2 픽셀 클록 사이클을 삽입한다), 비디오 프리앰블(예를 들 어, 서브시스템(108)은 각 데이터 아일랜드 뒤에 비디오 프리앰블 워드를 삽입한다), 및 비디오 가드 밴드(예를 들어, 서브시스템(108)은 각 비디오 프리앰블 뒤에 비디오 가드 밴드 워드의 2 픽셀 클록 사이클을 삽입한다).Subsystem 108 also determines the timing (with respect to DE) that the data island is applied to multiplexer 118 (each data comprising one or more packets). Subsystem 108 time-division-multiplexes the control words including a control word to indicate a data island: a data island preamble (e.g., subsystem 108 may include each data). Insert 8 pixel clock cycles of the auxiliary data preamble word immediately before the island), HSYNC and VSYNC (eg, subsystem 108 inserts 12 or more pixel clock cycles of the sync word before the burst of auxiliary data preamble words). ), And the leading and trailing data island guard bands (e.g., subsystem 108) trails two pixel clock cycles of leading guard band words to the first two words of each data island and trailing to the last two words of each data island. Insert a two pixel clock cycle of the ring guard band word), the video preamble (e.g., the subsystem 108 is each data isle Insert a video preamble word after the land), and a video guard band (eg, subsystem 108 inserts a two pixel clock cycle of the video guard band word after each video preamble).

DE (인터페이스9107)에서 수신된 DE 신호)를 나타내는 제어 신호에 응답하여, 멀티플렉서(118)는 (DE가 하이 일 때) 서브시스템(106)으로부터의 비디오 데이터 또는 (DE가 로우 일 때) 서브시스템(108)으로부터의 출력을 TMDS 코어 프로세서(114)로 보낸다.In response to the control signal indicative of the DE (DE signal received at interface 9107), multiplexer 118 may display video data from subsystem 106 (when DE is high) or subsystem (when DE is low). The output from 108 is sent to the TMDS core processor 114.

코어 프로세서(114)는 (PLL(116)에 의해 생성된) 안정된 픽셀 클록에 응답하여 동작하고, 상술한 8-비트 데이터 워드를 10-비트 TMDS 코드 워드로 인코딩하는 동작, 데이터를 직렬 변환하는 동작 및 상기 직렬 변환된 인코딩된 데이터( 및 직렬 변환된 픽셀 클록)를 TMDS 링크를 통해 도 14의 수신기(200) (본 발명의 실시예에 따른 수신기)로 전송하는 동작을 수행한다.The core processor 114 operates in response to a stable pixel clock (generated by the PLL 116), encodes the aforementioned 8-bit data word into a 10-bit TMDS code word, and serializes the data. And transmitting the serialized encoded data (and the serialized pixel clock) to a receiver 200 of FIG. 14 (a receiver according to an embodiment of the present invention) via a TMDS link.

도 14에 도시된 바와 같이, 수신기(200)는 TMDS 링크와 연결되어 동작하는 코어 프로세서(214)를 포함한다. 프로세서(214)는 링크의 클록 채널로부터 픽셀 클록을 복원하고, 메인 PLL(216)은 복원된 픽셀 클록에 응답하여 픽셀 클록을 안정화한다. 상기 안정화되고 복원된 픽셀 클록에 응답하여, 프로세서(214)는 상수한 링크를 통해 수신된 데이터의 복-직렬 변환(de-serializing)하는 동작, 복-직렬 변환된 10-비트 TMDS 코드 워드를 디코딩하여 8-비트 코드 워드로 복원하는 동작, 및 상기 8-비트 코드워드를 분할 유닛(splitting unit; 218)로 인가하는 동작을 수행한다. As shown in FIG. 14, the receiver 200 includes a core processor 214 that operates in conjunction with a TMDS link. Processor 214 recovers the pixel clock from the clock channel of the link, and main PLL 216 stabilizes the pixel clock in response to the restored pixel clock. In response to the stabilized and reconstructed pixel clock, processor 214 de-serializing the data received over the constant link, decoding the deserialized 10-bit TMDS code word. Restoring to an 8-bit code word, and applying the 8-bit codeword to a splitting unit 218.                 

유닛(218)은 또한, 프로세서(214)로부터 DE를 나타내는 신호 및 안정화된 복원된 픽셀 클록을 수신한다. 유닛(218)은 프로세서(214)로부터의 코드 워드 스트림 내의 각 데이터 아일랜드 및 각 액티브 비디오 주기의 시작과 끝을 (상술한 타입의 가드 밴드 및 프리앰블 코드 워드를 식별함으로써) 검출하고, (각 데이터 아일랜드의) 각 오디오 데이터 패킷을 파이프라인 오디오 서브시스템(208)으로 발송하고, (비디오 데이터의 모든 버스트들을 포함하는) 남은 데이터를 파이프라인 비디오 서브시스템(206)으로 발송한다. 몇 가지 동작 모드에서, 유닛(218)에 의해 서브시스템(206)으로 인가된 데이터는 HSYNC 및 VSYNC 코드 워드를 포함한다.Unit 218 also receives a signal representing the DE and a stabilized reconstructed pixel clock from processor 214. Unit 218 detects the beginning and end of each data island and each active video period in the code word stream from processor 214 (by identifying guard bands and preamble code words of the type described above), and (each data island I) send each audio data packet to pipeline audio subsystem 208 and send the remaining data (including all bursts of video data) to pipeline video subsystem 206. In some modes of operation, data applied to subsystem 206 by unit 218 includes HSYNC and VSYNC code words.

비디오 서브시스템(206)은 유닛(218)으로부터 수신된 비디오 데이터에 복호화 및 다른 프로세싱(예를 들어, 재 포맷, 업샘플링 또는 서브샘플링 및/또는 칼라 공간 변환)을 수행한다. 서브시스템(206)은 유닛(218)로부터의 비디오 데이터를 (8-비트 복호화된 워드를 생성하기 위해) 사이퍼 엔진(204)으로부터의 의사-랜덤 값을 이용하여 복호화하고, 상기 복호화된 비디오를 다른 프로세싱(예를 들어, 재 포맷, 서브샘플링, 및 칼라 공간 변환)을 수행하기 위해 파이프라인 된 회로로 인가한다. 파이프라인 된 회로는, 일반적으로 최종 재-포맷 후에, 대응하는 DE, HSYNC 및 VSYNC 신호 및 픽셀 클록과 함께, 복호화되고 프로세싱 된 비디오 비트(Q[23:0])를 출력한다. 한편, 서브시스템(206)은 또한 8-비트의 복호화되고 프로세싱 된 비디오 워드에 응답하여, 레드, 그린, 및 블루 칼라 요소 신호 또는 휘도 및 색차 신호일 수 있는, 아날로그 비디오 신호(AnRPr, AnGY, 및 AnBPb)를 생성하고 출력하는 디지털-아날로그 변환기를 포함한다. 동작 동안에, 사이퍼 엔진(204)은 레지스터(203) 내의 비트들을 이용한다. 레지스터(203)에는 인터페이스(201) 및/또는 인터페이스(202)를 통해 수신된 값이 로딩될 수 있다.Video subsystem 206 performs decoding and other processing (eg, reformat, upsampling or subsampling, and / or color space conversion) on the video data received from unit 218. Subsystem 206 decodes the video data from unit 218 using a pseudo-random value from cypher engine 204 (to generate an 8-bit decoded word), and decodes the decoded video to another. Apply to pipelined circuitry to perform processing (eg, reformatting, subsampling, and color space conversion). The pipelined circuit generally outputs the decoded and processed video bits Q [23: 0] with the corresponding DE, HSYNC and VSYNC signals and pixel clock after the last reformat. Subsystem 206, on the other hand, is also an analog video signal (AnRPr, AnGY, and AnBPb), which may be a red, green, and blue color element signal or a luminance and chrominance signal, in response to an 8-bit decoded and processed video word. Digital-to-analog converter for generating and outputting During operation, the cipher engine 204 uses the bits in the register 203. Register 203 may be loaded with values received through interface 201 and / or interface 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 사이의 주파수를 갖는) 출력을 사용한다.If the receiver 200 is implemented as an integrated circuit, the EEPROM preloaded with key values and authentication bits (used for decryption) is a separate chip within a secure multi-chip module (MCM) that includes both the receiver 200 and the EEPROM. Can be implemented. An example of such an EEPROM is the EEPROM 24 of FIG. The interface 202 provides an interface between the receiver 200 and the EEPROM. Interface 202 may extract values from EEPROM at appropriate times, such as during an HDCP authentication exchange with a transmitter. Interface 202 uses the output of ring oscillator 213 (typically having a frequency between 64 MHz or 51.2 MHz to 76.8 MHz) to generate a clock that is used for I2C communication with the EEPROM.

인터페이스(201)는 TMDS 링크의 DDC 채널과 연결될 수 있고, DDC 채널을 통해 송신기와의 통신을 위해 (예를 들어, DDC 채널을 통해 송신기로부터 수신된 키 값을 레지스터(203)에 로딩하는 것을 포함하는 HDCP 인증을 수행하기 위해) I2C 슬래이브 프로토콜을 구현할 수 있다.The interface 201 may be coupled with the DDC channel of the TMDS link, and includes loading the key value received from the transmitter into the register 203 for communication with the transmitter via the DDC channel (eg, via the DDC channel). I2C slave protocol can be implemented to perform HDCP authentication.

한편, 수신기(200)가 (송신기(100)로부터 데이터를 수신하도록 구성된 것 이 에외, 다른 수신기로 데이터를 전송하는 송신기로서 동작하도록 구성된) 중계기(repeater) 일 때, 수신기(200)는 인터페이스(207)를 포함한다. 인터페이스(207)는 호스트 장치와 연결될 수 있고, 정보 및 구성 비트 및 이러한 비트를 레지스터(205 및 203)에 로딩하기 위한 I2C 슬래이브 프로토콜을 구현할 수 있다. 적절한 시기에(즉, 소정 상태, 정보 또는 에러 조건에 응답하여), 인터럽트(INT)가 레지스터(205)로부터 호스트 장치로 인가되어 소프트웨어 처리를 요구한다.On the other hand, when the receiver 200 is a repeater (configured to operate as a transmitter for transmitting data to another receiver, in addition to being configured to receive data from the transmitter 100), the receiver 200 is an interface 207 ). The interface 207 can be coupled with a host device and can implement the information and configuration bits and the I2C slave protocol for loading these bits into registers 205 and 203. At the appropriate time (ie, in response to a predetermined state, information, or error condition), an interrupt INT is applied from the register 205 to the host device to request software processing.

수신기(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)을(출력 오디오 데이터와 함께) 인가한다.Receiver 200 also includes a pipelined audio subsystem 208 for receiving and processing audio data packets from unit 218. Subsystem 208 decodes the golden words in the packet to determine the 8-bit words represented by each pair of golden words (when the transmitter used the TERC4 encoding method to encode the audio data), and the transmitter transmits the audio data. Determine the 4-bit word represented by each pair of golden words). Subsystem 208 also decodes the decoded audio samples (using pseudo-random bits from the cipher engine 204), performs error correction on the decoded and decoded samples, and removes the error- from the packets. Unpack the corrected, decoded and decoded samples (and send configuration and status information from the packet to the appropriate registers), and perform other processing on the unpacked audio samples (e.g., S / PDIF and Audio data organization for the I 2 S output engine, processing the organized data of one or both of these engines to produce output data in either or both of the S / PDIF or I 2 S format). In general, subsystem 208 may output audio data having any number of different formats (eg, as two-channel uncompressed PCM data or as a compressed bitstream representing multi-channel data). ). In another mode of operation, the subsystem 208 may include one or more bit clocks (SCK) whose frequency is an audio bit rate, an audio reference clock (MCLK), which is a reconstructed version of the MCLK clock used by the transmitter 100, and two audio channels. A serial data output clock SDO and a word select clock WS (along with the output audio data) used for demultiplexing the time-division multiplexed output audio data stream, are applied.

메인 PLL(216)은 인터페이스(214) 및 수신기(200)의 다른 요소에 의해 사용되기 위한, TMDS 링크의 클록 채널로부터 복원된 픽셀 클록의 안정화된 버전을 생성한다.The main PLL 216 generates a stabilized version of the pixel clock recovered from the clock channel of the TMDS link for use by the interface 214 and other elements of the receiver 200.

리셋 회로(212)는 외부 프로세서로부터 리셋 비트를 수신하기 위해 리셋 핀과 연결된다. 수신기(200)는 소정의 값을 갖는 리셋 비트에 응답하여 수신기를 초기 상태로 리셋하도록 구성된다. 테스트 회로(210)는 외부 소스로부터 테스트 모드 비트를 수신하기 위해 테스트 비트와 연결된다. 수신기(200)는 상기 테스트 모드 비트 값에 따라 테스트 모드 또는 노말 동작 모드 중 한 모드에서 동작하도록 구성된다.Reset circuit 212 is coupled with a reset pin to receive a reset bit from an external processor. The receiver 200 is configured to reset the receiver to an initial state in response to a reset bit having a predetermined value. The test circuit 210 is coupled with the test bits to receive the test mode bits from an external source. The receiver 200 is configured to operate in one of the test mode and the normal operation mode according to the test mode bit value.

일반적으로, 본 발명의 실시예에 따른 시스템에 사용되는 송신기 및 수신기 각각은 상세한 설명의 내용에 충족되도록 제작된다. 바람직하게는, 송신기 및 수신기 각각은 상기 명세서에 따라 효과적으로 테스트될 수 있는 방법으로 제작된다.In general, each transmitter and receiver used in a system according to an embodiment of the present invention is designed to meet the contents of the detailed description. Preferably, each of the transmitter and receiver is fabricated in a way that can be effectively tested according to the above specification.

예를 들면, 본 발명에 따른 실시예들에서, 본 발명에 따른 송신기는 테스트 패턴 생성기(예를 들어, 도 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)를 포함하고, 양 패턴 생성기는 동일한 초기 상태 (테스트 모드 동작 동안)에서 시작하여 테스트 모드 동작 동안 동일한 의사-랜덤 테스트 패턴을 생성한다.For example, in embodiments according to the present invention, the transmitter according to the present invention includes a test pattern generator (eg, the test pattern generator 119 of the transmitter 100 of FIG. 13) and according to the present invention. The receiver includes the same test pattern generator (eg, test circuit 210 of receiver 200 of FIG. 14). The test pattern generator in the receiver can preferably be controlled by the transmitter in test mode or by the test pattern generator in the transmitter, and the receiver can be individually controlled (eg, by a host device) to It is possible to detect the error rate on the serial link between receivers. For example, in a test mode, the test pattern generator 119 of the transmitter 100 applies test data through the multiplexer 118 to the core processor 114, and the processor 114 encodes the test data to encode the test data. The test data to the receiver 200 through the TMDS link. In the test mode, the receiver 200 receives and decodes the data and applies the reconstructed data to the test circuit 210. The error detection and accumulation logic in the test circuit 210 compares the recovered data with test data generated by the test pattern generator of the circuit 210. The test result, including the measured error rate of the recovered test data, may be re-transmitted to the transmitter 100 via the link's DDC channel (eg, via interface 201), and / or the hose device May be applied (eg, via interface 207). Preferably, the test pattern generator in the transmitter (e.g., pattern generator 119) and the same pattern generator in the receiver comprise a linear feedback shift register (LFSR) that generates a pseudo-random test pattern, and both pattern generators Start in the same initial state (during test mode operation) and generate the same pseudo-random test pattern during test mode operation.

DDC 채널을 이 테스트 모드(또는 다른 테스트 모드 동작) 동안 백-채널로 이용하는 것은 송신기(예를 들어, 도 2의 마이크로컨트롤러(15))가 수신기의 테스트 패턴 생성기 및 에러 검출 및 누적 논리부의 상태를 물을 수 있게 한다. 바람직하게는 송신기는 또한 DDC 채널 또는 다른 채널을 통해 수신기의 테스트 모드 동작을 제어할 수 있다. 테스트 모드 동작 동안 DDC 채널(또는 시리얼 링크의 다른 채널)을 에러-검출 백-채널로 이용하는 것은 송신기(예를 들어, 도 2의 마이크로컨트롤러(15))가 송신기의 하나 이상의 파라미터를 바꿀 수 있게 하고, 송신기 파라미터 세트 각각으로부터의 발생하는 에러 레이트를 (수신기에서) 검출할 수 있게 한다. 따라서, 송신기는 링크의 신뢰성을 동작 파라미터의 다양한 세트의 기능으로 판단할 수 있고, 송신기는 동작 파라미터를 최적화하여 수신기에서의 에러 레이트를 줄이거나 최소화할 수 있다.The use of the DDC channel as a back-channel during this test mode (or other test mode operation) allows the transmitter (e.g., microcontroller 15 of Figure 2) to determine the state of the receiver's test pattern generator and error detection and accumulation logic. Allow to water. Preferably, the transmitter can also control test mode operation of the receiver via the DDC channel or other channel. Using the DDC channel (or other channel of the serial link) as an error-detecting back-channel during test mode operation allows the transmitter (e.g., microcontroller 15 of FIG. 2) to change one or more parameters of the transmitter. It is possible to detect (at the receiver) the error rate occurring from each of the transmitter parameter sets. Thus, the transmitter can determine the reliability of the link as a function of various sets of operating parameters, and the transmitter can optimize the operating parameters to reduce or minimize the error rate at the receiver.

바람직하게는, 본 발명에 따른 수신기 및 본 발명에 따른 송신기는 테스트 핀(도 13의 테스트 회로(110) 또는 도 14의 테스트 회로(210)와 연결된 핀의 인가를 통해 인에이블된 테스트 특성의 로버스트 세트를 지원하도록 구현된다. 개별적인 테스트 모드는 테스트 모드 동작 동안 테스트 수정 핀으로 재-설계된 입력 가능한 핀 또는 레지스터 비트를 통해 선택될 수 있다. 한편, 테스트 모드 인에이블링은 예를 들어 I2C 인터페이스(도 14의 인터페이스(207) 또는 도 13의 인터페이스(107) 등의)를 통해 비트를 레지스터(예를 들어, 도 14의 수신기(200)의 레지스터(205) 또는 도 13의 송신기(100)의 레지스터(105))로 비트를 로딩함으로써 달성될 수 있다. 레지스터 비트의 로딩을 통한 테스트 모드 인에이블링은 테스트 모드를 인에이블 시키기 위해 더 큰 세트의 벡터를 요구하지만, 이것은 송신기 또는 수신기가 더 적은 입력 핀으로 설게될 수 있게 한다. 8-비트 테스트 모드 레지 스터 64 개의 다른 테스트 모드를 가능하게 한다.Preferably, the receiver according to the invention and the transmitter according to the invention have a rover of test characteristics enabled through the application of test pins (pins connected with the test circuit 110 of FIG. 13 or the test circuit 210 of FIG. 14). The individual test modes can be selected via inputable pins or register bits re-designed with test modification pins during test mode operation, while test mode enabling may, for example, include an I2C interface ( Register the bits via the interface 207 of FIG. 14 or the interface 107 of FIG. 13 (eg, the register 205 of the receiver 200 of FIG. 14 or the register 100 of the transmitter 100 of FIG. This can be accomplished by loading the bits into 105. Enabling test mode through loading of register bits requires a larger set of vectors to enable the test mode. However, this makes it possible to be seolge to the transmitter or receiver fewer input pins to enable the 8-bit test mode register 64 different test modes.

바람직하게는, 테스트 모드는 로직 테스트(예를 들어, 풀 스캔), EEPROM 테스트(예를 들어, 체크섬(checksum) BIST, 또는 빌트-인-셀프-테스트(built-in-self-test)), TMDS 코어 테스트(예를 들어, 코어(114 또는 214)가 분리되고 그런 다음 테스트된다), DAC 테스트(예를 들어, 수신기 DAC 회로가 분리되고 그런 다음 테스트 패턴을 이용하여 테스트된다), PLL 테스트, 링 오실레이터 테스트, 및 하나 이상의 디버그 테스트(예를 들어, 내부 신호는 입/출력 핀들로 멀티플렉싱 된다)를 포함한다.Preferably, the test mode is a logic test (e.g., full scan), an EEPROM test (e.g., checksum BIST, or a built-in-self-test), TMDS core test (e.g., core 114 or 214 is isolated and then tested), DAC test (e.g., receiver DAC circuit is isolated and then tested using a test pattern), PLL test, Ring oscillator tests, and one or more debug tests (eg, internal signals are multiplexed with input / output pins).

일반적으로, 풀 스캔 로직 테스트는 전용의 입력 및 출력 핀을 필요로 하고, 이들은 로직 테스트 모드 동작 동안 테스트 핀으로 구성된다. 일반적으로, 체크섬-기본의 BIST 방법은 외부 키 EEPROM(예를 들어, 도 2의 EEPROM(14) 또는 EEPROM(24))을 테스트하도록 구현된다. 테스트 회로는 인에이블 되면, EEPROM의 컨텐츠를 판독하고, 체크섬 계산을 수행하고, 그런 다음 EEPROM으로부터 판독된 체크섬과 비교한다. 바람직하게는, 단일 Pass/Fail 인디케이터만이 테스트 회로에 인가되어, 보안을 유지한다.In general, full scan logic tests require dedicated input and output pins, which are configured as test pins during logic test mode operation. In general, the checksum-based BIST method is implemented to test foreign key EEPROM (eg, EEPROM 14 or EEPROM 24 of FIG. 2). When enabled, the test circuit reads the contents of the EEPROM, performs a checksum calculation, and then compares it with the checksum read from the EEPROM. Preferably, only a single Pass / Fail indicator is applied to the test circuit to maintain security.

본 발명에 따른 수신기의 일반적인 TMDS 코어 테스트에서, (도 14의) 코어(214)의 디지털 출력은 회로(206 또는 208)의 출력으로 직접 멀티플렉싱 된다. 바람직하게는, 재생성된 픽셀 클록 또한 아이 다이어그램 테스팅(eye diagram testing)을 가능하게 하기 위해 출력 핀으로 멀티플렉싱 될 수 있다. 본 발명에 따른 수신기의 일반적인 DAC 테스트에서, 입력 클록 핀은 테스트 클록을 (예를 들어 회로(206 또는 208) 내의) DAC 에 직접 제공하여 테스트되게 하여, 외부 장치가 DAC의 클록을 직접 제어할 수 있다. 그러면, 카운터 및 상태 머신을 통해, 특정 테스트 패턴이 DAC로 적용되어 잘-제어된 테스트를 제공한다. 일반적인 PLL 테스트에서, (테스트될 각 PLL으로부터) LOCK 인디케이터는 출력 핀으로 멀티플렉싱 된다. 일반적인 링 오실레이터 테스트에서, 테스트되는 링 오실레이터(예를 들어, 링 오실레이터(113 또는 213))의 클록 신호는 출력 핀으로 멀티플렉싱 된다.In a typical TMDS core test of the receiver according to the present invention, the digital output of the core 214 (in FIG. 14) is multiplexed directly to the output of the circuit 206 or 208. Preferably, the regenerated pixel clock can also be multiplexed to the output pin to enable eye diagram testing. In a typical DAC test of a receiver in accordance with the present invention, the input clock pin provides a test clock directly to the DAC (e.g. in circuit 206 or 208) for testing so that an external device can directly control the clock of the DAC. have. Then, through counters and state machines, specific test patterns are applied to the DAC to provide well-controlled tests. In a typical PLL test, the LOCK indicator (from each PLL to be tested) is multiplexed to the output pin. In a typical ring oscillator test, the clock signal of the ring oscillator being tested (eg, ring oscillator 113 or 213) is multiplexed to the output pin.

상술한 바와 같이, 실시예들에서, 본 발명에 따른 수신기는 제어 데이터 주기 (즉, 데이터 아일랜드 및 액티브 비디오 주기 동안이 아닌) 동안 (송신기에 의해) 시리얼 링크를 통해 전송된 (프리앰블 코드 워드를 포함하는) 제어 신호에 응답한다. 이러한 제어 신호 각각은 비트 패턴(예를 들어, 비트 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 코드 워드의 패턴을 갖고 있다고 판단함에 의해서만 데이터 아일랜드 프리앰블을 인식한다.As described above, in embodiments, the receiver according to the present invention includes a preamble code word transmitted by the serial link (by the transmitter) during the control data period (ie not during the data island and active video period). In response to a control signal. Each of these control signals is determined by a bit pattern (eg, a 10-bit TMDS code word representing bits CTL0 and CTL1, or CTL2 and CTL3). In a preferred embodiment, the receiver responds to the control signal only when it detects the minimum number of repetitions of the bit pattern, or the bit pattern (or the minimum number of repeated repetitions of the bit pattern) within a predetermined area (time window) of the control data period. Respond to control signals only when detected. In general, the receiver is configured to detect whether Y or more received bit patterns within the last X pixel clock cycle have a predetermined pattern Z matched. The receiver then responds to the control signal determined by the pattern Z. For example, the receiver preferably matches, within the last 8 pixel cycles, a matched 10-bit transition-maximization in which at least eight bit patterns received on the channel CH1 represent control bit values CTL0, CTL1 = 1,0. Has a pattern of TMDS code words, and at least 8 bit patterns received on channel CH2 have a pattern of matched 10-bit transition-maximization TMDS code words representing control bit values CTL2, CTL3 = 0,0. Recognize the video preamble only by judging. As another example, the receiver preferably matches, within the last 8 pixel cycles, a matched 10-bit transition-maximization TMDS in which at least 8 bit patterns received on the channel CH1 represent control bit values CTL0, CTL1 = 1,0. Has a pattern of code words, and determines that at least eight bit patterns received on channel CH2 have a pattern of matched 10-bit transition-maximization TMDS code words representing control bit values CTL2, CTL3 = 1,0 Only by recognizing the data island preamble.

바람직한 실시예에서, 본 발명에 따른 수신기는, 송신기로부터 수신기로의 (일반적으로 롱 케이블을 통해) 전송 동안 신호가 손상되는 열화를 보상하기 위해 설계된 방법으로 TMDS 링크의 채널(CH0, CH1 및 CH2) 상의 입력 신호를 필터링 함으로써, 균등화(이퀄라이제이션;equalization)을 구현한다. 예를 들어, 도 14의 수신기9200)의 코어 프로세서(214)의 바람직한 구현은 이러한 필터를 포함한다. 이퀄라이제이션 필터를 설계하기 위해, 전송되는 케이블에 의해 어떤 "케이블 필터"가 효과적으로 신호에 적용되는지를 판단하기 위해 케이블의 필터링 효과가 분석되고, 상기 케이블 필터의 반전된 버전이 이퀄라이제이션 필터로 선택된다. 따라서, 이퀄라이제이션 필터는 상기 케이블 필터를 보상한다(그리고 바람직하게는 소거한다).In a preferred embodiment, the receiver according to the invention is a channel (CH0, CH1 and CH2) of the TMDS link in a manner designed to compensate for the degradation of the signal during transmission (generally through a long cable) from the transmitter to the receiver. By filtering the input signal of the phase, equalization is realized. For example, the preferred implementation of core processor 214 of receiver 9200 of FIG. 14 includes such a filter. To design an equalization filter, the filtering effect of the cable is analyzed to determine which "cable filter" is effectively applied to the signal by the transmitted cable, and an inverted version of the cable filter is selected as an equalization filter. Thus, an equalization filter compensates for (and preferably cancels out) the cable filter.

본 발명에 따른 시스템의 몇 가지 바람직한 실시예에서는 전송된 보조 및 비디오 데이터의 복원 도중에 수신기 내에 이퀄라이제이션 필터를 이용할 뿐만 아니라, 전송을 위한 보조 데이터를 인코딩 하기 위해 (상술한 코드 워드의 풀 세트의 서브세트인) "골든 워드"를 사용하며, 양 기술은 모두 복원된 데이터의 에러 레이트를 감소시키는 데 효과적이다.Some preferred embodiments of the system according to the invention use not only an equalization filter in the receiver during the restoration of transmitted auxiliary and video data, but also a subset of the full set of code words described above to encode auxiliary data for transmission. ), "Golden Word", both techniques are effective in reducing the error rate of the recovered data.

바람직한 실시예에서, 본 발명에 따른 수신기는 데이터 아일랜드 도중 전송된 적어도 오디오 데이터 (또는 다른 보조 데이터) 내의 검출된 에러를 정정하기 위해, 그리고 또한 선택적으로 액티브 비디오 주기 동안 전송된 비디오 데이터 내의 검출된 에러를 정정하기 위해, 에러 정정 회로(예를 들어 도 14의 수신기(200)의 회로(22))를 포함한다.In a preferred embodiment, the receiver according to the invention is adapted to correct a detected error in at least audio data (or other auxiliary data) transmitted during the data island, and optionally also in the video data transmitted during the active video period. Error correction circuitry (e. G. Circuitry 22 of receiver 200 of FIG. 14).

예를 들어, 데이터 아일랜드에서 전송된 패킷의 코드 워드 각각은 반복적으로 전송될 수 있다. 세 번 반복된 코딩과 함께 (여기서 전송될 각 코드 워드는 3 개의 연속된 클록 사이클 동안 세 번 전송된다), 패킷화된 데이터는, 예를 들어 블랭크 구간을 정의하는 특정 아웃-오브-밴드 워드를 식별하는 TMDS 링크의 비디오 채널에서 종래에 이용된 동일 기술을 사용하여, 신뢰성을 갖고 복원될 수 있다. 세 번 반복된 인코딩된 데이터의 전송 도중 일어난 에러들은 수신기 내에서 "버플 정정" 에러 정정을 구현함으로써 일반적으로 정정될 수 있다.For example, each code word of a packet transmitted on a data island may be transmitted repeatedly. With three repeated codings (where each code word to be transmitted is transmitted three times for three consecutive clock cycles), the packetized data may, for example, contain a particular out-of-band word that defines a blank interval. Using the same techniques conventionally used in the video channel of the TMDS link to identify, it can be reliably restored. Errors that occur during the transmission of encoded data that has been repeated three times can generally be corrected by implementing "buffer correction" error correction in the receiver.

버블 정정은 (단일 클록 폭을 갖는) 의심되는 데이터 값을 그 이웃하는 데이터 값으로 제거하고 대체하는 것이다. 다음으로 하나의 코드 워드가 클록 사이클 단위로 전송되고, 세 번 반복된 코딩이 이용되고(각각 다른 코드 워드가 세 번 전송된다), 수신기가 10-비트 TMDS 코드 워드의 (각 10-비트 TMDS 코드 워드는 4-비트 워드로 디코딩된다) 각 시퀀스에 응답하여 4 개의 단일 시퀀스를 생성한다고 가정하는 버블 정정의 예를 설명한다. 이 예에서, 수신기가 동일한 N 번째 비트 및 N+2 번째 비트가 다른 비트에 의해 분리(즉, N+1 번째 비트는 N 번째 비트와 다르다) 되었음을 (복원된 단일 비트의 4 개 시퀀스 중 어느 하나에서)식별하는 경우, 수신기 내의 에러 정정 회로는 가운데 비트(N+1 번째 비트)를 이웃하는 비트 중 어느 하나(즉, N번째 비트)로 대체하고 버블 정정을 완료한다.Bubble correction is the removal and replacement of suspect data values (with a single clock width) with their neighboring data values. Next, one code word is transmitted in clock cycles, three repeated codings are used (each different code word is transmitted three times), and the receiver has a 10-bit TMDS code word (each 10-bit TMDS code). The word is decoded into a 4-bit word). An example of bubble correction is assumed to produce four single sequences in response to each sequence. In this example, the receiver indicates that the same Nth bit and the N + 2th bit are separated by another bit (ie, the N + 1th bit is different from the Nth bit) (any of four sequences of restored single bits). When identifying, the error correction circuit in the receiver replaces the middle bit (N + 1 th bit) with any one of the neighboring bits (ie, the Nth bit) and completes the bubble correction.

버블 정정이 수행된 뒤, 단일의 복원된 보조 데이터 비트의 각 시퀀스에 대한 샘플링 포인트는, TMDS 인코딩된 비디오 데이터 스트림의 블랭크 구간을 식별하기 위해 TMDS 수신기의 디지털 PLL에 의해 종래의 방법으로 수행된 것과 실질적으로 동일한 방법으로 결정될 수 있다. 그러나, 보조 데이터에 대한 샘플링 포인트를 검출하는 회로는 일반적으로 TMDS 인코딩된 비디오 데이트 스트림의 블랭크 구간의 식별 동안 TMDS 수신기의 디지털 PLL 만큼 빨리 동작할 필요는 없다. 또한, 이것은 보조 데이터의 복원 도중 최적 샘플링 포인트를 선택하기 위해 디지털 PLL을 반드시 이용할 필요도 없다. 오히려, 발명자들은 어떤 천이(예를 들어 데이터 아일랜드의 시작) 후의 (단일의 복원된 보조 데이터 비트의 각 시퀀스의) 두 번째 샘플과 그 후의 다음 천이 전까지의 모든 세 번째 샘플을 선택하는 것이 일반적으로 단순히 충분하다는 것을 알고 있다.After bubble correction is performed, the sampling point for each sequence of single recovered auxiliary data bits is the same as that performed by conventional methods by the digital PLL of the TMDS receiver to identify the blank period of the TMDS encoded video data stream. Can be determined in substantially the same manner. However, circuitry for detecting sampling points for auxiliary data generally does not need to operate as fast as the digital PLL of the TMDS receiver during identification of the blank period of the TMDS encoded video data stream. In addition, this does not necessarily require the use of a digital PLL to select the optimal sampling point during restoration of the auxiliary data. Rather, the inventors generally simply select a second sample (of each sequence of a single recovered auxiliary data bit) after some transition (e.g., the beginning of a data island) and all third samples until the next transition thereafter. I know it's enough.

다른 실시예에서, 본 발명에 따른 수신기는 복원된 데이터에서 검출된 에러를 숨기기 위해 보간법(interpolation)을 이용하는 에러 정정 회로를 포함한다. 보간 기술의 어떤 변형도 고차 커브-피팅(curve-fitting)을 이용하는 선형 보간 기술을 포함하여 구현될 수 있다.In another embodiment, a receiver in accordance with the present invention includes an error correction circuit that uses interpolation to hide errors detected in the recovered data. Any variation of the interpolation technique can be implemented including linear interpolation techniques using higher order curve-fitting.

바람직한 실시예에서, 본 발명에 따른 송신기는 데이터 아일랜드가 다른 신 호(예를 들어 리-키잉하는 사이퍼 엔진에 이용되는 신호)의 전송과 충돌하지 않고, 암호 프로토콜(예를 들어 HDCP)이 고려되도록 두 액티브 비디오 주기 사이에 전송될 각 데이터 아일랜드의 임시적 배치와 존속시간을 결정한다. 바람직한 실시예에서, 송신기의 데이터 아일랜드 포맷에 대해 다음의 제약을 따른다: 데이터 아일랜드는 하나 이상의 패킷을 포함해야 한다(따라서, 그 최소 존속시간은 36 픽셀 클록 사이클이다); 각 아일랜드는 정수의 패킷을 포함해야 한다; 그리고 (데이터 아일랜드 내의 데이터의 신뢰성을 보증하기 위해) 어떤 데이터 아일랜드도 14 개를 초과하는 패킷을 포함할 수 없다.In a preferred embodiment, the transmitter according to the invention ensures that the cryptographic protocol (e.g. HDCP) is taken into account without the data islands colliding with the transmission of other signals (e.g., signals used by the re-keying cipher engine). Determine the temporary placement and duration of each data island to be transmitted between two active video cycles. In a preferred embodiment, the following constraints are imposed on the transmitter's data island format: The data island must contain one or more packets (thus the minimum duration is 36 pixel clock cycles); Each island must contain an integer number of packets; And no data island can contain more than 14 packets (to ensure the reliability of the data in the data island).

바람직하게는, 상기 송신기는, 이전 라인 또는 프레임으로부터, (전송을 위해 인코딩될) 비디오 프레임의 시퀀스의 액티브 비디오 주기 및 블랭크 주기가 어디에서 일어나는지를 자동적으로 판단하도록 구성되어, 상기 송신기는 이들 주기들이 전송될 프레임 및 라인의 시퀀스로 언제 발생하는 지와 다른 이벤트(HDCP 리-키잉 이벤트 등)가 연속하는 프레임 및 라인 내에 언제 일어날 필요가 있는지를 알게 된다. 이러한 블랭크 주기의 자동 검출은 송신기가 데이터 아일랜드(이것은 다음 액티브 비디오 주기 또는 다음 HDCP 리-키잉 또는 다른 필요한 이벤트 전에 최소 44 픽셀 클록 사이클을 요구하고: 44 픽셀 클록 사이클 = 패킷에 대한 32 픽셀 사이클 + 데이터 아일랜드 가드 밴드 워드에 대한 4 클록 사이클 + 비디오 프리앰블 코드 워드에 대한 8 픽셀 클록 사이클, 필요한 동기 신호 모두가 전송되었다고 가정한다)를 초기화 할 것이지, 또는 다른 패킷을 갖는 데이터 아일랜드(이것은 최소 42 픽셀 클록 사이클을 요구한다; 42 픽셀 클록 사이클 = 패킷에 대한 32 픽셀 사 이클 + 트레일링 가드 밴드 워드에 대한 2 클록 사이클 + 비디오 프리앰블 코드 워드에 대한 8 픽셀 클록 사이클)를 지속할 것인지를 결정하게 한다. 만일 송신기는 다른 액티브 비디오 주기(또는 다른 필요한 이벤트)가 데이터 아일랜드(또는 추가적 패킷)의 전송이 완료될 수 있기 전에 시작된다고 예상하면, 송신기는 일반적으로 데이터 아일랜드의 전송(또는 데이터 아일랜드 내의 다른 패킷의 전송)을 연기한다. 새로운 라인의 비디오 데이터가 비디오 소스로부터 송신기로 인가될 때 송신기가 데이터 아일랜드를 전송하고 있었다면, 송신기는 데이터 아일랜드를 완료할 수 있을 때까지 소스로부터의 입력되는 비디오 픽셀을 무시하고, (바람직한 실시예에서, 제어 데이터 주기에서 12 픽셀 클록 사이클을 요구하는) 필수적인 동기 신호를 전송하고, 그런 다음 비디오 리딩 가드 밴드를 전송하고, 그런 다음에야 인코딩된 비디오 픽셀을 전송할 필요가 있다. 물론, 송신기가 디스플레이 되려 했던 픽셀을 버리는 것은 바람직하지 못하다.Advantageously, the transmitter is configured to automatically determine, from the previous line or frame, where the active video period and the blank period of the sequence of video frames (to be encoded for transmission) occur where: It is known when a sequence of frames and lines to be transmitted occurs and when other events (such as HDCP re-keying events) need to occur within consecutive frames and lines. Automatic detection of such blank periods requires that the transmitter require a minimum of 44 pixel clock cycles before the data island (this is the next active video cycle or the next HDCP re-keying or other necessary event: 44 pixel clock cycles = 32 pixel cycles for the packet + data). 4 clock cycles for the island guard band word + 8 pixel clock cycles for the video preamble code word, assuming all necessary sync signals have been transmitted), or a data island with another packet (this is at least 42 pixel clock cycles) 42 pixel clock cycles = 32 pixel cycles for the packet + 2 clock cycles for the trailing guard band word + 8 pixel clock cycles for the video preamble code word). If the transmitter expects another active video period (or other necessary event) to begin before the transmission of the data island (or additional packet) can be completed, then the transmitter will generally transmit the transmission of the data island (or other packets in the data island). Postpone). If the transmitter was transmitting a data island when a new line of video data was applied from the video source to the transmitter, the transmitter ignores the incoming video pixel from the source until it can complete the data island (in the preferred embodiment) It is necessary to transmit the necessary synchronization signal, which requires 12 pixel clock cycles in the control data period, and then to transmit the video leading guard band, and then to transmit the encoded video pixel. Of course, it is undesirable to discard the pixel that the transmitter was about to display.

다른 바람직한 실시예에서, 송신기는 블랭크 구간 존속시간의 레지스터 지시에 기초하여 데이터 아일랜드 전송을 초기화하도록 구성된다. 이러한 실시예에서, 송신기는 비디오 프레임 시퀀스의 액티브 비디오 및 블랭크 주기가 전송될 서브시퀀스 프레임 및 라인으로) 언제 발생하는 지와 다른 필요한 이벤트(HDCP 리-키잉 이벤트 등의)가 서브시퀀트 프레임 및 라인의 전송 도중 발생해야 하는지를 나타내는 비트를 저장할 수 있는 레지스터(예를 들어, 도 13의 레지스터(105))를 포함한다. 호스트 장치(예를 들어 비디오 소스)는 중요한 값을 나타내는 비트를 레지스터로 로딩할 수 있다. 이것은 송신기가 이전의 라인 또는 프레임으로부터 비디오 프 레임의 시퀀스의 액티브 비디오 및 블랭크 주기 및 중요한 이벤트가 언제 발생(이전의 문단에서 설명된 실시예에서와 같이)하는 지를 자동적으로 판단하기 위한 회로를 포함해야하는 필요성을 제거한다. 레지스터 내의 비트에 의해 나타내는 중요한 값은 예를 들어, HSYNC 의 발생 또는 비디오 소스로부터 Video DE의 라이징 에지(액티브 비디오 주기의 시작)의 (송신기로의) 인가 등의, 그 타이밍이 송신기에 알려진 몇 가지 이벤트에 연결될 필요가 있다. 예를 들어, 송신기는 Video De의 라이징 에지가 HSYNC 의 라이징 에지 (또는 Video De의 라이징 또는 폴링) 뒤의 X 픽셀 다음에 발생하는 것을 나타내는 비트를 저장하는 레지스터를 포함할 수 있다. 송신기가 HSYNC의 다음 라이징 에지(또는 비디오 De의 다음 라이징 또는 폴링)를 알게되면, 송신기 내의 카운터는 카운트하기 시작한다. 송신기가 데이터 아일랜드를 전송하길 원한다고 결정하면, 송신기는 카운터를 체크하고 상기 현재 카운터로부터 전체 데이터 아일랜드를 전송하기에 현재 시간과 비디오 DE의 다음 예상되는 라이징 에지 (또는 다음의 다른 필요한 이벤트) 사이에 충분한 픽셀 클록 사이클이 있는지의 여부를 판단한다.In another preferred embodiment, the transmitter is configured to initialize the data island transmission based on the register indication of the blank interval duration time. In such an embodiment, the transmitter may determine when the active video and blank periods of the video frame sequence occur in the subsequence frames and lines to be transmitted and other necessary events (such as HDCP re-keying events) in the subsequence frames and lines. And a register (e.g., register 105 in FIG. 13) that can store a bit indicating whether it should occur during the transmission of the &lt; RTI ID = 0.0 &gt; The host device (e.g. video source) can load the bits representing the significant values into a register. This should include circuitry for the transmitter to automatically determine the active video and blank periods of the sequence of video frames from the previous line or frame and when significant events occur (as in the embodiment described in the previous paragraph). Eliminate the need The important values represented by the bits in the registers are some of the timings of which the timing is known to the transmitter, such as the generation of HSYNC or the application of the rising edge (to the transmitter) of the Video DE from the video source (beginning of the active video cycle). It needs to be connected to the event. For example, the transmitter may include a register to store a bit indicating that the rising edge of Video De occurs after the X pixel after the rising edge of HSYNC (or rising or falling of Video De). When the transmitter knows the next rising edge of HSYNC (or the next rising or polling of Video De), the counter in the transmitter starts to count. If the transmitter determines that it wants to send a data island, the transmitter checks the counter and has enough time between the current time and the next expected rising edge of the video DE (or next other necessary event) to send the entire data island from the current counter. Determine whether there are pixel clock cycles.

도 13a 및 도 13c의 회로는 두 액티브 비디오 주기 사이에 데이터 아일랜드를 삽입할 지를 판단하고, 삽입될 데이터 아일랜드 각각의 임시 배치 및 존속시간을 판단하며, 각 데이터 아일랜드를 적절한 타임 슬롯에 삽입하기 위해 본 발명에 바람직한 실시예에 따른 송신기 내에서 구현된다. 도 13a 및 도 13c는 도 13의 송신기(100)의 바람직한 실시예에서 멀티플렉서(118), 코어(114), 및 서브시스템(106 및 108)과 연결된다. The circuits of FIGS. 13A and 13C determine whether to insert data islands between two active video periods, determine the temporary placement and duration of each data island to be inserted, and insert each data island into an appropriate time slot. It is implemented in a transmitter according to a preferred embodiment of the invention. 13A and 13C are connected to the multiplexer 118, the core 114, and the subsystems 106 and 108 in the preferred embodiment of the transmitter 100 of FIG. 13.                 

도 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)의 타이밍도이다.The circuit of FIG. 13A generates a signal ok_to_xmit indicating whether there is enough time left for transmission within the current blank period to insert a data island within the blank period (or to add another packet to an already inserted data island). . The counters 140 and 142 and logic units 141 and 143 of FIG. 13A each receive a pixel clock and data enable signal DE applied to the transmitter, and a reset signal. FIG. 13B is a timing diagram of the signals v_blk_inc, ok_to_xmit_h, ok_to_xmit_v, and ok_to_xmit generated by the circuit of FIG. 13A and the signal DE received by the FIG. 13A circuit in operation.

수직 블랭크 구간 동안, 유닛(141)은 타이밍 신호 v_blank_inc (De 의 라이징 에지와 동일한 위상이며, 송신기에 인가된 입력 비디오의 라인 당 라이징 에지가 한번 일어나는 펄스의 시퀀스)를 카운터(140 및 142)에 인가한다.During the vertical blank period, unit 141 applies to counters 140 and 142 a timing signal v_blank_inc (a sequence of pulses that are in phase with the rising edge of De and in which the rising edge occurs once per line of input video applied to the transmitter). do.

수직 블랭크 구간 동안, 카운터(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"의 마지막 펄스)의 끝으로부터 경과되면 라이징 에지를 갖고, 수평 블랭크 구간 내에 데이터 아일랜드를 삽입할 더 이상의 충분한 시간이 남아 있지 않을 때 폴링 에지를 갖는다.During the vertical blank period, the counter 142, in response to the signals "v_blank_inc", DE, and the pixel clock "clk", counts "v_blk_count [5:" indicating the number of pixel clocks that have elapsed from the start of the vertical blank period. 0]) The counter 140 counts the number of pixel clock cycles that have elapsed from occurring after the last rising edge of DE or the last rising edge of “v_blank_inc” (“h_count [11: 0]”). Counter 140 continues to generate h_count [11: 0] even during the vertical blank period. Logical unit 143 generates the value " v_blk_count [5: 0] " Receive a value of "v_blank_lt [5: 0]" (typically from the transmitter's configuration register) indicating a predetermined length of each vertical blank period of the input video applied to the transmitter. ok_to_xmit_v ", the output signal" ok + to_xmit_v " The rising edge occurs simultaneously with the edge of the first pulse of 'v_blank_inc' received in the vertical blank interval, and the falling edge of the output signal "ok + to_xmit_v" leaves more than enough time left to insert the data island in the vertical blank interval. Occurs when it is not. The logic unit 141 receives a value of "h_count" from the counter 140 and a value of "h_total [11: 0]" (typically from the transmitter's configuration register) indicating a predetermined length of each horizontal line of input video applied to the transmitter. Receive. In response, the unit 141 generates the output signal "ok_to_xmit_h". The output signal "ok + to_xmit_h" has a rising edge when a predetermined number of pixel clock cycles have elapsed from the end of the last horizontal blank section (or the last pulse of "v_blank_inc"), and no more sufficient time to insert a data island within the horizontal blank section. It has a falling edge when it is not left.

OR 게이트(144)의 입력부가 "ok_to_xmit_h" 신호를 수신하고 OR 게이트(144)의 다른 입력부가 "ok_to_xmit_v" 신호를 수신하면, OR 게이트(144)는 "ok_to_xmit" 신호를 출력부로 인가한다.When the input of the OR gate 144 receives the "ok_to_xmit_h" signal and the other input of the OR gate 144 receives the "ok_to_xmit_v" signal, the OR gate 144 applies the "ok_to_xmit" signal to the output.

도 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)는 이들 제어 비트, 픽셀 클록 및 리셋 신호를 수신하기 위해 수신기와 연결된다.The logic unit 151 circuit of FIG. 13C receives the "ok_to_xmit" signal from the OR gate 144. The logic unit 151 also outputs the output of the VSWOO ("VSYNC windows of opportunity") generator 150, and "packet_req" (indicating that the transmitter is ready to transmit a packet in the data island), the transmitter in the data island. "HDMI_mode", which indicates whether the packet is operating in the mode of applying the serial link, and the "hdcp_enc_en" signal (indicating whether the transmitter's HDCP cipher engine is enabled). Logic unit 151 is configured to insert a data island between active video periods and generate the timing and control signals necessary to transmit each guard band and packet to be transmitted within the data island. Preferably, unit 151 outputs the following signals: (to indicate the portion of the active video period that does not include any video guard band, and the portion of the data island that does not contain any data island guard band, respectively). VidDEnoGB and audDEnoGB (applied to the HDCP cipher engine), vidDe and audDE (indicating the active video period and data island, respectively), DE (vidDE logically "OR" -operated with name DE), (transmitter channel (CH1 and CH2) Hdcp_vs, which represents a time interval in which a code word representing the above-described HDCP cryptographic indicator can be transmitted, video data, video guard band, leading or trailing data island guard band, or packetized data island data during a control data period Data_set [2: 0], indicating whether it is transmitted at timing other than Control [3: 0], which indicates the CTL0, CTL1, CTL2 and CTL3 values to be encoded, and the load_pkt signal (indicating that the data island data has been packetized for transmission) Unit 151 is a general purpose counter; ) Operates in response to a count cnt from and applies a control bit ld_cnt to the counter 152 that causes the counter 152 to determine the value to be counted. It is coupled with the receiver to receive the clock and reset signals.

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.The VSWOO generator 150 receives the data enable (DE), pixel clock ("clk") and VSYNC signals, and the reset signal, which are input to the transmitter, and the subsequent VSYNC that the transmitter should transmit the HDCP cryptographic indicator described above. A signal representing the above described windows of opportunity (WOO) with a predetermined duration of each active edge is generated. Preferably, the generator 150 is configured to set the duration of the WOO to 72 pixel clock cycles, and the generator 150 outputs the following signals: (high during WOO) vswoo, (starting and ending WOO) Vswoo_start_p and vswoo_end_p, indicating vswoo_48_p (indicating the 48th pixel clock cycle after the end of the application of the VSYNC pulse to the transmitter), vsync_end_p (indicating the end of the application of the VSYNC pulse to the transmitter), and (the beginning of each blank interval and De_start_p and de_end_p) to indicate the end.

바람직하게는, 유닛(151)에 의해 인가되는 타이밍 신호는 데이터 아일랜드 프리앰블 각각이 vidDEnoGB의 각 폴링 에지 다음 48 픽셀 클록 사이클 뒤에 (이보다는 빠르지 않게) 전송되도록 하게 한다. 상술한 바와 같이, 본 발명의 바람직한 실시예에 따른 송신기는, TMDS 링크의 채널(CH1 및 CH2) 각각을 통해, 8 개의 동일한 데이터 아일랜드 프리앰블 코드 워드 버스트를 각 데이터 아일랜드 바로 전에, 8개의 동일한 비디오 프리앰블 코드 워드 버스트를 각 액티비 비디오 주기 바로 전에 전송한다. 바람직한 실시예에서, 송신기는 데이터 아일랜드 프리앰블 코드 워드의 인가 전에 제어 데이터 주기 동안 채널(CH1 및 CH2) 각각을 통해 디폴트("idle") 제어 워드를 전송한다.Preferably, the timing signal applied by unit 151 causes each of the data island preambles to be transmitted (not earlier than) 48 pixel clock cycles after each polling edge of vidDEnoGB. As described above, the transmitter according to the preferred embodiment of the present invention, through each of the channels CH1 and CH2 of the TMDS link, eight identical data island preamble code word bursts, immediately before each data island, eight identical video preambles A code word burst is sent just before each active video period. In a preferred embodiment, the transmitter transmits a "idle" control word on each of the channels CH1 and CH2 during the control data period prior to application of the data island preamble code word.

픽셀 클록 레이트의 변화는 본 발명에 따른 시스템이 송신기 및 수신기 사이의 동기를 자주 놓치도록 하게 한다. 송신기 및 수신기를 (픽셀 클록 레이트를 변경하기 전에) 본 발명의 실시예에 따라 "침묵(mute)" 상태로 들어가도록 하게 함으 로써, 송신기 및 수신기 내의 암호화 및 복호화 회로는 동기를 놓치지 않고 픽셀 클록 레이트의 변경에 응답할 수 있다. 일반적으로, 이것은 송신기로 (일반적으로 제어 비트로 나타내는) 경보를 전송함으로서 달성된다. 상기 경보에 응답하여, 송신기는 침묵 상태에 들어가고, 패킷 내에 (일반적으로 하나 이상의 침묵 상태 제어 비트에 의해 나타내는) 수신기 경보를 포함시키고, 상기 패킷을 데이터 아일랜드 동안 수신기로 전송한다. 상기 수신기 경보에 응답하여, 수신기는 침묵 상태로 들어간다.Changing the pixel clock rate causes the system according to the invention to miss synchronization frequently between the transmitter and the receiver. By causing the transmitter and receiver to enter a "mute" state (prior to changing the pixel clock rate) in accordance with an embodiment of the present invention, the encryption and decryption circuitry within the transmitter and receiver allows the pixel clock rate to be lost without losing synchronization. Can respond to changes in In general, this is accomplished by sending an alert (usually represented by a control bit) to the transmitter. In response to the alert, the transmitter enters a silent state, includes a receiver alert (generally indicated by one or more silent control bits) in the packet, and sends the packet to the receiver during the data island. In response to the receiver alert, the receiver enters a silent state.

상기 경보에 응답하여, 송신기는 일반적으로 플래그("AVMUTE" 플래그)를 설정한다. 도 13의 송신기(100)의 일반적인 구현에서, 상기 경보는 인터페이스(101)에서 수신되고, 송신기로 하여금 레지스터(103) 및/또는 레지스터(105) 내의 "AVMUTE" 플래그를 설정하게 한다. 도 14의 수신기(200)의 일반적인 구현에서, 상기 수신기 경보는, 수신기로 하여금 레지스터(203) 및/또는 레지스터(205) 내의 AVMUTE 플래그를 설정하게 한다. 송신기 내의 AVMUTE 플래그에 응답하여, 암호화 회로(예를 들어, 도 13의 송신기(100) 내의 사이퍼 엔진(104))는 비디오의 현재 프레임의 프로세싱을 완료한 뒤 미활동(idle) 상태로 천이된다. 수신기 내의 AVMUTE 플래그에 응답하여, 복호화 회로(예를 들어, 도 14의 수신기9200) 내의 사이퍼 엔진(204))는 비디오의 현재 프레임의 프로세싱을 완료한 뒤 미활동(idle) 상태로 천이된다. 암호화 회로가 미활동 상태로 천이되면 송신기는 침묵 상태로 들어가고, 복호화 회로가 미활동 상태로 천이되면 수신기는 침묵 상태로 들어간다.In response to the alert, the transmitter typically sets a flag ("AVMUTE" flag). In the general implementation of the transmitter 100 of FIG. 13, the alert is received at the interface 101 and causes the transmitter to set the "AVMUTE" flag in the register 103 and / or the register 105. In the general implementation of receiver 200 of FIG. 14, the receiver alert causes the receiver to set the AVMUTE flag in register 203 and / or register 205. In response to the AVMUTE flag in the transmitter, an encryption circuit (eg, the cipher engine 104 in the transmitter 100 of FIG. 13) transitions to an idle state after completing processing of the current frame of video. In response to the AVMUTE flag in the receiver, the cipher engine 204 in the decoding circuit (eg, the receiver 9200 of FIG. 14) transitions to an idle state after completing processing of the current frame of video. The transmitter enters a silent state when the encryption circuit transitions to an inactive state, and the receiver enters a silent state when the decryption circuit transitions to an inactive state.

본 발명의 바람직한 실시예에 따른 송신기에서, AVMUTE 플래그의 설정 뒤에 발생하는 다음 수직 블랭크 구간의 VSYNC의 액티브 에지 뒤에 오는 (상술한) WOO(window of opportunity)의 끝에서 상기 암호화 회로의 동작은 결빙(freeze) 된다(그리고, 미활동 상태로 들어간다). 이 때, 송신기는 침묵 상태로 들어가고, 패킷 상태의 유용한 보조 데이터(예를 들어, 오디오 데이터)의 전송을 중단하며, 유용한 비디오 정보의 전송을 중단한다(예를 들어, 송신기의 비디오 및 오디오 출력은 그곳에 인가된 입력 오디오 및 비디오에 응답하여 변화되지 않는다). (침묵 상태의) 송신기는 그런 다음 데이터 아일랜드 동안 수신기에게 (예를 들어, 바람직하게는 이전의 액티브 비디오 주기의 하나의 HSYNC 주기 내에, VSYNC 가 인액티브 일 때 데이터 아일랜드 동안 전송된 패킷 형태인 하나 이상의 제어 비트로) 경보를 전송한다.In a transmitter according to a preferred embodiment of the present invention, the operation of the cryptographic circuit at the end of the window of opportunity (described above) following the active edge of VSYNC of the next vertical blank interval occurring after the setting of the AVMUTE flag results in freezing ( freeze) (and enter inactive state). At this time, the transmitter enters a silent state, stops transmitting useful auxiliary data (e.g., audio data) in packet state, and stops transmitting useful video information (e.g., the video and audio output of the transmitter Unchanged in response to input audio and video applied there). The transmitter (in silence) then transmits one or more packets to the receiver during the data island (e.g., preferably within one HSYNC period of the previous active video period, in the form of packets transmitted during the data island when VSYNC is inactive). Send alarms to control bits).

본 발명의 바람직한 실시예에 따른 수신기에서, 수신기 내의 AVMUTE 플래그의 설정 뒤에 발생하는 다음 수직 블랭크 구간의 VSYNC의 액티브 에지 뒤에 오는 (상술한) WOO(window of opportunity)의 끝에서 상기 복호화 회로의 동작은 결빙(freeze) 된다(그리고, 미활동 상태로 들어간다). 이 때, 수신기는 침묵 상태로 들어가고, 그 출력부에서의 유용한 보조 데이터(예를 들어, 패킷으로부터 추출된 오디오 데이터)의 인가를 중단하며, 그 출력부에서의 유용한 비디오 정보의 인가를 중단한다. 따라서, 침묵 상태 동작 동안 송신기가 유용한 정보(예를 들어, 비디오 및/또는 오디오)를 링크를 통해 수신기로 전송하는 것을 중단하지 않더라도, 침묵 상태에 있는 수신기는 어떤 유용한 정보가 그 출력부 어디에서부터라도 보이거나(seen), 들리거나(heard), 또는 재-전송되게 하는 것을 방지한다. In the receiver according to the preferred embodiment of the present invention, the operation of the decoding circuit at the end of the window of opportunity (described above) following the active edge of VSYNC of the next vertical blank interval occurring after the setting of the AVMUTE flag in the receiver Freezes (and enters inactive state). At this point, the receiver enters a silent state and stops the application of useful auxiliary data (eg, audio data extracted from the packet) at its output and the application of useful video information at its output. Thus, even if the transmitter does not stop transmitting useful information (e.g., video and / or audio) to the receiver via a link during a silent operation, the receiver in the silent state will not receive any useful information from anywhere on its output. Prevent it from being seen, heard, or re-transmitted.                 

송신기의 암호화 회로와 수신기의 복호화 회로가 그들의 미활동 상태로 들어가면, 픽셀 클록 레이트의 변화는 발생할 수 있다. 픽셀 클록이 안정화되고, 수신기 내의 모든 PLL 들이 안정화되면, 바람직하게는 ("침묵 오프" 명령에 응답하여) 송신기와 수신기가 상기 침묵 상태를 떠나게 허가하는 메시지가 전송되어, 암호화 및 복호화를 재개하고 오디오 및 비디오를 "비-침묵(unmuting)" 하게 한다. 픽셀 클록 레이트가 변하는 동안, 본 발명의 실시예에 따른 일반적인 수신기는 수신된 데이터를 신뢰성 있게 디코딩하는 능력을 상실한다. 이 시간 동안, 모드 종류의 가짜 신호들이 수신기의 디코더에서 출력될 수 있다. 이러한 이유에서, 바람직하게는 수신기가 침묵 상태일 때 픽셀 클록 레이트의 변화가 일어나고, 침묵 상태 동안 수신기의 출력이 침묵된다.When the encryption circuit of the transmitter and the decryption circuit of the receiver enter their inactive state, a change in pixel clock rate can occur. Once the pixel clock has stabilized and all PLLs in the receiver have stabilized, a message is preferably sent to permit the transmitter and receiver to leave the silence (in response to a "silent off" command) to resume encryption and decryption and to audio And "unmuting" the video. While the pixel clock rate is changing, a typical receiver in accordance with an embodiment of the present invention loses the ability to reliably decode the received data. During this time, fake signals of the mode type may be output at the receiver's decoder. For this reason, preferably a change in pixel clock rate occurs when the receiver is silent, and the output of the receiver is silent during the silent state.

상기 침묵 상태에서 떠는 것은 바람직하게 "침묵 오프(mute off)" 신호를 (일반적으로 제어 비트에 의해 나타내진다) 송신기로 전송함으로써 완료된다. 상기 침묵 오프 신호(그리고, 바람직하게 암호 인디케이터 또한)에 응답하여, 송신기는 침묵 상태를 떠나고, (일반적으로 하나 이상의 침묵 제어 비트에 의해 나타내지는) "수신기 침묵 오프" 데이터를 패킷으로 포함시키고, 상기 패킷을 데이터 아일랜드 동안 수신기로 전송한다. 상기 수신기 침묵 오프 신호( 그리고 또한 바람직하게는 암호화 인디케이터)에 응답하여, 수신기는 침묵 상태를 떠난다.Leaving in the silent state is preferably completed by sending a "mute off" signal (generally indicated by the control bits) to the transmitter. In response to the silence off signal (and preferably also the cryptographic indicator), the transmitter leaves the silence state, includes the " receiver silence off " data (generally represented by one or more silence control bits) in the packet, and Send the packet to the receiver during the data island. In response to the receiver silence off signal (and also preferably an encryption indicator), the receiver leaves a silence state.

일반적으로, 상기 침묵 오프 신호는 송신기가 상술한 AVMUTE 플래그를 소거하고, 상기 "수신기 침묵 오프" 데이터는 수신기가 AVMUTE 플래그를 소거하도록 하게 한다. 송신기 내의 AVMUTE 플래그의 소거에 응답하여, 송신기 내의 암호화 회로(예를 들어 사이퍼 엔진(104))는, AVMUTE 플래그가 소거된 뒤 발생하는 다음 수직 블랭크 구간 내의 VSYNC의 액티브 에지 뒤에 오는 송신기에 인가될 수 있는 암호화 인디케이터에 응답하여, 미활동 상태를 떠난다(송신기는 암호화 인디케이터를 수신하자마자 침묵 상태를 떠난다). 수신기 내의 AVMUTE 플래그의 소거에 응답하여, 수신기 내의 복호화 회로(예를 들어, 사이퍼 엔진(204))는, AVMUTE 플래그가 소거된 뒤 발생하는 다음 수직 블랭크 구간 내의 VSYNC의 액티브 에지 뒤에 오는 WOO(window of opportunity) 내에 수신될 수 있는 암호화 인디케이터(예를 들어, 상술한 HDCP 암호화 인디케이터)에 응답하여, 미활동 상태를 떠난다. 수신기는 상기 암호화 인디케이터를 수신하자마자 침묵 상태를 떠난다.In general, the silence off signal causes the transmitter to clear the AVMUTE flag described above and the "receiver silence off" data to cause the receiver to clear the AVMUTE flag. In response to the clearing of the AVMUTE flag in the transmitter, an encryption circuit in the transmitter (e.g., the cipher engine 104) may be applied to the transmitter following the active edge of VSYNC in the next vertical blank period that occurs after the AVMUTE flag is cleared. In response to the cryptographic indicator being present, it is left inactive (the sender is silent as soon as it receives the cryptographic indicator). In response to the clearing of the AVMUTE flag in the receiver, the decoding circuitry in the receiver (e.g., the cipher engine 204) causes a WOO (window of) following the active edge of the VSYNC in the next vertical blank period that occurs after the AVMUTE flag is cleared. In response to a cryptographic indicator (eg, the HDCP cryptographic indicator described above) that may be received within an opportunity, the inactivity is left out. The receiver leaves silence as soon as it receives the encryption indicator.

몇 가지 바람직한 실시예에서, 본 발명은, 전송된 데이터를 복원하고 프로세싱하기 위해 필요한 회로 대부분 또는 모두를 포함하는 제1 칩 (예를 들어, 도 2의 수신기(2'), 또는 EEPROM(24)를 제외한 도 2의 수신기(2')), EDID(Enhanced Display Identification Data) ROM을 포함하는 다른 칩(일반적으로 EPROM으로 구현된다)을 적어도 포함하는 멀티-칩 모듈(MCM)이다. 공장에서, EDID PROM 칩은 수신기의 구성 및/또는 능력을 나타내는 데이터, 그리고 또한 선택적으로는 복호화에 사용되는 키 및 인증 데이터(예를 들어 HDCP 키)를 가지고 프로그램 될 수 있다. 한편, 이러한 MCM 은 복호화에 사용되는 키 및 인증 데이터를 안전하게 저장하는 EEPROM (예를 들어, 도 2의 EEPROM(24))을 포함하는 제3 칩을 포함할 수 있다.In some preferred embodiments, the invention provides a first chip (eg, receiver 2 'of FIG. 2, or EEPROM 24) that includes most or all of the circuitry needed to recover and process the transmitted data. 2 is a multi-chip module (MCM) including at least another chip (generally implemented as an EPROM) including a receiver 2 'of FIG. 2) and an Enhanced Display Identification Data (EDID) ROM. At the factory, the EDID PROM chip can be programmed with data representing the configuration and / or capabilities of the receiver, and also optionally the key and authentication data (eg HDCP key) used for decryption. The MCM may include a third chip including an EEPROM (eg, the EEPROM 24 of FIG. 2) that securely stores a key and authentication data used for decryption.

다른 바람직한 실시예에서, 본 발명에 따른 송신기는 암호화에 사용되는 키 및 인증 데이터를 안전하게 저장하고, 또한, InfoFrame 데이터를 저장하기 위한 PROM (예를 들어, 도 2의 EEPROM(14)를 포함한다. 상술한 바와 같이, EIA/CEA-861B 표준은 포맷 정보 및 디지털 오디오 및/또는 디지털 비디오 데이터에 관한 관련 정보를 포함하는 하나 이상의 InfoFrame로 구성된 InfoPacket 데이터 구조를 규정한다. PROM 에 저장된 InfoFrame 데이터는 바람직하게 상기 포맷 정보 및 관련 정보를 나타낸다. 몇 가지 실시예에서, PROM 은 MCM내에서 별개의 칩으로 구현되고, 또한 MCM은 데이터의 인코딩 및 전송에 필요한 회로(도 2의 회로(1')) 대부분 또는 모드를 구현하는 하나 이상의 다른 칩을 포함할 수 있다. 이러한 분리된 PROM 칩은 공작에서, HDCP 또는 다른 암호화 키 데이터뿐만 아니라 InfoFrame 데이터로 프로그램 되고, 안전하게 MCOM 내에서 임베딩될 수 있다.In another preferred embodiment, the transmitter according to the invention comprises a PROM (e.g., EEPROM 14 of Figure 2) for securely storing key and authentication data used for encryption and also for storing InfoFrame data. As mentioned above, the EIA / CEA-861B standard specifies an InfoPacket data structure consisting of one or more InfoFrames that contain format information and related information about digital audio and / or digital video data. In some embodiments, the PROM is implemented as a separate chip within the MCM, and the MCM may also include most of the circuitry required for encoding and transmitting data (circuit 1 'in FIG. 2) or And may include one or more other chips that implement the mode. It can be programmed into InfoFrame data and safely embedded within MCOM.

다른 실시예에서, 본 발명에 따른 송신기 또는 수신기는, 선택 가능한 호스트 마이크로-억세서블 영역 (예를 들어, 테스트 모드 동작 동안, 예를 들어 테스트 결과를 판독하거나 또는 테스트를 위해 송신기 또는 수신기를 구성하는 것 등의 호스트에 의해 억세스 가능한 영역), 및 비-호스트 억세서블 영역(예를 들어, 암호화 및 복호화에 사용되는 키 및 인증 데이터를 안전하게 저장하는 데 사용될 수 있는)을 갖는 ROM을 포함하는 칩을 포함하는 MCM 이다. 예를 들어, 도 2의 EEPROM(14)는 이러한 칩으로 구현되고, 도2의 송신기(1')는 다른 칩으로 구현될 수 있고, 이 양 칩은 모두 MCM 내에 포함될 수 있다. EEPROM(14)의 이러한 집적 회로의 구현의 비-호스트 억세스블 영역은, 송신기(1')의 집적 회로 구현에 의해서만 억세스 가능하고, 송신기(1') 이외의 다른 어떤 장치도 억세스 할 수 없는 HDCP 키 및/또는 다른 암호 키 데이터를 ( 및 선택적으로 다른 데이터 또한) 저장할 수 있다. In another embodiment, the transmitter or receiver according to the present invention comprises a selectable host micro-accessible region (e.g., during test mode operation, for example reading a test result or configuring the transmitter or receiver for testing). A region accessible by the host, such as, and a ROM having a non-host accessible region (eg, which can be used to securely store keys and authentication data used for encryption and decryption). MCM containing the chip. For example, the EEPROM 14 of FIG. 2 may be implemented with such a chip, the transmitter 1 'of FIG. 2 may be implemented with another chip, and both chips may be included in an MCM. The non-host accessible area of this integrated circuit implementation of the EEPROM 14 is only accessible by the integrated circuit implementation of the transmitter 1 'and is inaccessible to any device other than the transmitter 1'. Keys and / or other cryptographic key data (and optionally other data as well) may be stored.                 

다른 실시예에서, 본 발명에 따른 송신기 및 수신기는 암호화 또는 목호화에 사용되는 키 및 인증 데이터(예를 들어 HDCP 키) 및/또는 EDID(Enhanced Display Identification Data)를 저장하기 위한 하나 이상의 PROM을 포함하는 집적 회로로 구현된다. 본 발명의 실시예에 따른 송신기의 이러한 집적 회로로 구현된 PROM 은 공장에서 HDCP 또는 다른 암호 키를 가지고 프로그램 될 수 있다. 본 발명의 실시예에 따른 수신기의 이러한 집적 회로로 구현된 PROM 은 공장에서 HDCP 또는 다른 복호화 키 및/또는 수신기의 구성 및/또는 능력을 나타내는 EDID 데이터를 가지고 프로그램 될 수 있다.In another embodiment, the transmitter and receiver according to the present invention comprise one or more PROMs for storing keys and authentication data (e.g. HDCP keys) and / or Enhanced Display Identification Data (EDID) used for encryption or encryption. It is implemented in an integrated circuit. The PROM implemented with this integrated circuit of the transmitter according to an embodiment of the present invention can be programmed with HDCP or other cryptographic keys at the factory. The PROM implemented with this integrated circuit of the receiver according to an embodiment of the present invention may be programmed at the factory with HDCP or other decryption keys and / or EDID data indicating the configuration and / or capabilities of the receiver.

본 발명의 실시예에서, 본 발명에 따른 송신기는, 바람직하게는 상술한 InfoFramde 패킷 포맷 및 다른 포맷을 갖는 정보 패킷을 포함하는 어떤 다양한 포맷을 갖는 패킷을 (데이터 아일랜드에서) 전송하도록 구성된다. 수신기가 특정 포맷의 패킷을 수신하도록 구성되면, 수신기는 바람직하게 이러한 포맷을 나타내는 데이터를 (예를 들어, EDID ROM 내에) 저장하도록 구성되고, 송신기는 바람직하게 이 데이터를 (예를 들어, TMDS 링크의 DDC 채널을 통해)억세스하고, 패킷을 이러한 포맷으로 수신기에 전송함으로써 여기에 응답하도록 구성된다. 한편, 그렇지 않으면, 수신기는, 패킷을 수신기로 보내기 위해 송신기에 의해 사용되는 포맷을 정의하도록 송신기에 신호로 요청할 수 있다.In an embodiment of the invention, the transmitter according to the invention is preferably configured to transmit packets (in data islands) having any of a variety of formats, including information packets having an InfoFramde packet format and other formats described above. If the receiver is configured to receive packets of a particular format, the receiver is preferably configured to store data indicative of this format (eg in an EDID ROM), and the transmitter preferably stores this data (eg, a TMDS link). And respond to it by sending a packet to the receiver in this format). Otherwise, the receiver may signal the transmitter to define the format used by the transmitter to send the packet to the receiver.

이러한 방법으로 송신기를 구현하는 것은 수신기로의 한번 전송 또는 수신기로의 반복된 전송 중 어느 하나에 대한, 패킷 포맷의 미래의 규정(예를 들어 정보 패킷 포맷)을 가능하게 한다. Implementing the transmitter in this way allows for future definition of the packet format (eg, information packet format), either for one transmission to the receiver or for repeated transmissions to the receiver.                 

바람직하게는, 송신기 및 수신기는 패킷(예를 들어 변경할 수 있는 패킷)의 자동 전송을 제어하기 위해 2-비트 신호장치(semaphore) (또는 한편으로 몇 가지 다른 시그널링 스킴)를 사용하도록 구성된다. 예를 들어, 송신기 및 수신기는 InfoFrame 패킷 및 다른 포맷을 갖는 정보 패킷의 전송을 서로 제어하기 위한 2-비트 코드를 전송하도록 구성된다. 한 비트는 "전송(send)" 비트이다. 수신기는 상기 전송 비트를 송신기로 전송하여 송신기가 패킷을 전송하게 하거나 전송을 중단하도록 하게 한다. 두 번째 비트는 "반복(repeat)" 비트이다. 송신기는, 송신기가 반복된 패킷을 전송하고 있음을 나타내는 값으로 "반복" 비트를 덧쓰도록(overwrite) 하게 함으로써 수신기로부터의 상기 전송(send) 비트에 응답하고, 이러한 "반복" 비트를 포함하는 2-비트 코드를 수신기에 전송하도록 구성될 수 있다. 그런 다음, 수신기는 다른 전송(send) 비트를 송신기에 인가함으로써 응답할 수 있다. 몇 가지 실시예에서, 상기 2-비트 코드는 DDC 링크 (또는 송신기와 수신기 사이의 다른 양방향 채널)를 통해 전송되어, 하나 이상의 다른 채널(예를 들어, TMDS 링크의 채널(CH0, CH1 및 CH2)을 통한 패킷 전송을 야기한다.Preferably, the transmitter and receiver are configured to use a two-bit semaphore (or some other signaling scheme on the one hand) to control the automatic transmission of the packet (eg a changeable packet). For example, the transmitter and receiver are configured to transmit a 2-bit code for controlling each other to transmit InfoFrame packets and information packets having different formats. One bit is the "send" bit. The receiver sends the transmit bit to the transmitter, causing the transmitter to transmit or stop the packet. The second bit is the "repeat" bit. The transmitter responds to the send bit from the receiver by causing the transmitter to overwrite the "repeat" bit with a value indicating that the transmitter is transmitting a repeated packet and includes two "repeat" bits. -May be configured to send the bit code to the receiver. The receiver can then respond by applying another send bit to the transmitter. In some embodiments, the 2-bit code is transmitted over a DDC link (or other bidirectional channel between the transmitter and the receiver) such that one or more other channels (eg, channels CH0, CH1, and CH2 of the TMDS link). Causes packet transmission over the network.

바람직하게는, 본 발명에 따른 송신기 및/또는 본 발명에 따른 수신기는, 오디오 및/또는 비디오 포맷 정보 및 전송된 또는 전송될 오디오 및/또는 비디오 데이터에 대한 관련 정보 등의 InfoFrame 패킷(또는 다른 포맷을 갖는 정보 패킷)으로부터 추출된 (또는 안에 포함되는) 데이터를 저장하기 위한 외부 장치에서 (예를 들어, I2C 링크를 통해) 억세스 가능한 레지스터 공간을 포함한다. 예를 들어, 외부 소스는 이러한 데이터를 송신기 내의 이러한 레지스터 (예를 들어, 도 13의 레지스터(105))로 로딩할 수 있고, 그리고, 송신기는 데이터 아일랜드 동안 수신기로의 전송을 위해 패킷에 포함될 데이터를 얻기 위해 레지스터를 판독할 수 있다. 바람직하게는, 송신기는, 예를 들어 레지스터로부터 (외부 소스로부터 수신되고 레지스터로 로딩된) 비트를 판독하고, 상기 비트를 전송을 위해 InfoFrame 패킷으로 집합되는 데이터 스트림의 특정의 소정 타임 슬롯 내에 삽입하도록 구성된 회로를 포함으로써, 레지스터 공간을 InfoFrame 패킷 (또는 다른 정보 패킷)으로 매핑하도록 구성된다. 바람직하게는, 수신기는 (예를 들어, 데이터 아일랜드 동안 TMDS 링크의 CH0, CH1 및 CH2를 통해) 수신기로 전송된 패킷들로부터 데이터를 추출하고, 상기 추출된 데이터를 억세스 가능한 레지스터(예를 들어 도 14의 레지스터(205))로 로딩할 수 있다. 그러면, 외부 장치는 바람직하게 I2C 링크를 통해, 수신기의 레지스터를 억세스 할 수 있다. 예를 들어, 송신기가 TMDS 링크의 DDC 채널을 통해 수신기 내의 레지스터를 억세스 할 수 있거나, 또는 호스 장치가 TMDS 링크의 DDC 채널이 아닌 I2C 링크를 통해 수신기 내의 이러한 레지스터를 억세스 할 수 있다.Preferably, the transmitter and / or receiver according to the invention comprises an InfoFrame packet (or other format) such as audio and / or video format information and related information about the audio and / or video data to be transmitted or transmitted. And a register space accessible (eg, via an I 2 C link) at an external device for storing data extracted from (or contained within) an information packet having a (i). For example, an external source may load this data into this register in the transmitter (eg, register 105 in FIG. 13), and the transmitter may include data to be included in the packet for transmission to the receiver during the data island. You can read the register to get. Preferably, the transmitter is configured to read a bit (received from an external source and loaded into a register), for example, from a register and insert the bit into a certain predetermined time slot of the data stream aggregated into InfoFrame packets for transmission. By including the configured circuitry, it is configured to map the register space into InfoFrame packets (or other information packets). Preferably, the receiver extracts data from packets sent to the receiver (e.g., via CH0, CH1 and CH2 of the TMDS link during the data island) and registers the extracted data with an accessible register (e.g., FIG. 14 registers 205). The external device can then access the register of the receiver, preferably via an I 2 C link. For example, the transmitter may access a register in the receiver via the DDC channel of the TMDS link, or the hose device may access this register in the receiver via an I 2 C link that is not the DDC channel of the TMDS link.

바람직하게는, 수신기는 인지되지 않은 정보 패킷(TMDS 또는 다른 시리얼 링크를 통해 수신된)을 저장하도록 구성되어, 호스트(예를 들어, CPU 또는 수신기와 결합된 다른 프로세서)가 상기 저장된 패킷을 억세스 할 수 있다. 이것은 적절한 소프트웨어로 프로그램된 호스트가 이러한 저장된 패킷 각각을 분석(parse)하고, 바람직하게는 수신기가 상기 분석된 패킷에 의해 특정된 방법으로 링크를 통해 전 송될 오디오 및/또는 비디오 데이터를 프로세싱 하도록 구성하는 비트로 상기 수신기 내의 레지스터에 로딩하게 할 수 있다.Preferably, the receiver is configured to store unrecognized information packets (received via TMDS or other serial link) such that a host (e.g., a CPU or other processor coupled with the receiver) can access the stored packets. Can be. This allows the host programmed with the appropriate software to parse each of these stored packets and preferably configure the receiver to process the audio and / or video data to be transmitted over the link in the manner specified by the analyzed packet. Bit can be loaded into a register in the receiver.

바람직하게는, 본 발명에 따른 수신기는, TMDS 링크(또는 다른 시리얼 링크)를 통해 수신된 AVI(Auxiliary Video information) InfoFrame 패킷 (또는 다른 정보 패킷)을 분석하는 하드웨어, 자동-구성 CSC(color space conversion) 회로, 채도(chroma) 업/다운 샘플랭 회로, 그리고 선택적으로 패킷에 의해 결정되는 방식을 갖는 수신기 내의 다른 비디오 프로세싱 회로로 구성된다. 따라서, AVI 정보 패킷이 비디오와 결합되어 (예를 들어, 데이터 아일랜드 내에) 수신기로 전송되면, 수신기는 비디오를 프로세싱하기 위해 그 비디오 프로세싱 회로를 적절하게 구성함으로써 AVI InfrFrame 패킷 내의 데이터에 응답할 수 있다.Preferably, the receiver according to the invention is a hardware, auto-configured color space conversion CSC (Auxiliary Video information) InfoFrame packet (or other information packet) received over a TMDS link (or other serial link). Circuit), chroma up / down sample rate circuitry, and other video processing circuitry within a receiver, optionally in a packet-determined manner. Thus, once an AVI information packet is combined with video (eg, within a data island) and sent to a receiver, the receiver can respond to the data in the AVI InfrFrame packet by properly configuring its video processing circuitry to process the video. .

바람직하게는, 본 발명에 따른 수신기는 TMDS 링크 (또는 다른 시리얼 링크)를 통해 수신된 AI(Audio InfoFrame) 패킷 (또는 다른 정보 패킷)을 분석하는 하드웨어, 패킷에 의해 결정되는 방식을 갖는 수신기 내의 자동-구성 오디오 데이터 프로세싱 회로로 구성된다. 따라서, AI 패킷이 오디오와 결합되어 데이터 아일랜드 내에 전송되면, 수신기는 오디오 데이터를 프로세싱하기 위해 오디오 데이터 프로세싱 회로를 적절하게 구성함으로써 AI 패킷 내의 데이터에 응답할 수 있다.Preferably, the receiver according to the invention is a hardware which analyzes an AI (Audio InfoFrame) packet (or other information packet) received over a TMDS link (or other serial link), an automatic in the receiver having a manner determined by the packet. -Configuration audio data processing circuit. Thus, if an AI packet is combined with audio and sent in a data island, the receiver can respond to the data in the AI packet by appropriately configuring the audio data processing circuitry to process the audio data.

바람직한 실시예에서, 본 발명에 따른 송신기는 하나 이상의 I2S 링크를 통해 오디오 및 다른 보조 데이터를 수신하도록 구성된 입력 인터페이스(예를 들어, 도 13의 인터페이스(109)의 바라직한 구현)를 갖고, 각 I2S 링크를 통해 수신된 입 력 데이터를 패킷으로 시리얼 링크를 통해 전송 (바람직하게는 상술한 포맷을 갖는 오디오 샘플 포맷으로 데이터 아일랜드 동안 TMDS 링크의 CH0, CH1, 및 CH2 채널을 통해 전송)하기 위해 포맷하도록 구성된다. "I2S 라는 표현은 데이터(일반적으로 오디오 데이터)에 대한 제1 컨덕터, 비트 클록에 대한 제2 컨덕터, 워드 클록(에를 들어, 제1 컨덕터를 통해 전송될 데이터의 채널을 식별하는 Left/Right 워드 선택 클록)에 대한 제3 컨덕터를 포함하는 3-컨덕터 링크를 지칭하는 넓은 의미로 사용된다. 바람직하게는, 수신기는 하나 이상의 I2S 출력 포트를 갖고, 전송된 패킷 (예를 들어, 오디오 샘플 패킷)으로부터 오디오 데이터를 추출하고, 상기 추출된 데이터를 하나 이상의 I2S 링크를 통해 인가하기 위해 필요한 만큼 재-포맷하고, 상기 추출된 데이터를 I2S 포맷으로 하나 이상의 I2S 출력 포트로 인가하도록 구성된다. In a preferred embodiment, the transmitter according to the present invention has an input interface (eg, a preferred implementation of interface 109 of FIG. 13) configured to receive audio and other auxiliary data over one or more I 2 S links, Transmit input data received on each I 2 S link as a packet over the serial link (preferably over the CH0, CH1, and CH2 channels of the TMDS link during the data island in audio sample format with the above-described format) To format in order to do so. The expression "I 2 S" denotes Left / Right identifying the first conductor of data (typically audio data), the second conductor of the bit clock, and the word clock (e.g., the channel of data to be transmitted through the first conductor). It is used in a broad sense to refer to a three-conductor link that includes a third conductor to a word select clock .. Preferably, the receiver has one or more I 2 S output ports and transmits a packet (e.g., audio Sample packets), re-format the extracted data as needed to apply over one or more I 2 S links, and convert the extracted data into one or more I 2 S output ports in I 2 S format. It is configured to apply.

바람직하게는, 본 발명에 따른 수신기는, I2S 링크로부터 PCM 입력 데이터(즉, 비-압축된 I2S 데이터)를 받아들이고 여기에 응답하여 상술한 본 발명의 바람직한 실시예에 따른 시스템에 사용되는 것과 동일한 포맷을 갖는 오디오 샘플 패킷으로 전송하기 위해 데이터를 재-포맷하고 S/PDIF 오디오 데이터를 전송한다. 바람직하게는, 송신기는 필요한 재-포맷을 수행하기 위해 (입력 데이터 소스로부터) 입력 데이터 포맷을 나타내는 채널 상태 비트로 프로그램된 레지스터를 이용한다. 예를 들어, I2S 데이터 워드 클록의 첫 번째 사이클에서, 송신기는 I2S 데이터 비트 클록 의 선택된 에지에서 입력 데이터를 샘플링하고 상기 샘플을 (FIFO를 통해) "좌측" 채널 S/PDIF 샘플을 위한 서브패킷의 타임 슬롯으로 삽입하고, I2S 데이터 워드 클록의 다음 사이클에서, 송신기는 계속해서 I2S 데이터 비트 클록의 선택된 에지에서 입력 데이터를 샘플링하지만 상기 샘플을 (FIFO를 통해) "우측" 채널 S/PDIF 샘플을 위한 서브패킷의 타임 슬롯으로 삽입한다. 오디오 데이터 샘플과 함께, 적절한 채널 상태, 유효한 유저 데이터, 및 패리티 비트가 바람직하게 서브패킷의 적절한 타임 슬롯으로 삽입되고, 시작 비트가 적절한 타이밍으로 패킷 헤더로 (FIFO를 통해) 삽입된다.Preferably, the receiver according to the invention accepts PCM input data (i.e. non-compressed I 2 S data) from an I 2 S link and is used in a system according to the preferred embodiment of the invention described above in response thereto. Reformat the data and transmit the S / PDIF audio data for transmission in an audio sample packet having the same format as that shown. Preferably, the transmitter uses a register programmed with channel status bits that indicate the input data format (from the input data source) to perform the necessary re-format. For example, in the first cycle of the I 2 S data word clock, the transmitter samples the input data at the selected edge of the I 2 S data bit clock and takes the sample (via FIFO) to the “left” channel S / PDIF sample. Inserted into the time slot of the subpacket for and in the next cycle of the I 2 S data word clock, the transmitter continues sampling the input data at the selected edge of the I 2 S data bit clock but taking the sample to the right (via FIFO). Insert into time slot of subpacket for channel S / PDIF sample. With the audio data sample, the appropriate channel state, valid user data, and parity bits are preferably inserted into the appropriate time slots of the subpacket, and the start bits are inserted into the packet header (via FIFO) at the appropriate timing.

바람직한 실시예에서, 본 발명에 따른 송신기는 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 입력으로부터 입력 오디오 데이터를 받아들을 수 있는 입력 인터페이스를 갖고, 전송하기 위한 데이터를 패킷으로(바람직하게는 상술한 포맷을 갖는 오디오 샘플 포맷으로) 포맷한다.In a preferred embodiment, the transmitter according to the invention has an input interface capable of accepting input audio data from 1-4 I 2 S links. In some such embodiments, the transmitter can accept input audio data from a multichannel system on one, two, three or four I 2 S links, where the I 2 S links use the same bit and word clocks of mode and (Thus, all the information in the 2, 6. 9 or 12 input I 2 S conductors is contained within 3, 4, 5 or 6 input I 2 S conductors: one bit clock conductor; one data clock conductor, and 1 2, 3 or 4 data conductors) format the data for transmission into a packet (preferably an audio sample format having the above-described format). In another embodiment, the transmitter can accept input audio data from 1-4 I2S inputs, even when each I2S input has an independent clock (and therefore the bits received at all input I2S conductors must be packetized). It has an input interface and formats the data for transmission into packets (preferably in an audio sample format having the above-described format).

바람직한 실시예에서, 본 발명에 따른 송신기는 전송하기 위해 데이터를 패킷화하기 위한 이용 가능한 채널/스피커 배치에 의해 부과되는 제약 내에서 입력 오디오 데이터의 스트림/채널 매핑을 재구성할 수 있는 (예를 들어, 도 13의 인터페이스(109)의 데이터 캡쳐 블록 내의)멀티플렉서 회로를 포함한다. 따라서, 이러한 송신기는 입력 오디오 데이터(예를 들어 하나 이상의 I2S 링크로부터의 입력 오디오)를 어떤 포맷의 세트로도(각각 유일한 스트림/채널 매핑을 갖는) 받아들일 수 있고, 상기 데이터를 패킷(바람직하게는 상술한 포맷을 갖는 오디오 샘플 포맷으로)으로 전송하기 위해 인정되는 포맷의 다른 세트 중 하나로 재 포맷할 수 있다.In a preferred embodiment, the transmitter according to the invention can reconstruct (e.g., stream / channel mapping of the input audio data within the constraints imposed by the available channel / speaker arrangement for packetizing the data for transmission). Multiplexer circuitry (in the data capture block of interface 109 of FIG. 13). Thus, such a transmitter can accept input audio data (e.g., input audio from one or more I 2 S links) in any format set (each with a unique stream / channel mapping) and receive the data in packets ( Preferably in another set of formats that are accepted for transmission (in audio sample format having the above-described format).

S/PDIF 데이터 스트림은 자신의 클록(데이터 샘플속에 임베딩된)을 갖는다. 몇 가지 실시예에서, 본 발명에 따른 송신기는 입력 데이터 속에 임베딩된 클록과 알려지지 않은 위상 관계를 갖는 픽셀 클록으로 S/PDIF 데이터 (일반적으로 , S/PDIF 오디오 데이터)의 입력 스트림을 샘플링하고, 상기 픽셀-클록-샘플된 데이터를 전송하도록 구성된다. 다른 실시예에서, 송신기는, Fs가 S/PDIF 데이터의 샘플 레이트이고, 입력 데이터 속에 임베딩된 클록과 알려지지 않은 위상 관계가 있을 때, 적어도 256*Fs (또는 바람직한 실시예에서 384*Fs)의 주파수를 갖는 오디오 기준 클록 (때때로 "MCLK" 또는 마스터 클록으로 불린다)으로 S/PDIF 데이터의 입력 스트림을 샘플링하도록 구성된다.S / PDIF data streams have their own clocks (embedded in data samples). In some embodiments, a transmitter in accordance with the present invention samples an input stream of S / PDIF data (generally, S / PDIF audio data) with a pixel clock having an unknown phase relationship with a clock embedded in the input data. And transmit pixel-clock-sampled data. In another embodiment, the transmitter has a frequency of at least 256 * Fs (or 384 * Fs in the preferred embodiment) when Fs is the sample rate of the S / PDIF data and there is an unknown phase relationship with the clock embedded in the input data. And is configured to sample the input stream of S / PDIF data into an audio reference clock (sometimes referred to as "MCLK" or master clock).

바람직한 실시예에서, 본 발명에 따른 송신기는 다중의 독립된, 동기 가능한 S/PDIF 스트림을 받아들이고 동기화할 수 있도록 구성된다.In a preferred embodiment, the transmitter according to the invention is configured to accept and synchronize multiple independent, synchronous S / PDIF streams.

바람직하게는, 본 발명에 따른 송신기는, (전부 0들로 구성된) 플랫라인(flatline) S/PDIF 입력을 패킷으로 능률적으로 전송을 하기 위해 포맷으로 변형하도록 구성된다. 예를 들어, 송신기는 패킷 헤더의 4 비트를 대응하는 서브패킷이 "플랫라인" 샘플(즉 전부 0들로 구성된 샘플)을 포함하고 있는 지를 나타내도록 설정하도록 구성된다. 예를 들어, 송신기는 (상술한 바와 같이) 패킷 헤더의 세 번째 바이트의 4 LSB를 대응하는 서브패킷이 "플랫라인" 샘플을 포함하는 지를 나타내도록 설정하도록 구성되고, 이 경우 수신기는 바람직하게 헤더의 두 번째 바이트의 대응하는 "현재" 비트 (상기 두 번째 바이트의 4 LSB 중 하나)가 대응하는 서브패킷이 샘플을 포함하는 것을 나타낼 때에만, 이들 LSB 중 어떤 것의 "1" 값을 유효하다고 여기도록 구성된다.Preferably, the transmitter according to the invention is configured to transform the flatline S / PDIF input (consisting of all zeros) into a format for efficient transmission in packets. For example, the transmitter is configured to set four bits of the packet header to indicate whether the corresponding subpacket contains a "flatline" sample (ie, a sample consisting of all zeros). For example, the transmitter is configured to set 4 LSBs of the third byte of the packet header (as described above) to indicate whether the corresponding subpacket contains a "flatline" sample, in which case the receiver is preferably a header. A value of "1" of any of these LSBs is considered valid only if the corresponding "current" bit of the second byte of (one of the 4 LSBs of the second byte) indicates that the corresponding subpacket contains samples. It is configured to.

바람직한 실시예에서, 본 발명에 따른 송신기는 DSD(Direct Stream Digital) 입력 데이터를 받아들이고 이 입력 데이터를 데이터 아일랜드 동안 IEC60958-타입으로 전송하기 위해 포맷하도록 구성된다. 종래의 DSD (Direct Sream Digital) 포맷 내의 오디오 데이터 (예를 들어, SACD 또는 "Super Audio CD" 데이터)는 3-컨덕터 링크: 비트 클록에 대한 한 링크; 다른 채널 각각에 대한 2 컨덕터(즉, 하나의 좌측 채널 컨덕터와 하나의 우측 채널 컨덕터): 상에 전송된다. 바람직하게는, 수 신기는 하나 이상의 DSD 출력부를 갖고, 전송된 패킷(예를 들어 오디오 샘플 패킷)으로부터 오디오 데이터를 추출하고, 상기 추출된 데이터를 DSD 출력 스트림으로 인가하기에 필요한 만큼 재 포맷하고, DSD 포맷의 추출된 데이터를 하나 이상의 DSD 출력 포트로 인가한다.In a preferred embodiment, the transmitter according to the invention is configured to accept Direct Stream Digital (DSD) input data and format it for transmission to IEC60958-type during the data island. Audio data (eg, SACD or “Super Audio CD” data) in conventional DSD (Direct Sream Digital) format may be a three-conductor link: one link to the bit clock; 2 conductors (ie, one left channel conductor and one right channel conductor) for each of the other channels. Preferably, the receiver has one or more DSD outputs, extract audio data from transmitted packets (e.g., audio sample packets), reformat the extracted data as needed to apply it to the DSD output stream, Apply extracted data in DSD format to one or more DSD output ports.

바람직하게는, 본 발명에 따른 송신기는 DSD 입력 데이터를 받아들이고, S/PDIF 오디오 데이터를 전송하기 위해 상술한 본 발명의 바람직한 실시예에 따른 시스탬 내에 사용되는 것과 동일한 포맷을 갖는 오디오 샘플 패킷으로 전송하기 위해 데이터를 재 포맷하여 DSD 입력 데이터에 응답하도록 구성된 입력 인터페이스를 갖는다. 바람직하게는, 송신기는 필요한 재 포맷을 수행하기 위해 (입력 데이터 소스로부터의) 입력 데이터 포맷을 나타내는 채널 상태 비트로 프로그램된 레지스터를 이용한다.Preferably, the transmitter according to the present invention accepts DSD input data and transmits it in an audio sample packet having the same format as used in the system according to the preferred embodiment of the present invention described above for transmitting S / PDIF audio data. And has an input interface configured to respond to DSD input data by reformatting the data. Preferably, the transmitter uses a register programmed with channel status bits that represent the input data format (from the input data source) to perform the necessary reformat.

바람직한 실시예에서, 본 발명에 따른 송신기는 DSD 포맷 입력 오디오의 다중 스트림을 받아들일 수 있는 입력 인터페이스를 갖는다. 이러한 몇 가지 실시예에서, 송신기는, 각 DSD 스트림이 독립된 클록을 가질 때도(따라서 모든 입력 DSD 컨덕터에서 수신된 비트들이 패킷화 되어야 한다) 다중 DSD 링크로부터 DSD 포맷 입력 오디오 데이터를 받아들 일 수 있고, 데이터를 패킷으로(바람직하게는 상술한 포맷을 갖는 오디오 샘플 패킷으로) 전송하도록 포맷할 수 있는 입력 인터페이스를 갖는다.In a preferred embodiment, the transmitter according to the invention has an input interface capable of accepting multiple streams of DSD format input audio. In some such embodiments, the transmitter can accept DSD format input audio data from multiple DSD links even when each DSD stream has an independent clock (and therefore the bits received at all input DSD conductors must be packetized). It has an input interface that can be formatted to transmit data in packets (preferably in audio sample packets having the format described above).

송신기가 상술한 바와 같이 (3-컨덕터: 비트 클록에 대한 한 컨덕터; L/R 클 록데 대한 한 컨덕터; 데이터를 위한 다른 컨덕터: 상에)I2S 포맷으로 입력 오디오 데이터를 받아들이도록 구성될 때, 송신기는 또한 바람직하게는 동일한 3-컨덕터 입력 포트에서 DSD 포맷으로 오디오 데이터를 받아들이고 전송하도록 구성된다. 이러한 송신기는 바람직하게는, 3개 입력 스트림을 적절하게 상술한 포맷을 갖는 오디오 샘플 패킷으로 전송하기 위한 입력 데이터를 포맷하기 위한 회로로 매핑하는 멀티플렉서를 포함한다.When the transmitter is configured to accept input audio data in I 2 S format (on three conductors: one conductor for the bit clock; one conductor for the L / R clock; the other conductor for the data): The transmitter is also preferably configured to accept and transmit audio data in DSD format at the same three-conductor input port. Such a transmitter preferably comprises a multiplexer which maps three input streams into circuitry for formatting the input data for transmission in an audio sample packet having the above-mentioned format as appropriate.

바람직한 실시예에서, 본 발명에 따른 수신기는 하나 이상의 I2S 출력 인터페이스를 갖고, 오디오 샘플 패킷으로부터 PCM 데이터를 복원하고, 상기 복원된 데이터를 I2S 포맷으로 (예를 들어, 송신기에 의해 오디오 샘플 패킷과 함께 수신기로 보내진 오디오 InfoFrame(AI) 패킷 내에 전송된 채널 상태 비트로 프로그램된 레지스터를 이용하여)변형하도록 구성된다.In a preferred embodiment, the receiver according to the invention has one or more I 2 S output interfaces, recovers PCM data from an audio sample packet, and restores the recovered data in an I 2 S format (e.g., by audio by a transmitter). And a register programmed with channel status bits transmitted in the Audio InfoFrame (AI) packet sent to the receiver with the sample packet.

바람직한 실시예에서, 수신기는 1에서 4 까지의 I2S 출력 (각 출력은 3-컨덕터 I2S 링크로 연결되도록 구성된다) 상에서 I2S 포맷으로 (오디오 샘플 패킷으로부터 복원된) 오디오 데이터를 출력하도록 구성된다.In a preferred embodiment, the receiver is configured to output audio data (reconstructed from an audio sample packet) in I 2 S format on 1 to 4 I 2 S outputs (each output configured to be connected to a 3-conductor I 2 S link). Is configured to output.

바람직한 실시예에서, 본 발명에 따른 수신기는 (다른 독립된 클록을 갖는 다른 I2S 데이터 스트림을 다른 출력부에 인가하는 것을 포함하는) 1에서 4까지의 I2S 출력 상에서 I2S 포맷으로 (오디오 샘플 패킷으로부터 출력된) 오디오 데이터를 출력하도록 구성된다.In a preferred embodiment, the receiver according to the invention is in an I 2 S format on 1 to 4 I 2 S outputs (including applying different I 2 S data streams with different independent clocks to different outputs). And output audio data output from the audio sample packet.

바람직한 실시예에서, 본 발명에 따른 수신기는 데이터를 패킷화하기 위한 이용 가능한 채널/스피커 배치에 의해 부과되는 제약 내의 포맷으로 패킷으로부터 추출된 오디오 데이터의 스트림/채널 매핑을 재구성할 수 있는 멀티플렉서 회로를 포함한다. 따라서, 이러한 수신기는, 패킷 (바람직하게는 상술한 포맷을 갖는 오디오 샘플 패킷)으로부터 데이터를 추출하고, 패킷화된 인정되는 포맷의 다른 세트 중 하나로부터 추출된 데이터를 재 포맷한 뒤, 뒤, 오디오 데이터를 (예를 들어 하나 이상의 I2S 링크 상에서) (각각 유일한 스트림/채널 매핑을 갖는) 어떤 포맷의 세트로도 출력할 수 있다.In a preferred embodiment, the receiver according to the invention comprises a multiplexer circuit capable of reconstructing the stream / channel mapping of the audio data extracted from the packet into a format within the constraints imposed by the available channel / speaker arrangement for packetizing the data. Include. Thus, such a receiver extracts data from a packet (preferably an audio sample packet having the above-described format), reformats the extracted data from one of the other sets of packetized recognized formats, and then the audio Data can be output in any format set (eg, on one or more I 2 S links) (each with a unique stream / channel mapping).

바람직한 실시예에서, 본 발명에 따른 수신기는 S/PDIF 포맷 데이터를 출력하도록 구성된다. 바람직하게는, 수신기는 (전부 0들로 구성된) 플랫라인 S/PDIF 데이터를 나타내는 패킷화된 코드를 플랫라인 S/PDIF 포맷 출력 데이터로 변형하도록 구성된다. 몇 가지 실시예에서, 수신기는 패킷 헤더의 4 비트가 대응하는 서브패킷이 "플랫라인" 샘플(즉 전부 0들로 구성된 샘플)을 포함하고 있는 지를 나타내고 있는지를 인지하도록 구성된다. 예를 들어, 수신기는 (상술한 바와 같이) 패킷 헤더의 세 번째 바이트의 4 LSB가 대응하는 서브패킷이 "플랫라인" 샘플을 포함하는 지를 나타내고 있는지를 인지하도록 구성되고, 헤더의 두 번째 바이트의 대응하는 "현재" 비트 (상기 두 번째 바이트의 4 LSB 중 하나)가 대응하는 서브패킷이 샘플을 포함하는 것을 나타낼 때에만, 이들 LSB 중 어떤 것의 "1" 값이 유효하다고 여기도록 구성된다.In a preferred embodiment, the receiver according to the invention is configured to output S / PDIF format data. Preferably, the receiver is configured to transform the packetized code representing flatline S / PDIF data (consisting of all zeros) into flatline S / PDIF format output data. In some embodiments, the receiver is configured to recognize whether four bits of the packet header indicate whether the corresponding subpacket contains a "flatline" sample (ie, a sample consisting entirely of zeros). For example, the receiver is configured to recognize whether 4 LSBs of the third byte of the packet header (as described above) indicate whether the corresponding subpacket contains a "flatline" sample, and the second byte of the header Only when the corresponding "current" bit (one of the 4 LSBs of the second byte) indicates that the corresponding subpacket contains samples, the value of "1" of any of these LSBs is configured to be valid.

바람직하게는, 본 발명에 따른 수신기는 DSD 데이터의 인코딩된 버전을 포함하는 오디오 샘플 패킷에 응답하여 DSD 포맷으로 데이터를 출력하도록 구성된다. 바람직하게는, 수신기는 DSD 데이터의 인코딩된 버전을 포함하는 오디오 샘플 패킷에 응답하여, 독립된 클록을 가지고 다중 DSD 데이터 스트림을 출력하도록 구성된다. 수신기가 오디오 샘플 패킷에 응답하여 (비트 클록에 대해 하나의 컨덕터; L/R에 대한 하나; 및 데이터에 대한 다른 하나의 컨덕터를 포함하는 3-컨덕터 링크로의 연결을 위해) 출력 포트에서 I2S 포맷으로 오디오 데이터를 출력하도록 구성되고, 바람직하게는 수신기는 또한 동일한 출력 포트에서 DSD 포맷으로 오디오데이터를 출력하도록 구성된다(예를 들어, 수신기는 오디오 샘플 패킷으로부터 복원된 3 개의 입력 스트림을 출력 포트의 적절한 컨덕터로 매핑하는 멀티플렉서를 포함한다).Preferably, the receiver according to the invention is configured to output the data in DSD format in response to an audio sample packet comprising an encoded version of the DSD data. Preferably, the receiver is configured to output multiple DSD data streams with an independent clock, in response to an audio sample packet containing an encoded version of the DSD data. The receiver responds to the audio sample packet with an I 2 at the output port (for connection to a three-conductor link containing one conductor for the bit clock; one for the L / R; and one conductor for the data). Is configured to output audio data in the S format, preferably the receiver is also configured to output audio data in the DSD format at the same output port (e.g., the receiver outputs three input streams recovered from the audio sample packets). Includes a multiplexer that maps to the appropriate conductor of the port).

본 발명의 바람직산 실시예들에서, 시리얼 링크를 통한 오디오 데이터의 전송은 픽셀 클록에 의해서만 구동되어, 오리지널 오디오 샘플 클록은 ACR(Audio Clock Regeneration)으로 알려진 동작으로 수신기에서 재생성되어야 한다. 다음으로 ACR아 바람직한 방법으로 구현되는 본 발명의 몇 가지 실시예를 설명한다.In preferred embodiments of the present invention, the transmission of audio data over the serial link is driven only by the pixel clock so that the original audio sample clock must be regenerated at the receiver in an operation known as ACR (Audio Clock Regeneration). Next, some embodiments of the present invention, which are implemented by ACR as a preferred method, will be described.

상술한 바와 같이, 본 발명의 바람직한 실시예에 따른 시스템은 (TMDS 도는 다른 시리얼 링크를 통해 데이터 아일랜드에서 전송될 오디오 데이터에 대한) 오디오클록을 나타내는 타임 스탬프("CTS" 값)을 전송하고, 바람직하게는 오디오 클록 재생성에 사용되는 "CTS" 값 및 "N" 값 모두를 포함하는 "오디오 클록 재생성" 패킷을 전송한다. "N" 값은 수신기가 오디오 클록을 재생성하기 위해 픽셀 클록의 주파수를 승산하는 분수의 분자를 나타내는 "분자" 값이다.As mentioned above, a system according to a preferred embodiment of the present invention transmits a time stamp (“CTS” value) indicating an audio clock (for audio data to be transmitted on a data island over a TMDS or other serial link), and preferably Preferably transmit an "audio clock regeneration" packet containing both the "CTS" value and the "N" value used for the audio clock regeneration. The "N" value is a "molecular" value that represents the numerator of the fraction by which the receiver multiplies the frequency of the pixel clock to regenerate the audio clock.

본 발명의 시스템의 수신기에 구현될 수 있는 클록 재생성 방법에는 다양한 방법이 있다. 많은 비디오 소스 장치에서, 오디오 및 비디오 클록은 코먼 클록(common clock)으로부터 생성된다. 이 경우, 오디오 및 비디오 클록 사이에 비율 (정수로 나눈 정수) 관계가 존재한다. 클록 재생성 구조는 이들 비율 관계의 이점을 취할 수 있고, 또한 이들 두 클록 사이에 이러한 관계가 없는 환경에서도 동작할 수 있다.There are various methods of clock regeneration that can be implemented in the receiver of the system of the present invention. In many video source devices, audio and video clocks are generated from a common clock. In this case, there is a ratio (integer divided by integer) relationship between the audio and video clocks. The clock regeneration scheme can take advantage of these ratio relationships and can also operate in environments where there is no such relationship between these two clocks.

도 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 is a block diagram of a structural model of the overall system used by the preferred embodiment of the system according to the present invention for audio clock regeneration. The transmitter is known as the pixel clock (video clock) and audio reference clock ("MCLK" or master clock), where MCLK has a frequency equal to Z * Fs, where Fs is the audio sample rate and Z is typically Y * 128. Where Y is a small integer such as 1, 2 or 3). The transmitter delivers the numerator (N) and denominator (CTS), and pixel clock for this ratio to the receiver (through the transmitter's format, encoding and transmission circuitry 138) over the serial link. The recovery and decoding circuitry 139 in the receiver then recovers the data representing the pixel clock and the N and CTS values, and the receiver uses the clock divider 132 and clock multiplier 133 (the frequency is referred to as "PixelClock"). Regenerate the MCLK clock from the pixel clock. The clock multiplier 133 is typically a PLL including a phase detector 134, a low-pass filter 135, a voltage-controlled oscillator 136 and a frequency divider 137, connected as shown in FIG. 16. Is implemented. The exact relationship between MCLK and pixel clock frequency is Z * Fs = PixelClock * N / CTS.

송신기는 도 15에 도시된 바와 같이 (일반적으로 입력 데이터 소스에 의해 입력된) 분자 "N" 값을 판단하고, "N"을 나타내는 데이터를 레지스터(129)에 저장한다. N 값은 클록 디바이더(130)에서 사용되며, 클록 디바이더(130)는 또한 MCLK 클록보다 인자(N) 만큼 느린 중개 클록을 생성하기 위해 (Z*Fs의 주파수를 갖는) MCLK를 수신한다. 픽셀 클록 및 중개 클록은 카운터(131)에 인가된다. 카운터(131)는 중개 클록의 각 클록 동안 (마지막 CTS 값이 인가된 뒤로) 경과된 픽셀 클록 사이클의 수를 카운팅 함으로써 CTS(Cycle Time Stamp) 카운트를 생성한다.The transmitter determines the molecular "N" value (generally input by the input data source) as shown in FIG. 15 and stores the data representing "N" in register 129. The N value is used in clock divider 130, which also receives MCLK (with a frequency of Z * Fs) to generate an intermediate clock that is slower by a factor N than the MCLK clock. The pixel clock and the intermediate clock are applied to the counter 131. The counter 131 generates a cycle time stamp (CTS) count by counting the number of pixel clock cycles that have elapsed (after the last CTS value has been applied) for each clock of the intermediate clock.

N 및 CTS 값을 나타내는 데이터는 (바람직하게는 데이터 아일랜드 동안 TMDS 링크를 통해 포맷, 인코딩 및 전송 회로(138)에 의해 전송된 오디오 클록 재생성 패킷 각각으로) 수신기로 전송되고, 픽셀 클록은 수신기로 인가된다. 상기 픽셀 클록은 바람직하게는 TMDS 링크의 클록 채널(예를 들어 도 2의 채널(CHC) 로 (예를 들어, 도 15의 회로(138)에 의해) 수신기로 전송된다.Data representing the N and CTS values is transmitted to the receiver (preferably in each of the audio clock regeneration packets transmitted by the format, encoding and transmission circuitry 138 via the TMDS link during the data island) and the pixel clock is applied to the receiver. do. The pixel clock is preferably transmitted to the receiver (e.g., by circuit 138 of FIG. 15) on the clock channel (e.g., channel CHC of FIG. 2) of the TMDS link.

MCLK 및 픽셀 클록 사이에 일정한 비율 관계가 존재하면, 이 두 클록은 정확히 동기하고, 연속하는 CTS 값들은 상수로 빨리 수렴한다. MCLK 및 픽셀 클록이 동기하지 않거나, 그들 사이에 약간 량의 지터가 존재하면, 연속하는 CTS 값들은 일반적으로 2개 또는 가능한 3 개의 다른 값을 반복한다. If there is a constant ratio relationship between the MCLK and the pixel clock, these two clocks are synchronized exactly, and successive CTS values quickly converge to a constant. If the MCLK and pixel clock are not synchronized or there is some amount of jitter between them, successive CTS values generally repeat two or three other possible values.                 

바람직한 실시예에서, 본 발명에 따른 송신기는 (128*Fs의 주파수를 갖는 MCLK 가 아닌) 128*Fs의 몇 배의 주파수를 갖는 MCLK를 받아들이고, 이러한 MCLK 각각을 동일한 분자 값 "N"을 이용하여 주파수 분할하도록 구성된다.In a preferred embodiment, the transmitter according to the invention accepts an MCLK with a frequency several times 128 * Fs (not an MCLK with a frequency of 128 * Fs), each of which uses the same molecular value "N". Configured to frequency divide.

(Fs=32kHz를 갖는 데이터, Fs=44.1kHz를 갖는 데이터 및 Fs=48kHz를 갖는 데이 등의 다른 샘플 레이트 각각을 갖고, 오디오 데이터의 몇 가지 타입이 송신기로 입력되는) 다른 바람직한 실시예에서, 본 발명에 따른 송신기는 (주파수가 모든 가능한 오디오 샘플 주파수의 최대 공약수인)오디오 클록의 "분할된(divided down)" 버전에 기초한 오디오클록을 받아들이도록 구성된다. 이러한 오디오 클록의 주파수는 Z*Fs/M 이고, 여기서 Z 및 M 은 정수, Fs는 오디오 샘플 주파수이며, Fs/M은 모든 가능한 오디오 샘플 주파수의 최대 공약수이다. 이러한 송신기를 사용하기 위해, 수신기는 전송된 타임 스탬프로부터 오디오 클록의 "분할된(divided down)" 버전을 재생성하도록 구성되고, 또한 바람직하게는 재생성된 클록에 적절한 인자(factor)를 곱한 주파수 배율을 통해 재생성된 클록으로부터 오리지널 오디오 클록을 재생성하도록 구성된다. 이 인자는 바람직하게는 "오디오 클록 재생성" 패킷으로, 수신기로 통신된다.In another preferred embodiment (with different types of audio data each having different sample rates, such as data with Fs = 32 kHz, data with Fs = 44.1 kHz, and days with Fs = 48 kHz, etc.), The transmitter according to the invention is configured to accept an audio clock based on a "divided down" version of the audio clock (frequency is the greatest common factor of all possible audio sample frequencies). The frequency of this audio clock is Z * Fs / M, where Z and M are integers, Fs is the audio sample frequency, and Fs / M is the greatest common divisor of all possible audio sample frequencies. To use such a transmitter, the receiver is configured to regenerate a "divided down" version of the audio clock from the transmitted time stamp, and preferably also multiplies the regenerated clock by an appropriate factor And regenerate the original audio clock from the regenerated clock. This factor is communicated to the receiver, preferably in an "audio clock regeneration" packet.

가장 낮은 주파수들("기본 주파수(base frequencies)"로 불린다)의 작은 세트의 배수인 몇 가지 클록 주파수를 지원하기 위해 통신 링크가 요구되면, 원하는 주파수에 대응하는 기본 주파수만이 전송될 필요가 있고, 수신기에서 상기 원하는 주파수는 상기 기본 주파수를 적절한 인자로 곱함으로써 재생성될 수 있다. 이것은 수신기가 더 단순하고 가능한 더 신뢰성이 있는 클록 재생성 PLL로 구현될 수 있게 하는 이익을 갖는다.If a communication link is required to support several clock frequencies that are multiples of a small set of the lowest frequencies (called "base frequencies"), then only the base frequencies corresponding to the desired frequencies need to be transmitted. The desired frequency at the receiver can be regenerated by multiplying the fundamental frequency by an appropriate factor. This has the advantage that the receiver can be implemented with a simpler and possibly more reliable clock regeneration PLL.

예를 들어, 일반적으로 사용되는 오디오 포맷에서, 데이터 레이트는 32kHz 또는 48kHz의 배수이다. 이들 주파수 양쪽 모두를 지원하도록 설계된 PLL은 32kHz에서 48kHz 범위의 기준 주파수를 필요로 한다. (주파수가 최대 공약수 16kHz 인) 분할된 오디오 클록을 이용하여 데이터가 전송되면, 클록 재생성 PLL은 (수신기가 어떤 오리지널 오디오 클록을 재생성하기 위해, 2 및 3의 배율 인자로, 주파수 배율 회로를 포함하도록 구성될 필요가 있더라도)기준 클록이 16kHz가 되도록 구현될 수 있다.For example, in commonly used audio formats, the data rate is a multiple of 32 kHz or 48 kHz. PLLs designed to support both of these frequencies require reference frequencies in the 32kHz to 48kHz range. When data is transmitted using a divided audio clock (frequency is the greatest common factor 16 kHz), the clock regeneration PLL may include a frequency multiplier circuit, with a scaling factor of 2 and 3, in order for the receiver to regenerate some original audio clock. May be implemented such that the reference clock is 16 kHz.

한편, 더욱 구체적인 구현은 전송된 클록 주파수로 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 설계 중 하나는 가장 효율적일 것이다.On the other hand, a more specific implementation uses 32 kHz as the transmitted clock frequency. When transmitting audio data with a rate of 48 kHz, this has two drawbacks that make the implementation ineffective. First, on the transmitter side, the 48 kHz clock needs to be synchronized to the 32 kHz clock using a 2/3 magnification circuit, which requires a complex PLL on the transmitter side, whereas the implementation described in the previous paragraph is hardware dependent. It only requires a divider (counter) on the transmitter side that can be implemented more effectively. The receiver side also requires a 3/2 clock regeneration circuit to resynchronize the received 32 kHz clock to the desired 48 kHz clock. This is possible in two possible implementations: a frequency divider (half the frequency of the regenerated 32 kHz clock) before phase detection of the PLL (eg, before phase detection 134 of FIG. 16), and divide-by three) including a frequency divider (implementation of frequency divider 137 of FIG. 16 with N = 3); Or a PLL having a divide-by three frequency divider (implementation of the frequency divider 137 of FIG. 16 at N = 3) followed by a frequency divider that halves the 96 kHz frequency generated in the PLL. One requires a complex clock regeneration circuit in the receiver having: Although the second common implementation has the problem of requiring a higher VCO output (96 kHz) than the highest actual desired frequency (48 kHz), which unnecessarily increases the difficulty of the PLL VCO design, reuse of these process techniques and previous designs. Depending on such factors, one of these PLL designs will be most efficient.

위의 예는 오디오 클록 주파수가 32kHz 및 48kHz로 가정하지만, 예시적인 목적으로 가정한 것이다. 실제 일반적으로 사용되는 오디오 주파수는 현재 32kHz, 44.1kHz 및 48kHz의 x1, x2 및 x4 배이고, 더 높거나 더 낮게(/2, /4) 승산하는 것 모두 개발 중에 있다.The above example assumes that the audio clock frequencies are 32 kHz and 48 kHz, but for illustrative purposes. In practice, the commonly used audio frequencies are now x1, x2 and x4 times 32 kHz, 44.1 kHz and 48 kHz, and both higher and lower multipliers (/ 2, / 4) are under development.

일반적으로 사용되는 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구현 요구도 감소된다. 입력 오디오 주파수의 더 큰 범위가 지원되기 때문에, 수신기 내의 구현의 단순화는 이에 대응하여 더 커진다.Even for the three commonly used frequencies of 32 kHz, 44.1 kHz, and 48 kHz, the simplification of the receiver implementation is based on fundamental frequencies such as 16 kHz (= 32 kHz / 2 = 48 kHz / 3) or 22.05 kHz (= 44.1 kHz / 2). B) or an audio clock having a multiple of each fundamental frequency (MB) is applied to the transmitter, and in response to this audio clock a time stamp (CTS value), molecular values "N" and "L", denominator value "D", And operating the transmitter to apply a pixel clock to the receiver. The receiver includes a frequency divider (implementing circuit 132 of FIG. 15) that regenerates the intermediary clock (with frequency B / N) from the time stamp and pixel clock, and a PLL and appropriately multiplies the intermediary clock to "N". And a regeneration circuit (implementation of circuit 133 of FIG. 15) which regenerates the audio clock having any of the desired frequencies BL = 32 kHz, BL = 44.1 kHz or BL = 48 kHz from the “L” value. This alleviates the design requirements because the reference frequency range of the PLL in the regeneration circuit of the receiver is reduced from 32 kHz-48 kHz to 16 kHz-22.05 kHz. In this embodiment, the transmitter does not need any PLL and the PLL implementation requirements in the receiver are reduced. Since a larger range of input audio frequencies is supported, the simplification of implementation in the receiver is correspondingly greater.

더욱 일반적으로 본 발명의 바람직한 실시예에서, 송신기는 입력 오디오 클록(이 주파수 b는 모든 가능한 입력 오디오 클록 주파수들의 최대공약수이다)의 "분할된" 버전에 기초한 오디오 클록을 받아들이고, 이러한 오디오 클록에 응답하여 타임 스탬프(CTS 값), 분자 값 "N", "L", 분모 값 "D" 및 픽셀 클록을 수신기로 인가하도록 구성된다. 수신기는 타임 스탬프 및 픽셀 클록으로부터 (주파수 B/N을 갖는) 중개 클록을 재생성하는 주파수 디바이더(도 15의 회로(132)의 구현), 및 및 PLL을 포함하고 중개 클록 및 "N" 및 "L" 값으로부터 주파수 BL(여기서 BL은 가능한 오디오 샘플 주파수들 중 어느 하나와 같다)을 갖는 오디오 클록을 재생성하기 위해 중재 클록의 주파수 배율을 적절하게 완수하는 재생성 회로(도 15의 회로(133)의 구현)로 구현된다. 선택적으로, 송신기는 "L 값을 인가하지 않고, 수신기 내의 재생성 회로는 중개 클록 및 "N" 값으로부터(B와 같은 주파수를 갖는) 입력 오디오 클록의 "분할된' 버전만을 재생성한다.More generally, in a preferred embodiment of the present invention, the transmitter accepts and responds to an audio clock based on a "divided" version of the input audio clock (this frequency b is the greatest common divisor of all possible input audio clock frequencies). To apply a time stamp (CTS value), molecular value "N", "L", denominator value "D", and pixel clock to the receiver. The receiver includes a frequency divider (implementing circuit 132 of FIG. 15) that regenerates an intermediate clock (with frequency B / N) from the time stamp and pixel clock, and a PLL, and the intermediate clock and "N" and "L". Implementation of a regeneration circuit (circuit 133 of FIG. 15) appropriately fulfilling the frequency magnification of the arbitration clock to regenerate an audio clock having a frequency BL from which value BL is equal to any of the possible audio sample frequencies. Is implemented as Optionally, the transmitter does not apply an "L value" and the regeneration circuit in the receiver regenerates only a "divided" version of the input audio clock (with a frequency equal to B) from the intermediate clock and the "N" value.

타임 스탬프 값("CTS" 값) 및 픽셀 클록을 수신기로 전송함으로써 오디오 클록이 전송되는 본 발명의 바람직한 실시예에 따른 시스템에서, 이들 클록이 모두 공통(common) 클록에서 끌러낸 것이라는 점이 명확할 때, 송신기는 오디도 클록(예를 들어 도 15의 송신기에 인가된 MCLK) 및 픽셀 클록을 동기화하기 위해 자동-위상 정렬을 구현하도록 구성된다. 이것은 타임 스탬프 값이 시간에 따라 변하지 않음을 보증한다.In a system according to a preferred embodiment of the invention in which an audio clock is transmitted by sending a time stamp value (“CTS” value) and a pixel clock to the receiver, when it is clear that these clocks are all drawn from a common clock. The transmitter is configured to implement auto-phase alignment to synchronize the pixel clock with the audio clock (eg MCLK applied to the transmitter of FIG. 15). This ensures that the time stamp value does not change over time.

픽셀 클록(또한 아래에서 "비디오 클록"으로 불린다) 및 오디오 클록이 동기하거나 거의 동기하면, 오디오 클록 정보는 오디오 클록 주기 단위로 비디오 클록 주기의 수를 카운팅 함으로써 링크를 통해 전송될 수 있다. 오디오 및 비디오가 동기되면, 이 숫자는 일정해야 한다. 그러나, 오디오 클록의 라이징 에지가 비디오 클록의 라이징 에지 매우 근처에서 발생하면, 아주 작은 양의 지터가 오디오 클록 에지를 비디오 클록 에지의 앞뒤로 움직일 수 있다. 이것은 "오디오 클록 주기 당 비디오 클록 주기" ("CTS" 값)의 카운트가 오버 타임 변동하게 한다. CTS 값의 이 지터는 재생성된 오디오 클록의 퀄리티에 잠재적으로 영향을 주고, 오리지널 오디오 클록 내의 작은 양의 지터가 증폭되는 정도까지 영형을 준다(재생성된 오디오 클록은 오리지널 오디오 클록에 비해 더 나쁜 퀄리티를 가지고 있다는 점에서).If the pixel clock (also referred to below as the "video clock") and the audio clock are synchronous or nearly synchronous, the audio clock information can be transmitted over the link by counting the number of video clock cycles in audio clock cycles. If the audio and video are synchronized, this number must be constant. However, if the rising edge of the audio clock occurs very near the rising edge of the video clock, a very small amount of jitter can move the audio clock edge back and forth of the video clock edge. This causes the count of " video clock period per audio clock period " (" CTS " value) to vary over time. This jitter of the CTS value potentially affects the quality of the regenerated audio clock and contributes to the extent that a small amount of jitter in the original audio clock is amplified (the regenerated audio clock has a worse quality than the original audio clock). In that it has).

오디오 클록 내의 지터에 의한 CTS 내의 지터 문제를 처리하기 위해, 본 발명의 바람직한 실시예는 지연을 자동적으로 선택하도록 클록 도메인 "경계" (오디오 및 비디오 클록 상의 경계)에서 오버샘플링 기술을 이용하여, 셋업 및 홀드 타임을 최대화한다. 즉, 오디오 클록의 다양한 위상-쉬프트된 버전이 생성되고 (예를 들어, 비디오 클록 자체 및 비디오 클록의 반전 등의 비디오 클록의 다양한 버전을 이용하여 오디오 클록을 "오버샘플링"함으로써), 최소의 CTS 지터를 만드는 샘플들 의 결과 스트림들 중 하나가 선택된다. 이것은 비디오 및 오디오 클록이 동기화되고 적당히 안정적인 한 어떤 "CTS 지터"도 막을 수 있다. 이러한 설계의 중요한 이점은 시스템 레벨의 설계를 단순화할 수 있다는 것이다(본 발명이 오디오 및 비디오 클록 스큐(skew)에 대해 걱정할 필요성을 제거했기 때문이다).To address the jitter problem in the CTS due to jitter in the audio clock, a preferred embodiment of the present invention uses an oversampling technique in the clock domain “boundary” (boundary on the audio and video clock) to automatically select a delay. And maximize hold time. That is, various phase-shifted versions of the audio clock are generated (eg, by "oversampling" the audio clock using various versions of the video clock, such as the video clock itself and inversion of the video clock), and the minimum CTS. One of the resulting streams of samples making jitter is selected. This can prevent any "CTS jitter" as long as the video and audio clocks are synchronized and reasonably stable. An important advantage of this design is that it can simplify system-level design (since the present invention eliminates the need to worry about audio and video clock skew).

몇 가지 실시예에서, 송신기는 비디오 클록(VCLK) 및 반전된 비디오 클록(VCLK_bar)을 이용하여 오디오 클록 에지를 카운팅하여, 2 세트의 CTS 값을 생성하고, 상기 2 세트의 CTS 값을 비교하여 어떤 것이 시간에 따라 덜 적은 변동을 나타내는 것을 판단한다. VCLK-기본의 출력은 이것이 시간에 따라 더 적은 CTS 값 변동을 보이면 VCLK_bar-기본의 출력으로 스위칭되는 옵션으로, 처음에 (수신기로 전송될 CTS 값으로) 선택될 수 있다. 이러한 실시예들은 순수한 디지털 설계를 갖는 이점을 갖고, 이를 달성하기 위한 회로는 집적 회로로 자동적으로 구현(배치 또는 라우팅) 될 수 있고, 더 쉽게 새로운 집적 회로 제작 프로세스로 변형될 수 있다.In some embodiments, the transmitter counts audio clock edges using video clock VCLK and inverted video clock VCLK_bar to generate two sets of CTS values, and compares the two sets of CTS values to determine which It is determined that this represents less variation with time. The output of the VCLK-based can be selected initially (as the CTS value to be sent to the receiver) with the option that it will switch to the VCLK_bar-based output if it shows less CTS value variation over time. These embodiments have the advantage of having a pure digital design, and the circuitry to achieve this can be automatically implemented (placed or routed) into an integrated circuit, and more easily transformed into a new integrated circuit fabrication process.

다른 실시예들은 비디오 클록의 다양항 위상 버전을 생성하기 위해 몇 가지 지연 셀들을 이용하고, 다른 버전의 비디오 클록을 각각 이용하는 CTS 값 세트를 생성함으로써 다양한 세트의 CTS 값을 생성한다. 그러면 송신기는 천이(transition)하기 위한 상기 세트의 CTS 값들을 모니터하고, 가장 적은 천이를 갖는 세트를 선택한다. 이 방법은 송신기 칩 상에서 아주 작은 면적을 이용하지만 핸드 디자인 및 타이밍 크리티컬 섹션에 대한 레이아웃을 요구한다.Other embodiments generate several sets of CTS values by using several delay cells to generate various phase versions of the video clock, and generating a set of CTS values each using a different version of the video clock. The transmitter then monitors the set of CTS values for transition and selects the set with the least transition. This method uses a very small area on the transmitter chip but requires layout for hand design and timing critical sections.

"자동 정렬(autoaligning)"이 행해지는 레이트는 (다른 세트의 CTS 값들 사 이의 스위칭) 어지간히 낮게 유지되어야 한다(초 단위의 타임 스케일로, 또는 시작할 때와 오디오 또는 비디오 주파수가 변할 때 만). 이것은 오디오 및 비디오 클록 사이에 조금 느린(즉, 온도 관련되) 위상 쉬프트가 없다면, 오디오 클록 및 비디오 클록 타이밍은 간섭성의(coherent) 오디오 및 비디오가 전송되었는지를 특정 설계에서 많이 예상하지 못하기 때문이다. 비디오 및 오디오 클록의 상대적인 타이밍이 상당히 자주 변동되면(즉, 간섭성이 없는 비디오 및 비디오의 경우), CTS 카운팅 방법의 용도인 링크를 통해 전송된 CTS 값이 변동된다.The rate at which "autoaligning" is done (switching between different sets of CTS values) should be kept quite low (on a time scale in seconds, or only at the start and when the audio or video frequency changes). This is because without a slightly slow (ie temperature related) phase shift between the audio and video clocks, the audio clock and video clock timings do not much predict in a particular design whether coherent audio and video have been transmitted. . If the relative timing of the video and audio clocks fluctuates quite often (ie, for non-interfering video and video), the CTS value transmitted over the link, which is the purpose of the CTS counting method, is changed.

자동 정렬이 계속해서 수행되면, 오디오 및 비디오 클록이 완전히 동기하지 않는 경우(즉, 두 클록 신호 사이에 느린 드리프트)에 전송된 CTS 값이 정확하다는 것을 보증하기 위해 부가적인 논리부가 필요하다. 이것은 도 22를 관찰함으로써 알 수 있다.If automatic alignment continues to be performed, additional logic is required to ensure that the transmitted CTS value is correct if the audio and video clocks are not fully synchronized (ie, slow drift between the two clock signals). This can be seen by observing FIG.

도 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 에지에 기초한 누적 카운트 사이의)상기 차이 카운트는 이러한 에러를 피하기 위해 수신기로 전송되어야 한다.Referring to FIG. 22, first, an audio clock for VCLK timing is shown in Case 1, and the falling edge of VCLK is used as a reference, and a small CTS count is calculated based on both the rising edge and the falling edge of the VCLK counter (ie, based on VCLK). One CTS count and another CTS count based on the inversion of the VCLK). Then, if the audio clock edge drifts to the right as shown in case 2, it goes beyond the VCLK falling edge, the "rising edge VCLK" CTS value remains constant, and the "poring edge VCLK" CTS value is the audio clock edge. Increases by 1 when it crosses the VCLK falling edge (if there is jitter between clocks, the falling edge CTS value will shake to +1 and -1 of the normal value, but the lining edge VCLK when finally settled on the right side of the edge) Remains 1 below). At this time, the automatic alignment circuit in the transmitter according to the present invention should select the "rising edge VCLK" CTS value. As a clue to the discussion, assume that a transition (to rising edge VCLK CTS Aux) is made and returned when the audio clock crosses the falling edge. In this case, the transmitted CTS value is bound around an average value of 27,000, but the overall average value continues to be 27,000. Then, it is used when the "rising edge VCLK" CTS value is a constant of 27,000. And in case 3, time passes further, so the audio clock edge again passes the rising edge of VCLK. We again assume that the same thing happened: switching when the audio clock edge is jittered back and forth near the VCLK rising edge and the audio clock edge is still to the left of the VCLK rising edge before the auto-align circuit switches the VCLK clock edge. do. Again, the average CTS value sent by the rising edge CTS counter is 27,000. The transmitter then switches to the "falling edge VCLK" CTS counter and delivers a constant value of 27,000. Thus, the transmitted CTS value always remains 27,000, but the actual accumulated CTS value is one high. To operate with this result, the transmitter according to the preferred embodiment counts the difference between the accumulated CTS value and the " rising and falling edge VCLK " CTS value, and when the auto-align circuit is switched to the new VCLK edge, The difference count (between the count value and the cumulative count based on the selected new VCLK edge) should be sent to the receiver to avoid this error.

(오디오 클록을 샘플링하기 위해 이용된 픽셀 클록의 다른 버전에 기초한 다른 CTS 값을 선택하는) 상술한 자동 정렬 기술의 대안인, (상술한 오디오 및 픽셀 클록 내의 위상 정렬로부터 생긴) 오디오 클록 내의 지터로 인한 (전송된 CTS 값을 이용하여 재생성된) 재생성된 오디오 클록 내의 증폭된 지터를 줄이는 다른 방법은, 송신기를 상기 픽셀 클록보다 더 높은 주파수를 갖는 클록으로 오디오 클록을 샘플링하도록 구현하는 것이다. 위에서 설명한 바와 같이, 오리지널 오디오 클록 내의 지터는, 재생성된 오디오 클록의 퀄리티에 영향을 줄 수 있는, CTS 값의 지터를 유발할 수 있고, (재생성된 오디오 클록이 오리지널 오디오 클록보다 더 나쁜 퀄리티를 갖는 다는 점에서) 오리지널 오디오 클록 내의 작은 양의 지터가 증폭되기도 한다. 가장 나쁜-케이스의 상태는 오디오 클록 에지가 비디오 클록 에지 가까이 있지만, 상기 에지의 앞뒤로 움직이는 것이다. 이 경우 작은 량의 오디오 및 비디오 클록 지터(예를 들어, 1ns 지터)는 CTS 값이 앞뒤로 토글되면(25MHz 픽셀 클록이 이용되면 40ns까지) 더 많은 양의 지터를 생성할 수 있다. 이 CTS 지터는 낮은 퀄리티의 복원 오디오 클록에서 발생할 수 있다.With jitter in the audio clock (derived from the audio alignment described above and phase alignment in the pixel clock), which is an alternative to the automatic alignment technique described above (selecting different CTS values based on different versions of the pixel clock used to sample the audio clock). Another method of reducing amplified jitter in the regenerated audio clock (regenerated using the transmitted CTS value) is to implement the transmitter to sample the audio clock with a clock having a higher frequency than the pixel clock. As described above, jitter in the original audio clock can cause jitter in the CTS value, which can affect the quality of the regenerated audio clock, and (the regenerated audio clock has a worse quality than the original audio clock). At this point, a small amount of jitter in the original audio clock may be amplified. The worst-case state is that the audio clock edge is near the video clock edge but moves back and forth of the edge. In this case, small amounts of audio and video clock jitter (eg, 1 ns jitter) can produce more jitter if the CTS values toggle back and forth (up to 40 ns if a 25 MHz pixel clock is used). This CTS jitter can occur on low quality reconstructed audio clocks.

(더 높은 주파수에서 샘플링함으로써) 오디오 클록의 좀 더 정확한 측정의 다른 이점은 재생성된 오디오 클록 내의 실제 지터가 좀 더 면밀히 추적되도록 하게 하는 것이다. 지터의 좀 더 정확한 측정은 또한 MCLK 재생성 회로가 커버하는데 필요한 주파수 범위를 줄일 수 있고, 몇 가지 환경에서는 수신기 설계 부분이 좀 더 쉽게 구현될 수 있게 한다.Another advantage of more accurate measurements of the audio clock (by sampling at higher frequencies) is to allow the actual jitter in the regenerated audio clock to be tracked more closely. More accurate measurements of jitter can also reduce the frequency range required for MCLK regeneration circuits to cover, and in some circumstances make receiver design easier to implement.

오디오 클록 주기의 좀 더 섬세한 해상도 측정을 하기 위한 단순한 오버샘플링 방법은 비디오 클록의 라이징 에지 및 폴링 에지 모두를 이용하여 오디오 클록 주기를 측정하는 것이다. 비디오 클록 듀티 사이클이 50%에 근접하면, 이 방법은 비디오 클록의 라이징 (또는 폴링) 에지만을 이용하여 얻을 수 있는 해상도의 2배로 측정할 수 있다. 다른 오버샘플링 방법은 타임 해상도를 10x 또는 30x 까지 늘릴 수 있는, (도 13의 송신기(100) 내의 프로세서(114) 등의 TMDS 코어 프로세스 내의 다른 목적을 위해 일반적으로 생성되는) 오버샘플된 픽셀 클록을 이용하는 것이나, 이것은 좀 더 복잡한 회로를 필요로 하고, 이 좀 더 섬세한 해상도 측정을 링크를 통해 전송하기에 적절한 포맷을 갖는 패킷을 이용해야 할 것을 요구한다.A simple oversampling method for making finer resolution measurements of audio clock periods is to measure the audio clock period using both the rising and falling edges of the video clock. If the video clock duty cycle is close to 50%, the method can measure at twice the resolution achievable using only the rising (or polling) edge of the video clock. Another oversampling method involves oversampling pixel clocks (generally generated for other purposes in TMDS core processes, such as processor 114 in transmitter 100 of FIG. 13), which can increase the time resolution to 10x or 30x. However, this requires more complex circuitry and requires the use of a packet with a format suitable for transmitting this more delicate resolution measurement over the link.

MCLK 및 픽셀 클록이 모두 공통 클록에서 추출되었다는 점에서 상관성이 있다면(따라서, "오디오 클록 주기 당 픽셀 클록 주기"의 카운트를 나타내는 CTS 값이 오디오 데이터의 단일 스트림 또는 스트림 세트의 전송 도중 변동된다고 예상되지 않는다), 본 발명에 따른 송신기는 (CTS 값을 생성하기 위한, 예를 들어, 도 15 송신기의 요소(130 및 131), 회로가 아닌) 프로그램 가능한 CTS 레지스터를 포함하도록 구현될 수 있다. 외부 장치가 업데이트된 CTS 값을 때때로(바람직하게는 주기적으로) CTS 레지스터로 로딩하고, 송신기는 수신기로 전송된 각 오디오 클록 재생성 패킷(Audio Clock Regeneration Packet) 내의 현재 CTS 값을 (CTS 레지스터 내에) 포함하도록 구성된다.If it is correlated in that both MCLK and pixel clocks are extracted from a common clock (and therefore, CTS values representing a count of "pixel clock periods per audio clock period" are not expected to fluctuate during transmission of a single stream or set of streams of audio data). The transmitter according to the present invention may be implemented to include a programmable CTS register (not a circuit, for example elements 130 and 131 of the transmitter of FIG. 15 to generate a CTS value). The external device sometimes loads the updated CTS value into the CTS register from time to time (preferably periodically), and the transmitter includes the current CTS value (in the CTS register) in each Audio Clock Regeneration Packet sent to the receiver. Is configured to.

본 발명의 바람직한 구현에 따른 수신기에서, 오디오 클록 재생성(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를 출력한다.In a receiver in accordance with a preferred implementation of the invention, an audio clock regeneration (ACR) circuit is provided with a pixel clock, a time stamp value CTS, one or more other values from the transmitter (e.g., some other values from the transmitter). Responsive to a single value of one molecular value "N" and a frequency fold value "M"), with a frequency of M * Z * Fs that is several times the first frequency Z * Fs, where Z is generally 128 Configured to apply a version of the audio clock (MCLK) (to an output). For example, the receiver may have an MCLK having a frequency of 128 * Fs in response to M = 1, an MCLK having a frequency of 256 * Fs in response to M = 2, and a frequency of 384 * Fs in response to M = 3. Outputs MCLK with

바람직한 구현에서, 본 발명에 따른 수신기는 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등을 지원하도록 구성될 수 있다.In a preferred implementation, the receiver according to the invention is configured to operate in two modes; A first mode using an internal audio clock regeneration (ACR) circuit (including PLL) to regenerate the audio clock MCLK and optionally also generate one or more clocks having a frequency equal to a multiple of this audio clock; The second ARC circuit is ignored and instead the CTS and N values and pixel clock received from the transmitter are applied to an external device (eg, external PLL unit 160 of FIG. 15) for MCLK clock regeneration. The receiver in the second mode can use the regenerated MCLK from an external device (including by stabilizing in an internal PLL circuit with VCO) and / or send it to another device. In some preferred embodiments, the device of FIG. 15 is an intermediary clock generated by a clock divider 132 in a second mode of operation of a receiver to drive an external ACR device, the intermediate clock being Z * Fs / N. And a regenerated MCLK from an external ACR device. This slight modification of the receiver of FIG. 15 further outputs a regenerated MCLK that is received from an external device or by stabilizing the regenerated MCLK (either in a PLL implementing clock multiplier 133, or in another internal PLL with a VCO). Can be processed. In some embodiments, an external ACR device providing a reconstructed MCLK with the modified receiver of FIG. 15 (operating in a second mode) may provide a PLL (e.g., a PLL that provides stable recovered MCKL only within a relatively narrow frequency range). Voltage controlled crystal oscillators or those comprising a voltage controlled crystal oscillator (VCXO). In this case, the receiver can be either through automatic clock stretching or shrinking (ie, to generate a reduced or increased frequency version of the MCLK signal regenerated from an external PLL when needed), or by automatic sample repetition or By using the MCLK signal regenerated from an external PLL to sample the audio data recovered from the packet, to generate an output audio sample stream having a sampling rate that is different from the frequency of the recovered MCLK signal, however, the output By inserting the repeated sample into the reconstructed audio sample or by removing some sample therefrom).

몇 가지 바람직한 실시예에서, 본 발명에 따른 수신기는 오디오 클록 재생성에 "아주 작은-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로 동작하는 듀티 사이클의 제어는, 아래의 출력 클록 주파수의 시-평균 값을 발생한다:In some preferred embodiments, the receiver according to the present invention utilizes a "very small-N" frequency synthesizer PLL for audio clock regeneration. For example, the PLL implementation of clock multiplier 133 of FIG. 15 receiver is effectively configured by multiplying the frequency of the clock signal from circuit 132 by a non-integer value "N". For example, such a frequency synthesizer PLL may be implemented by elements 134, 135, 136 and 137 of FIG. 16 when the frequency divider 137 is a dual-modulus frequency divider. In such a PLL, the phase detector 134 receives and responds to the outputs of the frequency dividers 132 and 137 to produce a signal representing this relative phase, and the loop filter 135 loop-pass filter and phase detector 134 Receives an output of and generates an error signal representing the relative phase of the outputs of the dividers 134 and 137, wherein the VCO 136 has a frequency approximately equal to (Z * Fs) in response to the error signal from the filter 135. ) Apply the output clock. When "N" is a non-integer that satisfies I <N <I + 1 (where I is an integer), frequency divider 137 receives the output clock and in response Z * Fs / I or Z * Fs / I Outputs a clock with a frequency of +1. When the divider 137 operates cyclically with both modulus (modulus I, then modulus I + 1, then modulus I, in this order), the duty cycle and divider at which the divider 137 operates at modulus I ( The control of the duty cycle in which 137 operates at modulus I + 1 produces a time-averaged value of the following output clock frequency:

(Z*Fs)av = W*Fs, Z<W<(Z+1).(Z * Fs) av = W * Fs, Z <W <(Z + 1).

디바이더(137)는 그 듀티 사이클이 N 과 N 과 가장 가까운 정수 사이의 차이로 설정되도록 구성되어야 하고, 이로써 출력 클록 주파수의 시 평균 값은 Z*Fs로부터 적당한 량 이상으로 크게 차이 나지 않는다.The divider 137 should be configured such that its duty cycle is set to the difference between N and the nearest integer to N, such that the time average value of the output clock frequency does not differ significantly from Z * Fs by more than a reasonable amount.

바람직한 실시예에서, 본 발명에 따른 수신기는 오디오 클록 복원을 위한 좁은 범위의 PLL을 포함하는 회로를 이용한다(예를 들어, 주파수 디바이더(132)로부터 그곳으로의 입력되는 클록의 주파수가 좁은 VCO 주파수 범위 내에 있을 때에만 안정적이고 정확한 도 15 수신기의 클록 배율기(133)의 PLL 구현). 이러한 수신기 내의 ACR 회로는, 좁은-범위 PLL로부터 출력된 재생성된 클록 신호의 주파수를 몇 가지 다른 수 중 어느 하나로 승산하며, 여기서 PLL은 좁은 범위의 주파수를 갖는 재성성된 클록만을 출력 가능하고 이 범위 밖의 주파수를 갖는 재생성된 클록은 필요하거나 요구될 수 있다. 그러나, 주파수 배율 그 자체는 일반적으로 PLL을 요구하며, 본 발명의 이러한 실시예는, (주파수 배율을 위한) 하나 이상의 부가적인 PLL들과 함께 (클록 재생성을 위한) 좁은-범위 PLL이 클록 재생성을 위한 넓은-범위 PLL 보다 단순하거나 덜 비싸다면 일반적으로 유용하다.In a preferred embodiment, the receiver according to the invention uses a circuit comprising a narrow range of PLLs for audio clock recovery (e.g., a narrow VCO frequency range of the incoming clock from frequency divider 132 to it). Stable and accurate PLL implementation of the clock multiplier 133 of the receiver of FIG. The ACR circuit in such a receiver multiplies the frequency of the regenerated clock signal output from the narrow-range PLL by any one of several different numbers, where the PLL is capable of outputting only a regenerated clock with a narrow range of frequencies and in this range. A regenerated clock with an outside frequency may be needed or required. However, the frequency multiplier itself generally requires a PLL, and this embodiment of the present invention provides that a narrow-range PLL (for clock regeneration) with one or more additional PLLs (for frequency multiplier) is capable of clock regeneration. It is generally useful if it is simpler or less expensive than a wide-range PLL.

몇 가지 실시예에서, 본 발명에 따른 수신기는 2 이상의 칩으로 구성된다. 제1 칩은 오디오 클록 재생성에 이용되는 PLL을 제외한 필요한 회로 대부분 또는 모두를 포함하고, 제2 칩은 PLL을 포함한다. 이러한 멀티-칩 모듈(MCM) 구현은 동일한 회로의 단일-칩 구현에 비해, 노이즈를 현저하게 줄일 수 있다. 한편, 상기 제2 칩(예를 들어, 도 16의 회로(161))는 PLL에 이용되는 로우-패스 필터만을 구현하고, PLL의 나머지와 다른 클록 복원 회로는 상기 제1 칩 내에 구현된다. 후자의 실시예에 따른 도 16 구현의 변형에서, 로우-패스 필터(135)는 제거될 수있고, 외부 필터(161) 또는 필터(135)에 의해 수행된 기능은 포함될 수 있고, 수신기는 내부 필터(135) 또는 외부 필터(161) 중 어느 하나를 이용하여 동작하도록 구성된다.In some embodiments, the receiver according to the invention consists of two or more chips. The first chip contains most or all of the necessary circuits except for the PLL used for audio clock regeneration, and the second chip includes the PLL. This multi-chip module (MCM) implementation can significantly reduce noise compared to a single-chip implementation of the same circuit. Meanwhile, the second chip (for example, the circuit 161 of FIG. 16) implements only a low-pass filter used for the PLL, and a clock recovery circuit different from the rest of the PLL is implemented in the first chip. In a variant of the FIG. 16 implementation according to the latter embodiment, the low-pass filter 135 may be removed, the function performed by the external filter 161 or the filter 135 may be included, and the receiver may be an internal filter. Configured to operate using either 135 or external filter 161.

다른 실시예에서, 본 발명에 따른 수신기는 송신기가 동일한 픽셀 클록으로부터 타임 스탬프(CTSv)를 생성하는 시간과 같은 시각에 상기 동일 픽셀 클록으로부터 "안정된" 타임 스탬프(CTSx)를 생성하기 위해 안정된 클록(stable clock)(예를 들어 크리스탈 클록)을 이용하는 오디오 클록 재생성 회로를 포함한다. 수신기는 재생성된 오디오 클록(CTSx 또는 CTSv 타임 스탬프 중 하나를 이용하여 재생성된 오디오 클록) 아니면 피셀 클록의 지터에 의해 발생하는 에러를 줄이기 위해, 적절한 시기에 수신기로부터 일반적으로 전송된 타임 스탬프(CTSv) 대신에 안정 타임 스탬프를 이용한다.In another embodiment, a receiver in accordance with the present invention comprises a stable clock (STS) for generating a "stable" time stamp (CTSx) from the same pixel clock at the same time that the transmitter generates a time stamp (CTSv) from the same pixel clock. audio clock regeneration circuitry using a stable clock (e.g., a crystal clock). The receiver is typically a time stamp (CTSv) transmitted from the receiver in a timely manner to reduce errors caused by jitter in the regenerated audio clock (either the audio clock regenerated using either the CTSx or CTSv time stamp) or jitter in the picel clock. Use a stable time stamp instead.

본 발명에 따른 시스템의 바람직한 실시예는 송신기와 수신기 사이의 오디오 클록(예를 들어, MCLK)를 정송하기 위해 타임-스탬프 방법을 사용하고, 여기서 디지털 사이클 타임 스탬프(CTS) 값은 MCLK 및 CTS 값이 수신기로 전송되는 각 주기의 픽셀 클록 사이클(VCLK 사이클)의 수를 카운팅 함으로써 결정된다. 수신기에서, MCLK는 재성성된 MCLK의 주기당 "CTS" VCLK 사이클을 카운팅 오프함으로써 재구성된다. 이 과정에서, 오리지널 MCLK 및 VCLK("VCLK" 는 픽셀 클록을 지칭한다)의 위상 정렬에 의한 지터뿐만 아니라 오리지널 MCLK 상의 지터 등의 많은 지터 소스가 있을 수 있다. MCLK 및 VCLK 가 독립된 소스를 가지고 있기 때문에, CTS 값은 일반적으로 시간에 따라 다양하고 따라서 지터를 재구성된 MCLK 안으로 삽입한다. 이들과 지터의 다른 소스들이 중요하고 또한 최종 오디오 퀄리티에 영향을 줄 수 있는 반면, 이들은, VCLK 지터를 제외하고, (여기에 개시된) 다른 기술들에 의해 관리되어 복원된 오디오 퀄리티를 떨어뜨리지 않게 한다.A preferred embodiment of the system according to the invention uses a time-stamping method for transmitting an audio clock (eg MCLK) between a transmitter and a receiver, where the digital cycle time stamp (CTS) value is the MCLK and CTS value. This is determined by counting the number of pixel clock cycles (VCLK cycles) of each period transmitted to this receiver. At the receiver, the MCLK is reconfigured by counting off the "CTS" VCLK cycles per cycle of the regenerated MCLK. In this process, there may be many jitter sources such as jitter on the original MCLK as well as jitter by the phase alignment of the original MCLK and VCLK (“VCLK” refers to the pixel clock). Since MCLK and VCLK have independent sources, the CTS value generally varies over time and therefore inserts jitter into the reconstructed MCLK. While these and other sources of jitter are important and can affect the final audio quality, they are managed by other techniques (disclosed here), except for VCLK jitter, so as not to degrade restored audio quality. .

다음에 설명될 실시예들에 의해 제시되는 문제는 VCLK 지터에 위한 복원된 오디오 퀄리티의 열화(degrade)이다. 이러한 열화는 다음의 경우에 명백히 볼 수 있다. MCLK 주파수가 1kHz(1ms 주기)이고, VCLK 가 0.5kHz(2ms 주기) 지터 요소를 가진다고 가정하고, 또한, CTS 값은 (VCLK 주기가 평균보다 길고, 예를 들어, 평균 주기가 사용되는 경우보다 CTS 카운트 값이 더 작게 나오는) VCLK 지터의 첫 번째 반 사이클 동안 측정된다고 가정하면, 평균보다 더 작은 CTS 값은 링크를 통해 전송되고 (VCLK 주기가 평균보다 더 짧을 때) VCLK 지터의 두 번째 반 사이클 동안 MCLK를 재생성하기 위해 이용된다. 평균보다 짧은 VCLK 주기를 카운트 아웃하기 위해 평균보다 작은 CTS 값을 이용하는 것은 재생성된 MCLK 주기가 이상적인 MCLK 보 다 짧게 되도록 하게 한다. 사실 MCLK 지터는 VCLK 지터의 증폭된(더블된) 버전이다. 이것은 링크의 각 사이드에서 VCLK를 이용한 결과이다. 이것은 가장 나쁜 경우이고 잠재적으로 오디오 퀄리티를 심각하게 열화시킬 수 있다.The problem presented by the embodiments to be described next is the degradation of the reconstructed audio quality for VCLK jitter. This deterioration can be clearly seen in the following cases. Assume that the MCLK frequency is 1 kHz (1 ms period) and the VCLK has a 0.5 kHz (2 ms period) jitter element, and the CTS value is (CTS period is longer than the average, for example, CTS than when the average period is used). Assuming that the count value is measured during the first half cycle of VCLK jitter, a smaller than average CTS value is transmitted over the link (when the VCLK period is shorter than average) and during the second half cycle of VCLK jitter. It is used to regenerate MCLK. Using a CTS value less than the average to count out VCLK periods shorter than the average causes the regenerated MCLK period to be shorter than the ideal MCLK. In fact, MCLK jitter is an amplified (doubled) version of VCLK jitter. This is the result of using VCLK on each side of the link. This is the worst case and can potentially seriously degrade audio quality.

요약하면, VCLK 지터를 MCLK로 전송하는 도중의 문제는, VCLK 상의 지터가 CTS의 측정 도중에는 어느 한 위상에 있다가, MCLK 재생성 도중에는 다른 위상에 있을 때 발생한다. 상술한 최악의 경우, CTS 측정 및 MCLK 재생성 사이의 특정 타임 간격은, 본 발명에 따라 정정되는 VCLK 지터의 최대 주파수에 영향을 줄 때만 중요하다. 기본적으로, 특정 CTS 값을 측정, 전송 및 사용하는 데 필요한 시간에 비해 VCLK 지터가 빨리 변화되면, VCLK 지터는 효과적으로 필터링되어 제거될 수 없다. 따라서, CTS 경로에서의 더 긴 지연은 대신에 500Hz (1kHz CTS 클록 레이트에 대한 최고의 케이스) 까지의 VCLK 지터만을 필터링 하여 제거할 수 있음을 의미하며, 예를 들어, 필터링은 500Hz 이하의 주파수를 갖는 지터만을 정정할 수 있다.In summary, a problem during the transmission of VCLK jitter to MCLK occurs when the jitter on VCLK is in one phase during the measurement of the CTS and then in another phase during MCLK regeneration. In the worst case described above, the specific time interval between CTS measurement and MCLK regeneration is important only when it affects the maximum frequency of VCLK jitter that is corrected according to the present invention. Basically, if VCLK jitter changes quickly relative to the time needed to measure, transmit, and use a particular CTS value, VCLK jitter cannot be effectively filtered out and removed. Thus, longer delays in the CTS path mean that only VCLK jitter up to 500 Hz (best case for 1 kHz CTS clock rate) can be filtered out, for example, filtering has a frequency below 500 Hz. Only jitter can be corrected.

VCLK 지터 문제를 해결하기 위해, (지터를 무시할 수 있는) 안정된 타임 베이스가 수신기에서 사용되고, MCLK 주기를 측정하기 위해 "CTS" VCLK 사이클이 송신기 내에서 카운트 오프된 시간과 동일 시각에서 안정된 타임 베이스를 이용하여 "CTS" VCLK 사이클이 수신기 내에서 카운트 오프된다. 안정된 타임 베이스를 사용하는 수신기의 카운트가 알려지면, 한번 안정된 타임 베이스를 사용했기 때문에 지터를 삽입하는 것 없이 MCLK를 재생성하기 위해 나중에 어느 때라도 이것을 사용할 수 있다.To solve the VCLK jitter problem, a stable time base (which can ignore jitter) is used at the receiver, and to measure the MCLK period, a stable time base is created at the same time that the "CTS" VCLK cycle is counted off in the transmitter. "CTS" VCLK cycles are counted off in the receiver. Once the count of the receiver using a stable time base is known, it can be used at any time later to regenerate the MCLK without inserting jitter since once the stable time base has been used.

수신기에서의 안정된 타임 기본은 바람직하게 안정된 클록(XCLK)를 제공하기 위해 수신기 외부의 크리스털을 이용함으로써 구현된다.The stable time basis at the receiver is preferably implemented by using a crystal external to the receiver to provide a stable clock (XCLK).

상술한 스킴을 구현하는 데 주된 어려움은 다음 2가지이다. 첫 째로, 상기 절차는 동일 MCLK 주기에 대한 XCLK 사이클의 수(CTSx)가 수신기 내에서 카운트 오프되는 시각과 동일한 시각에서 송신기 측의 MCLK 주기 내의 VCLK가 발생하는 수(CTSv)의 측정을 요구한다. 즉, 카운팅은 링크의 양 측에서 동시(또는 거의 동시에) 시작해야 한다. 이것은 송신기 및 수신기 내의 카운팅의 시작을 동기화하는 방법을 필요로 한다. 두 번째 어려움은, 송신기 내에서 동시에 측정될 VCLK 사이클의 동일한 CTSv 수를 (XCLK 사이클 내에서) 수신기가 카운트할 필요가 있으며, CTSv 값이 측정할 때마다 변하기 때문에 수신기는 CTSv 값을 포함하는 패킷이 링크를 통해 전송될 때까지 송신기 내에서 어떤 값이 측정되었는지 정확히 알 수 없다. 이것은 송신기에서 현재 측정되고 있는 CTSv 값을 수신기가 예상하여, 링크의 양 사이드에서 같은 (또는 거의 같은) 시간에 카운팅을 정지하는 방법을 요구한다.There are two main difficulties in implementing the above scheme. First, the procedure requires the measurement of the number of CVCv occurrences of the VCLK in the MCLK cycle on the transmitter side at the same time that the number of XCLK cycles CTSx for the same MCLK cycle is counted off in the receiver. That is, counting must begin simultaneously (or nearly simultaneously) on both sides of the link. This requires a method of synchronizing the start of counting in the transmitter and receiver. The second difficulty is that the receiver needs to count (within XCLK cycles) the same number of CTSv of VCLK cycles to be measured simultaneously in the transmitter, and because the CTSv value changes each time it is measured, the receiver will not be able to receive packets containing CTSv values. It is not known exactly what value is measured within the transmitter until it is transmitted over the link. This requires a way for the receiver to anticipate the CTSv value currently being measured at the transmitter and to stop counting at the same (or nearly the same) time on both sides of the link.

송신기 및 수신기 카운팅에 의한 카운트를 동기화하는 다른 많은 방법이 용인될 수 있다. 일반적으로 동기는, 카운팅이 시작해야 하는 시각에서 (VCLK 사이클의 수 등의) 구간을 정의하는 원인(origin)으로서 송신기 및 수신기 양 측 모두에 공통적인 신호를 사용할 것을 요구한다. 이러한 신호를 링크를 통해 전송함으로써, 일찍 시작할 수도 있는 수신기 내의 CTSx 카운팅은 송신기 및 수신기 내의 카운팅을 동기화하기 위해 적절한 양만큼 지연될 수 있다. 어떤 리-싱크 프로세스도 MCLK 및 비디오 신호 소스가 독립적인 상황을 처리할 수 있어야 한다.Many other ways of synchronizing counts by transmitter and receiver counting may be acceptable. Synchronization generally requires the use of a signal common to both the transmitter and receiver as an origin defining an interval (such as the number of VCLK cycles) at the time when counting should begin. By transmitting this signal over the link, CTSx counting in the receiver, which may start early, may be delayed by an appropriate amount to synchronize counting in the transmitter and receiver. Any re-sync process must be able to handle situations where the MCLK and video signal sources are independent.

송신기 내에서 현재 측정되는 CTSv 값을 수신기가 예상하여, 링크의 양측에 서 같은 (또는 거의 같은) 시각에 카운팅이 정지되도록 하는 방법은, CTS 값이 일반적으로 시간에 따라 광범위하게 변동되지 않는다고 예상된다는 사실을 이용할 수 있다(일반적으로, CTS 값은 일반적인 값으로부터 +1 또는 -1 정도의 작은 량만 변동되는 것으로 예상된다). 그러면 이것은 수신기가 작은 범위의 CTSv 값에 대해 CTSX 값을 카운트하고 저장하게 하고, 그런 다음 실제 CTSv 값이 링크를 통해 전송될 때, 수신기는 단지 CTSx 값을 정정하기 위한 포인터로 실제 CTSv 값을 이용할 뿐이다. 이 방법은 CTSx 값이 MCLK 주기의 재생성에 이용될 수 있기 전에 링크를 통해 전송되는 CTSv 패킷의 가장 나쁜 시간 지연까지 CTSx 값이 버퍼링되는 것을 요구한다. 안정 타임 베이스가 이러한 레이턴시를 지터의 채용없이 가능하게 하기 때문에 이 방법은 일반적으로 적당하다.The method by which the receiver anticipates the CTSv value currently measured within the transmitter, causing the counting to stop at the same (or nearly the same) time on both sides of the link, suggests that the CTS value is generally expected to not vary widely over time. The facts can be used (generally, the CTS value is expected to vary only as little as +1 or -1 from the normal value). This allows the receiver to count and store CTSX values for a small range of CTSv values, and then when the actual CTSv values are sent over the link, the receiver only uses the actual CTSv values as a pointer to correct the CTSx values. . This method requires that the CTSx value be buffered until the worst time delay of the CTSv packet sent over the link before the CTSx value can be used for regeneration of the MCLK period. This method is generally suitable because a stable time base allows this latency without the use of jitter.

도 23의 타이밍도는 송신기 및 수신기 카운팅이 어떻게 재-동기화될 수 있는 지를 나타내는 한 예이다. 송신기 내의 CTSv 카운터의 값은 VSYNC 의 리딩 에지에서 캡쳐되고( 이 값은 도 23에서 "CTS_sync"로 표시된다), 높은 우선순위로 링크를 통해 전송된다. CTS_sync 및 대응하는 주기에 대한 CTSv 값(이 값은 도 23에서 "CTSv_0"으로 표시된다)을 이용하여, 수신기 카운팅이 VSYNC 의 리딩 에지에서 처음 시작했다면 송신기 카운팅 및 수신기 카운팅 사이의 지연은 판단될 수 있다. 그런 다음 VCLK 지터가 재생성된 MCLK에 더 이상 영향을 주지 않는 시점에서 (수신기가 MCLK 재생성을 위해 적당한 CTSx 값을 사용할 것이기 때문에) 수신기 내의 카운팅은 적절하게 송신기 카운팅과 동기된다.The timing diagram of FIG. 23 is an example showing how transmitter and receiver counting can be re-synchronized. The value of the CTSv counter in the transmitter is captured at the leading edge of VSYNC (this value is indicated as “CTS_sync” in FIG. 23) and is sent over the link at high priority. Using CTS_sync and the CTSv value for the corresponding period (denoted as “CTSv_0” in FIG. 23), the delay between transmitter counting and receiver counting can be determined if receiver counting first started at the leading edge of VSYNC. have. Then, at the point when VCLK jitter no longer affects the regenerated MCLK (since the receiver will use the appropriate CTSx value for MCLK regeneration), the counting in the receiver is properly synchronized with the transmitter counting.

몇 가지 변형예에서, (MCLK로부터 생성된) 기준 클록에 대한 타임 스탬프가MCLK 그 자체에 대한 타임 스탬프 대신에 링크를 통해 전송된다. 그런 다음 재생성된 기준 클록은 MCLK를 재생성하기 위해 사용된다.In some variations, the time stamp for the reference clock (generated from MCLK) is sent over the link instead of the time stamp for MCLK itself. The regenerated reference clock is then used to regenerate the MCLK.

바람직한 구현에서, 송신기 및 수신기 사이의 동기의 레이턴시(latency)는 신중하게 처리된다. 이 레이턴시는, 수신기가 송신기로 인가된 VSYNC 신호의 지연된 버전에 실제 동기하기 때문에 송신기 및 수신기 사이의 고정 오프셋을 채용할 수 있다. 이것은 이 오프셋이 작을 경우에는 받아들일 수 있지만, 최대 레이턴시는 제어될 필요가 있다. 다른 옵션은 송신기 레이턴시를 패킷으로 링크를 통해 전송하여 적절한 조절을 이룰 것인가를 결정하는 데 수신기가 이것을 이용할 수 있게 하는 것이다.In a preferred implementation, the latency of synchronization between the transmitter and the receiver is handled with care. This latency may employ a fixed offset between the transmitter and the receiver since the receiver is actually synchronous with the delayed version of the VSYNC signal applied to the transmitter. This is acceptable if this offset is small, but the maximum latency needs to be controlled. Another option is to send the transmitter latency over the link as a packet so that the receiver can use it to determine whether to make appropriate adjustments.

수신기는 몇 가지 일반적인 CTSv 값만을 카운트하기 때문에, 카운팅의 시작 포인트는 실제 CTSv 값이 수신기에서 이용 가능하게 될 때까지 전진 방식(ongoing manner)으로 정정될 필요가 있다. VCLK 사이클 또는 XCLK 사이클 어느 쪽도 카운팅에서 제거되거나 추가되지 않는 것은 (롱 텀 드리프트(long term drift)를 방지하기 위해) 위험한 것이기 때문에, 카운팅의 시작이 조절되면, 이전 CTSx 값의 조절에 의해 상기 변화는 고려될 필요가 있을 것이다.Since the receiver counts only a few common CTSv values, the starting point of counting needs to be corrected in an ongoing manner until the actual CTSv values are available at the receiver. Since neither the VCLK cycle nor the XCLK cycle is removed or added to the counting (to prevent long term drift), it is dangerous, if the start of counting is adjusted, the change is made by adjusting the previous CTSx value. Will need to be considered.

상술한 실시예들의 변형예에서, CTS_sync 값은 (VSYNC게 기초하는 것으로 가정한) 비디오 프레임 단위로 한번 전송된다. 이것은 수신기가 송신기-수신기 카운팅 동기의 롱 텀 드리프트를 방지하는 프레임 기본의 작은 정정을 하게 한다. 다른 구현예에서, 카운팅을 동기화하기 위해 CTS_sync 값을 송신기가 전송하게 할 필요가 있다고 호스트에 나타내는 적절한 시기에 수신기는 호스트에 인터럽트를 인가한 다.In a variation of the above embodiments, the CTS_sync value is transmitted once per video frame (assuming VSYNC is based). This allows the receiver to make small corrections to the frame basis that prevent long term drift of transmitter-receiver counting synchronization. In another implementation, the receiver applies an interrupt to the host at an appropriate time indicating to the host that the transmitter needs to send a CTS_sync value to synchronize the counting.

VCLK 지터가 지나칠 정도로 심하지 않으면, 몇 가지 경우에 더 낮은 퀄리티의 오디오 어플리케이션을 위해 VCLK 지터가 (본 발명에 따라) 어드레스 되지 않는 표준 모드의 동작에서 크리스탈 클록 없이 수신기를 이용하는 것이 가능하며, 반면에 더 높은 오디오 퀄리티 어플리케이션에 대해서는 VCLK 지터의 영향을 제거하기 위해 상술한 바와 같이 외부 크리스탈이 제공되고 이용된다.If VCLK jitter is not excessively severe, in some cases it is possible to use the receiver without a crystal clock in standard mode operation where VCLK jitter is not addressed (according to the invention) for lower quality audio applications, while more For high audio quality applications, an external crystal is provided and used as described above to eliminate the effects of VCLK jitter.

MCLK를 재생성하기 위해 VCLK 지터의 전송을 방지하는 상술한 기술은 (VCLK의 주파수가 EMI를 줄이기 위해 일부러 변경되는) 상기 링크 상에서 확산 스펙트럼 클록킹을 지원하도록 하게 할 수 있다. 수신기 내의 구현은 주파수 변동의 최악의 경우를 지원할 필요가 있다.The above-described techniques for preventing the transmission of VCLK jitter to regenerate MCLK can enable spread spectrum clocking on the link (where the frequency of VCLK is deliberately changed to reduce EMI). Implementation in the receiver needs to support the worst case of frequency variation.

많은 CTSx 값을 저장하고 정확한 저장 값을 선택하기 위해 CTSv 값을 이용하는 다른 방법은 수신기가 일반적인 CTSv 값에 대응되는 CTSx 값만을 측정하고, CTSv 값이 이용 가능할 때 CTSx에 대한 정정을 계산하도록 구현하는 것이다. 후자의 방법은 CTSv 변화가 +/-1 보다 큰 경우의 상황에 유용하다고 예상된다. 이것은 링크 상에 확산 스펙트럼 클록킹(clocking)을 이용할 때의 경우 일 수 있다. 이 계산을 하기 위한 많은 클록 사이클이 있을 것이기 때문에, 하드웨어 구현은 많은 영역이라는 불리함을 요구하지 않을 것이다. 수신기 내의 카운팅의 시작을 동기화하고 조절하는 것은 여전이 요구된다.Another way to store many CTSx values and use the CTSv value to select the correct stored value is to implement the receiver to measure only the CTSx value corresponding to the general CTSv value and calculate a correction to the CTSx when the CTSv value is available. . The latter method is expected to be useful in situations where the CTSv change is greater than +/- 1. This may be the case when using spread spectrum clocking on the link. Since there will be many clock cycles to make this calculation, the hardware implementation will not require the disadvantage of many areas. Synchronizing and adjusting the start of counting in the receiver is still required.

다른 바람직한 실시예는 수신기로 전송된 CTS 값의 디지털 필터링(로우 패스 필터링)을 구현한다. 전송된 CTS 값을 이용하여 (타임-스탬프 방법론) 클록을 재생 성하는 동안 (예를 들어, 오디오 클록 재생성), 픽셀 클록 지터(재생성될 클록을 샘플링하기 위해 이용된 클록 내의 지터) 뿐만 아니라 양자화 에러로 인해 전송된 실제 CTS 값은 평균 값(짧은 기간 동안 평균 낸) 으로부터 변화될 수 있다. 이 변동은 재생성된 클록 상에 지터를 생성한다.Another preferred embodiment implements digital filtering (low pass filtering) of the CTS values sent to the receiver. Quantization errors as well as pixel clock jitter (jitter in the clock used to sample the clock to be regenerated) while regenerating the clock (e.g., audio clock regeneration) using the transmitted CTS value (time-stamp methodology) The actual CTS value transmitted may vary from the mean value (averaged over a short period). This variation produces jitter on the regenerated clock.

몇 가지 바람직한 실시예에서, 양자화된 에러 및 픽셀 클록 지터에 의해 야기된 재생성된 클록의 지터를 줄이기 위해 CTS 값은 디지털로 필터링될 수 있다. 상기 디지털 필터는 타임-스탬프 변동의 더 높은 주파수 요소를 억제하기 위해 로우-패스 필터로 기능하며, 상기 재생성된 클록 지터의 더 높은 주파수를 대응하여 억제한다.In some preferred embodiments, the CTS values may be digitally filtered to reduce jitter in the regenerated clock caused by quantized error and pixel clock jitter. The digital filter functions as a low-pass filter to suppress higher frequency components of time-stamp variations, and correspondingly suppresses higher frequencies of the regenerated clock jitter.

필터 출력을 위해 요구되는 워드 길이는 오리지널 타임-스탬프 값보다 더 클 수 있다. 즉, 디지털적으로 필터링된 타임-스탬프 값은 오리지널 정수 타임-스탬프에 비해 분수 부분을 갖는다(즉, 74 대신에 74.25). 더 긴 타임-스탬프 워드가 단순히 끝 수를 절단하여 정수가 된다면, 필터는 여전히 더 높은 주파수 지터를 약하게 하는 기능을 할 것이다. 그러나, 끝 수가 절단된 타임-스탬프 값의 평균은 오리지널 타임-스탬프의 시퀀스의 평균과 같지 알 수 있고, 재생성된 클록 주파수는 정확하지 않고 상기 클록은 오리지널 클록에 비해 롱 텀 드리프트를 갖는다. 재생성된 클록에 의해 클록킹될 전송되고 있는 일정한 데이터의 스트림이 또한 있다면, 재생성된 클록 내의 이러한 드리프트는 데이터 소스(source) 및 싱크(sink) 사이의 데이터-레이트 부정합(mismatch)을 야기하고, 싱크 측 상에서 갭(gap) 또는 빠진 데이터(dropped data)를 생성할 수 있다. 롱 텀 드리프트에 더해, 필터링된 타임- 스탬프값의 끝 수 절단은 재생성된 클록의 지터를 증가시키는 절단 에러(truncation error)를 유발한다.The word length required for the filter output can be larger than the original time-stamp value. That is, the digitally filtered timestamp value has a fractional part compared to the original integer timestamp (ie 74.25 instead of 74). If longer time-stamp words are simply truncated to the end and become an integer, the filter will still function to weaken higher frequency jitter. However, it can be seen that the average of the time-stamp values truncated by the truncated number is equal to the average of the sequence of original time-stamps, the regenerated clock frequency is not accurate and the clock has a long term drift compared to the original clock. If there is also a stream of constant data being transmitted that is to be clocked by the regenerated clock, this drift in the regenerated clock causes a data-rate mismatch between the data source and the sink, A gap or dropped data can be generated on the side. In addition to the long term drift, truncation of the end of the filtered time-stamp value causes truncation errors that increase the jitter of the regenerated clock.

따라서, 클록을 재생성할 때 필터린린된 CTS 값의 분수 부분이 유지되는 것이 중요하다. 몇 가지 실시예에서, 분수적-N 타입 PLL이 더 긴 워드를 보호하기 위해 (상술한 바와 같이) 수신기 내에 이용된다.Therefore, it is important to maintain the fractional portion of the filtered CTS value when regenerating the clock. In some embodiments, fractional-N type PLLs are used in the receiver (as described above) to protect longer words.

이러한 실시예들에서 한가지 중요한 어플리케이션은 타임-스탬프 방법을 이용하는 디지털 오디오 클록의 전송이다. 특히, 타임-스탬프 업데이트 레이트가 오디오 밴드 근처 또는 내에 있을 때에는, 타임-스탬프 변동에 의해 생성된 지터는 최종 아날로그 오디오로 변조될 수 있고 오디오 퀄리티의 열화를 야기할 수 있다.오디오 밴드 내의 지터 주파수를 억제하기 위해 디지털 필터를 사용함으로써, 오디오 퀄리티 상의 지터의 영향은 줄어들거나 제거될 수 있다. 아날로그 기술을 이용하여 동일한 이익을 얻기 위해서는, 집적시키기도 어렵고 설계, 테스트 제작하는데 상당한 노력이 요구되는(IC 레벨 과 보드 레벨 모두) 매우 낮은 대역폭의 클록 재생성 PLL(예를 들어, 100Hz 정도의 대역폭을 갖는 PLL)을 요구한다. 바대로, 한번 적절하게 설계된 디지털 방법은 간단히 제작 및 테스트 할 수 있고, 보드 레벨 설계로 쉽게 적용 가능하다.One important application in these embodiments is the transmission of a digital audio clock using a time-stamping method. In particular, when the time-stamp update rate is near or within the audio band, the jitter generated by the time-stamp variation can be modulated into the final analog audio and cause degradation of the audio quality. By using digital filters to suppress, the effect of jitter on audio quality can be reduced or eliminated. To achieve the same benefits using analog technology, a very low bandwidth clock regeneration PLL (eg 100 Hz bandwidth) that is difficult to integrate and requires considerable effort to design and test (both IC and board levels). PLL). As you can see, once a properly designed digital method is simple to build and test, it is easily adaptable to a board-level design.

바람직한 실시예에서, 본 발명에 따른 송신기는 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 포맷으로 변환할 수 있다.In a preferred embodiment, the transmitter according to the invention accepts input video in the ITU-BT.656 or YCbCr 4: 2: 2 format and converts the ITU-BT.656 format to the YCbCr 4: 2: 2 format for transmission. It is composed. Preferably, the transmitter comprises two streams (time-division-multiplexed) of ITU-BT.656 or YCbCr 4: 2: 2 video (in one channel) (each stream comprising N-bit components). It can accept and convert the input video to YCbCr 4: 2: 2 format (including 2N-bit components, each 2N-bit component representing two components of the input video) for transmission.

다른 바람직한 실시예에서, 본 발명에 따른 송신기는 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 포맷으로 위치시킬 수 있다.In another preferred embodiment, the transmitter according to the invention is configured to accept input video in DDR YCbCr 4: 4: 4 format (DDR refers to “double data rate” and video in DDR format Can be written to DDR RAM, a type of synchronous DRAM, on the rising clock edge as well as on the falling clock edge). The transmitter may put the input video in the conventional YCbCr 4: 4: 4 format (not DDR) for transmission. Alternatively, or alternatively, the transmitter is configured to accept input video in DDR YCbCr 4: 4: 4 format and place the input video in conventional YCbCr 4: 4: 4 format for transmission. Preferably, the transmitter accepts two streams (on time-division-multiplexed) of the DDR ITU-BT.656 format input video (on one channel), and transmits the input video for transmission in a conventional YCbCr 4: 2: Can be placed in 2 formats.

다른 바람직한 실시예에서, 본 발명에 따른 송신기는 (많은 수의 소스 장치를 지원하도록 하기 위해) 데이터 또는 분리된 HSYNC 및 VSYNC와 함께 임베드 된 동기 비트로, YCbCr 포맷의 어떤 변형으로도 입력 비디오를 받아들이도록 구성되고, 상기 입력 비디오를 전송을 위해 YCbCr 4:4:4 또는 YCbCr 4:2:2 포맷 비디오로 재 포맷하도록 구성된다.In another preferred embodiment, the transmitter according to the invention is adapted to accept input video in any variant of the YCbCr format, with embedded data or sync bits embedded with separate HSYNC and VSYNC (to support a large number of source devices). And reformat the input video into YCbCr 4: 4: 4 or YCbCr 4: 2: 2 format video for transmission.

다른 바람직한 실시예에서, 본 발명에 따른 송신기는 YCbCr 4:2:2 포맷으로 입력 비디오를 받아들이도록 구성되고, 상기 입력 데이터를 전송을 위해 YCbCr 4:4:4 포맷으로 전환하기 위한 업컨버트(upconversion) 회로를 포함한다.In another preferred embodiment, the transmitter according to the invention is configured to accept input video in YCbCr 4: 2: 2 format, and upconversion for converting the input data to YCbCr 4: 4: 4 format for transmission. ) Circuits.

다른 바람직한 실시예에서, 본 발명에 따른 송신기는 YCbCr 포맷의 어떤 변형으로도 입력 비디오를 받아들이도록 구성되고 전송을 위해 (프로그램 가능한 또는 고정된 계수를 갖는) YCbCr에서 RGB로의 칼라 공간 전환 회로 및 입력 비디오를 RGB 포맷으로 전환하기 위한 유니버설 매핑 회로를 포함한다.In another preferred embodiment, the transmitter according to the invention is configured to accept input video in any variant of the YCbCr format and the input video and color space conversion circuit from YCbCr to RGB (with programmable or fixed coefficients) for transmission. It includes a universal mapping circuit for converting the to RGB format.

바람직한 실시예에서, 본 발명에 따른 수신기는 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 포맷으로 복원된 비디오를 놓도록 구성된다.In a preferred embodiment, the receiver according to the present invention is configured to output a video stream in the ITU-BT.656 format and convert the Y, Cr and Cb components of the video reconstructed in the YCbCr 4: 2: 2 format into the ITU-BT.656 format. And a multiplexer circuit positioned at. Advantageously, the receiver may apply separate HSYNC and VSYNC signals, along with the ITU.BT.656 output video stream (where the timing matches the timing of the sync bits embedded in the ITU-Bt.656 stream). Preferably, the receiver comprises two streams (in one channel) in response to the reconstructed YCbCr 4: 2: 2 video (including 2N-bit components, each 2N-bit component representing two components of the input video). And output the ITU-BT.656 video (each stream contains components of N-bits) (time-division-multiplexed together). More preferably, the receiver is output separately from a stream of sync bits embedded in the output Y, Cr and Cb components (e.g., ITU-BT.656) and / or output Y, Cr and Cb components. It is configured to place the reconstructed video in YCbCr 4: 2: 2 format into the desired output format, which may include HSYNC and VSYNC.

다른 바람직한 실시예에서, 본 발명에 따른 수신기는 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 출력 포맷으로 재 포맷하기 위한 회로를 포함한다.In another preferred embodiment, the receiver according to the invention is configured to output video in DDR YCbCr 4: 4: 2, DDr YCbCr 4: 2: 2 or DDR ITU-BT.656 format (DDR is a "double data rate" Video reconstructed in conventional YCbCr 4: 4: 4 or YCbCr 4: 2: 2 format (not DDR); Includes circuitry for reformatting to the BT.656 output format.

다른 바람직한 실시예에서, 본 발명에 따른 수신기는 YCbCr 포맷의 어떤 변형으로 비디오를 출력하도록 구성되고 종래의 YCbCr 4:4:4 또는 YCbCr 4:2:2 포맷의 복원된 비디오를 출력 포맷 중 어느 원하는 포맷으로 전환하는 유니버설 매핑 회로를 포함한다.In another preferred embodiment, the receiver according to the present invention is configured to output video in any variant of the YCbCr format and the recovered video in the conventional YCbCr 4: 4: 4 or YCbCr 4: 2: 2 format, whichever of the output format is desired. It includes a universal mapping circuit that converts to a format.

다른 바람직한 실시예에서, 본 발명에 따른 수신기는 복원된 비디오 상에 다운컨버팅 또는 업컨버팅을 수행하는 회로를 포함한다(예를 들어, YCbCr 4:4:4 포맷의 복원 비디오를 YCbCr 4:2:2 포맷의 출력 비디오로 전환하거나, YCbCr 4:2:2 포맷의 복원 비디오를 YCbCr 4:4:4 포맷의 출력 비디오로 전환하기 위한 회로).In another preferred embodiment, the receiver according to the invention comprises circuitry for performing downconverting or upconverting on the reconstructed video (e.g., reconstructing a video in YCbCr 4: 4: 4 format for YCbCr 4: 2: Circuitry for switching to output video in two formats, or for converting video in YCbCr 4: 2: 2 format to output video in YCbCr 4: 4: 4 format.

다른 바람직한 실시예에서, 본 발명에 따른 수신기는 YCbCr 포맷의 어떤 병형으로 비디오를 출력하도록 구성되고, (프로그램 가능한 또는 고정된 계수를 갖는) RGB에서 YCbCr로의 칼라 공간 전환 회로 및 RGB 포맷의 복원 비디오를 출력 포맷 중 원하는 한 포맷으로 전환하기 위한 일반적인 매핑 회로를 포함한다.In another preferred embodiment, the receiver according to the present invention is configured to output video in any bottle of the YCbCr format, and to output the RGB to YCbCr color space conversion circuit and the reconstructed video of the RGB format (with programmable or fixed coefficients). It includes a generic mapping circuit for converting to one of the output formats.

다음으로, 링크 완전형 체크를 위한 향상된 방법을 구현하는 본 발명의 실시예들을 설명한다.Next, embodiments of the present invention for implementing an improved method for link complete check are described.

시리얼 링크를 통한 전송을 위해 비디오 데이터 및/또는 패킷화된 보조 데이터를 암호화하는 본 발명의 바람직한 실시예에 의한 시스템을 포함하는, 컨텐츠 보호 시스템은, 일반적으로 시스템이 여전히 올바르게 동작하는 지를 증명하는 몇 가 지 방법을 필요로 한다. 시스템의 올바른 동작은 일반적으로, 링크를 통해 전송된 데이터는 송신기에 의해 암호화되고 수신기에 의해 복호화되며, 암호화 및 복호화 동작의 올바른 동기가 유지되어야 하는 요건을 포함한다.Content protection systems, including a system according to a preferred embodiment of the present invention for encrypting video data and / or packetized auxiliary data for transmission over a serial link, generally provide some evidence of whether the system is still operating correctly. There is a need. Correct operation of the system generally includes the requirement that data transmitted over the link is encrypted by the transmitter and decrypted by the receiver, and that the correct synchronization of the encryption and decryption operations must be maintained.

한가지 증명 방법은, 링크의 각 사이드에서 "결과" 벡터를 주기적으로 판독하는 것이다. 벡터가 변하고, (일반적으로 링크의 각 사이드에서 동일한 값을 갖고) 예상된 시퀀스로 변화하면, 시스템이 올바르게 동작하고 있는 것의 강한 표시이다. 종래의 HDCP 프로토콜은 "링크 완결성 체크(link integrity check)"로 알려진 이러한 방법을 이용한다.One proof method is to periodically read the "result" vector on each side of the link. If the vector changes and changes to the expected sequence (usually with the same value on each side of the link), it is a strong indication that the system is working correctly. The conventional HDCP protocol uses this method known as "link integrity check."

그러나, 링크 완결성 에크는 아주 간단한 방법이 아니다. 이러한 방법 그 자체로는 같은 순간 동시에 정확히 링크의 양 사이드를 샘플링 할 수 없다. 게다가, 샘플링 레이트는 결과 벡터가 변하는 레이트와 다를 수 있다 (실제, 2가지 이벤트가 완전히 비동기될 수 있다). 이들 요소들은 링크가 상하지 않을 때에도 링크가 상한 것으로 나타날 수 있는 변칙 상황으로 유도한다. 더 나쁜 경우는, 링크가 실제 상한 경우, 링크가 좋은 것으로 나타날 수 있다.However, link finalization is not a very simple method. This method itself cannot sample both sides of the link exactly at the same time. In addition, the sampling rate can be different from the rate at which the result vector changes (in fact, the two events can be completely asynchronous). These factors lead to anomalous situations where a link may appear to be broken even when the link is not broken. Worse, if the link is really bad, the link may appear to be good.

본 발명에 따른 시스템의 바람직한 실시예들은 링크 완결성을 체크하기 위한 향상된 방법을 구현한다.Preferred embodiments of the system according to the invention implement an improved method for checking link integrity.

아래에 오는 설명이 HDCP 컨텐츠 보호 프로토콜이 이용되었다고 가정하지만, 본 발명의 링크 완결성 체크 특성을 이용하는 본 발명에 따른 시스템의 몇 가지 실시예들은, HDCP 가 아닌 다른 컨텐츠 보호 프로토콜을 구현한다. 본 발명에 다른 링크 완결성 체크 방법 및 장치는 또한, 시스템이 데이터 아일랜드 또는 액티브 아 일랜드 주기 사이에서 링크를 통해 암호화된 오디오 데이터 (또는 다른 보조 데이터)의 패킷을 전송하도록 구성되었는가에 상관없이, 시리얼 링크를 통해 암호화된 비디오를 전송하는 시스템에서 유용하다.Although the description below assumes that an HDCP content protection protocol has been used, some embodiments of the system according to the present invention utilizing the link integrity check feature of the present invention implement a content protection protocol other than HDCP. Link integrity check methods and apparatus according to the present invention may also be configured to transmit serial packets regardless of whether the system is configured to transmit packets of encrypted audio data (or other auxiliary data) over a link between data islands or active island periods. This is useful in systems that send encrypted video over a link.

몇 가지 실시예에서, 본 발명에 따른 시스템의 송신기는 HDCP를 이용하여 오디오 데이터의 패킷 및 비디오를 암호화하고, 128 비디오 프레임마다 링크 완결성 체크 기능을 수행하여 송신기 및 수신기 양측으로부터 16-비트 결과 벡터(Ri로 부린다)를 캡쳐하고 2초마다 이 결과들을 비교하거나 또는 이들이 매칭되는지 확인한다. 이 스킴은 다음의 결점을 갖는다:In some embodiments, the transmitter of the system according to the present invention uses HDCP to encrypt packets and video of audio data, and performs link integrity check function every 128 video frames to provide 16-bit result vectors from both transmitter and receiver. capture burinda) to R i and check if they match or compare the results every two seconds. This scheme has the following drawbacks:

송신기 및 수신기 내의 사이퍼 엔진들이 정확히 동기되는지를 보증하지 못한다. 상기 사이퍼 엔진들이 약간 만 오프되어 있으면, Ri 값은 대부분 시간 매칭되는 것으로 나타난다;There is no guarantee that the cipher engines in the transmitter and receiver are correctly synchronized. If the cipher engines are only slightly off, the R i value appears to be mostly time matched;

Ri 값의 "스냅샷" (샘플)이 취해지는 레이트는 이들이 비교되는 레이트와 관련되지 않는다. 이 레이트들은, 샘플이 스냅샷 경계를 걸쳐 있기 때문에 송신기 및 수신기가 때때로 다른 값을 보이는 경우, 완전히 비동기될 것이다; 그리고The rate at which "snapshots" (samples) of R i values are taken is not related to the rate at which they are compared. These rates will be completely asynchronous if the transmitter and receiver sometimes show different values because the sample is across the snapshot boundary; And

반대로, 샘플 레이트는 동기(또는 거의 동기) 한다. 이것은 수신 스트래들링(straddling) 에러를 방지한다. 그러나, 완결성 체크가 스냅샷 경계에서 걸쳐있으면, 상황은 비정상으로 되고, 절대 해결될 수 없을 수 있다.In contrast, the sample rate is synchronous (or nearly synchronous). This prevents receive straddling errors. However, if the integrity check spans at the snapshot boundary, the situation is abnormal and may never be resolved.

이러한 문제를 설명하기 위해, 먼저 도 17을 참조한다. 도 17에 나타난 바와 같이, 송신기 및 수신기의 Ri 스냅샷은, 동기되어야 하는 것처럼, 정확히 동기한다. 링크 완결성 체크는 약간 다른 레이트를 가질지라도 유사하게 일어난다. 송신기 완결성 체크 및 수신기 완결성 체크 모두 대부분 Ri 스냅샷 사이의 동일한 "윈도우(window)" 안에서 일어난다. 이것은 양측 Ri 값이 매칭되고, 링크 완결성 체크가 성공할 것이라는 것을 의미한다. 그러나, 한가지 케이스에서, 송신기 및 수신기 완결성 체크의 일부가 Ri 스탭샷을 걸쳐 있다. 이것은 보이는 Ri 값이 다르다는 것을 의미한다. 일반적으로 DHCP를 구현하는 시스템은 이러한 사건이 일어나면 짧은 시간에 다시 완결성 체크를 수행한다.To illustrate this problem, reference is first made to FIG. 17. As shown in FIG. 17, the R i snapshots of the transmitter and receiver synchronize exactly as they should be. Link integrity checks occur similarly even with slightly different rates. Both the transmitter integrity check and the receiver integrity check mostly occur within the same "window" between the R i snapshots. This means that both R i values are matched and the link integrity check will succeed. However, in one case, some of the transmitter and receiver integrity checks span the R i snapshot. This means that the visible R i values are different. In general, a system implementing DHCP performs a check for integrity again in a short time when such an event occurs.

다음, 도 18 및 도 19를 참조하여, 링크 완결성 체크가 Ri 스냅샷과 정학히 동일한 레이트로 일어나는 경우를 살펴본다. 일반적인 종래의 HDCP 시스템은 링크 완결성 체크를 이러한 방식으로 수행한다. 일반적으로, 도 18에 도시된 바와 같이, 링크 완결성 체크가 항상 시간 상의 동일한 상대적 지점에서 발생되기 때문에, Ri 값은 항상 매칭된다. 그런, 도 19에 도시된 바와 같이, 링크 완결성 체크가 Ri 스냅샷에 걸쳐서 있는 비정상적인 (따라서 매우 나쁜) 경우가 있고, 이때 Ri 값은 결코 매칭되지 않는다.Next, referring to FIGS. 18 and 19, a case in which link integrity check occurs at the same rate as the R i snapshot will be described. A typical conventional HDCP system performs a link integrity check in this manner. In general, as shown in FIG. 18, since the link integrity check always occurs at the same relative point in time, the R i values are always matched. As such, as shown in FIG. 19, there is an unusual (and therefore very bad) case where a link integrity check spans an R i snapshot, where the R i values never match.

상술한 경우 모두에서, (Ri 값의 한번의 체크 결과 매칭되지 않을 때) 가장 빠른 기회에 링크 완결성 체크를 재시도 하는 것은 실제 링크 완결성을 확립하기 위한 신뢰성 있는 메커니즘을 제공하지만, 이러한 방법은 복잡하고 예상치 못했던 부가적인 부담을 더하게 된다. In all of the above cases, retrying link integrity checks at the earliest opportunity (when a single check of R i values does not match) provides a reliable mechanism for establishing actual link integrity, but this method is complex. This adds to the unexpected additional burden.

다음으로, 도 20 및 21을 참조하여, 송신기 및 수신기 사이퍼 엔진이 적절하게 정렬되지 않는 경우를 살펴본다. 이 경우는 예를 들어 VSYNC 고장이 있는 경우에 발생할 수 있다. 이러한 경우, 어떠한 이용가능한 비디오도 링크를 통해 전송되지 않는다. 그러나, 도 20에 도시된 바와 같이, 이것은 많은 경우에 발생할 수 있고, 링크 완결성 체크는 스냅샷들 사이의 동일 윈도우에서 발생하며, Ri 값은 올바른 것으로 나타날 것이다. 따라서, 실제 시스템이 정상적이 못하더라도, 정상적으로 동작하고 있는 것으로 나타날 것이다.Next, referring to FIGS. 20 and 21, a case where the transmitter and receiver cipher engines are not properly aligned will be described. This can happen, for example, when there is a VSYNC failure. In this case, no available video is sent over the link. However, as shown in FIG. 20, this can occur in many cases, the link integrity check occurs in the same window between snapshots, and the R i value will appear to be correct. Thus, even if the actual system is not normal, it will appear to be operating normally.

최종적으로, 완결성 체크는 (도 20의 좌측으로부터 네 번째 완결성 체크처럼) Ri 스냅샷에 걸쳐 있을 수 있지만, 이것이 때맞춰 일어날 것이라는 보증이 없고 또는 이런 보정이 전혀 없다. 이러한 행운적인 사건 사이의 경과되는 시간의 길이는 Ri 스냅샷 구간 및 링크 완결성 구간에 의해 형성된 비트 주파수에 반비례하고, 이 비트 주파수는 0일 수 있다.Finally, the completeness check can span the R i snapshot (like the fourth completeness check from the left in FIG. 20), but there is no guarantee that this will happen in time or no such correction at all. The length of time elapsed between these lucky events is inversely proportional to the bit frequency formed by the R i snapshot interval and the link integrity interval, which may be zero.

가장 나쁜 경우의 시나리오는 도 21에 도시된다. 여기서, 링크 완결성 주파수는 Ri 스냅샷에 동기(또는 거의 동기) 하지만, 사이퍼 상태 머신내의 시퀀스 에러를 못 보게 하는 너무 큰 상이 위상(out-of-phase)이 있다. 이 시스템은 정상적으로 동작하지 않지만, 몇 가지 외부 요소(예를 들어 실망한 사용자)의 간섭이 있을 때까지는 링크 완결성 체크는 그 사실을 깨닫지 못한다.The worst case scenario is shown in FIG. 21. Here, the link integrity frequency is synchronous (or nearly synchronous) to the R i snapshot, but there is an out-of-phase that is too large to avoid seeing sequence errors in the cipher state machine. The system does not operate normally, but the link integrity check does not realize it until there is interference from some external element (eg a disappointed user).

상술한 문제를 방지하고, 시스템의 비정상적인 동작이 빨리 정확히 검출되도록 보증하기 위해서, 다음 개선 중 하나 이상이 본 발명에 따라 만들어진다: In order to avoid the above mentioned problems and to ensure that abnormal operation of the system is quickly and accurately detected, one or more of the following improvements are made in accordance with the invention:                 

송신기 및 수신기는 송신기 및 수신기 사이퍼 엔진이 상이 위상(out-of-phase)을 갖게 하는 에러를 줄이거나 제거하도록 구현된다;The transmitter and receiver are implemented to reduce or eliminate errors that cause the transmitter and receiver cipher engines to have out-of-phase;

링크 완결성 체크는 위상에 관계없이 송신기 및 수신기 모두에서 Ri 스냅샷이 같은 시간에 일어나도록 보증하는 방식으로 행해진다;The link integrity check is done in a manner that ensures that R i snapshots occur at the same time at both the transmitter and receiver regardless of phase;

링크 완결성 체크는 Ri 스냅샷과의 알려진 관계로 행해진다. 이것은 이들이 동기되어야 한다는 것을 의미하지 않지만, 이들이 완전히 비동기 일 수는 없다. 특히, 링크 완결성 체크가 Ri 스냅샷에 걸쳐 있지 않다는 것을 보증하는 것이 반드시 가능해야 한다; 그리고The link integrity check is done in a known relationship with the R i snapshot. This does not mean that they must be synchronized, but they cannot be completely asynchronous. In particular, it must be possible to ensure that the link integrity check does not span the R i snapshot; And

정상적인 시스템 동작을 나타내는 상태 (예를 들어 "스노우(snow)" 상태)에 대한 수신된, 복호화된 데이터를 직접 체크하기 위한 방법이 구현된다. 예를 들어, 주기적으로 (또는 때때로), 알려진 데이터 패턴이 송신기로 입력되고, 암호화되고, 전송되고, 수신되고, 복호화되고, 그리고 수신되고 복호화된 패턴이 상기 알려진 데이터 패턴과 매칭하는 지 알기 위해 체크되어야 한다.A method is implemented for directly checking received, decoded data for a state indicative of normal system behavior (eg, a "snow" state). For example, periodically (or sometimes), a known data pattern is input to the transmitter, encrypted, transmitted, received, decrypted, and checked to see if the received and decrypted pattern matches the known data pattern. Should be.

송신기 및 수신기 사이퍼 엔진은, 어떤 제어 신호가 고장나면 상이 위상이 될 수 있다. 예를 들어, 수신기가 VSYNC 신호를 보지 않으면 뒤쳐진다. 수신기가 여분의 VSYNC 신호를 받으면, 앞서간다. 이러한 것들이 발생하고 수신기가 정상적으로 복호화할 수 없게되면, 스크린은 "스노우(snow)"를 보인다.The transmitter and receiver cipher engines can be out of phase if any control signal fails. For example, if the receiver does not see the VSYNC signal, it falls behind. When the receiver receives the extra VSYNC signal, it goes ahead. If this happens and the receiver is unable to decode normally, the screen shows "snow."

수신기가 Ri 값의 "스냅샷"을 취하는 포인트가 동일한 방식(뒤쳐지거나 앞서 는 것)으로 움직이면, 수신기는 계속해서 올바른 Ri 값을 생성할 것이다. 이것은 Ri 시퀀스가 상수 및 프fp임 시퀀스만의 함수이기 때문이다. 이것은 중간적인 데이터에 의존하지 않는다. 이것은 링크 완결성 체크가 대부분의 시간에 올바른, 도 20 또는 도 21와 매우 유사한 상황으로 유도한다. 실제, 수신기가 한 프레임 앞으로 또는 뒤로 간다면, 이것은 Ri 값은 128 프레임 중 127 상에서 송신기 내의 그것을 정확히 매칭할 것이다. 이것은 매우 큰 윈도우이며, 에러가 발견되기 전 한동안 취해질 수 있다.If the point at which the receiver takes a "snapshot" of the R i value moves in the same way (either behind or ahead), the receiver will continue to produce the correct R i value. This is because the R i sequence is a function of only constant and frame sequences. This does not depend on intermediate data. This leads to a situation very similar to FIG. 20 or 21, where the link integrity check is correct most of the time. Indeed, if the receiver goes forward or backward one frame, this R i value will exactly match that in the transmitter on 127 of 128 frames. This is a very large window and can be taken for a while before an error is found.

이러한 시나리오의 가능성을 줄이는 한가지 방법은, 각 어드밴스를 제어하기 위한 다른 신호들을 이용함으로써 Ri 스냅샷이 발생할 때 사이퍼를 구동하는 상태 머신을 제어하는 상태 머신으로부터 분리하는 것이다. 이 방법에서, 신호 장애는 한 머신이 동기에서 벗어나게 할 수 있지만, 다른 것에는 거의 영향을 미치지 않는다. 예를 들어, VSYNC 는 사이퍼 엔진의 어드밴스를 제어하는 데 이용될 수 있고, CTL3는 스냅샷 카운터의 어드밴스를 제어하는 데 이용될 수 있다. 스냅샷이 사이퍼 엔진 사이클 내의 다른 상대적 지점에서 일어나면, Ri 시퀀스는 매우 다를 것이고 이것은 즉시 명백해질 것이다.One way to reduce the likelihood of this scenario is to separate from the state machine controlling the state machine driving the cipher when the R i snapshot occurs by using different signals to control each advance. In this way, signal failure can cause one machine to go out of sync, but has little effect on the other. For example, VSYNC can be used to control the advance of the cipher engine, and CTL3 can be used to control the advance of the snapshot counter. If the snapshot occurs at another relative point in the cypher engine cycle, the R i sequence will be very different and this will immediately become apparent.

다른 대안은 링크 완결성 체크가 일어날 때 신호를 보낼 수 있는 "인터럽트" 능력을 송신기 또는 수신기에게 부여하는 것이다. 이 기능은 일반적으로 이들 에크를 초기화하는 시스템의 요소(예를 들어, HDCP를 구현하는 시스템의 송신기_ 내에 있다. 이 방법은 인터럽트 레이턴시 타임이 항상 하나의 비디오 프레임보다 작을 때 잘 동작하며, 이는 여기에 어떤 스트레들링(straddling)도 없고, 수신기가 하나 이상의 프레임이 앞서가는 에러를 검출하는 것을 보증할 수 있기 때문이다. 고장이 VSYNC를 완전히 제거하는 것보다는 추가적인 VSYNC 에지를 야기할 수 있기 때문에 이것은 더욱 일반적인 경우일 것으로 예상된다. 이 방법은, 인터럽트 레이턴시 타임이 몇 배의 프레임에 걸쳐있고(이것이 보통과 달리 예상할 수 없다면), 또는 수신기 사이퍼 엔진이 하나 이상의 프레임 뒤처지면 잘 동작하지 않는다.Another alternative is to give the transmitter or receiver the " interrupt " ability to signal when a link integrity check occurs. This functionality is usually in the elements of the system that initializes these locks (for example, in the transmitter_ of a system that implements HDCP.) This method works well when the interrupt latency time is always less than one video frame. There is no straddling in the receiver, and the receiver can guarantee that one or more frames detect a leading error, since a failure can cause additional VSYNC edges rather than completely eliminate VSYNC. This is expected to be a more general case: this method does not work well if the interrupt latency time spans several times the frame (unless this is otherwise unexpected), or if the receiver cipher engine lags behind one or more frames.

더 낳은 접근 방법은 몇 가지 형태의 외부 자극이 적용될 때만 송신기 및/또는 수신기가 스냅샷을 취하도록 설계하는 것이다. 이 방법으로, 송신기 및 수신기가 스냅샷을 항상 같은 시간에 취하는 것을 보증할 수 있다(따라서, 또한 사이퍼 엔진 상태의 어떤 모순도 강조할 수 있다). 예를 들어, 송신기가 송신기의 사이퍼 엔진과 수신기의 사이퍼 엔진 모두에 스냅샷의 요구를 전송하도록 하는 명령을 송신기로 제공한다. 그리고 송신기 및 수신기 모두는 적절한 동기 이벤트(VSYNC의 다음 리딩 에지 등)를 기다리고 그리고 나서 모두 스냅샷을 위한다. 그리고 나서, 송신기 및/또는 수신기는 오리지널 명령을 완성했다는 신호를 보낸다. 명령이 내려지는 다음 시간까지 새로운 스냅샷이 일어날 수 없기 때문에, 이 시점에서 시스템(예를 들어, 시스템에 의해 구현되는 소프트웨어 도는 펌웨어)은 링크 완결성 체크를 수행할 수 있는 시간을 얻을 수 있다.A better approach is to design the transmitter and / or receiver to take a snapshot only when some form of external stimulus is applied. In this way, it is possible to ensure that the transmitter and receiver always take a snapshot at the same time (thus also highlight any contradictions in the state of the cipher engine). For example, the transmitter provides a command for the transmitter to send a request for a snapshot to both the transmitter's cipher engine and the receiver's cipher engine. And both the transmitter and receiver wait for the appropriate sync event (such as the next leading edge of VSYNC) and then both for the snapshot. The transmitter and / or receiver then signal that it has completed the original command. Since no new snapshot can occur until the next time the command is issued, at this point the system (eg, software or firmware implemented by the system) can have time to perform a link integrity check.

이 방법은 많은 이점을 갖는다. 첫 째로, 스냅샷이 항상 링크의 양측에서 동시에 일어난다. 둘 째로, 링크 완결성 체크는 다음 스냅샷 이전에 (프로토콜 안에 조립된 인터락(interlock)에 의해) 확실히 완료될 수 있다. 셋 째로, 링크 완결성 체크는 시스템의 필요에 맞춰 자주 또는 아주 가끔 행해질 수 있다. 이 레이트는 한 시기에서 다음 시기에도 필요한 만큼 변경될 수 있다. 이 마지막 사항에서, 링크 완결성 체크가 최소한 받아들일 수 있는 주기로 수행되는 것을 증명하기 위해 수신기 내에 "데드맨 타이머(deadman timer)"를 포함시키는 것이 유용하거나 바람직할 수 있다. 한편, 수신기가 데드맨 타이머를 포함시키도록 구성될 수 있지만, 송신기가 이를 포함하는 것은 일반적으로 바람직하다. 이는, 송신기가 일반적으로 보호되는 컨텐츠가 적당한 암호화 없는 시스템을 떠나지 않을 보증할 책임이 있고, 따라서 송신기는 적절한 체크 및 밸런스가 제 위치에 있음을 보정하는 논리적 지원자이기 때문이다.This method has many advantages. First, snapshots always happen on both sides of the link at the same time. Secondly, the link integrity check can be surely completed (by interlocks assembled in the protocol) before the next snapshot. Third, link integrity checks can be done often or very occasionally to meet the needs of the system. This rate may change from one time period to the next as needed. In this last point, it may be useful or desirable to include a "deadman timer" in the receiver to prove that the link integrity check is performed at least in an acceptable cycle. On the other hand, although the receiver may be configured to include a deadman timer, it is generally desirable for the transmitter to include it. This is because the transmitter is generally responsible for ensuring that the protected content will not leave the system without proper encryption, and therefore the transmitter is a logical supporter that corrects that the proper checks and balances are in place.

본 발명의 다른 특징에 따르면, 본 발명의 시스템의 일 실시예에서의 수신기는, 송신기로부터 수신기로 전송된 데이터만을 이용하여. 송신기 및 수신기 내의 사이퍼 엔진들 사이의 동기가 손실되었는지를 직접 판단한다. 이러한 본 발명의 특징을 구현하는 바람직한 실시예에서, 송신기는 암호화된 비디오 데이터를 (액티브 비디오 주기 동안) TMDS 링크의 비디오 채널을 통해 수신기로 전송하고, 암호화된 오디오(또는 다른 보조 데이터)를 포함하는 패킷은 액티브 비디오 주기 사이의 구간에 비디오 채널을 통해 전송된다. 각 패킷은 헤더 및 2 이상의 서브-패킷을 포함하고, 각 패킷의 헤더는 (일반적으로 암호화되지 않는) 헤더 데이터 및 헤데 데이터에 대한 BCH 패리티 비트를 포함하며, 각 서브-패킷은 데이터 및 서브-패킷의 데이터에 대한 BCH 패리티 비트를 포함한다. 수신기는, 수신되고 복호화된 데이터 내에 일어나는 에러의 형태를 체크하고, 대부분의 에러가 전송 에러 인지 또는 HDCP 복호화 에러인지를 이 정보로부터 판단하도록 구성된다. 특히, 암호화된 데이터가 상술한 TERC4 인코딩 기술을 이용하여 인코딩 될 때, 수신기가 그 TERC4 인코딩 동작이 거의 없는(또는 전혀 없는) 비-골든 코드 수신을 검출하고 BCH 에러 정정 회로가 복호화된 서브패킷 데이터 내의 일관된 에러를 검출하고 정정하면, 수신기는 HDCP 복호화가 실패하였다고 결론짓는다. 이와 유사하게, 수신기가, (암호화된 데이터로 전송되고 수신기에서 복호화된) 서브패킷 데이터의 BCH 에러 정정 레이트 및 (비-암호화된 데이터로 전송된) 패킷 헤더 데이터 사이에 현저한 차기가 있다고 판단하면, 수신기는 HDCP 복호화가 실패했다고 결론짓는다. 수신기는 이러한 결론을 신뢰성있게 하는 단순한 프로세싱을 이용하도록 구현될 수 있다. 멀티 패킷을 통해(예를 들어, 비디오 필드 또는 프레임을 통해, 또는 소정 수의 픽셀 또는 소정 시간을 통해) 검출된 에러 레이트 정보(수신기에서 생성된다)를 필터링하는 것은 완벽한 또는 거의 완벽한 검출을 제공할 수 있다.According to another feature of the invention, a receiver in one embodiment of the system of the invention uses only data transmitted from the transmitter to the receiver. It is directly determined whether the synchronization between the cipher engines in the transmitter and the receiver is lost. In a preferred embodiment embodying this aspect of the invention, the transmitter transmits the encrypted video data to the receiver over the video channel of the TMDS link (during the active video period) and includes encrypted audio (or other auxiliary data). The packet is transmitted over the video channel in the interval between active video periods. Each packet includes a header and two or more sub-packets, the header of each packet includes BCH parity bits for header data and header data (usually unencrypted), and each sub-packet contains data and sub-packets. BCH parity bits for the data of the. The receiver is configured to check the type of error that occurs in the received and decoded data and to determine from this information whether most of the error is a transmission error or an HDCP decoding error. In particular, when encrypted data is encoded using the TERC4 encoding technique described above, the receiver detects non-golden code reception with little (or no) of its TERC4 encoding operation and the BCH error correction circuit decrypts the subpacket data. Upon detecting and correcting a coherent error in the receiver, the receiver concludes that HDCP decoding failed. Similarly, if the receiver determines that there is a significant difference between the BCH error correction rate of the subpacket data (transmitted with encrypted data and decoded at the receiver) and the packet header data (transmitted with non-encrypted data), The receiver concludes that HDCP decoding has failed. The receiver can be implemented to use simple processing that makes this conclusion reliable. Filtering the detected error rate information (generated at the receiver) through multiple packets (e.g., through a video field or frame, or through a predetermined number of pixels or a predetermined time) may provide a complete or near perfect detection. Can be.

일반적인 구현에서, 송신기는 오디오 및 다른 보조 데이터를 운송하기 위해 (데이터 아일랜드에서) 자주 패킷을 전송한다. 이러한 패킷 각각은 바람직하게는 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)을 수행한다.In a typical implementation, a transmitter frequently sends packets (in a data island) to carry audio and other auxiliary data. Each such packet preferably contains 24-bit packet header data and four 56-bit subpacket data blocks. The receiver performs BCH (32, 24) error detection and correction on the packet header data, and performs BCH (64, 56) error detection and correction on each subpacket. HDCP encryption is performed for each 4-bit amount to be encoded into a TMDS code word for transmission on channel 1 or channel 2, but no HDCP encryption is performed on the data encoded for transmission on channel 0. The transmitter performs TERC4 encoding on data to be transmitted on channel 0 (packet header data) and transmission data (subpacket data) on channels 1 and 2. The receiver performs the reverse of the above procedure: TERC4 decoding of data received on channels 0, 1 and 2; HDCP decoding of decoded data received on channels 1 and 2; BCH error correction and detection of data decoded from channel 0 and data decoded and decoded from channels 1 and 2; And de-packetization.

수신기 내의 이러한 몇 가지 동작을 구현하기 위한 회로는 일반적으로 몇 r가지 형태의 에러를 검출(그리고 때때로 정정)하는 능력을 갖는다(또는 이러한 능력을 갖도록 쉽게 변형될 수 있다). 이것은 발생하는 에러에 대한 적당한 고장지점(point-of-failure)을 수신기가 검출할 수 있게 한다. 전송 에러는 일반적으로 수신된 값이 전송된 값의 가능한 값 중 하나(즉, 골든 코드 워드 중 하나)에 직접 매칭되는 지를 판단함으로써 TERC4 디코딩 회로에 의해 검출된다. 복호화 에러를 야기하는, HDCP 동기 손실(loss-of-synchronization) 에러는 BCH 에러 검출 및 정정 회로의 일반적인 구현에 의해 쉽게 검출될 수 있다. TERC4 디코딩 회로가 낮은 레벨의 에러를 나타낼 때 BCH 에러 검출 및 정정 회로가 낮은 레벨의 에러를 나타내면, 이것은 모든 또는 대부분의 에러가 HDCP 복호화 과정에서 일어났음을 강하게 제시한다.Circuitry for implementing some of these operations in the receiver generally has the ability to detect (and sometimes correct) some type of error (or can be easily modified to have this capability). This allows the receiver to detect an appropriate point-of-failure for errors that occur. Transmission errors are generally detected by the TERC4 decoding circuitry by determining whether the received value directly matches one of the possible values of the transmitted value (ie, one of the golden code words). HDCP loss-of-synchronization errors that cause decoding errors can be easily detected by the general implementation of the BCH error detection and correction circuit. If the BCH error detection and correction circuit exhibits low level errors when the TERC4 decoding circuit exhibits low levels of error, this strongly suggests that all or most of the errors have occurred in the HDCP decoding process.

패킷 헤더 데이터가 암호화되지 않았지만 서브패킷 데이터가 송신기에 의해 암호화되었을 때, 수신기는 이들 두 타입의 데이터에 대한 에러 레이트를 비교함으로써 복호화가 실패하였는지를 판단할 수 있다. 서브패킷 데이터에 대한 BCH 에러 레이트는 패킷 헤더 데이터에 대한 BCH 에러 레이트보다 훨씬 높고, 이것은 또한, 복호화가 주된 원인이라는 것을 제시한다.When the packet header data is not encrypted but the subpacket data is encrypted by the transmitter, the receiver can determine whether decryption failed by comparing the error rates for these two types of data. The BCH error rate for subpacket data is much higher than the BCH error rate for packet header data, which also suggests that decoding is a major cause.

2 이상의 에러 레이트 검출 및 비교 메커니즘을 하나의 수신기로 집적하는 것은, 수신기가 복호화 실패를 검출하고, 복호화 회로가 정상적으로 기능한다고 "잘못된 긍정(false positive)" 결혼에 도달하지 않으며 수신기가 그 기능이 실패하였다고 결론짓는 것에 대한 강한 정도의 신뢰를 제공할 수 있다. Integrating two or more error rate detection and comparison mechanisms into one receiver means that the receiver detects a failure to decrypt, does not reach a "false positive" marriage that the decryption circuit is functioning normally, and the receiver fails to function. Can provide a strong degree of confidence in concluding that

다른 실시예들에서, 알려진 데이터 패턴이 송신기로 제공되거나, 존재하는 데이터가 소정의 방법으로 변형되고, 그 결과가 암호화되고 전송된다. 그리고, 수신기가 데이터를 복호화할 때 예상되는 결과인지를 체크한다. 수신기가 예상된 결과를 찾으면 상기 복호화는 올바르게 동작하고 있다고 여겨질 수 있다. 그렇지 않으면 암호화/복호화 기능이 올바르게 동작하지 않는다고 여긴다. 이러한 방법은 매우 직접적인 이점을 갖는다: 이 방법은 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]을 변형할 수 있다. 정확한 알고리즘이 다향한 구현예로 변경될 수 있고, (화면 상에 가장 적은 가능한 임팩트를 갖도록) 적응될 수 있다. 필요한 것은 마지막 결과가 소정(알려진) 형태를 갖는 변형 데이터라는 것뿐이다.In other embodiments, a known data pattern is provided to the transmitter, or existing data is modified in some way, and the result is encrypted and transmitted. Then, the receiver checks whether the result is expected when decoding the data. If the receiver finds the expected result, it can be considered that the decoding is working correctly. Otherwise, the encryption / decryption function does not work correctly. This method has a very direct advantage: it does not rely on indirect evidence from result vectors such as R i . This method is also inversely comparable with existing protocols, with only a small amount of external or internal logic added to a conventional HDCP system, and no other changes to link operation. For example, assume that the first two pixels of every frame are defined as "A" and "B", respectively. These pixels are displayed in very small portions in the upper left portion of the screen. These may be background colors and may be the same color periodically or very often. The transmitter may be configured to modify the most insignificant bits of pixels A and B so that they are always the same before encrypting and transmitting the altered video. For example, the transmitter has three colors of pixels A and B such that A red [0] = B red [0], A green [0] = B green [0], A blue [0] = B blue [0]. You can modify bit [0] in each component. The exact algorithm can be changed to various implementations and adapted to have the fewest possible impacts on the screen. All that is needed is that the final result is transform data with a predetermined (known) form.

변형된 프레임이 암호화되고 복호화되면, 수신기는 복호화된 데이터에서 소정의 패턴을 체크할 수 있다. 수신기는 링크 내의 작은 수의 비트 에러를 카운트하는 방식으로 체크를 해야한다. 인식된 결과에 대해 문턱값을 설정함으로써 체크를 할 수 있다. 예를 들어, 상술한 3 요건 중 2 개만 충족해도 충분하다. 또는 이것은 프레임 몇 개에 대한 결과를 평균할 수 있다. 다른 경우, 수신기는 암호화/목호화 기능이 정상적으로 동작할 때에만 정상적인 값을 찾도록 구성되어야 한다. 수신기는 이 결과를 몇 가지 방법으로 호스트로 다시 신호하여 보낼 수 있다. 이것을 하기 위한 한 가지 방법은 레지스터의 비트를 설정하는 직접적인 방법이다. 이 결과를 신호로 보내는 다른 방법은 간접적으로 (예를 들어, Ri 값을 고의로 바꾸는 것 등) 하는 것이다. 후자의 방법은, 어떤 링크(어떤 송신기-수신기 쌍 사이의 링크)의 중단이 호스트 쪽으로 업스트림을 전달하도록 용이하게 만들어 질 수 있는, 중계기 환경에서 잘 동작하는 이점을 갖는다. When the modified frame is encrypted and decrypted, the receiver may check a predetermined pattern in the decrypted data. The receiver should check in a way that counts a small number of bit errors in the link. You can check by setting a threshold on the recognized result. For example, only two of the three requirements described above may be satisfied. Or it can average the results over several frames. In other cases, the receiver should be configured to find a normal value only when the encryption / encryption function is operating normally. The receiver can signal this result back to the host in several ways. One way to do this is to directly set the bits in the register. Another way to signal this result is indirectly (for example, by deliberately changing the value of R i ). The latter method has the advantage of working well in a repeater environment, where the interruption of any link (the link between any transmitter-receiver pair) can be easily made to deliver upstream towards the host.

이전 2 문단에서 설명한 방법은 다음 방법으로 역 호환성을 갖는다: "새로운(new)" 송신기는 "이전의(old)" 수신기로 어떤 불리한 영향을 미치지 않고 이를 구현할 수 있다; "새로운" 수신기는 이것을 구현할 수 있지만, "이전의" 송신기과 같이 이용될 때 체크를 인에이블 할 수 없다; "이전의" 송신기 및 수신기는 적절한 방법으로 데이터 경로에 단순히 도청함으로써, 외부 논리부에 이 기능을 용이하게 추가할 수 있다.The method described in the previous two paragraphs is backward compatible in the following way: A "new" transmitter can implement this without any adverse effect on a "old" receiver; A "new" receiver can implement this, but cannot enable the check when used with a "old" transmitter; “Older” transmitters and receivers can easily add this functionality to external logic by simply tapping the data path in an appropriate manner.

역 호환성이 중요하지 않으면, 알려진 데이터 패턴은 비디오 화면에 어떤 방법으로도 영향을 주지 않는 다른 방법으로 구현될 수 있다. 예를 들어, 특정한 "테스트" 패킷이 데이터 스트림 안으로 삽입될 수 있고, 또는 "테스트" 데이터가 다른 패킷 또는 위치에 삽입될 수 있다. 비디오 라인은 또한, "테스트" 데이터를 수용하기 위해 늘어날 수도 있고, 그런 다음 수신기에서 원래 크기로 줄어줄 수 있다.If backward compatibility is not important, known data patterns can be implemented in other ways that do not affect the video picture in any way. For example, certain "test" packets may be inserted into the data stream, or "test" data may be inserted in other packets or locations. The video line may also be stretched to accommodate the "test" data and then shrink back to its original size at the receiver.

본 발명의 특정 형태가 여기서 도시되고 설명되었지만, 본 발명은 여기에 설명되고 도시된 특정 실시예에만 국한되는 것이 아닌 청구항에 의해서 정의됨을 이해해야 한다.
While certain forms of the invention have been shown and described herein, it is to be understood that the invention is defined by the claims and not limited to the specific embodiments described and illustrated herein.

Claims (70)

하나 이상의 비디오 채널을 구비하는 시리얼 링크와 연결되도록 구성된 송신기에 있어서, 상기 송신기는:A transmitter configured to be connected with a serial link having one or more video channels, the transmitter comprising: I2S 포맷 오디오 데이터를 포함하는 비디오 데이터 및 오디오 데이터를 수신하기 위한 입력부들;Inputs for receiving video data and audio data comprising I 2 S format audio data; 상기 링크와 연결되도록 구성된 하나 이상의 출력부; 및One or more outputs configured to be connected with the link; And 상기 입력부들과 상기 각 출력부 사이에 연결된 회로로, 상기 회로는 상기 비디오 데이터를 인코딩함으로써 인코딩된 비디오 데이터를 생성하고, 보조 데이터의 패킷들을 나타내는 코드 워드들을 생성하고, 액티브 비디오 주기동안 상기 인코딩된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 데이터 아일랜드 동안 보조 데이터의 패킷들을 나타내는 상기 코드 워드들을 상기 하나 이상의 출력부로 인가하는 상기 회로를 포함하며,Circuitry coupled between the inputs and each output, the circuitry generates encoded video data by encoding the video data, generates code words representing packets of auxiliary data, and encodes the encoded code during an active video period. The circuitry for applying video data to the one or more outputs and applying the code words representing packets of auxiliary data to the one or more outputs during a data island, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와 동시에 일어나지도 또는 겹치지도 않는 타임 구간이며, 상기 보조 데이터는 오디오 데이터를 포함하는 것을 특징으로 하는 송신기.Wherein each data island is a time period that does not occur or overlap with any of the active video periods, and wherein the auxiliary data includes audio data. 제 1 항에 있어서,The method of claim 1, 상기 패킷들 중 몇 개 이상은 헤더 및 2 이상의 서브-패킷들을 구비하는 오 디오 샘플 패킷이며, 상기 서브-패킷들은 상기 오디오 데이터의 샘플들을 포함하는 것을 특징으로 하는 송신기.At least some of said packets are audio sample packets having a header and at least two sub-packets, said sub-packets comprising samples of said audio data. 제 2 항에 있어서,The method of claim 2, 상기 하나 이상의 오디오 샘플 패킷들의 각 서브-패킷은 2개의 N-비트 워드를 포함하고, 상기 각 N-비트 워드는 I2S 포맷 오디오 데이터에 의해 결정되는 M 비트의 오디오 샘플 데이터를 포함하는 것을 특징으로 하는 송신기.Wherein each sub-packet of the one or more audio sample packets contains two N-bit words, each N-bit word comprising M bits of audio sample data determined by I 2 S format audio data Transmitter. 제 3 항에 있어서,The method of claim 3, wherein N = 28, M = 24 인 것을 특징으로 하는 송신기.N = 28, M = 24, characterized in that the transmitter. 제 3 항에 있어서,The method of claim 3, wherein 상기 각 N-비트 워드는 IEC_60958 프레임의 서브-프레임 포맷에 대응되는 포맷을 갖는 것을 특징으로 하는 송신기.Wherein each N-bit word has a format corresponding to a sub-frame format of an IEC_60958 frame. 제 3 항에 있어서,The method of claim 3, wherein 상기 회로는 상기 오디오 샘플 패킷들을 나타내는 코드 워드들을 생성하기 위해 상기 I2S 포맷 오디오 데이터의 포맷을 나타내는 프로그램된 레지스터를 사용하도록 구성되는 것을 특징으로 하는 송신기.The circuitry is configured to use a programmed register indicating the format of the I 2 S format audio data to generate code words representing the audio sample packets. 제 2 항에 있어서,The method of claim 2, 상기 입력부들은 2+M 개의 컨덕터들 상으로 상기 I2S 포맷의 오디오 데이터를 수신하도록 구성되고, 상기 컨덕터들은 하나의 비트 클록 컨덕터, 하나의 워드 클록 컨덕터 및 M 개의 데이터 컨덕터, 1≤M≤4, 를 포함하며, 상기 오디오 샘플 패킷들은 상기 각 데이터 컨덕터들 상에서 수신된 상기 I2S 포맷 오디오에 의해 결정된 오디오 샘플 데이터를 포함하는 것을 특징으로 하는 송신기.The inputs are configured to receive the I 2 S format audio data on 2 + M conductors, the conductors being one bit clock conductor, one word clock conductor and M data conductors, 1 ≦ M ≦ 4, wherein the audio sample packets comprise audio sample data determined by the I 2 S format audio received on the respective data conductors. 제 7 항에 있어서,The method of claim 7, wherein 상기 회로부는 픽셀 클록에 응답하여 상기 인코딩된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 상기 픽셀 클록에 응답하여 패킷들을 나타내는 상기 코드 워드들을 상기 하나 이상의 출력부로 인가하고, 상기 몇 이상의 패킷들 내에 타임 코드 데이터를 포함하도록 구성되며, 상기 타임 코드 데이터는 상기 픽셀 클록과 함께 I2S 포맷 오디오 데이터에 대한 오디오 클록을 나타내는 것을 특징으로 하는 송신기.The circuitry applies the encoded video data to the one or more outputs in response to a pixel clock, applies the code words representing packets to the one or more outputs in response to the pixel clock, and times within the several or more packets. And time code data together with the pixel clock to represent an audio clock for I 2 S format audio data. 제 8 항에 있어서,The method of claim 8, 상기 오디오 클록은 상기 비트 클록 컨덕터에서 수신된 비트 클록인 것을 특징으로 하는 송신기.And the audio clock is a bit clock received at the bit clock conductor. 제 2 항에 있어서,The method of claim 2, 상기 입력부들은 3M 개의 컨덕터들 상으로 상기 I2S 포맷의 오디오 데이터를 수신하도록 구성되고, 상기 컨덕터들은 M 개의 비트 클록 컨덕터들, M 개의 워드 클록 컨덕터들 및 M 개의 데이터 컨덕터들, 1≤M≤4, 를 포함하며, 상기 오디오 샘플 패킷들은 상기 각 데이터 컨덕터들 상에서 수신된 상기 I2S 포맷 오디오에 의해 결정된 오디오 샘플 데이터를 포함하고,The inputs are configured to receive the I 2 S format audio data on 3M conductors, the conductors having M bit clock conductors, M word clock conductors and M data conductors, 1 ≦ M ≤ 4, wherein the audio sample packets include audio sample data determined by the I 2 S format audio received on the respective data conductors, 상기 회로부는 픽셀 클록에 응답하여 상기 인코딩된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 상기 픽셀 클록에 응답하여 패킷들을 나타내는 상기 코드 워드들을 상기 하나 이상의 출력부로 인가하고, 상기 몇 이상의 패킷들 내에 타임 코드 데이터를 포함하도록 구성되며, 상기 타임 코드 데이터는 상기 픽셀 클록과 함께 상기 데이터 컨덕터에서 수신된 상기 각 I2S 포맷 오디오 스트림에 대한 오디오 클록을 나타내는 것을 특징으로 하는 송신기.The circuitry applies the encoded video data to the one or more outputs in response to a pixel clock, applies the code words representing packets to the one or more outputs in response to the pixel clock, and times within the several or more packets. And time code data together with the pixel clock to represent an audio clock for each of the I 2 S format audio streams received at the data conductor. 제 1 항에 있어서,The method of claim 1, 상기 회로부는 제어 데이터 주기 동안 제어 데이터를 상기 하나 이상의 출력부로 인가하도록 구성되고, 상기 제어 데이터 주기는 상기 어느 데이터 아일랜드와도 동시에 일어나지도 또는 겹치지도 않고, 상기 어느 액티브 비디오 주기와도 동시에 일어나지도 또는 겹치지도 않는 것을 특징으로 하는 송신기.The circuitry is configured to apply control data to the one or more outputs during a control data period, wherein the control data period does not occur simultaneously with or overlap with any of the data islands, or simultaneously with any active video period or Transmitter characterized in that it does not overlap. 하나 이상의 비디오 채널을 구비하는 시리얼 링크와 연결되도록 구성된 송신기에 있어서, 상기 송신기는:A transmitter configured to be connected with a serial link having one or more video channels, the transmitter comprising: 비디오 데이터 및, 제1 포맷을 갖는 오디오 데이터 스트림들 및 제2 포맷을 갖는 오디오 데이터 스트림들 포함하는, 다수의 오디오 데이터 스트림들을 수신하기 위한 입력부들;Inputs for receiving a plurality of audio data streams, the video data including audio data streams having a first format and audio data streams having a second format; 상기 링크와 연결되도록 구성된 하나 이상의 출력부; 및One or more outputs configured to be connected with the link; And 상기 입력부들 및 상기 각 출력부 사이에 연결된 회로부로서, 상기 회로부는 상기 비디오 데이터를 인코딩함으로써 인코딩된 비디오 데이터를 생성하고, 보조 데이터 패킷들을 나타내는 코드 워드들을 생성하고, 액티브 비디오 주기 동안 상기 인코딩된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 데이터 아일랜드 동안 상기 보조 데이터 패킷들을 나타내는 코드 워드들을 상기 하나 이상의 출력부로 인가하도록 구성되며, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와도 동시에 일어나지도 또는 겹치지도 않는 타임 구간이며, 상기 보조 데이터는 상기 오디오 데이터를 포함하는, 상기 회로부를 포함하며,Circuitry coupled between the inputs and each output, the circuitry generating encoded video data by encoding the video data, generating code words representing auxiliary data packets, and encoding the encoded video during an active video period. Apply data to the one or more outputs and apply code words representing the auxiliary data packets to the one or more outputs during a data island, each data island occurring or overlapping simultaneously with any of the active video periods. A non-time period, wherein the auxiliary data includes the circuit unit, including the audio data, 상기 회로부는 멀티플렉서 회로 및 상기 멀티플렉서 회로에 연결된 데이터 패킷화 회로를 포함하고, 상기 멀티플렉서 회로는 상기 오디오 데이터 스트림들을 수신하고 상기 스트림들 중 소정의 한 스트림을 소정 타이밍에 상기 데이터 패킷화 회로에 인가하도록 연결되고 구성되는 것을 특징으로 하는 송신기.The circuit portion includes a multiplexer circuit and a data packetization circuit coupled to the multiplexer circuit, the multiplexer circuit receiving the audio data streams and applying a predetermined one of the streams to the data packetization circuit at a predetermined timing. Transmitter connected and configured. 제 12 항에 있어서,The method of claim 12, 상기 패킷들 중 몇 이상은 오디오 샘플 패킷들이며, 상기 패킷화 회로는 상기 오디오 패킷들 내의 포함되기 위한 상기 오디오 데이터를 포맷하도록 구성되며, 상기 오디오 샘플 패킷들 각각은 N-비트 오디오 샘플 워드들을 포함하고, 상기 각 오디오 샘플 워드는 상기 오디오 데이터에 의해 결정된 오디오 샘플 비트들을 포함하고, 상기 오디오 샘플 워드들 각각은 IEC_60958 프레임의 서브-프레임 포맷에 대응되는 포맷을 갖는 것을 특징으로 하는 송신기.Some of the packets are audio sample packets, and the packetization circuitry is configured to format the audio data for inclusion in the audio packets, each of the audio sample packets comprising N-bit audio sample words; Wherein each audio sample word includes audio sample bits determined by the audio data, each audio sample word having a format corresponding to a sub-frame format of an IEC_60958 frame. 제 12 항에 있어서,The method of claim 12, 상기 입력부들은 2개의 클록 스트림 및 I2S 데이터 스트림을 포함하는 I2S 포맷의 오디오 데이터, 및 DSD 비트 클록 스트림, 제1 DSD 데이터 스트림, 및 제2 DSD 데이터 스트림을 포함하는 DSD 포맷의 오디오 데이터를 수신하도록 구성되고, 상기 멀티플렉서 회로는 상기 입력부들이 I2S 포맷의 오디오 데이터를 수신할 때 상기 I2S 데이터 스트림의 데이터를 소정 타이밍으로 상기 데이터 패킷화 회로에 인가하도록 구성되고, 상기 멀티플렉서 회로는 상기 입력부들이 DSD 포맷의 오디오 데이터를 수신할 때 상기 제1 DSD 데이터 스트림 및 상기 제2 DSD 데이터 스트림의 데이터를 소정 타이밍으로 상기 데이터 패킷화 회로에 인가하도록 구성되는 것을 특징으로 하는 송신기.The inputs are in I 2 S format audio data comprising two clock streams and an I 2 S data stream, and the DSD format audio comprising a DSD bit clock stream, a first DSD data stream, and a second DSD data stream. Configured to receive data, wherein the multiplexer circuit is configured to apply data of the I 2 S data stream to the data packetization circuit at a predetermined timing when the inputs receive audio data in an I 2 S format, and And a multiplexer circuit is configured to apply the data of the first DSD data stream and the second DSD data stream to the data packetization circuit at a predetermined timing when the input units receive audio data in a DSD format. . 하나 이상의 비디오 채널을 구비하는 시리얼 링크와 연결되도록 구성된 송신기에 있어서, 상기 송신기는:A transmitter configured to be connected with a serial link having one or more video channels, the transmitter comprising: 임베딩 된 클록을 구비하는 하나 이상의 오디오 데이터 스트림 및 비디오 데이터를 수신하기 위한 입력부들;Inputs for receiving one or more audio data streams and video data having an embedded clock; 상기 링크와 연결되도록 구성된 하나 이상의 출력부들; 및One or more outputs configured to be connected with the link; And 상기 입력부들 및 상기 각 출력부 사이에 연결된 회로부로, 상기 회로부는 상기 비디오 데이터를 인코딩함으로써 인코딩된 비디오 데이터를 생성하고, 상기 오디오 데이터 스트림을 상기 임베딩 된 클록과 알려지지 않는 위상 관계를 갖는 제2 클록으로 샘플링함으로써 재샘플링된 오디오 데이터를 생성하고, 보조 데이터 패킷들을 나타내는 코드 워드들을 생성하고, 액티브 비디오 주기 동안 픽셀 클록에 응답하여 상기 인코딩된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 데이터 아일랜드 동안 상기 픽셀 클록에 응답하여 상기 보조 데이터 패킷을 나타내는 코드 워드들을 상기 하나 이상의 출력부로 인가하도록 구성되며, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와도 동시에 일어나지도 또는 겹치지도 않는 타임 구간이며, 상기 보조 데이터는 타임 코드 데이터 및 상기 재샘플링된 오디오 데이터를 포함하고, 상기 타임 코드 데이터는 상기 픽셀 클록과 함께 상기 제2 클록을 나타내는, 상기 회로부를 포함하는 것을 특징으로 하는 송신기.Circuitry coupled between the inputs and the respective outputs, the circuitry generating encoded video data by encoding the video data and a second clock having an unknown phase relationship with the embedded clock Generate resampled audio data by generating a sample, generate code words representing auxiliary data packets, apply the encoded video data to the one or more outputs in response to a pixel clock during an active video period, and And apply code words representing the auxiliary data packet to the one or more outputs in response to a pixel clock, each data island having a time interval that does not occur or overlap with any of the active video periods. The auxiliary data is time code data and an audio data, the re-sampling, the time code data transmitter comprising the said circuit representing the second clock with the pixel clock. 제 15 항에 있어서,The method of claim 15, 상기 오디오 데이터 스트림은 입력 오디오 샘플 레이트를 갖고, 상기 제2 클 록은 Z*128*Fs 의 주파수를 가지며, 여기서 Z는 2보다 작지 않은 정수이며, Fs는 상기 입력 오디오 샘플 레이트인 것을 특징으로 하는 송신기.The audio data stream has an input audio sample rate, the second clock has a frequency of Z * 128 * Fs, where Z is an integer not less than 2, and Fs is the input audio sample rate transmitter. 하나 이상의 비디오 채널을 구비하는 시리얼 링크와 연결되도록 구성된 송신기에 있어서, 상기 송신기는:A transmitter configured to be connected with a serial link having one or more video channels, the transmitter comprising: 임베딩 된 클록을 구비하는 하나 이상의 오디오 데이터 스트림 및 비디오 데이터를 수신하기 위한 입력부들;Inputs for receiving one or more audio data streams and video data having an embedded clock; 상기 링크와 연결되도록 구성된 하나 이상의 출력부들; 및One or more outputs configured to be connected with the link; And 상기 입력부들 및 상기 각 출력부 사이에 연결된 회로부로, 상기 회로부는 상기 비디오 데이터를 인코딩함으로써 인코딩된 비디오 데이터를 생성하고, 상기 오디오 데이터 스트림을 상기 임베딩 된 클록과 알려지지 않는 위상 관계를 갖는 픽셀 클록으로 샘플링함으로써 재샘플링된 오디오 데이터를 생성하고, 보조 데이터 패킷들을 나타내는 코드 워드들을 생성하고, 액티브 비디오 주기 동안 픽셀 클록에 응답하여 상기 인코딩된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 데이터 아일랜드 동안 상기 픽셀 클록에 응답하여 상기 보조 데이터 패킷을 나타내는 코드 워드들을 상기 하나 이상의 출력부로 인가하도록 구성되며, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와도 동시에 일어나지도 또는 겹치지도 않는 타임 구간이며, 상기 보조 데이터는 상기 재샘플링된 오디오 데이터를 포함하는, 상기 회로부를 포함하는 것을 특징으로 하는 송신기.Circuitry coupled between the inputs and each output, the circuitry generating encoded video data by encoding the video data and converting the audio data stream into a pixel clock having an unknown phase relationship with the embedded clock. Sampling to generate resampled audio data, generating code words representing auxiliary data packets, applying the encoded video data to the one or more outputs in response to a pixel clock during an active video period, and during the data island And apply code words representing the auxiliary data packet to the one or more outputs in response to a clock, wherein each data island has a time period that does not occur or overlap with any of the active video periods. And wherein the auxiliary data comprises the circuitry section including the resampled audio data. 하나 이상의 비디오 채널을 구비하는 시리얼 링크와 연결되도록 구성된 송신기에 있어서, 상기 송신기는:A transmitter configured to be connected with a serial link having one or more video channels, the transmitter comprising: 비디오 데이터 및 오디오 데이터를 수신하기 위한 입력부들;Inputs for receiving video data and audio data; 상기 링크와 연결되도록 구성된 하나 이상의 출력부들; 및One or more outputs configured to be connected with the link; And 상기 입력부들 및 상기 각 출력부 사이에 연결된 회로부로, 상기 회로부는 상기 비디오 데이터를 인코딩함으로써 인코딩된 비디오 데이터를 생성하고, 보조 데이터 패킷들을 나타내는 코드 워드들을 생성하고, 액티브 비디오 주기 동안 상기 인코딩된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 데이터 아일랜드 동안 상기 보조 데이터 패킷을 나타내는 코드 워드들을 상기 하나 이상의 출력부로 인가하도록 구성되며, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와도 동시에 일어나지도 또는 겹치지도 않는 타임 구간이며, 상기 보조 데이터는 오디오 데이터를 포함하는, 상기 회로부를 포함하며,Circuitry coupled between the inputs and each output, the circuitry generating encoded video data by encoding the video data, generating code words representing auxiliary data packets, and generating the encoded video during an active video period. Apply data to the one or more outputs and apply code words representing the auxiliary data packet to the one or more outputs during a data island, each data island occurring or overlapping simultaneously with any of the active video periods. A non-time period, wherein the auxiliary data includes the circuit portion, including audio data, 상기 패킷들 중 몇 이상은 오디오 샘플 패킷들이며, 상기 각 오디오 패킷은 헤더를 구비하고, 하나 이상의 상기 오디오 데이터에 대한 샘플을 포함할 수 있으며, 상기 헤더는 상기 오디오 샘플 패킷이 오디오 데이터 샘플을 포함하는 지와 상기 각 오디오 데이터 샘플이 플랫라인(flatline) 샘플인지를 나타내는 하나 이상의 소정 타임 슬롯 내의 헤더 데이터를 포함하는 것을 특징으로 하는 송신기.Some of the packets are audio sample packets, wherein each audio packet has a header and may include samples for one or more of the audio data, wherein the header includes an audio data sample. And header data in one or more predetermined time slots indicating whether each audio data sample is a flatline sample. 제 18 항에 있어서,The method of claim 18, 상기 각 오디오 샘플 패킷은 2 이상의 서브-패킷들을 구비하고, 상기 각 서 브-패킷들은 하나 이상의 오디오 데이터의 샘플을 포함할 수 있으며, 상기 헤더 데이터는 상기 각 서브-패킷들이 오디오 데이터 샘플을 포함하는지를 나타내는 제1 소정 타임 슬롯 내의 데이터를 포함하고, 상기 헤더 데이터는 또한 상기 각 오디오 데이터 샘플이 플랫라인 샘플을 나타내는 제2 소정 타임 슬롯 내의 데이터를 포함하는 것을 특징으로 하는 송신기.Wherein each audio sample packet has two or more sub-packets, each of the sub-packets may comprise one or more samples of audio data, and the header data indicates whether each of the sub-packets contains an audio data sample. And data in a first predetermined time slot indicating, wherein the header data also includes data in a second predetermined time slot in which each audio data sample represents a flatline sample. 하나 이상의 비디오 채널을 구비하는 시리얼 링크와 연결되도록 구성된 송신기로서, 상기 송신기는:A transmitter configured to be connected with a serial link having one or more video channels, the transmitter comprising: 비디오 데이터 및 DSD 포맷의 오디오 데이터를 포함하는 오디오 데이터를 수신하기 위한 입력부들;Inputs for receiving audio data including video data and audio data in a DSD format; 상기 링크와 연결되도록 구성된 하나 이상의 출력부; 및One or more outputs configured to be connected with the link; And 상기 입력부들 및 상기 각 출력부 사이의 회로부로, 상기 회로부는 상기 비디오 데이터를 인코딩함으로써 인코딩된 비디오 데이터를 생성하고, 보조 데이터 패킷들을 나타내는 코드 워드들을 생성하고, 액티브 비디오 주기 동안 상기 인코딩된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 데이터 아일랜드 동안 상기 보조 데이터 패킷을 나타내는 코드 워드들을 상기 하나 이상의 출력부로 인가하도록 구성되며, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와도 동시에 일어나지도 또는 겹치지도 않는 타임 구간이며, 상기 보조 데이터는 상기 오디오 데이터를 포함하는, 상기 회로부를 포함하는 것을 특징으로 하는 송신기.Circuitry between the inputs and the respective outputs, the circuitry generating encoded video data by encoding the video data, generating code words representing auxiliary data packets, and generating the encoded video data during an active video period. Is applied to the one or more outputs, and code words representing the auxiliary data packet to the one or more outputs during the data island, wherein each data island does not occur or overlap with any of the active video periods simultaneously. And the auxiliary data includes the circuit unit, wherein the auxiliary data includes the audio data. 제 20 항에 있어서,The method of claim 20, 상기 패킷들 중 몇 이상은 헤더 및 2 이상의 서브-패킷들을 구비하는 오디오 샘플 패킷들이며, 상기 서브-패킷은 오디오 데이터의 샘플들을 포함하는 것을 특징으로 하는 송신기.At least some of said packets are audio sample packets having a header and at least two sub-packets, said sub-packets comprising samples of audio data. 제 21 항에 있어서,The method of claim 21, 상기 오디오 샘플 패킷들 중 하나 이상의 각 서브-패킷은 2 개의 N-비트 워드를 포함하고, 상기 각 N-비트 워드는 상기 DSD 포맷의 오디오 데이터에 의해 결정된 M 비트의 오디오 샘플 데이터를 포함하는 것을 특징으로 하는 송신기.Wherein each sub-packet of one or more of the audio sample packets includes two N-bit words, each N-bit word comprising M bit audio sample data determined by audio data in the DSD format Transmitter. 제 22 항에 있어서,The method of claim 22, 상기 각 N-비트 워드는 IEC_60958 프레임의 서브-프레임 포맷에 대응되는 포맷을 갖는 것을 특징으로 하는 송신기.Wherein each N-bit word has a format corresponding to a sub-frame format of an IEC_60958 frame. 제 22 항에 있어서,The method of claim 22, 상기 회로부는 상기 오디오 샘플 패킷들을 나타내는 코드 워드들을 생성하기 위해 상기 DSD 포맷이 오디오 데이터 포맷을 나타내는 프로그램된 레지스터 비트들을 사용하도록 구성되는 것을 특징으로 하는 송신기.The circuitry is configured such that the DSD format uses programmed register bits representing an audio data format to generate code words representing the audio sample packets. 제 21 항에 있어서,The method of claim 21, 상기 입력부들은 1+2M 개의 컨덕터들 상으로 상기 DSD 포맷의 오디오 데이터를 수신하도록 구성되고, 상기 컨덕터들은 하나의 비트 클록 컨덕터, 2M 개의 데이터 컨덕터, 1≤M≤4, 를 포함하며, 상기 오디오 샘플 패킷들은 상기 각 데이터 컨덕터들 상에서 수신된 상기 DSD 포맷 오디오에 의해 결정된 오디오 샘플 데이터를 포함하는 것을 특징으로 하는 송신기.The inputs are configured to receive audio data in the DSD format on 1 + 2M conductors, the conductors comprising one bit clock conductor, 2M data conductors, 1 ≦ M ≦ 4, Sample packets including audio sample data determined by the DSD format audio received on the respective data conductors. 제 25 항에 있어서,The method of claim 25, 상기 회로부는 픽셀 클록에 응답하여 상기 인코딩된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 상기 픽셀 클록에 응답하여 패킷들을 나타내는 상기 코드 워드들을 상기 하나 이상의 출력부로 인가하며, 상기 패킷들 중 몇 이상의 패킷 안에는 타임 코드 데이터를 포함하도록 구성되며, 상기 타임 코드 데이터는 상기 픽셀 클록과 함께 상기 DSD 포맷의 오디오 데이터에 대한 오디오 클록을 나타내는 것을 특징으로 하는 송신기.The circuitry applies the encoded video data to the one or more outputs in response to a pixel clock, applies the code words representing packets to the one or more outputs in response to the pixel clock, and at least several of the packets. And is configured to include time code data, wherein the time code data together with the pixel clock represent an audio clock for audio data of the DSD format. 제 21 항에 있어서,The method of claim 21, 상기 입력부는 3M 개의 컨덕터 상으로 상기 DSD 포맷의 오디오 데이터를 수신하도록 구성되고, 상기 컨덕터들은 M 개의 비트 클록 컨덕터들 및 2M 개의 데이터 컨덕터들, 1≤M≤4, 을 포함하고, 상기 오디오 샘플 패킷들은 상기 데이터 컨덕터들 상에서 수신된 상기 DSD 포맷의 오디오에 의해 결정된 오디오 샘플 데이터를 포함하며, 그리고The input is configured to receive audio data in the DSD format on 3M conductors, the conductors comprising M bit clock conductors and 2M data conductors, 1 ≦ M ≦ 4, and the audio sample packet Includes audio sample data determined by the DSD format audio received on the data conductors, and 상기 회로부는 픽셀 클록에 응답하여 상기 인코딩된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 상기 픽셀 클록에 응답하여 패킷들을 나타내는 상기 코드 워드들을 상기 하나 이상의 출력부로 인가하며, 상기 패킷들 중 몇 이상의 패킷들 내에 타임 코드 데이터를 포함하도록 구성되며, 상기 타임 코드 데이터는 상기 픽셀 클록과 함께 상기 데이터 컨덕터들 상에서 수신된 상기 DSD 포맷 오디오의 각 스트림에 대한 오디오 클록을 나타내는 것을 특징으로 하는 송신기.The circuitry applies the encoded video data to the one or more outputs in response to a pixel clock, applies the code words representing packets to the one or more outputs in response to the pixel clock, and at least several of the packets. And time code data in the data stream, wherein the time code data together with the pixel clock is indicative of an audio clock for each stream of the DSD format audio received on the data conductors. 하나의 비디오 클록 채널 및 하나 이상의 비디오 채널을 구비하는 시리얼 링크와 연결되도록 구성된 수신기에 이어서, 상기 수신기는:Following a receiver configured to be connected with a serial link having one video clock channel and one or more video channels, the receiver is: 상기 링크와 연결되도록 구성되고, 상기 비디오 클록 채널과 연결되도록 구성된 클록 입력부를 포함하는 2 이상의 입력부들;Two or more inputs configured to be connected with the link and comprising a clock input configured to be connected with the video clock channel; 상기 링크로부터 복원된 비디오 데이터 및 오디오 데이터를 인가하기 위한 출력부들; 및Outputs for applying video data and audio data reconstructed from the link; And 상기 입력부들 및 상기 각 출력부 사이에 연결되고, 상기 클록 입력부로부터 픽셀 클록을 수신하고, 상기 픽셀 클록에 응답하여 액티브 비디오 주기 동안 상기 하나 이상의 입력부에서 수신된 인코딩된 비디오 데이터를 디코딩 등을 수행함으로써 복원된 비디오 데이터를 생성하고, 상기 복원된 비디오 데이터를 상기 하나 이상의 출력부에 인가하며, 상기 픽셀 클록에 응답하여 데이터 아일랜드 동안 상기 하나 이상의 입력부에서 수신된 인코딩된 보조 데이터 패킷들의 코드 워드들을 디코딩함으로써 디코딩된 데이터를 생성하고, 상기 디코딩된 데이터로부터 하나 이상의 I2S 포맷 오디오 데이터의 스트림을 생성하고, 상기 각 I2S 포맷 오디오 데이터의 스트림을 상기 하나 이상의 출력부로 인가하도록 구성된 회로부로, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와도 동시에 발생하거나 또는 겹치지도 않는 타임 구간인, 상기 회로부를 포함하며,Coupled between the inputs and the respective outputs, receiving a pixel clock from the clock input, decoding the encoded video data received at the one or more inputs during an active video period in response to the pixel clock, and the like. Generating reconstructed video data, applying the reconstructed video data to the one or more outputs, and decoding code words of encoded auxiliary data packets received at the one or more inputs during a data island in response to the pixel clock. Circuitry configured to generate decoded data, generate a stream of one or more I 2 S format audio data from the decoded data, and apply the stream of each I 2 S format audio data to the one or more outputs; Data island Group which active video period and also occur at the same time or a time interval that does not overlap also, includes the circuitry, 상기 디코딩된 데이터 중 몇 이상의 데이터는 타임 스탬프를 나타내는 타임 코드 데이터이며, 상기 타임 코드 데이터는 상기 픽셀 클록과 함께 상기 I2S 포맷 오디오 데이터 스트림에 대한 오디오 클록을 나타내는 것을 특징으로 하는 수신기.And at least some of said decoded data is time code data representing a time stamp, said time code data together with said pixel clock representing an audio clock for said I 2 S format audio data stream. 제 28 항에 있어서,The method of claim 28, 상기 회로부는 상기 디코딩된 데이터로부터 N 개의 I2S 포맷 오디오 데이터 스트림을 생성하고, 여기서 N은 1보다 크며, 상기 각 I2S 포맷 오디오 데이터 스트림을 상기 출력부들의 다른 서브세트로 인가하도록 구성되는 것을 특징으로 하는 수신기.The circuitry generates N I 2 S format audio data streams from the decoded data, where N is greater than 1 and is configured to apply each I 2 S format audio data stream to a different subset of the outputs. Receiver characterized in that. 제 29 항에 있어서,The method of claim 29, 상기 각 I2S 포맷 오디오 데이터 스트림은 상기 오디오 클록을 공유하는 것 을 특징으로 하는 수신기.Each of said I 2 S format audio data streams sharing said audio clock. 제 29 항에 있어서,The method of claim 29, 상기 타임 코드 데이터는 상기 픽셀 클록과 함께 상기 각 I2S 포맷 오디오 데이터 스트림에 대한 다른 오디오 클록을 나타내는 것을 특징으로 하는 수신기.The time code data is indicative of a different audio clock for each of the I 2 S format audio data streams with the pixel clock. 제 29 항에 있어서,The method of claim 29, N = 4 인 것을 특징으로 하는 수신기.N = 4 receivers. 하나 이상의 비디오 채널을 구비하는 시리얼 링크와 연결되도록 구성된 수신기에 있어서, 상기 수신기는:A receiver configured to be connected with a serial link having one or more video channels, the receiver comprising: 상기 링크와 연결되도록 구성된 하나 이상의 입력부;At least one input configured to be connected with the link; 상기 링크로부터 복원된 비디오 데이터 및 오디오 데이터를 인가하기 위한 출력부들; 및Outputs for applying video data and audio data reconstructed from the link; And 상기 입력부들 및 상기 각 출력부 사이에 연결되고, 액티브 비디오 주기 동안 상기 하나 이상의 입력부에서 수신된 인코딩된 비디오 데이터를 디코딩 등을 수행함으로써 복원된 비디오 데이터를 생성하고, 상기 복원된 비디오 데이터를 상기 하나 이상의 출력부에 인가하며, 데이터 아일랜드 동안 상기 하나 이상의 입력부에서 수신된 인코딩된 보조 데이터 패킷들의 코드 워드들을 디코딩함으로써 디코딩된 데이터를 생성하고, 상기 디코딩된 데이터로부터 하나 이상의 오디오 데이터 스트림을 생성하도록 구성된 회로부로, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와도 동시에 발생하거나 또는 겹치지도 않는 타임 구간인, 상기 회로부를 포함하며,A reconstructed video data connected between the inputs and the respective outputs, by performing decoding or the like on encoded video data received at the one or more inputs during an active video period, and generating the reconstructed video data. Circuitry configured to apply to at least one output, to generate decoded data by decoding code words of encoded auxiliary data packets received at the at least one input during a data island, and to generate at least one audio data stream from the decoded data. Each of the data islands includes the circuitry, which is a time interval that does not occur simultaneously or overlap with any of the active video periods. 상기 회로부는 상기 각 복원된 오디오 데이터의 스트림을 소정 타이밍으로 상기 출력부들 중 하나 이상의 소정의 출력부로 인가하도록 연결되고 구성된 멀티플렉서 회로를 포함하는 것을 특징으로 하는 수신기.And the circuitry comprises multiplexer circuitry coupled and configured to apply the respective streams of recovered audio data to one or more of the outputs at predetermined timing. 제 33 항에 있어서,The method of claim 33, wherein 상기 패킷들 중 몇 이상의 패킷들은 오디오 샘플 패킷들이며, 상기 각 오디오 샘플 패킷은 오디오 샘플 워드들을 포함하며, 상기 각 오디오 샘플 워드는 N 개의 오디오 샘플 비트를 포함하고, 상기 오디오 샘플 비트는 상기 복원된 오디오 데이터를 결정하고, 상기 각 오디오 샘플 워드는 IEC_60958 프레임의 서브-프레임 포맷에 대응되는 포맷을 갖는 것을 특징으로 하는 수신기.Some or more of the packets are audio sample packets, each audio sample packet including audio sample words, each audio sample word including N audio sample bits, and the audio sample bit being the recovered audio. Determine data, wherein each audio sample word has a format corresponding to a sub-frame format of an IEC_60958 frame. 제 33 항에 있어서,The method of claim 33, wherein 상기 출력부는 2개의 클록 스트림 및 하나의 I2S 데이터 스트림을 포함하는 I2S 포맷 오디오 데이터, 또는 하나의 DSD 비트 클록 스트림 및 2개의 DSD 데이터 스트림을 포함하는 DSD 포맷 오디오 데이터 중 어느 하나를 인가하도록 구성되고, 상기 회로부는 상기 디코딩된 데이터로부터 3개의 복원된 오디오 데이터 스트림을 생성하는 모드에서 동작가능하며, 상기 멀티플렉서 회로는 상기 3개의 복원된 오디오 데이터 스트림을 상기 3개의 출력부로 I2S 포맷 오디오 데이터 또는 DSD 포맷 오디오 데이터 중 어느 하나로서 인가하도록 구성되는 것을 특징으로 하는 수신기.The output unit applies either I 2 S format audio data including two clock streams and one I 2 S data stream, or DSD format audio data including one DSD bit clock stream and two DSD data streams. And the circuitry is operable in a mode of generating three recovered audio data streams from the decoded data, the multiplexer circuitry converting the three recovered audio data streams into the three outputs in an I 2 S format. And apply as either audio data or DSD format audio data. 하나 이상의 비디오 채널을 구비하는 시리얼 링크와 연결되도록 구성된 수신기로서, 상기 수신기는:A receiver configured to be connected with a serial link having one or more video channels, the receiver comprising: 상기 링크와 연결되도록 구성된 하나 이상의 입력부;At least one input configured to be connected with the link; 상기 링크로부터 복원된 비디오 데이터 및 오디오 데이터를 인가하기 위한 출력부들; 및Outputs for applying video data and audio data reconstructed from the link; And 상기 출력부들 및 상기 각 입력부 사이에 연결되고, 액티브 비디오 주기 동안 상기 하나 이상의 입력부에서 수신된 인코딩된 비디오 데이터를 디코딩 등을 수행함으로써 복원된 비디오 데이터를 생성하고, 상기 복원된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 데이터 아일랜드 동안 상기 하나 이상의 입력부에서 수신된 인코딩된 보조 데이터 패킷의 코드 워드들을 디코딩 등을 수행함으로써 디코딩된 데이터를 생성하고, 상기 디코딩된 데이터로부터 하나 이상의 복원된 오디오 데이터 스트림을 생성하도록 구성된 회로부로, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와도 동시에 발생하지도 또는 겹치지도 않는 타임 구간이며, 상기 패킷들 중 몇 이상의 패킷들은 오디오 샘플 패킷들이며, 상기 각 오디오 샘플 패킷은 헤더를 구비하고 상기 오디오 데이터의 하나 이상의 샘플을 포함할 수 있으며, 상기 헤더는 상기 오디오 샘플 패킷이 오디오 데이터 샘플을 포함하는 지와 상기 각 오디오 데이터 샘플이 플랫라인(flatline) 샘플인지를 나타내는 하나 이상이 소정 타임 슬롯 내의 헤더 데이터를 포함하는, 상기 회로부를 포함하며,A reconstructed video data coupled between the outputs and the respective inputs to generate reconstructed video data by performing decoding or the like on encoded video data received at the at least one input during an active video period, and converting the reconstructed video data to the at least one. Generates decoded data by applying to an output, performing codewords of encoded auxiliary data packets received at the one or more inputs during a data island, and the like, and generating one or more recovered audio data streams from the decoded data. And wherein each data island is a time interval that does not occur or overlap with any of the active video periods, wherein at least some of the packets are audio sample packets, and each audio sample packet is encoded. And one or more samples of the audio data, wherein the header is one or more indicating whether the audio sample packet includes audio data samples and whether each audio data sample is a flatline sample. Including said circuitry, including header data in a predetermined time slot, 상기 회로부는 상기 패킷들 중 하나가 플랫라인 샘플을 포함하는 오디오 샘플 패킷임을 나타내는 헤더 데이터를 수신하는 것에 응답하여 상기 하나 이상의 복원된 오디오 데이터 스트림 내에 플랫라인 데이터를 포함하도록 구성되는 것을 특징으로 하는 수신기.The circuitry is configured to include flatline data in the one or more recovered audio data streams in response to receiving header data indicating that one of the packets is an audio sample packet comprising a flatline sample. . 하나의 비디오 클록 채널 및 하나 이상의 비디오 채널을 구비하는 시리얼 링크와 연결되도록 구성된 수신기로서, 상기 수신기는:A receiver configured to be connected with a serial link having one video clock channel and one or more video channels, the receiver comprising: 상기 링크와 연결되도록 구성되고, 상기 비디오 클록 채널과 연결되도록 구성된 클록 입력부를 포함하는 하나 이상의 입력부;One or more inputs configured to be connected with the link and comprising a clock input configured to be connected with the video clock channel; 상기 링크로부터 복원된 비디오 데이터 및 오디오 데이터를 인가하기 위한 출력부들; 및Outputs for applying video data and audio data reconstructed from the link; And 상기 출력부들 및 상기 각 입력부 사이에 연결되고, 상기 클록 입력부로부터 픽셀 클록을 수신하고, 상기 픽셀 클록에 응답하여 액티브 비디오 주기 동안 상기 하나 이상의 입력부에서 수신된 인코딩된 비디오 데이터를 디코딩 등을 수행함으로써 복원된 비디오 데이터를 생성하고, 상기 복원된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 상기 픽셀 클록에 응답하여 데이터 아일랜드 동안 상기 하나 이상의 입력부에서 수신된 인코딩된 보조 데이터 패킷의 코드 워드들을 디코딩 등을 수행함으로써 디코딩된 데이터를 생성하고, 상기 디코딩된 데이터로부터 하나 이상의 DSD 포맷 오디오 데이터 스트림을 생성하고, 상기 각 DSD 포맷 오디오 데이터를 상기 하나 이상의 출력부로 인가하도록 구성된 회로부로, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와도 동시에 발생하지도 또는 겹치지도 않는 타임 구간인, 상기 회로부를 포함하며,Connected between the outputs and each of the inputs, and receiving a pixel clock from the clock input and performing decoding or the like on the encoded video data received at the one or more inputs during an active video period in response to the pixel clock. Generate the decoded video data, apply the reconstructed video data to the one or more outputs, decode codewords of the encoded auxiliary data packet received at the one or more inputs during the data island in response to the pixel clock, and the like. Circuitry configured to generate decoded data, to generate one or more DSD format audio data streams from the decoded data, and to apply each of the DSD format audio data to the one or more outputs, wherein each of the data islands comprises: Wherein said circuitry is a time period that does not occur simultaneously with, or overlap with, the active video period, 상기 디코딩된 데이터 몇 몇 이상의 데이터는 타임 스탬프를 나타내는 타임 코드 데이터이며, 상기 타임 코드 데이터는 상기 픽셀 클록과 함께 상기 DSD 포맷 오디오 데이터 스트림에 대한 오디오 클록을 나타내는 것을 특징으로 하는 수신기.And at least some of the decoded data is time code data representing a time stamp, wherein the time code data together with the pixel clock represents an audio clock for the DSD format audio data stream. 제 37 항에 있어서,The method of claim 37, 상기 회로부는 상기 디코딩된 데이터로부터 N 개의 DSD 포맷 오디오 데이터 스트림을 생성하고, 여기서 N은 1보다 크며, 상기 각 DSD 포맷 오디오 데이터 스트림을 상기 출력부들의 다른 서브세트로 인가하도록 구성되는 것을 특징으로 하는 수신기.The circuitry generates N DSD format audio data streams from the decoded data, where N is greater than 1 and is configured to apply each DSD format audio data stream to a different subset of the outputs. receiving set. 제 38 항에 있어서,The method of claim 38, 상기 각 DSD 포맷 오디오 데이터 스트림은 상기 오디오 클록을 공유하는 것을 특징으로 하는 수신기.Wherein each DSD format audio data stream shares the audio clock. 제 38 항에 있어서,The method of claim 38, 상기 타임 코드 데이터는 상기 픽셀 클록과 함께 상기 각 DSD 포맷 오디오 데이터 스트림에 대한 다른 오디오 클록을 나타내는 것을 특징으로 하는 수신기.The time code data is indicative of a different audio clock for each DSD format audio data stream with the pixel clock. 제 38 항에 있어서,The method of claim 38, N = 4 인 것을 특징으로 하는 수신기.N = 4 receivers. 하나 이상의 비디오 채널을 구비하는 시리얼 링크와 연결되도록 구성된 송신기로서, 상기 송신기는:A transmitter configured to be connected with a serial link having one or more video channels, the transmitter comprising: 입력 비디오 데이터 및 오디오 데이터를 수신하기 위한 입력부들;Inputs for receiving input video data and audio data; 상기 링크와 연결되도록 구성된 하나 이상의 출력부들; 및One or more outputs configured to be connected with the link; And 상기 입력부들 및 상기 각 출력부 사이에 연결된 회로부로, 상기 회로부는 상기 비디오 데이터를 인코디함으로써 인코딩된 비디오 데이터를 생성하고, 보조 데이터 패킷을 나타내는 코드 워드들을 생성하고, 상기 인코딩된 비디오 데이터를 액티브 비디오 주기 동안 상기 하나 이상의 출력부로 인가하고, 상기 보조 데이터 패킷을 나타내는 코드 워드들을 데이터 아일랜드 동안 상기 하나 이상의 출력부로 인가하도록 구성되며, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와도 동시에 발생하거나 또는 겹치지도 않는 타임구간이며, 상기 보조 데이터는 상기 오디오 데이터를 포함하는, 상기 회로부를 포함하며,Circuitry coupled between the inputs and each output, the circuitry generating encoded video data by encoding the video data, generating code words representing an auxiliary data packet, and generating the encoded video data active. Apply to the one or more outputs during a video period, and apply code words representing the auxiliary data packet to the one or more outputs during a data island, each data island being simultaneously generated or overlapping with any of the active video periods. A time period, wherein the auxiliary data includes the circuit portion, including the audio data, 상기 회로부는 제1 포맷을 갖는 입력 비디오에 응답하여 제2 포맷을 갖는 비 디오를 나타내는 상기 인코딩된 비디오 데이터를 생성하도록 구성되는 것을 특징으로 하는 송신기.The circuitry is configured to generate the encoded video data indicative of video having a second format in response to input video having a first format. 제 42 항에 있어서,The method of claim 42, 상기 회로부는 ITU-BT,656 포맷 또는 YCbCr 4:2:2 포맷 중 어느 하나를 갖는 입력 비디오에 응답하여 YCbCr 4:2:2 포맷을 갖는 비디오를 나타내는 상기 인코딩된 비디오 데이터를 생성하도록 구성되는 것을 특징으로 하는 송신기.Said circuitry being configured to generate said encoded video data representing video having a YCbCr 4: 2: 2 format in response to an input video having either an ITU-BT, 656 format or a YCbCr 4: 2: 2 format. Characterized by a transmitter. 제 42 항에 있어서,The method of claim 42, 상기 회로부는, N-비트 성분의 ITU-BT.656 포맷 또는 YCbCr 4:2:2 포맷을 갖는 2개의 시-분할-멀티플렉싱된 입력 비디오 스트림들 포함하는 입력 비디오에 응답하여, 2N-비트 성분의 YCbCr 4:2:2 포맷을 갖는 비디오를 나타내는 상기 인코딩된 비디오 데이터를 생성하도록 구성되는 것을 특징으로 하는 송신기.The circuitry is configured to respond to an input video comprising two time-division-multiplexed input video streams having an ITU-BT.656 format or a YCbCr 4: 2: 2 format of an N-bit component. And generate the encoded video data representing video having a YCbCr 4: 2: 2 format. 제 42 항에 있어서,The method of claim 42, 상기 회로부는, DDR YCbCr 4:4:4 포맷 또는 DDR YCbCr 4:2:2 포맷을 갖는 입력 비디오에 응답하여, 종래의 YCbCr 4:4:4 포맷 또는 종래의 YCbCr 4:2:2 포맷을 갖는 비디오를 나타내는 상기 인코딩된 비디오 데이터를 생성하도록 구성되는 것을 특징으로 하는 송신기.The circuit portion has a conventional YCbCr 4: 4: 4 format or a conventional YCbCr 4: 2: 2 format in response to an input video having a DDR YCbCr 4: 4: 4 format or a DDR YCbCr 4: 2: 2 format. And generate the encoded video data representative of the video. 제 42 항에 있어서,The method of claim 42, 상기 회로부는, ITU-BT.656 포맷을 갖는 2 개의 시-분할-멀티플렉싱된 입력 비디오 스트림에 응답하여, 종래의 YCbCr 4:2:2 포맷을 갖는 비디오를 나타내는 상기 인코딩된 비디오 데이터를 생성하도록 구성되는 것을 특징으로 하는 송신기.The circuitry is configured to generate the encoded video data representing the video having a conventional YCbCr 4: 2: 2 format in response to two time-division-multiplexed input video streams having an ITU-BT.656 format. Transmitter, characterized in that. 제 42 항에 있어서,The method of claim 42, 상기 회로부는, 동기 비트가 입력 비디오 샘플들에 임베딩되는 하나 이상의 포맷 및 동기 비트가 입력 비디오 샘플들에 임베딩되지 않는 하나 이상의 포맷을 포함하는, 2 이상의 YCbCr 포맷 중 어느 하나를 갖는 입력 데이터에 응답하여, YCbCr 4:4:4 포맷을 갖는 비디오를 나타내는 상기 인코딩된 비디오 데이터를 생성하도록 구성되는 것을 특징으로 하는 송신기.The circuitry is responsive to input data having any one of two or more YCbCr formats, including one or more formats in which sync bits are embedded in input video samples and one or more formats in which sync bits are not embedded in input video samples. And generate the encoded video data representative of the video having a YCbCr 4: 4: 4 format. 제 42 항에 있어서,The method of claim 42, 상기 회로부는, 동기 비트가 입력 비디오 샘플들에 임베딩되는 하나 이상의 포맷 및 동기 비트가 입력 비디오 샘플들에 임베딩되지 않는 하나 이상의 포맷을 포함하는, 2 이상의 YCbCr 포맷 중 어느 하나를 갖는 입력 데이터에 응답하여, YCbCr 4:2:2 포맷을 갖는 비디오를 나타내는 상기 인코딩된 비디오 데이터를 생성하도록 구성되는 것을 특징으로 하는 송신기.The circuitry is responsive to input data having any one of two or more YCbCr formats, including one or more formats in which sync bits are embedded in input video samples and one or more formats in which sync bits are not embedded in input video samples. And generate the encoded video data representative of the video having a YCbCr 4: 2: 2 format. 제 42 항에 있어서,The method of claim 42, 상기 회로부는 YCbCr 4:2:2 포맷의 입력 비디오를 수신하도록 연결된 업컨버션(upconversion) 회로를 포함하며, 상기 회로부는 상기 YCbCr 4:2:2 포맷의 입력 비디오에 응답하여 YCbCr 4:4:4 포맷을 갖는 비디오를 나타내는 상기 인코딩된 비디오 데이터를 생성하도록 구성되는 것을 특징으로 하는 송신기.The circuitry includes upconversion circuitry coupled to receive input video in YCbCr 4: 2: 2 format, and the circuitry is YCbCr 4: 4: 4 in response to the input video in YCbCr 4: 2: 2 format. And generate the encoded video data representative of the video having a format. 제 42 항에 있어서,The method of claim 42, 상기 회로부는 YCbCr 에서 RGB 로의 칼라 공간 전환 회로를 포함하며, 상기 회로부는 YCbCr 포맷의 입력 비디오에 응답하여 RGB 포맷을 갖는 비디오를 나타내는 상기 인코딩된 비디오 데이터를 생성하도록 구성되는 것을 특징으로 하는 송신기.The circuitry includes a color space conversion circuit from YCbCr to RGB, the circuitry being configured to generate the encoded video data representing video having an RGB format in response to an input video of YCbCr format. 하나 이상의 비디오 채널을 구비하는 시리얼 링크와 연결되도록 구성된 수신기에 있어서, 상기 수신기는:A receiver configured to be connected with a serial link having one or more video channels, the receiver comprising: 상기 링크와 연결되도록 구성된 하나 이상의 입력부;At least one input configured to be connected with the link; 상기 링크로부터 복원된 비디오 데이터 및 오디오 데이터를 인가하기 위한 출력부들; 및Outputs for applying video data and audio data reconstructed from the link; And 상기 출력부들 및 상기 각 입력부 사이에 연결되고, 액티브 비디오 주기 동안 상기 하나 이상의 입력부에서 수신된 인코딩된 비디오 데이터를 디코딩 등을 수행함으로써 복원된 비디오 데이터를 생성하고, 상기 복원된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 데이터 아일랜드 동안 상기 하나 이상이 입력부에서 수신된 인코딩된 보조 데이터 패킷의 코드 워드들을 디코딩 등을 수행함으로써 디코딩된 데이터를 생성하고, 상기 디코딩된 데이터로부터 복원된 오디오 데이터의 하나 이상의 스트림을 생성하도록 구성된 회로부로, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와도 동시에 발생하지도 또는 겹치지도 않는 타임 구간인, 상기 회로부를 포함하며,A reconstructed video data coupled between the outputs and the respective inputs to generate reconstructed video data by performing decoding or the like on encoded video data received at the at least one input during an active video period, and converting the reconstructed video data to the at least one. One or more streams of audio data reconstructed from the decoded data, applying to an output, and generating data decoded by performing one or more code words of an encoded auxiliary data packet received at the input during the data island, and the like. A circuit portion configured to generate a data element, wherein each data island comprises a circuit portion that is a time period that does not occur simultaneously or overlap with any of the active video periods, 상기 회로부는 제2 포맷을 갖는 비디오를 나타내는 인코딩된 비디오 데이터에 응답하여 제1 포맷을 갖는 상기 복원된 비디오 데이터를 생성하도록 구성되는 것을 특징으로 하는 수신기.The circuitry is configured to generate the reconstructed video data having the first format in response to the encoded video data representing the video having the second format. 제 51 항에 있어서,The method of claim 51, wherein 상기 회로부는 YCbCr 4:2:2 포맷을 갖는 비디오를 나타내는 인코딩된 비디오 데이터에 응답하여, ITU-BT.656 포맷을 갖는 상기 복원된 비디오 데이터를 생성하도록 구성되는 것을 특징으로 하는 수신기.The circuitry is configured to generate the reconstructed video data having an ITU-BT.656 format in response to the encoded video data representing the video having a YCbCr 4: 2: 2 format. 제 51 항에 있어서,The method of claim 51, wherein 상기 회로부는 2N-비트 성분의 YCbCr 4:2:2 포맷을 갖는 비디오를 나타내는 인코딩된 비디오 데이터에 응답하여, N-비트 성분의 각각 ITU-BT.656 포맷을 갖는 상기 복원된 비디오 데이터의 2개의 스트림들 생성하도록 구성되는 것을 특징으로 하는 수신기.The circuitry comprises two pieces of the reconstructed video data each having an ITU-BT.656 format of N-bit components, in response to encoded video data representing video having a YCbCr 4: 2: 2 format of 2N-bit components. And configured to generate streams. 제 51 항에 있어서,The method of claim 51, wherein 상기 회로부는, YCbCr 4:2:2 포맷을 갖는 비디오를 나타내는 인코딩된 비디오 데이터에 응답하여, 동기 비트가 입력 비디오 샘플들에 임베딩된 하나 이상의 포맷과, 동기 비트가 입력 비디오 샘플들에 임베딩되지 않은 하나 이상의 포맷을 포함하는, 2 이상의 YCbCr 포맷 중 어느 하나를 갖는 상기 복원된 비디오 데이터를 생성하도록 구성되는 것을 특징으로 하는 수신기.The circuitry is configured to respond to encoded video data representing video having a YCbCr 4: 2: 2 format in which one or more formats have sync bits embedded in the input video samples, and wherein the sync bits are not embedded in the input video samples. And generate the reconstructed video data having any one of two or more YCbCr formats, including one or more formats. 제 51 항에 있어서,The method of claim 51, wherein 상기 회로부는, 종래의 YCbCr 4:4:4 포맷 또는 종래의 YCbCr 4:2:2 포맷을 갖는 비디오를 나타내는 인코딩된 비디오 데이터에 응답하여, DDR YCbCr 4:4:4 포맷, DDR YCbCr 4:2:2 포맷, 또는 DDR ITU-BT.656 포맷을 갖는 상기 복원된 비디오 데이터를 생성하도록 구성되는 것을 특징으로 하는 수신기.The circuitry is in response to encoded video data representing a video having a conventional YCbCr 4: 4: 4 format or a conventional YCbCr 4: 2: 2 format, the DDR YCbCr 4: 4: 4 format, DDR YCbCr 4: 2 And generate the reconstructed video data having a: 2 format, or a DDR ITU-BT.656 format. 제 51 항에 있어서,The method of claim 51, wherein 상기 회로부는 제2 YCbCr 포맷을 갖는 비디오를 나타내는 인코딩된 비디오 데이터에 응답하여 제1 YCbCr 포맷을 갖는 상기 복원된 비디오 데이터를 생성하도록 구성되는 것을 특징으로 하는 수신기.The circuitry is configured to generate the reconstructed video data having a first YCbCr format in response to the encoded video data representing the video having a second YCbCr format. 제 51 항에 있어서,The method of claim 51, wherein 상기 회로부는 제2 YCbCr 포맷을 갖는 비디오를 나타내는 인코딩된 비디오 데이터에 응답하여, 다운컨버팅 및 업컨버팅 중 하나 이상을 수행하는 것 등을 통해, 제1 YCbCr 포맷을 갖는 상기 복원된 비디오 데이터를 생성하도록 구성되는 것을 특징으로 하는 수신기.The circuitry is configured to generate the reconstructed video data having the first YCbCr format, such as in response to encoded video data representing the video having a second YCbCr format, by performing one or more of downconverting and upconverting. A receiver, which is configured. 제 51 항에 있어서,The method of claim 51, wherein 상기 회로부는 RGB 포맷을 갖는 비디오를 나타내는 인코딩된 비디오 데이터에 응답하여 YCbCr 포맷을 갖는 상기 복원된 비디오 데이터를 생성하도록 구성되는 것을 특징으로 하는 수신기.The circuitry is configured to generate the reconstructed video data having a YCbCr format in response to encoded video data representing video having an RGB format. 데이터 블록들에 대한 에러 정정 코드를 생성하기 위한 회로에 있어서, 상기 회로는:A circuit for generating an error correction code for data blocks, the circuit comprising: 제1 데이터 스트림을 수신하도록 연결된 제1 입력부 및 제2 데이터 스트림을 수신하도록 연결된 제2 입력부를 포함하는 입력부들;Inputs comprising a first input coupled to receive a first data stream and a second input coupled to receive a second data stream; 제1 출력부 및 제2 출력부를 포함하는 출력부들; 및Output units including a first output unit and a second output unit; And 상기 제1 입력부, 상기 제2 입력부, 상기 제1 출력부, 및 상기 제2 출력부 사이에 연결된 에러 정정 코드 생성 논리부로, 상기 에러 정정 코드 생성 논리부는, 상기 데이터 블록의 제1 서브세트 및 뒤이은 데이터 블록의 하나 이상의 데이터 비트를 포함하는 상기 제1 데이터 스트림, 및 상기 데이터 블록의 제2 서브세트 및 상기 뒤이은 데이터 블록의 하나 이상의 다른 데이터 비트를 포함하는 상기 제2 데이터 스트림에 응답하여, 상기 데이터 블록에 대한 상기 에러 정정 코드의 제1 서브세트를 상기 제1 출력부로 인가하고, 상기 블록에 대한 상기 에러 정정 코드의 제2 서브세트를 상기 제2 출력부로 인가하도록 구성된, 상기 에러 정정 코드 생성 논리부를 포함하는 것을 특징으로 하는 회로.An error correction code generation logic coupled between the first input unit, the second input unit, the first output unit, and the second output unit, wherein the error correction code generation logic unit comprises: a first subset of the data block; In response to the first data stream comprising one or more data bits of the data block, and the second data stream comprising one or more other data bits of the subsequent data block and the second subset of the data blocks; The error correction code, configured to apply a first subset of the error correction code for the data block to the first output, and to apply a second subset of the error correction code for the block to the second output. And a generation logic section. 제 59 항에 있어서,The method of claim 59, 상기 에러 정정 코드 생성 논리부는 쉬프트 레지스터를 포함하고, 상기 블록은 Z 개의 비트들로 구성되고, 상기 후속 블록은 Z 개의 비트들로 구성되며, 상기 블록에 대한 상기 에러 정정 코드는 Y 개의 에러 정정 코드 비트들로 구성되며, 상기 에러 정정 코드 생성 논리부는 Y/2보다 크지 않은 클록 사이클 동안 상기 쉬프트 레지스터로부터 상기 블록에 대한 Y 개의 에러 정정 코드 비트들을 쉬프트 출력하는 모드에서 동작 가능하도록 구성되는 것을 특징으로 하는 회로.The error correction code generation logic unit includes a shift register, the block consists of Z bits, the subsequent block consists of Z bits, and the error correction code for the block is Y error correction code. And the error correction code generation logic is configured to be operable in a mode of shifting out the Y error correction code bits for the block from the shift register for a clock cycle not greater than Y / 2. Circuit. 제 59 항에 있어서,The method of claim 59, 상기 에러 정정 코드는 BCH 패리티 비트들로 구성되는 것을 특징으로 하는 회로.And the error correction code consists of BCH parity bits. 제 59 항에 있어서,The method of claim 59, 상기 에러 정정 코드는 신드롬 비트들로 구성되는 것을 특징으로 하는 회로.And the error correction code consists of syndrome bits. 하나 이상의 비디오 채널을 포함하는 시리얼 링크와 연결되도록 구성된 송신 기에 있어서, 상기 송신기는:13. A transmitter configured to be connected with a serial link comprising one or more video channels, the transmitter comprising: 비디오 데이터를 수신하도록 연결된 하나 이상의 입력부와 보조 데이터를 수신하도록 연결된 하나 이상의 입력부;At least one input coupled to receive video data and at least one input coupled to receive auxiliary data; 상기 링크와 연결되도록 구성된 하나 이상의 출력부; 및One or more outputs configured to be connected with the link; And 상기 각 입력부 및 상기 각 출력부 사이에 연결되고, 상기 비디오 데이터 및 보조 데이터를 인코딩함으로써 인코딩된 비디오 데이터 및 인코딩된 보조 데이터를 생성하고, 액티브 비디오 주기 동안 상기 인코딩된 비디오 데이터를 상기 하나 이상의 출력부로 인가하고, 데이터 아일랜드 동안 상기 인코딩된 보조 데이터를 포함하는 패킷들을 상기 하나 이상의 출력부로 인가하도록 구성된 회로부로서, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와도 동시에 발생하거나 또는 겹치지도 않는 타임 구간인, 상기 회로부를 포함하며,Coupled between each input and each output, generating encoded video data and encoded auxiliary data by encoding the video data and auxiliary data, and transferring the encoded video data to the one or more outputs during an active video period. Circuitry configured to apply, and to the one or more outputs, packets that contain the encoded auxiliary data during a data island, wherein each data island is a time period that does not occur or overlap with any of the active video periods. Including the circuit portion, 상기 패킷들 중 몇 이상의 패킷 각각은 하나 이상의 데이터 블록 및 상기 블록에 대한 BCH 패리티 비트들을 나타내며, 상기 회로부는 제1 입력부, 제2 입력부, 제1 출력부, 및 제2 출력부를 구비하는 패리티 비트 생성 논리부를 포함하고, 상기 패리티 비트 생성 논리부는, 상기 제1 입력부에서 수신된 제1 데이터 스트림 및 상기 제2 입력부에서 수신된 제2 데이터 스트림을 포함하는 2 이상의 데이터 스트림에 응답하여 상기 각 블록에 대한 BCH 패리티 비트를 생성하고, 상기 데이터 블록의 제1 서브세트 및 후속 데이터 블록의 하나 이상의 데이터 비트로 구성된 상기 제1 데이터 스트림, 및 상기 데이터 블록의 제2 서브세트 및 상기 후속 데이터 블록의 하나 이상의 다른 데이터 비트로 구성된 상기 제2 데이터 스트림에 응답하 여, 상기 블록에 대한 상기 BCH 패리티 비트의 제1 서브세트를 상기 제1 출력부로 인가하고, 상기 블록에 대한 상기 BCH 패리티 비트의 제2 서브세트를 상기 제2 출력부로 인가하도록 연결되고 구성된 것을 특징으로 하는 송신기.Each of the at least some of the packets represents one or more data blocks and BCH parity bits for the block, wherein the circuitry generates a parity bit having a first input, a second input, a first output, and a second output. And a parity bit generation logic unit for each block in response to two or more data streams including a first data stream received at the first input unit and a second data stream received at the second input unit. Generate a BCH parity bit, the first data stream consisting of the first subset of the data block and one or more data bits of a subsequent data block, and the second subset of the data block and one or more other data of the subsequent data block In response to the second data stream of bits, the BCH packet for the block And is configured to apply a first subset of the utility bits to the first output and to apply a second subset of the BCH parity bits for the block to the second output. 제 63 항에 있어서,The method of claim 63, wherein 상기 패리티 비트 생성 논리부는 쉬프트 레지스터를 포함하고, 상기 패리티 비트 생성 논리부는 2 이상의 BCH 패리티 비트들이 각 클록 사이클 동안 상기 쉬프트 레지스터로부터 쉬프트 출력되는 모드에서 동작하도록 구성되는 것을 특징으로 하는 송신기.The parity bit generation logic unit comprises a shift register, wherein the parity bit generation logic unit is configured to operate in a mode in which two or more BCH parity bits are shifted out of the shift register during each clock cycle. 제 64 항에 있어서,The method of claim 64, wherein 상기 블록 및 상기 후속 블록 각각은 Z 개의 비트들로 구성되고, 상기 블록에 대한 상기 BCH 패리티 비트는 Y 개의 패리티 비트들로 구성되며, 상기 패리티 비트 생성 논리부는 Y/2 보다 크지 않은 클록 사이클 동안 상기 블록에 대한 Y 개의 패리티 비트들을 상기 쉬프트 레지스터로부터 쉬프트 출력시키는 상기 모드에서 동작하도록 구성되는 것을 특징으로 하는 송신기.Each of the block and the subsequent block consists of Z bits, the BCH parity bit for the block consists of Y parity bits, and the parity bit generation logic is configured to perform the clock cycle no more than Y / 2. And operate in the mode of shifting out Y parity bits for the block from the shift register. 제 65 항에 있어서,66. The method of claim 65, 상기 제1 스트림의 데이터는 상기 데이터 블록의 상기 제1 서브세트 및 후속 블록의 제1 데이터 비트로 구성되고, 상기 제2 스트림의 데이터는 상기 데이터 블 록의 상기 제2 서브세트 및 상기 후속 데이터 블록의 제2 데이터 비트로 구성되며, 상기 패리티 비트 생성 논리부는 Y/2 개의 클록 사이클 동안 상기 블록에 대한 Y 개의 패리티 비트들을 상기 쉬프트 레지스터로부터 쉬프트 출력시키는 상기 모드에서 동작하도록 구성되는 것을 특징으로 하는 송신기.The data of the first stream is composed of the first subset of the data block and the first data bits of the subsequent block, and the data of the second stream is composed of the second subset of the data block and the subsequent data block. A second data bit, wherein the parity bit generation logic is configured to operate in the mode of shifting out Y parity bits for the block from the shift register for Y / 2 clock cycles. 제 63 항에 있어서,The method of claim 63, wherein 상기 회로부는 상기 각 패킷이 헤더 및 2 이상의 서브-패킷들을 구비하도록 상기 패킷들을 인가하고, 상기 각 패킷에 대한 헤더는 헤더 데이터 및 헤더 패리티 비트를 포함하고, 상기 각 서브-패킷은 서브-패킷 데이터 및 상기 서브-패킷 데이터에 대한 서브-패킷 패리티 비트들을 포함하며, 상기 서브-패킷 데이터의 상기 각 블록에 대해서 상기 패리티 비트 생성 논리부에 의해 생성된 상기 BCH 패리티 비트는 상기 서브-패킷 패리티 비트인 것을 특징으로 하는 송신기.The circuitry applies the packets such that each packet has a header and two or more sub-packets, the header for each packet includes header data and header parity bits, and each sub-packet contains sub-packet data. And sub-packet parity bits for the sub-packet data, wherein the BCH parity bit generated by the parity bit generation logic for each block of the sub-packet data is the sub-packet parity bit. And a transmitter. 하나 이상의 비디오 채널을 포함하는 시리얼 링크에 연결되도록 구성된 수신기에 있어서, 상기 수신기는:A receiver configured to be connected to a serial link comprising one or more video channels, the receiver comprising: 상기 링크와 연결되도록 구성된 하나 이상의 입력부;At least one input configured to be connected with the link; 상기 링크로부터 복원된 비디오 데이터를 인가하기 위한 하나 이상의 비디오 출력부 및 상기 링크로부터 복원된 오디오 데이터를 인가하기 위한 하나 이상의 오디오 출력부; 및At least one video output for applying video data reconstructed from the link and at least one audio output for applying audio data reconstructed from the link; And 상기 각 입력부 및 상기 각 출력부 사이에 연결되고, 액티브 비디오 주기 동안 상기 하나 이상의 입력부에서 수신된 인코딩된 비디오 데이터를 디코딩 등을 수행함으로써 복원된 비디오 데이터를 생성하고, 상기 복원된 비디오 데이터를 상기 하나 이상의 비디오 출력부로 인가하고, 데이터 아일랜드 동안 상기 하나 이상의 입력부에서 수신된 상기 패킷들을 나타내는 코드 워드들을 디코딩 등을 수행함으로터 패킷들을 복원하고, 상기 복원된 패킷들로부터 추출된 데이터로부터 하나 이상의 오디오 데이터 스트림을 생성하고, 상기 각 오디오 데이터 스트림을 상기 하나 이상의 오디오 출력부로 인가하도록 구성된 회로부로, 상기 각 데이터 아일랜드는 상기 어느 액티브 비디오 주기와도 동시에 발생하거나 겹치지도 않는 타임 구간인, 상기 회로부를 포함하며,A reconstructed video data connected between each input unit and each output unit and generating reconstructed video data by performing decoding or the like on encoded video data received at the at least one input unit during an active video period, and converting the reconstructed video data to the one One or more audio data streams from the data extracted from the restored packets by applying to one or more video outputs, decoding code words representing the packets received at the one or more inputs during a data island, or the like, and extracting data from the recovered packets. A circuit portion configured to generate a signal and to apply each of the audio data streams to the one or more audio outputs, wherein each data island is a time interval that does not occur or overlap with any of the active video periods. And also, 상기 복원된 패킷들 중 몇 이상의 패킷들로부터 추출된 데이터는 데이터 블록들의 시퀀스를 나타내고, 상기 회로부는 상기 데이터 블록들의 2 이상의 스트림에 응답하여 상기 각 블록에 대한 신드롬 비트들을 생성하도록 구성되고, 상기 신드롬 생성 논리부는 제1 데이터 스트림을 수신하도록 연결된 제1 입력부 및 제2 데이터 스트림을 수신하도록 연결된 제2 입력부를 포함하는 입력부, 제1 출력부, 및 제2 출력부를 포함하고, 상기 신드롬 생성 논리부는, 상기 각 블록의 제1 서브세트 데이터 및 상기 블록의 다음 블록의 하나 이상의 데이터 비트로 구성된 제1 스트림의 데이터, 및 상기 각 블록의 제2 서브세트 데이터 및 상기 블록의 다음 블록의 하나 이상의 데이터 비트로 구성된 제2 스트림의 데이터에 응답하여, 상기 각 블록에 대한 상기 신드롬 비트들의 제1 서브세트를 상기 제1 출력부로 인가하고, 상기 각 블록에 대한 상기 신드롬 비트들의 제2 서브세트를 상기 제2 출력부로 인가하도록 연결되고 구성되는 것을 특징으로 하는 수신기.Data extracted from several or more of the recovered packets represents a sequence of data blocks, and wherein the circuitry is configured to generate syndrome bits for each block in response to two or more streams of the data blocks, and the syndrome The generation logic unit includes an input unit including a first input unit connected to receive a first data stream and a second input unit connected to receive a second data stream, a first output unit, and a second output unit, wherein the syndrome generation logic unit includes: A first stream of data consisting of the first subset of data of each block and one or more data bits of the next block of the block, and the second subset of data of each block and one or more data bits of the next block of the block The syndrome bit for each block, in response to the data of the two streams. Of the first subsets and applying said first output portion, a receiver for a second subset of the syndrome bits for each block characterized in that the connection part is configured to apply the second output. 제 68 항에 있어서,The method of claim 68, wherein 상기 신드롬 생성 논리부는 쉬프트 레지스터를 포함하고, 상기 각 블록은 Z 개의 비트들로 구성되며, 상기 각 블록에 대해 Y 개의 신드롬 비트들이 존재하며, 상기 신드롬 생성 논리부는 Y/2보다 크지 않은 클록 사이클 동안 상기 각 블록에 대한 상기 Y 개의 신드롬 비트들을 상기 쉬프트 레지스터로부터 쉬프트 출력시키는 모드에서 동작하도록 구성되는 것을 특징으로 하는 수신기.The syndrome generation logic section includes a shift register, each block consisting of Z bits, Y syndrome bits are present for each block, and the syndrome generation logic section is for a clock cycle not greater than Y / 2. And operate in a mode of shifting the Y syndrome bits for each block from the shift register. 제 68 항에 있어서,The method of claim 68, wherein 상기 제1 스트림의 데이터는 상기 각 블록에 대한 상기 제1 서브세트의 데이터 및 상기 블록의 다음 블록의 제1 데이터 비트로 구성되고, 상기 제2 스트림의 데이터는 상기 각 블록에 대한 상기 제2 서브세트의 데이터 및 상기 블록의 다음 블록의 제2 데이터 비트로 구성되며, 상기 신드롬 생성 논리부는 Y/2 클록 사이클 동안 상기 각 블록에 대한 상기 Y 개의 신드롬 비트들을 상기 쉬프트 레지스터로부터 쉬프트 출력시키는 모드에서 동작하도록 구성되는 것을 특징으로 하는 수신기.The data of the first stream consists of the first subset of data for each block and the first data bits of the next block of the block, and the data of the second stream is the second subset for each block. And a second data bit of a next block of the block, wherein the syndrome generating logic is configured to operate in a mode that shifts the Y syndrome bits for each block from the shift register during a Y / 2 clock cycle. Receiver characterized in that the.
KR1020047009984A 2001-12-24 2002-12-05 System for serial transmission of video and packetized audiodata in multiple formats KR100699452B1 (en)

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 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/095,422 2002-03-12
US10/171,860 2002-06-14
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
US19223302A 2002-07-10 2002-07-10
US10/192,233 2002-07-10
PCT/US2002/038948 WO2003058826A2 (en) 2001-12-24 2002-12-05 System for serial transmission of video and packetized audio data in multiple formats

Publications (2)

Publication Number Publication Date
KR20040075031A KR20040075031A (en) 2004-08-26
KR100699452B1 true KR100699452B1 (en) 2007-03-27

Family

ID=50064984

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047009984A KR100699452B1 (en) 2001-12-24 2002-12-05 System for serial transmission of video and packetized audiodata in multiple formats

Country Status (1)

Country Link
KR (1) KR100699452B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140073513A (en) * 2011-10-07 2014-06-16 실리콘 이미지, 인크. Identification and handling of data streams using coded preambles

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101319549B1 (en) * 2007-07-16 2013-10-21 삼성전자주식회사 Transmission and receive method of audio data and electronic apparatus using that
KR101403682B1 (en) * 2007-12-13 2014-06-05 삼성전자주식회사 Image apparatus to transmit audio data and method thereof
US8644504B2 (en) * 2008-02-28 2014-02-04 Silicon Image, Inc. Method, apparatus, and system for deciphering media content stream
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
KR102282438B1 (en) * 2020-03-05 2021-07-27 엘아이지넥스원 주식회사 Apparatus and Method for Generating Data Packet for Image Radar

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140073513A (en) * 2011-10-07 2014-06-16 실리콘 이미지, 인크. Identification and handling of data streams using coded preambles
KR101915033B1 (en) * 2011-10-07 2018-11-05 래티스세미컨덕터코퍼레이션 Identification and handling of data streams using coded preambles

Also Published As

Publication number Publication date
KR20040075031A (en) 2004-08-26

Similar Documents

Publication Publication Date Title
JP4176643B2 (en) Method and apparatus for recovering a clock for auxiliary data transmitted with video data over a serial link
EP1486056B1 (en) System for video and auxiliary data transmission over a serial link
US7283566B2 (en) Method and circuit for generating time stamp data from an embedded-clock audio data stream and a video clock
CA2471541A1 (en) System for serial transmission of video and packetized audiodata in multiple formats
US7797536B1 (en) Cryptographic device with stored key data and method for using stored key data to perform an authentication exchange or self test
JP4229836B2 (en) A method and apparatus for reducing inter-symbol interference effects on continuous link transmissions by mapping each word of a group of received words to a single transmitted word.
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
KR100699469B1 (en) System for regenerating a clock for data transmission
KR100699452B1 (en) System for serial transmission of video and packetized audiodata in multiple formats
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 (en) Communication method, transmitting device, and communication system

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