KR101929869B1 - 풀 모션 컬러 비디오 대기 난류 정정 프로세싱 - Google Patents

풀 모션 컬러 비디오 대기 난류 정정 프로세싱 Download PDF

Info

Publication number
KR101929869B1
KR101929869B1 KR1020177017455A KR20177017455A KR101929869B1 KR 101929869 B1 KR101929869 B1 KR 101929869B1 KR 1020177017455 A KR1020177017455 A KR 1020177017455A KR 20177017455 A KR20177017455 A KR 20177017455A KR 101929869 B1 KR101929869 B1 KR 101929869B1
Authority
KR
South Korea
Prior art keywords
frame
frames
chrominance
luminance
fourier transform
Prior art date
Application number
KR1020177017455A
Other languages
English (en)
Other versions
KR20170087506A (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 KR20170087506A publication Critical patent/KR20170087506A/ko
Application granted granted Critical
Publication of KR101929869B1 publication Critical patent/KR101929869B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration by the use of more than one image, e.g. averaging, subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/001Image restoration
    • G06T5/73
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10032Satellite or aerial image; Remote sensing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20024Filtering details
    • G06T2207/20032Median filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20048Transform domain processing
    • G06T2207/20056Discrete and fast Fourier transform, [DFT, FFT]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20182Noise reduction or smoothing in the temporal domain; Spatio-temporal filtering

Abstract

비디오를 프로세싱하기 위한 시스템. 시스템은 비디오 카메라, 프로세싱 유닛 및 비디오 디스플레이를 포함하고, 비디오 카메라는 최종 프레임 및 복수의 선행 프레임을 포함하는, 복수의 연속하는 휘도 프레임을 발생시키도록 구성된다. 프로세싱 유닛은 복수의 시프트된 프레임을 형성하기 위해 선행 프레임을 최종 프레임에 등록하기 위해 복수의 선행 프레임을 시프트하도록, 대응하는 복수의 초기 퓨리에 변환 프레임을 형성하기 위해, 복수의 프레임 각각의 퓨리에 변환을 행하도록, 복수의 반복의 (n+1)번째 반복에서, 각각의 퓨리에 변환 프레임을 n번째 반복의 퓨리에 변환 프레임의 선형 조합으로 교체함으로써 복수의 퓨리에 변환 프레임을 반복적으로 업데이트하도록 구성되고, 0번째 반복의 퓨리에 변환 프레임은 초기의 퓨리에 변환 프레임이다.

Description

풀 모션 컬러 비디오 대기 난류 정정 프로세싱{FULL MOTION COLOR VIDEO ATMOSPHERIC TURBULENCE CORRECTION PROCESSING}
본 발명은 정부 지원으로 이루어졌다. 정부는 본 발명에서의 특정 권리를 가진다.
본 발명에 따른 실시예의 하나 또는 그 이상의 양상은 비디오 프로세싱에 관한 것으로, 더 구체적으로 비디오 데이터에서의 대기 난류(atmospheric turbulence)의 영향을 정정하기 위한 시스템 및 방법에 관한 것이다.
항공기-탑재 비디오 카메라(aircraft-mounted video camera)가 지상의 비디오를 획득할 때의 경우와 같이, 비디오가 난기류(turbulent air)를 통해 얻어질 때, 광이 장면(scene)으로부터 비디오 카메라로 이동하는 중에 공기 중의 대기 난류에 의해 화질 저하(image degradation)(예를 들어, 블러링(blurring))가 생산될 수 있다. 이러한 블러링은 비디오의 품질을 저하시킬 수 있고 비디오를 관찰하는 운영자(operator)에 대한, 또는 자동화 분석(automated analysis) 또는 제어를 위해 비디오를 사용하는 프로세싱 장비(processing equipment)에 대한 값을 감소시킬 수 있다. 따라서, 비디오 데이터 상의 대기 난류의 영향을 완화시키기 위한 시스템 및 방법이 필요하다.
본 개시물의 실시예의 양상은 비디오 데이터 상의 대기 난류의 영향을 완화시키기 위한 시스템에 관한 것이다. 일 실시예에서, 비디오 카메라로부터의 비디오 데이터의 프레임은 서로에 대해 등록하기 위해 시프트되고, 비디오 데이터에서의 대기 난류의 영향을 완화시키기 위해 난기류 정정 모듈(turbulence correction module)이 사용된다. 비디오 데이터에서의 색차 데이터(chrominance data)가 병렬 경로에서 프로세싱되고 디스플레이(display) 또는 후속적인 프로세싱을 위해 휘도 데이터(luminance data)와 조합된다.
본 발명의 일 실시예에 따르면, 비디오를 프로세싱하기 위한 시스템이 제공되고, 시스템은: 비디오 카메라; 프로세싱 유닛(processing unit); 및 비디오 디스플레이를 포함하고, 비디오 카메라는 최종 프레임 및 복수의 선행 프레임을 포함하는, 복수의 연속하는 휘도 프레임을 발생시키도록 구성되고, 프로세싱 유닛은: 복수의 시프트된 프레임을 형성하기 위해 선행 프레임을 최종 프레임에 등록하기 위해 복수의 선행 프레임을 시프트하도록, 대응하는 복수의 초기 퓨리에 변환(Fourier transform) 프레임을 형성하기 위해, 복수의 프레임 각각의 퓨리에 변환을 행하도록, 복수의 반복 중 (n+1)번째 반복에서, 각각의 퓨리에 변환 프레임을 n번째 반복의 퓨리에 변환 프레임의 선형 조합으로 교체함으로써 복수의 퓨리에 변환 프레임을 반복적으로 업데이트하도록, 여기서 0번째 반복의 퓨리에 변환 프레임은 초기의 퓨리에 변환 프레임이고, 강화된 휘도 프레임을 형성하기 위해 최종 반복의 퓨리에 변환 프레임의 평균의 역 퓨리에 변환을 행하도록 구성되고, 비디오 디스플레이는 강화된 휘도 프레임을 디스플레이하도록 구성된다.
일 실시예에서, 복수의 퓨리에 변환 프레임의 반복적 업데이팅은 (n+1)번째 반복에서, 복수의 퓨리에 변환 프레임의 k번째 퓨리에 변환 프레임을
Figure 112017060580797-pct00001
로 교체하는 것을 포함하고, 여기서:
Figure 112017060580797-pct00002
Figure 112017060580797-pct00003
은 n번째 반복의 (k-1)번째, k번째 및 (k+1)번째 퓨리에 변환 프레임이고,
Figure 112017060580797-pct00004
는 요소별(element-wise) 비이고, 1은 단위 행렬(identity matrix)이고,
Figure 112017060580797-pct00005
Figure 112017060580797-pct00006
, p는 스칼라이고, p > 1.1이고 p < 2.0이고, λ는 스칼라이고, μ는 스칼라이며,
Figure 112017060580797-pct00007
는 스칼라이다.
일 실시예에서, λ > 2이고 λ < 10이다.
일 실시예에서, μ > 0.5이고 μ < 2이다.
일 실시예에서,
Figure 112017060580797-pct00008
이고, 여기서 α는 스칼라이다.
일 실시예에서, α > 2이고 α < 10이다.
일 실시예에서, 시스템은 최종 색차 프레임 및 복수의 선행 색차 프레임을 포함하고, 프로세싱 유닛은: 최종 색차 프레임 및 선행 색차 프레임의 각각을 업샘플링(upsample)하도록; 선행 색차 프레임을 시프트하도록; 평균 색차 프레임(average chrominance frame)을 형성하기 위해 최종 색차 프레임 및 선행 색차 프레임을 평균화하도록; 서브샘플링된(subsampled) 색차 프레임을 형성하기 위해 평균 색차 프레임을 서브샘플링(subsample)하도록; 서브샘플링된 색차 프레임을 지연시키도록; 및 지연된 서브샘플링 색차 프레임을 강화된 휘도 프레임과 조합하도록 더 구성되고, 비디오 디스플레이는 강화된 휘도 프레임을 가지는 지연된 서브샘플링 색차 프레임을 디스플레이하도록 더 구성된다.
일 실시예에서, 최종 색차 프레임 및 선행 색차 프레임의 각각의 업샘플링은 4:4:4의 서브샘플링 비로의 업샘플링을 포함한다.
일 실시예에서, 평균 색차 프레임의 서브샘플링은 4:2:0의 서브샘플링 비로의 서브샘플링을 포함한다.
일 실시예에서, 제 1 메모리는 최종 프레임 및 복수의 선행 프레임의 제 1 서브세트(subset)를 저장하도록 구성되고, 제 2 메모리는 최종 프레임 및 복수의 선행 프레임의 제 2 서브세트를 저장하도록 구성되고, 멀티플렉서(multiplexer)는 수학 엔진(math engine)에 최종 프레임 및 복수의 선행 프레임 중 한번에 2개 또는 3개의 프레임을 공급하도록 구성된다.
일 실시예에서, 복수의 선행 프레임의 시프팅은: 필터링된(filtered) 프레임을 형성하기 위해 잡음 필터로 복수의 선행 프레임 중 제 1 선행 프레임을 프로세싱하는 것; X-도함수(X-derivative) 프레임을 형성하기 위해 수평 미분 필터(horizontal differentiating filter)로 필터링된 프레임을 프로세싱하는 것; Y-도함수(Y-derivative) 프레임을 형성하기 위해 수직 미분 필터(vertical differentiating filter)로 필터링된 프레임을 프로세싱하는 것; X-도함수 프레임 및 Y-도함수 프레임으로부터 에지 강도(edge strength)의 2x2 행렬을 형성하는 것; 차이 프레임을 형성하기 위해 제 1 선행 프레임으로부터 최종 프레임을 빼는 것; 차이 프레임, X-도함수 프레임 및 Y-도함수 프레임으로부터 2-요소 그라디언트 벡터(2-element gradient vector)를 형성하는 것; 및 그라디언트 벡터 및 에지 강도의 행렬로부터 시프트 추정치(shift estimate)를 형성하는 것을 포함한다.
일 실시예에서, 수평 미분 필터는 수평 소벨 필터(horizontal Sobel filter)이고; 및 수직 미분 필터는 수직 소벨 필터이다.
일 실시예에서, 에지 강도의 2x2 행렬은
Figure 112017060580797-pct00009
Figure 112017060580797-pct00010
이고, gx는 X-도함수 프레임이고, gy는 Y-도함수 프레임이고, gx*gy는 요소별 곱(product)을 표시하고, 세미콜론(semicolon)은 에지 강도의 행렬의 제 1 및 제 2 행 사이의 구분자(delimiter)이고, 각 합계는 합계의 인수(argument)의 모든 요소에 대한 것이다.
일 실시예에서, 그라디언트 벡터는
Figure 112017060580797-pct00011
이고, 여기서 Diff는 차이 프레임이고, gx는 X-도함수 프레임이고, gy는 Y-도함수 프레임이고, 각 합계는 합계의 인수의 모든 요소에 대한 것이다.
본 발명의 일 실시예에 따르면: 비디오 카메라에 의해, 최종 휘도 프레임 및 복수의 선행 휘도 프레임을 포함하는 복수의 연속하는 휘도 프레임, 및 최종 색차 프레임 및 복수의 선행 색차 프레임을 포함하는 복수의 연속하는 색차 프레임을 발생시키는 단계, 최종 휘도 프레임으로, 복수의 등록된 휘도 프레임을 형성하기 위해 선행 휘도 프레임의 최종 선행 휘도 프레임을 최종 휘도 프레임에 등록하는 추정된 시프트만큼 선행 휘도 프레임을 시프팅하는 단계; 복수의 연속하는 색차 프레임의 각각을 업샘플링하는 단계; 최종 색차 프레임으로, 복수의 등록된 색차 프레임을 형성하기 위해 추정된 시프트만큼 선행 색차 프레임을 시프팅하는 단계; 평균 색차 프레임을 형성하기 위해 등록된 색차 프레임을 평균화하는 단계; 서브샘플링된 평균 색차 프레임을 형성하기 위해 평균 색차 프레임을 서브샘플링하는 단계; 강화된 휘도 프레임을 형성하기 위해 해상도-강화 모듈(resolution-enhancing module)로 등록된 휘도 프레임을 프로세싱하는 단계; 휘도 정보 프로세싱 시간과 색차 정보 프로세싱 시간 사이의 차이에 대응하는 시간 간격 동안 서브샘플링된 평균 색차 프레임을 저장하는 단계, 조합된 프레임을 형성하기 위해 서브샘플링된 평균 색차 프레임을 강화된 휘도 프레임과 조합하는 단계 및 디스플레이에 의해, 조합된 프레임을 디스플레이하는 단계를 포함하는, 비디오를 프로세싱하기 위한 방법이 제공된다.
일 실시예에서, 복수의 연속하는 색차 프레임의 각각의 업샘플링 단계는 4:4:4의 서브샘플링 비로의 업샘플링 단계를 포함한다.
일 실시예에서, 평균 색차 프레임의 서브샘플링 단계는 4:2:0의 서브샘플링 비로의 서브샘플링 단계를 포함한다.
일 실시예에서, 서브샘플링된 평균 색차 프레임의 강화된 휘도 프레임과의 조합 단계는: 스케일 인자(scale factor)로 강화된 휘도 프레임을 곱하는 단계; 및 조정된 강화 휘도 프레임을 형성하기 위해, 강화된 휘도 프레임에 오프셋을 더하는 단계를 포함하고, 여기서 스케일 인자 및 조정된 강화 휘도 프레임은 조정된 강화 휘도 프레임의 중앙 값(median value) 및 범위가 비디오 카메라에 의해 발생된 휘도 프레임의 중앙 값 및 범위와 실질적으로 동일하도록 선택된다.
특징, 양상 및 실시예는 첨부한 도면과 함께 설명되고:
도 1은 본 발명의 일 실시예에 따른 비디오 시스템의 블록도이다;
도 2는 본 발명의 일 실시예에 따른 비디오 프로세싱 모듈의 블록도이다;
도 3은 본 발명의 일 실시예에 따른 프레임 등록 모듈의 블록도이다;
도 4는 본 발명의 일 실시예에 따른 난기류 정정 모듈의 블록도이다;
도 5는 본 발명의 일 실시예에 따른 수학 엔진의 블록도이다;
도 6은 본 발명의 일 실시예에 따른 색차 프로세싱 모듈의 블록도이다.
첨부 도면과 함께 이하에 설명되는 상세한 설명은 본 발명에 따라 제공되는 풀 모션 컬러 비디오 대기 난류 정정 프로세싱을 위한 방법의 예시적인 실시예를 설명하기 위한 것이고 본 발명이 구성되거나 활용될 수 있는 형태만을 표현하려는 것이 아니다. 그 설명은 예시된 실시예와 함께 본 발명의 특징을 설명한다. 그러나, 동일하거나 동등한 기능 및 구조가 또한 본 발명의 정신 및 범위 내에 망라되도록 의도되는 서로 다른 실시예에 의해 달성될 수 있음이 이해될 것이다. 본원에서 표시된 바와 같이, 유사한 도면 부호는 유사한 구성요소 또는 특징을 표시하는 것이다.
도 1을 참조하면, 일 실시예에서 비디오 카메라(110)가 터릿(turret)에 고정되고, 차례로 비행기, 선박(vessel), 차량 또는 인간과 같은 플랫폼(platform)(120)에 고정된다. 터릿(115)은 비디오 카메라(110)를 스티어링(steer)한다; 비디오 카메라(110)로부터의 비디오는 프로세싱된 비디오를 발생시키는 비디오 프로세싱 모듈(130)에 의해 프로세싱되고, 프로세싱된 비디오는 디스플레이(140) 상에 디스플레이된다. 다른 실시예에서 비디오는 예를 들어, 비디오 이미지에서 관련된 특징을 추적하기 위해 터릿(115)을 제어할 수 있다.
비디오 프로세싱 모듈(130)은 하나 또는 그 이상의 프로세싱 유닛에서 구현될 수 있다. 용어 "프로세싱 유닛(processing unit)"은 본원에서 데이터 또는 디지털 신호를 프로세싱하기 위해 사용되는 하드웨어, 펌웨어 및 소프트웨어의 임의의 조합을 포함하도록 사용된다. 프로세싱 유닛 하드웨어는 예를 들어, 응용 주문형 집적 회로(application specific integrated circuit: ASIC), 일반 목적 또는 특수 목적 중앙 프로세싱 유닛(central processing unit: CPU), 디지털 신호 프로세서(digital signal processor: DSP), 그래픽 프로세싱 유닛(graphic processing unit: GPU) 및 필드 프로그램가능 게이트 어레이(field programmable gate array: FPGA)와 같은 프로그램가능 논리 디바이스를 포함할 수 있다. 프로세싱 유닛에서, 본원에 사용된 바와 같이, 각 기능은 그 기능을 수행하도록 구성되는 하드웨어, 즉 하드-와이어드(hard-wired)에 의해, 또는 비-일시적 스토리지 매체(non-transitory storage medium)에 저장되는 명령을 실행하도록 구성되는, CPU와 같은 더 일반 목적의 하드웨어에 의해 수행된다. 프로세싱 유닛은 단일 프린트 와이어링 보드(printed wiring board: PWB) 상에 제조될 수 있거나 복수의 상호연결된 PWB에 걸쳐 분포될 수 있다. 프로세싱 유닛은 다른 프로세싱 유닛을 포함할 수 있다; 예를 들어, 프로세싱 유닛은 PWB 상에 상호연결되는 FPGA 및 CPU인 2개의 프로세싱 유닛을 포함할 수 있다.
프로세싱 유닛에서, 데이터 프로세싱이 모듈에 의해 수행될 수 있다. 본원에 사용된 바와 같이, "모듈(module)"은 디지털 수치 입력(digital numerical input)을 수신하고 디지털 수치 출력(digital numerical output)을 발생시키는 시스템 엘리먼트이다. 수치적 입력 및 출력은 예를 들어, 후속적인 사용 또는 프로세싱을 위해 출력 어레이(output array)가 스택 상에 또는 힙(heap)에 형성되고 저장되거나, 수치적 입력 및/또는 출력이 더 작은 증가량(increment), 예를 들어 한번에 하나의 2배-정밀도 숫자로 또는 한번에 1 바이트로 모듈로부터 스트리밍될 수 있는 배치 모드(batch mode)에서 메모리에 저장될 수 있다. 모듈은 소프트웨어 또는 하드웨어 또는 그 조합으로 구현될 수 있다. 일 실시예에서, 각 모듈은 프로세싱 유닛 상에 실행하는 소프트웨어의 피스(piece)(예를 들어, 함수, 서브루틴(subroutine), 또는 객체(object))이다. 각 경우에, 모듈은 자신이 생산하는 데이터를 발생시키기 위해, 자신이 수신하는 데이터 상에 연산(operation)을 수행하는 효과를 가진다. 본원에 개시된 실시예에 대해, 연산을 수행하는 모듈을 포함하는 시스템은 연산을 수행하도록 구성되는 시스템과 동등하다. 예를 들어, 고속 퓨리에 변환(fast Fourier transform: FFT) 모듈은 입력 데이터의 FFT인 출력 데이터를 형성하기 위해, 공급되는 입력 데이터 상에 FFT 연산을 수행한다. 모듈은 다른 모듈을 함유하거나 포함할 수 있다; 예를 들어, 함수는 다른 함수를 호출할 수 있거나, FPGA와 같은 데이터 프로세싱 하드웨어의 피스(piece)는 각각 FPGA에 의해 수행되는 데이터 프로세싱에 기여하는 동작을 수행하는, 기능적 블록과 같은 모듈을 포함할 수 있다.
비디오 프로세싱 모듈(130)은 난기류 정정(TC) 모듈, 즉 장면으로부터 비디오 카메라(110)로의 경로로 빛이 이동하는 중에 공기 중에서의 대기 난류에 의해 생성될 수 있는 화질 저하(예를 들어, 블러링)를 완화시키기 위한 프로세싱 모듈을 포함할 수 있다.
도 2를 참조하면, 비디오 프로세싱 모듈(130)은 FPGA1 및 FPGA2와 같은 하나 또는 그 이상의 필드 프로그램가능 게이트 어레이(FPGA)를 포함할 수 있다. 비디오 카메라(110)로부터의 비디오 데이터 스트림은 30Hz의 프레임 속도(frame rate)로, 1080p, 즉 1920x1080 픽셀의 해상도를 가지는 비디오의 풀 프레임(full frame)을 포함할 수 있다. 각 풀 프레임은 풀 휘도(full luminance) 또는 "루마(luma)" 및 풀 색차(full chrominance) 또는 "크로마(chroma)" 프레임을 포함할 수 있다; 풀 색차 프레임은 서브샘플링될 수 있다(즉, 풀 색차 프레임은 풀 휘도 프레임보다 더 낮은 해상도를 가질 수 있다). 관련 추출 모듈의 구역은 수신된 풀 비디오 프레임으로부터 관련 구역을 추출하고, 더 이상 필요하지 않을 때의 구(old) 프레임을 오버라이팅(overwriting)하면서, 프레임 메모리에 대응하는 프레임을 저장하기 위해 사용될 수 있다. 본원에 사용된 바와 같이, "프레임"은 관련 구역의 프레임을 지칭하고, 용어 "풀 프레임(full frame)"은 비디오 카메라(110)로부터 수신되는 풀 비디오 프레임을 지칭하기 위해 사용된다. 풀 프레임과 같이, (관련 구역의) 각 프레임은 휘도 프레임 및 색차 프레임을 포함할 수 있다. 이들 프레임은 예를 들어, 256x256 픽셀 또는 512x256 픽셀일 수 있고 비디오 카메라(110)의 시야의 중심에 또는 그 근처에서의 정사각형 또는 직사각형 구역으로 이루어질 수 있다. 프레임은 비디오의 품질을 증가시키기 위해 프로세싱될 수 있다. 관련 구역만을 프로세싱하는 것은 비디오 프로세싱 모듈(130)에 대한 계산 부담을 감소시킬 수 있다.
비디오 프로세싱 모듈(130)은 가장 최신 프레임 또는 "최종 프레임(last frame)"을 포함하는 (관련 구역의) K개 프레임 상에, 그리고 최종 프레임 이전에 수신된 K-1개 "선행 프레임(preceding frame)" 상에 동작할 수 있다. 일 실시예에서 K = 6인데, 즉 시스템은 한번에 6개 프레임 상에 동작한다. 프레임 등록 모듈은 선행 프레임을 최종 프레임에 등록하기 위해 사용될 수 있는 시프트를 결정하도록 사용될 수 있고, 이 시프트는 휘도 및 색차 프레임 둘 다를 등록하기 위해 사용될 수 있다. 휘도 프레임은 그 후에 강화된 휘도 프레임을 형성하기 위해 난기류 정정(TC) 모듈에 의해 프로세싱될 수 있고, 색차 프레임은 서브샘플링된 평균 색차 프레임을 형성하기 위해 색차 평균 모듈에 의해 프로세싱될 수 있다. 마지막으로, 강화된 휘도 프레임은 디스플레이(140) 상에 디스플레이될 수 있는, 강화된 컬러 비디오 프레임, 또는 "출력 비디오(output video)"를 형성하기 위해 출력 프로세싱 모듈에서 서브샘플링된 평균 색차 프레임과 재조합될 수 있다.
도 3을 참조하면, 일 실시예에서 프레임 등록 모듈은 2개의 입력을 취한다: 기준 프레임, 즉 최종 프레임 및 제 2-최종 프레임 또는 "최종 선행 프레임(last preceding frame)", 즉 최종 프레임 전에 수신된 프레임인 입력 프레임. 기준 프레임 및 입력 프레임 둘 다는 휘도 프레임일 수 있다. 기준 프레임은 중앙 필터(median filter)(예를 들어, 3x3 중앙 필터) 및/또는 로우-패스 필터(low-pass filter)(예를 들어, 7 내지 10 픽셀 사이의 코너 주파수(corner frequency)를 가지는 가우시안 필터(Gaussian filter)와 같은 로우-패스 필터)에 의해 프로세싱된다. 중앙 필터 및 로우-패스 필터 둘 다가 잡음-필터링 모듈에서 사용되면, 중앙 필터는 로우-패스 필터를 앞서거나 그 반대의 경우에도 마찬가지이다. 잡음-필터링 모듈의 출력은 2개의 병렬 소벨 필터에 의해 프로세싱될 수 있고, 그 각각은 수치 미분(numerical differentiation)을, X 방향으로 하나(수평 미분 필터) 그리고 Y 방향으로 하나(수직 미분 필터)를 수행한다. X-소벨 필터(또는 수평 소벨 필터) 및 Y-소벨 필터(또는 수직 소벨 필터)의 출력은 기준 프레임에서와 동일한 크기 또는 대략 동일한 크기의 어레이이고, 각각 gx(또는 X-도함수 프레임) 및 gy(또는 Y-도함수 프레임)으로 지칭된다. 에지 강도의 2x2 행렬은 그 후에
Figure 112017060580797-pct00012
Figure 112017060580797-pct00013
로서 계산되고, 여기서 gx*gy는 요소별 곱을 표시하고, 세미콜론은 행렬의 제 1 및 제 2 행 사이의 구분자이고, 합계 함수는 함수의 인수의 모든 요소에 대한 것이고, EdgeStrengths에 대한 방정식에서의 인수는 각각 2차원 어레이이다. 그라디언트는 그 후에 그라디언트 모듈에서 계산되고, 그라디언트는 벡터
Figure 112017060580797-pct00014
이고, 여기서 Diff는 기준 프레임과 입력 프레임 사이의 차이이고, 차이 모듈(도 3에서의 "Diff Image")에서 계산된다. 전역 시프트 추정 모듈(global shift estimate module)은 그 후에 입력 프레임을 기준 프레임에 등록하기 위해 요구되는 시프트의 추정치를 계산한다. 이러한 추정치는
Figure 112017060580797-pct00015
로서 계산되고, 여기서
Figure 112017060580797-pct00016
는 2x2 EdgeStrengths 행렬의 역이고, 그 곱은 행렬 곱이다. 입력 이미지가 그 후에 시프트되고, 프로세스가 반복된다. 일 실시예에서, 이미지는 가능한 픽셀의 단편의 시프트를 만들면서, 픽셀 사이를 보간하기 위해 쌍삼차 스플라인(bicubic spline)을 사용하여 시프트된다.
프레임을 등록하기 위해 요구되는 추정된 시프트의 계산 및 적용은 루프에서, 고정된 횟수로, 또는 적절한 등록에 대해 테스트하기 위해 요구되는 추정 시프트가 선택되는 낮은 임계값보다 더 작을 때까지 반복될 수 있다. 일 실시예에서 루프는 10번 반복되고, 프레임 등록이 성공하였는지 여부를 결정하기 위해 최종 반복의 종료시에 전역 시프트 추정치가 사용된다. 예를 들어, X 방향으로 +/- 1/2 픽셀보다 작고 Y 방향으로 +/- 1/2 픽셀보다 작은 전역 시프트 추정치는 프레임 등록이 성공하였다는 표시로 고려될 수 있다; 어느 한 쪽 방향으로 더 큰 전역 시프트 추정치는 프레임 등록이 실패하였다는 표시로 고려될 수 있다. 프레임 등록이 성공하였다면, 모든 K-1개의 선행 프레임은 최종 전역 시프트 추정치에 따라 시프팅되고, 따라서 서로에 대해 등록된 K개 프레임의 세트는 추가의 프로세싱을 위해 난기류 정정 모듈에 송신된다. K-1개 프레임이 시프트될 때, 그 중 K-2개는 예를 들어, 현재 프레임이 수신되기 전에, 이미 시프트되었을 수 있는 프레임이다. 따라서, 선행 프레임에서의 시프트는 새로운 프레임이 수신됨에 따라 누적될 수 있다. K개 프레임은 또한 프레임 메모리에 저장되고 따라서 다음의 새로운 프레임이 수신될 때, K-1개의 이전에 수신된 프레임을 형성할 프레임의 세트는 이미 서로에 대해 등록될 것이다. 일 실시예에서, 기준 프레임에 입력 프레임을 등록하기 위해 요구되는 시프트를 결정하기 위해 휘도 프레임만이 사용된다(즉, 이 목적을 위해서는 색차 프레임이 사용되지 않는다). 일단 결정되면, 최종 휘도 프레임에 등록하기 위해 K-1개의 이전에 수신된 휘도 프레임을 시프트하도록 시프트가 적용되고, 최종 색차 프레임에 등록하기 위해 K-1개의 이전에 수신된 색차 프레임을 시프트하기 위해 동일한 시프트가 적용된다.
일부 환경 하에서, 예를 들어 터릿(115)이 비디오 카메라(110)를 급격하게 팬(pan)시키게 한다면, 프레임 등록이 실패할 수 있다. 이 경우에, 이전의 프레임이 제거되거나 쓸모없는 것으로 표기되고, 다른 프레임이 수신될 때 프로세스가 다시 시작한다. 아래의 표 1은 K = 6에 대해, 10개 프레임의 시퀀스의 수신에 대응하는 예를 도시한다. 본 예에서, 프레임 등록은 프레임(N+2)의 수신시에 실패하고, 따라서 이 단계에서 프레임 등록 모듈로부터 하나의 프레임만이 출력된다. 프레임(N+3)의 수신시에, 다음 단계에서 성공하거나 "통과(pass)"하고, 따라서 이 단계에서 프레임 등록 모듈로부터 2개의 프레임이 출력되고, 그 후에 프레임(N+4)에서 다시 실패하여, 이 단계에서 프레임 등록 모듈로부터 단 하나의 프레임이 출력된다. 그 후에 최대 6개의 프레임이 다시 프로세싱될 때까지, 시퀀스의 나머지 단계의 각각에 대해 성공하고, 각 단계에서 프레임 등록 모듈로부터 많은 수의 프레임이 출력된다.
표 1
Figure 112017060580797-pct00017
상기에 언급된 바와 같이, 이전의 K개 프레임 동안 프레임 등록이 실패하지 않았다면, K개 프레임의 세트가 난기류 정정 모듈에 송신된다. 다시 도 2를 참조하면, 비디오 프로세싱 모듈(130)의 모듈은 다수의 FPGA에 걸쳐 분포될 수 있다; 예를 들어, 난기류 정정 모듈은 도 2의 FPGA 1과 같은 제 2 FPGA에서 구현될 수 있다. 그와 같은 시스템에서 예를 들어, FPGA의 각각에 구현되는 예를 들어, 통신 인터페이스(도 2에서의 "SERIAL")를 사용하여 FPGA 사이에 데이터가 전송될 수 있다. 선입선출(first-in-first-out) 데이터 구조("FIFO")는 예를 들어, 프로세싱이 시작할 때까지 수신된 데이터를 버퍼링하기 위해 인터페이스로 사용될 수 있다.
일 실시예에서 난기류 정정 모듈은 시간-반전 확산 방정식(time-reversed diffusion equation) 및 라플라스 필터(Laplace filter)를 포함하는 소볼레프-라플라스 편미분 방정식(Sobolev-Laplace partial differential equation)의 수치 해법(numerical solution)을 구현한다. 해법은 주파수 도메인(domain)에서 수치적으로 발생된다. 프레임 등록 모듈로부터 수신된 K개 프레임의 각각은 K개 퓨리에 변환 프레임 중 하나를 형성하기 위해 퓨리에 변환에 의해(예를 들어, 고속 퓨리에 변환 또는 "FFT"에 의해) 공간 주파수 도메인으로 변환된다. 반복적 해법 모듈(210)은 그 후에 K개 퓨리에 변환 프레임을 반복적으로 조정하고, 각 반복은 편미분 방정식의 해법에 더 양호한 근사화를 생성한다.
공간 주파수 도메인 프로세싱은 다음의 방정식에 따라 진행하고, 여기서 k는 프레임 인덱스(frame index)이고, n은 반복 인덱스(iteration index)이다:
Figure 112017060580797-pct00018
이 방정식은 소볼레프-라플라스 편미분 방정식을 근사화한다. 수량
Figure 112017060580797-pct00019
는 반복 해법의 n번째 반복에서의 k번째 퓨리에 변환 프레임이다. 방정식 (1)은 우변에서, 확산 방정식에 대응하는 제 1 항(first term) 및 라플라스 필터에 대응하는 제 2 항을 가진다. 비
Figure 112017060580797-pct00020
는 (1은 D와 동일한 크기의 단위 행렬인) 행렬의 요소별 비를 표시하고, 행렬
Figure 112017060580797-pct00021
이 정의된다.
Figure 112017060580797-pct00022
여기서 p는 1보다 크도록 선택될 때, 중간 공간 주파수의 크기(magnitude)를 증가시키는 파라미터이다. p의 값은 1.1 내지 2.0 사이에 있을 수 있고, 일 실시예에서 이것은 1.3이다. 다른 실시예에서 p의 값은 1보다 작을 수 있는데, 예를 들어 0.5 내지 0.9 사이에 있을 수 있다. 다른 실시예에서 p의 값은 0.5 내지 2.0 사이에 있을 수 있다.
Figure 112017060580797-pct00023
는 행렬
Figure 112017060580797-pct00024
Figure 112017060580797-pct00025
의 요소별 곱이다. 수량
Figure 112017060580797-pct00026
는 다음과 같이 정의된다:
Figure 112017060580797-pct00027
여기서 α는 난기류 정정 모듈에 의해 수행되는 이미지 선명화의 양을 변경하도록 조정될 수 있다; 일 실시예에서 α는 약 5이다.
방정식 (1)은 다음과 같이 재기록될 수 있다:
Figure 112017060580797-pct00028
여기서 이전의 반복에서의 퓨리에 변환 프레임의 함수로서 (n+1)번째 반복에서의 k번째 퓨리에 변환 프레임을 제공한다.
이하의 리스팅(listing) 1은 공간 주파수 도메인에서 난기류 정정 모듈의 동작에 대응하는 Matlab™ 코드를 도시한다.
리스팅 1
Figure 112017060580797-pct00029
Figure 112017060580797-pct00030
리스팅 1에서, 라인 8은 방정식 (3)을 구현하고, 라인 9는 방정식 (4)를 구현한다. 수정된 표현은 (k-1)번째 또는 (k+1)번째 프레임이 이용가능하지 않은 제 1 및 K번째 프레임에 대해 (라인 3 및 5, 및 라인 12 및 13에서) 사용된다. 수량
Figure 112017060580797-pct00031
는 방정식 (3)의 제 1 항의 분자(numerator)이다; 수량
Figure 112017060580797-pct00032
는 리스팅 1의 라인 15-17에서, 각 반복의 종료시에 업데이트된다. 리스팅 1의 수량
Figure 112017060580797-pct00033
Figure 112017060580797-pct00034
이다; 파라미터 λ는 반복 해법의 컨버전스(convergence)의 레이트(rate)에 영향을 미치지만, 너무 크게 선택될 때 오버슈트(overshoot)를 야기할 것이다. 일 실시예에서 λ는 약 5이다. 수량 μ(리스팅 1에서의 mu)는 공간 도메인 정정 및 시간 도메인 정정이 난기류 정정 모듈에 의해 적용되는 조정에 기여하는 상대적인 정도 사이의 균형에 영향을 미친다; 일 실시예에서, μ = 1이다. 일 실시예에서, 반복의 수(예를 들어, 리스팅 1의 라인 1 상의 maxIter)는 비디오 프로세싱 모듈(130)이 비디오의 연속하는 프레임 사이의 시간 간격에서(예를 들어, 30 Hz 비디오에 대해 1/30번째 초(second)에서) 난기류 정정 프로세스를 완성하게 허용하는 값, 예를 들어 6으로 설정된다.
일단 수용가능한 해법이 공간 주파수 도메인에서 발생되었다면, 최종 K개 프레임이 함께 평균화되고 강화된 프레임을 형성하면서, 평균 프레임을 이미지 도메인으로 되돌려 변환하기 위해 역 FFT(IFFT)가 사용된다. 입력 프레임이 휘도 프레임이라면, 출력 프레임은 강화된 휘도 프레임이다.
난기류 정정 모듈은 도 4 및 5에 도시된 바와 같은 FPGA에서 구현될 수 있다. 도 4를 참조하면, 일 실시예에서, 퓨리에 변환 프레임은 각각의 메모리 포트(415, 425)를 통해, 2개의 더블 데이터 레이트 동기화 동적 랜덤-액세스메모리(double data rate synchronous dynamic random-access memory)(예를 들어, DDR2 메모리)(410, 420)에 교대로 공급된다. 예를 들어, K = 6이라면(즉, 6개 프레임이 난기류 정정 모듈의 각 출력에 기여한다면), 퓨리에 변환 프레임(1, 3 및 5)은 제 1 DDR2 메모리(410)에 있을 수 있고 퓨리에 변환 프레임(2, 4 및 6)은 제 2 DDR2 메모리(420)에 있을 수 있다. 멀티플렉서(430)는 한번에 2개 또는 3개의 프레임을 수학 엔진(440)에 전송하고, 수학 엔진(440)은 리스팅 1의 계산에 대응하는 연산을 실행한다. 2개의 프레임은 예를 들어, "종료 프레임(end frame)"(제 1 또는 K번째 퓨리에 변환 프레임)에 대해 업데이트된 값을 계산할 때 전송되고, 3개의 퓨리에 변환 프레임은 다른("중간(intermediate)") 퓨리에 변환 프레임 중 임의의 프레임에 대한 업데이트 값을 계산할 때 전송된다. 수학 엔진(440)은 입력으로서 파라미터 알파(alpha), 람다(lambda) 및 뮤(mu)를 취하고, 각 퓨리에 변환 프레임에 대한 수량 NormGrad의 초기값(도 4에서 NormGrad0으로 리스팅 1에서 grad0으로 지칭됨)을 취한다. IFFT를 행하기 전에 퓨리에 변환 프레임의 전부를 평균화하기 위해, 수학 엔진은 제 1 합계를 형성하기 위해 제 1 DDR2 메모리(410)에서의 퓨리에 변환 프레임을 합산하고, 제 2 합계를 형성하기 위해 제 2 DDR2 메모리(420)에서의 퓨리에 변환 프레임을 합산하고, 그 후에 제 1 합계 및 제 2 합계를 합산하고 퓨리에 변환 프레임의 수만큼(예를 들어, 6) 나눈다.
도 5를 참조하면, 수학 엔진은 연산, 루프 및 프레임 카운터(counter),
Figure 112017060580797-pct00035
의 값을 발생시키기 위한 D 발생기, 및 수학 연산을 수행하기 위한 산술 모듈의 조합을 제어하기 위한 반복 루프(iterative loop: IL) 상태 머신(state machine)을 포함할 수 있다. 예를 들어 제 1 산술 블록(510)은 각 중간 프레임 및 각 반복에 대해 다음의 값을 계산하기 위한 곱셈기(multiplier) ("X"), 가산기("+") 및 나눗셈기("/")를 포함할 수 있다:
Figure 112017060580797-pct00036
이것은 리스팅 1의 라인 9의 방정식의 분자(또는 동등하게, 방정식 (4)의 우변의 제 2 인자(factor))이다. 제 2 산술 블록(520)은 (1/(1+2mu)로 곱함으로써) 업데이트된 퓨리에 변환 프레임을 형성할 수 있고, 도시된 바와 같이 산술 블록 및 누산기의 조합으로 chi(즉,
Figure 112017060580797-pct00037
)의 새로운 값을 계산할 수 있다. 종료 프레임에 대해, 수학 엔진의 제어 논리는 3개 대신에 2개의 퓨리에 변환 프레임만을 사용할 수 있고, 그리고 경우에 따라, 예를 들어 리스팅 1의 라인 5 및 13에서, 제 1 산술 블록(510)의 출력이 곱해지는 인자가 1/(1+2*mu) 대신에 1/(1+mu)일 수 있다. D 발생기는 방정식 (2)에 정의된 바와 같은
Figure 112017060580797-pct00038
의 값을 발생시키기 위한 모듈이다. 일 실시예에서, D 발생기는 사인(sine)을 계산하기 위해 상용 패키지(commercial package)를 사용한다. 수학 엔진의 계산은 고정 포인트 계산으로서 수행될 수 있다.
일 실시예에서, 색차 프레임의 프로세싱은 도 6에 도시된 블록도에 따라 진행할 수 있다. 비디오 카메라(110)로부터 수신되는 프레임은 풀 해상도 휘도 프레임 및 4:2:0의 색차 서브샘플링 비로 서브샘플링된 색차 프레임 둘 다를 포함할 수 있다. 각 색차 프레임은 일 실시예에서, 프레임 등록 모듈에 의해 발생되는 시프트 추정치에 따라 프레임을 시프트하기 위해 사용되는 보간 프로세스 동안 풀 해상도(4:4:4 서브샘플링)로 업샘플링된다. 따라서, 시프팅의 결과는 K개의 풀 해상도 색차 프레임의 세트이고, 이 색차 프레임의 세트는 서로에 대해 그리고 휘도 프레임에 대해 등록되도록 시프트된다. 이들 색차 프레임은 풀 해상도로 하나의 평균 색차 프레임을 형성하면서 함께 평균화되고, 그 후에 4:2:0의 색차 서브샘플링 비로 서브샘플링되고, (난기류 정정 모듈에서, 예를 들어, 2개의 프레임만큼 지연될 수 있는) 휘도 프레임과의 동기화를 위해 지연되고, 강화된 휘도 프레임과 재조합된다.
휘도 프레임 프로세싱이 휘도 프레임의 이득 및 오프셋에 영향을 미칠 수 있기 때문에, "컬러 충실도 출력 조정(Color Fidelity Output Adjustment)" 모듈(도 2에서 "출력 프로세싱(Output Processing)"으로 라벨링됨)은 또한 입력 휘도 프레임의 중앙 값 및 범위(즉, 최대 값 마이너스 최소 값)를 측정할 수 있고, 강화된 휘도 프레임을 스케일 인자로 곱하고 색차 프레임을 휘도 프레임과 조합하기 전에, 강화된 휘도 프레임의 중앙 값 및 범위가 입력 휘도 프레임에서와 동일하도록 오프셋을 더한다. 결과로서 조합된 색차 및 휘도 프레임은 그 후에 운영자에게 디스플레이되도록 디스플레이에 공급될 수 있다.
용어 "제 1", "제 2", "제 3" 등은 본원에서 다양한 엘리먼트, 컴포넌트(component), 구역(region), 층 및/또는 섹션(section)을 설명하기 위해 사용될 수 있더라도, 이들 엘리먼트, 컴포넌트, 구역, 층 및/또는 섹션은 이들 용어에 의해 제한되지 않아야 함이 이해될 것이다. 이들 용어는 일 엘리먼트, 컴포넌트, 구역, 층 또는 섹션을 다른 엘리먼트, 컴포넌트, 구역, 층 또는 섹션으로부터 구별하기 위해서만 사용된다. 따라서, 이하에 논의되는 제 1 엘리먼트, 컴포넌트, 구역, 층 또는 섹션은 발명 개념의 정신 및 범위로부터 이탈하지 않고서, 제 2 엘리먼트, 컴포넌트, 구역, 층 또는 섹션이라 칭해질 수 있다.
본원에 사용되는 용어는 단지 특정 실시예를 설명하기 위한 것이고 발명의 개념을 제한하려는 것이 아니다. 본원에 사용된 바와 같이, 용어 "실질적으로(substantially)", "약(about)" 및 유사 용어는 근사화의 용어로서 사용되고 정도의 용어로서 사용되는 것이 아니고, 당업자에 의해 인식되는 측정 또는 계산 값에서의 고유 편차(inherent deviation)에 대해 설명하려는 것이다. 본원에 사용된 바와 같이, 용어 "주된 컴포넌트(major component)"는 조성의 중량으로 적어도 절반을 구성하는 컴포넌트를 의미하고, 용어 "주된 부분(major portion)"은 복수의 항목에 적용될 때, 그 항목의 적어도 절반을 의미한다.
본원에 사용된 바와 같이, 단수 형태 "a", "an" 및 "the"는 문맥이 명확하게 달리 표시하지 않는 한 또한 복수의 형태를 포함하는 것이다. 본 명세서에서 사용될 때, 용어 "~을 포함하다(comprise)" 및/또는 "~을 포함하는(comprising)"은 서술된 특징, 정수(integer), 단계(step), 동작(operation), 엘리먼트 및/또는 컴포넌트의 존재를 특정하지만, 하나 또는 그 이상의 다른 특징, 정수, 단계, 동작, 엘리먼트, 컴포넌트 및/또는 그 그룹의 존재 또는 추가를 배제하지 않음이 더 이해될 것이다. 본원에 사용된 바와 같이, 용어 "및/또는(and/or)"은 관련된 정렬 항목(listed item) 중 하나 또는 그 이상의 임의의 그리고 모든 조합을 포함한다. "~중 적어도 하나(at least one of)"와 같은 표현은 엘리먼트의 목록을 선행할 때, 엘리먼트의 전체 목록을 수정하고 목록의 개개의 엘리먼트를 수정하지 않는다. 또한, 발명 개념의 실시예를 설명할 때 "~할 수 있는(may)"의 사용은 "본 발명의 하나 또는 그 이상의 실시예(one or more embodiment of the present invention)"를 지칭한다. 또한, 용어 "예시적인(exemplary)"은 일 예(example) 또는 예시(illustration)를 지칭하는 것이다. 본원에 사용된 바와 같이, 용어 "~을 사용하다(use)", "~을 사용하는(using)" 및 "사용된(used)"은 "~을 활용하다(utilize), "~을 활용하는(utilizing)" 및 "활용된(utilized)" 각각과 유사어인 것으로 고려될 수 있다.
본원에 인용된 임의의 수치적 범위는 인용 범위 내에 부분합산된(subsumed) 동일한 수치적 정밀도(numerical precision)의 모든 부분-범위(sub-range)를 포함하는 것이다. 예를 들어, "1.0 내지 10.0"의 범위는 1.0의 인용된 최소 값 및 10.0의 인용된 최대 값 사이의(및 포함하는) 모든 부분범위를 포함하는데, 즉 예를 들어, 2.4 내지 7.6과 같이 1.0과 같거나 더 큰 최소 값과 10.0과 같거나 더 작은 최대 값을 가지는 것이다. 본원에 인용된 임의의 최대 수치적 제한은 그 내에 부분합산되는 모든 낮은 수치적 제한을 포함하는 것이고 본 명세서에 인용되는 임의의 수치적 제한은 그 내에 부분합산되는 모든 높은 수치적 제한을 포함하는 것이다.
풀 모션 컬러 비디오 대기 난류 정정 프로세싱을 위한 방법의 제한된 실시예가 본원에 구체적으로 설명되고 예시되었더라도, 많은 수정 및 변형이 당업자에게 명백할 것이다. 따라서, 본 발명의 원리에 따라 사용되는 풀 모션 컬러 비디오 대기 난류 정정 프로세싱을 위한 방법이 본원에 구체적으로 설명된 바와 다르게 구체화될 수 있음이 이해될 것이다. 본 발명은 또한 후속하는 청구범위 및 그 등가물에 정의된다.

Claims (18)

  1. 비디오(video)를 프로세싱하기 위한 시스템으로서,
    비디오 카메라;
    프로세싱 유닛; 및
    비디오 디스플레이를 포함하고,
    상기 비디오 카메라는, 최종 프레임(last frame) 및 복수의 선행 프레임(preceding frame)을 포함하는 복수의 연속하는 휘도 프레임을 발생시키고, 최종 색차 프레임(last chrominance frame) 및 복수의 선행 색차 프레임(preceding chrominance frame)을 포함하는 복수의 연속하는 색차 프레임을 발생시키도록 구성되고,
    상기 프로세싱 유닛은:
    복수의 시프트된 프레임(shifted frame)을 형성하기 위해 상기 선행 프레임을 상기 최종 프레임에 등록하도록 상기 복수의 선행 프레임을 시프트하고,
    대응하는 복수의 초기 퓨리에 변환(Fourier transform) 프레임을 형성하기 위해, 상기 복수의 프레임 각각의 퓨리에 변환을 행하며,
    복수의 반복(iteration) 중 (n+1)번째 반복에서, 각각의 퓨리에 변환 프레임을 n번째 반복의 퓨리에 변환 프레임의 선형 조합(linear combination)으로 교체함으로써 상기 복수의 퓨리에 변환 프레임을 반복적으로 업데이트하되, 0번째 반복의 퓨리에 변환 프레임이 상기 초기의 퓨리에 변환 프레임이고,
    강화된 휘도 프레임(enhanced luminance frame)을 형성하기 위해 최종 반복의 상기 퓨리에 변환 프레임의 평균의 역 퓨리에 변환을 행하도록 구성되고,
    상기 비디오 디스플레이는 상기 강화된 휘도 프레임을 디스플레이하도록 구성되며,
    상기 프로세싱 유닛은:
    상기 최종 색차 프레임 및 상기 선행 색차 프레임의 각각을 업샘플링(upsample)하고;
    상기 선행 색차 프레임을 시프트하며;
    평균 색차 프레임(average chrominance frame)을 형성하기 위해 상기 최종 색차 프레임 및 상기 선행 색차 프레임을 평균화하고;
    서브샘플링된(subsampled) 색차 프레임을 형성하기 위해 상기 평균 색차 프레임을 서브샘플링(subsample)하고;
    상기 서브샘플링된 색차 프레임을 지연시키며;
    상기 지연된 서브샘플링 색차 프레임을 상기 강화된 휘도 프레임과 조합하도록 더 구성되고,
    상기 비디오 디스플레이는 상기 강화된 휘도 프레임과 함께 상기 지연된 서브샘플링 색차 프레임을 디스플레이하도록 더 구성되는, 비디오를 프로세싱하기 위한 시스템.
  2. 청구항 1에 있어서,
    상기 복수의 퓨리에 변환 프레임의 반복적 업데이팅은 (n+1)번째 반복에서, 상기 복수의 퓨리에 변환 프레임의 k번째 퓨리에 변환 프레임을
    Figure 112017060580797-pct00039
    로 교체하는 것을 포함하고,
    여기서:
    Figure 112017060580797-pct00040
    Figure 112017060580797-pct00041
    은 n번째 반복의 (k-1)번째, k번째 및 (k+1)번째 퓨리에 변환 프레임이고,
    Figure 112017060580797-pct00042
    는 요소별 비(element-wise ratio)이고:
    1은 단위 행렬(identity matrix)이고,
    Figure 112017060580797-pct00043
    Figure 112017060580797-pct00044
    , p는 스칼라이고, p > 1.1이고 p < 2.0이고,
    λ는 스칼라이고,
    μ는 스칼라이고, 및
    Figure 112017060580797-pct00045
    는 스칼라인,
    비디오를 프로세싱하기 위한 시스템.
  3. 청구항 2에 있어서,
    λ > 2이고 λ < 10인 것인,
    비디오를 프로세싱하기 위한 시스템.
  4. 청구항 2에 있어서,
    μ > 0.5이고 μ < 2인 것인,
    비디오를 프로세싱하기 위한 시스템.
  5. 청구항 2에 있어서,
    Figure 112017060580797-pct00046
    이고,
    여기서 α는 스칼라인 것인,
    비디오를 프로세싱하기 위한 시스템.
  6. 청구항 5에 있어서,
    α > 2이고 α < 10인 것인,
    비디오를 프로세싱하기 위한 시스템.
  7. 삭제
  8. 청구항 1에 있어서,
    상기 최종 색차 프레임 및 상기 선행 색차 프레임의 각각의 상기 업샘플링은 4:4:4의 서브샘플링 비(subsampling ratio)로의 업샘플링을 포함하는 것인,
    비디오를 프로세싱하기 위한 시스템.
  9. 청구항 1에 있어서,
    상기 평균 색차 프레임의 상기 서브샘플링은 4:2:0의 서브샘플링 비로의 서브샘플링을 포함하는 것인,
    비디오를 프로세싱하기 위한 시스템.
  10. 청구항 1에 있어서,
    상기 프로세싱 유닛은:
    제 1 메모리;
    제 2 메모리;
    멀티플렉서; 및
    수학 엔진(math engine)을 포함하고,
    여기서:
    상기 제 1 메모리는 상기 최종 프레임 및 상기 복수의 선행 프레임의 제 1 서브세트(subset)를 저장하도록 구성되고,
    상기 제 2 메모리는 상기 최종 프레임 및 상기 복수의 선행 프레임의 제 2 서브세트를 저장하도록 구성되고, 및
    상기 멀티플렉서는 상기 수학 엔진에 상기 최종 프레임 및 상기 복수의 선행 프레임 중 한번에 2개 또는 3개의 프레임을 공급하도록 구성되는 것인,
    비디오를 프로세싱하기 위한 시스템.
  11. 청구항 1에 있어서,
    상기 복수의 선행 프레임의 시프팅은:
    필터링된(filtered) 프레임을 형성하기 위해 잡음 필터(noise filter)로 상기 복수의 선행 프레임 중 제 1 선행 프레임을 프로세싱하는 것;
    X-도함수(X-derivative) 프레임을 형성하기 위해 수평 미분 필터(horizontal differentiating filter)로 상기 필터링된 프레임을 프로세싱하는 것;
    Y-도함수(Y-derivative) 프레임을 형성하기 위해 수직 미분 필터(vertical differentiating filter)로 상기 필터링된 프레임을 프로세싱하는 것;
    상기 X-도함수 프레임 및 상기 Y-도함수 프레임으로부터 에지 강도(edge strength)의 2x2 행렬을 형성하는 것;
    차이 프레임을 형성하기 위해 상기 제 1 선행 프레임으로부터 상기 최종 프레임을 빼는 것;
    상기 차이 프레임, 상기 X-도함수 프레임 및 상기 Y-도함수 프레임으로부터 2-요소 그라디언트 벡터(gradient vector)를 형성하는 단계; 및
    상기 그라디언트 벡터 및 상기 에지 강도의 행렬로부터 시프트 추정치(shift estimate)를 형성하는 것을 포함하는 것인,
    비디오를 프로세싱하기 위한 시스템.
  12. 청구항 11에 있어서,
    상기 수평 미분 필터는 수평 소벨 필터(horizontal Sobel filter)이고; 및
    상기 수직 미분 필터는 수직 소벨 필터인 것인,
    비디오를 프로세싱하기 위한 시스템.
  13. 청구항 11에 있어서,
    에지 강도의 2x2 행렬은
    Figure 112017060580797-pct00047
    Figure 112017060580797-pct00048
    이고, 여기서
    gx는 상기 X-도함수 프레임이고,
    gy는 상기 Y-도함수 프레임이고,
    gx*gy는 요소별 곱(element-wise product)을 표시하고,
    세미콜론(semicolon)은 에지 강도의 상기 행렬의 제 1 및 제 2 행 사이의 구분자(delimiter)이고, 및
    각 합계는 상기 합계의 인수(argument)의 모든 요소에 대한 것인,
    비디오를 프로세싱하기 위한 시스템.
  14. 청구항 11에 있어서,
    상기 그라디언트 벡터는
    Figure 112017060580797-pct00049
    이고, 여기서
    Diff는 상기 차이 프레임이고,
    gx는 상기 X-도함수 프레임이고,
    gy는 상기 Y-도함수 프레임이고,
    각 합계는 상기 합계의 인수의 모든 요소에 대한 것인,
    비디오를 프로세싱하기 위한 시스템.
  15. 비디오를 프로세싱하기 위한 방법으로서,
    비디오 카메라에 의해,
    최종 휘도 프레임(last luminance frame) 및 복수의 선행 휘도 프레임(preceding luminance frame)을 포함하는 복수의 연속하는 휘도 프레임, 및
    최종 색차 프레임(last chrominance frame) 및 복수의 선행 색차 프레임(preceding chrominance frame)을 포함하는 복수의 연속하는 색차 프레임을 발생시키는 단계,
    상기 최종 휘도 프레임으로, 복수의 등록된 휘도 프레임(registered luminance frame)을 형성하기 위해 상기 선행 휘도 프레임의 최종 선행 휘도 프레임을 상기 최종 휘도 프레임에 등록하는 추정된 시프트(estimated shift)만큼 상기 선행 휘도 프레임을 시프팅하는 단계;
    상기 복수의 연속하는 색차 프레임의 각각을 업샘플링(upsampling)하는 단계;
    상기 최종 색차 프레임으로, 복수의 등록된 색차 프레임을 형성하기 위해 상기 추정된 시프트만큼 상기 선행 색차 프레임을 시프팅하는 단계;
    평균 색차 프레임(average chrominance frame)을 형성하기 위해 등록된 색차 프레임을 평균화하는 단계;
    서브샘플링된 평균 색차 프레임(subsampled average chrominance frame)을 형성하기 위해 상기 평균 색차 프레임을 서브샘플링(subsampling)하는 단계;
    강화된 휘도 프레임(enhanced luminance frame)을 형성하기 위해 해상도-강화 모듈(resolution-enhancing module)로 상기 등록된 휘도 프레임을 프로세싱하는 단계;
    휘도 정보 프로세싱 시간(luminance information processing time)과 색차 정보 프로세싱 시간(chrominance information processing time) 사이의 차이에 대응하는 시간 간격 동안 상기 서브샘플링된 평균 색차 프레임을 저장하는 단계;
    조합된 프레임(combined frame)을 형성하기 위해 상기 서브샘플링된 평균 색차 프레임을 상기 강화된 휘도 프레임과 조합하는 단계, 및
    디스플레이에 의해, 상기 조합된 프레임을 디스플레이하는 단계를 포함하는,
    비디오를 프로세싱하기 위한 방법.
  16. 청구항 15에 있어서,
    상기 복수의 연속하는 색차 프레임의 각각의 상기 업샘플링은 4:4:4의 서브샘플링 비(subsampling ratio)로의 업샘플링을 포함하는 것인,
    비디오를 프로세싱하기 위한 방법.
  17. 청구항 15에 있어서,
    상기 평균 색차 프레임의 상기 서브샘플링은 4:2:0의 서브샘플링 비로의 서브샘플링을 포함하는 것인,
    비디오를 프로세싱하기 위한 방법.
  18. 청구항 15에 있어서,
    상기 서브샘플링된 평균 색차 프레임을 상기 강화된 휘도 프레임과 조합하는 단계는:
    상기 강화된 휘도 프레임을 스케일 인자(scale factor)만큼 곱하는 단계; 및
    조정된 강화 휘도 프레임(adjusted enhanced luminance frame)을 형성하기 위해, 상기 강화된 휘도 프레임에 오프셋을 더하는 단계를 포함하고,
    상기 스케일 인자 및 상기 조정된 강화 휘도 프레임은 상기 조정된 강화 휘도 프레임의 중앙 값(median value) 및 범위가 상기 비디오 카메라에 의해 발생된 휘도 프레임의 중앙 값 및 범위와 실질적으로 동일하도록 선택되는 것인,
    비디오를 프로세싱하기 위한 방법.
KR1020177017455A 2015-04-27 2015-04-27 풀 모션 컬러 비디오 대기 난류 정정 프로세싱 KR101929869B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/027847 WO2016175751A1 (en) 2015-04-27 2015-04-27 Full motion color video atmospheric turbulence correction processing

Publications (2)

Publication Number Publication Date
KR20170087506A KR20170087506A (ko) 2017-07-28
KR101929869B1 true KR101929869B1 (ko) 2018-12-17

Family

ID=54540156

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177017455A KR101929869B1 (ko) 2015-04-27 2015-04-27 풀 모션 컬러 비디오 대기 난류 정정 프로세싱

Country Status (5)

Country Link
US (1) US10719924B2 (ko)
JP (1) JP6462152B2 (ko)
KR (1) KR101929869B1 (ko)
CA (1) CA2970334C (ko)
WO (1) WO2016175751A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10521883B1 (en) 2018-07-26 2019-12-31 Raytheon Company Image turbulence correction using tile approach
CN109167979B (zh) * 2018-10-30 2020-09-11 深兰科技(上海)有限公司 多路监控视频人工智能分析的处理方法及系统
AU2019201467A1 (en) * 2019-03-04 2020-09-24 Canon Kabushiki Kaisha System and method of reducing effects of turbulence in an image
JP7263149B2 (ja) * 2019-06-26 2023-04-24 キヤノン株式会社 画像処理装置、画像処理方法、およびプログラム
US11195286B2 (en) * 2019-08-12 2021-12-07 The Boeing Company Image-based target tracking
US11640655B2 (en) 2021-04-14 2023-05-02 Raytheon Company Systems and methods for image turbulence correction of moving targets
CN115016035B (zh) * 2022-05-31 2023-12-22 中国科学院光电技术研究所 一种基于波前探测的实时大气湍流分层强度测量方法
CN115358953B (zh) * 2022-10-21 2023-01-31 长沙超创电子科技有限公司 一种基于图像配准和动态目标融合的去湍流方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014069103A1 (ja) 2012-10-29 2014-05-08 株式会社日立国際電気 画像処理装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567564B1 (en) * 1996-04-17 2003-05-20 Sarnoff Corporation Pipelined pyramid processor for image processing systems
JP4625705B2 (ja) * 2005-02-24 2011-02-02 Okiセミコンダクタ株式会社 映像信号処理装置
US20070280507A1 (en) 2006-06-01 2007-12-06 Beddhu Murali Apparatus and Upwind Methods for Optical Flow Velocity Estimation
US20080063064A1 (en) 2006-09-13 2008-03-13 Macinnis Alexander Method and System for Motion Compensated Temporal Filtering Using IIR Filtering
US8599439B2 (en) 2007-12-21 2013-12-03 Csr Imaging Us, Lp Laser color copy image processing independent of classifications
JP2009159089A (ja) * 2007-12-25 2009-07-16 Sharp Corp 画像処理装置、画像処理方法、画像形成装置、画像読取装置、コンピュータプログラム及び記録媒体
US8184705B2 (en) * 2008-06-25 2012-05-22 Aptina Imaging Corporation Method and apparatus for motion compensated filtering of video signals
WO2010048325A2 (en) * 2008-10-21 2010-04-29 University Of Southern California Exact and approximate rebinning of time-of-flight pet positron emission tomography data
TWI423666B (zh) 2008-12-31 2014-01-11 Altek Corp Image elimination method for image sequence
US8638395B2 (en) 2009-06-05 2014-01-28 Cisco Technology, Inc. Consolidating prior temporally-matched frames in 3D-based video denoising
US20130266241A1 (en) * 2011-12-19 2013-10-10 Eliseo Ranalli Computational imaging using variable optical transfer function
EP2680567A1 (en) 2012-06-25 2014-01-01 Axis AB Video noise reduction

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014069103A1 (ja) 2012-10-29 2014-05-08 株式会社日立国際電気 画像処理装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Alexander Glantz ET AL:"Global motion temporal filtering for in-loop deblocking", Image Processing (ICIP), 2010 17th IEEE International Conference on, 26-29 Sept. 2010(2010.09.26.)
Andrea L. Bertozzi ET AL:"Video stabilization of atmospheric turbulence distortion", INVERSE PROBLEMS AND IMAGING, vol. 7, no. 3, pages 839-861, 1 Sept. 2013(2013.09.01.)
Collins Robert:"Back to Lucas-Kanade", 1 Jan. 2006(2006.01.01.), [online], 인터넷:<URL:http://www.cse.psu.edu/~rtc12/CSE598G/LKintroContinued.pdf>

Also Published As

Publication number Publication date
CA2970334C (en) 2021-11-16
KR20170087506A (ko) 2017-07-28
WO2016175751A1 (en) 2016-11-03
JP6462152B2 (ja) 2019-01-30
US10719924B2 (en) 2020-07-21
US20180130191A1 (en) 2018-05-10
CA2970334A1 (en) 2016-11-03
JP2018513644A (ja) 2018-05-24

Similar Documents

Publication Publication Date Title
KR101929869B1 (ko) 풀 모션 컬러 비디오 대기 난류 정정 프로세싱
KR100445619B1 (ko) 2차원 영상을 3차원 영상으로 변환하는 장치 및 방법
Farsiu et al. Video-to-video dynamic super-resolution for grayscale and color sequences
CA2745380C (en) Devices and methods for processing images using scale space
US20170064204A1 (en) Systems and methods for burst image delurring
US20170024856A1 (en) Image processing apparatus, image processing method, and recording medium storing image processing program
CN106991650B (zh) 一种图像去模糊的方法和装置
JP6998388B2 (ja) 画像特性マップを処理するための方法及び装置
US20130301949A1 (en) Image enhancement apparatus and method
CN106204513A (zh) 图像处理的方法、装置和系统
GB2280812A (en) Deblurring image data using motion vector dependent deconvolution
AU2019311751B2 (en) Image turbulence correction using tile approach
JP4361991B2 (ja) 画像処理装置
EP3070670B1 (en) Using frequency decomposition for better color consistency in a synthesized region
JP2018106316A (ja) 画像補正処理方法、および、画像補正処理装置
US7149364B2 (en) Mean filter device and filtering method
Awad et al. A real-time FPGA implementation of visible/near infrared fusion based image enhancement
US10264212B1 (en) Low-complexity deinterlacing with motion detection and overlay compensation
US20150339807A1 (en) Video contrast enhancement with sub-segments
KR101775273B1 (ko) 이미지들 사이의 상관관계 획득 방법 및 시스템
Mishra et al. Survey on Different Image Fusion Techniques
US8019172B2 (en) Method and apparatus for increasing the resolution of a data sequence
JP6532148B2 (ja) 超解像装置およびプログラム
Jerković et al. Applications of the generalized {1, 4} inverse in restoration of blurred images
Patanavijit Video enhancement using a robust iterative SRR based on Hampel stochastic estimation

Legal Events

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