KR20230022099A - Image processing method and apparatus using a neural network based deblocking filtering - Google Patents
Image processing method and apparatus using a neural network based deblocking filtering Download PDFInfo
- Publication number
- KR20230022099A KR20230022099A KR1020220041329A KR20220041329A KR20230022099A KR 20230022099 A KR20230022099 A KR 20230022099A KR 1020220041329 A KR1020220041329 A KR 1020220041329A KR 20220041329 A KR20220041329 A KR 20220041329A KR 20230022099 A KR20230022099 A KR 20230022099A
- Authority
- KR
- South Korea
- Prior art keywords
- deblocking
- neural network
- filtering
- deblocking filtering
- filter
- Prior art date
Links
- 238000001914 filtration Methods 0.000 title claims abstract description 656
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 309
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 239000011159 matrix material Substances 0.000 claims description 55
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims description 30
- 238000012545 processing Methods 0.000 claims description 26
- 230000000903 blocking effect Effects 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 69
- 238000000034 method Methods 0.000 description 37
- 238000013139 quantization Methods 0.000 description 22
- 238000000605 extraction Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 16
- 230000004927 fusion Effects 0.000 description 7
- 230000002123 temporal effect Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- YBJHBAHKTGYVGT-ZKWXMUAHSA-N (+)-Biotin Chemical compound N1C(=O)N[C@@H]2[C@H](CCCCC(=O)O)SC[C@@H]21 YBJHBAHKTGYVGT-ZKWXMUAHSA-N 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 210000003792 cranial nerve Anatomy 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007500 overflow downdraw method Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- FEPMHVLSLDOMQC-UHFFFAOYSA-N virginiamycin-S1 Natural products CC1OC(=O)C(C=2C=CC=CC=2)NC(=O)C2CC(=O)CCN2C(=O)C(CC=2C=CC=CC=2)N(C)C(=O)C2CCCN2C(=O)C(CC)NC(=O)C1NC(=O)C1=NC=CC=C1O FEPMHVLSLDOMQC-UHFFFAOYSA-N 0.000 description 1
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
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- 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
-
- 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/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
본 개시는 영상 처리 방법 및 영상 처리 장치에 관한 것으로, 구체적으로, AI(Artificial Intelligence) 기반 디블로킹 필터링을 이용하여 비디오의 부호화 및 복호화 과정에서 비디오를 블록 단위로 처리함에 따라 발생하는 블로킹 아티팩트(blocking artifact)를 제거하는 영상 처리 방법 및 영상 처리 장치에 관한 것이다.The present disclosure relates to an image processing method and an image processing apparatus, and more specifically, to block artifacts generated as video is processed in block units during video encoding and decoding using AI (Artificial Intelligence)-based deblocking filtering It relates to an image processing method and an image processing apparatus for removing artifacts.
H.264 AVC 및 HEVC와 같은 코덱에서는 블록 단위로 변환, 예측, 양자화가 수행되어 블록의 경계에서 시각적으로 블로킹 아티팩트가 발생된다. 복원된 영상의 블로킹 아티팩트를 제거하여 화질을 개선하기 위해 미리정해진 디블로킹 필터링 알고리즘을 이용한다. 이러한 디블로킹 필터는 제한된 개수를 가지고, 각각의 필터는 손으로 계산된(handcrafted) 필터 계수를 가진다. 예를 들어, 필터링을 적용하지 않는 경우, 2개의 픽셀들을 수정하는 필터, 4개의 픽셀들을 수정하는 필터, 6개의 픽셀들을 수정하는 강한 필터 등이 있고, 각각의 경우에 대하여 미리정해진 필터 계수가 존재한다. 따라서, 종래의 디블로킹 필터들은 다른 에지, 디테일, 텍스처 들을 가지는 다양한 콘텐트에 잘 적용될 수 없다.In codecs such as H.264 AVC and HEVC, transformation, prediction, and quantization are performed in units of blocks, so blocking artifacts are visually generated at block boundaries. A predetermined deblocking filtering algorithm is used to improve image quality by removing blocking artifacts of the reconstructed image. There are a limited number of such deblocking filters, and each filter has handcrafted filter coefficients. For example, when filtering is not applied, there is a filter that modifies 2 pixels, a filter that modifies 4 pixels, a strong filter that modifies 6 pixels, and the like, and there is a predefined filter coefficient for each case. do. Therefore, conventional deblocking filters cannot be well applied to various contents having different edges, details, and textures.
즉, 영상의 해상도가 커지고, 영상이 컨텐츠가 다양화됨에 따라 영상의 다양한 특성을 유연하게 고려할 수 있는 신경망을 이용하는 유연한 디블로킹 필터링 알고리즘이 요구되고 있다.That is, as the resolution of an image increases and the content of an image diversifies, a flexible deblocking filtering algorithm using a neural network that can flexibly consider various characteristics of an image is required.
일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법 및 영상 처리 장치는 픽셀 값들과 부호화 정보에 기초하여 신경망에 기반한 특정 픽셀들에 대한 특정 필터를 유연하게 생성하여 픽셀 값들과 부호화 정보에 맞는 계수들을 가지는 무한한 개수의 필터들을 가지는 것을 과제로 한다.An image processing method and an image processing apparatus using neural network-based deblocking filtering according to an exemplary embodiment flexibly generate a specific filter for specific pixels based on a neural network based on pixel values and encoding information to fit the pixel values and encoding information. The task is to have an infinite number of filters with coefficients.
또한, 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법 및 영상 처리 장치는 신경망 기반 동적(dynamic) 필터를 통해 보다 효율적으로 블로킹 아티팩트를 제거하여 영상의 화질을 개선할 뿐만 아니라 부호화 효율도 개선하는 것을 과제로 한다.In addition, an image processing method and an image processing apparatus using neural network-based deblocking filtering according to an embodiment not only improve image quality but also improve coding efficiency by more efficiently removing blocking artifacts through a neural network-based dynamic filter. It is a task to improve.
일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법 은 블록의 경계선에 수직인 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들 및 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들에 대한 부호화 정보에 기초하여 디블로킹 필터링을 위한 입력 데이터를 획득하는 단계; 상기 입력 데이터를 제1 신경망에 입력하여 상기 입력 데이터의 특징 맵을 획득하는 단계; 상기 특징 맵을 제2 신경망에 입력하여 디블로킹 필터 계수를 획득하는 단계; 상기 특징 맵을 제3 신경망에 입력하여 디블로킹 필터 보상 값을 획득하는 단계; 상기 입력 데이터를 제4 신경망에 입력하여 디블로킹 필터 강도를 획득하는 단계; 상기 디블로킹 필터 계수, 상기 디블로킹 필터 보상 값, 및 상기 디블로킹 필터 강도를 이용하여 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들에 디블로킹 필터링을 수행함으로써, 디블로킹 필터링된 픽셀들을 획득하는 단계;를 포함할 수 있다.An image processing method using neural network-based deblocking filtering according to an embodiment includes deblocking filtering target pixels of at least one line perpendicular to a block boundary and encoding information about the deblocking filtering target pixels of the at least one line. obtaining input data for deblocking filtering based on; acquiring a feature map of the input data by inputting the input data to a first neural network; obtaining deblocking filter coefficients by inputting the feature map to a second neural network; obtaining a deblocking filter compensation value by inputting the feature map to a third neural network; obtaining a deblocking filter strength by inputting the input data to a fourth neural network; Obtaining deblocking filtered pixels by performing deblocking filtering on deblocking filtering target pixels of the at least one line using the deblocking filter coefficient, the deblocking filter compensation value, and the deblocking filter strength. step; may be included.
일 실시예에 따라, 부호화 정보는 복수의 완전 연결된 레이어들을 포함하는 완전 연결 신경망을 통해 출력된 후, 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들과 동일한 크기로 변환된 것일 수 있다.According to an embodiment, the encoding information may be outputted through a fully connected neural network including a plurality of fully connected layers, and then converted to the same size as the deblocking filtering target pixels of the at least one line.
일 실시예에 따라, 디블로킹 필터링에 스케일링 인자가 추가로 이용될 수 있다.According to one embodiment, a scaling factor may be additionally used for deblocking filtering.
일 실시예에 따라, 스케일링 인자는 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들이 포함된 프레임의 종류에 따라 결정될 수 있다.According to an embodiment, a scaling factor may be determined according to a type of a frame including pixels to be filtered for deblocking of the at least one line.
일 실시예에 따라, 디블로킹 필터링된 픽셀들을 획득하는 단계는: 상기 디블로킹 필터 계수와 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들의 행렬 곱셈을 수행하여 행렬 곱셈 결과를 획득하는 단계; 상기 행렬 곱셈 결과에 상기 디블로킹 필터 보상 값을 더하여 필터 보상 결과를 획득하는 단계; 상기 필터 보상 결과에 상기 디블로킹 필터 강도를 이용하여 성분 곱을 수행하여 잔차 디블로킹 필터링 픽셀들을 획득하는 단계; 상기 잔차 디블로킬 필터링 픽셀들을 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들을 더하여 상기 디블로킹 필터링된 픽셀들을 획득하는 단계를 포함할 수 있다.According to an embodiment, the obtaining of deblocking-filtered pixels may include: obtaining a matrix multiplication result by performing matrix multiplication of the deblocking filter coefficient and deblocking filtering target pixels of the at least one line; obtaining a filter compensation result by adding the deblocking filter compensation value to the matrix multiplication result; obtaining residual deblocking filtering pixels by performing component multiplication on the filter compensation result using the deblocking filter strength; and obtaining the deblocking-filtered pixels by adding the residual deblocking-filtered pixels to the deblocking-filtered pixels of the at least one line.
일 실시예에 따라, 디블로킹 필터링된 픽셀들을 획득하는 단계는: 상기 디블로킹 필터 계수와 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들의 행렬 곱셈을 수행하여 행렬 곱셈 결과를 획득하는 단계; 상기 행렬 곱셈 결과에 상기 디블로킹 필터 보상 값을 더하여 필터 보상 결과를 획득하는 단계; 상기 필터 보상 결과에 상기 디블로킹 필터 강도를 이용하여 성분 곱을 수행하여 상기 디블로킹 필터링된 픽셀들을 획득하는 단계를 포함할 수 있다.According to an embodiment, the obtaining of deblocking-filtered pixels may include: obtaining a matrix multiplication result by performing matrix multiplication of the deblocking filter coefficient and deblocking filtering target pixels of the at least one line; obtaining a filter compensation result by adding the deblocking filter compensation value to the matrix multiplication result; and obtaining the deblocking-filtered pixels by performing component multiplication on the filter compensation result using the deblocking filter strength.
일 실시예에 따라, 제1 신경망은 복수 개의 레지듀얼 블록들을 포함할 수 있다.According to an embodiment, the first neural network may include a plurality of residual blocks.
일 실시예에 따라, 제2 신경망은 레지듀얼 블록을 포함할 수 있다.According to an embodiment, the second neural network may include a residual block.
일 실시예에 따라, 제3 신경망은 레지듀얼 블록을 포함할 수 있다.According to an embodiment, the third neural network may include a residual block.
일 실시예에 따라, 제4 신경망은 복수개의 컨볼루션 레이어들을 포함할 수 있다.According to an embodiment, the fourth neural network may include a plurality of convolutional layers.
일 실시예에 따라, 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들은 상기 블록의 상기 경계선의 수직인 한 방향으로 n개의 픽셀들 및 상기 경계선의 수직인 다른 방향으로 n개의 픽셀들을 포함하는 2n개의 픽셀들일 수 있다.According to an embodiment, the deblocking filtering target pixels of at least one line may include n pixels in one direction perpendicular to the boundary line of the block and 2n pixels including n pixels in another direction perpendicular to the boundary line of the block. can be picked up
일 실시예에 따라, 부호화 정보는 입력 데이터에 포함되지 않을 수 있다.According to an embodiment, encoding information may not be included in input data.
일 실시예에 따라, 디블로킹 필터 보상 값은 획득되지 않고, 디블로킹 필터 보상 값은 0으로 설정될 수 있다.According to one embodiment, the deblocking filter compensation value may not be obtained and the deblocking filter compensation value may be set to zero.
일 실시예에 따라, 디블로킹 필터 강도는 획득되지 않고, 디블로킹 필터 강도는 1로 설정될 수 있다.According to one embodiment, the deblocking filter strength is not obtained and the deblocking filter strength may be set to 1.
일 실시예에 따라, 디블로킹 필터 보상 값 및 디블로킹 필터 강도는 획득되지 않고, 디블로킹 필터 보상 값은 0으로 설정되고, 디블로킹 필터 강도는 1로 설정될 수 있다.According to one embodiment, the deblocking filter compensation value and the deblocking filter strength may not be obtained, the deblocking filter compensation value may be set to 0, and the deblocking filter strength may be set to 1.
일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 장치 는 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션에 따라 동작하는 프로세서를 포함하고, 상기 프로세서는: 블록의 경계선에 수직인 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들 및 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들에 대한 부호화 정보에 기초하여 입력 데이터를 획득하고, 상기 입력 데이터를 제1 신경망에 입력하여 상기 입력 데이터의 특징 맵을 획득하고, 상기 특징 맵을 제2 신경망에 입력하여 디블로킹 필터 계수를 획득하고, 상기 특징 맵을 제3 신경망에 입력하여 디블로킹 필터 보상 값을 획득하고, 상기 입력 데이터를 제4 신경망에 입력하여 디블로킹 필터 강도를 획득하고, 상기 디블로킹 필터 계수, 상기 디블로킹 필터 보상 값, 및 상기 디블로킹 필터 강도를 이용하여 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들에 디블로킹 필터링을 수행함으로써, 디블로킹 필터링된 픽셀들을 획득하도록 구성될 수 있다.An image processing apparatus using neural network-based deblocking filtering according to an embodiment includes a memory for storing one or more instructions; and a processor operating according to the one or more instructions, the processor comprising: pixels to be deblocking filtered of at least one line perpendicular to a boundary of a block and pixels to be filtered for deblocking of the at least one line. Acquiring input data based on encoding information, inputting the input data to a first neural network to obtain a feature map of the input data, inputting the feature map to a second neural network to obtain deblocking filter coefficients, The feature map is input to a third neural network to obtain a deblocking filter compensation value, the input data is input to a fourth neural network to obtain a deblocking filter strength, the deblocking filter coefficient, the deblocking filter compensation value, and The method may be configured to obtain deblocking-filtered pixels by performing deblocking filtering on deblocking filtering target pixels of the at least one line using the deblocking filter strength.
일 실시예에 따라, 부호화 정보는 복수의 완전 연결된 레이어들을 포함하는 완전 연결 신경망을 통해 출력된 후, 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들과 동일한 크기로 변환된 것일 수 있다.According to an embodiment, the encoding information may be outputted through a fully connected neural network including a plurality of fully connected layers, and then converted to the same size as the deblocking filtering target pixels of the at least one line.
일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법 및 영상 처리 장치는 픽셀 값들과 부호화 정보에 기초하여 신경망에 기반한 특정 픽셀들에 대한 특정 필터를 유연하게 생성하여 픽셀 값들과 부호화 정보에 맞는 계수들을 가지는 무한한 개수의 필터들을 가질 수 있다.An image processing method and an image processing apparatus using neural network-based deblocking filtering according to an exemplary embodiment flexibly generate a specific filter for specific pixels based on a neural network based on pixel values and encoding information to fit the pixel values and encoding information. You can have an infinite number of filters with coefficients.
또한, 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법 및 영상 처리 장치는 신경망 기반 동적(dynamic) 필터를 통해 보다 효율적으로 블로킹 아티팩트를 제거하여 영상의 화질을 개선할 뿐만 아니라 부호화 효율도 개선할 수 있다.In addition, an image processing method and an image processing apparatus using neural network-based deblocking filtering according to an embodiment not only improve image quality but also improve coding efficiency by more efficiently removing blocking artifacts through a neural network-based dynamic filter. can be improved
도 1은 일 실시예에 따른 블록의 경계에서의 디블로킹 대상 픽셀들을 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 신경망 기반 디블로킹 필터링을 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 픽셀들에 대한 입력 데이터와 부호화 정보에 대한 입력 데이터를 융합하는 과정을 설명하기 위한 도면이다.
도 4는 다른 실시예에 따른 인루프 필터 네트워크에 입력하는 입력 데이터를 융합하는 과정을 설명하기 위한 도면이다.
도 5는 다른 실시예에 따른 인트라 예측 네트워크에 입력하는 입력 데이터를 융합하는 과정을 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 입력 데이터를 특징 맵으로 출력하는 신경망을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 머지 입력 데이터와 특징 맵에 기초하여 각각의 신경망을 통해 필터링 계수, 필터 보상 값, 및 필터 강도를 획득하는 방법을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하여 필터링된 픽셀 라인을 획득하는 과정을 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하여 필터링된 픽셀 라인을 획득하는 과정을 설명하기 위한 도면이다.
도 10은 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하여 필터링된 픽셀 라인을 획득하는 과정을 설명하기 위한 도면이다.
도 11은 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하여 필터링된 픽셀 라인 획득하는 과정을 설명하기 위한 도면이다.
도 12는 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하여 필터링된 픽셀 라인을 획득하는 과정을 설명하기 위한 도면이다.
도 13은 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하여 필터링된 픽셀 라인을 획득하는 과정을 설명하기 위한 도면이다.
도 14는 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하여 필터링된 픽셀 라인을 획득하는 과정을 설명하기 위한 도면이다.
도 15는 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하여 필터링된 픽셀 라인을 획득하는 과정을 설명하기 위한 도면이다.
도 16은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 개략적인 구조를 설명하기 위한 도면이다.
도 17은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.
도 18은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.
도 19는 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.
도 20은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.
도 21은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.
도 22는 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.
도 23은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.
도 24는 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.
도 25는 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.
도 26은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.
도 27은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.
도 28은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.
도 29는 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.
도 30은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.
도 31은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.
도 32는 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.
도 33은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.
도 34는 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법의 순서도이다.
도 35는 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 장치의 구성을 도시하는 도면이다.1 is a diagram for explaining deblocking target pixels at a block boundary according to an exemplary embodiment.
2 is a diagram for explaining neural network-based deblocking filtering according to an exemplary embodiment.
3 is a diagram for explaining a process of fusing input data for pixels and input data for encoding information according to an exemplary embodiment.
4 is a diagram for explaining a process of fusing input data input to an in-loop filter network according to another embodiment.
5 is a diagram for explaining a process of fusing input data input to an intra prediction network according to another embodiment.
6 is a diagram for explaining a neural network that outputs input data as a feature map according to an exemplary embodiment.
7 is a diagram for explaining a method of obtaining filtering coefficients, filter compensation values, and filter strengths through respective neural networks based on merged input data and feature maps, according to an exemplary embodiment.
8 is a diagram for explaining a process of obtaining a filtered pixel line using neural network-based deblocking filtering according to an exemplary embodiment.
9 is a diagram for explaining a process of obtaining a filtered pixel line using neural network-based deblocking filtering according to an exemplary embodiment.
10 is a diagram for explaining a process of obtaining a filtered pixel line using neural network-based deblocking filtering according to an exemplary embodiment.
11 is a diagram for explaining a process of obtaining a filtered pixel line using neural network-based deblocking filtering according to an exemplary embodiment.
12 is a diagram for explaining a process of obtaining a filtered pixel line using neural network-based deblocking filtering according to an exemplary embodiment.
13 is a diagram for explaining a process of obtaining a filtered pixel line using neural network-based deblocking filtering according to an exemplary embodiment.
14 is a diagram for explaining a process of obtaining a filtered pixel line using neural network-based deblocking filtering according to an exemplary embodiment.
15 is a diagram for explaining a process of obtaining a filtered pixel line using neural network-based deblocking filtering according to an exemplary embodiment.
16 is a diagram for explaining a schematic structure of neural network-based deblocking filtering according to an embodiment.
17 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
18 is a diagram for explaining a structure of neural network-based deblocking filtering according to an embodiment.
19 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
20 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
21 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
22 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
23 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
24 is a diagram for explaining a structure of neural network-based deblocking filtering according to an embodiment.
25 is a diagram for explaining a structure of neural network-based deblocking filtering according to an embodiment.
26 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
27 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
28 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
29 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
30 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
31 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
32 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
33 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
34 is a flowchart of an image processing method using neural network-based deblocking filtering according to an embodiment.
35 is a diagram illustrating a configuration of an image processing device using neural network-based deblocking filtering according to an exemplary embodiment.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 개시의 실시 형태에 대해 한정하려는 것이 아니며, 본 개시는 여러 실시예들의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the present disclosure may have various changes and various embodiments, specific embodiments are illustrated in the drawings, and will be described in detail through detailed description. However, this is not intended to limit the embodiments of the present disclosure, and it should be understood that the present disclosure includes all modifications, equivalents, and substitutes included in the spirit and scope of the various embodiments.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.In describing the embodiments, if it is determined that a detailed description of a related known technology may unnecessarily obscure the subject matter of the present disclosure, the detailed description will be omitted. In addition, numbers (eg, 1st, 2nd, etc.) used in the description process of the specification are only identifiers for distinguishing one component from another.
본 개시에서, "a, b 또는 c 중 적어도 하나" 표현은 " a", " b", " c", "a 및 b", "a 및 c", "b 및 c", "a, b 및 c 모두", 혹은 그 변형들을 지칭할 수 있다.In this disclosure, the expression “at least one of a, b, or c” means “a”, “b”, “c”, “a and b”, “a and c”, “b and c”, “a, b” and c”, or variations thereof.
또한, 본 개시에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.In addition, in the present disclosure, when one component is referred to as "connected" or "connected" to another component, the one component may be directly connected or directly connected to the other component, but in particular Unless otherwise described, it should be understood that they may be connected or connected via another component in the middle.
또한, 본 개시에서 '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.In addition, in the present disclosure, components expressed as '~ unit (unit)', 'module', etc., are two or more components combined into one component, or one component is divided into two or more for each function. may be differentiated into In addition, each of the components to be described below may additionally perform some or all of the functions of other components in addition to its own main function, and some of the main functions of each component may be different from other components. Of course, it may be performed exclusively by a component.
또한, 본 개시에서, '영상(image) 또는 픽처(picture)'는 정지영상(또는 프레임), 복수의 연속된 정지영상으로 구성된 동영상, 또는 비디오를 의미할 수 있다.Also, in the present disclosure, an 'image or picture' may mean a still image (or frame), a motion picture composed of a plurality of continuous still images, or a video.
또한, 본 개시에서 '신경망(neural network)'은 뇌 신경을 모사한 인공 신경망 모델의 대표적인 예시로서, 특정 알고리즘을 사용한 인공 신경망 모델로 한정되지 않는다. 신경망은 심층 신경망(deep neural network)으로 참조될 수도 있다. In addition, in the present disclosure, a 'neural network' is a representative example of an artificial neural network model that mimics a cranial nerve, and is not limited to an artificial neural network model using a specific algorithm. A neural network may also be referred to as a deep neural network.
또한, 본 개시에서 '가중치(weight)'는 신경망을 이루는 각 레이어의 연산 과정에서 이용되는 값으로서 예를 들어, 입력 값을 소정 연산식에 적용할 때 이용될 수 있다. 가중치는 훈련의 결과로 설정되는 값으로서, 필요에 따라 별도의 훈련 데이터(training data)를 통해 갱신될 수 있다.In addition, in the present disclosure, a 'weight' is a value used in the calculation process of each layer constituting the neural network, and may be used, for example, when an input value is applied to a predetermined calculation expression. The weight is a value set as a result of training, and can be updated through separate training data as needed.
또한, 본 개시에서 '현재 블록'은 현재의 처리 대상인 블록을 의미한다. 현재 블록은 현재 영상으로부터 분할된 슬라이스, 타일, 최대 부호화 단위, 부호화 단위, 예측 단위 또는 변환 단위일 수 있다.Also, in the present disclosure, 'current block' means a block that is currently a processing target. The current block may be a slice, tile, maximum coding unit, coding unit, prediction unit, or transformation unit divided from the current image.
또한, 본 개시에서, '샘플'은 영상, 블록, 필터 커널 또는 특징 맵 등의 데이터 내 샘플링 위치에 할당된 데이터로서 처리 대상이 되는 데이터를 의미한다. 예를 들어, 샘플은 2차원의 영상 내 픽셀을 포함할 수 있다.In addition, in the present disclosure, 'sample' refers to data to be processed as data allocated to a sampling position within data such as an image, block, filter kernel, or feature map. For example, a sample may include a pixel in a 2D image.
도 1은 일 실시예에 따른 블록의 경계에서의 디블로킹 대상 픽셀들을 설명하기 위한 도면이다.1 is a diagram for explaining deblocking target pixels at a block boundary according to an exemplary embodiment.
도 1을 참조하면, 블록 기반의 변환, 예측, 양자화를 수행하면, 현재 블록(100)과 주변 블록들(110, 120, 130) 사이에 블록의 경계(140)에서 블로킹 아티팩트가 발생한다. 이러한 블로킹 아티팩트를 제거하여 화질을 개선하기 위해 디블로킹 필터링이 필요하다.Referring to FIG. 1 , when block-based transformation, prediction, and quantization are performed, a blocking artifact occurs at a
디블로킹 필터링의 대상 픽셀들은 블록의 경계선에 수직인 픽셀들의 세트인 한 라인 또는 복수개의 라인의 픽셀들(150)이다. 블록의 경계선에 수직인 적어도 하나의 복호화된 라인들이 추출되어 필터링된다. Pixels subject to deblocking filtering are
다른 신경망들처럼 직접적으로 픽셀 값을 생성하는 대신에 부호화 정보와 주변의 복호화 픽셀 값들에 의존하여 각각의 픽셀들에 대한 적응적이고 선형적인 필터를 이용하여 각각의 픽셀들이 필터링된다.Instead of directly generating pixel values like other neural networks, each pixel is filtered using an adaptive and linear filter for each pixel depending on encoding information and neighboring decoded pixel values.
도 2는 일 실시예에 따른 신경망 기반 디블로킹 필터링을 설명하기 위한 도면이다.2 is a diagram for explaining neural network-based deblocking filtering according to an exemplary embodiment.
도 2를 참조하면, 일 실시예에 따른 신경망 기반 디블로킹 필터링은 먼저 필터링 대상 픽셀(200)에 대한 부호화 정보(210)와 필터 대상 픽셀(200)에 기초하여 디블로킹 필터링을 위해 입력 데이터를 융합하는 입력 융합(220)을 수행한다. 부호화 정보(210)는 필터 대상 픽셀(200)의 부호화 단위 모드, 부호화 단위 크기 등을 포함한다. 그 후, 필터 계수를 생성하기 위한 입력의 특징 정보를 추출하기 위해, 입력 융합(220)을 통해 머지된 입력 데이터를 신경망을 통해 특징 추출(230)을 수행하여 특징 맵이 추출된다. 필터 생성(240)을 위해 머지된 입력 데이터와 추출된 특징 맵을 이용하여 객관적 화질 및 주관적 화질을 개선할 수 있는 필터 계수, 필터 보상 값, 및 필터 강도를 결정하고, 필터 생성(240) 과정을 통해 결정된 필터 계수, 필터 보상 값, 및 필터 강도와 필터 대상 픽셀(200)을 이용하여 동적 필터링(250)을 수행함으로써 필터링된 픽셀(260)이 획득된다. Referring to FIG. 2 , neural network-based deblocking filtering according to an embodiment first fuses input data for deblocking filtering based on encoding
도 3은 일 실시예에 따른 픽셀들에 대한 입력 데이터와 부호화 정보에 대한 입력 데이터를 융합하는 과정을 설명하기 위한 도면이다.3 is a diagram for explaining a process of fusing input data for pixels and input data for encoding information according to an exemplary embodiment.
도 3을 참조하면, 필터 대상 픽셀들(300)의 픽셀 값의 범위는 [0, 2bitdepth-1]이고, 필터 대상 픽셀들(300)에 대한 부호화 정보(310)는 부호화 단위의 부호화 정보로서, 주변 블록들 및 현재 블록의 인트라 모드, 인터 모드, 및 스킵 모드를 나타내는 부호화 단위 모드, 4, 8, 16, 32, 64, 128 등의 부호화 크기에 대한 정보를 포함할 수 있다. 또한, 부호화 정보(310)는 주변 블록들의 양자화 파라미터 값, 현재 블록의 양자화 파라미터 값도 포함할 수 있다. 신경망의 입력으로, 하나 또는 몇 개의 부호화 정보 대신에 복수의 부호화 정보들이 이용된다.Referring to FIG. 3 , the pixel value range of the
필터 대상 픽셀들(300)과 부호화 정보(310)는 서로 다른 도메인에 있으므로, 다양한 자원(source)로 수집된 데이터를 하나의 정보로 표현하는 멀티모달 콤비네이션(multimodal combination)이 필요하다. 즉, 부호화 정보를 접합(concatenation)하는 대신에 픽셀 값에 융합하기 전에 부호화 정보에 별개의 처리가 필요하다.Since the
도 3에서는 부호화 정보(310)를 필터 대상 픽셀들(300)에 머지(merge)하기 전에 부호화 정보(310)를 복수의 완전-연결된 레이어(fully-connected layer)들을 포함하는 신경망이 이용된다. 구체적으로, 부호화 정보(310)가 완전-연결된 레이어(FC)에 입력되어 제1 중간 특징맵(311)이 획득되고, 제1 중간 특징맵(311)이 다시 완전-연결된 레이어(FC)에 입력되어, 제2 중간 특징맵(312)이 획득되고, 제2 중간 특징맵(312)이 다시 완전-연결된 레이어(FC)에 입력되어, 제3 중간 특징맵(313)이 획득된다. 제3 중간 특징맵(313)의 값들을 필터 대상 픽셀들(300)과 동일한 크기로 타일(tile)화, 즉 재배열함으로써, 필터 대상 픽셀들(300)과 동일한 도메인의 부호화 정보 데이터(320)가 획득된다. 필터 대상 픽셀들(300)과 부호화 정보 데이터(320)를 머지하여, 머지된 입력 데이터(330)를 획득함으로써 입력 융합이 완료된다.In FIG. 3 , a neural network including a plurality of fully-connected layers of the
이러한 입력 융합 방법은 신경망 기반 디블로킹 필터링 외에 다른 신경망에도 이용될 수 있다. 이는 도 4 및 도 5에서 후술된다.This input fusion method can be used for other neural networks besides neural network-based deblocking filtering. This is described later in FIGS. 4 and 5 .
도 4는 다른 실시예에 따른 인루프 필터 네트워크에 입력하는 입력 데이터를 융합하는 과정을 설명하기 위한 도면이다.4 is a diagram for explaining a process of fusing input data input to an in-loop filter network according to another embodiment.
도 4를 참조하면, 인루프 필터링 대상 픽셀들(400)과 인루프 필터링 대상 픽셀들(400)에 대한 부호화 정보(410)를 융합하여 인루프 필터 네트워크(440)에 대한 머지 입력 데이터(430)가 생성된다. 인루프 필터링 대상 픽셀들(400)은 디블로킹 필터링 전의 픽셀들, 디블로킹 필터링 후의 픽셀들, SAO(sample adaptive offset) 필터링 후의 픽셀들, 또는 ALF(adaptive loop filtering) 후의 픽셀들 등일 수 있다. 부호화 정보(410)는 주변 블록들의 양자화 파라미터, 현재 블록의 양자화 파라미터, 주변 블록들의 부호화 단위 모드(인트라 모드, 인터 모드 등), 현재 블록의 부호화 단위 모드 등을 포함할 수 있다.Referring to FIG. 4 , merge
도 3과 동일하게, 도 4에서도, 부호화 정보(410)를 필터 대상 픽셀들(400)에 머지(merge)하기 전에 부호화 정보(410)를 복수의 완전-연결된 레이어(fully-connected layer)들을 포함하는 신경망이 이용된다. 구체적으로, 부호화 정보(410)가 완전-연결된 레이어(FC)에 입력되어 제1 중간 특징맵(411)이 획득되고, 제1 중간 특징맵(411)이 다시 완전-연결된 레이어(FC)에 입력되어, 제2 중간 특징맵(412)이 획득되고, 제2 중간 특징맵(412)이 다시 완전-연결된 레이어(FC)에 입력되어, 제3 중간 특징맵(413)이 획득된다. 제3 중간 특징맵(413)의 값들을 필터 대상 픽셀들(400)과 동일한 크기로 타일(tile)화, 즉 재배열함으로써, 필터 대상 픽셀들(300)과 동일한 도메인의 부호화 정보 데이터(420)가 획득된다. 필터 대상 픽셀들(400)과 부호화 정보 데이터(420)를 머지하여, 머지된 입력 데이터(430)를 획득함으로써 입력 융합이 완료된다.As in FIG. 3, in FIG. 4, the
머지된 입력 데이터(430)는 인루프 필터링을 위한 인루프 필터 네트워크(440)에 입력되어, 인루프 필터링된 픽셀들(450)이 획득된다.The
도 5는 다른 실시예에 따른 인트라 예측 네트워크에 입력하는 입력 데이터를 융합하는 과정을 설명하기 위한 도면이다.5 is a diagram for explaining a process of fusing input data input to an intra prediction network according to another embodiment.
도 5를 참조하면, 인트라 예측 대상 픽셀들(500)과 인트라 예측 대상 픽셀들(500)에 대한 부호화 정보(510)를 융합하여 인트라 예측 네트워크(540)에 대한 머지 입력 데이터(530)가 생성된다. 인트라 예측 대상 픽셀들(500)은 이용가능하고 복호화된 주변 픽셀들(501)과 인트라 예측의 대상인 제로 값으로 설정된 현재 블록의 픽셀들(502)을 포함한다. 부호화 정보(510)는 주변 블록들의 양자화 파라미터, 현재 블록의 양자화 파라미터, 주변 블록들의 부호화 단위 모드(인트라 모드, 인터 모드 등) 등을 포함할 수 있다.Referring to FIG. 5 , merge
도 3과 동일하게, 도 5에서도, 부호화 정보(510)를 인트라 예측 대상 픽셀들(500)에 머지(merge)하기 전에 부호화 정보(510)를 복수의 완전-연결된 레이어(fully-connected layer)들을 포함하는 신경망이 이용된다. 구체적으로, 부호화 정보(510)가 완전-연결된 레이어(FC)에 입력되어 제1 중간 특징맵(511)이 획득되고, 제1 중간 특징맵(511)이 다시 완전-연결된 레이어(FC)에 입력되어, 제2 중간 특징맵(512)이 획득되고, 제2 중간 특징맵(512)이 다시 완전-연결된 레이어(FC)에 입력되어, 제3 중간 특징맵(513)이 획득된다. 제3 중간 특징맵(513)의 값들을 인트라 예측 대상 픽셀들(500)과 동일한 크기로 타일(tile)화, 즉 재배열함으로써, 인트라 예측 대상 픽셀들(500)과 동일한 도메인의 부호화 정보 데이터(520)가 획득된다. 인트라 예측 대상 픽셀들(500)과 부호화 정보 데이터(520)를 머지하여, 머지된 입력 데이터(530)를 획득함으로써 입력 융합이 완료된다.As in FIG. 3, in FIG. 5, the
머지된 입력 데이터(530)는 인트라 예측을 위한 인트라 예측 네트워크(540)에 입력되어, 인트라 예측 픽셀들(550)이 획득된다.The
도 6은 일 실시예에 따른 입력 데이터를 특징 맵으로 출력하는 신경망을 설명하기 위한 도면이다.6 is a diagram for explaining a neural network that outputs input data as a feature map according to an exemplary embodiment.
도 6을 참조하면, 입력 데이터(600)의 특징을 추출하여 특징 맵을 획득하기 위한 신경망(650)은 복수의 컨볼루션 레이어들을 포함한다. Referring to FIG. 6 , a
입력 데이터(600)는 복수개의 레지듀얼 블록(ResBlock)들을 포함하는 신경망(650)에 입력된다. 레지듀얼 블록은 입력 데이터를 컨볼루션 레이어에 입력하여 제1 중간 특징맵(610)을 획득하고, 제1 중간 특징맵(620)을 다시 컨볼루션 레이어에 입력하여 제2 중간 특징맵(620)을 획득하고, 제2 중간 특징맵(620)과 입력 데이터를 더하여 출력을 획득하는 스킵-커넥션(skip-connection) 구조의 컨볼루션 연산을 의미한다.
입력 데이터(600)를 복수개의 레지듀얼 블록들을 포함하는 신경망(650)에 입력함으로써 입력 데이터(600)에 대한 특징 맵(660)이 획득된다.A
도 7은 일 실시예에 따른 머지 입력 데이터와 특징 맵에 기초하여 각각의 신경망을 통해 필터링 계수, 필터 보상 값, 및 필터 강도를 획득하는 방법을 설명하기 위한 도면이다.7 is a diagram for explaining a method of obtaining filtering coefficients, filter compensation values, and filter strengths through respective neural networks based on merged input data and feature maps, according to an exemplary embodiment.
도 7을 참조하면, 디블로킹 필터링을 위한 필터링 계수, 필터 보상 값, 필터 강도를 생성하기 위해, 디블로킹 필터 대상 픽셀과 부호화 정보를 머지한 머지 입력(700)과 머지 입력의 특징을 추출한 특징 맵(710)이 이용된다. 구체적으로, 특징 맵(710)을 입력으로 하여 필터링 계수 생성 신경망(720)의 출력으로 필터링 계수가 획득되고, 특징 맵(710)을 입력으로 하여 필터 보상 값 생성 신경망(730)의 출력으로 필터링 보상 값이 획득되고, 머지 입력(700)을 입력으로 하여 필터 강도 생성 신경망의 출력으로 필터 강도가 획득된다.Referring to FIG. 7 , a
복수개의 신경망은 복수의 필요한 필터링 정보를 생성하기 위한 것이다. 필터링 계수 생성 신경망(720)은 복호화 픽셀을 필터링된 픽셀 또는 필터링된 잔차(residual) 픽셀로 변환하기 위해 이용되고, 필터 보상 값 생성 신경망(730)은 필터링 계수에 따른 필터링 결과가 좋지 않는 경우 필터링을 보상하기 위해 이용되고, 필터 강도 생성 신경망(740)은 서로 다른 예측, 변환, 및 양자화에 의존하여, 서로 다른 에러를 가진 주변 블록들에 서로 다른 필터의 강도를 유연하게 적용하기 위해 이용된다.A plurality of neural networks are for generating a plurality of necessary filtering information. The filtering coefficient generating
필터링 계수 생성 신경망(720)과 필터 보상 값 생성 신경망(730)은 다른 신경망처럼 직접 픽셀 값을 생성하는 대신에 적응적 선형 필터와 뉴럴 생성(neural-generated) 픽셀 값을 조합한 필터를 적용하기 위해 이용된다. The filtering coefficient generating
필터 강도 생성 신경망(740)은 경계의 양 사이드에 다른 필터 강도를 적용하여, 더 오류가 많은 쪽은 강한 필터가 이용되고, 오류가 덜 많은 쪽은 약한 필터가 이용된다. 즉, 네트워크에 의해 학습된 스케일링에 의해 강한 필터 또는 약한 필터가 구현된다.The filter strength generator
이하에서 후술되는 도 8 내지 도 15의 디블로킹 필터들은 크게 "픽셀 필터"와 "잔차 필터"의 2가지 종류로 구분된다. "픽셀 필터"는 필터링 계수, 필터 보상 값, 및 필터 강도 중 적어도 하나를 이용한 결과가 필터링 픽셀인 필터이고, "잔차 필터"는 필터링 계수, 필터 보상 값, 및 필터 강도 중 적어도 하나를 이용한 결과가 잔차 필터링 픽셀이어서 다시 필터링 대상 픽셀을 더함으로써 필터링 픽셀이 획득되는 필터이다.The deblocking filters of FIGS. 8 to 15 to be described later are largely classified into two types: a “pixel filter” and a “residual filter”. A "pixel filter" is a filter in which a result of using at least one of a filtering coefficient, a filter compensation value, and a filter strength is a filtered pixel, and a "residual filter" is a filter in which a result of using at least one of a filtering coefficient, a filter compensation value, and a filter strength is a filter. It is a filter in which a filtering pixel is obtained by adding a pixel to be filtered again since it is a residual filtering pixel.
도 8은 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하여 필터링된 픽셀 라인을 획득하는 과정을 설명하기 위한 도면이다.8 is a diagram for explaining a process of obtaining a filtered pixel line using neural network-based deblocking filtering according to an exemplary embodiment.
도 8을 참조하면, 디블로킹 필터 대상 픽셀들, 필터링 계수, 필터 보상 값, 및 필터 강도를 이용하는 동적 필터링(dynamic filtering)은 행렬 곱셈(matrix multiplication)을 이용하여 수행될 수 있다. 먼저, 디블로킹 필터링 대상 픽셀들과 특징 맵 중 하나(805)에 기초하여 신경망(860)을 통해 필터링 계수(830), 필터 보상 값(840), 및 필터 강도(850)가 획득된다. 신경망(860)은 필터링 계수(830), 필터 보상 값(840), 및 필터 강도(850) 각각을 획득하기 위한 신경망들을 포함한다. 구체적으로, 필터링 계수(830)와 필터 보상 값(840)은 특징 맵에 기초하여 결정되고, 필터 강도(850)는 디블로킹 필터링 대상 픽셀들에 기초하여 결정된다.Referring to FIG. 8 , dynamic filtering using deblocking filter target pixels, filtering coefficients, filter compensation values, and filter strengths may be performed using matrix multiplication. First, a
디블로킹 필터 대상 픽셀 라인(820)과 필터링 계수(830)에 대하여 행렬 곱셈의 선형 연산이 수행된다. 선형 연산 결과에 필터 보상 값(840)을 더하여 잔차 필터링 픽셀 라인이 획득되고, 잔차 필터링 픽셀 라인에 필터 강도(850)를 곱한 뒤 디블로킹 필터 대상 픽셀 라인(820)을 더하여 필터링된 픽셀 라인(810)이 획득된다.A linear operation of matrix multiplication is performed on the deblocking filter
도 8의 동적 필터링을 수학식으로 나타내면, 아래 수학식 1과 같이 표현된다.The dynamic filtering of FIG. 8 is expressed as
[수학식 1][Equation 1]
여기서, 예를 들어, x는 디블로킹 필터링의 대상인 복호화 픽셀 라인을 나타내는 픽셀 값의 8X1의 벡터이고, W는 필터링 계수를 나타내는 8X8 행렬이고, b는 필터 보상 값을 나타내는 8X1의 벡터이고, s는 필터링 강도를 나타내는 8X1의 벡터이고, *는 성분 곱(Element-wise multiplication)을 나타내고, 는 필터링된 픽셀 라인을 나타낸다.Here, for example, x is an 8X1 vector of pixel values representing a decoded pixel line subject to deblocking filtering, W is an 8X8 matrix representing filtering coefficients, b is an 8X1 vector representing filter compensation values, and s is It is an 8X1 vector representing the filtering strength, * represents element-wise multiplication, represents the filtered pixel line.
구체적으로, x×W는 행렬 곱셈의 선형 연산에 의해 출력된 잔차 픽셀 필터링 값이고, b는 선형 연산의 결과가 좋지 않는 경우를 위한 신경망에 의한 잔차 픽셀 보상 값이고, s는 블록 경계의 각 사이드에 적용해야 하는 필터링의 정도를 나타내는 것으로, 예를 들어, 오류가 더 많은 쪽은 s가 1.0이 되고, 오류가 적은 쪽은 s가 0.0이 될 수 있다.Specifically, x × W is the residual pixel filtering value output by the linear operation of matrix multiplication, b is the residual pixel compensation value by the neural network for the case where the result of the linear operation is not good, and s is each side of the block boundary This indicates the degree of filtering that should be applied to . For example, s may be 1.0 for more errors, and s may be 0.0 for less errors.
도 8의 필터는 잔차 필터링 픽셀에 필터링 대상 픽셀을 더함으로써 필터링 픽셀이 획득되는 잔차 필터의 한 예시이다.The filter of FIG. 8 is an example of a residual filter in which a filtering pixel is obtained by adding a filtering target pixel to a residual filtering pixel.
도 9는 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하여 필터링된 픽셀 라인을 획득하는 과정을 설명하기 위한 도면이다.9 is a diagram for explaining a process of obtaining a filtered pixel line using neural network-based deblocking filtering according to an exemplary embodiment.
도 9를 참조하면, 필터링 계수만을 이용한 동적 필터링이 수행될 수 있다. 먼저, 디블로킹 필터링 대상 픽셀들과 특징 맵 중 하나(905)에 기초하여 신경망(960)을 통해 필터링 계수(930)가 획득된다. 구체적으로, 필터링 계수(930)는 특징 맵에 기초하여 결정된다.Referring to FIG. 9 , dynamic filtering using only filtering coefficients may be performed. First, a
신경망(960)은 필터링 계수(930)를 획득하기 위한 신경망을 포함한다. 디블로킹 필터 대상 픽셀 라인(920)과 필터링 계수(930)에 대하여 행렬 곱셈의 선형 연산을 수행함으로써 필터링된 픽셀 라인(910)이 획득된다.
도 9의 동적 필터링을 수학식으로 나타내면, 아래 수학식 2와 같이 표현된다.The dynamic filtering of FIG. 9 is expressed as Equation 2 below.
[수학식 2][Equation 2]
도 9의 필터는 선형 연산에 의해 필터링된 픽셀이 바로 출력되는 픽셀 필터의 한 예시이다.The filter of FIG. 9 is an example of a pixel filter in which pixels filtered by a linear operation are directly output.
도 10은 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하여 필터링된 픽셀 라인을 획득하는 과정을 설명하기 위한 도면이다.10 is a diagram for explaining a process of obtaining a filtered pixel line using neural network-based deblocking filtering according to an exemplary embodiment.
도 10을 참조하면, 필터링 계수와 필터 보상 값을 이용한 동적 필터링이 수행될 수 있다. 먼저, 디블로킹 필터링 대상 픽셀들과 특징 맵 중 하나(1005)에 기초하여 신경망(1060)을 통해 필터링 계수(1030) 및 필터 보상 값(1040)이 획득된다. 신경망(1060)은 필터링 계수(1030) 및 필터 보상 값(1040) 각각을 획득하기 위한 신경망들을 포함한다. 구체적으로, 필터링 계수(1030) 및 필터 보상 값(1040)은 특징 맵에 기초하여 결정된다.Referring to FIG. 10 , dynamic filtering may be performed using filtering coefficients and filter compensation values. First, a
디블로킹 필터 대상 픽셀 라인(1020)과 필터링 계수(1030)에 행렬 곱셈의 선형 연산이 수행되고, 선형 연산 결과에 필터 보상 값(1040)을 더하여 필터링된 픽셀 라인(1010)이 획득된다. A linear operation of matrix multiplication is performed on the deblocking filter
도 10의 동적 필터링을 수학식으로 나타내면, 아래 수학식 3과 같이 표현된다.The dynamic filtering of FIG. 10 is expressed as
[수학식 3][Equation 3]
도 10의 필터는 필터링 계수를 곱하고, 필터 보상값을 더함으로써 필터링된 픽셀이 바로 출력되는 픽셀 필터의 한 예시이다.The filter of FIG. 10 is an example of a pixel filter in which a filtered pixel is directly output by multiplying a filtering coefficient and adding a filter compensation value.
도 11은 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하여 필터링된 픽셀 라인 획득하는 과정을 설명하기 위한 도면이다.11 is a diagram for explaining a process of obtaining a filtered pixel line using neural network-based deblocking filtering according to an exemplary embodiment.
도 11을 참조하면, 필터링 계수와 단위 행렬을 이용한 동적 필터링이 수행될 수 있다. 먼저, 디블로킹 필터링 대상 픽셀들과 특징 맵 중 하나(1105)에 기초하여 신경망(1160)을 통해 필터링 계수(1130)가 획득된다. 구체적으로, 필터링 계수(1130)는 특징 맵에 기초하여 결정된다.Referring to FIG. 11 , dynamic filtering may be performed using filtering coefficients and an identity matrix. First, a
신경망(1160)은 필터링 계수(1130)를 획득하기 위한 신경망을 포함한다. 필터링 계수(1130)와 단위 행렬(1170)를 더한 값과 디블로킹 필터 대상 픽셀 라인(1120)에 대하여 행렬 곱셈의 선형 연산을 수행함으로써 필터링된 픽셀 라인(1110)이 획득된다.Neural network 1160 includes a neural network for obtaining
도 11의 동적 필터링을 수학식으로 나타내면, 아래 수학식 4와 같이 표현된다.The dynamic filtering of FIG. 11 is expressed as Equation 4 below.
[수학식 4][Equation 4]
여기서, I는 단위 행렬(Identity matrix)을 나타낸다.Here, I represents an identity matrix.
도 11의 필터는 필터링된 픽셀이 바로 출력되는 픽셀 필터의 한 예시이다. The filter of FIG. 11 is an example of a pixel filter in which filtered pixels are directly output.
도 12는 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하여 필터링된 픽셀 라인을 획득하는 과정을 설명하기 위한 도면이다.12 is a diagram for explaining a process of obtaining a filtered pixel line using neural network-based deblocking filtering according to an exemplary embodiment.
도 12를 참조하면, 필터링 계수와 디블로킹 필터 대상 픽셀을 이용한 동적 필터링이 수행될 수 있다. 먼저, 디블로킹 필터링 대상 픽셀들과 특징 맵 중 하나(1205)에 기초하여 신경망(1260)을 통해 필터링 계수(1230)가 획득된다. 구체적으로, 필터링 계수(1230)는 특징 맵에 기초하여 결정된다.Referring to FIG. 12 , dynamic filtering may be performed using filtering coefficients and deblocking filter target pixels. First, a
신경망(1260)은 필터링 계수(1230)를 획득하기 위한 신경망을 포함한다. 필터링 계수(1230)와 디블로킹 필터 대상 픽셀 라인(1220)에 대하여 행렬 곱셈의 선형 연산이 수행되고, 선형 연산 결과에 디블로킹 필터 대상 픽셀 라인(1220)을 더함으로써 필터링된 픽셀 라인(1210)이 획득된다.
도 12의 동적 필터링을 수학식으로 나타내면, 아래 수학식 5와 같이 표현된다.The dynamic filtering of FIG. 12 is expressed as Equation 5 below.
[수학식 5][Equation 5]
도 12의 필터는 잔차 필터링 픽셀에 필터링 대상 픽셀을 더함으로써 필터링 픽셀이 획득되는 잔차 필터의 한 예시이다.The filter of FIG. 12 is an example of a residual filter in which a filtering pixel is obtained by adding a filtering target pixel to a residual filtering pixel.
도 13은 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하여 필터링된 픽셀 라인을 획득하는 과정을 설명하기 위한 도면이다.13 is a diagram for explaining a process of obtaining a filtered pixel line using neural network-based deblocking filtering according to an exemplary embodiment.
도 13을 참조하면, 디블로킹 필터 대상 픽셀, 필터링 계수, 및 필터 보상 값을 이용한 동적 필터링이 수행될 수 있다. 먼저, 디블로킹 필터링 대상 픽셀들과 특징 맵 중 하나(1305)에 기초하여 신경망(1360)을 통해 필터링 계수(1330) 및 필터 보상 값(1340)이 획득된다. 신경망(1360)은 필터링 계수(1330) 및 필터 보상 값(1340) 각각을 획득하기 위한 신경망들을 포함한다. 구체적으로, 필터링 계수(1330)와 필터 보상 값(1340)은 특징 맵에 기초하여 결정된다.Referring to FIG. 13 , dynamic filtering may be performed using a deblocking filter target pixel, a filtering coefficient, and a filter compensation value. First, a
디블로킹 필터 대상 픽셀 라인(1320)과 필터링 계수(1330)에 대하여 행렬 곱셈의 선형 연산이 수행된다. 선형 연산 결과에 필터 보상 값(1340)을 더하여 잔차 필터링 픽셀 라인이 획득되고, 잔차 필터링 픽셀 라인에 다시 디블로킹 필터 대상 픽셀 라인(1320)을 더함으로써 필터링된 픽셀 라인(1310)이 획득된다.A linear operation of matrix multiplication is performed on the deblocking filter
도 13의 동적 필터링을 수학식으로 나타내면, 아래 수학식 6과 같이 표현된다.The dynamic filtering of FIG. 13 is expressed as
[수학식 6][Equation 6]
도 13의 필터는 잔차 필터링 픽셀에 필터링 대상 픽셀을 더함으로써 필터링 픽셀이 획득되는 잔차 필터의 한 예시이다.The filter of FIG. 13 is an example of a residual filter in which a filtering pixel is obtained by adding a filtering target pixel to a residual filtering pixel.
도 14는 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하여 필터링된 픽셀 라인을 획득하는 과정을 설명하기 위한 도면이다.14 is a diagram for explaining a process of obtaining a filtered pixel line using neural network-based deblocking filtering according to an exemplary embodiment.
도 14를 참조하면, 디블로킹 필터 대상 픽셀, 필터링 계수, 필터 보상 값, 및 단위 행렬을 이용한 동적 필터링이 수행될 수 있다. 먼저, 디블로킹 필터링 대상 픽셀들과 특징 맵 중 하나(1405)에 기초하여 신경망(1460)을 통해 필터링 계수(1430) 및 필터 보상 값(1440)이 획득된다. 신경망(1460)은 필터링 계수(1430) 및 필터 보상 값(1440) 각각을 획득하기 위한 신경망들을 포함한다. 구체적으로, 필터링 계수(1430)와 필터 보상 값(1440)은 특징 맵에 기초하여 결정된다.Referring to FIG. 14 , dynamic filtering may be performed using a deblocking filter target pixel, a filtering coefficient, a filter compensation value, and an identity matrix. First, a
필터링 계수(1430)와 단위 행렬(1470)을 더한 값과 디블로킹 필터 대상 픽셀 라인(1420)에 대하여 행렬 곱셈의 선형 연산이 수행되고, 선형 연산 결과에 필터 보상 값(1440)을 더함으로써 필터링된 픽셀 라인(1410)이 획득된다.A linear operation of matrix multiplication is performed on the value obtained by adding the
도 14의 동적 필터링을 수학식으로 나타내면, 아래 수학식 7과 같이 표현된다.The dynamic filtering of FIG. 14 is expressed as Equation 7 below.
[수학식 7][Equation 7]
도 14의 필터는 필터링된 픽셀이 바로 출력되는 픽셀 필터의 한 예시이다.The filter of FIG. 14 is an example of a pixel filter in which filtered pixels are directly output.
도 8 내지 도 14의 동적 필터링은 복수의 컨볼루션 레이어들을 포함하는 신경망들이 더 좋은 성능을 위해 부호화 구성에 매칭되는 것으로 스위칭됨으로써 결정될 수 있다.The dynamic filtering of FIGS. 8 to 14 may be determined by switching neural networks including a plurality of convolutional layers to those matching the coding scheme for better performance.
예를 들어, 필터링 계수, 필터 보상 값, 필터링 강도를 결정하기 위한 각각의 신경망들은 각기 다른 부호화 조건하에서 훈련되고, 필터링의 테스트에서는 부호화 조건에 기초하여 대응하는 신경망 파라미터들(가중치들 및 바이어스들)을 로딩(loading)하여 필터링 대상 픽셀들을 필터링할 수 있다. 따라서, 양자화 파라미터의 다른 범위에 대하여 다른 신경망 파라미터를 가지는 신경망들이 이용되거나, 다른 시간적 레이어(temporal layer)(인트라, 인터)에 대하여 다른 신경망 파라미터를 가지는 다른 신경망들이 이용될 수 있다.For example, each of the neural networks for determining the filtering coefficient, filter compensation value, and filtering strength is trained under different coding conditions, and in the filtering test, the corresponding neural network parameters (weights and biases) based on the coding condition Filtering target pixels may be filtered by loading . Thus, neural networks with different neural network parameters can be used for different ranges of quantization parameters, or different neural networks with different neural network parameters can be used for different temporal layers (intra, inter).
한편, 훈련된 파라미터에 기초하여 성능을 테스트하는 경우에, 훈련 시의 성능과 테스트 시의 성능 사이의 차이가 발생될 수 있다. 이러한 차이를 "일반화 갭(generalization gap)이라고 한다.Meanwhile, when performance is tested based on trained parameters, a difference between performance during training and performance during testing may occur. This difference is called the “generalization gap”.
훈련과 테스트 사이의 일반화 갭은 인트라/인터 프레임에 저하를 가져올 수 있다. 낮은 시간 레이어는 인코딩에서 더 많이 참조된다. 예를 들어, 인트라 프레임은 GOP 4에 대하여 최대 3번 참조될 수 있다. 여러 번 참조되는 픽셀들은 많이 수정되지 않아야 하기 때문에, 도 15에서 후술되는 바와 같이, 다른 시간 레이어에 대하여 다르게 적용하는 스케일링 인자가 이용될 수 있다.A generalization gap between training and testing can result in degradation of intra/inter frames. Lower temporal layers are referenced more in encoding. For example, an intra frame can be referenced up to 3 times for GOP 4. Since pixels referenced multiple times should not be modified much, as will be described later in FIG. 15 , scaling factors that apply differently to different temporal layers can be used.
도 15는 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하여 필터링된 픽셀 라인을 획득하는 과정을 설명하기 위한 도면이다.15 is a diagram for explaining a process of obtaining a filtered pixel line using neural network-based deblocking filtering according to an exemplary embodiment.
도 15를 참조하면, 디블로킹 필터 대상 픽셀들, 필터링 계수, 필터 보상 값, 필터 강도, 및 스케일링 인자를 이용하는 동적 필터링(dynamic filtering)은 행렬 곱셈을 이용하여 수행될 수 있다. 먼저, 디블로킹 필터링 대상 픽셀들과 특징 맵 중 하나(1505)에 기초하여 신경망(1560)을 통해 필터링 계수(1530), 필터 보상 값(1540), 및 필터 강도(1550)가 획득된다. 신경망(1560)은 필터링 계수(1530), 필터 보상 값(1540), 및 필터 강도(1550) 각각을 획득하기 위한 신경망들을 포함한다. 디블로킹 필터 대상 픽셀 라인(1520)과 필터링 계수(1530)에 대하여 행렬 곱셈의 선형 연산이 수행되고, 선형 연산 결과에 필터 보상 값(1540)을 더한 결과에 필터 강도(1550)를 곱한 뒤, 그 결과에 다시 스케일링 인자(1580)를 곱하여 잔차 필터링 픽셀 라인이 획득된다. 잔차 디블로킹 픽셀 라인에 디블로킹 필터 대상 픽셀 라인(1520)을 더하여 필터링된 픽셀 라인(1510)이 획득된다.Referring to FIG. 15 , dynamic filtering using deblocking filter target pixels, filtering coefficients, filter compensation values, filter strengths, and scaling factors may be performed using matrix multiplication. First, a
도 15의 동적 필터링을 수학식으로 나타내면, 아래 수학식 8과 같이 표현된다.The dynamic filtering of FIG. 15 is expressed as Equation 8 below.
[수학식 8][Equation 8]
여기서, 예를 들어, x는 디블로킹 필터링의 대상인 복호화 픽셀 라인을 나타내는 픽셀 값의 8X1의 벡터이고, W는 필터링 계수를 나타내는 8X8 행렬이고, b는 필터 보상 값을 나타내는 8X1의 벡터이고, s는 필터링 강도를 나타내는 8X1의 벡터이고, *는 성분 곱(Element-wise multiplication)을 나타내고, STL은 다른 시간적 레이어에 따라 결정되는 스케일링 인자를 나타내고, 는 필터링된 픽셀 라인을 나타낸다.Here, for example, x is an 8X1 vector of pixel values representing a decoded pixel line subject to deblocking filtering, W is an 8X8 matrix representing filtering coefficients, b is an 8X1 vector representing filter compensation values, and s is An 8X1 vector representing filtering strength, * represents element-wise multiplication, S TL represents a scaling factor determined according to another temporal layer, represents the filtered pixel line.
스케일링 인자 STL은 낮은 시간적 레이어의 프레임에 대하여 더 작게 설정된다. 예를 들어, 인트라 프레임에 대하여 스케일링 인자는 0.5로 결정되고, 다른 프레임들에 대하여 1로 결정될 수 있다.The scaling factor S TL is set smaller for frames of lower temporal layers. For example, the scaling factor may be determined to be 0.5 for an intra frame and 1 for other frames.
도 15의 필터는 잔차 필터링 픽셀에 필터링 대상 픽셀을 더함으로써 필터링 픽셀이 획득되는 잔차 필터의 한 예시이다.The filter of FIG. 15 is an example of a residual filter in which a filtering pixel is obtained by adding a filtering target pixel to a residual filtering pixel.
후술되는 도 16 내지 도 33은 신경망 기반 디블로킹 필터링의 구조의 다양한 실시예를 설명하는 도면으로, 신경망 기반 디블로킹 필터링의 구조는 이에 한정되지 않는다.16 to 33 are diagrams for explaining various embodiments of a structure of neural network-based deblocking filtering, and the structure of neural network-based deblocking filtering is not limited thereto.
도 16은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 개략적인 구조를 설명하기 위한 도면이다.16 is a diagram for explaining a schematic structure of neural network-based deblocking filtering according to an embodiment.
도 16을 참조하면, 디블로킹 필터 대상 픽셀들(1610)에 대한 부호화 정보(1615)를 복수의 완전 연결된 레이어들을 포함하는 완전 연결 신경망(1620)을 통해 출력된 결과를 디블로킹 필터 대상 픽셀들(1610)과 동일한 크기로 변환하여 부호화 정보 입력 데이터(1625)가 획득된다. 디블로킹 필터 대상 픽셀들(1610)과 부호화 정보 입력 데이터(1625)를 머지하여, 입력 융합의 결과인 머지 입력 데이터(1630)가 획득된다. Referring to FIG. 16 , encoding
머지 입력 데이터(1630)를 입력으로 하여 특징 추출 신경망(1635)을 통해 특징 맵(1640)이 획득된다. 특징 맵(1640)을 입력으로 하여 필터 계수 신경망(1650)을 통해 필터 계수(1665)가 획득되고, 특징 맵(1640)을 입력으로 하여 필터 보상 값 신경망(1655)을 통해 필터 보상 값(1670)이 획득된다.A
또한, 머지 입력 데이터(1630)를 입력으로 하여 필터 강도 신경망(1645)을 통해 필터 강도(1660)가 획득된다.In addition, the
필터링 대상 픽셀들(1610)과 필터 계수(1665)에 대하여 행렬 곱셈의 선형 연산(1675)을 수행하여 선형 연산 결과가 획득되고, 선형 연산 결과에 필터 보상 값(1670)을 더하고(1680), 필터 보상 값(1670)을 더한 값에 필터 강도(1660)를 성분 곱(1685)하여 잔차 필터링 픽셀들이 획득되고, 잔차 필터링 픽셀들에 필터링 대상 픽셀들(1610)을 다시 더함(1690)으로써 필터링된 픽셀들(1695)이 출력된다.A
도 16의 신경망 기반 디블로킹 필터링은, 몇가지의 손으로 계산된 필터들의 필터 계수들 대신에 선형 행렬 곱셈에 의해 수행되는 필터링의 하나의 픽셀 라인에 대한 필터링 계수 세트를 생성하고, 생성된 필터 계수로 설정된 선형 필터가 제대로 작동하지 않는 경우, 즉 결과가 좋지 않은 경우에 필터링 결과를 보상하기 위한 필터 보상 값을 생성하고, 현재 경계 근처의 블록의 서로 다른 코딩 에러들에 대한 필터링을 위해 필터링의 일부를 적응적으로 적용하는 필터 강도를 생성하여 이용한다. 또한, 복호화된 픽셀 값뿐만 아니라 부호화 정보를 이용하여 필터링의 성능이 개선된다. 픽셀 값과 부호화 정보는 서로 다른 양식(modality)을 가지기 때문에, 픽셀 값에 머지하기 전에 복수의 완전 연결 레이어들로 부호화 정보가 처리된다. 이러한 입력 융합은 도 4 및 도 5에서 전술된 바와 같이, 인루프 필터, 인트라 예측과 같은 다른 방법에도 이용될 수 있다. The neural network-based deblocking filtering of FIG. 16 generates a filtering coefficient set for one pixel line of filtering performed by linear matrix multiplication instead of filter coefficients of several hand-calculated filters, and uses the generated filter coefficients. When the set linear filter does not work properly, that is, when the result is not good, a filter compensation value is generated to compensate for the filtering result, and a part of the filtering is performed for filtering different coding errors of blocks near the current boundary. An adaptively applied filter strength is created and used. In addition, filtering performance is improved by using not only decoded pixel values but also encoding information. Since pixel values and encoding information have different modalities, encoding information is processed in a plurality of fully connected layers before being merged into pixel values. Such input fusion can also be used in other methods such as in-loop filters and intra prediction, as described above in FIGS. 4 and 5 .
필터링된 픽셀 값을 생성하기 위해, 선형 필터 계수, 필터 보상, 및 필터 강도를 이용하는 다른 방법들이 적용된다. 예를 들어, 필터링된 픽셀 값이 직접 생성될 수 있고, 필터링된 잔차 픽셀 값이 생성될 수 있다.To generate the filtered pixel values, other methods using linear filter coefficients, filter compensation, and filter strength are applied. For example, filtered pixel values can be generated directly, and filtered residual pixel values can be generated.
또한, 더 좋은 코딩 효율을 위해 다른 부호화 조건에 대해 다른 미리 훈련된 모델이 선택될 수 있다.Also, different pre-trained models can be selected for different coding conditions for better coding efficiency.
또한, 복호화된 픽셀에 필터링 출력의 일부에 적용하는 다른 시간적 레이어에 대해 다른 스케일링 인자가 이용될 수 있다.Also, different scaling factors can be used for different temporal layers that apply a portion of the filtering output to the decoded pixels.
도 17은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.17 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
도 17을 참조하면, 디블로킹 필터 대상 픽셀 라인들의 크기는 1xNxM이고, 이는 M개의 픽셀들을 하나의 라인으로 하여 N개의 라인임을 의미한다. 또한, 부호화 정보는 1xN/4xP의 메타데이터이고, 이는 각 4개의 라인에 대한 N/4개의 세트의 부호화 정보와 P개의 부호화 정보를 의미한다. Referring to FIG. 17, the size of pixel lines subject to deblocking filter is 1xNxM, which means that M pixels are one line and N lines. Also, the encoding information is 1xN/4xP metadata, which means N/4 sets of encoding information and P pieces of encoding information for each of 4 lines.
부호화 정보는 주변 부호화 단위의 양자화 파라미터, 현재 부호화 단위의 양자화 파라미터, 주변 부호화 단위의 부호화 모드(인트라/인터), 현재 부호화 단위의 부호화 모드(인트라/인터) 등을 포함할 수 있다.The encoding information may include a quantization parameter of a neighboring coding unit, a quantization parameter of a current coding unit, a coding mode (intra/inter) of a neighboring coding unit, a coding mode (intra/inter) of a current coding unit, and the like.
부호화 정보의 메타데이터(1715)는 완전 연결된 레이어(FC)에 입력되어 제1 중간 특징맵(1720)으로 출력된다. 제1 중간 특징맵(1720)은 완전 연결된 레이어(FC)에 입력되어 제2 중간 특징맵(1721)으로 출력된다. 제2 중간 특징맵(1721)은 완전 연결된 레이어(FC)에 입력되어 제3 중간 특징맵(1722)으로 출력된다. 제3 중간 특징맵(1722)은 디블로킹 필터링 대상 픽셀 라인들(1710)의 크기와 동일하도록 재배열하여 타일(tile)화함으로써, 디블로킹 필터링 대상 픽셀 라인들(1710)의 크기와 동일한 1xNxM의 메타데이터 입력(1725)이 획득된다.The
1xNxM의 디블로킹 필터링 대상 픽셀 라인들(1710)과 1xNxM의 메타데이터 입력(1725)을 접합(concatenation)함으로써 2xNxM의 머지 입력(1730)이 획득된다.A
머지 입력(1730)에 컨볼루션 연산(C)을 수행하여 제1 특징맵(1731)이 획득되고, 제1 특징맵(1731)에 대하여 6번의 레지듀얼 블록 연산(1735)을 수행하여 결과적으로 머지 입력(1730)에 대한 특징 맵(1740)이 추출된다. 레지듀얼 블록 연산은 예를 들어, 입력 데이터에 컨볼루션 연산을 수행하여 획득된 제1 중간 특징맵(1732)에 다시 컨볼루션 연산을 수행하여 획득된 제2 중간 특징맵(1733)에 입력 데이터를 다시 더하여 출력을 획득하는 스킵-커넥션(skip-connection) 구조의 컨볼루션 연산이다.A
머지 입력(1730)의 특징 맵(1740)에 대하여 컨볼루션 연산(C), 레지듀얼 블록 연산(1750), 및 컨볼루션 연산(C)을 수행하여 M2xNx1 커널의 디블로킹 필터링 계수(1765)가 획득되고, 머지 입력(1730)의 특징 맵(1740)에 대하여 레지듀얼 블록 연산(1755) 및 컨볼루션 연산(C)을 수행하여 MxNx1의 디블로킹 필터링 보상 값(1770)이 획득된다. 여기서, 컨볼루션 연산(C), 레지듀얼 블록 연산(1750), 및 컨볼루션 연산(C)은 필터 계수 신경망에 대응되고, 레지듀얼 블록 연산(1755) 및 컨볼루션 연산(C)은 필터링 보상값 신경망에 대응된다. 또한, 머지 입력(1730)에 복수의 컨볼루션 연산을 포함하는 필터 강도 신경망(1745)을 통해 1xNxM의 필터링 강도(1760)가 획득된다.A deblocking filtering coefficient (1765) of the M 2 xNx1 kernel by performing a convolution operation (C), a residual block operation (1750), and a convolution operation (C) on the feature map (1740) of the merge input (1730) is obtained, and a deblocking
위와 같이, 신경망에 기반하여 획득된 디블로킹 필터링 계수(1765), 디블로킹 필터링 보상 값(1770), 필터링 강도(1760)와, 머지 입력(1730) 중에서 디블로킹 필터링 대상 픽셀 라인들(1710)을 이용하여 신경망 기반의 디블로킹 필터링이 수행된다.As described above, among the deblocking
구체적으로, 디블로킹 필터링 대상 픽셀 라인들(1710)과 디블로킹 필터링 계수(1765)를 이용하여 행렬 곱셈의 선형 연산(1775)이 수행되고, 선형 연산의 결과에 디블로킹 필터링 보상 값(1770)을 더하고(1780), 보상 값이 더해진 결과에 필터링 강도(1760)를 이용하여 성분 곱(1785)을 수행하여 잔차 필터링 픽셀 라인들이 획득되고, 잔차 필터링 픽셀 라인들에 디블로킹 필터링 대상 픽셀 라인들(1710)을 다시 더하여(1790) 1xNxM의 디블로킹 필터링된 픽셀 라인들(1795)이 획득된다.Specifically, a
도 18은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.18 is a diagram for explaining a structure of neural network-based deblocking filtering according to an embodiment.
도 18을 참고하면, 디블로킹 필터 대상 픽셀 라인들의 크기는 1xNx8이고, 이는 8개의 픽셀들을 하나의 라인으로 하여 N개의 라인임을 의미한다. 또한, 부호화 정보는 1xN/4x6의 메타데이터이고, 이는 각 4개의 라인에 대한 N/4개의 세트의 부호화 정보와 6개의 부호화 정보를 의미한다. Referring to FIG. 18 , the size of pixel lines subject to the deblocking filter is 1xNx8, which means that 8 pixels are one line and there are N lines. Also, the encoding information is 1xN/4x6 metadata, which means N/4 sets of encoding information and 6 pieces of encoding information for each of the 4 lines.
부호화 정보는 주변 부호화 단위의 양자화 파라미터, 현재 부호화 단위의 양자화 파라미터, 주변 부호화 단위의 부호화 모드(인트라/인터), 현재 부호화 단위의 부호화 모드(인트라/인터) 등을 포함할 수 있다.The encoding information may include a quantization parameter of a neighboring coding unit, a quantization parameter of a current coding unit, a coding mode (intra/inter) of a neighboring coding unit, a coding mode (intra/inter) of a current coding unit, and the like.
부호화 정보의 메타데이터(1815)는 완전 연결된 레이어(FC)에 입력되어 제1 중간 특징맵(1820)으로 출력된다. 제1 중간 특징맵(1820)은 완전 연결된 레이어(FC)에 입력되어 제2 중간 특징맵(1821)으로 출력된다. 제2 중간 특징맵(1821)은 완전 연결된 레이어(FC)에 입력되어 제3 중간 특징맵(1822)으로 출력된다. 제3 중간 특징맵(1822)은 디블로킹 필터링 대상 픽셀 라인들(1810)의 크기와 동일하도록 재배열하여 타일(tile)화함으로써, 디블로킹 필터링 대상 픽셀 라인들(1810)의 크기와 동일한 1xNx8의 메타데이터 입력(1825)이 획득된다.The
1xNx8의 디블로킹 필터링 대상 픽셀 라인들(1810)과 1xNx8의 메타데이터 입력(1825)을 접합(concatenation)함으로써 2xNx8의 머지 입력(1830)이 획득된다.A
머지 입력(1830)에 컨볼루션 연산(C)을 수행하여 제1 특징맵(1831)이 획득되고, 제1 특징맵(1831)에 대하여 6번의 레지듀얼 블록 연산(1835)을 수행하여 결과적으로 머지 입력(1730)에 대한 특징 맵이 추출된다. A
머지 입력(1830)의 특징 맵에 대하여 컨볼루션 연산(C), 레지듀얼 블록 연산(1850), 및 컨볼루션 연산(C)을 수행하여 64xNx1 커널의 디블로킹 필터링 계수(1865)가 획득되고, 머지 입력(1830)의 특징 맵에 대하여 레지듀얼 블록 연산(1855) 및 컨볼루션 연산(C)을 수행하여 8xNx1의 디블로킹 필터링 보상 값(1870)이 획득된다. 여기서, 컨볼루션 연산(C), 레지듀얼 블록 연산(1850), 및 컨볼루션 연산(C)은 필터 계수 신경망에 대응되고, 레지듀얼 블록 연산(1855) 및 컨볼루션 연산(C)은 필터링 보상값 신경망에 대응된다. A
위와 같이, 신경망에 기반하여 획득된 디블로킹 필터링 계수(1865), 디블로킹 필터링 보상 값(1870)과, 머지 입력(1830) 중에서 디블로킹 필터링 대상 픽셀 라인들(1810)을 이용하여 신경망 기반의 디블로킹 필터링이 수행된다.As described above, the
구체적으로, 디블로킹 필터링 대상 픽셀 라인들(1810)과 디블로킹 필터링 계수(1865)를 이용하여 행렬 곱셈의 선형 연산(1875)이 수행되고, 선형 연산의 결과에 디블로킹 필터링 보상 값(1870)을 더하여(1880), 잔차 필터링 픽셀 라인들이 획득되고, 잔차 필터링 픽셀 라인들에 디블로킹 필터링 대상 픽셀 라인들(1810)을 다시 더하여(1890) 1xNx8의 디블로킹 필터링된 픽셀 라인들(1795)이 획득된다.Specifically, a
도 19는 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.19 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
도 19를 참조하면, 디블로킹 필터 대상 픽셀 라인들의 크기는 1xNx8이고, 이는 8개의 픽셀들을 하나의 라인으로 하여 N개의 라인임을 의미한다. 또한, 부호화 정보는 1xN/4x6의 메타데이터이고, 이는 각 4개의 라인에 대한 N/4개의 세트의 부호화 정보와 6개의 부호화 정보를 의미한다. Referring to FIG. 19 , the size of pixel lines subject to the deblocking filter is 1xNx8, which means N lines with 8 pixels as one line. Also, the encoding information is 1xN/4x6 metadata, which means N/4 sets of encoding information and 6 pieces of encoding information for each of the 4 lines.
부호화 정보는 주변 부호화 단위의 양자화 파라미터, 현재 부호화 단위의 양자화 파라미터, 주변 부호화 단위의 부호화 모드(인트라/인터), 현재 부호화 단위의 부호화 모드(인트라/인터), 주변 부호화 단위의 부호화 블록 플래그(cbf), 현재 부호화 단위의 부호화 블록 플래그(cbf) 등을 포함할 수 있다.The encoding information includes the quantization parameter of the neighboring coding unit, the quantization parameter of the current coding unit, the coding mode (intra/inter) of the neighboring coding unit, the coding mode (intra/inter) of the current coding unit, and the coding block flag (cbf) of the neighboring coding unit. ), a coded block flag (cbf) of the current coding unit, and the like.
부호화 정보의 메타데이터(1915)는 완전 연결된 레이어(FC)에 입력되어 제1 중간 특징맵(1920)으로 출력된다. 제1 중간 특징맵(1920)은 완전 연결된 레이어(FC)에 입력되어 제2 중간 특징맵(1921)으로 출력된다. 제2 중간 특징맵(1921)은 완전 연결된 레이어(FC)에 입력되어 제3 중간 특징맵(1922)으로 출력된다. 제3 중간 특징맵(1922)은 디블로킹 필터링 대상 픽셀 라인들(1910)의 크기와 동일하도록 재배열하여 타일(tile)화함으로써, 디블로킹 필터링 대상 픽셀 라인들(1910)의 크기와 동일한 1xNx8의 메타데이터 입력(1925)이 획득된다.The
1xNx8의 디블로킹 필터링 대상 픽셀 라인들(1910)과 1xNx8의 메타데이터 입력(1925)을 접합(concatenation)함으로써 2xNx8의 머지 입력(1930)이 획득된다.A
머지 입력(1930)에 컨볼루션 연산(C)을 수행하여 제1 특징맵(1931)이 획득되고, 제1 특징맵(1931)에 대하여 6번의 레지듀얼 블록 연산(1935)을 수행하여 결과적으로 머지 입력(1930)에 대한 특징 맵이 추출된다. A
머지 입력(1930)의 특징 맵에 대하여 컨볼루션 연산(C), 레지듀얼 블록 연산(1950), 및 컨볼루션 연산(C)을 수행하여 64xNx1 커널의 디블로킹 필터링 계수(1965)가 획득되고, 머지 입력(1930)의 특징 맵에 대하여 레지듀얼 블록 연산(1955) 및 컨볼루션 연산(C)을 수행하여 8xNx1의 디블로킹 필터링 보상 값(1970)이 획득된다. 여기서, 컨볼루션 연산(C), 레지듀얼 블록 연산(1950), 및 컨볼루션 연산(C)은 필터 계수 신경망에 대응되고, 레지듀얼 블록 연산(1955) 및 컨볼루션 연산(C)은 필터링 보상값 신경망에 대응된다. 또한, 머지 입력(1930)에 컨볼루션 연산(C)을 수행한 제1 중간 특징맵(1932)에 3번의 레지듀얼 블록 연산(1933)을 수행하여 필터링 강도(1960)가 획득된다. 컨볼루션 연산과 3번의 레지듀얼 연산은 필터 강도 신경망(1945)에 대응된다.A
위와 같이, 신경망에 기반하여 획득된 디블로킹 필터링 계수(1965), 디블로킹 필터링 보상 값(1970), 필터링 강도(1960)와, 머지 입력(1930) 중에서 디블로킹 필터링 대상 픽셀 라인들(1910)을 이용하여 신경망 기반의 디블로킹 필터링이 수행된다.As described above, among the deblocking
구체적으로, 디블로킹 필터링 대상 픽셀 라인들(1910)과 디블로킹 필터링 계수(1965)를 이용하여 행렬 곱셈의 선형 연산(1975)이 수행되고, 선형 연산의 결과에 디블로킹 필터링 보상 값(1970)을 더하고(1980), 보상 값이 더해진 결과에 필터링 강도(1960)에 시그모이드 함수(Sigmoid())를 적용한 결과를 이용하여 성분 곱(1985)을 수행하여 잔차 필터링 픽셀 라인들이 획득되고, 잔차 필터링 픽셀 라인들에 디블로킹 필터링 대상 픽셀 라인들(1910)을 다시 더하여(1990) 1xNx8의 디블로킹 필터링된 픽셀 라인들(1995)이 획득된다.Specifically, a
도 20은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.20 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
도 20을 참고하면, 디블로킹 필터 대상 픽셀 라인들의 크기는 1xNx8이고, 이는 8개의 픽셀들을 하나의 라인으로 하여 N개의 라인임을 의미한다. 또한, 부호화 정보는 1xN/4x6의 메타데이터이고, 이는 각 4개의 라인에 대한 N/4개의 세트의 부호화 정보와 6개의 부호화 정보를 의미한다. Referring to FIG. 20 , the size of pixel lines subject to the deblocking filter is 1xNx8, which means N lines with 8 pixels as one line. Also, the encoding information is 1xN/4x6 metadata, which means N/4 sets of encoding information and 6 pieces of encoding information for each of the 4 lines.
부호화 정보는 주변 부호화 단위의 양자화 파라미터, 현재 부호화 단위의 양자화 파라미터, 주변 부호화 단위의 부호화 모드(인트라/인터), 현재 부호화 단위의 부호화 모드(인트라/인터), 주변 부호화 단위의 부호화 블록 플래그(cbf), 현재 부호화 단위의 부호화 블록 플래그(cbf) 등을 포함할 수 있다.The encoding information includes the quantization parameter of the neighboring coding unit, the quantization parameter of the current coding unit, the coding mode (intra/inter) of the neighboring coding unit, the coding mode (intra/inter) of the current coding unit, and the coding block flag (cbf) of the neighboring coding unit. ), a coded block flag (cbf) of the current coding unit, and the like.
부호화 정보의 메타데이터(2015)는 완전 연결된 레이어(FC)에 입력되어 제1 중간 특징맵(2020)으로 출력된다. 제1 중간 특징맵(2020)은 완전 연결된 레이어(FC)에 입력되어 제2 중간 특징맵(2021)으로 출력된다. 제2 중간 특징맵(2021)은 디블로킹 필터링 대상 픽셀 라인들(2010)의 크기와 동일하도록 재배열하여 타일(tile)화함으로써, 디블로킹 필터링 대상 픽셀 라인들(2010)의 크기와 동일한 1xNx8의 메타데이터 입력(2025)이 획득된다.The
1xNx8의 디블로킹 필터링 대상 픽셀 라인들(2010)과 1xNx8의 메타데이터 입력(2025)을 접합(concatenation)함으로써 2xNx8의 머지 입력(2030)이 획득된다.A
머지 입력(2030)에 컨볼루션 연산(C)을 수행하여 32xNx7의 제1 중간 특징맵(2031)이 획득되고, 제1 중간 특징맵(2031)에 컨볼루션 연산(C)을 수행하여 32xNx6의 제2 중간 특징맵(2032)이 획득되고, 제2 중간 특징맵(2032)에 컨볼루션 연산(C)을 수행하여 32xNx5의 제3 중간 특징맵(2033)이 획득되고, 제3 중간 특징맵(2033)에 컨볼루션 연산(C)을 수행하여 32xNx4의 제4 중간 특징맵(2034)이 획득되고, 제4 중간 특징맵(2034)에 컨볼루션 연산(C)을 수행하여 결과적으로 머지 입력(2030)에 대한 32xNx3의 특징 맵(2035)이 추출된다. 여기서, 5번의 컨볼루션 연산은 특징 추출 신경망(2036)에 대응된다.A first
머지 입력(2030)의 특징 맵(2035)에 대하여 컨볼루션 연산(C)을 수행하여 64xNx1 커널의 디블로킹 필터링 계수(2065)가 획득되고, 머지 입력(2030)의 특징 맵(2035)에 대하여 컨볼루션 연산(C)을 수행하여 8xNx1의 디블로킹 필터링 보상 값(2070)이 획득된다. 여기서, 각각의 컨볼루션 연산(C)은 각각 필터 계수 신경망 및 필터링 보상값 신경망에 대응된다. A convolution operation (C) is performed on the
위와 같이, 신경망에 기반하여 획득된 디블로킹 필터링 계수(2065), 디블로킹 필터링 보상 값(2070)과, 머지 입력(2030) 중에서 디블로킹 필터링 대상 픽셀 라인들(2010)을 이용하여 신경망 기반의 디블로킹 필터링이 수행된다.As described above, the
구체적으로, 디블로킹 필터링 대상 픽셀 라인들(2010)과 디블로킹 필터링 계수(2065)를 이용하여 행렬 곱셈의 선형 연산(2075)이 수행되고, 선형 연산의 결과에 디블로킹 필터링 보상 값(2070)을 더하여(2080), 잔차 필터링 픽셀 라인들이 획득되고, 잔차 필터링 픽셀 라인들에 디블로킹 필터링 대상 픽셀 라인들(2010)을 다시 더하여(2090) 1xNx8의 디블로킹 필터링된 픽셀 라인들(2095)이 획득된다.Specifically, a
도 21은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.21 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
도 21을 참고하면, 디블로킹 필터 대상 픽셀 라인들의 크기는 1xNx8이고, 이는 8개의 픽셀들을 하나의 라인으로 하여 N개의 라인임을 의미한다. 또한, 부호화 정보는 1xN/4x6의 메타데이터이고, 이는 각 4개의 라인에 대한 N/4개의 세트의 부호화 정보와 6개의 부호화 정보를 의미한다. Referring to FIG. 21 , the size of pixel lines subject to the deblocking filter is 1xNx8, which means that 8 pixels are one line and there are N lines. Also, the encoding information is 1xN/4x6 metadata, which means N/4 sets of encoding information and 6 pieces of encoding information for each of the 4 lines.
부호화 정보는 주변 부호화 단위의 양자화 파라미터, 현재 부호화 단위의 양자화 파라미터, 주변 부호화 단위의 부호화 모드(인트라/인터), 현재 부호화 단위의 부호화 모드(인트라/인터), 주변 부호화 단위의 부호화 블록 플래그(cbf), 현재 부호화 단위의 부호화 블록 플래그(cbf) 등을 포함할 수 있다.The encoding information includes the quantization parameter of the neighboring coding unit, the quantization parameter of the current coding unit, the coding mode (intra/inter) of the neighboring coding unit, the coding mode (intra/inter) of the current coding unit, and the coding block flag (cbf) of the neighboring coding unit. ), a coded block flag (cbf) of the current coding unit, and the like.
부호화 정보의 메타데이터(2115)는 완전 연결된 레이어(FC)에 입력되어 제1 중간 특징맵(2120)으로 출력된다. 제1 중간 특징맵(2120)은 완전 연결된 레이어(FC)에 입력되어 제2 중간 특징맵(2121)으로 출력된다. 제2 중간 특징맵(2121)은 디블로킹 필터링 대상 픽셀 라인들(2110)의 크기와 동일하도록 재배열하여 타일(tile)화함으로써, 디블로킹 필터링 대상 픽셀 라인들(2110)의 크기와 동일한 1xNx8의 메타데이터 입력(2125)이 획득된다.The
1xNx8의 디블로킹 필터링 대상 픽셀 라인들(2110)과 1xNx8의 메타데이터 입력(2125)을 접합(concatenation)함으로써 2xNx8의 머지 입력(2130)이 획득된다.A
머지 입력(2130)에 컨볼루션 연산(C)을 수행하여 32xNx7의 제1 중간 특징맵(2131)이 획득되고, 제1 중간 특징맵(2131)에 컨볼루션 연산(C)을 수행하여 32xNx6의 제2 중간 특징맵(2132)이 획득되고, 제2 중간 특징맵(2132)에 컨볼루션 연산(C)을 수행하여 32xNx5의 제3 중간 특징맵(2133)이 획득되고, 제3 중간 특징맵(2133)에 컨볼루션 연산(C)을 수행하여 32xNx4의 제4 중간 특징맵(2134)이 획득되고, 제4 중간 특징맵(2134)에 컨볼루션 연산(C)을 수행하여 결과적으로 머지 입력(2130)에 대한 32xNx3의 특징 맵(2135)이 추출된다. 여기서, 5번의 컨볼루션 연산은 특징 추출 신경망(2136)에 대응된다.A first
머지 입력(2130)의 특징 맵(2135)에 대하여 컨볼루션 연산(C)을 수행하여 64xNx1 커널의 디블로킹 필터링 계수(2165)가 획득되고, 머지 입력(2130)의 특징 맵(2135)에 대하여 컨볼루션 연산(C)을 수행하여 8xNx1의 디블로킹 필터링 보상 값(2170)이 획득된다. 여기서, 각각의 컨볼루션 연산(C)은 각각 필터 계수 신경망 및 필터링 보상값 신경망에 대응된다. 또한, 머지 입력(2130)에 컨볼루션 연산(Conv)을 수행하여 32xNx5의 제1 중간 특징맵(2141)이 획득되고, 제1 중간 특징맵(2141)에 컨볼루션 연산(Conv)을 수행하여 32xNx2의 제2 중간 특징맵(2142)이 획득되고, 제2 중간 특징맵(2142)에 컨볼루션 연산(Conv)을 수행하여 1xNx8의 필터링 강도(2160)가 획득된다. 3번의 컨볼루션 연산은 필터 강도 신경망(2145)에 대응된다.A convolution operation (C) is performed on the
위와 같이, 신경망에 기반하여 획득된 디블로킹 필터링 계수(2165), 디블로킹 필터링 보상 값(2170), 필터링 강도(2160)와, 머지 입력(2130) 중에서 디블로킹 필터링 대상 픽셀 라인들(2110)을 이용하여 신경망 기반의 디블로킹 필터링이 수행된다.As described above, among the deblocking
구체적으로, 디블로킹 필터링 대상 픽셀 라인들(2110)과 디블로킹 필터링 계수(2165)를 이용하여 행렬 곱셈의 선형 연산(2175)이 수행되고, 선형 연산의 결과에 디블로킹 필터링 보상 값(2170)을 더하고(2180), 보상 값이 더해진 결과에 필터링 강도(2160)에 시그모이드 함수(Sigmoid())를 적용한 결과를 이용하여 성분 곱(2185)을 수행하여 잔차 필터링 픽셀 라인들이 획득되고, 잔차 필터링 픽셀 라인들에 디블로킹 필터링 대상 픽셀 라인들(2110)을 다시 더하여(2190) 1xNx8의 디블로킹 필터링된 픽셀 라인들(2195)이 획득된다.Specifically, a
도 22는 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.22 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
도 22를 참고하면, 디블로킹 필터 대상 픽셀 라인들의 크기는 1xNx8이고, 이는 8개의 픽셀들을 하나의 라인으로 하여 N개의 라인임을 의미한다. 또한, 부호화 정보는 1xN/4x6의 메타데이터이고, 이는 각 4개의 라인에 대한 N/4개의 세트의 부호화 정보와 6개의 부호화 정보를 의미한다. Referring to FIG. 22 , the size of pixel lines subject to the deblocking filter is 1xNx8, which means N lines with 8 pixels as one line. Also, the encoding information is 1xN/4x6 metadata, which means N/4 sets of encoding information and 6 pieces of encoding information for each of the 4 lines.
부호화 정보는 주변 부호화 단위의 양자화 파라미터, 현재 부호화 단위의 양자화 파라미터, 주변 부호화 단위의 부호화 모드(인트라/인터), 현재 부호화 단위의 부호화 모드(인트라/인터), 주변 부호화 단위의 부호화 블록 플래그(cbf), 현재 부호화 단위의 부호화 블록 플래그(cbf) 등을 포함할 수 있다.The encoding information includes the quantization parameter of the neighboring coding unit, the quantization parameter of the current coding unit, the coding mode (intra/inter) of the neighboring coding unit, the coding mode (intra/inter) of the current coding unit, and the coding block flag (cbf) of the neighboring coding unit. ), a coded block flag (cbf) of the current coding unit, and the like.
부호화 정보의 메타데이터(2215)는 완전 연결된 레이어(FC)에 입력되어 제1 중간 특징맵(2220)으로 출력된다. 제1 중간 특징맵(2220)은 완전 연결된 레이어(FC)에 입력되어 제2 중간 특징맵(2221)으로 출력된다. 제2 중간 특징맵(2221)은 디블로킹 필터링 대상 픽셀 라인들(2210)의 크기와 동일하도록 재배열하여 타일(tile)화함으로써, 디블로킹 필터링 대상 픽셀 라인들(2210)의 크기와 동일한 1xNx8의 메타데이터 입력(2225)이 획득된다.The
1xNx8의 디블로킹 필터링 대상 픽셀 라인들(2210)과 1xNx8의 메타데이터 입력(2225)을 접합(concatenation)함으로써 2xNx8의 머지 입력(2230)이 획득된다.A
머지 입력(2230)에 컨볼루션 연산(Conv)을 수행하여 32xNx7의 제1 중간 특징맵(2231)이 획득되고, 제1 중간 특징맵(2231)에 컨볼루션 연산(Conv)을 수행하여 32xNx6의 제2 중간 특징맵(2232)이 획득되고, 제2 중간 특징맵(2132)에 컨볼루션 연산(Conv)을 수행하여 결과적으로 머지 입력(2230)에 대한 32xNx3의 특징 맵(2233)이 추출된다. 여기서, 3번의 컨볼루션 연산은 특징 추출 신경망(2235)에 대응된다.A first
머지 입력(2230)의 특징 맵(2233)에 대하여 컨볼루션 연산(Conv)을 수행하여 64xNx1 커널의 디블로킹 필터링 계수(2265)가 획득되고, 머지 입력(2230)의 특징 맵(2233)에 대하여 컨볼루션 연산(Conv)을 수행하여 8xNx1의 디블로킹 필터링 보상 값(2270)이 획득된다. 여기서, 각각의 컨볼루션 연산(Conv)은 각각 필터 계수 신경망 및 필터링 보상값 신경망에 대응된다. 또한, 머지 입력(2230)에 컨볼루션 연산(Conv)을 수행하여 32xNx5의 제1 중간 특징맵(2241)이 획득되고, 제1 중간 특징맵(2241)에 컨볼루션 연산(Conv)을 수행하여 32xNx2의 제2 중간 특징맵(2242)이 획득되고, 제2 중간 특징맵(2142)에 컨볼루션 연산(Conv)을 수행하여 1xNx8의 필터링 강도(2260)가 획득된다. 3번의 컨볼루션 연산은 필터 강도 신경망(2245)에 대응된다.A
위와 같이, 신경망에 기반하여 획득된 디블로킹 필터링 계수(2265), 디블로킹 필터링 보상 값(2270), 필터링 강도(2260)와, 머지 입력(2230) 중에서 디블로킹 필터링 대상 픽셀 라인들(2210)을 이용하여 신경망 기반의 디블로킹 필터링이 수행된다.As described above, among the deblocking
구체적으로, 디블로킹 필터링 대상 픽셀 라인들(2210)과 디블로킹 필터링 계수(2265)를 이용하여 행렬 곱셈의 선형 연산(2275)이 수행되고, 선형 연산의 결과에 디블로킹 필터링 보상 값(2270)을 더하고(2280), 보상 값이 더해진 결과에 필터링 강도(2260)에 시그모이드 함수(Sigmoid())를 적용한 결과를 이용하여 성분 곱(2285)을 수행하여 잔차 필터링 픽셀 라인들이 획득되고, 잔차 필터링 픽셀 라인들에 디블로킹 필터링 대상 픽셀 라인들(2210)을 다시 더하여(2290) 1xNx8의 디블로킹 필터링된 픽셀 라인들(2295)이 획득된다.Specifically, a
도 23은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.23 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
도 23을 참고하면, 디블로킹 필터 대상 픽셀 라인들의 크기는 1xNx8이고, 이는 8개의 픽셀들을 하나의 라인으로 하여 N개의 라인임을 의미한다. 부호화 정보에 대한 메타데이터를 입력에 융합하지 않고, 디블로킹 필터 대상 픽셀들만이 입력으로 이용된다.Referring to FIG. 23 , the size of pixel lines subject to the deblocking filter is 1xNx8, which means that 8 pixels are one line and there are N lines. Metadata for encoding information is not fused to input, and only deblocking filter target pixels are used as input.
디블로킹 필터링 대상 픽셀 라인들(2310)에 컨볼루션 연산(Conv)을 수행하여 32xNx7의 제1 중간 특징맵(2331)이 획득되고, 제1 중간 특징맵(2331)에 컨볼루션 연산(Conv)을 수행하여 32xNx6의 제2 중간 특징맵(2332)이 획득되고, 제2 중간 특징맵(2332)에 컨볼루션 연산(Conv)을 수행하여 결과적으로 디블로킹 필터링 대상 픽셀 라인들 (2310)에 대한 32xNx3의 특징 맵(2333)이 추출된다. 여기서, 3번의 컨볼루션 연산은 특징 추출 신경망(2335)에 대응된다.A first
디블로킹 필터링 대상 픽셀 라인들 (2310)의 특징 맵(2333)에 대하여 컨볼루션 연산(Conv)을 수행하여 3x64xNx1 커널의 디블로킹 필터링 계수(2365)가 획득되고, 디블로킹 필터링 대상 픽셀 라인들 (2310)의 특징 맵(2333)에 대하여 컨볼루션 연산(Conv)을 수행하여 3x8xNx1의 디블로킹 필터링 보상 값(2370)이 획득된다. 여기서, 각각의 컨볼루션 연산(Conv)은 각각 필터 계수 신경망 및 필터링 보상값 신경망에 대응된다. 또한, 입력(2310)에 컨볼루션 연산(Conv)을 수행하여 32xNx5의 제1 중간 특징맵(2341)이 획득되고, 제1 중간 특징맵(2341)에 컨볼루션 연산(Conv)을 수행하여 32xNx2의 제2 중간 특징맵(2342)이 획득되고, 제2 중간 특징맵(2342)에 컨볼루션 연산(Conv)을 수행하여 1xNx8의 필터링 강도(2360)가 획득된다. 3번의 컨볼루션 연산은 필터 강도 신경망(2345)에 대응된다.A
위와 같이, 신경망에 기반하여 획득된 디블로킹 필터링 계수(2365), 디블로킹 필터링 보상 값(2370), 필터링 강도(2360)와, 디블로킹 필터링 대상 픽셀 라인들(2310)을 이용하여 신경망 기반의 디블로킹 필터링이 수행된다.As described above, the
구체적으로, 디블로킹 필터링 대상 픽셀 라인들(2310)이 디블로킹 필터링 계수(2365)와 디블로킹 필터링 보상 값(2370)의 크기에 정합되도록, 디블로킹 필터링 대상 픽셀 라인들(2310)을 3배로 하여 디블로킹 필터링 대상 픽셀 라인들(2310)이 3xNx8의 크기의 입력으로 타일(tile)화되고, 3xNx8의 입력과 디블로킹 필터링 계수(2365)를 이용하여 행렬 곱셈의 선형 연산(2375)이 수행되고, 선형 연산의 결과에 디블로킹 필터링 보상 값(2370)을 더하고(2380), 보상 값이 더해진 결과에 필터링 강도(2360)에 시그모이드 함수(Sigmoid())를 적용한 결과를 이용하여 성분 곱(2385)을 수행하여 잔차 필터링 픽셀 라인들이 획득된다. Specifically, the deblocking filtering
잔차 필터링 픽셀 라인들을 평균내어 평균 잔차 필터링 픽셀 라인들이 획득되고, 평균 잔차 필터링 픽셀 라인들에 디블로킹 필터링 대상 픽셀 라인들(2310)을 다시 더하여(2390) 1xNx8의 디블로킹 필터링된 픽셀 라인들(2395)이 획득된다. 즉, 서로 다른 3개의 출력을 획득하여 3개의 출력의 평균이 최종 출력으로 획득된다. 이를 통해, 복수의 예측을 평균화하여 예측 오류가 감소되는 앙상블 효과(ensemble effect)가 얻어질 수 있다.Average residual-filtered pixel lines are obtained by averaging the residual-filtered pixel lines, and deblocking-filtered
도 24는 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.24 is a diagram for explaining a structure of neural network-based deblocking filtering according to an embodiment.
도 24를 참고하면, 디블로킹 필터 대상 픽셀 라인들의 크기는 1xNx8이고, 이는 8개의 픽셀들을 하나의 라인으로 하여 N개의 라인임을 의미한다. 부호화 정보에 대한 메타데이터를 입력에 융합하지 않고, 디블로킹 필터 대상 픽셀들만이 입력으로 이용된다.Referring to FIG. 24 , the size of pixel lines subject to the deblocking filter is 1xNx8, which means N lines with 8 pixels as one line. Metadata for encoding information is not fused to input, and only deblocking filter target pixels are used as input.
디블로킹 필터링 대상 픽셀 라인들(2410)에 컨볼루션 연산(Conv)을 수행하여 32xNx7의 제1 중간 특징맵(2431)이 획득되고, 제1 중간 특징맵(2431)에 컨볼루션 연산(Conv)을 수행하여 32xNx6의 제2 중간 특징맵(2432)이 획득되고, 제2 중간 특징맵(2432)에 컨볼루션 연산(Conv)을 수행하여 결과적으로 디블로킹 필터링 대상 픽셀 라인들(2410)에 대한 32xNx3의 특징 맵(2433)이 추출된다. 여기서, 3번의 컨볼루션 연산은 특징 추출 신경망(2435)에 대응된다.A first
디블로킹 필터링 대상 픽셀 라인들(2410)의 특징 맵(2433)에 대하여 컨볼루션 연산(Conv)을 수행하여 64xNx1 커널의 디블로킹 필터링 계수(2465)가 획득되고, 디블로킹 필터링 대상 픽셀 라인들(2410)의 특징 맵(2433)에 대하여 컨볼루션 연산(Conv)을 수행하여 8xNx1의 디블로킹 필터링 보상 값(2370)이 획득된다. 여기서, 각각의 컨볼루션 연산(Conv)은 각각 필터 계수 신경망 및 필터링 보상값 신경망에 대응된다. 또한, 디블로킹 필터링 대상 픽셀 라인들(2410)에 컨볼루션 연산(Conv)을 수행하여 32xNx5의 제1 중간 특징맵(2441)이 획득되고, 제1 중간 특징맵(2441)에 컨볼루션 연산(Conv)을 수행하여 32xNx2의 제2 중간 특징맵(2342)이 획득되고, 제2 중간 특징맵(2442)에 컨볼루션 연산(Conv)을 수행하여 1xNx8의 필터링 강도(2460)가 획득된다. 3번의 컨볼루션 연산은 필터 강도 신경망(2445)에 대응된다.A
위와 같이, 신경망에 기반하여 획득된 디블로킹 필터링 계수(2465), 디블로킹 필터링 보상 값(2470), 필터링 강도(2460)와, 디블로킹 필터링 대상 픽셀 라인들(2410)을 이용하여 신경망 기반의 디블로킹 필터링이 수행된다.As described above, the
구체적으로, 디블로킹 필터링 대상 픽셀 라인들(2410)과 디블로킹 필터링 계수(2465)를 이용하여 행렬 곱셈의 선형 연산(2475)이 수행되고, 선형 연산의 결과에 디블로킹 필터링 보상 값(2470)을 더하고(2480), 보상 값이 더해진 결과에 필터링 강도(2460)에 시그모이드 함수(Sigmoid())를 적용한 결과를 이용하여 성분 곱(2485)을 수행하여 잔차 필터링 픽셀 라인들이 획득되고, 잔차 필터링 픽셀 라인들에 디블로킹 필터링 대상 픽셀 라인들(2410)을 다시 더하여(2490) 1xNx8의 디블로킹 필터링된 픽셀 라인들(2495)이 획득된다. Specifically, a
도 25는 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.25 is a diagram for explaining a structure of neural network-based deblocking filtering according to an embodiment.
도 25를 참고하면, 디블로킹 필터 대상 픽셀 라인들의 크기는 1xNx8이고, 이는 8개의 픽셀들을 하나의 라인으로 하여 N개의 라인임을 의미한다. 부호화 정보에 대한 메타데이터를 입력에 융합하지 않고, 디블로킹 필터 대상 픽셀들만이 입력으로 이용된다.Referring to FIG. 25 , the size of pixel lines subject to the deblocking filter is 1xNx8, which means that 8 pixels are one line and there are N lines. Metadata for encoding information is not fused to input, and only deblocking filter target pixels are used as input.
디블로킹 필터링 대상 픽셀 라인들(2510)에 컨볼루션 연산(Conv)을 수행하여 32xNx7의 제1 중간 특징맵(2531)이 획득되고, 제1 중간 특징맵(2531)에 컨볼루션 연산(Conv)을 수행하여 32xNx6의 제2 중간 특징맵(2532)이 획득되고, 제2 중간 특징맵(2532)에 컨볼루션 연산(Conv)을 수행하여 결과적으로 디블로킹 필터링 대상 픽셀 라인들(2510)에 대한 32xNx3의 특징 맵(2533)이 추출된다. 여기서, 3번의 컨볼루션 연산은 특징 추출 신경망(2535)에 대응된다.A first
디블로킹 필터링 대상 픽셀 라인들(2510)의 특징 맵(2533)에 대하여 컨볼루션 연산(Conv)을 수행하여 64xNx1 커널의 디블로킹 필터링 계수(2565)가 획득되고, 디블로킹 필터링 대상 픽셀 라인들(2510)의 특징 맵(2533)에 대하여 컨볼루션 연산(Conv)을 수행하여 8xNx1의 디블로킹 필터링 보상 값(2570)이 획득된다. 여기서, 각각의 컨볼루션 연산(Conv)은 각각 필터 계수 신경망 및 필터링 보상값 신경망에 대응된다. 또한, 입력(2510)에 컨볼루션 연산(Conv)을 수행하여 32xNx5의 제1 중간 특징맵(2541)이 획득되고, 제1 중간 특징맵(2541)에 컨볼루션 연산(Conv)을 수행하여 32xNx2의 제2 중간 특징맵(2542)이 획득되고, 제2 중간 특징맵(2542)에 컨볼루션 연산(Conv)을 수행하여 1xNx2의 필터링 강도(2560)가 획득된다. 3번의 컨볼루션 연산은 필터 강도 신경망(2545)에 대응된다.A
위와 같이, 신경망에 기반하여 획득된 디블로킹 필터링 계수(2565), 디블로킹 필터링 보상 값(2570), 필터링 강도(2560)와, 디블로킹 필터링 대상 픽셀 라인들(2510)을 이용하여 신경망 기반의 디블로킹 필터링이 수행된다.As described above, the
구체적으로, 디블로킹 필터링 대상 픽셀 라인들(2510)과 디블로킹 필터링 계수(2565)를 이용하여 행렬 곱셈의 선형 연산(2575)이 수행되고, 선형 연산의 결과에 디블로킹 필터링 보상 값(2570)을 더하고(2580), 보상 값이 더해진 결과에 필터링 강도(2560)에 시그모이드 함수(Sigmoid())를 적용한 결과를 이용하여 성분 곱(2585)을 수행하여 잔차 필터링 픽셀 라인들이 획득된다. Specifically, a
필터링 강도 신경망(2545)을 통해 생성된 필터링 강도(2560)의 크기는 1xNx2이고, 디블로킹 필터링 대상 픽셀들(2510)의 크기는 1xNx8이므로, 필터링 강도의 적용 방식이 달라진다. 구체적으로, 수평 방향으로 인접하는 두 블록의 경계에 대하여 수평 라인 필터링(horizontal line filtering)하는 경우에는, 좌측 블록의 오른쪽 경계와 우측 블록의 왼쪽 경계 각각에 대하여 1xNx2의 필터링 강도를 나누어, 각각 1xNx1의 필터링 강도를 이용하여 성분곱이 수행되고, 수직 방향으로 인접하는 두 블록의 경계에 대하여 수직 라인 필터링(vertical line filtering)하는 경우에는, 하측 블록의 위쪽 경계와 상측 블록의 아래쪽 경계 각각에 대하여 1xNx2의 필터링 강도를 나누어, 각각 1xNx1의 필터링 강도를 이용하여 성분곱이 수행될 수 있다. 즉, 필터링할 픽셀 라인들의 각 측면에 1xNx2의 필터링 강도가 별개로 적용된다. 디블로킹 필터링은 블록의 경계에서 블로킹 아티팩트를 제거하는 것이므로, 블록의 경계에서 필터링 강도가 달리 적용될 수 있다.Since the size of the
획득된 잔차 필터링 픽셀 라인들에 디블로킹 필터링 대상 픽셀 라인들(2510)을 다시 더하여(2590) 1xNx8의 디블로킹 필터링된 픽셀 라인들(2595)이 획득된다. 1xNx8 deblocking-filtered
도 26은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.26 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
도 26을 참고하면, 디블로킹 필터 대상 픽셀 라인들의 크기는 1xNx8이고, 이는 8개의 픽셀들을 하나의 라인으로 하여 N개의 라인임을 의미한다. 부호화 정보에 대한 메타데이터를 입력에 융합하지 않고, 디블로킹 필터 대상 픽셀들만이 입력으로 이용될 수 있다.Referring to FIG. 26 , the size of pixel lines subject to the deblocking filter is 1xNx8, which means that 8 pixels are one line and there are N lines. Only the deblocking filter target pixels may be used as inputs without fusing the metadata for the encoding information into the input.
디블로킹 필터링 대상 픽셀 라인들(2610)에 컨볼루션 연산(Conv)을 수행하여 32xNx7의 제1 중간 특징맵(2631)이 획득되고, 제1 중간 특징맵(2631)에 컨볼루션 연산(Conv)을 수행하여 32xNx6의 제2 중간 특징맵(2632)이 획득되고, 제2 중간 특징맵(2632)에 컨볼루션 연산(Conv)을 수행하여 결과적으로 디블로킹 필터링 대상 픽셀 라인들(2610)에 대한 32xNx3의 특징 맵(2633)이 추출된다. 여기서, 3번의 컨볼루션 연산은 특징 추출 신경망(2635)에 대응된다.A first
디블로킹 필터링 대상 픽셀 라인들(2610)의 특징 맵(2633)에 대하여 컨볼루션 연산(Conv)을 수행하여 64xNx1 커널의 디블로킹 필터링 계수(2665)가 획득되고, 디블로킹 필터링 대상 픽셀 라인들(2610)의 특징 맵(2633)에 대하여 컨볼루션 연산(Conv)을 수행하여 8xNx1의 디블로킹 필터링 보상 값(2670)이 획득된다. 여기서, 각각의 컨볼루션 연산(Conv)은 각각 필터 계수 신경망 및 필터링 보상값 신경망에 대응된다. A
위와 같이, 신경망에 기반하여 획득된 디블로킹 필터링 계수(2665), 디블로킹 필터링 보상 값(2670)과, 디블로킹 필터링 대상 픽셀 라인들(2610)을 이용하여 신경망 기반의 디블로킹 필터링이 수행된다.As described above, neural network-based deblocking filtering is performed using the
구체적으로, 디블로킹 필터링 대상 픽셀 라인들(2610)과 디블로킹 필터링 계수(2665)를 이용하여 행렬 곱셈의 선형 연산(2675)이 수행되고, 선형 연산의 결과에 디블로킹 필터링 보상 값(2670)을 더하여(2680), 잔차 필터링 픽셀 라인들이 획득되고, 잔차 필터링 픽셀 라인들에 디블로킹 필터링 대상 픽셀 라인들(2610)을 다시 더하여(2690) 1xNx8의 디블로킹 필터링된 픽셀 라인들(2695)이 획득된다. Specifically, a
도 27은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.27 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
도 27을 참고하면, 디블로킹 필터 대상 픽셀 라인들의 크기는 1xNx8이고, 이는 8개의 픽셀들을 하나의 라인으로 하여 N개의 라인임을 의미한다. 부호화 정보에 대한 메타데이터를 입력에 융합하지 않고, 디블로킹 필터 대상 픽셀들만이 입력으로 이용된다.Referring to FIG. 27 , the size of pixel lines subject to the deblocking filter is 1xNx8, which means N lines with 8 pixels as one line. Metadata for encoding information is not fused to input, and only deblocking filter target pixels are used as input.
디블로킹 필터링 대상 픽셀 라인들(2710)에 컨볼루션 연산(Conv)을 수행하여 32xNx7의 제1 중간 특징맵(2731)이 획득되고, 제1 중간 특징맵(2731)에 컨볼루션 연산(Conv)을 수행하여 32xNx6의 제2 중간 특징맵(2732)이 획득되고, 제2 중간 특징맵(2732)에 컨볼루션 연산(Conv)을 수행하여 결과적으로 디블로킹 필터링 대상 픽셀 라인들(2710)에 대한 32xNx3의 특징 맵(2733)이 추출된다. 여기서, 3번의 컨볼루션 연산은 특징 추출 신경망(2735)에 대응된다.A first
디블로킹 필터링 대상 픽셀 라인들(2710)의 특징 맵(2733)에 대하여 컨볼루션 연산(Conv)을 수행하여 64xNx1 커널의 디블로킹 필터링 계수(2765)가 획득되고, 디블로킹 필터링 대상 픽셀 라인들(2710)의 특징 맵(2733)에 대하여 컨볼루션 연산(Conv)을 수행하여 8xNx1의 디블로킹 필터링 보상 값(2770)이 획득된다. 여기서, 각각의 컨볼루션 연산(Conv)은 각각 필터 계수 신경망 및 필터링 보상값 신경망에 대응된다. 또한, 디블로킹 필터링 대상 픽셀 라인들(2710)에 컨볼루션 연산(Conv)을 수행하여 32xNx5의 제1 중간 특징맵(2741)이 획득되고, 제1 중간 특징맵(2741)에 컨볼루션 연산(Conv)을 수행하여 32xNx2의 제2 중간 특징맵(2742)이 획득되고, 제2 중간 특징맵(2742)에 컨볼루션 연산(Conv)을 수행하여 1xNx1의 필터링 강도(2760)가 획득된다. 3번의 컨볼루션 연산은 필터 강도 신경망(2745)에 대응된다.A
위와 같이, 신경망에 기반하여 획득된 디블로킹 필터링 계수(2765), 디블로킹 필터링 보상 값(2770), 필터링 강도(2760)와, 디블로킹 필터링 대상 픽셀 라인들(2710)을 이용하여 신경망 기반의 디블로킹 필터링이 수행된다.As described above, the
구체적으로, 디블로킹 필터링 대상 픽셀 라인들(2710)과 디블로킹 필터링 계수(2765)를 이용하여 행렬 곱셈의 선형 연산(2775)이 수행되고, 선형 연산의 결과에 디블로킹 필터링 보상 값(2770)을 더하고(2780), 보상 값이 더해진 결과에 필터링 강도(2760)에 시그모이드 함수(Sigmoid())를 적용한 결과를 이용하여 성분 곱(2785)을 수행하여 잔차 필터링 픽셀 라인들이 획득된다. Specifically, a
필터링 강도 신경망(2745)을 통해 생성된 필터링 강도(2760)의 크기는 1xNx1이고, 디블로킹 필터링 대상 픽셀들(2710)의 크기는 1xNx8이므로, 필터링 강도의 적용 방식이 달라진다. Since the size of the
일 예로, 수평 방향으로 인접하는 두 블록의 경계에 대하여 수평 라인 필터링(horizontal line filtering)하는 경우에는, 좌측 블록의 오른쪽 경계와 우측 블록의 왼쪽 경계 각각에 대하여 동일한 1xNx1의 필터링 강도를 이용하여 성분곱이 수행되고, 수직 방향으로 인접하는 두 블록의 경계에 대하여 수직 라인 필터링(vertical line filtering)하는 경우에는, 하측 블록의 위쪽 경계와 상측 블록의 아래쪽 경계 각각에 대하여 동일한 1xNx1의 필터링 강도를 이용하여 성분곱이 수행될 수 있다. For example, in the case of horizontal line filtering on the boundary of two horizontally adjacent blocks, the component product is obtained by using the same filtering strength of 1xNx1 for the right boundary of the left block and the left boundary of the right block, respectively. In the case of performing vertical line filtering on the boundary of two vertically adjacent blocks, the component multiplication is performed using the same filtering strength of 1xNx1 for the upper boundary of the lower block and the lower boundary of the upper block, respectively. can be performed
또한, 다른 예로, 필터링할 모든 픽셀 라인들에 대하여 1xNx1의 필터링 강도가 동일하게 적용되어 성분곱이 수행될 수 있다.Also, as another example, component multiplication may be performed by applying the same filtering intensity of 1xNx1 to all pixel lines to be filtered.
획득된 잔차 필터링 픽셀 라인들에 디블로킹 필터링 대상 픽셀 라인들(2710)을 다시 더하여(2790) 1xNx8의 디블로킹 필터링된 픽셀 라인들(2795)이 획득된다. 1xNx8 deblocking-filtered
도 28은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.28 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
도 28을 참고하면, 디블로킹 필터 대상 픽셀 라인들의 크기는 1x4x8이고, 이는 8개의 픽셀들을 하나의 라인으로 하여 4개의 라인임을 의미한다. 부호화 정보에 대한 메타데이터를 입력에 융합하지 않고, 디블로킹 필터 대상 픽셀들만이 입력으로 이용된다.Referring to FIG. 28 , the size of pixel lines subject to the deblocking filter is 1x4x8, which means that 8 pixels constitute 4 lines. Metadata for encoding information is not fused to input, and only deblocking filter target pixels are used as input.
디블로킹 필터링 대상 픽셀 라인들(2810)에 컨볼루션 연산(Conv)을 수행하여 32x4x7의 제1 중간 특징맵(2831)이 획득되고, 제1 중간 특징맵(2831)에 컨볼루션 연산(Conv)을 수행하여 32x4x6의 제2 중간 특징맵(2832)이 획득되고, 제2 중간 특징맵(2832)에 컨볼루션 연산(Conv)을 수행하여 결과적으로 디블로킹 필터링 대상 픽셀 라인들(2810)에 대한 32x4x3의 특징 맵(2833)이 추출된다. 여기서, 3번의 컨볼루션 연산은 특징 추출 신경망(2835)에 대응된다.A 32x4x7 first
디블로킹 필터링 대상 픽셀 라인들(2810)의 특징 맵(2833)에 대하여 컨볼루션 연산(Conv)을 수행하여 64x4x1 커널의 디블로킹 필터링 계수(2865)가 획득되고, 디블로킹 필터링 대상 픽셀 라인들(2810)의 특징 맵(2833)에 대하여 컨볼루션 연산(Conv)을 수행하여 8x4x1의 디블로킹 필터링 보상 값(2870)이 획득된다. 여기서, 각각의 컨볼루션 연산(Conv)은 각각 필터 계수 신경망 및 필터링 보상값 신경망에 대응된다. 또한, 디블로킹 필터링 대상 픽셀 라인들(2810)에 컨볼루션 연산(Conv)을 수행하여 32x3x5의 제1 중간 특징맵(2841)이 획득되고, 제1 중간 특징맵(2841)에 컨볼루션 연산(Conv)을 수행하여 32x2x2의 제2 중간 특징맵(2842)이 획득되고, 제2 중간 특징맵(2842)에 컨볼루션 연산(Conv)을 수행하여 4x1x1의 필터링 강도(2860)가 획득된다. 3번의 컨볼루션 연산은 필터 강도 신경망(2845)에 대응된다.A
위와 같이, 신경망에 기반하여 획득된 디블로킹 필터링 계수(2865), 디블로킹 필터링 보상 값(2870), 필터링 강도(2860)와, 디블로킹 필터링 대상 픽셀 라인들(2810)을 이용하여 신경망 기반의 디블로킹 필터링이 수행된다.As described above, the
구체적으로, 디블로킹 필터링 대상 픽셀 라인들(2810)과 디블로킹 필터링 계수(2865)를 이용하여 행렬 곱셈의 선형 연산(2875)이 수행되고, 선형 연산의 결과에 디블로킹 필터링 보상 값(2870)을 더하고(2880), 보상 값이 더해진 결과에 필터링 강도(2860)에 시그모이드 함수(Sigmoid())를 적용한 결과를 이용하여 성분 곱(2885)을 수행하여 잔차 필터링 픽셀 라인들이 획득된다.Specifically, a
필터링 강도 신경망(2845)을 통해 생성된 필터링 강도(2860)의 크기는 4x1x1이고, 디블로킹 필터링 대상 픽셀들(2810)의 크기는 1x4x8이므로, 필터링 강도의 적용 방식이 달라진다. 도 27의 필터링 강도(2760)와 다르게, 도 28의 필터링 강도(2860)는 치수(dimension)가 다르므로, 이를 디블로킹 필터링 대상 픽셀 라인들(2810)의 크기에 맞게 스위칭하여 필터링 강도가 적용될 수 있다. 즉, 4x1x1의 ??터링 강도(2860)를 1x4x1의 형태로 변환하여 필터링 강도가 적용될 수 있다.Since the size of the
일 예로, 수평 방향으로 인접하는 두 블록의 경계에 대하여 수평 라인 필터링(horizontal line filtering)하는 경우에는, 좌측 블록의 오른쪽 경계와 우측 블록의 왼쪽 경계 각각에 대하여 동일한 1x4x1의 필터링 강도를 이용하여 성분곱이 수행되고, 수직 방향으로 인접하는 두 블록의 경계에 대하여 수직 라인 필터링(vertical line filtering)하는 경우에는, 하측 블록의 위쪽 경계와 상측 블록의 아래쪽 경계 각각에 대하여 동일한 1x4x1의 필터링 강도를 이용하여 성분곱이 수행될 수 있다. For example, in the case of horizontal line filtering on the boundary of two horizontally adjacent blocks, the component product is obtained by using the same filtering strength of 1x4x1 for the right boundary of the left block and the left boundary of the right block, respectively. In the case of performing vertical line filtering on the boundary of two blocks adjacent in the vertical direction, the component multiplication is performed using the same filtering strength of 1x4x1 for the upper boundary of the lower block and the lower boundary of the upper block, respectively. can be performed
또한, 다른 예로, 필터링할 모든 픽셀 라인들에 대하여 1x4x1의 필터링 강도가 동일하게 적용되어 성분곱이 수행될 수 있다.Also, as another example, component multiplication may be performed by applying the same filtering intensity of 1x4x1 to all pixel lines to be filtered.
획득된 잔차 필터링 픽셀 라인들에 디블로킹 필터링 대상 픽셀 라인들(2810)을 다시 더하여(2890) 1x4x8의 디블로킹 필터링된 픽셀 라인들(2895)이 획득된다. 1x4x8 deblocking-filtered
도 29는 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.29 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
도 29를 참고하면, 디블로킹 필터 대상 픽셀 라인의 크기는 8x1이고, 이는 8개의 픽셀들을 하나의 라인으로 하여 1개의 라인임을 의미한다. 부호화 정보에 대한 메타데이터를 입력에 융합하지 않고, 디블로킹 필터 대상 픽셀들만이 입력으로 이용된다. 또한, 필터링 계수(2965), 필터링 보상값(2970), 및 필터링 강도(2960)을 획득하기 위한 입력으로 8x1의 디블로킹 필터 대상 픽셀 라인을 포함하는 4개의 라인의 1x4x8의 입력 데이터가 이용된다. 이는 8x1의 디블로킹 필터 대상 픽셀 라인 주변의 추가적인 정보를 더 이용함으로써 더 효과적인 필터링 계수(2965), 필터링 보상값(2970), 및 필터링 강도(2960)을 획득하기 위함이다.Referring to FIG. 29 , the size of a pixel line subject to a deblocking filter is 8×1, which means that 8 pixels are 1 line and 1 line is formed. Metadata for encoding information is not fused to input, and only deblocking filter target pixels are used as input. In addition, 1x4x8 input data of four lines including 8x1 deblocking filter target pixel lines are used as inputs to obtain the
디블로킹 필터링 대상 픽셀 라인(2910)을 포함하는 1x4x8의 4개 라인의 입력 데이터를 완전 연결된 레이어(FC)에 입력하여 제1 중간 특징맵(2931)이 획득되고, 제1 중간 특징맵(2931)을 완전 연결된 레이어(FC)에 입력하여 제2 중간 특징맵(2932)이 획득되고, 제2 중간 특징맵(2932)을 완전 연결된 레이어(FC)에 입력하여 결과적으로 디블로킹 필터링 대상 픽셀 라인(2910)을 포함하는 1x4x8의 4개 라인의 입력 데이터에 대한 특징 맵(2933)이 추출된다. 여기서, 3번의 완전 연결된 레이어에 대한 입력은 특징 추출 신경망(2935)에 대응된다.A first
추출된 특징 맵(2933)을 완전 연결된 레이어(FC)에 입력하여 8x8 커널의 디블로킹 필터링 계수(2965)가 획득되고, 추출된 특징 맵(2933)을 완전 연결된 레이어(FC)에 입력하여 8x1의 디블로킹 필터링 보상 값(2970)이 획득된다. 여기서, 각각의 완전 연결된 레이어에 대한 입력은 각각 필터 계수 신경망 및 필터링 보상값 신경망에 대응된다. 또한, 디블로킹 필터링 대상 픽셀 라인(2910)을 포함하는 1x4x8의 4개 라인의 입력 데이터에 컨볼루션 연산(Conv)을 수행하여 32x3x5의 제1 중간 특징맵(2941)이 획득되고, 제1 중간 특징맵(2941)에 컨볼루션 연산(Conv)을 수행하여 32x2x2의 제2 중간 특징맵(2942)이 획득되고, 제2 중간 특징맵(2942)에 컨볼루션 연산(Conv)을 수행하여 4x1x1의 필터링 강도(2960)가 획득된다. 3번의 컨볼루션 연산은 필터 강도 신경망(2945)에 대응된다.The extracted
위와 같이, 신경망에 기반하여 획득된 디블로킹 필터링 계수(2965), 디블로킹 필터링 보상 값(2970), 필터링 강도(2960)와, 디블로킹 필터링 대상 픽셀 라인(2910)을 이용하여 신경망 기반의 디블로킹 필터링이 수행된다.As described above, neural network-based deblocking is performed using the
구체적으로, 디블로킹 필터링 대상 픽셀 라인(2910)과 디블로킹 필터링 계수(2965)를 이용하여 행렬 곱셈의 선형 연산(2975)이 수행되고, 선형 연산의 결과에 디블로킹 필터링 보상 값(2970)을 더하고(2980), 보상 값이 더해진 결과에 필터링 강도(2960)에 시그모이드 함수(Sigmoid())를 적용한 결과를 이용하여 성분 곱(2985)을 수행하여 잔차 필터링 픽셀 라인이 획득된다.Specifically, a
필터링 강도 신경망(2945)을 통해 생성된 필터링 강도(2960)의 크기는 4x1x1이고, 디블로킹 필터링 대상 픽셀(2910)의 크기는 8x1이므로, 필터링 강도의 적용 방식이 달라진다. 4x1x1의 필터링 강도(2960)는 8x1의 디블로킹 필터링 대상 픽셀(2910)과 크기가 다르므로, 이를 디블로킹 필터링 대상 픽셀(2910)의 크기에 맞게 스위칭하여 필터링 강도가 적용될 수 있다. 즉, 4x1x1의 ??터링 강도(2960)를 4x1의 형태로 변환하여 필터링 강도가 8x1의 디블로킹 필터링 대상 픽셀(2910)에 2번 적용될 수 있다.Since the size of the
또한, 다른 예로, 8x1의 디블로킹 필터링 대상 픽셀(2910) 중 블록의 경계를 포함하는 일 부분에 대해서만 4x1의 필터링 강도가 적용되어 성분곱이 수행될 수 있다.Also, as another example, component multiplication may be performed by applying a filtering strength of 4x1 to only a portion including a block boundary among the 8x1 deblocking
획득된 잔차 필터링 픽셀 라인에 디블로킹 필터링 대상 픽셀 라인(2910)을 다시 더하여(2990) 8x1의 디블로킹 필터링된 픽셀 라인들(2995)이 획득된다. 8×1 deblocking-filtered
도 30은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.30 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
도 30을 참고하면, 디블로킹 필터 대상 픽셀 라인의 크기는 8x1이고, 이는 8개의 픽셀들을 하나의 라인으로 하여 1개의 라인임을 의미한다. 또한, 필터링 강도를 획득하기 위해, 디블로킹 필터 대상 픽셀 라인을 포함하는 디블로킹 필터 대상 픽셀들의 라인이 복수개 이용된다. 이는 8x1의 디블로킹 필터 대상 픽셀 라인 주변의 추가적인 정보를 더 이용함으로써 더 효과적인 필터링 강도(3060)을 획득하기 위함이다.Referring to FIG. 30 , the size of a pixel line subject to a deblocking filter is 8x1, which means that 8 pixels are 1 line and 1 line is formed. Also, in order to obtain the filtering strength, a plurality of lines of deblocking filter target pixels including deblocking filter target pixel lines are used. This is to obtain a more
디블로킹 필터링 대상 픽셀 라인(3010)을 완전 연결된 레이어(FC)에 입력하여 제1 중간 특징맵(3031)이 획득되고, 제1 중간 특징맵(3031)을 완전 연결된 레이어(FC)에 입력하여 제2 중간 특징맵(3032)이 획득되고, 제2 중간 특징맵(3032)을 완전 연결된 레이어(FC)에 입력하여 결과적으로 디블로킹 필터링 대상 픽셀 라인(3010)에 대한 특징 맵(3033)이 추출된다. 여기서, 3번의 완전 연결된 레이어에 대한 입력은 특징 추출 신경망(3035)에 대응된다.A first
디블로킹 필터링 대상 픽셀 라인(3010)의 특징 맵(3033)을 완전 연결된 레이어(FC)에 입력하여 8x8 커널의 디블로킹 필터링 계수(3065)가 획득되고, 디블로킹 필터링 대상 픽셀 라인(3010)의 특징 맵(3033)을 완전 연결된 레이어(FC)에 입력하여 8x1의 디블로킹 필터링 보상 값(3070)이 획득된다. 여기서, 각각의 완전 연결된 레이어에 대한 입력은 각각 필터 계수 신경망 및 필터링 보상값 신경망에 대응된다. 또한, 8x1의 디블로킹 필터링 대상 픽셀 입력(3010)을 포함하는 1x4x8의 디블로킹 필터링 대상 픽셀 라인들(3040)에 컨볼루션 연산(Conv)을 수행하여 32x3x5의 제1 중간 특징맵(3041)이 획득되고, 제1 중간 특징맵(3041)에 컨볼루션 연산(Conv)을 수행하여 32x2x2의 제2 중간 특징맵(3042)이 획득되고, 제2 중간 특징맵(2942)에 컨볼루션 연산(Conv)을 수행하여 4x1x1의 필터링 강도(3060)가 획득된다. 3번의 컨볼루션 연산은 필터 강도 신경망(3045)에 대응된다.The
위와 같이, 신경망에 기반하여 획득된 디블로킹 필터링 계수(3065), 디블로킹 필터링 보상 값(3070), 필터링 강도(3060)와, 디블로킹 필터링 대상 픽셀 라인(3010)을 이용하여 신경망 기반의 디블로킹 필터링이 수행된다.As described above, neural network-based deblocking is performed using the
구체적으로, 디블로킹 필터링 대상 픽셀 라인(3010)과 디블로킹 필터링 계수(3065)를 이용하여 행렬 곱셈의 선형 연산(3075)이 수행되고, 선형 연산의 결과에 디블로킹 필터링 보상 값(3070)을 더하고(3080), 보상 값이 더해진 결과에 필터링 강도(3060)에 클립 함수(Clip(0, 1))를 적용한 결과를 이용하여 성분 곱(3085)을 수행하여 잔차 필터링 픽셀 라인이 획득된다.Specifically, a
필터링 강도 신경망(3045)을 통해 생성된 필터링 강도(3060)의 크기는 4x1x1이고, 디블로킹 필터링 대상 픽셀(3010)의 크기는 8x1이므로, 필터링 강도의 적용 방식이 달라진다. 4x1x1의 필터링 강도(3060)는 8x1의 디블로킹 필터링 대상 픽셀(3010)과 크기가 다르므로, 이를 디블로킹 필터링 대상 픽셀(3010)의 크기에 맞게 스위칭하여 필터링 강도가 적용될 수 있다. 즉, 4x1x1의 ??터링 강도(3060)를 4x1의 형태로 변환하여 필터링 강도가 8x1의 디블로킹 필터링 대상 픽셀(3010)에 2번 적용될 수 있다.Since the size of the
또한, 다른 예로, 8x1의 디블로킹 필터링 대상 픽셀(3010) 중 블록의 경계를 포함하는 일 부분에 대해서만 4x1의 필터링 강도가 적용되어 성분곱이 수행될 수 있다.Also, as another example, component multiplication may be performed by applying a filtering strength of 4x1 only to a portion including a block boundary among the 8x1 deblocking
획득된 잔차 필터링 픽셀 라인에 디블로킹 필터링 대상 픽셀 라인(3010)을 다시 더하여(3090) 8x1의 디블로킹 필터링된 픽셀 라인(3095)이 획득된다. An 8×1 deblocking-filtered
도 31은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.31 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
도 31을 참고하면, 디블로킹 필터 대상 픽셀들의 크기는 8x1이고, 이는 8개의 픽셀들을 하나의 라인으로 하여 1개의 라인임을 의미한다. 또한, 필터링 강도를 획득하기 위해, 디블로킹 필터 대상 픽셀들의 라인이 복수개 이용된다. 이는 8x1의 디블로킹 필터 대상 픽셀 라인 주변의 추가적인 정보를 더 이용함으로써 더 효과적인 필터링 강도(3160)을 획득하기 위함이다.Referring to FIG. 31 , the size of pixels subject to the deblocking filter is 8x1, which means that 8 pixels are 1 line. Also, in order to obtain the filtering intensity, a plurality of lines of deblocking filter target pixels are used. This is to obtain a more
디블로킹 필터링 대상 픽셀 라인(3110)을 완전 연결된 레이어(FC)에 입력하여 제1 중간 특징맵(3131)이 획득되고, 제1 중간 특징맵(3131)을 완전 연결된 레이어(FC)에 입력하여 제2 중간 특징맵(3132)이 획득되고, 제2 중간 특징맵(3132)을 완전 연결된 레이어(FC)에 입력하여 결과적으로 디블로킹 필터링 대상 픽셀 라인(3110)에 대한 특징 맵(3133)이 추출된다. 여기서, 3번의 완전 연결된 레이어에 대한 입력은 특징 추출 신경망(3135)에 대응된다.A first
디블로킹 필터링 대상 픽셀 라인(3110)의 특징 맵(3133)을 완전 연결된 레이어(FC)에 입력하여 8x8 커널의 디블로킹 필터링 계수(3165)가 획득되고, 디블로킹 필터링 대상 픽셀 라인(3110)의 특징 맵(3133)을 완전 연결된 레이어(FC)에 입력하여 8x1의 디블로킹 필터링 보상 값(3170)이 획득된다. 여기서, 각각의 완전 연결된 레이어에 대한 입력은 각각 필터 계수 신경망 및 필터링 보상값 신경망에 대응된다. 또한, 8x1의 디블로킹 필터링 대상 픽셀 라인(3110)을 포함하는 1x4x8의 디블로킹 필터링 대상 픽셀 라인들(3140)에 컨볼루션 연산(Conv)을 수행하여 32x3x5의 제1 중간 특징맵(3141)이 획득되고, 제1 중간 특징맵(3141)에 컨볼루션 연산(Conv)을 수행하여 32x2x2의 제2 중간 특징맵(3142)이 획득되고, 제2 중간 특징맵(3142)에 컨볼루션 연산(Conv)을 수행하여 4x1x1의 필터링 강도(3160)가 획득된다. 3번의 컨볼루션 연산은 필터 강도 신경망(3145)에 대응된다.The
위와 같이, 신경망에 기반하여 획득된 디블로킹 필터링 계수(3165), 디블로킹 필터링 보상 값(3170), 필터링 강도(3160)와, 디블로킹 필터링 대상 픽셀 라인(3110)을 이용하여 신경망 기반의 디블로킹 필터링이 수행된다.As described above, neural network-based deblocking is performed using the
구체적으로, 디블로킹 필터링 계수(3165)에 필터링 강도(3160)에 클립 함수(Clip(0, 1))를 적용한 결과를 이용하여 성분 곱(3185)이 수행되고, 성분 곱(3185)의 수행 결과와 디블로킹 필터링 대상 픽셀 라인들(3110)을 이용하여 행렬 곱셈의 선형 연산(3175)이 수행되고, 디블로킹 필터링 보상 값(3170)에 필터링 강도(3160)에 클립 함수(Clip(0, 1))를 적용한 결과를 이용하여 성분 곱(3186)이 수행되고, 성분 곱(3186)의 수행 결과와 선형 연산(3175) 결과를 더하고(3180), 보상 값이 더해진 결과에 따라 잔차 필터링 픽셀 라인들이 획득된다.Specifically,
필터링 강도 신경망(3145)을 통해 생성된 필터링 강도(3160)의 크기는 4x1x1이고, 디블로킹 필터링 계수(3165)의 크기는 8x8이고, 디블로킹 필터링 보상 값(3170)의 크기는 8x1이므로, 필터링 강도의 적용 방식이 달라진다. 4x1x1의 필터링 강도(3160)는 8x8의 디블로킹 필터링 계수(3165) 및 8x1의 디블로킹 필터링 보상 값(3170)과 각각 크기가 다르므로, 이를 디블로킹 필터링 계수(3165) 및 디블로킹 필터링 보상 값(3170)의 크기에 맞게 스위칭하여 필터링 강도가 적용될 수 있다. 즉, 4x1x1의 ??터링 강도(3160)를 4x1의 형태로 변환하여 필터링 강도가 8x8의 디블로킹 필터링 계수(3165)에 16번 적용되고, 8x1의 디블로킹 필터링 보상 값(3170)에 2번 적용될 수 있다.Since the size of the
또한, 다른 예로, 8x8의 디블로킹 필터링 계수(3165) 중 블록의 경계에 적용되는 일 부분에 대해서만 4x1의 필터링 강도가 적용되고, 8x8의 디블로킹 필터링 보상 값(3170) 중 블록의 경계에 적용되는 일 부분에 대해서만 4x1의 필터링 강도가 적용되어 성분곱이 수행될 수 있다.In addition, as another example, a filtering strength of 4x1 is applied only to a portion of the 8x8
획득된 잔차 필터링 픽셀 라인들에 디블로킹 필터링 대상 픽셀 라인들(3110)을 다시 더하여(3190) 8x1의 디블로킹 필터링된 픽셀 라인들(3195)이 획득된다.8×1 deblocking-filtered
도 31은 도 30과 비교하여, 필터링 강도의 성분곱이 수행되는 순서가 변경된 것일 뿐, 실질적으로 동일한 결과가 획득되는 실시예이다. FIG. 31 is an embodiment in which substantially the same results are obtained compared to FIG. 30 except that the order in which component multiplication of filtering strengths is performed is changed.
도 32는 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.32 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
도 32를 참고하면, 디블로킹 필터 대상 픽셀 라인의 크기는 8x1이고, 이는 8개의 픽셀들을 하나의 라인으로 하여 1개의 라인임을 의미한다. Referring to FIG. 32 , the size of a pixel line subject to a deblocking filter is 8x1, which means that 8 pixels are one line and one line.
디블로킹 필터링 대상 픽셀 라인(3210)을 완전 연결된 레이어(FC)에 입력하여 제1 중간 특징맵(3231)이 획득되고, 제1 중간 특징맵(3231)을 완전 연결된 레이어(FC)에 입력하여 제2 중간 특징맵(3232)이 획득되고, 제2 중간 특징맵(3232)을 완전 연결된 레이어(FC)에 입력하여 결과적으로 디블로킹 필터링 대상 픽셀 라인(3210)에 대한 특징 맵(3233)이 추출된다. 여기서, 3번의 완전 연결된 레이어에 대한 입력은 특징 추출 신경망(3235)에 대응된다.A first
디블로킹 필터링 대상 픽셀 라인(3210)의 특징 맵(3233)을 완전 연결된 레이어(FC)에 입력하여 8x8 커널의 디블로킹 필터링 계수(3265)가 획득되고, 디블로킹 필터링 대상 픽셀 라인(3210)의 특징 맵(3233)을 완전 연결된 레이어(FC)에 입력하여 8x1의 디블로킹 필터링 DC 보상 값(3270)이 획득된다. 여기서, 각각의 완전 연결된 레이어에 대한 입력은 각각 필터 계수 신경망 및 필터링 보상값 신경망에 대응된다. The
위와 같이, 신경망에 기반하여 획득된 디블로킹 필터링 계수(3265), 디블로킹 필터링 DC 보상 값(3270)과, 디블로킹 필터링 대상 픽셀 라인(3210)을 이용하여 신경망 기반의 디블로킹 필터링이 수행된다.As described above, neural network-based deblocking filtering is performed using the
구체적으로, 디블로킹 필터링 대상 픽셀 라인(3210)과 디블로킹 필터링 계수(3265)를 이용하여 행렬 곱셈의 선형 연산(3275)이 수행되고, 선형 연산의 결과에 디블로킹 필터링 DC 보상 값(3270)을 더하여 DC 보상(3280)이 수행되어, 잔차 필터링 픽셀 라인이 획득되고, 잔차 필터링 픽셀 라인에 디블로킹 필터링 대상 픽셀 라인(3210)을 다시 더하여(3290) 8x1의 디블로킹 필터링된 픽셀 라인(3295)이 획득된다. Specifically, a
도 33은 일 실시예에 따른 신경망 기반 디블로킹 필터링의 구조를 설명하기 위한 도면이다.33 is a diagram for explaining the structure of neural network-based deblocking filtering according to an embodiment.
도 33을 참고하면, 디블로킹 필터 대상 픽셀 라인의 크기는 8x1이고, 이는 8개의 픽셀들을 하나의 라인으로 하여 1개의 라인임을 의미한다. Referring to FIG. 33 , the size of a pixel line subject to a deblocking filter is 8×1, which means that 8 pixels are one line and one line.
디블로킹 필터링 대상 픽셀 라인(3310)을 완전 연결된 레이어(FC)에 입력하여 제1 중간 특징맵(3331)이 획득되고, 제1 중간 특징맵(3331)을 완전 연결된 레이어(FC)에 입력하여 제2 중간 특징맵(3332)이 획득되고, 제2 중간 특징맵(3332)을 완전 연결된 레이어(FC)에 입력하여 결과적으로 디블로킹 필터링 대상 픽셀 라인(3310)에 대한 특징 맵(3333)이 추출된다. 여기서, 3번의 완전 연결된 레이어에 대한 입력은 특징 추출 신경망(3335)에 대응된다.A first
디블로킹 필터링 대상 픽셀 라인(3310)의 특징 맵(3333)을 완전 연결된 레이어(FC)에 입력하여 8x8 커널의 디블로킹 필터링 계수(3365)가 획득되고, 디블로킹 필터링 대상 픽셀 라인(3310)의 특징 맵(3333)을 완전 연결된 레이어(FC)에 입력하여 8x1의 디블로킹 필터링 보상 값(3370)이 획득된다. 여기서, 각각의 완전 연결된 레이어에 대한 입력은 각각 필터 계수 신경망 및 필터링 보상값 신경망에 대응된다. The
위와 같이, 신경망에 기반하여 획득된 디블로킹 필터링 계수(3365), 디블로킹 필터링 보상 값(3370)과, 디블로킹 필터링 대상 픽셀 라인(3310)을 이용하여 신경망 기반의 디블로킹 필터링이 수행된다.As described above, neural network-based deblocking filtering is performed using the
구체적으로, 디블로킹 필터링 대상 픽셀 라인(3310)과 디블로킹 필터링 계수(3365)를 이용하여 행렬 곱셈의 선형 연산(33275)이 수행되고, 선형 연산의 결과에 디블로킹 필터링 보상 값(3370)을 더하여(3380), 잔차 필터링 픽셀 라인이 획득되고, 잔차 필터링 픽셀 라인에 디블로킹 필터링 대상 픽셀 라인(3310)을 다시 더하여(3390) 8x1의 디블로킹 필터링된 픽셀 라인(3395)이 획득된다. Specifically, a linear operation 33275 of matrix multiplication is performed using the deblocking filtering
도 34는 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법의 순서도이다.34 is a flowchart of an image processing method using neural network-based deblocking filtering according to an embodiment.
도 34를 참고하면, S3410 단계에서, 영상 처리 장치(3500)는, 블록의 경계선에 수직인 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들 및 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들에 대한 부호화 정보에 기초하여 디블로킹 필터링을 위한 입력 데이터를 획득한다.Referring to FIG. 34 , in step S3410, the
일 실시예에 따라, 부호화 정보는 복수의 완전 연결된 레이어들을 포함하는 완전 연결 신경망을 통해 출력된 후, 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들과 동일한 크기로 변환된 것일 수 있다.According to an embodiment, the encoding information may be outputted through a fully connected neural network including a plurality of fully connected layers, and then converted to the same size as the deblocking filtering target pixels of the at least one line.
일 실시예에 따라, 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들은 상기 블록의 상기 경계선의 수직인 한 방향으로 n개의 픽셀들 및 상기 경계선의 수직인 다른 방향으로 n개의 픽셀들을 포함하는 2n개의 픽셀들일 수 있다.According to an embodiment, the deblocking filtering target pixels of at least one line may include n pixels in one direction perpendicular to the boundary line of the block and 2n pixels including n pixels in another direction perpendicular to the boundary line of the block. can be picked up
일 실시예에 따라, 부호화 정보는 입력 데이터에 포함되지 않을 수 있다.According to an embodiment, encoding information may not be included in input data.
S3420 단계에서, 영상 처리 장치(3500)는, 입력 데이터를 제1 신경망에 입력하여 상기 입력 데이터의 특징 맵을 획득한다.In step S3420, the
일 실시예에 따라, 제1 신경망은 복수 개의 레지듀얼 블록들을 포함할 수 있다.According to an embodiment, the first neural network may include a plurality of residual blocks.
일 실시예에 따라, 제1 신경망은 복수개의 완전 연결된 레이어들을 포함할 수 있다.According to an embodiment, the first neural network may include a plurality of fully connected layers.
일 실시예에 따라, 제1 신경망은 복수개의 컨볼루션 레이어들을 포함할 수 있다.According to an embodiment, the first neural network may include a plurality of convolutional layers.
S3430 단계에서, 영상 처리 장치(3500)는, 특징 맵을 제2 신경망에 입력하여 디블로킹 필터 계수를 획득한다.In step S3430, the
일 실시예에 따라, 제2 신경망은 적어도 하나의 레지듀얼 블록을 포함할 수 있다.According to an embodiment, the second neural network may include at least one residual block.
일 실시예에 따라, 제2 신경망은 적어도 하나의 완전 연결된 레이어를 포함할 수 있다.According to an embodiment, the second neural network may include at least one fully connected layer.
일 실시예에 따라, 제2 신경망은 적어도 하나의 컨볼루션 레이어를 포함할 수 있다.According to an embodiment, the second neural network may include at least one convolutional layer.
S3440 단계에서, 영상 처리 장치(3500)는, 특징 맵을 제3 신경망에 입력하여 디블로킹 필터 보상 값을 획득한다.In step S3440, the
일 실시예에 따라, 제3 신경망은 적어도 하나의 레지듀얼 블록을 포함할 수 있다.According to an embodiment, the third neural network may include at least one residual block.
일 실시예에 따라, 제3 신경망은 적어도 하나의 완전 연결된 레이어를 포함할 수 있다.According to an embodiment, the third neural network may include at least one fully connected layer.
일 실시예에 따라, 제3 신경망은 적어도 하나의 컨볼루션 레이어를 포함할 수 있다.According to an embodiment, the third neural network may include at least one convolutional layer.
일 실시예에 따라, 디블로킹 필터 보상 값은 획득되지 않고, 디블로킹 필터 보상 값은 0으로 설정될 수 있다.According to one embodiment, the deblocking filter compensation value may not be obtained and the deblocking filter compensation value may be set to zero.
S3450 단계에서, 영상 처리 장치(3500)는, 입력 데이터를 제4 신경망에 입력하여 디블로킹 필터 강도를 획득한다. In step S3450, the
일 실시예에 따라, 제4 신경망은 적어도 하나의 컨볼루션 레이어를 포함할 수 있다.According to an embodiment, the fourth neural network may include at least one convolutional layer.
일 실시예에 따라, 디블로킹 필터 강도는 획득되지 않고, 디블로킹 필터 강도는 1로 설정될 수 있다.According to one embodiment, the deblocking filter strength is not obtained and the deblocking filter strength may be set to 1.
일 실시예에 따라, 디블로킹 필터 보상 값 및 디블로킹 필터 강도는 획득되지 않고, 디블로킹 필터 보상 값은 0으로 설정되고, 디블로킹 필터 강도는 1로 설정될 수 있다.According to one embodiment, the deblocking filter compensation value and the deblocking filter strength may not be obtained, the deblocking filter compensation value may be set to 0, and the deblocking filter strength may be set to 1.
S3460 단계에서, 영상 처리 장치(3500)는, 디블로킹 필터 계수, 디블로킹 필터 보상 값, 및 디블로킹 필터 강도를 이용하여 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들에 디블로킹 필터링을 수행함으로써, 디블로킹 필터링된 픽셀들을 획득한다.In step S3460, the
일 실시예에 따라, 디블로킹 필터링에 스케일링 인자가 추가로 이용될 수 있다.According to one embodiment, a scaling factor may be additionally used for deblocking filtering.
일 실시예에 따라, 스케일링 인자는 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들이 포함된 프레임의 종류에 따라 결정될 수 있다.According to an embodiment, the scaling factor may be determined according to the type of a frame including pixels to be deblocked and filtered for at least one line.
일 실시예에 따라, 영상 처리 장치(3500)는, 디블로킹 필터 계수와 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들의 행렬 곱셈을 수행하여 행렬 곱셈 결과를 획득하고, 상기 행렬 곱셈 결과에 디블로킹 필터 보상 값을 더하여 필터 보상 결과를 획득하고, 필터 보상 결과에 디블로킹 필터 강도를 이용하여 성분 곱을 수행하여 잔차 디블로킹 필터링 픽셀들을 획득하고, 잔차 디블로킬 필터링 픽셀들을 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들을 더하여 디블로킹 필터링된 픽셀들을 획득할 수 있다.According to an embodiment, the
일 실시예에 따라, 영상 처리 장치(3500)는, 디블로킹 필터 계수와 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들의 행렬 곱셈을 수행하여 행렬 곱셈 결과를 획득하고, 행렬 곱셈 결과에 상기 디블로킹 필터 보상 값을 더하여 필터 보상 결과를 획득하고, 필터 보상 결과에 디블로킹 필터 강도를 이용하여 성분 곱을 수행하여 디블로킹 필터링된 픽셀들을 획득할 수 있다.According to an embodiment, the
도 35는 일 실시예에 따른 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 장치의 구성을 도시하는 도면이다.35 is a diagram illustrating a configuration of an image processing device using neural network-based deblocking filtering according to an exemplary embodiment.
도 35를 참고하면, 영상 처리 장치(3500)는 입력 데이터 획득부(3510), 특징맵 획득부(3520), 필터 계수 획득부(3530), 필터 보상값 획득부(3540), 필터 강도 획득부(3550), 및 필터링된 픽셀 획득부(3560)를 포함한다.Referring to FIG. 35 , the
입력 데이터 획득부(3510), 특징맵 획득부(3520), 필터 계수 획득부(3530), 필터 보상값 획득부(3540), 필터 강도 획득부(3550), 및 필터링된 픽셀 획득부(3560)는 뉴럴 프로세서로 구현될 수 있고, 입력 데이터 획득부(3510), 특징맵 획득부(3520), 필터 계수 획득부(3530), 필터 보상값 획득부(3540), 필터 강도 획득부(3550), 및 필터링된 픽셀 획득부(3560)는 메모리(미도시)에 저장된 인스트럭션에 따라 동작할 수 있다.Input
도 35는 입력 데이터 획득부(3510), 특징맵 획득부(3520), 필터 계수 획득부(3530), 필터 보상값 획득부(3540), 필터 강도 획득부(3550), 및 필터링된 픽셀 획득부(3560)를 개별적으로 도시하고 있으나, 입력 데이터 획득부(3510), 특징맵 획득부(3520), 필터 계수 획득부(3530), 필터 보상값 획득부(3540), 필터 강도 획득부(3550), 및 필터링된 픽셀 획득부(3560)는 하나의 프로세서를 통해 구현될 수 있다. 이 경우, 입력 데이터 획득부(3510), 특징맵 획득부(3520), 필터 계수 획득부(3530), 필터 보상값 획득부(3540), 필터 강도 획득부(3550), 및 필터링된 픽셀 획득부(3560)는 전용 프로세서로 구현되거나, AP(application processor), CPU(central processing unit), GPU(graphic processing unit), 또는 NPU(neural processing unit)와 같은 범용 프로세서와 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 전용 프로세서의 경우, 본 개시의 실시예를 구현하기 위한 메모리를 포함하거나, 외부 메모리를 이용하기 위한 메모리 처리부를 포함할 수 있다. 35 shows an input
입력 데이터 획득부(3510), 특징맵 획득부(3520), 필터 계수 획득부(3530), 필터 보상값 획득부(3540), 필터 강도 획득부(3550), 및 필터링된 픽셀 획득부(3560)는 복수의 프로세서로 구성될 수도 있다. 이 경우, 전용 프로세서들의 조합으로 구현되거나, AP, CPU, GPU, 또는 NPU와 같은 다수의 범용 프로세서들과 소프트웨어의 조합을 통해 구현될 수도 있다. Input
입력 데이터 획득부(3510)는 블록의 경계선에 수직인 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들 및 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들에 대한 부호화 정보에 기초하여 디블로킹 필터링을 위한 입력 데이터를 획득한다. The input
특징맵 획득부(3520)는 입력 데이터를 제1 신경망에 입력하여 상기 입력 데이터의 특징 맵을 획득한다.The feature
필터 계수 획득부(3530)는 특징 맵을 제2 신경망에 입력하여 디블로킹 필터 계수를 획득한다.The filter
필터 보상값 획득부(3540)는 특징 맵을 제3 신경망에 입력하여 디블로킹 필터 보상 값을 획득한다.The filter compensation
필터 강도 획득부(3550)는 입력 데이터를 제4 신경망에 입력하여 디블로킹 필터 강도를 획득한다.The filter
필터링된 픽셀 획득부(3560)는 디블로킹 필터 계수, 디블로킹 필터 보상 값, 및 디블로킹 필터 강도를 이용하여 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들에 디블로킹 필터링을 수행함으로써, 디블로킹 필터링된 픽셀들을 획득한다.The filtered
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.The device-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-temporary storage medium' only means that it is a tangible device and does not contain signals (e.g., electromagnetic waves), and this term refers to the case where data is stored semi-permanently in the storage medium and temporary It does not discriminate if it is saved as . For example, a 'non-temporary storage medium' may include a buffer in which data is temporarily stored.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, the method according to various embodiments disclosed in this document may be provided by being included in a computer program product. Computer program products may be traded between sellers and buyers as commodities. A computer program product is distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)), or through an application store or between two user devices (eg smartphones). It can be distributed (e.g., downloaded or uploaded) directly or online. In the case of online distribution, at least a part of a computer program product (eg, a downloadable app) is stored on a device-readable storage medium such as a memory of a manufacturer's server, an application store server, or a relay server. It can be temporarily stored or created temporarily.
Claims (17)
상기 입력 데이터를 제1 신경망에 입력하여 상기 입력 데이터의 특징 맵을 획득하는 단계;
상기 특징 맵을 제2 신경망에 입력하여 디블로킹 필터 계수를 획득하는 단계;
상기 특징 맵을 제3 신경망에 입력하여 디블로킹 필터 보상 값을 획득하는 단계;
상기 입력 데이터를 제4 신경망에 입력하여 디블로킹 필터 강도를 획득하는 단계;
상기 디블로킹 필터 계수, 상기 디블로킹 필터 보상 값, 및 상기 디블로킹 필터 강도를 이용하여 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들에 디블로킹 필터링을 수행함으로써, 디블로킹 필터링된 픽셀들을 획득하는 단계;를 포함하는, 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법.obtaining input data for deblocking filtering based on deblocking filtering target pixels of at least one line perpendicular to a block boundary and encoding information about the deblocking filtering target pixels of the at least one line;
acquiring a feature map of the input data by inputting the input data to a first neural network;
obtaining deblocking filter coefficients by inputting the feature map to a second neural network;
obtaining a deblocking filter compensation value by inputting the feature map to a third neural network;
obtaining a deblocking filter strength by inputting the input data to a fourth neural network;
Obtaining deblocking filtered pixels by performing deblocking filtering on deblocking filtering target pixels of the at least one line using the deblocking filter coefficient, the deblocking filter compensation value, and the deblocking filter strength. An image processing method using neural network-based deblocking filtering, including;
상기 부호화 정보는 복수의 완전 연결된 레이어들을 포함하는 완전 연결 신경망을 통해 출력된 후, 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들과 동일한 크기로 변환된 것인, 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법.According to claim 1,
After the encoding information is output through a fully connected neural network including a plurality of fully connected layers, the image using neural network-based deblocking filtering is converted to the same size as the deblocking filtering target pixels of the at least one line. processing method.
상기 디블로킹 필터링에 스케일링 인자가 추가로 이용되는, 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법.According to claim 1,
An image processing method using neural network-based deblocking filtering, wherein a scaling factor is additionally used for the deblocking filtering.
상기 스케일링 인자는 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들이 포함된 프레임의 종류에 따라 결정되는, 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법.According to claim 3,
Wherein the scaling factor is determined according to a type of a frame including pixels to be subjected to deblocking filtering of the at least one line, the image processing method using neural network-based deblocking filtering.
상기 디블로킹 필터링된 픽셀들을 획득하는 단계는:
상기 디블로킹 필터 계수와 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들의 행렬 곱셈을 수행하여 행렬 곱셈 결과를 획득하는 단계;
상기 행렬 곱셈 결과에 상기 디블로킹 필터 보상 값을 더하여 필터 보상 결과를 획득하는 단계;
상기 필터 보상 결과에 상기 디블로킹 필터 강도를 이용하여 성분 곱을 수행하여 잔차 디블로킹 필터링 픽셀들을 획득하는 단계;
상기 잔차 디블로킬 필터링 픽셀들을 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들을 더하여 상기 디블로킹 필터링된 픽셀들을 획득하는 단계를 포함하는, 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법.According to claim 1,
Obtaining the deblocking filtered pixels is to:
obtaining a matrix multiplication result by performing matrix multiplication of the deblocking filter coefficient and pixels to be filtered for deblocking of the at least one line;
obtaining a filter compensation result by adding the deblocking filter compensation value to the matrix multiplication result;
obtaining residual deblocking filtering pixels by performing component multiplication on the filter compensation result using the deblocking filter strength;
and obtaining the deblocking-filtered pixels by adding the residual deblocking filtering pixels to deblocking filtering target pixels of the at least one line.
상기 디블로킹 필터링된 픽셀들을 획득하는 단계는:
상기 디블로킹 필터 계수와 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들의 행렬 곱셈을 수행하여 행렬 곱셈 결과를 획득하는 단계;
상기 행렬 곱셈 결과에 상기 디블로킹 필터 보상 값을 더하여 필터 보상 결과를 획득하는 단계;
상기 필터 보상 결과에 상기 디블로킹 필터 강도를 이용하여 성분 곱을 수행하여 상기 디블로킹 필터링된 픽셀들을 획득하는 단계를 포함하는, 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법.According to claim 1,
Obtaining the deblocking filtered pixels is to:
obtaining a matrix multiplication result by performing matrix multiplication of the deblocking filter coefficient and pixels to be filtered for deblocking of the at least one line;
obtaining a filter compensation result by adding the deblocking filter compensation value to the matrix multiplication result;
and obtaining the deblocking-filtered pixels by performing component multiplication using the deblocking filter strength on the filter compensation result.
상기 제1 신경망은 복수 개의 레지듀얼 블록들을 포함하는, 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법.According to claim 1,
The image processing method using neural network-based deblocking filtering, wherein the first neural network includes a plurality of residual blocks.
상기 제2 신경망은 레지듀얼 블록을 포함하는, 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법.According to claim 1,
The second neural network includes a residual block, an image processing method using neural network-based deblocking filtering.
상기 제3 신경망은 레지듀얼 블록을 포함하는, 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법.According to claim 1,
The third neural network includes a residual block, an image processing method using neural network-based deblocking filtering.
상기 제4 신경망은 복수개의 컨볼루션 레이어들을 포함하는, 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법.According to claim 1,
The fourth neural network includes a plurality of convolutional layers, an image processing method using neural network-based deblocking filtering.
상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들은 상기 블록의 상기 경계선의 수직인 한 방향으로 n개의 픽셀들 및 상기 경계선의 수직인 다른 방향으로 n개의 픽셀들을 포함하는 2n개의 픽셀들인, 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법.According to claim 1,
The deblocking filtering target pixels of the at least one line are 2n pixels including n pixels in one direction perpendicular to the boundary line of the block and n pixels in another direction perpendicular to the boundary line of the block, An image processing method using blocking filtering.
상기 부호화 정보는 입력 데이터에 포함되지 않는, 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법.According to claim 1,
An image processing method using neural network-based deblocking filtering, wherein the encoding information is not included in input data.
상기 디블로킹 필터 보상 값은 획득되지 않고,
상기 디블로킹 필터 보상 값은 0으로 설정되는, 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법.According to claim 1,
The deblocking filter compensation value is not obtained,
The deblocking filter compensation value is set to 0, an image processing method using neural network-based deblocking filtering.
상기 디블로킹 필터 강도는 획득되지 않고,
상기 디블로킹 필터 강도는 1로 설정되는, 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법.According to claim 1,
The deblocking filter strength is not obtained,
The deblocking filter strength is set to 1, an image processing method using neural network-based deblocking filtering.
상기 디블로킹 필터 보상 값 및 상기 디블로킹 필터 강도는 획득되지 않고,
상기 디블로킹 필터 보상 값은 0으로 설정되고, 상기 디블로킹 필터 강도는 1로 설정되는, 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 방법.According to claim 1,
the deblocking filter compensation value and the deblocking filter strength are not obtained;
The image processing method using neural network-based deblocking filtering, wherein the deblocking filter compensation value is set to 0 and the deblocking filter strength is set to 1.
상기 하나 이상의 인스트럭션에 따라 동작하는 프로세서를 포함하고,
상기 프로세서는:
블록의 경계선에 수직인 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들 및 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들에 대한 부호화 정보에 기초하여 입력 데이터를 획득하고,
상기 입력 데이터를 제1 신경망에 입력하여 상기 입력 데이터의 특징 맵을 획득하고,
상기 특징 맵을 제2 신경망에 입력하여 디블로킹 필터 계수를 획득하고,
상기 특징 맵을 제3 신경망에 입력하여 디블로킹 필터 보상 값을 획득하고,
상기 입력 데이터를 제4 신경망에 입력하여 디블로킹 필터 강도를 획득하고,
상기 디블로킹 필터 계수, 상기 디블로킹 필터 보상 값, 및 상기 디블로킹 필터 강도를 이용하여 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들에 디블로킹 필터링을 수행함으로써, 디블로킹 필터링된 픽셀들을 획득하는, 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 장치.a memory that stores one or more instructions; and
a processor operating in accordance with the one or more instructions;
The processor:
Obtaining input data based on deblocking filtering target pixels of at least one line perpendicular to a boundary line of a block and encoding information on deblocking filtering target pixels of the at least one line;
Inputting the input data to a first neural network to obtain a feature map of the input data;
Obtaining deblocking filter coefficients by inputting the feature map to a second neural network;
Obtaining a deblocking filter compensation value by inputting the feature map to a third neural network;
Obtaining deblocking filter strength by inputting the input data to a fourth neural network;
Obtaining deblocking filtered pixels by performing deblocking filtering on deblocking filtering target pixels of the at least one line using the deblocking filter coefficient, the deblocking filter compensation value, and the deblocking filter strength. , An image processing device using neural network-based deblocking filtering.
상기 부호화 정보는 복수의 완전 연결된 레이어들을 포함하는 완전 연결 신경망을 통해 출력된 후, 상기 적어도 하나의 라인의 디블로킹 필터링 대상 픽셀들과 동일한 크기로 변환된 것인, 신경망 기반 디블로킹 필터링을 이용하는 영상 처리 장치.According to claim 16,
After the encoding information is output through a fully connected neural network including a plurality of fully connected layers, the image using neural network-based deblocking filtering is converted to the same size as the deblocking filtering target pixels of the at least one line. processing unit.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2022/011355 WO2023014031A1 (en) | 2021-08-06 | 2022-08-02 | Image processing method and device using neural network-based deblocking filtering |
EP22853408.7A EP4354874A1 (en) | 2021-08-06 | 2022-08-02 | Image processing method and device using neural network-based deblocking filtering |
CN202280054440.8A CN117795963A (en) | 2021-08-06 | 2022-08-02 | Image processing method and apparatus using neural network-based deblocking filtering |
US17/880,799 US20230044532A1 (en) | 2021-08-06 | 2022-08-04 | Image processing method and apparatus using neural network based deblocking filtering |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20210104200 | 2021-08-06 | ||
KR1020210104200 | 2021-08-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230022099A true KR20230022099A (en) | 2023-02-14 |
Family
ID=85220620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220041329A KR20230022099A (en) | 2021-08-06 | 2022-04-01 | Image processing method and apparatus using a neural network based deblocking filtering |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230022099A (en) |
-
2022
- 2022-04-01 KR KR1020220041329A patent/KR20230022099A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11589041B2 (en) | Method and apparatus of neural network based processing in video coding | |
CN111133756B (en) | Neural network method and apparatus for video coding | |
TWI600326B (en) | Luma-based chroma intra prediction | |
WO2019174542A1 (en) | Method and apparatus of loop filtering for vr360 videos | |
KR101547201B1 (en) | Apparatus and method of sample adaptive offset for video coding | |
CN104025593B (en) | Being derived using improved image block boundaries intensity carries out block elimination filtering | |
KR20240068078A (en) | Method and apparatus for filtering with mode-aware deep learning | |
JP2019525679A5 (en) | ||
CN103385001B (en) | For Efficient decisions for deblocking | |
CN111937392B (en) | Neural network method and device for video encoding and decoding | |
TWI677239B (en) | Non-local adaptive loop filter combining multiple denoising technologies and grouping image patches in parallel | |
CN107172427A (en) | Coding/decoding method and decoding apparatus | |
US20150189276A1 (en) | Video encoding method and apparatus, video decoding method and apparatus, and programs therefor | |
US20180359486A1 (en) | Non-local adaptive loop filter processing | |
CN109756734A (en) | The method and apparatus that data array is encoded | |
KR20130095927A (en) | Apparatus for correcting of in-loop pixel filter using parameterized complexity measure and method of the same | |
CN116076073A (en) | Hardware codec accelerator for high performance video coding | |
WO2023029045A1 (en) | Parallel encoding of video frames without filtering dependency | |
KR20230022099A (en) | Image processing method and apparatus using a neural network based deblocking filtering | |
Hoang et al. | B-DRRN: A block information constrained deep recursive residual network for video compression artifacts reduction | |
US20230044532A1 (en) | Image processing method and apparatus using neural network based deblocking filtering | |
EP4354874A1 (en) | Image processing method and device using neural network-based deblocking filtering | |
CN117795963A (en) | Image processing method and apparatus using neural network-based deblocking filtering | |
US20230044603A1 (en) | Apparatus and method for applying artificial intelligence-based filtering to image | |
Pourreza-Shahri et al. | A gradient-based optimization approach for reduction of blocking artifacts in JPEG images |