KR101816661B1 - 비디오 스케일러들에서의 링잉 억제 - Google Patents

비디오 스케일러들에서의 링잉 억제 Download PDF

Info

Publication number
KR101816661B1
KR101816661B1 KR1020147020598A KR20147020598A KR101816661B1 KR 101816661 B1 KR101816661 B1 KR 101816661B1 KR 1020147020598 A KR1020147020598 A KR 1020147020598A KR 20147020598 A KR20147020598 A KR 20147020598A KR 101816661 B1 KR101816661 B1 KR 101816661B1
Authority
KR
South Korea
Prior art keywords
values
video data
scaled
coefficients
mixing
Prior art date
Application number
KR1020147020598A
Other languages
English (en)
Other versions
KR20140107581A (ko
Inventor
로렌스 에이. 톰슨
Original Assignee
래티스세미컨덕터코퍼레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 래티스세미컨덕터코퍼레이션 filed Critical 래티스세미컨덕터코퍼레이션
Publication of KR20140107581A publication Critical patent/KR20140107581A/ko
Application granted granted Critical
Publication of KR101816661B1 publication Critical patent/KR101816661B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
    • 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
    • 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/0135Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Television Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Image Processing (AREA)

Abstract

실시예들은 전반적으로 비디오 스케일러들에서의 링잉 억제에 관한 것이다. 방법의 일 실시예는, 비디오 데이터의 스트림을 수신하는 단계로서, 수신된 비디오 데이터는 비디오 데이터 값들의 세트들을 포함하는, 단계, 및 메모리에 비디오 데이터 값들의 제 1 세트를 저장하는 단계를 포함한다. 비디오 데이터 값들의 세트에 대한 스케일링된 값들의 제 1 세트는 스케일링 기술에 기초하여 결정되며, 제 2 세트는 선형 보간에 기초한다. 방법은, 수신된 비디오 데이터에 대한 진폭의 변화율을 검출하는 단계, 변화율에 적어도 부분적으로 기초하여 믹싱 제어 신호를 생성하는 단계, 계수들의 블렌딩된 세트를 생성하기 위해 믹싱 제어 신호에 적어도 부분적으로 기초하여 스케일링된 값들의 제 1 세트와 스케일링된 값들의 제 2 세트를 믹싱하는 단계, 및 블렌딩된 값들의 세트를 사용하여 스케일링된 비디오 데이터 출력을 생성하는 단계를 포함한다.

Description

비디오 스케일러들에서의 링잉 억제{RINGING SUPPRESSION IN VIDEO SCALERS}
본 발명의 실시예들은 전반적으로 전자 데이터 통신 분야에 관한 것이며, 보다 구체적으로, 비디오 스케일러들에서의 링잉 억제에 관한 것이다.
전자 디바이스들에서의 비디오 이미지들의 표현에 있어, 이미지를 특정 시스템에서 디스플레이하기 위해 비디오 데이터의 스트림의 스케일이 수정될 것이 흔히 요구된다. 비디오 데이터의 스트림의 스케일을 변화시키기 위한 회로, 엘러먼트, 또는 모듈은 본 명세서에서 전반적으로 "스케일러(scaler)"로서 지칭된다.
스케일러는 다수의 상이한 기술들을 사용할 수 있다. 그러나, 특정 스케일링 기술은 "필터 링잉(filter ringing)"(본 명세서에서 "링잉"으로도 지칭되는)을 생성할 수 있다. 링잉은 입력 데이터에서의 급격한 변화들, 즉, 고 에너지 및 고 주파수 둘 모두를 갖는 입력에서의 변화에 의해 초래된다. 입력 신호에서의 이러한 변화들은 자연적인 이미지들(카메라들에 의해 생성된 이미지들)에 대해서는 상대적으로 희귀하며, 따라서 이러한 비디오 데이터를 스케일링할 때 링잉이 일반적으로 덜 두드러진 문제이다. 그러나, 컴퓨터 소스들로부터의 그래픽 이미지들은 흔히 링잉을 초래할 수 있는 급격한 변화 특성들을 포함한다. 그래픽스 엘러먼트들이 흔히 비디오 이미지들과 믹싱되거나 또는 그 위에 오버레이되기 때문에, 사용된 스케일링 기술에 의해 초래된 링잉이 시청자에게 불쾌할 수 있으며, 따라서 기술의 성능 특성들을 감소시킨다.
본 발명의 실시예들은 전반적으로 비디오 스케일러들에서의 링잉 억제에 관한 것이다.
본 발명의 제 1 측면에 있어, 방법의 일 실시예는, 비디오 데이터의 스트림을 수신하는 단계로서, 수신된 비디오 데이터는 비디오 데이터 값들의 세트를 포함하는, 단계, 및 비디오 데이터의 스트림으로부터의 비디오 데이터 값들의 제 1 세트를 메모리에 저장하는 단계를 포함한다. 스케일링된 값들의 제 1 세트가 스케일링 기술에 기초하여 비디오 데이터 값들의 세트에 대해 결정되며, 비디오 데이터 값들의 세트에 대한 스케일링된 값들의 제 2 세트는 비디오 데이터의 선형 보간에 기초한다. 방법은, 수신된 비디오 데이터에 대한 진폭의 변화율을 검출하는 단계, 비디오 데이터의 변화율에 적어도 부분적으로 기초하여 믹싱 제어 신호를 생성하는 단계, 계수들의 블렌딩된(blended) 세트를 생성하기 위하여 믹싱 제어 신호에 적어도 부분적으로 기초하여 스케일링된 값들의 제 1 세트와 스케일링된 값들의 제 2 세트를 믹싱하는 단계, 및 블렌딩된 값들의 세트를 사용하여 스케일링된 비디오 데이터 출력을 생성하는 단계를 더 포함한다.
본 발명의 제 2 측면에 있어, 장치의 일 실시예는, 비디오 데이터 스트림으로부터의 비디오 데이터 값들의 세트들을 저장하기 위한 메모리, 및 비디오 스케일링 기술을 사용하여 비디오 데이터 스트림의 스케일링을 위한 스케일링된 값들의 제 1 세트를 결정하기 위한 스케일링 값 결정부를 포함한다. 장치는, 비디오 데이터 스트림의 진폭의 변화율을 결정하고 결정된 변화율에 기초하여 믹싱 제어 신호를 결정하기 위한 검출 엘러먼트, 및 블렌딩된 값들의 세트를 생성하기 위하여 스케일링된 값들의 제 1 세트를 선형 보간에 기초한 계수들의 제 2 세트와 믹싱하기 위한 믹싱 엘러먼트를 더 포함한다.
본 발명의 실시예들이 첨부된 도면들의 도면들에서 비제한적으로 예로써 예시되며, 첨부된 도면들의 도면들에서 동일한 참조 번호들은 동일한 엘러먼트들을 지칭한다.
도 1은 적응적 스케일러를 포함하는 멀티미디어 장치 또는 시스템의 일 실시예의 예시이다.
도 2는 적응적 스케일러의 일 실시예의 예시이다.
도 3은 수직 스케일러의 일 섹션의 일 실시예를 예시한다.
도 4a는 변화율 검출 및 계수 믹싱을 포함하는 수직 스케일러의 섹션의 일 실시예를 예시한다.
도 4b는 병렬로 동작하는 스케일러들을 포함하는 수직 스케일러의 섹션의 일 실시예를 예시한다.
도 5는 변화율 검출 모듈의 일 부분의 일 실시예를 예시한다.
도 6은 변화율 검출 모듈의 일 부분의 일 실시예를 예시한다.
도 7은 스케일링된 비디오 데이터의 생성을 위한 프로세스의 일 실시예를 예시하는 순서도이다.
도 8은 스케일링 장치 또는 시스템의 일 실시예에서의 FIR 디지털 필터를 예시한다.
도 9는 비디오 스케일링 프로세스, 장치, 또는 시스템의 일 실시예에서의 샘플링 레이트(rate)의 수정을 예시한다.
도 10은 스케일링 프로세스, 장치, 또는 시스템의 일 실시예에서의 데시메이션(decimation)에 의한 FIR 필터의 샘플링 레이트의 수정을 예시한다.
도 11은 스케일링 프로세스, 장치, 또는 시스템의 일 실시예에서의 보간에 의한 FIR 필터의 샘플링 레이트의 수정을 예시한다.
도 12a는 시스템의 일 실시예에서의 샘플링 비율에 의한 필터 동작의 수정을 예시한다.
도 12b는 샘플링 비율에 의한 필터 동작의 수정을 위한 시스템을 예시한다.
도 13은 스케일링 프로세스, 장치, 또는 시스템의 일 실시예에서 입력 흐름 제어를 제공하는 다위상(polyphase) FIR 디지털 필터를 예시한다.
도 14는 스케일링 프로세스, 장치, 또는 시스템의 일 실시예에서 입력 흐름 제어를 제공하는 다위상 FIR 필터를 예시한다.
도 15는 비디오 스케일링 프로세스, 장치, 또는 시스템의 실시예의 위상 누산기(phase accumulator)를 예시한다.
도 16은 비디오 스케일러의 일 실시예로의 입력 샘플들의 시퀀스를 예시한다.
도 17a는 다위상 FIR 필터를 포함하는 비디오 스케일러에 의해 프로세싱된 입력 시퀀스를 예시한다.
도 17b는 선형 보간기를 포함하는 비디오 스케일러에 의해 프로세싱된 입력 시퀀스를 예시한다.
본 발명의 실시예들은 전반적으로 비디오 스케일러들에서의 링잉 억제에 관한 것이다.
일부 실시예들에 있어, 방법, 장치, 또는 시스템은 비디오 스케일러들에서의 링잉 억제를 가능하게 한다. 일부 실시예들에 있어, 방법, 장치, 또는 시스템은, 비디오 스케일링에 의해 생성된 링잉을 감소시키기 위하여, 다-위상 필터(poly-phase filter)를 사용하는 기법과 같은 스케일링 기술과 함께 선형 보간의 구현을 포함한다.
비디오 스케일링은 디지털 비디오 이미지의 해상도를 크기 조절(resize)하거나 또는 변화시키는데 사용되는 신호 프로세싱 기능이다. 흔히, 비디오 스케일링은 비디오 포맷들을 변환할 것을 필요로 한다. 포맷 변환은 일반적으로 텔레비전 세트들 및 다른 디지털 디스플레이들에서 수행되거나, 또는 DVD 플레이어들, 블루레이 플레이어들, 또는 방송 셋-탑 박스들과 같은 비디오 소스 디바이스들 내에서 수행된다.
일 예에 있어, DVD 광 디스크는 압축된 파일로서 동영상(motion picture)을 저장할 수 있다. 저장된 동영상을 재생하기 위하여, DVD 플레이어는 광 디스크로부터 데이터를 판독하고 압축 해제 프로세싱을 수행하며, 이는 표준 화질(definition) 비디오 신호를 산출할 것이다. 표준 화질 비디오는 전형적으로 프레임당 720 x 480(60 Hz 비디오 표준들에 대해), 또는 720 x 576(50 Hz 표준들에 대해) 픽셀들의 해상도를 갖는다.
표준 화질 비디오 신호는 포맷 변환을 수행함으로써 고화질 디스플레이 상에서 디스플레이될 수 있으며, 포맷 변환 프로세싱은 전형적으로 비디오 스케일링을 필요로 한다. 예를 들어, 고화질에서 사용되는 하나의 일반적인 해상도는 프레임당 1920 x 1080 픽셀들을 디스플레이한다. 표준 화질 비디오 신호가 고화질 디스플레이 상에서 시청 가능해지도록 720 x 480의 해상도로부터 1920 x 1080의 해상도로 변환된다. 이러한 변환이 비디오 스케일러에 의해 수행된다.
"스케일링 비율(scaling ratio)"은 입력에 의해 나눠진 비디오 스케일러의 출력의 비율을 지칭한다. 흔히, 이는 간편하게 "수직 스케일링 비율" 및 "수평 스케일링 비율"로서 표현된다. 이전의 문단에서 사용된 예에 대하여, 720 x 480의 해상도를 갖는 입력 비디오 신호를 1920 x 1080의 출력 해상도로 변환하는 스케일러는 다음의 비율들을 사용한다:
수직 스케일링 비율 = (수직 출력 해상도)/(수직 입력 해상도)
= 1080/480
수평 스케일링 비율 = (수평 출력 해상도)/(수평 입력 해상도)
= 1920/720
이러한 예로부터, 스케일링 비율들이 정수들의 비율들이며, 수평 및 수직 스케일링이 상이한 스케일링 비율들을 요구할 수 있다는 것이 확인될 수 있다. 또한, 다수의 상이한 해상도들이 신호들 및 디스플레이들 둘 모두에 대하여 사용되며, 표준 비디오 포맷들의 변환에 더하여, 비디오 스케일러가 또한 줌, 언더스캔(underscan), 및 종횡비 교정들을 포함하는 비디오 스케일링을 필요로 하는 사용자 제어들을 구현하는데 사용될 수 있다. 이러한 이유로, 상업적으로 실용적인 비디오 스케일러는 스케일링 비율들의 범위에 걸쳐 스케일링을 수행하기 위한 충분한 프로그램가능성을 제공하도록 요구될 수 있다.
비디오 이미지들은 개별적인 화소(picture element)들 또는 픽셀들의 어레이들로 구성된다. 픽셀들은 비디오 신호의 디지털 샘플들이며, 비디오 스케일링은 디지털 샘플링 레이트 변환의 애플리케이션이다.
일부 실시예들에 있어, 특정 스케일링 기술을 사용하는 비디오 스케일러는 데이트의 변화율을 검출하고 믹싱 제어 신호들을 생성하기 위한 변화율 검출 모듈 또는 엘러먼트를 포함할 수 있다. 일부 실시예들에 있어, 비디오 스케일러는, 선형 보간 계수들 또는 루마(luma) 값들과 같은 스케일링된 값들을 생성하고, 그리고 필터 링잉의 억제를 위해 믹싱 제어 신호들에 기초하여 선택된 스케일링 기술에 대해 획득되거나 또는 생성된 스케일링된 값들과 선형 보간 스케일링된 값들을 믹싱하기 위한, 계수 믹서 모듈 또는 엘러먼트를 포함할 수 있다. 변화율 검출 및 계수 믹싱에 관한 본 명세서에서의 논의가 전반적으로 2개의 모듈들 또는 엘러먼트들을 언급하지만, 실시예들이 이러한 형식에 한정되지 않으며, 예를 들어, 검출 및 믹싱 기능들을 제공하는 단일 모듈 또는 엘러먼트, 또는 검출 및 믹싱 기능들을 제공하는 3개 이상의 모듈들 또는 엘러먼트들을 포함할 수 있다.
비디오 이미지들의 크기 조절 또는 스케일링을 위해 사용될 수 있는 다수의 상이한 기술들이 존재한다. 일반적인 스케일링 기술들은 비제한적으로 다음을 포함한다: (1) 최인접 이웃(nearest neighbor)(픽셀 복제); (2) 선형 보간, 및 양-선형 보간(bi-linear Interpolation)(여기에서 "양(bi)"은 2-차원적 보간을 나타낸다) - 주어진 픽셀들(또는 샘플 지점들) 사이의 직선 세그먼트(segment) 상의 픽셀들을 계산함; (3) 큐빅 및 바이-큐빅(bi-cubic) 보간 - 보간된 픽셀 값들을 계산하기 위하여 다항식(polynomial)을 사용함. 에르미트 보간(Hermite Interpolation) 및 캣멀-롬 스플라인들(Catmull-Rom Splines)을 포함하는 다항식들을 사용하는 수많은 다른 관련 방법들이 존재한다. 그러나, 이들은 단지 다항식들을 채용하는 수학적 방법들의 예들이며, 다항식들을 채용하는 가능한 방법들의 완전한 목록을 기술하지는 않는다; 및 (4) 다-위상 필터 뱅크 - 다-위상 필터 뱅크는 푸리에 분석에 관련되며, 여기에서 장치, 시스템 또는 프로세스는 데이터 샘플들의 세트의 주파수 성분들의 연산, 및 주파수 및 입력-대-출력 위상 관계에 기초한 출력 샘플의 연산을 가능하게 한다.
이상에서 제공된 스케일링 기술들은 전반적으로 가장 단순한 것으로부터 가장 복잡한 것으로, 그리고 출력 이미지 품질과 관련하여 가장 낮은 것으로부터 가장 높은 것으로의 순서로 열거되었다. 로직 필요사항들과 관련하여, 구현 비용, 연산 시간, 파워 소모, 및 다른 인자들이 또한 전반적으로 이러한 순서를 따른다.
가능한 기술들 중에서, 비디오 스케일링에 대해 사용될 때 다-위상 필터 뱅크들이 고성능 및 융통성을 포함하는 다수의 이점들을 갖는다. 그러나, 특정 조건들 하에서, 다-위상 필터는 출력 이미지에 원치않는 아티팩트(artifact)들을 도입할 수 있다. "필터 링잉"(또는 "링잉")으로서 지칭되는 이러한 아티팩트들의 존재는 이러한 유형의 필터들에서 흔한 문제이다. 디지털 신호 프로세싱의 표현에 있어, 다-위상 필터 내의 링잉은 "깁스 현상(Gibbs Phenomenon)"으로서 알려져 있다. 추가로, 링잉은 또한 다른 다항식 기법들에서도 가능성이 있으며, 그 결과가 "런지 현상(Runge's Phenomenon)"으로 지칭된다.
일부 실시예들에 있어, 다-위상 필터 뱅크 기반 스케일러와 같은 비디오 스케일러는 필터 링잉의 억제를 위한 엘러먼트들을 포함한다. 일부 실시예들에 있어, 스케일러는 다음을 포함한다:
(1) 입력 샘플 그리드(grid)에 대한 출력 픽셀의 위상의 연산.
(2) 다-위상 필터에 대한 계수들과 같은 스케일링된 값들의 세트를 결정하기 위한 연산된 위상 정보의 사용으로서, 여기에서 계수들은, 예를 들어, 다-위상 필터에 대해 미리-연산된 계수들을 조회(look up)하거나 또는 계수들의 세트를 계산함으로써 결정될 수 있다.
(3) 선형 보간 계수들의 세트를 결정하기 위한 연산된 위상 정보의 사용으로서, 여기에서 계수들은, 예를 들어, 미리-연산된 선형 보간 계수들을 조회하거나 또는 계수들의 세트를 계산함으로써 결정될 수 있다.
(4) 입력 샘플들의 세트의 진폭의 변화율을 연산.
(5) 진폭의 변화율의 연산으로부터 변화율 (rate of change: ROC) 다중-비트 디지털 신호를 생성.
(6) 선형 보간 계수들과 다-위상 필터 계수들을 블렌딩하기 위한 믹싱 제어로서 변화율 신호를 사용.
(7) 출력 픽셀을 연산하기 위하여 다-위상 필터에서 블렌딩된 계수들을 사용.
일부 실시예들에 있어, 선형 보간 계수들을 스케일러 기술에 대한 계수들과 믹싱하기 위한 프로세스가 스케일러의 출력에서의 링잉을 감소시킴으로써 다-위상 필터 뱅크에 기반하는 비디오 스케일러를 개선하는데 사용될 수 있다. 그러나, 실시예들이 다-위상 필터 뱅크에 한정되지 않으며, 일부 실시예들에 있어, 기술이 다른 고성능 비디오 스케일러 설계들에 그리고 다항식 기법들에 추가로 적용될 수 있다.
컴퓨터 생성 이미지들은 스케일링된 이미지들에서 링잉을 야기할 수 있는 특성들을 갖는다. 단일 픽셀의 공간에 걸친 풀-스케일 전환(transition)들과 같은 급격한 전환들은 자연적인 이미지들에서는 희귀하지만 컴퓨터 그래픽스에서는 흔하다. 이러한 맥락에 있어, "컴퓨터 소스들"은 컴퓨터들, DVD 플레이어들, AV 수신기들, 비디오 셋-탑 박스들과 같은 비디오 신호들을 생성하는 소비자 전자 디바이스들, 및 다른 컴퓨팅 시스템들을 포함하며, 여기에서 그래픽스 이미지들은 비제한적으로 메뉴들 및 아이콘들과 같은 엘러먼트들을 포함할 수 있다. 그래픽스의 이러한 특징들은 다-위상 필터 기반 스케일러가 링잉하게 할 수 있다. 이에 더하여, 흔치 않지만, 링잉이 직선으로 나타나는 "블랙 바들(black bars)"을 따르는 것과 같이, 자연적인 이미지들에서 불쾌한 레벨로 링잉이 발생할 수 있는 특정 경우들이 존재한다.
일부 실시예들에 있어, 만능(universal) 스케일링 기술이 스케일링된 자연적 이미지들의 품질을 유지하면서 링잉의 감소를 가능하게 한다. 일부 실시예들에 있어, 스케일링 기술의 특징들은 다음을 포함한다:
(1) YCbCr 4:2:2: 스케일러들 또는 4:4:4/RGB 스케일러들과 같은 공지된 스케일러들에 기술의 추가를 허용하는 모듈식 설계.
(2) 수평 및 수직 스케일러들에 대한 독립적인 동작.
(3) 추가 라인 메모리를 필요로 하지 않으며, 동작시 스케일러가 비교적 단순한, 스케일러 동작.
(4) 스케일러는 이미지 특성들에 대해 자기-적응적일 수 있으며, 스케일러는 성능을 조정하기 위한 단순한 소프트웨어 제어들을 더 포함한다.
일부 실시예들에 있어, 스케일러는 인입(incoming) 이미지의 컨텐트에 기초하여 활성 동작(active operation) 중인 스케일링 필터의 특성을 수정함으로써 동작한다. 일부 실시예들에 있어, 만능 스케일러는 생성되거나 또는 검색된 표준 필터 계수들(예를 들어, 판독 전용 메모리(ROM)에 저장된 계수들과 같은)을 누산기(accumulator)로부터의 위상 정보를 사용하여 내부적으로 생성된 계수들의 세트와 믹싱함으로써 이러한 동작을 수행한다. 일부 실시예들에 있어, 내부적으로 생성된 계수들은 선형 보간기(linear interpolator: LI) 계수들일 수 있다.
선형 보간기의 이점은 선형 보간기가 일반적으로 이미지 내에서 링잉을 생성하지 않을 것이라는 점이다. 그러나, 스케일러로서 사용될 때, 선형 보간기는 일반적으로 다-위상 필터에 의해 생성되는 것과 동일한 레벨의 이미지 품질을 생성하지 않는다. 일부 실시예들에 있어, 계수들과 같은 스케일링된 값들의 2개의 세트들의 지능적 블렌딩에 의해, 만능 스케일러는 감소된 링잉을 갖는 고품질 출력을 생성하기 위해 선형 보간기 및 다-위상 필터의 특성들의 이점을 취할 수 있다.
유한 입력 응답(Finite Input Response: FIR) 디지털 필터들이 다수의 신호 애플리케이션들에서 사용될 수 있다. FIR 디지털 필터는 주파수들의 상이한 대역을 감쇠시키면서 주파수들의 대역을 출력으로 통과하게 하는 주파수 선택 구조이다. FIR 디지털 필터는 저역-통과, 고역 통과, 대역-통과, 또는 대역-차단 필터링 기능을 위해 설계될 수 있지만, FIR 디지털 필터가 이러한 기본 유형들에 한정되는 것은 아니다. 다른 용례들 중에서, 저역 통과 FIR 필터들이 비디오 스케일링에 대해 사용될 수 있으며, 저역-통과 필터 응답들이 본 명세서에서 설명된다.
실제, FIR 디지털 필터는 소프트웨어 프로그램 또는 흔한 로직 엘러먼트들로 만들어진 하드웨어 설계와 같은 다수의 형태들로 구현될 수 있다. 본 명세서에서 제공되는 설명은 전반적으로 하드웨어 구현예의 관점으로부터 제공된다.
다위상 FIR 필터의 개념은 디지털 샘플링 레이트 변환을 위한 수단으로서 디지털 신호 프로세싱 분야에서 사용된다. 다위상 FIR 필터는 디지털 비디오를 스케일링하기 위한 알고리즘으로서도 잘 동작한다. 이는 일반적으로 양호한 품질의 출력 이미지들을 생성하는 효율적이고 비용 효과적인 구조로서 사용될 수 있다.
그러나, 다위상 FIR 필터들은 불완전하다. 다위상 FIR 필터가 비디오 스케일링을 위해 사용될 때, 특정 조건들은 다위상 FIR 필터의 출력에서의 왜곡을 드러낼 수 있다.
도 1은 적응적 스케일러를 포함하는 멀티미디어 장치 또는 시스템의 일 실시예의 예시이다. 이러한 예시에 있어, 간략화된 장치 또는 시스템이 제공되며, 예시는 멀티미디어 시스템의 공지된 엘러먼트들을 포함하지 않는다. 일부 실시예들에 있어, 시스템은 수신기(165)를 통해서와 같이 특정 비디오 데이터(150)를 수신하거나 또는 이를 생성하며, 여기에서 하나 이상의 프로세스들(175)과 같은 하나 이상의 엘러먼트들에 의한 조작(handling) 또는 디스플레이(170)(장치 또는 시스템(100)의 일 부분이거나 또는 일 부분이 아닐 수 있는)를 위한 스케일링된 비디오 데이터(160)를 생성하기 위해 스케일링이 필요하다. 일부 실시예들에 있어, 장치 또는 시스템(100)은 비디오 데이터에서의 변화들에 응답하고 필터 링잉을 감소시키기 위한 적응적 스케일러(105)를 포함한다.
일부 실시예들에 있어, 적응적 스케일러(105)는 입력 샘플링 그리드(110)에 대한 픽셀 데이터의 위상을 결정하기 위한 엘러먼트 및 특정 수의 수신된 비디오 데이터 엘러먼트들을 저장하기 위한 메모리(107)를 포함한다. 일부 실시예들에 있어, 스케일러(105)는 다-위상 필터 계수들(115)의 세트를 결정하기 위하여 연산된 위상 정보를 사용한다.
일부 실시예들에 있어, 스케일러는 선형 보간 필터 계수들(120)의 세트를 추가로 결정한다. 일부 실시예들에 있어, 스케일러(105)는 입력 샘플들의 세트의 진폭의 변화율(ROC)을 결정하고 진폭의 결정된 변화율로부터 변화율 신호를 생성하기 위한 엘러먼트 또는 모듈(125)을 포함한다. 일부 실시예들에 있어, 스케일러는 계수 믹싱 엘러먼트 또는 모듈(130)을 포함하며, 여기에서 계수 믹싱 모듈(130)은 선형 보간 필터 계수들을 다-위상 필터 계수들과 블렌딩하기 위하여 믹싱 제어로서 변화율 신호를 사용한다. 일부 실시예들에 있어, 스케일러는 디스플레이(170) 상에서의 표현을 위해 스케일링된 출력 픽셀(160)을 연산하기 위하여 다-위상 필터에서 결과적인 블렌딩된 계수들을 사용한다.
도 2는 적응적 스케일러의 일 실시예의 예시이다. 일부 실시예들에 있어, 적응적 스케일러(200)는 비디오 데이터의 스케일링에 있어 다-위상 필터링을 사용할 수 있다. 일부 실시예들에 있어, 병렬 버스를 통해 연결될 수 있는 스케일러(200)는 신호들 Hsync, Vsync, DE, 및 비디오 클럭과 함께 비디오 입력의 수신을 위한 입력 라인 버퍼들(205)을 포함한다. 입력 라인 버퍼들(205)은 시스템 클럭 신호(SYSCLK) 및 리셋 신호를 더 수신할 수 있다.
도 2에 있어, 스케일러(200)는 수직 필터 생성기(210) 및 수평 필터 계수 생성기(230)로서 도시된 바와 같은, 필터 계수 생성기를 더 포함한다. 예시된 바와 같이, 입력 라인 버퍼들(205)로부터의 데이터와 수직 계수 생성기(210)로부터 생성되고 블렌딩된 계수들이 수직 곱셈기(multiplier) 어레이(215)에 의해 곱해지며, 곱셈의 프로덕트들이 프로덕트(product)들을 합산하고, 오버플로우를 제한하며, 그리고 비트들의 특정 수로 라운딩(round)하기 위한 엘러먼트(220)에 의해 수신되고, 결과적인 수직으로 스케일링된 데이터는 FIFO 버퍼(225)에 의해 유지된다. FIFO 버퍼(225)로부터의 데이터와 수평 계수 생성기(230)로부터의 생성된 계수들이 수평 곱셈기 어레이(235)에 의해 곱해지며, 곱셈의 프로덕트들이 프로덕트들을 합산하고, 오버플로우를 제한하며, 그리고 비트들의 특정 수로 라운딩하기 위한 엘러먼트(240)에 의해 수신되고, 결과적인 수직 및 수평으로 스케일링된 데이터가 제 2 FIFO 버퍼(245)에 의해 유지된다. 스케일러는 신호들 Hsync, Vsync, DE, 및 비디오 클럭과 함께 비디오 출력을 출력한다.
일부 실시예들에 있어, 수직 계수 생성기(210) 및 수평 계수 생성기(230)는, 선형 보간 계수들의 생성, 비디오 데이터의 변화율의 결정, 및 비디오 데이터의 변화율의 결정에 적어도 부분적으로 기초한 다-위상 필터 계수들과 선형 보간 계수들의 믹싱을 위한 엘러먼트들(각기 260 및 270)을 포함한다. 일부 실시예들에 있어, 스케일러는 다-위상 필터 뱅크에 의해 생성되는 필터 링잉을 감소시키기 위하여 엘러먼트들(260~270)을 사용할 수 있다. 엘러먼트들의 동작이 이하에서 더 상세하게 설명된다.
일부 실시예들에 있어, 믹서 동작들은 다음의 기능들을 포함할 수 있다:
(1) 누산기의 위상 정보로부터의 선형 보간 스케일링된 값들의 계산.
(2) 값의 믹싱, 여기에서 변화율 검출 모듈로부터의 믹싱 제어 신호가 다-위상 스케일링된 값들과 선형 보간 스케일링된 값들을 믹싱하고, 블렌딩된 값들의 세트를 생성하는데 사용된다.
일부 실시예들에 있어, 모듈은 링잉 제어 레지스터(ringing control register: RCR)를 포함한다. 일부 실시예들에 있어, 링잉 제어 레지스터는 소프트웨어 프로그램가능 레지스터이며, 정수 및 소수(fraction)와 같은, 혼수(mixed number)의 형태일 수 있다. 예를 들어, 레지스터는 최소 8 비트(정수에 대한 4 비트 및 소수에 대한 4 비트)일 수 있다. 일부 실시예들에 있어, 제 1 RCR이 수직 스케일러 Y 채널에 대해 사용되며, 제 2 RCR이 수평 스케일러 Y 채널에 대해 사용된다.
일부 실시예들에 있어, 링잉 억제가 옵션으로서 크로마(chroma)에 적용될 수 있다. 일 예에 있어, 4:2:2 스케일러에 대해, 별개의 RCR이 수직 크로마 스케일러를 위해 제공될 수 있다. 일부 실시예들에 있어, 수직 크로마 스케일러에 대한 링잉 억제는 4:2:2 스케일러에서 필요하지 않을 수 있다. 다른 예에 있어, 4:4:4 스케일러에 대하여, 링잉 억제가 수직 및 수평 섹션들 둘 모두에서의 크로마에 적용될 수 있다.
일부 실시예들에 있어, 특정 신호들이 디스플레이의 상단, 하단, 좌측 및 우측 가장자리들에서의 계산들에서 "특별 케이스"를 제공한다. 일 예에 있어, 입력 Y3이 현재 입력이고 Y3이 가장자리 근처인 경우, 다른 모든 6개의 Y 입력들에 대한 값들이 존재하지 않을 수 있다. 일부 실시예들에 있어, 값들이, 유실 데이터의 위치에 0(zero)들을 대체하는 것과 같이, 어떠한 값들도 갖지 않는 입력들에 제공된다.
일부 실시예들에 있어, 출력은 믹싱 제어 신호이며, 이는, 예를 들어, 범위 0>1.0에 있는, 11 비트 이진수일 수 있으며, 그 결과 믹싱 제어에 대한 최대 값은 2진 형태로 1.0000000000이다.
일부 실시예들에 있어, 변화율 검출 모듈 또는 엘러먼트의 동작은 다음을 포함한다:
(1) 최대 차이(difference) - 일부 실시예들에 있어, 최대 차이는 다음과 같이 결정될 수 있다:
maxDifference = Max[Abs[Y1 - Y0], Abs[Y2 - Y1], Abs[Y3 - Y2],
Abs[Y4 - Y3], Abs[Y5 - Y4], Abs[Y6 - Y5]]; [1]
여기에서:
Max[]는 값들의 목록으로부터 최대 값을 찾는 함수이다
Abs[]는 절대 값 함수이다
Y0 내지 Y6은 라인 메모리들로부터의 7개의 Y 값들이다
변화율 검출 모듈에 의한 최대 차이의 결정의 일 실시예가 도 5에 제공되며, 이하에서 설명된다.
(2) 차이들의 합계 - 일부 실시예들에 있어, 차이들의 합계가 다음과 같이 결정될 수 있다:
Sum = Abs[Y1 - Y0] + Abs[Y2 - Y1] + Abs[Y3 - Y2] + Abs[Y4 - Y3]
+ Abs[Y5 - Y4] + Abs[Y6 - 5] [2]
변화율 검출 모듈에 의한 차이들의 합계의 결정의 일 실시예가 도 6에 제공되며, 이하에서 설명된다.
(3) 차이 비율 - 일부 실시예들에 있어, 차이 비율(differenceRatio)이 다음과 같이 maxDifference 및 differenceSum을 사용하여 결정된다:
IF differenceSum = 0
THEN differenceRatio = 0
ELSE differenceRatio = maxDifference / differenceSum
이상의 IF 구문은 계산이 0에 의해 나누는 것을 가능하지 않게 한다는 것을 보장한다. differenceSum은 Y0 = Y1 = Y2 = Y3 = Y4 = Y5 = Y6일 때 0이 될 것이다.
(4) 모듈의 출력 - 일부 실시예들에 있어, 변화율 검출 모듈의 출력(mixingControl)이 다음과 같이 differenceRatio, RCR, 및 maxDifference로부터 결정된다:
mixingControl = maxDifference × RCR × differenceRatio [3]
일부 실시예들에 있어, mixingControl에 대한 계산이 1.0보다 더 큰 수를 생성하는 경우, 결과는 1.0으로 제한된다. 따라서, mixingControl의 이진 값은 1.0000000000(이진수)를 초과하지 않는다.
일부 실시예들에 있어, 믹서 모듈의 동작은 스케일러의 계수 ROM으로부터의 또는 계산된 계수들로부터의 입력들과 같은 스케일링된 값 입력들을 수신하는 것, 및 변화율 검출 모듈로부터의 믹싱 제어 정보의 수신을 포함한다. 일부 실시예들에 있어, 믹서 모듈은 수신된 위상 정보로부터의 선형 보간 계수들의 생성을 더 가능하게 하며, 여기에서 수신된 위상 정보는, 예를 들어, 누산기 레지스터의 특정 부분일 수 있다. 일부 실시예들에 있어, 믹서 모듈은 수신된 스케일링된 값 입력 데이터, 생성된 선형 보간 스케일링된 값 데이터, 및 수신된 믹싱 제어 데이터에 기초하여 블렌딩된 값들을 생성하도록 동작한다.
일부 실시예들에 있어, 믹서 모듈로의 입력들은 다음과 같을 수 있다:
(a) 다음과 같이 표현될 수 있는 계수 ROM으로부터의 계수 값들 또는 계수들의 다른 결정:
계수들 = C0, C1. C2, C3, C4, C5, C6
(b) 예를 들어, 누산기 레지스터의 하위 17 비트들과 같은 스케일러의 누산기 레지스터의 소수 부분, 이러한 데이터는 선형 보간 데이터의 결정을 위한 위상 정보를 제공한다.
(c) 계수 믹싱을 제어하는 변화율 모듈로부터의 믹싱 제어 신호.
일부 실시예들에 있어, 계수 믹서 모듈들의 출력은 다음과 같을 수 있다:
블렌딩된 계수들 = BC0, BC1. BC2, BC3, BC4, BC5, BC6
일부 실시예들에 있어, 믹서 모듈 또는 엘러먼트의 동작은 다음을 포함할 수 있다:
(1) 누산기의 위상 정보로부터 선형 보간 계수들을 생성 - 선형 보간 계수들은 Li0, Li1, Li2, Li3, Li4, Li5, 및 Li6으로 지정될 수 있다. 일부 실시예들에 있어, 선형 보간 계수들 중 특정한 것은, Li0 = Li1 = Li5 = Li6 = 0과 같이 0이 될 것이며, 따라서, 이러한 엘러먼트들은 결정되어야 할 필요가 없고, 모듈은 남은 계수들, Li2, Li3, 및 Li4를 결정하도록 동작한다.
일부 실시예들에 있어, 선형 보간기에 대한 위상(LIphase)은 위상 값과 오프셋(offset) 값의 합이며, 예컨대 다음과 같다:
LIphase = phase + offset [6]
여기에서:
Phase = 스케일러의 누산기의 소수 부분. 일 예에 있어, 19-비트 누산기에 대하여, 위상은 누산기 값의 하위 17 이진 비트들과 동일하다.
Offset = 상수, 이러한 예시에 있어 이는 1/62과 동일하다. 17 비트 이진 소수로 변화될 때, 1/62 = 0.00000100001000010이다.
이러한 예시에 있어, "phase" 및 "offset" 둘 모두가 17-비트 소수들이다. 계산시, 가산 동작은 결과의 정수 부분 내로의 캐리(carry)를 생성할 수 있다. 다시 말해서, 2개의 소수들의 덧셈이 1.0과 동일하거나 또는 이보다 큰 수로 합산될 수 있다. 이러한 것이 발생하는 경우, 결과가 여전히 계산에서 사용될 수 있다.
일부 실시예들에 있어, 믹싱 방정식의 결정은 3개의 계수들을 산출하고, 이 계수들 중 하나가 0이다. 나머지 2개의 계수들은 그것들의 합계가 1.0인 소수들로 간주된다. 일부 실시예들에 있어, LI 계수들의 동적 범위는 10 비트들 또는 그 이상이다.
일부 실시예들에 있어, 계수들의 결정은 다음과 같다:
IF [ LIphase <= 0.5
THEN:
Li2 = 0.5 - LIphase
Li3 = LIphase + 0.5
Li4 = 0
ELSE:
Li2 = 0
Li3 = 1.5 - LIphase
Li4 = LIphase - 0.5
]
(2) 블렌딩된 계수들의 결정 - 일부 실시예들에 있어, 블렌딩된 계수들은 다음과 같이 수신된 계수들 및 믹싱 제어에 기초하여 결정된다:
BC0 = (1 - mixingControl) × C0
BC1 = (1 - mixingControl) × C1
BC2 = ((1 - mixingControl) × C2) + (mixingControl × Li2)
BC3 = ((1 - mixingControl) × C3) + (mixingControl × Li3)
BC4 = ((1 - mixingControl) × C4) + (mixingControl × Li4)
BC5 = (1 - mixingControl) × C5
BC6 = (1 - mixingControl) × C6
도 3은 수직 스케일러의 섹션의 일 실시예를 예시한다. 일부 실시예들에 있어, 다-위상 필터 기반 스케일러와 같은 수직 스케일러의 루마 섹션(300)은 데이터 경로(360) 및 제어 루프(350)를 포함한다. 도면은 수직 스케일러의 루마 섹션을 제공한다. 스케일러는 크로마 섹션 및 수평 Y/C 섹션을 더 포함하며, 여기에서 이러한 섹션들은 예시된 루마 섹션과 유사하다.
제어 루프(350)는 적절한 스케일링 비율(302)의 역수와 동일한 스텝(step) 및 피드백 값의 입력들을 갖는 가산기(304)를 포함한다. 가산기(304)의 출력 및 수신된 데이터에 대한 최초 위상 값(306)이 멀티플렉서(308)에 입력되며, 멀티플렉서(308)의 선택된 출력이 누산기(310)로 입력된다. 누산기(310)의 출력은 가산기(304)에 대한 피드백 값이며 그리고 곱셈기(이러한 예에 있어 31x 곱셈기)(312)로의 입력이고, 이러한 곱셈기는 다-위상 필터 계수들과 같은, 계수들의 세트를 생성하기 위하여, 계수 ROM(316)에 대한 계수 세트 어드레스(314)를 산출한다. 이러한 예시가 ROM 저장장치로부터 계수들을 획득하는 것을 가능하게 하지만, 스케일러는 이러한 형태에 한정되지 않으며, 예를 들어, 계수들의 세트의 계산을 가능하게 할 수 있다.
일부 실시예들에 있어, 데이터 경로(306)는 그 때 7-라인 메모리(332)에서 래스터(raster) 스캐닝된 Y 입력(330)을 수신하고, 7개의 곱셈기들(336)의 세트에 대해 7개의 수직적으로 인접한 Y 값들(334)을 제공하며, 7개의 곱셈기들의 세트는 계수 ROM(316)으로부터의 계수들의 세트를 더 수신한다. 곱셈기들(336)은 7개의 프로덕트들(Y × 계수(n))(338)의 세트를 생성한다. 프로덕트들의 세트가 스케일링된 Y 입력(342)을 생성하기 위해 합산된다(여기에서, 예를 들어, 프로세스는, 10과 같은 특정 수의 비트들로의 라운딩 및 오버플로우 제한을 더 포함할 수 있다).
일부 실시예들에 있어, 스케일러(300)는 필터링 링잉 억제를 위한 프로비저닝(provision)들을 더 포함한다. 일부 실시예들에 있어, 스케일러(300)는 선형 보간 데이터의 생성을 포함하며, 여기에서 선형 보간 데이터는 블렌딩된 계수들의 세트를 생성하기 위하여 계수 ROM(316)으로부터 획득된 다-위상 계수들과 믹싱된다. 일부 실시예들에 있어, 계수들의 믹싱은 Y 값들(334)의 진폭의 변화율에 기초하는 믹싱 제어 신호에 따라 이루어질 수 있다. 일부 실시예들에 있어, 블렌딩된 계수들의 세트가 스케일링된 출력(342)의 생성에 사용되기 위해 곱셈기들(336)에 제공된다.
도 4a는 변화율 검출 및 계수 믹싱을 포함하는 수직 스케일러의 섹션의 일 실시예를 예시한다. 일부 실시예들에 있어, 수직 스케일러의 루마 섹션(400)은 데이터 경로(460) 및 제어 루프(450)를 포함한다. 일부 실시예들에 있어, 도 3에 관해 예시된 엘러먼트들에 더하여, 링잉 억제를 제공하기 위해 제어 루프(450)는 데이터 메모리(332)로부터의 데이터의 변화율을 검출하고 믹싱 제어 신호들(422)을 생성하기 위한 변화율 검출 모듈 또는 엘러먼트(420)를 더 포함한다. 일부 실시예들에 있어, 변화율 모듈(420)은 라인 메모리들(332)의 인입 루마 출력을 분석한다. 일부 실시예들에 있어, 변화율 모듈(420)은 필터 링잉을 야기할 전환들을 검출하도록 동작하며, 변화율 모듈은 변화율 검출에 적어도 부분적으로 기초하여 믹싱 제어 신호(mixingControl)(422)를 생성한다. 일부 실시예들에 있어, 믹싱 제어 신호의 생성은 변화율 분석의 수정을 포함할 수 있으며, 이러한 수정은 소프트웨어 제어 레지스터(예시되지 않음) 내에 포함된 데이터에 기초한다.
일부 실시예들에 있어, 제어 루프(450)는 선형 보간 계수들을 생성하고 선형 보간 계수들을 수신된 다-위상 필터 계수들과 믹싱하기 위한 계수 믹서 모듈 또는 엘러먼트(424)를 더 포함한다. 일부 실시예들에 있어, 계수 믹서(424)는, 변화율 검출 모듈(420)로부터의 믹싱 제어 신호(422), 계수 ROM(316)으로부터의 필터 계수 데이터, 및 선형 보간 계수들의 생성을 위하여 누산기(310)로부터의 현재 위상 정보(426)를 수신한다. 계수 믹서(424)는 블렌딩된 필터 특성들을 생성하기 위하여 필터 계수들을 믹싱한다. 일부 실시예들에 있어, 계수 믹서(424)는 전체 성능을 유지하면서 링잉을 억제하도록 동작할 수 있다. 일부 실시예들에 있어, 계수 믹서 모듈 또는 엘러먼트(424)는 계수 엘러먼트들의 계산시의 사용을 위한 하나 이상의 링잉 제어 레지스터들을 포함한다.
도 4b는 병렬로 동작하는 스케일러들을 포함하는 수직 스케일러의 섹션의 일 실시예를 예시한다. 일부 실시예들에 있어, 수직 스케일러는 병렬로 구동하는 2개의 스케일러들을 포함한다. 이러한 동작에 있어, 제 1 스케일러는 선형 보간을 사용하여 스케일링을 하기 위해 누산기로부터의 위상 정보를 사용하는 선형 보간기이며, 제 2 스케일러는 다-위상 필터이다. 일부 실시예들에 있어, 수직 스케일러의 로직은 계수들을 믹싱하기 위해 사용되는 것(도 4a에 제공된 바와 같이)이 아니라 믹싱 제어를 생성하며, 믹싱 제어가 데이터의 믹싱을 위해 사용된다.
일부 실시예들에 있어, 수직 스케일러의 루마 섹션(470)이 다시 데이터 경로(460) 및 제어 루프(450)를 포함한다. 일부 실시예들에 있어, 도 3에 제공된 엘러먼트들에 더하여, 루마 섹션(470)은, 계수 믹서(도 4a의 엘러먼트(424)와 같은)를 포함하는 것이 아니라, 적응적 스케일링을 사용하여 스케일링된 루마(492)를 생성하기 위해, 선형 보간을 사용하여 스케일링된 루마 및 다위상 필터를 사용하여 스케일링된 루마(476)를 믹싱하기 위한 데이터 믹서(490)를 포함한다.
일부 실시예들에 있어, 루마 섹션(470)은 선형 보간을 사용하는 스케일링을 제공하기 위한 엘러먼트 또는 모듈(472)을 포함하며, 엘러먼트 또는 모듈(472)은 선형 보간을 사용하여 스케일링된 루마(478)를 생성하기 위하여 현재 위상(426) 및 라인 메모리들(332)로부터의 데이터 입력을 수신한다.
일부 실시예들에 있어, 곱셈기(336)는 다위상 필터를 사용하여 스케일링된 루마(476)를 생성하기 위하여, 합산되고, 오버플로우를 제한하며, 비트들의 특정 수로의 라운딩을 가능하게 하는 엘러먼트 또는 모듈(474)에 연결된다.
일부 실시예들에 있어, 변화율 검출 모듈(480)은 변화율 검출에 적어도 부분적으로 기초하여 믹싱 제어 신호(482)를 생성하기 위해 라인 메모리들(332)로부터의 인입 루마 출력을 분석하며, 믹싱 제어 신호는, 적응적 스케일링을 사용하여 스케일링된 루마(492)를 생성하기 위하여, 선형 보간을 사용하여 스케일링된 루마(478)와 다위상 필터를 사용하여 스케일링된 루마(476)의 믹싱을 결정하기 위한 데이터 믹서에 제공된다.
도 3, 도 4a, 및 도 4b는 특정 엘러먼트들 또는 모듈들을 포함하는 수직 스케일러들의 특정 구현예들을 예시하고 있지만, 스케일러들의 실시예들이 임의의 수의 이러한 엘러먼트들 또는 모듈들에 한정되지 않는다. 예를 들어, 7개의 곱셈기들 및 31개의 계수 세트들과 같은, 도 3, 도 4a, 및 도 4b에 도시된 엘러먼트들의 특정 수가 성능 및 비용 필요사항들과 같은 인자들의 특정 균형화(balancing)에 기초하여 선택된다. 다른 실시예들은, 더 높은 성능을 제공하기 위하여 또는 비용을 감소시키기 위하여와 같이, 이러한 인자들이 상이한 방식으로 균형화되는 경우, 상이한 수들의 이러한 엘러먼트들 또는 모듈들을 사용할 수 있다.
도 5는 변화율 검출 모듈의 일 부분의 일 실시예를 예시한다. 일부 실시예들에 있어, 비디오 스케일러의 모듈인 변화율 검출 모듈(500)은 인접 입력 값들 사이의 최대 차이의 결정을 가능하게 하는 일 부분을 포함한다. 일부 실시예들에 있어, 검출 모듈(500)은, 도 5에서 Y0 내지 Y6으로 표시된 7개의 Y 입력들로서 도시된, 복수의 입력들(510)을 수신한다. Y0 내지 Y6은 7개의 수직 인접 Y 값들(수직 스케일러에 대한) 또는 7개의 수평 인접 Y 값들(수평 스케일러에 대한)을 나타낸다. 이러한 예시가 7개의 값들을 사용하지만, 실시예들이 값들의 임의의 수에 한정되지 않는다.
일부 실시예들에 있어, 검출 모듈(500)은 Abs[Y1 -Y0], Abs[Y2 -Y1], Abs[Y6 -Y5]까지 계속되는 바와 같이, 인접 Y 값들 사이의 차이들의 절대 값(520)을 결정한다. 일부 실시예들에 있어, 결정된 차이 값들이 최대 값 함수(530)에 제공되며, 여기에서 최대 값 함수(530)는 차이 값들 중 어떠한 것이 최대 값을 갖는지 결정하고, maxDifference 값(540)을 출력한다.
도 6은 변화율 검출 모듈의 일 부분의 일 실시예를 예시한다. 일부 실시예들에 있어, 비디오 스케일러의 모듈인 변화율 검출 모듈(600)은 차이들의 합계의 결정을 가능하게 하는 일 부분을 포함한다. 일부 실시예들에 있어, 검출 모듈(600)은, 도 6에서 Y0 내지 Y6으로 표시된 7개의 Y 입력들로서 도시된, 복수의 입력들(610)을 수신한다. 일부 실시예들에 있어, 검출 모듈(600)은 Abs[Y1 -Y0], Abs[Y2 -Y1], Abs[Y6 -Y5]까지 계속되는 바와 같이, 인접 Y 값들 사이의 차이들의 절대 값(620)을 결정한다. 일부 실시예들에 있어, 결정된 차이 값들이 합산 함수(630)로 제공되며, 여기에서 합산 함수(630)가 차이 값들의 합계를 결정하고, differenceSum 값(640)을 출력한다.
도 7은 스케일링된 비디오 데이터의 생성을 위한 프로세스의 일 실시예를 예시하는 순서도이다. 일부 실시예들에 있어, 비디오 데이터가 수신되며(700), 비디오 데이터가 메모리에 저장된다(702). 또한, 일부 실시예들에 있어, 위상 정보가 수신되며(720), 위상 정보가 누산(accumulate)된다(722).
일부 실시예들에 있어, 메모리로부터 획득된 비디오 데이터의 변화율이 검출되며(710), 이러한 변화율에 기초하여, 믹싱 제어 신호가 결정된다(712). 일부 실시예들에 있어, 다-위상 계수 데이터와 같은 비디오 스케일링 계수 데이터가 획득되며(724), 이에 더하여 선형 보간 계수 데이터가 누산된 위상 정보에 기초하여 결정된다(726).
일부 실시예들에 있어, 블렌딩된 계수들이 결정되며(728), 여기에서 블렌딩된 계수들은 다-위상 계수 데이터, 선형 보간 계수 데이터, 및 믹싱 제어 신호에 적어도 부분적으로 기초한다.
일부 실시예들에 있어, 비디오 데이터와 블렌딩된 계수들이 곱해진다(740). 결과적인 프로덕트는, 프로덕트들의 합산, 결과들의 오버플로우의 제한, 및 결과들의 라운딩을 포함하는, 프로세싱을 받으며(742), 결과적인 스케일링된 비디오 데이터가 출력된다(744).
도 8은 스케일링 장치 또는 시스템의 일 실시예에서의 FIR 디지털 필터를 예시한다. 이러한 예시에 있어, FIR 디지털 필터는 N = 5를 가지며, 여기에서 N은 필터의 차수(order)이다. 이러한 예시에 있어, 차수 5의 필터가 단순함을 위해 도시된다. 실제, FIR 필터들은 흔히 이보다 훨씬 큰 값들의 N을 갖는다. N에 대해 요구되는 값은 필터의 선택성 필요사항, 및 애플리케이션의 성능 필요사항들에 따른다. N은 짝수 또는 홀수일 수 있으며, 이 중 하나가 저대역-통과 필터 응답들을 생성하는데 사용될 수 있다. 이러한 예와 본 명세서의 논의에 있어, N은 홀수이다.
예시된 바와 같이, FIR 디지털 필터는 일련의 N개의 연결된 다중-비트 저장 레지스터들(815)을 포함하며, 이러한 특정 예에 있어 N = 5이다. 도시된 바와 같이, 일련의 레지스터들(815)은 데이터 입력(805) 및 클럭 신호(810)를 수신하며, 처음 4개의 레지스터들의 각각에 의해 유지되는 데이터가 각각의 클럭 사이클에서 다음 레지스터로 쉬프트된다. 레지스터들(815)의 각각으로부터 출력되는 데이터가 N개의 곱셈기들(825)의 세트에 제공되며, 곱셈기들은 데이터(D0 내지 D4로 도시된)를 N개의 계수들(820)(C0 내지 D4로 도시된)의 세트와 곱한다. 곱셈기들(825)에 의해 생성된 프로덕트들은 그 후 필터링된 출력을 생성하기 위하여 합산 로직(830)으로 제공된다.
필터(800)로부터의 새로운 출력이 클럭의 각각의 사이클에 대하여 연산될 것이다. 필터의 각각의 출력 F(out)은 따라서 다음과 같이 연산된다:
F(out) = C0 × D0 + C1 × D1 + C2 × D2 + C3 × D3 + C4 × D4,
여기에서:
F(out)은 필터의 출력 값이며,
C0, C1, C2, C3, C4 = 필터의 계수들로서, 이들은 고정된 값들이고,
D0, D1, D2, D3, D4 = 인입 디지털 신호의 5개의 시간 인접 샘플들이다.
FIR 필터의 기본 엘러먼트들은 따라서, 도 8에 제공되는 바와 같은, 저장 엘러먼트들 또는 레지스터들의 세트, 곱셈기들, 계수들, 및 합산 로직이다. 저장 엘러먼트들은, 예를 들어, 공통 클럭을 가지며 그리고 그들의 데이터 포트가 직렬로 연결된 레지스터들일 수 있다. 샘플들의 시간-인접 세트가 레지스터들에 저장되고 그리고 각각의 클럭 사이클로 데이터 샘플들의 세트가 쉬프트(도 8에 도시된 예시에 있어 좌측으로부터 우측으로)할 수 있도록 입력 샘플들이 이러한 일련의 레지스터들 내로 공급되며, 그 결과 좌측 레지스터의 데이터가 시간적으로 가장 최신이며, 우측 레지스터의 데이터가 가장 먼저(earliest)이다.
N 차 저역 통과 필터(이러한 예에 있어 N은 홀수)에 대하여, 계수들은 다음의 방정식을 만족시킨다:
n ≠ 0에 대하여,
Figure 112014068915031-pct00001
n = 0에 대하여,
Coefficient(0) = 2fc
여기에서,
fc = 저역 통과 필터의 정규화된 컷오프(cutoff) 주파수,
n = 세트 N 중 하나로서, -(N-1)/2 <= n <= +(N-1)/2의 범위를 가짐,
Figure 112014068915031-pct00002
이며,
wf = 윈도윙(windowing) 함수, 예컨대 해밍 윈도우(Hamming window).
설명된 바와 같이, 디지털 FIR 필터는 입력 및 출력 샘플들의 1:1 비율을 생성한다.
도 13에 예시된 필터(1300) 및 도 14에 예시된 필터(1400)와 같은 다위상 FIR 필터는, 샘플링 레이트 변환으로도 알려져 있는, 입력 대 출력 샘플들의 상이한 비율을 생성할 필요가 있을 때 채택될 수 있다. 샘플링 레이트 변환의 2가지 기본 유형들은 보간 및 데시메이션(decimation)이다. 보간은 출력 레이트가 입력 레이트보다 더 큰 샘플링 레이트 변환 유형이며, 데시메이션은 출력 레이트가 입력 레이트보다 더 작은 샘플링 레이트 변환 유형이다. 비디오 스케일링과 관련하여, 보간이 비디오 이미지들의 해상도를 증가시키기 위해 더 흔하게 사용되며, 데시메이션은 비디오 이미지의 해상도를 감소시키는데 사용된다.
도 9는 비디오 스케일링 프로세스, 장치, 또는 시스템의 일 실시예에서의 샘플링 레이트의 수정을 예시한다. 스케일링 동작시, 스케일링 레이트의 변화가 존재한다. 비디오 스케일러는 샘플링 레이트를 변화시키도록 동작하며, 흔히 그 변화는 입력 샘플들 대 출력 샘플들의 비율로서 설명되는 스케일링 비율(Scaling Ratio: SR)이다:
SR = 출력 샘플들의 수 / 입력 샘플들의 수
SR은 본 명세서에서 1-차원적인 것으로 가정될 수 있으며, 여기에서 수평 SR 및 수직 SR이 존재할 수 있지만, 이러한 설명의 목적을 위하여, 스케일링 비율은 SR이다. 용어 L/M은 흔히 스케일링 비율을 설명하는데 사용된다:
L/M = SR,
여기에서 L 및 M은 정수들이다.
다른 방식으로 말하면, L/M은 스케일링 비율 SR을 지정하는 정수들의 비율이다. 도 9에 있어, 이는 주파수 fs로 샘플링된 입력이 일련의 동작들에 의해 수정되는 것에 의해 예시된다. 일부 실시예들에 있어, 제 1 동작은 L의 값에 의한 샘플링 레이트의 증가(910)일 수 있고, 이는 L × fs의 샘플링 레이트를 야기하며, 제 2 동작은 1/M에 의한 샘플링 레이트의 감소(920)일 수 있으며, 이는 fs × L/M의 레이트로 샘플링된 출력을 야기한다.
FIR 필터들은 정수 배수 L에 의해 샘플링 레이트를 증가시키는데 사용될 수 있다. FIR 필터들은 1/M에 의해 샘플링 레이트를 감소시키는데 더 사용될 수 있으며, 여기에서 M은 정수이다. L 또는 1/M에 의한 레이트 변환들을 수행하기 위한 프로세싱이 이하에서 설명된다. 따라서, 정수들의 비율, L/M에 의해 샘플링 레이트를 변화시키는 것이 2개의 FIR 필터 동작들을 직렬로 연결함으로써 수행될 수 있다.
일부 실시예들에 있어, 저역 통과 FIR 필터가 정수 1/M에 의한 데시메이션 및 정수 L에 의한 보간을 위해 사용될 수 있다. 도 10 및 도 11에 도시된 예시들에 있어, 2개의 동작들- 정수 배수 L에 의한 샘플링 비율의 증가 및 1/M(여기서 M은 정수)에 의한 샘플링 레이트의 감소 -이 독립적으로 예시된다.
도 10은 스케일링 프로세스, 장치, 또는 시스템의 일 실시예에서의 데시메이션에 의한 FIR 필터의 샘플링 레이트의 수정을 예시한다. 데시메이션은 디지털 샘플들의 세트의 샘플링 레이트를 감소시킨다. 1/M(여기서 M은 정수)에 의한 데시메이션은 저역 통과 FIR 필터들을 사용하여 달성될 수 있다. 이러한 동작에 있어, 저역 통과 필터링이 출력의 더 낮은 샘플 레이트들에서의 에일리어싱(aliasing)을 회피하기 위해 샘플 스트림의 대역폭을 감소시키는데 사용될 수 있다. 하나의 예에 있어, 이는 fc = 0.5/M의 정규화된 컷오프 주파수를 사용하도록 설계된 저역 통과 FIR 필터를 사용함으로써 달성될 수 있다. 그러나, 실시예들이 컷오프 주파수의 임의의 특정 선택에 한정되지 않는다.
이러한 예시에 있어, 필터 동작(1000)은 비디오 스케일링 동작 내에 포함될 수 있는 샘플 주파수를 감소시키기 위한 일련의 동작들에 의해 표현될 수 있다. 도 10에 있어, 입력 데이터는 샘플링 주파수 fs를 사용하여 샘플링된다. FIR 필터(1010)에 대하여, fc = 1/M이다. 샘플링 동작(1020)에 있어, 각각의 M개의 샘플들 중 1개가 선택되며, 이는 fs/M로 샘플링된 출력을 야기한다.
도 11은 스케일링 프로세스, 장치, 또는 시스템의 일 실시예에서의 보간에 의한 FIR 필터의 샘플링 레이트의 수정을 예시한다. 정수 L에 의한 보간은 FIR 필터들을 사용하여 달성될 수 있다. 이러한 예시에 있어, 필터 동작(1100)은, fs로 샘플링된 입력이 각각의 입력 샘플 사이에 (L-1)개의 0들을 삽입함(1110)으로써 수정되는 것에 의해 표현될 수 있으며, 이는 L × fs의 주파수를 야기한다. 수정된 입력은 fc = 1/L의 컷오프 주파수를 갖는 N-차 FIR 필터(1120)에 제공되며, 여기에서 N은 L의 정수배이다. 결과적인 데이터는 진폭 이득 동작에 의해 수정되며(1130), 여기에서 이득 평균은 원본 신호 진폭을 복원하기 위한 L이며, 이는 L × fs로 샘플링된 출력을 야기한다.
동작은 또한 FIR 필터(1120) 및 진폭 이득 동작이 결합된 필터 동작으로서 표현될 수 있다. 필터 동작(1100)의 이러한 예시에 있어, 입력이 다시 fs로 샘플링되고, 각각의 입력 샘플 사이에 (L-1)개의 0들의 삽입에 의해 수정되며(1140), 이는 L × fs의 주파수를 야기한다. 수정된 입력이 fc = 1/L의 컷오프 주파수 및 L의 진폭 이득 동작을 갖는 N-차 FIR 필터(1150)로 제공되며, 이는 L × fs로 샘플링된 출력을 야기한다.
일 예에 있어, 샘플 레이트를 5배 증가시킬 필요사항이 존재하는 것으로 추정될 수 있으며, 따라서 L = 5이다. FIR 필터를 설계하기 위하여, 필터의 차수 N, 및 필터의 컷오프 주파수 fc에 대한 명세(specification)가 필요하다. 필터의 차수는 애플리케이션 및 비용 대 성능 트레이드오프(tradeoff)들에 의존한다. 이에 더하여, 샘플 레이트를 정수 L에 의해 증가시키는 이러한 특정 애플리케이션에 대하여, N은 L의 정수배가 되도록 선택될 수 있다. 예를 들어, L = 5이면, 필터의 차수가 25로 주어진다:
N = 25
여기에서 L = 5 및 N = L의 정수배.
이러한 예에 있어, 25는 홀수이다. 일부 실시예들에 있어, 설계자에 의해 선택되는 바와 같이, 짝수 또는 홀수 중 하나가 프로세스, 장치, 또는 시스템 내의 필터의 차수로서 사용될 수 있다. 짝수에 비해 N이 홀수인 경우 필터들의 계수들을 연산하기 위한 프로세스들이 약간 상이하지만, 당업자들은 동일한 원리들이 짝수 차수 필터 및 홀수 차수 필터에 사용될 수 있다는 것을 인식할 것이다. 본 명세서에서 제공되는 예들에 있어, N은 홀수이다.
필터의 차수 N 및 컷오프 주파수 fc가 지정되면, 저역 통과 FIR 필터에 대한 25개의 계수들이 이전에 설명된 방정식들을 사용하여 연산된다. 계수들은 C0, C1, C2....C24로서 표시될 수 있으며, 필터 내로 쉬프트하는 데이터는 D0, D1, D2, D4....로 표시될 수 있다.
L의 배수를 이용한 보간을 수행하기 위하여, (L-1)개의 0들이 각각의 데이터 샘플 사이에 삽입되며, 따라서 필터의 레지스터들 내로 쉬프트된 첫번째 25개의 데이터 값들은 다음과 같다:
D4, 0, 0, 0, 0, D3, 0, 0, 0, 0, D2, 0, 0, 0, 0, D1, 0, 0, 0, 0, D0, 0, 0, 0, 0
FIR 필터가 그 레지스터 내에 이상에서 도시된 바와 같은 데이터를 갖는 시점에서, 필터는 제 1 필터링된 출력 FO(0)을 다음과 같이 연산한다:
FO(0) = C24 × D4 + C23 × 0 + C22 × 0 + C21 × 0 + C20 × 0 + C19 × D3 + C18 × 0 + C17 × 0 + C16 × 0 + C15 × 0 + C14 × D2 + C13 × 0 + C12 × 0 + C11 × 0 + C10 × 0 + C9 × D1 + C8 × 0 + C7 × 0 + C6 × 0 + C5 × 0 + C4 × D0 + C3 × 0 + C2 × 0 + C1 × 0 + C0 × 0
다음으로, 데이터가 쉬프트(이러한 설명에 있어, 우측으로)하며, 그 결과 필터의 레지스터들 내의 데이터는 다음을 포함한다:
0, D4, 0, 0, 0, 0, D3, 0, 0, 0, 0, D2, 0, 0, 0, 0, D1, 0, 0, 0, 0, D0, 0, 0, 0
다음 필터링된 출력은 다음과 같다:
FO(1) = C24 × 0 + C23 × D4 + C22 × 0 + C21 × 0 + C20 × 0 + C19 × 0 + C18 × D3 + C17 × 0 + C16 × 0 + C15 × 0 + C14 × 0 + C13 × D2 + C12 × 0 + C11 × 0 + C10 × 0 + C9 × 0 + C8 × D1 + C7 × 0 + C6 × 0 + C5 × 0 + C4 × 0 + C3 × D0 + C2 × 0 + C1 × 0 + C0 × 0
다음 클럭 사이클들에, 데이터는 우측으로 쉬프트하며 방정식들은 다음과 같다:
FO(2) = C24 × 0 + C23× 0 + C22 × D4 + C21 × 0 + C20 × 0 + C19 × 0 + C18 × 0 + C17 × D3 + C16 × 0 + C15 × 0 + C14 × 0 + C13 × 0 + C12 × D2 + C11 × 0 + C10 × 0 + C9 × 0 + C8 × 0 + C7 × D1 + C6 × 0 + C5 × 0 + C4 × 0 + C3 × 0 + C2 × D0 + C1 × 0 + C0 ×0
FO(3) = C24 × 0 + C23 × 0 + C22 × 0 + C21 × D4 + C20 × 0 + C19 × 0 + C18 × 0 + C17 × 0 + C16 × D3 + C15 × 0 + C14 × 0 + C13 × 0 + C12 × 0 + C11 × D2 + C10 × 0 + C9 × 0 + C8 × 0 + C7 × 0 + C6 × D1 + C5 × 0 + C4 × 0 + C3 × 0 + C2 × 0 + C1 × D0 + C0 × 0
FO(4) = C24 × 0 + C23× 0 + C22 × 0 + C21 × 0 + C20 × D4 + C19 × 0 + C18 × 0 + C17 × 0 + C16 × 0 + C15 × D3 + C14 × 0 + C13 × 0 + C12 × 0 + C11 × 0 + C10 × D2 + C9 × 0 + C8 × 0 + C7 × 0 + C6 × 0 + C5 × D1 + C4 × 0 + C3 × 0 + C2 × 0 + C1 × 0 + C0 × D0
프로세싱의 이러한 시점에서, 5개의 출력들이 연산되었으며, 다음 클럭에서, 새로운 샘플 데이터 D5가 필터 안으로 쉬프트하고, D0이 필터 밖으로 쉬프트한다. 레지스터들 내의 데이터는 다음과 같다:
D5, 0, 0, 0, 0, D4, 0, 0, 0, 0, D3, 0, 0, 0, 0, D2, 0, 0, 0, 0, D1, 0, 0, 0, 0
그러면 FO(5)의 연산을 위한 방정식은 다음과 같다:
FO(5) = C24 × D5 + C23 × 0 + C22 × 0 + C21 × 0 + C20 × 0 + C19 × D4 + C18 × 0 + C17 × 0 + C16 × 0 + C15 × 0 + C14 × D3 + C13 × 0 + C12 × 0 + C11 × 0 + C10 × 0 + C9 × D2 + C8 × 0 + C7 × 0 + C6 × 0 + C5 × 0 + C4 × D1 + C3 × 0 + C2 × 0 + C1 × 0 + C0 × 0
이러한 예에 기초하여, 계산들에 있어 부가 효율(added efficiency)이, FO(0)....FO(5)에 대한 모든 방정식들에서 25개의 프로덕트들 중 20개가 데이터에 대해 0 항(term)들을 가지며, 이러한 곱셈들의 결과가 따라서 0일 될 것임을 주목함으로서 달성될 수 있다는 것이 확인될 수 있다. 따라서, 처음 6개의 FO 출력들에 대해 이하에서 도시되는 바와 같이, 이상의 방정식들이 0을 포함하는 프로덕트 항들을 제거함으로써 단순화될 수 있다:
FO(0) = C24 × D4 + C19 × D3 + C14 × D2 + C9 × D1 + C4 × D0
FO(1) = C23 × D4 + C18 × D3 + C13 × D2 + C8 × D1 + C3 × D0
FO(2) = C22 × D4 + C17 × D3 + C12 × D2 + C7 × D1 + C2 × D0
FO(3) = C21 × D4 + C16 × D3 + C11 × D2 + C6 × D1 + C1 × D0
FO(4) = C20 × D4 + C15 × D3 + C10 × D2 + C5 × D1 + C0 × D0
FO(5)에 대하여, 아래에 도시되는 바와 같이, 새로운 데이터 샘플 D5가 좌측으로부터 필터 내로 쉬프트하며, D0이 필터 밖으로 쉬프트하고 더 이상 사용되지 않는다:
FO(5) = C24 × D5 + C19 × D4 + C14 × D3 + C9 × D2 + C4 × D1
처음 5개의 방정식들에 있어, 데이터 항들이 동일하였으며(D4...D0), 단지 계수들만이 변화되었고, 변화들이 명확한 패턴을 따랐다는 것이 더 관찰될 수 있다. 계산된 필터링된 출력들이 모든 0 항들의 합산에 기인하여 입력 신호 레벨에 비해 크게 감소된 신호 진폭을 가질 것이다. FIR 필터의 이득은 필터의 모든 계수들의 합계이다. 전형적으로, 계수들은 1로 합산되며, 이득이 1이다. 따라서, 진폭 이득이 신호를 신호의 원본 진폭 레벨로 복원하는데 필요하다. 이러한 특정 예에 있어, 0을 갖는 프로덕트 항들 대 입력 데이터를 갖는 프로덕트 항들의 4 대 1 비율 때문에, 5개의 곱셈기가 필요하다. 일반적으로, 요구되는 이득은 각각의 계수를 L과 곱함으로써 제공될 수 있다.
필터의 계수들이 연산됐을 때 L과 각 계수의 곱셈이 수행될 수 있도록, FIR 필터 계수들은 하드웨어 필터 구현예들에 있어 전형적으로 한번 사전-연산되고 메모리 또는 레지스터에 저장될 수 있다. 따라서, 일부 실시예들에 있어, 시스템 내의 필터에 대한 25개의 계수들의 최종 세트는 다음과 같을 수 있다:
L×C0, L×C1, L×C2.....L×C24
이상에서 언급된 바와 같이, 보간을 위해 사용되는 FIR 필터는 필터의 차수(N)가 보간 정수인 L의 배수가 되도록 설계될 수 있다. 이 예에 있어, L = 5, 및 N = 25이며, 여기에서 25는 5의 정수배이다. 보간 정수의 정수배인 차수를 사용하는 이유는 FIR 필터의 데이터 레지스터들 내의 0들 대 실제 데이터 샘플들의 1-대-(L-1) 비율을 유지하기 위한 것이다. 이 예에 있어, L = 5이며, 및 (L-1) = 4개의 0들이 데이터 샘플들 D(n)의 각각 사이에 삽입되었다. 데이터가 FIR 필터의 레지스터들을 통해 쉬프트할 때, 필터의 차수가 L의 배수인 경우 실제 데이터 샘플들과 0들의 비율이 유지된다.
도 12a는 시스템의 일 실시예에서의 샘플링 비율에 의한 필터 동작의 수정을 예시한다. 이러한 예시에 있어, 필터 동작(1200)은 fs로 샘플링된 입력이 각각의 입력 샘플 사이에 (L-1)개의 0들의 삽입(1210)에 의해 수정되는 것에 의해 표현될 수 있으며, 이는 L × fs의 주파수를 야기한다. 수정된 입력이 제 1 FIR 필터에 제공되고, 필터는 주파수 fc = 1/L 및 L의 진폭 이득 동작을 갖는 N-차 FIR 필터(1220)이며, 이는 L × fs로 샘플링된 출력을 야기한다.
제 1 FIR 필터(1220)의 출력은 제 2 FIR 필터(1230)로 제공되며, 제 2 FIR 필터(1230)는 fc = 1/M의 컷오프 주파수를 갖는다. 샘플링 동작시(1240), 각각의 M개의 샘플들 중 1개가 선택되며, 샘플링 레이트를 1/M에 의해 감소시키고, 이는 L × fs/M, 또는 fs × 샘플링 비율 L/M으로 샘플링된 출력을 야기한다.
도 12b는 샘플링 비율에 의한 필터 동작의 수정을 위한 시스템을 예시한다. 이러한 예시에 있어, 결합된 시스템이 필터 동작(1200)의 동작들을 제공한다. 시스템(1250)은 fc = 1/L, 또는 fc = 1/M의 컷오프 주파수를 갖는 N-차 다위상 FIR 필터를 포함한다. 이러한 시스템 내에서, N은 L의 정수배이며, 시스템(1250)은 신호 감소를 보상하기 위하여 L의 평균 이득을 제공한다.
도 12a 및 도 12b는 스케일링 비율 L/M에 의한 데이터의 보간 또는 데시메이션을 예시한다. 정수들 L에 의한 보간 및 M이 정수인 1/M에 의한 데시메이션을 위한 동작들이 이상에서 도 10 및 도 11과 관련하여 설명되었다. 도 12a는 직렬로 연결된 2개의 FIR 필터들을 제공하는, 결합된 이러한 2개의 동작들의 예시를 제공한다.
프로세스, 장치, 또는 시스템의 일부 실시예들에 있어, FIR 필터들의 직렬 연결은 추가적인 효율성을 위한 기회를 제공한다. 2개의 필터들 모두가 저역-통과 응답을 갖는 경우, 최저 컷오프 주파수를 갖는 필터가 실제 요구될 수 있으며, 이는 다른 FIR 필터의 동작이 불필요하기 때문이다. 일부 실시예들에 있어, 최저 컷오프 주파수는 샘플링 레이트 변환이 보간인지 또는 데시메이션인지 여부에 의존할 것이다. 샘플링 레이트 변환이 보간을 제공하는 경우, 정규화된 컷오프 주파수 fc는 1/L이 될 것이다. 샘플링 레이트 변환이 데시메이션을 제공하는 경우, 최저 컷오프 주파수는 1/M이 될 것이다.
이상에서 설명된 바와 같이, (L-1)개의 0들의 삽입은 필터의 차수가 L의 배수인 경우 필요하지 않다. 이러한 인자는 다위상 FIR 구조를 사용하여 추가적인 단순화를 제공하는데 사용될 수 있다.
다위상 FIR 필터들을 사용하여 샘플링 레이트 변환기를 제공하는 것에 관하여, 방정식들이 FO 출력들에 대해 이하의 표 1에 제공된다. 이러한 방정식들은 확장되는 일련의 연산들을 제공하며, 최우측 컬럼(column)은 계수 세트(coefficient set: CS)를 제공한다. 이러한 예에 있어, 값 L = 5 및 값 M = 3이며, 따라서 이러한 예에서 스케일링 비율은 L/M = 5/3이다.
Figure 112014068915031-pct00003
표 1에서, 첫번째 방정식, 4번째 방정식, 및 각각의 다음의 3번째 방정식("++"로 표시되고, 볼드체로 도시된)은 보간된 샘플들의 1/M(또는 이러한 예에서 1/3)을 나타내며, 여기에서 보간 정수 L = 5이다. 일부 실시예들에 있어, 나머지 방정식들(비-볼드체로 도시된)은 연산될 필요가 없으며, 필터는 단지 각 3번째 방정식의 연산을 필요로 할 뿐이다. 볼드체 방정식들에 있어, 계수들은 0, 1, 2, 3, 4의 시퀀스로 사용되지 않고, 오히려 0, 3, 1, 4, 2의 시퀀스이다. 일부 구현예들에 있어, 데이터가 2개의 순차적인 출력들에 대해 동일할 수 있으며, 일부 환경들에 있어, 오로지 하나의 출력만이 입력 데이터 세트로부터 연산된다.
도 13은 스케일링 프로세스, 장치, 또는 시스템의 일 실시예에서 입력 흐름 제어를 제공하는 다위상 FIR 디지털 필터를 예시한다. 이러한 예시에 있어, 레지스터들(815), 곱셈기들(825), 및 합산 로직(830)에 더하여, 다위상 FIR 디지털 필터(1300)는 계수 값들을 저장하기 위한 계수 저장 메모리(1345) 및 제어 로직 블록(1340)을 포함할 수 있으며, 제어 로직(1340)은 입력 흐름 제어를 제공한다. 도 13에 예시된 바와 같이, 제어 로직(1340)은 계수 저장 메모리(1345)로 계수 세트 어드레스를 제공하며, 여기에서 계수 세트 어드레스는 계수들의 복수의 상이한 세트들 중 하나를 선택하는데 사용될 수 있다. 이러한 예시에 있어, 세트 n이 선택되며, 그에 의해 곱셈기들(830)은 값들 D0-D4를 계수들 Cn0....Cn4와 곱한다.
일 예에 있어, 보간을 위해 사용되는 N = 25인 FIR 필터와 같은 N-차 FIR 필터가 도 13에 제공된 바와 같이 구현될 수 있다. 이러한 예에 있어, 필터(1300)는 N = 25를 갖는 다위상 FIR 필터이다. 계수들은 세트당 5개의 계수들을 갖는 5개의 세트들로 조직화되며, 메모리에 저장된다. 이러한 메모리에 대한 어드레스가 제어 로직 블록(1340)에 의해 제공된다. 제어 로직(1340)에 의해 생성되는 입력 흐름 제어는 유입(inflow) 데이터 레이트를 제어하는데 사용되며, 이는 유입 레이트가 유출(outflow) 레이트보다 더 낮기 때문에 필요하다.
도 14는 스케일링 프로세스, 장치, 또는 시스템의 일 실시예에서 입력 흐름 제어를 제공하는 다위상 FIR 필터를 예시한다. 필터(1400)는 도 13의 필터(1300)와 유사하지만, 제어 로직 블록(1440)이 추가적인 출력 신호를 가지며, 이러한 출력 신호는 출력 흐름 제어이다. 일부 실시예들에 있어, 도 13의 제어 로직(1340)에 관하여 설명된 바와 같은 입력 흐름 레이트의 제어에 더하여, 출력 흐름 제어는 다위상 FIR 필터의 출력들을 제어하는데 사용된다. 일부 실시예들에 있어, 제어 로직(1440)은 이전 페이지의 방정식들의 표에 도시된 비-순차적인 순서(볼드체로 표시된 방정식들)로 계수들의 세트들을 통해 순환한다.
제어 로직은 흐름 제어 신호들 및 계수 메모리 룩업 어드레스를 생성한다. 스케일링 비율이 1보다 클 때, 다위상 필터의 출력 레이트는 입력 레이트보다 더 높을 것이다. 이러한 경우에 있어, 제어 로직은 언제 새로운 샘플들을 레지스터들 내로 쉬프트할지를 결정한다. 스케일링 비율이 1보다 작은 경우, 필터의 출력 레이트가 입력 레이트보다 작을 것이다. 이러한 경우에 있어, 제어 로직은, 필터가 유효 출력을 생성하지 않는 클럭 사이클 동안, 필터의 출력을 실격(disqualify)시키는데 사용되는 신호를 생성한다. 일부 실시예들에 있어, 스케일링 시스템의 제어 로직은 또한 계수들의 세트를 조회하기 위한 어드레스를 생성한다.
도 15는 비디오 스케일링 프로세스, 장치, 또는 시스템의 실시예의 위상 누산기를 예시한다. 일부 실시예들에 있어, 도 13의 제어 로직(1340) 및 도 14의 제어 로직(1440)의 제어 기능들과 같은, 다위상 필터의 제어 기능들은 위상 누산기(1500)를 사용하여 생성될 수 있다. 위상 누산기(또는 PA)(1500)는 다중-비트 클럭동작형 레지스터(multi-bit clocked register)(1520)를 포함한다. 레지스터(1520)의 출력이 가산기(1510)에 제 1 입력으로서 제공된다. 가산기(1510)에 대한 제 2 입력은 제어 워드이다. 가산기의 출력이 레지스터(1510)의 입력에 공급되며, 여기에서 입력이 다음 클럭 사이클에 레지스터(1520) 내에 래치(latch)된다.
도 15에 예시된 바와 같이, 제어 워드(control word: CW)는 스케일링 비율의 역수이며, 따라서 CW = 1/SR이다. 제어 워드는 흔히 다중-비트 유리(rational) 이진수일 수 있다. 클럭동작형 레지스터(1520) 내에 저장된 이진수는 정수 부분 및 소수 부분을 가질 것이다. 저장된 이진수의 정수 부분은 제어 신호 로직(1530)에 의해 수신되며, 정수 부분이 디코딩되고 흐름 제어를 위해 사용되며, 제어 신호 로직의 출력들은 입력 쉬프트(shift input) 및 출력 실격(disqualify output)이다. 저장된 이진수의 소수 부분은, 소수 부분을 스케일링 비율의 분자 L과 곱함으로써(곱셈기(1540)에 의해 도시된) 계수 어드레스를 생성하는데 사용된다.
일부 실시예들에 있어, 클럭동작형 레지스터(1520)는 비디오 스케일링 동작의 시작에서 시작 값으로 초기화된다. 수직 스케일링에 대하여, 레지스터는 비디오 프레임의 개시에서 초기화되며, 각각의 새로운 출력 라인에 대해 갱신된다. 수평 스케일링에 대하여, 레지스터는 출력의 새로운 수평 라인의 시작에서 초기화되며, 각각의 출력 샘플에 대하여 갱신된다.
일부 실시예들에 있어, 레지스터(1520)의 소수 부분의 이진값은 입력 및 출력 샘플링 그리드(grid)들 사이의 위상 차이를 추적한다(또는 누산한다). 이러한 위상 값은 그 후 소수 부분을 L과 곱함으로써 계수 메모리 어드레스로 변환될 수 있다.
동작시, 클럭동작형 레지스터의 각각의 갱신은 레지스터의 정수 부분 내로의 캐리를 야기할 수 있다. 이러한 캐리의 수치 값은 새로운 데이터를 스케일러의 데이터 레지스터들 내로 어떻게 쉬프트할 지를 나타낸다(입력 쉬프트). 캐리의 수치 부분은 또한 스케일러의 곱셈기들의 출력이 언제 실격되어야 하는지를 나타낸다(출력 실격). 값들은 다음과 같이 동작한다:
(0) 정수 부분으로의 캐리가 0인 경우, 데이터 레지스터들 내로 쉬프트되어야할 새로운 데이터가 없으며, 현재 레지스트들 내의 데이터로부터 다른 출력이 연산될 수 있다. 이는 SR > 1(CW < 1)인 환경들에서만 발생할 것이다.
(1) 그러나, 정수 부분으로의 캐리가 1인 경우, 이러한 캐리 값은 "레지스터들 내로 1개의 새로운 데이터를 쉬프트"하는 것을 나타낸다.
(2) 또한, 정수 부분으로의 캐리가 2인 경우, 이러한 캐리 값은 "레지스터들 내로 2개의 새로운 데이터를 쉬프트하며, 곱셈기의 현재 출력을 실격시킨다"는 것을 나타낸다. 2 또는 그 이상의 값은 SR < 1(CW > 1)인 환경들에서만 발생할 것이다.
예를 들어, SR = L/M = 5/3이라고 가정하자. CW는 3/5 = 0.6이며, 레지스터는 0으로 초기화된다.
누산기
레지스터 값
소수 × 5(L=5) = 계수 값 새로운 데이터를 안으로 쉬프트? 코멘트
0.0 0 쉬프트 없음 초기화
0.6 3 쉬프트 없음 정수에서 변화 없음
1.2 1 1개의 새로운 데이터를 쉬프트 정수 변화 = 1
1.8 4 쉬프트 없음 정수에서 변화 없음
2.4 2 1개의 새로운 데이터를 쉬프트 정수 변화 = 1
3.0 0 1개의 새로운 데이터를 쉬프트 정수 변화 = 1
3.6 3 쉬프트 없음 정수에서 변화 없음
표 2의 계수 값 컬럼은, 그 안에서 계수 세트들이 볼드체로 번호가 매겨진, 이전의 예와 동일한 순서로 어드레스들을 통해 순환하는 계수 어드레스를 나타낸다:
계수 세트 0
계수 세트 3
계수 세트 1
계수 세트 4
계수 세트 2
비디오 스케일링 프로세스, 장치, 또는 시스템의 일부 실시예들에 있어, 설계는 계수들의 정확한 서브세트(subset)를 계수 메모리 내의 특정 어드레스에 매핑한다. 계수 세트 선택의 순서는 PA의 소수 부분 및 계수 배수 L에 의해 결정될 것이다.
이상의 예에서, 정수 부분에서의 변화가 새로운 데이터를 레지스터들 내로 쉬프트할지 여부를 결정하는, 흐름 제어가 확인될 수 있다. 스케일링 비율 SR이 1보다 작은 경우, 그 결과 0.5 <= SR < 1이면, 정수 부분에서의 변화는 항상 1 또는 2일 것이다. "1"은 새로운 데이터가 안으로 쉬프트되어야함을 나타내며, "2"는 2개의 새로운 데이터가 안으로 쉬프트되어야하고 곱셈기들의 현재 출력이 실격되어야함(유효 출력 샘플이 아님)을 나타낸다.
다위상 필터들은 대부분의 경우들에서 비디오 스케일링을 위해 잘 동작하지만, 완벽하지는 않다. FIR 필터들(다위상 FIR 필터들을 포함하는)은 필수적으로 유한 차수(N)를 가지며, 이는 왜곡들을 초래하는 이러한 구조들의 유한한 본질(nature)이다. FIR 필터들의 유한한 본질에 의해 야기되는 왜곡들이 잘 알려져 있으며 깁스 현상으로 지칭된다.
깁스 현상은 필터의 레지스터들 내에 저장된 입력 데이터가 작은 수의 입력 샘플들에 걸쳐 큰 전환을 포함할 때 FIR 필터의 출력에서 오버슈트(overshoot)들 및 언더슈트(undershoot)들을 생성한다. 진폭에서의 전환들이 더 커질수록, 그리고 전환 시간이 더 작아질수록, 왜곡이 더 뚜렷해진다.
다위상 FIR 필터 기반 비디오 스케일러들에 있어, 비디오 컨텐트가 자연 경관을 촬영하는 카메라에 의해 생성될 때 왜곡을 초래하는 전환들이 드물다. 그러나, 컴퓨터 생성 그래픽스 엘러먼트들은 흔히 왜곡을 초래하는 종류들의 특징들을 포함한다. 이러한 맥락에 있어, "컴퓨터 그래픽스 엘러먼트들"은 컴퓨터에 의해 생성된 그래픽스 이미지들 및 텍스트를 포함할 수 있으며, 이는 또한 블루레이 및 DVD 플레이어들, 및 셋탑 박스들과 같은 소비자 가전제품에 의해 생성된 그래픽스 엘러먼트들을 포함할 수 있다. 그래픽스 엘러먼트들은 비디오 상에 오버레이되는 메뉴들 및 텍스트에 의해 생성된다.
도 16은 비디오 스케일러의 일 실시예로의 입력 샘플들의 시퀀스를 예시한다. 이러한 샘플들의 진폭은 범위 0 > 1로 정규화되었으며, 샘플들은 0.1로부터 0.9까지의 범위이다. 그러나, 이러한 샘플들은 0.1로부터 0.9로 그들의 값이 변화하는 극단적으로 급격한 전환을 갖는다. 이는 컴퓨터 그래픽스에서는 전형적이지만 자연적 이미지들에서는 드문 전환 유형의 일 예이며, 이러한 종류의 전환은 다위상 FIR 필터에서 스케일링될 때 문제를 만든다.
도 17a는 다위상 FIR 필터를 포함하는 비디오 스케일러에 의해 프로세싱된 입력 시퀀스를 예시한다. 이러한 예시에 있어, 도 17a에 제공된 입력 시퀀스는 다위상 FIR 필터 및 SR = 9/4를 사용하여 스케일링된다. 이러한 예시에 있어, 9/4에 의해 스케일링된 20개의 입력 샘플들 = 45개의 출력 샘플들이며, 이들이 도 17a에 도시된다. 오버슈트 및 링잉이 전환의 양편 상에서 출력 샘플들에서 보일 수 있다. 이러한 아티팩트들이 스케일링된 비디오 이미지 내에서 보일 수 있을 것이다.
도 17b는 선형 보간기를 포함하는 비디오 스케일러에 의해 프로세싱된 입력 시퀀스를 예시한다. 도 17a와 대조적으로, 도 17b에 도시된 출력 샘플들은, 이러한 샘플들이 다위상 FIR 필터가 아니라 선형 보간기를 사용하여 스케일링되었다는 점을 제외하면, 도 16에 예시된 동일한 20개의 샘플들을 사용하여 동일한 비율에 의해 스케일링된다. 도 17a의 다위상 필터의 출력에서 보일 수 있는 오버슈트 및 링잉이 선형 보간기 스케일링된 출력에서는 분명하지 않다.
그러나, 선형 보간기의 출력이 컴퓨터-생성 이미지들에서 흔한 불연속성의 이러한 예에서 다위상 FIR 필터 이상의 개선을 제공하지만, 선형 보간기는 카메라들에 의해 생성된 것들과 같은 자연적인 이미지들의 스케일링에 있어 상대적으로 열악한 작업을 수행한다. 자연적인 이미지들에 대하여, 다위상 FIR 기법이 더 높은 품질의 출력 이미지를 생성한다.
선형 보간기는 입력과 출력 샘플 사이의 위상 관계가 알려진 경우 이미지를 스케일링하기 위한 간단한 방법을 제공한다. 도 17b에 도시된 예에 있어, 출력은 2개의 입력 샘플들의 단순한 평균이다.
일 예에 있어, 위상 정보(P)는 0과 1 사이의 값이며, 여기에서 0은 입력 A에 매칭되는 출력 위상을 나타내고, 1은 입력 샘플 B에 매칭되는 출력 위상을 나타내는 것으로 가정될 수 있다. 0 < P < 1인 P의 값들은 A와 B 사이의 위상 쉬프트를 나타내며, 여기에서 선형 보간기의 출력은 다음과 같다:
LI(출력) = (A × (1-P)) + (B × P)
일부 실시예들에 있어, 도 15에 예시된 레지스터(1520)와 같은 위상 누산기 레지스터의 소수 부분은 선형 보간기 스케일링에 대한 출력을 연산할 때 직접적으로 사용될 수 있는 위상 정보를 포함한다. 적응적 스케일링 알고리즘은 다위상 FIR 비디오 스케일러에서의 오버슈트 및 링잉을 억제하기 위하여 위상 누산기의 출력을 사용한다. 비디오 스케일러의 일부 실시예들에 있어, 적응적 스케일링 알고리즘은 다위상 FIR 계수들을 위상 누산기로부터의 위상 정보와 블렌딩한다. 일부 실시예들에 있어, 블렌딩은 다위상 필터의 데이터 레지스터들 내에 유지되는 데이터 샘플들의 세트의 변화율(ROC) 정보를 측정함으로써 제어된다. 이러한 변화율 정보는 2개의 계수 세트들을 계수들의 단일 세트로 결합하기 위한 블렌딩 제어가 된다.
이상의 설명에 있어, 설명의 목적으로, 본 발명의 완전한 이해를 제공하기 위해 다수의 특정 상세내용들이 기술되었다. 그러나, 본 발명이 이러한 특정 상세내용들 중 일부가 없이 실현될 수 있다는 것이 당업자에게 명백할 것이다. 다른 경우들에 있어, 잘-공지된 구조들 및 디바이스들이 블록도 형태로 도시된다. 예시된 컴포넌트들 사이에 중간 구조가 존재할 수 있다. 본 명세서에서 설명된 또는 예시된 컴포넌트들은 예시되지 않거나 또는 설명되지 않은 추가적인 입력들 또는 출력들을 가질 수 있다. 예시된 엘러먼트들 또는 컴포넌트들은 또한, 임의의 필드들의 재순서화 또는 필드 크기들의 수정을 포함하는, 상이한 배열들 또는 순서들로 배열될 수 있다.
본 발명은 다양한 프로세스들을 포함할 수 있다. 본 발명의 프로세스들은 하드웨어 컴포넌트들에 의해 수행될 수 있거나, 또는 명령들로 프로그래밍된 범용 프로세서 또는 전용 프로세서 또는 로직 회로들이 프로세스들을 수행하게 하는데 사용될 수 있는 컴퓨터-판독가능 명령들로 구현될 수 있다. 대안적으로, 프로세스들은 하드웨어와 소프트웨어의 조합에 의해 수행될 수 있다.
본 발명의 부분들이 컴퓨터 프로그램 제품으로서 제공될 수 있으며, 이는, 컴퓨터(또는 다른 전자 디바이스들)를 본 발명에 따른 프로세스를 수행하도록 프로그래밍하는데 사용될 수 있는, 거기에 저장된 컴퓨터 프로그램 명령들을 갖는 비-일시적 컴퓨터-판독가능 저장 매체를 포함할 수 있다. 컴퓨터-판독가능 저장 매체는, 비제한적으로, 플로피 디스켓들, 광 디스크들, CD-ROM(compact disk read-only memory)들, 및 자기-광 디스크들, ROM(read-only memory)들, RAM(random access memory)들, EPROM(erasable programmable read-only memory)들, EEPROM(electrically-erasable programmable read-only memory)들, 자석 또는 광 카드들, 플래시 메모리, 또는 전자 명령들을 저장하는데 적합한 다른 유형의 매체들/컴퓨터-판독가능 매체를 포함할 수 있다. 더욱이, 본 발명은 또한 컴퓨터 프로그램 제품으로서 다운로드될 수 있으며, 프로그램이 원격 컴퓨터로부터 요청 컴퓨터로 전송될 수 있다.
다수의 방법들이 그들의 가장 기본적인 형태로 설명되었지만, 본 발명의 기본적인 범위로부터 벗어나지 않고, 프로세스들이 방법들 중 임의의 것에 부가되거나 또는 이로부터 제거될 수 있으며, 정보가 설명된 메시지들 중 임의의 것에 부가되거나 이로부터 빼질 수 있다. 다수의 추가 수정들 및 개조들이 이루어질 수 있다는 것이 당업자에게 명백할 것이다. 특정 실시예들은 본 발명을 제한하기 위해서가 아니라 본 발명을 예시하기 위하여 제공된다.
엘러먼트 "A"가 엘러먼트 "B"로 연결되거나 또는 이와 연결되는 것으로 언급된 경우, 엘러먼트 A는 직접적으로 엘러먼트 B에 연결될 수도 있으며, 또는 예를 들어 엘러먼트 C를 통해 간접적으로 연결될 수도 있다. 상세한 설명이 컴포넌트, 특징, 구조, 프로세스, 또는 특성 A가 컴포넌트, 특징, 구조, 프로세스, 또는 특성 B를 "초래"한다고 언급할 때, 이는 "A"가 적어도 부분적으로 "B"를 초래하지만 "B"를 초래함에 있어 도와주는 적어도 하나의 다른 컴포넌트, 특징, 구조, 프로세스, 또는 특성이 또한 존재할 수 있다는 것을 의미한다. 상세한 설명이 컴포넌트, 특징, 구조, 프로세스, 또는 특성이 포함될 수("may", "might", 또는 "could") 있다고 표시한 경우, 그 특정 컴포넌트, 특징, 구조, 프로세스, 또는 특성이 반드시 포함되어야할 필요는 없다. 상세한 설명이 일("a" 또는 "an") 엘러먼트를 언급한 경우, 이는 설명된 엘러먼트들 중 오로지 하나만이 존재한다는 것을 의미하지는 않는다.
일 실시예는 본 발명의 일 구현예 또는 예이다. "일 실시예", "하나의 실시예", "일부 실시예들" 또는 "다른 실시예들"에 대한 상세한 설명 내의 언급은 실시예들과 함께 설명된 특정 특징, 구조, 또는 특성이 적어도 일부 실시예들에 포함되지만, 필수적으로 모든 실시예에 포함되어야 하는 것이 아님을 의미한다. "일 실시예", "하나의 실시예", 또는 "일부 실시예들"의 다양한 모습들이 필수적으로 모두 동일한 실시예들을 지칭하는 것은 아니다. 본 발명의 예시적인 실시예들의 이상의 설명에 있어, 본 발명을 간소화하고 다양한 진보적인 측면들 중 하나 이상의 이해에 도움을 주기 위한 목적으로, 본 발명의 다양한 특징들이 때로 단일 실시예, 도면, 또는 그들의 설명으로 함께 그룹화되었다는 것이 이해되어야만 한다.

Claims (30)

  1. 비디오 데이터를 스케일링하기 위한 방법으로서,
    비디오 데이터의 스트림을 수신하는 단계로서, 상기 비디오 데이터는 비디오 데이터 값들의 복수의 세트들을 포함하는, 단계;
    상기 수신된 비디오 데이터의 스트림으로부터의 상기 비디오 데이터 값들의 상기 복수의 세트들의 비디오 데이터 값들의 제 1 세트를 메모리에 저장하는 단계;
    비디오 데이터 값들의 상기 제 1 세트를 스케일링함으로써 비디오 데이터 값들의 상기 제 1 세트에 대한 스케일링된 값들의 제 1 세트를 결정하는 단계;
    비디오 데이터 값들의 상기 제 1 세트의 보간(interpolation)에 기초하여 비디오 데이터 값들의 상기 제 1 세트에 대한 스케일링된 값들의 제 2 세트를 결정하는 단계;
    상기 수신된 비디오 데이터의 스트림에 대한 진폭의 변화율을 검출하는 단계로서, 상기 검출된 진폭의 변화율은 필터 링잉(filter ringing)을 초래하는 상기 수신된 비디오 데이터의 스트림 내의 전환(transition)들을 나타내는, 단계;
    상기 수신된 비디오 데이터의 스트림에 대한 상기 검출된 진폭의 변화율에 적어도 부분적으로 기초하여 믹싱 제어 신호(mixing control signal)를 생성하는 단계로서, 상기 믹싱 제어 신호는 비디오 데이터 값들의 상기 제 1 세트의 인접 값들 사이의 최대 차이(difference)와 비디오 데이터 값들의 상기 제 1 세트의 상기 인접 값들 사이의 상기 차이들의 합계 사이의 차이 비율(difference ratio)을 포함하는, 단계;
    블렌딩된(blended) 값들의 세트를 생성하기 위하여 상기 믹싱 제어 신호에 적어도 부분적으로 기초하여 스케일링된 값들의 상기 제 1 세트와 스케일링된 값들의 상기 제 2 세트를 믹싱하는 단계; 및
    블렌딩된 값들의 상기 세트에 기초하여 스케일링된 비디오 데이터 출력을 생성하는 단계를 포함하는, 비디오 데이터를 스케일링하기 위한 방법.
  2. 청구항 1에 있어서,
    상기 비디오 데이터 값들의 상기 제 1 세트를 스케일링하는 것은 비디오 데이터 값들의 상기 제 1 세트에 다-위상 필터 뱅크(poly-phase filter bank) 스케일링을 적용하는 것을 포함하는, 비디오 데이터를 스케일링하기 위한 방법.
  3. 청구항 1에 있어서,
    스케일링된 값들의 상기 제 1 세트는 비디오 데이터 값들의 상기 스케일링된 제 1 세트를 나타내는 계수들의 제 1 세트이고, 스케일링된 값들의 상기 제 2 세트는 비디오 데이터 값들의 상기 제 1 세트의 상기 보간을 나타내는 계수들의 제 2 세트인, 비디오 데이터를 스케일링하기 위한 방법.
  4. 청구항 3에 있어서,
    상기 믹싱하는 단계는, 계수들의 블렌딩된 세트를 생성하기 위하여 상기 믹싱 제어 신호에 적어도 부분적으로 기초하여 계수들의 상기 제 1 세트를 계수들의 상기 제 2 세트와 믹싱하는 단계를 포함하는, 비디오 데이터를 스케일링하기 위한 방법.
  5. 청구항 4에 있어서,
    계수들의 상기 제 1 세트를 결정하는 단계는, 메모리로부터 계수들의 상기 제 1 세트를 검색하는 단계 또는 계수들의 상기 제 1 세트를 계산하는 단계 중 하나를 포함하는, 비디오 데이터를 스케일링하기 위한 방법.
  6. 청구항 4에 있어서,
    상기 수신된 비디오 데이터의 스트림의 위상을 연산하는 단계를 더 포함하며,
    계수들의 상기 제 1 및 제 2 세트들의 결정은 적어도 부분적으로 상기 비디오 데이터의 상기 연산된 위상에 기초하는, 비디오 데이터를 스케일링하기 위한 방법.
  7. 청구항 4에 있어서,
    상기 스케일링된 비디오 데이터를 생성하는 단계는 비디오 데이터 값들의 상기 제 1 세트와 블렌딩된 값들의 상기 세트를 곱하는 단계를 포함하는, 비디오 데이터를 스케일링하기 위한 방법.
  8. 청구항 7에 있어서,
    상기 스케일링된 비디오 데이터 출력은, 오로지 계수들의 상기 제 1 세트만을 사용하여 생성되는 스케일링된 비디오 데이터 출력에 대한 필터 링잉(filter ringing)의 레벨보다 더 작은 필터 링잉의 레벨을 갖는, 비디오 데이터를 스케일링하기 위한 방법.
  9. 청구항 1에 있어서,
    스케일링된 값들의 상기 제 1 세트는 비디오 데이터 값들의 상기 스케일링된 제 1 세트에 대한 루마(luma) 값들의 제 1 세트이며, 스케일링된 값들의 상기 제 2 세트는 비디오 데이터 값들의 상기 제 1 세트의 상기 보간에 대한 루마 값들의 제 2 세트인, 비디오 데이터를 스케일링하기 위한 방법.
  10. 청구항 9에 있어서,
    상기 믹싱하는 단계는, 상기 믹싱 제어 신호에 적어도 부분적으로 기초하여 루마 값들의 상기 제 1 세트와 루마 값들의 상기 제 2 세트를 믹싱하는 단계를 포함하는, 비디오 데이터를 스케일링하기 위한 방법.
  11. 삭제
  12. 청구항 1에 있어서,
    상기 믹싱 제어 신호를 생성하는 단계는, 상기 인접 값들 사이의 상기 최대 차이, 상기 차이 비율, 및 미리 결정된 레지스터 값을 곱하는 단계를 포함하는, 비디오 데이터를 스케일링하기 위한 방법.
  13. 비디오 데이터를 스케일링하기 위한 장치에 있어서,
    비디오 데이터 스트림으로부터의 비디오 데이터 값들의 세트들을 저장하기 위한 메모리;
    비디오 데이터 값들의 상기 세트들로부터 비디오 값들의 제 1 세트를 스케일링함으로써 스케일링된 값들의 제 1 세트를 결정하기 위한 스케일링 값 결정부;
    상기 비디오 데이터 스트림의 진폭의 변화율을 결정하고 상기 결정된 변화율에 기초하여 믹싱 제어 신호를 결정하기 위한 검출 엘러먼트로서, 상기 결정된 진폭의 변화율은 필터 링잉을 초래하는 상기 비디오 데이터 스트림 내의 전환들을 나타내며, 상기 믹싱 제어 신호는 비디오 데이터 값들의 상기 제 1 세트의 인접 값들 사이의 최대 차이와 비디오 데이터 값들의 상기 제 1 세트의 상기 인접 값들 사이의 상기 차이들의 합계 사이의 차이 비율을 포함하는, 상기 검출 엘러먼트; 및
    블렌딩된 값들의 세트를 생성하기 위하여, 상기 결정된 믹싱 제어 신호에 기초하여, 스케일링된 값들의 상기 제 1 세트를 비디오 데이터 값들의 상기 제 1 세트의 보간에 기초하여 결정된 스케일링된 값들의 제 2 세트와 믹싱하기 위한 믹싱 엘러먼트를 포함하는, 비디오 데이터를 스케일링하기 위한 장치.
  14. 청구항 13에 있어서,
    상기 비디오 데이터 값들의 상기 제 1 세트를 스케일링하는 것은 비디오 데이터 값들의 상기 제 1 세트에 다-위상 필터 기반 스케일링을 적용하는 것을 포함하는, 비디오 데이터를 스케일링하기 위한 장치.
  15. 청구항 13에 있어서,
    스케일링된 값들의 상기 제 1 세트는 비디오 데이터 값들의 상기 스케일링된 제 1 세트를 나타내는 계수들의 제 1 세트이고, 스케일링된 값들의 상기 제 2 세트는 비디오 데이터 값들의 상기 제 1 세트의 상기 보간을 나타내는 계수들의 제 2 세트인, 비디오 데이터를 스케일링하기 위한 장치.
  16. 청구항 15에 있어서,
    상기 믹싱하는 것은, 계수들의 블렌딩된 세트를 생성하기 위하여 상기 믹싱 제어 신호에 적어도 부분적으로 기초하여 계수들의 상기 제 1 세트와 계수들의 상기 제 2 세트를 믹싱하는 것을 포함하는, 비디오 데이터를 스케일링하기 위한 장치.
  17. 청구항 16에 있어서,
    블렌딩된 계수들의 상기 세트와 비디오 데이터 값들의 상기 제 1 세트를 곱하기 위한 복수의 곱셈기들을 더 포함하는, 비디오 데이터를 스케일링하기 위한 장치.
  18. 청구항 16에 있어서,
    상기 비디오 데이터 스트림으로부터의 위상 데이터를 누산(accumulate)하기 위한 누산기를 더 포함하며,
    계수들의 상기 제 1 세트 및 계수들의 상기 제 2 세트는 적어도 부분적으로 상기 누산된 위상 데이터에 기초하여 결정되는, 비디오 데이터를 스케일링하기 위한 장치.
  19. 청구항 16에 있어서,
    계수들의 상기 제 1 세트는 적어도 부분적으로 상기 메모리로부터 계수 값들을 획득함으로써 결정되는, 비디오 데이터를 스케일링하기 위한 장치.
  20. 청구항 17에 있어서,
    상기 복수의 곱셈기들에 의해 생성된 값들을 합산하고 스케일링된 비디오 출력을 생성하기 위한 가산기를 더 포함하는, 비디오 데이터를 스케일링하기 위한 장치.
  21. 청구항 13에 있어서,
    스케일링된 값들의 상기 제 1 세트는 비디오 데이터 값들의 상기 스케일링된 제 1 세트에 대한 루마 값들의 제 1 세트이며, 스케일링된 값들의 상기 제 2 세트는 비디오 데이터 값들의 상기 제 1 세트의 상기 보간에 대한 루마 값들의 제 2 세트인, 비디오 데이터를 스케일링하기 위한 장치.
  22. 청구항 21에 있어서,
    상기 믹싱하는 것은, 상기 믹싱 제어 신호에 적어도 부분적으로 기초하여 루마 값들의 상기 제 1 세트와 루마 값들의 상기 제 2 세트를 믹싱하는 것을 포함하는, 비디오 데이터를 스케일링하기 위한 장치.
  23. 삭제
  24. 청구항 13에 있어서,
    상기 검출 엘러먼트는 미리 결정된 레지스터 값을 유지하기 위한 적어도 하나의 레지스터를 포함하며,
    상기 믹싱 제어 신호를 생성하는 것은, 상기 인접 값들 사이의 상기 최대 차이, 상기 차이 비율, 및 상기 미리 결정된 레지스터 값을 곱하는 것을 포함하는, 비디오 데이터를 스케일링하기 위한 장치.
  25. 프로세서에 의해 실행될 때 프로세서가 동작들을 수행하도록 하는 명령들의 시퀀스들을 나타내는 저장된 데이터를 갖는 비-일시적 컴퓨터-판독가능 기록 매체로서,
    상기 동작들은:
    비디오 데이터의 스트림을 수신하는 동작으로서, 상기 비디오 데이터는 비디오 데이터 값들의 복수의 세트들을 포함하는, 동작;
    상기 수신된 비디오 데이터의 스트림으로부터의 상기 비디오 데이터 값들의 상기 복수의 세트들의 비디오 데이터 값들의 제 1 세트를 메모리에 저장하는 동작;
    비디오 데이터 값들의 상기 제 1 세트를 스케일링함으로써 비디오 데이터 값들의 상기 제 1 세트에 대한 스케일링된 값들의 제 1 세트를 결정하는 동작;
    비디오 데이터 값들의 상기 제 1 세트의 보간에 기초하여 비디오 데이터 값들의 상기 제 1 세트에 대한 스케일링된 값들의 제 2 세트를 결정하는 동작;
    상기 수신된 비디오 데이터의 스트림에 대한 진폭의 변화율을 검출하는 동작으로서, 상기 검출된 진폭의 변화율은 필터 링잉을 초래하는 상기 수신된 비디오 데이터의 스트림 내의 전환들을 나타내는, 동작;
    상기 수신된 비디오 데이터의 스트림에 대한 상기 검출된 진폭의 변화율에 적어도 부분적으로 기초하여 믹싱 제어 신호를 생성하는 동작으로서, 상기 믹싱 제어 신호는 비디오 데이터 값들의 상기 제 1 세트의 인접 값들 사이의 최대 차이와 비디오 데이터 값들의 상기 제 1 세트의 상기 인접 값들 사이의 상기 차이들의 합계 사이의 차이 비율을 포함하는, 동작;
    블렌딩된 값들의 세트를 생성하기 위하여 상기 믹싱 제어 신호에 적어도 부분적으로 기초하여 스케일링된 값들의 상기 제 1 세트와 스케일링된 값들의 상기 제 2 세트를 믹싱하는 동작; 및
    블렌딩된 값들의 상기 세트에 기초하여 스케일링된 비디오 데이터 출력을 생성하는 동작을 포함하는, 컴퓨터-판독가능 기록 매체.
  26. 청구항 25에 있어서,
    스케일링된 값들의 상기 제 1 세트는 비디오 데이터 값들의 상기 스케일링된 제 1 세트를 나타내는 계수들의 제 1 세트이고, 스케일링된 값들의 상기 제 2 세트는 비디오 데이터 값들의 상기 제 1 세트의 상기 보간을 나타내는 계수들의 제 2 세트인, 컴퓨터-판독가능 기록 매체.
  27. 청구항 26에 있어서,
    상기 믹싱하는 동작은, 계수들의 블렌딩된 세트를 생성하기 위하여 상기 믹싱 제어 신호에 적어도 부분적으로 기초하여 계수들의 상기 제 1 세트와 계수들의 상기 제 2 세트를 믹싱하는 동작을 포함하는, 컴퓨터-판독가능 기록 매체.
  28. 청구항 27에 있어서,
    계수들의 상기 제 1 세트를 결정하는 동작은, 메모리로부터 계수들의 상기 제 1 세트를 검색하는 동작 또는 계수들의 상기 제 1 세트를 계산하는 동작 중 하나를 포함하는, 컴퓨터-판독가능 기록 매체.
  29. 청구항 27에 있어서,
    상기 프로세서에 의해 실행될 때 상기 프로세서가 동작들을 수행하도록 하는 명령들을 더 포함하며,
    상기 동작들은:
    상기 수신된 비디오 데이터의 스트림의 위상을 연산하는 동작으로서, 계수들의 상기 제 1 및 제2 세트들은 상기 연산된 위상에 적어도 부분적으로 기초하는, 동작을 포함하는, 컴퓨터-판독가능 기록 매체.
  30. 청구항 27에 있어서,
    상기 스케일링된 비디오 데이터를 생성하는 동작은 비디오 데이터 값들의 상기 제 1 세트를 블렌딩된 값들의 상기 세트와 곱하는 것을 포함하는, 컴퓨터-판독가능 기록 매체.
KR1020147020598A 2011-12-22 2012-12-10 비디오 스케일러들에서의 링잉 억제 KR101816661B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/335,398 US20130162901A1 (en) 2011-12-22 2011-12-22 Ringing suppression in video scalers
US13/335,398 2011-12-22
PCT/US2012/068730 WO2013095970A1 (en) 2011-12-22 2012-12-10 Ringing suppression in video scalers

Publications (2)

Publication Number Publication Date
KR20140107581A KR20140107581A (ko) 2014-09-04
KR101816661B1 true KR101816661B1 (ko) 2018-01-09

Family

ID=48654189

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147020598A KR101816661B1 (ko) 2011-12-22 2012-12-10 비디오 스케일러들에서의 링잉 억제

Country Status (7)

Country Link
US (1) US20130162901A1 (ko)
EP (1) EP2795917A4 (ko)
JP (1) JP6190386B2 (ko)
KR (1) KR101816661B1 (ko)
CN (1) CN104041062B (ko)
TW (1) TWI504246B (ko)
WO (1) WO2013095970A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150348232A1 (en) * 2012-01-19 2015-12-03 Hewlett-Packard Development Company, L.P. Right sizing enhanced content to generate optimized source content
US8971447B1 (en) * 2013-10-17 2015-03-03 Fujitsu Limited Variable delay of data signals
CN103778595B (zh) 2013-12-31 2017-01-11 上海晨思电子科技有限公司 一种图像缩小处理的方法及装置
KR102214028B1 (ko) 2014-09-22 2021-02-09 삼성전자주식회사 가변구조형 스케일러를 포함하는 애플리케이션 프로세서와 이를 포함하는 장치들
JP7168332B2 (ja) * 2018-03-16 2022-11-09 株式会社Soken リンギング抑制回路
CN108467118B (zh) * 2018-05-15 2020-08-04 江南大学 一种固定化藻菌去除养殖废水氮磷的方法
US11941783B2 (en) * 2020-08-28 2024-03-26 Apple Inc. Scaler de-ringing in image processing circuitry

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6865587B2 (en) 1997-07-29 2005-03-08 Lucent Technologies Inc. Interpolating filter banks in arbitrary dimensions
JP2011103662A (ja) 2006-01-27 2011-05-26 Dolby Internatl Ab 複素変調フィルタバンクを用いた効率的なフィルタリング
GB2478401A (en) 2010-03-05 2011-09-07 Intel Corp System, method, and computer program product for image re-scaling

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4939576A (en) * 1989-07-24 1990-07-03 Campbell Jack J Adaptive ringing reducer for television signal processing
US5594467A (en) * 1989-12-06 1997-01-14 Video Logic Ltd. Computer based display system allowing mixing and windowing of graphics and video
JP3687139B2 (ja) * 1994-06-29 2005-08-24 ソニー株式会社 画像データ用のデジタルフィルタ及びデジタルフィルタシステム
US6108047A (en) * 1997-10-28 2000-08-22 Stream Machine Company Variable-size spatial and temporal video scaler
US20030080981A1 (en) * 2001-10-26 2003-05-01 Koninklijke Philips Electronics N.V. Polyphase filter combining vertical peaking and scaling in pixel-processing arrangement
JP4206726B2 (ja) * 2002-11-01 2009-01-14 パナソニック株式会社 補間装置
US7391933B2 (en) * 2003-10-30 2008-06-24 Samsung Electronics Co., Ltd. Method and apparatus for image interpolation based on adaptive polyphase filters
ITMI20041971A1 (it) * 2004-10-15 2005-01-15 Uni Degli Studi Brescia Metodo di codifica video scalabile
US7639873B2 (en) * 2005-07-28 2009-12-29 Microsoft Corporation Robust shot detection in a video
US7894685B2 (en) * 2008-07-01 2011-02-22 Texas Instruments Incorporated Method and apparatus for reducing ringing artifacts
CN101330610A (zh) * 2008-07-22 2008-12-24 华为技术有限公司 水印嵌入方法及装置、提取方法及装置和处理系统
US8279240B2 (en) * 2008-09-29 2012-10-02 Intel Corporation Video scaling techniques
US8300948B2 (en) * 2008-11-28 2012-10-30 Broadcom Corporation De-ringing operation for image processing
BR122019023704B1 (pt) * 2009-01-16 2020-05-05 Dolby Int Ab sistema para gerar um componente de frequência alta de um sinal de áudio e método para realizar reconstrução de frequência alta de um componente de frequência alta
TWI392335B (zh) * 2009-08-14 2013-04-01 Sunplus Technology Co Ltd 在縮放器中去除一影像訊號之環形雜訊之濾波系統及方法
KR20110042423A (ko) * 2009-10-19 2011-04-27 세종대학교산학협력단 영상의 경계영역을 적응적으로 고려하는 영상 향상 알고리즘 장치 및 방법
US20110298972A1 (en) * 2010-06-04 2011-12-08 Stmicroelectronics Asia Pacific Pte. Ltd. System and process for image rescaling using adaptive interpolation kernel with sharpness and de-ringing control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6865587B2 (en) 1997-07-29 2005-03-08 Lucent Technologies Inc. Interpolating filter banks in arbitrary dimensions
JP2011103662A (ja) 2006-01-27 2011-05-26 Dolby Internatl Ab 複素変調フィルタバンクを用いた効率的なフィルタリング
GB2478401A (en) 2010-03-05 2011-09-07 Intel Corp System, method, and computer program product for image re-scaling

Also Published As

Publication number Publication date
CN104041062A (zh) 2014-09-10
KR20140107581A (ko) 2014-09-04
TW201338509A (zh) 2013-09-16
JP2015511414A (ja) 2015-04-16
US20130162901A1 (en) 2013-06-27
EP2795917A1 (en) 2014-10-29
EP2795917A4 (en) 2015-09-16
TWI504246B (zh) 2015-10-11
CN104041062B (zh) 2019-03-29
WO2013095970A1 (en) 2013-06-27
JP6190386B2 (ja) 2017-08-30

Similar Documents

Publication Publication Date Title
KR101816661B1 (ko) 비디오 스케일러들에서의 링잉 억제
US4674125A (en) Real-time hierarchal pyramid signal processing apparatus
JP5000737B2 (ja) 多次元画像の画質向上のためのシステムおよび方法
EP3017594B1 (en) Method and processor for efficient video processing in a streaming environment
US20070104394A1 (en) Method and system for digital image magnification and reduction
US5835160A (en) Sampling rate conversion using digital differential analyzers
JP2000310984A (ja) 組み合わされたビデオおよびコンピュータ生成画像をスケーリングするシステムおよび方法
JPH08107568A (ja) ビデオ画像のスケーリング方法及び装置
US9582852B2 (en) Video scaling using multiple video paths
US20040234165A1 (en) Image interpolation apparatus and method
US6166773A (en) Method and apparatus for de-interlacing video fields to progressive scan video frames
CN110677554A (zh) 一种视频放大方法及其装置、电子设备和存储介质
EP1176823A1 (en) Image processing circuit
US5483474A (en) D-dimensional, fractional bandwidth signal processing apparatus
US20090087119A1 (en) Method and apparatus for arbitrary ratio image reduction
JP2000165664A (ja) 画像の解像度変換装置及び方法
KR100641741B1 (ko) 샘플 데이터를 필터링하기 위한 디지털 필터 및 방법
Kusano et al. An FPGA-optimized architecture of anti-aliasing based super resolution for real-time HDTV to 4K-and 8K-UHD conversions
JP2003234640A (ja) デジタル信号変換器、変換方法およびビデオモニタ
JPH11191861A (ja) 画像処理装置及び画像処理システム
JP5603414B2 (ja) ファロー構造に基づくコンテンツ適応スケーラ
US7126503B2 (en) Digital sampling frequency converter
US20040264809A1 (en) Image processing apparatus, image processing method and image processing system
KR100463552B1 (ko) 큐빅 컨벌루션 보간 장치 및 방법
CN112862673B (zh) 自适应图像缩放方法及自适应图像缩放装置、存储装置

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant