KR102602827B1 - 양방향 인터 예측에 적용되는 참조 프레임 획득 방법 및 장치 - Google Patents
양방향 인터 예측에 적용되는 참조 프레임 획득 방법 및 장치 Download PDFInfo
- Publication number
- KR102602827B1 KR102602827B1 KR1020217009653A KR20217009653A KR102602827B1 KR 102602827 B1 KR102602827 B1 KR 102602827B1 KR 1020217009653 A KR1020217009653 A KR 1020217009653A KR 20217009653 A KR20217009653 A KR 20217009653A KR 102602827 B1 KR102602827 B1 KR 102602827B1
- Authority
- KR
- South Korea
- Prior art keywords
- reference frame
- frame
- poc
- picture block
- motion information
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 136
- 230000002457 bidirectional effect Effects 0.000 claims description 100
- 230000033001 locomotion Effects 0.000 description 670
- 239000013598 vector Substances 0.000 description 258
- 238000003860 storage Methods 0.000 description 40
- 230000015654 memory Effects 0.000 description 37
- 230000005540 biological transmission Effects 0.000 description 28
- 238000012545 processing Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 23
- 238000004891 communication Methods 0.000 description 20
- 238000009795 derivation Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 230000000875 corresponding effect Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 11
- 238000013139 quantization Methods 0.000 description 11
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 230000009466 transformation Effects 0.000 description 7
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 6
- 238000012805 post-processing Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 239000000872 buffer Substances 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 208000019300 CLIPPERS Diseases 0.000 description 1
- 208000021930 chronic lymphocytic inflammation with pontine perivascular enhancement responsive to steroids Diseases 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/423—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
본 출원의 실시예들은 비디오 화상 코딩 기술들의 분야에 관한 것이고, 코딩 효율을 개선하기 위해 양방향 인터 예측에 적용되는 참조 프레임 획득 방법 및 장치를 개시한다. 이 방법은: 현재 화상 블록의 제 1 참조 프레임 리스트 및 제 2 참조 프레임 리스트를 결정하는 단계; 제 1 참조 프레임 리스트로부터 조건(A1)을 충족시키는 X-방향 참조 프레임(x1)이 존재하는지 여부를 결정하는 단계; 제 2 참조 프레임의 리스트로부터 조건(B1)을 충족시키는 Y-방향 참조 프레임(y1)이 존재하는 지 여부를 결정하는 단계; 및 X-방향 참조 프레임(x1)이 존재한다고 결정하는 단계 및 Y-방향 참조 프레임이 존재한다고 결정하는 단계에 응답하여, 현재 화상 블록의 양방향 참조 프레임들의 인덱스 값들(R1, R2)을 획득하는 단계를 포함한다.
Description
본 출원은 2018년 9월 4일에 미국특허청에 "BIDIRECTIONAL INTER PREDICION METHOD AND APPARATUS"라는 발명의 명칭으로 출원된 미국특허출원 제US62/726,975호의 우선권을 주장하고; 2018년 9월 5일에 미국특허청에 "BIDIRECTIONAL INTER PREDICTION MATHOD AND APPAATUS"라는 발명의 명칭으로 출원된 미국특허출원 제US 62/727,534호의 우선권을 주장하며; 2018년 9월 20일에 미국특허청에 "BIDIRECTIONAL INTER PREDICITION MERHOD AND ATPARATUS"라는 발명의 명칭으로 출원된 미국특허출원 제US62/734,226호의 우선권을 주장한다.
본 출원의 실시예들은 비디오 화상 코딩 기술들의 분야에 관한 것으로, 특히 양방향 인터 예측 방법 및 장치에 관한 것이다.
비디오 코딩 기술에서, 현재 화상 블록의 예측 화상 블록은 오직 하나의 참조 화상 블록에 기초하여 생성될 수도 있거나(단방향 인터 예측으로 지칭됨), 또는 현재 화상 블록의 예측 화상 블록은 적어도 2개의 참조 화상 블록들에 기초하여 생성될 수 있다(양방향성 인터 예측으로 지칭됨). 적어도 2개의 참조 화상 블록들은 동일한 참조 프레임 또는 상이한 참조 프레임들로부터의 것일 수 있다.
디코더 측 및 인코더 측이 동일한 참조 화상 블록을 사용할 수 있게 하기 위해, 인코더 측은 비트스트림을 통해 각 화상 블록의 움직임 정보를 디코더 측에 전송할 필요가 있다. 주로, 현재 화상 블록의 움직임 정보는 참조 프레임의 인덱스 값, 움직임 벡터 예측자(MVP : motion vector predictor) 식별자, 및 움직임 벡터 차이(MVD : Motion Vector Difference)를 포함한다. 디코더 측은 참조 프레임의 인덱스 값, MVP 식별자, 및 MVD에 기초하여 선택된 참조 프레임 내의 정확한 참조 화상 블록을 찾을 수 있다.
따라서, 양방향 인터 예측에서, 인코더 측은 각 방향에서 각 화상 블록의 움직임 정보를 디코더 측에 전송할 필요가 있다. 결과적으로, 움직임 정보는 비교적 많은 양의 전송 자원들을 점유한다. 이는 전송 자원들, 전송 속도, 및 코딩 압축 효율의 효과적인 이용을 감소시킨다.
본 출원의 실시예들은 양방향 인터 예측 방법 및 장치를 제공하여, 움직임 정보가 비교적 많은 양의 전송 자원들을 차지하기 때문에 전송 자원들, 전송 속도 및 코딩 압축 효율의 효과적인 활용이 감소된다는 문제를 해결한다.
상술한 목적을 달성하기 위해, 본 출원의 실시예들에서 다음의 기술적 해결책들이 사용된다.
제 1 양상에 따르면, 양방향 인터 예측 방법이 제공된다. 이 방법은, 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하도록 지시하는데 사용되는 지시 정보를 획득하는 단계로서, 제 1 움직임 정보는 제 1 방향에서 현재 화상 블록의 움직임 정보이고, 제 2 움직임 정보는 제 2 방향에서 현재 화상 블록의 움직임 정보인, 지시 정보를 획득하는 단계; 제 1 움직임 정보를 획득하는 단계; 획득된 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하는 단계; 및 획득된 제 1 움직임 정보 및 결정된 제 2 움직임 정보에 기초하여 현재 화상 블록의 예측 샘플을 결정하는 단계를 포함한다.
본 출원에서 제공되는 양방향 인터 예측 방법에 따라, 지시 정보가 획득된 후, 제 2 움직임 정보는 제 1 움직임 정보에 기초하여 결정된다. 이러한 방식으로, 비트스트림은 지시 정보 및 제 1 움직임 정보만을 포함할 필요가 있고, 더 이상 제 2 움직임 정보를 포함할 필요가 없다. 비트스트림이 각 방향의 각 화상 블록의 움직임 정보를 포함하는 종래 기술과 비교하여, 본 출원에서 제공되는 양방향 인터 예측 방법은 비트스트림에 포함된 움직임 정보를 효과적으로 감소시키고, 전송 자원들, 전송 속도 및 코딩 속도의 효과적인 이용을 향상시킨다.
선택적으로, 본 출원의 가능한 구현에서, "제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하는" 방법은: 제 1 움직임 정보에서 제 1 참조 프레임의 인덱스 값을 획득하는 단계, 및 제 1 참조 프레임의 인덱스 값 및 제 1 참조 프레임 리스트에 기초하여 제 1 참조 프레임의 시퀀스 번호를 결정하는 단계로서, 제 1 참조 프레임은 제 1 방향의 현재 화상 블록의 참조 프레임이고, 제 1 참조 프레임의 인덱스 값은 제 1 참조 프레임 리스트에서의 제 1 참조 프레임의 수인, 제 1 참조 프레임의 시퀀스 번호를 결정하는 단계; 제 2 참조 프레임의 인덱스 값을 획득하는 단계, 및 제 2 참조 프레임의 인덱스 값과 제 2 참조 프레임 리스트를 기초로 제 2 참조 프레임의 시퀀스 번호를 결정하는 단계로서, 제 2 참조 프레임은 제 2 방향의 현재 화상 블록의 참조 프레임이고, 제 2 참조 프레임의 인덱스 값은 제 2 참조 프레임 리스트 내의 제 2 참조 프레임의 수인, 제 2 참조 프레임의 시퀀스 번호를 결정하는 단계; 제 1 움직임 정보 내에 있는 제 1 움직임 벡터 차이 및 제 1 움직임 벡터 예측자 식별자를 기초로 제 1 움직임 벡터를 결정하는 단계로서, 제 1 움직임 벡터는 제 1 방향의 현재 화상 블록의 움직임 벡터임인, 제 1 움직임 벡터를 결정하는 단계; 및 다음 식
에 따라 제 2 움직임 정보 내의 제 2 움직임 벡터를 결정하는 단계로서, 제 2 움직임 벡터는 제 2 방향의 현재 화상 블록의 움직임 벡터인, 제 2 움직임 벡터를 결정하는 단계를 포함한다.
위 식에서, 는 제 2 움직임 벡터를 나타내고, 는 현재 프레임의 시퀀스 번호를 나타내고, 는 제 1 참조 프레임의 시퀀스 번호를 나타내고, 는 제 2 참조 프레임의 시퀀스를 나타내고, 는 제 1 움직임 벡터를 나타낸다.
선택적으로, 본 출원의 다른 가능한 구현에서, "제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하는" 방법은: 제 1 움직임 정보에서 제 1 참조 프레임의 인덱스 값을 획득하는 단계, 및 제 1 참조 프레임의 인덱스 값 및 제 1 참조 프레임 리스트에 기초하여 제 1 참조 프레임의 시퀀스 번호를 결정하는 단계로서, 제 1 참조 프레임은 제 1 방향의 현재 화상 블록의 참조 프레임이고, 제 1 참조 프레임의 인덱스 값은 제 1 참조 프레임 리스트에서 제 1 참조 프레임의 수인, 제 1 참조 프레임의 시퀀스 번호를 결정하는 단계; 제 2 참조 프레임의 인덱스 값을 획득하는 단계, 및 제 2 참조 프레임의 인덱스 값 및 제 2 참조 프레임 리스트에 기초하여 제 2 참조 프레임의 시퀀스 번호를 결정하는 단계로서, 제 2 참조 프레임은 제 2 방향의 현재 화상의 참조 프레임이고, 제 2 참조 프레임의 인덱스 값은 제 2 참조 프레임 리스트에서 제 2 참조 프레임의 수인, 제 2 참조 프레임의 시퀀스 번호를 결정하는 단계; 제 1 움직임 정보 내에 있는 제 1 움직임 벡터 차이 및 제 1 움직임 예측자 식별자에 기초하여 제 1 움직임 벡터를 결정하는 단계로서, 제 1 움직임 벡터는 제 1 방향의 현재 화상 블록의 움직임 벡터인, 제 1 움직임 벡터를 결정하는 단계; 및 제 1 참조 프레임이 현재 화상 블록의 순방향 참조 프레임이고, 제 2 참조 프레임이 현재 화상 블록의 역방향 참조 프레임인 경우, 또는 제 1 참조 프레임이 현재 화상 블록의 역방향 참조 프레임이고, 제 2 참조 프레임이 현재 화상 블록의 순방향 참조 프레임인 경우, 또는 제 1 참조 프레임 및 제 2 참조 프레임 각각이 현재 화상 블록의 순방향 참조 프레임인 경우, 또는 제 1 참조 프레임 및 제 2 참조 프레임 각각이 현재 화상 블록의 역방향 참조 프레임인 경우, 식 mv_IY = - mv_IX에 따라 제 2 움직임 정보내의 제 2 움직임 벡터를 결정하는 단계로서, 제 2 움직임 벡터는 제 2 방향의 현재 화상 블록의 움직임 벡터인, 제 2 움직임 벡터를 결정하는 단계를 포함한다. 이 식에서, mv_IY는 제 2 움직임 벡터를 나타내고, mv_IX는 제 1 움직임 벡터를 나타낸다.
선택적으로, 본 출원의 다른 가능한 구현에서, "제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하는" 방법은: 식 mv_IY = - mv_IX에 따라 제 2 움직임 정보에서 제 2 움직임 벡터를 결정하는 단계로서, 제 2 움직임 벡터는 제 2 방향에서 현재 화상 블록의 움직임 벡터인, 제 2 움직임 벡터를 결정하는 단계를 포함한다. 이 식에서, mv_IY는 제 2 움직임 벡터를 나타내고, mv_IX는 제 1 움직임 벡터를 나타낸다.
"제 1 참조 프레임이 현재 화상 블록의 순방방 참조 프레임이고, 제 2 참조 프레임이 현재의 화상 블록의 역방향 참조 프레임(backward reference frame)인 경우" 및 "제 1 참조 프레임이 현재 화상 블록의 역방향 참조 프레임이고, 제 2 참조 프레임이 현재 화상 블록의 순방향 참조 프레임인 경우" 모두, 식(POCcur - POClistX)*(POClistY - POCcur) > 0, 또는 식 POC_listY = 2*POC_Cur - POC_ListX 을 사용하여 표현될 수 있다. 이는 본 출원에서 특별히 제한되지 않는다.
또한, "제 1 참조 프레임 및 제 2 참조 프레임이 각각 현재 화상 블록의 순방방 참조 프레임인 경우" 및 "제 1 참조 프레임 및 제 2 참조 프레임 각각이 현재 화상 블록의 역방향 참조 프레임인 경우" 모두, 식(POC_Cur - POC_ListX)*(POC_listY-POC_Cur) < 0을 사용하여 표현될 수 있다.
선택적으로, 본 출원의 다른 가능한 구현에서, "제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하는" 방법은: 제 1 참조 프레임의 인덱스 값 및 제 1 움직임 정보 내의 제 1 움직임 벡터 차이를 획득하는 단계, 제 1 참조 프레임의 인덱스 값과 제 1 참조 프레임 리스트에 기초하여 제 1 참조 프레임의 시퀀스 번호를 결저하는 단계로서, 제 1 참조 프레임은 제 1 방향에서 현재 화상 블록의 참조 프레임이고, 제 1 참조 프레임의 인덱스 값은 제 1 참조 프레임 리스트 내에서 제 1 참조 프레임의 수인, 제 1 참조 프레임의 시퀀스 번호를 결저하는 단계; 제 2 참조 프레임의 인덱스 값을 획득하는 단계, 제 2 참조 프레임의 인덱스 값 및 제 2 참조 프레임 리스트에 기초하여 제 2 참조 프레임의 시퀀스 번호를 결정하는 단계, 및 제 2 참조 프레임의 인덱스 값 및 제 2 후보 예측된 움직임 벡터 리스트에 기초하여 제 2 예측된 움직임 벡터를 결정하는 단계로서, 제 2 예측된 움직임 벡터는 제 2 방향에서 현재 화상 블록의 예측된 움직임 벡터이고, 제 2 참조 프레임은 제 2 방향에서 현재 화상 블록의 참조 프레임이고, 제 2 참조 프레임의 인덱스 값은 제 2 참조 프레임 리스트에서 제 2 참조 프레임의 수인, 제 2 예측된 움직임 벡터를 결정하는 단계; 다음 식
에 따라 제 2 움직임 정보에서 제 2 움직임 벡터 차이를 결정하는 단계; 및 제 2 예측된 움직임 벡터 및 제 2 움직임 벡터 차이에 기초하여 제 2 움직임 벡터를 결정하는 단계로서, 제 2 움직임 벡터는 제 2 방향에서 현재 화상 블록의 움직임 벡터인, 제 2 움직임 벡터를 결정하는 단계를 포함한다.
위 식에서, 는 제 2 움직임 벡터 차이를 나타내고, 는 현재 프레임의 시퀀스 번호를 나타내고, 제 1 참조 프레임의 시퀀스 번호를 나타내고, 는 제 2 참조 프레임의 시퀀스 번호를 나타내며, 는 제 1 움직임 벡터 차이를 나타낸다.
선택적으로, 본 출원의 다른 가능한 구현에서, "제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하는" 방법은: 제 1 움직임 정보 내의 제 1 참조 프레임의 인덱스 값 및 제 1 움직임 벡터를 획득하는 단계, 제 1 참조 프레임의 인덱스 값 및 제 1 참조 프레임 리스트에 기초하여 제 1 참조 프레임의 시퀀스 번호를 결정하는 단계로서, 제 1 참조 프레임은 제 1 방향에서 현재 화상 블록의 참조 프레임이고, 제 1 참조 프레임의 인덱스 값은 제 1 참조 프레임 리스트 내의 제 1 참조 프레임의 수인, 제 1 참조 프레임의 시퀀스 번호를 결정하는 단계; 제 2 참조 프레임의 인덱스 값을 회득하는 단계, 제 2 참조 프레임의 인덱스 값 및 제 2 참조 프레임 리스트에 기초하여 제 2 참조 프레임의 시퀀스 번호를 결정하는 단계, 및 제 2 참조 프레임의 인덱스 값 및 제 2 후보 예측된 움직임 벡터 리스트에 기초하여 제 2 예측된 움직임 벡터를 결정하는 단계로서, 제 2 예측된 움직임 벡터는 제 2 방향에서 현재 화상 블록의 예측된 움직임 벡터이고, 제 2 참조 프레임은 제 2 방향에서 현재 화상 블록의 참조 프레임이고, 제 2 참조 프레임의 인덱스 값은 제 2 참조 프레임 리스트 내의 제 2 참조 프레임의 수인, 제 2 예측된 움직임 벡터를 결정하는 단계; 제 1 참조 프레임이 현재 화상 블록의 순방향 참조 프레임이고 제 2 참조 프레임이 현재 화상 블록의 역방향 참조 프레임인 경우, 또는 제 1 참조 프레임이 현재 화상 블록의 역방향 참조 프레임이고 제 2 참조 프레임이 현재 화상 블록의 순방향 참조 프레임인 경우, 또는 제 1 참조 프레임 및 제 2 참조 프레임이 각각 현재 화상 블록의 순방향 참조 프레임인 경우, 또는 제 1 참조 프레임 및 제 2 참조 프레임이 각각 현재 화상 블록의 역방향 참조 프레임인 경우, 식 mvd_IY = - mvd_IX에 따라 제 2 움직임 정보 내에서 제 2 움직임 벡터 차이를 결정하는 단계로서, 위 식에서 mvd_IY는 제 2 움직임 벡터 차이를 나타내고, mvd_IX는 제 1 움직임 벡터 차이를 나타내는, 제 2 움직임 벡터 차이를 결정하는 단계; 및 제 2 예측된 움직임 벡터 및 제 2 움직임 벡터 차이에 기초하여 제 2 움직임 벡터를 결정하는 단계로서, 제 2 운직임 벡터는 제 2 방향에서 현재 화상 블록의 움직임 벡터인, 제 2 움직임 벡터를 결정하는 단계를 포함한다.
선택적으로, 본 출원의 다른 가능한 구현에서, "제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하는" 방법은: 식 mvd_IY = - mvd_IX에 따라 제 2 움직임 정보 내에서 제 2 움직임 벡터 차이를 결정하는 단계로서, 위 식에서 mvd_IY는 제 2 움직임 벡터 차이를 나타내고, mvd_IX는 제 1 움직임 벡터 차이를 나타내는, 제 2 움직임 벡터 차이를 결정하는 단계; 및 제 2 예측된 움직임 벡터 및 제 2 움직임 벡터 차이에 기초하여 제 2 움직임 벡터를 결정하는 단계로서, 제 2 움직임 벡터는 제 2 방향에서 현재 화상 블록의 움직임 벡터인, 제 2 움직임 벡터를 결정하는 단계를 포함한다.
마찬가지로, "제 1 참조 프레임이 현재 화상 블록의 순방방 참조 프레임이고 제 2 참조 프레임이 현재의 화상 블록의 역방향 참조 프레임인 경우" 및 "제 1 참조 프레임이 현재 화상 블록의 역방향 참조 프레임이고, 제 2 참조 프레임이 현재 화상 블록의 순방향 참조 프레임인 경우"는 모두, 식(POC_Cur - POC_listX)*(POC_listY - POC_Cur) > 0, 또는 식 POC_listY - 2 * POC_Cur - POC_listX 을 사용하여 표현될 수 있다. 이는 본 출원에 특별히 제한되지 않는다.
"제 1 참조 프레임 및 제 2 참조 프레임이 각각 현재 화상 블록의 순방방 참조 프레임인 경우" 및 "제 1 참조 프레임 및 제 2 참조 프레임이 각각 현재 화상 블록의 역방향 참조 프레임인 경우"는 모두 식(POC_Cur - POC_listX)*(POC_listY - POC_Cur) < 0을 사용하여 표현될 수 있다.
본 출원에 제공된 양방향 인터 예측 방법은: 제 1 움직임 벡터에 기초하여 제 2 움직임 벡터를 결정하는 단계; 또는 제 1 움직임 벡터 차이에 기초하여 제 2 움직임 벡터 차이를 결정하는 단계, 및 제 2 움직임 벡터 차이를 기초로 제 2 움직임 벡터를 결정하는 단계일 수 있다는 것을 알 수 있다.
선택적으로, 본 출원의 다른 가능한 구현에서, "제 2 참조 프레임의 인덱스 값을 획득하는" 방법은: 식 POC_listY0 = 2 * POC_Cur - POC_ListX에 따라 현재 프레임의 시퀀스 번호 및 제 1 참조 프레임의 시퀀스 번호를 기초로 제 1 시퀀스 번호를 계산하는 단계로서, POC_Cur은 현재 프레임의 시퀀스 번호를 나타내고, POC_listX는 제 1 참조 프레임의 시퀀스 번호를 나타내고, POC_listY0은 제 1 시퀀스 번호를 나타내는, 제 1 시퀀스 번호를 계산하는 단계; 및 제 2 참조 프레임 리스트가 제 1 시퀀스 번호를 포함할 때, 제 2 참조 프레임의 인덱스 값으로서, 제 2 참조 프레임 리스트 내의 제 1 시퀀스 번호가 나타낸 참조 프레임의 수를 결정하는 단계를 포함한다.
선택적으로, 본 출원의 다른 가능한 구현에서, "제 2 참조 프레임의 인덱스 값을 획득하는" 방법은: 식(POC_Cur - POC_listX)*(POC_listY0' - POC_Cur) > 0에 따라 현재 프레임의 시퀀스 번호 및 제 1 참조 프레임의 시퀀스 번호를 기초로 제 2 시퀀스 번호를 계산하는 단계로서, POC_listY0'는 제 2 시퀀스 번호를 나타내는, 제 2 시퀀스 번호를 계산하는 단계; 및 제 2 참조 프레임 리스트가 제 2 시퀀스 번호를 포함할 때, 제 2 참조 프레임의 인덱스 값으로서, 제 2 참조 프레임 리스트 내의 제 2 시퀀스 번호가 나타내는 참조 프레임의 수를 결정하는 단계를 포함한다.
선택적으로, 본 출원의 다른 가능한 구현에서, "제 2 참조 프레임의 인덱스 값을 획득하는" 방법은: 식 POC_listX ≠ POC_listY0''에 따라 현재 프레임의 시퀀스 번호 및 제 1 참조 프레임의 시퀀스 번호를 기초로 제 3 시퀀스 번호를 계산하는 단계로서, POC_listY0''는 제 3 시퀀스 번호를 나타내는, 제 3 시퀀스 번호를 계산하는 단계; 및 제 2 참조 프레임의 인덱스 값으로서, 제 2 참조 프레임 리스트 내의 제 3 시퀀스 번호가 나타낸 참조 프레임의 수를 결정하는 단계를 포함한다.
선택적으로, 본 출원의 다른 가능한 구현에서, "제 2 참조 프레임의 인덱스 값을 획득하는" 방법은: 식 POC_listY0 = 2 * POC_Cur - POC_listX에 따라 현재 프레임의 시퀀스 번호 및 제 1 참조 프레임의 시퀀스 번호를 기초로 제 1 시퀀스 번호를 계산하는 단계로서, POC_listX는 제 1 참조 프레임의 시퀀스 번호를 나타내고, POC_listY0는 제 1 시퀀스 번호를 나타내는, 제 1 시퀀스 번호를 계산하는 단계; 제 2 참조 프레임 리스트가 제 1 시퀀스 번호를 포함할 때, 제 2 참조 프레임의 인덱스 값으로서, 제 2 참조 프레임 리스트 내의 제 1 시퀀스 번호가 나타낸 참조 프레임의 수를 결정하는 단계, 또는 제 2 참조 프레임 리스트가 제 1 시퀀스 번호를 포함하지 않을 때, 식(POC_Cur - POC_listX) *(POC_listY0' - POC_Cur) > 0에 따라 현재 프레임의 시퀀스 번호 및 제 1 참조 프레임의 시퀀스 번호를 기초로 제 2 시퀀스 번호를 계산하는 단계로서, POC_listY0'는 제 2 시퀀스 번호를 나타내는, 제 2 시퀀스 번호를 계산하는 단계; 및 제 2 참조 프레임 리스트가 제 2 시퀀스 번호를 포함할 때, 제 2 참조 프레임의 인덱스 값으로서, 제 2 참조 프레임 리스트 내의 제 2 시퀀스 번호가 나타낸 참조 프레임의 수를 결정하는 단계, 또는 제 2 참조 프레임 리스트가 제 2 시퀀스 번호를 포함하지 않을 때, 식 POC_listX ≠ POC_listY0''에 따라 현재 프레임의 시퀀스 번호 및 제 1 참조 프레임의 시퀀스 번호를 기초로 제 3 시퀀스 번호를 계산하는 단계로서, POC_listY0''는 제 3 시퀀스 번호를 나타내는, 제 3 시퀀스 번호를 계산하는 단계; 및 제 2 참조 프레임의 인덱스 값으로서, 제 2 참조 프레임 리스트 내의 제 3 시퀀스 번호가 나타낸 참조 프레임의 수를 결정하는 단계를 포함한다.
선택적으로, 본 출원의 다른 가능한 구현에서, "제 2 참조 프레임의 인덱스 값을 획득하는" 방법은: 제 2 참조 프레임의 인덱스 값을 획득하기 위하여 비트스트림을 파싱하는 단계를 포함한다.
본 출원에서 "제 2 참조 프레임의 인덱스 값을 획득하는" 복수의 방법들이 존재할 수 있음을 알 수 있다. 제 2 참조 프레임의 인덱스 값을 획득하는 특정 방법은 실제 요건들에 기초하여 결정되거나, 미리 설정될 필요가 있다.
제 2 양상에 따르면, 양방향 인터 예측 장치가 제공된다. 양방향 인터 예측 장치는 획득 유닛 및 결정 유닛을 포함한다.
구체적으로, 획득 유닛은: 지시 정보를 획득하되, 지시 정보는 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하도록 지시하기 위해 사용되고, 제 1 움직임 정보는 제 1 방향의 현재 화상 블록의 움직임 정보이고, 제 2 움직임 정보는 제 2 방향의 현재 화상 블록의 움직임 정보인, 지시 정보를 획득하고; 제 1 움직임 정보를 획득하도록 구성된다. 결정 유닛은: 획득 유닛이 획득한 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하고, 제 1 움직임 정보 및 제 2 움직임 정보에 기초하여 현재 화상 블록의 예측 샘플을 결정하도록 구성된다.
선택적으로, 본 출원의 가능한 구현에서, 결정 유닛은 구체적으로: 제 1 움직임 정보에서 제 1 참조 프레임의 인덱스 값을 획득하고, 제 1 참조 프레임의 인덱스 값 및 제 2 참조 프레임 리스트에 기초하여 제 2 참조 프레임의 시퀀스 번호를 결정하되, 제 1 참조 프레임은 제 1 방향에서의 현재 화상 블록의 참조 프레임이고, 제 1 참조 프레임의 인덱스 값은 제 1 참조 프레임 리스트 내의 제 1 참조 프레임의 수인, 제 2 참조 프레임의 시퀀스 번호를 결정하고; 제 2 참조 프레임의 인덱스 값을 획득하고, 제 2 참조 프레임의 인덱스 값 및 제 2 참조 프레임 리스트에 기초하여 제 2 참조 프레임의 시퀀스 번호를 결정하되, 제 2 참조 프레임은 제 2 방향에서 현재 화상 블록의 참조 프레임이고, 제 2 참조 프레임의 인덱스 값은 제 2 참조 프레임 리스트 내의 제 2 참조 프레임의 수인, 제 2 참조 프레임의 시퀀스 번호를 결정하고; 제 1 움직임 정보 내에 있는 제 1 움직임 벡터 차이 및 제 1 움직임 벡터 예측자 식별자를 기초로 제 1 움직임 벡터를 결정하되, 제 1 움직임 벡터는 제 1 방향에서 현재 화상 블록의 움직임 벡터인, 제 1 움직임 벡터를 결정하고; 다음 식 에 따라 제 2 움직임 정보 내의 제 2 움직임 벡터를 결정하되, 제 2 움직임 벡터는 제 2 방향에서 현재 화상 블록의 움직임 벡터인, 제 2 움직임 벡터를 결정하도록 구성된다.
는 제 2 움직임 벡터를 나타내고, 는 현재 프레임의 시퀀스 번호를 나타내고, 는 제 1 참조 프레임의 시퀀스 번호를 나타내고, 는 제 2 참조 프레임의 시퀀스를 나타내고, 는 제 1 움직임 벡터를 나타낸다.
선택적으로, 본 출원의 다른 가능한 구현에서, 결정 유닛은 구체적으로: 제 1 움직임 정보 내의 제 1 참조 프레임의 인덱스 값을 획득하고, 제 1 참조 프레임의 인덱스 값 및 제 2 참조 프레임 리스트에 기초하여 제 1 참조 프레임의 시퀀스 번호를 결정하되, 제 1 참조 프레임은 제 1 방향에서 현재 화상 블록의 참조 프레임이고, 제 1 참조 프레임의 인덱스 값은 제 1 참조 프레임 리스트 내에서 제 1 참조 프레임의 수인, 제 1 참조 프레임의 시퀀스 번호를 결정하고; 제 2 참조 프레임의 인덱스 값을 획득하고, 제 2 참조 프레임의 인덱스 값 및 제 2 참조 프레임 리스트에 기초하여 제 2 참조 프레임의 시퀀스 번호를 결정하되, 제 2 참조 프레임은 제 2 방향에서 현재 화상 블록의 참조 프레임이고, 제 2 참조 프레임의 인덱스 값은 제 2 참조 프레임 리스트 내에서 제 2 참조 프레임의 수인, 제 2 참조 프레임의 시퀀스 번호를 결정하고; 제 1 움직임 정보 내에 있는 제 1 움직임 벡터 차이 및 제 1 움직임 벡터 예측자 식별자를 기초로 제 1 움직임 벡터를 결정하되, 제 1 움직임 벡터는 제 1 방향에서 현재 화상 블록의 움직임 벡터인, 제 1 움직임 벡터를 결정하고; 제 1 참조 프레임이 현재 화상 블록의 순방향 참조 프레임이고, 제 2 참조 프레임이 현재 화상 블록의 역방향 참조 프레임인 경우, 또는 제 1 참조 프레임이 현재 화상 블록의 역방향 참조 프레임이고, 제 2 참조 프레임이 현재 화상 블록의 순방향 참조 프레임인 경우, 또는 제 1 참조 프레임 및 제 2 참조 프레임 각각이 현재 화상 블록의 순방향 참조 프레임인 경우, 또는 제 1 참조 프레임 및 제 2 참조 프레임 각각이 현재 화상 블록의 역방향 참조 프레임인 경우, 식 mv_IY = - mv_IX에 따라 제 2 움직임 정보내의 제 2 움직임 벡터를 결정하되, 제 2 움직임 벡터는 제 2 방향의 현재 화상 블록의 움직임 벡터인, 제 2 움직임 벡터를 결정하도록 구성된다. 이 식에서, mv_IY는 제 2 움직임 벡터를 나타내고, mv_IX는 제 1 움직임 벡터를 나타낸다.
선택적으로, 본 출원의 다른 가능한 구현에서, 결정 유닛은 구체적으로, 공식에 따라 제 2 움직임 정보에서 제 2 움직임 벡터를 결정하도록 구성되고, 제 2 움직임 벡터는 제 2 방향에서의 현재 화상 블록의 움직임 벡터이다. 이 식에서, 제 2 움직임 벡터를 나타내고, 제 1 움직임 벡터를 나타낸다.
선택적으로, 본 출원의 다른 가능한 구현에서, 결정 유닛은 구체적으로: 제 1 움직임 정보 내의 제 1 참조 프레임의 인덱스 값 및 제 1 움직임 벡터 차이를 획득하고, 제 1 참조 프레임의 인덱스 값과 제 1 참조 프레임 리스트에 기초하여 제 1 참조 프레임의 시퀀스 번호를 결정하되, 제 1 참조 프레임은 제 1 방향에서 현재 화상 블록의 참조 프레임이고, 제 1 참조 프레임의 인덱스 값은 제 1 참조 프레임 리스트 내의 제 1 참조 프레임의 수인, 제 1 참조 프레임의 시퀀스 번호를 결정하고; 제 2 참조 프레임의 인덱스 값을 획득하고, 제 2 참조 프레임의 인덱스 값 및 제 2 참조 프레임 리스트에 기초하여, 제 2 참조 프레임의 시퀀스 번호를 결정하고, 제 2 참조 프레임의 인덱스 값 및 제 2 후보 예측된 움직임 벡터 리스트를 기초로 제 2 예측된 움직임 벡터를 결정하되, 제 2 예측된 움직임 벡터는 제 2 방향에서 제 2 현재 화상 블록의 예측된 움직임 벡터이고, 제 2 참조 프레임은 제 2 방향에서 현재 화상 블록의 참조 프레임이고, 제 2 참조 프레임의 인덱스 값은 제 2 참조 프레임 리스트 내의 제 2 참조 프레임의 수인, 제 2 예측된 움직임 벡터를 결정하고; 식 에 따라 제 2 움직임 정보 내의 제 2 움직임 벡터 차이를 결정하고; 제 2 예측된 움직임 벡터 및 제 2 움직임 벡터 차이에 기초하여 제 2 움직임 벡터를 결정하되, 제 2 움직임 벡터는 제 2 방향에서 현재 화상 블록의 움직임 벡터인, 제 2 움직임 벡터를 결정하도록 구성된다.
는 제 2 움직임 벡터 차이를 나타내고, 는 현재 프레임의 시퀀스 번호를 나타내고, 제 1 참조 프레임의 시퀀스 번호를 나타내고, 는 제 2 참조 프레임의 시퀀스 번호를 나타내며, 는 제 1 움직임 벡터 차이를 나타낸다.
선택적으로, 본 출원의 다른 가능한 구현에서, 결정 유닛은 구체적으로: 제 1 움직임 정보 내의 제 1 참조 프레임의 인덱스 값 및 제 1 움직임 벡터를 획득하고, 제 1 참조 프레임의 인덱스 값과 제 1 참조 프레임 리스트에 기초하여 제 1 참조 프레임의 시퀀스 번호를 결정하되, 제 1 참조 프레임은 제 1 방향에서 현재 화상 블록의 참조 프레임이고, 제 1 참조 프레임의 인덱스 값은 제 1 참조 프레임 리스트 내의 제 1 참조 프레임의 수인, 제 1 참조 프레임의 시퀀스 번호를 결정하고; 제 2 참조 프레임의 인덱스 값을 획득하고, 제 2 참조 프레임의 인덱스 값 및 제 2 참조 프레임 리스트에 기초하여 제 2 참조 프레임의 시퀀스 번호를 결정하고, 제 2 참조 프레임의 인덱스 값 및 제 2 후보 예측된 움직임 벡터 리스트에 기초하여 제 2 예측된 움직임 벡터를 결정하되, 제 2 예측된 움직임 벡터는 제 2 방향에서 현재 화상 블록의 예측된 움직임 벡터이고, 제 2 참조 프레임은 제 2 방향에서 현재 화상 블록의 참조 프레임이고, 제 2 참조 프레임의 인덱스 값은 제 2 참조 프레임 리스트 내의 제 2 참조 프레임의 수인, 제 2 예측된 움직임 벡터를 결정하고; 제 1 참조 프레임이 현재 화상 블록의 순방향 참조 프레임이고, 제 2 참조 프레임이 현재 화상 블록의 역방향 참조 프레임인 경우, 또는 제 1 참조 프레임이 현재 화상 블록의 역방향 참조 프레임이고, 제 2 참조 프레임이 현재 화상 블록의 순방향 참조 프레임인 경우, 또는 제 1 참조 프레임 및 제 2 참조 프레임이 각각 현재 화상 블록의 순방향 참조 프레임인 경우, 또는 제 1 참조 프레임 및 제 2 참조 프레임이 각각 현재 화상 블록의 역방향 참조 프레임인 경우, 식 mvd_IY = - mvd_IX에 따라 제 2 움직임 정보 내에서 제 2 움직임 벡터 차이를 결정하되, mvd_IY는 제 2 움직임 벡터 차이를 나타내고, mvd_IX는 제 1 움직임 벡터 차이를 나타내는, 제 2 움직임 벡터 차이를 결정하고; 및 제 2 예측된 움직임 벡터 및 제 2 움직임 벡터 차이에 기초하여 제 2 움직임 벡터를 결정하되, 제 2 운직임 벡터는 제 2 방향에서 현재 화상 블록의 움직임 벡터인, 제 2 움직임 벡터를 결정하도록, 구성된다.
선택적으로, 본 출원의 다른 가능한 구현에서, 결정 유닛은 구체적으로: 식 mvd_IY = - mvd_IX에 따라 제 2 움직임 정보 내에서 제 2 움직임 벡터 차이를 결정하되, 위 식에서 mvd_IY는 제 2 움직임 벡터 차이를 나타내고, mvd_IX는 제 1 움직임 벡터 차이를 나타내는, 제 2 움직임 벡터 차이를 결정하고; 및 제 2 예측된 움직임 벡터 및 제 2 움직임 벡터 차이에 기초하여 제 2 움직임 벡터를 결정하되, 제 2 움직임 벡터는 제 2 방향에서 현재 화상 블록의 움직임 벡터인, 제 2 움직임 벡터를 결정하도록 구성된다.
선택적으로, 본 출원의 다른 가능한 구현에서, 획득 유닛은 구체적으로: 식 POC_listY0 = 2* POC_Cur - POC_ListX에 따라 현재 프레임의 시퀀스 번호 및 제 1 참조 프레임의 시퀀스 번호를 기초로 제 1 시퀀스 번호를 계산하되, POC_Cur은 현재 프레임의 시퀀스 번호를 나타내고, POC_listX는 제 1 참조 프레임의 시퀀스 번호를 나타내고, POC_listY0은 제 1 시퀀스 번호를 나타내는, 제 1 시퀀스 번호를 계산하고; 제 2 참조 프레임 리스트가 제 1 시퀀스 번호를 포함할 때, 제 2 참조 프레임의 인덱스 값으로서, 제 2 참조 프레임 리스트 내의 제 1 시퀀스 번호가 나타낸 참조 프레임의 수를 결정하도록 구성된다.
선택적으로, 본 출원의 다른 가능한 구현에서, 획득 유닛은 구체적으로, 식(POC_Cur - POC_listX)*(POC_listY0' - POC_Cur) > 0에 따라 현재 프레임의 시퀀스 번호 및 제 1 참조 프레임의 시퀀스 번호를 기초로 제 2 시퀀스 번호를 계산하되, POC_listY0'는 제 2 시퀀스 번호를 나타내는, 제 2 시퀀스 번호를 계산하고; 제 2 참조 프레임 리스트가 제 2 시퀀스 번호를 포함할 때, 제 2 참조 프레임의 인덱스 값으로서, 제 2 참조 프레임 리스트 내의 제 2 시퀀스 번호가 나타내는 참조 프레임의 수를 결정하도록, 구성된다.
선택적으로, 본 출원의 다른 가능한 구현에서, 획득 유닛은: 식 POC_listX ≠ POC_listY0''에 따라 현재 프레임의 시퀀스 번호 및 제 1 참조 프레임의 시퀀스 번호를 기초로 제 3 시퀀스 번호를 계산하되, POC_listY0''는 제 3 시퀀스 번호를 나타내는, 제 3 시퀀스 번호를 계산하고; 제 2 참조 프레임의 인덱스 값으로서, 제 2 참조 프레임 리스트 내의 제 3 시퀀스 번호가 나타낸 참조 프레임의 수를 결정하도록, 구성된다.
제 3 양상에 따라, 양방향 인터 예측 방법이 제공된다. 양방향 인터 예측 방법에 대한 복수의 구현들이 존재한다.
하나의 구현은: 제 1 식별자를 획득하기 위해 비트스트림을 파싱하는 단계로서, 제 1 식별자는 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정할지의 여부를 지시하는데 사용되고, 제 1 움직임 정보는 제 1 방향에서 현재 화상 블록의 움직임 정보이고, 제 2 움직임 정보는 제 2 방향에서 현재 화상의 움직임 정보인, 비트스트림을 파싱하는 단계; 제 1 식별자의 값이 제 1 미리 설정된 값이면, 제 1 움직임 정보를 획득하는 단계, 및 제l 움직임 정보를 기초로 제 2 움직임을 결정하는 단계; 및 제 1 움직임 정보와 제 2 움직임 정보를 기초로 현재 화상 블록의 예측 샘플을 결정하는 단계를 포함한다.
다른 구현은: 제 2 식별자를 획득하기 위해 비트스트림을 파싱하는 단계로서, 제 2 식별자는 움직임 정보 유도 알고리즘에 따라 현재 화상 블록의 움직임 정보를 계산할지의 여부를 지시하는데 사용되는, 비트스트림을 파싱하는 단계; 제 2 식별자의 값이 제 2 미리 설정된 값이면, 제 3 식별자를 획득하는 단계로서, 제 3 식별자는 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정할지의 여부를 지시하는데 사용되고, 제 1 움직임 정보는 제 1 방향에서 현재 화상 블록의 움직임 정보이고, 제 2 움직임 정보는 제 2 방향에서 현재 화상 블록의 움직임 정보인, 제 3 식별자를 획득하는 단계; 제 3 식별자의 값이 제 3 미리 설정된 값이면, 제 1 움직임 정보를 획득하는 단계 및 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하는 단계; 및 제 1 움직임 정보 및 제 2 움직임 정보에 기초하여 현재 화상 블록의 예측 샘플을 결정하는 단계를 포함한다.
다른 구현은: 제 2 식별자를 획득하기 위해 비트스트림을 파싱하는 단계로서, 제 2 식별자는 움직임 정보 유도 알고리즘에 따라 현재 화상 블록의 움직임 정보를 계산할지의 여부를 지시하는데 사용되는, 비트스트림을 파싱하는 단계; 제 2 식별자의 값이 제 2 미리 설정된 값이면, 제 2 움직임 정보를 획득하는 단계, 및 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하는 단계로서, 제 1 움직임 정보는 제 1 방향에서 현재 화상 블록의 움직임 정보이고, 제 2 움직임 정보는 제 2 방향에서 현재 화상 블록의 움직임 정보인, 제 2 움직임 정보를 결정하는 단계; 및 제 1 움직임 정보 및 제 2 움직임 정보에 기초하여 현재 화상 블록의 예측 샘플을 결정하는 단계를 포함한다.
다른 구현은: 제 4 식별자를 획득하기 위해 비트스트림을 파싱하는 단계로서, 제 4 식별자는 움직임 정보 유도 알고리즘에 따라 현재 화상 블록의 움직임 정보를 계산할지의 여부를 지시하는데 사용되는, 비트스트림을 파싱하는 단계; 제 4 식별자의 값이 제 4 미리 설정된 값이면, 제 1 참조 프레임 리스트 및 제 2 참조 프레임 리스트를 기초로 제 1 참조 프레임의 인덱스 값 및 제 2 참조 프레임의 인덱스 값을 결정하는 단계로서, 제 1 참조 프레임 리스트는 제 1 방향에서 현재 화상 블록의 참조 프레임 리스트이고, 제 2 참조 프레임 리스트는 제 2 방향에서 현재 화상 블록의 참조 프레임 리스트이고, 제 1 참조 프레임은 제 1 방향에서 현재 화상 블록의 참조 프레임이고, 제 2 참조 프레임은 제 2 방향에서 현재 화상 블록의 참조 프레임인, 인덱스 값을 결정하는 단계; 제 1 움직임 벡터 차이 및 제 1 움직임 벡터 예측자 식별자를 획득하는 단계, 및 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하는 단계로서, 제 1 움직임 정보는 제 1 참조 프레임의 인덱스 값, 제 1 움직임 벡터 차이, 및 제 1 움직임 벡터 예측자 식별자를 포함하고, 제 2 움직임 정보는 제 2 방향에서 현재 화상 블록의 움직임 정보인, 제 2 움직임 정보를 결정하는 단계; 및 제 1 움직임 정보 및 제 2 움직임 정보에 기초하여 현재 화상 블록의 예측 샘플을 결정하는 단계를 포함한다.
다른 구현은: 제 1 식별자를 획득하기 위해 비트스트림을 파싱하는 단계로서, 제 1 식별자는 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정할지의 여부를 지시하는데 사용되고, 제 1 움직임 정보는 제 1 방향에서 현재 화상 블록의 움직임 정보이고, 제 2 움직임 정보는 제 2 방향에서 현재 화상 블록의 움직임 정보인, 비트스트림을 파싱하는 단계; 제 1 식별자의 값이 제 8 미리 설정된 값이면, 제 5 식별자를 획득하는 단계로서, 제 5 식별자는 제 2 움직임 정보에 기초하여 제 1 움직임 정보를 결정할지의 여부를 지시하는데 사용되는, 제 5 식별자를 획득하는 단계; 제 5 식별자의 값이 제 5 미리 설정된 값이면, 제 2 식별자를 획득하는 단계, 및 제 2 움직임 정보에 기초하여 제 1 움직임 정보를 결정하는 단계; 제 1 움직임 정보 및 제 2 움직임 정보에 기초하여 현재 화상 블록의 예측 샘플을 결정하는 단계를 포함한다.
다른 구현은: 제 2 식별자를 획득하기 위해 비트스트림을 파싱하는 단계로서, 제 2 식별자는 움직임 정보 유도 알고리즘에 따라 현재 화상 블록의 움직임 정보를 계산할지 여부를 지시하는데 사용되는, 비트스트림을 파싱하는 단계; 제 2 식별자의 값이 제 2 미리 설정된 값이면, 제 3 식별자를 획득하는 단계로서, 제 3 식별자는 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정할지 여부를 나타내는데 사용되고, 제 1 움직임 정보는 제 1 방향에서 현재 화상 블록들의 움직임 정보이고, 제 2 움직임 정보는 제 2 방향에서 현재 화상의 움직임 정보인, 제 3 식별자를 획득하는 단계; 제 3 식별자의 값이 제 6 미리 설정된 값이면, 제 2 움직임 정보를 획득하는 단계, 및 제 2 움직임 정보에 기초하여 제 1 움직임 정보를 결정하는 단계; 및 제 1 움직임 정보 및 제 2 움직임 정보에 기초하여, 현재 화상 블록의 예측 샘플을 결정하는 단계를 포함한다.
제 1 식별자 내지 제 4 식별자의 특정 설명들을 위해, 다음의 설명들을 참조한다.
본 출원에 제공된 양방향 인터 예측 방법에서, 식별자가 비트스트림 파싱함으로써 획득된 후, 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정할지의 여부는 식별자의 값에 기초하여 결정된다. 제 2 움직임 정보가 제 1 움직임 정보에 기초하여 결정될 필요가 있다고 결정된 후, 제 1 움직임 정보는 획득되고, 이후 제 2 움직임 정보는 획득된 제 1 움직임 정보에 기초하여 결정된다. 이러한 방식으로, 비트스트림은 대응하는 식별자 및 제 1 움직임 정보만을 포함할 필요가 있고, 더 이상 제 2 움직임 정보를 포함할 필요가 없다. 비트스트림이 각 방향의 각 화상 블록의 움직임 정보를 포함하는 종래 기술과 비교하여, 본 출원에 제공된 양방향 인터 예측 방법은 비트스트림에 포함된 움직임 정보를 효과적으로 감소시키고, 전송 자원들, 전송 속도 및 코딩 속도의 효과적인 이용을 향상시킨다.
제 4 양상에 따르면, 양방향 인터 예측 장치가 제공된다. 양방향 인터 예측 장치는 획득 유닛 및 결정 유닛을 포함한다.
구체적으로, 일 구현에서, 획득 유닛은: 제 1 식별자를 획득하기 위해 비트스트림을 파싱하되, 제 1 식별자는 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정할지 여부를 나타내는데 사용되고, 제 1 움직임 정보는 제 1 방향에서 현재 화상 블록의 움직임 정보이고, 제 2 움직임 정보는 제 2 방향에서의 현재 화상 블록의 움직임 정보인, 비트스트림을 파싱하고; 제 1 식별자의 값이 제 1 미리 설정된 값이면, 제 1 움직임 정보를 획득하도록 구성된다. 결정 유닛은: 획득 유닛에 의해 획득된 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하고, 제 1 움직임 정보와 제 2 움직임 정보에 기초하여 현재 화상 블록의 예측 샘플을 결정하도록 구성된다.
다른 구현에서, 획득 유닛은: 제 2 식별자를 획득하기 위해 비트스트림을 파싱하되, 제 2 식별자는 움직임 정보 유도 알고리즘에 따라 현재 화상 블록의 움직임 정보를 계산할지 여부를 나타내는데 사용되는, 비트스트림을 파싱하고; 제 2 식별자의 값이 제 2 미리 설정된 값이면, 제 3 식별자를 획득하되, 제 3 식별자는 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정할지 여부를 나타내는데 사용되고, 제 1 움직임 정보는 제 1 방향에서 현재 화상 블록의 움직임 정보이고, 제 2 움직임 정보는 제 2 방향에서 현재 화상 블록의 움직임 정보인, 제 3 식별자를 획득하고; 제 3 식별자의 값이 제 3 미리 설정된 값이면, 제 1 움직임 정보를 획득하도록 구성된다. 결정 유닛은: 획득 유닛에 의해 획득된 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하고, 제 1 움직임 정보와 제 2 움직임 정보에 기초하여 현재 화상 블록의 예측 샘플을 결정하도록 구성된다.
다른 구현에서, 획득 유닛은: 제 2 식별자를 획득하기 위해 비트스트림을 파싱하되, 제 2 식별자는 움직임 정보 유도 알고리즘에 따라 현재 화상 블록의 움직임 정보를 계산할지 여부를 지시하기 위해 사용되는, 비트스트림을 파싱하고; 제 2 식별자의 값이 제 2 미리 설정된 값이면, 제 1 움직임 정보를 획득하도록 구성된다. 결정 유닛은: 획득 유닛에 의해 획득된 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하되, 제 1 움직임 정보는 제 1 방향에서 현재 화상 블록의 움직임 정보이고, 제 2 움직임 정보는 제 2 방향에서 현재 화상 블록의 움직임 정보인, 제 2 움직임 정보를 결정하고; 제 1 움직임 정보 및 제 2 움직임 정보에 기초하여 현재 화상의 예측 샘플을 결정하도록 구성된다.
다른 구현에서, 획득 유닛은 제 4 식별자를 획득하기 위해 비트스트림을 파싱하도록 구성되고, 제 4 식별자는 움직임 정보 유도 알고리즘에 따라 현재 화상 블록의 움직임 정보를 계산할지 여부를 지시하기 위해 사용된다. 결정 유닛은, 획득 유닛에 의해 획득된 제 4 식별자의 값이 제 4 미리 설정된 값이면, 제 1 참조 프레임 리스트 및 제 2 참조 프레임 리스트에 기초하여 제 1 참조 프레임의 인덱스 값 및 제 2 참조 프레임의 인덱스 값을 결정하도록 구성되고, 여기서 제 1 참조 프레임 리스트는 제 1 방향에서 현재 화상 블록의 참조 프레임 리스트이고, 제 2 참조 프레임 리스트는 제 2 방향에서의 현재 화상 블록의 참조 프레임 리스트이며, 제 1 참조 프레임은 제 1 방향에서 현재 화상 블록들의 참조 프레임이며, 제 2 참조 프레임은 제 2 방향에 있어서 현재 화상 블록의 참조 프레임이다. 획득 유닛은 제 1 움직임 벡터 차이 및 제 1 움직임 벡터 예측자 식별자를 획득하도록 추가로 구성된다. 결정 유닛은 또한: 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하되, 제 1 움직임 정보는 제 1 참조 프레임의 인덱스 값, 제 1 움직임 벡터 차이, 및 제 1 움직임 벡터 예측자 식별자를 포함하고, 제 2 움직임 정보는 제 2 방향에서의 현재 화상 블록의 움직임 정보인, 제 2 움직임 정보를 결정하고; 제 1 운직임 정보 및 제 2 움직임 정보에 기초하여 현재 화상 블록의 예측 샘플을 결정하도록 구성된다
제 5 양상에 따르면, 단말기가 제공된다. 단말기는 하나 이상의 프로세서들, 메모리, 및 통신 인터페이스를 포함한다. 메모리 및 통신 인터페이스는 하나 이상의 프로세서들에 접속된다. 메모리는 컴퓨터 프로그램 코드를 저장하도록 구성된다. 컴퓨터 프로그램 코드는 명령을 포함한다. 하나 이상의 프로세서들이 명령어를 실행할 때, 단말기는 제 1 양상 또는 제 1 양상의 가능한 구현들 중 어느 하나에 따라 양방향 인터 예측 방법을 수행하거나, 또는 제 3 양상 및 제 3 양상의 가능한 구현들 중 어느 하나에 따라 양방향 인트라 예측 방법을 수행한다.
제 6 양상에 따르면, 비휘발성 저장 매체 및 중앙 처리 유닛을 포함하는 비디오 디코더가 제공된다. 비휘발성 저장 매체는 실행가능한 프로그램을 저장한다. 중앙 처리 유닛은, 비휘발성 저장 매체에 연결되고, 제 1 양상 또는 제 1 양상의 가능한 구현들 중 어느 하나에 따라 양방향 인터 예측 방법, 또는 제 3 양상 및 제 3 양상의 가능한 구현들 중 어느 하나에 따라 양방향 인트라 예측 방법을 구현하기 위해 실행가능한 프로그램을 실행한다.
제7 양상에 따르면, 디코더가 제공된다. 디코더는, 제 2 양상의 양방향 인터 예측 장치, 및 양방향 인터 예측 장치에 의해 획득된 예측 샘플에 기초하여 현재 화상 블록의 재구성된 샘플 값을 결정하도록 구성된 재구성 모듈을 포함하거나; 디코더는, 제 4 양상의 양방향 상호예측 장치, 및 양방향 인터 예측된 장치에 의해 획득되는 예측 샘플을 기초하여 현재 화상 블록의 재구성된 샘플값을 결정하도록 구성된 재구성된 모듈을 포함한다.
제 8 양상에 따르면, 컴퓨터-판독가능 저장 매체가 제공된다. 컴퓨터-판독가능 저장 매체는 명령을 저장한다. 제 5 양상의 단말기에서 명령이 실행될 때, 단말기는, 제 1 양상 또는 제 1 양상의 가능한 구현들 중 어느 하나에 따라 양방향 인터 예측 방법을 수행하거나, 또는 제 3 양상 또는 제 3 양상의 가능한 구현들 중 어느 하나에 따라 양방향 인터 예측 방법을 수행하도록 인에이블된다.
제 9 양상에 따르면, 명령을 포함하는 컴퓨터 프로그램 제품이 제공된다. 컴퓨터 프로그램 제품이 제 5 양상에서 단말기상에서 실행될 때, 단말기는, 제 1 양상 또는 제 1 양상의 가능한 구현들 중 어느 하나에 따라 양방향 인터 예측 방법을 수행하거나, 또는 제 3 양상 또는 제 3 양상의 가능한 구현들 중 어느 하나에 따라 양방향 인터 예측 방법을 수행하도록 인에이블된다.
제 10 양상에 따르면, 본 발명은 제 1 양상 내지 제 9 양상, 및 제 1 양상 내지 제 9 양상의 가능한 구현들에 따른 방법, 장치, 단말기, 저장 매체, 및 코덱을 더 제공한다.
본 출원에서, 양방향 인터 예측 장치의 명칭은 디바이스들 또는 기능 모듈들에 어떠한 제한도 부과하지 않는다. 실제 구현에서, 디바이스들 또는 기능 모듈들은 상이하게 명명될 수 있다. 디바이스들 또는 기능 모듈들의 기능들이 본 출원에서의 것들과 유사하다면, 디바이스들 또는 기능 모듈들은 본 출원의 청구항들 및 그들의 등가 기술들의 범위 내에 속한다.
본 출원에서의 제 5 양상 내지 제 9 양상 및 제 5 양상 내지 제 9 양상의 구현들의 구체적인 설명들을 위해, 제 1 양상 및 제 1 양상의 구현들의 상세한 설명들, 또는 제 3 양상 및 제 3 양상의 대한 구현들의 상세한 설명들을 참조한다. 또한, 제 5 양상 내지 제 9 양상 및 제 5 양상 내지 제 9 양상의 구현들의 유익한 효과들에 대해, 제 1 양상 및 제 1 양상의 구현들의 유익한 효과들, 또는 제 3 양상 및 제 3 양상의 구현의 유익한 효과들을 참조한다. 세부사항들은 본 명세서에서 다시 설명되지 않는다.
본 출원의 이들 양상들 또는 다른 양상들은 다음의 설명에서 더 명료하고 이해가능하다.
도 1은 본 출원의 일 실시예에 따른 비디오 코딩 시스템의 개략적인 구조도.
도 2는 본 출원의 일 실시예에 따른 비디오 인코더의 개략적인 구조도.
도 3은 본 출원의 일 실시예에 따른 비디오 디코더의 개략적인 구조도.
도 4는 본 출원의 일 실시예에 따른 양방향 인터 예측 방법의 개략적인 흐름도.
도 5는 본 출원의 일 실시예에 따른 양방향 인터 예측 장치의 제 1 개략적인 구조도.
도 6은 본 출원의 일 실시예에 따른 양방향 인터 예측 장치의 제 2 개략적인 구조도.
도 2는 본 출원의 일 실시예에 따른 비디오 인코더의 개략적인 구조도.
도 3은 본 출원의 일 실시예에 따른 비디오 디코더의 개략적인 구조도.
도 4는 본 출원의 일 실시예에 따른 양방향 인터 예측 방법의 개략적인 흐름도.
도 5는 본 출원의 일 실시예에 따른 양방향 인터 예측 장치의 제 1 개략적인 구조도.
도 6은 본 출원의 일 실시예에 따른 양방향 인터 예측 장치의 제 2 개략적인 구조도.
본 출원의 명세서, 청구항들 및 첨부 도면들에서, "제 1", " 제 2", " 제 3" 및 "제 4"와 같은 용어들은 상이한 대상들을 구별하도록 의도되지만, 특정 순서를 나타내지는 않는다.
본 출원의 실시예들에서, "예" 또는 "예를 들어"와 같은 단어들은 일 예, 예시 또는 설명을 제공하는 것을 나타내기 위해 사용된다. 본 출원의 실시예들에서 "예" 또는 "예를 들어"로서 설명된 임의의 실시예 또는 설계 방식은 다른 실시예 또는 디자인 방식보다 더 바람직하거나 더 많은 이점들을 갖는 것으로 설명되지 않아야 한다. 정확하게, "예" 또는 "예를 들어"와 같은 단어의 사용은 특정 방식으로 관련 개념을 제시하도록 의도된다.
본 출원의 실시예들의 이해를 용이하게 하기 위해, 본 출원들의 실시예들에서의 관련 개념들이 본 명세서에서 먼저 설명된다.
화상 인코딩(이미지 인코딩): 화상 시퀀스를 비트스트림으로 압축하는 프로세스.
화상 디코딩(이미지 디코딩): 특정 신택스 규칙 및 특정 처리 방법에 따라 비트스트림을 재구성된 화상으로 복원하는 프로세스.
현재, 비디오 화상 인코딩 프로세스는 다음과 같다: 인코더 측은 먼저 원래 화상를 중첩되지 않는 복수의 부분들로 분할하며, 각 부분은 화상 블록으로서 사용될 수 있다. 이후, 인코더 측은 각 화상 블록에 대하여 예측(예측), 변환(변환), 양자화(양자화) 등의 동작들을 행하여, 화상 블록에 대응하는 비트스트림을 획득한다. 예측은 화상 블록의 예측 블록을 획득하여, 화상 블록과 화상 블록의 예측 블록 사이의 차이(또는 잔차 또는 잔차 블록으로 지칭됨)만이 인코딩 및 전송될 수 있어, 전송 간접 비용들을 감소시킨다. 마지막으로, 인코더 측은 화상 블록에 대응하는 비트스트림을 디코더 측에 전송한다.
이에 대응하여, 비트스트림을 수신한 후, 디코더 측은 비디오 디코딩 프로세스를 수행한다. 구체적으로, 디코더 측은 수신된 비트스트림에 대해 예측, 역양자화, 및 역변환과 같은 동작들을 수행하여 재구성된 화상 블록(또는 재구성 후의 화상 블록으로 지칭됨)을 획득한다. 이 프로세스는 화상 재구성 프로세스(또는 화상 재구축 프로세서)로 지칭된다. 이후, 디코더 측은, 원래 화상의 모든 화상 블록들의 재구성 블록들을 조립하여, 원래 화상의 재구성된 화상을 획득하고, 재구성된 화상을 재생한다.
기존의 비디오 화상 코딩 기술은 인트라 예측 및 인터 예측을 포함한다. 인터 예측은 현재 프레임과 현재 프레임의 참조 프레임 사이의 상관관계를 이용하여 화상 블록을 인코딩/디코딩함으로써 수행되는 예측이다. 현재 프레임은 하나 이상의 참조 프레임들을 가질 수 있다. 구체적으로, 현재 화상 블록의 예측 화상 블록은 현재 화상 블록의 참조 프레임 내의 샘플에 기초하여 생성된다.
일반적으로, 현재 화상 블록의 예측 화상 블록은 단지 하나의 참조 화상 블록에 기초하여 생성될 수 있거나, 또는 현재 화상 블록들의 예측 화상 블록은 적어도 2개의 참조 화상 블록들에 기초하여 생성될 수 있다. 하나의 참조 화상 블록에 기초하여 현재 화상 블록의 예측 화상 블록을 생성하는 것은 단방향 예측으로 지칭되고, 적어도 2개의 참조 화상 블록들에 기초하여 현재 화상 블록의 예측 화상 블록들을 생성하는 것은 양방향 인터 예측으로 지칭된다. 양방향 인터 예측에서 적어도 2개의 참조 화상 블록들은 동일한 참조 프레임 또는 상이한 참조 프레임들로부터 유래할 수 있다. 즉, 본 출원에서 "방향"은 일반화된 정의이다. 본 출원에서의 하나의 방향은 하나의 참조 화상 블록에 대응한다. 다음의 제 1 방향 및 제 2 방향은 상이한 참조 화상 블록들에 대응한다. 2개의 참조 화상 블록들은 현재 화상 블록의 순방향 참조 프레임/역방향 참조 프레임에 포함될 수 있거나; 또는 하나의 참조 화상 블록은 현재 화상 블록들의 순방향 참조 프레임에 포함되고, 다른 참조 화상 블록은 현재의 화상 블록의 역방향 참조 프레임에 포함될 수 있다.
선택적으로, 양방향 인터 예측은 현재 비디오 프레임과 현재 비디오 프레임 이전에 인코딩되고 재생되는 비디오 프레임 사이의 상관관계 및 현재 비디오 프레임 및 현재 비디오 프레임 이전에 인코딩되어 현재 비디오 프레임의 이후에 재생되는 비디오 프레임 사이의 상관관계를 이용하여 수행되는 인터 예측일 수 있다.
양방향 인터 예측이 일반적으로 순방향 인터 예측 및 역방향 인터 예측으로 지칭되는 2개의 방향들에서 인터 예측을 포함한다는 것을 알 수 있다. 순방향 인터 예측은 현재 비디오 프레임 및 현재 비디오 프레임 전에 인코딩되고 재생되는 비디오 프레임 사이의 상관관계에 기초하여 수행되는 인터 예측이다. 역방향 인터 예측은 현재 비디오 프레임 및 현재 비디오 프레임 전에 인코딩되고 현재 비디오 프레임 이후에 재생되는 비디오 프레임 사이의 상관관계에 기초하여 수행되는 인터 예측이다.
순방향 인터 예측은 순방향 참조 프레임 리스트(L0)에 대응하고, 역방향 인터 예측은 역방향 참조 프레임 리스트(L1)에 대응한다. 2개의 참조 프레임 리스트들은 동일한 양의 참조 프레임들 또는 상이한 양의 참조 프레임들을 포함할 수 있다.
움직임 보상(Motion Compensation, MC)은 참조 화상 블록에 기초하여 현재 화상 블록을 예측하는 프로세스이다.
대부분의 코딩 체계들에서, 비디오 시퀀스는 일련의 화상들(화상)을 포함하고, 화상는 적어도 하나의 슬라이스(슬라이스)로 분할되고, 각 슬라이스는 화상 블록들(블록)로 추가로 분할된다. 비디오 인코딩/디코딩은 화상 블록에 의해 수행된다. 인코딩/디코딩은 좌측으로부터 우측으로 그리고 상부로부터 하부로 화상의 상부-좌측 위치로부터 행 단위로 수행될 수 있다. 여기서, 화상 블록은, 비디오 코딩 표준 H.264에서의 매크로 블록(macro block, MB)일 수 있거나, 고효율 비디오 코딩(High Efficiency Video Coding, HEVC) 표준에서의 코딩 유닛(Coding Unit, CU)일 수 있다. 이는 본 출원의 실시예들에서 구체적으로 제한되는 것은 아니다.
본 출원에서, 인코딩/디코딩되고 있는 화상 블록은 현재 화상 블록(현재 블록)으로 지칭되고, 현재 화상 블록이 위치하는 화상는 현재 프레임으로 지칭된다.
일반적으로, 현재 프레임은 단방향 예측 프레임(P 프레임)일 수 있거나, 또는 양방향 예측 프레임(B 프레임)일 수 있다. 현재 프레임이 P 프레임일 때, 현재 프레임은 하나의 참조 프레임 리스트를 갖는다. 현재 프레임이 B 프레임일 때, 현재 프레임은 2개의 참조 프레임 리스트들을 갖고, 2개의 리스트들은 일반적으로 L0 및 L1로 지칭된다. 각각의 참조 프레임 리스트는 현재 프레임의 참조 프레임으로 사용되는 적어도 하나의 재구성된 프레임을 포함한다. 참조 프레임은 현재 프레임에 대한 인터 예측을 위한 참조 샘플을 제공하는데 사용된다.
현재 프레임에서, 현재 화상 블록의 이웃 화상 블록(예컨대, 현재 블록의 좌측, 상단, 또는 우측에 있는)이 인코딩/디코딩될 수도 있고, 재구성된 화상이 획득된다. 이웃 화상 블록은 재구성된 화상 블록으로 지칭된다. 재구성된 화상 블록의 코딩 모드 및 재구성된 샘플과 같은 정보가 이용 가능하다(이용 가능하다).
현재 프레임이 인코딩/디코딩되기 전에 인코딩/디코딩되 프레임은 재구성된 프레임으로 지칭된다.
움직임 벡터(Motion Vector, MV)는 인터 예측 프로세스에서 중요한 파라미터이고, 현재 화상 블록에 대한 인코딩된 화상 블록의 공간 변위를 나타낸다. 일반적으로, 움직임 검색과 같은 움직임 추정(Motion Estimation, ME) 방법이 움직임 벡터를 획득하기 위해 사용될 수 있다. 예비 인터 예측 기술에서, 인코더 측은 현재 화상 블록의 움직임 벡터를 비트스트림 내에 전송하여, 디코더 측이 현재 화상 블록의 예측 샘플을 재생하여, 재구성된 블록을 획득한다. 인코딩 효율을 추가로 향상시키기 위해, 참조 움직임 벡터를 이용하여 움직임 벡터를 차분 인코딩하는 것, 즉 움직임 벡터 차이(Motion Vector Difference, MVD)만을 인코딩하는 것이 추가로 제안된다.
디코더 측 및 인코더 측이 동일한 참조 화상 블록을 사용할 수 있게 하기 위해, 인코더 측은 비트스트림을 통해 각 화상 블록의 움직임 정보를 디코더 측에 전송할 필요가 있다. 인코더 측이 각 화상 블록의 움직임 벡터를 직접 인코딩하면, 많은 양의 전송 자원들이 소비된다. 공간적으로 이웃하는 화상 블록들의 움직임 벡터들이 강하게 상관되기 때문에, 현재 화상 블록의 움직임 벡터는 이웃하는 인코딩된 화상 블록의 움직임 벡터에 기초하여 예측될 수 있다. 예측을 통해 획득된 움직임 벡터는 MVP로 지칭되고, 현재 화상 블록의 움직임 벡터와 MVP 간의 차이는 MVD로 지칭된다.
비디오 코딩 표준 H.264에서, 다중-참조 프레임 예측은 예측 정확도를 향상시키기 위해 움직임 추정 프로세스에서 사용된다. 구체적으로, 복수의 재구성된 프레임들을 저장하는 버퍼가 생성되고, 버퍼 내의 모든 재구성된 프레임들은 움직임 보상을 위한 최적의 참조 화상 블록에 대해 검색되어, 시간적 중복을 더 양호하게 제거한다. 비디오 코딩 표준 H.264에서, 2개의 버퍼들이 인터 예측에 사용된다: 참조 프레임 리스트 0(참조 리스트 0) 및 참조 프레임 리스트 1(참조 리스트 1). 각 리스트 내의 최적의 참조 블록이 위치하는 참조 프레임은 인덱스 값, 즉, ref_idx_10 또는 ref-idX_11로 표시된다. 각 참조 프레임 리스트에서, 참조 화상 블록의 움직임 정보는 참조 프레임의 인덱스 값(ref_idx_10 또는 ref_idex_11), MVP 식별자 및 MVD를 포함한다. 디코더 측은 참조 프레임의 인덱스 값, MVP 식별자, 및 MVD에 기초하여 선택된 참조 프레임에서 정확한 참조 화상 블록을 찾을 수 있다.
현재, HEVC 표준에서 빈번하게 사용되는 인터 예측 모드들은 향상된 움직임 벡터 예측(Advanced Motion Vector Prediction, AMVP) 모드, 병합(Merge) 모드, 및 비-병진 움직임 모델 예측 모드이다.
AMVP 모드에서, 인코더 측은 현재 화상 블록에 공간적으로 또는 시간적으로 인접한 인코딩된 화상 블록의 움직임 정보를 이용하여 후보 움직임 벡터 리스트를 구성하고, 후보 움직임 벡터 내의 최적의 움직임 벡터를 레이트-왜곡 비용들에 기초하여 현재 화상 블록의 MVP로서 결정한다. 또한, 인코더 측은 MVP를 중심으로 이웃들에서 움직임 검색을 수행하여, 현재 화상 블록의 움직임 벡터를 획득한다. 인코더 측은 후보 움직임 벡터 리스트 내의 MVP의 인덱스 값(즉, MVP 식별자), 참조 프레임의 인덱스 값 및 MVD를 디코더 측에 전송한다.
병합 모드에서, 인코더 측은 현재 화상 블록에 공간적으로 또는 시간적으로 인접한 인코딩된 화상 블록의 움직임 정보를 이용하여 후보 움직임 정보 리스트를 구성하고, 후보 움직임 정보 리스트 내의 최적 움직임 정보를 레이트-왜곡 비용들에 기초하여 현재 화상 블록들의 움직임 정보로서 결정한다. 인코더 측은 후보 움직임 정보 리스트 내의 최적 움직임 정보의 위치의 인덱스 값을 디코더 측에 전송한다.
비-병진 움직임 모델 예측 모드에서, 인코더 측 및 디코더 측은 동일한 움직임 모델을 이용하여 현재 화상 블록의 모든 하위블록들의 움직임 정보를 유도하고, 모든 하위블록들의 움직임 정보에 기초하여 움직임 보상을 수행함으로써 예측 화상 블록을 획득한다. 이것은 예측 효율을 향상시킨다. 인코더 측 및 디코더 측에 의해 빈번하게 사용되는 움직임 모델은 4-파라미터 아핀(affine) 모델, 6-파라미터 아핀 변환 모델, 또는 8-파라미터 이선형 모델이다.
예를 들어, 4-파라미터 아핀 변환 모델은 현재 화상 블록의 상부-좌측 샘플에 대해 2개의 샘플들의 움직임 벡터들 및 2개 샘플들의 좌표들을 이용함으로써 표현될 수 있다. 여기서, 움직임 모델 파라미터를 표현하기 위해 사용되는 샘플은 제어 포인트로서 지칭된다. 현재 화상 블록의 상부-좌측 샘플(0, 0) 및 현재 화상 블록 상부-우측 샘플(W,0)이 제어 포인트들이라면, 상부-좌측 샘플 및 현재 화상 블록의 상부-우측 샘플의 움직임 벡터들은 각각(vx0, vy0) 및(vx1 vy1)이고, 현재 화상 블록의 각 하위블록의 움직임 정보는 식(1)에 따라 획득된다. 식(1)에서, (x,y)는 현재 화상 블록의 상부-좌측 샘플에 대한 하위블록의 좌표를 나타내고, (vx,vy)는 하위블록의 움직임 벡터를 나타내며, W는 현재 화상 블록의 폭을 나타낸다.
(1)
예를 들어, 6-파라미터 아핀 변환 모델은, 현재 화상 블록의 상부-좌측 샘플에 대해 3개의 샘플들의 움직임 벡터들 및 3개 샘플들의 좌표들을 이용함으로써 표현될 수 있다. 현재 화상 블록의 상부-좌측 샘플(0, 0), 현재 화상 블록의 상부-우측 샘플(W, 0) 및 현재 화상 블록이 하부-좌측 샘플(0, H)이 제어 포인트들이라면, 현재 화상들 블록의 상부-좌측 샘플, 상부-우측 샘플 및 하부-좌측 샘플의 움직임 벡터들은 각각(vx0, vy0), (vx1, vy1) 및 (vx2, vy2)이고, 현재 화상 블록의 각 하위블록의 움직임 정보는 식(2)에 획득된다. 식(2)에서, (x, y)는 현재 화상 블록의 상부-좌측 샘플에 대한 하위블록의 좌표들을 나타내고, (vx, vy)는 하위블록의 움직임 벡터를 나타내며, W 및 H는 각각 현재 화상 블록들의 폭 및 높이를 나타낸다.
(2)
예를 들어, 8-파라미터 이선형 모델은 현재 화상 블록의 상부-좌측 샘플에 대해 4개의 샘플들의 움직임 벡터들 및 4개 샘플들의 좌표들을 사용함으로써 표현될 수 있다. 현재 화상 블록의 상부-좌측 샘플(0, 0), 현재 화상 블록의 상부-우측 샘플(W, 0), 현재 화상 블록의 하부-좌측 샘플(0, H), 및 현재 화상 블록의 하부-우측 샘플(W, H)이 제어 포인트들이라면, 현재 화상 블록의 상부-좌측 샘플, 상부-우측 샘플, 하부-좌측 샘플 및 하부-우측 샘플의 움직임 벡터들은 각각 (vx0, vy0), (vx1, vy1), (vx2, vy2) 및 (vx3, vy3)이고, 현재 화상 블록의 각 하위블록의 움직임 정보 식(3)에 따라 획득된다. 식(3)에서, (x, y)는 현재 화상 블록의 상부-좌측 샘플에 대한 하위블록의 좌표들을 나타내고, (vx, vy)는 하위블록의 움직임 벡터를 나타내며, W 및 H는 각각 현재 화상 블록의 너비 및 높이를 나타낸다.
(3)
상술한 인터 예측 모드들 중 어느 하나에서, 인터 예측이 양방향 인터 예측이라면, 인코더 측은 각 방향에서 각 화상 블록의 움직임 정보를 디코더 측에 전송할 필요가 있다는 것을 쉽게 알 수 있다. 결과적으로, 움직임 정보는 비교적 많은 양의 전송 자원들을 점유한다. 이는 전송 자원들, 전송 속도, 및 코딩 압축 효율의 효과적인 이용을 감소시킨다.
상술한 문제점을 해결하기 위해, 본 출원은 양방향 인터 예측 방법을 제공한다. 양방향 인터 예측에서, 인코더 측은 제 1 방향에서 현재 화상 블록의 움직임 정보를 디코더 측에 전송하고, 제 1 방향에서 현재 화상 블록들의 움직임 정보를 수신한 후, 디코더 측은 제 1 방향에서의 현재 화상 블록의 움직임 정보에 기초하여 제 2 방향에서 현재 화상 블록의 움직임 정보를 계산한다. 이러한 방식으로, 현재 화상 블록의 예측 샘플은, 제 1 방향에서 현재 화상 블록의 움직임 정보 및 제 2 방향에서 현재 화상 블록의 움직임 정보에 기초하여 계산될 수 있다.
본 출원에서 제공되는 양방향 인터 예측 방법은 양방향 인터 예측 장치, 비디오 코딩 장치, 비디오 코덱 또는 비디오 코딩 기능을 갖는 다른 디바이스에 의해 수행될 수 있다.
본 출원에서 제공되는 양방향 인터 예측 방법은 비디오 코딩 시스템에 적용될 수 있다. 비디오 코딩 시스템에서, 비디오 인코더(100) 및 비디오 디코더(200)는 본 출원에서 제공되는 양방향 인터 예측 방법의 예들에 따라 현재 화상 블록의 움직임 정보를 계산하도록 구성된다. 구체적으로, 제 2 방향에서 현재 화상 블록의 움직임 정보가 제 1 방향에서 현재 화상 블록의 움직임 정보에 기초하여 계산되어, 현재 화상 블록의 예측 샘플은, 제 1 방향에서 현재 화상 블록의 움직임 정보 및 제 2 방향에서 현재 화상 블록의 움직임 정보에 기초하여 결정된다. 이러한 방식으로, 오로지 제 1 방향에서의 현재 화상 블록의 움직임 정보만이 비디오 인코더(10)와 비디오 인코더(20) 사이에서 전송될 필요가 있다. 이는 전송 자원 활용 및 코딩 압축 효율을 효과적으로 향상시킨다.
도 1은 비디오 코딩 시스템의 구조를 도시한다. 도 1에 도시된 바와 같이, 비디오 코딩 시스템(1)은 소스 장치(10) 및 목적지 장치(20)를 포함한다. 소스 장치(10)는 인코딩된 비디오 데이터를 생성한다. 소스 장치(10)는 또한 비디오 인코딩 장치 또는 비디오 인코딩 디바이스로서 지칭될 수 있다. 목적지 장치(20)는 소스 장치(10)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있다. 목적지 장치(20)는 또한 비디오 디코딩 장치 또는 비디오 디코딩 디바이스로 지칭될 수 있다. 소스 장치(10) 및/또는 목적지 장치(20)는 적어도 하나의 프로세서 및 적어도 하나의 프로세서에 접속된 메모리를 포함할 수 있다. 메모리는 판독-전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 전기적으로 소거가능한 프로그램가능 판독-전용 메모리(EEPROM), 플래시 메모리, 또는 컴퓨터에 의해 액세스될 수 있는 명령 또는 데이터 구조의 형태로 필요한 프로그램 코드를 저장하도록 구성될 수 있는 임의의 다른 매체를 포함할 수 있지만, 이에 국한되는 것은 아니다. 이는 본 출원에 특별히 제한되는 것은 아니다.
소스 장치(10) 및 목적지 장치(20)는 데스크톱 컴퓨터, 모바일 컴퓨팅 장치, 노트북(예를 들어, 랩톱) 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, "스마트폰" 과 같은 핸드헬드 전화기 세트, 텔레비전 세트, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 차량내 컴퓨터, 및 유사한 장치를 포함하는 다양한 장치들을 포함할 수 있다.
목적지 장치(20)는 링크(30)를 통해 소스 장치(10)로부터 인코딩된 비디오 데이터를 수신할 수 있다. 링크(30)는 인코딩된 비디오 데이터를 소스 장치(10)로부터 목적지 장치(20)로 전송할 수 있는 하나 이상의 매체 및/또는 장치들을 포함할 수 있다. 일 예에서, 링크(30)는 소스 장치(10)가 인코딩된 비디오 데이터를 실시간으로 목적지 장치(20)로 직접 전송할 수 있게 하는 하나 이상의 통신 매체들을 포함할 수 있다. 이 예에서, 소스 장치(10)는 인코딩된 비디오 데이터를 통신 표준(예를 들어, 무선 통신 프로토콜)에 따라 변조할 수 있고, 변조된 비디오 데이터를 목적지 장치(20)로 전송할 수 있다. 하나 이상의 통신 매체는 무선 및/또는 유선 통신 매체, 예를 들어 무선 주파수(무선 주파수, RF) 스펙트럼 또는 하나 이상의 물리적 전송 라인들을 포함할 수 있다. 하나 이상의 통신 매체는 패킷-기반 네트워크의 일부를 구성할 수 있고, 패킷-기반 네트워크는 예를 들어, 근거리 네트워크, 광역 네트워크, 또는 글로벌 네트워크(예를 들어, 인터넷)이다. 하나 이상의 통신 매체들은 라우터, 스위치, 기지국, 또는 소스 장치(10)로부터 목적지 장치(20)로의 통신을 구현하는 다른 디바이스를 포함할 수 있다.
다른 예에서, 인코딩된 비디오 데이터는 출력 인터페이스(103)를 통해 저장 장치(40)로 출력될 수 있다. 유사하게, 인코딩된 비디오 데이터는 입력 인터페이스(240)를 통해 저장 장치(40)로부터 액세스될 수 있다. 저장 장치(40)는 블루-레이 디스크, 고밀도 디지털 비디오 디스크(DVD), 컴팩트 디스크 판독-전용 메모리(CD-ROM), 플래시 메모리, 또는 인코딩된 비디오 데이터를 저장하도록 구성된 다른 적절한 디지털 저장 매체와 같은 복수의 유형들의 국부적으로 액세스 가능한 데이터 저장 매체를 포함할 수 있다.
다른 예에서, 저장 장치(40)는 소스 장치(10)에 의해 생성된 인코딩된 비디오 데이터를 저장하는 파일 서버 또는 다른 중간 저장 장치에 대응할 수도 있다. 이 예에서, 목적지 장치(20)는 스트리밍 전송 또는 다운로딩을 통해 저장 장치(40) 로부터 저장된 비디오 데이터를 획득할 수 있다. 파일 서버는 인코딩된 비디오 데이터를 저장할 수 있고, 인코딩된 비디오 데이터를 목적지 장치(20)로 전송할 수 있는 임의의 유형의 서버일 수 있다. 예를 들면, 파일 서버는 월드 와이드 웹(World Wide Web, 웹) 서버(예를 들면, 웹사이트용으로 사용되는), 파일 전송 프로토콜(File Transfer Protocol, FTP) 서버, 네트워크 부착 저장장치(Network Attached Storage, NAS) 장치, 또는 로컬 디스크 드라이브를 포함할 수 있다.
목적지 장치(20)는 임의의 표준 데이터 연결(예를 들어, 인터넷 연결)을 통해 인코딩된 비디오 데이터에 액세스할 수 있다. 데이터 연결의 예시적인 유형은 파일 서버에 저장된 인코딩된 비디오 데이터에 액세스하기에 적합한 무선 채널, 유선 접속(예를 들어, 케이블 모뎀), 또는 이들의 조합을 포함한다. 파일 서버로부터의 인코딩된 비디오 데이터의 전송은 스트리밍 전송, 다운로드 전송, 또는 이들의 조합일 수 있다.
본 출원에서 양방향 인터 예측 방법은 무선 애플리케이션 시나리오에 제한되지 않는다. 예를 들어, 본 출원에서의 양방향 인터 예측 방법은 다음 애플리케이션들과 같은 복수의 멀티미디어 애플리케이션들을 지원하기 위한 비디오 코딩에서 사용될 수 있다: 오버-디-에어(over-the-air) 텔레비전 방송, 케이블 텔레비전 전송, 위성 텔레비전 전송, 스트리밍 비디오 전송(예컨대, 인터넷을 통한), 데이터 저장 매체에 저장된 비디오 데이터의 인코딩, 데이터 저장 매체에 저장된 비디오 데이터의 디코딩, 또는 다른 애플리케이션. 일부 예들에서, 비디오 코딩 시스템(1)은 단방향 또는 양방향 비디오 전송을 지원하도록, 스트리밍 비디오 전송, 비디오 재생, 비디오 방송, 및/또는 비디오 전화와 같은 애플리케이션들을 지원하도록 구성될 수도 있다.
도 1에 도시된 비디오 코딩 시스템(1)은 비디오 코딩 시스템의 예일 뿐이며, 본 출원에서 비디오 코딩 시스템에 어떠한 제한도 부과하지 않는다. 본 출원에서 제공되는 양방향 인터 예측 방법은 또한 인코딩 장치와 디코딩 장치 사이에 데이터 통신이 없는 시나리오에 적용가능하다. 다른 예들에서, 인코딩될 비디오 데이터 또는 인코딩된 비디오 데이터는 로컬 메모리로부터 검색될 수 있고, 네트워크 등을 통해 스트리밍 방식으로 전송될 수 있다. 비디오 인코딩 장치는 인코딩될 비디오 데이터를 인코딩하고 인코딩된 비디오 데이터를 메모리에 저장할 수 있다. 비디오 디코딩 장치는 메모리로부터 인코딩된 비디오 데이터를 획득하고, 인코딩된 비디오 데이터의 디코딩할 수 있다.
도 1에서, 소스 장치(10)는 비디오 소스(101), 비디오 인코더(102), 및 출력 인터페이스(103)를 포함한다. 일부 예들에서, 출력 인터페이스(103)는 변조기/복조기(모뎀) 및/또는 전송기를 포함할 수 있다. 비디오 소스(101)는 비디오 캡처링 장치(예를 들어, 카메라), 이전에 캡처된 비디오 데이터를 포함하는 비디오 아카이브, 비디오 콘텐츠 제공자로부터 비디오 데이터를 수신하기 위한 비디오 입력 인터페이스, 및/또는 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템, 또는 상술한 비디오 데이터 소스들의 조합을 포함할 수 있다.
비디오 인코더(102)는 비디오 소스(101)로부터의 비디오 데이터를 인코딩할 수 있다. 일부 예들에서, 소스 장치(10)는 인코딩된 비디오 데이터를 출력 인터페이스(103)를 통해 목적지 장치(20)로 직접 전송한다. 다른 예들에서, 인코딩된 비디오 데이터는 대안적으로 저장 장치(40)에 저장될 수도 있어서, 목적지 장치(20)는 디코딩 및/또는 재생을 위해 인코딩된 비디오 데이터에 후속하여 액세스한다.
도 1의 예에서, 목적지 장치(20)는 디스플레이 장치(201), 비디오 디코더(202), 및 입력 인터페이스(203)를 포함한다. 일부 예들에서, 입력 인터페이스(203)는 수신기 및/또는 모뎀을 포함한다. 입력 인터페이스(203)는 링크(30)를 통해 및/또는 저장 장치(40)로부터 인코딩된 비디오 데이터를 수신할 수 있다. 디스플레이 장치(201)는 목적지 장치(20)와 집적될 수 있거나, 목적지 장치(20)의 외부에 배치될 수 있다. 일반적으로, 디스플레이 장치(201)는 디코딩된 비디오 데이터를 디스플레이한다. 디스플레이 장치(201)는 복수의 유형들의 디스플레이 장치들, 예를 들어 액정 디스플레이, 플라즈마 디스플레이, 유기 발광 다이오드 디스플레이 또는 다른 유형의 디스플레이 장치를 포함할 수 있다.
선택적으로, 비디오 인코더(102) 및 비디오 디코더(202)는 오디오 인코더 및 오디오 디코더와 각각 통합될 수 있고, 오디오 및 비디오 모두를 결합된 데이터 스트림 또는 별개의 데이터 스트림으로 인코딩하기 위한 적절한 멀티플렉서-디멀티플렉서 유닛 또는 다른 하드웨어 및 소프트웨어를 포함할 수 있다.
비디오 인코더(102) 및 비디오 디코더(202)는 적어도 하나의 마이크로프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 이산 로직, 하드웨어, 또는 이들의 임의의 조합을 포함할 수 있다. 본 출원에서 제공되는 양방향 인터 예측 방법이 소프트웨어를 사용하여 구현된다면, 소프트웨어를 위해 사용되는 명령은 적절한 비휘발성 컴퓨터-판독가능 저장 매체에 저장될 수 있고, 적어도 하나의 프로세서는 이러한 애플리케이션을 구현하기 위해 하드웨어에서 명령을 실행하는데 사용될 수 있다. 상술한 콘텐츠(하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합, 등을 포함) 중 어느 하나는 적어도 하나의 프로세서로서 고려될 수 있다. 비디오 인코더(102)는 인코더에 포함될 수 있고, 비디오 디코더(202)는 디코더에 포함될 수 있고, 인코더 또는 디코더는 대응하는 장치 내의 결합된 인코더/디코더(코덱)의 일부일 수 있다.
본 출원의 비디오 인코더(102) 및 비디오 디코더(202)는 비디오 압축 표준(예를 들어, HEVC)에 따라 동작들을 수행할 수 있거나, 또는 다른 산업 표준에 따라 동작들을 수행할 수 있다. 이는 본 출원에서 특별히 제한되는 것은 아니다.
비디오 인코더(102)는: 현재 화상 블록에 대해 양방향 움직임 추정을 수행하고, 제 1 방향에서 현재 화상 블록의 움직임 정보를 결정하고, 제 2 방향에서 현재 화상 블록의 움직임 정보를 제 1 방향에서 현재 화상 블록들의 움직임 정보에 기초하여 계산하도록 구성된다. 이러한 방식으로, 비디오 인코더(102)는 현재 화상 블록의 예측 화상 블록을, 제 1 방향에서 현재 화상 블록의 움직임 정보 및 제 2 방향에서의 현재 화상의 움직임 정보에 기초하여 결정한다. 또한, 비디오 인코더(102)는 현재 화상 블록과 현재 화상 블록의 예측 화상 블록 사이의 나머지에 대해 변환 및 양자화와 같은 동작들을 수행하여 비트스트림을 생성하고, 비트스트림을 비디오 디코더(202)에 전송한다. 비트스트림은 제 1 방향에서 현재 화상 블록의 움직임 정보 및 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하도록 지시하는데 사용되는 지시 정보를 포함한다. 지시 정보는 상이한 식별자를 이용하여 표현될 수 있다. 지시 정보를 나타내는 방법에 대해 이하의 설명들을 참조한다.
선택적으로, "비디오 인코더(102)가 제 2 방향에서 현재 화상 블록의 움직임 정보를 제 1 방향에서 현재 화상 블록의 움직임 정보에 기초하여 계산하는" 방법은 다음과 같을 수 있다: 비디오 인코더(120)는 제 2 방향에서 현재 화상 블록의 움직임 벡터를 제 1 방향에서 현재 화상 블록의 움직임 벡터에 기초하여 결정하거나; 또는 비디오 디코더(130)는 제 2 방향에서 현재화상 블록의 움직임 벡터 차이를 제 1 방향에서 현재 화상 블록의 움직임 벡터 차이에 기초하여 결정하고, 제 2 방향에서 현재 화상 블록의 움직임 벡터를 제 2 방향에서 현재 화상 블록의 움직임 벡터 차이 및 제 2 방향에서 현재 화상 블록의 예측된 움직임 벡터에 기초하여 결정한다.
다음의 도 4를 참조한다. 비디오 디코더(202)는: 비트스트림을 획득하고, 비트스트림을 파싱하여, 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하도록 지시하는데 사용된 지시 정보를 획득하고(S400), 다시 말해, 한 방향의 움직임 정보에 기초하여, 다른 방향의 움직임 정보를 결정하여 유도 및 계산하되, 제 1 움직임 정보는 제 1 방향에서 현재 화상 블록의 움직임 정보이고, 제 2 움직임 정보는 제 2 방향에서 현재 화상 블록의 움직임 정보이며, 여기서 제 1 방향과 제 2 방향은 상이한, 움직임 정보를 결정하여 유도 및 계산하고; 제 1 움직임 정보를 획득하고(S401); 획득된 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하고(S402); 제 1 움직임 정보 및 제 2 움직임 정보에 기초하여 현재 화상 블록의 예측 샘플을 결정하도록(S403), 구성된다.
"비디오 디코더(202)가 제 1 방향에서 현재 화상 블록의 움직임 정보에 기초하여 제 2 방향에서의 현재 화상의 움직임 정보를 계산하는" 방법은 다음과 같을 수 있다: 비디오 디코더(202)가 제 1 방향의 현재 화상 블록의 움직임 벡터에 기초하여 제 2 방향에서 현재 화상 블록의 움직임 벡터를 결정하거나; 또는 비디오 디코더(202)가 제 1 방향에서 현재 화상 블록의 움직임 벡터 차이에 기초하여 제 2 방향에서 현재의 화상 블록의 움직임 벡터 차이를 결정하고, 제 2 방향에서 현재 화상 블록의 움직임 벡터 차이 및 제 2 방향에서 현재 화상 블록의 예측된 움직임 벡터에 기초하여 제 2 방향에서 현재 화상 블록의 움직임 벡터를 결정한다.
도 2는 본 출원의 실시예에 따른 비디오 인코더(102)의 개략적인 구조도이다. 도 2에 도시된 바와 같이, 비디오 인코더(102)는 비디오를 후처리 엔티티(41)로 출력하도록 구성된다. 후처리 엔티티(41)는 비디오 인코더(102)로부터의 인코딩된 비디오 데이터를 처리할 수 있는 비디오 엔티티, 예를 들어, 미디어 인식 네트워크 요소(MANE) 또는 스티칭 장치/편집 장치의 예이다. 일부 경우들에서, 후처리 엔티티(41)는 네트워크 엔티티의 일 예일 수 있다. 일부 비디오 인코딩 시스템들에서, 후처리 엔티티(41) 및 비디오 인코더(102)는 별개의 장치들의 구성요소들일 수도 있다. 다른 경우들에서, 후처리 엔티티(41)에 관해 설명된 기능들은 비디오 인코더(100)를 포함하는 동일한 장치에 의해 수행될 수 있다. 일 예에서, 후처리 엔티티(41)는 도 1의 저장 장치(40)의 예이다.
비디오 인코더(102)는 제 1 방향에서 현재 화상 블록의 움직임 정보에 기초하여 제 2 방향에서 현재 화상 블록의 움직임 정보를 유도 및 계산할 수 있고, 또한, 양방향 인터 예측 인코딩을 완료하기 위해, 제 1 방향에서 현재 화상 블록의 움직임 정보 및 제 2 방향에서 현재 화상 블록의 움직임 정보에 기초하여 현재 화상 블록의 예측 화상 블록을 결정할 수 있다.
도 2에 도시된 바와 같이, 비디오 인코더(102)는 변환기(301), 양자화기(302), 엔트로피 인코더(303), 필터(306), 메모리(307), 예측 처리 유닛(308), 및 합산기(312)를 포함한다. 예측 처리 유닛(308)은 인트라 예측기(309) 및 인터 예측기(310)를 포함한다. 화상 블록을 재구성하기 위해, 비디오 인코더(102)는 역양자화기(304), 역변환기(305), 및 합산기(311)를 더 포함한다. 필터(306)는 하나 이상의 루프 필터들, 예를 들어, 디블록킹 필터, 적응적 루프 필터, 및 샘플 적응 옵셋 필터를 나타내도록 특정된다.
메모리(307)는 비디오 인코더(102)의 구성요소에 의해 인코딩된 비디오 데이터를 저장할 수 있다. 메모리(307)에 저장된 비디오 데이터는 비디오 소스(101)로부터 획득될 수 있다. 메모리(307)는 인트라 또는 인터 코딩 모드에서 비디오 데이터를 인코딩하기 위해 비디오 인코더(102)에 의해 사용되는 참조 비디오 데이터를 저장하는 참조 화상 메모리일 수 있다. 메모리(307)는 동기 DRAM(SDRAM), 자기저항 RAM(MRAM), 저항성 RAM(RRAM), 또는 다른 유형의 메모리 장치를 포함하는 동적 랜덤 액세스 메모리(DRAM)일 수 있다.
비디오 인코더(102)는 비디오 데이터를 수신하고 비디오 데이터를 비디오 데이터 메모리에 저장한다. 분할 유닛은 비디오 데이터를 수 개의 화상 블록들로 분할하고, 이들 화상 블록들은 더 작은 블록들로 더 분할될 수 있고, 예를 들어, 쿼드트리 구조 또는 이진-트리 구조에 기초하여 분할된다. 분할은 슬라이스들(슬라이스), 타일들(타일), 또는 다른 더 큰 유닛들로의 분할을 더 포함할 수 있다. 비디오 인코더(102)는 일반적으로 인코딩될 비디오 슬라이스 내의 화상 블록을 인코딩하기 위한 구성요소이다. 슬라이스는 복수의 화상 블록들로 분할될 수 있다(그리고 타일들로서 지칭되는 화상 블록 세트들로 분할될 수 있다).
예측 처리 유닛(308)에서 인트라 예측자(309)는 공간 중복을 제거하기 위해, 현재 화상 블록과 동일한 프레임 또는 슬라이스에 있는 하나 이상의 이웃하는 화상 블록들에 대해 현재 화상 블록 상에서 인트라 예측 인코딩을 수행할 수 있다. 예측 처리 유닛(308)에서 인터 예측자(310)는 시간적 중복을 제거하기 위해, 하나 이상의 참조 화상들에서 하나 이상의 예측 화상 블록들에 대해 현재 화상 블록 상에서 인터 예측 인코딩을 수행할 수 있다.
예측 처리 유닛(308)은 잔차 블록을 생성하기 위해 비디오 인코더(310)에 대해 획득된 인트라-코딩된 및 인터-코딩된 화상 블록들을 제공할 수 있고, 참조 이미지로서 사용되는 인코딩된 블록을 재구성하기 위해 합산기(312)에 잔차 블록을 제공할 수 있다.
예측 처리 유닛(308)이 인터 예측 및 인트라 예측을 통해 현재 화상 블록의 예측 화상 블록을 생성한 후, 비디오 인코더(102)는 인코딩될 현재 화상 블록으로부터 예측 화상 블록들을 감산함으로써 잔차 화상 블록을 생성한다. 합산기(312)는 이러한 감산 동작을 수행하는 하나 이상의 구성요소들을 나타낸다. 잔차 블록에서 잔차 비디오 데이터는 하나 이상의 변환 유닛들(TU)에 포함될 수 있고, 변환기(301)에 적용될 수 있다. 변환기(301)는 이산 코사인 변환(DCT) 또는 개념적으로 유사한 변환과 같은 변환을 통해 잔차 비디오 데이터를 잔차 변환 계수로 변환한다. 변환기(301)는 잔차 비디오 데이터를 샘플 값 도메인으로부터 변환 도메인, 예를 들어, 주파수 도메인으로 변환할 수 있다.
변환기(301)는 획득된 변환 계수를 양자화기(302)에 전송할 수 있다. 양자화기(302)는 변환 계수를 양자화하여 비트레이트를 추가로 감소시킨다. 일부 예들에서, 양자화기(302)는 양자화된 변환 계수를 포함하는 매트릭스를 추가로 스캐닝할 수 있다. 대안적으로, 엔트로피 인코더(303)는 스캐닝을 수행할 수 있다.
양자화 후, 엔트로피 인코더(303)는 양자화된 변환 계수에 대해 엔트로피 인코딩을 수행한다. 예를 들어, 엔트로피 인코더(303)는 컨텍스트-적응 가변-길이 코딩(CAVLC), 컨텍스트-적응 이진 산술 코딩(CABAC) 또는 다른 엔트로피 코딩 방법 또는 기술을 수행할 수 있다. 엔트로피 인코더(303)가 엔트로피 인코딩을 수행한 후, 인코딩된 비트스트림은 비디오 디코더(202)로 전송되거나, 또는 비디오 디코더(302)에 의한 후속 전송 또는 후속 검색을 위해 보관될 수 있다. 엔트로피 인코더(303)는 인코딩될 현재 화상 블록의 신택스 요소에 대해 엔트로피 인코딩을 더 수행할 수 있다.
역 양자화기(304) 및 역 변환기(305)는 각각 역양자화 및 역변환을 수행하여, 예를 들어, 후속하여 참조 화상의 참조 블록으로서 사용될, 샘플 도메인에서 잔차 블록을 재구성한다. 합산기(311)는 재구성된 잔차 블록을 인터 예측자(310) 또는 인트라 예측자(309)에 의해 생성된 예측 화상 블록에 가산하여, 재구성된 화상 블록을 생성한다. 화상 블록의 예측 화상 블록은 화상 블록의 참조 화상 블록에 대한 처리(예를 들어, 보간)를 수행함으로써 획득될 수 있다.
비디오 인코더(102)의 다른 구조적 변형들이 비디오 스트림을 인코딩하도록 구성될 수 있음이 이해되어야 한다. 예를 들어, 일부 화상 블록들 또는 화상 프레임들에 대해, 비디오 인코더(102)는 잔차 신호를 직접 양자화할 수 있고, 따라서, 변환기(301) 및 역변환기(305)에 의한 처리는 요구되지 않는다. 대안적으로, 일부 화상 블록들 또는 화상 프레임들에 대해, 비디오 인코더(102)는 잔차 데이터를 생성하지 않고, 이에 따라, 변환기(301), 양자화기(302), 역양자화기(304), 및 역변환기(305)에 의한 처리는 요구되지 않는다. 대안적으로, 비디오 인코더(102)는 필터(306)에 의한 처리 없이 참조 블록으로서 재구성된 화상 블록을 직접 저장할 수 있다. 대안적으로, 비디오 인코더(102)에서 양자화기(302) 및 역양자화기(304)는 결합될 수 있다.
도 3은 본 출원의 실시예에 따른 비디오 디코더(202)의 개략적인 구조도이다. 도 3 에 도시된 바와 같이, 비디오 디코더(202)는 엔트로피 디코더(401), 역양자화기(402), 역변환기(403), 필터(404), 메모리(405), 예측 처리 유닛(406), 및 합산기(409)를 포함한다. 예측 처리 유닛(406)은 인트라 예측기(407) 및 인터 예측기(408)를 포함한다. 일부 예들에서, 비디오 디코더(202)는 도 2의 비디오 인코더(102)에 대해 설명된 인코딩 프로세스와 대략 반대인 디코딩 프로세스를 수행할 수 있다.
디코딩 프로세스에서, 비디오 디코더(202)는 비디오 인코더(102)로부터 비트스트림을 수신한다. 비디오 디코더(202)는 네트워크 엔티티(42)로부터 비디오 데이터를 수신할 수 있고, 선택적으로, 비디오 데이터를 비디오 데이터 메모리(도면에 도시되지 않음)에 추가로 저장할 수 있다. 비디오 데이터 메모리는 비디오 디코더(202)의 구성요소에 의해 디코딩될 비디오 데이터, 예를 들어, 인코딩된 비트스트림를 저장할 수 있다. 비디오 데이터 메모리에 저장된 비디오 데이터는, 비디오 데이터의 유선 또는 무선 네트워크 통신을 통해, 또는 물리적 데이터 저장 매체에 액세스함으로써, 예를 들어, 저장 장치(40) 또는 카메라와 같은 로컬 비디오 소스로부터 획득될 수 있다. 비디오 데이터 메모리가 도 3에 도시되지 않았지만, 비디오 데이터 메모리 및 메모리(405)는 동일한 메모리일 수 있거나, 개별적으로 배치된 메모리들일 수 있다. 비디오 데이터 메모리 및 메모리(405)는 각각 복수의 유형의 메모리 장치들, 예를 들어, 동기식 DRAM(SDRAM)을 포함하는 동적 랜덤 액세스 메모리(DRAM), 자기저항 RAM(MRAM), 저항성 RAM(RRAM), 또는 다른 유형의 메모리 장치 중 임의의 하나를 포함할 수 있다. 다양한 예들에서, 비디오 데이터 메모리는 비디오 디코더(200)의 다른 구성요소들과 함께 칩 상에 집적될 수 있거나, 또는 이들 구성요소들에 대해 칩 외부에 배치될 수 있다.
네트워크 엔티티(42)는, 예를 들어, 서버, MANE, 비디오 편집기/클립퍼, 또는 위에서 설명된 기술들 중 하나 이상을 구현하도록 구성된 다른 장치일 수 있다. 네트워크 엔티티(42)는 비디오 인코더, 예를 들어 비디오 인코더(102)를 포함하거나 포함하지 않을 수 있다. 네트워크 엔티티(42)가 비트스트림을 비디오 디코더(202)로 전송하기 전에, 네트워크 엔티티(42)는 본 출원에서 설명된 기술들의 일부를 구현할 수 있다. 일부 비디오 디코딩 시스템들에서, 네트워크 엔티티(42) 및 비디오 디코더(202)는 별개의 장치들의 구성요소들일 수 있다. 다른 경우들에서, 네트워크 엔티티(42)에 대해 설명된 기능들은 비디오 디코더(202)를 포함하는 동일한 장치에 의해 수행될 수 있다. 일부 경우들에서, 네트워크 엔티티(42)는 도 1의 저장 장치(40)의 예일 수 있다.
비디오 디코더(202)의 엔트로피 디코더(401)는 양자화된 계수 및 일부 신택스 요소들을 생성하기 위해 비트스트림에 대해 엔트로피 디코딩을 수행한다. 엔트로피 디코더(401)는 신택스 요소들을 필터(404)로 전달한다. 비디오 디코더(202)는 비디오 슬라이스 레벨 및/또는 화상 블록 레벨에서 신택스 요소들/신택스 요소를 수신할 수 있다. 본 출원에서, 일 예에서, 본 명세서에서의 신택스 요소는 현재 화상 블록에 관련된 지시 정보를 포함할 수도 있고, 지시 정보는 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하도록 지시하는데 사용된다. 또한, 일부 예들에서, 비디오 인코더(102)는 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정할지 여부를 지시하는 신호를 특정 신택스 요소에 통지할 수 있다.
역양자화기(402)는 비트스트림에 제공되고 엔트로피 디코더(401)에 의해 디코딩된 양자화된 변환 계수에 대해 역양자화를 수행한다, 즉 역양자화한다. 역양자화 프로세스는: 비디오 슬라이스에서의 각 화상 블록에 대해 비디오 인코더(102)에 의해 계산된 양자화 파라미터를 사용하여 적용될 양자화 정도를 결정하는 단계, 및 유사하게 적용될 역양자화 정도를 결정하는 단계를 포함할 수 있다. 역변환기(403)는 역변환, 예를 들어, 역 DCT, 역 정수 변환, 또는 개념적으로 유사한 역변환 프로세스를 변환 계수에 적용하여, 샘플 도메인에서 잔차 블록을 생성한다.
예측 처리 유닛(406)이 현재 화상 블록 또는 현재 화상 블록의 하위블록에 대한 예측 화상 블록을 생성한 후, 비디오 디코더(202)는 역변환기(403)로부터의 잔차 블록과 예측 처리 유닛의 예측에 의해 생성된 대응하는 예측 화상 블록들을 합산하여, 재구성된 블록, 즉 디코딩된 화상 블록을 획득한다. 합산기(409)(또한, 재구성기(409)로 지칭됨)는 이러한 합산 동작을 수행하는 구성요소를 나타낸다. 필요한 경우, (디코딩 루프 내의 또는 디코딩 루프 후의) 필터가 샘플들을 평활화하는데 추가로 사용될 수 있거나, 또는 비디오 품질은 다른 방식으로 개선될 수 있다. 필터(404)는 하나 이상의 루프 필터들, 예를 들어, 디블록킹 필터, 적응적 루프 필터(ALF), 및 샘플 적응적 옵셋(SAO) 필터일 수 있다.
비디오 디코더(202)의 다른 구조적 변형들이 비트스트림을 디코딩하도록 구성될 수 있음이 이해되어야 한다. 예를 들어, 일부 화상 블록들 또는 화상 프레임들에 대해, 비디오 디코더(202)의 엔트로피 디코더(401)는 디코딩을 통해 양자화된 계수를 획득하지 않고, 따라서, 역양자화기(402) 및 역변환기(403)에 의한 처리는 요구되지 않는다. 예를 들어, 비디오 디코더(202) 에서의 역 양자화기(402) 및 역 변환기(403)는 결합될 수 있다.
도 1에 도시된 비디오 코딩 시스템(1), 도 2에 도시되어 있는 비디오 인코더(102), 및 도 3에 도시된 비디오 디코더(202)를 통해, 이하에서는 본 출원에서 제공된 양방향 인터 예측 방법을 상세히 설명한다.
도 4는 본 출원의 실시예에 따른 양방향 인터 예측 방법의 개략적인 흐름도이다. 도 4에 도시된 방법은 양방향 인터 예측 장치에 의해 수행된다. 양방향 인터 예측 장치는 도 1의 비디오 디코더(202)일 수 있다. 도 4는 양방향 인터 예측 장치가 비디오 디코더(202)인 예를 사용하여 설명된다.
도 4에 도시된 바와 같이, 본 출원의 이 실시예에서 양방향 인터 예측 방법은 다음의 단계들을 포함할 수 있다.
S400: 비디오 디코더(202)는 획득된 비트스트림을 파싱하고, 지시 정보를 획득한다.
선택적으로, 비디오 디코더(202)는 비트스트림을 파싱하고, 비트스트림 내의 신택스 요소의 값에 기초하여, 현재 프레임 내의 현재 화상 블록에 대해 인터 예측을 수행하는데 사용된 인터 예측 모드를 결정한다. 비디오 디코더(202)는 인터 예측 모드가 양방향 인터 예측 모드일 때 지시 정보를 획득한다.
비디오 디코더(202)는 비디오 인코더(102)에 의해 전송된 인코딩된 비트스트림을 수신할 수 있거나, 저장 장치(40)로부터 인코딩된 비트스트림을 획득할 수 있다.
선택적으로, 본 출원의 이 실시예에서 비디오 디코더(202)는 신택스 요소 inter_pred_idc의 값에 기초하여, 현재 프레임에서 현재 화상 블록에 대해 인터 예측을 수행하는데 사용되는 인터 예측 모드를 결정한다. 인터 예측이 단방향 인터 예측 및 양방향 인터 예측을 포함한다는 것을 상술한 설명으로부터 알 수 있다. 선택적으로, 신택스 요소 inter_pred_idc의 값이 0일 때, 비디오 디코더(202)는 현재 프레임에서 현재 화상 블록에 대해 인터 예측을 수행하는데 사용된 인터 예측 모드가 순방향 인터 예측이라고 결정하고; 신택스 요소 inter_preed_idc의 값이 1일 때, 비디오 인코더(204)는 현재 프레임의 현재 화상 블록에 대해 인터 예측을 수행하는데 사용되는 인트라 예측 모드가 역방향 인터 예측이라고 결정하고; 신택스 요소 inter_preed_idc의 값이 2일 때, 비디오 인코더(204)는 현재 프레임의 현재 화상 블록에 대해 인터 예측을 수행하는데 사용된 인터 예측된 모드가 양방향 인터 예측이라고 결정한다.
선택적으로, 신택스 요소 inter_pred_idc의 값이 2인 것으로 결정한 후, 비디오 디코더(202)는 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하도록 지시하는데 사용된 지시 정보를 획득한다. 제 1 움직임 정보는 제 1 방향에서 현재 화상 블록의 움직임 정보이고, 제 2 움직임 정보는 제 2 방향에서 현재 화상 블록의 움직임 정보이며, 제 1 방향과 제 2 방향은 상이하다.
본 출원의 화상 블록은, 비디오 인코딩 또는 비디오 디코딩을 수행하기 위한 기본 유닛, 예를 들어 코딩 유닛(CU)일 수 있거나, 예측 동작을 수행하기 위한 기본 유닛, 예를 들면 예측 유닛(PU)일 수 있다. 이것은 본 출원의 이 실시예에서 특별히 제한되는 것은 아니다.
화상 블록이 비디오 인코딩 또는 비디오 디코딩을 수행하기 위한 기본 유닛이라면, 본 출원의 이 실시예에서 현재 화상 블록은 적어도 하나의 하위블록을 포함한다. 이에 따라, 제 1 움직임 정보는 제 1 방향에서 현재 화상 블록 내의 적어도 하나의 하위블록의 각각의 움직임 정보를 포함하고, 제 2 움직임 정보는 제 2 방향에서 현재 화상 블록 내의 적어도 하나의 하위블록의 각각의 움직임 정보를 포함하며, 지시 정보는 제 1 방향에서의 하위블록의 움직임 정보에 기초하여 제 2 방향에서의 하위블록에 대한 움직임 정보를 결정하도록 지시하는데 사용된다.
비디오 디코더(202)는 복수의 방식들로 지시 정보를 획득할 수 있다.
제 1 구현에서, 비디오 디코더(202)는 제 1 식별자를 파싱한다. 제 1 식별자의 값이 제 1 미리 설정된 값일 때, 비디오 디코더(202)는 제 1 움직임 정보를 파싱하도록 결정하고, 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정한다. 즉, 비디오 디코더(202)는 지시 정보를 획득한다. 제 1 식별자의 값이 제 8 미리 설정된 값일 때, 비디오 디코더(202)는 비트스트림을 파싱하여 제 5 식별자를 획득한다. 제 5 식별자의 값이 제 5 미리 설정된 값일 때, 비디오 디코더(202)는 제 2 움직임 정보를 파싱하도록 결정하고, 제 2 움직임 정보에 기초하여 제 1 움직임 정보를 계산한다. 제 5 식별자의 값이 제 9 미리 설정된 값일 때, 비디오 디코더(202)는 제 1 움직임 정보 및 제 2 움직임 정보를 획득한다. 제 1 사전 설정 값 및 제 5 사전 설정 값은 동일할 수 있거나, 상이할 수 있다. 이것은 본 출원의 이 실시예에서 특별히 제한되는 것은 아니다.
예를 들어, 제 1 식별자는 mv_derived_flag_10이고, 제 5 식별자는mv_duced_flag-11이며, 제 1 사전 설정값 및 제 5 사전 설정값은 모두 1이고, 제 8 사전 설정값과 제 9 사전 설정값은 모두 0이다. 비디오 디코더(202)는 먼저 mv_derived_flag_10을 파싱한다. mv_derived_flag_l0의 값이 1일 때, 비디오 디코더(202)는 제 1 움직임 정보를 파싱하고, 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정한다. mv_derived_flag_l0의 값이 0일 때, 비디오 디코더(202)는 mv_derived_flag_l1을 파싱한다. mv_derived_flag_l1의 값이 1일 때, 비디오 디코더(202)는 제 2 움직임 정보를 파싱하고, 제 2 움직임 정보에 기초하여 제 1 움직임 정보를 계산한다. mv_derived_flag_l0의 값 및 mv_derived_flag_l1의 값이 모두 0일 때, 비디오 디코더(202)는 제 1 움직임 정보 및 제 2 움직임 정보를 파싱한다.
제 2 구현에서, 비디오 디코더(202)는 제 2 식별자를 파싱한다. 제 2 식별자의 값이 제 2 미리 설정된 값일 때, 비디오 디코더(202)는 움직임 정보 유도 알고리즘에 따라 현재 화상 블록의 움직임 정보를 계산하도록 결정한다. 그 후, 비디오 디코더(202)는 제 3 식별자를 파싱한다. 제 3 식별자의 값이 제 3 미리 설정된 값일 때, 비디오 디코더(202)는 제 1 움직임 정보를 파싱하도록 결정하고, 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정한다. 즉, 비디오 디코더(202)는 지시 정보를 획득한다. 제 3 식별자의 값이 제 6 미리 설정된 값일 때, 비디오 디코더(202)는 제 2 움직임 정보를 파싱하도록 결정하고, 제 2 움직임 정보에 기초하여 제 1 움직임 정보를 계산한다.
예를 들면, 제 2 식별자는 derived_mv_flag이고, 제 3 식별자는 derived_ mv_direction이며, 제 3 미리 설정된 값은 1이고, 제 6 미리 설정된 값은 0이다. 비디오 디코더(202)는 먼저 derived_mv_flag를 파싱한다. derived_mv_flag의 값이 1일 때, 비디오 디코더(202)는 움직임 정보 유도 알고리즘에 따라 현재 화상 블록의 움직임 정보를 계산하도록 결정한다. derived_mv_flag의 값이 0일 때, 비디오 디코더(202)는 제 1 움직임 정보 및 제 2 움직임 정보를 파싱한다. derived_mv_direction의 값이 1일 때, 비디오 디코더(202)는 제 1 움직임 정보를 파싱하고, 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정한다. derived_mv_direction의 값이 0일 때, 비디오 디코더(202)는 제 2 움직임 정보를 파싱하도록 결정하고, 제 2 움직임 정보에 기초하여 제 1 움직임 정보를 계산한다.
제 3 구현에서, 비디오 디코더(202)는 제 2 식별자를 파싱한다. 제 2 식별자의 값이 제 2 미리 설정된 값일 때, 비디오 디코더(202)는 움직임 정보 유도 알고리즘에 따라 현재 화상 블록의 움직임 정보를 계산하도록 결정한다. 이후, 비디오 디코더(202)는, 미리 설정된 도출 방향에 기초하여, 제 1 움직임 정보를 파싱하도록 결정하고, 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정한다. 즉, 비디오 디코더(202)는 지시 정보를 획득한다. 즉, 본 구현에서, "제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정하는 것"이 미리 설정된다. 제 2 식별자의 값이 제 7 미리 설정된 값일 때, 비디오 디코더(202)는 제 1 움직임 정보 및 제 2 움직임 정보를 파싱한다.
예를 들어, 제 2 식별자는 derived_mv_flag이고, 제 2 미리 설정된 값은 1이며, 제 7 미리 설정된 값은 0이다. 비디오 디코더(202)는 derived_mv_flag를 파싱한다. derived_mv_flag의 값이 1일 때, 비디오 디코더(202)는 움직임 정보 유도 알고리즘에 따라 현재 화상 블록의 움직임 정보를 계산하도록 결정한다. 또한, 비디오 디코더(202)는 제 1 움직임 정보를 파싱하도록 결정하고, 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정한다. derived_mv_flag의 값이 0일 때, 비디오 디코더(202)는 제 1 움직임 정보 및 제 2 움직임 정보를 파싱한다.
제 4 구현에서, 비디오 디코더(202)는 제 4 식별자(예를 들어, mv_derived_flag_10)를 파싱한다. 제 4 식별자의 값이 제 4 미리 설정된 값일 때, 비디오 디코더(202)는 움직임 정보 유도 알고리즘에 따라 현재 화상 블록의 움직임 정보를 계산하도록 결정하고, 제 1 참조 프레임 리스트 및 제 2 참조 프레임 리스트에 기초하여 변수 derived_ref_num을 계산한다. 변수는 제 1 참조 프레임 및 제 2 참조 프레임에 기초하여 형성될 수 있는 미러/선형 참조 프레임 조합의 양을 나타낸다. 참조 프레임 조합들의 양이 1일 때, 비디오 디코더(202)는 참조 프레임의 인덱스 값들을 직접 결정한다. 이후, 비디오 디코더(202)는, 미리 설정된 도출 방향에 기초하여, 제 1 움직임 정보를 파싱하도록 결정하고, 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정한다. 즉, 비디오 디코더(202)는 지시 정보를 획득한다. 제 1 참조 프레임 리스트는 제 1 방향의 현재 화상 블록의 참조 프레임 리스트이고, 제 2 참조 프레임 리스트는 제 2 방향의 현재 화상 블록의 참조 프레임 리스트이고, 제 1 참조 프레임은 제 1 방향의 현재 화상 블록의 참조 프레임이고, 제 2 참조 프레임은 제 2 방향의 현재 화상 블록의 참조 프레임이다. 본 출원의 이 실시예에서 참조 프레임의 인덱스 값은 대응하는 참조 프레임 리스트 내의 참조 프레임의 수이다.
예를 들어, 현재 프레임의 시퀀스 번호는 4이고, 제 1 참조 프레임 리스트는 [2, 0]이며, 제 2 참조 프레임 리스트는 {6, 7}이다. 조건 B 또는 조건 C에 기초하여, 제 1 참조 프레임 리스트에서 시퀀스 번호가 2인 참조 프레임과 제 2 참조 프레임 리스트에 시퀀스 번호가 6인 참조 프레임이 참조 프레임 조합을 구성할 수 있다고 결정된다. 이 경우, 제 1 참조 프레임의 인덱스 값과 제 2 참조 프레임의 인덱스 값은 모두 0이다.
조건 B 또는 조건 C에 기초하여, 현재 프레임의 시퀀스 번호가 4이고, 제 1 참조 프레임 리스트가 {2, 0}이며, 제 2 참조 프레임 리스트가 {6, 7}이라면,
제 1 참조 프레임 리스트에서 시퀀스 번호가 2인 참조 프레임 및 제 2 참조 프레임 리스트에서 시퀀스 번호가 6인 참조 프레임은 참조 프레임 조합을 구성할 수 있고, 제 1 참조 프레임 리스트에서 시퀀스 번호가 0인 참조 프레임 및 제 2 참조 프레임 리스트에서 시퀀스 번호가 8인 참조 프레임은 또한 참조 프레임 조합을 구성할 수 있는 것으로 결정될 수 있다. 이 경우, 비디오 디코더(202)는 참조 프레임의 인덱스 값들을 파싱할 필요가 있다.
또한, 인터 예측 모드가 양방향 인터 예측 모드라고 결정할 때, 비디오 디코더(202)는 현재 프레임의 특징 정보가 미리 설정된 조건을 충족시키는지 여부를 더 결정할 수 있다. 이 경우, 현재 프레임의 특징 정보가 미리 설정된 조건을 충족시킨 경우, 비디오 디코더(202)는 지시 정보를 획득한다. 즉, S401의 특정 프로세스는 다음과 같을 수 있다: 비디오 디코더(202)는, 인터 예측 모드가 양방향 인터 예측 모드이고, 현재 프레임의 특징 정보가 제 1 미리 설정된 조건을 충족시킨다고 결정할 때, 지시 정보를 획득한다.
현재 프레임의 특징 정보는, 시퀀스 번호, 시간 레벨 ID(TID) 및 참조 프레임의 양 중 적어도 하나를 포함한다. 비디오 디코더(202)에 의해 획득된 비트스트림은 시퀀스 파라미터 세트(SPS), 화상 파라미터 세트(PPS), 슬라이스 헤더(Slice header) 또는 슬라이스 세그먼트 헤더(slice segment header) 및 인코딩된 화상 데이터를 포함한다. 그 후, 비디오 디코더(202)는 비트스트림을 파싱하여, 현재 프레임의 특징 정보를 획득한다.
미리 설정된 조건은 다음 조건들 중 적어도 하나를 포함한다:
조건 A: 현재 화상 블록은 적어도 2개의 참조 프레임들을 갖는다.
조건 B: 현재 프레임의 시퀀스 번호, 제 1 참조 프레임의 시퀀스 번호, 및 제 2 참조 프레임의 시퀀스 번호는 다음 식을 충족시킨다:
POC_Cur - POC_listX = POC_listY - POC_Cur
POC_Cur은 현재 프레임의 시퀀스 번호를 나타내고, POC_listX는 제 1 참조 프레임의 시퀀스 번호를 나타내고, POC_listY는 제 2 참조 프레임의 시퀀스 번호를 나타내고, 제 1 참조 프레임은 제 1 방향에서 현재 화상 블록의 참조 프레임이고, 제 2 참조 프레임은 제 2 방향에서 현재 화상 블록의 참조 프레임이다.
조건 C: 현재 프레임의 시퀀스 번호, 제 1 참조 프레임의 시퀀스 번호, 및 제 2 참조 프레임의 시퀀스 번호는 다음 식을 충족시킨다.
(POC_Cur - POC_listX) * (POC_listY - POC_Cur) > 0
POC_Cur은 현재 프레임의 시퀀스 번호를 나타내고, POC_listX는 제 1 참조 프레임의 시퀀스 번호를 나타내고, POC_listY는 제 2 참조 프레임의 시퀀스 번호를 나타내고, 제 1 참조 프레임은 제 1 방향에서 현재 화상 블록의 참조 프레임이고, 제 2 참조 프레임은 제 2 방향에서 현재 화상 블록의 참조 프레임이다.
조건 D: 현재 프레임의 TID는 미리 설정된 값 이상이다.
본 출원의 이 실시예에서 미리 설정된 조건은 미리 설정될 수 있거나, 상위 계층 신택스에서, 예를 들어, SPS, PPS, 슬라이스 헤더(slice header), 또는 슬라이스 세그먼트 헤더(slice segment header)와 같은 파라미터 세트에서 특정될 수 있다. 이것은 본 출원의 이 실시예에서 특별히 제한되는 것은 아니다.
조건 E: 현재 프레임의 mvd_l1_zero_flag는 0이다.
mvd_l1_zero_flag는 파싱을 통해 비디오 디코더(202)에 의해 획득된 플래그이다. mvd_l1_zero_flag가 1일 때, 이는 List1의 MVD가 파싱될 필요가 없음을 나타낸다. (1과 동일한 mvd_l1_zero_flag는 mvd-coding(x0, y0, 1) 신택스 구조가 파싱되지 않고, MvdL1[x0][y0][compIdx]가 CompIdx = 0..1 에 대해 0과 동일하고, 0과 동일한 mvcd_ l1_zero_flag가 mVd_coding(x0, y0, 1) 신택스 구조가 파싱됨을 나타낸다.)
구체적으로, 조건 B(또는 조건 C)에 대해, 비디오 디코더(202)는 제 1 참조 프레임 리스트 및 제 2 참조 프레임 리스트로 각각으로부터 참조 프레임의 시퀀스 번호를 획득하고, 획득된 참조 프레임의 시퀀스는 현재 프레임의 시퀀스 번호와 현재 프레임의 시퀀스 번호가 조건 B 또는 조건 C를 충족시키는지 여부를 결정한다. 지시 정보는 조건 B(또는 조건 C)가 충족될 때 획득된다.
선택적으로, 조건 A에 대해, 비디오 디코더(202)는 제 1 방향에서 참조 프레임의 인덱스 값(SymRefIdxX)을 0으로 설정하고, 제 2 방향에서의 참조 프레임의 인덱스 값(SymRefIdxY)을 0으로 설정한다.
선택적으로, 조건 B에 대해, 비디오 디코더(202)는 현재 프레임에 가장 가깝고 현재 프레임의 시퀀스 번호보다 작은 시퀀스 번호를 갖는 참조 프레임(POC_listX)에 대해 제 1 참조 프레임 리스트를 검색하고, 비디오 디코더(202)는 조건 POC_Cur - POC_listX = POC_listY - POC_Cur을 충족시키는 참조 프레임(POC_listY)에 대해 제 2 참조 프레임 리스트를 검색한다. 요건들을 충족시키는 참조 프레임들(POC_listX 및 POC_listY)이 이러한 검색 방식으로 발견되면, 제 1 방향에서 참조 프레임의 인덱스값(SymRefIdxX)은 제 1 참조 프레임 리스트의 POC_listX의 인덱스값으로 설정되고, 제 2 방향에서 참조 프레임의 인덱스 값(ymRefIdxY)은 제 2 참조 프레임 리스트의 POC_listY의 인덱스 값으로 설정된다. 선택적으로, 요건들을 충족시키는 참조 프레임들(POC_listX 및 POC_listY)이 발견될 수 없다면, 비디오 디코더(202)는 추가로 현재 프레임에 가장 가깝고 현재 프레임의 시퀀스 번호보다 큰 시퀀스 번호를 갖는 참조 프레임(POC_listX)을 검색하고, POC_Cur - POC_listX = POC_listY - POC_Cur을 충족시키는 참조 프레임(POC_listY)에 대해 제 2 참조 프레임 리스트를 검색한다. 요건들을 충족시키는 참조 프레임들(POC_listX 및 POC_listY)이 이러한 검색 방식으로 발견될 수 있다면, 제 1 방향에서 참조 프레임의 인덱스값(SymRefIdxX)은 제 1 참조 프레임 리스트의 POC_listX의 인덱스값으로 설정되고, 제 2 방향에서 참조 프레임의 인덱스 값(ymRefIdxY)은 제 2 참조 프레임 리스트의 POC_listY의 인덱스 값으로 설정된다.
선택적으로, 조건 C에 대해, 비디오 디코더(202)는 현재 프레임에 가장 가깝고 현재 프레임의 시퀀스 번호보다 작은 시퀀스 번호를 갖는 참조 프레임(POC_listX)에 대해 제 1 참조 프레임 리스트를 검색하고, 비디오 인코더(204)는 현재 프레임과 가장 가까우며 현재의 프레임의 시퀀스번호보다 큰 시퀀스 번호를 갖는 참조 프레임(POC_listY)에 대해 제 2 참조 프레임 리스트를 검색한다. 요건들을 충족시키는 참조 프레임들(POC_listX 및 POC_listY)이 이러한 검색 방식으로 발견될 수 있으면, 제 1 방향의 참조 프레임의 인덱스값(SymRefIdxX)은 제 1 참조 프레임 리스트의 POC_listX의 인덱스값으로 설정되고, 제 2 방향의 참조 프레임의 인덱스값(SymRefIdxY)은 제 2 참조 프레임 리스트의 POC_listY의 인덱스 값으로 설정된다. 선택적으로, 요건들을 충족시키는 참조 프레임들(POC_listX 및 POC_listY)이 발견될 수 없다면, 비디오 디코더(202)는 추가로 현재 프레임에 가장 가깝고 현재 프레임의 시퀀스 번호보다 큰 시퀀스 번호를 갖는 참조 프레임(POC_listX)을 검색하고, 현재 프레임에 가장 가깝고 현재의 프레임의 시퀀스 번호보다 작은 시퀀스 번호를 갖는 참조 프레임(POC_listY)에 대한 제 2 참조 프레임 리스트를 검색한다. 요건들을 충족시키는 참조 프레임들(POC_listX 및 POC_listY)이 이러한 검색방식으로 발견될 수 있다면, 제 1 방향의 참조 프레임의 인덱스값(SymRefIdxX)은 제 1 참조 프레임 리스트의 POC_listX의 인덱스값으로 설정되고, 제 2 방향의 참조 프레임의 인덱스값(SymRefIdxY)은 제 2 참조 프레임 리스트의 POC_listY의 인덱스 값으로 설정된다.
선택적으로, 제 1 방향에서 참조 프레임의 인덱스 값(SymRefIdxX) 및 제 2 방향에서의 참조 프레임의 인덱스 값(SymRefIdxY)은 다음과 같은 방식으로 결정된다:
비디오 디코더(202)는 현재 프레임에 가장 가깝고 현재 프레임의 시퀀스 번호보다 작은 시퀀스 번호를 갖는 참조 프레임(POC_listX_0), 및 현재 프레임과 가장 가깝고 현재 프레임의 시퀀스 번호보다 큰 시퀀스 번호를 갖는 참조 프레임(POC_listX_1)에 대한 제 1 참조 프레임 리스트를 검색한다. 비디오 디코더(202)는 현재 프레임에 가장 가깝고 현재 프레임의 시퀀스 번호보다 큰 시퀀스 번호를 갖는 참조 프레임(POC_listY_0), 및 현재 프레임과 가장 가깝고 현재의 프레임의 시퀀스 번호보다 작은 시퀀스 번호를 갖는 참조 프레임(POC_listY_1)에 대해 제 2 참조 프레임 리스트를 검색한다.
요건들을 충족시키는 참조 프레임 조합(POC_listX_0 및 POC_listY_0)이 이러한 탐색 방식으로 발견될 수 있다면, 제 1 방향에서 참조 프레임의 인덱스 값(SymRefIdxX)은 제 1 참조 프레임 리스트에서 POC_listX_O의 인덱스 값으로 설정되고, 제 2 방향에서의 참조 프레임의 인덱스 값(SymmRefIdxY)은 제 2 참조 프레임 리스트에서 POC_listY_0의 인덱스 값으로 설정된다.
그렇지 않을 경우, 요건들을 충족시키는 참조 프레임 조합(POC_listX_1 및 POC_listY_1)이 이러한 탐색 방식으로 발견될 수 있다면, 제 1 방향에서 참조 프레임의 인덱스 값(SymRefIdxX)은 제 1 참조 프레임 리스트에서 POC_listX_l의 인덱스 값으로 설정되고, 제 2 방향에서 참조 프레임의 인덱스 값(SymRefIdxY)은 제 2 참조 프레임 리스트에서 POC_listY_1의 인덱스 값을 설정된다.
선택적으로, 제 1 방향에서 참조 프레임의 인덱스 값(SymRefIdxX) 및 제 2 방향에서 참조 프레임의 인덱스 값(SymRefIdxY)은 대안적으로 다음과 같은 방식으로 결정될 수 있다:
비디오 디코더(202)는 현재 프레임에 가장 가깝고 현재 프레임의 시퀀스 번호보다 작은 시퀀스 번호를 갖는 참조 프레임(POC_listX_0), 및 현재 프레임과 가장 가깝고 현재 프레임보다 큰 시퀀스 번호를 갖는 참조 프레임(POC_listX_1)에 대해 제 1 참조 프레임 리스트를 검색한다. 비디오 디코더(202)는 현재 프레임에 가장 가깝고 현재 프레임의 시퀀스 번호보다 큰 시퀀스 번호를 갖는 참조 프레임(POC_listY_0), 및 현재 프레임과 가장 가깝고 현재의 프레임의 시퀀스번호보다 작은 시퀀스 번호를 갖는 참조 프레임(POC_listY_1)에 대해 제 2 참조 프레임 리스트를 검색한다.
요건들을 충족시키는 참조 프레임 조합(POC_listX_0 및 POC_listY_0)만이 이러한 검색 방식으로 발견된다면, 제 1 방향에서 참조 프레임의 인덱스 값(SymRefIdxX)은 제 1 참조 프레임 리스트에서의 POC_listX_O의 인덱스 값으로 설정되고, 제 2 방향에서 참조 프레임의 인덱스 값(SymRefIdxY)은 제 2 참조 프레임 리스트의 POC_listY_0의 인덱스값으로 설정된다.
요건들을 충족시키는 참조 프레임 조합(POC_listX_1 및 POC_listY_1)만이 이러한 검색 방식으로 발견된다면, 제 1 방향에서 참조 프레임의 인덱스 값(SymRefIdxX)은 제 1 참조 프레임 리스트에서의 POC_listX_1의 인덱스 값으로 설정되고, 제 2 방향에서 참조 프레임의 인덱스 값(SymRefIdxY)은 제 2 참조 프레임 리스트의 POC_listY_1의 인덱스값으로 설정된다.
요건들을 충족시키는 참조 프레임 조합(POC_listX_0 및 POC_listY_0) 및 요건들을 충족시키는 참조 프레임 조합(TOC_listX_1 및 POCS_listY_1)이 모두 이러한 검색 방식으로 발견된다면, POC_listY_O과 POC_listX_0 사이의 참조 프레임 조합의 거리 POC_DIS_0(POC_listY_0 - POC_listX_0)가 추가로 계산되고, POC_listX_1과 POC_listY_1 사이의 참조 프레임의 조합의 거리 POC_DIS_1(POC_listX_1 - POC_list_Y_1)이 추가로 계산된다. POC_DIS_0이 POC_DIS_1 이하이면, 제 1 방향에서의 참조 프레임의 인덱스 값(SymRefIdxX)은 제 1 참조 프레임 리스트에서 POC_listX_0의 인덱스 값으로 설정되고, 제 2 방향에서의 참조 프레임의 인덱스 값(SymRefIdxY)은 제 2 참조 프레임 리스트에서 POC_listY_0의 인덱스 값으로 설정된다. 그렇지 않을 경우, 제 1 방향에서 참조 프레임의 인덱스 값(SymRefIdxX)은 제 1 참조 프레임 리스트에서 POC_listX_1의 인덱스 값으로 설정되고, 제 2 방향에서의 참조 프레임의 인덱스 값(SymRefIdxY)은 제 2 참조 프레임 리스트에서 POC_listY_1의 인덱스 값으로 설정된다.
선택적으로, 제 1 방향에서의 참조 프레임의 인덱스 값(SymRefIdxX) 및 제 2 방향에서 참조 프레임의 인덱스 값(SymRefIdxY)은 대안적으로 다음과 같은 방식으로 결정될 수 있다.
비디오 디코더(202)는 현재 프레임에 가장 가깝고 현재 프레임의 시퀀스 번호보다 작은 시퀀스 번호를 갖는 참조 프레임(POC_listX_0), 및 현재 프레임과 가장 가깝고 현재 프레임보다 큰 시퀀스 번호를 갖는 참조 프레임(POC_listX_1)에 대해 제 1 참조 프레임 리스트를 검색한다. 비디오 디코더(202)는 현재 프레임에 가장 가깝고 현재 프레임의 시퀀스 번호보다 큰 시퀀스 번호를 갖는 참조 프레임(POC_listY_0), 및 현재 프레임과 가장 가깝고 현재의 프레임의 시퀀스 번호보다 작은 시퀀스 번호를 갖는 참조 프레임(POC_listY_1)에 대해 제 2 참조 프레임 리스트를 검색한다.
요건들을 충족시키는 참조 프레임 조합(POC_listX_0 및 POC_listY_0)만이 이러한 검색 방식으로 발견된다면, 제 1 방향에서 참조 프레임의 인덱스 값(SymRefIdxX)은 제 1 참조 프레임 리스트에서 POC_listX_O의 인덱스 값으로 설정되고, 제 2 방향에서의 참조 프레임의 인덱스 값(SymRefIdxY)은 제 2 참조 프레임 리스트의 POC_listY_0의 인덱스값으로 설정된다.
요건들을 충족시키는 참조 프레임 조합(POC_listX_1 및 POC_listY_1)만이 이러한 검색 방식으로 발견된다면, 제 1 방향에서 참조 프레임의 인덱스 값(SymRefIdxX)은 제 1 참조 프레임 리스트에서의 POC_listX_1의 인덱스 값으로 설정되고, 제 2 방향에서의 참조 프레임의 인덱스 값(SymRefIdxY)은 제 2 참조 프레임 리스트의 POC_listY_1의 인덱스값으로 설정된다.
요건들을 충족시키는 참조 프레임 조합(POC_listX_0 및 POC_listY_0) 및 요건들을 충족시키는 참조 프레임 조합(TOC_listX_1 및 POCS_listY_1)이 모두 이러한 검색 방식으로 발견된다면, 현재 프레임(POC_Cur)과 4개의 참조 프레임들(POC_listY_0, POC_listX_0, POC_listX_l, 및 POC_listY_1) 사이의 절대 거리들(POC_DIS_lisX0, POC_DIS_listY0, POC_DIS_listX1, 및 POC_listY1)이 추가로 계산된다. 참조 프레임 조합에서, 4개의 거리들에서 현재 프레임(POC_Cur)으로부터 가장 작은 거리를 갖는 참조 프레임은 최적 조합(k)으로 선택되고, 제 1 방향에서 참조 프레임의 인덱스 값(SymRefIdxX)은 제 1 참조 프레임 리스트에서 최적 조합(POC_listX_k)의 인덱스 값으로 설정되고, 제 2 방향에서 참조 프레임의 인덱스 값(SymRefIdxY)은 제 2 참조 프레임 리스트에서 POC_listY_k의 인덱스 값으로 설정된다.
선택적으로, 제 1 방향에서 참조 프레임의 인덱스 값(SymRefIdxX) 및 제 2 방향에서 참조 프레임의 인덱스 값(SymRefIdxY)은 대안적으로 다음과 같은 방식으로 결정될 수 있다.
비디오 디코더(202)는 POC_Cur - POC_listX_i = POC_listY_i - POC_Cur을 충족시키는 모든 참조 프레임 조합들(POC_listX_i 및 POC_listY_i)에 대해 제 1 참조 프레임 리스트 및 제 2 참조 프레임 리스트를 검색하는데, 여기서 i 는 1 내지 N의 범위이고, N은 조건을 충족시키는 참조 프레임 조합들의 최대량을 나타낸다. 발견된 참조 프레임 조합들의 양이 1이면, 제 1 방향에서 참조 프레임의 인덱스 값(SymRefIdxX)은 제 1 참조 프레임 리스트에서 POC_listX_1의 인덱스 값으로 직접 설정되고, 제 2 방향에서 참조 프레임의 인덱스 값(SynRefIdxY)은 제 2 참조 프레임 리스트에서 POC_listY_1의 인덱스 값으로 설정된다. 발견된 참조 프레임 조합들의 양이 1보다 크면, 각각의 참조 프레임 조합의 POC_listY_i와 POC_listX_i 사이의 절대 거리 POC_DIS_i(abs(POC_listY_i - POC_listx_i))가 추가로 계산되고, 최소 거리를 갖는 참조 프레임 조합이 선택되며, 제 1 방향에서 참조 프레임의 인덱스 값(SymRefIdxX)이 제 1 참조 프레임 리스트에서 POC_listX_i의 인덱스 값으로 설정되고, 제 2 방향에서 참조 프레임의 인덱스 값(SymRefIDxY)이 제 2 참조 프레임 리스트에서 POC_listY_i의 인덱스 값으로 설정된다.
선택적으로, 앞서 발견된 참조 프레임들(POC_listX 및 POC_listY) 모두는 단기 참조 프레임들이다.
선택적으로, 앞서 발견된 참조 프레임들(POC_listX 및 POC_listY)은 동일한 참조 프레임 유형, 예를 들어, 둘 모두 단기 참조 프레임들이거나, 또는 둘 모두 장기 참조 프레임들이다.
본 출원의 이 실시예에서, "비디오 디코더(202)가 인터 예측 모드가 양방향 인터 예측 모드이고 현재 프레임의 특징 정보가 미리 설정된 조건을 충족한다고 결정할 때 지시 정보를 획득하는" 방법은 "비디오 인코더(204)가 인터 예측 모드가 양방향 인터 예측하는 모드라고 결정할 때 지시 정보를 획득하는" 방법과 동일하다.
상술한 설명을 참조하여, 표 1은 인터 예측 모드가 양방향 인터 예측 모드이고 현재 프레임의 특징 정보가 미리 설정된 조건을 충족시키는 것으로 결정될 때 제 1 구현에서 지시 정보를 획득하기 위해 비디오 디코더(202)에 의해 사용되는 신택스 표이다. prediction_unit()는 예측 화상 블록의 신택스 구조를 나타내고, 현재 화상 블록에서 각 하위블록의 움직임 정보를 결정하는 방법을 설명한다.
표 1에서, x0 및 y0는 각각 현재 화상 블록의 상부-좌측 샘플에 대한 현재 화상 블록 내의 하위블록의 수평 좌표 옵셋 및 수직 좌표 옵셋을 나타내고, nPbW는 현재 화상 블록의 폭을 나타내며, nPbH는 현재 화상 블록의 높이를 나타낸다. inter_pred_idc[x0][y0]의 값이 PRED_L0일 때, 현재 하위블록에 대한 인터 예측이 순방향 예측임을 나타낸다. inter_pred_idc[x0][y0]의 값이 PRED_L1일 때, 현재의 하위블록에 대한 인터 예측이 역방향 예측임을 나타낸다. inter_pred_idc[x0][y0]의 값이 PRED_BI일 때, 현재 하위블록에 대한 인터 예측이 양방향 예측임을 나타낸다.
양방향 인터 예측(즉, inter_pred_idc[x0][y0] == PRED_BI)에 대해, 미리 설정된 조건(조건들)이 충족되면, mv_derived_flag_10[x0][y0]이 파싱된다. mv_derived_flag_10의 값이 제 1 미리 설정된 값이 아니라면, mv_derived_flag_l1[x0][y0]이 파싱된다. mv_derived_flag_10의 값이 제 1 미리 설정된 값이거나, 또는 mv-derived_flag_l1[x0][y0]의 값이 제 5 미리 설정된 값이라면, 현재 화상 블록의 하위블록의 움직임 정보가 결정된다. 구체적으로, 참조 프레임의 인덱스 값(ref_idx_10[x0][y0]), 움직임 벡터 예측자 식별자(mvp_10_flag[x0][y0]) 및 움직임 벡터 차이(mvd_coding(x0, y0, 0))가 결정된다.
표 1
prediction_unit(x0,y0,nPbW,nPcH) {
...
/* 움직임 벡터 코딩 */
if(slice_type==B)
inter_pred_idc[x0][y0]
if(inter_pred_idc[x0][y0]==PRED_L0) {
if(num_ref_idx_10_active_minus1 > 0)
ref_idx_10[x0][y0]
mvd_coding(x0,y0,0)
mvp_10_flag[x0][y0]
}
if(inter_pred_idc[x0][y0]==PRED_L1) {
if(num_ref_idx_l1_active_minus1 > 0)
ref_idx_l1[x0][y0]
mvd_coding(x0,y0,1)
mvp_l1_flag[ x0 ][ y0 ]
}
if(inter_pred_idc[x0][y0] = = PRED_BI) {
if(condition){
mv_derived_flag_10[x0][y0]
if(!mv_derived_flag_10[x0][y0]) {
mv_derived_flag_11[x0][y0]
}
if(!mv_derived_flag_10[x0][y0]) {
if(num_ref_idx_l0_active_minus1 > 0)
ref_idx_l0[x0][y0]
mvd_coding(x0,y0,0 )
mvp_l0_flag[x0][y0]
}
if(!mv_derived_flag_11[x0][y0]) {
if(num_ref_idx_11_active_minus1 > 0)
ref_idx_11[x0][y0]
mvd_coding(x0,y0,0)
mvp_11_flag[x0][y0]
}
}
상술한 설명들을 참조하여, 표 2는 인터 예측 모드가 양방향 인터 예측 모드이고 현재 프레임의 특징 정보가 미리 설정된 조건을 충족시키는 것으로 결정될 때 제 3 구현에서 지시 정보를 획득하기 위해 비디오 디코더(202)에 의해 사용되는 신택스 표이다.
표 2에서, 양방향 인터 예측(즉, inter_pred_idc[x0][y0]==PRED_BI)에 대해, 미리 설정된 조건(조건들)이 충족되면, derived_mv_flag[x0][y0]가 파싱된다. derived_mv_flag[x0][y0]의 값이 제 2 미리 설정된 값이라면, 현재 화상 블록의 하위블록의 움직임 정보가 결정된다. 구체적으로, 참조 프레임의 인덱스 값(ref_idx_1x[x0][y0]), 움직임 벡터 예측자 식별자(mvp_1x_flag[x0][y0]), 및 움직임 벡터 차이(mvd_coding(x0, y0, x))가 결정된다.
표 2
prediction_unit(x0,y0,nPbW,nPbH) {
...
/* 움직임 벡터 코딩 */
if(slice_type==B)
inter_pred_idc[x0][y0]
if(inter_pred_idc[x0][y0]==PRED_L0 ) {
if(num_ref_idx_l0_active_minus1 > 0)
ref_idx_l0[x0][y0]
mvd_coding(x0,y0,0)
mvp_l0_flag[x0][y0]
}
if(inter_pred_idc[x0][y0]==PRED_L1) {
if(num_ref_idx_l1_active_minus1 > 0)
ref_idx_l1[x0][y0]
mvd_coding(x0,y0,1)
mvp_l1_flag[ x0 ][ y0 ]
}
if(inter_pred_idc[x0][y0]==PRED_BI) {
if(conditions){
derived_mv_flag[x0][y0]
if(derived_mv_flag[x0][y0]) {
if(num_ref_idx_lx_active_minus1 > 0)
ref_idx_lx[ x0][ y0]
mvd_coding(x0, y0, x)
mvp_lx_flag[x0][y0]
} else {
....
}
}
상술한 설명들을 참조하여, 표 3은 인터 예측 모드가 양방향 인터 예측 모드이고 현재 프레임의 특징 정보가 제 1 미리 설정된 조건을 충족시키는 것으로 결정될 때 제 4 구현에서 지시 정보를 획득하기 위해 비디오 디코더(202)에 의해 사용된 신택스 표이다.
표 3에서, 양방향 인터 예측(즉, inter_pred_idc[x0][y0]==PRED_BI)에 대해, 미리 설정된 조건(조건들)이 충족되면, derived_mv_flag[x0][y0]가 파싱된다. derived_mv_flag[x0][y0]의 값이 제 4 미리 설정된 값이라면, derived_ref_num이 결정되고; derived_ref_num의 값이 1 보다 클 때, 현재 화상 블록의 하위블록의 움직임 정보가 결정된다. 구체적으로, 참조 프레임의 인덱스 값(ref_idx_lx[x0][y0]), 움직임 벡터 예측자 식별자(mvp_1x_flag[x0,][y0]), 및 움직임 벡터 차이(mvd_coding(x0, y0, x))가 결정된다.
표 3
prediction_unit(x0,y0,nPbW,nPbH) {
...
/* 움직임 벡터 코딩 */
if(slice_type==B)
inter_pred_idc[x0][y0]
if(inter_pred_idc[x0][y0]==PRED_L0) {
if(num_ref_idx_l0_active_minus1 > 0)
ref_idx_l0[x0][y0]
mvd_coding(x0,y0,0 )
mvp_l0_flag[ x0 ][ y0 ]
}
if(inter_pred_idc[x0][y0]==PRED_L1) {
if(num_ref_idx_l1_active_minus1 > 0)
ref_idx_l1[x0][y0]
mvd_coding(x0,y0,1)
mvp_l1_flag[x0][y0]
}
if(inter_pred_idc[x0][y0]==PRED_BI) {
if(조건){
derived_mv_flag[x0][y0]
if(derived_mv_flag[x0][y0]) {
if(num_ref_idx_lx_active_minus1 > 0 & derived_ref_num > 1)
ref_idx_lx[x0 ][ y0 ]
mvd_coding(x0,y0,x)
mvp_lx_flag[ x0 ][ y0 ]
} else {
...
}
}
제 1 식별자, 제 2 식별자, 제 3 식별자 및 제 4 식별자는 모두 미리 설정되거나, 또는 상위 계층 신택스에서, 예를 들어 SPS, PPS, 슬라이스 헤더(slice header) 또는 슬라이스 세그먼트 헤더(slice segment header)와 같은 파라미터 세트에서 특정될 수 있다. 이것은 본 출원의 이 실시예에서 특별히 제한되는 것은 아니다.
비디오 디코더(202)는 인터 예측 모드가 양방향 인터 예측 모드이고 현재 프레임의 특징 정보가 미리 설정된 조건을 충족한다고 결정할 때 지시 정보를 획득한다. 이것은 비디오 디코더(202)의 디코딩 속도를 효과적으로 증가시키고, 정보의 중복을 감소시킨다.
S401: 비디오 디코더(202)는 제 1 움직임 정보를 획득한다.
선택적으로, 비디오 디코더(202)는 비트스트림을 파싱하여, 제 1 참조 프레임의 인덱스 값, 제 1 움직임 벡터 예측자 식별자, 및 제 2 움직임 벡터 차이를 획득한다, 즉, 제 3 움직임 정보를 획득한다. 제 1 움직임 벡터 예측자 식별자는 제 1 후보의 예측된 움직임 벡터 리스트에서 제 1 예측된 움직임 벡터의 인덱스 값을 지시하기 위해 사용되고, 제 1 예측된 움직임 벡터는 제 1 방향에서의 현재 화상 블록의 예측된 움직임 벡터이고, 제 1 움직임 벡터 차이는 제 1 예측된 움직임 벡터와 제 1 움직임 벡터 사이의 차이이고, 제 1 움직임 벡터는 제 1 방향에서 현재 화상 블록의 움직임 벡터이다.
선택적으로, 참조 프레임 리스트 내의 제 1 위치에서의 참조 프레임은 일반적으로 현재 프레임에 가장 가까운 프레임이다. 따라서, 제 1 참조 프레임의 인덱스 값(ref_1X_idx)은 0으로 직접 설정될 수 있다.
선택적으로, 비디오 디코더(202)가 미리 설정된 조건(B 또는 C)에 기초하여 지시 정보를 획득할지 여부를 결정할 때, 비디오 디코더(202)는 제 1 참조 프레임의 인덱스 값(ref_1X_idx)를 미리 결정된 값(SymRefIdxX)으로 설정할 수 있다.
선택적으로, 제 1 후보의 예측된 움직임 벡터 리스트는 제 1 참조 프레임의 인덱스 값에 기초하여 구성된다. 구체적으로, 제 1 후보의 예측된 움직임 벡터 리스트를 구성하는 프로세스에서, 현재 화상 블록의 이웃하는 디코딩된 화상 블록의 움직임 벡터가 획득된다. 제 1 참조 프레임의 시퀀스 번호는 제 1 참조 프레임의 인덱스 값 및 제 1 참조 프레임 리스트에 기초하여 결정된다. 이웃하는 디코딩된 화상 블록의 참조 프레임의 시퀀스 번호가 제 1 참조 프레임의 시퀀스 번호와 다르면, 이웃하는 디코딩된 화상 블록의 움직임 벡터는 제 1 참조 프레임을 가리키도록 스케일링될 필요가 있고, 그 후 제 1 후보의 예측된 움직임 벡터 리스트에 추가된다.
표 1 내지 표 3에 도시된 신택스 테이블들 각각에서, 비디오 디코더(202)는 제 1 방향에서 현재 화상 블록의 하위블록의 움직임 정보를 결정한다.
S402: 비디오 디코더(202)는 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 결정한다.
제 1 구현에서, 비디오 디코더(202)에 의해 제 2 움직임 정보를 결정하기 위한 방법은 다음과 같다: 비디오 디코더(202)는 제 1 움직임 정보로부터 제 1 참조 프레임의 인덱스 값을 선택하고, 제 1 참조 프레임의 인덱스 값 및 제 1 참조 프레임 리스트에 기초하여 제 1 참조 프레임의 시퀀스 번호를 결정하고; 미리 설정된 식에 따라 현재 프레임의 시퀀스 번호 및 제 1 참조 프레임의 시퀀스 번호에 기초하여 제 2 참조 프레임의 시퀀스 번호를 계산하고; 제 2 참조로 프레임의 시퀀스 번호 및 제 2 참조 프레임 리스트에 기초하여 제 2 참조 프레임의 인덱스값을 결정하고; 제 1 움직임 정보와 제 2 참조 프레임의 인덱스 값에 기초하여 제 2 움직임 정보를 결정한다.
여기서, 미리 설정된 식은, POC_listY = 2 * POC_Cur - POC_listX일 수 있다. POC_Cur은 현재 프레임의 시퀀스 번호를 나타내고, POC_listX는 제 1 참조 프레임의 시퀀스 번호를 나타내고, POC_listY는 제 2 참조 프레임의 시퀀스를 나타낸다.
예를 들어, 현재 프레임의 시퀀스 번호가 4이고, 제 1 참조 프레임의 시퀀스 번호가 2이고, 제 2 참조 프레임 리스트가 [6, 8]이며, 식 POC_listY = 2 * POC_Cur - POC_listX에 따라, 제 2 참조 프레임의 시퀀스 번호가 6인 것이 결정되면, 비디오 디코더(202)는 제 2 참조 프레임의 인덱스 값(ref_1Y_idx)이 0이라고 결정한다.
선택적으로, 미리 설정된 식은 대안적으로, (POC_Cur - POC_listX) * (POC_listY - POC_Cur) > 0일 수 있다. 제 2 참조 프레임 리스트에서 복수의 참조 프레임들의 시퀀스 번호들이 식을 충족시키면, 비디오 디코더(202)는 먼저 가장 작은 abs((POC_listY - POC_Cur) - (POC_Cur - POC_listX))를 갖는 참조 프레임을 선택하고, 그 후 가장 작은 abs(POC_listY - POC_Cur)를 가진 참조 프레임을 선택하여, 제 2 참조 프레임의 인덱스 값을 결정하는데, 여기서 abs는 절대값 함수를 나타낸다.
예를 들어, 현재 프레임의 시퀀스 번호가 4이고, 제 1 참조 프레임의 시퀀스 번호가 2이고, 제 2 참조 프레임 리스트가 [5, 7, 8]이고, 식 (POC_Cur - POC_listX) * (POC_listY - POC_Cur) > 0에 따라 제 2 참조 프레임의 시퀀스 번호가 5인 것으로 결정되면, 비디오 디코더(202)는 제 2 참조 프레임의 인덱스 값(ref_1Y_idx)이 0인 것으로 결정한다.
선택적으로, 미리 설정된 식은 대안적으로 POC_listX ≠ POC_listY일 수 있다. 제 2 참조 프레임 리스트에서 복수의 참조 프레임들의 시퀀스 번호들이 식을 충족시키는 경우, 비디오 디코더(202)는 먼저 최소 abs((POC_listY - POC_Cur) - (POC_Cur - POC_listX))를 갖는 참조 프레임을 선택하고, 그 후 최소 abs(POC_listY - POC_Cur)를 가진 참조 프레임을 선택하여, 제 2 참조 프레임의 인덱스 값을 결정하는데, 여기서 abs는 절대값 함수를 나타낸다.
예를 들어, 현재 프레임의 시퀀스 번호가 4이고, 제 1 참조 프레임의 시퀀스 번호가 2이고, 제 2 참조 프레임 리스트가 [3, 2, 1, 0]이고, 식 POC_listX ≠ POC_listY에 따라 제 2 참조 프레임의 시퀀스 번호가 3인 것으로 결정되면, 비디오 디코더(202)는 제 2 참조 프레임의 인덱스 값(ref_1Y_idx)이 0인 것으로 결정한다.
선택적으로, 미리 설정된 식은 대안적으로, POC_listY0 = 2 * POC_Cur - POC_listX, (POC_Cur - POC_listX) * (POC_listY0' - POC_Cur) > 0, 및 POC_listX ≠ POC_listY0''일 수 있다. 이 경우, 비디오 디코더(202)에 의해 제 2 참조 프레임의 인덱스 값을 결정하는 방법은 구체적으로: 식 POC_listY0 = 2 * POC_Cur - POC_listX에 따라 현재 프레임의 시퀀스 번호 및 제 1 참조 프레임의 시퀀스 번호를 기초로 제 1 시퀀스 번호를 계산하는 단계로서, POC_Cur은 현재 프레임의 시퀀스 번호를 나타내고, POC_listX는 제 1 참조 프레임의 시퀀스 번호를 나타내고, POC_listY0은 제 1 시퀀스 번호를 나타내는, 제 1 시퀀스 번호를 계산하는 단계; 제 2 참조 프레임 리스트가 제 1 시퀀스 번호를 포함할 때, 제 2 참조 프레임 리스트에서 제 1 시퀀스 번호에 의해 나타내어진 참조 프레임의 번호를 제 2 참조 프레임의 인덱스 값으로 결정하는 단계, 또는 제 2 참조 프레임 리스트가 제 1 시퀀스 번호를 포함하지 않을 때, (POC_Cur - POC_listX) * (POC_listY0' - POC_Cur) > 0에 따라 현재의 프레임 시퀀스의 번호와 제 1 참조 프레임의 시퀀스 번호를 기초로 제 2 시퀀스 번호를 계산하는 단계로서, POC_listY0'는 제 2 시퀀스 번호를 나타내는, 제 2 시퀀스 번호를 계산하는 단계; 및 제 2 참조 프레임 리스트가 제 2 시퀀스 번호를 포함할 때, 제 2 참조 프레임 리스트에서 제 2 시퀀스 번호에 의해 나타내어진 참조 프레임의 번호를, 제 2 참조 프레임의 인덱스 값으로 결정하는 단계, 또는 제 2 참조 프레임 리스트가 제 2 시퀀스 번호를 포함하지 않을 때, 식 POC_listX ≠ POC_listY0''에 따라 현재의 프레임 시퀀스의 번호와 제 1 참조 프레임의 시퀀스 번호를 기초로 제 3 시퀀스 번호를 계산하는 단계로서, POC_listY0''는 제 3 시퀀스 번호를 나타내는, 제 3 시퀀스 번호를 계산하는 단계; 및 제 2 참조 프레임 리스트에서 제 3 시퀀스 번호에 의해 나타내어진 참조 프레임의 번호를 제 2 참조 프레임의 인덱스 값으로 결정하는 단계를 포함한다.
선택적으로, 참조 프레임 리스트에서 제 1 위치의 참조 프레임은 일반적으로 현재 프레임에 가장 가까운 프레임이다. 따라서, 제 2 참조 프레임의 인덱스 값(ref_1Y_idx)은 0으로 직접 설정될 수 있어, 제 1 위치를 가리키는 것을 나타낸다.
선택적으로, 비디오 디코더(202)가 미리 설정된 조건(B 또는 C)에 기초하여 지시 정보를 획득할지 여부를 결정할 때, 비디오 디코더(202)는 제 2 참조 프레임의 인덱스 값(ref_1Y_idx)을 미리 결정된 값(SymRefIdxY)로 설정할 수 있다.
제 2 구현에서, 제 2 움직임 정보를 결정하기 위해 비디오 디코더(202)에 의해 사용되는 방법은 다음과 같다: 비디오 디코더(302)는 제 2 참조 프레임의 인덱스 값을 획득하기 위하여 비트스트림을 파싱하고, 제 1 움직임 정보 및 제 2 참조 프레임의 인덱스 값에 기초하여 제 2 움직임 정보를 결정한다. 제 2 참조 프레임의 인덱스 값은 미리 설정될 수 있거나, 또는 SPS, PPS, 슬라이스 헤더(slice header) 또는 슬라이스 세그먼트 헤더(slice segment header)와 같은 파라미터 세트에서 특정될 수 있다. 이것은 본 출원의 이 실시예에서 특별히 제한되는 것은 아니다.
제 1 구현 및 제 2 구현 모두에서, 비디오 디코더(202)가 제 1 움직임 정보 및 제 2 참조 프레임의 인덱스 값에 기초하여 제 2 움직임 정보를 결정한다는 것을 알 수 있다.
선택적으로, 비디오 디코더(202)는 제 2 방향에서 현재 화상 블록의 모든 움직임 정보를 계산할 수 있거나, 또는 제 2 방향에서의 현재 화상 블록들의 움직임 정보의 일부를 계산할 수 있다.
다음은 비디오 디코더(202)가 제 1 움직임 정보 및 제 2 참조 프레임의 인덱스 값에 기초하여 제 2 움직임 정보를 결정하는 프로세스를 설명한다.
선택적으로, "비디오 디코더(202)가 제 1 움직임 정보 및 제 2 참조 프레임의 인덱스 값에 기초하여 제 2 움직임 정보를 결정하는" 방법은: 제 1 움직임 정보에서 제 1 참조 프레임의 인덱스 값을 획득하는 단계, 및 제 1 참조 프레임의 인덱스 값 및 제 1 참조 프레임 리스트에 기초하여 제 1 참조 프레임의 시퀀스 번호를 결정하는 단계; 제 2 참조 프레임의 인덱스를 획득하는 단계, 및 제 2 참조 프레임의 인덱스 값 및 제 2 참조 프레임 리스트에 기초하여 제 2 참조 프레임의 시퀀스번호를 결정하는 단계; 제 1 움직임 정보에서의 제 1 움직임 벡터 차이 및 제 1 움직임 벡터 예측자 식별자에 기초하여 제 1 움직임 벡터(제 1 방향에서의 현재 화상 블록의 움직임 벡터)를 결정하는 단계; 및 다음 식 에 따라 제 2 움직임 정보에서 제 2 움직임 벡터를 결정하는 단계로서, 제 2 움직임 벡터는 제 2 방향의 현재 화상 블록의 움직임 벡터인, 제 2 움직임 벡터를 결정하는 단계를 포함한다.
는 제 2 움직임 벡터를 나타내고, 는 현재 프레임의 시퀀스 번호를 나타내고, 는 제 1 참조 프레임의 시퀀스 번호를 나타내고, 는 제 2 참조 프레임의 시퀀스를 나타내고, 는 제 1 움직임 벡터를 나타낸다.
비디오 디코더(202)는, 인코더 측이 AMVP 모드 또는 병합 모드에서 후보 움직임 정보 리스트를 구성하는 방식과 동일한 방식으로 후보 움직임 정보를 구성하고, 제 1 움직임 벡터 예측자 식별자에 기초하여 후보 움직임 정보 리스트에서 제 1 예측된 움직임 벡터를 결정한다. 이런 방식으로, 비디오 디코더(202)는 제 1 예측된 움직임 벡터 및 제 1 움직임 벡터 차이의 합을 제 1 움직임 벡터로서 결정할 수도 있다.
선택적으로, 제 1 참조 프레임이 현재 화상 블록의 순방방 참조 프레임이고, 제 2 참조 프레임이 현재의 화상 블록의 역방향 참조 프레임인 경우, 또는 제 1 참조 프레임이 현재 화상 블록의 역방향 참조 프레임이고, 제 2 참조 프레임이 현재의 화상 블록의 순방방 참조 프레임인 경우, 또는 제 1 참조 프레임 및 제 2 참조 프레임이 각각 현재의 화상 블록의 순방방 참조 프레임인 경우, 또는 제 1 참조 프레임 및 제 2 참조 프레임이 각각 현재의 화상 블록의 역방향 참조 프레임인 경우, 비디오 디코더(202)는 직접 mv_IY = - mv_IX를 설정할 수 있다.
선택적으로, 비디오 디코더(202)는 결정을 수행하지 않을 수도 있고, 직접 mv_IY = - mv_IX를 설정할 수 있다.
예를 들어, "제 1 참조 프레임이 현재 화상 블록의 순방방 참조 프레임이고, 제 2 참조 프레임이 현재의 화상 블록의 역방향 참조 프레임인 경우" 및 "제 1 참조 프레임이 현재 화상 블록의 역방방 참조 프레임이고, 제 2 참조 프레임이 현재의 화상 블록의 순방향 참조 프레임인 경우"는 식 (POC_Cur - POC_listX) * (POC_listY - POC_Cur) > 0 또는 식 POC_listY = 2 * POC_Cur - POC_listX을 사용하여 표현될 수 있다.
"제 1 참조 프레임 및 제 2 참조 프레임이 각각 현재 화상 블록의 순방방 참조 프레임인 경우", 및 "제 1 참조 프레임 및 제 2 참조 프레임이 각각 현재 화상들 블록의 역방향 참조 프레임인 경우" 모두 식 (POC_Cur - POC_listX) * (POC_listY - POC_Cur) < 0을 사용하여 표현될 수 있다.
선택적으로, "비디오 디코더(202)가 제 1 움직임 정보 및 제 2 참조 프레임의 인덱스 값에 기초하여 제 2 움직임 정보를 결정하는" 방법은: 제 1 움직임 정보 내의 제 1 참조 프레임의 인덱스 값 및 제 1 움직임 벡터 차이를 획득하는 단계, 및 제 1 참조 프레임의 인덱스 값 및 제 1 참조 프레임 리스트에 기초하여 제 1 참조 프레임의 시퀀스 번호를 결정하는 단계; 제 2 참조 프레임의 인덱스 값을 획득하는 단계, 제 2 참조 프레임의 인덱스 값 및 제 2 참조 프레임 리스트에 기초하여 제 2 참조 프레임의 시퀀스 번호를 결정하는 단계, 및 제 2 참조 프레임의 인덱스 값 및 제 2 후보의 예측된 움직임 벡터 리스트를 기초로 제 2 예측된 움직임 벡터를 결정하는 단계로서, 제 2 예측된 움직임 벡터는 제 2 방향에서 현재 화상 블록의 예측된 움직임 벡터인, 제 2 예측된 움직임 벡터를 결정하는 단계; 다음 식 에 따라 제 2 움직임 정보에서 제 2 움직임 벡터 차이를 결정하는 단계; 및 제 2 예측된 움직임 벡터 및 제 2 움직임 벡터 차이에 기초하여 제 2 움직임 벡터를 결정하는 단계로서, 제 2 움직임 벡터는 제 2 방향에서 현재 화상 블록의 움직임 벡터인, 제 2 움직임 벡터를 결정하는 단계를 포함한다.
는 제 2 움직임 벡터 차이를 나타내고, 는 현재 프레임의 시퀀스 번호를 나타내고, 는 제 1 참조 프레임의 시퀀스 번호를 나타내고, 는 제 2 참조 프레임의 시퀀스를 나타내고, 는 제 1 움직임 벡터 차이를 나타낸다.
선택적으로, 제 2 후보의 예측된 움직임 벡터 리스트는 제 2 참조 프레임의 인덱스 값에 기초하여 구성된다. 구체적으로, 제 2 후보의 예측된 움직임 벡터 리스트를 구성하는 프로세스에서, 현재 화상 블록의 이웃하는 디코딩된 화상 블록의 움직임 벡터가 획득된다. 제 2 참조 프레임의 시퀀스 번호는 제 2 참조 프레임의 인덱스 값 및 제 2 참조 프레임 리스트에 기초하여 결정된다. 이웃하는 디코딩된 화상 블록의 참조 프레임의 시퀀스 번호가 제 2 참조 프레임의 시퀀스 번호와 다르면, 이웃하는 디코딩된 화상 블록의 움직임 벡터는 제 1 참조 프레임을 가리키도록 스케일링될 필요가 있고, 그 후 제 2 후보의 예측된 움직임 벡터 리스트에 추가된다.
선택적으로, 제 1 참조 프레임이 현재 화상 블록의 순방방 참조 프레임이고, 제 2 참조 프레임이 현재의 화상 블록의 역방향 참조 프레임인 경우, 또는 제 1 참조 프레임이 현재 화상 블록의 역방향 참조 프레임이고, 제 2 참조 프레임이 현재의 화상 블록의 순방방 참조 프레임인 경우, 또는 제 1 참조 프레임 및 제 2 참조 프레임이 각각 현재의 화상 블록의 순방방 참조 프레임인 경우, 또는 제 1 참조 프레임 및 제 2 참조 프레임이 각각 현재의 화상 블록의 역방향 참조 프레임인 경우, 비디오 디코더(202)는 직접 mvd_IY = - mvd_IX를 설정할 수 있다. 예를 들어, (POC_Cur - POC_listX) * (POC_listY - POC_Cur) > 0, POC_listY = 2 * POC_Cur - POC_listX, 또는 (POC_Cur - POC_listX) * (POC_listY - POC_Cur) < 0이면, 비디오 디코더(202)는 직접 mvd_IY = - mvd_IX를 설정한다.
선택적으로, 비디오 디코더(202)는 결정을 수행하지 않을 수도 있고, 직접 mv_IY = - mv_IX를 설정할 수 있다.
S403: 비디오 디코더(202)는 제 1 움직임 정보 및 제 2 움직임 정보에 기초하여 현재 화상 블록의 예측 샘플을 결정한다.
선택적으로, 비디오 디코더(202)는 S402에서 제 1 움직임 벡터 및 제 2 움직임 벡터를 결정한다. 이러한 방식으로, 비디오 디코더(302)는 제 1 움직임 벡터, 제 1 참조 프레임의 인덱스 값, 및 제 1 참조 프레임 리스트에 기초하여 제 1 참조 화상 블록을 결정하고; 제 2 움직임 벡터, 제 2 참조 프레임의 인덱스 값, 및 제 2 참조 프레임 리스트에 기초하여 제 2 기준 화상 블록을 결정하고; 제 1 참조 화상 블록 및 제 2 기준 화상 블록에 기초하여 현재 화상 블록의 예측 샘플을 추가로 결정할 수도 있다. 즉, 비디오 디코더(202)는 움직임 보상 프로세스를 완료한다.
제 1 참조 화상 블록 및 제 2 참조 화상 블록에 기초하여 현재 화상 블록의 예측 샘플을 결정하기 위해 비디오 디코더(202)에 의해 사용되는 방법에 대해, 임의의 기존 방법을 참조한다. 이것은 본 출원의 이 실시예에서 특별히 제한되는 것은 아니다.
본 출원의 이 실시예에서 제공되는 양방향 인터 예측 방법에서, 비디오 디코더(202)는 인코딩된 비트스트림으로부터 제 1 움직임 정보만을 획득할 수 있다. 제 1 움직임 정보를 획득한 후에, 비디오 인코더(202)는 제 1 움직임 정보에 기초하여 제 2 움직임 정보를 계산하고, 또한 제 1 움직임 정보 및 제 2 움직임 정보에 기초하여 현재 화상 블록의 예측 샘플을 결정한다. 종래 기술과 비교하여, 본 출원에 제공된 방법에서, 모든 방향들에서 모든 화상 블록들의 움직임 정보는 더 이상 전송될 필요가 없다. 이는 전송된 움직임 정보의 양을 효과적으로 감소시키고, 전송 자원들, 전송 속도 및 코딩 압축 효율의 효과적인 이용을 향상시킨다.
도 4에 도시된 양방향 인터 예측 방법은 현재 화상 블록에 대해 설명된다, 즉 AMVP 모드에 기초하여 현재 화상 블록 상에서 인터 예측을 수행하는 것으로 이해될 수 있다.
본 출원에 제공된 양방향 인터 예측 방법은 또한 비-병진 움직임 모델 예측 모드, 예를 들어, 4-파라미터 아핀 변환 움직임 모델, 6-파라미터 아핀 변환 움직임 모델 또는 8-파라미터 이선형 움직임 모델에 적용 가능하다는 것을 쉽게 이해할 것이다. 이 시나리오에서, 현재 화상 블록은 적어도 하나의 하위블록을 포함하고, 현재 화상 블록의 움직임 정보는 현재 화상 블록의 모든 하위블록들 각각의 움직임 정보를 포함한다. 각 하위블록의 움직임 정보(제 1 방향의 움직임 정보 및 제 2 방향의 움직임 정보를)를 결정하기 위해 비디오 디코더(202)에 의해 사용된 방법은, 현재 화상 블록의 움직임 정보를 결정하기 위하여 비디오 디코더(302)에 의해 사용된 방법과 유사하다.
비-병진 움직임 모델 예측 모드에서, 비디오 디코더(202)는 다음 식 에 따라 제 1 방향의 i번째 제어포인트의 움직임 벡터에 기초하여 제 2 방향의 i 번째 제어 포인트의 움직임 벡터를 계산한다.
위 식에서, 는 제 2 방향의 i번째의 제어 포인트의 움직임 벡터를 나타내고, 는 제 1 방향의 i번째의 제어 포인트의 움직임 벡터를 나타내며, 는 현재 프레임의 시퀀스 번호를 나타내고, 는 제 2 참조 프레임의 시퀀스 번호를 나타내고, 는 제 1 참조 프레임의 시퀀스를 나타낸다.
대응하여, 비디오 디코더(202)는 다음 식 에 따라 제 1 방향에서의 i번째 제어 포인트의 움직임 벡터 차이에 기초하여 제 2 방향에서의 i번째 제어 포인트의 움직임 벡터 차이를 계산한다.
위 식에서, 는 제 2 방향에서 i번째 제어 포인트의 움직임 벡터 차이를 나타내고, 는 제 1 방향에서 i번째 제어 포인트의 움직임 벡터의 차이를 나타내고, 는 현재 프레임의 시퀀스 번호를 나타내고, 는 제 2 참조 프레임의 시퀀스 번호를 나타내고, 는 제 1 참조 프레임의 시퀀스를 나타낸다.
비디오 디코더(202)에 대응하여, 본 출원의 이 실시예에서, 비디오 인코더(102)는 제 1 방향에서 현재 화상 블록의 움직임 정보를 결정하기 위해 현재 화상 블록에 대해 양방향 움직임 추정을 수행하고, 제 1 방향에서 현재 화상 블록의 움직임 정보에 기초하여 제 2 방향에서 현재 화상의 움직임 정보를 계산한다. 이러한 방식으로, 비디오 인코더(102)는 제 1 방향에서의 현재 화상 블록의 움직임 정보 및 제 2 방향에서의 현재 화상의 움직임 정보에 기초하여 현재 화상 블록의 예측 화상 블록을 결정한다. 그 후, 비디오 인코더(102)는 현재 화상 블록과 현재 화상 블록의 예측 화상 블록 사이의 잔차 블록에 대해 변환 및 양자화와 같은 동작들을 수행하여 비트스트림을 생성하고, 비트스트림을 비디오 디코더(202)로 전송한다. 비트스트림은 제 1 방향에서의 현재 화상 블록의 움직임 정보를 포함한다.
"비디오 인코더(102)가 제 1 방향에서 현재 화상 블록의 움직임 정보에 기초하여 제 2 방향에서 현재 화상 블록의 움직임 정보를 계산하는" 방법에 대해, "비디오 디코더(202)가 제 1 움직임 정보를 기초로 제 2 움직임 정보를 결정하는" 상술한 방법, 즉, S402의 설명을 참조한다. 세부 사항들은 본 출원에서 설명되지 않는다.
결론적으로, 본 출원에서 제공되는 양방향 인터 예측 방법에 따르면, 양방향 인터 예측 동안, 모든 방향드에서 모든 화상 블록들의 움직임 정보는 전송될 필요가 없고, 오히려 특정 방향의 움직임 정보만이 전송될 필요가 있다. 이는 전송된 움직임 정보의 양을 효과적으로 감소시키고, 전송 자원들, 전송 속도 및 코딩 압축 효율의 효과적인 이용을 향상시킨다.
본 출원의 실시예는 양방향 인터 예측 장치를 제공한다. 양방향 인터 예측 장치는 비디오 디코더일 수 있다. 구체적으로, 양방향 인터 예측 장치는 상술한 양방향 인터 예측 방법에서 비디오 디코더(202)에 의해 수행되는 단계들을 수행하도록 구성된다. 본 출원의 이 실시예에서 제공된 양방향 인터 예측 장치는 대응하는 단계들을 위한 모듈들을 포함할 수 있다.
본 출원의 실시예들에서, 양방향 인터 예측 장치는 상술한 방법 예들에 기초하여 기능 모듈들로 분할될 수 있다. 예를 들어, 각 기능 모듈은 대응하는 기능에 기초한 분할을 통해 획득될 수 있거나, 2개 이상의 기능들이 하나의 처리 모듈에 집적될 수 있다. 집적 모듈은 하드웨어의 형태로 구현될 수 있거나, 또는 소프트웨어 기능 모듈의 형태로 구현될 수 있다. 본 출원의 이 실시예에서, 모듈들로의 분할은 일 예이며, 단지 논리적 기능 분할이다. 실제 구현에서는 다른 분할 방식이 있을 수 있다.
각 기능 모듈이 대응하는 기능에 기초한 분할을 통해 획득되는 경우, 도 5는 상술한 실시예들에서 양방향 인터 예측 장치의 가능한 개략적인 구조도이다. 도 5에 도시된 바와 같이, 양방향 인터 예측 장치(5)는 획득 유닛(50) 및 결정 유닛(51)을 포함한다.
획득 유닛(50)은 상술한 실시예에서의 S400, S401, 등, 및/또는 본 명세서에 설명된 기술의 다른 프로세스를 수행할 때 양방향 인터 예측 장치를 지원하도록 구성된다.
결정 유닛(51)은, 상술한 실시예에서 S402, S403, 등 및/또는 본 명세서에 설명된 기술의 다른 프로세스를 수행할 때, 양방향 인터 예측 장치를 지원하도록 구성된다.
상술한 방법 실시예의 단계들의 모든 관련 내용은 대응하는 기능 모듈들의 기능적 설명들에 인용될 수 있다. 세부 사항들은 본 명세서에서 다시 설명되지 않는다.
확실히, 본 출원의 이 실시예에서 제공되는 양방향 인터 예측 장치는 상술한 모듈들을 포함하지만 이에 제한되는 것은 아니다. 예를 들어, 양방향 인터 예측 장치는 저장 유닛(52)을 더 포함할 수 있다.
저장 유닛(52)은 양방향 인터 예측 장치의 프로그램 코드 및 데이터를 저장하도록 구성될 수 있다.
집적된 유닛이 사용될 때, 도 6은 본 출원의 실시예에 따른 양방향 인터 예측 장치의 개략적인 구조도이다. 도 6에 도시된 바와 같이, 양방향 인터 예측 장치(6)는 처리 모듈(60) 및 통신 모듈(61)을 포함한다. 처리 모듈(60)은 양방향 인터 예측 장치의 동작을 제어 및 관리하도록, 예를 들어, 획득 유닛(50) 및 결정 유닛(51)에 의해 수행되는 단계들을 수행하도록, 및/또는 본 명세서에 설명된 기술의 다른 프로세스를 수행하도록 구성된다. 통신 모듈(61)은 양방향 인터 예측 장치와 다른 디바이스 사이의 상호작용을 지원하도록 구성된다. 도 6에 도시한 바와 같이, 양방향 인터 예측 장치는 저장 모듈(62)을 더 포함할 수 있다. 저장 모듈(62)은 양방향 인터 예측 장치의 프로그램 코드 및 데이터를 저장하도록, 예를 들어, 저장 유닛(52)에 의해 저장된 콘텐츠를 저장하도록 구성된다.
처리 모듈(60)은 프로세서 또는 제어기일 수 있고, 예를 들어, 중앙 처리 유닛(CPU), 범용 프로세서, 디지털 신호 처리기(DSP), ASIC, FPGA 또는 다른 프로그램가능 로직 디바이스, 트랜지스터 로직 디바이스, 하드웨어 구성요소, 또는 이들의 임의의 조합일 수 있다. 처리 모듈(60)은 본 출원에 개시된 내용을 참조하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들을 구현 또는 실행할 수 있다. 처리 모듈은 컴퓨팅 기능을 구현하는 프로세서들의 조합, 예를 들어 하나 이상의 마이크로프로세서들의 조합, 또는 DSP와 마이크로프로세서의 조합일 수 있다. 통신 모듈(61)은 송수신기, RF 회로, 통신 인터페이스, 등일 수 있다. 저장 모듈(62)은 메모리일 수 있다.
상술한 방법 실시예에서 시나리오들의 모든 관련 내용은 대응하는 기능 모듈들의 기능 설명에 인용될 수 있다. 세부 사항들은 본 명세서에서 다시 설명되지 않는다.
양방향 인터 예측 장치(5) 및 양방향 인터 예측을 위한 장치(6)는 모두 도 4에 도시된 양방향 인터 예측 방법을 수행할 수 있다. 구체적으로, 양방향 인터 예측 장치(5) 및 양방향 인터 예측 장치(6)는 비디오 디코딩 장치들 또는 비디오 코딩 기능을 갖는 다른 디바이스들일 수 있다. 양방향 인터 예측 장치(5) 및 양방향 인터예측 장치(6)는 디코딩 프로세스에서 화상 예측을 수행하도록 구성될 수 있다.
본 출원은 단말기를 더 제공한다. 단말기는 하나 이상의 프로세서들, 메모리, 및 통신 인터페이스를 포함한다. 메모리 및 통신 인터페이스는 하나 이상의 프로세서들에 접속된다. 메모리는 컴퓨터 프로그램 코드를 저장하도록 구성된다. 컴퓨터 프로그램 코드는 명령을 포함한다. 하나 이상의 프로세서들이 명령을 실행할 때, 단말기는 본 출원의 실시예의 양방향 인터 예측 방법을 수행한다.
본 명세서에서의 단말기는 비디오 디스플레이 디바이스, 스마트폰, 휴대용 컴퓨터, 또는 비디오를 처리하거나 재생할 수 있는 다른 디바이스일 수 있다.
본 출원은 비-휘발성 저장 매체 및 중앙 처리 유닛을 포함하는 비디오 디코더를 더 제공한다. 비-휘발성 저장 매체는 실행가능한 프로그램을 저장한다. 중앙 처리 유닛은 비-휘발성 저장 매체에 연결되고, 본 출원의 실시예들의 양방향 인터 예측 방법을 수행하기 위해 실행가능한 프로그램을 실행한다.
본 출원은 디코더를 더 제공한다. 디코더는 본 출원의 실시예들의 양방향 인터 예측 장치(양방향 인터 예측장치(5) 또는 양방향 인터 예측을 위한 장치(6)), 및 재구성 모듈을 포함한다. 재구성 모듈은 양방향 인터 예측 장치에 의해 획득된 예측 샘플에 기초하여 현재 화상 블록의 재구성된 샘플 값을 결정하도록 구성된다.
본 출원의 다른 실시예는 컴퓨터-판독가능 저장 매체를 더 제공한다. 컴퓨터-판독가능 저장 매체는 하나 이상의 프로그램 코드를 포함한다. 하나 이상의 프로그램들은 명령을 포함한다. 단말기의 프로세서가 프로그램 코드를 실행할 때, 단말기는 도 4에 도시된 양방향 인터 예측 방법을 수행한다.
본 출원의 다른 실시예에서, 컴퓨터 프로그램 제품이 더 제공된다. 컴퓨터 프로그램 제품은 컴퓨터-실행가능 명령을 포함한다. 컴퓨터-실행가능 명령은 컴퓨터-판독가능 저장 매체에 저장된다. 단말기의 적어도 하나의 프로세서는 컴퓨터-실행가능 명령을 컴퓨터-판독가능 저장 매체로부터 판독할 수 있다. 적어도 하나의 프로세서는 컴퓨터-실행가능 명령을 실행하여, 단말기가 도 4에 도시된 양방향 인터 예측 방법에서 비디오 디코더(202)에 의해 수행된 단계들을 수행할 수 있게 한다.
상술한 실시예들의 전부 또는 일부는 소프트웨어, 하드웨어, 펌웨어, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 소프트웨어 프로그램이 실시예들을 구현하기 위해 사용될 때, 실시예들의 전부 또는 일부는 컴퓨터 프로그램 제품의 형태로 구현될 수 있다. 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터 명령들을 포함한다. 컴퓨터 프로그램 명령들이 컴퓨터 상에 로딩되어 실행될 때, 본 출원의 실시예들에 따른 절차들 또는 기능들은 모두 또는 부분적으로 생성된다.
컴퓨터는 범용 컴퓨터, 전용 컴퓨터, 컴퓨터 네트워크, 또는 다른 프로그램가능 장치일 수 있다. 컴퓨터 명령들은 컴퓨터-판독가능 저장 매체에 저장될 수 있거나, 또는 하나의 컴퓨터-판독가능 저장 매체로부터 다른 컴퓨터-판독가능 저장 매체로 전송될 수 있다. 예를 들어, 컴퓨터 명령들은 하나의 웹사이트, 컴퓨터, 서버, 또는 데이터 센터로부터 다른 웹사이트, 컴퓨터들, 서버 또는 데이터센터로 유선(예를 들어, 동축 케이블, 광섬유, 또는 디지털 가입자 라인(DSL)) 또는 무선(예를 들면, 적외선, 라디오, 또는 마이크로파) 방식으로 전송될 수 있다. 컴퓨터-판독가능 저장 매체는 컴퓨터에 액세스 가능한 임의의 사용가능한 매체, 또는 하나 이상의 사용가능한 매체를 통합하는 서버 또는 데이터 센터와 같은 데이터 저장 디바이스일 수 있다. 사용가능한 매체는 자기 매체(예를 들어, 플로피 디스크, 하드 디스크, 또는 자기 테이프), 광학 매체(예컨대, DVD), 반도체 매체(예로서, 솔리드 스테이트 디스크(SSD)), 등일 수 있다.
구현들에 관한 상술한 설명은 당업자가 설명의 용이성 및 간결성을 위해, 상술한 기능 모듈들로의 분할이 설명을 위한 예로서 사용된다는 것을 이해할 수 있게 한다. 실제 애플리케이션에서, 상술한 기능들은 상이한 모듈들에 할당될 수 있고 필요에 따라 구현될 수 있다. 즉, 장치의 내부 구조는 위에서 설명된 기능들의 전부 또는 일부를 구현하기 위해 상이한 기능 모듈들로 분할된다.
본 출원에 제공된 몇몇 실시예들에서, 개시된 장치 및 방법이 다른 방식들로 구현될 수 있다는 것이 이해되어야 한다. 예를 들어, 설명된 장치 실시예들은 단지 예들이다. 예를 들어, 모듈들 또는 유닛들로의 분할은 단지 논리적 기능 분할이다. 실제 구현에서 다른 분할 방식이 존재할 수 있다. 예를 들어, 복수의 유닛들 또는 구성요소들은 결합될 수 있거나 또는 다른 장치에 집적될 수 있거나, 또는 일부 특징들은 무시되거나 수행되지 않을 수 있다. 또한, 디스플레이되거나 논의된 상호 접속들 또는 직접 접속 또는 통신 연결들은 일부 인터페이스를 통해 구현될 수 있다. 장치들 또는 유닛들 사이의 간접 접속들 또는 통신 연결들은 전자적, 기계적, 또는 다른 형태들로 구현될 수 있다.
개별 구성요소들로서 설명된 유닛들은 물리적으로 분리될 수 있거나 그렇지 않을 수 있고, 유닛들로서 디스플레이된 구성요소들은 하나 이상의 물리적 유닛들일 수 있으며, 즉, 한 장소에 위치될 수 있거나, 복수의 상이한 장소들에 분산될 수 있다. 유닛들의 일부 또는 전부는 실시예들에서 해결책들의 목적들을 달성하기 위해 실제 요건들에 기초하여 선택될 수 있다.
또한, 본 출원의 실시예들에서의 기능 유닛들은 하나의 처리 유닛에 집적될 수 있거나, 또는 유닛들 각각은 물리적으로 단독으로 존재할 수 있거나, 또는 2개 이상의 유닛들이 하나의 유닛에 집적된다. 집적 유닛은 하드웨어의 형태로 구현될 수 있거나, 소프트웨어 기능 유닛의 형태로 구현될 수 있다.
집적 유닛이 소프트웨어 기능 유닛의 형태로 구현되고, 독립적인 제품으로서 판매되거나 사용될 때, 집적 유닛은 판독가능 저장 매체에 저장될 수 있다. 이러한 이해에 기초하여, 본질적으로 본 출원의 실시예들에서의 기술적 해결책들, 또는 현재 기술에 기여하는 부분, 또는 기술적 해결책들의 전부 또는 일부는 소프트웨어 제품의 형태로 구현될 수 있다. 소프트웨어 제품은 저장 매체에 저장되고, 디바이스(단일-칩 마이크로컴퓨터, 칩, 등일 수 있는) 또는 프로세서가 본 출원의 실시예들에서 설명된 방법들의 단계들 전부 또는 일부를 수행하도록 지시하기 위한 여러 명령들을 포함한다. 상술한 저장 매체는 USB 플래시 드라이브, 이동식 하드 디스크, 판독-전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기 디스크, 및 광 디스크와 같이 프로그램 코드를 저장할 수 있는 다양한 매체를 포함한다.
상술한 설명들은 단지 본 출원의 특정 구현일 뿐이며, 본 출원의 보호 범위를 제한하려는 것은 아니다. 본 출원에 개시된 기술적 범위 내의 임의의 변형 또는 대체는 본 출원의 보호 범위 내에 속해야 한다. 따라서, 본 출원의 보호 범위는 청구항들의 보호 범위에 종속될 것이다.
Claims (26)
- 양방향 인터 예측에 적용된 참조 프레임 획득 방법으로서:
현재 화상 블록의 제 1 참조 프레임 리스트 및 제 2 참조 프레임 리스트를 결정하는 단계;
상기 제 1 참조 프레임 리스트로부터, 조건(A1)을 충족시키는 X-방향 참조 프레임(x1)이 존재하는지 여부를 결정하는 단계;
상기 제 2 참조 프레임 리스트로부터, 조건(B1)을 충족시키는 Y-방향 참조 프레임(y1)이 존재하는지 여부를 결정하는 단계; 및
상기 X-방향 참조 프레임(x1)이 존재한다고 결정하는 것 및 상기 Y-방향 참조 프레임(y1)이 존재한다고 결정하는 것에 응답하여, 상기 현재 화상 블록의 양방향 참조 프레임들의 인덱스 값들(R1, R2)을 획득하는 단계를 포함하고,
상기 조건(A1)은 현재 프레임에 가장 가깝고 상기 현재 프레임의 시퀀스 번호보다 작은 시퀀스 번호를 갖는 참조 프레임(POC_listX_0)이고, 상기 조건(B1)은 상기 현재 프레임과 가장 가깝고 상기 현재 프레임보다 큰 시퀀스 번호를 갖는 참조 프레임(POC_listY_0)이고, 상기 현재 프레임은 상기 현재 화상 블록이 위치하는 프레임이며,
상기 X-방향 참조 프레임(x1)이 존재하지 않는다고 결정하는 것 및 상기 Y-방향 참조 프레임(y1)이 존재한다고 결정하는 것에 응답하여, 상기 방법은:
상기 제 1 참조 프레임 리스트로부터, 조건(A2)을 충족시키는 X-방향 참조 프레임(x2)이 존재하는지 여부를 결정하는 단계;
상기 제 2 참조 프레임 리스트로부터, 조건(B2)을 충족시키는 Y-방향 참조 프레임(y2)가 존재하는지 여부를 결정하는 단계; 및
상기 X-방향 참조 프레임(x2)이 존재한다고 결정하는 것 및 상기 Y-방향 참조 프레임(y2)이 존재한다고 결정하는 것에 응답하여, 상기 현재 화상 블록의 상기 양방향 참조 프레임들의 인덱스 값들(R1, R2)을 획득하는 단계를 더 포함하는, 참조 프레임 획득 방법. - 삭제
- 삭제
- 제 1 항에 있어서,
상기 조건(A2)은 상기 현재 프레임에 가장 가깝고 상기 현재 프레임의 시퀀스 번호보다 큰 시퀀스 번호를 갖는 참조 프레임(POC_listX_1)이고, 상기 조건(B2)은 상기 현재 프레임과 가장 가깝고 상기 현재 프레임의 시퀀스 번호보다 작은 참조 프레임(POC_listY_1)인, 참조 프레임 획득 방법. - 제 1 항에 있어서,
상기 X-방향 참조 프레임(x1)이 존재한다고 결정하는 단계 및 상기 Y-방향 참조 프레임(y1)이 존재한다고 결정하는 단계에 응답하여, 상기 방법은:
상기 제 1 참조 프레임 리스트로부터, 상기 조건(A2)을 충족시키는 X-방향 참조 프레임(x2)이 존재하는지 여부를 결정하는 단계;
상기 제 2 참조 프레임 리스트로부터, 상기 조건(B2)을 충족시키는 Y-방향 참조 프레임(y2)가 존재하는지 여부를 결정하는 단계; 및
상기 X-방향 참조 프레임(x1)이 존재한다고 결정하는 것, 상기 Y-방향 참조 프레임(y1)이 존재한다고 결정하는 것, 상기 X-방향 참조 프레임(x2)이 존재한다고 결정하는 것, 및 상기 Y-방향 참조 프레임(y2)이 존재한다고 결정하는 것에 응답하여, 상기 현재 화상 블록의 상기 양방향 참조 프레임들의 인덱스 값들(R1, R2)을 획득하는 단계로서, 상기 양방향 참조 프레임들의 인덱스 값들(R1 및 R2)은 상기 제 1 참조 프레임 리스트에서 상기 X-방향 참조 프레임(x1)의 인덱스 값 및 상기 제 2 참조 프레임 리스트에서 상기 Y-방향 참조 프레임(y1)의 인덱스 값으로 각각 설정되는, 인덱스 값들(R1, R2)을 획득하는 단계를 더 포함하는, 참조 프레임 획득 방법. - 제 5 항에 있어서,
상기 조건(A2)은 상기 현재 프레임에 가장 가깝고 상기 현재 프레임의 시퀀스 번호보다 큰 시퀀스 번호를 갖는 참조 프레임(POC_listX_1)이고, 상기 조건(B2)은 상기 현재 프레임과 가장 가깝고 상기 현재 프레임의 시퀀스 번호보다 작은 시퀀스 번호를 갖는 참조 프레임(POC_listY_1)인, 참조 프레임 획득 방법. - 제 5 항에 있어서,
상기 X-방향 참조 프레임(x1)이 존재한다고 결정하는 것, 상기 Y-방향 참조 프레임(y1)이 존재한다고 결정하는 것, 상기 X-방향 참조 프레임(x2)이 존재한다고 결정하는 것, 및 상기 Y-방향 참조 프레임(y2)이 존재한다고 결정하는 것에 응답하여, 상기 현재 화상 블록의 상기 양방향 참조 프레임들의 상기 인덱스 값들(R1, R2)을 획득하는 단계는:
미리 설정된 조건(C)에 기초하여, 상기 X-방향 참조 프레임(x1)이 존재하고 상기 Y-방향 참조 프레임(y1)이 존재하거나, 또는 상기 X-방향 참조 프레임(x2)이 존재하고 상기 Y-방향 참조 프레임(y2)이 존재한다고 결정하는 단계, 및 상기 현재 화상 블록의 상기 양방향 참조 프레임들의 상기 인덱스 값들(R1, R2)을 획득하는 단계를 포함하는, 참조 프레임 획득 방법. - 제 7 항에 있어서,
상기 조건(C)은, 상기 X-방향 참조 프레임(x1)과 상기 Y-방향 참조 프레임(y1) 사이의 구간(x1-y1) 및 상기 X-방향 참조 프레임(x2)과 상기 Y-방향 참조 프레임(y2) 사이의 구간(x2-y2) 중 더 작은 구간이, 상기 현재 화상 블록의 상기 양방향 참조 프레임들의 상기 인덱스 값들(R1, R2)을 획득하기 위한 기초로서 사용되는 조건인, 참조 프레임 획득 방법. - 제 7 항에 있어서,
상기 조건(C)은 참조 프레임 조합이 상기 현재 화상 블록의 상기 양방향 참조 프레임들의 상기 인덱스 값들(R1, R2)을 획득하기 위한 기초로서 사용되는 조건으로, 상기 참조 프레임 조합은 참조 프레임이 위치하는 조합인, 조건이고; 상기 참조 프레임은 상기 현재 프레임에 가장 가까운, 상기 X-방향 참조 프레임(x1), 상기 Y-방향 참조 프레임(y1), 상기 X-방향 참조 프레임(x2), 및 상기 Y-방향 참조 프레임(y2)의 프레임이고; 상기 참조 프레임 조합은 참조 프레임 조합(x1 및 y1) 또는 참조 프레임 조합(x2 및 y2)인, 참조 프레임 획득 방법. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 양방향 인터 예측에 적용되는 참조 프레임 획득 방법으로서:
현재 화상 블록의 제 1 참조 프레임 리스트 및 제 2 참조 프레임 리스트를 결정하는 단계;
상기 제 1 참조 프레임 리스트로부터, 조건(A1)을 충족시키는 X-방향 참조 프레임(x1)이 존재하는지 여부, 및 조건(A2)을 충족시키는 X-방향 참조 프레임(x2)이 존재하는지 여부를 결정하는 단계;
상기 제 2 참조 프레임 리스트로부터, 조건(B1)을 충족시키는 Y-방향 참조 프레임(y1)이 존재하는지 여부, 및 조건(B2)을 충족시키는 Y-방향 참조 프레임(y2)가 존재하는지 여부를 결정하는 단계; 및
상기 X-방향 참조 프레임들(x1 및 x2)과 상기 Y-방향 참조 프레임들(y1 및 y2)이 존재한다고 결정될 때, 상기 X-방향 참조 프레임들(x1과 x2) 및 상기 Y-방향 참조 프레임들(y1과 y2)에 의해 구성된 참조 프레임 조합들에 응답하여, 상기 현재 화상 블록의 양방향 참조 프레임들의 인덱스 값들(R1, R2)을 획득하는 단계로서, 상기 참조 프레임 조합들은: 상기 X-방향 참조 프레임(x1) 및 상기 Y-방향 참조 프레임(y1)이 모두 존재할 때 x1 및 y1에 의해 구성된 제 1 참조 프레임 조합(x1, y1) 및 상기 X-방향 참조 프레임(x2) 및 상기 Y-방향 참조 프레임(y2)이 모두 존재할 때 x2 및 y2에 의해 구성된 제 2 참조 프레임 조합(x2, y2)을 포함하는, 양방향 참조 프레임들의 인덱스 값들(R1, R2)을 획득하는 단계를 포함하고,
상기 조건(A1)은, 현재 프레임에 가장 가깝고, 상기 현재 프레임의 시퀀스 번호보다 작은 시퀀스 번호를 갖는 참조 프레임(POC_listX_0)이고, 상기 조건(B1)은, 상기 현재 프레임에 가장 가깝고, 상기 현재 프레임의 상기 시퀀스 번호보다 큰 시퀀스 번호를 갖는 참조 프레임(POC_listY_0)이고, 상기 조건(A2)은, 상기 현재 프레임에 가장 가깝고, 상기 현재 프레임의 상기 시퀀스 번호보다 큰 시퀀스 번호를 갖는 참조 프레임(POC_listX_1)이고, 상기 조건(B2)은, 상기 현재 프레임에 가장 가깝고, 상기 현재 프레임의 상기 시퀀스 번호보다 작은 시퀀스 번호를 갖는 참조 프레임(POC_listY_1)이고, 상기 현재 프레임은 상기 현재 화상 블록이 위치한 프레임이며,
상기 제 1 참조 프레임 조합이 존재하지만 상기 제 2 참조 프레임 조합이 존재하지 않는 것에 응답하여, 상기 현재 화상 블록의 양방향 참조 프레임들의 인덱스 값들(R1, R2)을 획득하는 단계는:
상기 양방향 참조 프레임들의 상기 인덱스 값들(R1, R2)을 상기 제 1 참조 프레임 리스트 내의 상기 X-방향 참조 프레임(x1)의 인덱스 값, 및 상기 제 2 참조 프레임 리스트 내의 상기 Y-방향 참조 프레임(y1)의 인덱스 값으로 각각 설정하는 단계를 포함하는, 참조 프레임 획득 방법. - 삭제
- 삭제
- 제 15 항에 있어서,
상기 제 2 참조 프레임 조합이 존재하지만 상기 제 1 참조 프레임 조합이 존재하지 않는 것에 응답하여, 상기 현재 화상 블록의 양방향 참조 프레임들의 인덱스 값들(R1, R2)을 획득하는 단계는:
상기 양방향 참조 프레임들의 상기 인덱스 값들(R1, R2)을 상기 제 1 참조 프레임 리스트 내의 상기 X-방향 참조 프레임(x2)의 인덱스 값, 및 상기 제 2 참조 프레임 리스트 내의 상기 Y-방향 참조 프레임(y2)의 인덱스 값으로 각각 설정하는 단계를 포함하는, 참조 프레임 획득 방법. - 제 15 항에 있어서,
상기 제 1 참조 프레임 조합이 존재하고 상기 제 2 참조 프레임 조합이 또한 존재하는 것에 응답하여, 상기 방법은:
미리 설정된 조건(C)에 기초하여, 상기 X-방향 참조 프레임(x1)이 존재하고 상기 Y-방향 참조 프레임(y1)이 존재하거나, 또는 상기 X-방향 참조 프레임(x2)가 존재하고 상기 Y-방향 참조 프레임(y2)가 존재한다고 결정하는 단계, 및 상기 현재 화상 블록의 상기 양방향 참조 프레임들의 상기 인덱스 값들(R1, R2)을 획득하는 단계를 더 포함하는, 참조 프레임 획득 방법. - 제 19 항에 있어서,
상기 조건(C)은, 상기 X-방향 참조 프레임(x1)과 상기 Y-방향 참조 프레임(y1) 사이의 구간(x1-y1) 및 상기 X-방향 참조 프레임(x2)과 상기 Y-방향 참조 프레임(y2) 사이의 구간(x2-y2) 중 더 작은 구간이, 상기 현재 화상 블록의 상기 양방향 참조 프레임들의 상기 인덱스 값들(R1, R2)을 획득하기 위한 기초로서 사용되는 것인, 참조 프레임 획득 방법. - 제 19 항에 있어서,
상기 조건(C)은, 참조 프레임 조합이 상기 현재 화상 블록의 상기 양방향 참조 프레임들의 상기 인덱스 값들(R1, R2)을 획득하기 위한 기초로서 사용되는 조건으로, 상기 참조 프레임 조합은 참조 프레임이 위치하는 조합인, 조건이고; 상기 참조 프레임은 상기 현재 프레임에 가장 가까운, 상기 X-방향 참조 프레임(x1), 상기 Y-방향 참조 프레임(y1), 상기 X-방향 참조 프레임(x2), 및 상기 Y-방향 참조 프레임(y2)의 프레임이고; 상기 참조 프레임 조합은 참조 프레임 조합(x1 및 y1) 또는 참조 프레임 조합(x2 및 y2)인, 참조 프레임 획득 방법. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862726975P | 2018-09-04 | 2018-09-04 | |
US62/726,975 | 2018-09-04 | ||
US201862727534P | 2018-09-05 | 2018-09-05 | |
US62/727,534 | 2018-09-05 | ||
US201862734226P | 2018-09-20 | 2018-09-20 | |
US62/734,226 | 2018-09-20 | ||
PCT/CN2019/094106 WO2020048205A1 (zh) | 2018-09-04 | 2019-06-30 | 应用于双向帧间预测中的参考帧获取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210047945A KR20210047945A (ko) | 2021-04-30 |
KR102602827B1 true KR102602827B1 (ko) | 2023-11-15 |
Family
ID=69722245
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217009653A KR102602827B1 (ko) | 2018-09-04 | 2019-06-30 | 양방향 인터 예측에 적용되는 참조 프레임 획득 방법 및 장치 |
KR1020217009929A KR102655127B1 (ko) | 2018-09-04 | 2019-09-04 | 양방향 인터 예측 방법 및 장치 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217009929A KR102655127B1 (ko) | 2018-09-04 | 2019-09-04 | 양방향 인터 예측 방법 및 장치 |
Country Status (13)
Country | Link |
---|---|
US (3) | US11792389B2 (ko) |
EP (2) | EP3840386A4 (ko) |
JP (4) | JP7242861B2 (ko) |
KR (2) | KR102602827B1 (ko) |
CN (3) | CN112640468A (ko) |
AU (3) | AU2019335839B2 (ko) |
BR (2) | BR112021004060A2 (ko) |
CA (1) | CA3111112A1 (ko) |
MX (2) | MX2021002488A (ko) |
PH (1) | PH12021550454A1 (ko) |
SG (1) | SG11202102171TA (ko) |
WO (2) | WO2020048205A1 (ko) |
ZA (1) | ZA202102188B (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3840386A4 (en) * | 2018-09-04 | 2021-09-22 | Huawei Technologies Co., Ltd. | METHOD AND DEVICE FOR DETERMINING A REFERENCE FRAME FOR BIDIRECTIONAL INTER-FRAME PREDICTION |
CN112771873A (zh) * | 2018-09-20 | 2021-05-07 | 夏普株式会社 | 用于发信号通知视频编码中的参数的***和方法 |
JP7303330B2 (ja) * | 2019-04-28 | 2023-07-04 | 北京字節跳動網絡技術有限公司 | 対称動きベクトル差分符号化 |
CN113099241B (zh) * | 2021-03-31 | 2022-11-01 | 北京百度网讯科技有限公司 | 参考帧列表更新方法、装置、设备以及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3079363A1 (en) | 2012-06-29 | 2016-10-12 | Telefonaktiebolaget LM Ericsson (publ) | Encoding and decoding video sequences comprising reference picture sets |
EP2779650B1 (en) | 2011-11-07 | 2017-04-26 | NTT Docomo, Inc. | Predictive video encoding device and system |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7400681B2 (en) * | 2003-11-28 | 2008-07-15 | Scientific-Atlanta, Inc. | Low-complexity motion vector prediction for video codec with two lists of reference pictures |
JP2007067731A (ja) * | 2005-08-30 | 2007-03-15 | Sanyo Electric Co Ltd | 符号化方法 |
JP2008154015A (ja) | 2006-12-19 | 2008-07-03 | Hitachi Ltd | 復号化方法および符号化方法 |
CN101309427B (zh) * | 2008-07-09 | 2010-07-07 | 中兴通讯股份有限公司 | 视频编码方法和装置 |
JP2011082683A (ja) * | 2009-10-05 | 2011-04-21 | Sony Corp | 画像処理装置、画像処理方法、及び、プログラム |
RU2549157C1 (ru) | 2010-04-23 | 2015-04-20 | М энд К ХОЛДИНГС ИНК. | Устройство для кодирования движущегося изображения |
TWI508534B (zh) | 2010-05-18 | 2015-11-11 | Sony Corp | Image processing apparatus and image processing method |
US9008181B2 (en) | 2011-01-24 | 2015-04-14 | Qualcomm Incorporated | Single reference picture list utilization for interprediction video coding |
US9288501B2 (en) | 2011-03-08 | 2016-03-15 | Qualcomm Incorporated | Motion vector predictors (MVPs) for bi-predictive inter mode in video coding |
JP5786499B2 (ja) | 2011-06-30 | 2015-09-30 | 株式会社Jvcケンウッド | 画像復号装置、画像復号方法及び画像復号プログラム |
KR101607038B1 (ko) * | 2011-11-21 | 2016-04-11 | 모토로라 모빌리티 엘엘씨 | 시간 예측을 위한 병치된 픽처의 암시적 결정 및 결합된 암시적 및 명시적 결정 |
US20130272409A1 (en) * | 2012-04-12 | 2013-10-17 | Qualcomm Incorporated | Bandwidth reduction in video coding through applying the same reference index |
US20150103911A1 (en) * | 2012-04-15 | 2015-04-16 | Samsung Electronics Co., Ltd. | Method and apparatus for determining reference images for inter-prediction |
US9357195B2 (en) * | 2012-08-16 | 2016-05-31 | Qualcomm Incorporated | Inter-view predicted motion vector for 3D video |
CN103079072A (zh) * | 2013-01-15 | 2013-05-01 | 清华大学 | 帧间预测方法、编码设备和解码设备 |
KR20140122195A (ko) | 2013-04-05 | 2014-10-17 | 삼성전자주식회사 | 인터 레이어 복호화 및 부호화 방법 및 장치를 위한 인터 예측 후보 결정 방법 |
CN104717513B (zh) * | 2015-03-31 | 2018-02-09 | 北京奇艺世纪科技有限公司 | 一种双向帧间预测方法及装置 |
US10404979B2 (en) * | 2016-03-17 | 2019-09-03 | Mediatek Inc. | Video coding with interpolated reference pictures |
US10939125B2 (en) * | 2016-04-29 | 2021-03-02 | Industry Academy Cooperation Foundation Of Sejong University | Method and apparatus for encoding/decoding image signal |
KR102322437B1 (ko) * | 2016-09-30 | 2021-11-05 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 인터 프레임 예측을 위한 이미지 코딩 및 디코딩을 위한 방법 및 디바이스 |
CN109691098A (zh) * | 2016-09-30 | 2019-04-26 | 华为技术有限公司 | 视频编码方法、解码方法及终端 |
CN110140355B (zh) * | 2016-12-27 | 2022-03-08 | 联发科技股份有限公司 | 用于视频编解码的双向模板运动向量微调的方法及装置 |
US10595035B2 (en) | 2017-03-22 | 2020-03-17 | Qualcomm Incorporated | Constraining motion vector information derived by decoder-side motion vector derivation |
JP6344508B2 (ja) * | 2017-06-12 | 2018-06-20 | 株式会社Jvcケンウッド | 画像復号装置、画像復号方法、画像復号プログラム |
CN108124154B (zh) * | 2017-12-28 | 2020-04-24 | 北京数码视讯科技股份有限公司 | 帧间预测模式的快速选择方法、装置及电子设备 |
WO2020003262A1 (en) * | 2018-06-30 | 2020-01-02 | Beijing Bytedance Network Technology Co., Ltd. | Symmetric bi-prediction mode for video coding |
CN115052162A (zh) * | 2018-07-02 | 2022-09-13 | 华为技术有限公司 | 用于解码端运动矢量修正的基于误差面的子像素精确修正方法 |
EP3840386A4 (en) * | 2018-09-04 | 2021-09-22 | Huawei Technologies Co., Ltd. | METHOD AND DEVICE FOR DETERMINING A REFERENCE FRAME FOR BIDIRECTIONAL INTER-FRAME PREDICTION |
JP7303330B2 (ja) * | 2019-04-28 | 2023-07-04 | 北京字節跳動網絡技術有限公司 | 対称動きベクトル差分符号化 |
-
2019
- 2019-06-30 EP EP19857950.0A patent/EP3840386A4/en active Pending
- 2019-06-30 BR BR112021004060-9A patent/BR112021004060A2/pt unknown
- 2019-06-30 MX MX2021002488A patent/MX2021002488A/es unknown
- 2019-06-30 JP JP2021536131A patent/JP7242861B2/ja active Active
- 2019-06-30 KR KR1020217009653A patent/KR102602827B1/ko active IP Right Grant
- 2019-06-30 CN CN201980057228.5A patent/CN112640468A/zh active Pending
- 2019-06-30 WO PCT/CN2019/094106 patent/WO2020048205A1/zh unknown
- 2019-09-04 MX MX2021002489A patent/MX2021002489A/es unknown
- 2019-09-04 CA CA3111112A patent/CA3111112A1/en active Pending
- 2019-09-04 SG SG11202102171TA patent/SG11202102171TA/en unknown
- 2019-09-04 JP JP2021536143A patent/JP7277587B2/ja active Active
- 2019-09-04 WO PCT/CN2019/104462 patent/WO2020048502A1/zh active Application Filing
- 2019-09-04 CN CN202011633839.0A patent/CN112866721A/zh active Pending
- 2019-09-04 EP EP19858320.5A patent/EP3840385A4/en active Pending
- 2019-09-04 AU AU2019335839A patent/AU2019335839B2/en active Active
- 2019-09-04 BR BR112021003967-8A patent/BR112021003967A2/pt unknown
- 2019-09-04 CN CN201980037194.3A patent/CN112567753A/zh active Pending
- 2019-09-04 KR KR1020217009929A patent/KR102655127B1/ko active IP Right Grant
-
2021
- 2021-03-02 US US17/189,953 patent/US11792389B2/en active Active
- 2021-03-02 US US17/189,577 patent/US11659161B2/en active Active
- 2021-03-03 PH PH12021550454A patent/PH12021550454A1/en unknown
- 2021-03-31 ZA ZA2021/02188A patent/ZA202102188B/en unknown
-
2022
- 2022-08-25 AU AU2022221499A patent/AU2022221499B2/en active Active
-
2023
- 2023-05-08 JP JP2023076778A patent/JP2023109819A/ja active Pending
- 2023-05-08 JP JP2023076777A patent/JP2023109818A/ja active Pending
- 2023-09-07 US US18/462,625 patent/US20230421755A1/en active Pending
-
2024
- 2024-03-21 AU AU2024201857A patent/AU2024201857A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2779650B1 (en) | 2011-11-07 | 2017-04-26 | NTT Docomo, Inc. | Predictive video encoding device and system |
EP3079363A1 (en) | 2012-06-29 | 2016-10-12 | Telefonaktiebolaget LM Ericsson (publ) | Encoding and decoding video sequences comprising reference picture sets |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102602827B1 (ko) | 양방향 인터 예측에 적용되는 참조 프레임 획득 방법 및 장치 | |
US11924458B2 (en) | Bidirectional inter prediction method and apparatus | |
US20230239494A1 (en) | Video encoder, video decoder, and corresponding method | |
US20240196003A1 (en) | Method for constructing candidate motion information list, inter prediction method, and apparatus | |
CN110971899B (zh) | 一种确定运动信息的方法、帧间预测方法及装置 | |
CN115442616A (zh) | 视频解码方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |