KR100510137B1 - 고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정방법, 그 장치, 블록 모드 결정 방법 및 그 장치 - Google Patents

고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정방법, 그 장치, 블록 모드 결정 방법 및 그 장치 Download PDF

Info

Publication number
KR100510137B1
KR100510137B1 KR10-2003-0027540A KR20030027540A KR100510137B1 KR 100510137 B1 KR100510137 B1 KR 100510137B1 KR 20030027540 A KR20030027540 A KR 20030027540A KR 100510137 B1 KR100510137 B1 KR 100510137B1
Authority
KR
South Korea
Prior art keywords
block
block mode
sub
reference picture
motion estimation
Prior art date
Application number
KR10-2003-0027540A
Other languages
English (en)
Other versions
KR20040093604A (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 삼성전자주식회사
Priority to KR10-2003-0027540A priority Critical patent/KR100510137B1/ko
Priority to US10/827,405 priority patent/US20040218675A1/en
Publication of KR20040093604A publication Critical patent/KR20040093604A/ko
Application granted granted Critical
Publication of KR100510137B1 publication Critical patent/KR100510137B1/ko

Links

Classifications

    • EFIXED CONSTRUCTIONS
    • E06DOORS, WINDOWS, SHUTTERS, OR ROLLER BLINDS IN GENERAL; LADDERS
    • E06BFIXED OR MOVABLE CLOSURES FOR OPENINGS IN BUILDINGS, VEHICLES, FENCES OR LIKE ENCLOSURES IN GENERAL, e.g. DOORS, WINDOWS, BLINDS, GATES
    • E06B3/00Window sashes, door leaves, or like elements for closing wall or like openings; Layout of fixed or moving closures, e.g. windows in wall or like openings; Features of rigidly-mounted outer frames relating to the mounting of wing frames
    • E06B3/70Door leaves
    • E06B3/7001Coverings therefor; Door leaves imitating traditional raised panel doors, e.g. engraved or embossed surfaces, with trim strips applied to the surfaces
    • 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/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B21MECHANICAL METAL-WORKING WITHOUT ESSENTIALLY REMOVING MATERIAL; PUNCHING METAL
    • B21DWORKING OR PROCESSING OF SHEET METAL OR METAL TUBES, RODS OR PROFILES WITHOUT ESSENTIALLY REMOVING MATERIAL; PUNCHING METAL
    • B21D13/00Corrugating sheet metal, rods or profiles; Bending sheet metal, rods or profiles into wave form
    • B21D13/02Corrugating sheet metal, rods or profiles; Bending sheet metal, rods or profiles into wave form by pressing
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B44DECORATIVE ARTS
    • B44CPRODUCING DECORATIVE EFFECTS; MOSAICS; TARSIA WORK; PAPERHANGING
    • B44C1/00Processes, not specifically provided for elsewhere, for producing decorative surface effects
    • B44C1/18Applying ornamental structures, e.g. shaped bodies consisting of plastic material
    • EFIXED CONSTRUCTIONS
    • E06DOORS, WINDOWS, SHUTTERS, OR ROLLER BLINDS IN GENERAL; LADDERS
    • E06BFIXED OR MOVABLE CLOSURES FOR OPENINGS IN BUILDINGS, VEHICLES, FENCES OR LIKE ENCLOSURES IN GENERAL, e.g. DOORS, WINDOWS, BLINDS, GATES
    • E06B3/00Window sashes, door leaves, or like elements for closing wall or like openings; Layout of fixed or moving closures, e.g. windows in wall or like openings; Features of rigidly-mounted outer frames relating to the mounting of wing frames
    • E06B3/70Door leaves
    • E06B3/82Flush doors, i.e. with completely flat surface
    • E06B3/827Flush doors, i.e. with completely flat surface of metal without an internal frame, e.g. with exterior panels substantially of metal
    • 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/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection 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
    • 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/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/102Methods 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Abstract

고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정 방법, 그 장치, 블록 모드 결정 방법 및 그 장치가 개시된다. 본 발명에 따른 블록 모드 결정 방법은, 입력 비디오 데이터 블록을 제1 서브 블록 모드로 움직임 추정하여 각각의 제1 서브 블록에 대응하는 모션 벡터를 결정하고, 상기 입력 비디오 데이터 블록을 제1 서브 블록보다 작은 크기의 서브 블록으로 분할하여 제2 서브 블록 모드로 움직임 추정을 수행할 필요가 없는 것으로 판단되면, 상기 각 제1 서브 블록에 대응하는 모션 벡터들의 유사 여부에 따라 블록 모드를 결정한다. 본 발명에 따른 고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정 방법, 그 장치, 블록 모드 결정 방법 및 그 장치는 먼저 한 가지 블록 모드로 움직임 추정을 한 결과를 이용함으로써 참조 픽쳐 및 블록 모드의 결정을 위해 수행해야 할 움직임 추정의 회수를 감소시킬 수 있어, 보다 적은 계산량으로 참조 픽쳐 및 블록 모드를 결정할 수 있는 효과를 제공한다.

Description

고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정 방법, 그 장치, 블록 모드 결정 방법 및 그 장치{Method of determining reference picture and block mode, the apparatus therefor, method of determining block mode, and the apparatus therefor for fast motion estimation}
본 발명은 픽쳐간 예측 부호화를 위한 고속 움직임 추정에 관한 것으로서, 보다 상세하게는 고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정 방법, 그 장치, 블록 모드 결정 방법 및 그 장치에 관한 것이다.
동영상은 다수의 프레임들로 이루어지고, 프레임들이 연속적으로 디스플레이됨으로써 사용자에게 동영상이 제공된다. 한편, 영상 신호의 특성상 이웃하는 프레임간 또는 동일 프레임내의 이웃하는 블록 또는 화소간에는 서로 유사성이 존재한다.
이러한 영상 신호의 유사성을 이용하여 영상을 예측 부호화하여 고효율의 영상 신호 압축이 수행된다. 예측 부호화 중, 이웃하는 프레임 간의 유사성을 이용한 것을 영상간 예측 부호화(inter prediction coding)이라 하고, 영상 내 신호의 유사성을 이용하는 것을 영상내 예측 부호화(intra prediction coding)이라 한다.
영상간 예측 부호화는 현재 프레임에 속하는 영상 데이터를 소정 단위, 예컨대 16×16 화소로 이루어진 매크로 블록으로 분할하여 매크로 블록 단위로 이전 프레임을 탐색하여 움직임 추정을 수행한다. 움직임 추정에 사용되는 이전 프레임을 참조 프레임이라 부른다.
움직임 추정은 소정의 측정 함수를 이용하여 현재 프레임 내의 매크로 블록과 가장 유사한 매크로 블록을 이전 프레임에서 탐색하여 양 매크로 블록의 위치의 차이를 나타내는 모션 벡터를 구하는 과정이다.
한편, 움직임 추정의 구체적인 방법은 매우 다양하다. 예컨대, 표준화 작업이 진행 중인 ITU-T H.26L 비디오 압축 표준에서는 다수의 참조 픽쳐(picture)를 이용할 수 있으며, 움직임 추정을 위한 블록 모드를 매크로 블록 모드로 고정하여 수행하지 않고 다양한 사이즈의 블록 모드로 수행하여 부호화 효율의 향상을 도모한다.
도 1은 현재 픽쳐 및 현재 픽쳐의 움직임 추정에 이용되는 다수의 참조 픽쳐를 나타내는 도면이다. 도 1을 참조하면, 픽쳐간 예측 부호화를 위해 소정 블록 단위로 움직임 추정이 수행될 현재 픽쳐 PC와, 현재 픽쳐 PC의 움직임 추정에 이용될 N개의 참조 픽쳐 P0 내지 PN-1이 도시되어 있다.
도 2는 움직임 추정을 위한 다양한 블록 모드를 나타내는 도면이다. 도 2를 참조하면, 도 2의 (a) 내지 (d)는 각각 16×16 블록 모드, 16×8 블록 모드, 8×16 블록 모드 및 8×8 블록 모드를 나타낸다.
각각의 8×8 블록은 도 2의 (e) 내지 (h)에 도시한 바와 같이 8×8 블록 모드, 8×4 블록 모드, 4×8 블록 모드 및 4×4 블록 모드로 움직임 추정이 수행된다.
도 2에 도시한 바와 같이 7가지 블록 모드가 존재하는 경우, 16×16 매크로블록에 대해 시도해 보아야 하는 블록 모드의 경우는 19가지이다. 그리고 이용 가능한 참조 픽쳐의 개수가 다수인 경우, 매크로 블록 단위로 시도해 보아야 하는 블록 모드의 개수는 크게 늘어난다.
도 1에 도시한 바와 같이 이용 가능한 참조 픽쳐의 개수가 N개인 경우, 모든 참조 픽쳐들을 이용하여 움직임 추정을 시도해야 하는 블록 모드의 개수는 모두 9*N가지가 된다.
이와 같이, 각각의 참조 픽쳐에 대해 모든 블록 모드 별로 움직임 추정을 시도하여 모션 벡터를 구한 후, 그 중 압축 효율이 가장 좋은 것으로 판정된 참조 픽쳐 및 블록 모드를 결정하므로 비트 레이트(bit rate) 측면에서 많은 이득을 볼 수 있으며 동일 비트 레이트로 더 좋은 화질을 제공하는 영상 압축이 가능하다.
그러나, 영상 부호화기 측면에서는 다수의 참조 픽쳐 및 다양한 블록 모드를 이용하여 움직임 추정을 하는 것은 계산량이 매우 많아 복잡도(complexity)를 매우 증가시키는 문제가 있다.
설령, 참조 픽쳐를 하나만 이용하는 경우에도 다양한 블록 모드에 따라 모두 움직임 추정을 시도해보아야 하므로 마찬가지의 문제가 있다.
따라서 본 발명이 이루고자 하는 기술적 과제는, 다수의 참조 픽쳐 및 다수의 블록 모드를 이용하여 움직임 추정을 수행하는 경우, 보다 적은 계산량으로 참조 픽쳐 및 블록 모드를 결정하는 방법 및 그 장치를 제공하는데 있다.
또한 본 발명이 이루고자 하는 다른 기술적 과제는, 하나의 참조 픽쳐 및 다수의 블록 모드를 이용하여 움직임 추정을 수행하는 경우, 보다 적은 계산량으로 블록 모드를 결정하는 방법 및 그 장치를 제공하는데 있다.
상기 과제를 이루기 위해, 본 발명에 의한 참조 픽쳐 및 블록 모드를 결정하는 방법은,
(a) 소정 크기의 비디오 데이터 블록을 2M(M은 1이상의 정수)개의 제1 서브 블록으로 분할하는 단계; (b) N(N은 2이상의 정수)개의 참조 픽쳐 중, 상기 각 제1 서브 블록의 움직임 추정에 이용되는 각각의 참조 픽쳐를 결정하는 단계; (c) 동일한 참조 픽쳐를 이용하는 제1 서브 블록의 개수를 판단하는 단계; (d) 동일한 참조 픽쳐를 이용하는 제1 서브 블록의 개수가 두 개 이상이고 (2M-1)개 이하이면, 동일한 참조 픽쳐를 이용하는 서로 인접한 두 개의 제1 서브 블록이 존재하는지 여부를 판단하는 단계; 및 (e) 동일한 참조 픽쳐를 이용하는 서로 인접한 두 개의 제1 서브 블록이 존재하면, 상기 동일한 참조 픽쳐를 이용하여 서로 인접한 상기 두 개의 제1 서브 블록 각각의 움직임 추정을 수행한 결과 얻은 두 개의 모션 벡터의 유사 여부에 따라 참조 픽쳐 및 블록 모드를 결정하는 단계를 포함한다.
또한, 상기 (e)단계는 상기 두 개의 모션 벡터가 서로 유사하면, (e1) 서로 인접한 상기 두 개의 제1 서브 블록을 그룹화하고, 상기 두 개의 제1 서브 블록들의 인접 방향에 따라 나머지 (2M-2)개의 제1 서브 블록들을 두 개씩 그룹화하여, 상기 비디오 데이터 블록을 M개의 제2 서브 블록으로 분할하는 단계; (e2) 서로 인접한 상기 두 개의 제1 서브 블록을 그룹화한 제2 서브 블록에 대한 참조 픽쳐를 상기 동일한 참조 픽쳐로 결정하는 단계; 및 (e3) 상기 결정된 참조 픽쳐를 이용하여, 서로 인접한 상기 두 개의 제1 서브 블록을 그룹화한 제2 서브 블록의 움직임 추정을 수행하는 단계를 포함하는 것이 바람직하다.
또한, 상기 (e)단계는 서로 인접한 상기 두 개의 제1 서브 블록 외의 다른 제1 서브 블록들이 서로 다른 참조 픽쳐를 이용하면, (e4) 상기 서로 다른 각 참조 픽쳐를 이용하여, 상기 다른 제1 서브 블록들을 두 개씩 그룹화하여 형성된 (M-1)개의 제2 서브 블록의 움직임 추정을 수행하는 단계; 및 (e5) 상기 각 움직임 추정의 정확도를 판단하여, 움직임 추정의 정확도가 최대인 경우에 이용된 참조 픽쳐를 상기 (M-1)개의 제2 서브 블록에 대한 참조 픽쳐로 결정하는 단계를 포함하는 것이 바람직하다.
또한, 상기 (e)단계는, (e6) 상기 결정된 각 참조 픽쳐를 이용하여 상기 비디오 데이터 블록을 상기 제2 서브 블록 모드로 움직임 추정한 결과에 따라 발생된 데이터량과 상기 제1 서브 블록 모드로 움직임 추정한 결과에 따라 발생된 데이터량을 비교하여 데이터량이 적은 경우에 이용된 블록 모드를 상기 비디오 데이터 블록의 블록 모드로 결정하는 단계를 포함하는 것이 바람직하다.
또한, 상기 (e)단계는 상기 두 개의 모션 벡터가 서로 유사하지 않으면, 제1 서브 블록 모드를 상기 비디오 데이터 블록의 블록 모드로 결정하는 것이 바람직하다.
또한, 상기 (b)단계는 (b1) 상기 N개의 참조 픽쳐를 이용하여, 상기 각각의 제1 서브 블록별로 N번의 움직임 추정을 수행하는 단계; 및 (b2) 상기 각각의 제1 서브 블록별로 N번 수행된 움직임 추정의 정확도를 판단하여, 움직임 추정의 정확도가 최대가 되는 경우에 이용된 참조 픽쳐를 상기 각각의 제1 서브 블록의 참조 픽쳐로 결정하는 단계를 포함하는 것이 바람직하다.
또한, 상기 (c)단계의 판단 결과, 모든 제1 서브 블록들이 동일한 참조 픽쳐를 이용하는 것으로 판단되면, (f) 상기 모든 제1 서브 블록들이 동일하게 이용하는 참조 픽쳐를, 소정 블록 모드로 상기 비디오 데이터 블록의 움직임 추정 시에 이용하는 참조 픽쳐로 결정하는 단계를 더 포함하는 것이 바람직하다.
또한, 상기 (c)단계의 판단 결과, 상기 2M 개의 제1 서브 블록들이 서로 다른 참조 픽쳐를 이용하는 것으로 판단되면, (g) 상기 각 제1 서브 블록이 이용하는 각 참조 픽쳐를, 소정 블록 모드로 상기 각 제1 서브 블록의 움직임 추정 시에 이용하는 참조 픽쳐로 결정하는 단계를 더 포함하는 것이 바람직하다.
상기 과제를 이루기 위해, 본 발명에 의한 참조 픽쳐 및 블록 모드를 결정하는 장치는,
입력된 소정 크기의 비디오 데이터 블록을 2M(M은 1이상의 정수)개의 제1 서브 블록으로 분할하는 블록 분할부; N(N은 2이상의 정수)개의 참조 픽쳐를 입력받고, 상기 블록 분할부로부터 상기 2M개의 제1 서브 블록들을 입력받아, 상기 N개의 참조 픽쳐를 이용하여, 상기 각각의 제1 서브 블록의 움직임 추정을 수행하는 움직임 추정부; 및 상기 움직임 추정부로부터 입력받은, 상기 N개의 참조 픽쳐를 이용하여 상기 각각의 제1 서브 블록별로 N번 수행된 움직임 추정의 정확도를 나타내는 N개의 참조값에 따라, 움직임 추정의 정확도가 최대가 되는 경우에 이용된 참조 픽쳐를 상기 각각의 제1 서브 블록에 대한 참조 픽쳐로 결정하고, 동일한 참조 픽쳐를 이용하는 제1 서브 블록의 개수가 두 개 이상, (2M-1)개 이하이고, 동일한 참조 픽쳐를 이용하는 서로 인접한 두 개의 제1 서브 블록이 존재하면, 상기 움직임 추정부로부터 상기 동일한 참조 픽쳐를 이용하여 서로 인접한 상기 두 개의 제1 서브 블록 각각의 움직임 추정을 수행한 결과 얻은 두 개의 모션 벡터를 입력받아, 상기 두 개의 모션 벡터의 유사 여부에 따라 참조 픽쳐 및 블록 모드를 결정하는 참조 픽쳐/블록 모드 결정부를 포함한다.
또한, 상기 참조 픽쳐/블록 모드 결정부는 상기 두 개의 모션 벡터가 서로 유사한 것으로 판단되면, 서로 인접한 상기 두 개의 제1 서브 블록을 그룹화한 제2 서브 블록에 대한 참조 픽쳐를 상기 동일한 참조 픽쳐로 결정하고, 상기 블록 분할부는 상기 참조 픽쳐/블록 모드 결정부로부터 제공된 블록 그룹화 명령에 따라 서로 인접한 상기 두 개의 제1 서브 블록을 그룹화하고, 상기 두 개의 제1 서브 블록들의 인접 방향에 따라 나머지 (2M-2)개의 제1 서브 블록들을 두 개씩 그룹화하여, 상기 비디오 데이터 블록을 M개의 제2 서브 블록으로 분할하여, 상기 M개의 제2 서브 블록들을 상기 움직임 추정부로 제공하고, 상기 움직임 추정부는 상기 참조 픽쳐/블록 모드 결정부로부터 상기 결정된 참조 픽쳐를 나타내는 인덱스를 입력받아, 상기 인덱스가 나타내는 참조 픽쳐를 이용하여, 서로 인접한 상기 두 개의 제1 서브 블록이 그룹화된 제2 서브 블록의 움직임 추정을 수행하는 것이 바람직하다.
또한, 상기 참조 픽쳐/블록 모드 결정부는 서로 인접한 상기 두 개의 제1 서브 블록 외의 다른 제1 서브 블록들이 서로 다른 참조 픽쳐를 이용하면, 상기 움직임 추정부로부터, 상기 서로 다른 각 참조 픽쳐를 이용하여, 상기 다른 제1 서브 블록들을 두 개씩 그룹화하여 형성된 (M-1)개의 제2 서브 블록 각각의 움직임 추정을 수행한 결과 얻은 상기 각 움직임 추정의 정확도를 나타내는 다수의 참조값을 제공받아, 상기 다수의 참조값에 따라 움직임 추정의 정확도가 최대인 경우에 이용된 참조 픽쳐를 상기 (M-1)개의 제2 서브 블록에 대한 참조 픽쳐로 결정하는 것이 바람직하다.
또한, 상기 참조 픽쳐/블록 모드 결정부는 상기 결정된 각 참조 픽쳐를 이용하여 상기 비디오 데이터 블록을 상기 제2 서브 블록 모드로 움직임 추정한 결과에 따라 발생된 데이터량과 상기 제1 서브 블록 모드로 움직임 추정한 결과에 따라 발생된 데이터량을 비교하여 데이터량이 적은 경우에 이용된 블록 모드를 상기 비디오 데이터 블록의 블록 모드로 결정하는 것이 바람직하다.
또한, 상기 참조 픽쳐/블록 모드 결정부는 상기 두 개의 모션 벡터가 서로 유사하지 않으면, 제1 서브 블록 모드를 상기 비디오 데이터 블록의 블록 모드로 결정하는 것이 바람직하다.
또한, 상기 참조 픽쳐/블록 모드 결정부는 상기 두 개의 모션 벡터의 각 X축의 좌표값의 차이와 각 Y축 의 좌표값의 차이가 소정 범위 내에 있으면 상기 두 개의 모션 벡터가 서로 유사한 것으로 판단하는 것이 바람직하다.
상기 다른 과제를 이루기 위해, 본 발명에 의한 블록 모드를 결정하는 방법은,
(a) 소정의 참조 픽쳐 및 움직임 추정을 위한 소정의 측정 함수를 이용하여, 입력 비디오 데이터 블록을 제1 서브 블록 모드로 움직임 추정하여 각각의 제1 서브 블록에 대응하는 상기 측정 함수의 값 및 모션 벡터를 결정하는 단계; (b) 상기 입력 비디오 데이터 블록을 상기 제1 서브 블록 모드보다 작은 크기의 하위 서브 블록 모드인 제2 서브 블록 모드로 움직임 추정을 수행할지 여부를 판단하는 단계; 및 (c) 상기 입력 비디오 데이터 블록을 상기 제2 서브 블록 모드로 움직임 추정을 수행할 필요가 없는 것으로 판단되면, 상기 각 제1 서브 블록에 대응하는 모션 벡터들의 유사 여부에 따라 블록 모드를 결정하는 단계를 포함하는 것이 바람직하다.
또한, 상기 (a)단계는, (a1) 상기 각각의 제1 서브 블록을 다수의 제2 서브 블록들로 분할하여, 각 제1 서브 블록을 구성하는 다수의 제2 서브 블록 단위로 상기 측정 함수의 값을 계산하여, 다수의 측정 함수의 값들을 상기 각각의 제1 서브 블록에 대해 얻는 단계; 및 (a2) 상기 다수의 측정 함수의 값들을 더하여 각각의 제1 서브 블록에 대응하는 상기 측정 함수값을 결정하는 단계를 포함하는 것이 바람직하다.
또한, 상기 (b)단계는 (b1) 각각의 제1 서브 블록마다, 제1 서브 블록에 대응하는 다수의 상기 측정 함수의 값들의 유사 여부를 판단하는 단계; 및 (b2) 상기 (b1)단계에서의 판단 결과, 상기 모든 제1 서브 블록들에 대해, 각 제1 서브 블록에 대응하는 다수의 측정 함수값들이 모두 유사한 것으로 판단되면, 상기 제2 서브 블록 모드로 움직임 추정을 수행하지 않는 것으로 판단하는 단계를 포함하는 것이 바람직하다.
또한, 상기 (c)단계는 상기 입력 비디오 데이터 블록을 구성하는 다수의 제1 서브 블록들에 각각 대응하는 모션 벡터들이 모두 유사하면 상기 입력 비디오 데이터 블록 단위로 움직임 추정을 수행하도록 블록 모드를 결정하는 단계인 것이 바람직하다.
또한, (d) 상기 결정된 블록 모드를 이용하여 움직임 추정한 결과에 따라 생성된 데이터량과 상기 제1 서브 블록 모드를 이용하여 움직임 추정한 결과에 따라 생성된 데이터량을 비교하여 데이터량이 적은 경우에 이용된 블록 모드를 상기 비디오 데이터 블록의 블록 모드로 결정하는 단계를 더 포함하는 것이 바람직하다.
또한, 상기 (b1)단계에서 판단 결과, 다수의 측정 함수값들 중 유사하지 않은 측정 함수값이 적어도 하나 존재하는 제1 서브 블록 Bk(k=1 내지 4의 정수)가 있으면, (e) 상기 소정의 참조 픽쳐 및 상기 소정의 측정 함수를 이용하여, 상기 제1 서브 블록 Bk을 제2 서브 블록 모드로 움직임 추정을 수행하여 각각의 제2 서브 블록에 대응하는 모션 벡터를 결정하는 단계; 및 (f) 상기 제1 서브 블록 Bk을 구성하는 다수의 제2 서브 블록들에 각각 대응하는 모션 벡터들의 유사 여부를 판단하여 블록 모드를 결정하는 단계를 더 포함하는 것이 바람직하다.
상기 다른 과제를 이루기 위해, 본 발명에 의한 블록 모드를 결정하는 장치는,
입력된 비디오 데이터 블록을 다수의 제1 서브 블록으로 분할하는 블록 분할부; 소정의 참조 픽쳐를 입력받고, 상기 블록 분할부로부터 상기 다수의 제1 서브 블록들을 입력받아, 상기 참조 픽쳐 및 움직임 추정을 위한 소정의 측정 함수를 이용하여, 상기 입력 비디오 데이터 블록을 제1 서브 블록 모드로 움직임 추정을 수행하여 각각의 제1 서브 블록에 대응하는 측정 함수의 값 및 모션 벡터를 결정하는 움직임 추정부; 및 상기 움직임 추정부로부터 입력받은 각각의 제1 서브 블록별로 움직임 추정한 결과 계산된 다수의 측정 함수값을 이용하여, 상기 입력 비디오 데이터 블록을 상기 제1 서브 블록 모드보다 작은 크기의 하위 서브 블록 모드인 제2 서브 블록 모드로 움직임 추정을 수행할 필요가 없는 것으로 판단되면, 상기 각 제1 서브 블록에 대응하는 모션 벡터들의 유사 여부에 따라 블록 모드를 결정하는 블록 모드 결정부를 포함한다.
또한, 상기 블록 모드 결정부는 상기 움직임 추정부로부터 각각의 제1 서브 블록을 구성하는 다수의 제2 서브 블록 단위로 계산된 다수의 측정 함수값들을 입력받아 상기 측정 함수값들의 유사 여부 판단을 상기 각각의 제1 서브 블록에 대해 반복하여, 상기 모든 제1 서브 블록들에 대해, 각 제1 서브 블록에 대응하는 다수의 측정 함수값들이 모두 유사한 것으로 판단되면, 상기 제2 서브 블록 모드로 움직임 추정을 수행하지 않는 것으로 판단하는 것이 바람직하다.
또한, 상기 블록 모드 결정부는 상기 입력 비디오 데이터 블록을 구성하는 다수의 제1 서브 블록들에 각각 대응하는 모션 벡터들이 모두 유사하면 상기 입력 비디오 데이터 블록 단위로 움직임 추정을 수행하도록 블록 모드를 결정하는 것이 바람직하다.
또한, 상기 블록 모드 결정부는 다수의 측정 함수값들 중 유사하지 않은 측정 함수값이 적어도 하나 존재하는 제1 서브 블록 Bk(k=1 내지 4의 정수)가 있으면, 상기 블록 분할부로 블록 분할 제어신호를 출력하고, 상기 블록 분할부는 상기 제어신호를 입력받아 상기 제1 서브 블록 Bk을 다수의 제2 서브 블록으로 분할하고, 상기 움직임 추정부는 상기 소정의 참조 픽쳐 및 상기 소정의 측정 함수를 이용하여, 상기 제1 서브 블록 Bk을 제2 서브 블록 모드로 움직임 추정을 수행하여 각각의 제2 서브 블록에 대응하는 모션 벡터를 결정하고, 상기 블록 모드 결정부는 상기 제1 서브 블록 Bk을 구성하는 다수의 제2 서브 블록들에 각각 대응하는 모션 벡터들의 유사 여부를 판단하여 블록 모드를 결정하는 것이 바람직하다.
이하, 첨부된 도면들을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명한다.
도 3은 본 발명의 바람직한 실시예에 따른 동영상 부호화 장치의 블록도를 나타낸다.
도 3을 참조하면, 동영상 부호화 장치는 Transform/Quantizer(110), Dequantizer/Inverse transform(131), Deblocking filter(133), 픽쳐 재현부(135), Motion compensated predictor(137), Intra prediction부(139), Motion estimator(150), 감산부(170) 및 Entropy coding부(190)를 포함한다.
16×16 화소로 이루어진 매크로 블록 단위로 영상 데이터가 동영상 부호화 장치로 입력된다.
Transform/Quantizer(110)는 입력 매크로 블록을 소정 방식에 따라 변환한 후 양자화한다. 대표적인 영상 변환 기법으로는 DCT(Discrete Cosing Transform)이 있다.
Dequantizer/Inverse transform(131)는 Transform/Quantizer(110)로부터 변환 후 양자화된 영상 데이터를 입력받아 역양자화 및 역변환한다.
Deblocking filter(133)는 Dequantizer/Inverse transform(131)로부터 역양자화 및 역변환된 영상 데이터를 입력받아 블록킹(blocking) 효과를 제거하기 위한 필터링을 수행한다.
픽쳐 재현부(135)는 필터링된 영상 데이터를 Deblocking filter(133)로부터 입력받아 픽쳐(picture) 단위로 영상을 재현하여 저장한다. 픽쳐는 프레임 단위의 영상이거나 필드 단위의 영상이다. 픽쳐 재현부(135)는 다수의 픽쳐를 저장할 수 있는 버퍼(도시되지 않음)를 구비한다. 버퍼에 저장된 다수의 픽쳐는 움직임 추정을 위해 제공되는 픽쳐로서 이하에서는 참조 픽쳐라 한다.
Motion estimator(150)는 픽쳐 재현부(135)에 저장된 적어도 하나의 참조 픽쳐를 제공받아 본 발명에 따라 입력 매크로 블록의 움직임 추정을 수행하여 모션 벡터, 참조 픽쳐를 나타내는 인덱스 및 블록 모드를 포함한 모션 데이터를 출력한다.
Motion compensated predictor(137)는 Motion estimator(150)로부터 입력된 모션 데이터에 따라, 픽쳐 재현부(135)에 저장된 다수의 참조 픽쳐들 중 움직임 추정에 이용된 참조 픽쳐로부터, 입력 매크로 블록에 대응하는 매크로 블록을 추출하여 출력한다.
감산부(170)는 입력 매크로 블록을 픽쳐간 예측 부호화하는 경우, Motion compensated predictor(137)로부터 입력 매크로 블록에 대응하는 참조 픽쳐 내의 매크로 블록을 입력받아 입력 매크로 블록과의 차분 연산을 수행하여 잔차 신호(residue signal)를 출력한다.
감산부(170)로부터 출력된 잔차 신호는 다시 Transform/Quantizer(110)에 의해 변환 및 양자화되고, Entropy coding부(190)에 의해 엔트로피 부호화되어 출력 비트 스트림이 생성된다.
Intra prediction부(139)는 참조 픽쳐를 이용하여 픽쳐간 예측 부호화가 아닌 픽쳐내 예측 부호화를 수행한다.
한편, 전술한 동영상 부호화 장치에 의해 생성된 비트 스트림을 복호화하는 동영상 복호부(decoder)(130)는 Dequantizer/Inverse transform(131), Deblocking filter(133), 픽쳐 재현부(135), Motion compensated predictor(137) 및 Intra prediction부(139)를 포함한다.
이하에서는 다수의 참조 픽쳐 및 다수의 블록 모드를 이용한 움직임 추정에 있어서 본 발명에 따른 참조 픽쳐 및 블록 모드 결정에 대해 설명한다.
도 4는 본 발명의 바람직한 실시예에 따른 참조 픽쳐 및 블록 모드 결정 장치의 블록도를 나타낸다.
도 4를 참조하면, 참조 픽쳐 및 블록 모드 결정 장치는 블록 분할부(151), 움직임 추정부(153) 및 참조 픽쳐/블록 모드 결정부(154)를 포함한다.
도 4에 도시된 참조 픽쳐 및 블록 모드 결정 장치는 도 3에 도시된 본 발명에 따른 동영상 부호화 장치의 Motion estimator(150)와 동일한 장치이거나 적어도 Motion estimator(150)에 포함되어 본 발명에 따른 참조 픽쳐 및 블록 모드 결정 방법을 수행한다.
블록 분할부(151)는 입력 블록 데이터, 즉 매크로 블록 단위의 영상 데이터를 입력받아 매크로 블록을 소정의 서브 블록으로 분할하여 서브 블록 단위로 영상 데이터를 출력한다.
도 5는 블록 분할부(151)에 의해 입력 매크로 블록이 4개의 8×8 서브 블록 B1, B2, B3 및 B4로 분할된 예를 나타내는 도면이다.
움직임 추정부(153)는 도 1에 도시된 바와 같은 N개의 참조 픽쳐 및 블록 분할부(151)로부터 8×8 크기의 서브 블록을 입력받아 움직임 추정을 수행한다.
참조 픽쳐/블록 모드 결정부(154)는 움직임 추정부(153)로부터 참조 픽쳐 및 블록 모드를 결정하는데 이용되는 데이터를 제공받아 본 발명에 따른 참조 픽쳐 및 블록 모드 결정을 수행하여 움직임 추정에 이용된 참조 픽쳐의 인덱스, 블록 모드 및 모션 벡터를 포함하는 모션 데이터를 출력한다.
이상에서 설명한 본 발명에 따른 참조 픽쳐 및 블록 모드 결정 장치의 구조에 따라 본 발명에 따른 참조 픽쳐 및 블록 모드 결정 방법을 설명한다.
도 6A 내지 6D는 본 발명의 바람직한 실시예에 따른 참조 픽쳐 및 블록 모드 결정 방법을 나타내는 흐름도이다.
도 5에 도시한 바와 같이, 블록 분할부(151)는 입력 매크로 블록을 4개의 8×8 블록 B1, B2, B3 및 B4로 분할한다(제210 단계).
움직임 추정부(153)는 블록 분할부(151)로부터 4개의 8×8 블록 B1, B2, B3 및 B4를 순서대로 입력받고, 도 1에 도시된 바와 같은 N개의 참조 픽쳐를 이용하여 각 8×8 블록의 움직임 추정을 위한 참조 픽쳐를 결정한다(제212 단계).
도 7은 도 6A에 도시된 제212단계의 상세 구성을 나타내는 흐름도이다.
움직임 추정부(153)는 외부에 저장된 N개의 참조 픽쳐 중 하나씩 읽어 들여 각 8×8 블록에 대해 모두 N번의 움직임 추정을 수행한다(제212a 단계).
움직임 추정은 대개 SAD(Sum of Absolute Difference) 함수와 같은 소정의 움직임 추정을 위한 측정 함수(measure function)을 이용하여 수행된다. SAD 함수를 이용한 움직임 추정 동작을 보다 상세하게 설명하면, 블록 분할부(151)로부터 입력된 하나의 8×8 블록과 참조 픽쳐 내의 임의의 위치의 8×8 블록의 서로 동일한 위치에 있는 각각의 화소의 값의 차의 절대값들을 모두 더함으로써 SAD 함수값이 결정된다.
참조 픽쳐 내의 형성 가능한 모든 8×8 블록들에 대해 각각 SAD 함수값을 계산한 후, SAD 함수값이 최소가 되는 참조 픽쳐 내의 8×8 블록을 탐색한다. 모션 벡터는 참조 픽쳐 내의 8×8 블록과 현재 픽쳐 내의 8×8 블록간의 위치의 변화를 나타내는 벡터값이다.
한편, 움직임 추정을 위한 측정 함수로써 SAD가 아닌 다른 함수가 사용될 수도 있다. 다른 측정 함수로는 SATD(Sum of Absolute Transformed Difference) 함수 또는 SSD(Sum of Squared Difference) 함수 등이 있다.
참조 픽쳐/블록 모드 결정부(154)는 N개의 참조 픽쳐들 중, 움직임 추정의 정확도가 최대가 되는 경우에 이용된 참조 픽쳐를 각 B1, B2, B3 및 B 4의 참조 픽쳐로 결정한다(제212b 단계).
움직임 추정의 정확도 판단은 각 참조 픽쳐를 이용하여 계산된 SAD 함수값의 대소에 따라 결정한다. 두 블록의 유사성이 크면 클수록 SAD함수값이 적어지기 때문이다.
이상에서 설명한 제210 단계 및 제212 단계는 8×8 블록 모드로 움직임 추정을 하여 각 8×8 블록의 움직임 추정에 이용될 참조 픽쳐를 결정하는 과정이라고 요약할 수 있다.
참조 픽쳐/블록 모드 결정부(154)는 B1, B2, B3 및 B4의 4개의 블록에 대해 제 212단계에서 각각 결정된 4개의 참조 픽쳐들 중, 동일한 참조 픽쳐의 수를 판단한다(제214 단계).
제214 단계에서의 판단 결과, 동일한 참조 픽쳐의 수가 4개인 경우, 즉 B1, B2, B3 및 B4의 4개의 블록이 모두 동일한 참조 픽쳐를 이용한다면 그 참조 픽쳐를 B1, B2, B3 및 B4의 참조 픽쳐로 최종적으로 결정한다(제215 단계).
참조 픽쳐가 결정되면, B1, B2, B3 및 B4의 블록 모드를 결정한다(제216 단계). 각 블록의 블록 모드 결정은 다양한 방법에 의해 수행되어 8×8, 8×4, 4×8 및 4×4 중 하나의 블록 모드가 결정된다. 예컨대, B1, B2, B3 및 B 4의 각각의 블록을 8×8 블록 모드 이하의 하위의 다양한 블록 모드로 움직임 추정한 결과 중 제일 부호화 성능이 좋은 블록 모드를 선택한다.
만약, 제214 단계에서의 판단 결과, 동일한 참조 픽쳐의 수가 1개인 경우, 즉 B1, B2, B3 및 B4의 4개의 블록이 모두 다른 참조 픽쳐를 이용한다면, 상기 제212 단계에서 B1, B2, B3 및 B4의 각각에 대해 결정된 참조 픽쳐를 B1, B2, B3 및 B4의 움직임 추정에 이용하는 참조 픽쳐로 최종적으로 결정한다(제218 단계).
제218 단계에서 각 블록에 대한 참조 픽쳐가 결정되면, 제216 단계에서와 유사하게 B1, B2, B3 및 B4의 블록 모드를 결정한다(제218 단계). 각 블록의 블록 모드 결정 방법에 대한 제약은 없다.
도 6B는 동일한 참조 픽쳐의 수가 2개인 경우의 참조 픽쳐 및 블록 모드 결정 방법의 흐름도를 나타내는 도면이다.
만약, 제214 단계에서의 판단 결과, 동일한 참조 픽쳐의 수가 2개인 경우, 예컨대 B1과 B2가 동일한 참조 픽쳐를 이용하는 것으로 판단되면(제220 단계), 참조 픽쳐/블록 모드 결정부(154)는 움직임 추정부(153)로부터 입력받은 B1과 B2의 모션 벡터 MV(B1)과 MV(B2)가 유사한 모션 벡터인지 여부를 판단한다(제222 단계). MV(B1)과 MV(B2)는 각각 제212 단계에서 서브 블록 B1과 B2 의 참조 픽쳐로 결정된 참조 픽쳐를 이용하여 구한 모션 벡터이다.
두 개의 8×8 블록 B1과 B2가 동일한 참조 픽쳐를 이용하고 그 두 블록의 모션 벡터가 서로 유사하다면 두 개의 블록을 그룹화(grouping)하여 형성된 하나의 16×8 블록에 대해 상기 동일한 참조 픽쳐를 이용하여 움직임 추정하더라도 동일한 모션 벡터가 결정될 것으로 예상할 수 있으므로, 입력 매크로 블록을 16×8 블록 모드로 움직임 추정을 시도한다.
본 실시예에서는 B1과 B2가 동일한 참조 픽쳐를 이용하는 경우를 예로 들었으나 만약, B1과 B3 또는 B2와 B4가 동일한 참조 픽쳐를 이용하고 MV(B1)과 MV(B3)또는 MV(B2)과 MV(B4)가 유사하다면 8×16 블록 모드로 움직임 추정을 시도한다.
모션 벡터의 유사 여부 판단은 두 개의 모션 벡터의 X축의 좌표값의 차이와 Y축의 좌표값의 차이가 각각 소정 한계값 내에 있으면 두 개의 모션 벡터가 서로 유사한 것으로 판단할 수 있다.
만약, 모션 벡터 MV(B1)과 MV(B2)가 유사하지 않으면 입력 매크로 블록의 블록 모드를 8×8 블록 모드로 결정한다(제242 단계). 또한, 제 212단계에서 결정된 참조 픽쳐들을 B1, B2, B3 및 B4의 참조 픽쳐로 최종적으로 결정한다.
그러나 모션 벡터 MV(B1)과 MV(B2)가 유사하면, 블록 분할부(151)는 참조 픽쳐/블록 모드 결정부(154)의 제어신호에 따라 B1과 B2, B3와 B4 를 그룹화하여 각각 B21과 B22 의 두 개의 16×8 크기의 서브 블록으로 입력 매크로 블록을 분할하여 움직임 추정부(153)로 제공한다.
한편, 참조 픽쳐/블록 모드 결정부(154)는 B1과 B2가 그룹화된 B21과의 움직임 추정을 위한 참조 픽쳐인 RefPic(B21)을 B1과 B2가 동일하게 이용하는 참조 픽쳐로 결정한다(제226 단계).
그리고, B22에 대한 참조 픽쳐를 결정하기 위해 B3 및 B4의 참조 픽쳐인 RefPic(B3)과 RefPic(B4)를 각각 이용하여 B22 에 대한 움직임 추정을 수행한다(제228 단계).
RefPic(B3) 및 RefPic(B4)를 이용하여 각각 움직임 추정한 결과 움직임 추정이 더 정확하게 수행된 참조 픽쳐가 어느 것인지를 판단한다(제230 단계). 그 판단은 제212b 단계에서와 동일하게 SAD 함수값을 가지고 판단한다.
판단 결과에 따라, RefPic(B22)을 RefPic(B3) 또는 RefPic(B4)로 결정한다(제232 단계 또는 제234 단계).
제210 단계 및 제212 단계를 통해 8×8 블록 모드로 움직임 추정한 결과 생성된 데이터량과 제224 단계 내지 제234 단계를 통해 16×8 블록 모드로 움직임 추정한 결과 생성된 데이터량을 계산한다(제236 단계).
양자의 데이터량을 비교하여(제238 단계), 만약 16×8 블록 모드로 움직임 추정한 결과 생성된 데이터량이 이미 수행된 8×8 블록 모드로 움직임 추정한 결과 생성된 데이터량보다 적다면 부호화 효율이 16×8 블록 모드가 더 좋다는 의미이므로 최종적인 블록 모드를 16×8 블록 모드로 결정한다(제240 단계).
그러나, 16×8 블록 모드로 움직임 추정한 결과 생성된 데이터량이 8×8 블록 모드로 움직임 추정한 결과 생성된 데이터량보다 많다면 최종적인 블록 모드를 8×8 블록 모드로 결정한다(제242 단계).
한편, 부호화 효율을 판단하기 위해 본 실시예에서는 각 블록 모드로 움직임 추정한 결과 생성된 데이터량을 기준으로 하였다. 생성 데이터량의 계산은 예컨대 전술한 SAD 함수, SATD 함수, SSD 함수, MAD(Mean of Absolute Difference) 함수 또는 라그랑제(Lagrange) 함수 중 하나의 함수를 이용할 수 있다.
또한 부호화 효율의 판단 방법으로는 데이터 생성량뿐 아니라 영상 품질까지 함께 고려한 소정의 판단 방법을 채용할 수도 있다. 즉, 보다 부호화 성능이 좋은 블록 모드를 결정하기 위한 가능한 모든 방법이 적용될 수 있으며 이는 당해 기술 분야에서 통상의 지식을 가진 자라면 다양한 부호화 효율 판단 수단을 강구할 수 있을 것이다.
한편, 본 실시예에서는 B1과 B2가 동일한 참조 픽쳐를 이용하는 경우를 예로 들었으나 그 밖의 경우, 예컨대 B1과 B3 또는 B2와 B4가 동일한 참조 픽쳐를 이용하는 경우에도 과정은 동일하다.
또한, 별도의 도면으로 도시하지는 아니하였으나, 이웃하는 두 개의 블록이 각각 동일한 참조 픽쳐를 이용하는 경우, 예컨대 B1과 B3가 동일한 하나의 참조 픽쳐를 이용하고 B2와 B4가 동일한 다른 참조 픽쳐를 이용하는 경우에는 도 6B에 도시된 단계들 중 제228 단계 내지 제234 단계는 필요하지 않을 것이다.
또한, B1, B2, B3 및 B4 중 두 개의 블록이 동일한 참조 픽쳐를 이용하더라고 그 두 블록이 서로 인접한 블록이 아닌 경우, 예컨대 B1 과 B4가 동일한 참조 픽쳐를 이용하는 경우에도 더 이상 추가 단계를 수행하지 않고 입력 매크로 블록의 움직임 추정을 위한 블록 모드를 8×8 블록 모드로 결정한다.
도 6C 및 도 6D는 동일한 참조 픽쳐의 수가 3개인 경우의 참조 픽쳐 및 블록 모드 결정 방법의 흐름도를 나타내는 도면이다.
동일한 참조 픽쳐의 수가 3개인 경우에도 참조 픽쳐 및 블록 모드 결정 방법의 기본적인 원리는 도 6B에 도시한 참조 픽쳐의 수가 2개인 경우와 유사하다. 즉, 인접한 두 블록의 모션 벡터의 유사 여부에 따라 두 개의 블록을 그룹화하여 새로운 블록 모드로 움직임 추정한 결과와 이미 수행한 8×8 블록 모드에 따른 움직임 추정 결과를 비교하여 부호화 효율이 더 좋은 모드를 최정적인 블록 모드로 결정한다.
이하, 동일한 참조 픽쳐의 수가 3개인 경우의 참조 픽쳐 및 블록 모드 결정 방법을 상세하게 설명하게 한다.
만약, 제214 단계에서의 판단 결과, 동일한 참조 픽쳐의 수가 3개인 경우, 예컨대 B1, B2 및 B3가 동일한 참조 픽쳐를 이용하는 것으로 판단되면(제250 단계), 참조 픽쳐/블록 모드 결정부(154)는 움직임 추정부(153)로부터 입력받은 B1과 B2의 모션 벡터 MV(B1)과 MV(B2)가 유사한 모션 벡터인지 여부를 판단한다(제252 단계). MV(B1)과 MV(B2)는 각각 제212 단계에서 서브 블록 B1과 B2 의 참조 픽쳐로 결정된 참조 픽쳐를 이용하여 구한 모션 벡터이다.
모션 벡터의 유사 여부 판단은 두 개의 모션 벡터의 X축의 좌표값의 차이와 Y축의 좌표값의 차이가 각각 소정 한계값 내에 있으면 두 개의 모션 벡터가 서로 유사한 것으로 판단할 수 있다.
만약, 모션 벡터 MV(B1)과 MV(B2)가 유사하면, 블록 분할부(151)는 참조 픽쳐/블록 모드 결정부(154)의 제어신호에 따라 B1과 B2, B3와 B 4를 그룹화하여 각각 B21과 B22 의 두 개의 16×8 크기의 서브 블록으로 입력 매크로 블록을 분할하여 움직임 추정부(153)로 제공한다.
한편, 참조 픽쳐/블록 모드 결정부(154)는 B1과 B2가 그룹화된 B21과의 움직임 추정을 위한 참조 픽쳐인 RefPic(B21)을 B1과 B2가 동일하게 이용하는 참조 픽쳐로 결정한다(제256 단계).
그리고, B22에 대한 참조 픽쳐를 결정하기 위해 B3 및 B4의 참조 픽쳐인 RefPic(B3)과 RefPic(B4)를 각각 이용하여 B22 에 대한 움직임 추정을 수행한다(제258 단계).
RefPic(B3) 및 RefPic(B4)를 이용하여 각각 움직임 추정한 결과 움직임 추정이 더 정확하게 수행된 참조 픽쳐가 어느 것인지를 판단한다(제260 단계). 그 판단은 제212b 단계에서와 동일하게 SAD 함수값을 가지고 판단한다.
판단 결과에 따라, RefPic(B22)을 RefPic(B3) 또는 RefPic(B4)로 결정한다(제262 단계 또는 제264 단계).
제210 단계 및 제212 단계를 통해 8×8 블록 모드로 움직임 추정한 결과 생성된 데이터량과 제254 단계 내지 제264 단계를 통해 16×8 블록 모드로 움직임 추정한 결과 생성된 데이터량을 계산한다(제266 단계).
양자의 데이터량을 비교하여(제268 단계), 만약 16×8 블록 모드로 움직임 추정한 결과 생성된 데이터량이 이미 수행된 8×8 블록 모드로 움직임 추정한 결과 생성된 데이터량보다 적다면 부호화 효율이 16×8 블록 모드가 더 좋다는 의미이므로 최종적인 블록 모드를 16×8 블록 모드로 결정한다(제270 단계).
그러나, 16×8 블록 모드로 움직임 추정한 결과 생성된 데이터량이 8×8 블록 모드로 움직임 추정한 결과 생성된 데이터량보다 많다면 최종적인 블록 모드를 8×8 블록 모드로 결정한다(제272 단계).
한편, 부호화 효율을 판단하기 위해 본 실시예에서는 각 블록 모드로 움직임 추정한 결과 생성된 데이터량을 기준으로 하였다. 생성 데이터량의 계산은 예컨대 전술한 SAD 함수, SATD 함수, SSD 함수, MAD(Mean of Absolute Difference) 함수 또는 라그랑제(Lagrange) 함수 중 하나의 함수를 이용할 수 있다.
만약, 제252 단계에서의 판단 결과, 모션 벡터 MV(B1)과 MV(B2)가 유사하지 않으면 도 6D에 도시된 단계들이 수행된다. 도 6D에 도시된 단계들은 도 6C에 도시된 단계들과 비교할 때, 모션 벡터 MV(B1)과 MV(B3)가 유사한 모션 벡터인지 여부에 따라 B1과 B3, B2와 B4를 그룹화한다는 점에 차이가 있을 뿐 이후 후속 단계들은 동일하다.
즉, 참조 픽쳐/블록 모드 결정부(154)는 움직임 추정부(153)로부터 입력받은 B1과 B3의 모션 벡터 MV(B1)과 MV(B3)가 유사한 모션 벡터인지 여부를 판단한다(제280 단계).
만약, 모션 벡터 MV(B1)과 MV(B3)가 유사하면, 블록 분할부(151)는 참조 픽쳐/블록 모드 결정부(154)의 제어신호에 따라 B1과 B3, B2와 B 4를 그룹화하여 각각 B31과 B32 의 두 개의 8×16 크기의 서브 블록으로 입력 매크로 블록을 분할하여 움직임 추정부(153)로 제공한다.
한편, 참조 픽쳐/블록 모드 결정부(154)는 B1과 B3가 그룹화된 B31과의 움직임 추정을 위한 참조 픽쳐인 RefPic(B31)을 B1과 B3가 동일하게 이용하는 참조 픽쳐로 결정한다(제284 단계).
그리고, B32에 대한 참조 픽쳐를 결정하기 위해 B2 및 B4의 참조 픽쳐인 RefPic(B2)과 RefPic(B4)를 각각 이용하여 B32 에 대한 움직임 추정을 수행한다(제286 단계).
RefPic(B2) 및 RefPic(B4)를 이용하여 각각 움직임 추정한 결과 움직임 추정이 더 정확하게 수행된 참조 픽쳐가 어느 것인지를 판단한다(제288 단계).
판단 결과에 따라, RefPic(B32)을 RefPic(B2) 또는 RefPic(B4)로 결정한다(제290 단계 또는 제292 단계).
제210 단계 및 제212 단계를 통해 8×8 블록 모드로 움직임 추정한 결과 생성된 데이터량과 제282 단계 내지 제292 단계를 통해 8×16 블록 모드로 움직임 추정한 결과 생성된 데이터량을 계산한다(제294 단계).
양자의 데이터량을 비교하여(제296 단계), 만약 8×16 블록 모드로 움직임 추정한 결과 생성된 데이터량이 이미 수행된 8×8 블록 모드로 움직임 추정한 결과 생성된 데이터량보다 적다면 부호화 효율이 8×16 블록 모드가 더 좋다는 의미이므로 최종적인 블록 모드를 8×16 블록 모드로 결정한다(제298 단계).
그러나, 8×16 블록 모드로 움직임 추정한 결과 생성된 데이터량이 8×8 블록 모드로 움직임 추정한 결과 생성된 데이터량보다 많다면 최종적인 블록 모드를 8×8 블록 모드로 결정한다(제299 단계).
또한, 본 실시예에서는 B1, B2, B3가 동일한 참조 픽쳐를 이용하는 경우를 설명하였으나 그 밖의 다른 경우, 예컨대 B1, B2, B4 또는 B2 , B3, B4가 동일한 하나의 참조 픽쳐를 이용하는 경우에도 참조 픽쳐 및 블록 모드 결정 방법은 동일하다.
다만 제252 단계 및 제280 단계에서의 두 블록의 모션 벡터의 유사여부 판단은 서로 인접하는 두 블록에 대해 수행되고 동일한 참조 픽쳐를 이용하는 블록이라 하더라도 대각선 방향의 두 블록에 대해서는 모션 벡터의 유사여부 판단을 하지 않는다.
이상에서는 다수의 참조 픽쳐 및 다수의 블록 모드를 이용한 움직임 추정에 있어서 본 발명에 따른 참조 픽쳐 및 블록 모드 결정에 대해 설명하였다.
이하에서는 참조 픽쳐가 하나인 경우, 다수의 블록 모드를 이용한 움직임 추정에 있어서 본 발명에 따른 블록 모드 결정에 대해 설명한다.
도 8은 본 발명의 바람직한 실시예에 따른 블록 모드 결정 장치의 블록도를 나타낸다.
도 8을 참조하면, 블록 모드 결정 장치는 블록 분할부(155), 움직임 추정부(157) 및 블록 모드 결정부(159)를 포함한다.
도 8에 도시된 블록 모드 결정 장치는 도 3에 도시된 본 발명에 따른 동영상 부호화 장치의 Motion estimator(150)와 동일한 장치이거나 적어도 Motion estimator(150)에 포함되어 본 발명에 따른 블록 모드 결정 방법을 수행한다. 다만, 본 발명에 따른 블록 모드 결정 장치는 움직임 추정을 위해 제공되는 참조 픽쳐가 하나인 경우 또는 다수의 참조 픽쳐가 제공되지만 그 중 하나가 참조 픽쳐로 결정된 경우에 본 발명에 따른 블록 모드 결정 방법을 수행한다.
블록 분할부(155)는 입력 블록 데이터, 즉 매크로 블록 단위의 영상 데이터를 입력받아 매크로 블록을 소정의 서브 블록, 예컨대 도 5에 도시한 바와 같이 입력 매크로 블록을 4개의 8×8 서브 블록 B1, B2, B3 및 B4 로 분할하여 서브 블록 단위의 영상 데이터를 출력한다.
움직임 추정부(157)는 하나의 참조 픽쳐 및 블록 분할부(155)로부터 8×8 크기의 서브 블록을 입력받아 움직임 추정을 수행한다.
블록 모드 결정부(159)는 움직임 추정부(157)로부터 블록 모드를 결정하는데 이용되는 데이터를 제공받아 본 발명에 따른 블록 모드 결정을 수행하여 움직임 추정에 이용된 블록 모드 및 모션 벡터를 포함하는 모션 데이터를 출력한다.
이상에서 설명한 본 발명에 따른 블록 모드 결정 장치의 구조에 따라 본 발명에 따른 블록 모드 결정 방법을 설명한다.
도 9는 본 발명의 바람직한 실시예에 따른 블록 모드 결정 방법을 나타내는 흐름도이다.
도 5에 도시한 바와 같이, 블록 분할부(155)는 입력 매크로 블록을 4개의 8×8 블록 B1, B2, B3 및 B4로 분할한다(제410 단계).
움직임 추정부(157)는 블록 분할부(155)로부터 4개의 8×8 블록 B1, B2, B3 및 B4를 순서대로 입력받고, 입력된 하나의 참조 픽쳐를 이용하여 각 8×8 블록의 움직임 추정을 수행하여 모션 벡터를 결정하고 4×4 블록단위로 코스트(cost)를 저장한다(제412 단계). 본 실시예에서 움직임 추정은 전술한 SAD(Sum of Absolute Difference) 함수를 이용하여 수행한다.
B1, B2, B3 및 B4의 각 블록에 대해, 참조 픽쳐 내의 형성 가능한 모든 8×8 블록들에 대해 각각 SAD 함수값을 계산한 후, SAD 함수값이 최소가 되는 참조 픽쳐 내의 8×8 블록을 탐색하여 각 블록에 대응하는 모션 벡터 MV(B1), MV(B2), MV(B 3) 및 MV(B4)를 결정한다. 이 때 SAD 함수값은 후속 단계에서 사용하기 위해 4×4 블록단위로 저장하고 4×4 블록단위로 저장된 SAD 함수값을 코스트(cost)라 한다.
도 10은 B1, B2, B3 및 B4의 각 블록의 모션 벡터의 결정을 위해 계산된 SAD 함수값이 4×4 블록단위로 저장된 것을 나타내는 도면이다.
블록 B1의 경우, SAD 함수값이 4×4 블록단위로 C11, C12, C13 및 C14 로 각각 저장된다. 블록 B1의 SAD 함수값은 C11, C12, C13 및 C 14를 모두 더한 값이 된다.
한편, 움직임 추정을 위한 측정 함수로써 SAD가 아닌 다른 함수가 사용될 수도 있다. 다른 측정 함수로는 SATD(Sum of Absolute Transformed Difference) 함수 또는 SSD(Sum of Squared Difference) 함수 등이 있다.
이상에서 설명한 제410 단계 및 제412 단계는 다수의 블록 모드 중, 먼저 8×8 블록 모드로 움직임 추정을 수행하는 과정이다. 제412 단계 이하의 단계에서는 먼저 수행된 8×8 블록 모드로 움직임 추정한 결과를 이용하여 최종적인 블록 모드를 결정한다.
제412 단계 후, 블록 모드 결정부(159)는 B1, B2, B3 및 B4 의 각 블록에 대해, 4×4 블록단위로 저장된 4개의 SAD 함수값이 유사한지 여부를 판단한다(제414 단계).
제412 단계는 8×8 블록 보다 적은 크기의 블록으로 움직임 추정을 수행할 필요가 있는지 여부를 판단하는 단계이다. 이를 위해 제412 단계의 움직임 추정 과정 중에 저장한 코스트라 불리우는 SAD 함수값을 이용한다. 예컨대 블록 B1에 대응하는 4×4 블록단위로 저장된 4개의 SAD 함수값 C11, C12, C13 및 C 14 중 하나가 다른 3개의 함수값과 차이가 많이 나는 경우, 8×8 블록 모드로 움직임 추정한 결과에 오류가 있다고 판단하여 보다 정확한 움직임 추정을 위해 그 보다 적은 크기의 블록 단위로 움직임 추정을 시도한다.
SAD 함수값의 유사 여부 판단은, 예컨대 두 함수값의 차이가 소정 한계값 내에 있으면 상기 두 개의 측정 함수값이 서로 유사한 것으로 판단한다.
제414 단계에서의 판단 결과, 블록 B1에 대응하는 C11, C12, C13 및 C14 가 서로 유사하고, 블록 B2 에 대응하는 C21, C22, C23 및 C24 가 서로 유사하고, 블록 B3에 대응하는 C31, C32, C33 및 C34 가 서로 유사하고, 블록 B 4 에 대응하는 C41, C42, C43 및 C44 가 서로 유사하다면, 제412 단계에서 결정된 B1, B2, B3 및 B4 각각의 모션 벡터 MV(B1), MV(B2), MV(B3) 및 MV(B4)의 유사 여부에 따라 블록 모드를 결정한다(제500 단계).
제414 단계에서 8×8 블록 모드보다 하위의 블록 모드로 움직임 추정을 시도할 필요가 없는 것으로 판단되면, 제500 단계에서 8×8 블록 모드보다 상위의 블록 모드를 최종 블록 모드로 결정할 수 있는지 여부를 모션 벡터의 유사 여부를 이용하여 판단한다.
도 11은 도 9에 도시된 제500 단계의 세부 단계를 나타내는 흐름도이다.
MV(B1), MV(B2), MV(B3) 및 MV(B4)의 4개의 모션 벡터의 유사 여부를 판단하여 MV(B1) 내지 MV(B4)가 모두 유사하면 블록 모드를 16×16 블록 모드로 결정한다(제516 단계).
만약, MV(B1)과 MV(B2)가 유사하고 MV(B3)과 MV(B4)가 유사하면 블록 모드를 16×8 블록 모드로 결정하고(제522 단계), MV(B1)과 MV(B3)가 유사하고 MV(B2)과 MV(B4)가 유사하면 블록 모드를 8×16 블록 모드로 결정한다(제532 단계).
그러나, 서로 유사한 모션 벡터를 갖는 인접한 한 쌍의 블록들이 존재하지 않거나 인접한 한 쌍의 제1 서브 블록들의 모션 벡터는 유사하고 다른 한 쌍의 제1 서브 블록들의 모션 벡터가 유사하지 않으면 블록 모드를 8×8 블록 모드로 결정한다(제518, 제524, 제528 및 제534 단계).
도 11에 표시된 기호 "=="는 두 모션 벡터가 완전 동일함을 의미하는 것이 아니라 유사함을 의미한다.
제500 단계에서 결정된 블록 모드에 따른 생성 데이터량과 제410 단계 및 제412 단계에서 이미 수행된 8×8 블록 모드에 따른 생성 데이터량을 비교하여 생성 데이터량이 적은 블록 모드를 최종적인 블록 모드로 선택한다(제600 단계).
도 12는 도 9에 도시된 제600 단계의 세부 단계를 나타내는 흐름도이다.
먼저, 제500 단계에서 결정된 블록 모드가 무엇인지를 판단한다(제610 단계).
결정된 블록 모드가 16×16이면 8×8 블록 모드에 따른 코스트인 cost(8×8)을 계산한다(제612 단계). cost(8×8)은 B1, B2, B3 및 B4 의 모션 벡터를 구하는 제412 단계에서 계산된 SAD 함수값을 모두 더한 값이 된다. 이러한 SAD 함수값은, 소정 블록 모드로 움직임 추정한 결과, 부호화할 데이터량 또는 전송 데이터량을 가늠할 수 있는 기준값이 된다.
블록 모드 결정부(159)는 블록 분할부(155)로 제어신호를 출력하고, 블록 분할부(155)는 그 제어신호에 따라 입력 매크로 블록을 하위 블록으로 분할하지 않고 움직임 추정부(157)로 제공한다. 움직임 추정부(157)는 입력 매크로 블록을 소정 참조 픽쳐를 이용하여 16×16 블록 크기로 움직임 추정을 수행한다(제614 단계).
움직임 추정부(157)는 입력 매크로 블록의 움직임 추정 과정에서 cost(16×16)을 계산한다(제616 단계).
블록 모드 결정부(159)는 움직임 추정부(157)로부터 cost(8×8)과 cost(16×16)을 입력받아 양자의 크기를 비교한다(제618 단계).
cost(8×8)과 cost(16×16)중, cost(16×16)이 작으면 입력 매크로 블록의 움직임 추정에 이용되는 블록 모드를 16×16 블록 모드로 최종적으로 결정한다(제620 단계).
그러나, cost(8×8)이 작으면 입력 매크로 블록의 움직임 추정에 이용되는 블록 모드를 8×8 블록 모드로 최종적으로 결정한다(제622 단계).
결정된 블록 모드가 8×8이면 더 이상의 추가 단계를 수행할 필요없이 입력 매크로 블록의 움직임 추정에 이용되는 블록 모드를 8×8 블록 모드로 최종적으로 결정한다(제622 단계).
결정된 블록 모드가 8×16이면 먼저, 8×8 블록 모드에 따른 코스트인 cost(8×8)을 계산한다(제624 단계).
블록 모드 결정부(159)는 블록 분할부(155)로 제어신호를 출력하고, 블록 분할부(155)는 그 제어신호에 따라 입력 매크로 블록을 8×16 크기의 두 개의 블록으로 분할하여 각각 움직임 추정부(157)로 제공한다. 움직임 추정부(157)는 입력된 8×16 크기의 두 블록을 소정 참조 픽쳐를 이용하여 8×16 블록 크기로 움직임 추정을 수행한다(제626 단계).
움직임 추정부(157)는 cost(8×16)을 계산한다(제628 단계). 입력 매크로 블록에 대한 cost(8×16)은 8×16 크기의 두 개의 블록의 움직임 추정 과정에서 계산된 각각의 cost(8×16)을 더함으로써 구해진다.
블록 모드 결정부(159)는 움직임 추정부(157)로부터 cost(8×8)과 cost(8×16)을 입력받아 양자의 크기를 비교한다(제630 단계).
cost(8×8)과 cost(8×16)중, cost(8×16)이 작으면 입력 매크로 블록의 움직임 추정에 이용되는 블록 모드를 8×16 블록 모드로 최종적으로 결정한다(제632 단계).
그러나, cost(8×8)이 작으면 입력 매크로 블록의 움직임 추정에 이용되는 블록 모드를 8×8 블록 모드로 최종적으로 결정한다(제622 단계).
결정된 블록 모드가 16×8이면, 먼저 8×8 블록 모드에 따른 코스트인 cost(8×8)을 계산한다(제634 단계).
블록 모드 결정부(159)는 블록 분할부(155)로 제어신호를 출력하고, 블록 분할부(155)는 그 제어신호에 따라 입력 매크로 블록을 16×8 크기의 두 개의 블록으로 분할하여 각각 움직임 추정부(157)로 제공한다. 움직임 추정부(157)는 입력된 16×8 크기의 두 블록을 소정 참조 픽쳐를 이용하여 16×8 블록 크기로 움직임 추정을 수행한다(제636 단계).
움직임 추정부(157)는 cost(16×8)을 계산한다(제638 단계). 입력 매크로 블록에 대한 cost(16×8)은 16×8 크기의 두 개의 블록의 움직임 추정 과정에서 계산된 각각의 cost(16×8)을 더함으로써 구해진다.
블록 모드 결정부(159)는 움직임 추정부(157)로부터 cost(8×8)과 cost(16×8)을 입력받아 양자의 크기를 비교한다(제640 단계).
cost(8×8)과 cost(16×8)중, cost(16×8)이 작으면 입력 매크로 블록의 움직임 추정에 이용되는 블록 모드를 16×8 블록 모드로 최종적으로 결정한다(제642 단계).
그러나, cost(8×8)이 작으면 입력 매크로 블록의 움직임 추정에 이용되는 블록 모드를 8×8 블록 모드로 최종적으로 결정한다(제622 단계).
한편, 본 실시예에서는 SAD 함수값을 코스트로 이용하여 생성 데이터량의 대소에 따라 최종적인 블록 모드를 결정하였다. 그러나 생성 데이터량의 대소는 각 블록 모드에 의한 움직임 추정시의 부호화 효율을 판단하기 위한 일 기준이다. 부호화 효율의 판단 방법으로는 데이터 생성량뿐 아니라 영상 품질까지 함께 고려한 다양한 판단 방법을 채용할 수 있다. 즉, 보다 부호화 성능이 좋은 블록 모드를 결정하기 위한 가능한 모든 방법이 적용될 수 있으며 이는 당해 기술 분야에서 통상의 지식을 가진 자라면 다양한 부호화 효율 판단 수단을 강구할 수 있을 것이다.
또한 생성 데이터량의 판단을 위한 일 기준으로 본 실시예에서는 SAD 함수값을 이용하였으나 움직임 추정에 SAD 함수가 아닌 다른 함수, 예컨대 SATD 함수, SSD 함수, MAD(Mean of Absolute Difference) 함수 또는 라그랑제(Lagrange) 함수 중 하나의 함수를 이용할 수 있다.
만약 제414 단계에서의 판단 결과, 4개의 8×8 블록 B1, B2, B3 및 B 4 중 어느 하나의 블록이라도 그 블록에 대응하는 4개의 4×4 블록 단위의 SAD 함수값 중 유사하지 아니하는 함수값이 존재하면 제416 단계를 수행한다.
즉, 블록 모드 결정부(159)는 움직임 추정부(157)로부터 B1, B2, B3 및 B4 의 각각의 블록에 대응하는 4개의 4×4 블록 단위의 SAD 함수값을 입력받아, 각 8×8 블록별로 4개의 4×4 블록 단위의 SAD 함수값이 모두 유사한지 여부를 판단한다(제416 단계).
4개의 4×4 블록 단위의 SAD 함수값이 모두 유사한 블록이면, 더 이상의 추가 단계의 수행없이 입력 매크로 블록의 움직임 추정을 위한 블록 모드를 8×8 블록 모드로 최종적으로 결정한다(제418 단계).
그러나 B1, B2, B3 및 B4 의 4개의 블록 중, 만약 블록 B 1 에 대응하는 4개의 4×4 블록 단위의 SAD 함수값 중 유사하지 아니하는 함수값이 존재하면, 블록 모드 결정부(159)는 블록 분할부(155)로 제어신호를 출력하고, 블록 분할부(155)는 그 제어신호에 따라 블록 B1 을 4×4 블록 단위로 움직임 추정을 하기 위해 4개의 4×4 블록 b1, b2, b3 및 b4 로 분할한다(제710 단계).
움직임 추정부(157)는 블록 분할부(155)로부터 블록 B1 에 속하는 b1, b2 , b3 및 b4 블록을 각각 입력받아 움직임 추정을 수행하여 각 블록의 모션 벡터를 결정한다(제712 단계).
b1, b2, b3 및 b4 각각에 대해 결정된 모션 벡터 MV(b 1), MV(b2), MV(b3) 및 MV(b4)의 유사 여부에 따라 블록 모드를 결정한다(제800 단계).
도 13은 도 9에 도시된 제800 단계의 세부 단계를 나타내는 흐름도이다.
MV(b1), MV(b2), MV(b3) 및 MV(b4)의 4개의 모션 벡터의 유사 여부를 판단하여 MV(b1) 내지 MV(b4)가 모두 유사하면 블록 모드를 8×8 블록 모드로 결정한다(제816 단계).
만약, MV(b1)과 MV(b2)가 유사하고 MV(b3)과 MV(b4)가 유사하면 블록 모드를 8×4 블록 모드로 결정하고(제822 단계), MV(b1)과 MV(b3)가 유사하고 MV(b2)과 MV(b4)가 유사하면 블록 모드를 4×8 블록 모드로 결정한다(제832 단계).
그러나, 서로 유사한 모션 벡터를 갖는 인접한 한 쌍의 블록들이 존재하지 않거나 인접한 한 쌍의 제1 서브 블록들의 모션 벡터는 유사하고 다른 한 쌍의 제1 서브 블록들의 모션 벡터가 유사하지 않으면 블록 모드를 4×4 블록 모드로 결정한다(제818, 제824, 제828 및 제834 단계).
제800 단계에서 블록 B1 에 대해 결정된 블록 모드에 따른 생성 데이터량과 제710 단계 및 제712 단계에서 블록 B1 에 대해 이미 수행된 4×4 블록 모드에 따른 생성 데이터량을 비교하여 생성 데이터량이 적은 블록 모드를 최종적인 블록 B1의 블록 모드로 선택한다(제900 단계).
도 14는 도 9에 도시된 제900 단계의 세부 단계를 나타내는 흐름도이다.
먼저, 제800 단계에서 블록 B1 에 대해 결정된 블록 모드가 무엇인지를 판단한다(제910 단계).
결정된 블록 모드가 8×8이면, 먼저 4×4 블록 모드에 따른 블록 B1 의 코스트인 cost(4×4)을 계산한다(제912 단계). cost(4×4)은 제712 단계에서 블록 B1 에 속하는 b1, b2, b3 및 b4 블록에 대한 각각의 움직임 추정 결과 계산된 4개의 SAD 함수값을 모두 더하여 구한다.
8×8 블록 모드에 따른 블록 B1 의 코스트인 cost(8×8)을 계산한다(제914 단계). cost(8×8)은 B1의 모션 벡터를 구하는 제412 단계에서 이미 계산된 SAD 함수값을 이용한다.
블록 모드 결정부(159)는 움직임 추정부(157)로부터 cost(8×8)과 cost(4×4)을 입력받아 양자의 크기를 비교한다(제916 단계).
cost(8×8)과 cost(4×4) 중, cost(8×8)이 작으면 블록 B1의 움직임 추정에 이용되는 블록 모드를 8×8 블록 모드로 최종적으로 결정한다(제9180 단계).
그러나, cost(4×4)이 작으면 블록 B1 의 움직임 추정에 이용되는 블록 모드를 8×8 블록 모드로 최종적으로 결정한다(제622 단계).
결정된 블록 모드가 4×4이면 더 이상의 추가 단계를 수행할 필요없이 블록 B1 의 움직임 추정에 이용되는 블록 모드를 4×4 블록 모드로 최종적으로 결정한다(제920 단계).
결정된 블록 모드가 4×8이면 제912 단계에서와 같이, 4×4 블록 모드에 따른 블록 B1 의 코스트인 cost(4×4)을 계산한다(제912 단계).
블록 모드 결정부(159)는 블록 분할부(155)로 제어신호를 출력하고, 블록 분할부(155)는 그 제어신호에 따라 블록 B1 을 4×8 크기의 두 개의 블록으로 분할하여 각각 움직임 추정부(157)로 제공한다. 움직임 추정부(157)는 입력된 4×8 크기의 두 블록을 소정 참조 픽쳐를 이용하여 4×8 블록 크기로 움직임 추정을 수행한다(제924 단계).
움직임 추정부(157)는 블록 B1 의 cost(4×8)을 계산한다(제926 단계). 블록 B1 에 대한 cost(4×8)은 4×8 크기의 두 개의 블록의 움직임 추정 과정에서 계산된 각각의 cost(4×8)을 더함으로써 구한다.
블록 모드 결정부(159)는 움직임 추정부(157)로부터 cost(4×4)과 cost(4×8)을 입력받아 양자의 크기를 비교한다(제928 단계).
cost(4×4)과 cost(4×8) 중, cost(4×8)이 작으면 블록 B1 의 움직임 추정에 이용되는 블록 모드를 4×8 블록 모드로 최종적으로 결정한다(제930 단계).
그러나, cost(4×4)이 작으면 블록 B1 의 움직임 추정에 이용되는 블록 모드를 4×4 블록 모드로 최종적으로 결정한다(제920 단계).
결정된 블록 모드가 8×4이면, 제912 단계에서와 같이, 4×4 블록 모드에 따른 블록 B1 의 코스트인 cost(4×4)을 계산한다(제932 단계).
블록 모드 결정부(159)는 블록 분할부(155)로 제어신호를 출력하고, 블록 분할부(155)는 그 제어신호에 따라 블록 B1 을 8×4 크기의 두 개의 블록으로 분할하여 각각 움직임 추정부(157)로 제공한다. 움직임 추정부(157)는 입력된 8×4 크기의 두 블록을 소정 참조 픽쳐를 이용하여 8×4 블록 크기로 움직임 추정을 수행한다(제934 단계).
움직임 추정부(157)는 블록 B1 의 cost(8×4)을 계산한다(제936 단계). 블록 B1 에 대한 cost(8×4)은 8×4 크기의 두 개의 블록의 움직임 추정 과정에서 계산된 각각의 cost(8×4)을 더함으로써 구한다.
블록 모드 결정부(159)는 움직임 추정부(157)로부터 cost(4×4)과 cost(8×4)을 입력받아 양자의 크기를 비교한다(제938 단계).
cost(4×4)과 cost(8×4) 중, cost(8×4)이 작으면 블록 B1 의 움직임 추정에 이용되는 블록 모드를 8×4 블록 모드로 최종적으로 결정한다(제940 단계).
그러나, cost(4×4)이 작으면 블록 B1 의 움직임 추정에 이용되는 블록 모드를 4×4 블록 모드로 최종적으로 결정한다(제920 단계).
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는, ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
종래에 다수의 참조 픽쳐 및 다양한 블록 모드를 이용하여 움직임 추정을 하는 경우, 모든 참조 픽쳐를 이용하여 가능한 모든 블록 모드로 입력 매크로 블록에 대한 움직임 추정을 모두 수행하여 그 중 부호화 효율이 가장 좋은 참조 픽쳐 및 블록 모드를 결정하여 픽쳐간 예측 부호화를 수행함으로써 계산량이 매우 많아 인코더에 큰 부담이 되었다.
그러나, 본 발명에 따른 고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정 방법, 그 장치, 블록 모드 결정 방법 및 그 장치는 먼저 한 가지 블록 모드로 움직임 추정을 한 결과를 이용함으로써 참조 픽쳐 및 블록 모드의 결정을 위해 수행해야 할 움직임 추정의 회수를 대폭 감소시킬 수 있어, 보다 적은 계산량으로 참조 픽쳐 및 블록 모드 또는 참조 픽쳐를 결정할 필요가 없는 경우에는 블록 모드를 결정할 수 있는 효과를 제공한다.
도 1은 현재 픽쳐 및 현재 픽쳐의 움직임 추정에 이용되는 다수의 참조 픽쳐를 나타내는 도면,
도 2는 움직임 추정을 위한 다양한 블록 모드를 나타내는 도면,
도 3은 본 발명의 바람직한 실시예에 따른 동영상 부호화 장치를 나타내는 블록도,
도 4는 본 발명의 바람직한 실시예에 따른 참조 픽쳐 및 블록 모드 결정 장치를 나타내는 블록도,
도 6A는 본 발명의 바람직한 실시예에 따른 참조 픽쳐 및 블록 모드 결정 방법을 나타내는 흐름도,
도 6B는 동일한 참조 픽쳐의 수가 2개인 경우의 참조 픽쳐 및 블록 모드 결정 방법의 흐름도를 나타내는 도면,
도 6C 및 도 6D는 동일한 참조 픽쳐의 수가 3개인 경우의 참조 픽쳐 및 블록 모드 결정 방법의 흐름도를 나타내는 도면,
도 7은 도 6A에 도시된 제212단계의 상세 단계를 나타내는 흐름도,
도 8은 본 발명의 바람직한 실시예에 따른 블록 모드 결정 장치를 나타내는 블록도,
도 9는 본 발명의 바람직한 실시예에 따른 블록 모드 결정 방법을 나타내는 흐름도,
도 10은 SAD 함수값이 4×4 블록단위로 저장된 것을 나타내는 도면,
도 11은 도 9에 도시된 제500 단계의 세부 단계를 나타내는 흐름도,
도 12는 도 9에 도시된 제600 단계의 세부 단계를 나타내는 흐름도,
도 13은 도 9에 도시된 제800 단계의 세부 단계를 나타내는 흐름도,
도 14는 도 9에 도시된 제900 단계의 세부 단계를 나타내는 흐름도이다.

Claims (58)

  1. (a) 소정 크기의 비디오 데이터 블록을 2M(M은 1이상의 정수)개의 제1 서브 블록으로 분할하는 단계;
    (b) N(N은 2이상의 정수)개의 참조 픽쳐 중, 상기 각 제1 서브 블록의 움직임 추정에 이용되는 각각의 참조 픽쳐를 결정하는 단계;
    (c) 동일한 참조 픽쳐를 이용하는 제1 서브 블록의 개수를 판단하는 단계;
    (d) 동일한 참조 픽쳐를 이용하는 제1 서브 블록의 개수가 두 개 이상이고 (2M-1)개 이하이면, 동일한 참조 픽쳐를 이용하는 서로 인접한 두 개의 제1 서브 블록이 존재하는지 여부를 판단하는 단계; 및
    (e) 동일한 참조 픽쳐를 이용하는 서로 인접한 두 개의 제1 서브 블록이 존재하면, 상기 동일한 참조 픽쳐를 이용하여 서로 인접한 상기 두 개의 제1 서브 블록 각각의 움직임 추정을 수행한 결과 얻은 두 개의 모션 벡터의 유사 여부에 따라 참조 픽쳐 및 블록 모드를 결정하는 단계를 포함하는 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 방법.
  2. 제1 항에 있어서, 상기 (e)단계는 상기 두 개의 모션 벡터가 서로 유사하면,
    (e1) 서로 인접한 상기 두 개의 제1 서브 블록을 그룹화하고, 상기 두 개의 제1 서브 블록들의 인접 방향에 따라 나머지 (2M-2)개의 제1 서브 블록들을 두 개씩 그룹화하여, 상기 비디오 데이터 블록을 M개의 제2 서브 블록으로 분할하는 단계;
    (e2) 서로 인접한 상기 두 개의 제1 서브 블록을 그룹화한 제2 서브 블록에 대한 참조 픽쳐를 상기 동일한 참조 픽쳐로 결정하는 단계; 및
    (e3) 상기 결정된 참조 픽쳐를 이용하여, 서로 인접한 상기 두 개의 제1 서브 블록을 그룹화한 제2 서브 블록의 움직임 추정을 수행하는 단계를 포함하는 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 방법.
  3. 제2 항에 있어서, 상기 (e)단계는 서로 인접한 상기 두 개의 제1 서브 블록 외의 다른 제1 서브 블록들이 서로 다른 참조 픽쳐를 이용하면,
    (e4) 상기 서로 다른 각 참조 픽쳐를 이용하여, 상기 다른 제1 서브 블록들을 두 개씩 그룹화하여 형성된 (M-1)개의 제2 서브 블록의 움직임 추정을 수행하는 단계; 및
    (e5) 상기 각 움직임 추정의 정확도를 판단하여, 움직임 추정의 정확도가 최대인 경우에 이용된 참조 픽쳐를 상기 (M-1)개의 제2 서브 블록에 대한 참조 픽쳐로 결정하는 단계를 포함하는 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 방법.
  4. 제3 항에 있어서, 상기 (e)단계는
    (e6) 상기 결정된 각 참조 픽쳐를 이용하여 상기 비디오 데이터 블록을 상기 제2 서브 블록 모드로 움직임 추정한 결과에 따라 발생된 데이터량과 상기 제1 서브 블록 모드로 움직임 추정한 결과에 따라 발생된 데이터량을 비교하여 데이터량이 적은 경우에 이용된 블록 모드를 상기 비디오 데이터 블록의 블록 모드로 결정하는 단계를 포함하는 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 방법.
  5. 제1 항에 있어서,
    상기 (e)단계는 상기 두 개의 모션 벡터가 서로 유사하지 않으면, 제1 서브 블록 모드를 상기 비디오 데이터 블록의 블록 모드로 결정하는 단계인 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 방법.
  6. 제1 항에 있어서,
    상기 (e)단계는 상기 두 개의 모션 벡터의 X축의 좌표값의 차이와 Y축의 좌표값의 차이가 각각 소정 한계값 내에 있으면 상기 두 개의 모션 벡터가 서로 유사한 것으로 판단하는 단계인 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 방법.
  7. 제1 항에 있어서,
    상기 비디오 데이터 블록은 16×16 크기의 매크로 블록이고, 상기 제1 서브 블록은 8×8 크기의 서브 블록이고, 상기 제2 서브 블록은 16×8 크기의 서브 블록 또는 8×16 크기의 서브 블록중 하나인 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 방법.
  8. 제3 항에 있어서,
    상기 (e5)단계는 상기 비디오 데이터 블록에 포함된 상기 제2 서브 블록을 구성하는 각각의 화소값과, 참조 픽쳐에 포함된 서브 블록으로서 상기 제2 서브 블록에 대응하는 제2 서브 블록을 구성하는 화소값으로서 상기 제2 서브 블록을 구성하는 각각의 화소값에 대응하는 화소값과의 차이의 합인 SAD값을 이용하여 움직임 추정의 정확도를 판단하는 단계인 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 방법.
  9. 제1 항에 있어서, 상기 (b)단계는
    (b1) 상기 N개의 참조 픽쳐를 이용하여, 상기 각각의 제1 서브 블록별로 N번의 움직임 추정을 수행하는 단계; 및
    (b2) 상기 각각의 제1 서브 블록별로 N번 수행된 움직임 추정의 정확도를 판단하여, 움직임 추정의 정확도가 최대가 되는 경우에 이용된 참조 픽쳐를 상기 각각의 제1 서브 블록의 참조 픽쳐로 결정하는 단계를 포함하는 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 방법.
  10. 제1 항에 있어서,
    상기 (c)단계의 판단 결과, 모든 제1 서브 블록들이 동일한 참조 픽쳐를 이용하는 것으로 판단되면,
    (f) 상기 모든 제1 서브 블록들이 동일하게 이용하는 참조 픽쳐를, 소정 블록 모드로 상기 비디오 데이터 블록의 움직임 추정 시에 이용하는 참조 픽쳐로 결정하는 단계를 더 포함하는 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 방법.
  11. 제1 항에 있어서,
    상기 (c)단계의 판단 결과, 상기 2M 개의 제1 서브 블록들이 서로 다른 참조 픽쳐를 이용하는 것으로 판단되면,
    (g) 상기 각 제1 서브 블록이 이용하는 각 참조 픽쳐를, 소정 블록 모드로 상기 각 제1 서브 블록의 움직임 추정 시에 이용하는 참조 픽쳐로 결정하는 단계를 더 포함하는 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 방법.
  12. 입력된 소정 크기의 비디오 데이터 블록을 2M(M은 1이상의 정수)개의 제1 서브 블록으로 분할하는 블록 분할부;
    N(N은 2이상의 정수)개의 참조 픽쳐를 입력받고, 상기 블록 분할부로부터 상기 2M개의 제1 서브 블록들을 입력받아, 상기 N개의 참조 픽쳐를 이용하여, 상기 각각의 제1 서브 블록의 움직임 추정을 수행하는 움직임 추정부; 및
    상기 움직임 추정부로부터 입력받은, 상기 N개의 참조 픽쳐를 이용하여 상기 각각의 제1 서브 블록별로 N번 수행된 움직임 추정의 정확도를 나타내는 N개의 참조값에 따라, 움직임 추정의 정확도가 최대가 되는 경우에 이용된 참조 픽쳐를 상기 각각의 제1 서브 블록에 대한 참조 픽쳐로 결정하고,
    동일한 참조 픽쳐를 이용하는 제1 서브 블록의 개수가 두 개 이상, (2M-1)개 이하이고, 동일한 참조 픽쳐를 이용하는 서로 인접한 두 개의 제1 서브 블록이 존재하면, 상기 움직임 추정부로부터 상기 동일한 참조 픽쳐를 이용하여 서로 인접한 상기 두 개의 제1 서브 블록 각각의 움직임 추정을 수행한 결과 얻은 두 개의 모션 벡터를 입력받아, 상기 두 개의 모션 벡터의 유사 여부에 따라 참조 픽쳐 및 블록 모드를 결정하는 참조 픽쳐/블록 모드 결정부를 포함하는 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 장치.
  13. 제12 항에 있어서,
    상기 참조 픽쳐/블록 모드 결정부는 상기 두 개의 모션 벡터가 서로 유사한 것으로 판단되면, 서로 인접한 상기 두 개의 제1 서브 블록을 그룹화한 제2 서브 블록에 대한 참조 픽쳐를 상기 동일한 참조 픽쳐로 결정하고,
    상기 블록 분할부는 상기 참조 픽쳐/블록 모드 결정부로부터 제공된 블록 그룹화 명령에 따라 서로 인접한 상기 두 개의 제1 서브 블록을 그룹화하고, 상기 두 개의 제1 서브 블록들의 인접 방향에 따라 나머지 (2M-2)개의 제1 서브 블록들을 두 개씩 그룹화하여, 상기 비디오 데이터 블록을 M개의 제2 서브 블록으로 분할하여, 상기 M개의 제2 서브 블록들을 상기 움직임 추정부로 제공하고,
    상기 움직임 추정부는 상기 참조 픽쳐/블록 모드 결정부로부터 상기 결정된 참조 픽쳐를 나타내는 인덱스를 입력받아, 상기 인덱스가 나타내는 참조 픽쳐를 이용하여, 서로 인접한 상기 두 개의 제1 서브 블록이 그룹화된 제2 서브 블록의 움직임 추정을 수행하는 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 장치.
  14. 제13 항에 있어서,
    상기 참조 픽쳐/블록 모드 결정부는 서로 인접한 상기 두 개의 제1 서브 블록 외의 다른 제1 서브 블록들이 서로 다른 참조 픽쳐를 이용하면,
    상기 움직임 추정부로부터, 상기 서로 다른 각 참조 픽쳐를 이용하여, 상기 다른 제1 서브 블록들을 두 개씩 그룹화하여 형성된 (M-1)개의 제2 서브 블록 각각의 움직임 추정을 수행한 결과 얻은 상기 각 움직임 추정의 정확도를 나타내는 다수의 참조값을 제공받아, 상기 다수의 참조값에 따라 움직임 추정의 정확도가 최대인 경우에 이용된 참조 픽쳐를 상기 (M-1)개의 제2 서브 블록에 대한 참조 픽쳐로 결정하는 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 장치.
  15. 제14 항에 있어서,
    상기 참조 픽쳐/블록 모드 결정부는 상기 결정된 각 참조 픽쳐를 이용하여 상기 비디오 데이터 블록을 상기 제2 서브 블록 모드로 움직임 추정한 결과에 따라 발생된 데이터량과 상기 제1 서브 블록 모드로 움직임 추정한 결과에 따라 발생된 데이터량을 비교하여 데이터량이 적은 경우에 이용된 블록 모드를 상기 비디오 데이터 블록의 블록 모드로 결정하는 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 장치.
  16. 제12 항에 있어서,
    상기 참조 픽쳐/블록 모드 결정부는 상기 두 개의 모션 벡터가 서로 유사하지 않으면, 제1 서브 블록 모드를 상기 비디오 데이터 블록의 블록 모드로 결정하는 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 장치.
  17. 제12 항에 있어서,
    상기 참조 픽쳐/블록 모드 결정부는 상기 두 개의 모션 벡터의 각 X축의 좌표값의 차이와 각 Y축 의 좌표값의 차이가 소정 범위 내에 있으면 상기 두 개의 모션 벡터가 서로 유사한 것으로 판단하는 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 장치.
  18. 제12 항에 있어서,
    상기 비디오 데이터 블록은 16×16 크기의 매크로 블록이고, 상기 제1 서브 블록은 8×8 크기의 서브 블록이고, 상기 제2 서브 블록은 16×8 크기의 서브 블록 또는 8×16 크기의 서브 블록중 하나인 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 장치.
  19. 제12 항에 있어서,
    상기 움직임 추정의 정확도를 나타내는 참조값은, 상기 비디오 데이터 블록에 포함된 상기 제1 서브 블록을 구성하는 각각의 화소값과, 참조 픽쳐에 포함된 서브 블록으로서 상기 제1 서브 블록에 대응하는 제1 서브 블록을 구성하는 화소값으로서 상기 제1 서브 블록을 구성하는 각각의 화소값에 대응하는 화소값과의 차이의 합인 SAD값인 것을 특징으로 하는 참조 픽쳐 및 블록 모드 결정 장치.
  20. (a) 소정의 참조 픽쳐 및 움직임 추정을 위한 소정의 측정 함수를 이용하여, 입력 비디오 데이터 블록을 제1 서브 블록 모드로 움직임 추정하여 각각의 제1 서브 블록에 대응하는 상기 측정 함수의 값 및 모션 벡터를 결정하는 단계;
    (b) 상기 입력 비디오 데이터 블록을 상기 제1 서브 블록 모드보다 작은 크기의 하위 서브 블록 모드인 제2 서브 블록 모드로 움직임 추정을 수행할지 여부를 판단하는 단계; 및
    (c) 상기 입력 비디오 데이터 블록을 상기 제2 서브 블록 모드로 움직임 추정을 수행할 필요가 없는 것으로 판단되면, 상기 각 제1 서브 블록에 대응하는 모션 벡터들의 유사 여부에 따라 블록 모드를 결정하는 단계를 포함하는 것을 특징으로 하는 블록 모드 결정 방법.
  21. 제20 항에 있어서, 상기 (a)단계는
    (a1) 상기 각각의 제1 서브 블록을 다수의 제2 서브 블록들로 분할하여, 각 제1 서브 블록을 구성하는 다수의 제2 서브 블록 단위로 상기 측정 함수의 값을 계산하여, 다수의 측정 함수의 값들을 상기 각각의 제1 서브 블록에 대해 얻는 단계; 및
    (a2) 상기 다수의 측정 함수의 값들을 더하여 각각의 제1 서브 블록에 대응하는 상기 측정 함수값을 결정하는 단계를 포함하는 것을 특징으로 하는 블록 모드 결정 방법.
  22. 제21 항에 있어서, 상기 (b)단계는
    (b1) 각각의 제1 서브 블록마다, 제1 서브 블록에 대응하는 다수의 상기 측정 함수의 값들의 유사 여부를 판단하는 단계; 및
    (b2) 상기 (b1)단계에서의 판단 결과, 상기 모든 제1 서브 블록들에 대해, 각 제1 서브 블록에 대응하는 다수의 측정 함수값들이 모두 유사한 것으로 판단되면, 상기 제2 서브 블록 모드로 움직임 추정을 수행하지 않는 것으로 판단하는 단계를 포함하는 것을 특징으로 하는 블록 모드 결정 방법.
  23. 제20 항에 있어서,
    상기 (c)단계는 상기 입력 비디오 데이터 블록을 구성하는 다수의 제1 서브 블록들에 각각 대응하는 모션 벡터들이 모두 유사하면 상기 입력 비디오 데이터 블록 단위로 움직임 추정을 수행하도록 블록 모드를 결정하는 단계인 것을 특징으로 하는 블록 모드 결정 방법.
  24. 제20 항에 있어서,
    상기 입력 비디오 데이터 블록은 16×16 크기의 매크로 블록이고, 상기 입력 비디오 데이터 블록은 상기 입력 비디오 데이터 블록의 좌측상단에 위치하는 B1, 상기 B1으로부터 시계방향의 순서대로 각각 B2, B3 및 B4의 8×8 크기의 네 개의 제1 서브 블록들로 구성되고, 상기 B1 내지 B4에 각각 대응하는 모션 벡터를 MV(B1) 내지 MV(B4)인 경우,
    상기 (c)단계는 상기 MV(B1) 내지 MV(B4)가 모두 유사하면 블록 모드를 16×16 블록 모드로 결정하는 단계인 것을 특징으로 하는 블록 모드 결정 방법.
  25. 제24 항에 있어서,
    상기 (c)단계는 상기 MV(B1)과 MV(B2)가 유사하고 상기 MV(B3)과 MV(B4)가 유사하면 블록 모드를 16×8 블록 모드로 결정하는 단계인 것을 특징으로 하는 블록 모드 결정 방법.
  26. 제24 항에 있어서,
    상기 (c)단계는 상기 MV(B1)과 MV(B3)가 유사하고 상기 MV(B2)과 MV(B4)가 유사하면 블록 모드를 8×16 블록 모드로 결정하는 단계인 것을 특징으로 하는 블록 모드 결정 방법.
  27. 제24 항에 있어서,
    상기 (c)단계는 서로 유사한 모션 벡터를 갖는 인접한 한쌍의 제1 서브 블록들이 존재하지 않거나 인접한 한 쌍의 제1 서브 블록들의 모션 벡터는 유사하고 다른 한 쌍의 제1 서브 블록들의 모션 벡터가 유사하지 않으면 블록 모드를 8×8 블록 모드로 결정하는 단계인 것을 특징으로 하는 블록 모드 결정 방법.
  28. 제20 항에 있어서,
    (d) 상기 결정된 블록 모드를 이용하여 움직임 추정한 결과에 따라 생성된 데이터량과 상기 제1 서브 블록 모드를 이용하여 움직임 추정한 결과에 따라 생성된 데이터량을 비교하여 데이터량이 적은 경우에 이용된 블록 모드를 상기 비디오 데이터 블록의 블록 모드로 결정하는 단계를 더 포함하는 것을 특징으로 하는 블록 모드 결정 방법.
  29. 제20 항에 있어서,
    상기 (c)단계는 두 모션 벡터의 X축의 좌표값의 차이와 Y축의 좌표값의 차이가 각각 소정 한계값 내에 있으면 상기 두 모션 벡터가 서로 유사한 것으로 판단하는 단계인 것을 특징으로 하는 블록 모드 결정 방법.
  30. 제20 항에 있어서,
    상기 (a)단계는 SAD(Sum of Absolute Difference) 함수, SATD((Sum of Absolute Transformed Difference) 함수 또는 SSD(Sum of Squared Difference) 함수 중 하나의 함수를 이용하여 모션 벡터를 결정하는 단계인 것을 특징으로 하는 블록 모드 결정 방법.
  31. 제28 항에 있어서,
    상기 (d)단계는 SAD(Sum of Absolute Difference) 함수, SATD((Sum of Absolute Transformed Difference) 함수, SSD(Sum of Squared Difference) 함수, MAD(Mean of Absolute Difference) 함수 또는 라그랑제 함수 중 하나의 함수를 이용하여 각각의 블록 모드에 따라 생성된 데이터량을 계산하는 단계를 포함하는 것을 특징으로 하는 블록 모드 결정 방법.
  32. 제22 항에 있어서,
    상기 (b2)단계는 두 개의 측정 함수값의 차이가 소정 한계값 내에 있으면 상기 두 개의 측정 함수값이 서로 유사한 것으로 판단하는 단계인 것을 특징으로 하는 블록 모드 결정 방법.
  33. 제22 항에 있어서,
    상기 (b1)단계에서 판단 결과, 다수의 측정 함수값들 중 유사하지 않은 측정 함수값이 적어도 하나 존재하는 제1 서브 블록 Bk(k=1 내지 4의 정수)가 있으면,
    (e) 상기 소정의 참조 픽쳐 및 상기 소정의 측정 함수를 이용하여, 상기 제1 서브 블록 Bk을 제2 서브 블록 모드로 움직임 추정을 수행하여 각각의 제2 서브 블록에 대응하는 모션 벡터를 결정하는 단계; 및
    (f) 상기 제1 서브 블록 Bk을 구성하는 다수의 제2 서브 블록들에 각각 대응하는 모션 벡터들의 유사 여부를 판단하여 블록 모드를 결정하는 단계를 더 포함하는 것을 특징으로 하는 블록 모드 결정 방법.
  34. 제33 항에 있어서,
    상기 입력 비디오 데이터 블록은 16×16 크기의 매크로 블록이고, 상기 입력 비디오 데이터 블록은 상기 입력 비디오 데이터 블록의 좌측상단에 위치하는 B1, 상기 B1으로부터 시계방향의 순서대로 각각 B2, B3 및 B4의 8×8 크기의 네 개의 제1 서브 블록들로 구성되고, 다수의 측정 함수값들 중 유사하지 않은 측정 함수값이 적어도 하나 존재하는 상기 제1 서브 블록 Bk는, 상기 제1 서브 블록 Bk의 좌측상단에 위치하는 Bk1, 상기 Bk1으로부터 시계방향의 순서대로 각각 Bk2, Bk3 및 Bk4의 4×4 크기의 네 개의 제2 서브 블록들로 구성되고, 상기 Bk1 내지 Bk4에 각각 대응하는 모션 벡터를 MV(Bk1) 내지 MV(Bk4)인 경우,
    상기 (f)단계는 상기 MV(Bk1) 내지 MV(Bk4)가 모두 유사하면 상기 제1 서브 블록 Bk의 블록 모드를 8×8 블록 모드로 결정하는 단계인 것을 특징으로 하는 블록 모드 결정 방법.
  35. 제33 항에 있어서,
    상기 (f)단계는 상기 MV(Bk1)과 MV(Bk2)가 유사하고 상기 MV(Bk3)과 MV(Bk4)가 유사하면 상기 제1 서브 블록 Bk의 블록 모드를 8×4 블록 모드로 결정하는 단계인 것을 특징으로 하는 블록 모드 결정 방법.
  36. 제33 항에 있어서,
    상기 (f)단계는 상기 MV(Bk1)과 MV(Bk3)가 유사하고 상기 MV(Bk2)과 MV(Bk4)가 유사하면 상기 제1 서브 블록 Bk의 블록 모드를 4×8 블록 모드로 결정하는 단계인 것을 특징으로 하는 블록 모드 결정 방법.
  37. 제33 항에 있어서,
    상기 (f)단계는 서로 유사한 모션 벡터를 갖는 인접한 한쌍의 제2 서브 블록들이 존재하지 않거나 인접한 한 쌍의 제2 서브 블록들의 모션 벡터는 유사하고 다른 한 쌍의 제2 서브 블록들의 모션 벡터가 유사하지 않으면, 상기 제1 서브 블록 Bk의 블록 모드를 4×4 블록 모드로 결정하는 단계인 것을 특징으로 하는 블록 모드 결정 방법.
  38. 제33 항에 있어서,
    (g) 상기 (f)단계에서 결정된 블록 모드를 이용하여 상기 제1 서브 블록의 움직임 추정한 결과에 따라 생성된 데이터량과 상기 제2 서브 블록 모드를 이용하여 움직임 추정한 결과에 따라 생성된 데이터량을 비교하여 데이터량이 적은 경우에 이용된 블록 모드를 상기 제1 서브 블록 Bk의 블록 모드로 결정하는 단계를 더 포함하는 것을 특징으로 하는 블록 모드 결정 방법.
  39. 입력된 비디오 데이터 블록을 다수의 제1 서브 블록으로 분할하는 블록 분할부;
    소정의 참조 픽쳐를 입력받고, 상기 블록 분할부로부터 상기 다수의 제1 서브 블록들을 입력받아, 상기 참조 픽쳐 및 움직임 추정을 위한 소정의 측정 함수를 이용하여, 상기 입력 비디오 데이터 블록을 제1 서브 블록 모드로 움직임 추정을 수행하여 각각의 제1 서브 블록에 대응하는 측정 함수의 값 및 모션 벡터를 결정하는 움직임 추정부; 및
    상기 움직임 추정부로부터 입력받은 각각의 제1 서브 블록별로 움직임 추정한 결과 계산된 다수의 측정 함수값을 이용하여, 상기 입력 비디오 데이터 블록을 상기 제1 서브 블록 모드보다 작은 크기의 하위 서브 블록 모드인 제2 서브 블록 모드로 움직임 추정을 수행할 필요가 없는 것으로 판단되면, 상기 각 제1 서브 블록에 대응하는 모션 벡터들의 유사 여부에 따라 블록 모드를 결정하는 블록 모드 결정부를 포함하는 것을 특징으로 하는 블록 모드 결정 장치.
  40. 제39 항에 있어서,
    상기 블록 모드 결정부는 상기 움직임 추정부로부터 각각의 제1 서브 블록을 구성하는 다수의 제2 서브 블록 단위로 계산된 다수의 측정 함수값들을 입력받아 상기 측정 함수값들의 유사 여부 판단을 상기 각각의 제1 서브 블록에 대해 반복하여,
    상기 모든 제1 서브 블록들에 대해, 각 제1 서브 블록에 대응하는 다수의 측정 함수값들이 모두 유사한 것으로 판단되면, 상기 제2 서브 블록 모드로 움직임 추정을 수행하지 않는 것으로 판단하는 것을 특징으로 하는 블록 모드 결정 장치.
  41. 제39 항에 있어서,
    상기 블록 모드 결정부는 상기 입력 비디오 데이터 블록을 구성하는 다수의 제1 서브 블록들에 각각 대응하는 모션 벡터들이 모두 유사하면 상기 입력 비디오 데이터 블록 단위로 움직임 추정을 수행하도록 블록 모드를 결정하는 것을 특징으로 하는 블록 모드 결정 장치.
  42. 제39 항에 있어서,
    상기 입력 비디오 데이터 블록은 16×16 크기의 매크로 블록이고, 상기 입력 비디오 데이터 블록은 상기 입력 비디오 데이터 블록의 좌측상단에 위치하는 B1, 상기 B1으로부터 시계방향의 순서대로 각각 B2, B3 및 B4의 8×8 크기의 네 개의 제1 서브 블록들로 구성되고, 상기 B1 내지 B4에 각각 대응하는 모션 벡터를 MV(B1) 내지 MV(B4)인 경우,
    상기 블록 모드 결정부는 상기 MV(B1) 내지 MV(B4)가 모두 유사하면 블록 모드를 16×16 블록 모드로 결정하는 것을 특징으로 하는 블록 모드 결정 장치.
  43. 제42 항에 있어서,
    상기 블록 모드 결정부는 상기 MV(B1)과 MV(B2)가 유사하고 상기 MV(B3)과 MV(B4)가 유사하면 블록 모드를 16×8 블록 모드로 결정하는 것을 특징으로 하는 블록 모드 결정 장치.
  44. 제42 항에 있어서,
    상기 블록 모드 결정부는 상기 MV(B1)과 MV(B3)가 유사하고 상기 MV(B2)과 MV(B4)가 유사하면 블록 모드를 8×16 블록 모드로 결정하는 것을 특징으로 하는 블록 모드 결정 장치.
  45. 제42 항에 있어서,
    상기 블록 모드 결정부는 서로 유사한 모션 벡터를 갖는 인접한 한쌍의 제1 서브 블록들이 존재하지 않거나 인접한 한 쌍의 제1 서브 블록들의 모션 벡터는 유사하고 다른 한 쌍의 제1 서브 블록들의 모션 벡터가 유사하지 않으면 블록 모드를 8×8 블록 모드로 결정하는 것을 특징으로 하는 블록 모드 결정 장치.
  46. 제39 항에 있어서,
    상기 블록 모드 결정부는 상기 결정된 블록 모드를 이용하여 움직임 추정한 결과에 따라 생성된 데이터량과 상기 제1 서브 블록 모드를 이용하여 움직임 추정한 결과에 따라 생성된 데이터량을 비교하여 데이터량이 적은 경우에 이용된 블록 모드를 상기 비디오 데이터 블록의 블록 모드로 결정하는 것을 특징으로 하는 블록 모드 결정 장치.
  47. 제39 항에 있어서,
    상기 블록 모드 결정부는 두 모션 벡터의 X축의 좌표값의 차이와 Y축의 좌표값의 차이가 각각 소정 한계값 내에 있으면 상기 두 모션 벡터가 서로 유사한 것으로 판단하는 것을 특징으로 하는 블록 모드 결정 장치.
  48. 제39 항에 있어서,
    상기 움직임 추정부는 SAD(Sum of Absolute Difference) 함수, SATD((Sum of Absolute Transformed Difference) 함수 또는 SSD(Sum of Squared Difference) 함수 중 하나의 함수를 이용하여 모션 벡터를 결정하는 것을 특징으로 하는 블록 모드 결정 장치.
  49. 제46 항에 있어서,
    상기 블록 모드 결정부는 SAD(Sum of Absolute Difference) 함수, SATD((Sum of Absolute Transformed Difference) 함수, SSD(Sum of Squared Difference) 함수, MAD(Mean of Absolute Difference) 함수 또는 라그랑제 함수 중 하나의 함수를 이용하여 각각의 블록 모드에 따라 생성된 데이터량을 계산하는 것을 특징으로 하는 블록 모드 결정 장치.
  50. 제40 항에 있어서,
    상기 블록 모드 결정부는 두 개의 측정 함수값의 차이가 소정 한계값 내에 있으면 상기 두 개의 측정 함수값이 서로 유사한 것으로 판단하는 것을 특징으로 하는 블록 모드 결정 장치.
  51. 제39 항에 있어서,
    상기 블록 모드 결정부는 다수의 측정 함수값들 중 유사하지 않은 측정 함수값이 적어도 하나 존재하는 제1 서브 블록 Bk(k=1 내지 4의 정수)가 있으면, 상기 블록 분할부로 블록 분할 제어신호를 출력하고, 상기 블록 분할부는 상기 제어신호를 입력받아 상기 제1 서브 블록 Bk을 다수의 제2 서브 블록으로 분할하고,
    상기 움직임 추정부는 상기 소정의 참조 픽쳐 및 상기 소정의 측정 함수를 이용하여, 상기 제1 서브 블록 Bk을 제2 서브 블록 모드로 움직임 추정을 수행하여 각각의 제2 서브 블록에 대응하는 모션 벡터를 결정하고,
    상기 블록 모드 결정부는 상기 제1 서브 블록 Bk을 구성하는 다수의 제2 서브 블록들에 각각 대응하는 모션 벡터들의 유사 여부를 판단하여 블록 모드를 결정하는 것을 특징으로 하는 블록 모드 결정 장치.
  52. 제51 항에 있어서,
    상기 입력 비디오 데이터 블록은 16×16 크기의 매크로 블록이고, 상기 입력 비디오 데이터 블록은 상기 입력 비디오 데이터 블록의 좌측상단에 위치하는 B1, 상기 B1으로부터 시계방향의 순서대로 각각 B2, B3 및 B4의 8×8 크기의 네 개의 제1 서브 블록들로 구성되고, 다수의 측정 함수값들 중 유사하지 않은 측정 함수값이 적어도 하나 존재하는 상기 제1 서브 블록 Bk는, 상기 제1 서브 블록 Bk의 좌측상단에 위치하는 Bk1, 상기 Bk1으로부터 시계방향의 순서대로 각각 Bk2, Bk3 및 Bk4의 4×4 크기의 네 개의 제2 서브 블록들로 구성되고, 상기 Bk1 내지 Bk4에 각각 대응하는 모션 벡터를 MV(Bk1) 내지 MV(Bk4)인 경우,
    상기 블록 모드 결정부는 상기 MV(Bk1) 내지 MV(Bk4)가 모두 유사하면 상기 제1 서브 블록 Bk의 블록 모드를 8×8 블록 모드로 결정하는 것을 특징으로 하는 블록 모드 결정 장치.
  53. 제51 항에 있어서,
    상기 블록 모드 결정부는 상기 MV(Bk1)과 MV(Bk2)가 유사하고 상기 MV(Bk3)과 MV(Bk4)가 유사하면, 상기 제1 서브 블록 Bk의 블록 모드를 8×4 블록 모드로 결정하는 것을 특징으로 하는 블록 모드 결정 장치.
  54. 제51 항에 있어서,
    상기 블록 모드 결정부는 상기 MV(Bk1)과 MV(Bk3)가 유사하고 상기 MV(Bk2)과 MV(Bk4)가 유사하면, 상기 제1 서브 블록 Bk의 블록 모드를 4×8 블록 모드로 결정하는 것을 특징으로 하는 블록 모드 결정 장치.
  55. 제51 항에 있어서,
    상기 블록 모드 결정부는 서로 유사한 모션 벡터를 갖는 인접한 한쌍의 제2 서브 블록들이 존재하지 않거나 인접한 한 쌍의 제2 서브 블록들의 모션 벡터는 유사하고 다른 한 쌍의 제2 서브 블록들의 모션 벡터가 유사하지 않으면, 상기 제1 서브 블록 Bk의 블록 모드를 4×4 블록 모드로 결정하는 것을 특징으로 하는 블록 모드 결정 장치.
  56. 제51 항에 있어서,
    상기 블록 모드 결정부는 상기 결정된 블록 모드를 이용하여 상기 제1 서브 블록 Bk의 움직임 추정한 결과에 따라 생성된 데이터량과 상기 제2 서브 블록 모드를 이용하여 움직임 추정한 결과에 따라 생성된 데이터량을 비교하여 데이터량이 적은 경우에 이용된 블록 모드를 상기 제1 서브 블록 Bk의 블록 모드로 결정하는 것을 특징으로 하는 블록 모드 결정 장치.
  57. 제1 항 내지 제11 항에 기재된 방법을 실현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  58. 제20 항 내지 제38 항에 기재된 방법을 실현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR10-2003-0027540A 2003-04-30 2003-04-30 고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정방법, 그 장치, 블록 모드 결정 방법 및 그 장치 KR100510137B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2003-0027540A KR100510137B1 (ko) 2003-04-30 2003-04-30 고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정방법, 그 장치, 블록 모드 결정 방법 및 그 장치
US10/827,405 US20040218675A1 (en) 2003-04-30 2004-04-20 Method and apparatus for determining reference picture and block mode for fast motion estimation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0027540A KR100510137B1 (ko) 2003-04-30 2003-04-30 고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정방법, 그 장치, 블록 모드 결정 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20040093604A KR20040093604A (ko) 2004-11-06
KR100510137B1 true KR100510137B1 (ko) 2005-08-26

Family

ID=33308334

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0027540A KR100510137B1 (ko) 2003-04-30 2003-04-30 고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정방법, 그 장치, 블록 모드 결정 방법 및 그 장치

Country Status (2)

Country Link
US (1) US20040218675A1 (ko)
KR (1) KR100510137B1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330060B1 (en) 2003-04-15 2016-05-03 Nvidia Corporation Method and device for encoding and decoding video image data
US8660182B2 (en) 2003-06-09 2014-02-25 Nvidia Corporation MPEG motion estimation based on dual start points
EP1605706A2 (en) * 2004-06-09 2005-12-14 Broadcom Corporation Advanced video coding (AVC) intra prediction scheme
US20060126739A1 (en) * 2004-12-15 2006-06-15 Stoner Michael D SIMD optimization for H.264 variable block size motion estimation algorithm
JP4501675B2 (ja) * 2004-12-22 2010-07-14 日本電気株式会社 動画像圧縮符号化方法と動画像圧縮符号化装置並びにプログラム
JP5013040B2 (ja) * 2005-09-29 2012-08-29 株式会社メガチップス 動き探索方法
BRPI0616945A2 (pt) * 2005-10-05 2011-07-05 Lg Eletronics Inc método e aparelho para processamento de sinal
US8731071B1 (en) 2005-12-15 2014-05-20 Nvidia Corporation System for performing finite input response (FIR) filtering in motion estimation
US8724702B1 (en) 2006-03-29 2014-05-13 Nvidia Corporation Methods and systems for motion estimation used in video coding
US8660380B2 (en) 2006-08-25 2014-02-25 Nvidia Corporation Method and system for performing two-dimensional transform on data value array with reduced power consumption
KR100845303B1 (ko) * 2006-09-29 2008-07-10 한국전자통신연구원 고속 부호화를 위한 되먹임 구조를 가진 동영상 압축부호화 장치 및 최적 모드 결정 방법
US8923393B2 (en) 2006-11-02 2014-12-30 Qualcomm Incorporated Apparatus and method of reduced reference frame search in video encoding
US8756482B2 (en) 2007-05-25 2014-06-17 Nvidia Corporation Efficient encoding/decoding of a sequence of data frames
US9118927B2 (en) 2007-06-13 2015-08-25 Nvidia Corporation Sub-pixel interpolation and its application in motion compensated encoding of a video signal
US8873625B2 (en) 2007-07-18 2014-10-28 Nvidia Corporation Enhanced compression in representing non-frame-edge blocks of image frames
KR100924487B1 (ko) * 2007-12-17 2009-11-03 한국전자통신연구원 인터 예측에서의 블록 크기 분할 방법 및 장치
KR20090129926A (ko) * 2008-06-13 2009-12-17 삼성전자주식회사 영상 부호화 방법 및 그 장치, 영상 복호화 방법 및 그 장치
US8666181B2 (en) * 2008-12-10 2014-03-04 Nvidia Corporation Adaptive multiple engine image motion detection system and method
US8265155B2 (en) 2009-01-05 2012-09-11 Electronics And Telecommunications Research Institute Method of block partition for H.264 inter prediction
JP5706264B2 (ja) 2011-08-01 2015-04-22 日本電信電話株式会社 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置,画像符号化プログラムおよび画像復号プログラム
KR101842551B1 (ko) * 2012-01-26 2018-03-28 한국전자통신연구원 모션 파티션 모드 판정 방법 및 부호화기
CN117221573A (zh) * 2016-10-04 2023-12-12 英迪股份有限公司 图像解码方法、图像编码方法以及发送比特流的方法
WO2020184461A1 (ja) * 2019-03-08 2020-09-17 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム
CN113742288A (zh) * 2020-05-29 2021-12-03 伊姆西Ip控股有限责任公司 用于数据索引的方法、电子设备和计算机程序产品

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4944023A (en) * 1987-05-19 1990-07-24 Ricoh Company, Ltd. Method of describing image information
US5241395A (en) * 1989-08-07 1993-08-31 Bell Communications Research, Inc. Adaptive transform coding using variable block size
US5021891A (en) * 1990-02-27 1991-06-04 Qualcomm, Inc. Adaptive block size image compression method and system
DE69029999T2 (de) * 1990-07-20 1997-08-14 Philips Electronics Nv Vorrichtung zur Verarbeitung von Bewegungsvektoren
US5228098A (en) * 1991-06-14 1993-07-13 Tektronix, Inc. Adaptive spatio-temporal compression/decompression of video image signals
JPH06113147A (ja) * 1992-09-29 1994-04-22 Canon Inc ノイズ除去装置
KR960015395B1 (ko) * 1993-04-09 1996-11-11 대우전자 주식회사 움직임벡터 검출장치
CN1075321C (zh) * 1993-08-30 2001-11-21 索尼公司 图像编码装置及方法
US5446806A (en) * 1993-11-15 1995-08-29 National Semiconductor Corporation Quadtree-structured Walsh transform video/image coding
DE69524235T2 (de) * 1994-09-02 2002-07-18 Sarnoff Corp Verfahren und vorrichtung zur global-zu-lokal-block-bewegungsschätzung
JPH08205140A (ja) * 1995-01-31 1996-08-09 Canon Inc 画像圧縮装置
US5796434A (en) * 1996-06-07 1998-08-18 Lsi Logic Corporation System and method for performing motion estimation in the DCT domain with improved efficiency
US6529634B1 (en) * 1999-11-08 2003-03-04 Qualcomm, Inc. Contrast sensitive variance based adaptive block size DCT image compression
US6870963B2 (en) * 2001-06-15 2005-03-22 Qualcomm, Inc. Configurable pattern optimizer
US20040081238A1 (en) * 2002-10-25 2004-04-29 Manindra Parhy Asymmetric block shape modes for motion estimation
US7471725B2 (en) * 2003-03-26 2008-12-30 Lsi Corporation Segmented motion estimation with no search for small block sizes

Also Published As

Publication number Publication date
US20040218675A1 (en) 2004-11-04
KR20040093604A (ko) 2004-11-06

Similar Documents

Publication Publication Date Title
KR100510137B1 (ko) 고속 움직임 추정을 위한 참조 픽쳐 및 블록 모드 결정방법, 그 장치, 블록 모드 결정 방법 및 그 장치
RU2608264C2 (ru) Способ и устройство для кодирования/декодирования вектора движения
JP5422168B2 (ja) 動画像符号化方法および動画像復号化方法
EP1465432B1 (en) Moving picture coding apparatus, moving picture decoding apparatus, moving picture coding method, moving picture decoding method, program, and computer-readable recording medium containing the program
JP5650294B2 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム
US7856053B2 (en) Image coding control method and device
KR20080019294A (ko) 동화상 부호화 장치, 동화상 부호화 방법, 동화상 부호화프로그램, 동화상 복호 장치, 동화상 복호 방법 및 동화상복호 프로그램
KR100846512B1 (ko) 영상의 부호화, 복호화 방법 및 장치
KR100970726B1 (ko) 계층적 움직임 추정 방법
JP2006254349A (ja) 動きベクトル検出方法、動きベクトル検出装置およびコンピュータ上で動きベクトル検出処理を実行するコンピュータプログラム
KR100994768B1 (ko) 동영상 부호화를 위한 움직임 추정 방법 및 이를 구현하기위한 프로그램이 기록된 기록 매체
KR20090087767A (ko) 영상의 인트라 예측 부호화 방법
JP4957780B2 (ja) 動き補償予測符号化装置、動き補償予測符号化方法及びプログラム
KR100982514B1 (ko) 영상의 인트라 예측 부호화 방법 및 그 장치
US20020168008A1 (en) Method and apparatus for coding moving pictures
KR20040093605A (ko) 고속 움직임 추정을 위한 블록 모드 결정 방법 및 그 장치
JP4438949B2 (ja) 動き補償予測符号化装置、動き補償予測符号化方法及びプログラム
JP2008283595A (ja) 動画像符号化方法、動画像符号化装置、動画像符号化プログラムおよびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JPH05328334A (ja) 動きベクトル推定装置
WO2010100860A1 (ja) 動画像符号化方法及び動画像復号化方法

Legal Events

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

Payment date: 20080731

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee