KR20090096143A - 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한부호화 방법 - Google Patents

움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한부호화 방법 Download PDF

Info

Publication number
KR20090096143A
KR20090096143A KR1020080021543A KR20080021543A KR20090096143A KR 20090096143 A KR20090096143 A KR 20090096143A KR 1020080021543 A KR1020080021543 A KR 1020080021543A KR 20080021543 A KR20080021543 A KR 20080021543A KR 20090096143 A KR20090096143 A KR 20090096143A
Authority
KR
South Korea
Prior art keywords
macroblock
motion
motion vector
macroblocks
prediction information
Prior art date
Application number
KR1020080021543A
Other languages
English (en)
Other versions
KR100939917B1 (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 KR1020080021543A priority Critical patent/KR100939917B1/ko
Priority to EP08873182A priority patent/EP2297966A1/en
Priority to PCT/KR2008/006658 priority patent/WO2009110670A1/en
Priority to US12/737,827 priority patent/US10244254B2/en
Publication of KR20090096143A publication Critical patent/KR20090096143A/ko
Application granted granted Critical
Publication of KR100939917B1 publication Critical patent/KR100939917B1/ko
Priority to US14/948,086 priority patent/US10341679B2/en
Priority to US14/948,094 priority patent/US20160080769A1/en
Priority to US14/948,075 priority patent/US10334271B2/en
Priority to US14/948,079 priority patent/US20160080766A1/en
Priority to US14/948,063 priority patent/US20160080762A1/en
Priority to US14/948,098 priority patent/US20160080770A1/en
Priority to US14/948,077 priority patent/US20160080765A1/en
Priority to US14/948,092 priority patent/US20160080768A1/en
Priority to US14/948,071 priority patent/US20160080763A1/en
Priority to US14/948,053 priority patent/US10412409B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/543Motion estimation other than block-based using regions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • 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
    • 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/124Quantisation
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • 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)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

멀티프로세싱유닛을 이용하여 고속 움직임 추정을 가능하도록 하는 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한 부호화 방법이 개시되어 있다. 본 발명의 움직임 예측을 통한 부호화 시스템은, 입력되는 영상의 복수개의 매크로블록에 대한 움직임 예측정보를 계산하는 멀티프로세싱유닛과, 상기 멀티프로세싱유닛에서 기 계산된 상기 복수개의 매크로블록에 대응하는 움직임 예측정보를 이용하여, 상기 영상의 해당 매크로블록 별로 움직임벡터를 추정하는 움직임추정부와, 상기 움직임추정부에서 추정되는 매크로블록 별 상기 움직임벡터에 기초하여 상기 영상을 부호화하는 부호화부를 포함하여, 움직임 추정과는 별도로 고속 병렬 처리가 가능한 멀티프로세싱유닛을 통해 움직임 추정에 이용될 움직임 예측정보를 기 계산함으로써, 영상의 부호화시간을 단축하여 부호화 속도를 향상시킬 수 있다.
Figure P1020080021543
움직임벡터, 움직임예측, H.264

Description

움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한 부호화 방법 {ENCODING SYSTEM USING MOTION ESTIMATION AND ENCODING METHOD USING MOTION ESTIMATION}
본 발명은 움직임 예측을 통한 부호화 시스템에 관한 것으로, 더욱 상세하게는 고속 프로세싱이 가능한 멀티프로세싱유닛을 이용하여 움직임 예측에 필요한 연산을 고속을 처리함으로써, 고속 움직임 추정을 가능하도록 하는 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한 부호화 방법에 관한 것이다.
멀티미디어를 지원해주는 핵심 요소로는 디지털화와 더불어 영상 압축 기술이 있다. 최근 들어 정보의 디지탈화가 급속도로 발전하고 있으며, 이에 따라 영상 압축 기술이 매우 중요하게 부각되고 있다.
MPEG기반 영상(비디오) 부호화기는 움직임 예측을 통해 시간방향으로의 영상 중복 정보를 제거한다. 특히 h.264는 quarter pel기반 움직임 예측, 가변 블록 사용, multiple frame referencing, 가중치를 이용한 예측, Lagrange cost기반의 움직임 예측과 같은 향상된 움직임 예측방법을 사용하여 기존의 MPEG 부호화기보다 높은 압축률을 얻을 수 있었다. 그러나 전술한 바와 같은 향상된 움직임 예측방법 을 사용함으로써, h.264는 기존의 MPEG 영상(비디오) 부호화기에 비해 몇 배 이상의 연산량을 필요로 하게 되었다.
h.264의 움직임 추정 알고리즘을 간단하게 설명하면, h.264의 움직임 추정 알고리즘은 이전에 매크로블럭의 움직임벡터로부터 현재 매크로블록의 예측움직임벡터(MP)를 예측하고, 움직임 예측 시 초기 예측된 움직임벡터와의 차를 부호화 하는데 필요한 데이터량을 수식1과 같은 Lagrange multiplier를 통해 움직임 예측시의 영상오차와 함께 고려한 cost를 이용하여 cost가 최소가 되는 해당 후보움직임벡터(MV)를 최종 움직임벡터로 추정함으로써, 부호화 효율을 높인다.
Figure 112008016938795-PAT00001
수식 1
이러한, 움직임 추정 알고리즘을 지원하는 기존의 하드웨어기반의 움직임 추정 시스템은 매크로블록(Macro block)단위로 부호화를 수행하고, 하나의 매크로블록을 부호화한 후에 래스터스캔 (Raster scan) 방향의 다음 매크로블록을 처리한다.
이처럼, 움직임 추정 알고리즘을 지원하는 기존의 하드웨어기반의 움직임 추정 시스템에서 한 프레임을 부호화하는데에는 기존의 MPEG-1,2,4 영상(비디오) 부호화기에 비해 몇 배의 많은 연산량을 필요로 하기 때문에 상대적으로 긴 부호화시간(t)이 소요되며, 특히 부호화시간(t) 중 움직임 추정 연산에 대부분의 연산량 및 시간이 소비된다.
한편, 최근 하드웨어의 발전에 따라 한꺼번에 많은 수의 연산을 병렬적으로 동시에 수행할 수 있는 시스템이 개발되었다. 특히 Graphic Process Unit(GPU)를 기반으로 하는 그래픽 하드웨어는 3D 영상을 처리하기 위해 많은 수의 프로세싱부를 하나의 시스템에 포함하고 있다.
이에, 본원 발명에서, 많은 수의 연산을 병렬적으로 동시에 수행할 수 있는 복수개의 프로세싱부를 이용하여 h.264부호화기의 연산 속도를 개선하도록 한다.
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은 입력되는 영상의 복수개의 매크로블록에 대한 움직임 예측정보를 계산하는 멀티프로세싱유닛과, 상기 멀티프로세싱유닛에서 기 계산된 상기 복수개의 매크로블록에 대응하는 움직임 예측정보를 이용하여, 상기 영상의 해당 매크로블록 별로 움직임벡터를 추정하는 움직임추정부와, 상기 움직임추정부에서 추정되는 매크로블록 별 상기 움직임벡터에 기초하여 상기 영상을 부호화하는 부호화부를 포함하는 것을 특징으로 하는 움직임 예측을 통한 부호화 시스템을 제공하여, 고속 움직임 추정을 가능하도록 하는 데 있다.
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 다른 목적은 입력되는 영상을 지연시켜 출력하는 프레임버퍼와, 입력되는 영상의 현재 프레임 및 상기 프레임버퍼로부터의 지연된 이전 프레임에 기초하여, 상기 현재 프레임의 복수개의 매크로블록에 대한 움직임 예측정보를 계산하는 멀티프로세싱유닛과, 상기 멀티프로세싱유닛에서 기 계산된 상기 복수개의 매크로블록에 대응하는 움직임 예측정보를 이용하여, 상기 영상의 해당 매크로블록 별로 움직임벡터를 추정하는 움직임추정부와, 상기 움직임추정부에서 추정되는 매크로블록 별 상기 움직임벡터에 기초하여 상기 영상을 부호화하는 부호화부를 포함하는 것을 특징으로 하는 움직임 예측을 통한 부호화 시스템을 제공하는 데 있다.
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고 자 하는 또 다른 목적은 입력되는 영상의 복수개의 매크로블록에 대한 움직임 예측정보를 멀티프로세싱유닛에서 기 계산하는 단계와, 상기 멀티프로세싱유닛에서 기 계산된 상기 복수개의 매크로블록에 대응하는 움직임 예측정보를 이용하여, 상기 영상의 해당 매크로블록 별로 움직임벡터를 추정하는 단계와, 상기 매크로블록 별로 추정된 상기 움직임벡터에 기초하여, 상기 영상을 부호화하는 단계를 포함하는 것을 특징으로 하는 움직임 예측을 통한 부호화 방법을 제공하는 데 있다.
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 또 다른 목적은 입력되는 영상을 지연시켜 출력하는 단계와, 입력되는 영상의 현재 프레임 및 상기 지연된 이전 프레임에 기초하여, 상기 현재 프레임의 복수개의 매크로블록에 대한 움직임 예측정보를 멀티프로세싱유닛에서 기 계산하는 단계와, 상기 멀티프로세싱유닛에서 기 계산된 상기 복수개의 매크로블록에 대응하는 움직임 예측정보를 이용하여, 상기 영상의 해당 매크로블록 별로 움직임벡터를 추정하는 단계와, 상기 매크로블록 별로 추정된 상기 움직임벡터에 기초하여, 상기 영상을 부호화하는 단계를 포함하는 것을 특징으로 하는 움직임 예측을 통한 부호화 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 제 1 관점에 따른 움직임 예측을 통한 부호화 시스템은, 입력되는 영상의 복수개의 매크로블록에 대한 움직임 예측정보를 계산하는 멀티프로세싱유닛; 상기 멀티프로세싱유닛에서 기 계산된 상기 복수개의 매크로블록에 대응하는 움직임 예측정보를 이용하여, 상기 영상의 해당 매크로블록 별로 움직임벡터를 추정하는 움직임추정부; 및 상기 움직임추정부에서 추정되는 매크로블록 별 상기 움직임벡터에 기초하여 상기 영상을 부호화하는 부호화부를 포함한다.
바람직하게는, 상기 움직임추정부는, 상기 멀티프로세싱유닛에서 기 계산된 움직임 예측정보를 이용하여, 상기 영상의 프레임 내의 복수개의 매크로블록을 레스터스캔(Raster scan)방향에 따라, 매크로블록 별로 상기 움직임벡터를 추정할 수 있다.
바람직하게는, 상기 멀티프로세싱유닛은, 상기 움직임추정부 또는 상기 부호화부에서 처리하는 상기 영상의 프레임보다 상기 움직임 예측정보를 적어도 한 프레임 앞서 계산할 수 있다.
바람직하게는, 상기 멀티프로세싱유닛은, 상기 복수개의 매크로블록에 대응하는 상기 움직임 예측정보로서, 상기 각 매크로블록의 움직임벡터에 대하여 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산할 수 있다.
바람직하게는, 상기 움직임추정부는, 상기 멀티프로세싱유닛에서 기 계산된 상기 각 매크로블록에 대응하는 움직임 예측정보를 이용하여 해당 매크로블록 별로 상기 움직임벡터를 추정할 때, 이전 매크로블록으로부터 예측한 예측움직임벡터를 소정의 고정값으로 가정하여 상기 움직임벡터를 추정할 수 있다.
바람직하게는, 상기 멀티프로세싱유닛은, 상기 복수개의 매크로블록에 대응하는 상기 움직임 예측정보로서, 상기 각 매크로블록에 대응하는 움직임벡터에 대 하여 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산하고, 상기 계산된 SAD값 또는 SSD값과 소정의 고정값으로 가정한 이전 매크로블록으로부터의 예측움직임벡터를 이용하여, 아래의 Lagrange cost 기반의 수식에 따라 각 매크로블록의 Cost를 계산할 수 있다.
Figure 112008016938795-PAT00002
수식
여기서, Cost 는 움직임벡터를 부호화하는데 필요한 비트양이고, MV 는 움직임벡터를 추정하기 위한 해당 매크로블록에 대응하는 후보움직임벡터이고, MP 는 해당 매크로블록의 이전 매크로블록으로부터 예측한 예측움직임벡터이다.
바람직하게는, 상기 예측움직임벡터를 가정한 상기 소정의 고정값은, (0,0)일 수 있다.
바람직하게는, 상기 움직임추정부는, 상기 멀티프로세싱유닛에서 기 계산된 각 매크로블록에 대응하는 Cost들을 이용하여, 해당 매크로블록의 Cost들 중 가장 작은 Cost에 해당하는 후보움직임벡터를 해당 매크로블록의 움직임벡터로 추정할 수 있다.
바람직하게는, 상기 움직임추정부에서 추정되는 각 매크로블록의 움직임벡터가 저장되는 움직임벡터저장부를 더 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 제 2 관점에 따른 움직임 예측을 통한 부호화 시스템은, 입력되는 영상을 지연시켜 출력하는 프레임버퍼; 입력되는 영상의 현재 프레임 및 상기 프레임버퍼로부터의 지연된 이전 프레임에 기초하여, 상기 현재 프레임의 복수개의 매크로블록에 대한 움직임 예측정보를 계산하는 멀티프로세싱유닛; 상기 멀티프로세싱유닛에서 기 계산된 상기 복수개의 매크로블록에 대응하는 움직임 예측정보를 이용하여, 상기 영상의 해당 매크로블록 별로 움직임벡터를 추정하는 움직임추정부; 및 상기 움직임추정부에서 추정되는 매크로블록 별 상기 움직임벡터에 기초하여 상기 영상을 부호화하는 부호화부를 포함한다.
바람직하게는, 상기 움직임추정부는, 상기 멀티프로세싱유닛에서 기 계산된 움직임 예측정보를 이용하여, 상기 영상의 프레임 내의 복수개의 매크로블록을 레스터스캔(Raster scan)방향에 따라, 매크로블록 별로 상기 움직임벡터를 추정할 수 있다.
바람직하게는, 상기 멀티프로세싱유닛은, 상기 움직임추정부 또는 상기 부호화부에서 처리하는 상기 영상의 프레임보다 상기 움직임 예측정보 및 상기 해당 매크로블록 별로 움직임벡터를 적어도 한 프레임 앞서 계산/추정할 수 있다.
바람직하게는, 상기 멀티프로세싱유닛은, 상기 복수개의 매크로블록에 대응하는 상기 움직임 예측정보로서, 상기 각 매크로블록의 움직임벡터에 대하여 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산할 수 있다.
바람직하게는, 상기 멀티프로세싱유닛은, 상기 복수개의 매크로블록에 대응하는 상기 움직임 예측정보로서, 상기 각 매크로블록에 대응하는 움직임벡터에 대하여 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산하고, 상기 계산된 SAD값 또는 SSD값과 소정의 고정값으로 가정한 이전 매크로 블록으로부터의 예측움직임벡터를 이용하여, 아래의 Lagrange cost 기반의 수식에 따라 각 매크로블록의 Cost를 계산할 수 있다.
Figure 112008016938795-PAT00003
수식
여기서, Cost 는 움직임벡터를 부호화하는데 필요한 비트양이고, MV 는 움직임벡터를 추정하기 위한 해당 매크로블록에 대응하는 후보움직임벡터이고, MP 는 해당 매크로블록의 이전 매크로블록으로부터 예측한 예측움직임벡터이다.
바람직하게는, 상기 예측움직임벡터를 가정한 상기 소정의 고정값은, (0,0)일 수 있다.
바람직하게는, 상기 움직임추정부는, 상기 멀티프로세싱유닛에서 기 계산된 각 매크로블록에 대응하는 Cost들을 이용하여, 해당 매크로블록의 Cost들 중 가장 작은 Cost에 해당하는 후보움직임벡터를 해당 매크로블록의 움직임벡터로 추정할 수 있다.
상기 목적을 달성하기 위한 본 발명의 제 3 관점에 따른 움직임 예측을 통한 부호화 방법은, 입력되는 영상의 복수개의 매크로블록에 대한 움직임 예측정보를 멀티프로세싱유닛에서 기 계산하는 단계; 상기 멀티프로세싱유닛에서 기 계산된 상기 복수개의 매크로블록에 대응하는 움직임 예측정보를 이용하여, 상기 영상의 해당 매크로블록 별로 움직임벡터를 추정하는 단계; 및 상기 매크로블록 별로 추정된 상기 움직임벡터에 기초하여, 상기 영상을 부호화하는 단계를 포함한다.
바람직하게는, 상기 매크로블록 별로 움직임벡터를 추정하는 단계는, 상기 멀티프로세싱유닛에서 기 계산된 움직임 예측정보를 이용하여, 상기 영상의 프레임 내의 복수개의 매크로블록을 레스터스캔(Raster scan)방향에 따라, 매크로블록 별로 상기 움직임벡터를 추정할 수 있다.
바람직하게는, 상기 움직임 예측정보를 기 계산하는 단계는, 상기 움직임벡터를 추정하는 단계 또는 상기 영상을 부호화하는 단계보다 적어도 한 프레임 앞서 상기 각 매크로블록에 대한 움직임 예측정보를 계산할 수 있다.
바람직하게는, 상기 움직임 예측정보를 기 계산하는 단계는, 상기 복수개의 매크로블록에 대응하는 상기 움직임 예측정보로서, 상기 각 매크로블록의 움직임벡터에 대하여 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산할 수 있다.
바람직하게는, 상기 움직임 예측정보를 기 계산하는 단계는, 상기 각 매크로블록에 대응하는 움직임벡터에 대하여 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산하는 단계와, 상기 복수개의 매크로블록에 대응하는 상기 움직임 예측정보로서, 상기 계산된 SAD값 또는 SSD값과 소정의 고정값으로 가정한 이전 매크로블록으로부터의 예측움직임벡터를 이용하여, 아래의 Lagrange cost 기반의 수식에 따라 각 매크로블록의 Cost를 계산하는 단계를 포함할 수 있다.
Figure 112008016938795-PAT00004
수식
여기서, Cost 는 움직임벡터를 부호화하는데 필요한 비트양이고, MV 는 움직 임벡터를 추정하기 위한 해당 매크로블록에 대응하는 후보움직임벡터이고, MP 는 해당 매크로블록의 이전 매크로블록으로부터 예측한 예측움직임벡터이다.
바람직하게는, 상기 예측움직임벡터를 가정한 상기 소정의 고정값은, (0,0)일 수 있다.
바람직하게는, 상기 매크로블록 별로 움직임벡터를 추정하는 단계는, 상기 기 계산된 각 매크로블록에 대응하는 Cost들을 이용하여, 해당 매크로블록의 Cost들 중 가장 작은 Cost에 해당하는 후보움직임벡터를 해당 매크로블록의 움직임벡터로 추정할 수 있다.
상기 목적을 달성하기 위한 본 발명의 제 4 관점에 따른 움직임 예측을 통한 부호화 방법은, 입력되는 영상을 지연시켜 출력하는 단계; 입력되는 영상의 현재 프레임 및 상기 지연된 이전 프레임에 기초하여, 상기 현재 프레임의 복수개의 매크로블록에 대한 움직임 예측정보를 멀티프로세싱유닛에서 기 계산하는 단계; 상기 멀티프로세싱유닛에서 기 계산된 상기 복수개의 매크로블록에 대응하는 움직임 예측정보를 이용하여, 상기 영상의 해당 매크로블록 별로 움직임벡터를 추정하는 단계; 및 상기 매크로블록 별로 추정된 상기 움직임벡터에 기초하여, 상기 영상을 부호화하는 단계를 포함한다.
바람직하게는, 상기 매크로블록 별로 움직임벡터를 추정하는 단계는, 상기 멀티프로세싱유닛에서 기 계산된 움직임 예측정보를 이용하여, 상기 영상의 프레임 내의 복수개의 매크로블록을 레스터스캔(Raster scan)방향에 따라, 매크로블록 별로 상기 움직임벡터를 추정할 수 있다.
바람직하게는, 상기 움직임 예측정보를 기 계산하는 단계는, 상기 움직임벡터를 추정하는 단계 또는 상기 영상을 부호화하는 단계보다 적어도 한 프레임 앞서 상기 각 매크로블록에 대한 움직임 예측정보를 계산할 수 있다.
바람직하게는, 상기 움직임 예측정보를 기 계산하는 단계는, 상기 복수개의 매크로블록에 대응하는 상기 움직임 예측정보로서, 상기 각 매크로블록의 움직임벡터에 대하여 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산할 수 있다.
바람직하게는, 상기 움직임 예측정보를 기 계산하는 단계는, 상기 각 매크로블록에 대응하는 움직임벡터에 대하여 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산하는 단계와, 상기 복수개의 매크로블록에 대응하는 상기 움직임 예측정보로서, 상기 계산된 SAD값 또는 SSD값과 소정의 고정값으로 가정한 이전 매크로블록으로부터의 예측움직임벡터를 이용하여, 아래의 Lagrange cost 기반의 수식에 따라 각 매크로블록의 Cost를 계산하는 단계를 포함할 수 있다.
Figure 112008016938795-PAT00005
수식
여기서, Cost 는 움직임벡터를 부호화하는데 필요한 비트양이고, MV 는 움직임벡터를 추정하기 위한 해당 매크로블록에 대응하는 후보움직임벡터이고, MP 는 해당 매크로블록의 이전 매크로블록으로부터 예측한 예측움직임벡터이다.
바람직하게는, 상기 예측움직임벡터를 가정한 상기 소정의 고정값은, (0,0) 일 수 있다.
바람직하게는, 상기 매크로블록 별로 움직임벡터를 추정하는 단계는, 상기 기 계산된 각 매크로블록에 대응하는 Cost들을 이용하여, 해당 매크로블록의 Cost들 중 가장 작은 Cost에 해당하는 후보움직임벡터를 해당 매크로블록의 움직임벡터로 추정할 수 있다.
이에, 본 발명의 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한 부호화 방법에 의하면, 움직임 추정과는 별도로 고속 병렬 처리 가능한 멀티프로세싱유닛을 통해 움직임 추정에 이용될 움직임 예측정보를 기 계산하고, 움직임추정부가 움직임 추정 시 이미 계산되어 저장된 각 매크로블록의 움직임 예측정보를 이용할 수 있도록 함으로써, 영상의 한 프레임이 부호화되는데 소요되는 부호화시간을 단축하여 부호화 속도를 향상시킬 수 있다.
또한, 본 발명의 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한 부호화 방법에 의하면, 재구성된 이전 프레임이 아닌 지연된 원 영상에 해당하는 이전 프레임을 이용하여, 움직임 추정과는 별도로 고속 병렬 처리가 가능한 멀티프로세싱유닛을 통해 움직임 추정에 이용될 움직임 예측정보를 기 계산하고, 움직임추정부가 움직임 추정 시 이미 계산되어 저장된 각 매크로블록의 움직임 예측정보를 이용할 수 있도록 함으로써, 영상의 한 프레임이 부호화되는데 소요되는 부호화시간을 단축하여 부호화 속도를 향상시킬 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 설명한다.
도 1은 본 발명의 제1실시예에 따른 부호화 시스템의 제어 블록도이다. 도 1을 참조하여 본 발명의 움직임 예측을 통한 부호화 시스템을 설명하면, 본 도면에 도시된 바와 같이, 본 발명의 움직임 예측을 통한 부호화 시스템은, 입력되는 영상의 복수개의 매크로블록에 대한 움직임 예측정보를 계산하는 멀티프로세싱유닛(10), 멀티프로세싱유닛(10)에서 기 계산된 복수개의 매크로블록에 대응하는 움직임 예측정보를 이용하여, 해당 매크로블록 별로 움직임벡터를 추정하는 움직임추정부(30), 움직임추정부(30)에서 추정되는 매크로블록 별 움직임벡터에 기초하여 영상을 부호화하는 부호화부(50)를 포함한다.
부호화부(50)는, 움직임추정부(30)에서 추정되는 매크로블록 별 움직임벡터에 기초하여 영상을 부호화(Encoding)하는 기능부로써, Intra/Inter prediction과 같은 매크로블럭의 부호화모드를 결정하는 부호화모드결정부(Encoding mode decision), 변환부(Discrete Cosine Transform, DCT)/양자화부, 가변길이코딩부(Variable Length Coding, VLC) 등 움직임추정부(30) 이후 단의 종래 부호화모듈들이 이에 포함된다 할 수 있다.
또한, 본 발명의 움직임 예측을 통한 부호화 시스템은 Inter/Intra 예측정보를 이용한 예측영상생성부(55), 역양자화/역변환부(Inverse Discrete Cosine Transform, IDCT)(70) 및 프레임저장부(90)를 포함한다.
이는, 현재 프레임의 움직임 추정을 위해 이전 프레임을 제공하기 위한 것으 로, Inter/Intra 예측정보를 이용한 예측영상생성부(55), 역양자화/역변환부(70)는, 부호화부(50)에서 부호화하는 과정을 역으로 수행하여 다시 부호화되지 않은 프레임을 재구성(역양자화 및 역변환)하는 기능부로써, 종래의 복호화 기능부에 해당한다 할 수 있다. 그리고, 프레임저장부(90)는 역양자화/역변환부(70)에서 재구성된 이전 프레임(f(n)')을 저장하는 저장부이다.
멀티프로세싱유닛(10)은, 입력되는 영상의 복수개의 매크로블록에 대한 움직임 예측정보를 계산한다. 여기서, 멀티프로세싱유닛(10)이 계산하는 움직임 예측정보는, 입력되는 영상의 현재 프레임의 복수개의 매크로블록에 대응하는 각 매크로블록의 움직임벡터에 대한 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값인 것이 바람직하다. 이하에서는 SAD를 계산하는 것으로 설명하도록 한다.
멀티프로세싱유닛(10)을 좀 더 상세히 설명하면, 입력되는 영상의 현재 프레임 내의 복수개의 매크로블록에 각각 대응하여, 각 매크로블록에 대응하는 SAD값을 계산하는 복수개의 프로세싱부(이하에서는 멀티프로세싱부(15)라 함)와, 멀티프로세싱부(15)에서 계산된 각 매크로블록 별 SAD값을 저장하는 SAD저장부(17)를 포함한다.
여기서, 복수개의 프로세싱부에 해당하는 멀티프로세싱부(15)는, 입력되는 영상의 현재 프레임(f(n+1))과 프레임저장부(90)로부터 제공되는 재구성된 이전 프레임(f(n)')에 기초하여, 현재 프레임(f(n+1))의 모든 매크로블록에 대하여 각 매크로블록에 대응하는 서치(search)영역 내의 모든 움직임벡터들에 대하여 SAD값을 계산한다. 이에, 현재 프레임(f(n+1))의 모든 매크로블록에 대한 SAD값을 멀티프로세싱부(15)의 각 프로세싱부가 각각 계산하여 SAD저장부(17)에 저장할 수 있다.
여기서, 멀티프로세싱유닛(10)은, 3D 영상을 처리하기 위해 복수개의 프로세싱부(멀티프로세싱부(15)에 대응)를 갖는 Graphic Process Unit(GPU)과 같이, 고속 프로세싱이 가능한 병렬 구성의 복수개의 프로세싱부를 포함하는 유닛인 것이 바람직하다. 이에, 멀티프로세싱유닛(10)은 현재 프레임(f(n+1))의 모든 매크로블록에 대한 SAD값을 각 매크로블록 별로 동시에 고속 처리할 수 있다.
이에, 멀티프로세싱유닛(10)은 모든 매크로블록에 대한 SAD값을 각 매크로블록 별로 동시에 고속 계산함에 따라, 움직임추정부(30) 또는 부호화부(50)에서 처리하는 영상의 프레임(예 :이전 프레임(f(n)'))보다 적어도 한 프레임 앞서서 현재 프레임(f(n+1))의 모든 매크로블록에 대한 SAD값을 계산할 수 있는 것이 바람직하다.
움직임추정부(30)는, 멀티프로세싱유닛(10)에서 기 계산된 복수개의 매크로블록에 대응하는 움직임 예측정보 즉, SAD값을 이용하여, 해당 매크로블록 별로 움직임벡터를 추정한다. 이러한 움직임추정부(30)는, 현재 프레임(f(n+1)) 내의 복수개의 매크로블록을 레스터스캔(Raster scan)방향에 따라, 매크로블록 별로 움직임벡터를 추정한다.
즉, 움직임추정부(30)는, 기 계산되어 멀티프로세싱유닛(10)의 SAD저장부(17)에 저장된 현재 프레임(f(n+1))의 모든 매크로블록에 대한 SAD값 중, 해당 매크로블록에 대한 SAD값을 획득하여 해당 매크로블록의 움직임벡터를 추정하고, 레스터스캔(Raster scan)방향에 따라 다음 매크로블록에 대한 SAD값을 획득하여 해당 매크로블록의 움직임벡터를 추정하는 과정을 반복하여 현재 프레임(f(n+1))의 모든 매크로블록에 대한 움직임벡터를 추정한다.
여기서, 움직임추정부(30)가 움직임벡터를 추정하는 것은, 아래의 Lagrange cost 기반의 수식 2에 따라 각 매크로블록의 각 후보움직임벡터에 대응하는 Cost를 계산함으로써, 추정할 수 있다. 즉, 각 매크로블록 별로 최소의 cost값에 해당하는 후보움직임벡터(MV)를 해당 매크로블록의 최종 움직임벡터(MV)로 추정한다.
Figure 112008016938795-PAT00006
수식 2
여기서, Cost 는 움직임벡터를 부호화하는데 필요한 비트양이고, MV 는 움직임벡터를 추정하기 위한 해당 매크로블록에 대응하는 후보움직임벡터이고, MP 는 해당 매크로블록의 이전 매크로블록으로부터 예측한 예측움직임벡터이다.
여기서, 이처럼 움직임추정부(30)가 SAD저장부(17)에 저장된 현재 프레임(f(n+1))의 모든 매크로블록에 대한 SAD값을 이용하여 각 매크로블록 별 움직임벡터를 추정하는 동안, 멀티프로세싱유닛(10)은 다음 프레임((f(n+2))의 모든 매크로블록에 대한 SAD값을 계산하여 SAD저장부(17)에 저장하는 동작을 수행하고 있을 것이다.
이에, 도 1의 실시예에 따른 본 발명의 움직임 예측을 통한 부호화 시스템에서 처리하는 프레임 단위의 처리 흐름을 도 8을 참조하여 설명하도록 한다.
도 8에 도시된 바와 같이, 영상이 입력되면 영상의 첫 번째 프레임0을 부호 화부(50)에서 부호화(ENCODING)하고, 첫 번째 프레임0이 부호화되는 동안 멀티프로세싱유닛(10)은 입력되는 프레임1의 모든 매크로블록에 대한 SAD값을 고속으로 계산한다. 첫 번째 프레임0이 부호화되는 동안 이미 다음 부호화할 현재 프레임1에 대한 모든 매크로블록의 SAD값이 기 계산되어 있기 때문에, 움직임추정부(30)가 매크로블록의 움직임벡터 추정 시에 매크로블록에 대한 SAD값을 연산하는 일이 없이, 움직임추정부(30)는 이미 계산된 현재 프레임1의 모든 매크로블록에 대한 SAD값을 이용하여 각 매크로블록의 움직임벡터를 래스터스캔방향에 따라 순차적으로 추정하고 부호화부(50)에서는 현재 프레임1을 부호화할 수 있다.
이처럼, 본 발명의 움직임 예측을 통한 부호화 시스템은, 움직임 추정과는 별도로 고속 병렬 처리가 가능한 멀티프로세싱유닛(10)을 통해 움직임 추정에 이용될 움직임 예측정보(SAD 또는 SSD)를 기 계산하고, 움직임추정부(30)는 움직임 추정 시 이미 계산되어 저장된 각 매크로블록의 움직임 예측정보(SAD 또는 SSD)를 이용할 수 있도록 함으로써, 즉 현재 프레임을 부호화하는데 가장 많은 연산량과 시간이 소비되는 움직임 추정에서의 모든 매크로블록에 대한 SAD값을 움직임추정부(30)가 아닌 멀티프로세싱유닛(10)에서 미리 고속으로 계산하기 때문에, 영상의 한 프레임이 부호화되는데 소요되는 부호화시간(t')를 종래의 부호화시간(t)보다 현저하게 단축시킬 수 있다. 즉, 본 발명의 움직임 예측을 통한 부호화 시스템은, 고속 움직임 추정을 가능하게 하여 부호화 속도를 향상시킬 수 있다.
이하에서는, 도 2를 참조하여 본 발명의 제2실시예에 따른 움직임 예측을 통한 부호화 시스템을 설명하도록 한다.
도 2에 도시된 바와 같이, 본 발명의 움직임 예측을 통한 부호화 시스템은, 입력되는 영상의 복수개의 매크로블록에 대한 움직임 예측정보를 계산하는 멀티프로세싱유닛(10'), 멀티프로세싱유닛(10')에서 기 계산된 복수개의 매크로블록에 대응하는 움직임 예측정보를 이용하여, 해당 매크로블록 별로 움직임벡터를 추정하는 움직임추정부(30'), 움직임추정부(30')에서 추정되는 매크로블록 별 움직임벡터에 기초하여 영상을 부호화하는 부호화부(50)를 포함한다. 또한, 예측영상생성부(55) 및 역양자화/역변환부(70) 및 프레임저장부(90)를 포함한다.
여기서, 도 2에서의 부호화부(50), 예측영상생성부(55) 및 역양자화/역변환부(70) 및 프레임저장부(90)는 도 1과 동일하게 대응하므로 설명을 생략하도록 한다.
멀티프로세싱유닛(10')은, 입력되는 영상의 복수개의 매크로블록에 대한 움직임 예측정보를 계산한다. 여기서, 멀티프로세싱유닛(10')이 계산하는 움직임 예측정보는, 입력되는 영상의 현재 프레임의 복수개의 매크로블록에 대응하는 각 매크로블록의 움직임벡터에 대한 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산하고, 계산된 SAD값 또는 SSD값(이하에서는 SAD값으로 설명함)과 소정의 고정값으로 가정한 이전 매크로블록으로부터의 예측움직임벡터를 이용하여, 전술한 수식 2에 따라 각 매크로블록의 cost를 계산한 cost값인 것이 바람직하다.
즉, 멀티프로세싱유닛(10')의 복수개의 프로세싱부(이하에서는 멀티프로세싱부(15')라 함)는, 입력되는 영상의 현재 프레임(f(n+1))과 프레임저장부(90)로부터 제공되는 재구성된 이전 프레임(f(n)')에 기초하여, 현재 프레임(f(n+1))의 모든 매크로블록에 대하여 각 매크로블록에 대응하는 서치영역 내의 모든 움직임벡터들에 대하여 SAD값을 계산하고, 모든 매크로블록에 대한 SAD값을 SAD저장부(17')에 저장한다.
그리고, 멀티프로세싱부(15')는 SAD저장부(17')에 저장된 현재 프레임(f(n+1))의 모든 매크로블록에 대응하는 SAD값을 이용하여, 전술한 Lagrange cost 기반의 수식 2에 따라 각 매크로블록의 각 후보움직임벡터에 대응하는 cost를 계산한다. 이때, 수식 2에서 예측움직임벡터(MP)를 소정의 고정값으로 가정하여 계산한다. 이처럼, 예측움직임벡터(MP)를 소정의 고정값으로 가정하여 이전 매크로블록의 움직임벡터를 고려하지 않으면, 이전 매크로블록의 움직임벡터가 추정될 때까지 대기해야 하는 시간도 줄일 수 있고, 또한 고속의 멀티프로세싱부(15')가 각 매크로블록의 각 후보움직임벡터에 대응하는 cost를 고속/병렬로 계산할 수 있으므로 도 8의 경우에서 부호화시간(t')가 더 단축될 수 있다.
여기서, 예측움직임벡터(MP)의 고정값은 (0,0)인 것이 바람직하다. 이는, 실제 움직임벡터 추정 시에 이전 매크로블록으로부터 예측되는 예측움직임벡터는 (0,0)에 근접하는 경우가 대부분임을 감안하여 결정된 최선의 고정값 임을 당업자라면 이해할 수 있을 것이다.
이에, 현재 프레임(f(n+1))의 모든 매크로블록에 대한 각 매크로블록의 후보움직임벡터들에 대응하는 cost값을 멀티프로세싱부(15')의 각 프로세싱부가 각각 계산하여 SAD저장부(17')에 저장할 수 있다.
여기서, 멀티프로세싱유닛(10')은, 3D 영상을 처리하기 위해 복수개의 프로세싱부(멀티프로세싱부(15')에 대응)를 갖는 Graphic Process Unit(GPU)과 같이, 고속 프로세싱이 가능한 병렬 구성의 복수개의 프로세싱부를 포함하는 유닛인 것이 바람직하다. 이에, 멀티프로세싱유닛(10')은 현재 프레임(f(n+1))의 모든 매크로블록에 대한 SAD값 및 cost값을 각 매크로블록 별로 동시에 고속 처리할 수 있다.
이에, 멀티프로세싱유닛(10')은 모든 매크로블록에 대한 SAD값 및 cost값을 각 매크로블록 별로 동시에 고속 계산함에 따라, 움직임추정부(30') 또는 부호화부(50)에서 처리하는 영상의 프레임(예 :이전 프레임(f(n)'))보다 적어도 한 프레임 앞서서 현재 프레임(f(n+1))의 모든 매크로블록에 대한 SAD값 및 cost값을 계산할 수 있는 것이 바람직하다.
움직임추정부(30')는, 멀티프로세싱유닛(10')에서 기 계산된 복수개의 매크로블록에 대응하는 모든 후보움직임벡터에 대한 cost값을 이용하여, 해당 매크로블록의 cost값 중 가장 작은 최소의 Cost에 해당하는 후보움직임벡터(MV)를 해당 매크로블록의 최종 움직임벡터(MV)로 추정하고 각 매크로블록 별 최종 움직임벡터(MV)를 움직임벡터저장부(40)에 저장한다. 즉, 움직임추정부(30')는, 움직임 추정 시에 cost값을 직접 계산하는 일 없이, 기 계산되어 멀티프로세싱유닛(10')의 SAD저장부(17')에 저장된 현재 프레임(f(n+1))의 복수개의 매크로블록에 대응하는 모든 후보움직임벡터에 대한 cost값을 이용하여, 각 매크로블록 별로 최소의 cost값에 해당하는 후보움직임벡터를 해당 매크로블록의 최종 움직임벡터(MV)로 추정하기 때문에, 도 8의 경우에서 부호화시간(t')가 더 단축될 수 있다.
여기서, 움직임벡터저장부(40)는 움직임추정부(30')에서 추정한 각 매크로블록 별 최종 움직임벡터(MV)를 저장한다.
이에, 부호화부(50)는, 도 1에서 설명한 바와 같이 움직임벡터저장부(40)에 기 저장된 매크로블록 별 움직임벡터에 기초하여, 영상을 부호화(Encoding)할 것이다.
여기서, 이처럼 움직임추정부(30')가 SAD저장부(17')에 저장된 현재 프레임(f(n+1))의 모든 매크로블록에 대한 cost값을 이용하여 각 매크로블록 별 움직임벡터를 추정하는 동안, 멀티프로세싱유닛(10')은 다음 프레임((f(n+2))의 모든 매크로블록에 대한 SAD값 및 cost값을 계산하여 SAD저장부(17)에 저장하는 동작을 수행하고 있을 것이다.
이에, 본 발명의 제2실시예에 따른 움직임 예측을 통한 부호화 시스템은, 움직임 추정과는 별도로 고속 병렬 처리가 가능한 멀티프로세싱유닛(10)을 통해 움직임 추정에 이용될 SAD 또는 SSD를 기 계산하는 것은 물론이고, 더 나아가 예측움직임벡터(MP)를 바람직한 고정값으로 대입하여 Lagrange cost 기반의 수식 2에 따라 움직임 예측정보(각 매크로블록의 각 후보움직임벡터에 대응하는 cost값)를 기 계산하고, 움직임추정부(30')는 움직임 추정 시 이미 계산되어 저장된 각 매크로블록의 각 후보움직임벡터에 대응하는 cost값을 이용할 수 있도록 함으로써, 영상의 한 프레임이 부호화되는데 소요되는 부호화시간(t')를 종래의 부호화시간(t)보다 현저하게 단축시킬 수 있음은 물론이고, 부호화시간(t') 자체도 제1실시예에서보다 더 단축시킬 수 있을 것이다. 즉, 본 발명의 움직임 예측을 통한 부호화 시스템은, 고 속 움직임 추정을 가능하게 하여 부호화 속도를 더욱 향상시킬 수 있다.
이하에서는, 도 3을 참조하여 본 발명의 제3실시예에 따른 움직임 예측을 통한 부호화 시스템을 설명하도록 한다.
도 3에 도시된 바와 같이, 본 발명의 움직임 예측을 통한 부호화 시스템은, 입력되는 영상을 지연시켜 출력하는 프레임버퍼(80)와, 입력되는 영상의 현재 프레임 및 프레임버퍼(80)로부터의 지연된 이전 프레임에 기초하여, 현재 프레임의 복수개의 매크로블록에 대한 움직임 예측정보를 계산하는 멀티프로세싱유닛(20)과, 멀티프로세싱유닛(20)에서 기 계산된 복수개의 매크로블록에 대응하는 움직임 예측정보를 이용하여, 영상의 해당 매크로블록 별로 움직임벡터를 추정하는 움직임추정부(60)와, 움직임추정부(60)에서 추정되는 매크로블록 별 움직임벡터에 기초하여 영상을 부호화하는 부호화부(50)를 포함한다.
여기서, 도 3에서의 부호화부(50)는 도 1과 동일하게 대응하므로 설명을 생략하도록 한다.
프레임버퍼(80)는, 입력되는 영상을 프레임단위로 일정 시간 저장한 후 멀티프로세싱유닛(20)으로 출력한다. 여기서, 일정 시간은 멀티프로세싱유닛(20)이 한 프레임에 대한 처리를 수행하는데 소요되는 시간, 바람직하게는 적어도 한 프레임인 것이 바람직하다.
멀티프로세싱유닛(20)은 입력되는 영상의 복수개의 매크로블록에 대한 움직임 예측정보를 계산한다. 여기서, 멀티프로세싱유닛(20)이 계산하는 움직임 예측정보는, 입력되는 영상의 현재 프레임의 복수개의 매크로블록에 대응하는 각 매크로 블록의 움직임벡터에 대한 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값인 것이 바람직하다. 이하에서는 SAD를 계산하는 것으로 설명하도록 한다.
멀티프로세싱유닛(20)을 좀 더 상세히 설명하면, 입력되는 영상의 현재 프레임 내의 복수개의 매크로블록에 각각 대응하여, 각 매크로블록에 대응하는 SAD값을 계산하는 복수개의 프로세싱부(이하에서는 멀티프로세싱부(25)라 함)와, 멀티프로세싱부(25)에서 계산된 각 매크로블록 별 SAD값을 저장하는 SAD저장부(27)를 포함한다.
여기서, 복수개의 프로세싱부에 해당하는 멀티프로세싱부(25)는, 입력되는 영상의 현재 프레임(f(n+1))과 프레임버퍼(80)로부터 제공되는 원 영상에 해당하는 이전 프레임(f(n))에 기초하여, 현재 프레임(f(n+1))의 모든 매크로블록에 대하여 각 매크로블록에 대응하는 서치영역 내의 모든 움직임벡터들에 대하여 SAD값을 계산한다. 이에, 현재 프레임(f(n+1))의 모든 매크로블록에 대한 SAD값을 멀티프로세싱부(25)의 각 프로세싱부가 각각 계산하여 SAD저장부(27)에 저장할 수 있다.
여기서, 멀티프로세싱유닛(20)은, 3D 영상을 처리하기 위해 복수개의 프로세싱부(멀티프로세싱부(25)에 대응)를 갖는 Graphic Process Unit(GPU)과 같이, 고속 프로세싱이 가능한 병렬 구성의 복수개의 프로세싱부를 포함하는 유닛인 것이 바람직하다. 이에, 멀티프로세싱유닛(20)은 현재 프레임(f(n+1))의 모든 매크로블록에 대한 SAD값을 각 매크로블록 별로 동시에 고속 처리할 수 있다.
이에, 멀티프로세싱유닛(20)은 모든 매크로블록에 대한 SAD값을 각 매크로블 록 별로 동시에 고속 계산함에 따라, 움직임추정부(60) 또는 부호화부(50)에서 처리하는 영상의 프레임(예 :이전 프레임(f(n)))보다 적어도 한 프레임 앞서서 현재 프레임(f(n+1))의 모든 매크로블록에 대한 SAD값을 계산할 수 있는 것이 바람직하다.
움직임추정부(60)는, 멀티프로세싱유닛(20)에서 기 계산된 복수개의 매크로블록에 대응하는 움직임 예측정보 즉, SAD값을 이용하여, 해당 매크로블록 별로 움직임벡터를 추정한다. 이러한 움직임추정부(60)는, 현재 프레임(f(n+1)) 내의 복수개의 매크로블록을 레스터스캔(Raster scan)방향에 따라, 매크로블록 별로 해당하는 움직임벡터를 추정한다.
즉, 움직임추정부(60)는, 기 계산되어 멀티프로세싱유닛(20)의 SAD저장부(27)에 저장된 현재 프레임(f(n+1))의 모든 매크로블록에 대한 SAD값 중, 해당 매크로블록에 대한 SAD값을 획득하여 해당 매크로블록의 움직임벡터를 추정하고, 레스터스캔(Raster scan)방향에 따라 다음 매크로블록에 대한 SAD값을 획득하여 해당 매크로블록의 움직임벡터를 추정하는 과정을 반복하여 현재 프레임(f(n+1))의 모든 매크로블록에 대한 움직임벡터를 추정한다.
여기서, 움직임추정부(60)가 움직임벡터를 추정하는 것은, 전술한 Lagrange cost 기반의 수식 2에 따라 각 매크로블록의 각 후보움직임벡터에 대응하는 Cost를 계산함으로써, 추정할 수 있다. 즉, 각 매크로블록 별로 최소의 cost값에 해당하는 후보움직임벡터(MV)를 해당 매크로블록의 최종 움직임벡터(MV)로 추정한다.
여기서, 이처럼 움직임추정부(60)가 SAD저장부(27)에 저장된 현재 프레 임(f(n+1))의 모든 매크로블록에 대한 SAD값을 이용하여 각 매크로블록 별 움직임벡터를 추정하는 동안, 멀티프로세싱유닛(20)은 다음 프레임((f(n+2))의 모든 매크로블록에 대한 SAD값을 계산하여 SAD저장부(27)에 저장하는 동작을 수행하고 있을 것이다.
이에, 도 3의 제3실시예에 따른 본 발명의 움직임 예측을 통한 부호화 시스템에서 처리하는 프레임 단위의 처리 흐름을 도 7을 참조하여 설명하도록 한다.
도 7에 도시된 바와 같이, 영상이 입력되면 영상의 첫 번째 프레임0을 부호화부(50)에서 부호화(ENCODING)하고, 첫 번째 프레임0이 부호화되는 동안 멀티프로세싱유닛(20)은 입력되는 프레임1의 모든 매크로블록에 대한 SAD값을 고속으로 t1시간 동안 계산한다. 이때, 멀티프로세싱유닛(20)은 현재 프레임1을 이전 프레임0가 재구성될 때까지 기다리는 일 없이 지연된 원 영상에 해당하는 이전 프레임0에 기초하여 현재 프레임1의 모든 매크로블록에 대한 SAD값을 계산하기 때문에 이전 프레임0의 움직임 추정에 대하여 독립적으로 수행될 수 있다. 이에, 첫 번째 프레임0이 부호화되는 동안 이미 다음 부호화할 현재 프레임1에 대한 모든 매크로블록의 SAD값이 기 계산되어 있기 때문에, 움직임추정부(60)가 매크로블록의 움직임벡터 추정 시에 매크로블록에 대한 SAD값을 연산하는 일이 없이, 움직임추정부(60)는 이미 계산된 현재 프레임1의 모든 매크로블록에 대한 SAD값을 이용하여 각 매크로블록의 움직임벡터를 추정하고 부호화부(50)에서는 현재 프레임1을 부호화시간(t2)동안 부호화할 수 있다.
이에, 본 발명의 제3실시예에 따른 움직임 예측을 통한 부호화 시스템은, 전 술한 제1실시예에 따른 움직임 예측을 통한 부호화 시스템에서 재구성된 이전 프레임((f(n)')이 아닌 지연된 원 영상의 이전 프레임(f(n))에 기초한 멀티프로세싱유닛(20)을 통해 움직임 추정에 이용될 움직임 예측정보(SAD 또는 SSD)를 기 계산하기 때문에, 이전 프레임((f(n)')이 부호화부(50)에서 부호화된 후 다시 재구성되는 시간을 기다릴 필요 없이 더욱 빠르게 움직임 예측정보(SAD 또는 SSD)를 계산하여 움직임추정부(60)에 제공할 수 있다. 이에, 제3실시예에 따른 움직임 예측을 통한 부호화 시스템은, 영상의 한 프레임이 부호화되는데 소요되는 부호화시간(t2)을 종래의 부호화시간(t)에서 t2로 현저하게 단축시킬 수 다. 즉, 본 발명의 움직임 예측을 통한 부호화 시스템은, 고속 움직임 추정을 가능하게 하여 부호화 속도를 더 향상시킬 수 있다.
이하에서는 도 4를 참조하여 본 발명의 제4실시예에 따른 움직임 예측을 통한 부호화 시스템을 설명하도록 한다.
도 4에 도시된 바와 같이, 본 발명의 움직임 예측을 통한 부호화 시스템은, 입력되는 영상을 지연시켜 출력하는 프레임버퍼(80)와, 현재 프레임 및 프레임버퍼(80)로부터의 지연된 이전 프레임에 기초하여, 현재 프레임의 복수개의 매크로블록에 대한 움직임 예측정보를 계산하는 멀티프로세싱유닛(20'), 멀티프로세싱유닛(20')에서 기 계산된 복수개의 매크로블록에 대응하는 움직임 예측정보를 이용하여, 해당 매크로블록 별로 움직임벡터를 추정하는 움직임추정부(60'), 움직임추정부(60')에서 추정되는 매크로블록 별 움직임벡터에 기초하여 영상을 부호화하는 부호화부(50)를 포함한다.
여기서, 도 4에서의 부호화부(50)는 도 1과 동일하게 대응하고, 프레임버퍼(80)는 도 3과 동일하게 대응하므로 설명을 생략하도록 한다.
멀티프로세싱유닛(20')은, 입력되는 영상의 복수개의 매크로블록에 대한 움직임 예측정보를 계산한다. 여기서, 멀티프로세싱유닛(20')이 계산하는 움직임 예측정보는, 입력되는 영상의 현재 프레임의 복수개의 매크로블록에 대응하는 각 매크로블록의 움직임벡터에 대한 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산하고, 계산된 SAD값 또는 SSD값(이하에서는 SAD값으로 설명함)과 소정의 고정값으로 가정한 이전 매크로블록으로부터의 예측움직임벡터를 이용하여, 전술한 수식 2에 따라 각 매크로블록의 cost를 계산한 cost값인 것이 바람직하다.
즉, 멀티프로세싱유닛(20')의 복수개의 프로세싱부(이하에서는 멀티프로세싱부(25')라 함)는, 입력되는 영상의 현재 프레임(f(n+1))과 프레임버퍼(80)로부터 제공되는 원 영상에 해당하는 이전 프레임(f(n))에 기초하여, 현재 프레임(f(n+1))의 모든 매크로블록에 대하여 각 매크로블록에 대응하는 서치영역 내의 모든 움직임벡터들에 대하여 SAD값을 계산하고, 모든 매크로블록에 대한 SAD값을 SAD저장부(27')에 저장한다.
그리고, 멀티프로세싱부(25')는 SAD저장부(27')에 저장된 현재 프레임(f(n+1))의 모든 매크로블록에 대응하는 SAD값을 이용하여, 전술한 Lagrange cost 기반의 수식 2에 따라 각 매크로블록의 각 후보움직임벡터에 대응하는 cost를 계산한다. 이때, 수식 2에서 예측움직임벡터(MP)를 소정의 고정값으로 가정하여 계 산한다. 이처럼, 예측움직임벡터(MP)를 소정의 고정값으로 가정하여 이전 매크로블록의 움직임벡터를 고려하지 않으면, 이전 매크로블록의 움직임벡터가 추정될 때까지 대기해야하는 시간도 줄일 수 있고, 또한 고속의 멀티프로세싱부(25')가 각 매크로블록의 각 후보움직임벡터에 대응하는 cost를 계산할 수 있다.
여기서, 예측움직임벡터(MP)의 고정값은 (0,0)인 것이 바람직하다. 이는, 실제 움직임벡터 추정 시에 이전 매크로블록으로부터 예측되는 예측움직임벡터는 (0,0)에 근접하는 경우가 대부분임을 감안하여 결정된 최선의 고정값 임을 당업자라면 이해할 수 있을 것이다.
이에, 현재 프레임(f(n+1))의 모든 매크로블록에 대한 각 매크로블록의 후보움직임벡터들에 대응하는 cost값을 멀티프로세싱부(25')의 각 프로세싱부가 각각 계산하여 SAD저장부(27')에 저장할 수 있다.
여기서, 멀티프로세싱유닛(20')은, 3D 영상을 처리하기 위해 복수개의 프로세싱부(멀티프로세싱부(25')에 대응)를 갖는 Graphic Process Unit(GPU)과 같이, 고속 프로세싱이 가능한 병렬 구성의 복수개의 프로세싱부를 포함하는 유닛인 것이 바람직하다. 이에, 멀티프로세싱유닛(20')은 현재 프레임(f(n+1))의 모든 매크로블록에 대한 SAD값 및 cost값을 각 매크로블록 별로 동시에 고속 처리할 수 있다.
이에, 멀티프로세싱유닛(20')은 모든 매크로블록에 대한 SAD값 및 cost값을 각 매크로블록 별로 동시에 고속 계산함에 따라, 움직임추정부(60') 또는 부호화부(50)에서 처리하는 영상의 프레임(예 :이전 프레임(f(n)))보다 적어도 한 프레임 앞서서 현재 프레임(f(n+1))의 모든 매크로블록에 대한 SAD값 및 cost값을 계산할 수 있는 것이 바람직하다.
움직임추정부(60')는, 멀티프로세싱유닛(20')에서 기 계산된 복수개의 매크로블록에 대응하는 모든 후보움직임벡터에 대한 cost값을 이용하여, 해당 매크로블록의 cost값 중 가장 작은 최소의 Cost에 해당하는 후보움직임벡터(MV)를 해당 매크로블록의 최종 움직임벡터로 추정하고 각 매크로블록 별 최종 움직임벡터(MV)로 추정된 움직임벡터(MV)를 움직임벡터저장부(80)에 저장한다. 즉, 움직임추정부(60')는, 움직임 추정 시에 cost값을 직접 계산하는 일 없이, 기 계산되어 멀티프로세싱유닛(20')의 SAD저장부(27')에 저장된 현재 프레임(f(n+1))의 복수개의 매크로블록에 대응하는 모든 후보움직임벡터에 대한 cost값을 이용하여, 각 매크로블록 별로 최소의 cost값에 해당하는 후보움직임벡터를 해당 매크로블록의 최종 움직임벡터(MV)로 추정하기 때문에, 도 7의 경우에서 t2가 더 단축될 수 있다.
여기서, 움직임벡터저장부(80)는 움직임추정부(60')에서 추정한 각 매크로블록 별 최종 움직임벡터(MV)를 저장한다.
이에, 부호화부(50)는, 도 1에서 설명한 바와 같이 움직임벡터저장부(80)에 기 저장된 매크로블록 별 움직임벡터에 기초하여, 영상을 부호화(Encoding)할 것이다.
여기서, 이처럼 움직임추정부(60')가 SAD저장부(27')에 저장된 현재 프레임(f(n+1))의 모든 매크로블록에 대한 cost값을 이용하여 각 매크로블록 별 움직임벡터를 추정하는 동안, 멀티프로세싱유닛(20')은 다음 프레임((f(n+2))의 모든 매크로블록에 대한 SAD값 및 cost값을 계산하여 SAD저장부(27')에 저장하는 동작을 수행하고 있을 것이다.
이에, 본 발명의 제4실시예에 따른 움직임 예측을 통한 부호화 시스템은, 전술한 제2실시예에 따른 움직임 예측을 통한 부호화 시스템에서 재구성된 이전 프레임((f(n)')이 아닌 지연된 원 영상의 이전 프레임(f(n))에 기초한 멀티프로세싱유닛(20')을 통해 움직임 추정에 이용될 SAD 또는 SSD를 기 계산하는 것은 물론이고, 더 나아가 예측움직임벡터(MP)를 바람직한 고정값으로 대입하여 Lagrange cost 기반의 수식 2에 따라 움직임 예측정보(각 매크로블록의 각 후보움직임벡터에 대응하는 cost값)를 기 계산하기 때문에, 이전 프레임((f(n)')이 부호화부(50)에서 부호화된 후 다시 재구성되는 시간을 기다릴 필요 없이 더욱 빠르게 움직임 예측정보(각 매크로블록의 각 후보움직임벡터에 대응하는 cost값)를 계산하여 움직임추정부(60')에 제공할 수 있다. 이에, 제4실시예에 따른 움직임 예측을 통한 부호화 시스템은, 영상의 한 프레임이 부호화되는데 소요되는 부호화시간(t2)을 종래의 부호화시간(t)에서 t2로 현저하게 단축시킬 수 있음은 물론이고, 제3실시예에서보다 부호화시간(t2) 자체도 더 단축시킬 수 다. 즉, 본 발명의 움직임 예측을 통한 부호화 시스템은, 고속 움직임 추정을 가능하게 하여 부호화 속도를 더 향상시킬 수 있다.
이하에서는, 전술한 제1,제2,제3,제4실시예에 대응하는 본 발명의 움직임 예측을 통한 부호화 방법 중 제1실시예의 제어 흐름을 도 5를 참조하여 설명하도록 한다. 여기서, 설명의 편의를 위해 전술한 도 1에 도시된 구성은 해당 참조번호를 언급하여 설명하겠다.
먼저, 멀티프로세싱유닛(10)은, 입력되는 영상의 복수개의 매크로블록에 대한 움직임 예측정보를 계산한다(S10). 여기서, 멀티프로세싱유닛(10)이 계산하는 움직임 예측정보는, 입력되는 영상의 현재 프레임의 복수개의 매크로블록에 대응하는 각 매크로블록의 움직임벡터에 대한 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값인 것이 바람직하다. 이하에서는 SAD를 계산하는 것으로 설명하도록 한다. 즉, S10단계에서는, 멀티프로세싱유닛(10)은, 입력되는 영상의 현재 프레임(f(n+1))과 프레임저장부(90)로부터 제공되는 재구성된 이전 프레임(f(n)')에 기초하여, 현재 프레임(f(n+1))의 모든 매크로블록에 대하여 각 매크로블록에 대응하는 서치영역 내의 모든 움직임벡터들에 대하여 SAD값을 계산한다.
이에, 움직임추정부(30)는, 멀티프로세싱유닛(10)에서 기 계산된 복수개의 매크로블록에 대응하는 움직임 예측정보 즉, SAD값을 이용하여, 레스터스캔(Raster scan)방향에 따라, 매크로블록 별로 움직임벡터를 추정한다(S20~S60).
여기서, 움직임추정부(30)가 움직임벡터를 매크로블록 별로 추정하는 것을 설명하면, 우선 움직임추정부(30)는, 현재 프레임(f(n+1))의 처리할 매크로블록을 레스터스캔방향 첫 번째 블록으로 지정한다(S20). 그리고, 움직임추정부(30)는, 기 계산되어 멀티프로세싱유닛(10)에 저장된 현재 프레임(f(n+1))의 모든 매크로블록에 대한 SAD값 중 해당 매크로블록에 대한 SAD값을 획득하여, 아래의 Lagrange cost 기반의 수식 2에 따라 해당 매크로블록의 각 후보움직임벡터에 대응하는 Cost를 계산한다(S30). 그리고, 움직임추정부(30)는, 해당 매크로블록의 각 후보움직임 벡터에 대응하는 Cost 중 최소의 cost값에 해당하는 후보움직임벡터(MV)를 해당 매크로블록의 최종 움직임벡터(MV)로 추정한다(S40). 그리고, 매크로블록의 최종 움직임벡터(MV)를 부호화부(50)로 제공한다.
Figure 112008016938795-PAT00007
수식 2
그리고, 움직임추정부(30)는 처리한 매크로블록이 현재 프레임(f(n+1))의 마지막 매크로블록에 해당하는지 판단하여(S50), 마지막이 아니라고 판단되면, 움직임추정부(30)는 레스터방향의 다음 매크로블록을 지정하고(S60), 다음 매크로블록에 대하여 S30단계를 수행할 것이다.
여기서, 움직임추정부(30)가 S20~S60단계를 수행하는 동안 멀티프로세싱유닛(10)은 다음 프레임(f(n+2))에 대한 S10단계를 수행하고 있을 것이다. 이때, 멀티프로세싱유닛(10)이 다음 프레임(f(n+2))에 대한 S10단계를 수행하는 것은, 움직임추정부(30)가 S20~S60단계를 수행하는 것보다 적어도 한 프레임 앞서서 수행되는 것이 바람직하다.
한편, S50단계에서, 마지막 매크로블록에 해당하면 현재 프레임(f(n+1))의 움직임 추정이 종료된다. 물론, 다음 프레임(f(n+2)) 역시 전술한 바와 같은 제어 흐름에 따라 움직임 추정이 진행될 것이다.
이에, 본 발명의 제1실시예에 따른 움직임 예측을 통한 부호화 방법은, 고속 병렬 처리가 가능한 멀티프로세싱유닛을 통해 움직임 추정에 이용될 움직임 예측정보(SAD 또는 SSD)를 기 계산하고, 움직임추정부는 움직임 추정 시 이미 계산되어 저장된 각 매크로블록의 움직임 예측정보(SAD 또는 SSD)를 이용할 수 있도록 함으로써, 영상의 한 프레임이 부호화되는데 소요되는 부호화시간(t')을 부호화시간(t)보다 현저하게 단축시킬 수 있다. 즉, 본 발명의 움직임 예측을 통한 부호화 방법은, 고속 움직임 추정을 가능하게 하여 부호화 속도를 향상시킬 수 있다.
또한, 도 5를 참조하여 전술한 제3실시예에 대응하는 본 발명의 움직임 예측을 통한 부호화 방법을 설명할 수도 있다.
여기서, S10단계 전에 입력되는 영상을 프레임단위로 지연시키는 단계(미도시)를 더 포함하고, S10단계에서 멀티프로세싱유닛(20)은 입력되는 영상의 현재 프레임(f(n+1))과 지연된 원 영상에 해당하는 이전 프레임(f(n))에 기초하여, 현재 프레임(f(n+1))의 모든 매크로블록에 대하여 각 매크로블록에 대응하는 서치영역 내의 모든 움직임벡터들에 대하여 SAD값을 계산한다.
이에, 본 발명의 움직임 예측을 통한 부호화 방법은, 이전 프레임((f(n)')이 부호화부에서 부호화된 후 다시 재구성되는 시간을 기다릴 필요 없이 S10단계 즉, 현재 프레임의 복수개의 매크로블록에 대응하는 각 매크로블록의 움직임 예측정보(SAD 또는 SSD)를 계산하는 단계는 더욱 빠르게 수행되어 움직임추정부에 제공할 수 있다. 이에, 제3실시예에 따른 움직임 예측을 통한 부호화 방법은, 도 8에서와 같이 영상의 한 프레임이 부호화되는데 소요되는 부호화시간(t2)을 종래의 부호화시간(t)보다 단축시킬 수 있음은 물론이고, 제1실시예에서 보다 부호화시간(t') 보다도 더 단축시킬 수 있다.
한편, 도 6을 참조하여 전술한 제2실시예에 대응하는 본 발명의 움직임 예측 을 통한 부호화 방법을 설명하도록 한다.
먼저, 멀티프로세싱유닛(10')은, 입력되는 영상의 복수개의 매크로블록에 대한 움직임 예측정보를 계산한다(S110~S120). 여기서, 멀티프로세싱유닛(20)이 계산하는 움직임 예측정보는, 입력되는 영상의 현재 프레임의 복수개의 매크로블록에 대응하는 각 매크로블록의 움직임벡터에 대한 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산하고, 계산된 SAD값 또는 SSD값(이하에서는 SAD값으로 설명함)과 소정의 고정값으로 가정한 이전 매크로블록으로부터의 예측움직임벡터를 이용하여, 전술한 수식 2에 따라 각 매크로블록의 cost를 계산한 cost값인 것이 바람직하다.
즉, 멀티프로세싱유닛(10')은, 입력되는 영상의 현재 프레임(f(n+1))과 프레임저장부(90)로부터 제공되는 재구성된 이전 프레임(f(n)')에 기초하여, 현재 프레임(f(n+1))의 모든 매크로블록에 대하여 각 매크로블록에 대응하는 서치영역 내의 모든 움직임벡터들에 대하여 SAD값 또는 SSD값(이하 SAD값으로 설명하도록 함)을 계산한다(S110). 그리고, 멀티프로세싱유닛(10')은, 모든 매크로블록에 대응하는 기 계산한 SAD값을 이용하여, 전술한 Lagrange cost 기반의 수식 2에 따라 각 매크로블록의 각 후보움직임벡터에 대응하는 cost를 계산한다(S120). 이때, 수식 2에서 예측움직임벡터(MP)를 소정의 고정값으로 가정하여 계산하고, 고정값은 (0,0)인것이 바람직하다. 이처럼, 예측움직임벡터(MP)를 소정의 고정값으로 가정하여 이전 매크로블록의 움직임벡터를 고려하지 않으면, 이전 매크로블록의 움직임벡터가 추정될 때까지 대기해야하는 시간도 줄일 수 있고, 또한 고속의 멀티프로세싱유 닛(10')이 각 매크로블록의 각 후보움직임벡터에 대응하는 cost를 고속/병렬로 계산할 수 있다.
이에, 움직임추정부(30')는, 멀티프로세싱유닛(10)에서 기 계산된 복수개의 매크로블록에 대응하는 움직임 예측정보 즉, cost값을 이용하여, 레스터스캔(Raster scan)방향에 따라, 매크로블록 별로 움직임벡터를 추정한다(S130~S160).
여기서, 움직임추정부(30')가 움직임벡터를 매크로블록 별로 추정하는 것을 설명하면, 우선 움직임추정부(30')는, 현재 프레임(f(n+1))의 처리할 매크로블록을 레스터스캔방향 첫 번째 블록으로 지정한다(S130). 그리고, 움직임추정부(30')는, 기 계산되어 멀티프로세싱유닛(10')에 저장된 현재 프레임(f(n+1))의 모든 매크로블록에 대한 cost값 중 해당 매크로블록에 대한 cost값을 획득하여, 해당 매크로블록의 각 후보움직임벡터에 대응하는 Cost 중 최소의 cost값에 해당하는 후보움직임벡터(MV)를 해당 매크로블록의 최종 움직임벡터(MV)로 추정한다(S140). 그리고, 매크로블록의 최종 움직임벡터(MV)를 부호화부(50)로 제공한다.
그리고, 움직임추정부(30')는 처리한 매크로블록이 현재 프레임(f(n+1))의 마지막 매크로블록에 해당하는지 판단하여(S150), 마지막이 아니라고 판단되면, 움직임추정부(30')는 레스터방향의 다음 매크로블록을 지정하고(S160), 다음 매크로블록에 대하여 S140단계를 수행할 것이다.
여기서, 움직임추정부(30')가 S130~S160단계를 수행하는 동안 멀티프로세싱유닛(10')은 다음 프레임(f(n+2))에 대한 S110, S120단계를 수행하고 있을 것이다. 이때, 멀티프로세싱유닛(10')이 다음 프레임(f(n+2))에 대한 S110, S120단계를 수 행하는 것은, 움직임추정부(30')가 S130~S160단계를 수행하는 것보다 적어도 한 프레임 앞서서 수행되는 것이 바람직하다.
한편, S150단계에서, 마지막 매크로블록에 해당하면 현재 프레임(f(n+1))의 움직임 추정이 종료된다. 물론, 다음 프레임(f(n+2)) 역시 전술한 바와 같은 제어 흐름에 따라 움직임 추정이 진행될 것이다.
이에, 본 발명의 제2실시예에 따른 움직임 예측을 통한 부호화 방법은, 고속 병렬 처리가 가능한 멀티프로세싱유닛을 통해 움직임 추정에 이용될 SAD 또는 SSD를 기 계산하는 것은 물론이고, 더 나아가 예측움직임벡터(MP)를 바람직한 고정값으로 대입하여 Lagrange cost 기반의 수식 2에 따라 움직임 예측정보(각 매크로블록의 각 후보움직임벡터에 대응하는 cost값)를 기 계산하고, 움직임추정부는 움직임 추정 시 이미 계산되어 저장된 각 매크로블록의 각 후보움직임벡터에 대응하는 cost값을 이용할 수 있도록 함으로써, 영상의 한 프레임이 부호화되는데 소요되는 부호화시간(t')을 종래의 부호화시간(t)보다 단축시킬 수 있음은 물론이고, 부호화시간(t') 자체를 제1실시예에서 보다 더 단축시킬 수 있을 것이다.
또한, 도 6를 참조하여 전술한 제4실시예에 대응하는 본 발명의 움직임 예측을 통한 부호화 방법을 설명할 수도 있다.
여기서, S110단계 전에 입력되는 영상을 프레임단위로 지연시키는 단계(미도시)를 더 포함하고, S110단계에서 멀티프로세싱유닛(20')은 입력되는 영상의 현재 프레임(f(n+1))과 지연된 원 영상에 해당하는 이전 프레임(f(n))에 기초하여, 현재 프레임(f(n+1))의 모든 매크로블록에 대하여 각 매크로블록에 대응하는 서치영역 내의 모든 움직임벡터들에 대하여 SAD값을 계산한다. 그리고, S120단계에서 멀티프로세싱유닛(20')은, 모든 매크로블록에 대응하는 기 계산한 SAD값을 이용하여, 전술한 Lagrange cost 기반의 수식 2에 따라 각 매크로블록의 각 후보움직임벡터에 대응하는 cost를 계산한다.
이에, 본 발명의 움직임 예측을 통한 부호화 방법은, 전술한 제2실시예에 따른 움직임 예측을 통한 부호화 방법에서 이전 프레임((f(n)')이 부호화부에서 부호화된 후 다시 재구성되는 시간을 기다릴 필요 없이 S110단계 즉, 현재 프레임의 복수개의 매크로블록에 대응하는 각 매크로블록의 움직임 예측정보(SAD 또는 SSD)를 더욱 빠르게 계산할 수 있다. 이에, 제4실시예에 따른 움직임 예측을 통한 부호화 방법은, 도 8에 도시된 바와 같이 영상의 한 프레임이 부호화되는데 소요되는 부호화시간(t2)을 종래의 부호화시간(t) 보다 현저하게 단축시킬 수 있음은 물론이고, 제3실시예에서 보다 부호화시간(t2) 자체를 더 단축시킬 수 있다.
지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.
움직임 추정과는 별도로 고속 병렬 처리 가능한 멀티프로세싱유닛을 통해 움직임 추정에 이용될 움직임 예측정보를 기 계산하고, 움직임추정부가 움직임 추정 시 이미 계산되어 저장된 각 매크로블록의 움직임 예측정보를 이용할 수 있도록 함으로써, 영상의 한 프레임이 부호화되는데 소요되는 부호화시간을 단축하여 부호화 속도를 향상시킬 수 있는 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한 부호화 방법을 적용할 경우, 움직임 추정의 속도 및 부호화 속도의 개선, 더 나아가 영상제공 방식의 속도 및 처리량 향상에 매우 큰 진보를 가져올 수 있으며, 적용되는 부호화기의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.
도 1은 본 발명의 제1실시예에 따른 움직임 예측을 통한 부호화 시스템의 제어 블록도이다.
도 2는 본 발명의 제2실시예에 따른 움직임 예측을 통한 부호화 시스템의 제어 블록도이다.
도 3은 본 발명의 제3실시예에 따른 움직임 예측을 통한 부호화 시스템의 제어 블록도이다.
도 4는 본 발명의 제4실시예에 따른 움직임 예측을 통한 부호화 시스템의 제어 블록도이다.
도 5는 본 발명의 실시예에 따른 움직임 예측을 통한 부호화 방법의 제어 흐름도이다.
도 6은 본 발명의 다른 실시예에 따른 움직임 예측을 통한 부호화 방법의 제어 흐름도이다.
도 7은 본 발명의 실시예에 따른 움직임 예측을 통한 부호화 시스템 및 방법에 따른 프레임 처리 흐름을 예시하는 예시도이다.
도 8은 본 발명의 다른 실시예에 따른 움직임 예측을 통한 부호화 시스템에서 프레임 처리 흐름을 예시하는 예시도이다.
<도면의 주요 부분에 대한 부호의 설명>
10 : 멀티프로세싱유닛 15 : 멀티프로세싱부
17 : SAD저장부 30 : 움직임추정부
50 : 부호화부 55 : 예측영상생성부
70 : 역양자화/역변환부 90 : 프레임저장부

Claims (25)

  1. 움직임 예측을 통한 부호화 시스템에 있어서,
    입력되는 영상의 복수개의 매크로블록에 대한 움직임 예측정보를 계산하는 멀티프로세싱유닛;
    상기 멀티프로세싱유닛에서 기 계산된 상기 복수개의 매크로블록에 대응하는 움직임 예측정보를 이용하여, 상기 영상의 해당 매크로블록 별로 움직임벡터를 추정하는 움직임추정부; 및
    상기 움직임추정부에서 추정되는 매크로블록 별 상기 움직임벡터에 기초하여 상기 영상을 부호화하는 부호화부를 포함하는 것을 특징으로 하는 움직임 예측을 통한 부호화 시스템.
  2. 제 1 항에 있어서,
    상기 움직임추정부는,
    상기 멀티프로세싱유닛에서 기 계산된 움직임 예측정보를 이용하여, 상기 영상의 프레임 내의 복수개의 매크로블록을 레스터스캔(Raster scan)방향에 따라, 매크로블록 별로 상기 움직임벡터를 추정하는 것을 특징으로 하는 움직임 예측을 통한 부호화 시스템.
  3. 제 1 항에 있어서,
    상기 멀티프로세싱유닛은,
    상기 움직임추정부 또는 상기 부호화부에서 처리하는 상기 영상의 프레임보다 상기 움직임 예측정보를 적어도 한 프레임 앞서 계산하는 것을 특징으로 하는 움직임 예측을 통한 부호화 시스템.
  4. 제 1 항 내지 제 3 항에 있어서,
    상기 멀티프로세싱유닛은,
    상기 복수개의 매크로블록에 대응하는 상기 움직임 예측정보로서, 상기 각 매크로블록의 움직임벡터에 대하여 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산하는 것을 특징으로 하는 움직임 예측을 통한 부호화 시스템.
  5. 제 4 항에 있어서,
    상기 움직임추정부는,
    상기 멀티프로세싱유닛에서 기 계산된 상기 각 매크로블록에 대응하는 움직임 예측정보를 이용하여 해당 매크로블록 별로 상기 움직임벡터를 추정할 때, 이전 매크로블록으로부터 예측한 예측움직임벡터를 소정의 고정값으로 가정하여 상기 움직임벡터를 추정하는 것을 특징으로 하는 움직임 예측을 통한 부호화 시스템.
  6. 제 4 항에 있어서,
    상기 멀티프로세싱유닛은,
    상기 복수개의 매크로블록에 대응하는 상기 움직임 예측정보로서, 상기 각 매크로블록에 대응하는 움직임벡터에 대하여 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산하고, 상기 계산된 SAD값 또는 SSD값과 소정의 고정값으로 가정한 이전 매크로블록으로부터의 예측움직임벡터를 이용하여, 아래의 Lagrange cost 기반의 수식에 따라 각 매크로블록의 Cost를 계산하는 것을 특징으로 하는 움직임 예측을 통한 부호화 시스템.
    Figure 112008016938795-PAT00008
    수식
    여기서, Cost 는 움직임벡터를 부호화하는데 필요한 비트양이고, MV 는 움직임벡터를 추정하기 위한 해당 매크로블록에 대응하는 후보움직임벡터이고, MP 는 해당 매크로블록의 이전 매크로블록으로부터 예측한 예측움직임벡터이다.
  7. 제 6 항에 있어서,
    상기 움직임추정부는,
    상기 멀티프로세싱유닛에서 기 계산된 각 매크로블록에 대응하는 Cost들을 이용하여, 해당 매크로블록의 Cost들 중 가장 작은 Cost에 해당하는 후보움직임벡터를 해당 매크로블록의 움직임벡터로 추정하는 것을 특징으로 하는 움직임 예측을 통한 부호화 시스템.
  8. 움직임 예측을 통한 부호화 시스템에 있어서,
    입력되는 영상을 지연시켜 출력하는 프레임버퍼;
    입력되는 영상의 현재 프레임 및 상기 프레임버퍼로부터의 지연된 이전 프레임에 기초하여, 상기 현재 프레임의 복수개의 매크로블록에 대한 움직임 예측정보를 계산하는 멀티프로세싱유닛;
    상기 멀티프로세싱유닛에서 기 계산된 상기 복수개의 매크로블록에 대응하는 움직임 예측정보를 이용하여, 상기 영상의 해당 매크로블록 별로 움직임벡터를 추정하는 움직임추정부; 및
    상기 움직임추정부에서 추정되는 매크로블록 별 상기 움직임벡터에 기초하여 상기 영상을 부호화하는 부호화부를 포함하는 것을 특징으로 하는 움직임 예측을 통한 부호화 시스템.
  9. 제 8 항에 있어서,
    상기 움직임추정부는,
    상기 멀티프로세싱유닛에서 기 계산된 움직임 예측정보를 이용하여, 상기 영상의 프레임 내의 복수개의 매크로블록을 레스터스캔(Raster scan)방향에 따라, 매크로블록 별로 상기 움직임벡터를 추정하는 것을 특징으로 하는 움직임 예측을 통한 부호화 시스템.
  10. 제 8 항에 있어서,
    상기 멀티프로세싱유닛은,
    상기 움직임추정부 또는 상기 부호화부에서 처리하는 상기 영상의 프레임보다 상기 움직임 예측정보 및 상기 해당 매크로블록 별로 움직임벡터를 적어도 한 프레임 앞서 계산/추정하는 것을 특징으로 하는 움직임 예측을 통한 부호화 시스템.
  11. 제 8 항 내지 제 10 항에 있어서,
    상기 멀티프로세싱유닛은,
    상기 복수개의 매크로블록에 대응하는 상기 움직임 예측정보로서, 상기 각 매크로블록의 움직임벡터에 대하여 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산하는 것을 특징으로 하는 움직임 예측을 통한 부호화 시스템.
  12. 제 11 항에 있어서,
    상기 멀티프로세싱유닛은,
    상기 복수개의 매크로블록에 대응하는 상기 움직임 예측정보로서, 상기 각 매크로블록에 대응하는 움직임벡터에 대하여 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산하고, 상기 계산된 SAD값 또는 SSD값과 소정의 고정값으로 가정한 이전 매크로블록으로부터의 예측움직임벡터를 이용하여, 아래의 Lagrange cost 기반의 수식에 따라 각 매크로블록의 Cost를 계산하는 것을 특징으로 하는 움직임 예측을 통한 부호화 시스템.
    Figure 112008016938795-PAT00009
    수식
    여기서, Cost 는 움직임벡터를 부호화하는데 필요한 비트양이고, MV 는 움직임벡터를 추정하기 위한 해당 매크로블록에 대응하는 후보움직임벡터이고, MP 는 해당 매크로블록의 이전 매크로블록으로부터 예측한 예측움직임벡터이다.
  13. 제 12 항에 있어서,
    상기 움직임추정부는,
    상기 멀티프로세싱유닛에서 기 계산된 각 매크로블록에 대응하는 Cost들을 이용하여, 해당 매크로블록의 Cost들 중 가장 작은 Cost에 해당하는 후보움직임벡터를 해당 매크로블록의 움직임벡터로 추정하는 것을 특징으로 하는 움직임 예측을 통한 부호화 시스템.
  14. 움직임 예측을 통한 부호화 방법에 있어서,
    입력되는 영상의 복수개의 매크로블록에 대한 움직임 예측정보를 멀티프로세싱유닛에서 기 계산하는 단계;
    상기 멀티프로세싱유닛에서 기 계산된 상기 복수개의 매크로블록에 대응하는 움직임 예측정보를 이용하여, 상기 영상의 해당 매크로블록 별로 움직임벡터를 추정하는 단계; 및
    상기 매크로블록 별로 추정된 상기 움직임벡터에 기초하여, 상기 영상을 부호화하는 단계를 포함하는 것을 특징으로 하는 움직임 예측을 통한 부호화 방법.
  15. 제 14 항에 있어서,
    상기 매크로블록 별로 움직임벡터를 추정하는 단계는,
    상기 멀티프로세싱유닛에서 기 계산된 움직임 예측정보를 이용하여, 상기 영상의 프레임 내의 복수개의 매크로블록을 레스터스캔(Raster scan)방향에 따라, 매크로블록 별로 상기 움직임벡터를 추정하는 것을 특징으로 하는 움직임 예측을 통한 부호화 방법.
  16. 제 14 항에 있어서,
    상기 움직임 예측정보를 기 계산하는 단계는,
    상기 움직임벡터를 추정하는 단계 또는 상기 영상을 부호화하는 단계보다 적어도 한 프레임 앞서 상기 각 매크로블록에 대한 움직임 예측정보를 계산하는 것을 특징으로 하는 움직임 예측을 통한 부호화 방법.
  17. 제 14 항 내지 제 16 항에 있어서,
    상기 움직임 예측정보를 기 계산하는 단계는,
    상기 복수개의 매크로블록에 대응하는 상기 움직임 예측정보로서, 상기 각 매크로블록의 움직임벡터에 대하여 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산하는 것을 특징으로 하는 움직임 예측을 통한 부호화 방법.
  18. 제 14 항 내지 제 16 항에 있어서,
    상기 움직임 예측정보를 기 계산하는 단계는,
    상기 각 매크로블록에 대응하는 움직임벡터에 대하여 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산하는 단계와,
    상기 복수개의 매크로블록에 대응하는 상기 움직임 예측정보로서, 상기 계산된 SAD값 또는 SSD값과 소정의 고정값으로 가정한 이전 매크로블록으로부터의 예측움직임벡터를 이용하여, 아래의 Lagrange cost 기반의 수식에 따라 각 매크로블록의 Cost를 계산하는 단계를 포함하는 것을 특징으로 하는 움직임 예측을 통한 부호화 방법.
    Figure 112008016938795-PAT00010
    수식
    여기서, Cost 는 움직임벡터를 부호화하는데 필요한 비트양이고, MV 는 움직임벡터를 추정하기 위한 해당 매크로블록에 대응하는 후보움직임벡터이고, MP 는 해당 매크로블록의 이전 매크로블록으로부터 예측한 예측움직임벡터이다.
  19. 제 18 항에 있어서,
    상기 매크로블록 별로 움직임벡터를 추정하는 단계는,
    상기 기 계산된 각 매크로블록에 대응하는 Cost들을 이용하여, 해당 매크로블록의 Cost들 중 가장 작은 Cost에 해당하는 후보움직임벡터를 해당 매크로블록의 움직임벡터로 추정하는 것을 특징으로 하는 움직임 예측을 통한 부호화 방법.
  20. 움직임 예측을 통한 부호화 방법에 있어서,
    입력되는 영상을 지연시켜 출력하는 단계;
    입력되는 영상의 현재 프레임 및 상기 지연된 이전 프레임에 기초하여, 상기 현재 프레임의 복수개의 매크로블록에 대한 움직임 예측정보를 멀티프로세싱유닛에서 기 계산하는 단계;
    상기 멀티프로세싱유닛에서 기 계산된 상기 복수개의 매크로블록에 대응하는 움직임 예측정보를 이용하여, 상기 영상의 해당 매크로블록 별로 움직임벡터를 추정하는 단계; 및
    상기 매크로블록 별로 추정된 상기 움직임벡터에 기초하여, 상기 영상을 부호화하는 단계를 포함하는 것을 특징으로 하는 움직임 예측을 통한 부호화 방법.
  21. 제 20 항에 있어서,
    상기 매크로블록 별로 움직임벡터를 추정하는 단계는,
    상기 멀티프로세싱유닛에서 기 계산된 움직임 예측정보를 이용하여, 상기 영상의 프레임 내의 복수개의 매크로블록을 레스터스캔(Raster scan)방향에 따라, 매크로블록 별로 상기 움직임벡터를 추정하는 것을 특징으로 하는 움직임 예측을 통 한 부호화 방법.
  22. 제 20 항에 있어서,
    상기 움직임 예측정보를 기 계산하는 단계는,
    상기 움직임벡터를 추정하는 단계 또는 상기 영상을 부호화하는 단계보다 적어도 한 프레임 앞서 상기 각 매크로블록에 대한 움직임 예측정보를 계산하는 것을 특징으로 하는 움직임 예측을 통한 부호화 방법.
  23. 제 20 항 내지 제 22 항에 있어서,
    상기 움직임 예측정보를 기 계산하는 단계는,
    상기 복수개의 매크로블록에 대응하는 상기 움직임 예측정보로서, 상기 각 매크로블록의 움직임벡터에 대하여 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산하는 것을 특징으로 하는 움직임 예측을 통한 부호화 방법.
  24. 제 20 항 내지 제 22 항에 있어서,
    상기 움직임 예측정보를 기 계산하는 단계는,
    상기 각 매크로블록에 대응하는 움직임벡터에 대하여 SAD(Sum of Absolute Difference) 또는 SSD(Sum of Square Difference)값을 계산하는 단계와,
    상기 복수개의 매크로블록에 대응하는 상기 움직임 예측정보로서, 상기 계산 된 SAD값 또는 SSD값과 소정의 고정값으로 가정한 이전 매크로블록으로부터의 예측움직임벡터를 이용하여, 아래의 Lagrange cost 기반의 수식에 따라 각 매크로블록의 Cost를 계산하는 단계를 포함하는 것을 특징으로 하는 움직임 예측을 통한 부호화 방법.
    Figure 112008016938795-PAT00011
    수식
    여기서, Cost 는 움직임벡터를 부호화하는데 필요한 비트양이고, MV 는 움직임벡터를 추정하기 위한 해당 매크로블록에 대응하는 후보움직임벡터이고, MP 는 해당 매크로블록의 이전 매크로블록으로부터 예측한 예측움직임벡터이다.
  25. 제 24 항에 있어서,
    상기 매크로블록 별로 움직임벡터를 추정하는 단계는,
    상기 기 계산된 각 매크로블록에 대응하는 Cost들을 이용하여, 해당 매크로블록의 Cost들 중 가장 작은 Cost에 해당하는 후보움직임벡터를 해당 매크로블록의 움직임벡터로 추정하는 것을 특징으로 하는 움직임 예측을 통한 부호화 방법
KR1020080021543A 2008-03-07 2008-03-07 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한부호화 방법 KR100939917B1 (ko)

Priority Applications (14)

Application Number Priority Date Filing Date Title
KR1020080021543A KR100939917B1 (ko) 2008-03-07 2008-03-07 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한부호화 방법
EP08873182A EP2297966A1 (en) 2008-03-07 2008-11-12 Encoding system using motion estimation and encoding method using motion estimation
PCT/KR2008/006658 WO2009110670A1 (en) 2008-03-07 2008-11-12 Encoding system using motion estimation and encoding method using motion estimation
US12/737,827 US10244254B2 (en) 2008-03-07 2008-11-12 Encoding system using motion estimation and encoding method using motion estimation
US14/948,053 US10412409B2 (en) 2008-03-07 2015-11-20 Encoding system using motion estimation and encoding method using motion estimation
US14/948,071 US20160080763A1 (en) 2008-03-07 2015-11-20 Encoding system using motion estimation and encoding method using motion estimation
US14/948,086 US10341679B2 (en) 2008-03-07 2015-11-20 Encoding system using motion estimation and encoding method using motion estimation
US14/948,094 US20160080769A1 (en) 2008-03-07 2015-11-20 Encoding system using motion estimation and encoding method using motion estimation
US14/948,075 US10334271B2 (en) 2008-03-07 2015-11-20 Encoding system using motion estimation and encoding method using motion estimation
US14/948,079 US20160080766A1 (en) 2008-03-07 2015-11-20 Encoding system using motion estimation and encoding method using motion estimation
US14/948,063 US20160080762A1 (en) 2008-03-07 2015-11-20 Encoding system using motion estimation and encoding method using motion estimation
US14/948,098 US20160080770A1 (en) 2008-03-07 2015-11-20 Encoding system using motion estimation and encoding method using motion estimation
US14/948,077 US20160080765A1 (en) 2008-03-07 2015-11-20 Encoding system using motion estimation and encoding method using motion estimation
US14/948,092 US20160080768A1 (en) 2008-03-07 2015-11-20 Encoding system using motion estimation and encoding method using motion estimation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080021543A KR100939917B1 (ko) 2008-03-07 2008-03-07 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한부호화 방법

Publications (2)

Publication Number Publication Date
KR20090096143A true KR20090096143A (ko) 2009-09-10
KR100939917B1 KR100939917B1 (ko) 2010-02-03

Family

ID=41056210

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080021543A KR100939917B1 (ko) 2008-03-07 2008-03-07 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한부호화 방법

Country Status (4)

Country Link
US (11) US10244254B2 (ko)
EP (1) EP2297966A1 (ko)
KR (1) KR100939917B1 (ko)
WO (1) WO2009110670A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8692831B2 (en) 2010-02-01 2014-04-08 Samsung Electronics Co., Ltd. Parallel operation processing apparatus and method
KR20150051204A (ko) * 2015-04-21 2015-05-11 삼성전자주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치
US9319704B2 (en) 2009-10-23 2016-04-19 Samsung Electronics Co., Ltd. Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100166073A1 (en) * 2008-12-31 2010-07-01 Advanced Micro Devices, Inc. Multiple-Candidate Motion Estimation With Advanced Spatial Filtering of Differential Motion Vectors
EP2394437B1 (en) * 2009-02-06 2015-04-08 Thomson Licensing Methods and apparatus for implicit and semi-implicit intra mode signaling for video encoders and decoders
US11317101B2 (en) * 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
WO2015061964A1 (en) * 2013-10-29 2015-05-07 Hua Zhong University Of Science Technology Simulataneous metadata extraction of moving objects
JP6272194B2 (ja) * 2014-09-24 2018-01-31 株式会社日立情報通信エンジニアリング 動画像符号化装置、動画像復号装置、および動画像符号化・復号化方法
US10469841B2 (en) * 2016-01-29 2019-11-05 Google Llc Motion vector prediction using prior frame residual
US10306258B2 (en) 2016-01-29 2019-05-28 Google Llc Last frame motion vector partitioning
KR102572286B1 (ko) * 2016-12-05 2023-08-29 엘지전자 주식회사 영상 코딩 시스템에서 영상 디코딩 방법 및 장치
US10958932B2 (en) * 2018-09-12 2021-03-23 Qualcomm Incorporated Inter-prediction coding of video data using generated motion vector predictor list including non-adjacent blocks
WO2020168509A1 (zh) * 2019-02-21 2020-08-27 富士通株式会社 视频编码方法、视频解码方法、装置以及电子设备

Family Cites Families (192)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE39279E1 (en) * 1991-11-08 2006-09-12 Matsushita Electric Industrial Co., Ltd. Method for determining motion compensation
JPH06197334A (ja) 1992-07-03 1994-07-15 Sony Corp 画像信号符号化方法、画像信号復号化方法、画像信号符号化装置、画像信号復号化装置及び画像信号記録媒体
JPH06141301A (ja) 1992-10-27 1994-05-20 Victor Co Of Japan Ltd 画像情報圧縮装置、伸長装置及び圧縮伸長装置
KR0160618B1 (ko) * 1992-10-27 1999-01-15 윤종용 실시간 움직임 추정장치 및 그 방법
US5448310A (en) 1993-04-27 1995-09-05 Array Microsystems, Inc. Motion estimation coprocessor
US5659364A (en) * 1993-12-24 1997-08-19 Matsushita Electric Industrial Co., Ltd. Motion vector detection circuit
JPH07250328A (ja) 1994-01-21 1995-09-26 Mitsubishi Electric Corp 動きベクトル検出装置
US5963673A (en) 1995-12-20 1999-10-05 Sanyo Electric Co., Ltd. Method and apparatus for adaptively selecting a coding mode for video encoding
KR100197793B1 (ko) 1995-12-23 1999-06-15 정선종 선형 단축 배열 구조를 이용한 블록정합 움직임 추정장치
JPH09182083A (ja) 1995-12-27 1997-07-11 Matsushita Electric Ind Co Ltd ビデオ画像符号化方法及び復号化方法とその装置
US6571016B1 (en) 1997-05-05 2003-05-27 Microsoft Corporation Intra compression of pixel blocks using predicted mean
JP3628810B2 (ja) 1996-06-28 2005-03-16 三菱電機株式会社 画像符号化装置
JPH1079947A (ja) 1996-09-03 1998-03-24 Mitsubishi Electric Corp 動きベクトル検出装置
TW358296B (en) 1996-11-12 1999-05-11 Matsushita Electric Ind Co Ltd Digital picture encoding method and digital picture encoding apparatus, digital picture decoding method and digital picture decoding apparatus, and data storage medium
US5739862A (en) 1996-12-23 1998-04-14 Tektronix, Inc. Reverse playback of MPEG video
US6584226B1 (en) * 1997-03-14 2003-06-24 Microsoft Corporation Method and apparatus for implementing motion estimation in video compression
US6639945B2 (en) * 1997-03-14 2003-10-28 Microsoft Corporation Method and apparatus for implementing motion detection in video compression
US6404813B1 (en) * 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
DE69838630T2 (de) 1997-07-31 2008-08-28 Victor Company of Japan, Ltd., Yokohama Prädiktive Digitalvideosignalkodierung- und Dekodierungsmethode unter Verwendung von Blockinterpolation
US6594311B1 (en) * 1997-10-20 2003-07-15 Hitachi America, Ltd. Methods for reduced cost insertion of video subwindows into compressed video
US6600785B1 (en) 1997-12-01 2003-07-29 Matsushita Electric Industrial Image processor, image data processor and variable length encoder/decoder
JP3132456B2 (ja) 1998-03-05 2001-02-05 日本電気株式会社 階層的画像符号化方式、及び階層的画像復号方式
US6801665B1 (en) 1998-09-15 2004-10-05 University Of Maryland Method and apparatus for compressing and decompressing images
US6823013B1 (en) * 1998-03-23 2004-11-23 International Business Machines Corporation Multiple encoder architecture for extended search
US7046734B2 (en) 1998-04-02 2006-05-16 Intel Corporation Method and apparatus for performing real-time data encoding
US6904174B1 (en) 1998-12-11 2005-06-07 Intel Corporation Simplified predictive video encoder
US6408029B1 (en) 1998-04-02 2002-06-18 Intel Corporation Method and apparatus for simplifying real-time data encoding
JP4427827B2 (ja) 1998-07-15 2010-03-10 ソニー株式会社 データ処理方法、データ処理装置及び記録媒体
US6489995B1 (en) 1998-10-22 2002-12-03 Sony Corporation Method and apparatus for motion vector concealment
US6567554B1 (en) 1999-03-12 2003-05-20 Victor Company Of Japan, Limited Data coding method and apparatus therefor
US6831929B1 (en) 1999-03-22 2004-12-14 Texas Instruments Incorporated Multistage PN code aquisition circuit and method
US6519005B2 (en) 1999-04-30 2003-02-11 Koninklijke Philips Electronics N.V. Method of concurrent multiple-mode motion estimation for digital video
EP1092322A1 (en) 1999-04-30 2001-04-18 Koninklijke Philips Electronics N.V. Low bit rate video coding method and system
EP1228645B1 (en) 1999-08-11 2003-05-28 Nokia Corporation Adaptive motion vector field coding
EP1169866A1 (en) 2000-02-01 2002-01-09 Koninklijke Philips Electronics N.V. Video encoding with a two step motion estimation for p-frames
US7292772B2 (en) 2000-05-29 2007-11-06 Sony Corporation Method and apparatus for decoding and recording medium for a coded video stream
US6842483B1 (en) * 2000-09-11 2005-01-11 The Hong Kong University Of Science And Technology Device, method and digital video encoder for block-matching motion estimation
KR100525785B1 (ko) 2001-06-15 2005-11-03 엘지전자 주식회사 이미지 화소 필터링 방법
JP2003125406A (ja) 2001-09-25 2003-04-25 Hewlett Packard Co <Hp> 有向性非周期グラフに基づくビデオ符号化のモード選択最適化方法およびシステム
US6868123B2 (en) 2001-12-07 2005-03-15 Motorola, Inc. Programmable motion estimation module with vector array unit
US20030118104A1 (en) * 2001-12-21 2003-06-26 Intel Corporation System, method, and software for estimation of motion vectors
JP2003199111A (ja) 2001-12-27 2003-07-11 Matsushita Electric Ind Co Ltd 予測装置、符号化装置、逆予測装置、復号装置、及び、演算装置
JP4015934B2 (ja) 2002-04-18 2007-11-28 株式会社東芝 動画像符号化方法及び装置
KR100962759B1 (ko) * 2002-01-24 2010-06-09 가부시키가이샤 히타치세이사쿠쇼 동화상 신호의 부호화 방법 및 복호화 방법
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
EP1489848A4 (en) * 2002-03-14 2006-05-03 Matsushita Electric Ind Co Ltd MOTION VECTOR DETECTION METHOD
KR100491530B1 (ko) 2002-05-03 2005-05-27 엘지전자 주식회사 모션 벡터 결정 방법
US20040001546A1 (en) * 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US7224731B2 (en) * 2002-06-28 2007-05-29 Microsoft Corporation Motion estimation/compensation for screen capture video
US20040234143A1 (en) * 2002-07-02 2004-11-25 Makoto Hagai Image encoding method and picture decoding method
US8406301B2 (en) 2002-07-15 2013-03-26 Thomson Licensing Adaptive weighting of reference pictures in video encoding
US6909749B2 (en) 2002-07-15 2005-06-21 Pts Corporation Hierarchical segment-based motion vector encoding and decoding
CN101039428B (zh) 2002-07-15 2013-04-10 日立民用电子株式会社 动态图像编码方法及解码方法
EP1383334B1 (en) 2002-07-17 2012-02-01 Panasonic Corporation Video data transmitting apparatus, video data receiving apparatus, and broadcasting system
US7154952B2 (en) * 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
US7023921B2 (en) 2002-08-06 2006-04-04 Motorola, Inc. Method and apparatus for determining block match quality
JP4198550B2 (ja) 2002-09-10 2008-12-17 株式会社東芝 フレーム補間方法およびこのフレーム補間方法を用いた装置
US7706583B2 (en) 2002-11-11 2010-04-27 Canon Kabushiki Kaisha Image processing apparatus and method
ES2788382T3 (es) * 2002-11-25 2020-10-21 Godo Kaisha Ip Bridge 1 Método para codificar y descodificar imágenes B en modo directo
US8054880B2 (en) * 2004-12-10 2011-11-08 Tut Systems, Inc. Parallel rate control for digital video encoder with multi-processor architecture and picture-based look-ahead window
US8135073B2 (en) * 2002-12-19 2012-03-13 Trident Microsystems (Far East) Ltd Enhancing video images depending on prior image enhancements
US20060098737A1 (en) 2002-12-20 2006-05-11 Koninklijke Philips Electronics N.V. Segment-based motion estimation
KR100984517B1 (ko) 2003-01-10 2010-10-01 톰슨 라이센싱 인터프레임 인코딩을 위한 빠른 모드 결정 방법
KR100560843B1 (ko) 2003-04-10 2006-03-13 에스케이 텔레콤주식회사 비디오 부호기에서 적응 움직임 벡터의 탐색 영역을결정하는 방법 및 장치
US20040228401A1 (en) 2003-05-12 2004-11-18 Chen Sherman (Xuemin) Method and system for protecting image data in frame buffers of video compression systems
US8660182B2 (en) * 2003-06-09 2014-02-25 Nvidia Corporation MPEG motion estimation based on dual start points
US20040252982A1 (en) 2003-06-11 2004-12-16 Yuji Iwahara Recording apparatus, program, and integrated circuit
US7471724B2 (en) 2003-06-23 2008-12-30 Vichip Corp. Limited Method and apparatus for adaptive multiple-dimensional signal sequences encoding/decoding
US7978769B2 (en) * 2003-06-30 2011-07-12 Ntt Docomo, Inc. Method and apparatus for coding motion information
EP1496707A1 (en) 2003-07-09 2005-01-12 Matsushita Electric Industrial Co., Ltd. Encoding and decoding of video images with delayed reference picture refresh
US7453940B2 (en) 2003-07-15 2008-11-18 Lsi Corporation High quality, low memory bandwidth motion estimation processor
CN101616330B (zh) 2003-07-16 2012-07-04 三星电子株式会社 用于色彩图像的视频编码/解码装置和方法
TWI231714B (en) 2003-07-30 2005-04-21 Mediatek Inc Method for performing predictive image decoding with memory access
MXPA06002211A (es) 2003-08-26 2006-05-19 Thomson Licensing Metodo y aparato para reducir al minimo el numero de imagenes de referencia utilizadas para inter-codificacion.
MXPA06002210A (es) 2003-08-26 2006-05-19 Thomson Licensing Metodo y aparato para la decodificacion de bloques intra-inter codificados hibridos.
US7567617B2 (en) 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US7826526B2 (en) 2003-10-20 2010-11-02 Logitech Europe S.A. Methods and apparatus for encoding and decoding video data
US20100316116A1 (en) 2003-12-08 2010-12-16 John Iler Processing data streams
US7240165B2 (en) 2004-01-15 2007-07-03 Hewlett-Packard Development Company, L.P. System and method for providing parallel data requests
KR20050078153A (ko) * 2004-01-31 2005-08-04 주식회사 손랩 병렬처리 부호화기 및 그 방법
WO2005076630A1 (ja) 2004-02-03 2005-08-18 Matsushita Electric Industrial Co., Ltd. 復号化装置、符号化装置、補間フレーム生成システム、集積回路装置、復号化プログラムおよび符号化プログラム
US8743956B2 (en) 2004-02-20 2014-06-03 Nec Corporation Image encoding method, device thereof, and control program thereof
US8000392B1 (en) 2004-02-27 2011-08-16 Vbrick Systems, Inc. Phase correlation based motion estimation in hybrid video compression
KR101196429B1 (ko) 2004-03-12 2012-11-01 삼성전자주식회사 동영상 트랜스코딩 방법 및 그 장치, 이에 사용되는움직임 벡터 보간방법
EP1578137A2 (en) 2004-03-17 2005-09-21 Matsushita Electric Industrial Co., Ltd. Moving picture coding apparatus with multistep interpolation process
US20060044576A1 (en) 2004-07-30 2006-03-02 Kabushiki Kaisha Toshiba Apparatus for image processing
US7720148B2 (en) 2004-03-26 2010-05-18 The Hong Kong University Of Science And Technology Efficient multi-frame motion estimation for video compression
JP2005284749A (ja) 2004-03-30 2005-10-13 Kyushu Univ 並列処理コンピュータ
DE102004017145B4 (de) 2004-04-07 2006-02-16 Micronas Gmbh Verfahren und Vorrichtung zur Ermittlung von Bewegungvektoren, die Bildbereichen eines Bildes zugeordnet sind
US7634776B2 (en) 2004-05-13 2009-12-15 Ittiam Systems (P) Ltd. Multi-threaded processing design in architecture with multiple co-processors
JP2005348093A (ja) 2004-06-03 2005-12-15 Sony Corp 画像処理装置、そのプログラムおよびその方法
US20050281332A1 (en) 2004-06-22 2005-12-22 Wai-Ming Lai Transform coefficient decoding
US20060002474A1 (en) * 2004-06-26 2006-01-05 Oscar Chi-Lim Au Efficient multi-block motion estimation for video compression
US8111752B2 (en) 2004-06-27 2012-02-07 Apple Inc. Encoding mode pruning during video encoding
KR100907847B1 (ko) 2004-07-20 2009-07-14 퀄컴 인코포레이티드 순간적 비디오 압축으로 이동 벡터 예측을 위한 방법 및장치
US9532069B2 (en) 2004-07-30 2016-12-27 Euclid Discoveries, Llc Video compression repository and model reuse
US9743078B2 (en) 2004-07-30 2017-08-22 Euclid Discoveries, Llc Standards-compliant model-based video encoding and decoding
KR100624432B1 (ko) 2004-08-05 2006-09-19 삼성전자주식회사 내용 기반 적응적 이진 산술 복호화 방법 및 장치
JP3880985B2 (ja) * 2004-08-05 2007-02-14 松下電器産業株式会社 動きベクトル検出装置および動きベクトル検出方法
US9509991B2 (en) 2004-08-12 2016-11-29 Gurulogic Microsystems Oy Processing and reproduction of frames
EP1788485A4 (en) 2004-08-23 2012-09-26 Gaia System Solutions Inc SOURCE PROGRAM ANALYSIS DEVICE AND METHOD
US8085846B2 (en) * 2004-08-24 2011-12-27 Thomson Licensing Method and apparatus for decoding hybrid intra-inter coded blocks
US7496736B2 (en) 2004-08-27 2009-02-24 Siamack Haghighi Method of efficient digital processing of multi-dimensional data
EP1631089A1 (en) 2004-08-30 2006-03-01 Matsushita Electric Industrial Co., Ltd. Video coding apparatus and decoding apparatus
US7558428B2 (en) * 2004-09-13 2009-07-07 Microsoft Corporation Accelerated video encoding using a graphics processing unit
NO321642B1 (no) 2004-09-27 2006-06-12 Tandberg Telecom As Fremgangsmate for koding av bildeutsnitt
KR100640592B1 (ko) * 2004-10-25 2006-11-01 삼성전자주식회사 향상된 압축 속도를 가지는 동영상 압축 장치 및 그 방법
JP2006174415A (ja) * 2004-11-19 2006-06-29 Ntt Docomo Inc 画像復号装置、画像復号プログラム、画像復号方法、画像符号化装置、画像符号化プログラム及び画像符号化方法
US20060120455A1 (en) 2004-12-08 2006-06-08 Park Seong M Apparatus for motion estimation of video data
US7970219B2 (en) 2004-12-30 2011-06-28 Samsung Electronics Co., Ltd. Color image encoding and decoding method and apparatus using a correlation between chrominance components
JP2006333436A (ja) 2005-01-07 2006-12-07 Ntt Docomo Inc 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、及び、動画像復号プログラム
WO2006096612A2 (en) 2005-03-04 2006-09-14 The Trustees Of Columbia University In The City Of New York System and method for motion estimation and mode decision for low-complexity h.264 decoder
WO2006100625A1 (en) * 2005-03-21 2006-09-28 Koninklijke Philips Electronics N.V. Processing a data array with a meandering scanning order using a circular buffer memory
JP4050754B2 (ja) 2005-03-23 2008-02-20 株式会社東芝 ビデオエンコーダ及び動画像信号の符号化方法
US7672373B2 (en) 2005-04-11 2010-03-02 Cisco Technology, Inc. Digital watermarking of a media stream using coded macroblock types
US8325797B2 (en) 2005-04-11 2012-12-04 Maxim Integrated Products, Inc. System and method of reduced-temporal-resolution update for video coding and quality control
JP2008536429A (ja) 2005-04-12 2008-09-04 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 領域の動的なアスペクト比を用いた領域ベース3drs動き推定
US20080192827A1 (en) * 2005-04-12 2008-08-14 Koninklijke Philips Electronics, N.V. Video Processing With Region-Based Multiple-Pass Motion Estimation And Update Of Temporal Motion Vector Candidates
US8913660B2 (en) 2005-04-14 2014-12-16 Fastvdo, Llc Device and method for fast block-matching motion estimation in video encoders
JP4374548B2 (ja) 2005-04-15 2009-12-02 ソニー株式会社 復号装置および方法、記録媒体、並びに、プログラム
KR101246915B1 (ko) 2005-04-18 2013-03-25 삼성전자주식회사 동영상 부호화 또는 복호화 방법 및 장치
US7728909B2 (en) 2005-06-13 2010-06-01 Seiko Epson Corporation Method and system for estimating motion and compensating for perceived motion blur in digital video
TWI295540B (en) 2005-06-15 2008-04-01 Novatek Microelectronics Corp Motion estimation circuit and operating method thereof
US8761258B2 (en) 2005-06-17 2014-06-24 The Hong Kong University Of Science And Technology Enhanced block-based motion estimation algorithms for video compression
JP2007013419A (ja) 2005-06-29 2007-01-18 Canon Inc 画像処理装置、画像処理方法
US8774272B1 (en) 2005-07-15 2014-07-08 Geo Semiconductor Inc. Video quality by controlling inter frame encoding according to frame position in GOP
US8761259B2 (en) 2005-09-22 2014-06-24 Qualcomm Incorporated Multi-dimensional neighboring block prediction for video encoding
KR100716308B1 (ko) * 2005-09-29 2007-05-08 연세대학교 산학협력단 가변 블록 움직임 추정 방법 및 장치
JP5422124B2 (ja) * 2005-10-05 2014-02-19 パナソニック株式会社 参照ピクチャ選択方法、画像符号化方法、プログラム、画像符号化装置および半導体装置
GB0522036D0 (en) 2005-10-28 2005-12-07 Univ Hong Kong Science & Techn Effective rate control for video encoding and transcoding
US8428135B2 (en) * 2005-11-14 2013-04-23 Fastvdo, Llc Device and method for fast sub sample block-matching motion estimation in video encoders
JP2007166192A (ja) 2005-12-13 2007-06-28 Toshiba Corp 情報処理装置、制御方法およびプログラム
US8170102B2 (en) * 2005-12-19 2012-05-01 Seiko Epson Corporation Macroblock homogeneity analysis and inter mode prediction
EP1982532A2 (en) 2006-02-02 2008-10-22 Thomson Licensing Method and apparatus for motion estimation using combined reference bi-prediction
US7924925B2 (en) * 2006-02-24 2011-04-12 Freescale Semiconductor, Inc. Flexible macroblock ordering with reduced data traffic and power consumption
JP2007251865A (ja) * 2006-03-20 2007-09-27 Sony Corp 画像データの処理装置、画像データの処理方法、画像データの処理方法のプログラム及び画像データの処理方法のプログラムを記録した記録媒体
JP4384130B2 (ja) 2006-03-28 2009-12-16 株式会社東芝 動画像復号方法及び装置
US8130828B2 (en) * 2006-04-07 2012-03-06 Microsoft Corporation Adjusting quantization to preserve non-zero AC coefficients
CN101422047B (zh) 2006-04-14 2011-01-12 Nxp股份有限公司 图像边界处的运动估计方法及显示设备
US20070268964A1 (en) 2006-05-22 2007-11-22 Microsoft Corporation Unit co-location-based motion estimation
JPWO2007136088A1 (ja) * 2006-05-24 2009-10-01 パナソニック株式会社 画像符号化装置、画像符号化方法、及び画像符号化用集積回路
US20070286277A1 (en) 2006-06-13 2007-12-13 Chen Xuemin Sherman Method and system for video compression using an iterative encoding algorithm
JP4250638B2 (ja) 2006-06-30 2009-04-08 株式会社東芝 動画像符号化装置及びその方法
KR101311403B1 (ko) 2006-07-04 2013-09-25 삼성전자주식회사 영상의 부호화 방법 및 장치, 복호화 방법 및 장치
KR100750189B1 (ko) 2006-07-04 2007-08-17 삼성전자주식회사 이동통신 단말기에서 화상통화 화면 공유 장치 및 방법
JP4724061B2 (ja) 2006-07-06 2011-07-13 株式会社東芝 動画像符号化装置
US8396134B2 (en) 2006-07-21 2013-03-12 Vidyo, Inc. System and method for scalable video coding using telescopic mode flags
JP4868968B2 (ja) 2006-07-31 2012-02-01 株式会社東芝 補間フレーム作成方法及び補間フレーム作成装置
US8437396B2 (en) 2006-08-10 2013-05-07 Vixs Systems, Inc. Motion search module with field and frame processing and methods for use therewith
US8428118B2 (en) 2006-08-17 2013-04-23 Ittiam Systems (P) Ltd. Technique for transcoding MPEG-2/MPEG-4 bitstream to H.264 bitstream
JP4902854B2 (ja) 2006-09-12 2012-03-21 パナソニック株式会社 動画像復号化装置、動画像復号化方法、動画像復号化プログラム、動画像符号化装置、動画像符号化方法、動画像符号化プログラム、及び動画像符号化復号化装置
US9001899B2 (en) * 2006-09-15 2015-04-07 Freescale Semiconductor, Inc. Video information processing system with selective chroma deblock filtering
US8213509B2 (en) 2006-10-06 2012-07-03 Calos Fund Limited Liability Company Video coding on parallel processing systems
US9883202B2 (en) 2006-10-06 2018-01-30 Nxp Usa, Inc. Scaling video processing complexity based on power savings factor
FR2907630A1 (fr) 2006-10-19 2008-04-25 Thomson Licensing Sas Dispositif et procede de codage sous forme scalable d'une sequence d'images et dispositif et procede de decodage correspondants
KR100819289B1 (ko) 2006-10-20 2008-04-02 삼성전자주식회사 영상 데이터의 디블록킹 필터링 방법 및 디블록킹 필터
US7958177B2 (en) 2006-11-29 2011-06-07 Arcsoft, Inc. Method of parallelly filtering input data words to obtain final output data words containing packed half-pel pixels
US20080126278A1 (en) 2006-11-29 2008-05-29 Alexander Bronstein Parallel processing motion estimation for H.264 video codec
US9445128B2 (en) * 2006-12-08 2016-09-13 Freescale Semiconductor, Inc. System and method of determining deblocking control flag of scalable video system for indicating presentation of deblocking parameters for multiple layers
US9961372B2 (en) * 2006-12-08 2018-05-01 Nxp Usa, Inc. Adaptive disabling of deblock filtering based on a content characteristic of video information
JP4908180B2 (ja) 2006-12-20 2012-04-04 株式会社東芝 動画像符号化装置
US20080152014A1 (en) 2006-12-21 2008-06-26 On Demand Microelectronics Method and apparatus for encoding and decoding of video streams
US8311120B2 (en) * 2006-12-22 2012-11-13 Qualcomm Incorporated Coding mode selection using information of other coding modes
JP2008193627A (ja) 2007-01-12 2008-08-21 Mitsubishi Electric Corp 画像符号化装置、画像復号装置、および画像符号化方法、画像復号方法
JP4635016B2 (ja) * 2007-02-16 2011-02-16 株式会社東芝 情報処理装置およびインター予測モード判定方法
US20080205508A1 (en) * 2007-02-22 2008-08-28 Streaming Networks (Pvt.) Ltd. Method and apparatus for low complexity video encoding and decoding
US8144778B2 (en) * 2007-02-22 2012-03-27 Sigma Designs, Inc. Motion compensated frame rate conversion system and method
US8711901B2 (en) * 2007-03-12 2014-04-29 Vixs Systems, Inc. Video processing system and device with encoding and decoding modes and method for use therewith
US20080240242A1 (en) 2007-03-27 2008-10-02 Nokia Corporation Method and system for motion vector predictions
US8416857B2 (en) 2007-03-29 2013-04-09 James Au Parallel or pipelined macroblock processing
CN101222604B (zh) 2007-04-04 2010-06-09 晨星半导体股份有限公司 运算移动估计值与估算图像的移动向量的方法
KR101182634B1 (ko) 2007-04-12 2012-09-14 노키아 코포레이션 공간적으로 향상된 변환 부호화
KR20100024484A (ko) 2007-06-12 2010-03-05 노키아 코포레이션 감소된 계수 개수를 가진 다중 변환 블록들의 공동 코딩
US20090003443A1 (en) 2007-06-26 2009-01-01 Nokia Corporation Priority-based template matching intra prediction video and image coding
US7991237B2 (en) 2007-06-28 2011-08-02 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method and image decoding method
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US20090010326A1 (en) 2007-07-05 2009-01-08 Andreas Rossholm Method and apparatus for parallel video decoding
US20090010336A1 (en) * 2007-07-06 2009-01-08 The Hong Kong University Of Science And Technology Motion estimation optimizations for audio/video compression processes
US8731048B2 (en) 2007-08-17 2014-05-20 Tsai Sheng Group Llc Efficient temporal search range control for video encoding processes
US9131240B2 (en) 2007-08-23 2015-09-08 Samsung Electronics Co., Ltd. Video decoding method and apparatus which uses double buffering
US8023562B2 (en) 2007-09-07 2011-09-20 Vanguard Software Solutions, Inc. Real-time video coding/decoding
US8472529B2 (en) * 2007-09-14 2013-06-25 General Instrument Corporation Estimating complexity of video frames for encoding
US20090103617A1 (en) * 2007-10-22 2009-04-23 The Hong Kong University Of Science And Technology Efficient error recovery with intra-refresh
US8600189B2 (en) 2007-11-12 2013-12-03 Qualcomm Incorporated Block-based image stabilization
US8121197B2 (en) 2007-11-13 2012-02-21 Elemental Technologies, Inc. Video encoding and decoding using parallel processors
US8675739B2 (en) * 2007-12-17 2014-03-18 Samsung Electronics Co., Ltd. Method and apparatus for video decoding based on a multi-core processor
US20090167958A1 (en) 2007-12-28 2009-07-02 Ati Technologies Ulc System and method of motion vector estimation using content associativity
US9641861B2 (en) 2008-01-25 2017-05-02 Mediatek Inc. Method and integrated circuit for video processing
US8654844B1 (en) 2008-02-04 2014-02-18 Zenverge, Inc. Intra frame beating effect reduction
US20100020877A1 (en) 2008-07-23 2010-01-28 The Hong Kong University Of Science And Technology Multiple reference frame motion estimation in video coding
EP2532159A1 (en) 2010-02-05 2012-12-12 Telefonaktiebolaget L M Ericsson (PUBL) Selecting predicted motion vector candidates
US8897358B2 (en) * 2010-12-22 2014-11-25 Texas Instruments Incorporated 3:2 pull down detection in video

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9319704B2 (en) 2009-10-23 2016-04-19 Samsung Electronics Co., Ltd. Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level
US9319706B2 (en) 2009-10-23 2016-04-19 Samsung Electronics Co., Ltd. Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level
US9319705B2 (en) 2009-10-23 2016-04-19 Samsung Electronics Co., Ltd. Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level
US9319707B2 (en) 2009-10-23 2016-04-19 Samsung Electronics Co., Ltd. Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level
US9338471B2 (en) 2009-10-23 2016-05-10 Samsung Electronics Co., Ltd. Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level
US9602828B2 (en) 2009-10-23 2017-03-21 Samsung Electronics Co., Ltd. Method and apparatus for decoding video according to individual parsing or decoding in data unit level, and method and apparatus for encoding video for individual parsing or decoding in data unit level
US8692831B2 (en) 2010-02-01 2014-04-08 Samsung Electronics Co., Ltd. Parallel operation processing apparatus and method
KR20150051204A (ko) * 2015-04-21 2015-05-11 삼성전자주식회사 데이터 단위 레벨의 독립적 파싱 또는 복호화에 따른 비디오 복호화 방법 및 그 장치, 그리고 데이터 단위 레벨의 독립적 파싱 또는 복호화를 위한 비디오 부호화 방법 및 그 장치

Also Published As

Publication number Publication date
WO2009110670A1 (en) 2009-09-11
US20160080763A1 (en) 2016-03-17
US20110158319A1 (en) 2011-06-30
US20160080764A1 (en) 2016-03-17
US10334271B2 (en) 2019-06-25
US20160080767A1 (en) 2016-03-17
KR100939917B1 (ko) 2010-02-03
US10244254B2 (en) 2019-03-26
US10341679B2 (en) 2019-07-02
US20160080761A1 (en) 2016-03-17
US20160080769A1 (en) 2016-03-17
US20160080766A1 (en) 2016-03-17
EP2297966A1 (en) 2011-03-23
US20160080770A1 (en) 2016-03-17
US20160080765A1 (en) 2016-03-17
US20160080768A1 (en) 2016-03-17
US20160080762A1 (en) 2016-03-17
US10412409B2 (en) 2019-09-10

Similar Documents

Publication Publication Date Title
KR100939917B1 (ko) 움직임 예측을 통한 부호화 시스템 및 움직임 예측을 통한부호화 방법
EP2805499B1 (en) Video decoder, video encoder, video decoding method, and video encoding method
KR100739281B1 (ko) 움직임 추정 방법 및 장치
US20100040143A1 (en) Video coding apparatus and method
KR20180018903A (ko) 참조 프레임 선택 방법 및 그 장치

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131223

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141222

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151223

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180123

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190103

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20191230

Year of fee payment: 11