KR102471796B1 - Method and system for preprocessing cognitive video using saliency map - Google Patents
Method and system for preprocessing cognitive video using saliency map Download PDFInfo
- Publication number
- KR102471796B1 KR102471796B1 KR1020220089648A KR20220089648A KR102471796B1 KR 102471796 B1 KR102471796 B1 KR 102471796B1 KR 1020220089648 A KR1020220089648 A KR 1020220089648A KR 20220089648 A KR20220089648 A KR 20220089648A KR 102471796 B1 KR102471796 B1 KR 102471796B1
- Authority
- KR
- South Korea
- Prior art keywords
- video
- neural network
- training
- saliency map
- loss value
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- G06N3/0454—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/167—Position within a video image, e.g. region of interest [ROI]
-
- 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/20—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
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
본 발명은 세일리언시 맵을 이용한 인지적 비디오 전처리 방법 및 시스템에 관한 것으로, 상세하게는 네트워크를 통해 비디오를 전송하기 전에 비디오 압축량 안에서 인간의 인지적 화질을 높일 수 있는 비디오 압축 이전 세일리언시 맵을 이용한 인지적 비디오 전처리 방법 및 시스템에 관한 것이다. The present invention relates to a cognitive video pre-processing method and system using a saliency map, and more particularly, to a saliency pre-compression video capable of increasing human cognitive quality within a video compression amount before transmitting a video over a network. It relates to a method and system for perceptual video preprocessing using a map.
비디오를 네트워크를 통해 사용자로 전송하기 전에 비디오 크기, 또는 네트워크 대역폭과 같은 기술적 한계로 인해 비디오가 압축된다. 압축된 비디오는 압축되지 않은 비디오와 대비할 때, 비디오의 퀄리티가 떨어진다. Before the video is transmitted over the network to the user, the video is compressed due to technical limitations such as video size or network bandwidth. Compressed video is inferior to uncompressed video.
사용자가 비디오를 볼 때, 비디오에서 인지적 집중도가 높은 영역이 존재한다. 세일리언시 맵(saliency map)이란 사람의 시선이 가장 먼저 집중되는 영역을 강조한 이미지이다. 비디오 압축 알고리즘에서 세일리언시 맵을 추가하여 인지적 집중도가 높은 영역에 압축량을 낮추고, 그렇지 않은 영역에 압축량을 높이는 인지 적응적 압축 방법이 있다. When a user watches a video, there is a region of high perceptual concentration in the video. A saliency map is an image that emphasizes the area where a person's gaze is first focused. There is a cognitive adaptive compression method in which a saliency map is added to a video compression algorithm to reduce the amount of compression in areas with high cognitive concentration and increase the amount of compression in areas where there is not.
하지만 세일이언시 맵을 생성할 때, 사용자에 의해 사람의 시선이 가장 먼저 집중되는 영역이 지정되어야 한다. 또한, 생성된 세일리언시 맵을 이용한 입력 비디오는 압축된다. 압축되는 과정에서 비디오 데이터는 손상될 수 있다. However, when creating a Sail City map, the area where the user's gaze is first focused must be specified. In addition, the input video using the generated saliency map is compressed. Video data may be corrupted during the compression process.
따라서 세일리언시 맵을 자동으로 생성하는 방법이 요구된다. 또한, 세일리언시 맵의 생성에 있어서 미리 비디오 코덱을 이용한 비디오 압축까지 고려하는 방법이 요구된다. Therefore, a method of automatically generating a saliency map is required. In addition, a method of considering video compression using a video codec in advance is required in generating the saliency map.
본 발명이 이루고자 하는 기술적인 과제는 비디오 압축까지 고려한 세일리언시 맵을 이용한 인지적 비디오 전처리 방법 및 시스템을 제공하는 것이다. A technical problem to be achieved by the present invention is to provide a cognitive video preprocessing method and system using a saliency map considering video compression.
본 발명의 실시 예에 따른 세일리언시 맵을 이용한 인지적 비디오 전처리 방법은 훈련 비디오를 제1신경망에 적용하여 세일리언시 맵을 생성하는 단계, 및 상기 훈련 비디오와 상기 세일리언시 맵을 제2신경망, 비디오 인코딩 모듈에 포함된 미분 가능한 유닛들에 적용하여 출력되는 비디오와, 그라운드 트루(ground truth) 비디오를 이용하여 상기 제1신경망과 상기 제2신경망을 훈련시키는 단계를 포함한다. A cognitive video preprocessing method using a saliency map according to an embodiment of the present invention includes generating a saliency map by applying a training video to a first neural network, and generating a saliency map by applying the training video and the saliency map to a second neural network. and training the first neural network and the second neural network using a video output by applying to differentiable units included in a neural network and a video encoding module, and a ground truth video.
상기 미분 가능한 유닛들은 예측 유닛, 변환 유닛, 양자화 유닛, 인버스 양자화 유닛, 및 인버스 변환 유닛을 포함한다. The differentiable units include a prediction unit, a transform unit, a quantization unit, an inverse quantization unit, and an inverse transform unit.
상기 제1신경망과 상기 제2신경망을 훈련시키는 단계는 상기 제1신경망에서 생성되는 세일리언시 맵과 상기 그라운드 트루 비디오의 픽셀 비교에 기초하여 제1손실 값을 계산하는 단계, 상기 출력되는 비디오와 상기 훈련 비디오의 픽셀 비교에 기초하여 제2손실 값을 계산하는 단계, 상기 출력되는 비디오와 상기 훈련 비디오의 SSIM(Structural similarity index measure)에 기초하여 제3손실 값을 계산하는 단계, 상기 출력되는 비디오와 상기 훈련 비디오의 유클리드 거리(Euclidean distance)에 기초하여 제4손실 값을 계산하는 단계, 및 상기 제1손실 값, 상기 제2손실 값, 상기 제3손실 값, 및 상기 제4손실 값을 이용하여 손실 함수를 생성하는 단계를 포함한다. The step of training the first neural network and the second neural network may include calculating a first loss value based on pixel comparison between a saliency map generated by the first neural network and the ground true video; Calculating a second loss value based on pixel comparison of the training video; Calculating a third loss value based on a Structural Similarity Index Measure (SSIM) of the output video and the training video; and calculating a fourth loss value based on the Euclidean distance of the training video, and using the first loss value, the second loss value, the third loss value, and the fourth loss value to generate a loss function.
상기 세일리언시 맵을 이용한 인지적 비디오 전처리 방법은 상기 양자화 유닛로부터 출력되는 양자화된 변환 계수들을 수신하여 엔트로피를 계산하는 단계를 더 포함한다. The perceptual video preprocessing method using the saliency map further includes calculating entropy by receiving quantized transform coefficients output from the quantization unit.
본 발명의 실시 예에 따른 세일리언시 맵을 이용한 인지적 비디오 전처리 시스템은 소스 장치를 포함한다. 상기 소스 장치는 명령들을 실행하는 프로세서, 및상기 명령들을 저장하는 메모리를 포함한다. A perceptual video pre-processing system using a saliency map according to an embodiment of the present invention includes a source device. The source device includes a processor that executes instructions, and a memory that stores the instructions.
상기 명령들은 훈련 비디오를 제1신경망에 적용하여 세일리언시 맵을 생성하며, 상기 훈련 비디오와 상기 세일리언시 맵을 제2신경망, 비디오 인코딩 모듈에 포함된 미분 가능한 유닛들에 적용하여 출력되는 비디오와, 그라운드 트루(ground truth) 비디오를 이용하여 상기 제1신경망과 상기 제2신경망을 훈련시키도록 구현된다. The instructions generate a saliency map by applying the training video to the first neural network, and apply the training video and the saliency map to the second neural network and differentiable units included in the video encoding module to output video. And, it is implemented to train the first neural network and the second neural network using ground truth video.
상기 미분 가능한 유닛들은 예측 유닛, 변환 유닛, 양자화 유닛, 인버스 양자화 유닛, 및 인버스 변환 유닛을 포함한다. The differentiable units include a prediction unit, a transform unit, a quantization unit, an inverse quantization unit, and an inverse transform unit.
상기 제1신경망과 상기 제2신경망을 훈련시키는 명령들은 상기 제1신경망에서 생성되는 세일리언시 맵과 상기 그라운드 트루 비디오의 픽셀 비교에 기초하여 제1손실 값을 계산하며, 상기 출력되는 비디오와 상기 훈련 비디오의 픽셀 비교에 기초하여 제2손실 값을 계산하며, 상기 출력되는 비디오와 상기 훈련 비디오의 SSIM(Structural similarity index measure)에 기초하여 제3손실 값을 계산하며, 상기 출력되는 비디오와 상기 훈련 비디오의 유클리드 거리(Euclidean distance)에 기초하여 제4손실 값을 계산하며, 상기 제1손실 값, 상기 제2손실 값, 상기 제3손실 값, 및 상기 제4손실 값을 이용하여 손실 함수를 생성하도록 구현된다. Instructions for training the first neural network and the second neural network calculate a first loss value based on pixel comparison between a saliency map generated by the first neural network and the ground true video, A second loss value is calculated based on pixel comparison of the training video, a third loss value is calculated based on a Structural Similarity Index Measure (SSIM) of the output video and the training video, and the output video and the training video are calculated. A fourth loss value is calculated based on the Euclidean distance of the video, and a loss function is generated using the first loss value, the second loss value, the third loss value, and the fourth loss value. implemented to
상기 세일리언시 맵을 이용한 인지적 비디오 전처리 시스템은 상기 양자화 유닛로부터 출력되는 양자화된 변환 계수들을 수신하여 엔트로피를 계산하는 명령들을 더 포함한다. The perceptual video preprocessing system using the saliency map further includes instructions for receiving quantized transform coefficients output from the quantization unit and calculating entropy.
본 발명의 실시 예에 따른 세일리언시 맵을 이용한 인지적 비디오 전처리 방법 및 시스템은 신경망을 이용하여 세일리언시 맵을 자동으로 생성할 수 있는 효과가 있다. The cognitive video preprocessing method and system using a saliency map according to an embodiment of the present invention have an effect of automatically generating a saliency map using a neural network.
또한, 본 발명의 실시 예에 따른 세일리언시 맵을 이용한 인지적 비디오 전처리 방법 및 시스템은 미리 비디오 압축까지 고려하여 입력 영상을 전처리함으로써 입력 영상의 압축 효율을 높일 수 있는 효과가 있다. In addition, the cognitive video preprocessing method and system using the saliency map according to an embodiment of the present invention have an effect of increasing the compression efficiency of the input image by preprocessing the input image in consideration of video compression in advance.
또한, 본 발명의 실시 예에 따른 세일리언시 맵을 이용한 인지적 비디오 전처리 방법 및 시스템은 미리 비디오 압축까지 고려하여 세일리언시 맵을 생성함으로써 세일리언시 맵 생성 이후 비디오 코덱을 이용한 비디오 압축 과정에서 생성되는 비디오 데이터의 손상을 방지할 수 있는 효과가 있다. In addition, the cognitive video preprocessing method and system using a saliency map according to an embodiment of the present invention considers video compression in advance to generate a saliency map, so that in the video compression process using a video codec after generating the saliency map There is an effect of preventing damage to generated video data.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 세일리언시 맵을 이용한 인지적 비디오 전처리 시스템의 블록도를 나타낸다.
도 2는 도 1에 도시된 신경망 훈련 모듈의 동작을 설명하기 위한 블록도를 나타낸다.
도 3은 도 2에 도시된 신경망 블록의 블록도를 나타낸다.
도 4는 도 1에 도시된 신경망 모듈의 동작을 설명하기 위한 블록도를 나타낸다.
도 5는 본 발명의 실시 예에 따른 세일리언시 맵을 이용한 인지적 비디오 전처리 동작들을 설명하기 위한 흐름도를 나타낸다. A detailed description of each drawing is provided in order to more fully understand the drawings cited in the detailed description of the present invention.
1 shows a block diagram of a perceptual video pre-processing system using a saliency map according to an embodiment of the present invention.
FIG. 2 shows a block diagram for explaining the operation of the neural network training module shown in FIG. 1 .
FIG. 3 shows a block diagram of the neural network block shown in FIG. 2 .
FIG. 4 is a block diagram for explaining the operation of the neural network module shown in FIG. 1 .
5 is a flowchart illustrating perceptual video preprocessing operations using a saliency map according to an embodiment of the present invention.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.Specific structural or functional descriptions of the embodiments according to the concept of the present invention disclosed in this specification are only illustrated for the purpose of explaining the embodiments according to the concept of the present invention, and the embodiments according to the concept of the present invention It can be embodied in various forms and is not limited to the embodiments described herein.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.Embodiments according to the concept of the present invention can apply various changes and can have various forms, so the embodiments are illustrated in the drawings and described in detail in this specification. However, this is not intended to limit the embodiments according to the concept of the present invention to specific disclosure forms, and includes all changes, equivalents, or substitutes included in the spirit and technical scope of the present invention.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.Terms such as first or second may be used to describe various components, but the components should not be limited by the terms. The above terms are only for the purpose of distinguishing one component from another component, e.g., without departing from the scope of rights according to the concept of the present invention, a first component may be termed a second component, and similarly The second component may also be referred to as the first component.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다." 또는 "가지다." 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in this specification are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. As used herein, "comprising." or "to have." is intended to designate that the described feature, number, step, operation, component, part, or combination thereof exists, but is intended to indicate that one or more other features or numbers, steps, operations, components, parts, or combinations thereof are present. It should be understood that it does not preclude the possibility of existence or addition of one or the other.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. Unless defined otherwise, all terms used herein, including technical and scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in this specification, it should not be interpreted in an ideal or excessively formal meaning. don't
본 명세서에서 영상은 비디오를 의미한다. In this specification, an image means a video.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.Hereinafter, the present invention will be described in detail by describing preferred embodiments of the present invention with reference to the accompanying drawings.
도 1은 본 발명의 실시 예에 따른 세일리언시 맵을 이용한 인지적 비디오 전처리 시스템의 블록도를 나타낸다. 1 shows a block diagram of a perceptual video pre-processing system using a saliency map according to an embodiment of the present invention.
도 1을 참고하면, 세일리언시 맵을 이용한 인지적 비디오 전처리 시스템(100)은 비디오를 압축하여 전송하기 전에 세일리언시 맵을 생성하고, 생성된 세일리언시 맵을 이용하여 비디오를 압축하고, 압축된 비디오를 사용자로 전송하는 시스템을 의미한다. 세일리언시 맵을 이용한 인지적 비디오 전처리 시스템(100)은 비디오 압축까지 미리 고려하여 세일리언시 맵을 생성하고, 생성된 세일리언시 맵을 영상에 적용하는 시스템이다. Referring to FIG. 1 , a cognitive
상기 사용자는 목적 장치(30)의 사용자를 의미한다. 비디오 전처리는 비디오를 압축하기 전에 세일리언시 맵을 이용한 비디오 처리 동작들을 의미한다. 구체적으로, 비디오 전처리는 비디오를 이용하여 세일리언시 맵을 생성하는 동작들과 생성된 세일리언시 맵을 비디오에 적용하는 동작들을 포함한다. The user means a user of the
세일리언시 맵을 이용한 인지적 비디오 전처리 시스템(100)은 소스 장치(10)와 목적 장치(30)를 포함한다. 소스 장치(10)와 목적 장치(30)는 네트워크(101)를 통해 서로 통신할 수 있다. 네트워크(101)를 통해 소스 장치(10)로부터 출력되는 압축된 영상이 목적 장치(30)로 전달될 수 있다. 여기서 상기 압축된 영상은 인코드된 비디오 비트스트림을 의미한다. A cognitive
소스 장치(10)는 영상 처리 장치, 컴퓨팅 장치, 또는 서버 등 다양한 용어들로 호칭될 수 있다. 소스 장치(10)는 비디오를 신경망을 적용하여 세일리언시 맵을 생성한다. 소스 장치(10)는 생성된 세일리언시 맵을 비디오에 입력 마스크로 적용하고 세일리언시 맵이 적용된 비디오를 압축하여 인코드된 비디오 비트스트림을 목적 장치(20)로 전송한다. 뒤에서 소스 장치(10)의 자세한 동작들에 대해 설명될 것이다. The
목적 장치(30)는 노트북, 태블릿 PC, 또는 데스크탑과 같은 전자 장치를 의미한다. 실시 예에 따라 목적 장치(30)는 클라이언트로 호칭될 수 있다. 목적 장치(30)는 압축된 영상, 즉, 인코드된 비디오 비트스트림을 수신하기 위해 이용된다. 목적 장치(30)는 소스 장치(10)로부터 인코드된 비트스트림을 수신하고, 인코드된 비트스트림을 디코딩하고, 디코딩된 비트스트림을 디스플레이에 표시한다. The
소스 장치(10)는 프로세서(11)와 메모리(13)를 포함한다. 프로세서(11)는 세일리언시 맵을 이용한 인지적 비디오 전처리 방법과 관련된 명령들을 실행한다. 메모리(13)는 세일리언시 맵을 이용한 인지적 비디오 전처리를 위한 명령들을 포함한다. 메모리(13)는 신경망 훈련 모듈(15), 신경망 모듈(17), 비디오 인코딩 모듈(19), 및 출력 모듈(21)을 포함한다. 신경망 훈련 모듈(15), 신경망 모듈(17), 비디오 인코딩 모듈(19), 및 출력 모듈(21)은 프로세서(11)에 의해 실행되는 명령들을 의미한다. 실시 예에 따라 비디오 인코딩 모듈(19)과 출력 모듈(21)은 하드웨어로 구현될 수 있다. 비디오 인코딩 모듈(19)은 비디오 인코더, 또는 인코딩 장치 등 다양한 용어로 호칭될 수 있다. 이하, 신경망 훈련 모듈(15), 신경망 모듈(17), 비디오 인코딩 모듈(19), 및 출력 모듈(21)의 동작들은 프로세서(11)에 의해 수행되는 것으로 이해될 수 있다. The
신경망 훈련 모듈(15)은 신경망 블록(200)을 훈련하기 위한 모듈이다. The neural
신경망 모듈(17)은 신경망 훈련 모듈(15)에 의해 신경망의 훈련이 끝난 후 입력 비디오를 비디오의 압축까지 고려하여 세일리언시 맵을 생성하고, 입력 비디오를 생성된 세일리언시 맵이 적용된 비디오로 변환하기 위한 모듈이다. After the training of the neural network by the neural
비디오 인코딩 모듈(19)은 신경망 모듈(17)에서 출력되는 세일리언시 맵이 적용된 비디오를 압축하는 모듈이다. 예컨대, 비디오 인코딩 모듈(19)은 H.265 등과 같은 비디오 코딩 표준에 따라 동작한다. The
출력 모듈(21)은 비디오 인코딩 모듈(19)에서 출력되는 비트스트림을 목적 장치(30)로 전송하는 모듈이다. The
도 2는 도 1에 도시된 신경망 훈련 모듈의 동작을 설명하기 위한 블록도를 나타낸다. 도 3은 도 2에 도시된 신경망 블록의 블록도를 나타낸다. FIG. 2 shows a block diagram for explaining the operation of the neural network training module shown in FIG. 1 . FIG. 3 shows a block diagram of the neural network block shown in FIG. 2 .
도 1과 도 2를 참고하면, 도면부호 300은 신경망 블록(200)을 훈련하기 위해 이용되는 구성요소들을 의미한다. 즉, 신경망 블록(200)을 훈련하기 위해 비디오 인코딩 모듈(19)에서 포함될 수 있는 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)가 이용된다. 신경망 블록(200)을 훈련하기 위해 비디오 인코딩 모듈(19)의 일부가 이용된다. Referring to FIGS. 1 and 2 ,
신경망 블록(200)을 훈련하기 위해 비디오 인코딩 모듈(19)의 일부를 이용하는 이유는 비디오 압축에 따른 비디오 데이터의 손실을 방지하기 위함이다. 즉, 미리 비디오 압축까지 고려하여 세일리언시 맵을 생성하기 위한 신경망 블록(200)이 훈련된다. 또한, 미리 비디오 압축까지 고려하여 세일리언시 맵이 적용된 신경망 출력 비디오(203)를 생성하기 위한 신경망 블록(200)이 훈련된다. The reason for using part of the
신경망 블록(200)은 제1신경망(210)과 제2신경망(220)을 포함한다. 제1신경망(210)은 세일리언시 맵(215)을 생성하기 위한 신경망이며, 제2신경망(220)은 신경망 출력 비디오(203)를 생성하기 위한 신경망이다. The
신경망 훈련 모듈(15)은 신경망 블록(200)을 훈련하기 위해 훈련 비디오(201)를 수신한다. The neural
제1신경망(210)은 훈련 비디오(201)를 수신하여 세일리언시 맵(215)을 생성한다. 세일리언시 맵(215)은 사람의 시선이 가장 먼저 집중되는 영역을 강조한 이미지이다.The first
제2신경망(220)은 훈련 비디오(201)를 수신하여 신경망 출력 비디오(203)를 생성한다. 신경망 출력 비디오(203)란 신경망 블록(200)에서 출력되는 영상을 의미한다. 신경망 출력 비디오(203)는 훈련 비디오(201)에 세일리언시 맵(215)을 적용하여 출력되는 영상이다. 신경망 출력 비디오(203)의 생성에 대해서는 도 3에서 자세히 설명될 것이다. 훈련 비디오(201)에 세일리언시 맵(215)을 적용한다함은 도 3에 도시된 제2신경망(220)의 동작들이 수행됨을 의미한다. The second
도 3을 참고하면, 신경망 블록(200)은 비디오 인코딩 모듈(19)을 의식한 신경망 모듈이다. 신경망 블록은 제1신경망(210)과 제2신경망(220)을 포함한다. 제1신경망(210)와 제2신경망(220)의 훈련은 신경망 훈련 모듈(15)에 의해 수행되는 것으로 이해되어야 한다.Referring to FIG. 3 , the
신경망 훈련 모듈(15)은 훈련 비디오(201)와 세일리언시 맵(215)을 제2신경망(220), 비디오 인코딩 모듈(19)에 포함된 미분 가능한 유닛들에 적용하여 출력되는 비디오(353)와, 그라운드 트루(ground truth) 비디오(GT)를 이용하여 제1신경망(210)과 제2신경망(220)을 훈련시킨다. The neural
미분 가능한 유닛들은 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)을 포함한다. Differentiable units include a
신경망 훈련 모듈(15)은 훈련 비디오(201)와 세일리언시 맵(215)을 제2신경망(220), 비디오 인코딩 모듈(19)에 포함된 미분 가능한 유닛들에 적용한다함은 훈련 비디오(201)와 세일리언시 맵(215)이 제2신경망(220)에 입력되어 신경망 출력 비디오(203)를 출력하고, 신경망 출력 비디오(203)를 비디오 인코딩 모듈(19)에 포함된 미분 가능한 유닛들에 순차적으로 적용하여 출력되어 영상을 생성하는 것을 의미한다. 훈련 영상(201)을 제2신경망(220) 및, 비디오 인코딩 모듈(19)에 포함된 미분 가능한 유닛들에 적용하여 출력되는 영상은 복원 비디오(353)이다. The neural
제1신경망(210)은 인코더(211)와 디코더(213)를 포함한다. 인코더(211)와 디코더(213) 각각은 복수의 레이어들을 포함한다. 상기 복수의 레이어들은 입력 레이어, 히든 레이어, 및 출력 레이어를 포함할 수 있다. 실시 예에 따라 제1신경망(210)은 다양하게 구현될 수 있다. The first
제1신경망(210)은 훈련 비디오(201)를 수신하여 세일리언시 맵(215)을 출력한다. 즉, 신경망 훈련 모듈(15)은 훈련 비디오(201)를 제1신경망(210)에 적용하여 세일리언시 맵(215)을 생성한다. 훈련 비디오(201)는 훈련 비디오(201) 중 하나의 채널을 의미할 수 있다. The first
훈련 비디오(201)는 높이, 폭, 및 채널로 표현될 수 잇다. 훈련 비디오(201)는 복수의 프레임들을 포함한다. 상기 복수의 프레임들은 높이, 폭, 및 채널로 표현될 수 있다. 상기 복수의 프레임들의 가로와 세로의 크기는 폭과 높이와 대응된다. 복수의 프레임들의 수는 채널의 수와 대응될 수 있다. 또한, 훈련 비디오(201) 중 하나의 채널이란 하나의 비디오 프레임을 의미할 수 있다. 실시 예에 따라 훈련 비디오(201) 중 하나의 채널이란 YUV 컬러 스페이스에서 루마 채널을 의미할 수 있다. A
제2신경망(220)은 복수의 컨볼루션 레이어들(221-1~221-N; N은 자연수), 마스크 컨볼루션 레이어(223), 활성화 함수(225), 및 곱셈기(227)를 포함한다. 실시 예에 따라 복수의 컨볼루션 레이어들(210-1~210-N, 220-1~220-N)의 수는 달라질 수 있다. The second
컨볼루션 레이어(221-1)는 훈련 비디오(201) 중 하나의 채널에 대해 제1컨볼루션 연산을 수행한다. 컨볼루션 레이어(221-2)는 제1컨볼루션 레이어(221-1)의 출력에 대해 제2컨볼루션 연산을 수행한다. 컨볼루션 레이어(221-3)는 제2컨볼루션 레이어(221-2)의 출력에 대해 제3컨볼루션 연산을 수행한다. The convolution layer 221-1 performs a first convolution operation on one channel of the
제1컨볼루션 연산은 훈련 비디오(201) 중 하나의 채널과 제1커널의 컨볼루션 동작을 의미한다. 제2컨볼루션 연산은 컨볼루션 레이어(221-1)의 출력과 제2커널의 컨볼루션 동작을 의미한다. 제3컨볼루션 연산은 컨볼루션 레이어(221-2)의 출력과 제3커널의 컨볼루션 동작을 의미한다. The first convolution operation means a convolution operation between one channel of the
마스크 컨볼루션 레이어(223)는 세일리언스 맵(215)에 대해 컨볼루션 동작을 수행한다. 세일리언스 맵(215)은 하나의 채널이다. 즉, 세일리언스 맵(215)은 하나의 프레임이다. 세일리언스 맵(215)은 제1신경망(210)으로부터 출력된다. The
상기 컨볼루션 동작은 세일리언스 맵(215)과 커널의 컨볼루션 동작을 의미한다. 상기 커널은 세일리언스 맵(215)이 마스크로서 이용되기 위한 가중치들의 매트릭스를 의미한다. 본 명세서에서는 마스크 컨볼루션 레이어(223)로 호칭되었으나, 실시 예에 따라 컨볼루션 레이어로 호칭될 수 있다. The convolution operation means a convolution operation between the
마스크 컨볼루션 레이어(223)는 세일리언스 맵(215)을 수신하여 하나의 채널을 가진 값들을 출력한다. 상기 값들은 매트릭스로 표현된다. The
활성화 함수(225)는 마스크 컨볼루션 레이어(223)로부터 출력되는 값들을 수신하여 출력 값으로 변환한다. 예컨대, 활성화 함수(225)는 시그모이드 활성화 함수일 수 있다. 상기 변환된 출력 값은 0과 1 사이의 값을 가진다. The
곱셈기(227)는 활성화 함수(225)로부터 출력된 출력 값과 컨볼루션 레이어(221-3)로부터 출력되는 출력 값들에 대해 곱셈 연산을 수행하여 곱셈 값들을 출력한다. 실시 예에 따라 곱셈기(227)는 활성화 함수(225)로부터 출력된 출력 값과 다른 컨볼루션 레이어(221-1, 또는 221-2)로부터 출력되는 출력 값들에 대해 곱셈 연산을 수행하여 곱셈 값들을 출력할 수 있다. The
컨볼루션 레이어(221-N)은 곱셈기(227)로부터 출력되는 곱셈 값들에 대해 컨볼루션 연산을 수행하여 신경망 출력 비디오(203)를 출력한다. The convolution layer 221 -N performs a convolution operation on multiplication values output from the
도 2를 참고하면, 비디오 인코딩 모듈(19)의 일부는 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)을 포함한다. 유닛은 영상 처리의 기본 단위를 나타낸다. 상기 유닛은 하드웨어, 또는 소프트웨어로 구현될 수 있다. Referring to FIG. 2 , part of the
신경망 훈련 모듈(15)은 신경망 블록(200)을 훈련하기 위해 신경망(200) 훈련 단계에서 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)의 동작들을 수행한다. 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)은 비디오 인코딩 모듈(19)에 포함된 유닛들이다. 또한, 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)의 동작들을 수행한다. The neural
비디오 인코딩 모듈(19)에 포함된 유닛들 중 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)을 이용하는 이유는 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)은 미분 가능한 유닛들이기 때문이다.Among the units included in the
또한, 별도의 영상의 압축 과정에서 영상의 손상을 방지하기 위해 신경망 블록(200)을 학습하는 과정에서 미분 가능한 유닛들이 이용된다. In addition, differentiable units are used in the process of learning the
신경망 블록(200)을 학습하기 위해서는 미분이 가능하여야한다. 즉, 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)은 미분 가능한 유닛들이다. 비디오 인코딩 모듈(19)에 포함된 유닛들 중 필터 유닛(미도시)은 미분이 불가능하기 때문에 신경망 블록(200)의 훈련에 이용되지 않는다. In order to learn the
실시 예에 따라 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)은 비디오 인코딩 모듈(19)에 포함된 유닛들과 유사한 동작들을 수행하지만, 미분을 보다 쉽게 하기 위해 비디오 인코딩 모듈(19)에 포함된 유닛들과 완전히 같지 않을 수 있다. 즉, 도 2에 도시된 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)은 일반적인 비디오 인코더에 이용되는 유닛들과 유사한 동작들을 수행한다. 예컨대, 예측 유닛(310)은 비디오 인코딩 모듈(19)에 포함된 예측 유닛과 완전히 동일하지는 않지만, 유사한 동작을 수행할 수 있다. According to an embodiment, the
이하, 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)의 동작들은 신경망 블록(200)을 훈련하기 위한 동작들을 의미한다. Hereinafter, operations of the
예측 유닛(310)은 인트라(intra)/인터(inter) 예측 유닛이다. 예측 유닛(310)은 예측 블록을 생성하기 위해 인트라 예측을 수행하거나, 인터 예측을 수행한다. The
신경망 훈련 모듈(15)은 신경망 블록(200)에서 출력된 신경망 출력 비디오(203)를 블록들로 나눌 수 있다. 신경망 출력 비디오(203)는 복수의 프레임들을 포함한다. 복수의 프레임들을 포함하는 신경망 출력 비디오(203)가 예측 유닛(310)에 입력된다. 예측 유닛(310)은 신경망 출력 비디오(203)를 수신하여 예측 블록을 생성한다. The neural
감산기(311)는 레지듀얼 블록을 생성하기 위해 현재 블록에서 예측 블록을 감산한다. 감산기(311)는 레지듀얼 생성 유닛(residual generation unit)로 호칭될 수 있다. 감산기(311)는 신경망 출력 비디오(203)의 현재 블록과, 예측 유닛(310)에서 신경망 출력 비디오(203)를 이용하여 생성된 예측 블록을 이용한다.
변환 유닛(320)은 레지듀얼 블록을 변환 계수들로 변환한다. 상기 레지듀얼 블록은 신경망 출력 영상(203)에 기초하여 생성된 레지듀얼 블록이다. The
양자화 유닛(330)은 양자화 파라미터, 또는 양자화 레벨을 이용하여 변환 계수들을 양자화된 변환 계수들로 변환한다. 상기 양자화된 변환 계수들은 신경망 출력 영상(203)에 기초하여 생성된다. 변환 계수들은 양자화 파라미터에 의해 나눠진다. 만약 양자화 파라미터가 높은 값으로 설정되면, 양자화된 계수들은 더 많은 0으로 설정되고, 이는 높은 압축과 낮은 영상 퀄리터를 초래한다. 만약 양자화 파라미터가 낮은 값으로 설정되면, 양자화된 계수들은 더 많은 0이 아닌 계수들로 설정되고, 이는 낮은 압축과 높은 영상 퀄리티를 초래한다. The
실시 예에 따라 제1가산기(331)는 양자화 유닛(330)에서 출력되는 양자화된 변환 계수들과 유니폼 노이즈를 가산할 수 있다. 양자화 유닛(330)에서 출력되는 양자화된 변환 계수들은 신경망 출력 영상(203)에 기초하여 생성된다. According to an embodiment, the
신경망 훈련이 아니라 비디오 인코딩 과정에서 양자화 유닛(330)으로부터 출력되는 양자화된 변환 계수들은 일반적으로 라운드(round)를 거친다. 라운드는 반올림을 의미한다. 라운드를 거친 양자화된 변환 계수들은 미분이 불가능하다. Quantized transform coefficients output from the
본 발명에서 양자화 유닛(330)으로부터 출력되는 양자화된 변환 계수들은 미분 가능한 상태를 위해 라운드 대신에 유니폼 노이즈가 추가된다. In the present invention, quantized transform coefficients output from the
인버스 양자화 유닛(340)은 변환 계수들을 반대로 양자화(inverse quantize)한다. 상기 반대로 양자화된 변환 계수들은 신경망 출력 영상(203)에 기초하여 생성된다. The
인버스 변환 유닛(350)은 레지듀얼 블록을 생성하기 위해 반대로 양자화된 변환 계수들을 역변환(inverse transform)한다. 역변환된 변환 계수들은 신경망 출력 영상(203)에 기초하여 생성된다. The
제2가산기(351)는 예측 블록과 레지듀얼 블록을 이용하여 블록을 복원한다. 복원된 블록은 예측 유닛(310)에서 예측 블록을 생성하기 위해 이용된다. 복수의 복원된 블록들은 복원 비디오(353)을 생성하기 위해 복원될 수 있다. 제2가산기(351)는 예측 블록과 레지듀얼 블록을 이용하여 복원 비디오(353)을 생성할 수 있다. 제2가산기(351)는 복원 유닛으로 호칭될 수 있다. 복원 영상(353)은 신경망 출력 영상(203)에 기초하여 생성된다. 제2가산기(351)도 가산 동작을 수행하는 유닛으로, 미분 가능한 유닛으로 고려될 수 있다. 복원 영상(353)은 예측 유닛(310)에 의해 생성된 예측 블록과 인버스 변환 유닛(350)에 의해 생성된 레지듀얼 블록을 가산하여 생성된다. The
제1손실 모델(365)은 세일리언시 맵(215)과 그라운드 트루 비디오(GT)의 픽셀 비교에 기초하여 제1손실 값을 계산한다. 구체적으로 상기 제1손실 값은 세일리언시 맵(215)과 그라운드 트루 비디오(GT)의 픽셀들의 평균 제곱 오차(Mean Squared Error, MSE)을 이용하여 계산될 수 있다. 이때, 제1손실 모델(365)은 세일리언시 맵(215)의 프레임과 그라운드 트루 비디오(GT)의 프레임의 픽셀 차이를 계산할 수 있다. 그라운드 트루 비디오(GT)란 신경망 블록(200)을 훈련하기 위해 사용되는 비디오이다. 이때, 세일리언시 맵(215)과 그라운드 트루 비디오(GT)는 하나의 프레임일 수 있다. The
제2손실 모델(370)은 복원 비디오(353)를 훈련 비디오(201)와 비교하여 복수의 손실 값들을 계산한다. 이때, 훈련 비디오(201)는 하나의 프레임에서 임의의 블록을 의미할 수 있다. The
훈련 비디오(201)를 제2신경망(220) 및, 비디오 인코딩 모듈(19)에 포함된 미분 가능한 유닛들(예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350))에 적용하여 출력되는 비디오는 복원 비디오(353)를 의미한다. The
실시 예에 따라 제2손실 모델(370)은 복원 비디오(353)는 훈련 비디오(201)와 비교하여 복수의 손실 값들을 계산한다. 이때, 훈련 비디오(201)는 프레임을 의미할 수 있다. 복원 비디오(353)와 비교되는 훈련 비디오(201)는 그라운드 트루이다. 제1손실 모델(365), 제2손실 모델(370)은 손실 함수가 구현되는 프로그램 명령들을 의미한다. 실시 예에 따라 제1손실 모델(365), 제2손실 모델(370)은 소프트웨어, 또는 하드웨어로 구현될 수 있다.According to an embodiment, the
상기 복수의 손실 값들은 제2손실 값, 제3손실 값, 및 제4손실 값을 포함한다. 실시 예에 따라 제1손실 모델(365)과 제2손실 모델(370)은 하나의 손실 모델로 구현될 수 있다. The plurality of loss values include a second loss value, a third loss value, and a fourth loss value. According to embodiments, the
제2손실 모델(370)은 복원 비디오(353)와 훈련 비디오(201)의 픽셀 비교에 기초하여 제2손실 값을 계산한다. 구체적으로 상기 제2손실 값은 복원 비디오(353)와 훈련 비디오(201)의 픽셀들의 평균 제곱 오차(Mean Squared Error, MSE)을 이용하여 계산될 수 있다. 이때, 제2손실 모델(370)은 복원 비디오(353)의 프레임과 훈련 비디오(201)의 프레임의 픽셀 차이를 계산할 수 있다.The
제2손실 모델(370)은 복원 비디오(353)과 훈련 비디오(201)의 SSIM(Structural similarity index measure)에 기초하여 제3손실 값을 계산한다. SSIM은 복원 비디오(353)과 훈련 비디오(201) 사이의 유사성을 측정하기 위한 방법이다. 이때, 제2손실 모델(370)은 복원 비디오(353)의 프레임과 훈련 비디오(201)의 프레임 사이의 SSIM(Structural similarity index measure)를 계산할 수 있다. The
제2손실 모델(370)은 복원 비디오(353)와 훈련 비디오(201)의 유클리드 거리(Euclidean distance)에 기초하여 제4손실 값을 계산한다. 상기 제4손실 값은 복원 비디오(353)과 훈련 비디오(201)의 유클리드 거리로 계산된다. 실시 예에 따라 상기 제4손실 값은 VGG 손실(loss)로 정의될 수 있다. VGG 손실은 콘텐츠 손실의 한 유형이다. 이때, 제2손실 모델(370)은 복원 비디오(353)의 프레임과 훈련 비디오(201)의 프레임의 유클리드 거리를 계산할 수 있다. The
상기 제2손실 값, 상기 제3손실 값, 및 상기 제4손실 값을 이용하여 손실 함수가 생성될 수 있다. A loss function may be generated using the second loss value, the third loss value, and the fourth loss value.
실시 예에 따라 신경망(200)을 훈련하는 과정에서 엔트로피 모델(360)이 더 이용될 수 있다. According to embodiments, the
엔트로피 모델(360)은 양자화 유닛(330)로부터 출력되는 양자화된 변환 계수들, 또는 제1가산기(331)로부터 출력되는 가산 값의 엔트로피를 계산하여 레이트 손실(Rate loss)을 출력한다. 상기 엔트로피는 확률 변수(random variable)에 대한 확률 분포(probability distribution)로부터 도출된 비트스트림을 표현하는데 요구되는 비트의 평균 숫자로 정의될 수 있다. 상기 엔트로피는 널리 알려진 개념으로 이에 대한 자세한 설명은 생략한다. 상기 레이트 손실은 상기 엔트로피를 의미한다. 또한, 상기 레이트 손실은 제5손실 값으로 정의될 수 있다. 엔트로피 모델(360)은 최소 값을 가지는 엔트로피가 출력되도록 구현되는 프로그램 명령들을 의미한다. The
[수학식 1][Equation 1]
RATE = -log_2(p(input))RATE = -log_2(p(input))
상기 RATE는 레이트 손실, 또는 제5손실 값을 의미한다. 상기 p는 엔트로피 모델(360)로, 상기 input에 대한 확률 분포를 의미하며, 상기 input은 양자화 유닛(330)으로부터 출력되는 양자화된 변환 계수들, 또는 제1가산기(331)로부터 출력되는 가산 값을 의미한다. The RATE means a rate loss or a fifth loss value. The p is an
영상의 사이즈가 크고 복잡할수록 더 많은 비트들이 이용된다. 따라서 영상의 사이즈가 크고 복잡할수록 엔트로피는 높은 값을 가진다. The larger the size of the image and the more complex it is, the more bits are used. Therefore, the larger the size and the more complex the image, the higher the entropy.
신경망 훈련 모듈(15)은 상기 제5손실 값이 최소가 되도록 신경망 블록(200)을 훈련한다. The neural
엔트로피 모델(360)이 더 이용될 때, 신경망 블록(200)의 손실 함수는 상기 제1손실 값, 상기 제2손실 값, 상기 제3손실 값, 상기 제4손실 값, 및 상기 제5손실 값을 이용하여 정의될 수 있다. 신경망 블록(200)의 손실 함수는 아래의 수학식 2와 같이 표현될 수 있다. When the
[수학식 2][Equation 2]
LossFunction=(α*MSE1)+(β*MSE2)+(γ*SSIM)+(δ*VGG)+(0.82*2(QP-12)/3*RATE)LossFunction=(α*MSE1)+(β*MSE2)+(γ*SSIM)+(δ*VGG)+(0.82*2 (QP-12)/3 *RATE)
상기 LossFunction은 손실 함수를, 상기 MSE1은 상기 제1손실 값을, 상기 MSE2는 상기 제2손실 값을, 상기 SSIM은 상기 제3손실 값을, 상기 VGG는 상기 제4손실 값을, 및 상기 RATE는 제5손실 값을 나타낸다. 상기 QP는 양자화 파라미터의 값을 나타낸다. 상기 α, 상기 β, 상기 γ, 및 상기 δ는 상수를 나타낸다. 상기 α, 상기 β, 상기 γ, 및 상기 δ의 값들은 반복적인 실험들에 의해 설정될 수 있다. The LossFunction is a loss function, the MSE1 is the first loss value, the MSE2 is the second loss value, the SSIM is the third loss value, the VGG is the fourth loss value, and the RATE represents a fifth loss value. The QP represents a value of a quantization parameter. The α, the β, the γ, and the δ represent constants. Values of α, β, γ, and δ may be established through repeated experiments.
신경망 훈련 모듈(15)은 손실 함수의 손실 값들의 합이 최소가 되도록 신경망 블록(200)을 학습한다. 즉, 신경망 훈련 모듈(15)은 상기 제5손실 값이 최소화되면서 상기 제1손실 값, 상기 제2손실 값, 상기 제3손실 값, 및 상기 제4손실 값이 최소화되도록 신경망 모듈(200)을 학습한다. 상기 제5손실 값과, 상기 제1손실 값, 상기 제2손실 값, 상기 제3손실 값, 및 상기 제4손실 값은 트레이드 오프(trade-off) 관계이다. 상기 제5손실 값을 작게하면 상기 제1손실 값, 상기 제2손실 값, 상기 제3손실 값, 및 상기 제4손실 값이 커진다. 반대로, 상기 제1손실 값, 상기 제2손실 값, 상기 제3손실 값, 및 상기 제4손실 값을 작게하면 상기 제5손실 값이 커진다. The neural
신경망 블록(200)을 훈련하기 위해 훈련 비디오(201)와 그라운드 트루 비디오(GT)가 훈련 데이터 세트로 이용된다. To train the
실시 예에 따라 엔트로피 모델(360), 제1손실 모델(365), 및 제2손실 모델(370)은 하나의 손실 모델로 구현될 수 있다. According to embodiments, the
도 4는 도 1에 도시된 신경망 모듈의 동작을 설명하기 위한 블록도를 나타낸다. FIG. 4 is a block diagram for explaining the operation of the neural network module shown in FIG. 1 .
도 4를 참고하면, 신경망 블록(200)의 훈련이 끝나면, 신경망 모듈(17)은 입력 비디오(401)에 대해 세일리언시 맵(415)을 생성하고, 세일리언시 맵(415)을 입력 비디오(401)에 적용한 비디오를 출력한다. 이때, 세일리언시 맵(415)은 비디오 인코딩까지 미리 고려된 영상이다. 또한, 출력되는 비디오(403)는 비디오 인코딩까지 미리 고려된 영상이다. 세일리언시 맵(415)과 출력되는 비디오(403)는 신경망 블록(200)의 훈련에서 사용되는 세일리언시 맵(215)과 출력되는 비디오(203)와는 다르다. 신경망 블록(200)의 훈련에서 사용되는 세일리언시 맵(215)과 출력되는 비디오(203)는 훈련 미디오(201)가 이용된다. Referring to FIG. 4 , when training of the
세일리언시 맵(415)이 적용된 비디오(403)를 출력하기 위한 동작은 신경망 모듈(17)에 의해 수행된다. 도 4에 도시된 신경망 블록(200)은 훈련이 끝난 신경망이다. 세일리언시 맵(415)이 적용된 비디오(403)를 출력하기 위한 단계에서는 도 2에 도시된 블록도와 달리 신경망 블록(200)만 이용된다. 즉, 신경망 블록(200)의 훈련이 끝난 이후에는 비디오 인코딩 모듈(19)에 포함된 미분 가능한 유닛들(즉, 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350))은 세일리언시 맵(415)이 적용된 비디오(403)를 출력하기 위한 단계에서는 이용되지 않는다. An operation to output the
신경망 모듈(17)은 입력 영상(401)을 신경망 블록(200)에 적용하여 세일리언시 맵(415)이 적용된 비디오(403)를 출력한다. 설정에 따라 신경망 모듈(17)은 입력 비디오(401)를 신경망 블록(200)에 적용하여 세일리언시 맵(415)을 출력할 수 있다. 구체적으로, 신경망 모듈(17)은 입력 비디오(401) 중 하나 채널을 신경망 블록(200)에 적용하여 하나의 채널을 가지는 세일리언시 맵(415)이 적용된 비디오(403)를 출력한다. 입력 비디오(401)는 높이, 폭, 및 채널로 표현될 수 잇다. 입력 비디오(401) 중 하나의 채널이란 하나의 비디오 프레임을 의미할 수 있다. 실시 예에 따라 입력 비디오(401) 중 하나의 채널이란 YUV 컬러 스페이스에서 루마 채널일 수 있다. The
신경망 모듈(17)은 신경망 블록(200)으로부터 출력되는 비디오 프레임들을 누적하여 복수의 프레임들을 가지는 세일리언시 맵(415)이 적용된 비디오(403)를 출력할 수 있다. 세일리언시 맵(415)이 적용된 비디오(403)는 비디오 인코딩까지 미리 고려된 영상이다. The
비디오 인코딩 모듈(19)은 신경망 모듈(17)에서 출력되는 비디오 인코딩까지 미리 고려된 영상을 압축한다. 예컨대, 비디오 인코딩 모듈(19)은 H.265 등과 같은 비디오 코딩 표준이다. The
출력 모듈(21)은 비디오 인코딩 모듈(19)에서 출력되는 비트스트림을 목적 장치(30)로 전송한다. The
도 5는 본 발명의 실시 예에 따른 세일리언시 맵을 이용한 인지적 비디오 전처리 동작들을 설명하기 위한 흐름도를 나타낸다. 5 is a flowchart illustrating perceptual video preprocessing operations using a saliency map according to an embodiment of the present invention.
도 1 내지 도 3 및 도 5를 참고하면, 신경망 훈련 모듈(15)은 신경망 블록(200)을 훈련시킨다. 이하, 신경망 블록(200)의 훈련 동작들에 대해 설명된다. Referring to FIGS. 1 to 3 and 5 , the neural
신경망 훈련 모듈(15)은 훈련 비디오(201)를 제1신경망(210)에 적용하여 세일리언시 맵(215)을 생성한다(S10). The neural
신경망 훈련 모듈(15)은 훈련 비디오(201)와 세일리언시 맵(215)을 제2신경망(220)에 적용하여 신경망 출력 비디오(203)를 생성한다(S20).The neural
신경망 훈련 모듈(15)은 제2신경망(220)에 출력된 신경망 출력 비디오(203)의 현재 블록에서 예측 유닛(310)에서 예측된 블록을 감산하여 레지듀얼 블록을 생성한다(S30). The neural
신경망 훈련 모듈(15)은 레지듀얼 블록을 변환 계수들로 변환한다(S40). 변환 유닛(320)이 이용된다. The neural
신경망 훈련 모듈(15)은 양자화 파라미터(QP)를 이용하여 변환 계수들을 양자화된 변환 계수들로 변환한다(S50). 양자화 유닛(330)이 이용된다. The neural
신경망 훈련 모듈(15)은 변환 계수들을 반대로 양자화한다(S60). 인버스 양자화 유닛(340)이 이용된다. The neural
신경망 훈련 모듈(15)은 반대로 양자화된 변환 계수들을 역변환하여 레지듀얼 블록을 생성한다(S70). 인버스 변환 유닛(350)이 이용된다. The neural
신경망 훈련 모듈(15)은 예측 블록과 레지듀얼 블록을 이용하여 복원 영상(353)을 생성한다(S80).The neural
신경망 훈련 모듈(15)은 세일리언시 맵(215)과 그라운드 트루 비디오(GT)의 픽셀 비교에 기초하여 제1손실 값을 계산한다(S90). 제1손실 모델(365)이 이용된다. The neural
신경망 훈련 모듈(15)은 복원 비디오(353)를 훈련 비디오(201)와 비교하여 복수의 손실 값들을 계산한다(S100). 제2손실 모델(370)이 이용된다. 복수의 손실 값들은 제2손실 값, 제3손실 값, 및 제4손실 값이다. The neural
신경망 훈련 모듈(15)은 양자화된 변환 계수들을 수신하여 엔트로피를 계산한다(S110). 엔트로피 모델(360)이 이용된다. 엔트로피는 제5손실 값이다. The neural
신경망 훈련 모듈(15)은 복수의 손실 값들과 엔트로피의 합이 최소화되도록 신경망 블록(200)을 훈련한다(S120). 즉, 복수의 손실 값들과 엔트로피의 합이 최소화되도록 S10 단계에서 S110 단계가 반복적으로 수행된다. The neural
상기 복수의 손실 값들은 상기 제1손실 값, 상기 제2손실 값, 상기 제3손실 값, 상기 제4손실 값, 및 상기 제5손실 값을 포함한다. The plurality of loss values include the first loss value, the second loss value, the third loss value, the fourth loss value, and the fifth loss value.
신경망 훈련 모듈(15)의 동작들은 프로세서(11)에 의해 수행된다. Operations of the neural
신경망 훈련 모듈(15)에 의해 신경망 블록(200)의 훈련이 끝나면, 신경망 모듈(17)은 입력 영상을 신경망 블록(200)에 적용하여 세일리언시 맵이 적용된 비디오를 출력한다. After training of the
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to an embodiment shown in the drawings, this is only exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention should be determined by the technical spirit of the attached claims.
100: 인지적 비디오 전처리 시스템;
10: 소스 장치;
11: 프로세서;
13: 메모리;
15: 신경망 훈련 모듈;
17: 신경망 모듈;
19: 비디오 인코딩 모듈;
21: 출력 모듈;
30: 목적 장치;
101: 네트워크; 100: cognitive video pre-processing system;
10: source device;
11: processor;
13: memory;
15: neural network training module;
17: neural network module;
19: video encoding module;
21: output module;
30: purpose device;
101: network;
Claims (8)
상기 훈련 비디오와 상기 세일리언시 맵을 제2신경망에 적용하여 신경망 출력 비디오를 생성하는 단계;
상기 생성된 세일리언시 맵과 그라운드 트루 비디오를 비교하여 상기 제1신경망을 훈련시키는 단계; 및
상기 생성된 신경망 출력 비디오를 비디오 인코딩 모듈에 포함된 미분 가능한 유닛들에 적용하여 출력되는 비디오와 상기 훈련 비디오를 비교하여 상기 제2신경망을 훈련시키는 단계를 포함하며,
상기 미분 가능한 유닛들은,
예측 유닛, 변환 유닛, 양자화 유닛, 인버스 양자화 유닛, 및 인버스 변환 유닛을 포함하는 세일리언시 맵을 이용한 인지적 비디오 전처리 방법.generating a saliency map by applying the training video to the first neural network;
generating a neural network output video by applying the training video and the saliency map to a second neural network;
training the first neural network by comparing the generated saliency map with the ground true video; and
And training the second neural network by comparing a video output by applying the generated neural network output video to differentiable units included in a video encoding module and the training video,
The differentiable units are
A perceptual video preprocessing method using a saliency map comprising a prediction unit, a transform unit, a quantization unit, an inverse quantization unit, and an inverse transform unit.
상기 제1신경망에서 생성되는 세일리언시 맵과 상기 그라운드 트루 비디오의 픽셀 비교에 기초하여 제1손실 값을 계산하는 단계;
상기 출력되는 비디오와 상기 훈련 비디오의 픽셀 비교에 기초하여 제2손실 값을 계산하는 단계;
상기 출력되는 비디오와 상기 훈련 비디오의 SSIM(Structural similarity index measure)에 기초하여 제3손실 값을 계산하는 단계;
상기 출력되는 비디오와 상기 훈련 비디오의 유클리드 거리(Euclidean distance)에 기초하여 제4손실 값을 계산하는 단계; 및
상기 제1손실 값, 상기 제2손실 값, 상기 제3손실 값, 및 상기 제4손실 값을 이용하여 손실 함수를 생성하는 단계를 포함하는 세일리언시 맵을 이용한 인지적 비디오 전처리 방법. The method of claim 1, wherein training the first neural network and the second neural network comprises:
calculating a first loss value based on pixel comparison between a saliency map generated by the first neural network and the ground true video;
calculating a second loss value based on pixel comparison between the output video and the training video;
calculating a third loss value based on a structural similarity index measure (SSIM) of the output video and the training video;
calculating a fourth loss value based on a Euclidean distance between the output video and the training video; and
and generating a loss function using the first loss value, the second loss value, the third loss value, and the fourth loss value.
상기 양자화 유닛로부터 출력되는 양자화된 변환 계수들을 수신하여 엔트로피를 계산하는 단계를 더 포함하는 세일리언시 맵을 이용한 인지적 비디오 전처리 방법. The method of claim 1, wherein the perceptual video preprocessing method using the saliency map comprises:
The cognitive video preprocessing method using the saliency map further comprising receiving quantized transform coefficients output from the quantization unit and calculating entropy.
상기 소스 장치는,
명령들을 실행하는 프로세서; 및
상기 명령들을 저장하는 메모리를 포함하며,
상기 명령들은,
훈련 비디오를 제1신경망에 적용하여 세일리언시 맵을 생성하며,
상기 훈련 비디오와 상기 세일리언시 맵을 제2신경망에 적용하여 신경망 출력 비디오를 생성하며, 상기 생성된 세일리언시 맵과 그라운드 트루 비디오를 비교하여 상기 제1신경망을 훈련시키며, 상기 생성된 신경망 출력 비디오를 비디오 인코딩 모듈에 포함된 미분 가능한 유닛들에 적용하여 출력되는 비디오와 상기 훈련 비디오를 비교하여 상기 제2신경망을 훈련시키도록 구현되며, 상기 미분 가능한 유닛들은 예측 유닛, 변환 유닛, 양자화 유닛, 인버스 양자화 유닛, 및 인버스 변환 유닛을 포함하는 세일리언시 맵을 이용한 인지적 비디오 전처리 시스템.contains a source device;
The source device,
a processor that executes instructions; and
a memory for storing the instructions;
These commands are
Applying the training video to the first neural network to generate a saliency map,
generating a neural network output video by applying the training video and the saliency map to a second neural network, training the first neural network by comparing the generated saliency map with the ground true video, and outputting the generated neural network It is implemented to train the second neural network by comparing a video output by applying a video to differentiable units included in a video encoding module and the training video, wherein the differentiable units include a prediction unit, a transform unit, a quantization unit, A perceptual video preprocessing system using a saliency map including an inverse quantization unit and an inverse transform unit.
상기 제1신경망에서 생성되는 세일리언시 맵과 상기 그라운드 트루 비디오의 픽셀 비교에 기초하여 제1손실 값을 계산하며,
상기 출력되는 비디오와 상기 훈련 비디오의 픽셀 비교에 기초하여 제2손실 값을 계산하며,
상기 출력되는 비디오와 상기 훈련 비디오의 SSIM(Structural similarity index measure)에 기초하여 제3손실 값을 계산하며,
상기 출력되는 비디오와 상기 훈련 비디오의 유클리드 거리(Euclidean distance)에 기초하여 제4손실 값을 계산하며,
상기 제1손실 값, 상기 제2손실 값, 상기 제3손실 값, 및 상기 제4손실 값을 이용하여 손실 함수를 생성하도록 구현되는 세일리언시 맵을 이용한 인지적 비디오 전처리 시스템. The method of claim 5, wherein the instructions for training the first neural network and the second neural network,
Calculate a first loss value based on pixel comparison between a saliency map generated by the first neural network and the ground true video;
Calculate a second loss value based on pixel comparison between the output video and the training video;
Calculate a third loss value based on SSIM (Structural Similarity Index Measure) of the output video and the training video;
Calculate a fourth loss value based on a Euclidean distance between the output video and the training video;
A cognitive video preprocessing system using a saliency map implemented to generate a loss function using the first loss value, the second loss value, the third loss value, and the fourth loss value.
상기 양자화 유닛로부터 출력되는 양자화된 변환 계수들을 수신하여 엔트로피를 계산하는 명령들을 더 포함하는 세일리언시 맵을 이용한 인지적 비디오 전처리 시스템.
The method of claim 5, wherein the cognitive video pre-processing system using the saliency map,
The cognitive video preprocessing system using the saliency map further comprising instructions for receiving the quantized transform coefficients output from the quantization unit and calculating entropy.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220089648A KR102471796B1 (en) | 2022-07-20 | 2022-07-20 | Method and system for preprocessing cognitive video using saliency map |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220089648A KR102471796B1 (en) | 2022-07-20 | 2022-07-20 | Method and system for preprocessing cognitive video using saliency map |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102471796B1 true KR102471796B1 (en) | 2022-11-29 |
Family
ID=84235312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220089648A KR102471796B1 (en) | 2022-07-20 | 2022-07-20 | Method and system for preprocessing cognitive video using saliency map |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102471796B1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180099369A (en) * | 2017-02-28 | 2018-09-05 | 한국전자통신연구원 | Method for video rate control, and video coding method and apparatus the same |
KR102036181B1 (en) | 2018-02-07 | 2019-10-25 | 계명대학교 산학협력단 | Pedestrian detecting method and apparatus at night using deep neural networks and saliency maps |
KR20190134933A (en) * | 2018-05-18 | 2019-12-05 | 오드컨셉 주식회사 | Method, apparatus and computer program for extracting representative feature of object in image |
KR20210147673A (en) * | 2020-05-29 | 2021-12-07 | 중앙대학교 산학협력단 | Progressive multi-task learning method and apparatus for salient object detection |
KR20220016614A (en) * | 2020-08-03 | 2022-02-10 | 주식회사 인포웍스 | OBJECT RECOGNITION SYSTEM FOR COMBINING EO/IR RADAR LiDAR SENSOR BASED ON DEEP NEURAL NETWORK ALGORITHM |
-
2022
- 2022-07-20 KR KR1020220089648A patent/KR102471796B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180099369A (en) * | 2017-02-28 | 2018-09-05 | 한국전자통신연구원 | Method for video rate control, and video coding method and apparatus the same |
KR102036181B1 (en) | 2018-02-07 | 2019-10-25 | 계명대학교 산학협력단 | Pedestrian detecting method and apparatus at night using deep neural networks and saliency maps |
KR20190134933A (en) * | 2018-05-18 | 2019-12-05 | 오드컨셉 주식회사 | Method, apparatus and computer program for extracting representative feature of object in image |
KR20210147673A (en) * | 2020-05-29 | 2021-12-07 | 중앙대학교 산학협력단 | Progressive multi-task learning method and apparatus for salient object detection |
KR20220016614A (en) * | 2020-08-03 | 2022-02-10 | 주식회사 인포웍스 | OBJECT RECOGNITION SYSTEM FOR COMBINING EO/IR RADAR LiDAR SENSOR BASED ON DEEP NEURAL NETWORK ALGORITHM |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mantiuk et al. | Backward compatible high dynamic range MPEG video compression | |
US20200151914A1 (en) | Ai encoding apparatus and operation method of the same, and ai decoding apparatus and operation method of the same | |
EP0635985B1 (en) | Improved decompression standard for ADCT-compressed document images | |
US10491899B2 (en) | Method and apparatus for quantization in video encoding and decoding | |
US20080008246A1 (en) | Optimizing video coding | |
CN112840650B (en) | Artificial Intelligence (AI) encoding apparatus and operating method thereof, and AI decoding apparatus and operating method thereof | |
CN113615200A (en) | Quantization step size parameter for point cloud compression | |
KR20150095591A (en) | Perceptual video coding method using visual perception characteristic | |
KR20230107627A (en) | Video decoding using post-processing control | |
US8442338B2 (en) | Visually optimized quantization | |
KR102471796B1 (en) | Method and system for preprocessing cognitive video using saliency map | |
Boitard et al. | Motion-guided quantization for video tone mapping | |
CN112715029A (en) | AI encoding apparatus and operating method thereof, and AI decoding apparatus and operating method thereof | |
CN113228665A (en) | Method, device, computer program and computer-readable medium for processing configuration data | |
US6636643B1 (en) | System and method for improving compressed image appearance using stochastic resonance and energy replacement | |
KR102467091B1 (en) | Method and system for processing super-resolution video | |
US20050129110A1 (en) | Coding and decoding method and device | |
US7751475B1 (en) | Arbitrary-resolution, extreme-quality video codec | |
EP2958327A1 (en) | Method and device for encoding a sequence of pictures | |
Martínez-Rach et al. | Optimizing the image R/D coding performance by tuning quantization parameters | |
CN112313950A (en) | Method and apparatus for predicting video image component, and computer storage medium | |
US11496770B2 (en) | Media object compression/decompression with adaptive processing for block-level sub-errors and/or decomposed block-level sub-errors | |
EP4361887A1 (en) | Method for encoding an input signal using neural network and corresponding device | |
WO2024140849A1 (en) | Method, apparatus, and medium for visual data processing | |
US8270746B2 (en) | Image compression method and device thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |