KR20060083665A - 움직임 보상 방법 - Google Patents

움직임 보상 방법 Download PDF

Info

Publication number
KR20060083665A
KR20060083665A KR1020050004560A KR20050004560A KR20060083665A KR 20060083665 A KR20060083665 A KR 20060083665A KR 1020050004560 A KR1020050004560 A KR 1020050004560A KR 20050004560 A KR20050004560 A KR 20050004560A KR 20060083665 A KR20060083665 A KR 20060083665A
Authority
KR
South Korea
Prior art keywords
blockpos
block
refposul
refposlr
blocksize
Prior art date
Application number
KR1020050004560A
Other languages
English (en)
Other versions
KR100672376B1 (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 KR1020050004560A priority Critical patent/KR100672376B1/ko
Publication of KR20060083665A publication Critical patent/KR20060083665A/ko
Application granted granted Critical
Publication of KR100672376B1 publication Critical patent/KR100672376B1/ko

Links

Images

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F03MACHINES OR ENGINES FOR LIQUIDS; WIND, SPRING, OR WEIGHT MOTORS; PRODUCING MECHANICAL POWER OR A REACTIVE PROPULSIVE THRUST, NOT OTHERWISE PROVIDED FOR
    • F03BMACHINES OR ENGINES FOR LIQUIDS
    • F03B13/00Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates
    • F03B13/12Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates characterised by using wave or tide energy
    • F03B13/14Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates characterised by using wave or tide energy using wave energy
    • F03B13/16Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates characterised by using wave or tide energy using wave energy using the relative movement between a wave-operated member, i.e. a "wom" and another member, i.e. a reaction member or "rem"
    • F03B13/18Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates characterised by using wave or tide energy using wave energy using the relative movement between a wave-operated member, i.e. a "wom" and another member, i.e. a reaction member or "rem" where the other member, i.e. rem is fixed, at least at one point, with respect to the sea bed or shore
    • F03B13/1845Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates characterised by using wave or tide energy using wave energy using the relative movement between a wave-operated member, i.e. a "wom" and another member, i.e. a reaction member or "rem" where the other member, i.e. rem is fixed, at least at one point, with respect to the sea bed or shore and the wom slides relative to the rem
    • F03B13/1855Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates characterised by using wave or tide energy using wave energy using the relative movement between a wave-operated member, i.e. a "wom" and another member, i.e. a reaction member or "rem" where the other member, i.e. rem is fixed, at least at one point, with respect to the sea bed or shore and the wom slides relative to the rem where the connection between wom and conversion system takes tension and compression
    • F03B13/186Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates characterised by using wave or tide energy using wave energy using the relative movement between a wave-operated member, i.e. a "wom" and another member, i.e. a reaction member or "rem" where the other member, i.e. rem is fixed, at least at one point, with respect to the sea bed or shore and the wom slides relative to the rem where the connection between wom and conversion system takes tension and compression the connection being of the rack-and-pinion type
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B63SHIPS OR OTHER WATERBORNE VESSELS; RELATED EQUIPMENT
    • B63BSHIPS OR OTHER WATERBORNE VESSELS; EQUIPMENT FOR SHIPPING 
    • B63B35/00Vessels or similar floating structures specially adapted for specific purposes and not otherwise provided for
    • B63B35/28Barges or lighters
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F03MACHINES OR ENGINES FOR LIQUIDS; WIND, SPRING, OR WEIGHT MOTORS; PRODUCING MECHANICAL POWER OR A REACTIVE PROPULSIVE THRUST, NOT OTHERWISE PROVIDED FOR
    • F03BMACHINES OR ENGINES FOR LIQUIDS
    • F03B13/00Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates
    • F03B13/12Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates characterised by using wave or tide energy
    • F03B13/14Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates characterised by using wave or tide energy using wave energy
    • F03B13/16Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates characterised by using wave or tide energy using wave energy using the relative movement between a wave-operated member, i.e. a "wom" and another member, i.e. a reaction member or "rem"
    • F03B13/18Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates characterised by using wave or tide energy using wave energy using the relative movement between a wave-operated member, i.e. a "wom" and another member, i.e. a reaction member or "rem" where the other member, i.e. rem is fixed, at least at one point, with respect to the sea bed or shore
    • F03B13/1805Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates characterised by using wave or tide energy using wave energy using the relative movement between a wave-operated member, i.e. a "wom" and another member, i.e. a reaction member or "rem" where the other member, i.e. rem is fixed, at least at one point, with respect to the sea bed or shore and the wom is hinged to the rem
    • F03B13/181Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates characterised by using wave or tide energy using wave energy using the relative movement between a wave-operated member, i.e. a "wom" and another member, i.e. a reaction member or "rem" where the other member, i.e. rem is fixed, at least at one point, with respect to the sea bed or shore and the wom is hinged to the rem for limited rotation
    • F03B13/1815Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates characterised by using wave or tide energy using wave energy using the relative movement between a wave-operated member, i.e. a "wom" and another member, i.e. a reaction member or "rem" where the other member, i.e. rem is fixed, at least at one point, with respect to the sea bed or shore and the wom is hinged to the rem for limited rotation with an up-and-down movement
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F03MACHINES OR ENGINES FOR LIQUIDS; WIND, SPRING, OR WEIGHT MOTORS; PRODUCING MECHANICAL POWER OR A REACTIVE PROPULSIVE THRUST, NOT OTHERWISE PROVIDED FOR
    • F03BMACHINES OR ENGINES FOR LIQUIDS
    • F03B17/00Other machines or engines
    • F03B17/02Other machines or engines using hydrostatic thrust
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F05INDEXING SCHEMES RELATING TO ENGINES OR PUMPS IN VARIOUS SUBCLASSES OF CLASSES F01-F04
    • F05BINDEXING SCHEME RELATING TO WIND, SPRING, WEIGHT, INERTIA OR LIKE MOTORS, TO MACHINES OR ENGINES FOR LIQUIDS COVERED BY SUBCLASSES F03B, F03D AND F03G
    • F05B2220/00Application
    • F05B2220/30Application in turbines
    • F05B2220/32Application in turbines in water turbines
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F05INDEXING SCHEMES RELATING TO ENGINES OR PUMPS IN VARIOUS SUBCLASSES OF CLASSES F01-F04
    • F05BINDEXING SCHEME RELATING TO WIND, SPRING, WEIGHT, INERTIA OR LIKE MOTORS, TO MACHINES OR ENGINES FOR LIQUIDS COVERED BY SUBCLASSES F03B, F03D AND F03G
    • F05B2240/00Components
    • F05B2240/90Mounting on supporting structures or systems
    • F05B2240/93Mounting on supporting structures or systems on a structure floating on a liquid surface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02EREDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
    • Y02E10/00Energy generation through renewable energy sources
    • Y02E10/20Hydro energy
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02EREDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
    • Y02E10/00Energy generation through renewable energy sources
    • Y02E10/30Energy from the sea, e.g. using wave energy or salinity gradient

Landscapes

  • Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Transportation (AREA)
  • Ocean & Marine Engineering (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 하나의 매크로 블록이 움직임 보상을 위해 적어도 한 개 이상의 서브 블록으로 분할된 디지털 영상의 움직임 보상 방법에 관한 것이다. 특히 본 발명은 하나의 매크로 블록 내 각 서브 블록별로 그 서브 블록이 참조하는 픽쳐의 참조 블록의 좌상단 좌표값과 그 참조 블록의 크기를 구하는 단계와, 상기 참조 블록의 좌상단 좌표값과 크기 정보를 이용하여 상기 매크로 블록 내 서브 블록들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역을 구하는 단계와, 상기 단계에서 구한 사각 영역을 한번에 페치하여 하나의 매크로 블록에 대한 움직임 보상을 수행하는 단계를 포함하여 이루어진다. 따라서 본 발명은 움직임 보상시 매크로블록당 움직임 벡터의 수와 상관없이 메모리 접근 횟수를 줄일 수 있다.
움직임 보상, 참조 블록

Description

움직임 보상 방법{Motion compensation method}
도 1의 (a) 내지 (h)는 H.264에서 다양한 크기의 움직임 보상을 위한 매크로 블록의 분할 예를 보인 일반적인 도면
도 2는 H.264에서 움직임 보상을 위해 하나의 매크로 블록을 5개의 서브 블록으로 분할한 예를 보인 도면
도 3은 도 2와 같이 분할된 매크로 블록 내 움직임 벡터들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역을 구한 본 발명의 도면
본 발명은 움직임 보상 방법에 관한 것으로서, 특히 매크로 블록이 다수개의 움직임 벡터를 가질 때 메모리 접근 횟수를 줄이도록 하는 움직임 보상 방법에 관한 것이다.
동영상 혹은 정지영상을 압축 부호화하기 위한 다양한 기술들과 표준안들이 제시되고 있으며, 동영상 혹은 정지영상을 압축 부호화하기 위한 표준안들에서는 보다 효율적이고 높은 성능으로 영상을 압축 부호화하는 것을 궁극의 목적으로 두고 있다.
현재 동영상 혹은 정지영상 등의 영상 부호화에 관련된 표준안으로 MPEG-2, MPEG-4, VC-9 및 H.264 등이 제안되었거나 채택되고 있다.
특히 동영상 정보의 압축에 사용되어지는 최근의 코덱들은 시간축으로 정보량을 압축하기 위해서 움직임 벡터를 이용한 움직임 보상을 하고 있다. 이러한 움직임 보상은 블록 사이즈가 작아질수록 코딩되어 전송되어져야 하는 에러 정보가 작아져서 효율적이 된다.
상기 움직임 보상 과정은 화면을 일정한 크기의 매크로 블록 또는 서브 블록 단위로 나누고, 각 단위 블록마다 움직임 벡터를 구하고 이를 이용하여 움직임 보상을 수행하여 참조 블록을 얻는 것이다. 그리고 현 블록과 움직임 보상에 의해 얻어진 참조 블록 간 차이만을 부호화한 후 움직임 벡터와 함께 전송함으로써, 데이터 량을 크게 줄일 수 있다. 즉 이러한 움직임 보상 방법은 프레임 간에 존재하는 중복성을 제거하여 압축 효율을 높일 수 있다.
도 1의 (a) 내지 (h)는 16x16 크기를 가지는 매크로 블록을 다양한 크기의 움직임 보상을 위해 더 작은 단위의 서브 블록들로 분할하는 예를 보이고 있다. 도 1의 (a)는 16x16 크기의 매크로 블록을 보이고 있다. 도 1의 (b)는 도 1의 (a)의 매크로 블록을 수평 방향으로 분할한 예를 보이고, 도 1의 (c)는 수직 방향으로 분할한 예를 보이며, 도 1의 (d)는 수평과 수직으로 각각 분할한 예이다. 즉 도 1의 (a)의 매크로 블록이 도 1의 (d)와 같이 4개의 서브 블록으로 분할된다.
도 1의 (e)는 도 1의 (d)의 4개의 서브 블록 중 하나를 나타낸다. 도 1의 (f)는 도 1의 (e)의 서브 블록을 수평 방향으로 분할한 예를 보이고, 도 1의 (g)는 수직 방향으로 분할한 예를 보이며, 도 1의 (h)는 수평과 수직으로 각각 분할한 예이다. 즉 도 1의 (a)의 매크로 블록이 도 1의 (h)와 같이 16개의 서브 블록으로 분할된다.
그리고 움직임 보상 단위는 압축 표준에 따라 도 1의 (a) 내지 (h)의 하나가 되며, 각 블록당 하나의 움직임 벡터가 있게 된다.
예를 들어, 도 1의 (d)와 같이 8x8 서브 블록 단위로 움직임 보상을 하려면 4개의 움직임 벡터를 가지게 된다. 그리고 도 1의 (h)와 같이 4x4 서브 블록 단위로 움직임 보상을 하려면 16개의 움직임 벡터를 가지게 된다.
즉 기존 MPEG-1, MPEG-2의 경우 도 1의 (a)와 같이 16x16 크기를 가지는 매크로 블록당 움직임 보상을 수행하므로 1개의 움직임 벡터를 가진다. 그리고 MPEG-4, VC-9의 경우, 도 1의 (a) 내지 (d)와 같이 4개까지의 움직임 벡터를 가진다. 또한 H.264의 경우는 16개까지의 움직임 벡터를 가지게 된다.
이때 움직임 보상을 위해서는 움직임 벡터를 이용하여 메모리 내 참조 픽처(Reference Picture)로부터 영상을 페치(fetch) 해 와야 하는데, 매크로 블록당 움직임 벡터의 수가 많아지는 경우 각 페치되어지는 블록의 사이즈는 작아지지만 페치 횟수는 증가하게 된다.
일반적으로 참조 픽처는 외부 메모리에 위치하게 된다. 그러므로 이러한 경우 메모리 접근때마다 오버헤드(Overhead)를 가지게 되는 문제점이 있게 된다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 매크로 블록이 다수개의 움직임 벡터를 가질 때 메모리 접근 횟수를 줄이도록 하는 움직임 보상 방법을 제공하는데 있다.
상기 목적을 달성하기 위하여, 본 발명에 따른 움직임 보상 방법은,
하나의 매크로 블록이 움직임 보상을 위해 적어도 한 개 이상의 서브 블록으로 분할된 디지털 영상의 움직임 보상 방법에 있어서,
(a) 하나의 매크로 블록 내 각 서브 블록별로 그 서브 블록이 참조하는 픽쳐의 참조 블록의 좌상단 좌표값과 그 참조 블록의 크기를 구하는 단계;
(b) 상기 참조 블록의 좌상단 좌표값과 크기 정보를 이용하여 상기 매크로 블록 내 서브 블록들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역을 구하는 단계; 및
(c) 상기 매크로 블록 내 서브 블록들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역을 한번에 페치하여 하나의 매크로 블록에 대한 움직임 보상을 수행하는 단계를 포함하여 이루어지는 것을 특징으로 한다.
상기 (a) 단계는 상기 각 서브 블록이 참조하는 픽쳐의 참조 블록의 좌상단 좌표 값은 그 서브 블록의 움직임 벡터로 구하는 것을 특징으로 한다.
본 발명의 다른 목적, 특징 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
이하 상기의 목적을 구체적으로 실현할 수 있는 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 설명한다. 이때 도면에 도시되고 또 이것에 의해서 설 명되는 본 발명의 구성과 작용은 적어도 하나의 실시예로서 설명되는 것이며, 이것에 의해서 상기한 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.
본 발명은 하나의 매크로 블록이 가지는 서브 블록들, 즉 움직임 벡터들이 참조하는 픽처의 참조 블록들의 합집합의 사각(square) 영역을 구함으로써, 이 영역을 DMA 등을 이용하여 한번에 페치하도록 하는데 있다.
즉, 전술한 바와 같이 하나의 매크로 블록은 움직임 보상을 위해 적어도 한 개 이상의 서브 블록으로 분할된다. 그리고 그 매크로 블록에는 분할된 서브 블록의 수만큼 움직임 벡터가 존재하게 된다.
이때 하나의 매크로 블록 내 움직임 보상을 위해 분할된 서브 블록들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역은 다음 pseudo code에 의해 구한다.
for (i=0; i<NumBlocks; i++) {
if (i==0) {
RefPosUL.x = BlockPos[i].x;
RefPosUL.y = BlockPos[i].y;
RefPosLR.x = BlockPos[i].x + BlockSize[i].x - 1;
RefPosLR.y = BlockPos[i].y + BlockSize[i].y - 1;
} else {
if (BlockPos[i].x < RefPosUL.x) RefPosUL.x = BlockPos[i].x;
if (BlockPos[i].y < RefPosUL.y) RefPosUL.y = BlockPos[i].y;
if ((BlockPos[i].x + BlockSize[i].x 1) > RefPosLR.x);
RefPosLR.x = BlockPos[i].x + BlockSize[i].x - 1;
if ((BlockPos[i].y + BlockSize[i].y 1) > RefPosLR.y);
RefPosLR.y = BlockPos[i].y + BlockSize[i].y - 1;
}
}
상기 pseudo code에서 각 변수의 뜻은 다음과 같다.
NumBlocks : 매크로블록이 가지는 하위 서브 블록의 수
RefPosUL.x RefPosUL.y : 하나의 매크로 블록 내 움직임 벡터들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역의 좌상단 좌표
RefPosLR.x RefPosLR.y : 하나의 매크로 블록 내 움직임 벡터들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역의 우하단 좌표
BlockPos.x BlockPos.y : 하나의 매크로 블록 내 움직임 벡터들 중 하나의 움직임 벡터가 참조하는 픽쳐의 참조 블록의 좌상단 좌표
H.264 표준에서 움직임 벡터가 소수점 값을 가지는 경우 BlockPos.x BlockPos.y로 (참조 포인터- 2)의 값이 설정되어진다.
BlockSize.x BlockSize.y : 하나의 매크로 블록 내 움직임 벡터들 중 하나의 움직임 벡터가 참조하는 픽쳐에서 읽어들일 참조 블록의 크기
상기 H.264 표준에서 움직임 벡터가 소수점 값을 가지는 경우 BlockSize.x BlockSize.y에 5 픽셀이 더 필요하다.
도 2는 상기 H.264 표준에서 다양한 크기의 움직임 보상을 위한 매크로 블록의 분할 예를 보인 것으로서, 하나의 매크로 블록이 2개의 4x8 서브 블록(0,1), 3개의 8x8 서브 블록(2,3,4)으로 분할된 예이다.
이 경우 하나의 매크로 블록에는 5개의 움직임 벡터가 존재하게 된다.
도 3은 도 2와 같이 분할된 각 서브 블록에서 참조하는 픽쳐의 참조 블록들과 움직임 벡터의 예를 보인 것으로서, 각 참조 블록의 크기와 움직임 벡터를 상기된 pseudo code에 적용하여 하나의 매크로 블록이 가지는 움직임 벡터들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역을 구하여 굵은 실선으로 표시하고 있다. 상기 움직임 벡터 값은 참조 블록의 좌상단 좌표를 나타낸다.
도 2의 경우는 하나의 매크로 블록이 다섯 개의 서브 블록으로 분할되었으므로 상기 pseudo code에서 Numblocks는 5이고, i 값은 0부터 4까지 증가된다.
상기 i 값은 하나의 매크로 블록 내 움직임 보상을 위해 분할된 서브 블록들의 인덱스를 나타낸다.
먼저, 상기 도 2의 매크로 블록에서 i 값이 0인 서브 블록이 참조하는 픽쳐 내 참조 블록의 좌상단 좌표(즉, 움직임 벡터 값)와 블록 크기로 상기 RefPosUL.x, RefPosUL.y, RefPosLR.x, 및 RefPosLR.y 값을 초기화한다.
즉, 하나의 매크로 블록 내 움직임 벡터들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역의 좌상단 x 좌표 값 RefPosUL.x은 i가 0인 서브 블록이 참조하는 픽쳐의 참조 블록의 좌상단 x 좌표값 BlockPos[0].x으로 설정되고, 상기 참조 블록들의 합집합의 사각 영역의 좌상단 y 좌표 값 RefPosUL.y은 i가 0인 서브 블록이 참조하는 픽쳐의 참조 블록의 좌상단 y 좌표값 BlockPos[0].y으로 설정된다.
그리고 하나의 매크로 블록 내 움직임 벡터들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역의 우하단 x 좌표 값 RefPosLR.x은 i가 0인 서브 블록이 참조하는 픽쳐의 참조 블록의 좌상단 x 좌표값 BlockPos[0].x에 그 참조 블록의 수평 크기 BlockSize[0].x-1을 더한 값으로 설정된다. 또한 상기 참조 블록들의 합집합의 사각 영역의 우하단 y 좌표 값 RefPosLR.y은 i가 0인 서브 블록이 참조하는 픽쳐의 참조 블록의 좌상단 y 좌표값 BlockPos[0].y에 그 참조 블록의 수직 크기 BlockSize[0].y-1을 더한 값으로 설정된다.
그리고 i를 1 증가시킨 후 i=1인 서브 블록의 움직임 벡터와 상기 서브 블록이 참조하는 픽쳐의 참조 블록의 크기가 상기 pseudo code 조건을 만족하면 상기 RefPosUL.x, RefPosUL.y, RefPosLR.x, 및 RefPosLR.y 값을 갱신한다.
즉, i가 1인 서브 블록이 참조하는 픽쳐의 참조 블록의 좌상단 x 좌표 값 BlockPos[1].x이 상기 참조 블록들의 합집합의 사각 영역의 좌상단 x 좌표 값RefPosUL.x보다 작으면 상기 RefPosUL.x 값을 BlockPos[1].x 값으로 갱신한다(RefPosUL.x = BlockPos[1].x).
마찬가지로 i가 1인 서브 블록이 참조하는 픽쳐의 참조 블록의 좌상단 y 좌표 값 BlockPos[1].y이 상기 참조 블록들의 합집합의 사각 영역의 좌상단 y 좌표 값 RefPosUL.y보다 작으면 상기 RefPosUL.y 값을 BlockPos[1].y 값으로 갱신한다(RefPosUL.y = BlockPos[1].y).
그리고 i가 1인 서브 블록이 참조하는 픽쳐의 참조 블록의 BlockPos[1].x+ BlockSize[1].x이 상기 참조 블록들의 합집합의 사각 영역의 우하단 x 좌표 값RefPosLR.x보다 크면 상기 RefPosLR.x 값을 BlockPos[1].x+BlockSize[1].x-1 값으로 갱신한다(RefPosLR.x = BlockPos[1].x+BlockSize[1].x-1).
마찬가지로 i가 1인 서브 블록이 참조하는 픽쳐의 참조 블록의 BlockPos[1].y+ BlockSize[1].y이 상기 참조 블록들의 합집합의 사각 영역의 우하단 y 좌표 값 RefPosLR.y보다 크면 상기 RefPosLR.y 값을 BlockPos[1].y+BlockSize[1].y-1 값으로 갱신한다(RefPosLR.y = BlockPos[1].y+BlockSize[1].y-1).
이러한 과정을 하나의 매크로 블록에서 분할된 모든 서브 블록에 대해 순차적으로 수행하면 도 3과 같이 상기 매크로 블록 내 움직임 벡터들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역이 구해진다.
그리고 움직임 보상시 하나의 매크로 블록 내 서브 블록 단위로 참조 블록을 불러오는 것이 아니라 하나의 매크로 블록에 대해서는 분할되는 서브 블록의 수에 관계없이 상기 참조 픽쳐들의 합집합의 사각 영역을 DMA 등을 이용하여 한번에 불러오면 된다.
따라서 본 발명은 H.264/MPEG-4/VC-9/MPEG-2에서의 움직임 보상시 사용되어 질 수 있으며, 매크로 블록당 움직임 벡터의 수와 상관없이 메모리 접근 횟수를 줄일 수 있다.
본 발명에 따른 하나의 매크로블록이 가지는 움직임 벡터들이 참조하는 픽쳐 (Reference Picture)의 참조 블록들의 합집합의 사각 영역을 구하는 알고리즘은 하드웨어(Hardware)로도 구현되어질 수 있다.
그리고 이렇게 구해진 하나의 매크로블록이 참조하는 영역이 읽어들일 수 있는 메모리 버퍼의 사이즈보다 클때는 서브 파티션되어져 읽어들일 수 있다.
한편, 본 발명에서 사용되는 용어(terminology)들은 본 발명에서의 기능을 고려하여 정의 내려진 용어들로써 이는 당분야에 종사하는 기술자의 의도 또는 관례 등에 따라 달라질 수 있으므로 그 정의는 본 발명의 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명을 상술한 실시예에 한정되지 않으며, 첨부된 청구범위에서 알 수 있는 바와 같이 본 발명이 속한 분야의 통상의 지식을 가지 자에 의해 변형이 가능하고 이러한 변형은 본 발명의 범위에 속한다.
상기에서 설명한 본 발명에 따른 움직임 보상 방법에 의하면, 하나의 매크로 블록 내 움직임 벡터들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역을 구하고, 상기 매크로 블록의 움직임 보상시 사각 영역을 한번만 페치함으로써, 매크로블록당 움직임 벡터의 수와 상관없이 메모리 접근 횟수를 줄일 수 있다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.
따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정해져야 한다.

Claims (7)

  1. 하나의 매크로 블록이 움직임 보상을 위해 적어도 한 개 이상의 서브 블록으로 분할된 디지털 영상의 움직임 보상 방법에 있어서,
    (a) 하나의 매크로 블록 내 각 서브 블록별로 그 서브 블록이 참조하는 픽쳐의 참조 블록의 좌상단 좌표값과 그 참조 블록의 크기를 구하는 단계; 및
    (b) 상기 참조 블록의 좌상단 좌표값과 크기 정보를 이용하여 상기 매크로 블록 내 서브 블록들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역을 구하는 단계를 포함하여 이루어지는 것을 특징으로 하는 움직임 보상 방법.
  2. 제 1 항에 있어서, 상기 (a) 단계는
    상기 각 서브 블록이 참조하는 픽쳐의 참조 블록의 좌상단 좌표 값은 그 서브 블록의 움직임 벡터로 구하는 것을 특징으로 하는 움직임 보상 방법.
  3. 제 1 항에 있어서, 상기 (b) 단계는
    상기 매크로 블록 내 서브 블록들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역을 한번에 페치하여 하나의 매크로 블록에 대한 움직임 보상을 수행하는 단계를 더 포함하여 이루어지는 것을 특징으로 하는 움직임 보상 방법.
  4. 제 1 항에 있어서, 상기 (b) 단계는
    상기 매크로블록의 움직임 보상시 상기 사각 영역이 이를 저장하는 메모리 버퍼의 사이즈보다 클때는 상기 사각 영역을 분할하여 페치하는 것을 특징으로 하는 움직임 보상 방법.
  5. 제 1 항에 있어서, 상기 (b) 단계는
    하기의 알고리즘을 적용하여 하나의 매크로 블록 내 움직임 벡터들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역을 구하는 것을 특징으로 하는 움직임 보상 방법.
    for (i=0; i<NumBlocks; i++) {
    if (i==0) {
    RefPosUL.x = BlockPos[i].x;
    RefPosUL.y = BlockPos[i].y;
    RefPosLR.x = BlockPos[i].x + BlockSize[i].x - 1;
    RefPosLR.y = BlockPos[i].y + BlockSize[i].y - 1;
    } else {
    if (BlockPos[i].x < RefPosUL.x) RefPosUL.x = BlockPos[i].x;
    if (BlockPos[i].y < RefPosUL.y) RefPosUL.y = BlockPos[i].y;
    if ((BlockPos[i].x + BlockSize[i].x 1) > RefPosLR.x);
    RefPosLR.x = BlockPos[i].x + BlockSize[i].x - 1;
    if ((BlockPos[i].y + BlockSize[i].y 1) > RefPosLR.y);
    RefPosLR.y = BlockPos[i].y + BlockSize[i].y - 1;
    }
    }
    NumBlocks : 매크로블록이 가지는 하위 서브 블록의 수
    RefPosUL.x RefPosUL.y : 하나의 매크로 블록 내 움직임 벡터들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역의 좌상단 좌표
    RefPosLR.x RefPosLR.y : 하나의 매크로 블록 내 움직임 벡터들이 참조하는픽쳐의 참조 블록들의 합집합의 사각 영역의 우하단 좌표
    BlockPos.x BlockPos.y : 하나의 매크로 블록 내 움직임 벡터들 중 하나의 움직임 벡터가 참조하는 픽쳐의 참조 블록의 좌상단 좌표
    BlockSize.x BlockSize.y : 하나의 매크로 블록 내 움직임 벡터들 중 하나의 움직임 벡터가 참조하는 픽쳐에서 읽어들일 참조 블록의 크기
  6. 하나의 매크로 블록이 움직임 보상을 위해 적어도 한 개 이상의 서브 블록으로 분할된 디지털 영상의 움직임 보상 방법에 있어서,
    (a) 하나의 매크로 블록 내 각 서브 블록별로 그 서브 블록이 참조하는 픽쳐의 참조 블록의 좌상단 좌표값과 그 참조 블록의 크기를 구하는 단계;
    (b) 상기 참조 블록의 좌상단 좌표값과 크기 정보를 이용하여 상기 매크로 블록 내 서브 블록들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역을 구하는 단계; 및
    (c) 상기 (b) 단계에서 구한 사각 영역을 한번에 페치하여 하나의 매크로 블록에 대한 움직임 보상을 수행하는 단계를 포함하여 이루어지는 것을 특징으로 하는 움직임 보상 방법.
  7. 제 6 항에 있어서, 상기 (b) 단계는
    하기의 알고리즘을 적용하여 하나의 매크로 블록 내 서브 블록들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역을 구하는 것을 특징으로 하는 움직임 보상 방법.
    for (i=0; i<NumBlocks; i++) {
    if (i==0) {
    RefPosUL.x = BlockPos[i].x;
    RefPosUL.y = BlockPos[i].y;
    RefPosLR.x = BlockPos[i].x + BlockSize[i].x - 1;
    RefPosLR.y = BlockPos[i].y + BlockSize[i].y - 1;
    } else {
    if (BlockPos[i].x < RefPosUL.x) RefPosUL.x = BlockPos[i].x;
    if (BlockPos[i].y < RefPosUL.y) RefPosUL.y = BlockPos[i].y;
    if ((BlockPos[i].x + BlockSize[i].x 1) > RefPosLR.x);
    RefPosLR.x = BlockPos[i].x + BlockSize[i].x - 1;
    if ((BlockPos[i].y + BlockSize[i].y 1) > RefPosLR.y);
    RefPosLR.y = BlockPos[i].y + BlockSize[i].y - 1;
    }
    }
    NumBlocks : 매크로블록이 가지는 하위 서브 블록의 수
    RefPosUL.x RefPosUL.y : 하나의 매크로 블록 내 서브 블록들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역의 좌상단 좌표
    RefPosLR.x RefPosLR.y : 하나의 매크로 블록 내 서브 블록들이 참조하는 픽쳐의 참조 블록들의 합집합의 사각 영역의 우하단 좌표
    BlockPos.x BlockPos.y : 하나의 매크로 블록 내 서브 블록 중 하나의 서브 블록이 참조하는 픽쳐의 참조 블록의 좌상단 좌표
    BlockSize.x BlockSize.y : 하나의 매크로 블록 내 서브 블록들 중 하나의 서브 블록이 참조하는 픽쳐에서 읽어들일 참조 블록의 크기
KR1020050004560A 2005-01-18 2005-01-18 움직임 보상 방법 KR100672376B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050004560A KR100672376B1 (ko) 2005-01-18 2005-01-18 움직임 보상 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050004560A KR100672376B1 (ko) 2005-01-18 2005-01-18 움직임 보상 방법

Publications (2)

Publication Number Publication Date
KR20060083665A true KR20060083665A (ko) 2006-07-21
KR100672376B1 KR100672376B1 (ko) 2007-01-24

Family

ID=37173972

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050004560A KR100672376B1 (ko) 2005-01-18 2005-01-18 움직임 보상 방법

Country Status (1)

Country Link
KR (1) KR100672376B1 (ko)

Also Published As

Publication number Publication date
KR100672376B1 (ko) 2007-01-24

Similar Documents

Publication Publication Date Title
US11582459B2 (en) Method and system for picture segmentation using columns
KR101227667B1 (ko) 오버랩 평활화 및 인-루프 디블록킹의 구분적 프로세싱
US9877044B2 (en) Video encoder and operation method thereof
US7876829B2 (en) Motion compensation image coding device and coding method
US20060133504A1 (en) Deblocking filters for performing horizontal and vertical filtering of video data simultaneously and methods of operating the same
KR20070111467A (ko) 중간 루프 필터 데이터를 저장하는 스크래치 패드
US20060239349A1 (en) Image coding unit and image coding method
US20090225871A1 (en) Image encoding apparatus
WO2022104498A1 (zh) 帧内预测方法、编码器、解码器以及计算机存储介质
KR100614647B1 (ko) 디블록킹 필터에서의 효과적인 에지 필터링 연산을 위한레지스터 어레이 구조
US20080031335A1 (en) Motion Detection Device
US20160050431A1 (en) Method and system for organizing pixel information in memory
US20070133689A1 (en) Low-cost motion estimation apparatus and method thereof
JP2007013298A (ja) 画像符号化装置
EP1147671A1 (en) Method and apparatus for performing motion compensation in a texture mapping engine
JP2023513772A (ja) ビデオコーディングのための方法、装置およびコンピュータプログラム
WO2022116824A1 (zh) 视频解码方法、视频编码方法、相关设备及存储介质
JP2010226528A (ja) 符号化装置およびその方法
KR100672376B1 (ko) 움직임 보상 방법
US20070153909A1 (en) Apparatus for image encoding and method thereof
JP2006166308A (ja) 復号化装置及び復号化方法
JP5206070B2 (ja) 復号装置および復号方法
KR100708183B1 (ko) 움직임 추정을 위한 영상 데이터 저장 장치 및 그 데이터저장 방법
KR100556341B1 (ko) 메모리 대역폭이 감소된 비디오 디코더 시스템
EP1585340A2 (en) Inverse prediction apparatus and decoding apparatus using the same

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: 20091230

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee