KR20060066668A - 색 정보 데이터 구조를 이용하여 이미지 정보를 처리하는전략 - Google Patents

색 정보 데이터 구조를 이용하여 이미지 정보를 처리하는전략 Download PDF

Info

Publication number
KR20060066668A
KR20060066668A KR1020057012456A KR20057012456A KR20060066668A KR 20060066668 A KR20060066668 A KR 20060066668A KR 1020057012456 A KR1020057012456 A KR 1020057012456A KR 20057012456 A KR20057012456 A KR 20057012456A KR 20060066668 A KR20060066668 A KR 20060066668A
Authority
KR
South Korea
Prior art keywords
information
image information
color
data structure
video
Prior art date
Application number
KR1020057012456A
Other languages
English (en)
Other versions
KR101030358B1 (ko
Inventor
글렌 에프. 에반스
스티븐 제이. 에스트롭
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/694,144 external-priority patent/US7139002B2/en
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20060066668A publication Critical patent/KR20060066668A/ko
Application granted granted Critical
Publication of KR101030358B1 publication Critical patent/KR101030358B1/ko

Links

Images

Classifications

    • 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/363Graphics controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0117Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving conversion of the spatial resolution of the incoming video signal
    • H04N7/012Conversion between an interlaced and a progressive signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/642Multi-standard receivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/67Circuits for processing colour signals for matrixing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/68Circuits for processing colour signals for controlling the amplitude of colour signals, e.g. automatic chroma control circuits
    • H04N9/69Circuits for processing colour signals for controlling the amplitude of colour signals, e.g. automatic chroma control circuits for modifying the colour signals by gamma correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/02Addressing, scanning or driving the display screen or processing steps related thereto
    • G09G2310/0229De-interlacing
    • 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/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • G09G2340/0435Change or adaptation of the frame rate of the video stream
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/125Frame memory handling using unified memory architecture [UMA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0117Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving conversion of the spatial resolution of the incoming video signal
    • H04N7/0122Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving conversion of the spatial resolution of the incoming video signal the input and the output signals having different aspect ratios

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Image Processing (AREA)
  • Processing Of Color Television Signals (AREA)
  • Color Television Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Generation (AREA)

Abstract

색 정보를 전달하는 데이터 구조를 이용하여 이미지 정보를 프로세싱하는 방법이 기술된다. 색 정보는 이미지 정보에 적용되는 색-관련 포맷을 기술한다. 데이터 구조는 비디오 프로세싱 파이프라인을 아래에서 전달될 수 있는데, 여기에서 파이프라인 내의 각 기능적 컴포넌트는 데이터 구조로부터 색 정보를 드로잉하여 이 컴포넌트의 프로세싱의 정확성을 향상시킬 수 있다. 또한, 각 컴포넌트는 파이프라인 내의 다른(다운스트림) 컴포넌트에 의한 사용을 위해 이전에 알려지지 않은 색 정보를 데이터 구조에 제공할 수 있다. 데이터 구조의 예시적인 필드는 하나 이상의 비디오 전달 함수 필드, 색 프라이머리들 필드,이미지 조명 필드, 전달 행렬 필드, 공칭 범위 필드, 및 비디오 채도 샘플링 필드를 포함할 수 있다. 전달 행렬 필드는 이미지 정보를 휘도-관련 색 공간에서 RGB-관련 색 공간으로와 같이 한 색 공간에서 다른 색 공간으로 변환시키는 데에 이용될 수 있다. 처리 동작은 순차적이고 선형 RGB 이미지 정보에서 수행될 수 있다.
휘도, 채도, RGB, 비월주사, 이미지 조명, 전달 행렬

Description

색 정보 데이터 구조를 이용하여 이미지 정보를 처리하는 전략{STRATEGIES FOR PROCESSING IMAGE INFORMATION USING A COLOR INFORMATION DATA STRUCTURE}
본 출원은 2003년 8월 1일에 출원되고 "Stephen J. Estrop"이 단독으로 발명하고 발명의 명칭이 "Bandwidth-Efficient Processing of Video Images"인 미국 가출원번호 60/492,029의 우선권을 주장한다. 이 60/492,029 가출원은 그 전체가 본 명세서에 참조로서 포함된다.
본 출원은 또한 2003년 10월 27일에 출원되고 마찬가지로 "Stephen J. Estrop"이 단독으로 발명하고 발명의 명칭이 "Bandwidth-Efficient Processing of Video Image"인 미국 정규출원번호 10/694,144와 일부 연결된다. 이 10/694,144 정규 출원은 그 전체가 본 명세서에서 참조로서 포함된다.
마지막으로, 본 출원은 2002년 10월 18일에 출원되고 "Stephen J. Estrop"이 단독으로 발명하고 발명의 명칭이 "Methods and Apparatuses for Facilitating Processing of Interlaced Images for Progressive Video Displays"인 계류중인 미국 정규출원 번호 10/273,505와 관련된다. 이 10/273,505 정규출원은 그 전체가 본 명세서에 참조로서 포함된다.
본 요지는 이미지 정보를 처리하는 전략에 관한 것으로, 보다 상세히는 이미지 정보의 색 성분량이 정확하게 재현되는 것을 보장하는 향상된 기법을 이용하는 이미지 정보 처리 전략에 관한 것이다.
사람의 시각은 매우 낮은 레벨의 빛에 반응하는 간상 광수용체(rod photoreceptor) 세포 및 색에 반응하는 추체 광수용체(cone photoreceptor) 세포에 의존한다. 추체 세포는 일반적으로 가시적인 전자기적 스펙트럼의 3가지 영역, 즉, (예를 들면, 일반적으로 적색에 대응하는) 장파장, (예를 들면, 일반적으로 녹색에 대응하는) 중파장, 및 (예를 들면, 일반적으로 청색에 대응하는) 단파장에 반응한다. 이로써, 모든 색은 적어도 3가지의 다른 색 성분의 서로 다른 조합으로서 표현될 수 있다. 일반적으로, 색 그자체는 스펙트럼의 가시영역 내의 전자기적인 발광인 물리적 양태들 및 이러한 정보를 처리하는 데에 이용되는 시각에 관련되는 뇌의 "메카니즘" 이후에 오는 복잡한 현상이다. 예를 들면, 사람의 시각은 빛의 색 (채도) 성분보다 빛의 광도에 더 잘 반응한다.
색 이미지들을 재현하는 전자 장치는 3가지 유형의 광원을 제공함으로써 사람의 시각의 3원색 성질을 보완한다. 이 3가지 유형의 광원은 사람 관측자에게 다른 색으로서 인지되는 서로 다른 스펙트럼 반응들을 산출한다. 예를 들면, 음극선관(CRT)은 적색, 녹색 및 청색의 형광체(phosphor)들을 제공하여 서로 다른 색들을 생성한다. 다른 기술들은 형광체를 이용하지 않지만, 그 외에도 적어도 3 종류의 빛을 발산하는 광원을 이용하여 색을 재현한다.
CIE(Commission Internationale de L'Eclariage)는 서로 다른 인지된 색들에게 빛의 스펙트럼 특징들을 매핑시키는 포괄적인 시스템을 설명해왔다. 이 시스템 과 관련하여, 용어 "매칭 함수"는 각 파장에서 이 기준 램프의 집합으로의 "평균적인" 관찰자의 통계적으로 표로 만들어진 (보통 단파장, 중파장, 장파장으로의) 반응 곡선을 칭한다. 적색, 녹색, 및 청색에서, 이들 함수는 각각, r(w), g(w), b(w)로서 나타나며, 여기서 "w"는 파장을 나타낸다. 이러한 기준 램프 - 즉 색의 프라이머리들(primaries) - 는 색 성분량을 가지는 이미지 정보를 재현하는 장치에 의해 사용되는 광원(통상적으로 모니터 형광체)를 정의한다. 용어 "색 공간"은 색의 프라이머리들 및 매칭 함수들의 집합에 의해 정의된 상세를 칭한다.
추상적인 색 상세는 상술된 방식으로 색도의 튜플들을 서로 다른 색들로 수학적으로 매핑시킬 수 있다. 그러나, 복수의 특정 코딩 시스템이, 색 이미지 정보의 전송 및 표현과 같이, 실질적인 적용들에 적용될 수 있는 보다 효과적인 코딩 스킴을 보장하기 위하여 개발되어 왔다. 산업에 처음 직면하였던 실질적인 적용은 아날로그 텔레비전 신호의 방송 및 표현이었다. 보다 최근의 적용들은 TCP/IP 네트워크(예를 들면, 인터넷) 등의 네트워크를 통한 디지털 비디오 정보의 전송 및 표현을 포함한다. 또한, 산업은 이제 표준 화질(SD) 비디오 정보 외에도 고화질(HD) 비디오 정보의 전송 및 표현을 수용한다. 그러므로 코딩 시스템의 특징들은 특정 횟수로 산업에 의해 직면되는 특정 문제로 종종 다시 추적될 수 있다.
이러한 접근법이 무엇이든지 간에, 코딩 시스템은 색 성분량를 가지는 이미지 정보의 재현이 일으키는 일반적인 이슈들의 집합을 해결한다. 이하의 논의는 코딩 시스템이 한 형태로 또는 다른 형태로 해결하고자 하는 일반적인 이슈의 개관을 제공한다. (용어에 있어서, 본 개시물에서 용어 "이미지 정보"는 사용자에게 디스플레이될 수 있는 임의의 정보를 나타내는 데에 이용되며, 이 용어는 정지 이미지 정보 및 움직이는 비디오 정보 둘다를 포함하도록 넓은 범위로 이용된다.)
- 색 공간 및 관련된 고려사항
색은 3개의 성분을 이용하여 지정될 수 있다. 불연속적인 색 성분들을 이용하는 색 성분량의 전송에 의존하는 이미지 스트림을 성분 비디오라 칭한다. 한 일반적인 코딩 접근법은 적색, 녹색 및 청색(RGB) 성분을 이용하여 색을 지정한다. 보다 형식적으로, RGB 성분은 소정의 스펙트럼에 같은 색으로 인식되는 색을 생성하는 기준 램프의 비례 강도를 기술한다. 예를 들면, R 성분은
Figure 112005035554618-PCT00001
로 정의될 수 있으며, 여기서 L(w)는 소정의 스펙트럼에 대응하고 r(w)는 색 공간에 대한 매칭 처리 r(w)에 대응한다. 일반적으로 RGB 색 공간은 자신의 색 프라이머리들 및 자신의 백색점에 관련된 색도 값에 의해 지정될 수 있다. 백색점은 기준 흰색과 관련된 색도를 칭한다.
컴퓨터 모니터는 일반적으로 RGB 모델을 이용하여 사용자에게 색 성분량을 나타낸다. 그러나, RGB 코딩 모델은 이미지 정보의 전송에서는 비효율적인 선택일 수 있다. 따라서, 이미지 정보는 일반적으로 RGB가 아닌 몇몇의 코딩 모델을 이용하여 목표 장치에 전송된다. 수신 시에, 이미지 정보는 예를 들면, 3x3 유사 변환(affine transformation)을 이용하여 디스플레이용 RGB 색 공간으로 변환될 수 있다. 표제 "감마 고려사항" 하에 이하 기술될 바와 같이, 각 R, G, 또는 B 성분 데 이터는 R', G' 및 B' 값이라 칭하는 이 성분의 프리-감마(pre-gamma) 수정된 형태로 표현될 수도 있다. (일반적으로 관례에 따라, 본 개시물에처 프라임(prime)은 비선형 정보를 나타낸다.)
이와 관련한 일반적은 용법은 휘도-관련 성분(Y) 및 채도-관련 성분을 참조하여 색을 정의하는 것이다. 휘도는 일반적으로 빛의 인식되는 광도(밝기)를 칭한다. "루마(luma)"(Y')라고 칭하는, 휘도는 비선형 대응부를 산출하기 위해 (이하 "감마 고려사항" 하에 기술될 방식으로) 프리-감마-수정된 형태(pre-gamma-corrected form)로 표현될 수 있다. 채도 성분은 휘도에 관련된 이미지 정보의 색 성분량을 정의한다. 예를 들면, 디지털 도메인에서, 심볼 "Cb"는 (통상적으로 8비트 값들에서의 -127...128 범위로부터) 차이 B'-Y'의, n 비트 정수형 스케일링된 표현에 대응하고, 심볼 "Cr"은 차이 R'-Y'의, n 비트 정수형 스케일링된 표현에 대응한다. 심볼 "Pb"는 Cb의 아날로그 대응부를 칭하고, 심볼 "Pr"은 Cr의 아날로그 대응부를 칭한다. 심볼 'Pb' 및 'Pr'은 또한 [-0.5...0.5]인 공칭 범위를 가지는 디지털 정규화된 형태의 Cb 또는 Cr을 칭할 수 있다. CbCr 및 PbPr에 의해 정의되는 성분 이미지 정보는 비선형 정보를 표현할 때 형식적으로 준비될(예를 들면, Cb'Cr' 및 Pb'Pr') 수 있다.
색 성분량은 또한 (상술한 성분 비디오가 아닌) 복합 비디오로서 통신될 수 있다. 복합 신호는 휘도 및 채도 정보를 한 신호로 결합시킨다. 예를 들면, 코딩 시스템 Y'UV에서, U는 B-Y의 스케일된 버전을 나타내고 V는 R-Y의 스케일된 버전을 나타낸다. 그러면 (예를 들면, 미 텔레비전 방송 규격 심의회(National Television System Committee:NTSC) 또는 팔방식(Phase Alternate Lind: PAL) 포맷에서 설명한 방식에서)이들 휘도 및 채도 성분은 하나의 신호를 제공하도록 처리된다. 코딩 시스템 Y'IQ는 상술한 방식으로 U 및 V 성분을 변환함으로써 형성된 다른 복합 코딩 시스템을 정의한다. 일반적으로, Y-관련 색 공간(Y'CbCr, Y'PbPr, YUV, YIQ, 등) 내의 색 이미지 정보를 줄이면 RGB 색 공간에 표현되는 이미지 정보에 비해 보다 쉽게 수행될 수 있기 때문에 이 산업은 역사적으로 이들 Y-관련 색 공간의 사용을 장려하였다.
하나 이상의 행렬 유사 변환을 이용하여 하나의 색 공간으로부터 다른 색 공간으로 색 성분량을 변환하는 것은 일반적으로 가능하다. 보다 형식적으로, 조건등색(metamerism)의 속성은 색 공간 계수의 한 집합을 매칭 함수의 다른 집합에 의하여 표현하는 것을 가능하게 한다(여기서 "조건등색"은 색 공간 계수의 동일한 집합에 매핑되어 동일하게 인식되어 보이는 - 즉, 동일한 색으로 보이는 2개의 스펙트럼을 칭한다).
감마 고려사항
CRT는 선형 반응 전달 함수를 갖지 않는다. 다시 말하면, CRT에 적용되는 전압량과 CRT에 의해 생성되는 결과적인 휘도의 관계는 선형 함수를 정의하지 않는다. 보다 상세히 기술하자면, CRT의 예측되는 이론적인 반응은 5/2승 법칙에 비례하는 반응을 가진다; 즉, 소정의 입력 전압 "V"에서, CRT의 결과 휘도 "L"은 L=V2.5로 계산될 수 있다.
적용시에, (비디오 카메라와 같은) 이미지 정보 소스는 일반적으로 이미지 정보에 전달 함수를 적용시킴으로써 이미지 정보를 미리-보상한다. "전달 함수"는 CRT 휘도 반응의 근사적인 역함수이다. 소스에 적용되는 - 일반적으로 인코딩 전달 함수라 칭하는 - 이 전달 함수는 "감마 수정된" 비선형 이미지 정보를 산출한다. 비선형 신호가 디스플레이 장치를 지나갈 때, 선형 함수가 산출된다. 상술된 표기에 따라서, 비선형(또는 미리 보상된) 이미지 정보는, 예를 들면, Y'Cb'Cr'과 같은 이 정보의 성분을 준비함으로서 표시된다.
비선형 (보상된) 형태로 이미지 정보를 전송하는 것이 일반적이다. 수신하는 장치의 표시 장치(예를 들면, CRT)는, 이 장치의 본래의 비선형성 때문에, 인코딩 전달 함수를 보완하여 소비에 적절하게 변형된 색 성분량을 제공한다.
이미지 함수를 표시하고자 하는 상태를 고려하기 위하여 인코딩 전달 함수의 승을 조절하는 것이 일반적이다. 예를 들면, 종래의 텔레비전에 디스플레이되는 비디오 정보는 통상적으로 가정 설정에 일반적인 어둡게 보이는 환경으로 표시되는 한편, 종래의 컴퓨터 모니터에 디스플레이되는 이미지 정보는 통상적으로 사무실 설정에 일반적인 밝게 보이는 환경으로 표시된다. 서로 다른 전달 함수 조절들이 이들 서로 다르게 보이는 환경에 적합하다. 이러한 이유로, 텔레비전 비디오 소스는 통상적으로 이미지 정보가 어둡게 보이는 상태로 표현될 것이라는 내장된(built-in) 가정에 기초하는 전달 함수를 이용한다. 이는 소스에 의해 적용되는 전달 함수가 일반적으로 CRT의 본래의 비선형성을 불충분하게-보상할 것임을 의미한다.
다른 특수한 고려사항으로서, 전달 함수를 이용하는 이미지 함수의 인코딩은 일반적으로 함수의 저전압 영역에 특수한 근사 함수를 적용시킨다. 즉, 인코딩 기법은 일반적으로 이러한 부분에 선형 세그먼트를 제공하여 이미지 센서 내의 잡음의 영향을 줄인다. 이 세그먼트는 "선형 테일(tail)"이라 칭하며, 정의된 "토우 사면(toe slope)"을 가진다.
휘도 정보에 관련된 채도 정보의 샘플링 및 정렬
상술한 바와 같이, 사람의 시각은 빛의 색도 성분보다 빛의 광도에 더 잘 반응한다. 코딩 시스템은 이러한 사실을 이용하여 총 개수의 휘도 정보(Y')에 관련하여 코딩된 채도(Cb'Cr') 정보의 총량을 줄인다. 이 기법은 채도 서브-샘플링이라 칭한다. 일반적으로 L:M:N으로서 표현된 숫자 표기가 이 샘플링 전략을 표현하는 데에 이용될 수 있는데, 여기서 "L"은 휘도 성분(Y')의 샘플링 기준 인자를 나타내고, "M" 및 "N"은 휘도 샘플링(Y')에 관련된 채도 샘플링(예를 들면, 각각 Cb 및 Cr)을 칭한다. 예를 들면, 4:4:4 표기는 매 휘도 샘플 당 하나의 채도 샘플이 존재하는 Y'CbCr 데이터를 나타낼 수 있다. 4:2:2 표기는 매 2개의 휘도 샘플 당 (균일하게) 1개의 채도 샘플이 존재하는 Y'CbCr 데이터를 나타낼 수 있다. 4:2:0 표기는 매 2개 단위 클러스터의 휘도 샘플 당 하나의 채도 샘플이 존재하는 Y'CbCr 데이터를 나타낼 수 있다. 4:1:1 표기는 매 4개의 휘도 샘플 당 (균일하게) 하나의 채도 샘플이 존재하는 Y'CbCr 데이터를 나타낼 수 있다.
코딩 전략이 채도 정보보다 휘도 정보를 더 제공하는 이들 환경에서, 디코더는 공급되는 채도 정보에 기초하여 보간법(interpolation)을 수행함으로써 "상실 된" 채도 정보를 복원할 수 있다. 보다 일반적으로, 다운샘플링(downsampling)은 이미지 샘플의 초기 집합에 비하여 더 적은 이미지 샘플을 산출하는 임의의 기법을 칭한다. 업샘플링(upsampling)은 이미지 샘플의 초기 집합에 비하여 더 많은 이미지 샘플을 산출하는 임의의 기법을 칭한다. 그러므로, 상술된 보간법은 업샘플링의 한 유형을 정의한다.
코딩 전략은 또한 채도 샘플이 대응하는 휘도 샘플에 대하여 공간적으로 "정렬"되는 방식을 지정한다. 코딩 전략들은 이와 관련하여 달라진다. 몇몇은 휘도 샘플을 가지고 채도 샘플을 정렬하여, 채도 샘플이 휘도 샘플 "위에" 직접 위치되도록 한다. 이를 코싸이팅(cositing)이라 칭한다. 다른 전략은 휘도 샘플의 2차원 배열 내의 빈틈의 공간에 채도 샘플을 위치시키는 것이다. (다음으로 이하에 기술될) 도 10-12는 휘도 및 채도 정보를 나타내는 다른 샘플링 및 정렬 전략을 도시한다.
양자화 고려사항
양자화는 불연속적인 숫자 값들이 색 성분들의 신호 진폭들에 할당되는 방법을 칭한다. 디지털 도메인에서, 숫자 값들은 규정된 개수의 단계들로 색 공간 값의 규정된 범위 (가뭇(gamut))을 순회한다. 예를 들면, 각각의 성분이 0 내지 255 까지의 값을 가정할 수 있도록, 각 성분값을 기술하기 위한 255 단계를 이용하는 것이 일반적이다. 8 비트를 이용하여 각 색 값을 표현하는 것이 일반적이나, 색은 더 높은 정밀도(예를 들면, 10비트 등) 및 더 낮은 정밀도로 표현될 수도 있다.
코딩 전략은 각각 검정 레벨 및 흰색 레벨을 나타내는 양자화 레벨의 범위의 양 끝의 부분에 종종 할당된다. 즉, 코딩 전략은 종종 기준 검정 레벨 및 기준 흰색 레벨을 정의할 것이지만, 기준 검정 및 흰색 레벨 이외의 것을 좌우하는 값을 표현하기 위해 이들 기준 레벨 이외의 코딩 레벨들을 할당할 수도 있다. 예를 들면, 8-비트 코딩 전략은 레벨 16을 검정으로 레벨 235를 흰색으로 할당할 수 있다. 16보다 낮은 나머지 레벨은 소위 "토우 룸"이라 정의하는 한편, 235보다 높은 나머지 레벨은 소위 "헤드 룸"이라 정의한다.
- 비월(interlaced) 대 순차(progressive) 표시 고려사항
종래의 텔레비전 신호는 비월 방식으로 스캐닝된다. 비월 방식에서, 비디오 프레임의 제1 필드가 캡춰되고, 바로 그 이후에, 비디오 프레임의 제2 필드(이후의 1/50 또는 1/60)가 뒤따라온다. 제2 필드는 제1 필드의 스캐닝 라인들 간의 틈 공간 내의 정보를 캡쳐하도록, 제2 필드는 제1 필드와 소량정도 수직으로 관련된 오프셋이다. 소위 밥 비월주사는 하나의 알려진 유형의 비월주사하는 전략이다. 완전한 비디오 프레임은 빠른 계승으로 제1 및 제2 필드를 나타냄으로써 구성되어 정보의 하나의 프레임으로서 사람 관찰자에 의해 인지된다.
그러나, 컴퓨터 모니터 및 다른 표시 장비는 비비월 방식인 순차주사 방식으로 이미지 정보를 디스플레이한다. 그러므로, 장치가 컴퓨터 모니터에 비월주사된 정보를 나타내기 위하여, 장치는 대항 필드에 대한 데이터를 삽입함("비비월주사"이라고 칭하는 프로세스)으로써 비월주사된 필드율로 순차적인 프레임을 디스플레이해야 한다. 예를 들면, 비월주사된 필드를 디스플레이하기 위하여, 한쪽에서 필드를 검사함으로써 라인들 간의 공간적 위치에 대한 "상실된" 데이터를 삽입시켜야 한다. 비비월주사 이미지 포맷은 "순차적인" 포맷이라 칭한다.
상기 논제들 각각에 관련된 추가적인 정보는 "Charles Poyton's well-regarded Digital Video and HDTV"와 같은, 복수의 도입부 텍스트에 발견될 수 있다.
상술된 복잡성을 종합하면, 산업은 이미지 정보를 나타내는 매우 많은 수의 다른 형식적 표준들을 수용한다. 표준들은 국제 전기 통신 동맹(ITU), (디지털 비디오 방송 또는 DVB 또한 촉진시키는) 유럽 방송 동맹(EBU), AES(Audio Engineering Society), ATSC(Advanced Television systems Committe, Inc.), 미국 영화 텔레비전 기술 협회(SMPTE), SECAM(sequential couleur avec mE'moire), 미 텔레비전 방송 규격 심의회(NTSC) 등을 포함하는 복수의 조직 및 위원회에 의해 공표되었다.
이들 조직 각각은 상술한 전체의 가능한 코딩 옵션들로부터 코딩 특징들의 특정 조합들을 개척한다. 본 발명에서는 이들과 같은 표준은 일반적으로 색 프라이머리들, 전달 함수, 의도된 관측 상태, 전달 행렬들, 토우 룸 및 헤드 룸 상세, 채도 서브샘플링 및 정렬 전략 등의 적용 및 정의에 따라 달라진다고 인식할 것이다. (백색점 기준과 함께) 색 프라이머리들은 표준 기본 색 공간을 정의한다. 전달 함수는 이 표준이 선형 이미지 정보와 비선형 정보 간에서 변환되는 방법을 결정한다. 의도된 뷰잉 상태는 (텔레비전이 어둡게 조명되는 가정용 설정에서 보여질 것이라는 가정과 같이) 이미지 정보가 소비되고자 하는 뷰잉 환경에 대한 표준이 만들어진다는 가정을 정의한다. 뷰잉 상태는 이미지 정보의 효과적인 감마 및 밝기(검정 레벨) 및 대비(흰색 레벨)를 변경한다. 전달 행렬은 이 표준이 서로 다른 색 공간들 간에서 (예를 들면, Y'YbYr에서부터 RGB 색 공간까지) 변환되는 방법을 결정한다. 헤드 룸 및 토우 룸 상세는 이 표준이 검정 및 흰색의 범위를 나타내기 위해 할당하는 양자화 레벨들을 결정한다. 채도 서브-샘플링 및 정렬 전략은 채도 정보가 휘도 정보와 연관지어 서브샘플링되고 위치되는 방식을 지정한다.
기존의 표준-관련 문서는 정확하고 상세하게 각 표준의 요구사항을 설명한다. 대표적인 표준은 다음을 포함한다:
- ITU-R 추천 BT.470은 아날로그 및 흑백 텔레비전 장치를 위한 상세를 제공하는 국제 표준이다.
- ITU-R 추천 BT.601은 이미지 정보의 스튜디오 디지털 코딩을 정의하는 국제 표준이다. 이 표준은 이미지 정보의 Y'CbCr 코딩을 이용한다.
- ITU-R 추천 BT.709는 고화질 비디오 정보의 스튜디오 코딩을 정의하는 국제 표준이다. 고화질(HD) 내용은, 통상적으로 1920x1080, 1280x720 등의, 표준화질(SD)보다 우수한 비디오 내용을 나타낸다.
- SMPTE 170M은 복합 아날로그 비디오 정보(예를 들면, NTSC)의 코딩을 정의하는 표준이다.
- SMPEE 240M은 아날로그 고화질 비디오 정보의 코딩을 정의하는 표준이다.
- IEC 61966-2-1(sRGB)은 8-비트 양자화 스킴을 이용하여 이미지 정보를 255 레벨로 코딩하는 표준이다.
- IEC 61966-2-2(scRGB)은 sRGB의 선형 형태를 정의하고 sRGB의 색 가뭇을 매우 확장시키는 표준이다.
- ISO/IEC 13818(MPEG-2)은 오디오 및 비디오 신호를 압축된 형태로 코딩하는 표준이다.
- ISO 10918-1(JPEG)은 정지 이미지 정보를 손실 압축하는 표준이다.
오늘날 이용되는 매우 다양한 코딩 표준은 이미지 정보의 코딩, 전송 및 처리에 있어서 복수의 어려움을 일으킨다. 개관으로서, 특정 장치에 관련된 비디오 프로세싱 파이프라인은 정의된 포맷팅이 정의된 특정 유형의 신호를 처리하도록 종종 설계된다: 이러한 제한된 규칙으로 이들 장치는 신뢰할만한 방식으로 이러한 이미지 정보를 올바르게 처리할 수 있다. 그러나, 오늘날 사용되는 매우 광범위한 이미지 정보에 관련하여, 이들 장치는 다른 종류의 이미지 정보의 색 포맷팅을 해석하고 이 포맷팅 정보를 파이프 라인을 통해 신뢰성있게 전달하는 매카니즘이 부족할 수 있다. 보다 정확하게는, 비디오 파이프라인은 수신된 이미지 정보에 적용되는 색 포맷팅의 특정 양태를 정의하는 이미지를 수신하지만, 본 발명자들에게 인식된 바와 같이, 비디오 파이프라인은 신뢰성있게 색 정보를 파이프라인 내의 다운스트림 컴포넌트로 파이프라인의 아래에서 전달하는 적절한 메카니즘이 부족할 수 있다. 결과적으로, 이러한 포맷팅 정보는 "상실"되거나 "버려진다." 다운스트림 컴포넌트들은 포맷팅 정보에서 "추측"함으로써 색 포맷팅에 속하는 소량의 정보를 처리할 수 있다. 이 컴포넌트들이 올바르지 않게 추측한다면, 파이프라인은 일부만의 최적화 또는 심지어 올바르지 않은 방식으로 이미지 정보를 산출한다.
도 1은 상술한 잠재적인 문제를 더 설명하는 매개를 도시한다. 도 1은 비디 오 프로세싱 파이프라인(100)의 고급 표현을 도시한다. 파이프라인(100)은 입력 단계(102), 처리 단계(104), 및 출력 단계(106)로 정의된 종래의 처리 단계를 포함한다. 입력 단계(102)에서, 입력 소스(108)는 임의의 이미지 정보 소스를 나타낸다. 소스(108)는 일반적으로 (예를 들면, 카메라 또는 스캐너에 의해 생성된) 새롭게 캡춰된 이미지 정보, 또는 몇몇의 채널을 통하여 (디스크로부터, IP 네트워크를 통해, 등으로부터 수신된) 입력 단계(102)에 나타난 기존의 캡춰된 이미지 정보를 포함할 수 있다. 형식적인 경우에서, 캡춰 처리 기능(110)은 소스(108)로부터 수신된 이미지 정보 상에 임의의 종류의 전처리를 수행할 수 있다. 후자의 경우, 디코더 기능(112)이 임의의 종류의 스트리밍-기반 정보 추출 및 압축해제를 수행하여 이미지 데이터를 산출한다. 일반적으로, 이러한 처리는 수신된 정보 내의 오디오 정보로부터 이미지 정보를 분리시키는 것, 정보를 압축해제시키는 것, 등을 포함할 수 있다. 처리 단계(104)에서와 같이, 처리 기능(114)은 결과 이미지 정보 상에서, 이미지 정보의 복수의 스트림을 복합 신호로 섞는 것과 같은, 임의의 종류의 처리를 수행한다. 출력 단계에서와 같이, 출력 처리 기능(116)은 처리된 이미지 정보 상에서, 그 정보를 출력 장치(118)에 출력하기 위한 준비로 수행되는 임의의 종류의 처리를 나타낸다. 출력 장치(118)는 텔레비전, 컴퓨터 모니터, 등이 나타날 수 있다. 출력 장치는 또한 저장 장치를 포함할 수 있다. 또한, 출력 "장치"(또는 출력 기능(116))는 정보를, 장치에 저장하거나, 네트워크를 통해 분산시키기 위한 준비를 하는 압축 및 (멀티플렉서와 같은) 포맷팅 기능을 제공할 수 있다.
도 1의 블럭의 하단행은 알려진 시스템에서 상술한 결함을 요약한다. 블럭(120)은 파이프라인 기능(110, 112, 114, 116)이 입력 신호에 적용되는 색 포맷팅을 정확하게 해석하는 것을 실패하고/거나 색 정보를 다운스트림 컴포넌트로 파이프라인 아래에서 신뢰성있게 전달하는 것을 실패함을 지적한다. 예를 들면, 파이프라인(100)은 규정된 포맷을 이용하여 코딩된 이미지 정보를 수신할 수 있다. 수신된 정보는 사용되었던 포맷팅의 특징을 식별하는 특정 필드를 포함할 수 있거나, 이들 특징이 수신된 정보의 다른 드러나는 속성에 기초하여 추론될 수 있다. 그러나, 사용되는 표준이 방대하기 때문에, 파이프라인(100)의 초기 단계는 이러한 정보를 적절하게 해석하고 비디오 파이프라인(100) 내의 다운스트림 컴포넌트로 이 정보를 전달하는 기능이 부족하다. 결과적으로, 이러한 코딩 정보는 즉시 상실되게 된다. 이는 이 컴포넌트가 이 이미지 정보를 해석해야 하는 방법인 가이드라인 없이 이미지 정보가 다운스트림 파이프라인 컴포넌트로 전달되는 상황을 야기시킬 수 있다; 이는 본질적으로 단지 1's 와 0's일 뿐이다.
블럭(122)은 비디오 파이프라인(100)이 상술한 난해한 점을 처리하는 방식을 나타낸다. 즉, 이미지 정보 내의 색 성분량을 해석하는 방법에 대한 가이드라인이 결여된 기능적 컴포넌트는 종종 이 색 성분량을 해석하는 방법에 대한 "추측"을 한다. 몇몇의 추측은 정확하지만 다른 것들은 그렇지 않다. 몇가지 예만 언급하자면, 비디오 파이프라인은 (대개 이미지 사이즈에 기초하는) 이미지 정보에 적용되었던 변환 기능, 이미지 정보에 본질적인 조명 조건 가정, (데이터 포맷에 기초하는) 이미지 정보에 의해 사용된 채도 서브-샘플링 스킴 등에 관련하여 올바르지 않 는 가정을 할 수 있다.
블럭(124)은 올바르지 않은 추측의 잠재적인 결과를 나타낸다. 즉, 올바르지 않은 추측은 일부만 최적화 또는 올바르지 않는 디스플레이 품질을 일으킬 수 있다. 이미지 표시는 "자연스럽지 않은" 색을 갖거나 움직임 인공현상을 갖는 것으로 보일 수 있다. 또는 과도하게 "명암이 심하고", 왜곡되고, 부적절하게 잘리는 등으로 보일 수 있다.
따라서 색 성분량을 가지는 이미지 정보를 처리하는 보다 바람직한 기법이 필요하다.
한 예시적인 실시예에 따르면, 규정된 포맷으로 표현되는 색 성분량을 가지는 이미지 정보를 처리하는 방법이 기술된다. 이 방법은 (a) 규정된 포맷의 적어도 한 양태를 정의하는 색 정보를 포함하는 색 정보 데이터 구조를 제공하는 단계, (b) 이미지 정보와 함께, 이미지 정보를 처리하는 데에 이용되는 적어도 하나의 기능적 컴포넌트에 색 정보 데이터 구조를 전달하는 단계, 및 (c) 색 정보 데이터 구조의 색 정보에 기초하여 상술한 적어도 하나의 기능적 컴포넌트에서 이미지 정보를 처리하는 단계를 포함한다.
다른 예시적인 특징에 따라서, 색 정보 데이터 구조는 (a) 선형 이미지 정보를 비선형 이미지 정보로 변환시키고/거나 반대로 비선형 이미지 정보를 선형 이미지 정보로 변환시키는 데에 이용되는 전달 함수에 관련되는 정보를 운반하는 비디오 전달 함수 필드, (b) 이미지 정보와 관련된 색 프라이머리들을 운반하는 색 프라이머리들 필드, (c) 이미지 정보와 관련된 의도된 뷰잉 상태를 운반하는 이미지 조명 필드, (d) 이미지 정보의 색 공간을 수정하는 데에 이용될 수 있는 전달 행렬 필드, (e) 이미지 정보에 관련된 잠재적인 토우 룸 및 헤드 룸에 관련된 정보를 운반하는 공칭 범위 필드, 및 (f) 관련 휘도 샘플과 연관지어 이미지 정보 내의 채도 샘플을 샘플링하고 정렬하는 방식을 지정하는 비디오 채도 샘플링 필드를 포함한다.
다른 예시적인 특징에 따라서, 상술한 적어도 하나의 기능적인 컴포넌트는 비디오 프로세싱 파이프라인을 정의하는 기능적 컴포넌트 그룹에 속하며, 여기에서 색 정보 데이터 구조는 다운스트림 기능적 컴포넌트에 의한 사용을 위하여 비디오 프로세싱 파이프라인 아래에서 전달된다.
다른 예시적인 특징에 따라서, 상술한 적어도 하나의 기능적 컴포넌트는 또한 규정된 포맷의 적어도 하나의 다른 양태를 결정하고 이 적어도 하나의 양태를 색 정보 데이터 구조 내의 적어도 하나의 알려지지 않은 필드에게 추가한다.
다른 예시적인 특징에 따라서, 상술한 색 정보 데이터 구조의 전달은 기존의 데이터 구조의 이용되지 않은 필드를 이용하여 색 정보 데이터 구조를 전달하는 것을 포함한다.
다른 예시적인 특징에 따라서, 이 방법은 또한 상술된 적어도 하나의 기능적인 컴포넌트는 색 정보 데이터 구조를 처리하는 능력을 가진다고 나타내는 플래그를 설정하는 단계를 포함한다.
이미지 정보를 처리하는, 기술된 다른 예시적인 방법은 (a) 이미지 정보의 주요 비디오 스트림을 제공하는 단계, (b) 이미지 정보의 비디오 서브스트림을 제공하는 단계, 및 (c) 색 정보 데이터 구조에 지정된 색 정보에 기초하여, 주요 비디오 스트림 및 비디오 서브스트림이 지정된 색 공간에서 표현되는 출력 비디오 정보를 산출하는 것을 포함하는 적어도 2개의 태스크를 수행하는 단계를 포함한다.
이미지 정보를 처리하는, 기술된 다른 예시적인 방법은 (a) 휘도-관련 색 공간 내의 입력 이미지 정보를 RGB-관련 색 공간 내의 선형 이미지 정보로 변환하는 단계, (b) RGB-관련 색 공간 내의 선형 이미지 정보 상에서 처리를 수행하여 처리된 정보를 생성하는 단계, 및 (c) 이 처리된 정보를 휘도-관련 색 공간 내의 비선형 이미지 정보로 변환하는 단계를 포함한다.
상술한 방법의 다른 예시적인 특징에 따르면, 이 변환 단계는, 처리 동작 이전에 입력 이미지 정보를 비월주사된 포맷으로부터 순차 포맷으로 변환시키는 단계, 및, 처리 이후에, 이 처리된 정보를 순차 포맷으로부터 비월주사된 포맷으로 변환시키는 단계를 더 포함한다.
추가적인 예시적인 구현은 이하에 기술된다.
도 1은 예시적인 비디오 파이프라인 및 그 관련 문제를 도시하는 도면.
도 2는 색 정보를 제공하는 데이터 구조를 처리하는 기능을 구비하는 향상된 예시적인 비디오 파이프라인을 도시하는 도면.
도 3은 도 2에 소개된 데이터 구조를 이용하여 이미지 정보를 처리하는 예시적인 방법을 도시하는 흐름도.
도 4는 이미지 정보를 순차적인 선형 RGB 포맷으로 변환시킨 다음에, 그 포맷으로 이미지 정보 상에서 처리를 수행하는 새로운 기법을 도시하는 블럭도.
도 5는 도 2의 시스템에 이용된 예시적인 데이터 구조의 개관을 도시하는 도면.
도 6 내지 12은 도 5의 데이터구조가 참조할 수 있는 다양한 예시적인 포맷팅 정보를 도시하는 도면.
도 13은 도 2의 일반적인 특징을 구현하는 하나의 예시적인 시스템을 도시하는 도면.
도 14는 도 13의 시스템의 동작의 예시적인 방법을 도시하는 흐름도.
도 15 내지 도 16은 도 13의 시스템에 채용될 수 있는 예시적인 복합 기능의 상세를 도시하는 도면.
도 17은 도 2에 도시된 시스템의 양태를 구현하는 예시적인 컴퓨팅 환경을 도시하는 도면.
개시물 및 도면 전반에서 유사한 컴포넌트 및 특징을 참조하기 위하여 동일한 숫자가 사용된다. 100 숫자 시리즈는 도 1에 처음으로 나타난 특징을 언급하고, 200 숫자 시리즈는 도 2에 처음으로 나타난 특징을 언급하고, 300 숫자 시리즈는 도 3에 처음으로 나타난 특징을 언급하며, 이하의 도면에서도 마찬가지이다.
이하는 색 성분량을 가지는 이미지 정보의 처리를 향상시키는 예시적인 메카니즘 및 절차를 기술한다. 넓은 뜻의 개관으로서, 메카니즘 및 절차는 이미지 정 보에 적용되는 색 포맷팅에 관련된 정보를 캡쳐하는 데이터 구조를 제공한다. 이 정보는 "색 정보"라고 칭하는 한편, 데이터 구조 자체는 "색 정보(CI) 데이터 구조"라고 칭한다. 한 예시적인 경우에서, 색 정보는 이미지 정보에 관련된 이하의 정보를 운반하는 필드를 특수하게 포함할 수 있다: 전달 함수 정보, 색 프라이머리 정보, 비디오 조명 정보, 전달 행렬 정보, 공칭 범위 정보, 및 채도 서브샘플링 정보. 이러한 필드 그룹은 제한적이기보다는 예시적인 것으로 의도된다. 다른 구현들은 추가적인 필드를 포함할 수 있고, 상술된 특정 필드를 제거할 수 있으며, 그 외의 것을 할 수 있다.
비디오 프로세싱 파이프라인은 이미지 정보의 처리를 용이하게 하는 것을 돕기 위하여 색 정보를 사용한다. 예를 들면, 색 정보는 파이프라인 내의 기능적 컴포넌트가 이미지 업로를 변환해야하는 방식을 지정할 수 있다. 또한, 알려진 시스템과는 상당히 다르게, 비디오 파이프라인은 CI 데이터 구조를 파이프라인 아래에서 전달하여 파이프라인 내의 다운스트림 컴포넌트가 CI 데이터 구조로부터 정보를 드로잉할 수 있는 기능을 포함한다. 그러므로 이 대책은 비디오 파이프라인이 이미지 정보의 특성에 관련하여 부정확한 추측을 할 가능성을 줄이며, 결과적으로 이 대책은 디스플레이되는 이미지의 품질을 향상시킬 잠재력을 가진다.
다른 예시적인 특징에 따라서, 파이프라인 내의 컴포넌트는 이미지 정보를 독립적으로 해석하는 기능을 포함할 수 있다. 컴포넌트가 색 포맷팅의, 이전에 지정되지 않은 색-관련 양태를 신뢰성있게 결정할 수 있는 이러한 예에서, 컴포넌트는 이 정보를 CI 데이터 구조에 추가할 수 있다. 그러면 이 추가된 색 정보는 비 디오 파이프라인에서 컴포넌트를 다운스트림하는 데에 이용가능하게 되는데, 이는 그 다음에 새로운 정보를 추가함으로써 CI 데이터 구조를 보충할 수 있다. 그러므로, 색 정보 데이터 구조는 파이프라인을 통해 정보를 전달하고 이미지 정보에 적용된 포맷의 다른 속성들을 추론할 수 있는 파이프라인 내의 컴포넌트로부터 정보를 수집하기 때문에 보다 "정보제공이 용이하게" 될 수 있다.
다른 예시적인 특징에 따라서, 색 정보는 이미지 정보를 코딩하는 데에 이용할 수 있는 상당수의 가능한 포맷에 관련된 정보를 운반하는 "저장고(receptacle)"를 제공하도록 의도된다. 따라서, CI 데이터 구조는 보편적인 인터페이스의 한 종류로서 보일 수 있어, 비디오 파이프라인이 임의의 종류의 이미지 정보를 수신하고 CI 데이터 구조에 의해 운반된 색 정보를 해석함으로서 올바르게 이 정보를 처리할 수 있도록 한다.
다른 예시적인 특징에 따라서, CI 데이터 구조는 특히 효과적인 스킴을 이용하여 소량의 비트의 정보로 다른 포맷 표준에 관련된 매우 다양한 정보를 묶는(pack)다. 한 예시적인 경우에서, 데이터 구조는 소량의 단어(예를 들면, 16-비트 구조, 24-비트 구조, 등)로 매우 다양한 색정보를 묶는다.
다른 예시적인 특징에 따라서, 시스템은 비디오 파이프라인에 이용되는 하나 이상의 기존의 데이터 구조에 제공되는 이용하지 않은 필드를 채용함으로써 CI 데이터 구조를 운반할 수 있다. 이는 이러한 기존의 데이터 구조를 이용하는 시스템이 시스템의 값비싸고 복잡한 개편 없이 색 정보를 활용하도록 한다. 또한, 이들 시스템이 CI 데이터 구조를 처리하도록 구성되지 않았지만, 그럼에도 불구하고 이 러한 시스템으로 피드되는 입력 정보에 이 구조가 나타난다면, 이들 시스템은 시스템을 "망가뜨리지" 않고 CI 데이터 구조를 안전하기 무시할 수 있다.
다른 예시적인 특징에 따라서, 휘도-관련 색 공간(예를 들면, Y'Cb'Cr) 내의 비월주사된 이미지 정보는 선형이고 순차적인 RGB 색 공간으로 변환될 수 있다. 그 다음 (리스케일링 등과 같은) 다양한 처리가 선형/순차적인 RGB 색 공간 내의 이미지 정보 상에서 수행될 수 있다. 그 다음 이미지 정보는 출력(예를 들면, 텔레비전에 디스플레이)하기 위하여 휘도-관련 색 공간(예를 들면, Y'Pb'Pr')으로 다시 변환될 수 있다. 선형/순차적인 RGB 색 공간 내의 휘도-관련 정보(104)의 처리는, 상기 요약된 방식으로 처리하기 위하여 이미지 정보(104)를 임시 선형 RGB 색 공간으로 변환시키지 않는, 다른 접근법과는 구별된다.
또 다른 특징 및 추가적인 이점은 이하의 상세한 설명에서 상세히 기술된다.
용어에 관련하여, 용어 "이미지 정보"는 임의의 가시적인 형태로 사용자에 의해 소비될 수 있는 임의의 종류의 정보를 포함하는 것으로 의도된다. 이미지 정보는 아날로그 포맷, 디지털 포맷, 또는 디지털과 아날로그 포맷의 조합과 같은, 임의의 포맷으로 표현된 정보를 나타낼 수 있다. 이미지 정보는 정지 이미지 정보(예를 들면, 디지털 사진) 및/또는 움직이는 정보(예를 들면, 비디오 정보)를 나타낼 수 있다. 또 다른 변형물이 용어 이미지 정보의 이용에 의해 고려된다.
용어 "색 정보"는 이미지 정보의 색 성분량을 기술하는 임의의 정보를 나타낸다. 예를 들면, 이미지 정보가 규정된 포맷으로 색 성분량을 표현하는 곳에서, 색 정보는 그 포맷에 속하는 정보를 운반할 수 있다. 용어 "색 정보 데이터 구조 (CI 데이터 구조)"는 색 정보가 비디오 파이프라인 내에서 코딩되고 운반될 수 있는 방식을 칭한다.
용어 "비디오 파이프라인"은 이미지 정보를 처리하는 임의의 기능을 칭한다. 파이프라인은 순차주사 방식, 즉, 차례대로, 이미지 정보 상에서 동작하는 적어도 2개의 기능적 컴포넌트를 포함한다.
본 개시물은 이하의 섹션들을 포함한다. 섹션 A는 예시적인 색 정보 데이터 구조 및 이 구조가 비디오 파이프라인 내에서 이용하는 방식의 개관을 기술한다. 섹션 B는 섹션 A의 비디오 파이프라인 내에서 수행될 수 있는 예시적인 변환 동작을 기술한다. 섹션 C는 섹션 A에 정의된 색 정보 데이터 구조의 예시적인 복합물을 기술한다. 섹션 D는 섹션 A-C에서 설명한 원리들을 실시하는 비디오 파이프라인의 한 특정 예시적인 구현을 기술한다. 섹션 E는 섹션 A-D에서 기술된 특징의 양태들을 구현하는 예시적인 컴퓨터 환경을 기술한다.
일반적으로, 이 내용의 구조적인 양태로서, 본 명세서에서 기술된 임의의 기능들은 소프트웨어, 펌웨어(예를 들면, 고정된 논리 회로), 수동 처리, 또는 이들 구현의 조합을 이용하여 구현될 수 있다. 본 명세서에서 이용되는 용어 "모듈", "기능" 및 "논리"는 일반적으로 소프트웨어, 펌웨어, 또는 소프트웨어와 펌웨어의 조합을 나타낸다. 소프트웨어 구현의 경우에서, 용어 모듈, 기능, 또는 로직은 프로세싱 장치 또는 장치들(예를 들면, CPU 또는 CPU들) 상에서 실행될 때 특정된 태스크를 수행하는 프로그램 코드를 나타낸다. 프로그램 코드는 하나 이상의 고정된 및/또는 이동형(removable) 컴퓨터 판독가능 메모리 장치에 저장될 수 있다.
이 내용의 절차적인 양태에서는, 특정 순서로 수행되는 개별적인 단계들로 구성된 특정 동작이 기술된다. 이러한 구현은 예시적이며 제한적이지 않는다. 본 명세서에 기술된 특정 단계들이 함께 그루핑되어 하나의 동작으로 수행될 수 있고, 특정 단계들은 이 개시물에서 설명한 예에서 채용된 순서와는 다른 순서로 수행될 수 있다.
A. 예시적인 색 정보(CI) 데이터 구조 및 그 적용의 개관
도 2는 색 정보(CI) 데이터 구조(202)를 채용하는 비디오 프로세싱 파이프라인(200)의 예시적인 개관을 도시한다. CI 데이터 구조(202)는 이미지 정보(204) 내의 색을 표현하는 데에 이용되는 포맷팅을 기술하고/거나 이미지 정보(204)가 파이프라인(200)에 의해 순차적으로 처리되어야 하는 방식을 기술하는 정보를 포함한다. CI 데이터 구조(202)는 다수의 다른 색 코딩 포맷에 관련하는 색 정보를 수신하는 균일한 "저장고"를 제공한다. 그러므로 CI 데이터 구조(202)는 한 종류의보편적인 인터페이스를 정의하여, 변칙에-자유로운 방식으로 파이프라인(200)이 성공적으로 처리할 수 있는 이미지 정보의 유형들을 확장한다. 다른 유리한 특징에 따라서, 비디오 파이프라인 내의 모든 기능적인 컴포넌트는 CI 데이터 구조(202)로부터 드로잉 수 있고 잠재적으로 이 컴포넌트에 이들 컴포넌트가 추론할 수 있는 이미지 정보(204)에 속하는 새로운 정보로 보충할 수 있다.
비디오 파이프라인(200) 자체는 입력 단계(206), 처리 단계(208), 및 출력 단계(210)를 포함하는, 일련의 처리 단계를 포함한다. 입력 단계(206)에서, 입력 소스(212)는 입력 정보(204)의 임의의 소스를 나타낸다. 소스(212)는 일반적으로 (예를 들면, 카메라 또는 스캐너에 의해 생성된) 새롭게 캡춰된 이미지 정보, 또는, 예를 들면 브로드캐스트(broadcast) 전송(예를 들면, 위성 또는 케이블 전송 등)를 통해, (TCP/IP 디지털 네트워크, 예를 들면, 인터넷 등의) 임의의 종류의 네트워크를 통해, 이미지 정보의 (비디오 디스크, 로컬 데이터베이스 등의) 로컬 저장소 등을 통해 수신된, 몇몇의 라우터를 통해 입력 단계(206)에 나타나는 이전에 캡춰된 이미지 정보를 포함할 수 있다. 입력 처리 기능(214)은 이미지 정보(204) 상에서 임의의 종류의 전처리를 수행하도록 구성되는데, 이는 입력 소스(212)의 특성에 따라(예를 들면, 입력 정보(204)가 새롭게 캡춰되었는지 또는 이전에-캡춰된 정보의 몇몇의 소스로부터의 입력인지에 따라) 달라질 수 있다 이전에 캡춰/저장된 정보를 입력한 경우에서, 처리는 수신된 신호 내의 오디오 정보로부터 이미지 정보를 분리시키는 것, 입력 정보를 압축해제 시키는 것, 등을 포함할 수 있다. 처리 단계(208)에서, 처리 기능(216)은 캡춰된 이미지 정보(204) 상에서, 비디오 정보의 복수의 스트림을 복합 신호로 섞는 것, 캡춰된 이미지 정보(204) 상에서 색 공간 변환을 수행하는 것, 등과 같은, 임의의 종류의 처리를 수행하도록 구성된다. 출력 단계(210)에서와 같이, 출력 처리 기능(218)은 이미지 정보(204)의 임의의 처리를, 그 정보를 출력 장치(220)에 출력하기 위한 준비로 수행하도록 구성된다. 출력 장치는 텔레비전, 컴퓨터 모니터, (원격 또는 로컬) 저장 장치, 임의의 네트워크-액세스가능한 대상 위치 등이 나타날 수 있다. 각각의 기능적 컴포넌트(214, 216, 218)는 속하는 태스크를 수행하는 하나의 장치, 또는 순차적이거나 병렬적인 방식으로 함께 연결되는 복수의 장치로서 물리적으로 구현될 수 있다. 한 경우에 서, 파이프라인(200) 내의 컴포넌트는 동적으로 구성된 로직 모듈(예를 들면, 소프트웨어 모듈)에 대응할 수 있다.
각각의 기능적 컴포넌트(214, 216, 218)는 CI 데이터 구조(202)를 처리하도록 구성된 각각의 기능(222, 224, 226)을 포함한다. 이 기능(222, 224, 226)은, CI 데이터 구조(202) 내의 정보를 판독하고 CI 데이터 구조(202) 내의 정보를 해석하고, CI 데이터 구조(202) 내의 해석된 정보를 이미지 정보(204)의 처리에 적용시키는 로직을 포함할 수 있다. 기능(222, 224, 226)은 이미지 정보(204)에 이용되는 색 포맷팅에 속하는 추가적인 기능을 추론하고, CI 데이터 구조(202)에 이 추론된 정보를 적용하여 CI 데이터 구조(202)에 이전에 알려진 필드를 채우는 로직 또한 포함할 수 있다. 예를 들면, 기능(222, 224, 226)은 이용되고 있는 특정 포맷을 결정할 수 있다. 이에 기초하여, 이 기능은 (예를 들면, 소정의 룩업 테이블을 액세스함으로써) 표준이 특정 코딩 특징들을 갖는다고 추론할 수 있다. 그 다음 기능(222, 224, 226)은 이들 추론된 특징에 관련하는 정보를 제공하여 CI 데이터 구조(202)의 이전에 알려진 필드를 채울 수 있다. 보다 상세히 기술하자면, 일 구현에서, 파이프라인(200) 내의 컴포넌트는 0과 같은, 규정된 값으로 CI 데이터 구조(202) 내의 알려진 값을 자동적으로 설정할 수 있다. 이 행위는 CI 데이터 구조를 초기화하는 것을 포함한다. 후속 컴포넌트가 0으로 설정되었던 이들 값에 의해서 CI 데이터 구조의 특정 값의 알려지지 않은 특징으로 교체된다. 그 다음 이들 컴포넌트는 가능한 경우 상실된 값을 제공하는 것이 면제된다. 화살표(228)는 일반적으로 기능(222, 224, 226)이 CI 데이터 구조(202)로부터 정보를 끌어올 수 있 음을 나타낸다. 화살표(230)는 일반적으로 기능(222, 224, 226)이 CI 데이터 구조(202)에 추가될 수 있음을 나타낸다. 도 2는 기능적인 컴포넌트(214)가 CI 데이터 구조(20)와 대화하는 것을 특별히 도시한다. 상술한 바와 같이, 이 동일한 CI 데이터 구조(202)는 비디오 파이프라인(200) 아래에서 지나가므로, 임의의 다른 기능적인 컴포넌트(214, 216, 218)가 지시된 방식으로 CI 데이터 구조(202)와 대화할 수 있다.
다른 기능적 컴포넌트(214, 216, 218)는 속한 처리 단계(206, 208, 210), 특정 애플리케이션의 상세, 처리되는 색 포맷 등과 같은 복수의 요소에 따라 다르게 CI 데이터 구조(202)를 처리할 수 있다.
예를 들면, 소스(212) 및 입력 처리 기능(214)에 와 관련된 기능(222)은 수신된 이미지 정보(104)에 이용되는 포맷 표준에 속하는 정보를 결정하고 파이프라인(200)의 다운스트림 컴포넌트에 의해 이용되기 위하여 이러한 정보를 CI 데이터 구조(202)에 적용시키는 수단적인 역할을 수행할 수 있다. 일반적인 규칙으로서, 새로운 캡춰의 경우에서, 캡춰 장치는 통상적으로 이 장치가 산출하는 이미지 정보에 적용되는 포맷팅을 함축적으로 "알고 있을" 것이다. 한편, 몇몇의 다른 소스에 의해 생성되는 이미지 정보를 수신하는 장치는 수신된 이미지 정보와 관련된 임의의 포맷 관련 정보를 조사하거나, 논리적이고 신뢰성있는 추측을 함으로써 이미지 정보에 적용되는 색 포맷팅을 결정할 수 있다. 특정 예는 이하에 기술된다. 예를 들면, 아날로그 캡춰 장치는 일반적으로 이 장치가 캡춰하는 데이터에 관련되는 비디오 표준 및 색 공간을 알고 있다. 다른 예에서, DVD 네비게이터는 NTSE 내용을 가지고 DVD를 파싱한다는 사실에 의해서 이 장치가 처리되고 있는 이미지 정보(204)의 색 공간을 알고 있다. 다른 예에서, MPEG-2 예시적인 비디오 스트림을 수신하는 임의의 캡춰 장치는 MPEG-2가 명시적으로 자신의 시퀀스 디스플레이 확장 해더(예를 들면, 해더는 프라이머리들, 전달 함수, 및 이미지 정보(204)와 관련된 전달 행렬을 지정한다) 내에 색 정보를 리스팅하기 때문에 이용되고 있는 포맷팅의 특정 속성을 추론할 수 있다. 다른 예에서, HD 디지털 튜너(tuner)는 709 색 공간 내의 HD 데이터를 스트리밍하는 것 등을 알아야 한다. 모든 이들 경우에서, 기능(222)은 이 기능이 파이프라인(200) 내의 다운스트림 기능적 컴포넌트에 의해 사용되기 위하여 CI 데이터 구조(202)에 채용되는 색 포맷팅에 대하여 "이미 알고 있는" 정보를 적용시킬 수 있다. 알려진 시스템에서, 이 정보는 즉시 버려졌으므로, 상실되었다.
파이프라인(200) 내의 색 정보 변환기는 CI 데이터 구조(202)를 이용하여 정확한 변환 연산이 수신된 이미지 정보(204) 상에 수행됨을 보장할 수 있다. 다시 말하면, 예를 들어, 색 정보 변환기는 CI 데이터 구조(202)로부터 수집된 정보를 이용하여 이 변환기가 적용할 변환 알고리즘을 결정하거나, 이 알고리즘에 이용될 설정치/파라미터 등을 결정할 수 있다.
파이프라인(200) 내의 복합기는 다른 유형들의 이미지 정보를 함께 복합하려는 목적으로 작용하는데, 여기서 이러한 정보는 서로 다른 색 포맷을 이용하여 잠재적으로 표현된다. 예를 들면, 한 애플리케이션은 그래픽 정보 등을 겹쳐놓음으로써 디지털 사진을 결합하고자 할 수 있다. 파이프라인(200)은 CI 데이터 구조 (202)에 제공되는 향상된 포맷 정보를 이용하여 결합되고 있는 모든 정보가 공통적인 포맷(예를 들면, 공통적인 색 공간)을 가짐을 보장할 수 있다. 이러한 동작은 정보가 복합기, 예를 들면, (파이프라인의 복합기에 관련된) 업스트림 컴포넌트에 의해 수신되기 이전에 수행될 수 있다.
또는 이러한 동작은 그래픽 프로세싱 하드웨어에 할당될 수 있다. 그래픽 프로세싱 하드웨어는, 예를 들면, (도 13을 참조하여 이하 기술될 바와 같이) 비디오 프로세싱 카드 등에 의해 제공되는 하나 이상의 그래픽 프로세싱 유닛(GPU)을 포함할 수 있다. 이러한 경우에서, 결합될 정보에 관련된 CI 데이터 구조(202)는 그래픽 프로세싱 하드웨어에게 파이프라인 아래에서 전달될 수 있으며, 이는 그 다음 CI 데이터 구조(202)를 이용하여 이미지 정보를, 다음에 정보가 결합될 수 있는 공통 포맷으로 변환시킬 수 있다. 이 구현에서, CI 데이터 구조(202)에 제공된 추가적인 색 정보에 의해서, 비디오 파이프라인 내의 드라이버는 색 공간 또는 채도 스킴이 의도하였던 추측을 더이상 할 필요가 없어서, 드라이버(또는 그래픽 프로세싱 하드웨어)가 올바르게 추측하고 낮은 출력 결과를 산출할 가능성이 줄어든다.
요약하면, 도 2의 블럭의 하단의 행은 비디오 파이프라인(200)에 적용함으로써 CI 데이터 구조(202)의 이용의 예시적인 이점을 요약한다. 블럭(232)은 CI데이터 구조(202)가 파이프라인(200)을 통하여 아래쪽으로 전달되는 균일한 구조를 가짐을 나타낸다. 블럭(234)은 파이프라인(200) 내의 각 기능적 컴포넌트(214, 216, 218)가 CI 데이터 구조(202)로부터 정보를 드로잉하고 CI 데이터 구조(202)에서 알려지지 않은 필드에 값을 공급할 수 있음을 나타낸다. 이는, 알려진 시스템에 비 하여, 기능적인 컴포넌트(214, 216, 216)가 이미지 정보(204)를 처리하는 데에 수행될 필요있는 부적절한 추측의 량을 줄이거나 제거할 수 있다. 블럭(236)은 이러한 전략의 최종 결과가 향상된 품질로 색을 재현하는 결과를 낳을 수 있음을 나타낸다. 즉, 몇몇의 부정확한 추측을 줄임으로써, 낮은 대비를 가지는 이미지, 부자연스럽게 보이는 색을 가지는 이미지, 다양한 왜곡(예를 들면, 움직임 인공현상, 클리핑, 등)을 가지는 이미지 등과 같은 비디오 파이프라인(200)이 다양한 변칙을 가지는 출력 정보를 제공할 가능성이 줄어든다.
(이하의) 섹션 D에 보다 상세하게 기술될 다른 이점에 따르면, 비디오 파이프라인(200)은 기존의 데이터 구조를 이용하여 CI 데이터 구조(202)를 변환할 수 있다. 예를 들면, CI 데이터 구조(202)는 파이프라인(200)을 통해 정보를 전송하는 데에 이용되는 기존의 데이터의 사용되지 않은 필드(또는 필드들)에 "상주"할 수 있다. 사용되지 않은 필드가 CI 데이터 구조(202)를 포함하는지 포함하지 않는지(또는 이 필드가 의미없거나, 특정되지 않는 정보, 또는 0의 시리즈와 같은 디폴트일 수 있는 정보를 포함하는지) 여부에 대한 플래그가 신호에게 제공될 수 있다. 이 대책은 적어도 2개의 이점을 가진다. 첫째, 기존의 사이즈의 기존의 필드의 사용은 기존의 기능적 컴포넌트(214, 216, 218)가 새로운 CI 데이터 구조(202)의 사용을 수용하기 위하여 완전히 새로 설계되어야 할 필요가 없음을 의미한다. 또한, CI 데이터 구조(202)를 이해하거나 해석하는 기능을 구비하지 않을 수 있는 이들 기능적 컴포넌트(214, 216, 218)가 이러한 정보를 처리할 필요가 없다. 다시 말하면, CI 데이터 구조(202)를 이해하지 않는 컴포넌트는 단순히 이 구조에 의해 영향 받지 않는다. 동시에, 색 정보가 제공되는 신중한 성질은 이들 컴포넌트가 파이프라인(200)을 따라서 색 정보를 자동적으로 전달하게 한다. 다시 말하면, 색 정보는 기존의 데이터 필드에 존재하기 때문에 통상적으로 상실되지 않는다. 이는, 색 정보를 이용하도록 구성될 수 있는 다운스트림 컴포넌트가 이러한 CI를-인식할 수 없는 업스트림 컴포넌트로부터 손상되지 않은 이러한 색 정보를 수신하도록 한다.
상술된 논의는 이미지 정보(204)가, CI 데이터 구조(202)의 색 정보에 기초하여 디스플레이 장치에 즉시 디스플레이 될 것이라고 가정하였다. 그러나, CI 데이터 구조(202)는 또한 이미지 정보(204)에 관련된 색 정보를 묶는 효과적인 기법을 제공하므로 이미지 정보(204)를 저장하는 데에 문서적인 기법으로서 이용되고 공간-효율적인 방식으로 CI 데이터 구조(202)와 관련될 수 있다(반면에 이미지 정보(204)에 적용되는 포맷팅에 관련된 대량의 정보를 여전히 보유한다).
보다 상세히는, 컴포넌트는 이미지 정보(204)를 가지는 CI 정보(202)를 자동적으로 저장하도록 구성될 수 있다. 이후에 이미지 정보(204)가 검색될 때, CI 정보(202)를 포함하는 예약된 필드는 묶음 해지되고 파이프라인(200)으로 전달되어, 다운스트림 컴포넌트의 이점을 위하여 이미지 정보(204)의 색 구조에 관련된 많은 량의 정보를 보존한다.
또한, 상술된 논의는 파이프라인(200)의 컴포넌트들이 파이프라인 내의 다운스트림 컴포넌트들 만의 이점을 위하여 상실된 색 정보를 제공할 수 있다고 가정한다. 그러나, 파이프라인의 컴포넌트는 후속 이미지 정보의 처리에서 업스트림 컴포넌트에 의한 이용을 위하여 색 정보를 제공할 수 있다. 예를 들면, 비디오 파이 프라인이 알려져있지 않은 비디오 소스로부터 무비를 처리하고 나타내는 태스크에 적용되는 경우를 생각하자. 파이프라인 내의 초기 컴포넌트 중 하나는 이 비디오 정보에 적용되는 포맷팅의 특정 특징을 결정할 수 없을 수 있어서, 최적의 방식으로 이 정보를 처리하는 것이 초기에 실패할 가능성이 있을 수 있다. 그러나, 파이프라인의 추후의 컴포넌트는 알려진 비디오 소스에 의하여 비디오 정보에 적용되었던 포맷팅을 순차적으로 추론할 수 있다. 이들 다운스트림 컴포넌트는 이 컴포넌트에게 동일한 소스로부터 수신한 후속 신호가 규정된 포맷을 가진다고 알려주는 업스트림 컴포넌트와 통신할 수 있다. 그 다음 업스트림 컴포넌트는 보다 에러가-없는 방식으로 비디오 정보를 처리할 수 있다.
또한, 용어 "다운스트림"은 시스템 내의 동작의 고정된 순서를 나타낼 필요가 없다. 일반적으로, 파이프라인은 동적인 방식으로 작성되어 다른 기능적인 컴포넌트를 함께 스트링화함으로써 이미지 정보(204) 상의 소정의 동작들을 제공할 수 있따. 이와 관련하여, 색 정보는 컴포넌트들 간의 협상에 이용되는 매체 타입 데이터 구조에 제공될 수 있다. 파이프라인이 처음에 "출력 끝"으로부터 작성된다면, 색 정보는 컴포넌트가 접속되는 "후향"으로 흐를 수 있다.
도 3은 흐름도 형태로 도 2의 파이프라인(200)의 동작을 기술한다. 단계(302)는 초기에 하나 이상의 소스(212)로부터 이미지 정보(204)를 캡춰링/입력 하게 한다. 단계(304)는 CI 데이터 구조(202)로부터 수집된 색 정보에 따른, 파이프라인(200)의 적절한 기능적 컴포넌트(214, 216, 218)에 의해, 이미지 정보(204)의 처리를 하게 한다. 단계(306)는, 파이프라인(200)의 적절한 컴포넌트(214, 216, 218)에 의해 추론된 바와 같이 비디오 파이프라인(200)의 다운스트림 컴포넌트에 의한 사용을 위하여 선택적으로 색 정보를 CI 데이터 구조(202)에 공급하도록 한다. 예를 들면, 단계(304) 및 단계(306)는 흐름도에 의해 정의된 루프의 제1 순환에서 입력 단계(206)에 의해 수행된 처리에 대응한다. 단계(308)는 단계(304) 및 단계(306)가 비디오 파이프라인(200) 내의 다음 기능적인 컴포넌트(214, 216, 218)에 대해 반복되어야 할지 여부를 판정한다. 도 3의 프로세스는 CI 데이터 구조(202)에 기초하여 출력 장치(예를 들면, 텔레비전, 컴퓨터 모니터, 문서적인 장치, 네트워크 목표 목적지, 등)에 이미지 정보(204)를 이벤트적으로 출력하면서 종료된다.
B. 예시적인 변환 동작
도 4는 도 2의 비디오 파이프라인(200)을 이용하거나 다른 종류의 파이프라인에 관련하여 이미지 정보(204)를 변환하는 변환 동작(400)을 도시한다. 그러므로 도 4는 비디오 파이프라인 내의 색 정보(202)의 이용을 더 확장한다. 도 4에 도시된 다른 특징들은, 색 정보(202)를 이용하지 않더라도, 비디오 처리 분야에서의 발전을 나타낸다. 즉, 개관으로서, 도 4는 휘도-관련 색 정보(예를 들면, Y'Cb'Cr')로 표현되는 이미지 정보를 선형이며 순차적인 RGB 공간으로 변환하고, 그 다음 이 선형이며 순차적인 RGB 데이터 상에서 몇몇의 처리를 수행하는 기법을 도시한다. 이후에, 이 기법은 (휘도-관련 색 공간, 저장 장치, 등에 이미지 정보(204)를 디스플레이하는 텔레비전 장치와 같은) 출력 장치에 출력하기 위하여 이 정보를 휘도-관련 공간(예를 들면, Y'Pb'Pr')으로 다시 변환할 수 있다. 선형/순 차적인 RGB 색 공간에서 휘도-관련 정보(204)를 처리하는 것은, 상기-요약된 방식으로 처리하기 위하여 이미지 정보(204)를 임시 선형 RGB 색 정보로 변환하지 않은), 다른 접근법과 다르다. 선형 RGB 처리는 복수의 이유로 이점을 갖는다. 예를 들면, 선형 RGB 처리는 비선형 RGB 또는 비선형 YUV 색 공간에서 이미지 정보를 처리함으로써 겪을 수 있는 밝기 및 색 시프팅 인공현상을 제거한다.
도 4의 변환 동작은 상술된 변환 단계들을 기술하는 예시적인 일련의 블럭들을 포함한다. 보다 상세히는, 이 도면에서 블럭의 상단의 행은 처리를 위하여 Y'Cb'Cr' 이미지 정보를 규정된 색 공간으로 변환하는 것이 도시된다. 블럭의 하단 행은 (Y'Pb'Pr이 Y'Cb'Cr'의 아날로그 대응부를 정의할 수 있는 경우) 처리된 데이터를 Y'Pb'Pr 데이터로 다시 변환하는 것을 도시한다.
상단 행에서, 블럭(402)은 Y'Cb'Cr' 4:2:0 이미지 정보가 수신되고 Y'Cb'Cr' 4:4:4 이미지 정보로 업샘플링됨을 나타낸다. 4:2:0 표기는 채도 정보(Cb'Cr')가 휘도 정보(Y')에 관련하여 서브샘플링됨을 나타낸다. 도 4에 도시된 블럭(402) 위의 표현적인 샘플은 다른 코딩 전략이 다른 개별적인 방식으로 휘도 샘플에 관련된 채도 샘플을 위치시킬 수 있음을 나타낸다. 업샘플링 동작은 휘도 정보와 동일한 량의 채도 정보를 산출하기 위하여(입력 이미지 정보의 4:4:4 표현을 제공하기 위하여) 채도 정보를 삽입한다.
블럭(404)은 행렬 변환을 Y'Cb'Cr' 4:4:4 이미지 정보에 적용시켜 이 정보를 다른 색 공간, 즉 R'G'B' 색 공간으로 변환시킨다.
블럭(406)은 전달 함수를 비선형 R'G'B' 이미지 정보에 적용시킴으로써 이 정보를 선형 형태로 변환시킨다. 상술한 바와 같이, R'G'B' 이미지 정보와 관련된 프라임 심볼(')은 이 심볼이 비선형 형태임을 나타낸다; 이 프라임이 없는것(RGB)은 보통 (통상적으로 신호가 비선형 정보를 나타내는데 언급된다고 이해되는 곳에서는 프라임을 제거하는 것도 일반적인 경우를 제외하고) 선형 데이터를 나타낸다. 도 4의 블럭(406) 위에 도시된 모델 전달 함수는 채용된 함수의 일반적인 형태를 도시하며, 이 형태는 (도시되지 않은) CRT의 본래의 전달 함수의 일반적인 형태이기도 하다. 이 모델 전달 함수는 자신의 곡선의 V=0인 부분 근처에 선형 테일을 채용할 수 있다고 나타난다.
블럭(408)은 이미지 재스케일링(rescale) 동작을 올바르게 수행하기 위하여 선택적으로 성분량을 비월주사된 형태로부터 순차 포맷으로 변환시키는 성분량 비월주사를 수행한다.
블럭(410)은 선택적으로 선형 RGB 정보의 색 프라이머리들을 변환하여 다른 색 공간 내의 정보를 표현한다. 이 변환은 행렬 정보를 RGB 정보에 적용시켜 비디오 프로세싱 파이프라인 내의 다운스트림 컴포넌트에서 수행되는 처리에 바람직한 프라이머리들 마다 대응하는 색 프라이머리들을 변경시킬 수 있다. 한 예에서, 블럭(410)은 이미지 정보를 한 RGB-관련 색 공간으로부터 다른 RGB-관련 색 공간(예를 들면, scRGB)으로 변환시키는 것을 포함할 수 있다.
블럭(412)은 일반적으로 변환된 색 공간을 가지는 이미지 정보의 임의의 종류의 처리를 표현한다. 이 처리는, 예를 들면, 선형이며, 순차적인 RGB-관련 색 공간 내의 이미지 정보 상에 처리를 수행하는 것을 포함할 수 있다.
도 4의 블럭의 하부 열은 일반적으로 상부 열의 상술한 동작을 역으로 적용시킨 것이다. 즉, 블럭(412)에서의 처리 이후에, 블럭(414)은 선택적으로, RGB 색 공간으로 되돌아가는 등의, 이미지 정보를 다른 색 정보로 변환시킨다. 블럭(416)은 성분량이 비월주사된 형태로 저장되거나 디스플레이 될 필요가 있는 경우에 이 성분량에 동작적인 재비월주사를 적용한다. 블럭(418)은 RGB 이미지 정보를 비선형 형태(R'G'B')로 다시 변환하는 전달 함수를 적용시킨다. 블럭(420)은 R'G'B' 이미지 정보의 색 공간을 이 정보의 채도 성분(Pb'Pr')로부터 이정보의 휘도 성분(Y')을 분리시키는 포맷으로 다시 변경한다. 마지막으로, 블럭(422)은 Y'Pb'Pr' 이미지 정보를 선택적으로 서브샘플링하여 휘도 샘플(Y')의 양에 비하여 채도 샘플(Pb'Pr')의 양이 줄어든다. 즉, 이 블럭(422)은 (매 휘도 샘플 당 채도 샘플이 존재하는) Y'Pb'Pr' 4:4:4 이미지 정보를 (휘도 샘플에 비하여 채도 샘플이 더 적게 존재하는) Y'Pb'Pr' 4:2:0 이미지 정보로 변환시킬 수 있다.
CI 데이터 구조(202)는 도 4와 관련하여 각각의 처리 블럭이 이미지 정보(204)를 처리해야 하는 방식에 관련된 명령어를 제공함으로써 작동하기 시작할 수 있다. 예를 들면, 파이프라인이 휘도-관련 색 정보로부터 RGB-관련 색 정보로 변환되는 방식을 지정하는 색 정보 등이 제공될 수 있다.
C. 색 정보 데이터 구조의 예시적인 복합
도 5는 도 2에 소개된 CI 데이터 구조(202)의 한 예시적인 구현을 도시한다. CI 데이터 구조(202)는 잠재적으로 이미지 정보(204)에 적용될 수 있는 코딩 표준의 다른 양태들을 정의하는 복수의 필드를 포함한다. 도 5에 도시된 필드는 CI 데 이터 구조(202)로 패킹될 수 있는 정보의 타입을 제한하기보다는 표현을 위한 것이다. 다른 구현은 도 5에 도시된 특정 필드가 제거할 수 있거나, 도 5에 도시되지 않은 다른 필드를 추가할 수 있다.
이 세션은 도 5에 도시된 필드의 일반적인 개관을 제공하며, 또한 CI 데이터 구조(202)의 한 예시적인 구현의 상세하게 설명한다.
먼저 제1 필드(502)는 전달 함수 정보를 정의한다. 이 정보는 (비선형) R'G'B' 이미지 정보(204)를 (선형) RGB 정보로(및/또는 RGB 정보를 R'G'B'정보로) 변환하는 방식을 정의하는 데에 이용된다.
제2 필드(504)는 이미지 정보(204)를 인코딩하는 데에 이용되는 색 프라이머리들을 정의한다. 예를 들면, 이 필드(504)는 RGB 이미지 정보(204)에 관련된 RGB 응답 함수를 지정할 수 있다.
제3 필드(506)는 이미지 정보(204)에 어떤 비디오 조명 가정을 적용시킬지를 정의한다. 예를 들면, 필드(506)는 이미지 정보(204)가 (통상적으로 컴퓨터 모니터 상에 표현되는 것을 의도한 정보인 경우) 밝은 사무실 환경의 표현용으로 코딩되었는지, 반대로 (통상적으로 가정 내의 텔레비전 상에 표현되는 것을 의도한 정보인 경우) 흐린 조명 가정 환경용으로 코딩되는지를 지정할 수 있다.
제4 필드(508)는 이미지 정보(204)에 적용될 수 있는 전달 행렬들을 정의한다. 예를 들면, 이들 행렬들은 Y'Cb'Cr 색 공간과 R'G'B' 색 공간 간에 변환되는 방식 등을 정의할 수 있다.
제5 필드(510)는 이미지 정보(204)에 관련된 공칭 범위 정보를 정의한다. 보다 상세히는, 이 필드는 이미지 정보(204)가 기준 검정 레벨 아래의 규정된 토우 룸 및/또는 기준 흰색 레벨 위의 규정된 헤드룸을 제공하는지 여부를 정의한다.
마지막으로, 제6 필드(512)는 채도 정보가 휘도 정보와 연관지어 샘플링되고 위치되는 방식을 정의하는 채도 서브-샘플링 정보를 정의한다.
다른 디코딩 스킴이 도 5에 도시된 6개의 필드를 표현하는 데에 이용될 수 있다. 한 예시적이고 제한적이지-않는 접근법에 따라서, CI 데이터 구조(202)를 표현하기 위하여 비트의 컬렉션이 할당된다. 이 비트의 컬렉션은 소정의 필드 (또는 색 정보를 수신하는 슬롯(slot))를 가지는 규정된 데이터 구조로 배열된다. 한 예시적인 경우에서, CI 데이터 구조(202)를 표현하기 위해 16 비트가 할당될 수 있다. 다른 예시적인 경우에서, CI 데이터 구조(202)를 표현하기 위해 24 비트가 할당될 수 있다. 다른 구현은 또한 16비트보다 적은 비트를 가지는 사이즈, 24 비트보다 많은 비트를 가지는 사이즈 등을 포함하는 다른 CI 데이터 구조 사이즈를 제공한다.
24비트가 사용되는 예시적이며 제한적이지-않은 경우, 필드(502-512)는 아래와 같이 구성될 수 있다. 제1 "enum" (값들의 정수 나열형) VideoTransferFunction이 제1 필드(502)를 표현한는 데에 이용될 수 있다; 이 enum에 5 비트가 할당될 수 있으므로, 24-비트 CI 데이터 구조(202)의 비트 23-19를 차지한다. 제2 enum VideoPrimaries가 제2 필드(504)를 표현하는 데에 이용될 수 있다; 이 enum에 5 비트가 할당될 수 있으므로, CI 데이터 구조(202)의 비트 18-14를 차지한다. 제3 enum VideoLighting이 제3 필드(506)를 표현하는 데에 이용될 수 있다; 이 enum에게 4비트가 할당될 수 있으므로, CI 데이터 구조(202)의 비트 13-10을 차지한다. 제4 enum TransferMatrix가 제4 필드(508)를 표현하는 데에 이용될 수 있다; 이 enum에 3비트가 할당될 수 있으므로 CI 데이터 구조(202)의 비트 9-7을 차지한다. 제5 enum NominalRange가 제5 필드(512)를 표현하는 데에 이용될 수 있다; 이 enum에게 3 비트가 할당될 수 있으므로, CI 데이터 구조(202)의 비트 6-4를 차지한다. 마지막으로, 제6 enum VideoChromaSubsampling이 제6 필드(512)를 표현하는 데에 이용될 수 있다; 이 enum에게 4 비트가 할당될 수 있으므로, CI 데이터 구조(202)의 비트 3-0을 차지한다.
이 섹션의 나머지 영역은 상술한 6개의 enum의 한 예시적인 구현에 관련하는 추가적인 상세를 제공한다. 제공되는 이 상세는 제한적이기보다는 예시적이며 다른 구문을 가지는 다른 데이터 구조가 이용될 수 있다.
- DXVA_VideoTransferFunction
DXVA_VideoTransferFunction enum은 (비선형) R'G'B'로부터 (선형) RGB로의 전달 함수를 나타낸다. 이 함수는 대략 이미지 데이터의 감마 함수와 대응한다. 몇몇의 전달 함수는 8 비트 정수형 양자화 효과를 고려하기 위한 수정 사항을 가진다. 한 예시적인 구현에서, 이 enum을 표현하는 데에 5 비트가 이용될 수 있다(예를 들면, 24 비트 CI 데이터 구조(202)의 비트 23-19).
DXVA_VideoTransferFunction enum의 예시적인 구문은 아래와 같이 기술된다.
Figure 112005035554618-PCT00002
이 enum의 제1 맴버는 이 필드가 알려지지 않았다고 나타낸다. 이 필드는 계산이 진행되기 위해 필요하다면 소정의 값으로 설정될 수 있다.
접미사 "10"에 의해 표기된 맴버는 감마=1.0을 가지는 선형 RGB를 식별한다.
접미사 "18", "20", "22", "28"에 의해 표기된 맴버는, 예를 들면, L=0...1인
Figure 112005035554618-PCT00003
에 대하여 실제 감마 값이 1.0, 2.0, 2.2, 및 2.8임을 나타낸다.
접미사 "22_709"에 의해 표기된 맴버는 표준 BT1361, BT709, SMPTE296M, SMPTE170M, BT470, SMPTE274M 등에 의해 정의된 포맷에 적절한 낮은 범위의 선형 범위를 가지는 감마 2.2 곡선에 속한다.
접미사 "22_240M"에 의해 표기된 맴버는 SMPTE240M, 임시 274M 등에 적절한 낮은 범위의 선형 범위를 가지는 감마 2.2 곡선에 속한다.
접미사 "22_8bit_sRGB"에 의해 표기된 맴버는 정확한 2.2 감마 8-비트 곡선과 일치하는, 낮은 범위의 선형 범위를 가지는 감마 2.4 곡선에 속한다.
도 6은 DXVA_VideoTransferFunction enum에 적절한 예시적인 상세를 더 제공한다.
- DXVA_VideoPrimaries
DXVA_VideoPrimaries enum은 다음에, RGB 기본 함수가 이미지 함수(204)에서 이용되는지를 식별하는 색 프라이머리들을 나열한다. 한 예시적인 실시예에서, 이 enum을 표현하는 데에 5 비트가 이용될 수 있다(예를 들면, 24-비트 CI 데이터 구조(202)의 비트 18-14).
DXVA_VideoPrimaries enum의 예시적인 구문은 다음과 같이 기술된다.
Figure 112005035554618-PCT00004
이 enum의 제1 맴버는 이 필드가 알려지지 않았다고 나타낸다. 이 필드는 계산이 진행되기 위해 필요하다면 소정의 값으로 설정될 수 있다(예를 들면, 표준 BT 709에 지정된 프라이머리들로 디폴트 값이 설정될 수 있다).
접미사 "BT709"을 가지는 맴버는 (표준 sRGB, scRGB 등에 또한 적용될 수 있는) BT709 표준에 관련된 색 프라이머리들을 정의한다.
접미사 "BT470_2_SysM"을 가지는 맴버는 본래의 NTSC 프라이머리들을 정의한다.
접미사 "BT601", "BT470_2_SysBG", "SMPTE240M", 및 "EBU3123"을 가지는 맴버는 이 표준에 관련된 다양한 각각의 프라이머리들을 정의한다.
접미사 "SMPTE170M"을 가지는 맴버는 (현재 자주 이용되고 있지는 않은) 아 날로그 NTSC 프라이머리들을 정의한다.
접미사 "SMPTE_C"를 가지는 맴버는 아날로그 '79 NTSC 프라이머리들을 정의한다.
도 7은 DXVA_VideoPrimaries enum에 적절한 예시적인 상세를 더 제공한다.
- DXVA_VideoLighting
DXVA_VideoLighting enum은 의도된 뷰잉 조명 상태를 기술한다. 이 정보는 다른 조명 조건에서 비교할 수 있는 경험을 생성하기 위하여 감마를 변경시키는 데에도 이용될 수 있다. 한 예시적인 구현에서, 이 enum을 표현하는 데에 4비트가 이용될 수 있다(예를 들면, 24 비트 CI 데이터 구조(202)의 비트 13-10).
DXVA_VideoLighting enum의 예시적인 구분은 다음과 같이 기술된다.
Figure 112005035554618-PCT00005
이 enum의 제1 맴버는 이 필드가 알려지지 않았다고 나타낸다. 이 필드는 계산이 진행되기 위해 필요하다면 소정의 값으로 설정될 수 있다(예를 들면, 흐린 뷰잉 조건이 의도된다고 가정하기 위하여 디폴트 값이 설정될 수 있다).
접미사 "bright"를 가지는 맴버는 외부 조명 상태에 대응할 수 있다.
접미사 "office"를 가지는 맴버는 가정 사무실 조건에 관련된 어두운 밝기 레벨에 대응할 수 있다.
접미사 "dim"을 가지는 맴버는 흐리게 조명되는 뷰잉 조건에 관련된 흐린 밝기 레벨에 대응할 수 있다.
접미사 "dark"를 가지는 맴버는 영화관 뷰잉 조건에 관련된 매체 밝기 레벨에 대응할 수 있다.
- DXVA_VideoTransferMatrix
DXVA_VideoTransferMatrix enum은 이미지 정보(204)를 Y'Cb'Cr' 색 공간으로부터 (스튜디오) R'G'B' 색 공간으로 변환시키는 데에 이용되는 전달 행렬을 기술한다. 한 예시적인 실시예에서, 이 enum을 표현하는 데에 3 비트가 이용될 수 있다(예를 들면, 24-비트 CI 데이터 구조(202)의 비트 9-7).
DXVA_VideoTransferMatrix enum의 예시적인 구문은 다음과 같이 기술된다.
Figure 112005035554618-PCT00006
이 enum의 제1 맴버는 이 필드가 알려지지 않았다고 나타낸다. 이 필드는 계산이 진행되기 위해 필요하다면 소정의 값으로 설정될 수 있다(예를 들면, 표준 화질 이미지 정보(204)를 위한 표준 BT601 및 고화질 이미지 정보(204)를 위한 표준 BT709에 이용되는 전달 행렬 상세로 디폴트 값이 설정될 수 있다).
접미사 "BT709"를 가지는 맴버는 BT709 표준에 지정된 전달 행렬을 정의한다.
접미사 "BT601"을 가지는 맴버는 BT601 표준에 지정된 전달 행렬을 정의한다.
접미사 "SMPTE240M"을 가지는 맴버는 (오늘날 일반적으로는 잘 사용되지 않는 고화질 표준인) SMPTE240M 표준에 지정된 전달 행렬을 정의한다.
도 8 및 9는 DXVA_VideoTransferMatrix enum에 적절한 예시적인 상세를 더 제공한다.
- DXVA_NominalRange
DXVA_NominalRange enum은 데이터가 헤드 룸(기준 1.0 흰색보다 큰 값) 및 토우 룸(기준 0.0 검정보다 작은 "수퍼검정")을 포함할지 여부를 기술한다. 예를 들면, 이미지 정보(204)의 적절한 해석을 보장하기 위하여, 넓은 가뭇 R'G'B'(16, 16, 16에서는 검은점, 235, 235, 235에는 흰점)와 정규 sRGB를 구분시키는 것은 유용하다. 한 예시적인 구현에서, 이 enum울 표현하는 데에 3비트가 이용된다(예를 들면, 24 비트 CI 데이터 구조(202)의 비트 6-4).
DXVA_NominalRange enum의 예시적인 구문은 다음과 같이 기술된다.
Figure 112005035554618-PCT00007
이 enum의 제1 맴버는 이 필드가 알려지지 않았다고 나타낸다. 이 필드는 계산이 진행되기 위해 필요하다면 소정의 값으로 설정될 수 있다.
접미사 "Normal"을 가지는 맴버는 0...255(8비트) 또는 0...1023(10비트) 이미지 정보(204)로 매핑시키는 정규화된 채도[0...1]를 정의한다.
접미사 "Wide"를 가지는 맴버는 16...235(8비트) 또는 64...940(10비트)로 매핑시키는 정규화된 채도[0...1]를 정의한다.
- DXVA_VideoChromaSubsampling
DXVA_VideoChromaSubsampling enum은 Y'Cb'Cr' 데이터에 적용되는 채도 인코딩 스킴을 기술한다. "코싸이트" 변형물은 채도 샘플들이 휘도 샘플을 가지고 정렬됨을 나타낸다. 4:2:0 데이터는 통상적으로 휘도 데이터를 가지는 하나 이상의 방향으로 정렬된 채도를 가진다. 4:4:4, 4:2:2 및 4:1:1 데이터는 두 방향 모두로 코싸이트된다. 한 예시적인 구현에서, 이 enum을 표현하는 데에 3 비트가 이용될 수 있다(예를 들면, 24-비트 CI 데이터 구조(202)의 비트 3-0).
DXVA_VideoChromaSubsampling enum의 예시적인 구문은 다음과 같이 기술된다.
Figure 112005035554618-PCT00008
이 enum의 제1 맴버는 이 필드가 알려지지 않았다고 나타낸다. 이 필드는 계산이 진행되기 위해 필요하다면 소정의 값으로 설정될 수 있다.
접미사 "ProgressiveChroma"를 가지는 맴버는 일시적으로 순차적인 성분량으로서 해석되는 채도 샘플들을 정의한다(예를 들면, 2개의 일시적인 오프셋 필드로부터가 아닌, 동일한 프레임으로부터).
접미사 "Horizontally_Cosited"를 가지는 맴버는 휘도 샘플의 배수에서 수평으로 정렬된 채도 샘플들을 정의한다.
접미사 "Vertically_Cosited"를 가지는 맴버는 휘도 샘플의 배수에서 수직으 로 정렬된 채도 샘플들을 정의한다.
접미사 "AlignedChromaPlanes"을 가지는 맴버는 동일한 양상의 정렬을 가지는 Pb 및 Pr(또는 Cb 및 Cr) 평면을 정의한다. 이 플래그는 데이터가 수직으로 코싸이트된다면 0이다.
도 10 내지 12는 DXVA_VideoChromaSubsampling enum에 적절한 예시적인 상세를 더 제공한다. 즉, 이들 도면은 통상적으로 Y'Cb'Cr' 이미지 정보(204) 내의 휘도 샘플과 관련된 채도 샘플의 위치의 요약을 제공한다.
D. 색 정보 데이터 구조의 한 예시적인 적용
이전의 세션에서 기술된 코딩 전략의 많은 적용법이 존재한다. 도 13 내지 16은 DeinterlaceBltEx라 칭하는 애플리케이션 프로그래밍 인터페이스(API)를 이용하는 예시적인 적용을 도시한다.
개관으로서, DeinterlaceBltEx 기능은 복수의 동작이 하나의 동작으로 함께 수행하게 하여, 복합된 동작이 비월주사된 동작과 함께 수행되도록 하는 로직을 제공한다. 복합된 동작은 이미지 서브-스트림 정보를 가지는 주요 이미지 스트림 정보의 조합을 칭한다. 이미지 스트림 정보는 일련의 이미지 프레임의 주된 (또는 주요한) 이미지 프레임을 칭한다. 이미지 서브-스트림 정보는 주요 이미지 스트림 정보의 이미지 프레임과 함께 나타날 수 있는 보조 이미지 정보를 칭한다. 한 예에서, 이미지 서브-스트림 정보는 근접한-캡셔닝 데이터에 대응할 수 있다. 근접한-캡셔닝 정보는 주요 이미지 스트림 정보와 결합되어 디스플레이를 위하여 복합 이미지 정보를 형성한다. 비비월주사된 동작은 비월주사 동작에서 생성되었던 연 속적인 이미지 필드를 합성하여 이미지 프레임의 순차적인(비비월주사) 표현을 제공하는 기법을 칭한다. DeinterlaceBltEx 기능은 또한 다른 종류의 동작들이 동시에 수행될 수 있도록 한다. (대안으로, 상기 식별된 동작을 일련으로 수행하도록 구성된, 소위 DeinterlaceBlt 기능이 이용될 수 있다.)
한 예시적인 실시예에서, DeinterlaceBltEx 기능은 CI 데이터 구조(202)를 전달하는 데에 이용될 수 있는 이용되지 않은 영역 (또는 부분적으로 이용되지 않은 영역)을 가지는 데이터 구조를 제공한다. 즉, 한 예시적이고 제한적이지-않은 구현에서, 이 부분은 32 비트 워드를 정의할 수 있다. 이 워드의 24 비트 영역은 도 5에 도시된 정보의 6개의 필드를 전달하는 데에 이용될 수 있다. 기존의 구조의 다른 부분(예를 들면, 나머지 8 비트)은, 이미지 정보(204)가 비월주사된 포맷으로 코딩될지 순차 포맷으로 코딩될지 등과 같이, 이미지 정보(204)의 다른 양태들을 전달하는 데에 이용될 수 있다.
보다 상세히 기술하자면, 색 정보는 DeinterlaceBltEx 동작에 관련되는 방대한 규칙을 서비스할 수 있다. 색 공간 처리의 이슈에서, CI 데이터 구조(202)에 지정된 색 정보는 (a) (존재한다면) DeinterlaceBltEx 기능에 제공될 입력 이미지 정보 상에 수행될 색 공간 변환(들), (b)이미지 정보 상에서 다양한 처리 태스크를 수행하는 데 이용될 색 공간, 및 (c) 출력 이미지 정보를 제공하는 데에 이용될 색 공간등을 지정할 수 있다. 이들 태스크를 위하여 선택될 수 있는 가능한 색 공간은 임의의 종류의 RGB-관련 색 공간, 임의의 종류의 휘도-관련 색 공간(예를 들면, YUV) 등을 포함할 수 있다. 또한, 가능한 색 공간은 선형 형태로 또는 비선형(예 를 들면, 감마-보상된) 형태가 될 수 있다.
예를 들면, 한 시나리오에서, 하나 이상의 이미지 정보 스트림은 휘도-관련 색 공간에서 선형-RGB 색 공간으로 변환된다. 그 다음 특정 동작이 선형 RGB-관련 색 공간 내의 이미지 정보 상에서 수행되어, 선형 RGB-관련 색 공간 내의 출력을 또한 제공할 수 있다. 그러므로, 이 일련의 동작은 (상술한) 도 4에 도시된 기법을 구현할 수 있다. 다른 시나리오에서, 하나 이상의 이미지 정보 스트림이 휘도-관련 색 공간에서 수신되고 처리되어, 휘도-관련 색 공간 내의 출력을 또한 제공할 수 있다. 다른 시나리오에서, 하나 이상의 이미지 정보 스트림은 한 종류의 RGB-관련 색 공간으로부터 다른 종류의 RGB 색 공간으로 변환될 수 있거나, 한 종류의 휘도-관련 색 공간으로부터 다른 종류의 휘도-관련 색 공간으로 변환될 수 있다. 이들은 단지 DeinterlaceBltEx 기능이 이용할 수 있도록 만들어진 매우 다양한 프로세싱 선택사항의 예시적인 예이다. 임의의 이들 경우에서, CI 데이터 구조(202) 내의 색 정보는 DeinterlaceBltEx 기능에 의해 적용되는 색 공간 선택을 제어하는 명령어들을 제공할 수 있다.
또한, DeinterlaceBltEx 기능의 고유한 기능들은 색 공간 변환이 (비월주사 및 복합과 같은) 이미지 정보 상에 수행되는 다른 동작과 동일한 동작으로 수행될 수 있도록 한다. 예를 들면, 색 정보는 이 이미지 정보가 비디오 서브스트림과 비월주사되고 복합되기 때문에 동일한 동작으로 휘도-관련 색 공간으로부터 RGB-관련 색 공간으로 변환될 수 있다. 대안으로, 이미지 정보 상에 수행되는 특정 동작은 순차적으로 수행될 수도 있다. 예를 들면, 이하 완전히 기술될 일 예에서, 비월주 사 및 복합은 YUV 색 공간 내의 단일한 동작에서 수행될 수 있고, 그 이후에 출력 결과를 RGB-관련 색 공간으로 변환한다.
마지막으로 소개할 언급으로서, DeinterlaceBltEx 기능은 다른 색 공간으로 표현되는 (하나 이상의 주요 비디오 스트림 및/또는 하나 이상의 비디오 서브스트림과 같은) 분리된 이미지 정보 스트림 상에서 활동할 수 있다. 이미지 정보 스트림은 그 관련된 자신만의 CI 데이터 구조(202)를 가질 수 있다. CI 데이터 구조(202)는 (비월주사, 복합, 등과 같은) 동작이 개별적인 스트림 상에서 수행되기 위하여 개별적인 스트림이 일반적인 색 공간으로 변환될 수 있는 방법을 정의하는 정보를 포함할 수 있다.
상술한 도입부와 함께, 도 13은 도 2에 도시된 비디오 파이프라인(200)의 양태들을 구현하는 데에 이용될 수 있는 예시적인 시스템(1300)의 개관을 도시한다. 시스템(1300)은 워싱턴주, 레드몬드 소재의 마이크로소프트®사가 제조한 DirectX®군의 기술들에 의존할 수 있다. DirectX군은 DirectX Video Acceleration(DirectX-VA), Direct3D, DirectDraw, 등을 포함한다. 그러나, 상술된 원리들은 다른 종류의 기술적 플랫폼 상에 실행되는 다른 종류의 렌더링 기술들을 이용하여 수행될 수 있다. 시스템(1300)은 퍼스널 컴퓨터, (마이크로소프트®사의 XboxTM 게이밍 콘솔과 같은) 게임 콘솔, 또는 임의의 다른 종류의 장치를 나타낼 수 있다.
처음에는 시스템(1300)은 복수의 소스 중 임의의 하나로부터 이미지 정보를 수신한다. 예를 들면, 장치(1300)는 (인터넷에 연결된 원격 소스와 같은) 네트워크(1302), 임의의 종류의 데이터베이스(1304), (광 디스크, DVD, 등과 같은) 임의의 종류의 컴퓨터 판독가능 디스크 매체(1306), (도 2에 도시된 소스(212)와 관련된 소스들 중 임의의 하나와 같은) 몇몇의 다른 소스(1308)로부터 이미지 정보를 수신할 수 있다. 임의의 경우에서, 수신된 정보는 이미지 정보 및 오디오 정보의 조합을 포함할 수 있다. 디멀티플렉싱(demux) 유닛(1310)은 이미지 정보로부터 오디오 정보를 분리시킨다. 오디오 처리 기능(1312)은 오디오 정보를 프로세싱한다.
이미지 디코더(1314)는 이미지 정보를 처리한다. 이미지 디코더(1314)는 압축된 이미지 정보를 이 정보의 수신된 포맷으로부터 몇몇의 다른 포맷으로 변환시키고, 이 정보 상에서 초기 리사이징 또는 다른 동작을 수행할 수 있다. 이미지 디코더(1314)의 출력은 소위 순수한 이미지 정보 및 이미지 서브-스트림 정보를 포함할 수 있다. 순수한 이미지 정보는 디스플레이 장치에 랜더링될 주요 이미지 스트림을 포함한다. 이미지 서브-스트림 정보는 근접한-캡셔닝 정보, (다양한 그래픽 편집 제어와 같은) 임의의 종류의 그래픽 오버레이 정보, DVD 플레이어에 의해 나타나는 다양한 종류의 서브이미지등과 같은, 순수한 이미지 정보와 관련된 임의의 추가적인 정보를 포함할 수 있다.
한 예시적인 구현에서, VMR(video mixing renderer) 모듈(1316)은 이렇게-수신된 이미지 정보의 처리에 있어서의 중심 역할을 수행한다. 개관으로서, VMR 모듈(1316)은, 다음에 그래픽 모듈(1322)을 제어하는 그래픽 인터페이스(1318), 및 디스플레이 드라이버(1320)와 대화한다. 이하 보다 상세히 기술될 바와 같이, 이 대화는 그래픽 모듈(1322)의 기능을 탐색하는 것을 포함한다. 이 대화는 또한 그래픽 인터페이스(1318), 디스플레이 드라이버(1320), 및 그래픽 모듈(1322)에 의해 이미지 정보의 처리를 조정하는 단계를 포함한다. 한 구현에서, 그래픽 인터페이스(1318)는 마이크로소프트®사의 DirectX에 의해 제조된 DirectDraw 기능을 이용하여 구현될 수 있다. DirectDraw는 VMR 모듈(1316)을 그래픽 모듈(1322)에 통신적으로 연결하는 메세지 도관과 같은 환경으로 서비스한다. 그래픽 모듈(1322) 자체가 컴퓨터 또는 유사한 장치 내의 고정된 모듈을 포함할 수 있거나, 그래픽 카드와 같은 분리가능한 유닛을 포함할 수 있다. VMR 모듈(1316), 그래픽 인터페이스(1318), 디스플레이 드라이버(1320), 및 그래픽 모듈(1322)에 도시되는 기능의 세로 방향-사슬은 사용자 모드와 커널 모드로 나뉘어질 수 있다. 사용자 모드는 다양한 인터페이스를 통하여 사용자가 조작할 수 있는 프로그래밍 기능의 양태들을 칭한다. 커널 모드는 사용자에 의해 직접적으로 조작될 수 없는 프로그래밍 기능의 양태들을 나타낸다.
그래픽 모듈(1322) 자체는 하나 이상의 그래픽 프로세싱 유닛(GPU)(1324)을 포함한다. GPU(1324)는 일반적으로 CPU와 같은 프로세싱 장치이다. GPU(1324)는 일반적으로 구현 장치(1300)에 의해 반복적으로 수행되는 정보-집약적 렌더링 태스크에 할당된다. 이들 반복적이거나 정보 집약적인 태스크를 GPU(1324)에 할당하는 것은 (도시되지 않은) CPU가 다른 태스크를 수행할 여유를 갖도록 하므로, 장치(1300)의 성능을 향상시킨다. 이 구현이 GPU(1324)에 할당하는 2개의 예시적인 태스크는 비월주사 및 비율 변환이다. 이들 함수는 비월주사 로직(1326) 및 비율 변 환자 로직(1328)으로 도시된다. 비월주사 로직(1326)은 2개 이상의 이미지 정보 필드를 함께 결합하여 이미지 정보 프레임을 형성한다. 비율 변환자 로직(1328)은 일련의 이미지 프레임의 프레임율을 수정한다. GPU(1324)는 다수의 추가적인 프로세싱 태스크를 수행할 수 있다.
GPU(1324)는 그래픽 모듈(1322)에 관련된 로컬 메모리(1330)와 대화할 수 있다. 이 로컬 메모리(1330)는 임의의 수의 저장-관련 목적으로 서비스할 수 있다. 예를 들면, 이 메모리(1330)는 최후 이미지 표면을 저장할 수 있어서 이 표면은 다음에 디스플레이 장치(1332)에 전달된다.
도 13은 도 2와 관련하여 기술된 방식과 유사한 방식으로, CI 데이터 구조(202)가 도 13에 도시된 일련의 기능적인 컴포넌트를 따라 전달될 수 있음을 도시한다. 즉, CI 데이터 구조(202)는 시스템(1300)에 의해 정의된 파이프라인을 지나가는 균일한 구조를 갖는다. 시스템(1300) 내의 개개의 기능적 컴포넌트는 CI 데이터 구조(2020) 내의 색 정보를 이용할 수 있거나, 다운스트림 기능적인 컴포넌트의 이점을 위하여 CI 데이터 구조(202) 내의 색 정보를 잠재적으로 보충할 수 있다. 예를 들면, 색 공간 처리의 이슈에서, 색 정보는 (a) (존재한다면) 어떤 색 정보 변환(들)이 수행될지(예를 들면, YUV 대 RGB), 및 이들 변환을 어떻게 수행할지, (b) 이미지 정보 상에서 다양한 프로세싱 태스크를 수행하는 데에 어떤 색 공간이 이용될지, 및 (c) 출력 이미지 정보를 제공하는 데에 어떤 색 공간이 이용될지, 등을 정의할 수 있다. 도 13은 복수의 CI 데이터 구조(202)가 시스템(1300)에서 수행되는 처리에 있어서 역할을 수행할 수 있음을 도시한다. 예를 들면, 시스 템(1300)에 의해 처리되는 이미지 정보의 각각의 스트림의 이와 관련된 자신만의 데이터 구조(202)를 가질 수 있다. 이들 CI 데이터 구조(202)는 이미지 정보의 다른 스트림을 공통된 색 정보로 변환하는 것을 조정할 수 있다.
CI 데이터 구조(202)가 DeinterlaceBltEx 프레임워크로 통합될 수 있는 예시적인 방식에 관련한 더 상세한 사항은 이하에 설명될 것이다.
먼저, 도 14는 도 13에 도시된 장치(1300)의 동작의 개관(1400)을 도시한다. 단계(1402)에서, VMR 모듈(1316)은 이 모듈이 지원하는 처리 모드에 관련되는 디스플레이 드라이버(1320) 및 그래픽 모듈(1322)을 질의한다. 이 모듈이 응답을 수신한 후에, 단계(1404)에서, VMR 모듈(1316)은 디스플레이 드라이버(1320) 및 관련된 그래픽 모듈(1322)의 기능에 관련된 보다 특정된 정보를 발견하기 위한 다른 질의를 송신한다. 단계(1402) 및 단계(1404)는 "정보 전처리"라는 일반적인 표제 하에 이하 보다 상세히 기술된다.
첨부된 하드웨어 및 관련 인터페이스의 기능을 조사한 이후에, VMR 모듈(1316)은 이미지 스트림 객체를 열어(단계(1408)) 이미지 정보 및 제어 정보가 하드웨어로 전달될 수 있다. 그 다음, 단계(1408)에서, VMR 모듈(1316)은 하드웨어에 의한(예를 들면, 그래픽 모듈(1322)에 의한) 하나 이상의 이미지 프로세싱 함수의 실행을 조정한다. 이러한 함수 중 하나는 비월주사이다. 이러한 함수 중 다른 것은 부-스트림 복합이다. 비월주사는 상술한 바와 같이 복합과 결합될 수 있거나, 2중 한 함수는 수신된 정보에 따라 분리적으로 수행될 수 있다. 예를 들면, 순차적인 이미지 정보가 수신된다면, 비월주사를 수행할 필요가 없다; 이 경우, VMR 모듈(1316)은 단순히 객체를 리사이징(resize)하고, 이미지 서브스트림 정보를 그 객체에 추가하거나, 몇몇의 다른 기능 또는 기능들의 조합을 수행할 수 있다. 비월주사 및 복합 외에도 복수의 다른 함수가 구현된다.
마지막으로, 단계(1410)에서, VMR 모듈은 단계(1406)에서 열었던 이미지 스트림을 닫는다. 이 단계(1410)는 사용자에 의해 주어진 명령에 응답하거나, 단순히 스트리밍 이미지 정보로부터의 실행에 응답할 수 있다.
이하의 논의는 상기 참조된 선택된 단계에 관련하여 보다 상세한 정보를 나타낸다.
- 초기화 단계
상술한 단계(1402)에서, VMR 모듈(1316)은 디스플레이 드라이버(1302)에게 입력 이미지 포맷에 관련하여 이 모듈이 지원하는 처리 기능이 무엇인지 묻는다. 디스플레이 드라이버(1320)가 응답할 때, VMR 모듈(1316)은 특정 모드에 대한 디스플레이 드라이버(1320)의 요구사항에 관련된 보다 상세한 정보에 대한 요청을 송신한다. 디스플레이 드라이버(1320)는 정보 구조 내의 다양한 정보를 지정함으로써 응답한다. 이러한 정보는 요청되는 복수의 전방 기준 샘플, 요청되는 복수의 후방 기준 샘플, 출력 프레임의 포맷 등을 식별한다. 결합된 비월주사 및 복합을 위한 지원이 그래픽 모듈(1322) 및 관련 인터페이스에 의해 지원될지 여부를 나타내는 플래그 또한 이 정보 구조에 포함된다. 이 예시적인 구현에서 플래그를 DXVA_ImageProcess_Sub-streams 플래그로서 칭한다.
또한, 결합된 비월주사 및 복합을 올바르게 지원하기 위해서, 그래픽 모듈 (1322) 및 관련 인터페이스와 드라이버는 비월주사되고 있는 이미지 프레임 및 제공된 이미지 서브스트림을 모두 (가로로 및/또는 세로로) 독립적으로 당길 수 있어야한다. 이는 주요 이미지와 비디오 서브스트림의 픽셀측 비율이 본질적으로 다르고 넌스퀘어일 수 있기 때문에 한 구현이기를 요구된다. 디스플레이 드라이버(1320)는 DXVA_VideoProcess_Sub-streams 플래그 외에도 이미지를 당기는 능력을 전달하는 DXVA_VideoProcess_StretchX 및 DXVA_VideoProcess_StretchY 플래그를 리턴함으로써 이 기능을 처리하는 자신의 능력과 통신할 수 있다.
또한, DeinterlaceBltEx DDI는 각 소스 및 목적지 표면에 대한 향상된 색 정보를 지원한다(여기서 "소스 표면"은 입력 이미지 정보를 정의하고, "목적지 표면" 또는 "목표 표면"은 DeinterlaceBltEx 동작에 의해 산출된 출력 이미지 정보를 정의한다). 디스플레이 드라이버(1320)는 이하의 플래그와 같이 다양한 색-관련 플래그를 통해 이 새로운 색 정보를 위하여 이 드라이버가 구비하는 지원 레벨을 나타낼 수 있다.
Figure 112005035554618-PCT00009
DXVA_VideoProcess_SubStreamsExtended 플래그에 대한 지원은, 비디오 정보가 비월주사되고, 서브스트림 정보와 복합되며, 목적지 표면에 기록될 때, 시스템(1300)이 소스 비디오 정보 및 서브스트림 정보에 대한 색 조정을 수행할 수 있음을 나타낸다.
DXVA_VideoProcess_YUV2RGBExtended 플래그에 대한 지원은 비월주사되고 복합된 이미지 정보 픽셀이 소스 및 목적지 표면에 특정된 색 정보를 이용하여 목적지 표면에 작성될 때 시스템(1300)이 색 공간 변환 동작(예를 들면, YUV-에서-RGB-로)을 수행할 수 있음을 나타낸다.
DXVA_VideoProcess_AlphaBlendExtended 플래그에 대한 지원은 비월주사되고 복합된 이미지 정보 픽셀이 목적지 표면에 작성될 때 시스템(1300)이 목적지 표면에 알파 블랜드 동작을 수행할 수 있음을 나타낸다.
- 비월주사 단계
VMR 모듈(1316)은 상술된 DeinterlaceBltEx 기능을 이용하여 그래픽 모듈(1322)에 의한 비월주사 및 복합의 실행을 조정한다. 보다 상세히 기술하자면, 이 DeinterlaceBltEx 기능은, 기술적으로 하나 이상의 기본 동작(색 공간 변환, 비월주사, 복합, 등)을 포함하지만, 디스플레이 드라이버(1320)로의 하나의 호출로서 구현될 수 있다. DeinterlaceBltEx 기능은 특정된 목적지 표면에 자신의 동작의 출력을 기록한다.
보다 상세히는 기술하자면, VMR 모듈(1316)은 이하의 데이터 구조를 디스플레이 드라이버(1320)에 전달하여 DeinterlaceBltEx 기능을 구현한다.
Figure 112005035554618-PCT00010
이 구조에서, rtTargetFrame 파라미터는 일련의 입력 프레임 내의 출력 프레임의 임시 위치를 식별한다. 비월주사만이 수행되고 있는 경우, 목표 시간은 기준 샘플의, rtStart 시간 또는 midpoint 시간, 즉 (rtStart+rtEnd)/s 중 하나와 일치하여야 한다. 프레임율 변환이 요청되는 경우, rtTargetFrame 시간은 기준 샘플들의 rtStart 시간 또는 midpoint 시간 중 임의의 것과 다를 수 있다.
prcTargetRect 파라미터는 DeinterlaceBltEx 동작이 기록되어야 하는 목표 표적지 내의 위치를 식별한다. 한 구현에서, 출력은 이 직사각형 내의 픽셀에 제한되어야 한다: 즉, prcTargetRect 내의 모든 픽셀이 작성되어야 하고, prcTargetRect 밖의 픽셀은 임의의 방식으로 수정되어서는 안된다.
BackgroundColor 파라미터는 모든 비디오 스트림 및 서브스트림이 복합되는 배경색을 식별한다.
DestinationFormat 파라미터는 목적지 표면에 관련하는 확장된 색 정보를 포함한다.
DestinationFlags 파라미터는 이전 호출로부터 DeinterlaceBltEx로의 목적지-관련 파라미터에서의 변경을 식별하는 플래그의 컬렉션을 포함한다. 이들 플래그는 배경색, 확장된 색 정보, 목표 직사각형 또는 평면 알파 파라미터에 변경들을 반영하고, 드라이버 코드를 최적화하는 것을 돕기 위해 제공된다.
목적지 표면은 비디오 메모리(예를 들면, 로컬 메모리(1330))에 위치된 스크린-밖의 평면일 수 있다. 목적지 표면의 픽셀 포맷은 초기화 단계에서 VMR 모듈(1316)로 리턴되는 데이터 구조의 d3dOutputFormat 필드에 표시된 것일 수 있다. 한 예시적인 구현에서, 이 구조에 지정된 목적지 표면는 Y-관련 색 공간(예를 들면, YUV) 내에 있을 수 있다.
lpDDSrcSurface 파라미터는 DXVA_VideoSample2 구조의 어레이를 가리킬 수 있다. 이 구조 내의 SampleFormat 필드는 샘플이 비월주사 동작을 위한 기준인지 아니면 비월주사된 비디오 프레임에 결합될 필요가 있는 비디오 서브스트림 샘플인지를 나타낸다. 비디오 서브스트림 샘플은 자신의 샘플 포맷에 대한 DXVA_SampleSub-stream 값을 가져야 한다.
보다 상세히 기술하자면, 예시적인 VideoSample2 구조는 아래와 같이 식별된다.
Figure 112005035554618-PCT00011
샘플이 비월주사되는지 순차적인지를 식별하는 것 이외에도, 상기-식별된 데이터 구조 내의 SampleFormat 필드는 CI 데이터 구조(202)가 표현될 수 있는 곳을 정의한다. CI 데이터 구조(202)를 SampleFormat 필드에 추가하는 것은 VideoSample2 데이터 구조의 사이즈를 증가시키지 않거나 그렇지 않으면 DeinterlaceBltEx 기능의 재공사를 요구하지 않는다. 이와 같이, CI 데이터 구조(202)를 이 데이터 구조로 "밀어넣는" 것은, 그래픽 모듈(1322)에게로와 같은, 비디오 파이프라인을 통하여 색 정보를 전달하는 효과적인 방식을 특히 나타낸다.
비디오 샘플을 참조하기 위하여, rtStant 및 rtEnd 필드는 샘플의 임시 위치를 나타낸다. 비디오 서브-스트림 샘플들에 대하여, 이들 필드는 0으로 클리어된다.
소스 및 목적지 직사각형은 부직사각형을 비월주사하고 당기는 데에 이용된다. 비디오 서브스트림을 당기는 것은 비디오 스트림에 의존적이고 당김에 대한 지원은 한 구현에서 필수적임을 유의한다. 팔레트화된 비디오 서브스트림 픽셀 포 맷에서, DXVA_VideoSample2 구조의 PAT 필드는 서브스트림 샘플을 복합할 때 이용될 수 있는 16개의 팔레트 엔트리를 포함한다. 팔레트화되지 않은 픽셀 포맷에서는 팔레트는 0 값으로 클리어될 것이며 무시될 수 있다.
각 입력 샘플은 이전 샘플로부터 현재 샘플에서의 변경을 나타내는 플래그의 컬렉션을 포함한다. 이들 플래그는 각 샘플의 팔레트, 색 정보, 소스, 및 목적지 직사각형에 변경을 반영하고 드라이브 코드의 최적화를 돕기 위해 제공된다.
DeinterlaceBltEx 구조의 설명을 계속하면, dwNumSurface 파라미터는 lpDDSrcSuface 어레이 내의 엘리먼트의 수를 식별한다. 비디오 기준 샘플은 처음에는 Z-순서로 비디오 서브스트림이 따라오는 어레이에 있을 것이다. 한 예시적인 구현에서, 드라이버로 전달되는 비디오 서브스트림의 수는 0 내지 15 범위일 수 있다. 대개는 DeinterlaceBltEx가 호출될 때, 드라이버는 0 또는 1 비디오 서브스트림을 전달 받을 것이다.
마지막으로, Alpha 파라미터는, 목적지 표면에 작성될 때, 복합된 배경섹, 비디오 스트림, 및 서브스트림 이미지에 적용될 수 있는 평면 투명도 값을 나타낸다.
DeinterlaceBltEx 기능은 순차적인 비디오 및 멀티 이미지 서브스트림이 수신될 때 VMR 모듈(1316)에 의해 호출될 수 있음을 유의해야 한다. 예를 들면, 이 함수 호출은 VMR 모듈(1316)이 순차적인 비디오와 비월주사된 비디오의 복합물을 포함하는 DVD 재생에 이용될 때 일어날 수 있다. 이런 경우에, 디스플레이 드라이버(1320)는 (이미 순차 포맷으로 되었기 때문에) 비디오 스트림을 비월주사하는 것 을 시도하지 않을 것이다. 오히려, VMR 모듈(1316)은 원하거나 필요하다면 비디오 스트림을 임의의 소정의 서브스트림과 결합하여, 각 스트림을 리사이징하도록 구성될 수 있다. (복수의 기준 샘플이 필요한 비월주사 모드가 순차적인 비디오와 함께 이용된다면, 복수의 기준 샘플은 여전히 디스플레이 드라이버(1320)로 송신될 것이지만, 각 비월주사 샘플을 동일한 순차적인 비디오 프레임이라 칭할 것이다.)
DeinterlaceBltEx 기능의 완전한 설명을 위하여, 도 15 및 16은 이 기능이 복합 동작과 비월주사 동작 오페레이션을 한 동작으로 함께 결합할 수 있는 방식을 기술한다.
도 15는 한 예시적이고 제한적이지 않은 시나리오에 따른 도 13의 시스템(1300)에 의해 제공될 수 있는 특정 동작의 개관이다. 이 도면은 압축된 이미지 정보(1502)가 이미지 디코더(1504)로 제공되어 CI 정보와 함께 압축된 이미지 정보의 현재 프레임을 산출하는 것을 도시한다. 또한, 압축되지 않은 이미지 정보(1506) 및 CI 정보의 현재 프레임은, 하나 이상의 압축되지 않은 이전 샘플(예를 들면, 이전의 압축되지 않은 이미지 정보(1510 및 1512))과 함께, 비월주사 로직(1508)으로 송신된다. 도 15에 도시된 로직(1508)은 또한 (이미지 서브스트림 정보(1514, 1516 등으로부터의) 이미지 서브스트림 정보를 비월주사되고 있는 프로세스 내의 이미지 정보에 추가하는 기능을 한다. 다시 말하면, 로직(1508)은 비월주사 동작을 서브스트림 복합 동작과 효과적으로 결합한다. 또한, 이하 보다 상세히 기술할 바와 같이, 로직(1508)은, 이들 2 기능을 복수의 패스로 수행하기 보다는 단일 메모리 판독/기록 동작으로 수행될 수 있도록 실행시킨다. 즉, 도 15의 시스 템(1500)은 오직 하나의 단계(예를 들면, 하나의 메모리 판독/기록 트랜젝션(transaction))를 요구한다(즉, 한 예시적인 경우에서, 메모리로부터 하나의 판독만이 요구된다).
상술한 대역폭 효율은 이미지 정보(예를 들면, 이미지 정보(1506, 1510, 1512, 등) 및 이미지 서브스트림 정보(예를 들면, 1514, 1516, 등)를 GPU 모듈(1322)에 의해 채용된 서로 다른 각각의 텍스춰링 유닛에 할당함으로써 수행될 수 있다. 이들의 가장 일반적인 적용에 있어서, 텍스춰링 유닛은 3차원 렌더링 적용 코드로 제조될 이미지 표면에 할당된다. 예를 들면, "텍스춰"는 일반적으로 다음에 랜더링되어야 할 3차원 씬의 일부를 형성하는 기하학적 프리미티브(primitive)(예를 들면, 삼각형)의 표면에 "전달"되는 이미지를 칭한다. 이들 서로 다른 텍스춰 표면은 소위 다른 텍스춰링 유닛에 할당된다. 도 15에 도시된 시스템은 이미지 정보(예를 들면, 1506, 1510, 1512, 등) 및 이미지 서브스트림 정보(1514, 1516, 등)를 각각의 텍스춰링 유닛에 할당하므로 비월주사 동작 및 복합 동작과 유사한 효율적인 성능을 달성한다. 보다 상세히 기술하자면, GPU 로직은 본질적으로, 복잡한 일련적 방식 대신에, 동시에 텍스춰링 유닛의 컬렉션 각각으로부터의 정보를 판독하고 처리한다. 이는 구현 장치의 버스 정체를 줄이고 구현 장치가 이미지 정보 및 관련 이미지 서브스트림 정보를 최적의 프레임율로 보다 잘 나타낼 수 있도록 한다.
다른 실시예에서, 로직(1508)은 색 공간 변환과 같은 다른 동작을 수행할 수 있다. 예를 들면, 로직(1508)은 하나 이상의 이미지 정보 스트림을 휘도-관련 색 공간(예를 들면, YUV)으로부터 RGB-관련 색 공간(예를 들면, 선형 또는 비선형 RGB)으로 변환시킬 수 있다. 대안으로, 로직(1508)은 한 종류의 휘도-관련 색 공간으로부터 다른 종류의 휘도-관련 색 공간으로, 또는 한 종류의 RGB-관련 색 공간으로부터 다른 종류의 RGB-관련 색 공간으로 등으로 변환 시킬 수 있다. 한 예시적인 시나리오에서, 로직(1508)은 (상기) 도 4에 도시된 특징들의 양태를 구현하는 데에 이용되며, 여기서 이미지 정보는 휘도-관련 색 공간으로부터 선형 RGB로 변환된 다음, (선형 RGB 색 공간에서 임의의 다른 처리 이후에 수행하는, 또는 이 처리와 연결되는 비월주사와 같은) 처리는 선형 RGB 색 공간 내의 이미지 정보에서 순차적으로 수행된다. 다른 말로 기술하자면, 로직(1508)의 출력 표면은 (선형 RGB와 같은) RGB-관련 색 공간 내에 표현될 수 있다.
다른 시나리오에서, 로직(1508)의 출력은 휘도-관련 색 공간(예를 들면,YUV) 내의 이미지 정보를 처리하여 RGB 색 공간과 반대로, 휘도-관련 색 공간에서도 복합되고 비월주사된 이미지 정보(1518)를 산출할 수 있다. 그 다음 로직(1508), 또는 (도시되지 않은) 몇몇의 다른 모듈은 휘도-관련 색 공간을 RGB-관련 정보로 변환시킬 수 있고, 그 다음 디스플레이에 렌더링되어 렌더링된 이미지 정보(1520)를 산출할 수 있다. 휘도-관련 색 공간의 RGB-관련 색 공간으로의 변환을 지연시키는 것은 잠재적인 대역폭 절약을 가진다. 예를 들면, 한 구현에서, 휘도-관련 색 공간은 12비트를 이용하여 나타낼 수 있다. 이와는 다르게, 한 구현에서, RGB 정보는 표현하는 데에 32 비트가 필요하다. 그러므로, RGB 정보 대신에 휘도-관련 정보를 이용하여 복합과 같은 태스크를 수행하는 것은 이 트랜젝션과 관련된 버스 교 통량을 낮춘다.
로직(1508)은 이미지 리사이징과 같은, 다른 종류의 처리 기능 또한 수행할 수 있다. 그러나, 로직(1508)은 상술한 처리 동작 각각을 수행할 필요가 없다. 예를 들면, 이미지 정보가 이미 순차 포맷이라면, 로직(1508)은 단순히 이미지 정보를 리사이징하는 것에만 전념하거나, 이미지 정보 상에(예를 들면, 색 공간 변환, 등과 같은) 몇몇의 다른 소정의 동작을 수행하는 것에만 전념할 수 있다.
또한, 다른 구현에서, 하나 이상의 동작은, 하나의 동작 대신에, 분리된 동작으로서 순차적으로 수행될 수 있다. 도 15의 대안적인 로직(1508')은 이러한 구현을 나타낸다. 예를 들면, DeinterlaceBlt 기능은 마찬가지로 이미지 정보를 처리하는 데에 적응된다.
임의의 경우, CI 데이터 구조(202)에 포함되는 색 정보는 특정 애플리케이션에 원하는 방식으로 이미지 정보를 변환하는 데 필요한 명령어를 제공한다. 보다 상세히 기술하자면, 로직(1508)은 복수의 이미지 정보 스트림을 처리하는 곳에서 이 로직(1508), 이미지 정보의 스트림 각각과 관련된 CI 데이터 구조(202)에서 정보를 얻을 수 있다. 이러한 스트림-당 CI 정보(202)는 서로 (다른 각각의 색 공간에 표현될 수 있는) 다른 이미지 정보 스트림들을 선형 RGB 색 공간과 같은 일반적인 색 공간으로 변환하는 데에 이용될 수 있다. 이 특징은 하나 이상의 중간 색 공간에 표현되는 임시 이미지 정보를 저장할 필요를 없애거나 줄이기 때문에 유용하다. 상술한 기법에서, 로직(1508)은 입력 이미지 정보를 수신하고, 변환하고, 메모리에 기록할 수 있다. 예를 들면, 이 로직은 정보가 출력 장치(예를 들면, 퍼 스널 컴퓨터에 의해 제공되는 데스크탑)에 의해 디스플레이 되기 전에 추가적인 복합된 YUV 이미지 정보를 제공할 필요성을 없앤다.
색공간-관련 명령어를 제공하는 데에 CI 정보(202)의 사용을 강조하는 것은 오직 예시적인 것이다. CI 정보(202)는 도 15에 도시된 동작을 제어하는 데에 이용될 수 있는 풍부한 다른 정보를 제공한다. 예를 들면, CI 정보(202)는 비월주사 동작에서, 대응하는 순차적인 이미지를 올바르게 비월주사하는 데에 이용될 수도 있다.
도 16은 로직(1508)에 의해 활성화된 협력-처리 기능을 수행하는 데에 이용될 수 있는 한 예시적인 기법을 도시한다. 즉, 도 16은 하나의 동작으로 비비월주사 및 복합을 수행하는 한 기법을 설명한다.
도 16은 텍스춰링 유닛 및 관련 매모리의 예시적인 구성(1600)을 도시한다. 이들 엘리먼트는 이미지 서브-스트림 정보 내에 동시에 주요 이미지 정보를 처리하는 데에 이용된다. 메모리 및 텍스춰 유닛은 도 13에 도시된 그래픽 모듈(1322)과 관련된 로컬 메모리(1330), 및/또는 공유 메모리(1334)를 이용하여 구현될 수 있다.
상술한 바와 같이, 비월주사 및 복합의 협동 동작은 이미지 정보가 YUV 형태와 같은, Y-관련 색 공간에 아직 있을 때 일어날 수 있다. 그러므로, 이 예시적이고 제한적이지-않는 시나리오에서, VMR 모듈(1316)은 이 Y-관련 정보를 저장하기 위하여 메모리의 일부를 할당한다. 제1 블럭(1602)은 Y 정보를 저장하는 데에 할당될 수 있고, 제2 블럭(1604)은 제1 채도 컴포넌트(예를 들며, U 정보)를 저장하 는 데에 할당될 수 있으며, 제3 블럭(1606)은 제2 채도 컴포넌트(예를 들면, V 정보)를 저장하는 데에 할당된다. 2개의 채도 컴포넌트보다 Y 정보를 할당하는 데에 보다 많은 비트가 든다. 예를 들면, 720 x 480 픽셀을 포함하는 이미지에서, 720 x 480 바이트의 블럭은 Y 정보를 저장하는 데에 할당될 수 있고, 360 x 240 바이트의 블럭은 제1 채도 컴포넌트를 저장하는 데에 할당될 수 있으며, 360 x 240 바이트의 블럭은 제2 채도 컴포넌트를 저장하는 데에 할당될 수 있다. 마지막으로, 메모리의 블럭(1608)은 (근접한-캡셔닝 정보, DVD 서브이미지 디스플레이 정보, 다양한 종류의 그래픽 아이콘, 등과 같은) 서브-스트림 정보를 저장하는 데에 할당될 수 있다.
도 16에 도시된 예시적인 구성(1600)에서는, 4개의 텍스춰링 유닛(1610, 1612, 1614, 및 1616)만이 도시된다. 그러나, 다른 구현은 4개 이상의 유닛을 포함할 것이다. 텍스춰링 유닛(1610)은 메모리 블럭(1602)(예를 들면, Y 정보)에 관련된 이미지 입력 표면을 처리하는 데에 할당되고, 텍스춰링 유닛(1612)은 메모리 블럭(1604)(예를 들면, 제1 채도 컴포넌트, 예를들면, U)에 관련된 이미지 입력 표면을 처리하는 데에 할당되며, 텍스춰링 유닛(1614)은 메모리 블럭(1606)(예를 들면, 제2 채도 컴포넌트, 예를 들면, V)과 관련된 이미지 입력 표면을 처리하는 데에 할당된다. 텍스춰링 유닛(1616)은 메모리 블럭(1608)(예를 들면, 서브스트림 정보)과 관련된 이미지 입력 표면을 처리하는 데에 할당된다. 메모리 블럭(Y, 채도1, 채도2, 및 서브스트림 정보)은 분리되어 있지만, 메모리에서 연속적인 필요는 없다. 추가적인 메모리 블럭 및 텍스춰링 유닛이 추가적인 이미지 기준 샘플 및/ 또는 추가적인 이미지 서브-스트림을 처리하는 데에 제공될 수 있다. 예를 들면, 2개의 이전 기준 스트림을 포함하는 애플리케이션은 적어도 9개의 텍스춰링 유닛(예를 들면, 현재 샘플에 대한 3개의 유닛, 2개의 기준 샘플에 대한 6개의 유닛)을 요구할 것이다.
마지막으로, 도 16은 도 15의 GPU(1324)에 관련된 GPU 프로세싱 유닛(1618)을 일반적으로 도시한다. GPU 프로세싱 로직(1618)은 텍스춰링 유닛과 대화한다. GPU 프로세싱 로직(1618)은 비비월주사, 프레임율 변환, 및/또는 다른 태스크(들)를 수행할 수 있다.
도 16의 동작을 설명하기 위하여 YUV-관련 정보의 사용하는 것은 단지 예시적일 뿐이다. (예를 들면, 도 4에 도시된 방식으로) 선형 RGB와 같은, RGB-관련 공간 내에서 처리 동작을 수행함으로써 유사한 이점을 얻을 수 있다.
E. 예시적인 컴퓨터 환경
한 예시적인 구현에서, 앞선 도면들에 도시된 처리의 양태는 컴퓨팅 장비에 의해 수행될 수 있다. 이 경우, 도 17은 앞선 도면들에 도시된 처리의 양태들을 구현하는 데에 이용될 수 있는 예시적인 컴퓨터 환경(1700)에 관련한 정보를 제공한다.
컴퓨팅 환경(1700)은 범용 유형의 컴퓨터(1702) 및 디스플레이 장치(1704)를 포함한다. 그러나, 컴퓨팅 환경(1700)은 다른 종류의 컴퓨팅 장비를 포함할 수 있다. 예를 들면, 도시되지는 않았지만, 컴퓨터 환경(1700)은 핸드헬드(hand-held) 또는 랩탑 장치, 셋 탑 박스(set top box), 게임 콘솔(game, consoles), 비디오 처 리/표현 장치(예를 들면, 텔레비전, DVR 등)로 통합된 처리 기능, 메인프레임 컴퓨터, 등을 포함할 수 있다. 또한 도 17은 설명을 용이하게 하기 위하여 함께 그루핑된 컴퓨터 환경(1700)의 엘리먼트를 도시한다. 그러나, 컴퓨팅 환경(1700)은 분산된 프로세싱 구성을 채용할 수 있다. 분산된 컴퓨팅 환경에서, 컴퓨팅 자원은 이 환경 전반에서 물리적으로 흩어질 수 있다.
예시적인 컴퓨터(1702)는 하나 이상의 프로세서 또는 프로세싱 유닛(1706), 시스템 메모리(1708), 및 버스(1710)를 포함한다. 버스(1710)는 다양한 시스템 컴포넌트를 함께 접속시킨다. 예를 들면, 버스(1710)는 프로세서(1706)를 시스템 메모리(1708)에 접속시킨다. 다양한 버스 아키텍처 중의 임의의 것을 사용하는 프로세서 또는 로컬 버스, AGP(accelerated graphics port), 주변 버스, 및 메모리 버스 또는 메모리 컨트롤러를 포함하는 버스(1710)는 임의의 종류의 버스 구조 또는 버스 구조들의 조합을 이용하여 구현될 수 있다.
컴퓨터(1702)는 각각이 이동형(removable) 또는 이동불가형(non-removable)일 수 있는, 다양한 유형의 휘발성 및 비휘발성 매체를 포함하는 다양한 컴퓨터 판독가능 매체 또한 포함할 수 있다. 예를 들면, 시스템 메모리(1708)는 RAM(1712)과 같은 휘발성 메모리, 및 ROM(1714)과 같은 비휘발성 메모리의 형태인 컴퓨터 판독가능 매체를 포함한다. ROM(1714)는 시동중과 같은 때에 컴퓨터(1702) 내의 구성요소들 간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(1716; BIOS)을 포함한다. RAM(1712)은 통상적으로 프로세싱 유닛(1706)에 의해 빨리 액세스될 수 있는 형태인 데이터 및/또는 프로그램 모듈을 포함한다.
다른 종류의 컴퓨터 저장 매체는 이동불가형 비휘발성 자기 매체로부터 판독하거나 그 자기 매체에 기록하는 하드 디스크 드라이브(1718), 이동형 비휘발성 자기 디스크(1722)(예를 들면, "플로피 디스크")로부터 판독하거나 그 자기 디스크에 기록하는 자기 디스크 드라이브(1720), 및 CD-ROM, DVD-ROM 또는 기타 광 매체 등의 이동형 비휘발성 광 디스크(1726)로부터 판독하거나 그 광 디스크에 기록하는 광 디스크 드라이브(1724)를 포함한다. 하드 디스크 드라이브(1718), 자기 디스크 드라이브(1720), 및 광 디스크 드라이브(1724)는 각각 하나 이상의 데이터 매체 인터페이스(1728)에 의해 시스템 버스(1710)에 접속된다. 대안으로, 하드 디스크 드라이브(1718), 자기 디스크 드라이브(1720), 및 광 디스크 드라이브(1724)는 (도시되지 않은) SCSI 인터페이스 또는 다른 연결 매카니즘에 의해 시스템 버스(1710)에 접속될 수 있다. 도시되지 않았지만, 컴퓨터(1702)는 자기 카세트, 또는 다른 자기 저장 장치, 플래쉬 메모리 카드, CD-ROM, DVD, 또는 기타 광 저장 장치, EEPROM, 등과 같은 다른 유형의 컴퓨터 판독가능 매체를 포함할 수 있다.
일반적으로, 상기 식별된 컴퓨터 판독가능 매체는 컴퓨터(1702)에 의해 사용되기 위하여 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 다른 데이터의 비휘발성 저장을 제공한다. 예를 들면, 판독가능 매체는 오퍼레이팅 시스템(1730), 애플리케이션 프로그램(1732), 기타 프로그램 모듈(1734), 및 프로그램 데이터(1736)를 저장할 수 있다.
컴퓨터 환경(1700)은 다양한 입력 장치를 포함할 수 있다. 예를 들면, 컴퓨터 환경(1700)은 컴퓨터(1702)에 명령 및 정보를 입력하는 키보드(1738) 및 포인팅 장치(1740)(예를 들면, "마우스")를 포함한다. 컴퓨터 환경(1700)은 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 직렬 포트, 스캐너, 카드 판독 장치, 디지털 또는 비디오 카메라, 등과 같은 (도시되지 않은) 다른 입력 장치를 포함할 수 있다. 입/출력 인터페이스(1742)는 입력 장치를 프로세싱 유닛(1706)에 연결시킨다. 보다 일반적으로, 입력 장치는 병렬 포트, 직렬 포트, 게임 포트, 유니버설 시리얼 버스(USB) 포트, 등과 같은, 임의의 종류의 인터페이스 및 버스 구조를 통하여 컴퓨터(1702)에 연결될 수 있다.
컴퓨터 환경(1700)은 또한 디스플레이 장치(1704)를 포함한다. 비디오 어댑터(1744)는 디스플레이 장치(1704)를 버스(1710)에 연결한다. 디스플레이 장치(1704) 외에도, 컴퓨터 환경(1700)은 (도시되지 않은) 스피커, (도시되지 않은) 프린터, 등과 같은 기타 출력 주변 장치를 포함할 수 있다.
컴퓨터(1702)는 원격 컴퓨팅 장치(1746)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용한 네트워크 환경에서 동작할 수 있다. 원격 컴퓨팅 장치(1746)는 범용 퍼스널 컴퓨터, 휴대용 컴퓨터, 서버, 게임 콘솔, 네트워크 확장 장치 등을 포함하는, 임의의 종류의 컴퓨터 장비를 포함할 수 있다. 원격 컴퓨팅 장치(1746)는 컴퓨터(1702), 또는 이 컴퓨터의 몇몇의 서브셋에 관련하여 상술한 모든 특징들을 포함할 수 있다.
WAN, LAN 등과 같은 임의의 유형의 네트워크(1748)가 컴퓨터(1702)를 원격 컴퓨팅 장치(1746)와 연결하는 데에 이용될 수 있다. 컴퓨터(1702)는 브로드밴드 접속, 모뎀 접속, DSL 접속, 또는 다른 접속 전략을 이용할 수 있는, 네트워크 인 터페이스(1750)를 통해 네트워크(1748)에 연결한다. 도시되지는 않았지만, 컴퓨팅 환경(1700)은 (예를 들면, 변조된 라디오 신호, 변조된 적외선 신호, 등을 통하여) 컴퓨터(1702)를 원격 컴퓨팅 장치(1746)에 접속시키는 무선 통신 기능을 제공할 수 있다.
마지막으로, 복수의 예들이 대안적인(예를 들면, 경우 A 또는 경우 B) 개시물에 나타났었다. 또한, 이 개시물들이 모든 사례에서 이들 결합되는 경우들을 표현적으로 언급할 수 없는 경우에도, 이 개시물은 대안들을 한 구현으로 결합시키는 경우(예를 들면, 경우 A 또는 경우 B)를 포함한다.
또한, 본 명세서에서 처음에는 복수의 특징들이 이들 특징들이 해결할 수 있는 예시적인 문제를 식별함으로써 기술되었다. 이러한 방식의 설명은 다른 것들이 본 명세서에서 기술된 방식으로 그 문제를 인식하고/거나 명료하게 설명한다는 허가를 포함하지 않는다. 비디오 코딩 분야에서 나타난 문제의 인식 및 설명은 본 발명의 일부로서 이해되어야 한다.
보다 일반적으로, 본 발명은 구조적 특징 및/또는 방법적인 행위에 특정된 언어로 기술되었지만, 특허 청구 범위에 정의된 본 발명은 기술된 이 특정 특징 및 행위로 제한될 필요가 없다고 이해되어야 한다. 오히려 특정 특징 및 행위는 청구된 발명을 구현하는 예시적인 형태로서 개시된다.

Claims (50)

  1. 규정된 포맷으로 표현된 색 성분량을 가지는 이미지 정보를 처리하는 방법으로서,
    상기 규정된 포맷의 적어도 하나의 양태를 기술하는 색 정보를 포함하는 색 정보 데이터 구조를 제공하는 단계,
    상기 이미지 정보와 함께, 상기 색 정보 데이터 구조를, 상기 이미지 정보를 처리하는데에 이용되는 적어도 하나의 기능적 컴포넌트에게 전달하는 단계, 및
    상기 색 정보 데이터 구조 내의 상기 색 정보에 기초하여 상기 적어도 하나의 기능적 컴포넌트에서 상기 이미지 정보를 처리하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 적어도 하나의 기능적 컴포넌트는 비디오 프로세싱 파이프라인을 정의하는 기능적인 컴포넌트들의 그룹에 속하고, 상기 색 정보 데이터 구조는 다운스트림(downstream) 기능적 컴포넌트들에 의한 사용을 위하여 상기 비디오 프로세싱 파이프라인 아래쪽으로 전달되는 방법.
  3. 제2항에 있어서,
    상기 비디오 프로세싱 파이프라인은
    휘도-관련 색 공간 내의 입력 이미지 정보를 RGB-관련 색 공간 내의 선형 이미지 정보로 변환시키는 단계, 및
    상기 RGB-관련 색 공간 내의 상기 선형 이미지 정보 에 대해 처리를 수행하여 처리된 정보를 산출하는 단계의 동작을 수행하는 방법.
  4. 제3항에 있어서,
    상기 변환 단계는 또한 상기 처리 동작 이전에 상기 입력 이미지 정보를 비월주사된(interlaced) 포맷으로부터 순차(progressive) 포맷으로 변환시키는 단계를 포함하는 방법.
  5. 제3항에 있어서,
    상기 비디오 프로세싱 파이프라인은 또한
    상기 처리된 정보를 휘도-관련 색 공간 내의 비선형 이미지 정보로 변환시키는 단계의 동작을 수행하는 방법.
  6. 제5항에 있어서,
    상기 처리된 정보의 변환 단계는 또한 상기 처리된 정보를 순차 포맷으로부터 비월주사된 포맷으로 변환시키는 단계를 포함하는 방법.
  7. 제2항에 있어서,
    상기 비디오 프로세싱 파이프라인은 색 변환을 수행하고, 상기 색 정보 데이터 구조 내의 상기 색 정보가 상기 색 변환을 제어하는 방법.
  8. 제1항에 있어서,
    상기 색 정보 데이터 구조 내의 알려지지 않은 값을 규정된 디폴트 값으로 초기화하는 단계를 더 포함하는 방법.
  9. 제1항에 있어서,
    상기 적어도 하나의 기능적 컴포넌트는 또한 상기 규정된 포맷의 적어도 하나의 다른 양태를 결정하고 상기 적어도 하나의 다른 양태를 상기 색 정보 데이터 구조 내의 적어도 하나의 알려지지 않은 값에 추가하는 방법.
  10. 제1항에 있어서,
    상기 색 정보 데이터 구조를 전달하는 단계는 기존의 데이터 구조의 사용되지 않은 필드 내의 상기 색 정보 데이터 구조를 전달하는 단계를 포함하는 방법.
  11. 제1항에 있어서,
    상기 적어도 하나의 기능적인 컴포넌트가 상기 색 정보 데이터 구조를 처리하는 기능을 가진다고 나타내는 플래그를 설정하는 단계를 더 포함하는 방법.
  12. 제1항에 있어서,
    상기 색 정보 데이터 구조는 선형 이미지 정보를 비선형 이미지 정보로 변환시키는 데에 이용되고/거나, 비선형 이미지 정보를 선형 이미지 정보로 변환시키는 데에 이용되는 전달 함수에 관련된 정보를 전달하는 비디오 전달 함수 필드를 포함하는 방법.
  13. 제1항에 있어서,
    상기 색 정보 데이터 구조는 상기 이미지 정보와 관련된 색 프라이머리들(primaries)을 전달하는 색 프라이머리들 필드를 포함하는 방법.
  14. 제1항에 있어서,
    상기 색 정보 데이터 구조는 상기 이미지 정보와 관련된 의도된 뷰잉(viewing) 조건을 전달하는 이미지 조명 필드를 포함하는 방법.
  15. 제1항에 있어서,
    상기 색 정보 데이터 구조는 상기 이미지 정보의 색 공간을 수정하는데에 이용될 수 있는 전달 행렬에 관련된 정보를 전달하는 전달 행렬 필드를 포함하는 방법.
  16. 제1항에 있어서,
    상기 색 정보 데이터 구조는 상기 이미지 정보에 관련된 잠재적인 토우 룸(toe room) 및 헤드 룸(head room)에 관련된 정보를 전달하는 공칭 범위 필드를 포함하는 방법.
  17. 제1항에 있어서,
    상기 색 정보 데이터 구조는 상기 이미지 정보 내의 채도 샘플이 관련 휘도 샘플에 연관지어 샘플링되고 정렬되는 방식을 나타내는 비디오 채도 샘플링 필드를 포함하는 방법.
  18. 제1항에 있어서,
    상기 색 정보 데이터 구조는
    선형 이미지 정보를 비선형 이미지 정보로 변환시키는 데에 이용되고/거나, 비선형 이미지 정보를 선형 이미지 정보로 변환시키는 데에 이용되는 전달 함수에 관련된 정보를 전달하는 비디오 전달 함수 필드,
    상기 이미지 정보와 관련된 색 프라이머리들(primaries)을 전달하는 색 프라이머리들 필드,
    상기 이미지 정보와 관련된 의도된 뷰잉 조건을 전달하는 이미지 조명 필드,
    상기 이미지 정보의 색 공간을 수정하는데에 이용될 수 있는 전달 행렬 필드,
    상기 이미지 정보에 관련된 잠재적인 토우 룸 및 헤드 룸에 관련된 정보를 전달하는 공칭 범위 필드, 및
    상기 이미지 정보 내의 채도 샘플이 관련 휘도 샘플에 연관지어 샘플링되고 정렬되는 방식을 나타내는 비디오 채도 샘플링 필드를 포함하는 방법.
  19. 제1항 기재의 방법을 구현하는 프로세서-실행가능 명령어가 저장되고 포함되는 하나 이상의 프로세서 판독가능 매체.
  20. 제1항 기재의 제공 단계, 전달 단계, 및 처리 단계 각각을 수행하도록 구성되는 로직을 포함하는 장치.
  21. 제18항 기재의 색 정보 데이터 구조를 이용하여 제공 단계, 전달 단계, 및 처리 단계 각각을 수행하도록 구성되는 로직을 포함하는 장치.
  22. 하나 이상의 프로세서-판독가능 매체에 저장되고, 관련 이미지 정보의 포맷을 기술하는 색 정보를 포함하는 데이터 구조로서,
    선형 이미지 정보를 비선형 이미지 정보로 변환시키는 데에 이용되고/거나, 비선형 이미지 정보를 선형 이미지 정보로 변환시키는 데에 이용되는 전달 함수에 관련된 정보를 전달하는 비디오 전달 함수 필드,
    상기 이미지 정보와 관련된 색 프라이머리들을 전달하는 색 프라이머리들 필드,
    상기 이미지 정보와 관련된 의도된 뷰잉 조건을 전달하는 이미지 조명 필드,
    상기 이미지 정보의 색 공간을 수정하는데에 이용될 수 있는 전달 행렬 필드,
    상기 이미지 정보에 관련된 잠재적인 토우 룸 및 헤드 룸에 관련된 정보를 전달하는 공칭 범위 필드, 또는
    상기 이미지 정보 내의 채도 샘플이 관련 휘도 샘플에 연관지어 샘플링되고 정렬되는 방식을 나타내는 비디오 채도 샘플링 필드
    중 적어도 하나를 포함하는 데이터 구조.
  23. 제22항에 있어서,
    식별된 필드 중 각각을 포함하는 데이터 구조.
  24. 규정된 포맷으로 표현되는 색 성분량을 포함하는 이미지 정보를 처리하는 시스템으로서,
    비디오 프로세싱 파이프라인을 정의하는 복수의 기능적인 컴포넌트를 포함하고,
    상기 복수의 기능적인 컴포넌트 각각은 상기 규정된 포맷의 적어도 하나의 양태를 정의하는 색 정보를 포함하는 색 정보 데이터 구조를 처리하도록 구성되는 로직을 포함하는 시스템.
  25. 제24항에 있어서,
    상기 색 정보 데이터 구조는
    선형 이미지 정보를 비선형 이미지 정보로 변환시키는 데에 이용되고/거나, 비선형 이미지 정보를 선형 이미지 정보로 변환시키는 데에 이용되는 전달 함수에 관련된 정보를 전달하는 비디오 전달 함수 필드,
    상기 이미지 정보와 관련된 색 프라이머리들(primaries)을 전달하는 색 프라이머리들 필드,
    상기 이미지 정보와 관련된 의도된 뷰잉 조건을 전달하는 이미지 조명 필드,
    상기 이미지 정보의 색 공간을 수정하는데에 이용될 수 있는 전달 행렬 필드,
    상기 이미지 정보에 관련된 잠재적인 토우 룸 및 헤드 룸에 관련된 정보를 전달하는 공칭 범위 필드, 또는
    상기 이미지 정보 내의 채도 샘플이 관련 휘도 샘플에 연관지어 샘플링되고 정렬되는 방식을 나타내는 비디오 채도 샘플링 필드
    중 적어도 하나를 포함하는 시스템
  26. 해당하는 이미지 정보를 저장하는 복수의 유닛을 포함하는 데이터 프로세싱 모듈 내의 이미지 정보를 처리하는 방법으로서,
    상기 복수의 유닛 중 적어도 하나를 이미지 정보의 주요 비디오 스트림에 할당하는 단계,
    상기 복수의 유닛 중 적어도 다른 하나를 이미지 정보의 비디오 서브스트림에 할당하는 단계, 및
    상기 주요 비디오 스트림 및 상기 비디오 서브스트림을 포함하는 적어도 2개의 태스크를 하나의 동작으로 수행하여 복합 비디오 정보를 산출하는 단계
    를 포함하는 방법.
  27. 제26항에 있어서,
    상기 복수의 유닛은 복수의 그래픽 텍스춰(texture) 유닛을 포함하는 방법.
  28. 제26항 기재의 방법을 구현하는 프로세서-판독가능 명령어가 포함되고 저장되는 하나 이상의 프로세서-판독가능 매체.
  29. 제26항 기재의 할당 단계 및 수행 단계를 수행하도록 구성되는 로직을 포함하는 장치.
  30. 이미지 정보를 처리하는 방법으로서,
    이미지 정보의 주요 비디오 스트림을 제공하는 단계,
    이미지 정보의 비디오 서브스트림을 제공하는 단계, 및
    색 정보 데이터 구조에 지정된 색 정보에 기초하여, 상기 주요 비디오 스트림 및 상기 비디오 서브스트림을 포함하는 적어도 2개의 태스크를 수행하여 지정된 색 공간 내에 표현된 출력 비디오 정보를 산출하는 단계
    를 포함하는 방법.
  31. 제30항에 있어서,
    상기 지정된 색 공간은 RGB-관련 색 공간인 방법.
  32. 제31항에 있어서,
    상기 RGB-관련 색 공간은 비선형 RGB 데이터를 정의하는 방법.
  33. 제31항에 있어서,
    상기 RGB-관련 색 공간은 선형 RGB 데이터를 정의하는 방법.
  34. 제30항에 있어서,
    상기 지정된 색 공간은 휘도-관련 색 공간인 방법.
  35. 제30항에 있어서,
    상기 지정된 색 공간은 복수의 이미지 정보 스트림을 처리하기 위한 일반적인 색 공간을 정의하는 방법.
  36. 제30항에 있어서,
    상기 색 정보는 상기 지정된 색 공간을 식별하는 방법.
  37. 제30항에 있어서,
    상기 수행 단계는, 각각이 자신과 관련되는 자신만의 개별적인 색 정보 데이터 구조를 가지는 복수의 이미지 정보 스트림에 대해 동작하는 방법.
  38. 제30항에 있어서,
    상기 적어도 2개의 태스크는 상기 주요 비디오 스트림을 비비월주사(deintelacing)하는 것을 포함하고, 상기 색 정보 데이터 구조는 상기 비비월주사를 제어하는 정보를 포함하는 방법.
  39. 제30항에 있어서,
    상기 적어도 2개의 태스크는 이미지 정보를 제1 색 공간으로부터 제2 색 공간으로 변환시키는 것을 포함하는 방법.
  40. 제39항에 있어서,
    상기 제1 색 공간은 휘도-관련 색 공간이며 상기 제2 색 공간은 RGB-관련 색 공간인 방법.
  41. 제39항에 있어서,
    상기 색 정보 데이터 구조 내의 색 정보는 상기 변환을 제어하는 방법.
  42. 제30항에 있어서,
    상기 적어도 2개의 태스크는
    (a) 상기 주요 비디오 스트림을 비비월주사하는 것,
    (b) 상기 주요 비디오 스트림을 상기 비디오 서브스트림과 결합시키는 것, 또는
    (c) 이미지 정보를 제1 색 공간에서 제2 색 공간으로 변환시키는 것
    중 적어도 2개를 포함하는 방법.
  43. 제30항에 있어서,
    상기 적어도 2개의 태스크는 하나의 동작으로 수행되는 방법.
  44. 제30항 기재의 방법을 구현하는 프로세서-실행가능 명령어가 포함되고 저장되는 하나 이상의 프로세서 판독가능 매체.
  45. 제30항 기재의 주요 비디오 스트림 제공 단계, 서브스트림 제공 단계, 및 수행 단계를 수행하도록 구성되는 로직을 포함하는 장치.
  46. 이미지 정보를 처리하는 방법으로서,
    휘도-관련 색 공간 내의 입력 이미지 정보를 RGB-관련 색 공간 내의 선형 이미지 정보로 변환시키는 단계,
    상기 RGB-관련 색 공간 내의 상기 선형 이미지 정보에 대한 처리를 수행하여 처리된 정보를 산출하는 단계, 및
    상기 처리된 정보를 휘도-관련 색 공간 내의 비선형 이미지 정보로 변환시키는 단계
    를 포함하는 방법.
  47. 제46항에 있어서,
    상기 변환 단계는 또한 상기 처리 동작 이전에 상기 입력 이미지 정보를 비월주사된 포맷으로부터 순차 포맷으로 변환시키는 단계, 및 처리 이후에, 상기 처리된 정보를 순차 포맷으로부터 비월주사된 포맷으로 변환시키는 단계를 포함하는 방법.
  48. 제46항에 있어서,
    색 정보 데이터 구조를 제공하는 단계, 및 상기 색 정보 데이터 구조 내에서 지정된 색 정보를 이용하여 상기 입력 정보의 변환 단계, 처리 단계, 또는 상기 처리된 정보의 변환 단계 중 적어도 하나를 제어하는 단계를 더 포함하는 방법.
  49. 제46항 기재의 방법을 구현하는 프로세서-실행가능 명령어가 포함되고, 저장 되는 하나 이상의 프로세서 판독가능 매체.
  50. 제46항 기재의 입력 정보의 변환 단계, 수행 단계, 및 처리된 정보의 변환 단계를 수행하도록 구성되는 로직을 포함하는 장치.
KR1020057012456A 2003-08-01 2004-07-30 이미지 정보를 처리하기 위한 시스템, 방법, 컴퓨터 판독가능 기록 매체, 및 장치 KR101030358B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US49202903P 2003-08-01 2003-08-01
US60/492,029 2003-08-01
US10/694,144 US7139002B2 (en) 2003-08-01 2003-10-27 Bandwidth-efficient processing of video images
US10/694,144 2003-10-27
US10/902,325 US7643675B2 (en) 2003-08-01 2004-07-29 Strategies for processing image information using a color information data structure
US10/902,325 2004-07-29

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020117005403A Division KR101130422B1 (ko) 2003-08-01 2004-07-30 이미지 정보를 처리하기 위한 방법 및 컴퓨터-판독가능 메모리 장치

Publications (2)

Publication Number Publication Date
KR20060066668A true KR20060066668A (ko) 2006-06-16
KR101030358B1 KR101030358B1 (ko) 2011-04-20

Family

ID=34119820

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020117005403A KR101130422B1 (ko) 2003-08-01 2004-07-30 이미지 정보를 처리하기 위한 방법 및 컴퓨터-판독가능 메모리 장치
KR1020057012456A KR101030358B1 (ko) 2003-08-01 2004-07-30 이미지 정보를 처리하기 위한 시스템, 방법, 컴퓨터 판독가능 기록 매체, 및 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020117005403A KR101130422B1 (ko) 2003-08-01 2004-07-30 이미지 정보를 처리하기 위한 방법 및 컴퓨터-판독가능 메모리 장치

Country Status (6)

Country Link
US (3) US7643675B2 (ko)
EP (1) EP1625509B1 (ko)
KR (2) KR101130422B1 (ko)
CN (2) CN1745373B (ko)
AT (1) ATE543335T1 (ko)
WO (1) WO2005013087A2 (ko)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7219352B2 (en) * 2002-04-15 2007-05-15 Microsoft Corporation Methods and apparatuses for facilitating processing of interlaced video images for progressive video displays
US7643675B2 (en) 2003-08-01 2010-01-05 Microsoft Corporation Strategies for processing image information using a color information data structure
US7403206B1 (en) 2003-10-01 2008-07-22 Microsoft Corporation Picking TV safe colors
US7308159B2 (en) * 2004-01-16 2007-12-11 Enuclia Semiconductor, Inc. Image processing system and method with dynamically controlled pixel processing
US9292904B2 (en) 2004-01-16 2016-03-22 Nvidia Corporation Video image processing with parallel processing
US20060152627A1 (en) * 2005-01-13 2006-07-13 Ruggiero Carl J Video processing system and method with dynamic tag architecture
US7869666B2 (en) * 2005-01-13 2011-01-11 Nvidia Corporation Video processing system and method with dynamic tag architecture
KR100736926B1 (ko) * 2005-12-09 2007-07-10 삼성전자주식회사 영상생성장치 및 그의 색역정보 생성방법 그리고영상재생장치 및 그의 색역정보 검출방법
US8907975B1 (en) * 2005-12-13 2014-12-09 Nvidia Corporation Sampled digital video communication system and method
US20100033502A1 (en) * 2006-10-13 2010-02-11 Freescale Semiconductor, Inc. Image processing apparatus for superimposing windows displaying video data having different frame rates
TW200820125A (en) * 2006-10-24 2008-05-01 Sunplus Technology Co Ltd Image processing method and system for personal computer
US7864182B2 (en) * 2006-11-13 2011-01-04 Mediatek Singapore Pte Ltd Dynamic tile sizing in an image pipeline
US8819556B1 (en) * 2007-02-02 2014-08-26 Adobe Systems Incorporated Methods and systems for displaying format properties of crop areas
KR20100036330A (ko) 2007-08-02 2010-04-07 소니 주식회사 화상 처리 장치
WO2009079760A1 (en) * 2007-12-20 2009-07-02 Ati Technologies Ulc Method, apparatus and machine-readable medium for describing video processing
US20090184977A1 (en) * 2008-01-18 2009-07-23 Qualcomm Incorporated Multi-format support for surface creation in a graphics processing system
EP2302845B1 (en) 2009-09-23 2012-06-20 Google, Inc. Method and device for determining a jitter buffer level
US8537899B1 (en) * 2010-02-19 2013-09-17 Otoy, Inc. Fast integer and directional transforms for data encoding
US8477050B1 (en) 2010-09-16 2013-07-02 Google Inc. Apparatus and method for encoding using signal fragments for redundant transmission of data
CN105915754B (zh) * 2010-10-18 2019-03-05 杜比实验室特许公司 对图像数据进行解码的方法和设备
US8751565B1 (en) 2011-02-08 2014-06-10 Google Inc. Components for web-based configurable pipeline media processing
KR102656330B1 (ko) 2011-05-27 2024-04-12 돌비 레버러토리즈 라이쎈싱 코오포레이션 변하는 레벨들의 메타데이터을 포함하는 컬러 관리를 제어하기 위한 스케일러블 시스템들
US8947449B1 (en) 2012-02-21 2015-02-03 Google Inc. Color space conversion between semi-planar YUV and planar YUV formats
US8928680B1 (en) 2012-07-10 2015-01-06 Google Inc. Method and system for sharing a buffer between a graphics processing unit and a media encoder
US9979960B2 (en) * 2012-10-01 2018-05-22 Microsoft Technology Licensing, Llc Frame packing and unpacking between frames of chroma sampling formats with different chroma resolutions
US10178400B2 (en) 2012-11-21 2019-01-08 Dolby International Ab Signaling scalability information in a parameter set
TWI639151B (zh) 2013-03-15 2018-10-21 美商傲思丹度科技公司 動態色域顯示系統、方法、及其應用
EP3386179A1 (en) 2013-09-20 2018-10-10 VID SCALE, Inc. Systems and methods for providing 3d look-up table coding for color gamut scalability
AU2014362246B2 (en) 2013-12-13 2018-01-25 Vid Scale, Inc. Color gamut scalable video coding device and method for the phase alignment of luma and chroma using interpolation
WO2015134198A1 (en) * 2014-02-21 2015-09-11 Silicon Image, Inc. Adaptive processing of video streams with reduced color resolution
USRE48920E1 (en) * 2014-02-21 2022-02-01 Lattice Semiconductor Corporation Adaptive processing of video streams with reduced color resolution
US9438910B1 (en) 2014-03-11 2016-09-06 Google Inc. Affine motion prediction in video coding
US9852536B2 (en) * 2014-08-05 2017-12-26 Qualcomm Incorporated High order filtering in a graphics processing unit
EP3029943B1 (en) * 2014-12-04 2018-01-31 Axis AB Method and device for determining properties of a graphical overlay for a video stream
US9749646B2 (en) 2015-01-16 2017-08-29 Microsoft Technology Licensing, Llc Encoding/decoding of high chroma resolution details
US9854201B2 (en) 2015-01-16 2017-12-26 Microsoft Technology Licensing, Llc Dynamically updating quality to higher chroma sampling rate
KR102033229B1 (ko) 2015-02-13 2019-10-16 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 픽셀 전처리 및 인코딩
US10560695B2 (en) 2015-06-26 2020-02-11 Telefonaktiebolaget Lm Ericsson (Publ) Encoding and decoding of pictures in a video
CA2998670A1 (en) 2015-09-17 2017-03-23 Thomson Licensing Light field data representation
EP3144885A1 (en) 2015-09-17 2017-03-22 Thomson Licensing Light field data representation
US10368080B2 (en) 2016-10-21 2019-07-30 Microsoft Technology Licensing, Llc Selective upsampling or refresh of chroma sample values
US11100682B2 (en) * 2017-02-28 2021-08-24 Sony Corporation Image processing device and image processing method
US10573279B2 (en) * 2017-09-08 2020-02-25 Avago Technologies International Sales Pte. Limited Systems and methods for combining video and graphic sources for display
CN117579834A (zh) * 2018-01-16 2024-02-20 株式会社尼康 编码装置、解码装置、编码方法、解码方法、编码程序及解码程序
US11503310B2 (en) * 2018-10-31 2022-11-15 Ati Technologies Ulc Method and apparatus for an HDR hardware processor inline to hardware encoder and decoder
CN110460901A (zh) * 2019-08-09 2019-11-15 浙江大华技术股份有限公司 一种视频发送和接收方法及其设备

Family Cites Families (134)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US661441A (en) * 1897-11-27 1900-11-06 Hiram T Bush Closet seat and lid.
US4463372A (en) 1982-03-24 1984-07-31 Ampex Corporation Spatial transformation system including key signal generator
US6496183B1 (en) 1998-06-30 2002-12-17 Koninklijke Philips Electronics N.V. Filter for transforming 3D data in a hardware accelerated rendering architecture
US4605952A (en) * 1983-04-14 1986-08-12 Rca Corporation Compatible HDTV system employing nonlinear edge compression/expansion for aspect ratio control
US4556906A (en) * 1983-11-15 1985-12-03 Rca Corporation Kinescope blanking scheme for wide-aspect ratio television
US4601055A (en) 1984-04-10 1986-07-15 The United States Of America As Represented By The Secretary Of Commerce Image processor
US4639763A (en) * 1985-04-30 1987-01-27 Rca Corporation Interlace to non-interlace scan converter for RGB format video input signals
US4729012A (en) * 1985-08-30 1988-03-01 Rca Corporation Dual mode television receiver for displaying wide screen and standard aspect ratio video signals
US5014327A (en) 1987-06-15 1991-05-07 Digital Equipment Corporation Parallel associative memory having improved selection and decision mechanisms for recognizing and sorting relevant patterns
SU1474701A2 (ru) 1987-07-04 1989-04-23 Предприятие П/Я В-2969 Устройство дл кодировани видеосигнала
US4866637A (en) * 1987-10-30 1989-09-12 International Business Machines Corporation Pipelined lighting model processing system for a graphics workstation's shading function
DE3838730C2 (de) 1987-11-16 1994-07-28 Canon Kk Verfahren und Vorrichtung zur Bildverarbeitung
JP2882584B2 (ja) * 1988-09-30 1999-04-12 株式会社東京放送 既存テレビジョン放送方法と互換性のあるワイドスクリーンテレビジョン放送方法
US4951149A (en) * 1988-10-27 1990-08-21 Faroudja Y C Television system with variable aspect picture ratio
US5179641A (en) 1989-06-23 1993-01-12 Digital Equipment Corporation Rendering shaded areas with boundary-localized pseudo-random noise
US5218674A (en) 1990-09-14 1993-06-08 Hughes Aircraft Company Hardware bit block transfer operator in a graphics rendering processor
GB9118425D0 (en) * 1991-08-28 1991-10-16 Rca Thomson Licensing Corp Adapting horizontal scan to picture format
US5235432A (en) 1991-11-22 1993-08-10 Creedon Brendan G Video-to-facsimile signal converter
US5309257A (en) 1991-12-31 1994-05-03 Eastman Kodak Company Method and apparatus for providing color matching between color output devices
US5602943A (en) 1992-04-28 1997-02-11 Velho; Luiz C. Digital halftoning space filling curves
JP2862441B2 (ja) 1992-07-09 1999-03-03 キヤノン株式会社 出力制御装置及び方法
JPH0659908A (ja) 1992-08-11 1994-03-04 Toshiba Corp プログラム実行装置
EP0600204A3 (en) 1992-11-30 1994-07-27 Ibm Method and apparatus for rendering primitives with multiple processors.
JP3092382B2 (ja) * 1993-03-22 2000-09-25 松下電器産業株式会社 信号処理装置
US5577125A (en) 1993-06-14 1996-11-19 International Business Machines Corporation Graphical manipulation of encryption
US5508812A (en) * 1993-09-01 1996-04-16 Apple Computer, Inc. System for processing and recording digital color television signal onto analog video tape
US5526051A (en) 1993-10-27 1996-06-11 Texas Instruments Incorporated Digital television system
US5455626A (en) * 1993-11-15 1995-10-03 Cirrus Logic, Inc. Apparatus, systems and methods for providing multiple video data streams from a single source
DE69523593T2 (de) 1994-06-17 2002-09-26 Intel Corp Vorrichtung und verfahren zur aufteilung der anwendung in einer graphischen benutzerschnittstelle
MX9700385A (es) 1994-07-14 1998-05-31 Johnson Grace Company Metodo y aparato para comprimir imagenes.
JP3381755B2 (ja) 1994-10-11 2003-03-04 セイコーエプソン株式会社 画像の粒状性を減らすための改良された適応性のあるフィルタリングおよび閾値設定の方法及び装置
US5870503A (en) 1994-10-20 1999-02-09 Minolta Co., Ltd. Image processing apparatus using error diffusion technique
US5565994A (en) 1994-12-06 1996-10-15 Xerox Corporation Multiple separation error diffusion, with cross separation correlation control for color images
US5715459A (en) 1994-12-15 1998-02-03 International Business Machines Corporation Advanced graphics driver architecture
US5745761A (en) * 1994-12-15 1998-04-28 International Business Machines Corporation Advanced graphics driver architecture with extension capability
US5715073A (en) 1995-02-03 1998-02-03 Eastman Kodak Company Processing by separate stages monochrome digital images to provide halftone color images
JP3612690B2 (ja) 1995-06-16 2005-01-19 ソニー株式会社 情報表示制御装置及び情報表示制御方法
US6307559B1 (en) 1995-07-13 2001-10-23 International Business Machines Corporation Method and apparatus for color space conversion, clipping, and scaling of an image during blitting
US5793371A (en) 1995-08-04 1998-08-11 Sun Microsystems, Inc. Method and apparatus for geometric compression of three-dimensional graphics data
US5742797A (en) 1995-08-11 1998-04-21 International Business Machines Corporation Dynamic off-screen display memory manager
US5757386A (en) 1995-08-11 1998-05-26 International Business Machines Corporation Method and apparatus for virtualizing off-screen memory of a graphics engine
DE19639388A1 (de) * 1995-09-29 1997-04-10 Aisin Seiki Stoß-Sensor
WO1997013376A1 (en) 1995-10-05 1997-04-10 Faroudja Y C Method and apparatus for procucing from a standard-bandwidth color television signal a color video signal with extended vertical definition
US6222542B1 (en) * 1995-10-10 2001-04-24 Anysoft, Ltd Apparatus for and method of acquiring, processing and routing data contained in a GUI window
US5768487A (en) * 1995-10-31 1998-06-16 Seiko Epson Corporation System and method using a split printer driver to control a computer printer device
US5936632A (en) 1996-07-26 1999-08-10 Hewlett-Packard Co. Method for fast downloading of textures to accelerated graphics hardware and the elimination of extra software copies of texels
US6195098B1 (en) 1996-08-02 2001-02-27 Autodesk, Inc. System and method for interactive rendering of three dimensional objects
US5982453A (en) * 1996-09-25 1999-11-09 Thomson Consumer Electronics, Inc. Reduction of visibility of spurious signals in video
US5825879A (en) 1996-09-30 1998-10-20 Intel Corporation System and method for copy-protecting distributed video content
US6369855B1 (en) * 1996-11-01 2002-04-09 Texas Instruments Incorporated Audio and video decoder circuit and system
JPH10275072A (ja) 1997-01-31 1998-10-13 Hitachi Ltd 画像表示システム及び情報処理装置
EP0859326A3 (en) 1997-02-14 1999-05-12 Canon Kabushiki Kaisha Data transmission apparatus, system and method, and image processing apparatus
GB9704638D0 (en) 1997-03-06 1997-04-23 Lsi Logic Corp Digital video broadcasting
US6212574B1 (en) 1997-04-04 2001-04-03 Microsoft Corporation User mode proxy of kernel mode operations in a computer operating system
US6205492B1 (en) 1997-04-04 2001-03-20 Microsoft Corporation Method and computer program product for interconnecting software drivers in kernel mode
US6370198B1 (en) 1997-04-07 2002-04-09 Kinya Washino Wide-band multi-format audio/video production system with frame-rate conversion
US5898779A (en) 1997-04-14 1999-04-27 Eastman Kodak Company Photograhic system with selected area image authentication
US5872956A (en) 1997-04-24 1999-02-16 International Business Machines Corporation Design methodology for device drivers supporting various operating systems network protocols and adapter hardware
US6269484B1 (en) 1997-06-24 2001-07-31 Ati Technologies Method and apparatus for de-interlacing interlaced content using motion vectors in compressed video streams
JPH11184649A (ja) 1997-07-25 1999-07-09 Seiko Epson Corp 印刷システム、方法及びプリンタ
US6144390A (en) * 1997-08-04 2000-11-07 Lucent Technologies Inc. Display composition technique
US6262773B1 (en) 1997-09-15 2001-07-17 Sharp Laboratories Of America, Inc. System for conversion of interlaced video to progressive video using edge correlation
US6028677A (en) 1997-09-16 2000-02-22 Hewlett-Packard Co. Method and apparatus for converting a gray level pixel image to a binary level pixel image
US6057889A (en) 1997-09-26 2000-05-02 Sarnoff Corporation Format-responsive video processing system
US7039876B2 (en) 1997-10-06 2006-05-02 Canon Kabushiki Kaisha User interface for image acquisition devices
US6522336B1 (en) 1997-10-31 2003-02-18 Hewlett-Packard Company Three-dimensional graphics rendering apparatus and method
US6208350B1 (en) 1997-11-04 2001-03-27 Philips Electronics North America Corporation Methods and apparatus for processing DVD video
JP3700357B2 (ja) 1997-11-25 2005-09-28 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置
JP3591259B2 (ja) 1997-12-12 2004-11-17 セイコーエプソン株式会社 ネットワークシステム並びにネットワーク印刷方法
US6047295A (en) * 1998-05-05 2000-04-04 International Business Machines Corporation Computer system, program product and method of managing weak references with a concurrent mark sweep collector
KR100296958B1 (ko) 1998-05-06 2001-09-22 이석우 블록 데이터 암호화 장치
TW432865B (en) 1998-06-11 2001-05-01 Matsushita Electric Ind Co Ltd Video display method and device
US6141705A (en) 1998-06-12 2000-10-31 Microsoft Corporation System for querying a peripheral device to determine its processing capabilities and then offloading specific processing tasks from a host to the peripheral device when needed
US6597810B1 (en) * 1998-06-25 2003-07-22 Matsushita Electrical Industrial Co., Ltd. Image processor
US6034733A (en) 1998-07-29 2000-03-07 S3 Incorporated Timing and control for deinterlacing and enhancement of non-deterministically arriving interlaced video data
US6573905B1 (en) 1999-11-09 2003-06-03 Broadcom Corporation Video and graphics system with parallel processing of graphics windows
US6353438B1 (en) 1999-02-03 2002-03-05 Artx Cache organization—direct mapped cache
US6359631B2 (en) 1999-02-16 2002-03-19 Intel Corporation Method of enabling display transparency for application programs without native transparency support
US6753878B1 (en) 1999-03-08 2004-06-22 Hewlett-Packard Development Company, L.P. Parallel pipelined merge engines
US6952215B1 (en) 1999-03-31 2005-10-04 International Business Machines Corporation Method and system for graphics rendering using captured graphics hardware instructions
US6762761B2 (en) 1999-03-31 2004-07-13 International Business Machines Corporation Method and system for graphics rendering using hardware-event-triggered execution of captured graphics hardware instructions
US6295068B1 (en) 1999-04-06 2001-09-25 Neomagic Corp. Advanced graphics port (AGP) display driver with restricted execute mode for transparently transferring textures to a local texture cache
JP2000293608A (ja) 1999-04-12 2000-10-20 Omron Corp 装置ドライバ及び装置ドライバシステム
JP2000298565A (ja) 1999-04-14 2000-10-24 Canon Inc 印刷制御方法及び装置と前記印刷制御方法を実行するプログラムを記憶した記憶媒体
US6323875B1 (en) 1999-04-28 2001-11-27 International Business Machines Corporation Method for rendering display blocks on display device
US6304733B1 (en) * 1999-05-19 2001-10-16 Minolta Co., Ltd. Image forming apparatus capable of outputting a present time
US6331874B1 (en) 1999-06-29 2001-12-18 Lsi Logic Corporation Motion compensated de-interlacing
US6437788B1 (en) * 1999-07-16 2002-08-20 International Business Machines Corporation Synchronizing graphics texture management in a computer system using threads
US20020145610A1 (en) * 1999-07-16 2002-10-10 Steve Barilovits Video processing engine overlay filter scaler
GB9918643D0 (en) 1999-08-06 1999-10-13 Canon Kk Geometry pipeline for computer graphics
JP2001054075A (ja) 1999-08-06 2001-02-23 Hitachi Ltd 画像信号の動き補償走査変換回路
JP3948171B2 (ja) 1999-09-10 2007-07-25 富士ゼロックス株式会社 電子文書管理装置および電子文書管理方法
US6671068B1 (en) 1999-09-30 2003-12-30 Sharp Laboratories Of America, Inc. Adaptive error diffusion with improved edge and sharpness perception
US6654022B1 (en) 1999-09-30 2003-11-25 International Business Machines Corporation Method and apparatus for lookahead generation in cached computer graphics system
AUPQ377899A0 (en) 1999-10-29 1999-11-25 Canon Kabushiki Kaisha Phase three kernel selection
AUPQ377599A0 (en) 1999-10-29 1999-11-25 Canon Kabushiki Kaisha Colour clamping
US6466944B1 (en) 1999-12-02 2002-10-15 Novell, Inc. Method for creation, management, and use of files containing multiple virtual data streams using standard file system APIs
US6614441B1 (en) 2000-01-07 2003-09-02 Intel Corporation Method and mechanism of automatic video buffer flipping and display sequence management
US6466226B1 (en) 2000-01-10 2002-10-15 Intel Corporation Method and apparatus for pixel filtering using shared filter resource between overlay and texture mapping engines
US6823525B1 (en) 2000-01-21 2004-11-23 Ati Technologies Inc. Method for displaying single monitor applications on multiple monitors driven by a personal computer
JP2001204045A (ja) 2000-01-24 2001-07-27 Mitsubishi Electric Corp 動き検出装置
US6567091B2 (en) 2000-02-01 2003-05-20 Interactive Silicon, Inc. Video controller system with object display lists
US6901453B1 (en) 2000-02-16 2005-05-31 Microsoft Corporation Modularization of broadcast receiver driver components
US6906707B2 (en) 2000-02-24 2005-06-14 Canon Kabushiki Kaisha Image processing apparatus and method
US6567098B1 (en) 2000-06-22 2003-05-20 International Business Machines Corporation Method and apparatus in a data processing system for full scene anti-aliasing
JP2003052002A (ja) 2000-09-01 2003-02-21 Seiko Epson Corp 画像ファイルの出力画像調整
US6828981B2 (en) * 2000-11-29 2004-12-07 Videotek, Inc. Method and apparatus for polar display of composite and RGB color gamut violation
US6771269B1 (en) 2001-01-12 2004-08-03 Ati International Srl Method and apparatus for improving processing throughput in a video graphics system
US6690427B2 (en) 2001-01-29 2004-02-10 Ati International Srl Method and system for de-interlacing/re-interlacing video on a display device on a computer system during operation thereof
US6831999B2 (en) 2001-02-08 2004-12-14 Canon Kabushiki Kaisha Color management architecture using phantom profiles to transfer data between transformation modules
US6940557B2 (en) 2001-02-08 2005-09-06 Micronas Semiconductors, Inc. Adaptive interlace-to-progressive scan conversion algorithm
JP3608533B2 (ja) 2001-02-09 2005-01-12 セイコーエプソン株式会社 ネットワークを介した画像処理
US7236204B2 (en) 2001-02-20 2007-06-26 Digeo, Inc. System and method for rendering graphics and video on a display
US7148975B2 (en) 2001-04-23 2006-12-12 Hewlett-Packard Development Company, L.P. Method and apparatus for improving data conversion efficiency
US6859235B2 (en) 2001-05-14 2005-02-22 Webtv Networks Inc. Adaptively deinterlacing video on a per pixel basis
CN100454365C (zh) 2001-05-23 2009-01-21 皇家菲利浦电子有限公司 抖动方法和抖动装置
US7072946B2 (en) 2001-05-31 2006-07-04 Juniper Networks, Inc. Network router management interface with API invoked via login stream
US6885374B2 (en) 2001-06-29 2005-04-26 Intel Corporation Apparatus, method and system with a graphics-rendering engine having a time allocator
US6788312B1 (en) 2001-08-06 2004-09-07 Nvidia Corporation Method for improving quality in graphics pipelines through a frame's top and bottom field processing with conditional thresholding and weighting techniques
US7039909B2 (en) 2001-09-29 2006-05-02 Intel Corporation Method and apparatus for performing compiler transformation of software code using fastforward regions and value specialization
JP2003153079A (ja) 2001-11-08 2003-05-23 Sony Corp 画像処理装置と画像処理方法
US6806982B2 (en) 2001-11-30 2004-10-19 Zebra Imaging, Inc. Pulsed-laser systems and methods for producing holographic stereograms
US6943905B2 (en) 2001-12-20 2005-09-13 Sharp Laboratories Of America, Inc. Virtual print driver system and method
US20040024580A1 (en) 2002-02-25 2004-02-05 Oak Technology, Inc. Server in a media system
US7219352B2 (en) 2002-04-15 2007-05-15 Microsoft Corporation Methods and apparatuses for facilitating processing of interlaced video images for progressive video displays
US7451457B2 (en) 2002-04-15 2008-11-11 Microsoft Corporation Facilitating interaction between video renderers and graphics device drivers
JP2004023328A (ja) 2002-06-14 2004-01-22 Matsushita Electric Ind Co Ltd 画像処理装置、画像処理方法、プログラム、および媒体
US20030234892A1 (en) * 2002-06-25 2003-12-25 Hu Julian Jaw-Long Television receiver with reduced flicker by 3/2 times standard sync
KR20040006065A (ko) * 2002-07-09 2004-01-24 삼성전자주식회사 장면전환검출장치 및 그 방법
US20040032906A1 (en) 2002-08-19 2004-02-19 Lillig Thomas M. Foreground segmentation for digital video
US7139002B2 (en) 2003-08-01 2006-11-21 Microsoft Corporation Bandwidth-efficient processing of video images
US7158668B2 (en) 2003-08-01 2007-01-02 Microsoft Corporation Image processing using linear light values and other image processing improvements
US7643675B2 (en) * 2003-08-01 2010-01-05 Microsoft Corporation Strategies for processing image information using a color information data structure
US7180525B1 (en) 2003-11-25 2007-02-20 Sun Microsystems, Inc. Spatial dithering to overcome limitations in RGB color precision of data interfaces when using OEM graphics cards to do high-quality antialiasing

Also Published As

Publication number Publication date
US20110170006A1 (en) 2011-07-14
KR20110028403A (ko) 2011-03-17
US20050024384A1 (en) 2005-02-03
CN101867831A (zh) 2010-10-20
CN1745373B (zh) 2011-06-22
US7929754B2 (en) 2011-04-19
US7643675B2 (en) 2010-01-05
WO2005013087A2 (en) 2005-02-10
WO2005013087A3 (en) 2005-06-16
US20100150441A1 (en) 2010-06-17
CN1745373A (zh) 2006-03-08
EP1625509B1 (en) 2012-01-25
KR101130422B1 (ko) 2012-03-28
EP1625509A2 (en) 2006-02-15
US8428346B2 (en) 2013-04-23
ATE543335T1 (de) 2012-02-15
EP1625509A4 (en) 2009-08-19
WO2005013087A8 (en) 2006-11-02
KR101030358B1 (ko) 2011-04-20
CN101867831B (zh) 2012-10-03

Similar Documents

Publication Publication Date Title
KR101030358B1 (ko) 이미지 정보를 처리하기 위한 시스템, 방법, 컴퓨터 판독가능 기록 매체, 및 장치
US7139002B2 (en) Bandwidth-efficient processing of video images
US7564470B2 (en) Compositing images from multiple sources
US8994744B2 (en) Method and system for mastering and distributing enhanced color space content
US8184127B2 (en) Apparatus for and method of generating graphic data, and information recording medium
US20180018932A1 (en) Transitioning between video priority and graphics priority
US7554563B2 (en) Video display control apparatus and video display control method
JP5451610B2 (ja) カラーデバイスまたはカラーコンテントの実色域を記述する方法
KR20070026609A (ko) 2개의 고해상도 이미지를 하향변환해서 혼합하는 방법 및디바이스
US7215345B1 (en) Method and apparatus for clipping video information before scaling
US7414632B1 (en) Multi-pass 4:2:0 subpicture blending
EP1850290A2 (en) Image processing apparatus and method for preventing degradation of image quality when bit format of image is converted
JP2002512470A (ja) ネットワーク環境においてビデオ・プロトコルをサポートする方法及び装置
JP5394447B2 (ja) カラー情報データ構造体を使用するイメージ情報の処理の戦略
US20090073178A1 (en) Compressing scheme using qualifier watermarking and apparatus using the compression scheme for temporarily storing image data in a frame memory
Demos The unfolding merger of television and movie technology

Legal Events

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

Payment date: 20160318

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170317

Year of fee payment: 7