KR101130271B1 - A context-based adaptive variable length coding device for H.264/AVC - Google Patents

A context-based adaptive variable length coding device for H.264/AVC Download PDF

Info

Publication number
KR101130271B1
KR101130271B1 KR1020100071965A KR20100071965A KR101130271B1 KR 101130271 B1 KR101130271 B1 KR 101130271B1 KR 1020100071965 A KR1020100071965 A KR 1020100071965A KR 20100071965 A KR20100071965 A KR 20100071965A KR 101130271 B1 KR101130271 B1 KR 101130271B1
Authority
KR
South Korea
Prior art keywords
buffer
block
info
variable length
avc
Prior art date
Application number
KR1020100071965A
Other languages
Korean (ko)
Other versions
KR20120010431A (en
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 인하대학교 산학협력단
Priority to KR1020100071965A priority Critical patent/KR101130271B1/en
Publication of KR20120010431A publication Critical patent/KR20120010431A/en
Application granted granted Critical
Publication of KR101130271B1 publication Critical patent/KR101130271B1/en

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/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/42Methods 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
    • H04N19/423Methods 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 characterised by memory arrangements
    • H04N19/426Methods 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 characterised by memory arrangements using memory downsizing methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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
    • H04N19/436Methods 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 using parallelised computational arrangements

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

본 발명은 H.264/AVC, H.264/SVC 코덱이 사용되는 경우에 필수 불가결한 엔트로피 코딩(entropy coding) 요소인 내용기반 가변길이 부호화(Context-based Adaptive Variable Length Coding) 기기의 하드웨어 사이즈를 감소할 수 있는 H.264/AVC를 위한 내용 기반 가변 길이 부호화기에 관한 것으로, 본 발명에 따르면, 수정된 탐색표(Loop-up table)와 병렬처리 기법을 사용하고, 병렬처리 기법을 적용하기에 앞서, 첫 번째 버퍼에서 지그재그 스캔을 행하면서 잔여 데이터(residual data)를 순방향과 역방향으로 저장하고, 두 번째 버퍼에서 이전 버퍼에서 나온 값을 이용하여 변수들을 위한 값을 생성하는 이중 버퍼를 이용함으로써, 읽기, 쓰기가 동시에 가능하며 병렬처리가 가능하여 하드웨어 메모리 사이즈를 감소할 수 있으므로, 하드웨어 구현에 있어서 가격 및 성능적인 측면에서 보다 효율적이고 실시간 비디오 기기에 적용하기에 적합한 H.264/AVC를 위한 내용기반 가변길이 부호화기가 제공된다. The present invention relates to the hardware size of a context-based Adaptive Variable Length Coding device, which is an essential entropy coding element when H.264 / AVC and H.264 / SVC codecs are used. The present invention relates to a content-based variable length coder for H.264 / AVC that can be reduced. According to the present invention, a modified lookup table and a parallel processing technique are used. Earlier, by performing a zigzag scan on the first buffer, storing residual data in the forward and reverse directions, and using a double buffer to generate values for variables using the values from the previous buffer in the second buffer, It can read and write at the same time and can be parallelized to reduce hardware memory size. A content-based variable length encoder for H.264 / AVC is provided that is suitable for efficient and real-time video equipment.

Description

H.264/AVC를 위한 내용기반 가변길이 부호화기{A context-based adaptive variable length coding device for H.264/AVC}A context-based adaptive variable length coding device for H.264 / AVC}

본 발명은 동영상 압축기술에 관한 것으로, 더 상세하게는, H.264/AVC, H.264/SVC 등, H.264 코덱이 사용되는 경우에 필수 불가결한 엔트로피 코딩(entropy coding) 요소인 내용기반 가변길이 부호화(Context-based Adaptive Variable Length Coding) 기기의 하드웨어 사이즈를 감소할 수 있는 H.264/AVC를 위한 내용 기반 가변 길이 부호화기에 관한 것이다. The present invention relates to a video compression technology, and more particularly, content-based which is an essential entropy coding element when H.264 codec such as H.264 / AVC, H.264 / SVC is used. Context-based Adaptive Variable Length Coding The present invention relates to a content-based variable length encoder for H.264 / AVC that can reduce the hardware size of a device.

최근, 비디오 정보를 사용하는 기기의 수는 계속 증가되고 있으며, 이와 같은 멀티미디어 기기는 고화질, 저비트율이 요구된다. In recent years, the number of devices using video information continues to increase, and such multimedia devices require high quality and low bit rate.

이러한 요구를 만족시키기 위하여, 비디오 부호화 기준은 고압축율과 최적화된 부호화 알고리즘이 필요하다. In order to satisfy this requirement, the video coding standard requires a high compression ratio and an optimized coding algorithm.

그러한 알고리즘들 중, 내용기반 가변길이 부호화(Context-based Adaptive Variable Length Coding, 이하, 간단히 'CAVLC'라 한다.)는, H.264/AVC, H.264/SVC 등, H.264 코덱이 사용되는 경우에 필수 불가결한 엔트로피 코딩(entropy coding) 요소이며, 이는, 예를 들면, IP TV에서의 동영상 압축기술인 MPEG4-Part10(H.264/AVC)에 사용된다. Among such algorithms, context-based Adaptive Variable Length Coding (hereinafter simply referred to as 'CAVLC') is used by H.264 codecs such as H.264 / AVC, H.264 / SVC, etc. Is an essential entropy coding element, which is used, for example, in MPEG4-Part10 (H.264 / AVC), which is a video compression technique in IP TV.

여기서, H.264는, 객체 기반 고품질 고압축 미디어 포맷의 오픈 소스로서, 기존의 MPEG2 방송 시스템과의 호환성이 우수하며, 국제표준으로서 국가 및 기업 등으로부터 호평을 받고 있다. Here, H.264 is an open source of object-based high-quality high-compression media format, has excellent compatibility with the existing MPEG2 broadcasting system, and has been well received by countries and companies as an international standard.

또한, 현재, H.264/AVC는 국내외 위성 및 지상파 DMB(Digital Multimedia Broadcasting)와 각 IP TV 사이트에서 사용중에 있다. In addition, H.264 / AVC is currently being used by domestic and international satellite and terrestrial digital multimedia broadcasting (DMB) and respective IP TV sites.

뿐만 아니라, PMP용이나 인터넷 업로드용 동영상 등에서도 활용도가 높은 동영상 압축기법으로서, 각종 휴대용 정보단말이나 DVR, 네트워크 카메라, 감시카메라, 네비게이션 등에 널리 사용되고 있다. In addition, as a video compressor method having high utilization in video for PMP and Internet upload, etc., it is widely used in various portable information terminals, DVRs, network cameras, surveillance cameras, navigation, and the like.

따라서 H.264/AVC 및 H.264/SVC에서 사용되는 CAVLC는, 상기한 바와 같이 각 적용분야에 있어서 영상 코덱의 중요한 부분이 되며, 그 활용범위가 매우 광대하다. Therefore, CAVLC used in H.264 / AVC and H.264 / SVC becomes an important part of the image codec in each application field as described above, and its use range is very extensive.

그러므로, H.264/AVC 및 H.264/SVC의 하드웨어 구현에 있어서, 그 가격적인 측면이나 성능적인 측면에서 모두 효율적인 CAVLC 인코더(encoder)의 영향력과 필요성이 점점 증대되고 있다. Therefore, in hardware implementation of H.264 / AVC and H.264 / SVC, the influence and necessity of an efficient CAVLC encoder both in terms of price and performance are increasing.

이러한 요구에 따라, 종래에는, 예를 들면, 공개특허 제10-2010-0059037호(2010.06.04. 공개)에 기재된 바와 같은 "H.264 인코더의 통합 변환기"가 제안되었다. In response to this demand, conventionally, an "integrated converter of an H.264 encoder" has been proposed, as described, for example, in Publication No. 10-2010-0059037 (published on June 4, 2010).

상기한 공개특허 제10-2010-0059037호의 H.264 인코더의 통합 변환기는, 차분블록이나 DC블록 처리를 위해 1-D 정수변환을 반복 수행하여 2-D 정수변환을 수행하는 정방향 정수변환부와, DC블록 처리를 위해 정방향 정수변환부에서 DC 출력값을 저장하는 정방향 하다마드 버퍼와, 정방향 정수변환부에서 입력되는 값에 대하여 스케일링 팩터값을 그룹으로 나누어 테이블화하여 덧셈기, 뺄셈기, 시프터기를 통해 양자화하는 양자화부와, 양자화부로부터의 입력값에 대해 양자화 이전 상태로 복원하는 역양자화부와, 역양자화부의 출력값에 대해 1-D 정수변환을 반복 수행하여 2-D 정수변환을 수행하는 역방향 정수변환부 및 역방향 하다마드 변환을 수행한 후 역양자화부를 통해 역양자화된 결과를 저장하는 역방향 하다마드 버퍼를 포함하는 것을 특징으로 하는 것이다. The integrated converter of the H.264 encoder described in Korean Patent Application Publication No. 10-2010-0059037 includes a forward integer conversion unit which performs 2-D integer conversion by repeatedly performing 1-D integer conversion for differential block or DC block processing. For the DC block processing, the forward Hadamard buffer that stores the DC output value in the forward integer converter and the scaling factor values for the value input from the forward integer converter are grouped into groups to add, subtract, and shifter. Inverse integer that performs 2-D integer conversion by repeatedly performing 1-D integer conversion on the quantization unit for quantization, the inverse quantization unit for restoring the input value from the quantization unit, and the output value of the inverse quantization unit. And a reverse Hadamard buffer for storing the dequantized result through the inverse quantization unit after performing the transform unit and the reverse Hadamard transform. to be.

더 상세하게는, 종래의 H.264 인코더는 전자회로에 의해 각각의 정수 변환기를 별도로 설계하였으나, 상기한 공개특허 제10-2010-0059037호의 H.264 인코더의 통합 변환기는, H.264 인코더에서 곱셈기를 사용하지 않고 시프터기와 덧셈기와 뺄셈기를 이용하여 양자화기 및 역양자화기를 구현하고, 하나의 1-D 정수변환기를 재사용하여 정방향 정수변환과 정방향 하다마드 변환을 모두 수행할 수 있도록 하며 데이터의 흐름제어를 통하여 정방향 정수변환, 양자화, 역양자화, 역방향 정수변환, 하다마드 변환을 처리함으로써 하드웨어 비용을 최소화할 수 있고, 성능을 최대한 높일 수 있도록 하는 것이다. More specifically, the conventional H.264 encoder is designed separately for each integer converter by an electronic circuit, but the integrated converter of the H.264 encoder of the above-described Patent Publication No. 10-2010-0059037, in the H.264 encoder Implement a quantizer and inverse quantizer using shifters, adders and subtractors without using a multiplier, and reuse a single 1-D integer converter to perform both forward and forward Hadamard transformations. By controlling forward integer conversion, quantization, inverse quantization, inverse integer conversion, and Hadamard transform, hardware cost can be minimized and performance can be maximized.

즉, 상기한 공개특허 제10-2010-0059037호의 H.264 인코더의 통합 변환기에 따르면, 정방향 정수변환, 양자화, 역양자화, 역방향 정수변환, 하다마드 변환을 하나의 변환기에서 처리함으로써 하드웨어 비용을 최소화할 수 있으나, 상기한 공개특허 제10-2010-0059037호의 H.264 인코더의 통합 변환기는 H.264 인코딩 처리의 처리단계 자체를 감소하는 알고리즘을 제공하는 것은 아니었다. That is, according to the integrated converter of the H.264 encoder described in the above-mentioned Patent Publication No. 10-2010-0059037, the hardware cost is minimized by processing the forward integer conversion, quantization, inverse quantization, inverse integer conversion, Hadamard transformation in one converter However, the integrated converter of the above-described H.264 encoder of the Patent Publication No. 10-2010-0059037 did not provide an algorithm for reducing the processing step itself of the H.264 encoding process.

따라서 상기한 바와 같이, 인코딩 처리에 있어서 그 처리단계를 축소하여 보다 효율적인 알고리즘을 가지는 CAVLC 인코더를 제공하는 것이 바람직하나, 아직까지 그러한 요구를 모두 만족시키는 CAVLC 인코더 및 그러한 알고리즘은 제공되지 못하고 있는 실정이다. Therefore, as described above, it is desirable to provide a CAVLC encoder having a more efficient algorithm by reducing the processing steps in the encoding process, but a CAVLC encoder and an algorithm that satisfy all such requirements have not been provided. .

본 발명은, 상기한 바와 같은 종래기술의 문제점을 해결하고자 하는 것으로, 따라서 본 발명의 목적은, 종래, 룩업(lookup) 테이블을 이용한 방식의 CAVLC 인코딩 방식에서 공통성을 가지는 부분을 산술 연산으로 치환함으로써, 처리를 간단히 하여 하드웨어 메모리 사이즈를 감소할 수 있는 H.264/AVC를 위한 내용기반 가변길이 부호화기를 제공하고자 하는 것이다. The present invention seeks to solve the problems of the prior art as described above. Accordingly, an object of the present invention is to replace a part having commonality in a CAVLC encoding method using a lookup table. In order to reduce the hardware memory size by simplifying the processing, a content-based variable length coder for H.264 / AVC is provided.

또한, 본 발명의 다른 목적은, 상기한 바와 같이 메모리 사이즈를 감소함으로써 전체 하드웨어 사이즈를 감소하고, 그것에 의해 하드웨어의 생산비용을 절감할 수 있도록 함으로써, H.264/AVC 및 H.264/SVC의 하드웨어 구현에 있어서 그 가격적인 측면이나 성능적인 측면에서 보다 효율적이고 고성능인 H.264/AVC를 위한 내용기반 가변길이 부호화기를 제공하고자 하는 것이다. Further, another object of the present invention is to reduce the overall hardware size by reducing the memory size as described above, thereby reducing the production cost of the hardware, thereby reducing the cost of H.264 / AVC and H.264 / SVC. It is to provide a content-based variable length coder for H.264 / AVC which is more efficient and high performance in terms of price and performance in hardware implementation.

상기한 바와 같은 목적을 달성하기 위해, 본 발명에 따르면, 수정된 가변길이 코딩 테이블(Variable Length Coding tables)과 병렬처리 기법을 이용하여 부호화 처리를 행하는 H.264/AVC를 위한 내용기반 가변길이 부호화기(context-based adaptive variable length coding device)에 있어서, 상기 부호화기의 성능을 향상시키기 위해 읽기와 쓰기가 동시에 이루어지도록, 입력값이 쓰여지는 상위 버퍼(upper buffer) 및 상기 입력값이 쓰여질 동안 다음 단에서 읽혀질 값이 쓰여지는 하위 버퍼(under buffer)를 각각 포함하는 제 1 이중 버퍼(dual buffer) 및 제 2 이중 버퍼와, coeff_token 블록, TrailingOnes_sign 블록, level 블록, total_zeros 블록 및 run_before 블록을 포함하여 부호화 처리를 수행하는 연산처리부와, 상기 연산처리부에 의해 처리된 결과값을 저장하는 비트스트림 버퍼(bit stream buffer)와, 상기 부호화기의 전체적인 동작을 제어하는 제어신호 및 인에이블 신호를 생성하는 제어부(control unit)를 포함하여 구성된 것을 특징으로 하는 내용기반 가변길이 부호화기가 제공된다. In order to achieve the above object, according to the present invention, a content-based variable length coder for H.264 / AVC performing the encoding process using a modified variable length coding table and a parallel processing technique In a context-based adaptive variable length coding device, an upper buffer to which input values are written and a next buffer while the input values are written so that reading and writing are performed simultaneously to improve the performance of the encoder. Encoding processing includes a first double buffer and a second double buffer each including an under buffer into which a value to be read is written, and a coeff_token block, a TrailingOnes_sign block, a level block, a total_zeros block, and a run_before block. An arithmetic operation unit, a bit stream buffer storing a result value processed by the arithmetic unit, and The call information is provided based on the variable length encoder, characterized in that configured by a control unit (control unit) for generating a control signal and an enable signal for controlling the overall operation of the firearm.

여기서, 상기 제 1 이중버퍼는, 잔여 데이터(Residual data)를 입력으로 받아 지그재그 스캐닝(zigzag scanning)을 행하여 그 상위 및 하위 버퍼에 각각 순방향과 역방향으로 저장하고, 상기 제 2 이중버퍼는, 상기 순방향으로 저장한 데이터를 사용하여, 상기 coeff_token 블록, 상기 TrailingOnes_sign 블록, 상기 level 블록, 상기 total_zeros 블록 및 상기 제어부의 변수를 각각 생성하는 PRM_G(parameter generator) 및 상기 역방향으로 저장한 데이터를 사용하여, 상기 run_before 블록에서만 사용하는 변수를 생성하는 RB_G(run_before generator)를 그 상위 및 하위 버퍼에 각각 포함하여 변수 생성기 역할을 수행하도록 구성되며, 그것에 의해, 다음의 블록들이 병렬처리가 가능하도록 구성된 것을 특징으로 한다. Here, the first double buffer receives residual data as input, performs zigzag scanning, and stores the data in the forward and reverse directions in the upper and lower buffers, respectively, and the second double buffer is the forward direction. The data stored in the coeff_token block, the TrailingOnes_sign block, the level block, the total_zeros block, and the PRM_G (parameter generator) generating the variables of the controller, and the data stored in the reverse direction, are used. It is configured to include a run_before generator (RB_G), which generates a variable used only in a block, in its upper and lower buffers, respectively, to serve as a variable generator, whereby the following blocks are configured to enable parallel processing.

또한, 상기 수정된 가변길이 코딩 테이블은, 동일한 특성을 가지는 부분은 산술연산을 이용함으로써 하드웨어 사용량이 기존의 참조표(look up table)에 비해 줄어들도록 기존의 참조표를 수정한 것으로, 그 코드워드(codeword) 값은, 종래의 익스포넨셜 골롬 엔트로피 코딩(Exponential Golomb entropy coding)의 코드워드 형식인 [M zeros][1][INFO]를, FP1은 1이 처음 나오는 위치를 뜻하는 동시에 FP1의 길이를 표현하는 것이고, INFO는 FP1 이후의 정보 값이며, INFO_length는 INFO의 길이를 나타내는 것으로 할 때, [FP1][INFO][INFO_length]로 바꾸어 구성한 것을 특징으로 한다. In the modified variable length coding table, a portion having the same characteristics is modified by using an arithmetic operation so that the hardware usage is reduced as compared with a conventional look up table. The value of (codeword) is [M zeros] [1] [INFO], which is a codeword format of conventional Exponential Golomb entropy coding, and FP1 means the position where 1 first appears, The length is expressed, INFO is an information value after FP1, and INFO_length is changed to [FP1] [INFO] [INFO_length].

또, 상기 제 2 이중버퍼에 의해 생성된 값은, 병렬처리가 연속적으로 이루어질 수 있도록 16번 마다 버퍼의 위치를 달리하여 저장되도록 구성된 것을 특징으로 한다. In addition, the value generated by the second double buffer, characterized in that configured to be stored in different positions of the buffer every 16 times so that parallel processing can be performed continuously.

아울러, 상기 비트스트림 버퍼는 FIFO(first in first out)로 구성된 것을 특징으로 한다. In addition, the bitstream buffer is characterized in that configured as FIFO (first in first out).

상기한 바와 같이, 본 발명에 따르면, 종래, 룩업 테이블을 이용한 방식의 CAVLC 인코딩 방식에서 공통성을 가지는 부분을 산술 연산으로 치환함으로써, 처리를 간단히 하여 하드웨어 메모리 사이즈를 감소할 수 있는 H.264/AVC를 위한 내용기반 가변길이 부호화기를 제공할 수 있다. As described above, according to the present invention, H.264 / AVC, which can simplify the processing and reduce the hardware memory size, by replacing a part having commonality in the CAVLC encoding method using a lookup table with arithmetic operations. It can provide a content-based variable length coder for.

또한, 본 발명에 따르면, 상기한 바와 같이 메모리 사이즈를 감소함으로써 전체 하드웨어 사이즈를 감소하고, 그것에 의해 하드웨어의 생산비용을 저감할 수 있도록 함으로써, H.264/AVC 및 H.264/SVC의 하드웨어 구현에 있어서 그 가격적인 측면이나 성능적인 측면에서 보다 효율적이고 고성능인 H.264/AVC를 위한 내용기반 가변길이 부호화기를 제공할 수 있다. Furthermore, according to the present invention, hardware implementation of H.264 / AVC and H.264 / SVC can be achieved by reducing the total hardware size by reducing the memory size as described above, thereby reducing the production cost of the hardware. In terms of cost and performance, a content-based variable length coder for H.264 / AVC can be provided.

도 1은 본 발명에 따른 H.264/AVC를 위한 내용기반 가변길이 부호화기의 상세한 구성을 개략적으로 나타내는 도면이다. 1 is a diagram schematically illustrating a detailed configuration of a content-based variable length encoder for H.264 / AVC according to the present invention.

이하, 첨부된 도면을 참조하여, 본 발명에 따른 H.264/AVC를 위한 내용기반 가변길이 부호화기의 상세한 내용에 대하여 설명한다. Hereinafter, with reference to the accompanying drawings, the details of the content-based variable-length encoder for H.264 / AVC according to the present invention will be described.

여기서, 이하에 설명하는 내용은 본 발명을 실시하기 위한 하나의 실시예일 뿐이며, 본 발명은 이하에 설명하는 실시예의 내용으로만 한정되는 것은 아니라는 사실에 유념해야 한다. Hereinafter, it is to be noted that the following description is only an embodiment for carrying out the present invention, and the present invention is not limited to the contents of the embodiments described below.

먼저, 도 1을 참조하여, 본 발명에 따른 H.264/AVC를 위한 내용기반 가변길이 부호화기(10)의 상세한 구성내용에 대하여 설명한다. First, with reference to FIG. 1, the detailed configuration of the content-based variable length encoder 10 for H.264 / AVC according to the present invention will be described.

도 1은 본 발명에 따른 H.264/AVC를 위한 내용기반 가변길이 부호화기(10)의 상세한 구성을 개략적으로 나타내고 있다. 1 schematically illustrates a detailed configuration of a content-based variable length encoder 10 for H.264 / AVC according to the present invention.

즉, 도 1에 나타낸 바와 같이, 본 발명에 따른 내용기반 가변길이 부호화기(10)는, 수정된 탐색표(Loop-up table)와 병렬처리 기법을 사용하는 것이며, 병렬처리 기법을 적용하기에 앞서, 이중 버퍼가 두 개 사용되는데, 첫 번째 이중 버퍼는 지그재그 스캔을 행하면서 잔여 데이터(residual data)를 순방향과 역방향으로 저장하고, 다음 두 번째 이중 버퍼에서 이전 버퍼에서 나온 값을 이용하여 변수들을 위한 값을 생성한다. That is, as shown in FIG. 1, the content-based variable length encoder 10 according to the present invention uses a modified loop-up table and a parallel processing technique, and prior to applying the parallel processing technique. Two double buffers are used. The first double buffer performs the zigzag scan and stores the residual data in the forward and reverse directions, and then the second double buffer uses the values from the previous buffer for variables. Create a value.

이때, 생성된 값은 병렬처리가 연속적으로 이루어질 수 있도록 16번 마다 버퍼의 위치를 달리하여 저장된다. At this time, the generated value is stored by changing the position of the buffer every 16 times so that parallel processing can be performed continuously.

여기서, 첫 번째 이중버퍼는 단순한 이중 버퍼이지만, 두 번째 이중 버퍼는 다음 단계에서 이용할 변수 값들과 제어신호를 발생시켜 다음 블록들이 병렬처리될 수 있도록 만들어 주는 생성기의 기능과 버퍼의 기능을 함께 가지는 것이다. Here, the first double buffer is a simple double buffer, but the second double buffer combines the function of the generator with the function of the buffer to generate the variable values and control signals to be used in the next step so that the next blocks can be parallelized. .

이와 같이 두 개의 이중 버퍼를 이용함으로써, 내용기반 가변길이 부호화기는 읽기, 쓰기가 동시에 가능하며, 병렬처리가 가능해진다. By using two double buffers as described above, the content-based variable-length coder can read and write simultaneously and parallel processing.

또한, 전체 모듈은 메그나칩(megnachip) 0.18㎛ CMOS 셀 라이브러리(Cell Library)를 이용하여 합성 및 검증하였으며, 이를 ASIC으로 구현할 경우, 부호화기는 140Mhz로 동작되며, 약 1만 2천개의 게이트 수를 가지며, 실시간 비디오 기기에 적용하기에 적합하다. In addition, the entire module was synthesized and verified using a Megnachip 0.18㎛ CMOS Cell Library. When implemented as an ASIC, the encoder operates at 140 MHz and has about 12,000 gate counts. It is suitable for application in real time video equipment.

아울러, 도 1 및 이하의 설명에서, 각각의 용어에 대한 설명은 다음과 같다. In addition, in FIG. 1 and the following description, description of each term is as follows.

* coeff_token : 0이 아닌 계수들을 TotalCoeff라 하고, 마지막 TotalCoeff 계수로부터 1 또는 -1인 수를 TrailingOnes라 하며, TrailingOnes는 최대 3개까지 가능하다. * coeff_token: Non-zero coefficients are called TotalCoeff, a number that is 1 or -1 from the last TotalCoeff coefficient is called TrailingOnes, and up to three TrailingOnes are possible.

* trailing_ones_sign : TrailingOnes 값을 부호로 인식하는 것으로 1은 0으로 부호화하고, -1은 1로 부호화한다. trailing_ones_sign Recognizes a TrailingOnes value as a sign, where 1 is encoded as 0 and -1 is encoded as 1.

* level : TotalCoeff 중 TrilingOnes를 제외한 계수들을 뜻한다. * level: TotalCoeff means coefficients except TrilingOnes.

* total_zeros : 마지막 0이 아닌 계수들 전에 있는 0의 계수들의 총 개수를 뜻한다. total_zeros: The total number of zero coefficients before the last nonzero coefficients.

* run_before : 각 계수 사이의 0의 개수들을 뜻한다. run_before: The number of zeros between each coefficient.

즉, 더 상세하게는, 본 발명에 따른 CAVLC 부호화기(10)는, 2개의 이중 버퍼(Dual buffer), 즉, zigzag(11, 12)와 PRM_G 및 RB_G(13, 14)와, 제어부(Control unit)(15)와, coeff_token 블록(block)(16), TrailingOnes_sign 블록(17), level 블록(18), total_zeros 블록(19), run_before 블록(20)으로 구성되는 연산처리부 및 bit_stream 블록(21)으로 구성되어 있다. That is, more specifically, the CAVLC encoder 10 according to the present invention includes two dual buffers, that is, zigzag (11, 12), PRM_G and RB_G (13, 14), and a control unit (Control unit). (15), an arithmetic processing unit consisting of a coeff_token block (16), a TrailingOnes_sign block (17), a level block (18), a total_zeros block (19), and a run_before block (20) and a bit_stream block (21). Consists of.

여기서, 2개의 이중 버퍼 중 첫 번째 이중 버퍼(11, 12)는, 잔여 데이터(Residual data)를 입력으로 받아 지그재그 스캐닝(zigzag scanning)을 순방향과 역방향으로 저장하게 된다. Here, the first double buffers 11 and 12 of the two double buffers receive residual data as input and store zigzag scanning in the forward and reverse directions.

순방향으로 저장한 것은 PRM_G(parameter generator)가 사용하게 되고, 역방향으로 저장한 것은 RB_G(run_before generator)가 사용하게 된다. Stored in the forward direction is used by the parameter generator (PRM_G), and stored in the reverse direction is used by the RB_G (run_before generator).

여기서, 도 1에 나타낸 바와 같은 이중 버퍼와 같은 구조를 사용하는 이유는, 읽기와 쓰기가 동시에 이루어지게 하기 위함이다. The reason for using a structure such as a double buffer as shown in FIG. 1 is to allow reading and writing to be performed simultaneously.

즉, 16개의 입력값이 상위 버퍼(upper buffer)에 쓰여질 동안, 하위 버퍼(under buffer)는 다음 단에서 읽혀짐이 반복되어 부호화기 성능을 향상시킨다. That is, while 16 input values are written to the upper buffer, the under buffer is repeatedly read in the next stage, thereby improving the encoder performance.

두 번째 이중 버퍼는, 변수 생성기 역할을 수행한다. The second double buffer acts as a variable generator.

즉, PRM_G는 coeff_token 블록(16), TrailingOnes_sign 블록(17), level 블록(18), total_zeros 블록(19) 그리고 제어부(15)의 변수를 생성하고, RB_G는 run_before 블록(20)에서만 사용하는 변수를 생성한다. That is, PRM_G generates variables of coeff_token block 16, TrailingOnes_sign block 17, level block 18, total_zeros block 19 and control unit 15, and RB_G uses variables used only in run_before block 20. Create

PRM_G과 RB_G에서 생성된 변수와 제어신호는 다음의 블록들을 병렬처리할 수 있도록 한다. Variables and control signals generated in PRM_G and RB_G allow the following blocks to be processed in parallel.

제어부(15)에서 나온 제어신호는 병렬처리되는 블록들의 인에이블(enable) 신호를 제공하므로 각 블록의 작동을 제어하게 되며, PRM_G과 RB_G에서 생성된 변수들은 병렬처리되는 블록들로 제공되어 연산처리부의 각 블록들이 연산을 행할 수 있도록 한다. The control signal from the controller 15 controls the operation of each block because it provides an enable signal of blocks that are processed in parallel, and the variables generated in PRM_G and RB_G are provided as blocks that are processed in parallel. Allow each block in to perform the operation.

연산처리부에서 병렬처리된 결과값은, bit_stream 버퍼(21)로 저장되며, 이는 FIFO(First Insert First Output)로 구성되어 있다. The resultant values processed in parallel by the arithmetic processing unit are stored in the bit_stream buffer 21, which is composed of FIFOs (First Insert First Output).

또한, 상기한 내용은, 예를 들면, H.264에 대한 표준을 기술하고 있는 "ITU-T H.264 Corrigendum 1(2009.01), SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS Infrastructure of audiovisual services - Coding of moving video"와 같은 표준화 문서에 기재된 내용을 참조하여 충분히 이해될 수 있다(p.214~p.223, 9.1.Parsing process for Exp-Golomb codes ~ 9.2. CAVLC parsing process for transform coefficient levels 참조). In addition, the above contents are described, for example, in "ITU-T H.264 Corrigendum 1 (2009.01), which describes the standard for H.264, SERIES H: AUDIOVISUAL AND MULTIMEDIA SYSTEMS Infrastructure of audiovisual services-Coding of moving video. "Such as It can be fully understood by referring to the contents of the standardization document (see p. 214 to p. 223, 9.1 Parsing process for Exp-Golomb codes ~ 9.2, CAVLC parsing process for transform coefficient levels).

다음으로, 본 발명에 사용되는 수정된 가변길이 코딩 테이블(Modified Variable Length Coding tables) 에 대하여 설명한다. Next, Modified Variable Length Coding tables used in the present invention will be described.

수정된 가변길이 코딩 테이블은 기존의 참조표(look up table)를 수정한 것으로, 동일한 특성을 가지는 부분은 산술연산을 이용함으로써, 하드웨어 사용량이 기존 참조표에 비해 줄어들게 된다. The modified variable length coding table is a modification of an existing look up table, and the portion having the same characteristics uses arithmetic operations, so that the hardware usage is reduced compared to the existing look up table.

특히, 메모리(ROM)를 사용하는 경우와 대비하면, 하드웨어 사용량이 20% 이상 줄어드는 것을 확인할 수 있으며, 그 이유는, 확률적으로 빈번히 사용되는 부분이 산술연산으로 대체되는 경우가 많기 때문이다. In particular, compared to the case of using a memory (ROM), it can be seen that the hardware usage is reduced by 20% or more, because the frequently used parts are often replaced by arithmetic operations.

이와 같이 수정된 가변길이 코딩 테이블을 구성하기 위해서는, 테이블의 값인 코드워드(codeword) 값은 Exponential Golomb entropy coding의 코드워드 구성과 같이 변형이 필요하다. In order to configure the modified variable length coding table as described above, the codeword value, which is a value of the table, needs to be modified as in the codeword configuration of Exponential Golomb entropy coding.

Exponential Golomb의 코드워드 형식은, 예를 들면, [M zeros][1][INFO]와 같이 구성된다. The codeword format of the Exponential Golomb is configured as, for example, [M zeros] [1] [INFO].

수정된 가변길이 코딩 테이블에서는, Exponential Golomb의 코드워드 형식을 비슷한 형식인 [FP1][INFO][INFO_length]로 구성한다. In the modified variable length coding table, the codeword format of the Exponential Golomb is configured with a similar format [FP1] [INFO] [INFO_length].

FP1은 1이 처음 나오는 위치를 뜻하며, 동시에 FP1의 길이를 표현한다. FP1 is the position where 1 first appears, and at the same time expresses the length of FP1.

INFO는 FP1 이후의 정보 값이며, INFO_length는 INFO의 길이를 표현한다. INFO is an information value after FP1, and INFO_length represents the length of INFO.

간단한 예로, 아래의 [표 1]에 코드워드 형식을 나타내었다.
As a simple example, the codeword format is shown in Table 1 below.

[표 1] [Table 1]

Figure 112010048168248-pat00001

Figure 112010048168248-pat00001

표 1에 나타낸 바와 같은 코드워드 형식을 이용하여, CAVLC에서 이용될 coeff_token 테이블 및 run_before 테이블의 두 개의 참조표에 적용하여 이용하게 된다. By using the codeword format as shown in Table 1, it is applied to two reference tables of coeff_token table and run_before table to be used in CAVLC.

다음에 나타내는 것은 nc값에 따른 coeff_token 테이블로 3가지 경우가 있으며, 테이블과 의사 코드(pseudo code)를 나타낸다.
The following are three cases of the coeff_token table according to the nc value, and the table and pseudo code are shown.

[표 2] TABLE 2

Figure 112010048168248-pat00002

Figure 112010048168248-pat00002

[표 3] [Table 3]

Figure 112010048168248-pat00003

Figure 112010048168248-pat00003

[표 4] [Table 4]

Figure 112010048168248-pat00004

Figure 112010048168248-pat00004

[표 5] TABLE 5

Figure 112010048168248-pat00005

Figure 112010048168248-pat00005

[표 6] TABLE 6

Figure 112010048168248-pat00006

Figure 112010048168248-pat00006

[표 7] TABLE 7

Figure 112010048168248-pat00007

Figure 112010048168248-pat00007

이어서 이하의 [표 8] 은 수정된 run_before 테이블이며, [표 9]는 이에 따른 의사 코드(pseudo code)를 나타낸다.
Next, Table 8 below is a modified run_before table, and Table 9 shows pseudo codes accordingly.

[표 8] [Table 8]

Figure 112010048168248-pat00008

Figure 112010048168248-pat00008

[표 9] TABLE 9

Figure 112010048168248-pat00009

Figure 112010048168248-pat00009

다음으로, 본 발명의 발명자들은, 상기한 바와 같이 하여 구성된 본 발명에 따른 H.264/AVC를 위한 내용기반 가변길이 부호화기(10)의 성능을 테스트하여 그 결과를 이하의 [표 10]에 나타내었다.
Next, the inventors of the present invention test the performance of the content-based variable length coder 10 for H.264 / AVC according to the present invention configured as described above, and the results are shown in the following [Table 10]. It was.

[표 10] TABLE 10

Figure 112010048168248-pat00010

Figure 112010048168248-pat00010

여기서, 하드웨어 구현은 Verilog-HDL 언어를 사용하였으며, 메그나칩(megnachip) 0.18㎛ CMOS 공정을 사용하여 검증을 행하였다. Here, the hardware implementation was using Verilog-HDL language, and verified using a Megnachip 0.18㎛ CMOS process.

총 게이트 수(Total gate count)는 2입력 낸드 게이트(2-input nand gate)의 수를 의미하며, 크리티컬 패스는 6.64ns이고, 이는 실시간 비디오에 사용이 가능하다. Total gate count refers to the number of 2-input nand gates, with a critical pass of 6.64ns, which can be used for real-time video.

또, 입력에서 사용되는 첫 번째 듀얼 버퍼가 필요하지 않을 경우에는 총 게이트 수(Total gate count)가 6.5K로 하드웨어 사이즈가 결정되게 된다. In addition, if the first dual buffer used at the input is not needed, the total gate count is 6.5K and the hardware size is determined.

또한, 보드 테스트로는 자일링스(Xilinx)사의 베텍스-4(Vertex-4) LX200 -10ff1513 FPGA를 사용하였고, [표 11]에 나타낸 바와 같이, 총 89,088개(Avaliable)의 슬라이스 중 1,003개(Used)를 사용하여, 전체 슬라이스 중 1%(Utilization)를 차지하였다.
In addition, Xilinx Vertex-4 LX200-10ff1513 FPGA was used as a board test. As shown in Table 11, 1,003 of 89,088 slices (Avaliable) were used. ) Accounted for 1% (Utilization) of the total slices.

[표 11] TABLE 11

Figure 112010048168248-pat00011

Figure 112010048168248-pat00011

또한, 보드 상에서의 클럭 스피드(clock speed)와 레이텐시(latency)는, 그 최소 주기(Minimum period)가 9.398ns이고, 이때의 최대 주파수(Maximum Frequency는 106.401MHz 이다. In addition, the clock speed and latency on the board have a minimum period of 9.398ns and a maximum frequency of 106.401MHz.

따라서 상기한 바와 같이, 본 발명에 따르면, 하드웨어 구현에 있어 가격적 측면과 성능적 측면에서 보다 효율적인 H.264/AVC를 위한 내용기반 가변길이 부호화기를 제공할 수 있다. Accordingly, as described above, according to the present invention, it is possible to provide a content-based variable length encoder for H.264 / AVC which is more efficient in terms of price and performance in hardware implementation.

또한, 본 발명에 따르면, 국내 외 위성 및 지상파 DMB와 IP TV 사이트뿐만 아니라, PMP나 인터넷 등에서도 활용도가 높은 동영상 압축기법으로서 휴대용 정보단말이나 DVR, 네트워크 카메라, 감시 카메라, 네비게이션 등에 널리 활용되고 있는 동영상 압축기술인 H.264 코덱이 사용되는 곳에 필수적인 H.264/AVC를 위한 내용기반 가변길이 부호화기를 제공할 수 있으므로, 매우 다양한 분야에 적용 및 응용이 가능해진다. In addition, according to the present invention, as a video compressor method with high utilization not only in domestic and overseas satellite and terrestrial DMB and IP TV sites, but also in PMP and Internet, it is widely used in portable information terminals, DVRs, network cameras, surveillance cameras, navigation systems, etc. It is possible to provide a content-based variable length coder for H.264 / AVC, which is essential where the H.264 codec, which is a video compression technology, is used.

이상 상기한 바와 같은 본 발명의 실시예를 통하여 본 발명에 따른 H.264/AVC를 위한 내용기반 가변길이 부호화기의 상세한 내용에 대하여 설명하였으나, 본 발명은 상기한 실시예에 기재된 내용으로만 한정되는 것은 아니며, 따라서 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 설계상의 필요 및 기타 다양한 요인에 따라 여러 가지 수정, 변경, 결합 및 대체 등이 가능한 것임은 당연한 일이라 하겠다. As described above, the details of the content-based variable length encoder for H.264 / AVC according to the present invention have been described through the embodiments of the present invention. However, the present invention is limited only to the contents described in the above embodiments. Therefore, it is a matter of course that the present invention can be variously modified, changed, combined, and replaced by those skilled in the art according to design needs and various other factors. .

10. CAVLC 부호화기 11. 이중 버퍼
12. 이중 버퍼 13. 이중 버퍼
14. 이중 버퍼 15. 제어부
16. coeff_token 블록 17. TrailingOnes_sign 블록
18. level 블록 19. total_zeros 블록
20. run_before 블록 21. bit_stream 블록
10. CAVLC Encoder 11. Double Buffer
12. Double Buffer 13. Double Buffer
14. Double buffer 15. Control part
16. coeff_token block 17. TrailingOnes_sign block
18. level block 19. total_zeros block
20. run_before block 21. bit_stream block

Claims (5)

수정된 가변길이 코딩 테이블(Variable Length Coding tables)과 병렬처리 기법을 이용하여 부호화 처리를 행하는 H.264/AVC를 위한 내용기반 가변길이 부호화기(context-based adaptive variable length coding device)에 있어서,
상기 부호화기의 성능을 향상시키기 위해 읽기와 쓰기가 동시에 이루어지도록, 입력값이 쓰여지는 상위 버퍼(upper buffer) 및 상기 입력값이 쓰여질 동안 다음 단에서 읽혀질 값이 쓰여지는 하위 버퍼(under buffer)를 각각 포함하는 제 1 이중 버퍼(dual buffer) 및 제 2 이중 버퍼;
coeff_token 블록, TrailingOnes_sign 블록, level 블록, total_zeros 블록 및 run_before 블록을 포함하여 부호화 처리를 수행하는 연산처리부;
상기 연산처리부에 의해 처리된 결과값을 저장하는 비트스트림 버퍼(bit stream buffer); 및
상기 부호화기의 전체적인 동작을 제어하는 제어신호 및 인에이블 신호를 생성하는 제어부(control unit)를 포함하고,
상기 비트스트림 버퍼는 FIFO(first in first out)로 구성된 것을 특징으로 하는 내용기반 가변길이 부호화기.
In a context-based adaptive variable length coding device for H.264 / AVC that performs encoding processing using a modified variable length coding table and a parallel processing technique,
In order to improve the performance of the encoder, the upper and upper buffers to which the input values are written and the under buffers to which the values to be read at the next stage are written while the input values are written, so that the reading and writing are performed simultaneously. A first dual buffer and a second dual buffer comprising;
an arithmetic processing unit including a coeff_token block, a TrailingOnes_sign block, a level block, a total_zeros block, and a run_before block;
A bit stream buffer for storing a result value processed by the operation processor; And
A control unit for generating a control signal and an enable signal for controlling the overall operation of the encoder;
And the bitstream buffer comprises first in first out (FIFO).
제 1항에 있어서,
상기 제 1 이중버퍼는, 잔여 데이터(Residual data)를 입력으로 받아 지그재그 스캐닝(zigzag scanning)을 행하여 그 상위 및 하위 버퍼에 각각 순방향과 역방향으로 저장하고,
상기 제 2 이중버퍼는,
상기 순방향으로 저장한 데이터를 사용하여, 상기 coeff_token 블록, 상기 TrailingOnes_sign 블록, 상기 level 블록, 상기 total_zeros 블록 및 상기 제어부의 변수를 각각 생성하는 PRM_G(parameter generator) 및
상기 역방향으로 저장한 데이터를 사용하여, 상기 run_before 블록에서만 사용하는 변수를 생성하는 RB_G(run_before generator)를 그 상위 및 하위 버퍼에 각각 포함하여 변수 생성기 역할을 수행하도록 구성됨으로써, 다음의 블록들이 병렬처리가 가능하도록 구성된 것을 특징으로 하는 내용기반 가변길이 부호화기.
The method of claim 1,
The first double buffer receives residual data as an input, performs zigzag scanning, and stores the data in the forward and reverse directions in the upper and lower buffers, respectively.
The second double buffer,
A parameter generator (PRM_G) for generating variables of the coeff_token block, the TrailingOnes_sign block, the level block, the total_zeros block, and the controller, respectively, using the data stored in the forward direction;
By using the data stored in the backward direction, RB_G (run_before generator) for generating a variable used only in the run_before block is included in its upper and lower buffers to serve as a variable generator, whereby the following blocks are processed in parallel. Content-based variable length encoder, characterized in that configured to enable.
제 1항에 있어서,
상기 수정된 가변길이 코딩 테이블은, 동일한 특성을 가지는 부분은 산술연산을 이용함으로써 하드웨어 사용량이 기존의 참조표(look up table)에 비해 줄어들도록 기존의 참조표를 수정한 것으로, 그 코드워드(codeword) 값은, 종래의 익스포넨셜 골롬 엔트로피 코딩(Exponential Golomb entropy coding)의 코드워드 형식인 [M zeros][1][INFO]를, FP1은 1이 처음 나오는 위치를 뜻하는 동시에 FP1의 길이를 표현하는 것이고, INFO는 FP1 이후의 정보 값이며, INFO_length는 INFO의 길이를 나타내는 것으로 할 때, [FP1][INFO][INFO_length]로 바꾸어 구성한 것을 특징으로 하는 내용기반 가변길이 부호화기.
The method of claim 1,
In the modified variable-length coding table, a portion having the same characteristics is modified by using an arithmetic operation so that the hardware usage is reduced as compared with a conventional look up table. ) Value is [M zeros] [1] [INFO], which is a codeword form of Exponential Golomb entropy coding, and FP1 denotes the position where 1 first appears, and the length of FP1. And INFO is an information value after FP1, and INFO_length is configured to be replaced with [FP1] [INFO] [INFO_length] when INFO_length represents the length of INFO.
제 1항에 있어서,
상기 제 2 이중버퍼에 의해 생성된 값은, 병렬처리가 연속적으로 이루어질 수 있도록 16번 마다 버퍼의 위치를 달리하여 저장되도록 구성된 것을 특징으로 하는 내용기반 가변길이 부호화기.
The method of claim 1,
And the value generated by the second double buffer is configured to be stored at different positions of the buffer every 16 times so that parallel processing can be continuously performed.
삭제delete
KR1020100071965A 2010-07-26 2010-07-26 A context-based adaptive variable length coding device for H.264/AVC KR101130271B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100071965A KR101130271B1 (en) 2010-07-26 2010-07-26 A context-based adaptive variable length coding device for H.264/AVC

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100071965A KR101130271B1 (en) 2010-07-26 2010-07-26 A context-based adaptive variable length coding device for H.264/AVC

Publications (2)

Publication Number Publication Date
KR20120010431A KR20120010431A (en) 2012-02-03
KR101130271B1 true KR101130271B1 (en) 2012-03-26

Family

ID=45834922

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100071965A KR101130271B1 (en) 2010-07-26 2010-07-26 A context-based adaptive variable length coding device for H.264/AVC

Country Status (1)

Country Link
KR (1) KR101130271B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386212A (en) * 1992-11-19 1995-01-31 General Instrument Corporation Double buffer scheme for variable length decoder
KR20050061777A (en) * 2003-12-18 2005-06-23 엘지전자 주식회사 Decoding method of cavlc
KR20050073330A (en) * 2004-01-09 2005-07-13 엘지전자 주식회사 Apparatus for managing vld buffer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386212A (en) * 1992-11-19 1995-01-31 General Instrument Corporation Double buffer scheme for variable length decoder
KR20050061777A (en) * 2003-12-18 2005-06-23 엘지전자 주식회사 Decoding method of cavlc
KR20050073330A (en) * 2004-01-09 2005-07-13 엘지전자 주식회사 Apparatus for managing vld buffer

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
'Analysis and architecture design of an HDTV720p 30 frames/s H.264/AVC encoder', Circuits and Systems for Video Technology, IEEE Transactions on, June 2006, Vol. 16, p673-688

Also Published As

Publication number Publication date
KR20120010431A (en) 2012-02-03

Similar Documents

Publication Publication Date Title
US11843794B2 (en) CABAC decoder with decoupled arithmetic decoding and inverse binarization
TWI826519B (en) Regular coded bin reduction for coefficient coding
RU2666635C2 (en) Features of base colour index map mode for video and image coding and decoding
JP4540585B2 (en) Encoding device and decoding device
US9270988B2 (en) Method of determining binary codewords for transform coefficients
US9641835B2 (en) Method of determining binary codewords for transform coefficients
CN112352429B (en) Method, apparatus and storage medium for encoding and decoding video data
US20140169480A1 (en) Image compression method and apparatus for bandwidth saving
US10284851B2 (en) Method of determining binary codewords for transform coefficients
US20130188727A1 (en) Method of determining binary codewords for transform coefficients
KR20160101925A (en) Data encoding and decoding
US20130188729A1 (en) Method of determining binary codewords for transform coefficients
TWI827662B (en) Regular coded bin reduction for coefficient coding
WO2013068731A1 (en) Data encoding and decoding
JP2022510145A (en) Regularly coded bin reduction for coefficient decoding using thresholds and rice parameters
US11924470B2 (en) Encoder and method of encoding a sequence of frames
JP2022516132A (en) Escape coding for coefficient levels
JP4823090B2 (en) Image encoding device
KR20050012763A (en) Non-scalable to scalable video conversion method, scalable to non-scalable video conversion method
KR100667595B1 (en) Variable length decoder
KR101130271B1 (en) A context-based adaptive variable length coding device for H.264/AVC
Lee et al. A design of high-performance pipelined architecture for H. 264/AVC CAVLC decoder and low-power implementation
KR0154011B1 (en) Variable length decoder
Pastuszak High-speed architecture of the CABAC probability modeling for H. 265/HEVC encoders
Hmida et al. A high performance architecture design of cavlc coding suitable for real-time applications

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: 20141204

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160113

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171213

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee