KR100482708B1 - 리스트제어비디오동작방법및시스템 - Google Patents

리스트제어비디오동작방법및시스템 Download PDF

Info

Publication number
KR100482708B1
KR100482708B1 KR10-1998-0707003A KR19980707003A KR100482708B1 KR 100482708 B1 KR100482708 B1 KR 100482708B1 KR 19980707003 A KR19980707003 A KR 19980707003A KR 100482708 B1 KR100482708 B1 KR 100482708B1
Authority
KR
South Korea
Prior art keywords
command
commands
processing unit
linked
list
Prior art date
Application number
KR10-1998-0707003A
Other languages
English (en)
Other versions
KR19990087565A (ko
Inventor
지안-쉰 천
알렉산더 지. 맥키니스
켄 모르스
Original Assignee
파워티브이, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 파워티브이, 인코포레이티드 filed Critical 파워티브이, 인코포레이티드
Publication of KR19990087565A publication Critical patent/KR19990087565A/ko
Application granted granted Critical
Publication of KR100482708B1 publication Critical patent/KR100482708B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/74Circuits for processing colour signals for obtaining special effects
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
    • G09G2340/125Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels wherein one of the images is motion video

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

가정용 통신 단말기(HCT)용 개선된 그래픽 조작 기술은 응용 주문형 반도체(ASIC; Application Specific Integrated Circuit)에서 다양한 비디오 동작을 제어하는 코맨드의 링크된-리스트(linked-list)를 포함한다. 각각의 코맨드가 ASIC에 의해서 실행된 후, 이 ASIC(200)은 호스트 프로세서(303)를 인터럽트하지 않고 다음 코맨드로 진행한다. 따라서, 링크된-리스트(302)는 각 명령의 종료시 인터럽트를 연속적으로 처리하기 위한 호스트 프로세스의 필요성을 제거한다. 링크된-리스트 코맨드 구조는 비트 블록 전송, 비디오 캡처, 및 비디오 디스플레이를 포함한 주요 비디오 동작을 지원한다.

Description

리스트 제어 비디오 동작 방법 및 시스템{LIST CONTROLLED VIDEO OPERATIONS}
본 발명은 통상 케이블 텔레비젼이나 다른 시청각 성능을 제공하기 위해서 가정용 통신 단말기(HCT; Home Communications terminal)에서 실행하는 것들과 같은, 고성능 애플리케이션용으로 채용된 실시간 동작 시스템에서의 그래픽 처리에 관한 것이다. 특히, 본 발명은 제한된 계산 자원을 가진 장치에 내장된 동작 시스템의 성능을 개선하는 특성을 제공한다.
케이블 텔레비젼 시스템에서와 같은, 종래의 HCT용 작동 시스템은 통상적으로 하드웨어 장치를 제어하고 사용자가 제한된 메뉴와 디스플레이를 통해 접근할 수 있도록 제작된 한정된 성능들을 제공한다. 케이블 텔레비젼 산업의 성장은 대화식 비디오 게임, 요구형 비디오(video-on-demand), 다운로드가능한 애플리케이션, 고성능 그래픽, 멀티미디어 애플리케이션 등을 포함한 새로운 가능성을 가져왔기 때문에, 이러한 새로운 애플리케이션을 지원할 수 있는 HCT용 동작 시스템을 제공해야 할 필요성이 있다. 또한, 차세대 파이버-이용 네트워크(fiber-based networks)는 각 가정으로 그리고 각 가정으로부터 전송될 수 있는 데이터 대역폭을 상당히 증가시켰고, - 전화 통신(telephony)과 같은 - 아주 새로운 이용 수단이 HCT용으로 개발되도록 하고 있다. 따라서, 종래의 HCT 및 HCT의 동작 시스템은 빠르게 구식화되고 있다. 즉, HCT는 현재의 주문형 텔레비젼 세트(consumer television sets)를 대화식 멀티미디어 오락 및 통신 시스템으로 변형할 필요가 있다.
종래의 HCT의 디스플레이 시스템들은 비디오 디스플레이 장치에 결합된 호스트 프로세서를 포함한다. 고속 호스트 프로세서는 통상적으로 고속의 디스플레이 조작을 제공한다. 그러나, 고해상도 스크린의 출현으로, 처리할 디스플레이의 정보량도 또한 증가하고 있다. 따라서, 디스플레이 성능을 향상시키는데 있어서는 호스트 프로세서 처리율(throughput)을 증가시키는 것 만으로는 최상의 해결 방안이 될 수 없을지도 모른다.
더욱이, 부가적인 HCT 설계에 프로세서 및 메모리를 더 추가시키는 것만으로는 비용 증가를 감당하기 어렵다. 따라서, 저비용 설계의 틀 내에서 디스플레이 성능을 향상시키는 방법들을 개발하는 것이 바람직하다.
종래의 그래픽 시스템들은 단일 동작으로 픽셀 그룹들을 디스플레이 메모리로 이동시킬 수 있다. 본 기술 분야에서 적어도 두개의 픽셀들을 동시에 이동시키는 것은 비트 블록 전송(또는 BitBLT)으로서 통상적으로 공지되어 있다. BitBLT를 사용한다면, CPU는 픽셀의 블록 (통상, 사각형 블록)을 선택하여, 소스 및 수신지 개시 어드레스(destination starting address)를 제공하며, 전송을 행할 수 있도록 하드웨어-지원 기능을 유발시킨다. 그러나, 다수의 픽셀 그룹을 이동시킬 경우에, 새로운 전송을 시작하여, 전송을 위한 소스와 수신지 어드레스를 갱신하기 위해서 CPU가 불필요하게 인터럽트된다.
종래의 비디오 디스플레이 시스템에서의 다른 비효율적인 면은 비디오 캡처 기능의 수행과 관련되어 있다. 이러한 기능을 위해서, 제1 메모리 영역의 부분들이 디스플레이를 위해 제2 영역으로 반복해서 복사된다. 종래의 BitBLT 동작과 관련해서, 이러한 기능에 대응하기 위해서 CPU를 지속적으로 인터럽팅하는 것은 CPU의 성능을 저하시킨다.
결국, HCT의 비디오 디스플레이 시스템과 같은 종래의 비디오 디스플레이 시스템은 새로운 에플리케이션에서 이들의 사용을 어렵게 하는 성능의 비효율성이 있다.
<발명의 요약>
상술된 문제점들을 해결하기 위한 본 발명의 한 양상에 따르면, 그래픽 시스템이 메모리 내에 기억된 동작 코맨드의 리스트에 의해서 제어되는데, 여기서 각 코맨드의 실행들 사이에서 CPU를 인터럽트시킬 필요가 없다. 바람직한 실시예에서, 각각의 코맨드는 수행될 다음 코맨드에 링크되어 있다.
본 발명의 다른 양상에 따르면, 코맨드 리스트는 응용 주문형 반도체(ASIC) 내의 BitBLT 엔진을 제어한다.
본 발명의 또 다른 양상에 따르면, 코맨드 리스트는 입력 비디오 화상의 캡처를 제어한다.
본 발명의 또 다른 양상에 따르면, 코맨드 리스트는 비디오 화상의 디스플레이를 제어한다.
다른 특성 및 장점들은 다음의 상세한 설명, 도면, 및 특허 청구의 범위를 통해서 명확해질 것이다.
도 1은 본 발명의 개념을 이용하는 동작 시스템이 설치될 수 있는 가정용 통신 단말기(HCT)에 대한 하나의 가능한 구성을 도시한 도면.
도 2는 본 발명의 다양한 개념들을 이용하는 ASIC을 도시한 도면.
도 3은 링크된 리스트를 가진 ASIC을 도시한 도면.
도 4는 본 발명의 링크된 리스트를 도시한 도면.
도 5는 본 발명의 링크된 리스트의 다른 실시예를 도시한 도면.
도 6은 3개의 비트 블록 전송 동작을 도시한 도면.
도 7은 코맨드 리스트로부터 다양한 코맨드들을 수신하는, ASIC에 내장된 레지스터를 도시한 도면.
도 8은 BitBLT 동작 동안 픽셀 메모리 상의 판독 및 기록 포인터 동작을 도시한 도면.
도 9는 본 발명의 다양한 개념들을 이용하는 비디오 캡처 동작을 도시한 도면.
도 10 및 도 11은 본 발명의 다양한 개념들을 이용한 비디오 디스플레이 기능들을 도시한 도면.
도 1은 본 발명의 다양한 개념들이 실현될 수 있는 가정용 통신 단말기(home communication terminal; HCT)의 블록도를 도시한다. HCT는 CPU 카드(10), 그래픽 카드(20), 디코드 카드(30), 디스플레이 패널 및 키패드(40), 주처리 기판(main processing board)(50), 프론트 엔드(front end)(60), 동조부(70), 및 오디오부(80)를 포함할 수 있다. 본 발명은 적절한 EPROM(10c) 및 RAM(10b)을 구비한, PowerPC 또는 Motorora 68000 시리즈와 같은 CPU(10a)를 사용하여 구현될 수 있다는 것을 알 수 있다. 또한, CPU(10a) 상에서 실행되는 애플리케이션 프로그램은 종래의 기술에서 잘 알려진 바와 같이, 마우스, 게임 컨트롤러, 키패드, 네트워크 인터페이스 등과 같은 다양한 주변 장치와 상호 동작할 수 있다.
그래픽 카드(20)는 바람직하게는 아날로그 비디오 디지탈라이저(20a), 램(20b), 그래픽 칩(20c), 및 DENC(20d)을 포함한다. 그래픽 칩은 ASIC(응용 주문형 반도체)이 바람직하다. 램(20b)은 DRAM이 바람직하다. 아날로그 비디오 디지탈라이저(20a)는 그래픽 칩(20c)에서 사용하기 위해서 아날로그 비디오를 디지탈 비디오로 변환한다. 버스(21)는 그래픽 카드(20)를 CPU 카드(10)와 디코드 카드(30)에 접속한다. 그래픽 칩(20c)은 그래픽 카드의 구성소자들과 CPU 카드(10) 및 디코드 카드(30) 사이의 상호 동작을 코디네이트한다. 도 2에 도시된 바와 같이, 그래픽 칩(20c) 및 그 구성 소자들이 보다 상세하게 후술되어질 것이다.
컴퓨팅 시스템의 속도를 증가시키는 한 가지 방법은 특정한 개선된 장치에서 시스템의 소정 기능들을 수행하는 것이다. 예를 들어, ASIC 또는 다른 그래픽 프로세서들은 개선된 형태로 다양한 그래픽 코맨드들을 실행하는데 사용될 수 있다. 그러나, ASIC이 코맨드를 실행하는 동안에, 프로세서 내에서 공통으로 나타나는 분기 단계(branching steps)를 반드시 포함할 필요가 없다.
도 2에 도시된 바와 같이, 본 발명은 메모리 컨트롤러(201), 비디오 캡처 시스템(202), BitBlT 엔진(203), 및 동적 랜덤 액세스 메모리(DRAM)와의 인터페이스(204)를 포함하는 ASIC(200)을 사용한다. 또한, ASIC은 [도 1의 CPU(10a)에 대응하는] 호스트 프로세서에 대한 인터페이스(205), 오디오 엔진(206), 비디오 프로세싱 엔진(207)을 포함하는 것이 바람직하며, 이 비디오 프로세싱 엔진(207)은 MPEG 비디오와 디지탈화된 아날로그 비디오를 수신하여 이 신호를 비디오 캡처 시스템(202)과 합성 시스템(208)으로 출력한다. 결국, ASIC은 비디오 신호(211)를 출력하는, 플루터(flutter) 필터/파레트(210) 및 합성 시스템(208) 사이에 접속된 디스플레이 처리부(209)를 포함하는 것이 바람직하다.
코맨드 리스트
도 3을 참조하면, ASIC(200)은 코맨드 리스트(301)로부터 로드된 단일 코맨드를 저장하는 레지스터(309)를 포함할 수 있다. DRAM(308) 내에 적절하게 배치된, 코맨드 리스트(301)는 호스트 CPU(303)로부터의 코맨드들(302)을 보유한다. 사용되는 메모리의 형태는 SRAM 및 다른 메모리들이 사용될 수도 있지만, DRAM이 바람직하다. 호스트 CPU(303)는 IBM 또는 Motorola의 PowerPC 또는 Motorora 68000 프로세서가 바람직하다. 코맨드 리스트(301)는 예를 들어, 그래픽 묘화(drawing) 또는 연출(rendering) 코맨드, BitBLT 코맨드, 가산 코맨드, 및 삭제 코맨드를 포함한 임의의 코맨드일 수 있다. 본 발명의 한 양상에 따르면, 호스트 CPU(303)는 DRAM(308) 내에 코맨드 리스트(301)의 (순차적으로 실행될) 제1 코맨드 리스트를 저장한다. 호스트 CPU(303)가 코맨드 리스트(301)에 코맨드의 리스트를 기록(단계 304 참조)한 후에는, 호스트 프로세서(303)가 레지스터(309)를 검색하고(단계 306) 리스트(301) 내에 저장된 코맨드들(302)을 실행하라는 코맨드를 ASIC(200)으로 하달한다(단계 305). 이에 응답하여, ASIC(200)은 각각의 코맨드가 DRAM(308)으로부터 로드될 때 각각의 코맨드를 실행한다. 결국, 리스트 내의 코맨드들 중 하나가 코맨드 리스트의 끝에서 신호화되는 경우, ASIC(200)은 코맨드 리스트의 실행이 완료되었다는 것을 호스트 CPU(303)로 알린다(단계 307).
코맨드 리스트의 한 이용은 호스트 CPU(303)를 인터럽트시키지 않고 실행될 수 있는 일련의 BitBLT 코맨드를 제공하는 것이다. 앞서 설명한 바와 같이, 종래의 BitBLT 기능은 픽셀의 사각형 어레이를 메모리 위치의 한 세트로부터 다른 세트까지 복사하는 것이다. 코맨드 리스트의 다음 설명은 BitBLT 동작에 관한 것이다. 코맨드 리스트의 다른 응용이 다음에 설명된다.
도 3을 참조하면, 호스트 CPU(303)는 DRAM(308) 내에 코맨드 리스트(301)를 설치한다. 이들 코맨드들을 나중에 ASIC(200)에 의해서 액세스되는 DRAM(308) 내에 기억시킴으로써, 호스트(303)가 후에 각각의 BitBLT 동작 끝에서 ASIC으로부터의 수치 플레그(flags)를 처리해야 하는 필요성을 제거한다. 리스트(301)의 예는 도 4에 도시된다.
도 4는 코맨드 리스트를 실행 순서대로 도시한다. 코맨드 #N 다음에는, 코맨드 #N+1(402)이 오고, 그 다음에는 코맨드 #N+2(403)가 온다. 각각의 코맨드는 한 세트의 코맨드 파라미터들을 포함할 수 있다. 도 4에 도시된 바와 같이, 이들 파라미터들은 "mode" (404), "src_ptr" (405), 및 "dst_ptr" (406)을 포함할 수 있다. 다른 엔트리들이 또한 포함될 수 있지만, 편의상 도 4에서는 설명하지 않았다.
"mode" 엔트리(404)는 수행될 동작 형태를 정의한다. BitBLT 동작에 대해서, "mode" 엔트리(404)는 BitBLT 동작이 단순한 복사, 색신호 키잉(chroma keying)을 하는 복사, 또는 알파값 합성(alpha value blending)을 하는 복사인지 여부를 설명하는 지시자를 포함할 수 있다. 색신호 키잉은, 소스 픽셀이 명확하지 않은 경우 소스 픽셀의 투명성을 검사하고 수신 픽셀을 소스 픽셀로 조건적으로 대체시키는 프로세스이다. 알파 합성(alpha blending)은 소스 및 수신지 픽셀 어레이를 판독하고, 가중치가 부과된 "알파"값을 기초로 하여 픽셀 단위로 두개의 픽셀 어레이를 합성하고, (수신지 어레이를 대신하는) 수신지 어드레스에 생성된 어레이를 기록하는 프로세스이다. 알파값 또는 합성 팩터는 합성 프로세스에서와는 다르게 결합된 화상들 중 하나에 할당된 가중치와 관계 있다.
"src_ptr" (405)는 소스 픽셀 맵(407)의 DRAM(308) 내의 위치를 가리키는 소스 포인터이다. "dst_ptr"은 수신지 픽셀 맵(408)의 DRAM(308) 내의 위치를 가리키는 수신지 포인터이다.
호스트가 DRAM(308)의 코맨드 리스트(301)를 업데이트하고자 할 때, 리스트의 적어도 하나의 부분이 재기록되어야 한다. 정확히 하나의 코맨드가 다른 코맨드로 대체되어야 한다면, 호스트는 메모리의 그 부분을 단순히 재기록할 수 있다. 그러나, 하나 이상의 코맨드들이 다른 다수의 코맨드들에 의해서 대체되어야 한다면, 코맨드의 나머지 리스트들이 대체될 코맨드 및 모든 다음 코맨드로부터 재기록될 필요가 있다.
DRAM(308) 내에 기억된 것과 같은, 코맨드 리스트는 링트된 리스트로서 기억될 수 있고, 각각의 기억된 코맨드들은 이들 다음에 오는 다른 코맨드에 대한 포인터를 포함할 수 있다. 이 링크된 리스트 구조는 용이하게 업데이트를 수용할 수 있다. 예를 들어, 도 5는 호스트 CPU(303)에 의해서 프로그램된 이후의 DRAM(308)을 설명한다. 메모리 내에 물리적으로 기억된 코맨드들의 순서는 코맨드 #N+2(503), 코맨드 #N(501), 및 코맨드 #N+1(502)이다. 순차적인 리스트 구조의 경우에서 처럼, 각각의 코맨드는 "mode" (504), "src_ptr" (505), 및 "dst_ptr" (506)을 포함하는 다수의 엔트리를 포함한다. 또한, 다른 엔트리가 존재할 수도 있다. 결국, 링크된 리스트의 코맨드 리스트내의 각각의 코맨드는 엔트리 "next_ptr" (507)을 포함하는데, 이것은 다음 코맨드의 어드레스를 가리킨다. BitBLT 동작의 경우에, "next_ptr" (507)은 다음 BitBLT 코맨드를 가리킨다.
호스트 CPU(303)가 링크된 리스트 코맨드 구조를 변경할 때, 상술된 바와 같은 메모리의 상당한 부분을 재기록할 필요가 없다. 오히려, 새로운 코맨드를 포함할 수 있도록 메모리의 최소 부분만을 변경하고 선행하는 코맨드의 "next_ptr" (507)을 변경하기만 하면 된다. 선택된 코맨드를 삭제하는 경우에, "next_ptr" (507)은 선택된 코맨드를 건너뛰고 선택된 코맨드 다음의 코맨드를 가리킬 수 있도록 변경하면 된다. 이러한 변경들은 대상(object)을 그리는 방법의 순서 변화, 또는 특정한 대상을 추가하거나 삭제하는 것을 포함한다.
도 6은 단일 동작으로 복수의 픽셀 블록들을 이동시키는 일반적인 예를 설명한다. 도 6은 픽셀의 블록(A, B, 및 C)을 도시한다. 이들 블록들을 위치(X, Y, Z)로 각각 이동시키기 위해서, 호스트는 (A를 X로 이동, B를 Y로 이동, C를 Z로 이동하라는) 코맨드를 DRAM(308)에 기록한 후, 코맨드 리스트를 실행하기 시작하라는 코맨드를 ASIC에 하달한다. 코맨드 시퀀스의 1회 반복을 원할 때, BitBLT 코맨드 리스트 내의 마지막 코맨드는 BitBLT 동작이 완료된 호스트를 가리키는 코맨드를 포함한다. 이러한 코맨드는 BitBLT 동작의 완료후 전송된 인에이블링 인터럽트이다. 일단 통보되면, 호스트 CPU(303)가 코맨드 리스트를 변경할 수 있다. 이러한 변경은 언제든지 발생할 수 있다. 그러나, ASIC이 이것을 판독할 때 코맨드 리스트를 변경시켜야 하는 위험성이 있다.
본 발명의 다른 양상은 링크된 리스트내의 코맨드와 다른 파라미터들에 대해서 "mode" 엔트리의 일부 사용을 기대할 수 있다. 도 7은 모드 레지스터의 바람직한 실시예를 도시한다. 이 경우에, ASIC이 모드 코맨드를 판독할 때, 이를 도 7의 레지스터로 로드한다. 그로부터 ASIC은 어떤 그래픽 기능을 ASIC이 수행해야 하는지를 결정한다. 여기서, (두개의 픽셀 값을 합성하는데 사용된 값인) 알파값은 첫번째 8비트를 점유한다. 이 알파값 지정은 다른 레지스터를 통해서 더해질 수도 있으므로, "mode" 엔트리의 필수 구성 요소는 아니다. 레지스터의 마지막 16비트는 실행될 특정 동작의 설명을 포함한다. 이러한 비트의 세팅은 BitBLT 엔진(203)에게 발생될 특정 이벤트(event)를 대기할 것을 알린다. 이러한 특정 이벤트의 발생은 특정 이벤트에 의존할 때처럼 ASIC에 대해서 내부적으로나 외부적으로 결정될 수 있다. 이러한 이벤트들은 각각의 디스플레이 필드의 시작 대기, 필드 디스플레이의 종료 대기, 기수, 우수, 또는 둘 중 하나의 비디오 필드의 비디오 캡처 완료 대기, CRTC 래스터(raster) 비교 이벤트 대기, 오디오 이벤트 대기, 타이머 이벤트 대기, 및 호스트 이벤트 대기를 포함한다. 이 코맨드는, 대기 이벤트들이 모두 충족된 이후에 실행되는 것이 바람직하다. 어느 경우에는, 모든 이벤트들을 충족시킬 필요는 없다. 특히, 호스트 이벤트 대기(waiting-for-host)는 BitBLT 엔진을 재기동시키기 이전에는 모든 다른 이벤트들이 충족될 것을 요구하지 않을 수도 있다. 바람직하게는, 이러한 모드들 모두는 이들 레지스터의 모드 필드 내에 적절한 비트중 한 비트를 설정함으로써 수행된다.
모드 레지스터(mode register)는 호스트 코맨드의 BitBTL 엔진(203)이 동작을 재개할 때까지 링트된-리스트로부터 코맨드의 실행을 정지시키는 일시 정지(suspend) 지시자를 더 포함한다. 이러한 일시 정지 동작을 행하기 위해서, ASIC(200)은 인터럽트를 발생하고 이것을 호스트 CPU(303)로 전송한다. 예를 들어, 디스플레이 메모리를 적절하게 구성하는 다음 동작이 서로 다른 사이즈의 픽셀 맵을 스케일화하는 경우, ASIC(200)이 어떤 동작도 행할 수 없으므로 ASIC(200)은 호스트 CPU(303)가 원하는 기능을 수행할 때까지 이것이 지속되기 전에는 대기해야 한다. 스케일링(scaling)은, 통상적으로 프리셋 스케일링 비가 설정되지 않기 때문에 예와 같이 사용된다. 따라서, 스케일링 동작은 호스트 CPU(303) 내에서 실행하는, 소프트웨어 내에서 바람직하게 조정된다.
ASIC 회로들은 호스트 CPU(303)의 능력을 훨씬 넘어서 지속적으로 증가하는 속도에서 동작할 수 있다. 사용자는 결과로서 얻어진 화상의 품질을 저하시키지 않으면서 ASIC (이 경우, BitBLT 엔진)의 이러한 속도를 이용할 수 있기를 원한다. 따라서, ASIC 회로는 이러한 속도차로부터 발생된 원치않는 왜곡(distortion)을 방지할 수 있도록 조정되어야 한다. 이에 대해서, BitBLT 엔진이 특정 이벤트를 기다릴 것을 요구하는 이러한 모드들은 BitBLT 엔진에 대하여 흐름 제어를 행한다. 링크된 리스트의 이러한 흐름 제어 능력은 하기한 바와 같이, 애니메이션, 립 싱킹(lip syncing)에 도움이 되고, 티어링(tearing) 방지에 도움이 된다.
애니메이션은 디스플레이 여기저기에 연출된 캐릭터를 이동시키는 기술이다. 흐름 제어 없이, 명령어 리스트 상에서 고속으로 동작하는 BitBLT 엔진은, 연출된 캐릭터가 매우 빠르게 이동만 하면, 연출된 캐릭터를 일그러뜨리고, 이 캘릭터의 디스플레이가 끓어져서 나타나게 한다. 연출된 애니메이션의 가속화된 움직임의 원인은 BitBLT가 디스플레이의 리프레시 속도보다 빠른 속도로 행해지기 때문이다. 예를 들어, 생동감있는 캐릭터가 스크린에서 천천히 걷고 있다면, 흐름 제어없이 명령어 리스트를 빠르게 처리하는 BitBLT 엔진은 캐릭터가 위치들 간을 건너뛰게 되는 원인이 된다. 이는 디스플레이의 한 리프레시의 간격으로 캐릭터의 복수의 움직임을 처리하는 BitBLT 엔진에 의해서 야기된다. 따라서, 예를 들어, 디스플레이 필드가 종료될 때까지 대기중인 흐름 제어 모드는 캐릭터가 저장된 메모리를 변경하기 시작하기 전인 캘릭터가 연출될 때까지 BitBLT 엔진이 대기 상태에 있도록 할 수 있다.
흐름 제어가 리스트-관리된 BitBLT 엔진의 동작을 개선하는 다른 영역은 립 싱킹이다. 립 싱킹은 오디오 트랙을 디스플레이 화상과 코디네이팅하는 것이다. 예를 들어, 사람이 말을 할 때, 오디오 트랙을 사람의 입의 화상과 일치시키려고 한다. BitBLT 엔진이 이러한 오디오 및 시각적인 표현들의 코디네이팅 동안 자유롭게 작동될 수 있다면, 시청자는 사람의 입으로부터 나오는 말보다도 훨씬 빠르게 움직이는 사람의 입의 불안정한 움직임을 인식할 수 있다. 이에 대해서, 적절한 동작 모드는 BitBLT 엔진이 오디오 데이터 스트림과 일치하는 적절한 시간까지 대기하도록 요구한다.
흐름 제어가 디스플레이 동작을 개선하는 세번째 영역은 티어링(tearing) 방지를 위한 것이다. 티어링은 메모리가 출력 장치에 의해서 판독되어 동시에 BitBLT 엔진 (또는 다른 기록 장치)에 의해서 기록될 때 발생된다. 도 8은 판독 포인터(RP)와 기록 포인터(WP)를 가진 디스플레이 데이터를 포함한 메모리를 나타낸다. 판독 포인터(RP)는 지정된 위치에서 메모리를 판독하고, 판독된 데이터를 (디스플레이, 디스플레이 버퍼, 비디오 테이프 등) 출력 장치로 출력한다. 기록 포인터는 BitBLT에 의해서 제어되는 것처럼 메모리의 지정된 메모리 위치에 기록한다. 2개의 포인터 각각은 자신의 속도로 디스플레이 메모리를 통해 이동한다. 이것은 도 8에서 속도 A로 메모리를 판독하는 판독 포인터 및 속도 B로 메모리에 기록하는 기록 포인터로서 도시된다. 두개의 포인터의 속도가 동일하다면(A=B), 이 두개의 포인터는 결코 교차되지 않을 것이다. 그러나, 그 속도가 서로 다른 경우에는, 하나의 포인터가 다른 포인터를 추월할 것이다. 기록 포인터가 판독 포인터를 지날 때 메모리에 기억된 제1 화상의 반이 디스플레이될 경우 (제1 화상을 제2 화상으로 겹쳐 쓰기하는 경우), 디스플레이 스크린의 처음 반은 제1 화상을 포함하게 되고, 디스플레이 스크린의 두번째 반은 제2 화상을 포함하게 될 것이다. 이러한 이중 디스플레이(dual display) 결과 화상이 "결함 현상이 일어난 것(torn)"을 나타내는 것이다. 이는 "티어링(tearing)" 효과가 크게 나타나는, 이동 화상에서 쉽게 확인된다.
비디오 캡처에 대한 링크된 리스트의 애플리케이션
그래픽 코맨드 리스트의 다른 애플리케이션은 비디오 캡처에 있다. BitBLT 코맨드의 코맨드 구조와 유사하게, 비디오 캡처 코맨드 구조는 모드 레지스터, 데이터 버퍼 어드레스, 기억 어드레스, 및 다음 코맨드의 포인터를 사용한다. 모드 레지스터에 대해서, 각각의 코맨드는 각각의 프레임(RGB 또는 YUV)에 대한 모드의 형태, 또는 프레임의 크기 또는 캡처된 화상이 얼마나 스케일화 되는지를 나타내는 팩터 (스케일 팩터)를 포함한 다른 제어의 변수들을 나타낸다. 아무것도 지정되지 않는 경우에는, 디폴트 모드 지정이 사용된다. 이 리스트는 비디오 캡처 동작이 시작되기 이전에 기록되는 것이 바람직하지만 각각의 프레임 캡처 이후에 갱신될 수 있다.
도 9는 캡처되는 비디오를 도시한다. DRAM(308)은 ASIC(200)에 의해서 판독된 코맨드 리스트(301)를 포함한다(단계 907). 각각의 코맨드는 DMA 컨트롤러(901)가 수신된 비디오를 배열하는 ASIC(200)를 관리한다. 각각의 코맨드는 수신된 비디오 프레임의 피치, 프레임이 DRAM(308) 내에서 기억될 위치, 및 다음 코맨드를 가리키는 포인터를 포함한다. 예를 들어, 리스트(301)로부터의 제1 코맨드는 DMA 컨트롤러(901)가 [기억 단계 (904a)를 통해서] 메모리 위치 (902a)에 제1 수신된 비디오 프레임을 저장하도록 한다. 리스트(301) 내의 다음 코맨드는 DMA 컨트롤러(901)가 [기억 단계 (904b)를 통해서] 메모리 위치(902b)에 제2 수신된 비디오 프레임을 저장하도록 한다. 리스트(301) 내의 제3 코맨드는 DMA 컨트롤러(901)가 [기억 단계 (904c)를 통해서] 메모리 위치(902c)에 제3 수신된 비디오 프레임을 저장하도록 한다. 코맨드의 리스트는, 모든 지정된 비디오 기억 위치가 기록될 때까지 지속된다. 마지막 코맨드의 포인터는 기록 시퀀스를 다시 시작하기 위해서 제1 코맨드로 돌아간다. 이러한 반복적인 겹쳐쓰기(overwriting) 개념을 사용하여, 비디오 캡처에서 가장 최근 데이터 캡처를 보장한다. 한 실시예에서, 세개의 비디오 프레임이 기억된 세개의 메모리 위치를 사용함으로써, 하나의 스크린의 "티어링" 가능성이 감소된다. 여기서, 하나의 메모리 위치는 제2 위치가 디스플레이부(911) 상에 디스플레이하기 위해서 판독되는 동안에 기록될 수 있으며, 제3 위치는 다른 두개 사이의 타이밍 버퍼로서 동작한다. 또한 제3 버퍼는 BitBLT 엔진(906)에 의해서 동작될 수 있다.
상술한 바와 같이, 메모리 부분(902a, 902b, 및 902c)의 내용들은 즉시 디스플레이될 수 있거나 BitBLT 엔진(906)에 의해서 동작될 수 있다. BitBLT 엔진(906)은 DRAM(308) 내의 코맨드(301)의 서로 다른 리스트에 의해서 제어되는 바와 같이 ASIC(200)의 출력에 응답한다. 이 경우에, DRAM(301) 내에 기억된 BitBLT 코맨드는, 흐름 제어 동작을 행할 수 있다. 비디오 캡처 동작이 실시간으로 발생되는 동안, DMA 컨트롤러(901)는 메모리의 부분들(902a, 902b, 및 902c)을 지속적으로 업데이트해야 한다. BitBLT 엔진(906)은 비디오가 수신되는 [또는 메모리 (308)내에 기록되는] 속도보다 빠르게 동작하기 때문에, BitBLT 엔진(906)은 통상적으로 기록된 메모리의 위치에서 동작하는 것을 방지하기 위해서 흐름 제어를 행해야만 한다. 도 9에 도시된 바와 같이, BitBLT 엔진(906)은 메모리 부분(902a, 902b 및 902c)을 경로(903a, 903b 및 903c)를 통해서 각각 수신한다. 각각의 픽셀 맵들 상에서 블리터(blitter) 동작을 행한 후에, BitBLT 엔진(906)은 기록 경로들(910a, 910b, 및 910c)을 통해서 이들 메모리 부분 각각에 재기록한다.
비디오 디스플레이에 대한 링크된 리스트의 애플리케이션
링크된 리스트의 제3 애플리케이션은 CRTC를 제어하는 링크된 리스트로 비디오 디스플레이 업데이트 동작을 행하는 것이다. CRTC란 개념은 통상 음극선관 컨트롤러(cathode ray tube controller)에 관한 것이다. 여기서, CRTC는 디스플레이를 제어하는 임의의 컨트롤러에 관한 것이다. 비디오 디스플레이(911)를 지속적으로 갱신하기 위해서 CPU 또는 호스트에 의해서 제어되는 바와 같이 단독으로 CRTC(905)를 사용하는 경우의 문제점은, 디스플레이 업데이트가 힘든 작업이라는 것이다. 이에 대해서, CRTC는 각 픽셀 또는 모든 픽셀들을 지속적으로 리어드레싱할 필요가 있다. 그래픽 ASIC의 경우에는, ASIC이 단독으로 명령어가 완료되는 모든 시간을 CTRT에 알려야 한다. 비디오 디스플레이에 대한 명령어의 링크된 리스트의 애플리케이션은 CRTC가 지속적으로 인터럽트를 처리해야 하는 것으로부터 벗어날 수 있도록 한다.
각각의 코맨드는 피치와 높이, 화상 개시 어드레스, 알파 평면 개시 어드레스, 및 다음 코맨드 포인터를 포함한다. 추가 필드로 모드 필드, 알파 합성 값, 및 색신호 키를 포함할 수 있다. 모드 필드는 비디오 디스플레이 모드 (RGB, CLUT, YUV)를 나타낸다. 모든 코맨드에 대해서 합성 값 (또는 가중치)을 지정함으로써, 픽셀 맵의 각각의 디스플레이된 부분이 서로 다른 합성 값을 가질 수 있다. 이는 색신호 키에 대해서도 동일하게 적용된다.
링크된 리스트의 코맨드 구조는 적어도 2가지 형태의 디스플레이 동작들을 지원한다. 첫번재 디스플레이 형태는 분할된(split) 스크린 디스플레이다. 도 10은 2개의 비디오 픽셀 맵(1004 및 1005)과 대응하는 코맨드 리스트(1001, 1002, 및 1003)를 포함하는 ASIC 메모리(1000)를 구비한 분할된 스크린 디스플레이부를 도시한다. 디스플레이부(1007)는 CRT와 같은 디스플레이를 구동하기 위해서 사용된다. 호스트는 메모리 내에 비디오 디스플레이 코맨드(1001 내지 1003)를 기록한다. 코맨드들은 링킹(linking) 포인터(1006)에 의해서 도시된 바와 같이 동시에 링크된다. 그 예로, 픽셀 맵들(1004 및 1005)은 두개의 서로 다른 비디오 소스로부터의 맵들 - 부분(1004A 및 1004B)을 포함하는 제1 맵(1004), 및 제2 맵(1005) - 을 포함한다. 코맨드(1001, 1002, 및 1003)의 리스트는 단일 픽셀 맵을 판독하여 그것을 디스플레이부(1007)로 출력한다. 그러나, 보다 복잡한 배치가 도시된다. 다음의 예는, 제2 픽셀 맵(1005)이 제1 픽셀 맵(1004)의 색션들(1004A 및 1004B) 사이에 삽입되는 방법을 도시한다. 이 경우에, 코맨드의 리스트는 [포인터(1006)에 의해서 도시된 바와 같이] 코맨드(1001)로 되돌아가 링크되는 코맨드(1003)를 포함하여 코맨드(1001, 1002, 및 1003)를 포함한다. 이 예에서, 코맨드(1001)는 메모리(1000)로부터 부분(1004A)을 판독하고 이를 디스플레이부(1007)의 부분(1007a)에 디스플레이한다. 코맨드(1001) 내의 마지막 포인터는 다음 코맨드(1002)를 가리키는데, 이 포인터는 디스플레이부(1007)의 일부분(1007b)에 제2 픽셀 맵(1005)을 디스플레이한다. 코맨드(1002) 내의 마지막 포인터는 코맨드(1003)를 가리키고, 이 포인터는 디스플레이부(1007)의 부분(1007c)에 제1 픽셀 맵(1004)의 나머지 부분(1004B)을 디스플레이한다. 결국, 코맨드(1003)의 마지막 포인터는 다시 코맨드(1001)를 가리킨다.
결합된 예에서, ASIC은 수신된 비디오 신호의 비디오 캡처를 행하고 DRAM(308)의 제1 및 제2 픽셀 맵(1004 및 1005)중 하나 또는 모두에 대한 결과를 저장할 수 있다. 이러한 메모리 부분에서 동작하는 블리터 동작에서, 코맨드(1001)의 모드는 픽셀 맵(1004)과 픽셀 맵(1005)이 모두 재기록될 때까지 BitBLT 엔진이 대기하도록 요구한다. 결국, 완료되었을 때, 비디오 디스플레이 코맨드는 메모리 부분(1004 및 1005) 내에 저장된 것과 같은 픽셀 맵들이 디스플레이부(1007) 상에 디스플레이되도록 할 수 있다. 이 경우에, ASIC 메모리는 서로 다른 위치에 두개의 링크된 리스트 - 비디오 캡처용 리스트와 비디오 디스플레이용 리스트 -를 포함할 수 있다.
또한, BitBLT 엔진은 픽셀 맵(1004 및 1005) 상에서도 BitBLT 동작을 수행할 수 있다. 이에 대해서, ASIC 메모리(1000)는, 각각이 ASIC의 제어하에서 개별적으로 동작하는, 명령어의 3개의 링크된 리스트를 포함한다.
비디오 디스플레이 동작의 제2 형태는 픽셀 맵의 한 부분으로부터 다른 부분으로 패닝(panning)을 수반한다. 도 11은 next_ptr 포인터들을 통해 서로 링크된 비디오 디스플레이 코맨드(1102 내지 1106)를 가진 ASIC 메모리(1101)를 도시한다. 마지막 코맨드(1106)는, 디스플레이가 픽셀 맵을 가로질러서 계속해서 다시 패닝을 하기보다는, 패닝을 멈춘 곳에서 디스플레이를 계속할 수 있도록 다시 코맨드(1106)를 가리킨다. 메모리(1101)는 또한 적어도 하나의 픽셀 맵(1007)을 포함한다. 본 예에서는, 픽셀 맵은 디스플레이부 또는 CRT 모니터(1113)에서 볼 수 있는 것보다 많은 정보를 포함한다. 따라서, 픽셀 맵(1107)의 일부분만이 임의의 주어진 시간에 디스플레이된다. 예를 들어, 코맨드(1102)는 픽셀 맵(1107)의 일부분(1108)을 판독하고 디스플레이 스크린(1113)으로 맵(map)한다. 코맨드(1102)가 자신으로 다시 루프되면, 코맨드(1102) 또는 픽셀 맵 부분(1108)이 재기록될 때까지 부분(1108)이 지속적으로 디스플레이된다.
본 예에서, 코맨드(1102)는 코맨드(1103)를 가리킨다. 코맨드(1103)는 픽셀 맵 부분(1109)을 디스플레이 스크린(1113)으로 맵한다. 이와 유사하게, 코맨드(1104)는 픽셀 맵 부분(1110)을 디스플레이 스크린(1113)으로 맵한다. 이는 픽셀 맵(1107)의 나머지 부분들(1111 및 1112)에 대해서도 계속된다. 이 경우에, 디스플레이 코맨드는 픽셀 맵(1107)의 일부분을 선택적으로 관찰하는 윈도우를 제어한다. 윈도우가 픽셀 맵(1107)의 주변을 이동할 때, 픽셀 맵(1107)의 서로 다른 부분들이 스크린(1113)으로 맵핑된다. 본 예에서는, 윈도우의 상대적인 움직임이 화살표(1115)로 도시된다. 그러나, 윈도우의 움직임이 코맨드에 의해서 제어될 때, 윈도우는 코맨드의 링크된 리스트에 의해서 관리되는 바와 같이, 임의의 방향으로 패닝 또는 스크롤될 수 있다. 결국, 호스트 CPU(303)가 결정할 때, 코맨드의 리스트는 서로 다른 방향으로 스크롤 또는 패닝하도록 재기록되고 픽셀 맵은 새로운 픽셀 맵을 포함하도록 재기록될 수 있다. 다른 방법으로는, 코맨드 리스트와 픽셀 맵 모두가 호스트에 의해서 결정된 바와 같이 재기록될 수 있다.
이러한 스크롤링(scrolling)을 사용할 수 있는 애플리케이션의 한 예는 스크롤링 배경을 필요로하는 게임들이다. 게임 플레이어가 디스플레이 여기저기로 캐릭터를 이동시킬 때, 호스트는 코맨드의 리스트를 연출된 캐릭터의 이동이 후속되도록 다시 기록한다. 이러한 스크롤링 기술은 스플리트 스크린을 디스플레이하는 다른 디스플레이 기능과 더 결합시킬 수 있다. 디스플레이부(1113)의 각 부분들이 픽셀 맵의 서로 다른 장면 (또는 부분)들을 나타내는 경우에, 디스플레이는 움직이는 배경 (스크롤링 기능) 위로 장면의 캐릭터의 개별 움직임 (BitBLT 기능)을 독립적으로 연출할 수 있다.
본 발명의 다양한 변경 및 변화가 가능하며 특정 값의 언급은 단지 예시적일 뿐이다. 예를 들어 ASIC은 본 발명에 따라서 링크된 그래픽 기능들을 행하는데 사용할 수 있지만, 본 발명의 개념은 다른 형태의 장치에 사용하도록 적용될 수 있다. 따라서, 본 발명에 첨부된 특허 청구의 범위의 기술 범위 내에서 상술된 것과 다른 방법으로도 본 발명이 실현될 수 있다는 것이 자명하다.
<관련출원>
본 명세서는 병행 출원된 다음 명세서들 : 일련 번호. _인 가정용 통신 터미날에서의 비디오 화상 합성 (Blending of Video Images in a Home Communications Terminal); 및 일련 번호. _인 컴퓨터 디스플레이 장치에서의 픽셀값과 알파값들의 보간(Interpolation of Pixel Values and Alpha Values in a Computer Display Device)의 관련 출원이다.

Claims (23)

  1. 디스플레이 장치 상에 보이는 그래픽 디스플레이 데이터를 처리하는 방법으로서,
    제1 프로세싱 유닛에서 상기 그래픽 디스플레이 데이터를 처리하는 링크된 코맨드 리스트를 메모리의 제1 부분에 기록하는 단계 - 상기 링크된 코맨드 리스트는 복수의 링크된 그래픽 코맨드를 갖고, 각각의 상기 링크된 그래픽 코맨드는 한 세트의 코맨드 파라미터를 구비함 - 와,
    상기 제1 프로세싱 유닛에서 상기 링크된 코맨드 리스트를 실행할 것을 제2 프로세싱 유닛에게 지시하는 단계와,
    상기 제2 프로세싱 유닛에 의해 상기 링크된 코맨드 리스트의 실행을 개시하는 단계와,
    상기 제1 프로세싱 유닛을 인터럽트하지 않고 상기 제2 프로세싱 유닛에 의해 상기 링크된 그래픽 코맨드를 판독 및 실행하여 상기 그래픽 디스플레이 데이터를 처리하는 단계와,
    상기 링크된 그래픽 코맨드들중 하나의 링크된 그래픽 코맨드의 실행을, 상기 하나의 링크된 그래픽 코맨드 내에서의 모드 파라미터의 판독시, 트리거 이벤트의 발생 때까지 일시 정지하여 상기 링크된 코맨드 리스트의 흐름 제어를 제공하는 단계와,
    상기 흐름 제어를 이용하여 상기 링크된 코맨드 리스트에 따라 처리된 상기 그래픽 디스플레이 데이터를 상기 디스플레이 장치 상에 표시하여 디스플레이 변형을 실질적으로 제거하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    비트 블록 전송 코맨드들 중 하나의 완료를 상기 제1 프로세싱 유닛에 알리기 전에 적어도 2개의 상기 비트 블록 전송 코맨드들을 실행하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    비디오 캡처 코맨드(video capture commends)들 중 하나의 완료를 상기 제1 프로세싱 유닛에 알리기 전에 적어도 2개의 상기 비디오 캡처 코맨드들을 실행하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서,
    비디오 디스플레이 코맨드들 중 하나의 완료를 상기 제1 프로세싱 유닛에 알리기 전에 적어도 2개의 상기 비디오 디스플레이 코맨드를 실행하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 리스트 내의 모든 코맨드들의 완료를 상기 제1 프로세싱 유닛에 통지하는 단계를 더 포함하는 그래픽 디스플레이 동작을 실행하는 방법.
  6. 제1항에 있어서,
    상기 리스트의 마지막 코맨드가 실행되었을 때, 상기 리스트로부터 미리 실행된 코맨드를 재실행하고 상기 리스트에 걸쳐서 계속되는 단계를 더 포함하는 그래픽 디스플레이 동작을 실행하는 방법.
  7. 제1항에 있어서,
    다음 코맨드가 상기 제1 프로세싱 유닛에 의해서 수신될 때까지 상기 리스트의 실행을 일시 정지하는 단계를 더 포함하는 그래픽 디스플레이의 동작을 실행하는 방법.
  8. 제1항에 있어서,
    특정 이벤트(event)가 발생될 때까지 상기 하나의 코맨드의 동작 모드를 기초로 하여 상기 코맨드들 중 하나의 실행을 일시 정지하는 단계를 더 포함하는 방법.
  9. 제1항에 있어서,
    적어도 하나의 픽셀 맵을 포함하는, 상기 메모리의 상기 제1 부분이 아닌 다른 부분을 가리키는 단계를 더 포함하는 방법.
  10. 제9항에 있어서,
    상기 적어도 하나의 픽셀 맵을 변경하는 단계를 더 포함하는 방법.
  11. 디스플레이 장치 상에 보이는 그래픽 디스플레이 데이터를 처리하는 시스템으로서,
    상기 그래픽 디스플레이 데이터를 처리하는 링크된 코맨드 리스트를 저장하는 메모리 - 상기 링크된 코맨드 리스트는 복수의 링크된 그래픽 코맨드를 갖고, 각각의 상기 링크된 그래픽 코맨드는 한 세트의 코맨드 파라미터를 구비함 - 와,
    상기 링크된 코맨드 리스트를 상기 메모리 내에 기록하는 제1 프로세싱 유닛과,
    상기 메모리 및 상기 제1 프로세싱 유닛과 통신하는 제2 프로세싱 유닛
    을 포함하고,
    상기 제2 프로세싱 유닛은, 상기 메모리로부터 상기 링크된 그래픽 코맨드의 각각을 판독하며 상기 제1 프로세싱 유닛을 인터럽트하지 않고 상기 링크된 그래픽 코맨드를 실행하고, 상기 링크된 그래픽 코맨드들중 하나의 링크된 그래픽 코맨드의 실행을, 상기 하나의 링크된 그래픽 코맨드 내에서의 모드 파라미터의 판독시, 트리거 이벤트의 발생 때까지 일시 정지하여 상기 링크된 코맨드 리스트의 흐름 제어를 제공하며,
    이에 따라 상기 링크된 코맨드 리스트에 따라 처리된 상기 그래픽 디스플레이 데이터를 상기 디스플레이 장치 상에 표시할 때 디스플레이 변형이 실질적으로 제거되는 시스템.
  12. 제11항에 있어서,
    상기 제2 프로세싱 유닛은 응용 주문형 반도체(ASIC; application-specific integrated circuit)를 포함하는 시스템.
  13. 제11항에 있어서,
    상기 제2 프로세싱 유닛은 비트 블록 전송 코맨드들 중 하나의 완료를 상기 제1 프로세싱 유닛에 알리기 전에 적어도 두개의 상기 비트 블록 전송 코맨드들을 실행하는 시스템.
  14. 제11항에 있어서,
    상기 제2 프로세싱 유닛은 비디오 캡처 코맨드들 중 하나의 완료를 상기 프로세싱 유닛에 알리기 전에 적어도 2개의 상기 비디오 캡처 코맨드들을 실행하는 시스템.
  15. 제11항에 있어서,
    상기 제2 프로세싱 유닛은 비디오 디스플레이 코맨드들 중 하나의 완료를 상기 제1 프로세싱 유닛에 알리기 전에 적어도 2개의 상기 비디오 디스플레이 코맨드들을 실행하는 시스템.
  16. 제11항에 있어서,
    상기 제2 프로세싱 유닛은 상기 리스트 내의 모든 코맨드들의 완료를 상기 제1 프로세싱 유닛에 통지하는 시스템.
  17. 제11항에 있어서,
    상기 그래픽 코맨드 각각은 상기 제2 프로세싱 유닛의 동작 모드를 관리하는 제1 필드, 픽셀 맵을 포함한 상기 메모리의 다른 위치를 가리키는 제2 필드, 및 상기 메모리 내의 다음 코맨드를 가리키는 제3 필드를 포함하는 시스템.
  18. 제17항에 있어서,
    상기 필드들 중 적어도 하나의 필드의 내용은 이벤트가 발생할 때까지 상기 제2 프로세싱 유닛이 코맨드들의 실행을 일시 정지해야 하는지의 여부를 나타내는 시스템.
  19. 제17항에 있어서,
    상기 제2 프로세싱 유닛은 상기 코맨드들 중 적어도 하나의 코맨드를 따라 상기 픽셀 맵을 변경하는 시스템.
  20. 제17항에 있어서,
    상기 제2 프로세싱 유닛은 상기 코맨드들 중 적어도 하나의 코맨드에 따라 상기 픽셀 맵을 판독하고 상기 픽셀 맵을 출력 장치로 출력하는 시스템.
  21. 제11항에 있어서,
    상기 코맨드들 중 하나의 코맨드는 소스 픽셀의 투명성(transparency)을 검사하고 상기 소스 픽셀이 투명성이 없다면 조건적으로 수신지 픽셀을 변경하는 시스템.
  22. 제11항에 있어서,
    상기 코맨드들 중 하나의 코맨드는 합성 팩터(blending factor)에 따라서 픽셀 단위로 2개의 픽셀 어레이들을 합성하고 얻어진 픽셀 어레이를 수신지 어드레스에 기록하는 시스템.
  23. 제11항에 있어서,
    상기 코맨드의 리스트가 실행될 때 상기 코맨드의 리스트는 픽셀 맵의 연속된 부분들을 디스플레이부 상에 매핑시켜, 패닝(panning) 효과를 일으키는 시스템.
KR10-1998-0707003A 1996-03-07 1997-03-05 리스트제어비디오동작방법및시스템 KR100482708B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US612,104 1996-03-07
US08/612,104 US5903281A (en) 1996-03-07 1996-03-07 List controlled video operations

Publications (2)

Publication Number Publication Date
KR19990087565A KR19990087565A (ko) 1999-12-27
KR100482708B1 true KR100482708B1 (ko) 2005-09-09

Family

ID=24451735

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0707003A KR100482708B1 (ko) 1996-03-07 1997-03-05 리스트제어비디오동작방법및시스템

Country Status (6)

Country Link
US (1) US5903281A (ko)
EP (1) EP0885529B1 (ko)
KR (1) KR100482708B1 (ko)
AU (1) AU2073697A (ko)
DE (1) DE69702245T2 (ko)
WO (1) WO1997033438A1 (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4240543B2 (ja) * 1997-05-28 2009-03-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 表示装置
US6141020A (en) * 1997-11-12 2000-10-31 S3 Incorporated Opposing directional fill calculators in a graphics processor
US6768774B1 (en) * 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
US6798420B1 (en) 1998-11-09 2004-09-28 Broadcom Corporation Video and graphics system with a single-port RAM
US6573905B1 (en) * 1999-11-09 2003-06-03 Broadcom Corporation Video and graphics system with parallel processing of graphics windows
US6636222B1 (en) 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
US7982740B2 (en) 1998-11-09 2011-07-19 Broadcom Corporation Low resolution graphics mode support using window descriptors
US6853385B1 (en) * 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
US6700588B1 (en) * 1998-11-09 2004-03-02 Broadcom Corporation Apparatus and method for blending graphics and video surfaces
US6661422B1 (en) 1998-11-09 2003-12-09 Broadcom Corporation Video and graphics system with MPEG specific data transfer commands
US6697885B1 (en) * 1999-05-22 2004-02-24 Anthony E. B. Goodfellow Automated DMA engine for ATA control
US6975324B1 (en) * 1999-11-09 2005-12-13 Broadcom Corporation Video and graphics system with a video transport processor
US9668011B2 (en) 2001-02-05 2017-05-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Single chip set-top box system
US6760772B2 (en) 2000-12-15 2004-07-06 Qualcomm, Inc. Generating and implementing a communication protocol and interface for high data rate signal transfer
US7092035B1 (en) * 2001-07-09 2006-08-15 Lsi Logic Corporation Block move engine with scaling and/or filtering for video or graphics
US6851011B2 (en) * 2001-08-09 2005-02-01 Stmicroelectronics, Inc. Reordering hardware for mass storage command queue
US8812706B1 (en) 2001-09-06 2014-08-19 Qualcomm Incorporated Method and apparatus for compensating for mismatched delays in signals of a mobile display interface (MDDI) system
US6995770B2 (en) * 2002-08-22 2006-02-07 International Business Machines Corporation Command list controller for controlling hardware based on an instruction received from a central processing unit
KR101168839B1 (ko) 2003-06-02 2012-07-26 퀄컴 인코포레이티드 고속 데이터 레이트를 위한 신호 프로토콜 및 인터페이스의 생성 및 구현
US6952217B1 (en) * 2003-07-24 2005-10-04 Nvidia Corporation Graphics processing unit self-programming
EP2363992A1 (en) * 2003-08-13 2011-09-07 Qualcomm Incorporated A signal interface for higher data rates
KR100951158B1 (ko) 2003-09-10 2010-04-06 콸콤 인코포레이티드 고속 데이터 인터페이스
JP2005092742A (ja) * 2003-09-19 2005-04-07 Toshiba Corp ビデオ出力コントローラ及びビデオカード
WO2005039148A1 (en) 2003-10-15 2005-04-28 Qualcomm Incorporated High data rate interface
US8063916B2 (en) 2003-10-22 2011-11-22 Broadcom Corporation Graphics layer reduction for video composition
CN101827074B (zh) 2003-10-29 2013-07-31 高通股份有限公司 高数据速率接口
EP2242231A1 (en) 2003-11-12 2010-10-20 Qualcomm Incorporated High data rate interface with improved link control
BRPI0416895A (pt) 2003-11-25 2007-03-06 Qualcomm Inc interface de alta taxa de dados com sincronização de link melhorada
EP1698146A1 (en) 2003-12-08 2006-09-06 QUALCOMM Incorporated High data rate interface with improved link synchronization
US7530074B1 (en) * 2004-02-27 2009-05-05 Rockwell Collins, Inc. Joint tactical radio system (JTRS) software computer architecture (SCA) co-processor
MXPA06010312A (es) 2004-03-10 2007-01-19 Qualcomm Inc Aparato y metodo de interfaz de velocidad de datos elevada.
AU2005223960B2 (en) 2004-03-17 2009-04-09 Qualcomm Incorporated High data rate interface apparatus and method
EP1735988A1 (en) 2004-03-24 2006-12-27 Qualcomm, Incorporated High data rate interface apparatus and method
US8650304B2 (en) 2004-06-04 2014-02-11 Qualcomm Incorporated Determining a pre skew and post skew calibration data rate in a mobile display digital interface (MDDI) communication system
ATE511282T1 (de) 2004-06-04 2011-06-15 Qualcomm Inc Schnittstellenvorrichtung und -verfahren für hohe datenraten
US8667363B2 (en) * 2004-11-24 2014-03-04 Qualcomm Incorporated Systems and methods for implementing cyclic redundancy checks
US8723705B2 (en) 2004-11-24 2014-05-13 Qualcomm Incorporated Low output skew double data rate serial encoder
US20060161691A1 (en) * 2004-11-24 2006-07-20 Behnam Katibian Methods and systems for synchronous execution of commands across a communication link
US8539119B2 (en) 2004-11-24 2013-09-17 Qualcomm Incorporated Methods and apparatus for exchanging messages having a digital data interface device message format
US8873584B2 (en) 2004-11-24 2014-10-28 Qualcomm Incorporated Digital data interface device
US8699330B2 (en) 2004-11-24 2014-04-15 Qualcomm Incorporated Systems and methods for digital data transmission rate control
US8692838B2 (en) * 2004-11-24 2014-04-08 Qualcomm Incorporated Methods and systems for updating a buffer
US8730069B2 (en) 2005-11-23 2014-05-20 Qualcomm Incorporated Double data rate serial encoder
US8692839B2 (en) 2005-11-23 2014-04-08 Qualcomm Incorporated Methods and systems for updating a buffer
US8031197B1 (en) * 2006-02-03 2011-10-04 Nvidia Corporation Preprocessor for formatting video into graphics processing unit (“GPU”)-formatted data for transit directly to a graphics memory
WO2010027442A1 (en) * 2008-08-26 2010-03-11 Becton, Dickinson And Company Assay for chlamydia trachomatis by amplification and detection of chlamydia trachomatis cytotoxin gene
US9135213B2 (en) * 2011-01-13 2015-09-15 Xilinx, Inc. Extending a processor system within an integrated circuit and offloading processes to process-specific circuits

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5448301A (en) * 1994-05-25 1995-09-05 The Grass Valley Group, Inc. Programmable video transformation rendering method and apparatus

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4797852A (en) * 1986-02-03 1989-01-10 Intel Corporation Block shifter for graphics processor
US5504917A (en) * 1986-04-14 1996-04-02 National Instruments Corporation Method and apparatus for providing picture generation and control features in a graphical data flow environment
US4823286A (en) * 1987-02-12 1989-04-18 International Business Machines Corporation Pixel data path for high performance raster displays with all-point-addressable frame buffers
JPS63226764A (ja) * 1987-03-17 1988-09-21 Fanuc Ltd 高速浮動小数点演算システム
US5185599A (en) * 1987-10-26 1993-02-09 Tektronix, Inc. Local display bus architecture and communications method for Raster display
US5265201A (en) * 1989-11-01 1993-11-23 Audio Precision, Inc. Master-slave processor human interface system
US5227863A (en) * 1989-11-14 1993-07-13 Intelligent Resources Integrated Systems, Inc. Programmable digital video processing system
US5167016A (en) * 1989-12-29 1992-11-24 Xerox Corporation Changing characters in an image
US5367680A (en) * 1990-02-13 1994-11-22 International Business Machines Corporation Rendering context manager for display adapters supporting multiple domains
US5265203A (en) * 1990-09-14 1993-11-23 Hughes Aircraft Company Hardware multiprocess scheduler in a graphics rendering processor
JP3164832B2 (ja) * 1991-03-22 2001-05-14 株式会社日立製作所 描画制御装置
US5321806A (en) * 1991-08-21 1994-06-14 Digital Equipment Corporation Method and apparatus for transmitting graphics command in a computer graphics system
EP0545581B1 (en) * 1991-12-06 1999-04-21 National Semiconductor Corporation Integrated data processing system including CPU core and parallel, independently operating DSP module
US5581766A (en) * 1993-05-17 1996-12-03 Compaq Computer Corporation Selectable video driver system
JP2561810B2 (ja) * 1994-01-03 1996-12-11 インターナショナル・ビジネス・マシーンズ・コーポレイション ビット境界ブロック転送中のハードウェア支援式画素再フォーマット
JP2552096B2 (ja) * 1994-08-04 1996-11-06 株式会社エヌイーシー情報システムズ 表示制御装置およびその方法
US5745761A (en) * 1994-12-15 1998-04-28 International Business Machines Corporation Advanced graphics driver architecture with extension capability
US5649173A (en) * 1995-03-06 1997-07-15 Seiko Epson Corporation Hardware architecture for image generation and manipulation
US5812150A (en) * 1995-04-28 1998-09-22 Ati Technologies Inc. Device synchronization on a graphics accelerator
US5798762A (en) * 1995-05-10 1998-08-25 Cagent Technologies, Inc. Controlling a real-time rendering engine using a list-based control mechanism
US5592622A (en) * 1995-05-10 1997-01-07 3Com Corporation Network intermediate system with message passing architecture
US5678036A (en) * 1995-05-31 1997-10-14 Silicon Integrated Systems Corp. Graphics system and method for minimizing idle time of a controller of the graphics system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5448301A (en) * 1994-05-25 1995-09-05 The Grass Valley Group, Inc. Programmable video transformation rendering method and apparatus

Also Published As

Publication number Publication date
EP0885529A4 (ko) 1998-12-23
DE69702245D1 (de) 2000-07-13
KR19990087565A (ko) 1999-12-27
EP0885529A1 (en) 1998-12-23
AU2073697A (en) 1997-09-22
EP0885529B1 (en) 2000-06-07
US5903281A (en) 1999-05-11
DE69702245T2 (de) 2000-12-21
WO1997033438A1 (en) 1997-09-12

Similar Documents

Publication Publication Date Title
KR100482708B1 (ko) 리스트제어비디오동작방법및시스템
US6567091B2 (en) Video controller system with object display lists
US6067098A (en) Video/graphics controller which performs pointer-based display list video refresh operation
US20020135585A1 (en) Video controller system with screen caching
US6208354B1 (en) Method and apparatus for displaying multiple graphics images in a mixed video graphics display
JP2512250B2 (ja) 動画表示ワ―クステ―ション
US5838334A (en) Memory and graphics controller which performs pointer-based display list video refresh operations
US5596693A (en) Method for controlling a spryte rendering processor
US6091429A (en) Video/graphics memory system
KR20070091356A (ko) 프로그램 가능한 하드웨어를 사용하는 실시간 디스플레이후처리
US6952217B1 (en) Graphics processing unit self-programming
US6172686B1 (en) Graphic processor and method for displaying a plurality of figures in motion with three dimensional overlay
JPH06124189A (ja) 画像表示装置および画像表示制御方法
JP3078958B2 (ja) 三次元グラフィック表示装置
JPH07311568A (ja) 画像出力方法および装置
JPH0764530A (ja) 画像表示装置の制御方式
JP3009802B2 (ja) ビデオ動画ワークステーション
WO2000077625A1 (en) Data-processing arrangement comprising a plurality of processing and memory circuits
GB2291320A (en) Video/graphics memory system
JP3264941B2 (ja) 画像表示制御方法及び装置
JPS61212889A (ja) 表示装置
JPH06110648A (ja) マルチメディア情報処理装置
KR19980035727A (ko) 스프라이트 애니메이션 생성방법
JPH04248590A (ja) データ転送装置
JPH0664450B2 (ja) 表示制御装置

Legal Events

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

Payment date: 20130322

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140324

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160323

Year of fee payment: 12

EXPY Expiration of term