SYDLAB_inha/Dynamic Mesh

VDMC - Test Model "TMMv1"(2) / base mesh encoder / enhancement mesh encoder

빈그레 2024. 1. 25. 23:02

 

 

 base mesh encoder

 

intra는 draco를 통해 static으로 진행되고, inter를 위해서는 따로 라이브러리(motion vectro encoder)가 있다.

 

- intra mode

: google의 draco에서 static mesh에 대한 압축을 진행하게 된다.

 

연속된 삼각형으로 표현되어 있는 mesh를 C,L,E,R,S라는 5개의 symbol로 분류를 해서 코딩하는 edgebreaker 기술을 사용하여 이 symbol들의 연결 조합인 connectivity를 압축하고 있어서 굉장히 빠른 압축이 가능하다.

 

mpeg에서 draco대신 edge breaker를 이용하자....고 햇따구?...뭐래는겨 edgebreaker가 draco 알고리즘 아니냐

 

 

- inter mode

: base mesh가 inter mode인 경우에 I-frame의 경우에 intra로서 압축되어 mesh buffer에 저장되어 있는 mesh를 가져와서 현재 들어온 mesh와 이전 i-frame의 mesh를 차분을 내서 motion vector를 생성한다.

 

다른 frame인데도 불구하고 base encoder에서 바로 차분이 가능한 이유는 pre-processing 과정에서 fitting을 했기 때문에 1:1 mapping이 이미 되어있어서 index와 connextivity가 똑같다. 

//다른 frame인데도 fitting하면 그냥 바로 1:1 mapping이 되나....?

-> 이전 frame(I)에 대한 decimated mesh(base mesh)를 sub division하여 그걸 현재 들어오는 p frame에 fitting하면서 1:1 mapping이 이루어짐

 

우측 검정색,,부분,, 코딩 모르게씀,,,

이 코딩 과정은 lossless로 진행이 된다. 

** lossless : 손실없음을 의미하는 용어로 데이터를 압축하고 나중에 다시 복원할 때 원본 데이터와 완전히 동일하게 유지되는 압축 방식을 말한다.

 

146이 저장되어 있는 상태에서 148에 대해서는 차이값만 넘겨짐..?

 

 

 

Enhancement mesh encoder

 

 

 

Reconstructed base mesh는 base mesh encoder에서 나온 결과값이고,

enhacement mesh는 pre-processsing에서 나오는 값 //??displacement 값인가?.. enhancement vector라 봐야하나?

 

base mesh에 대해 sub-division한 것과 original과의 차이가 enhancement vector이므로 ,,, 바로 차분값 내기 가능,.?

근데,, 저기서는 왜 바로 enhancement mesh라고 되어있지?

 

//영상 설명은 이러함..

: base mesh는 preprocessing과정에서 enhancement mesh에 대해서 sub-division된 값이기 때문에 vertex와 connectivity가 모두 동일해서 여기에서도 역시 1:1 mapping이 되어서 차분값을 낸다. //여기서는 motion vector가 아니라 그냥 차이 vector이다. 

 

local coordinate conversion 이후, Wavelet transform의 일종인 lifting transform을 사용하여 주파수 domain으로 변경한다.