KR102090438B1 - 비디오 인코딩 및 디코딩 - Google Patents

비디오 인코딩 및 디코딩 Download PDF

Info

Publication number
KR102090438B1
KR102090438B1 KR1020197017062A KR20197017062A KR102090438B1 KR 102090438 B1 KR102090438 B1 KR 102090438B1 KR 1020197017062 A KR1020197017062 A KR 1020197017062A KR 20197017062 A KR20197017062 A KR 20197017062A KR 102090438 B1 KR102090438 B1 KR 102090438B1
Authority
KR
South Korea
Prior art keywords
motion vector
block
predictor
vector predictor
encoded
Prior art date
Application number
KR1020197017062A
Other languages
English (en)
Other versions
KR20190072670A (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 KR20190072670A publication Critical patent/KR20190072670A/ko
Application granted granted Critical
Publication of KR102090438B1 publication Critical patent/KR102090438B1/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/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • 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
    • 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/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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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/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
    • 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/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh

Abstract

현재 프레임의 인코딩할 블록에 대한 모션 벡터 예측기들의 집합에, 하나 이상의 공간적 모션 벡터 예측기와 함께, 시간적 모션 벡터 예측기가 포함가능하다. 시간적 모션 벡터 예측기를 결정하는 방법은, 현재 프레임과는 다른 참조 프레임의 참조 블록 내의 모션 벡터들 중에서 하나의 모션 벡터를 시간적 예측기로서 선택하는 단계를 포함한다. 참조 블록은 인코딩할 블록과 병치된 참조 프레임의 블록이거나, 또는 병치된 블록에 이웃하는 참조 프레임의 블록이다. 선택은 집합의 예측기들 중에 다양성을 달성하기 위한 다양성 기준에 기초한다. 이것은 추가적인 코딩 효율의 패널티가 전혀 없이 또는 거의 없이 모션 벡터 메모리 요구량을 감소시킬 수 있다. 대안적으로, 모션 벡터 메모리가 크기에 있어서 감소되지 않더라도, 코딩 효율의 향상이 달성될 수 있다

Description

비디오 인코딩 및 디코딩{VIDEO ENCODING AND DECODING}
본 발명은 디지털 이미지들의 시퀀스를 인코딩하기 위한 방법 및 장치와, 해당 비트스트림을 디코딩하기 위한 방법 및 장치에 관한 것이다.
본 발명은 디지털 신호 처리의 분야, 및 특히 비디오 스트림의 공간적 및 시간적 리던던시(redundancies)를 감소시키기 위해 모션 보상을 이용하는 비디오 압축의 분야에 속한다.
많은 비디오 압축 포맷들, 예를 들어 H.263, H.264, MPEG-1, MPEG-2, MPEG-4, SVC는 공간적 및 시간적 리던던시를 제거하기 위해 블록-기반 이산 코사인 변환(discrete cosine transform: DCT)과 모션 보상을 이용한다. 그들은 예측적 비디오 포맷들이라고 칭해질 수 있다. 비디오 신호의 각 프레임 또는 이미지는 독립적으로 인코딩되고 디코딩될 수 있는 슬라이스들로 분할된다. 슬라이스는 일반적으로 프레임의 직사각형 부분, 또는 더 일반적으로는, 프레임의 일부 또는 프레임의 전체이다. 또한, 각 슬라이스는 매크로블록들(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개의 모션 벡터 집합의 입상도를 이용하면, 프레임당 26Mbits가 필요한 것으로 추정된다.
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 양태에 따르면, 현재 프레임의 인코딩할 블록에 대한 모션 벡터 예측기들의 집합에, 하나 이상의 공간적 모션 벡터 예측기와 함께, 포함가능한 시간적 모션 벡터 예측기를 결정하는 방법으로서, 상기 현재 프레임과는 다른 참조 프레임의 참조 블록 내의 모션 벡터들 중에서 하나의 모션 벡터를 상기 시간적 예측기로서 선택하는 단계를 포함하고, 상기 참조 블록은 상기 인코딩할 블록과 병치된 상기 참조 프레임의 블록이거나, 또는 상기 병치된 블록에 이웃하는 상기 참조 프레임의 블록이고, 상기 선택은 상기 집합의 예측기들 중에 다양성을 달성하기 위한 다양성 기준에 기초하는, 시간적 모션 벡터 예측기 결정 방법이 제공된다.
그러한 방법은 메모리 압축 프로세스 동안 블록-방식 벡터 요약을 위한 최선의 모션 벡터를 찾기 위해 이용될 수 있다. 최선의 예측기의 선택은, 현재 모션 벡터의 예측을 위해, 또는 병합 모드 및 스킵 모드의 예측기를 위해 이용될 수 있는 예측기들의 위치들 간의 공간적 및/또는 공간-시간적 거리에 기초할 수 있다.
일 실시 형태에 있어서, 모션 벡터 위치는, 공간적 거리에 있어서 다른 예측기들의 위치들에 비해 가장 먼 위치인 위치들의 집합 중에서 선택된다. 또한, 고려되는 위치들은 이웃하는 블록들의 또는 병치된 블록의 양호한 표현이어야 한다. 이러한 방식으로, 예측기 집합에서 다양성을 획득하는 것이 가능하다.
본 발명의 제2 양태에 따르면, 현재 프레임의 인코딩할 블록에 대한 모션 벡터 예측기들의 집합에, 하나 이상의 공간적 모션 벡터 예측기와 함께, 포함가능한 시간적 모션 벡터 예측기를 결정하는 방법으로서, 상기 인코딩할 블록과 병치된 상기 참조 프레임의 블록의 우하 위치에서의 모션 벡터를 상기 시간적 예측기로서 선택하는 단계를 포함하는, 시간적 모션 벡터 예측기 결정 방법이 제공된다.
그러한 선택은 상대적으로 작은 블록 크기들과 잘 작용하고, 선택이 미리 정해지기 때문에 프로세싱의 부담을 갖지 않는다는 이점을 갖는다.
본 발명의 제3 양태에 따르면, 현재 프레임의 인코딩할 블록에 대한 모션 벡터 예측기들의 집합에, 하나 이상의 공간적 모션 벡터 예측기와 함께, 포함가능한 시간적 모션 벡터 예측기를 결정하는 방법으로서, 상기 인코딩할 블록과 병치된 상기 참조 프레임의 블록의 우하 위치, 또는 상기 병치된 블록에 이웃하는 상기 참조 프레임의 블록 내의, 상기 우하 위치의 근방의 미리 정해진 위치에서의 모션 벡터를 상기 시간적 예측기로서 선택하는 단계를 포함하는, 시간적 모션 벡터 예측기 결정 방법이 제공된다.
본 발명의 이 양태에 있어서, 병치된 블록에 이웃하는 참조 프레임의 블록에 있어서 상기 우하 위치의 근방의 위치들을 포함하도록 선택이 확대된다.
그러한 선택도 또한 상대적으로 작은 블록 크기들과 잘 작용하고, 선택이 미리 정해지기 때문에 프로세싱의 부담을 갖지 않는다는 이점을 갖는다.
본 발명의 제4 양태에 따르면, 현재 프레임의 인코딩할 블록에 대한 모션 벡터 예측기들의 집합에, 하나 이상의 공간적 모션 벡터 예측기와 함께, 포함가능한 시간적 모션 벡터 예측기를 결정하는 방법으로서, 상기 현재 프레임과는 다른 참조 프레임의 참조 블록 내의 모션 벡터들 중에서 하나의 모션 벡터를 상기 시간적 예측기로서 선택하는 단계를 포함하고, 상기 참조 블록은 상기 인코딩할 블록과 병치된 상기 참조 프레임의 블록이거나, 또는 상기 병치된 블록에 이웃하는 상기 참조 프레임의 블록이고, 상기 선택은 상기 인코딩할 블록의 블록 크기에 의존하는, 시간적 모션 벡터 예측기 결정 방법이 제공된다.
그러한 방법은 모션 벡터가 상이한 블록 크기들에 대해 다르게 선택되도록 할 수 있다. 실험에 있어서, 이 방법에 의해 양호한 결과가 달성되었다.
예를 들어, 제1 블록 크기의 경우, 참조 블록의 제1 미리 정해진 위치에서의 모션 벡터가 상기 시간적 예측기로서 선택될 수 있고, 제1 블록의 크기와는 다른 제2 블록 크기의 경우, 제1 위치와 다른, 참조 블록 내의 제2 미리 정해진 위치에서의 모션 벡터가 상기 시간적 예측기로서 선택될 수 있다. 제1 블록 크기가 제2 블록 크기보다 작을 때, 제1 위치를 병치된 블록 내의 우하 위치로 하고, 제2 위치를 병치된 블록 내의 중심 위치로 하는 것이 효과적이다.
대안적으로, 제1 블록 크기의 경우, 제1 선택 방법을 이용하여 참조 블록 내의 하나의 모션 벡터가 상기 시간적 예측기로서 선택될 수 있고, 제1 블록 크기와는 다른 제2 블록 크기의 경우, 제1 선택 방법과는 다른 제2 선택 방법을 이용하여 참조 블록 내의 하나의 모션 벡터가 선택될 수 있다.
어떤 실시 형태들은 상기 참조 블록의 적어도 하나의 모션 벡터와 적어도 하나의 상기 공간적 예측기의 상대 위치들을 결정하는 단계, 및 상기 상대 위치들에 의존하여 상기 시간적 예측기를 선택하는 단계를 수반한다. 이것은 예측기들 간의 제어된 다양성을 확보하는 효과적인 방법이다.
다른 실시 형태들은 적어도 하나의 상기 공간적 예측기의 이용가능성을 결정하는 단계, 및 상기 이용가능성에 의존하여 상기 시간적 예측기를 선택하는 단계를 수반한다. 다시, 이것은 제어된 다양성을 확보하는 효과적인 방법이다. 예를 들어, 어떤 실시 형태들에 있어서, 하나 이상의 공간적 예측기들이 배제될 수 있다. 또한, 프레임 내의 어떤 위치들에 대해, 예를 들면, 프레임의 상측 또는 프레임의 좌측 에지에 대해, 하나 이상의 공간적 예측기들이 이용불가능하다는 것이 미리 알려진다.
다른 실시 형태는 상기 시간적 예측기를 선택하기 위해 대조표를 이용하고, 상기 대조표는 상기 참조 블록의 모션 벡터를 식별하는 공간적 예측기들의 정보의 하나 이상의 다른 선택가능한 조합들을 저장하여 해당 조합이 선택된다. 이것은 낮은 복잡도를 갖고 고속으로 작업할 수 있다.
제1 내지 제4 양태의 방법들은 모션 벡터들을 저장하기 위한 메모리 요구량의 감소를 달성하기 위해 이용될 수 있다. 그들은 또한 코딩 효율을 향상시키기 위해 이용될 수 있다.
메모리 감소의 경우, 적어도 하나의 공간적 예측기가 선택되기 전에 시간적 예측기가 선택된다. 따라서, 이 경우, 방법들은 해당 공간적 예측기의 잠재적인 위치들 간의 평균 위치에 의존하여 해당 공간적 예측기의 위치를 추정하는 단계를 더 포함할 수 있다. 원한다면, 평균은 잠재적인 위치들이 선택될 상대 빈도수들에 따라 가중화될 수 있다. 결국 이것은 적용되는 선택 프로세스에 의존하는데, 예를 들어, AMVP에서 상측 예측기에 대해 우로부터 좌로 검색이 수행되고 좌측 예측기에 대해 하로부터 상으로 검색이 수행된다. 이것은 상대 빈도수들에 영향을 준다.
본 발명의 제5 양태에 따르면, 시간적 모션 벡터 예측기들로서 이용될 모션 벡터들을 저장하는 방법으로서, 현재 프레임의 인코딩할 블록의 모션 벡터들 중에서, 본 발명의 제1 내지 제4 양태 중 어느 하나의 방법에 의해 결정된 상기 시간적 예측기와 동일한 위치를 갖는 모션 벡터를 저장하여, 저장된 모션 벡터가 상기 현재 프레임을 참조하여 다른 프레임을 인코딩하기 위해 시간적 예측기로서 이용가능하게 되는 단계, 및 상기 현재 프레임의 인코딩할 블록의 다른 상기 모션 벡터들을 저장하지 않는 단계를 포함하는, 모션 벡터 저장 방법이 제공된다.
이것은 종래의 블록 요약 방법들에 비해 코딩 효율을 향상시킨다.
본 발명의 제6 양태에 따르면, 현재 프레임의 인코딩할 블록에 대한 모션 벡터 예측기들의 집합을 생성하는 방법으로서, 상기 집합은 적어도 하나의 공간적 모션 벡터 예측기 및 적어도 하나의 시간적 모션 벡터 예측기를 포함하도록 허가되고, 상기 방법은, 본 발명의 제1 내지 제4 양태 중 어느 하나의 방법을 이용하여 상기 집합의 시간적 모션 벡터 예측기 또는 하나의 상기 시간적 모션 벡터 예측기를 결정하는 단계를 포함하는, 모션 벡터 예측기 집합 생성 방법이 제공된다.
이것은 코딩 효율 향상을 제공할 수 있다. 본 발명의 이 양태에 있어서, 모든 모션 벡터들을 저장하는 것이 가능하며, 즉, 저장되는 모션 벡터들의 개수를 감소시킬 필요는 없으나, 이것이 물론 바람직하긴 하다.
이 경우, 상기 시간적 예측기가 결정되기 전에 적어도 하나의 상기 공간적 예측기가 선택되고, 상기 시간적 예측기의 결정은 상기 선택된 공간적 예측기(들)에 의존하여 수행되는 것이 바람직하다. 그러므로, 메모리 감소 응용과는 달리, 공간적 예측기 선택의 실제 결과들이 고려될 수 있는데, 이것은 다양성을 향상시키는 관점에서 양호한 결과를 준다.
본 발명의 제7 양태에 따르면, 디지털 이미지들의 시퀀스를 비트스트림으로 인코딩하는 방법으로서, 이미지의 적어도 하나의 부분은 참조 이미지 부분에 대한 모션 보상에 의해 인코딩되고, 상기 방법은, 본 발명의 제1 내지 제4 양태 중 어느 하나에 따른 시간적 모션 벡터 예측기 결정 방법을 포함하는, 인코딩 방법이 제공된다.
본 발명의 제8 양태에 따르면, 디지털 이미지들의 시퀀스를 비트스트림으로 인코딩하는 방법으로서, 이미지의 적어도 하나의 부분은 참조 이미지 부분에 대한 모션 보상에 의해 인코딩되고, 상기 방법은, 본 발명의 제5 양태에 따른 모션 벡터 저장 방법을 포함하는, 인코딩 방법이 제공된다.
본 발명의 제9 양태에 따르면, 디지털 이미지들의 시퀀스를 비트스트림으로 인코딩하는 방법으로서, 이미지의 적어도 하나의 부분은 참조 이미지 부분에 대한 모션 보상에 의해 인코딩되고, 상기 방법은, 본 발명의 제6 양태에 따른 모션 벡터 예측기 집합 생성 방법을 포함하는, 인코딩 방법이 제공된다.
본 발명의 제10 양태 내지 제15 양태에 따르면, 제1 내지 제6 양태들의 방법들이 또한 디지털 이미지들의 인코딩된 시퀀스를 포함하는 비트스트림을 디코딩하는 방법에 이용될 수 있고, 이미지의 적어도 하나의 부분은 참조 이미지에 대한 모션 보상에 의해 인코딩된다.
본 발명의 제16 양태에 따르면, 현재 프레임의 인코딩할 블록에 대한 모션 벡터 예측기들의 집합에, 하나 이상의 공간적 모션 벡터 예측기와 함께, 포함가능한 시간적 모션 벡터 예측기를 결정하는 장치로서, 상기 현재 프레임과는 다른 참조 프레임의 참조 블록 내의 모션 벡터들 중에서 하나의 모션 벡터를 상기 시간적 예측기로서 선택하는 수단을 포함하고, 상기 참조 블록은 상기 인코딩할 블록과 병치된 상기 참조 프레임의 블록이거나, 또는 상기 병치된 블록에 이웃하는 상기 참조 프레임의 블록이고, 상기 선택은 상기 집합의 예측기들 중에 다양성을 달성하기 위한 다양성 기준에 기초하는, 시간적 모션 벡터 예측기 결정 장치가 제공된다.
본 발명의 제17 양태에 따르면, 현재 프레임의 인코딩할 블록에 대한 모션 벡터 예측기들의 집합에, 하나 이상의 공간적 모션 벡터 예측기와 함께, 포함가능한 시간적 모션 벡터 예측기를 결정하는 장치로서, 상기 인코딩할 블록과 병치된 상기 참조 프레임의 블록의 우하 위치에서의 모션 벡터를 상기 시간적 예측기로서 선택하는 수단을 포함하는, 시간적 모션 벡터 예측기 결정 장치가 제공된다.
본 발명의 제18 양태에 따르면, 현재 프레임의 인코딩할 블록에 대한 모션 벡터 예측기들의 집합에, 하나 이상의 공간적 모션 벡터 예측기와 함께, 포함가능한 시간적 모션 벡터 예측기를 결정하는 장치로서, 상기 인코딩할 블록과 병치된 상기 참조 프레임의 블록의 우하 위치, 또는 상기 병치된 블록에 이웃하는 상기 참조 프레임의 블록 내의, 상기 우하 위치의 근방의 미리 정해진 위치에서의 모션 벡터를 상기 시간적 예측기로서 선택하는 수단을 포함하는, 시간적 모션 벡터 예측기 결정 장치가 제공된다.
본 발명의 제19 양태에 따르면, 현재 프레임의 인코딩할 블록에 대한 모션 벡터 예측기들의 집합에, 하나 이상의 공간적 모션 벡터 예측기와 함께, 포함가능한 시간적 모션 벡터 예측기를 결정하는 장치로서, 상기 현재 프레임과는 다른 참조 프레임의 참조 블록 내의 모션 벡터들 중에서 하나의 모션 벡터를 상기 시간적 예측기로서 선택하는 수단을 포함하고, 상기 참조 블록은 상기 인코딩할 블록과 병치된 상기 참조 프레임의 블록이거나, 또는 상기 병치된 블록에 이웃하는 상기 참조 프레임의 블록이고, 상기 선택은 상기 인코딩할 블록의 블록 크기에 의존하는, 시간적 모션 벡터 예측기 결정 장치가 제공된다.
본 발명의 제20 양태에 따르면, 시간적 모션 벡터 예측기들로서 이용될 모션 벡터들을 저장하는 장치로서, 현재 프레임의 인코딩할 블록의 모션 벡터들 중에서, 본 발명의 제16 내지 제19 양태 중 어느 하나의 장치에 의해 결정된 상기 시간적 예측기와 동일한 위치를 갖는 모션 벡터를 저장하도록 하여, 저장된 모션 벡터가 상기 현재 프레임을 참조하여 다른 프레임을 인코딩하기 위해 시간적 예측기로서 이용가능하게 되고, 상기 현재 프레임의 인코딩할 블록의 다른 상기 모션 벡터들의 저장을 방지하는 제어 수단을 포함하는, 모션 벡터 저장 장치가 제공된다.
본 발명의 제21 양태에 따르면, 현재 프레임의 인코딩할 블록에 대한 모션 벡터 예측기들의 집합을 생성하는 장치로서, 상기 집합은 적어도 하나의 공간적 모션 벡터 예측기 및 적어도 하나의 시간적 모션 벡터 예측기를 포함하도록 허가되고, 상기 장치는, 상기 집합의 시간적 모션 벡터 예측기 또는 하나의 상기 시간적 모션 벡터 예측기를 결정하는 제16 내지 제19 양태 중 어느 하나의 장치를 포함하는, 모션 벡터 예측기 집합 생성 장치가 제공된다.
본 발명의 제22 양태에 따르면, 디지털 이미지들의 시퀀스를 비트스트림으로 인코딩하는 장치로서, 이미지의 적어도 하나의 부분은 참조 이미지 부분에 대한 모션 보상에 의해 인코딩되고, 상기 장치는, 제16 내지 제19 양태 중 어느 하나의 시간적 모션 벡터 예측기 결정 장치를 포함하는, 인코딩 장치가 제공된다.
본 발명의 제23 양태에 따르면, 디지털 이미지들의 시퀀스를 비트스트림으로 인코딩하는 장치로서, 이미지의 적어도 하나의 부분은 참조 이미지 부분에 대한 모션 보상에 의해 인코딩되고, 상기 장치는, 본 발명의 제20 양태의 모션 벡터 저장 장치를 포함하는, 인코딩 장치가 제공된다.
본 발명의 제24 양태에 따르면, 디지털 이미지들의 시퀀스를 비트스트림으로 인코딩하는 장치로서, 이미지의 적어도 하나의 부분은 참조 이미지 부분에 대한 모션 보상에 의해 인코딩되고, 상기 장치는, 본 발명의 제21 양태의 모션 벡터 예측기 집합 생성 장치를 포함하는, 인코딩 장치가 제공된다.
본 발명의 제25 양태에 따르면, 디지털 이미지들의 인코딩된 시퀀스를 포함하는 비트스트림을 디코딩하는 장치로서, 이미지의 적어도 하나의 부분은 참조 이미지에 대한 모션 보상에 의해 인코딩되고, 상기 장치는, 제16 내지 제19 양태 중 어느 하나의 시간적 모션 벡터 예측기 결정 장치를 포함하는, 디코딩 장치가 제공된다.
본 발명의 제26 양태에 따르면, 디지털 이미지들의 인코딩된 시퀀스를 포함하는 비트스트림을 디코딩하는 장치로서, 이미지의 적어도 하나의 부분은 참조 이미지에 대한 모션 보상에 의해 인코딩되고, 상기 장치는, 본 발명의 제20 양태의 모션 벡터 저장 장치를 포함하는, 디코딩 장치가 제공된다.
본 발명의 제27 양태에 따르면, 디지털 이미지들의 인코딩된 시퀀스를 포함하는 비트스트림을 디코딩하는 장치로서, 이미지의 적어도 하나의 부분은 참조 이미지에 대한 모션 보상에 의해 인코딩되고, 상기 장치는, 본 발명의 제21 양태에 따른 모션 벡터 예측기 집합 생성 장치를 포함하는, 디코딩 장치가 제공된다.
본 발명은 컴퓨터 또는 프로세서에서 실행할 때 상기 컴퓨터 또는 프로세서에 전술한 방법들 중 임의의 것을 수행시키거나, 또는 프로그램가능한 장치에 로딩될 때 그 장치가 전술한 장치들 중 임의의 것이 되게 하는 프로그램들로 확장된다. 프로그램은 홀로 제공될 수 있거나, 또는 수송 매체에 의해 수송된다. 수송 매체는 저장 또는 기록 매체일 수 있거나, 또는 신호 등의 전송 매체일 수 있다. 본 발명을 실시하는 프로그램은 일시적 또는 비일시적일 수 있다.
전술한 바와 같이, 본 발명의 실시 형태들에 있어서 예측기 집합의 다양성을 생성하기 위해, 예측기들의 집합의 최선의 대표를 이용하는 것 대신에, 공간적 예측기들의 위치들이 고려된다.
MV 메모리 압축에 대해, 다른 제안들에 비해 중대한 결과들이 획득된다. 또한, 종래 기술에 비해 계산 복잡도에 전혀 영향을 주지 않는다.
본 발명은 또한 예측기들의 집합에 다양성을 생성하기 위해 모션 벡터 유도 프로세스에 이용될 수 있다.
본 발명은 또한 모션 벡터 메모리 압축의 코딩 효율을 향상시키기 위해 이용될 수 있다. 더 정확하게는, 이 경우, 모션 벡터 메모리 압축의 블록 요약에 의해 발생되는 손실(코딩 효율성 관점에서)을 감소시킬 수 있거나, 또는 고전적인 블록 요약과 유사한 코딩 효율로 압축 비율(모션 벡터 메모리 압축의)을 증가시킬 수 있다.
확장에 의해, 본 발명의 실시 형태들은 AMVP 스킴 및 병합 모드의 코딩 효율을 향상시킬 수 있다.
이제 예시적으로 첨부 도면을 참조한다.
도 1은 전술한, 모션 벡터 메모리 요구량을 감소시키기 위한 종래의 제안을 설명할 때 이용하기 위한 개략도이다.
도 2는 또한 전술한, 모션 벡터 예측기들의 집합을 개선하기 위한 종래의 제안을 설명할 때 이용하기 위한 개략도이다.
도 3은 또한 전술한, 모션 벡터 예측기들의 집합을 개선하기 위한 다른 종래의 제안을 설명할 때 이용하기 위한 개략도이다.
도 4는 본 발명의 실시 형태에 따른 인코더 또는 디코더를 구현하기에 적합한 장치의 부분들을 도시한다.
도 5는 본 발명의 실시 형태에 따른 인코더의 부분들의 블록도를 도시한다.
도 6은 도 5의 인코더에 의해 처리된 이미지들의 시퀀스를 도시한다.
도 7은 본 발명의 실시 형태에 따른 디코더의 부분들의 블록도를 도시한다.
도 8은 도 5의 인코더와 도 7의 디코더에 의해 이용될 수 있는 모션 벡터 예측기들의 집합을 결정하는 방법을 설명할 때 이용하기 위한 개략도이다.
도 9는 도 8의 방법이 이용될 때 도 5의 인코더에 의해 수행되는 단계들의 흐름도이다.
도 10은 도 8의 방법이 이용될 때 도 7의 디코더에 의해 수행되는 단계들의 흐름도이다.
도 11은 도 5의 인코더와 도 7의 디코더에 의해 이용가능한 모션 벡터 블록 요약 방법의 흐름도이다.
도 12는 도 11의 방법의 기본 원리를 설명할 때 이용하기 위한 개략도이다.
도 13a 내지 도 13c는 도 11의 방법에 이용하기에 적합한 거리 매트릭스들을 각각 도시한다.
도 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)에서 이 디코딩된 잔차에 가산된다. 이러한 방식으로, 양자화 작업으로부터 초래되는 손실들에 의해 변형된, 원래 블록이 구해진다.
구해진 잔차들의 심한 양자화(heavy quantization)에 의해 생성된 효과를 감소시키고 신호 품질을 개선하기 위해, 재구성된 신호에 최종 루프 필터(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 중 하나의 참조 프레임을 참조한다. 따라서 참조 인덱스는 두 개의 모션 벡터 각각과 연관된다.
모션 벡터의 비-존재(non-existence)는 관련된 블록이 인트라 코딩되었거나, 또는 코딩된 모션 벡터와 연관된 리스트 내에 모션 벡터가 존재하지 않는다는 것을 의미한다. 예를 들어, 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 112019060617059-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 블록당 설정된 하나의 모션 벡터의 입상도를 이용하여, 프레임당 26Mbits가 필요한 것으로 추정된다. 모션 벡터 메모리는 고속 메모리이어야 하고, 전형적으로 RAM, 예를 들면 도 4의 RAM(1112)의 일부이다. 이것은 특히 휴대용 장치들용으로 비싼 것이다.
제1 실시 형태
이제 본 발명의 제1 실시 형태를 설명한다.
제1 실시 형태에 있어서는, 도입부에서 언급되고 도 1에 도시된 제안 JCTVC-C257 및 제안 JCTVC-D072에서와 같이, NxN 모션 벡터들의 집합의 블록 요약을 위해 하나의 블록 위치가 이용된다. 이 하나의 블록 위치에 대응하는 블록의 모션 벡터는 NxN 집합 전체에 대한 대표 모션 벡터로서 저장된다. 도 1에 도시된 바와 같이, 이 종래의 제안들은 좌상 블록의 위치를 독점적으로 이용한다. 그러나 이 요약 방법은 병치된 모션 벡터 예측기가 다른 공간적 예측기들과 경쟁 구도로 이용되는 것을 고려하지 않는다. 그 결과, 이러한 종래의 제안들이 모션 벡터 메모리 요구량에 상당한 감소(예를 들면, 도 1의 예에서 16배 감소)를 제공하지만, 그들은 코딩 효율의 면에서 패널티를 수반한다. 예를 들어, 메모리 요구량에 있어서 16배 감소의 이용은 TMuC v0.9의 코딩 효율의 0.5% 손실을 초래한다고 추정된다. 병치된 블록의 좌상 블록 위치에서 모션 벡터가 인코딩할 현재 블록의 이웃 블록들로부터의 공간적 예측들과 유사한 경우가 많기 때문에, 이 문제가 발생한다. 이것은, 병치된 모션 벡터 예측기가 전체적으로 예측기 집합에 충분한 다양성을 가져 오지 않는다는 것을 의미한다.
병치된 블록 내의 다른 블록 위치를 이용하거나, 또는 심지어 병치된 블록에 이웃하는 다른 블록 내의 블록 위치를 이용함으로써, 더 큰 다양성의 정도를 획득할 수 있다. 이것의 효과는, 상기에서 언급된 종래의 제안들과 같이 여전히 모션 벡터 메모리 요구량에 있어서 동일한 감소를 달성함에도 불구하고, 본 실시 형태는, 모든 모션 벡터가 저장되고 블록 요약이 전혀 이용되지 않는 시스템에 비해, 코딩 효율 패널티를 전혀 초래하지 않거나 또는 거의 초래하지 않는다.
본 발명의 실시 형태들은, 공간적 예측기와 시간적 예측기의 혼합을 포함하는 예측기 집합의 다양성이 예측기들이 나오는 블록들의 상대적인 위치들에 의존한다는 것을 인식한다. 하나의 예측기와 다른 예측기 간의 거리가 클수록, 예측기들이 다양하게 될 가능성이 더 커진다. 따라서, 병치된 블록 내의 블록 위치로서 공간적 예측기들의 블록 위치들로도부터의 블록 위치를 선택하는 것이 바람직할 수 있다. 물론, 거리가 너무 커서 시간적 예측기가 더 이상 병치된 블록 내의 모션 벡터들의 대표가 아니게 되는 일은 없어야 한다. 결국, 현재 블록이 병치되어 있기 때문에, 병치된 블록은 정확하게 시간적 예측기의 소스로서 선택된다. 따라서, 필요한 것은, 그 예측기와 공간적 예측기들 간의 제어된 다양성을 주는 시간적 예측기에 대한 블록 위치를 선택하는 것이다.
AMVP에서, 이용가능성 기준에 따라 특정 위치들(도 8에 도시된 위치들 A 내지 I) 중에서 공간적 예측기들이 선택되는 것이 평가될 것이다. 이것은 이용가능성에 따라, 0, 1, 또는 2개의 공간적 예측기가 선택될 수 있다는 것을 의미한다. 병치된 블록의 요약을 위해 선택할 블록의 위치는, 실제 공간적 예측기 선택(들)을 고려할 수 없는데, 그것이 공간적 예측기 선택(들) 전에 실시되기 때문이다. 병치된 블록의 블록 위치를 선택할 때 공간적 예측기 선택(들)을 고려하는 것을 가능하게 하기 위해, 병치된 블록 내의 모든 블록 위치들에 있어서의 모션 벡터들을 저장할 필요가 있을 것인데, 이것은 모션 벡터 메모리 요구량을 감소시키는 것과 양립할 수 없다.
그러나, 또한, 목적이 메모리 요구량을 감소시키는 것이 아니라 코딩 효율을 향상시키는 것일 때에는, 나중에 실시 형태들에서 설명하는 바와 같이, 병치된 블록의 블록 위치를 선택할 때 공간적 예측기 선택(들)을 고려하는 것이 가능하다.
HEVC 테스트 모델의 현재 구현에 있어서, 현재의 스킵 또는 인터 블록에 대해, 도 8을 참조하여 상기에서 설명한 바와 같이 두 개의 공간적 예측기들이 이용되지만, 병합 모드에 대해서는 네 개의 공간적 예측기가 이용된다. 그러나, 병합 모드는 스킵 모드 및 인터 모드보다 덜 자주 선택된다. 따라서, 본 실시 형태에 있어서, 우리는 2개의 공간적 예측기, 즉, 도 8에 도시된 바와 같이 좌측 예측기 및 상측 예측기를 갖는다고 가정한다. 공간적 예측기 집합에 더 많거나 적은 예측기들이 이용될 때, 본 실시 형태는 쉽게 확장될 수 있다. 또한, 본 실시 형태의 설명은 4x4 블록 요약에 기초한 모션 벡터 메모리 압축에 관련된다. 이것은 블록 요약에 이용되는 모든 다른 크기들로 쉽게 확장될 수 있다.
도 11은 제1 실시 형태의 모션 벡터 메모리 압축 프로세스에서 단일 모션 벡터로서 모션 벡터가 선택될 4x4 블록 위치를 결정하는 방법의 단계들을 도시한다. 상기에서 설명한 바와 같이, 이것은 블록 요약 프로세스로서 간주될 수 있는데, 하나의 모션 벡터가 전체 블록의 대표로서 선택되도록 하기 때문이다. 결정된 블록 위치가 아닌 블록 위치들을 갖는 블록의 비-선택된 모션 벡터들(예를 들면, 본 경우에 있어서 15개의 모션 벡터)은 저장할 필요가 없어서, 상당한 모션 벡터 메모리 압축(예를 들어, 본 경우에는 16배만큼)을 제공한다.
또한, 모션 벡터들 자체(각각은 수직 성분 및 수평 성분과, 참조 프레임 인덱스를 가짐)에 추가하여, 병치된 예측기의 유도 프로세스에 필요한 모든 다른 데이터에 블록 위치의 선택이 적용될 수 있다(MV 메모리 압축의 현재의 구현은 다른 데이터를 고려하지 않음). 이러한 데이터는, 모드(인터/인트라), 모션 벡터의 참조 프레임 인덱스, 참조 이미지들의 리스트 'L0', 'L1', 및 양방향 또는 단방향이다.
제1 단계 S1001에서, 공간적 예측기들의 잠재적인 위치들의 리스트가 수신된다. 이 위치들은 현재 블록에 비교된 상대적인 위치들이다. 블록 요약의 목적을 위해, 우리는 도 1에 도시된 바와 같이 모션 벡터들의 4x4 블록의 요약이 적용될 때, 현재 블록의 크기(픽셀들로)가 16x16이라고 간주할 수 있다. 그래서 도 8의 상측 예측기에 대한 잠재적 위치들 A, B, C, D, E와 좌측 예측기에 대한 잠재적 위치들 F, G, H, I는 알고리즘에 의해 수신된다. 간단함을 위해, 우리는 도 12에 도시된 바와 같이 이웃 블록들이 4x4(픽셀들로)인 최소 CU 크기를 갖는다고 간주할 수 있다. 그 경우, 모든 공간적 예측기 블록들은, MV 메모리 압축에 있어서 요약될 블록들의 크기인, 동일한 크기를 갖는다. 도 12에 도시된 바와 같이, 상측 예측기의 잠재적인 위치들은 TP1 내지 TP6이고 좌측 예측기의 잠재적인 위치들은 LP1 내지 LP5이다. 그런 다음, 단계 S1002에서, 알고리즘은 각 공간적 예측기에 대한 평균 위치를 결정한다. 도 12의 우리의 간단한 예에서는, 좌측 예측기의 평균 위치는 블록 LP3의 위치이며, 상측 예측기의 평균 위치는 블록 TP3과 TP4 간의 경계이다. 상측 예측기의 평균 위치가 블록 TP3과 TP4 간의 경계이기 때문에, 후속 프로세싱에서 블록 TP3과 TP4 둘 다의 위치들이 고려되지만, 좌측 예측기에 대해서는 후속 프로세싱에서 블록 LP3의 위치만이 고려된다. 그런 다음 각 예측기에 대한 거리 매트릭스가 단계 S1003에서 생성된다. 이 매트릭스는 요약되고 있는 블록의 각 가능한 블록 위치에 대한 셀을 갖고, 각 셀에는 해당 예측기의 평균 위치와 해당 셀(경우에 따라서는, 상측 예측기 또는 좌측 예측기일 수 있음)의 가능한 블록 위치 간의 최소 거리를 포함한다. 모션 벡터 메모리에 채택된 지그재그 표현에 따라 가능한 블록 위치들은 도 12에 있어서 1부터 16까지 번호가 매겨진다. 이 매트릭스의 구축은 도 13a 내지 도 13c를 참조하여 하기에서 설명된다. 그런 다음, 단계 S1004에서 두 개의 예측기들 모두의 거리 매트릭스들이 단일의 전체 거리 매트릭스를 구하기 위해 셀 별로 합산된다. 단계 S1005에서, 이 전체 거리 매트릭스의 최댓값이 식별된다. 이 최댓값에 대응하는 위치는 MV 메모리 압축의 블록 요약을 위해 이용되는 위치(1006)이다.
도 12의 1부터 16까지 번호가 매겨진 각각의 가능한 블록 위치와 평균 위치 간의 최소 거리 매트릭스를 생성하기 위해, 우리는 해당 예측기에 대한 평균 위치로부터 시작할 때 블록의 위치에 도달하기 위해 횡단해야 하는 블록의 수를 고려할 수 있다. 예를 들어, 이 측정에 의해, 좌측 예측기에 대한 거리 매트릭스를 도시하는 도 13a에 도시된 바와 같이, 관련 평균 위치 LP3과 도 12의 7번 블록 위치 간의 최소 거리는 4이다. 이 위치에 도달하기 위해, 우리는 4개의 블록인 9, 3, 4, 및 7번 블록들을 횡단할 필요가 있기 때문에 이것이 따른다. 이 측정에서, 우리는 거리를 계산하기 위해 대각선 경우를 고려하지 않았지만, 원한다면, 그러한 경우가 이용될 수 있다. 또한, 다른 거리 측정이 본 알고리즘에 이용될 수 있다.
도 13a 및 도 13b는 각각 좌측 예측기 및 상측 예측기에 대한 이 측정에 의해 계산된 거리 매트릭스들을 도시한다. 또한, 도 13c는 도 13a와 도 13b의 이 두 개의 매트릭스를 셀 별로 합산함으로써 형성된 전체 거리 매트릭스를 도시한다.
우하 블록 위치인 16번 블록 위치에 대한 최댓값이 10이라는 것을 관찰할 수 있다(도 12 참조). 이것은 상측 예측기 및 좌측 예측기가 이용되는 경우에 알고리즘에 의해 식별되는 블록 위치이다.
제1 실시 형태에 있어서, 동일 알고리즘이 디코더에 의해 실행될 뿐만 아니라, 디코더는 인코더와 같은 블록 위치를 선택하고, 선택되지 않은 블록 위치들의 모션 벡터들을 저장하는 것을 회피한다. 따라서, 모션 벡터의 메모리 요구량에 있어서의 마찬가지의 감소가 또한 디코더에서도 달성된다.
제2 실시 형태
제1 실시 형태에 있어서는, 다른 위치들 TP1 내지 TP6 및 LP1 내지 LP5에서의 공간적 예측기들의 선택의 가능성이 고려되지 않는다. 그러나, 도 8을 참조하여 이미 설명한 바와 같이, AMVP 프로세스에 있어서, 상측 예측기에 대한 검색은 가장 우측 위치로부터 시작하여 가장 좌측 위치로 이동한다. 따라서, 위치 TP6에서의 예측기가 위치 TP5에서의 예측기보다 더 빈번히 선택될 것이고, 도 12에 있어서 우측으로부터 좌측으로도 그럴 것으로 예상된다. 검색이 하측 위치에서 시작하여 상측 위치로 향해 이동하는, 좌측 예측기에 대해서도 마찬가지이다. 선택의 상대적 빈도수를 고려하여, 상측 예측기에 대한 평균 위치를 우측으로, 좌측 예측기에 대한 평균 위치를 하측으로 조정하는 것이 바람직할 수 있다. 각 예측기에 대한 평균 위치는 잠재적인 위치들의 가중 평균으로서 계산될 수 있고, 가중치들은 상대적인 선택 빈도수들을 반영한다.
제3 실시 형태
상기에서 설명한 제1 및 제2 실시 형태에 있어서, 인코더는 두 개의 공간적 예측기(상측 예측기 및 좌측 예측기)를 이용한다. 제3 실시 형태에 있어서, 인코더는 공간적 예측기 집합에서 오직 하나의 공간적 예측기만을 이용한다. 예를 들어, 좌측 예측기만이 이용되면, 도 13a에 주어진 좌측 예측기의 거리 매트릭스는 최선의 위치를 찾기 위해 이용된다. 그 경우, 선택된 위치는 블록 위치 번호 6이며, 우상측 블록이다. 상측 예측기만이 이용된다면, 두 개의 블록 위치(블록 위치 번호 11 및 블록 위치 번호 16)가 최댓값을 갖는다. 그 경우, AMVP가 도 8을 참조하여 설명한 바와 같이 이용된다면, 이론적으로 우측으로부터의 예측기들이 좌측으로부터의 예측기들보다 더 선택된다(설명한 바와 같이, HEVC 유도 프로세스에서 예측기들은 E로부터 A까지 선택됨). 그래서, 알고리즘은 11번 블록의 이용을 고려할 수 있는데, 그것이 가장 먼 블록이어야 하기 때문이다.
제4 실시 형태
상기에서 설명한 바와 같이 제1, 제2, 및 제3 실시 형태에 있어서, 인코딩할 모든 블록들은 두 개의 공간적 예측기들(상측 예측기 및 좌측 예측기)을 가질 수 있다고 가정된다. 따라서 블록 요약의 목적을 위해 블록들 간에 구별되지 않는다.
제4 실시 형태에 있어서, 블록 요약의 목적을 위해 적어도 하나의 블록은 다른 블록과는 다르게 취급된다.
예를 들어, 인코더와 디코더는 오직 하나의 공간적 예측기만 존재하는 또는 공간적 예측기가 전혀 존재하지 않는 이미지의 어떤 영역을 알 수 있다. 특히, 인코더와 디코더는 프레임 경계(프레임 경계는 모든 프레임들에 대해 동일한 위치를 갖는다)를 안다. 따라서, 알고리즘은 이 특정 지식을 고려할 수 있다. 예를 들어, 프레임의 좌상 블록에 대해서는 어떠한 예측기도 이용가능하지 않다. 그 경우, 알고리즘은 블록 요약을 위한 최선의 블록 위치가 블록의 중심이라는 것을 알아낼 수 있다. 상측 경계를 따른 블록들에 대해서, 좌측 예측기만이 이용가능할 수 있으며, 알고리즘에 의해 선택된 블록 위치는 (제3 실시 형태에 있어서와 같이) 6번 우상 블록 위치이다. 좌측 경계를 따른 블록들에 대해 단지 일부 상측 예측기들만이 이용가능하다. 알고리즘은 위치가 블록 번호 11, 즉, 좌하측 위치라는 것을 알 수 있다. 실제로, 도 12의 위치 TP1은 좌측 경계에 대해 결코 이용가능하지 않기 때문에, 위치들의 평균은 TP4(TP3과 TP4 간의 경계는 아님)이고, 결과적으로 알고리즘은 가장 먼 위치로서의 블록 번호 11을 찾는다.
비트스트림 내의 모든 프레임들이 정확히 동일한 슬라이싱을 갖는다면(즉, 각 슬라이스가 모든 프레임들에 대해 정확히 동일한 위치를 갖는다면), 본 실시 형태는 슬라이스 경계에 대해 확장될 수 있다.
제5 실시 형태
이전의 실시 형태들에 있어서 디코더는 블록 요약을 위해 블록 위치를 결정하는 인코더와 같은 프로세싱을 수행한다.
제5 실시 형태에 있어서, 오직 인코더만이 알고리즘을 이용하고, 블록 요약을 위해 이용되는 블록의 위치가 비트스트림으로 디코더(시퀀스/영상/슬라이스 헤더)에 전송된다.
제6 실시 형태
이전의 실시 형태들에 있어서 인코더(그리고, 제5 실시 형태를 제외하고는, 디코더)는 블록 위치를 결정하기 위해 도 11의 알고리즘을 수행한다.
제6 실시 형태에 있어서, 인코더 및 디코더는 공간적 예측기들의 이용 및 불이용에 따른 블록의 위치를 포함하는 표를 참조한다. 그러한 표의 예는 하기의 표 2에 주어진다. 이 표는 도 11과 동일한 알고리즘을 이용하여 사전에 결정된다. 이 솔루션은 항상 알고리즘을 적용하는 것보다 덜 복잡하다. 다음의 표는 전술한 예에 대한 이 특별한 표를 나타낸다. 위치들은 도 12를 참조한다.
Figure 112019060617059-pat00002
제7 실시 형태
본 실시 형태는 제6 실시 형태의 사상을 더욱더 확장한다. AMVP 또는 병합 모드에 이용되는 공간 블록이 무엇이든, 우하측 블록 위치가 항상 블록 요약에 이용된다. 이것은 프로세싱 부담을 절감하고, 어느 블록 위치가 결정되었다고 디코더에 시그널링할 필요가 없다.
제8 실시 형태
이전의 실시 형태들은 블록 요약이 모든 블록들에 균일하게 적용되는 것으로 가정한다. 그러나, HEVC에서, 상이한 크기들의 블록들이 허용된다. 블록의 하나의 크기에 대한 블록 위치들은 블록의 다른 크기에 대해 최적이 아닐 수 있다. 예를 들어, 표 2에 나타낸 블록 위치들은 작은 블록, 예를 들면, 4x4 블록에 대해 잘 작용하는 것으로 확인되었지만, 큰 블록의 경우에, 다른 블록 위치들을 이용하는 것이 더 양호할 수 있다.
제8 실시 형태에 있어서, 블록 위치를 결정할 때 블록 크기를 고려할 수 있다. 이것은 각각의 다른 블록 크기에 대해 도 13c와 유사한 거리 매트릭스를 갖는 것으로써 달성될 수 있다.
제9 실시 형태
제1 블록 크기에 대한 하나의 미리 정해진 블록 위치로부터 제2 블록 크기에 대한 다른 미리 정해진 블록 위치로 간단히 전환함으로써 제8 실시 형태를 단순화할 수 있다. 예를 들어, 블록 크기가, 예를 들면 16x16(픽셀들) 이하로 작을 때, 우하 블록 위치가 항상 선택될 수 있지만, 블록 크기가, 예를 들면 32x32(픽셀들) 이상으로 클 때, 중심 블록 위치가 항상 선택될 수 있으며, 도 2의 섀이딩된(shaded) 블록의 위치를 참조한다.
본 실시 형태에 대한 시뮬레이션 결과는 유망하다. 도입부에서 언급한 종래의 제안 JCT-VC D164에서와 같이, 모든 경우들에 대해 중심 블록 위치를 이용하는 것에 비해 비트레이트 절감(코딩 효율 향상)이 획득되었다.
원한다면, 표 2에 나타낸 종류의 표가 이용가능한 예측기들의 각 순열에 대해 적합한 블록 위치들을 포함한다.
큰 블록의 경우에 우하 위치가 전체적으로 중심 블록만큼 블록을 대표할 수 없기 때문에, 보다 큰 블록들에 대해서는 중심 블록 위치가 우하 위치보다 더 잘 작용하는 것으로 생각된다. 이것은 작은 블록들의 경우에 대해서는 아닌데, 수반되는 작은 거리들로 인해 우하 위치가 여전히 전체적으로 블록을 대표하고 여전히 공간적 예측기들에 대한 제어된 다양성을 도입하기 때문이다.
제10 실시 형태
제10 실시 형태에 있어서, JCT-VC D164에 이용된 블록 위치(들)는 큰 블록들에 대해 이용되고 우하 블록 위치는 작은 블록들에 대해 이용된다.
제11 실시 형태
이전의 실시 형태들에 있어서, 블록 요약을 위해 선택된 블록 위치는 병치된 블록의 블록 위치들 중 하나이었다. 그러나, 선택된 블록 위치를 병치된 블록 내의 것으로 제한할 필요는 없다. 예를 들어, 병치된 블록의 우하 위치 대신에, 병치된 블록에 이웃하는 동일 참조 프레임 내의 다른 블록으로부터의 그 우하 위치의 근방의 블록 위치를 이용하는 것이 가능하게 될 것이다. 예를 들어, 블록 위치는 병치된 블록의 바로 우측의 블록 내의 좌하 위치일 수 있거나, 또는 병치된 블록 바로 아래의 블록 내의 우상 위치일 수 있거나, 또는 병치된 블록의 대각선 하방의 우측 블록 내의 좌상 위치일 수 있다.
제12 실시 형태
도입부에서 설명한 JCT-VC D125에서, 4개의 시간적 예측기가 이용되는데, 병치된 블록으로부터의 하나(T)와, 병치된 블록의 좌상, 좌하, 및 우하 코너들에 있는 병치된 블록의 외부로부터의 다른 세 개(E, H, 및 I)이다. 시간적 예측기들 중 하나로서 T를 이용하는 것 대신에 병치된 블록 내의 우하 블록 위치를 이용하는 것이 가능할 것이다. 그러나 이것은 아마도 다양성의 관점에서 양호한 타협을 제공하지 않는데, 이에 있어서 중심이 최선일 것이다. 그러나 예측기 인덱스의 코딩의 관점에서, 우하가 예측기 H와 더 자주 동일할 수 있기 때문에(하나의 예측기가 종종 제거됨), 이것은 이점을 갖는다. 실제로, JCT-VC D125의 기여에 있어서 너무 많은 예측기들이 이용되어, D125는 예측기 인덱스에 대한 전용 레이트를 증가시킨다.
제13 실시 형태
이전의 실시 형태들에 있어서, 블록 위치는 모션 벡터 메모리 요구량을 감소시킬 목적으로 선택되었다.
제13 실시 형태에 있어서, 블록 위치는 코딩 효율을 개선하기 위한 목적으로 선택된다. 이것은, 공간적 예측기들에 의해 제어된 다양성을 달성하도록 참조 프레임으로부터, 예를 들면, 병치된 블록 내의 적합한 블록 위치로부터 시간적 예측기가 선택된다면, 시간적 예측기는 예측기의 레이트-왜곡 선택이 행해질 때 공간적 예측기에 대한 양호한 경쟁자가 되는 경향이 있기 때문이다. 시간적 예측기가 공간적 예측기들보다 더 양호한 예측기이면, 이 예측기를 향상시키는 것이(그것을 인코딩할 블록에 대해 필요한 모션 벡터에 더 가깝게 함으로써 잔차를 최소화한다는 관점에서) 코딩 효율을 위해 양호하다.
원칙적으로, 전술한 제1 내지 제12 실시 형태 모두는 코딩 효율을 향상시키기 위한 목적으로 블록 위치를 선택하기 위해 이용될 수 있다. 제13 실시 형태에 있어서, 모션 벡터들이 여전히 모두 저장될 수 있으며, 즉, 모션 벡터 메모리 감소를 채택하는 것이 필수적이지 않다. 그러나, 그러한 감소는 많은 경우들에 있어서 바람직하다.
제14 실시 형태
모든 블록 위치들에 있어서의 모션 벡터들이 저장된다면, 최선의 블록 위치를 선택할 때 공간적 예측기들의 선택의 실제 결과를 고려할 수 있다. 예를 들어, 도 12에서, 오직 상측 예측기만이 이용가능하고 위치 TP6이 선택된다면, 11번 블록 위치가 선택될 수 있다. 반면에, 오직 상측 예측기만이 이용가능하고 위치 TP1이 선택된다면, 16번 블록 위치가 선택될 수 있다. 상측 예측기 및 좌측 예측기의 조합이 이용가능했다면, 또다시 선택된 상측 예측기 및 좌측 예측기의 위치들에 의존하여, 다른 블록 위치들이 더 양호할 것이다. 일반적으로, 공간적 예측기 선택의 각 가능한 결과를 위해, 최선의 블록 위치가 결정될 수 있다. 최선의 블록 위치들은 각각의 다른 결과에 대한 항목을 갖는 대조표(look-up table)에 저장될 수 있다.
상기에서 설명한 실시 형태들은 입력 이미지들의 블록 파티션들에 기초하지만, 더 일반적으로는, 인코딩 또는 디코딩할 임의의 타입의 이미지 부분들, 특히 직사각형 부분들 또는 더 일반적으로는 기하학적 부분들이 고려될 수 있다.
더 일반적으로, 당업자가 용이하게 생각할 수 있는 전술한 실시 형태들의 임의의 수정 또는 개량은 본 발명의 범위에 속하는 것으로 간주되어야 한다.

Claims (16)

  1. 비디오 프레임의 적어도 일부가 기준 프레임에 대하여 인터 예측에 의해 인코딩되는 디지털 이미지들의 인코딩된 시퀀스를 포함하는 비트스트림을 디코딩하는 방법으로서, 상기 방법은,
    디코딩될 현재 비디오 프레임의 일부를 형성하는 디코딩할 블록의 이웃하는 대각선 위 우측의 블록과 연관된 모션 벡터를, 이용가능하다면, 공간적 모션 벡터 예측기 후보로서 선택함으로써 상기 공간적 모션 벡터 예측기 후보를 생성하는 단계, 및
    상기 현재 비디오 프레임과는 다른 기준 프레임에서 상기 디코딩할 블록에 대응되는 위치에 있는 영역에 이웃하는 대각선 아래 우측에 있는 블록의 가장 위 좌측 위치에 연관된 모션 벡터를, 이용가능하다면, 시간적 모션 벡터 예측기 후보로서 선택함으로써, 상기 시간적 모션 벡터 예측기 후보를 생성하는 단계에 의해 상기 디코딩할 블록에 대한 모션 벡터 예측기 후보들을 생성하는 것을 포함하고,
    생성된 시간적 모션 벡터 예측기 후보의 개수는 1 이하인, 비트스트림을 디코딩하는 방법.
  2. 제1항에 있어서,
    상기 공간적 모션 벡터 예측기 후보는, 상기 시간적 모션 벡터 예측기 후보가 생성되기 전에 선택되는, 비트스트림을 디코딩하는 방법.
  3. 제1항에 있어서,
    상기 영역은 상기 디코딩할 블록과 동일한 위치 및 동일한 크기를 갖는, 비트스트림을 디코딩하는 방법.
  4. 삭제
  5. 제1항에 있어서,
    모션 벡터 예측기로서 상기 생성된 하나 이상의 모션 벡터 예측기 후보를 사용함으로써 상기 비디오 프레임의 상기 일부를 디코딩하는 단계를 포함하는, 비트스트림을 디코딩하는 방법.
  6. 비디오 프레임의 적어도 일부가 기준 프레임에 대하여 인터 예측에 의해 인코딩되는 디지털 이미지들의 인코딩된 시퀀스를 포함하는 비트스트림을 디코딩하는 장치로서,
    디코딩될 현재 비디오 프레임의 일부를 형성하는 디코딩할 블록의 이웃하는 대각선 위 우측의 블록과 연관된 모션 벡터를, 이용가능하다면, 공간적 모션 벡터 예측기 후보로서 선택함으로써 상기 공간적 모션 벡터 예측기 후보를 생성하는 수단, 및
    상기 현재 비디오 프레임과는 다른 기준 프레임에서 상기 디코딩할 블록에 대응되는 위치에 있는 영역에 이웃하는 대각선 아래 우측에 있는 블록의 가장 위 좌측 위치에 연관된 모션 벡터를, 이용가능하다면, 시간적 모션 벡터 예측기 후보로서 선택함으로써, 상기 시간적 모션 벡터 예측기 후보를 생성하는 수단을 포함하고,
    생성된 시간적 모션 벡터 예측기 후보의 개수는 1 이하인, 비트스트림을 디코딩하는 장치.
  7. 제6항에 있어서,
    상기 공간적 모션 벡터 예측기 후보를 선택하는 수단은, 상기 시간적 모션 벡터 예측기 후보가 생성되기 전에 상기 공간적 모션 벡터 예측기 후보를 선택하는, 비트스트림을 디코딩하는 장치.
  8. 제6항에 있어서,
    상기 영역은 상기 디코딩할 블록과 동일한 위치 및 동일한 크기를 갖는, 비트스트림을 디코딩하는 장치.
  9. 삭제
  10. 제6항에 있어서,
    모션 벡터 예측기로서 상기 생성된 하나 이상의 모션 벡터 예측기 후보를 사용함으로써 상기 비트스트림을 디코딩하는 수단을 포함하는, 비트스트림을 디코딩하는 장치.
  11. 삭제
  12. 비디오 프레임의 적어도 일부가 기준 프레임에 대하여 인터 예측에 의해 인코딩되는 비트스트림으로 디지털 이미지들의 시퀀스를 인코딩하는 방법으로서, 상기 방법은,
    인코딩될 현재 비디오 프레임의 일부를 형성하는 인코딩할 블록의 이웃하는 대각선 위 우측의 블록과 연관된 모션 벡터를, 이용가능하다면, 공간적 모션 벡터 예측기 후보로서 선택함으로써 상기 공간적 모션 벡터 예측기 후보를 생성하는 단계, 및
    상기 현재 비디오 프레임과는 다른 기준 프레임에서 상기 인코딩할 블록에 대응되는 위치에 있는 영역에 이웃하는 대각선 아래 우측에 있는 블록의 가장 위 좌측 위치에 연관된 모션 벡터를, 이용가능하다면, 시간적 모션 벡터 예측기 후보로서 선택함으로써, 상기 시간적 모션 벡터 예측기 후보를 생성하는 단계에 의해 상기 인코딩할 블록에 대한 모션 벡터 예측기 후보들을 생성하는 것을 포함하고,
    생성된 시간적 모션 벡터 예측기 후보의 개수는 1 이하인, 디지털 이미지들의 시퀀스를 인코딩하는 방법.
  13. 삭제
  14. 비디오 프레임의 적어도 일부가 기준 프레임에 대하여 인터 예측에 의해 인코딩되는 비트스트림으로 디지털 이미지들의 시퀀스를 인코딩하는 장치로서,
    인코딩될 현재 비디오 프레임의 일부를 형성하는 인코딩할 블록의 이웃하는 대각선 위 우측의 블록과 연관된 모션 벡터를, 이용가능하다면, 공간적 모션 벡터 예측기 후보로서 선택함으로써 상기 공간적 모션 벡터 예측기 후보를 생성하는 수단, 및
    상기 현재 비디오 프레임과는 다른 기준 프레임에서 상기 인코딩할 블록에 대응되는 위치에 있는 영역에 이웃하는 대각선 아래 우측에 있는 블록의 가장 위 좌측 위치에 연관된 모션 벡터를, 이용가능하다면, 시간적 모션 벡터 예측기 후보로서 선택함으로써, 상기 시간적 모션 벡터 예측기 후보를 생성하는 수단을 포함하고,
    생성된 시간적 모션 벡터 예측기 후보의 개수는 1 이하인, 디지털 이미지들의 시퀀스를 인코딩하는 장치.
  15. 프로그램을 기록한 컴퓨터 판독가능 기록매체로서, 상기 프로그램은 컴퓨터 또는 프로세서에서 실행될 때, 상기 컴퓨터 또는 프로세서로 하여금, 제1항 내지 제3항, 제5항 및 제12항 중 어느 한 항에 기재된 방법을 수행시키는, 컴퓨터 판독가능 기록 매체.
  16. 삭제
KR1020197017062A 2011-03-09 2012-03-08 비디오 인코딩 및 디코딩 KR102090438B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1104033.4A GB2488815C (en) 2011-03-09 2011-03-09 Video decoding
GB1104033.4 2011-03-09
PCT/EP2012/001041 WO2012119776A1 (en) 2011-03-09 2012-03-08 Video encoding and decoding

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020187018665A Division KR101991074B1 (ko) 2011-03-09 2012-03-08 비디오 인코딩 및 디코딩

Publications (2)

Publication Number Publication Date
KR20190072670A KR20190072670A (ko) 2019-06-25
KR102090438B1 true KR102090438B1 (ko) 2020-03-17

Family

ID=43923467

Family Applications (5)

Application Number Title Priority Date Filing Date
KR1020137025739A KR101409145B1 (ko) 2011-03-09 2012-03-08 비디오 인코딩 및 디코딩
KR1020197017062A KR102090438B1 (ko) 2011-03-09 2012-03-08 비디오 인코딩 및 디코딩
KR1020137027767A KR101875250B1 (ko) 2011-03-09 2012-03-08 비디오 인코딩 및 디코딩
KR1020197017058A KR102090437B1 (ko) 2011-03-09 2012-03-08 비디오 인코딩 및 디코딩
KR1020187018665A KR101991074B1 (ko) 2011-03-09 2012-03-08 비디오 인코딩 및 디코딩

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020137025739A KR101409145B1 (ko) 2011-03-09 2012-03-08 비디오 인코딩 및 디코딩

Family Applications After (3)

Application Number Title Priority Date Filing Date
KR1020137027767A KR101875250B1 (ko) 2011-03-09 2012-03-08 비디오 인코딩 및 디코딩
KR1020197017058A KR102090437B1 (ko) 2011-03-09 2012-03-08 비디오 인코딩 및 디코딩
KR1020187018665A KR101991074B1 (ko) 2011-03-09 2012-03-08 비디오 인코딩 및 디코딩

Country Status (13)

Country Link
US (5) US8824555B2 (ko)
EP (5) EP3422712B1 (ko)
KR (5) KR101409145B1 (ko)
CN (6) CN106878711B (ko)
BR (5) BR122020002123B1 (ko)
DK (1) DK2684362T3 (ko)
ES (5) ES2755357T3 (ko)
GB (3) GB2501835B (ko)
HU (4) HUE046357T2 (ko)
PL (4) PL3609180T3 (ko)
RU (5) RU2642329C1 (ko)
TR (1) TR201820537T4 (ko)
WO (1) WO2012119776A1 (ko)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102139535B1 (ko) * 2007-10-16 2020-07-30 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US8711940B2 (en) * 2010-11-29 2014-04-29 Mediatek Inc. Method and apparatus of motion vector prediction with extended motion vector predictor
GB2501835B (en) 2011-03-09 2014-09-03 Canon Kk Video encoding and decoding
EP3681160A1 (en) 2011-03-09 2020-07-15 Kabushiki Kaisha Toshiba Video image encoding method and video image decoding method
EP3879832A1 (en) * 2011-05-31 2021-09-15 JVCKENWOOD Corporation Moving image encoding device, moving image encoding method and moving image encoding program, as well as moving image decoding device, moving image decoding method and moving image decoding program
US8693551B2 (en) 2011-11-16 2014-04-08 Vanguard Software Solutions, Inc. Optimal angular intra prediction for block-based video coding
WO2014053087A1 (en) 2012-10-03 2014-04-10 Mediatek Inc. Method and apparatus of motion data buffer reduction for three-dimensional video coding
US9106922B2 (en) * 2012-12-19 2015-08-11 Vanguard Software Solutions, Inc. Motion estimation engine for video encoding
US9491460B2 (en) * 2013-03-29 2016-11-08 Qualcomm Incorporated Bandwidth reduction for video coding prediction
JP5680778B2 (ja) * 2014-03-31 2015-03-04 株式会社東芝 動画像符号化方法及び動画像復号化方法
JP5893178B2 (ja) * 2015-01-06 2016-03-23 株式会社東芝 動画像符号化方法及び動画像復号化方法
WO2016143972A1 (ko) * 2015-03-11 2016-09-15 엘지전자(주) 비디오 신호의 인코딩/디코딩 방법 및 장치
US10200716B2 (en) * 2015-06-25 2019-02-05 Sony Interactive Entertainment Inc. Parallel intra-prediction encoding/decoding process utilizing PIPCM and/or PIDC for selected sections
CN106331724B (zh) * 2015-06-26 2019-05-24 北京君正集成电路股份有限公司 一种hevc中的运动矢量预测方法及装置
JP2016106494A (ja) * 2016-02-12 2016-06-16 株式会社東芝 動画像符号化方法及び動画像復号化方法
US9866862B2 (en) * 2016-03-18 2018-01-09 Google Llc Motion vector reference selection through reference frame buffer tracking
US10819951B2 (en) 2016-11-30 2020-10-27 Microsoft Technology Licensing, Llc Recording video from a bitstream
JP6503014B2 (ja) * 2017-06-16 2019-04-17 株式会社東芝 動画像符号化方法及び動画像復号化方法
WO2019036080A1 (en) * 2017-08-15 2019-02-21 Google Llc ESTIMATION OF CONSTRAINED MOTION FIELD FOR INTERPRETING
US10284869B2 (en) 2017-09-28 2019-05-07 Google Llc Constrained motion field estimation for hardware efficiency
US10880573B2 (en) 2017-08-15 2020-12-29 Google Llc Dynamic motion vector referencing for video coding
EP3474225B1 (en) * 2017-10-18 2019-09-25 Axis AB Method and encoder for encoding a video stream in a video coding format supporting auxiliary frames
CN109905714B (zh) * 2017-12-08 2022-12-27 华为技术有限公司 帧间预测方法、装置及终端设备
JP6510084B2 (ja) * 2018-01-05 2019-05-08 株式会社東芝 動画像復号化方法及び電子装置
WO2019151297A1 (ja) * 2018-01-30 2019-08-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法及び復号方法
KR20240005240A (ko) 2018-06-29 2024-01-11 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut에서의 모션 후보들의 검사 순서
CN110662059B (zh) 2018-06-29 2021-04-20 北京字节跳动网络技术有限公司 使用查找表存储先前编码的运动信息并用其编码后续块的方法和装置
TWI735900B (zh) * 2018-06-29 2021-08-11 大陸商北京字節跳動網絡技術有限公司 一種視頻處理方法和裝置
TWI744662B (zh) 2018-06-29 2021-11-01 大陸商北京字節跳動網絡技術有限公司 更新查閱資料表(lut)的條件
CA3101730A1 (en) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Partial/full pruning when adding a hmvp candidate to merge/amvp
TWI723445B (zh) 2018-06-29 2021-04-01 大陸商北京字節跳動網絡技術有限公司 查找表的更新:fifo、約束的fifo
CA3105330C (en) 2018-06-29 2023-12-05 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and amvp
EP3791589A1 (en) 2018-06-29 2021-03-17 Beijing Bytedance Network Technology Co. Ltd. Which lut to be updated or no updating
KR102648120B1 (ko) 2018-06-29 2024-03-18 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 슬라이스/타일/lcu 행마다의 룩업 테이블 리셋
CN110662053B (zh) 2018-06-29 2022-03-25 北京字节跳动网络技术有限公司 使用查找表的视频处理方法、装置和存储介质
CN110677666B (zh) 2018-07-02 2022-06-14 北京字节跳动网络技术有限公司 Lamvr中取整和修剪的顺序
GB2590310B (en) 2018-09-12 2023-03-22 Beijing Bytedance Network Tech Co Ltd Conditions for starting checking HMVP candidates depend on total number minus K
CN113056920A (zh) 2018-11-22 2021-06-29 北京字节跳动网络技术有限公司 基于子块的帧间预测的协调方法
WO2020135482A1 (en) * 2018-12-29 2020-07-02 Beijing Bytedance Network Technology Co., Ltd. Construction method for default motion candidate in sub-block based inter prediction
WO2020140244A1 (zh) * 2019-01-03 2020-07-09 北京大学 一种视频图像处理方法、设备及存储介质
KR20240010576A (ko) 2019-01-10 2024-01-23 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut 업데이트의 호출
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中的运动候选的插入顺序
BR112021014788A2 (pt) * 2019-01-28 2021-09-28 Op Solutions, Llc Interpredição em divisão geométrica com um número adaptativo de regiões
US10979716B2 (en) * 2019-03-15 2021-04-13 Tencent America LLC Methods of accessing affine history-based motion vector predictor buffer
WO2020192611A1 (en) 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
CN110213590B (zh) * 2019-06-25 2022-07-12 浙江大华技术股份有限公司 时域运动矢量获取、帧间预测、视频编码的方法及设备
EP3997877A4 (en) 2019-08-13 2023-05-24 Beijing Bytedance Network Technology Co., Ltd. MOTION ACCURACY IN SUBBLOCK-BASED INTERPREDICTION
WO2021052507A1 (en) 2019-09-22 2021-03-25 Beijing Bytedance Network Technology Co., Ltd. Sub-picture coding and decoding of video
JP7359653B2 (ja) * 2019-11-06 2023-10-11 ルネサスエレクトロニクス株式会社 動画像符号化装置
JP6871343B2 (ja) * 2019-11-28 2021-05-12 株式会社東芝 動画像符号化方法及び動画像復号化方法
JP6871442B2 (ja) * 2020-01-21 2021-05-12 株式会社東芝 動画像符号化方法及び動画像復号化方法
JP6871447B2 (ja) * 2020-02-03 2021-05-12 株式会社東芝 動画像符号化方法及び動画像復号化方法
CN116156174B (zh) * 2023-02-23 2024-02-13 格兰菲智能科技有限公司 数据编码处理方法、装置、计算机设备和存储介质

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002065784A1 (en) * 2001-02-13 2002-08-22 Koninklijke Philips Electronics N.V. Motion information coding and decoding method
JP2002281505A (ja) * 2001-03-16 2002-09-27 Toshiba Corp 動画像圧縮装置、同装置のカット検出用データ作成方法およびカット位置データ作成方法ならびにカット検出装置および同装置のカット検出方法
US7801215B2 (en) * 2001-07-24 2010-09-21 Sasken Communication Technologies Limited Motion estimation technique for digital video encoding applications
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
KR100865034B1 (ko) * 2002-07-18 2008-10-23 엘지전자 주식회사 모션 벡터 예측 방법
KR100902315B1 (ko) * 2002-07-25 2009-06-12 삼성전자주식회사 디인터레이싱장치 및 방법
EP1422946A4 (en) 2002-07-26 2008-04-02 Matsushita Electric Ind Co Ltd MOVING IMAGE PROCEDURE, MOVABLE IMAGE DECODING METHOD AND RECORD MEDIUM
US7450642B2 (en) * 2002-11-13 2008-11-11 Sony Corporation Fast motion vector prediction method
US7020201B2 (en) * 2002-11-20 2006-03-28 National Chiao Tung University Method and apparatus for motion estimation with all binary representation
US7567617B2 (en) * 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7362809B2 (en) * 2003-12-10 2008-04-22 Lsi Logic Corporation Computational reduction in motion estimation based on lower bound of cost function
US8861589B2 (en) * 2004-01-30 2014-10-14 Broadcom Corporation Detection and phase lock of pull-down video
GB0500174D0 (en) * 2005-01-06 2005-02-16 Kokaram Anil Method for estimating motion and occlusion
WO2006109205A1 (en) * 2005-04-12 2006-10-19 Koninklijke Philips Electronics N.V. Region- based 3drs motion estimation using dynamic asoect ratio of region
EP1905244A4 (en) * 2005-07-18 2010-12-01 Korea Electronics Telecomm PREDICTIVE ENCODING / DECODING DEVICE THROUGH SPATIO-TEMPORAL DIMENSIONAL REFERENCE IMAGE PADS AND METHOD OF USE
US7620108B2 (en) * 2005-09-16 2009-11-17 Sony Corporation Integrated spatial-temporal prediction
US8320450B2 (en) * 2006-03-29 2012-11-27 Vidyo, Inc. System and method for transcoding between scalable and non-scalable video codecs
US8111750B2 (en) * 2007-03-20 2012-02-07 Himax Technologies Limited System and method for 3-D recursive search motion estimation
US20080285651A1 (en) * 2007-05-17 2008-11-20 The Hong Kong University Of Science And Technology Spatio-temporal boundary matching algorithm for temporal error concealment
KR102139535B1 (ko) * 2007-10-16 2020-07-30 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
CN101163244A (zh) * 2007-11-22 2008-04-16 上海交通大学 视频解码器运动补偿过程中的像素缓存方法及系统
WO2009115901A2 (en) 2008-03-19 2009-09-24 Nokia Corporation Combined motion vector and reference index prediction for video coding
US20090304293A1 (en) * 2008-06-08 2009-12-10 Te-Hao Chang Motion estimation method and related apparatus for efficiently selecting motion vector
CN101365137B (zh) * 2008-09-12 2010-08-25 华为技术有限公司 运动补偿参考数据载入方法和装置及解码器和编解码系统
KR101279573B1 (ko) * 2008-10-31 2013-06-27 에스케이텔레콤 주식회사 움직임 벡터 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
US20120012102A1 (en) * 2009-04-16 2012-01-19 Mitaka Kohki Co., Ltd. Solar power concentrating system
CN101931803B (zh) * 2009-06-26 2013-01-09 华为技术有限公司 视频图像运动信息获取方法、装置及设备、模板构造方法
BR112012000002B1 (pt) 2009-07-03 2021-11-23 France Telecom Método para predizer um vetor de movimento de uma partição de imagem corrente, método para codificar uma imagem, método para decodificar um fluxo de dados representativo de uma imagem, dispositivo para predizer um vetor de movimento de uma partição de imagem corrente, dispositivo para codificar uma imagem e dispositivo para decodificar um fluxo de dados
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
KR101522850B1 (ko) * 2010-01-14 2015-05-26 삼성전자주식회사 움직임 벡터를 부호화, 복호화하는 방법 및 장치
CN101827269B (zh) * 2010-01-15 2012-10-17 香港应用科技研究院有限公司 视频编码方法和装置
CN101815218B (zh) * 2010-04-02 2012-02-08 北京工业大学 基于宏块特征的快速运动估计视频编码方法
US9137544B2 (en) * 2010-11-29 2015-09-15 Mediatek Inc. Method and apparatus for derivation of mv/mvp candidate for inter/skip/merge modes
US8711940B2 (en) * 2010-11-29 2014-04-29 Mediatek Inc. Method and apparatus of motion vector prediction with extended motion vector predictor
GB2487197B (en) * 2011-01-11 2015-06-17 Canon Kk Video encoding and decoding with improved error resilience
KR20220070072A (ko) * 2011-02-09 2022-05-27 엘지전자 주식회사 움직임 정보 저장 방법 및 이를 이용한 시간적 움직임 벡터 예측자 유도 방법
GB2501835B (en) 2011-03-09 2014-09-03 Canon Kk Video encoding and decoding
EP3879832A1 (en) * 2011-05-31 2021-09-15 JVCKENWOOD Corporation Moving image encoding device, moving image encoding method and moving image encoding program, as well as moving image decoding device, moving image decoding method and moving image decoding program
US9826244B2 (en) * 2013-01-08 2017-11-21 Qualcomm Incorporated Device and method for scalable coding of video information based on high efficiency video coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Jian-Liang Kin et al., Improved Advanced Motion Vector Prediction, JCT-VC of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, JCTVC-D125, 23 Jan., 2011..*

Also Published As

Publication number Publication date
KR20190072668A (ko) 2019-06-25
CN103416058A (zh) 2013-11-27
KR20130125398A (ko) 2013-11-18
KR20180081623A (ko) 2018-07-16
PL3422713T3 (pl) 2020-03-31
RU2564252C2 (ru) 2015-09-27
ES2875939T3 (es) 2021-11-11
RU2701455C2 (ru) 2019-09-26
CN107071414B (zh) 2020-12-22
US10812821B2 (en) 2020-10-20
BR122020002123B1 (pt) 2023-05-02
HUE041213T2 (hu) 2019-05-28
HUE055245T2 (hu) 2021-11-29
DK2684362T3 (en) 2016-10-10
CN107087166A (zh) 2017-08-22
US20190014338A1 (en) 2019-01-10
EP2684362B9 (en) 2017-01-25
EP3099070B1 (en) 2019-01-30
GB2501835B (en) 2014-09-03
CN107105232A (zh) 2017-08-29
GB2488815B (en) 2013-10-16
US20190014339A1 (en) 2019-01-10
BR122020002121B8 (pt) 2023-01-10
PL3609180T3 (pl) 2021-11-22
EP3422713A1 (en) 2019-01-02
RU2740783C1 (ru) 2021-01-21
CN103416058B (zh) 2017-02-15
KR101991074B1 (ko) 2019-06-19
GB201313294D0 (en) 2013-09-11
CN107087165B (zh) 2020-08-14
GB2488815C (en) 2018-03-28
EP3422712A1 (en) 2019-01-02
KR20190072670A (ko) 2019-06-25
CN107071414A (zh) 2017-08-18
HUE046353T2 (hu) 2020-02-28
US20150131729A1 (en) 2015-05-14
BR112013022774A2 (pt) 2020-11-10
US8824555B2 (en) 2014-09-02
BR122020002120A2 (pt) 2020-12-01
EP3422712B1 (en) 2019-10-02
EP3422713B1 (en) 2019-10-02
BR122020002133A2 (pt) 2020-12-01
CN106878711B (zh) 2019-12-17
RU2018101282A (ru) 2019-07-15
HUE046357T2 (hu) 2020-03-30
EP3609180A1 (en) 2020-02-12
PL3099070T3 (pl) 2019-07-31
US10057592B2 (en) 2018-08-21
RU2732534C1 (ru) 2020-09-21
ES2710782T3 (es) 2019-04-26
KR101875250B1 (ko) 2018-07-05
US10554996B2 (en) 2020-02-04
BR122020002121A2 (pt) 2020-12-01
RU2013145089A (ru) 2015-04-20
CN106878711A (zh) 2017-06-20
KR101409145B1 (ko) 2014-06-18
TR201820537T4 (tr) 2019-01-21
BR122020002133B1 (pt) 2023-05-02
GB2501836A (en) 2013-11-06
EP3099070A1 (en) 2016-11-30
GB2501835A (en) 2013-11-06
US20200137408A1 (en) 2020-04-30
GB2501836B (en) 2014-08-06
GB2488815A (en) 2012-09-12
EP3609180B1 (en) 2021-05-12
CN107087166B (zh) 2020-08-14
ES2755357T3 (es) 2020-04-22
CN107105232B (zh) 2020-02-18
RU2642329C1 (ru) 2018-01-24
EP2684362B1 (en) 2016-08-24
EP2684362A1 (en) 2014-01-15
BR112013022774B1 (pt) 2022-05-03
GB201313295D0 (en) 2013-09-11
CN107087165A (zh) 2017-08-22
ES2599848T3 (es) 2017-02-03
PL3422712T3 (pl) 2020-03-31
RU2018101282A3 (ko) 2019-07-17
KR20130133889A (ko) 2013-12-09
GB201104033D0 (en) 2011-04-20
US20140064372A1 (en) 2014-03-06
ES2755730T3 (es) 2020-04-23
WO2012119776A1 (en) 2012-09-13
BR122020002121B1 (pt) 2022-12-20
BR122020002120B1 (pt) 2022-07-12
US10764597B2 (en) 2020-09-01
KR102090437B1 (ko) 2020-03-17
BR122020002123A2 (pt) 2020-12-01

Similar Documents

Publication Publication Date Title
US10812821B2 (en) Video encoding and decoding
KR101588559B1 (ko) 모션 벡터 저장 방법 및 장치, 인코딩 및 디코딩 방법, 인코딩 및 디코딩 장치, 및 기록 매체

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant