KR100991411B1 - 비디오 압축과 연관된 정보를 코딩 및 디코딩하기 위한 방법 및 시스템 - Google Patents

비디오 압축과 연관된 정보를 코딩 및 디코딩하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR100991411B1
KR100991411B1 KR1020087026265A KR20087026265A KR100991411B1 KR 100991411 B1 KR100991411 B1 KR 100991411B1 KR 1020087026265 A KR1020087026265 A KR 1020087026265A KR 20087026265 A KR20087026265 A KR 20087026265A KR 100991411 B1 KR100991411 B1 KR 100991411B1
Authority
KR
South Korea
Prior art keywords
video
coding
run
coded block
symbols
Prior art date
Application number
KR1020087026265A
Other languages
English (en)
Other versions
KR20090005080A (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 KR20090005080A publication Critical patent/KR20090005080A/ko
Application granted granted Critical
Publication of KR100991411B1 publication Critical patent/KR100991411B1/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/176Methods 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
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/186Methods 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 colour or a chrominance component
    • 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/187Methods 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 scalable video layer
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/34Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Landscapes

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

Abstract

비디오 압축과 연관된 정보를 코딩 및 디코딩하기 위한 시스템 방법이 제시된다. 비디오 시퀀스는 다수의 프레임들로 처리된다. 다수의 프레임들의 각각의 프레임은 다수의 매크로블록들로 처리된다. 현재의 프레임의 매크로블록의 부분인 원시 비디오 신호의 예측 신호는 비디오 시퀀스로부터 구성된다. 잔여 신호는 현재의 프레임의 원시 비디오 신호로부터 원시 비디오 신호의 예측 신호를 감산함으로서 형성된다. 잔여 신호에 대하여 변환이 적용된다. 다수의 변환 계수들은 양자화된다. 잔여 신호의 특징을 정의하는 적어도 하나의 신택스 엘리먼트의 심볼은 식별된다. 동일한 카테고리의 적어도 하나의 신택스 엘리먼트의 심볼들은 함께 코딩된다.

Description

비디오 압축과 연관된 정보를 코딩 및 디코딩하기 위한 방법 및 시스템{METHOD AND SYSTEM FOR CODING AND DECODING INFORMATION ASSOCIATED WITH VIDEO COMPRESSION}
본 출원은 "비디오 압축시 신택스 엘리먼트를 효율적으로 코딩하기 위한 방법 및 장치"라는 명칭으로 2006년 3월 27일에 출원된 미국 가출원번호 제60/786,799호의 우선권을 주장하며, 이 가출원은 참조로 여기에 통합된다.
본 시스템 및 방법은 일반적으로 비디오 처리에 관한 것이다. 특히 본 시스템 및 방법은 비디오 압축 기술에 관한 정보를 인코딩 및 코딩하는 기술에 관한 것이다.
비디오 압축은 디지털 비디오 데이터의 압축을 언급한다. 비디오 압축은 비디오 파일 포맷들로 비디오 데이터를 효율적으로 코딩하고 비디오 포맷들을 스트리밍 및 방송하기 위하여 사용된다. 압축은 더 효율적으로 저장되거나 또는 전송될 수 있는 적은 비트들을 가진 포맷으로 데이터를 변환하는 것이다. 압축의 역(inverse)은 원시 데이터를 복원하는 압축해제이다.
오늘날, 일부 비디오 압축 방법들은 시간 또는 공간 예측 기술들을 사용하여 생성되는 예측 잔여 신호(prediction residual)에 남아있는 공간 리던던시를 감소 시키는 이산 코사인 변환(DCT)과 같은 임의의 형태의 이산 변환을 적용한다. 일부 비디오 압축 기술들은 또한 양자화 기술을 포함한다. 양자화는 스칼라 양자화 또는 벡터 양자화일 수 있다. 양자화후에, 양자화된 계수들은 압축된 비디오 비트 스트림으로 코딩되어 배열된 엔트로피(entropy)일 수 있다. 압축된 비트 스트림은 비트 스트림을 압축해제하여 원시 비디오 데이터를 거의 동일하게 복원하는 비디오 디코더에 전송된다.
비디오 압축 기술들은 다양한 형태의 미디어의 소비자들에게 이익을 준다. 예컨대, 방송 엔지니어링에 있어서 디지털 텔레비전은 비디오 압축이 실제로 응용될 수 있다. 텔레비전(TV) 국들은 동일한 물리 채널을 통해 고선명 텔레비전(HDTV) 다중 가상 채널들을 방송할 수 있다. 디지털 비디오 방송은 MPEG-2 표준 비디오 압축 포맷과 같은 동영상 전문가 그룹(MPEG: Moving Picture Experts Group)을 사용할 수 있다. 그러나, H.264/MPEG-4 및 VC-1은 비디오 압축의 새로운 표준들로서 출현하기 시작하고 있다.
불행하게도, 비디오 압축시 정보를 코딩하는 공지된 시스템들 및 방법들은 여러가지 단점들을 가지고 있다. 따라서, 비디오 압축시 정보를 코딩하는 개선된 시스템들 및 방법들이 요구된다.
도 1은 정보를 인코딩하기 위한 방법을 기술한 흐름도이다.
도 2는 대안 런 길이 코딩(alternating run length coding)을 사용하여 압축될 수 있는 2진 심볼들의 스트링의 구성을 도시한 도면이다.
도 3은 본 시스템들 및 방법들에 따라 사용될 수 있는 2진 방식의 다른 구성을 도시한 도면이다.
도 4는 인코딩된 런 길이를 제한하는 구성을 도시한 블록도이다.
도 5는 특정 타입의 신택스 엘리먼트를 인코딩하는 구성을 도시한 블록도이다.
도 6은 특정 타입의 신택스 엘리먼트를 인코딩하는 다른 양상을 도시한 블록도이다.
도 7은 확장 계층에서 루마 코딩된 블록 패턴(CBP)을 코딩하기 위한 방법의 구성을 기술한 흐름도이다.
도 8은 도 7에 따라 기술된 방법의 추가 구성을 기술한 블록도이다.
도 9는 확장 계층에서의 대안 런 길이 코딩의 다른 구성을 도시한 블록도이다.
도 10은 대안 런 길이 코딩을 사용하여 크로마 CBP을 코딩하는 다른 양상을 도시한 블록도이다.
도 11은 디지털 이미지 및/또는 디지털 비디오를 처리하기 위하여 전형적으로 사용되는 주요 하드웨어 컴포넌트들을 도시한 블록도이다.
비디오 압축과 연관된 정보를 코딩하기 위한 방법 및 시스템이 기술된다. 비디오 시퀀스는 다수의 프레임들로 처리된다. 다수의 프레임들의 각각의 프레임은 다수의 매크로블록들로 처리된다. 현재 프레임의 매크로블록의 일부분인 원시 비디오 신호의 예측 신호는 비디오 시퀀스로부터 구성된다. 잔여 신호(residual signal)는 현재 프레임의 원시 비디오 신호로부터 원시 비디오 신호의 예측 신호를 감산함으로서 형성된다. 잔여 신호로의 변환이 적용된다. 다수의 변환 계수들은 양자화된다. 심볼은 잔여 신호의 특징을 한정하는 적어도 하나의 신택스 엘리먼트로 식별된다. 동일한 카테고리의 적어도 하나의 신택스 엘리먼트의 심볼들은 함께 코딩된다.
코딩된 블록 패턴이 코딩될 수 있다. 코딩된 블록 패턴은 제로(zero: 0)들의 런(run)들 및 비제로(nonzero) 값들의 런(run)들로서 코딩될 수 있다. 코딩된 블록 패턴은 단지 제로들의 런들로서 코딩될 수 있다. 초기 값 심볼은 제로들의 코딩된 런들 및 비제로 값들의 런들의 초기값들을 지시하기 위하여 인코딩될 수 있다. 전이 심볼은 현재의 런의 심볼들의 값이 적어도 하나의 신택스 엘리먼트의 심볼들의 다음 런의 심볼의 값으로 어떻게 변화하는지를 지시하기 위하여 삽입될 수 있다. 최대 런 길이는 코딩될 적어도 하나의 신택스 엘리먼트의 심볼들로 정의될 수 있다.
매크로블록 스킵(skip) 심볼은 코딩될 수 있다. 매크로블록 심볼은 코딩될 수 있다. 델타 양자화 파라미터 심볼은 또한 코딩될 수 있다.
적어도 하나의 신택스 엘리먼트의 심볼들은 다중 패턴들로 스캔될 수 있다. 스킵 플래그 비트는 정의(define)될 수 있으며, 적어도 하나의 신택스 엘리먼트 심볼들의 특정 세트의 코딩은 바이패스(bypass)될 수 있다. 스킵 플래그 비트는 확장 계층에서 정의될 수 있다. 확장 계층내의 적어도 하나의 신택스 엘리먼트의 심 볼들은 기본 계층(base layer)내의 신택스 엘리먼트의 대응 심볼들에 기초하여 코딩될 수 있다.
비디오 압축과 연관된 정보를 코딩하도록 구성된 장치가 또한 제시된다. 장치는 프로세서 및 이 프로세서와 전자적으로 통신하는 메모리를 포함한다. 명령들은 메모리에 저장된다. 비디오 시퀀스가 수신된다. 비디오 시퀀스는 다수의 프레임들로 처리된다. 다수의 프레임들의 각각의 프레임은 다수의 매크로블록들로 처리된다. 현재 프레임의 매크로블록의 부분인 원시 비디오 신호의 예측 신호는 비디오 시퀀스로부터 구성된다. 잔여 신호(residual signal)는 현재의 프레임의 원시 비디오 신호로부터 원시 비디오 신호의 예측 신호를 감산함으로서 형성된다. 변환이 잔여 신호에 적용된다. 다수의 변환 계수들은 양자화된다. 심볼은 잔여 신호의 특징을 정의하는 적어도 하나의 신택스 엘리먼트로 식별된다. 동일한 카테고리의 적어도 하나의 신택스 엘리먼트의 심볼들은 함께 코딩된다.
비디오 압축과 연관된 정보를 코딩하는 실행가능 명령들을 포함하는 컴퓨터-판독가능 매체가 제시된다. 비디오 시퀀스가 수신된다. 비디오 시퀀스는 다수의 프레임들로 처리된다. 다수의 프레임들의 각각의 프레임은 다수의 매크로블록으로 처리된다. 현재 프레임의 매크로블록의 부분인 원시 비디오 신호의 예측 신호는 비디오 시퀀스로부터 구성된다. 잔여 신호는 현재 프레임의 원시 비디오 신호로부터 원시 비디오 신호의 예측 신호를 감산함으로서 형성된다. 변환(transform)이 잔여 신호에 적용된다. 다수의 변환 계수들은 양자화된다. 심볼은 잔여 신호의 특징을 정의(define)하는 적어도 하나의 신택스 엘리먼트로부터 식별된다. 동일한 카테고리의 적어도 하나의 신택스 엘리먼트의 심볼들은 함께 코딩된다.
비디오 압축과 연관된 정보를 디코딩하는 방법이 또한 제시된다. 인코딩된 비디오 시퀀스가 수신된다. 동일한 카테고리의 다수의 심볼들이 함께 디코딩된다. 다수의 변환 계수들이 역양자화된다. 잔여 신호에 대하여 역 변환이 적용된다. 디코딩된 비디오 시퀀스가 구성된다.
비디오 압축과 연관된 정보를 디코딩하도록 구성된 전자 장치가 또한 제시된다. 전자장치는 프로세서 및 프로세서와 전자적으로 통신하는 메모리를 포함한다. 명령들이 메모리에 저장된다. 인코딩된 비디오 시퀀스가 수신된다. 동일한 카테고리의 다수의 심볼들이 함께 디코딩된다. 다수의 변환 계수들이 역양자화된다. 역변환이 잔여 신호에 대하여 적용된다. 디코딩된 비디오 시퀀스가 구성된다.
비디오 압축과 연관된 정보를 코딩하도록 구성된 장치가 제시된다. 장치는 처리 수단 및 비디오 시퀀스를 수신하는 수단을 포함한다. 비디오 시퀀스를 다수의 프레임으로 처리하는 수단 및 다수의 프레임들의 각각의 프레임을 다수의 매크로블록으로 처리하는 수단이 제시된다. 비디오 시퀀스로부터 현재의 프레임의 매크로블록의 부분인 원시 비디오 신호의 예측 신호를 구성하는 수단, 및 현재 프레임의 원시 비디오 신호로부터 원시 비디오 신호의 예측 신호를 감산함으로서 잔여 신호를 형성하는 수단이 제시된다. 잔여 신호에 대하여 변환을 적용하는 수단 및 다수의 변환 계수들을 양자화하는 수단이 제시된다. 잔여 신호의 특징을 정의하는 적어도 하나의 신택스 엘리먼트의 심볼을 식별하는 수단 및 동일한 카테고리의 적어도 하나의 신택스 엘리먼트의 심볼들을 코딩하는 수단이 또한 제시된다.
시스템들 및 방법들의 다양한 특징들은 동일한 도면부호들이 동일하거나 또는 기능적으로 유사한 엘리먼트들을 지시하는 도면들을 참조로 하여 지금 기술될 것이다. 여기에서 도면들에 기술된 본 발명의 시스템들 및 방법들의 특징들은 다양한 다른 구성들로 배열 및 설계될 수 있다. 따라서, 이하의 상세한 설명은 청구된 시스템들 및 방법들의 범위를 제한하는 것으로 의도되지 않고 단순히 시스템들 및 방법들의 구성들을 대표한다.
여기에 기술된 구성들의 많은 특징들은 컴퓨터 소프트웨어, 전자 하드웨어 또는 이들의 조합(도 11 참조)으로서 구현될 수 있다. 이러한 하드웨어 및 소프트웨어의 상호 호환성을 명확하게 기술하기 위하여, 다양한 컴포넌트들이 그들의 기능과 관련하여 기술될 것이다. 이러한 기능이 하드웨어로서 또는 소프트웨어로서 구현되는지의 여부는 전체 시스템에 부여된 특정 응용 및 설계 제약들에 따른다. 당업자는 각각의 특정 응용을 위하여 가변 방식으로 기술된 기능을 구현할 수 있으나, 이러한 구현 결정들은 본 발명의 시스템들 및 방법들의 범위로부터 벗어나지 않고 해석되어야 한다.
기술된 기능이 컴퓨터 소프트웨어로서 구현되는 경우에, 이러한 소프트웨어는 메모리 장치내에 위치하며 및/또는 시스템 버스 또는 네트워크를 통해 전자 신호들로서 전송되는 임의의 타입의 컴퓨터 명령 또는 컴퓨터/머신 실행가능 코드를 포함할 수 있다. 여기에 기술된 컴포넌트들과 연관된 기능을 구현하는 소프트웨어는 단일 명령 또는 다수의 명령들을 포함할 수 있으며, 여러 다른 코드 세그먼트들상에 분산되고, 다른 프로그램사이에 분산되고 여러 메모리 장치들에 분산될 수 있 다.
비디오 코딩에 있어서, 비디오 프레임은 계층적으로 코딩된다. 프레임은 매크로블록들로 분할된다. 각각의 매크로블록은 전형적으로 16×16 크기의 휘도(luminance: luma(루마)) 블록(Y)으로 구성된다. 매크로블록은 또한 색도(chrominance: chroma(크로마))의 블록 Cb 및 색도의 블록 Cr으로 구성된다. 색도 블록의 크기는 컬러 포맷에 따른다. YCbCr420 컬러 포맷에서, 각각의 색도 블록의 크기는 8×8이다. 이러한 응용을 위하여, 비디오는 포맷 YCbCr420을 가진 YCbCr 컬러 공간에서 코딩된다. 그러나, 본 발명의 시스템들 및 방법들은 다른 컬러 공간들 및 컬러 포맷들의 비디오 코딩에 적용될 수 있다.
비디오 인코더에서, 예측, 변환 및 양자화와 같은 전형적인 비디오 압축 프로세스후에, 다음 단계는 비트스트림을 형성하기 위하여 신택스 엘리먼트들 및 양자화된 계수들에 대하여 엔트로피 코딩을 수행하는 것이다. 비디오 디코더에서는 역 프로세스가 수행된다. 신택스 엘리먼트들 및 양자화된 계수들은 비트스트림으로부터 디코딩된다. 역 양자화 및 역 변환이 수행된다. 최종적으로, 재구성된 잔여 신호는 비디오 신호를 재구성하기 위하여 예측에 추가된다.
신택스 엘리먼트의 일례는 코딩된 블록 패턴(CBP)이다. CBP는 매크로블록에 임의의 비제로(nonzero) 양자화 계수들이 존재하는지를 지시하고 또한 이 비제로 양자화 계수들이 블록 레벨에 분산되는 방법을 지시한다. H.264/차세대 비디오 코딩(Advanced Video Coding) 표준들하에서, 만일 매크로블록이 인코더에 의하여 스킵되지 않으면, 루마(luma) CBP 및 크로마(chroma) CBP는 비트스트림으로 전송된 다. 루마 CBP는 4비트로 구성되며, 1비트는 4개의 8×8 블록들의 각각에 대응한다. 만일 루마 CBP 비트가 제로이면, 이는 대응 8×8 블록이 임의의 비제로 계수들을 가지지 않는다는 것을 의미한다. 그래서, 루마 CBP는 0 내지 15의 값을 가질 수 있으며, 크로마 CBP는 0 내지 2의 값을 가질 수 있다. 매크로블록 CBP는 루마 CBP 및 크로마 CBP로 형성되며, 코드 수(code number)에 매핑된다. 코드 수는 예컨대 지수 골롬 코드(exponential golomb code)를 사용하여 코딩된다. 그러나, 이러한 코딩 방법은 각각의 매크로블록 CBP가 독립적으로 전송되기 때문에 인접 매크로블록들의 코딩된 블록 패턴들간의 상관관계가 이용되지 않으므로 최적이 아닐 수 있다.
현재, ISO/IEC MPEG 및 ITU-T VCEG에서 비디오 코딩 전문가들로 이루어진 조인트 비디오 팀(JVT: Joint Video Team)은 H.264/AVC에 대한 스케일러블 비디오 코딩(SVC: Scalable Video Coding) 확장에 노력하고 있다. JVT에 의하여 발표된 최근 기술 개발은 비정밀(coarse) 신호 대 잡음(SNR) 확장 적응성(Scalability), 정밀(fine) 그래뉼래러티(granularity) SNR 확장 적응성(FGS), 공간 확장 적응성, 및 시간 확장 적응성을 가진 비트스트림을 가능하게 하는 것이다. 비정밀 SNR 확장 적응성 및 공간 확장 적응성 계층에서, 루마 CBP 및 크로마 CBP는 그들이 기본 계층에서 코딩되는 것과 동일한 방식으로 코딩되며, 따라서 이들 계층들은 기본 계층에서의 문제점들과 유사한 문제점들을 가진다.
FGS 계층에서, 루마 코딩된 블록 패턴을 코딩하는 한 방식은 기본 계층의 루마 CBP에 기초하여 매크로블록내의 4개의 루마 CBP 비트들을 2개의 그룹으로 분리 하는 것이다. 기본 계층의 대응 루마 CBP 비트들이 제로(zero)인, 확장 계층의 루마 CBP 비트들(타입-0 CBP 비트들)은 기본 계층의 대응 루마 CBP 비트들이 비제로(non-zero)인, 확장 계층의 루마 CBP 비트들(타입-1 CBP 비트들)과 관계없이 코딩된다. 기본 계층의 루마 CBP의 값에 기초하여, 타입-0 비트들 및 타입-1 비트들의 수는 매크로블록마다 고정될 수 없다. 한 기술은 그룹에서 비트들의 수가 3보다 작은 경우에 고정-길이(fix-length) 코드를 사용하여 타입-0 또는 타입-1 비트들을 인코딩하는 것이다. 만일 그룹의 비트들의 수가 3과 동일하거나 또는 크면, 가변 길이 코딩(VLC: Variable Length Coding)이 사용될 수 있다. 또한, 이러한 코딩 방식은 타입-0 및 타입-1 비트들을 코딩하기 위하여 사용되는 VLC 테이블이 현재의 확률 추정에 기초하여 선택되기 때문에 CBP 비트들의 확률이 유지될 것을 필요로 한다. 이러한 코딩 방식은 스케일러블 비디오 코딩(SVC)의 초기 버전이다.
FGS 계층의 루마 CBP와 같은 신택스 엘리먼트의 코딩 방식에 있어서의 문제점은 복잡하다. 루마 CBP 비트들을 그룹핑하고, 확률 모델들을 유지하며 VLC 테이블들을 선택하는 동작들은 대량 계산을 포함할 수 있다. 코딩 효율성은 인접 매크로블록들의 유사한 신택스 엘리먼트들간의 상관관계가 이용되지 않기 때문에 낮을 수 있다.
도 1은 정보를 인코딩하는 방법(100)을 기술한 흐름도이다. 일 양상에서, 인코딩될 정보는 비디오 시퀀스를 포함한다. 본 방법(100)은 비디오 인코더내에서 수행될 수 있으며, 방법(100)의 역(inverse)은 비디오 디코더에 의하여 실행될 수 있다. 인코더는 신호 또는 데이터를 코딩된 스트림으로 변경하기 위하여 사용되는 장치이다. 그 다음에, 디코더는 코드로부터 원시 신호 또는 데이터의 재구성된 버전을 생성할 수 있다. 무손실 압축(lossless compression)에서, 원시 신호 또는 데이터의 재구성된 버전은 원시 신호 또는 데이터와 동일하다. 손실 압축(lossy compression)에서, 원시 신호 또는 데이터의 재구성된 버전은 원시 신호 또는 데이터의 근사치(approximation)이다. 인코더 및 디코더는 소스 이미지 또는 비디오 시퀀스를 압축 형태로 인코딩하고 압축 형태를 디코딩하여 소스 시퀀스의 카피(copy) 또는 근사치를 생성하는 비디오 CODEC으로서 총괄적으로 지칭될 수 있다. 본 설명에서, 임의의 구성들의 일부 양상들은 인코더의 시점으로부터 기술된다. 디코더가 인코더에 의하여 인코딩된 신호 또는 데이터를 재구성하기 위하여 역 프로세스들을 수행할 수 있다는 것은 비디오 압축 분야의 당업자에 의하여 용이하게 이해될 수 있다.
본 방법(100)은 인코더가 비디오 시퀀스를 수신하는 것으로부터 시작된다(102). 비디오 시퀀스는 다수의 프레임들로 처리된다(104). 다수의 프레임들내의 각각의 프레임은 다수의 매크로블록들로 추가로 처리된다(105). 인코더는 현재의 비디오 프레임의 매크로블록의 부분인 원시 비디오 신호의 예측 신호(prediction)를 구성하기 위하여(106) 인접 비디오 프레임들사이 또는 동일한 프레임의 화소들사이의 유사성들(similarity)을 이용하여 비디오 시퀀스를 압축하기 시작한다. 만일 예측 신호가 하나 이상의 이전 또는 미래의 프레임들로부터 형성되면, 이는 시간 예측(temporal prediction)으로 지칭된다. 만일 예측 신호가 동일한 프레임내의 화소들로부터 형성되면, 이는 공간 예측(spatial prediction)으로 서 지칭된다. 잔여 신호는 인코딩된 신호로부터 예측 신호를 감산함으로서 형성된다(108).
본 방법(100)은 나머지 공간 리던던시(redundancy)를 감소시키기 위하여 잔여 신호에 변환을 적용하는 것(110)으로 계속된다. 변환은 예측 잔여 샘플들을 다른 도메인(domain)으로 변환하며, 다른 도메인에서 예측 잔여 샘플들은 변환 계수들로 표현된다. 계수들은 비유효(insignificant) 값들을 제거하여 잔여 신호의 더 압축된 표현을 제공하는 적은 수의 유효(significant) 계수들을 남기도록 양자화된다(112).
예측, 변환 및 양자화후에, 인코더는 잔여 신호의 특징을 정의하는 적어도 하나의 신택스 엘리먼트의 심볼을 식별한다(114). 예컨대, 신택스 엘리먼트는 잔여 신호의 양자화후에 매크로블록에 비제로 계수들이 존재하는지의 여부를 지시하는 코딩된 블록 패턴을 포함할 수 있다.
인코더는 동일한 카테고리의 신택스 엘리먼트들의 식별된 심볼들을 함께 코딩한다(116). 일 양상에서, 엔트로피 인코더(entropy encoder)는 엔트로피 코딩을 수행한다. 엔트로피 인코더는 비디오 시퀀스의 신택스 엘리먼트들을 표현하는 일련의 심볼들을 변환하며, 이들을 전송 또는 저장하기에 적합한 압축 비트스트림에 포함시킨다(118). 신택스 엘리먼트들의 예들은 mb_skip_flag(매크로블록이 인코더에 의하여 스킵(skip)되는지의 여부를 지시하며; 만일 매크로블록이 스킵되면 디코더는 인접 매크로블록들의 모션 벡터(motion vector)들로부터 모션 벡터(들)을 유도하고 매크로블록에 대한 모든 양자화된 계수들을 0으로 세팅한다), mb_type(매크 로블록이 인트라 또는 인터 모드에서 코딩되는지의 여부를 결정하며; 매크로블록 구획 크기(partition size)를 결정한다), sub_mb_type(각각의 서브-매크로블록에 대한 서브-매크로블록 구획 크기를 결정한다), coded_block_pattern(비제로 변환 계수들이 분산되는 방법을 지시한다), mb_qp_delta(양자화기 파라미터를 변화시킨다), 잔여신호(residual)(예측후에 잔여 샘플들에 대응하는 코딩된 양자화 변환 계수들)을 포함할 수 있다.
본 방법(100)은 동일한 카테고리의 신택스 엘리먼트 심볼들을 함께 코딩하며(116), 비트스트림에 코딩된 정보를 포함시킨다(118). 일 구성에서, 인코더는 동일한 카테고리의 다중 신택스 엘리먼트들을 함께 코딩한다. 예컨대, 콘텍스트(context)-기반 적응 가변 길이 코딩(CAVLC)인 비디오 코딩 및 엔트로피 코딩 모드에 대한 H.264 표준하에서, 각각의 개별 매크로블록에 대한 mb_skip_flag를 전송하는 대신에, 신택스 엘리먼트 mb_skip_run이 사용된다. 만일 mb_skip_run이 "n"의 값을 가지면, "n"개의 스킵된 매크로블록들과 이 다음에 위치한 스킵되지 않은 하나의 매크로블록이 존재한다. 이러한 정보는 압축된 비트스트림에 무부호 수(unsigned number)의 지수 골롬 코드를 포함시킴으로서 변환된다. 지수 골롬 코드의 정의는 H.264/AVC 규격의 섹션 9.1에서 발견될 수 있다. 동일한 카테고리의 다중 신택스 엘리먼트들을 코딩하는 엔트로피 인코더의 다른 예가 도 2에 기술된다.
도 2는 도 1에 기술된 방법에 따라 대안 런 길이 코딩(alternating run length coding)을 사용하여 압축될 수 있는 2진 심볼들의 스트링(200)의 일 구성을 도시한다. 기술된 바와같이, 스트링(200)은 6개의 연속 0들(202), 7개의 1들(204), 3개의 0들(206), 및 1개의 1(208)의 런을 포함한다. 6개의 0들(202)의 런은 런-길이 R=6을 제공하기 위하여 함께 그룹핑된다. R은 엔트로피 인코더에 의하여 인코딩될 수 있다. 일 양상에서, "R-1"은 R의 최소 값이 1이기 때문에 지수 골롬 코드를 사용하여 인코딩되며, H.264/AVC의 변환에 의하여 지수 골롬 코드는 0으로부터 시작하는 비음수들을 인코딩하기 위하여 사용된다. 예컨대, 값 "6"의 R은 "00110"으로서 지수 골롬 코드를 사용하여 인코딩될 수 있다. 7개의 연속 1들(204)의 런은 런-길이 R=7을 제공하기 위하여 함께 그룹핑된다. 그 다음에, 이러한 런-길이는 "00111"으로서 지수 골롬 코드를 사용하여 엔트로피 인코더에 의하여 인코딩된다. 3개의 0들(206)의 런 및 단일 1(208)을 포함하는 런이 또한 유사한 방식으로 인코딩된다. 2진 심볼들의 스트링(200)은 "00110 00111 011 1"로 이루어진 비트스트림으로 압축된다. 이러한 비트스트림은 2진 심볼들의 스트링을 재생하기 위하여 디코더에 의하여 판독될 수 있다. 디코더에서, 비트스트림으로부터 디코딩된 심볼 "S"은 수식 R=S+1을 사용하여 런-길이 R로 변환될 수 있다.
도 2가 기술한 바와같이, 0들의 런들 뿐만아니라 비제로(non-zero) 값들의 런들이 함께 인코딩된다. 일 구성에서, 엔트로피 인코더는 지수 골롬 코드를 사용하여 런-길이를 인코딩한다. 제 2 구성에서, 런-길이는 다른 타입의 가변 길이 코드를 사용하여 코딩되거나 또는 다른 코딩 방식을 사용하여 인코딩될 수 있다.
도 2에 기술된 대안 런 길이 코딩에 있어서, 초기값은 제 1 런으로 코딩된 2진 심볼들의 값을 유도하기 위하여 코딩될 수 있다. 일 구성에서, 초기값은 제 1 런으로 코딩될 2진 심볼의 역과 동일하게 세팅된다. 예컨대, 만일 제 1 런으로 코딩될 2진 심볼이 0이면, 초기값은 1로 세팅된다. 초기값을 코딩하는 것은 신택스 엘리먼트들의 디코딩 프로세스에서 새로운 런이 디코딩될때마다 2진 심볼들의 값이 변화하기 때문에 유용하다. 도 2에 제공된 예를 따르면, 코딩될 초기값은 1이다. 디코더가 초기값 이후에 6개의 심볼들(202)의 새로운 런을 검출할때, 신택스 엘리먼트의 값은 1의 초기값으로부터 0으로 변화되며, 디코더는 0들로서 6개의 값을 디코딩한다. 7개의 심볼들(204)의 새로운 런을 검출할때, 신택스 엘리먼트의 값은 0으로부터 1로 변화되며, 디코더는 1들로서 7개의 값들의 런을 디코딩한다. 이러한 프로세스는 디코더가 디코딩할 심볼들의 추가 런들을 검출하지 않을때까지 계속된다.
도 3은 도 1에 기술된 방법에 따라 사용될 수 있는 코딩 방식의 다른 양상이다. 이러한 추가 양상은 제로 런 코딩(Zero Runs coding)으로서 지칭될 수 있다. 이러한 방식은 mb_skip_flag flag들을 코딩할때 H.264/AVC에서 사용되었다. 도 3에 기술된 바와같이, 2진 값들의 스트링(300)이 압축된다. 제로 런 코딩을 사용할때, 비제로 값 전 제로들의 런만이 코딩된다. 일 구성에서, 지수 골롬 코드는 제로(0) 런을 코딩하기 위하여 사용된다. 기술된 바와같이, 제 1 비제로 값(304) 전에 4개의 제로 값들(302)이 존재한다. 4개의 제로들(302) 및 제 1 비제로 값(304)에는 지수 골롬 코드를 사용하여 "00101"로서 코딩된 값 "4"가 할당된다. 그 다음에, 이러한 코드는 비트스트림에 추가된다. 이하의 5개의 제로("0")들(306) 및 이 다음에 위치한 제 2 비제로 값(308)은 "5"가 할당되며, 지수 골롬 코드를 사용하여 "00110"으로서 코딩된다. 이러한 코드는 유사하게 디코더에 전송될 비트스트림에 추가된다. 기술된 바와같이, 제 1 비제로 값(310)은 제 2 비제로 값(308) 바로 뒤에 위치한다. 제 3 비제로 값(310)은 지수 골롬 코드를 사용하여 "1"로서 코딩될 수 있는 "0"의 값이 할당되며, 비트스트림에 추가된다. 나머지 2개의 제로(0)들(312) 및 이 다음에 위치한 제 4 비제로 값(314)은 값 "2"가 할당되며, 지수 골롬 코드를 사용하여 "010"으로서 코딩될 수 있다. 디코더에 전송된 결과적인 비트스트림은 "00101 00110 1 011"이다. 도 3에 기술된 제로 런 코딩은 비트스트림으로 전송될 초기 플래그 값을 필요로 하지 않는다.
도 4는 인코딩될 런 길이를 제한하는 일 구성(400)을 기술한다. 고해상도의 비디오에 대하여, 일부 신택스 엘리먼트들에 대한 최대 런 길이는 매우 길수 있다. 예컨대, 1920×1080의 해상도를 가진 비디오에 대하여, 루마 coded_block_pattern(CBP)에 대한 최대 런 길이는 (1920×1080)/64=32,400일 수 있다. 만일 엔트로피 인코더가 심볼들의 이러한 런을 인코딩하기 위하여 지수 골롬 코드를 이용하면, 코드는 29 비트로 구성될 것이다. 일 양상에서, 코딩될 최대 런 길이(MR)에 대한 상계(upper-bound)가 한정될 수 있다.
디코더에 의하여 디코딩된 런 길이가 한정된 MR보다 크면, 예컨대 "MR+1"이면, 실제 런 길이는 MR + 비트스트림의 다음 코딩된 시퀀스로부터 디코딩된 추가 런 길이이다. 예컨대, 도 4는 지수 골롬 코드를 사용하여 인코딩될 5개의 다른 길이 런들(402, 404, 406, 408, 410)을 기술한다. 심볼들의 이들 런들은 3개의 0들(402), 13개의 1들(404), 14개의 0들(406), 15개의 1들(408) 및 31개의 0들(410) 으로 이루어진다. 일 구성에서, 하나의 코딩된 심볼로부터 디코딩될 수 있는 상계 MR은 14의 제한치로 세팅된다. 3개의 0들(402)의 런 시퀀스는 "011"로서 인코딩될 수 있다. 13개의 1들(404)의 런 시퀀스는 "0001101"로서 인코딩될 수 있다. 14개의 0들(406)의 런은 "0001110"로서 인코딩될 수 있다. 15개의 1들(408) 및 31개의 0들(410)의 나머지 2개의 런들은 14의 상계 MR보다 크다. 일 구성에서, 15개의 1들(408)의 런 길이는 2개의 지수 골롬 코드들 "0001111 1"로서 코딩된다. 제 1코드로부터 디코딩된 런 길이 "0001111"은 15이다. 그러나, 상계 MR은 14로서 정의된다. 15의 디코딩된 값은 현재의 런 길이가 적어도 14이고 추가 지수 골롬 코드가 실제 런 길이를 얻기 위하여 디코딩되어야 한다는 것을 의미한다. 다음 코드로부터 디코딩된 추가 런 길이는 1이다. 디코딩후에, 실제 런 길이는 MR 또는 14 + 1과 같은 임의의 추가 디코딩된 런 길이들이다. 마찬가지로, 디코딩된 런 길이는 15이다.
추가 예로서, 31개의 0들(410)의 런 시퀀스가 인코딩되는 것을 고려한다. 31개의 0들의 런 길이(410)는 3개의 지수 골롬 코드들 "0001111 0001111 011"로 코딩된다. 제 1 코드로부터 디코딩된 런 길이는 15이다. 상계 MR이 14로서 한정되기 때문에, 15의 디코딩된 값은 실제 런 길이가 적어도 14이고 추가 지수 골롬 코드가 디코딩되어 이전에 디코딩된 런 길이에 추가되어야 한다는 것을 의미한다. 제 2 코드로부터 디코딩된 런 길이는 15이며, 이는 실제 런 길이가 적어도 28(14+14)이고 추가 지수 골롬 코드가 디코딩되어 이전에 디코딩된 런 길이들에 추가되어야 한다는 것을 의미한다. 제 3 코드로부터 디코딩된 런 길이는 3이다. 이 것이 14의 상계 MR이하 이기 때문에, 이러한 런 시퀀스의 디코딩은 종료된다. 그 다음에, 디코딩된 런 길이들은 31개의 0들의 런 시퀀스를 재생하기 위하여 (14+14+3)이 함께 추가된다.
도 5는 도 1 및 도 2에 기술된 대안 런 길이 코딩 방법을 이용하여 특정 타입의 신택스 엘리먼트, 즉 coded_block_pattern(CBP)을 인코딩하는 일 구성(500)을 기술한 블록도이다. 이하의 여러 도면들 및 상세한 설명들이 CBP 신택스 엘리먼트의 인코딩을 다루기 때문에, 본 시스템들 및 방법들은 이러한 신택스 엘리먼트들의 인코딩 및 디코딩만에 제한되는 것으로 의미되지 않는다.
이전에 설명된 바와같이, CBP 신택스 엘리먼트는 8×8 블록들(루마 및 크로마)이 코딩된 비제로 변환 계수들을 포함하는 것을 식별한다. 도 5는 5개의 매크로블록들(504, 506, 508, 510, 512)의 5개의 개별 16×16 루마 블록들을 기술한다. 각각의 16×16 루마 블록은 4개의 8×8 루마 블록들로 추가로 분할된다. 각각의 8×8 루마 블록은 코딩된 비제로 변환 계수들을 포함하거나 또는 포함하지 않을 수 있다. 인접 상관관계 때문에, 인접 8×8 블록들의 루마 CBP 비트들은 종종 동일한 값을 가진다. 기술된 구성에서, 엔트로피 인코더는 8×8 루마 블록이 코딩된 변환 계수들을 포함하는지의 여부를 지시하는 심볼들의 런 시퀀스들을 인코딩하기 위하여 사용된다. 일 구성에서, "0"의 심볼은 특정 8×8 루마 블록이 코딩된 변환 계수들을 포함하지 않는다는 것을 지시하는 반면에, "1"의 심볼은 루마 블록이 코딩된 비제로 변환 계수들을 포함할 수 있다는 것을 지시한다. 일 양상에서, 엔트로피 인코더는 지수 골롬 코드를 사용하여 심볼들의 런을 인코딩한다.
도 5에 기술된 바와같이, 엔트로피 인코더는 지그-재그(zig-zag) 타입 패턴을 통해 심볼들의 런 시퀀스들을 인코딩한다. 매크로블록(504)의 제 1 3개의 8×8 루마 블록들은 이들 블록들이 코딩된 변환 계수들을 포함하지 않는다는 것을 지시하는 심볼 "0"을 포함한다. 엔트로피 인코더는 지수 골롬 코드를 사용하여 런 "3"을 인코딩하며 그 결과 코드 "011"가 비트스트림에 추가된다. 제 1 16×16 매크로블록(504)의 제 4 8×8 루마 블록은 8×8 루마 블록이 코딩된 비제로 변환 계수들을 포함할 수 없다는 것을 지시하는 심볼 "1"을 포함한다. 기술된 바와같이, 매크로블록(506)의 4개의 8×8 루마 블록들 및 매크로블록(508)의 제 1 8×8 루마 블록 모두는 심볼 "1"을 포함한다. 엔트로피 인코더는 "00110"로서 지수 골롬 코드를 사용하여 런 "6"을 인코딩하며, 이러한 코드는 비트스트림에 추가된다. 런 "6"은 1들의 연속 런이 지그-재그 패턴을 사용하여 6개의 8×8 루마 블록들을 통해 존재하기 때문에 인코딩된다. 엔트로피 인코더는 매크로블록(508)의 나머지 8×8 루마 블록들의 심볼들을 계속해서 인코딩한다. 런 시퀀스들은 심볼 "0"이 "1"로서 인코딩되는 하나의 8×8 루마 블록, 및 심볼 "1"이 "1"로서 인코딩되는 하나의 8×8 블록으로 이루어진다. 매크로블록(508)의 마지막 8×8 루마 블록 및 매크로블록들(510, 512)의 나머지 8개의 8×8 루마 블록들 모두는 심볼 "0"을 포함한다. 따라서, 심볼 "0"을 가진 9개의 8×8 루마 블록들의 런 시퀀스가 존재한다. 엔트로피 인코더는 "0001001"로서 지수 골롬 코드를 사용하여 런 "9"를 인코딩한다.
엔트로피 인코더가 5개의 기술된 매크로블록들의 루마 CBP를 인코딩한 후에, 이하의 비트스트림, 즉 "1 011 00110 1 1 0001001"이 디코더에 전송된다. 비트스트림에서 "1"의 제 1 값은 값 1의 1-비트 플래그인 초기 루마 CBP 비트(502)를 나타낸다. 일 구성에서, 초기 CBP(502) 값은 디코딩될 제 1 런 시퀀스의 심볼들의 값의 역이다.
도 5에서 인코딩된 비트스트림의 디코딩 프로세스는 디코더가 비트스트림으로부터 초기 CBP(502) 값을 판독하는 것으로부터 시작한다. 이러한 초기값은 인코더가 제 1 런 시퀀스의 심볼들의 값을 유도하는 것에 도움을 줄 것이다. 디코딩된 다음 코드는 스캐닝 순서에서 3개의 CBP 비트들의 런 길이가 제로이라는 것을 지시하는 "011"이다. 디코딩된 이하의 코드는 스캐닝 순서에서 6개의 CBP 비트들의 런 길이가 "1"이라는 것을 지시하는 "00110"이다.
도 6은 다수의 매크로블록(604, 606, 608, 610, 612)내의 CBP 비트들을 스캐닝하는 다른 구성(600)을 기술한 블록도이다. 엔트로피 인코더는 도 5에 기술된 것과 동일한 방식으로 런 시퀀스들을 인코딩하나, 엔트로피 인코더는 하나의 8×8 블록으로부터 다른 8×8블록까지의 거리가 런 길이를 통계적으로 증가시키고 코딩될 런들의 수를 감소시키기 위하여 최소로 되도록 매크로블록들을 다르게 스캔할 수 있다. 초기값(602)은 또한 인코딩되며, 제 1 런 시퀀스의 값을 지시하기 위하여 비트스트림에 추가된다.
도 7은 SNR 확장 계층과 같은 확장 계층에서 루마 CBP를 코딩하기 위한 방법(700)의 일 구성을 기술한 흐름도이다. 이하의 설명에서, SNR 확장 계층은 FGS SNR 계층 또는 비정밀(coarse) 그래뉼래러티(granularity) SNR 계층일 수 있다. 만일 코딩될 루마 CBP가 SNR 확장 계층에 있으면, 확장 계층의 CBP는 기본 계층의 CBP와 강한 상관관계를 가진다. 도 7에 기술된 방법(700)은 확장 계층의 루마 CBP가 코딩되는지의 여부를 기술한다.
방법은 (702)에서 시작하며, 확장 계층의 현재의 8×8 블록에 대응하는 기본 계층의 8×8 블록이 비제로 변환 계수들을 가지는지를 결정한다(704). 기본 계층의 대응 8×8 블록이 비제로 계수들의 존재를 지시하는 "1"의 심볼을 가지면, 본 방법은 확장 계층의 현재의 8×8 블록이 4개의 서브-블록으로서 코딩되는지를 결정하기 위하여(706) 계속된다. 만일 확장 계층의 현재의 8×8 블록이 4개의 서브-블록으로 추가로 코딩되면, 현재의 8×8 블록의 루마 CBP 비트는 코딩되지 않는다(708). 그렇치 않으면, 만일 제공된 두개의 조건들(704, 706)중 하나가 만족되지 않으면, 현재의 8×8 블록의 루마 CBP 비트는 명백하게(explicitly) 인코딩된다(710).
기본 계층의 8×8 블록은 기본 계층의 8×8 블록이 비제로 계수들을 가진다는 것을 지시하는 심볼 "1"을 포함할 수 있다. 만일 SNR 확장 계층의 루마 CBP 비트가 인코딩되지 않고 값 "1"을 가지는 것으로 추론되면, 1 비트는 이러한 값이 명백하게 인코딩되지 않아야 하기 때문에 저장된다. 그러나, 만일 확장 계층의 루마 CBP의 실제값이 "0"이면, 확장 계층의 루마 CBP 값의 오예측(mis-prediction)은 낮은 신택스 레벨로 보정될 수 있다. 만일 확장 계층의 8×8 블록이 각각의 서브-블록에 대하여 4개의 서브-블록들로서 코딩되면, 추가 신택스 엘리먼트들은 서브-블록에 임의의 비제로 계수들이 존재하는지를 지시하기 위하여 비트스트림으로 코딩된다. 8×8 블록 레벨의 확장 계층의 루마 CBP 비트에 대한 오예측은 비교적 작은 오버헤드를 가진 서브-블록 레벨로 보정될 수 있다. 도 7의 방법(700)에 의하여 기술된 추가 제약은 기본 계층의 대응하는 8×8 블록이 비제로 계수들을 지시하는 루마 CBP 비트를 가지는 것 뿐만아니라 확장 계층의 8×8 CBP 비트가 인코딩되기전에 확장 계층의 8×8 블록이 4개의 서브-블록으로서 코딩될 것을 요구한다.
일 구성에서, 대안 런 길이 코딩은 확장 계층 루마 CBP 비트들에 적용되며, 여기서 기본 계층의 대응하는 루마 CBP 비트들은 0 이거나 또는 확장 계층 루마 CBP 비트들은 8×8 블록이 4개의 서브-블록들로서 코딩되지 않기 때문에 명백하게 인코딩되어야 한다. 일 구성에서, 인코딩되는, 확장 계층의 루마 CBP 비트들은 2개의 개별 스캔으로 코딩될 수 있다. FGS 계층의 루마 CBP를 코딩하는 한 시스템에 있어서, 기본 계층의 대응하는 루마 CBP 비트가 타입-0 루마 CBP 비트들로서 지칭되는 루마 CBP 비트 및 기본 계층의 대응하는 루마 CBP 비트가 1인 루마 CBP 비트는 타입-1 루마 CBP 비트로서 지칭된다. 각각의 스캔에서, 한 타입의 루마 CBP 비트들은 대안 런 길이 코딩을 사용하여 코딩된다. 2개의 스캔은 순차적으로 수행될 수 있거나 또는 동시에 수행될 수 있다. 다른 구성에서, 기본 계층 CBP 정보는 확장 계층의 루마 CBP를 코딩할때 무시된다.
도 8은 도 7에 다라 기술된 방법(700)의 일 구성(800)을 기술한 블록도이다. 기술된 바와같이, SNR 확장 계층의 매크로블록들(804, 806, 808, 810, 812)의 5개의 16×16 루마 블록들은 엔트로피 인코더에 의하여 인코딩된다. 일 구성에서, 엔트로피 인코더는 매크로블록들의 각각의 8×8 블록에 대한 루마 CBP 비트들을 인코딩한다. 기술된 바와같이, 제 1 매크로블록(804)의 3개의 8×8 블록들은 이들 8× 8 블록들에 비제로 계수들이 존재하지 않는다는 것을 지시하는 심볼 "0"을 가진다. 제 1 매크로블록(804)의 제 4 8×8 블록(804A)은 비제로 계수들의 존재를 지시하는 심볼 "1"을 가진 기본 계층의 8×8 블록에 대응한다. 일 구성에서, 제 4 8×8 블록(804A)은 또한 서브-블록들(도시안됨)으로 추가로 코딩된다. 기술된 바와같이, 엔트로피 인코더는 이러한 제 4 8×8 블록(804A)을 바이패스(bypass)하며, 제 4 8×8 블록(804A)과 연관된 루마 CBP 비트를 명백하게 인코딩하지 않는다. 루마 CBP 비트는 기본 계층의 대응하는 8×8 블록이 "1"의 CBP 비트를 가지고 8×8 블록(804A)이 서브-블록들로 추가로 분할되기 때문에 심볼 "1"을 가지는 것으로 추론된다. 일 구성에서, 엔트로피 인코더는 "011"로서 지수 골롬 코드를 사용하여 3개의 0들의 런 시퀀스를 인코딩하며 이를 비트스트림에 포함시킨다.
엔트로피 인코더는 매크로블록(806)의 제 2 16×16 루마 블록을 추가로 스캔한다. 4개의 8×8 블록들중 3개는 비제로 계수들의 존재를 지시하는 심볼 "1"을 가진다. 제 4 8×8 블록(806A)은 기본 계층에 비제로 계수들이 존재한다는 것을 지시하는 심볼 "1"을 가지는 기본 계층의 8×8 블록에 대응한다. 일 구성에서, 이러한 제 4 8×8 블록(806A)은 서브-블록들(도시안됨)으로 추가로 분할된다. 엔트로피 인코더는 이러한 제 4 8×8 블록(806A)을 바이패스하며, 이러한 블록과 연관된 루마 CBP를 명백하게 인코딩하지 않는다. 엔트로피 인코더는 매크로블록들내의 나머지 8×8 블록들을 스캐닝하고 서브-블록들로서 추가로 코딩되고 기본 계층의 대응하는 8×8 블록(810A)이 심볼 "1"을 가지는 8×8 블록(810A)을 바이패스하는 유사한 방식을 계속한다. 이하의 비트스트림, 즉 초기 비트(802)가 "1"로 세팅되 는 "1 011 00101 0001001" 및 제 1 코딩된 루마 CBP 비트의 값의 역이 디코더에 전송된다.
도 9는 mb_skip_flag 비트가 한정되는 확장 계층에서 대안 런 길이 코딩을 이용하여 완전한 매크로블록(910)의 인코딩을 바이패스하는 일 구성(900)을 기술한 블록도이다. 도 9에 기술된 매크로블록들(904, 906, 908)의 제 1 3개의 8×8 루마 블록들은 도 8에 도시된 것과 동일하다. 엔트로피 인코더는 매크로블록들의 각각의 8×8 블록을 스캔하며, 만일 8×8 블록이 서브-블록들로 추가로 코딩되고 기본 계층의 대응하는 8×8 블록이 "1"의 값을 가지지 않는다면 루마 CBP 비트값을 인코딩한다. 도 7 및 도 8에서 이전에 기술된 바와같이, 이들 8×8 블록들(904A, 906A)은 바이패스되며 이들의 대응하는 루마 CBP 비트들인 인코딩되지 않는다. 일 구성에서, 매크로블록(910)의 완전한 16×16 루마 블록은 엔트로피 인코더에 의하여 바이패스될 수 있다. 만일 mb_skip_flag 비트가 한정되고 이의 값이 1이면, 인코더는 현재의 매크로블록을 스킵한다. 만일 매크로블록이 스킵되면, 루마 CBP 및 크로마 CBP 비트들은 0인 것으로 추론된다. 일 구성에서, 엔트로피 인코더는 현재의 매크로블록이 완전하게 스킵될 것이라는 것을 지시하는 mb_skip_flag(909)을 스캔한다. 이하의 도면에서, 엔트로피 인코더가 제 3 매크로블록(908)과 연관된 루마 CBP 비트들의 스캔을 완료할때, 인코더는 제 4 매크로블록(910)을 스킵하며, 제 5 매크로블록(912)의 루마 CBP 비트들을 계속해서 스캔한다. 루마 CBP에 관한 결과적인 비트스트림은 초기 CBP 비트(902)가 "1"인 "1 011 00101 00110"이며, 루마 CBP 비트의 값의 역은 제 1런으로 코딩된다. 이러한 비트스트림은 그것이 디코더 에 전송되기전에 다른 신택스 엘리먼트들로부터 형성된 비트스트림과 인터리빙될 수 있다.
설명된 바와같이, mb_skip_flag는 비정밀 그래뉼래러티(granularity) 확장 계층 또는 정밀 그래뉼래러티 SNR 확장 계층일 수 있는 확장 계층의 코딩에 사용될 수 있다. 확장 계층의 슬라이스(slice)는 인트라-예측(intra-predict)이 아니다. 넌-스케일러블(non-scalable) 비디오 코딩에서, 인트라-예측된 슬라이스는 현재의 슬라이스내의 샘플들에 기초하여 예측되는 슬라이스이다. 스케일러블 비디오 코딩에서, 확장 계층의 인트라-예측된 슬라이스는 예측이 기본 계층의 대응 프레임의 샘플들로부터 구성되도록 정의될 수 있다. 가변 길이 코딩(VLC)이 엔트로피 코딩 방법으로서 사용될때, mb_skip_flag들은 H.264/AVC 표준들에서 규정된 방법과 동일한 방법을 사용하여 mb_skip_run들로서 코딩된다. 다른 양상에서, mb_skip_flag는 이전에 설명된 바와같이 대안 런 길이 코딩을 사용하여 코딩된다.
도 10은 대안 런 길이 코딩 및 전이 플래그들을 사용하여 크로마 코딩된 블록 패턴들을 코딩하는 일 구성(1000)을 기술한 블록도이다. 도 10의 블록도는 이전에 설명된 바와같이 크로마 블록들에 관한 추가 신택스 엘리먼트들을 코딩하기 위하여 이용될 수 있다. 4개의 2진 심볼들로 구성된 루마 CBP와 다르게, 크로마 CBP는 0 내지 2의 값을 가질 수 있다. H.264/AVC 및 이의 SVC 확장들에서, 단일 크로마 CBP는 Cb 및 Cr 블록들에 대하여 정의된다. 이하의 설명에서, 크로마 블록은 다른 방식으로 지시하지 않는한 Cb 및 Cr 블록들을 지칭한다. 기술된 동일한 방식들은 다른 선명도(definition)를 가진 크로마 CBP를 코딩하기 위하여 확장될 수 있다. 크로마 CBP에 대하여 단지 3개의 가능한 값들이 존재하기 때문에, 특정 크로마 CBP는 단지 한 값으로부터 다른 2개의 값들중 하나로 변화할 수 있다. 예컨대, 만일 현재의 크로마 CBP 값이 1이면, 런 시퀀스의 끝에서, 다음 런의 크로마 CBP 값은 단지 0 또는 2이어야 한다. 일 구성에서, 1-비트 전이 플래그는 새로운 크로마 CBP의 값을 시그널링한다.
기술된 바와같이, 제 1 6개의 크로마 블록들(1004)은 0의 크로마 CBP 값들을 가지며, 이하의 7개의 크로마 블록들(1006)은 값 2를 가지며, 이하의 4개의 크로마 블록들(1008)은 값 0을 가지며, 나머지 5개의 크로마 블록들(1010)은 값 1을 가진다. 일 구성에서, 엔트로피 인코더는 지수 골롬 코드를 사용하여 이들 값들을 코딩한다. 6개의 0들(1004)의 제 1런은 "00110"으로서 인코딩된다. 값 2를 가진 7개의 블록들(1006)의 런 시퀀스는 "00111"로서 인코딩된다. 1-비트 전이 플래그(도시안됨)은 이들 2개의 인코딩된 런들사이에 삽입된다. 일 구성에서, 전이 플래그는 다음으로 인코딩된 크로마 CBP 런 시퀀스의 크로마 CBP 값을 지시하기 위하여 0 또는 1의 값이 할당될 수 있다. 예컨대, 값 1의 전이 플래그는 크로마 CBP의 다음 런을 지시하는 0의 값을 가진 크로마 CBP의 런이 2의 값을 가진후에 삽입될 수 있다. 7개의 연속 블록들(1006)을 가진 런후에, 엔트로피 인코더는 4개의 0들(1008)의 런 뿐만아니라 5개의 1들(1010)의 런을 인코딩한다. 값 1의 전이 플래그는 크로마 CBP(1008)의 다음 런을 지시하는 값 2(1006)의 크로마 CBP의 런이 0의 값을 가진후에 비트스트림에 삽입될 수 있다. 값 0의 전이 플래그는 크로마 CBP(1010)의 다음 런을 지시하는 값 0(1008)의 크로마 CBP의 런이 1의 값을 가진후 에 비트스트림에 삽입될 수 있다. 일 구성에서, 디코더는 새로운크로마Cbp=(마지막크로마Cbp+전이플래그+1)%3와 같이, 마지막 크로마 CBP 및 전이 플래그로부터 새로운 크로마 CBP 값을 유도한다.
전이 플래그는 다른 방식들로 정의될 수 있다. 일 구성에서, 전이 플래그는 인코더에서 마지막크로마Cbp 및 새로운크로마Cbp에 의하여 인덱싱되는 룩업 테이블로부터 검색될 수 있다. 디코더에서는 마지막크로마Cbp 및 전이 플래그로부터 새로운크로마Cbp를 유도하기 위하여 사용될 수 있는 매칭 룩업 테이블이 정의된다. 초기값은 크로마 CBP에 관한 임의의 다른 정보가 제 1런에서 크로마 CBP의 값을 유도하기 위하여 코딩되기전에 비트스트림에 저장된다.
추가 양상에서, 값 1의 크로마 CBP의 런 및 값 2의 크로마 CBP의 런은 구별되지 않는다. 제로(0) 크로마 CBP의 런들 및 비제로 크로마 CBP의 런들은 코딩된다. 각각의 런후에, 런-길이가 "n"이고 비제로 크로마 CBP가 디코딩된다고 가정하면, "n" 추가 비트들은 "n" 크로마 CBP 값들의 각각이 1 또는 2인지를 식별하기 위하여 디코딩된다. 초기값은 크로마 CBP에 관한 임의의 다른 정보가 코딩되기전에 비트스트림에 저장된다. 0의 값은 대안 런 길이 코딩을 사용하여 코딩될 제 1 크로마 CBP가 비제로인 경우에 초기 값으로서 사용된다. 그렇치 않으면, 1의 값은 초기 값으로서 사용된다.
다른 양상에서, 크로마 CBP의 런들은 도 3에 기술된 제로 런 코딩 방식에 따라 코딩될 수 있다. 비제로 크로마 CBP 전 제로들의 런은 지수 골롬 코드를 사용하여 코딩될 수 있다. 추가 1-비트 플래그는 비제로 크로마 CBP 값이 1 또는 2인 지의 여부를 지시하기 위하여 코딩된다. 이러한 특징은 연속 비제로 크로마 CBP 값들이 함께 그룹핑되지 않는다는 점에서 이전에 기술된 구성들과 다르다.
도 11은 디지털 이미지들 및/또는 디지털 비디오를 처리하도록 구성된 장치(1100)를 기술한다. 장치(1100)는 디지털 텔레비전, 디지털 직접 방송 시스템, 무선 통신 장치, 개인휴대단말(PDA), 랩탑 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 디지털 기록 장치, 네트워크-인에이블 디지털 텔레비전, 셀룰라 또는 위성 무선 전화, 또는 화상전화(VT: video telephony) 능력들을 가진 임의의 원격통신 장치를 나타내거나 또는 이들 장치들로 구현될 수 있다.
장치(1100)는 이미지 및/또는 비디오 데이터를 처리, 인코딩, 디코딩, 전송 및/또는 수신할 수 있다. 비디오 데이터는 비디오 캡처 유닛(또는 이미지 센서)(1112)과 같은 비디오 카메라에 의하여 캡처되거나, 비디오 아카이브(archive)로부터 검색되거나, 또는 다른 방식으로 획득될 수 있다. 장치(1100)의 비디오 코딩 유닛(1110)은 MPEG-4, ITU-T H.263, ITU-T H.264 또는 임의의 다른 비디오 코딩 표준과 같은 비디오 코딩 표준을 사용할 수 있다. 비디오 코딩 유닛(1110)은 모션 추정 및 모션 보상과 같은 인터-프레임 코딩 기술들, 및 공간 추정 및 인트라-예측 코딩 기술들과 같은 인트라-프레임 코딩 기술들을 지원할 수 있다.
장치(1100)는 이미지들 또는 비디오 시퀀스들을 캡처하고 캡처된 이미지들 또는 시퀀스들을 메모리(1114)에 저장하기 위하여 카메라 또는 비디오 카메라와 같은 이미지/비디오 캡처 장치(1112)를 포함할 수 있다. 이미지/비디오 처리 유닛(1102)은 이미지들 및/또는 비디오 시퀀스들을 처리할 수 있다. 메모리(1104)는 이러한 처리전 및 후에 이미지들 및/또는 비디오 시퀀스들을 저장할 수 있다.
트랜시버(1116)는 코딩된 비디오 시퀀스들을 다른 장치로부터 그리고 다른 장치에 수신 및 전송할 수 있다. 트랜시버(1116)는 코드 분할 다중접속(CDMA)과 같은 무선 통신 표준을 사용할 수 있다. CDMA 표준들의 예들은 CDMA 1xEV-DO, 광대역 코드 분할 다중접속(WCDMA) 등을 포함한다.
장치(1100)의 하나 이상의 엘리먼트들은 통신 버스(1118)를 통해 통신가능하게 접속된다. 도 1에 도시된 엘리먼트들에 부가하거나 또는 대신하여, 다른 엘리먼트들은 장치(1100)에 포함될 수 있다. 도 1에 기술된 구조는 단순히 예시적이다. 여기에 제시된 기술들은 다양한 다른 구조들로 구현될 수 있다.
메모리(1114)는 비교적 큰 메모리 공간을 가질 수 있다. 메모리(1114)는 동적 랜덤 액세스 메모리(DRAM) 또는 FLASH 메모리를 포함할 수 있다. 메모리(1114)는 "NOR" 또는 "NAND" 게이트 메모리 기술 또는 임의의 다른 데이터 저장 기술을 포함할 수 있다. 다른 예들에서, 메모리(1114)는 비휘발성 메모리 또는 임의의 다른 타입의 데이터 저장 유닛을 포함할 수 있다.
이미지/비디오 처리 유닛(1102)은 하드웨어, 소프트웨어, 펌웨어, 및/또는 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들(DSP), 주문형 집적회로들(ASIC), 필드 프로그램 가능 게이트 어레이들(FPGA) 또는 이들의 다양한 조합을 포함할 수 있는 이동 무선전화 또는 다른 이동장치에 대한 칩 셋을 포함할 수 있다. 처리 유닛(1102)은 프론트-엔드(front-end) 이미지/비디오 처리 유닛(1108) 및 이미지/비디오 코딩 유닛(1119)에 접속된 로컬 메모리(1104)를 포함할 수 있다. 코딩 유닛(1119)은 디지털 비디오 데이터를 인코딩(또는 압축)하고 디코딩(또는 압축해제)하는 인코더/디코더(CODEC)를 포함할 수 있다.
로컬 메모리(1104)는 메모리(1114)에 비하여 작고 빠른 메모리 공간을 포함할 수 있다. 예컨대, 로컬 메모리(1104)는 동기식 동적 랜덤 액세스 메모리(SDRAM)을 포함할 수 있다. 로컬 메모리(1104)는 프로세서-집중(processor-intensive) 코딩 프로세스동안 데이터를 고속으로 액세스하기 위하여 처리 유닛(1102)의 다른 컴포넌트들과 집적된 "온-칩(on-chip)" 메모리를 포함할 수 있다. 그러나, 메모리들(1114, 1104)은 하나의 메모리에 결합될 수 있거나 또는 다수의 다른 구성들로 구현될 수 있다. 메모리 제어기(1106)는 메모리 페치(fetch)들을 제어하고 로컬 메모리(1104)에 라이트백(write back)할 수 있다.
프론트-엔드 이미지/비디오 처리 유닛(1108)은 이미지 품질을 개선하여 비디오 시퀀스의 품질을 개선하기 위하여 비디오 시퀀스의 프레임들에 대하여 하나 이상의 이미지 처리 기술들을 수행할 수 있다. 예컨대, 프론트-엔드 이미지/비디오 처리 유닛(1108)은 디모자이킹(demosaicing), 렌즈 롤오프 보정, 스케일링, 컬러 보정, 컬러 변환 및 공간 필터링과 같은 기술들을 수행할 수 있다. 프런트-엔드 이미지/비디오 처리 유닛(1108)은 다른 기술들을 수행할 수 있다. 일반적으로, 유닛(1108)에 의하여 수행되는 기술들은 이 기술들이 이미지/비디오 코딩 유닛(1110)에 의한 코딩에 선행하기 때문에 "프론트-엔드" 이미지 처리 기술들로서 지칭된다.
이미지/비디오 캡처 유닛(1112)은 센서들의 표면상에 배열된 컬러 필터 어레이들(CFA)을 포함하는 이미지 센서들을 포함할 수 있다. 유닛(1108)에 의하여 수 행되는 프론트-엔드 이미지 처리는 캡처 유닛(1112)에 의하여 캡처된 비디오 시퀀스의 품질을 개선할 수 있다. 예컨대, 프론트-엔드 처리 유닛(1108) 및/또는 코딩 유닛(1110)은 캡처 유닛(1112)에 의하여 캡처된 이미지들을 처리하도록 프로그래밍된 디지털 신호 프로세서(DSP)를 포함할 수 있다. 메모리(1104)(또는 메모리(1114))의 동일한 영역은 프론트-엔드 이미지 처리 목적으로 그리고 다른 저장 목적으로 사용될 수 있다.
이미지/비디오 코딩 유닛(1110)은 인터-프레임 압축 및/또는 인트라-프레임 압축과 같은 하나 이상의 비디오 압축 기술들을 포함할 수 있는 이미지 및/또는 비디오 코딩을 수행할 수 있다. 예컨대, 코딩 유닛(1110)은 인터-프레임 압축을 제공하기 위하여 시간 또는 인터-프레임 데이터 보정을 이용하는 모션 추정 및 모션 보상 기술들을 구현할 수 있다. 대안적으로 또는 부가적으로, 코딩 유닛(1110)은 인트라-프레임 압축을 제공하기 위하여 공간 또는 인트라-프레임 데이터 보정을 이용하는 공간 추정 및 인트라-예측 기술들을 수행할 수 있다. 모션 보상(또는 인트라-예측)의 출력은 "잔여 신호(residual)"로서 지칭되며, 코딩될 현재의 비디오 블록 및 모션 추정 또는 공간 추정에 의하여 식별된 예측 블록사이의 차이들을 지시하는 데이터의 블록들을 포함할 수 있다.
코딩 유닛(1110)이 잔여 신호를 생성하기 위하여 모션 보상(또는 인트라-예측)을 수행한후에, 잔여 신호를 추가로 코딩하고 데이터를 추가로 압축하기 위하여 일련의 부가 단계들이 수행될 수 있다. 추가 단계들은 사용되는 코딩 표준에 따를 수 있으나, 일반적으로 "잔여 코딩"으로 지칭된다. 코딩 유닛(1110)은 비디오 시 퀀스를 트랜시버(1116)를 통해 다른 장치에 통신하는데 필요한 데이터량을 감소시키기 위하여 이들 비디오 압축 기술들중 하나 이상의 기술을 수행할 수 있다.
정보 및 신호는 다양한 다른 기술들중 일부를 사용하여 표현될 수 있다는 것을 이해할 것이다. 예컨대, 앞의 상세한 설명 전반에 걸쳐 참조될 수 있는 데이터, 지시어, 명령어, 정보, 신호, 비트, 심볼 및 칩은 전압, 전류, 전자기 파, 자계 또는 자기입자, 광계 또는 광입자, 또는 이들의 임의의 조합에 의해 표현될 수 있다.
여기에 기술된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록, 모듈, 회로, 및 알고리즘 단계는 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 조합으로 구현될 수 있다. 이러한 하드웨어 및 소프트웨어의 상호 호환성을 명확하게 기술하기 위하여, 다양한 예시적인 소자, 블록, 모듈, 회로, 및 단계는 그들의 기능들과 관련하여 앞서 기술되었다. 이러한 기능이 하드웨어로 구현되는지 또는 소프트웨어로 구현되는지의 여부는 전체 시스템상에 부여된 특정 응용 및 설계 제약들에 따른다. 당업자는 각각의 특정 응용에 대하여 가변 방식으로 기술된 기능을 구현할 수 있으나 이러한 구현 결정은 본 시스템들 및 방법들의 범위로부터 벗어나지 않고 해석되어야 한다.
여기에 기술된 구성들과 관련하여 설명된 다양한 예시적인 논리 블록, 모듈, 및 회로는 범용 프로세서, 디지털 신호 처리기(DSP), 주문형 집적 회로(ASIC), 필드 프로그램가능 게이트 어레이(FPGA) 또는 다른 프로그램가능 논리 디바이스, 개별 게이트 또는 트랜지스터 논리장치, 개별 하드웨어 소자, 또는 여기에 기술된 기 능들을 수행하도록 설계된 임의의 조합에 의해 구현 또는 수행될 수 있다. 범용 프로세서는 마이크로 프로세서일 수 있으나, 대안적으로 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로 제어기, 또는 상태 머신일 수 있다. 프로세서는 또한 계산장치들의 조합, 예컨대 DSP와 마이크로프로세서의 조합, 다수의 마이크로 프로세서들의 조합, DSP 코어와 관련된 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 구성들로서 구현될 수 있다.
여기에 기술된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어, 프로세서에 의해 실행되는 소프트웨어 모듈, 또는 이들의 조합으로 직접 구현될 수 있다. 소프트웨어 모듈은 랜덤 액세스 메모리(RAM), 플래시 메모리, 판독전용 메모리(ROM), 소거가능 및 프로그램가능 판독 전용 메모리(EPROM), 전기적 소거가능 프로그램 가능 판독 전용 메모리(EEPROM), 레지스터, 하드 디스크, 제거가능 디스크, 컴팩트 디스크 판독-전용 메모리(CD-ROM), 또는 당업계에 공지된 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적 저장 매체는 프로세서에 접속되며, 프로세서는 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있다. 대안으로써, 저장 매체는 프로세서와 통합될 수 있다. 프로세서 및 저장 매체는 ASIC에 배치될 수 있다. ASIC는 사용자 단말에 상주할 수 있다. 대안으로써, 프로세서 및 저장 매체는 사용자 단말에서 개별 소자로서 배치될 수 있다.
여기에 기술된 방법들은 기술된 방법을 달성하기 위한 하나 이상의 단계들 또는 동작들을 포함한다. 방법 단계들 및/또는 동작들은 본 시스템들 및 방법들의 범위로부터 벗어나지 않고 서로 교환가능할 수 있다. 다시 말해서, 구성의 적절한 동작을 위하여 단계들 또는 동작들의 특정 순서가 요구되지 않는한, 특정 단계들 및/또는 동작들의 순서 및/또는 용도는 본 시스템들 및 방법들의 범위로부터 벗어나지 않고 수정될 수 있다.
본 시스템들 및 방법들의 특정 구성들 및 응용들이 기술된 반면에, 시스템들 및 방법들은 여기에 기술된 구성 및 컴포넌트들에 제한되지 않는다는 것이 이해되어야 한다. 당업자에게 명백한 다양한 수정들, 변형들 및 변화들이 시스템들 및 방법들의 사상 및 범위로부터 벗어나지 않고 여기에 기술된 방법들 및 시스템들의 구조, 동작 및 세부사항들에 대하여 이루어질 수 있다.

Claims (23)

  1. 비디오 압축과 연관된 정보를 코딩하기 위한 방법으로서,
    비디오 시퀀스를 수신하는 단계;
    상기 비디오 시퀀스를 다수의 비디오 프레임들로 처리하는 단계;
    상기 다수의 비디오 프레임들의 각각의 프레임을 다수의 매크로블록들로 처리하는 단계;
    비디오 프레임들의 시퀀스의 매크로블록들을 인코딩하는 단계를 포함하고, 상기 인코딩하는 단계는:
    상기 비디오 시퀀스로부터, 현재 프레임에서, 매크로블록의 부분인 원시(original) 비디오 신호의 예측 신호를 구성하는 단계;
    상기 현재 프레임에서 상기 원시 비디오 신호로부터 상기 원시 비디오 신호의 예측 신호를 감산함으로써 잔여 신호(residual signal)를 형성하는 단계;
    상기 잔여 신호에 변환(transform)을 적용하는 단계;
    상기 변환에 기초하여 다수의 변환 계수들을 양자화하는 단계;
    상기 매크로블록들에 대한 다수의 코딩된 블록 패턴들을 포함하는 신택스 엘리먼트들을 생성하는 단계 ― 상기 코딩된 블록 패턴들은 각각의 매크로블록들의 상이한 비디오 블록들이 비제로(non-zero) 변환 계수들을 포함하고 있는지 여부를 지시하는 비트들을 포함함 ―; 및
    동일한 카테고리의 신택스 엘리먼트들을 지시하는 심볼들을 함께 코딩하는 단계를 포함하고, 상기 심볼들을 코딩하는 단계는:
    런-길이(run-length) 코딩에서 정의(define)되는 하나 이상의 런(run)들이 다수의 상기 매크로블록들과 연관된 코딩된 블록 패턴들의 심볼들을 함께 코딩하도록 상기 코딩된 블록 패턴들을 함께 런-길이 코딩하는 단계를 포함하는,
    비디오 압축과 연관된 정보를 코딩하기 위한 방법.
  2. 제 1항에 있어서, 상기 코딩된 블록 패턴을 런-길이 코딩하는 단계는 제로(zero)들의 런들 및 비제로 값들의 런들을 코딩하는 단계를 포함하고, 상기 제로들의 런들 중 적어도 몇몇 및 상기 비제로 값들의 런들 중 적어도 몇몇은 상기 코딩된 블록 패턴들 중 상이한 것들과 연관된 심볼들을 함께 코딩하는,
    비디오 압축과 연관된 정보를 코딩하기 위한 방법.
  3. 제 1항에 있어서, 런-길이 코딩하는 단계는 제로들의 코딩된 런들 및 비제로 값들의 런들의 초기값을 지시하는 초기값 심볼을 코딩하는 단계를 더 포함하는,
    비디오 압축과 연관된 정보를 코딩하기 위한 방법.
  4. 제 1항에 있어서, 상기 코딩된 블록 패턴을 런-길이 코딩하는 단계는 제로들의 런들만을 코딩하는 단계를 포함하고, 상기 제로들의 런들 중 적어도 몇몇은 상기 코딩된 블록 패턴들 중 상이한 것들과 연관된 심볼들을 함께 코딩하는,
    비디오 압축과 연관된 정보를 코딩하기 위한 방법.
  5. 제 1항에 있어서, 런-길이 코딩하는 단계는 심볼들의 현재 런에서 심볼의 값이 심볼들의 다음 런에서 또 다른 심볼의 값으로 어떻게 변화하는지를 지시하기 위해 전이 심볼(transition symbol)을 삽입하는 단계를 포함하는,
    비디오 압축과 연관된 정보를 코딩하기 위한 방법.
  6. 제 1항에 있어서, 상기 매크로블록들을 인코딩하는 단계는 매크로블록 스킵 심볼을 코딩하는 단계를 포함하는,
    비디오 압축과 연관된 정보를 코딩하기 위한 방법.
  7. 제 1항에 있어서, 상기 매크로블록들을 인코딩하는 단계는 매크로블록 타입 심볼을 코딩하는 단계를 포함하는,
    비디오 압축과 연관된 정보를 코딩하기 위한 방법.
  8. 제 1항에 있어서, 상기 매크로블록들을 인코딩하는 단계는 델타(delta) 양자화 파라미터 심볼을 코딩하는 단계를 포함하는,
    비디오 압축과 연관된 정보를 코딩하기 위한 방법.
  9. 제 1항에 있어서, 상기 코딩된 블록 패턴들을 함께 런-길이 코딩하는 것과 연관된 최대 런 길이를 정의하는 단계를 더 포함하는,
    비디오 압축과 연관된 정보를 코딩하기 위한 방법.
  10. 제 1항에 있어서, 상기 코딩된 블록 패턴들을 런-길이 코딩하는 단계는 상기 코딩된 블록 패턴들의 심볼들을 래스터(raster) 스캔 순서로 스캔하는 단계를 포함하는,
    비디오 압축과 연관된 정보를 코딩하기 위한 방법.
  11. 제 1항에 있어서, 상기 코딩된 블록 패턴들을 런-길이 코딩하는 단계는 래스터 스캔 순서에 대응하지 않는 순서로 상기 코딩된 블록 패턴들의 심볼들을 스캔하는 단계를 포함하는,
    비디오 압축과 연관된 정보를 코딩하기 위한 방법.
  12. 제 1항에 있어서, 스킵 플래그 비트를 정의하는 단계 및 적어도 하나의 신택스 엘리먼트 심볼들의 특정 세트의 코딩을 바이패스(bypass)하는 단계를 더 포함하는,
    비디오 압축과 연관된 정보를 코딩하기 위한 방법.
  13. 제 12항에 있어서, 상기 방법은 기본 계층 및 확장 계층을 생성하는 단계를 포함하고, 상기 방법은 상기 확장 계층에서 상기 스킵 플래그 비트를 정의하는 단계를 더 포함하는,
    비디오 압축과 연관된 정보를 코딩하기 위한 방법.
  14. 제 1항에 있어서, 상기 방법은 기본 계층 및 확장 계층을 생성하는 단계를 포함하고, 상기 방법은 상기 기본 계층의 대응하는 심볼들에 기초하여 상기 확장 계층의 심볼들을 코딩하는 단계를 더 포함하는,
    비디오 압축과 연관된 정보를 코딩하기 위한 방법.
  15. 비디오 압축과 연관된 정보를 코딩하도록 구성되는 장치로서,
    프로세서;
    상기 프로세서와 전자적으로 통신하는 메모리;
    상기 메모리에 저장되는 명령들을 포함하며;
    상기 명령들은,
    비디오 시퀀스를 수신하고;
    상기 비디오 시퀀스를 다수의 비디오 프레임들로 처리하고;
    상기 다수의 비디오 프레임들의 각각의 프레임을 다수의 매크로블록들로 처리하고;
    비디오 프레임들의 시퀀스의 매크로블록들을 인코딩하도록 실행가능하고, 상기 인코딩하는 것은:
    상기 비디오 시퀀스로부터, 현재 프레임에서, 매크로블록의 부분인 원시 비디오 신호의 예측 신호를 구성하는 것;
    상기 현재 프레임에서 상기 원시 비디오 신호로부터 상기 원시 비디오 신호의 예측 신호를 감산함으로써 잔여 신호를 형성하는 것;
    상기 잔여 신호에 변환을 적용하는 것;
    상기 변환에 기초하여 다수의 변환 계수들을 양자화하는 것;
    상기 매크로블록들에 대한 다수의 코딩된 블록 패턴들을 포함하는 신택스 엘리먼트들을 생성하는 것 ― 상기 코딩된 블록 패턴들은 각각의 매크로블록들의 상이한 비디오 블록들이 비제로 변환 계수들을 포함하고 있는지 여부를 지시하는 비트들을 포함함 ―; 및
    동일한 카테고리의 코딩된 블록 패턴들을 지시하는 심볼들을 함께 코딩하는 것
    을 포함하고, 상기 심볼들을 코딩하는 것은 런-길이 코딩에서 정의되는 하나 이상의 런들이 다수의 상기 매크로블록들과 연관된 코딩된 블록 패턴들의 심볼들에 걸치도록(span) 상기 코딩된 블록 패턴들을 함께 런-길이 코딩하는 것을 포함하는,
    비디오 압축과 연관된 정보를 코딩하도록 구성되는 장치.
  16. 제 15항에 있어서, 상기 코딩된 블록 패턴을 런-길이 코딩하는데 있어서, 상기 프로세서는 제로들의 런들 및 비제로 값들의 런들을 코딩하고, 상기 제로들의 런들 중 적어도 몇몇 및 상기 비제로 값들의 런들 중 적어도 몇몇은 상기 코딩된 블록 패턴들 중 상이한 것들과 연관된 심볼들에 걸치는(span),
    비디오 압축과 연관된 정보를 코딩하도록 구성되는 장치.
  17. 비디오 압축과 연관된 정보를 코딩하기 위해 실행가능한 명령들을 포함하는 컴퓨터-판독가능 매체로서,
    상기 명령들은 프로세서에 의해 실행 시에 상기 프로세서로 하여금 방법을 수행하도록 하고, 상기 방법은:
    비디오 시퀀스를 수신하는 단계;
    상기 비디오 시퀀스를 다수의 비디오 프레임들로 처리하는 단계;
    상기 다수의 비디오 프레임들의 각각의 프레임을 다수의 매크로블록들로 처리하는 단계;
    비디오 프레임들의 시퀀스의 매크로블록들을 인코딩하는 단계를 포함하고, 상기 인코딩하는 단계는 :
    상기 비디오 시퀀스로부터, 현재 프레임에서, 매크로블록의 부분인 원시 비디오 신호의 예측 신호를 구성하는 단계;
    상기 현재 프레임에서 상기 원시 비디오 신호로부터 상기 원시 비디오 신호의 예측 신호를 감산함으로서 잔여 신호를 형성하는 단계;
    상기 잔여 신호에 변환을 적용하는 단계;
    상기 변환에 기초하여 다수의 변환 계수들을 양자화하는 단계;
    상기 매크로블록들에 대한 다수의 코딩된 블록 패턴들을 포함하는 신택스 엘리먼트들을 생성하는 단계 ― 상기 코딩된 블록 패턴들은 각각의 매크로블록들의 상이한 비디오 블록들이 비제로 변환 계수들을 포함하고 있는지 여부를 지시하는 비트들을 포함함 ―; 및
    동일한 카테고리의 신택스 엘리먼트들을 지시하는 심볼들을 함께 코딩하는 단계를 포함하고, 상기 심볼들을 코딩하는 단계는:
    런-길이 코딩에서 정의되는 하나 이상의 런들이 다수의 상기 매크로블록들과 연관된 코딩된 블록 패턴들의 심볼들을 함께 코딩하도록 상기 코딩된 블록 패턴들을 함께 런-길이 코딩하는 단계를 포함하는,
    비디오 압축과 연관된 정보를 코딩하기 위해 실행가능한 명령들을 포함하는 컴퓨터-판독가능 매체.
  18. 제 17항에 있어서, 상기 코딩된 블록 패턴을 런-길이 코딩하는데 있어서, 상기 명령들의 실행 시에, 상기 프로세서는 제로들의 런들 및 비제로 값들의 런들을 코딩하고, 상기 제로들의 런들 중 적어도 몇몇 및 상기 비제로 값들의 런들 중 적어도 몇몇은 상기 코딩된 블록 패턴들 중 상이한 것들과 연관된 심볼들에 걸치는(span),
    비디오 압축과 연관된 정보를 코딩하기 위해 실행가능한 명령들을 포함하는 컴퓨터-판독가능 매체.
  19. 비디오 압축과 연관된 정보를 디코딩하기 위한 방법으로서,
    런-길이 코딩에서 정의되는 하나 이상의 런들이 다수의 매크로블록들과 연관된 다수의 코딩된 블록 패턴들의 심볼들을 함께 코딩하도록 함께 런-길이 인코딩되는 상기 코딩된 블록 패턴들을 포함하는 인코딩된 비디오 시퀀스를 수신하는 단계;
    심볼들을 생성하기 위해 상기 코딩된 블록 패턴들을 함께 디코딩하는 단계;
    상기 심볼들에 기초하여 다수의 변환 계수들을 생성하는 단계;
    상기 다수의 변환 계수들을 역양자화(dequantize)하는 단계;
    잔여 신호를 형성하기 위해 상기 변환 계수들에 역변환(inverse transform)을 적용하는 단계; 및
    상기 잔여 신호에 기초하여 디코딩된 비디오 시퀀스를 구성하는 단계
    를 포함하는, 비디오 압축과 연관된 정보를 디코딩하기 위한 방법.
  20. 비디오 압축과 연관된 정보를 디코딩하도록 구성되는 전자 디바이스로서,
    프로세서;
    상기 프로세서와 전자적으로 통신하는 메모리; 및
    메모리에 저장되는 명령들을 포함하며; 실행 시에 상기 명령들은 상기 프로세서로 하여금:
    런-길이 코딩에서 정의되는 하나 이상의 런들이 다수의 매크로블록들과 연관된 다수의 코딩된 블록 패턴들의 심볼들에 걸치도록(span) 함께 런-길이 인코딩되는 상기 코딩된 블록 패턴들을 포함하는 인코딩된 비디오 시퀀스를 수신하도록 하고;
    심볼들을 생성하기 위해 상기 코딩된 블록 패턴들을 함께 디코딩하도록 하고;
    상기 심볼들에 기초하여 다수의 변환 계수들을 생성하도록 하고;
    상기 다수의 변환 계수들을 역양자화하도록 하고;
    잔여 신호를 형성하기 위해 상기 변환 계수들에 역변환을 적용하도록 하고; 그리고
    상기 잔여 신호에 기초하여 디코딩된 비디오 시퀀스를 구성하도록 하는,
    비디오 압축과 연관된 정보를 디코딩하도록 구성되는 전자 디바이스.
  21. 비디오 압축과 연관된 정보를 코딩하도록 구성되는 장치로서,
    처리하기 위한 수단;
    비디오 시퀀스를 수신하기 위한 수단;
    상기 비디오 시퀀스를 다수의 비디오 프레임들로 처리하기 위한 수단;
    상기 다수의 비디오 프레임들의 각각의 프레임을 다수의 매크로블록들로 처리하기 위한 수단;
    비디오 프레임들의 시퀀스의 매크로블록들을 인코딩하기 위한 수단을 포함하고, 상기 인코딩하기 위한 수단은:
    상기 비디오 시퀀스로부터, 현재 프레임에서, 매크로블록의 부분인 원시 비디오 신호의 예측 신호를 구성하기 위한 수단;
    상기 현재 프레임에서 상기 원시 비디오 신호로부터 상기 원시 비디오 신호의 예측 신호를 감산함으로써 잔여 신호를 형성하기 위한 수단;
    상기 잔여 신호에 변환을 적용하기 위한 수단;
    다수의 변환 계수들을 양자화하기 위한 수단;
    상기 매크로블록들에 대한 다수의 코딩된 블록 패턴들을 포함하는 신택스 엘리먼트들을 생성하기 위한 수단 ― 상기 코딩된 블록 패턴들은 각각의 매크로블록들의 상이한 비디오 블록들이 비제로 변환 계수들을 포함하고 있는지 여부를 지시하는 비트들을 포함함 ―; 및
    동일한 카테고리의 상기 신택스 엘리먼트들을 지시하는 심볼들을 함께 코딩하기 위한 수단을 포함하고, 상기 코딩하기 위한 수단은:
    런-길이 코딩에서 정의되는 하나 이상의 런들이 다수의 상기 매크로블록들과 연관된 코딩된 블록 패턴들의 심볼들을 함께 코딩하도록 상기 코딩된 블록 패턴들을 함께 런-길이 코딩하기 위한 수단을 포함하는,
    비디오 압축과 연관된 정보를 코딩하도록 구성되는 장치.
  22. 삭제
  23. 삭제
KR1020087026265A 2006-03-27 2007-03-27 비디오 압축과 연관된 정보를 코딩 및 디코딩하기 위한 방법 및 시스템 KR100991411B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US78679906P 2006-03-27 2006-03-27
US60/786,799 2006-03-27
US11/469,646 US8848789B2 (en) 2006-03-27 2006-09-01 Method and system for coding and decoding information associated with video compression
US11/469,646 2006-09-01

Publications (2)

Publication Number Publication Date
KR20090005080A KR20090005080A (ko) 2009-01-12
KR100991411B1 true KR100991411B1 (ko) 2010-11-02

Family

ID=38533377

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087026265A KR100991411B1 (ko) 2006-03-27 2007-03-27 비디오 압축과 연관된 정보를 코딩 및 디코딩하기 위한 방법 및 시스템

Country Status (10)

Country Link
US (1) US8848789B2 (ko)
EP (1) EP1999971A2 (ko)
JP (1) JP5231391B2 (ko)
KR (1) KR100991411B1 (ko)
CN (1) CN101411196B (ko)
BR (1) BRPI0709078A2 (ko)
CA (1) CA2645230C (ko)
RU (1) RU2406258C2 (ko)
TW (1) TWI357266B (ko)
WO (1) WO2007112417A2 (ko)

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8442108B2 (en) * 2004-07-12 2013-05-14 Microsoft Corporation Adaptive updates in motion-compensated temporal filtering
US8340177B2 (en) * 2004-07-12 2012-12-25 Microsoft Corporation Embedded base layer codec for 3D sub-band coding
US8374238B2 (en) * 2004-07-13 2013-02-12 Microsoft Corporation Spatial scalability in 3D sub-band decoding of SDMCTF-encoded video
US7956930B2 (en) 2006-01-06 2011-06-07 Microsoft Corporation Resampling and picture resizing operations for multi-resolution video coding and decoding
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
US8711925B2 (en) 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
US7845571B2 (en) * 2006-06-19 2010-12-07 Monro Donald M Data compression
US7747813B2 (en) * 2006-11-24 2010-06-29 Sandforce, Inc. Multi-memory device system and method for managing a lifetime thereof
US7809900B2 (en) * 2006-11-24 2010-10-05 Sandforce, Inc. System, method, and computer program product for delaying an operation that reduces a lifetime of memory
US7904619B2 (en) 2006-11-24 2011-03-08 Sandforce, Inc. System, method, and computer program product for reducing memory write operations using difference information
US7904672B2 (en) 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
US8938009B2 (en) 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
BRPI0818444A2 (pt) 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
US9197903B2 (en) * 2007-10-17 2015-11-24 Stmicroelectronics S.R.L. Method and system for determining a macroblock partition for data transcoding
US7903486B2 (en) 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
US7849275B2 (en) 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US9183133B2 (en) * 2007-11-28 2015-11-10 Seagate Technology Llc System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
AU2007237313A1 (en) * 2007-12-03 2009-06-18 Canon Kabushiki Kaisha Improvement for error correction in distributed vdeo coding
US8953673B2 (en) * 2008-02-29 2015-02-10 Microsoft Corporation Scalable video coding and decoding with sample bit depth and chroma high-pass residual layers
KR101426272B1 (ko) * 2008-03-10 2014-08-07 삼성전자주식회사 영상 부호화장치 및 영상 복호화장치
US8711948B2 (en) * 2008-03-21 2014-04-29 Microsoft Corporation Motion-compensated prediction of inter-layer residuals
US8948822B2 (en) 2008-04-23 2015-02-03 Qualcomm Incorporated Coordinating power management functions in a multi-media device
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
US8908763B2 (en) 2008-06-25 2014-12-09 Qualcomm Incorporated Fragmented reference in temporal compression for video coding
US8964828B2 (en) 2008-08-19 2015-02-24 Qualcomm Incorporated Power and computational load management techniques in video processing
US8948270B2 (en) 2008-08-19 2015-02-03 Qualcomm Incorporated Power and computational load management techniques in video processing
US9571856B2 (en) 2008-08-25 2017-02-14 Microsoft Technology Licensing, Llc Conversion operations in scalable video encoding and decoding
US8213503B2 (en) 2008-09-05 2012-07-03 Microsoft Corporation Skip modes for inter-layer residual video coding and decoding
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
CN102210152A (zh) * 2008-10-06 2011-10-05 Lg电子株式会社 用于处理视频信号的方法和设备
US9391635B2 (en) * 2009-05-15 2016-07-12 Texas Instruments Incorporated Block scanner and run-level encoder from AC to DC values
US8516166B2 (en) * 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory
KR20110009058A (ko) * 2009-07-20 2011-01-27 삼성전자주식회사 계층 구조의 영상 부호화/복호화에서 색 채널을 부호화/복호화하는 방법 및 장치
CN102648583B (zh) * 2009-10-05 2015-05-20 法国电信 用于编码和解码图像的方法、对应的编码和解码装置
JP2013510462A (ja) * 2009-11-04 2013-03-21 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メディアデータ及びメタデータの組み合わせを供給する方法及びシステム
WO2011121715A1 (ja) * 2010-03-30 2011-10-06 株式会社 東芝 画像復号化方法
KR101798079B1 (ko) * 2010-05-10 2017-11-16 삼성전자주식회사 픽셀값의 차분을 이용하여 영상 프레임을 부호화하는 방법 및 이를 위한 장치
CN106067973B (zh) 2010-05-19 2019-06-18 Sk电信有限公司 视频解码设备
US20120189052A1 (en) * 2011-01-24 2012-07-26 Qualcomm Incorporated Signaling quantization parameter changes for coded units in high efficiency video coding (hevc)
US9817665B2 (en) * 2011-03-31 2017-11-14 Silicon Laboratories Inc. System and technique for retrieving an instruction from memory based on a determination of whether a processor will execute the instruction
CA2839560C (en) 2011-06-16 2016-10-04 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Entropy coding of motion vector differences
US9338465B2 (en) 2011-06-30 2016-05-10 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US9060173B2 (en) * 2011-06-30 2015-06-16 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US11647197B2 (en) 2011-06-30 2023-05-09 Velos Media, Llc Context initialization based on slice header flag and slice type
UA114674C2 (uk) 2011-07-15 2017-07-10 ДЖ.І. ВІДІЕУ КЕМПРЕШН, ЛЛСі Ініціалізація контексту в ентропійному кодуванні
US9800870B2 (en) * 2011-09-16 2017-10-24 Qualcomm Incorporated Line buffer reduction for short distance intra-prediction
JP6080375B2 (ja) 2011-11-07 2017-02-15 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
RU2710303C2 (ru) 2011-11-08 2019-12-25 Кт Корпорейшен Способ декодирования видеосигнала
US9538200B2 (en) 2012-01-19 2017-01-03 Qualcomm Incorporated Signaling of deblocking filter parameters in video coding
SG11201404240PA (en) 2012-01-20 2014-08-28 Fraunhofer Ges Forschung Transform coefficient coding
EP2810440A1 (en) * 2012-02-04 2014-12-10 General Instrument Corporation Devices and methods for context reduction in last significant coefficient position coding
RU2607998C9 (ru) * 2012-03-28 2017-07-07 ДжейВиСи КЕНВУД КОРПОРЕЙШН Устройство кодирования изображения, способ кодирования изображения и программа кодирования изображения, а также устройство декодирования изображения, способ декодирования изображения и программа декодирования изображения
LT3793200T (lt) * 2012-04-13 2023-02-27 Ge Video Compression, Llc Vaizdo kodavimas su maža delsa
US9124872B2 (en) * 2012-04-16 2015-09-01 Qualcomm Incorporated Coefficient groups and coefficient coding for coefficient scans
US9521410B2 (en) * 2012-04-26 2016-12-13 Qualcomm Incorporated Quantization parameter (QP) coding in video coding
CN104380733B (zh) * 2012-06-28 2017-09-05 日本电气株式会社 视频量化参数编码方法、视频量化参数解码方法、设备
AU2013283173B2 (en) 2012-06-29 2016-03-24 Ge Video Compression, Llc Video data stream concept
CN115052157A (zh) 2012-07-02 2022-09-13 韩国电子通信研究院 图像编码/解码方法和非暂时性计算机可读记录介质
WO2014007520A1 (ko) * 2012-07-02 2014-01-09 한국전자통신연구원 영상 부호화/복호화 방법 및 장치
CN104604225B (zh) * 2012-09-10 2018-01-26 太阳专利托管公司 图像编码方法、图像解码方法、图像编码装置、图像解码装置及图像编码解码装置
RU2619198C1 (ru) * 2012-11-08 2017-05-12 Кт Корпорейшен Способ декодирования видеосигнала
RU2619199C1 (ru) * 2012-11-08 2017-05-12 Кт Корпорейшен Способ декодирования видеосигнала
US11259020B2 (en) 2013-04-05 2022-02-22 Qualcomm Incorporated Determining palettes in palette-based video coding
PL2984837T3 (pl) * 2013-04-08 2018-07-31 Ge Video Compression, Llc Predykcja międzykomponentowa
JP6261215B2 (ja) * 2013-07-12 2018-01-17 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US9558567B2 (en) * 2013-07-12 2017-01-31 Qualcomm Incorporated Palette prediction in palette-based video coding
WO2015015681A1 (ja) * 2013-07-31 2015-02-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 画像符号化方法および画像符号化装置
RU2557755C1 (ru) * 2014-02-25 2015-07-27 Открытое акционерное общество "Центр судоремонта "Звездочка" Способ сжатия изображения при фрактальном кодировании
US10362336B2 (en) 2014-03-25 2019-07-23 Qualcomm Incorporated Palette predictor signaling with run length code for video coding
US9716888B2 (en) * 2014-03-26 2017-07-25 Vixs Systems, Inc. Video processing with static and dynamic regions and method for use therewith
US11323733B2 (en) 2014-05-23 2022-05-03 Qualcomm Incorporated Predictor palette initialization in palette-based video coding
CA2954386C (en) 2014-07-09 2021-01-19 Numeri Ltd. Universal video codec
SG11201708026TA (en) 2015-04-08 2017-10-30 Hfi Innovation Inc Methods of palette mode coding in video coding
KR102430173B1 (ko) 2015-11-24 2022-08-05 삼성전자주식회사 디스플레이 장치
EP3395071A4 (en) * 2015-12-22 2019-08-14 RealNetworks, Inc. REST TRANSFORMATION AND INVERSE TRANSFORMATION IN VIDEO PROCESSING SYSTEMS AND METHODS
GB2547934B (en) * 2016-03-03 2021-07-07 V Nova Int Ltd Adaptive video quality
US10630985B2 (en) 2016-05-27 2020-04-21 Samsung Electronics Co., Ltd. Method for scanning coding blocks inside a video frame by video codecs
US10244261B2 (en) * 2017-01-26 2019-03-26 Google Llc Transform coefficient coding using level maps
KR20210031296A (ko) 2019-09-11 2021-03-19 삼성전자주식회사 전자 장치 및 그 제어 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050254583A1 (en) 1995-10-26 2005-11-17 Jae-Kyoon Kim Apparatus and method of encoding/decoding a coded block pattern
US20060008009A1 (en) 2004-07-09 2006-01-12 Nokia Corporation Method and system for entropy coding for scalable video codec

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3263807B2 (ja) 1996-09-09 2002-03-11 ソニー株式会社 画像符号化装置および画像符号化方法
JP3884172B2 (ja) * 1997-10-02 2007-02-21 株式会社東芝 可変長復号化装置および復号化方法
US5946043A (en) 1997-12-31 1999-08-31 Microsoft Corporation Video coding using adaptive coding of block parameters for coded/uncoded blocks
US6124811A (en) * 1998-07-02 2000-09-26 Intel Corporation Real time algorithms and architectures for coding images compressed by DWT-based techniques
US6563953B2 (en) 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
JP2002027469A (ja) 2000-07-05 2002-01-25 Matsushita Electric Ind Co Ltd ビットストリーム変換方法、ビットストリーム変換装置およびプログラム記録媒体
AU2002213713A1 (en) 2000-10-24 2002-05-06 Eyeball Networks Inc. Dct-based scalable video compression
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
CN100452883C (zh) 2001-12-17 2009-01-14 微软公司 处理视频图像的方法
ATE439704T1 (de) 2002-04-02 2009-08-15 Nokia Corp Codierung von transformationskoeffizienten in bild-/videocodierern- und/oder decodierern
US6985635B2 (en) 2002-04-22 2006-01-10 Koninklijke Philips Electronics N.V. System and method for providing a single-layer video encoded bitstreams suitable for reduced-complexity decoding
US7630440B2 (en) * 2003-05-28 2009-12-08 Broadcom Corporation Context adaptive binary arithmetic code decoding engine
US7492956B2 (en) 2004-08-18 2009-02-17 Cisco Technology, Inc. Video coding using multi-dimensional amplitude coding and 2-D non-zero/zero cluster position coding
US7664176B2 (en) 2004-07-09 2010-02-16 Nokia Corporation Method and system for entropy decoding for scalable video bit stream
US20060133495A1 (en) 2004-12-22 2006-06-22 Yan Ye Temporal error concealment for video communications
US7970219B2 (en) * 2004-12-30 2011-06-28 Samsung Electronics Co., Ltd. Color image encoding and decoding method and apparatus using a correlation between chrominance components
EP1711018A1 (en) 2005-04-08 2006-10-11 Thomson Licensing Method and apparatus for encoding video pictures, and method and apparatus for decoding video pictures
KR100746007B1 (ko) * 2005-04-19 2007-08-06 삼성전자주식회사 엔트로피 코딩의 컨텍스트 모델을 적응적으로 선택하는방법 및 비디오 디코더

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050254583A1 (en) 1995-10-26 2005-11-17 Jae-Kyoon Kim Apparatus and method of encoding/decoding a coded block pattern
US20060008009A1 (en) 2004-07-09 2006-01-12 Nokia Corporation Method and system for entropy coding for scalable video codec

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ye Y., Bao Y: "Improvements to FGS layer Variable Length Coder", JVT 19th meeting, 31 March 2006 - 7 April 2006, Geneva, Switzerland

Also Published As

Publication number Publication date
KR20090005080A (ko) 2009-01-12
US8848789B2 (en) 2014-09-30
TW200814787A (en) 2008-03-16
CN101411196A (zh) 2009-04-15
CN101411196B (zh) 2014-05-14
US20070223579A1 (en) 2007-09-27
EP1999971A2 (en) 2008-12-10
WO2007112417A3 (en) 2008-03-20
RU2008142358A (ru) 2010-08-20
JP5231391B2 (ja) 2013-07-10
TWI357266B (en) 2012-01-21
CA2645230C (en) 2013-04-30
WO2007112417A2 (en) 2007-10-04
JP2009531997A (ja) 2009-09-03
BRPI0709078A2 (pt) 2011-06-28
CA2645230A1 (en) 2007-10-04
RU2406258C2 (ru) 2010-12-10

Similar Documents

Publication Publication Date Title
KR100991411B1 (ko) 비디오 압축과 연관된 정보를 코딩 및 디코딩하기 위한 방법 및 시스템
JP5139416B2 (ja) ビデオ圧縮における重要度係数符号化のための方法およびシステム
RU2452128C2 (ru) Адаптивное кодирование информации заголовка видеоблока
US8401082B2 (en) Methods and systems for refinement coefficient coding in video compression
JP5792319B2 (ja) ビデオデータのブロック係数のモード依存型スキャニング
KR101641808B1 (ko) 비디오 코딩에서 적응 루프 필터 및 샘플 적응 오프셋에 대한 최대 코딩 유닛 (lcu) 또는 파티션-기반 신택스
JP2009531992A5 (ko)
US20110249754A1 (en) Variable length coding of coded block pattern (cbp) in video compression
US20130101033A1 (en) Coding non-symmetric distributions of data
US9491491B2 (en) Run-mode based coefficient coding for video coding
US11039166B2 (en) Devices and methods for using base layer intra prediction mode for enhancement layer intra mode prediction

Legal Events

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

Payment date: 20130927

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee