KR20100023781A - 동영상 인코더와 동영상 디코더에서의 분산적 움직임 예측 방법 - Google Patents

동영상 인코더와 동영상 디코더에서의 분산적 움직임 예측 방법 Download PDF

Info

Publication number
KR20100023781A
KR20100023781A KR1020090077801A KR20090077801A KR20100023781A KR 20100023781 A KR20100023781 A KR 20100023781A KR 1020090077801 A KR1020090077801 A KR 1020090077801A KR 20090077801 A KR20090077801 A KR 20090077801A KR 20100023781 A KR20100023781 A KR 20100023781A
Authority
KR
South Korea
Prior art keywords
prediction
steps
motion
motion prediction
encoder
Prior art date
Application number
KR1020090077801A
Other languages
English (en)
Other versions
KR101035746B1 (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 경희대학교 산학협력단
Publication of KR20100023781A publication Critical patent/KR20100023781A/ko
Application granted granted Critical
Publication of KR101035746B1 publication Critical patent/KR101035746B1/ko

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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • 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/169Methods 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/17Methods 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/176Methods 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 block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명의 일 실시예에 따른 동영상 인코더의 분산적 움직임 예측 방법은 이전 프레임 데이터를 이용하여 현재 프레임 데이터에 대한 단계적 움직임 예측을 수행할 총 예측단계 수를 결정하는 단계; 상기 총 예측단계 수 이하인 실제 예측단계 수만큼 상기 현재 프레임 데이터에 대하여 단계적 움직임 예측을 수행하여 움직임 벡터를 생성하는 단계; 및 상기 총 예측단계 수, 상기 실제 예측단계 수 및 상기 움직임 벡터를 디코더로 전송하는 단계를 포함한다. 본 발명에 따르면, 동영상 인코더에서 단계적 움직임 예측의 일부 단계를 수행하고, 동영상 디코더에서 단계적 움직임 예측의 나머지 단계를 수행함으로써 동영상 인코더의 복잡도를 낮게 유지하면서도 움직임 예측을 정확히 할 수 있어 채널 모델링의 정확도를 증가시킬 수 있다. 그 결과 압축효율을 높일 수 있다.

Description

동영상 인코더와 동영상 디코더에서의 분산적 움직임 예측 방법{METHOD OF DISTRIBUTED MOTION ESTIMATION FOR VIDEO ENCODER AND VIDEO DECODER}
본 발명은 동영상 인코더와 동영상 디코더에서의 분산적 움직임 예측 방법에 관한 것으로, 보다 구체적으로는 분산 동영상 코딩에서의 동영상 인코더와 동영상 디코더의 움직임 예측 방법에 관한 것이다.
휴대용 디지털 카메라, 이동식 무선 감시 카메라, 캡슐형 내시경 등 최근 부각되고 있는 다양한 응용 기기들에 요구되는 특성 중 하나는 인코더의 구조가 복잡하지 않아야 한다는 것이다. 이러한 응용 기기들은 주로 작은 카메라 칩들을 사용하는 것들인데 칩의 처리 능력 한계와 제한된 배터리 수명이라는 제약 조건이 있기 때문이다. 따라서, 인코더에서 대부분의 복잡한 연산을 수행하는 기존의 동영상 압축 기술 예를 들어, MPEG, H.264/AVC와 같은 기술이 이러한 응용 기기들에 적용되기에는 무리가 있다.
분산 동영상 코딩(Distributed Video Coding)은 동영상의 인코딩 시 복잡도의 대부분을 차지하는 움직임 예측/보상(motion estimation/compensation) 과정을 인코더(encoder)가 아닌 디코더(decoder)에서 수행하는 새로운 동영상 코딩 기술이 다. 즉, 분산 동영상 코딩은 계산량을 가장 많이 필요로 하는 움직임 예측/보상 과정을 디코더에서 수행하는 시스템 구현을 가능하게 하여 상술한 응용기기들의 실현을 앞당길 수 있는 토대를 마련하였다.
분산 동영상 코딩의 이론적 배경은 1970년대 Slepian과 Wolf의 정보 이론 경계(bound) 개념(J. D. Slepian and J. K. Wolf, "Noiseless coding of correlated information sources," IEEE Transactions on information Theory, vol. IT-19, pp. 471-480, July 1973.참조)과 Wyner와 Ziv의 정보 이론(The rate-distortion function for source coding with side information at the decoder, A. D. Wyner and J. Ziv, IEEE Transactions on Information Theory, vol. 22, pp.1-10, Jan.1976.참조)에 바탕을 두고 있다.
분산 동영상 코딩은 크게 피드백(feedback)을 사용하는 방식과 피드백을 사용하지 않는 방식으로 구분할 수 있다.
도 1은 분산 동영상 코딩 중에서 피드백(feedback)을 사용하는 방식에 대한 인코딩, 디코딩 과정의 일 예를 나타낸 블록도이다.
도 1을 참조하면, 블록1(WZ and conventional video splitting, 100)은 입력 동영상 데이터를 기존의 방식으로 인코딩할 데이터(K)와 Wyner-Ziv로 인코딩할 데이터(S, Wyner-Ziv 프레임 데이터)로 나눈다. 나뉘어진 입력 동영상 데이터 중에서 K는 블록2(conventional video encoding, 200)로 S는 블록3(Wyner-Ziv encoding, 300)으로 각각 입력된다.
블록2(200)는 입력되는 동영상 데이터(K)를 기존의 동영상 인코딩 방식(예를 들면, H.264/AVC 인트라 코딩)으로 인코딩한다. 블록3(300)은 입력되는 동영상 데이터(S)를 Wyver-Ziv로 인코딩한다. 블록3a(T, 310)은 블록 단위로 변환(trnasform)을 수행하며 이를 통해 구해진 변환 계수는 블록3b(Q, 320)를 통하여 양자화가 수행된다. 블록3c(Bit ordering, 330)에서는 같은 주파수 계수끼리 모은 후에 비트 레벨별로 하나의 코딩단위로 정렬한 후, 채널 인코딩을 수행하는 블록3d(channel encoding, 340)로 입력시킨다. 이 때 블록3d(340)는 압축 효율을 높이기 위해 블록3d(340)로 입력되는 비트 중 일부 레벨의 비트만을 인코딩한다. 블록 3d(340)의 출력인 패러티 비트들은 블록3f(Buffer, 350)에 저장되고 디코딩 과정에서 피드백 채널(feedback channel)을 통하여 수신한 요구량만큼 순차적으로 전송된다. 블록3e(minimum rate estimation, 360)는 전송할 최소의 패러티 비트의 양을 가상 채널 모델을 이용하여 예측함으로써 재전송 횟수를 줄이게 된다. 이는 디코딩 지연과 복잡도를 감소시키는 효과를 가져 온다.
블록6 내지 블록8(600, 700, 800)은 디코딩 과정을 나타낸다. 블록4(conventional video decoding, 400)에서 디코딩된 영상은 블록5(Side information extraction, 500)에서 원래의 Wyner-Ziv 프레임 데이터에 대한 예측값인 보조 정보(Side Information, SI)를 만드는 데 사용된다. 주어진 Wyner-Ziv 프레임 데이터에 대한 보조 정보는 인접한 두 참조 프레임 간의 움직임 보상 보간법을 통하여 획득될 수 있다.
블록6(virtual channel modeling, 600)에서는 Wyner-Ziv 프레임 데이터와 해당 보조 정보간의 차이를 가상 채널 모델로 모델링한다. 예를 들어 Wyner-Ziv 프레 임 데이터와 해당 보조 정보간의 차이를 가상 채널에서의 상관성 잡음(correlation noise)으로 모델링할 수 있다. 즉, 블록6(600)은 채널 모델링을 수행한다.
블록7(700)에서는 인코더에서와 같은 트랜스폼(T)을 보조 정보에 적용함으로써 Wyner-Ziv 프레임 데이터에 대한 계수를 얻을 수 있다. 이 계수를 블록6(600)에서 만들어낸 상관성 잡음에 대한 모델을 적용한다. 블록8a(Channel decoding, 810)는 채널 디코딩을 수행한다. 만약 채널 디코딩이 실패하는 경우 다시 말해, 수신한 패리티 비트들이 성공적인 채널 디코딩을 보장할 수 있을 만큼 충분하지 않다면 피드백 채널을 통하여 더 많은 패러티 비트들을 블록3(300)에 요구한다. 이 과정은 성공적인 채널 디코딩이 이루어질 때까지 반복된다. 채널 디코딩이 성공한 경우 블록8c(Q-1 and Reconstruction,830)는 블록6(600)에서 계산된 가상 채널 모델과 보조 정보의 계수를 참조하여 변환 계수를 재구성한다. 블록 8d(T-1, 840)는 재구성된 변환 계수에 역변환(Inverse Transform)을 적용하여 디코딩된 동영상 데이터를 얻는다.
도 2는 분산 동영상 코딩 중에서 피드백을 사용하지 않는 방식 중 하나인 PRISM(Power-efficient, Robust, hIghcompression, Syndrome-based Multimedia coding)의 구조를 나타낸다. PRISM에서는 채널 모델링을 인코더의 등급분류기(Classifier)를 통하여 수행하고 이를 이용하여 비트율을 조절한다. 디코딩의 성공여부는 CRC검사를 통하여 수행한다. PRISM은 "PRISM: A video coding architecture based on distributed compression principles, R. Puri and K. Ramchandran, ERL Technical Report, pp. 93-102,March 2003"을 참조할 수 있다.
상술한 바와 같이, 분산 동영상 코딩 중 피드백을 사용하는 방식은 채널 모델링을 디코더에서 수행하기 때문에 채널 모델링된 결과를 피드백 정보로 인코더에게 전달한다. 이러한 방식은 채널 모델링을 정확하게 할 수 있고 인코더의 구조가 복잡하지 않다는 장점이 있으나 피드백 때문에 디코딩 과정에서 지연이 발생하는 단점이 있다.
반면, 분산 동영상 코딩 중 피드백을 사용하지 않는 방식은 채널 모델링을 인코더에서 수행한다. 피드백이 없으므로 디코딩 지연이 작은 장점이 있으나, 피드백을 사용하는 방식에 비해 정확한 채널 모델링이 어렵고 인코더의 복잡도가 증가하게 된다는 단점이 있다.
분산 동영상 코딩의 효율적인 적용을 위해 인코더 구조의 복잡도를 낮게 유지하면서도 채널 모델링을 정확하게 할 수 있는 방법이 필요하다. 채널 모델링을 정확하게 하기 위해서는 움직임 예측을 정확하게 하는 것이 필요하다.
동영상 인코더와 동영상 디코더에서 동영상 인코더의 복잡도를 낮게 유지하는 동시에 영상 데이터에 대한 움직임 예측 정확도를 올릴 수 있는 방법을 제공하는데 있다.
본 발명의 일 실시예에 따른 동영상 인코더의 분산적 움직임 예측 방법은 이전 프레임 데이터를 이용하여 현재 프레임 데이터에 대한 단계적 움직임 예측을 수행할 총 예측단계 수를 결정하는 단계; 상기 총 예측단계 수 이하인 실제 예측단계 수만큼 상기 현재 프레임 데이터에 대하여 단계적 움직임 예측을 수행하여 움직임 벡터를 생성하는 단계; 및 상기 총 예측단계 수, 상기 실제 예측단계 수 및 상기 움직임 벡터를 디코더로 전송하는 단계를 포함한다.
본 발명의 다른 실시예에 따른 동영상 디코더의 분산적 움직임 예측 방법은 인코더로부터 현재 프레임 데이터에 대한 단계적 움직임 예측의 총 예측단계 수, 상기 현재 프레임 데이터에 대해 상기 단계적 움직임 예측이 어느 단계까지 수행되었는지를 나타내된 실제 예측단계 수 및 상기 실제 예측단계 수만큼 수행된 단계적 움직임 예측을 통해 도출된 움직임 벡터를 획득하는 단계; 및 상기 총 예측단계 수, 상기 실제 예측단계 수 및 상기 움직임 벡터를 이용하여 상기 현재 프레임 데이터에 대한 움직임 예측을 수행하는 단계를 포함한다.
본 발명의 실시예에 따르면, 동영상 인코더에서 단계적 움직임 예측의 일부 단계를 수행하고, 동영상 디코더에서 단계적 움직임 예측의 나머지 단계를 수행함으로써 동영상 인코더의 복잡도를 낮게 유지하면서도 움직임 예측을 정확히 할 수 있어 채널 모델링의 정확도를 증가시킬 수 있다. 그 결과 압축효율을 높일 수 있다.
본 발명에 따른 동영상의 인코더와 동영상 디코더의 분산적 움직임 예측 방법은 분산 동영상 코딩(Distirbuted Video Coding, DVC)에 사용될 수 있다. 이하에서 주로 DVC를 위주로 설명하지만 이는 제한이 아니다. 이하에서 PRISM(Power-efficient, Robust, hIghcompression, Syndrome-based Multimedia coding)은 "PRISM: A video coding architecture based on distributed compression principles, R. Puri and K. Ramchandran, ERL Technical Report, pp. 93-102,March 2003"을 참조할 수 있다.
도 3은 본 발명의 일 실시예에 따른 인코더 및 디코더에서 분산적 움직임 예측을 수행하는 과정을 나타낸 도면이다.
도 3을 참조하면, 인코더(30)는 이전 프레임 데이터를 이용하여 현재 프레임 데이터에 대한 단계적 움직임 예측을 수행할 총 예측단계 수(N)를 결정한다.
여기서 단계적 움직임 예측이란 복수의 단계를 포함하는 움직임 예측을 칭한다. 단계적 움직임 예측은 예를 들어, 삼단계 탐색방식(Three Step Search, TSS), 2차원 로그 탐색방식(Logarithmic search), 이진 값으로 경계를 구하고 경계에 대 한 정보로 매칭하는 방법(conjugate direction search) 등을 통해 수행될 수 있다. 예시한 방법들의 공통점은 넓은 탐색범위에 대해 움직임 예측을 수행하는 단계 후, 그 결과를 이용하여 점차로 좁은 탐색범위에 대해 좀 더 엄밀한 움직임 예측을 수행하는 단계들로 이루어진다는 것이다. 이하에서 단계적 움직임 예측에 삼단계 탐색방식을 사용하는 것을 예로 들어 설명하나 이는 제한이 아니며, 다른 방식을 사용하여도 무방하다는 것은 자명하다. 총 예측단계 수(N)은 단계적 움직임 예측이 완료되기 위해서 수행되어야 하는 총 단계 수를 나타낸다.
인코더(30)는 총 예측단계 수(N)인 단계적 움직임 예측 과정에서 일부 단계만을 수행할 수 있다. 예컨대, 삼단계 탐색방식에서 1단계, 또는 2단계까지만을 수행할 수 있다. 이처럼 인코더(30)에서 단계적 움직임 예측 중 실제로 수행되는 단계를 나타내는 것을 실제 예측단계 수(K)라 칭한다. 총 예측단계 수 및 실제 예측단계 수는 프레임 단위로 결정될 수도 있고, 프레임 내의 블록(block) 단위로 결정될 수도 있다.
인코더(30)에서는 실제 예측단계 수(K)만큼 단계적 움직임 예측을 수행하여 움직임 벡터(motion vector)를 도출한다. 상기 총 예측단계 수(N), 실제 예측단계 수(K), 움직임 벡터를 예측정보라고 하면, 이러한 예측정보는 디코더(40)로 제공되는 인코딩 비트스트림에 포함되어 디코더(40)로 제공된다.
디코더(40)는 인코더(30)로부터 현재 프레임 데이터에 대한 예측정보 예컨대, 단계적 움직임 예측의 총 예측단계 수(N), 현재 프레임 데이터에 대해 상기 단계적 움직임 예측이 어느 단계까지 수행되었는지를 나타내는 실제 예측단계 수(K) 및 상기 실제 예측단계 수만큼 수행된 단계적 움직임 예측을 통해 도출된 움직임 벡터를 획득한다.
디코더(40)는 예측정보를 이용하여 현재 프레임 데이터에 대한 움직임 예측을 수행할 수 있다. 이 경우 디코더(40)는 인코더(30)에서 수행되지 않은 단계적 움직임 예측의 나머지 단계를 수행할 수 있는데, 상기 나머지 단계에 대한 정보는 상기 총 예측단계 수(N)에서 상기 실제 예측단계 수(K)를 차분한 값(N-K)으로부터 도출될 수 있다. 또는 디코더(40)는 예측정보로부터 도출한 탐색영역에 대하여 전체탐색방식을 수행하는 방식으로 움직임 예측을 수행할 수도 있다.
이하에서 인코더(30)에서 수행되는 단계적 움직임 예측 과정 및 디코더(40)에서 수행되는 단계적 움직임 예측 과정을 상세히 설명한다.
도 4는 본 발명의 일 실시예에 따른 인코더의 구조를 나타낸 블록도이다.
도 4를 참조하면, 인코더(30)는 DCT부(31), 양자화부(32), 채널 인코더(33), CRC 생성기(34), 단계적 움직임 예측기(35), 가상채널 모델부(36)를 포함할 수 있다.
DCT부(31)는 입력되는 동영상 데이터에 대해 블록 단위로 DCT(Discrete cosine Transform)을 수행하여 DCT계수를 생성한다. 양자화부(32)는 DCT 계수들에 대해 양자화(quantization)을 수행하는 모듈이다. 채널 인코더(33)는 양자화된 DCT계수와 같은 입력 동영상 데이터에 대한 정보를 채널 인코딩하여 디코더로 제공하는데, 채널 인코더(33)는 예를 들어, PRISM의 신드롬 인코더(syndrome encoder)를 사용할 수 있다. CRC(cyclic Redundancy check) 생성기(34)는 디코더에서 인코딩 비트스트림의 디코딩 시 데이터의 정확성을 확인하기 위한 정보이다. 이러한 DCT부(31), 양자화부(32), 채널 인코더(33), CRC 생성기(34) 부분 등의 연결구조는 종래에 알려진 구조를 사용하여도 무방하다. 예컨대, 종래 PRISM의 연결구조와 동일하게 사용하여도 무방하다.
단계적 움직임 예측기(35) 및 가상채널 모델링부(36)는 단계적 움직임 예측 과정에 사용된다. 단계적 움직임 예측기(35) 및 가상채널 모델링부(36)를 통해 수행된 단계적 움직임 예측의 결과, 즉 예측정보는 인코딩 비트스트림에 포함되어 디코더에 제공된다.
단계적 움직임 예측기(35)는 단계적 움직임 예측을 수행하는데, 전체탐색방식에 비해 계산량이 작은 탐색방식 예를 들면, 삼단계 탐색방식(Three Step Search, TSS), 2차원 로그 탐색방식, 이진 값으로 경계를 구하고 경계에 대한 정보로 매칭하는 방법 등이 사용될 수 있다. 즉, 단계적 움직임 예측기(35)에서는 단계적 움직임 탐색을 통해 단계적 움직임 예측을 수행할 수 있다.
도 5는 전체 탐색방식의 복잡도를 나타낸다. 전체 탐색방식은 탐색범위 안의 모든 픽셀(pixel)에서 현재 프레임 데이터와 가장 차이가 작은 부분을 찾는 방식이다. 전체 탐색방식의 복잡도 O(p2)은 탐색범위의 제곱에 비례하게 증가하기 때문에 정확도를 증가시키기 위해 탐색범위를 증가시킬 경우 복잡도가 매우 높게 된다. 따라서, 전체 탐색방식을 그대로 분산 동영상 코딩에 적용하는 것은 적합하지 않다.
도 6은 삼단계 탐색방식을 나타낸다.
삼단계 탐색방식은 넓은 탐색 간격의 초기 패턴으로부터 시작해서 탐색 간격을 1/2간격으로 좁히면서 3번의 단계를 거쳐서 움직임 벡터를 결정하게 된다. 보다 구체적으로 예컨대, 기준점인 원점 (0, 0)을 중심으로 원점과 함께 4픽셀 떨어진 곳의 8개의 점에 대해 정합을 실시하여 최소 블록 정합 오차를 가지는 지점을 결정한다(1단계). 그리고 1단계에서 결정된 최소 블록 정합 지점을 중심으로 1단계 간격의 반인 2 픽셀 떨어진 8개의 지점을 1단계에서와 마찬가지로 검사하여 최소 블록 정합 오차 지점을 결정한다(2단계). 마지막으로, 2단계에서 얻은 최소 블록 정합 오차 지점을 중심으로 1픽셀 떨어진 8개의 지점을 검사하여 최소 블록 정합 오차 값을 갖는 지점을 결정하면, 이 지점을 가리키는 값을 움직임 벡터로 한다. 삼단계 탐색방식의 경우 복잡도가 탐색 범위의 로그값에 비례하여 증가하게 되어 전체 탐색방식에 비하여 복잡도가 작다. N단계 탐색 방식은 상술한 삼단계 탐색방식을 N단계로 확장한 것으로 단계의 수가 늘어날 뿐 탐색 원리는 동일하다.
도 7은 삼단계 탐색방식의 수행 방법을 나타낸 흐름도이다. 먼저 기준점을 설정(S70)하고, SAD(Sum of Absolute Difference)함수를 실행한다(S71). SAD는 움직임 예측을 하는 과정에서 현재 프레임 내의 블록과 탐색범위 내의 블록간의 차를 구하는 함수를 의미한다. 그리고, 단계크기를 설정(S72)한다. 단계크기가 0이 될 때까지 움직임 탐색을 반복함(S73 내지 S74)을 볼 수 있다. 단계크기는 탐색 범위에 따라 결정된다. 인코더의 복잡도와 채널 모델링의 정확도를 고려하여 삼단계 탐색방식을 인코더에서 적응적으로 수행함으로써 채널모델링의 정확도를 높이고 복잡도의 증가를 최소화할 수 있다.
도 8은 전체탐색방식과 삼단계 탐색방식을 사용하는 경우 CPU점유율과 호출횟수를 나타낸다. 전체탐색방식의 경우엔 SAD의 CPU 점유율이 69.5 %이고 삼단계 탐색방식의 경우에는 20.8%이다. 본 발명에서 삼단계 탐색방식을 이용한 단계적 움직임 예측을 적용하는 경우 최대 20%의 복잡도 증가가 발생할 수 있지만, 작은 움직임 예측 범위에서 단계적 움직임 예측의 일부만을 수행하고 반-픽셀추정(half-pel estimation)을 하지 않는 경우에는 5%미만의 복잡도만 증가될 수 있다.
도 9의 부도면 (a)는 종래의 PRISM에서 움직임 예측을 적용하는 과정을 나타낸 도면이고, 도 9의 부도면 (b)는 본 발명에 의한 움직임 예측을 PRISM에 적용하는 과정을 나타낸 도면이다. 도 9 (a)를 참조하면, 종래의 PRISM에서는 이전 프레임인 Frame (n-1)의 데이터와 현재 프레임인 Frame n에 대한 데이터를 바로 차분하여 등급 분류기(classifier)에서 채널 모델링을 수행한다. 반면에 도9 (b)를 참조하면, 본 발명에 의한 움직임 예측을 PRISM에 적용하는 경우 이전 프레임인 Frame (n-1)의 데이터와 현재 프레임인 Frame n의 데이터에 단계적 움직임 예측을 수행한 후 등급 분류기에서 채널 모델링을 수행한다. 본 발명의 움직임 예측을 PRISM에 적용하게 되면 채널 모델링이 정확하게 되고 결과적으로 압축효율이 증가하게 된다.
도 10은 인코더에서 움직임 예측을 수행했을 경우와 수행하지 않았을 경우의 EC(Energy Compaction)를 나타낸다. EC는 DCT계수에서 저주파 부분이라고 할 수 있는 A 영역이 차지하는 비율로 A/(A+B)을 나타낸다. 도 10에서 움직임예측을 수행한 경우에는 배경부분의 EC가 낮은 것을 볼 수 있는데 이것은 움직임 예측을 통하여 저주파부분의 중복성이 제거되었기 때문이다. 이는 차분값이 적음을 뜻한다. 움직 임 예측을 수행하지 않은 경우는 많은 차분값이 분포함을 볼 수 있다.
인코더에서 생성되는 예측정보 즉, 총 예측단계 수(N), 실제 예측단계 수(K), 움직임 벡터는 예를 들어 표 1과 같은 정보로 인코딩 비트스트림에 포함되어 디코더로 제공될 수 있다.
Figure 112009051367836-PAT00001
표 1에서 distributed_motion_estimation_flag는 인코더에서 단계적 움직임 예측이 수행되는지 여부를 나타내는 정보로 그 값이 1이 되면 단계적 움직임 예측을 수행하는 것이고 0이 되면 수행하지 않는 것을 나타낼 수 있다.
total_step_size는 총 예측단계 수(N)을 나타내는 정보일 수 있고, encoder_step_size는 실제 예측단계 수(K)를 나타내는 정보일 수 있다. 표 1에서는 distributed_motion_estimation_flag, total_step_size, encoder_step_size를 각각 1비트, 4비트, 3비트로 표시하였으나, 이는 예시에 불과함은 당연하다.
예측정보들은 기존 코덱 예를 들면 MPEG, H.264/AVC에서와 동일한 방식으로 디코더에게 전달할 수 있고 디코더에서는 예측정보들을 이용하여 단계적 움직임 예측의 나머지 단계를 수행할 수 있다. 만약, 인코더에서 예측정보를 전달해주지 않는 경우에는 디코더에서 종래의 방식 예컨대, 종래의 PRISM의 움직임 예측 방법을 통하여 움직임 예측을 수행할 수도 있다.
도 11은 본 발명의 실시예에 따른 디코더의 구조를 나타낸 블록도이다.
도 11을 참조하면, 디코더는 채널디코더, CRC검사기, 움직임 보상 및 후처리부, 단계적 움직임 예측기(111), 전체 탐색기(112)를 포함한다.
채널 디코더는 인코딩 비트스트림을 입력받아 채널 디코딩을 수행한다. CRC검사기는 인코딩 비트스트림에 포함된 CRC를 체크하여 데이터의 복원이 성공적으로 수행되었는지를 검사한다. 움직임 보상 및 후처리부는 움직임 보상과 디블록킹과 같은 후처리과정을 수행하는 모듈이다. 이러한 부분들의 연결구조는 종래의 PRISM에서 사용되는 연결구조와 동일하게 사용하여도 무방하다.
단계적 움직임 예측기(111)는 인코딩 비트스트림에 포함된 예측정보를 제공받아 인코더에서 수행되지 않은 단계적 움직임 예측의 나머지 단계를 수행할 수 있다. 전체 탐색기(112)는 예측정보를 이용하여 제한된 탐색범위에 한정하여 전체탐색방식으로 움직임 탐색을 수행하는 모듈이다. 예를 들어, 삼단계 탐색방식 중 2단계까지 인코더에서 수행된 경우, 전체 탐색기(112)는 인코더에서 단계적 움직임 탐색의 2단계까지 수행된 결과 좁아진 탐색범위에 한정하여 전체탐색을 한다. 즉, 좁아진 탐색범위에 한정하여 모든 픽셀에 대해 움직임 탐색을 수행하는 것이다.
도 12는 디코더에서 단계적 움직임 예측을 수행하는 과정을 예시적으로 나타낸 흐름도이다. 디코더는 예측정보를 확인하여 기준점을 설정하고 CRC검사를 수행한다. 그리고, 단계적 움직임 예측의 단계 크기를 설정한다. 단계크기를 비교하면서 반복적으로 단계적 움직임 예측을 수행한다.
본 발명에서는 예측되는 압축율이 소정의 임계값 이하일 때까지 움직임 예측을 수행할 수 있다. 예상되는 압축율을 계산하기 위하여 원 블록과 예측된 블록의 차이(예컨대, SAD 값)를 이용한다. 일 실시예로, 픽셀별 차이값의 분포를 라플라시안(Laplacian) 함수에 맞추고, 라플라시안(Laplacian) 인자를 이용해서 압축율을 계산할 수 있다. 라플라시안 인자 α는 픽셀별 차이값의 분산값에서 구할 수 있다. 이때, 픽셀별 차이값의 평균은 0에 가까워야 한다.
디코더는 예측정보를 이용하여 인코더에서 수행된 단계적 움직임 예측의 단계를 제외한 나머지 단계를 수행할 수 있다. 또는 예측정보를 이용하여 제한된 탐색범위에 한정하여 전체탐색방식으로 움직임 탐색을 수행할 수 있다.
이하에서는 본 발명의 효과를 설명하기 위해 동영상의 인코더와 동영상 디코더의 분산적 움직임 예측 방법을 수행한 경우의 시험 결과를 보여준다.
도 13은 City 영상의 첫 번째 프레임(frmae 0)과 두 번째 프레임(frame 1)의 차분영상(frame 1- frame 0)과 차분 값의 분포를 나타낸다. 첫 번째 프레임과 두 번째 프레임에서 영상의 움직임이 적은 데도 불구하고 차분 값이 많이 나타나고 분포 또한 넓게 나타나는 것을 볼 수 있다.
도 14는 단계적 움직임 예측의 수행에 따른 차분영상의 변화를 나타낸다. 단계적 움직임 예측의 단계수가 커질수록 차분 영상이 점점 사라지는 것을 볼 수 있다. 이것은 움직임 예측이 단계적 움직임 예측의 단계수가 증가함에 따라 보다 정확하게 수행된다는 의미이다.
도 15는 단계적 움직임 예측 수행에 따른 차분값의 분포를 나타낸다. 단계적 움직임 탐색의 단계수가 커질수록 폭이 좁아지는 것을 볼 수 있다. 즉, 차분값의 분산값이 줄어드는 것을 알 수 있다.
분산 동영상 코딩에서 비트율은 차분값의 분포에 따라 결정되며 그 수식은 수학식 1과 같다.
Figure 112009051367836-PAT00002
수학식 1에서,
Figure 112009051367836-PAT00003
는 비트율을 나타내며, σ2는 차분값의 분산을 나타낸다. 채널 모델링을 인코더 측에서 수행할 때 단계적 움직임 예측을 수행하지 않으면 움직임 예측을 통하여 제거될 수 있는 부분까지 코딩하게 되어 압축효율이 떨어지게 된다. 하지만 단계적 움직임 예측을 수행할 경우 차분값의 분산이 줄어들게 되어 압축효율이 증가하게 된다.
본 발명이 제안하는 단계적 움직임 예측방법은 움직임 예측을 효과적으로 인코더와 디코더에서 나누어 수행할 수 있다. 이를 통하여 차분값 분포의 감소 즉 차분값 분산이 줄어들게 되고, 보다 정확한 채널 모델링을 수행할 수 있으며, 압축 효율을 증가시키는 효과가 있다.
본 발명의 실시예에 따른 인코딩, 디코딩 방법은 다음과 같은 응용분야에 적 용될 수 있다. 1. 분산 비디오 전송 및 네트워크 캠코더, 2. 저전력 무선 감시시스템, 3. 무선 비디오 캠코더, 4. 비쥬얼 센서 네트워크 등이다. 이러한 응용분야는 대화형 서비스와 스트리밍 서비스의 특징을 갖는다.
도 16은 응용분야의 특징과 손실에 대한 민감도에 따른 구분을 나타낸다. 대화형 응용분야와 스트리밍 서비스 응용분야의 경우 지연에 매우 민감한 것을 볼 수 있다. 비디오폰 같은 경우 단말 대 단말 지연이 150ms 이하이어야 하고 VOD(Video on demand)같은 경우 버퍼링 지연이 10초 이하이어야 하며 지연이 기준치 이상으로 발생할 경우에는 손실로 간주하게 된다. 상술한 응용분야에서 본 발명에 따른 분산적 움직임 예측이 적용되는 경우 디코딩 지연이 적고, 압축효율이 좋은 결과를 얻을 수 있다.
이상 본 발명에 대하여 실시예를 참조하여 설명하였지만, 해당 기술 분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시켜 실시할 수 있음을 이해할 수 있을 것이다. 따라서 상술한 실시예에 한정되지 않고, 본 발명은 이하의 특허청구범위의 범위 내의 모든 실시예들을 포함한다고 할 것이다.
도 1은 분산 동영상 코딩 중에서 피드백(feedback)을 사용하는 방식에 대한 인코딩, 디코딩 과정의 일 예를 나타낸 블록도이다.
도 2는 분산 동영상 코딩 중에서 피드백을 사용하지 않는 방식 중 하나인 PRISM(Power-efficient, Robust, hIghcompression, Syndrome-based Multimedia coding)의 구조를 나타낸다.
도 3은 본 발명의 일 실시예에 따른 인코더 및 디코더에서 분산적 움직임 예측을 수행하는 과정을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 인코더의 구조를 나타낸 블록도이다.
도 5는 전체 탐색방식의 복잡도를 나타낸다.
도 6은 삼단계 탐색방식을 나타낸다.
도 7은 삼단계 탐색방식의 수행 방법을 나타낸 흐름도이다.
도 8은 전체탐색방식과 삼단계 탐색방식을 사용하는 경우 CPU점유율과 호출횟수를 나타낸다.
도 9의 부도면 (a)는 종래의 PRISM에서 움직임 예측을 적용하는 과정을 나타낸 도면이고, 도 9의 부도면 (b)는 본 발명에 의한 움직임 예측을 PRISM에 적용하는 과정을 나타낸 도면이다.
도 10은 인코더에서 움직임 예측을 수행했을 경우와 수행하지 않았을 경우의 EC(Energy Compaction)를 나타낸다.
도 11은 본 발명의 실시예에 따른 디코더의 구조를 나타낸 블록도이다.
도 12는 디코더에서 단계적 움직임 예측을 수행하는 과정을 예시적으로 나타낸 흐름도이다.
도 13은 City 영상의 첫 번째 프레임(frmae 0)과 두 번째 프레임(frame 1)의 차분영상(frame 1- frame 0)과 차분 값의 분포를 나타낸다.
도 14는 단계적 움직임 예측의 수행에 따른 차분영상의 변화를 나타낸다.
도 15는 단계적 움직임 예측 수행에 따른 차분값의 분포를 나타낸다.
도 16은 응용분야의 특징과 손실에 대한 민감도에 따른 구분을 나타낸다.

Claims (7)

  1. 동영상 인코더의 분산적 움직임 예측 방법에 있어서,
    이전 프레임 데이터를 이용하여 현재 프레임 데이터에 대한 단계적 움직임 예측을 수행할 총 예측단계 수를 결정하는 단계;
    상기 총 예측단계 수 이하인 실제 예측단계 수만큼 상기 현재 프레임 데이터에 대하여 단계적 움직임 예측을 수행하여 움직임 벡터를 생성하는 단계; 및
    상기 총 예측단계 수, 상기 실제 예측단계 수 및 상기 움직임 벡터를 디코더로 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 총 예측단계 수 및 상기 실제 예측단계 수는 프레임 단위로 결정되는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서,
    상기 총 예측단계 수 및 상기 실제 예측단계 수는 프레임 내의 블록 단위로 결정되는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서, 상기 단계적 움직임 예측은 삼단계 탐색 방식(Three Step Search, TSS)을 이용하는 것을 특징으로 하는 방법.
  5. 동영상 디코더의 분산적 움직임 예측 방법에 있어서,
    인코더로부터 현재 프레임 데이터에 대한 단계적 움직임 예측의 총 예측단계 수, 상기 현재 프레임 데이터에 대해 상기 단계적 움직임 예측이 어느 단계까지 수행되었는지를 나타내된 실제 예측단계 수 및 상기 실제 예측단계 수만큼 수행된 단계적 움직임 예측을 통해 도출된 움직임 벡터를 획득하는 단계; 및
    상기 총 예측단계 수, 상기 실제 예측단계 수 및 상기 움직임 벡터를 이용하여 상기 현재 프레임 데이터에 대한 움직임 예측을 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제 5 항에 있어서,
    상기 움직임 예측을 수행하는 단계는 상기 인코더에서 수행되지 않은 단계적 움직임 예측의 나머지 단계를 수행하는 단계를 포함하되, 상기 나머지 단계에 대한 정보는 상기 총 예측단계 수에서 상기 실제 예측단계 수를 차분한 값으로부터 도출하는 것을 특징으로 하는 방법.
  7. 제 5 항에 있어서,
    상기 움직임 예측을 수행하는 단계는 상기 총 예측단계 수 및 상기 실제 예측단계 수로부터 도출한 탐색영역에 대하여 전체탐색방식을 수행하는 단계를 포함하는 것을 특징으로 하는 방법.
KR1020090077801A 2008-08-21 2009-08-21 동영상 인코더와 동영상 디코더에서의 분산적 움직임 예측 방법 KR101035746B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20080082044 2008-08-21
KR1020080082044 2008-08-21

Publications (2)

Publication Number Publication Date
KR20100023781A true KR20100023781A (ko) 2010-03-04
KR101035746B1 KR101035746B1 (ko) 2011-05-20

Family

ID=42175931

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090077801A KR101035746B1 (ko) 2008-08-21 2009-08-21 동영상 인코더와 동영상 디코더에서의 분산적 움직임 예측 방법

Country Status (1)

Country Link
KR (1) KR101035746B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101103974B1 (ko) * 2010-03-25 2012-01-06 성균관대학교산학협력단 분산 비디오 부호화/복호화 방법 및 분산 비디오 부호화/복호화 장치
KR101274508B1 (ko) * 2010-12-21 2013-06-13 성균관대학교산학협력단 분산 비디오 트랜스 코딩 방법 및 이를 위한 장치
US9210436B2 (en) 2010-01-11 2015-12-08 Sungkyunkwan University Foundation For Corporate Collaboration Distributed video coding/decoding method, distributed video coding/decoding apparatus, and transcoding apparatus

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100502138B1 (ko) 2002-10-24 2005-07-20 주식회사 이지미디어 이웃하는 움직임 벡터를 이용한 가이디드 탐색방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9210436B2 (en) 2010-01-11 2015-12-08 Sungkyunkwan University Foundation For Corporate Collaboration Distributed video coding/decoding method, distributed video coding/decoding apparatus, and transcoding apparatus
KR101103974B1 (ko) * 2010-03-25 2012-01-06 성균관대학교산학협력단 분산 비디오 부호화/복호화 방법 및 분산 비디오 부호화/복호화 장치
KR101274508B1 (ko) * 2010-12-21 2013-06-13 성균관대학교산학협력단 분산 비디오 트랜스 코딩 방법 및 이를 위한 장치

Also Published As

Publication number Publication date
KR101035746B1 (ko) 2011-05-20

Similar Documents

Publication Publication Date Title
JP5535618B2 (ja) 動き予測検索範囲及び拡張動きベクトルの範囲の動的選択
TWI452907B (zh) 最佳化之解區塊濾波器
US8599929B2 (en) Distributed video decoder and distributed video decoding method
JP2007523525A (ja) 回転マッチングを使用して動きを予測する映像符号化装置及び方法
JP5133290B2 (ja) 動画像符号化装置および復号装置
EP3146719A1 (en) Re-encoding image sets using frequency-domain differences
CN107343202B (zh) 基于附加码率的无反馈分布式视频编解码方法
KR20040015477A (ko) 이산코사인변환 계수를 참조하는 움직임 추정 방법 및 장치
KR101035746B1 (ko) 동영상 인코더와 동영상 디코더에서의 분산적 움직임 예측 방법
KR20130046377A (ko) 화소 블록 코딩 및 재구성 방법 및 대응 장치
KR101639434B1 (ko) 와이너-지브 부호화 및 복호화 시스템 및 방법
WO2022198465A1 (zh) 一种编码方法及装置
KR100584422B1 (ko) 영상데이터의 압축 장치 및 방법
KR101500300B1 (ko) 부호화기와 복호화기 사이에 상호작용이 가능한 선택적 저전력 비디오 코덱 장치, 이를 이용한 부호화 및 복호화 방법
Hanca et al. Real-time distributed video coding for 1K-pixel visual sensor networks
Kodavalla et al. Distributed video coding: feedback-free architecture and implementation
KR101074919B1 (ko) 분산 비디오 부호화 영상의 복호화 장치 및 그 방법
KR101311410B1 (ko) 픽쳐 그룹의 구조를 변화시키는 분산 비디오 부호화/복호화 방법 및 이러한 방법을 수행하는 장치
US20060133488A1 (en) Method for encoding and decoding video signal
KR101038205B1 (ko) 분산 비디오 압축 기법을 위한 가상 채널 모델링 방법 및 장치
JP2013157950A (ja) 符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム
Kuo et al. Distributed video coding with limited feedback requests
Li et al. Side information extrapolation using motion-aligned auto regressive model for compressed sensing based Wyner-Ziv codec
KR101307469B1 (ko) 비디오 인코더, 비디오 디코더, 비디오 인코딩 방법 및 비디오 디코딩 방법
Park et al. Multiple channel division for efficient distributed video coding

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140422

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150417

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160419

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee