KR20220003125A - 서브-파티션들의 병렬 인트라-코딩 - Google Patents

서브-파티션들의 병렬 인트라-코딩 Download PDF

Info

Publication number
KR20220003125A
KR20220003125A KR1020217042533A KR20217042533A KR20220003125A KR 20220003125 A KR20220003125 A KR 20220003125A KR 1020217042533 A KR1020217042533 A KR 1020217042533A KR 20217042533 A KR20217042533 A KR 20217042533A KR 20220003125 A KR20220003125 A KR 20220003125A
Authority
KR
South Korea
Prior art keywords
sub
partition
pixels
reference pixels
predicted
Prior art date
Application number
KR1020217042533A
Other languages
English (en)
Inventor
원하오 장
징 추이
Original Assignee
훌루, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 훌루, 엘엘씨 filed Critical 훌루, 엘엘씨
Publication of KR20220003125A publication Critical patent/KR20220003125A/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/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/182Methods 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 a pixel
    • 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/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

방법은 코딩될 현재 블록을 수신하는 단계 및 현재 블록을 복수의 서브-파티션들로 스플리팅하는 단계를 포함한다. 제 1 세트의 참조 픽셀들이 결정된다. 방법은 제 1 세트의 참조 픽셀들을 사용하여 복수의 서브-파티션들에서의 제 1 서브-파티션을, 그리고 제 1 세트의 참조 픽셀들을 사용하여 복수의 서브-파티션들에서의 제 2 서브-파티션을 병렬로 프로세싱한다. 그 다음, 방법은 제 1 서브-파티션의 프로세싱으로부터 결정된 제 2 세트의 참조 픽셀들에 기초하여 복수의 서브-파티션들에서의 제 3 서브-파티션을 프로세싱하고 제 2 서브-파티션의 프로세싱으로부터 결정된 제 3 세트의 참조 픽셀들에 기초하여 복수의 서브-파티션들에서의 제 4 서브-파티션을 프로세싱한다.

Description

서브-파티션들의 병렬 인트라-코딩
관련 출원들에 상호 참조
본 개시는, 2019년 5월 30일자로 출원된 미국 가출원 제62/854,736호에 대한 우선권을 주장하는, "PARALLEL INTRA-CODING OF SUB-PARTITIONS" 를 명칭으로 하여 2020년 5월 28일자로 출원된 미국 정규출원 제16/886,627호에 대한 우선권을 주장하고, 이들 모두는 모든 목적들을 위해 전부 참조로 본 명세서에 통합된다.
비디오 코딩에서, 비디오 콘텐츠는, 예측, 변환, 양자화, 및 엔트로피 코딩을 포함한, 프로세스들의 세트를 통해 압축된다. 인트라-예측에서는, 비디오 프레임에서 인접한 픽셀들 간의 공간 리던던시가 감소된다. 예를 들어, 비디오 프레임의 원래 픽셀들은 인코딩되지 않고 디코더로 송신될 수도 있다. 오히려, 예측된 픽셀들이 원래 픽셀들로부터 감산되어 잔차가 형성될 수도 있다. 잔차는 인코딩하여 디코더로 송신할 원래 픽셀들보다 적은 양의 정보이다. 이것은 인코딩된 비트스트림을 송신하는데 사용된 대역폭을 감소시킨다.
뒤이어질 논의, 특히, 도면들에 관하여, 나타낸 상세들은 예시적인 논의의 목적들로 예들을 나타내고 그리고 본 개시의 원리들 및 개념적 양태들의 설명을 제공하기 위하여 제시됨이 강조된다. 이와 관련하여, 본 개시의 기본적인 이해를 위해 필요한 것 이상의 구현 상세들을 나타내려는 시도는 이루어지지 않는다. 뒤이어질 논의는, 도면들과 함께, 본 개시에 따른 실시형태들이 어떻게 실시될 수 있을지를 당업자에게 자명하게 한다. 유사하거나 또는 동일한 참조 번호들은 다양한 도면들 및 뒷받침하는 설명들에서 유사한 또는 동일한 엘리먼트들을 식별하거나 또는 다르게는 지칭하는데 사용될 수도 있다. 첨부 도면들에서:
도 1 은 일부 실시형태들에 따른 인트라 예측을 수행하기 위한 단순화된 시스템을 도시한다.
도 2 는 일부 실시형태들에 따른 인트라 예측을 위한 프레임의 예를 도시한다.
도 3 은 일부 실시형태들에 따른 트랜스코더의 예를 도시한다.
도 4 는 일부 실시형태들에 따른 디코더의 예를 도시한다.
도 5 는 일부 실시형태들에 따른 현재 블록에서의 서브-파티션들의 예를 도시한다.
도 6 은 일부 실시형태들에 따른 병렬의 서브-파티션들의 인트라 예측 프로세싱의 예를 도시한다.
도 7 은 일부 실시형태들에 따른 블록의 트랜스코딩의 보다 상세화된 플로우차트를 도시한다.
도 8 은 일부 실시형태들에 따른 블록의 디코딩의 보다 상세화된 플로우차트를 도시한다.
도 9 는 일부 실시형태들에 따른 인코딩 시스템의 예를 도시한다.
도 10 은 일부 실시형태들에 따른 디코딩 시스템의 예를 도시한다.
본 명세서에서는 비디오 코딩 시스템에 대한 기법들이 설명된다. 다음의 설명에 있어서, 설명의 목적으로, 다수의 예들 및 특정 상세들이 일부 실시형태들의 철저한 이해를 제공하기 위해 기재된다. 청구항들에 의해 정의된 바와 같은 일부 실시형태들은 이들 예들에서의 특징들 중 일부 또는 전부를, 단독으로 또는 이하 설명되는 다른 특징들과 조합하여 포함할 수도 있고, 본 명세서에서 설명된 특징들 및 개념들의 수정들 및 등가물들을 더 포함할 수도 있다.
인트라-예측에서, 트랜스코더는 비디오 프레임의 원래 픽셀들로부터 예측된 픽셀들을 감산하여 트랜스코딩되어야 하는 값들의 양을 감소시킬 수도 있다. 인트라-예측 코딩 모드의 하나의 방법은, 인트라-코딩 블록을 다중 서브-파티션들로 스플리팅하고 그 서브-파티션들을 별도로 프로세싱하는 것이다. 종래에, 서브-파티션들은, 하나의 서브-파티션이 다른 서브-파티션에 대한 트랜스코딩 프로세스를 시작하기 전에 트랜스코딩될 때, 또는 하나의 서브-파티션이 다른 서브-파티션에 대한 디코딩 프로세스를 시작하기 전에 디코딩될 때 직렬로 프로세싱된다. 그러나, 일부 실시형태들은 서브-파티션들의 그룹들을 병렬로 프로세싱한다. 이것은 서브-파티션들을 직렬로 코딩하는 것에 비해 적어도 2 배만큼 코딩 프로세스의 속도를 향상시킨다.
시스템
도 1 은 일부 실시형태들에 따른 인트라 예측을 수행하기 위한 단순화된 시스템 (100) 을 도시한다. 시스템 (100) 은, 텔레비전 쇼, 영화, 또는 비디오 클립에 대한 것과 같은, 임의의 타입의 비디오일 수도 있는, 소스 비디오 애셋 (asset) 을 트랜스코딩한다. 소스 비디오는 하나 이상의 비트레이트들과 같은 하나 이상의 포맷들로 트랜스코딩되어야 할 수도 있다. 일부 실시형태들에서, 서버 시스템 (102) 은 인코딩된 비트스트림을 클라이언트 (104) 로 전송한다. 예를 들어, 서버 시스템 (102) 은 플레이백을 위해 비디오를 클라이언트 (104) 로 전송하고 있을 수도 있다.
서버 시스템 (102) 은 비디오를 인코딩된 비트스트림으로 트랜스코딩하는 트랜스코더 (106) 를 포함한다. 트랜스코더 (106) 는 중앙 프로세싱 유닛 (CPU) 상에서 구성된 소프트웨어 비디오 프로세서/트랜스코더, 필드 프로그래밍가능 게이트 어레이 (FPGA), 그래픽 프로세싱 유닛 (GPU) 을 갖는 하드웨어 가속 비디오 프로세서/트랜스코더, 및/또는 주문형 집적 회로 (ASIC) 에서 구현된 하드웨어 프로세서/트랜스코더일 수도 있다. 트랜스코딩은 일 디지털 포맷으로부터 다른 디지털 포맷으로의 변환일 수도 있다. 트랜스코딩은 소스 포맷을 디코딩하고 소스 비디오를 다른 디지털 포맷으로 인코딩하거나, 또는 소스 콘텐츠를 특정 해상도, 프레임레이트, 비트레이트, 코덱 등을 갖는 비디오들로 변환하는 것을 수반할 수도 있다. 또한, 인코딩은 아날로그 소스 콘텐츠의 디지털 포맷으로의 변환일 수도 있다. 사용된 바와 같이, 용어 트랜스코딩은 인코딩을 포함할 수도 있다.
트랜스코더 (106) 는 인트라 예측을 수행하는 트랜스코더 인트라 예측 블록 (108) 을 포함한다. 인트라-코딩 모드는 비디오 프레임에서 이웃 픽셀들의 공간 리던던시를 제거함으로써 비디오를 압축하기 위해 트랜스코더 측 및 디코더 측에 의해 사용된다. 전통적으로, 인트라-코딩은 픽셀 사이즈가 N×N 과 동일한 현재 블록을 인트라-코딩할 수도 있다. 일부 실시형태들에서, 현재 블록 내부의 픽셀들은 현재 블록에 대한 인접한 블록들, 이를 테면 현재 블록에 대해 상부, 좌측, 및 대각선 위치에 있는 블록들로부터의 픽셀들을 사용하여 인트라-코딩된다.
클라이언트 (104) 는 인코딩된 비트스트림을 디코딩하는 디코더 (112) 를 포함한다. 디코딩 프로세스 동안, 디코더 인트라 예측 블록 (110) 은, 현재 블록에 대한 인접한 블록들, 이를 테면 현재 블록에 대해 상부, 좌측, 및 대각선 위치에 있는 블록들로부터의 픽셀들을 사용하여 블록을 디코딩하기 위해 인트라 예측을 수행한다.
도 2 는 일부 실시형태들에 따른 인트라 예측을 위한 프레임 (200) 의 예를 도시한다. 프레임 (200) 은 트랜스코딩 또는 디코딩되고 있는 이미지일 수도 있다. 프레임 (200) 은 다중 블록들을 포함하고 현재 블록 (202) (#16) 이 트랜스코딩 또는 디코딩되고 있다. 현재 블록 (202) 의 상부에 있는 상부 블록 (204) (#10) 및 현재 블록 (202) 의 좌측에 있는 좌측 블록 (206) (#15) 은 이미 디코딩되었다. 좌측 블록 (206) 및 상부 블록 (204) 으로부터의 픽셀들은 현재 블록 (202) 의 콘텐츠를 예측하는데 사용될 수도 있다. 이들 픽셀들은 이미 디코딩되었기 때문에, 그 픽셀들은 현재 블록의 콘텐츠를 예측하는데 사용될 수 있다. 예를 들어, 이웃 픽셀들은 현재 블록의 픽셀들 중 일부와 유사할 수도 있고 현재 블록 (202) 에서 현재 픽셀들의 양호한 예측을 제공할 수도 있다. 블록들 #9, #11, 및 #21 (대각선에 위치됨) 로부터의 픽셀들이 이용가능한 경우 (예컨대, 트랜스코딩된 후 디코딩되었음), 이들 블록들로부터의 픽셀들과 같은, 다른 블록들로부터의 픽셀들이 또한 사용될 수도 있다.
트랜스코더
도 3 은 일부 실시형태들에 따른 트랜스코더 (106) 의 예를 도시한다. 도 3 은 트랜스코더의 단순화된 버전을 포함하고 보다 상세화된 버전이 이하에 설명될 것이다. 트랜스코더 (106) 는 트랜스코딩되는 현재 블록 (202) 으로부터 원래 픽셀들을 수신한다. 302 에서, 트랜스코더 (106) 는 그 다음, 원래 픽셀들로부터 예측된 픽셀들을 감산하여, 트랜스코딩될 픽셀들을 포함하는 잔차를 생성한다. 예를 들어, 트랜스코딩 프로세스의 일부로서, 변환 및 양자화 블록 (304) 은 잔차 값들에 대해 변환 단계 및 양자화 단계 (T/Q) 를 수행하여 트랜스코딩될 데이터 사이즈를 추가로 압축한다. 마지막으로, 엔트로피 인코딩 블록 (306) 은 데이터를 엔트로피 코딩함으로써 결과의 데이터를 프로세싱한다. 트랜스코더 (106) 는 트랜스코더 (106) 가 디코더 측으로 송신하는 데이터를 인코딩된 비트스트림으로 패키징한다.
디코더 측이 트랜스코더 측과 동일한 거동으로 디코딩 프로세스를 수행하고 있음을 보장하기 위해, 트랜스코더 (106) 는 역 양자화 및 역 변환 블록 (308) 및 디코딩 파이프라인을 미러링하는 인트라-예측 블록 (예컨대, 트랜스코더 인트라 예측 블록 (108)) 을 포함한다. 이 루프는 디코딩된 현재 블록 (202) 에 대한 복원된 픽셀들을 생성하고, 그 픽셀들은 인코딩 순서에서 다음 코딩 블록에 대한 참조 픽셀들의 역할을 한다. 예를 들어, 312 에서, 트랜스코더 (106) 는 현재 블록을 트랜스코딩하는데 사용된 예측된 픽셀들을 잔차의 디코딩된 픽셀들과 가산하여 참조 픽셀들을 생성한다.
트랜스코더 인트라 예측 블록 (108) 은 트랜스코딩될 다음 현재 블록에 대한 이웃 참조 픽셀 값들을 사용하여 예측된 픽셀 값들을 생성한다. 예를 들어, 트랜스코더 인트라 예측 블록 (108) 은 참조 픽셀 값들을 수신하고 사용된 인트라-모드에 의존하여, 예측된 픽셀 값들을 생성한다. 인트라-예측 모드는 예측의 방향을 포함할 수도 있고, 상이한 참조 픽셀들이 사용된 방향에 기초하여 사용된다. 즉, 수평 인트라-예측 방향은 현재 블록의 좌측에 있는 참조 픽셀들을 사용할 수도 있고, 수직 인트라-예측 방향은 현재 블록의 상부에 있는 참조 픽셀들을 사용할 수도 있다. 방향들은 또한 대각선 방향들을 포함할 수도 있다. 트랜스코더 인트라 예측 블록 (108) 은 참조 픽셀들 및 예측의 방향으로부터 예측된 픽셀들을 생성할 수도 있다. 트랜스코더 인트라 예측 블록 (108) 은 예측의 방향을 상이한 방식들로 결정할 수도 있다. 일부 실시형태들에서, 트랜스코더 인트라 예측 블록 (108) 은 모든 가능한 인트라 예측 방향들을 검사하고, 레이트-왜곡 최적화 메트릭과 같은 규칙들에 기초하여 최상의 인트라 예측 방향을 선택할 수도 있다. 예측된 픽셀들이 사용될 수도 있는데, 일부 방향들이 참조 픽셀 값들의 일부 보간을 필요로 할 수도 있기 때문이다; 예를 들어, 대각선 방향은 하나 이상의 참조 픽셀들로부터 픽셀 값들을 보간할 수도 있다.
디코더
도 4 는 일부 실시형태들에 따른 디코더 (112) 의 보다 상세화된 예를 도시한다. 도 4 는 디코더의 단순화된 버전을 포함하고, 보다 상세화된 버전이 이하에 설명될 것이다. 디코더 측에서, 디코더 (112) 는 인코딩된 비트스트림을 수신하고 엔트로피 디코딩 블록 (402) 이 엔트로피 디코딩을 수행한다. 그 다음, 역 양자화 및 역 변환 블록 (404) 은 역 양자화 단계 및 역 변환 단계
Figure pct00001
를 수행한다. 역 양자화 및 역 변환 단계들의 출력은 잔차이다. 408 에서, 디코더 (112) 는 그 다음, 잔차를, 트랜스코더 (106) 에서 잔차를 생성하는데 사용되었던 예측된 픽셀들과 결합하여 디코딩된 픽셀들을 생성한다. 디코딩된 픽셀들은 원래 픽셀들의 복원된 표현이다.
디코더 인트라-예측 블록 (406) 은 디코딩되는 현재 블록으로부터의 디코딩된 참조 픽셀들과 같은, 참조 픽셀들로부터 예측된 픽셀들을 생성한다. 디코딩된 픽셀들은 디코딩 순서에서 다음 코딩 블록에 대한 참조 픽셀들로서 사용된다. 코딩 순서에서의 다른 코딩 블록은 다른 블록에 대한 인코딩된 비트스트림을 디코딩하기 위해 참조 픽셀들로부터 생성되는 예측된 픽셀들을 사용할 수도 있다.
인트라 예측
인트라 예측 동안, 트랜스코더 측 및 디코더 측은 인트라-서브-파티션 (ISP) 모드를 사용하여 인트라-서브-파티셔닝을 수행할 수도 있다. 인트라-서브-파티셔닝은 인트라-코딩 블록을 다중 서브-파티션들 (SP) 로 스플리팅하고 서브-파티션들을 별도로 트랜스코딩 또는 디코딩한다.
도 5 는 일부 실시형태들에 따른 현재 블록 (202) 에서의 서브-파티션들 (502) 의 예를 도시한다. 현재 블록 (202) 은 서브-파티션 #1 (502-1), 서브-파티션 #2 (502-2), 서브-파티션 #3 (502-3), 및 서브-파티션 #4 (502-4) 의 4 개의 서브-파티션들로 스플리팅되었다. 4 개의 서브-파티션들이 설명되지만, 2 개의 서브-파티션들, 6 개의 서브-파티션들, 8 개의 서브-파티션들 등과 같은 다른 수의 서브-파티션들이 사용될 수도 있다. 또한, 서브-파티션들은 수평으로 또는 수직으로 스플리팅될 수도 있다. 도 5 에서, 현재 블록은 수평으로 스플리팅되었다; 그러나, 현재 블록은 수직으로 또는 다른 패턴들로 스플리팅될 수 있다.
트랜스코딩 프로세스에서, 트랜스코더 (106) 는 서브-파티션들 (502) 을 별도로 프로세싱하고, 이는 트랜스코더 (106) 가 서브-파티션 (502-1) 의 픽셀들을 먼저 트랜스코딩한 다음, 다음 서브-파티션 (502-2) 의 픽셀들을 트랜스코딩하는 등임을 의미한다. 상기 논의된 바와 같이, 트랜스코더 (106) 는 참조 픽셀들을 사용하여 각각의 서브-파티션 (502) 을 트랜스코딩한다. 예를 들어, 이미 트랜스코딩된 블록들로부터의 참조 픽셀들은 각각의 서브-파티션 (502) 을 트랜스코딩하는데 사용된다.
트랜스코더 (106) 는 트랜스코더가 일부 서브-파티션들을 병렬로 트랜스코딩할 수 있도록 하는 방식으로 각각의 서브-파티션 (502) 에 사용되는 참조 픽셀들을 선택한다. 종래에, 서브-파티션들은 직렬로 트랜스코딩되었을 수도 있다; 예를 들어, 트랜스코더는 먼저 서브-파티션 #1 (502-1) 을 트랜스코딩한 다음, 서브-파티션 #1 (502-1) 로부터의 참조 픽셀들을 사용하여 서브-파티션 #2 (502-2) 를 트랜스코딩하고, 그 다음 서브-파티션 #2 (502-2) 로부터의 참조 픽셀들을 사용하여 서브-파티션 #3 (502-3) 을 트랜스코딩하고, 그 다음 마지막으로 서브-파티션 #3 (502-3) 으로부터의 참조 픽셀들을 사용하여 서브-파티션 #4 (502-4) 를 트랜스코딩한다. 이것은 트랜스코더가 서브-파티션들 (502) 을 직렬로 트랜스코딩하도록 강제한다. 서브-파티션들 (502) 을 직렬로 트랜스코딩하는 대신, 트랜스코더는 서브-파티션들 (502) 의 그룹들을 병렬로 트랜스코딩하며, 이는 현재 블록의 트랜스코딩 시간을 가속화한다. 트랜스코더 (106) 는 서브-파티션들 (502) 의 트랜스코딩을 병렬로 수행할 수 있는 다중 트랜스코딩 프로세스들을 포함할 수도 있거나, 또는 별도의 트랜스코더들이 사용될 수도 있다.
서브-파티션 (502) 을 병렬로 트랜스코딩하기 위해, 서브-파티션들 (502) 중 일부에 대한 참조 픽셀들은 서브-파티션들을 직렬로 트랜스코딩하는데 사용되는 참조 픽셀들로부터 변경된다. 예를 들어, 서브 파티션 #1 (502-1) 과 서브 파티션 #3 (502-3) 에 사용되는 참조 픽셀들은 공유된다. 그 다음, 서브-파티션 #2 (502-2) 에 사용되는 참조 픽셀들은 서브-파티션 #1 (502-1) 로부터의 것이고 서브-파티션 #4 (502-4) 에 사용되는 참조 픽셀들은 서브-파티션 #3 으로부터의 것이다. 이것은 트랜스코더 (106) 가 서브-파티션 #1 (502-1) 및 서브-파티션 #3 (502-3) 을 병렬로 트랜스코딩하는 것을 허용한다. 일단, 트랜스코더 (106) 가 서브-파티션 #1 (502-1) 및 서브-파티션 #3 (502-3) 을 트랜스코딩 및 디코딩하면, 트랜스코더 (106) 는 병렬로 서브-파티션 #1 (502-1) 로부터의 참조 픽셀들을 사용하여 서브-파티션 #2 (502-2) 를 트랜스코딩하고 서브-파티션 #3 (502-3) 으로부터의 참조 픽셀들을 사용하여 서브-파티션 #4 (502-4) 를 트랜스코딩할 수 있다.
3 개의 세트들의 참조 픽셀들 (504-1 내지 504-3) 이 4 개의 서브-파티션들 (502) 에 대해 도시된다. 상이한 수의 서브-파티션들 (502) 이 있는 경우, 상이한 수의 세트들의 참조 픽셀들 (504) 이 있을 수도 있다. 그러나, 적어도 2 개의 서브-파티션들 (502) 은 병렬 프로세싱을 허용하기 위해 참조 픽셀들을 공유할 수도 있다. 표시된 참조 픽셀들은 명료성의 이유로 도시됨에 주목한다. 일부 실시형태들에서, 참조 픽셀들은 현재 블록 (202) 에 가장 가까운 또는 인접한 하나 이상의 픽셀 행들을 포함할 수도 있다. 즉, 참조 픽셀들 (504-1) 은 현재 블록 (202) 에 가장 가까운 픽셀 행으로부터의 참조 픽셀들을 포함할 수도 있고, 참조 픽셀들 (504-2 및 504-4) 에 비해 더 멀리 떨어진 픽셀 행들은 포함하지 않을 수도 있다. 참조 픽셀들은 개별의 참조 픽셀들을 명확하게 나타내기 위해 분리된다. 그러나, 좌측에 있는 블록의 오버랩 부분들에 대한 참조 픽셀들은 동일한 픽셀들을 포함할 수도 있다. 예를 들어, 506 에서의 픽셀들은 동일할 수도 있고 508 에서의 픽셀들은 동일할 수도 있다. 또한, 사용되는 참조 픽셀들은 나타낸 참조 픽셀들에 제한되지 않는다. 상부 블록 또는 좌측 블록으로부터의 더 많은 참조 픽셀들, 또는 상부 및 좌측 블록들 이외의 블록들 (예컨대, 현재 블록으로부터 대각선에 위치된 블록들) 로부터의 참조 픽셀들과 같은, 추가적인 참조 픽셀들이 사용될 수도 있다.
트랜스코더 (106) 는 서브-파티션 #1 (502-1) 및 서브-파티션 #3 (502-3) 을 트랜스코딩할 때 참조 픽셀들 (504-1) 을 사용한다. 참조 픽셀들 (504-1) 은 현재 블록 (202) 의 상부에 있는 블록으로부터의 참조 픽셀들 및 현재 블록 (202) 의 좌측에 있는 블록으로부터의 참조 픽셀들을 포함할 수도 있다. 일부 실시형태들에서, 서브-파티션 #3 (502-3) 을 트랜스코딩할 때, 트랜스코더 (106) 는 현재 블록 (202) 의 상부에 있는 참조 픽셀들 대신 현재 블록 (202) 의 좌측에 있는 블록으로부터의 참조 픽셀들을 사용하는 인트라 방향을 사용하는 것을 선호할 수도 있다. 서브-파티션 #3 (502-3) 의 좌측에 있는 참조 픽셀들이 더 가깝고 보다 정확한 예측을 제공할 수도 있다.
또한, 참조 픽셀들 (504-2) 은 서브-파티션 #2 (502-2) 및 현재 블록 (202) 의 좌측에 있는 블록으로부터의 참조 픽셀들을 포함할 수도 있다. 서브 파티션 #2 (502-2) 에 사용된 참조 픽셀들은 종래의 프로세스와 동일할 수도 있다.
참조 픽셀들 (504-3) 은 서브-파티션 #3 (502-3) 및 현재 블록 (202) 의 좌측에 있는 블록으로부터의 참조 픽셀들을 포함할 수도 있다. 서브 파티션 #4 (502-2) 에 사용된 참조 픽셀들은 종래의 프로세스와 동일할 수도 있다.
현재 블록 (202) 이 수직으로 스플리팅되는 경우, 사용된 참조 픽셀들은 약간 상이할 수도 있음에 주목한다. 예를 들어, 현재 블록 (202) 은 수직 스플리팅을 예시하기 위해 90 도만큼 회전될 수 있다. 그러나, 개념은 서브-파티션 #1 (502-1) 및 서브-파티션 #3 (502-3) 에 대한 참조 픽셀들이 공유되는 것과 동일하다. 그 다음, 서브-파티션 #2 (502-2) 에 대한 참조 픽셀들은 서브-파티션 #1 (502-1) 로부터의 것이고 서브-파티션 #4 (502-4) 에 대한 참조 픽셀들은 서브-파티션 #3 (502-3) 으로부터의 것이다.
디코더 (112) 는 디코딩 프로세스에서 유사한 방식으로 서브-파티션들을 사용할 수도 있으며, 이는 이하에 더 상세히 설명될 것이다.
도 6 은 일부 실시형태들에 따른 병렬의 서브-파티션들 (502) 의 인트라 예측 프로세싱의 예를 도시한다. 다음의 프로세싱 파이프라인은 트랜스코딩 프로세스 또는 디코딩 프로세스에서 사용될 수도 있다. 트랜스코딩 프로세스에서, 파이프라인은 서브-파티션에 대한 예측된 픽셀들을 생성한 다음, 서브-파티션의 트랜스코딩 후, 서브-파티션에 대한 디코딩된 픽셀들이 다른 서브-파티션에 대한 참조 픽셀들로서의 사용을 위해 생성된다. 프로세스가 직렬로 수행되면, 서브-파티션에 대한 예측된 픽셀들을 생성한 다음 서브-파티션에 대한 디코딩된 픽셀들을 구축하는 상기의 프로세스는 각각의 서브-파티션에 대해 직렬로 수행된다. 예를 들어, 먼저, 트랜스코더 (106) 는 서브-파티션 #1 (502-1) 에 대한 예측된 픽셀들을 생성하고, 잔차를 생성하고 그 잔차를 트랜스코딩한 다음, 트랜스코더 (106) 는 서브-파티션 #1 (502-1) 에 대한 디코딩된 픽셀들을 구축한다. 트랜스코더 (106) 는 이들 디코딩된 픽셀들을 참조 픽셀들로서 사용하여 서브-파티션 #2 (502-2) 에 대한 예측된 픽셀들을 생성한다. 서브-파티션 #2 (502-2) 를 인트라-코딩한 후, 트랜스코더 (106) 는 서브-파티션 #2 (502-2) 에 대한 디코딩된 픽셀들을 구축한다. 트랜스코더 (106) 는 이들 디코딩된 픽셀들을 사용하여 서브-파티션 #3 (502-3) 에 대한 예측된 픽셀들을 생성하고, 프로세스는 트랜스코더 (106) 가 현재 블록을 트랜스코딩할 때까지 직렬로 계속된다. 따라서, 서브-파티션들 (502) 을 직렬로 프로세싱할 때, 트랜스코더 (106) 는 종래에는 다른 서브-파티션을 트랜스코딩하는 것으로 이동하기 전에 서브-파티션을 트랜스코딩하고 서브-파티션에 대한 픽셀들을 디코딩하는 것을 완료해야 한다.
상기 논의된 바와 같이, 트랜스코더 (106) 는 다른 서브-파티션에 대한 트랜스코딩 프로세스를 시작하기 전에 이전 서브-파티션이 트랜스코딩된 다음 디코딩되는 것을 대기할 필요가 없다. 도 6 에서, 현재 블록의 트랜스코딩이 시작될 때, 서브-파티션 #1 (502-1) 및 서브-파티션 #3 (502-3) 에 대한 참조 픽셀들은 동일하고, 트랜스코더 (106) 는 602 에서 서브-파티션 #1 (502-1) 을 그리고 610 에서 서브-파티션 #3 (502-3) 을 병렬로 트랜스코딩하는 것을 시작한다. 예를 들어, 트랜스코딩 프로세스 #1 (600-1) 은 서브-파티션 #1 (502-1) 을 트랜스코딩하고 트랜스코딩 프로세스 #2 (600-2) 는 서브-파티션 #3 (502-3) 을 트랜스코딩한다.
602 에서, 트랜스코딩 프로세스 #1 (600-1) 은 현재 블록 (202) 의 상부에 있는 블록 및 현재 블록 (202) 의 좌측에 있는 블록과 같은, 인접한 블록들로부터의 참조 픽셀들을 사용하여 서브-파티션 #1 (502-1) 에 대한 예측된 픽셀들을 생성한다. 그 다음, 트랜스코딩 프로세스 #1 (600-1) 은 서브-파티션 #1 (502-1) 에 대해 트랜스코딩 프로세스를 수행한다. 픽셀들을 트랜스코딩한 후, 604 에서, 트랜스코딩 프로세스 #1 (600-1) 은 그 다음, 서브-파티션 #1 (502-1) 에 대한 픽셀들을 복원 (예컨대, 디코딩) 한다. 병렬로, 610 에서, 트랜스코딩 프로세스 #2 (600-2) 는 서브-파티션 #1 (502-1) 에 사용되었던 동일한 참조 픽셀들을 사용하여 서브-파티션 #3 (502-3) 에 대한 예측된 픽셀들을 생성한다. 그 다음, 트랜스코딩 프로세스 #2 (600-2) 는 서브-파티션 #3 (502-3) 에 대해 트랜스코딩 프로세스를 수행한다. 픽셀들을 트랜스코딩한 후, 612 에서, 트랜스코딩 프로세스 #2 (600-2) 는 그 다음, 서브-파티션 #3 (502-3) 에 대한 픽셀들을 복원 (예컨대, 디코딩) 한다.
서브-파티션 #2 (502-2) 는 서브-파티션 #1 (502-1) 로부터의, 그리고 좌측에 있는 블록과 같은 인접한 블록들로부터의 참조 픽셀들을 사용한다. 서브-파티션 #1 (502-1) 에 대한 디코딩된 픽셀들을 복원한 후, 606 에서, 트랜스코딩 프로세스 #1 (600-1) 은 서브-파티션 #2 (502-2) 및 좌측에 있는 블록에 대한 참조 픽셀들로부터 예측된 픽셀들을 생성할 수 있다. 트랜스코딩 프로세스 #1 (600-1) 은 서브-파티션 #2 (502-2) 에 대해 트랜스코딩 프로세스를 수행한다. 픽셀들을 트랜스코딩한 후, 608 에서, 트랜스코딩 프로세스 #1 (600-1) 은 그 다음, 서브-파티션 #2 (502-2) 에 대한 픽셀들을 복원 (예컨대, 디코딩) 한다.
또한, 서브-파티션 #4 (502-4) 는 서브-파티션 #3 (502-3) 으로부터의 참조 픽셀들을 사용한다. 서브-파티션 #3 (502-3) 에 대한 트랜스코딩된 픽셀들을 복원한 후, 614 에서, 트랜스코딩 프로세스 #2 (600-2) 는 서브-파티션 #4 (502-4) 로부터의, 그리고 좌측에 있는 블록과 같은 인접한 블록들로부터의 참조 픽셀들로부터 예측된 픽셀들을 생성할 수 있다. 트랜스코딩 프로세스 #2 (600-2) 는 서브-파티션 #4 (502-4) 에 대해 트랜스코딩 프로세스를 수행한다. 픽셀들을 트랜스코딩한 후, 616 에서, 트랜스코딩 프로세스 #2 (600-2) 는 그 다음, 서브-파티션 #4 (502-4) 에 대한 픽셀들을 복원 (예컨대, 디코딩) 한다.
트랜스코딩 프로세스는, 서브-파티션 #2 (502-2) 에 대한 트랜스코딩된 픽셀들을 복원하고 서브-파티션 #4 (502-4) 에 대한 트랜스코딩된 픽셀들을 복원한 후 완료된다. 따라서, 2 개의 그룹들의 서브-파티션들 (502) 의 병렬 프로세싱으로 인해, 트랜스코더 (106) 는 직렬로 프로세싱을 수행하는 것에 비해 2 배 더 빠르게 트랜스코딩 프로세스를 수행할 수 있다. 2 개의 그룹들이 설명되지만, 트랜스코더는 현재 블록 (202) 을 상이한 수의 그룹들로 스플리팅할 수도 있다. 예를 들어, 8 개의 서브-파티션들 (502) 이 사용되는 경우, 2 개의 그룹들이 사용될 수도 있다; 그러나, 트랜스코더는 서브-파티션 (502) 을 4 개의 그룹들로 스플리팅하여 직렬에 비해 4 배 더 빠르게 그리고 2 개의 그룹들을 사용하는 것에 비해 2 배 더 빠르게 프로세스를 수행할 수도 있다.
디코딩 프로세스에서, 서브-파티션 (502) 은 또한 병렬로 디코딩될 수도 있다. 예를 들어, 디코더 (112) 가 현재 블록 (202) 을 디코딩하는 것을 시작할 때, 서브-파티션 #1 (502-1) 및 서브-파티션 #3 (502-3) 에 대한 참조 픽셀들은 동일하고, 디코더 (112) 는 서브-파티션 #1 (502-1) 및 서브-파티션 #3 (502-3) 을 병렬로 디코딩하는 것을 시작한다. 디코더 (112) 는 또한 트랜스코더 (106) 와 유사하게 2 개의 디코딩 프로세스들, 디코딩 프로세스 #1 (601-1) 및 디코딩 프로세스 #2 (600-2) 를 사용할 수도 있다.
디코딩 프로세스 #1 (601-1) 은 현재 블록 (202) 의 상부에 있는 블록 및 현재 블록 (202) 의 좌측에 있는 블록으로부터와 같은, 인접한 블록들로부터의 픽셀들을 사용하여 서브-파티션 #1 (502-1) 에 대한 예측된 픽셀들을 생성한다. 그 다음, 디코딩 프로세스 #1 (601-1) 은 서브-파티션 #1 (502-1) 에 대해 디코딩 프로세스를 수행하여 잔차를 생성한다. 픽셀들을 디코딩한 후, 디코딩 프로세스 #1 (601-1) 은 그 다음, 예측된 픽셀들 및 잔차를 사용하여 서브-파티션 #1 (502-1) 에 대한 픽셀들을 복원한다. 병렬로, 디코딩 프로세스 #2 (600-2) 는 서브-파티션 #1 (502-1) 에 사용되었던 동일한 참조 픽셀들을 사용하여 서브-파티션 #3 (502-3) 에 대한 예측된 픽셀들을 생성한다. 그 다음, 디코딩 프로세스 #2 (600-2) 는 서브-파티션 #3 (502-3) 에 대해 디코딩 프로세스를 수행한다. 픽셀들을 디코딩한 후, 디코딩 프로세스 #2 (600-2) 는 그 다음, 예측된 픽셀들 및 잔차를 사용하여 서브-파티션 #3 (502-3) 에 대한 참조 픽셀들을 복원한다.
서브-파티션 #2 (502-2) 는 서브-파티션 #1 (502-1) 로부터의, 그리고 좌측 블록과 같은 인접한 블록들로부터의 참조 픽셀들을 사용한다. 서브-파티션 #1 (502-1) 에 대한 픽셀들을 디코딩한 후, 디코딩 프로세스 #1 (601-1) 은 디코딩된 서브-파티션 #1 (502-1) 의, 그리고 좌측 블록과 같은 인접한 블록들로부터의 참조 픽셀들로부터 예측된 픽셀들을 생성할 수 있다. 디코딩 프로세스 #1 (601-1) 은 서브-파티션 #2 (502-2) 에 대해 디코딩 프로세스를 수행하여 잔차를 생성한다. 픽셀들을 디코딩한 후, 디코딩 프로세스 #1 (601-1) 은 그 다음, 예측된 픽셀들 및 잔차를 사용하여 서브-파티션 #2 (502-2) 에 대한 참조 픽셀들을 복원한다.
서브-파티션 #3 (502-3) 은 서브-파티션 #1 (502-1) 과 동일한 참조 픽셀들을 사용하고 디코딩 프로세스는 서브-파티션 #1 (502-1) 과 병렬로 수행될 수도 있다. 디코딩 프로세스 #2 (600-2) 는 서브-파티션 #3 (502-3) 에 대해 디코딩 프로세스를 수행하여 잔차를 생성한다. 픽셀들을 디코딩한 후, 디코딩 프로세스 #2 (600-2) 는 그 다음, 예측된 픽셀들 및 잔차를 사용하여 서브-파티션 #3 (502-3) 에 대한 참조 픽셀들을 복원한다.
서브-파티션 #4 (502-4) 는 서브-파티션 #3 (502-3) 으로부터의, 그리고 좌측 블록과 같은 인접한 블록들로부터의 참조 픽셀들을 사용한다. 서브-파티션 #3 (502-3) 에 대한 참조 픽셀들을 복원한 후, 디코딩 프로세스 #2 (600-2) 는 서브-파티션 #3 (502-3) 및 좌측 블록에 대한 참조 픽셀들로부터 예측된 픽셀들을 생성할 수 있다. 그 다음, 디코딩 프로세스 #2 (600-2) 는 서브-파티션 #4 (502-4) 에 대해 디코딩 프로세스를 수행하여 잔차를 생성한다. 픽셀들을 디코딩한 후, 디코딩 프로세스 #2 (600-2) 는 그 다음, 예측된 픽셀들 및 잔차를 사용하여 서브-파티션 #4 (502-4) 에 대한 참조 픽셀들을 복원한다.
도 7 은 일부 실시형태들에 따른 블록의 트랜스코딩의 보다 상세화된 플로우차트 (700) 를 도시한다. 상기 플로우는 예측된 픽셀들의 생성을 논의하였다. 다음의 플로우차트는 트랜스코딩 프로세스를 더 상세히 설명한다.
702 에서, 트랜스코딩 프로세스 #1 (600-1) 은 서브-파티션 #1 (502-1) 에 대한 원래 픽셀들 및 서브-파티션 #1 (502-1) 에 대한 예측된 픽셀들을 수신한다. 704 에서, 트랜스코딩 프로세스 #1 (600-1) 은 원래 픽셀들 및 예측된 픽셀들로부터 서브-파티션 #1 에 대한 잔차를 생성한다. 706 에서, 트랜스코딩 프로세스 #1 (600-1) 은 변환 및 양자화 및 엔트로피 인코딩을 수행함으로써 서브-파티션 #1 (502-1) 에 대한 잔차를 트랜스코딩한다. 708 에서, 트랜스코딩 프로세스 #1 (600-1) 은 잔차를 디코딩하여 서브-파티션 #1 (502-1) 에 대한 디코딩된 픽셀들을 생성한다. 710 에서, 트랜스코딩 프로세스 #1 (600-1) 은 디코딩된 픽셀들을 예측된 픽셀들과 결합하여 서브-파티션 #1 (502-1) 에 대한 참조 픽셀들을 생성한다. 712 에서, 서브 파티션 #2 (502-2) 에 대한 트랜스코딩 프로세스는 702 내지 710 에서 설명된 것과 유사한 단계들을 사용하여 수행된다. 그러나, 서브-파티션 #2 는 서브-파티션 #1 로부터의 참조 픽셀들을 사용한다.
병렬로, 다음이 수행된다. 대응하는 단계들은 정확히 동시에 수행되지 않을 수도 있음에 주목한다. 즉, 702 및 712 에서의 단계들은 동시에 시작 및 종료할 필요가 없다. 오히려, 702 내지 712 에서의 단계들은 714 내지 724 에서의 단계들과 병렬로 수행되며, 여기서 각각의 단계는 자신만의 페이스로 진행될 수도 있다. 714 에서, 트랜스코딩 프로세스 #2 (600-2) 는 서브-파티션 #3 (502-3) 에 대한 원래 픽셀들 및 서브-파티션 #3 (502-3) 에 대한 예측된 픽셀들을 수신한다. 716 에서, 트랜스코딩 프로세스 #2 (600-2) 는 원래 픽셀들 및 예측된 픽셀들로부터 서브-파티션 #1 에 대한 잔차를 생성한다. 718 에서, 트랜스코딩 프로세스 #2 (600-2) 는 변환 및 양자화 및 엔트로피 인코딩을 수행함으로써 서브-파티션 #3 (502-3) 에 대한 잔차를 트랜스코딩한다. 720 에서, 트랜스코딩 프로세스 #2 (600-2) 는 잔차를 디코딩하여 서브-파티션 #3 (502-3) 에 대한 디코딩된 픽셀들을 생성한다. 722 에서, 트랜스코딩 프로세스 #2 (600-2) 는 디코딩된 픽셀들을 예측된 픽셀들과 결합하여 서브-파티션 #3 (502-3) 에 대한 참조 픽셀들을 생성한다. 724 에서, 서브-파티션 #4 (502-4) 에 대한 트랜스코딩 프로세스는 714 내지 724 에서 설명된 것과 유사한 단계들을 사용하여 수행된다. 그러나, 서브-파티션 #4 는 서브-파티션 #2 로부터의 참조 픽셀들을 사용한다.
도 8 은 일부 실시형태들에 따른 블록의 디코딩의 보다 상세화된 플로우차트 (800) 를 도시한다. 802 에서, 디코딩 프로세스 #1 (601-1) 은 이전 블록의 참조 픽셀들로부터 예측된 픽셀들을 생성한다. 이전 블록은 현재 블록 (202) 의 상부 및/또는 현재 블록 (202) 의 좌측에 있는 블록일 수도 있다. 또한, 이전 블록은 현재 블록 (202) 또는 다른 블록의 서브-파티션일 수도 있다.
804 에서, 디코딩 프로세스 #1 (601-1) 은 서브-파티션 #1 에 대한 인코딩된 픽셀들을 수신한다. 806 에서, 디코딩 프로세스 #1 (601-1) 은 인코딩된 픽셀들로부터 서브-파티션 #1 에 대한 잔차를 생성한다. 예를 들어, 디코딩 프로세스 #1 (601-1) 은 엔트로피 디코딩 및 역 양자화 및 변환을 수행할 수도 있다. 808 에서, 디코딩 프로세스 #1 (601-1) 는 예측된 픽셀들 및 잔차로부터 디코딩된 픽셀들을 생성한다. 예를 들어, 디코딩 프로세스 #1 (601-1) 은 디코딩된 픽셀들을 예측된 픽셀들과 결합할 수도 있다.
810 에서, 디코딩 프로세스 #1 (601-1) 은 참조 픽셀들로부터 서브-파티션 #1 에 대한 예측된 픽셀들을 생성한다. 812 에서, 디코딩 프로세스 #1 (601-1) 은 서브-파티션 #2 에 대해 예측 프로세스를 수행한다. 프로세스는 단계들 (802-810) 과 유사할 수도 있다. 그러나, 서브-파티션 #2 는 서브-파티션 #1 로부터의 참조 픽셀들을 사용한다.
병렬로, 다음이 수행된다. 대응하는 단계들은 정확히 동시에 수행되지 않을 수도 있음에 주목한다. 즉, 802 및 812 에서의 단계들은 동시에 시작 및 종료할 필요가 없다. 오히려, 802 내지 812 에서의 단계들은 814 내지 824 에서의 단계들과 병렬로 수행되며, 여기서 각각의 단계는 자신만의 페이스로 진행될 수도 있다. 814 에서, 디코딩 프로세스 #2 (601-2) 는 이전 블록의 참조 픽셀들로부터 예측된 픽셀들을 생성한다. 816 에서, 디코딩 프로세스 #2 (601-2) 는 서브-파티션 #3 에 대한 인코딩된 픽셀들을 수신한다. 818 에서, 디코딩 프로세스 #2 (601-2) 는 인코딩된 픽셀들로부터 서브-파티션 #3 에 대한 잔차를 생성한다. 820 에서, 디코딩 프로세스 #2 (601-2) 는 예측된 픽셀들 및 잔차로부터 디코딩된 픽셀들을 생성한다. 822 에서, 디코딩 프로세스 #2 (601-2) 는 참조 픽셀들로부터 서브-파티션 #3 에 대한 예측된 픽셀들을 생성한다. 824 에서, 디코딩 프로세스 #2 (601-2) 는 서브-파티션 #4 에 대해 예측 프로세스를 수행한다. 프로세스는 단계들 (814-822) 과 유사할 수도 있다. 그러나, 서브-파티션 #4 는 서브-파티션 #2 로부터의 참조 픽셀들을 사용한다.
결론
따라서, 블록의 다중 서브-파티션들에 대해 동일한 참조 픽셀들을 사용함으로써, 트랜스코딩 및 디코딩 프로세스가 보다 효율적으로 수행될 수 있다. 이것은 트랜스코더 및/또는 디코더의 성능을 향상시킨다.
시스템
도 9 는 일부 실시형태들에 따른 트랜스코딩 시스템의 예를 도시한다. 비디오 코덱 프레임워크는 기본 컴포넌트들의 세트: 블록 파티셔닝, 인터 및 인트라 예측, 변환 및 양자화, 및 엔트로피 코딩을 포함한다.
트랜스코더 (106) 는, 추후 프로세싱을 위해 먼저 비중첩 코딩 블록들로 스플리팅되는 비디오의 프레임을 수신한다. 상이한 비디오 콘텐츠 특성들에 대처하기 위해, 복잡한 영역들은 더 작은 사이즈들을 갖는 파티션들에 의해 커버될 것인 한편, 단순한 영역들은 더 큰 파티션들에 의해 커버될 것이다. 다중 블록 패턴들 및 형상들은 양자 모두 함께 사용될 수도 있고, 예를 들어, 쿼드-트리 패턴, 트리플-트리 패턴 및 바이너리-트리 패턴은 모두 함께 사용될 수 있는 한편, 정사각형 블록들 및 직사각형 블록들이 또한 함께 사용될 수 있다.
예측은 비디오 신호의 리던던시를 제거하는데 사용된다. 프로세싱되는 픽셀들로부터 예측된 픽셀 값들을 감산함으로써, 잔차 신호의 진폭이 상당히 감소될 수 있으며, 따라서 결과의 비트스트림 사이즈가 감소될 수 있다. 현재 프레임의 참조 픽셀들을 사용하고 있는 인트라 예측 블록 (910) 은 프레임 내의 공간 리던던시를 감소시키는 것을 목표로 한다. 이웃 프레임들로부터의 참조 픽셀들을 사용하고 있는 인터 예측 블록 (912) 은 프레임들 간의 시간 리던던시를 제거하려고 시도한다. 모션 추정 및 보상 블록 (916) 은 트랜스코더 측에서 인터 예측의 서브-모듈일 수도 있으며, 이는 인접한 프레임들 간의 오브젝트들의 모션 트레이스를 캡처하고 인터 예측을 위한 참조 픽셀들을 생성한다.
변환 및 양자화 블록 (904) 은 인트라 또는 인터 예측 후에 잔차 픽셀들을 사용한다. 변환 및 양자화 블록 (904) 은 주파수 도메인에서 잔차 신호를 나타내는 변환 동작을 수행한다. 인간 시각 시스템이 고 주파수 컴포넌트들보다 비디오 신호의 저 주파수 컴포넌트들에 더 민감하다는 것을 고려하여, 양자화는 고 주파수 신호들에 대한 정밀도를 감소시킴으로써 잔차 신호를 추가로 압축하도록 설계된다.
트랜스코더 (106) 와 디코더 (112) 사이의 비동기 (out-of-sync) 이슈를 회피하기 위해, 트랜스코더 (106) 는 트랜스코더 (106) 및 디코더 (112) 양자 모두가 동일한 수학적 프로세스들을 사용하고 있음을 확실히 하기 위해 디코딩 모듈들을 포함한다. 따라서, 역 변환 및 역 양자화 블록 (908) 은 디코더 측의 동일한 블록과 유사하다. 역 변환 및 역 양자화 블록 (908) 은 인트라 및 인터 예측을 사용하여 픽셀들을 복원한다.
인-루프 필터 (914) 는 상기 언급된 프로세스들에 의해 도입되는 임의의 시각적 아티팩트들을 제거한다. 블록킹 아티팩트들, 모스키토 아티팩트들, 컬러 밴딩 효과들 등을 포함하지만 이에 한정되지 않는 상이한 아티팩트들을 감소시키기 위해 캐스케이드 방식으로 복원된 프레임에 대해 다양한 필터링 방법들이 적용된다.
엔트로피 인코딩 블록 (906) 은 모델 기반 방법을 사용하여 비트스트림을 추가로 압축할 수도 있다. 트랜스코더 (106) 는 결과의 인코딩된 비트스트림을 네트워크 또는 다른 타입들의 매체를 통해 디코더 (112) 로 송신한다.
도 10 은 일부 실시형태들에 따른 디코딩 시스템의 예를 도시한다. 디코더 (112) 는 인코딩된 비트스트림을 수신하고 그것을 엔트로피 디코딩 블록 (1002) 에 입력하여 디코딩 프로세스에 필요한 정보를 복구한다. 상기 언급된 바와 같이, 디코딩된 프레임은 디코딩된 프레임을 구축하기 위해 동일한 방식으로 역 변환 및 역 양자화 블록 (1004), 인트라 예측 블록 (1006) 또는 인터 예측 블록 (1008), 모션 보상 블록 (1010), 및 인-루프 필터링 블록 (1012) 을 사용함으로써 디코딩될 수 있다.
예시적인 실시형태들
일부 실시형태들에서, 방법은, 컴퓨팅 디바이스에 의해, 코딩될 현재 블록을 수신하는 단계; 컴퓨팅 디바이스에 의해, 현재 블록을 복수의 서브-파티션들로 스플리팅하는 단계; 컴퓨팅 디바이스에 의해, 제 1 세트의 참조 픽셀들을 결정하는 단계; 컴퓨팅 디바이스에 의해, 제 1 세트의 참조 픽셀들을 사용하여 복수의 서브-파티션들에서의 제 1 서브-파티션을, 그리고 제 1 세트의 참조 픽셀들을 사용하여 복수의 서브-파티션들에서의 제 2 서브-파티션을 병렬로 프로세싱하는 단계; 및 컴퓨팅 디바이스에 의해, 제 1 서브-파티션의 프로세싱으로부터 결정된 제 2 세트의 참조 픽셀들에 기초하여 복수의 서브-파티션들에서의 제 3 서브-파티션을 프로세싱하고 제 2 서브-파티션의 프로세싱으로부터 결정된 제 3 세트의 참조 픽셀들에 기초하여 복수의 서브-파티션들에서의 제 4 서브-파티션을 프로세싱하는 단계를 포함한다.
일부 실시형태들에서, 제 1 세트의 참조 픽셀들은 프레임에서 현재 블록에 대한 인접한 블록으로부터의 픽셀들을 포함한다.
일부 실시형태들에서, 제 1 세트의 참조 픽셀들은 프레임에서 현재 블록의 좌측에 위치되는 좌측 블록 및 현재 블록의 상부에 위치되는 상부 블록으로부터의 픽셀들을 포함한다.
일부 실시형태들에서, 제 1 서브-파티션은 프레임의 에지를 따라 제 1 위치에 위치되고, 제 2 서브-파티션은 제 1 서브-파티션 바로 옆에 위치되지 않는다.
일부 실시형태들에서, 제 3 서브-파티션은 제 1 서브-파티션과 제 2 서브-파티션 사이에 위치된다.
일부 실시형태들에서, 제 4 서브-파티션은 제 2 서브-파티션 바로 옆에 위치된다.
일부 실시형태들에서, 제 1 세트의 참조 픽셀들은 현재 블록 이외의 다른 블록의 디코딩된 픽셀들로부터 생성된다.
일부 실시형태들에서, 제 2 세트의 참조 픽셀들은 제 1 서브-파티션의 디코딩된 픽셀들로부터 생성되고, 제 3 세트의 참조 픽셀들은 제 2 서브-파티션의 디코딩된 픽셀들로부터 생성된다.
일부 실시형태들에서, 제 2 세트의 참조 픽셀들은 제 1 서브-파티션의 제 1 잔차로부터 생성되고, 제 3 세트의 참조 픽셀들은 제 2 서브-파티션의 제 2 잔차로부터 생성된다.
일부 실시형태들에서, 제 1 세트의 참조 픽셀들을 사용하여 제 1 서브-파티션을, 그리고 제 1 세트의 참조 픽셀들을 사용하여 제 2 서브-파티션을 병렬로 프로세싱하는 단계는, 제 1 세트의 참조 픽셀들로부터 제 1 예측된 픽셀들을 생성하는 단계; 제 1 예측된 픽셀들을 사용하여 제 1 서브-파티션을 트랜스코딩하는 단계; 제 2 세트의 참조 픽셀들로부터 제 2 예측된 픽셀들을 생성하는 단계; 및 제 2 예측된 픽셀들을 사용하여 제 2 서브-파티션을 트랜스코딩하는 단계를 포함한다.
일부 실시형태들에서, 제 1 서브-파티션의 프로세싱으로부터 결정된 제 2 세트의 참조 픽셀들에 기초하여 복수의 서브-파티션들에서의 제 3 서브-파티션을 프로세싱하고 제 2 서브-파티션의 프로세싱으로부터 결정된 제 3 세트의 참조 픽셀들에 기초하여 복수의 서브-파티션들에서의 제 4 서브-파티션을 프로세싱하는 단계는, 제 2 세트의 참조 픽셀들로부터 제 3 예측된 픽셀들을 생성하는 단계; 제 3 예측된 픽셀들을 사용하여 제 3 서브-파티션을 트랜스코딩하는 단계; 제 3 세트의 참조 픽셀들로부터 제 4 예측된 픽셀들을 생성하는 단계; 및 제 4 예측된 픽셀들을 사용하여 제 4 서브-파티션을 트랜스코딩하는 단계를 포함한다.
일부 실시형태들에서, 제 2 세트의 참조 픽셀들은 제 1 서브-파티션의 제 1 디코딩된 픽셀들 및 제 1 예측된 픽셀들로부터 생성되고, 제 3 세트의 참조 픽셀들은 제 2 서브-파티션의 제 2 디코딩된 픽셀들 및 제 2 예측된 픽셀들로부터 생성된다.
일부 실시형태들에서, 제 1 세트의 참조 픽셀들을 사용하여 제 1 서브-파티션을, 그리고 제 1 세트의 참조 픽셀들을 사용하여 제 2 서브-파티션을 병렬로 프로세싱하는 단계는, 제 1 서브-파티션을 디코딩하는 단계; 제 1 세트의 참조 픽셀들로부터 제 1 예측된 픽셀들을 생성하는 단계; 디코딩된 제 1 서브-파티션 및 제 1 예측된 픽셀들로부터 제 2 세트의 참조 픽셀들을 생성하는 단계; 제 2 서브-파티션을 디코딩하는 단계; 제 2 세트의 참조 픽셀들로부터 제 2 예측된 픽셀들을 생성하는 단계; 및 디코딩된 제 2 서브-파티션 및 제 2 예측된 픽셀들로부터 제 3 세트의 참조 픽셀들을 생성하는 단계를 포함한다.
일부 실시형태들에서, 명령들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서, 명령들은, 실행될 경우, 코딩될 현재 블록을 수신하고; 현재 블록을 복수의 서브-파티션들로 스플리팅하고; 제 1 세트의 참조 픽셀들을 결정하고; 제 1 세트의 참조 픽셀들을 사용하여 복수의 서브-파티션들에서의 제 1 서브-파티션을, 그리고 제 1 세트의 참조 픽셀들을 사용하여 복수의 서브-파티션들에서의 제 2 서브-파티션을 병렬로 프로세싱하고; 제 1 서브-파티션의 프로세싱으로부터 결정된 제 2 세트의 참조 픽셀들에 기초하여 복수의 서브-파티션들에서의 제 3 서브-파티션을 프로세싱하고 제 2 서브-파티션의 프로세싱으로부터 결정된 제 3 세트의 참조 픽셀들에 기초하여 복수의 서브-파티션들에서의 제 4 서브-파티션을 프로세싱하기 위해 동작가능하도록 컴퓨터 시스템을 제어한다.
일부 실시형태들에서, 제 1 세트의 참조 픽셀들은 프레임에서 현재 블록에 대한 인접한 블록으로부터의 픽셀들을 포함한다.
일부 실시형태들에서, 제 1 세트의 참조 픽셀들을 사용하여 제 1 서브-파티션을, 그리고 제 1 세트의 참조 픽셀들을 사용하여 제 2 서브-파티션을 병렬로 프로세싱하는 것은, 제 1 세트의 참조 픽셀들로부터 제 1 예측된 픽셀들을 생성하는 것; 제 1 예측된 픽셀들을 사용하여 제 1 서브-파티션을 트랜스코딩하는 것; 제 2 세트의 참조 픽셀들로부터 제 2 예측된 픽셀들을 생성하는 것; 및 제 2 예측된 픽셀들을 사용하여 제 2 서브-파티션을 트랜스코딩하는 것을 포함한다.
일부 실시형태들에서, 제 1 서브-파티션의 프로세싱으로부터 결정된 제 2 세트의 참조 픽셀들에 기초하여 복수의 서브-파티션들에서의 제 3 서브-파티션을 프로세싱하고 제 2 서브-파티션의 프로세싱으로부터 결정된 제 3 세트의 참조 픽셀들에 기초하여 복수의 서브-파티션들에서의 제 4 서브-파티션을 프로세싱하는 것은, 제 2 세트의 참조 픽셀들로부터 제 3 예측된 픽셀들을 생성하는 것; 제 3 예측된 픽셀들을 사용하여 제 3 서브-파티션을 트랜스코딩하는 것; 제 3 세트의 참조 픽셀들로부터 제 4 예측된 픽셀들을 생성하는 것; 및 제 4 예측된 픽셀들을 사용하여 제 4 서브-파티션을 트랜스코딩하는 것을 포함한다.
일부 실시형태들에서, 제 2 세트의 참조 픽셀들은 제 1 서브-파티션의 제 1 디코딩된 픽셀들 및 제 1 예측된 픽셀들로부터 생성되고, 제 3 세트의 참조 픽셀들은 제 2 서브-파티션의 제 2 디코딩된 픽셀들 및 제 2 예측된 픽셀들로부터 생성된다.
일부 실시형태들에서, 제 1 세트의 참조 픽셀들을 사용하여 제 1 서브-파티션을, 그리고 제 1 세트의 참조 픽셀들을 사용하여 제 2 서브-파티션을 병렬로 프로세싱하는 것은, 제 1 서브-파티션을 디코딩하는 것; 제 1 세트의 참조 픽셀들로부터 제 1 예측된 픽셀들을 생성하는 것; 디코딩된 제 1 서브-파티션 및 제 1 예측된 픽셀들로부터 제 2 세트의 참조 픽셀들을 생성하는 것; 제 2 서브-파티션을 디코딩하는 것; 제 2 세트의 참조 픽셀들로부터 제 2 예측된 픽셀들을 생성하는 것; 및 디코딩된 제 2 서브-파티션 및 제 2 예측된 픽셀들로부터 제 3 세트의 참조 픽셀들을 생성하는 것을 포함한다.
일부 실시형태들에서, 장치는, 하나 이상의 컴퓨터 프로세서들; 및 명령들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 그 명령들은, 실행될 경우, 코딩될 현재 블록을 수신하고; 현재 블록을 복수의 서브-파티션들로 스플리팅하고; 제 1 세트의 참조 픽셀들을 결정하고; 제 1 세트의 참조 픽셀들을 사용하여 복수의 서브-파티션들에서의 제 1 서브-파티션을, 그리고 제 1 세트의 참조 픽셀들을 사용하여 복수의 서브-파티션들에서의 제 2 서브-파티션을 병렬로 프로세싱하고; 제 1 서브-파티션의 프로세싱으로부터 결정된 제 2 세트의 참조 픽셀들에 기초하여 복수의 서브-파티션들에서의 제 3 서브-파티션을 프로세싱하고 제 2 서브-파티션의 프로세싱으로부터 결정된 제 3 세트의 참조 픽셀들에 기초하여 복수의 서브-파티션들에서의 제 4 서브-파티션을 프로세싱하기 위해 동작가능하도록 하나 이상의 컴퓨터 프로세서들을 제어한다.
일부 실시형태들은 명령 실행 시스템, 장치, 시스템, 또는 머신에 의해 또는 그와 관련하여 사용하기 위해 비일시적 컴퓨터 판독가능 저장 매체에서 구현될 수도 있다. 컴퓨터 판독가능 저장 매체는 일부 실시형태들에 의해 설명된 방법을 수행하기 위해 컴퓨터 시스템을 제어하기 위한 명령들을 포함한다. 컴퓨터 시스템은 하나 이상의 컴퓨팅 디바이스들을 포함할 수도 있다. 명령들은, 하나 이상의 컴퓨터 프로세서들에 의해 실행될 경우, 일부 실시형태들에서 설명되는 것을 수행하도록 구성되거나 또는 동작가능할 수도 있다.
본 명세서에서의 설명에서 그리고 다음에 오는 청구항들 전체에 걸쳐 사용된 바와 같이, "a", "an", 및 "the" 는 문맥에서 분명히 달리 나타내지 않는 한 복수의 참조물들을 포함한다. 또한, 본 명세서에서의 설명에서 그리고 다음에 오는 청구항들 전체에 걸쳐 사용된 바와 같이, "에서 (in)" 의 의미는 문맥에서 분명히 달리 나타내지 않는 한 "에서 (in)" 및 "상에서 (on)" 를 포함한다.
상기 설명은 일부 실시형태들의 양태들이 구현될 수도 있는 방법의 예들과 함께 다양한 실시형태들을 예시한다. 상기 예들 및 실시형태들은 유일한 실시형태들인 것으로 간주되어서는 안되며 다음의 청구항들에 의해 정의된 바와 같이 일부 실시형태들의 유연성 및 이점들을 예시하기 위해 제시된다. 상기 개시 및 다음의 청구항들에 기초하여, 청구항들에 의해 정의된 바와 같은 본 개시의 범위로부터 벗어남 없이 다른 배열들, 실시형태들, 구현들, 및 등가물들이 채용될 수도 있다.

Claims (20)

  1. 방법으로서,
    컴퓨팅 디바이스에 의해, 코딩될 현재 블록을 수신하는 단계;
    상기 컴퓨팅 디바이스에 의해, 상기 현재 블록을 복수의 서브-파티션들로 스플리팅하는 단계;
    상기 컴퓨팅 디바이스에 의해, 제 1 세트의 참조 픽셀들을 결정하는 단계;
    상기 컴퓨팅 디바이스에 의해, 상기 제 1 세트의 참조 픽셀들을 사용하여 상기 복수의 서브-파티션들에서의 제 1 서브-파티션을, 그리고 상기 제 1 세트의 참조 픽셀들을 사용하여 상기 복수의 서브-파티션들에서의 제 2 서브-파티션을 병렬로 프로세싱하는 단계; 및
    상기 컴퓨팅 디바이스에 의해, 상기 제 1 서브-파티션의 프로세싱으로부터 결정된 제 2 세트의 참조 픽셀들에 기초하여 상기 복수의 서브-파티션들에서의 제 3 서브-파티션을 프로세싱하고 상기 제 2 서브-파티션의 프로세싱으로부터 결정된 제 3 세트의 참조 픽셀들에 기초하여 상기 복수의 서브-파티션들에서의 제 4 서브-파티션을 프로세싱하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 제 1 세트의 참조 픽셀들은 프레임에서 상기 현재 블록에 대한 인접한 블록으로부터의 픽셀들을 포함하는, 방법.
  3. 제 1 항에 있어서,
    상기 제 1 세트의 참조 픽셀들은 프레임에서 상기 현재 블록에 대한 하나 이상의 이웃 블록들로부터의 픽셀들을 포함하는, 방법.
  4. 제 1 항에 있어서,
    상기 제 1 서브-파티션은 프레임의 에지를 따라 제 1 위치에 위치되고,
    상기 제 2 서브-파티션은 상기 제 1 서브-파티션 바로 옆에 위치되지 않는, 방법.
  5. 제 4 항에 있어서,
    상기 제 3 서브-파티션은 상기 제 1 서브-파티션과 상기 제 2 서브-파티션 사이에 위치되는, 방법.
  6. 제 4 항에 있어서,
    상기 제 4 서브-파티션은 상기 제 2 서브-파티션 바로 옆에 위치되는, 방법.
  7. 제 1 항에 있어서,
    상기 제 1 세트의 참조 픽셀들은 상기 현재 블록 이외의 다른 블록의 디코딩된 픽셀들로부터 생성되는, 방법.
  8. 제 1 항에 있어서,
    상기 제 2 세트의 참조 픽셀들은 상기 제 1 서브-파티션의 디코딩된 픽셀들로부터 생성되고,
    상기 제 3 세트의 참조 픽셀들은 상기 제 2 서브-파티션의 디코딩된 픽셀들로부터 생성되는, 방법.
  9. 제 1 항에 있어서,
    상기 제 2 세트의 참조 픽셀들은 상기 제 1 서브-파티션의 제 1 잔차로부터 생성되고,
    상기 제 3 세트의 참조 픽셀들은 상기 제 2 서브-파티션의 제 2 잔차로부터 생성되는, 방법.
  10. 제 1 항에 있어서,
    상기 제 1 세트의 참조 픽셀들을 사용하여 상기 제 1 서브-파티션을, 그리고 상기 제 1 세트의 참조 픽셀들을 사용하여 상기 제 2 서브-파티션을 병렬로 프로세싱하는 단계는,
    상기 제 1 세트의 참조 픽셀들로부터 제 1 예측된 픽셀들을 생성하는 단계;
    상기 제 1 예측된 픽셀들을 사용하여 상기 제 1 서브-파티션을 트랜스코딩하는 단계;
    상기 제 2 세트의 참조 픽셀들로부터 제 2 예측된 픽셀들을 생성하는 단계; 및
    상기 제 2 예측된 픽셀들을 사용하여 상기 제 2 서브-파티션을 트랜스코딩하는 단계를 포함하는, 방법.
  11. 제 10 항에 있어서,
    상기 제 1 서브-파티션의 프로세싱으로부터 결정된 제 2 세트의 참조 픽셀들에 기초하여 상기 복수의 서브-파티션들에서의 제 3 서브-파티션을 프로세싱하고 상기 제 2 서브-파티션의 프로세싱으로부터 결정된 제 3 세트의 참조 픽셀들에 기초하여 상기 복수의 서브-파티션들에서의 제 4 서브-파티션을 프로세싱하는 단계는,
    상기 제 2 세트의 참조 픽셀들로부터 제 3 예측된 픽셀들을 생성하는 단계;
    상기 제 3 예측된 픽셀들을 사용하여 상기 제 3 서브-파티션을 트랜스코딩하는 단계;
    상기 제 3 세트의 참조 픽셀들로부터 제 4 예측된 픽셀들을 생성하는 단계; 및
    상기 제 4 예측된 픽셀들을 사용하여 상기 제 4 서브-파티션을 트랜스코딩하는 단계를 포함하는, 방법.
  12. 제 11 항에 있어서,
    상기 제 2 세트의 참조 픽셀들은 상기 제 1 서브-파티션의 제 1 디코딩된 픽셀들 및 상기 제 1 예측된 픽셀들로부터 생성되고,
    상기 제 3 세트의 참조 픽셀들은 상기 제 2 서브-파티션의 제 2 디코딩된 픽셀들 및 상기 제 2 예측된 픽셀들로부터 생성되는, 방법.
  13. 제 1 항에 있어서,
    상기 제 1 세트의 참조 픽셀들을 사용하여 상기 제 1 서브-파티션을, 그리고 상기 제 1 세트의 참조 픽셀들을 사용하여 상기 제 2 서브-파티션을 병렬로 프로세싱하는 단계는,
    상기 제 1 서브-파티션을 디코딩하는 단계;
    상기 제 1 세트의 참조 픽셀들로부터 제 1 예측된 픽셀들을 생성하는 단계;
    디코딩된 상기 제 1 서브-파티션 및 상기 제 1 예측된 픽셀들부터 상기 제 2 세트의 참조 픽셀들을 생성하는 단계;
    상기 제 2 서브-파티션을 디코딩하는 단계;
    상기 제 2 세트의 참조 픽셀들로부터 제 2 예측된 픽셀들을 생성하는 단계; 및
    디코딩된 상기 제 2 서브-파티션 및 상기 제 2 예측된 픽셀들로부터 상기 제 3 세트의 참조 픽셀들을 생성하는 단계를 포함하는, 방법.
  14. 명령들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 실행될 경우,
    코딩될 현재 블록을 수신하고;
    상기 현재 블록을 복수의 서브-파티션들로 스플리팅하고;
    제 1 세트의 참조 픽셀들을 결정하고;
    상기 제 1 세트의 참조 픽셀들을 사용하여 상기 복수의 서브-파티션들에서의 제 1 서브-파티션을, 그리고 상기 제 1 세트의 참조 픽셀들을 사용하여 상기 복수의 서브-파티션들에서의 제 2 서브-파티션을 병렬로 프로세싱하고;
    상기 제 1 서브-파티션의 프로세싱으로부터 결정된 제 2 세트의 참조 픽셀들에 기초하여 상기 복수의 서브-파티션들에서의 제 3 서브-파티션을 프로세싱하고 상기 제 2 서브-파티션의 프로세싱으로부터 결정된 제 3 세트의 참조 픽셀들에 기초하여 상기 복수의 서브-파티션들에서의 제 4 서브-파티션을 프로세싱하기
    위해 동작가능하도록 컴퓨터 시스템을 제어하는, 비일시적 컴퓨터 판독가능 저장 매체.
  15. 제 14 항에 있어서,
    상기 제 1 세트의 참조 픽셀들은 프레임에서 상기 현재 블록에 대한 인접한 블록으로부터의 픽셀들을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  16. 제 14 항에 있어서,
    상기 제 1 세트의 참조 픽셀들을 사용하여 상기 제 1 서브-파티션을, 그리고 상기 제 1 세트의 참조 픽셀들을 사용하여 상기 제 2 서브-파티션을 병렬로 프로세싱하는 것은,
    상기 제 1 세트의 참조 픽셀들로부터 제 1 예측된 픽셀들을 생성하는 것;
    상기 제 1 예측된 픽셀들을 사용하여 상기 제 1 서브-파티션을 트랜스코딩하는 것;
    상기 제 2 세트의 참조 픽셀들로부터 제 2 예측된 픽셀들을 생성하는 것; 및
    상기 제 2 예측된 픽셀들을 사용하여 상기 제 2 서브-파티션을 트랜스코딩하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  17. 제 16 항에 있어서,
    상기 제 1 서브-파티션의 프로세싱으로부터 결정된 제 2 세트의 참조 픽셀들에 기초하여 상기 복수의 서브-파티션들에서의 제 3 서브-파티션을 프로세싱하고 상기 제 2 서브-파티션의 프로세싱으로부터 결정된 제 3 세트의 참조 픽셀들에 기초하여 상기 복수의 서브-파티션들에서의 제 4 서브-파티션을 프로세싱하는 것은,
    상기 제 2 세트의 참조 픽셀들로부터 제 3 예측된 픽셀들을 생성하는 것;
    상기 제 3 예측된 픽셀들을 사용하여 상기 제 3 서브-파티션을 트랜스코딩하는 것;
    상기 제 3 세트의 참조 픽셀들로부터 제 4 예측된 픽셀들을 생성하는 것; 및
    상기 제 4 예측된 픽셀들을 사용하여 상기 제 4 서브-파티션을 트랜스코딩하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  18. 제 17 항에 있어서,
    상기 제 2 세트의 참조 픽셀들은 상기 제 1 서브-파티션의 제 1 디코딩된 픽셀들 및 상기 제 1 예측된 픽셀들로부터 생성되고,
    상기 제 3 세트의 참조 픽셀들은 상기 제 2 서브-파티션의 제 2 디코딩된 픽셀들 및 상기 제 2 예측된 픽셀들로부터 생성되는, 비일시적 컴퓨터 판독가능 저장 매체.
  19. 제 14 항에 있어서,
    상기 제 1 세트의 참조 픽셀들을 사용하여 상기 제 1 서브-파티션을, 그리고 상기 제 1 세트의 참조 픽셀들을 사용하여 상기 제 2 서브-파티션을 병렬로 프로세싱하는 것은,
    상기 제 1 서브-파티션을 디코딩하는 것;
    상기 제 1 세트의 참조 픽셀들로부터 제 1 예측된 픽셀들을 생성하는 것;
    디코딩된 상기 제 1 서브-파티션 및 상기 제 1 예측된 픽셀들로부터 상기 제 2 세트의 참조 픽셀들을 생성하는 것;
    상기 제 2 서브-파티션을 디코딩하는 것;
    상기 제 2 세트의 참조 픽셀들로부터 제 2 예측된 픽셀들을 생성하는 것; 및
    디코딩된 상기 제 2 서브-파티션 및 상기 제 2 예측된 픽셀들로부터 상기 제 3 세트의 참조 픽셀들을 생성하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  20. 장치로서,
    하나 이상의 컴퓨터 프로세서들; 및
    명령들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체를 포함하고,
    상기 명령들은, 실행될 경우,
    코딩될 현재 블록을 수신하고;
    상기 현재 블록을 복수의 서브-파티션들로 스플리팅하고;
    제 1 세트의 참조 픽셀들을 결정하고;
    상기 제 1 세트의 참조 픽셀들을 사용하여 상기 복수의 서브-파티션들에서의 제 1 서브-파티션을, 그리고 상기 제 1 세트의 참조 픽셀들을 사용하여 상기 복수의 서브-파티션들에서의 제 2 서브-파티션을 병렬로 프로세싱하고;
    상기 제 1 서브-파티션의 프로세싱으로부터 결정된 제 2 세트의 참조 픽셀들에 기초하여 상기 복수의 서브-파티션들에서의 제 3 서브-파티션을 프로세싱하고 상기 제 2 서브-파티션의 프로세싱으로부터 결정된 제 3 세트의 참조 픽셀들에 기초하여 상기 복수의 서브-파티션들에서의 제 4 서브-파티션을 프로세싱하기
    위해 동작가능하도록 상기 하나 이상의 컴퓨터 프로세서들을 제어하는, 장치.
KR1020217042533A 2019-05-30 2020-05-29 서브-파티션들의 병렬 인트라-코딩 KR20220003125A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962854736P 2019-05-30 2019-05-30
US62/854,736 2019-05-30
US16/886,627 2020-05-28
US16/886,627 US11197009B2 (en) 2019-05-30 2020-05-28 Processing sub-partitions in parallel using reference pixels
PCT/US2020/035360 WO2020243595A1 (en) 2019-05-30 2020-05-29 Parallel intra-coding of sub-partitions

Publications (1)

Publication Number Publication Date
KR20220003125A true KR20220003125A (ko) 2022-01-07

Family

ID=73549757

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217042533A KR20220003125A (ko) 2019-05-30 2020-05-29 서브-파티션들의 병렬 인트라-코딩

Country Status (5)

Country Link
US (3) US11197009B2 (ko)
EP (1) EP3977730A4 (ko)
KR (1) KR20220003125A (ko)
CN (1) CN113875238A (ko)
WO (1) WO2020243595A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11197009B2 (en) 2019-05-30 2021-12-07 Hulu, LLC Processing sub-partitions in parallel using reference pixels
US11202070B2 (en) 2019-05-30 2021-12-14 Hulu, LLC Parallel bi-directional intra-coding of sub-partitions
WO2023028965A1 (en) * 2021-09-02 2023-03-09 Nvidia Corporation Hardware codec accelerators for high-performance video encoding
WO2023028964A1 (en) 2021-09-02 2023-03-09 Nvidia Corporation Parallel processing of video frames during video encoding
CN114501029B (zh) * 2022-01-12 2023-06-06 深圳市洲明科技股份有限公司 图像编码、图像解码方法、装置、计算机设备和存储介质

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859494B2 (en) * 2001-07-27 2005-02-22 General Instrument Corporation Methods and apparatus for sub-pixel motion estimation
US20080120676A1 (en) 2006-11-22 2008-05-22 Horizon Semiconductors Ltd. Integrated circuit, an encoder/decoder architecture, and a method for processing a media stream
KR101365575B1 (ko) * 2007-02-05 2014-02-25 삼성전자주식회사 인터 예측 부호화, 복호화 방법 및 장치
US9363533B2 (en) * 2010-09-29 2016-06-07 Electronics And Telecommunications Research Institute Method and apparatus for video-encoding/decoding using filter information prediction
US20120163460A1 (en) 2010-12-23 2012-06-28 Qualcomm Incorporated Sub-pixel interpolation for video coding
ES2661699T3 (es) * 2011-06-28 2018-04-03 Samsung Electronics Co., Ltd. Procedimiento de decodificación de vídeo con intra predicción
US9584819B2 (en) * 2011-10-24 2017-02-28 Qualcomm Incorporated Grouping of tiles for video coding
US20130121417A1 (en) * 2011-11-16 2013-05-16 Qualcomm Incorporated Constrained reference picture sets in wave front parallel processing of video data
US9749661B2 (en) * 2012-01-18 2017-08-29 Qualcomm Incorporated Sub-streams for wavefront parallel processing in video coding
KR102169608B1 (ko) * 2012-01-19 2020-10-23 삼성전자주식회사 인트라 예측 처리 속도 향상을 위한 비디오의 부호화 방법 및 장치, 비디오의 복호화 방법 및 장치
KR20130086004A (ko) * 2012-01-20 2013-07-30 삼성전자주식회사 병렬 처리가 가능한 엔트로피 부호화 방법 및 장치, 병렬 처리가 가능한 엔트로피 복호화 방법 및 장치
US9866829B2 (en) 2012-01-22 2018-01-09 Qualcomm Incorporated Coding of syntax elements that correspond to coefficients of a coefficient block in video coding
US9838684B2 (en) * 2012-04-11 2017-12-05 Qualcomm Incorporated Wavefront parallel processing for video coding
TWI499283B (zh) * 2012-07-05 2015-09-01 Ind Tech Res Inst 視訊壓縮方法與視訊壓縮裝置
US9906786B2 (en) 2012-09-07 2018-02-27 Qualcomm Incorporated Weighted prediction mode for scalable video coding
FR2999760A1 (fr) 2012-12-17 2014-06-20 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US10341673B2 (en) 2013-05-08 2019-07-02 Integrated Device Technology, Inc. Apparatuses, methods, and content distribution system for transcoding bitstreams using first and second transcoders
US10158866B2 (en) 2014-09-26 2018-12-18 Qualcomm Incorporated Parsing dependency reduction for palette index coding
US10091530B2 (en) * 2014-10-01 2018-10-02 Qualcomm Incorporated Pipelined intra-prediction hardware architecture for video coding
US9706210B2 (en) * 2014-11-07 2017-07-11 Qualcomm Incorporated Low complexity coding based on dynamic mode decision branching for largest coding units
US10425648B2 (en) * 2015-09-29 2019-09-24 Qualcomm Incorporated Video intra-prediction using position-dependent prediction combination for video coding
US10368083B2 (en) * 2016-02-15 2019-07-30 Qualcomm Incorporated Picture order count based motion vector pruning
EP4030754A1 (en) * 2016-05-02 2022-07-20 Industry-University Cooperation Foundation Hanyang University Image encoding/decoding method and computer-readable medium
WO2018070896A1 (en) * 2016-10-14 2018-04-19 Huawei Technologies Co., Ltd. Distance weighted bi-directional intra prediction
KR102653715B1 (ko) * 2017-07-03 2024-04-01 브이아이디 스케일, 인크. 양방향 광학 흐름에 기반한 모션 보상 예측
JP6994868B2 (ja) * 2017-08-09 2022-01-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、復号装置、符号化方法、および復号方法
WO2020140862A1 (en) * 2018-12-30 2020-07-09 Beijing Bytedance Network Technology Co., Ltd. Conditional application of inter prediction with geometric partitioning in video processing
US11202070B2 (en) 2019-05-30 2021-12-14 Hulu, LLC Parallel bi-directional intra-coding of sub-partitions
US11197009B2 (en) 2019-05-30 2021-12-07 Hulu, LLC Processing sub-partitions in parallel using reference pixels

Also Published As

Publication number Publication date
US12041251B2 (en) 2024-07-16
US20240340433A1 (en) 2024-10-10
WO2020243595A1 (en) 2020-12-03
EP3977730A1 (en) 2022-04-06
US20220094956A1 (en) 2022-03-24
US11197009B2 (en) 2021-12-07
CN113875238A (zh) 2021-12-31
EP3977730A4 (en) 2023-03-15
US20200382804A1 (en) 2020-12-03

Similar Documents

Publication Publication Date Title
KR20220003125A (ko) 서브-파티션들의 병렬 인트라-코딩
US11202070B2 (en) Parallel bi-directional intra-coding of sub-partitions
US10291934B2 (en) Modified HEVC transform tree syntax
US11758171B2 (en) Methods and systems for performing gradual decoding refresh processing on pictures
JP2022529999A (ja) Bdpcmに基づく映像コーディング方法、及びその装置
JP7400082B2 (ja) パレットモードに基づく画像またはビデオコーディング
AU2020240943A1 (en) Method and device for signaling information on chroma format
WO2015145504A1 (ja) 画像復号装置、画像復号方法、及び集積回路
KR20180044944A (ko) 계수 유도 예측을 이용하여 비디오 신호를 처리하는 방법 및 장치
JP2023521295A (ja) 映像符号化データをシグナリングするための方法
JP2023502128A (ja) ループフィルタリングを制御する画像コーディング装置及び方法
JP2024144567A (ja) ピクチャ分割情報をシグナリングする方法及び装置
JP2024150682A (ja) ピクチャレベルまたはスライスレベルで適用される画像情報をシグナリングする方法及び装置
US10785499B2 (en) Method and apparatus for processing video signal on basis of combination of pixel recursive coding and transform coding
JP2022548204A (ja) 変換スキップモードで映像データを符号化するための方法及び装置
JPWO2017082304A1 (ja) 情報圧縮装置、情報圧縮方法、情報圧縮プログラム、及び、符号化装置
JP2021533618A (ja) イントラ予測のための方法及び機器
US11582478B2 (en) Video encoding technique utilizing user guided information in cloud environment
JP7418561B2 (ja) 変換に基づく映像コーディング方法及びその装置
RU2795696C2 (ru) Преобразование при кодировании изображений на основе внутреннего прогнозирования
RU2795799C2 (ru) Преобразование для матричного внутреннего прогнозирования при кодировании изображений
RU2781079C1 (ru) Преобразование при кодировании изображений на основе внутреннего прогнозирования
RU2781175C1 (ru) Преобразование для матричного внутреннего прогнозирования при кодировании изображений
US20230028434A1 (en) Image encoding method and image decoding method
US20220377354A1 (en) Image encoding method and image decoding method

Legal Events

Date Code Title Description
A201 Request for examination