KR20100021658A - 비디오 코딩의 적응형 계수 스캐닝 - Google Patents

비디오 코딩의 적응형 계수 스캐닝 Download PDF

Info

Publication number
KR20100021658A
KR20100021658A KR1020107001007A KR20107001007A KR20100021658A KR 20100021658 A KR20100021658 A KR 20100021658A KR 1020107001007 A KR1020107001007 A KR 1020107001007A KR 20107001007 A KR20107001007 A KR 20107001007A KR 20100021658 A KR20100021658 A KR 20100021658A
Authority
KR
South Korea
Prior art keywords
prediction modes
given
scan
statistics
coefficient values
Prior art date
Application number
KR1020107001007A
Other languages
English (en)
Other versions
KR101244229B1 (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 KR20100021658A publication Critical patent/KR20100021658A/ko
Application granted granted Critical
Publication of KR101244229B1 publication Critical patent/KR101244229B1/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/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/174Methods 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 slice, e.g. a line of blocks or a group of 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 명세서는 비디오 블록들의 계수들(예를 들어, 양자화된 변환 계수들)을 스캐닝하기 위한 기술들을 개시한다. 일반적인 지그-재그 스캐닝을 사용하기 보다, 본 명세서의 기술들은 동일한 예측 모드에서 코딩되었던 이전에 코딩된 블록들과 연관된 통계치들에 기반하여 스캐닝 순서를 적응한다. 각각의 예측 모드에 대하여, (예를 들어, 주어진 계수들이 제로 또는 비-제로인 확률들을 표시하는) 계수들의 통계치들이 저장된다. 주기적으로, 스캐닝 순서의 조정은 비-제로 계수들이 함께 그룹화되고, 제로 계수들이 함께 그룹화되는 것을 더 잘 보장하기 위해 수행된다. 본 명세서의 기술들은 스캐닝 순서의 조정이 발생하는 빈도를 감소시킬 수 있는 임계값들 및 임계값 조정들을 제공하며, 또한 이러한 스캐닝 순서 조정들로 인해 압축에서 바람직한 개선들을 달성한다.

Description

비디오 코딩의 적응형 계수 스캐닝{ADAPTIVE COEFFICIENT SCANNING IN VIDEO CODING}
본 출원은 다음의 미국 가출원의 이익을 주장한다: 2008년 2월 21일에 출원된 미국 가출원 번호 61/030,443, 2007년 6월 15일에 출원된 미국 가출원 번호 60/944,470, 2007년 10월 12일에 출원된 미국 가출원 번호 60/979,762.
이 출원들 각각의 전체 내용은 여기에 참조된다.
본 내용은 디지털 비디오 코딩에 관련된 것으로, 더 구체적으로, 변환된 비디오 블록들의 변환 계수와 같은 비디오 블록들의 계수의 엔트로피 코딩에 관련된다.
디지털 비디오 성능들은 디지털 텔레비전, 디지털 다이렉트 방송 시스템, 무선 텔레폰 핸드셋과 같은 무선 통신 장치들, 무선 방송 시스템들, PDA(personal digital assistant)들, 랩탑 또는 데스크탑 컴퓨터들, 디지털 카메라들, 디지털 레코딩 장치들, 비디오 게이밍 장치들, 비디오 게임 콘솔들 등과 같은 다양한 범위의 장치들에 통합될 수 있다. 디지털 비디오 장치들은 디지털 비디오를 더 효율적으로 전송하고 수신하기 위해 MPEG-2, MPEG-4, 또는 H.264/MPEG-4, Part 10, AVC(Advanced Video Coding)과 같은 비디오 압축 기술들을 구현한다. 비디오 압축 기술들은 비디오 시퀀스에 고유의 리던던시(redundancy)를 감소시키거나 제거하기 위해 공간 및 시간적 예측(prediction)을 수행한다.
비디오 압축은 일반적으로 공간 예측 및/또는 시간적 예측을 포함한다. 특히, 인트라-코딩(intra-coding)은 주어진 코딩된 유닛 내의 비디오 블록들 사이의 공간 리던던시를 감소시키거나 제거하는 공간 예측에 의존하며, 주어진 코딩된 유닛들은, 비디오 프레임, 비디오 프레임의 슬라이스, 등을 포함할 수 있다. 반대로, 인터-코딩(inter-coding)은 비디오 시퀀스의 연속적인 코딩된 유닛의 비디오 블록들 사이의 시간적 리던던시를 감소시키거나 제거하기 위해 시간적 예측에 의존한다. 인트라-코딩에 대하여, 비디오 인코더는 동일한 코딩된 유닛 내의 다른 데이터에 기반하여 데이터를 압축하는 공간 예측을 수행한다. 인터-코딩에 대하여, 비디오 인코더는 둘 이상의 인접한 코딩된 유닛들의 대응하는 비디오 블록들의 움직임을 추적하는 모션 추정(estimation) 및 모션 보상(compensation)을 수행한다.
코딩된 비디오 블록은 예측 모드 및 예측되는(predictive) 블록 크기, 및 코딩되는 블록들 및 예측되는 블록 사이의 차이를 표시하는 데이터의 잔여(residual) 블록을 포함하는 예측 정보에 의해 표현될 수 있다. 인터-코딩의 겨우, 하나 이상의 모션 벡터들이 데이터의 예측되는 블록을 식별하기 위해 사용되며, 인트라-코딩의 경우, 예측 모드는 예측되는 블록을 생성하기 위해 사용될 수 있다. 인트라-코딩 및 인터-코딩 둘 다 몇몇 상이한 예측 모드들을 정의할 수 있으며, 예측 모드들은 코딩에 사용되는 상이한 블록 크기들 및/또는 예측 기술들을 정의할 수 있다.
비디오 인코더는 잔여 블록의 통신과 연관되는 비트 레이트를 추가적으로 감소시키기 위해 변환, 양자화 및 엔트로피 코딩 프로세스들을 적용할 수 있다. 변환 기술들은 이산 코사인 변환 또는 웨이블릿(wavelet) 변화들, 정수(integer) 변환들, 또는 다른 타입의 변환들과 같은 개념적으로 유사한 프로세스들을 포함할 수 있다. 예를 들어, 이산 코사인 변환(discrete cosine transform; DCT) 프로세스에서, 그 프로세서는, 픽셀 값들의 세트를 변환 계수(coefficient)들로 전환하고, 변환 계수들은 주파수 도메인에서의 픽셀 값들의 에너지를 나타낸다. 양자화는 변환 계수들에 적용되며, 일반적으로 주어진 변환 계수들과 연관된 비트들의 수를 제한하는 프로세스와 관련된다. 엔트로피 코딩은 양자화된 변환 계수들의 시퀀스를 집합적으로(collectively) 압축하는 하나 이상의 프로세스들을 포함한다.
엔트로피 코딩 프로세스 이전에, 변환 계수들의 변환된 비디오 블록은 변환 계수들을 2-차원 블록에서 1-차원 벡터로 스캐닝함으로써, 나열(serialize)될 수 있다. 일반적으로, 스캐닝은 비디오 블록의 좌-상향(upper-left) 부분의 변환 계수들이 1-차원 벡터에서 먼저 나타나고, 비디오 블록의 우-하향(lower-right) 부분이 나중에 나타나도록 지그-재그 방식으로 수행된다. 고 에너지 변환 계수들은 일반적으로 다음 변환의 좌상향 코너 근처에 존재하며, 따라서, 지그-재그 스캐닝은 1-차원 벡터들의 시작 근처의 비-제로(non-zero) 계수들을 그룹화하기에 유효하다. 스캐닝 순서는 엔트로피 코딩에서 달성될 수 있는 압축의 레벨에 크게 영향을 미칠 수 있다.
엔트로피 코딩 프로세스의 예시들은 CAVLC(content adaptive variable length coding) 및 CABAC(context adaptive binary arithmetic coding)을 포함한다. CAVLC는 ITU H.264/MPEG4 Part 10 AVC 표준에 의해 지원되는 엔트로피 코딩 기술의 일 타입이다. CAVLC는 양자화된 변환 계수들의 나열된 "런(run)들"을 효율적으로 압축하는 방법으로 VLC(variable length coding) 테이블들을 사용한다. CABAC는 ITU H.264/MPEG4 Part 10 AVC 표준에 의해 지원되는 엔트로피 코딩의 다른 타입이다. CABAC는 이진화(binarization), 콘텍스트 모델 선택(context model selection), 및 이진 산술 코딩(binary arithmetic coding)을 포함하는 몇몇 단계들을 포함할 수 있다. 엔트로피 코딩 기술들의 많은 다른 타입들이 존재하며, 새로인 엔트로피 코딩 기술들이 장래에 확장될 것이다.
비디오 디코더는 1-차원 벡터들을 변환 계수들로 재구성(reconsturct)하기 위해 인코딩 프로세스에서 사용된 엔트로피 코딩의 타입에 대응하는 역(inverse) 엔트로피 코딩 동작들을 수행할 수 있다. 역 스캐닝은 변환 계수들의 수신된 1-차원 벡터들로부터 2-차원 블록들을 형성하기 위해 디코더에서 수행될 수 있다. 비디오 디코더는 그리고 나서 잔여 픽셀 데이터를 재구성하기 위해 변환 계수들을 역 양자화 및 역변환한다. 비디오 디코더는 예측 모드, 예측 크기를 포함하는 디코딩된 예측 정보, 그리고, 인터 코딩의 경우, 예측되는 비디오 블록을 획득하기 위한 모션 정보를 사용할 수 있다. 비디오 디코더는 그리고 나서 비디오의 디코딩된 시퀀스를 생성하기 위해 예측되는 블록을 대응하는 재구성된 잔여 블록과 결합할 수 있다.
본 명세서는 비디오 블록들의 계수들(예를 들어, 양자화된 변환 계수들)을 스캐닝하기 위한 기술들을 개시한다. 인코딩 측에서, 스캐닝은 계수들의 2-차원 블록들로부터 계수들의 1-차원 블록들을 생성하고, 역 스캐닝은 1-차원 벡터들로부터 2-차원 계수들의 블록들을 생성한다. 일반적인 지그-재그 스캐닝을 사용하는 것보다, 본 명세서의 기술들은, 동일한 예측 모드에서 코딩되었던 이전에 코딩된 블록들과 연관된 통계치들에 기반하여 스캐닝 순서를 조정한다. 각각의 예측 모드에 대해, (예를 들어, 주어진 포지션들의 변환 계수들이 제로 또는 비 제로일 확률들을 표시하는) 변환 계수들의 통계치들이 저장된다. 주기적으로, 스캐닝 순서에 대한 조정은 비-제로 변환 계수들이 1-차원 벡터의 시작에 함께 그룹화되고, 제로 값 계수들이 1-차원 벡터의 끝으로 함께 그룹화되도록 하기 위해 수행될 수 있으며, 이는 엔트로피 코딩의 효율성을 개선시킬 수 있다.
스캐닝 순서의 조정은 계산적으로 집중적일 수 있다. 따라서, 본 명세서의 기술은 스캐닝 순서 조정이 발생하는 빈도를 감소시키는 임계값들 및 임계값 조정들을 부과(impose)하며, 이러한 스캐닝 순서 조정들로 인한 압축에서의 바람직한 개선들을 달성할 수 있다. 기술들은 인코더 및 디코더에 의해 상호적인 방식으로 수행될 수 있다. 즉, 인코더는 비디오 블록들의 계수들을 2-차원 포맷으로부터 1-차원 벡터들로 스캐닝하기 위해 엔트로피 인코딩 이전에 적응형 스캐닝 기술들을 사용할 수 있다. 디코더는 비디오 블록들의 수신된 1-차원 벡터들을 계수들의 2-차원 블록들을 형성하기 위해 스캔할 수 있다. 따라서, 계수 블록들은 2-차원 블록 포맷 또는 1-차원 벡터 포맷으로 나타낼 수 있다. 본 발명의 스캐닝 기술들은 일반적으로 계수 블록들이 인코더에 의해 어떻게 2-차원 블록 포맷으로부터 1-차원 벡터 포맷으로 전환된지를 정의하고, 그 역도 같다. 본 발명이 일차적으로 변환되고 양자화된 비디오 블록들에 적용되는 스캐닝 기술들을 개시하나, (예를 들어, 픽셀값들의 스캐닝이 구현되는 경우) 유사한 기술들이 비-변환된 비디오 블록들의 비-양자화된 계수들 또는 픽셀 값들과 같은 다른 타입의 계수들을 스캔하기 위해 사용될 수 있다.
일 예에서, 본 명세서는 비디오 블록들의 계수들을 코딩하는 방법을 제공하고, 그 방법은 복수의 예측(prediction) 모드들 각각에 대한 비디오 블록들의 계수 값들과 연관되는 통계치들을 저장(store)하는 단계, 상기 예측 모드들 각각과 연관되는 상기 비디오 블록들을 카운트(count)하는 단계, 상기 예측 모드들 각각에 대해 정의된 스캔 순서(scan order)들에 기반하여 상기 비디오 블록들의 계수 값들을 스캐닝하는 단계, 상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 주어진 스캔 순서를 평가하는 단계 및 상기 계수 값들을 엔트로피 코딩(entropy coding)하는 단계를 포함한다.
다른 예시에서, 본 명세서는 비디오 블록들의 계수들을 코딩하는 장치를 제공하고, 그 장치는 스캔 유닛 및 엔트로피 코딩 유닛을 포함한다. 스캔 유닛은 복수의 예측 모드들 각각에 대한 비디오 블록들의 계수 값들과 연관되는 통계치들을 저장하고, 상기 예측 모드들 각각과 연관되는 상기 비디오 블록들을 카운트하고, 상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 상기 비디오 블록들의 계수 값들을 스캐닝하고, 상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 주어진 스캔 순서를 평가한다. 엔트로피 코딩 유닛은 상기 계수 값들을 엔트로피 코딩한다.
다른 예시에서, 비디오 블록들의 계수들을 코딩하는 장치를 제공하고, 그 장치는 복수의 예측 모드들 각각에 대한 비디오 블록들의 계수 값들과 연관되는 통계치들을 저장하기 위한 수단, 상기 예측 모드들 각각과 연관되는 상기 비디오 블록들을 카운트하기 위한 수단, 상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 상기 비디오 블록들의 계수 값들을 스캐닝하기 위한 수단, 상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 주어진 스캔 순서를 평가하기 위한 수단 및 상기 계수 값들을 엔트로피 코딩(entropy coding)하기 위한 수단을 포함한다.
다른 예시에서 본 명세서는 복수의 예측 모드들 각각에 대한 비디오 블록들의 계수 값들과 연관되는 통계치들을 저장하고, 상기 예측 모드들 각각과 연관되는 상기 비디오 블록들을 카운트하고, 상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 2-차원 블록들로부터 1-차원 벡터들로 비디오 블록들의 계수 값들을 스캐닝하고, 상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 주어진 스캔 순서를 평가하는 스캔 유닛을 포함하는 장치를 제공한다. 그 장치는 또한 상기 1차원 벡터들의 계수 값들을 엔트로피 인코딩하는 엔트로피 코딩 유닛 및 상기 엔트로피 인코딩된 계수 값들을 포함하는 비트스트림을 전송하는 무선 송신기를 포함한다.
다른 예시에서, 본 명세서는 1-차원 벡터들에서 비디오 블록들의 엔트로피 코딩된 계수 값들을 포함하는 비트스트림을 수신하는 무선 수신기 및 상기 비디오 블록들의 계수 값들을 엔트로피 디코딩하는 엔트로피 코딩 유닛을 포함한다. 이 경우에 스캔 유닛은 복수의 예측 모드들 각각에 대한 비디오 블록들의 계수 값들과 연관되는 통계치들을 저장하고, 상기 예측 모드들 각각과 연관되는 상기 비디오 블록들을 카운트하고, 상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 2-차원 블록들로부터 1-차원 벡터들로 비디오 블록들의 계수 값들을 스캐닝하고 상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 주어진 스캔 순서를 평가한다.
본 명세서에서 설명된 기술들은 하드웨어, 소프트웨어, 펌웨어 도는 이들의 조합으로 구현할 수 있다 하드웨어로 구현되는 경우, 장치는 집적 회로, 프로세서, 이산 로직 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 소프트웨어는 마이크로프로세서, 주문형 반도체(ASIC), 필드 프로그램어블 게이트 어레이(FPGA), 또는 디지털 신호 프로세서(DSP)와 같은 하나 이상의 프로세서들로 실행될 수 있다. 기술들을 실행하는 소프트웨어는 프로세서에 로딩되고 실행되는 컴퓨터-판독가능한 매체에 초기에 저장될 수 있다.
따라서, 본 발명은 비디오 코딩 장치에서 실행되면 상기 장치로 하여금 비디오 블록들의 계수들을 코딩하도록 하는 명령들을 포함하는 컴퓨터-판독가능한 매체로서, 상기 명령들은 상기 장치로 하여금, 복수의 예측 모드들 각각에 대한 비디오 블록들의 계수 값들과 연관되는 통계치들을 저장하고, 상기 예측 모드들 각각과 연관되는 상기 비디오 블록들을 카운트하고, 상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 상기 비디오 블록들의 계수 값들을 스캐닝하고, 상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 주어진 스캔 순서를 평가하고 그리고, 상기 계수 값들을 엔트로피 코딩하도록 하는, 컴퓨터-판독가능한 매체를 고려한다.
본 명세서의 하나 이상의 양상들의 세부 내용이 첨부된 도면들 및 아래의 상세한 서명에서 설명된다. 본 명세서에 설명된 다른 특징들, 목적들 및 이점들은 상세한 설명 및 도면 및 청구항들로부터 명백할 것이다.
도 1은 본 명세서의 기술들을 구현할 수 있는 예시적인 비디오 인코딩 및 디코딩 시스템을 도시하는 블록 다이어그램이다.
도 2는 본 명세서에 부합하는 비디오 인코더의 예시를 도시한 블록 다이어그램이다.
도 3은 본 명세서에 부합하는 비디오 디코더의 예시를 도시한 블록 다이어그램이다.
도 4는 4-바이-4 비디오 블록의 지그-재그 스캐닝을 도시한 개념적 다이어그램이다.
도 5는 8-바이-8 비디오 블록의 지그-재그 스캐닝을 도시한 개념적 다이어그램이다.
도 6은 본 명세서의 기술에 부합하는 특정 모드의 블록에 연관되는 통계치들 및 알고리즘을 도시한 개념적 다이어그램이다.
도 7은 본 명세서에 부합하는 가정적 예시를 도시한 개념적 다이어그램이다.
도 8 및 9는 본 명세서에 부합하는 기술들을 도시한 플로우 다이어그램이다.
본 명세서는 비디오 블록들의 계수들(예를 들어, 양자화된 변환 계수들)을 스캐닝하기 위한 기수들을 개시한다. 본 명세서에서, 용어 "계수 블록(coefficient block)"은 일반적으로 비디오 블록과 연관된 변환 계수들의 세트를 지칭한다. 계수 블록들은 2-차원 블록 포맷 또는 1-차원 벡터 포맷으로 나타낼 수 있다. 본 발명의 스캐닝 기술들은 계수 블록들이 인코더에 의해 어떻게 2-차원 블록 포맷으로부터 1-차원 벡터 포맷으로 전환되고, 또한 계수 블록들이 디코더에 의해 어떻게 1-차원 벡터 포맷으로부터 2-차원 블록 포맷으로 변환되는 지를 정의한다. 본 발명이 일차적으로 변환되고 양자화된 비디오 블록들에 적용되는 스캐닝 기술들을 개시하나, 여기에 개시된 스캐닝 기술들은 비디오 데이터의 다른 타입들(예를 들어, 픽셀 도메인 에서의 비디오 블록)을 2-차원 블록 포맷을 1-차원 벡터 포맷으로 전환하기 위해 적용될 수 있다.
일반적으로, 2-차원 블록 포맷으로부터 1-차원 벡터 포맷으로의 계수 블록들의 스캐닝은 지그-재그(zig-zag) 스캐닝 순서를 따른다. 이 경우, 계수 블록의 좌-상향(upper-left)에서의 계수들은 1-차원 벡터에서 먼저 나타나고, 계수 블록의 우-하향(lower-right)의 계수들은 나중에 나타난다. 고 에너지 변환 계수들은 일반적으로 변환 이후의 좌상향 코너 부근에 존재한다. 이러한 이유로 인하여, 지그-재그 스캐닝은 1-차원 벡터의 시작 근처에서 비-제로 계수들을 그룹화하기 위한 효율적인 방법이다. 엔트로피 코딩 유닛은 그리고 나서 일반적으로 1-차원 벡터를 런들 및 레벨들의 형태로 코딩하고, 여기서, 런들은 두 개의 비-제로 변환 계수들 사이에서 제로 값 변환 계수들의 개수이며, 레벨들은 비-제로 변환 계수들의 값을 나타낸다. 또한, 마지막 비-제로 변환 계수가 주어진 계수 블록에 대해 (예를 들어, 1-차원 벡터 포맷으로) 전송되면, 엔트로피 코더는 일반적으로 이것이 블록의 마지막 비-제로 변환 계수임을 표시하는 EOB(End-OF-Block) 심벌 또는 최종 계수 플래그를 전송한다. 비-제로 변환 계수들을 1-차원 벡터들의 시작으로 그룹화함으로써, 더 높은 압축이 달성될 수 있는데, 왜냐하면 더 작은 런들의 값들이 코딩될 수 있으며, EOB 심벌 또는 최종 계수 플래그가 더 빠르게 전송될 수 있기 때문이다. 불행하게도, 지그-재그 스캐닝이 언제나 계수들의 가장 효율적인 그룹화를 달성하는 것은 아니다.
일반적인 지그-재그 스캐닝을 사용하는 것보다, 본 명세서의 기술들은, 동일한 예측 모드에서 코딩되었던 이전에 코딩된 블록들과 연관된 통계치들에 기반하여 스캐닝 순서를 조정한다. 각각의 예측 모드에 대해, (예를 들어, 주어진 포지션들의 변환 계수들이 제로 또는 비 제로일 확률들을 표시하는) 변환 계수들의 통계치들이 저장된다. 주기적으로, 스캐닝 순서에 대한 조정은 비-제로 변환 계수들이 1-차원 벡터의 시작에 함께 그룹화되고, 제로 값 계수들이 1-차원 벡터의 끝으로 함께 그룹화되도록 하기 위해 수행될 수 있으며, 이는 엔트로피 코딩의 효율성을 개선시킬 수 있다. 적응형 스캐닝 기술들은 각각의 개별적인 코딩된 유닛(예를 들어, 각각의 프레임, 슬라이스 또는 다른 타입의 코딩된 유닛)에 대해 발생할 수 있다. 코딩된 유닛의 계수 블록들은 초기에 고정된 방식(예를 들어, 지그-재그 스캐닝 순서 또는 다른 고정된 스캐닝 순서)으로 스캐닝될 수 있으나, 주어진 예측 모드에 대한 계수 블록들의 통계치들이 상이한 스캐닝 순서가 비-제로 및 제로 값 계수들을 그룹화하기 위해 더 효율적임을 표시하는 경우, 빠르게 상이한 스캐닝 순서로 조정할 수 있다.
스캐닝 순서의 조정은, 그러나, 계산적으로 집중적일 수 있다. 따라서, 본 명세서의 기술은 스캐닝 순서 조정이 발생하는 빈도를 감소시키는 임계값들 및 임계값 조정들을 부과(impose)하며, 이러한 스캐닝 순서 조정들로 인한 압축에서의 바람직한 개선들을 달성할 수 있다. 기술들은 인코더 및 디코더에 의해 상호적인 방식으로 수행될 수 있다. 즉, 인코더는 비디오 블록들의 계수들을 2-차원 포맷으로부터 1-차원 벡터들로 스캐닝하기 위해 엔트로피 인코딩 이전에 적응형 스캐닝 기술들을 사용할 수 있다. 디코더는 계수 블록들을 2-차원 포맷으로 재생성하기 위해 엔트로피 디코딩 프로세스에 이어 비디오 블록들의 계수들의 수신된 1-차원 벡터들을 역(inverse) 스캔할 수 있다. 또한, 문구 "계수 블록"은 일반적으로 2-차원 블록 포맷 또는 1-차원 블록 포맷으로 나타낼 수 있는 변환된 계수들의 세트를 지칭한다.
도 1은 본 명세서의 기술들을 구현할 수 있는 예시적인 비디오 인코딩 및 디코딩 시스템(10)을 도시하는 블록 다이어그램이다. 도 1에 도시된 바와 같이, 시스템(20)은 통신 채널(15)을 통해 인코딩된 비디오를 목적 장치(160)로 전송하는 소스 장치(12)를 포함한다. 소스 장치(12) 및 목적(16) 장치는 다양한 범위의 장치들을 포함할 수 있다. 소스 장치(12) 및 목적 장치(16)는 셀룰러 또는 위성 무선전화기들과 같은 무선 통신 장치 핸드셋들을 포함한다. 본 명세서의 기술들은, 그러나, 계수들의 적응형 스캐닝에 더 일반적으로 적용되며, 무선 애플리케이션들 또는 세팅들에 제한될 필요는 없다.
도 1 의 예시에서, 소스 장치(12)는 비디오 소스(20), 비디오 인코더(22), 변조기/복조기(모뎀)(23) 및 송신기(24)를 포함할 수 있다. 목적 장치(16)는 수신기(26), 모뎀(27), 비디오 디코더(28) 및 디스플레이 장치(30)를 포함할 수 있다. 본 명세서에 따르면, 소스 장치(12)의 비디오 인코더(22)는 1-차원 데이터 세트를 형성하기 위해 엔트로피 인코딩 전에 계수들의 적응형 스캐닝을 수행하도록 구성된다. 유사하게, 목적 장치(16)의 비디오 디코더(28)는 2-차원 데이터 세트를 생산하기 위해 엔트로피 디코딩 다음에 계수들의 적응형 스캐닝을 수행하도록 구성된다. 비디오 디코더(28)는 비디오 인코더(22)에 의해 적용되는 스캐닝 순서의 어떠한 표시도 수신할 필요가 없다; 오히려, 스캐닝 순서는 비디오 인코더(22) 및 비디오 디코더(28) 둘 다에서 본질적으로 동일한 방식으로 도출될 수 있다.
도 1의 도시된 시스템(10)은 단순히 예시적인 것이다. 본 발명의 스캐닝 기술들은 CAVLC(content adaptive variable length coding), CABAC(context adaptive binary arithmetic coding)과 같은 폭넓게 다양한 코딩 방법들을 또는 다른 엔트로피 코딩 방법들을 지원하는 인코딩 또는 디코딩 장치에 의해 수행될 수 있다. 소스 장치(12) 및 목적 장치(16)는 이러한 코딩 장치들의 단순한 예시이다.
본 명세서에 따라, 비디오 인코더(22) 및 비디오 디코더(28)는 복수의 예측 모드들 각각에 대한 비디오 블록들의 계수 값들과 연관된 통계치들을 저장할 수 있으며, 예측 모드 각각과 연관된 비디오 블록들을 카운트할 수 있다. 비디오 인코더(22) 및 비디오 디코더(28)는 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 비디오 블록들의 계수 값들을 스캐닝하고, 상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 주어진 스캔 순서를 평가하고, 계수 값들을 엔트로피 코딩한다. 또한, 인코딩 측에서, 스캐닝은 엔트로피 인코딩에 선행(precede)하며, 디코딩 측에서 스캐닝은 엔트로피 디코딩을 따른다.
일반적으로, 소스 장치(12)는 목적 장치(16)로 전송을 위해 코딩된 비디오 데이터를 생성한다. 그러나, 임의의 경우에서, 장치들(12, 16)은 실질적으로 대칭적인 방식으로 동작한다. 예를 들어, 장치들(12, 16) 각각은 비디오 인코딩 및 디코딩 컴포넌트들을 포함할 수 있다. 따라서, 시스템(10)은, 예를 들어, 비디오 스트리밍, 비디오 플레이백, 비디오 방송 또는 화상 전화 등을 위해 비디오 장치들(12, 16) 사이의 일-방향(one-way) 또는 양 방향(two-way) 전송을 지원할 수 있다.
소스 장치(12)의 비디오 소스(20)는 비디오 카메라, 이전에 캡쳐된 비디오를 포함하는 비디오 기록, 비디오 콘텐츠 공급자로부터의 비디오 공급과 같은 비디오 캡쳐 장치를 포함할 수 있다. 추가적인 대안으로서, 비디오 소스(20)는 소스 비디오, 또는 라이브 비디오의 조합, 기록된 비디오 및 컴퓨터-생성된 비디오로서의 컴퓨터 그래픽-기반 데이터를 생성할 수 있다. 임의의 경우들에서, 비디오 소스(20)가 비디오 카메라인 경우, 소스 장치(12) 및 목적 장치(16)는 소위 카메라 폰 또는 화상 전화기를 형성할 수 있다. 각각의 경우에서, 캡쳐되거나, 이전에-캡쳐된 비디오는 비디오 인코더(22)에 의해 인코딩된다. 인코딩된 비디오 정보는 (예를 들어, 코드 분할 다중 접속(CDMA)과 같은) 통신 표준 또는 다른 통신 표준 또는 기술들에 따라 모뎀(23)에 의해 변조되며, 송신기(24)를 통해 목적 장치(16)로 전송된다.
목적 장치(16)의 수신기(26)는 채널(16)을 통해 정보를 수신하고, 모뎀(27)은 그 정보를 복조한다. 비디오 디코더(28)에 의해 수행되는 비디오 디코딩 프로세스는 비디오 시퀀스의 재구성(reconstruct)의 일부로서 엔트로피 디코딩 및 적응형 스캐닝을 수행할 수 있다. 인코딩 프로세스와 같이, 디코딩 프로세스는 데이터 압축의 개선된 레벨을 제공하기 위해 본 명세서의 기술들을 이용한다. 디스플레이 장치(28)는 디코딩된 비디오 데이터를 사용자에게 디스플레이하며, CRT(cathod ray tube), LCD(liquid crystral display), 플라즈마 디스플레이, OLED(organic light emitting diode) 디스플레이와 같은 다양한 디스플레이 장치 또는 디스플레이 장치의 다른 타입을 포함할 수 있다.
도 1의 예시에서, 통신 채널(15)은 무선 주파수(RF) 스펙트럼 또는 하나 이상의 물리적 전송선과 같은 임의의 무선 또는 유선 통신 매체 또는 무선 및 유선 매체의 임의의 조합을 포함할 수 있다. 통신 채널(15)은 로컬 영역 네트워크, 와이드-영역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷-기반 네트워크의 일부를 형성할 수 있다. 통신 채널(15)은 일반적으로 소스 장치(12) 로부터 목적 장치(16)로 비디오 데이터를 전송하기 위한 임의의 적합한 통신 매체 또는 상이한 통신 매체의 집합을 나타낸다.
비디오 인코더(22) 및 비디오 디코더(28)는 CAVLC, CABAC 또는 ITU-T H.264표준(선택적으로 MPEG-4, Part 10, Advanced Video Coding(AVC)으로 지칭됨)과 같은 다른 엔트로피 코딩 방법을 지원하는 비디오 압축 표준에 따라 동작한다. 그러나 기술들은 단순히 설명을 위한 목적으로 이 표준을 참조하여 설명된다. 이러한 기술들은 MPEG-1, MPEG-2, 및 MPEG-4, ITU-T H.263에서 MPEG(Moving Picture Experts Group)에 의해 정의된 것, (일반적으로 "VC-1"으로 지칭되는) SMPTE(the Society of Motion Picture and Television Engineers) 421M 비디오 CODEC 표준, (일반적으로 "AVS"라 지칭되는) Audio Video Coding Standard Workgroup of China에 의해 정의되는 표준과 같은 다양한 다른 비디오 코딩 표준들 또는 독점 표준으로서 기관에 의해 개발되거나 표준으로서 정의된 임의의 다른 코딩 표준에 쉽게 적용된다.
도 1에 도시되지 않았으나, 일부 양상들에서, 비디오 인코더(22) 및 비디오 디코더(28)는 오디오 인코더 및 디코더와 함께 각각 통합될 수 있으며, 그리고 공통 데이터 스트림 또는 개별 데이터 스트림들에서 오디오 및 비디오 둘 다의 인코딩을 핸들링하기 위해 적합한 MUX-DEMUX 유닛들 또는 다른 하드웨어 또는 소프트웨어를 포함할 수 있다. 적용가능한 경우, MUX-DEMUX 유닛들은 ITU H.233 멀티플렉서 프로토콜 또는 UDP(user datagram protocol)과 같은 다른 프로토콜들에 적합하다.
ITU H.264/MEPG-4 Part 10 AVC 표준은 JVT(Joint Vidio Team)으로서 알려진 종합적인 파트너십의 산물로서 ISO/IEC MPEG(Moving Picture Experts Group)과 함께 ITU-T VCEG(Video Coding Experts Group)에 의해 공식화되었다. 일부 양상들에서, 본 명세서에 설명된 기술들은 일반적으로 H.264 표준에 부합하는 장치들에 적용될 수 있다. H.264 표준은 2005년 3월의 ITU-T Study Group에 의해 일반 시청각 서비스들을 위한 ITU-T Recommendation H.264, Advanced Video Coding에서 설명되었으며, 이들은 여기서 H.264 표준 또는 H.264 규격 또는 H.264/AVC 표준 또는 규격으로 지칭될 것이다. JVT(Joint Video Team)은 H.264/AVC의 확장을 위해 작업을 계속한다.
비디오 인코더(22) 및 비디오 디코더(28)는 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서(DSP)들, 주문형 반도체(ASIC)들, 필드 프로그램어블 게이트 어레이(FPGA)들, 이산 로직, 소프트웨어, 하드웨어, 펌웨어 또는 이들의 임의의 조합으로서 각각 구현될 수 있다. 비디오 인코더(22) 및 비디오 디코더(28) 각각은 하나 이상의 인코더들 또는 디코더들에 포함될 수 있으며, 이들은 각각의 모바일 장치, 가입자 장치, 방송 장치, 서버 등에서 결합된 인코더/디코더(CODEC)의 일부로서 통합될 수 있다.
비디오 시퀀스는 일련의 비디오 프레임들을 포함한다. 임의의 경우에서, 비디오 시퀀스는 GOP(group of pictures)로서 배열될 수 있다. 비디오 인코더(22)는비디오 데이터를 인코딩하기 위해 개별 비디오 프레임들 내의 비디오 블록들 상에서 동작한다. 비디오 블록들은 고정되거나 가변하는 크기를 가질 수 있으며, 특정 코딩 표준에 따라 크기가 다를 수 있다. 각각의 비디오 프레임은 일련의 슬라이스들을 포함할 수 있다. 각각의 슬라이스는 일련의 매크로블록(macroblock)들을 포함할 수 있으며, 이는 더 작은 블록들로 배열될 수 있다. 매크로블록들은 일반적으로 16 × 16(16 by 16) 데이터 블록들로 지칭된다. ITU-T H.264 표준은 루마(luma) 컴포넌트들에 대한 16 × 16, 8 × 8, 4 × 4와 같은 다양한 블록 크기들에서 인트라 예측 및 루마 컴포넌트들 및 크로마(chroma) 컴포넌트들에 대한 스케일링된 크기들 16 × 16, 16 × 8, 8 × 16, 8 × 4, 4 × 8, 및 4 × 4과 같은 다양한 블록 크기들의 인터 예측을 지원한다. 본 명세서에서, 용어 비디오 블록들은 이산 코사인 변환 또는 픽셀 값들의 세트가 주파수 도메인으로 변환되는 개념적으로 유사한 변환 프로세스 이후의 계수들의 블록들(예를 들어, 변환 계수들)을 지칭할 수 있다. 변환 계수들은 양자화될 수 있다. 본 명세서의 스캐닝 기술들은 일반적으로 양자화된 변환 계수들과 관련하여 적용되나, 일부 구현들에서는 비-양자화된 변환 계수들에 적용가능할 수 있다. 또한, 본 명세서의 스캐닝 기술들을 픽셀 값들의 블록들에 (즉, 변환 프로세스 없이) 적용가능하나, 이는 픽셀 값들의 양자화된 블록들 일 수도 아닐 수도 있다. 용어 "계수(coefficient)"는 계수 블록들의 변환 계수들 뿐 아니라 비-변환된 비디오 블록들의 픽셀 값들을 포함하는 비디오 블록들의 값들을 나타내기 위해 여기에 널리 사용된다.
매크로블록들과 같은 더 큰 비디오 블록들은, 더 작은 크기의 비디오 블록들로 나뉠 수 있다. 더 작은 비디오 블록들은 더 좋은 해상도(resolution)를 제공할 수 있으며, 높은 레벨의 디테일을 포함하는 비디오 프레임의 로케이션을 위해 사용될 수 있다. 일반적으로 매크로블록(MB)들 및 다양한 더 작은 블록들은 모두 비디오 블록들로 취급(consider)된다. 비디오 프레임들은 디코딩가능한 유닛들을 포함할 수 있으며, "슬라이스들"과 같은 더 작은 디코딩가능한 유닛들로 나뉠 수 있다. 즉, 슬라이스는, MB들과 같은 일련의 비디오 블록들 및/또는 더 작은 크기의 블록들로서 취급될 수 있으며, 각각의 슬라이스는 비디오 프레임의 독립적으로 디코딩가능한 유닛일 수 있다.
예측 이후에, 변환은 8x8 잔여 픽셀 블록(residual block of pixels) 또는 4x4 잔여 픽셀 블록 상에서 수행될 수 있으며, 추가적인 변환은 크로마 컴포넌트들에 대한 (인트라_16x16 예측 모드가 사용되는 경우, 루마 컴포넌트들에 대한) 4x4 픽셀 블록들의 DC 계수들에 적용될 수 있다. 변환 이후에, 데이터는 계수 블록들 또는 변환된 비디오 블록들로서 지칭될 수 있다. 변환 이후에, 계수 블록들은 픽셀 값들 보다 변환 계수들을 포함한다. 또한, 용어 "계수(coefficient)들"은 일반적으로 변환 계수들을 지칭하나, 선택적으로 다른 타입의 계수들 또는 값들(예를 들어, 변환 프로세서 없는 픽셀 값들)을 지칭할 수 있다.
인트라- 또는 인터-기반 예측 코딩 및 (H.264/AVC에서 사용되는 4x4 또는 8x8 정수 변환 또는 이산 코사인 변환(DCT)과 같은) 변환 기술 이후에, 양자화가 수행될 수 있다. 웨이블릿-기반 압축과 같은 다른 변환 기술들이 사용될 수 있다. 양자화는 일반적으로 계수들이 계수들을 나타내기 위해 사용되는 데이터의 양을 감소시키기 위해 양자화되는 프로세스를 지칭한다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 뎁스(depth)를 감소할 수 있다. 예를 들어, 8-비트 값은 양자화 동안 7-비트로 라운드 다운(round down)될 수 있다.
양자화 이후에, 스캐닝 및 엔트로피 코딩이 여기에 설명된 기술에 따라 수행될 수 있다. 특히, 4 × 4 비디오 블록들, 8 × 8 비디오 블록들 또는 16×16 비디오 블록들과 같은 다른 크기의 블록들과 같은 변환 계수들의 비디오 블록들은 2-차원 포맷에서 1-차원 포맷으로 스캐닝될 수 있다. 스캐닝 순서는 각각의 코딩된 유닛에 대해 초기화될 수 있으며, 일반적인 방법(예를 들어, 지그-재그 스캐닝 순서)으로 시작할 수 있다. 본 명세서에 따르면, 스캐닝 순서는 적응형일 수 있다. 특히, 스캐닝 순서는 비디오 블록들과 연관된 통계치들에 기반하여 하나 이상의 예측 모드들의 비디오 블록들에 대해 적응될 수 있다. 통계치들은 각각의 예측 모드에서 인코딩된 비디오 블록들의 개수의 카운트, 각각의 예측 모드에서 인코딩된 비디오 블록들의 계수와 연관된 확률들의 세트를 포함할 수 있다. 확률들은 비디오 블록의 각각의 위치에서 주어진 계수 값이 제로 값을 가지거나 또는 비-제로 값을 가지는 확률의 표시를 포함할 수 있다. 선택적으로, 확률들은 각각의 위치에서 실제 값을 표시하는 더 자세한 확률들 또는 계수 값들과 연관된 통계적인 확률 측정치들의 다른 타입을 포함할 수 있다.
하나 이상의 임계값들은 카운트 값들과 관련되어 정의된다. (매크로블록 경계들이 만나는 것과 같은) 주기적인 인터벌들에서, 비디오 블록들의 상이한 모드들과 연관된 스캔 순서들이 평가될 수 있다. 스캔 순서가 평가되는 겨우, 주어진 예측 모드와 연관된 카운트 값이 주어진 예측 모드의 임계값을 만족하는 경우, 그 모드에 대한 스캔 순서는 시험(examine)되며, 주어진 예측 모드에서 코딩된 비디오 블록들의 통계치들을 반영하기 위해 변화될 수 있다. 특히, 스캔 순서는 계수들이 비-제로 값들을 가지는 확률의 순서로 스캐닝되도록 정의될 수 있다. 즉, 비-제로인 더 높은 확률들을 가지는 계수 위치들은 비-제로인 더 낮은 확률들을 가지는 계수 위치들 이전에 스캔된다. 이 방법으로, (지그-재그 스캐닝 순서와 같은) 일반적인 스캐닝 순서는 계수 블록들의 1-차원 벡터 표현의 시작을 향해 비-제로 계수들을 더 그룹화하도록 스캐닝 순서를 적응할 수 있다. 디코더는 동일한 통계치들을 계산할 수 있으며, 인코딩 프로세스에서 사용되었던 스캐닝 오더를 결정할 수 있다. 따라서, 상호적인 적응 스캐닝 순서들이 계수 블록들이 1-차원 벡터 표현을 2-차원 블록 포맷으로 되돌리기 위해 디코더에 의해 적용될 수 있다.
설명한 바와 같이, 스캐닝 순서(및 그들의 적응형 변화들)는 각각의 상이한 예측 모드에 대해 다를 수 있다. 즉, 통계치들은 각각의 상이한 예측 모드에 대해 유지된다. 본 명세서는 임의의 특정한 수의 모드들 또는 모드들의 타입에 제한되지 않는다. 상이한 모드들은 코딩 프로세스에서 사용되는 비디오 블록의 크기 및 예측의 타입을 정의할 수 있다. 복수의 예측 모드들은 복수의 인트라 예측 모드들 또는 복수의 인터 예측 모드들을 포함할 수 있다.
예로서, 인터 코딩은 4×4 변환 블록 크기에 대응하는 인터 예측 모드 및 8×8 변환 블록 크기에 대응하는 인터 예측 모드와 같은 둘 이상의 모드들을 지원할 수 있다. 일부 경우들에서, 예측가능한(P) 및 양-방향 예측가능한(B) 모드들과 같은 몇몇 4×4 모드들이 지원될 수 있다. 인터 코딩은 8×8 P 모드 및 8×8 B모드를 지원할 수 있다. 또한 상이한 모드들이 루마 및 크로마 정보에 대한 인터 코딩된 블록들에 대해 정의될 수 있다. 다양한 상이한 인터 코딩 예측 모드들이 정의될 수 있으며 본 명세서는 특정한 모드들이 세트로 제한되지 않는다.
인트라 코딩은 또한 넓은 범위의 예측가능한 모드들을 지원할 수 있다. 예를 들어, 인트라 예측 모드들은 복수의 4 × 4 (4 by 4) 루마(luma) 인트라 예측 모드들, 복수의 8 × 8 루마 인트라 예측 모드들, 복수의 16 × 16 루마 인트라 예측 모드들 및 복수의 8 × 8 크로마(chroma) 인트라 예측 모드들을 포함할 수 있다. 예로서, 인트라 예측 모드들은 예측가능한 블록들이 상이한 타입의 동일한 코딩된 유닛 내에서 인접한 데이터의 상이한 타입의 전달(propagation), 적응(adaptation), 및/또는 인터폴레이션(interpolation)에 기반하여 생성되는 26개의 상이한 모드들을 포함할 수 있다.
인트라 코딩 모드들은 수직, 수평, DC, 대각 좌하향(downleft), 대각 우하향(downright), 수직우향, 수평하향, 수직 좌향 및 수평 상향과 같은 모드들을 포함할 수 있다. 이러한 상이한 모드들 각각은 예측 가능한 블록들이 동일한 코딩된 유닛들 내에서 인접한 데이터에 기반하여 생성되는 방식을 정의한다. 인트라 코딩 모드들은 또한 수직 플러스 수평, DC 플러스 수직, DC 플러스 수평, 직교 좌하향 플러스 수평, 직교 우하향 플러스 수직, 수직우향 플러스 수평, 수평하향 플러스 수직, 수직 좌향 플러스 수평 및 수평 상향 플러스 수직과 같은 전술한 모드들의 조합을 정의할 수도 있다. 이러한 조합들의 세부내용은 여기에 참조로서 통합된 다음의 문서에 설명된다: Y. Ye 및 M. Karczewicz, "Improved Intra Coding," ITU-T Q.6/SG16 VCEG, C257, 제네바, 스위스, 2007년 6월. 임의의 경우에서, 본 명세서는 임의의 특정한 수의 모드들 또는 모드들의 타입에 제한되는 것은 아니다. 기본적으로 예측가능한 모드는 인코딩된 블록의 크기, 예측가능한 블록의 크기, 사용된 변환의 크기, 및 예측가능한 블록의 데이터가 위치하거나 생성되는 방법을 정의할 수 있다.
도 2는 비디오 블록들을 2-차원 블록 포맷으로부터 1-차원 벡터 포맷으로 스캔하기 위해 본 명세서의 기술들을 수행하는 적응형 스캔 유닛(45)을 포함하는 비디오 인코더(50)의 예시를 도시하는 블록 다이어그램이다. 도 2에 도시된 바와 같이, 비디오 인코더(50)는 인코딩될 비디오 프레임 내의 현재 비디오 블록을 수신한다. 도 2의 예시에서, 비디오 인코더(50)는 예측 유닛(32), 참조 프레임 스토어(34), 블록 변환 유닛(38), 양자화 유닛(40), 역 양자화 유닛(42), 역 변환 유닛(44), 적응형 스캔 유닛(45) 및 엔트로피 인코딩 유닛(46)을 포함한다. 디블록킹(deblocking) 필터(미도시)는 블록화된 인공물(blockiness artifact)들을 제거하기 위해 필터 블록 경계에 포함될 수 있다. 비디오 인코더(50)는 또한 합산기(summer; 48) 및 합산기(51)를 포함한다.
인터 코딩에 대하여, 예측 유닛(32)은 하나 이상의 비디오 참조 프레임들에서 다양한 블록들로 인코딩될 비디오 블록을 비교한다. 인터 코딩에 대하여, 예측 유닛(32)은 동일한 코딩된 유닛의 이미 코딩된 인접한 비디오 블록들로부터 인코딩될 비디오 블록을 예측한다. 예측된 데이터는 참조 프레임 스토어(34)로부터 검색될 수 있으며, 이는 이전에 인코딩된 블록들로부터 재구성된 비디오 블록들을 저장하는 임의의 타입의 메모리 또는 데이터 저장 장치를 포함할 수 있다. 예측 유닛(32)은 예측 모드들 및 예측 벡터들을 포함할 수 있으며, 이는 현재 비디오 블록을 코딩하기 위해 사용되는 예측 블록들을 식별하기 위해 사용될 수 있는 신택스(syntax) 엘리먼트들을 포함할 수 있다. 인트라 코딩에 대하여, 예측 유닛(32)은 공간 예측 유닛을 포함할 수 있으며, 인터 코딩에 대하여, 예측 유닛(32)은 모션 추정 및 모션 보상 유닛들을 포함할 수 있다.
비디오 인코더는 예측 유닛(32)에 의해 생산된 예측 블록을, 인코딩되는 오리지널 비디오 블록으로부터 감산(subtract)함으로써 잔여 비디오 블록을 형성할 수 있다. 결합기(48)는 이 감산 종작을 수행하는 유닛 또는 모듈을 나타낸다. 블록 변환 유닛(38)은 이산 코사인 변환(DCT) 또는 개념적으로 유사한 변환과 같은 변환을 잔여 블록에 적용하여 잔여 변환 블록 계수들을 포함하는 비디오 블록을 생산할 수 있다. 블록 변환 유닛(38)은, 예를 들어, H.264 표준에 의해 정의되는 다른 변환들을 수행할 수 있으며, 이는 개념적으로 DCT와 유사하다.
양자화 유닛(40)은 비트 레이트를 추가로 감소시키기 위해 잔여 변환 계수들을 양자화한다. 양자화 유닛(40)은, 예를 들어, 계수들 각각을 코딩하기 위해 사용되는 비트들의 수를 제한할 수 있다. 양자화 이후에, 적응형 스캔 유닛(45)은 양자화된 계수 블록을 2-차원 표현으로부터 1-차원 벡터로 스캐닝한다. 그리고 나서, 스캐닝 프로세스 이후에, 엔트로피 코딩 유닛(46)은 데이터를 추가로 압축하기 위해 CAVLC 또는 CABAC와 같은 엔트로피 코딩 방법에 따라 양자화된 변환 계수들을 인코딩한다. 적응형 스캔 유닛(45)에 의해 수행되는 적응형 스캐닝은, 본 명세서에 부합하도록, 아래에서 더 자세히 개시된다.
간략하게, 적응형 스캔 유닛(45)은 복수의 예측 모드들 각각에 대한 비디오 블록의 계수 값들과 연관된 통계치들을 저장하고, 상기 예측 모드들 각각과 연관되는 상기 비디오 블록들을 카운트하고, 상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 상기 비디오 블록들의 계수 값들을 스캐닝하고, 상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 주어진 스캔 순서를 평가한다. 그리고 나서, 이 스캐닝 프로세스 이후에, 엔트로피 코딩 유닛은 엔트로피 코딩 방법에 따라 양자화된 변환 계수들을 인코딩한다.
적응형 스캔 유닛(45)은 상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드들 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 새로운 스캔 순서를 결정한다. 또한 적응형 스캔 유닛(45)은 주어진 스캔 순서가 조정되면 임계값을 조정할 수 있다. 적응형 스캔 유닛(45)에 의해 저장되는 통계치들은 계수 값들이 제로 또는 비-제로일 확률들을 표시하는 통계치들을 포함할 수 있다. 일 예시로서, 적응형 스캔 유닛(45)은 예측 모드들 중 주어진 하나의 통계치들에 기반하여 예측 모드들 중 주어진 하나와 연관되는 새로운 스캔 순서를 결정하고, 새로운 스캔 순서가 이전의 스캔 순서와 동일한지 여부에 기반하여 임계값을 증가 또는 감소한다. 예를 들어, 새로운 스캔 순서가 이전의 스캔 순서와 동일하면, 적응형 스캔 유닛(45)은 예측 모드들 중 주어진 하나의 임계값을 (예를 들어, 상한 제한과 관련하여 인자 2만큼) 증가한다. 유사하게, 새로운 스캔 순서가 이전의 스캔 순서와 상이한 경우, 적응형 스캔 유닛(45)은 상기 예측 모드들 중 주어진 하나의 임계값을 (예를 들어, 하한 제한과 관련하여 인자 2만큼) 감소한다. 예측 모드들 중 주어진 하나의 스캔 순서를 결정하면, 적응형 스캔 유닛(45)은 예측 모드들 중 주어진 하나와 연관되는 카운트 값을 재-설정할 수 있다. 계수 블록들이 1-차원 포맷으로 스캐닝되면, 엔트로피 인코딩 유닛(46)은 양자화된 변환 계수들을 엔트로피 인코딩할 수 있다.
엔트로피 인코딩 유닛(46)에 의한 엔트로피 인코딩 이후에, 인코딩된 비디오는 다른 장치로 전송되거나 향후 전송 또는 검색을 위해 기록될 수 있다. 역 양자화 유닛(42) 및 역 변환 유닛(44)은 픽셀 도메인에서 잔여 블록들을 재구성하기 위해 각각 역 양자화 및 역 변환을 적용한다. 합산기(51)는 참조 프레임 스토어(34)에 대해 저장된 재구성된 비디오 블록을 생산하기 위해 재구성된 잔여 블록을 예측 유닛(32)에 의해 생산된 예측 블록에 더한다. 요구되는 경우, 재구성된 비디오 블록은 또한 참조 프레임 스토어(34)에 저장되기 이전에 디블록킹 필터 유닛(미도시)을 통할 수 있다. 재구성된 비디오 블록은 이어지는 비디오 프레임의 블록을 인터-코딩하거나 동일하게 코딩된 유닛 내의 인접한 장래 블록을 인트라-코딩하기 위한 참조 블록으로서 예측 유닛(32)에 의해 사용될 수 있다.
도 3은 여기에 설명된 방법으로 인코딩된 비디오 시퀀스를 디코딩하는 비디오 디코더(60)의 예시를 도시한 블록 다이어그램이다. 비디오 디코더(60)는 도 2의 엔트로피 인코딩 유닛(46)에 의해 수행된 인코딩의 상호적(reciprocal) 디코딩기능을 수행하는 엔트로피 디코딩 유닛(52)을 포함한다. 비디오 디코더(60)는 또한 도 2의 적응형 스캔 유닛(45)에 의해 수행되는 스캐닝에 상호적인 역 스캐닝을 수행하는 적응형 스캔 유닛(55)을 포함한다
비디오 디코더(60)는 비디오프레임 내의 블록들의 인트라- 및 인터-디코딩을 수행할 수 있다. 도 3의 예시에서, 비디오 디코더(60)는 예측 유닛(54), 역 양자화 유닛(56), 역 변환 유닛(58), 및 참조 프레임 스토어(62)를 포함한다. 비디오 디코더(60)는 또한 합산기(64)를 포함한다. 선택적으로, 비디오 디코더(60)는 합산기(64)의 출력을 필터링하는 디블록킹 필터(미도시)를 포함할 수 있다.
인트라 코딩에 대하여, 예측 유닛(54)은 공간 예측 유닛을 포함하고, 인터 코딩에 대하여, 예측 유닛(54)은 모션 보상 유닛을 포함할 수 있다. 역 양자화 유닛(56)은 역 양자화를 수행하며, 역 변환 유닛(58)은 비디오 블록들의 계수들을 픽셀 도메인으로 변화하기 위해 역 변환을 수행한다. 합산기는 재구성된 블록을 생성하기 위해 역 변환 유닛(58)으로부터의 재구성된 잔여 블록과 유닛(54)으로부터의 예측 블록을 결합하고, 이는 참조 프레임 스토어(62)에 저장된다. 요구되는 경우, 재구성된 비디오 블록은 또한 참조 프레임 스토어(62)에 저장되기 이전에 디블록킹 필터 유닛(미도시)을 통할 수 있다. 디코딩된 비디오는 참조 프레임 스토어(62)의 출력이고, 이어지는 예측에 사용하기 위해 예측 유닛(54)으로 피드백될 수 있다.
언급된 바와 같이, 엔트로피 디코딩 유닛(52)은 도 2의 엔트로피 인코딩 유닛(46)에 의해 수행된 인코딩의 상호적 디코딩 기능을 수행하며, 적응형 스캔 유닛(55)은 그리고 나서, 도 2의 적응형 스캔 유닛(45)에 의해 수행된 것과 상호적인 스캐닝을 수행한다. 도 2의 적응형 스캔 유닛(45)과 같이, 도 3의 적응형 스캔 유닛(55)은 복수의 예측 모드들 각각에 대한 비디오 블록들의 계수 값들과 연관되는 통계치들을 저장하고, 상기 예측 모드들 각각과 연관되는 상기 비디오 블록들을 카운트하고, 상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 상기 비디오 블록들의 계수 값들을 스캐닝하고, 상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 주어진 스캔 순서를 평한다. 기본적으로, 적응형 스캔 유닛(55)은 적응형 스캔 유닛(45)과 유사한 기능을 수행하나, 반대 방향으로 그것을 수행한다. 따라서, 적응형 스캔 유닛(45)은 엔트로피 코딩 이전에 계수 블록들을 2-차원 포맷으로부터 1-차원 포맷으로 스캔하며, 적응형 스캔 유닛(55)은 엔틀로피 디코딩 이후에 계수 블록들을 1-차원 포맷으로부터 2-차원 포맷으로 스캔한다.
도 4는 4×4 계수 블록의 지그-재그 스캐닝을 도시한 개념적인 다이어그램이다. 도 5는 8×8 계수 블록의 지그-재그 스캐닝을 도시한 개념적인 다이어그램이다. 도 4 및 5에 도시된 지그-재그 스캐닝은 코딩된 유닛에 대한 코딩 프로세시의 시작에서 적응형 스캐닝 유닛(45)에 의해 수행될 수 있다. 그러나, 아래에 더 자세하게 설명될 바와 같이, 스캐닝 순서는 이미 코딩된 계수 블록들과 연관된 실제 통계치들에 기반하여 적응할 수 있다.
도 4 및 5에 도시된 이러한 지그-재그 스캐닝에 대한 스캐닝 순서는 블록들(80 및 90)을 통한 화살표를 따르며, 계수들은 스캐닝 순서로 라벨링되었다. 특히, 도 4 및 5에 도시된 수치 값들은 시퀀셜 1-차원 벡터 내의 계수들의 위치를 표시하며, 계수들의 값을 나타내지 않는다. 초기화에서, 본 명세서의 기술들은 임의의 특정한 스캐닝 순서 또는 기술로 제한되지 않는다. 예를 들어, 본 명세서에서 사용되는 초기 스캐닝 순서들은 도 4 및 5에 도시된 지그-재그 스캐닝 순서들일 수 있다. 또한, 선택적으로, 본 명세서에 사용되는 초기 스캐닝 순서들은 복수의 예측 모드들에 대해 특별히 트레이닝될 수 있는 고정된 스캐닝 순서들의 세트일 수 있다. 지그-재그 스캐닝은 꽤 일반적이며, 본 명세서의 적응형 스캐닝의 설명을 위한 좋은 시작점을 제공한다. 또한, 본 명세서에 따라, 스캐닝 순서는 이미 코딩된 계수 블록들과 연관된 실제 통계치들에 기반하여, 시간에 따라 적응한다. 각각의 코딩된 유닛에 대해, 스캐닝 순서는 지그-재그 스캐닝과 같은 일반적인 스캐닝 순서로 시작할 수 있으나, 그 코딩된 유닛 내의 상이한 예측 모드들에서 코딩된 계수 블록들에 대해 누적된 통계치들을 이용하여 조정한다. 그러나, 전술한 바와 같이, 지그-재그 스캐닝은 적응형 스캐닝을 위한 유일하게 가능한 시작점이 아니다. 수평 스캐닝, 수직 스캐닝 또는 임의의 초기 스캐닝 기술들이 여기에 설명된 적응형 스캐닝을 위한 시작점으로서 사용될 수 있다.
도 6은 특정한 예측 모드의 블록들과 연관된 통계치들의 예시적인 세트(S1-S16) 및 본 명세서의 기술들과 부합하는 알고리즘을 도시한 개념 다이어그램이다. 도시된 바와 같이, 모드 X의 비디오 블록의 초기 스캐닝 순서는 다음과 같은 지그-재그 스캐닝 프로세스에 의해 정의될 수 있다:(S1, S2, S5, S9, S6, S3, S4, S7, S10, S13, S14, S11, S8, S12, S15, S16). 이 경우, 넘버링된 계수들은 도 6의 통계치 블록(69)에서 넘버링된 통계치들에 대응한다. Count(mode X)는 주어진 코딩된 유닛에 대해 모드 X에서 코딩된 블록의 개수의 카운트를 정의한다. Count(mode X)의 각각의 증분을 이용하여, 통계치들(S1-S16)은 모드 X의 새로운 블록에 의해 영향을 받은 바와 같이, 계수들의 통계치를 반영하기 위해 변화할 수 있다.
도 6의 알고리즘(60)은 매크로블록 경계들과 만나는 경우와 같이 코딩된 유닛(예를 들어, 프레임 또는 슬라이스)의 코딩에서 미리 정의된 업데이트 인터벌에서 호출(invoke)된다. 본 명세서에 따르면, 알고리즘(60)이 호출되면, Count(mode X)가 미리-결정된 임계값보다 크거나 같은 경우, 스캔 유닛(45 또는 55)(도 2 또는 3)은 통계치들(S1-S16)에 기반하여 스캔 순서를 선택하고, Count(mode X)를 재설정한다. 스캔 순서가 변화하면, 스캔 유닛(45 또는 55)은 임계값을 하향조정하고, 스캔 순서가 변화하지 않으면, 스캔 유닛(45 또는 55)은 임계값을 상향조정할 수 있다.
임계값은 기본적으로, 스캔 순서의 변화의 발생을 제한할 수 있는 메커니즘이며, 이는 일반적으로, 계산적으로 집중적인 정렬 프로세스를 요구하며, 스캔 순서를 평가하기 이전에 비디오 블록의 주어진 모드에 대해 충분한 통계치들이 누적되었음을 보장할 수 있다. 특히, 새로운 스캔 순서가 주어진 모드의 카운트가 주어진 모드의 임계값을 만족하는 경우에만 비디오 블록의 주어진 모드에 대해 선택될 수 있다. 또한, 임계값은 새로운 스캔 순서가 이전 스캔 순서와 상이한 경우에 스캔 순서 평가의 발생을 가속하기 위해 또는 새로운 스캔 순서가 이전의 스캔 순서와 동일하게 유지되는 경우에 스캔 순서 평가의 발생을 감소시키기 위해 시간을 통해 조정된다. 이 방법으로, 복수의 예측 모드들 각각에 대해, 여기에 설명된 기술들은 스캔 순서가 안정적이고 바람직한 순서에 도달할 때까지 코드 유닛의 시작에서 스캔 순서 평가를 더 빈번하게 수행할 수 있고, 그리고 스캔 순서의 변화의 확률이 감소할 경우 스캔 순서 선택을 덜 빈번하게 수행할 수 있다.
도 7은 본 명세서에 부합하는 가정적인 예시를 도시한 개념 다이어그램이다. 이 예에서, 계수들은 c1-c16으로서 아이템들(71A 및 71B)로 라벨링된다. 실제 계수 값들은 블록1(72), 블록2(73), 블록3(74) 및 블록4(75)에서 도시된다. 블록들 1-4는 동일한 예측 모드와 연관되는 블록들을 포함한다. 블록들 1-4는 순차적으로 코딩된다.
초기에, 지그-재그 스캐닝이 사용될 수 있다. 이 경우에, 블록들은 다음 순서들로 스캔될 수 있으며, 이는 도 4의 설명과 부합한다: (c1, c2, c5, c9, c6, c3, c4, c7, c10, c13, c14, c11, c8, c12, c15, c16) 계수 블록들의 통계치들이 모두 0으로 초기화되었다고 가정하면, 통계치들 1(76)은 블록 1의 통계치들을 (예를 들어, 비-제로인 임의의 계수들에 대해 1 값을, 그리고, 제로 값을 가지는 임의의 계수들에 대해 제로 값을 이용하여) 나타낸다. 통계치들 2(77)는 블록들 1 및 2의 결합된 통계치들을 (예를 들어, 계수 위치가 블록들(1 및 2)에서 1 또는 제로인지 여부를 표시하는 정규화된 확률값들을 이용하여) 나타낸다. 이 경우, 위치 c6의 정규화된 가능성은 0.5이며, 왜냐하면 블록 1은 이 위치에서 비-제로 계수들을 가지나, 블록 2는 이 위치에서 제로 값 계수를 가지기 때문이다. 통계치(78)는 정규화된 확률들로서 블록들(1, 2 및 3)의 결합된 통계치들을 나타내며, 통계치들 4(79)는 정규화된 확률들로서 블록들(1, 2, 3 및 4)의 결합된 통계치들을 나타낸다. 정규화된 확률들은 모든 주어진 위치에 대한 0 또는 1 값의 평균을 포함할 수 있으며, 1의 값은 그 블록의 그 위치가 비-제로 계수를 정의하는 경우 블록의 특정 위치에 대해 주어진다. 전술한 바와 같이, 지그-재그 스캔은 초기 스캐닝 순서로서 사용되고, 계수 블록들의 통계치들은 모두 제로로 초기화된다. 이러한 초기화들은 단지 예로서 주어지며, 스캐닝 순서 및 계수 통계치들의 선택적인 초기화가 사용될 수 있다.
도 7의 예에서, 하나는 임계값이 4의 값으로 설정되었다고 가정될 수 있다. 이 경우에 네 번째 블록(75)을 코딩하면, 미리 설정된 업데이트 인터벌에 도달하면(예를 들어, 매크로블록 경계에 도달하면), 4개의 블록들의 카운트는 임계값 4를 만족하는 것으로 결정된다. 이 경우에, 소팅 알고리즘이 호출되며, 스캔 유닛(45)(도 2)은 통계치들 4(79)에 기반하여 새로운 스캔 순서를 정의할 수 있다. 따라서, 새로운 스캔 순서는 다음과 같다: (c1, c5, c9, c2, c13, c6, c3, c4, c7, c10, c14, c11, c8, c12, c15, c16) 특히 스캐닝 순서는 초기 스캔 순서(예를 들어, 지그-재그 스캐닝)로부터 1-차원 벡터의 시작에서 비-제로 계수들을 그리고, 제로 계수들을 끝으로 장려(promote)하는 새로운 스캔 순서로 변화시킨다. 예를 들어, c5 및 c9에서의 확률이 통계치들 4(79)에서의 c2에서의 확률보다 높기 때문에, c5 및 c9는 둘 다 새로운 스캐닝 순서에서 c2이전에 스캐닝 될 수 있다. 직교 차원 및 수직 차원 사이를 동일하게 교호(alternate)하는 지그-재그 스캐닝과 달리, 새로운 스캔 순서는 직교 차원에 더 강한 지향성을 보여준다. 즉, 새로운 스캔 순서가 수평 차원에서 계수들보다 직교 차원에서 계수들을 통해 더 빠르게 통과하며, 이는 주어진 예측 모드에서 코딩된 비디오 블록들 1-4(72, 73, 74, 75)의 계수들의 통계적 분배에 부합한다. 따라서, 스캔 순서를 정의하기 위해 지난 통계치들을 이용함으로써, 본 명세서의 기술들은 스캐닝된 1-차원 벡터의 시작 근처에 비-제로 계수들의 그룹화를 그리고, 스캐닝된 1-차원 벡터의 끝 부분 근처에 제로 값 계수들의 그룹화를 장려할 수 있다. 이는, 차례로, 엔트로피 코딩 동안에 달성될 수 있는 압축의 레벨을 개선할 수 있다.
또한 임계값들이, 스캔 순서 변화의 발생을 제한하고, 이는 이러한 변화들이 계산적으로 집중적인 정렬 프로세스를 요구하기 때문이며, 충분한 통계치들이 스캔 순서를 평가하기 이전에 비디오 블록의 주어진 모드에 대해 누적되는 것을 보증하는 것을 돕도록 정의된다. 이 경우, 새로운 스캔 순서는 주어진 모드의 카운트가 주어진 모드의 임계값을 만족하는 경우에만 비디오 블록의 주어진 모드에 대해 선택될 수 있다. 임계값은 시간에 따라 상향 또는 하향 (상향 및 하향 경계에 따라) 조정할 수 있다. 예를 들어, 스캔 순서 평가가 스캔 순서 변화를 야기하면, 임계값은 이어지는 스캔 순서가 평가가 더 빠르게 발생하도록 감소될 수 있다. 이 경우에, 스캔 순서가 변화하기 때문에, 스캔 순서를 안정된 상태로 이끄는 장래의 변화들의 발생을 빠르게 하는 것이 바람직할 수 있다. 반면에, 스캔 순서 평가가 스캔 순서 변화를 야기하지 않는 경우, 임계값은 이어지는 스캔 순서 평가가 발생되는 것이 더 오래 걸리게 하기 위해 증가할 수 있다. 이 경우에, 스캔 순서가 변화하지 않았기 때문에, 가능한 스캔 순서 변화의 평가 빈도를 감소시키는 것이 바람직할 수 있는데, 이는 평가들이 프로세싱 자원들의 사용을 요구하기 때문이다. 이러한 타입의 임계값 조정들은 스캔 순서가 안정하고 바람직한 상태에 도달할 때까지 스캔 순서 변화들을 더 빈번하게 평가할 수 있으며, 그리고 나서 변화가 덜 가능해지면, 스캔 순서 평가의 빈도를 제한할 수 있다.
도 8은 본 명세서와 부합하는 코딩(즉, 인코딩 또는 디코딩) 기술을 도시한 플로우 다이어그램이다. 도 8은 비디오 인코더(50)의 관점에서 도시되었으며, 따라서, 엔트로피 코딩 단계(단계 85)가 스캐닝 단계(단계 83) 이후이다. 비디오 디코더(60)의 관점에서, 엔트로피 코딩 단계(단계 85)는 스캐닝 단계(단계 83)에 선행할 것이다. 예를 들어, 비디오 디코더(60)의 관점에서, 도 8에 도시된 단계들은, 다음 순서(단계 85, 단계 83, 단계 81, 단계 82, 단계 84)로 수행될 수 있다. 단순성을 위하여, 도 8은 비디오 인코더(50)의 관점으로부터 아래에 설명된다.
도 8에 도시된 바와 같이, 적응형 스캔 유닛(45)은 복수의 예측 모드들 각각에 대한 복수의 예측 모드들 각각에 대한 비디오 블록들의 계수 값들과 연관되는 통계치들을 업데이트 하고(81), 상기 예측 모드들 각각과 연관되는 상기 비디오 블록들을 카운트(82)한다. 적응형 스캔 유닛(45)은 그리고 나서, 상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 계수들의 2-차원 블록들로부터 계수들의 1-차원 계수 벡터들로 계수 값들을 스캔하고(83) 상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 주어진 스캔 순서를 평가한다(84). 그리고 나서, 이 스캐닝 프로세스 이후에, 엔트로피 인코딩 유닛(46)은 1-차원 계수 벡터들을 엔트로피 코딩 방법에 따라 인코딩한다(85).
적응형 스캔 유닛(45)은 상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드들 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 새로운 스캔 순서를 결정할 수 있다. 또한, 적응형 스캔 유닛(45)은 주어진 스캔 순서를 결정하면 임계값을 조정할 수 있다. 본 명세서에 설명된 바와 같이, 적응형 스캔 유닛(45)에 저장된 통계치들은 계수 값들이 제로 또는 비-제로일 확률들을 표시하는 통계치들 도는 계수 값들의 확률들을 표시하는 가능한 다른 타입의 통계치들을 포함할 수 있다. 일 예에서, 적응형 스캔 유닛(45)은 예측 모드들 중 주어진 하나의 통계치들에 기반하여 예측 모드들 중 주어진 하나와 연관되는 새로운 스캔 순서를 결정하고, 새로운 스캔 순서가 이전의 스캔 순서와 동일한지 여부에 기반하여 임계값을 증가 또는 감소한다.
예를 들어, 새로운 스캔 순서가 이전의 스캔 순서와 동일하면, 적응형 스캔 유닛(45)은 예측 모드들 중 주어진 하나의 임계값을 (예를 들어, 상한 제한과 관련하여 인자 2만큼) 증가한다. 유사하게, 새로운 스캔 순서가 이전의 스캔 순서와 상이한 경우, 적응형 스캔 유닛(45)은 상기 예측 모드들 중 주어진 하나의 임계값을 (예를 들어, 하한 제한과 관련하여 인자 2만큼) 감소한다. 새로운 스캔 순서를 결정하면, 적응형 스캔 유닛(45)은 예측 모드들 중 주어진 하나와 연관되는 카운트 값을 재-설정할 수 있다. 1-차원 포맷으로 스캐닝되면, 엔트로피 인코딩 유닛(46)은 계수 벡터들을 엔트로피 인코딩할 수 있다.
도 9는 비디오 인코더(50)(도 2)의 스캔 유닛(45) 및 비디오 디코더(60)(도 3)의 스캔 유닛(55)에 의해 수행될 수 있는 적응형 스캐닝 프로세스를 도시한 예시적인 플로우 다이어그램이다. 도 9의 프로세스는 각각의 코딩된 유닛에 대해 반복될 수 있다. 또한, 코딩된 유닛들은 비디오 시퀀스의 개별 프레임들, (슬라이스들과 같은) 프레임들의 부분, 또는 비디오 시퀀스의 다른 독립적으로 디코딩가능한 유닛을 포함할 수 있다.
도 9에 도시된 바와 같이, 스캔 유닛(45)은 새로운 코딩된 유닛에 대해 자신의 스캐닝 순서를 초기화한다(91). 다시 말해서, 프레임 또는 슬라이스의 시작에서, 스캐닝 순서는 초기화된다. 모든 모드에 대한 카운트 값들은 제로로 설정되며, 임계값들은 4×4 블록들에 대응하는 모드들에 대해 4 및 8×8 블록들에 대응하는 모드에 대해 2와 같은, 초기 값으로 설정된다. 새로운 코딩된 유닛의 시작에서, 모든 모드들에 대한 계수 블록들의 통계치들이 모든 제로 또는 경험적인 트레이닝에 기반한 다른 통계치들로 또한 초기화된다. 스캔 유닛(45)은 자신의 초기 스캐닝 순서(예를 들어, 지그-재그 스캐닝)를 적용한다. 이렇게 함으로써, 스캔 유닛(45)은 스캐닝된 블록들에 대해 식별되는 각각의 모드에 대한 블록 계수 통계치들 및 증가 카운트(모드)를 수집한다(92). 이 프로세스는 미리 설정된 업데이트 인터벌이 도달될 때까지 계속된다(93). 예를 들어, 미리 설정된 업데이트 인터벌은 매크로블록 경계 또는 다른 미리-결정된 인터벌에 대응할 수 있다.
미리-설정된 업데이트 인터벌이 식별되면("예" 93), 스캔 유닛(45)은 스캔 순서를 평가한다. 특히, 스캔 유닛(45)은 count(mode)가 임계값(thresh(mode)를 만족하는지 여부를 결정한다(94). 그렇지 않은 경우("아니오" 94), 스캔 유닛(45)은 예를 들어, 모든 모드들이 실험될 때까지 다른 모드들을 고려한다(100). 임의의 주어진 모드에 대해, count(mode)가 임계값을 만족하면("예" 94), 스캔 유닛(45)은 정렬 함수를 호출하고, 이는 그 모드에 대한 누적된 통계치들에 기반하여 스캔 순서를 업데이트한다(95). 스캔 순서가 스캔 순서의 이 업데이트로 인하여 변화하는 경우("예" 96), 스캔 유닛(45)은 그 모드에 대한 thres(mode)를 감소한다(97). 스캔 순서가 스캔 순서의 업데이트로 인해 변화하지 않은 경우("아니오" 96), 스캔 유닛(45)은 그 모드에 대한 thres(mode)를 증가한다(98). 예로서, 임계값들의 이러한 증가들(98) 또는 감소들(97)은 하나 및 상한 경계와 관련하여 인자 2만큼(즉 2로 곱하거나 2로 나눔) 변화할 수 있다. 하한 및 상한 경계는 4×4 블록들에 대응하는 모드에 대해 4로 설정되고 8×8 블록들에 대응하는 모드에 대해 2로 설정된다. 이 예에서, 초기 임계값들은 초기화 이후에 정렬을 가능한 빠르게 호출하기 위해 낮은 임계값으로 설정될 수 있다.
주어진 모드에 대한 스캔 순서가 업데이트되면(96) 그 모드에 대한 count(mode)는 제로로 재설정된다(99). 프로세스는 그리고나서 추가적인 모드들이 시험될 필요가 있는지 여부를 결정한다. 프로세스는 주어진 코딩된 유닛(예를 들어, 프레임 또는 슬라이스)이 코딩되는 동안 계속된다. 즉, 새로운 초기화(91)는 다음 코딩된 유닛이 다가오는 경우 발생할 수 있다.
본 명세서의 기술들은 무선 핸드셋, 집적 회로(IC) 및 IC들의 세트(즉, 칩셋)을 포함하는 널리 다양한 디바이스들 또는 장치들로 실현될 수 있다. 임의의 컴포넌트들, 모듈들 또는 유닛들은 기능적 양상들을 강조하기 위해 제공되어 설명된 것이고, 상이한 하드웨어 유닛들에 의한 실현을 필수적으로 요구하지 않는다.
따라서, 여기에 설명된 기술들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합을 통해 구현될 수 있다. 모듈들 또는 컴포넌트들로 설명된 임의의 특징들은 통합된 로직 장치에서 함께 구현되거나 이산적으로 분산되나 상호작동가능한 논리 장치들로 구현될 수 있다. 소프트웨어로 구현되는 경우, 상기 기능들은 컴퓨터 판독가능한 매체 상에 하나 이상의 명령들 또는 코드로서 저장되거나, 또는 이들을 통해 전송될 수 있다. 컴퓨터-판독가능한 데이터 저장 매체는 컴퓨터 프로그램 물건의 일부를 형성할 수 있으며, 이는 패키징 물체들을 포함할 수 있다. 컴퓨터-판독가능한 매체는, 동기화 동적 랜덤 액세스 메모리(SDRAM)과 같은 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 비-휘발성 랜덤 액세스 메모리(NVRAM), 전기적으로 소거가능한 프로그램어블 판독-전용 메모리(EEPROM), FLASH 메모리, 자성 또는 광학 데이터 저장 매체 등을 포함할 수 있다. 이 기술들은 추가적으로 또는 선택적으로 컴퓨터에 의해 액세스 되고 판독되고 그리고/또는 실행될 수 있는 명령들 또는 데이터 구조들의 형태로 통신 코드를 전달하는 컴퓨터-판독가능한 통신 매체의 적어도 일부에 의해 실현될 수 있다.
코드는 하나 이상의 디지털 신호 프로세서(DSP)들, 범용 마이크로프로세서들, 주문형 반도체(ASIC)들, 필드 프로그램어블 게이트 어레이(FPGA)들, 또는 다른 집적 또는 이산 논리 회로와 같은 하나 이상의 프로세서들에 의해 실행될 수 있다. 따라서, "프로세서"라는 용어는, 여기서 사용된 바와 같이, 여기에 설명된 기술들의 구현에 적합한 임의의 전술한 구조 또는 임의의 다른 구조를 지칭할 수 있다. 또한, 임의의 양상들에서, 여기에 설명된 기능들은 인코딩 및 디코딩 또는 결합된 비디오 인코더-디코더(CODEC)로 결합되어 구성되는 전용 소프트웨어 또는 하드웨어 모듈들 내에서 제공될 수 있다. 또한, 기술들은 하나 이상의 회로들 또는 논리 엘리먼트들에서 완전하게 구현될 수 있다.
본 명세서의 다양한 양상들이 설명되었다. 기술들은 변환된 비디오 블록들의 변환된 계수들의 스캐닝의 목적으로 설명되었으나, 비디오 블록들의 다른 타입의 계수들의 스캐닝에 적용될 수도 있다. 예를 들어, 픽셀 값들 또는 비디오 블록들과 연관된 다른 타입의 비-변환된 계수들 또는 값들이 구현된다면, 본 명세서의 기술들은 이러한 스캐닝에 적용할 수 있다. 이러한 및 다른 양상들은 다음의 청구항의 범위 내에 존재한다.

Claims (58)

  1. 비디오 블록들의 계수들을 코딩하는 방법으로서,
    복수의 예측(prediction) 모드들 각각에 대한 상기 비디오 블록들의 계수 값들과 연관되는 통계치들을 저장(store)하는 단계;
    상기 예측 모드들 각각과 연관되는 상기 비디오 블록들을 카운트(count)하는 단계;
    상기 예측 모드들 각각에 대해 정의된 스캔 순서(scan order)들에 기반하여 상기 비디오 블록들의 계수 값들을 스캐닝하는 단계;
    상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드들 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 주어진 스캔 순서를 평가하는 단계; 및
    상기 계수 값들을 엔트로피 코딩(entropy coding)하는 단계를 포함하는, 비디오 블록들의 계수들을 코딩하는 방법.
  2. 제 1 항에 있어서,
    상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드들 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 새로운 스캔 순서를 결정하는 단계를 더 포함하는, 비디오 블록들의 계수들을 코딩하는 방법.
  3. 제 2 항에 있어서,
    상기 예측 모드들 중 주어진 하나의 주어진 스캐닝 순서를 조정할 때 상기 예측 모드들 중 주어진 하나의 임계값을 조정하는 단계를 더 포함하는, 비디오 블록들의 계수들을 코딩하는 방법.
  4. 제 1 항에 있어서,
    상기 통계치들을 저장하는 단계는 상기 복수의 예측 모드들 각각에 대해:
    상기 계수 값들이 제로 또는 비-제로일 확률들을 표시하는 통계치들을 저장하는 단계를 포함하는, 비디오 블록들의 계수들을 코딩하는 방법.
  5. 제 1 항에 있어서,
    상기 예측 모드들 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 새로운 스캔 순서를 결정하는 단계;
    만약 상기 새로운 스캔 순서가 이전의 스캔 순서와 동일하면, 상기 예측 모드들 중 주어진 하나의 임계값을 증가시키는 단계;
    만약 상기 새로운 스캔 순서가 상기 이전의 스캔 순서와 상이하면, 상기 예측 모드들 중 주어진 하나의 임계값을 감소시키는 단계; 및
    상기 예측 모드들 중 주어진 하나와 연관되는 상기 카운트 값을 재-설정(re-set)하는 단계를 더 포함하는, 비디오 블록들의 계수들을 코딩하는 방법.
  6. 제 1 항에 있어서, 복수의 예측 모드들은 복수의 인트라(intra) 예측 모드들 및 복수의 인터(inter) 예측 모드들을 포함하는, 비디오 블록들의 계수들을 코딩하는 방법.
  7. 제 6 항에 있어서,
    상기 인트라 예측 모드들은, 복수의 4 × 4 (4 by 4) 루마(luma) 인트라 예측 모드들, 복수의 8 × 8 루마 인트라 예측 모드들, 복수의 16 × 16 루마 인트라 예측 모드들 및 복수의 8 × 8 크로마(chroma) 인트라 예측 모드들을 포함하고; 그리고
    상기 인터 예측 모드들은 4 × 4 블록 크기 및 8 × 8 블록 크기에 대응하는 인터 예측 모드들을 포함하는, 비디오 블록들의 계수들을 코딩하는 방법.
  8. 제 1 항에 있어서, 엔트로피 코딩은 CAVLC(variable length coding) 또는 CABAC(context adaptive binary arithmetic coding)을 포함하는, 비디오 블록들의 계수들을 코딩하는 방법.
  9. 제 1 항에 있어서, 픽셀 도메인으로부터 변환된 도메인으로의 상기 비디오 블록들의 변환을 통해 상기 계수 값들을 생성하는 단계를 더 포함하는, 비디오 블록들의 계수들을 코딩하는 방법.
  10. 제 1 항에 있어서, 코딩은 인코딩을 포함하고,
    상기 비디오 블록들의 계수 값들을 스캐닝하는 단계는 상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 계수들의 2-차원 블록들로부터 계수들의 1-차원 벡터들을 생성하는 단계를 포함하고,
    엔트로피 코딩하는 단계는 상기 계수 값들을 스캐닝하는 단계 이후에 상기 1-차원 벡터들을 엔트로피 인코딩하는 단계를 포함하는, 비디오 블록들의 계수들을 코딩하는 방법.
  11. 제 1 항에 있어서, 코딩은 디코딩을 포함하고,
    상기 비디오 블록들의 계수 값들을 스캐닝하는 단계는 상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 계수들의 1-차원 벡터들로부터 계수들의 2-차원 블록들을 생성하는 단계를 포함하고,
    엔트로피 코딩하는 단계는 상기 계수 값들을 스캐닝하는 단계 이전에 상기 1-차원 벡터들을 엔트로피 디코딩하는 단계를 포함하는, 비디오 블록들의 계수들을 코딩하는 방법.
  12. 제 1 항에 있어서, 미리-설정된 업데이트 인터벌에서 상기 예측 모드들 각각에 대해 정의된 상기 스캔 순서들을 시험(examine)하는 단계를 더 포함하는, 비디오 블록들의 계수들을 코딩하는 방법.
  13. 제 1 항에 있어서, 상기 방법은 비디오 시퀀스를 형성(form)하는 복수의 코딩된 유닛들 각각에 대해 반복되며, 상기 방법은,
    상기 방법이 상기 복수의 코딩된 유닛들 각각에 대해 반복되기 이전에 상기 예측 모드들 각각에 대한 상기 스캔 순서들, 통계치들 및 임계값들을 초기화(initialize)하는 단계를 더 포함하는, 비디오 블록들의 계수들을 코딩하는 방법.
  14. 비디오 블록들의 계수들을 코딩하는 장치로서,
    복수의 예측 모드들 각각에 대한 상기 비디오 블록들의 계수 값들과 연관되는 통계치들을 저장하고;
    상기 예측 모드들 각각과 연관되는 상기 비디오 블록들을 카운트하고;
    상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 상기 비디오 블록들의 계수 값들을 스캐닝하고;
    상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드들 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 주어진 스캔 순서를 평가하는 스캔 유닛; 및
    상기 계수 값들을 엔트로피 코딩하는 엔트로피 코딩 유닛을 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  15. 제 14 항에 있어서, 상기 스캔 유닛은,
    상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드들 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 새로운 스캔 순서를 결정하는, 비디오 블록들의 계수들을 코딩하는 장치.
  16. 제 15 항에 있어서, 상기 스캔 유닛은,
    상기 예측 모드들 중 주어진 하나의 주어진 스캐닝 순서를 조정할 때 상기 예측 모드들 중 주어진 하나의 임계값을 조정하는, 비디오 블록들의 계수들을 코딩하는 장치.
  17. 제 14 항에 있어서, 상기 복수의 예측 모드들 각각에 대한 스캔 유닛은,
    상기 계수 값들이 제로 또는 비-제로일 확률들을 표시하는 통계치들을 저장하는, 비디오 블록들의 계수들을 코딩하는 장치.
  18. 제 14 항에 있어서, 상기 스캔 유닛은,
    상기 예측 모드들 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 새로운 스캔 순서를 결정하고;
    만약 상기 새로운 스캔 순서가 이전의 스캔 순서와 동일하면, 상기 예측 모드들 중 주어진 하나의 임계값을 증가시키고;
    만약 상기 새로운 스캔 순서가 상기 이전의 스캔 순서와 상이하면, 상기 예측 모드들 중 주어진 하나의 임계값을 감소시키고; 그리고
    상기 예측 모드들 중 주어진 하나와 연관되는 상기 카운트 값을 재-설정하는, 비디오 블록들의 계수들을 코딩하는 장치.
  19. 제 14 항에 있어서, 상기 복수의 예측 모드들은 복수의 인트라 예측 모드들 및 복수의 인터 예측 모드들을 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  20. 제 19 항에 있어서,
    상기 인트라 예측 모드들은, 복수의 4 × 4 (4 by 4) 루마 인트라 예측 모드들, 복수의 8 × 8 루마 인트라 예측 모드들, 복수의 16 × 16 루마 인트라 예측 모드들 및 복수의 8 × 8 크로마 인트라 예측 모드들을 포함하고; 그리고
    상기 인터 예측 모드들은 4 × 4 및 8 × 8 블록 크기에 대응하는 인터 예측 모드들을 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  21. 제 14 항에 있어서, 상기 엔트로피 코딩 유닛은 CAVLC(variable length coding) 또는 CABAC(context adaptive binary arithmetic coding)을 수행하는, 비디오 블록들의 계수들을 코딩하는 장치.
  22. 제 14 항에 있어서, 픽셀 도메인으로부터 변환된 도메인으로의 상기 비디오 블록들의 변환을 통해 상기 계수 값들을 생성하는 변환 유닛을 더 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  23. 제 14 항에 있어서, 상기 장치는 상기 비디오 블록들을 인코딩하고,
    상기 스캔 유닛은 상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 계수들의 2-차원 블록들로부터 계수들의 1-차원 벡터들을 생성하고, 그리고
    상기 엔트로피 코딩 유닛은 상기 스캔 유닛이 상기 계수 값들을 스캔한 이후에 상기 1-차원 벡터들을 엔트로피 인코딩하는, 비디오 블록들의 계수들을 코딩하는 장치.
  24. 제 14 항에 있어서, 상기 장치는 비디오 블록들을 디코딩하고,
    상기 스캔 유닛은 상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 계수들의 1-차원 벡터들로부터 계수들의 2-차원 블록들을 생성하고, 그리고
    상기 엔트로피 코딩 유닛은 상기 스캔 유닛이 상기 계수 값들을 스캐닝하기 이전에 상기 1-차원 벡터들을 엔트로피 디코딩하는, 비디오 블록들의 계수들을 코딩하는 장치.
  25. 제 14 항에 있어서, 상기 스캔 유닛은 미리-설정된 업데이트 인터벌에서 상기 예측 모드들 각각에 대해 정의된 상기 스캔 순서들을 시험하는, 비디오 블록들의 계수들을 코딩하는 장치.
  26. 제 14 항에 있어서, 상기 스캔 유닛은 비디오 시퀀스를 형성하는 복수의 코딩된 유닛들 각각에 관련된 자신의 저장, 카운트, 스캔 및 평가 동작들을 반복하고, 상기 스캔 유닛은 상기 스캔 유닛이 상기 복수의 코딩된 유닛들 각각에 대한 자신의 저장, 카운트, 스캔 및 평가 동작들을 반복하기 이전에 상기 예측 모드들 각각에 대한 상기 스캔 순서들, 상기 통계치들 및 임계값들을 초기화하는, 비디오 블록들의 계수들을 코딩하는 장치.
  27. 제 14 항에 있어서, 상기 장치는 집적 회로를 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  28. 제 14 항에 있어서, 상기 장치는 마이크로 프로세서를 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  29. 비디오 코딩 장치에서 실행될 때 상기 장치로 하여금 비디오 블록들의 계수들을 코딩하도록 하는 명령들을 포함하는 컴퓨터-판독가능한 매체로서, 상기 명령들은 상기 장치로 하여금,
    복수의 예측 모드들 각각에 대한 상기 비디오 블록들의 계수 값들과 연관되는 통계치들을 저장하고;
    상기 예측 모드들 각각과 연관되는 상기 비디오 블록들을 카운트하고;
    상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 상기 비디오 블록들의 계수 값들을 스캐닝하고;
    상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드들 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 주어진 스캔 순서를 평가하고; 그리고,
    상기 계수 값들을 엔트로피 코딩하도록 하는, 컴퓨터-판독가능한 매체.
  30. 제 29 항에 있어서, 상기 명령들은 상기 장치로 하여금,
    상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드들 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 새로운 스캔 순서를 결정하도록 하는, 컴퓨터-판독가능한 매체.
  31. 제 30 항에 있어서, 상기 명령들은 상기 장치로 하여금,
    상기 예측 모드들 중 주어진 하나의 주어진 스캐닝 순서를 조정할 때 상기 예측 모드들 중 주어진 하나의 임계값을 조정하도록 하는, 컴퓨터-판독가능한 매체.
  32. 제 29 항에 있어서, 상기 복수의 예측 모드들 각각에 대해, 상기 명령들은 상기 장치로 하여금,
    상기 계수 값들이 제로 또는 비-제로일 확률들을 표시하는 통계치들을 저장하도록 하는, 컴퓨터-판독가능한 매체.
  33. 제 29 항에 있어서, 상기 명령들은 상기 장치로 하여금,
    상기 예측 모드들 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 새로운 스캔 순서를 결정하고;
    만약 상기 새로운 스캔 순서가 이전의 스캔 순서와 동일하면, 상기 예측 모드들 중 주어진 하나의 임계값을 증가시키고;
    만약 상기 새로운 스캔 순서가 상기 이전의 스캔 순서와 상이하면, 상기 예측 모드들 중 주어진 하나의 임계값을 감소시키고; 그리고
    상기 예측 모드들 중 주어진 하나와 연관되는 상기 카운트 값을 재-설정하도록 하는, 컴퓨터-판독가능한 매체.
  34. 제 29 항에 있어서, 상기 복수의 예측 모드들은 복수의 인트라 예측 모드들 및 복수의 인터 예측 모드들을 포함하는, 컴퓨터-판독가능한 매체.
  35. 제 34 항에 있어서,
    상기 인트라 예측 모드들은, 복수의 4 × 4 (4 by 4) 루마 인트라 예측 모드들, 복수의 8 × 8 루마 인트라 예측 모드들, 복수의 16 × 16 루마 인트라 예측 모드들 및 복수의 8 × 8 크로마 인트라 예측 모드들을 포함하고; 그리고
    상기 인터 예측 모드들은 4 × 4 블록 크기 및 8 × 8 블록 크기에 대응하는 인터 예측 모드들을 포함하는, 컴퓨터-판독가능한 매체.
  36. 제 29 항에 있어서, 상기 엔트로피 코딩은 CAVLC(variable length coding) 또는 CABAC(context adaptive binary arithmetic coding)을 포함하는, 컴퓨터-판독가능한 매체.
  37. 제 29 항에 있어서, 상기 명령들은 상기 장치로 하여금,
    픽셀 도메인으로부터 변환된 도메인으로의 상기 비디오 블록들의 변환을 통해 상기 계수 값들을 생성하도록 하는, 컴퓨터-판독가능한 매체.
  38. 제 29 항에 있어서, 상기 명령들은 상기 장치로 하여금 상기 비디오 블록들을 인코딩하도록 하고, 상기 명령들은 상기 장치로 하여금,
    상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 계수들의 2-차원 블록들로부터 계수들의 1-차원 벡터들을 생성하고, 그리고
    상기 계수 값들을 스캐닝한 이후에 상기 1-차원 벡터들을 엔트로피 인코딩하도록 하는, 컴퓨터-판독가능한 매체.
  39. 제 29 항에 있어서, 상기 명령들은 상기 장치로 하여금 상기 비디오 블록들을 디코딩하도록 하고, 상기 명령들은 상기 장치로 하여금,
    상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 계수들의 1-차원 벡터들로부터 계수들의 2-차원 블록들을 생성하고, 그리고
    상기 계수 값들을 스캐닝하기 이전에 상기 1-차원 벡터들을 엔트로피 디코딩하도록 하는, 컴퓨터-판독가능한 매체.
  40. 제 29 항에 이어서, 상기 명령들은 상기 장치로 하여금, 미리-설정된 업데이트 인터벌에서 상기 예측 모드들 각각에 대해 정의된 상기 스캔 순서들을 시험하도록 하는, 컴퓨터-판독가능한 매체.
  41. 제 29 항에 있어서, 상기 명령들은 상기 장치로 하여금 비디오 시퀀스를 형성하는 복수의 코딩된 유닛들 각각에 관련된 자신의 저장, 카운트, 스캔 및 평가 동작들을 반복하도록 하고, 상기 명령들은 상기 장치로 하여금, 상기 명령들이 상기 장치로 하여금 상기 복수의 코딩된 유닛들 각각에 대한 자신의 저장, 카운트, 스캔 및 평가 동작들을 반복하기 이전에 상기 예측 모드들 각각에 대한 상기 스캔 순서들, 상기 통계치들 및 임계값들을 초기화하도록 하는, 컴퓨터-판독가능한 매체.
  42. 비디오 블록들의 계수들을 코딩하는 장치로서,
    복수의 예측 모드들 각각에 대한 상기 비디오 블록들의 계수 값들과 연관되는 통계치들을 저장하기 위한 수단;
    상기 예측 모드들 각각과 연관되는 상기 비디오 블록들을 카운트하기 위한 수단;
    상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 상기 비디오 블록들의 계수 값들을 스캐닝하기 위한 수단;
    상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드들 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 주어진 스캔 순서를 평가하기 위한 수단; 및
    상기 계수 값들을 엔트로피 코딩하기 위한 수단을 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  43. 제 42 항에 있어서,
    상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드들 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 새로운 스캔 순서를 결정하기 위한 수단을 더 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  44. 제 43 항에 있어서,
    상기 예측 모드들 중 주어진 하나의 주어진 스캐닝 순서를 조정할 때 상기 예측 모드들 중 주어진 하나의 임계값을 조정하기 위한 수단을 더 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  45. 제 42 항에 있어서,
    상기 통계치들을 저장하기 위한 수단은 상기 복수의 예측 모드들 각각에 대해:
    상기 계수 값들이 제로 또는 비-제로일 확률들을 표시하는 통계치들을 저장하기 위한 수단을 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  46. 제 42 항에 있어서,
    상기 예측 모드들 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 새로운 스캔 순서를 결정하기 위한 수단;
    만약 상기 새로운 스캔 순서가 이전의 스캔 순서와 동일하면, 상기 예측 모드들 중 주어진 하나의 임계값을 증가시키기 위한 수단;
    만약 상기 새로운 스캔 순서가 상기 이전의 스캔 순서와 상이하면, 상기 예측 모드들 중 주어진 하나의 임계값을 감소시키기 위한 수단; 및
    상기 예측 모드들 중 주어진 하나와 연관되는 상기 카운트 값을 재-설정하기 위한 수단을 더 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  47. 제 42 항에 있어서,
    상기 복수의 예측 모드들은 복수의 인트라 예측 모드들 및 복수의 인터 예측 모드들을 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  48. 제 47 항에 있어서,
    상기 인트라 예측 모드들은, 복수의 4 × 4 (4 by 4) 루마 인트라 예측 모드들, 복수의 8 × 8 루마 인트라 예측 모드들, 복수의 16 × 16 루마 인트라 예측 모드들 및 복수의 8 × 8 크로마 인트라 예측 모드들을 포함하고; 그리고
    상기 인터 예측 모드들은 4 × 4 블록 크기 및 8 × 8 블록 크기에 대응하는 인터 예측 모드들을 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  49. 제 42 항에 있어서, 엔트로피 코딩하기 위한 수단은 CAVLC(variable length coding)하기 위한 수단 또는 CABAC(context adaptive binary arithmetic coding)하기 위한 수단을 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  50. 제 42 항에 있어서, 픽셀 도메인으로부터 변환된 도메인으로의 상기 비디오 블록들의 변환을 통해 상기 계수 값들을 생성하기 위한 수단을 더 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  51. 제 42 항에 있어서, 상기 장치는 비디오 블록들을 인코딩하고,
    상기 비디오 블록들의 계수 값들을 스캐닝하기 위한 수단은 상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 계수들의 2-차원 블록들로부터 계수들의 1-차원 벡터들을 생성하기 위한 수단을 포함하고,
    엔트로피 코딩하기 위한 수단은 상기 계수 값들을 스캐닝한 이후에 상기 1-차원 벡터들을 엔트로피 인코딩하기 위한 수단을 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  52. 제 42 항에 있어서, 상기 장치는 비디오 블록들을 디코딩하고,
    상기 비디오 블록들의 계수 값들을 스캐닝하기 위한 수단은 상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 계수들의 1-차원 벡터들로부터 계수들의 2-차원 블록들을 생성하기 위한 수단을 포함하고,
    엔트로피 코딩하기 위한 수단은 상기 계수 값들을 스캐닝하기 이전에 상기 1-차원 벡터들을 엔트로피 디코딩하기 위한 수단을 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  53. 제 42 항에 있어서, 미리-설정된 업데이트 인터벌에서 상기 예측 모드들 각각에 대해 정의된 상기 스캔 순서들을 시험하기 위한 수단을 더 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  54. 제 42 항에 있어서, 저장, 카운팅, 스캐닝 및 평가 동작들은 비디오 시퀀스를 형성하는 복수의 코딩된 유닛들 각각에 대해 반복되며, 상기 장치는, 상기 저장, 카운팅, 스캐닝 및 평가 동작들이 상기 복수의 코딩된 유닛들 각각에 대해 반복되기 이전에 상기 스캔 순서들, 상기 예측 모드들 각각에 대한 통계치들 및 임계값들을 초기화하기 위한 수단을 더 포함하는, 비디오 블록들의 계수들을 코딩하는 장치.
  55. 복수의 예측 모드들 각각에 대한 비디오 블록들의 계수 값들과 연관되는 통계치들을 저장하고;
    상기 예측 모드들 각각과 연관되는 상기 비디오 블록들을 카운트하고;
    상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 2-차원 블록들로부터 1-차원 벡터들로 상기 비디오 블록들의 계수 값들을 스캐닝하고;
    상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드들 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 주어진 스캔 순서를 평가하는 스캔 유닛;
    상기 1차원 벡터들의 계수 값들을 엔트로피 인코딩하는 엔트로피 코딩 유닛; 및
    상기 엔트로피 인코딩된 계수 값들을 포함하는 비트스트림을 전송하는 무선 송신기를 포함하는, 장치.
  56. 제 55 항에 있어서, 상기 장치는 무선 통신 핸드셋을 포함하는, 장치.
  57. 1-차원 벡터들에서 비디오 블록들의 엔트로피 코딩된 계수 값들을 포함하는 비트스트림을 수신하는 무선 수신기;
    상기 비디오 블록들의 상기 계수 값들을 엔트로피 디코딩하는 엔트로피 코딩 유닛; 및
    복수의 예측 모드들 각각에 대한 상기 비디오 블록들의 계수 값들과 연관되는 통계치들을 저장하고;
    상기 예측 모드들 각각과 연관되는 상기 비디오 블록들을 카운트하고;
    상기 예측 모드들 각각에 대해 정의된 스캔 순서들에 기반하여 1-차원 블록들로부터 2-차원 벡터들로 상기 비디오 블록들의 계수 값들을 스캐닝하고; 그리고
    상기 예측 모드들 중 주어진 하나와 연관되는 카운트 값이 상기 예측 모드들 중 주어진 하나의 임계값을 만족하는 경우 상기 예측 모드들 중 주어진 하나의 통계치들에 기반하여 상기 예측 모드들 중 주어진 하나와 연관되는 주어진 스캔 순서를 평가하는 스캔 유닛을 포함하는, 장치.
  58. 제 57 항에 있어서, 상기 장치는 무선 통신 핸드셋을 포함하는, 장치.
KR1020107001007A 2007-06-15 2008-06-12 비디오 코딩의 적응형 계수 스캐닝 KR101244229B1 (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US94447007P 2007-06-15 2007-06-15
US60/944,470 2007-06-15
US97976207P 2007-10-12 2007-10-12
US60/979,762 2007-10-12
US3044308P 2008-02-21 2008-02-21
US61/030,443 2008-02-21
US12/133,232 US8571104B2 (en) 2007-06-15 2008-06-04 Adaptive coefficient scanning in video coding
US12/133,232 2008-06-04
PCT/US2008/066796 WO2008157268A2 (en) 2007-06-15 2008-06-12 Adaptive coefficient scanning in video coding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020117026972A Division KR20110129493A (ko) 2007-06-15 2008-06-12 비디오 코딩의 적응형 계수 스캐닝

Publications (2)

Publication Number Publication Date
KR20100021658A true KR20100021658A (ko) 2010-02-25
KR101244229B1 KR101244229B1 (ko) 2013-03-18

Family

ID=40132401

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020117026972A KR20110129493A (ko) 2007-06-15 2008-06-12 비디오 코딩의 적응형 계수 스캐닝
KR1020107001007A KR101244229B1 (ko) 2007-06-15 2008-06-12 비디오 코딩의 적응형 계수 스캐닝

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020117026972A KR20110129493A (ko) 2007-06-15 2008-06-12 비디오 코딩의 적응형 계수 스캐닝

Country Status (9)

Country Link
US (1) US8571104B2 (ko)
EP (1) EP2165542B1 (ko)
JP (1) JP5032657B2 (ko)
KR (2) KR20110129493A (ko)
CN (1) CN101682771B (ko)
BR (1) BRPI0813275A2 (ko)
CA (1) CA2687253A1 (ko)
TW (1) TW200915885A (ko)
WO (1) WO2008157268A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150027788A (ko) * 2012-06-07 2015-03-12 미디어텍 싱가폴 피티이. 엘티디. 인트라 변환 스킵 모드를 위한 방법 및 장치

Families Citing this family (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8428133B2 (en) * 2007-06-15 2013-04-23 Qualcomm Incorporated Adaptive coding of video block prediction mode
US8542748B2 (en) 2008-03-28 2013-09-24 Sharp Laboratories Of America, Inc. Methods and systems for parallel video encoding and decoding
US8000546B2 (en) * 2008-08-01 2011-08-16 National Cheng Kung University Adaptive scan method for image/video coding
KR101379185B1 (ko) * 2009-04-14 2014-03-31 에스케이 텔레콤주식회사 예측 모드 선택 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
KR101379186B1 (ko) * 2009-08-21 2014-04-10 에스케이 텔레콤주식회사 인트라 예측 부호화/복호화 방법 및 장치
EP2486659B1 (fr) * 2009-10-05 2020-11-25 Orange Procedes de codage et de décodage d'images, dispositifs de codage et de decodage et programmes d'ordinateur correspondants
CN104618719B (zh) * 2009-10-20 2018-11-09 夏普株式会社 运动图像编码装置、运动图像解码装置、运动图像编码方法及运动图像解码方法
JP5908619B2 (ja) * 2010-01-07 2016-04-26 株式会社東芝 動画像符号化装置及び動画像復号化装置
JP5525650B2 (ja) * 2010-01-07 2014-06-18 株式会社東芝 動画像復号化装置、方法及びプログラム
JP5526277B2 (ja) * 2010-01-07 2014-06-18 株式会社東芝 動画像復号化装置、方法及びプログラム
JP5432359B2 (ja) * 2010-01-07 2014-03-05 株式会社東芝 動画像符号化装置、方法及びプログラム
JP5323209B2 (ja) * 2010-01-07 2013-10-23 株式会社東芝 動画像符号化装置及び動画像復号化装置
JP5597782B2 (ja) * 2010-01-07 2014-10-01 株式会社東芝 動画像符号化装置及び動画像復号化装置
WO2011083573A1 (ja) 2010-01-07 2011-07-14 株式会社 東芝 動画像符号化装置及び動画像復号化装置
JP5696248B2 (ja) * 2010-01-07 2015-04-08 株式会社東芝 動画像符号化装置及び動画像復号化装置
JP5432412B1 (ja) * 2010-01-07 2014-03-05 株式会社東芝 動画像符号化装置及び動画像復号化装置
WO2011126277A2 (en) 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Low complexity entropy-encoding/decoding method and apparatus
US9049450B2 (en) 2010-04-05 2015-06-02 Samsung Electronics Co., Ltd. Method and apparatus for encoding video based on internal bit depth increment, and method and apparatus for decoding video based on internal bit depth increment
US8982961B2 (en) 2010-04-05 2015-03-17 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using transformation index, and method and apparatus for decoding video by using transformation index
US8929440B2 (en) * 2010-04-09 2015-01-06 Sony Corporation QP adaptive coefficients scanning and application
EP2559244B1 (en) 2010-04-13 2017-08-02 GE Video Compression, LLC Coding of significance maps and transform coefficient blocks
JP2011259205A (ja) * 2010-06-09 2011-12-22 Sony Corp 画像復号化装置と画像符号化装置およびその方法とプログラム
JP2012019448A (ja) * 2010-07-09 2012-01-26 Sony Corp 画像処理装置および方法
US9300970B2 (en) * 2010-07-09 2016-03-29 Samsung Electronics Co., Ltd. Methods and apparatuses for encoding and decoding motion vector
US9661338B2 (en) 2010-07-09 2017-05-23 Qualcomm Incorporated Coding syntax elements for adaptive scans of transform coefficients for video coding
US8344917B2 (en) 2010-09-30 2013-01-01 Sharp Laboratories Of America, Inc. Methods and systems for context initialization in video coding and decoding
CN102447895B (zh) * 2010-09-30 2013-10-02 华为技术有限公司 扫描方法及装置、反扫描方法及装置
US9313514B2 (en) 2010-10-01 2016-04-12 Sharp Kabushiki Kaisha Methods and systems for entropy coder initialization
US8923395B2 (en) * 2010-10-01 2014-12-30 Qualcomm Incorporated Video coding using intra-prediction
US9532059B2 (en) 2010-10-05 2016-12-27 Google Technology Holdings LLC Method and apparatus for spatial scalability for video coding
MX2013003557A (es) 2010-10-05 2013-05-01 Gen Instrument Corp Codificacion y decodificacion utilizando seleccion de modelo adaptativo al contexto con escaneo en zigzag.
US9641846B2 (en) 2010-10-22 2017-05-02 Qualcomm Incorporated Adaptive scanning of transform coefficients for video coding
US9497472B2 (en) * 2010-11-16 2016-11-15 Qualcomm Incorporated Parallel context calculation in video coding
US8976861B2 (en) 2010-12-03 2015-03-10 Qualcomm Incorporated Separately coding the position of a last significant coefficient of a video block in video coding
US9288496B2 (en) * 2010-12-03 2016-03-15 Qualcomm Incorporated Video coding using function-based scan order for transform coefficients
US9042440B2 (en) 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
JP2012129888A (ja) * 2010-12-16 2012-07-05 Samsung Electronics Co Ltd 画像符号化装置及び画像符号化方法
US9049444B2 (en) * 2010-12-22 2015-06-02 Qualcomm Incorporated Mode dependent scanning of coefficients of a block of video data
US20120163456A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
US20120163472A1 (en) * 2010-12-22 2012-06-28 Qualcomm Incorporated Efficiently coding scanning order information for a video block in video coding
US20120236931A1 (en) * 2010-12-23 2012-09-20 Qualcomm Incorporated Transform coefficient scan
US10992958B2 (en) 2010-12-29 2021-04-27 Qualcomm Incorporated Video coding using mapped transforms and scanning modes
KR101739580B1 (ko) * 2010-12-30 2017-05-25 에스케이 텔레콤주식회사 적응적 스캔 장치 및 그 스캔 방법
US9490839B2 (en) 2011-01-03 2016-11-08 Qualcomm Incorporated Variable length coding of video block coefficients
JP5781313B2 (ja) 2011-01-12 2015-09-16 株式会社Nttドコモ 画像予測符号化方法、画像予測符号化装置、画像予測符号化プログラム、画像予測復号方法、画像予測復号装置及び画像予測復号プログラム
FR2972588A1 (fr) 2011-03-07 2012-09-14 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US20120230418A1 (en) * 2011-03-08 2012-09-13 Qualcomm Incorporated Coding of transform coefficients for video coding
US9106913B2 (en) 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
US8861593B2 (en) 2011-03-15 2014-10-14 Sony Corporation Context adaptation within video coding modules
US9648334B2 (en) 2011-03-21 2017-05-09 Qualcomm Incorporated Bi-predictive merge mode based on uni-predictive neighbors in video coding
US8938001B1 (en) 2011-04-05 2015-01-20 Google Inc. Apparatus and method for coding using combinations
US8989256B2 (en) 2011-05-25 2015-03-24 Google Inc. Method and apparatus for using segmentation-based coding of prediction information
FR2977111A1 (fr) * 2011-06-24 2012-12-28 France Telecom Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
US9491469B2 (en) 2011-06-28 2016-11-08 Qualcomm Incorporated Coding of last significant transform coefficient
US9516316B2 (en) 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
BR112013033899B1 (pt) * 2011-07-01 2019-08-20 Samsung Electronics Co., Ltd. Método de decodificação de vídeo
US9338456B2 (en) 2011-07-11 2016-05-10 Qualcomm Incorporated Coding syntax elements using VLC codewords
US8891616B1 (en) 2011-07-27 2014-11-18 Google Inc. Method and apparatus for entropy encoding based on encoding cost
US9787982B2 (en) * 2011-09-12 2017-10-10 Qualcomm Incorporated Non-square transform units and prediction units in video coding
PL3402200T3 (pl) * 2011-10-24 2023-04-11 Gensquare Llc Aparat do dekodowania obrazu
KR20130049524A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
KR20130049523A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 장치
KR20130050405A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 시간 후보자 결정방법
US10390046B2 (en) * 2011-11-07 2019-08-20 Qualcomm Incorporated Coding significant coefficient information in transform skip mode
US9247257B1 (en) * 2011-11-30 2016-01-26 Google Inc. Segmentation based entropy encoding and decoding
AR092786A1 (es) * 2012-01-09 2015-05-06 Jang Min Metodos para eliminar artefactos de bloque
US9094681B1 (en) 2012-02-28 2015-07-28 Google Inc. Adaptive segmentation
US11039138B1 (en) * 2012-03-08 2021-06-15 Google Llc Adaptive coding of prediction modes using probability distributions
GB2501534A (en) * 2012-04-26 2013-10-30 Sony Corp Control of transform processing order in high efficeency video codecs
US9185429B1 (en) 2012-04-30 2015-11-10 Google Inc. Video encoding and decoding using un-equal error protection
US9781447B1 (en) 2012-06-21 2017-10-03 Google Inc. Correlation based inter-plane prediction encoding and decoding
CN107911699B (zh) * 2012-07-02 2021-08-10 三星电子株式会社 视频的编码方法和设备以及非暂时性计算机可读介质
KR102424431B1 (ko) 2012-07-02 2022-07-22 엘지전자 주식회사 영상 정보 코딩 방법 및 이를 이용하는 장치
US9774856B1 (en) 2012-07-02 2017-09-26 Google Inc. Adaptive stochastic entropy coding
US9264713B2 (en) * 2012-07-11 2016-02-16 Qualcomm Incorporated Rotation of prediction residual blocks in video coding with transform skipping
US9332276B1 (en) 2012-08-09 2016-05-03 Google Inc. Variable-sized super block based direct prediction mode
US9167268B1 (en) 2012-08-09 2015-10-20 Google Inc. Second-order orthogonal spatial intra prediction
US9344742B2 (en) 2012-08-10 2016-05-17 Google Inc. Transform-domain intra prediction
US9380298B1 (en) 2012-08-10 2016-06-28 Google Inc. Object-based intra-prediction
US9826229B2 (en) 2012-09-29 2017-11-21 Google Technology Holdings LLC Scan pattern determination from base layer pixel information for scalable extension
CN104704827B (zh) 2012-11-13 2019-04-12 英特尔公司 用于下一代视频的内容自适应变换译码
US9350988B1 (en) 2012-11-20 2016-05-24 Google Inc. Prediction mode-based block ordering in video coding
CN104885467B (zh) 2013-01-30 2018-08-17 英特尔公司 用于下一代视频编码的内容自适应参数变换
US9681128B1 (en) 2013-01-31 2017-06-13 Google Inc. Adaptive pre-transform scanning patterns for video and image compression
US9509998B1 (en) 2013-04-04 2016-11-29 Google Inc. Conditional predictive multi-symbol run-length coding
CN103428492B (zh) * 2013-07-16 2016-11-16 山东大学 一种高清AVS编码中快速zig-zag扫描的方法
MX368246B (es) 2013-07-24 2019-09-25 Microsoft Technology Licensing Llc Ordenes de escaneo para codificacion sin transformacion.
US9247251B1 (en) 2013-07-26 2016-01-26 Google Inc. Right-edge extension for quad-tree intra-prediction
JP5646713B2 (ja) * 2013-09-13 2014-12-24 株式会社Nttドコモ 画像符号化装置、方法及びプログラム、並びに、画像復号装置、方法及びプログラム
US9392288B2 (en) 2013-10-17 2016-07-12 Google Inc. Video coding using scatter-based scan tables
US9179151B2 (en) 2013-10-18 2015-11-03 Google Inc. Spatial proximity context entropy coding
JP5893711B2 (ja) * 2014-11-04 2016-03-23 株式会社Nttドコモ 画像符号化装置、方法及びプログラム、並びに、画像復号装置、方法及びプログラム
US10306229B2 (en) 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
JP6109354B2 (ja) * 2016-01-20 2017-04-05 株式会社Nttドコモ 画像復号装置、方法及びプログラム
RU2707719C1 (ru) * 2016-02-12 2019-11-28 Хуавей Текнолоджиз Ко., Лтд. Способ и устройство выбора порядка сканирования
KR102159252B1 (ko) 2016-02-12 2020-10-14 후아웨이 테크놀러지 컴퍼니 리미티드 스캔 순서 선택을 위한 방법 및 장치
US10623774B2 (en) 2016-03-22 2020-04-14 Qualcomm Incorporated Constrained block-level optimization and signaling for video coding tools
US10440394B2 (en) * 2016-09-08 2019-10-08 Google Llc Context adaptive scan order for entropy coding
EP3531700B1 (en) * 2016-10-18 2022-04-06 Panasonic Intellectual Property Management Co., Ltd. Image coding method, transmission method and image coding device
GB2557335A (en) * 2016-12-07 2018-06-20 Sony Corp Image data encoding and decoding
JP6949990B2 (ja) 2017-04-13 2021-10-13 エルジー エレクトロニクス インコーポレイティドLg Electronics Inc. 画像の符号化/復号方法及びそのための装置
CN115776572A (zh) 2017-12-21 2023-03-10 Lg电子株式会社 图像解码和编码方法、存储比特流的介质和数据发送方法
CN118741090A (zh) 2018-06-21 2024-10-01 株式会社Kt 对图像进行解码或编码的方法和传送压缩视频数据的装置
BR112021005238A2 (pt) * 2018-09-20 2021-06-15 Nokia Technologies Oy um método e um aparelho para codificação e decodificação de material de imagem/vídeo digital
US11323748B2 (en) 2018-12-19 2022-05-03 Qualcomm Incorporated Tree-based transform unit (TU) partition for video coding
KR20210031296A (ko) 2019-09-11 2021-03-19 삼성전자주식회사 전자 장치 및 그 제어 방법

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE1000643A5 (fr) * 1987-06-05 1989-02-28 Belge Etat Procede de codage de signaux d'image.
JPH01155678A (ja) 1987-12-11 1989-06-19 Matsushita Electric Ind Co Ltd 半導体発光装置
US5136371A (en) * 1990-03-15 1992-08-04 Thomson Consumer Electronics, Inc. Digital image coding using random scanning
EP0586225B1 (en) * 1992-08-31 1998-12-23 Victor Company Of Japan, Ltd. Orthogonal transform coding apparatus and decoding apparatus
TW224553B (en) 1993-03-01 1994-06-01 Sony Co Ltd Method and apparatus for inverse discrete consine transform and coding/decoding of moving picture
TW297202B (ko) 1993-10-13 1997-02-01 Rca Thomson Licensing Corp
KR0183688B1 (ko) 1994-01-12 1999-05-01 김광호 영상부호화방법 및 장치
KR0178198B1 (ko) 1995-03-28 1999-05-01 배순훈 영상 신호 부호화 장치
US5721822A (en) * 1995-07-21 1998-02-24 Intel Corporation Run-length encoding/decoding video signals using scan patterns explicitly encoded into bitstreams
US5790706A (en) 1996-07-03 1998-08-04 Motorola, Inc. Method and apparatus for scanning of transform coefficients
JP2002232887A (ja) 1996-11-07 2002-08-16 Matsushita Electric Ind Co Ltd 画像符号化方法および画像符号化装置並びに画像復号化方法および画像復号化装置
EP1689189A3 (en) * 1996-11-07 2008-12-10 Panasonic Corporation Image encoder and image decoder
JPH10271505A (ja) 1997-03-25 1998-10-09 Oki Electric Ind Co Ltd 信号処理装置、符号化回路および復号回路
US5995055A (en) * 1997-06-30 1999-11-30 Raytheon Company Planar antenna radiating structure having quasi-scan, frequency-independent driving-point impedance
US6157676A (en) * 1997-07-31 2000-12-05 Victor Company Of Japan Digital video signal inter-block interpolative predictive encoding/decoding apparatus and method providing high efficiency of encoding
JP4226172B2 (ja) * 1998-11-24 2009-02-18 株式会社ハイニックスセミコンダクター 適応的変換方法を用いる映像圧縮符号化装置および復号化装置ならびにその方法
WO2001031497A1 (en) * 1999-10-22 2001-05-03 Activesky, Inc. An object oriented video system
US6724818B1 (en) * 2000-07-17 2004-04-20 Telefonaktiebolaget Lm Ericsson (Publ) Alternative block orders for better prediction
CN1142683C (zh) 2000-10-13 2004-03-17 清华大学 无转置行列分离二维离散余弦正反变换电路及其方法
JP2002135126A (ja) 2000-10-26 2002-05-10 Seiko Epson Corp 半導体装置及びこれを用いた電子機器
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
KR100468844B1 (ko) * 2002-01-07 2005-01-29 삼성전자주식회사 정지영상 및 동영상을 부호화/복호화하기 위한변환계수들의 최적주사방법
WO2003058945A2 (en) * 2002-01-14 2003-07-17 Nokia Corporation Coding dynamic filters
DE60347000C5 (de) 2002-01-22 2020-08-06 Nokia Technologies Oy Codierungstransformationskoeffizienten in bild-/videocodierern und/oder -decodierern
US6757576B2 (en) * 2002-02-05 2004-06-29 Gcc, Inc. System and method for drawing and manufacturing bent pipes
KR100508798B1 (ko) 2002-04-09 2005-08-19 엘지전자 주식회사 쌍방향 예측 블록 예측 방법
US7170937B2 (en) * 2002-05-01 2007-01-30 Texas Instruments Incorporated Complexity-scalable intra-frame prediction technique
ES2525557T3 (es) 2002-05-28 2014-12-26 Sharp Kabushiki Kaisha Método y sistemas para la estimación, comunicación y organización de modos de intra-predicción de imágenes
RU2314656C2 (ru) 2002-06-11 2008-01-10 Нокиа Корпорейшн Внутреннее кодирование, основанное на пространственном прогнозировании
CN100553338C (zh) * 2002-07-15 2009-10-21 株式会社日立制作所 动态图像编码方法
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
US7463782B2 (en) * 2002-11-05 2008-12-09 Canon Kabushiki Kaisha Data encoding with an amplitude model and path between the data and corresponding decoding
FI116710B (fi) * 2002-12-20 2006-01-31 Oplayo Oy Kuvien koodausmenetelmä ja -järjestely
KR100750110B1 (ko) * 2003-04-22 2007-08-17 삼성전자주식회사 4×4인트라 휘도 예측 모드 결정방법 및 장치
JP3756897B2 (ja) 2003-07-30 2006-03-15 株式会社東芝 動画像符号化装置及び動画像符号化方法
US7289562B2 (en) * 2003-08-01 2007-10-30 Polycom, Inc. Adaptive filter to improve H-264 video quality
US20050036549A1 (en) * 2003-08-12 2005-02-17 Yong He Method and apparatus for selection of scanning mode in dual pass encoding
US7688894B2 (en) * 2003-09-07 2010-03-30 Microsoft Corporation Scan patterns for interlaced video content
JP4127818B2 (ja) * 2003-12-24 2008-07-30 株式会社東芝 動画像符号化方法及びその装置
EP1558039A1 (en) * 2004-01-21 2005-07-27 Deutsche Thomson-Brandt Gmbh Method and apparatus for generating/evaluating prediction information in picture signal encoding/decoding
JP4542447B2 (ja) * 2005-02-18 2010-09-15 株式会社日立製作所 画像の符号化/復号化装置、符号化/復号化プログラム及び符号化/復号化方法
US8731054B2 (en) * 2004-05-04 2014-05-20 Qualcomm Incorporated Method and apparatus for weighted prediction in predictive frames
US8369402B2 (en) * 2004-06-17 2013-02-05 Canon Kabushiki Kaisha Apparatus and method for prediction modes selection based on image formation
NO322043B1 (no) * 2004-12-30 2006-08-07 Tandberg Telecom As Fremgangsmate for forenklet entropikoding
US8311119B2 (en) * 2004-12-31 2012-11-13 Microsoft Corporation Adaptive coefficient scan order
US7706443B2 (en) * 2005-03-11 2010-04-27 General Instrument Corporation Method, article of manufacture, and apparatus for high quality, fast intra coding usable for creating digital video content
CN100345449C (zh) * 2005-03-18 2007-10-24 清华大学 图像/视频编码中变换系数的熵编码方法
KR20080006607A (ko) * 2005-04-12 2008-01-16 노키아 코포레이션 편차 제어를 통한 움직임 보상된 미세 입도 규모 가변성비디오 부호화를 위한 방법 및 시스템
EP1768415A1 (en) 2005-09-27 2007-03-28 Matsushita Electric Industrial Co., Ltd. Adaptive scan order of DCT coefficients and its signaling
CA2610276C (en) 2005-07-22 2013-01-29 Mitsubishi Electric Corporation Image encoder and image decoder, image encoding method and image decoding method, image encoding program and image decoding program, and computer readable recording medium recorded with image encoding program and computer readable recording medium recorded with image decoding program
US7933337B2 (en) * 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
JP2007053561A (ja) 2005-08-17 2007-03-01 Matsushita Electric Ind Co Ltd 画像符号化装置および画像符号化方法
US8199819B2 (en) 2005-10-21 2012-06-12 Electronics And Telecommunications Research Institute Apparatus and method for encoding and decoding moving picture using adaptive scanning
JP4918099B2 (ja) 2005-11-30 2012-04-18 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 係数再整列を適用するエンコード方法および装置
US7529484B2 (en) * 2005-12-14 2009-05-05 Nec Laboratories America, Inc. Triplexer transceiver using parallel signal detection
CN1801940A (zh) 2005-12-15 2006-07-12 清华大学 整型变换电路和整型变换方法
US8000539B2 (en) * 2005-12-21 2011-08-16 Ntt Docomo, Inc. Geometrical image representation and compression
US20080008246A1 (en) * 2006-07-05 2008-01-10 Debargha Mukherjee Optimizing video coding
US8428133B2 (en) * 2007-06-15 2013-04-23 Qualcomm Incorporated Adaptive coding of video block prediction mode
EP2422520A1 (en) * 2009-04-20 2012-02-29 Dolby Laboratories Licensing Corporation Adaptive interpolation filters for multi-layered video delivery
US9641846B2 (en) * 2010-10-22 2017-05-02 Qualcomm Incorporated Adaptive scanning of transform coefficients for video coding

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150027788A (ko) * 2012-06-07 2015-03-12 미디어텍 싱가폴 피티이. 엘티디. 인트라 변환 스킵 모드를 위한 방법 및 장치
KR101880793B1 (ko) * 2012-06-07 2018-07-20 미디어텍 싱가폴 피티이. 엘티디. 인트라 변환 스킵 모드를 위한 방법 및 장치

Also Published As

Publication number Publication date
CN101682771B (zh) 2012-02-29
US8571104B2 (en) 2013-10-29
EP2165542B1 (en) 2012-07-25
KR20110129493A (ko) 2011-12-01
WO2008157268A3 (en) 2009-02-05
US20080310745A1 (en) 2008-12-18
KR101244229B1 (ko) 2013-03-18
CA2687253A1 (en) 2008-12-24
TW200915885A (en) 2009-04-01
WO2008157268A2 (en) 2008-12-24
JP2010530183A (ja) 2010-09-02
JP5032657B2 (ja) 2012-09-26
CN101682771A (zh) 2010-03-24
BRPI0813275A2 (pt) 2014-12-30
EP2165542A2 (en) 2010-03-24

Similar Documents

Publication Publication Date Title
KR101244229B1 (ko) 비디오 코딩의 적응형 계수 스캐닝
RU2447612C2 (ru) Адаптивное сканирование коэффициентов при кодировании видео
KR101214148B1 (ko) 비디오 블록의 인터리빙된 서브?블록들의 엔트로피 코딩
JP5405596B2 (ja) ビデオのコーディングの際の、アクティビティメトリックに基づくフィルタ予測
KR101168843B1 (ko) 수평 및 수직 대칭에 기초한 필터 계수들의 비디오 코딩
JP5290325B2 (ja) Cabacコーダのためのレート歪みモデリングに基づいた量子化
JP5415546B2 (ja) ベクトル化エントロピーコーディングに基づく加重予測
JP5139542B2 (ja) Cabacコーダのための2パス量子化
KR101376008B1 (ko) 캐시 히트들을 향상시키기 위한 디코더에서의 시간 및 공간 비디오 블록 재정렬
CN101690227A (zh) 用于对子带进行熵译码的子带扫描技术

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
A107 Divisional application of patent
AMND Amendment
J201 Request for trial against refusal decision
B601 Maintenance of original decision after re-examination before a trial
S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151230

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161229

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190312

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200303

Year of fee payment: 8