KR102017995B1 - 라인 단위 연산을 이용한 초해상화 방법 및 장치 - Google Patents

라인 단위 연산을 이용한 초해상화 방법 및 장치 Download PDF

Info

Publication number
KR102017995B1
KR102017995B1 KR1020180091482A KR20180091482A KR102017995B1 KR 102017995 B1 KR102017995 B1 KR 102017995B1 KR 1020180091482 A KR1020180091482 A KR 1020180091482A KR 20180091482 A KR20180091482 A KR 20180091482A KR 102017995 B1 KR102017995 B1 KR 102017995B1
Authority
KR
South Korea
Prior art keywords
image processing
convolution
feature map
image
processing apparatus
Prior art date
Application number
KR1020180091482A
Other languages
English (en)
Other versions
KR20190087262A (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 한국과학기술원
Priority to US16/961,688 priority Critical patent/US11412175B2/en
Priority to PCT/KR2018/015733 priority patent/WO2019143024A1/ko
Priority to AU2018102147A priority patent/AU2018102147A4/en
Priority to AU2018357828A priority patent/AU2018357828A1/en
Publication of KR20190087262A publication Critical patent/KR20190087262A/ko
Application granted granted Critical
Publication of KR102017995B1 publication Critical patent/KR102017995B1/ko
Priority to AU2019101270A priority patent/AU2019101270A4/en
Priority to AU2019101273A priority patent/AU2019101273A4/en
Priority to AU2019101272A priority patent/AU2019101272A4/en
Priority to AU2019101271A priority patent/AU2019101271A4/en
Priority to AU2019101274A priority patent/AU2019101274A4/en

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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4007Interpolation-based scaling, e.g. bilinear interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4046Scaling the whole image or part thereof using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T3/4053Super resolution, i.e. output image resolution higher than sensor resolution
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/005Adapting incoming signals to the display format of the display terminal
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • G09G5/026Control of mixing and/or overlay of colours in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0271Adjustment of the gradation levels within the range of the gradation scale, e.g. by redistribution or clipping

Abstract

라인 단위 연산을 이용한 이미지 처리 방법 및 장치가 개시된다. 일 실시예에 따른 이미지 처리 장치는, 이미지를 수신하는 수신기와, 상기 이미지를 라인 단위의 이미지 라인으로 출력하는 적어도 하나의 제1 라인 버퍼(line buffer)와, 상기 이미지 라인에 기초하여 컨벌루션 연산을 수행함으로써 특징맵을 생성하는 제1 컨벌루션 연산기와, 상기 특징맵을 적어도 하나의 라인 단위로 저장하고, 상기 적어도 하나의 라인 단위로 저장된 특징맵을 2 차원 형태로 출력하도록 처리하는 특징맵 처리기를 포함한다.

Description

라인 단위 연산을 이용한 초해상화 방법 및 장치{A METHOD AND APPARATUS OF SUPER RESOLUTION USING LINE UNIT OPERATION}
아래 실시예들은 라인 단위 연산을 이용한 이미지 처리 방법 및 장치에 관한 것이다.
UHD(Ultra High Definition) TV, IPTV(Internet Protocol Television) 서비스 및 스마트폰 어플리케이션에서 UHD 비디오가 널리 보급되고 있다. 많은 고급형 TV 및 스마트폰이 4K UHD 비디오를 지원하지만, 레거시 수집 장치(legacy acquisition devices) 및 서비스로 인해 FHD(Full High Definition) 해상도(1920×1080)를 가진 비디오 스트림들이 많이 존재하고 있다.
따라서, 저해상도(low-resolution(LR)) 컨텐츠를 고해상도(high-resolution (HR))로 변환할 수 있는 정교한 업스케일링 기술이 필수적이다. 특히, 2K FHD에서 4K UHD로 변환하는 비디오 업스케일에 있어서 정교한 업스케일링 기술이 더욱 중요하다.
업스케일링 방법은 두가지 유형으로 분류된다. 단일 이미지 업스케일링 방법은 손실된 고주파 디테일을 복구하기 위해 하나의 LR 이미지 내에서 국부적 공간 상관 관계(local spatial correlation)을 활용한다. 반면, 비디오 업스케일링 방법은 성능을 향상시키 위해서 추가 데이터 차원(시간)을 사용하고 계산 비용이 높다.
단일 이미지 업스케일링 알고리즘은 보간(interpolation) 방법과 초해상화(super Resolution(SR)) 방법으로 나눌 수 있다. 보간 방법은 바이리니어(bilinear) 또는 바이큐빅(bicubic) 커널과 같은 간단한 보간 커널을 이용한다.
SR 방법은 이전의 보간 방법보다 우수한 성능을 보였다. 학습 기반 접근 방식의 기본 개념은 LR에서 HR이미지 또는 비디오로의 매핑 함수를 학습하는 것이다. 학습 기반 방법은 두 가지 유형으로 분류할 수 있다.
첫 번째는 LR 이미지 자체의 주변 정보를 사용하여 LR-HR 매핑을 학습(입력 이미지 내부 정보 기반)하는 것이고, 두 번째는 외부 LR-HR 이미지 쌍(외부 훈련 이미지 또는 사전(dictionary) 기반)을 이용하여 학습하는 방식이다.
스파스 코딩(sparse coding), 앵커드 네이버(anchored neighbor) 및 리니어 매핑 커널(linear mapping kernel)와 같은 기계 학습 알고리즘이 SR을 위해 제안되었다.
하지만, 이러한 학습 기반 SR 방법은 대부분은 중간 이미지(intermediate image)를 저장하기 위해 큰 용량의 프레임 버퍼를 필요로 하기 때문에, 저복잡도(low-complexity) 하드웨어(Hardware(HW))에서의 고해상도 이미지 초해상화, 예를 들어, FHD에서 4K UHD로 실시간으로 변환하기 위해 SR 방법을 구현하는데 어려움이 있다.
최근, 심층 신경망(Deep Neural Network(DNN)), 특히 심층 컨벌루션 뉴럴 네트워크(Convolutional Neural Networks(CNNs))가 이미지 분류, 객체 검출 및 분할 등과 같은 다양한 컴퓨터 시각 영역에서 우수한 성능을 보이고 있다.
기계 학습 기반 방법은 핸드 크래프티드(hand-crafted) 설계에서 특징들을 찾아내고 이러한 핸드 크래프티드 특징들을 이용하여 매핑을 학습하지만, 심층 신경망은 최적의 특징들 및 매핑들을 스스로 학습하여 전체 학습을 보다 간단하고 효과적으로 만든다.
정교한 CNN 기반 SR 방법들은 HR 재구성의 시각적 품질을 향상시키기 위하여 제안되었다. 이러한 CNN 구조는 다수의 레이어(layer)들과 비선형 함수들을 포함하고, SR을 수행하고 HR 이미지 또는 높은 품질의 비디오들을 생성하도록 설계된다.
과도한 곱셈들 및 다른 계산들로 인해, 종래의 CNN은 실시간 어플리케이션을 위한 낮은 복잡도의 하드웨어에서 구현되는 것이 어렵다고 알려져 있다. 더욱이, 정교한 CNN 기반 SR 방법에 대한 계산 복잡도 및 실행 시간에 대한 분석은 CPU(Central Processing Unit) 및/또는 GPU(Graphics Processing Unit) 플랫폼의 소프트웨어(Software(SW)) 수준에서 수행되었다. 또한, 이러한 CNN 구조는 SW 및 HW에 구현될 때 중간 특징맵들을 저장하기 위해서 다수의 프레임 버퍼를 사용해야 하므로 실시간으로 구현되는 것이 어렵다.
실시예들은 라인 단위 연산을 이용하여 이미지를 처리하는 기술을 제공할 수 있다.
일 실시예에 따른 이미지 처리 장치는, 이미지를 수신하는 수신기와, 상기 이미지를 라인 단위의 이미지 라인으로 출력하는 적어도 하나의 제1 라인 버퍼(line buffer)와, 상기 이미지 라인에 기초하여 컨벌루션 연산을 수행함으로써 특징맵을 생성하는 제1 컨벌루션 연산기와, 상기 특징맵을 적어도 하나의 라인 단위로 저장하고, 상기 적어도 하나의 라인 단위로 저장된 특징맵을 2 차원 형태로 출력하도록 처리하는 특징맵 처리기를 포함한다.
상기 제1 컨벌루션 연산기는, 잔차 신호를 학습하여 출력하도록 하는 잔차 블록(Residual Block) 내에 구현될 수 있다.
상기 제1 컨벌루션 연산기는, 1-D(1-dimensional) 컨벌루션 연산을 수행하는 적어도 하나의 1-D 컨벌루션 연산기를 포함할 수 있다.
상기 제1 컨벌루션 연산기는, 뎁스 와이즈(depth-wise) 컨벌루션 연산기와, 상기 뎁스 와이즈 컨벌루션 연산기와 직접적으로 연결된 포인트 와이즈(point-wise) 컨벌루션 연산기를 포함할 수 있다.
상기 특징맵 처리기는, 상기 특징맵을 적어도 하나의 라인 단위로 압축하는 컴프레서(compressor)를 포함할 수 있다.
상기 특징맵 처리기는, 라인 단위로 압축된 특징맵을 저장하는 적어도 하나의 제2 라인 버퍼를 더 포함할 수 있다.
상기 특징맵 처리기는, 상기 라인 단위로 압축된 특징맵을 2 차원 특징맵으로 복원하는 디컴프레서(decompressor)를 더 포함할 수 있다.
상기 이미지 처리 장치는, 2차원 형태로 출력된 특징맵에 기초하여 컨벌루션 연산을 수행하는 제2 컨벌루션 연산기를 더 포함할 수 있다.
상기 제2 컨벌루션 연산기는, 2-D(2-dimensional) 컨벌루션 연산을 수행하는 적어도 하나의 2-D 컨벌루션 연산기를 포함할 수 있다.
상기 제2 컨벌루션 연산기는, 뎁스 와이즈(depth-wise) 컨벌루션 연산기; 및
상기 뎁스 와이즈 컨벌루션 연산기와 직접적으로 연결된 포인트 와이즈(point-wise) 컨벌루션 연산기를 포함할 수 있다.
상기 이미지 처리 장치는, 적어도 하나의 컨벌루션 연산 결과를 양자화하는 양자화기를 더 포함할 수 있다.
상기 이미지 처리 장치는, 컨벌루션 연산에 사용되는 파라미터를 저장하는 가중치 버퍼를 더 포함할 수 있다.
일 실시예에 따른 이미지 처리 방법은, 이미지를 수신하는 단계와, 적어도 하나의 제1 라인 버퍼(line buffer)를 통해 상기 이미지를 라인 단위의 이미지 라인으로 출력하는 단계와, 상기 이미지 라인에 기초하여 제1 컨벌루션 연산을 수행함으로써 특징맵을 생성하는 단계와, 상기 특징맵을 적어도 하나의 라인 단위로 저장하고, 상기 적어도 하나의 라인 단위로 저장된 특징맵을 2 차원 형태로 출력하도록 상기 특징맵을 처리하는 단계를 포함한다.
상기 제1 컨벌루션 연산은, 잔차 신호를 학습하여 출력하도록 하는 잔차 블록(Residual Block)내에서 수행될 수 있다.
상기 생성하는 단계는, 적어도 한 번의 1-D(1-dimensional) 컨벌루션 연산을 수행하는 단계를 포함할 수 있다.
상기 생성하는 단계는, 뎁스 와이즈(depth-wise) 컨벌루션 연산을 수행하는 단계와, 상기 뎁스 와이즈 컨벌루션 연산 결과를 직접적으로 포인트 와이즈(point-wise) 컨벌루션 연산하는 단계를 포함할 수 있다.
상기 처리하는 단계는, 상기 특징맵을 적어도 하나의 라인 단위로 압축하는 단계를 포함할 수 있다.
상기 처리하는 단계는, 적어도 하나의 라인 단위로 압축된 특징맵을 저장하는 단계를 더 포함할 수 있다.
상기 처리하는 단계는, 상기 적어도 하나의 라인 단위로 압축된 특징맵을 2 차원 특징맵으로 복원하는 단계를 더 포함할 수 있다.
상기 이미지 처리 방법은, 2차원 형태로 출력된 특징맵에 기초하여 제2 컨벌루션 연산을 수행하는 단계를 더 포함할 수 있다.
상기 수행하는 단계는, 적어도 한 번의 2-D(2-dimensional) 컨벌루션 연산을 수행하는 단계를 포함할 수 있다.
상기 수행하는 단계는, 뎁스 와이즈(depth-wise) 컨벌루션 연산을 수행하는 단계와, 상기 뎁스 와이즈 컨벌루션 연산 결과를 직접적으로 포인트 와이즈(point-wise) 컨벌루션 연산하는 단계를 포함할 수 있다.
상기 이미지 처리 방법은, 적어도 하나의 컨벌루션 연산 결과를 양자화하는 단계를 더 포함할 수 있다.
상기 이미지 처리 방법은, 컨벌루션 연산에 사용되는 파라미터를 저장하는 단계를 더 포함할 수 있다.
도 1은 일 실시예에 따른 이미지 처리 장치의 개략적인 블록도를 나타낸다.
도 2는 도 1에 도시된 컨트롤러의 개략적인 블록도를 나타낸다.
도 3은 도 2에 도시된 제1 컨벌루션 연산기의 개략적인 블록도를 나타낸다.
도 4a는 종래의 뎁스와이즈 세퍼러블 컨벌루션의 예를 나타낸다.
도 4b는 도 2에 도시된 제1 컨벌루션 연산기의 동작의 일 예를 나타낸다.
도 4c는 도 2에 도시된 제1 컨벌루션 연산기의 동작의 다른 예를 나타낸다.
도 5는 도 2에 도시된 특징맵 처리기의 개략적인 블록도를 나타낸다.
도 6a는 도 2에 도시된 특징맵 처리기의 동작의 예를 나타낸다.
도 6b는 도 5에 도시된 컴프레서의 압축 알고리즘의 예를 나타낸다.
도 7은 도 2에 도시된 제2 컨벌루션 연산기의 개략적인 블록도를 나타낸다.
도 8은 도 1에 도시된 이미지 처리 장치의 하드웨어 구조의 예를 나타낸다.
도 9는 도 1에 도시된 이미지 처리 장치가 이용하는 뉴럴 네트워크 구조의 예를 나타낸다.
도 10은 도 1에 도시된 이미지 처리 장치를 검증하는 프레임 워크의 예를 나타낸다.
도 11a는 도 1에 도시된 이미지 처리 장치의 성능의 일 예를 나타낸다.
도 11b는 도 1에 도시된 이미지 처리 장치의 성능의 다른 예를 나타낸다.
도 11c는 도 1에 도시된 이미지 처리 장치의 성능의 또 다른 예를 나타낸다.
도 12a는 원본 고해상도 이미지의 일 예를 나타낸다.
도 12b는 바이큐빅 방법을 통해 처리된 이미지의 일 예를 나타낸다.
도 12c는 SRCNN 방법을 통해 처리된 이미지의 일 예를 나타낸다.
도 12d는 SRCNN-Ex 방법을 통해 처리된 이미지의 일 예를 나타낸다.
도 12e는 FSRCNN 방법을 통해 처리된 이미지의 일 예를 나타낸다.
도 12f는 FSRCNN-s 방법을 통해 처리된 이미지의 일 예를 나타낸다.
도 12g는 VDSR 방법을 통해 처리된 이미지의 일 예를 나타낸다.
도 12h는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치를 적용하여 처리한 이미지의 일 예를 나타낸다.
도 12i는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치와 활성화를 적용하여 처리한 이미지의 일 예를 나타낸다.
도 12j는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치와 활성화 및 중간 특징맵 압축을 적용하여 처리한 이미지의 일 예를 나타낸다.
도 13a는 원본 고해상도 이미지의 다른 예를 나타낸다.
도 13b는 바이큐빅 방법을 통해 처리된 이미지의 다른 예를 나타낸다.
도 13c는 SRCNN 방법을 통해 처리된 이미지의 다른 예를 나타낸다.
도 13d는 SRCNN-Ex 방법을 통해 처리된 이미지의 다른 예를 나타낸다.
도 13e는 FSRCNN 방법을 통해 처리된 이미지의 다른 예를 나타낸다.
도 13f는 FSRCNN-s 방법을 통해 처리된 이미지의 다른 예를 나타낸다.
도 13g는 VDSR 방법을 통해 처리된 이미지의 다른 예를 나타낸다.
도 13h는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치를 적용하여 처리한 이미지의 다른 예를 나타낸다.
도 13i는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치와 활성화를 적용하여 처리한 이미지의 다른 예를 나타낸다.
도 13j는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치와 활성화 및 중간 특징맵 압축을 적용하여 처리한 이미지의 다른 예를 나타낸다.
도 14는 SR 하드웨어를 FPGA로 구현한 예를 나타낸다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
제1 또는 제2등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해서 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 실시예의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.
다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
도 1은 일 실시예에 따른 이미지 처리 장치의 개략적인 블록도를 나타낸다.
도 1을 참조하면, 이미지 처리 장치(10)는 이미지를 수신하고, 수신한 이미지를 처리할 수 있다. 예를 들어, 이미지 처리 장치(10)는 수신한 이미지를 처리하여 고해상도 이미지를 생성할 수 있다.
이미지 처리 장치(10)는 낮은 사양의 하드웨어에서 효과적으로 이미지를 처리할 수 있다. 이미지 처리 장치(10)는 수신한 이미지에 기초하여 뉴럴 네트워크를 학습시킬 수 있다.
이미지 처리 장치(10)는 학습된 뉴럴 네트워크를 이용하여 이미지의 해상도를 증가시킬 수 있다. 예를 들어, 이미지 처리 장치(10)는 저해상도 이미지에 대하여 초해상화를 수행할 수 있다.
이미지 처리 장치(10)는 하드웨어 친화적인 CNN(Convolutional Neural Network) 기반 SR(Super Resolution) 방법을 제공할 수 있다. 이미지 처리 장치(10)는 FPGA 상에 구현되어 60 fps에서 2K FHD(Full High Definition) 이미지를 4K UHD(Ultra High Definition)으로 변환할 수 있다.
이미지 처리 장치(10)는 제한된 계산 및 메모리 공간을 갖는 하드웨어에서 뉴럴 네트워크를 이용하여 SR을 효과적으로 수행할 수 있다. 이미지 처리 장치(10)는 LR(Low Resolution) 입력을 라인 단위로 처리하고, 컨벌루션 필터의 파라미터 값이 작은 수로 유지할 수 있다. 즉, 이미지 처리 장치(10)는 LR(Low Resolution) 데이터를 라인 단위로 처리함으로써 종래의 CNN에 비하여 필터 파라미터의 수를 현격하게 감소시킬 수 있다.
이미지 처리 장치(10)는 1-D(1-Dimensional) 컨벌루션의 캐스케이드(cascade)를 이용하여 SR 이미지를 처리할 수 있다. 이미지 처리 장치(10)는 수직 수용 필드(vertical receptive field)를 작은 크기로 유지하면서 수평 라인을 따라 큰 수용 필드를 유지함으로써 요구되는 라인 메모리를 절약할 수 있다. 라인 메모리는 라인 버퍼를 포함할 수 있다.
이미지 처리 장치(10)는 잔차 연결(residual connection)과 뎁스 와이즈 세퍼러블 컨벌루션(depth-wise separable convolution)을 결합하여 뉴럴 네트워크의 필터 파라미터의 수가 감소시킬 수 있고, 감소된 연산량을 가지고 우수한 SR 성능을 유지할 수 있다.
이미지 처리 장치(10)는 양자화를 통해 PSNR(Peak Signal to Noise Ratio) 저하가 거의 없이 고정 소수점 데이터로 32 비트 부동 소수점 데이터를 고정 소수점 데이터로 변환할 수 있다. 또한, 이미지 처리 장치(10)는 특징맵 데이터를 저장하는데 필요한 라인 메모리를 줄이기 위해 특징맵을 압축할 수 있다.
이미지 처리 장치(10)는 수신기(100) 및 컨트롤러(200)를 포함한다.
수신기(100)는 이미지를 수신할 수 있다. 수신기(100)가 수신하는 이미지는 빛의 굴절이나 반사 등에 의하여 이루어진 물체의 상을 의미할 수 있다. 예를 들어, 이미지는 비디오, 그림 및 사진을 포함할 수 있다.
수신기(100)는 픽셀 정보의 형태로 이미지를 수신할 수 있다. 예를 들어, 수신기(100)는 2 차원 픽셀 정보를 수신할 수 있다.
이미지는 저해상도 이미지 및 고해상도 이미지를 포함할 수 있다.
컨트롤러(200)는 수신한 이미지를 처리할 수 있다. 컨트롤러(200)는 수신한 이미지의 해상도를 증가시킬 수 있다. 컨트롤러(200)는 수신한 이미지에 대하여 초해상화를 수행할 수 있다.
컨트롤러(200)는 이미지를 라인 단위로 처리할 수 있다. 컨트롤러(200)는 이미지를 라인 단위로 출력하고, 라인 단위로 연산을 수행함으로써 이미지의 해상도를 증가시킬 수 있다.
도 2는 도 1에 도시된 컨트롤러의 개략적인 블록도를 나타낸다.
도 2를 참조하면, 컨트롤러(200)는 제1 라인 버퍼(line buffer, 210), 제1 컨벌루션 연산기(convolution operator, 220) 및 특징맵 처리기(feature map processor, 230)를 포함할 수 있다. 또한, 컨트롤러(200)는 제2 컨벌루션 연산기(240), 양자화기(quantizer, 250) 및 가중치 버퍼(weight buffer, 260)을 포함할 수 있다.
제1 라인 버퍼(210)는 이미지를 라인 단위의 이미지 라인으로 출력할 수 있다. 제1 라인 버퍼(210)는 적어도 하나의 라인 버퍼를 포함할 수 있다. 이 때, 라인 버퍼의 수는 컨벌루션 필터의 크기에 따라 결정될 수 있다.
제1 컨벌루션 연산기(220)는 이미지 라인에 기초하여 컨벌루션 연산을 수행함으로써 특징맵을 생성할 수 있다.
특징맵 처리기(230)는 특징맵을 적어도 하나의 라인 단위로 저장하고, 적어도 하나의 라인 단위로 저장된 특징맵을 2 차원 형태로 출력하도록 처리할 수 있다.
제2 컨벌루션 연산기(240)는 2차원 형태로 출력된 특징맵에 기초하여 컨벌루션 연산을 수행할 수 있다.
양자화기(250)는 적어도 하나의 컨벌루션 연산 결과를 양자화할 수 있다. 양자화기(250)는 다양한 방식의 양자화 방법을 이용하여 컨벌루션 결과 및 필터 파라미터들을 양자화할 수 있다.
양자화기(250)의 양자화 방법은 균일 양자화(uniform quantization), 비균일 양자화(non-uniform quantization)를 포함하여 부동 소수점을 고정 소수점으로 변환할 수 있는 모든 양자화 알고리즘을 포함할 수 있다. 예를 들어, 양자화기(250)는 균일 양자화를 이용하여 적어도 하나의 컨벌루션 결과 및 필터 파라미터들을 양자화 할 수 있다.
이미지 처리 장치(10)는 복잡성을 낮추기 위해서 양자화기(250)를 통해 고정 소수점 표현을 사용할 수 있다. 양자화기(250)는 부동 소수점(floating-point)을 고정 소수점(fixed-point) 데이터로 변환할 수 있다.
고정 소수점 데이터는 그 수를 나타내기 위해 [IL, FL]로 정의될 수 있다. IL(integer length)은 정수 길이를 나타내고, FL(fraction length)은 소수(또는 분수) 길이를 나타낼 수 있다. 양자화기(250)는 정수 비트 수에 소수 비트 수를 더한 값은 숫자를 나타내는데 사용되는 총 비트 수를 산출할 수 있다.
이들의 합계, IL+FL은 단어 길이(word length) WL로 나타낼 수 있다. 양자화기(250)는 [IL, FL]에서의 고정 소수점 형식을 통해, 데이터의 정밀도를 FL 비트로 제한하고, 범위를 [-2IL -1, 2IL -1-2-FL]로 설정할 수 있다.
양자화기(250)는 부동 소수점을 고정 소수점으로 변환할 때, 가장 가까운 쪽으로 반올림(round to nearest)하는 반올림 방법을 사용할 수 있다. 이러한 반올림 방법은 수학식 1과 같이 나타낼 수 있다.
Figure 112018077647330-pat00001
여기서,
Figure 112018077647330-pat00002
은 x이하의
Figure 112018077647330-pat00003
의 가장 큰 정수 배로 정의될 수 있다. x가 [IL, FL]의 범위를 벗어나면, 결과는 [IL, FL]의 하한 또는 상한으로 포화될 수 있다. 마지막으로 부동 소수점에서 고정 소수점으로 변환하는 공식은 수학식 2와 같이 나타낼 수 있다.
Figure 112018077647330-pat00004
많은 실험을 통해 부동 소수점 데이터(필터 파라미터 및 활성화 값들)에 대한 테스트 세트의 PSNR 강하(degradation)를 최소화하기 위해, 이미지 처리 장치(10)에 대하여 최적의 WL, IL 및 FL 값을 적용될 수 있다. 이미지 처리 장치(10)가 사용하는 네트워크에서 양자화로 인한 강하는 매우 미미할 수 있다.
가중치 버퍼(260)는 컨벌루션 연산에 사용되는 파라미터를 저장할 수 있다.
상술한 구성 요소들은 파이프라인(pipe-line) 형태로 동작할 수 있다. 예를 들어, 적어도 하나의 컨벌루션 연산은 파이프라인 형태로 동작할 수 있다.
도 3은 도 2에 도시된 제1 컨벌루션 연산기의 개략적인 블록도를 나타낸다.
도 3을 참조하면, 제1 컨벌루션 연산기(220)는 잔차 신호를 학습하여 출력하도록 하는 잔차 블록(Residual Block) 내에 구현될 수 있다. 제1 컨벌루션 연산기(220)는 1-D(1-dimensional) 컨벌루션 연산을 수행하는 적어도 하나의 1-D 컨벌루션 연산기를 포함할 수 있다.
1-D 컨벌루션 연산은 라인 단위의 데이터를 입력으로 하는 컨벌루션 연산을 의미할 수 있다. 예를 들어, 1-D 컨벌루션 연산은 1×n 컨벌루션을 의미할 수 있다. 이 때, 라인 단위의 데이터의 길이 n은 2 이상의 임의의 정수 값을 가질 수 있다.
제1 컨벌루션 연산기(220)는 뎁스 와이즈(depth-wise(DW)) 컨벌루션 연산기(221) 및 뎁스 와이즈 컨벌루션 연산기(221)와 직접적으로 연결된 포인트 와이즈(point-wise(PW)) 컨벌루션 연산기(223)를 포함할 수 있다.
뎁스 와이즈 컨벌루션 연산기(221)는 특징맵의 깊이 방향으로 컨벌루션 연산을 수행할 수 있다. 뎁스 와이즈 컨벌루션 연산기(221)는 적어도 한 번 이상의 뎁스 와이즈 컨벌루션 연산을 수행할 수 있다. 포인트 와이즈 컨벌루션 연산기(223)은 포인트 별로 컨벌루션 연산을 수행할 수 있다. 포인트 와이즈 컨벌루션 연산기(223)는 적어도 한 번 이상의 포인트 와이즈 컨벌루션 연산을 수행할 수 있다.
뎁스 와이즈 컨벌루션 연산기(221)는 적어도 하나의 1-D 컨벌루션 연산기를 포함할 수 있다. 포인트 와이즈 컨벌루션 연산기(223)는 1×1 컨벌루션을 수행할 수 있다.
도 4a는 종래의 뎁스와이즈 세퍼러블 컨벌루션의 예를 나타내고, 도 4b는 도 2에 도시된 제1 컨벌루션 연산기의 동작의 일 예를 나타내고, 도 4c는 도 2에 도시된 제1 컨벌루션 연산기의 동작의 다른 예를 나타낸다.
도 4a 내지 4c를 참조하면, 제1 컨벌루션 연산기(220)는 뎁스 와이즈 세퍼러블 컨벌루션(depth-wise separable convolutions (DSC))를 사용하여 컨벌루션 연산을 수행할 수 있다. 이를 통해, 제1 컨벌루션 연산기(220)는 기존의 논 세퍼러블 컨벌루션(non-separable)의 경우에 비하여 약1/9의 파라미터 수 만으로 유사한 분류 성능을 달성할 수 있다.
DSC는 캐스케이드로 연결된 뎁스 와이즈 컨벌루션 연산, ReLU(Rectified Linear Unit) 및 포인트 와이즈 컨벌루션 연산을 포함할 수 있다.
DSC는 SR과 같은 회귀(regression) 문제에서 사용될 때 낮은 성능을 나타낼 수 있다. 배치 정규화(batch normalization(BN))는 회귀 분석에서 성능을 저하시키고 평균 및 분산을 계산하기 위해서 상대적으로 높은 연산량을 요구할 수 있다.
따라서, 제1 컨벌루션 연산기(220)는 DSC에서 BN 및 ReLU를 제거한 구조를 사용할 수 있다. 예를 들어, 제1 컨벌루션 연산기(220)는 뎁스 와이즈 컨벌루션 연산기(221) 및 포인트 와이즈 컨벌루션 연산기(223) 사이에 ReLU 연산을 제거하고, 이들을 직접적으로 연결하여 사용할 수 있다.
DSC에서 적은 수의 컨벌루션 필터가 ReLU와 함께 사용될 때 ReLU 를 거친 특징맵이 지나치게 희박(sparse)해 지는 문제가 발생할 수 있다. 이는, 학습을 방해하여 더 낮은 PSNR 성능을 야기할 수 있다.
도 4a는 종래의 DSC 구조를 나타내고, 4b는 제1 컨벌루션 연산기(220)가 사용하는 컨벌루션 레이어의 구조를 나타낼 수 있다. Set-5 데이터셋에 대하여 뎁스 와이즈 컨벌루션 연산기(221)와 포인트 와이즈 컨벌루션 연산기(223) 사이에 ReLU 가 있는 경우와 없는 경우에 대하여 PSNR 및 SSIM 성능을 비교한 결과는 표 1과 같을 수 있다.
평균 PSNR 평균 SSIM
ReLU 있음 33.54 dB 0.9544
ReLU 없음 33.66 dB 0.9548
차이 + 0.12 dB + 0.0004
종래의 DSC에서는 뎁스 와이즈 컨벌루션에서는 3×3 크기의 필터가 사용될 수 있다. 하지만, T-Con과 같은 일부 디스플레이 어플리케이션에서는 라인 메모리를 과도하게 사용할 수 없는 경우가 많으므로, 네트워크에 3×3 크기의 필터를 사용하는 데에 제약이 따를 수 있다. 반면, 딥러닝에서 높은 성능을 얻기 위해서는 3×3 또는 더 큰 필터를 사용하는 큰 수용 필드가 필요할 수 있다.
따라서, 이미지 처리 장치(10)는 일부 컨벌루션 레이어에 대해 1-D 수평 컨벌루션을 사용함으로써, LR 입력 데이터가 라인 별로 스트리밍되는 하드웨어에 맞게 네트워크를 더욱 컴팩트하고 적합하게 만들 수 있다. 예를 들어, 이미지 처리 장치(10)는 제1 컨벌루션 연산기(220)에 대하여 1-D 수평 컨벌루션을 적용할 수 있다.
결과적으로, 제1 컨벌루션 연산기(220)는 수평 방향으로 길이가 더 길고, 수직 방향으로는 짧은 길이를 갖는 직사각형 수형 필드를 가질 수 있다. 이를 통해, 이미지 처리 장치(10)는 중간 특징맵들을 저장하기 위하여 요구되는 라인 메모리를 가능한 작게 만들 수 있다.
효율적인 하드웨어 구현을 위해서는 네트워크가 가능한 작게 구성된 컨벌루션 필터를 유지해야할 수 있다. 하지만, 필터 파라미터가 적으면 DSC 및 1-D 수평 컨벌루션이 포함된 네트워크의 학습을 악화시킬 수 있다.
이것은 필터 파라미터의 부족으로 인해 네트워크에서 레이어간 연결이 희박해지고, 이미지의 복원(restoration)에 대한 학습이 제대로 이루어지지 않기 때문일 수 있다.
이미지 처리 장치(10)는 네트워크에 잔차 연결을 삽입함으로써 우수한 SR 성능을 가지면서 필터의 수를 현저히 감소시킬 수 있다. 예를 들어, 이미지 처리 장치(10)는 제1 컨벌루션 연산기(220)를 잔차 블록 내에 구현함으로써 필터의 수를 감소시킬 수 있다.
하드웨어 관점에서 2-D 컨벌루션으로 잔차 연결을 구현하기 위해서는 잔차 연결의 입력을 저장하기 위한 추가적인 라인 메모리들이 필요할 수 있고, 이는 연결의 끝단에도 필요할 수 있다.
따라서, 이미지 처리 장치(10)는 잔차 연결에서 1-D 컨벌루션만을 사용하여 지연 버퍼를 이용함으로써 하드웨어에서 쉽게 구현할 수 있다. 도 4c는 최종 1-D 수평 컨벌루션 및 잔차 연결을 갖는 최종 DSC 구조를 나타낼 수 있다.
도 5는 도 2에 도시된 특징맵 처리기의 개략적인 블록도를 나타낸다.
도 5를 참조하면, 특징맵 처리기(230)는 컴프레서(compressor, 231), 제2 라인 버퍼(233) 및 디컴프레서(decompressor, 235)를 포함할 수 있다.
컴프레서(231)는 특징맵을 적어도 하나의 라인 단위로 압축할 수 있다. 컴프레서(231)는 특징맵의 너비(width), 높이(height) 및 깊이(depth) 방향 중 적어도 하나의 방향으로 특징맵을 압축할 수 있다.
제2 라인 버퍼(233)는 라인 단위로 압축된 특징맵을 저장할 수 있다. 제2 라인 버퍼(233)는 적어도 하나의 라인 버퍼를 포함할 수 있다. 이 때, 라인 버퍼의 수는 컨벌루션 연산을 수행하는데 사용되는 컨벌루션 필터(filter)의 크기에 따라 결정될 수 있다.
디컴프레서(235)는 라인 단위로 압축된 특징맵을 2 차원 특징맵으로 복원할 수 있다.
도 6a는 도 2에 도시된 특징맵 처리기의 동작의 예를 나타내고, 도 6b는 도 5에 도시된 컴프레서의 압축 알고리즘의 예를 나타낸다.
도 6a 및 도 6b를 참조하면, 컴프레서(231)는 다양한 알고리즘을 통해 특징맵을 압축할 수 있다. 압축 알고리즘은 고정 길이 부호화(Fixed-Length Coding) 및 가변 길이 부호화(Variable-Length Coding)를 포함할 수 있다. 고정 길이 부호화 알고리즘은 DXT 알고리즘을 포함할 수 있고, JPEG및 JPEG 2000과 같은 블록 기반 알고리즘을 포함할 수 있다. 고정 길이 부호화 알고리즘은 하드웨어 복잡도 측면에서 선호될 수 있다.
가변 길이 부호화 알고리즘은 허프만(Huffman) 및 아리스메틱 코딩(Arithmetic Coding)을 포함할 수 있다. 가변 길이 부호화 알고리즘은 압축률을 높이기 위해 사용될 수 있다.
또한, 컴프레서(231)는 상술한 알고리즘의 변형 알고리즘을 사용하여 특징맵을 압축할 수 있다.
수용 필드의 크기는 성능에 큰 영향을 미칠 수 있다. 또한, 수평 및 수직 수용 필드 모두가 중요할 수 있다. 그러나, 수직 방향(vertical direction)을 포함하는 3x3 컨벌루션의 경우, 이전 컨벌루션 레이어를 통과한 후에 출력된 데이터가 다음 3x3 컨벌루션 레이어로 전송될 때, 특징맵 데이터가 라인 메모리에 저장되어야 할 수 있다.
3x3 컨벌루션 레이어을 통과할 때, 현재 레이어의 출력 특징맵들을 저장하는데 요구되는 라인 메모리의 수 보다 2 배 많은 라인 메모리가 필요할 수 있다.
많은 라인 메모리의 사용은 칩 설계에서 많은 문제를 일으킨다. 주요 문제는 라인 메모리에 사용되는 파워 링(power ring)들의 수의 증가로 인한 칩 크기 증가, P & R(place & route)에서의 라우팅 혼잡 및 메모리 메모리 블록 경계(memory block boundary)에 파워 링(power ring)이 부족할 경우 전압 강하(voltage drop)의 발생을 포함할 수 있다.
상술한 문제점을 해결하기 위해서, 라인 메모리의 수를 줄이는 방법이 필요하고, 특징맵을 압축하는 방법이 고려될 수 있다.
컴프레서(231)는 하드웨어 구현 관점에서 여러 점을 고려한 특징맵 압축 방법을 사용할 수 있다. 컴프레서(231)가 압축하는 특징맵은 중간 특징맵을 포함할 수 있다.
컴프레서(231)는 매우 간단한 압축 알고리즘을 사용할 수 있다. 압축은 라인 메모리의 수를 줄이는 것으로 간주되므로 압축 방법에 사용된 로직의 크기는 압축 이전에 중간 특징맵을 저장하는데 요구되는 메모리의 크기보다 작아야 할 수 있다.
잔차 학습 및ReLU의 사용이 특징맵들에서 많은 0 및 0에 가까운 값들을 야기하기 때문에, 컴프레서(231)는 이러한 데이터 특성에 대한 효율적인 압축 알고리즘을 제공할 수 있다. 컴프레서(231)는 라인 메모리를 효과적으로 사용하기 위해서 수평 방향에서 인접한 데이터만을 사용하여 데이터를 압축할 수 있다.
예를 들어, 컴프레서(231)가 사용하는 알고리즘은 DXT5 알고리즘을 CNN 구조에 적합하도록 수정한 알고리즘을 포함할 수 있다. DXT5는 예시적으로 4×4 블록으로 구성된 RGB 픽셀을 압축함에 있어서, 각각의 RGB 컬러 채널 입력을 독립적으로 압축할 수 있다.
각 컬러 채널의 최대 값(MAX)과 최소값(MIN)이 계산될 수 있다. 6 개 중간 점(intermediate points)이 최대값(MAX) 및 최소값(MIN)을 사용하여 보간을 통해 생성될 수 있다. MAX, MIN 값과 6 개의 중간 점이 압축을 위한 기준 컬러로 정의될 수 있다.
픽셀 데이터를 인코딩하기 위해서 각 픽셀에 참조 컬러(reference color)에 가장 가까운 색의 인덱스 값을 할당할 수 있다. 인코딩은 4x4 블록 인덱스 값과 MAX 및 MIN 값을 저장함으로써 완료될 수 있다. 4x4 블록에서 각각의 픽셀에 대해서 8 개의 이웃 인덱스 값이 있고, 각각의 인덱스는 각 픽셀마다 3 비트로 표현될 수 있다.
디코딩은 인코딩 프로세스의 역순으로 MAX, MIN 값 및 인덱스 값을 사용하여 쉽게 수행될 수 있다. RGB 입력의 픽셀 당 비트(bit per pixel(bpp))가 8 비트이면 DXT5는 4x4 블록에 대하여 고정된 압축률은 2:1을 가질 수 있다. 압축비(compression ratio(CR))는 수학식 3과 같이 계산될 수 있다.
Figure 112018077647330-pat00005
이미지 처리 장치(10)의 컴프레서(231)는 DXT5 알고리즘을 수정하여 이미지 열화(image quality degradation)를 최소화하고 CR을 증가시키는 압축 방법을 제공할 수 있다. 종래의 DXT 5와 이미지 처리 장치(10)의 차이는 표 2와 같이 나타낼 수 있다.
방법 기존 DXT5 이미지 처리 장치(10)
입력(input) RGB 중간 특징맵(intermediate feature maps)
비트(bits) 24 bits 14 bits (양자화됨)
블록(Block) 4×4 1×32
최대 값(max value) 계산(compute) 계산(compute)
최소 값(min value) 계산(compute) 0 (고정)
인덱스 당 비트(bits per index) 3 5
제수 값(divisor value) 7 32 (근사(approximate))
압축률(compression ratio) 2:1 2.58:1
컴프레서(231)는 최소값은 0으로 고정시키고 최대값만 계산할 수 있다. 최소값을 0으로 고정하는 것은 중간 특징맵들의 데이터가 0 또는 0에 가까운 특성을 사용한다.
이미치 처리 장치(10)는 최소값을 0으로 고정함으로써, 최소값을 저장하는 비트를 감소시키고, 최소값을 계산하기 위한 로직(logic)을 제거할 수 있다. 중간 특징맵 데이터는 하드웨어에서 라인 단위로 처리되어야 하므로, 특징맵 데이터의 블록 크기는 1x32로 설정될 수 있다.
또한, 5 비트 인덱스는 특징맵의 1x32 블록에서 각각의 데이터에 대해 양자화 레벨로 할당될 수 있다. 데이터의 하나의 인덱스는 이미지 품질을 유지하기 위해 할당된다. 인덱스들에 대한 5 비트 길이는 데이터 포인트 인덱스들에 대해서 비트 길이에 따른 PSNR 성능을 검사함으로써 실험적으로 결정될 수 있다.
컴프레서(231)의 CR은 수학식 4와 같이 나타낼 수 있다.
Figure 112018077647330-pat00006
활성화의 양자화 후에 특징맵 데이터의 워드 길이(word length(WL))가 14 비트 깊이라면, 압축률은 2.58:1(=14(1x32)/(14+5(1x32)))일 수 있다. 즉, 특징맵을 저장하기 위한 라인 메모리의 수는 약 2.58 배로 줄어들 수 있다.
표 2에 도시된 바와 같이, 컴프레서(231)는 중간 점(intermediate point)을 계산하는데 대한 하드웨어 복잡성을 줄이기 위해 제수 값(divisor values)은 31(25-1) 대신 32(2의 배수)로 설정할 수 있다. 이를 통해, 컴프레서(231)는 쉬프트 및 올림 연산자(shift 및 add operators)로 중간 점들을 계산할 수 있다
도 7은 도 2에 도시된 제2 컨벌루션 연산기의 개략적인 블록도를 나타낸다.
도 7을 참조하면, 제2 컨벌루션 연산기(240)는 뎁스 와이즈 컨벌루션 연산기(241) 및 뎁스 와이즈 컨벌루션 연산기(241)와 직접적으로 연결된 포인트 와이즈 컨벌루션 연산기(243)을 포함할 수 있다. 제2 컨벌루션 연산기(240)는 2-D(2-dimensional) 컨벌루션 연산을 수행하는 적어도 하나의 2-D 컨벌루션 연산기를 포함할 수 있다.
뎁스 와이즈 컨벌루션 연산기(241)는 특징맵의 깊이 방향으로 컨벌루션 연산을 수행할 수 있다. 뎁스 와이즈 컨벌루션 연산기(241)는 적어도 한 번 이상의 뎁스 와이즈 컨벌루션 연산을 수행할 수 있다. 포인트 와이즈 컨벌루션 연산기(243)은 포인트 별로 컨벌루션 연산을 수행할 수 있다. 포인트 와이즈 컨벌루션 연산기(243)는 적어도 한 번 이상의 포인트 와이즈 컨벌루션 연산을 수행할 수 있다.
2-D 컨벌루션 연산은 2차원 데이터를 입력으로 하는 컨벌루션 연산을 의미할 수 있다. 예를 들어, 2-D 컨벌루션 연산은 m×n 컨벌루션을 의미할 수 있다. 이 때, 라인 단위의 데이터의 길이 m, n은 2 이상의 임의의 정수 값을 가질 수 있다.
본 명세서에서는 예시적으로 2-D컨벌루션의 예시로 3×3 컨벌루션을 사용하지만, 이미지 처리 장치(10)가 사용하는 2-D 컨벌루션은 이에 제한되지 않을 수 있다.
뎁스 와이즈 컨벌루션 연산기(241)는 특징맵의 깊이 방향으로 컨벌루션 연산을 수행할 수 있다. 포인트 와이즈 컨벌루션 연산기(243)은 포인트 별로 컨벌루션 연산을 수행할 수 있다.
뎁스 와이즈 컨벌루션 연산기(241)는 적어도 하나의 2-D 컨벌루션 연산기를 포함할 수 있다. 포인트 와이즈 컨벌루션 연산기(243)는 1×1 컨벌루션을 수행할 수 있다.
제1 컨벌루션 연산기(220)와 마찬가지로, 제2 컨벌루션 연산기(240)도 뎁스 와이즈 세퍼러블 컨벌루션을 사용하여 컨벌루션 연산을 수행할 수 있다. 뎁스 와이즈 세퍼러블 컨벌루션과 연관한 설명은 제1 컨벌루션 연산기(220)와 동일하여 자세히 설명하지 않는다.
도 8은 도 1에 도시된 이미지 처리 장치의 하드웨어 구조의 예를 나타낸다.
이미지 처리 장치(10)는 저해상도 이미지를 처리하여 고해상도 이미지를 생성할 수 있다. 예를 들어, 이미지 처리 장치(10)는 FHD 이미지로부터 4K UHD 이미지를 생성할 수 있다.
도 8의 예시는 SR을 위한 파이프라인 하드웨어 아키텍처를 나타낼 수 있다. 도 8의 예시는 두 개의 유형으로 설계된 것일 수 있다. 유형-1은 중간 특징맵의 압축이 없고, 유형-2는 압축을 하는 경우를 의미할 수 있다.
도 8에 도시된 이미지 처리 장치의 세부 사항은 표 3과 같이 나타낼 수 있다.
유형(Type)/스트라이드(Stride)/패딩(Padding) 필터 모양(Filter Shape) 입력/출력 크기 비고
1920×1080×1 입력 Y
Conv / (1,1) / (1,1) 3×3×1×32 1920×1080×32
ReLU - 1920×1080×32
DW Conv / (1,1) / (0, 2) 1×5×32 dw 1920×1080×32 잔차 블록(Residual
Block)
PW Conv / (1,1) / (0, 0) 1×1×32×16 1920×1080×16
ReLU - 1920×1080×16
DW Conv / (1,1) / (0, 2) 1×5×16 dw 1920×1080×16
PW Conv / (1,1) / (0, 0) 1×1×16×32 1920×1080×32
ReLU - 1920×1080×32
DW Conv / (1,1) / (1, 1) 3×3×32 dw 1920×1080×32
PW Conv / (1,1) / (0, 0) 1×1×32×16 1920×1080×16
ReLU - 1920×1080×16
DW Conv / (1,1) / (1, 1) 3×3×16 dw 1920×1080×16
PW Conv / (1,1) / (0, 0) 3×3×16×4 1920×1080×4
픽셀 셔플(Pixel Shuffle) depth-to-space 3840×2160×1 YC
최단 입점(Nearest Neighbor) 2× up-sample 3840×2160×1 YN
잔차 네트워크(Residual Network) YN + YC 3840×2160×1 출력 YF
이미지 처리 장치(10)는 제1 픽셀 정보 변환기, 제1 라인 버퍼(210), 데이터 정렬기(data aligner), 뎁스 와이즈 컨벌루션 연산기(221), 포인트 와이즈 컨벌루션 연산기(223) 컴프레서(231), 제2 라인 버퍼(233), 디컴프레서(235), 뎁스 와이즈 컨벌루션 연산기(241), 포인트 와이즈 컨벌루션 연산기(243), 양자화기(250), 가중치 버퍼(270), 제2 픽셀 정보 변환기 및 제3 라인 버퍼를 포함할 수 있다.
제1 픽셀 정보 변환기가 수신하는 이미지는 컬러 데이터를 포함할 수 있다. 예를 들어, 컬러 데이터는 RGB 채널 데이터 및 YCbCr 채널 데이터를 포함할 수 있다.
제1 픽셀 정보 변환기는 제1 컬러 데이터를 제2 컬러 데이터로 변환할 수 있다. 제1 컬러 데이터는 RGB 채널을 포함할 수 있다. 제2 컬러 데이터는 YCbCr 채널을 포함할 수 있다. 예를 들어, 제1 픽셀 정보 변환기는 LR 입력 이미지의 RGB 채널을 YCbCr 채널로 변환할 수 있다.
제1 라인 버퍼(210)는 예시적으로 4 개의 라인 버퍼를 포함할 수 있다. 뎁스 와이즈 컨벌루션 연산기(221)는 1×5 컨벌루션 연산을 수행할 수 있다. 제2 라인 버퍼(233)는 짝수 라인 버퍼 및 홀수 라인 버퍼를 포함할 수 있다.
뎁스 와이즈 컨벌루션 연산기(241)는 3×3 컨벌루션 연산을 수행할 수 있다. 제2 픽셀 정보 정보 변환기는 제2 컬러 데이터를 제1 컬러 데이터로 변환할 수 있다. 예를 들어, 제2 픽셀 정보 변환기는 YCbCr 채널을 RGB 채널로 변환할 수 있다.
가중치 버퍼(260)는 컨벌루션 연산에 사용되는 파라미터(또는 필터 파라미터)를 저장할 수 있다. 가중치 버퍼(260)는 컨벌루션 연산기들로부터 수신하는 파라미터들을 업데이트 할 수 있다.
제3 라인 버퍼는 복수의 라인 버퍼를 포함할 수 있다. 예를 들어, 제3 라인 버퍼는 4개의 출력 라인 버퍼를 포함할 수 있다.
모든 컨벌루션 연산기의 출력은 양자화기(250)를 통해 양자화될 수 있다. 또한 모든 가중치 파라미터들 또한 양자화기(250)를 통해 양자화 될 수 있다.
양자화기(250)는 32 비트 부동 소수점을10 비트 고정 소수점으로 변환할 수 있다. 가중치 버퍼(260)는 양자화된 가중치 파라미터를 저장할 수 있다.
도 8에서 화살표는 데이터 패스를 나타낼 수 있다. 즉, 화살표는 유형-1에 따른 데이터 패스 및 유형-2에 따른 데이터 패스를 나타낼 수 있다.
이미지 처리 장치(10)는 파이프 라인 구조로 동작할 수 있다. 파이프 라인은 한 데이터의 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조를 의미할 수 있다. 연결된 데이터의 처리 단계는 여러 단계가 서로 동시에, 또는 병렬적으로 수행될 수 있다.
즉, 이미지 처리 장치(10)에 포함된 구성 요소들은 동시에 또는 병렬적으로 동작하여 이미지를 처리할 수 있다. 예를 들어, 이미지 처리 장치의 적어도 하나의 컨벌루션 연산은 파이프 라인 형태로 동작할 수 있다.
컨벌루션 연산기들은 컨벌루션 필터 파라미터들을 가중치 버퍼(260)로부터 로딩할 수 있다. 그 후, 제1 픽셀 정보 변환기는 RGB 입력 스트림으로부터 YCbCr 값을 추출할 수 있다. 제1 라인 버퍼(210)는 네트워크의 끝에 잔차 연결에 대해 보간된 이미지를 획득하기 위한 최단입점 업스케일링에 사용하기 위해서 YCbCr LR 입력 이미지의 4 개의 행을 저장할 수 있다.
데이터 정렬기는 제1 라인 버퍼(210)의 4 개의 라인 버퍼 및 입력 스트림의 데이터를 재정렬하고, 3×3 크기의 YCbCr LR 패치(patch)들을 생성할 수 있다. 여기서, LR 패치들의 Y 채널은 3×3 컨벌루션 레이어에 전송될 수 있다.
첫 번째 컨벌루션 연산 후에, 특징맵은 ReLU 활성화 함수를 통과할 수 있다. 그 후, ReLU 함수의 출력은 제1 컨벌루션 연산기(220)를 통과할 수 있다. 제1 컨벌루션 연산기(220)는 특징맵(또는 중간 특징맵)을 생성할 수 있다.
컴프레서(231)는 잔차 블록 및ReLU를 통과한 중간 특징맵을 압축하고, 제2 라인 버퍼(233)는 이를 저장할 수 있다.
디컴프레서(235)는 제2 라인 버퍼(233)에 저장된 데이터를 읽어서 한 번 지연된(one-delayed) 라인 데이터 DE(data enable) 타이밍에 압축을 해제할 수 있다. 뎁스 와이즈 컨벌루션 연산기(241)는 압축 해제된 데이터에 대하여 3×3 컨벌루션 연산을 수행하고, 포인트 와이즈 컨벌루션 연산기(243)는 뎁스 와이즈 컨벌루션 연산기(241)의 출력에 대하여 1×1 컨벌루션 연산을 수행할 수 있다.
포인트 와이즈 컨벌루션 연산기(243)에서 출력된 후에, 특징맵 채널의 수는 32에서 16으로 반으로 감소될 수 있다. 채널이 감소된 특징맵은 다시 컴프레서(231), 제2 라인 버퍼(233) 및 디컴프레서(235)를 순차적으로 통과할 수 있다. 그 후, 다시 한번 뎁스 와이즈 컨벌루션 연산기(241) 및 포인트 와이즈 컨벌루션 연산기(243)를 통해 컨벌루션 연산이 수행될 수 있다.
반복된 컨벌루션 연산 후의 출력은 서브 픽셀 컨벌루션과 유사한 방법으로 2×2 크기의 HR 패치를 만들기 위해 사용되는 4개의 채널로 이루어질 수 있다.
마지막으로, 이미지 처리 장치(10)는 2x2 크기의 초해상화된(super-resolved) Y 데이터(YC)와 최단 입점 보간 방법에 의해 2X 업-샘플링된 데이터(YN)를 더함으로써 최종 Y(YF)를 획득할 수 있다.
YC와 YN 데이터의 두 개의 타이밍을 동기화하기 위해서, YN 데이터가 FIFO(First-In-First-Out)에 저장되고, YC와 동일한 타이밍에 판독될 수 있다. FIFO로부터 지연된 CbCr 데이터 또한, 최단 입점(nearest neighbor) 보간에 기초하여 2배로업샘플링되고, RGB 픽셀을 획득하기 위해 제2 픽셀 정보 변환기로 전송될 수 있다.
제3 라인 버퍼의 두 개의 출력 버퍼들은 생성된 2x2 RGB HR 패치들을 저장할 수 있고, 출력 타이밍에 출력 클락 사이클 마다 디스플레이 장치로 전송될 수 있다.
스트림 처리를 위한 이중 버퍼링 구조를 이용하는 2x2 RGB HR 패치들에 대하여 읽기/쓰기 충돌을 피하기 위해서 제3 라인 버퍼로 4 개의 라인 버퍼가 사용될 수 있다.
도 9는 도 1에 도시된 이미지 처리 장치가 이용하는 뉴럴 네트워크 구조의 예를 나타낸다.
도 9를 참조하면, 이미지 처리 장치(10)는 하드웨어 친화적인 CNN 기반 SR 네트워크를 이용하여 이미지를 처리할 수 있다.
이미지 처리 장치(10)는 컬러 데이터의 일부만을 이용하여 이미지를 처리할 수 있다. YCbCr 채널 중에서 휘도 신호(Y) 채널만을 CNN 네트워크에 입력하여 처리할 수 있다. Y 채널만을 이용한 학습의 성능은 RGB 채널을 이용한 학습의 성능과 유사할 수 있다.
RGB 채널로 CNN 네트워크를 학습시킬 때 RGB 채널에 사용되는 파라미터의 수는 첫 번째 레이어의 2-D 컨벌루션 및 마지막 레이어의 포인트 와이즈 컨벌루션에서 Y 채널에만 사용되는 매개 변수의 수보다 3 배 더 클 수 있다.
이 때, 색차 신호(Cb, Cr) 채널 데이터는 보간 방법을 이용하여 업스케일링 될 수 있다. 보간 방법은 바이큐빅 보간 및 최단 입점 보간(nearest neighbor interpolation)을 포함할 수 있다.
예를 들어, 이미지 처리 장치(10)는 복잡도를 줄이고, 하드웨어 효율을 위해서 바이큐빅 보간 대신에 간단한 최단 입점 보간을 이용하여 업스케일링될 수 있다. 또한, 복잡도를 줄이기 위해서, 이미지 처리 장치(10)는 잔차 학습 기법(residual learning technique)을 이용하여 뉴럴 네트워크를 학습시킬 수 있다.
이미지 처리 장치(10)는 최종 HR 이미지 YF는 보간된 LR 이미지 YN과 네트워크의 출력 YC를 더함으로써 계산할 수 있다. 이를 수학식 5와 같이 나타낼 수 있다.
Figure 112018077647330-pat00007
컨벌루션 필터 파라미터 및 라인 메모리를 가능한 적게 사용하기 위해서 이미지 처리 장치(10)는 뎁스 와이즈 세퍼러블 컨벌루션(depth-wise separable convolutions), 1-D 수평(horizontal) 컨벌루션 및 잔차 연결(residual connection)을 결합하여 사용할 수 있다.
그 결과, 필터 파라미터의 수는 종래의 SRCNN(Super-Resolution Convolutional Neural Network)-Ex에 비해서 약 21 배 적고, FSRCNN(Fast Super-Resolution Convolutional Neural Network)에 비해서 약 4.5 배 적고, FSRCNN-s에 비해서 약 1.56 배 적은 반면 PSNR 및 SSIM(Structural Similarity) 성능은 SRCNN-Ex와 유사할 수 있다.
도 9에 도시된 예시와와 같이 이미지 처리 장치(10)는 두 레이어의 2-D 컨벌루션 레이어와 하나의 1-D 컨벌루션 레이어를 통해 컨벌루션 연산을 수행할 수 있다. 예를 들어, 2-D 컨벌루션 연산은 3×3 컨벌루션 연산일 수 있고, 1-D 컨벌루션 연산은 1×5 컨벌루션 연산일 수 있다. 이 경우, 총 수용 필드의 크기는 7×15일 수 있다.
도 10은 도 1에 도시된 이미지 처리 장치를 검증하는 프레임 워크의 예를 나타낸다.
도 10을 참조하면, 바이큐빅과 기존의 CNN 기반 SR 방법을 이미지 처리 장치(10)와 비교하기 위하여 대중적인 데이터 세트에 대하여 성능이 평가될 수 있다. 성능 평가 실험을 통해, SRCNN, SRCNN-Ex, FSRCNN, FSRCNN-s 및 VDSR(Very Deep Super-Resolution)을 포함하는 소프트웨어 기반 방법들과 이미지 처리 장치(10)의 성능이 비교될 수 있다. 또한, 게이트 카운트 및 동작 주파수의 관점에서도 다른 실시간 SR 하드웨어와 이미지 처리 장치(10)의 성능이 비교될 수 있다.
학습 및 테스트를 위해 대중적으로 사용 가능한 벤치 마크 데이터 세트가 사용될 수 있다. 특히, SR 네트워크는 Yang 등으로부터의 91개의 이미지 및 버클리 분할 데이터셋(Berkeley Segmentation Dataset)으로부터의 200 개의 이미지 구성된 291 이미지를 이용하여 학습될 수 있다.
성능 비교를 위해 테스트세트-1과 테스트세트-2가 사용될 수 있다. 테스트세트-1은 Set5, Set14, B100 및 Urban100으로 구성될 수 있고, 이들은 많은 방법들에서 SR 벤치마크로 자주 사용될 수 있다. 테스트세트-2는 4K UHD 이미지 8개로 구성될 수 있고, 테스트를 위해 사용될 수 있다.
모든 실험은 SR에 대해 2 배의 스케일 팩터로 수행될 수 있다. PSNR 및 SSIM은 평가를 위한 척도(metric)로 사용될 수 있다. SR은 YCbCr 색 공간의 휘도(luminance) 채널에 대해 수행되었으므로, PSNR 및 SSIM은 재구성된 원본 HR 이미지의 Y 채널을 사용하여 계산될 수 있다.
학습 및 테스트를 위해, LR 입력 이미지는 2 배 스케일의 바이큐빅 보간을 이용하여 원본 HR 이미지로부터 다운 샘플링하여 의도적으로 생성될 수 있다. 학습을 위해 128×128 크기의 서브 이미지들이 무작위로 크롭될(cropped) 수 있다. 회전, 반사 및 스케일링을 사용하여 LR-HR 학습 이미지 쌍이 증대(augmentation)될 수 있다.
가중치는 균일 분포를 사용하여 초기화될 수 있고, 파라미터의 수를 줄이기 위해서 바이어스가 사용되지 않을 수 있다. L1 손실(loss)이 L2 손실 대신 비용 함수로 사용될 수 있다. 제안된 SR 네트워크는 Adam optimizer를 이용하여 학습될 수 있다.
학습률(learning rate)은 0.0001로 설정되고, 50 에포크(epoch)마다 10씩 감소될 수 있다. 학습 도중에 미니 배치(batch)의 크기는 2로 설정될 수 있다. 3.4GHz의 NVIDIA Titan X GPU 및 Intel Core i7-6700 CPU가 학습 테스트에 사용될 수 있다.
학습 단계에서 부동 소수점을 계산하는 동안 SR 네트워크의 가중치 파라미터는 테스트 단계에서 부동 소수점에서 고정 소수점까지 수학식 2에 따라 양자화될 수 있다.
또한, 모든 컨벌루션 레이어의 활성화를 양자화하고 압축 방법을 이용하여 3×3 크기의 뎁스 와이즈 컨벌루션 레이어들의 특징맵들만이 압축될 수 있다. 가중치와 활성화에 대한 최적의 양자화 비트는 실험적으로 발견될 수 있고, 양자화된 가중치 파라미터는 이미지 처리 장치(10)에서 사용될 수 있다.
알고리즘 단계에서 압축된 중간 특징맵 및 최종 SR 이미지는 골든 모델(golden model)로 사용되어 설계된 하드웨어 시뮬레이션 결과와 비교될 수 있다.
도 11a는 도 1에 도시된 이미지 처리 장치의 성능의 일 예를 나타내고, 도 11b는 도 1에 도시된 이미지 처리 장치의 성능의 다른 예를 나타내고, 도 11c는 도 1에 도시된 이미지 처리 장치의 성능의 또 다른 예를 나타낸다.
도 11a 내지 도 11c를 참조하면, 가중치 파라미터와 활성화는 하드웨어 구현을 위해 양자화될 수 있다. 가중치 파라미터 및 활성화에 대한 양자화가 출력 이미지의 품질에 크게 영향을 미치기 때문에 적절한 양자화 비트 깊이를 찾는 것이 중요할 수 있다. 즉, 상술한 내용에서 단어 길이(WL), 정수 길이(IL) 및 소수 길이(FL)의 세 가지 파라미터에 대한 적절한 값이 요구될 수 있다. 이를 위해, 다양한 데이터 세트에 대하여 WL, IL, FL을 변경하며 실험이 수행될 수 있다.
도 11a는 Set5 데이터 세트에 대한 가중치 파라미터 값을 양자화하는 WL 및 IL에 대한 PSNR 그래프를 나타낼 수 있다. 도 11a에서 확인할 수 있듯이, 비트 깊이가 10 이상인 경우, SR 네트워크의 PSNR 성능은 가중치 및 활성화 양자화가 없는 경우와 유사할 수 있다. 또한, 10 비트 WL에 대해, PSNR 성능은 IL=4 이상에서 크게 감소하는 것을 확인할 수 있다.
이는 FL 비트 깊이가 수학식 5에서와 같이 잔차 네트워크의 사용으로 인해 IL 비트 깊이 보다 PSNR 성능에 더 큰 영향을 미칠 수 있다. 가중치 파라미터의 양자화를 위해 WL 비트 깊이는 10 비트로, IL 비트 깊이는 2트로 설정될 수 있고, 이는 활성화 양자화 및 중간 특징맵 압축에도 사용될 수 있다.
도 11b는 활성화 양자화를 위한 WL 및 IL 비트 깊이에 대한 SR 네트워크의 PSNR 성능을 나타낼 수 있다. 도 11b의 실험 결과를 바탕으로 활성화 양자화를 위한 WL가 14 비트로, IL가 2 비트로 설정될 수 있다.
도 11c는 라인 메모리 사용을 줄이기 위해 양자화된 특징맵에 적용된 압축 방법에 대한 실험 결과를 나타낼 수 있다. 다양한 블록 크기 및 인덱스(양자화 레벨)가 PSNR 성능과 관련하여 검사될 수 있다. 압축의 양자화 레벨의 수가 적을수록 압축률은 높아지지만 PSNR 성능은 낮아질 수 있다.
도 11c의 실험결과에 기초하여, 32 비트의 블록 크기 및 5 비트의 인덱스 크기(양자화 레벨의 수)가 요구되는 라인 메모리 및 결과 PSNR 사이의 절충안으로 선택될 수 있다.
도 12a는 원본 고해상도 이미지의 일 예를 나타내고, 도 12b는 바이큐빅 방법을 통해 처리된 이미지의 일 예를 나타내고, 도 12c는 SRCNN 방법을 통해 처리된 이미지의 일 예를 나타낸다.
도 12d는 SRCNN-Ex 방법을 통해 처리된 이미지의 일 예를 나타내고, 도 12e는 FSRCNN 방법을 통해 처리된 이미지의 일 예를 나타내고, 도 12f는 FSRCNN-s 방법을 통해 처리된 이미지의 일 예를 나타낸다.
도 12g는 VDSR 방법을 통해 처리된 이미지의 일 예를 나타내고, 도 12h는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치를 적용하여 처리한 이미지의 일 예를 나타낸다.
도 12i는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치와 활성화를 적용하여 처리한 이미지의 일 예를 나타내고, 도 12j는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치와 활성화 및 중간 특징맵 압축을 적용하여 처리한 이미지의 일 예를 나타낸다.
도 13a는 원본 고해상도 이미지의 다른 예를 나타내고, 도 13b는 바이큐빅 방법을 통해 처리된 이미지의 다른 예를 나타내고, 도 13c는 SRCNN 방법을 통해 처리된 이미지의 다른 예를 나타낸다.
도 13d는 SRCNN-Ex 방법을 통해 처리된 이미지의 다른 예를 나타내고, 도 13e는 FSRCNN 방법을 통해 처리된 이미지의 다른 예를 나타내고, 도 13f는 FSRCNN-s 방법을 통해 처리된 이미지의 다른 예를 나타낸다.
도 13g는 VDSR 방법을 통해 처리된 이미지의 다른 예를 나타내고, 도 13h는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치를 적용하여 처리한 이미지의 다른 예를 나타낸다.
도 13i는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치와 활성화를 적용하여 처리한 이미지의 다른 예를 나타내고, 도 13j는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치와 활성화 및 중간 특징맵 압축을 적용하여 처리한 이미지의 다른 예를 나타낸다.
도 12a 내지 도 13j를 참조하면, 이미지 처리 장치(10)의 성능이 바이큐빅 및 SRCNN, SRCNN-Ex, FSRCNN, FSRCNN-s를 포함하는 다른 CNN 기반 SR 방법과 비교될 수 있다. SRCNN, SRCNN-Ex, FSRCNN 및 FSRCNN-s에 대해 공개적으로 사용 가능한 MATLABTM 소스 코드가 사용될 수 있고, 이미지 처리 장치(10)는 PyTorch를 이용하여 구현될 수 있다.
공정한 비교를 위해 HR 복원본 및 원본 이미지의 경계가 PSNR/SSIM 계산에서 제외될 수 있다. 모든 방법은 CPU 플랫폼에서 실행될 수 있다.
VDSR의 공식 코드는 GPU 플랫폼에서만 실행 가능하기 때문에 PSNR/SSIM 및 실행 시간을 측정하기 위해 CPU 플랫폼에서 실행되는 타사 코드(third-party code)가 사용될 수 있다.
이미지 처리 장치(10)의 실행 시간은 PyTorch를 사용한 소프트웨어 구현을 기반으로 측정될 수 있다.
4 가지 벤치마크 데이터 세트와 비교한 SR 방법의 평균 PSNR 및 SSIM 값은 표 4와 같이 나타낼 수 있다.
Figure 112018077647330-pat00008
표 4에서 볼 수 있듯이 이미지 처리 장치(10)는 FSRCNN-s보다 성능이 뛰어나고, FSRCNN-s에 비하여 64 퍼센트의 필터 파라미터의 수만을 차지하는 것을 확인할 수 있다. 또한, 가중치 파라미터의 값 및 활성화를 위한 양자화 후에도 이미지 처리 장치(10)의 성능저하가 일어나지 않음을 확인할 수 있다.
이미지 처리 장치(10)의 네트워크에 대하여 특징맵 압축을 적용할 때, PSNR에서 약 0.1dB의 성능 저하가 있지만, 요구되는 라인 메모리의 공간은 약 2.58배 감소될 수 있다.
표 5는 4K UHD 테스트 이미지로 구성된 테스트세트-2의 PSNR, SSIM의 평균 계산 시간 측면에서 이미지 처리 장치(10)와 다른 CNN 기반 SR 방법의 성능 비교 결과를 나타낼 수 있다.
Figure 112018077647330-pat00009
이미지 처리 장치(10)는 다른 SR 방법에 필적하는 품질의 HR 이미지를 복원할 수 있음을 확인할 수 있다. 실행 시간과 관련하여, RCNN, SRCNN-Ex, FSRCNN 및 FSRCNN-s은 공개 코드가 MATLAB에서 구현되고, CPU 플랫폼에서 최적화되지 않을 수 있으므로 상대적으로 긴 실행 시간을 사용할 수 있다.
공정한 비교를 위해 이미지 처리 장치(10)가 사용하는 네트워크가 TensorFlow에서도 구현될 수 있고, 다른 코드들도 TensorFlow에서 작성되어 GPU 플랫폼에서 실행시간이 측정될 수 있다.
표 5를 참조하면, 이미지 처리 장치(10)를 포함한 다양한 CNN 기반 SR 방법에 대해 GPU가 측정한 실행 시간을 확인할 수 있다. GPU에서 실행되는 이미지 처리 장치(10)의 실행 시간은 약 50ms로 측정되었고, 이는 FPGA 구현에 비하여 약 3배 정도 빠름을 확인할 수 있다.
도 12a 내지 12j는 바이 큐빅과 이미지 처리 장치(10)를 포함한 5 개의 CNN 기반 SR 방법을 이용하여 복원된 이미지 및 그들의 크롭된 영역을 나타낼 수 있다. 이미지 처리 장치(10)가 가장 적은 수의 파라미터를 사용하지만 결과적인 HR 이미지는 여전히 날카로운(sharp) 모서리를 가지고 잘 지각할 수 있고, 아티팩트(artifact)도 거의 없음을 확인할 수 있다.
도 13a 내지 13j는 4K UHD 해상도의 아동(children) 이미지에 대하여 복원된 HR 이미지의 크롭된 영역을 나타낼 수 있다. 이미지 처리 장치(10)와 다른 CNN 기반 SR 방법의 시각적 품질은 유사함을 확인할 수 있다.
도 14는 SR 하드웨어를 FPGA로 구현한 예를 나타낸다.
도 14를 참조하면, FPGA 상에 구현된 이미지 처리 장치(10)의 프로토 타입을 확인할 수 있다. 표 6은 Lee, Yang, 이전의 슈퍼-보간(Super-Interpolation(SI)) 및 이미지 처리 장치(10)의 구현의 세부 사항을 나타낼 수 있다.
Figure 112018077647330-pat00010
* 2 개 입력 NAND 게이트는 하나의 등가 게이트로 카운팅됨.
Lee 등은 30fps에서 HD 및 FHD 스트림으로부터 4K UHD 비디오 스트림을 얻을 수 샤프닝(sharpening) 알고리즘을 사용하여 라그랑즈(Lagrange) 보간 방법을 사용하는 하드웨어를 제시했다.
Yang의 HW 아키텍처는 ANR(Anchor Neighborhood Regression)을 기반으로 하여 사전(dictionary)을 이용하여 고주파 패치를 생성하기 위한 타겟 해상도의 중간 이미지를 요구하며 60 fps에서 FHD를 얻을 수 있다.
기계 학습 기반 SI HW 아키텍처는 중간 이미지를 필요로 하지 않고 고주파 복원을 통해 HR 이미지를 직접 복원하는 엣지 방향 분석을 이용한 선형 매핑을 기반으로 할 수 있다.
이미지 처리 장치(10)는 FPGA의 시스템 베릴로그(System Verilog)를 이용하여 구현될 수 있다. 이미지 처리 장치(10)의 출력 클럭 속도는 입력 클럭 속도의 4배일 수 있다. 이는 4K UHD 이상의 FHD 작동 주파수 비율이 대개 1/4 이기 때문일 수 있다.
이미지 처리 장치(10)는 클럭 사이클 당 4 픽셀을 처리하여 60 fps의 4K UHD 비디오 스트림을 지원할 수 있고, 150MHz 타겟 작동 주파수와 Vivado Design Suite 2015.4의 합성 단계 및 P & R(place & routing) 단계에 적용되는 제한 조건에 따라 구현될 수 있다.
또한, 구현된 SR 하드웨어를 검증하기 위해 FHD 입력 및 4K UHD 출력 비디오 인터페이스를 지원하기 위해 Xilinx Kintex UltraScale FPGA KCU105 평가 보드 및 TED의 HDMI 2.0 확장 카드가 사용될 수 있다.
이미지 처리 장치(10)는 두 가지 유형의 SR HW가 제공될 수 있다. 두 가지 유형의 SR HW는 특징맵 압축이 적용되지 않은 유형-1 및 특징맵 압축이 적용된 유형-2일 수 있다.
유형-1에서는 XCKU040 FPGA 장치에서 총 슬라이스 LUT(Slice LUTs)의 45.38% 및 총 슬라이스 레지스터(Slice Registers)의 21.08%를 차지하는 110K 슬라이스 LUT 및 102K 슬라이스 레지스터가 사용될 수 있다.
유형-2에서는 총 슬라이스 LUT의 62.6% 및 총 슬라이스 레지스터의 24.97%에 해당하는 151K 슬라이스 LUT 및 121K 슬라이스 레지스터가 사용될 수 있다.
또한, 유형-1 및 유형-2는 모두 KCU105 평가 보드의 XCKU040 FPGA 장치에서 1,920 DSP 블록을 최대한 활용할 수 있다.
특징맵 압축을 결합함으로써 유형-2는 유형-1의 약 50%의 온칩(onchip) 메모리 사용(예를 들어, FPGA에서의 블록 램)을 줄일 수 있다. 반면, 유형-2는 2 개의 컴프레서(231) 및 6 개의 디컴프레서(235)를 구현하기 위해서 약 38% 슬라이스 LUT 및 약 18%의 슬라이스 레지스터를 유형-1에 비하여 더 사용할 수 있다.
이미지 처리 장치(10)는 비 CNN 기반 SR 방법과 비교하여 더 많은 수의 라인 메모리와 게이트를 필요로 할 수 있지만, 60 fps속도로 실시간으로 상당히 높은 품질의 4K UHD HR 이미지를 복원할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (24)

  1. 이미지를 수신하는 수신기;
    상기 이미지를 라인 단위의 이미지 라인으로 출력하는 적어도 하나의 제1 라인 버퍼(line buffer);
    상기 이미지 라인에 기초하여 컨벌루션 연산을 수행함으로써 특징맵을 생성하는 제1 컨벌루션 연산기; 및
    상기 특징맵을 적어도 하나의 라인 단위로 저장하고, 상기 적어도 하나의 라인 단위로 저장된 특징맵을 2 차원 형태로 출력하도록 처리하는 특징맵 처리기
    를 포함하고,
    상기 라인 단위는 1×n의 블록 크기를 가지고, n은 2 이상의 정수인 데이터 단위를 포함하는 이미지 처리 장치.
  2. 제1항에 있어서,
    상기 제1 컨벌루션 연산기는,
    잔차 신호를 학습하여 출력하도록 하는 잔차 블록(Residual Block) 내에 구현되는
    이미지 처리 장치.
  3. 제1항에 있어서,
    상기 제1 컨벌루션 연산기는,
    1-D(1-dimensional) 컨벌루션 연산을 수행하는 적어도 하나의 1-D 컨벌루션 연산기
    를 포함하는 이미지 처리 장치.
  4. 제1항에 있어서,
    상기 제1 컨벌루션 연산기는,
    뎁스 와이즈(depth-wise) 컨벌루션 연산기; 및
    상기 뎁스 와이즈 컨벌루션 연산기와 직접적으로 연결된 포인트 와이즈(point-wise) 컨벌루션 연산기
    를 포함하는 이미지 처리 장치.
  5. 제1항에 있어서,
    상기 특징맵 처리기는,
    상기 특징맵을 적어도 하나의 라인 단위로 압축하는 컴프레서(compressor)
    를 포함하는 이미지 처리 장치.
  6. 제5항에 있어서,
    상기 특징맵 처리기는,
    라인 단위로 압축된 특징맵을 저장하는 적어도 하나의 제2 라인 버퍼
    를 더 포함하는 이미지 처리 장치.
  7. 제6항에 있어서,
    상기 특징맵 처리기는,
    상기 라인 단위로 압축된 특징맵을 2 차원 특징맵으로 복원하는 디컴프레서(decompressor)
    를 더 포함하는 이미지 처리 장치.
  8. 제1항에 있어서,
    2차원 형태로 출력된 특징맵에 기초하여 컨벌루션 연산을 수행하는 제2 컨벌루션 연산기
    를 더 포함하는 이미지 처리 장치.
  9. 제8항에 있어서,
    상기 제2 컨벌루션 연산기는,
    2-D(2-dimensional) 컨벌루션 연산을 수행하는 적어도 하나의 2-D 컨벌루션 연산기
    를 포함하는 이미지 처리 장치.
  10. 제8항에 있어서,
    상기 제2 컨벌루션 연산기는,
    뎁스 와이즈(depth-wise) 컨벌루션 연산기; 및
    상기 뎁스 와이즈 컨벌루션 연산기와 직접적으로 연결된 포인트 와이즈(point-wise) 컨벌루션 연산기
    를 포함하는 이미지 처리 장치.
  11. 제1항에 있어서,
    적어도 하나의 컨벌루션 연산 결과를 양자화하는 양자화기
    를 더 포함하는 이미지 처리 장치.
  12. 제1항에 있어서,
    컨벌루션 연산에 사용되는 파라미터를 저장하는 가중치 버퍼
    를 더 포함하는 이미지 처리 장치.
  13. 이미지를 수신하는 단계;
    적어도 하나의 제1 라인 버퍼(line buffer)를 통해 상기 이미지를 라인 단위의 이미지 라인으로 출력하는 단계;
    상기 이미지 라인에 기초하여 제1 컨벌루션 연산을 수행함으로써 특징맵을 생성하는 단계; 및
    상기 특징맵을 적어도 하나의 라인 단위로 저장하고, 상기 적어도 하나의 라인 단위로 저장된 특징맵을 2 차원 형태로 출력하도록 상기 특징맵을 처리하는 단계
    를 포함하고,
    상기 라인 단위는 1×n의 블록 크기를 가지고, n은 2 이상의 정수인 데이터 단위를 포함하는 이미지 처리 방법.
  14. 제13항에 있어서,
    상기 제1 컨벌루션 연산은,
    잔차 신호를 학습하여 출력하도록 하는 잔차 블록(Residual Block)내에서 수행되는
    이미지 처리 방법.
  15. 제13항에 있어서,
    상기 생성하는 단계는,
    적어도 한 번의 1-D(1-dimensional) 컨벌루션 연산을 수행하는 단계
    를 포함하는 이미지 처리 방법.
  16. 제13항에 있어서,
    상기 생성하는 단계는,
    뎁스 와이즈(depth-wise) 컨벌루션 연산을 수행하는 단계; 및
    상기 뎁스 와이즈 컨벌루션 연산 결과를 직접적으로 포인트 와이즈(point-wise) 컨벌루션 연산하는 단계
    를 포함하는 이미지 처리 방법.
  17. 제13항에 있어서,
    상기 처리하는 단계는,
    상기 특징맵을 적어도 하나의 라인 단위로 압축하는 단계
    를 포함하는 이미지 처리 방법.
  18. 제17항에 있어서,
    상기 처리하는 단계는,
    적어도 하나의 라인 단위로 압축된 특징맵을 저장하는 단계
    를 더 포함하는 이미지 처리 방법.
  19. 제18항에 있어서,
    상기 처리하는 단계는,
    상기 적어도 하나의 라인 단위로 압축된 특징맵을 2 차원 특징맵으로 복원하는 단계
    를 더 포함하는 이미지 처리 방법.
  20. 제13항에 있어서,
    2차원 형태로 출력된 특징맵에 기초하여 제2 컨벌루션 연산을 수행하는 단계
    를 더 포함하는 이미지 처리 방법.
  21. 제20항에 있어서,
    상기 수행하는 단계는,
    적어도 한 번의 2-D(2-dimensional) 컨벌루션 연산을 수행하는 단계
    를 포함하는 이미지 처리 방법.
  22. 제20항에 있어서,
    상기 수행하는 단계는,
    뎁스 와이즈(depth-wise) 컨벌루션 연산을 수행하는 단계; 및
    상기 뎁스 와이즈 컨벌루션 연산 결과를 직접적으로 포인트 와이즈(point-wise) 컨벌루션 연산하는 단계
    를 포함하는 이미지 처리 방법.
  23. 제13항에 있어서,
    적어도 하나의 컨벌루션 연산 결과를 양자화하는 단계
    를 더 포함하는 이미지 처리 방법.
  24. 제13항에 있어서,
    컨벌루션 연산에 사용되는 파라미터를 저장하는 단계
    를 더 포함하는 이미지 처리 방법.
KR1020180091482A 2018-01-16 2018-08-06 라인 단위 연산을 이용한 초해상화 방법 및 장치 KR102017995B1 (ko)

Priority Applications (9)

Application Number Priority Date Filing Date Title
US16/961,688 US11412175B2 (en) 2018-01-16 2018-12-12 Super-resolution method and device using linewise operation
PCT/KR2018/015733 WO2019143024A1 (ko) 2018-01-16 2018-12-12 라인 단위 연산을 이용한 초해상화 방법 및 장치
AU2018102147A AU2018102147A4 (en) 2018-01-16 2018-12-12 Method and apparatus for super-resolution using line unit operation
AU2018357828A AU2018357828A1 (en) 2018-01-16 2018-12-12 Method and apparatus for super-resolution using line unit operation
AU2019101270A AU2019101270A4 (en) 2018-01-16 2019-10-21 Method and apparatus for super-resolution using line unit operation
AU2019101274A AU2019101274A4 (en) 2018-01-16 2019-10-21 Method and apparatus for super-resolution using line unit operation
AU2019101271A AU2019101271A4 (en) 2018-01-16 2019-10-21 Method and apparatus for super-resolution using line unit operation
AU2019101273A AU2019101273A4 (en) 2018-01-16 2019-10-21 Method and apparatus for super-resolution using line unit operation
AU2019101272A AU2019101272A4 (en) 2018-01-16 2019-10-21 Method and apparatus for super-resolution using line unit operation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180005783 2018-01-16
KR20180005783 2018-01-16

Publications (2)

Publication Number Publication Date
KR20190087262A KR20190087262A (ko) 2019-07-24
KR102017995B1 true KR102017995B1 (ko) 2019-09-03

Family

ID=67481110

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020180091484A KR102017997B1 (ko) 2018-01-16 2018-08-06 특징맵 압축을 이용한 이미지 처리 방법 및 장치
KR1020180091482A KR102017995B1 (ko) 2018-01-16 2018-08-06 라인 단위 연산을 이용한 초해상화 방법 및 장치
KR1020180091483A KR102017996B1 (ko) 2018-01-16 2018-08-06 라인 입력 및 출력을 이용한 이미지 처리 방법 및 장치
KR1020180091485A KR102017998B1 (ko) 2018-01-16 2018-08-06 이미지 파이프라인 처리 방법 및 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020180091484A KR102017997B1 (ko) 2018-01-16 2018-08-06 특징맵 압축을 이용한 이미지 처리 방법 및 장치

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020180091483A KR102017996B1 (ko) 2018-01-16 2018-08-06 라인 입력 및 출력을 이용한 이미지 처리 방법 및 장치
KR1020180091485A KR102017998B1 (ko) 2018-01-16 2018-08-06 이미지 파이프라인 처리 방법 및 장치

Country Status (3)

Country Link
US (4) US11412175B2 (ko)
KR (4) KR102017997B1 (ko)
AU (1) AU2018102147A4 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019143026A1 (ko) 2018-01-16 2019-07-25 한국과학기술원 특징맵 압축을 이용한 이미지 처리 방법 및 장치
KR102017997B1 (ko) * 2018-01-16 2019-09-03 한국과학기술원 특징맵 압축을 이용한 이미지 처리 방법 및 장치
WO2019143027A1 (ko) * 2018-01-16 2019-07-25 한국과학기술원 이미지 파이프라인 처리 방법 및 장치
CN112272832A (zh) * 2018-05-28 2021-01-26 三星电子株式会社 用于基于dnn的成像的方法和系统
WO2020051776A1 (en) * 2018-09-11 2020-03-19 Intel Corporation Method and system of deep supervision object detection for reducing resource usage
KR102553146B1 (ko) * 2018-09-13 2023-07-07 삼성전자주식회사 영상 처리 장치 및 그 동작방법
KR20200127766A (ko) * 2019-05-03 2020-11-11 삼성전자주식회사 영상 처리 장치 및 그 영상 처리 방법
KR102496734B1 (ko) * 2019-10-22 2023-02-06 에스앤즈 주식회사 분산환경 패킷 전송 기반의 스트리밍 데이터 딥러닝 처리 가속화 시스템 및 이를 이용한 멀티 로케이션 멀티 스트리밍 이상상태 탐지 시스템
CN110782395B (zh) * 2019-10-28 2024-02-09 西安电子科技大学 图像处理方法及装置、电子设备和计算机可读存储介质
CN112967338A (zh) * 2019-12-13 2021-06-15 宏达国际电子股份有限公司 影像处理系统及影像处理方法
KR20210122337A (ko) 2020-03-30 2021-10-12 주식회사 실리콘웍스 슬라이스 이미지 기반의 해상도 업스케일링 장치 및 방법
KR102339011B1 (ko) * 2020-04-27 2021-12-14 계명대학교 산학협력단 자율차량에서 주야간 보행자 감지를 위한 적응적 스위처 및 이를 이용한 보행자 감지 장치
KR102393629B1 (ko) 2020-04-29 2022-05-02 연세대학교 산학협력단 다중 디콘볼루션 레이어를 갖는 인공 신경망을 이용하는 이미지 업스케일링 장치 및 이의 디콘볼루션 레이어 다중화 방법
KR102494565B1 (ko) 2020-05-20 2023-01-31 연세대학교 산학협력단 콘볼루션 신경망의 하드웨어 구조 최적화 방법
WO2022075754A1 (ko) * 2020-10-06 2022-04-14 한국항공대학교산학협력단 머신비전을 위한 영상의 처리 방법 및 장치
KR20220046796A (ko) * 2020-10-08 2022-04-15 삼성전자주식회사 전자 장치 및 그 제어 방법
CN114830168A (zh) * 2020-11-16 2022-07-29 京东方科技集团股份有限公司 图像重建方法、电子设备和计算机可读存储介质
AU2020281143B1 (en) * 2020-12-04 2021-03-25 Commonwealth Scientific And Industrial Research Organisation Creating super-resolution images
KR20220114890A (ko) * 2021-02-09 2022-08-17 한국과학기술정보연구원 뉴럴 네트워크 연산 방법 및 이를 위한 장치
EP4064133A3 (en) * 2021-03-24 2022-12-28 Samsung Electronics Co., Ltd. Method for optimising a machine learning model for image processing
AU2021202142A1 (en) * 2021-04-07 2022-10-27 Canon Kabushiki Kaisha Tool selection for feature map encoding vs regular video encoding
AU2021202141A1 (en) * 2021-04-07 2022-10-27 Canon Kabushiki Kaisha 4:2:0 packing of feature maps
KR102320431B1 (ko) * 2021-04-16 2021-11-08 주식회사 휴런 의료 영상 기반 종양 검출 및 진단 장치
KR102623109B1 (ko) * 2021-09-10 2024-01-10 중앙대학교 산학협력단 합성곱 신경망 모델을 이용한 3차원 의료 영상 분석 시스템 및 방법

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838299A (en) 1995-05-03 1998-11-17 Apple Computer, Inc. RGB/YUV video convolution system
US6563544B1 (en) 1999-09-10 2003-05-13 Intel Corporation Combined vertical filter for graphic displays
KR20060077196A (ko) * 2004-12-30 2006-07-05 매그나칩 반도체 유한회사 필터 모듈
US20060215929A1 (en) 2005-03-23 2006-09-28 David Fresneau Methods and apparatus for image convolution
JP5326943B2 (ja) * 2009-08-31 2013-10-30 ソニー株式会社 画像処理装置、および画像処理方法、並びにプログラム
US20130083844A1 (en) 2011-09-30 2013-04-04 In Suk Chong Coefficient coding for sample adaptive offset and adaptive loop filter
US9721319B2 (en) * 2011-10-14 2017-08-01 Mastercard International Incorporated Tap and wireless payment methods and devices
KR101677242B1 (ko) 2014-02-18 2016-11-17 한국전자통신연구원 컨볼루션 기법 기반의 고속 적응적 샘플 오프셋 필터링 장치 및 방법
KR102276854B1 (ko) 2014-07-31 2021-07-13 삼성전자주식회사 인루프 필터 파라미터 예측을 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
US10614354B2 (en) * 2015-10-07 2020-04-07 Altera Corporation Method and apparatus for implementing layers on a convolutional neural network accelerator
KR102309910B1 (ko) * 2015-11-19 2021-10-08 한국전자기술연구원 비디오 부호화기의 최적 모드 결정 장치 및 최적 모드 결정을 이용한 비디오 부호화 방법
CN108475331B (zh) 2016-02-17 2022-04-05 英特尔公司 用于对象检测的方法、装置、系统和计算机可读介质
KR101974261B1 (ko) * 2016-06-24 2019-04-30 한국과학기술원 Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치
US10394929B2 (en) 2016-12-20 2019-08-27 Mediatek, Inc. Adaptive execution engine for convolution computing systems
KR20180073314A (ko) 2016-12-22 2018-07-02 삼성전자주식회사 컨볼루션 신경망 시스템 및 그것의 동작 방법
US10726583B2 (en) 2016-12-30 2020-07-28 Intel Corporation System and method of encoding and decoding feature maps and weights for a convolutional neural network
CN107704922B (zh) 2017-04-19 2020-12-08 赛灵思公司 人工神经网络处理装置
KR102301232B1 (ko) * 2017-05-31 2021-09-10 삼성전자주식회사 다채널 특징맵 영상을 처리하는 방법 및 장치
US10699160B2 (en) * 2017-08-23 2020-06-30 Samsung Electronics Co., Ltd. Neural network method and apparatus
AU2017279610A1 (en) * 2017-12-19 2019-07-04 Canon Kabushiki Kaisha Memory access optimisation using per-layer computational mapping and memory allocation for CNN application
WO2019143027A1 (ko) 2018-01-16 2019-07-25 한국과학기술원 이미지 파이프라인 처리 방법 및 장치
WO2019143026A1 (ko) 2018-01-16 2019-07-25 한국과학기술원 특징맵 압축을 이용한 이미지 처리 방법 및 장치
AU2018357828A1 (en) 2018-01-16 2019-08-01 Korea Advanced Institute Of Science And Technology Method and apparatus for super-resolution using line unit operation
KR102017997B1 (ko) 2018-01-16 2019-09-03 한국과학기술원 특징맵 압축을 이용한 이미지 처리 방법 및 장치
US10411709B1 (en) * 2018-07-25 2019-09-10 Xilinx, Inc. Circuit arrangements and methods for dividing a three-dimensional input feature map
WO2020033967A1 (en) 2018-08-10 2020-02-13 Buffalo Automation Group Inc. Training a deep learning system for maritime applications
KR20210079785A (ko) * 2019-12-20 2021-06-30 삼성전자주식회사 뉴럴 네트워크의 컨볼루션 연산 처리 방법 및 장치

Also Published As

Publication number Publication date
US20210082087A1 (en) 2021-03-18
KR102017998B1 (ko) 2019-09-03
KR20190087262A (ko) 2019-07-24
US20210065334A1 (en) 2021-03-04
US20210366081A1 (en) 2021-11-25
KR102017997B1 (ko) 2019-09-03
US11057585B2 (en) 2021-07-06
US11974069B2 (en) 2024-04-30
AU2018102147A4 (en) 2019-12-05
KR20190087263A (ko) 2019-07-24
KR20190087265A (ko) 2019-07-24
US11412175B2 (en) 2022-08-09
KR20190087264A (ko) 2019-07-24
US11968472B2 (en) 2024-04-23
US20200336699A1 (en) 2020-10-22
KR102017996B1 (ko) 2019-09-03

Similar Documents

Publication Publication Date Title
KR102017995B1 (ko) 라인 단위 연산을 이용한 초해상화 방법 및 장치
US11962937B2 (en) Method and device of super resolution using feature map compression
US11956569B2 (en) Image processing method and device using a line-wise operation
AU2019101273A4 (en) Method and apparatus for super-resolution using line unit operation
KR20160021417A (ko) 공간적으로 확장 가능한 비디오 코딩을 위한 적응적 보간
CN105847800A (zh) 基于全相位离散正弦双正交变换的图像压缩方法及系统
AU2002259268C1 (en) Apparatus and method for encoding and computing a discrete cosine transform using a butterfly processor
RU2624464C1 (ru) Порядки сканирования для кодирования без преобразования
CN105163130B (zh) 一种基于离散Tchebichef正交多项式的图像无损压缩方法
De Silva et al. Exploring the Implementation of JPEG Compression on FPGA
Thayammal et al. Multispectral band image compression using adaptive wavelet transform-tetrolet transform
WO2023185806A1 (zh) 一种图像编解码方法、装置、电子设备及存储介质
Al-Azawi Efficient architectures for multidimensional discrete transforms in image and video processing applications
Suresh et al. An Efficient VLSI Implementation of De-Blocking Filter with CSLA for H. 264
Mandloi et al. An efficient implementation of 2-D discrete wavelet transform for high speed DSP applications
CN113196779A (zh) 视频片段压缩的方法与装置
Swamy et al. Low-Complexity and High-Quality Image Compression Algorithm for Onboard Satellite
Hunt Image coding using orthogonal basis functions

Legal Events

Date Code Title Description
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