KR101032277B1 - 스케일러블 비디오 코덱에서의 효율적인 유효 계수 코딩 - Google Patents

스케일러블 비디오 코덱에서의 효율적인 유효 계수 코딩 Download PDF

Info

Publication number
KR101032277B1
KR101032277B1 KR1020097009489A KR20097009489A KR101032277B1 KR 101032277 B1 KR101032277 B1 KR 101032277B1 KR 1020097009489 A KR1020097009489 A KR 1020097009489A KR 20097009489 A KR20097009489 A KR 20097009489A KR 101032277 B1 KR101032277 B1 KR 101032277B1
Authority
KR
South Korea
Prior art keywords
initialization table
slice
initialization
block
eob
Prior art date
Application number
KR1020097009489A
Other languages
English (en)
Other versions
KR20090095564A (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 KR20090095564A publication Critical patent/KR20090095564A/ko
Application granted granted Critical
Publication of KR101032277B1 publication Critical patent/KR101032277B1/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • 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
    • 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/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/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform 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

스케일러블 비디오 코덱에서의 효율적인 유효 계수 코딩{EFFICIENT SIGNIFICANT COEFFICIENTS CODING IN SCALABLE VIDEO CODECS}
계류 중인 출원
본 발명은, 2006 년 10 월 13 일 출원된 미국 가출원 제 60/829,490 호의 우선권 이점을 주장하는데, 이는 자세히 후술되는 것처럼 본 명세서에 참조로서 포함되어 있다.
기술분야
본 개시물은 일반적으로 코덱 분야에 관한 것이고, 보다 상세하게는 스케일러블 비디오 코덱에서의 효율적인 유효 계수 코딩을 위한 기술에 관한 것이다.
배경기술
MPEG-1, H.261/263/264 등과 같은 종래의 비디오 코딩 표준은, 레이트 제어 메커니즘의 이용을 통해 비교적 일정한 비트 레이트로 또는 종종 "고정 QP 인코딩 (fixed QP encoding)" 으로 언급되는 주어진 품질 설정으로 비디오를 인코딩한다. 몇몇 이유로, 비디오가 상이한 품질로 디코딩되거나 송신될 필요가 있는 경우, 데이터는 먼저 디코딩된 다음, 적절한 설정을 이용하여 재인코딩되어야 한다. 몇몇 시나리오에 있어서 (예를 들어, 저지연 실시간 애플리케이션에 있어서), 이러한 "트랜스코딩" 은 실행가능하지 않을 수도 있다. 유사하게, 종래의 비디오 코딩 표준은 특정 공간 분해능으로 비디오를 인코딩한다. 비디오가 보다 낮은 분해능으로 디코딩되거나 송신될 필요가 있는 경우, 데이터는 먼저 디코딩되고, 공간적으로 스케일링된 다음, 재인코딩되어야 한다. 역시, 이러한 트랜스코딩은 몇몇 시나리오에서 실행가능하지 않다.
그러므로, 스케일러블 비디오 코덱에서의 효율적인 유효 계수 코딩을 위한 기술에 대한 필요성이 존재한다.
개 요
스케일러블 비디오 코덱에서의 효율적인 유효 계수 코딩을 위한 기술이 제공된다. 일 구성에 있어서, 현재의 프레임 또는 슬라이스에 대한 초기화 테이블을 발생시키도록 동작하는 명령 세트를 갖는 처리 회로를 포함하는 디바이스가 제공되는데, 이 초기화 테이블은, 스케일러블 비디오 코딩을 이용하여 이전의 인코딩된 프레임 또는 슬라이스에 대한 유효 계수 패스 (significant coefficient pass) 의 통계치를 갖는다. 또한, 이 디바이스는, 현재의 프레임 또는 슬라이스와 함께 초기화 테이블을 디코더로 송신하는 송신기를 포함한다.
또다른 구성에 있어서, 컴퓨터로 하여금, 현재의 프레임 또는 슬라이스에 대한 초기화 테이블을 발생시키도록 하는 명령을 갖는 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품이 제공되는데, 이 초기화 테이블은, 스케일러블 비디오 코딩을 이용하여 이전의 인코딩된 프레임 또는 슬라이스에 대한 유효 계수 패스의 통계치를 갖는다. 또한, 이 컴퓨터 프로그램 제품은, 컴퓨터로 하여금, 현재의 프레임 또는 슬라이스와 함께 초기화 테이블을 디코더로 송신하도록 하는 명령을 포함한다.
추가적인 구성에 있어서, 스케일러블 비디오 코딩을 이용하여 현재의 프레임 또는 슬라이스를 인코딩하는 단계를 포함하는 방법이 제공된다. 또한, 이 방법은, 현재의 프레임 또는 슬라이스에 대한 초기화 테이블을 발생시키는 단계를 포함하는데, 이 초기화 테이블은, 스케일러블 비디오 코딩을 이용하여 이전의 인코딩된 프레임 또는 슬라이스에 대한 유효 계수 패스의 통계치를 갖는다. 이 방법은, 현재의 프레임 또는 슬라이스와 함께 초기화 테이블을 디코더로 송신하는 단계; 및 송신된 초기화 테이블을 이용하여 현재의 프레임 또는 슬라이스를 디코더로 디코딩하는 단계를 더 포함한다.
부가적인 양태는, 특히 첨부 도면과 함께 취해지는 경우에 상세한 설명으로부터 보다 명백해질 것이다.
도면의 간단한 설명
본 개시물의 양태 및 구성은 첨부 도면과 함께 취해지는 경우에 후술되는 상세한 설명으로부터 보다 명백해질 것이고, 이들 첨부 도면에서 동일한 참조부호는 그 전체에 걸쳐 대응하는 구성요소를 식별한다.
도 1 은 FGS (Fine Granularity Scalability) 를 이용하는 종래의 스케일러 블 비디오 코딩 (SVC) 을 위한 일반적인 흐름도이다.
도 2 는 FGS 를 이용한 종래의 SVC 코드를 도시한 도면이다.
도 3a, 도 3b 및 도 3c 는 유효 패스 계수 (significant pass coefficient) 로서 모든 계수가 분류되는 예시적인 블록을 도시한 도면이다.
도 4a, 도 4b 및 도 4c 는 유효 패스 및 정제 패스 (refinement pass) 의 계수의 일 실시예를 도시한 도면이다.
도 5 는 종래의 SVC 코덱을 도시한 도면이다.
도 6 은 SVC 를 이용하여 매크로블록을 인코딩하기 위한 종래의 SVC 인코딩 프로세스의 일반적인 흐름도이다.
도 7 은 SVC 에 대한 종래의 디폴트 초기화 테이블의 일 실시예를 도시한 도면이다.
도 8 은 indexS 재정의 프로세스의 일반적인 흐름도이다.
도 9 는 재정의된 indexS 및 SVC 를 이용하여 매크로블록을 인코딩하기 위한 SVC 인코딩 프로세스의 일반적인 흐름도이다.
도 10 은 재정의된 indexS 및 SVC 를 이용하여 매크로블록을 인코딩하기 위한 단순화된 SVC 인코딩 프로세스의 일반적인 흐름도이다.
도 11 은 효율적인 SVC 코덱의 제 1 레벨의 비트 보존 (bit conservation) 을 이용하는 SVC 프레임 송신을 위한 일반적인 블록도이다.
도 12 는 효율적인 SVC 코덱의 제 2 레벨의 비트 보존을 이용하는 SVC 프레임 송신을 위한 일반적인 블록도이다.
도 13 은 효율적인 SVC 코덱의 제 3 레벨의 비트 보존을 이용하는 SVC 프레임 송신을 위한 일반적인 블록도이다.
도 14 는 무선 디바이스의 일 구성의 블록도이다.
이들 도면에서의 이미지는 예시를 목적으로 단순화되고, 일정한 비율로 도시되지는 않는다. 이해를 용이하게 하기 위해서, 적절한 경우에 이들 도면에 공통인 동일한 구성요소를 구별하는데 첨자가 부가될 수도 있는 것을 제외하고는, 가능하다면 이러한 구성요소를 지정하는데 동일한 참조부호가 사용되었다.
첨부 도면은 본 발명의 예시적인 구성을 나타내고, 이로서 다른 동등하게 유효한 구성을 허용할 수도 있는 본 발명의 범위를 제한하는 것으로서 고려되어서는 안 된다. 일 구성의 단계 또는 특징이 추가적인 상술 없이 유리하게 다른 구성에 통합될 수도 있다는 것이 의도된다.
상세한 설명
"예시적인" 이라는 단어는 본 명세서에서 "실시예, 실례 또는 예시의 역할을 하는 것"을 의미하는데 이용된다. 본 명세서에서 "예시적인" 것으로서 기재된 임의의 구성이나 디자인은 반드시 다른 구성이나 디자인에 비해 바람직하거나 이로운 것으로서 해석되는 것은 아니고, "코어", "엔진", "머신", "프로세서" 및 "처리 유닛" 이라는 용어는 교환가능하게 이용된다.
도 1 은 FGS (Fine Granularity Scalability) 를 이용하는 종래의 스케일러블 비디오 코딩 (SVC ; 10) 의 일반적인 흐름도이다. 스케일러블 비디오 코딩 (SVC ; 10) 은 트랜스코딩 이슈를 극복한다. SVC (10) 를 위한 프로세스는 도 2 와 협력하여 설명될 것이다. 도 2 는 FGS 를 이용한 종래의 SVC 코드를 도시한 도면이다. SVC (10) 를 위한 일반적인 프로세스는, 최소 공간 분해능 (300) 및 최소 품질 (320) 을 갖는 "베이스 계층" (도 2 참조) 을 코딩함으로써 블록 12 에서 시작하는데, 여기서 O 는 베이스 계층을 표시한다. 블록 14 가 블록 12 를 뒤따르는데, 이 블록 14 에서, 공간 분해능 (301 내지 30m) 및/또는 품질 (321 내지 32m) 을 최대 레벨까지 증가시키는 코딩 증대 정보 (coding enhancement information) 가 준비된다. 그러므로, 트랜스코딩할 필요 없이, 단순히 공간 증대 정보를 폐기함으로써, 공간 분해능에서의 감소가 달성될 수도 있다.
품질 증대를 위해, 이 정보는 종종 이산 (하지만, 근접-이격된) 포인트에서 절단되어, "베이스" 와 "최대" 사이의 중간 품질이 달성되는 것을 허용함으로써 부가적인 유연성을 제공할 수도 있다. 품질 확장성을 달성하는 것을 허용하는 FGS 증대 계층 1 내지 FGS 증대 계층 m 은 종종 FGS (Fine Granularity Scalability) 로 지칭된다. FGS 계층 0 내지 FGS 계층 m 각각은 양자화된 변환 계수 (340 내지 34m) 를 포함하고, 가능하게는 모션 벡터 (이에 제한되지는 않음) 와 같은 다른 구문 엘리먼트 (361 내지 36m) 를 포함한다.
일반적으로, m 번째 FGS 증대 계층에서의 변환 계수의 코딩은 2 개의 패스, 즉 블록 16 에서의 유효 패스 및 블록 18 에서의 정제 패스에서 일어난다. 블 록 16 에서의 유효 패스에 있어서, 모든 하위 FGS 계층에서 0 과 동등한 복원값을 갖는 계수 모두가 코딩된다. 나머지 계수는 블록 18 에서의 정제 패스에서 코딩된다. 그런 다음, 블록 20 에서 FGS 증대 계층 정보가 송신될 수도 있다.
도 3a, 도 3b 및 도 3c 는 유효 패스 계수로서 모든 계수가 분류되는 예시적인 블록을 도시한 도면이다. 도 3a 에 도시된 지그재그 패턴이 4×4 블록 (40A, 40B 및 40C) 모두에 이용된다. 도 3a, 도 3b 및 도 3c 의 예시적인 블록 (40A, 40B 및 40C) 각각은, 유효 패스 계수로서 계수가 분류되는 경우를 나타낸다. 도 3a, 도 3b 및 도 3c 에서의 각 4×4 블록 (40A, 40B 및 40C) 내에서, 계수는 런-값 (run-value) 쌍으로 쪼개진다. 도 3a 의 블록 (40A) 에 있어서, 계수는 {1}, {0-1}, {1}, {0-0-1} 로 분할될 것이다. 도 3b 의 블록 (40B) 에 있어서, 계수는 {0-1}, {1}, {0-1} 로 분할될 것이다. 도 3c 의 블록 (40C) 에 있어서, 계수는 {000000001} 이 될 것이다.
유효 런 (significance run) 은, 그 시작 스캔 인덱스, 0 과 동등한 계수의 개수, 및 종료값, 또는 (p, r, v) 트리플릿으로 완전히 기술된다. 따라서, 도 3a 의 블록 (40A) 에서의 런은 (0, 0, 1)0, (1, 1, 1)0, (3, 0, 1)0 및 (4, 2, 1)0 일 것이고; 도 3b 의 블록 (40B) 에 대해서는, (0, 1, 1)1, (2, 0, 1)1 및 (3, 1, 1)1 일 것이다. 첨자는 블록 인덱스를 나타내고, 명백함을 위해 부가된다. i 번째 코딩 "사이클" 에 있어서, p ≤ i 인 런 모두가 모든 블록으로부터 코딩된다. 이 실시예에 있어서, 각 사이클에서 코딩된 런은:
사이클 0: (0, 0, 1)0, (0, 1, 1)1, (0, 8, 1)2;
사이클 1: (1, 1, 1)0;
사이클 2: (2, 0, 1)1;
사이클 3: (3, 0, 1)0, (3, 1, 1)1; 및
사이클 4: (4, 2, 1)0 일 것이다.
도 4a, 도 4b 및 도 4c 는 유효 패스 및 정제 패스의 계수의 일 실시예를 도시한 도면이다. 도 4a 에 도시된 지그재그 패턴이 4×4 블록 (50A, 50B 및 50C) 모두에 이용된다. 블록 (50A, 50B 및 50C) 에서의 음영 표시된 계수는 정제 패스에 속한다. 런렝스 (run length) 를 컴퓨팅하는 경우에, 정제 패스 계수는 스킵된다. 그에 따라, 이 실시예에 있어서, 제 1 블록 (50A) 에서의 유효 런은, (0, 1, 1)0, (1, 2, 1)0 및 (5, 2, 1)0 일 것이다. 제 2 블록 (50B) 에 대한 유효 런은, (0, 2, 1)1 및 (2, 1, 1)1 일 것이다. 제 3 블록 (50C) 에 대한 유효 런은 (0, 6, 1)2 일 것이다. 특정 스캔 인덱스에서의 정제 계수를 나타내는 특정 런렝스 "X" 를 이용하면, 각 사이클에서 코딩된 계수는:
사이클 0: (0, 0, 1)0, (0, 1, 1)1, (0, 5, 1)2;
사이클 1: (1, 1, 1)0;
사이클 2: (2, 0, 1)1, (2, X, 0)2;
사이클 3: (3, X, 1)0, EOB1, (3, X, 0)2;
사이클 4: (4, X, 0)0, (4, X, 1)1, (4, X, 0)2; 및
사이클 5: (5, 1, 1)0 일 것이다.
심볼 'EOBn' 은, 더 이상 0 이 아닌 유효 패스 계수가 블록 n 에서 코딩된 채로 남아있지 않다는 것을 의미하는데, 여기서 n 은 블록에 대한 카운터이다. EOB (end-of-block) 에 부가하여, sEOB (special EOB) 가 송신될 수 있다. 이는, 더 이상 0 이 아닌 유효 패스 계수가 블록 n 에서 코딩된 채로 남아있지 않지만, 유효 계수 레벨의 절대값의 일부가 1 보다 크다는 것을 의미한다. 이들 블록에 대해, 부가적인 정보가 송신될 것이다.
EOB 심볼 및 sEOB 심볼이 발생할 확률은, 프레임 콘텐츠에 종속하여 시퀀스마다 그리고 프레임들 사이에서 변한다. (p, r, v) 트리플릿으로 런렝스를 기술하는 경우, r 값은 0 과 동등하게 코딩된 계수의 개수와 동등하다. 예를 들어, 런 {0, 0, 0, 1} 에는 트리플릿 (0, 3, 1) 이 할당될 것이다. r=C 값 및 r=D 값은 EOB 심볼 및 sEOB 심볼을 허용하도록 지정된다.
유효 런을 인코딩하는데 이용되는 가변 길이 코딩 (VLC) 테이블 및 EOB 와 sEOB 심볼을 위해 지정된 C 와 D 값이 사이클 넘버 또는 시작 스캔 위치에 종속하는 경우, 코딩 효율이 상당히 향상될 수 있다.
도 5 는 종래의 SVC 코덱 (60) 을 도시한 도면이다. 스케일러블 비디오 코딩 (SVC) 코더 (60) 에 대해 고려되는 하나의 해결책은, EOB 결정 모듈 (62) 을 이용하여 EOB (end-of-block) 를 그리고 sEOB 시프트 결정 모듈 (64) 을 이용하여 sEOB 시프트를 동적으로 결정하는 것을 포함하는데, 여기서 가용 VLC 테이블 (70) 세트 중에서 VLC 테이블 1, VLC 테이블 2, …, VLC 테이블 T 는, 코딩 모듈 (74) 에 의해 코딩이 수행 중인 동안에 통계치 수집 모듈 (72) 을 통해 수집된 통계치에 기초하여 유효 런을 코딩하는데 이용되어야 한다. VLC 테이블 1, VLC 테이블 2, …, VLC 테이블 T, EOB 시프트 및 sEOB 시프트는 indexS 에 종속하는데, indexS 는 다음과 같이 예시적인 의사 코드 (1) 에 따라 계산되고:
[의사 코드 (1)]
Figure 112009027631912-pct00001
여기서, i 는 유효 계수 패스의 지그재그 스캔에서의 위치를 식별하기 위한 카운터이고; scanIndex 는 유효 계수 패스 중의 사이클에 대한 시작 스캔 위치 인덱스이고; coeffBase[i] 는 스캔 위치 i 에서의 0 부터 n-1 까지의 FGS 계층에 대한 정보를 이용하여 복원된 변환 계수의 값이고; coeff[i] 는 현재 코딩된 n 번째 FGS 계층에 대한 계수의 레벨이고; "!" 는 비트 플립 (bit flip) 을 의미하고; && 은 논리 AND 함수를 나타낸다. 본 명세서에 기재된 다수의 등식 및 표식은 C 또는 C++ 컴퓨터 프로그래밍 언어와 유사한 구문을 이용한다는 것이 주목되어야 한다. 표식은 예시를 목적으로 하고, 상이한 구문을 갖는 다른 컴퓨터 프로그래밍 언어로 표현될 수 있다.
SVC 코더 (60) 는, scanIndex (78A), coeffBase[i] (78B), coeff[i] (78C) 및 indexS (78D) 를 추적하는 indexS 계산기 (76) 를 더 포함한다. 인코더 및 디코더 모두에 있어서, indexS 0, indexS 1, …, indexS Max 의 상이한 값에 대해 개별적으로 심볼 (유효 런 (82A), EOB (82B), sEOB (82C)) 의 누산된 카운트를 저장하도록 누산기 (80) 가 제공되는데, 여기서 Max 는 이용되는 지그재그 패턴에서의 스캔 위치의 총수의 함수이다.
도 6 은 SVC 를 이용하여 매크로블록을 인코딩하기 위한 종래의 SVC 인코딩 프로세스 (90) 에 대한 일반적인 흐름도이다. 이 프로세스는, 매크로블록을 인코딩하는 블록 91 에서 시작한다. 블록 91 에서 각 매크로블록이 인코딩된 이후에, indexS 의 각 값에 대해, 블록 93A, 블록 93B 및 블록 93C 각각에서 VLC 테이블, EOB 시프트 및 sEOB 시프트가 업데이트된다. 그에 따라, 블록 92 가 블록 91 을 뒤따르는데, 이 블록 92 에서, indexS 가 획득된다. 블록 93A, 블록 93B 및 블록 93C 가 블록 92 를 뒤따르는데, 이 블록 93A, 블록 93B 및 블록 93C 에서, VLC 테이블, EOB 시프트 및 sEOB 시프트가 업데이트된다. 블록 93A, 블록 93B 및 블록 93C 는 병렬로 도시되어 있다. 그러나, 이 도면은 예시를 목적으로 한다. 따라서, 흐름도 블록은 도시된 순서로 수행될 수도 있고, 또는 이들 블록이나 그 일부는 동시에, 병렬로, 또는 상이한 순서로 수행될 수도 있다. 몇몇 실시예에 있어서, 임의의 하나의 루프 반복에 대해 업데이트가 요구되지 않는 경우, 이들 블록은 생략될 수도 있다.
블록 94 가 블록 93A, 블록 93B 및 블록 93C 를 뒤따르는데, 이 블록 94 에서, indexS 가 증분된다. 블록 95 가 블록 94 를 뒤따르는데, 이 블록 95 에 서, indexS 의 최종값에 대해 VLC 테이블, EOB 시프트 및 sEOB 시프트 모두가 업데이트되었는지 여부가 판정된다. 이 판정이 "아니오" 인 경우에는, 이 SVC 인코딩 프로세스 (90) 는 루프로 하여, 최종 indexS 까지 블록 93A, 블록 93B, 블록 93C, 블록 94 및 블록 95 의 루프를 반복한다. 블록 95 에서의 판정이 "예" 인 경우에는, 이 SVC 인코딩 프로세스 (90) 는 종료한다.
전술한 해결책에 대한 단점 중 하나는 적응의 복잡도이다. 예를 들어, 사이클 X 를 인코딩/디코딩하는 경우, indexS 는 0 과 Max 사이의 임의의 값을 취할 수 있다. 그에 따라, 각 매크로블록의 끝에서, indexS = 0, 1, …, Max 에 대해 EOB 시프트, sEOB 시프트 및 VLC 테이블이 구해져야 한다.
낮은 비트 레이트에서 및/또는 슬라이스 코딩 (예를 들어, QCIF (Quarter Common Intermediate Format) 슬라이스) 과 관련하여, 심볼 통계치에 적응하는데 필요한 비트 레이트는 프레임/슬라이스 비트-레이트의 실질적인 양을 나타낼 수 있다. 따라서, 부적합한 VLC 테이블 또는 EOB/sEOB 시프트 초기화가 작은 슬라이스 및/또는 낮은 비트 레이트에 이용되는 경우, 레이트-왜곡 성능이 드롭될 수 있다.
도 7 은 SVC 에 대한 종래의 디폴트 초기화 테이블 (99) 의 일 실시예를 도시한 도면이다. 디폴트 초기화 테이블 (99) 은, SVC 에 대한 종래의 VLC 테이블 인덱스 및 EOB 시프트 초기화 방법을 이용하여 생성된다. SVC 에 대해 고려되는 종래의 VLC 테이블 인덱스 및 EOB 시프트 초기화 방법은, 디폴트 초기화 테이블 EOBshiftInit[D], sEOBshiftInit[D] 및 VLCtableSelectInit[D] 의 단일 세트만 을 지원하는데, 여기서 D 는 디폴트를 표시한다. 손쉽게 알 수 있는 바와 같이, EOBshiftInit[D] 값은, indexS=0 에 대해, EOB 시프트가 16 과 동등해야 한다는 것을 나타낸다 (현재의 SVC 구문에서, EOB 는 indexS=0 에 대해 결코 시그널링되어서는 안 되고, 그에 따라 EOB 시프트의 최대값이 이용된다). indexS=1 에 대해, EOB 시프트는 2 와 동등해야 한다. VLCtableSelectInit[D] 값은, indexS = 0, 1 및 2 에 대해, VLC 테이블 1 이 이용되어야 하고, indexS = 3 내지 15 에 대해, VLC 테이블 0 이 이용된다는 것을 나타낸다. sEOBshiftInit[D] 값은, indexS=0 에 대해, sEOB 시프트가 16 과 동등해야 하고, indexS = 1 내지 10 에 대해, sEOB 시프트가 6 과 동등해야 하고, 그 이후에는 단조 감소한다는 것을 나타낸다. 디폴트 테이블은 SVC 코덱 (60) 의 디코더측에서 이용가능하다.
도 7 에서의 초기화 테이블은 휘도에 이용되고, 또다른 세트의 초기화 테이블 (도시되지 않음) 은 색차에 이용된다. 그러나, 단일 세트의 초기화 테이블을 이용하는 것은 충분하지 않은데, 그 이유는 광범위하게 변하는 콘텐츠를 갖는 비디오 재료의 인코딩이 심볼 통계치의 실질적인 변화 (및 그에 따른 indexS 의 각 값에 대해 선택된 VLC 테이블, EOB 시프트 및 sEOB 시프트의 실질적인 변화) 를 야기하기 때문이다.
도 8 은 indexS 재정의 프로세스 (100) 의 일반적인 흐름도이다. 테이블 적응의 복잡도를 감소시키기 위해서, 다음과 같이 예시적인 의사 코드 (2) 에 따라 indexS 가 재정의되고:
[의사 코드 (2)]
Figure 112009027631912-pct00002
여기서, scanIndex 는 사이클에 대한 시작 스캔 위치 인덱스이다.
일반적으로, indexS 재정의 프로세스 (100) 는 블록 102 에서 시작하고, 이 블록 102 에서, indexS 가 0 보다 큰 지 여부가 판정된다. 이 판정이 "예" 인 경우에는, 블록 104 가 블록 102 를 뒤따르는데, 이 블록 104 에서, indexS 는 scanIndex 와 동등하다. 그러나, 이 판정이 "아니오" 인 경우에는, 블록 106 이 블록 102 를 뒤따르는데, 이 블록 106 에서, indexS 는 0 과 동등하다. 블록 106 은 선택적인 단계를 나타내도록 점선으로 도시되어 있다. 의사 코드로부터, indexS 가 0 또는 scanIndex 일 수 있다는 것이 내포된다. 블록 104 및 블록 106 은 이 indexS 재정의 프로세스 (100) 를 종료한다.
따라서, indexS 는 단지 시작 스캔 인덱스와만 동등하도록 재정의되는데, 이 시작 스캔 인덱스는 scanIndex 또는 0 으로 표시되어 있다. 이는, 모든 사이클에 대해, indexS 의 2 개의 값에 대해서만 VLC 테이블 인덱스, EOB 시프트 및 sEOB 시프트가 계산된다는 것을 의미한다.
도 9 는 재정의된 indexS 및 SVC 를 이용하여 매크로블록을 인코딩하기 위한 SVC 인코딩 프로세스 (120) 의 일반적인 흐름도이다. SVC 인코딩 프로세스 (120) 는, 매크로블록을 인코딩하는 블록 122 에서 시작한다. 블록 122 에서 각 매크로블록이 인코딩된 이후에, 블록 124 에서, 현재의 사이클이 0 과 동등하도록 설정된다. 블록 126 이 블록 124 를 뒤따르는데, 이 블록 126 에서, 현재의 사이클에 대한 제 1 indexS 가 획득된다. 이 제 1 indexS 는, 0, 시작 스캔 인덱스 또는 전술한 의사 코드 (1) 에 따라 계산된 사이클에서의 일부 다른 넘버일 수도 있다. 블록 128 이 블록 126 을 뒤따르는데, 이 블록 128 에서, 도 8 의 indexS 재정의 프로세스 (100) 에 따라 indexS 가 재정의된다. 블록 130, 블록 132 및 블록 134 가 블록 128 을 뒤따르는데, 이 블록 130, 블록 132 및 블록 134 에서, indexS 의 현재값에 대해, VLC 테이블, EOB 시프트 및 sEOB 시프트가 업데이트된다. 블록 130, 블록 132 및 블록 134 는 병렬로 도시되어 있지만, 상이한 순서로 형성될 수도 있고/있거나 필요에 따라 스킵될 수도 있다. 블록 136 이 블록 130, 블록 132 및 블록 134 를 뒤따르는데, 이 블록 136 에서, 사이클의 끝인지 여부가 판정된다. 이 판정이 "아니오" 인 경우에는, 블록 138 에서, 다음의 indexS 가 획득된다. 블록 140 이 블록 138 을 뒤따르는데, 이 블록 140 에서, 도 8 의 indexS 재정의 프로세스 (100) 에 따라 현재의 사이클에 대해 indexS 가 계산된다. indexS 의 현재값에 대해 다시 VLC 테이블, EOB 시프트 및 sEOB 시프트가 업데이트되도록, 블록 140 은 블록 130, 블록 132 및 블록 134 이전으로 루프한다.
블록 136 을 다시 참조하면, 사이클의 끝은 몇몇 조건에 기초하여 결정될 수도 있다. 그럼에도 불구하고, indexS 가 2 개의 값, 즉 0 또는 scanIndex 만을 취하도록, 사이클의 끝이 결정될 수도 있다. 따라서, indexS = 0 및 scanIndex 에 대해 2 회의 루프 반복이 완료된 이후에, 현재의 사이클이 업데이트되고, 종료될 수도 있다. 그러나, indexS=0 이 없는 사이클에 대해, 이 사이클은, indexS=scanIndex 에 대한 단 1 회의 반복 이후에 종료될 수도 있다. 따라서, 블록 136 에서의 판정이 "아니오" 인 경우에는, 블록 142 가 블록 136 을 뒤따르는데, 이 블록 142 에서, 도 11 과 관련하여 보다 상세하게 기재된 바와 같이, 송신을 위해 VLC 테이블, 업데이트된 EOB 시프트 및 업데이트된 sEOB 시프트가 어셈블리된다.
블록 144 가 블록 142 를 뒤따르는데, 이 블록 144 에서, 최종 사이클에 도달했는지 여부가 판정된다. 블록 144 에서의 판정이 "예" 인 경우에는, 블록 144 는 이 SVC 인코딩 프로세스 (120) 를 종료한다. 그러나, 블록 144 에서의 판정이 추가 사이클을 의미하는 "아니오" 인 경우에는, 블록 146 에서 현재의 사이클이 증분된다. indexS = 0 및 scanIndex 에 대해 VLC 테이블, EOB 시프트 및 sEOB 시프트를 업데이트하는 프로세스를 반복하도록, 블록 146 은 블록 126 으로 복귀한다.
도 10 은 재정의된 indexS 및 SVC 를 이용하여 매크로블록을 인코딩하기 위한 단순화된 SVC 인코딩 프로세스 (150) 의 일반적인 흐름도이다. SVC 인코딩 프로세스 (120) 를 더 단순화하기 위해서, 사이클 0 이후에, VLC 테이블은 0 과 동등한 indexS 에 대해 적응되지 않는다 (EOB 및 sEOB 는 현재의 SVC 구문의 제약 내에서 indexS=0 또는 사이클 0 에 대해 결코 시그널링되어서는 안 된다). 따라서, 블록 132' 및 블록 134' 가 사이클 0 에 대해 또는 indexS=0 인 경우에 생략될 수도 있기 때문에, 이들은 팬텀 (phantom) 으로 도시되어 있다. 임의의 다른 사이클에 대해 indexS 가 0 과 동등한 경우, 사이클 0 에 대해 선택된 VLC 테이블 이 이용된다. 상이한 사이클의 병렬 디코딩이 요구되는 경우, indexS = 0 에 대한 VLC 테이블 인덱스가 디코더로 시그널링되어야 한다.
도 10 에 있어서, 블록 129 에서의 조건이 부가되고, 약간 상이한 순서로 VLC 테이블, EOB 및 sEOB 가 업데이트되는 것을 제외하고는, 단순화된 SVC 인코딩 프로세스 (150) 는 본질적으로 도 9 에서의 SVC 인코딩 프로세스 (120) 와 동일하다. 따라서, 변경된 블록 또는 부가적인 블록만 설명될 것이다. 단순화된 SVC 인코딩 프로세스 (150) 의 다른 블록은 도 9 에서 이전에 전술되었다. 도 10 에 있어서, 블록 128 이후에, 현재의 사이클이 0 보다 크고, indexS = 0 인지 여부를 판정하기 위한 판정이 이루어진다. 이 판정이 "아니오" 인 경우에는, 블록 130' 에서 VLC 테이블이 업데이트된다. indexS 가 0 과 동등한 경우, 0 보다 큰 임의의 사이클에 대해 VLC 테이블은 업데이트되거나 변경되지 않는다. 따라서, 블록 129 에서의 판정이 "예" 인 경우에는, 블록 132' 및 블록 134' 각각에서 EOB 시프트 및 sEOB 시프트만이 업데이트된다. 또한, 블록 132' 및 블록 134' 가 블록 130' 을 뒤따른다. 블록 136 이 블록 132' 및 블록 134' 를 뒤따른다.
대안적인 추가 구성에 있어서, indexS 에는 항상 시작 스캔 위치 인덱스값이 할당될 수 있다. 이 구성에 있어서, indexS > 0 이고, EOB 및 sEOB 가 허용되지 않는 계수에 대해, 유효 런에 대한 VLC 코드 인덱스의 할당이 그에 따라 변경되어야 한다. 예를 들어, indexS = 4 인 경우, (p, r, v) 트리플릿에서 EOB 및 sEOB 를 위해 지정된 r 값은 각각 0 및 5 와 동등하고, 다음의 VLC 테이블이 표 1 에 따라 선택된다.
Figure 112009027631912-pct00003
EOB 및 sEOB 가 허용되지 않는 계수에 대해, VLC 코드 인덱스에 대한 심볼 (유효 런) 의 할당은 표 2 에 따라 할당될 것이다.
Figure 112009027631912-pct00004
도 11 은 효율적인 SVC 코덱 (200) 의 제 1 레벨의 비트 보존을 이용하는 SVC 프레임 송신을 위한 일반적인 블록도이다. 효율적인 SVC 코덱 (200) 은 인코더 (220) 및 디코더 (240) 를 포함한다. 본 명세서에 기재된 적응의 코딩 효율을 증가시키기 위해서, 효율적인 SVC 코덱 (200) 은, 프레임/슬라이스[i] 로 표시된 각 프레임 또는 슬라이스에 대한 초기화 테이블[i-1] (204A) 을 디코더 (240) 로 송신한다. 초기화 테이블[i-1] (204) 은 하나 이상의 구문 엘리먼트를 포함할 수도 있다. 예를 들어, 초기화 테이블[i-1] (204A) 은, 적어도 휘도를 위한 초기화 테이블[i-1] (204AL) 및 색차를 위한 초기화 테이블[i-1] (204AC) 을 포함한다. 초기화 테이블[i-1] (204AL) 만 도시되어 있다. 휘도를 위한 초기화 테이블[i-1] (204AL) 은 휘도를 위한 테이블 EOBshiftInit[i-1], sEOBshiftInit[i-1] 및 VLCtableSelectInit[i-1] 을 포함한다. 또한, 색차를 위한 초기화 테이블[i-1] (204AC) 은, 색차를 위한 테이블 EOBshiftInit[i-1], sEOBshiftInit[i-1] 및 VLCtableSelectInit[i-1] 을 포함할 수도 있다. 이들 테이블은, 예를 들어 디폴트 테이블보다 양호한 현재의 프레임의 통계를 반영한다는 것을 보장하는 이전에 인코딩된 프레임 또는 슬라이스에 대해 수집된 통계치를 이용함으로써 인코더 (220) 에 의해 획득될 수 있다. 이 구성에 있어서, 표시자 i 는 현재의 프레임 또는 슬라이스를 표시하고, i-1 은 이전의 프레임 또는 슬라이스를 표시한다. 표시자 Max 는 최종 indexS 를 표시한다.
도 11 에 있어서, 인코더 (220) 로부터 디코더 (240) 로의 송신물은, 초기화 테이블[i-1] (204A) 이 뒤따르는 현재의 프레임/슬라이스[i] (202A) 를 나타내는 비트스트림을 포함할 것이다. 블록 (206) 은, 필요에 따라 비트스트림에서의 다른 데이터가 포함될 수도 있다는 것을 나타내는 것으로만 도시되어 있다. 다음의 프레임/슬라이스[i+1] (202B) 이 블록 (206 또는 204A) 을 뒤따를 것이다. 다음의 프레임/슬라이스[i+1] (202B) 다음에, 초기화 테이블[(i-1)+1] (204B) 이 디코더 (240) 로 통신될 것이다. 비트스트림은, 나머지 프레임 또는 슬라이스에 대해 블록 (206) 이 있는 패턴 또는 이 블록 (206) 이 없는 패턴을 포함한다. 이 실시예에 있어서, 정보는 단일 비트스트림으로 도시되어 있다. 그러나, 프레임/슬라이스 정보는 초기화 테이블로부터 분리된 스트림으로 송신될 수도 있다. 이 구성에 있어서, 초기화 테이블[i-1] (204A), 초기화 테이블[(i-1)+1] (204B) 등으로 송신되는 경우에, 휘도 및 색차 또는 다른 구문 엘리먼트를 위한 디폴트 테이블을 이용하는 것이 디코더 (240) 에 요구되지 않을 것이다.
도 12 는 효율적인 SVC 코덱 (200') 의 제 2 레벨의 비트 보존을 이용하는 SVC 프레임 송신을 위한 일반적인 블록도이다. 효율적인 SVC 코덱 (200') 에 있어서, 초기화 테이블[i-1] (204A') 은 휘도만을 위한 테이블 EOBshiftInit[i-1], sEOBshiftInit[i-1] 및 VLCtableSelectInit[i-1] 을 포함한다. 따라서, 몇몇 프레임/슬라이스 (202A' 및 202B') 에 대해, 휘도만을 위한 초기화 테이블[i-1] (204A') 및 초기화 테이블[(i-1)+1] (204B') 이 송신될 것이다. 이 구성에 있어서, 디코더 (240) 는 프레임/슬라이스를 디코딩하기 위해 디코더 (240) 에 상주하는 디폴트 초기화 색차 테이블 (244) 을 이용할 것이다.
도 13 은 효율적인 SVC 코덱 (300) 의 제 3 레벨의 비트 보존을 이용하는 SVC 프레임 송신을 위한 일반적인 블록도이다. 코덱 (300) 은 인코더 (320) 및 디코더 (340) 를 포함한다. 초기화 테이블[i-1] (304A) 을 송신하는데 필요한 비트량을 감소시키기 위해서, EOBshiftInit[i-1], sEOBshiftInit[i-1] 및 VLCtableSelectInit[i-1] 에 대한 테이블은 indexS 값 중 일부에 대해서만 송신될 수 있다. 예를 들어, indexS < Max1 에 대해서만 송신될 수 있다. 예를 들어, Max1 은 8 일 수도 있다. 나머지 indexS 값에 대해, M+1, M+2, …, Max2 로 표시된 indexS > Max1(M) 에 대한 디폴트 값 EOBshiftInit[D], sEOBshiftInit[D] 및 VLCtableSelectInit[D] 을 갖는 디폴트 초기화 테이블 (344) 이 디코더 (340) 에 의해 이용된다. EOBshiftInit[i-1], sEOBshiftInit[i-1] 및 VLCtableSelectInit[i-1] 이 디코더 (340) 로 시그널링되는 indexS 값은, 인코더 (320) 에서 적응형으로 결정될 수 있고, 프레임마다 또는 슬라이스마다 변할 수 있다.
도 13 에 있어서, 인코더 (320) 로부터 디코더 (340) 로의 송신물은, 초기화 테이블[i-1] (304A) 이 뒤따르는 현재의 프레임/슬라이스[i] (302A) 를 나타내는 비트스트림을 포함할 것이다. 블록 (306) 은, 비트스트림에서의 다른 데이터가 포함될 수도 있다는 것을 나타내는 것으로만 도시되어 있다. 다음의 프레임/슬라이스[i+1] (302B) 이 블록 (306 또는 304A) 을 뒤따를 것이다. 다음의 프레임/슬라이스[i+1] (302B) 다음에, 초기화 테이블[(i-1)+1] (304B) 이 디코더 (340) 로 통신될 것이다. 비트스트림은, 나머지 프레임 또는 슬라이스에 대해 블록 (306) 이 있는 패턴 또는 이 블록 (306) 이 없는 패턴을 포함한다. 이 구성에 있어서, 정보는 단일 비트스트림으로 도시되어 있다. 그러나, 프레임/슬라이스 정보는 초기화 테이블로부터 분리된 스트림으로 송신될 수도 있다.
또한, 프레임/슬라이스 콘텐츠에 종속하여, 일부 구문 엘리먼트만을 위한 초기화 테이블이 송신될 수 있고, 나머지 구문 엘리먼트에 대해서는 디폴트 초기화 테이블이 이용되어야 한다. 예를 들어, 몇몇 슬라이스/프레임에 대해, 도 12 에 도시된 바와 같이, 휘도를 위한 EOB 및 VLC 테이블 인덱스에 대한 초기화 테이블만이 송신될 수 있다.
사이클 넘버 또는 indexS 가 증가하고 있는 경우, EOB 시프트 및 sEOB 값은 일반적으로 단조 감소하고 있다는 것이 관측될 수 있다. 그에 따라, indexS = 1 에 대한 EOB 시프트 값이 모든 가능한 값 (예를 들어, 0 내지 15) 중 하나의 값을 취하는 것을 허용함으로써, EOB 시프트 테이블이 통신될 수도 있다. indexS > 1 에 대해, EOB 시프트 값은, indexS-1 에 대한 EOB 시프트 값보다 작거나 이 EOB 시프트 값과 동일하도록 제한된다. 따라서, indexS > 1 에 대해, indexS 값당 1 비트만이 EOB 시프트 값을 시그널링하는데 필요하다 (예를 들어, 0 - EOB 시프트 값이 동일하게 유지됨, 1 - EOB 시프트 값이 1 만큼 감소되어야 함). indexS = Max 에 대해 EOB 시프트 값이 0 에 도달하는 경우, Max 보다 큰 indexS 에 대해 부가적인 정보가 송신될 필요는 없다.
전술한 초기화 테이블을 송신하는 방법은 적응 있이 또는 적응 없이 이용될 수 있다. 후자의 경우에, 초기화 테이블에 주어진 값은 전체 프레임/슬라이스에 이용된다.
본 명세서에 전술한 기술은, 무선 통신, 컴퓨팅, 퍼스널 일렉트로닉스 등에 이용될 수도 있다. 무선 통신을 위한 기술의 예시적인 이용이 후술된다.
도 14 는 무선 통신 시스템에서의 무선 디바이스 (400) 의 일 구성의 블록도이다. 무선 디바이스 (400) 는 핸드셋일 수도 있다. 핸드셋은 셀룰러 또는 카메라 전화기, 단말기, 무선-장착 PDA (Personal Digital Assistant), 무선 통신 디바이스, 비디오 게임 콘솔, 랩톱 컴퓨터, 비디오-가능 디바이스, 또는 일부 다른 무선-장착 디바이스일 수도 있다. 무선 통신 시스템은 코드 분할 다중 접속 (CDMA) 시스템, GSM (Global System for Mobile Communications) 시스템, 또는 일부 다른 시스템일 수도 있다.
무선 디바이스 (400) 는 수신 경로 및 송신 경로를 통해 양방향 통신을 제공할 수 있다. 수신 경로 상에서, 기지국에 의해 송신된 신호가 안테나 (412) 에 의해 수신되어, 수신기 (RCVR ; 414) 로 제공된다. 수신기 (414) 는 수신된 신호를 컨디셔닝 및 디지털화하여, 추가 처리를 위해 샘플을 디지털 섹션 (420) 으로 제공한다. 송신 경로 상에서, 송신기 (TMTR ; 416) 는 디지털 섹션 (420) 으로부터 송신될 데이터를 수신하고, 이 데이터를 처리 및 컨디셔닝하여, 변조된 신호를 발생시키는데, 이 변조된 신호는 안테나 (412) 를 통해 기지국으로 송신된다.
디지털 섹션 (420) 은, 예를 들어 모뎀 프로세서 (422), 비디오 프로세서 (424), 제어기/프로세서 (426), 디스플레이 프로세서 (428), ARM/DSP (432), 그래픽스 처리 유닛 (GPU ; 434), 내부 메모리 (436), 및 외부 버스 인터페이스 (EBI; 438) 와 같은 각종 처리 유닛, 인터페이스 유닛 및 메모리 유닛을 포함한다. 모뎀 프로세서 (422) 는 데이터 송신 및 수신을 위한 처리 (예를 들어, 인코딩, 변조, 복조 및 디코딩) 를 수행한다. 비디오 프로세서 (424) 는 비디오 콘텐츠 (예를 들어, 정지 이미지, 동영상 (moving video), 및 무빙 텍스트 (moving text)) 에 대해 캠코더, 비디오 재생, 및 화상 회의와 같은 비디오 애플리케이션을 위한 처리를 수행한다. 제어기/프로세서 (426) 는 디지털 섹션 (420) 내의 각종 처리 유닛 및 인터페이스 유닛의 동작을 지시할 수도 있다. 디스플레이 프로세서 (428) 는, 디스플레이 유닛 (430) 상의 비디오, 그래픽스 및 텍스트의 디스플레이를 용이하게 하는 처리를 수행한다. ARM/DSP (432) 는 무선 디바이스 (400) 를 위한 각종 타입의 처리를 수행할 수도 있다. 그래픽스 처리 유닛 (434) 은 그래픽스 처리를 수행한다.
본 명세서에 기재된 기술은 디지털 섹션 (420) 에서의 임의의 프로세서 (예를 들어, 비디오 프로세서 (424)) 에 이용될 수도 있다. 내부 메모리 (436) 는 디지털 섹션 (420) 내의 각종 유닛에 대한 명령 및/또는 데이터를 저장한다. EBI (438) 는 버스 또는 데이터 라인 (DL) 을 따라 디지털 섹션 (420) (예를 들어, 내부 메모리 (436)) 과 메인 메모리 (440) 사이의 데이터 전송을 용이하게 한다.
디지털 섹션 (420) 은 하나 이상의 DSP, 마이크로프로세서, RISC 등으로 구현될 수도 있다. 또한, 디지털 섹션 (420) 은 하나 이상의 주문형 집적 회로 (ASIC) 또는 일부 다른 타입의 집적 회로 (IC) 상에 제조될 수도 있다.
본 명세서에 기재된 기술은 각종 하드웨어 유닛으로 구현될 수도 있다. 예를 들어, 이들 기술은, ASIC, DSP, RISC, ARM, 디지털 신호 처리 디바이스 (DSPD), 프로그래머블 논리 디바이스 (PLD), 필드 프로그래머블 게이트 어레이 (FPGA), 프로세서, 제어기, 마이크로제어기, 마이크로프로세서, 및 다른 전자 유닛으로 구현될 수도 있다.
하나 이상의 예시적인 구성에 있어서, 기재된 기능은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 이들 기능은 컴퓨터 판독가능 매체 상에 하나 이상의 명령 또는 코드로서 저장되거나 이 컴퓨터 판독가능 매체를 통해 송신될 수도 있다. 컴퓨터 판독가능 매체는, 하나의 위치로부터 또다른 위치로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함한 통신 매체 및 컴퓨터 저장 매체 모두를 포함한다. 저장 매체는, 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있다. 예시로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장 디바이스, 자기 디스크 저장 디바이스 또는 다른 자기 저장 디바이스, 또는 컴퓨터에 의해 액세스될 수 있으며 명령 또는 데이터 구조의 형태로 원하는 프로그램 코드를 저장하거나 운반하는데 사용될 수 있는 임의의 다른 매체를 포함할 수 있지만, 이에 제한되지는 않는다. 또한, 임의의 커넥션이 적절하게 컴퓨터 판독가능 매체로 지칭된다. 예를 들어, 동축 케이블, 광섬유 케이블, 연선 (twisted pair), DSL (Digital Subscriber Line), 또는 적외선, 무선 및 마이크로파와 같은 무선 기술을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 소프트웨어가 송신되는 경우, 이 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 무선 및 마이크로파와 같은 무선 기술은 매체의 정의에 포함된다. 본 명세서에 이용된 바와 같이, 디스크 (disk 또는 disc) 는, CD (Compact Disc), 레이저 디스크, 광학 디스크, DVD (Digital Versatile Disc), 플로피 디스크 및 블루레이 디스크를 포함하는데, 일반적으로 디스크 (disk) 는 자기적으로 데이터를 재생하는 한편, 디스크 (disc) 는 레이저를 사용하여 광학적으로 데이터를 재생한다. 또한, 전술한 바의 조합은 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
개시된 구성의 전술한 설명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 개시물을 실시 또는 이용할 수 있도록 제공된다. 이들 구성에 대한 각종 변형은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명하고, 본 명세서에 정의된 일반적인 원리는 본 개시물의 사상 또는 범위를 벗어나지 않으면서 다른 구성에 적용될 수도 있다. 따라서, 본 개시물은 본 명세서에 제시된 구성에 제한되는 것으로 의도되는 것이 아니라, 본 명세서에 개시된 신규 특징 및 원리에 부합하는 가장 광범위한 범위를 따르는 것이다.

Claims (25)

  1. 현재의 프레임 또는 슬라이스에 대한 초기화 테이블을 발생시키도록 동작하는 명령 세트를 갖는 처리 회로; 및
    상기 현재의 프레임 또는 슬라이스와 함께 상기 초기화 테이블을 디코더로 송신하는 송신기를 포함하고,
    상기 초기화 테이블은, 스케일러블 비디오 코딩을 이용하여 이전의 인코딩된 프레임 또는 슬라이스에 대한 유효 계수 패스 (significant coefficient pass) 의 통계치를 갖는, 디바이스.
  2. 제 1 항에 있어서,
    상기 초기화 테이블은 스캔 인덱스를 갖고,
    상기 처리 회로는, 스캔 인덱스를 2 개의 값으로 제한하도록 동작하는 제 2 명령 세트를 더 포함하고,
    상기 2 개의 값은, 0 및 scanIndex 를 포함하고,
    상기 scanIndex 는, 상기 유효 계수 패스의 지그재그 패턴의 시작 스캔 위치 인덱스인, 디바이스.
  3. 제 2 항에 있어서,
    상기 초기화 테이블은, 가변 길이 코딩 (VLC) 테이블, EOB (End of Block) 시프트 테이블 및 sEOB (special EOB) 시프트 테이블을 포함하는, 디바이스.
  4. 제 3 항에 있어서,
    상기 처리 회로는, 0 의 값을 갖는 스캔 인덱스에 대해서는 상기 VLC 테이블이 업데이트되지 않도록 하는 제 3 명령 세트를 더 포함하는, 디바이스.
  5. 제 1 항에 있어서,
    상기 초기화 테이블은 휘도만을 위한 초기화 테이블인, 디바이스.
  6. 제 1 항에 있어서,
    상기 초기화 테이블은 휘도 및 색차를 위한 초기화 테이블인, 디바이스.
  7. 제 1 항에 있어서,
    상기 디바이스는, 셀룰러 전화기, 무선 디바이스, 핸드셋, 무선 통신 디바이스, 비디오 게임 콘솔, 무선-장착 PDA (Personal Digital Assistant), 랩톱 컴퓨터, 또는 비디오-가능 디바이스인, 디바이스.
  8. 현재의 프레임 또는 슬라이스에 대한 초기화 테이블을 발생시키도록 동작하는 명령 세트를 갖는 처리 회로; 및
    상기 현재의 프레임 또는 슬라이스와 함께 상기 초기화 테이블을 디코더로 송신하는 송신기를 포함하고,
    상기 초기화 테이블은, 스케일러블 비디오 코딩을 이용하여 이전의 인코딩된 프레임 또는 슬라이스에 대한 유효 계수 패스 (significant coefficient pass) 의 통계치를 갖는, 집적 회로.
  9. 제 8 항에 있어서,
    상기 초기화 테이블은 스캔 인덱스를 갖고,
    상기 처리 회로는, 스캔 인덱스를 2 개의 값으로 제한하도록 동작하는 제 2 명령 세트를 더 포함하고,
    상기 2 개의 값은, 0 및 scanIndex 를 포함하고,
    상기 scanIndex 는, 상기 유효 계수 패스의 지그재그 패턴의 시작 스캔 위치 인덱스인, 집적 회로.
  10. 제 9 항에 있어서,
    상기 초기화 테이블은, 가변 길이 코딩 (VLC) 테이블, EOB (End of Block) 시프트 테이블 및 sEOB (special EOB) 시프트 테이블을 포함하는, 집적 회로.
  11. 제 10 항에 있어서,
    상기 처리 회로는, 0 의 값을 갖는 스캔 인덱스에 대해서는 상기 VLC 테이블이 업데이트되지 않도록 하는 제 3 명령 세트를 더 포함하는, 집적 회로.
  12. 제 10 항에 있어서,
    상기 초기화 테이블은, 휘도, 색차, 또는 상기 휘도와 상기 색차 모두를 위한 초기화 테이블인, 집적 회로.
  13. 현재의 프레임 또는 슬라이스에 대한 초기화 테이블을 발생시키는 발생 수단; 및
    상기 현재의 프레임 또는 슬라이스와 함께 상기 초기화 테이블을 디코더로 송신하는 송신 수단을 포함하고,
    상기 초기화 테이블은, 스케일러블 비디오 코딩을 이용하여 이전의 인코딩된 프레임 또는 슬라이스에 대한 유효 계수 패스 (significant coefficient pass) 의 통계치를 갖는, 디바이스.
  14. 제 13 항에 있어서,
    상기 초기화 테이블은 스캔 인덱스를 갖고,
    상기 발생 수단은, 스캔 인덱스를 2 개의 값으로 제한하는 제한 수단을 포함하고,
    상기 2 개의 값은, 0 및 scanIndex 를 포함하고,
    상기 scanIndex 는, 상기 유효 계수 패스의 지그재그 패턴의 시작 스캔 위치 인덱스인, 디바이스.
  15. 제 14 항에 있어서,
    상기 초기화 테이블은, 가변 길이 코딩 (VLC) 테이블, EOB (End of Block) 시프트 테이블 및 sEOB (special EOB) 시프트 테이블을 포함하는, 디바이스.
  16. 제 15 항에 있어서,
    상기 초기화 테이블은, 휘도, 색차, 또는 상기 휘도와 상기 색차 모두를 위한 초기화 테이블인, 디바이스.
  17. 컴퓨터 판독가능 매체로서,
    컴퓨터로 하여금,
    현재의 프레임 또는 슬라이스에 대한 초기화 테이블을 발생시키도록 하는 명령; 및
    상기 현재의 프레임 또는 슬라이스와 함께 상기 초기화 테이블을 디코더로 송신하도록 하는 명령을 갖고,
    상기 초기화 테이블은, 스케일러블 비디오 코딩을 이용하여 이전의 인코딩된 프레임 또는 슬라이스에 대한 유효 계수 패스 (significant coefficient pass) 의 통계치를 갖는, 컴퓨터 판독가능 매체.
  18. 제 17 항에 있어서,
    상기 초기화 테이블은 스캔 인덱스를 갖고,
    상기 초기화 테이블을 발생시키도록 하는 명령은, 컴퓨터로 하여금, 스캔 인덱스를 2 개의 값으로 제한하도록 하는 명령을 포함하고,
    상기 2 개의 값은, 0 및 scanIndex 를 포함하고,
    상기 scanIndex 는, 상기 유효 계수 패스의 지그재그 패턴의 시작 스캔 위치 인덱스인, 컴퓨터 판독가능 매체.
  19. 제 18 항에 있어서,
    상기 초기화 테이블은, 가변 길이 코딩 (VLC) 테이블, EOB (End of Block) 시프트 테이블 및 sEOB (special EOB) 시프트 테이블을 포함하는, 컴퓨터 판독가능 매체.
  20. 제 19 항에 있어서,
    상기 초기화 테이블은, 휘도, 색차, 또는 상기 휘도와 상기 색차 모두를 위한 초기화 테이블인, 컴퓨터 판독가능 매체.
  21. 스케일러블 비디오 코딩을 이용하여 현재의 프레임 또는 슬라이스를 인코딩하는 단계;
    상기 현재의 프레임 또는 슬라이스에 대한 초기화 테이블을 발생시키는 단계;
    상기 현재의 프레임 또는 슬라이스와 함께 상기 초기화 테이블을 디코더로 송신하는 단계; 및
    상기 송신된 초기화 테이블을 이용하여 상기 현재의 프레임 또는 슬라이스를 상기 디코더로 디코딩하는 단계를 포함하고,
    상기 초기화 테이블은, 상기 스케일러블 비디오 코딩을 이용하여 이전의 인코딩된 프레임 또는 슬라이스에 대한 유효 계수 패스 (significant coefficient pass) 의 통계치를 갖는, 방법.
  22. 제 21 항에 있어서,
    상기 초기화 테이블은 스캔 인덱스를 갖고,
    상기 초기화 테이블을 발생시키는 단계는, 스캔 인덱스를 2 개의 값으로 제한하는 단계를 포함하고,
    상기 2 개의 값은, 0 및 scanIndex 를 포함하고,
    상기 scanIndex 는, 상기 유효 계수 패스의 지그재그 패턴의 시작 스캔 위치 인덱스인, 방법.
  23. 제 21 항에 있어서,
    상기 초기화 테이블을 디코더로 송신하는 단계는, 상기 초기화 테이블 내의 가변 길이 코딩 (VLC) 테이블, EOB (End of Block) 시프트 테이블 및 sEOB (special EOB) 시프트 테이블을 송신하는 단계를 포함하는, 방법.
  24. 제 23 항에 있어서,
    상기 초기화 테이블을 디코더로 송신하는 단계는, 휘도, 색차, 또는 상기 휘도와 상기 색차 모두를 위한 상기 초기화 테이블 내의 가변 길이 코딩 (VLC) 테이블, EOB (End of Block) 시프트 테이블 및 sEOB (special EOB) 시프트 테이블을 송신하는 단계를 포함하는, 방법.
  25. 제 24 항에 있어서,
    상기 디코딩 단계는, 상기 디코더에 상주하는 디폴트 테이블을 이용하여 상기 현재의 프레임 또는 슬라이스를 상기 디코더로 디코딩하는 단계를 포함하는, 방법.
KR1020097009489A 2006-10-13 2007-10-11 스케일러블 비디오 코덱에서의 효율적인 유효 계수 코딩 KR101032277B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US82949006P 2006-10-13 2006-10-13
US60/829,490 2006-10-13
US11/868,179 US8942292B2 (en) 2006-10-13 2007-10-05 Efficient significant coefficients coding in scalable video codecs
US11/868,179 2007-10-05

Publications (2)

Publication Number Publication Date
KR20090095564A KR20090095564A (ko) 2009-09-09
KR101032277B1 true KR101032277B1 (ko) 2011-05-06

Family

ID=39286551

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097009489A KR101032277B1 (ko) 2006-10-13 2007-10-11 스케일러블 비디오 코덱에서의 효율적인 유효 계수 코딩

Country Status (8)

Country Link
US (1) US8942292B2 (ko)
EP (1) EP2074828B1 (ko)
JP (1) JP5180220B2 (ko)
KR (1) KR101032277B1 (ko)
CN (1) CN101682757B (ko)
BR (1) BRPI0717831A2 (ko)
TW (1) TWI387343B (ko)
WO (1) WO2008048855A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8325819B2 (en) 2006-10-12 2012-12-04 Qualcomm Incorporated Variable length coding table selection based on video block type for refinement coefficient coding
US8565314B2 (en) 2006-10-12 2013-10-22 Qualcomm Incorporated Variable length coding table selection based on block type statistics for refinement coefficient coding
US8599926B2 (en) 2006-10-12 2013-12-03 Qualcomm Incorporated Combined run-length coding of refinement and significant coefficients in scalable video coding enhancement layers
US9319700B2 (en) 2006-10-12 2016-04-19 Qualcomm Incorporated Refinement coefficient coding based on history of corresponding transform coefficient values

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BRPI0714127A2 (pt) * 2006-07-13 2012-12-25 Qualcomm Inc codificaÇço de vÍdeo com escalabilidade de granularidade fina utilizando fragmentos alinhados por ciclo.
US8363579B2 (en) * 2008-12-08 2013-01-29 Intel Corporation Apparatus and method of communication in a wireless network
TWI399093B (zh) * 2009-12-30 2013-06-11 Univ Feng Chia 用於高效能細緻可調性編碼器之快速重新量化方法及快速重新量化器
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
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
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
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
US9491469B2 (en) 2011-06-28 2016-11-08 Qualcomm Incorporated Coding of last significant transform coefficient
WO2014053517A1 (en) * 2012-10-01 2014-04-10 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Scalable video coding using derivation of subblock subdivision for prediction from base layer
US20230035118A1 (en) * 2021-07-23 2023-02-02 Tencent America LLC Cross component end of block flag coding

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008008714A1 (en) 2006-07-12 2008-01-17 Qualcomm Incorporated Video compression using adaptive variable length codes

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792044B2 (en) 2001-05-16 2004-09-14 Koninklijke Philips Electronics N.V. Method of and system for activity-based frequency weighting for FGS enhancement layers
US6959116B2 (en) 2001-09-18 2005-10-25 Emc Corporation Largest magnitude indices selection for (run, level) encoding of a block coded picture
US6909753B2 (en) 2001-12-05 2005-06-21 Koninklijke Philips Electronics, N.V. Combined MPEG-4 FGS and modulation algorithm for wireless video transmission
WO2003079692A1 (en) * 2002-03-19 2003-09-25 Fujitsu Limited Hierarchical encoder and decoder
ES2599637T3 (es) * 2002-03-27 2017-02-02 Panasonic Intellectual Property Corporation Of America Sistema de codificación y decodificación de longitud variable y procedimiento de codificación y decodificación de longitud variable
US7136532B2 (en) 2002-06-27 2006-11-14 Koninklijke Philips Electronics N.V. FGS decoder based on quality estimated at the decoder
US6894628B2 (en) * 2003-07-17 2005-05-17 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables
US7286710B2 (en) * 2003-10-01 2007-10-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Coding of a syntax element contained in a pre-coded video signal
US7227894B2 (en) 2004-02-24 2007-06-05 Industrial Technology Research Institute Method and apparatus for MPEG-4 FGS performance enhancement
US7519229B2 (en) * 2004-03-30 2009-04-14 Apple, Inc. Video coding system providing separate coding chains for dynamically selected small-size or full-size playback
US20060008009A1 (en) * 2004-07-09 2006-01-12 Nokia Corporation Method and system for entropy coding for scalable video codec
TWI243615B (en) * 2004-10-11 2005-11-11 Ind Tech Res Inst System for enhancing compression ratio of scalable video coding and method thereof
US20070223826A1 (en) * 2006-03-21 2007-09-27 Nokia Corporation Fine grained scalability ordering for scalable video coding
KR100809301B1 (ko) * 2006-07-20 2008-03-04 삼성전자주식회사 엔트로피 부호화/복호화 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008008714A1 (en) 2006-07-12 2008-01-17 Qualcomm Incorporated Video compression using adaptive variable length codes

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8325819B2 (en) 2006-10-12 2012-12-04 Qualcomm Incorporated Variable length coding table selection based on video block type for refinement coefficient coding
US8565314B2 (en) 2006-10-12 2013-10-22 Qualcomm Incorporated Variable length coding table selection based on block type statistics for refinement coefficient coding
US8599926B2 (en) 2006-10-12 2013-12-03 Qualcomm Incorporated Combined run-length coding of refinement and significant coefficients in scalable video coding enhancement layers
US9319700B2 (en) 2006-10-12 2016-04-19 Qualcomm Incorporated Refinement coefficient coding based on history of corresponding transform coefficient values

Also Published As

Publication number Publication date
WO2008048855A2 (en) 2008-04-24
EP2074828B1 (en) 2016-11-16
KR20090095564A (ko) 2009-09-09
JP2010528492A (ja) 2010-08-19
CN101682757A (zh) 2010-03-24
WO2008048855A3 (en) 2009-12-17
CN101682757B (zh) 2014-08-27
JP5180220B2 (ja) 2013-04-10
TWI387343B (zh) 2013-02-21
US20080089425A1 (en) 2008-04-17
TW200835337A (en) 2008-08-16
EP2074828A2 (en) 2009-07-01
US8942292B2 (en) 2015-01-27
BRPI0717831A2 (pt) 2014-06-10

Similar Documents

Publication Publication Date Title
KR101032277B1 (ko) 스케일러블 비디오 코덱에서의 효율적인 유효 계수 코딩
CN104584560B (zh) 在去块时使用色度量化参数偏移
CN101010964B (zh) 在可分级视频编码中的使用帧速率上变换技术的方法与设备
KR101321012B1 (ko) Cabac 비트스트림의 멀티­스테이지 디코딩을 위한 아키텍처
KR101524146B1 (ko) 다운샘플링된 기준 화상을 이용한 인터-뷰 예측
JP2018067946A (ja) 適応ツリー選択を使用してバイナリ・セットをビデオ符号化およびビデオ復号する方法および装置
US20090041130A1 (en) Method of transmitting picture information when encoding video signal and method of using the same when decoding video signal
TWI732884B (zh) 用於顯示串流壓縮之子串流多工
CN110024398A (zh) 针对屏幕远程处理场景的局部的基于散列的运动估计
KR20160129045A (ko) 일정 품질 비디오 코딩
JP2019522448A (ja) 画像を圧縮する方法および装置技術分野
WO2023236936A1 (zh) 一种图像编解码方法及装置
AU2019356526B2 (en) A method and apparatus for image compression
CN101189876A (zh) 用信号发送可缩放视频编码中的比特流排序
US20140092987A1 (en) Entropy coding techniques and protocol to support parallel processing with low latency
TW202406352A (zh) 一種圖像編解碼方法及裝置
US20220109891A1 (en) Features of range asymmetric number system encoding and decoding
CN115866297A (zh) 视频处理方法、装置、设备及存储介质
CN117296313A (zh) 在算术编码和解码中处理尾码
KR20230140460A (ko) 병렬 엔트로피 코딩

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
FPAY Annual fee payment
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee