KR20240035209A - 비디오 처리 장치 및 방법 - Google Patents
비디오 처리 장치 및 방법 Download PDFInfo
- Publication number
- KR20240035209A KR20240035209A KR1020220114399A KR20220114399A KR20240035209A KR 20240035209 A KR20240035209 A KR 20240035209A KR 1020220114399 A KR1020220114399 A KR 1020220114399A KR 20220114399 A KR20220114399 A KR 20220114399A KR 20240035209 A KR20240035209 A KR 20240035209A
- Authority
- KR
- South Korea
- Prior art keywords
- frame
- generating
- residual
- reference frame
- processor
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000033001 locomotion Effects 0.000 claims abstract description 209
- 239000013598 vector Substances 0.000 claims description 118
- 230000003287 optical effect Effects 0.000 claims description 74
- 238000003672 processing method Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 9
- 238000013528 artificial neural network Methods 0.000 description 19
- 230000015654 memory Effects 0.000 description 18
- 230000006835 compression Effects 0.000 description 14
- 238000007906 compression Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 210000002569 neuron Anatomy 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 239000002071 nanotube Substances 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 210000000225 synapse Anatomy 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100009348 Mus musculus Depp1 gene Proteins 0.000 description 1
- 101100009350 Rattus norvegicus Depp gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 239000002775 capsule Substances 0.000 description 1
- 238000004138 cluster model Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000009413 insulation Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005442 molecular electronic Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- 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
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
비디오 처리 장치 및 방법이 개시된다. 일 실시예에 따른 비디오 처리 장치는, 비디오를 구성하는 현재 프레임(current frame) 및 상기 비디오의 이전 시점에 기초하여 생성된 기준 프레임(reference frame)을 수신하는 수신기와, 상기 기준 프레임에 기초하여 클러스터링을 수행함으로써 생성된 복수의 클러스터를 이용하여 복수의 클러스터 맵을 생성하고, 상기 복수의 클러스터 맵에 기초하여 모션 보상을 수행함으로써 예측 프레임을 생성하고, 상기 현재 프레임 및 상기 예측 프레임에 기초하여 디코딩을 수행함으로써 디코딩된 프레임을 생성하는 프로세서를 포함한다.
Description
실시예들은 비디오 처리 장치 및 방법에 관한 것이다.
비디오 압축률의 한계를 넘기 위해서, 딥러닝 기술을 이용한 비디오 압축 기술이 연구되고 있다.
종래의 비디오 압축 방식들은 연속된 프레임의 시간적 중복(temporal redundancy)를 제거하기 위해 인코더에서 이전까지 송신하거나 디코더에서 수신한 프레임과 현재 전송할 프레임 간의 모션 정보에 기초한 모션 보상 기술을 이전까지 송신한 프레임에 적용하였다. 이를 통해, 현재 프레임의 예측 프레임을 만들고 예측 프레임과 현재 프레임 간의 레지듀얼만을 인코딩하여 전달함으로써 전송할 비디오의 용량을 감소시켰다.
하지만, 종래의 방식은 픽셀 별 옵티컬 플로우를 디코더로 전달해야하는 비용이 추가로 발생하여 전송할 데이터가 커지게 된다. 또한, 다양한 객체(object)가 복잡한 형태를 가지는 코딩 유닛에 대응하는 것이 어렵고, 파라미터 튜닝에 있어 한계를 가진다.
일 실시예에 따른 비디오 처리 장치는, 비디오를 구성하는 현재 프레임(current frame) 및 상기 비디오의 이전 시점에 기초하여 생성된 기준 프레임(reference frame)을 수신하는 수신기와, 상기 기준 프레임에 기초하여 클러스터링을 수행함으로써 생성된 복수의 클러스터를 이용하여 복수의 클러스터 맵을 생성하고, 상기 복수의 클러스터 맵에 기초하여 모션 보상을 수행함으로써 예측 프레임을 생성하고, 상기 현재 프레임 및 상기 예측 프레임에 기초하여 디코딩을 수행함으로써 디코딩된 프레임을 생성하는 프로세서를 포함한다.
상기 기준 프레임은, 이전 시점의 디코딩된 프레임에 기초하여 생성될 수 있다.
상기 프로세서는, 상기 기준 프레임, 상기 현재 프레임 및 상기 복수의 클러스터 맵에 기초하여 상기 복수의 클러스터에 대응하는 복수의 모션 벡터를 추정할 수 있다.
상기 프로세서는, 상기 복수의 클러스터 맵 및 상기 복수의 모션 벡터에 기초하여 상기 기준 프레임을 보상함으로써 예측 프레임을 생성할 수 있다.
상기 프로세서는, 상기 복수의 모션 벡터의 합을 이용하여 상기 기준 프레임을 보상하거나, 상기 복수의 클러스터 맵 및 상기 복수의 모션 벡터에 기초하여 와핑(warping)을 수행함으로써 픽셀 와이즈 모션 벡터를 이용하여 상기 기준 프레임을 보상할 수 있다.
상기 프로세서는, 상기 기준 프레임에 기초하여 클러스터링을 위한 할당 확률을 계산하고, 상기 기준 프레임 및 상기 현재 프레임에 기초하여 옵티컬 플로우를 계산하고, 상기 할당 확률 및 상기 옵티컬 플로우에 기초하여 상기 복수의 클러스터의 대표 모션 벡터를 생성할 수 있다.
상기 프로세서는, 상기 할당 확률 및 상기 옵티컬 플로우에 기초하여 상기 복수의 클러스터에 대응하는 옵티컬 플로우의 평균을 계산하고, 상기 평균 및 상기 복수의 클러스터에 할당된 픽셀에 대응하는 옵티컬 플로우의 차이에 기초하여 상기 할당 확률의 정확도를 계산할 수 있다.
상기 프로세서는, 상기 현재 프레임 및 상기 예측 프레임에 기초하여 레지듀얼(residual)을 생성하고, 상기 레지듀얼을 인코딩함으로써 인코딩된 레지듀얼을 생성하고, 상기 인코딩된 레지듀얼을 디코딩함으로써 디코딩된 레지듀얼을 생성할 수 있다.
상기 프로세서는, 상기 예측 프레임 및 상기 디코딩된 레지듀얼에 기초하여 상기 디코딩된 프레임을 생성할 수 있다.
상기 프로세서는, 상기 기준 프레임, 상기 현재 프레임 및 상기 복수의 클러스터 맵에 기초하여 상기 복수의 클러스터에 대응하는 제1 모션 벡터를 생성하고, 상기 복수의 클러스터에 대응하는 할당 확률 및 상기 제1 모션 벡터에 기초하여 픽셀에 대응하는 제2 모션 벡터를 생성하고, 상기 기준 프레임, 상기 현재 프레임 및 상기 제2 모션 벡터에 기초하여 모션 레지듀얼을 계산하고, 상기 모션 레지듀얼 및 상기 제2 모션 벡터에 기초하여 상기 모션 보상을 수행함으로써 상기 예측 프레임을 생성할 수 있다.
일 실시예에 따른 비디오 처리 방법은, 비디오를 구성하는 현재 프레임(current frame) 및 상기 비디오의 이전 시점에 기초하여 생성된 기준 프레임(reference frame)을 수신하는 단계와, 상기 기준 프레임에 기초하여 클러스터링을 수행함으로써 생성된 복수의 클러스터를 이용하여 복수의 클러스터 맵을 생성하는 단계와, 상기 복수의 클러스터 맵에 기초하여 모션 보상을 수행함으로써 예측 프레임을 생성하는 단계와, 상기 현재 프레임 및 상기 예측 프레임에 기초하여 디코딩을 수행함으로써 디코딩된 프레임을 생성하는 단계를 포함한다.
상기 기준 프레임은, 이전 시점의 디코딩된 프레임에 기초하여 생성될 수 있다.
상기 예측 프레임을 생성하는 단계는, 상기 기준 프레임, 상기 현재 프레임 및 상기 복수의 클러스터 맵에 기초하여 상기 복수의 클러스터에 대응하는 복수의 모션 벡터를 추정하는 단계를 포함할 수 있다.
상기 예측 프레임을 생성하는 단계는, 상기 복수의 클러스터 맵 및 상기 복수의 모션 벡터에 기초하여 상기 기준 프레임을 보상함으로써 예측 프레임을 생성하는 단계를 포함할 수 있다.
상기 예측 프레임을 생성하는 단계는, 상기 복수의 모션 벡터의 합을 이용하여 상기 기준 프레임을 보상하는 단계, 또는 상기 복수의 클러스터 맵 및 상기 복수의 모션 벡터에 기초하여 와핑(warping)을 수행함으로써 픽셀 와이즈 모션 벡터를 이용하여 상기 기준 프레임을 보상하는 단계를 포함할 수 있다.
상기 복수의 클러스터 맵을 생성하는 단계는, 상기 기준 프레임에 기초하여 클러스터링을 위한 할당 확률을 계산하는 단계와, 상기 기준 프레임 및 상기 현재 프레임에 기초하여 옵티컬 플로우를 계산하는 단계와, 상기 할당 확률 및 상기 옵티컬 플로우에 기초하여 상기 복수의 클러스터의 대표 모션 벡터를 생성하는 단계를 포함할 수 있다.
상기 복수의 클러스터 맵을 생성하는 단계는, 상기 할당 확률 및 상기 옵티컬 플로우에 기초하여 상기 복수의 클러스터에 대응하는 옵티컬 플로우의 평균을 계산하는 단계와, 상기 평균 및 상기 복수의 클러스터에 할당된 픽셀에 대응하는 옵티컬 플로우의 차이에 기초하여 상기 할당 확률의 정확도를 계산하는 단계를 포함할 수 있다.
상기 디코딩된 프레임을 생성하는 단계는, 상기 현재 프레임 및 상기 예측 프레임에 기초하여 레지듀얼(residual)을 생성하는 단계와, 상기 레지듀얼을 인코딩함으로써 인코딩된 레지듀얼을 생성하는 단계와, 상기 인코딩된 레지듀얼을 디코딩함으로써 디코딩된 레지듀얼을 생성하는 단계를 포함할 수 있다.
상기 디코딩된 프레임을 생성하는 단계는, 상기 예측 프레임 및 상기 디코딩된 레지듀얼에 기초하여 상기 디코딩된 프레임을 생성하는 단계를 더 포함할 수 있다.
상기 예측 프레임을 생성하는 단계는, 상기 기준 프레임, 상기 현재 프레임 및 상기 복수의 클러스터 맵에 기초하여 상기 복수의 클러스터에 대응하는 제1 모션 벡터를 생성하는 단계와, 상기 복수의 클러스터에 대응하는 할당 확률 및 상기 제1 모션 벡터에 기초하여 픽셀에 대응하는 제2 모션 벡터를 생성하는 단계와, 상기 기준 프레임, 상기 현재 프레임 및 상기 제2 모션 벡터에 기초하여 모션 레지듀얼을 계산하는 단계와, 상기 모션 레지듀얼 및 상기 제2 모션 벡터에 기초하여 상기 모션 보상을 수행함으로써 상기 예측 프레임을 생성하는 단계를 포함할 수 있다.
도 1은 일 실시예에 따른 비디오 처리 장치의 개략적인 블록도를 나타낸다.
도 2는 도 1에 도시된 비디오 처리 장치의 동작을 나타낸다.
도 3은 클러스터 네트워크 및 옵티컬 플로우 네트워크의 동작을 설명하기 위한 도면이다.
도 4는 도 1에 도시된 비디오 처리 장치의 구현의 일 예를 나타낸다.
도 5는 비디오 처리 동작의 일 예를 나타낸다.
도 6은 클러스터 와이즈 모션 보상 모듈의 동작을 설명하기 위한 도면이다.
도 7a는 현재 프레임의 일 예를 나타낸다.
도 7b는 기준 프레임의 일 예를 나타낸다.
도 7c는 픽셀 와이즈 옵티컬 플로우의 일 예를 나타낸다.
도 7d는 클러스터 맵의 일 예를 나타낸다.
도 7e는 클러스터 와이즈 옵티컬 플로우를 이용한 클러스터 맵의 일 예를 나타낸다.
도 8a는 현재 프레임의 일 예를 나타낸다.
도 8b는 기준 프레임의 일 예를 나타낸다.
도 8c는 픽셀 와이즈 옵티컬 플로우의 일 예를 나타낸다.
도 8d는 클러스터 맵의 일 예를 나타낸다.
도 8e는 클러스터 와이즈 옵티컬 플로우를 이용한 클러스터 맵의 일 예를 나타낸다.
도 9는 도 1에 도시된 비디오 처리 장치의 구현의 다른 예를 나타낸다.
도 10은 도 1에 도시된 비디오 처리 장치의 구현의 또 다른 예를 나타낸다.
도 11은 도 5는 비디오 처리 동작의 다른 예를 나타낸다.
도 12는 도 1에 도시된 비디오 처리 장치의 동작의 흐름도를 나타낸다.
도 2는 도 1에 도시된 비디오 처리 장치의 동작을 나타낸다.
도 3은 클러스터 네트워크 및 옵티컬 플로우 네트워크의 동작을 설명하기 위한 도면이다.
도 4는 도 1에 도시된 비디오 처리 장치의 구현의 일 예를 나타낸다.
도 5는 비디오 처리 동작의 일 예를 나타낸다.
도 6은 클러스터 와이즈 모션 보상 모듈의 동작을 설명하기 위한 도면이다.
도 7a는 현재 프레임의 일 예를 나타낸다.
도 7b는 기준 프레임의 일 예를 나타낸다.
도 7c는 픽셀 와이즈 옵티컬 플로우의 일 예를 나타낸다.
도 7d는 클러스터 맵의 일 예를 나타낸다.
도 7e는 클러스터 와이즈 옵티컬 플로우를 이용한 클러스터 맵의 일 예를 나타낸다.
도 8a는 현재 프레임의 일 예를 나타낸다.
도 8b는 기준 프레임의 일 예를 나타낸다.
도 8c는 픽셀 와이즈 옵티컬 플로우의 일 예를 나타낸다.
도 8d는 클러스터 맵의 일 예를 나타낸다.
도 8e는 클러스터 와이즈 옵티컬 플로우를 이용한 클러스터 맵의 일 예를 나타낸다.
도 9는 도 1에 도시된 비디오 처리 장치의 구현의 다른 예를 나타낸다.
도 10은 도 1에 도시된 비디오 처리 장치의 구현의 또 다른 예를 나타낸다.
도 11은 도 5는 비디오 처리 동작의 다른 예를 나타낸다.
도 12는 도 1에 도시된 비디오 처리 장치의 동작의 흐름도를 나타낸다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만, '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 예를 들어, '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다. 또한, '~부'는 하나 이상의 프로세서를 포함할 수 있다.
이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 일 실시예에 따른 비디오 처리 장치의 개략적인 블록도를 나타낸다.
도 1을 참조하면, 비디오 처리 장치(10)는 비디오(video)를 처리할 수 있다. 비디오는 복수의 이미지 또는 프레임(frame)으로 구성될 수 있다.
비디오 처리 장치(10)는 비디오의 압축을 수행할 수 있다. 비디오 처리 장치(10)는 압축된 비디오의 압축을 해제할 수 있다. 비디오 처리 장치(10)는 비디오의 인코딩(encoding) 및/또는 디코딩(decoding)을 수행할 수 있다.
비디오 처리 장치(10)는 뉴럴 네트워크를 이용하여 비디오를 처리할 수 있다. 뉴럴 네트워크는 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다.
뉴럴 네트워크의 뉴런은 가중치 또는 바이어스의 조합을 포함할 수 있다. 뉴럴 네트워크는 하나 이상의 뉴런 또는 노드로 구성된 하나 이상의 레이어(layer)를 포함할 수 있다. 뉴럴 네트워크는 뉴런의 가중치를 학습을 통해 변화시킴으로써 임의의 입력으로부터 예측하고자 하는 결과를 추론할 수 있다.
뉴럴 네트워크는 심층 뉴럴 네트워크 (Deep Neural Network)를 포함할 수 있다. 뉴럴 네트워크는 CNN(Convolutional Neural Network), RNN(Recurrent Neural Network), 퍼셉트론(perceptron), 다층 퍼셉트론(multilayer perceptron), FF(Feed Forward), RBF(Radial Basis Network), DFF(Deep Feed Forward), LSTM(Long Short Term Memory), GRU(Gated Recurrent Unit), AE(Auto Encoder), VAE(Variational Auto Encoder), DAE(Denoising Auto Encoder), SAE(Sparse Auto Encoder), MC(Markov Chain), HN(Hopfield Network), BM(Boltzmann Machine), RBM(Restricted Boltzmann Machine), DBN(Depp Belief Network), DCN(Deep Convolutional Network), DN(Deconvolutional Network), DCIGN(Deep Convolutional Inverse Graphics Network), GAN(Generative Adversarial Network), LSM(Liquid State Machine), ELM(Extreme Learning Machine), ESN(Echo State Network), DRN(Deep Residual Network), DNC(Differentiable Neural Computer), NTM(Neural Turning Machine), CN(Capsule Network), KN(Kohonen Network) 및 AN(Attention Network)를 포함할 수 있다.
비디오 처리 장치(10)는 PC(personal computer), 데이터 서버, 또는 휴대용 장치 내에 구현될 수 있다.
휴대용 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), e-북(e-book), 또는 스마트 디바이스(smart device)로 구현될 수 있다. 스마트 디바이스는 스마트 와치(smart watch), 스마트 밴드(smart band), 또는 스마트 링(smart ring)으로 구현될 수 있다.
비디오 처리 장치(10)는 수신기(100) 및 프로세서(200)를 포함한다. 비디오 처리 장치(10)는 메모리(300)를 더 포함할 수 있다.
수신기(100)는 수신 인터페이스를 포함할 수 있다. 수신기(100)는 비디오를 구성하는 현재 프레임(current frame) 및 비디오의 이전 시점에 기초하여 생성된 기준 프레임(reference frame)을 수신할 수 있다. 수신기(100)는 현재 프레임 및 기준 프레임을 프로세서(200)로 출력할 수 있다.
프로세서(200)는 메모리(300)에 저장된 데이터를 처리할 수 있다. 프로세서(200)는 메모리(300)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(200)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.
"프로세서(200)는"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.
예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.
프로세서(200)는 기준 프레임에 기초하여 클러스터링을 수행함으로써 생성된 복수의 클러스터를 이용하여 복수의 클러스터 맵을 생성할 수 있다. 기준 프레임은 이전 시점의 디코딩된 프레임에 기초하여 생성될 수 있다.
프로세서(200)는 기준 프레임에 기초하여 클러스터링을 위한 할당 확률(assignment probability)을 계산할 수 있다. 프로세서(200)는 기준 프레임 및 현재 프레임에 기초하여 옵티컬 플로우를 계산할 수 있다. 프로세서(200)는 할당 확률 및 옵티컬 플로우에 기초하여 복수의 클러스터의 대표 모션 벡터를 생성할 수 있다.
프로세서(200)는 할당 확률 및 옵티컬 플로우에 기초하여 복수의 클러스터에 대응하는 옵티컬 플로우의 평균을 계산할 수 있다. 프로세서(200)는 평균 및 복수의 클러스터에 할당된 픽셀에 대응하는 옵티컬 플로우의 차이에 기초하여 할당 확률의 정확도를 계산할 수 있다. 할당 확률의 정확도를 계산하는 과정은 도 3을 참조하여 자세하게 설명한다.
프로세서(200)는 기준 프레임, 현재 프레임 및 복수의 클러스터 맵에 기초하여 복수의 클러스터에 대응하는 복수의 모션 벡터를 추정할 수 있다.
프로세서(200)는 복수의 클러스터 맵에 기초하여 모션 보상을 수행함으로써 예측 프레임을 생성할 수 있다. 프로세서(200)는 복수의 클러스터 맵 및 복수의 모션 벡터에 기초하여 기준 프레임을 보상함으로써 예측 프레임을 생성할 수 있다.
프로세서(200)는 복수의 모션 벡터의 합을 이용하여 기준 프레임을 보상할 수 있다. 또는, 프로세서(200)는 복수의 클러스터 맵 및 복수의 모션 벡터에 기초하여 와핑(warping)을 수행함으로써 픽셀 와이즈 모션 벡터를 이용하여 기준 프레임을 보상할 수 있다.
프로세서(200)는 현재 프레임 및 예측 프레임에 기초하여 디코딩을 수행함으로써 디코딩된 프레임을 생성할 수 있다.
프로세서(200)는 현재 프레임 및 상기 예측 프레임에 기초하여 레지듀얼(residual)을 생성할 수 있다. 프로세서(200)는 레지듀얼을 인코딩함으로써 인코딩된 레지듀얼을 생성할 수 있다. 프로세서(200)는 인코딩된 레지듀얼을 디코딩함으로써 디코딩된 레지듀얼을 생성할 수 있다.
프로세서(200)는 예측 프레임 및 디코딩된 레지듀얼에 기초하여 디코딩된 프레임을 생성할 수 있다.
프로세서(200)는 기준 프레임, 현재 프레임 및 복수의 클러스터 맵에 기초하여 복수의 클러스터에 대응하는 제1 모션 벡터를 생성할 수 있다. 프로세서(200)는 복수의 클러스터에 대응하는 할당 확률 및 제1 모션 벡터에 기초하여 픽셀에 대응하는 제2 모션 벡터를 생성할 수 있다.
프로세서(200)는 기준 프레임, 현재 프레임 및 제2 모션 벡터에 기초하여 모션 레지듀얼을 계산할 수 있다. 프로세서(200)는 모션 레지듀얼 및 제2 모션 벡터에 기초하여 모션 보상을 수행함으로써 예측 프레임을 생성할 수 있다.
메모리(300)는 연산을 위한 데이터 또는 연산 결과를 저장할 수 있다. 메모리(300)는 프로세서(200)에 의해 실행가능한 인스트럭션들(또는 프로그램)을 저장할 수 있다. 예를 들어, 인스트럭션들은 프로세서의 동작 및/또는 프로세서의 각 구성의 동작을 실행하기 위한 인스트럭션들을 포함할 수 있다.
메모리(300)는 휘발성 메모리 장치 또는 비휘발성 메모리 장치로 구현될 수 있다.
휘발성 메모리 장치는 DRAM(dynamic random access memory), SRAM(static random access memory), T-RAM(thyristor RAM), Z-RAM(zero capacitor RAM), 또는 TTRAM(Twin Transistor RAM)으로 구현될 수 있다.
비휘발성 메모리 장치는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시(flash) 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque(STT)-MRAM), Conductive Bridging RAM(CBRAM), FeRAM(Ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(Resistive RAM(RRAM)), 나노 튜브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM(PoRAM)), 나노 부유 게이트 메모리(Nano Floating Gate Memory(NFGM)), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자(Molecular Electronic Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.
도 2는 도 1에 도시된 비디오 처리 장치의 동작을 나타낸다.
도 2를 참조하면, 프로세서(예: 도 1의 프로세서(200))는 딥러닝을 이용한 비디오 압축을 수행할 수 있다. 구체적으로, 프로세서(200)는 뉴럴 네트워크를 이용한 클러스터링을 수행함으로써 비디오의 모션(motion) 정보를 압축하여 전송할 수 있다.
비디오의 프레임에서 인접한 픽셀들은 비슷한 크기와 방향성을 가질 수 있다. 특히, 동일한 객체(object) 내의 인접 픽셀들은 유사도가 클 수 있다. 프로세서(200)는 인접한 픽셀의 모션이 비슷한 크기와 방향성을 가진다는 점을 고려하여, 비슷한 크기와 방향성을 가지는 픽셀들을 클러스터로 묶어서 대표적인 모션 정보만 전달함으로써 비디오의 압축 성능을 향상시키고, 데이터 전송의 오버헤드(overhead)를 감소시킬 수 있다. 프로세서(200)는 클러스터 단위로 모션 보상을 수행하여 압축 성능을 향상시킬 수 있다.
프로세서(200)는 입력된 비디오의 프레임에 뉴럴 네트워크를 이용한 클러스터링을 수행하여 비디오 압축을 수행할 수 있다. 프로세서(200)는 P-프레임(predicted frame), B-프레임(bidirectional frame) 또는 I-프레임(intra frame)과 같이 모션 정보를 이용하는 비디오 압축을 실행할 수 있다.
도 2의 예시에서, 프로세서(200)는 인코더 및 디코더(210)를 포함할 수 있다. 인코더는 디코더(210)를 포함할 수 있다. 디코더(210)는 클러스터 네트워크(211), 와핑 네트워크(213), 레지듀얼 디코더(residual decoder)(215)를 포함할 수 있다. 인코더는 옵티컬 플로우 네트워크(233), 클러스터 와이즈 MV(Motion Vector) 계산 모듈(235), 레지듀얼 인코더(237) 및 비트 레이트 추정 네트워크(239)를 포함할 수 있다.
인코더는 압축해서 전송하고자 하는 현재 프레임(231)과 이전 시점에 디코딩해 둔 프레임 버퍼에 저장된 프레임(예: 기준 프레임) 사이의 픽셀 와이즈 모션 정보를 옵티컬 플로우 네트워크(233)를 이용하여 획득할 수 있다.
클러스터 네트워크(211)는 복수의 클러스터를 생성할 수 있다. 도 2의 예시에서, 클러스터의 수는 100 개이지만, 실시예에 따라 상이한 개수의 클러스터가 생성될 수 있다. 클러스터 네트워크(211)는 기준 프레임을 입력으로 클러스터링 할당 확률(또는, 할당 확률)을 추정할 수 있다. 할당 확률은 프레임을 구성하는 각각의 픽셀이 임의의 클러스터로 할당될 확률을 의미할 수 있다.
프로세서(200)는 클러스터 네트워크(211)를 비지도 학습(unsupervised learning) 방식으로 학습시킬 수 있다. 클러스터 네트워크(211)의 학습 과정은 도 3을 참조하여 자세하게 설명한다.
클러스터 와이즈 MV 계산 모듈(235)은 픽셀 와이즈 모션 정보 및 할당 확률을 이용하여 클러스터 단위의 대표 모션 벡터를 생성할 수 있다. 예를 들어, 클러스터 와이즈 MV 계산 모듈(235)은 동일한 클러스터에 할당된 픽셀의 모션의 평균값을 이용하여 모션 벡터를 생성할 수 있다. 도 2의 예시에서, 모션 벡터의 수는 36 개이지만, 실시예에 따라 상이한 개수의 모션 벡터가 사용될 수 있다.
와핑 네트워크(213)는 클러스터 단위의 모션 정보를 이용하여 기준 프레임을 현재 프레임(231)과 유사해지도록 와핑을 수행할 수 있다. 와핑 네트워크(213)는 와핑을 통해 예측 프레임(predicted frame)을 생성할 수 있다. 와핑 네트워크(213)는 와핑을 통해 통신 채널(channel)로 전달할 정보에 포함된 레지듀얼(residual)을 감소시켜 전송할 정보량을 감소시킬 수 있다.
인코더는 레지듀얼 인코더(237)을 이용하여 레지듀얼을 더욱 압축된 형태인 레이턴트 벡터(latent vector)로 변형할 수 있다. 인코더는 레이턴트 벡터를 미리 생성한 클러스터 와이즈 모션 정보와 함께 디코더(210)로 전송할 수 있다.
레지듀얼 디코더(215)는 다음 시점의 기준 프레임으로 사용하기 위해 레이턴트 벡터로 변형되었던 레지듀얼을 복원할 수 있다. 디코더(210)는 복원된 레지듀얼과 와핑 네트워크(213)의 출력인 예측 프레임을 더함으로써 디코딩된 프레임을 생성할 수 있다. 디코더(210)는 디코딩된 프레임을 디코딩된 프레임 버퍼(217)에 저장할 수 있다. 데이터의 송신 및 수신의 효율을 높이기 위해 로스리스 코딩(lossless coding)이 추가 압축에 사용될 수 있다. 예를 들어, 엔트로피 코딩(entropy coding)과 같은 코딩이 레이턴트 벡터 및 클러스터 와이즈 모션 정보의 추가 압축에 사용될 수 있다.
디코더(210)의 입력은 레지듀얼의 레이턴트 벡터 및 클러스터 와이즈 모션 정보를 포함할 수 있다. 디코더(210)는 자체적으로 저장한 디코딩된 프레임 버퍼(217)로부터 기준 프레임을 전달받을 수 있다. 이상적인 통신 상황에서 인코더의 기준 프레임과 디코더의 기준 프레임은 동일할 수 있다.
디코더(210)는 기준 프레임을 클러스터 네트워크(211)의 입력으로 사용하여 할당 확률을 획득할 수 있다. 디코더(210)는 전송받은 클러스터 단위의 대표 모션 정보(예: 클러스터 와이즈 모션 정보), 픽셀 와이즈 클러스터링 확률(예: 할당 확률) 및 기준 프레임을 와핑 네트워크(213)의 입력으로 이용하여 현재 프레임(231)에 대응하는 예측 프레임(예: P 프레임 예측)을 생성할 수 있다.
디코더(210)는 레지듀얼의 레이턴트 벡터를 레지듀얼 디코더(215)를 통해 레지듀얼 이미지로 변환하고, 미리 생성한 예측 프레임에 더함으로써 디코딩된 프레임을 생성하여 사용자에게 제공할 수 있다.
도 3은 클러스터 네트워크 및 옵티컬 플로우 네트워크의 동작을 설명하기 위한 도면이다.
도 3을 참조하면, 프로세서(예: 도 1의 프로세서(200))는 하나 이상의 뉴럴 네트워크를 이용하여 클러스터링을 수행할 수 있다. 프로세서(200)는 클러스터링을 위한 뉴럴 네트워크를 학습시킬 수 있다.
하나 이상의 뉴럴 네트워크는 클러스터 네트워크(311) 및 옵티컬 플로우 네트워크(331)를 포함할 수 있다. 하나 이상의 뉴럴 네트워크는 와핑 네트워크(예: 도 2의 와핑 네트워크(213)), 레지듀얼 인코더(예: 도 2의 레지듀얼 인코더(237)), 레지듀얼 디코더(예: 도 2의 레지듀얼 디코더(215)) 및 비트 레이트 추정 네트워크(예: 도 2의 비트 레이트 추정 네트워크(239))를 더 포함할 수 있다.
클러스터 네트워크(311)는 클러스터링 모듈(310)에 포함될 수 있다. 옵티컬 플로우 네트워크(331)는 클러스터 와이즈 모션 추정 모듈(330)에 포함될 수 있다.
프로세서(200)는 하나 이상의 뉴럴 네트워크를 학습시킬 수 있다. 프로세서(200)는 하나 이상의 뉴럴 네트워크를 지도 학습(supervised learning) 또는 비지도 학습 방식으로 학습시킬 수 있다.
프로세서(200)는 옵티컬 플로우 네트워크(331)의 입력으로 사용되는 서로 다른 시점의 두 이미지(예: 기준 프레임 및 현재 프레임) 사이의 와핑 에러(warping error)를 최소화하는 옵티컬 플로우를 추정하도록 손실 함수를 정의할 수 있다. 또는, 프로세서(200)는 옵티컬 플로우 레이블 데이터셋을 이용하여 직접 지도(supervision)을 제공함으로써 옵티컬 플로우 네트워크(331)를 학습시킬 수 있다.
프로세서(200)는 셀프 클러스터링 손실(self-clustering loss)을 정의하여 클러스터 네트워크(331)의 학습에 사용할 수 있다. 프로세서(200)는 프로세서(200)는 GMM(Gaussian Mixture Model)에 기반한 라이클리후드 함수(likelihood function)를 이용하여 클러스터의 할당 확률이 얼마나 옵티컬 플로우 네트워크(331)의 옵티컬 플로우를 잘 모델링하는지를 정량화할 수 있다. 프로세서(200)는 할당 확률의 정확도를 계산함으로써 모델링의 정도를 정량화할 수 있다.
프로세서(200)는 할당 확률 및 옵티컬 플로우에 기초하여 복수의 클러스터에 대응하는 옵티컬 플로우의 평균을 계산할 수 있다. 프로세서(200)는 평균 및 복수의 클러스터에 할당된 픽셀에 대응하는 옵티컬 플로우의 차이에 기초하여 할당 확률의 정확도를 계산할 수 있다. 구체적으로, 프로세서(200)는 수학식 1 내지 4를 이용하여 할당 확률의 정확도를 계산할 수 있다.
[수학식 1]
[수학식 2]
[수학식 3]
[수학식 4]
여기서, 는 각 클러스터의 중심에 대응하는 옵티컬 플로우의 평균을 의미하고, γk는 할당 확률을 의미하고, x는 옵티컬 플로우를 의미할 수 있다. N은 전체 픽셀 개수이고, Nk 및 pik는 GMM에서 사용하는 파라미터이며, Nk는 각 픽셀이 클러스터 k에 할당될 확률들의 총 합을 의미하고, pik는 GMM에서 각 Guassian의 상대적 비율(예: pik의 총 합이 1)을 의미할 수 있다.
프로세서(200)는 각 클러스터 중심에 대응하는 옵티컬 플로우의 평균으로부터 현재 클러스터에 할당된 픽셀의 옵티컬 플로우가 얼마나 비슷한 값을 가지는지를 기준으로 현재 클러스터 네트워크(311)가 추정한 할당 확률의 정확도를 계산할 수 있다. 클러스터에 할당된 픽셀의 옵티컬 플로우가 얼마나 비슷한 값을 가지는 지는 픽셀이 분포된 클러스터에서 샘플이 발생할 확률을 의미할 수 있다.
프로세서(200)는 기준 프레임을 입력으로 하여 별도의 레이블 데이터 없이 클러스터 네트워크(311)를 학습시킬 수 있다.
도 4는 도 1에 도시된 비디오 처리 장치의 구현의 일 예를 나타낸다.
도 4를 참조하면, 프로세서(예: 도 1의 프로세서(200))는 클러스터링 모듈(410), 클러스터 와이즈 모션 추정 모듈(420), 클러스터 와이즈 모션 보상 모듈(430), 레지듀얼 인코더(440) 및 레지듀얼 디코더(450)를 포함할 수 있다. 메모리(예: 도 1의 메모리(300))는 디코딩된 프레임 버퍼(460)를 포함할 수 있다.
클러스터링 모듈(410)은 기준 프레임으로부터 클러스터링 맵을 추정할 수 있다. 클러스터링 맵은 클러스터 와이즈 모션 추정 모듈(420)의 모션 추정 및 클러스터 와이즈 모션 보상 모듈(430)의 모션 보상에 사용될 수 있다.
클러스터 와이즈 모션 추정 모듈(420)은 기준 프레임, 현재 프레임 및 클러스터 맵을 입력 받아 클러스터 단위로 모션 벡터를 추정할 수 있다. 클러스터 와이즈 모션 추정 모듈(420)은 픽셀 와이즈 모션 추정 네트워크 및 클러스터링 네트워크를 포함할 수 있다. 와이즈 모션 추정 모듈(420)은 픽셀 와이즈 모션 추정 네트워크 및 클러스터링 네트워크의 출력을 이용하여 클러스터 단위의 모션 벡터를 계산할 수 있다.
클러스터 와이즈 모션 보상 모듈(430)은 기준 프레임, 모션 벡터(예: 클러스터 단위 모션 벡터) 및 클러스터 맵에 기초하여 이전 시점의 기준 프레임을 현재 프레임과 유사해지도록 변형함으로써 모션 보상된 프레임(예: 예측 프레임)을 생성할 수 있다.
레지듀얼 인코더(440)는 레지듀얼을 입력으로 수신하여 통신 채널로 전달하기 위한 비트 스트림을 생성할 수 있다. 레지듀얼 디코더(450)는 비트 스트림을 다시 레지듀얼로 복원할 수 있다. 디코딩된 프레임은 다음 시점에 사용될 수 있도록 디코딩된 프레임 버퍼(460)에 저장될 수 있다.
도 5는 비디오 처리 동작의 일 예를 나타내고, 도 6은 클러스터 와이즈 모션 보상 모듈의 동작을 설명하기 위한 도면이다.
도 5 및 도 6을 참조하면, 프로세서(예: 도 1의 프로세서(200))는 디코더(510)와 인코더(530)를 이용하여 비디오의 압축 및/또는 비디오의 압축 해제를 수행할 수 있다.
인코더(530)는 디코더(510)를 포함할 수 있다. 디코더(510)는 클러스터링 모듈(511), 클러스터 와이즈 모션 보상 모듈(513) 및 레지듀얼 디코더(515)를 포함할 수 있다. 인코더(530)는 클러스터 와이즈 모션 추정 모듈(531) 및 레지듀얼 인코더(533)을 포함할 수 있다.
인코더(530)는 기준 프레임을 입력으로 이용하여 클러스터링 모듈(511)을 이용하여 클러스터링을 수행할 수 있다. 클러스터링 모듈(511)은 클러스터 맵에 기초하여 클러스터 단위의 모션 벡터를 계산할 수 있다. 클러스터링 모듈(511)은 모션 벡터를 각 클러스터에 컬러 매핑함으로써 클러스터 와이즈 옵티컬 플로우를 이용한 클러스터 맵을 생성할 수 있다.
클러스터 맵에는 이미지 분석을 통해 복잡한 형태를 가지거나, 복잡한 움직임을 가질 것이라고 예상되는 영역(예: 텍스쳐(texture) 또는 객체의 경계(boundary))이 더 많은 클러스터로 표현될 수 있다. 즉, 복잡한 형태 또는 복잡한 움직임을 갖는 영역에 대해서는 더 세밀한 클러스터링이 수행될 수 있다.
클러스터링 모듈(511)은 자기 지도 학습(self-supervised learning) 또는 비지도 학습 방식으로 학습을 수행하는 과정에서 데이터 및 옵티컬 플로우 사이의 통계적 상관관계를 해석함으로써 현재 추정한 클러스터 와이즈 옵티컬 플로우로 픽셀 와이즈 옵티컬 플로우를 표현할 수 있다.
클러스터 와이즈 모션 보상 모듈(513)은 기준 프레임에 클러스터 단위의 와핑을 수행함으로써 예측 프레임(예: p 프레임 예측)을 생성할 수 있다. 레지듀얼 인코더(533)는 예측 프레임과 현재 프레임 사이의 차이에 해당하는 레지듀얼을 인코딩할 수 있다. 레지듀얼 디코더(515)는 예측 프레임과 디코딩된 레지듀얼을 더함으로써 디코딩된 프레임을 생성하여 디코딩된 프레임 버퍼(550)에 저장할 수 있다.
도 6의 예시와 같이, 클러스터 와이즈 모션 보상 모듈(513)은 기준 프레임 및 할당 확률(또는, 클러스터링 확률)에 기초하여 확률 가중된 기준 프레임을 생성할 수 있다. 클러스터 와이즈 모션 보상 모듈(513)은 가중된 기준 프레임에 기초하여 덧셈에 뒤따르는 클러스터 와이즈 변환(cluster-wise translation followed by summation)을 수행할 수 있다(610). 클러스터 와이즈 모션 보상 모듈(513)은 할당 확률 및 클러스터 와이즈 모션 벡터에 기초하여 덧셈에 뒤따르는 클러스터 와이즈 변환을 수행하여 가중치 맵을 생성할수 있다(630).
클러스터 와이즈 모션 보상 모듈(513)은 가중치 맵과 610의 결과에 기초하여 정규화를 수행함으로써 초기 예측 프레임(initial predicted fram)을 생성할 수 있다. 클러스터 와이즈 모션 보상 모듈(513)은 초기 예측 프레임을 연결(concatenation)하여 p 프레임 예측 네트워크에 입력함으로써 예측 프레임(예: p 프레임 예측)을 생성할 수 있다(670).
디코더(510)는 인코더(530)로부터 클러스터 와이즈 모션 벡터 및 레지듀얼의 비트 스트림을 전송받을 수 있다. 디코더(510)는 인코더(530)와 동일한 클러스터링 모듈(511) 및 기준 프레임을 이용하여 동일한 클러스터링 맵을 생성할 수 있다. 디코더(510)는 인코더(530)와 동일한 클러스터 와이즈 모션 보상 모듈(513)을 이용하여 예측 프레임(예: p 프레임 예측)을 생성할 수 있다. 디코더(510)는 인코더(530)에서 사용한 레지듀얼 디코더(515)를 통해 레지듀얼의 비트 스트림을 디코딩함으로써 레지듀얼을 재구성할 수 있다. 디코더(510)는 예측 프레임과 재구성된 레지듀얼을 더함으로써 디코딩된 프레임을 생성할 수 있다.
도 5의 예시에서, 인코더(530)가 디코더(510)를 포함하는 것으로 표현되어 있지만, 이는 실시예에 불과한 것으로, 실시예에 따라, 인코더(530)와 디코더(510)는 분리되어 존재할 수 있다.
인코더(530)는 디코더(510)를 포함하는 구조를 이용하여 디코더(510)에서 동일한 기준 프레임을 사용하는 것을 보장함으로써 인코더(530) 및 디코더(510)의 차이가 누적되는 것을 방지할 수 있다.
도 7a는 현재 프레임의 일 예를 나타내고, 도 7b는 기준 프레임의 일 예를 나타내고, 도 7c는 픽셀 와이즈 옵티컬 플로우의 일 예를 나타낸다. 도 7d는 클러스터 맵의 일 예를 나타내고, 도 7e는 클러스터 와이즈 옵티컬 플로우를 이용한 클러스터 맵의 일 예를 나타낸다.
도 8a는 현재 프레임의 일 예를 나타내고, 도 8b는 기준 프레임의 일 예를 나타내고, 도 8c는 픽셀 와이즈 옵티컬 플로우의 일 예를 나타낸다. 도 8d는 클러스터 맵의 일 예를 나타내고, 도 8e는 클러스터 와이즈 옵티컬 플로우를 이용한 클러스터 맵의 일 예를 나타낸다.
도 7a 내지 도 8e를 참조하면, 도시된 그림들은 클러스터 단위의 모션 추정 효과를 나타낼 수 있다. 프로세서(예: 도 1의 프로세서(200))는 기준 프레임으로부터 클러스터 맵을 생성할 수 있다. 클러스터 맵은 기준 프레임을 입력하여 획득한 클러스터링 모듈의 출력일 수 있다. 클러스터 맵은 기준 프레임에서 비슷한 움직임을 가질 확률이 높을 것으로 예상되는 부분을 나타낼 수 있다. 프로세서(200)는 클러스터 맵으로부터 클러스터 와이즈 옵티컬 플로우를 획득할 수 있다.
클러스터 와이즈 옵티컬 플로우는 픽셀 와이즈 옵티컬 플로우에 비하여 적은 비트(bit) 수를 가질 수 있다. 클로스터 와이즈 옵티컬 플로우는 레이턴트 공간에서 압축된 픽셀 와이즈 옵티컬 플로우에 비하여 적은 비트 수를 가질 수 있다.
프로세서(200)는 클러스터 와이즈 옵티컬 플로우를 이용한 클러스터 맵을 통해 픽셀 와이즈 옵티컬 플로우를 모사할 수 있다. 프로세서(200)는 클러스터 와이즈 옵티컬 플로우를 이용한 클러스터 맵을 이용하여 높은 압축률을 갖는 비디오 압축을 수행할 수 있다. 기준 프레임은 인코더 및 디코더가 모두 공유할 수 있어 별도의 데이터 전송이 요구되지 않을 수 있다. 프로세서(200)는 상대적으로 적은 수의 비트량을 가지는 소수의 클러스터 와이즈 옵티컬 플로우(또는, 모션 벡터)만을 전송함으로써 높은 압축률을 달성할 수 있다.
도 9는 도 1에 도시된 비디오 처리 장치의 구현의 다른 예를 나타낸다.
도 9를 참조하면, 프로세서(예: 도 1의 프로세서(200))는 클러스터링 모듈(910), 클러스터 와이즈 모션 추정 모듈(920), 클러스터 와이즈 모션 보상 모듈(930), 레지듀얼 인코더(940) 및 레지듀얼 디코더(950)를 포함할 수 있다. 메모리(예: 도 1의 메모리(300))는 디코딩된 프레임 버퍼(960)를 포함할 수 있다.
클러스터링 모듈(910)은 입력으로 단일 기준 프레임을 이용하는 것이 아니고, 이전 시점의 복수의 기준 프레임들을 이용하여 클러스터링을 수행할 수 있다. 이전 시점(예:t-1, t-2, ...)의 기준 프레임들을 추가로 사용함으로써 클러스터링 모듈(910)은 현재 기준 프레임에서 움직일 것으로 예상되는 부분을 더욱 잘 찾아내고, 더욱 정확한 클러스터 맵을 계산할 수 있다.
클러스터링 모듈(910), 클러스터 와이즈 모션 추정 모듈(920), 클러스터 와이즈 모션 보상 모듈(930), 레지듀얼 인코더(940), 레지듀얼 디코더(950) 및 디코딩된 프레임 버퍼(960)의 나머지 동작은 도 4의 클러스터링 모듈(410), 클러스터 와이즈 모션 추정 모듈(420), 클러스터 와이즈 모션 보상 모듈(430), 레지듀얼 인코더(440), 레지듀얼 디코더(450) 및 디코딩된 프레임 버퍼(460)와 동일할 수 있다.
도 10은 도 1에 도시된 비디오 처리 장치의 구현의 또 다른 예를 나타낸다.
도 10을 참조하면, 프로세서(예: 도 1의 프로세서(200))는 클러스터링 모듈(1010), 클러스터 와이즈 모션 추정 모듈(1020), 클러스터 와이즈 모션 보상 모듈(1030), 레지듀얼 인코더(1040), 레지듀얼 디코더(1050) 및 특징 추출기(1060)를 포함할 수 있다. 메모리(예: 도 1의 메모리(300))는 스토리지(1070)를 포함할 수 있다.
프로세서(200)는 디코딩된 프레임 버퍼를 이용하여 이미지를 직접 저장하지 않고, DNN(Deep Neural Network) 기반의 특징 추출기를 이용하여 각 시점의 디코딩된 프레임으로부터 특징을 추출하여 기준 특징을 업데이트하는 방식으로 모든 시점의 모든 시퀀스 데이터를 이용할 수 있다.
프로세서(200)는 클러스터링 모듈(1010), 클러스터 와이즈 모션 추정 모듈(1020) 및 클러스터 와이즈 모션 보상 모듈(1030)의 입력으로 기준 특징을 이용함으로써 이전 시점까지 누적된 정보를 모든 모듈에 전달할 수 있다. 누적된 정보를 모든 모듈에 전달함으로써 프로세서(200)는 시간에 따른 연속성을 가지는 비디오 시퀀스에 대하여 높은 성능을 달성할 수 있다.
도 11은 도 5는 비디오 처리 동작의 다른 예를 나타낸다.
도 11을 참조하면, 프로세서(예: 도 1의 프로세서(200))는 추가적인 모션 벡터를 이용하여 클러스터 와이즈 모션 벡터의 정확도를 보정할 수 있다. 디코더(1110) 또는 인코더(1130)가 전송하는 데이터는 클러스터 와이즈 모션 벡터 및 레지듀얼 모션 벡터에 대응하는 비트 스트림과 레지듀얼에 대응하는 비트 스트림을 포함할 수 있다. 클러스터 와이즈 모션 벡터는 벡터 자체 또는 전송하기 적합한 형태로 변형된 데이터일 수 있다. 프로세서(200)는 레지듀얼 모션 벡터에 대응하는 비트 스트림을 추가적으로 이용함으로써 클러스터 와이즈 모션 벡터의 정확도를 보정할 수 있다.
인코더(1130)는 디코더(1110)를 포함할 수 있다. 디코더(1110)는 클러스터링 모듈(1111), 모션 예측 모듈(1113), 모션 보상 모듈(1115), 레지듀얼 모션 디코더(1117) 및 레지듀얼 디코더(1119)를 포함할 수 있다. 인코더(1130)는 모션 추정 모듈(1131), 레지듀얼 모션 인코더(1133) 및 레지듀얼 인코더(1135)을 포함할 수 있다.
클러스터링 모듈(1111)은 도 5의 클러스터링 모듈(511)과 동일한 방식으로 클러스터링 정보(예: 할당 확률) 및 클러스터 와이즈 모션 벡터(예: 제1 모션 벡터)를 추정할 수 있다.
모션 예측 모듈(1113)은 클러스터링 정보 및 클러스터 와이즈 모션 벡터를 이용하여 예측된 픽셀 와이즈 모션 벡터(예: 제2 모션 벡터)를 생성할 수 있다. 모션 예측 모듈(1113)은 픽셀 별 클러스터에 따라 클러스터 와이즈 모션 벡터를 계산함으로써 예측된 픽셀 와이즈 모션 벡터를 생성할 수 있다. 또는, 모션 예측 모듈(1113)은 픽셀 별 클러스터에 할당될 확률과 클러스터 별 모션 벡터를 이용한 기대값을 계산함으로써 예측된 픽셀 와이즈 모션 벡터를 생성할 수 있다.
프로세서(200)는 현재 프레임 및 기준 프레임에 기초하여 획득한 원본 픽셀 와이즈 모션 벡터와 예측된 픽셀 와이즈 모션 벡터 사이의 차이인 레지듀얼 모션 벡터(예: 모션 레지듀얼)를 계산할 수 있다. 레지듀얼 모션 인코더(1133)는 레지듀얼 모션 벡터를 비트 스트림 형태로 변환하여 전송할 수 있다. 레지듀얼 모션 디코더(1117)는 비트 스트림의 형태를 레지듀얼 모션 벡터의 형태로 복원할 수 있다.
레지듀얼 모션 벡터는 원본 픽셀 와이즈 모션 벡터에서 예측 가능한 부분에 대응하는 정보량을 제거한 것이기 때문에, 원본 픽셀 와이즈 모션 벡터를 직접 압축하는 것에 비하여 더욱 효율일 수 있다.
레지듀얼 모션 인코더(1133)와 레지듀얼 인코더(1135)는 별도로 구현될 수 있다. 레지듀얼 인코더(1135)의 동작은 도 5의 레지듀얼 인코더(533)와 동일할 수 있다.
레지듀얼 모션 디코더(1117)와 레지듀얼 디코더(1119)는 별도로 구현될 수 있다. 레지듀얼 디코더(1119)의 동작은 도 5의 레지듀얼 디코더(515)와 동일할 수 있다.
프로세서(200)는 복원된 레지듀얼 모션 벡터와 예측된 픽셀 와이즈 모션 벡터를 더함으로써 최종 복원된 픽셀 와이즈 모션 벡터를 획득할 수 있다. 모션 보상 모듈(1115)은 최종 복원된 픽셀 와이즈 모션 벡터를 이용하여 모션 보상을 수행할 수 있다.
모션 보상 모듈(1115)은 최종 복원된 픽셀 와이즈 모션 벡터로 기준 프레임을 와핑할 수 있다. 또는, 모션 보상 모듈(1115)은 최종 복원된 픽셀 와이즈 모션 벡터 및 기준 프레임을 입력으로 갖는 뉴럴 네트워크를 이용하여 모션 보상을 수행할 수 있다.
도 12는 도 1에 도시된 비디오 처리 장치의 동작의 흐름도를 나타낸다.
도 12를 참조하면, 수신기(예: 도 1의 수신기(100))는 비디오를 구성하는 현재 프레임(current frame) 및 비디오의 이전 시점에 기초하여 생성된 기준 프레임(reference frame)을 수신할 수 있다(1210).
프로세서(200)는 기준 프레임에 기초하여 클러스터링을 수행함으로써 생성된 복수의 클러스터를 이용하여 복수의 클러스터 맵을 생성할 수 있다(1230). 기준 프레임은 이전 시점의 디코딩된 프레임에 기초하여 생성될 수 있다.
프로세서(200)는 기준 프레임에 기초하여 클러스터링을 위한 할당 확률(assignment probability)을 계산할 수 있다. 프로세서(200)는 기준 프레임 및 현재 프레임에 기초하여 옵티컬 플로우를 계산할 수 있다. 프로세서(200)는 할당 확률 및 옵티컬 플로우에 기초하여 복수의 클러스터의 대표 모션 벡터를 생성할 수 있다.
프로세서(200)는 할당 확률 및 옵티컬 플로우에 기초하여 복수의 클러스터에 대응하는 옵티컬 플로우의 평균을 계산할 수 있다. 프로세서(200)는 평균 및 복수의 클러스터에 할당된 픽셀에 대응하는 옵티컬 플로우의 차이에 기초하여 할당 확률의 정확도를 계산할 수 있다.
프로세서(200)는 기준 프레임, 현재 프레임 및 복수의 클러스터 맵에 기초하여 복수의 클러스터에 대응하는 복수의 모션 벡터를 추정할 수 있다.
프로세서(200)는 복수의 클러스터 맵에 기초하여 모션 보상을 수행함으로써 예측 프레임을 생성할 수 있다(1250). 프로세서(200)는 복수의 클러스터 맵 및 복수의 모션 벡터에 기초하여 기준 프레임을 보상함으로써 예측 프레임을 생성할 수 있다.
프로세서(200)는 복수의 모션 벡터의 합을 이용하여 기준 프레임을 보상할 수 있다. 또는, 프로세서(200)는 복수의 클러스터 맵 및 복수의 모션 벡터에 기초하여 와핑(warping)을 수행함으로써 픽셀 와이즈 모션 벡터를 이용하여 기준 프레임을 보상할 수 있다.
프로세서(200)는 현재 프레임 및 예측 프레임에 기초하여 디코딩을 수행함으로써 디코딩된 프레임을 생성할 수 있다(1270).
프로세서(200)는 현재 프레임 및 상기 예측 프레임에 기초하여 레지듀얼(residual)을 생성할 수 있다. 프로세서(200)는 레지듀얼을 인코딩함으로써 인코딩된 레지듀얼을 생성할 수 있다. 프로세서(200)는 인코딩된 레지듀얼을 디코딩함으로써 디코딩된 레지듀얼을 생성할 수 있다.
프로세서(200)는 예측 프레임 및 디코딩된 레지듀얼에 기초하여 디코딩된 프레임을 생성할 수 있다.
프로세서(200)는 기준 프레임, 현재 프레임 및 복수의 클러스터 맵에 기초하여 복수의 클러스터에 대응하는 제1 모션 벡터를 생성할 수 있다. 프로세서(200)는 복수의 클러스터에 대응하는 할당 확률 및 제1 모션 벡터에 기초하여 픽셀에 대응하는 제2 모션 벡터를 생성할 수 있다.
프로세서(200)는 기준 프레임, 현재 프레임 및 제2 모션 벡터에 기초하여 모션 레지듀얼을 계산할 수 있다. 프로세서(200)는 모션 레지듀얼 및 제2 모션 벡터에 기초하여 모션 보상을 수행함으로써 예측 프레임을 생성할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (20)
- 비디오를 구성하는 현재 프레임(current frame) 및 상기 비디오의 이전 시점에 기초하여 생성된 기준 프레임(reference frame)을 수신하는 수신기; 및
상기 기준 프레임에 기초하여 클러스터링을 수행함으로써 생성된 복수의 클러스터를 이용하여 복수의 클러스터 맵을 생성하고,
상기 복수의 클러스터 맵에 기초하여 모션 보상을 수행함으로써 예측 프레임을 생성하고,
상기 현재 프레임 및 상기 예측 프레임에 기초하여 디코딩을 수행함으로써 디코딩된 프레임을 생성하는 프로세서
를 포함하는 비디오 처리 장치.
- 제1항에 있어서,
상기 기준 프레임은,
이전 시점의 디코딩된 프레임에 기초하여 생성되는,
비디오 처리 장치.
- 제1항에 있어서,
상기 프로세서는,
상기 기준 프레임, 상기 현재 프레임 및 상기 복수의 클러스터 맵에 기초하여 상기 복수의 클러스터에 대응하는 복수의 모션 벡터를 추정하는,
비디오 처리 장치.
- 제3항에 있어서,
상기 프로세서는,
상기 복수의 클러스터 맵 및 상기 복수의 모션 벡터에 기초하여 상기 기준 프레임을 보상함으로써 예측 프레임을 생성하는,
비디오 처리 장치.
- 제4항에 있어서,
상기 프로세서는,
상기 복수의 모션 벡터의 합을 이용하여 상기 기준 프레임을 보상하거나,
상기 복수의 클러스터 맵 및 상기 복수의 모션 벡터에 기초하여 와핑(warping)을 수행함으로써 픽셀 와이즈 모션 벡터를 이용하여 상기 기준 프레임을 보상하는,
비디오 처리 장치.
- 제1항에 있어서,
상기 프로세서는,
상기 기준 프레임에 기초하여 클러스터링을 위한 할당 확률을 계산하고,
상기 기준 프레임 및 상기 현재 프레임에 기초하여 옵티컬 플로우를 계산하고,
상기 할당 확률 및 상기 옵티컬 플로우에 기초하여 상기 복수의 클러스터의 대표 모션 벡터를 생성하는,
비디오 처리 장치.
- 제6항에 있어서,
상기 프로세서는,
상기 할당 확률 및 상기 옵티컬 플로우에 기초하여 상기 복수의 클러스터에 대응하는 옵티컬 플로우의 평균을 계산하고,
상기 평균 및 상기 복수의 클러스터에 할당된 픽셀에 대응하는 옵티컬 플로우의 차이에 기초하여 상기 할당 확률의 정확도를 계산하는,
비디오 처리 장치.
- 제4항에 있어서,
상기 프로세서는,
상기 현재 프레임 및 상기 예측 프레임에 기초하여 레지듀얼(residual)을 생성하고,
상기 레지듀얼을 인코딩함으로써 인코딩된 레지듀얼을 생성하고,
상기 인코딩된 레지듀얼을 디코딩함으로써 디코딩된 레지듀얼을 생성하는,
비디오 처리 장치.
- 제8항에 있어서,
상기 프로세서는,
상기 예측 프레임 및 상기 디코딩된 레지듀얼에 기초하여 상기 디코딩된 프레임을 생성하는,
비디오 처리 장치.
- 제1항에 있어서,
상기 프로세서는,
상기 기준 프레임, 상기 현재 프레임 및 상기 복수의 클러스터 맵에 기초하여 상기 복수의 클러스터에 대응하는 제1 모션 벡터를 생성하고,
상기 복수의 클러스터에 대응하는 할당 확률 및 상기 제1 모션 벡터에 기초하여 픽셀에 대응하는 제2 모션 벡터를 생성하고,
상기 기준 프레임, 상기 현재 프레임 및 상기 제2 모션 벡터에 기초하여 모션 레지듀얼을 계산하고,
상기 모션 레지듀얼 및 상기 제2 모션 벡터에 기초하여 상기 모션 보상을 수행함으로써 상기 예측 프레임을 생성하는,
비디오 처리 장치.
- 비디오를 구성하는 현재 프레임(current frame) 및 상기 비디오의 이전 시점에 기초하여 생성된 기준 프레임(reference frame)을 수신하는 단계;
상기 기준 프레임에 기초하여 클러스터링을 수행함으로써 생성된 복수의 클러스터를 이용하여 복수의 클러스터 맵을 생성하는 단계;
상기 복수의 클러스터 맵에 기초하여 모션 보상을 수행함으로써 예측 프레임을 생성하는 단계; 및
상기 현재 프레임 및 상기 예측 프레임에 기초하여 디코딩을 수행함으로써 디코딩된 프레임을 생성하는 단계
를 포함하는 비디오 처리 방법.
- 제11항에 있어서,
상기 기준 프레임은,
이전 시점의 디코딩된 프레임에 기초하여 생성되는,
비디오 처리 방법.
- 제11항에 있어서,
상기 예측 프레임을 생성하는 단계는,
상기 기준 프레임, 상기 현재 프레임 및 상기 복수의 클러스터 맵에 기초하여 상기 복수의 클러스터에 대응하는 복수의 모션 벡터를 추정하는 단계
를 포함하는 비디오 처리 방법.
- 제13항에 있어서,
상기 예측 프레임을 생성하는 단계는,
상기 복수의 클러스터 맵 및 상기 복수의 모션 벡터에 기초하여 상기 기준 프레임을 보상함으로써 예측 프레임을 생성하는 단계
를 포함하는 비디오 처리 방법.
- 제14항에 있어서,
상기 예측 프레임을 생성하는 단계는,
상기 복수의 모션 벡터의 합을 이용하여 상기 기준 프레임을 보상하는 단계; 또는
상기 복수의 클러스터 맵 및 상기 복수의 모션 벡터에 기초하여 와핑(warping)을 수행함으로써 픽셀 와이즈 모션 벡터를 이용하여 상기 기준 프레임을 보상하는 단계
를 포함하는 비디오 처리 방법.
- 제11항에 있어서,
상기 복수의 클러스터 맵을 생성하는 단계는,
상기 기준 프레임에 기초하여 클러스터링을 위한 할당 확률을 계산하는 단계;
상기 기준 프레임 및 상기 현재 프레임에 기초하여 옵티컬 플로우를 계산하는 단계; 및
상기 할당 확률 및 상기 옵티컬 플로우에 기초하여 상기 복수의 클러스터의 대표 모션 벡터를 생성하는 단계
를 포함하는 비디오 처리 방법.
- 제16항에 있어서,
상기 복수의 클러스터 맵을 생성하는 단계는,
상기 할당 확률 및 상기 옵티컬 플로우에 기초하여 상기 복수의 클러스터에 대응하는 옵티컬 플로우의 평균을 계산하는 단계; 및
상기 평균 및 상기 복수의 클러스터에 할당된 픽셀에 대응하는 옵티컬 플로우의 차이에 기초하여 상기 할당 확률의 정확도를 계산하는 단계
를 포함하는 비디오 처리 방법.
- 제14항에 있어서,
상기 디코딩된 프레임을 생성하는 단계는,
상기 현재 프레임 및 상기 예측 프레임에 기초하여 레지듀얼(residual)을 생성하는 단계;
상기 레지듀얼을 인코딩함으로써 인코딩된 레지듀얼을 생성하는 단계; 및
상기 인코딩된 레지듀얼을 디코딩함으로써 디코딩된 레지듀얼을 생성하는 단계
를 포함하는 비디오 처리 방법.
- 제18항에 있어서,
상기 디코딩된 프레임을 생성하는 단계는,
상기 예측 프레임 및 상기 디코딩된 레지듀얼에 기초하여 상기 디코딩된 프레임을 생성하는 단계
를 더 포함하는 비디오 처리 방법.
- 제11항에 있어서,
상기 예측 프레임을 생성하는 단계는,
상기 기준 프레임, 상기 현재 프레임 및 상기 복수의 클러스터 맵에 기초하여 상기 복수의 클러스터에 대응하는 제1 모션 벡터를 생성하는 단계;
상기 복수의 클러스터에 대응하는 할당 확률 및 상기 제1 모션 벡터에 기초하여 픽셀에 대응하는 제2 모션 벡터를 생성하는 단계;
상기 기준 프레임, 상기 현재 프레임 및 상기 제2 모션 벡터에 기초하여 모션 레지듀얼을 계산하는 단계; 및
상기 모션 레지듀얼 및 상기 제2 모션 벡터에 기초하여 상기 모션 보상을 수행함으로써 상기 예측 프레임을 생성하는 단계
를 포함하는 비디오 처리 방법.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220114399A KR20240035209A (ko) | 2022-09-08 | 2022-09-08 | 비디오 처리 장치 및 방법 |
US18/093,377 US20240089486A1 (en) | 2022-09-08 | 2023-01-05 | Apparatus and method with video processing |
CN202310160373.4A CN117676162A (zh) | 2022-09-08 | 2023-02-23 | 用于视频处理的装置和方法 |
EP23161341.5A EP4336837A1 (en) | 2022-09-08 | 2023-03-10 | Apparatus and method with video processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220114399A KR20240035209A (ko) | 2022-09-08 | 2022-09-08 | 비디오 처리 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240035209A true KR20240035209A (ko) | 2024-03-15 |
Family
ID=85571393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220114399A KR20240035209A (ko) | 2022-09-08 | 2022-09-08 | 비디오 처리 장치 및 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240089486A1 (ko) |
EP (1) | EP4336837A1 (ko) |
KR (1) | KR20240035209A (ko) |
CN (1) | CN117676162A (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118175320A (zh) * | 2024-05-11 | 2024-06-11 | 深圳市裕同包装科技股份有限公司 | 一种视频帧的处理方法、装置及介质 |
-
2022
- 2022-09-08 KR KR1020220114399A patent/KR20240035209A/ko unknown
-
2023
- 2023-01-05 US US18/093,377 patent/US20240089486A1/en active Pending
- 2023-02-23 CN CN202310160373.4A patent/CN117676162A/zh active Pending
- 2023-03-10 EP EP23161341.5A patent/EP4336837A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4336837A1 (en) | 2024-03-13 |
CN117676162A (zh) | 2024-03-08 |
US20240089486A1 (en) | 2024-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111727441A (zh) | 实现用于高效学习的条件神经过程的神经网络*** | |
US12033077B2 (en) | Learning compressible features | |
CN110612538A (zh) | 生成输入数据项的离散潜在表示 | |
Chowdhury et al. | One timestep is all you need: Training spiking neural networks with ultra low latency | |
KR20220000871A (ko) | 시간 적응적, 공간 선택적 시그널링을 이용한 뉴럴 네트워크 처리 방법 및 장치 | |
CN114926770B (zh) | 视频动作识别方法、装置、设备和计算机可读存储介质 | |
KR20240035209A (ko) | 비디오 처리 장치 및 방법 | |
CN110874628A (zh) | 人工神经网络及其中控制定点的方法 | |
CN114330736A (zh) | 具有噪声对比先验的潜在变量生成性模型 | |
CN115209154A (zh) | 基于机器学习模型的视频压缩 | |
Yi et al. | Elanet: effective lightweight attention-guided network for real-time semantic segmentation | |
Chen et al. | Point cloud compression with sibling context and surface priors | |
US20220300800A1 (en) | Techniques for adaptive generation and visualization of quantized neural networks | |
KR102105951B1 (ko) | 추론을 위한 제한된 볼츠만 머신 구축 방법 및 추론을 위한 제한된 볼츠만 머신을 탑재한 컴퓨터 장치 | |
TW202348029A (zh) | 使用限幅輸入數據操作神經網路 | |
KR20230008667A (ko) | 다양한 영상 신호 특성의 다중 모델을 이용한 영상 화질 향상 방법 및 장치 | |
KR102479793B1 (ko) | 연합 학습을 이용한 뉴럴 네트워크 학습 방법 및 장치 | |
KR102613527B1 (ko) | 낮은 비트레이트 비디오 압축을 위한 마이크로도싱 | |
US20220284262A1 (en) | Neural network operation apparatus and quantization method | |
CN114501031A (zh) | 一种压缩编码、解压缩方法以及装置 | |
CN115136145A (zh) | 多任务神经网络 | |
KR20240114684A (ko) | 뉴럴 네트워크를 이용한 비디오 처리 장치 및 방법 | |
KR20220097168A (ko) | 딥 러닝 기반 조인트 소스 및 채널 코딩 방법 및 이를 수행하는 장치 | |
US20220237436A1 (en) | Neural network training method and apparatus | |
CN114222124B (zh) | 一种编解码方法及设备 |