KR100776195B1 - 빠른 cavlc를 위한 h.264 디코딩 방법 - Google Patents
빠른 cavlc를 위한 h.264 디코딩 방법 Download PDFInfo
- Publication number
- KR100776195B1 KR100776195B1 KR20050072817A KR20050072817A KR100776195B1 KR 100776195 B1 KR100776195 B1 KR 100776195B1 KR 20050072817 A KR20050072817 A KR 20050072817A KR 20050072817 A KR20050072817 A KR 20050072817A KR 100776195 B1 KR100776195 B1 KR 100776195B1
- Authority
- KR
- South Korea
- Prior art keywords
- bit
- cavlc
- value
- index
- obtaining
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000006835 compression Effects 0.000 abstract description 3
- 238000007906 compression Methods 0.000 abstract description 3
- 238000013461 design Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 빠른 CAVLC를 위한 H.264 디코딩 방법에 관한 것으로, 특히 압축효율이 뛰어난 디코더를 저주파수 설계가 가능하도록 CAVLC 블록을 최소시간으로 계수값을 구하기 위해 여러 개의 테이블을 효율적이고 빠르게 찾는 방법에 관한 것이다.
본 발명의 빠른 CAVLC를 위한 H.264 디코딩 방법은 CAVLC를 위한 H.264 디코딩 방법에 있어서, 1 번째 입력된 비트인 '0'으로부터 최초의 '1'인 Fix Index 비트 앞까지의 '0'의 개수를 구하여 Row Index의 값을 구하는 제1단계; 상기 Row Index와 Fix Index를 제외한 비트열을 나타내는 Column Index의 값을 구하는 제2단계; 및 상기 Row Index의 값과 Column Index의 값에 대응하는 전체 계수의 값과 T1s(Trailing_ones)의 값을 구하는 제3단계;를 포함하는 것을 특징으로 한다.
CAVLC, H.264, 디코딩
Description
도 1은 종래의 H.264의 Num-VLCO에 대한 테이블이다.
도 2는 본 발명의 빠른 CAVLC 스트림 구조를 나타낸 도면이다.
도 3은 본 발명의 빠른 서치 Num-VLC0 테이블을 나타낸 도면이다.
도 4는 본 발명의 Leading Zero를 구하는 1가지 예를 나타낸 도면이다.
도 5는 본 발명의 빠른 CAVLC를 수행하기 위하여 도 1을 변형한 테이블이다.
도 6은 H.264의 Num-VLC1에 대한 테이블이다.
도 7은 본 발명의 빠른 CAVLC를 수행하기 위하여 도 6을 변형한 테이블이다.
도 8은 H.264의 Num-VLC2에 대한 테이블이다.
도 9는 본 발명의 빠른 CAVLC를 수행하기 위하여 도 8을 변형한 테이블이다.
도 10은 H.264의 ChromaDC Num-VLC에 대한 테이블이다.
도 11은 본 발명의 빠른 CAVLC를 수행하기 위하여 도 10을 변형한 테이블이다.
도 12는 본 발명의 전체 계수와 T1s를 구하기 위한 전체 블록도이다.
본 발명은 빠른 CAVLC를 위한 H.264 디코딩 방법에 관한 것으로, 특히 압축효율이 뛰어난 디코더를 저주파수 설계가 가능하도록 CAVLC 블록을 최소시간으로 계수값을 구하기 위해 여러 개의 테이블을 효율적이고 빠르게 찾는 방법에 관한 것이다.
초고속 인터넷 시대에는 일반 가입자 전화선과 IP 네트워크를 이용한 VOD 방식을 이용하는데, HDTV의 경우에는 4~6Mbps급을 이용하여 시험 서비스를 실시하고 있다. 앞으로는 26Mbps의 VDSL이 보급됨에 따라 HDTV 방송의 전송용량인 19.3Mpbs인 점을 감안하면 통신망의 한계선이 없어지게 된다.
최근에는 방송과 통신의 구분이 모호한 디지털 멀티미디어 방송(DMB)이 부상하고 있다. 각각은 이미 고속 광대역 멀티미디어 정보서비스를 가장 빠르고 저렴하게 제공할 수 있는 매체가 되고 있다.
H.264의 코딩방식은 크게 CAVLC와 CABAC로 분류된다. 현재, H.264 Baseline과 X Profile에서는 CAVLC를 사용하고 있으며, Main Profile에서는 CAVLC와 CABAC를 모두 사용하고 있다.
CAVLC는 크게 4단계로 진행하여 계수값을 구할 수 있다. 1 번째는 T1s (Trailing_ones)와 전체 계수(Total coefficient)를 구하여 전체적인 4 ×4 블록의 모양을 예측하고, 2 번째는 레벨값을 구하며, 3 번째는 전체 제로(total zero)의 값을 구한다. 또한, 4 번째는 Run_before를 구하여 실질적인 계수값을 얻을 수 있 다.
도 1은 종래의 H.264의 Num-VLCO에 대한 테이블이다. CAVLC 구현에 있어 많은 양의 계산값이 요구되는 부분을 살펴보면, CAVLC의 1 번째 단계인 T1s와 전체 계수를 구하기 위해서 입력으로 들어오는 비트스트림을 비교하여 테이블과 일치하는 위치를 찾는다. H.264에는 T1s와 전체 계수를 구하기 위한 테이블이 총 4개 존재하며, 도 1은 이 중에서 하나를 나타낸 것이다.
일반적으로, CAVLC를 소프트웨어로 처리하거나 일반적인 CAVLC 하드웨어에서 처리하면 다음과 같은 예를 통하여 파라미터를 축출하여야 할 것이다.
현재, 디코더 입력으로 비트열이 "00000000011100......"으로 입력된다고 가정하자. H.264 표준에서 전체 계수를 구하는 테이블 중에서 도 1이 선택되었다면( 테이블의 선택은 주변의 매크로 블록의 전체 계수의 개수로 결정한다.), 도 1에 구성된 테이블의 비트열의 종류는 총 62개이다. 상기 예의 비트열을 도 1의 테이블의 비트열과 비교를 수행해야 한다. 소프트웨어 처리시에 한 비트씩 시프트를 수행하여 비교하면, 하드웨어 처리시에도 많은 비교를 수행해야 한다. 더 개선된 방법은 입력된 비트열의 '0'의 개수를 파악하기 위하여 카운터(counter)를 수행한 후에 Leading Zero(상기 예에서는 '0'의 개수는 9)의 개수를 파악하면, 도 1에서 Leading Zero와 개수가 일치하는 비트열을 찾는다. 찾은 비트열은 대부분 복수 개 가 존재하고, 상기 '0'을 제외한 나머지 비트를 일치시켜 일치한 결과값 위치에 T1's와 전체 계수를 구한다.
'0'의 개수를 파악하기 위해서는 루틴하게 비트를 시프트시키면서 비트가 '1'이 나올 때까지 지속적으로 카운터를 수행함으로써 전체의 '0'의 개수를 파악하는데 있어 소요시간이 많이 걸리며, 파악된 0의 개수를 테이블을 서치(search)하기 위하여 계산량 및 소요시간이 많이 걸린다. 상기와 같이 일반적인 방법으로 테이블의 서치를 수행하고 패턴(pattern)을 일치시키면, 많은 양의 계산 및 많은 시간이 소요되며 전체적인 H.264 디코더의 성능증가의 요인이 되는 문제점이 있다.
이에 본 발명은 상기 문제점을 해결하기 위한 것으로써, 압축효율이 뛰어난 디코더를 저주파수 설계가 가능하도록 CAVLC 블록을 최소시간으로 계수값을 구하기 위해 여러 개의 테이블을 효율적이고 빠르게 찾는 방법을 제공하는 것을 목적으로 한다.
삭제
본 발명의 일 실시예에 따른 CAVLC를 위한 H.264 디코딩 방법은 1 번째 입력된 비트인 '0'으로부터 최초의 '1'인 Fix Index 비트 앞까지의 '0'의 개수를 구하여 Row Index의 값을 구하는 단계와, 상기 Row Index와 Fix Index를 제외한 비트열을 나타내는 Column Index의 값을 구하는 단계 및 상기 Row Index의 값과 Column Index의 값에 대응하는 전체 계수의 값과 T1s(Trailing_ones)의 값을 구하는 제3단계를 포함한다.
이하, 본 발명의 실시예에 대한 구성 및 그 작용을 첨부한 도면을 참조하면서 상세히 설명하기로 한다.
이하, 본 발명의 실시예에 대한 구성 및 그 작용을 첨부한 도면을 참조하면서 상세히 설명하기로 한다.
도 2는 본 발명의 빠른 CAVLC 스트림 구조를 나타낸 도면이다. H.264 CAVLC의 입력 비트열을 분석하여 나타낸 것인데, 본 발명에서는 이를 이용하여 도 1의 전체 계수(Total coefficient)와 T1s(Trailing_ones)를 구하는 테이블을 도 5와 같이 빠른 테이블로 변경하였다. 다음에서 빠른 CAVLC를 수행하기 위해서 입력 비트열 형식과 빠른 테이블에 대하여 설명하기로 한다.
도 2를 참조하면 입력 비트열의 형식은 크게 3가지 종류로 분류된다. 1 번째는 Row Index이고, 2 번째는 Fix Index이며, 3 번째는 Column Index이다. 1 번째 Row Index는 1 번째로 입력된 비트인 '0'으로부터 최초의 '1'의 비트 앞까지의 비트열이다. 이때, Row Index의 값은 1 번째 비트부터 '1'이 나오기 바로 직전까지의 '0'의 개수의 값으로 정의한다. 도 1에서 각각의 비트열을 상세히 살펴보면, 2 번째 Fix Index는 '0'을 포함한 비트열에서 1개 이상의 '1'을 포함하고 있으며, 상기의 경우를 제외하면 비트열이 한 비트의 비트열이 된다. 결국, 모든 H.264 CAVLC 입력 비트열은 1개 이상의 '1'을 포함하고 있다. 3 번째는 Column Index이다. 1 번째의 Row Index와 2번째의 Fix Index를 제외한 비트열을 나타내고 있다. 상기와 같이 구성하면, 도 1의 테이블을 도 3 및 도 5와 같이 구성할 수 있으며, 이를 상세히 설명하면 다음과 같다.
도 3은 본 발명의 빠른 서치 Num-VLC0 테이블을 나타낸 도면이다.
도 3에서는 Row Index를 제외하고 나올 수 있는 모든 비트열이 Leading Zero(1 번째 비트부터 '1'이 나오기 바로 직전까지의 '0'의 개수의 값으로 정의한다.)의 개수에 따라 도 1을 기반으로 정리되었다. Row Index에서 나온 Leading Zero의 값이 11개 라고 가정하면, Row Index를 제외한 Fix Index와 Column Index 의 비트열은 총 8가지 비트열('1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111')이 존재한다. 이것은 도 1에서 Leading Zero의 개수가 11개일 때의 값을 추적해 보면 알 수 있다. 상기와 같이 Leading Zero에 따라 총 8가지의 비트열을 나타낸 것이 도 3의 테이블이다.
도 3에서는 Row Index를 제외하고 나올 수 있는 모든 비트열이 Leading Zero(1 번째 비트부터 '1'이 나오기 바로 직전까지의 '0'의 개수의 값으로 정의한다.)의 개수에 따라 도 1을 기반으로 정리되었다. Row Index에서 나온 Leading Zero의 값이 11개 라고 가정하면, Row Index를 제외한 Fix Index와 Column Index 의 비트열은 총 8가지 비트열('1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111')이 존재한다. 이것은 도 1에서 Leading Zero의 개수가 11개일 때의 값을 추적해 보면 알 수 있다. 상기와 같이 Leading Zero에 따라 총 8가지의 비트열을 나타낸 것이 도 3의 테이블이다.
더 상세히 살펴보면, 8가지 비트열의 1 번째 비트는 항상 '1'의 값을 갖는 Fix Index이고, 나머지 부분의 비트열은 '0'부터 '7'까지의 값을 순차적으로 가진다. 순차적으로 갖는 값이 도 3의 Column Index가 된다. 결론적으로, 도 5에서 Row Index의 값은 Leading Zero의 값이 되며, Column Index의 값은 Leading Zero와 Fix Index를 제외한 값이다. 도 5에서 Row Index와 Column Index의 위치의 테이블을 참조해 보면, 전체 계수와 T1s값이 존재하는데 이를 이용하여 CAVLC를 수행하면 된다.
예를 들어, '0000011101...'이 입력으로 들어오는 비트열을 가지고 전체 계수와 T1s값을 구하여 본다. 1 번째로 Leading Zero의 개수를 구한다. Leading Zero의 개수는 '5'이다. Leading Zero의 개수가 '5'이면 뒤에 나오는 비트열의 비트수는 3개가 된다. 상기 예에서 3개의 비트수는 '111'이 된다. 이 비트열 중에서 Fix Index의 '1'을 삭제하면 '11'이 된다. 결국, 도 3에서 Row Index의 값은 Leading Zero의 개수인 '5'가 되고, Column Index의 값은 '11'이 이진수 값이므로 '3'이 되어 도 5에서 전체 계수의 값은 '2'가 되며, T1s의 값은 '0'이 된다.
도 4는 본 발명의 Leading Zero를 구하는 1가지 예를 나타낸 도면이다. H.264 디코딩 수행시에는 CAVLC 처리 블록이 H.264의 다른 블럭(IDCT, INTRA Prediction...)보다 많은 처리시간이 소요된다. 그러므로, H.264 디코딩 성능을 높이기 위해서는 약간의 하드웨어 복잡성은 증가하더라도 짧은 시간 내에 CAVLC 결과값을 얻는 것이 H.264 디코더 측면에서는 더 효율적이다. Leading Zero를 구하는 것은 도 3의 Row Index의 값을 구하기 위한 것이다. Leading Zero를 구하기 위한 일반적인 방법은 입력으로 전송되는 1 번째 비트부터 '0'인지 또는 '1'인지를 판단하고, 비트열을 다시 시프트하여 다음 비트가 '0'인지 또는 '1'인지를 판단한여 Leading Zero의 값을 구할 수 있다. 종래기술인 도 1에서 Leading Zero의 값은 최대 15개의 비트를 가지고 있다. 그러므로, 본 발명에서는 입력 비트열 중에서 1 번째 비트부터 15 번째 비트까지의 비트열의 Leading Zero의 값을 구하면 된다. 최대 비트열을 선택하는 방법을 테이블마다 구분해 보면 다음과 같다.
도 5는 본 발명의 빠른 CAVLC를 수행하기 위하여 도 1을 변형한 테이블이고, 도 6은 H.264의 Num-VLC1에 대한 테이블이다. 그리고, 도 7은 본 발명의 빠른 CAVLC를 수행하기 위하여 도 6을 변형한 테이블이고, 도 8은 H.264의 Num-VLC2에 대한 테이블이다. 또한, 도 9는 본 발명의 빠른 CAVLC를 수행하기 위하여 도 8을 변형한 테이블이고, 도 10은 H.264의 ChromaDC Num-VLC에 대한 테이블이다. 또한, 도 11은 본 발명의 빠른 CAVLC를 수행하기 위하여 도 10을 변형한 테이블이다.
도 5, 도 7, 도 9 및 도 11에서 Row Index의 마지막 값을 보면, 현재의 테이블이 최대로 몇 개의 Leading Zero를 가질 수 있는가를 알 수 있다. 도 5에서는 Leading Zero의 개수가 최대 14개이고, 도 7에서는 Leading Zero의 개수가 최대 12 개이며, 도 9에서는 Leading Zero의 개수가 최대 9개이며, 도 11에서는 Leading Zero의 개수가 최대 7개이다. 도 5, 도 7, 도 9 및 도 11의 테이블 중에서 어떤 것을 선택할 것인가는 현재 CAVLC를 수행할 매크로 블록을 기준으로 상기 매크로 블록과 왼쪽 매크로 블록 계수의 개수로 결정한다. 결론적으로, 도 5의 테이블을 참조해 보면 입력된 비트열 중에서 15개까지의 비트가 올 수 있으며, 도 7의 테이블을 참조하면 입력된 비트열 중에서 13개까지의 비트가 올 수 있다. 또한, 도 9가 선택되면 최대의 비트열은 10개이고, 도 11이 선택되면 최대의 비트열은 8개이다. 상기와 같이 최대의 비트열만큼의 비트의 수를 가지고 아래와 같이 Leading Zero를 구한다. 다음의 예는 도 5의 테이블 참조시의 예이다.
도 4를 참조하면, 15개의 비트(0 번째 비트에서 14 번째 비트)를 2개의 비트열로 나눈다. 2개의 비트열로 나누는 것은 도 4에 도시된 바와 같이 중심을 기준으로 2개의 비트열로 분할한다. 1 번째 비트열은 0 번째 비트부터 7 번째 비트까지의 비트열이다. 2 번째 비트열은 8 번째 비트부터 14 번째 비트까지의 비트열이다. 먼저, 0 번째 비트부터 7 번째 비트까지의 합을 구하거나 '0'보다 큰 지를 아닌 지를 비교한다. 또한, 8 번째 비트부터 14 번째 비트까지의 합을 구하거나 0보다 큰 지 아닌 지를 비교한다. 만약, 0 번째 비트부터 7 번째 비트까지의 합이 '0'보다 크거나 '0'과 비교한 값이 '0'보다 크면 1 번째 비트열 중에 '1'이 포함되어 있으므로 1 번째 비트열을 가지고 Leading Zero를 구하면 된다. 결국, 8 번째 비트부터 14 번째까지의 비트열은 무시한다. 만약, 0 번째 비트부터 7 번째 비트까지의 합이 '0'이거나 '0'과 비교한 값이 '0'이면 8 번째 비트부터 14 번째까지의 비트열을 가지고 Leading Zero의 비트를 구한다. 상기와 같이 1개의 비트열이 결정되면 상기와 같이 동일한 방법으로 2개로 나뉘게 되며, 상기 방법으로 연속적으로 수행하면 도 3과 같이 Leading Zero의 값을 가진다.
마찬가지 방식으로 도 7과 같은 경우에는 입력된 비트열 중에서 13개의 비트를 중심을 기준으로 2개의 비트열로 분할하고, 도 9와 같은 경우에는 입력된 비트열 중에서 10개의 비트를 중심을 기준으로 2개의 비트열로 분할하고, 도 11과 같은 경우에는 입력된 비트열 중에서 8개의 비트를 중심을 기준으로 2개의 비트열로 분할하는 방식으로 Leading Zero 값을 구할 수 있다.
마찬가지 방식으로 도 7과 같은 경우에는 입력된 비트열 중에서 13개의 비트를 중심을 기준으로 2개의 비트열로 분할하고, 도 9와 같은 경우에는 입력된 비트열 중에서 10개의 비트를 중심을 기준으로 2개의 비트열로 분할하고, 도 11과 같은 경우에는 입력된 비트열 중에서 8개의 비트를 중심을 기준으로 2개의 비트열로 분할하는 방식으로 Leading Zero 값을 구할 수 있다.
도 12는 본 발명의 전체 계수와 T1s를 구하기 위한 전체 블록도이다. 현재의 입력으로 들어오는 비트열은 Row Index 블록, Fix Index 블록 및 Column Index 블록으로 나누어진다. 또한, 도 5, 도 7, 도 9 및 도 11의 테이블을 내부 메모리인 Rom 테이블에 각각 할당하여 저장한다. 비트열의 결과값을 이용하여 Row Index와 Column Index를 구하여 Rom 테이블에 대입하면, 전체 계수와 T1s를 얻을 수 있다.
이상에서 설명한 내용을 통해 본 업에 종사하는 당업자라면 본 발명의 기술사상을 이탈하지 아니하는 범위 내에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용만으로 한정되는 것이 아니라 특허청구범위에 의하여 정해져야 한다.
이상에서와 같이 본 발명에 의한 빠른 CAVLC를 위한 H.264 디코딩 방법은 각각의 블록을 계산하는 시간을 최소화하고, 하드웨어 복잡성을 최소화하여 저주파수에서 최대의 성능을 발휘할 수 있다. 또한, 기존의 테이블을 변형하고, 입력 비트열을 의미있는 비트열로 나누어 H.264 디코더의 성능을 극대화함으로써 CAVLC의 계산시간을 최소화할 수 있다.
Claims (8)
- CAVLC를 위한 H.264 디코딩 방법에 있어서,1 번째 입력된 비트인 '0'으로부터 최초의 '1'인 Fix Index 비트 앞까지의 '0'의 개수를 구하여 Row Index의 값을 구하는 제1단계;상기 Row Index와 Fix Index를 제외한 비트열을 나타내는 Column Index의 값을 구하는 제2단계; 및상기 Row Index의 값과 Column Index의 값에 대응하는 전체 계수의 값과 T1s(Trailing_ones)의 값을 구하는 제3단계;를 포함하는 빠른 CAVLC를 위한 H.264 디코딩 방법.
- 청구항 1에 있어서,상기 제1단계는1 번째 비트가 '0'인지 아닌지 판단하는 A단계;상기 A단계에서 1 번째 비트가 '0'이 아니면 Row Index의 값을 0으로 정하고, 1 번째 비트가 '0'이면 2 번째 비트로 시프트(shift)하는 B단계;상기 B단계에서 2 번째 비트가 '0'인지 아닌지 판단하는 C단계;상기 C단계에서 2 번째 비트가 '0'이 아니면 Row Index의 값을 1로 정하고, 2 번째 비트가 '0'이면 3 번째 비트로 시프트하는 D단계; 및상기와 같은 방법으로 계속하여 n 번째 비트가 '0'이 아니면 Row Index의 값을 n-1로 정하고, n번째 비트가 '0'이면 n+1 번째 비트로 시프트하는 E단계;를 포함하는 빠른 CAVLC를 위한 H.264 디코딩 방법.
- 청구항 1에 있어서,상기 제1단계에서 입력 비트열을 최대 15개로 끊어 15개의 비트를 중심을 기준으로 2개의 비트열로 분할하여 '0'의 개수를 구하는 것을 특징으로 하는 빠른 CAVLC를 위한 H.264 디코딩 방법.
- 청구항 1에 있어서,상기 제1단계에서 입력 비트열을 최대 13개로 끊어 13개의 비트를 중심을 기준으로 2개의 비트열로 분할하여 '0'의 개수를 구하는 것을 특징으로 하는 빠른 CAVLC를 위한 H.264 디코딩 방법.
- 청구항 1에 있어서,상기 제1단계에서 입력 비트열을 최대 10개로 끊어 10개의 비트를 중심을 기준으로 2개의 비트열로 분할하여 '0'의 개수를 구하는 것을 특징으로 하는 빠른 CAVLC를 위한 H.264 디코딩 방법.
- 청구항 1에 있어서,상기 제1단계에서 입력 비트열을 최대 8개로 끊어 8개의 비트를 중심을 기준으로 2개의 비트열로 분할하여 '0'의 개수를 구하는 것을 특징으로 하는 빠른 CAVLC를 위한 H.264 디코딩 방법.
- 청구항 3, 청구항 4, 청구항 5 또는 청구항 6 중의 어느 하나의 항에 있어서,상기 '0'의 개수를 구하는 것은 2개의 비트열의 합을 수행하여 구하는 것을 특징으로 하는 빠른 CAVLC를 위한 H.264 디코딩 방법.
- 삭제
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20050072817A KR100776195B1 (ko) | 2005-08-09 | 2005-08-09 | 빠른 cavlc를 위한 h.264 디코딩 방법 |
US11/301,227 US7539346B2 (en) | 2005-08-09 | 2005-12-12 | H.264 decoding method for fast CAVLC |
JP2005365069A JP4153519B2 (ja) | 2005-08-09 | 2005-12-19 | 高速のcavlcのためのh.264デコーディング方法 |
CNB2006100028002A CN100539701C (zh) | 2005-08-09 | 2006-01-28 | 用于快速上下文自适应可变长编码的h.264解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20050072817A KR100776195B1 (ko) | 2005-08-09 | 2005-08-09 | 빠른 cavlc를 위한 h.264 디코딩 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070018292A KR20070018292A (ko) | 2007-02-14 |
KR100776195B1 true KR100776195B1 (ko) | 2007-11-16 |
Family
ID=37722377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20050072817A KR100776195B1 (ko) | 2005-08-09 | 2005-08-09 | 빠른 cavlc를 위한 h.264 디코딩 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7539346B2 (ko) |
JP (1) | JP4153519B2 (ko) |
KR (1) | KR100776195B1 (ko) |
CN (1) | CN100539701C (ko) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7903873B2 (en) * | 2007-09-13 | 2011-03-08 | Microsoft Corporation | Textual image coding |
US8041131B2 (en) * | 2007-10-02 | 2011-10-18 | Cisco Technology, Inc. | Variable length coding of coefficient clusters for image and video compression |
US8204327B2 (en) * | 2007-10-01 | 2012-06-19 | Cisco Technology, Inc. | Context adaptive hybrid variable length coding |
US8036471B2 (en) * | 2007-10-02 | 2011-10-11 | Cisco Technology, Inc. | Joint amplitude and position coding of coefficients for video compression |
KR100923948B1 (ko) | 2007-11-26 | 2009-10-29 | 한국전자통신연구원 | 어플리케이션 특정 명령어 프로세서에 기반한 h.264cavlc 디코딩 방법 |
KR100935856B1 (ko) * | 2007-11-29 | 2010-01-07 | 한국전자통신연구원 | H.264 cavlc 디코딩에서의 cavlc 테이블 탐색방법 |
CN101547353B (zh) * | 2008-03-28 | 2011-09-07 | 富士通株式会社 | 可变长码解码加速装置 |
JP5083579B2 (ja) * | 2008-06-23 | 2012-11-28 | 日本電気株式会社 | 復号処理装置、プロセッサ、電子機器、復号処理方法、及び復号処理プログラム |
CN101309423B (zh) * | 2008-06-26 | 2011-07-20 | 四川虹微技术有限公司 | 一种解码非零系数个数和拖尾系数个数的方法 |
KR100982666B1 (ko) * | 2008-09-10 | 2010-09-17 | 한국전자통신연구원 | 컨텍스트 기반 적응적 가변길이 코딩의 디코딩 장치 및 디코딩을 위한 테이블 탐색 방법 |
US8687702B2 (en) * | 2008-10-27 | 2014-04-01 | Advanced Micro Devices, Inc. | Remote transmission and display of video data using standard H.264-based video codecs |
KR101136858B1 (ko) * | 2010-03-16 | 2012-04-20 | (주)에어로매스터 | 동영상 압축 표준에서의 인코딩 장치 및 방법 |
CA2832086C (en) * | 2011-04-15 | 2018-10-23 | Blackberry Limited | Methods and devices for coding and decoding the position of the last significant coefficient |
EP2611064A1 (en) * | 2011-12-29 | 2013-07-03 | Thomson Licensing | Method for selectively scrambling bit-streams |
CN102572437B (zh) * | 2012-02-16 | 2014-08-06 | 复旦大学 | 一种快速解码CAVLC run_before码字的硬件实现方法 |
CN103384329A (zh) * | 2013-05-07 | 2013-11-06 | 广东工业大学 | 一种基于***表查找cavlc解码方法 |
EP3461131A4 (en) * | 2016-05-20 | 2019-03-27 | Panasonic Intellectual Property Corporation of America | ENCODING DEVICE, DECODING DEVICE, ENCODING METHOD, AND DECODING METHOD |
US10630974B2 (en) * | 2017-05-30 | 2020-04-21 | Google Llc | Coding of intra-prediction modes |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050061777A (ko) * | 2003-12-18 | 2005-06-23 | 엘지전자 주식회사 | Cavlc 복호 방법 |
US20050135691A1 (en) | 2003-12-19 | 2005-06-23 | Reese Robert J. | Content adaptive variable length coding (CAVLC) decoding |
KR20060108439A (ko) * | 2005-04-13 | 2006-10-18 | 한국전자통신연구원 | 에프에스엠기법에 의한 에이치.264/에이브이씨 동영상 압축 표준의 씨에이브이엘씨 디코더에서의 런비포 복원 방법과 장치 및 그를 기록한 기록매체 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5883823A (en) * | 1997-01-15 | 1999-03-16 | Sun Microsystems, Inc. | System and method of a fast inverse discrete cosine transform and video compression/decompression systems employing the same |
JP2005184232A (ja) * | 2003-12-17 | 2005-07-07 | Sony Corp | 符号化装置、プログラム、およびデータ処理方法 |
US7430238B2 (en) * | 2004-12-10 | 2008-09-30 | Micronas Usa, Inc. | Shared pipeline architecture for motion vector prediction and residual decoding |
-
2005
- 2005-08-09 KR KR20050072817A patent/KR100776195B1/ko not_active IP Right Cessation
- 2005-12-12 US US11/301,227 patent/US7539346B2/en not_active Expired - Fee Related
- 2005-12-19 JP JP2005365069A patent/JP4153519B2/ja not_active Expired - Fee Related
-
2006
- 2006-01-28 CN CNB2006100028002A patent/CN100539701C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050061777A (ko) * | 2003-12-18 | 2005-06-23 | 엘지전자 주식회사 | Cavlc 복호 방법 |
US20050135691A1 (en) | 2003-12-19 | 2005-06-23 | Reese Robert J. | Content adaptive variable length coding (CAVLC) decoding |
KR20060108439A (ko) * | 2005-04-13 | 2006-10-18 | 한국전자통신연구원 | 에프에스엠기법에 의한 에이치.264/에이브이씨 동영상 압축 표준의 씨에이브이엘씨 디코더에서의 런비포 복원 방법과 장치 및 그를 기록한 기록매체 |
Also Published As
Publication number | Publication date |
---|---|
US7539346B2 (en) | 2009-05-26 |
KR20070018292A (ko) | 2007-02-14 |
US20070036448A1 (en) | 2007-02-15 |
CN100539701C (zh) | 2009-09-09 |
CN1913638A (zh) | 2007-02-14 |
JP4153519B2 (ja) | 2008-09-24 |
JP2007049670A (ja) | 2007-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100776195B1 (ko) | 빠른 cavlc를 위한 h.264 디코딩 방법 | |
US6894628B2 (en) | Apparatus and methods for entropy-encoding or entropy-decoding using an initialization of context variables | |
US7769088B2 (en) | Context adaptive binary arithmetic code decoding engine | |
JP5676744B2 (ja) | エントロピー符号化 | |
US8089379B2 (en) | Variable length decoding apparatus and method | |
US20040167923A1 (en) | Method and apparatus for longest matching prefix determination in a communication network | |
Chrysafis et al. | SBHP-a low complexity wavelet coder | |
CN107465926A (zh) | 熵编码中的上下文初始化 | |
KR20060013021A (ko) | 내용 기반 적응적 이진 산술 복호화 방법 및 장치 | |
JPH0793586B2 (ja) | データ圧縮モデル選択方法及びシステム | |
KR20060131623A (ko) | 움직임 추정 회로 및 그 동작 방법 | |
Chen et al. | A high-throughput fully hardwired CABAC encoder for QFHD H. 264/AVC main profile video | |
US20060109909A1 (en) | Decision mechanism for partition types of macro block | |
Ramos et al. | High-throughput binary arithmetic encoder using multiple-bypass bins processing for HEVC CABAC | |
CN110191339B (zh) | 码率估计核心单元、码率估计装置及码率估计方法 | |
JP2003125406A (ja) | 有向性非周期グラフに基づくビデオ符号化のモード選択最適化方法およびシステム | |
KR20030071327A (ko) | 개선된 허프만 디코딩 방법 및 장치 | |
WO2007102518A1 (ja) | 算術符号化装置、算術符号化方法、算術符号化プログラム及びプログラムを格納したコンピュータで読み取り可能な記録媒体 | |
CN102355578A (zh) | 一种熵解码方法、装置 | |
Wang et al. | Context-based 2D-VLC for video coding | |
KR20050010918A (ko) | 가변길이 복호화를 위한 방법 및 시스템, 및 코드워드들의지역화를 위한 장치 | |
CN101093998A (zh) | 解码方法及装置 | |
JP4013680B2 (ja) | 復号装置および復号方法 | |
KR100311473B1 (ko) | 트렐리스 기반의 적응적 양자화기에서 최적경로 추적 방법 | |
Tran et al. | A Survey of High-Efficient CABAC Hardware Implementations in HEVC Standard |
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: 20121024 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20131031 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20141021 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20151102 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |