KR20120105396A - 모션 추정을 위한 기법들 - Google Patents

모션 추정을 위한 기법들 Download PDF

Info

Publication number
KR20120105396A
KR20120105396A KR1020120088259A KR20120088259A KR20120105396A KR 20120105396 A KR20120105396 A KR 20120105396A KR 1020120088259 A KR1020120088259 A KR 1020120088259A KR 20120088259 A KR20120088259 A KR 20120088259A KR 20120105396 A KR20120105396 A KR 20120105396A
Authority
KR
South Korea
Prior art keywords
motion
unit
frame
block
motion vector
Prior art date
Application number
KR1020120088259A
Other languages
English (en)
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
Priority claimed from US12/657,168 external-priority patent/US20110002387A1/en
Application filed by 인텔 코오퍼레이션 filed Critical 인텔 코오퍼레이션
Publication of KR20120105396A publication Critical patent/KR20120105396A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/57Motion estimation characterised by a search window with variable size or shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

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

Abstract

비디오 디코더에서 B 프레임 또는 P 프레임의 재구성된 기준 픽쳐들에 기초하여 모션 추정(ME)을 적용하기 위해 사용될 수 있는 기법들이 설명된다. P 프레임에 대하여, 투영 ME가 수행되어 현재 입력 블록에 대한 모션 벡터(MV)를 얻을 수 있다. B 프레임에서, 투영 ME와 미러 ME 모두가 수행되어 현재 입력 블록에 대한 MV를 얻을 수 있다. 검색 경로에서 발견되는 MV0과 MV1의 각각의 쌍에 대한 메트릭을 결정하기 위하여 메트릭이 사용될 수 있고, 메트릭은 제1, 제2, 및 제3 메트릭의 조합에 기초한다. 제1 메트릭은 임시 프레임 상관에 기초하고, 제2 메트릭은 기준 블록들의 공간적 이웃들에 기초하고, 제3 메트릭은 현재 블록의 공간적 이웃들에 기초한다.

Description

모션 추정을 위한 기법들{TECHNIQUES FOR MOTION ESTIMATION}
AVC(advanced video codec)로도 알려진 H.264와, MPEG-4 파트 10은 산업계에서 광범위하게 따를 것으로 기대되는 ITU-T/ISO 비디오 압축 표준들이다. H.264 표준은 JVT(Joint Video Team)에 의해 마련되며, VCEG(Video Coding Expert Group)로 알려진 ITU-T SG16 Q.6으로 구성되며, MPEG(Motion Picture Expert Group)으로 알려진 ISO/IEC JTC1/SC29/WG11로 또한 구성된다. H.264는 DTV(Digital TV broadcast), DBS(Direct Broadcast Satellite) 비디오, DSL(Digital Subscriber Line) 비디오, ISM(Interactive Storage Media), MMM(Multimedia Messaging), DTTB(Digital Terrestrial TV Broadcast), 및 RVS(Remote Video Surveillance) 영역의 어플리케이션들을 위해 설계된다.
비디오 프레임들 중 일시적인 리던던시(redundancy)를 제거하거나 감소시킴으로써 비디오 압축 성능을 개선하기 위해 비디오 코딩에서의 모션 추정(ME)이 이용될 수 있다. 입력 블록을 인코딩하기 위해, 종래의 모션 추정은 기준 프레임들의 지정된 검색 윈도우 내의 인코더에서 수행될 수 있다. 이것은 입력 블록과 기준 프레임의 기준 블록 간의 절대차의 합(SAD)을 최소화하는 모션 벡터를 결정할 수 있게 한다. 그리고 나서, 모션 벡터(MV) 정보는 모션 보상을 위해 디코더에 전송될 수 있다. 모션 벡터는 프랙셔널(fractional) 픽셀 단위들에 대해 결정될 수 있고, 프랙셔널 픽셀 값들을 계산하기 위해 보간 필터들이 이용될 수 있다.
원래의 입력 프레임들이 디코더에서 이용가능하지 않은 경우에, 재구성된 기준 프레임들을 이용하여 디코더에서 ME가 수행될 수 있다. 예측 프레임(P 프레임)을 인코딩하는 경우, 순방향 기준 버퍼에 다수의 기준 프레임들이 존재할 수 있다. 쌍예측 프레임(bi-predictive frame)(B 프레임)을 인코딩하는 경우, 순방향 기준 버퍼에 다수의 기준 프레임들이 존재할 수 있고, 적어도 하나의 기준 프레임이 역방향 기준 버퍼에 존재할 수 있다. B 프레임 인코딩을 위해, 미러(mirror) ME 또는 투영(projective) ME가 수행되어 MV를 얻을 수 있다. P 프레임 인코딩을 위해, 투영 ME가 수행되어 MV를 얻을 수 있다.
그외의 맥락들에서, 하나 이상의 프레임들에서의 블록들과 관련하여, 이용가능한 이전에 디코딩된 픽셀들에 대해 모션 추정을 수행함으로써 블록 기반 모션 벡터가 비디오 디코더에서 생성될 수 있다. 이용가능한 픽셀들은, 예를 들어, 현재 프레임의 연속하는 스캔 코딩 순서로 공간적으로 이웃하는 블록들, 이전에 디코딩된 프레임의 블록들, 또는 계층화 코딩이 이용된 경우의 하위 계층의 다운 샘플된 프레임의 블록들일 수 있다. 대안적으로, 이용가능한 픽셀들은 전술한 블록들의 조합일 수 있다.
종래의 비디오 코딩 시스템에서, ME는 인코더 측에서 수행되어 현재 인코딩 블록의 예측들에 대한 모션 벡터들을 결정하고, 모션 벡터들은 이진 스트림 내로 인코딩되어 현재 디코딩 블록의 모션 보상을 위해 디코더 측으로 전송되어야 한다. 일부 AVC 표준들, 예를 들어, H.264/AVC에서, 매크로 블록(MB)은 인코딩을 위해 더 작은 블록들로 파티셔닝될 수 있고, 모션 벡터가 각각의 서브 파티셔닝된 블록에 할당될 수 있다. 결과로서, MB가 4×4 블록들로 파티셔닝되면, 예측 코딩 MB에 대해 16개까지의 모션 벡터들이 존재하고, 쌍예측 코딩 MB에 대해 32개까지의 모션 벡터들이 존재한다. 결과로서, 실질적인 대역폭이 이용되어 인코더로부터 디코더로 모션 벡터 정보를 전송한다.
도 1은 미러 ME를 이용하여 B 프레임의 현재 블록에 대해 모션 벡터를 결정하는 방식의 예를 도시한다.
도 2는 2개의 순방향 기준 프레임들에 기초하여 P 프레임의 현재 블록에 대해 모션 벡터들을 결정하는 투영 ME의 예를 도시한다.
도 3은 확장된 기준 블록을 도시한다.
도 4는 현재 블록의 공간적 이웃들을 도시한다.
도 5는 실시예에 따른 처리를 도시한다.
도 6은 모션 벡터들을 결정하기 위해 이용될 수 있는 실시예를 도시한다.
도 7은 자기 MV 도출 모듈(self MV derivation module)을 포함할 수 있는 예시적인 H.264 비디오 인코더 아키텍처를 도시한다.
도 8은 자기 MV 도출 모듈을 갖는 H.264 비디오 인코더를 도시한다.
디지털 비디오 클립은 연속적인 비디오 프레임들을 포함한다. 연속적인 프레임들에서 대상 또는 배경의 모션들은 부드러운 궤도를 형성할 수 있고, 연속적인 프레임들에서 모션들은 비교적 강한 시간적 상관들을 가질 수 있다. 이러한 상관을 이용함으로써, 재구성된 기준 픽처들로부터 모션을 추정하여 현재 인코딩 블록에 대해 모션 벡터가 도출될 수 있다. 디코더에서의 모션 벡터의 결정은 인코더에서 수행된 모션 추정에 비해 전송 대역폭을 감소시킬 수 있다.
원래 입력 픽셀 정보가 디코더에서 이용가능하지 않은 경우, 재구성된 기준 프레임들 및 현재 프레임의 이용가능한 재구성된 블록들을 이용하여 디코더에서 ME가 수행될 수 있다. 여기서, "이용가능한"이라는 용어는 블록들이 현재 블록에 앞서 재구성되었음을 의미한다. P 프레임을 인코딩하는 경우, 순방향 기준 버퍼에 다수의 기준 프레임들이 존재할 수 있다. B 프레임을 인코딩하는 경우, 순방향 기준 버퍼에 다수의 기준 프레임들이 존재할 수 있고, 역방향 기준 버퍼에 적어도 하나의 기준 프레임이 존재할 수 있다.
실시예에 따라, 현재 블록에 대한 MV를 획득하기 위해 디코더에서 ME를 수행하는 것이 이하에 논의된다. B 프레임 인코딩을 위해, 미러 ME 또는 투영 ME가 수행되어 MV를 결정할 수 있다. P 프레임 인코딩을 위해, 투영 ME가 수행되어 MV를 결정할 수 있다. "프레임" 및 "픽처"라는 용어들은, 본 기술분야의 당업자가 이해하듯이, 본 명세서에서 상호 교환적으로 이용될 수 있음을 유의한다.
다양한 실시예들은 인코더로부터 모션 벡터들을 수신하는 대신, 디코딩 블록에 대한 모션 벡터 자체를 결정하는 것을 디코더에 제공한다. 디코더 측 모션 추정은 시간적 프레임 상관은 물론 기준 블록들의 공간적 이웃들 및 현재 블록의 공간적 이웃들에 기초하여 수행될 수 있다. 예를 들어, 모션 벡터들은 기준 버퍼 내의 2개의 재구성된 픽처들 사이에서 디코더 측 모션 검색을 수행함으로써 결정될 수 있다. P 픽처 내의 블록을 위해, 투영 모션 추정(ME)이 이용될 수 있고, B 픽쳐 내의 블록을 위해 투영 ME 및 미러 ME 모두가 이용될 수 있다. 또한, ME는 서브 파티션 블록 유형에 대해 수행될 수 있다. 코딩 효율은 디코더 측 모션 검색에 대해 적응형 검색 범위를 적용함으로써 영향받을 수 있다. 예를 들어, 검색 범위를 결정하는 기법들은 2009년 10월 20일 출원된, 미국특허출원 제12/582,061호(대리인 정리 번호 P32772)에 기술된다.
도 1은 미러 ME를 이용하여 B 프레임에서 현재 블록에 대한 모션 벡터들을 결정하는 방식의 예를 도시한다. 도 1의 실시예에서, 2개의 B 프레임들(110 및 115)이 순방향 기준 프레임(120)과 역방향 기준 프레임(130) 사이에 존재할 수 있다. 프레임(110)은 현재 인코딩 프레임일 수 있다. 현재 블록(140)을 인코딩하는 경우, 기준 프레임들(120 및 130)의 검색 윈도우들(160 및 170)에서 각각 검색들을 수행하여 모션 벡터들을 얻기 위해 미러 ME가 수행될 수 있다. 전술한 바와 같이, 현재 입력 블록이 디코더에서 이용가능하지 않을 수 있는 경우, 2개의 기준 프레임들을 이용하여 미러 ME가 수행될 수 있다.
도 2는 2개의 순방향 기준 프레임들, 즉, 순방향 기준0(기준 프레임(220)으로 도시됨) 및 순방향 기준1(기준 프레임(230)으로 도시됨)에 기초하여 P 프레임의 현재 블록에 대한 모션 벡터를 결정하는 투영 ME의 예를 도시한다. 이들 기준 프레임들은 현재 프레임(210)의 타겟 블록(240)에 대한 모션 벡터를 도출하는데 이용될 수 있다. 검색 윈도우(270)는 기준 프레임(220)에 지정될 수 있으며, 검색 경로는 검색 윈도우(270)에 지정될 수 있다. 검색 경로의 각각의 모션 벡터 MV0에 대해, 자신의 투영 모션 벡터 MV1이 기준 프레임(230)의 검색 윈도우(260)에서 결정될 수 있다. 모션 벡터들의 각각의 쌍에 대해서, MV0 및 그것의 연관된 모션 벡터 MV1, 절대차의 합과 같은 메트릭(metric)이, (1)기준 프레임(220)의 MV0에 의해 지시된 기준 블록(280)과, (2)기준 프레임(230)의 MV1에 의해 지시된 기준 블록(250) 사이에서 계산될 수 있다. 그리고 나서, 메트릭에 대해 최적의 값, 예를 들어, 가장 낮은 SAD를 만드는 모션 벡터 MV0가 타겟 블록(240)에 대한 모션 벡터로서 선택될 수 있다.
도 1 및 2와 관련하여 설명된 시나리오들을 위한 모션 벡터들을 결정하기 위한 기법이 2009년 9월 25일자로 출원된 미국 출원 번호 제12/566,823호(대리인 사건 번호 P31100)의 각각의 도 2 및 4에 설명되어 있다.
모션 벡터들을 위한 예시적인 검색은 미국 출원 번호 제12/566,823호의 프로세스들(300 및 500)에 예시되어 있는 바와 같이 진행할 수 있다. 다음은 이 특허 출원의 도 1의 시나리오를 위한 모션 벡터들을 결정하기 위한 프로세스의 요약을 제공한다. 검색 윈도우(search window)가 순방향 기준 프레임에 지정될 수 있다. 이 검색 윈도우는 인코더와 디코더 모두에서 동일할 수 있다. 검색 경로가 순방향 검색 윈도우에 지정될 수 있다. 인코더와 디코더가 동일한 검색 경로를 따르는 한, 여기서는 풀(full) 검색 또는 임의의 고속 검색 방식들이 이용될 수 있다. 검색 경로에서 MV0에 대해, 그것의 미러 모션 벡터 MV1를 역방향 검색 윈도우에서 얻을 수 있다. 여기서는, 모션 궤적(motion trajectory)은 연관된 기간 동안 직선이고 이것은 비교적 짧을 수 있다고 가정할 수 있다. 절대차의 합(SAD)과 같은 메트릭이 (i) 순방향 기준 프레임의 MV0에 의해 지시된 기준 블록과 (ii) 역방향 기준 프레임의 MV1에 의해 지시된 기준 블록 사이에 계산될 수 있다. 이들 기준 블록들은 도 1에서 각각 150 및 180으로서 도시될 수 있다. 임의의 부가적인 모션 벡터들 MV0이 검색 경로에 존재하는지에 관한 결정이 행해질 수 있다. 그러한 경우, 프로세스는 반복될 수 있고, 1개보다 많은 MV0이 얻어질 수 있으며, 각각의 MV0은 연관된 MV1을 가진다. 또한, 각각의 이러한 연관된 쌍에 대해, 예를 들어, SAD와 같은 메트릭이 얻어질 수 있다. 이러한 것으로 한정되지 않지만, 가장 낮은 SAD와 같은, 메트릭에 대한 원하는 값을 생성하는 MV0이 선택될 수 있다. 이 MV0은 그 다음에 현재 블록에 대한 모션을 예측하는 데 이용될 수 있다.
다음은 이 특허 출원의 도 2의 시나리오를 위한 모션 벡터들을 결정하기 위한 프로세스의 요약을 제공한다. 검색 윈도우가 제1 순방향 기준 프레임에 지정될 수 있다. 이 윈도우는 인코더와 디코더 모두에서 동일할 수 있다. 검색 경로가 이 검색 윈도우에 지정될 수 있다. 예를 들어, 인코더와 디코더가 동일한 검색 경로를 따르도록, 풀 검색 또는 고속 검색 방식들이 여기에 이용될 수 있다. 검색 경로에서 모션 벡터 MV0에 대해, 그의 투영 모션 벡터 MV1이 제2 검색 윈도우에서 얻어질 수 있다. 여기서는, 모션 궤적은 짧은 기간에 걸쳐서 직선이라고 가정할 수 있다. SAD와 같은 메트릭이 (i) 제1 기준 프레임의 MV0에 의해 지시된 기준 블록과 (ii) 제2 기준 프레임의 MV1에 의해 지시된 기준 블록 사이에서 계산될 수 있다. 검색 경로에 남아있고 아직 고려되지 않은 임의의 부가적인 모션 벡터들 MV0이 존재하는지에 관한 결정이 행해질 수 있다. 적어도 하나의 MV0이 남아있는 경우, 프로세스는 반복될 수 있고, 다른 MV0에 대해 그것의 대응하는 투영 모션 벡터 MV1이 결정될 수 있다. 이러한 방식으로, 한 세트의 쌍, MV0과 MV1이 결정될 수 있고, 각각의 쌍에 대해 예를 들어, SAD와 같은 메트릭이 계산될 수 있다. MV0들 중 하나가 선택될 수 있고, 선택된 MV0은, 이러한 것으로 한정되지 않지만, 가장 낮은 SAD와 같은, 메트릭에 대한 원하는 값을 산출한다. SAD 메트릭에 대한 가장 낮은 가용값, 즉, 0에 더 가까운 값이 바람직한 모드를 제안할 수 있는데, 그 이유는 0의 SAD 메트릭은 이론적 최적값을 나타내기 때문이다. 이 MV0은 그 다음에 현재 블록에 대한 모션을 예측하는 데 이용될 수 있다.
다양한 실시예들에서, 모션 벡터들을 결정하기 위해, 2개의 기준 프레임에서의 2개의 미러 블록들 또는 투영 블록들 간의 절대차의 합(SAD)이 결정된다. 현재 블록 사이즈는 M×N 픽셀들이고, 현재 블록의 위치는 현재 블록의 최상단 좌측 픽셀의 좌표들에 의해 나타내어진다. 다양한 실시예들에서, 기준 프레임 R0의 모션 벡터가
Figure pat00001
이고, 다른 기준 프레임 R1의 대응하는 모션 벡터가
Figure pat00002
일 때, 모션 검색 메트릭은 수학식 1을 이용하여 결정될 수 있다.
Figure pat00003
J0은 2009년 9월 25일자로 출원된 미국 출원 번호 제12/566,823호(대리인 사건 번호 P31100)에 설명되며, (i) 순방향 기준 프레임의 MV0에 의해 지시된 기준 블록과 (ii) 역방향 기준 프레임(또는 도 2의 시나리오에서 제2 순방향 기준 프레임)의 MV1에 의해 지시된 기준 블록 사이에서 계산될 수 있는 절대차의 합(SAD)을 나타내며,
J1은 기준 블록의 공간적 이웃들에 기초한 확장된 메트릭이고,
J2는 현재 블록의 공간적 이웃들에 기초한 확장된 메트릭이며, α1 및 α2는 2개의 가중 인자(weighting factor)이다. 인자들 α1 및 α2는 시뮬레이션에 의해 결정될 수 있지만, 디폴트로 1로 설정된다.
수학식 1로부터 값 J에 대한 최적값, 예를 들어, 최소 SAD를 산출하는 모션 벡터 MV0이 그 다음에 현재 블록에 대한 모션 벡터로서 선택될 수 있다. 모션 벡터 MV0은 아래 식에 따라 정의된 연관된 모션 벡터 MV1을 가진다.
Figure pat00004
여기서, 현재 블록이 B 픽쳐에 있을 때, d0은 도 1에 도시된 바와 같이 순방향 기준 프레임과 현재 프레임의 픽쳐 사이의 거리를 나타내고,
현재 블록이 P 픽쳐에 있을 때, d0은 도 2에 도시된 바와 같이 제1 순방향 기준 프레임과 현재 프레임의 픽쳐 사이의 거리를 나타내고,
현재 블록이 B 픽쳐에 있을 때, d1은 도 1에 도시된 바와 같이 역방향 기준 프레임과 현재 프레임의 픽쳐 사이의 거리를 나타내고,
현재 블록이 P 픽쳐에 있을 때, d1은 도 2에 도시된 바와 같이 제2 순방향 기준 프레임과 현재 프레임의 픽쳐 사이의 거리를 나타낸다.
도 1의 시나리오의 경우, 획득되는 모션 벡터 쌍 MV0과 MV1이 주어지면, 현재 블록에 대해, 그것의 순방향 예측 P0(MV0)이 MV0으로 얻어질 수 있고, 그것의 역방향 예측 P1(MV1)이 MV1로 얻어질 수 있고, 그것의 양방향 예측이 MV0과 MV1 모두로 얻어질 수 있다. 양방향 예측은 예를 들어, P0(MV0)과 P1(MV1)의 평균 또는 가중 평균 (P0(MV0)*d1 + P1(MV1)*d0)/(d0+d1)일 수 있다. 양방향 예측을 얻기 위해 대안적인 함수가 이용될 수 있다. 실시예에 있어서, 인코더 및 디코더는 동일한 예측 방법을 이용할 수 있다. 실시예에 있어서, 선택된 예측 방법은 표준 사양에 정의될 수 있거나 인코딩된 비트스트림에 시그널링될(signaled) 수 있다.
도 2의 시나리오의 경우, 상이한 방법들로 현재 블록에 대한 예측들을 얻을 수 있다. 예측들은, 예를 들어, P0(MV0), P1(MV1), (P0(MV0) + P1(MV1))/2 또는 (P0(MV0)*d1 + P1(MV1)*d0)/(d0 + d1)일 수 있다. 그외의 실시예들에서, 그외의 함수들이 사용될 수 있다. 인코더 및 디코더 모두에서, 동일한 방법으로 예측들을 얻을 수 있다. 일 실시예에서, 예측 방법은, 표준 규격에서 식별될 수 있거나 또는 인코딩된 비트스트림에서 시그널링될(signaled) 수 있다.
다양한 실시예들에서, J0는 이하의 식을 이용하여 결정될 수 있다.
Figure pat00005
여기에서, N 및 M은 각각 현재 블록의 y 및 x 치수들이고,
R0는 제1 FW 기준 프레임이고, R0(x+mv0_x+i,y+mv0_y+j)는 (x+mv0_x+i,y+mv0_y+j) 위치에서의 R0의 픽셀값이고,
R1은 미러(mirror) ME에 대한 제1 BW 기준 프레임 또는 투영 ME에 대한 제2 FW 기준 프레임이고, R1(x+mv1_x+i,y+mv1_y+j)은 (x+mv1_x+i,y+mv1_y+j) 위치에서의 R1의 픽셀값이고,
mv0_x는 기준 프레임 R0의 x 방향에서의 현재 블록에 대한 모션 벡터이고,
mv0_y는 기준 프레임 R0의 y 방향에서의 현재 블록에 대한 모션 벡터이고,
mv1_x는 기준 프레임 R1의 x 방향에서의 현재 블록에 대한 모션 벡터이고,
mv1_y는 기준 프레임 R1의 y 방향에서의 현재 블록에 대한 모션 벡터이다.
모션 벡터들이 프랙셔널 픽셀 위치들을 가리키는 경우, 픽셀값들은 보간법(interpolation), 예를 들어, H.264/AVC 표준 사양에 정의된 6탭 보간법 또는 양선형(bi-linear) 보간법을 통해 얻어질 수 있다.
도 3을 참조하여 변수 J1을 설명한다. 도 3은 확장된 기준 블록을 도시한다. M×N 기준 블록(302)은 각각 W0, W1, H0 및 H1의 확장된 경계 크기들을 갖는 그 4개의 경계들 상에서 확장된다. 따라서, 도 1 및 도 2의 시나리오들에서의 모션 벡터들을 결정하는데 사용된 기준 프레임들 R0 및 R1의 기준 블록들 각각은 도 3의 예시에 따라 확장된다. 일부의 실시예들에서, 메트릭 J1은 이하의 식을 사용하여 계산될 수 있다.
Figure pat00006
여기에서, M 및 N은 원래의 기준 블록의 치수들이다. 확장된 기준 블록의 치수들은 (M+W0+W1)×(N+H0+H1)인 것에 유의한다.
도 4를 참조하여 변수 J2를 설명한다. 도 4는 현재 블록(402)의 공간적 이웃들을 도시한다. 변수 J2는 기준 블록에 대향하는 현재 블록을 참조하여 이루어진다는 것에 유의한다. 현재 블록은 새로운 픽쳐에 위치할 수 있다. 블록(402)은 M×N 픽셀 현재 블록(402)이다. 블록 디코딩은 래스터(raster) 스캔 순서이기 때문에, 디코딩된 4개의 이용가능한 공간적 이웃 영역들, 즉, 좌측 이웃 영역 A0, 상단 이웃 영역 A1, 좌측 상단 이웃 영역 A2 및 우측 상단 이웃 영역 A3가 가능하게 존재한다. 현재 블록이 프레임 경계들 상에 존재하거나 또는 그 모 MB(parent macroblock)의 상단 또는 좌측 경계 상에 존재하지 않는 경우, 공간적 이웃 영역들 중 일부는 현재 블록에 이용가능하지 않을 수 있다. 4개의 영역들 γ0, γ1, γ2 및 γ3에 대하여, 이용가능한 플래그들이 정의될 수 있다. 그 플래그가 1과 일치하면 영역이 이용가능하고, 그 플래그가 0과 일치하면 영역은 이용가능하지 않다. 다음으로, 이용가능한 공간 영역은 현재 블록에 대하여 Aavail로 다음과 같이 정의된다:
Figure pat00007
따라서, 메트릭 J2는 다음과 같이 계산될 수 있다.
Figure pat00008
여기에서, C(x,y)는 현재 블록에 경계를 이루는 영역들 내의 현재 프레임의 픽셀이고,
ω0 및 ω1은, 새로운 픽쳐와 기준 프레임들(0, 1 또는 0.5로 설정됨) 사이의 프레임 거리들에 따라 설정될 수 있는 2개의 가중 인자들이다.
Rx가 새로운 픽쳐를 나타내는 경우, Rx에 대한 R0의 거리가 Rx에 대한 R1의 거리와 일치하면, 동일한 가중이 발생할 수 있다. R0-Rx가 R1-Rx와 상이하면, 가중되는 차이들에 기초하여 가중 인자들이 설정된다.
일 실시예에서, 도 4의 파라미터들은 다음과 같이 설정될 수 있지만, 다음에 한정되는 것은 아니다.
Figure pat00009
도 5는 일 실시예에 따른 프로세스를 도시한다. 블록(502)은, 현재 블록이 B 픽쳐에 있는 경우 순방향 기준 프레임의 검색 윈도우를 지정하거나, 또는 현재 블록이 P 픽쳐에 있는 경우 제1 순방향 기준 프레임을 지정하는 것을 포함한다. 이 검색 윈도우는 인코더 및 디코더 모두에서 동일할 수 있다.
블록(504)은, 순방향 검색 윈도우의 검색 경로를 지정하는 것을 포함한다. 인코더 및 디코더가 동일한 검색 경로를 따른다고 하면, 여기에서는 풀 검색 또는 임의의 고속 검색 방식들을 사용할 수 있다.
블록(506)은, 검색 경로의 각각의 MV0에 대하여, (1) 제2 기준 프레임에 대한 검색 윈도우의 모션 벡터 MV1 및 (2) MV1에 의해 지정된 제2 기준 프레임의 기준 블록 및 제1 기준 프레임의 기준 블록에 기초한 메트릭을 결정하는 것을 포함한다. 현재 블록이 B 픽쳐에 있는 경우, 검색 경로의 MV0에 대하여, 그것의 미러 모션 벡터 MV1은 역방향 검색 윈도우에서 얻어질 수 있다. 현재 블록이 P 픽쳐에 있는 경우, 검색 경로 MV0에 대하여, 그것의 투영 모션 벡터 MV1은 제2 순방향 기준 프레임에 대한 검색 윈도우에서 얻어질 수 있다. 여기에서, 모션 궤적은 연관된 기간 중에 직선이며 이것은 상대적으로 짧을 것이라고 가정할 수 있다. MV1은 MV0의 이하의 함수로서 얻어질 수 있고, d0 및 d1은 현재 프레임과 각각의 기준 프레임들 사이의 거리들일 수 있다.
Figure pat00010
블록(508)은 가장 바람직한 메트릭을 갖는 모션 벡터 MV0을 선택하는 것을 포함한다. 예를 들어, 전술된 메트릭 J가 결정될 수 있고, 메트릭 J의 가장 낮은 값과 연관된 MV0이 선택될 수 있다. 다음으로, 이 MV0은 현재 블록에 대한 모션을 예측하는데 사용될 수 있다.
도 6은 모션 벡터들을 결정하는데 사용될 수 있는 실시예를 도시한다. 시스템(600)은, 프로세서(620), 및 컴퓨터 프로그램 로직(640)을 저장할 수 있는 하나 이상의 컴퓨터 판독가능한 매체를 포함할 수 있는 메모리(610)의 바디(body)를 포함할 수 있다. 메모리(610)는, 예를 들어, 하드 디스크 및 드라이브, 컴팩트 디스크 및 드라이브 등의 착탈식 매체, 또는 ROM(read-only memory) 디바이스로 구현될 수 있다. 메모리는 프로세서(620)에 의해 네트워크를 통해 원격으로 액세스될 수 있다. 프로세서(620) 및 메모리(610)는, 버스 등의, 당업자에게 공지된 임의의 몇몇의 기법들을 사용하여 통신할 수 있다. 메모리(610)에 포함된 로직은 프로세서(620)에 의해 판독되어 실행될 수 있다. 또한, I/O(630)로 총체적으로 도시된 하나 이상의 I/O 포트 및/또는 I/O 디바이스는 프로세서(620) 및 메모리(610)에 접속될 수 있다. I/O 포트들은, 무선 통신 인터페이스를 위한 하나 이상의 안테나를 포함할 수 있거나, 또는 유선 통신 인터페이스를 포함할 수 있다.
컴퓨터 프로그램 로직(640)은 모션 추정 로직(660)를 포함할 수 있다. 실행시에, 모션 추정 로직(660)은 전술된 모션 추정 처리를 수행할 수 있다. 모션 추정 로직(660)은, 예를 들어, 실행 시에 전술된 동작들을 수행할 수 있는 투영 모션 추정 로직을 포함할 수 있다. 또한, 또는 대안으로, 로직(660)은, 예를 들어, 미러 모션 추정 로직, 현재 블록의 시간적 또는 공간적 이웃들에 기초하여 ME를 수행하기 위한 로직, 또는 현재 블록에 대응하는 하위 계층 블록에 기초하여 ME를 수행하기 위한 로직을 포함할 수 있다.
모션 추정 로직(660)이 그것의 처리를 수행하기 전에, 검색 범위 벡터가 생성될 수 있다. 이것은 검색 범위 계산 로직(650)에 의해 전술된 바와 같이 수행될 수 있다. 검색 계산을 위해 수행되는 기법들은, 예를 들어, 2009년 10월 20일에 출원된 미국 특허출원 제12/582,061호(대리인 사건 번호 P32772)에 기술된다. 검색 범위 벡터가 생성되면, 이 벡터는 모션 추정 로직(660)에 의해 수행되는 검색을 바운딩하는데 사용될 수 있다.
검색 범위 벡터 결정을 수행하기 위한 로직은 더 큰 코덱 아키텍처에서 이용되는 자기 MV 도출 모듈에 통합될 수 있다. 도 7은 자기 MV 도출 모듈(740)을 포함할 수 있는 예시적인 H.264 비디오 인코더 아키텍처(700)를 예시하며, 여기에서 H.264는 비디오 코덱 표준이다. 현재 비디오 정보는 복수의 프레임의 형태로 현재 비디오 블록(710)으로부터 제공될 수 있다. 현재 비디오는 차분 유닛(711)에 전달될 수 있다. 차분 유닛(711)은 (코어 비디오 인코딩으로도 불리는) DPCM(Differential Pulse Code Modulation) 루프의 일부일 수 있으며, 이는 모션 보상 스테이지(722) 및 모션 추정 스테이지(718)를 포함할 수 있다. 루프는 또한 인트라 예측 스테이지(720) 및 인트라 보간 스테이지(724)를 포함할 수 있다. 일부 경우에, 인루프 디블록킹 필터(726)도 루프 내에 이용될 수 있다.
현재 비디오(710)는 차분 유닛(711)에 그리고 모션 추정 스테이지(718)에 제공될 수 있다. 모션 보상 스테이지(722) 또는 인트라 보간 스테이지(724)는 스위치(723)를 통해 출력을 만들어낼 수 있고, 이는 그 후 현재 비디오(710)에서 감산되어 잔여물(residual)을 만들어낼 수 있다. 잔여물은 그 후 변환/양자화 스테이지(712)에서 변환되고 양자화되며, 블록(714)에서 엔트로피 인코딩을 받을 수 있다. 블록(716)에서 채널 출력이 생성된다.
모션 보상 스테이지(722) 또는 인터-보간 스테이지(724)의 출력은 합산기(733)에 제공될 수 있으며, 합산기(733)는 또한 역 양자화 유닛(730) 및 역 변환 유닛(732)으로부터 입력을 수신할 수 있다. 이들 후자의 2개의 유닛들은 변환/양자화 스테이지(712)의 변환 및 양자화를 원상태로 돌릴 수 있다. 역 변환 유닛(732)은 역 양자화되고 역 변환된 정보를 다시 루프에 제공할 수 있다.
자기 MV 도출 모듈(740)은 모션 벡터의 도출을 위해 본원에 설명된 처리를 구현할 수 있다. 자기 MV 도출 모듈(740)은 인루프 디블록킹 필터(726)의 출력을 수신할 수 있고, 모션 보상 스테이지(722)에 출력을 제공할 수 있다.
도 8은 자기 MV 도출 모듈(810)을 갖는 H.264 비디오 디코더(800)를 예시한다. 여기에서, 도 7의 인코더(700)에 대한 디코더(800)는 엔트로피 디코딩 유닛(840)에 연결된 채널 입력(838)을 포함할 수 있다. 디코딩 유닛(840)으로부터의 출력은 역 양자화 유닛(842) 및 역 변환 유닛(844)에, 그리고 자기 MV 도출 모듈(810)에 제공될 수 있다. 자기 MV 도출 모듈(810)은 모션 보상 유닛(848)에 연결될 수 있다. 엔트로피 디코딩 유닛(840)의 출력은 또한 인트라 보간 유닛(854)에 제공될 수 있고, 이는 선택기 스위치(823)에 공급될 수 있다. 역 변환 유닛(844), 및 스위치(823)에 의해 선택된 바와 같은 모션 보상 유닛(848) 또는 인트라 보간 유닛(854) 중 어느 하나로부터의 정보는 그 후 합산되어 인루프 디블록킹 유닛(846)에 제공되고 인트라 보간 유닛(854)에 피드백될 수 있다. 인루프 디블록킹 유닛(846)의 출력은 그 후 자기 MV 도출 모듈(810)에 공급될 수 있다.
자기 MV 도출 모듈은 비디오 인코더에 위치할 수 있고, 비디오 디코더 측과 동기화할 수 있다. 자기 MV 도출 모듈은 대안적으로 일반적인 비디오 코덱 아키텍처에 적용될 수 있고, H.264 코딩 아키텍처에 제한되지 않는다. 따라서, 모션 벡터들은 인코더로부터 디코더로 송신되지 않을 수 있으며, 이는 송신 대역폭을 절약할 수 있다.
다양한 실시예들은 비디오 코덱 시스템들의 코딩 효율을 개선하기 위해 자기 MV 도출 모듈의 디코더측 ME에 대한 공간-시간 합동 모션 검색 메트릭을 이용한다.
본원에 개시된 그래픽 및/또는 비디오 처리 기법들은 다양한 하드웨어 아키텍처들로 구현될 수 있다. 예를 들면, 그래픽 및/또는 비디오 기능은 칩셋 내로 통합될 수 있다. 대안적으로, 별도의 그래픽 및/또는 비디오 프로세서가 이용될 수 있다. 또 다른 실시예로서, 그래픽 및/또는 비디오 기능들이 멀티-코어 프로세서를 포함하는 범용 프로세서에 의해 구현될 수 있다. 추가 실시예에서, 기능들은 소비자 전자 디바이스로 구현될 수 있다.
본 발명의 실시예들은 마더보드를 이용하여 상호접속된 하나 이상의 마이크로칩 또는 집적 회로들, 하드와이어드 로직, 메모리 디바이스에 의해 저장되고 마이크로 프로세서에 의해 실행되는 소프트웨어, 펌웨어, ASIC(application specific integrated circuit), 및/또는 FPGA(field programmable gate array) 중 임의의 것으로서 또는 그의 조합으로서 구현될 수 있다. 용어 "로직"은, 예로써, 소프트웨어 또는 하드웨어 및/또는 소프트웨어와 하드웨어의 조합들을 포함할 수 있다.
본 발명의 실시예들은, 예를 들면, 머신-실행가능 명령어들이 저장된 하나 이상의 머신-판독가능 매체를 포함할 수 있는 컴퓨터 프로그램 제품으로서 제공될 수 있으며, 이 명령어들은, 컴퓨터, 컴퓨터들의 네트워크, 또는 그외의 전자 디바이스들과 같은 하나 이상의 머신들에 의해 실행될 때, 하나 이상의 머신이 본 발명의 실시예들에 따른 동작들을 수행하게 할 수 있다. 머신-판독가능 매체는 플로피 디스켓들, 광학 디스켓들, CD-ROM들(Compact Disc-Read Only Memories), 자기-광학 디스크들, ROM들(Read Only Memories), RAM들(Random Access Memories), EPROM들(Erasable Programmable Read Only Memories), EEPROM들(Electrically Erasable Programmable Read Only Memories), 자기 또는 광학 카드들, 플래시 메모리, 또는 머신-실행가능 명령어들을 저장하기에 적합한 그외의 유형의 매체/머신-판독가능 매체를 포함할 수 있으나, 이에 제한되는 것은 아니다.
도면들 및 상기 설명은 본 발명의 예시들을 나타낸다. 다수의 별개 기능의 아이템들로서 도시되었지만, 본 기술 분야에 숙련된 자들은 그러한 하나 이상의 엘리먼트들이 단일 기능 엘리먼트들로 결합될 수도 있다는 것을 알 것이다. 대안적으로, 특정 엘리먼트들이 다수의 기능 엘리먼트들로 분리될 수 있다. 하나의 실시예로부터의 엘리먼트들은 또 다른 실시예에 추가될 수 있다. 예를 들면, 본원에 개시된 프로세스들의 순서들은 변경될 수 있으며, 본원에 개시된 방식에 제한되는 것은 아니다. 더욱이, 임의의 흐름도의 동작들이 도시된 순서로 구현될 필요는 없으며, 또한 그 동작들 모두가 반드시 수행될 필요도 없다. 또한, 다른 동작들에 의존하지 않는 동작들이 다른 동작들과 병행하여 수행될 수 있다. 그러나, 본 발명의 범주는 결코 이러한 특정 예들에 의해 제한되지 않는다. 명세서에 명백히 개시되었든 아니든 간에, 구조, 치수의 차이들 및 재료의 용도와 같은 다양한 변화들이 가능하다. 본 발명의 범주는 적어도 다음의 청구항들에 의해 주어진 만큼 넓다.
110, 115: B 프레임
120: 순방향 기준 프레임
130: 역방향 기준 프레임
140: 현재 블록
150: 기준 블록
160, 170: 검색 윈도우

Claims (1)

  1. 실시예에 따른 모션 추정을 수행하기 위한 컴퓨터 프로그램.
KR1020120088259A 2010-01-14 2012-08-13 모션 추정을 위한 기법들 KR20120105396A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/657,168 2010-01-14
US12/657,168 US20110002387A1 (en) 2009-07-03 2010-01-14 Techniques for motion estimation

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020110004254A Division KR101388902B1 (ko) 2010-01-14 2011-01-14 모션 추정을 위한 기법들

Publications (1)

Publication Number Publication Date
KR20120105396A true KR20120105396A (ko) 2012-09-25

Family

ID=44461814

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020110004254A KR101388902B1 (ko) 2010-01-14 2011-01-14 모션 추정을 위한 기법들
KR1020120088259A KR20120105396A (ko) 2010-01-14 2012-08-13 모션 추정을 위한 기법들

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020110004254A KR101388902B1 (ko) 2010-01-14 2011-01-14 모션 추정을 위한 기법들

Country Status (5)

Country Link
JP (1) JP5248632B2 (ko)
KR (2) KR101388902B1 (ko)
CN (1) CN102340664B (ko)
DE (1) DE102011008630A1 (ko)
TW (1) TW201204054A (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6765964B1 (en) 2000-12-06 2004-07-20 Realnetworks, Inc. System and method for intracoding video data
US8462852B2 (en) 2009-10-20 2013-06-11 Intel Corporation Methods and apparatus for adaptively choosing a search range for motion estimation
US8917769B2 (en) 2009-07-03 2014-12-23 Intel Corporation Methods and systems to estimate motion based on reconstructed reference frames at a video decoder
US9654792B2 (en) 2009-07-03 2017-05-16 Intel Corporation Methods and systems for motion vector derivation at a video decoder
EP2656610A4 (en) 2010-12-21 2015-05-20 Intel Corp SYSTEM AND METHOD FOR EXTENDED DMVD PROCESSING
TWI476640B (zh) 2012-09-28 2015-03-11 Ind Tech Res Inst 時間資料序列的平滑化方法與裝置
JP6549516B2 (ja) * 2016-04-27 2019-07-24 日本電信電話株式会社 映像符号化装置、映像符号化方法及び映像符号化プログラム
WO2019001741A1 (en) 2017-06-30 2019-01-03 Huawei Technologies Co., Ltd. MOTION VECTOR REFINEMENT FOR MULTI-REFERENCE PREDICTION
US11025947B2 (en) * 2018-11-29 2021-06-01 Mediatek Inc. Method and apparatus for generating motion field motion vectors for blocks of current frame in on-the-fly manner

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100508798B1 (ko) * 2002-04-09 2005-08-19 엘지전자 주식회사 쌍방향 예측 블록 예측 방법
US7940845B2 (en) 2002-04-19 2011-05-10 Panasonic Corporation Motion vector calculating method
KR20050122496A (ko) * 2004-06-24 2005-12-29 삼성전자주식회사 B-픽쳐의 효율적인 부호화 및 복호화 방법
US8284837B2 (en) * 2004-09-16 2012-10-09 Thomson Licensing Video codec with weighted prediction utilizing local brightness variation
US8693540B2 (en) * 2005-03-10 2014-04-08 Qualcomm Incorporated Method and apparatus of temporal error concealment for P-frame
US7756348B2 (en) * 2006-10-30 2010-07-13 Hewlett-Packard Development Company, L.P. Method for decomposing a video sequence frame
US20090323807A1 (en) * 2008-06-30 2009-12-31 Nicholas Mastronarde Enabling selective use of fractional and bidirectional video motion estimation
JP5216710B2 (ja) * 2009-07-24 2013-06-19 日立コンシューマエレクトロニクス株式会社 復号化処理方法

Also Published As

Publication number Publication date
JP2011147130A (ja) 2011-07-28
KR20110083567A (ko) 2011-07-20
DE102011008630A1 (de) 2011-09-01
KR101388902B1 (ko) 2014-04-24
TW201204054A (en) 2012-01-16
CN102340664B (zh) 2014-11-26
CN102340664A (zh) 2012-02-01
JP5248632B2 (ja) 2013-07-31

Similar Documents

Publication Publication Date Title
US20200296413A1 (en) Image encoding method and image decoding method
KR101388902B1 (ko) 모션 추정을 위한 기법들
JP5052891B2 (ja) ハイブリッド・イントラ・インター符号化ブロックを符号化する方法及び装置
US20180124405A1 (en) Video decoder and video decoding method
US9172973B2 (en) Method and system for motion estimation in a video encoder
US8085846B2 (en) Method and apparatus for decoding hybrid intra-inter coded blocks
KR101623124B1 (ko) 비디오 인코딩 장치 및 그 인코딩 방법, 비디오 디코딩 장치 및 그 디코딩 방법, 및 거기에 이용되는 방향적 인트라 예측방법
US20110002387A1 (en) Techniques for motion estimation
US20060222074A1 (en) Method and system for motion estimation in a video encoder
US20120076203A1 (en) Video encoding device, video decoding device, video encoding method, and video decoding method
US20070098067A1 (en) Method and apparatus for video encoding/decoding
US20100208814A1 (en) Inter-frame prediction coding method and device
US20140254660A1 (en) Video encoder, method of detecting scene change and method of controlling video encoder
KR20070011225A (ko) 인터-코딩에 사용된 기준 화상의 수를 최소화하기 위한방법 및 장치
GB2477033A (en) Decoder-side motion estimation (ME) using plural reference frames
WO2010008654A1 (en) Speculative start point selection for motion estimation iterative search
KR20120140592A (ko) 움직임 보상의 계산 복잡도 감소 및 부호화 효율을 증가시키는 방법 및 장치
EP3928513A1 (en) Methods and apparatus of motion vector rounding, clipping and storage for inter prediction
EP2314066A1 (en) Simple next search position selection for motion estimation iterative search
WO2012098845A1 (ja) 画像符号化方法、画像符号化装置、画像復号方法及び画像復号装置
CN113196783A (zh) 去块效应滤波自适应的编码器、解码器及对应方法
WO2024039910A1 (en) Method and apparatus for adaptive motion compensated filtering
Wu et al. A real-time H. 264 video streaming system on DSP/PC platform
KR20190091431A (ko) 인트라 모드를 이용한 쿼터 픽셀 해상도를 갖는 영상 보간 방법 및 장치

Legal Events

Date Code Title Description
A107 Divisional application of patent
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid