KR20210104904A - 비디오 인코더, 비디오 디코더, 및 대응하는 방법 - Google Patents

비디오 인코더, 비디오 디코더, 및 대응하는 방법 Download PDF

Info

Publication number
KR20210104904A
KR20210104904A KR1020217024167A KR20217024167A KR20210104904A KR 20210104904 A KR20210104904 A KR 20210104904A KR 1020217024167 A KR1020217024167 A KR 1020217024167A KR 20217024167 A KR20217024167 A KR 20217024167A KR 20210104904 A KR20210104904 A KR 20210104904A
Authority
KR
South Korea
Prior art keywords
picture
library
decoded
pictures
bitstream
Prior art date
Application number
KR1020217024167A
Other languages
English (en)
Other versions
KR102609215B1 (ko
Inventor
루 위
예-쿠이 왕
위췬 판
화룽 위
인 자오
샹위 린
하이타오 양
Original Assignee
후아웨이 테크놀러지 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후아웨이 테크놀러지 컴퍼니 리미티드 filed Critical 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20210104904A publication Critical patent/KR20210104904A/ko
Application granted granted Critical
Publication of KR102609215B1 publication Critical patent/KR102609215B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/58Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

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

Abstract

본 출원은 디코딩 피크를 감소시키기 위한 디코딩 방법 및 디바이스를 개시한다. 방법은: 비트스트림으로부터 제1 식별자를 획득하는 단계- 제1 식별자는 비트스트림에서 허용되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격 k를 표시하기 위해 사용됨 -; 현재 디코딩된 픽처가 라이브러리 픽처를 참조함으로써 디코딩되는 경우, 비트스트림을 파싱할 때, 현재 디코딩된 픽처의 디코딩 순간 ti 및 현재 디코딩된 픽처에 가장 가깝고 새로운 라이브러리 픽처를 참조하는 제1 디코딩된 픽처의 디코딩 순간 tj를 획득하는 단계- 새로운 라이브러리 픽처는 제1 디코딩된 픽처가 디코딩될 때 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처임 -; 및 k와 ti-tj(difference between ti and tj) 사이의 관계에 기초하여 현재 디코딩된 픽처의 후보 참조 픽처들로서 미리 설정된 수량의 라이브러리 픽처들을 결정하는 단계를 포함한다. 본 출원에 따르면, 코딩에서의 예측 정확도가 개선될 수 있고, 코딩 효율이 개선될 수 있다.

Description

비디오 인코더, 비디오 디코더, 및 대응하는 방법
본 발명은 비디오 코딩 분야에 관한 것으로, 특히, 비디오 픽처 인코딩 방법 및 장치, 비디오 픽처 디코딩 방법 및 장치, 및 대응하는 인코더 및 디코더에 관한 것이다.
디지털 비디오 능력들은, 디지털 텔레비전, 디지털 라이브 방송 시스템, 무선 방송 시스템, PDA(personal digital assistant), 랩톱 또는 데스크톱 컴퓨터, 태블릿 컴퓨터, e-북 리더, 디지털 카메라, 디지털 레코딩 장치, 디지털 미디어 플레이어, 비디오 게임 장치, 비디오 게임 콘솔, 셀룰러 또는 위성 무선 전화("스마트폰"이라고도 지칭됨), 비디오 회의 장치, 비디오 스트리밍 송신 장치 등을 포함한, 다양한 장치들에 통합될 수 있다. 디지털 비디오 장치는 비디오 압축 기술들, 예를 들어, MPEG-2, MPEG-4, ITU-T H.263, 및 ITU-T H.264/MPEG-4 part 10 AVC(advanced video coding)를 포함하는 표준들, 비디오 코딩 표준 H.265/HEVC(high efficiency video coding) 표준, 및 이러한 표준들의 확장들에 설명된 비디오 압축 기술들을 구현한다. 비디오 장치는 이러한 비디오 압축 기술들을 구현함으로써 디지털 비디오 정보를 더 효율적으로 송신, 수신, 인코딩, 디코딩 및/또는 저장할 수 있다.
비디오 압축 기술들은 비디오 시퀀스들에서 고유한 중복성을 감소시키거나 제거하기 위해 공간적(인트라-픽처(intra-picture)) 예측 및/또는 시간적(인터-픽처(inter-picture)) 예측을 수행하기 위해 사용된다. 블록-기반 비디오 코딩에서, 비디오 슬라이스(즉, 비디오 프레임 또는 비디오 프레임의 일부)는 픽처 블록들로 분할될 수 있고, 픽처 블록은 트리 블록, 코딩 유닛(CU), 및/또는 코딩 노드라고도 지칭될 수 있다. 픽처의 인트라-코딩될(I) 슬라이스의 픽처 블록은 동일한 픽처 내의 이웃 블록 내의 참조 샘플에 기초하여 공간 예측을 수행함으로써 코딩된다. 픽처의 인터-코딩될(P 또는 B) 슬라이스의 픽처 블록은 동일한 픽처 내의 이웃 블록 내의 참조 샘플에 기초한 공간 예측 또는 다른 참조 픽처 내의 참조 샘플에 기초한 시간 예측을 수행함으로써 코딩될 수 있다. 픽처는 프레임으로 지칭될 수 있고, 참조 픽처는 참조 프레임이라고 지칭될 수 있다.
본 출원의 실시예들은 비디오 픽처 코딩 방법 및 장치, 및 대응하는 인코더 및 디코더를 제공하여, 픽처 블록의 모션 정보를 예측하는 정확도를 어느 정도 개선하고, 코딩 성능을 개선한다.
제1 양태에 따르면, 본 출원의 실시예는 비디오 디코딩 방법을 제공하고, 이 방법은:
비트스트림으로부터 제1 식별자를 획득하는 단계- 제1 식별자는 비트스트림에서 허용되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격 k를 표시하기 위해 사용됨 -;
현재 디코딩된 픽처가 라이브러리 픽처를 참조함으로써 디코딩되는 경우, 비트스트림을 파싱할 때, 현재 디코딩된 픽처의 디코딩 순간 ti 및 현재 디코딩된 픽처에 가장 가깝고 새로운 라이브러리 픽처를 참조하는 제1 디코딩된 픽처의 디코딩 순간 tj를 획득하는 단계- 새로운 라이브러리 픽처는 제1 디코딩된 픽처가 디코딩될 때 디코딩되지 않거나 재디코딩될(re-decoded) 필요가 있는 라이브러리 픽처임 -; 및
k와 ti-tj(difference between ti and tj) 사이의 관계에 기초하여 현재 디코딩된 픽처의 후보 참조 픽처들로서 미리 설정된 수량의 라이브러리 픽처들을 결정하는 단계를 포함한다.
제2 양태에 따르면, 본 출원의 실시예는 제1 양태에서의 임의의 방법을 구현하도록 구성되는 몇몇 기능 유닛들을 포함하는 디코딩 장치를 제공한다. 예를 들어, 디코딩 장치는:
비트스트림으로부터 제1 식별자를 획득하도록 구성되는 제1 획득 모듈- 제1 식별자는 비트스트림에서 허용되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격 k를 표시하기 위해 사용됨 -;
현재 디코딩된 픽처가 라이브러리 픽처를 참조함으로써 디코딩되는 경우, 비트스트림을 파싱할 때, 현재 디코딩된 픽처의 디코딩 순간 ti 및 현재 디코딩된 픽처에 가장 가깝고 새로운 라이브러리 픽처를 참조하는 제1 디코딩된 픽처의 디코딩 순간 tj를 획득하도록 구성되는 제2 획득 모듈- 새로운 라이브러리 픽처는 제1 디코딩된 픽처가 디코딩될 때 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처임 -; 및
k와 ti-tj 사이의 관계에 기초하여 현재 디코딩된 픽처의 후보 참조 픽처들로서 미리 설정된 수량의 라이브러리 픽처들을 결정하도록 구성되는 결정 모듈을 포함할 수 있다.
제1 양태 또는 제2 양태에 기초하여, 일부 가능한 구현들에서, k는 비트스트림이 만족하는 프로파일 또는 레벨에서 허용되는 최소 디코딩 시간 간격의 하한 이상이다.
제1 양태 또는 제2 양태에 기초하여, 일부 가능한 구현들에서, k와 ti-tj 사이의 관계에 기초하여 현재 디코딩된 픽처의 후보 참조 픽처들로서 미리 설정된 수량의 라이브러리 픽처들을 결정하는 단계는:
ti-tj가 k 이상인 경우, n개의 라이브러리 픽처를 현재 디코딩된 픽처의 후보 참조 픽처들로서 결정하는 단계를 포함하고, 여기서 n개의 라이브러리 픽처는 현재 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처를 포함하고, n은 양의 정수이다.
제1 양태 또는 제2 양태에 기초하여, 일부 가능한 구현들에서, ti-tj가 k 이상인 경우, m+n개의 라이브러리 픽처가 현재 디코딩된 픽처의 후보 참조 픽처들로서 결정되고, 여기서 m개의 라이브러리 픽처는 디코딩된 라이브러리 픽처를 포함하고, n개의 라이브러리 픽처는 현재 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처를 포함하고, m 및 n은 양의 정수들이다.
제1 양태 또는 제2 양태에 기초하여, 일부 가능한 구현들에서, n개의 라이브러리 픽처를 현재 디코딩된 픽처의 후보 참조 픽처들로서 결정하는 단계는:
현재 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처들로부터, 현재 디코딩된 픽처와 가장 높은 콘텐츠 유사성을 갖는 n개의 라이브러리 픽처를 결정하는 단계를 포함한다.
제1 양태 또는 제2 양태에 기초하여, 일부 가능한 구현들에서, n개의 라이브러리 픽처를 현재 디코딩된 픽처의 후보 참조 픽처들로서 결정하는 단계는:
현재 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처들로부터, 현재 디코딩된 픽처의 디스플레이 순간에 가장 가까운 디스플레이 순간들을 갖는 n개의 라이브러리 픽처를 결정하는 단계를 포함한다.
제1 양태 또는 제2 양태에 기초하여, 일부 가능한 구현들에서, n개의 라이브러리 픽처를 현재 디코딩된 픽처의 후보 참조 픽처들로서 결정하는 단계는:
현재 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처들로부터, 가장 높은 인코딩 효율을 갖는 n개의 라이브러리 픽처를 결정하는 단계를 포함한다.
제1 양태 또는 제2 양태에 기초하여, 일부 가능한 구현들에서, k와 ti-tj 사이의 관계에 기초하여 현재 디코딩된 픽처의 후보 참조 픽처들로서 미리 설정된 수량의 라이브러리 픽처들을 결정하는 단계는:
ti-tj가 k보다 작은 경우, m개의 라이브러리 픽처를 현재 디코딩된 픽처의 후보 참조 픽처들로서 결정하는 단계를 포함하고, m개의 라이브러리 픽처는 디코딩되었고 재디코딩될 필요가 없는 라이브러리 픽처를 포함하고, m은 양의 정수이다.
제3 양태에 따르면, 본 출원의 실시예는 비디오 디코딩 방법을 제공하고, 이 방법은:
제1 디코딩된 픽처를 획득하는 단계- 제1 디코딩된 픽처는 메인 비트스트림에 있고, 시퀀스 헤더를 바로 뒤따르고, 현재 디코딩될 픽처 이전에 위치되고, 랜덤 액세스를 지원하고, 라이브러리 픽처만을 참조하는 적어도 하나의 픽처에서 현재 디코딩될 픽처에 가장 가까운 픽처임 -; 및
현재 디코딩될 픽처의 참조 픽처로서 새로운 라이브러리 픽처를 사용하는 단계- 현재 디코딩될 픽처는 랜덤 액세스를 지원하고 라이브러리 픽처만을 참조하는 픽처임 -를 포함하고;
메인 비트스트림에서 현재 디코딩될 픽처와 제1 디코딩된 픽처 사이에 디코딩되는 픽처들의 수량은 적어도 f*k이고, 여기서 k는 메인 비트스트림에서 허용되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격이고, f는 메인 비트스트림에서 요구되는, 비디오 시퀀스의 프레임 레이트이고; 새로운 라이브러리 픽처들의 수량은 미리 설정된 값 n 이하이고, 여기서 n은 양의 정수이고; 새로운 라이브러리 픽처는 현재 디코딩될 픽처에 의해 참조되지만 제1 디코딩된 픽처에 의해 참조되지 않는 라이브러리 픽처이다.
제4 양태에 따르면, 본 출원의 실시예는 비디오 디코딩 장치를 제공하고, 이 장치는:
제1 디코딩된 픽처를 획득하도록 구성되는 제2 획득 모듈- 제1 디코딩된 픽처는 메인 비트스트림에 있고, 시퀀스 헤더를 바로 뒤따르고, 현재 디코딩될 픽처 이전에 위치되고, 랜덤 액세스를 지원하고, 라이브러리 픽처만을 참조하는 적어도 하나의 픽처에서 현재 디코딩될 픽처에 가장 가까운 픽처임 -; 및
현재 디코딩될 픽처의 참조 픽처로서 새로운 라이브러리 픽처를 사용하도록 구성되는 결정 모듈- 현재 디코딩될 픽처는 랜덤 액세스를 지원하고 라이브러리 픽처만을 참조하는 픽처임 -을 포함하고;
메인 비트스트림에서 현재 디코딩될 픽처와 제1 디코딩된 픽처 사이에 디코딩되는 픽처들의 수량은 적어도 f*k이고, 여기서 k는 메인 비트스트림에서 허용되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격이고, f는 메인 비트스트림에서 요구되는, 비디오 시퀀스의 프레임 레이트이고; 새로운 라이브러리 픽처들의 수량은 미리 설정된 값 n 이하이고, 여기서 n은 양의 정수이고; 새로운 라이브러리 픽처는 현재 디코딩될 픽처에 의해 참조되지만 제1 디코딩된 픽처에 의해 참조되지 않는 라이브러리 픽처이다.
제3 양태 또는 제4 양태에 기초하여, 일부 가능한 구현들에서, 방법은: 새로운 라이브러리 픽처에 기초하여 현재 디코딩될 픽처를 디코딩하는 단계를 추가로 포함한다. 대응적으로, 장치는 이 단계를 수행하도록 구성되는 디코딩 모듈을 추가로 포함한다.
제3 양태 또는 제4 양태에 기초하여, 일부 가능한 구현들에서, n=1이다.
제3 양태 또는 제4 양태에 기초하여, 일부 가능한 구현들에서, 새로운 라이브러리 픽처는 라이브러리 비트스트림을 디코딩하는 것에 의해 획득된다.
제5 양태에 따르면, 본 출원의 실시예는 비디오 데이터 디코딩 디바이스를 제공하고, 이 디바이스는:
비디오 데이터를 비트스트림의 형태로 저장하도록 구성되는 메모리; 및
제1 양태, 제3 양태, 또는 제1 양태 또는 제3 양태의 가능한 구현들 중 어느 하나에서의 방법을 수행하도록 구성되는 비디오 디코더를 포함한다.
제6 양태에 따르면, 본 출원의 실시예는 비디오 데이터 인코딩 디바이스를 제공하고, 이 디바이스는:
비디오 데이터를 저장하도록 구성되는 메모리- 비디오 데이터는 하나 이상의 픽처 블록을 포함함 -; 및
제1 양태, 제3 양태, 또는 제1 양태 또는 제3 양태의 가능한 구현들 중 어느 하나에서의 방법을 수행하도록 구성되는 비디오 인코더를 포함한다.
제7 양태에 따르면, 본 출원의 실시예는 서로 결합되는 비휘발성 메모리 및 프로세서를 포함하는 인코딩 디바이스를 제공한다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여, 제1 양태에서의 임의의 방법의 일부 또는 모든 단계들을 수행한다.
제8 양태에 따르면, 본 출원의 실시예는 서로 결합되는 비휘발성 메모리 및 프로세서를 포함하는 디코딩 디바이스를 제공한다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여, 제1 양태에서의 임의의 방법의 일부 또는 모든 단계들을 수행한다.
제9 양태에 따르면, 본 출원의 실시예는 컴퓨터 판독가능 저장 매체를 제공한다. 컴퓨터 판독가능 저장 매체는 프로그램 코드를 저장하고, 프로그램 코드는 제1 양태에서의 임의의 방법의 일부 또는 모든 단계들을 수행하기 위해 사용되는 명령어들을 포함한다.
제10 양태에 따르면, 본 출원의 실시예는 컴퓨터 프로그램 제품을 제공한다. 컴퓨터 프로그램 제품이 컴퓨터 상에서 실행될 때, 컴퓨터는 제1 양태에서의 임의의 방법의 일부 또는 모든 단계들을 수행할 수 있게 된다.
본 출원의 임의의 양태의 가능한 구현들은 자연의 법칙을 따르고, 일부 대응하는 실현가능한 구현들에서의 구현 방법들이 유사하다면 무작위로 조합될 수 있다는 점이 이해되어야 한다. 따라서, 유사한 유익한 효과들이 달성되고, 세부사항들은 다시 설명되지 않는다.
본 발명의 실시예들에서, 디코딩 피크가 감소될 수 있다는 것을 알 수 있다.
본 발명의 실시예들 또는 배경기술에서의 기술적 해결책들을 보다 명확하게 설명하기 위해, 이하에서는 본 발명의 실시예들 또는 배경기술에서 사용될 필요가 있는 첨부 도면들을 설명한다.
도 1a는 본 발명의 실시예들을 구현하기 위한 비디오 인코딩 및 디코딩 시스템(10)의 일례의 블록도이다.
도 1b는 본 발명의 실시예들을 구현하기 위한 비디오 코딩 시스템(40)의 일례의 블록도이고;
도 2는 본 발명의 실시예들을 구현하기 위한 인코더(20)의 예시적인 구조의 블록도이고;
도 3은 본 발명의 실시예들을 구현하기 위한 디코더(30)의 예시적인 구조의 블록도이고;
도 4는 본 발명의 실시예를 구현하는 비디오 코딩 디바이스(400)의 일례의 블록도이고;
도 5는 본 발명의 실시예들을 구현하기 위한 다른 인코딩 장치 또는 디코딩 장치의 일례의 블록도이고;
도 6a는 본 발명의 실시예에 따른 비트스트림의 가능한 구조의 예를 도시하고;
도 6b는 본 발명의 실시예들에서 비트스트림의 가능한 구조의 예를 도시하고;
도 6c는 본 발명의 실시예들에서 비트스트림의 가능한 구조의 예를 도시하고;
도 7a는 본 발명의 실시예들에서 비트스트림의 가능한 구조의 예를 도시하고;
도 7b는 본 발명의 실시예들에서 비트스트림의 가능한 구조의 예를 도시하고;
도 7c는 본 발명의 실시예들에서 비트스트림의 가능한 구조의 예를 도시하고;
도 8a는 본 발명의 실시예들에서 비트스트림의 가능한 구조의 예를 도시하고;
도 8b는 본 발명의 실시예들에서 비트스트림의 가능한 구조의 예를 도시하고;
도 8c는 본 발명의 실시예들에서 비트스트림의 가능한 구조의 예를 도시하고;
도 9a는 본 발명의 실시예들에서 비트스트림의 가능한 구조의 예를 도시하고;
도 9b는 본 발명의 실시예들에서 비트스트림의 가능한 구조의 예를 도시하고;
도 9c는 본 발명의 실시예들에서 비트스트림의 가능한 구조의 예를 도시하고;
도 9d는 본 발명의 실시예들에서의 디코딩 방법의 개략적인 흐름도이고;
도 10a는 본 발명의 실시예들에서 비트스트림의 가능한 구조의 예를 도시하고;
도 10b는 본 발명의 실시예들에서 비트스트림의 가능한 구조의 예를 도시하고;
도 10c는 본 발명의 실시예들에서 비트스트림의 가능한 구조의 예를 도시하고;
도 11은 본 발명의 실시예들을 구현하기 위한 디코딩 방법의 개략적인 흐름도이고;
도 12는 본 발명의 실시예들을 구현하기 위한 디바이스의 구조 블록도이다.
다음은 본 발명의 실시예들에서의 첨부 도면들을 참조하여 본 발명의 실시예들을 설명한다. 다음의 설명들에서, 본 개시내용의 일부를 형성하고, 본 발명의 실시예들의 특정 양태들 또는 본 발명의 실시예들이 사용될 수 있는 특정 양태들을 예시로서 도시하는 첨부 도면들이 참조된다. 본 발명의 실시예들은 다른 양태들에서 사용될 수 있으며, 첨부 도면들에 도시되지 않은 구조적 또는 논리적 변경들을 포함할 수 있다는 것을 이해해야 한다. 따라서, 이하의 상세한 설명들은 제한적인 의미로 이해되어서는 안되며, 본 발명의 범위는 첨부된 청구항들에 의해 정의된다. 예를 들어, 설명된 방법들을 참조하여 개시된 내용은 또한 방법을 수행하도록 구성되는 대응하는 디바이스 또는 시스템에 적용가능하고, 그 반대도 마찬가지라는 것을 이해해야 한다. 예를 들어, 하나 이상의 특정 방법 단계들이 설명되면, 대응하는 디바이스는 설명된 하나 이상의 방법 단계들을 수행하기 위한 기능 유닛들과 같은 하나 이상의 유닛(예를 들어, 하나 이상의 단계를 수행하는 하나의 유닛, 또는 복수의 단계 중 하나 이상을 각각 수행하는 복수의 유닛)을 포함할 수 있지만, 이러한 하나 이상의 유닛은 첨부 도면들에서 명시적으로 설명되거나 예시되지 않는다. 또한, 예를 들어, 특정 장치가 기능 유닛들과 같은 하나 이상의 유닛에 기초하여 설명되면, 대응하는 방법은 하나 이상의 유닛의 기능을 수행하기 위해 사용되는 하나의 단계(예를 들어, 하나 이상의 유닛의 하나 이상의 기능을 수행하기 위해 사용되는 하나의 단계, 또는 복수의 유닛 중 하나 이상의 유닛의 하나 이상의 기능을 수행하기 위해 각각 사용되는 복수의 단계)를 포함할 수 있지만, 그러한 하나 이상의 단계는 첨부 도면들에서 명시적으로 설명되거나 도시되지 않는다. 또한, 본 명세서에서 설명된 다양한 예시적인 실시예들 및/또는 양태들의 특징들은, 달리 특정되지 않는 한, 서로 조합될 수 있다는 점이 이해되어야 한다.
본 발명의 실시예들에서의 기술적 해결책들은 기존의 비디오 코딩 표준(예컨대 H.264 또는 HEVC)에 적용될 수 있을 뿐만 아니라, 미래의 비디오 코딩 표준(예컨대 H.266)에도 적용될 수 있다. 본 발명의 구현들에서 사용되는 용어들은 단지 본 발명의 특정 실시예들을 설명하도록 의도되고, 본 발명을 제한하도록 의도되지 않는다. 다음은 본 발명의 실시예들에서 사용될 수 있는 일부 개념들을 먼저 간단히 설명한다.
비디오 코딩은 일반적으로 비디오 또는 비디오 시퀀스를 형성하는 픽처들의 시퀀스의 처리를 지칭한다. 비디오 코딩 분야에서, 용어 "픽처(picture)", "프레임(frame)", 및 "이미지(image)"는 동의어로서 사용될 수 있다. 본 명세서에서의 비디오 코딩은 비디오 인코딩 또는 비디오 디코딩을 표현한다. 비디오 인코딩은 소스 측에서 수행되고, 일반적으로 (더 효율적인 저장 및/또는 송신을 위해) 비디오 픽처를 표현하는 데 필요한 데이터의 양을 감소시키기 위해 원래의 비디오 픽처를 (예를 들어, 압축에 의해) 처리하는 것을 포함한다. 비디오 디코딩은 목적지 측에서 수행되고, 통상적으로 비디오 픽처를 재구성하기 위해 인코더에 대한 역 처리를 포함한다. 실시예들에서 비디오 픽처의 "코딩"은 비디오 시퀀스의 "인코딩" 또는 "디코딩"으로서 이해되어야 한다. 인코딩과 디코딩의 조합은 코덱(인코딩 및 디코딩)이라고도 지칭된다.
비디오 시퀀스는 일련의 픽처들(picture)을 포함하고, 픽처는 슬라이스들(slice)로 추가로 분할되고, 슬라이스는 블록들(block)로 추가로 분할된다. 비디오 코딩은 블록에 의해 수행된다. 일부 새로운 비디오 코딩 표준들에서, 개념 "블록"은 추가로 확장된다. 예를 들어, H.264 표준에서는, 매크로블록(macroblock, MB)이 있고, 매크로블록은 예측 코딩을 위해 사용될 수 있는 복수의 예측 블록으로 추가로 분할될 수 있다. 고효율 비디오 코딩(high efficiency video coding, HEVC) 표준에서, 복수의 블록 유닛은 코딩 유닛(coding unit, CU), 예측 유닛(prediction unit, PU), 및 변환 유닛(transform unit, TU)과 같은 기본 개념들에 따른 기능들에 의해 분류되고, 새로운 트리 기반 구조를 사용하여 설명된다. 예를 들어, CU는 쿼드트리에 기초하여 더 작은 CU들로 분할될 수 있고, 더 작은 CU는 추가로 분할되어, 쿼드트리 구조를 생성할 수 있다. CU는 코딩된 픽처를 분할 및 인코딩하기 위한 기본 단위이다. PU 및 TU는 또한 유사한 트리 구조들을 갖는다. PU는 예측 블록에 대응할 수 있고, 예측 코딩을 위한 기본 단위이다. CU는 분할 모드에서 복수의 PU로 추가로 분할된다. TU는 변환 블록에 대응할 수 있고, 예측 잔차를 변환하기 위한 기본 단위이다. 그러나, 본질적으로, CU, PU, 및 TU 모두는 블록들(또는 픽처 블록들)의 개념들이다.
예를 들어, HEVC에서, CTU는 코딩 트리로서 표현되는 쿼드트리 구조를 사용하여 복수의 CU로 분할된다. 인터 픽처(시간) 또는 인트라 픽처(공간) 예측을 사용하여 픽처 영역을 인코딩할지에 대한 결정이 CU 레벨에서 이루어진다. 각각의 CU는 PU 분할 패턴에 기초하여 1개, 2개 또는 4개의 PU로 추가로 분할될 수 있다. 하나의 PU에서, 동일한 예측 프로세스가 적용되고, 관련 정보가 PU 기반으로 디코더에 전송된다. PU 분할 패턴에 기초한 예측 프로세스를 적용함으로써 잔차 블록이 획득된 후에, CU는 CU에 사용되는 코딩 트리와 유사한 다른 쿼드트리 구조에 기초하여 변환 유닛들(transform unit, TU)로 분할될 수 있다. 비디오 압축 기술들의 최근 개발에서, 코딩 블록을 분할하기 위해 쿼드트리 플러스 이진 트리(Quadtree plus binary tree, QTBT) 파티션 프레임이 사용된다. QTBT 블록 구조에서, CU는 정사각형 또는 직사각형일 수 있다.
본 명세서에서, 설명 및 이해의 용이함을 위해, 현재 코딩된 픽처에서의 코딩될 픽처 블록은 현재 블록이라고 지칭될 수 있다. 예를 들어, 인코딩에서, 현재 블록은 현재 인코딩되고 있는 블록이고; 디코딩에서, 현재 블록은 현재 디코딩되고 있는 블록이다. 참조 픽처에서, 현재 블록을 예측하기 위해 사용되는 디코딩된 픽처 블록은 참조 블록이라고 지칭된다. 즉, 기준 블록은 현재 블록에 대한 참조 신호를 제공하는 블록이다. 참조 신호는 픽처 블록에서의 픽셀 값을 표현한다. 참조 픽처에 있고 현재 블록에 대한 예측 신호를 제공하는 블록은 예측 블록이라고 지칭될 수 있다. 예측 신호는 예측 블록에서의 픽셀 값, 샘플링 값, 또는 샘플링 신호를 표현한다. 예를 들어, 복수의 참조 블록들의 트래버스 후에, 최적의 참조 블록이 발견된다. 최적의 참조 블록은 현재 블록에 대한 예측을 제공하고, 블록은 예측 블록이라고 지칭된다.
무손실(lossless) 비디오 코딩의 경우에, 원래의 비디오 픽처가 재구성될 수 있다. 구체적으로, 재구성되는 비디오 픽처는 원래의 비디오 픽처와 동일한 품질을 갖는다(저장 또는 송신 동안 송신 손실 또는 다른 데이터 손실이 발생하지 않는 것으로 가정함). 손실 비디오 코딩의 경우, 예를 들어, 양자화를 통해 추가 압축이 수행되어, 비디오 픽처를 표현하는 데 필요한 데이터량을 감소시키고, 비디오 픽처는 디코더 측에서 완전히 재구성될 수 없다. 구체적으로, 재구성되는 비디오 픽처의 품질은 원래의 비디오 픽처의 품질보다 낮거나 열악하다.
몇몇 H.261 비디오 코딩 표준들은 "손실 하이브리드 비디오 코딩(lossy hybrid video coding)"을 위한 것이다(구체적으로, 샘플 도메인에서의 공간 및 시간 예측은 변환 도메인에서 양자화를 적용하기 위해 2D 변환 코딩과 결합된다). 비디오 시퀀스의 각각의 픽처는 일반적으로 비중첩 블록들의 세트로 분할되고, 코딩은 일반적으로 블록 레벨에서 수행된다. 즉, 인코더 측에서, 비디오는 일반적으로 블록(비디오 블록) 레벨에서 처리, 즉 인코딩된다. 예를 들어, 예측 블록은 공간(인트라-픽처) 예측과 시간(인터-픽처) 예측을 통해 생성되고, 예측 블록은 현재 블록(처리되고 있거나 처리될 블록)으로부터 감산되어 잔차 블록을 획득하고, 잔차 블록은 변환 도메인에서 변환되고 양자화되어 송신(압축)될 데이터의 양을 감소시킨다. 디코더 측에서, 인코더에 대한 역 처리가 인코딩되거나 압축된 블록에서 수행되어 표현을 위해 현재 블록을 재구성한다. 또한, 인코더는 디코더의 처리 루프를 복제하여, 인코더 및 디코더가 동일한 예측(예를 들어, 인트라 예측 및 인터 예측) 및/또는 처리를 위한 재구성, 즉 후속 블록을 코딩한다.
다음은 본 발명의 실시예들에서 사용되는 시스템 아키텍처를 설명한다. 도 1a는 본 발명의 일 실시예에 따른 비디오 인코딩 및 디코딩 시스템(10)의 일례의 개략적인 블록도이다. 도 1a에 도시된 바와 같이, 비디오 인코딩 및 디코딩 시스템(10)은 소스 디바이스(12) 및 목적지 디바이스(14)를 포함할 수 있다. 소스 디바이스(12)는 인코딩된 비디오 데이터를 생성하고, 따라서 소스 디바이스(12)는 비디오 인코딩 장치라고 지칭될 수 있다. 목적지 디바이스(14)는 소스 디바이스(12)에 의해 생성된 인코딩된 비디오 데이터를 디코딩할 수 있고, 따라서 목적지 디바이스(14)는 비디오 디코딩 장치라고 지칭될 수 있다. 다양한 구현 솔루션에서, 소스 디바이스(12), 목적지 디바이스(14), 또는 소스 디바이스(12)와 목적지 디바이스(14) 둘 다는, 하나 이상의 프로세서, 및 하나 이상의 프로세서에 결합된 메모리를 포함할 수 있다. 본 명세서에서 설명된 바와 같이, 메모리는 RAM, ROM, EEPROM, 플래시 메모리, 또는 컴퓨터에 액세스가능한 명령어 또는 데이터 구조의 형태로 원하는 프로그램 코드를 저장하기 위해 사용될 수 있는 임의의 다른 매체를 포함할 수 있지만, 이에 제한되지 않는다. 소스 디바이스(12) 및 목적지 디바이스(14)는, 데스크톱 컴퓨터, 모바일 컴퓨팅 장치, 노트북(예를 들어, 랩톱) 컴퓨터, 태블릿 컴퓨터, 셋탑 상자, 소위 "스마트" 전화 등의 전화 핸드셋, 텔레비전, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 차량-탑재형 컴퓨터, 무선 통신 장치 등을 포함한, 다양한 장치들을 포함할 수 있다.
도 1a는 소스 디바이스(12)와 목적지 디바이스(14)를 별개의 디바이스로서 도시하고 있지만, 디바이스 실시예는 대안적으로, 소스 디바이스(12)와 목적지 디바이스(14) 둘 다 또는 소스 디바이스(12)의 기능들과 목적지 디바이스(14)의 기능들 둘 다, 즉, 소스 디바이스(12) 또는 대응하는 기능과 목적지 디바이스(14) 또는 대응하는 기능을 포함할 수 있다. 이러한 실시예에서, 소스 디바이스(12) 또는 대응하는 기능과 목적지 디바이스(14) 또는 대응하는 기능은, 동일한 하드웨어 및/또는 소프트웨어, 별개의 하드웨어 및/또는 소프트웨어, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다.
소스 디바이스(12)와 목적지 디바이스(14) 사이의 통신 접속은 링크(13)를 통해 구현될 수 있고, 목적지 디바이스(14)는 링크(13)를 통해 소스 디바이스(12)로부터 인코딩된 비디오 데이터를 수신할 수 있다. 링크(13)는 소스 디바이스(12)로부터 목적지 디바이스(14)로 인코딩된 비디오 데이터를 이동시킬 수 있는 하나 이상의 매체 또는 장치를 포함할 수 있다. 예에서, 링크(13)는 소스 디바이스(12)가 인코딩된 비디오 데이터를 실시간으로 목적지 디바이스(14)에 직접적으로 송신할 수 있게 하는 하나 이상의 통신 매체를 포함할 수 있다. 이 예에서, 소스 디바이스(12)는 통신 표준(예를 들어, 무선 통신 프로토콜)에 따라 인코딩된 비디오 데이터를 변조할 수 있고, 변조된 비디오 데이터를 목적지 디바이스(14)로 전송할 수 있다. 하나 이상의 통신 매체는 무선 통신 매체 및/또는 유선 통신 매체, 예를 들어, 무선 주파수(RF) 스펙트럼 또는 하나 이상의 물리적 송신 케이블을 포함할 수 있다. 하나 이상의 통신 매체는 패킷-기반 네트워크의 일부일 수 있고, 패킷 기반 네트워크는, 예를 들어, 로컬 영역 네트워크, 광역 네트워크, 또는 글로벌 네트워크(예를 들어, 인터넷)이다. 하나 이상의 통신 매체는 라우터, 스위치, 기지국, 또는 소스 디바이스(12)로부터 목적지 디바이스(14)로의 통신을 용이하게 하는 다른 디바이스를 포함할 수 있다.
소스 디바이스(12)는 인코더(20)를 포함한다. 옵션으로서, 소스 디바이스(12)는 픽처 소스(16), 픽처 전처리기(18) 및 통신 인터페이스(22)를 추가로 포함할 수 있다. 특정 구현에서, 인코더(20), 픽처 소스(16), 픽처 전처리기(18) 및 통신 인터페이스(22)는 소스 장치(12) 내의 하드웨어 컴포넌트들일 수 있거나, 소스 디바이스(12) 내의 소프트웨어 프로그램들일 수 있다. 설명들은 다음과 같이 개별적으로 제공된다:
픽처 소스(16)는, 예를 들어, 실세계 픽처를 캡처하도록 구성되는 임의의 타입의 픽처 캡처링 디바이스; 및/또는 픽처 또는 코멘트를 생성하기 위한 임의의 타입의 디바이스(스크린 콘텐츠 인코딩을 위해, 스크린 상의 일부 텍스트는 또한 인코딩될 픽처 또는 이미지의 일부로서 고려됨), 예를 들어, 컴퓨터 애니메이션 픽처를 생성하도록 구성되는 컴퓨터 그래픽 프로세서; 또는 실세계 픽처 또는 컴퓨터 애니메이션 픽처(예를 들어, 스크린 콘텐츠 또는 가상 현실(virtual reality, VR) 픽처); 및/또는 이들의 임의의 조합(예를 들어, 증강 현실(augmented reality, AR) 픽처)을 획득 및/또는 제공하도록 구성되는 임의의 타입의 디바이스를 포함할 수 있거나 또는 이들일 수 있다. 픽처 소스 (16)는 사진을 캡처하도록 구성된 카메라 또는 사진을 저장하도록 구성된 메모리일 수 있다. 픽처 소스(16)는 이전에 캡처 또는 생성된 픽처가 저장되고/되거나 픽처가 획득 또는 수신되는 임의의 타입의(내부 또는 외부) 인터페이스를 추가로 포함할 수 있다. 픽처 소스(16)가 카메라일 때, 픽처 소스(16)는 예를 들어, 로컬 카메라 또는 소스 디바이스 내에 통합된 통합 카메라일 수 있다. 픽처 소스(16)가 메모리일 때, 픽처 소스(16)는 로컬 메모리 또는 예를 들어, 소스 디바이스 내에 통합된 통합 메모리일 수 있다. 픽처 소스(16)가 인터페이스를 포함할 때, 인터페이스는 예를 들어, 외부 비디오 소스로부터 픽처를 수신하기 위한 외부 인터페이스일 수 있다. 외부 비디오 소스는, 예를 들어, 카메라, 외부 메모리, 또는 외부 픽처 생성 디바이스와 같은 외부 픽처 캡처링 디바이스이다. 외부 픽처 생성 디바이스는, 예를 들어, 외부 컴퓨터 그래픽 프로세서, 컴퓨터, 또는 서버이다. 인터페이스는 임의의 독점적 또는 표준화된 인터페이스 프로토콜에 따른 임의의 타입의 인터페이스, 예를 들어, 유선 또는 무선 인터페이스 또는 광학 인터페이스일 수 있다.
픽처는 픽처 요소들(픽처 요소)의 2차원 어레이 또는 행렬로서 간주될 수 있다. 어레이 내의 픽처 요소는 샘플로도 지칭될 수 있다. 어레이 또는 픽처의 수평 및 수직 방향(또는 축)에서의 샘플들의 수량들은 픽처의 크기 및/또는 해상도를 정의한다. 컬러의 표현을 위해, 통상적으로 3개의 컬러 성분이 사용된다. 구체적으로, 픽처는 3개의 샘플 어레이로서 표현되거나 이들을 포함할 수 있다. 예를 들어, RGB 포맷 또는 컬러 공간에서, 픽처는 대응하는 적색, 녹색, 및 청색 샘플 어레이들을 포함한다. 그러나, 비디오 코딩시, 각각의 픽셀은 일반적으로 루마/크로마 포맷 또는 컬러 공간으로 표현된다. 예를 들어, YUV 포맷의 픽처는 Y(때때로 대신에 L로 표시됨)로 표시된 루마 성분 및 U 및 V로 표시된 2개의 크로마 성분을 포함한다. 휘도(루마) 성분 Y는 밝기 또는 그레이 레벨 강도를 나타내고(예를 들어, 둘 다 그레이 스케일 픽처에서 동일함), 2개의 색차(크로마) 성분들 U 및 V는 크로마 또는 컬러 정보 성분들을 나타낸다. 대응적으로, YUV 포맷의 픽처는 루마 샘플 값들(Y)의 루마 샘플 어레이 및 크로마 값들(U 및 V)의 2개의 크로마 샘플 어레이를 포함한다. RGB 포맷의 픽처는 YUV 포맷으로 변형 또는 변환될 수 있고, 그 반대도 가능하다. 이 프로세스는 컬러 변환 또는 변형이라고도 한다. 픽처가 단색인 경우, 픽처는 루마 샘플 어레이만을 포함할 수 있다. 본 발명의 이 실시예에서, 픽처 소스(16)에 의해 픽처 프로세서에 송신되는 픽처는 원본 픽처 데이터(17)라고 또한 지칭될 수 있다.
픽처 전처리기(18)는 원본 픽처 데이터(17)를 수신하고 원본 픽처 데이터(17)에 전처리를 수행하여 전처리된 픽처(19) 또는 전처리된 픽처 데이터(19)를 획득하도록 구성된다. 예를 들어, 픽처 전처리기(18)에 의해 수행되는 전처리는 트리밍, 컬러 포맷 변환(예를 들어, RGB 포맷으로부터 YUV 포맷으로의), 컬러 보정, 또는 노이즈 감소를 포함할 수 있다.
인코더(20)(또는 비디오 인코더(20)라고 지칭됨)는 전처리된 픽처 데이터(19)를 수신하고 관련된 예측 모드(예를 들어, 본 명세서의 실시예들에서의 예측 모드)에서 전처리된 픽처 데이터(19)를 처리하여, 인코딩된 픽처 데이터(21)를 제공하도록 구성된다(인코더(20)의 구조의 세부사항들은 도 2, 도 4, 또는 도 5에 기초하여 아래에 추가로 설명된다). 일부 실시예들에서, 인코더(20)는 아래에 설명되는 각각의 실시예를 수행하여, 본 발명에서 설명되는 크로마 블록 예측 방법의 인코더-측 응용을 구현하도록 구성될 수 있다.
통신 인터페이스(22)는 인코딩된 픽처 데이터(21)를 수신하고, 인코딩된 픽처 데이터(21)를 저장 또는 직접 재구성하기 위해 링크(13)를 통해 목적지 디바이스(14) 또는 임의의 다른 디바이스(예를 들어, 메모리)에 송신하도록 구성될 수 있다. 임의의 다른 디바이스는 디코딩 또는 저장을 위해 사용되는 임의의 디바이스일 수 있다. 통신 인터페이스(22)는, 예를 들어, 적절한 포맷으로 인코딩된 픽처 데이터(21)를, 예를 들어, 링크(13)를 통한 송신을 위한 데이터 패킷으로 패키징하도록 구성될 수 있다.
목적지 디바이스(14)는 디코더(30)를 포함한다. 선택적으로, 목적지 디바이스(14)는 통신 인터페이스(28), 픽처 후처리기(32) 및 디스플레이 장치(34)를 추가로 포함할 수 있다. 설명들은 다음과 같이 개별적으로 제공된다:
통신 인터페이스(28)는 소스 디바이스(12) 또는 임의의 다른 소스로부터 인코딩된 픽처 데이터(21)를 수신하도록 구성될 수 있다. 임의의 다른 소스는, 예를 들어, 저장 디바이스이다. 저장 디바이스는, 예를 들어, 인코딩된 픽처 데이터 저장 디바이스이다. 통신 인터페이스(28)는 소스 디바이스(12)와 목적지 디바이스(14) 사이의 링크(13)를 통해 또는 임의의 타입의 네트워크를 통해 인코딩된 픽처 데이터(21)를 송신 또는 수신하도록 구성될 수 있다. 링크(13)는 예를 들어, 직접 유선 또는 무선 접속이다. 임의의 타입의 네트워크는, 예를 들어, 유선 또는 무선 네트워크 또는 이들의 임의의 조합, 또는 임의의 타입의 사설 네트워크 또는 공중 네트워크, 또는 이들의 임의의 조합이다. 통신 인터페이스(28)는, 예를 들어, 통신 인터페이스(22)를 통해 송신되는 데이터 패킷을 디패키징하여 인코딩된 픽처 데이터(21)를 획득하도록 구성될 수 있다.
통신 인터페이스(28) 및 통신 인터페이스(22) 둘 다는 단방향 통신 인터페이스들 또는 양방향 통신 인터페이스들로서 구성될 수 있고, 예를 들어, 접속을 설정하기 위해 메시지들을 송신 및 수신하고, 인코딩된 픽처 데이터 송신과 같은 통신 링크 및/또는 데이터 송신에 관련된 임의의 다른 정보를 수신확인 및 교환하도록 구성될 수 있다.
디코더(30)는, 인코딩된 픽처 데이터(21)를 수신하고, 디코딩된 픽처 데이터(31) 또는 디코딩된 픽처(31)를 제공하도록 구성된다(디코더(30)의 구조의 세부사항들은 도 3, 도 4, 또는 도 5에 기초하여 아래에 추가로 설명된다). 일부 실시예들에서, 디코더(30)는 아래에 설명되는 각각의 실시예를 수행하여, 본 발명에서 설명되는 크로마 블록 예측 방법의 디코더-측 응용을 구현하도록 구성될 수 있다.
픽처 후처리기(32)는 디코딩된 픽처 데이터(31)(재구성되는 픽처 데이터라고 또한 지칭됨)를 후처리하여 후처리된 픽처 데이터(33)를 획득하도록 구성된다. 픽처 후처리기(32)에 의해 수행되는 후처리는 컬러 포맷 변환(예를 들어, YUV 포맷으로부터 RGB 포맷으로의), 컬러 보정, 트리밍, 리샘플링 또는 임의의 다른 처리를 포함할 수 있다. 픽처 후처리기(32)는 포스트-처리된 픽처 데이터(33)를 디스플레이 디바이스(34)에 송신하도록 추가로 구성될 수 있다.
디스플레이 디바이스(34)는 예를 들어, 후처리된 픽처 데이터(33)를 수신하여 사용자 또는 뷰어에게 픽처를 디스플레이하도록 구성된다. 디스플레이 디바이스(34)는 재구성되는 픽처를 제시하도록 구성되는 임의의 타입의 디스플레이, 예를 들어, 통합된 또는 외부 디스플레이 또는 모니터일 수 있거나 이를 포함할 수 있다. 예를 들어, 디스플레이는 액정 디스플레이(liquid crystal display, LCD), 유기 발광 다이오드(organic light emitting diode, OLED) 디스플레이, 플라즈마 디스플레이, 프로젝터, 마이크로-LED 디스플레이, 실리콘 액정(liquid crystal on silicon, LCoS) 디스플레이, 디지털 광 프로세서(digital light processor, DLP), 또는 임의의 다른 타입들의 디스플레이들을 포함할 수 있다.
도 1a는 소스 디바이스(12)와 목적지 디바이스(14)를 별개의 디바이스로서 도시하고 있지만, 디바이스 실시예는 대안적으로, 소스 디바이스(12)와 목적지 디바이스(14) 둘 다 또는 소스 디바이스(12)의 기능들과 목적지 디바이스(14)의 기능들 둘 다, 즉, 소스 디바이스(12) 또는 대응하는 기능과 목적지 디바이스(14) 또는 대응하는 기능을 포함할 수 있다. 이러한 실시예에서, 소스 디바이스(12) 또는 대응하는 기능과 목적지 디바이스(14) 또는 대응하는 기능은, 동일한 하드웨어 및/또는 소프트웨어, 별개의 하드웨어 및/또는 소프트웨어, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다.
본 설명들에 기초하여, 본 기술분야의 통상의 기술자는 도 1a에 도시된 소스 디바이스(12) 및/또는 목적지 디바이스(14)의 상이한 유닛들 또는 기능성들의 존재 및 (정확한) 분할이 실제 디바이스 및 애플리케이션에 따라 변할 수 있다는 것을 명확히 알 수 있다. 소스 디바이스(12) 및 목적지 디바이스(14)는, 임의의 타입의 핸드헬드 또는 고정 디바이스, 예를 들어, 노트북 또는 랩톱 컴퓨터, 모바일 폰, 스마트폰, 태블릿 또는 태블릿 컴퓨터, 비디오 카메라, 데스크톱 컴퓨터, 셋탑 박스, 텔레비전, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게임 콘솔, (콘텐츠 서비스 서버 또는 콘텐츠 전달 서버 등의) 비디오 스트리밍 디바이스, 방송 수신기 디바이스, 또는 방송 송신기 디바이스를 포함한, 임의의 광범위한 디바이스들을 포함할 수 있고, 임의의 타입의 운영 체제를 사용하거나 사용하지 않을 수 있다.
인코더(20) 및 디코더(30) 각각은 다양한 회로들, 예를 들어, 하나 이상의 마이크로프로세서, 디지털 신호 프로세서(digital signal processor, DSP), 주문형 집적 회로(application-specific integrated circuit, ASIC), 필드-프로그래머블 게이트 어레이(field-programmable gate array, FPGA), 이산 로직, 하드웨어, 또는 이들의 임의의 조합 중 임의의 하나로서 구현될 수 있다. 본 기술들이 부분적으로 소프트웨어로 구현되는 경우, 디바이스는 소프트웨어 명령어들을 적절한 비일시적 컴퓨터 판독가능 저장 매체에 저장할 수 있고, 본 개시내용의 기술들을 수행하기 위해 하나 이상의 프로세서를 사용함으로써 하드웨어로 명령어들을 실행할 수 있다. (하드웨어, 소프트웨어, 하드웨어와 소프트웨어의 조합 등을 비롯한) 전술한 콘텐츠 중 어느 하나는 하나 이상의 프로세서로서 간주될 수 있다.
일부 경우들에서, 도 1a에 도시된 비디오 인코딩 시스템(10)은 단지 일례이고, 본 출원에서의 기술들은 인코딩 디바이스와 디코딩 디바이스 사이의 임의의 데이터 통신을 반드시 포함하지 않는 비디오 코딩 설정들(예를 들어, 비디오 인코딩 또는 비디오 디코딩)에 적용가능하다. 다른 예들에서, 데이터는 로컬 메모리로부터 검색될 수 있거나, 네트워크를 통해 스트리밍될 수 있거나, 기타 등등이다. 비디오 인코딩 디바이스는 데이터를 인코딩하고 데이터를 메모리에 저장할 수 있고, 및/또는 비디오 디코딩 디바이스는 메모리로부터 데이터를 검색하고 데이터를 디코딩할 수 있다. 일부 예들에서, 인코딩 및 디코딩은 서로 통신하지 않고 메모리에 데이터를 인코딩하고/하거나 메모리로부터 데이터를 검색하고 데이터를 디코딩하는 디바이스들에 의해 수행된다.
도 1b는 예시적인 실시예에 따른 도 2의 인코더(20) 및/또는 도 3의 디코더(30)를 포함하는 비디오 코딩 시스템(40)의 일례의 예시하는 도이다. 비디오 코딩 시스템(40)은 본 발명의 실시예들에서 다양한 기술들의 조합을 구현할 수 있다. 도시된 구현에서, 비디오 코딩 시스템(40)은 이미징 디바이스(41), 인코더(20), 디코더(30)(및/또는 처리 유닛(46)의 로직 회로(47)에 의해 구현되는 비디오 인코더/디코더), 안테나(42), 하나 이상의 프로세서(43), 하나 이상의 메모리(44), 및/또는 디스플레이 디바이스(45)를 포함할 수 있다.
도 1b에 도시된 바와 같이, 이미징 디바이스(41), 안테나(42), 처리 유닛(46), 로직 회로(47), 인코더(20), 디코더(30), 프로세서(43), 메모리(44) 및/또는 디스플레이 디바이스(45)는 서로 통신할 수 있다. 설명된 바와 같이, 비디오 코딩 시스템(40)이 인코더(20)와 디코더(30) 둘 다를 갖는 것으로 예시되어 있지만, 상이한 예들에서, 비디오 코딩 시스템(40)은 인코더(20)만을 또는 디코더(30)만을 포함할 수 있다.
일부 예들에서, 안테나(42)는 비디오 데이터의 인코딩된 비트스트림을 송신 또는 수신하도록 구성될 수 있다. 또한, 일부 예들에서, 디스플레이 디바이스(45)는 비디오 데이터를 제시하도록 구성될 수 있다. 일부 예들에서, 로직 회로(47)는 처리 유닛(46)에 의해 구현될 수 있다. 처리 유닛(46)은 주문형 집적 회로(application-specific integrated circuit, ASIC) 로직, 그래픽 프로세서, 범용 프로세서 등을 포함할 수 있다. 비디오 코딩 시스템(40)은 또한 선택적 프로세서(43)를 포함할 수 있다. 옵션의 프로세서(43)는 유사하게 주문형 집적 회로(application-specific integrated circuit, ASIC)로직, 그래픽 프로세서, 범용 프로세서 등을 포함할 수 있다. 일부 예들에서, 로직 회로(47)는 하드웨어, 예를 들어, 비디오 코딩 전용 하드웨어에 의해 구현될 수 있고, 프로세서(43)는 범용 소프트웨어, 운영 체제 등을 사용하여 구현될 수 있다. 또한, 메모리(44)는 임의의 타입의 메모리, 예를 들어, 휘발성 메모리(예를 들어, 정적 랜덤 액세스 메모리(Static Random Access Memory, SRAM) 또는 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM)) 또는 비휘발성 메모리(예를 들어, 플래시 메모리)일 수 있다. 비제한적인 예에서, 메모리(44)는 캐시 메모리에 의해 구현될 수 있다. 일부 예들에서, 로직 회로(47)는(예를 들어, 픽처 버퍼를 구현하기 위해) 메모리(44)에 액세스할 수 있다. 다른 예들에서, 로직 회로(47) 및/또는 처리 유닛(46)은 픽처 버퍼 등을 구현하기 위한 메모리(예를 들어, 캐시)를 포함할 수 있다.
일부 예들에서, 로직 회로에 의해 구현되는 인코더(20)는 픽처 버퍼(예를 들어, 처리 유닛(46) 또는 메모리(44)에 의해 구현됨) 및 그래픽 처리 유닛(예를 들어, 처리 유닛(46)에 의해 구현됨)을 포함할 수 있다. 그래픽 처리 유닛은 픽처 버퍼에 통신가능하게 결합될 수 있다. 그래픽 처리 유닛은 도 2를 참조하여 설명되는 다양한 모듈들 및/또는 본 명세서에서 설명되는 임의의 다른 인코더 시스템 또는 서브시스템을 구현하기 위해 로직 회로(47)에 의해 구현되는 인코더(20)를 포함할 수 있다. 로직 회로는 본 명세서에 설명된 다양한 동작들을 수행하도록 구성될 수 있다.
일부 예들에서, 디코더(30)는 도 3의 디코더(30)를 참조하여 설명되는 다양한 모듈들 및/또는 본 명세서에서 설명되는 임의의 다른 디코더 시스템 또는 서브시스템을 구현하기 위해 유사한 방식으로 로직 회로(47)에 의해 구현될 수 있다. 일부 예들에서, 로직 회로에 의해 구현되는 디코더(30)는 픽처 버퍼(처리 유닛(46) 또는 메모리(44)에 의해 구현됨) 및 그래픽 처리 유닛(예를 들어, 처리 유닛(46)에 의해 구현됨)을 포함할 수 있다. 그래픽 처리 유닛은 픽처 버퍼에 통신가능하게 결합될 수 있다. 그래픽 처리 유닛은 도 3을 참조하여 설명되는 다양한 모듈들 및/또는 본 명세서에서 설명되는 임의의 다른 디코더 시스템 또는 서브시스템을 구현하기 위해 로직 회로(47)에 의해 구현되는 디코더(30)를 포함할 수 있다.
일부 예들에서, 안테나(42)는 비디오 데이터의 인코딩된 비트스트림을 수신하도록 구성될 수 있다. 설명된 바와 같이, 인코딩된 비트스트림은 본 명세서에서 설명된 비디오 프레임 인코딩에 관련된 데이터, 표시자, 인덱스 값, 모드 선택 데이터 등, 예를 들어, 코딩 분할(coding partitioning)에 관련된 데이터(예를 들어, 변환 계수 또는 양자화된 변환 계수, (설명된) 선택적 표시자, 및/또는 코딩 분할을 정의하는 데이터)를 포함할 수 있다. 비디오 코딩 시스템(40)은 안테나(42)에 결합되고 인코딩된 비트스트림을 디코딩하도록 구성되는 디코더(30)를 추가로 포함할 수 있다. 디스플레이 디바이스(45)는 비디오 프레임을 제시하도록 구성된다.
본 발명의 이 실시예에서, 인코더(20)를 참조하여 설명된 예와 관련하여, 디코더(30)는 역 프로세스를 수행하도록 구성될 수 있다는 것을 이해해야 한다. 신택스 요소를 시그널링하는 것과 관련하여, 디코더(30)는 이러한 신택스 요소를 수신 및 파싱하고 대응적으로 관련 비디오 데이터를 디코딩하도록 구성될 수 있다. 일부 예들에서, 인코더(20)는 신택스 요소를 인코딩된 비디오 비트스트림으로 엔트로피 인코딩할 수 있다. 이러한 예들에서, 디코더(30)는 신택스 요소를 파싱하고 대응적으로 관련 비디오 데이터를 디코딩할 수 있다.
본 발명의 실시예들에서 설명된 코딩 방법은 주로 인터 예측 프로세스에서 사용되고, 프로세스는 인코더(20) 및 디코더(30) 둘 다에 존재한다는 점에 유의해야 한다. 본 발명의 이 실시예에서의 인코더(20) 및 디코더(30)는, 예를 들어, H.263, H.264, HEVC, MPEG-2, MPEG-4, VP8, 또는 VP9와 같은 비디오 표준 프로토콜에 대응하는, 또는 (H.266과 같은) 차세대 비디오 표준 프로토콜에 대응하는 인코더/디코더일 수 있다.
도 2는 본 발명의 실시예들을 구현하기 위한 인코더(20)의 일례의 개략적인/개념적인 블록도이다. 도 2의 예에서, 인코더(20)는 잔차 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 역양자화 유닛(210), 및 역변환 처리 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터 유닛(220), 디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230), 예측 처리 유닛(260), 및 엔트로피 인코딩 유닛(270)을 포함한다. 예측 처리 유닛(260)은 인터 예측 유닛(244), 인트라 예측 유닛(254), 및 모드 선택 유닛(262)을 포함할 수 있다. 인터 예측 유닛(244)은 모션 추정 유닛 및 모션 보상 유닛(도면에 도시되지 않음)을 포함할 수 있다. 도 2에 도시된 인코더(20)는 하이브리드 비디오 인코더 또는 하이브리드 비디오 코덱에 기초하는 비디오 인코더라고도 할 수 있다.
예를 들어, 잔차 계산 유닛(204), 변환 처리 유닛(206), 양자화 유닛(208), 예측 처리 유닛(260), 및 엔트로피 인코딩 유닛(270)은 인코더(20)의 순방향 신호 경로를 형성하는 반면, 예를 들어, 역양자화 유닛(210), 역변환 처리 유닛(212), 재구성 유닛(214), 버퍼(216), 루프 필터(220), 디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230), 및 예측 처리 유닛(260)은 인코더의 역방향 신호 경로를 형성한다. 인코더의 역방향 신호 경로는 디코더(도 3의 디코더(30) 참조)의 신호 경로에 대응한다.
인코더(20)는, 예를 들어, 입력(202)을 통해, 픽처(201) 또는 픽처(201)의 픽처 블록(203), 예를 들어, 비디오를 형성하는 픽처들의 시퀀스에서의 픽처 또는 비디오 시퀀스를 수신한다. 픽처 블록(203)은 현재 픽처 블록 또는 인코딩될 픽처 블록이라고 또한 지칭될 수 있고, 픽처(201)는(특히 비디오 코딩에서, 현재 픽처를 다른 픽처들, 예를 들어, 동일한 비디오 시퀀스에서의 이전에 인코딩된 및/또는 디코딩된 픽처들, 즉, 현재 픽처를 또한 포함하는 비디오 시퀀스와 구별하기 위해) 현재 픽처 또는 인코딩될 픽처라고 지칭될 수 있다.
일 실시예에서, 인코더(20)는 픽처(201)를 픽처 블록들(203)과 같은 복수의 블록으로 분할하도록 구성되는 분할 유닛(도 2에 도시되지 않음)을 포함할 수 있다. 픽처(201)는 보통 복수의 비중첩 블록으로 분할된다. 분할 유닛은 비디오 시퀀스에서의 모든 픽처들에 대해 동일한 블록 크기 및 블록 크기를 정의하는 대응하는 그리드를 사용하거나, 픽처들 또는 픽처들의 서브세트들 또는 그룹들 사이에서 블록 크기를 변경하고, 각각의 픽처를 대응하는 블록들로 분할하도록 구성될 수 있다.
예에서, 인코더(20)의 예측 처리 유닛(260)은 전술한 분할 기술들의 임의의 조합을 수행하도록 구성될 수 있다.
픽처(201)와 마찬가지로, 픽처 블록(203)은 또한 샘플 값들을 갖는 샘플들의 2차원 어레이 또는 매트릭스이거나 그로서 또한 고려될 수 있지만, 픽처 블록(203)의 크기는 픽처(201)의 크기보다 작다. 즉, 블록(203)은, 예를 들어, 하나의 샘플 어레이(예를 들어, 단색 픽처(201)의 경우에는 루마 어레이), 3개의 샘플 어레이(예를 들어, 컬러 픽처의 경우에는 하나의 루마 어레이 및 2개의 크로마 어레이), 또는 적용된 컬러 포맷에 따라 기타 임의의 수량 및/또는 타입의 어레이를 포함할 수 있다. 픽처 블록(203)의 수평 및 수직 방향들(또는 축들)에서의 샘플들의 수량들은 픽처 블록(203)의 크기를 정의한다.
도 2에 도시된 인코더(20)는 픽처(201)를 블록별로 인코딩하도록, 예를 들어, 각각의 픽처 블록(203)에 대해 인코딩 및 예측을 수행하도록 구성된다.
잔차 계산 유닛(204)은 픽처 블록(203) 및 예측 블록(265)에 기초하여 잔차 블록(205)을 계산하도록(예측 블록(265)에 관한 다른 세부사항들은 아래에 제공됨), 예를 들어, 샘플별로(픽셀별로) 픽처 블록(203)의 샘플 값들로부터 예측 블록(265)의 샘플 값들을 감산함으로써 샘플 도메인에서의 잔차 블록(205)을 획득하도록 구성된다.
변환 처리 유닛(206)은 변환, 예를 들어, 이산 코사인 변환(discrete cosine transform, DCT) 또는 이산 사인 변환(discrete sine transform, DST)을 잔여 블록(205)의 샘플 값들에 적용하여, 변환 도메인에서 변환 계수들(207)을 획득하도록 구성된다. 변환 계수(207)는 변환 잔차 계수라고도 지칭될 수 있고 변환 도메인에서 잔차 블록(205)을 나타낸다.
변환 처리 유닛(206)은, HEVC/H.265에 대해 명시된 변환들과 같은, DCT/DST의 정수 근사들을 적용하도록 구성될 수 있다. 직교 DCT 변환과 비교하여, 이러한 정수 근사는 통상적으로 인자에 의해 스케일링된다. 순방향 및 역변환을 사용하여 처리되는 잔차 블록의 표준(norm) 보존하기 위해, 추가적인 스케일링 인자를 적용하는 것은 변환 프로세스의 일부이다. 스케일링 인자는 일반적으로 일부 제약들에 기초하여 선택된다. 예를 들어, 스케일링 인자는 시프트 동작에 대한 2의 거듭제곱, 변환 계수의 비트 심도, 또는 정확도와 구현 비용 사이의 트레이드오프이다. 예를 들어, 특정 스케일링 인자는, 예를 들어, 디코더 측(30)의 역변환 처리 유닛(212)에 의해 역변환(및, 예를 들어, 인코더 측(20)의 역변환 처리 유닛(212)에 의해 대응하는 역변환)에 대해 지정되고, 대응적으로, 인코더 측(20)의 변환 처리 유닛(206)에 의해 대응하는 스케일링 인자가 순방향 변환에 대해 지정될 수 있다.
양자화 유닛(208)은, 예를 들어, 스칼라 양자화 또는 벡터 양자화를 적용하는 것에 의해, 변환 계수들(207)을 양자화하여 양자화된 변환 계수들(209)을 획득하도록 구성된다. 양자화된 변환 계수(209)는 양자화된 잔차 계수(209)라고도 지칭될 수 있다. 양자화 프로세스는 일부 또는 모든 변환 계수들(207)에 관련된 비트 심도를 감소시킬 수 있다. 예를 들어, n-비트 변환 계수는 양자화 동안 m-비트 변환 계수로 라운딩 다운될 수 있고, 여기서 n은 m보다 크다. 양자화 정도는 양자화 파라미터(quantization parameter, QP)를 조정함으로써 수정될 수 있다. 예를 들어, 스칼라 양자화의 경우, 더 미세하거나 더 거친 양자화를 달성하기 위해 상이한 스케일들이 적용될 수 있다. 더 작은 양자화 단계는 더 미세한 양자화에 대응하고, 더 큰 양자화 단계는 더 거친 양자화에 대응한다. 적용가능한 양자화 단계는 양자화 파라미터(quantization parameter, QP)에 의해 표시될 수 있다. 예를 들어, 양자화 파라미터는 적용가능한 양자화 단계들의 미리 정의된 세트에 대한 인덱스일 수 있다. 예를 들어, 더 작은 양자화 파라미터는 더 미세한 양자화(더 작은 양자화 단계)에 대응할 수 있고, 더 큰 양자화 파라미터는 더 거친 양자화(더 큰 양자화 단계)에 대응할 수 있으며, 그 반대도 가능하다. 양자화는 양자화 단계에 의한 나눗셈 및 역양자화 유닛(210)에 의해 수행되는 대응하는 양자화 또는 역양자화를 포함할 수 있거나, 양자화 단계에 의한 곱셈을 포함할 수 있다. HEVC와 같은 일부 표준들에 따른 실시예들에서, 양자화 파라미터를 사용하여 양자화 단계를 결정할 수 있다. 일반적으로, 양자화 단계는 나눗셈을 포함하는 방정식의 고정 소수점 근사를 사용하여 양자화 파라미터에 기초하여 계산될 수 있다. 잔차 블록의 표준을 복원하기 위해 양자화 및 탈양자화를 위한 추가적인 스케일링 인자가 도입될 수 있고, 여기서 잔차 블록의 표준은 양자화 단계 및 양자화 파라미터에 대한 방정식의 고정 소수점 근사에서 사용되는 스케일 때문에 수정될 수 있다. 예시적인 구현에서, 역변환 및 탈양자화의 스케일들이 결합될 수 있다. 대안적으로, 맞춤화된 양자화 테이블이 사용되어, 예를 들어, 비트스트림에서 인코더로부터 디코더로 시그널링될 수 있다. 양자화는 손실 동작이고, 손실은 양자화 단계가 증가함에 따라 증가한다.
역 양자화 유닛(210)은 양자화 유닛(208)의 역양자화를 양자화 계수에 적용하여 탈양자화된 계수(211)를 획득하도록, 예를 들어, 양자화 유닛(208)과 동일한 양자화 단계에 기초하여 또는 이를 사용하여, 양자화 유닛(208)에 의해 적용되는 양자화 스킴의 역을 적용하도록 구성된다. 탈양자화된 계수(211)는 탈양자화된 잔차 계수(211)로도 지칭될 수도 있고, 변환 계수(207)에 대응하지만, 탈양자화된 계수(211)는 양자화에 의해 유발되는 손실로 인해 일반적으로 변환 계수와 상이하다.
역변환 처리 유닛(212)은 변환 처리 유닛(206)에 의해 적용되는 변환의 역변환, 예를 들어, 역 이산 코사인 변환(discrete cosine transform, DCT) 또는 역 이산 사인 변환(discrete sine transform, DST)을 적용하여, 샘플 도메인에서 역변환 블록(213)을 획득하도록 구성된다. 역변환 블록(213)은 역변환 탈양자화된 블록(213) 또는 역변환 잔차 블록(213)이라고도 지칭될 수 있다.
재구성 유닛(214)(예를 들어, 합산기(214))은 역변환 블록(213)(즉, 재구성된 잔차 블록(213))을 예측 블록(265)에 추가하여, 예를 들어, 재구성된 잔차 블록(213)의 샘플 값들과 예측 블록(265)의 샘플 값들을 가산함으로써, 샘플 도메인에서 재구성된 블록(215)을 획득하도록 구성된다.
선택적으로, 예를 들어, 라인 버퍼(216)의 버퍼 유닛(216)(또는 간단히 "버퍼"(216)라고 지칭됨)은, 예를 들어, 인트라 예측을 위해, 재구성된 블록(215) 및 대응하는 샘플 값을 버퍼링 또는 저장하도록 구성된다. 다른 실시예들에서, 인코더는 임의의 타입의 추정 및/또는 예측, 예를 들어, 인트라 예측을 위해, 필터링되지 않은 재구성되는 블록 및/또는 버퍼 유닛(216)에 저장되는 대응하는 샘플 값을 사용하도록 구성될 수 있다.
예를 들어, 일 실시예에서, 인코더(20)는 버퍼 유닛(216)이 인트라 예측(254)을 위해 사용될 뿐만 아니라 루프 필터 유닛(220)을 위해 사용되는 재구성되는 블록(215)을 저장하도록 구성되고/되거나, 예를 들어, 버퍼 유닛(216) 및 디코딩된 픽처 버퍼 유닛(230)이 하나의 버퍼를 형성하도록 구성될 수 있다. 다른 실시예들에서, 필터링된 블록(221) 및/또는 디코딩된 픽처 버퍼(230)로부터의 블록 또는 샘플(블록 또는 샘플은 도 2에 도시되지 않음)은 인트라 예측 유닛(254)에 대한 입력 또는 기초로서 사용된다. 디코딩된 픽처 버퍼(230)는 라이브러리 픽처를 저장하도록 추가로 구성된다. 라이브러리는 아래에서 상세히 설명될 것이며, 따라서 세부 사항들은 본 명세서에서 설명되지 않는다.
루프 필터 유닛(220)(또는 간단히 "루프 필터"(220)라고 지칭됨)은 재구성된 블록(215)을 필터링하여 필터링된 블록(221)을 획득하여, 픽셀 변환을 원활하게 하거나 비디오 품질을 개선하도록 구성된다. 루프 필터 유닛(220)은 하나 이상의 루프 필터, 예를 들어, 디블록킹 필터, 샘플-적응 오프셋(sample-adaptive offset, SAO) 필터, 또는 다른 필터, 예를 들어, 양방향 필터, 적응 루프 필터(adaptive loop filter, ALF), 샤프닝 또는 평활화 필터, 또는 협업 필터를 나타내도록 의도된다. 루프 필터 유닛(220)이 도 2에서 인-루프 필터로서 도시되어 있지만, 다른 구성들에서, 루프 필터 유닛(220)은 포스트-루프 필터로서 구현될 수 있다. 필터링된 블록(221)은 필터링된 재구성된 블록(221)이라고도 지칭될 수 있다. 디코딩된 픽처 버퍼(230)는 루프 필터 유닛(220)이 재구성된 인코딩된 블록에 대해 필터링 동작을 수행한 후에 재구성된 인코딩된 블록을 저장할 수 있다.
실시예에서, 인코더(20)(대응적으로, 루프 필터 유닛(220))는, 예를 들어, 직접적으로 또는 엔트로피 인코딩 유닛(270) 또는 임의의 다른 엔트로피 인코딩 유닛에 의해 수행되는 엔트로피 인코딩 후에, 루프 필터 파라미터(예를 들어, 샘플 적응적 오프셋 정보)를 출력하도록 구성될 수 있어서, 예를 들어, 디코더(30)는 디코딩을 위해 동일한 루프 필터 파라미터를 수신하고 적용할 수 있다.
디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230)는 인코더(20)에 의해 비디오 데이터를 인코딩하기 위해 사용하기 위한 참조 픽처 데이터를 저장하는 참조 픽처 메모리일 수 있다. DPB(230)는 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM)(동기 DRAM(synchronous DRAM, SDRAM), 자기저항 RAM(magnetoresistive RAM, MRAM), 및 저항 RAM(resistive RAM, RRAM)을 포함함), 또는 다른 타입의 메모리 디바이스와 같은 다양한 메모리 디바이스들 중 어느 하나에 의해 형성될 수 있다. DPB(230) 및 버퍼(216)는 동일한 메모리 디바이스 또는 별개의 메모리 디바이스들에 의해 제공될 수 있다. 예에서, 디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230)는 필터링된 블록(221)을 저장하도록 구성된다. 디코딩된 픽처 버퍼(230)는 동일한 현재 픽처의 또는 상이한 픽처, 예를 들어, 이전에 재구성된 픽처의 다른 이전에 필터링된 블록, 예를 들어, 이전에 재구성되고 필터링된 블록(221)을 저장하도록 추가로 구성될 수 있고, 예를 들어, 인터 예측을 위해, 완전한 이전에 재구성된, 즉, 디코딩된 픽처(및 대응하는 참조 블록 및 샘플) 및/또는 부분적으로 재구성된 현재 픽처(및 대응하는 참조 블록 및 샘플)를 제공할 수 있다. 예에서, 재구성된 블록(215)이 인-루프 필터링 없이 재구성되면, 디코딩된 픽처 버퍼(decoded picture buffer, DPB)(230)는 재구성된 블록(215)을 저장하도록 구성된다.
블록 예측 처리 유닛(260)이라고도지칭되는 예측 처리 유닛(260)은, 픽처 블록(203)(현재 픽처(201)의 현재 픽처 블록(203)) 및 재구성된 픽처 데이터, 예를 들어, 버퍼(216)로부터의 동일한(현재) 픽처의 참조 샘플들 및/또는 디코딩된 픽처 버퍼(230)로부터의 하나 이상의 이전에 디코딩된 픽처의 참조 픽처 데이터(231)를 수신 또는 획득하도록, 그리고 예측을 위해 이러한 데이터를 처리하도록, 즉, 인터 예측 블록(245) 또는 인트라 예측 블록(255)일 수 있는 예측 블록(265)을 제공하도록 구성된다.
모드 선택 유닛(262)은 예측 블록(265)으로서 예측 모드(예를 들어, 인트라 또는 인터 예측 모드) 및/또는 대응하는 예측 블록(245 또는 255)을 선택하여, 잔차 블록(205)의 계산 및 재구성된 블록(215)의 재구성을 위해 구성될 수 있다.
실시예에서, 모드 선택 유닛(262)은(예를 들어, 예측 처리 유닛(260)에 의해 지원되는 예측 모드들로부터) 예측 모드를 선택하도록 구성될 수 있고, 예측 모드는 최상의 매칭 또는 최소 잔차를 제공하거나(최소 잔차는 송신 또는 저장을 위한 더 나은 압축을 의미함), 또는 최소 시그널링 오버헤드들을 제공하거나(최소 시그널링 오버헤드들은 송신 또는 저장을 위한 더 나은 압축을 의미함), 또는 둘 다를 고려하거나 밸런싱한다. 모드 선택적 유닛(262)은 레이트-왜곡 최적화(rate-distortion optimization, RDO)에 기초하여 예측 모드를 결정하도록, 즉, 최소 레이트 왜곡을 제공하는 예측 모드를 선택하거나 또는 관련된 레이트 왜곡이 적어도 예측 모드 선택 기준을 만족시키는 예측 모드를 선택하도록 구성될 수 있다.
다음은 인코더(20)의 예에서 (예를 들어, 예측 처리 유닛(260)에 의해) 수행되는 예측 처리 및 (예를 들어, 모드 선택 유닛(262)에 의해) 수행되는 모드 선택을 상세히 설명한다.
전술된 바와 같이, 인코더(20)는 (미리-결정된) 예측 모드들의 세트로부터 최상의 또는 최적의 예측 모드를 결정하거나 선택하도록 구성된다. 예측 모드들의 세트는, 예를 들어, 인트라 예측 모드 및/또는 인터 예측 모드를 포함할 수 있다.
인트라 예측 모드들의 세트는 35개의 상이한 인트라 예측 모드, 예를 들어, DC(또는 평균) 모드 및 평면 모드와 같은 비-방향성 모드들, 또는 H.265에 정의된 것들과 같은 방향성 모드들을 포함할 수 있거나, 67개의 상이한 인트라 예측 모드, 예를 들어, DC(또는 평균) 모드 및 평면 모드와 같은 비-방향성 모드들, 또는 개발 중인 H.266에 정의된 것들과 같은 방향성 모드들을 포함할 수 있다.
가능한 구현에서, 인터 예측 모드들의 세트는 이용가능한 참조 픽처들(즉, 예를 들어, 전술한 바와 같이, DBP(230)에 저장되는 적어도 일부 디코딩된 픽처들) 및 다른 인터 예측 파라미터들에 의존하고, 예를 들어, 전체 참조 픽처 또는 참조 픽처의 일부만이 사용되는지, 예를 들어, 현재 블록의 영역 주위의 검색 윈도우 영역이 최적의 매칭된 참조 블록을 검색하기 위해 사용되는지에 의존하고, 및/또는 예를 들어, 1/2 픽셀 및/또는 1/4 픽셀 보간과 같은 픽셀 보간이 적용되는지에 의존한다. 인터 예측 모드들의 세트는, 예를 들어, 고급 모션 벡터 예측(Advanced Motion Vector Prediction, AMVP) 모드 및 병합(merge) 모드를 포함할 수 있다. 특정 구현에서, 인터 예측 모드들의 세트는 본 발명의 실시예들에서 개선된 제어 포인트 기반 AMVP 모드 및 개선된 제어 포인트 기반 병합 모드를 포함할 수 있다. 예에서, 인트라 예측 유닛(254)은 이하에 설명된 인터 예측 기술들의 임의의 조합을 수행하도록 구성될 수 있다.
전술한 예측 모드들에 더하여, 스킵 모드 및/또는 직접 모드가 또한 본 발명의 실시예들에서 사용될 수 있다.
예측 처리 유닛(260)은, 예를 들어, 쿼드트리(quad-tree, QT) 분할, 이진 트리(binary-tree, BT) 분할, 트리플 트리(triple-tree, TT) 분할, 또는 이들의 임의의 조합을 반복적으로 사용함으로써 픽처 블록(203)을 더 작은 블록 분할들 또는 서브블록들로 분할하고, 예를 들어, 블록 분할들 또는 서브블록들 각각에 대한 예측을 수행하도록 추가로 구성될 수 있다. 모드 선택은 분할된 픽처 블록(203)의 트리 구조의 선택적 및 블록 분할들 또는 서브블록들 각각에 대해 사용되는 예측 모드의 선택을 포함한다.
인터 예측 유닛(244)은 모션 추정(motion estimation, ME) 유닛(도 2에 도시되지 않음) 및 모션 보상(motion compensation, MC) 유닛(도 2에 도시되지 않음)을 포함할 수 있다. 모션 추정 유닛은, 모션 추정을 위해, 픽처 블록(203)(현재 픽처(201)의 현재 픽처 블록(203)) 및 디코딩된 픽처(231), 또는 적어도 하나 이상의 이전에 재구성된 블록, 예를 들어, 다른/상이한 이전에 디코딩된 픽처들(231)의 하나 이상의 재구성된 블록을 수신 또는 획득하도록 구성된다. 예를 들어, 비디오 시퀀스는 현재 픽처 및 이전에 디코딩된 픽처(231)를 포함할 수 있거나, 또는 즉, 현재 픽처 및 이전에 디코딩된 픽처(231)는 비디오 시퀀스를 형성하는 픽처들의 일부일 수 있거나 또는 그 시퀀스를 형성할 수 있다.
예를 들어, 인코더(20)는 복수의 다른 픽처에서 동일한 픽처 또는 상이한 픽처들의 복수의 참조 블록으로부터 참조 블록을 선택하고, 모션 추정 유닛(도 2에 도시되지 않음)에 대해, 참조 픽처를 제공하고 및/또는 참조 블록의 위치(좌표들 X 및 Y)와 현재 블록의 위치 사이의 오프셋(공간 오프셋)을 인터 예측 파라미터로서 제공하도록 구성될 수 있다. 이 오프셋은 모션 벡터(motion vector, MV)라고도 지칭된다.
모션 보상 유닛은 인터 예측 파라미터를 획득하고, 인터 예측 파라미터에 기초하여 또는 이를 사용하여 인터 예측을 수행하여, 인터 예측 블록(245)을 획득하도록 구성된다. 모션 보상 유닛(도 2에 도시되지 않음)에 의해 수행되는 모션 보상은 모션 추정을 통해 결정된 모션/블록 벡터에 기초하여 예측 블록을 추출하거나 생성하는 것을 포함할 수 있다(보간은 서브-픽셀 정밀도에 대해 수행될 수 있음). 보간 필터링은 알려진 픽셀 샘플로부터 추가적인 픽셀 샘플을 생성할 수 있다. 이것은 픽처 블록을 인코딩하기 위해 사용될 수 있는 후보 예측 블록들의 수량을 잠재적으로 증가시킨다. 현재 픽처 블록의 PU에 대한 모션 벡터를 수신하면, 모션 보상 유닛은 모션 벡터가 가리키는 예측 블록을 하나의 참조 픽처 리스트에 위치시킬 수 있다. 모션 보상 유닛은 디코더(30)에 의해 비디오 슬라이스에서의 픽처 블록을 디코딩하기 위해, 블록 및 비디오 슬라이스와 연관된 신택스 요소들을 추가로 생성할 수 있다.
구체적으로, 인터 예측 유닛(244)은 신택스 요소들을 엔트로피 인코딩 유닛(270)에 송신할 수 있다. 신택스 요소들은 (복수의 인터 예측 모드의 순회(traversal) 이후 현재 블록의 예측에 사용되는 인터 예측 모드의 선택의 표시 정보와 같은) 인터 예측 파라미터를 포함한다. 가능한 응용 시나리오에서, 하나의 인터 예측 모드만이 존재하는 경우, 인터 예측 파라미터는 대안적으로 신택스 요소들에서 운반되지 않을 수 있다. 이 경우에, 디코더 측(30)은 디폴트 예측 모드에서 디코딩을 직접적으로 수행할 수 있다. 인터 예측 유닛(244)은 인터 예측 기술들의 임의의 조합을 수행하도록 구성될 수 있다는 점이 이해될 수 있다.
인트라 예측 유닛(254)은 인트라 추정을 위해 동일한 픽처의 픽처 블록(203)(현재 픽처 블록) 및 하나 이상의 이전에 재구성된 블록, 예를 들어, 재구성된 이웃 블록을 획득, 예를 들어, 수신하도록 구성된다. 예를 들어, 인코더(20)는 복수의 (미리 결정된) 인트라 예측 모드로부터 인트라 예측 모드를 선택하도록 구성될 수 있다.
일 실시예에서, 인코더(20)는, 예를 들어, 최소 잔차(예를 들어, 현재 픽처 블록(203)과 가장 유사한 예측 블록(255)을 제공하는 인트라 예측 모드) 또는 최소 레이트 왜곡에 기초하여, 최적화 기준에 따라 인트라 예측 모드를 선택하도록 구성될 수 있다.
인트라 예측 유닛(254)은, 예를 들어, 선택된 인트라 예측 모드에서의 인트라 예측 파라미터에 기초하여 인트라 예측 블록(255)을 결정하도록 추가로 구성된다. 어쨌든, 블록에 대한 인트라 예측 모드를 선택한 후에, 인트라 예측 유닛(254)은 또한, 엔트로피 인코딩 유닛(270)에 대해, 인트라 예측 파라미터, 즉, 블록에 대한 선택된 인트라 예측 모드를 나타내는 정보를 제공하도록 추가로 구성된다. 예에서, 인트라 예측 유닛(254)은 다음의 인트라 예측 기술들의 임의의 조합을 수행하도록 구성될 수 있다.
구체적으로, 인트라 예측 유닛(254)은 신택스 요소들을 엔트로피 인코딩 유닛(270)에 송신할 수 있다. 신택스 요소들은 (복수의 인트라 예측 모드의 순회 이후 현재 블록의 예측에 사용되는 인트라 예측 모드의 선택의 표시 정보와 같은) 인트라 예측 파라미터를 포함한다. 가능한 응용 시나리오에서, 하나의 인트라 예측 모드만이 존재하는 경우, 인트라 예측 파라미터는 대안적으로 신택스 요소들에서 운반되지 않을 수 있다. 이 경우에, 디코더 측(30)은 디폴트 예측 모드에서 디코딩을 직접적으로 수행할 수 있다.
엔트로피 인코딩 유닛(270)은, 양자화된 잔차 계수(209), 인터 예측 파라미터, 인트라 예측 파라미터, 및/또는 루프 필터 파라미터 중 하나 또는 전부에 대해 엔트로피 인코딩 알고리즘 또는 스킴(예를 들어, 가변 길이 코딩(variable length coding, VLC) 스킴, 컨텍스트-적응 VLC(context-adaptive VLC, CAVLC) 방식, 산술 코딩 방식, 컨텍스트-적응 바이너리 산술 코딩(context-adaptive binary arithmetic coding, CABAC) 방식, 신택스 기반 컨텍스트-적응 바이너리 산술 코딩(syntax-based context-adaptive binary arithmetic coding, SBAC) 스킴, 확률 간격 분할 엔트로피(probability interval partitioning entropy, PIPE) 코딩 스킴, 또는 다른 엔트로피 코딩 방법론 또는 기술)을 적용(또는 스킵 적용)하여, 예를 들어, 인코딩된 비트스트림(21)의 형태로, 출력(272)을 통해 출력될 수 있는 인코딩된 픽처 데이터(21)를 획득하도록 구성된다. 인코딩된 비트스트림은 비디오 디코더(30)에 송신되거나, 비디오 디코더(30)에 의한 이후의 송신 또는 검색을 위해 보관될 수 있다. 엔트로피 인코딩 유닛(270)은 인코딩되고 있는 현재 비디오 슬라이스에 대한 또 하나의 신택스 요소를 엔트로피 인코딩하도록 추가로 구성될 수 있다.
비트스트림 캡슐화 유닛(280)은: 현재 처리될 픽처 및 현재 처리될 픽처에 의해 참조되는 라이브러리 픽처가 동일한 픽처라고 결정할 때, 인코딩 정보(예를 들어, 제1 식별자, 제2 식별자, 및 제3 식별자)를 비트스트림(메인 비트스트림/시퀀스 스트림)으로 인코딩하고- 인코딩 정보는 현재 처리될 픽처를 디코딩하는 결정 동안 라이브러리 픽처를 참조하는 방법에 관련됨 -, 출력(272)을 통해 현재 픽처를 직접적으로 출력하도록 구성되거나; 또는 현재 처리될 픽처의 참조 픽처와 현재 처리될 픽처가 상이한 픽처들이라고 결정할 때, 현재 픽처를 잔차 계산 유닛(204)에 출력하도록 구성된다.
비디오 인코더(20)의 다른 구조적 변형들이 비디오 스트림을 인코딩하기 위해 사용될 수 있다. 예를 들어, 비변환 기반 인코더(20)는 일부 블록들 또는 프레임들에 대해 변환 처리 유닛(206) 없이 잔차 신호를 직접 양자화할 수 있다. 다른 구현에서, 인코더(20)는 단일 유닛으로 결합되는 양자화 유닛(208) 및 역양자화 유닛(210)을 가질 수 있다.
구체적으로, 본 발명의 이 실시예에서, 인코더(20)는 이하의 실시예들에서 설명되는 코딩 방법을 구현하도록 구성될 수 있다.
비디오 스트림을 인코딩하기 위해 비디오 인코더(20)의 다른 구조적 변형들이 사용될 수 있다는 점이 이해되어야 한다. 예를 들어, 일부 픽처 블록들 또는 픽처 프레임들에 대해, 비디오 인코더(20)는 잔차 신호를 직접적으로 양자화할 수 있고, 변환 처리 유닛(206)에 의한 처리는 필요하지 않고, 대응적으로, 역변환 처리 유닛(212)에 의한 처리도 필요하지 않다. 대안적으로, 일부 픽처 블록들 또는 픽처 프레임들에 대해, 비디오 인코더(20)는 잔차 데이터를 생성하지 않고, 대응적으로, 변환 처리 유닛(206), 양자화 유닛(208), 역양자화 유닛(210), 및 역변환 처리 유닛(212)에 의한 처리가 필요하지 않다. 대안적으로, 비디오 인코더(20)는 재구성된 픽처 블록을 참조 블록으로서 직접적으로 저장할 수 있고, 필터(220)에 의한 처리가 필요하지 않다. 대안적으로, 비디오 인코더(20)의 양자화 유닛(208) 및 역양자화 유닛(210)이 결합될 수 있다. 루프 필터(220)는 선택적이다. 또한, 무손실 압축 코딩의 경우에, 변환 처리 유닛(206), 양자화 유닛(208), 역양자화 유닛(210), 및 역변환 처리 유닛(212)도 선택사항이다. 상이한 응용 시나리오들에서, 인터 예측 유닛(244) 및 인트라 예측 유닛(254)은 선택적으로 인에이블될 수 있다는 것을 이해해야 한다.
도 3은 본 발명의 실시예들을 구현하기 위한 디코더(30)의 일례의 개략적인/개념적인 블록도이다. 비디오 디코더(30)는, 예를 들어, 인코더(20)에 의해 인코딩되는 인코딩된 픽처 데이터(예를 들어, 인코딩된 비트스트림)(21)를 수신하여, 디코딩된 픽처(331)를 획득하도록 구성된다. 디코딩 프로세스에서, 비디오 디코더(30)는 비디오 인코더(20)로부터 비디오 데이터, 예를 들어, 인코딩된 비디오 슬라이스의 픽처 블록 및 연관된 신택스 요소를 나타내는 인코딩된 비디오 비트스트림을 수신한다.
도 3의 예에서, 디코더(30)는 엔트로피 디코딩 유닛(304), 역양자화 유닛(310), 역변환 처리 유닛(312), 재구성 유닛(314)(예를 들어, 합산기(314)), 버퍼(316), 루프 필터(320), 디코딩된 픽처 버퍼(330), 및 예측 처리 유닛(360)을 포함한다. 예측 처리 유닛(360)은 인터 예측 유닛(344), 인트라 예측 유닛(354), 및 모드 선택 유닛(362)을 포함할 수 있다. 일부 예들에서, 비디오 디코더(30)는 도 2의 비디오 인코더(20)를 참조하여 설명된 인코딩 프로세스와 대략적으로 역인 디코딩 프로세스를 수행할 수 있다.
엔트로피 디코딩 유닛(304)은 인코딩된 픽처 데이터(21)를 엔트로피 디코딩하여, 예를 들어, 양자화된 계수(309) 및/또는 디코딩된 인코딩 파라미터(도 3에 도시되지 않음), 예를 들어, 인터 예측 파라미터, 인트라 예측 파라미터, 루프 필터 파라미터, 및/또는 (디코딩된) 다른 신택스 요소 중 임의의 하나 또는 전부를 획득하도록 구성된다. 엔트로피 디코딩 유닛(304)은 인터 예측 파라미터, 인트라 예측 파라미터, 및/또는 다른 신택스 요소를 예측 처리 유닛(360)에 전달하도록 추가로 구성된다. 비디오 디코더(30)는 비디오 슬라이스 레벨 및/또는 픽처 블록 레벨에서 신택스 요소들을 수신할 수 있다.
역양자화 유닛 310은 역양자화 유닛 210과 동일한 기능을 가질 수 있다. 역변환 처리 유닛 312는 역변환 처리 유닛 212와 동일한 기능을 가질 수 있다. 재구성 유닛 314는 재구성 유닛 214와 동일한 기능을 가질 수 있다. 버퍼 316은 버퍼 216과 동일한 기능을 가질 수 있다. 루프 필터 320는 루프 필터 220과 동일한 기능을 가질 수 있다. 디코딩된 픽처 버퍼 330은 디코딩된 픽처 버퍼 230과 동일한 기능을 가질 수 있다.
예측 처리 유닛(360)은 인터 예측 유닛(344)과 인트라 예측 유닛(354)을 포함할 수 있다. 인터 예측 유닛 344는 기능에서 인터 예측 유닛 244와 비슷할 수 있고, 인트라 예측 유닛 354는 기능에서 인트라 예측 유닛 254와 비슷할 수 있다. 예측 처리 유닛(360)은 일반적으로 블록 예측을 수행하고 및/또는 인코딩된 데이터(21)로부터 예측 블록(365)을 획득하고, 예를 들어, 엔트로피 디코딩 유닛(304)으로부터, 선택된 예측 모드에 관한 예측-관련 파라미터 및/또는 정보를 (명시적으로 또는 암시적으로) 수신 또는 획득하도록 구성된다.
비디오 슬라이스가 인트라-인코딩된(I) 슬라이스로서 인코딩될 때, 예측 처리 유닛(360)의 인트라 예측 유닛(354)은 시그널링된 인트라 예측 모드 및 현재 프레임 또는 픽처의 이전의 디코딩된 블록으로부터의 데이터에 기초하여 현재 비디오 슬라이스의 픽처 블록에 대한 예측 블록(365)을 생성하도록 구성된다. 비디오 슬라이스가 인터-인코딩된(B 또는 P) 슬라이스로서 인코딩될 때, 예측 처리 유닛(360)의 인터 예측 유닛(344)(예를 들어, 모션 보상 유닛)은, 모션 벡터 및 엔트로피 디코딩 유닛(304)으로부터 수신되는 다른 신택스 요소에 기초하여 현재 비디오 슬라이스에서의 비디오 블록에 대한 예측 블록(365)을 생성하도록 구성된다. 인터 예측을 위해, 예측 블록은 하나의 참조 픽처 리스트 내의 참조 픽처들 중 하나로부터 생성될 수 있다. 비디오 디코더(30)는 DPB(330)에 저장된 참조 픽처들에 기초한 디폴트 구성 기술을 사용하여 참조 프레임 리스트들: 리스트 0 및 리스트 1을 구성할 수 있다.
예측 처리 유닛(360)은 모션 벡터 및 다른 신택스 요소를 파싱함으로써 현재 비디오 슬라이스의 비디오 블록에 사용되는 예측 정보를 결정하고, 예측 정보를 사용하여 디코딩되고 있는 현재 비디오 블록에 사용되는 예측 블록을 생성하도록 구성된다. 본 발명의 예에서, 예측 처리 유닛(360)은, 일부 수신된 신택스 요소들을 사용하여, 비디오 슬라이스에서의 비디오 블록을 인코딩하기 위한 예측 모드(예를 들어, 인트라 또는 인터 예측), 인터 예측 슬라이스 타입(예를 들어, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 슬라이스에 대한 참조 픽처 리스트들 중 하나 이상의 구성 정보, 슬라이스에서의 각각의 인터-인코딩된 비디오 블록에 대한 모션 벡터, 슬라이스에서의 각각의 인터-인코딩된 비디오 블록의 인터 예측 상태, 및 다른 정보를 결정하여, 현재 비디오 슬라이스에서의 비디오 블록을 디코딩한다. 본 개시내용의 다른 예에서, 비트스트림으로부터 비디오 디코더(30)에 의해 수신되는 신택스 요소들은 적응 파라미터 세트(adaptive parameter set, APS), 시퀀스 파라미터 세트(sequence parameter set, SPS), 픽처 파라미터 세트(picture parameter set, PPS), 또는 슬라이스 헤더 중 하나 이상에서의 신택스 요소들을 포함한다.
역양자화 유닛(310)은 비트스트림에 제공되고 엔트로피 디코딩 유닛(304)에 의해 디코딩된 양자화된 변환 계수에 대해 역양자화(즉, 탈양자화)를 수행하도록 구성될 수 있다. 역양자화 프로세스는 비디오 슬라이스의 각각의 비디오 블록에 대해 비디오 인코더(20)에 의해 계산된 양자화 파라미터를 사용하여, 적용되어야 하는 양자화 정도를 결정하고 적용되어야 하는 역양자화 정도를 결정하는 것을 포함할 수 있다.
역변환 처리 유닛(312)은 역변환(예를 들어, 역 DCT, 역 정수 변환, 또는 개념적으로 유사한 역변환 프로세스)을 변환 계수에 적용하여, 픽셀 도메인에서 잔차 블록을 생성하도록 구성된다.
재구성 유닛(314)(예를 들어, 합산기(314))은 역변환 블록(313)(즉, 재구성된 잔차 블록(313))을 예측 블록(365)에 추가하여, 예를 들어, 재구성된 잔차 블록(313)의 샘플 값을 예측 블록(365)의 샘플 값에 가산함으로써, 샘플 도메인에서 재구성된 블록(315)을 획득하도록 구성된다.
루프 필터 유닛(320)은 (코딩 루프 동안 또는 코딩 루프 후에) 재구성된 블록(315)을 필터링하여 필터링된 블록(321)을 획득하여, 픽셀 변환을 원활하게 하거나 비디오 품질을 개선하도록 구성된다. 예에서, 루프 필터 유닛(320)은 아래에 설명되는 필터링 기술들의 임의의 조합을 수행하도록 구성될 수 있다. 루프 필터 유닛(320)은 하나 이상의 루프 필터, 예를 들어, 디블록킹 필터, 샘플-적응 오프셋(sample-adaptive offset, SAO) 필터, 또는 양방향 필터, 적응 루프 필터(adaptive loop filter, ALF), 샤프닝 또는 평활화 필터, 또는 협업 필터와 같은 다른 필터를 나타내도록 의도된다. 루프 필터 유닛(320)이 도 3에서 인-루프 필터로서 도시되어 있지만, 다른 구성들에서, 루프 필터 유닛(320)은 포스트-루프 필터로서 구현될 수 있다.
그 후, 주어진 프레임 또는 픽처 내의 디코딩된 비디오 블록은 후속 모션 보상을 위해 사용되는 참조 픽처를 저장하는 디코딩된 픽처 버퍼(330)에 저장된다. 디코딩된 픽처 버퍼(330)는 라이브러리 픽처를 저장하도록 추가로 구성된다.
비트스트림 파싱 유닛(303)은 라이브러리-기반 인코딩 방법에 따라 메인 비트스트림으로부터, 참조된 라이브러리 픽처에 관련된 인코딩 정보를 파싱하도록 구성되고; 현재 처리될 픽처와 참조된 라이브러리 픽처가 동일한 픽처라고 결정할 때, 처리될 픽처에 대해 디코딩 동작을 수행하는 것을 스킵하고, 라이브러리 픽처의 디코딩 정보를 복사하고, 디코딩 정보를 출력(332)을 통해 출력한다.
디코더(30)는, 예를 들어, 사용자에게 제시하기 위해 또는 사용자에 의해 보기 위해, 출력(332)을 통해 디코딩된 픽처(331)를 출력하도록 구성된다.
압축된 비트스트림을 디코딩하기 위해 비디오 디코더(30)의 다른 변형들이 사용될 수 있다. 예를 들어, 디코더(30)는 루프 필터 유닛(320) 없이 출력 비디오 스트림을 생성할 수 있다. 예를 들어, 비변환 기반 디코더(30)는 일부 블록들 또는 프레임들에 대해 역변환 처리 유닛(312) 없이 잔차 신호를 직접 역양자화할 수 있다. 다른 구현에서, 비디오 디코더(30)는 단일 유닛으로 조합되는 역양자화 유닛(310) 및 역변환 처리 유닛(312)을 가질 수 있다.
구체적으로, 본 발명의 이 실시예에서, 디코더(30)는 이하의 실시예들에서 설명되는 코딩 방법을 구현하도록 구성된다.
인코딩된 비디오 비트스트림을 디코딩하기 위해 비디오 디코더(30)의 다른 구조적 변형들이 사용될 수 있다는 점이 이해되어야 한다. 예를 들어, 비디오 디코더(30)는 필터(320)에 의한 처리 없이 출력 비디오 스트림을 생성할 수 있다. 대안적으로, 일부 픽처 블록들 또는 픽처 프레임들에 대해, 비디오 디코더(30)의 엔트로피 디코딩 유닛(304)은 디코딩을 통해 양자화된 계수를 획득하지 않고, 대응적으로, 역양자화 유닛(310) 및 역변환 처리 유닛(312)이 처리를 수행할 필요가 없다. 루프 필터(320)는 선택적이다. 또한, 무손실 압축의 경우에, 역양자화 유닛(310) 및 역변환 처리 유닛(312)도 선택사항이다. 상이한 응용 시나리오들에서, 인터 예측 유닛 및 인트라 예측 유닛은 선택적으로 인에이블될 수 있다는 것을 이해해야 한다.
본 출원의 인코더(20) 및 디코더(30)에서, 단계의 처리 결과는 추가로 처리된 다음 단계로 출력될 수 있다는 것을 이해해야 한다. 예를 들어, 보간 필터링, 모션 벡터 도출, 또는 루프 필터링과 같은 단계 후에, 대응하는 단계의 처리 결과에 대해 클리핑 또는 시프트와 같은 동작이 추가로 수행된다.
예를 들어, 현재 픽처 블록의 제어 포인트의 모션 벡터 또는 이웃하는 아핀 코딩 블록의 모션 벡터로부터 도출되는 현재 픽처 블록의 서브블록의 모션 벡터가 추가로 처리될 수 있다. 이는 이 출원에서 제한되지 않는다. 예를 들어, 모션 벡터의 값은 특정 비트 깊이 범위 내에 있도록 제약된다. 모션 벡터의 허용된 비트 깊이가 bitDepth라고 가정하면, 모션 벡터의 값은 -2^(bitDepth-1) 내지 2^(bitDepth-1)-1의 범위에 있고, 심벌 "^"는 지수화를 나타낸다. bitDepth가 16인 경우, 값은 -32768 내지 32767의 범위에 있다. bitDepth가 18인 경우, 값은 -131072 내지 131071의 범위에 있다. 다른 예에 대해, 모션 벡터(예를 들어, 하나의 8x8 픽처 블록에서의 4개의 4x4 서브블록들의 모션 벡터들 MV들)의 값은 4개의 4x4 서브블록들의 MV들의 정수 부분들 사이의 최대 차이가 N 픽셀들을 초과하지 않도록, 예를 들어, 1 픽셀을 초과하지 않도록 제약된다.
모션 벡터의 값을 특정 비트 깊이 범위 내에 있도록 제약하기 위해 다음의 2가지 방식이 사용될 수 있다:
방식 1: 모션 벡터의 오버플로우 최상위 비트를 제거한다:
ux=(vx + 2bitDepth) % 2bitDepth
vx = (ux >= 2bitDepth-1) ? (ux - 2bitDepth): ux
uy = (vy + 2bitDepth) % 2bitDepth
vy = (uy >= 2bitDepth-1) ? (uy - 2bitDepth) : uy
여기서, vx는 픽처 블록 또는 픽처 블록의 서브블록의 모션 벡터의 수평 성분을 나타내고, vy는 픽처 블록 또는 픽처 블록의 서브블록의 모션 벡터의 수직 성분을 나타내고, ux 및 uy는 중간 값들이고, bitDepth는 비트 깊이를 나타낸다.
예를 들어, vx의 값은 -32769이고, 32767은 전술한 공식들에 따라 도출된다. 값은 2의 보수 표현으로 컴퓨터에 저장되고, -32769의 2의 보수 표현은 1,0111,1111,1111,1111(17 비트)이고, 오버플로우를 위해 컴퓨터에 의해 수행되는 처리는 최상위 비트를 폐기하는 것이다. 따라서, vx의 값은 0111,1111,1111,1111, 즉 32767이다. 이 값은 공식들에 따른 처리를 통해 도출된 결과와 일치한다.
방식 2: 이하의 공식들에 따라 모션 벡터를 클리핑한다:
vx = Clip3(-2bitDepth-1, 2bitDepth-1-1, vx)
vy = Clip3(-2bitDepth-1, 2bitDepth-1-1, vy)
여기서, vx는 픽처 블록 또는 픽처 블록의 서브블록의 모션 벡터의 수평 성분을 나타내고, vy는 픽처 블록 또는 픽처 블록의 서브블록의 모션 벡터의 수직 성분을 나타내고, x, y, 및 z는 MV 클램핑 프로세스 Clip3의 3개의 입력 값들에 각각 대응하고, Clip3은 z의 값을 범위 [x, y]로 클리핑하는 것을 표시하도록 정의된다.
Figure pct00001
도 4는 본 발명의 실시예에 따른 비디오 코딩 디바이스(400)(예를 들어, 비디오 인코딩 디바이스(400) 또는 비디오 디코딩 디바이스(400))의 개략적인 구조도이다. 비디오 코딩 디바이스(400)는 본 명세서에 설명된 실시예들을 구현하기에 적합하다. 일 실시예에서, 비디오 코딩 디바이스(400)는 비디오 디코더(예를 들어, 도 1a의 디코더(30)) 또는 비디오 인코더(예를 들어, 도 1a의 인코더(20))일 수 있다. 다른 실시예에서, 비디오 코딩 디바이스(400)는 도 1a의 디코더(30) 또는 도 1a의 인코더(20)의 하나 이상의 컴포넌트일 수 있다.
비디오 코딩 디바이스(400)는: 데이터를 수신하기 위한 입구 포트(410) 및 수신기 유닛(Rx)(420); 데이터를 처리하기 위한 프로세서, 로직 유닛, 또는 중앙 처리 유닛(CPU)(430); 데이터를 송신하기 위한 송신기 유닛(Tx)(440) 및 출구 포트(450); 및 데이터를 저장하기 위한 메모리(460)를 포함한다. 비디오 코딩 디바이스(400)는 광 신호들 또는 전기 신호들의 출구 또는 입구를 위해 입구 포트(410), 수신기 유닛(420), 송신기 유닛(440), 및 출구 포트(450)에 결합되는 광-전기 변환 컴포넌트 및 전기-광(EO) 컴포넌트를 추가로 포함할 수 있다.
프로세서(430)는 하드웨어 및 소프트웨어에 의해 구현된다. 프로세서(430)는 하나 이상의 CPU 칩, 코어(예를 들어, 멀티-코어 프로세서), FPGA, ASIC, 또는 DSP로서 구현될 수 있다. 프로세서(430)는 입구 포트(410), 수신기 유닛(420), 송신기 유닛(440), 출구 포트(450), 및 메모리(460)와 통신한다. 프로세서(430)는 코딩 모듈(470)(예를 들어, 인코딩 모듈(470) 또는 디코딩 모듈(470))을 포함한다. 인코딩/디코딩 모듈(470)은 본 명세서에 개시된 실시예들을 구현하여, 본 발명의 실시예들에서 제공되는 크로마 블록 예측 방법을 구현한다. 예를 들어, 인코딩/디코딩 모듈(470)은 다양한 코딩 동작들을 수행, 처리 또는 제공한다. 따라서, 인코딩/디코딩 모듈(470)은 비디오 코딩 디바이스(400)의 기능들을 실질적으로 개선하고, 비디오 코딩 디바이스(400)의 상이한 상태로의 변환에 영향을 미친다. 대안적으로, 인코딩/디코딩 모듈(470)은 메모리(460)에 저장되고 프로세서(430)에 의해 실행되는 명령어들을 사용하여 구현된다.
메모리(460)는 하나 이상의 디스크, 테이프 드라이브, 및 솔리드-스테이트 드라이브를 포함하고, 이러한 프로그램들이 실행을 위해 선택될 때 프로그램들을 저장하고, 프로그램 실행 동안 판독되는 명령어들 및 데이터를 저장하기 위해, 오버플로우 데이터 저장 디바이스로서 사용될 수 있다. 메모리(460)는 휘발성 및/또는 비휘발성일 수 있고, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 3진 콘텐츠-어드레스가능 메모리(ternary content-addressable memory, TCAM), 및/또는 정적 랜덤 액세스 메모리(SRAM)일 수 있다.
도 5는 예시적인 실시예에 따른 도 1a의 소스 디바이스(12) 및 목적지 디바이스(14) 중 하나 또는 둘로서 사용될 수 있는 장치(500)의 단순화된 블록도이다. 장치(500)는 본 출원에서의 기술들을 구현할 수 있다. 즉, 도 5는 본 출원의 실시예에 따른 인코딩 디바이스 또는 디코딩 디바이스(간단히 코딩 디바이스(500)라고 지칭됨)의 구현의 개략적인 블록도이다. 코딩 디바이스(500)는 프로세서(510), 메모리(530), 및 버스 시스템(550)을 포함할 수 있다. 프로세서 및 메모리는 버스 시스템을 통해 접속된다. 메모리는 명령어들을 저장하도록 구성된다. 프로세서는 메모리에 저장된 명령어를 실행하도록 구성된다. 코딩 디바이스의 메모리는 프로그램 코드를 저장한다. 프로세서는 메모리에 저장된 프로그램 코드를 호출하여 본 출원에서 설명된 다양한 비디오 인코딩 또는 디코딩 방법들, 특히, 다양한 새로운 비디오 코딩 방법들을 수행할 수 있다. 반복을 피하기 위해 세부 사항들은 본 명세서에서 설명되지 않는다.
본 출원의 이러한 실시예에서, 프로세서(510)는 중앙 처리 유닛(Central Processing Unit, 줄여서 "CPU")일 수 있거나, 또는 프로세서(510)는 다른 범용 프로세서, DSP(digital signal processor), ASIC(application-specific integrated circuit), FPGA(field-programmable gate array) 또는 다른 프로그램가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직 디바이스, 이산 하드웨어 컴포넌트 등일 수 있다. 범용 프로세서는 마이크로프로세서일 수 있거나, 프로세서는 또한 임의의 종래의 프로세서 등일 수 있다.
메모리(530)는 ROM(read-only memory) 디바이스 또는 RAM(random access memory) 디바이스를 포함할 수 있다. 임의의 다른 적합한 타입의 저장 디바이스가 대안적으로 메모리(530)로서 사용될 수 있다. 메모리(530)는 버스(550)를 통해 프로세서(510)에 의해 액세스되는 코드 및 데이터(531)를 포함할 수 있다. 메모리(530)는 운영 체제(533) 및 애플리케이션 프로그램(535)을 추가로 포함할 수 있다. 애플리케이션 프로그램(535)은 프로세서(510)가 본 출원에서 설명된 비디오 인코딩 또는 디코딩 방법(특히, 본 출원에서 설명된 코딩 방법)을 수행할 수 있게 하는 적어도 하나의 프로그램을 포함한다. 예를 들어, 애플리케이션 프로그램들(535)은 애플리케이션들 1 내지 N을 포함할 수 있고, 본 출원에서 설명된 비디오 인코딩 또는 디코딩 방법을 수행하기 위해 사용되는 비디오 인코딩 또는 디코딩 애플리케이션(간단히 비디오 코딩 애플리케이션이라고 지칭됨)을 추가로 포함할 수 있다.
버스 시스템(550)은 데이터 버스를 포함할 뿐만 아니라, 전력 버스, 제어 버스, 상태 신호 버스 등을 포함할 수 있다. 그러나, 명확한 설명을 위해, 도면에서 다양한 타입의 버스가 버스 시스템(550)으로 표시되어 있다.
선택적으로, 코딩 디바이스(500)는 하나 이상의 출력 디바이스, 예를 들어, 디스플레이(570)를 추가로 포함할 수 있다. 예에서, 디스플레이(570)는 디스플레이 및 터치 입력을 감지하도록 동작가능한 터치-감지 유닛을 조합하는 터치-감지 디스플레이일 수 있다. 디스플레이(570)는 버스(550)를 통해 프로세서(510)에 접속될 수 있다.
다음은 본 출원에서 사용되는 몇몇 기술적인 개념들을 설명한다.
(1) 랜덤 액세스 세그먼트
비디오 시퀀스 처리에서, 인코딩된 비디오 시퀀스가 랜덤 액세스 기능을 지원할 수 있게 하기 위해, 비디오 시퀀스는 랜덤 액세스 기능을 갖는 복수의 세그먼트(간단히 랜덤 액세스 세그먼트라고 함)로 분할된다. 예를 들어, 하나의 비디오 시퀀스는 적어도 하나의 랜덤 액세스 세그먼트를 포함하고, 각각의 랜덤 액세스 세그먼트는 하나의 랜덤 액세스 픽처 및 복수의 비랜덤 액세스 픽처를 포함한다. 랜덤 액세스 세그먼트에서의 픽처는 인트라 코딩될 수 있거나, 또는 비디오 시퀀스에서의 다른 픽처를 참조함으로써 인터 예측을 통해 인터 코딩될 수 있다.
(2) 라이브러리
복수의 랜덤 액세스 세그먼트들 사이의 픽처들의 인코딩 동안 상호 참조되는 정보를 마이닝하고 사용하기 위해, 라이브러리 픽처(줄여서 LP라고 지칭됨)가 라이브러리 코딩 스킴에 도입된다. 라이브러리 픽처는, 현재 픽처가 속하는 랜덤 액세스 세그먼트 및 랜덤 액세스 세그먼트들에서 현재 픽처가 속하는 랜덤 액세스 세그먼트에 가장 가깝고 그 이전의 랜덤 액세스 세그먼트를 포함하고 디스플레이될 필요가 있는 픽처 세트에 있지 않은 픽처이다. 라이브러리 픽처는 인코딩될 픽처 또는 디코딩될 픽처에 대한 참조를 제공하기 위해 참조 픽처로서 사용된다. 라이브러리 픽처들의 세트를 저장하는 데이터베이스는 라이브러리라고 지칭될 수 있다. 또한, 적어도 하나의 라이브러리 픽처를 참조함으로써 비디오에서의 하나의 픽처를 코딩하는 이러한 방법은 라이브러리-기반 비디오 코딩(영문: library-based video coding)이라고 지칭될 수 있다.
랜덤 액세스 세그먼트들 사이의 중복 정보를 제거하기 위해, 라이브러리 픽처들은 긴 시간 범위 내에서 관련 정보를 갖는 복수의 랜덤 액세스 세그먼트를 조합하기 위해 사용된다. 이러한 방식으로, 복수의 랜덤 액세스 세그먼트 사이의 중복 정보가 제거된다. 랜덤 액세스 세그먼트에서, 랜덤 액세스 능력을 제공하는 픽처는 또한 라이브러리 픽처를 참조할 수 있다. 예를 들어, 이러한 참조된 라이브러리 픽처는 본 명세서에서 참조 라이브러리(Reference Library, RL) 픽처라고 지칭된다. RL 픽처는 라이브러리 픽처가 이용가능할 때 랜덤 액세스 능력을 제공한다.
(3) 참조 픽처 세트(reference picture set, rps)
참조 픽처 세트는 현재 처리될 픽처에 의해 참조되는 픽처의 관련 정보를 포함할 수 있다. 참조 픽처 세트는 참조되는 비-라이브러리 픽처에 관한 정보를 포함할 수 있고, 라이브러리 픽처에 관한 정보를 추가로 포함할 수 있다. 참조 픽처 세트가 라이브러리 픽처를 포함할 때, 라이브러리-기반 비디오 코딩 방법이 라이브러리 픽처를 참조함으로써 현재 처리될 픽처에 대해 사용될 수 있다.
참조 픽처 세트는 참조 구성 세트(reference configuration set, rcs)라고 또한 지칭될 수 있다. rcs는 참조 픽처들의 수량, 참조 구성 세트에 포함되는 참조 픽처에 대응하는 라이브러리 픽처의 번호 등을 포함할 수 있다. 예를 들어, rcs는 i번째 픽처가 라이브러리 픽처인지, i번째 픽처의 번호, 등을 표시한다.
(4) 라이브러리 비트스트림
비디오 시퀀스가 라이브러리-기반 비디오 코딩을 사용하여 인코딩될 때, 2개의 비트스트림이 생성된다. 하나는 인코딩을 통해 획득되고 라이브러리 픽처를 포함하는 비트스트림이고, 인코딩을 통해 획득되고 라이브러리 픽처를 포함하는 비트스트림은 라이브러리 계층 비트스트림이라고 지칭될 수 있다. 다른 하나는 인코딩을 통해 획득되고 비디오 시퀀스에서 픽처의 각각의 프레임에 의해 참조되는 라이브러리 픽처를 포함하는 비트스트림이고, 인코딩을 통해 획득되고 비디오 시퀀스에서 픽처의 각각의 프레임에 의해 참조되는 라이브러리 픽처를 포함하는 비트스트림은 메인 비트스트림으로서 지칭될 수 있다. 또한, 라이브러리 픽처는 복수의 메인 비트스트림의 랜덤 액세스 세그먼트에 의해 반복적으로 참조될 수 있다. 예를 들어, 도 6a는 라이브러리-기반 비디오 코딩 방법을 사용하여 획득되는 메인 비트스트림 픽처를 포함하는 랜덤 액세스 세그먼트와 라이브러리 픽처 사이의 참조 관계를 도시한다. 각각의 라이브러리 픽처는 적어도 2개의 불연속적인 랜덤 액세스 세그먼트에 의해 참조된다.
라이브러리-기반 비디오 코딩이 수행될 때, 현재 처리될 픽처에 대응하는 라이브러리로부터 적어도 하나의 픽처가 선택되고, 처리될 픽처의 참조 픽처로서 사용된다. 참조 픽처는 참조 픽처의 인코딩된 데이터를 획득하기 위해 인트라 인코딩된다. 참조 픽처의 재구성된 픽처는 참조 픽처의 인코딩된 데이터에 기초하여 재구성을 통해 획득된다. 처리될 픽처는 참조 픽처의 재구성된 픽처에 기초하여 인터 인코딩되어, 처리될 픽처의 인코딩된 데이터를 획득한다. 참조 픽처의 비트스트림 데이터는 라이브러리 계층 비트스트림으로서 사용되어 디코더 측으로 전송되고, 처리될 픽처의 비트스트림 데이터는 메인 비트스트림으로서 사용되어 디코더 측으로 전송된다. 현재 처리될 픽처의 메인 비트스트림을 수신한 후에, 디코더 측은 참조 라이브러리 픽처 세트 내의 픽처를 참조 픽처로서 결정하고, 참조된 라이브러리 픽처를 재구성하고, 재구성된 라이브러리 픽처에 기초하여 처리될 픽처를 인터 디코딩하여 처리될 픽처의 재구성된 픽셀 값을 획득한다. 메인 비트스트림 내의 처리될 픽처가 디코딩될 때, 처리될 픽처가 라이브러리 내의 라이브러리 픽처를 참조하는 경우, 메인 비트스트림 내의 처리될 픽처는 라이브러리 계층 비트스트림 내의 라이브러리 픽처가 디코딩된 후에만 디코딩될 수 있다. 라이브러리 픽처는 처리될 비디오 시퀀스에서의 픽처일 수 있다. 물론, 획득된 라이브러리 픽처들은 대안적으로 처리될 비디오 시퀀스에서의 픽처들을 모델링하여 획득된 픽처 및 처리될 비디오 시퀀스에서의 픽처들을 합성하여 획득된 픽처일 수 있다. 즉, 현재 처리될 픽처 및 현재 처리될 픽처에 대해 선택되고 그에 의해 참조되는 라이브러리 픽처는 동일한 픽처일 수 있다. 이 경우에, 참조된 라이브러리 픽처의 인코딩 및 디코딩이 완료된 후에, 실제로, 메인 비트스트림 내의 처리될 픽처를 추가적으로 인코딩 및 디코딩할 필요가 없다. 따라서, 기존의 라이브러리-기반 비디오 코딩 방법에서, 현재 처리될 픽처 및 현재 처리될 픽처에 대해 선택되고 그에 의해 참조되는 라이브러리 픽처가 동일한 픽처일 수 있을 때, 참조되는 라이브러리 픽처의 인코딩 및 디코딩이 완료된 후에 메인 비트스트림 내의 처리될 픽처가 추가적으로 인코딩 및 디코딩되는 스킴에서 중복성이 유발된다.
이에 기초하여, 본 출원은 비디오 픽처 인코딩 방법 및 장치, 및 비디오 픽처 디코딩 방법 및 장치를 제공한다. 현재 처리될 픽처 및 현재 처리될 픽처에 의해 선택되고 참조되는 라이브러리 픽처가 동일한 픽처일 수 있을 때, 참조되는 라이브러리 픽처의 인코딩 및 디코딩이 완료된 후에, 메인 비트스트림 내의 처리될 픽처는 더 이상 추가적으로 인코딩 및 디코딩되지 않고, 대신에, 메인 비트스트림 내의 처리될 픽처의 디코딩된 데이터는 참조되는 라이브러리 픽처의 디코딩된 데이터를 단순히 복사함으로써 결정된다. 이러한 방식으로, 중복성이 유발되는 기존의 코딩 방식이 회피될 수 있고, 전송 리소스들이 절감될 수 있다. 방법 및 장치는 동일한 발명 개념에 기초한다. 방법의 문제 해결 원리가 장치의 문제 해결 원리와 유사하기 때문에, 장치 및 방법의 구현들에 대해 상호 참조가 이루어질 수 있고, 반복된 설명이 제공되지 않는다.
또한, 본 출원에서, "적어도 하나"는 하나 이상을 의미하고, "복수의"는 2개 이상을 의미한다는 점에 유의해야 한다. "및/또는(and/or)"은 관련 객체들 사이의 연관 관계를 설명하고 3개의 관계가 존재할 수 있다는 것을 나타낸다. 예를 들어, A 및/또는 B는 다음의 경우들을 표시할 수 있다: A만 존재함, A 및 B 둘 모두 존재함, 및 B만 존재함, A 및 B는 단수 또는 복수일 수 있다. 문자 "/"는 통상적으로 연관된 대상들 사이의 "또는" 관계를 지시한다. "다음 중 적어도 하나의 아이템(피스)" 또는 그의 유사한 표현은, 단수의 아이템(피스) 또는 복수의 아이템(피스)의 임의의 조합을 비롯한, 이 아이템들의 임의의 조합을 나타낸다. 예를 들어, a, b, 또는 c 중 적어도 하나(피스)는 다음의 경우들을 나타낼 수 있다: a, b, c, a 및 b, a 및 c, b 및 c, 또는 a, b, 및 c- a, b, 및 c는 단수 또는 복수일 수 있음 -.
다음은 본 출원의 실시예들에서의 해결책들을 상세히 설명한다.
복수의 랜덤 액세스 세그먼트들 사이의 픽처들의 인코딩 동안 상호 참조되는 정보를 마이닝하고 사용하기 위해, 픽처를 인코딩(또는 디코딩)할 때, 인코더(또는 디코더)는, 데이터베이스로부터, 참조 픽처로서 현재 인코딩된 픽처(또는 현재 디코딩된 픽처)의 것과 유사한 텍스처 콘텐츠를 갖는 픽처를 선택할 수 있다. 이러한 참조 픽처는 라이브러리 픽처라고 지칭되고, 참조 픽처의 세트를 저장하는 데이터베이스는 라이브러리라고 지칭된다. 적어도 하나의 라이브러리 픽처를 참조함으로써 비디오에서의 적어도 하나의 픽처를 코딩하는 이러한 방법은 라이브러리-기반 비디오 코딩(영문: library-based video coding)이라고 지칭된다. 비디오 시퀀스가 라이브러리-기반 비디오 코딩을 사용하여 인코딩될 때, 라이브러리 계층 비트스트림, 즉, 인코딩을 통해 획득되고 라이브러리 픽처를 포함하는 비트스트림 및 비디오 계층 비트스트림, 즉, 인코딩을 통해 획득되고 비디오 시퀀스에서의 픽처의 각각의 프레임에 의해 참조되는 라이브러리 픽처를 포함하는 비트스트림이 생성된다. 2가지 타입의 비트스트림은 각각 스케일러블 비디오 코딩(영문: scalable video coding, SVC)을 사용하여 생성되는 기본 계층 비트스트림 및 강화된 계층 비트스트림과 유사하다. 즉, 시퀀스 계층 비트스트림(비디오 계층 비트스트림)은 라이브러리 계층 비트스트림에 의존한다. 그러나, 라이브러리-기반 비디오 코딩에서의 듀얼-비트스트림 조직화 방식 및 SVC에서의 스케일러블-비트스트림 조직화 방식은 계층 비트스트림들 사이에 상이한 종속 관계들을 갖는다. 차이는 SVC에서의 듀얼 비트스트림들의 계층들이 특정 정렬 시간 기간에 기초하여 서로 의존하는 반면, 라이브러리-기반 비디오 코딩에서, 듀얼 비트스트림들의 비디오 계층 비트스트림은 비-정렬 시간 기간에 기초하여 라이브러리 계층 비트스트림에 의존한다는 점에 있다.
라이브러리-기반 비디오 코딩 방법을 사용함으로써 인코딩을 통해 2개의 비트스트림: 라이브러리 비트스트림 및 메인 비디오 비트스트림이 획득된다. 메인 비디오 비트스트림의 디코딩은 라이브러리 비트스트림에 의존할 필요가 있다. 메인 비트스트림 내의 비디오 프레임이 디코딩될 때, 프레임이 라이브러리 비트스트림 내의 프레임을 참조하는 경우, 메인 비트스트림 내의 비디오 프레임은 라이브러리 비트스트림 내의 프레임이 디코딩된 후에만 디코딩될 수 있다. 메인 비트스트림 내의 2개의 이웃하는 프레임이 디코딩 순서에 기초하여 배열될 때 상이한 라이브러리 비트스트림들 내의 프레임들이 참조될 때, 디코딩 피크가 생성되고 디코더에 대한 디코딩 영향을 유발한다.
예 1:
시간을 정의하기 위한 신택스 요소가 신택스에 추가되고, 신택스 요소의 값 범위들은 상이한 프로파일들 및 레벨들에서 정의된다. AVS3에서, 신택스 요소들은 다음의 표에 도시된다.
Figure pct00002
새롭게 추가된 신택스 요소들의 시맨틱은 다음과 같다:
library_picture_enable_flag는 1-비트 플래그이다. 값이 1일 때, 이는 현재 비트스트림이 외부 라이브러리 계층 비트스트림을 참조함을 표시한다. 값이 0일 때, 이는 현재 비트스트림이 라이브러리 계층 비트스트림을 참조하지 않음을 표시한다. 필드의 비트들의 수량 및 상이한 의미들을 표시하는 값들은 유연하게 정의되고 설계될 수 있다. 이것은 본 발명에 제한되지 않는다.
min_library_interval_time는 12 비트를 가지고, 현재 비트스트림에 의해 참조되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격을 설명한다. 최소 디코딩 시간 간격의 값 범위는 프로파일 및 레벨에서 제한된다. 상위 6 비트는 0 내지 59 범위의 값을 초 단위로 설명한다. 하위 6 비트는 0 내지 63 범위의 값을 설명한다. 프레임 레이트가 64보다 작을 때, 하위 6 비트에 의해 설명되는 값의 단위는 픽처이고; 프레임 레이트가 64 이상일 때, 하위 6 비트에 의해 설명되는 값의 단위는 1/64초이다.
실현가능한 실시예에서, min_library_interval_time의 시맨틱은 고정 비트 길이 또는 가변 비트 길이를 갖는 심벌일 수 있고, 현재 비트스트림에 의해 참조되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격을 설명한다. 예를 들어, 신택스 요소의 비트들은 각각 시간, 분 및 초를 설명한다. 다른 예로서, 신택스 요소는 초 단위의 값을 설명한다. 다른 예를 들어, 신택스 요소는 픽처의 유닛에서의 값을 설명한다. 최소 디코딩 시간 간격의 값 범위는 프로파일 및 레벨에서 제한된다. 최소 디코딩 시간 간격의 값 범위의 하한은 상이한 프로파일들 및 레벨들에서 결정될 수 있다.
구체적으로, 가능한 구현 프로세스에서, 인코더 측은 다음의 동작들을 수행할 수 있다:
1. 메인 비트스트림 픽처의 인코딩 동안 참조될 수 있는 라이브러리 픽처 세트 L(세트 L 내의 라이브러리 픽처들은 모두 사용가능하고 재구성되었고, 재구성된 픽셀들이 획득됨)을 초기화하고- 세트 L은 전체 메인 비트스트림에 의해 사용될 수 있는 모든 라이브러리 픽처들을 포함함 -; 새로운 라이브러리 픽처를 T로 참조하는 이전(마지막) 메인 비트스트림 픽처의 인코딩 순간 tj를 초기화하고(본 명세서에서, 이전 메인 비트스트림 픽처는 인코딩 시간 시퀀스에 기초하여 결정됨), 인코딩 순간 tj의 초기화 값은 인코딩된 제1 메인 비트스트림 픽처(그 인코딩 순간은 0초임)가 후보 참조 픽처로서 임의의 라이브러리 픽처를 사용할 수 있는 것을 보장해야 하고(예를 들어, 초기화 값은 -k초 이하여서, 제1 메인 비트스트림 픽처의 인코딩 순간 0과 T 사이의 차이가 k초 이상임), k의 값 범위 및 k초 내에 디코딩될 수 있는 픽처들의 수량 fk+N의 값 범위는 프로파일 및 레벨에서 제한될 수 있고(즉, 메인 비트스트림 내의 픽처들의 수량 fk보다 N개 더 많은 픽처의 최대가 디코딩되도록 허용됨), min_library_interval_time의 값은 k의 값에 기초하여 결정된다.
예를 들어, min_library_interval_time의 값은 k의 값과 같다.
다른 예로서, min_library_interval_time의 값은, min_library_interval_time의 값이 0으로부터 시작하도록 보장하기 위해, k-1의 값과 같다.
다른 예로서, min_library_interval_time의 값은 log2(k)의 값과 동일하여, min_library_interval_time에 의해 점유된 비트들의 수량을 감소시키고, min_library_interval_time을 비트스트림의 시퀀스 헤더에 추가한다.
2. i번째 메인 비트스트림 픽처를 인코딩한다:
(a) 현재 인코딩된 픽처가 라이브러리 픽처를 참조하는 경우(예를 들어, 현재 픽처가 라이브러리 픽처를 참조하는지는, 라이브러리 픽처를 참조함으로써 픽처를 인코딩하는 것의 인코딩 효율을 단기 참조 픽처를 참조함으로써 픽처를 인코딩하는 것의 인코딩 효율과 비교함으로써 결정됨); 특정 구현 프로세스에서, 비트스트림이 라이브러리 픽처를 참조하도록 허용될 때(예를 들어, library_picture_enable_flag가 1일 때), 임의의 픽처는 픽처가 라이브러리 픽처를 참조하는지를 표시하기 위한 대응하는 필드를 가지며, 예를 들어, 필드는 픽처의 필드일 수 있거나, 표준에서 디폴트에 의해 다른 픽처로부터 상속되도록 허용되는 필드일 수 있고; 이 단계는 기존의 기술적 수단을 사용하여 구현될 수 있으므로, 본 발명에서는 상세사항이 설명되지 않고, 다음과 같은 동작들 중 하나가 수행된다:
(1) 라이브러리 픽처 세트 L로부터 m(m>0)개의 라이브러리 픽처를 선택하거나- m개의 라이브러리 픽처 및 i번째 메인 비트스트림 픽처의 단기 참조 픽처는 참조 픽처 세트를 형성함 -; 또는
(2) 현재 인코딩된 픽처의 인코딩 순간 ti와 T 사이의 차이가 k보다 더 큰지를 체크한다(ti는 인코딩 타이밍을 통해 획득될 수 있고; 대안적으로, 현재 인코딩된 픽처의 디스플레이 시간 Ti 및 디스플레이 시간과 인코딩 시간 사이의 차이 △Ti가 비트스트림에서 송신될 수 있어서, 디코더 측은 획득된 Ti 및 △Ti에 기초하여 ti를 획득하고, 여기서 상이한 인코딩된 픽처들은 동일한 ti 및 △Ti에 대응할 수 있거나 상이한 ti 및 △Ti에 대응할 수 있으며, 이는 본 발명에서 제한되지 않고; 대안적으로, ti는 종래의 기술에서 다른 방식으로 획득될 수 있고; 비트스트림 내의 인코딩 정보는 실제 디코딩 순간을 한정하기 위해 사용될 수 있다는 것을 이해해야 함).
ti-tj>=k인 경우에:
[1] 라이브러리 픽처 세트 L로부터 m(m>0)개의 라이브러리 픽처를 선택하고, 세트 L 내에 있지 않은 n(0<n<N)개의 라이브러리 픽처를 선택하거나- m+n개의 라이브러리 픽처 및 i번째 메인 비트스트림 픽처의 단기 참조 픽처는 참조 픽처 세트를 형성함 -; 또는
[2] 세트 L 내에 있지 않은 n(0<n<N)개의 라이브러리 픽처를 선택한다- n개의 라이브러리 픽처 및 i번째 메인 비트스트림 픽처의 단기 참조 픽처는 참조 픽처 세트를 형성함 -.
라이브러리 픽처를 선택하는 동작 방법(라이브러리 픽처 세트 L로부터 m(m>0)개의 라이브러리 픽처를 선택하는 동작)은:
(a1) i번째 메인 비트스트림 픽처와 세트 L 내의 라이브러리 픽처들 사이의 콘텐츠 유사성에 기초하여 가장 높은 콘텐츠 유사성을 갖는 m개의 라이브러리 픽처를 선택하는 단계;
(b1) 세트 L 내의 라이브러리 픽처들이 비디오 시퀀스에 제시되는 픽처들로부터 추출될 때(구체적으로, 라이브러리 픽처의 콘텐츠는 비디오 시퀀스에서의 프레젠테이션 순간에서의 픽처의 콘텐츠와 완전히 동일함), 비디오에 제시되는 i번째 메인 비트스트림 픽처의 프레젠테이션 순간과 세트 L 내의 라이브러리 픽처들의 대응하는 순간들 사이의 차이들에 기초하여 최소 차이들을 갖는(구체적으로, 시간적으로 더 가까운) m개의 라이브러리 픽처를 선택하는 단계; 또는
(c1) 세트 L 내의 라이브러리 픽처들을 참조 픽처들로서 사용하여 i번째 메인 비트스트림 픽처를 인코딩하는 인코딩 효율에 기초하여 가장 높은 인코딩 효율을 갖는 m개의 라이브러리 픽처를 선택하는 단계를 포함하지만 이에 제한되지 않는다.
라이브러리 픽처를 선택하는 동작 방법(세트 L이 아닌 라이브러리 픽처들로부터 n(0<n<N)개의 라이브러리 픽처를 선택하는 동작)은:
(a2) i번째 메인 비트스트림 픽처와 세트 L 내에 있지 않은 라이브러리 픽처들 사이의 콘텐츠 유사성에 기초하여 가장 높은 콘텐츠 유사성을 갖는 n개의 라이브러리 픽처를 선택하는 단계;
(b2) 세트 L 내의 라이브러리 픽처들이 비디오 시퀀스에 제시되는 픽처들로부터 추출될 때(구체적으로, 라이브러리 픽처의 콘텐츠는 비디오 시퀀스에서의 프레젠테이션 순간에서의 픽처의 콘텐츠와 완전히 동일함), i번째 메인 비트스트림 픽처의 프레젠테이션 순간과, 세트 L 내에 있지 않고 비디오에 제시되는 라이브러리 픽처들의 대응하는 순간들 사이의 차이들에 기초하여 최소 차이들을 갖는(구체적으로, 시간적으로 더 가까운) n개의 라이브러리 픽처를 선택하는 단계; 또는
(c2) 세트 L 내에 있지 않은 라이브러리 픽처들을 참조 픽처들로서 사용하여 i번째 메인 비트스트림 픽처를 인코딩하는 인코딩 효율에 기초하여 가장 높은 인코딩 효율을 갖는 n개의 라이브러리 픽처를 선택하는 단계를 포함하지만 이에 제한되지 않는다.
세트 L 내의 라이브러리 픽처들은 재구성되었고, 세트 L 내에 있지 않은 라이브러리 픽처들은 재구성되지 않거나 다시 재구성될 필요가 있다. 다시 재구성될 필요가 있는 라이브러리 픽처들은 다음 조건들 중 하나 이상을 만족한다:
재구성된 라이브러리 픽처가 불충분한 캐시 용량으로 인해 삭제 또는 대체되거나;
재구성된 라이브러리 픽처가 캐시 콘텐츠 에러로 인해 손상되거나;
재구성된 라이브러리 픽처가 관리 동작 에러로 인해 삭제 또는 대체되거나; 또는
재구성된 라이브러리 픽처는 라이브러리 픽처의 라이프 사이클의 만료로 인해 삭제 또는 대체되고, 라이브러리 픽처는 재생 동작, 점프 동작 등으로 인해 참조될 필요가 있다.
단기 참조 픽처는 i번째 메인 비트스트림 픽처 이전에 위치되고, 인코딩되었고, i번째 메인 비트스트림 픽처에 시간적으로 근접하고, i번째 메인 비트스트림 픽처의 후보 참조 픽처(예를 들어, 0번째와 (i-1)번째 메인 비트스트림 픽처들 사이의 디코딩된 메인 비트스트림 픽처)로서 사용될 수 있는 메인 비트스트림 픽처의 재구성된 픽처이다.
(b) 현재 인코딩된 픽처가 라이브러리 픽처를 참조하지 않고, m=0, n=0인 경우, 현재 인코딩된 픽처의 단기 참조 픽처가 참조 픽처 세트를 형성한다.
3. 참조 픽처 세트를 i번째 인코딩된 픽처의 후보 참조 픽처로서 사용하여, i번째 인코딩된 픽처를 인코딩함. 예를 들어, m+n>0일 때, m+n개의 선택된 라이브러리 픽처들은 참조될 수 있는 새로운 라이브러리 픽처 세트 L로서 사용된다.
4. i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처가 아닌 경우, 단계 2로 리턴한다. n이 0보다 큰 경우, 다음 메인 비트스트림 픽처에 대해 tj의 값을 ti로 업데이트한다(코드를 사용하는 구현 동안, i=i+1, 즉, 다음 메인 비트스트림 픽처를 처리한다). i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처인 경우, 인코딩 프로세스가 종료된다.
예에서, 디코딩 순서에 기초하여 현재 디코딩된 픽처 이전에 위치되는(디코딩 순간이 ti인) 적어도 하나의 픽처에서 현재 디코딩된 픽처에 가장 가까운 디코딩된 픽처의 그리고 적어도 하나의 새로운 라이브러리 픽처(n은 0보다 큼)를 참조하는 디코딩 순간은 tj로서 표현될 수 있고, 새로운 라이브러리 픽처는, 현재 디코딩된 픽처에 두번째로 가까운 디코딩된 픽처에 의해 참조되는 라이브러리 픽처와 상이하고 라이브러리 픽처를 참조하는 라이브러리 픽처라는 점이 이해되어야 한다. 새로운 라이브러리 픽처가 나타날 때, tj가 업데이트된다. 보다 구체적으로, tj의 제1 값은 T로 초기화되고, 여기서 T는 픽처 시퀀스에서 시작 픽처의 디코딩 순간의 초기 값으로서 이해될 수 있고, 요건에 기초하여 사용자에 의해 정의될 수 있다. 디코딩이 연속적으로 수행됨에 따라, 새로운 라이브러리 픽처를 참조하는 디코딩된 픽처의 디코딩에 따라 tj가 "대체"된다. 하나의 대체 간격만이 있는 것은 아니라는 점이 이해되어야 한다.
구체적으로, 가능한 구현 프로세스에서, 디코더 측은 다음의 동작들을 수행할 수 있다:
1. 라이브러리-기반 비디오 코딩 방법을 사용함으로써 인코딩을 통해 획득되는 비트스트림을 수신한다.
2. 시퀀스 헤더로부터 min_library_interval_time를 파싱하여, 비트스트림에서 허용되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격 k초를 획득한다. 이 경우에, 비트스트림은 다음의 조건을 만족하고, 디코더는 k초 내에 fk+N개의 픽처(예를 들어, N=1)를 디코딩할 필요가 있고, 여기서 f는 프레임 레이트를 나타내고, fk는 메인 비트스트림 내의 디코딩된 픽처들을 나타낸다.
라이브러리 픽처를 참조하는 메인 비트스트림 픽처 A 및 라이브러리 픽처를 참조하는 다른 메인 비트스트림 픽처 B에 대해, A 및 B에 의해 참조되는 라이브러리 픽처들에서 최대 N개의 상이한 라이브러리 픽처가 존재하는 경우, A와 B 사이의 픽처들의 수량은 비트스트림에서 요구되는, 비디오 시퀀스의 프레임 레이트 f에 대응하는 k초 내의 픽처들의 수량 이상이다. 예를 들어, k의 값은 1이다.
3. 시퀀스 헤더 내의 프로파일 및 레벨 정보에 기초하여, 현재 비트스트림이 만족하는 프로파일 및 레벨에서 허용되는 최소 디코딩 시간 간격의 하한 및 현재 프로파일 및 레벨에서 디코딩될 수 있는 픽처들의 수량 fk+N의 값 범위를 획득한다(즉, 메인 비트스트림 내의 픽처들의 수량 fk보다 최대 N개 더 많은 픽처가 디코딩되도록 허용됨).
k가 하한 이상일 때, 디코더는 현재 비트스트림이 디코더에 의해 지원되는 코딩 표준을 만족시킨다고 결정하고, 단계 4를 수행한다.
k가 하한보다 작을 때, 디코더는 수신된 비트스트림이 무효하다고 결정하고, 디코딩을 종료하거나 중단한다.
4. 디코더에 의해 k초 내에 디코딩될 수 있는 픽처들의 최대 수량 q에 기초하여, 디코더가 현재 비트스트림을 실시간으로 디코딩 및 재생할 수 있는지를 결정한다. q가 fk+N 이상일 때, 디코더는 다음의 디코딩 동작들을 수행한다. q가 fk+N보다 작을 때, 디코더는 디코딩을 중단하거나 디코딩을 종료한다.
(a) 새로운 라이브러리 픽처를 T에 참조하는 이전 메인 비트스트림 픽처의 디코딩 순간 tj를 초기화하고, 여기서 디코딩 순간 tj의 초기화 값은 디코딩될 제1 메인 비트스트림 픽처(그 디코딩 순간은 0초임)가 후보 참조 픽처로서 임의의 라이브러리 픽처를 사용할 수 있는 것을 보장해야 한다(예를 들어, 초기화 값은 -k초 이하여서, 제1 메인 비트스트림 픽처의 디코딩 순간 0과 T 사이의 차이가 k초 이상임).
(b) i번째 메인 비트스트림 픽처에 대해:
i. 픽처가 라이브러리 픽처를 참조하는 경우, 다음의 동작들 중 하나를 수행한다:
[1] 픽처의 참조 픽처 세트/구성 세트가 라이브러리 픽처 세트 L로부터의 것인 m(m>0)개의 라이브러리 픽처를 갖고, 세트 L에 있지 않은 라이브러리 픽처를 갖지 않는 경우, 새로운 라이브러리 픽처의 디코딩을 스킵하고, m개의 라이브러리 픽처 및 i번째 메인 비트스트림 픽처의 단기 참조 픽처를 사용하여 참조 픽처 세트를 형성하거나; 또는
[2] 픽처의 참조 픽처 세트가 라이브러리 픽처 세트 L로부터의 것인 m(m>0)개의 라이브러리 픽처를 갖고, 세트 L 내에 있지 않은 n(0<n<N)개의 라이브러리 픽처를 갖는 경우, 현재 디코딩된 픽처의 디코딩 순간 ti와 T 사이의 차이가 k보다 큰지를 체크하고; 및
ti-tj>=k일 때, n개의 라이브러리 픽처를 디코딩하고, m+n개의 라이브러리 픽처 및 i번째 메인 비트스트림 픽처의 단기 참조 픽처를 사용하여 참조 픽처 세트를 형성하거나; 또는
ti-tj<k일 때, 수신된 비트스트림이 무효하다고 결정하고, 디코딩을 종료 또는 중단하거나; 또는
[3] 픽처의 참조 픽처 세트가 라이브러리 픽처 세트 L로부터의 라이브러리 픽처를 갖지 않고, 세트 L 내에 있지 않은 n(0<n<N)개의 라이브러리 픽처를 갖는 경우, 현재 디코딩된 픽처의 디코딩 순간 ti와 T 사이의 차이가 k보다 큰지를 체크하고; 및
ti-tj>=k일 때, n개의 라이브러리 픽처들을 디코딩하고, n개의 라이브러리 픽처들 및 i번째 메인 비트스트림 픽처의 단기 참조 픽처를 사용하여 참조 픽처 세트를 형성하거나; 또는
ti-tj<k일 때, 수신된 비트스트림이 무효하다고 결정하고, 디코딩을 종료 또는 중단한다.
세트 L 내의 모든 라이브러리 픽처들이 사용가능하고 디코딩되었으며, 세트 L 내에 있지 않은 라이브러리 픽처들은 디코딩되지 않거나 재디코딩될 필요가 없다.
디코딩되었던 라이브러리 픽처는 불충분한 캐시 용량으로 인해 삭제되거나 대체된다.
대안적으로, 디코딩된 라이브러리 픽처는 캐시 콘텐츠 에러로 인해 손상된다.
대안적으로, 디코딩된 라이브러리 픽처는 관리 동작 에러로 인해 삭제 또는 대체된다.
대안적으로, 라이브러리 픽처의 라이프 사이클의 만료로 인해 디코딩된 라이브러리 픽처가 삭제 또는 대체되고, 재생 동작, 점프 동작 등 때문에 라이브러리 픽처가 참조될 필요가 있다.
임의의 픽처의 디코딩 순간 ti는 비트스트림 내의 정보에 기초하여 획득될 수 있거나, 실제 상황에 기초하여 디코더에 의해 획득될 수 있다는 점이 이해되어야 한다. 이것은 제한되지 않고 본 발명에서 제한된다.
ii. 픽처가 라이브러리 픽처를 참조하지 않는 경우(구체적으로, m=0 및 n=0), 현재 인코딩된 픽처의 단기 참조 픽처는 참조 픽처 세트를 형성한다.
(c) 참조 픽처 세트를 i번째 픽처의 후보 참조 픽처로서 사용하여 i번째 픽처를 디코딩한다.
(d) i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처가 아닌 경우, 이전 단계로 리턴하고, i=i+1이거나; 또는 i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처인 경우, 디코딩 프로세스가 종료된다.
예 2:
HEVC 및 VVC에서, vps에서의 신택스 요소들은 다음의 표에 도시된다.
Figure pct00003
새롭게 추가된 신택스 요소들의 시맨틱은 다음과 같다:
vps_library_picture_enable_flag는 1-비트 플래그이다. 값이 1일 때, 이는 현재 비트스트림이 외부 라이브러리 계층 비트스트림을 참조함을 표시한다. 값이 0일 때, 이는 현재 비트스트림이 라이브러리 계층 비트스트림을 참조하지 않음을 표시한다. 필드의 비트들의 수량 및 상이한 의미들을 표시하는 값들은 유연하게 정의되고 설계될 수 있다. 이것은 본 발명에 제한되지 않는다.
min_library_interval_time는 12 비트를 가지고, 현재 비트스트림에 의해 참조되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격을 설명한다. 최소 디코딩 시간 간격의 값 범위는 프로파일 및 레벨에서 제한된다. 상위 6 비트는 0 내지 59 범위의 값을 초 단위로 설명한다. 하위 6 비트는 0 내지 63 범위의 값을 설명한다. 프레임 레이트가 64보다 작을 때, 단위는 픽처이거나; 또는 프레임 레이트가 64 이상일 때, 단위는 1/64초이다.
실현가능한 실시예에서, min_library_interval_time의 시맨틱은 고정 비트 길이 또는 가변 비트 길이를 갖는 심벌일 수 있고, 현재 비트스트림에 의해 참조되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격을 설명한다. 예를 들어, 신택스 요소의 비트들은 각각 시간, 분 및 초를 설명한다. 다른 예로서, 신택스 요소는 초 단위의 값을 설명한다. 다른 예를 들어, 신택스 요소는 픽처의 유닛에서의 값을 설명한다. 최소 디코딩 시간 간격의 값 범위는 프로파일 및 레벨에서 제한된다. 최소 디코딩 시간 간격의 값 범위의 하한은 상이한 프로파일들 및 레벨들에서 결정될 수 있다.
구체적으로, 가능한 구현 프로세스에서, 인코더 측은 예 1에서의 인코더의 동작들을 수행할 수 있고, 디코더 측은 예 1에서의 디코더의 동작들을 수행할 수 있다.
예 3:
HEVC 및 VVC에서, sps 내의 신택스 요소들은 다음의 표에 도시된다.
Figure pct00004
새롭게 추가된 신택스 요소들의 시맨틱은 다음과 같다:
sps_library_picture_enable_flag는 1-비트 플래그이다. 값이 1일 때, 이는 현재 비트스트림이 외부 라이브러리 계층 비트스트림을 참조함을 표시한다. 값이 0일 때, 이는 현재 비트스트림이 라이브러리 계층 비트스트림을 참조하지 않음을 표시한다. 필드의 비트들의 수량 및 상이한 의미들을 표시하는 값들은 유연하게 정의되고 설계될 수 있다. 이것은 본 발명에 제한되지 않는다.
min_library_interval_time는 12 비트를 가지고, 현재 비트스트림에 의해 참조되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격을 설명한다. 최소 디코딩 시간 간격의 값 범위는 프로파일 및 레벨에서 제한된다. 상위 6 비트는 0 내지 59 범위의 값을 초 단위로 설명한다. 하위 6 비트는 0 내지 63 범위의 값을 설명한다. 프레임 레이트가 64보다 작을 때, 단위는 픽처이거나; 또는 프레임 레이트가 64 이상일 때, 단위는 1/64초이다.
실현가능한 실시예에서, min_library_interval_time의 시맨틱은 고정 비트 길이 또는 가변 비트 길이를 갖는 심벌일 수 있고, 현재 비트스트림에 의해 참조되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격을 설명한다. 예를 들어, 신택스 요소의 비트들은 각각 시간, 분 및 초를 설명한다. 다른 예로서, 신택스 요소는 초 단위의 값을 설명한다. 다른 예를 들어, 신택스 요소는 픽처의 유닛에서의 값을 설명한다. 최소 디코딩 시간 간격의 값 범위는 프로파일 및 레벨에서 제한된다. 최소 디코딩 시간 간격의 값 범위의 하한은 상이한 프로파일들 및 레벨들에서 결정될 수 있다.
구체적으로, 가능한 구현 프로세스에서, 인코더 측은 예 1에서의 인코더의 동작들을 수행할 수 있고, 디코더 측은 예 1에서의 디코더의 동작들을 수행할 수 있다.
보다 구체적으로, 본 발명에서의 가능한 설계는 다음의 구현들을 포함한다.
실시예 1
메인 비디오 비트스트림 픽처에 의해 참조되는 라이브러리 픽처들 사이의 최소 시간 간격은 제한된다.
해결책 1: 라이브러리 픽처를 참조하는 메인 비트스트림 픽처 A 및 라이브러리 픽처를 참조하는 다른 메인 비트스트림 픽처 B에 대해, A 및 B에 의해 참조되는 라이브러리 픽처들이 상이한 경우(하나 이상의 상이한 라이브러리 픽처가 존재함), A와 B 사이의 픽처들의 수량은 비트스트림에서 요구되는, 비디오 시퀀스의 프레임 레이트에 대응하는 k초 내의 픽처들의 수량 이상이다. 예를 들어, k의 값은 1이다.
인코더는 다음의 동작들을 수행한다:
S1: 라이브러리 픽처를 참조하는 이전 메인 비트스트림 픽처의 인코딩 순간 T를 초기화하고- 인코딩 순간 T의 초기화 값은 -k 이하임 -; 메인 비트스트림 픽처의 인코딩 동안 참조될 수 있는 라이브러리 픽처 세트 L을 무한으로 초기화한다.
S2: i번째 메인 비트스트림 픽처가 인코딩될 때, 현재 인코딩된 픽처의 인코딩 순간 ti와 T 사이의 차이가 k보다 더 큰지를 체크하고; 및
ti-T>=k일 때, 라이브러리 픽처 세트 L로부터 m개(m>=0)의 라이브러리 픽처를 선택하고, 세트 L 내에 있지 않은 n개(n>=0)의 라이브러리 픽처를 선택하거나- m+n개의 라이브러리 픽처 및 i번째 메인 비트스트림 픽처의 단기 참조 픽처는 참조 픽처 세트를 형성함 -; 또는
ti-T<k일 때, 라이브러리 픽처 세트 L로부터 m개(m>=0)의 라이브러리 픽처를 선택한다- m개의 라이브러리 픽처 및 i번째 메인 비트스트림 픽처의 단기 참조 픽처는 참조 픽처 세트를 형성함 -.
S3: 참조 픽처 세트를 사용하여 i번째 인코딩된 픽처를 인코딩하고; n>0일 때, n개의 선택된 라이브러리 픽처를 참조될 수 있는 새로운 라이브러리 픽처 세트 L로서 사용하고, T의 값을 ti로 업데이트하고; n=0일 때, T를 변경하지 않고 유지한다.
S4: i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처가 아닌 경우, 단계 2로 리턴하고, i=i+1이거나; 또는 i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처인 경우, 인코딩 프로세스가 종료된다.
인코더에 의해 생성된 비트스트림의 구조가 도 6a에 도시된다.
전술한 예시적인 비트스트림에서, L*은 라이브러리 픽처를 나타내고, R*은 라이브러리 픽처를 참조하는 인코딩된 픽처를 나타내고, N*은 라이브러리 픽처를 참조하지 않는 인코딩된 픽처를 나타낸다. 전술한 예시적인 비트스트림을 생성하는 인코더는 다음의 예시적인 동작들을 수행한다(설명의 용이함을 위해, R 픽처 및 N 픽처에 의해 참조되는 단기 참조 픽처들은 상세히 설명되지 않음):
k=3이고 n<=1이라고 가정된다.
T를 T=-k로 초기화하고; 라이브러리 픽처 세트 L을 무한대로, 즉, L=∞로 초기화한다.
0-T>=k이기 때문에, R0에 대해, 라이브러리 픽처 세트 L로부터 L0을 참조 픽처로서 선택하고; 인코딩을 수행하고, T를 T=0으로 업데이트하고, 라이브러리 픽처 세트 L을 L={L0}으로 업데이트한다.
N1 및 N2는 라이브러리 픽처를 참조하지 않는다.
3-T>=k이기 때문에, R3에 대해, 라이브러리 픽처 세트 L로부터 L0(세트 L 내의 모든 픽처들)을 참조 픽처로서 선택하고, 라이브러리 픽처 세트 L에 속하지 않는 L1을 참조 픽처로서 선택하고; 인코딩을 수행하고, T를 T=3으로 업데이트하고, 라이브러리 픽처 세트 L을 L= {L0, L1}로 업데이트한다.
N4 및 N5는 라이브러리 픽처를 참조하지 않는다.
6-T>=k이기 때문에, R6에 대해, 라이브러리 픽처 세트 L로부터 L0(세트 L의 서브세트에서의 픽처)을 참조 픽처로서 선택하고, 라이브러리 픽처 세트 L에 속하지 않는 L2를 참조 픽처로서 선택하고; 인코딩을 수행하고, T를 T=6으로 업데이트하고, 라이브러리 픽처 세트 L을 L={L0, L2}로 업데이트한다.
N7은 라이브러리 픽처를 참조하지 않는다.
8-T<k이기 때문에, R8에 대해, 라이브러리 픽처 세트 L로부터 L2를 참조 픽처로서 선택하고(라이브러리 픽처 세트 L에 속하지 않는 라이브러리 픽처는 참조 픽처로서 선택될 수 없음); 인코딩을 수행하고, T를 T=8로 업데이트하고, 라이브러리 픽처 세트 L을 L={L2}로 업데이트한다.
N9 및 N10은 라이브러리 픽처를 참조하지 않는다.
11-T>=k이기 때문에, R11에 대해, 라이브러리 픽처 세트 L로부터 L2(세트 L 내의 모든 픽처들)를 참조 픽처로서 선택하고, 라이브러리 픽처 세트 L에 속하지 않는 L3을 참조 픽처로서 선택하고; 인코딩을 수행하고, T를 T=11로 업데이트하고, 라이브러리 픽처 세트 L을 L={L2, L3}로 업데이트한다.
인코딩이 종료된다.
디코더는 다음의 동작들을 수행한다:
라이브러리-기반 비디오 코딩 방법을 사용함으로써 인코딩을 통해 획득되는 비트스트림을 수신하고, 비트스트림이 이하의 조건을 충족시키는 경우, 디코더는 k초 내에 fk+n개의 픽처를 디코딩할 필요가 있다.
(a) 라이브러리 픽처를 참조하는 메인 비트스트림 픽처 A 및 라이브러리 픽처를 참조하는 다른 메인 비트스트림 픽처 B에 대해, A 및 B에 의해 참조되는 라이브러리 픽처들에 n개의 상이한 라이브러리 픽처가 존재하는 경우, A와 B 사이의 픽처들의 수량은 비트스트림에서 요구되는, 비디오 시퀀스의 프레임 레이트 f에 대응하는 k초 내의 픽처들의 수량 이상이다. 예를 들어, k의 값은 1이다.
i번째 메인 비트스트림 픽처에 대해:
(a) 픽처가 라이브러리 픽처를 참조하는 경우, 이전의 메인 비트스트림 픽처에 의해 참조되는 라이브러리 픽처에 대해 새롭게 추가되는 라이브러리 픽처를 디코딩하고- 최대 n개의 새롭게 추가된 라이브러리 픽처가 존재함 -; 전술한 라이브러리 픽처를 참조 픽처로서 사용하여 메인 비트스트림 픽처를 디코딩한다.
(b) 픽처가 라이브러리 픽처를 참조하지 않는 경우, 메인 비트스트림 픽처를 디코딩한다.
i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처가 아닌 경우, 이전 단계로 복귀하고, i=i+1이거나; 또는 i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처인 경우, 디코딩 프로세스가 종료된다.
예를 들어, (k초 내에 최대 하나의 라이브러리 픽처를 디코딩하는 것으로 제한된) 디코더가 도 6b에 도시된 비트스트림을 수신할 때, 디코더는 실시간 디코딩을 구현할 수 있다.
예를 들어, (k초 내에 최대 하나의 라이브러리 픽처를 디코딩하는 것으로 제한된) 디코더가 도 6c에 도시된 비트스트림을 수신할 때, 디코더는 R3 및 R8의 실시간 디코딩을 구현할 수 없는데, 그 이유는 R3과 R0 사이의 시간 간격이 k초보다 크더라도 R3이 R0보다 3개 더 많은 라이브러리 픽처를 참조하기 때문이고, R8과 R6 사이의 시간 간격이 R8 및 R6에 의해 참조되는 라이브러리 픽처들 내에 하나의 상이한 라이브러리 픽처만이 존재하더라도 k초보다 작기 때문이다.
실시예 2
라이브러리 픽처를 참조하는 인코딩된 픽처 A에 대해, 라이브러리 픽처를 참조하고 A가 디코딩되기 이전에 디코딩되는 인코딩된 픽처는 B로서 표기되고, A는 이하의 조건들 모두를 만족해야 한다:
비트스트림에서 A와 B 사이에 위치하는 모든 인코딩된 픽처들은 라이브러리 픽처를 참조하지 않는다.
A에 의해 참조되는 라이브러리 픽처들에 있지만 B에 의해 참조되지 않는 최대 n개의 라이브러리 픽처가 존재한다.
A에 의해 참조되지만 B에 의해 참조되지 않는 n개의 라이브러리 픽처가 존재할 때, A와 B 사이에 디코딩되는 픽처들의 수량은 적어도 비트스트림에서 요구되는, 비디오 시퀀스의 프레임 레이트에 대응하는 k초 내의 픽처들의 수량이다. k초 제한의 영향은 k초마다 n개의 더 많은 픽처를 디코딩하는 능력이 있다는 것이다.
인코더는 다음의 동작들을 수행한다:
S1: 라이브러리 픽처를 참조하는 이전 메인 비트스트림 픽처의 인코딩 순간 T를 초기화하고- 인코딩 순간 T의 초기화 값은 -k 이하임 -; 메인 비트스트림 픽처의 인코딩 동안 참조될 수 있는 라이브러리 픽처 세트 L을 무한으로 초기화한다.
S2: i번째 메인 비트스트림 픽처가 인코딩될 때, 현재 인코딩된 픽처의 인코딩 순간 ti와 T 사이의 차이가 k보다 더 큰지를 체크하고; 및
(a) ti-T>=k일 때, 라이브러리 픽처 세트 L로부터 m개(m>=0)의 라이브러리 픽처를 선택하고, 세트 L 내에 있지 않은 n개(n>=0)의 라이브러리 픽처를 선택하거나- m+n개의 라이브러리 픽처 및 i번째 메인 비트스트림 픽처의 단기 참조 픽처는 참조 픽처 세트를 형성함 -; 또는
(b) ti-T<k일 때, 참조 픽처 세트를 형성하기 위해 i번째 메인 비트스트림 픽처의 단기 참조 픽처만을 선택한다.
S3: 참조 픽처 세트를 사용하여 i번째 인코딩된 픽처를 인코딩하고; m+n>0일 때, m+n개의 선택된 라이브러리 픽처들을 참조될 수 있는 새로운 라이브러리 픽처 세트 L로서 사용하고, T의 값을 ti로 업데이트한다.
S4: i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처가 아닌 경우, 단계 2로 리턴하고, i=i+1이거나; 또는 i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처인 경우, 인코딩 프로세스가 종료된다.
인코더에 의해 생성된 비트스트림의 구조는 도 7a에 도시될 수 있다. 예시적인 비트스트림에서, L*은 라이브러리 픽처를 나타내고, R*은 라이브러리 픽처를 참조하는 인코딩된 픽처를 나타내고, N*은 라이브러리 픽처를 참조하지 않는 인코딩된 픽처를 나타낸다.
디코더는 다음의 동작들을 수행한다:
라이브러리-기반 비디오 코딩 방법을 사용함으로써 인코딩을 통해 획득되는 비트스트림을 수신하고, 비트스트림이 이하의 조건을 충족시키는 경우, 디코더는 k초 내에 fk+n개의 픽처를 디코딩할 필요가 있다.
(a) 라이브러리 픽처를 참조하는 메인 비트스트림 픽처 A 및 라이브러리 픽처를 참조하는 다른 메인 비트스트림 픽처 B에 대해, A와 B 사이의 픽처는 라이브러리 픽처를 참조하지 않는다. A 및 B에 의해 참조되는 라이브러리 픽처들 내에 n개의 상이한 라이브러리 픽처가 존재하는 경우, A와 B 사이의 픽처들의 수량은 비트스트림에서 요구되는, 비디오 시퀀스의 프레임 레이트 f에 대응하는 k초 내의 픽처들의 수량 이상이다. 예를 들어, k의 값은 1이다.
i번째 메인 비트스트림 픽처에 대해:
(a) 픽처가 라이브러리 픽처를 참조하는 경우, 이전의 메인 비트스트림 픽처에 의해 참조되는 라이브러리 픽처에 대해 새롭게 추가되는 라이브러리 픽처를 디코딩하고- 최대 n개의 새롭게 추가된 라이브러리 픽처가 존재함 -; 전술한 라이브러리 픽처를 참조 픽처로서 사용하여 메인 비트스트림 픽처를 디코딩한다.
(b) 픽처가 라이브러리 픽처를 참조하지 않는 경우, 메인 비트스트림 픽처를 디코딩한다.
i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처가 아닌 경우, 이전 단계로 복귀하고, i=i+1이거나; 또는 i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처인 경우, 디코딩 프로세스가 종료된다.
예를 들어, (k초 내에 최대 하나의 라이브러리 픽처를 디코딩하는 것으로 제한된) 디코더가 도 7b에 도시된 비트스트림을 수신할 때, 디코더는 실시간 디코딩을 구현할 수 있다.
예를 들어, (k초 내에 최대 1개의 라이브러리 픽처를 디코딩하는 것으로 제한된) 디코더가 도 7c에 도시된 비트스트림을 수신할 때, R3과 R0 사이의 시간 간격이 k초보다 크더라도 R3이 R0보다 3개 더 많은 라이브러리 픽처들을 참조하기 때문에, 그리고 R8에 의해 참조되는 라이브러리 픽처가 R6에 의해 참조되는 라이브러리 픽처의 서브세트이더라도 R8과 R6 사이의 시간 간격이 k초보다 작기 때문에(즉, 새로운 라이브러리 픽처의 디코딩이 발생하지 않음), 디코더는 R3 및 R8의 실시간 디코딩을 구현할 수 없다.
실시예 3
라이브러리 픽처를 참조하는 인코딩된 픽처 A에 대해, 라이브러리 픽처를 참조하고 A가 디코딩되기 이전에 디코딩되는 인코딩된 픽처는 B로서 표기되고, A는 이하의 조건들 모두를 만족해야 한다:
비트스트림에서 A와 B 사이에 위치되는 인코딩된 픽처가 라이브러리 픽처를 참조하는 경우, 인코딩된 픽처에 의해 참조되는 라이브러리 픽처는 B에 의해 참조되는 라이브러리 픽처 또는 B에 의해 참조되는 라이브러리 픽처의 서브세트이어야 한다.
A에 의해 참조되지만 B에 의해 참조되지 않는 라이브러리 픽처에는 최대 하나의 라이브러리 픽처가 있다.
A와 B 사이에서 디코딩되는 픽처들의 수량은 적어도 비트스트림에서 요구되는, 비디오 시퀀스의 프레임 레이트에 대응하는 k초 내의 픽처들의 수량이다. k초 제한의 영향은 k초마다 하나 더 많은 픽처를 디코딩하는 능력이 있다는 것이다.
인코더는 다음의 동작들을 수행한다:
1. 라이브러리 픽처를 참조하는 이전 메인 비트스트림 픽처의 인코딩 순간 T를 초기화하고- 인코딩 순간 T의 초기화 값은 -k 이하임 -; 메인 비트스트림 픽처의 인코딩 동안 참조될 수 있는 라이브러리 픽처 세트 L을 무한으로 초기화한다.
2. i번째 메인 비트스트림 픽처가 인코딩될 때, 현재 인코딩된 픽처의 인코딩 순간 ti와 T 사이의 차이가 k보다 더 큰지를 체크하고; 및
(a) ti-T>=k일 때, 라이브러리 픽처 세트 L로부터 m개(m>=0)의 라이브러리 픽처를 선택하고, 세트 L 내에 있지 않은 n개(n>=0)의 라이브러리 픽처를 선택하거나- m+n개의 라이브러리 픽처 및 i번째 메인 비트스트림 픽처의 단기 참조 픽처는 참조 픽처 세트를 형성함 -; m+n>0일 때, m+n개의 선택된 라이브러리 픽처를 참조될 수 있는 새로운 라이브러리 픽처 세트 L로서 사용하고, T의 값을 ti로 업데이트하거나; 또는
(b) ti-T<k일 때, 라이브러리 픽처 세트 L로부터 m개(m>=0)의 라이브러리 픽처를 선택한다- m개의 라이브러리 픽처 및 i번째 메인 비트스트림 픽처의 단기 참조 픽처는 참조 픽처 세트를 형성함 -.
3. 참조 픽처 세트를 사용하여 i번째 인코딩된 픽처를 인코딩한다.
4. i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처가 아닌 경우, 단계 2로 리턴하고, i=i+1이거나; 또는 i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처인 경우, 인코딩 프로세스가 종료된다.
인코더에 의해 생성된 비트스트림의 구조는 도 8a에 도시될 수 있다. 예시적인 비트스트림에서, L*은 라이브러리 픽처를 나타내고, R*은 라이브러리 픽처를 참조하는 인코딩된 픽처를 나타내고, N*은 라이브러리 픽처를 참조하지 않는 인코딩된 픽처를 나타낸다.
디코더는 다음의 동작들을 수행한다:
라이브러리-기반 비디오 코딩 방법을 사용함으로써 인코딩을 통해 획득되는 비트스트림을 수신하고, 비트스트림이 이하의 조건을 충족시키는 경우, 디코더는 k초 내에 fk+n개의 픽처를 디코딩할 필요가 있다.
(a) 라이브러리 픽처를 참조하는 메인 비트스트림 픽처 A 및 라이브러리 픽처를 참조하는 다른 메인 비트스트림 픽처 B에 대해, A와 B 사이의 픽처는 A에 의해 참조되는 라이브러리 픽처 또는 A에 의해 참조되는 라이브러리 픽처의 서브세트만을 참조한다. A 및 B에 의해 참조되는 라이브러리 픽처들 내에 n개의 상이한 라이브러리 픽처가 존재하는 경우, A와 B 사이의 픽처들의 수량은 비트스트림에서 요구되는, 비디오 시퀀스의 프레임 레이트 f에 대응하는 k초 내의 픽처들의 수량보다 작지 않다. 예를 들어, k의 값은 1이다.
i번째 메인 비트스트림 픽처에 대해:
(a) 픽처가 라이브러리 픽처를 참조하는 경우, 이전의 메인 비트스트림 픽처에 의해 참조되는 라이브러리 픽처에 대해 새롭게 추가되는 라이브러리 픽처를 디코딩하고- 최대 n개의 새롭게 추가된 라이브러리 픽처가 존재함 -; 전술한 라이브러리 픽처를 참조 픽처로서 사용하여 메인 비트스트림 픽처를 디코딩한다.
(b) 픽처가 라이브러리 픽처를 참조하지 않는 경우, 메인 비트스트림 픽처를 디코딩한다.
i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처가 아닌 경우, 이전 단계로 복귀하고, i=i+1이거나; 또는 i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처인 경우, 디코딩 프로세스가 종료된다.
예를 들어, 디코더(최대 하나의 라이브러리 픽처를 k초로 디코딩하는 것으로 제한됨)가 도 8b에 도시된 비트스트림을 수신할 때, 디코더는 실시간 디코딩을 구현할 수 있다.
예를 들어,(k초 내에 최대 하나의 라이브러리 픽처를 디코딩하는 것으로 제한된) 디코더가 도 8c에 도시된 비트스트림을 수신할 때, 디코더는 R3 및 R8의 실시간 디코딩을 구현할 수 없는데, 그 이유는 R3과 R0 사이의 시간 간격이 k초보다 크더라도 R3이 R0보다 3개 더 많은 라이브러리 픽처를 참조하기 때문이고, R8과 R6 사이의 시간 간격이 R8 및 R6에 의해 참조되는 라이브러리 픽처들 내에 하나의 상이한 라이브러리 픽처만이 존재하더라도 k초보다 작기 때문이다.
실시예 4
시퀀스 헤더를 바로 뒤따르고, 랜덤 액세스를 지원하고, 라이브러리 픽처만을 참조하는 RL 픽처 A에 대해, 비트스트림에 있고, 시퀀스 헤더를 바로 뒤따르고, A 이전에 위치되는 적어도 하나의 RL 픽처에서 A에 가장 가까운 RL 픽처는 B로서 표기되고, A는 다음의 조건들 모두를 충족시켜야 한다:
A에 의해 참조되지만 B에 의해 참조되지 않는 라이브러리 픽처에는 최대 하나의 라이브러리 픽처가 있다.
A와 B 사이에서 디코딩되는 픽처들의 수량은 적어도 비트스트림에서 요구되는, 비디오 시퀀스의 프레임 레이트에 대응하는 k초 내의 픽처들의 수량이다. k초 제한의 영향은 k초마다 하나 더 많은 픽처를 디코딩하는 능력이 있다는 것이다.
인코더는 다음의 동작들을 수행한다:
1. 라이브러리 픽처를 참조하는 이전 메인 비트스트림 픽처의 인코딩 순간 T를 초기화하고- 인코딩 순간 T의 초기화 값은 -k 이하임 -; 메인 비트스트림 픽처의 인코딩 동안 참조될 수 있는 라이브러리 픽처 세트 L을 무한으로 초기화한다.
2. i번째 메인 비트스트림 픽처가 인코딩될 때:
(a) 현재 픽처가 RL 픽처인 경우, 현재 인코딩된 픽처의 인코딩 순간 ti와 T 사이의 차이가 k보다 큰지를 체크하고; 및
(1) ti-T>=k일 때, 라이브러리 픽처 세트 L로부터 m개(m>=0)의 라이브러리 픽처를 선택하고, 세트 L 내에 있지 않은 n개(n>=0)의 라이브러리 픽처를 선택하고- m+n개의 라이브러리 픽처는 참조 픽처 세트를 형성함 -; m+n>0일 때, m+n개의 선택된 라이브러리 픽처를 참조될 수 있는 새로운 라이브러리 픽처 세트 L로서 사용하고, T의 값을 ti로 업데이트하거나; 또는
(2) ti-T<k일 때, 라이브러리 픽처 세트 L로부터 m개(m>=0)의 라이브러리 픽처를 선택한다- m개의 라이브러리 픽처는 참조 픽처 세트를 형성함 -.
(b) 현재 픽처가 RL 픽처가 아닌 경우, 라이브러리 픽처 세트 L로부터 m개(m>=0)의 라이브러리 픽처를 선택한다- m개의 라이브러리 픽처는 참조 픽처 세트를 형성함 -.
3. 참조 픽처 세트를 사용하여 i번째 인코딩된 픽처를 인코딩한다.
4. i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처가 아닌 경우, 단계 2로 리턴하고, i=i+1이거나; 또는 i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처인 경우, 인코딩 프로세스가 종료된다.
인코더에 의해 생성된 비트스트림의 구조가 도 9a에 도시될 수 있다. 예시적인 비트스트림에서, L*은 라이브러리 픽처를 나타내고, R*은 라이브러리 픽처를 참조하는 인코딩된 픽처를 나타내고, RL*은 라이브러리 픽처만을 참조하는 인코딩된 픽처를 나타내고, N*은 라이브러리 픽처를 참조하지 않는 인코딩된 픽처를 나타낸다.
디코더는 다음의 동작들을 수행한다:
S1: 라이브러리-기반 비디오 코딩 방법을 사용하여 인코딩을 통해 획득된 비트스트림을 수신하고, 비트스트림이 다음 조건을 충족시키는 경우, 디코더는 k초 내에 fk+n개의 픽처를 디코딩할 필요가 있다.
(a) 시퀀스 헤더를 바로 뒤따르고, 랜덤 액세스를 지원하고, 라이브러리 픽처만을 참조하는 RL 픽처 A에 대해, 비트스트림에 있고, 시퀀스 헤더를 바로 뒤따르고, A 이전에 위치되는 적어도 하나의 RL 픽처에서 A에 가장 가까운 RL 픽처는 B로서 표기된다. A에 의해 참조되지만 B에 의해 참조되지 않는 라이브러리 픽처들에는 최대 n개의 라이브러리 픽처가 존재하고, A와 B 사이에 디코딩되는 픽처들의 수량은 적어도 비트스트림에서 요구되는, 비디오 시퀀스의 프레임 레이트 f에 대응하는 k초 내의 픽처들의 수량이다. k초 제한의 영향은 k초마다 하나 더 많은 픽처를 디코딩하는 능력이 있다는 것이다.
S2: i번째 메인 비트스트림 픽처에 대해:
(a) 픽처가 라이브러리 픽처를 참조하는 경우, 이전의 메인 비트스트림 픽처에 의해 참조되는 라이브러리 픽처에 대해 새롭게 추가되는 라이브러리 픽처를 디코딩하고- 최대 n개의 새롭게 추가된 라이브러리 픽처가 존재함 -; 전술한 라이브러리 픽처를 참조 픽처로서 사용하여 메인 비트스트림 픽처를 디코딩한다.
(b) 픽처가 라이브러리 픽처를 참조하지 않는 경우, 메인 비트스트림 픽처를 디코딩한다.
S3: i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처가 아닌 경우, 이전 단계로 복귀하고, i=i+1이거나; 또는 i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처인 경우, 디코딩 프로세스가 종료된다.
예를 들어, (k초 내에 최대 하나의 라이브러리 픽처를 디코딩하는 것으로 제한된) 디코더가 도 9b에 도시된 비트스트림을 수신할 때, 디코더는 실시간 디코딩을 구현할 수 있다.
예를 들어, (k초 내에 최대 하나의 라이브러리 픽처를 디코딩하는 것으로 제한된) 디코더가 도 9c에 도시된 비트스트림을 수신할 때, 디코더는 RL2와 RL0 사이의 시간 간격이 RL2와 RL0에 의해 참조되는 라이브러리 픽처들 내에 하나의 상이한 라이브러리 픽처만이 존재하더라도 k초보다 작기 때문에, 그리고 RL8과 RL5 사이의 시간 간격이 k초보다 크더라도 RL8이 RL0보다 2개 더 많은 라이브러리 픽처를 참조하기 때문에, RL2와 RL8의 실시간 디코딩을 구현할 수 없다.
전술된 실시예들을 참조하여, 도 9d에 도시된 바와 같이, 본 출원은 선택적인 디코딩 방법(9000)을 개시한다. 디코딩 방법(9000)은 다음의 단계들을 포함한다:
S9001: 제1 디코딩된 픽처를 획득- 제1 디코딩된 픽처는 메인 비트스트림에 있고, 시퀀스 헤더를 바로 뒤따르고, 현재 디코딩될 픽처 이전에 위치되고, 랜덤 액세스를 지원하고, 라이브러리 픽처만을 참조하는 적어도 하나의 픽처에서 현재 디코딩될 픽처에 가장 가까운 픽처임 -.
제1 디코딩된 픽처는 전술된 실시예들에서 픽처 B로서 이해될 수 있지만 이에 제한되는 것은 아니고, 현재 디코딩될 픽처는 전술된 실시예들에서 픽처 A로서 이해될 수 있지만 이에 제한되는 것은 아니다.
S9002: 현재 디코딩될 픽처의 참조 픽처로서 새로운 라이브러리 픽처를 사용하는 단계- 현재 디코딩될 픽처는 랜덤 액세스를 지원하고 라이브러리 픽처만을 참조하는 픽처임 -.
메인 비트스트림에서 현재 디코딩될 픽처와 제1 디코딩된 픽처 사이에 디코딩되는 픽처들의 수량은 적어도 f*k이지만, 예를 들어, f*k+n에 제한되지 않고, 여기서 k는 메인 비트스트림에서 허용되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격이고, f는 메인 비트스트림에서 요구되는, 비디오 시퀀스의 프레임 레이트이다. 새로운 라이브러리 픽처들의 수량은 미리 설정된 값 n 이하이고, 여기서 n은 양의 정수이다. 새로운 라이브러리 픽처는 현재 디코딩될 픽처(예를 들어, 픽처 A)에 의해 참조되지만 제1 디코딩된 픽처(예를 들어, 픽처 B)에 의해 참조되지 않는 라이브러리 픽처이다. 새로운 라이브러리 픽처는 라이브러리 비트스트림을 디코딩하는 것에 의해 획득된다. 선택적으로, n의 값은 1 및 2를 포함할 수 있지만 이에 제한되지 않는다. 새로운 라이브러리 픽처는 라이브러리 비트스트림을 디코딩하는 것에 의해 획득될 수 있다.
또한, 방법 9000은 다음의 단계를 추가로 포함할 수 있다:
S9003: 새로운 라이브러리 픽처에 기초하여 현재 디코딩될 픽처를 디코딩한다.
그에 대응하여, 전술된 방법 9000은 (도 12에 도시된 바와 같이) 디바이스(1000) 상에서 실행되거나 그에 적용될 수 있다. 구체적으로, 제2 획득 모듈(1002)은 S9001을 수행할 수 있고, 결정 모듈(1003)은 S9002를 수행할 수 있다.
특정 구현 프로세스에서, 디바이스(1000)는 디코딩 모듈(1004) 을 추가로 포함할 수 있다(도 12에 도시되지 않음). 디코딩 모듈(1004)은 구체적으로 S9003을 수행할 수 있다.
실시예 5
비트스트림에서 각각 2개의 연속적인 시퀀스 헤더를 바로 뒤따르는 (각각이 라이브러리 픽처를 참조하고 랜덤 액세스를 지원할 수 있는) RL 픽처들에 대해, 비트스트림에서 후자의 RL 픽처에 의해 참조되는 라이브러리 픽처에 있고 비트스트림에서 전자의 RL 픽처에 의해 참조되는 라이브러리 픽처와 상이한 최대 하나의 라이브러리 픽처가 존재한다. 또한, 비트스트림에서 후자의 RL 픽처가 비트스트림 내의 전자의 RL 픽처에 의해 참조되는 라이브러리 픽처와 상이한 라이브러리 픽처를 참조할 때, 적어도 k초 내에 표시되는 픽처가 2개의 연속적인 시퀀스 헤더 사이에 포함되어야 한다. k초 제한의 영향은 k초마다 하나 더 많은 픽처를 디코딩하는 능력이 있다는 것이다.
인코더는 다음의 동작들을 수행한다:
1. 라이브러리 픽처를 참조하는 이전 메인 비트스트림 픽처의 인코딩 순간 T를 초기화하고- 인코딩 순간 T의 초기화 값은 -k 이하임 -; 메인 비트스트림 픽처의 인코딩 동안 참조될 수 있는 라이브러리 픽처 세트 L을 무한으로 초기화한다.
2. i번째 메인 비트스트림 픽처가 인코딩될 때:
(a) 현재 픽처가 RL 픽처이고, RL 픽처가 제1 RL 픽처가 아닌 경우, 현재 인코딩된 픽처의 인코딩 순간 ti와 T 사이의 차이가 k보다 큰지를 체크하고; 및
(1) ti-T>=k일 때, 라이브러리 픽처 세트 L로부터 m개(m>=0)의 라이브러리 픽처를 선택하고, 세트 L 내에 있지 않은 n개(n>=0)의 라이브러리 픽처를 선택하고- m+n개의 라이브러리 픽처는 참조 픽처 세트를 형성함 -; m+n>0일 때, m+n개의 선택된 라이브러리 픽처를 참조될 수 있는 새로운 라이브러리 픽처 세트 L로서 사용하고, T의 값을 ti로 업데이트하거나; 또는
(2) ti-T<k일 때, 라이브러리 픽처 세트 L로부터 m개(m>=0)의 라이브러리 픽처를 선택한다- m개의 라이브러리 픽처는 참조 픽처 세트를 형성함 -.
(b) 현재 픽처가 RL 픽처가 아닌 경우, 라이브러리 픽처 세트 L로부터 m개(m>=0)의 라이브러리 픽처를 선택한다- m개의 라이브러리 픽처는 참조 픽처 세트를 형성함 -.
3. 참조 픽처 세트를 사용하여 i번째 인코딩된 픽처를 인코딩한다.
4. i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처가 아닌 경우, 단계 2로 리턴하고, i=i+1이거나; 또는 i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처인 경우, 인코딩 프로세스가 종료된다.
인코더에 의해 생성된 비트스트림의 구조는 도 10a에 도시되어 있고, RL3과 RL0 사이에는 전술된 디코딩 제한이 존재하지 않는다. 예시적인 비트스트림에서, L*은 라이브러리 픽처를 나타내고, R*은 라이브러리 픽처를 참조하는 인코딩된 픽처를 나타내고, RL*은 라이브러리 픽처만을 참조하는 인코딩된 픽처를 나타내고, N*은 라이브러리 픽처를 참조하지 않는 인코딩된 픽처를 나타낸다.
디코더는 다음의 동작들을 수행한다:
라이브러리-기반 비디오 코딩 방법을 사용함으로써 인코딩을 통해 획득되는 비트스트림을 수신하고, 비트스트림이 이하의 조건을 충족시키는 경우, 디코더는 k초 내에 fk+n개의 픽처를 디코딩할 필요가 있다.
(a) 비트스트림에서의 시퀀스 헤더를 바로 뒤따르고, 랜덤 액세스를 지원하고, 라이브러리 픽처만을 참조하는 RL 픽처 A에 대해, 비트스트림에 있고, 시퀀스 헤더를 바로 뒤따르고, A 이전에 위치되는 적어도 하나의 RL 픽처에서 A에 가장 가까운 RL 픽처는 B로서 표기되고, 여기서 RL 픽처 A 및 RL 픽처 B가 바로 뒤따르는 시퀀스 헤더들은 2개의 연속적인 시퀀스 헤더이다. A에 의해 참조되지만 B에 의해 참조되지 않는 라이브러리 픽처들에는 최대 n개의 라이브러리 픽처가 존재하고, A와 B 사이에 디코딩되는 픽처들의 수량은 적어도 비트스트림에서 요구되는, 비디오 시퀀스의 프레임 레이트 f에 대응하는 k초 내의 픽처들의 수량이다. k초 제한의 영향은 k초마다 하나 더 많은 픽처를 디코딩하는 능력이 있다는 것이다.
i번째 메인 비트스트림 픽처에 대해:
(a) 픽처가 라이브러리 픽처를 참조하는 경우, 이전의 메인 비트스트림 픽처에 의해 참조되는 라이브러리 픽처에 대해 새롭게 추가되는 라이브러리 픽처를 디코딩하고- 최대 n개의 새롭게 추가된 라이브러리 픽처가 존재함 -; 전술한 라이브러리 픽처를 참조 픽처로서 사용하여 메인 비트스트림 픽처를 디코딩한다.
(b) 픽처가 라이브러리 픽처를 참조하지 않는 경우, 메인 비트스트림 픽처를 디코딩한다.
i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처가 아닌 경우, 이전 단계로 복귀하고, i=i+1이거나; 또는 i번째 메인 비트스트림 픽처가 시퀀스에서의 마지막 픽처인 경우, 디코딩 프로세스가 종료된다.
예를 들어, (k초 내에 최대 1개의 라이브러리 픽처를 디코딩하는 것으로 제한된) 디코더가 도 10b에 도시된 비트스트림을 수신할 때, 디코더는 실시간 디코딩을 구현할 수 있는데, 그 이유는 RL0이 복수의 라이브러리 픽처를 참조하더라도 허용되는 시작 지연으로 인한 시작 지연을 증가시킴으로써 RL0에 대응하는 라이브러리 픽처의 디코딩 시간이 획득될 수 있기 때문이다. 따라서, RL3은 RL0보다 2개 더 많은 라이브러리 픽처를 참조하지만, RL3에 대응하는 라이브러리 픽처의 디코딩 시간은 RL0과 RL3 사이의 시간 간격에 의해 제약되지 않는다.
예를 들어, (k초 내에 최대 1개의 라이브러리 픽처를 디코딩하는 것으로 제한된) 디코더가 10C에 도시된 비트스트림을 수신할 때, 디코더는 RL6 및 RL8의 실시간 디코딩을 구현할 수 없는데, 그 이유는 RL6과 RL3 사이의 시간 간격이 k초보다 크더라도 RL6 및 RL3에 의해 참조되는 라이브러리 픽처들에 2개의 상이한 라이브러리 픽처가 존재하기 때문이고, RL8과 RL6 사이의 시간 간격이 RL8 및 RL6에 의해 참조되는 라이브러리 픽처들에 1개의 상이한 라이브러리 픽처만이 존재하더라도 k초보다 작기 때문이다.
전술한 방법에서와 동일한 발명 개념에 기초하여, 본 발명의 실시예는 디바이스(1000)를 추가로 제공한다. 디바이스(1000)는 제1 획득 모듈(1001), 제2 획득 모듈(1002), 및 결정 모듈(1003)을 포함한다.
제1 획득 모듈(1001)은 비트스트림으로부터 제1 식별자를 획득하도록 구성되고, 제1 식별자는 비트스트림에서 허용되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격 k를 표시하기 위해 사용된다.
제2 획득 모듈(1002)은: 현재 디코딩된 픽처가 라이브러리 픽처를 참조함으로써 디코딩되는 경우, 비트스트림을 파싱할 때, 현재 디코딩된 픽처의 디코딩 순간 ti, 및 현재 디코딩된 픽처에 가장 가깝고 새로운 라이브러리 픽처를 참조하는 제1 디코딩된 픽처의 디코딩 순간 tj를 획득하도록 구성된다- 새로운 라이브러리 픽처는 제1 디코딩된 픽처가 디코딩될 때 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처임 -.
결정 모듈(1003)은 k와 ti-tj 사이의 관계에 기초하여 현재 디코딩된 픽처의 후보 참조 픽처들로서 미리 설정된 수량의 라이브러리 픽처들을 결정하도록 구성된다.
제1 획득 모듈(1001), 제2 획득 모듈(1002), 및 결정 모듈(1003)은 인코더 측 또는 디코더 측의 인터 예측 프로세스에서 사용될 수 있다는 점이 주목되어야 한다. 구체적으로, 인코더 측에서, 이러한 모듈들은 인코더(20)의 예측 처리 유닛(260)에서의 인터 예측 유닛(244)에서 사용될 수 있고; 디코더 측에서, 이러한 모듈들은 디코더(30)의 예측 처리 유닛(360)에서의 인터 예측 유닛(344)에 사용될 수 있다.
제1 획득 모듈(1001), 제2 획득 모듈(1002) 및 결정 모듈(1003)의 구체적인 구현 프로세스들에 대해서는, 전술한 방법 실시예들에서의 상세한 설명들이 참조될 수 있다는 점에 추가로 유의해야 한다. 본 명세서의 간결성을 위해, 세부사항들은 본 명세서에서 다시 설명되지 않는다.
본 기술분야의 통상의 기술자는 본 명세서에 개시되고 설명된 다양한 예시적인 논리 블록들, 모듈들, 및 알고리즘 단계들을 참조하여 설명된 기능들이 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에 의해 구현될 수 있다는 점을 이해할 수 있다. 소프트웨어에 의해 구현되는 경우, 예시적인 논리 블록들, 모듈들 및 단계들을 참조하여 설명된 기능들은 하나 이상의 명령어 또는 코드로서 컴퓨터 판독가능 매체에 저장되거나 또는 이를 통해 송신될 수 있고 하드웨어-기반 처리 유닛에 의해 실행될 수 있다. 이러한 컴퓨터 판독가능 매체는, 데이터 저장 매체와 같은 유형의 매체에 대응하는 컴퓨터 판독가능 저장 매체, 또는(예를 들어, 통신 프로토콜에 따라) 하나의 장소로부터 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체를 포함할 수 있다. 이러한 방식으로, 컴퓨터 판독가능 매체는 일반적으로 (1) 비-일시적 유형의 컴퓨터 판독가능 저장 매체, 또는 (2) 신호 또는 캐리어와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 본 출원에서 설명되는 기술들을 구현하기 위한 명령어들, 코드, 및/또는 데이터 구조들을 검색하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 사용가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 매체를 포함할 수 있다.
제한이 아닌 예에서, 이러한 컴퓨터 판독가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 콤팩트 디스크 저장 장치, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 플래시 메모리, 또는 원하는 프로그램 코드를 명령어 또는 데이터 구조의 형태로 저장하기 위해 사용될 수 있고 컴퓨터에 의해 액세스가능한 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속은 컴퓨터 판독가능 매체로 적절히 지칭된다. 예를 들어, 명령어들이 동축 케이블, 광섬유, 트위스티드 페어, 디지털 가입자 회선(digital subscriber line, DSL), 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들을 통해 웹사이트, 서버, 또는 다른 원격 소스로부터 송신되는 경우, 동축 케이블, 광섬유, 트위스티드 페어, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들은 매체의 정의에 포함된다. 그러나, 컴퓨터 판독가능 저장 매체 및 데이터 저장 매체는 접속들, 캐리어들, 신호들, 또는 다른 일시적 매체를 포함하지 않지만, 비-일시적 유형의 저장 매체를 실제로 의미한다는 점이 이해되어야 한다. 본 명세서에서 사용되는 디스크들(disks) 및 디스크들(discs)은 CD(compact disc), 레이저 디스크, 광 디스크, DVD(digital versatile disc), 및 Blu-ray 디스크를 포함한다. 디스크들(disks)은 일반적으로 자기적으로 데이터를 재생하는 반면, 디스크들(discs)은 데이터를 레이저들로 광학적으로 재생한다. 전술된 아이템들의 조합들은 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
명령어는 하나 이상의 디지털 신호 프로세서(DSP), 범용 마이크로프로세서, 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 또는 다른 등가의 집적 또는 개별 로직 회로와 같은 하나 이상의 프로세서에 의해 실행될 수 있다. 따라서, 본 명세서에서 사용되는 "프로세서" 라는 용어는 전술한 구조, 또는 본 명세서에서 설명된 기술들을 구현하는 데 적용가능한 임의의 다른 구조를 지칭할 수 있다. 또한, 일부 양태들에서, 본 명세서에서 설명되는 다양한 예시적인 논리 블록들, 모듈들, 및 단계들을 참조하여 설명되는 기능들은 인코딩 및 디코딩을 위해 구성되는 전용 하드웨어 및/또는 소프트웨어 모듈들 내에 제공될 수 있거나, 또는 조합된 코덱에 통합될 수 있다. 또한, 기술들은 모두 하나 이상의 회로 또는 로직 요소에서 구현될 수 있다.
본 출원의 기술들은, 무선 핸드셋, IC(integrated circuit), 또는 IC들의 세트(예를 들어, 칩 세트)를 포함하는, 다양한 장치들 또는 디바이스들에서 구현될 수 있다. 개시된 기술들을 수행하도록 구성되는 장치들의 기능 양태들을 강조하기 위해 다양한 컴포넌트들, 모듈들, 또는 유닛들이 본 출원에서 설명되지만, 반드시 상이한 하드웨어 유닛들에 의해 구현되는 것은 아니다. 실제로, 위에 설명된 바와 같이, 다양한 유닛들은 적절한 소프트웨어 및/또는 펌웨어와 조합하여 코덱 하드웨어 유닛으로 조합될 수 있거나, 또는 상호운용가능 하드웨어 유닛들(위에 설명된 하나 이상의 프로세서를 포함함)에 의해 제공될 수 있다.
전술한 실시예들에서, 실시예들의 설명들은 각각의 주안점들을 갖는다. 실시예에서 상세히 설명되지 않은 부분에 대해서는, 다른 실시예들에서의 관련 설명들을 참조한다.
전술한 설명들은 단지 본 출원의 구체적인 구현들의 예들이지만, 본 출원의 보호 범위를 제한하도록 의도되는 것은 아니다. 본 출원에서 개시되는 기술적 범위 내에서 본 기술분야의 통상의 기술자에 의해 용이하게 도출되는 임의의 변형 또는 대체는 본 출원의 보호 범위 내에 있을 것이다. 따라서, 본 출원의 보호 범위는 청구항들의 보호 범위에 종속될 것이다.

Claims (26)

  1. 비디오 디코딩 방법으로서,
    비트스트림으로부터 제1 식별자를 획득하는 단계- 상기 제1 식별자는 상기 비트스트림에서 허용되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격 k를 표시하기 위해 사용됨 -;
    현재 디코딩된 픽처가 라이브러리 픽처를 참조함으로써 디코딩되는 경우, 상기 비트스트림을 파싱할 때, 상기 현재 디코딩된 픽처의 디코딩 순간 ti 및 상기 현재 디코딩된 픽처에 가장 가깝고 새로운 라이브러리 픽처를 참조하는 제1 디코딩된 픽처의 디코딩 순간 tj를 획득하는 단계- 상기 새로운 라이브러리 픽처는 상기 제1 디코딩된 픽처가 디코딩될 때 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처임 -; 및
    k와 ti-tj 사이의 관계에 기초하여 상기 현재 디코딩된 픽처의 후보 참조 픽처들로서 미리 설정된 수량의 라이브러리 픽처들을 결정하는 단계를 포함하는 비디오 디코딩 방법.
  2. 제1항에 있어서, k는 상기 비트스트림이 만족하는 프로파일 또는 레벨에서 허용되는 상기 최소 디코딩 시간 간격의 하한 이상인 비디오 디코딩 방법.
  3. 제1항에 있어서, k와 ti-tj 사이의 관계에 기초하여 상기 현재 디코딩된 픽처의 후보 참조 픽처들로서 미리 설정된 수량의 라이브러리 픽처들을 결정하는 단계는:
    ti-tj가 k 이상인 경우, n개의 라이브러리 픽처를 상기 현재 디코딩된 픽처의 후보 참조 픽처들로서 결정하는 단계를 포함하고, 상기 n개의 라이브러리 픽처는 현재 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처를 포함하고, n은 양의 정수인 비디오 디코딩 방법.
  4. 제1항에 있어서, k와 ti-tj 사이의 관계에 기초하여 상기 현재 디코딩된 픽처의 후보 참조 픽처들로서 미리 설정된 수량의 라이브러리 픽처들을 결정하는 단계는:
    ti-tj가 k 이상인 경우, m+n개의 라이브러리 픽처를 상기 현재 디코딩된 픽처의 후보 참조 픽처들로서 결정하는 단계를 포함하고, 상기 m개의 라이브러리 픽처는 디코딩된 라이브러리 픽처를 포함하고, 상기 n개의 라이브러리 픽처는 현재 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처를 포함하고, m 및 n은 양의 정수들인 비디오 디코딩 방법.
  5. 제3항에 있어서, 상기 n개의 라이브러리 픽처를 상기 현재 디코딩된 픽처의 상기 후보 참조 픽처들로서 결정하는 단계는:
    현재 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처들로부터, 상기 현재 디코딩된 픽처와 가장 높은 콘텐츠 유사성을 갖는 n개의 라이브러리 픽처를 결정하는 단계를 포함하는 비디오 디코딩 방법.
  6. 제3항에 있어서, 상기 n개의 라이브러리 픽처를 상기 현재 디코딩된 픽처의 상기 후보 참조 픽처들로서 결정하는 단계는:
    현재 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처들로부터, 상기 현재 디코딩된 픽처의 디스플레이 순간에 가장 가까운 디스플레이 순간들을 갖는 n개의 라이브러리 픽처를 결정하는 단계를 포함하는 비디오 디코딩 방법.
  7. 제3항에 있어서, 상기 n개의 라이브러리 픽처를 상기 현재 디코딩된 픽처의 상기 후보 참조 픽처들로서 결정하는 단계는:
    현재 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처들로부터, 가장 높은 인코딩 효율을 갖는 n개의 라이브러리 픽처를 결정하는 단계를 포함하는 비디오 디코딩 방법.
  8. 제3항 내지 제7항 중 어느 한 항에 있어서, k와 ti-tj 사이의 관계에 기초하여 상기 현재 디코딩된 픽처의 후보 참조 픽처들로서 미리 설정된 수량의 라이브러리 픽처들을 결정하는 단계는:
    ti-tj가 k보다 작은 경우, m개의 라이브러리 픽처들을 상기 현재 디코딩된 픽처의 상기 후보 참조 픽처들로서 결정하는 단계를 포함하고, 상기 m개의 라이브러리 픽처는 디코딩되고 재디코딩될 필요가 없는 라이브러리 픽처를 포함하고, m은 양의 정수인 비디오 디코딩 방법.
  9. 비디오 디코딩 장치로서,
    비트스트림으로부터 제1 식별자를 획득하도록 구성되는 제1 획득 모듈- 상기 제1 식별자는 상기 비트스트림에서 허용되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격 k를 표시하기 위해 사용됨 -;
    라이브러리 픽처를 참조함으로써 현재 디코딩된 픽처가 디코딩되는 경우, 상기 비트스트림을 파싱할 때, 상기 현재 디코딩된 픽처의 디코딩 순간 ti, 및 상기 현재 디코딩된 픽처에 가장 가깝고 새로운 라이브러리 픽처를 참조하는 제1 디코딩된 픽처의 디코딩 순간 tj를 획득하도록 구성되는 제2 획득 모듈- 상기 새로운 라이브러리 픽처는 상기 제1 디코딩된 픽처가 디코딩될 때 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처임 -; 및
    k와 ti-tj 사이의 관계에 기초하여 상기 현재 디코딩된 픽처의 후보 참조 픽처들로서 미리 설정된 수량의 라이브러리 픽처들을 결정하도록 구성되는 결정 모듈을 포함하는 비디오 디코딩 장치.
  10. 제9항에 있어서, k는 상기 비트스트림이 만족하는 프로파일 또는 레벨에서 허용되는 상기 최소 디코딩 시간 간격의 하한 이상인 비디오 디코딩 장치.
  11. 제9항에 있어서, 상기 결정 모듈은 구체적으로:
    ti-tj가 k 이상인 경우, n개의 라이브러리 픽처를 상기 현재 디코딩된 픽처의 상기 후보 참조 픽처들로서 결정하도록 구성되고, 상기 n개의 라이브러리 픽처는 현재 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처를 포함하고, n은 양의 정수인 비디오 디코딩 장치.
  12. 제9항에 있어서, 상기 결정 모듈은 구체적으로:
    ti-tj가 k 이상인 경우, m+n개의 라이브러리 픽처를 상기 현재 디코딩된 픽처의 상기 후보 참조 픽처들로서 결정하도록 구성되고, 상기 m개의 라이브러리 픽처는 디코딩된 라이브러리 픽처를 포함하고, 상기 n개의 라이브러리 픽처는 현재 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처를 포함하고, m 및 n은 양의 정수들인 비디오 디코딩 장치.
  13. 제11항에 있어서, 상기 결정 모듈은 구체적으로:
    현재 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처들로부터, 상기 현재 디코딩된 픽처와 가장 높은 콘텐츠 유사성을 갖는 n개의 라이브러리 픽처를 결정하도록 구성되는 비디오 디코딩 장치.
  14. 제11항에 있어서, 상기 결정 모듈은 구체적으로:
    현재 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처들로부터, 상기 현재 디코딩된 픽처의 디스플레이 순간에 가장 가까운 디스플레이 순간들을 갖는 n개의 라이브러리 픽처를 결정하도록 구성되는 비디오 디코딩 장치.
  15. 제11항에 있어서, 상기 결정 모듈은 구체적으로:
    현재 디코딩되지 않거나 재디코딩될 필요가 있는 라이브러리 픽처들로부터, 가장 높은 인코딩 효율을 갖는 n개의 라이브러리 픽처를 결정하도록 구성되는 비디오 디코딩 장치.
  16. 제11항 내지 제15항 중 어느 한 항에 있어서, 상기 결정 모듈은 구체적으로:
    ti-tj가 k보다 작은 경우, m개의 라이브러리 픽처들을 상기 현재 디코딩된 픽처의 후보 참조 픽처들로서 결정하도록 구성되고, 상기 m개의 라이브러리 픽처들은 디코딩되고 재디코딩될 필요가 없는 라이브러리 픽처를 포함하고, m은 양의 정수인 비디오 디코딩 장치.
  17. 비디오 코딩 디바이스로서, 서로 결합되는 비휘발성 메모리 및 프로세서를 포함하고, 상기 프로세서는 상기 메모리에 저장된 프로그램 코드를 호출하여, 제1항 내지 제8항 중 어느 한 항에 따른 방법을 수행하는 비디오 코딩 디바이스.
  18. 비디오 디코딩 방법으로서,
    제1 디코딩된 픽처를 획득하는 단계- 상기 제1 디코딩된 픽처는 메인 비트스트림에 있고, 시퀀스 헤더를 바로 뒤따르고, 현재 디코딩될 픽처 이전에 위치되고, 랜덤 액세스를 지원하고, 라이브러리 픽처만을 참조하는 적어도 하나의 픽처에서 상기 현재 디코딩될 픽처에 가장 가까운 픽처임 -; 및
    상기 현재 디코딩될 픽처의 참조 픽처로서 새로운 라이브러리 픽처를 사용하는 단계- 상기 현재 디코딩될 픽처는 랜덤 액세스를 지원하고 라이브러리 픽처만을 참조하는 픽처임 -를 포함하고;
    상기 메인 비트스트림에서 상기 현재 디코딩될 픽처와 상기 제1 디코딩된 픽처 사이의 디코딩된 픽처들의 수량은 적어도 f*k이고, k는 상기 메인 비트스트림에서 허용되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격이고, f는 상기 메인 비트스트림에서 요구되는, 비디오 시퀀스의 프레임 레이트이고; 새로운 라이브러리 픽처들의 수량은 미리 설정된 값 n 이하이고, n은 양의 정수이고; 상기 새로운 라이브러리 픽처는 상기 현재 디코딩될 픽처에 의해 참조되지만 상기 제1 디코딩된 픽처에 의해 참조되지 않는 라이브러리 픽처인 비디오 디코딩 방법.
  19. 제18항에 있어서, 상기 방법은,
    상기 새로운 라이브러리 픽처에 기초하여 상기 현재 디코딩될 픽처를 디코딩하는 단계를 추가로 포함하는 비디오 디코딩 방법.
  20. 제18항 또는 제19항에 있어서, n=1인 비디오 디코딩 방법.
  21. 제18항 내지 제20항 중 어느 한 항에 있어서, 상기 새로운 라이브러리 픽처는 라이브러리 비트스트림을 디코딩함으로써 획득되는 비디오 디코딩 방법.
  22. 비디오 디코딩 장치로서,
    제1 디코딩된 픽처를 획득하도록 구성되는 제2 획득 모듈- 상기 제1 디코딩된 픽처는 메인 비트스트림에 있고, 시퀀스 헤더를 바로 뒤따르고, 현재 디코딩될 픽처 이전에 위치하고, 랜덤 액세스를 지원하고, 라이브러리 픽처만을 참조하는 적어도 하나의 픽처에서 상기 현재 디코딩될 픽처에 가장 가까운 픽처임 -; 및
    상기 현재 디코딩될 픽처의 참조 픽처로서 새로운 라이브러리 픽처를 사용하도록 구성되는 결정 모듈- 상기 현재 디코딩될 픽처는 랜덤 액세스를 지원하고 라이브러리 픽처만을 참조하는 픽처임 -을 포함하고;
    상기 메인 비트스트림에서 상기 현재 디코딩될 픽처와 상기 제1 디코딩된 픽처 사이의 디코딩된 픽처들의 수량은 적어도 f*k이고, k는 상기 메인 비트스트림에서 허용되는 라이브러리 픽처들 사이의 최소 디코딩 시간 간격이고, f는 상기 메인 비트스트림에서 요구되는, 비디오 시퀀스의 프레임 레이트이고; 새로운 라이브러리 픽처들의 수량은 미리 설정된 값 n 이하이고, n은 양의 정수이고; 상기 새로운 라이브러리 픽처는 상기 현재 디코딩될 픽처에 의해 참조되지만 상기 제1 디코딩된 픽처에 의해 참조되지 않는 라이브러리 픽처인 비디오 디코딩 장치.
  23. 제22항에 있어서, 상기 장치는 상기 새로운 라이브러리 픽처에 기초하여 상기 현재 디코딩될 픽처를 디코딩하도록 구성되는 디코딩 모듈을 추가로 포함하는 비디오 디코딩 장치.
  24. 제22항 또는 제23항에 있어서, n=1인 비디오 디코딩 장치.
  25. 제22항 내지 제24항 중 어느 한 항에 있어서, 상기 새로운 라이브러리 픽처는 라이브러리 비트스트림을 디코딩함으로써 획득되는 비디오 디코딩 장치.
  26. 비디오 디코딩 디바이스로서, 서로 결합되는 비휘발성 메모리 및 프로세서를 포함하고, 상기 프로세서는 상기 메모리에 저장된 프로그램 코드를 호출하여, 제18항 내지 제21항 중 어느 한 항에 따른 방법을 수행하는 비디오 디코딩 디바이스.
KR1020217024167A 2019-01-07 2020-01-06 비디오 인코더, 비디오 디코더, 및 대응하는 방법 KR102609215B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201910013545 2019-01-07
CN201910013545.9 2019-01-07
CN201911424851.8A CN111416977B (zh) 2019-01-07 2019-12-31 视频编码器、视频解码器及相应方法
CN201911424851.8 2019-12-31
PCT/CN2020/070520 WO2020143585A1 (zh) 2019-01-07 2020-01-06 视频编码器、视频解码器及相应方法

Publications (2)

Publication Number Publication Date
KR20210104904A true KR20210104904A (ko) 2021-08-25
KR102609215B1 KR102609215B1 (ko) 2023-12-05

Family

ID=71494018

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217024167A KR102609215B1 (ko) 2019-01-07 2020-01-06 비디오 인코더, 비디오 디코더, 및 대응하는 방법

Country Status (5)

Country Link
US (1) US11496754B2 (ko)
EP (1) EP3896974A4 (ko)
KR (1) KR102609215B1 (ko)
CN (1) CN111416977B (ko)
WO (1) WO2020143585A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020185145A1 (en) * 2019-03-08 2020-09-17 Telefonaktiebolaget Lm Ericsson (Publ) Methods providing encoding/decoding of dependent/independent partitions and related devices
CN112055231B (zh) * 2020-08-31 2021-10-15 浙江大华技术股份有限公司 视频解码方法、解码装置、解码器及电子设备
CN113301341A (zh) * 2021-05-27 2021-08-24 上海国茂数字技术有限公司 基于知识图像的视频编码方法、装置及可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170093266A (ko) * 2013-04-17 2017-08-14 노키아 테크놀로지스 오와이 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10017932A1 (de) * 2000-04-11 2001-10-31 Siemens Ag Vorrichtung und Verfahren zur Steuerung und/oder Regelung einer Anlage
US7385532B1 (en) * 2007-02-16 2008-06-10 Xilinx, Inc. Extended bitstream and generation thereof for dynamically configuring a decoder
EP2783510A1 (en) * 2011-11-21 2014-10-01 Motorola Mobility LLC Implicit determination and combined implicit and explicit determination of collocated picture for temporal prediction
GB2501518A (en) * 2012-04-27 2013-10-30 Canon Kk Encoding and Decoding an Image Comprising Blocks of Pixels Including Selecting the Prediction Mode of Prediction Units
CN102685548B (zh) * 2012-05-29 2015-09-30 公安部第三研究所 视频质量的无参评估方法
US10158876B2 (en) * 2013-04-10 2018-12-18 Qualcomm Incorporated Backward view synthesis prediction
CN104602025B (zh) * 2015-01-09 2018-11-20 华为技术有限公司 处理图像的方法和装置
CN104768011B (zh) * 2015-03-31 2018-03-06 浙江大学 图像编解码方法和相关装置
CN104902279B (zh) * 2015-05-25 2018-11-13 浙江大学 一种视频处理方法及装置
EP3139614A1 (en) * 2015-09-07 2017-03-08 Thomson Licensing Method and device for encoding and decoding a light field based image, and corresponding computer program product
WO2017075804A1 (en) * 2015-11-06 2017-05-11 Microsoft Technology Licensing, Llc Flexible reference picture management for video encoding and decoding
CN108243339B (zh) * 2016-12-27 2021-02-26 浙江大学 图像编解码方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170093266A (ko) * 2013-04-17 2017-08-14 노키아 테크놀로지스 오와이 비디오 코딩 및 디코딩을 위한 장치, 방법 및 컴퓨터 프로그램

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Xuguang Zuo, Lu Yu, Hualong Yu, Jue Mao, and Yin Zhao "Scene-library-based video coding scheme exploiting long-term temporal correlation," Journal of Electronic Imaging (2017.08.30.)* *

Also Published As

Publication number Publication date
US20210337220A1 (en) 2021-10-28
KR102609215B1 (ko) 2023-12-05
US11496754B2 (en) 2022-11-08
WO2020143585A1 (zh) 2020-07-16
CN111416977A (zh) 2020-07-14
EP3896974A1 (en) 2021-10-20
CN111416977B (zh) 2024-02-09
EP3896974A4 (en) 2022-03-09

Similar Documents

Publication Publication Date Title
US11405610B2 (en) Encoder, a decoder and corresponding methods for intra prediction
US11438578B2 (en) Video picture prediction method and apparatus
US11924438B2 (en) Picture reconstruction method and apparatus
KR20210107865A (ko) 비디오 디코딩 방법, 비디오 코딩 방법, 장치, 디바이스, 및 저장 매체
AU2020247242B2 (en) Method and apparatus for intra smoothing
CN112995663B (zh) 视频编码的方法、视频解码的方法及相应装置
US11496754B2 (en) Video encoder, video decoder, and corresponding method of predicting random access pictures
US20240040113A1 (en) Video picture decoding and encoding method and apparatus
CN111416981B (zh) 视频图像解码、编码方法及装置
KR20220003037A (ko) 인터 예측 방법 및 장치
AU2022271494A1 (en) An encoder, a decoder and corresponding methods using compact mv storage
JP2022515555A (ja) インター予測の方法および装置、並びに対応するエンコーダおよびデコーダ
US20220109830A1 (en) Method for constructing merge candidate motion information list, apparatus, and codec
US11516470B2 (en) Video coder and corresponding method
US11902506B2 (en) Video encoder, video decoder, and corresponding methods
CN113170147B (zh) 视频编码器、视频解码器、及对应方法
CN111432219B (zh) 一种帧间预测方法及装置
CN111263166B (zh) 一种视频图像预测方法及装置
WO2020181476A1 (zh) 视频图像预测方法及装置
CN112135149B (zh) 语法元素的熵编码/解码方法、装置以及编解码器

Legal Events

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