KR102471796B1 - Method and system for preprocessing cognitive video using saliency map - Google Patents

Method and system for preprocessing cognitive video using saliency map Download PDF

Info

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
Application number
KR1020220089648A
Other languages
Korean (ko)
Inventor
김시중
김주한
이웅원
전민용
Original Assignee
블루닷 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 블루닷 주식회사 filed Critical 블루닷 주식회사
Priority to KR1020220089648A priority Critical patent/KR102471796B1/en
Application granted granted Critical
Publication of KR102471796B1 publication Critical patent/KR102471796B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • G06N3/0454
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods 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

Disclosed is a program operation method of a non-volatile memory device. The method for preprocessing a cognitive video using a saliency map comprises the steps of: generating a saliency map by applying a training video to a 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 a ground truth video; and training the second neural network by comparing a video output by applying the generated neural network video to differentiable units included in a video encoding module, with the training video, wherein the differentiable units include a prediction unit, a conversion unit, a quantization unit, an inverse quantization unit and an inverse conversion unit. Therefore, provided are a method and a system for preprocessing a cognitive video using a saliency map, wherein a saliency map can be automatically generated using a neural network.

Description

세일리언시 맵을 이용한 인지적 비디오 전처리 방법 및 시스템 {Method and system for preprocessing cognitive video using saliency map} Method and system for preprocessing cognitive video using saliency map}

본 발명은 세일리언시 맵을 이용한 인지적 비디오 전처리 방법 및 시스템에 관한 것으로, 상세하게는 네트워크를 통해 비디오를 전송하기 전에 비디오 압축량 안에서 인간의 인지적 화질을 높일 수 있는 비디오 압축 이전 세일리언시 맵을 이용한 인지적 비디오 전처리 방법 및 시스템에 관한 것이다. 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.

한국 등록특허공보 제10-2036181호(2019.10.18.)Korean Patent Registration No. 10-2036181 (2019.10.18.)

본 발명이 이루고자 하는 기술적인 과제는 비디오 압축까지 고려한 세일리언시 맵을 이용한 인지적 비디오 전처리 방법 및 시스템을 제공하는 것이다. 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 video preprocessing system 100 using a saliency map generates a saliency map before compressing and transmitting video, compresses the video using the generated saliency map, It refers to a system that transmits compressed video to users. The cognitive video preprocessing system 100 using a saliency map is a system that considers video compression in advance to generate a saliency map and applies the generated saliency map to an image.

상기 사용자는 목적 장치(30)의 사용자를 의미한다. 비디오 전처리는 비디오를 압축하기 전에 세일리언시 맵을 이용한 비디오 처리 동작들을 의미한다. 구체적으로, 비디오 전처리는 비디오를 이용하여 세일리언시 맵을 생성하는 동작들과 생성된 세일리언시 맵을 비디오에 적용하는 동작들을 포함한다. The user means a user of the target device 30 . Video preprocessing refers to video processing operations using a saliency map before video compression. Specifically, the video pre-processing includes operations of generating a saliency map using video and operations of applying the generated saliency map to the video.

세일리언시 맵을 이용한 인지적 비디오 전처리 시스템(100)은 소스 장치(10)와 목적 장치(30)를 포함한다. 소스 장치(10)와 목적 장치(30)는 네트워크(101)를 통해 서로 통신할 수 있다. 네트워크(101)를 통해 소스 장치(10)로부터 출력되는 압축된 영상이 목적 장치(30)로 전달될 수 있다. 여기서 상기 압축된 영상은 인코드된 비디오 비트스트림을 의미한다. A cognitive video preprocessing system 100 using a saliency map includes a source device 10 and a destination device 30 . The source device 10 and the destination device 30 may communicate with each other via the network 101 . A compressed image output from the source device 10 may be delivered to the destination device 30 through the network 101 . Here, the compressed image means an encoded video bitstream.

소스 장치(10)는 영상 처리 장치, 컴퓨팅 장치, 또는 서버 등 다양한 용어들로 호칭될 수 있다. 소스 장치(10)는 비디오를 신경망을 적용하여 세일리언시 맵을 생성한다. 소스 장치(10)는 생성된 세일리언시 맵을 비디오에 입력 마스크로 적용하고 세일리언시 맵이 적용된 비디오를 압축하여 인코드된 비디오 비트스트림을 목적 장치(20)로 전송한다. 뒤에서 소스 장치(10)의 자세한 동작들에 대해 설명될 것이다. The source device 10 may be called various terms such as an image processing device, a computing device, or a server. The source device 10 generates a saliency map by applying a neural network to the video. The source device 10 applies the generated saliency map to the video as an input mask, compresses the video to which the saliency map is applied, and transmits the encoded video bitstream to the destination device 20 . Detailed operations of the source device 10 will be described later.

목적 장치(30)는 노트북, 태블릿 PC, 또는 데스크탑과 같은 전자 장치를 의미한다. 실시 예에 따라 목적 장치(30)는 클라이언트로 호칭될 수 있다. 목적 장치(30)는 압축된 영상, 즉, 인코드된 비디오 비트스트림을 수신하기 위해 이용된다. 목적 장치(30)는 소스 장치(10)로부터 인코드된 비트스트림을 수신하고, 인코드된 비트스트림을 디코딩하고, 디코딩된 비트스트림을 디스플레이에 표시한다. The target device 30 refers to an electronic device such as a laptop computer, tablet PC, or desktop. Depending on the embodiment, the target device 30 may be referred to as a client. The destination device 30 is used to receive a compressed image, ie an encoded video bitstream. The destination device 30 receives the encoded bitstream from the source device 10, decodes the encoded bitstream, and displays the decoded bitstream on a display.

소스 장치(10)는 프로세서(11)와 메모리(13)를 포함한다. 프로세서(11)는 세일리언시 맵을 이용한 인지적 비디오 전처리 방법과 관련된 명령들을 실행한다. 메모리(13)는 세일리언시 맵을 이용한 인지적 비디오 전처리를 위한 명령들을 포함한다. 메모리(13)는 신경망 훈련 모듈(15), 신경망 모듈(17), 비디오 인코딩 모듈(19), 및 출력 모듈(21)을 포함한다. 신경망 훈련 모듈(15), 신경망 모듈(17), 비디오 인코딩 모듈(19), 및 출력 모듈(21)은 프로세서(11)에 의해 실행되는 명령들을 의미한다. 실시 예에 따라 비디오 인코딩 모듈(19)과 출력 모듈(21)은 하드웨어로 구현될 수 있다. 비디오 인코딩 모듈(19)은 비디오 인코더, 또는 인코딩 장치 등 다양한 용어로 호칭될 수 있다. 이하, 신경망 훈련 모듈(15), 신경망 모듈(17), 비디오 인코딩 모듈(19), 및 출력 모듈(21)의 동작들은 프로세서(11)에 의해 수행되는 것으로 이해될 수 있다. The source device 10 includes a processor 11 and a memory 13 . The processor 11 executes instructions related to a perceptual video pre-processing method using a saliency map. Memory 13 contains instructions for perceptual video pre-processing using saliency maps. The memory 13 includes a neural network training module 15 , a neural network module 17 , a video encoding module 19 , and an output module 21 . The neural network training module 15, the neural network module 17, the video encoding module 19, and the output module 21 refer to instructions executed by the processor 11. According to embodiments, the video encoding module 19 and the output module 21 may be implemented as hardware. The video encoding module 19 may be called various terms such as a video encoder or an encoding device. Hereinafter, operations of the neural network training module 15 , the neural network module 17 , the video encoding module 19 , and the output module 21 may be understood to be performed by the processor 11 .

신경망 훈련 모듈(15)은 신경망 블록(200)을 훈련하기 위한 모듈이다. The neural network training module 15 is a module for training the neural network block 200 .

신경망 모듈(17)은 신경망 훈련 모듈(15)에 의해 신경망의 훈련이 끝난 후 입력 비디오를 비디오의 압축까지 고려하여 세일리언시 맵을 생성하고, 입력 비디오를 생성된 세일리언시 맵이 적용된 비디오로 변환하기 위한 모듈이다. After the training of the neural network by the neural network training module 15 is finished, the neural network module 17 generates a saliency map considering the compression of the input video, and transforms the input video into a video to which the generated saliency map is applied. It is a module for conversion.

비디오 인코딩 모듈(19)은 신경망 모듈(17)에서 출력되는 세일리언시 맵이 적용된 비디오를 압축하는 모듈이다. 예컨대, 비디오 인코딩 모듈(19)은 H.265 등과 같은 비디오 코딩 표준에 따라 동작한다. The video encoding module 19 is a module that compresses the video to which the saliency map is applied, output from the neural network module 17 . For example, the video encoding module 19 operates according to a video coding standard such as H.265 or the like.

출력 모듈(21)은 비디오 인코딩 모듈(19)에서 출력되는 비트스트림을 목적 장치(30)로 전송하는 모듈이다. The output module 21 is a module that transmits the bitstream output from the video encoding module 19 to the destination device 30 .

도 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 , reference numeral 300 denotes components used to train the neural network block 200 . That is, a prediction unit 310, a transform unit 320, a quantization unit 330, an inverse quantization unit 340, and an inverse transform unit that may be included in the video encoding module 19 to train the neural network block 200. (350) is used. A portion of the video encoding module 19 is used to train the neural network block 200 .

신경망 블록(200)을 훈련하기 위해 비디오 인코딩 모듈(19)의 일부를 이용하는 이유는 비디오 압축에 따른 비디오 데이터의 손실을 방지하기 위함이다. 즉, 미리 비디오 압축까지 고려하여 세일리언시 맵을 생성하기 위한 신경망 블록(200)이 훈련된다. 또한, 미리 비디오 압축까지 고려하여 세일리언시 맵이 적용된 신경망 출력 비디오(203)를 생성하기 위한 신경망 블록(200)이 훈련된다. The reason for using part of the video encoding module 19 to train the neural network block 200 is to prevent loss of video data due to video compression. That is, the neural network block 200 for generating a saliency map considering video compression in advance is trained. In addition, the neural network block 200 for generating the neural network output video 203 to which the saliency map is applied is trained considering video compression in advance.

신경망 블록(200)은 제1신경망(210)과 제2신경망(220)을 포함한다. 제1신경망(210)은 세일리언시 맵(215)을 생성하기 위한 신경망이며, 제2신경망(220)은 신경망 출력 비디오(203)를 생성하기 위한 신경망이다. The neural network block 200 includes a first neural network 210 and a second neural network 220 . The first neural network 210 is a neural network for generating the saliency map 215 , and the second neural network 220 is a neural network for generating the neural network output video 203 .

신경망 훈련 모듈(15)은 신경망 블록(200)을 훈련하기 위해 훈련 비디오(201)를 수신한다. The neural network training module 15 receives the training video 201 to train the neural network block 200 .

제1신경망(210)은 훈련 비디오(201)를 수신하여 세일리언시 맵(215)을 생성한다. 세일리언시 맵(215)은 사람의 시선이 가장 먼저 집중되는 영역을 강조한 이미지이다.The first neural network 210 receives the training video 201 and generates a saliency map 215 . The saliency map 215 is an image emphasizing a region where a person's gaze is first focused.

제2신경망(220)은 훈련 비디오(201)를 수신하여 신경망 출력 비디오(203)를 생성한다. 신경망 출력 비디오(203)란 신경망 블록(200)에서 출력되는 영상을 의미한다. 신경망 출력 비디오(203)는 훈련 비디오(201)에 세일리언시 맵(215)을 적용하여 출력되는 영상이다. 신경망 출력 비디오(203)의 생성에 대해서는 도 3에서 자세히 설명될 것이다. 훈련 비디오(201)에 세일리언시 맵(215)을 적용한다함은 도 3에 도시된 제2신경망(220)의 동작들이 수행됨을 의미한다. The second neural network 220 receives the training video 201 and produces a neural network output video 203 . The neural network output video 203 refers to an image output from the neural network block 200 . The neural network output video 203 is an image output by applying the saliency map 215 to the training video 201 . Generation of the neural network output video 203 will be described in detail in FIG. 3 . Applying the saliency map 215 to the training video 201 means that the operations of the second neural network 220 shown in FIG. 3 are performed.

도 3을 참고하면, 신경망 블록(200)은 비디오 인코딩 모듈(19)을 의식한 신경망 모듈이다. 신경망 블록은 제1신경망(210)과 제2신경망(220)을 포함한다. 제1신경망(210)와 제2신경망(220)의 훈련은 신경망 훈련 모듈(15)에 의해 수행되는 것으로 이해되어야 한다.Referring to FIG. 3 , the neural network block 200 is a neural network module conscious of the video encoding module 19 . The neural network block includes a first neural network 210 and a second neural network 220 . It should be understood that training of the first neural network 210 and the second neural network 220 is performed by the neural network training module 15 .

신경망 훈련 모듈(15)은 훈련 비디오(201)와 세일리언시 맵(215)을 제2신경망(220), 비디오 인코딩 모듈(19)에 포함된 미분 가능한 유닛들에 적용하여 출력되는 비디오(353)와, 그라운드 트루(ground truth) 비디오(GT)를 이용하여 제1신경망(210)과 제2신경망(220)을 훈련시킨다. The neural network training module 15 applies the training video 201 and the saliency map 215 to differentiable units included in the second neural network 220 and the video encoding module 19, and outputs the video 353 And, the first neural network 210 and the second neural network 220 are trained using the ground truth video (GT).

미분 가능한 유닛들은 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)을 포함한다. Differentiable units include a prediction unit 310 , a transform unit 320 , a quantization unit 330 , an inverse quantization unit 340 , and an inverse transform unit 350 .

신경망 훈련 모듈(15)은 훈련 비디오(201)와 세일리언시 맵(215)을 제2신경망(220), 비디오 인코딩 모듈(19)에 포함된 미분 가능한 유닛들에 적용한다함은 훈련 비디오(201)와 세일리언시 맵(215)이 제2신경망(220)에 입력되어 신경망 출력 비디오(203)를 출력하고, 신경망 출력 비디오(203)를 비디오 인코딩 모듈(19)에 포함된 미분 가능한 유닛들에 순차적으로 적용하여 출력되어 영상을 생성하는 것을 의미한다. 훈련 영상(201)을 제2신경망(220) 및, 비디오 인코딩 모듈(19)에 포함된 미분 가능한 유닛들에 적용하여 출력되는 영상은 복원 비디오(353)이다. The neural network training module 15 applies the training video 201 and the saliency map 215 to differentiable units included in the second neural network 220 and the video encoding module 19. and the saliency map 215 are input to the second neural network 220 to output the neural network output video 203, and the neural network output video 203 is sequentially divided into differentiable units included in the video encoding module 19. It means that it is applied and outputted to generate an image. An image output by applying the training image 201 to the second neural network 220 and differentiable units included in the video encoding module 19 is a reconstructed video 353 .

제1신경망(210)은 인코더(211)와 디코더(213)를 포함한다. 인코더(211)와 디코더(213) 각각은 복수의 레이어들을 포함한다. 상기 복수의 레이어들은 입력 레이어, 히든 레이어, 및 출력 레이어를 포함할 수 있다. 실시 예에 따라 제1신경망(210)은 다양하게 구현될 수 있다. The first neural network 210 includes an encoder 211 and a decoder 213. Each of the encoder 211 and the decoder 213 includes a plurality of layers. The plurality of layers may include an input layer, a hidden layer, and an output layer. According to embodiments, the first neural network 210 may be implemented in various ways.

제1신경망(210)은 훈련 비디오(201)를 수신하여 세일리언시 맵(215)을 출력한다. 즉, 신경망 훈련 모듈(15)은 훈련 비디오(201)를 제1신경망(210)에 적용하여 세일리언시 맵(215)을 생성한다. 훈련 비디오(201)는 훈련 비디오(201) 중 하나의 채널을 의미할 수 있다. The first neural network 210 receives the training video 201 and outputs a saliency map 215 . That is, the neural network training module 15 generates a saliency map 215 by applying the training video 201 to the first neural network 210 . The training video 201 may refer to one channel of the training videos 201 .

훈련 비디오(201)는 높이, 폭, 및 채널로 표현될 수 잇다. 훈련 비디오(201)는 복수의 프레임들을 포함한다. 상기 복수의 프레임들은 높이, 폭, 및 채널로 표현될 수 있다. 상기 복수의 프레임들의 가로와 세로의 크기는 폭과 높이와 대응된다. 복수의 프레임들의 수는 채널의 수와 대응될 수 있다. 또한, 훈련 비디오(201) 중 하나의 채널이란 하나의 비디오 프레임을 의미할 수 있다. 실시 예에 따라 훈련 비디오(201) 중 하나의 채널이란 YUV 컬러 스페이스에서 루마 채널을 의미할 수 있다. A training video 201 can be expressed in height, width, and channels. Training video 201 includes a plurality of frames. The plurality of frames may be represented by height, width, and channel. Horizontal and vertical sizes of the plurality of frames correspond to widths and heights. The number of frames may correspond to the number of channels. Also, one channel of the training video 201 may mean one video frame. According to an embodiment, one channel of the training video 201 may mean a luma channel in the YUV color space.

제2신경망(220)은 복수의 컨볼루션 레이어들(221-1~221-N; N은 자연수), 마스크 컨볼루션 레이어(223), 활성화 함수(225), 및 곱셈기(227)를 포함한다. 실시 예에 따라 복수의 컨볼루션 레이어들(210-1~210-N, 220-1~220-N)의 수는 달라질 수 있다. The second neural network 220 includes a plurality of convolution layers 221-1 to 221-N (N is a natural number), a mask convolution layer 223, an activation function 225, and a multiplier 227. Depending on the embodiment, the number of the plurality of convolution layers 210-1 to 210-N and 220-1 to 220-N may vary.

컨볼루션 레이어(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 training video 201. The convolution layer 221-2 performs a second convolution operation on the output of the first convolution layer 221-1. The convolution layer 221-3 performs a third convolution operation on the output of the second convolution layer 221-2.

제1컨볼루션 연산은 훈련 비디오(201) 중 하나의 채널과 제1커널의 컨볼루션 동작을 의미한다. 제2컨볼루션 연산은 컨볼루션 레이어(221-1)의 출력과 제2커널의 컨볼루션 동작을 의미한다. 제3컨볼루션 연산은 컨볼루션 레이어(221-2)의 출력과 제3커널의 컨볼루션 동작을 의미한다. The first convolution operation means a convolution operation between one channel of the training video 201 and the first kernel. The second convolution operation means a convolution operation between the output of the convolution layer 221-1 and the second kernel. The third convolution operation means a convolution operation between the output of the convolution layer 221-2 and the third kernel.

마스크 컨볼루션 레이어(223)는 세일리언스 맵(215)에 대해 컨볼루션 동작을 수행한다. 세일리언스 맵(215)은 하나의 채널이다. 즉, 세일리언스 맵(215)은 하나의 프레임이다. 세일리언스 맵(215)은 제1신경망(210)으로부터 출력된다. The mask convolution layer 223 performs a convolution operation on the saliency map 215 . The saliency map 215 is one channel. That is, the saliency map 215 is one frame. The saliency map 215 is output from the first neural network 210 .

상기 컨볼루션 동작은 세일리언스 맵(215)과 커널의 컨볼루션 동작을 의미한다. 상기 커널은 세일리언스 맵(215)이 마스크로서 이용되기 위한 가중치들의 매트릭스를 의미한다. 본 명세서에서는 마스크 컨볼루션 레이어(223)로 호칭되었으나, 실시 예에 따라 컨볼루션 레이어로 호칭될 수 있다. The convolution operation means a convolution operation between the saliency map 215 and the kernel. The kernel means a matrix of weights for the saliency map 215 to be used as a mask. Although referred to as a mask convolution layer 223 in this specification, it may be referred to as a convolution layer according to embodiments.

마스크 컨볼루션 레이어(223)는 세일리언스 맵(215)을 수신하여 하나의 채널을 가진 값들을 출력한다. 상기 값들은 매트릭스로 표현된다. The mask convolution layer 223 receives the saliency map 215 and outputs values having one channel. The values are represented by a matrix.

활성화 함수(225)는 마스크 컨볼루션 레이어(223)로부터 출력되는 값들을 수신하여 출력 값으로 변환한다. 예컨대, 활성화 함수(225)는 시그모이드 활성화 함수일 수 있다. 상기 변환된 출력 값은 0과 1 사이의 값을 가진다. The activation function 225 receives values output from the mask convolution layer 223 and converts them into output values. For example, activation function 225 may be a sigmoid activation function. The converted output value has a value between 0 and 1.

곱셈기(227)는 활성화 함수(225)로부터 출력된 출력 값과 컨볼루션 레이어(221-3)로부터 출력되는 출력 값들에 대해 곱셈 연산을 수행하여 곱셈 값들을 출력한다. 실시 예에 따라 곱셈기(227)는 활성화 함수(225)로부터 출력된 출력 값과 다른 컨볼루션 레이어(221-1, 또는 221-2)로부터 출력되는 출력 값들에 대해 곱셈 연산을 수행하여 곱셈 값들을 출력할 수 있다. The multiplier 227 performs a multiplication operation on the output values output from the activation function 225 and the output values output from the convolution layer 221-3 and outputs multiplication values. Depending on the embodiment, the multiplier 227 performs a multiplication operation on the output value output from the activation function 225 and the output values output from the convolution layer 221-1 or 221-2 that are different from each other, and outputs multiplication values. can do.

컨볼루션 레이어(221-N)은 곱셈기(227)로부터 출력되는 곱셈 값들에 대해 컨볼루션 연산을 수행하여 신경망 출력 비디오(203)를 출력한다. The convolution layer 221 -N performs a convolution operation on multiplication values output from the multiplier 227 and outputs the neural network output video 203 .

도 2를 참고하면, 비디오 인코딩 모듈(19)의 일부는 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)을 포함한다. 유닛은 영상 처리의 기본 단위를 나타낸다. 상기 유닛은 하드웨어, 또는 소프트웨어로 구현될 수 있다. Referring to FIG. 2 , part of the video encoding module 19 includes a prediction unit 310, a transform unit 320, a quantization unit 330, an inverse quantization unit 340, and an inverse transform unit 350. . The unit represents a basic unit of image processing. The unit may be implemented in hardware or software.

신경망 훈련 모듈(15)은 신경망 블록(200)을 훈련하기 위해 신경망(200) 훈련 단계에서 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)의 동작들을 수행한다. 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)은 비디오 인코딩 모듈(19)에 포함된 유닛들이다. 또한, 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)의 동작들을 수행한다. The neural network training module 15 includes a prediction unit 310, a transform unit 320, a quantization unit 330, an inverse quantization unit 340, and an inverse in the neural network 200 training step to train the neural network block 200. The operations of the conversion unit 350 are performed. Prediction unit 310 , transform unit 320 , quantization unit 330 , inverse quantization unit 340 , and inverse transform unit 350 are units included in video encoding module 19 . Also, operations of the inverse quantization unit 340 and the inverse transformation unit 350 are performed.

비디오 인코딩 모듈(19)에 포함된 유닛들 중 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)을 이용하는 이유는 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)은 미분 가능한 유닛들이기 때문이다.Among the units included in the video encoding module 19, the reason for using the prediction unit 310, the transform unit 320, the quantization unit 330, the inverse quantization unit 340, and the inverse transform unit 350 is the prediction unit This is because 310, transform unit 320, quantization unit 330, inverse quantization unit 340, and inverse transform unit 350 are differentiable units.

또한, 별도의 영상의 압축 과정에서 영상의 손상을 방지하기 위해 신경망 블록(200)을 학습하는 과정에서 미분 가능한 유닛들이 이용된다. In addition, differentiable units are used in the process of learning the neural network block 200 to prevent image damage in the process of compressing a separate image.

신경망 블록(200)을 학습하기 위해서는 미분이 가능하여야한다. 즉, 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)은 미분 가능한 유닛들이다. 비디오 인코딩 모듈(19)에 포함된 유닛들 중 필터 유닛(미도시)은 미분이 불가능하기 때문에 신경망 블록(200)의 훈련에 이용되지 않는다. In order to learn the neural network block 200, differentiation must be possible. That is, the prediction unit 310, the transform unit 320, the quantization unit 330, the inverse quantization unit 340, and the inverse transform unit 350 are differentiable units. Among the units included in the video encoding module 19, a filter unit (not shown) is not used for training the neural network block 200 because it cannot be differentiated.

실시 예에 따라 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)은 비디오 인코딩 모듈(19)에 포함된 유닛들과 유사한 동작들을 수행하지만, 미분을 보다 쉽게 하기 위해 비디오 인코딩 모듈(19)에 포함된 유닛들과 완전히 같지 않을 수 있다. 즉, 도 2에 도시된 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)은 일반적인 비디오 인코더에 이용되는 유닛들과 유사한 동작들을 수행한다. 예컨대, 예측 유닛(310)은 비디오 인코딩 모듈(19)에 포함된 예측 유닛과 완전히 동일하지는 않지만, 유사한 동작을 수행할 수 있다. According to an embodiment, the prediction unit 310, the transform unit 320, the quantization unit 330, the inverse quantization unit 340, and the inverse transform unit 350 are similar to the units included in the video encoding module 19. operations, but may not be exactly the same as the units included in the video encoding module 19 to make differentiation easier. That is, the prediction unit 310, transform unit 320, quantization unit 330, inverse quantization unit 340, and inverse transform unit 350 shown in FIG. 2 are similar to units used in general video encoders. perform actions For example, the prediction unit 310 is not exactly identical to the prediction unit included in the video encoding module 19, but may perform similar operations.

이하, 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350)의 동작들은 신경망 블록(200)을 훈련하기 위한 동작들을 의미한다. Hereinafter, operations of the prediction unit 310, the transform unit 320, the quantization unit 330, the inverse quantization unit 340, and the inverse transform unit 350 refer to operations for training the neural network block 200. .

예측 유닛(310)은 인트라(intra)/인터(inter) 예측 유닛이다. 예측 유닛(310)은 예측 블록을 생성하기 위해 인트라 예측을 수행하거나, 인터 예측을 수행한다. The prediction unit 310 is an intra/inter prediction unit. The prediction unit 310 performs intra prediction or inter prediction to generate a prediction block.

신경망 훈련 모듈(15)은 신경망 블록(200)에서 출력된 신경망 출력 비디오(203)를 블록들로 나눌 수 있다. 신경망 출력 비디오(203)는 복수의 프레임들을 포함한다. 복수의 프레임들을 포함하는 신경망 출력 비디오(203)가 예측 유닛(310)에 입력된다. 예측 유닛(310)은 신경망 출력 비디오(203)를 수신하여 예측 블록을 생성한다. The neural network training module 15 may divide the neural network output video 203 output from the neural network block 200 into blocks. The neural network output video 203 includes a plurality of frames. A neural network output video 203 comprising a plurality of frames is input to a prediction unit 310 . The prediction unit 310 receives the neural network output video 203 and generates a prediction block.

감산기(311)는 레지듀얼 블록을 생성하기 위해 현재 블록에서 예측 블록을 감산한다. 감산기(311)는 레지듀얼 생성 유닛(residual generation unit)로 호칭될 수 있다. 감산기(311)는 신경망 출력 비디오(203)의 현재 블록과, 예측 유닛(310)에서 신경망 출력 비디오(203)를 이용하여 생성된 예측 블록을 이용한다. Subtractor 311 subtracts the prediction block from the current block to produce a residual block. The subtractor 311 may be referred to as a residual generation unit. The subtractor 311 uses the current block of the neural network output video 203 and the prediction block generated using the neural network output video 203 in the prediction unit 310 .

변환 유닛(320)은 레지듀얼 블록을 변환 계수들로 변환한다. 상기 레지듀얼 블록은 신경망 출력 영상(203)에 기초하여 생성된 레지듀얼 블록이다. The transform unit 320 transforms the residual block into transform coefficients. The residual block is a residual block generated based on the neural network output image 203 .

양자화 유닛(330)은 양자화 파라미터, 또는 양자화 레벨을 이용하여 변환 계수들을 양자화된 변환 계수들로 변환한다. 상기 양자화된 변환 계수들은 신경망 출력 영상(203)에 기초하여 생성된다. 변환 계수들은 양자화 파라미터에 의해 나눠진다. 만약 양자화 파라미터가 높은 값으로 설정되면, 양자화된 계수들은 더 많은 0으로 설정되고, 이는 높은 압축과 낮은 영상 퀄리터를 초래한다. 만약 양자화 파라미터가 낮은 값으로 설정되면, 양자화된 계수들은 더 많은 0이 아닌 계수들로 설정되고, 이는 낮은 압축과 높은 영상 퀄리티를 초래한다. The quantization unit 330 converts transform coefficients into quantized transform coefficients using a quantization parameter or quantization level. The quantized transform coefficients are generated based on the neural network output image 203 . Transform coefficients are divided by the quantization parameter. If the quantization parameter is set to a high value, the quantized coefficients are set to more zeroes, resulting in higher compression and lower image quality. If the quantization parameter is set to a low value, the quantized coefficients are set to more non-zero coefficients, resulting in lower compression and higher image quality.

실시 예에 따라 제1가산기(331)는 양자화 유닛(330)에서 출력되는 양자화된 변환 계수들과 유니폼 노이즈를 가산할 수 있다. 양자화 유닛(330)에서 출력되는 양자화된 변환 계수들은 신경망 출력 영상(203)에 기초하여 생성된다. According to an embodiment, the first adder 331 may add the quantized transform coefficients output from the quantization unit 330 and the uniform noise. Quantized transform coefficients output from the quantization unit 330 are generated based on the neural network output image 203 .

신경망 훈련이 아니라 비디오 인코딩 과정에서 양자화 유닛(330)으로부터 출력되는 양자화된 변환 계수들은 일반적으로 라운드(round)를 거친다. 라운드는 반올림을 의미한다. 라운드를 거친 양자화된 변환 계수들은 미분이 불가능하다. Quantized transform coefficients output from the quantization unit 330 generally go through rounds in a video encoding process rather than neural network training. Round means round up. Quantized transform coefficients that have undergone rounds cannot be differentiated.

본 발명에서 양자화 유닛(330)으로부터 출력되는 양자화된 변환 계수들은 미분 가능한 상태를 위해 라운드 대신에 유니폼 노이즈가 추가된다. In the present invention, quantized transform coefficients output from the quantization unit 330 are added with uniform noise instead of rounds for a differentiable state.

인버스 양자화 유닛(340)은 변환 계수들을 반대로 양자화(inverse quantize)한다. 상기 반대로 양자화된 변환 계수들은 신경망 출력 영상(203)에 기초하여 생성된다. The inverse quantization unit 340 inverse quantizes the transform coefficients. The reverse quantized transform coefficients are generated based on the neural network output image 203 .

인버스 변환 유닛(350)은 레지듀얼 블록을 생성하기 위해 반대로 양자화된 변환 계수들을 역변환(inverse transform)한다. 역변환된 변환 계수들은 신경망 출력 영상(203)에 기초하여 생성된다. The inverse transform unit 350 inverse transforms the quantized transform coefficients inversely to generate a residual block. The inverse transformed transform coefficients are generated based on the neural network output image 203 .

제2가산기(351)는 예측 블록과 레지듀얼 블록을 이용하여 블록을 복원한다. 복원된 블록은 예측 유닛(310)에서 예측 블록을 생성하기 위해 이용된다. 복수의 복원된 블록들은 복원 비디오(353)을 생성하기 위해 복원될 수 있다. 제2가산기(351)는 예측 블록과 레지듀얼 블록을 이용하여 복원 비디오(353)을 생성할 수 있다. 제2가산기(351)는 복원 유닛으로 호칭될 수 있다. 복원 영상(353)은 신경망 출력 영상(203)에 기초하여 생성된다. 제2가산기(351)도 가산 동작을 수행하는 유닛으로, 미분 가능한 유닛으로 고려될 수 있다. 복원 영상(353)은 예측 유닛(310)에 의해 생성된 예측 블록과 인버스 변환 유닛(350)에 의해 생성된 레지듀얼 블록을 가산하여 생성된다. The second adder 351 restores a block using the prediction block and the residual block. The reconstructed block is used in the prediction unit 310 to generate a prediction block. A plurality of reconstructed blocks may be reconstructed to generate reconstructed video 353 . The second adder 351 may generate a reconstructed video 353 using the prediction block and the residual block. The second adder 351 may be referred to as a restoration unit. The reconstructed image 353 is generated based on the neural network output image 203 . The second adder 351 is also a unit that performs an addition operation and can be considered as a differentiable unit. The reconstructed image 353 is generated by adding the prediction block generated by the prediction unit 310 and the residual block generated by the inverse transformation unit 350 .

제1손실 모델(365)은 세일리언시 맵(215)과 그라운드 트루 비디오(GT)의 픽셀 비교에 기초하여 제1손실 값을 계산한다. 구체적으로 상기 제1손실 값은 세일리언시 맵(215)과 그라운드 트루 비디오(GT)의 픽셀들의 평균 제곱 오차(Mean Squared Error, MSE)을 이용하여 계산될 수 있다. 이때, 제1손실 모델(365)은 세일리언시 맵(215)의 프레임과 그라운드 트루 비디오(GT)의 프레임의 픽셀 차이를 계산할 수 있다. 그라운드 트루 비디오(GT)란 신경망 블록(200)을 훈련하기 위해 사용되는 비디오이다. 이때, 세일리언시 맵(215)과 그라운드 트루 비디오(GT)는 하나의 프레임일 수 있다. The first loss model 365 calculates a first loss value based on pixel comparison between the saliency map 215 and the ground true video (GT). Specifically, the first loss value may be calculated using the mean squared error (MSE) of pixels of the saliency map 215 and the ground true video (GT). In this case, the first loss model 365 may calculate a pixel difference between a frame of the saliency map 215 and a frame of the ground true video (GT). A ground true video (GT) is a video used to train the neural network block 200 . In this case, the saliency map 215 and the ground true video GT may be one frame.

제2손실 모델(370)은 복원 비디오(353)를 훈련 비디오(201)와 비교하여 복수의 손실 값들을 계산한다. 이때, 훈련 비디오(201)는 하나의 프레임에서 임의의 블록을 의미할 수 있다. The second loss model 370 compares the reconstructed video 353 with the training video 201 to calculate a plurality of loss values. In this case, the training video 201 may mean an arbitrary block in one frame.

훈련 비디오(201)를 제2신경망(220) 및, 비디오 인코딩 모듈(19)에 포함된 미분 가능한 유닛들(예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350))에 적용하여 출력되는 비디오는 복원 비디오(353)를 의미한다. The training video 201 is converted into the second neural network 220 and differentiable units included in the video encoding module 19 (prediction unit 310, transform unit 320, quantization unit 330, inverse quantization unit ( 340), and the video output by applying the inverse transform unit 350) means the reconstructed video 353.

실시 예에 따라 제2손실 모델(370)은 복원 비디오(353)는 훈련 비디오(201)와 비교하여 복수의 손실 값들을 계산한다. 이때, 훈련 비디오(201)는 프레임을 의미할 수 있다. 복원 비디오(353)와 비교되는 훈련 비디오(201)는 그라운드 트루이다. 제1손실 모델(365), 제2손실 모델(370)은 손실 함수가 구현되는 프로그램 명령들을 의미한다. 실시 예에 따라 제1손실 모델(365), 제2손실 모델(370)은 소프트웨어, 또는 하드웨어로 구현될 수 있다.According to an embodiment, the second loss model 370 compares the reconstructed video 353 with the training video 201 to calculate a plurality of loss values. In this case, the training video 201 may mean a frame. The training video 201 compared to the reconstruction video 353 is ground true. The first loss model 365 and the second loss model 370 refer to program instructions for implementing a loss function. According to embodiments, the first loss model 365 and the second loss model 370 may be implemented in software or hardware.

상기 복수의 손실 값들은 제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 first loss model 365 and the second loss model 370 may be implemented as one loss model.

제2손실 모델(370)은 복원 비디오(353)와 훈련 비디오(201)의 픽셀 비교에 기초하여 제2손실 값을 계산한다. 구체적으로 상기 제2손실 값은 복원 비디오(353)와 훈련 비디오(201)의 픽셀들의 평균 제곱 오차(Mean Squared Error, MSE)을 이용하여 계산될 수 있다. 이때, 제2손실 모델(370)은 복원 비디오(353)의 프레임과 훈련 비디오(201)의 프레임의 픽셀 차이를 계산할 수 있다.The second loss model 370 calculates a second loss value based on pixel comparison of the reconstructed video 353 and the training video 201 . Specifically, the second loss value may be calculated using Mean Squared Error (MSE) of pixels of the reconstructed video 353 and the training video 201. In this case, the second loss model 370 may calculate a pixel difference between a frame of the reconstructed video 353 and a frame of the training video 201 .

제2손실 모델(370)은 복원 비디오(353)과 훈련 비디오(201)의 SSIM(Structural similarity index measure)에 기초하여 제3손실 값을 계산한다. SSIM은 복원 비디오(353)과 훈련 비디오(201) 사이의 유사성을 측정하기 위한 방법이다. 이때, 제2손실 모델(370)은 복원 비디오(353)의 프레임과 훈련 비디오(201)의 프레임 사이의 SSIM(Structural similarity index measure)를 계산할 수 있다. The second loss model 370 calculates a third loss value based on SSIM (Structural Similarity Index Measure) of the reconstruction video 353 and the training video 201 . SSIM is a method for measuring the similarity between a reconstructed video (353) and a training video (201). In this case, the second loss model 370 may calculate a structural similarity index measure (SSIM) between a frame of the reconstructed video 353 and a frame of the training video 201 .

제2손실 모델(370)은 복원 비디오(353)와 훈련 비디오(201)의 유클리드 거리(Euclidean distance)에 기초하여 제4손실 값을 계산한다. 상기 제4손실 값은 복원 비디오(353)과 훈련 비디오(201)의 유클리드 거리로 계산된다. 실시 예에 따라 상기 제4손실 값은 VGG 손실(loss)로 정의될 수 있다. VGG 손실은 콘텐츠 손실의 한 유형이다. 이때, 제2손실 모델(370)은 복원 비디오(353)의 프레임과 훈련 비디오(201)의 프레임의 유클리드 거리를 계산할 수 있다. The second loss model 370 calculates a fourth loss value based on the Euclidean distance between the reconstructed video 353 and the training video 201 . The fourth loss value is calculated as the Euclidean distance between the reconstructed video 353 and the training video 201. According to an embodiment, the fourth loss value may be defined as a VGG loss. VGG loss is a type of content loss. In this case, the second loss model 370 may calculate the Euclidean distance between the frames of the reconstructed video 353 and the frames of the training video 201 .

상기 제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 entropy model 360 may be further used in the process of training the neural network 200 .

엔트로피 모델(360)은 양자화 유닛(330)로부터 출력되는 양자화된 변환 계수들, 또는 제1가산기(331)로부터 출력되는 가산 값의 엔트로피를 계산하여 레이트 손실(Rate loss)을 출력한다. 상기 엔트로피는 확률 변수(random variable)에 대한 확률 분포(probability distribution)로부터 도출된 비트스트림을 표현하는데 요구되는 비트의 평균 숫자로 정의될 수 있다. 상기 엔트로피는 널리 알려진 개념으로 이에 대한 자세한 설명은 생략한다. 상기 레이트 손실은 상기 엔트로피를 의미한다. 또한, 상기 레이트 손실은 제5손실 값으로 정의될 수 있다. 엔트로피 모델(360)은 최소 값을 가지는 엔트로피가 출력되도록 구현되는 프로그램 명령들을 의미한다. The entropy model 360 calculates the entropy of the quantized transform coefficients output from the quantization unit 330 or the addition value output from the first adder 331 and outputs a rate loss. The entropy may be defined as an average number of bits required to represent a bitstream derived from a probability distribution for a random variable. The entropy is a well-known concept and a detailed description thereof will be omitted. The rate loss means the entropy. Also, the rate loss may be defined as a fifth loss value. The entropy model 360 refers to program instructions implemented to output entropy having a minimum value.

[수학식 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 entropy model 360, which means a probability distribution for the input, and the input is quantized transform coefficients output from the quantization unit 330 or an addition value output from the first adder 331 it means.

영상의 사이즈가 크고 복잡할수록 더 많은 비트들이 이용된다. 따라서 영상의 사이즈가 크고 복잡할수록 엔트로피는 높은 값을 가진다. 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 network training module 15 trains the neural network block 200 so that the fifth loss value is minimized.

엔트로피 모델(360)이 더 이용될 때, 신경망 블록(200)의 손실 함수는 상기 제1손실 값, 상기 제2손실 값, 상기 제3손실 값, 상기 제4손실 값, 및 상기 제5손실 값을 이용하여 정의될 수 있다. 신경망 블록(200)의 손실 함수는 아래의 수학식 2와 같이 표현될 수 있다. When the entropy model 360 is further used, the loss function of the neural network block 200 is the first loss value, the second loss value, the third loss value, the fourth loss value, and the fifth loss value. can be defined using The loss function of the neural network block 200 can be expressed as Equation 2 below.

[수학식 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 network training module 15 trains the neural network block 200 such that the sum of loss values of the loss function is minimized. That is, the neural network training module 15 performs the neural network module 200 such that the first loss value, the second loss value, the third loss value, and the fourth loss value are minimized while the fifth loss value is minimized. learn The fifth loss value, the first loss value, the second loss value, the third loss value, and the fourth loss value have a trade-off relationship. When the fifth loss value is decreased, the first loss value, the second loss value, the third loss value, and the fourth loss value increase. Conversely, when the first loss value, the second loss value, the third loss value, and the fourth loss value are decreased, the fifth loss value increases.

신경망 블록(200)을 훈련하기 위해 훈련 비디오(201)와 그라운드 트루 비디오(GT)가 훈련 데이터 세트로 이용된다. To train the neural network block 200, training video 201 and ground true video (GT) are used as training data sets.

실시 예에 따라 엔트로피 모델(360), 제1손실 모델(365), 및 제2손실 모델(370)은 하나의 손실 모델로 구현될 수 있다. According to embodiments, the entropy model 360, the first loss model 365, and the second loss model 370 may be implemented as one loss model.

도 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 neural network block 200 is finished, the neural network module 17 generates a saliency map 415 for the input video 401, and the saliency map 415 is converted into the input video 401. The video applied to (401) is output. At this time, the saliency map 415 is an image that has been considered in advance until video encoding. Also, the output video 403 is an image in which video encoding is considered in advance. The saliency map 415 and the output video 403 are different from the saliency map 215 used in training of the neural network block 200 and the output video 203 . The training media 201 is used for the saliency map 215 used in the training of the neural network block 200 and the output video 203.

세일리언시 맵(415)이 적용된 비디오(403)를 출력하기 위한 동작은 신경망 모듈(17)에 의해 수행된다. 도 4에 도시된 신경망 블록(200)은 훈련이 끝난 신경망이다. 세일리언시 맵(415)이 적용된 비디오(403)를 출력하기 위한 단계에서는 도 2에 도시된 블록도와 달리 신경망 블록(200)만 이용된다. 즉, 신경망 블록(200)의 훈련이 끝난 이후에는 비디오 인코딩 모듈(19)에 포함된 미분 가능한 유닛들(즉, 예측 유닛(310), 변환 유닛(320), 양자화 유닛(330), 인버스 양자화 유닛(340), 및 인버스 변환 유닛(350))은 세일리언시 맵(415)이 적용된 비디오(403)를 출력하기 위한 단계에서는 이용되지 않는다. An operation to output the video 403 to which the saliency map 415 is applied is performed by the neural network module 17 . The neural network block 200 shown in FIG. 4 is a trained neural network. Unlike the block diagram shown in FIG. 2 , only the neural network block 200 is used in the step of outputting the video 403 to which the saliency map 415 is applied. That is, after the training of the neural network block 200 is finished, the differentiable units included in the video encoding module 19 (ie, the prediction unit 310, the transform unit 320, the quantization unit 330, and the inverse quantization unit) 340 and the inverse transform unit 350) are not used in the step of outputting the video 403 to which the saliency map 415 is applied.

신경망 모듈(17)은 입력 영상(401)을 신경망 블록(200)에 적용하여 세일리언시 맵(415)이 적용된 비디오(403)를 출력한다. 설정에 따라 신경망 모듈(17)은 입력 비디오(401)를 신경망 블록(200)에 적용하여 세일리언시 맵(415)을 출력할 수 있다. 구체적으로, 신경망 모듈(17)은 입력 비디오(401) 중 하나 채널을 신경망 블록(200)에 적용하여 하나의 채널을 가지는 세일리언시 맵(415)이 적용된 비디오(403)를 출력한다. 입력 비디오(401)는 높이, 폭, 및 채널로 표현될 수 잇다. 입력 비디오(401) 중 하나의 채널이란 하나의 비디오 프레임을 의미할 수 있다. 실시 예에 따라 입력 비디오(401) 중 하나의 채널이란 YUV 컬러 스페이스에서 루마 채널일 수 있다. The neural network module 17 applies the input image 401 to the neural network block 200 and outputs a video 403 to which the saliency map 415 is applied. Depending on settings, the neural network module 17 may output the saliency map 415 by applying the input video 401 to the neural network block 200 . Specifically, the neural network module 17 applies one channel of the input video 401 to the neural network block 200 and outputs the video 403 to which the saliency map 415 having one channel is applied. An input video 401 can be represented by height, width, and channels. One channel of the input video 401 may mean one video frame. According to an embodiment, one channel of the input video 401 may be a luma channel in the YUV color space.

신경망 모듈(17)은 신경망 블록(200)으로부터 출력되는 비디오 프레임들을 누적하여 복수의 프레임들을 가지는 세일리언시 맵(415)이 적용된 비디오(403)를 출력할 수 있다. 세일리언시 맵(415)이 적용된 비디오(403)는 비디오 인코딩까지 미리 고려된 영상이다. The neural network module 17 may accumulate video frames output from the neural network block 200 and output a video 403 to which the saliency map 415 having a plurality of frames is applied. The video 403 to which the saliency map 415 is applied is an image in which video encoding is considered in advance.

비디오 인코딩 모듈(19)은 신경망 모듈(17)에서 출력되는 비디오 인코딩까지 미리 고려된 영상을 압축한다. 예컨대, 비디오 인코딩 모듈(19)은 H.265 등과 같은 비디오 코딩 표준이다. The video encoding module 19 compresses the image considered in advance until the video encoding output from the neural network module 17. For example, the video encoding module 19 is a video coding standard such as H.265 or the like.

출력 모듈(21)은 비디오 인코딩 모듈(19)에서 출력되는 비트스트림을 목적 장치(30)로 전송한다. The output module 21 transmits the bitstream output from the video encoding module 19 to the destination device 30 .

도 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 network training module 15 trains the neural network block 200 . Hereinafter, training operations of the neural network block 200 are described.

신경망 훈련 모듈(15)은 훈련 비디오(201)를 제1신경망(210)에 적용하여 세일리언시 맵(215)을 생성한다(S10). The neural network training module 15 generates a saliency map 215 by applying the training video 201 to the first neural network 210 (S10).

신경망 훈련 모듈(15)은 훈련 비디오(201)와 세일리언시 맵(215)을 제2신경망(220)에 적용하여 신경망 출력 비디오(203)를 생성한다(S20).The neural network training module 15 generates a neural network output video 203 by applying the training video 201 and the saliency map 215 to the second neural network 220 (S20).

신경망 훈련 모듈(15)은 제2신경망(220)에 출력된 신경망 출력 비디오(203)의 현재 블록에서 예측 유닛(310)에서 예측된 블록을 감산하여 레지듀얼 블록을 생성한다(S30). The neural network training module 15 subtracts the block predicted by the prediction unit 310 from the current block of the neural network output video 203 output to the second neural network 220 to generate a residual block (S30).

신경망 훈련 모듈(15)은 레지듀얼 블록을 변환 계수들로 변환한다(S40). 변환 유닛(320)이 이용된다. The neural network training module 15 converts the residual block into transform coefficients (S40). A conversion unit 320 is used.

신경망 훈련 모듈(15)은 양자화 파라미터(QP)를 이용하여 변환 계수들을 양자화된 변환 계수들로 변환한다(S50). 양자화 유닛(330)이 이용된다. The neural network training module 15 converts transform coefficients into quantized transform coefficients using a quantization parameter (QP) (S50). A quantization unit 330 is used.

신경망 훈련 모듈(15)은 변환 계수들을 반대로 양자화한다(S60). 인버스 양자화 유닛(340)이 이용된다. The neural network training module 15 inversely quantizes the transform coefficients (S60). An inverse quantization unit 340 is used.

신경망 훈련 모듈(15)은 반대로 양자화된 변환 계수들을 역변환하여 레지듀얼 블록을 생성한다(S70). 인버스 변환 유닛(350)이 이용된다. The neural network training module 15 inversely transforms the quantized transform coefficients to generate a residual block (S70). An inverse transform unit 350 is used.

신경망 훈련 모듈(15)은 예측 블록과 레지듀얼 블록을 이용하여 복원 영상(353)을 생성한다(S80).The neural network training module 15 generates a reconstructed image 353 using the prediction block and the residual block (S80).

신경망 훈련 모듈(15)은 세일리언시 맵(215)과 그라운드 트루 비디오(GT)의 픽셀 비교에 기초하여 제1손실 값을 계산한다(S90). 제1손실 모델(365)이 이용된다. The neural network training module 15 calculates a first loss value based on pixel comparison between the saliency map 215 and the ground true video (GT) (S90). A first loss model 365 is used.

신경망 훈련 모듈(15)은 복원 비디오(353)를 훈련 비디오(201)와 비교하여 복수의 손실 값들을 계산한다(S100). 제2손실 모델(370)이 이용된다. 복수의 손실 값들은 제2손실 값, 제3손실 값, 및 제4손실 값이다. The neural network training module 15 compares the reconstructed video 353 with the training video 201 to calculate a plurality of loss values (S100). A second loss model 370 is used. The plurality of loss values are a second loss value, a third loss value, and a fourth loss value.

신경망 훈련 모듈(15)은 양자화된 변환 계수들을 수신하여 엔트로피를 계산한다(S110). 엔트로피 모델(360)이 이용된다. 엔트로피는 제5손실 값이다. The neural network training module 15 receives the quantized transform coefficients and calculates entropy (S110). An entropy model 360 is used. Entropy is the fifth loss value.

신경망 훈련 모듈(15)은 복수의 손실 값들과 엔트로피의 합이 최소화되도록 신경망 블록(200)을 훈련한다(S120). 즉, 복수의 손실 값들과 엔트로피의 합이 최소화되도록 S10 단계에서 S110 단계가 반복적으로 수행된다. The neural network training module 15 trains the neural network block 200 such that the sum of the plurality of loss values and entropy is minimized (S120). That is, steps S110 in step S10 are repeatedly performed so that the sum of the plurality of loss values and entropy is minimized.

상기 복수의 손실 값들은 상기 제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 network training module 15 are performed by the processor 11 .

신경망 훈련 모듈(15)에 의해 신경망 블록(200)의 훈련이 끝나면, 신경망 모듈(17)은 입력 영상을 신경망 블록(200)에 적용하여 세일리언시 맵이 적용된 비디오를 출력한다. After training of the neural network block 200 by the neural network training module 15 is finished, the neural network module 17 applies the input image to the neural network block 200 and outputs a video to which the saliency map is applied.

본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.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)

훈련 비디오를 제1신경망에 적용하여 세일리언시 맵을 생성하는 단계;
상기 훈련 비디오와 상기 세일리언시 맵을 제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.
삭제delete 제1항에 있어서, 상기 제1신경망과 상기 제2신경망을 훈련시키는 단계는,
상기 제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.
제1항에 있어서, 상기 세일리언시 맵을 이용한 인지적 비디오 전처리 방법은,
상기 양자화 유닛로부터 출력되는 양자화된 변환 계수들을 수신하여 엔트로피를 계산하는 단계를 더 포함하는 세일리언시 맵을 이용한 인지적 비디오 전처리 방법.
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.
삭제delete 제5항에 있어서, 상기 제1신경망과 상기 제2신경망을 훈련시키는 명령들은,
상기 제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.
제5항에 있어서, 상기 세일리언시 맵을 이용한 인지적 비디오 전처리 시스템은,
상기 양자화 유닛로부터 출력되는 양자화된 변환 계수들을 수신하여 엔트로피를 계산하는 명령들을 더 포함하는 세일리언시 맵을 이용한 인지적 비디오 전처리 시스템.















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.















KR1020220089648A 2022-07-20 2022-07-20 Method and system for preprocessing cognitive video using saliency map KR102471796B1 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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