KR20000070092A - 화소 룩업 테이블로서 보간 라인 버퍼를 사용하는 방법 및 장치 - Google Patents

화소 룩업 테이블로서 보간 라인 버퍼를 사용하는 방법 및 장치 Download PDF

Info

Publication number
KR20000070092A
KR20000070092A KR1019997006313A KR19997006313A KR20000070092A KR 20000070092 A KR20000070092 A KR 20000070092A KR 1019997006313 A KR1019997006313 A KR 1019997006313A KR 19997006313 A KR19997006313 A KR 19997006313A KR 20000070092 A KR20000070092 A KR 20000070092A
Authority
KR
South Korea
Prior art keywords
memory
pixel
line buffer
buffer memory
data
Prior art date
Application number
KR1019997006313A
Other languages
English (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
Application filed by 요트.게.아. 롤페즈, 코닌클리케 필립스 일렉트로닉스 엔.브이. filed Critical 요트.게.아. 롤페즈
Publication of KR20000070092A publication Critical patent/KR20000070092A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/20Circuitry for controlling amplitude response
    • H04N5/205Circuitry for controlling amplitude response for correcting amplitude versus frequency characteristic
    • H04N5/208Circuitry for controlling amplitude response for correcting amplitude versus frequency characteristic for compensating for attenuation of high frequency components, e.g. crispening, aperture distortion correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4007Interpolation-based scaling, e.g. bilinear interpolation

Abstract

비디오 그래픽스 처리 시스템은 입력 이미지를 업스케일해야 할 때 입력 이미지를 수직으로 보간하기 위해서 한 라인의 화소 데이터를 저장하는 라인 버퍼를 사용한다. 라인 버퍼는 수직 보간처리에서 사용되지 않을 때는 룩업 테이블(LUT)로서 사용된다. LUT로서 사용될 때, 라인 버퍼는 디스플레이 장치에 디스플레이하는데 사용할 수 있는 부가적인 색 값들을 저장한다. 이러한 식으로, 라인 버퍼는 제1 모드에서 전형적인 라인 버퍼로서 사용되며 제2 모드에서는 디스플레이 장치에 디스플레이하는데 사용할 수 있는 색 옵션을 늘리기 위한 LUT로서 이용된다.

Description

화소 룩업 테이블로서 보간 라인 버퍼를 사용하는 방법 및 장치{Method and apparatus for using interpolation line buffers as pixel look up tables}
디스플레이 장치는 전형적인 컴퓨터 비디오 그래픽스 시스템에서 비디오 데이터를 디스플레이하기 위해서 사용된다. 디스플레이 장치는 통상 음극선관(CRT)또는 평판 액정 디스플레이(LCD) 모니터이다. 디스플레이 장치에 보여지는 이미지는 보통 비디오 그래픽스 제어기(VGC)에 의해 발생되며 디스플레이 리프레시로 알려진 처리를 통해서, 통상 VGC에 의해서 초당 약 75번 다시 그려진다.
도 1은 디스플레이 장치(16)를 구동하기 위해서 개인용 컴퓨터(PC)에서 사용되는 비디오 그래픽스 시스템의 블록도이다. 디스플레이 장치(16)에 디스플레이되는 비디오 이미지는 수천개의 개개의 화소로 구성된다. 각각의 화소는 디스플레이 장치(16)의 모든 화소를 구성하는 적색, 녹색 및 청색 인(phospors)(또는 LCD 요소)에 대응하는 적색, 녹색 및 청색 요소로 구성된다. 각각의 화소는 디지털 값으로서 저장된 적색, 녹색 및 청색 명암도(intensity)를 갖는다. 디지털 데이터는 통상 동적 랜덤 액세스 메모리(DRAM)인 프레임 버퍼 메모리(12) 내에 선형 비트맵으로서 저장된다. 비디오 그래픽스 제어기(VGC)(10)는 프레임 버퍼 메모리(12) 내의 데이터를 처리함으로써 비디오 이미지를 발생하며, 디스플레이 제어기(20)는 디스플레이 리프레시를 수행한다.
디지털 데이터는 디지털 아날로그 변환기(DAC)(14)에 의해 아날로그 전압레벨로 변환되어 디스플레이 장치(16)에 전송된다. 디스플레이 장치(16)는 이 아날로그 레벨을 사용하여 3개의 전자총을 동시에 동작시킴으로써 화소가 그려진다. 여러 가지 적색, 녹색 및 청색 명암도는 디스플레이 장치(16)에서 볼 수 있는 색을 나타낸다.
대부분의 시스템에서는 적색, 녹색 및 청색 각각의 표현하기 위해서 8비트를 사용한다. 따라서, 각각의 화소는 프레임 버퍼 메모리(12) 내에 24비트의 정보를 필요로 한다. 수평으로 1024개의 화소와 수직으로 768개의 화소를 갖는 전형적인 크기의 PC 스크린에 있어서, 화소당 24비트(bpp)라고 할 때, 이미지를 저장하는데 필요한 메모리양은 1024 x 768 x 24비트(총 2.25M 바이트)이다. 더 큰 스크린 크기는 그에 대응하여 더 큰 양의 프레임 버퍼 메모리(12)를 사용한다. 마찬가지로, bpp수를 증가시킨 시스템은 더 많은 프레임 버퍼 메모리(12)를 필요로 한다.
프레임 버퍼 메모리(12)에 저장된 비트수를 감소시키는 공지된 한 방법은 룩업 테이블(LUG)(18)을 이용하는 것으로서, 통상 정적 랜덤 액세스 메모리(SRAM)로 구현되며 VGC(10)에 포함되어 있다. 근본적으로, LUT(18)에 의해서 프레임 버퍼(12)에 저장된 8비트는 LUT(18)에 저장된 256개의 24비트값을 어드레스하는 색인으로서 사용될 수 있으며, 각각의 24비트 값은 최대 24bpp 색을 나타낸다. VGC(10)는 프레임 버퍼 메모리(12) 내의 8bpp 형식으로 저장된 데이터를 LUT(18)의 입력으로서 사용하여 각각의 8비트 입력을 24비트 색에 매핑한다.
따라서, 단지 256(28)개의 가능한 색만이 8bpp 모드에서 사용될지라도, 24bpp 색으로서 256개의 색을 볼 수 있다. 이러한 식으로, 바다풍경 이미지는 디스플레이 장치(16)에 디스플레이되는 256개의 서로다른, 전체 24bpp 청색 농담을 가질 수 있으며, 24bpp 형식으로 저장된 이미지와 거의 분간할 수 없는 것으로 나타난다. LUT(18)를 사용하는 한가지 잇점은 모니터 상의 각각의 화소에 대해서, 단지 8비트만이 프레임 버퍼 메모리(12)에 저장될 필요가 있다는 것이다. 따라서, 프레임 버퍼 메모리(12)에 저장된 정보양은 3배만큼 감소되며 프레임 버퍼 메모리(12)로부터 흘러 나가는 데이터양은 3배만큼 감소된다.
공간 및 비용제약에 기인하여, 대부분의 VGC는 비디오 출력 이미지를 발생함에 있어 단일의 8 x 256 LUT를 포함한다. 단일의 8 x 256 LUT를 사용함에 있어 결점은 서로다른 색 색인을 필요로 하는 복수의 이미지가 동일한 이미지 내에 포함될 때 결과적인 출력 이미지가 부정확하고 바람직하지 못한 결과를 나타낼 수 있다는 것이다. 예를 들면, LUT(18) 내의 대부분의 256 색이 청색의 농담에만 사용된 것으로 가정한다. 이것은 대부분의 이미지 데이터가 물속의 바다풍경을 나타낼 때 정확한 화질을 만들어낸다. 그러나, 황색 및 적색의 해저생물과 같은 비디오 이미지가 이 바다풍경의 탑(top)에 오버레이된다고 할 때, 대부분의 LUT(18)는 청색농담으로만 사용되고 있기 때문에, 해저생물은 덜 정확한 색으로 디스플레이될 것이다.
부가적인 LUT(18)는 출력 이미지의 정확성을 개선할 수도 있다. 그러나, 복수의 LUT를 사용함에 있어 결점은 VGC(10)의 비용이 크게 증가된다는 것이다. 이러한 방식에 있어 또 다른 결점은 공간제약으로 종종 제2 LUT가 VGC(10)에 포함되지 못한다는 것이다.
본 발명은 비디오 그래픽스에 관한 것으로, 특히 화소 룩업 테이블에 관한 것이다.
도 1은 비디오 그래픽스 제어기를 사용한 컴퓨터 시스템의 블록도이다.
도 2는 라인 버퍼를 이용한 비디오 그래픽스 제어기의 블록도이다.
도 3은 본 발명의 실시예에 따른 비디오 그래픽스 제어 시스템의 블록도이다.
도 4는 본 발명의 실시예를 예시한 흐름도이다.
비디오 그래픽스 제어기의 하드웨어 요건을 증가시킴이 없이 정확한 출력 이미지 데이터를 나타내는 비디오 그래픽스 시스템에 대한 필요성이 존재한다. 또한 광범한 여러 가지의 이용할 수 있는 색 정보를 포함하는 정확한 출력 이미지 데이터를 나타내는 비디오 그래픽스 시스템에 대한 필요성이 있다.
이들 및 다른 필요성은 본 발명에 의해 충족되며, 본 발명에서는 수직 스케일링과 입력 색 데이터를 출력 색값에 색 매핑함에 있어 보간 라인 버퍼를 사용한다.
본 발명의 한 특징에 따라서, 이미지 데이터를 처리하는 시스템은, 제1 제어신호 및 제2 제어신호를 출력하도록 구성된 선택장치를 포함한다. 시스템은 또한 선택장치에 결합된 제1 메모리를 포함하며 이 제1 메모리는 제1 제어신호에 기초하여 화소 데이터를 저장하며 제2 제어신호에 기초하여 색 데이터를 저장하도록 구성된다. 시스템은 제1 메모리에 결합되고 상기 저장된 화소 데이터를 보간하여 보간된 화소 데이터를 출력하도록 구성된 스케일링 장치를 더 포함한다. 더욱이, 시스템은 제1 메모리에 결합되고 입력 화소값을 수신하여 저장된 색 값을 출력하도록 구성된 디스플레이 제어기를 포함한다. 이 구성으로 시스템은 제1 메모리를 화소 데이터의 수직 보간을 위한 라인 버퍼로서 그리고 입력 화소 데이터를 출력 색 값에 맵핑하는 LUT로서 사용할 수 있다.
본 발명의 또 다른 특징은 복수의 모드에서 동작하도록 구성된 이미지 데이터 처리 시스템에서 이미지 데이터를 처리하는 방법을 제공한다. 본 방법은 제1 동작모드에서 제1 메모리에 수평라인의 화소를 나타내는 화소 데이터를 기입하는 단계를 포함한다. 본 방법은 또한 화소 데이터를 보간하도록 구성된 스케일링 장치에 제1 메모리로부터의 화소 데이터를 전송하는 단계를 포함한다. 본 방법은 제1 동작모드에서 제1 메모리에 색 데이터를 기입하는 단계를 더 포함함으로써 화소 데이터의 수직 보간을 위한 라인버퍼로서 그리고 입력 화소 데이터를 출력 색 데이터에 맵핑하기 위한 LUT로서 제1 메모리의 이중 사용을 제공한다.
본 발명의 다른 목적 및 잇점은 다음의 상세한 설명으로부터 이 분야에 숙련된 자들에게 쉽게 명백하게 될 것이다. 도시 및 기술된 실시예는 본 발명을 수행하도록 한 최상의 모드의 실례를 제공한다. 본 발명은 모두 본 발명에서 벗어남이 없이, 여러 가지 자명한 점들을 수정할 수 있다. 따라서, 도면은 사실상 예시적인 것이며 제한적인 것이 아니다.
개시된 실시예는 입력 이미지를 "업스케일링"하기 위해서 수평 라인의 화소 데이터를 저장하는 비디오 그래픽스 제어기의 라인 버퍼를 사용한다. 본 발명은 또한 출력 이미지의 색 정확성을 향상시키기 위해서 룩업 테이블(LUT)로서 라인 버퍼를 사용한다. 입력 이미지를 수직으로 업스케일링하기 위해 사용되는 라인 버퍼에 대해 먼저 설명하고, 이어서 화소 LUT로서 라인 버퍼를 사용하며 뿐만 아니라 입력 이미지를 수직으로 업스케일링하는 방법 및 장치에 대해 설명한다.
라인 버퍼
전술한 바와 같이, 전형적인 컴퓨터 디스플레이 장치에 정확한 비디오 이미지를 디스플레이하는 것은 더욱 더 일반적인 것이 되고 있으며, 정확한 비디오 이미지를 디스플레이하는 것에 관련된 복잡성을 더욱 증가시키고 있다. 실시간 비디오 데이터는 TV 튜너, 디지털 캠코더, 혹은 임의의 다른 비디오 입력원으로부터 올 수 있다. 도 1에서, VGC(10)은 비디오 데이터를 디스플레이하는 것에 관련된 처리를 수행하기 때문에, 비디오 데이터는 보통 VGC(10)에 직접 입력된다.
입력되는 비디오 스트림을 실시간으로 디스플레이하기 위해서, 데이터는 프레임 버퍼(12)에 연속적으로 기입될 수 있을 것이며 디스플레이 제어기(20)는 디스플레이 리프레시를 수행할 수 있을 것이다. 이것은 프레임 버퍼 메모리(12)에 기입된 후에 하나의 스크린 리프레시보다 늦지 않게 비디오가 스크린에 디스플레이되게 할 것이다. 그러나, 이러한 방식에서 문제는 입력되는 비디오 스트림은 종종 디스플레이 장치(16)와 동일한 디스플레이 리프레시 속도를 갖지 않는다는 것이다. 비디오 입력원은 종종 초당 대략 24-30 프레임의 리프레시 속도를 가지는 반면, 디스플레이 장치의 리프레시 속도는 대략 초당 75 프레임이다. 프레임 버퍼(12)에 연속적으로 기입하고 전형적인 리프레시를 수행하는 것에 의해, 디스플레이된 비디오 이미지는 한 프레임의 반과 그 다음 프레임의 반을 포함하게 될 것이며, 티어링(tearing) 효과가 야기된다.
비디오 데이터를 실시간으로 디스플레이하는 대안 방식은 입력된 비디오를 오프-스크린 메모리로서 알려진 프레임 버퍼 메모리(12)의 사용되지 않은 부분에 저장하는 것이다. 이어서 오프-스크린 메모리 내의 데이터는 티어링 및 다른 역(adverse) 시각적 효과를 최소화하게 하면서 디스플레이 리프레시를 수행하는데 사용되는 프레임 버퍼 메모리(12)의 부분으로 옮겨진다.
그러나, 프레임 버퍼 메모리(12) 내에 이용할 수 있는 무한한 양의 오프 스크린 메모리가 없기 때문에, 저장되는 정보량을 감소시키는 것이 이점이 있다. 더욱이, 소스 비디오 이미지의 분해능(통상 320 x 200 화소 또는 720 x 480 화소)은 보통 컴퓨터 스크린의 분해능(1024 x 768 화소 또는 1280 x 1024 화소)보다 작다. 그러므로, 디스플레이 장치(16)의 전체 이용가능한 표면을 사용하여 비디오 이미지를 보고자 한다면, 디스플레이 장치(16)의 분해능을 감소하거나 비디오 이미지의 분해능을 증가시켜야 한다.
일반적으로 이러한 문제에 대한 유일한 실제적인 해결책은 스크린 크기에 맞도록 비디오 이미지를 증가시키는 것이다. 이것은 VGC(10)가 오프-스크린 프레임 버퍼 메모리(12) 내에 저장된 작은 이미지를 취하여 이를 업스케일하고(원하는 비율로 분해능을 증가시킴) 이미지를 다시 프레임 버퍼 메모리(12)에 기입하는 "프론트 엔드(front end)" 처리를 사용하여 행해질 수 있다. 제2 방법은 이미지가 디스플레이되고 있을 때 디스플레이 제어기(20)가 이미지를 진행중에(on the fly) 업스케일하는 "백 엔드(back-end)" 처리 방식을 사용한다. 이 방식은 프레임 버퍼 메모리(12)를 액세스할 필요성을 감소시키는 잇점이 있으며, 동작을 위해 별도의 메모리를 사용하지 않는다.
이러한 식으로, 디스플레이 제어기(20)는 비디오 소스 이미지가 전체 디스플레이 장치(16)에 맞도록 필요한 배율만큼 비디오 소스 이미지를 업스케일한다. 전형적인 300 x 200 화소의 비디오 입력 이미지는 전 디스플레이 장치(16)에 보여지는데 필요한 모든 화소를 갖고 있지 않기 때문에, VGC(10)는 별도의 화소를 발생한다. 이들 필요한 화소를 발생하는 한가지 방식은 단순히 스크린의 여분의 부분을 채울 화소를 복제하는 것이다. 이 방식은 저렴하지만 결과는 농담이 고르지 못하여 일반적으로 허용할 수 없는 이미지가 된다.
또 다른 방식은 섞은(blended) 화소로 중간 화소를 채우는 것이다. 예를 들어, 소스 이미지의 라인 #0의 화소 #0와 소스 이미지의 라인 #1의 화소 #0을 고찰한다. 목적지 혹은 디스플레이 장치(16)의 이미지는 소스 이미지로부터 빠진 정보를 채우기 위해서 여러번 이들 화소를 다시 사용할 것이다. 목적지의 화소는 2개의 화소의 부분적인 조합을 취하고 결과를 함께 더함으로써 형성될 수 있으며 이는 화소를 보간하는 것으로 알려져 있다. 따라서, 목적지 화소는 라인 #0으로부터 화소도 아니고 라인 #1로부터의 화소도 아니며 2개의 화소의 어떤 조합(예를 들면, 각각 30% 및 70%)이다. 보간 결과는 훨씬 더 자연스럽고 매끄럽게 업스케일된 이미지로 된다.
스케일링하는데 사용된 보간은 수평 및 수직으로 발생한다. 그러므로, 모니터에 디스플레이된 모든 목적지 화소는 4개의 소스 화소로 구성된다. 디스플레이 제어기(20)는 한번에 단일의 수평 라인의 화소 데이터에 작용한다. 그러므로, 수평보간을 수행하는데 필요한 이전의 수평 화소를 액세스할 수 있는 것은 어렵지 않다. 그러나, 수직 보간에 대해서, 디스플레이 제어기(20)는 2개의 상이한 수평라인으로부터 화소들을 동시에 섞을 필요가 있다. 이것은 디스플레이 제어기(20)가 한번에 단일 수평라인의 화소 데이터에 동작하므로 문제가 된다. 이 문제를 덜기 위해서, 메모리 장치는 디스플레이 제어기(20)가 프레임 버퍼 메모리(12)로부터 이전 라인들의 화소 데이터를 다시 가져올 필요가 없도록 하기 위해서 VGC(10)에 이전의 수평라인의 화소 데이터를 저장한다. 메모리 장치는 통상 SRAM으로 구현되며 라인 버퍼로서 알려져 있다.
도 2는 라인 버퍼(40)를 포함하는 VGC(10)의 블록도이다. 백 엔드 비디오 스케일링을 수행하는 현재의 VGC는 적어도 하나의 라인 버퍼(40)를 이용하여 프레임 버퍼 메모리(12)에의 액세스를 최소화한다. 도 2에서, 수직 스케일러 제어기(50)는 입력된 비디오의 수직 스케일링을 수행한다.
라인 버퍼(40)는 프레임 버퍼 메모리(12)를 통해서, 비디오 입력 소스로부터 비디오 입력 데이터를 수신한다. 디스플레이 제어기(20)는 프레임 버퍼 메모리(12)로부터 새로운 라인을 가져올 때, 소스 비디오 이미지를 통해 라인씩 나아가며 최종으로 가져온 수평 라인을 라인 버퍼(40)에 연속적으로 저장한다. 이것은 프레임 버퍼 메모리(12)로부터 데이터를 가져오고 다시 가져오는 것에 관련된 처리시간을 절약한다.
수직 스케일러 제어기(50)는 현재 라인의 화소 데이터를 라인 버퍼(40)에 언제 기입해야 하는지를 알고 있고 적당한 시간에 기입 어드레스 스트로브 신호를 라인 버퍼(40)에 보내는 로직을 포함한다. 라인 버퍼(40)는 이중 포트로 되어 있어 현재의 라인은 이전 라인이 읽혀질 수 있을 때 동시에 기입될 수 있다.
수직 스케일러 제어기(50)는 이전 라인의 화소 데이터를 사용하여 현재 라인의 화소 데이터를 수직으로 보간하며, 즉 출력 화소에 사용되는 각각의 화소의 비율을 결정하여 보간된 화소를 출력한다. 보간된 수직 화소는 수평으로 스케일된 화소와 결합된 후 LUT(18)를 통해 24bpp 색에 맵핑된다.
종래의 기술에서, 라인 버퍼는 입력된 비디오 이미지가 업스케일되어야 할 때 화소를 수직으로 보간하는데에만 사용된다. 수직 보간처리를 지원하기 위해서, 라인 버퍼는 전체 수평라인의 화소 데이터를 저장하도록 구성되어야 하며, 따라서, VGC(10)에 상당한 양의 칩 공간을 차지한다. 칩 공간이 VGC(10)에 많이 차지하게 되므로, 업스케일링 기능을 위해 칩 공간을 사용하는 것은 비용이 드는 것이다.
전술한 바와 같이, 8bpp 모드가 사용되고 화소를 24bpp 색으로 늘리는데 LUT(18)가 사용될 때 문제가 존재한다. LUT(18)를 사용하여 8bpp로 색인되는 모드는 24bpp 색임도 불구하고, 단지 256 색만을 제공한다.
라인 버퍼/화소 LUT
본 발명은 디스플레이 장치(10)에 디스플레이되는 출력 이미지에 사용할 수 있는 색의 수를 증가시키도록 라인 버퍼를 사용하며 입력된 이미지를 업스케일링하는데 사용하는 방법 및 장치에 관한 것이다.
도 3은 본 발명의 실시예에 따른 비디오 그래픽스 시스템의 전형적인 블록도이다. 전술한 바와 같이, 비디오 입력 데이터는 초기에 프레임 버퍼 메모리(12)에 저장된다. VGC(10)는 비디오 화소 데이터를 불러들여 이 데이터를 수직 스케일러 제어기(12)에 입력한다. 수직 스케일러 제어기(50)는 전술한 바와 같이 현재 라인의 화소 데이터를 라인 버퍼(40)에 언제 기입될 것인지를 제어하도록 동작한다. 그러나, 도 3에 개시된 실시예에서, 라인 버퍼(40)는 또한 제2 LUT를 저장하는데 사용된다.
예를 들면, 제1 모드 동작에서, 라인 버퍼(40)는 화소를 수직으로 보간하는데 사용되는 전형적인 라인 버퍼(40)로서 동작한다. 앞에서 기술한 바와 같이, 이 동작은 수직 스케일러(50)가 수직 보간을 위해 데이터를 액세스할 수 있도록 현재 라인의 화소 데이터를 저장하는 것을 포함한다. 그러나, 제2 모드 동작에서, 라인 버퍼(40)는 LUT로서 동작한다. 이러한 식으로, VGC(10)는 디스플레이 장치(16)에 디스플레이를 위해서 전체 24bpp 색의 제2 테이블을 포함한다.
도 3에 도시한 바와 같이, 비디오 그래픽스 시스템은 멀티플렉서(60, 70, 80)에 입력을 제공하는 선택장치(90)를 포함한다. 제1 모드에서, 멀티플렉서(60, 70, 80)는 라인 버퍼/LUT(40)가 화소 데이터를 보간하는데 사용되는 전형적인 라인 버퍼로서 동작할 수 있게 한다. 그러나, 선택장치(90)가 멀티플렉서(60, 70, 80)에 제2 입력을 제공할 때, 라인 버퍼/LUT(40)는 LUT로서 동작한다. 이 제2 모드에서, 전체 24bpp 색은 전체 24bpp 색이 LUT(18)에 기입되는 바와 동일한 방식으로 라인 버퍼(40)에 기입된다. 바람직한 실시예에서, CPU(22)는 선택장치(90)로서 동작하며 주변 구성요소 상호접속(PCI) 버스(32)를 통해 멀티플렉서(60, 70, 80)에 신호를 보낸다. CPU(22)는 시스템 메모리(20)에 저장된 명령에 따라 동작한다. 대안으로, 선택장치(90)는 PCI버스(32)를 통해 VGC(10)와 연락하는 임의의 PCI 호스트 장치일 수도 있을 것이다. 예를 들면, 선택장치(90)는 망 제어기(30)일 수도 있을 것이다.
바람직한 실시예에서, 선택장치(90)는 "하이" 신호를 멀티플렉서(60, 70, 80)에 보내어 라인 버퍼/LUT(40)가 전형적인 라인 버퍼로서 동작할 수 있게 한다. 멀티플렉서(60, 70, 80)는 "하이" 신호를 수신하여 프레임 버퍼 메모리(12)로부터 라인 버퍼/LUT(40)로/로부터 데이터를 기입 및 독출하도록 동작한다. 수직 스케일러 제어기(50)는 화소를 수직으로 보간하기 위해서 라인 버퍼(40)로부터 데이터 기입/독출을 제어한다.
그러나, 선택장치(90)가 "로우" 신호를 멀티플렉서(60, 70, 80)에 보내면, 멀티플렉서(60, 70, 80)는 라인 버퍼/LUT(40)에 색 데이터를 전송하도록 동작한다. 색 데이터는 LUT(18)가 기입되는 바와 동일한 방식으로 라인 버퍼(40)에 기입된다. 즉, CPU(22) 또는 임의의 다른 PCI 호스트 장치는 시스템 메모리로부터 색을 색인한 원하는 256, 24bpp를 멀티플렉서(80)를 통해 라인 버퍼/LUT(40)에 기입한다. 이어서, 8bpp를 포함하는 입력 이미지가 디스플레이 제어기(20)에 의해 수신되었을 때, 8비트 값은 멀티플렉서(70)를 통해 LUT로서 동작하는 라인 버퍼/LUT(40)에 전송된다. 디스플레이 제어기(20)는 8비트 값을 24bpp 색값으로 맵핑하고 출력값을 DAC(14)에 출력하여 디스플레이 장치(16)가 사용하기 위한 아날로그 값으로 변환한다.
도 4는 라인 버퍼 및 LUT로서 라인 버퍼/LUT(40)를 사용하는 바람직한 처리과정을 예시한 흐름도이다. 전술한 바와 같이, 임의의 PCI 호스트 장치 또는 임의의 다른 제어장치는 본 발명의 비디오 그래픽스 시스템을 제어하는데 사용될 수 있다. 이하 상세히 기술된 실시예는 CPU(22)가 제어장치인 것으로 가정한다.
단계 200에서, CPU(22)는 VGC(10)의 동작모드를 선택한다. CPU(22)는 이미지 업스케일링이 필요한지 여부에 기초하여 동작모드를 결정한다. 예시 목적으로, CPU(22)는 단계 200에서 이미지 업스케일링은 필요하지 않는 것으로 가정한다. CPU(22)는 단계 202에서 제어신호를 멀티플렉서(60, 70, 80)에 보내어 각각의 멀티플렉서에 대해 "로우" 입력을 선택하게 한다.
다음에, CPU(22)는 단계 204에서 256, 24bpp 색값을 멀티플렉서(80)를 통해 라인 버퍼/LUT(40)에 기입한다. 24bpp 값은 여러 가지 배율에 기초하여 CPU(22)에 의해 결정된다. 예를 들면, CPU(22)는 LUT(18) 내에 대부분이 청색 농담으로만 상용된 256, 24bpp 값을 이미 저장하고 있을 수 있다. 그러므로, CPU(22)는 대부분이 황색-적색 농담(혹은 임의의 다른 색)으로만 사용된 256, 24bpp 색을 라인 버퍼/LUT(40)에 기입한다. 이러한 식으로, CPU(22)는 디스플레이 장치(16)에서 사용할 수 있는 출력 색의 수를 증가시킨다.
단계 206에서, 디스플레이 제어기는 8bpp 모드로 저장된 비디오 화소 데이터를 프레임 버퍼 메모리(12)로부터 수신한다. 디스플레이 제어기(20)는 현재의 화소에 대한 8비트 값을 출력 24비트 색으로 매핑하기 위해서 독출 어드레스 신호를 멀티플렉서(70)에 보낸다. 독출 어드레스 신호는 수평 스트림 화소 중 현재의 화소값이다. 라인 버퍼/LUT(40)는 단계 208에서 입력된 8bpp 화소값에 기초하여 적합한 24bpp값을 출력하여 DAC(14)에 입력하고 이어서 디스플레이 장치(16)에 입력한다.
단계 200-208에 대한 상기 설명은 비디오 업스케일링이 필요없는 것으로 CPU(22)가 결정한 것으로 가정한 것이다. 단계 208 이후에, CPU(22)는 수직 업스케일링이 필요하다고 결정한 것으로 가정한다. CPU(22)는 단계 210에서 제어신호를 멀티플렉서(60, 70, 80)에 보내어 각각의 멀티플렉서에 대해 "하이" 입력을 선택하게 한다.
다음에, 수직 스케일러 제어기(50)는 프레임 버퍼 메모리(12)로부터 비디오 화소 데이터를 수신하도록 동작한다. 단계 212에서, 수직 스케일러 제어기(50)는 기입 어드레스 신호를 멀티플렉서(60)에 보내어 현재 수평라인의 화소 데이터를 라인 버퍼/LUT(40)에 기입하도록 한다.
수직 스케일러 제어기(50)가 2 라인의 비디오 화소 데이터에 대한 보간을 수행할 때, 수직 스케일러 제어기(50)는 단계 214에서 멀티플렉서(70)를 통해 독출 어드레스 신호를 라인 버퍼/LUT(40)에 보낸다. 독출 어드레스 신호는 수직 스케일러 제어기(50)가 보간하고 있는 중이며 수직 스케일러 제어기(50)가 라인 버퍼/LUT(40)에 저장된 이전 라인의 화소 데이터로부터 적합한 수평 화소를 독출하는 현재의 수평 화소를 나타낸다. 수직 스케일러 제어기(50)는 단계 216에서 보간된 화소 데이터를 출력하여 업스케일된 출력 이미지를 생성한다. 이러한 식으로, VGC(10)는 수직 업스케일링이 필요할 때 라인 버퍼/LUT(40)를 이용하며 수직 업스케일링이 필요하지 않을 때는 LUT(40)로서 이용한다. 라인/LUT(40)에 대한 이러한 사용은 VGC(10)의 메모리 요건을 증가시키지 않고 디스플레이에 사용할 수 있는 색의 수를 증가시킨다.
예를 들면, 전술한 바와 같이, 특정 이미지의 대부분이 물속 바다풍경인 것으로 가정한다. 이러한 상황에서, LUT(18)의 대부분은 여러 가지 청색농담에만 사용된다. 그러나, 황색-적색 해저생물이 바다풍경에 오버레이될 때, LUT(18)는 황색-적색 농담을 나타내는 24 bpp 색을 포함하지 않는다. 그러나, 시스템을 제어하는 PCI 호스트 장치는 버퍼/LUT(40)에 저장된 256, 24비트 색의 대부분을 황색 및 적색의 여러 가지 농담에만 사용하였다고 가정한다. 이 경우, PCI 호스트 장치는 해저생물에 대한 8bpp 입력색을 24bpp 출력색에 맵핑하기 위해 라인 버퍼/LUT(40)를 선택한다. 대안으로, 24bpp 출력색을 출력하기 위한 적합한 LUT를 선택하기 위해서 VGC(10) 상의 로직을 사용할 수 있다. 이러한 식으로, 황색-적색 해저생물을 가진 바다풍경 이미지는 대부분이 청색농담을 나타내는 단일의 LUT(18)만이 사용될 때보다 라인 버퍼/LUT(40)를 사용하여 더욱 정확하게 표현될 수 있다.
색값을 라인 버퍼/LUT(40)에 저장하는데 사용된 PCI 호스트 장치(바람직한 실시예에서 CPU(22))는 임의의 원하는 색의 수를 골라 이들 색값을 VGC(10)가 사용하도록 라인 버퍼/LUT(40)에 저장할 수 있다. 그러나, 라인 버퍼/LUT(30)에 저장된 실제 색값은 출력 이미지의 원하는 전체 정확도를 포함하여 여러 가지 배율에 의존한다.
바람직한 실시예에서, 라인 버퍼(40)의 크기는 768 깊이 x 24비트 폭이다. 따라서, 라인 버퍼/LUT(40)는 3개의 LUT로 분할될 수 있어 디스플레이 장치(16)에 디스플레이하는데 사용할 수 있는 색의 수를 더 증가시킬 수 있다. 그러나, 사용할 수 있는 부가적인 LUT의 수는 라인 버퍼(40)의 크기에 의존한다. 더구나, VGC(10)는 VGC(10)에 대한 공간제악으로 LUT(18)가 다른 구성요소와 더불어 VGC(10)에 공존할 수 없을 때 단지 LUT(들)로서만 작용하는 라인 버퍼/LUT(30)와 함께 사용될 수 있다.
또한, 수신된 이미지 데이터의 여러 부분에 대해 어느 LUT를 사용할 것이지를 제어하기 위해, 제어하는 PCI 호스트 장치를 사용할 수 있다. 입력된 화소 데이터를 전체 24 bpp 색에 맵핑하기 위해서 복수의 LUT 중 어느 것을 사용할 것인가를 VGC(10) 내의 또는 외부 제어장치로부터의 로직이 선택할 수도 있다. 더욱이, 바람직한 실시예는 프레임 버퍼 메모리(12) 내에 저장된 8bpp 및 8 x 256 LUT를 갖는 시스템을 취하였으나, 임의의 다른 화소당 비트수를 이용하는 임의의 다른 비디오 처리 시스템을 본 발명의 개념에서 벗어남이 없이 사용할 수도 있다.
이미지를 업스케일링하기 위해 화소를 보간하고 디스플레이 장치에 디스플레이하는데 사용할 수 있는 출력색의 수를 증가시키기 위한 룩업 테이블로서 라인 버퍼를 사용하는 방법 및 장치를 기술하였다. 전술한 바와 같이, 디스플레이 장치는 CRT, LCD 디스플레이 혹은 임의의 다른 디스플레이 장치와 같은 임의의 형태의 디스플레이 장치일 수 있다. 본 발명의 잇점은 하드웨어 요건을 증가시키지 않고 시스템이 더욱 더 정확한 출력 데이터를 제공한다는 것이다. 본 발명의 다른 잇점은 시스템에 의한 거의 부가적인 처리없이 디스플레이에 사용할 수 있는 가능한 색의 수가 증가한다는 것이다. 본 발명의 또 다른 잇점은 전용의 하드웨어없이 쉽게 구현될 수 있다는 것이다.
본 설명에서, 본 발명의 어떤 바람직한 실시예만을 보이고 기술하였으나, 전술한 바와 같이, 본 발명은 여러 가지 다른 조합 및 환경에서 사용할 수 있으며 여기 표현된 발명개념의 범위 내에서 변경 또는 수정할 수 있음을 알아야 한다.

Claims (13)

  1. 이미지 데이터 처리 시스템에 있어서:
    제1 제어신호 및 제2 제어신호를 출력하도록 구성된 선택장치(90);
    상기 선택장치에 결합되고, 제1 메모리가 상기 제1 제어에 기초하여 화소 데이터를 저장하도록 구성된 라인 버퍼 메모리(40);
    상기 라인 버퍼 메모리에 결합되고, 상기 저장된 화소 데이터를 보간하여 이 보간된 화소 데이터를 출력하도록 구성된 스케일링 장치(50); 및
    상기 라인 버퍼 메모리에 결합되고, 색 룩업 테이블 메모리로서 상기 라인 버퍼 메모리를 재사용하도록 구성된 디스플레이 제어기(20)를 포함하는 이미지 데이터 처리 시스템.
  2. 청구항의 시스템으로서, 룩업 테이블 메모리를 포함하며, 라인 버퍼 메모리는 사용가능한 룩업 색의 수를 늘리는데 사용되는 이미지 데이터 처리 시스템.
  3. 제1항에 있어서, 상기 라인 버퍼 메모리에 결합된 것으로서, 입력된 화소 데이터를 저장하고, 상기 제1 제어신호에 기초하여, 상기 제1 메모리에 상기 입력된 화소 데이터를 전송하도록 구성된 프레임 버퍼 메모리(12)를 더 포함하는 이미지 데이터 처리 시스템.
  4. 제2항에 있어서, 상기 프레임 버퍼 메모리는 수평 라인의 화소를 나타내는 증분된 입력 화소 데이터를 상기 라인 버퍼 메모리에 전송하도록 또한 구성된 이미지 데이터 처리 시스템.
  5. 제2항에 있어서, 상기 디스플레이 제어기는 상기 제1 메모리로부터 화소값을 수신하고, 이 수신된 화소값을 상기 라인 버퍼 메모리에 저장된 색 데이터에 기초하여 출력 색 값에 매핑하도록 또한 구성된 이미지 데이터 처리 시스템.
  6. 제5항에 있어서, 상기 색 데이터는 디스플레이 장치에 디스플레이하는데 사용될 수 있는 한 테이블의 색들을 나타내는 이미지 데이터 처리 시스템.
  7. 이미지 데이터 처리방법에 있어서,
    수평 라인의 화소를 나타내는 화소 데이터를 제1 동작모드에서 라인 버퍼 메모리(40)에 기입하는 단계;
    상기 제1 메모리로부터의 화소 데이터를 스케일링 장치(50)에 전송하는 단계; 및
    제2 동작모드에서 상기 라인 버퍼 메모리를 색 룩업 메모리로서 재사용하는 단계를 포함하는 이미지 데이터 처리방법.
  8. 제7항에 있어서, 디지털 비디오 소스로부터의 데이터를 나타내는 입력 화소 데이터를 제2 메모리(12)에 기입하는 단계; 및
    상기 제1 동작모드에서, 단일의 수평라인의 입력 화소 데이터를 상기 제1 메모리에 전송하는 단계를 더 포함하는 이미지 데이터 처리방법.
  9. 제8항에 있어서, 상기 수평라인의 화소 데이터를 제2 수평라인의 화소 데이터를 사용하여 보간하는 단계; 및
    보간된 화소값들을 출력하는 단계를 더 포함하는 이미지 데이터 처리방법.
  10. 제8항에 있어서, 디스플레이 장치(16)에 디스플레이될 화소 데이터를 나타내는 화소값을 상기 제2 메모리(12)로부터 수신하는 단계; 및
    상기 저장된 색 데이터에 기초하여 상기 수신된 화소값을 출력 화소값에 매팽하는 단계를 더 포함하는 이미지 데이터 처리방법.
  11. 비디오 그래픽스 제어기(10)에 있어서,
    디스플레이 장치(16)에 리프레시 비디오 데이터를 발생하도록 구성된 디스플레이 제어기(20); 및
    제1 제어신호에 기초하여 수평라인의 화소들을 나타내는 화소 데이터를 저장하고, 제2 제어신호에 기초하여 디스플레이 장치(16)에 디스플레이될 색 정보를 나타내는 색 데이터를 저장하도록 구성된 메모리(40)를 포함하는 비디오 그래픽스 제어기.
  12. 제11항에 있어서, 상기 메모리에 결합되고, 제2 수평라인의 화소를 사용하여 상기 수평라인의 화소들을 보간하고 보간된 화소값들을 출력하록 구성된 스케일링 장치(50)를 더 포함하는 비디오 그래픽스 제어기.
  13. 제11항에 있어서, 상기 디스플레이 제어기는 제2 메모리(12)로부터 화소값을 수신하고 상기 저장된 색 데이터에 기초하여 상기 수신된 화소값을 출력 화소값에 맵핑하도록 또한 구성된 비디오 그래픽스 제어기.
KR1019997006313A 1997-11-12 1998-10-19 화소 룩업 테이블로서 보간 라인 버퍼를 사용하는 방법 및 장치 KR20000070092A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8/968,679 1997-11-12
US08/968,679 US6140994A (en) 1997-11-12 1997-11-12 Graphics controller for forming a composite image

Publications (1)

Publication Number Publication Date
KR20000070092A true KR20000070092A (ko) 2000-11-25

Family

ID=25514613

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019997006313A KR20000070092A (ko) 1997-11-12 1998-10-19 화소 룩업 테이블로서 보간 라인 버퍼를 사용하는 방법 및 장치

Country Status (6)

Country Link
US (1) US6140994A (ko)
EP (1) EP0951694B1 (ko)
JP (1) JP4672821B2 (ko)
KR (1) KR20000070092A (ko)
DE (1) DE69829163T2 (ko)
WO (1) WO1999024917A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100836534B1 (ko) * 2006-12-01 2008-06-10 한국과학기술원 저전력 서브 픽셀 보간 블록 구조

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6278438B1 (en) * 1999-03-08 2001-08-21 Lexmark International, Inc. Method of displaying digital photograph based bitmaps
DE10004743C2 (de) * 2000-01-28 2002-03-28 Siemens Ag Verfahren und Einrichtung zum Ansteuern eines Bildschirmgerätes für ein Eisenbahnleitsystem
DE10004728C1 (de) * 2000-01-28 2002-06-13 Siemens Ag Verfahren und Einrichtung zum Ansteuern eines Bildschirmgerätes für ein Eisenbahnleitsystem
US7002561B1 (en) * 2000-09-28 2006-02-21 Rockwell Automation Technologies, Inc. Raster engine with programmable hardware blinking
US7191402B2 (en) * 2001-05-10 2007-03-13 Samsung Electronics Co., Ltd. Method and apparatus for adjusting contrast and sharpness for regions in a display device
US6784893B2 (en) * 2002-01-22 2004-08-31 International Business Machines Corporation Raster operation unit
WO2005008626A1 (en) * 2003-07-11 2005-01-27 University Of North Carolina At Chapel Hill Methods and systems for controlling a computer using a video image and for combining the video image with a computer desktop
US20060044328A1 (en) * 2004-08-26 2006-03-02 Rai Barinder S Overlay control circuit and method
US20060109285A1 (en) * 2004-11-23 2006-05-25 Chan Victor G Method and apparatus for writing a non-rectangular frame to a display device
US20080192066A1 (en) * 2007-02-13 2008-08-14 Sharp Laboratories Of America, Inc. Raster operation table conversion for color spaces

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4799053A (en) * 1986-04-28 1989-01-17 Texas Instruments Incorporated Color palette having multiplexed color look up table loading
JPH01116690A (ja) * 1987-10-30 1989-05-09 Fujitsu Ltd 論理演算回路
US5387945A (en) * 1988-07-13 1995-02-07 Seiko Epson Corporation Video multiplexing system for superimposition of scalable video streams upon a background video data stream
US4958146A (en) * 1988-10-14 1990-09-18 Sun Microsystems, Inc. Multiplexor implementation for raster operations including foreground and background colors
EP0536892B1 (en) * 1991-10-07 1997-02-05 Xerox Corporation Image editing system and method have improved color key editing
CA2140643C (en) * 1993-05-21 2000-04-04 Atsushi Kitahara Image processing device and method
US5469223A (en) * 1993-10-13 1995-11-21 Auravision Corporation Shared line buffer architecture for a video processing circuit
US5502462A (en) * 1993-11-01 1996-03-26 The 3Do Company Display list management mechanism for real-time control of by-the-line modifiable video display system
US5644333A (en) * 1994-12-12 1997-07-01 Auravision Corporation Color key detection scheme for multimedia systems
KR960024839A (ko) * 1994-12-29 1996-07-20 김광호 소프트 키보드를 이용한 휴대용 정보 단말기 및 정보 입력방법
JP3838282B2 (ja) * 1996-06-20 2006-10-25 ブラザー工業株式会社 絵作成装置
JPH1188700A (ja) * 1997-09-04 1999-03-30 Hitachi Ltd カラー画像信号の符号化方法、復号化方法およびカラー画像処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100836534B1 (ko) * 2006-12-01 2008-06-10 한국과학기술원 저전력 서브 픽셀 보간 블록 구조

Also Published As

Publication number Publication date
DE69829163T2 (de) 2006-02-16
WO1999024917A3 (en) 1999-08-19
JP4672821B2 (ja) 2011-04-20
EP0951694B1 (en) 2005-03-02
US6140994A (en) 2000-10-31
EP0951694A2 (en) 1999-10-27
DE69829163D1 (de) 2005-04-07
JP2001509920A (ja) 2001-07-24
WO1999024917A2 (en) 1999-05-20

Similar Documents

Publication Publication Date Title
US5821918A (en) Video processing apparatus, systems and methods
US6788309B1 (en) Method and apparatus for generating a video overlay
US4490797A (en) Method and apparatus for controlling the display of a computer generated raster graphic system
US5473342A (en) Method and apparatus for on-the-fly multiple display mode switching in high-resolution bitmapped graphics system
US5243447A (en) Enhanced single frame buffer display system
KR100295712B1 (ko) 컴퓨터디스플레이시스템컨트롤러
KR100853210B1 (ko) 색 특성 보상 기능과 응답 속도 보상 기능을 갖는 액정표시 장치
US5831638A (en) Graphics display system and method for providing internally timed time-varying properties of display attributes
JPH08223498A (ja) ディジタルテレビジョン用グラフィックスサブシステム
US20080158246A1 (en) Digital color management method and system
US5663772A (en) Gray-level image processing with weighting factors to reduce flicker
US6304300B1 (en) Floating point gamma correction method and system
US5748866A (en) Virtual display adapters using a digital signal processing to reformat different virtual displays into a common format and display
US5903253A (en) Image data control apparatus and display system
EP0673012A2 (en) Controller for a display with multiple common lines for each pixel
US5838291A (en) Display control method and apparatus
EP0951694B1 (en) Method and apparatus for using interpolation line buffers as pixel look up tables
US5880741A (en) Method and apparatus for transferring video data using mask data
EP0656616A1 (en) Technique to increase the apparent dynamic range of a visual display
JPH0432593B2 (ko)
US6587117B1 (en) Apparatus and method for adaptive transformation of fractional pixel coordinates for calculating color values
US7061504B1 (en) Method and apparatus for configurable gamma correction in a video graphics circuit
US6606094B1 (en) Method and apparatus for text image stretching
JP2001154653A (ja) ディジタル画像表示装置
JPS61500637A (ja) 増加した水平分解能を持つビデオディスプレイ システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application