首页 / 专利库 / 电脑图像 / 运动矢量 / 움직임 벡터 정규화에 기초한 영상의 부호화 방법 및 장치, 영상의 복호화 방법 및 장치

움직임 벡터 정규화에 기초한 영상의 부호화 방법 및 장치, 영상의 복호화 방법 및 장치

阅读:529发布:2024-02-15

专利汇可以提供움직임 벡터 정규화에 기초한 영상의 부호화 방법 및 장치, 영상의 복호화 방법 및 장치专利检索,专利查询,专利分析的服务。并且PURPOSE: An image encoding method based on motion vector normalization and an apparatus thereof, and an encoding method of an image and an apparatus thereof are provided to provide a consistent motion vector field as acquiring the motion vector close to actual motion of the object, by acquiring a larger merged block by merging blocks included in the same object, and predicting the motion vector on the basis of the acquired merged block. CONSTITUTION: A motion prediction and compensation part acquires motion vectors of blocks, and merges two adjacent blocks (910,920). The motion prediction and compensation part acquires a motion vector (930). For the merged block, a block merge part acquires variation of motion prediction error prepared for uniformity of the motion vector by the merging (940). On the basis of the acquired variation, the block merge part determines a merged block which has the smallest variation among the merged blocks, and determines whether to merge the blocks included in the determined merged block (950). [Reference numerals] (910) Acquire the motion vectors of blocks; (920) Merge two adjacent blocks and acquire the merged blocks; (930) Acquire the movement vector of the merged blocks; (940) Acquire the variation of motion prediction errors prepared for uniformity of the motion vector based on the motion vector of the merged blocks, the motion vectors of the blocks contained in the merged block, the motion vectors of the blocks around the merged block, and the motion vectors of the blocks around the blocks contained in the merged block; (950) Determine the merged block which has the smallest variation among the merged blocks based on the acquired variation and determine whether to merge the blocks contained in the determined merged block; (AA) Start; (BB) End,下面是움직임 벡터 정규화에 기초한 영상의 부호화 방법 및 장치, 영상의 복호화 방법 및 장치专利的具体信息内容。

  • 영상 부호화 방법에 있어서,
    영상을 구성하는 블록들의 움직임 벡터들을 획득하는 단계;
    서로 인접한 두 개의 블록들을 병합하여 병합 블록들을 획득하는 단계;
    각 병합 블록의 움직임 벡터를 획득하는 단계;
    상기 병합 블록의 움직임 벡터, 상기 병합 블록에 포함된 상기 블록들의 움직임 벡터, 상기 병합 블록의 주변 블록들의 움직임 벡터 및 상기 병합 블록에 포함된 블록들의 주변 블록들의 움직임 벡터에 기초하여, 상기 병합 블록에 대하여 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량을 획득하는 단계; 및
    상기 획득된 변화량에 기초하여, 상기 병합 블록들 중 상기 변화량이 가장 작은 병합 블록을 결정하고 상기 결정된 병합 블록에 포함된 블록들의 병합 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  • 제 1항에 있어서,
    상기 변화량을 획득하는 단계는
    상기 병합 블록에 포함된 상기 블록들의 움직임 벡터, 상기 병합 블록의 주변 블록들의 움직임 벡터 및 상기 병합 블록에 포함된 블록들의 주변 블록들의 움직임 벡터를 이용하여, 상기 병합 블록의 움직임 벡터와 상기 병합 블록의 주변 블록들의 움직임 벡터들 사이의 불균일성 정도와 상기 병합 블록에 포함된 상기 블록들 각각의 움직임 벡터들과 상기 블록들 각각의 주변 블록들의 움직임 벡터들 사이의 불균일성 정도의 차이를 나타내는 상기 움직임 벡터의 균일화 정도를 획득하는 단계;
    상기 병합 블록의 움직임 벡터에 의한 움직임 예측 오차와 상기 병합 블록에 포함된 상기 블록들 각각의 움직임 벡터에 의한 움직임 예측 오차 사이의 차이를 나타내는 상기 움직임 예측 오차의 변화량을 획득하는 단계; 및
    상기 획득된 움직임 예측 오차의 변화량을 상기 움직임 벡터의 균일화 정도로 나누어, 상기 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량을 획득하는 단계를 포함하는 것을 특징으로 하는 영상 부호화 방법.
  • 제 2항에 있어서,
    상기 병합 블록을 T, 상기 병합 블록에 포함된 두 개의 블록을 각각 R 및 S, 상기 병합 블록의 움직임 벡터를 V T , 상기 블록들 R 및 S 각각의 움직임 벡터를 V R 및 V S , 상기 병합 블록 T의 움직임 벡터 V T 에 의한 움직임 예측 오차를 SAD(T, V T ), 상기 블록 R의 움직임 벡터 V R 에 의한 움직임 예측 오차를 SAD(R, V R ), 상기 블록 S의 움직임 벡터 V S 에 의한 움직임 예측 오차를 SAD(S, V s ), 함수 φ(X)는 다음의 수학식; (Π는 블록 X와 인접한 주변 블록들의 집합, Q는 Π에 포함된 하나의 주변 블록)에 의하여 정의되는 블록 X의 움직임 벡터와 상기 블록 X의 주변 블록의 움직임 벡터의 불균일한 정도를 획득하는 함수, C(R, S)는 상기 블록들 R 및 S의 병합에 의한 병합 블록 T의 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량이라고 할 때,
    상기 C(R, S)는 다음의 수학식;

    에 따라 획득되는 것을 특징으로 하는 영상 부호화 방법.
  • 제 1항에 있어서,
    상기 병합 여부를 결정하는 단계는
    상기 획득된 변화량과 소정 임계값을 비교하여, 상기 획득된 변화량이 상기 소정 임계값보다 작은 경우 상기 결정된 병합 블록에 포함된 블록들을 병합하고, 상기 획득된 변화량이 상기 소정 임계값 이상인 경우 상기 결정된 병합 블록에 포함된 블록들을 병합하지 않고 원 블록을 유지하는 것을 특징으로 하는 영상 부호화 방법.
  • 제 1항에 있어서,
    상기 획득된 병합 블록의 변화량이 상기 소정 임계값보다 작은 동안 상기 단계들을 반복하는 것을 특징으로 하는 영상 부호화 방법.
  • 제 1항에 있어서,
    상기 영상을 부호화한 비트스트림에 상기 블록들의 병합 정보 및 상기 병합 블록의 움직임 벡터 정보를 부호화하는 단계를 더 포함하는 것을 특징으로 하는 영상 부호화 방법.
  • 영상 부호화 장치에 있어서,
    영상을 구성하는 블록들의 움직임 벡터들 및 서로 인접한 두 개의 블록들을 병합하여 병합 블록들 각각의 움직임 벡터를 획득하는 움직임 예측 및 보상부; 및
    상기 병합 블록의 움직임 벡터, 상기 병합 블록에 포함된 상기 블록들의 움직임 벡터, 상기 병합 블록의 주변 블록들의 움직임 벡터 및 상기 병합 블록에 포함된 블록들의 주변 블록들의 움직임 벡터에 기초하여, 상기 병합 블록에 대하여 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량을 획득하고, 상기 획득된 변화량에 기초하여, 상기 병합 블록들 중 상기 변화량이 가장 작은 병합 블록을 결정하고 상기 결정된 병합 블록에 포함된 블록들의 병합 여부를 결정하는 블록 병합부를 포함하는 것을 특징으로 하는 영상 부호화 장치.
  • 영상의 복호화 방법에 있어서,
    수신된 비트스트림으로부터 상기 영상을 구성하는 블록들 중 적어도 두 개의 서로 인접한 블록들을 병합한 병합 블록 및 상기 병합 블록의 움직임 벡터에 대한 정보를 획득하는 단계; 및
    상기 움직임 벡터를 이용하여 상기 병합 블록에 대한 움직임 보상을 수행하여 상기 병합 블록의 예측값을 획득하는 단계를 포함하며,
    상기 병합 블록은
    상기 적어도 두 개의 서로 인접한 블록들의 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량과 소정 임계값과의 비교 결과에 따라서 상기 인접한 블록들을 병합하여 결정된 것을 특징으로 하는 영상 복호화 방법.
  • 제 8항에 있어서,
    상기 변화량은
    상기 병합 블록의 움직임 벡터에 의한 움직임 예측 오차와 상기 병합 블록에 포함된 상기 블록들 각각의 움직임 벡터에 의한 움직임 예측 오차 사이의 차이를 나타내는 상기 움직임 예측 오차의 변화량을, 상기 병합 블록의 움직임 벡터와 상기 병합 블록의 주변 블록들의 움직임 벡터들 사이의 불균일성 정도와 상기 병합 블록에 포함된 상기 블록들 각각의 움직임 벡터들과 상기 블록들 각각의 주변 블록들의 움직임 벡터들 사이의 불균일성 정도의 차이를 나타내는 상기 움직임 벡터의 균일화 정도로 나누어 획득되는 것을 특징으로 하는 영상 복호화 방법.
  • 제 9항에 있어서,
    상기 병합 블록을 T, 상기 병합 블록에 포함된 두 개의 블록을 각각 R 및 S, 상기 병합 블록의 움직임 벡터를 V T , 상기 블록들 R 및 S 각각의 움직임 벡터를 V R 및 V S , 상기 병합 블록 T의 움직임 벡터 V T 에 의한 움직임 예측 오차를 SAD(T, V T ), 상기 블록 R의 움직임 벡터 V R 에 의한 움직임 예측 오차를 SAD(R, V R ), 상기 블록 S의 움직임 벡터 V S 에 의한 움직임 예측 오차를 SAD(S, V s ), 함수 φ(X)는 다음의 수학식; (Π는 블록 X와 인접한 주변 블록들의 집합, Q는 Π에 포함된 하나의 주변 블록)에 의하여 정의되는 블록 X의 움직임 벡터와 상기 블록 X의 주변 블록의 움직임 벡터의 불균일한 정도를 획득하는 함수, C(R, S)는 상기 블록들 R 및 S의 병합에 의한 병합 블록 T의 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량이라고 할 때,
    상기 C(R, S)는 다음의 수학식;

    에 따라 획득되는 것을 특징으로 하는 영상 복호화 방법.
  • 제 8항에 있어서,
    상기 병합 블록은
    상기 획득된 변화량과 상기 소정 임계값을 비교하여, 상기 획득된 변화량이 상기 소정 임계값보다 작은 경우 상기 병합 블록에 포함된 블록들을 병합하여 획득되는 것을 특징으로 하는 영상 복호화 방법.
  • 영상의 복호화 장치에 있어서,
    수신된 비트스트림으로부터 상기 영상을 구성하는 블록들 중 적어도 두 개의 서로 인접한 블록들을 병합한 병합 블록 및 상기 병합 블록의 움직임 벡터에 대한 정보를 획득하는 엔트로피 복호화부; 및
    상기 움직임 벡터를 이용하여 상기 병합 블록에 대한 움직임 보상을 수행하여 상기 병합 블록의 예측값을 획득하는 움직임 보상부를 포함하며,
    상기 병합 블록은
    상기 적어도 두 개의 서로 인접한 블록들의 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량과 소정 임계값과의 비교 결과에 따라서 상기 인접한 블록들을 병합하여 결정된 것을 특징으로 하는 영상 복호화 장치.
  • 제 1항 내지 제 6항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  • 제 8항 내지 제 11항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  • 说明书全文

    움직임 벡터 정규화에 기초한 영상의 부호화 방법 및 장치, 영상의 복호화 방법 및 장치{Method and apparatus for encoding image, and method and apparatus for decoding image based on regularization of motion vector}

    본 발명은 영상의 부호화 및 복호화에 관한 것으로, 보다 상세하게는 블록들을 병합한 병합 블록의 움직임 벡터를 이용하여 영상을 부호화하는 방법 및 장치, 복호화하는 방법 및 장치에 관한 것이다. 또한, 본 발명은 영상을 객체 단위로 분할하고, 분할된 객체 단위로 움직임 예측 및 보상을 수행하여 영상을 부호화하는 방법 및 장치, 복호화하는 방법 및 장치에 관한 것이다.

    MPEG-1, MPEG-2, MPEG-4 H.264/MPEG-4 AVC(Advanced Video coding)와 같은 영상 압축 방식에서는 정교한 움직임 예측을 위해 영상을 여러 개의 영역(픽셀 집합)으로 분할하고, 각 영역에 대해서 움직임 벡터를 예측한다. 가장 널리 이용되는 BMA(Block Matching Algorithm) 방법은 현재 프레임에 대해 블록 형태로 픽셀 집합을 정의하고, 각 블록에 대해서 가장 유사한 블록을 이전 프레임에서 검색함으로써 블록 단위의 움직임 벡터를 예측한다.

    BMA와 같은 움직임 예측 방식은 SAD(Sum of Absolute Difference) 값을 최소화하는 움직임 벡터를 예측하기 때문에 영상에 포함된 물체의 실제 움직임을 정확히 예측하지 못할 확률이 높다. 예를 들어, 균일한(homogeneous) 물체에 포함된 블록에 대한 움직임 예측시에, 이전 프레임에도 움직임 예측되는 블록과 유사한 블록이 다수 존재할 가능성이 크므로 움직임 벡터는 실제 물체의 움직임을 정확히 반영하지 못하는 경우가 발생할 수 있다.

    또한, 종래 기술에 따르면 영상에 포함된 객체를 고려하지 않고 소정 크기의 블록 단위로 움직임 예측을 수행하기 때문에, 움직임 예측의 정확도와 정밀도가 감소한다. 예를 들어, 객체에 비해 블록의 크기가 작은 경우 블록과 유사한 영역이 이전 프레임에도 다수 존재하기 때문에 실제 움직임 벡터가 아닌 움직임 벡터가 최종 움직임 벡터로 선택될 수 있다. 또한, 객체에 비해 블록의 크기가 큰 경우에는 블록에 객체 뿐만 아니라 배경 영역의 픽셀도 포함되어 움직임 예측이 잘못 수행될 수 있다.

    본 발명이 해결하고자 하는 기술적 과제는 같은 물체에 포함된 블록들을 병합하여 보다 큰 병합 블록을 획득하고, 획득된 병합 블록에 기초하여 움직임 벡터를 예측함으로써 물체의 실제 움직임에 가까운 움직임 벡터를 획득하는 동시에 일관성있는 움직임 벡터 필드를 제공하는 것이다.

    또한 본 발명이 해결하고자 하는 기술적 과제는 영상에 포함된 객체 단위로 움직임 예측 및 보상을 수행함으로써 보다 정확한 움직임 벡터를 획득하기 위한 것이다.

    전술한 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 영상 부호화 방법은 영상을 구성하는 블록들의 움직임 벡터들을 획득하는 단계; 서로 인접한 두 개의 블록들을 병합하여 병합 블록들을 획득하는 단계; 각 병합 블록의 움직임 벡터를 획득하는 단계; 상기 병합 블록의 움직임 벡터, 상기 병합 블록에 포함된 상기 블록들의 움직임 벡터, 상기 병합 블록의 주변 블록들의 움직임 벡터 및 상기 병합 블록에 포함된 블록들의 주변 블록들의 움직임 벡터에 기초하여, 상기 병합 블록에 대하여 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량을 획득하는 단계; 및 상기 획득된 변화량에 기초하여, 상기 병합 블록들 중 상기 변화량이 가장 작은 병합 블록을 결정하고 상기 결정된 병합 블록에 포함된 블록들의 병합 여부를 결정하는 단계를 포함한다.

    본 발명의 일 실시예에 따른 영상 부호화 장치는 영상을 구성하는 블록들의 움직임 벡터들 및 서로 인접한 두 개의 블록들을 병합하여 병합 블록들 각각의 움직임 벡터를 획득하는 움직임 예측 및 보상부; 및 상기 병합 블록의 움직임 벡터, 상기 병합 블록에 포함된 상기 블록들의 움직임 벡터, 상기 병합 블록의 주변 블록들의 움직임 벡터 및 상기 병합 블록에 포함된 블록들의 주변 블록들의 움직임 벡터에 기초하여, 상기 병합 블록에 대하여 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량을 획득하고, 상기 획득된 변화량에 기초하여, 상기 병합 블록들 중 상기 변화량이 가장 작은 병합 블록을 결정하고 상기 결정된 병합 블록에 포함된 블록들의 병합 여부를 결정하는 블록 병합부를 포함한다.

    본 발명의 일 실시예에 따른 영상의 복호화 방법은 수신된 비트스트림으로부터 상기 영상을 구성하는 블록들 중 적어도 두 개의 서로 인접한 블록들을 병합한 병합 블록 및 상기 병합 블록의 움직임 벡터에 대한 정보를 획득하는 단계; 및 상기 움직임 벡터를 이용하여 상기 병합 블록에 대한 움직임 보상을 수행하여 상기 병합 블록의 예측값을 획득하는 단계를 포함하며, 상기 병합 블록은 상기 적어도 두 개의 서로 인접한 블록들의 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량과 소정 임계값과의 비교 결과에 따라서 상기 인접한 블록들을 병합하여 결정된다.

    본 발명의 일 실시예에 따른 영상의 복호화 장치는 수신된 비트스트림으로부터 상기 영상을 구성하는 블록들 중 적어도 두 개의 서로 인접한 블록들을 병합한 병합 블록 및 상기 병합 블록의 움직임 벡터에 대한 정보를 획득하는 엔트로피 복호화부; 및 상기 움직임 벡터를 이용하여 상기 병합 블록에 대한 움직임 보상을 수행하여 상기 병합 블록의 예측값을 획득하는 움직임 보상부를 포함하며, 상기 병합 블록은 상기 적어도 두 개의 서로 인접한 블록들의 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량과 소정 임계값과의 비교 결과에 따라서 상기 인접한 블록들을 병합하여 결정된다.

    본 발명의 실시예들에 따르면 동일한 객체에 포함될 확률이 높은 블록들을 병합함으로써 영상을 소수의 큰 병합 블록으로 분할할 수 있다. 이러한 소수의 큰 병합 블록들은 영상에 포함된 객체의 형태와 유사해질 수 있다. 본 발명의 실시예들에 따르면 객체의 일부분에 불과한 작은 블록을 다른 블록들과 병합하여 병합 블록을 생성하고, 병합 블록에 대한 움직임 예측을 수행함으로써 객체에 포함된 작은 블록에 대한 잘못된 움직임 예측을 방지하고 보다 정확한 움직임 벡터를 획득할 수 있다. 즉, 본 발명의 실시예들에 따르면 같은 객체 내에 포함된 블록들의 서로 다른 움직임 벡터들을 병합 블록의 움직임 벡터로 정규화(regularization)함으로써 실제로 하나의 객체가 갖는 하나의 움직임을 보다 정확하게 반영하는 움직임 벡터를 획득할 수 있다.

    또한, 본 발명의 실시예들에 따르면 객체 단위로 움직임 예측 및 보상을 수행함으로써 객체의 경계 부분에서도 보다 정확한 움직임 예측 및 보상을 수행할 수 있다.

    또한, 본 발명의 실시예들에 따르면 보다 정확한 움직임 예측 및 보상 과정을 MCFI(Motion-Compensated Frame Interpolation) 등의 보간 프레임 생성시에 이용함으로써 보다 정확한 보간 프레임을 생성할 수 있다.

    도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치의 구성을 나타낸 블록도이다.
    도 2는 본 발명과 관련된 기술 분야에서 움직임 벡터의 후처리를 위한 중간값(median) 필터링 방식을 설명하기 위한 참조도이다.
    도 3 및 도 4는 본 발명과 관련된 기술 분야에서 이용되는 중간값 필터링 방식의 문제점을 설명하기 위한 참조도이다.
    도 5는 본 발명의 일 실시예에 따라서 영상 블록의 병합 과정을 설명하기 위한 참조도이다.
    도 6은 본 발명의 일 실시예에 따라서 영상 블록의 병합 과정을 나타낸 플로우 차트이다.
    도 7은 본 발명의 일 실시예에 따라서 영상 블록의 병합이 반복되는 과정을 설명하기 위한 참조도이다.
    도 8은 본 발명의 일 실시예에 따라서 블록 병합 과정 및 움직임 벡터의 정규화 과정을 나타낸 도면이다.
    도 9은 본 발명의 일 실시예에 따른 영상 부호화 방법을 나타낸 플로우 차트이다.
    도 10은 본 발명의 일 실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
    도 11은 본 발명의 일 실시예에 따른 영상 복호화 방법을 나타낸 플로우 차트이다.
    도 12는 본 발명의 다른 실시예에 따른 영상 부호화 방법을 나타낸 플로우 차트이다.
    도 13은 본 발명의 다른 실시예에 따른 영상 복호화 방법을 나타낸 플로우 차트이다.

    이하 첨부된 도면을 참조하여 본 발명의 실시예들에 대하여 구체적으로 설명한다.

    도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치의 구성을 나타낸 블록도이다. 도 1을 참조하면, 영상 부호화 장치(100)는 감산부(110), 변환 및 양자화부(120), 엔트로피 부호화부(130), 역양자화 및 역변환부(140), 가산부(150), 저장부(160), 움직임 예측 및 보상부(170) 및 블록 병합부(180)를 포함한다. 미도시된 인트라 예측부는 인트라 예측 모드에서 블록 단위로 인트라 예측을 수행하여 각 블록의 예측값을 생성할 수 있다.

    움직임 예측 및 보상부(170)는 입력 영상을 소정 크기의 블록들로 분할하고, 분할된 각 블록에 대하여 움직임 예측을 수행하여 각 블록의 움직임 벡터를 획득한다. 이하, 본 발명에서 설명되는 블록은 매크로 블록, 매크로 블록을 분할한 파티션, 또는 HEVC(High Efficiency Video Coding)에서 이용되는 부호화 단위 중 하나를 나타낼 수 있다. 특히, 본 발명의 일 실시예에 따른 움직임 예측 및 보상부(170)는 영상을 구성하는 블록들 중 인접한 두 개의 블록들을 병합한 병합 블록에 대한 움직임 예측을 수행하여 병합 블록의 움직임 벡터도 획득한다. 후술되는 바와 같이 병합 블록들은 영상에 포함된 모든 조합 가능한 인접한 두 개의 블록들을 병합하여 획득될 수 있다. 구체적인 병합 블록의 움직임 벡터 예측 과정에 대해서는 후술한다.

    블록 병합부(180)는 병합 블록들에 포함된 블록들의 병합 여부를 결정한다. 후술되는 바와 같이, 본 발명의 일 실시예에 따른 블록 병합 과정은 소정 코스트 함수에 기초하여, 조합 가능한 모든 병합 블록들 중 최소 코스트를 갖는 병합 블록을 선택하여 병합하는 과정을 반복함으로써 수행된다. 블록 병합부(180)는 원래 두 개의 블록들 각각의 움직임 벡터에 의한 움직임 예측 오차값과 두 개의 블록을 병합함으로써 생성된 병합 블록의 움직임 벡터를 이용한 움직임 예측 오차값 사이의 변화량 정도와, 원래 두 개의 블록들이 갖는 두 개의 움직임 벡터를 하나의 병합 블록의 움직임 벡터로 균일화(uniformization)하는 과정에서 획득되는 병합에 의한 움직임 벡터의 균일화 정도를 반영하여 각 병합 블록의 코스트를 계산할 수 있다. 구체적으로, 블록 병합부(180)는 병합 블록의 움직임 벡터, 병합 블록에 포함된 블록들의 움직임 벡터, 병합 블록의 주변 블록들의 움직임 벡터 및 병합 블록에 포함된 블록들의 주변 블록들의 움직임 벡터에 기초하여, 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량을 획득한다. 그리고, 블록 병합부(180)는 획득된 변화량에 기초하여, 병합 블록들 중 변화량이 가장 작은 병합 블록을 결정하고 결정된 병합 블록의 변화량과 소정 임계값을 비교하여 최종적으로 블록들의 병합 여부를 결정한다. 블록들의 병합 과정에 대해서는 후술한다.

    블록 병합부(180)의 블록 병합 과정에 따라 영상의 최종 분할 형태가 결정되면, 움직임 예측 및 보상부(170)는 블록 또는 병합 블록의 움직임 벡터를 이용하여 이전 참조 프레임으로부터 블록 또는 병합 블록의 예측값을 획득하여 출력한다.

    감산부(110)는 블록 또는 병합 블록의 예측값과 입력값 사이의 차이값인 레지듀얼을 출력한다. 레지듀얼 데이터는 변환 및 양자화부(120)를 거쳐 양자화된 변환 계수로 출력된다. 양자화된 변환 계수는 역양자화 및 역변환부(140)를 통해 레지듀얼 데이터로 복원된다. 가산부(150)는 복원된 레지듀얼 데이터와 예측값을 가산하여 복원 영상을 생성하고, 복원 영상은 저장부(160)에 저장되어 다음 영상 프레임의 참조 프레임으로 이용된다. 양자화된 변환 계수는 엔트로피 부호화부(130)를 거쳐 비트스트림으로 출력될 수 있다. 특히, 엔트로피 부호화부(130)는 후술되는 병합 과정을 통해 영상의 분할 형태가 최종적으로 결정되면, 영상을 부호화한 비트스트림에 블록들의 병합 정보 및 병합 블록의 움직임 벡터 정보를 부가할 수 있다.

    이하, 도 1의 블록 병합부(180)에서 수행되는 블록의 병합 과정 및 움직임 벡터의 정규화 과정에 대하여 구체적으로 설명한다.

    도 2는 본 발명과 관련된 기술 분야에서 움직임 벡터의 후처리를 위한 중간값(median) 필터링 방식을 설명하기 위한 참조도이다. 도 2에서 도면 부호 210은 원래의 움직임 벡터 필드를 나타내며, 도면 부호 220은 중간값 필터링 과정 이후의 변화된 움직임 벡터 필드를 나타낸다.

    전술한 바와 같이, BMA와 같은 움직임 예측 방식에서는 SAD 값을 최소화하는 움직임 벡터를 예측하기 때문에 균일한 물체에 포함된 블록에 대한 움직임 예측시에, 이전 프레임에도 움직임 예측되는 블록과 유사한 블록이 다수 존재할 가능성이 크므로 움직임 벡터는 실제 물체의 움직임을 정확히 반영하지 못하는 경우가 발생할 수 있다. 이러한 문제점을 해결하기 위한 방법으로써 각 블록이 갖는 움직임 벡터들에 대하여 후처리 과정을 통하여 인접한 블록들이 서로 유사한 움직임 벡터를 갖도록, 주변 블록들이 갖는 움직임 벡터의 중간값을 현재 블록의 움직임 벡터로 사용하는 중간값 필터링 방법이 있다. 도 2를 참조하면, 도면 부호 210에 도시된 바와 같이 현재 블록(211)을 중심으로 주변 8개의 움직임 벡터 필드가 결정되었다고 가정한다. 중간값 필터링 방법은 현재 블록(211) 및 그 주변 블록들이 갖는 움직임 벡터들 V 0 , V 1 , ..., V 8 으로부터 다음의 수학식 1에 따라서 중간값 움직임 벡터(

    )를 획득하여 현재 블록(211)의 움직임 벡터(V

    0 )를 대체하는 것이다.

    수학식 1에서

    는 V

    i 벡터의 x축 성분, 는 V

    i 벡터의 y축 성분을 의미한다.

    도 2의 우측의 도면 부호 220을 참조하면, 수학식 1에 따른 중간값 필터링 과정에 따라서 현재 블록(221)의 움직임 벡터는 주변 블록들의 움직임 벡터와 유사하게 필터링된다.

    이러한 중간값 필터링 방식에서는 유사한 움직임 벡터를 가져야하는 움직임 벡터 필드에서 잘못된 값을 갖는 움직임 벡터를 수정하는데 도움이 될 수 있다. 그러나, 이러한 중간값 필터링 방식은 물체의 크기가 작거나 블록이 물체와 배경의 경계 부근에 있을 경우 해당 블록이 잘못된 움직임 벡터를 가질 수 있는 문제점이 있다.

    도 3 및 도 4는 본 발명과 관련된 기술 분야에서 이용되는 중간값 필터링 방식의 문제점을 설명하기 위한 참조도이다. 도 3 및 도 4에서 도면 부호 310 및 410은 원래의 움직임 벡터 필드를 나타내며, 도면 부호 320 및 420은 중간값 필터링 과정 이후의 변화된 움직임 벡터 필드를 나타낸다.

    도 3을 참조하면, 물체를 구성하는 블록들(311)에 대하여 전술한 수학식 1에 따라서 중간값 필터링이 수행될 경우, 주변 블록들 중에는 물체보다 배경에 포함된 블록이 많기 때문에 물체의 움직임으로 예측되었던 움직임 벡터가 배경의 움직임 벡터로 변경될 수 있다. 즉, 배경과 물체가 다른 움직임을 갖는 경우, 도면 부호 320에 도시된 바와 같이 중간값 필터링 방식에 의하면 물체에 포함된 블록들의 움직임 벡터는 모두 주변 배경 블록들이 갖는 움직임 벡터로 필터링되어 물체에 포함된 블록들은 실제 움직임과 다른 움직임 벡터를 가질 수 있다. 또한, 도 4를 참조하면, 중간값 필터링 방식은 대부분의 블록들이 정확한 움직임 벡터를 가지고 있다는 가정에 기초한 것이기 때문에 도면 부호 410과 같이 블록 단위에 기초한 움직임 벡터들 자체의 정확도가 떨어지는 경우에는, 중간값 필터링 이후의 도면 부호 420에 도시된 바와 같이 잘못된 움직임 벡터를 수정할 수 없다.

    본 발명의 일 실시예에 따른 블록 병합부(180)는 같은 물체에 있는 블록들을 병합한 병합 블록 단위로 움직임 벡터를 예측함으로써 실제 물체의 움직임에 가까운 움직임 벡터를 획득하고, 일관성있는 움직임 벡터 필드를 제공한다. 하나의 물체 안에 포함된 블록들은 실질적으로 동일한 움직임을 가져야 하지만, 블록 단위로 움직임 예측이 수행되므로 하나의 물체 안에 포함된 블록들 각각은 서로 다른 움직임 벡터를 가질 수 있다. 따라서, 블록 병합부(180)는 블록 단위의 움직임 예측에 따른 각 블록의 움직임 벡터와 각 블록의 움직임 예측 오차 및 병합 블록의 움직임 예측 오차 등을 고려하여 하나의 물체 안에 포함될 가능성이 높은 블록들을 병합한 병합 블록 단위로 움직임 벡터를 예측함으로써 균일하지 않은 움직임 벡터 필드를 균일화한다. 블록 병합 과정은 두 개 이상의 움직임 벡터를 병합된 블록의 하나의 움직임 벡터로 대체하는 과정에 해당된다. 즉 블록 병합을 통하여 두 개의 인접한 블록이 병합되고 병합된 블록에 대한 움직임 예측을 통해 새로운 움직임 벡터가 획득된다. 따라서, 블록 병합에 의한 움직임 벡터의 균일화(uniformization) 또는 정규화(regularization)가 수행된다.

    도 5는 본 발명의 일 실시예에 따라서 영상 블록의 병합 과정을 설명하기 위한 참조도이다.

    블록 병합부(180)는 움직임 예측 및 보상부(170)에서 결정된 각 블록의 움직임 벡터와 움직임 예측 오차값에 기반하여 같은 물체에 있을 가능성이 가장 높은 인접한 블록들을 하나의 블록으로 병합하는 과정을 반복함으로써 블록 병합을 수행한다.

    도 5를 참조하면, 움직임 예측 및 보상부(170)에서 영상(500)을 블록들(B1 내지 B9)로 분할하고 블록들(B1 내지 B9)의 움직임 벡터를 결정하였다고 가정한다. 도 5에서 영상(500)은 영상 전체 프레임일 수도 있고, 영상 프레임 중 일부일 수 있다. 설명의 편의를 위하여 도 5에서는 하나의 영상이 9개의 블록들(B1 내지 B9)으로 분할되어 움직임 예측된 경우를 가정한다.

    블록 병합부(180)는 모든 인접한 두 개의 블록들을 병합하여 병합 블록들(511 내지 522)을 생성한다. 그리고, 블록 병합부(180)는 소정 평가 함수에 따라서 병합 블록들(511 내지 522)의 코스트를 계산하여 가장 작은 값을 갖는 코스트를 갖는 병합 블록을 결정하고, 결정된 병합 블록의 코스트를 소정 임계값과 비교하여 결정된 병합 블록의 실제 병합 여부를 결정한다. 여기서, 코스트는 두 개의 블록이 하나의 물체 안에 포함되었을 때 작은 값을 갖도록 병합되는 블록 내에 포함된 두 개의 블록의 정보에 기초하여 설정된 평가 함수에 의하여 결정된다. 다시 말해서, 블록 병합부(180)는 인접한 두 개의 블록에 대한 정보를 매개 변수로 하여 두 개의 블록이 하나의 물체 안에 포함된 경우 작은 값을 갖도록 설정된 평가 함수에 기초하여 모든 병합 블록들(511 내지 522)의 코스트를 획득하고, 최소 코스트를 갖는 병합 블록에 포함된 두 개의 블록을 실제로 병합할 것인지를 최종 결정한다. 예를 들어, 병합 블록들(511 내지 522) 중 B1+B2 병합 블록(511)이 최소 코스트를 갖는 병합 블록이라고 가정한다. 블록 병합부(180)는 소정 평가 함수에 따른 코스트에 기초하여 B1+B2 병합 블록(511)이 최소 코스트를 갖는 병합 블록으로 결정되면, 다시 B1+B2 병합 블록(511)의 코스트와 소정 임계값을 비교하여 B1 블록과 B2 블록을 실제로 병합할 것인지를 최종 결정할 수 있다.

    두 개의 블록이 하나의 물체 안에 포함된 경우 작은 값을 갖도록 설정된 평가 함수는 다양한 방식으로 설정될 수 있다. 일 예로, 평가 함수는 병합 블록의 움직임 벡터와 병합 블록의 주변 블록들의 움직임 벡터들 사이의 불균일성 정도와 병합 블록에 포함된 블록들 각각의 움직임 벡터들과 블록들 각각의 주변 블록들의 움직임 벡터들 사이의 불균일성 정도의 차이를 나타내는 움직임 벡터의 균일화 정도에 대비한 병합 블록에 의한 움직임 예측 오차의 변화량을 측정하는 함수일 수 있다. 즉, 평가 함수는 (병합 블록에 의한 움직임 예측 오차의 변화량)/(움직임 벡터의 균일화 정도)을 계산하여 각 병합 블록의 코스트를 획득할 수 있다. 이와 같이, 블록 병합부(180)가 (병합 블록에 의한 움직임 예측 오차의 변화량)/(움직임 벡터의 균일화 정도)을 계산하여 블록들이 하나의 물체에 포함되었는지 여부를 판단하는 이유는, 하나의 물체안에 포함될 가능성이 높은 블록들만을 병합하여 균일하지 않은 움직임 벡터를 균일하게 하는 동시에, 서로 다른 영역(예를 들어 배경과 물체의)에 포함된 블록들은 병합되지 않도록 하기 위한 것이다.

    움직임 벡터의 균일화 정도는 병합 블록의 움직임 벡터, 병합 블록에 포함된 블록들의 움직임 벡터, 병합 블록의 주변 블록들의 움직임 벡터 및 병합 블록에 포함된 블록들의 주변 블록들의 움직임 벡터를 이용하여 결정될 수 있다. 또한, 병합 블록에 의한 움직임 예측 오차의 변화량은 병합 블록의 움직임 벡터에 의한 움직임 예측 오차와 병합 블록에 포함된 블록들 각각의 움직임 벡터에 의한 움직임 예측 오차 사이의 차이를 이용하여 결정될 수 있다. 여기서 움직임 예측 오차로써 SAD가 이용될 수 있다.

    도 6은 본 발명의 일 실시예에 따라서 영상 블록의 병합 과정을 나타낸 플로우 차트이다.

    도 6을 참조하면, 단계 610에서 블록 병합부(180)는 모든 인접한 두 개의 블록(또는 픽셀의 집합)인 R과 S에 대해서 두 개의 블록 R 및 S가 같은 물체에 있을 때 작은 값을 갖는, 소정의 평가 함수에 기초한 코스트값인 C(R,S)를 획득한다. 블록 병합이 수행되는 영상 영역을 Ω라고 할 때, 블록 병합부(180)는 영상(Ω)에 포함된 임의의 블록 R과, ψ(R)로 정의되는 블록 R의 인접 블록들 S를 이용하여 C(R,S)를 획득한다. 즉, 블록 병합부(180)는 영상(Ω)에 포함된 모든 조합 가능한 인접 블록들 R 및 S를 병합한 병합 블록들의 C(R,S)를 획득하고, 병합 블록들 중 최소 코스트 C(R,S)를 갖는 블록 R' 및 S'를 선택한다.

    단계 620에서, 블록 병합부(180)는 최소 코스트를 갖는 것으로 판단된 병합 블록의 코스트를 소정 임계값(Th)과 비교한다. 비교 결과, 최소 코스트를 갖는 병합 블록의 코스트가 소정 임계값(Th) 미만인 경우, 단계 630에서 블록 병합부(180)는 최소 코스트를 갖는 병합 블록 내의 블록들을 병합한다. 그리고, 블록 병합부(180)는 병합된 블록을 하나의 새로운 블록으로 가정하고, 다시 영상 내의 인접한 블록들을 병합한 병합 블록들에 대하여 최소 코스트를 갖는 병합 블록을 결정하고, 결정된 병합 블록의 코스트가 소정 임계값(Th)을 비교하여 블록을 병합하는 과정을 반복한다. 이러한 블록 병합 과정은 최소 코스트를 갖는 것으로 판단된 병합 블록의 코스트가 소정 임계값(Th) 보다 작은 동안 반복된다. 블록 병합부(180)는 최소 코스트를 갖는 병합 블록의 코스트가 소정 임계값(Th)이상인 경우 더 이상 병합 블록 내에 포함된 블록들을 병합하지 않고 병합 과정을 종료한다.

    도 7은 본 발명의 일 실시예에 따라서 영상 블록의 병합이 반복되는 과정을 설명하기 위한 참조도이다.

    도 5 및 도 7을 참조하면, 도 5의 병합 블록들(511 내지 522) 중 B1+B2 병합 블록(511)이 최소 코스트를 갖는 병합 블록이며, B1+B2 병합 블록(511)의 코스트가 소정 임계값(Th)보다 작아서, 블록 병합부(180)가 최종적으로 블록 B1 및 B2를 병합하여 병합 블록 B T 를 획득하였다고 가정한다. 블록 병합부(180)는 도 5에 도시된 병합 블록들(511 내지 522)의 코스트에 추가하여 병합된 블록 B T 를 새로운 하나의 블록으로 가정하여 블록 B T 와 인접한 블록들을 병합한 병합 블록들(710, 720, 730)의 코스트를 계산한다. 그리고, 블록 병합부(180)는 병합 블록들 B T +B3(710), B T +B4(720), B T +B5(730), B4+B5(513), B5+B6(514), B7+B8(515), B8+B9(516), B3+B6(519), B4+B7(520), B5+B8(521), B6+B9(522)의 코스트들 중 최소 코스트를 갖는 병합 블록을 판단하고, 최소 코스트를 갖는 병합 블록의 코스트가 소정 임계값(Th)보다 작은지를 다시 판단하여 최소 코스트를 갖는 병합 블록 내의 블록들의 병합 여부를 판단한다. 만약, B T +B3(710)이 최소 코스트를 갖는다고 가정하면, B T +B3(710)의 코스트가 소정 임계값(Th)보다 작은 경우 블록 B T 및 B3는 병합되며, B T +B3(710)의 코스트가 소정 임계값(Th) 이상인 경우 블록 B T 및 B3는 병합되지 않고 도 7과 같은 분할 상태가 최종 분할 형태로 결정되고 병합 과정은 종료된다. 즉, 전술한 바와 같이 병합 과정은 현재 처리되는 영상 내의 인접한 블록들을 병합한 병합 블록들의 코스트들 중 최소 코스트가 소정 임계값(Th)보다 작은 동안에만 반복된다.

    한편, 서로 인접한 두 개의 블록 R 및 S를 병합한 병합 블록을 T, 병합 블록의 움직임 벡터를 V T , 블록들 R 및 S 각각의 움직임 벡터를 V R 및 V S , 병합 블록 T의 움직임 벡터 V T 에 의한 움직임 예측 오차를 SAD(T, V T ), 블록 R의 움직임 벡터 V R 에 의한 움직임 예측 오차를 SAD(R, V R ), 블록 S의 움직임 벡터 V S 에 의한 움직임 예측 오차를 SAD(S, V s )라고 할 때, 코스트 C(R, S)는 다음의 수학식 2에 따라서 획득될 수 있다.

    수학식 2에서 함수 φ(X)는 다음의 수학식 3에 의하여 정의되는 함수이다.

    수학식 3에서 Π는 블록 X와 인접한 주변 블록들의 집합, Q는 Π에 포함된 하나의 주변 블록을 나타낸다. 즉, φ(X)는 블록 X의 움직임 벡터 V X 와 주변 블록들 Q의 움직임 벡터 V Q 사이의 차이값의 합으로, 블록 X의 움직임 벡터와 블록 X의 주변 블록의 움직임 벡터의 불균일한 정도를 나타낸다.

    수학식 2에서, 분모 부분은 병합 블록의 움직임 벡터와 병합 블록의 주변 블록들의 움직임 벡터들 사이의 불균일성 정도와 병합 블록에 포함된 블록들 각각의 움직임 벡터들과 블록들 각각의 주변 블록들의 움직임 벡터들 사이의 불균일성 정도의 차이로서, 병합에 의한 움직임 벡터의 균일화 정도를 나타낸다. 즉, 분모 부분은 병합에 의하여 두 개의 움직임 벡터가 병합 블록의 하나의 움직임 벡터로 대체됨으로써 움직임 벡터가 균일화되는 정도를 정량화한 값이다. 병합 과정에 의하여 원래 두 개의 움직임 벡터가 병합 블록의 하나의 움직임 벡터로 대체되는데, 병합에 의하여 움직임 벡터의 균일성이 크게 증가하지 않는 경우에는 수학식 2의 분모는 상대적으로 작은 값을 갖게 되어 C(R,S)의 값은 증가된다. 따라서, 병합에 의하여 움직임 벡터의 균일성이 크게 증가하지 않는 경우 병합을 수행하지 않기 위하여 수학식 2의 분모 부분과 같이 병합에 의한 움직임 벡터의 균일화 정도를 정량화하여 측정한다.

    또한 수학식 2에서, 분자 부분은 병합에 의한 움직임 예측 오차의 변화량을 나타낸다. 서로 다른 물체에 포함된 블록들이 병합되어 하나의 움직임 벡터를 갖게 되는 경우 병합 블록의 SAD가 크게 증가하므로, 수학식 2의 분자 부분과 같이 병합에 의하여 새롭게 생성된 병합 블록에 의한 움직임 예측 오차와 병합 이전의 두 개의 블록 각각에 의한 움직임 예측 오차의 합의 차이를 계산함으로써 병합되는 블록들이 하나의 물체에 존재하는지 여부를 판단한다.

    또한, 수학식 2를 참조하면, C(R,S)가 작다는 것은 블록 R 및 S가 병합될 경우 움직임 예측 오차의 큰 증가없이 움직임 벡터 필드가 보다 균일하게 된다는 것을 의미하므로, C(R,S)가 작은 경우에는 병합이 이루어지도록 해야한다. 반대로, C(R,S)가 크다는 것은 움직임 벡터 필드가 크게 균일해지지 않지만 움직임 예측 오차는 크게 증가된다는 것을 뜻하므로 이러한 경우에는 인접한 블록들 사이의 병합을 수행하지 않는 것이 바람직하다. 따라서, 블록 병합부(180)는 수학식 2와 같은 소정 평가 함수에 기초하여 (병합 블록에 의한 움직임 예측 오차의 변화량)/(움직임 벡터의 균일화 정도)를 나타내는 코스트 C(R,S)를 측정하여 두 개의 인접한 블록 R 및 S가 하나의 물체 내에 존재할 가능성 및 블록 R과 S의 병합에 의한 움직임 벡터의 균일화 정도의 효율성을 측정하여 인접 블록의 병합 여부를 판단한다.

    한편 수학식 2에서, SAD(X, V)는 움직임 벡터 V를 갖는 블록 X의 움직임 예측 오차로써, 다음의 수학식 4와 같이 획득될 수 있다.

    수학식 4에서, 블록 X의 크기는 N*M(N,M은 정수)이며 블록 X의 첫 번째 픽셀 위치는(x0,y0), 움직임 벡터 V는 (Vx, Vy)의 성분을 가지며, f t -1 은 참조 프레임, f t+1 은 현재 프레임을 나타낸다.

    도 8은 본 발명의 일 실시예에 따라서 블록 병합 과정 및 움직임 벡터의 정규화 과정을 나타낸 도면이다. 도 8은 제 1 영상(810)으로부터 제 6 영상(860)의 순서로 병합 과정이 수행되는 경우를 나타낸 것으로, 제 1 영상 내지 제 6 영상들(810,820,830,840,850,860)은 하나의 영상에 포함된 블록의 병합 과정을 순차적으로 나타낸 것이며 서로 다른 영상은 아니다.

    도 8을 참조하면, 블록 병합부(180)는 제 1 영상(810) 내의 모든 인접한 블록들을 병합한 병합 블록들에 대해서 전술한 수학식 2와 같이 C(R,S)를 계산하고 최소 코스트를 갖는 병합 블록의 코스트와 소정 임계값(Th)를 비교하여 병합 여부를 판단한다. 최초 인접 블록들(811 및 812)을 포함하는 병합 블록이 최소 코스트를 갖으며 소정 임계값(Th)보다 작다고 가정한다. 이러한 경우 제 2 영상(820)에 도시된 바와 같이 최초 인접 블록들(811 및 812)은 하나의 병합 블록(821)으로 최종적으로 병합된다. 전술한 도 5 내지 도 7에서 설명된 바와 같이 이러한 병합 과정은 병합 블록들의 최소 코스트가 소정 임계값(Th)보다 작은 동안에 반복된다. 제 3 영상(830)을 참조하면, 배경에 해당하는 부분은 이러한 병합 과정을 통해 하나의 움직임 벡터를 갖는 하나의 블록으로 병합된다. 또한, 음영으로 표시된 객체 부분에 포함된 인접 블록들 역시 병합 과정을 통해 하나의 병합 블록으로 병합될 수 있다. 제 3 영상(830)에서 블록들(831, 832)를 포함하는 병합 블록이 최소 코스트를 갖으며 소정 임계값(Th)보다 작다고 가정한다. 이러한 경우 제 4 영상(840)에 도시된 바와 같이 블록들(831, 832)는 하나의 병합 블록(841)로 최종적으로 병합된다. 유사하게, 제 4 영상(840)에서 블록들(842, 843)를 포함하는 병합 블록이 최소 코스트를 갖으며 소정 임계값(Th)보다 작다고 가정하면, 제 5 영상(850)에 도시된 바와 같이 블록들(842, 843)는 하나의 병합 블록(851)로 최종적으로 병합된다. 제 5 영상(850)의 하나의 물체에 포함된 블록들(851,852,853)에 대해서 유사한 병합 과정이 수행되어, 제 6 영상(860)의 병합 블록(861)과 같이 물체의 형태와 유사한 하나의 병합 블록이 획득될 수 있다. 이와 같이, 본 발명의 일 실시예에 따른 블록의 병합 과정 및 움직임 벡터의 정규화 과정을 통해서 같은 물체 내에서 서로 다른 잘못된 움직임 벡터를 갖는 블록들은 하나의 병합 블록 내로 병합되어 하나의 움직임 벡터를 갖게 됨으로써 실제 움직임에 가까운 움직임 벡터를 획득할 수 있다.

    도 9은 본 발명의 일 실시예에 따른 영상 부호화 방법을 나타낸 플로우 차트이다.

    도 1 및 도 9를 참조하면, 단계 910에서 움직임 예측 및 보상부(170)는 영상을 구성하는 블록들의 움직임 벡터들을 획득한다. 블록은 매크로 블록, 매크로 블록을 분할한 파티션, 또는 HEVC에서 이용되는 부호화 단위 중 하나를 나타낼 수 있다.

    단계 920 및 단계 930에서 움직임 예측 및 보상부(170)는 영상을 구성하는 블록들 중 인접한 두 개의 블록들을 병합한 병합 블록에 대한 움직임 예측을 수행하여 병합 블록의 움직임 벡터도 획득한다. 전술한 바와 같이 병합 블록들은 영상에 포함된 모든 조합 가능한 인접한 두 개의 블록들을 병합하여 획득될 수 있다.

    단계 940에서, 블록 병합부(180)는 병합 블록의 움직임 벡터, 병합 블록에 포함된 블록들의 움직임 벡터, 병합 블록의 주변 블록들의 움직임 벡터 및 병합 블록에 포함된 블록들의 주변 블록들의 움직임 벡터에 기초하여, 병합 블록에 대하여 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량을 획득한다.

    전술한 바와 같이, 블록 병합부(180)는 수학식 2와 같은 소정 평가 함수와 같이 (병합 블록에 의한 움직임 예측 오차의 변화량)/(움직임 벡터의 균일화 정도)를 나타내는 코스트를 측정하여 두 개의 인접한 블록들이 하나의 물체 내에 존재할 가능성 및 인접 블록들의 병합에 의한 움직임 벡터의 균일화 정도의 효율성을 측정하여 인접 블록의 병합 여부를 판단한다.

    단계 950에서, 블록 병합부(180)는 획득된 변화량, 즉 수학식 2와 같은 코스트에 기초하여, 병합 블록들 중 변화량이 가장 작은 병합 블록을 결정하고 결정된 병합 블록에 포함된 블록들의 병합 여부를 결정한다. 전술한 바와 같이, 블록 병합부(180)는 획득된 변화량과 소정 임계값을 비교하여, 획득된 변화량이 소정 임계값보다 작은 경우 결정된 병합 블록에 포함된 블록들을 병합하고, 획득된 변화량이 소정 임계값 이상인 경우 병합 블록에 포함된 블록들을 병합하지 않고 원 블록을 유지하도록 한다.

    도 10은 본 발명의 일 실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.

    도 10을 참조하면, 영상 복호화 장치(1000)는 엔트로피 복호화부(1010), 역양자화 및 역변화부(1020), 복원부(1030), 움직임 보상부(1040) 및 저장부(1050)를 포함한다.

    엔트로피 복호화부(1010)는 수신된 비트스트림을 엔트로피 복호화하고, 비트스트림으로부터 복호화되는 현재 블록의 예측 모드 정보 및 영상 데이터를 추출한다. 특히, 본 발명의 일 실시예에 따른 엔트로피 복호화부(1010) 수신된 비트스트림으로부터 영상을 구성하는 블록들 중 적어도 두 개의 서로 인접한 블록들을 병합한 병합 블록 및 병합 블록의 움직임 벡터에 대한 정보를 획득하여 출력한다.

    역양자화 및 역변환부(1020)는 엔트로피 복호화된 레지듀얼 데이터를 역양자화 및 역변환하여 출력한다. 움직임 보상부(1040)는 획득된 병합 블록의 움직임 벡터를 이용하여 병합 블록에 대한 움직임 보상을 수행하여 병합 블록의 예측값을 획득한다. 병합 블록 이외의 블록들은 일반적인 블록 예측 방식에 따라 예측될 수 있다.

    복원부(1030)는 병합 블록의 레지듀얼 데이터와 예측값을 가산하여 영상을 복원한다. 저장부(1050)는 다음 영상의 복호화를 위한 참조 프레임으로써 이전에 복호화된 영상을 저장한다.

    도 11은 본 발명의 일 실시예에 따른 영상 복호화 방법을 나타낸 플로우 차트이다.

    도 10 및 도 11을 참조하면, 단계 1110에서 엔트로피 복호화부(1010)는 수신된 비트스트림으로부터 영상을 구성하는 블록들 중 적어도 두 개의 서로 인접한 블록들을 병합한 병합 블록 및 병합 블록의 움직임 벡터에 대한 정보를 획득한다. 전술한 바와 같이, 병합 블록은 부호화 과정에서 적어도 두 개의 서로 인접한 블록들의 병합에 의한 움직임 벡터의 균일화 정도에 대비한 움직임 예측 오차의 변화량을 소정 임계값과의 비교한 결과에 따라서 인접한 블록들을 병합한 블록이다.

    단계 1120에서, 움직임 보상부(1030)는 병합 블록의 움직임 벡터를 이용하여 병합 블록에 대한 움직임 보상을 수행하여 병합 블록의 예측값을 획득한다. 병합 블록의 예측값이 생성되면 역양자화 및 역변환 과정을 통해 획득된 병합 블록의 레지듀얼 데이터와 예측값을 가산하여 병합 블록이 복원된다.

    도 12는 본 발명의 다른 실시예에 따른 영상 부호화 방법을 나타낸 플로우 차트이다.

    전술한 바와 같이, 종래 BMA에 기초한 움직임 예측 방식은 영상에 포함된 객체를 고려하지 않고 소정 크기의 블록 단위로 움직임 예측을 수행하기 때문에, 움직임 예측의 정확도와 정밀도가 감소된다. 따라서, 본 발명의 다른 실시예에 따른 영상 부호화 방법은 움직임 예측 이전에 현재 프레임에 포함된 픽셀들을 그 픽셀값을 기준으로 객체들로 분할하고 분할된 객체 단위를 기준으로 움직임 예측 및 보상을 수행한다. 즉, 본 발명의 다른 실시예에 따른 영상 부호화 방법은 유사한 픽셀값을 갖는 인접 픽셀들을 하나의 객체로 그룹화하고 유사한 픽셀값을 갖는 객체 단위로 움직임 예측을 수행한다.

    구체적으로 도 12를 참조하면, 단계 1210에서 움직임 예측 이전에 현재 프레임의 포함된 픽셀들의 픽셀값에 기초하여 유사한 픽셀값을 갖는 인접 픽셀들은 하나의 픽셀 집합으로 그룹화된다. 즉, 영상은 유사한 픽셀값을 갖는 인접 픽셀들을 그룹화한 객체들로 분할된다. 본 발명의 다른 실시예에 있어서, 객체는 유사한 픽셀값을 갖는 픽셀들을 집합을 의미한다. 하나의 물체 내에 포함된 픽셀들은 서로 다른 픽셀값을 가질 수 있으므로 하나의 물체 역시 복수 개의 객체로 분할될 수 있다. 예를 들어, 수박과 같이 녹색과 검정색의 패턴을 갖는 물체의 경우를 가정한다. 이러한 경우 본 발명의 다른 실시예에 따른 영상 부호화 방법은 검정색과 유사한 픽셀값을 갖는 인접 픽셀들을 그룹화하여 하나의 객체를 형성하고, 녹색과 유사한 픽셀값을 갖는 인접 픽셀들을 그룹화하여 하나의 객체를 형성한다. 즉, 본 발명의 다른 실시예에 따르면 하나의 물체라도 픽셀값을 기준으로 복수 개의 객체들로 분류될 수 있다.

    단계 1220에서, 픽셀값을 기준으로 영상이 객체들로 분할되면 객체 단위로 움직임 예측 및 보상이 수행된다. 본 발명의 다른 실시예에 따르면 유사한 픽셀값을 갖는 인접 픽셀들을 그룹화한 객체 단위로 움직임 벡터가 획득되므로 움직임 벡터의 정확도가 증가될 수 있다.

    도 13은 본 발명의 다른 실시예에 따른 영상 복호화 방법을 나타낸 플로우 차트이다.

    도 13을 참조하면, 단계 1310에서 비트스트림으로부터 유사한 픽셀값을 갖는 인접 픽셀들을 그룹화한 객체 단위에 대한 분할 정보 및 이러한 객체 단위의 움직임 벡터 정보가 획득된다. 단계 1320에서, 획득된 움직임 벡터를 이용하여 객체 단위로 움직임 보상을 수행하여 유사한 픽셀값을 갖는 인접 픽셀들을 그룹화한 객체의 예측값을 생성한다. 본 발명의 다른 실시예에 따른 영상 부호화, 복호화 방법은 블록 대신에 유사한 픽셀값을 갖는 인접 픽셀들을 그룹화한 객체를 이용한다는 차이점 이외에 종래 블록 기반 영상 부호화, 복호화 방식과 유사하게 수행될 수 있으므로 구체적인 설명은 생략한다.

    본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는, ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장 장치 등이 포함된다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.

    이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈