KR102125601B1 - 비변환 코딩을 위한 스캐닝 순서 조정 기법 - Google Patents
비변환 코딩을 위한 스캐닝 순서 조정 기법 Download PDFInfo
- Publication number
- KR102125601B1 KR102125601B1 KR1020167001970A KR20167001970A KR102125601B1 KR 102125601 B1 KR102125601 B1 KR 102125601B1 KR 1020167001970 A KR1020167001970 A KR 1020167001970A KR 20167001970 A KR20167001970 A KR 20167001970A KR 102125601 B1 KR102125601 B1 KR 102125601B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- coding
- scanning order
- scanning
- size
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/107—Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
비디오 콘텐츠의 비변환 블록은 스캐닝 순서를 선택적으로 변경함으로써 코딩될 수 있다. 일부 실시예에서, 인코더 또는 디코더는 스캐닝 순서에 따라 블록에 대해 스캐닝 순서를 수행할 수 있다. 블록이 변환되지 않은 경우, 인코더 또는 디코더는 스캐닝 순서를 다른 순서로 선택적으로 변경할 수 있다. 예를 들어, 블록이 특정 유형의 예측과 연관된 경우, 스캐닝 순서는 다른 순서로 변경될 수 있다. 또 다른 예로, 비변환 블록이 사전결정된 크기보다 작은 크기를 갖는 경우, 스캐닝 순서는 다른 순서로 변경될 수 있다.
Description
비디오 콘텐츠를 효과적으로 전달 및 저장하기 위해 비디오 압축 기술이 이용된다. 이들 기술은 일반적으로 비디오 콘텐츠를 표현하는 데이터의 양을 감축시키려 한다. 일 예로, 비디오 프레임은 예컨대 예측(prediction), 변환(transform), 양자화(quantization) 및 엔트로피 코딩과 같은 다양한 코딩 기법이 적용되는 픽셀들의 블록들(예컨대, 코딩 유닛들)로 분할된다. 픽셀들의 블록의 코딩 동안, 이 블록과 연관된 데이터(예컨대, 변환 계수)의 2차원 어레이에 대해 스캐닝 프로세스가 수행되어 데이터를 엔트로피 코딩이 적용되는 1차원 어레이로 재정렬할 수 있다. 스캐닝 프로세스는 1차원 어레이의 일 종단에 특정 데이터(예를 들어, 비제로(non-zero) 계수)를 정렬하기 위해 특정 순서(예를 들어, 수평, 지그-재그, 수직 등)에 따라 수행될 수 있다.
본 발명은 최적의 스캐닝 순서에 따라 비디오 콘텐츠의 비변환(non-transform) 블록을 코딩하는 것에 관한 것이다. 일부 실시예에서, 인코더 또는 디코더는 픽셀들의 블록과 연관된 데이터의 2차원 어레이를 데이터의 1차원 어레이로 변경하기 위해 또는 그 반대로 변경하기 위해 코딩 동안 스캐닝 프로세스를 수행할 수 있다. 스캐닝 프로세스는 엔트로피 코딩을 위해 데이터를 재정렬하도록 소정 순서(예를 들어, 수평, 수직, 지그재그 등)에 따라 수행될 수 있다. 변환된 코딩 블록이 코딩되는 경우, 인코더 또는 디코더는 특정 스캐닝 순서를 이용할 수 있다. 변환되지 않은 블록(예를 들어, 비변환 블록, 비변환 코딩과 연관된 블록 등)이 코딩되는 경우, 인코더 또는 디코더는 특정 스캐닝 순서를 다른 순서로 선택적으로 변경할 수 있다. 예를 들어, 비변환 블록이 특정 유형의 예측과 연관된 경우, 스캐닝 순서는 다른 순서로 변경될 수 있다. 또 다른 예에서, 비변환 블록이 사전결정된 크기(예를 들어, 8*8 블록, 16*16 블록 등)보다 작은 크기를 갖는 경우, 스캐닝 순서는 다른 순서로 변경될 수 있다.
본 요약은 이하 발명의 상세한 설명에서 보다 자세히 기술될 선택된 개념들을 단순화된 형식으로 소개하기 위해 제공되는 것이다. 본 요약은 청구대상의 주된 사항 또는 핵심 사항을 밝히기 위한 것이 아니며, 청구대상의 범위를 결정하는데 사용되려는 것도 아니다.
상세한 설명은 첨부한 도면을 참조하여 설명된다. 도면에서, 참조번호의 가장 왼쪽 숫자는 그 참조번호가 처음 등장하는 도면을 식별한다. 상이한 도면에서 사용된 동일한 참조번호는 유사한 또는 동일한 항목 또는 특징을 나타낸다.
도 1은 스캐닝 순서를 선택적으로 변경함으로써 비디오 콘텐츠의 비변환 블록을 코딩하는 예시적인 아키텍처를 나타낸다.
도 2는 도 1의 인코더의 예시적인 세부사항을 나타낸다.
도 3은 도 1의 디코더의 예시적인 세부사항을 나타낸다.
도 4(a) 및 도 4(b)는 블록을 스캐닝하는데 사용될 수 있는 예시적인 스캐닝 순서를 나타낸다.
도 5는 스캐닝 순서를 선택적으로 변경함으로써 비디오 콘텐츠의 비변환 블록을 코딩하는 예시적인 프로세스를 나타낸다.
도 2는 도 1의 인코더의 예시적인 세부사항을 나타낸다.
도 3은 도 1의 디코더의 예시적인 세부사항을 나타낸다.
도 4(a) 및 도 4(b)는 블록을 스캐닝하는데 사용될 수 있는 예시적인 스캐닝 순서를 나타낸다.
도 5는 스캐닝 순서를 선택적으로 변경함으로써 비디오 콘텐츠의 비변환 블록을 코딩하는 예시적인 프로세스를 나타낸다.
비디오 콘텐츠는 일반적으로 단일 프레임 내에서 또는 다수의 프레임에 걸쳐 중복 정보(duplicative information)를 갖는 일련의 프레임을 포함한다. 중복 정보의 양을 줄이기 위해, 예측, 변환, 양자화 및 엔트로피 코딩과 같은 다양한 코딩(예를 들어, 압축) 기법이 이용되어 비디오 콘텐츠를 표현하는데 사용되는 비트의 수를 감소시킬 수 있다. 코딩 기법을 수행하는 동안(예를 들어, 엔트로피 코딩 전에 또는 그 동안), 픽셀들의 블록과 연관된 데이터의 2차원 어레이를 데이터의 1차원 어레이로 변경 또는 그 반대로 변경하기 위해 스캐닝 프로세스가 수행될 수 있다. 이 스캐닝 프로세스는 1차원 어레이의 일 종단에서 특정 유형의 데이터(예를 들어, 비제로 변환 계수)를 정렬하기 위한 특정 순서(예를 들어, 수평, 수직, 지그재그 등)에 따라 수행될 수 있다. 그러나, 모든 유형의 블록에 대한 획일적인 스캐닝 순서는 바람직하지 않은 결과, 예를 들어 1차원 어레이에서의 특정 유형의 데이터의 산발적인 분포를 야기할 수 있다.
본 발명은 최적의 스캐닝 순서에 따라 비디오 콘텐츠의 비변환 블록을 코딩하는 것에 관한 것이다. 일부 경우, 비변환 블록을 스캐닝하는데 사용될 수 있는 스캐닝 순서는 비변환 블록과 연관된 정보(예를 들어, 예측 모드 및/또는 블록의 크기)에 기초하여 다른 순서로 선택적으로 변경될 수 있다. 이것은 블록과 연관된 특정 유형의 데이터가 스캐닝 동안 효율적으로 정렬될 수 있게 해주고 및/또는 스캐닝 순서의 변경으로 인해 불필요하게 발생하는 복잡성을 피할 수 있게 해준다.
일부 구현에서, 인코더 또는 디코더는 블록의 변환없이 예측, 양자화 및/또는 엔트로피 코딩을 통해 블록을 코딩할 수 있다. 이러한 유형의 블록은 "비변환 블록"으로 지칭될 수 있다. 이러한 경우, 인코더 또는 디코더는 코딩 동안 수행되는 스캐닝 프로세스의 스캐닝 순서를 변경할지 여부를 결정할 수 있다. 예를 들어, 인코더 또는 디코더는 변환이 수행된 블록("변환 블록"으로 지칭됨)에 대해 사용되는 스캐닝 순서에 따라 비변환 블록을 스캐닝할지 또는 다른 순서에 따라 비변환 블록을 스캐닝할지 여부를 결정할 수 있다.
설명을 위해, 비변환 블록이 특정 유형의 예측(예를 들어, 인트라-예측)과 연관된 경우, 비변환 블록은 변환 블록을 스캐닝하는데 사용된 것과 다른 순서에 따라 스캐닝될 수 있다. 또 다른 예에서, 비변환 블록이 사전결정된 크기(예를 들어, 8*8 블록, 16*16 블록 등)보다 작은 크기를 갖는 경우, 비변환 블록은 변환 블록을 스캐닝하는데 사용된 것과 다른 순서에 따라 스캐닝될 수 있다.
어떤 경우든, 비변환 블록은 최적의 스캐닝 순서에 따라 스캐닝될 수 있다. 예를 들어, 비변환 블록의 데이터의 2차원 어레이(예를 들어, 잔차 정보(residual information))는 특정 순서로 스캐닝되어 데이터의 1차원 어레이를 생성할 수 있다. 1차원 어레이는 엔트로피 코딩이 수행될 수 있다.
본 명세서에서는 다수의 코딩 기법이 고효율 비디오 코딩(HEVC) 표준의 문맥에서 설명되어 있지만, 이들 기법은 고급 비디오 코딩(AVC) 표준 등과 같은 다른 표준에도 유사하게 적용될 수 있다.
독자의 편의를 위해 간단한 서론이 제공되었지만 청구대상 및 후속하는 문단의 범주를 제한하려는 것은 아니다. 또한, 이하에서 자세히 설명되는 기법들은 여러 방식 및 여러 문맥에서 구현될 수 있다. 하나의 예시적인 구현 및 문맥은 이하에서 보다 자세히 설명되는 바와 같이 후속하는 도면을 참조하여 설명된다. 그러나, 후속하는 구현 및 문맥은 단지 하나의 예일뿐이다.
예시적인 아키텍처
도 1은 특정 스캐닝 순서에 따라 비변환 블록을 코딩하는 예시적인 아키텍처(100)를 나타낸다. 본 명세서에서, 코딩 기법은 비디오 콘텐츠를 인코딩하고(예를 들어, 압축하고) 인코딩된 비디오 콘텐츠를 장치(104)에 전송하는 비디오 콘텐츠 소스(102)의 문맥에서 설명된다. 예를 들어, 비디오 콘텐츠 소스(102)는 블록을 스캐닝하는데 사용되는 스캐닝 순서를 선택적으로 변경함으로써 비디오 콘텐츠를 인코딩할 수 있다. 인코딩된 비디오는 네트워크(들)(106)를 통해 장치(104)에 전송될 수 있고, 이 장치(104)에서, 비디오 콘텐츠는 스캐닝 순서를 선택적으로 변경함으로써 디코딩된다. 본 명세서에서 비디오 인코딩 및 디코딩 기법이 별개의 장치(예를 들어, 비디오 콘텐츠 소스(102) 및 장치(104))에서 수행되는 것으로 설명되어 있지만, 인코딩 및/또는 디코딩은 동일한 장치 상에서 수행될 수 있거나 또는 분산 컴퓨팅 환경에서 장치들에 걸쳐 분산될 수 있다.
비디오 콘텐츠 소스(102) 및/또는 장치(104)는 임의의 유형의 컴퓨팅 장치, 예를 들어, 서버, 랩탑 컴퓨터, 데스크탑 컴퓨터, 스마트폰, 전자 리더 장치, 이동 핸드셋, 개인 보조 단말기(PDA), 휴대용 네비게이션 장치, 휴대용 게임 장치, 게임 콘솔, 태블릿 컴퓨터, 스마트 워치, 휴대용 미디어 플레이어, 셋탑 박스 등으로 구현될 수 있다. 일 예로, 비디오 콘텐츠 소스(102) 및/또는 장치(104)는 클러스터, 데이터 센터, 클라우드 컴퓨팅 환경 또는 이들의 조합에서 구성된다. 설명을 위해, 비디오 콘텐츠 소스(102)는 저장, 처리 등과 같은 클라우드 서비스를 제공하는 클라우드 컴퓨팅 장치로서 동작할 수 있다. 클라우드 환경은 하나 이상의 유형의 컴퓨팅 리소스(예를 들어, 컴퓨팅, 네트워킹, 및/또는 저장 장치)를 포함하는 네트워크 분산형 환경을 포함할 수 있다.
비디오 콘텐츠 소스(102)는 하나 이상의 네트워크 인터페이스(108), 하나 이상의 프로세서(110) 및 메모리(112)를 구비할 수 있다. 하나 이상의 프로세서(110)는 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 마이크로프로세서, 디지털 신호 프로세서 등을 포함할 수 있다. 메모리(112)는 다양한 기능을 구현하기 위해 하나 이상의 프로세서(110) 상에서 실행가능한 하나 이상의 소프트웨어 및/또는 펌웨어 모듈을 저장하도록 구성될 수 있다. "모듈"이라는 용어는 설명을 목적으로 소프트웨어의 예시적인 분할을 나타내려는 것이지, 임의의 유형의 요건 또는 요구되는 방법, 방식 또는 구성을 나타내려는 것은 아니다. 따라서, 다양한 "모듈"이 설명될 것이지만, 그들의 기능 및/또는 유사한 기능은 다르게 정렬될 수 있다(예를 들어, 보다 적은 수의 모듈로 결합되거나, 보다 많은 수의 모듈로 분할되거나 할 수 있다). 또한, 본 명세서에서는 소정의 기능 및 모듈이 프로세서 상에서 실행가능한 소프트웨어 및/또는 펌웨어에 의해 구현되는 것으로 설명되어 있지만, 다른 실시예에서, 임의의 또는 모든 모듈은 기술된 기능을 실행하기 위해 하드웨어(예를 들어, ASIC, 특수 처리 장치 등)에 의해 완전히 또는 부분적으로 구현될 수 있다.
도 1에 도시되어 있는 바와 같이, 메모리(112)는 비디오 콘텐츠(116)를 인코딩(예를 들어, 압축)하도록 구성된 인코더(114)(예를 들어, 인코더 모듈)를 포함할 수 있다. 인코더(114)는 예측, 변환, 양자화 및/또는 엔트로피 코딩과 같은 다양한 인코딩 기법을 적용하여 비디오 콘텐츠를 나타내는 비트스트림을 생성할 수 있다. 인코딩 기법을 수행하는 동안(예를 들어, 엔트로피 코딩 전에 또는 그 동안), 픽셀들의 블록을 나타내는 데이터를 특정 순서로 정렬하기 위한 스캐닝 순서에 따라 스캐닝 프로세스가 수행될 수 있다. 인코더(114)는 하나 이상의 기준을 만족시키는, 예를 들어 특정 유형의 예측(예를 들어, 인트라-예측)과 연관되고 및/또는 특정 크기(예를 들어, 8*8 블록, 16*16 블록, 32*32 블록 등 보다 작은 크기)를 갖는 비변환 블록에 대해 스캐닝 순서를 변경할 수 있다. 예를 들어, 특정한 비변환 블록을 스캐닝하기 위해, 인코더(114)는 스캐닝 순서를 변환 블록과 연관된 제1 스캐닝 순서(118)로부터 제2 스캐닝 순서(120)로 변경할 수 있다. 인코더(114)에 대한 보다 자세한 사항은 이하의 도 2를 참조하여 설명된다. 도 1에는 도시되어 있지 않지만, 메모리(112)는 비디오 콘텐츠를 디코딩하도록 구성된 디코더를 또한 포함할 수 있다.
장치(104)는 하나 이상의 네트워크 인터페이스(122), 하나 이상의 프로세서(124) 및 메모리(126)를 구비한다. 하나 이상의 프로세서(124)는 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 마이크로프로세서, 디지털 신호 프로세서 등을 포함할 수 있다. 메모리(126)는 다양한 기능을 구현하기 위해 하나 이상의 프로세서(124) 상에서 실행가능한 하나 이상의 소프트웨어 및/또는 펌웨어 모듈을 저장하도록 구성될 수 있다. 예를 들어, 메모리(126)는 비디오 콘텐츠 소스(102) 및/또는 다른 소스로부터 수신된 비디오 콘텐츠(130)를 디코딩하도록 구성된 디코더(128)(예컨대, 디코더 모듈)를 포함할 수 있다. 디코더(128)는 일반적으로 인코딩 동작의 사실상 역순인 동작을 수행함으로써 비디오 콘텐츠를 나타내는 비트스트림을 디코딩할 수 있다. 비디오 콘텐츠를 디코딩하는 동안, 디코더(128)는 하나 이상의 기준을 만족시키는, 예컨대 특정 유형의 예측(예를 들어, 인트라-예측)과 연관된 및/또는 특정 크기(예를 들어, 8*8 블록보다 작은 크기)를 갖는 비-변환 블록에 대해 스캐닝 순서를 변경할 수 있다. 도 1에 도시되어 있지는 않지만, 메모리(126)는 비디오 콘텐츠를 인코딩하도록 구성된 인코더를 또한 포함할 수 있다.
인코더(114) 및/또는 디코더(128)는 일반적으로 (코딩 블록(CB)으로도 지칭되는) 코딩 유닛(CU), 매크로블록 또는 그 밖의 다른 유형의 코딩 구조에 대해 코딩 기법을 수행할 수 있다. 용이한 설명을 위해, 코딩 기법은 코딩 유닛의 문맥에서 설명될 수 있다. 각 코딩 유닛은 이미지의 픽셀들의 블록에 대응할 수 있다. 코딩 유닛은 사전결정된 픽셀 치수(예를 들어, 4*4, 8*8, 16*16, 32*32, 64*64)를 가질 수 있고 및/또는 H.264/AVC(Advanced Video Coding) 또는 HEVC(High Efficiency Video Coding)과 같은 비디오 압축 표준에 의해 정의될 수 있다. 일부 경우, 코딩 유닛은 이 코딩 유닛이 코딩될 때 하나 이상의 예측 유닛 또는 하나 이상의 변환 유닛으로서 표현된다. 즉, 예측이 수행되는 경우, 코딩 유닛은 (예측 블록으로도 지칭되는) 하나 이상의 예측 유닛(PU)으로 표현될 수 있다. 한편, 변환이 수행되는 경우, 코딩 유닛은 (변환 블록으로도 지칭되는) 하나 이상의 변환 유닛(TU)으로 표현될 수 있다. 예측 유닛 및/또는 변환 유닛은 코딩 유닛의 서브-유닛일 수 있다. 그에 따라, 일부 경우, 코딩 유닛은 서브 유닛으로 분할될 수 있고 코딩 동작은 서브 유닛에 대해 개별적으로 수행될 수 있다(예를 들어, 스캐닝 프로세스가 코딩 유닛의 서브 유닛인 변환 유닛에 대해 수행될 수 있다).
도 1에서 인코더(114) 및 디코더(128)는 모듈로 구현되는 것으로 도시되어 있지만, 인코더(114) 및/또는 디코더(128), 또는 임의의 연관된 동작은 필드 프로그램가능 게이트 어레이(FPGA), 애플리케이션 특정 집적 회로(ASIC), 프로그램 특정 표준 제품(ASSP), 시스템 온 칩 시스템(SOC), 복합 프로그램가능 로직 장치(CPLD) 등과 같은 하나 이상의 하드웨어 로직 컴포넌트로 구현될 수 있다. 일부 경우, 인코더(114) 및/또는 디코더(128)는 오디오 인코더/디코더와 통합될 수 있고 적절한 MUX-DEMUX 유닛, 또는 다른 하드웨어 및/또는 소프트웨어를 포함하여, 공통 데이터 스트림 또는 개별 데이터 스트림에서 오디오 및 비디오 모두의 인코딩/디코딩을 처리할 수 있다. 이와 달리 또는 이에 더해, 인코더(114) 및/또는 디코더(128)는 하나 이상의 프로세서(110)(예를 들어, CPU, GPU, 마이크로프로세서 등)의 일부로서 포함될 수 있다. 또한, 일부 경우, 인코더(114) 및/또는 디코더(128)는 운영 체제 또는 다른 애플리케이션에 통합될 수 있다. 인코더(114) 및/또는 디코더(128)는 MPEG-1, MPEG-2, MPEG-4, H.261, H.263, H.264/AVC, HEVC 등과 같은 비디오 압축 표준에 따라 동작할 수 있다.
도 1에서는 메모리(112,126)가 단일 유닛으로 도시되어 있지만, 메모리(112 및/또는 126) (및 본 명세서에서 기술된 모든 다른 메모리)는 컴퓨터 판독가능 매체들 중 하나 또는 그 조합을 포함할 수 있다. 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및/또는 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 그 밖의 다른 데이터와 같은 정보의 저장을 위해 임의의 방법 또는 기술에서 구현되는 휘발성 및 비휘발성, 제거가능 및 제거불거능 매체를 포함한다. 컴퓨터 저장 매체는 상 변화 메모리(PRAM), 정적 랜덤 액세스 메모리(SRAM), 동적 랜덤 액세스 메모리(DRAM), 다른 유형의 랜덤 액세스 메모리(RAM), 판독전용 메모리(ROM), 전기적 소거가능 프로그램가능 판독 전용 메모리(EEPROM), 플래시 메모리 또는 다른 메모리 기술, 컴팩트 디스크 판독 전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD) 또는 다른 광학 저장소, 자기 카세트, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 장치, 또는 컴퓨팅 장치에 의해 액세스되는 정보를 저장하는데 사용될 수 있는 임의의 다른 비-전용 매체를 포함하나 이에 국한되지 않는다.
이와 달리, 통신 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 그 밖의 다른 데이터를 반송파와 같은 변조된 데이터 신호, 또는 다른 통신 메카니즘으로 구현할 수 있다. 본 명세서에서 정의된 바와 같이, 컴퓨터 저장 매체는 통신 매체를 포함하지 않는다.
앞서 언급한 바와 같이, 비디오 콘텐츠 소스(102) 및 장치(104)는 네트워크(들)(106)를 통해 통신할 수 있다. 네트워크(들)(106)는 셀룰러 네트워크, 무선 네트워크, 근거리 네트워크(LAN), 광역 네트워크(WANS) 및 인터넷과 같은 다수의 상이한 유형의 네트워크 중 임의의 하나 또는 그 조합을 포함할 수 있다.
예시적인 코딩 컴포넌트
도 2는 도 1의 인코더(114)의 예시적인 세부사항을 나타낸다. 앞서 설명한 바와 같이, 코딩 블록(예를 들어, 유닛)이 인코더(114)에 의해 인코딩된다. 코딩 블록은 예측시 하나 이상의 예측 블록으로서 표현되고 변환시 하나 이상의 변환 블록으로서 표현될 수 있다. 그에 따라, 예측 동작은 개별 예측 블록에 대해 수행될 수 있고, 변환 동작은 개별 변환 블록에 대해 수행될 수 있다. 설명을 쉽게 하기 위해, 도 2를 참조하여 또한 본 명세서에서의 다른 곳에서 설명되는 코딩 기법은 일반적으로 "블록"을 참조할 것이다. 이 블록은 예측 단계에서는 예측 블록을 포함하고 변환 단계에서는 변환 블록을 포함할 것이다.
인코더(114)는 블록(예를 들어, 예측 블록)에 대해 예측을 수행하기 위해 예측 컴포넌트(202)(예를 들어, 모듈, 하드웨어 등)를 포함할 수 있다. 예측 컴포넌트(202)는 블록에 대해 상이한 모드의 예측, 예를 들어 인트라-프레임(예컨대, 공간적) 또는 인터-프레임(예컨대, 시간적) 예측을 수행할 수 있다. 인트라 프레임 예측에서, 예측 컴포넌트(202)는 블록과 동일한 프레임 내에서 그 블록에 가장 일치하는 기준 블록을 결정할 수 있다. 즉, 기준 블록은 프레임의 픽셀들의 블록들 중에서 (예컨대, 픽셀 값에 따라) 블록에 가장 유사할 수 있다. 인터-프레임 예측에서, 예측 컴포넌트(202)는 블록의 프레임에 시간적으로 이웃하는 프레임에서 블록에 가장 일치하는 기준 블록을 결정할 수 있다. 여기서, 기준 블록은 이웃하는 프레임 내의 픽셀들의 블록들 중에서 (예컨대, 픽셀 값에 따라) 블록에 가장 유사할 수 있다. 어느 경우든, 기준 블록이 블록과 정확히 일치하지 않는다면, 예측 컴포넌트(202)는 기준 블록의 픽셀 값과 블록의 픽셀 값 간의 차이를 결정할 수 있다. 이러한 차이는 ("잔차(residue)" 또는 "잔차 값(residual values)"으로도 알려져 있는) "잔차 정보"로 지칭된다. 예측 컴포넌트(202)는 잔차 정보의 2차원 어레이(예를 들어, 예측 블록의 각 픽셀 값에 대한 잔차 정보를 포함하는 블록)를 출력할 수 있다.
인코더(114)는 블록(예를 들어, 예측 블록의 잔차 정보)에 대해 변환을 적용할 수 있는 변환 컴포넌트(204)도 포함할 수 있다. 변환은 이산 코사인 변환(DCT), 이산 웨이블릿 변환, 정수 변환, 또는 정보를 변환하는 임의의 다른 일반적으로 알려져 있는 기법을 포함할 수 있다. 변환은 변환 컴포넌트(204)에 의해 선택적으로 적용될 수 있다. 즉, 일부 경우, 변환이 적용되지만(예를 들어, 변환 계수가 출력되지만), 다른 경우, 변환은 적용되지 않는다(예를 들어, 변환없이 잔차 정보가 출력된다). 설명을 위해, 변환 컴포넌트(204)는 블록의 최고 픽셀 값과 최저 픽셀 값 간의 차이가 사전결정된 값보다 높은 경우 또는 비율-왜곡 제약(rate-distortion constraint)이 만족되는 경우(예를 들어, 블록을 변환하지 않는 비율-왜곡 비용이 블록을 변환할 때보다 작은 경우) 등에는, 변환을 수행하지 않을 수 있다. 일부 실시예에서, 변환은 "Non-Transform Coding"이라는 제목으로 2012년 8월 23일에 출원된 미국 특허 출원 제13/593,214호(본 명세서에서 참조로서 인용됨)에 기술되어 있는 기법에 따라 선택적으로 적용된다.
변환이 수행되는 경우, 변환 컴포넌트(204)는 블록의 잔차 정보에 대응하는 변환 계수들의 집합을 출력할 수 있다. 이와 달리, 변환이 수행되지 않는 경우, 변환 컴포넌트(204)는 변환 컴포넌트(204)에 입력된 잔차 정보를 출력할 수 있다. 본 명세서에서 사용되는 바와 같이, "비변환 블록"은 블록이 변환 컴포넌트(204)를 통과하였을지라도 변환되지 않은 블록을 지칭한다. 어떤 경우든, 변환 컴포넌트(204)는 데이터의 2차원 어레이(예를 들어, 변환 계수 또는 잔차 정보)를 출력할 수 있다.
인코더(114)는 또한 블록(예를 들어, 비변환 블록의 잔차 정보 또는 변환 블록의 변환 계수)을 양자화하기 위한 양자화 컴포넌트(206)를 포함할 수 있다. 블록이 변환된 경우, 블록의 계수는 양자화될 수 있다. 블록이 변환되지 않은 경우, 블록의 잔차 정보가 양자화될 수 있다. 양자화 컴포넌트(206)는 데이터의 2차원 어레이(예를 들어, 양자화된 잔차 정보 또는 양자화된 계수)를 출력할 수 있다.
인코더(114)는 블록(예를 들어, 양자화된 잔차 정보 또는 양자화된 계수)을 엔트로피 코딩하기 위한 엔트로피 코딩 컴포넌트(208)를 또한 포함할 수 있다. 블록을 엔트로피 코딩하기 위해, 데이터의 1차원 어레이를 생성하기 위해 블록에 대해 스캐닝 프로세스가 수행될 수 있다. 예를 들어, 스캐닝 프로세스는 블록(예를 들어, 양자화된 잔차 정보 또는 양자화된 계수)을 나타내는 데이터의 2차원 어레이를 스캐닝하여 데이터의 1차원 어레이를 생성할 수 있다. 즉, 스캐닝 프로세스는 2차원 어레이의 데이터를 일렬화(serialize)할 수 있다.
도 2는 엔트로피 코딩 컴포넌트(208)에 의해 수행될 수 있는 예시적인 스캐닝 프로세스를 나타낸다. 여기서, 2차원 어레이(210)의 서브-유닛("a1"-"a6")은 변환이 수행되었는지 여부에 따라, 양자화된 잔차 정보 또는 양자화된 변환 계수를 나타낼 수 있다. 도시되어 있는 바와 같이, 스캐닝 프로세스는 서브 유닛 "a16"에서 시작할 수 있고 실선을 따라 서브 유닛 "a4"로 진행할 수 있고, 그런 다음 서브 유닛 "a15"에서 시작하는 다음 열을 스캐닝할 수 있고, 나머지 열을 스캐닝하도록 유사한 방식으로 계속 진행할 수 있다. 스캐닝을 수행함으로써, 엔트로피 코딩 컴포넌트(208)는 데이터의 1차원 어레이(212)를 생성할 수 있다.
엔트로피 코딩 컴포넌트(208)는 데이터의 특정 유형들을 함께 그룹화하기 위한 스캐닝 순서에 따라 스캐닝 프로세스를 수행할 수 있다. 일부 경우, 비제로 데이터(예를 들어, 비제로 계수 또는 잔차 정보)는 특정 영역에서 2차원 어레이로 정렬될 가능성이 높다. 예를 들어, 도 2의 2차원 어레이(210)로 돌아가서, 비제로 계수(때때로 에너지로 지칭됨)는 어레이(210)의 좌측 상단 코너로 (예를 들어, 서브 유닛 "a1"을 향해) 그룹화될 수 있다. 엔트로피 코딩을 효율적으로 수행하기 위해, 2차원 어레이(210)의 서브 유닛은 (도 4를 참조하여 설명되는) 대각선 스캔에 따라 스캐닝될 수 있어 2차원 어레이(210)는 1차원 어레이(212)로 정렬되되 비제로 계수들은 일 종단에서 그룹화된다. 그러나, 모든 유형의 블록에 적용되는 획일적인 스캐닝 순서는 이러한 그룹화를 야기하지 않을 수 있다.
따라서, 엔트로피 코딩 컴포넌트(208)는 상이한 유형의 블록에 대해 스캐닝 순서를 선택적으로 변경할 수 있다. 즉, 엔트로피 코딩 컴포넌트(208)는 하나 이상의 사전결정된 또는 기본(default) 스캐닝 순서로부터 변경할지 여부를 결정할 수 있다. 예를 들어, 변환 블록에 대해, 하나 이상의 사전결정된 또는 기본 스캐닝 순서가 사용되어 (예를 들어, 블록의 예측 모드, 블록의 크기 등에 기초하여) 블록을 스캐닝할 수 있다. 한편, 비변환 블록에 대해, 엔트로피 코딩 컴포넌트(208)는 비변환 블록의 특성에 기초하여 변환 블록에 대해 사용된 하나 이상의 사전결정된 또는 기본 스캐닝 순서로부터 선택적으로 변경할 수 있다.
설명을 위해, 특정 예측 모드 및 크기의 변환 블록을 스캐닝하는 경우, 제1 스캐닝 순서가 사용될 수 있다. 한편, 변환 블록과 동일한 예측 모드 및/또는 크기의 비변환 블록을 스캐닝하는 경우, 엔트로피 코딩 컴포넌트(208)는 제1 스캐닝 순서를 사용할지 또는 제2 스캐닝 순서를 사용할지를 결정할 수 있다. 예를 들어, 비변환 블록이 특정 유형의 예측과 연관된 경우(예를 들어, 비변환 블록이 인트라-예측에 적용된 경우), 제2 스캐닝 순서가 사용될 수 있다. 이와 달리, 비변환 블록이 특정 유형의 예측과 연관되지 않은 경우(예를 들어, 비변환 블록이 인터-예측에 적용된 경우), 제1 스캐닝 순서가 사용될 수 있다. 또 다른 예로, 비변환 블록이 사전결정된 크기보다 작은 크기를 갖는 경우(예를 들어, 비변환 블록이 4*4 또는 8*8인 경우), 제2 스캐닝 순서가 사용될 수 있다. 한편, 비변환 블록이 사전결정된 크기보다 동일하거나 큰 크기를 갖는 경우(예를 들어, 비변환 블록이 8*8이거나 그보다 큰 경우), 제1 스캐닝 순서가 사용될 수 있다.
또 다른 예에서, 엔트로피 코딩 컴포넌트(208)는 비변환 블록의 예측 모드의 가중치 및 비변환 블록의 크기의 가중치에 기초하여 변환 블록과 연관된 사전결정된 또는 기본 스캐닝 순서로부터 변경할지 여부를 결정할 수 있다. 예를 들어, 2차원 어레이의 크기가 사전결정된 크기보다 특정 양만큼 큰 경우, 그 크기는 현재 스캐닝 순서를 유지하는 쪽으로 보다 많은 가중치가 부여될 수 있다. 이와 달리, 또는 이에 더해, 크기 또는 예측 모드는 다른 것에 비해 많은 가중치가 부여될 수 있다(예를 들어, 예측 모드는 결정함에 있어 블록의 크기보다 큰 영향력을 가질 수 있다).
도 2의 예에서, 엔트로피 코딩 컴포넌트(208)는 사전결정된 또는 기본 스캐닝 순서들(214) 중 하나를 스캐닝 순서들(216) 중 하나로 전환할지 여부를 결정할 수 있다. 여기서, 블록이 전술한 바와 같이 특정 특성을 포함하는 경우(예를 들어, 비변환 블록이 특정 크기를 갖고 및/또는 특정 예측 모드와 연관된 경우)를 제외하면, 사전결정된 스캐닝 순서(214)가 일반적으로 수행될 수 있다. 한편, 스캐닝 순서(216)는 사전결정된 스캐닝 순서(214)의 역 스캐닝 순서에 대응할 수 있다. 그에 따라, 몇몇 예에서, 엔트로피 코딩 컴포넌트(208)는 사전결정된 스캐닝 순서로부터 사전결정된 스캐닝 순서의 역으로 전환할지 여부를 결정할 수 있다. 다른 예에서 스캐닝 순서(216)는 역 스캐닝 순서 외에 다른 유형의 스캐닝 순서를 포함할 수 있다.
몇몇 구현에서, 하나 이상의 사전결정된 또는 기본 스캐닝 순서로부터 스캐닝 순서를 선택적으로 변경함으로써, 본 기법은 블록과 연관된 특정 유형의 데이터가 효율적으로 정렬될 수 있게 해주고 및/또는 스캐닝 순서의 변경으로 인해 불필요하게 야기되는 복잡성을 피할 수 있게 해준다. 예를 들어, 인트라-예측과 연관된 비변환 블록은 일반적으로 변환 블록에 비해 반대편 영역(예를 들어, 우측 상단에 대조되는 우측 하단)에 비제로 값(예를 들어, 잔차 정보)을 포함할 수 있기 때문에, 본 기법은 인트라-예측과 연관된 비변환 블록에 대한 스캐닝 순서를 변경함으로써 효율적인 엔트로피 코딩을 위해 1차원 어레이의 일 종단에서 비제로 값을 효율적으로 정렬할 수 있다. 또한, 스캐닝 순서의 변경은 (예를 들어, 스캐닝 순서를 유지하는 것에 비해) 블록을 스캐닝하는데 있어서의 복잡성을 증가시킬 수 있기 때문에, 본 기법은 변경이 어떠한 추가의 이점을 제공하지 않는다면, 사전결정된 크기보다 작은 비변환 블록에 대해 스캐닝 순서를 변경함으로써 스캐닝에 대한 추가의 복잡성을 피할 수 있다.
스캐닝 프로세스가 엔트로피 코딩 컴포넌트(208)에 의해 수행되는 것으로 설명되어 있지만, 양자화 컴포넌트(206) 또는 또 다른 컴포넌트와 같은 다른 컴포넌트가 스캐닝 프로세스를 수행할 수 있다. 적어도 하나의 예로서, 양자화 컴포넌트(206)가 스캐닝 프로세스를 수행하고 엔트로피 코딩 컴포넌트(208)에 입력되는 데이터의 1차원 어레이를 출력한다.
엔트로피 코딩 컴포넌트(208)는 스캐닝 프로세스로부터 얻어지는 데이터의 1차원 어레이에 대해 엔트로피 코딩을 수행할 수 있다. 엔트로피 코딩은 컨텍스트 적응 이진 산술 코딩(CABAC), 컨텍스트 적응 가변 길이 코딩(CAVLC), 확률 엔트로피 코딩(PIPE) 등을 수행하는 것을 포함할 수 있다. 엔트로피 코딩은 비디오 콘텐츠를 적어도 일부 나타내는 비트스트림을 생성할 수 있다. 도 2에 도시되어 있는 바와 같이, 인코더(114)에 대한 하나 이상의 코딩 블록(224)의 입력은 비트스트림(226)의 출력을 야기할 수 있다.
인코더(114)는 또한 현재 인코딩되고 있는 블록의 역 양자화를 수행하기 위한 역 양자화 컴포넌트(218)를 포함할 수 있다. 이후, 역 변환 컴포넌트(220)는 역 변환을 블록에 선택적으로 적용할 수 있다. 변환 컴포넌트(204)에서 블록이 변환된 경우, 블록에 대해 역 변환이 수행될 수 있다. 그러나, 변환 컴포넌트(204)에서 블록이 변환되지 않은 경우, 역 변환은 수행되지 않을 수 있다. 어떤 경우든, 블록은 예측 컴포넌트(202)로부터의 정보에 기초하여 재구성 컴포넌트(222)에 의해 재구성될 수 있다. 이 정보는 블록에 대한 잔차 정보를 형성하는데 사용된 기준 블록을 나타낼 수 있다. 재구성된 블록은 블록과 동일한 또는 다른 프레임 내의 또 다른 블록과 같은 또 다른 블록을 인코딩하는데 사용될 수 있다.
도 2에는 도시되어 있지는 않지만, 인코더(114)는 블록의 경계들 간의 에지를 평활화하기 위한 디-블로킹 필터(de-blocking filter)와 같은 다른 유형의 컴포넌트 또는 임의의 다른 컴포넌트를 포함할 수 있다.
도 3은 도 1의 디코더(128)의 예시적인 세부사항을 나타낸다. 디코더(128)는 일반적으로 인코더(114)의 역 동작을 수행할 수 있다. 디코더(128)는 비트스트림(304)에 대한 역 엔트로피 코딩을 수행하기 위한 엔트로피 코딩 컴포넌트(302)를 포함할 수 있다. 엔트로피 코딩은 특정 스캐닝 순서(예를 들어, 엔트로피 코딩 컴포넌트(208)에 의해 사용된 스캐닝 순서)에 따라 비트스트림(304)의 데이터를 스캐닝하는 것을 포함할 수 있다. 스캐닝 순서는 비트스트림(304) 내에서 또는 그 밖의 다른 곳에서 지정될 수 있고, 블록의 특성(예를 들어, 블록의 크기, 예측 모드, 변환 코드 등)에 기초하여 결정될 수 있고, 사전에 정의될 수 있다. 예를 들어, 스캐닝 프로세스는 사전결정된 또는 기본 스캐닝 순서들(306) 및 역 스캐닝 순서들(308) 중에서 스캐닝 순서를 선택하여 비트스트림(304)에 대해 역 엔트로피 코딩을 수행할 수 있다. 일 예로, 도 3에 도시되어 있는 바와 같이, 스캐닝 프로세스는 특정 스캐닝 순서에 따라 1차원 어레이(310)(예를 들어, 비트스트림(304))를 스캐닝하여 2차원 어레이(312)에 입력할 수 있다. 스캐닝 프로세스가 1차원 어레이(310)의 왼쪽 끝(예를 들어, 서브 유닛 "a16")에서 시작하는 경우, 서브 유닛 "a16", "a12", "a8" 및 "a4"가 스캐닝되어 2차원 어레이(312)의 열(column)로서 2차원 어레이(312)에 입력될 수 있다. 이후, 1차원 어레이(310)의 서브 유닛의 다음 집합(예를 들어, "a15", "a11", "a7" 및 "a3")이 스캐닝되어 2차원 어레이(312)의 또 다른 열로서 입력될 수 있다. 이와 달리, 일부 경우, 스캐닝 프로세스가 1차원 어레이(310)의 오른쪽 끝에서 시작하는 경우, (예를 들어, 데이터를 인코딩하는데 사용된 스캐닝의 역순인) 역 스캐닝이 수행될 수 있다. 도 2의 엔트로피 코딩 컴포넌트(208)를 참조하여 앞서 설명한 바와 유사하게, 엔트로피 코딩 컴포넌트(302)는 비트스트림(304)을 스캐닝하는데 사용되는 스캐닝 순서를 선택적으로 변경할 수 있다. 예를 들어, (예컨대, 또 다른 블록에 대해 사용된 사전결정된 또는 기본 스캐닝 순서와 다른) 상이한 스캐닝 순서가 사용되어 블록을 인코딩한 경우, 엔트로피 코딩 컴포넌트(302)는 그 블록에 대한 상이한 스캐닝 순서로 전환할 수 있다. 앞서 설명한 바와 같이, 예를 들어, 비변환 블록이 특정 유형의 예측(예컨대, 인트라-예측)과 연관되고 및/또는 사전결정된 크기보다 작은 크기를 갖는 경우, 다른 스캐닝 순서가 사용될 수 있다. 엔트로피 코딩 컴포넌트(302)는 도 2의 엔트로피 코딩 컴포넌트(208)를 참조하여 앞서 설명한 바와 유사한 특징을 포함할 수 있다.
디코더(128)는 또한 역 양자화 컴포넌트(314), 역 변환 컴포넌트(316) 및 예측 컴포넌트(318)를 포함할 수 있다. 컴포넌트(314-318)는 일반적으로 도 2의 컴포넌트(202-206)의 것과 유사한 특징을 포함하여, 컴포넌트(202-206)의 역 변환을 수행할 수 있다. 예를 들어, 역 양자화 컴포넌트(314)는 블록(예를 들어, 양자화된 계수 또는 양자화된 잔차 정보)에 대해 역 양자화를 수행할 수 있고, 역 변환 컴포넌트(316)는 블록(예를 들어, 변환 계수)에 대해 역 변환을 수행할 수 있고, 예측 컴포넌트(318)는 블록(예를 들어, 잔차 정보)에 대해 예측을 수행할 수 있다. 블록이 변환되지 않은 경우, 역 변환 컴포넌트(316)는 역 변환을 적용하지 않을 수 있다. 그렇게 함으로써, 디코더(128)는 디코딩된 비디오 콘텐츠를 나타내는 하나 이상의 코딩 블록(320)를 출력할 수 있다.
예시적인 디코더(128)에 대한 전술한 설명에서 스캐닝 프로세스는 엔트로피 코딩 컴포넌트(302)에 의해 수행되지만, 스캐닝 프로세스는 역 양자화 컴포넌트(314)와 같은 또 다른 컴포넌트 또는 임의의 다른 컴포넌트에 의해 수행될 수 있다. 일 예로서, 역 양자화 컴포넌트(314)는 데이터가 1차원 어레이에서 2차원 어레이로 변경되기 전 또는 후에 데이터를 역 양자화할 수 있다.
예시적인 스캐닝 순서
도 4(a) 및 도 4(b)는 블록을 스캐닝하는데 사용될 수 있는 예시적인 스캐닝 순서(400-410)를 나타낸다. 스캐닝 순서(406-410)는 각각 스캐닝 순서(400-404)의 역 스캐닝 순서를 포함할 수 있다. 일부 예에서, 스캐닝 순서(400-404)는 일반적으로 적용되는 기본 스캐닝 순서를 포함할 수 있는 반면, 스캐닝 순서(406-410)는 특정 크기 및/또는 예측 모드와 같은 특정 특성을 포함하는 비변환 블록에 적용될 수 있는 또 다른 스캐닝 순서를 포함할 수 있다. 일 구현에서 다수의 기본 스캐닝 순서가 사용되는 경우, 블록의 크기, 블록에 대해 사용된 예측 모드, 블록의 유형(예를 들어, 휘도 또는 색차) 등에 기초하여 블록에 대한 하나의 기본 스캐닝 순서가 선택될 수 있다. 도 4(a) 및 도 4(b)에서, 스캐닝 순서(400-410)는 일반적으로 실선을 따라 스캐닝할 수 있고 다음 스캔에 대해서는 점선을 따라 스캐닝 위치를 바꿀 수 있다.
도 4(a) 및 도 4(b)에서는 스캐닝 순서(400-410)가 도시되어 있지만, 다른 유형의 스캐닝 순서가 스캐닝 프로세스에 사용될 수 있다. 또한, 스캐닝 순서(400-404)가 기본 스캐닝 순서로 설명되지만, 스캐닝 순서(406-410), 스캐닝 순서(400-410) 중 임의의 하나, 또는 스캐닝 순서(400-410)의 임의의 조합과 같은 다른 스캐닝 순서가 기본 스캐닝 순서일 수 있다.
스캐닝 순서(400)는 블록의 서브 유닛(412)에서 시작하여 서브 유닛(414)에 도달하도록 실선을 따라 블록을 스캐닝하는 대각선 스캔을 포함할 수 있다. 스캐닝 순서(402)는 블록의 서브 유닛(416)에서 시작하여 서브 유닛(418)에 도달하도록 실선을 따라 블록을 스캐닝하는 수직 스캔을 포함할 수 있다. 스캐닝 순서(404)는 블록의 서브 유닛(420)에서 시작하여 서브 유닛(422)에 도달하도록 실선을 따라 블록을 스캐닝하는 수평 스캔을 포함할 수 있다.
한편, 스캐닝 순서(406-410)는 각각 스캐닝 순서(400-404)의 역 스캐닝 순서를 포함한다. 특히, 스캐닝 순서(406)는 서브 유닛(424)에서 시작하여 서브 유닛(426)에 종료되는 역 대각선 스캔을 포함할 수 있고, 스캐닝 순서(408)는 서브 유닛(428)에서 시작하여 서브 유닛(430)에서 종료하는 역 수직 스캔을 포함할 수 있으며, 스캐닝 순서(410)는 서브 유닛(432)에서 시작하여 서브 유닛(434)에서 종료하는 역 수평 스캔을 포함할 수 있다.
일부 실시예에서, 기본 스캐닝 순서와 다른 스캐닝 순서를 사용하는 것으로 결정되면, 기본 순서의 역 스캐닝 순서가 사용될 수 있다. 설명을 위해, 스캐닝 순서(402)(예를 들어, 수직 스캔)에 따라 코딩하는 동안, 블록에 대해 또 다른 스캐닝 순서를 사용할 것으로 결정되면, 스캐닝 순서(408)(예를 들어, 역 수직 스캔)가 사용될 수 있다. 또 다른 스캐닝 순서는 인트라-예측과 연관된 및/또는 사전결정된 크기보다 작은 크기를 갖는 비변환 블록과 같은 특정 특성을 포함하는 비변환 블록에 대해 사용될 수 있다.
예시적인 프로세스
도 5는 본 명세서에서 기술된 기법을 이용하는 예시적인 프로세스(500)를 나타낸다. 용이한 설명을 위해, 프로세스(500)는 코딩 컴포넌트에 의해 수행되는 것으로 설명된다. 예를 들어, 프로세스(500)의 개개의 동작들 중 하나 이상은 도 1의 아키텍처(100)의 인코더(114) 및/또는 디코더(128)에 의해 수행될 수 있다. 그러나, 프로세스(500)는 다른 아키텍처에서도 수행될 수 있다. 또한, 아키텍처(100)는 다른 프로세스를 수행하는데에도 사용될 수 있다.
프로세스(500)(및 본 명세서에서 기술된 각각의 프로세스)는 논리적 흐름도로 도시되어 있으며, 각각의 동작은 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있는 동작들의 시퀀스를 나타낸다. 소프트웨어의 문맥에서, 동작들은 하나 이상의 프로세서에 의해 실행되는 경우 기술된 동작을 수행하는 하나 이상의 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 실행가능 명령어를 나타낸다. 일반적으로, 컴퓨터 실행가능 명령어는 특정 기능을 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 동작들이 설명디는 순서는 제한적으로 해석되어서는 안되고, 설명된 동작들 중 임의의 수의 동작이 임의의 순서로 및/또는 동시에 결합되어 프로세스를 구현할 수 있다. 또한, 임의의 동작이 생략될 수도 있다.
502에서, 코딩 컴포넌트(예를 들어, 인코더 또는 디코더)는 변환 코딩 모드와 연관된 제1 블록을 스캐닝하는데 사용되는 스캐닝 순서를 식별할 수 있다. 제1 블록은 제1 블록이 변환되었음을 나타내는 변환 블록으로 지칭될 수 있다. 제1 블록의 스캐닝 순서는 제1 블록의 예측 모드, 제1 블록의 크기 등과 연관된 블록에 대한 기본 스캐닝 순서를 포함할 수 있다.
504에서, 코딩 컴포넌트는 비변환 코딩 모드와 연관된 제2 블록을 식별할 수 있다. 제2 블록은 제2 블록이 변환되지 않았음(예를 들어, 비변환 코딩과 연관됨)을 나타내는 비변환 블록으로 지칭될 수 있다. 제2 블록은 제1 블록의 특징과 동일한 적어도 하나의 특징, 예를 들어, 동일한 크기, 예측 모드, 블록 유형(예를 들어, 블록이 휘도 블록(밝기를 검은색 및 흰색으로 나타내는 컴포넌트)인지 색차 블록(색깔을 나타나는 컴포넌트)인지) 등을 가질 수 있다. 또한, 제2 블록 및 제1 블록은 동일한 이미지(예를 들어, 프레임)의 일부일 수 있다.
506에서, 코딩 컴포넌트는 제2 블록에 대한 하나 이상의 기준이 만족되는지 여부를 결정할 수 있다. 예를 들어, 코딩 컴포넌트는 제2 블록의 예측 모드가 인트라-예측과 같은 특정 예측 모드인지를 결정할 수 있다. 여기서, 코딩 컴포넌트는 제2 블록에 대해 적용된 예측 모드(예를 들어, 인트라-예측 또는 인터-예측)을 식별할 수 있다. 이와 달리, 또는 이에 더해, 코딩 컴포넌트는 제2 블록의 크기가 사전결정된 크기보다 작은지 여부를 결정할 수 있다.
506에서 하나 이상의 기준이 만족되는 경우(예를 들어, "예" 경로), 코딩 컴포넌트는 제1 블록에 대해 사용된 것과는 다른 스캐닝 순서에 따라 제2 블록에 대해 스캐닝 프로세스를 508에서 수행할 수 있다. 예를 들어, 스캐닝 프로세스는 제1 블록에 대해 사용된 스캐닝 순서의 역순을 이용할 수 있다. 일 예로, 코딩 컴포넌트는 제2 블록이 스캐닝된 기본 스캐닝 순서와 다른 스캐닝 순서를 이용할 수 있다. 이와 달리, 506에서 하나 이상의 기준이 만족되지 않은 경우(예를 들어, "아니오" 경로), 코딩 컴포넌트는 제1 블록에 대해 사용된 스캐닝 순서에 따라 제2 블록에 대해 스캐닝 프로세스를 510에서 수행할 수 있다. 이와 같이, 506에서의 결정은 제2 블록을 제1 블록의 스캐닝 순서에 따라 스캐닝할 지 다른 스캐닝 순서에 따라 제2 블록을 스캐닝할지 여부를 결정할 수 있다.
508 또는 510에서 스캐닝 프로세스를 수행하는 어느 경우든, 프로세스는 제2 블록의 잔차 정보의 2차원 어레이를 스캐닝하여 잔차 정보의 1차원 어레이를 생성하는 것을 포함할 수 있다. 즉, 스캐닝 프로세스는 제2 블록의 데이터를 일렬화할 수 있다.
512에서, 코딩 컴포넌트는 제2 블록에 대해 엔트로피 코딩을 수행할 수 있다. 이것은 제2 블록을 나타내는 잔차 정보(예를 들어, 양자화된 잔차 정보)의 1차원 어레이를 엔트로피 코딩하는 것을 포함할 수 있다. 508에서 스캐닝 프로세스가 수행된 경우, 1차원 어레이는 제1 블록(예를 들어, 변환 블록)을 엔트로피 코딩에 사용된 것과 다른 순서에 따른 순서인 제2 블록의 서브 유닛(예를 들어, 잔차 정보의 일부)을 포함할 수 있다.
결론
실시예들이 구조적인 특징 및/또는 방법론적 동작에 특정한 언어로 설명되어 있지만, 본 발명은 기술된 특정 특징 또는 동작에 반드시 한정될 필요는 없다는 것을 이해해야 한다. 그 보다, 특정 특징 및 동작은 실시예를 구현하는 예시적인 형식으로 기술된다.
전술한 방법 및 프로세스 모두는 하나 이상의 범용 컴퓨터 또는 프로세서에 의해 실행되는 소프트웨어 코드 모듈로 구현되고 그에 의해 완전히 자동화될 수 있다. 코드 모듈은 임의의 유형의 컴퓨터 판독가능 저장 매체 또는 다른 컴퓨터 저장 장치에 저장될 수 있다. 방법들 주 일부 또는 전부는 이와 달리 특별 컴퓨터 하드웨어에서 구현될 수 있다.
"일수 있다", "일수도 있다", "일지도 모른다"와 같으 조건부적 언어는 특별히 언급하지 않는다면, 본 발명의 문맥에서는, 소정의 특징, 요소 및/또는 단계를 소정의 실시예는 포함하나 다른 실시예는 포함하지 않는 것으로 이해된다. 따라서, 이러한 조건부적 언어는 일반적으로 소정의 특징, 요소 및/또는 단계들이 어떠한 경우든 하나 이상의 실시예에 대해 요구된다거나, 하나 이상의 실시예가 소정의 특징, 요소 및/또는 단계들이 임의의 특정 실시예에서 포함되거나 또는 수행되어야 할지 여부를, 사용자 입력 또는 프롬프팅 하에 또는 없이, 결정하는 로직을 반드시 포함해야 한다는 것을 암시하려는 것은 아니다.
"X, Y 및 Z 중 적어도 하나"라는 어구와 같은 접속 언어는 특별히 언급하지 않는다면, 항목, 용어 등이 X, Y 또는 Z 또는 이들의 조합일 수 있는 것으로 이해되어야 한다.
본 명세서에서 기술되고 첨부한 도면에 도시한 흐름도 내의 임의의 루틴 설명, 요소 또는 블록은 잠재적으로 그 루틴 내의 특정 논리 기능 또는 요소를 구현하는 하나 이상의 실행가능 명령어를 포함하는 코드의 모듈, 세그먼트 또는 일부를 나타내는 것으로 이해되어야 한다. 본 명세서에서의 실시예의 범주 내에서, 당업자에 의해 이해될 수 있는 바와 같이, 포함된 기능에 따라, 요소 또는 기능이 삭제되거나 거의 동시에 또는 반대 순서를 비롯하여, 도시 및 설명된 것과는 다른 순서로 실행될 수 있는 또 다른 실시예가 포함된다.
전술한 실시예에 대해 다수의 변형 및 변경이 행해질 수 있고, 이들의 요소는 다른 수용가능한 요소인 것으로 이해됨을 강조한다. 이러한 변경 및 변형 모두는 본 발명의 범주 내에 포함되고 후속하는 청구항에 의해 보호되어야 한다.
Claims (10)
- 컴퓨팅 장치에 의해, 제1 블록을 스캐닝하는 스캐닝 순서를 식별하는 단계 ― 상기 제1 블록은 변환 코딩 모드(transform coding mode)와 연관되며, 연관된 크기 및 연관된 예측 모드를 가짐 ― 와,
상기 컴퓨팅 장치에 의해, 비변환 코딩 모드(non-transform coding mode)와 연관된 제2 블록을 식별하는 단계 ― 상기 제2 블록은 상기 제1 블록과 동일한 이미지의 일부이며, 상기 제1 블록과 동일한 연관된 크기 및 동일한 연관된 예측 모드를 가짐 ― 와,
상기 제1 블록을 스캐닝하는 상기 스캐닝 순서의 역 스캐닝 순서에 따라 상기 제2 블록을 스캐닝할지 여부를 결정하는 단계 ― 상기 결정하는 단계는 상기 제2 블록과 연관된 예측 모드 및 상기 제2 블록과 연관된 크기에 기초하고, 상기 예측 모드가 인트라-예측(intra-prediction) 모드이고 상기 크기가 사전결정된 크기보다 작은 경우, 상기 제2 블록은 상기 역 스캐닝 순서에 따라 스캐닝됨 ― 와,
상기 예측 모드가 인트라-예측 모드이고 상기 크기가 상기 사전결정된 크기보다 작다고 판정하는 것에 응답하여, 상기 컴퓨팅 장치에 의해, 상기 역 스캐닝 순서에 따라 상기 제2 블록을 스캐닝하는 단계
를 포함하는 방법.
- 제1항에 있어서,
상기 제1 블록을 스캐닝하는 상기 스캐닝 순서는, 상기 제1 블록의 예측 모드 또는 상기 제1 블록의 크기 중 적어도 하나와 연관된 블록을 위한 기본(default) 스캐닝 순서를 포함하는
방법.
- 실행시, 하나 이상의 프로세서로 하여금 동작을 수행하게 하는 컴퓨터 판독가능 명령어가 저장된 하나 이상의 컴퓨터 저장 매체로서,
상기 동작은
변환된 제1 블록을 코딩하는데 사용되는 제1 스캐닝 순서를 식별하는 것 ― 상기 제1 블록은 연관된 크기 및 연관된 예측 모드를 가짐 ― 과,
비변환 블록인 제2 블록을 상기 제1 스캐닝 순서에 따라 코딩할지 또는 상기 제1 스캐닝 순서의 역인 제2 스캐닝 순서에 따라 코딩할지를 결정하는 것 ― 상기 제2 블록은 상기 제1 블록과 동일한 이미지의 일부이며, 상기 제1 블록과 동일한 크기 및 동일한 예측 모드를 가지고, 상기 결정하는 것은 상기 비변환 블록의 예측 모드 및 상기 비변환 블록의 크기에 기초하고, 상기 예측 모드가 인트라-예측(intra-prediction) 모드이고 상기 크기가 사전결정된 크기보다 작은 경우, 상기 비변환 블록은 상기 제2 스캐닝 순서에 따라 스캐닝됨 ― 과,
상기 예측 모드가 인트라-예측 모드이고 상기 비변환 블록의 크기가 상기 사전결정된 크기보다 작은 경우, 상기 비변환 블록을 상기 제2 스캐닝 순서에 따라 코딩하고, 그렇지 않은 경우, 상기 비변환 블록을 상기 제1 스캐닝 순서에 따라 코딩하는 것
을 포함하는
컴퓨터 저장 매체.
- 제3항에 있어서,
상기 코딩하는 것은
잔차 정보(residual information)의 1차원 어레이를 생성하기 위해 상기 제1 스캐닝 순서 또는 상기 제2 스캐닝 순서에 따라 상기 비변환 블록의 잔차 정보의 2차원 어레이를 스캐닝하는 것과,
상기 잔차 정보의 1차원 어레이를 엔트로피 코딩하는 것
을 포함하는
컴퓨터 저장 매체.
- 제4항에 있어서,
상기 코딩하는 것은, 상기 2차원 어레이를 스캐닝하기 전에, 상기 잔차 정보에 대해 양자화를 수행하는 것을 포함하는
컴퓨터 저장 매체.
- 하나 이상의 프로세서와,
상기 하나 이상의 프로세서에 의해 적어도 일부 구현되는 코딩 컴포넌트
를 포함하되,
상기 코딩 컴포넌트는
제1 스캐닝 순서에 따라 변환 코딩과 연관된 블록을 엔트로피 코딩하는 것과,
비변환 코딩과 연관된 블록을 식별 ― 상기 비변환 코딩과 연관된 블록은, 상기 변환 코딩과 연관된 블록 중 적어도 하나와 동일한 이미지의 일부이며, 동일한 연관된 크기 및 동일한 연관된 예측 모드를 가짐 ― 하고,
(i) 상기 비변환 코딩과 연관된 블록의 예측 모드, 및 (ii) 상기 비변환 코딩과 연관된 블록의 크기를 판정하고,
상기 비변환 코딩과 연관된 블록의 예측 모드가 인트라-예측(intra-prediction) 모드이고 상기 비변환 코딩과 연관된 블록의 크기가 특정 크기보다 작은 경우, 상기 제1 스캐닝 순서의 역인 제2 스캐닝 순서에 따라 정렬된 블록의 서브-유닛들을 이용하여 상기 비변환 코딩과 연관된 블록을 엔트로피 코딩하고, 그렇지 않은 경우, 상기 제1 스캐닝 순서에 따라 정렬된 블록의 서브-유닛들을 이용하여 상기 비변환 코딩과 연관된 블록을 엔트로피 코딩하도록
구성된
시스템.
- 제6항에 있어서,
상기 비변환 코딩과 연관된 블록은 고 효율 비디오 코딩(High Efficiency Video Coding) 표준에 의해 정의된 변환 유닛을 포함하는
시스템.
- 제6항에 있어서,
상기 코딩 컴포넌트는 인코더 또는 디코더 중 적어도 하나를 포함하는
시스템.
- 제6항에 있어서,
상기 하나 이상의 프로세서에 통신가능하게 연결되고 상기 코딩 컴포넌트를 저장하는 메모리를 더 포함하는
시스템.
- 삭제
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/079964 WO2015010268A1 (en) | 2013-07-24 | 2013-07-24 | Scanning orders for non-transform coding |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160034914A KR20160034914A (ko) | 2016-03-30 |
KR102125601B1 true KR102125601B1 (ko) | 2020-06-22 |
Family
ID=52392587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167001970A KR102125601B1 (ko) | 2013-07-24 | 2013-07-24 | 비변환 코딩을 위한 스캐닝 순서 조정 기법 |
Country Status (16)
Country | Link |
---|---|
US (6) | US10171818B2 (ko) |
EP (1) | EP3025494A4 (ko) |
JP (1) | JP2016528810A (ko) |
KR (1) | KR102125601B1 (ko) |
CN (1) | CN105453567B (ko) |
AU (1) | AU2013395426B2 (ko) |
CA (1) | CA2917419C (ko) |
CL (1) | CL2016000140A1 (ko) |
HK (1) | HK1217844A1 (ko) |
IL (1) | IL243381B (ko) |
MX (1) | MX368246B (ko) |
NZ (1) | NZ715990A (ko) |
PH (1) | PH12016500045B1 (ko) |
RU (1) | RU2624464C1 (ko) |
SG (1) | SG11201600128WA (ko) |
WO (1) | WO2015010268A1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10171818B2 (en) * | 2013-07-24 | 2019-01-01 | Microsoft Technology Licensing, Llc | Scanning orders for non-transform coding |
EP3963889A4 (en) | 2019-06-04 | 2023-01-25 | Beijing Bytedance Network Technology Co., Ltd. | CONDITIONAL IMPLEMENTATION OF A MOVEMENT CANDIDATE LIST CONSTRUCTION PROCESS |
KR102627821B1 (ko) | 2019-06-04 | 2024-01-23 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 이웃 블록 정보를 사용한 모션 후보 리스트 구성 |
CN114175636B (zh) | 2019-07-14 | 2024-01-12 | 北京字节跳动网络技术有限公司 | 自适应参数集中的自适应环路滤波的指示 |
WO2021057996A1 (en) | 2019-09-28 | 2021-04-01 | Beijing Bytedance Network Technology Co., Ltd. | Geometric partitioning mode in video coding |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5410350A (en) * | 1992-10-28 | 1995-04-25 | Sony Corporation | Motion picture encoding and/or decoding system |
CN101448162B (zh) | 2001-12-17 | 2013-01-02 | 微软公司 | 处理视频图像的方法 |
US8311119B2 (en) | 2004-12-31 | 2012-11-13 | Microsoft Corporation | Adaptive coefficient scan order |
US8571104B2 (en) | 2007-06-15 | 2013-10-29 | Qualcomm, Incorporated | Adaptive coefficient scanning in video coding |
US8619853B2 (en) * | 2007-06-15 | 2013-12-31 | Qualcomm Incorporated | Separable directional transforms |
RU2496252C2 (ru) * | 2007-06-29 | 2013-10-20 | Шарп Кабусики Кайся | Устройство кодирования изображения, способ кодирования изображения, устройство декодирования изображения, способ декодирования изображения, программа и запоминающий носитель |
JP2009027541A (ja) | 2007-07-20 | 2009-02-05 | Ntt Docomo Inc | 画像符号化装置、方法及びプログラム、並びに、画像復号装置、方法及びプログラム |
KR20090097689A (ko) * | 2008-03-12 | 2009-09-16 | 삼성전자주식회사 | 영상의 인트라 예측 부호화/복호화 방법 및 장치 |
US9100648B2 (en) * | 2009-06-07 | 2015-08-04 | Lg Electronics Inc. | Method and apparatus for decoding a video signal |
WO2011083573A1 (ja) | 2010-01-07 | 2011-07-14 | 株式会社 東芝 | 動画像符号化装置及び動画像復号化装置 |
US9172968B2 (en) | 2010-07-09 | 2015-10-27 | Qualcomm Incorporated | Video coding using directional transforms |
US9049444B2 (en) * | 2010-12-22 | 2015-06-02 | Qualcomm Incorporated | Mode dependent scanning of coefficients of a block of video data |
CN102651816B (zh) | 2011-02-23 | 2014-09-17 | 华为技术有限公司 | 一种变换系数块的扫描方法和装置 |
US9106913B2 (en) | 2011-03-08 | 2015-08-11 | Qualcomm Incorporated | Coding of transform coefficients for video coding |
US9445093B2 (en) | 2011-06-29 | 2016-09-13 | Qualcomm Incorporated | Multiple zone scanning order for video coding |
US20130003837A1 (en) * | 2011-06-29 | 2013-01-03 | General Instrument Corporation | Methods and system for using a scan coding pattern during intra coding |
US9756360B2 (en) * | 2011-07-19 | 2017-09-05 | Qualcomm Incorporated | Coefficient scanning in video coding |
EP2590409B1 (en) | 2011-11-01 | 2015-01-07 | BlackBerry Limited | Multi-level significance maps for encoding and decoding |
KR20130049522A (ko) | 2011-11-04 | 2013-05-14 | 오수미 | 인트라 예측 블록 생성 방법 |
US10277915B2 (en) * | 2011-11-07 | 2019-04-30 | Qualcomm Incorporated | Signaling quantization matrices for video coding |
US10390046B2 (en) * | 2011-11-07 | 2019-08-20 | Qualcomm Incorporated | Coding significant coefficient information in transform skip mode |
US9344722B2 (en) * | 2011-11-18 | 2016-05-17 | Futurewei Technologies, Inc. | Scanning of prediction residuals in high efficiency video coding |
GB2501535A (en) * | 2012-04-26 | 2013-10-30 | Sony Corp | Chrominance Processing in High Efficiency Video Codecs |
EP2858353B1 (en) * | 2012-06-01 | 2019-03-20 | Velos Media International Limited | Arithmetic decoding device, image decoding device, arithmetic encoding device, and image encoding device |
US10171818B2 (en) | 2013-07-24 | 2019-01-01 | Microsoft Technology Licensing, Llc | Scanning orders for non-transform coding |
-
2013
- 2013-07-24 US US14/906,513 patent/US10171818B2/en active Active
- 2013-07-24 AU AU2013395426A patent/AU2013395426B2/en active Active
- 2013-07-24 CN CN201380078439.XA patent/CN105453567B/zh active Active
- 2013-07-24 JP JP2016528275A patent/JP2016528810A/ja active Pending
- 2013-07-24 WO PCT/CN2013/079964 patent/WO2015010268A1/en active Application Filing
- 2013-07-24 CA CA2917419A patent/CA2917419C/en active Active
- 2013-07-24 SG SG11201600128WA patent/SG11201600128WA/en unknown
- 2013-07-24 KR KR1020167001970A patent/KR102125601B1/ko active IP Right Grant
- 2013-07-24 RU RU2016101967A patent/RU2624464C1/ru active
- 2013-07-24 NZ NZ71599013A patent/NZ715990A/en unknown
- 2013-07-24 MX MX2016001016A patent/MX368246B/es active IP Right Grant
- 2013-07-24 EP EP13890046.9A patent/EP3025494A4/en not_active Ceased
-
2015
- 2015-12-28 IL IL243381A patent/IL243381B/en active IP Right Grant
-
2016
- 2016-01-07 PH PH12016500045A patent/PH12016500045B1/en unknown
- 2016-01-20 CL CL2016000140A patent/CL2016000140A1/es unknown
- 2016-05-16 HK HK16105555.8A patent/HK1217844A1/zh unknown
-
2018
- 2018-12-05 US US16/210,839 patent/US10560704B2/en active Active
-
2020
- 2020-01-06 US US16/735,546 patent/US10979724B2/en active Active
-
2021
- 2021-03-08 US US17/195,460 patent/US11539965B2/en active Active
-
2022
- 2022-11-28 US US17/994,700 patent/US11930190B2/en active Active
-
2024
- 2024-01-16 US US18/414,260 patent/US20240155136A1/en active Pending
Non-Patent Citations (1)
Title |
---|
Hui yong Kim, et. al., "Coefficient scan for transform skip mode", JCTVC of ITU-T and ISO/IEC 10th Meeting, 20, July, 2012, JCTVC-J0202.* |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10666937B2 (en) | Low-complexity sign prediction for video coding | |
US11095893B2 (en) | Primary transform and secondary transform in video coding | |
US9756360B2 (en) | Coefficient scanning in video coding | |
KR102579286B1 (ko) | 비디오 샘플들의 변환된 블록을 인코딩 및 디코딩하기 위한 방법, 장치 및 시스템 | |
US11539965B2 (en) | Scanning orders for non-transform coding | |
CN112352429B (zh) | 对视频数据进行编解码的方法、设备和存储介质 | |
US11451840B2 (en) | Trellis coded quantization coefficient coding | |
JP2015508617A5 (ko) | ||
US11350106B2 (en) | Method for encoding and decoding images, device for encoding and decoding images and corresponding computer programs | |
US10778985B2 (en) | Method and apparatus for intra prediction in video coding system | |
US9554152B2 (en) | Concurrent processing of horizontal and vertical transforms | |
KR20200096227A (ko) | 블록 형상에 기초한 비디오 인코딩 및 디코딩을 위한 방법 및 장치 | |
US10992937B2 (en) | Coefficient coding with grouped bypass bins | |
US10419772B2 (en) | Parallel arithmetic coding techniques | |
JP2018157571A (ja) | 非変換符号化のためのスキャン順序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |