KR101998036B1 - Artifact reduction method and apparatus - Google Patents
Artifact reduction method and apparatus Download PDFInfo
- Publication number
- KR101998036B1 KR101998036B1 KR1020180155090A KR20180155090A KR101998036B1 KR 101998036 B1 KR101998036 B1 KR 101998036B1 KR 1020180155090 A KR1020180155090 A KR 1020180155090A KR 20180155090 A KR20180155090 A KR 20180155090A KR 101998036 B1 KR101998036 B1 KR 101998036B1
- Authority
- KR
- South Korea
- Prior art keywords
- distortion
- input data
- path
- compression
- subnetworks
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
왜곡 제거 방법 및 장치가 개시된다. 일 실시예에 따른. 일 실시예에 따른 왜곡 제거 방법은, 입력 데이터를 수신하는 단계와, 뉴럴 네트워크로 상기 입력 데이터의 왜곡의 정도를 판별하고, 상기 왜곡의 정도에 기초하여 바이패스(bypass) 및 복수의 서브 네트워크 중에서 적어도 하나의 경로를 선택하는 단계와, 상기 적어도 하나의 경로로 상기 입력 데이터를 인가함으로써 상기 왜곡을 제거하는 단계를 포함한다.A distortion canceling method and apparatus are disclosed. According to one embodiment. According to an embodiment of the present invention, there is provided a distortion canceling method comprising the steps of: receiving input data; determining a degree of distortion of the input data by a neural network; determining, based on the degree of distortion, Selecting at least one path and removing the distortion by applying the input data to the at least one path.
Description
아래 실시예들은 왜곡을 제거하는 방법 및 장치에 관한 것이다.The following embodiments are directed to a method and apparatus for removing distortion.
제한된 저장 및 전송 대역폭으로 이미지 및 비디오를 저장하고 전달하려면 손실이 발생하는 비디오 압축이 필수적이다. 이미지와 비디오의 압축률이 높을수록 성능 저하는 더 커진다.Lossy video compression is essential to store and deliver images and video with limited storage and transmission bandwidth. The higher the compression rate of the image and video, the greater the performance degradation.
높은 압축비로 압축을 수행할 경우, 블로킹(blocking), 컨투어링(contouring), 블러링(blurring) 및 링잉(ringing) 효과와 같은 코딩 아티팩트가 발생할 수 있다.When performing compression with a high compression ratio, coding artifacts such as blocking, contouring, blurring and ringing effects can occur.
최근 CNN(Convolutional Neural Network) 기반의 방법들이 이미지 분류 및 객체 검출과 같은 높은 수준의 컴퓨터 비전 문제를 위해 연구되고 있다.Recently, CNN (Convolutional Neural Network) based methods have been studied for high level computer vision problems such as image classification and object detection.
압축 영상의 왜곡을 제거함에 있어서, QP(Quantization Parameter) 정보를 이용하여 고정된 QP의 압축 왜곡을 제거하는 네트워크를 학습하여 해당 QP의 압축 영상에 대해서만 압축 왜곡 제거가 가능한 문제점이 있다. 이에 따라 다른 QP 영상이 입력되면 효과적인 압축 왜곡 제거를 할 수 없다는 단점이 있다.In eliminating the distortion of the compressed image, there is a problem that the compression distortion can be removed only for the compressed image of the QP by learning a network that removes the compression distortion of the fixed QP using the QP (Quantization Parameter) information. Accordingly, when another QP image is input, effective compression distortion can not be removed.
실시예들은 압축 왜곡을 제거하는 기술을 제공할 수 있다.Embodiments can provide a technique for eliminating compression distortion.
일 실시예에 따른 왜곡 제거 방법은, 입력 데이터를 수신하는 단계와, 뉴럴 네트워크로 상기 입력 데이터의 왜곡의 정도를 판별하고, 상기 왜곡의 정도에 기초하여 바이패스(bypass) 및 복수의 서브 네트워크 중에서 적어도 하나의 경로를 선택하는 단계와, 상기 적어도 하나의 경로로 상기 입력 데이터를 인가함으로써 상기 왜곡을 제거하는 단계를 포함한다.According to an embodiment of the present invention, there is provided a distortion canceling method comprising the steps of: receiving input data; determining a degree of distortion of the input data by a neural network; determining, based on the degree of distortion, Selecting at least one path and removing the distortion by applying the input data to the at least one path.
상기 수신하는 단계는, 상이한 양자화 파라미터(quantization parameter) 값에 의해 압축된 복수의 입력 데이터를 수신하는 단계를 포함할 수 있다.The receiving may comprise receiving a plurality of input data compressed by a different quantization parameter value.
상기 선택하는 단계는, 상기 입력 데이터를 패치 블록 단위로 분할하는 단계와, 상기 패치 블록의 압축 왜곡의 양, 압축 왜곡 타입, 압축 타입 및 양자화 파라미터 중 적어도 하나에 기초하여 상기 패치 블록의 카테고리를 분류하는 단계와, 상기 카테고리에 기초하여 상기 적어도 하나의 경로를 선택하는 단계를 포함할 수 있다.Wherein the step of selecting includes classifying the category of the patch block based on at least one of a compression distortion amount, a compression distortion type, a compression type, and a quantization parameter of the patch block, And selecting the at least one route based on the category.
상기 적어도 하나의 경로를 선택하는 단계는, 상기 바이패스 및 상기 복수의 서브 네트워크의 출력을 비교하여 상기 왜곡이 가장 적은 경로를 선택하는 단계를 포함할 수 있다.The selecting of the at least one path may include comparing the outputs of the bypass and the plurality of subnetworks and selecting the path with the smallest distortion.
상기 선택하는 단계는, 선택된 경로를 출력하도록 상기 뉴럴 네트워크를 학습시키는 단계를 더 포함할 수 있다.The selecting may further include learning the neural network to output the selected path.
상기 복수의 서브 네트워크 중 적어도 하나는 잔차 블록(residual block)을 포함하는 컨벌루션 뉴럴 네트워크로 구현될 수 있다.At least one of the plurality of subnetworks may be implemented as a convolution neural network including a residual block.
상기 제거하는 단계는, 상기 적어도 하나의 경로로 상기 패치 블록을 통과시켜 상기 왜곡을 제거하는 단계와, 왜곡이 제거된 패치 블록으로부터 왜곡이 제거된 입력 데이터를 생성하는 단계를 포함할 수 있다.The removing may include passing the patch block through the at least one path to remove the distortion, and generating input data from which the distortion has been removed from the distorted patch block.
상기 패치 블록을 통과시켜 상기 왜곡을 제거하는 단계는, 상기 적어도 하나의 경로에 기초하여 상기 패치 블록의 카테고리 정보를 생성하는 단계를 포함할 수 있다.The step of passing the patch block to remove the distortion may include generating category information of the patch block based on the at least one path.
상기 복수의 서브 네트워크는, 상기 입력 데이터의 부호화 타입에 따라 상이하게 학습될 수 있다.The plurality of subnetworks can be learned differently depending on the encoding type of the input data.
일 실시예에 따른 왜곡 제거 장치(10)는 입력 데이터를 수신하는 수신기와, 뉴럴 네트워크로 상기 입력 데이터의 왜곡의 정도를 판별하고, 상기 왜곡의 정도에 기초하여 바이패스(bypass) 및 복수의 서브 네트워크 중에서 적어도 하나의 경로를 선택하고, 상기 적어도 하나의 경로로 상기 입력 데이터를 인가함으로써 상기 왜곡을 제거하는 프로세서를 포함한다.A distortion canceling apparatus (10) according to an embodiment includes a receiver for receiving input data, a neural network for determining the degree of distortion of the input data, and a bypass and a plurality of sub- And a processor for selecting at least one path from the network and removing the distortion by applying the input data to the at least one path.
상기 수신기는, 상이한 양자화 파라미터(quantization parameter) 값에 의해 압축된 복수의 입력 데이터를 수신할 수 있다.The receiver may receive a plurality of input data compressed by different quantization parameter values.
상기 프로세서는, 상기 입력 데이터를 패치 블록 단위로 분할하고, 상기 패치 블록의 압축 왜곡의 양, 압축 왜곡 타입, 압축 타입 및 양자화 파라미터 중 적어도 하나에 기초하여 상기 패치 블록의 카테고리를 분류하고, 상기 카테고리에 기초하여 상기 적어도 하나의 경로를 선택할 수 있다.Wherein the processor divides the input data into patch blocks and classifies the categories of the patch blocks based on at least one of a compression distortion amount, a compression distortion type, a compression type, and a quantization parameter of the patch block, Lt; RTI ID = 0.0 > a < / RTI >
상기 프로세서는, 상기 바이패스 및 상기 복수의 서브 네트워크의 출력을 비교하여 상기 왜곡이 가장 적은 경로를 선택할 수 있다.The processor can compare the outputs of the bypass and the plurality of subnetworks to select the path with the least distortion.
상기 프로세서는, 선택된 경로를 출력하도록 상기 뉴럴 네트워크를 학습시킬 수 있다.The processor may learn the neural network to output the selected path.
상기 복수의 서브 네트워크 중 적어도 하나는 잔차 블록(residual block)을 포함하는 컨벌루션 뉴럴 네트워크로 구현될 수 있다.At least one of the plurality of subnetworks may be implemented as a convolution neural network including a residual block.
상기 프로세서는, 상기 적어도 하나의 경로로 상기 패치 블록을 통과시켜 상기 왜곡을 제거하고, 왜곡이 제거된 패치 블록으로부터 왜곡이 제거된 입력 데이터를 생성할 수 있다.The processor may pass the patch block through the at least one path to remove the distortion and generate input data from which distortion is removed from the distorted patch block.
상기 프로세서는, 상기 적어도 하나의 경로에 기초하여 상기 패치 블록의 카테고리 정보를 생성할 수 있다.The processor may generate category information of the patch block based on the at least one path.
상기 복수의 서브 네트워크는, 상기 입력 데이터의 부호화 타입에 따라 상이하게 학습될 수 있다.The plurality of subnetworks can be learned differently depending on the encoding type of the input data.
도 1은 일 실시예에 따른 왜곡 제거 장치의 개략적인 블록도를 나타낸다.
도 2는 도 1에 도시된 왜곡 제거 장치의 동작을 나타낸다.
도 3a는 도 1에 도시된 왜곡 제거 장치가 경로를 선택하는 동작을 나타낸다.
도 3b는 도 1에 도시된 왜곡 제거 장치가 왜곡을 제거하는 동작을 나타낸다.
도 4는 도 1에 도시된 왜곡 제거 장치가 경로를 선택하기 위해 사용하는 뉴럴 네트워크의 구조의 예를 나타낸다.
도 5는 도 1에 도시된 왜곡 제거 장치가 왜곡을 제거하기 위해 사용하는 뉴럴 네트워크의 구조의 예를 나타낸다.
도 6은 도 1에 도시된 왜곡 제거 장치가 왜곡 제거를 위한 네트워크를 학습시키는 동작의 일 예를 나타낸다.
도 7은 도 1에 도시된 왜곡 제거 장치가 왜곡 제거를 위한 뉴럴 네트워크를 학습시키는 동작의 다른 예를 나타낸다.
도 8은 도 1에 도시된 왜곡 제거 장치가 경로 선택을 위한 뉴럴 네트워크를 학습시키는 동작의 예를 나타낸다.
도 9a는 도 1에 도시된 왜곡 제거 장치를 이용한 인코더의 일 예를 나타낸다.
도 9b는 도 1에 도시된 왜곡 제거 장치를 이용한 인코더의 다른 예를 나타낸다.
도 9c는 도 1에 도시된 왜곡 제거 장치를 이용한 인코더의 또 다른 예를 나타낸다.
도 10a는 도 1에 도시된 왜곡 제거 장치를 이용한 디코더의 일 예를 나타낸다.
도 10b는 도 1에 도시된 왜곡 제거 장치를 이용한 디코더의 다른 예를 나타낸다.
도 10c는 도 1에 도시된 왜곡 제거 장치를 이용한 디코더의 또 다른 예를 나타낸다.
도 11a는 전 화면 내 구조(all intra configuration)에 도 1에 도시된 왜곡 제거 장치를 적용한 예를 나타낸다.
도 11b는 저지연 구조(low delay configuration)에 도 1에 도시된 왜곡 제거 장치를 적용한 예를 나타낸다.
도 12a는 왜곡을 제거하는 제1 서브 네트워크의 PSNR 성능의 예를 나타낸다.
도 12b는 왜곡을 제거하는 제2 서브 네트워크의 PSNR 성능의 예를 나타낸다.
도 12c는 왜곡을 제거하는 제3 서브 네트워크의 PSNR 성능의 예를 나타낸다.
도 12d는 왜곡을 제거하는 제4 서브 네트워크의 PSNR 성능의 예를 나타낸다.
도 12e는 왜곡을 제거하는 제5 서브 네트워크의 PSNR 성능의 예를 나타낸다.
도 12f는 왜곡을 제거하는 제6 서브 네트워크의 PSNR 성능의 예를 나타낸다.
도 13a는 압축 전 데이터의 일 예를 나타낸다.
도 13b는 HEVC 압축된 데이터의 일 예를 나타낸다.
도 13c는 DCAD에 의해 왜곡이 제거된 데이터의 일 예를 나타낸다.
도 13d는 도 1에 도시된 왜곡 제거 장치에 의해 왜곡이 제거된 데이터의 일 예를 나타낸다.
도 14a는 압축 전 데이터의 다른 예를 나타낸다.
도 14b는 HEVC 압축된 데이터의 다른 예를 나타낸다.
도 14c는 DCAD에 의해 왜곡이 제거된 데이터의 다른 예를 나타낸다.
도 14d는 도1에 도시된 왜곡 제거 장치에 의해 왜곡이 제거된 데이터의 다른 예를 나타낸다.
도 15a는 압축 전 데이터의 또 다른 예를 나타낸다.
도 15b는 HEVC 압축된 데이터의 또 다른 예를 나타낸다.
도 15c는 DCAD에 의해 왜곡이 제거된 데이터의 또 다른 예를 나타낸다.
도 15d는 도1에 도시된 왜곡 제거 장치에 의해 왜곡이 제거된 데이터의 또 다른 예를 나타낸다.
도 16은 도 1에 도시된 왜곡 제거 장치와 종래 기술들의 PSNR 성능의 비교 결과를 나타낸다.1 shows a schematic block diagram of a distortion elimination apparatus according to an embodiment.
Fig. 2 shows the operation of the distortion canceling apparatus shown in Fig.
3A shows an operation in which the distortion elimination apparatus shown in Fig. 1 selects a path.
Fig. 3B shows an operation in which the distortion elimination apparatus shown in Fig. 1 removes distortion.
Fig. 4 shows an example of the structure of a neural network that the distortion elimination apparatus shown in Fig. 1 uses to select a route.
Fig. 5 shows an example of the structure of a neural network used by the distortion elimination apparatus shown in Fig. 1 to remove distortion.
Fig. 6 shows an example of an operation in which the distortion elimination apparatus shown in Fig. 1 learns a network for distortion elimination.
Fig. 7 shows another example of an operation in which the distortion elimination apparatus shown in Fig. 1 learns a neural network for distortion elimination.
Fig. 8 shows an example of an operation in which the distortion canceling apparatus shown in Fig. 1 learns a neural network for path selection.
9A shows an example of an encoder using the distortion removal apparatus shown in FIG.
Fig. 9B shows another example of the encoder using the distortion canceling apparatus shown in Fig.
FIG. 9C shows another example of the encoder using the distortion canceling apparatus shown in FIG.
10A shows an example of a decoder using the distortion removal apparatus shown in FIG.
Fig. 10B shows another example of a decoder using the distortion removal apparatus shown in Fig.
Fig. 10C shows another example of a decoder using the distortion removal apparatus shown in Fig.
FIG. 11A shows an example in which the distortion elimination apparatus shown in FIG. 1 is applied to an all intra configuration.
FIG. 11B shows an example in which the distortion canceling apparatus shown in FIG. 1 is applied to a low delay configuration.
12A shows an example of the PSNR performance of the first sub-network that eliminates distortion.
12B shows an example of the PSNR performance of the second subnetwork for eliminating distortion.
12C shows an example of the PSNR performance of the third sub-network that removes distortion.
12D shows an example of the PSNR performance of the fourth sub-network for eliminating distortion.
12E shows an example of the PSNR performance of the fifth sub-network that eliminates distortion.
12F shows an example of the PSNR performance of the sixth subnetwork for eliminating distortion.
13A shows an example of the data before compression.
13B shows an example of HEVC compressed data.
13C shows an example of data whose distortion is removed by DCAD.
13D shows an example of data whose distortion has been removed by the distortion removal apparatus shown in FIG.
14A shows another example of the data before compression.
14B shows another example of HEVC compressed data.
Fig. 14C shows another example of data whose distortion is removed by DCAD.
Fig. 14D shows another example of data whose distortion has been removed by the distortion removing apparatus shown in Fig.
15A shows another example of the data before compression.
15B shows another example of HEVC compressed data.
Fig. 15C shows another example of data whose distortion is removed by DCAD.
Fig. 15D shows another example of data whose distortion has been removed by the distortion removal apparatus shown in Fig.
16 shows a comparison result of PSNR performance between the distortion elimination apparatus shown in FIG. 1 and the prior art.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.In the following, embodiments will be described in detail with reference to the accompanying drawings. However, various modifications may be made in the embodiments, and the scope of the patent application is not limited or limited by these embodiments. It is to be understood that all changes, equivalents, and alternatives to the embodiments are included in the scope of the right.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for descriptive purposes only and are not to be construed as limiting. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like refer to the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.
제1 또는 제2등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해서 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 실시예의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다. The terms first, second, or the like may be used to describe various elements, but the elements should not be limited by terms. The terms may be named for the purpose of distinguishing one element from another, for example, without departing from the scope of the right according to the concept of the embodiment, the first element being referred to as the second element, The second component may also be referred to as a first component.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this embodiment belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In the following description of the present invention with reference to the accompanying drawings, the same components are denoted by the same reference numerals regardless of the reference numerals, and redundant explanations thereof will be omitted. In the following description of the embodiments, a detailed description of related arts will be omitted if it is determined that the gist of the embodiments may be unnecessarily blurred.
본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.A module in this specification may mean hardware capable of performing the functions and operations according to the respective names described in this specification and may mean computer program codes capable of performing specific functions and operations , Or an electronic recording medium, e.g., a processor or a microprocessor, equipped with computer program code capable of performing certain functions and operations.
다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.In other words, a module may mean a functional and / or structural combination of hardware for carrying out the technical idea of the present invention and / or software for driving the hardware.
도 1은 일 실시예에 따른 왜곡 제거 장치의 개략적인 블록도를 나타낸다.1 shows a schematic block diagram of a distortion elimination apparatus according to an embodiment.
도 1을 참조하면, 왜곡 제거 장치(10)는 입력 데이터를 수신하여 입력 데이터의 왜곡을 제거할 수 있다. 입력 데이터는 컴퓨터가 처리할 수 있는 문자, 숫자 소리, 그림 등의 형태로 된 정보를 포함할 수 있다. 예를 들어, 입력 데이터는 이미지 및 비디오를 포함할 수 있다.Referring to FIG. 1, the
왜곡(distortion 또는 artifact)은 데이터를 압축하면서 발생하는 압축 왜곡(coding artifact)을 포함할 수 있다. 왜곡은 블로킹(blocking), 컨투어링(contouring), 블러링(blurring) 및 링잉(ringing) 효과를 포함할 수 있다.Distortion or artifact may include compression artifacts that occur while compressing data. Distortion may include blocking, contouring, blurring, and ringing effects.
압축은 표준 코덱을 이용한 압축을 의미할 수 있다. 예를 들어, 압축은 HEVC(High Efficiency Video Coding) 표준 코덱을 이용한 압축을 포함할 수 있다.Compression may mean compression using a standard codec. For example, compression may include compression using a High Efficiency Video Coding (HEVC) standard codec.
왜곡 제거 장치(10)는 뉴럴 네트워크를 이용하여 입력 데이터의 왜곡을 제거할 수 있다. 예를 들어, 왜곡 제거 장치(10)는 CNN(Convolutional Neural Network)를 이용하여 입력 데이터의 왜곡을 제거할 수 있다.The
왜곡 제거 장치(10)는 복수의 뉴럴 네트워크를 이용하여 입력 데이터의 왜곡을 제거할 수 있다. 복수의 뉴럴 네트워크는 선택(또는 판별) 서브 네트워크(selector sub network) 및 왜곡 제거를 위한 복수의 서브 뉴럴 네트워크를 포함할 수 있다. 선택 서브 네트워크 및 왜곡 제거를 위한 복수의 서브 뉴럴네트워크는 도 4 및 5를 참조하여 자세하게 설명할 것이다.The
왜곡 제거 장치(10)는 뉴럴 네트워크를 이용하여 입력 데이터의 왜곡 정도에 따라서 입력 데이터를 하나 이상의 카테고리로 분류하여 카테고리 별로 적합한 서브 네트워크를 선택할 수 있다. 왜곡 제거 장치(10)는 선택된 서브 네트워크를 이용하여 입력 데이터의 왜곡을 제거할 수 있다. The
왜곡 제거 장치(10)는 수신기(100), 프로세서(200) 및 메모리(300)를 포함한다. 수신기(100)는 입력 데이터를 수신할 수 있다. 수신기(100)는 상이한 양자화 파라미터(Quantization Parameter, QP) 값에 의해 압축된 복수의 입력 데이터를 수신할 수 있다. 예를 들어, 수신기(100) 22, 27, 32 및 37의 QP 값으로 압축된 입력 데이터를 수신할 수 있다.The
프로세서(200)는 뉴럴 네트워크로 입력 데이터의 왜곡의 정도를 판별하고, 입력 데이터의 왜곡의 정도에 기초하여 바이패스(bypass) 및 복수의 서브 네트워크 중에서 적어도 하나의 경로를 선택할 수 있다. 바이패스는 입력 상태 그대로를 출력하는 경로를 의미할 수 있다. 뉴럴 네트워크는 선택기 서브 네트워크를 포함할 수 있다.The
프로세서(200)는 입력 데이터를 패치 블록 단위로 분할할 수 있다. 프로세서(200)는 패치 블록의 압축 왜곡의 양, 압축 왜곡 타입, 압축 타입 및 양자화 파라미터 중 적어도 하나에 기초하여 상기 패치 블록의 카테고리를 분류할 수 있다.The
프로세서(200)는 분류된 카테고리에 기초하여 적어도 하나의 경로를 선택할 수 있다. 프로세서(200)는 바이패스 및 복수의 서브 네트워크의 출력을 비교하여 왜곡이 가장 적은 경로를 선택할 수 있다. 예를 들어, 프로세서(200)는 바이패스 및 복수의 서브 네트워크의 출력과 압축하기 전의 입력 데이터 간의 차이가 가장 적은 경로를 선택할 수 있다.The
프로세서(200)는 왜곡이 가장 적은 경로를 출력하도록 뉴럴 네트워크를 학습시킬 수 있다. 프로세서(200)는 입력 데이터의 왜곡을 제거하도록 복수의 서브 네트워크를 학습시킬 수 있다. 복수의 서브 네트워크 중 적어도 하나는 잔차 블록(residual block)을 포함하는 컨벌루션 뉴럴 네트워크로 구현될 수 있다.The
복수의 서브 네트워크는 입력 데이터의 부호화 타입에 따라 상이하게 학습될 수 있다. 예를 들어, 부호화 타입은 화면 간 예측 부호화 및 화면 내 예측 부호화를 포함할 수 있다.The plurality of subnetworks can be learned differently depending on the encoding type of the input data. For example, the encoding type may include inter picture prediction coding and intra picture prediction coding.
프로세서(200)는 적어도 하나의 경로로 입력 데이터를 인가함으로써 입력 데이터의 왜곡을 제거할 수 있다. 프로세서(200)는 패치 블록 단위(patch block)로 입력 데이터를 분할할 수 있다. 예를 들어, 프로세서(200)는 128×128 크기의 패치 블록 단위로 입력 데이터를 분할할 수 있다. 프로세서(200)는 패치 데이터를 적어도 하나의 경로로 인가함으로써 입력 데이터의 왜곡을 제거할 수 있다.The
즉, 프로세서(200)는 적어도 하나의 경로로 패치 블록을 통과시켜 왜곡을 제거할 수 있다. 프로세서(200)는 왜곡이 제거된 패치 블록으로부터 왜곡이 제거된 입력 데이터를 생성할 수 있다. 또한, 프로세서(200)는 선택된 적어도 하나의 경로에 기초하여 패치 블록의 카테고리 정보를 생성할 수 있다.That is, the
메모리(300)는 프로세서(200)에 의해 실행될 명령들(instructions), 뉴럴 네트워크의 필터 파라미터, 특징맵 등을 저장할 수 있다. 또한, 메모리(300)는 학습 데이터, 입력 데이터 및 복원된 입력 데이터를 저장할 수 있다.The
도 2는 도 1에 도시된 왜곡 제거 장치의 동작을 나타내고, 도 3a는 도 1에 도시된 왜곡 제거 장치가 경로를 선택하는 동작을 나타내고, 도 3b는 도 1에 도시된 왜곡 제거 장치가 왜곡을 제거하는 동작을 나타낸다.Fig. 2 shows the operation of the distortion elimination apparatus shown in Fig. 1, Fig. 3a shows the operation of selecting the path by the distortion elimination apparatus shown in Fig. 1, Fig. 3b shows the distortion elimination apparatus shown in Fig. .
도 2내지 도 3b를 참조하면, 왜곡 제거 장치(10)는 뉴럴 네트워크(예를 들어, 선택(selector) 서브 네트워크)를 이용하여 입력 데이터의 왜곡을 제거할 서브 네트워크를 선택할 수 있다. 왜곡 제거 장치(10)는 선택된 서브 네트워크를 통해서 입력 데이터의 왜곡을 제거할 수 있다.Referring to Figs. 2 to 3B, the
예를 들어, 왜곡 제거 장치(10)는 도 3a와 같이 선택 서브 네트워크는 입력 데이터의 압축 오류의 정도에 따라 제2 서브 네트워크를 선택할 수 있다. 그 후, 왜곡 제거 장치(10)는 도 3b와 같이 입력 데이터를 제2 서브 네트워크로 인가함으로써 왜곡을 제거할 수 있다.For example, the
일반적으로, HEVC의 압축 왜곡(또는 코딩 아티팩트(artifact))은 변환 계수(transform coefficient)의 양자화로부터 발생할 수 있다. 변환은 블록 단위로 수행되기 때문에 양자화 오류(quantization error)는 동일한 블록의 픽셀의 영향을 받을 수 있다.In general, the compression distortion (or coding artifact) of an HEVC may result from quantization of a transform coefficient. Since the transform is performed on a block-by-block basis, the quantization error can be affected by the pixels of the same block.
HEVC는 압축 효율 향상을 위해 가변 블록 크기 변환 유닛(Transform Units(TUs))을 채택하는데, 왜곡 제거 장치(10)는 다양한 블록 크기 변환 및 양자화로 재구성됨으로써 저하된 프레임(frame)들을 처리할 수 있다.The HEVC employs a variable block size conversion unit (TUs) to improve the compression efficiency, and the
왜곡 제거 장치(10)는 다양한 종류와 다양한 수준의 압축 왜곡을 처리할 수 있다. 구체적으로, 왜곡 제거 장치(10)는 복수의 뉴럴 네트워크를 통해 HEVC의 다양한 QP(Quantization Parameter) 값에 대해 다양한 종류와 다양한 수준의 압축 왜곡을 처리할 수 있다. 이를 통해, 왜곡 제거 장치(10)는 디코딩된 HEVC 비디오에 직접 적용되어 추가 비트를 전송하지 않고도 압축 효율을 크게 향상시킬 수 있다.
왜곡 제거 장치(10)는 복수의 서브 네트워크 및 바이패스로 이루어진 왜곡 제거 경로와, 왜곡 제거 경로를 선택하는 뉴럴 네트워크를 포함할 수 있다. 도 2의 예시에서, 왜곡 제거 장치(10)는 6개의 서브 네트워크, 하나의 바이패스(bypass) 및 하나의 선택 서브 네트워크를 포함할 수 있다.The
선택 서브 네트워크는 6개의 서브 네트워크 및 바이패스 경로 중에서 입력 데이터의 왜곡을 가장 잘 제거하는(또는 가장 잘 복원되는) 경로를 선택할 수 있다. 바이패스는 단순히 입력 데이터가 그대로 출력되는 경로를 의미할 수 있다.The selected subnetwork can select the path that best removes (or is best restored) the distortion of the input data among the six subnetworks and the bypass path. Bypass can simply mean the path through which input data is output as is.
왜곡 제거 장치(10)는 각각의 서브 네트워크를 특정한 범위의 열화 수준을 갖는 학습 프레임 패치로 학습시킬 수 있다. 예를 들어, 제1 서브 네트워크는 가장 적은 왜곡(예를 들어, 품질 손실)을 갖는 학습 패치 그룹으로 학습되고, 제2 서브 네트워크는 다음으로 적은 왜곡을 갖는 학습 패치 그룹으로 학습될 수 있고, 나머지 서브 네트워크도 같은 방식으로 다른 왜곡 정도를 가지는 학습 패치 그룹으로 학습될 수 있다.
필터의 가중치(weight)를 업데이트 할 때마다, 학습 프레임 패치의 멤버십(membership)은 결과로 복원된 출력이 가장 적은 오류를 산출하는 최장의 서브 네트워크에 따라 변경될 수 있다.Each time the filter weight is updated, the membership of the learning frame patch may be changed according to the longest subnetwork that yields the error with the lowest recovered output.
복수의 서브 네트워크 각각은 컨벌루션 뉴럴 네트워크로 구현될 수 있다. 예를 들어, 각각의 서브 네트워크는 앞과 뒤의 두 개의 단일 컨벌루션 레이어와 ResNets으로 구성된 7개의 4-레이어 잔차 블록(4-layered residual block)으로 구성될 수 있다. 학습 중에 서브 네트워크들은 다양한 QP 값(22, 27, 32, 37, 42 및 47)에서 HEVC에 의해 압축된 입력 프레임 패치를 수신할 수 있다.Each of the plurality of subnetworks may be implemented as a convolution neural network. For example, each subnetwork may be composed of four single-convolutional layers, front and back, and four 4-layered residual blocks, consisting of ResNets. During learning, the subnetworks may receive input frame patches compressed by the HEVC at various QP values (22, 27, 32, 37, 42 and 47).
각 입력 패치의 압축 오류에 따라 선택 서브 네트워크는 가장 적절한 서브 네트워크 또는 바이패스 중 하나의 경로를 선택하여 출력 오류가 가장 적은 경로를 선택할 수 있다. 출력 오류란 원본 데이터와 서브 네트워크에 의해 왜곡이 제거된 데이터 간의 차이를 의미할 수 있다.Depending on the compression error of each input patch, the selected subnetwork can select one of the most appropriate subnetworks or bypasses and select the path with the least output error. An output error can mean the difference between the original data and the distortion-free data by the subnetwork.
모든 학습 프레임 패치에 대하여 가장 적절한 경로가 선택될 수 있고, 왜곡 제거 장치(10)는 각 서브 네트워크의 필터 파라미터를 학습 프레임 패치에 의해 업데이트할 수 있다. 이를 통해, 복수의 서브 네트워크들은 각자 할당된 범위의 압축 오류 수준의 입력 패치들을 복원하는데 집중할 수 있다.The most appropriate path for all the learning frame patches can be selected and the
압축 오류가 있는 입력 패치는 원래의 패치와 유사하기 때문에 종래의 서브 네트워크에 잔여 학습을 통합하여 VDSR(Very Deep Super Resolution)과 유사하게 왜곡된 입력 패치와 출력 간의 차이점이 학습될 수 있다.Since the input patches with compression errors are similar to the original patches, we can learn the difference between distorted input patches and outputs similar to VDSR (Very Deep Super Resolution) by incorporating residual learning into conventional subnetworks.
도 4는 도 1에 도시된 왜곡 제거 장치가 경로를 선택하기 위해 사용하는 뉴럴 네트워크의 구조의 예를 나타낸다.Fig. 4 shows an example of the structure of a neural network that the distortion elimination apparatus shown in Fig. 1 uses to select a route.
도 4를 참조하면, 복수의 서브 네트워크 각각은 컨벌루션 뉴럴 네트워크로 구성될 수 있다. 서브 네트워크는 HEVC-인프라 압축으로 인코딩된 YCbCr 입력의 Y 채널에 대해서만 학습될 수 있다.Referring to FIG. 4, each of the plurality of subnetworks may be configured as a convolution neural network. The subnetwork can only be learned for the Y channel of the YCbCr input encoded with HEVC-infrastructure compression.
각 서브 네트워크는 2 개의 단일 컨벌루션 레이어와 7 개의 4-레이어 잔차 블록으로 구성될 수 있다. 첫 번째 컨벌루션 레이어는 128×128 크기의 단일 Y 채널 입력 패치를 입력 받아서 5×5 크기의 64 개의 필터를 이용하여 64 개의 특징맵을 출력으로 생성할 수 있다. 마지막 컨벌루션 레이어는 64 개의 특징맵을 입력으로 사용하여 3×3 크기의 단일 필터를 이용하여 128×128 크기의 복원된 출력을 생성할 수 있다.Each subnetwork may be composed of two single convolution layers and seven 4-layer residual blocks. The first convolution layer can receive 64 single-channel input patches of 128 × 128 size and generate 64 feature maps as output using 64 × 5 × 5 filters. The last convolution layer can generate a 128 x 128 reconstructed output using a single 3x3 filter with 64 feature maps as input.
각각의 잔차 블록은 64 개의 5×5 크기의 필터를 갖는4 개의 컨벌루션 레이어로 구성되고, 4 개의 컨벌루션 레이어는 HEVC의 32×21 변환 유닛(transform unit)의 가장 큰 크기까지 커버하도록 설계될 수 있다.Each residual block consists of four convolutional layers with 64 5x5 filters, and the four convolutional layers can be designed to cover the largest size of the 32x21 transform unit of the HEVC .
각 컨벌루션 레이어의 뒤에는 3×3 크기의 필터를 갖는 마지막 컨벌루션 레이어를 제외한 비선형 활성화를 수행하는 LeakyReLU(Leaky Rectified Linear Unit)이 위치할 수 있다. 마지막 레이어 다음에는 [-1, 1] 범위로 출력 값을 매핑하는 tanh 활성화 함수가 뒤따라서 위치할 수 있다.Each convolution layer may be followed by a LeakyRectified Linear Unit (LeakyReLLU) that performs non-linear activation except for the last convolution layer with a 3x3 filter. The last layer can be followed by a tanh activation function that maps the output value to the [-1, 1] range.
서브 네트워크의 출력은 tanh 활성화 함수의 출력에 각 입력 패치를 추가함으로써 최종적으로 계산될 수 있다. 각 서브 네트워크의 입력은 수학식 1과 같이 표현될 수 있다.The output of the subnetwork can be finally computed by adding each input patch to the output of the tanh activation function. The input of each subnetwork can be expressed as Equation (1).
여기서, 는 HEVC-인트라 압축에 의해 인코딩된 압축 왜곡(coding artifact)을 갖는 입력 패치(예를 들어, 패치 블록)를 의미할 수 있다. 이 때, k 번째 레이어의 출력은 수학식 2와 같이 나타낼 수 있다.here, May refer to an input patch (e. G., A patch block) having a compression artifact encoded by HEVC-Intra compression. At this time, the output of the k-th layer can be expressed by Equation (2).
여기서 W k 는 k 번째 컨벌루션 레이어의 64 개의5×5 컨벌루션 필터를 의미할 수 있고, b k 는 64 채널 출력에 대한 바이어스를 의미할 수 있다. F k -1(·)은 k-1 번째 레이어 연산을 의미할 수 있다. 'max' 연산은 0 < α < 1인 LeakyReLU를 나타낼 수 있다.Where W k may mean 64 5 × 5 convolution filters of the k th convolution layer and b k may mean a bias for 64 channel outputs. F k -1 (·) may mean k-1 th layer operation. The 'max' operation can represent a LeakyReLU with 0 <α <1.
이 때, 마지막을 복원된 출력 I rec 은 수학식 3과 같이 나타낼 수 있다.At this time, the restored output I rec can be expressed by Equation (3).
여기서 W k 는 마지막 컨벌루션 레이어의 3×3 컨벌루션 필터를 의미할 수 있고, b k 는 그들의 바이어스를 의미할 수 있다. I rec 은 서브 네트워크의 출력에 입력 패치를 더함으로써 계산될 수 있다. 복원된 출력은 수학식 4에 의해 최적화함으로써 획득될 수 있다.Where W k may refer to a 3 × 3 convolution filter of the last convolution layer, and b k may refer to their bias. I rec can be calculated by adding an input patch to the output of the subnetwork. The restored output can be obtained by optimization by equation (4).
여기서, θ는 서브 네트워크의 파라미터 셋{W, b}을 의미할 수 있고, l 은 손실 함수를 의미할 수 있다. 손실함수에 대해서 MSE(Mean Squared Error)는 수학식 5와 같이 나타낼 수 있다.Here,? Can mean the subset of network parameter sets { W , b }, where 1 can be a loss function. The MSE (Mean Squared Error) for the loss function can be expressed by Equation (5).
여기서, 및 는 원본 입력 패치 및 복원된 출력에 대한 (x, y) 위치 에서의 픽셀 값을 의미할 수 있다. 이미지 패치 크기는 너비 W=128, 높이 H=128로 설정될 수 있다.here, And May refer to the pixel value at the (x, y) position relative to the original input patch and the reconstructed output. The image patch size can be set to a width W = 128 and a height H = 128.
손실 함수는 역전파(back-propagation)에 의한 미니 배치 경사 하강(mini-batch gradient descent)에 의해 최소화되고 미니 배치의 크기는 16으로 설정될 수 있다.The loss function can be minimized by mini-batch gradient descent by back-propagation and the size of the mini-batch can be set to 16.
도 5는 도 1에 도시된 왜곡 제거 장치가 왜곡을 제거하기 위해 사용하는 뉴럴 네트워크의 구조의 예를 나타낸다.Fig. 5 shows an example of the structure of a neural network used by the distortion elimination apparatus shown in Fig. 1 to remove distortion.
도 5를 참조하면, 왜곡 제거 장치(10)는 뉴럴 네트워크(예를 들어, 선택 서브 네트워크)를 통해 입력 데이터의 왜곡의 정도에 기초하여 왜곡을 제거할 경로를 선택할 수 있다. 입력 데이터는 패치 블록 단위로 분할되어 입력될 수 있다. Referring to Fig. 5, the
선택 서브 네트워크는 가장 적은 오류(또는 손실)에서 각 입력 패치의 압축 왜곡의 제거를 수행하는 가장 적합한 서브 네트워크를 결정할 수 있다. 선택 서브 네트워크는 6 개의 컨벌루션 레이어와 ReLU 활성화 및 4 개의 맥스 풀링 레이어(max pooling layer)로 구성될 수 있다.The selected subnetwork can determine the most suitable subnetwork to perform the removal of compression distortion of each input patch at the least error (or loss). The selected subnetwork can be composed of 6 convolution layers, ReLU activation and 4 max pooling layers.
왜곡 제거 장치(10)는 마지막 맥스 풀링 레이어를 제외하고 맥스 풀링 레이어 이후에 특징맵의 크기를 두 배로 증가시킬 수 있다. 왜곡 제거 장치(10)는 컨벌루션 전에 제로 패딩(zero-padding)을 이용하여 특징 맵의 크기를 동일하게 유지하고, 풀리 커넥티드 레이어(fully connected layer)를 사용할 수 있다. 마지막 레이어에서, 분류 작업(classification task)를 위한 활성화로 소프트맥스(softmax) 함수가 사용될 수 있다.The
도 6은 도1에 도시된 왜곡 제거 장치가 왜곡 제거를 위한 네트워크를 학습시키는 동작의 일 예를 나타낸다.Fig. 6 shows an example of an operation in which the distortion elimination apparatus shown in Fig. 1 learns a network for distortion elimination.
도 6을 참조하면, 왜곡 제거 장치(10)는 입력 데이터를 패치 블록 단위로 분할할 수 있다. 예를 들어, 왜곡 제거 장치(10)는 입력 데이터를 128×128 크기의 패치블록으로 분할할 수 있다.Referring to FIG. 6, the
왜곡 제거 장치(10)는 패치 블록의 왜곡의 정도에 기초하여 패치 블록의 카테고리를 결정할 수 있다. 예를 들어, 왜곡 제거 장치(10)는 패치 블록 내의 압축 왜곡의 양, 압축 왜곡 타입, 패치의 압축 타입(예를 들어, 화면 간 예측 부호화, 화면 내 예측 부호화), 압축 양자화 파라미터 값 중 적어도 하나의 특성을 이용하여 카테고리를 결정할 수 있다. 도 6은 양자화 파라미터 값에 기초하여 서브 네트워크를 선택하는 경우를 나타낼 수 있다.The
도 7은 도1에 도시된 왜곡 제거 장치가 왜곡 제거를 위한 뉴럴 네트워크를 학습시키는 동작의 다른 예를 나타낸다.Fig. 7 shows another example of an operation in which the distortion elimination apparatus shown in Fig. 1 learns a neural network for distortion elimination.
도 7을 참조하면, 왜곡 제거 장치(10)는 입력 데이터에서 무작위로 패치블록을 샘플링할 수 있다. 왜곡 제거 장치(10)는 학습 이미지 패치 블록을 무작위로 추출하여 바이패스 및 복수의 서브 네트워크 중 하나로 인가한 후, 압축 왜곡을 가장 잘 제거하는 경로로 패치블록을 할당하여 학습할 수 있다.Referring to Fig. 7, the
이 때, 압축 왜곡을 가장 잘 제거하는 지 여부는 원본 이미지와 왜곡이 제거된 이미지 간의 차이에 의해 결정될 수 있다. 도 7의 예시와 같이 절대 값 차의 합(sum of absolute difference)가 가장 작은 거리(the smallest distance)를 갖는 경로로 패치 블록을 할당하여 학습시킬 수 있다.At this time, whether to best remove compression distortion can be determined by the difference between the original image and the distorted image. It is possible to perform learning by allocating a patch block to a path having the smallest distance of the sum of absolute differences as shown in FIG.
도 8은 도1에 도시된 왜곡 제거 장치가 경로 선택을 위한 뉴럴 네트워크를 학습시키는 동작의 예를 나타낸다.Fig. 8 shows an example of an operation in which the distortion canceling apparatus shown in Fig. 1 learns a neural network for path selection.
도 8을 참조하면, 선택 서브 네트워크는 왜곡을 가장 잘 제거하는 경로를 선택하도록 학습될 수 있다. 왜곡 제거 장치(10)는 왜곡을 제거하는 복수의 서브 네트워크와 바이패스 경로 중에서 가장 왜곡을 잘 제거하는 경로가 출력되도록 선택 서브 네트워크를 학습시킬 수 있다.Referring to FIG. 8, the selected sub-network may be learned to select a path that best eliminates distortion. The
도 9a는 도 1에 도시된 왜곡 제거 장치를 이용한 인코더의 일 예를 나타내고, 도 9b는 도 1에 도시된 왜곡 제거 장치를 이용한 인코더의 다른 예를 나타내고, 도 9c는 도 1에 도시된 왜곡 제거 장치를 이용한 인코더의 또 다른 예를 나타낸다.FIG. 9A shows an example of an encoder using the distortion elimination device shown in FIG. 1, FIG. 9B shows another example of an encoder using the distortion elimination device shown in FIG. 1, FIG. 9C shows a distortion elimination Lt; RTI ID = 0.0 > encoder. ≪ / RTI >
도 9a 내지 9c를 참조하면, 왜곡 제거 장치(10)는 입력 프레임을 압축하는 인코더에 사용될 수 있다. 왜곡 제거 장치(10)는 SAO(Sample Adaptive Offset)의 출력단에 위치할 수 있다. 다른 실시예에서 왜곡 제거 장치(10)는 SAO가 없이 DF(Deblocking Filter)의 출력단에 위치할 수 있고, 또 다른 실시예로 왜곡 제거 장치(10)는 DF 및 SAO 없이 연결되어 기준 프레임(reference frame)을 출력할 수 있다. Referring to Figs. 9A to 9C, the
도 10a는 도 1에 도시된 왜곡 제거 장치를 이용한 디코더의 일 예를 나타내고, 도 10b는 도 1에 도시된 왜곡 제거 장치를 이용한 디코더의 다른 예를 나타내고, 도 10c는 도 1에 도시된 왜곡 제거 장치를 이용한 디코더의 또 다른 예를 나타낸다.FIG. 10A shows an example of a decoder using the distortion removal apparatus shown in FIG. 1, FIG. 10B shows another example of a decoder using the distortion removal apparatus shown in FIG. 1, Lt; RTI ID = 0.0 > decoder. ≪ / RTI >
도 10a 내지 10c를 참조하면, 왜곡 제거 장치(10)는 압축된 데이터를 해제하는 디코더에 사용될 수 있다. 왜곡 제거 장치(10)는 SAO(Sample Adaptive Offset)의 출력단에 위치할 수 있다. 다른 실시예에서 왜곡 제거 장치(10)는 SAO가 없이 DF(Deblocking Filter)의 출력단에 위치할 수 있고, 또 다른 실시예로 왜곡 제거 장치(10)는 DF 및 SAO 없이 연결되어 기준 프레임(reference frame)을 출력할 수 있다.Referring to Figs. 10A to 10C, the
도 11a는 전 화면 내 구조(all intra configuration)에 도 1에 도시된 왜곡 제거 장치를 적용한 예를 나타내고, 도 11b는 저지연 구조(low delay configuration)에 도 1에 도시된 왜곡 제거 장치를 적용한 예를 나타낸다.FIG. 11A shows an example in which the distortion elimination apparatus shown in FIG. 1 is applied to an all intra configuration, FIG. 11B shows an example in which the distortion elimination apparatus shown in FIG. 1 is applied to a low delay configuration .
도 11a 및 도 11b를 참조하면, I는 인트라 슬라이스(Intra slice) 또는 인트라 픽처(intra picture)를 의미할 수 있다. P는 왜곡 제거 장치(10)는 전 화면 내 구조(all intra configuration) 하에서의 부호화 과정에 적용될 수 있다.Referring to FIGS. 11A and 11B, I may denote an intra slice or an intra picture. P can be applied to the encoding process under the all intra configuration of the
또한, 왜곡 제거 장치(10)는 복수의 서브 네트워크를 이용하여 저지연 구조(low delay configuration) 하에서의 부호화 과정에 적용될 수 있다. 이 경우, 인트라 슬라이스와 예측 슬라이스(predictive slice 또는 predictive picture) 각각에 상이한 서브 네트워트가 적용되어 왜곡이 제거될 수 있다.In addition, the
도 12a는 왜곡을 제거하는 제1 서브 네트워크의 PSNR 성능의 예를 나타내고, 도 12b는 왜곡을 제거하는 제2 서브 네트워크의 PSNR 성능의 예를 나타내고, 도 12c는 왜곡을 제거하는 제3 서브 네트워크의 PSNR 성능의 예를 나타낸다.FIG. 12A shows an example of PSNR performance of a first sub-network for eliminating distortion, FIG. 12B shows an example of PSNR performance of a second sub-network for eliminating distortion, FIG. 12C shows an example of a PSNR performance of a third sub- An example of PSNR performance is shown.
도 12d는 왜곡을 제거하는 제4 서브 네트워크의 PSNR 성능의 예를 나타내고, 도 12e는 왜곡을 제거하는 제5 서브 네트워크의 PSNR 성능의 예를 나타내고, 도 12f는 왜곡을 제거하는 제6 서브 네트워크의 PSNR 성능의 예를 나타낸다.12D shows an example of the PSNR performance of the fourth sub-network for eliminating distortion, FIG. 12E shows an example of the PSNR performance of the fifth sub-network for eliminating distortion, and FIG. 12F shows an example of the PSNR performance of the sixth sub- An example of PSNR performance is shown.
도 12a 내지 도 12f 를 참조하면, 왜곡 제거 장치(10)는 2 개의 NVIDA Titan XPTM GPU로 TensorFlowTM 소프트웨어를 이용하여 구현될 수 있다. 왜곡 제거 장치(10)는 118K 이미지가 포함된 MSCOCO 2018 트레인 데이터 세트를 사용하여 학습될 수 있다.Referring to Figures 12A-12F, the
먼저 22, 27, 32, 37, 42 및 47의 QP 값에서 endcoer_intra_main.cfg 구성으로 HEVC의 HM 16.0 기준 인코더(reference encoder)를 이용하여 이미지가 압축될 수 있다. 왜곡 제거 장치(10)는 YCbCr 색상 데이터에서 추출된 Y 채널 데이터를 이용하여 뉴럴 네트워크를 학습시킬 수 있다.First, the image can be compressed using the HM 16.0 reference encoder of the HEVC from the QP values of 22, 27, 32, 37, 42, and 47 to the endcoer_intra_main.cfg configuration. The
미니 배치 학습의 경우, 16 개의 128 ×128 패치를 무작위로 추출하여 수행될 수 있다. 이 때, 학습은 ADAM 최적화기(optimizer)를 이용하여 러닝 레이트(learning rate) 10-4, 모멘텀 값 0.9로 5만 회를 반복하여 학습될 수 있다.In the case of mini-batch learning, it can be performed by randomly extracting 16 128 x 128 patches. At this time, the learning can be learned by repeating 50,000 times with a learning rate of 10 -4 and a momentum value of 0.9 using an ADAM optimizer.
학습 단계는 초기(initial) 학습 및 전이(transfer)학습의 두 단계로 진행될 수 있다. 초기 학습 단계 동안에는 제1 서브네트워크가 QP=22에서 압축된 무작위로 샘플링된 학습 데이터로 학습되고, 제2 서브 네트워크는 QP=27로, 제3 서브 네트워크는 QP=32로, 제4 네트워크는 QP=37로, 제5 네트워크는 QP=42로 제6 네트워크는 QP=47로 수렴할 때까지 학습될 수 있다.The learning phase may proceed in two phases: initial learning and transfer learning. During the initial learning phase, the first subnetwork is learned with random sampled learning data compressed at QP = 22, the second subnetwork is QP = 27, the third subnetwork is QP = 32, the fourth network is QP = 37, the fifth network can be learned until QP = 42 and the sixth network converges to QP = 47.
전이 학습 단계 동안에, 각각의 서브 네트워크는 초기 학습에서의 필터 가중치로 초기화 될 수 있고, 학습 샘플들은 QP = 22, 27, 32, 37, 42, 및 47에서 압축된 118k 이미지의 모든 학습데이터로부터 무작위로 선택될 수 있다.During the transition learning phase, each sub-network may be initialized to a filter weight in the initial learning and the learning samples may be randomized from all learning data of the compressed 118k image at QP = 22, 27, 32, 37, 42, .
각각의 무작위로 선택된 학습 샘플은 6 개의 서브 네트워크로 인가되고, 가장 적은 복원 오류(restoration error)를 출력하는 서브 네트워크 하나에 대하여 학습 데이터의 멤버쉽을 가질 수 있다.Each randomly selected learning sample is applied to six subnetworks and may have membership of learning data for one subnetwork that outputs the least restoration error.
임의의 서브 네트워크가 16개의 샘플들을 가지고 가중치가 업데이트될 수 있다. 즉, 각각의 서브 네트워크는 가장 작은 값의 복원 오류(예를 들어, SAD(Sum of Absolute Difference))를 갖는 데이터 샘플들로 학습될 수 있다. 서브 네트워크에 대해 멤버쉽을 갖는 학습 데이터들에 대하여 선택 서브 네트워크는 16 개의 128 ×128 패치들의 미니 배치로 학습될 수 있다.Any subnetwork may have 16 samples and the weights may be updated. That is, each sub-network may be learned with data samples having the smallest value of the reconstruction error (e.g., a Sum of Absolute Difference (SAD)). For learning data with membership for the subnetwork, the selective subnetwork can be learned by mini-placement of 16 128 x 128 patches.
테스트를 위해서, 왜곡 제거 장치(10)는 HEVC 표준 테스트 시퀀스를 이용하여 테스트될 수 있다. 여기서 128 ×128 크기의 입력 패치가 선택 서브 네트워크로 인가되고, 그 후, 선택 서브 네트워크에 의해 할당된 입력 멤버쉽을 갖는 왜곡 제거를 위한 서브 네트워크에 입력될 수 있다.For testing, the
QP = 22, 25, 27, 30, 32, 35, 37, 40, 42, 45 및 47로 압축된 HEVC 표준 테스트 시퀀스에 대하여 원본 HEVC를 기준으로 사용하고, VRCNN, DACD 방식과 왜곡 제거 장치(10)의 PSNR(Peak Signal to Noise Ratio) 성능이 비교될 수 있다. 비교를 위해서 HEVC 표준 테스트 시퀀스는 학습에 사용되지 않고, QP 값 25, 30, 35, 40 및 45는 학습에 사용되지 않을 수 있다.The original HEVC is used as a reference for the HEVC standard test sequence compressed with QP = 22, 25, 27, 30, 32, 35, 37, 40, 42, 45 and 47, and the VRCNN, ) Can be compared with the performance of PSNR (Peak Signal to Noise Ratio). For comparison, the HEVC standard test sequence is not used for learning, and the QP values 25, 30, 35, 40 and 45 may not be used for learning.
도 12a 내지 12f의 PSNR 그래프는 LIVE1 검증 데이터세트에 대한 6 개의 왜곡 제거 서브네트워크의 PSNR 학습 곡선을 나타낼 수 있다. 인덱스가 작은 서브 네트워크는 초기 학습 단계에서 QP 값이 작은 학습 데이터로 학습되어 낮은 압축 결과물에 초점을 맞출 수 있다. The PSNR graphs of FIGS. 12A-12F may represent PSNR learning curves of six distortion-canceling subnetworks for the LIVE1 validation data set. A sub-network with a small index can be learned by learning data with a small QP value in the initial learning stage, thereby focusing on low compression results.
제1 서브 네트워크부터 제6 서브네트워크 인덱스에 대하여 0.91dB, 0.8dB, 0.62dB, 0.56dB, 0.46dB 및 0.33dB의 PSNR 향상이 있음을 확인할 수 있다. 즉, 서브 네트워크의 PSNR 성능이 제1 네트워크에서부터 제6 네트워크로 갈수록 감소됨을 알 수 있다.It can be seen that there is a PSNR improvement of 0.91dB, 0.8dB, 0.62dB, 0.56dB, 0.46dB and 0.33dB for the first subnetwork to the sixth subnetwork index. That is, it can be seen that the PSNR performance of the subnetwork decreases from the first network to the sixth network.
이것은 서브 네트워크가 동일한 네트워크 구조를 갖고, 더 높은 인덱스 값을 갖는 서브 네트워크가 더 작은 인덱스를 갖는 다른 네트워크 보다 더 큰 압축 왜곡을 갖는 보다 어려운 CAR 문제를 학습하기 때문일 수 있다.This may be because subnetworks have the same network structure and subnetworks with higher index values learn more difficult CAR problems with greater compression distortion than other networks with smaller indexes.
HEVC는 52 개의 가능한 다른 QP 값으로 양자화된 가변 블록 크기의 TU를 사용하기 때문에 하나의 단일 모델이 다양한 압축 왜곡 타입 및 왜곡 수준에 대해 압축 왜곡의 제거를 학습하게 하는 것이 어려울 수 있다.Because the HEVC uses a variable block size TU quantized with 52 possible different QP values, it can be difficult for one single model to learn the removal of compression distortion for various compression distortion types and distortion levels.
왜곡 제거 장치(10)는 압축 왜곡의 수준에 따라 복수의 서브 네트워크에 대해 다양한 압축 왜곡을 제거하도록 학습시킴으로써 압축 왜곡 문제를 보다 잘 처리할 수 있다.The
압축 효율을 평가하기 위해서 휘도(luminance) 채널(Y)과 색차(chrominance) 채널(U, V) 각각에 대해 BD(Bjø)-레이트가 계산될 수 있다. 휘도 학습 데이터에 대해 학습된 서브 네트워크가 색차 데이터에 적용될 수 있다. BD 레이트는 표 1과 같이 나타낼 수 있다.In order to evaluate the compression efficiency, a BD (Bjø) -rate can be calculated for each of a luminance channel (Y) and a chrominance channel (U, V). The learned sub-network for the luminance learning data can be applied to the color difference data. The BD rate can be expressed as shown in Table 1.
표 1을 참조하면, 모든 테스트 시퀀스에서 왜곡 제거 장치(10)가 BD 레이트가 감소되었음을 확인할 수 있다. 휘도 채널에 대해서만 네트워크를 학습시켰지만, 색차 채널에서의 BD-레이트 향상을 확인할 수 있다.Referring to Table 1, it can be confirmed that the
왜곡 제거 장치(10)는 모든 시퀀스의 Y, U 및 V 채널에 대해 평균 8.7%, 8.3% 및 9.6%의 BD레이트 감소를 달성했고, 특히 BasketballDrill 시퀀스의 Y, U 및 V 채널에 대해서는 평균 14.6%, 18.0% 및 20.2%의 BD레이트 감소를 달성했음을 확인할 수 있다.
도 13a는 압축 전 데이터의 일 예를 나타내고, 도 13b는 HEVC 압축된 데이터의 일 예를 나타낸다.13A shows an example of the data before compression, and FIG. 13B shows an example of HEVC compressed data.
도 13c는 DCAD에 의해 왜곡이 제거된 데이터의 일 예를 나타내고, 도 13d는 도 1에 도시된 왜곡 제거 장치에 의해 왜곡이 제거된 데이터의 일 예를 나타낸다.FIG. 13C shows an example of data in which distortion is removed by DCAD, and FIG. 13D shows an example of data in which distortion is removed by the distortion elimination apparatus shown in FIG.
도 14a는 압축 전 데이터의 다른 예를 나타내고, 도 14b는 HEVC 압축된 데이터의 다른 예를 나타낸다.Fig. 14A shows another example of the data before compression, and Fig. 14B shows another example of HEVC compressed data.
도 14c는 DCAD에 의해 왜곡이 제거된 데이터의 다른 예를 나타내고, 도 14d는 도1에 도시된 왜곡 제거 장치에 의해 왜곡이 제거된 데이터의 다른 예를 나타낸다.Fig. 14C shows another example of data whose distortion has been removed by DCAD, and Fig. 14D shows another example of data whose distortion is removed by the distortion elimination apparatus shown in Fig.
도 15a는 압축 전 데이터의 또 다른 예를 나타내고, 도 15b는 HEVC 압축된 데이터의 또 다른 예를 나타낸다.Fig. 15A shows another example of the data before compression, and Fig. 15B shows another example of HEVC compressed data.
도 15c는 DCAD에 의해 왜곡이 제거된 데이터의 또 다른 예를 나타내고, 도 15d는 도1에 도시된 왜곡 제거 장치에 의해 왜곡이 제거된 데이터의 또 다른 예를 나타낸다.Fig. 15C shows another example of data with distortion removed by DCAD, and Fig. 15D shows another example of data with distortion removed by the distortion removal apparatus shown in Fig.
도 13a 내지 도 15d를 참조하면, 왜곡 제거 장치(10)의 압축 효율이 BD-레이트 측면에서 VRCN과 DCAD 방식과 비교될 수 있다. 표 2는 QP 세트 1과 QP 세트 2에서의 HEVC 부호화 Y 채널 테스트 시퀀스에 대한 VRCNN, DCAD 및 왜곡 제거 장치(10)의 BD-레이트 성능을 나타낼 수 있다.13A to 15D, the compression efficiency of the
[11]VRCNN
[11]
[18]DCAD
[18]
[11]VRCNN
[11]
[18]DCAD
[18]
[11]VRCNN
[11]
[18]DCAD
[18]
QP 값의 한 세트는 학습에 사용된 22, 27, 32, 37, 42 및 47을 포함하고, 다른 세트는 학습에 사용되지 않은 다른 값들(25, 30, 35, 40 및 45)을 포함할 수 있다.One set of QP values includes 22, 27, 32, 37, 42 and 47 used in the learning and the other set can include other values (25, 30, 35, 40 and 45) have.
왜곡 제거 장치(10)는 QP 세트 1로 압축된 데이터를 학습하기 위한 단일 모델로 학습될 수 있고, QP 세트 1과 QP 세트 2로 HEVC 압축된 테스트 시퀀스에 대해 테스트될 수 있다.
반면, VRCNN과 DCAD는 QP세트 1의 특정 QP 값에 전용의 다중 모델로 별도로 학습될 수 있고, 각각의 모델은 QP 세트 1과 QP 세트 2를 사용하여 HEVC 압축된 테스트 시퀀스에 대해 개별적으로 테스트될 수 있다.On the other hand, VRCNN and DCAD can be separately learned with multiple models dedicated to specific QP values of QP set 1, and each model is tested separately for HEVC compressed test sequences using QP set 1 and QP set 2 .
QP 세트 2의 경우 VRCNN 및 DCAD는 가장 가까운 QP가 잇는 학습된 모델을 사용하여 테스트될 수 있다. 예를 들어, QP=27인 학습 모델은 QP=25에 대해 테스트될 수 있다.For QP set 2, VRCNN and DCAD can be tested using the learned model with the closest QP. For example, a learning model with QP = 27 can be tested for QP = 25.
표 2에서 확인할 수 있듯이, 왜곡 제거 장치(10)는 QP 세트 1-1, QP 세트 1-2 및 QP 세트 2에 대해 각각 평균 8.7%, 12.4% 및 10.3%의 BD 레이트 개선을 달성할 수 있다. 특히 왜곡 제거 장치(10)의 BD-레이트 향상은 QP 세트 1-2의 VRCNN 및 DCAD보다 각각 5.3% 및 2.3% 높다는 것을 확인할 수 있다.As can be seen in Table 2, the
표 3은 HEVC로 압축된 테스트 시퀀스의 선택 서브 네트워크의 오류율(error rate)을 나타낼 수 있다. Table 3 shows the error rate of the selected sub-network of the test sequence compressed with HEVC.
선택 서브 네트워크가 압축 왜곡을 갖는 입력 패치에 대해 가장 적절한 서브 네트워크를 선택할 수 없지만, 결과적인 BD-레이트 손실은 중요하지 않을 수 있다. 즉, 선택 서브 네트워크의 선택 문제는 종래의 분류 문제와 상이할 수 있다.Although the selected subnetwork can not select the most appropriate subnetwork for the input patches with compression distortion, the resulting BD-rate loss may not be significant. That is, the selection problem of the selected sub-network may be different from the conventional classification problem.
선택 서브 네트워크에 의해 탑-2/또는 탑-3 오류를 통해 선택된 서브 네트워크는 최상의 서브 네트워크는 아닐지라도, 압축 왜곡을 효과적으로 감소시킬 수 있다. 도 13a 내지 도 15d는 DCAD와 왜곡 제거 장치(10)에 의해 QP 값이 32, 40, 47인 HEVC 압축 비디오 프레임의 복원된 프레임의 품질을 비교한 결과를 나타낼 수 있다.The sub-network selected by the selected sub-network via the top-2 / or top-3 error can effectively reduce the compression distortion, even if it is not the best sub-network. FIGS. 13A to 15D show the results of comparing the quality of reconstructed frames of HEVC compressed video frames having QP values of 32, 40, and 47 by the DCAD and
HEVC 압축된 비디오 프레임은 블로킹 및 링잉 아티팩트와 같은 압축 왜곡을 포함할 수 있다. 도 13a 내지 도 15d를 통해서, 왜곡 제거 장치(10)가 DCAD에 비해 압축 왜곡을 보다 효과적으로 감소시킨다는 것을 확인할 수 있다. 이것은 왜곡 제거 장치(10)가 복수의 서브 네트워크를 통해 적절하게 훈련되어 32, 40 및 47의 QP 값에 대해 DCAD를 능가하기 때문일 수 잇다.HEVC compressed video frames may contain compression distortions such as blocking and ringing artifacts. 13A to 15D, it can be seen that the
왜곡 제거 장치(10)의 BD-레이트 성능을 분석하기 위해 서로 다른 QP 값에 대해 서브 네트워크를 선택하는 빈도를 확인할 수 있다. 표 4는 HEVC로 압축된 테스트 시퀀스의 각 QP 값에 대해 선택된 서브 네트워크의 백분율을 나타낼 수 있다.In order to analyze the BD-rate performance of the
#1sub-net.
#One
#2sub-net.
#2
#3sub-net.
# 3
#4sub-net.
#4
#5sub-net.
# 5
#6sub-net.
# 6
표 4를 참조하면, 더 작은 인덱스 번호를 갖는 서브 네트워크는 더 작은 QP 값들에 대해 가장 큰 선택 백분율을 가지고, 대각 셀들을 따르는 백분율들이 높은 값을 가질 수 있다. 이는 초기 학습 단계에서 낮은 QP 값을 갖는 낮은 인덱스 값의 서브 네트워크가 학습되고, 그 후 전이 학습 단계에서 압축 왜곡 수준에 따라 학습되기 때문일 수 있다.Referring to Table 4, a subnetwork with a smaller index number has the largest selection percentage for smaller QP values, and the percentages along diagonal cells can have a higher value. This may be because subnetworks with low index values with low QP values are learned in the initial learning phase and then learned according to the compression distortion level in the transition learning step.
표 4의 바이패스(bypass)는 낮은 QP 값으로 압축된 입력 패치가 더 작은 압축 왜곡을 갖는 경향이 있으므로, 선택 서브 네트워크에 의하여 바이패스 결정을 유도하기 때문에 낮은 QP 값에 대한 높은 비율을 나타냄을 알 수 있다.Bypass in Table 4 shows a high ratio of low QP values because the input patches compressed to low QP values tend to have smaller compression distortions and thus induce bypass decisions by the selected sub-network Able to know.
표 4의 결과를 참조하면, 특정 QP 값에 대해 학습된 네트워크가 테스트 시퀀스의 동일한 QP 값에 대해 최상의 압축 왜곡 제거를 수행하지 않을 수 있다. 즉, 높은 QP 값의 학습 이미지로 학습된 네트워크는 낮은 QP 값의 학습 이미지로 학습된 다른 네트워크보다 압축 왜곡을 더 잘 감소시킬 수 있다.Referring to the results in Table 4, the learned network for a particular QP value may not perform the best compression distortion removal for the same QP value of the test sequence. That is, a network learned with a learning image with a high QP value can more effectively reduce compression distortion than another learning network with a learning image with a low QP value.
따라서, 특정 QP 값에 대해 학습된 전용 단일 모델은 다른 압축 왜곡 수준에 대해 학습된 하나의 통합 모델보다 효과적이지 않을 수 있다. 또한, 바이패스 경로는 특정 HEVC 압축된 입력 패치에 압축 왜곡이 거의 없기 때문에 왜곡 제거 장치(10)에 있어서 중요한 요소일 수 있고, 이 경우, 서브 네트워크를 통과하지 않고 출력 패치를 바이패스 경로로 인가하는 것이 유리할 수 있다.Thus, a dedicated single model learned for a particular QP value may not be as effective as one integrated model learned for different compression distortion levels. In addition, the bypass path may be an important factor in the
도 16은 도 1에 도시된 왜곡 제거 장치와 종래 기술들의 PSNR 성능의 비교 결과를 나타낸다.16 shows a comparison result of PSNR performance between the distortion elimination apparatus shown in FIG. 1 and the prior art.
도 16을 참조하면, 성능 일관성(consistency)를 확인하기 위해 다양한 QP 값에 대하여 추가 실험이 수행될 수 있다. 도 16은 11가지 QP 값에서 HEVC 압축된 Y 채널 테스트 시퀀스에 대한 VRCNN, DCAD 및 왜곡 제거 장치(10)의 PSNR 개선을 나타낼 수 있다.Referring to Figure 16, further experiments may be performed on various QP values to ascertain performance consistency. FIG. 16 may show PSNR improvement of VRCNN, DCAD, and
도 16의 그래프와 같이, 왜곡 제거 장치(10)는 QP=22를 제외한 모든 QP 값에서 일관된 성능으로 가장 높은 PSNR 성능을 나타내고, QP=22에서 학습된 DCAD는 평균 0.2753dB 향상을 보인 반면 왜곡 제거 장치(10)는 0.2539dB로 아주 약간의 차이를 보임을 확인할 수 있다.16, the
특정 QP 값에 대해 훈련된 VRCNN 및 DCAD가 유사한 QP 값에 대해 상대적을 높은 PSNR 성능을 나타내지만, PSNR 성능은 학습에 사용된 QP 값과 상이한 QP 값에 대해서는 상당이 떨어진다는 것을 확인할 수 있다.It can be seen that although the VRCNN and DCAD trained for a particular QP value exhibit a high PSNR performance relative to similar QP values, the PSNR performance is significantly less for the QP values used for learning than for the QP values.
QP=22에서 압축된 테스트 시퀀스의 경우, QP=47에서 학습된 DCAD는 6.9dB의 상당한 성능저하를 나타낼 수 있다. 도 16의 QP=22에서 학습된 DCAD가 CAR에 대해 소량의 압축 왜곡으로 압축된 입력을 덜 변경하도록 학습되었기 때문일 수 있다.For a compressed test sequence at QP = 22, the learned DCAD at QP = 47 may exhibit a significant performance degradation of 6.9 dB. The learned DCAD at QP = 22 in FIG. 16 may have been learned to change the input compressed to a small amount of compression distortion for CAR.
반면, 왜곡 제거 장치(10)는 특정 QP 값에 대해서만 학습된 것이 아니고, 압축 왜곡에 의한 왜곡 수준에 따라 모든 QP 값에 대해 학습되었기 때문에 모든 QP 값에 대해 일관된 PSNR 향상을 보일 수 있다.On the other hand, the
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer readable medium may include program instructions, data files, data structures, and the like, alone or in combination. Program instructions to be recorded on the medium may be those specially designed and constructed for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with reference to the drawings, various technical modifications and variations may be applied to those skilled in the art. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
Claims (18)
뉴럴 네트워크로 상기 입력 데이터의 왜곡의 정도를 판별하고, 상기 왜곡의 정도에 기초하여 바이패스(bypass) 및 복수의 서브 네트워크 중에서 적어도 하나의 경로를 선택하는 단계; 및
상기 적어도 하나의 경로로 상기 입력 데이터를 인가함으로써 상기 왜곡을 제거하는 단계
를 포함하고,
상기 바이패스 및 상기 복수의 서브 네트워크 각각은 서로 다른 왜곡 정도에 대응하는 독립적인 경로인 왜곡 제거 방법.
Receiving input data;
Determining a degree of distortion of the input data with a neural network, and selecting at least one path among bypass and a plurality of subnetworks based on the degree of distortion; And
Removing said distortion by applying said input data to said at least one path
Lt; / RTI >
Wherein the bypass and the plurality of subnetworks are independent paths corresponding to different degrees of distortion.
상기 수신하는 단계는,
상이한 양자화 파라미터(quantization parameter) 값에 의해 압축된 복수의 입력 데이터를 수신하는 단계
를 포함하는 왜곡 제거 방법.
The method according to claim 1,
Wherein the receiving comprises:
Receiving a plurality of input data compressed by a different quantization parameter value
/ RTI >
상기 선택하는 단계는,
상기 입력 데이터를 패치 블록 단위로 분할하는 단계;
상기 패치 블록의 압축 왜곡의 양, 압축 왜곡 타입, 압축 타입 및 양자화 파라미터 중 적어도 하나에 기초하여 상기 패치 블록의 카테고리를 분류하는 단계; 및
상기 카테고리에 기초하여 상기 적어도 하나의 경로를 선택하는 단계
를 포함하는 왜곡 제거 방법.
The method according to claim 1,
Wherein the selecting comprises:
Dividing the input data into patch blocks;
Classifying the category of the patch block based on at least one of an amount of compression distortion of the patch block, a compression distortion type, a compression type, and a quantization parameter; And
Selecting the at least one route based on the category
/ RTI >
상기 적어도 하나의 경로를 선택하는 단계는,
상기 바이패스 및 상기 복수의 서브 네트워크의 출력을 비교하여 상기 왜곡이 가장 적은 경로를 선택하는 단계
를 포함하는 왜곡 제거 방법.
The method of claim 3,
Wherein the selecting of the at least one path comprises:
Comparing the outputs of the bypass and the plurality of subnetworks to select a path having the least distortion;
/ RTI >
상기 선택하는 단계는,
선택된 경로를 출력하도록 상기 뉴럴 네트워크를 학습시키는 단계
를 더 포함하는 왜곡 제거 방법.
The method of claim 3,
Wherein the selecting comprises:
Learning the neural network to output the selected path
Further comprising:
상기 복수의 서브 네트워크 중 적어도 하나는 잔차 블록(residual block)을 포함하는 컨벌루션 뉴럴 네트워크로 구현되는
왜곡 제거 방법.
The method according to claim 1,
At least one of the plurality of subnetworks is implemented as a convolution neural network including a residual block
How to remove distortion.
상기 제거하는 단계는,
상기 적어도 하나의 경로로 상기 패치 블록을 통과시켜 상기 왜곡을 제거하는 단계; 및
왜곡이 제거된 패치 블록으로부터 왜곡이 제거된 입력 데이터를 생성하는 단계
를 포함하는 왜곡 제거 방법.
The method of claim 3,
Wherein the removing comprises:
Passing the patch block through the at least one path to remove the distortion; And
Generating input data from which distortion has been removed from the patch block from which distortion has been removed;
/ RTI >
상기 패치 블록을 통과시켜 상기 왜곡을 제거하는 단계는,
상기 적어도 하나의 경로에 기초하여 상기 패치 블록의 카테고리 정보를 생성하는 단계
를 포함하는 왜곡 제거 방법.
8. The method of claim 7,
Wherein the step of passing the patch block to remove the distortion comprises:
Generating category information of the patch block based on the at least one path
/ RTI >
상기 복수의 서브 네트워크는,
상기 입력 데이터의 부호화 타입에 따라 상이하게 학습된
왜곡 제거 방법.
The method according to claim 1,
Wherein the plurality of sub-
And the difference between the input data and the input data
How to remove distortion.
뉴럴 네트워크로 상기 입력 데이터의 왜곡의 정도를 판별하고, 상기 왜곡의 정도에 기초하여 바이패스(bypass) 및 복수의 서브 네트워크 중에서 적어도 하나의 경로를 선택하고, 상기 적어도 하나의 경로로 상기 입력 데이터를 인가함으로써 상기 왜곡을 제거하는 프로세서
를 포함하고,
상기 바이패스 및 상기 복수의 서브 네트워크 각각은 서로 다른 왜곡 정도에 대응하는 독립적인 경로인 왜곡 제거 장치.
A receiver for receiving input data; And
The method comprising the steps of: determining a degree of distortion of the input data by a neural network; selecting at least one path from a bypass and a plurality of subnetworks based on the degree of distortion; A processor that removes the distortion by applying
Lt; / RTI >
Wherein the bypass and the plurality of subnetworks are independent paths corresponding to different degrees of distortion.
상기 수신기는,
상이한 양자화 파라미터(quantization parameter) 값에 의해 압축된 복수의 입력 데이터를 수신하는
왜곡 제거 장치.
11. The method of claim 10,
The receiver includes:
A method for receiving a plurality of input data compressed by different quantization parameter values
Distortion eliminator.
상기 프로세서는,
상기 입력 데이터를 패치 블록 단위로 분할하고, 상기 패치 블록의 압축 왜곡의 양, 압축 왜곡 타입, 압축 타입 및 양자화 파라미터 중 적어도 하나에 기초하여 상기 패치 블록의 카테고리를 분류하고, 상기 카테고리에 기초하여 상기 적어도 하나의 경로를 선택하는
왜곡 제거 장치.
11. The method of claim 10,
The processor comprising:
Classifying the category of the patch block based on at least one of a compression distortion amount, a compression distortion type, a compression type, and a quantization parameter of the patch block, dividing the input data by a patch block unit, Select at least one path
Distortion eliminator.
상기 프로세서는,
상기 바이패스 및 상기 복수의 서브 네트워크의 출력을 비교하여 상기 왜곡이 가장 적은 경로를 선택하는
를 포함하는 왜곡 제거 장치.
13. The method of claim 12,
The processor comprising:
And comparing the outputs of the bypass and the plurality of subnetworks to select a path having the least distortion
.
상기 프로세서는,
선택된 경로를 출력하도록 상기 뉴럴 네트워크를 학습시키는
왜곡 제거 장치.
13. The method of claim 12,
The processor comprising:
Learning the neural network to output the selected path
Distortion eliminator.
상기 복수의 서브 네트워크 중 적어도 하나는 잔차 블록(residual block)을 포함하는 컨벌루션 뉴럴 네트워크로 구현되는
왜곡 제거 장치.
11. The method of claim 10,
At least one of the plurality of subnetworks is implemented as a convolution neural network including a residual block
Distortion eliminator.
상기 프로세서는,
상기 적어도 하나의 경로로 상기 패치 블록을 통과시켜 상기 왜곡을 제거하고, 왜곡이 제거된 패치 블록으로부터 왜곡이 제거된 입력 데이터를 생성하는
왜곡 제거 장치.
13. The method of claim 12,
The processor comprising:
Passing the patch block through the at least one path to remove the distortion, and generating input data from which the distortion is removed from the distorted patch block
Distortion eliminator.
상기 프로세서는,
상기 적어도 하나의 경로에 기초하여 상기 패치 블록의 카테고리 정보를 생성하는
왜곡 제거 장치.
17. The method of claim 16,
The processor comprising:
And generates category information of the patch block based on the at least one path
Distortion eliminator.
상기 복수의 서브 네트워크는,
상기 입력 데이터의 부호화 타입에 따라 상이하게 학습된
왜곡 제거 장치.
11. The method of claim 10,
Wherein the plurality of sub-
And the difference between the input data and the input data
Distortion eliminator.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20170166988 | 2017-12-06 | ||
KR1020170166988 | 2017-12-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190067107A KR20190067107A (en) | 2019-06-14 |
KR101998036B1 true KR101998036B1 (en) | 2019-07-08 |
Family
ID=66846732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180155090A KR101998036B1 (en) | 2017-12-06 | 2018-12-05 | Artifact reduction method and apparatus |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101998036B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210074228A (en) * | 2019-12-11 | 2021-06-21 | 한국전자기술연구원 | A method and apparatus for encoding/decoding deep neural network model |
US20220222505A1 (en) * | 2021-01-11 | 2022-07-14 | Tencent America LLC | Multi-task neural network by micro-structured parameter sharing for multi-quality loop filter |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5597968B2 (en) * | 2009-07-01 | 2014-10-01 | ソニー株式会社 | Image processing apparatus and method, program, and recording medium |
US9008180B2 (en) * | 2011-04-21 | 2015-04-14 | Intellectual Discovery Co., Ltd. | Method and apparatus for encoding/decoding images using a prediction method adopting in-loop filtering |
KR102276339B1 (en) * | 2014-12-09 | 2021-07-12 | 삼성전자주식회사 | Apparatus and method for training convolutional neural network for approximation of convolutional neural network |
-
2018
- 2018-12-05 KR KR1020180155090A patent/KR101998036B1/en active IP Right Grant
Non-Patent Citations (1)
Title |
---|
LUKAS CAVIGELLI ET AL., ‘CAS-CNN: A Deep Convolutaional Neural Network for Image Compression Artifact Suppression’, Cornell University, 8pages, 2016.11.22.* |
Also Published As
Publication number | Publication date |
---|---|
KR20190067107A (en) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100265722B1 (en) | Image processing method and apparatus based on block | |
CN107197260A (en) | Video coding post-filter method based on convolutional neural networks | |
CN108028920A (en) | The method and device of the middle-and-high-ranking block elimination filtering of coding and decoding video | |
Li et al. | CNN based post-processing to improve HEVC | |
JPH05304610A (en) | Method and device for decoding picture data | |
WO2023274074A1 (en) | Systems and methods for image filtering | |
CN105791877A (en) | Adaptive loop filter method in video coding and decoding | |
CN112738511B (en) | Fast mode decision method and device combined with video analysis | |
CN111885280B (en) | Hybrid convolutional neural network video coding loop filtering method | |
EP3541076A1 (en) | Error resilient rate distortion optimization for image and video encoding | |
KR101998036B1 (en) | Artifact reduction method and apparatus | |
Zhang et al. | Reducing blocking artifacts in compressed images via transform-domain non-local coefficients estimation | |
Zhang et al. | Efficient CTU-based intra frame coding for HEVC based on deep learning | |
KR20210134556A (en) | Apparatus and method for intra-prediction based video encoding or decoding | |
KR102648464B1 (en) | Method and apparatus for image enhancement using supervised learning | |
CN112188217A (en) | JPEG compressed image decompression effect removing method combining DCT domain and pixel domain learning | |
Lee et al. | CNN-based approach for visual quality improvement on HEVC | |
KR102245682B1 (en) | Apparatus for compressing image, learning apparatus and method thereof | |
CN112954350B (en) | Video post-processing optimization method and device based on frame classification | |
Zhao et al. | Content adaptive image de-blocking | |
JP7141007B2 (en) | Encoding device, encoding method and program | |
Li et al. | A neural network lifting based secondary transform for improved fully scalable image compression in jpeg 2000 | |
JP7075012B2 (en) | Image processing device, image processing method and image processing program | |
Lanz et al. | Scalable lossless coding of dynamic medical CT data using motion compensated wavelet lifting with denoised prediction and update | |
Neethu et al. | Improved quality of JPEG compressed image using approximate K-SVD algorithm |
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 |