- Today
- Total
목록전체 글 (384)
작심삼일
디자인 패턴을 모르는 사람이 스터디를 하며 적은 것이라 틀린 부분이 있을 수 있습니다. 틀린 부분은 알려주시면 감사하겠습니다. 어떤 패턴인가 공유를 통해 많은 수의 소립(fine-grained) 객체들을 효과적으로 지원합니다. 여러 번 이용할 수 있도록 객체를 공유할 때 사용한다. 그렇기 때문에 메모리 낭비를 줄일 수 있다. 어떻게 쓰는가 그림판을 예시로 들어보면, 원을 그린다고 했을 때 원은 중심과 반지름 길이만 있으면 된다. 1번 원은 중심이 $(2, 3)$이고 반지름이 5라면 이 객체는 원[(2, 3), 5]만 가지고 있으면 된다. class circle: def __init__(self, center, radius): self.center = center self.radius = radius de..
디자인 패턴을 모르는 사람이 스터디를 하며 적은 것이라 틀린 부분이 있을 수 있습니다. 틀린 부분은 알려주시면 감사하겠습니다. 어떤 패턴인가 동일 계열의 알고리즘군을 정의하고, 각 알고리즘을 캡슐화하며, 이들을 상호교환이 가능하도록 만듭니다. 알고리즘을 사용하는 클라이언트와 상관없이 독립적으로 알고리즘을 다양하게 변경할 수 있게 합니다. 동일한 문제를 다른 알고리즘으로 해결할 수 있게 하는 패턴이라고 생각하는 것이 편하다. 예를 들면, 보통 다른 알고리즘을 추가할 때 if-else 문으로 추가하지만, 이 패턴을 사용하면 새 클래스 추가하는 형태가 되겠다. 어떻게 쓰는가 출근할 때 여러 가지 방법으로 할 수 있다. 이를 Strategy 패턴을 사용해서 간단하게 짜봤다. class GoToWork(): de..
디자인 패턴을 모르는 사람이 스터디를 하며 적은 것이라 틀린 부분이 있을 수 있습니다. 틀린 부분은 알려주시면 감사하겠습니다. 어떤 패턴인가 클래스의 인터페이스를 사용자가 기대하는 인터페이스 형대로 적응(변환) 시킵니다. 서로 일치하지 않는 인터페이스를 갖는 클래스들을 함께 동작시킵니다. 말 그대로 어댑터, 우리가 흔히 말하는 돼지코 콘센트와 같은 역할을 한다. Decorator 패턴과 헷갈릴 수 있지만, decorator 패턴은 확장을 하는 것이고, adapter 패턴은 호환성을 위한 것이라 생각하면 편하다. 어떻게 쓰는가 딱히 어렵지 않게 사용할 수 있다. class Data1(): def __init__(self, path): self.path = path self.data = f.readlines..
My Summary & Opinion Video codec 중 in-loop filter에 CNN을 좀 더 적절하게 가공해서 넣은 논문이다. Video라는 데이터의 가장 큰 특징은 앞뒤 프레인의 연관성이 매우 크다는 것이다. 단순히 이미지를 압축할 때와 달리 영상은 앞뒤에 비슷한 프레임이 존재하기 때문에 이를 이용하면 압축 효율을 향상시킬 수 있다. 그렇기 때문에 이런 특성을 이용한 STResNet의 구조는 codec에 맞다고 생각한다. Introduction CNN은 image processing 분야 뿐 아니라 video compression 분야에서도 좋은 성능을 내고 있다. 본 논문에서는 HEVC inter coding을 위한 Spatial-Temporal residue network (STRes..
My Summary & Opinion 단순히 SRCNN을 HEVC에 적용했던 IFCNN 과 달리 VRCNN은 다양한 filter size를 가진 네트워크를 설계했다. HEVC는 압축할 때 다양한 크기의 block을 사용하기 때문에 그 특성을 살리기 위해 다양한 filter size를 사용했다. 하지만 난 variable filter size를 사용한 것은 codec의 특성을 살린 것이 아니라 생각한다. 다양한 filter size를 사용하면 다양한 feature map을 뽑을 수 있기 때문에 단순히 codec에만 적용되는 것이 아니라 SR 문제에도 적용할 수 있다고 생각한다. 비교실험을 할 때 다른 마땅한 네트워크가 없었기 때문에 AR-CNN랑 비교했다고 생각하지만, 왜 IFCNN이랑 비교하지 않았는지 ..
디자인 패턴을 모르는 사람이 스터디를 하며 적은 것이라 틀린 부분이 있을 수 있습니다. 틀린 부분은 알려주시면 감사하겠습니다. 어떤 패턴인가 전자과에서는 디지털논리회로인가하는 과목에서 이 state를 이용해서 회로를 설계한다.그래서그런지 이 패턴이 반갑게 느껴졌다.그때 배웠던 것처럼 state에 따라 행동을 다르게 하는데, 그것을 그대로 함수로 구현하는 것이 State Pattern이다. 객체 내부 상태에 따라 스스로 행동을 변경할 수 있게 허가하는 패턴으로, 이렇게 하면 객체는 마치 자신의 클래스를 바꾸는 것처럼 보인다. 어떻게 쓰는가 각 상태에 따라 다르게 행동해야할 때 사용한다. 예를 들면, 횡단보도의 신호등이 빨간불일 때 브레이크를 밟고 초록불일 때 악셀 밟는 식으로 생각할 수 있다. 신호등이라는..
디자인 패턴을 모르는 사람이 스터디를 하며 적은 것이라 틀린 부분이 있을 수 있습니다. 틀린 부분은 알려주시면 감사하겠습니다. 어떤 패턴인가 "객체에 동적으로 새로운 책임을 추가할 수 있게 합니다. 기능을 추가하려면, 서브클래스를 생성하는 것보다 융통성 있는 방법을 제공합니다." 라고 책에 적혀있지만, 나는 이해하기 어려웠다. 스터디를 마친 후에야 decorator pattern이 이해됐는데, 한마디로 정리하자면, 기능을 계속 추가하는 패턴이다. 기본에 이것저것 가져다 붙일 때나, 규모를 분할하고 계층화할 때 유용하다. 하지만 데코레이터가 너무 많아지면 지저분해지고(여느 코드가 그렇 듯), 어디서 책임이 추가된 것인이 확인하기 어려워진다. 어떻게 쓰는가 Component, ConcreteComponent..
My Summary & Opinion 비디오 코덱의 In-loop 부분을 deep learning으로 대체한, SRCNN와 같이 전형적인 깃발 꼽기 논문이라고 생각된다. SRCNN을 그대로 가져와 SAO를 대체했다. 실험도 작은 크기의 영상에 적용한 결과만 있기 때문에 큰 영상에서는 어떻게 나올 지 궁금하다. AI 모드에서 성능이 제일 뛰어난 것은, SRCNN 자체가 SR 문제를 풀기위해 고안된 모델인데, AI 모드에는 IFCNN이 post-processing으로 들어가 또 다른 SR 문제라고 볼 수 있기 때문이라고 생각된다. Introduction HEVC는 blocking artifacts, ringing artifacts, blurring artifacts를 없애기 위해 in-loop filteri..