KR101588559B1 - 모션 벡터 저장 방법 및 장치, 인코딩 및 디코딩 방법, 인코딩 및 디코딩 장치, 및 기록 매체 - Google Patents

모션 벡터 저장 방법 및 장치, 인코딩 및 디코딩 방법, 인코딩 및 디코딩 장치, 및 기록 매체 Download PDF

Info

Publication number
KR101588559B1
KR101588559B1 KR1020157019874A KR20157019874A KR101588559B1 KR 101588559 B1 KR101588559 B1 KR 101588559B1 KR 1020157019874 A KR1020157019874 A KR 1020157019874A KR 20157019874 A KR20157019874 A KR 20157019874A KR 101588559 B1 KR101588559 B1 KR 101588559B1
Authority
KR
South Korea
Prior art keywords
reference frame
motion vector
motion vectors
motion
block
Prior art date
Application number
KR1020157019874A
Other languages
English (en)
Other versions
KR20150091414A (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 캐논 가부시끼가이샤
Publication of KR20150091414A publication Critical patent/KR20150091414A/ko
Application granted granted Critical
Publication of KR101588559B1 publication Critical patent/KR101588559B1/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
    • 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
    • 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
    • H04N19/52Processing of motion vectors by encoding by predictive 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/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/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/423Methods 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 characterised by memory arrangements
    • H04N19/426Methods 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 characterised by memory arrangements using memory downsizing methods
    • 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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

제1 참조 프레임(RefC)의 모션 벡터들은 복수의 다른 참조 프레임들(Ref0 내지 Ref3)을 지정하도록 허가된다. 모션 벡터 저장 방법은, 초기에 제1 참조 프레임의 블록(C2)이 2개의 모션 벡터(V2A, V2B)를 가질 때, 2개의 모션 벡터 중 하나(V2B)를 선택하는 단계를 포함하고, 선택되지 않은 모션 벡터(V2A)는 저장되지 않는다. 선택된 모션 벡터(V2B)는 스케일링될 수 있다(V2B). 이것은 모션 벡터 메모리 크기를 감소시킬 수 있다.

Description

모션 벡터 저장 방법 및 장치, 인코딩 및 디코딩 방법, 인코딩 및 디코딩 장치, 및 기록 매체{METHOD AND APPARATUS FOR STORING MOTION VECTORS, METHOD OF ENCODING AND DECODING, APPARATUS OF ENCODING AND DECODING, AND RECORDING MEDIUM}
본 발명은 디지털 이미지들의 시퀀스를 인코딩하기 위한 방법 및 장치와, 해당 비트스트림을 디코딩하기 위한 방법 및 장치에 관한 것이다.
본 발명은 디지털 신호 처리의 분야, 및 특히 비디오 스트림의 공간적 및 시간적 리던던시(redundancies)를 감소시키기 위해 모션 보상을 이용하는 비디오 압축의 분야에 속한다.
많은 비디오 압축 포맷들, 예를 들어 H.263, H.264, MPEG-1, MPEG-2, MPEG-4, SVC는 공간적 및 시간적 리던던시를 제거하기 위해 블록-기반 이산 코사인 변환(discrete cosine transform: DCT)과 모션 보상을 이용한다. 그들은 예측적 비디오 포맷들이라고 칭해질 수 있다. 비디오 신호의 각 프레임(frame) 또는 이미지는 독립적으로 인코딩되고 디코딩될 수 있는 슬라이스들로 분할된다. 슬라이스는 일반적으로 프레임의 직사각형 부분, 또는 더 일반적으로는, 프레임의 일부 또는 프레임의 전체이다. 또한, 각 슬라이스는 매크로블록들(macroblocks: MBs)로 분할되며, 각 매크로블록은 블록들, 일반적으로는 8x8 픽셀 블록들로 더 분할된다. 현재 표준화 과정에서 더 최근의 고효율 비디오 코딩(High Efficiency Video Coding: HEVC)에 있어서, 각 슬라이스는, 중첩하지 않는 최대 코딩 단위들(Largest Coding Units: LCUs), 일반적으로는, 64 픽셀 x 64 픽셀 크기의 블록들로 분할된다. 각각의 LCU는 쿼드트리 분해(quadtree decomposition)를 이용하여 차례로 반복적으로 더 작은 가변 크기의 코딩 단위들(Coding Units: CUs)로 분할될 수 있다. 각각의 CU는 또한 최대 2개의 대칭적 직사각형 파티션 단위들로 파티션될 수 있다. 인코딩된 프레임들은 두 가지 유형이 있는데, 시간적 예측된 프레임들(P-프레임이라고 칭해지는 1개의 참조 프레임으로부터 예측되거나, 또는 B-프레임들이라고 칭해지는 2개의 참조 프레임으로부터 예측됨) 및 비시간적 예측된 프레임들(인트라 프레임들(Intra frames) 또는 I-프레임들이라고 칭해짐)이 그들이다.
시간적 예측은 참조 프레임, 즉, 인코딩할 블록에 가장 가까운 영상 부분 또는 참조 영역을, 비디오 시퀀스의 이전의 또는 미래의 프레임에서 찾는 것으로 구성된다. 이 단계는 모션 추정으로서 알려져 있다. 다음에, 인코딩할 블록과 참조 부분 간의 차이가, 모션 보상에 이용하기 위해 참조 영역을 나타내는 모션 벡터에 대한 상대적인 모션 정보의 항목과 함께, 인코딩된다(모션 보상).
또한 모션 정보의 인코딩 비용을 더 절감하기 위해, 일반적으로 인코딩할 블록을 둘러싸는 블록들의 모션 벡터들로부터 계산된 모션 벡터 예측기(motion vector predictor)와의 차이에 의해 모션 벡터를 인코딩하는 것이 제안되었다.
H.264에서, 모션 벡터들은, 예를 들면 인코딩할 블록의 상방에 위치하는 블록들로부터 인코딩할 블록의 좌측까지, 인과관계가 있는 이웃들에 위치한 모션 벡터들로부터 계산된 중간값 예측기와 관련하여 인코딩된다. 중간값 예측기와 현재 블록의 모션 벡터 간의, 잔차 모션 벡터(residual motion vector)라고도 칭해지는, 차이만이 인코딩된다.
잔차 모션 벡터들을 이용하는 인코딩은 어느 정도의 비트레이트를 절약할 수 있지만, 디코더가 디코딩할 블록의 모션 벡터의 값을 디코딩하기 위해 모션 벡터 예측기의 동일한 계산을 수행하는 것이 필요하다.
최근, 복수의 가능한 모션 벡터 예측기를 이용하는 것 등의 더 개선된 것들이 제안되었다. 모션 벡터 경쟁이라고 칭해지는 이 방법은, 몇 개의 모션 벡터 예측기들 또는 후보들 중에서 어느 모션 벡터 예측기가 잔차 모션 정보의 인코딩 비용, 일반적으로는 레이트-왜곡 비용을 최소화하는지를 결정하는 것으로 구성된다. 잔차 모션 정보는 잔차 모션 벡터, 즉, 인코딩할 블록의 실제 모션 벡터와 선택된 모션 벡터 예측기 간의 차이, 및 예를 들면 선택된 모션 벡터 예측기의 인덱스의 인코딩된 값 등의 선택된 모션 벡터 예측기를 나타내는 정보의 항목을 포함한다.
표준화 과정에서의 현재 고효율 비디오 코딩(HEVC)에 있어서, 인코딩할 현재 블록 상방의 블록들의 소정의 그룹으로부터 제1 공간적 모션 벡터 예측기, 현재 블록의 좌측의 블록들의 다른 소정의 그룹으로부터 제2 공간적 모션 벡터 예측기, 및 참조 프레임 내의 병치된 블록(collocated block)으로부터 시간적 모션 벡터 예측기를 선택하는 것이 제안되었다. 병치된 블록은 인코딩할 블록과 동일한 위치에 위치한 블록이지만, 다른 이미지에 있다. 이 모션 벡터 예측기 선택 스킴은 고급 모션 벡터 예측(Advanced Motion Vector Prediction: AMVP)이라고 칭해진다.
모션 벡터 예측기 선택의 결과로서, 공간적 예측기들 및 시간적 예측기들을 혼합한 모션 벡터 예측기 후보들의 집합이 구해지고, 그 집합은 다양한 공간적 및 시간적 모션 벡터 예측기들의 이용가능성에 따라 0, 1, 2, 또는 3개의 후보로 구성된다. 비트스트림에서 모션 벡터 예측기를 시그널링하는 오버헤드를 줄이기 위해, 중복되는 모션 벡터들, 즉 동일한 값을 갖는 모션 벡터들을 제거하는 억제 프로세스를 적용함으로써, 모션 벡터 예측기들의 집합이 감소된다. 예를 들어, 전술한 제1 공간적 모션 벡터 예측기와 제2 공간적 모션 벡터 예측기가 동일하다면, 그들 중 오직 하나와, 뿐만 아니라 시간적 모션 벡터 예측기가 모션 벡터 예측 후보들로서 유지되어야 한다. 이 경우, 디코더에 모션 벡터 예측기의 인덱스를 나타내기 위해 1개의 비트만이 필요하다.
제1 후보가 최선의 예측기로서 선택된다면, 최소한의 오버헤드가 발생하기 때문에, 제1 위치에 가장 가능성 있는 모션 벡터 예측기를 위치시키도록 모션 벡터 예측기 후보들이 순서화될 수도 있다.
선택된 모션 벡터 예측기의 지시(indication)가 적은 비트들을 이용하여 인코딩될 수 있기 때문에, 예측기들의 집합의 충분한 감소는 시그널링 오버헤드에 있어서 게인을 유도한다. 한계에 있어서, 예를 들어, 모든 모션 벡터 예측기들이 동일하다면, 집합의 후보들이 1개로 감소될 수 있으므로, 선택된 모션 벡터 예측기에 관련된 어떠한 정보도 비트스트림에 삽입할 필요가 없다.
전술한 바와 같이, 현재 HEVC 제안에 있어서, 모션 벡터들은, 공간적 또는 시간적 예측기들일 수 있는 복수의 모션 벡터 예측기들을 이용하여, 예측적 코딩에 의해 코딩된다. 따라서, 병치된 모션 벡터 예측기의 유도를 위해 참조 프레임으로서 이용되는 각 프레임에 대해, 그의 관련 모션 벡터들을 인코더측 및 디코더측에 저장하는 것이 필요하다. 기본적으로, 첫째, 모션 표현의 입상도(granularity)(현재 HEVC 디자인에 있어서, 최소 인터 블록 크기는 4x4임)와, 둘째, B_SLICE에 대한 모션 블록당 2개까지의 벡터가 있다는 점을 고려할 때, 모션 벡터 메모리의 크기는 중요하다. 4Kx2K 해상도의 영상들에 대해, 4x4 픽셀 블록당 1개의 모션 벡터 집합의 입상도를 이용하면, 프레임당 26 Mbits가 필요한 것으로 추정된다.
Yeping Su 및 Andrew Segall, "On motion vector competition", JCTVC-C257, Guangzhou, CN, 7-15 October, 2010, 및 Yeping Su 및 Andrew Segall, "CE9: Reduced resolution storage of motion vector data", JCTVC-D072, Daegu, KR, 20-28 January, 2011은, 시간적 병치된 벡터들과 참조 인덱스들을 저장하기 위해 디코더측에 필요한 모션 벡터 메모리의 크기를 감소시키는 것을 제안한다. 제안된 솔루션은 도 1에 도시된 바와 같이 모션 벡터들의 간단한 블록별 요약으로 구성된다. 현재 HEVC 구현에서는, 16개 중 하나의 모션 벡터가 64x64 픽셀의 각 스퀘어에 유지되고, 좌상의 4x4 블록의 모션 벡터가 고려된다. 이것은 메모리 요구량을 16배만큼 감소시킨다. 이러한 감소 비율은 시퀀스 파라미터 집합에 시그널링된다. 모션 벡터 메모리 압축 프로세스는, 적응적 루프 필터 처리 후, 디코딩된 영상이 디코딩된 영상 버퍼(decoded picture buffer: DPB)에 투입되기 전에 발생한다.
이 솔루션은 코딩 효율 패널티(penalty)에 의해, 모션 벡터 메모리의 상당한 감소를 가능하게 한다. 그러나, 이 솔루션은 MV 메모리 압축에 있어서 블록 요약을 위해 집합 내의 예측기들의 다양성을 고려하지는 않는다. 또한, 몇 가지 기준들이 테스트되었지만, 다양성을 고려하지 않았다. 또한, 이 솔루션은 적응적이지도 않고 유연하지도 않다. 또한, 더 많은 압축이 필요할 때, 모션 벡터들의 제거에 있어서 높은 감소 비율이 필요한데, 이것은 상당한 코딩 효율 손실을 초래할 수 있다.
WO2004/012459A는 저장된 모션 벡터들의 수를 제한하기 위한 또 다른 제안을 기술한다. 제한 정보는 헤더 정보(아마도 SPS 등의 전역 레벨, PPS 등의 영상 레벨, 또는 슬라이스 헤더 등의 슬라이스 레벨에서)로서 코딩된다. 이 제한 정보는 영상의 개수, 또는 모션 벡터가 저장되어 있는 매크로블록의 개수를 나타낸다. 저장되어 있는 모션 벡터를 코딩된 블록이 참조한다면, 이 모션 벡터가 이용되고, 그렇지 않다면, 널(null) 모션 벡터(두 성분 모두 0임)가 이용된다. 그러나, 이 솔루션은 블록 요약을 고려하지 않는다.
모션 벡터 저장 요구량을 감소시키기 위한 제안 외에도, 다른 종래의 제안들이 AMVP에 대한 예측기들의 개선을 모색해왔다.
예를 들어, Jung, G. Clare, (Orange Labs), "Temporal MV predictor modification for MV-Comp, Skip, Direct and Merge schemes", JCTVC-D164, Daegu, KR, 20-28 January, 2011은 중심의 시간적 예측기를 이용하는 것을 제안하는데, WO2011/001077A를 또한 참조한다. 이 제안에 있어서, 블록의 원점(좌상)(HEVC의 이전 버전과 같이) 대신에, 블록의 중심을, 병치된 참조 프레임에 맵핑함으로써 병치된 블록이 찾아진다. 병치된 블록이 현재 블록과 동일한 크기 또는 더 큰 크기를 갖는다면, 중심과 좌상 모션 벡터들은 같은 값을 갖는다. 도 2는 병치된 블록이 64개의 4x4 블록들로 세분화되고, 그 각각이 그 자신의 모션 벡터를 갖는 것을 도시한다. 이 병치된 블록은 인코딩할 32x32 현재 블록에 대해 이용되고, 선택된 시간적 예측기는 병치된 블록의 중심에 있는 섀이딩된 4x4 블록의 모션 벡터이다.
좌상 대신에 파티션의 중심을 선택하는 목적은 병치된 블록의 모션의 더 양호한 표현을 구하기 위해서이다. 이론적으로, 블록의 중심은, 그것이 블록의 무게중심(barycentre)이기 때문에, 블록의 더 양호한 표현이다. 그러나, 병치된 블록으로부터의 시간적 예측기는 AMVP의 예측기들의 집합에 있는 유일한 예측기는 아니다.
Jian-Liang Lin, Yu-Pao Tsai, Yu-Wen Huang, Shawmin Lei, (MediaTek Inc.), "Improved Advanced Motion Vector Prediction", JCTVC-D125, Daegu, KR, 20-28 January, 2011은 도 3에 도시된 바와 같이 몇 개의 시간적 블록들을 추가하는 것을 제안한다. 4개의 예측기들이 제안되는데, 시간적 병치된 좌상(T), 및 3개의 다른 코너들(좌하(I), 우하(H), 우상(E))이 그들이다. 이러한 방식으로, 예측기들은 예측기들의 집합에 추가되고, 그들은 레이트-왜곡 기준에 따라 서로 경쟁한다.
모션 벡터 예측기들의 집합을 개선하기 위한 상기의 두 가지 제안 중 어느 것도 모션 벡터 메모리의 압축을 수반하지 않는다.
종래 기술의 단점들 중 하나 이상을 해결하는 것이 바람직하다.
또한 모션 벡터 메모리 요구량을 감소시키는 것이 요망된다. 바람직하게, 이 감소는 추가적 코딩 효율의 패널티가 전혀 없이 또는 거의 없이 달성되어야 한다.
본 발명의 제1 양태에 따르면, 복수의 다른 참조 프레임들을 지정하도록 허가된 제1 참조 프레임의 모션 벡터들을 저장하는 방법으로서, 초기에 상기 제1 참조 프레임의 블록이 2개의 모션 벡터를 가질 때, 상기 2개의 모션 벡터 중 하나를 선택하는 단계를 포함하고, 선택되지 않은 모션 벡터는 저장되지 않는, 모션 벡터 저장 방법이 제공된다.
본 발명의 제2 양태에 따르면, 디지털 이미지들의 시퀀스를 비트스트림으로 인코딩하는 방법으로서, 이미지의 적어도 하나의 부분은 참조 이미지 부분에 대한 모션 보상에 의해 인코딩되고, 상기 방법은, 본 발명의 상기의 제1 양태를 채택하는 모션 벡터 저장 방법을 포함하는, 인코딩 방법이 제공된다.
본 발명의 제3 양태에 따르면, 디지털 이미지들의 인코딩된 시퀀스를 포함하는 비트스트림을 디코딩하는 방법으로서, 이미지의 적어도 하나의 부분은 참조 이미지에 대한 모션 보상에 의해 인코딩되고, 상기 방법은, 본 발명의 상기의 제1 양태를 채택하는 모션 벡터 저장 방법을 포함하는, 디코딩 방법이 제공된다.
본 발명의 제4 양태에 따르면, 복수의 다른 참조 프레임들을 지정하도록 허가된 제1 참조 프레임의 모션 벡터들을 저장하는 장치로서, 상기 제1 참조 프레임의 블록이 2개의 모션 벡터를 가질 때, 상기 2개의 모션 벡터 중 하나를 선택하도록 동작하는 수단을 포함하고, 선택되지 않은 모션 벡터는 저장되지 않는, 모션 벡터 저장 장치가 제공된다.
본 발명의 제5 양태에 따르면, 디지털 이미지들의 시퀀스를 비트스트림으로 인코딩하는 장치로서, 이미지의 적어도 하나의 부분은 참조 이미지 부분에 대한 모션 보상에 의해 인코딩되고, 상기 장치는, 본 발명의 상기의 제4 양태를 채택하는 모션 벡터 저장 장치를 포함하는, 인코딩 장치가 제공된다.
본 발명의 제6 양태에 따르면, 디지털 이미지들의 인코딩된 시퀀스를 포함하는 비트스트림을 디코딩하는 장치로서, 이미지의 적어도 하나의 부분은 참조 이미지에 대한 모션 보상에 의해 인코딩되고, 상기 장치는, 본 발명의 상기의 제4 양태를 채택하는 모션 벡터 저장 장치를 포함하는, 디코딩 장치가 제공된다.
본 발명의 제7 양태에 따르면, 컴퓨터 또는 프로세서에서 실행할 때 상기 컴퓨터 또는 프로세서에 본 발명의 상기의 제1 양태, 제2 양태, 및 제3 양태 중 어느 하나를 채택하는 방법을 수행시키는 프로그램이 제공된다.
본 발명의 제1 다른 양태에 따르면, 복수의 다른 참조 프레임들을 지정하도록 허가된 제1 참조 프레임의 모션 벡터들을 저장하는 방법으로서,
상기 다른 참조 프레임들 중 하나를 선택하는 선택 단계,
선택된 상기 다른 참조 프레임 이외의 상기 다른 참조 프레임들 중 하나를 지정하는 상기 제1 참조 프레임의 각각의 모션 벡터를 선택된 참조 프레임에 맵핑하여, 맵핑 후에 상기 제1 참조 프레임의 모든 모션 벡터들이 상기 선택된 참조 프레임을 지정하도록 하는, 맵핑 단계, 및
상기 맵핑 단계에서 행해진 모션 벡터들을 저장하는 단계를 포함하는, 모션 벡터 저장 방법이 제공된다.
그러한 방법은 각각의 모션 벡터에 대한 참조 프레임 인덱스를 저장할 필요가 없게 하므로, 모션 벡터 메모리 크기를 감소시킨다.
예를 들어, 일 실시 형태에 있어서, 상기 모션 벡터들에 대한 각각의 참조 프레임들을 식별하는 임의의 정보를 저장하지 않고, 상기 모션 벡터들이 저장된다.
다른 참조 프레임이 다수의 방식으로 선택될 수 있다.
첫째, 상기 선택된 다른 참조 프레임은, 상기 제1 참조 프레임에 시간적으로 가장 가까운 상기 다른 참조 프레임들 중 하나일 수 있다. 일반적으로, 이 가장 가까운 프레임은 상기 제1 참조 프레임 내의 최고 개수의 모션 벡터들에 의해 지정되는 것일 것이며, 이에 의해 맵핑으로부터 발생하는 프로세싱 부담을 줄일 수 있다.
둘째, 상기 다른 참조 프레임의 선택은 프레임들이 디코더에 의해 디코딩될 순서에 의존할 수 있다. 이것은 프레임들의 디코딩 순서가 프레임들의 표시 순서와 다를 때 유리할 수 있다. 예를 들어, 상기 선택된 다른 참조 프레임은, 상기 제1 참조 프레임으로부터 최소의 영상 순서 카운트(Picture Order Count: POC) 차이를 갖는 상기 다른 참조 프레임들 중 하나일 수 있다.
셋째, 상기 선택된 다른 참조 프레임은, 상기 제1 참조 프레임 내의 최고 개수의 모션 벡터들에 의해 지정되는 상기 다른 참조 프레임들 중 하나일 수 있다. 이것은 결국 최소 개수의 모션 벡터들이 맵핑되도록 하기 때문에 맵핑으로부터의 프로세싱 부담을 줄인다.
넷째, 상기 선택된 다른 참조 프레임은, 최고의 화질을 갖는 상기 다른 참조 프레임들 중 하나일 수 있다. 이것은 디코딩 후의 화질을 향상시킬 것이다.
제1 실시 형태에 있어서, 상기 맵핑은 상기 선택된 다른 참조 프레임 이외의 상기 다른 참조 프레임들 중 하나를 지정하는 상기 제1 참조 프레임의 각각의 모션 벡터를 스케일링(scaling)하는 단계를 포함한다. 예를 들어, 상기 스케일링은 상기 제1 참조 프레임, 상기 선택된 참조 프레임, 및 상기 선택된 다른 참조 프레임 이외의 상기 다른 참조 프레임 간의 시간적 관계에 의존할 수 있다.
다른 실시 형태에 있어서, 상기 다른 참조 프레임들은 미래 및 과거의 참조 프레임들을 포함하고, 상기 선택된 참조 프레임이 미래의 것이고, 상기 선택된 참조 프레임 이외의 다른 참조 프레임이 과거의 것일 때, 또는 상기 선택된 참조 프레임이 과거의 것이고, 상기 선택된 참조 프레임 이외의 다른 참조 프레임이 미래의 것일 때, 상기 맵핑은 모션 벡터의 사인을 변경하는 단계를 포함한다.
그러한 실시 형태는 과거 및 미래 둘 다에 속하는 참조 프레임들을 갖는 계층적 B 영상 구조의 경우에 이용하기 위해 적합하다.
다른 실시 형태에 있어서, 초기에 상기 제1 참조 프레임의 블록이 2개의 모션 벡터를 가질 때 유용하며, 맵핑은 또한 상기 2개의 모션 벡터 중 하나를 선택하는 단계를 포함하고, 선택되지 않은 모션 벡터는 저장되지 않는다. 이것은, 어느 모션 벡터가 사용되는지를 시그널링하기 위해 어떠한 비트도 저장할 필요가 없기 때문에, 모션 벡터 메모리 크기를 더 감소시킬 수 있다.
다른 실시 형태에 있어서, 상기 제1 참조 프레임 내의 인트라-코딩된 블록 또는 각각의 인트라-코딩된 블록에 대해 상기 선택된 참조 프레임을 지정하는 더미 모션 벡터를 생성하여, 상기 제1 참조 프레임의 모든 블록들이 인터 코딩되도록 함으로써, 인터/인트라 코딩을 시그널링하기 위한 블럭마다의 비트가 필요없다. 이것은, 인트라 또는 인터 코딩이 사용되는지를 시그널링하기 위해 어떠한 비트도 저장할 필요가 없기 때문에, 모션 벡터 메모리 크기를 더 감소시킬 수 있다.
다른 실시 형태에 있어서, 상기 제1 참조 이미지의 대표 모션 벡터들을 선택하고, 상기 대표 모션 벡터들을 저장하지만 상기 제1 참조 이미지의 다른 모션 벡터들을 저장하지 않는다. 이것은, 불필요한 모션 벡터들이 저장되지 않기 때문에, 모션 벡터 메모리 크기를 더 감소시킬 수 있다.
본 발명의 제2 다른 양태에 따르면, 복수의 다른 참조 프레임들을 지정하도록 허가된 제1 참조 프레임의 모션 벡터들을 저장하는 방법으로서, 상기 제1 참조 프레임 내의 인트라-코딩된 블록 또는 각각의 인트라-코딩된 블록에 대해 상기 선택된 참조 프레임을 지정하는 더미 모션 벡터를 생성하여, 해당 상기 제1 참조 프레임의 모든 블록들이 인터 코딩되도록 하는 단계를 포함함으로써, 인터/인트라 코딩을 시그널링하기 위한 블럭마다의 비트가 필요없는, 모션 벡터 저장 방법이 제공된다.
이것은, 인트라 또는 인터 코딩이 사용되는지를 시그널링하기 위해 어떠한 비트도 저장할 필요가 없기 때문에, 모션 벡터 메모리 크기를 감소시킬 수 있다. 그러한 방법에 있어서, 본 발명의 제1 양태의 선택 단계 및 맵핑 단계를 수행하는 것은 필수적이지 않다.
본 발명의 제3 다른 양태에 따르면, 디지털 이미지들의 시퀀스를 비트스트림으로 인코딩하는 방법으로서, 이미지의 적어도 하나의 부분은 참조 이미지 부분에 대한 모션 보상에 의해 인코딩되고, 상기 방법은, 본 발명의 제1 다른 양태 또는 제2 다른 양태의 모션 벡터 저장 방법을 포함하는, 인코딩 방법이 제공된다.
본 발명의 제4 다른 양태에 따르면, 디지털 이미지들의 인코딩된 시퀀스를 포함하는 비트스트림을 디코딩하는 방법으로서, 이미지의 적어도 하나의 부분은 참조 이미지에 대한 모션 보상에 의해 인코딩되고, 상기 방법은, 본 발명의 제1 다른 양태 또는 제2 다른 양태의 모션 벡터 저장 방법을 포함하는, 디코딩 방법이 제공된다.
본 발명의 제5 다른 양태에 따르면, 복수의 다른 참조 프레임들을 지정하도록 허가된 제1 참조 프레임의 모션 벡터들을 저장하는 장치로서,
상기 다른 참조 프레임들 중 하나를 선택하는 선택 수단,
선택된 상기 다른 참조 프레임 이외의 상기 다른 참조 프레임들 중 하나를 지정하는 상기 제1 참조 프레임의 각각의 모션 벡터를 상기 선택된 참조 프레임에 맵핑하여, 맵핑 후에 상기 제1 참조 프레임의 모든 모션 벡터들이 상기 선택된 참조 프레임을 지정하도록 하는, 맵핑 수단, 및
상기 맵핑 수단에 의해 행해진 모션 벡터들을 저장하는 수단을 포함하는 모션 벡터 저장 장치가 제공된다.
본 발명의 제6 다른 양태에 따르면, 복수의 다른 참조 프레임들을 지정하도록 허가된 제1 참조 프레임의 모션 벡터들을 저장하는 장치로서,
상기 제1 참조 프레임 내의 인트라-코딩된 블록 또는 각각의 인트라-코딩된 블록에 대해 상기 선택된 참조 프레임을 지정하는 더미 모션 벡터를 생성하여, 상기 제1 참조 프레임의 모든 블록들이 인터 코딩되도록 하는 수단을 포함함으로써, 인터/인트라 코딩을 시그널링하기 위한 블럭마다의 비트가 필요없는, 모션 벡터 저장 장치가 제공된다.
본 발명의 제7 다른 양태에 따르면, 디지털 이미지들의 시퀀스를 비트스트림으로 인코딩하는 장치로서, 이미지의 적어도 하나의 부분은 참조 이미지 부분에 대한 모션 보상에 의해 인코딩되고, 상기 장치는, 본 발명의 제5 다른 양태 또는 제6 다른 양태의 모션 벡터 저장 장치를 포함하는, 인코딩 장치가 제공된다.
본 발명의 제8 다른 양태에 따르면, 디지털 이미지들의 인코딩된 시퀀스를 포함하는 비트스트림을 디코딩하는 장치로서, 이미지의 적어도 하나의 부분은 참조 이미지에 대한 모션 보상에 의해 인코딩되고, 상기 장치는, 본 발명의 제5 다른 양태 또는 제6 다른 양태의 모션 벡터 저장 장치를 포함하는, 디코딩 장치가 제공된다.
본 발명은 컴퓨터 또는 프로세서에서 실행할 때 상기 컴퓨터 또는 프로세서에 전술한 방법들 중 임의의 것을 수행시키거나, 또는 프로그램가능한 장치에 로딩될 때 그 장치가 전술한 장치들 중 임의의 것이 되게 하는 프로그램들로 확장된다. 프로그램은 홀로 제공될 수 있거나, 또는 수송 매체에 의해 수송된다. 수송 매체는 저장 또는 기록 매체일 수 있거나, 또는 신호 등의 전송 매체일 수 있다. 본 발명을 실시하는 프로그램은 일시적 또는 비일시적일 수 있다.
따라서, 전술한 바와 같이, 참조 프레임의 프레임 인덱스를 고려하여 시간적 예측기들의 모션 벡터들에 관련된 정보를 압축할 수 있다.
특히, 단지 하나의 참조 인덱스가 이용되고 그 결과 참조 인덱스를 시그널링할 필요가 없게 되는 방식으로, 예를 들면, 시간적 예측기의 모션 벡터들을 스케일링함으로써, 참조 인덱스들의 코딩을 제거할 수 있다.
이것은 모션 벡터 메모리를 감소시킬 수 있게 해준다.
이제 예시적으로 첨부 도면을 참조한다.
도 1은 전술한, 모션 벡터 메모리 요구량을 감소시키기 위한 종래의 제안을 설명할 때 이용하기 위한 개략도이다.
도 2는 또한 전술한, 모션 벡터 예측기들의 집합을 개선하기 위한 종래의 제안을 설명할 때 이용하기 위한 개략도이다.
도 3은 또한 전술한, 모션 벡터 예측기들의 집합을 개선하기 위한 다른 종래의 제안을 설명할 때 이용하기 위한 개략도이다.
도 4는 본 발명의 실시 형태에 따른 인코더 또는 디코더를 구현하기에 적합한 장치의 부분들을 도시한다.
도 5는 본 발명의 실시 형태에 따른 인코더의 부분들의 블록도를 도시한다.
도 6은 도 5의 인코더에 의해 처리된 이미지들의 시퀀스를 도시한다.
도 7은 본 발명의 실시 형태에 따른 디코더의 부분들의 블록도를 도시한다.
도 8은 도 5의 인코더와 도 7의 디코더에 의해 이용될 수 있는 모션 벡터 예측기들의 집합을 결정하는 방법을 설명할 때 이용하기 위한 개략도이다.
도 9는 도 8의 방법이 이용될 때 도 5의 인코더에 의해 수행되는 단계들의 흐름도이다.
도 10은 도 8의 방법이 이용될 때 도 7의 디코더에 의해 수행되는 단계들의 흐름도이다.
도 11은 모션 벡터들의 개략도이다.
도 12는 본 발명의 제1 실시 형태에 있어서 도 11의 모션 벡터들이 맵핑되는 방법을 설명할 때 이용하기 위한 모션 벡터들의 개략도이다.
도 13은 모션 벡터들의 다른 개략도이다.
도 14는 본 발명의 제5 실시 형태에 있어서 도 13의 모션 벡터들이 맵핑되는 방법을 설명할 때 이용하기 위한 모션 벡터들의 개략도이다.
도 15는 모션 벡터들의 또 다른 개략도이다.
도 16은 본 발명의 제6 실시 형태에 있어서 도 15의 모션 벡터들이 맵핑되는 방법을 설명할 때 이용하기 위한 모션 벡터들의 개략도이다.
도 4는 본 발명의 실시 형태에 따른 인코더를 구현하거나 또는 본 발명의 실시 형태에 따른 디코더를 구현하기 위해 적응되는 장치(1000)의 도면을 도시한다. 장치(1000)는 예를 들어, 마이크로 컴퓨터, 워크스테이션, 또는 가벼운 휴대용 장치이다.
장치(1000)는 통신 버스(1113)를 포함하며, 통신 버스에는 바람직하게 다음의 것들이 연결된다.
-마이크로프로세서 등의 CPU로 표기되는 중앙 처리 장치(1111),
-발명을 구현하기 위한 하나 이상의 컴퓨터 프로그램을 저장하는 판독 전용 메모리(read only memory: ROM)(1107),
-본 발명의 방법의 실행가능한 코드를 저장하고, 디지털 이미지들의 시퀀스를 인코딩하는 방법 및/또는 비트스트림을 디코딩하는 방법을 구현하기 위해 필요한 변수들 및 파라미터들을 기록하기 위해 적응되는 레지스터들을 제공하는 랜덤 액세스 메모리(random access memory: RAM)(1112), 및
-처리될 디지털 데이터가 전송되는 통신 네트워크(1103)에 연결된 통신 인터페이스(1102).
모션 벡터 메모리(motion vector memory: MVM)(1112a)는 RAM(1112)의 일부를 형성하고, 참조 프레임들의 모션 벡터들을 저장하기 위해 이용된다.
선택적으로, 장치(1000)는 또한 다음의 구성 요소들을 가질 수 있다.
-본 발명을 구현하는 프로그램을 포함할 수 있고, 본 발명의 실시 중에 이용되거나 또는 생성되는 데이터를 포함할 수 있는, 하드 디스크 등의 데이터 저장 수단(1104),
-디스크(1106)로부터 데이터를 판독하거나 또는 상기 디스크에 데이터를 기록하기 위해 적응되는 디스크 드라이브인, 디스크(1106)에 대한 디스크 드라이브(1105),
-데이터의 표시, 및/또는 키보드(1110)에 의해 또는 임의의 다른 포인팅 수단에 의해 유저와의 그래픽 인터페이스로서의 기능을 제공하기 위한 스크린(1109).
장치(1000)는 예를 들어, 디지털 카메라(1100) 또는 마이크로폰(1108) 등의 다양한 주변 장치들에 연결될 수 있고, 그 각각은 장치(1000)에 멀티미디어 데이터를 제공하기 위해 입력/출력 카드(도시되지 않음)에 연결된다.
통신 버스는 장치(1000)에 포함된 또는 그것에 연결된 여러 요소들 간의 통신 및 상호 운용성을 제공한다. 버스의 표현은 한정되지 않으며, 특히 중앙 처리 장치가 장치(1000)의 임의의 요소에 명령들을 직접 통신할 수 있거나, 또는 장치(1000)의 다른 요소를 이용하여 통신할 수 있다.
디스크(1106)는, 실행되면, 구현될 본 발명에 따른 디지털 이미지들의 시퀀스를 인코딩하는 방법 및/또는 비트스트림을 디코딩하는 방법을 가능하게 하는 하나 이상의 프로그램을 저장하도록 적응되고 탈착가능하고, 장치 내에 통합되거나 또는 통합되지 않으며, 마이크로컴퓨터 또는 마이크로프로세서에 의해 판독될 수 있는, 예를 들어, 재기입가능하거나 또는 불가능한 컴팩트 디스크(CD-ROM), ZIP 디스크 또는 메모리 카드 등의 정보 매체에 의해, 그리고 일반적인 용어로는, 정보 저장 수단에 의해 대체될 수 있다.
실행가능한 코드는 전술한 바와 같이, 예를 들면, 디스크(1106) 등의 탈착가능한 디지털 매체, 또는 하드 디스크(1104), 또는 판독 전용 메모리(1107) 중 어느 것에 저장될 수 있다. 변형 예에 따르면, 프로그램들의 실행가능한 코드가, 실행되기 전에, 하드 디스크(1104) 등의 장치(1000)의 저장 수단들 중 하나에 저장되기 위해, 인터페이스(1102)를 통해 통신 네트워크(1103)에 의해 수신될 수 있다.
중앙 처리 장치(1111)는 본 발명에 따른 프로그램 또는 프로그램들의 소프트웨어 코드의 일부들 또는 명령어들, 및 전술한 저장 수단들 중 하나에 저장되어 있는 명령어들의 실행을 제어하고, 지시하도록 적응된다. 전원을 킬 때, 비휘발성 메모리 예를 들어, 하드 디스크(1104) 또는 판독 전용 메모리(1107)에 저장되어 있는 프로그램 또는 프로그램들이 랜덤 액세스 메모리(1112)에 전송되고, 그 후 랜덤 액세스 메모리는 프로그램 또는 프로그램들의 실행가능한 코드뿐만 아니라, 본 발명을 구현하는 데 필요한 변수들 및 파라미터들을 저장하는 레지스터들을 포함한다.
이 실시 형태에 있어서, 장치는 본 발명을 구현하는 소프트웨어를 이용하는 프로그래밍가능한 장치이다. 그러나, 대안적으로, 본 발명은 하드웨어(예를 들어, 주문형 반도체(Application Specific Integrated Circuit) 또는 ASIC)로 구현될 수 있다.
도 5는 본 발명의 실시 형태에 따른 인코더(30)의 블록도를 도시한다. 인코더는 연결된 모듈들에 의해 표현되며, 각 모듈은 본 발명의 실시 형태를 구현하는 방법의 해당 단계를 예를 들어, 장치(1000)의 CPU(1111)에 의해 실행되는 프로그래밍 명령어들의 형태로 구현하도록 적응된다.
디지털 이미지들 i0 내지 in의 원래 시퀀스(301)는 인코더(30)에 의해 입력으로서 수신된다. 각 디지털 이미지는 픽셀들로서 알려져 있는, 샘플들의 집합으로 표현된다.
비트스트림(310)은 인코더(30)에 의해 출력된다.
비트스트림(310)은 복수의 인코딩 단위들 또는 슬라이스들을 포함하고, 각 슬라이스는 슬라이스를 인코딩하기 위해 이용되는 인코딩 파라미터들의 인코딩 값들의 슬라이스 헤더, 및 인코딩된 비디오 데이터를 포함하는 슬라이스 본문을 포함한다. HEVC에 있어서, 슬라이스들은, 중첩하지 않는 최대 코딩 단위들(LCUs), 일반적으로 크기가 64 픽셀 x 64 픽셀인 블록들로 분할된다. 각각의 LCU는 차례로 쿼드트리 분해를 이용하여 반복적으로 더 작은 가변 크기 코딩 단위들(CUs)로 분할될 수 있다. 각각의 CU는 최대 2개의 대칭 직사각형 분할 단위들(Partition Units: PUs)로 더 파티션될 수 있다.
도 6은 디지털 이미지들 i의 시퀀스(301), 슬라이스들(103), LCUs(104), CUs(105), PUs(106), 및 TUs(107)를 도시한다. TU(Transform Unit: 변환 단위)는 CU의 변환 및 양자화를 위해 PU와는 별도로 정의된다.
다음의 설명에서, 우리는 HEVCA에 이용되는 특정 용어 CU 및 PU 대신에 "블록"이라는 용어를 이용하며, CU 또는 PU는 픽셀들의 블록이라는 것을 유의한다.
도 5를 다시 참조하면, 입력 디지털 이미지들 i는 모듈(302)에 의해 블록들로 분할된다. 이 블록들은 이미지 일부분들이며, 가변 크기(예를 들면, 4x4, 8x8, 16x16, 32x32, 64x64)일 수 있다.
코딩 모드는 모듈(306)에 의해 각 입력 블록에 대해 선택된다. 모듈(306)은 나중에 설명한다.
공간적 예측적 코딩 또는 인트라 코딩, 및 시간적 예측적 코딩 또는 인터 코딩의 두 가지 코딩 모드의 패밀리가 있다. 가능한 코딩 모드들이 테스트된다.
모듈(303)은 인트라 예측을 구현하는데, 인코딩할 주어진 블록은 "인트라" 예측기에 의해, 이미 인코딩된 정보로 구성되는, 예를 들어, 상기 인코딩할 블록의 이웃의 픽셀들로부터 계산되는 픽셀들의 블록에 의해 예측된다. 모듈(306)에 의해 인트라 코딩이 선택되면, 선택된 인트라 예측기의 지시, 및 주어진 블록과 그의 예측기 간의 차이가 인코딩된다.
모듈들(304, 305)에 의해 시간적 예측이 구현된다. 우선, 참조 이미지들의 집합(316) 중에서 참조 이미지가 선택되고, 인코딩할 주어진 블록에 가장 가까운 영역인, 참조 영역이라고도 칭해지는, 참조 이미지의 일부분이 모션 추정 모듈(304)에 의해 선택된다. 일반적으로, 모션 추정 모듈(304)은 블록 매칭 알고리즘(block matching algorithm: BMA)을 이용한다.
"인트라" 코딩과 관련하여, 두 가지의 예측 타입이 가능하다. 모노 예측(P-타입)은 하나의 참조 이미지로부터의 하나의 참조 영역을 참조하여 블록을 예측하는 것으로 구성된다. 양방향 예측(B-타입)은 하나 또는 두 개의 참조 이미지로부터의 두 개의 참조 영역을 참조하여 블록을 예측하는 것으로 구성된다. 모듈(304)에서 현재 블록과 참조 이미지(316)들 간의 모션의 추정은, 이 참조 이미지들 중 하나 또는 여러 개에서, 현재 블록의 예측기들로서 이용하기 위한 하나의(P-타입) 또는 여러 개의(B-타입) 픽셀 블록을 식별하기 위해 행해진다. 여러 개의 블록 예측기들이 이용되는(B-타입) 경우에, 그들은 하나의 예측 블록을 생성하기 위해 병합된다. 이용되는 참조 이미지들은 이미 코딩된 후에 (디코딩에 의해) 재구성된 비디오 시퀀스 내의 이미지들이다.
잔차 블록이라고도 칭해지는, 선택된 참조 영역과 주어진 블록 간의 차이는 모션 보상 모듈(305)에 의해 계산된다. 선택된 참조 영역은 모션 벡터에 의해 지시된다.
모듈(306)에 의해 인터 예측이 선택된다면, 모션 벡터와 잔차 블록에 관련된 정보가 인코딩된다. 비트레이트를 더 감소시키기 위해, 모션 벡터는 모션 벡터 예측기에 대한 차이에 의해 인코딩된다. 모션 정보 예측기들이라고도 칭해지는 모션 벡터 예측기들의 집합은 모션 벡터 예측 및 코딩 모듈(317)에 의해 모션 벡터 필드(318)로부터 획득된다. 모듈(317)의 동작은 도 8 및 도 9와 관련하여 나중에 상세히 설명한다.
코딩 모드의 선택 모듈(306)은 인트라 및 인터 예측 모드들 중 최선의 모드가 어느 것인지를 결정하기 위해 레이트-왜곡 기준 등의 인코딩 비용 기준을 이용한다. 변환(307)은 잔차 블록에 적용되며, 획득된 변환된 데이터는 그 후 모듈(308)에 의해 양자화되고 모듈(309)에 의해 엔트로피 인코딩된다. 변환은 블록에 포함된 전술한 변환 단위(TU)에 적용된다. 도 6에 도시된 바와 같이, TU는 소위 잔차 쿼드트리(Residual QuadTree: RQT) 분해를 이용하여 더 작은 TUs로 분할될 수 있다. HEVC에서, 일반적으로 2 또는 3 레벨의 분해가 이용되며, 공인된 변환 크기들은 32x32, 16x16, 8x8, 및 4x4 중의 것이다. 변환 기저(transform basis)는 이산 코사인 변환 DCT로부터 파생된다.
마지막으로 인코딩할 현재 블록의 인코딩된 잔차 블록은, 이용된 예측기에 관련된 정보와 함께, 비트스트림(310)에 삽입된다. 'SKIP(스킵)' 모드에서 인코딩된 블록들에 대해서는, 임의의 잔차 블록 없이, 예측기에 대한 레퍼런스만이 비트스트림에 인코딩된다.
"인트라" 예측기들을 계산하기 위해 또는 "인터" 예측기들에 대한 모션 추정을 행하기 위해, 인코더는 이미 인코딩된 블록들의 디코딩을 소위 "디코딩" 루프(311 내지 315)에 의해 수행한다. 이 디코딩 루프는 양자화된 변환된 잔차들로부터 블록들 및 이미지들을 재구성할 수 있게 한다.
양자화된 변환된 잔차는 모듈(308)에 의해 제공된 것과는 역의 양자화를 적용함으로써 모듈(311)에서 양자화해제되고, 모듈(307)의 것과는 역의 변환을 적용함으로써 모듈(312)에서 재구성된다.
잔차가 "인트라" 코딩으로부터 발생한다면, 손실 있는 변환, 여기서는 양자화 작업으로부터 초래된 손실들에 의해 변형된 원래 블록에 대응하는 재구성된 블록을 복원하기 위해 모듈(313)에서, 이용된 "인트라" 예측기가 이 잔차에 가산된다.
한편 잔차가 "인터" 코딩으로부터 발생한다면, 현재 모션 벡터들에 의해 지정되는 블록들(이 블록들은 현재 이미지 인덱스들에 의해 참조되는 참조 이미지들(316)에 속함)이 병합된 후 모듈(314)에서 이 디코딩된 잔차에 가산된다. 이러한 방식으로, 양자화 작업으로부터 초래되는 손실들에 의해 변형된, 원래 블록이 구해진다.
구해진 잔차들의 심한 양자화에 의해 생성된 효과를 감소시키고 신호 품질을 개선하기 위해 재구성된 신호에 최종 루프 필터(315)가 적용된다. 루프 필터는 두 단계, 즉, "블록해제" 필터와 선형 필터링을 포함한다. 블록해제 필터링은 코딩에 의해 생성된 이 고주파수들을 가시적으로 감쇠시키기 위해 블록들 간의 경계들을 스무딩한다(smoothes). 선형 필터링은 인코더에서 적응적으로 결정된 필터 계수들을 이용하여 신호를 더 향상시킨다. 따라서, 이미지의 모든 픽셀 블록들이 디코딩되었을 때 이 이미지에 모듈(315)에 의한 필터링이 적용된다.
소위 재구성된 이미지들이라고 칭해지는 필터링된 이미지들은 그 후 현재의 비디오 시퀀스의 다음의 이미지들의 압축 동안 일어나는 후속의 "인터" 예측을 허용하기 위해 참조 이미지들(316)로서 저장된다.
HEVC의 맥락에서, 현재 이미지의 추정 및 모션 보상을 위해 몇 개의 참조 이미지(316)를 이용할 수 있다. 즉, 모션 추정이 N개의 이미지에 수행된다. 따라서 모션 보상을 위해 현재 블록의 최선의 "인터" 예측기들이, 복수의 참조 이미지들 중 일부에서 선택된다. 결과적으로, 두 개의 인접한 블록은 두 개의 별개의 참조 이미지로부터 나온 두 개의 예측 블록을 가질 수 있다. 이것이, 특히, 압축된 비트스트림에서, 예측기 블록에 이용되는 참조 이미지의 인덱스(모션 벡터 외에)가 지시되는 이유이다.
여러 참조 이미지들의 이용은 오류들에 대한 저항을 위한 툴 및 압축 효율 개선을 위한 툴 둘 다이다. VCEG 그룹은 참조 이미지의 개수를 4개까지로 한정하는 것을 권고한다.
도 7은 본 발명의 실시 형태에 따른 디코더(40)의 블록도를 도시한다. 디코더는 연결된 모듈들에 의해 표현되며, 각 모듈은 본 발명의 실시 형태를 구현하는 방법의 해당 단계를 예를 들어, 장치(1000)의 CPU(1111)에 의해 실행될 프로그래밍 명령어들의 형태로 구현하기 위해 적응된다.
디코더(40)는 인코딩 단위들을 포함하는 비트스트림(401)을 수신하고, 그 인코딩 단위들 각각은 인코딩 파라미터들의 정보를 포함하는 헤더, 및 인코딩된 비디오 데이터를 포함하는 본문을 포함한다. 도 5를 참조하여 전술한 바와 같이, 인코딩된 비디오 데이터는 엔트로피 인코딩되고, 모션 벡터 예측기들의 인덱스들이, 주어진 블록에 있어서, 소정의 비트수에 대해 인코딩된다. 수신된 인코딩된 비디오 데이터는 모듈(402)에 의해 엔트로피 디코딩되고, 모듈(403)에 의해 양자화해제된 다음 모듈(404)에 의해 역변환이 적용된다.
특히, 수신된 인코딩된 비디오 데이터가 디코딩할 현재 블록의 잔차 블록에 해당할 때, 인코더에 의해 이용되는 참조 영역을 찾기 위해 디코더는 또한 비트스트림으로부터 모션 예측 정보를 디코딩한다.
모듈(410)은 모션 예측에 의해 인코딩된 각각의 현재 블록에 대해 모션 벡터 디코딩을 적용한다. 도 5의 인코더의 모듈(317)과 마찬가지로, 모션 벡터 디코딩 모듈(410)은 현재 프레임으로부터의 그리고 참조 프레임으로부터의 모션 벡터들에 관련된 정보(도 5의 모션 벡터 필드(318)와 유사한 모션 벡터 필드(411))를 이용하여 모션 벡터 예측기들의 집합을 생성한다. 모듈(410)의 동작은 도 10을 참조하여 나중에 상세히 설명한다. 비트스트림이 손실 없이 수신되면, 디코더는 인코더와 정확히 같은 모션 벡터 예측기들의 동일한 집합을 생성한다. 현재 블록의 모션 벡터 예측기의 인덱스가 일단 획득되었으면, 전혀 손실이 발생하지 않았다면, 현재 블록과 연관된 모션 벡터의 실제 값이 디코딩될 수 있고 역의 모션 보상을 적용하는 모듈(406)에 제공된다. 디코딩된 모션 벡터에 의해 지시되는 참조 영역은 저장된 참조 이미지들(408) 중의 참조 이미지로부터 추출되고 또한 역의 모션 보상을 적용할 수 있도록 모듈(406)에 제공된다.
인트라 예측이 적용된 경우에, 역의 인트라 예측이 모듈(405)에 의해 적용된다.
인터 또는 인트라 모드에 따른 디코딩의 결과로서, 디코딩된 블록이 획득된다. 블록화해제 필터는, 인코더에서 적용된 블록화해제 필터(315)와 마찬가지로, 모듈(407)에 의해 적용된다. 디코딩된 비디오 신호(409)는 마침내 디코더(40)에 의해 제공된다.
도 8은 현재 HEVC 구현에 있어서 모션 벡터 예측기들 또는 모션 벡터 후보들의 집합의 생성을 설명할 때 이용하기 위한 개략도이다.
현재 HEVC 디자인에 있어서, 모션 벡터들은 복수의 모션 벡터들을 이용하여 예측적 코딩에 의해 코딩된다. 이 방법은 고급 모션 벡터 예측(Advanced Motion Vector Prediction: AMVP)이라고 불리며, 대형 블록 구조와 함께 새로운 HEVC 맥락을 고려하기 위해 적응되었다. 이 스킴은 스킵(Skip), 인터(Inter), 및 병합(Merge) 모드들에 적용된다.
이 방법은 주어진 집합으로부터 최선의 예측기의 선택을 허용하는데, 이 집합은 공간적 모션 벡터들 및 시간적 모션 벡터들로 구성된다. 공간적 및 시간적 예측기들의 최적의 개수는 여전히 HEVC 표준화 프로세스에서 평가되고 있다. 그러나, 본 출원의 출원일에, 현재의 구현은 스킵 모드 및 인터 모드에 대한 2개의 공간적 예측기들과 1개의 시간적 병치된 예측기, 및 병합 모드에 대한 4개의 공간적 예측기들 및 1개의 시간적 예측기를 포함한다. 본 발명은 AMVP의 현재 구현과 함께 이용되는 것으로 한정되지 않는다. AMVP의 구현은 하기에 설명된 현재의 것으로부터 변경될 수 있지만, 하기에 설명되는 본 발명의 실시 형태들은, 채택될 수 있는 다른 구현들과 마찬가지의 유리한 효과들 및 결과들을 제공할 것이라고 예상된다.
또한, 도입부에서 인용된 JCTVC-D072에 있어서, 현재 버전에서 하나만 이용하는 것 대신에 더 많은 시간적 예측기들을 이용하는 것이 제안되었다. 본 발명은 또한 이러한 변형에도 적용될 수 있다.
도 8에 나타낸 예측기 집합에 있어서, 상방 코너 블록들과 좌측 코너 블록을 포함하는 그 상방 및 좌측 블록들 중에서 두 개의 공간적 모션 벡터가 선택된다.
좌측 예측기는 블록 I, H, G, F 중에서 선택된다. 벡터가 존재하면, 그리고 참조 프레임 인덱스가 현재 블록의 참조 프레임 인덱스와 동일하다면(예측기로서 이용되는 모션 벡터가 현재 블록의 모션 벡터와 동일한 참조 프레임을 지정하는 것을 의미함), 모션 벡터 예측기가 이용가능한 것으로 간주된다. 선택은 하부(I)로부터 상부(F)까지의 검색에 의해 수행된다. 상기의 이용가능성 기준을 충족시키는 제1 예측기는 좌측 예측기(예측기 집합에 단지 하나의 좌측 예측기가 추가됨)로서 선택된다. 어떠한 예측기도 기준을 충족시키지 않는다면, 좌측 예측기는 이용가능하지 않은 것으로 간주된다.
인터 블록은 모노-예측(타입 P) 또는 양방향 예측(타입 B)일 수 있다. P-프레임에서, 인터 블록들은 오직 타입 P이다. B-프레임에서, 인터 블록들은 타입 P 또는 B이다. 타입 P 인터 블록에서, 참조 프레임들의 리스트 L0가 이용된다. 그의 모션 벡터는 이 리스트 중 하나의 참조 프레임을 참조한다. 따라서 참조 인덱스는 모션 벡터와 연관된다. 타입 B 인터 블록에서, 참조 프레임들의 두 개의 리스트 L0와 L1이 이용된다. 그 두 개의 모션 벡터 중 하나는 리스트 L0 중 하나의 참조 프레임을 참조하고, 그 두 개의 모션 벡터 중 다른 하나는 리스트 L1 중 하나의 참조 프레임을 참조한다. 따라서 참조 인덱스는 두 개의 모션 벡터 각각과 연관된다.
모션 벡터의 비-존재는 관련된 블록이 인트라 코딩되었거나, 또는 코딩된 모션 벡터와 연관된 리스트 내에 모션 벡터가 존재하지 않는다는 것을 의미한다. 예를 들어, B 프레임의 블록에 대해, 이웃 블록이 리스트 'L1' 내의 하나의 모션 벡터만을 갖고 현재 모션 벡터가 'L0' 내에 있다면, 현재 모션 벡터의 예측을 위해 이웃 모션 벡터가 존재하지 않는 것으로 간주된다.
이 경우에 우로부터 좌로 검색의 결과로서, 상측 예측기가 블록들 E, D, C, B, A 중에서 선택된다. 우로부터 좌로, 상기에서 정의된 이용가능성 기준을 충족시키는(예측기가 존재하고 현재 모션 벡터와 동일한 참조 프레임을 갖는다면) 제1 모션 벡터가 상측 예측기로서 선택된다. 어떠한 예측기도 기준을 유효화시키지 않는다면, 상측 예측기는 이용불가능한 것으로 간주된다.
코딩을 위해 그리고 표시를 위해 프레임들이 차별적으로 순서화되지 않을 때(그들은 재순서화 없이 계속적으로 인코딩됨), 가장 가까운 참조 프레임으로부터 시간적 모션 벡터 예측기가 나온다. 이 구성은 낮은 지연 구성(디코딩 프로세스와 표시 프로세스 사이의 지연이 없음)에 해당한다. B 프레임들의 경우에, 병치된 블록에 대해 2개의 모션 벡터들이 고려된다. 하나는 참조 이미지들의 제1 리스트 "L0"에 있고, 하나는 참조 이미지들의 제2 리스트 "L1"에 있다. 두 개의 모션 벡터가 모두 존재하면, 가장 짧은 시간적 거리를 갖는 모션이 선택된다. 두 개의 예측기들 모두가 동일한 시간적 거리를 갖는다면, "L0"로부터의 모션이 선택된다. 그 후, 필요하다면, 선택된 병치된 모션 벡터는, 인코딩할 블록을 포함하는 이미지와 참조 이미지 사이의 시간적 거리에 따라, 스케일링된다. 병치된 예측기가 존재하지 않는다면, 예측기는 이용불가능한 것으로 간주된다.
프레임들을 재순서화함으로써 더 많은 디코딩 지연을 수반하는 계층적 B 프레임 코딩을 위해, 2개의 병치된 모션 벡터가 고려될 수 있다. 이 둘은 모두 미래의 참조 프레임으로부터 나온다. 현재 프레임을 교차하는 모션 벡터가 선택된다. 두 개의 예측기가 모두 현재 프레임을 교차한다면, 가장 짧은 시간적 거리를 갖는 모션 벡터를 포함하는 블록이 선택된다. 두 개의 예측기가 모두 동일한 시간적 거리를 갖는다면, 제1 리스트 "L0"로부터의 모션 벡터가 선택된다. 필요하다면, 시간적 모션 벡터 예측기로서 선택된 병치된 모션 벡터는, 인코딩할 블록을 포함하는 이미지와 참조 이미지 사이의 시간적 거리에 따라, 스케일링된다. 병치된 예측기가 존재하지 않는다면, 예측기는 이용불가능한 것으로 간주된다.
낮은 지연 및 계층적 경우들 둘 다에 대해, 병치된 블록이 복수의 파티션들(잠재적으로, 병치된 블록은 복수의 모션 벡터를 포함함)로 분할될 때, 본 명세서의 도입부에서 언급한 바와 같이, 선택된 모션 벡터는 중심 파티션으로부터 나오는데, 중심의 시간적 예측기를 이용하는 것을 제안하는 Jung, G. Clare, (Orange Labs), "Temporal MV predictor modification for MV-Comp, Skip, Direct and Merge schemes", JCTVC-D164, Daegu, KR, 20-28 January, 2011, 및 WO 2011/001077A를 참조한다.
모션 벡터 예측기들을 생성하는 이 방법의 결과로서, 생성된 예측기들의 집합은 0, 1, 2 또는 3개의 예측기들을 포함할 수 있다. 어떠한 예측기도 집합에 포함될 수 없다면, 모션 벡터가 예측되지 않는다. 수직 성분 및 수평 성분 둘 다 예측 없이 코딩된다. (이것은 제로 값과 같은 예측기에 의한 예측에 해당한다.) 현재 HEVC 구현에서, 그 예측기의 인덱스는 0과 같다.
병합 모드는 당업자에게 잘 알려진 일반적인 스킵 모드와 유사한, 특별한 인터 코딩이다. 일반적인 스킵 모드에 비해 주요한 차이점은, 병합 모드가 참조 프레임 인덱스의 값과, 모션 벡터 예측기들의 방향(양방향 또는 단방향) 및 (단방향 방향을 갖는)리스트를 예측된 블록에 전파한다는 것이다. 고려된 참조 프레임이 항상 가장 가까운 선행의 참조 프레임이며 또한 Ref0라고도 불리는 (그리고 B 프레임들에 대해 항상 양방향인) 경우에, 예측기가 시간적 예측기가 아니라면, 병합 모드는 모션 벡터 예측기와 그의 참조 프레임 인덱스를 이용한다. 그래서 모션 벡터 예측기들에 의해 지정된 참조 프레임들로부터 블록 예측기들(복사된 블록들)이 나온다.
집합 내의 후보들의 순서화는 예측기 집합에서 최선의 모션 예측기를 시그널링하는 오버헤드를 줄이기 위해 중요하다. 집합의 순서화는, 제1 후보가 최선의 예측기로서 선택된다면 최소의 오버헤드가 발생하기 때문에, 가장 가능성 있는 모션 예측기를 제1 위치에 위치시키기 위해 현재의 예측 모드에 따라 적응된다. HEVC의 현재 구현에 있어서는, 시간적 예측기가 제1 위치이다.
집합 내의 후보의 수를 최소화함으로써 최선의 예측기의 인덱스를 시그널링하는 오버헤드를 더 줄일 수 있다. 중복된 모션 벡터들이 간단히 집합으로부터 제거된다.
병합 모드의 특별한 경우를 위해, 억제 프로세스가 모션 벡터 및 그의 참조 프레임의 값들을 참작한다. 두 개의 예측기가 중복 예측기들인지를 판정하기 위해, 두 개의 예측기에 대해 모션 벡터 및 그의 참조 인덱스의 두 개의 성분들이 비교되고, 이 세 개의 값들이 같을 경우에만, 하나의 예측기가 집합으로부터 제거된다. B 프레임에 대해, 이 등가 기준은 방향 및 리스트들에 확장된다. 그리하여, 그 두 개의 예측기들이 모두 같은 방향, 같은 리스트(L0, L1, 또는 L0 및 L1), 참조 프레임 인덱스들을 이용하고 같은 모션 벡터들의 값들(양방향에 대해 MV_L0 및 MV_L1)을 갖는다면, 그 예측기들은 중복 예측기들로서 간주된다.
AMVP에서, 인덱스 시그널링은 상기에서 설명한 모션 벡터 예측기 억제 프로세스의 결과에 의존한다. 실제로 시그널링에할당되는 비트수는 억제 후에 남은 모션 벡터의 수에 의존한다. 예를 들어, 억제 프로세스의 종료시에, 오직 하나의 모션 벡터가 남으면, 인덱스가 쉽게 디코더에 의해 검색될 수 있기 때문에, 모션 벡터 예측기 인덱스를 시그널링하기 위해 어떠한 오버헤드도 필요하지 않다. 아래의 표 1은 억제 프로세스 후의 예측기의 수에 따른 각 인덱스 코딩에 대한 코드워드를 나타낸다.
Figure 112015070748231-pat00001
도 9는 인코더측에서의 AMVP 스킴의 작업을 설명할 때 이용하기 위한 흐름도이다. 도 9의 작업들은, 달리 지시된 것을 제외하고는, 도 5의 모듈(317)에 의해 수행되며, 이 모듈(317)은 도 9의 모듈들(603, 605, 607, 610, 및 615)을 포함하는 것으로 간주될 수 있다. 도 9의 모션 벡터 필드(601)는 도 5의 모션 벡터 필드(318)에 대응한다. 도 9의 엔트로피 인코더 모듈(612)은 도 5의 엔트로피 인코더 모듈(309)에 대응한다. 도 9의 모든 작업들은 소프트웨어로 구현될 수 있고 장치(1000)의 중앙 처리 장치(1111)에 의해 실행될 수 있다.
모션 벡터 예측기 생성 모듈(603)은 인코딩할 현재 모션 벡터의 참조 프레임 인덱스(613)를 수신하고, 또한 모션 벡터 필드(601)를 수신한다. 모듈(603)은 도 8을 참조하여 상기에서 설명한 바와 같이, 참조 프레임 인덱스(613)를 참작하여 모션 벡터 예측기 집합(604)을 생성한다. 그 후 도 8을 참조하여 상기에서 설명한 바와 같이 억제 프로세스가 모듈(605)에 의해 적용된다. 모듈(605)은 감소된 모션 벡터 예측기 집합(606)을 생성한다. 감소된 집합(606) 내의 모션 벡터 예측기의 수(616)가 또한 출력된다. 모듈(607)은 인코딩할 모션 벡터(602)를 수신하고 감소된 모션 벡터 예측기 집합(606) 중에서 최선의 예측기의 레이트-왜곡(RD) 선택을 적용한다. 최선의 예측기가 선택되면, 모듈(607)은 모션 벡터 예측기 인덱스(608) 및 선택된 모션 벡터 예측기(609)를 출력한다. 그런 다음, 모듈(610)은 인코딩할 모션 벡터(602)와 선택된 모션 벡터 예측기(609) 간의 차이를 형성한다. 이 차이는 모션 벡터 잔차(611)이다. 그 후 모션 벡터 잔차는 모듈(612)에서 엔트로피 인코딩된다. 모듈(614)은 표 1을 참조하여 상기에서 설명한 바와 같이 감소된 모션 벡터 예측기 집합(606) 내의 예측기의 수(616)에 따라 모션 벡터 예측기 인덱스(608)를 코드워드(615)로 변환한다. 전술한 바와 같이, 이 집합이 오직 하나의 예측기만을 포함한다면, 어떠한 인덱스도 디코더측에 전달되지 않고, 코드워드가 생성되지 않는다. 집합이 하나 이상의 예측기를 포함한다면, 코드워드가 모듈(614)에서 생성된 후 모듈(612)에서 엔트로피 인코딩된다.
도 10은 디코더측에서의 AMVP 스킴의 작업들을 설명할 때 이용하기 위한 흐름도이다. 도 10의 작업들은 달리 지시된 것을 제외하고는, 도 7의 모듈(410)에 의해 수행되며, 이 모듈(410)은 도 10의 모듈들(702, 704, 711, 715)을 포함하는 것으로 간주될 수 있다. 도 10의 모션 벡터 필드(701)는 도 7의 모션 벡터 필드(411)에 대응한다. 도 10의 엔트로피 디코더 모듈(706)은 도 7의 엔트로피 디코더 모듈(402)에 대응한다. 도 10의 모든 작업들은 소프트웨어로 구현될 수 있고 장치(1000)의 중앙 처리 장치(1111)에 의해 실행될 수 있다.
모듈(702)은 현재 프레임과 이전 디코딩된 프레임들의 모션 벡터 필드(701)를 수신한다. 모듈(702)은 또한 디코딩할 현재 모션 벡터의 참조 프레임 인덱스(713)를 수신한다. 모듈(702)은 모션 벡터 필드(701) 및 참조 프레임 인덱스(713)에 기초하여 모션 예측기 집합(703)을 생성한다. 이 프로세싱은 인코더측에서 모듈(603)과 관련해서 설명한 것과 동일하다. 그 후 억제 프로세스가 모듈(704)에 의해 적용된다. 이 프로세싱은 인코더측에서 모듈(605)과 관련해서 설명한 것과 동일하다. 모듈(704)은 감소된 모션 벡터 예측기 집합(708)을 생성한다. 감소된 집합(708) 내의 모션 벡터 예측기(716)의 수도 출력된다.
엔트로피 디코더 모듈(706)은 비트스트림(705)으로부터 모션 벡터 잔차(707)를 추출하고 그것을 디코딩한다. 감소된 집합(708) 내의 예측기들(716)의 수는 그 후 모션 벡터 예측기 코드워드(714)(필요한 경우)를 추출하기 위해 모듈(706)에 의해 이용된다. 이 코드워드(존재한다면)는 모듈(715)에 의해, 변환을 위한 상기의 표 1을 이용하여, 감소된 집합 내의 예측기들(716)의 수에 따라 예측기 인덱스 값(709)으로 변환된다. 그 후 모션 벡터 예측기(710)가 예측기 인덱스 값(709)에 따라 감소된 집합(708)으로부터 추출된다. 모듈(711)은 디코딩된 모션 벡터(712)를 생성하기 위해 모션 잔차(707)에 모션 벡터 예측기를 가산한다.
상기의 설명으로부터, 병치된 모션 벡터 예측기의 유도를 위해 참조 프레임으로서 이용되는 각 프레임에 대해, 인코더측 및 디코더측에서 그의 관련 모션 벡터들을 저장할 필요가 있다는 것이 분명하다. 이것은, 첫째, 모션 표현의 입상도(현재 HEVC 디자인에서, 인터 모드의 최소 블록 크기는 4x4이다)와, 둘째, B_SLICE에 대한 모션 블록당 두 개의 벡터가 있다는 것을 고려할 때, 모션 벡터 메모리의 크기가 중요하게 되는 것에 이르게 한다. 4Kx2K의 해상도 영상에 대해, 그리고 4x4 블록당 설정된 하나의 모션 벡터의 입상도를 이용하여, 프레임당 26 Mbits가 필요한 것으로 추정된다. 이 큰 요구량은 다음의 계산으로부터 발생한다: 4096x2048 / 4x4(최소 블록 크기) x 2(방향) x 2 성분(Mvx, Mvy) x 12 bits.
또한, 모션 벡터들 자체들과는 별도로, 모션 벡터 예측기들에 관련된 다른 정보를 메모리에 유지할 필요도 있다.
● 병치된 블록은 인트라 모드일 수 있다: 이것은 병치된 모션 벡터가 존재하지 않는다는 것을 의미한다. 이 정보는 블록당 1비트를 나타낸다.
○ (4096*2048) / (4*4) * 2 방향 * 1 bit = 1 Mbits/frame
● 각각의 모션 벡터는 4개의 가능한 참조 인덱스 중 하나에 속한다. 이것은 벡터당 2비트의 시그널링을 나타낸다.
○ (4096*2048) / (4*4) * 2 방향 * 2 bits = 2 Mbits/frame
● 각각의 모션 벡터는, 역시 시그널링하는 것이 필요한 두 개의 다른 리스트에 속한다. 여기서 하나의 추가 비트가 필요하다.
○ (4096*2048) / (4*4) * 2 방향 * 1 bit = 1 Mbits/frame
모션 벡터 메모리는 고속 메모리이어야 하고, 전형적으로 RAM, 예를 들면, 도 4의 RAM(1112)의 일부이다. 이것은 특히 휴대용 장치들용으로 비싼 것이다.
제1 실시 형태
이제 본 발명의 제1 실시 형태를 설명한다.
제1 실시 형태에 있어서는, 동일한 프로세싱이 인코더 및 디코더에 공통적으로 적용된다. 이것은 이해가 되는데, 왜냐하면, 어떤 동작들은, 인코더 및 디코더가 어느 측에 정보를 전송하지 않으나 여전히 디코딩 가능한 비트스트림을 생성하도록 하기 위해 정확히 동일한 작업들을 수행하고 동일한 결과들로 귀결되는 것을 필요로 하기 때문이다.
제1 실시 형태는 참조 프레임의 프레임 인덱스를 고려하여 시간적 예측기들의 모션 벡터들에 관련된 정보를 압축한다.
단지 하나의 참조 인덱스가 이용되고 결과적으로 참조 인덱스를 시그널링할 필요가 없는 방식으로, 시간적 예측기의 모션 벡터들을 스케일링함으로써, 참조 인덱스들을 코딩할 필요가 회피된다.
도 11은 현재 프레임이 과거의 참조 프레임을 이용하여 코딩되는 IPPP 구조에 대한 HEVC의 현재 스펙에 있어서의 병치된 모션 벡터들을 묘사하는 도면이다.
이 도면에 있어서, 우리는 현재의 프레임 내의 인코딩할 몇 개의 블록들 U1 내지 U6와, 참조 프레임 RefC 내의 병치된 블록들 C1 내지 C6을 나타낸다. 참조 프레임 RefC 내의 병치된 블록들의 모션 벡터들 자체들은 하나 이상의 다른 참조 프레임들 내의 블록들을 참조하여 인코딩되었을 수 있다. 이 예에서, 이 다른 참조 프레임들은 참조 프레임들 Ref0, Ref1, Ref2, 및 Ref3이다.
다시 말해서, 현재 프레임의 모션 예측기는 이전의 프레임 RefC에 관련된 시간적 모션 예측기들을 이용하고 있다. 이것은 현재 프레임의 현재 블록의 모션 벡터를 예측하기 위해, 이전의 프레임 RefC의 시간적 예측기가 이용될 수 있다는 것을 의미한다.
이전의 프레임 RefC의 모션 벡터들에 대응하는 병치된 모션 벡터들은 각각의 화살표들에 의해 도 11에 도시된다. 이 예에서 화살표들은 네 개의 다른 참조 프레임들 Ref0, Ref1, Ref2, 및 Ref3을 지정한다. 그 도면에 도시된 바와 같이, 두 개까지의 모션 벡터들이 각각의 블록과 연관될 수 있다. 또한, 네 개의 다른 참조 프레임들 Ref0 내지 Ref3이 도 11에 도시되지만, 그 수는 네 개의 참조 프레임보다 많게 용이하게 확장될 수 있다. 이와 관련하여, 현재 JCT-VC 위원회는 미래의 HEVC 표준의 테스팅 조건에 대해 4개의 참조 프레임을 가질 것을 권고한다.
도 11로부터 명백한 바와 같이, 병치된 모션 벡터들을 그들의 성분 크기들에 의해 나타내는 것 외에도, 모션 벡터들이 지정하는 참조 프레임, 및 이 모션 벡터들에 관련된 어떤 부가 정보를 나타낼 필요가 있다. 다음의 표 2는 모션 벡터들에 관련된 모든 정보를 제시한다.
블록마다의 정보 비트수
2개의 벡터 성분 x 2개의 벡터 (예: V1A, V1B) 12 bits x 2 x 2 = 48 bits
2개의 벡터 (V1A, V1B)에 대한 4개의 가능한 참조 프레임 2 bits x 2 = 4 bits
시그널링 모드 (2 bits)
0: 인트라
1: 인터, 이용된 벡터: V1A
2: 인터, 이용된 벡터: V1B
3: 인터, 이용된 벡터: V1A & V1B
2 bits
합계 54 bits
종래, 인코딩 및 디코딩 프로세스 동안 그리고 현재 프레임의 병치된 모션 벡터들에 접근하기 위해, 도 11에 나타낸 이전의 프레임 RefC의 모든 모션 벡터들을 메모리에 저장하는 것이 필요한 것으로 간주된다. 이전 프레임의 이러한 병치된 모션 벡터들 V1A, V1B, V2A, V2B, V3A, V4A, V4B 및 V6A는 그들의 수평 및 수직 성분들에 의해, 또한 모션 벡터가 지정하는 참조 프레임(참조 프레임 인덱스)에 의해 특징지어진다.
도 12는 제1 실시 형태가 각각의 병치된 모션 벡터에 대한 참조 인덱스를 저장할 필요를 회피하는 방법을 설명하기 위한 개략도이다. 이 도면에서, RefC 내의 모션 벡터들은 가장 가까운 다른 참조 이미지 Ref0로 스케일링되었다. 여기서, "가장 가까운"이란 시간적 의미에서 가장 가까운 것을 의미한다. 본 예에서, Ref1을 지정하는 병치된 모션 벡터들 V1A, V3A, 및 V4B의 수평 성분 및 수직 성분이 2로 나누어지고, Ref2를 지정하는 병치된 모션 벡터들 V2A의 성분들이 3으로 나누어지고, Ref3을 지정하는 병치된 모션 벡터들 V4A의 성분들이 4로 나누어진다. 일반적으로, 참조 프레임들의 구성에 의존하여, 스케일링은 고려되는 참조 프레임들의 프레임 거리에 따라 수행된다.
따라서, 도 12의 예에서, 선택된 참조 프레임 Ref0 이외의 참조 프레임들 Ref1 내지 Ref3을 원래 지정했던 모든 벡터들의 성분들은 선택된 참조 이미지 Ref0를 지정하기 위해 크기가 조정되었다. 그 결과, 이제 동일한 참조 프레임 Ref0에서 모든 이용가능한 모션 벡터들이 끝남에 따라, 참조 인덱스가 유일하기 때문에 참조 프레임의 인덱스를 전송할 필요가 없다.
초기에 두 개의 모션 벡터를 갖는 블록들에 대해, 두 개의 모션 벡터 중 하나는 맵핑의 일부로서 선택된다는 것을 알 것이다. 예를 들어, 블록 C2의 경우, 초기에 두 개의 모션 벡터 V2A와 V2B가 있지만, 맵핑 후에는 V2B의 스케일링된 버전인 V2S가 있다. 이것은 모션 벡터들에 관련된 정보를 더 압축할 수 있게 한다. 단지 하나의 벡터를 갖는 것은, 우리가, 선택 후에 1비트 대신에 2비트를 이용했었던 "시그널링 모드"에 관련된 비트수를 줄일 수 있게 한다.
다음의 표 3에 요약된 바와 같이, 모션 벡터들에 관련된 이 모든 수정 사항들을 고려하면, 병치된 블록들에 관련된 모션 정보는 상당히 감소될 수 있다.
블록마다의 정보 비트수
2개의 벡터 성분 x 1개의 벡터 (예: V2S) 12 bits x 2 = 24 bits
1개의 단일 참조 프레임 이것을 시그널링할 필요 없음
시그널링 모드 (2 bits)
0: 인트라
1: 인터, 이용된 벡터, 예: V2S
1 bit
합계 25 bits
맵핑의 일부로서 하나의 모션 벡터를 선택하는 것이 필수적이지는 않고, 대안적으로 각각의 블록에 대해 2개의 벡터가 유지될 수 있다.
제2 실시 형태
제1 실시 형태에 있어서 원래 Ref1을 지정하는 RefC 내의 모션 벡터들을 맵핑할 참조 프레임으로서 참조 프레임 Ref0이 선택된다. 그것은 병치된 프레임에 가장 가까운 참조 프레임이다.
제2 실시 형태에 있어서, 유일한 참조 프레임의 선택은, 병치된 모션 벡터 예측기들(RefC)의 프레임과 선택된 참조 프레임 간의 최소 영상 순서 카운트(POC) 차이에 따라 행해진다. POC 파라미터는 디코더에서의 영상들의 디코딩 프로세스의 실제 순서를 나타낸다. 이 디코딩 순서는 특히 계층적 B 영상 구조가 이용될 때의 표시 순서와는 다를 수 있다.
제3 실시 형태
제3 실시 형태에 있어서, 병치된 모션 벡터들에 대한 레퍼런스로서 가장 많이 이용되는 참조 프레임이, 병치된 모션 벡터들을 맵핑하는 참조 프레임으로서 선택된다. 예를 들어, Ref0, Ref1, Ref2, 및 Ref3을 각각 지정하는 RefC 내의 블록들의 수들이 비교되고, Ref0, Ref1, Ref2, 또는 Ref3 중 더 높은 수를 갖는 참조 프레임이 선택된다. 그 수들이 같다면, 미리 정해진 규칙에 따라 하나의 참조 프레임이 선택될 수 있는데, 예를 들면, RefC에 가장 가까운 프레임이 선택될 수 있다.
이 실시 형태는 최소 수의 스캐일링 작업들로 이어질 것이기 때문에 프로세싱 부담을 줄일 수 있다.
제4 실시 형태
제4 실시 형태에 있어서, 가장 낮은 QP(최고 품질)를 갖는 참조 프레임이 병치된 모션 벡터들을 맵핑할 참조 프레임으로서 선택된다.
제5 실시 형태
본 발명은 또한 "미래"의 모션을 갖는 계층적 B 영상들에 적용될 수 있다.
도 13을 참조하면, 병치된 모션 벡터들은 참조 프레임 RefC의 블록들 C1 내지 C6과 연관된다.
이 도면은 과거(Ref2, Ref0)와 미래(Ref1, Ref3) 모두에 속하는 참조 프레임들을 갖는 계층적 B 영상 구조에 대한 프레임 코딩 표현을 도시한다. 도 11에서 IPPP 구조에 대해 설명한 바와 같이, 제5 실시 형태는 각각의 블록 C1 내지 C6의 모션 벡터들을 스케일링하여, 그들이 단일 참조 프레임에 있게 함으로써 임의의 참조 인덱스 전송을 회피한다.
제5 실시 형태에 있어서, 단일 참조 프레임 Ref1은 도 14에 도시된 바와 같이, "미래"의 참조 프레임들 Ref1 및 Ref3 중에서 임의로 선택된다.
그 경우, 블록 C1에 대해, Ref0가 Ref3보다 프레임 RefC에 더 가깝기 때문에, 우리는 모션 벡터 X1A보다 오히려 X1B를 이용할 것이다. 그 후, 이 X1B 벡터는 반전되어(벡터의 각 성분의 사인을 반전함으로써) Ref1 내에서 그의 대응하는 벡터 X1S가 획득된다. RefC로부터 Ref1까지의 거리가 RefC로부터 Ref0까지의 거리와 같기 때문에, 이 벡터를 스케일링할 필요가 없다.
블록 C2에 대해, 두 개의 모션 벡터 X2A와 X2B는 동일한 시간적 거리를 갖는다. 그 경우, 우리는 미래의 방향을 향한 모션 벡터를 이용하는 것을 선호한다. 따라서, 벡터 X2B는 Ref1에서 끝나기 위해 크기가 조정될 것이다.
블록 C3에 대해, 이미 Ref1에서 끝난 하나의 모션 벡터 X3A가 있다. 그것을 수정하거나 또는 리스케일링(rescale)할 필요가 없다.
블록 C4에 대해, 이미 Ref1에 맵핑한 하나의 모션 벡터 X4B가 있다. 우리는 다른 모션 벡터 X4A를 리스케일링하는 것 대신에 이것을 선택할 것이다.
블록 C5에 대해, 그것은 인트라 코딩된 것으로 간주되기 때문에 모션 벡터가 이용가능하지 않다.
블록 C6에 대해, 하나의 모션 벡터가 이용가능하지만 그것이 Ref1을 지정하지 않는다. 블록 C1의 벡터 X1S에 대해, 모션 벡터 X6A는 X6S를 얻기 위해 반전된다.
이러한 수정의 결과로서, 각 블록은 "Ref1"에서 끝나는 모션 벡터를 갖는다.
제6 실시 형태
도 15는 계층적 B 영상 구조에 또한 적합한 제6 실시 형태를 나타낸다. 제5 실시 형태에 있어서는 단일 참조 프레임이 "미래"의 참조 프레임에서 선택되는 반면, 제6 실시 형태에 있어서는 하나의 선택된 참조 프레임이 "Ref0"이고 "과거"에서 임의적으로 선택된다.
도 16에 있어서, 유사한 규칙이 적용되어 각 블록 C1 내지 C4 및 C6에 대해(하지만 인트라 코딩된 C5에 대해서는 아님) Ref0을 지정하는 해당 벡터가 획득된다.
이 예에서는, 블록 C1에 대해, Z1B가 Ref0에 이미 있고, 수정 또는 스케일링이 적용되지 않는다. 블록 C2에 대해, Z2A가 Ref0에 리스케일링되어 Z2S를 획득한다. 블록 C3과 C4에 대해, 모션 벡터들이 반전되어 Ref0에서 끝나며 스케일링은 수행되지 않는다.
마지막으로 블록 C6에 대해, Z6A가 이미 Ref0에서 끝난다. 수정이 수행되지 않는다.
다시, 도 16에 도시된 바와 같이, Ref0에서 끝나는 모션 벡터가 결국 각 블록에 대해 획득된다.
제7 실시 형태
제7 실시 형태에 있어서, 초기에 인트라로 코딩되었던 특정 블록 C5에 대해 모션 벡터(더미 모션 벡터)가 결정된다. 이 모션 벡터는 RefC 내의 하나의 이웃 블록의 모션 벡터를 복사함으로써, 또는 두 개 이상의 이웃 벡터들의 각각의 값들에 대한 평균 연산을 적용함으로써 결정될 수 있다.
또한, 현재 블록 C5가, 자체들이 모두 인트라 코딩된 블록들인 이웃 블록들만을 갖는다면, 모션 벡터를 용이하게 유도할 수 없다. 그 경우, 블록 C5와 연관된 더미 모션 벡터가 (0,0)으로 설정된다. 이것은, 이제 모든 블록들이 모션 벡터들의 압축을 위해 인터 코딩된 것으로서 간주될 수 있기 때문에, 모드 시그널링의 전송을 회피할 수 있게 한다.
그 후 압축은 다음의 표 4에 요약된 바와 같이 모션 벡터 정보 예를 들면 25 비트(bits) 대신 24비트만을 고려할 것이다.
블록마다의 정보 비트수
2개의 벡터 성분 x 1개의 벡터 (예: V2S) 12 bits x 2 = 24 bits
1개의 단일 참조 프레임 이것을 시그널링할 필요 없음
시그널링 모드
항상 인터 모드, 이용된 벡터, 예: V2S
이것을 시그널링할 필요 없음
합계 24 bits
제8 실시 형태
제7 실시 형태에 있어서, 더미 모션 벡터가 하나의 참조 프레임에의 맵핑과 조합하여 이용된다. 그러나, 이것은 필수적인 것은 아니다.
본 발명의 제8 실시 형태에 있어서, 초기에 인트라 코딩된 RefC 내의 각 블록에 더미 모션 벡터가 적용되어, 모든 블록들이 인터 코딩된 것으로서 취급될 수 있도록 한다. 맵핑은 수행되지 않는다.
제9 실시 형태
제1 실시 형태의 설명에서 언급한 바와 같이, 종래에는, 각 참조 프레임 내의 모든 모션 벡터들이 저장되었다. 그러나, 도입부에서 언급되고 도 1에 도시된 제안 JCTVC-C257 및 제안 JCTVC-D072에서와 같이, NxN 모션 벡터 버퍼의 블록 요약을 위해 하나의 블록 위치를 이용할 수 있다. 이 블록 위치에서의 하나의 모션 벡터가 전체 NxN 블록의 대표 모션 벡터로서 저장된다.
제9 실시 형태에 있어서 본 발명은 이 블록 요약과 조합하여 이용된다. 그러면, 대표 모션 벡터들만을 저장할 필요만 있고, 본 발명에 따라, 그 대표 모션 벡터들은 선택된 참조 프레임에 맵핑되어 대표 모션 벡터들의 참조 인덱스들의 저장을 회피한다.
제10 실시 형태
제10 실시 형태에 있어서, 병치된 블록 내의 다른 블록의 위치를 이용함으로써, 또는 심지어 병치된 블록에 이웃하는 다른 블록 내의 블록의 위치를 이용함으로써, 시간적 예측기(병치된 모션 벡터)와 공간적 예측기들(현재 프레임 내의 이웃 블록들의 모션 벡터들) 간에 더 큰 정도의 다양성이 획득될 수 있다. 이것의 효과는, 제9 실시 형태와 같이 모션 벡터 메모리 요구량에 있어서 동일한 감소를 여전히 달성함에도 불구하고, 본 실시 형태는 모든 모션 벡터들이 저장되고 블록 요약이 이용되지 않는 시스템에 비해 코딩 효율 패널티를 전혀 또는 거의 일으키지 않는다.
상기에서 설명한 실시 형태들은 입력 이미지들의 블록 파티션들에 기초하지만, 더 일반적으로는, 인코딩 또는 디코딩할 임의의 타입의 이미지 부분들, 특히 직사각형 부분들 또는 더 일반적으로 기하학적 부분들이 고려될 수 있다.
더 일반적으로, 당업자가 용이하게 생각할 수 있는 전술한 실시 형태들의 임의의 수정 또는 개량은 본 발명의 범위에 속하는 것으로 간주되어야 한다.

Claims (20)

  1. 복수의 다른 참조 프레임들을 지정하는 것이 허가된 제1 참조 프레임의 모션 벡터들을 저장하는 방법으로서,
    상기 다른 참조 프레임들 중 하나를 선택하는 선택 단계,
    선택된 다른 참조 프레임 이외의 상기 다른 참조 프레임들 중 하나를 지정하는 상기 제1 참조 프레임의 각각의 모션 벡터를 상기 선택된 다른 참조 프레임에 맵핑하여, 맵핑 후에 상기 제1 참조 프레임의 모든 모션 벡터들이 상기 선택된 다른 참조 프레임을 지정하도록 하는, 맵핑 단계, 및
    상기 맵핑 단계에서 맵핑이 이루어진 모션 벡터들을 저장하는 단계를 포함하는, 모션 벡터 저장 방법.
  2. 제1항에 있어서,
    초기에 상기 제1 참조 프레임의 블록이 2개의 모션 벡터를 가질 때, 상기 2개의 모션 벡터 중 하나를 선택하고, 선택되지 않은 모션 벡터는 저장되지 않는 단계를 더 포함하는, 모션 벡터 저장 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 모션 벡터들에 대한 각각의 참조 프레임들을 식별하는 정보를 저장하지 않고, 상기 모션 벡터들이 저장되는, 모션 벡터 저장 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 선택된 다른 참조 프레임은, 상기 제1 참조 프레임에 시간적으로 가장 가까운 상기 다른 참조 프레임들 중 하나인, 모션 벡터 저장 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 다른 참조 프레임의 선택은 프레임들이 디코더에 의해 디코딩될 순서에 의존하는, 모션 벡터 저장 방법.
  6. 제5항에 있어서,
    상기 선택된 다른 참조 프레임은, 상기 제1 참조 프레임으로부터 최소의 영상 순서 카운트(Picture Order Count: POC) 차이를 갖는 상기 다른 참조 프레임들 중 하나인, 모션 벡터 저장 방법.
  7. 제1항 또는 제2항에 있어서,
    상기 선택된 다른 참조 프레임은, 상기 제1 참조 프레임 내의 최고 개수의 모션 벡터들에 의해 지정되는 상기 다른 참조 프레임들 중 하나인, 모션 벡터 저장 방법.
  8. 제1항 또는 제2항에 있어서,
    상기 선택된 다른 참조 프레임은, 최고의 화질을 갖는 상기 다른 참조 프레임들 중 하나인, 모션 벡터 저장 방법.
  9. 제1항 또는 제2항에 있어서,
    상기 맵핑 단계는 상기 선택된 다른 참조 프레임 이외의 상기 다른 참조 프레임들 중 하나를 지정하는 상기 제1 참조 프레임의 각각의 모션 벡터를 스케일링(scaling)하는 것을 포함하는, 모션 벡터 저장 방법.
  10. 제9항에 있어서,
    상기 스케일링은 상기 제1 참조 프레임, 상기 선택된 다른 참조 프레임, 및 상기 선택된 다른 참조 프레임 이외의 상기 다른 참조 프레임 간의 시간적 관계에 의존하는, 모션 벡터 저장 방법.
  11. 제1항 또는 제2항에 있어서,
    상기 다른 참조 프레임들은 미래 및 과거의 참조 프레임들을 포함하고,
    상기 선택된 다른 참조 프레임이 미래의 것이고, 상기 선택된 다른 참조 프레임 이외의 다른 참조 프레임이 과거의 것일 때, 또는 상기 선택된 다른 참조 프레임이 과거의 것이고, 상기 선택된 다른 참조 프레임 이외의 다른 참조 프레임이 미래의 것일 때, 상기 맵핑 단계는 모션 벡터의 사인을 변경하는 것을 포함하는, 모션 벡터 저장 방법.
  12. 제1항에 있어서,
    상기 제1 참조 프레임 내의 인트라-코딩된 블록 또는 각각의 인트라-코딩된 블록에 대해 상기 선택된 다른 참조 프레임을 지정하는 더미 모션 벡터를 생성하여, 상기 제1 참조 프레임의 모든 블록들이 인터 코딩되도록 하는 단계를 더 포함함으로써, 인터/인트라 코딩을 시그널링하기 위한 블럭마다의 비트가 필요없는, 모션 벡터 저장 방법.
  13. 제1항에 있어서,
    상기 제1 참조 프레임의 대표 모션 벡터들을 선택하는 단계, 및
    상기 대표 모션 벡터들을 저장하지만 상기 제1 참조 프레임의 다른 모션 벡터들을 저장하지 않는 단계를 더 포함하는, 모션 벡터 저장 방법.
  14. 디지털 이미지들의 시퀀스를 비트스트림으로 인코딩하는 방법으로서, 이미지의 하나 이상의 부분은 참조 이미지 부분에 대한 모션 보상에 의해 인코딩되고, 상기 방법은,
    제1항에 기재된 모션 벡터 저장 방법을 포함하는, 인코딩 방법.
  15. 디지털 이미지들의 인코딩된 시퀀스를 포함하는 비트스트림을 디코딩하는 방법으로서, 이미지의 하나 이상의 부분은 참조 이미지에 대한 모션 보상에 의해 인코딩되고, 상기 방법은,
    제1항에 기재된 모션 벡터 저장 방법을 포함하는, 디코딩 방법.
  16. 복수의 다른 참조 프레임들을 지정하도록 허가된 제1 참조 프레임의 모션 벡터들을 저장하는 장치로서,
    상기 다른 참조 프레임들 중 하나를 선택하는 선택 수단,
    선택된 다른 참조 프레임 이외의 상기 다른 참조 프레임들 중 하나를 지정하는 상기 제1 참조 프레임의 각각의 모션 벡터를 상기 선택된 다른 참조 프레임에 맵핑하여, 맵핑 후에 상기 제1 참조 프레임의 모든 모션 벡터들이 상기 선택된 다른 참조 프레임을 지정하도록 하는, 맵핑 수단, 및
    상기 맵핑 수단에 의해 매핑이 이루어진 모션 벡터들을 저장하는 수단을 포함하는, 모션 벡터 저장 장치.
  17. 제16항에 있어서,
    초기에 상기 제1 참조 프레임의 블록이 2개의 모션 벡터를 가질 때, 상기 2개의 모션 벡터 중 하나를 선택하도록 동작하는 수단을 더 포함하고, 선택되지 않은 모션 벡터는 저장되지 않는, 모션 벡터 저장 장치.
  18. 디지털 이미지들의 시퀀스를 비트스트림으로 인코딩하는 장치로서, 이미지의 하나 이상의 부분은 참조 이미지 부분에 대한 모션 보상에 의해 인코딩되고, 상기 장치는,
    제16항에 기재된 모션 벡터 저장 장치를 포함하는, 인코딩 장치.
  19. 디지털 이미지들의 인코딩된 시퀀스를 포함하는 비트스트림을 디코딩하는 장치로서, 이미지의 하나 이상의 부분은 참조 이미지에 대한 모션 보상에 의해 인코딩되고, 상기 장치는,
    제16항에 기재된 모션 벡터 저장 장치를 포함하는, 디코딩 장치.
  20. 컴퓨터 또는 프로세서에서 실행할 때 상기 컴퓨터 또는 프로세서에 제1항에 기재된 방법을 수행시키는 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 기록 매체.
KR1020157019874A 2011-03-09 2012-03-08 모션 벡터 저장 방법 및 장치, 인코딩 및 디코딩 방법, 인코딩 및 디코딩 장치, 및 기록 매체 KR101588559B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1104034.2 2011-03-09
GB1104034.2A GB2488816A (en) 2011-03-09 2011-03-09 Mapping motion vectors from a plurality of reference frames to a single reference frame
PCT/EP2012/001042 WO2012119777A1 (en) 2011-03-09 2012-03-08 Video encoding and decoding

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020137025724A Division KR20130129452A (ko) 2011-03-09 2012-03-08 모션 벡터 저장 방법 및 장치, 인코딩 및 디코딩 방법, 인코딩 및 디코딩 장치, 및 기록 매체

Publications (2)

Publication Number Publication Date
KR20150091414A KR20150091414A (ko) 2015-08-10
KR101588559B1 true KR101588559B1 (ko) 2016-01-25

Family

ID=43923468

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020137025724A KR20130129452A (ko) 2011-03-09 2012-03-08 모션 벡터 저장 방법 및 장치, 인코딩 및 디코딩 방법, 인코딩 및 디코딩 장치, 및 기록 매체
KR1020157019874A KR101588559B1 (ko) 2011-03-09 2012-03-08 모션 벡터 저장 방법 및 장치, 인코딩 및 디코딩 방법, 인코딩 및 디코딩 장치, 및 기록 매체

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020137025724A KR20130129452A (ko) 2011-03-09 2012-03-08 모션 벡터 저장 방법 및 장치, 인코딩 및 디코딩 방법, 인코딩 및 디코딩 장치, 및 기록 매체

Country Status (8)

Country Link
US (6) US10075707B2 (ko)
EP (1) EP2684363A1 (ko)
KR (2) KR20130129452A (ko)
CN (1) CN103444174B (ko)
BR (1) BR112013022030A2 (ko)
GB (1) GB2488816A (ko)
RU (1) RU2571572C2 (ko)
WO (1) WO2012119777A1 (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9854268B2 (en) 2012-10-03 2017-12-26 Hfi Innovation Inc. Method and apparatus of motion data buffer reduction for three-dimensional video coding
CN104854867A (zh) * 2012-11-07 2015-08-19 Lg电子株式会社 处理多视图视频信号的方法和设备
US9432690B2 (en) * 2013-01-30 2016-08-30 Ati Technologies Ulc Apparatus and method for video processing
US9800857B2 (en) * 2013-03-08 2017-10-24 Qualcomm Incorporated Inter-view residual prediction in multi-view or 3-dimensional video coding
US20150271512A1 (en) * 2014-03-18 2015-09-24 Texas Instruments Incorporated Dynamic frame padding in a video hardware engine
CN104581173A (zh) * 2015-01-13 2015-04-29 中国电子科技集团公司第三十二研究所 软解码验证模型平台
WO2016143972A1 (ko) * 2015-03-11 2016-09-15 엘지전자(주) 비디오 신호의 인코딩/디코딩 방법 및 장치
JP2019514308A (ja) * 2016-05-10 2019-05-30 サムスン エレクトロニクス カンパニー リミテッド 映像を符号化/復号する方法及びその装置
US10136155B2 (en) 2016-07-27 2018-11-20 Cisco Technology, Inc. Motion compensation using a patchwork motion field
CN106488227B (zh) * 2016-10-12 2019-03-15 广东中星电子有限公司 一种视频参考帧管理方法和系统
US10687077B2 (en) * 2017-06-26 2020-06-16 Qualcomm Incorporated Motion information propagation in video coding
EP3675490A1 (en) * 2017-08-22 2020-07-01 Sony Corporation Image processing device and image processing method
WO2019183906A1 (zh) 2018-03-29 2019-10-03 华为技术有限公司 帧间预测的方法和装置
CN118200541A (zh) 2018-04-01 2024-06-14 Lg电子株式会社 图像编码/解码设备、数据的发送设备以及存储介质
WO2019194435A1 (ko) * 2018-04-02 2019-10-10 엘지전자 주식회사 Tmvp에 기반한 영상 코딩 방법 및 그 장치
KR20210025537A (ko) 2018-06-29 2021-03-09 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 하나 또는 다수의 룩업 테이블들을 사용하여 이전에 코딩된 모션 정보를 순서대로 저장하고 이를 사용하여 후속 블록들을 코딩하는 개념
GB2588006B (en) 2018-06-29 2023-03-22 Beijing Bytedance Network Tech Co Ltd Number of motion candidates in a look up table to be checked according to mode
CN110662039B (zh) 2018-06-29 2022-06-07 北京字节跳动网络技术有限公司 查找表的更新:fifo、约束的fifo
JP7328330B2 (ja) 2018-06-29 2023-08-16 北京字節跳動網絡技術有限公司 Lutにおける動き候補のチェック順序
CN114900694A (zh) 2018-06-29 2022-08-12 抖音视界(北京)有限公司 哪个查找表需要更新或不更新
CN110662052B (zh) 2018-06-29 2022-07-08 北京字节跳动网络技术有限公司 更新查找表(lut)的条件
WO2020009515A1 (ko) * 2018-07-05 2020-01-09 엘지전자 주식회사 Ctu 단위의 버퍼 압축을 이용한 영상 코딩 방법 및 그 장치
US11057617B2 (en) * 2018-08-03 2021-07-06 Tencent America LLC Method and apparatus for video coding
US11451807B2 (en) * 2018-08-08 2022-09-20 Tencent America LLC Method and apparatus for video coding
WO2020053800A1 (en) 2018-09-12 2020-03-19 Beijing Bytedance Network Technology Co., Ltd. How many hmvp candidates to be checked
CN111263166B (zh) * 2018-11-30 2022-10-11 华为技术有限公司 一种视频图像预测方法及装置
WO2020140244A1 (zh) * 2019-01-03 2020-07-09 北京大学 一种视频图像处理方法、设备及存储介质
CN113273216B (zh) * 2019-01-12 2022-09-13 北京字节跳动网络技术有限公司 Mmvd改进
WO2020143824A1 (en) 2019-01-13 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and shared merge list
CN113330739A (zh) 2019-01-16 2021-08-31 北京字节跳动网络技术有限公司 Lut中的运动候选的插入顺序
JP7321364B2 (ja) 2019-09-14 2023-08-04 バイトダンス インコーポレイテッド ビデオコーディングにおけるクロマ量子化パラメータ
WO2021055896A1 (en) * 2019-09-21 2021-03-25 Bytedance Inc. Chroma deblocking in video coding
JP7359653B2 (ja) * 2019-11-06 2023-10-11 ルネサスエレクトロニクス株式会社 動画像符号化装置
KR20210076869A (ko) * 2019-12-16 2021-06-24 현대자동차주식회사 임의의 모양으로 분할되는 블록을 예측하는 방법 및 복호화 장치
WO2023219301A1 (ko) * 2022-05-13 2023-11-16 현대자동차주식회사 인트라 예측 블록에 대한 움직임벡터 저장을 위한 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050089097A1 (en) 2003-07-30 2005-04-28 Hui-Hua Kuo Memory management method for storing motion vectors of decoded macroblocks

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994018799A1 (en) * 1993-02-03 1994-08-18 Qualcomm Incorporated Interframe video encoding and decoding system
JP2004007379A (ja) * 2002-04-10 2004-01-08 Toshiba Corp 動画像符号化方法及び動画像復号化方法
CN1290341C (zh) * 2002-04-19 2006-12-13 松下电器产业株式会社 运动矢量的计算方法、动态图像的编码、解码方法及装置
CN101039424B (zh) * 2002-07-15 2010-05-26 株式会社日立制作所 动态图像编码方法
US7154952B2 (en) 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
WO2004012459A1 (ja) 2002-07-26 2004-02-05 Matsushita Electric Industrial Co., Ltd. 動画像符号化方法、動画像復号化方法および記録媒体
US7020200B2 (en) * 2002-08-13 2006-03-28 Lsi Logic Corporation System and method for direct motion vector prediction in bi-predictive video frames and fields
US7949047B2 (en) * 2003-03-17 2011-05-24 Qualcomm Incorporated System and method for partial intraframe encoding for wireless multimedia transmission
US20050013498A1 (en) 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7567617B2 (en) 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
DE602004030993D1 (de) 2004-04-30 2011-02-24 Panasonic Corp Bewegungsschätzung unter Verwendung von adaptiven räumlichen Verfeinerungsvektoren
US8553776B2 (en) * 2004-07-21 2013-10-08 QUALCOMM Inorporated Method and apparatus for motion vector assignment
KR100723403B1 (ko) 2005-02-28 2007-05-30 삼성전자주식회사 컬러 성분간 단일 부호화 모드를 이용한 예측영상 생성 방법 및 장치와, 그를 이용한 영상 및 비디오 부호화/복호화방법 및 장치
US8693540B2 (en) * 2005-03-10 2014-04-08 Qualcomm Incorporated Method and apparatus of temporal error concealment for P-frame
US7881384B2 (en) 2005-08-05 2011-02-01 Lsi Corporation Method and apparatus for H.264 to MPEG-2 video transcoding
US9602840B2 (en) * 2006-02-06 2017-03-21 Thomson Licensing Method and apparatus for adaptive group of pictures (GOP) structure selection
US8059902B2 (en) 2006-10-31 2011-11-15 Ntt Docomo, Inc. Spatial sparsity induced temporal prediction for video compression
WO2008075247A1 (en) * 2006-12-18 2008-06-26 Koninklijke Philips Electronics N.V. Image compression and decompression
KR101365574B1 (ko) * 2007-01-29 2014-02-20 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
US9426414B2 (en) * 2007-12-10 2016-08-23 Qualcomm Incorporated Reference selection for video interpolation or extrapolation
US8320455B2 (en) * 2009-03-05 2012-11-27 Qualcomm Incorporated System and method to process motion vectors of video data
EP2449784A1 (fr) 2009-07-03 2012-05-09 France Telecom Prédiction d'un vecteur mouvement d'une partition d'image courante de forme géometrique ou de taille différente de celle d'au moins une partition d'image de référence voisine, codage et décodage utilisant une telle prédiction
EP3852371B1 (fr) 2009-07-03 2024-03-20 Orange Prediction d'un vecteur mouvement d'une partition d'image courante pointant sur une zone de référence qui recouvre plusieurs partitions d'image de référence, codage et decodage utilisant une telle prediction
JP5360688B2 (ja) * 2009-07-21 2013-12-04 日本電気株式会社 動画復号システム、動画復号装置、参照ブロック生成出方法、及び参照ブロック生成プログラム
FR2951345B1 (fr) 2009-10-13 2013-11-22 Canon Kk Procede et dispositif de traitement d'une sequence video
US9036692B2 (en) 2010-01-18 2015-05-19 Mediatek Inc. Motion prediction method
GB2486901B (en) 2010-12-29 2014-05-07 Canon Kk Video encoding and decoding with improved error resilience
US9008181B2 (en) * 2011-01-24 2015-04-14 Qualcomm Incorporated Single reference picture list utilization for interprediction video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050089097A1 (en) 2003-07-30 2005-04-28 Hui-Hua Kuo Memory management method for storing motion vectors of decoded macroblocks

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PARK S ET AL: "Modification of temporal mv compression and temporal mv predictor",no. JCTVC-E059, 8 March 2011.
YEPING SU et al: "On motion Vector Competition", JCTVC-C257, 7 October 2010.

Also Published As

Publication number Publication date
CN103444174A (zh) 2013-12-11
US11936896B2 (en) 2024-03-19
RU2013145081A (ru) 2015-04-20
KR20130129452A (ko) 2013-11-28
US20140064369A1 (en) 2014-03-06
US20230127394A1 (en) 2023-04-27
US11936897B2 (en) 2024-03-19
US20210352311A1 (en) 2021-11-11
WO2012119777A1 (en) 2012-09-13
BR112013022030A2 (pt) 2016-11-29
KR20150091414A (ko) 2015-08-10
US11943465B2 (en) 2024-03-26
US20230126563A1 (en) 2023-04-27
US20180352246A1 (en) 2018-12-06
CN103444174B (zh) 2017-05-10
US11563968B2 (en) 2023-01-24
RU2571572C2 (ru) 2015-12-20
US10075707B2 (en) 2018-09-11
GB2488816A (en) 2012-09-12
EP2684363A1 (en) 2014-01-15
GB201104034D0 (en) 2011-04-20
US11109050B2 (en) 2021-08-31
US20230127212A1 (en) 2023-04-27

Similar Documents

Publication Publication Date Title
US11936896B2 (en) Video encoding and decoding
US10812821B2 (en) Video encoding and decoding
GB2488817A (en) Reducing the memory requirement for storing a motion vector for video encoding and decoding

Legal Events

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

Payment date: 20200107

Year of fee payment: 5