KR20100059665A - Appratus for coding an image and method for coding the image - Google Patents

Appratus for coding an image and method for coding the image Download PDF

Info

Publication number
KR20100059665A
KR20100059665A KR20090068407A KR20090068407A KR20100059665A KR 20100059665 A KR20100059665 A KR 20100059665A KR 20090068407 A KR20090068407 A KR 20090068407A KR 20090068407 A KR20090068407 A KR 20090068407A KR 20100059665 A KR20100059665 A KR 20100059665A
Authority
KR
South Korea
Prior art keywords
code
zero
coefficient
input
run length
Prior art date
Application number
KR20090068407A
Other languages
Korean (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 KR20100059665A publication Critical patent/KR20100059665A/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • 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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Landscapes

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

Abstract

PURPOSE: An apparatus and a method for coding an image are provided to improve the processing speed substantially when coding a variable length of an image. CONSTITUTION: A 2D DCT(Discrete Cosine Transform) unit(101) performs a DCT operation for inputted image data, and a zigzag scan unit(103) performs a zigzag scanning operation for every DCT coefficient block. A quantization unit(104) quantizes read DCT coefficient based on a preset quantization value, and an intermediate code generator(105) creates an intermediate code on the basis of the quantized DCT coefficient. Based on a non-zero coefficient and a zero run length, a variable-length coding unit(107) generates a Haffman code.

Description

화상 부호화 장치 및 화상 부호화 방법{Appratus for coding an image and method for coding the image}Apparatus for coding an image and method for coding the image}

본 발명은 화상 부호화 장치 및 화상 부호화 방법에 관한 것이다.The present invention relates to a picture coding apparatus and a picture coding method.

정지 화상 데이터의 압축 방식으로서, JPEG베이스 라인 방식이 있고, JPEG베이스 라인 방식의 가변길이 부호화 방식에는 하프만 부호가 사용된다. 8×8화소의 블럭으로 분할된 화상 데이터를 DCT변환하여 양자화하여 얻을 수 있는 계수는 제로(0)와 제로가 아닌 값으로 이루어진다. 하프만 부호화는, 계수가 제로(제로 계수)일 때의 제로의 수(제로 런렝스)와, 제로 계수의 뒤를 잇는 제로가 아닌 계수인 비제로 계수의 조합을 발생 빈도가 높은 순서대로 코드길이가 짧은 코드를 할당한다. 이로써 효율적인 부호화를 실행할 수 있다.As a compression method of still image data, there is a JPEG baseline method, and a half-man code is used for the variable length coding method of the JPEG baseline method. Coefficients that can be obtained by DCT transforming and quantizing image data divided into blocks of 8x8 pixels consist of zero (0) and nonzero values. Half-man coding uses a combination of the number of zeros (zero run length) when the coefficient is zero (zero coefficient) and a nonzero coefficient that is a nonzero coefficient following the zero coefficient in order of high frequency. Allocate short code. In this way, efficient encoding can be performed.

종래의 하프만 부호에서는 부호화할 때 DCT계수 블럭내의 모든 데이터에 대해서 블럭마다 DCT계수가 제로인지 또는 비제로 계수인지를 판별할 필요가 있었다. 예를 들면, DCT계수 블럭은 8×8의 블럭으로서 64데이터이기 때문에 하프만 부호로 부호화할 경우, 통상 1블럭당 64클럭 이상을 필요로 하였다. 예를 들면 특허문헌 1에는 하프만 부호의 처리 시간 단축화를 꾀하는 기술이 개시되어 있다.In the conventional halfman code, it is necessary to determine whether the DCT coefficient is zero or non-zero coefficient for each block for all data in the DCT coefficient block when encoding. For example, since the DCT coefficient block is an 8x8 block, which is 64 data, when encoding with half-man code, 64 blocks or more are usually required for one block. For example, Patent Literature 1 discloses a technique for shortening the processing time of a Halfman code.

[특허문헌 1] 일본특개2003-333339호 공보[Patent Document 1] Japanese Patent Application Laid-Open No. 2003-333339

종래 가변길이 부호화에서 연속된 제로 계수를 열거하여 제로 런렝스를 산출하였으며 하나의 제로 계수를 열거하려면 1클럭을 필요로 하였다. 특허문헌 1의 기술에서는 부호화할 때의 처리 클럭수를 억제하기 위하여 제로 런렝스 및 비제로 계수로부터 가변길이 부호를 생성하는 가변길이 부호화의 앞단에서 제로 런렝스와 비제로 계수를 조합하여 하나의 계수를 생성한다. 그리고 가변길이 부호화에서는 생성한 하나의 계수를 토대로 가변길이 부호를 생성한다. 따라서 특허문헌 1의 가변길이 부호화에서는 제로 런렝스를 산출하기 위한 처리 클럭수가 불필요하여 제로 런렝스와 비제로 계수가 직접 입력되기 때문에 부호화할 때의 처리 클럭수를 삭감할 수 있었다.In conventional variable-length coding, the zero run length is calculated by enumerating consecutive zero coefficients, and one clock is required to enumerate one zero coefficient. In the technique of Patent Literature 1, in order to suppress the number of processing clocks in encoding, one coefficient is combined by combining zero run length and nonzero coefficients at the front of variable length coding that generates a variable length code from zero length and nonzero coefficients. Create In variable length coding, a variable length code is generated based on one generated coefficient. Therefore, in variable length coding of Patent Literature 1, the number of processing clocks for calculating the zero run length is unnecessary, and since the zero run length and the non-zero coefficient are directly input, the number of processing clocks at the time of encoding can be reduced.

그러나 이 방법으로는 제로 계수가 길게 연속되어 있을 때, 즉 제로 런렝스가 클 때에는 처리 클럭수의 삭감 효과가 있지만, 비제로 계수가 1블럭 내에서 많을 때에는 처리 클럭수의 삭감 효과가 낮아진다. 또한, 양자화후의 계수가 전부 비제로 계수가 되었을 때에는 처리 클럭수의 삭감 효과는 전혀 없다는 문제가 있었다.In this method, however, the processing clock number is reduced when the zero coefficients are long, that is, when the zero run length is large. However, when the non-zero coefficient is large within one block, the processing clock number reduction effect is lowered. Moreover, when all the coefficients after quantization became nonzero coefficients, there was a problem that there was no effect of reducing the number of processing clocks.

본 발명은 상기 문제 및 그 밖의 여러가지 문제들을 감안하여 이루어진 것으로서, 본 발명은 가변길이 부호화에서 실질적인 처리 속도를 향상시킬 수 있는 신규 및 개량된 화상 부호화 장치 및 화상 부호화 방법을 제공하는 데 있다.SUMMARY OF THE INVENTION The present invention has been made in view of the above problems and various other problems, and the present invention provides a new and improved picture coding apparatus and a picture coding method capable of improving a substantial processing speed in variable length coding.

상기 과제를 해결하기 위해 본 발명의 일 관점에 의하면, 화상 데이터를 직교 변환하여 직교 변환 계수를 생성하는 직교 변환부와, 직교 변환 계수를 양자화하여 양자화 계수를 생성하는 양자화부와, 양자화 계수의 값이 제로(0)인 제로 계수의 연속수를 나타내는 제로 런렝스와, 제로 계수의 뒤를 잇는 양자화 계수의 값이 제로가 아닌 비제로 계수를 검출하는 계수 검출부와, 순차적으로 검출된 비제로 계수 또는 제로 런렝스를 2 이상의 소정수마다 차례대로 조합함과 동시에 비제로 계수 및 제로 런렝스 중 어느 것인지를 식별하는 식별자를 비제로 계수 및 제로 런렝스마다 부여하여 중간 코드를 생성하는 중간 코드 생성부와, 중간 코드의 비제로 계수 또는 제로 런렝스와 식별자에 기초하여 각각 하나의 비제로 계수와 하나의 제로 런렝스가 입력되어 가변길이 부호화 처리를 행하고, 상기 소정수와 동일수 이상으로 이루어진 보수의 부호화부들을 포함하는 화상 부호화 장치를 제공한다.According to an aspect of the present invention to solve the above problems, an orthogonal transform unit for generating orthogonal transform coefficients by orthogonal transformation of the image data, a quantization unit for generating quantization coefficients by quantizing the orthogonal transform coefficients, the value of the quantization coefficients A zero run length indicating a continuous number of zero coefficients that are zero, a coefficient detector for detecting a non-zero coefficient whose quantization coefficient following the zero coefficient is not zero, and a non-zero coefficient or zero detected sequentially An intermediate code generation unit for generating intermediate codes by sequentially combining run lengths every two or more predetermined numbers, and assigning an identifier for identifying any of non-zero coefficients and zero run lengths for each non-zero coefficient and zero run length; Based on the non-zero coefficients or zero run lengths and identifiers of the intermediate codes, one non-zero coefficient and one zero run length are inputted, respectively. A variable length coding process is performed, and an image coding apparatus including a complementary coding unit comprising a predetermined number and a same number or more.

본 발명에 관한 화상 부호화 장치에 있어서, 상기 양자화부, 계수 검출부 및 중간 코드 생성부 각각은 복수개로 구비하고, 상기 화상 데이터 또는 직교 변환된 상기 직교 변환 데이터를 양자화부 각각과, 각 계수 검출부들 각각과, 중간 코드 생성부들 각각을 통해 병렬 처리할 수 있다. In the picture coding apparatus according to the present invention, each of the quantization unit, the coefficient detection unit, and the intermediate code generation unit is provided in plural, and each of the quantization unit and each coefficient detection unit includes the image data or the orthogonal transformed data. In addition, parallel processing may be performed through each of the intermediate code generators.

또한, 상기 과제를 해결하기 위해 본 발명의 다른 관점에 의하면, 화상 데이터를 직교 변환하여 직교 변환 계수를 생성하고, 직교 변환 계수를 양자화하여 양자화 계수를 생성하며, 양자화 계수의 값이 제로(0)인 제로 계수의 연속수를 나타내는 제로 런렝스와 제로 계수의 뒤를 잇는 양자화 계수의 값이 제로가 아닌 비제로 계수를 검출하고, 순차적으로 검출된 비제로 계수 또는 제로 런렝스를 2 이상의 소정수마다 차례대로 조합함과 동시에 비제로 계수 및 제로 런렝스 중 어느 것인지를 식별하는 식별자를 비제로 계수 및 제로 런렝스마다 부여하여 중간 코드를 생성하며, 상기 소정수와 동일수 이상으로 이루어진 여러 개의 부호화부가 중간 코드의 비제로 계수 또는 제로 런렝스와, 식별자에 기초하여 각각 하나의 비제로 계수와 하나의 제로 런렝스가 입력되어 가변길이 부호화 처리를 행하는 화상 부호화 방법을 제공한다.According to another aspect of the present invention, in order to solve the above problems, orthogonal transform of image data to generate orthogonal transform coefficients, quantized orthogonal transform coefficients to generate quantization coefficients, the value of the quantization coefficient is zero (0) A zero run length representing a continuous number of in zero coefficients and a value of a quantization coefficient following the zero coefficient detects a non-zero coefficient, and sequentially detects non-zero coefficients or zero run lengths every two or more predetermined numbers. In combination with each other, an intermediate code is generated for each of the non-zero coefficient and zero run length to generate an intermediate code that identifies which of the non-zero coefficient and zero run length. Nonzero coefficient or zero runlength of the code, and one nonzero coefficient and one zero runlength, respectively, based on the identifier It is input provides a picture coding method for performing variable-length coding process.

본 발명에 의하면, 가변길이 부호화에서 실질적인 처리 속도를 향상시킬 수 있다.According to the present invention, the substantial processing speed can be improved in variable length coding.

이하, 첨부 도면을 참조하여 본 발명의 바람직한 실시형태에 대해서 상세히 설명하기로 한다. 아울러 본 명세서 및 도면에서 실질적으로 동일한 기능 구성을 가진 구성요소에 대해서는 동일 부호를 붙임으로써 중복 설명을 생략한다.EMBODIMENT OF THE INVENTION Hereinafter, preferred embodiment of this invention is described in detail with reference to an accompanying drawing. In addition, in the present specification and drawings, components having substantially the same functional configuration will be omitted by overlapping the same reference numerals.

(제1실시형태)(First Embodiment)

[제1실시형태의 구성][Configuration of First Embodiment]

우선, 본 발명의 제1실시형태에 관한 화상 부호화 장치(100)에 대해서 설명하기로 한다. 도 1은, 본 실시형태에 관한 화상 부호화 장치(100)의 구성을 도시한 블럭도이다. 화상 부호화 장치(100)는, 예를 들면 2차원 DCT부(101)와, 제1버퍼(102)와, 지그재그 스캔부(103)와, 양자화부(104)와, 중간 코드 생성부(105)와, 제2버퍼(106)와, 가변길이 부호화부(107) 등으로 이루어진다.First, the picture coding apparatus 100 according to the first embodiment of the present invention will be described. 1 is a block diagram showing the configuration of the picture coding apparatus 100 according to the present embodiment. The image encoding apparatus 100 is, for example, a two-dimensional DCT unit 101, a first buffer 102, a zigzag scan unit 103, a quantization unit 104, and an intermediate code generation unit 105. And a second buffer 106, variable length encoder 107, and the like.

2차원 DCT부(101)는 입력된 화상 데이터를 DCT변환(이산 코사인 변환: Discrete Cosine Transform)(직교 변환)하여 DCT계수를 생성한다. 여기에서 입력되는 화상 데이터란, 예를 들면 촬상소자에서 출력된 화상 신호를 8×8화소의 블럭으로 분할하여 블럭화 처리한 데이터이다. 2차원 DCT부(101)가 화상 데이터를 DCT변환함으로써 8×8화소의 블럭마다 8×8의 DCT계수 블럭이 생성된다.The two-dimensional DCT unit 101 generates a DCT coefficient by performing DCT transformation (Discrete Cosine Transform) (orthogonal transformation) on the input image data. The image data input here is, for example, data obtained by dividing an image signal output from an image pickup device into blocks of 8x8 pixels and blocking them. When the two-dimensional DCT unit 101 performs DCT conversion of image data, an 8x8 DCT coefficient block is generated for each 8x8 pixel block.

제1버퍼(102)는 2차원 DCT부(101)에서 생성된 DCT계수의 데이터를 DCT계수 블럭 단위로 저장한다.The first buffer 102 stores data of the DCT coefficient generated by the two-dimensional DCT unit 101 in units of DCT coefficient blocks.

지그재그 스캔부(103)는 제1버퍼(102)에서 DCT계수를 독출하고, 독출한 DCT계수를 양자화부(104)에 전송한다. 지그재그 스캔부(103)는 제1버퍼(102)에서 DCT계수의 데이터를 독출할 때 DCT계수 블럭마다 지그재그 스캔을 한다. 도 2는, 8×8의 DCT계수 블럭을 도시하고 있으며, DCT계수 블럭에서의 지그재그 스캔을 도시한 설명도이다. DCT계수 블럭에서는 2차원 DCT부(101)에서 생성된 DCT계수가, 도 2에 도시한 0→63의 순번으로 배치되어 있다. 지그재그 스캔부(103)는, 도 2의 화살표로 도시한 것처럼 DCT계수 블럭의 저주파수 영역을 우선하여 DCT계수를 독출하고 점차 고주파 영역이 되도록 DCT계수를 독출해나간다.The zigzag scan unit 103 reads the DCT coefficient from the first buffer 102 and transmits the read DCT coefficient to the quantization unit 104. The zigzag scan unit 103 performs a zigzag scan for each DCT coefficient block when reading the data of the DCT coefficient from the first buffer 102. Fig. 2 shows an 8 × 8 DCT coefficient block and is an explanatory diagram showing a zigzag scan in the DCT coefficient block. In the DCT coefficient block, the DCT coefficients generated by the two-dimensional DCT unit 101 are arranged in the order of 0 to 63 shown in FIG. The zigzag scan unit 103 reads the DCT coefficients first by giving priority to the low frequency region of the DCT coefficient block as shown by the arrow in Fig. 2 and gradually reads the DCT coefficients so as to become a high frequency region.

양자화부(104)는, 지그재그 스캔부(103)에서 지그재그 스캔에 의해 독출된 DCT계수를 소정의 양자화값으로 양자화한다. 양자화부(104)는 양자화된 DCT계수를 중간 코드 생성부(105)에 보낸다. 이 때, 양자화된 DCT계수는 양자화부(104)에 출력된 후, 버퍼 등에 일시적으로 저장되지 않고 직접 중간 코드 생성부(105)에 전송된다.The quantization unit 104 quantizes the DCT coefficient read by the zigzag scan unit 103 by the zigzag scan to a predetermined quantization value. The quantization unit 104 sends the quantized DCT coefficient to the intermediate code generation unit 105. At this time, the quantized DCT coefficients are output to the quantization unit 104 and then directly transmitted to the intermediate code generation unit 105 without being temporarily stored in a buffer or the like.

중간 코드 생성부(105)는 양자화된 DCT계수에 기초하여 중간 코드를 생성한다. 중간 코드는 DCT계수의 비제로 계수, 제로 런렝스 및 각각의 식별자(ID)로 이루어진다. 중간 코드 생성부(105)는 생성한 중간 코드를 제2버퍼(106)에 보낸다.The intermediate code generator 105 generates an intermediate code based on the quantized DCT coefficients. The intermediate code consists of a nonzero coefficient of DCT coefficients, zero run length, and each identifier (ID). The intermediate code generator 105 sends the generated intermediate code to the second buffer 106.

제2버퍼(106)는 중간 코드 생성부(105)에 생성된 중간 코드를 저장한다.The second buffer 106 stores the intermediate code generated in the intermediate code generator 105.

가변길이 부호화부(107)는 제2버퍼(106)에서 중간 코드를 독출하여 중간 코드의 비제로 계수, 제로 런렝스를 나타내는 ID에 기초하여 비제로 계수, 제로 런렝스를 판별한다. 그리고 가변길이 부호화부(107)는 비제로 계수, 제로 런렝스에 기초하여 하프만 부호를 생성하고 생성한 하프만 부호를 출력한다. 본 실시형태의 가변길이 부호화부(107)는, 후술하는 바와 같이 1세트(중간 코드 세트)에 포함되는 중간 코드의 수에 대응하여 복수의 부호부들을 구비한다. 예를 들면, 1세트에 포함되는 중간 코드가 2조인 경우에는 가변길이 부호화부(107)의 2개의 부호부들을 구비할 수 있다.The variable length encoder 107 reads the intermediate code from the second buffer 106 and determines the nonzero coefficient and the zero run length based on the nonzero coefficient and the ID representing the zero run length of the intermediate code. The variable length encoder 107 generates a half-man code based on a non-zero coefficient and zero run length, and outputs the generated half-man code. The variable length coding unit 107 of the present embodiment includes a plurality of code units corresponding to the number of intermediate codes included in one set (intermediate code set) as described later. For example, when two sets of intermediate codes included in one set may be provided, two code units of the variable length encoder 107 may be provided.

[중간 코드의 생성][Generation of intermediate code]

다음으로, 본 실시형태에 관한 중간 코드의 생성에 대해서 설명하기로 한다.Next, generation of the intermediate code according to the present embodiment will be described.

중간 코드는 양자화된 DCT계수에 기초하여 생성된다. 양자화된 DCT계수는 제로(0)와 제로가 아닌 값으로 이루어진다. 그래서 중간 코드 생성부(105)는 계수 검출부의 일례로서, 우선 DCT계수에 대해서 값이 제로가 아닌 계수인 비제로 계수와, 값이 제로인 계수(제로 계수)를 판별한다. 그리고 중간 코드 생성부(105)는 DCT계수가 비제로 계수라고 판별했을 때에는 그 값을 출력한다. 또한, 중간 코드 생성부(105)는 출력값이 비제로 계수임을 나타내는 식별자(ID)를 출력한다. 본 실시형태에서는 비제로 계수임을 나타내는 ID는 「1」이라고 하였다. 중간 코드 생성부(105)는 비제로 계수의 값과 ID를 조합하여 1조의 중간 코드를 생성한다. ID는 중간 코드의 MSB(최상위 비트: most significant bit)에 부가된다.The intermediate code is generated based on the quantized DCT coefficients. The quantized DCT coefficients consist of zero and nonzero values. Thus, the intermediate code generating section 105 is an example of the coefficient detecting section. First, the intermediate code generating section 105 discriminates the non-zero coefficient whose coefficient is a non-zero coefficient and the coefficient whose value is zero (zero coefficient). When the intermediate code generation unit 105 determines that the DCT coefficient is a nonzero coefficient, it outputs the value. The intermediate code generator 105 also outputs an identifier ID indicating that the output value is a nonzero coefficient. In the present embodiment, the ID indicating the nonzero coefficient is set to "1". The intermediate code generation unit 105 generates a set of intermediate codes by combining IDs of non-zero coefficients with IDs. The ID is added to the MSB (most significant bit) of the intermediate code.

한편, 중간 코드 생성부(105)는 DCT계수가 제로 계수라고 판별했을 때에는 비제로 계수 뒤에 연속되는 제로 계수의 수를, 다음에 비제로 계수가 판별될 때까지 열거한다. 그리고 중간 코드 생성부(105)는 열거한 제로 계수의 수를 제로 런렝스로서 출력한다. 또한, 중간 코드 생성부(105)는 출력값이 제로 런렝스임을 나타내는 식별자(ID)를 출력한다. 본 실시형태에서 제로 런렝스임을 나타내는 ID는 「0」이라고 하였다. 중간 코드 생성부(105)는, 제로 런렝스의 값과 ID를 조합하여 1조의 중간 코드를 생성한다. ID는 중간 코드의 MSB(최상위 비트: most significant bit)에 부가된다.On the other hand, when the intermediate code generating unit 105 determines that the DCT coefficient is the zero coefficient, the intermediate code generating unit 105 enumerates the number of zero coefficients that follow the non-zero coefficient until the next non-zero coefficient is determined. The intermediate code generator 105 then outputs the number of enumerated zero coefficients as zero run lengths. In addition, the intermediate code generator 105 outputs an identifier ID indicating that the output value is zero run length. In the present embodiment, an ID indicating zero run length is " 0 ". The intermediate code generation unit 105 generates a set of intermediate codes by combining the ID of the zero run length and the ID. The ID is added to the MSB (most significant bit) of the intermediate code.

[중간 코드의 배치]Placement of Intermediate Code

다음으로, 도 3을 참조하여 제2버퍼(106)에 저장되는 중간 코드의 배치에 대해서 설명하기로 한다. 도 3은, 본 실시형태의 제2버퍼(106)에 저장되는 중간 코드 의 배치를 도시한 설명도이다.Next, the arrangement of the intermediate codes stored in the second buffer 106 will be described with reference to FIG. 3. 3 is an explanatory diagram showing an arrangement of intermediate codes stored in the second buffer 106 of the present embodiment.

제2버퍼(106)는 시계열에서 연속되는 여러 개의 중간 코드를 시간적으로 선행하는 것을 하위에 배치하고, 시간적으로 후행하는 것을 상위에 배치하여 저장한다. 본 실시형태에서는 2조의 중간 코드를 1세트(중간 코드 세트)로 한다. 도 3에서는 1세트를 1줄로 나타냈다. 도 3의 「계수 데이터」란, 비제로 계수의 값을 나타내고, 「제로 런렝스」란, 제로 런렝스의 값을 나타낸다. 본 실시형태에서 중간 코드의 비제로 계수의 값 또는 제로 런렝스의 값은 11bit로 표현한다. 또한, ID는 1bit로 표현한다. 따라서 본 실시형태에서는 1조의 중간 코드는 12bit로 표현하고 2조의 중간 코드를 맞춘 하나의 중간 코드 세트는 24bit로 표현한다. 따라서 하나의 DCT계수 블럭은 64의 DCT계수로 이루어지기 때문에 중간 코드의 버퍼 용량은 최대 768bit(=12bit×64)이면 충분하다.The second buffer 106 stores a plurality of intermediate codes consecutive in the time series at the lower part of the temporal sequence, and the second buffer 106 at the upper part of the temporal sequence. In this embodiment, two sets of intermediate codes are set as one set (intermediate code set). In FIG. 3, one set is represented by one line. "Coefficient data" of FIG. 3 shows the value of a non-zero coefficient, and "zero run length" shows the value of zero run length. In the present embodiment, the value of the non-zero coefficient or the zero run length of the intermediate code is represented by 11 bits. In addition, ID is represented by 1 bit. Therefore, in the present embodiment, one set of intermediate codes is represented by 12 bits, and one set of intermediate codes that combines two sets of intermediate codes is represented by 24 bits. Therefore, since one DCT coefficient block is composed of 64 DCT coefficients, the buffer capacity of the intermediate code is sufficient to have a maximum of 768 bits (= 12 bits × 64).

한편, 특허문헌 1에서 제로 런렝스와 비제로 계수를 조합하여 생성하는 하나의 계수는, 제로 런렝스를 나타내는 4bit와 비제로 계수를 나타내는 11bit를 합한 15bit로 표현한다. 따라서 계수의 버퍼 용량은 최대 960bit(=15bit×64)가 된다. 따라서 본 실시형태의 중간 코드의 버퍼 용량은 특허문헌 1에 비해 적은 용량으로도 충분하다.On the other hand, in Patent Document 1, one coefficient generated by combining the zero run length and the nonzero coefficient is expressed by 15 bits in which 4 bits representing the zero run length and 11 bits representing the nonzero coefficient are added together. Therefore, the buffer capacity of the coefficient is at most 960 bits (= 15 bits x 64). Therefore, the buffer capacity of the intermediate code of this embodiment is sufficient even if it is small compared with patent document 1.

도 4를 참조하여 중간 코드 생성부(105)에 생성되는 중간 코드의 일례를 설명하기로 한다. 도 4는 시계열 순서대로 배치된 양자화 후의 DCT계수(A)와, 양자화 후의 DCT계수에서 생성된 중간 코드(B)를 도시한 설명도이다.An example of an intermediate code generated in the intermediate code generation unit 105 will be described with reference to FIG. 4. 4 is an explanatory diagram showing DCT coefficients A after quantization and intermediate codes B generated by DCT coefficients after quantization arranged in time series order.

중간 코드는 도 4(B)에 도시한 바와 같이 중간 코드의 값(비제로 계수의 값 또는 제로 런렝스의 값)과 ID로 이루어진다. 도 4(B)에서는 제로 런렝스값을 회색으로 표시하였다. 중간 코드의 값은, 중간 코드의 MSB에 부가된 ID에 의해 비제로 계수의 값인지 제로 런렝스의 값인지 식별할 수 있다.The intermediate code consists of the value of the intermediate code (the value of the non-zero coefficient or the value of zero run length) and the ID as shown in Fig. 4B. In FIG. 4B, the zero run length value is indicated in gray. The value of the intermediate code can identify whether it is a value of nonzero coefficient or zero run length by an ID added to the MSB of the intermediate code.

[중간 코드의 판독][Read Intermediate Code]

다음으로 도 5를 참조하여 가변길이 부호화부(107)에 의한 제2버퍼(106)로부터의 중간 코드 독출에 대해 설명하기로 한다. 도 5는, 제2버퍼(106)와, 제2버퍼(106)에서 중간 코드를 독출하는 가변길이 부호화부(107)를 도시한 블럭도이다.Next, the intermediate code reading from the second buffer 106 by the variable length encoder 107 will be described with reference to FIG. 5. 5 is a block diagram showing a second buffer 106 and a variable length encoder 107 that reads an intermediate code from the second buffer 106. As shown in FIG.

가변길이 부호화부(107)는, 도 5에 도시한 바와 같이 분리부(110)를 가진다. 분리부(110)는 제2버퍼(106)에 저장된 중간 코드 세트로부터, 상위에 배치된 중간 코드(상위 코드)와, 하위에 배치된 중간 코드(하위 코드)를 분리한다. 또한, 분리부(110)는 지연부(DFF: D형 플립플롭)(111)를 포함한다. 지연부(111)는 하나 선행하는 중간 코드 세트 중 상위 코드가 입력되고, 입력된 상위 코드를 1클럭 지연시켜 출력한다. 이로써 지연된 상위 코드가 제로 런렝스였을 때 지연된 상위 코드와 하위 코드로 부호화할 수 있다. 이상으로부터 분리부(110)는 상위 코드, 하위 코드 및 1클럭 지연된 상위 코드를 동시에 출력한다.The variable length coding unit 107 has a separation unit 110 as shown in FIG. The separating unit 110 separates the intermediate code (upper code) disposed above and the intermediate code (lower code) disposed below from the intermediate code set stored in the second buffer 106. In addition, the separation unit 110 includes a delay unit (D-type flip-flop) 111. The delay unit 111 inputs an upper code among the preceding intermediate code sets, and outputs the input upper code by delaying one clock. Thus, when the delayed upper code is zero run length, the delayed upper code and the lower code can be encoded. From the above, the separating unit 110 simultaneously outputs an upper code, a lower code, and an upper code delayed by one clock.

[가변길이 부호화부(107)에 의한 부호화][Encoding by Variable Length Coding Unit 107]

다음으로 도 6을 참조하여 가변길이 부호화부(107)에 의한 부호화에 대해서 설명하기로 한다. 도 6은, 본 실시형태의 가변길이 부호화부(107)를 도시한 블럭도이다. 제2버퍼(106)에 입력된 중간 코드 세트 중 하위 코드를 C0, 그 ID를 ID0라고 하고, 상위 코드를 C1, 그 ID를 ID1이라고 한다. 또한, 1 클럭 지연된 상위 코드는 말미에 d를 붙이고, 예를 들면 C1_d, 그 ID를 ID1_d로 나타낸다.Next, the encoding by the variable length encoder 107 will be described with reference to FIG. 6. Fig. 6 is a block diagram showing the variable length coding unit 107 of this embodiment. The lower code among the intermediate code sets input to the second buffer 106 is called C0, its ID is called ID0, the upper code is called C1, and its ID is called ID1. The upper code delayed by one clock is given d at the end, for example, C1_d, and its ID is indicated by ID1_d.

가변길이 부호화부(107)는, 도 6에 도시한 바와 같이 셀렉터들(121,122), 제1부호부(131), 제2부호부(132) 및 연결부(141)를 가진다. 1세트(중간 코드 세트)에 포함되는 중간 코드가 2조인 경우, 가변길이 부호화부(107)는 제1부호부(131)와 제2부호부(132)를 구비할 수 있다.The variable length encoder 107 has selectors 121 and 122, a first code unit 131, a second code unit 132, and a connection unit 141 as shown in FIG. 6. When two intermediate codes included in one set (intermediate code set) are two sets, the variable length encoder 107 may include a first coder 131 and a second coder 132.

제1부호부(131), 제2부호부(132)의 입력에서의 「A」는 비제로 계수의 입력을 나타내고, 「Z」는 제로 런렝스의 입력을 나타낸다. 제1부호부(131), 제2부호부(132)는 비제로 계수와 제로 런렝스에 기초하여, 예를 들면 2차원 하프만 테이블을 참조하여 하프만 부호를 출력한다. 제1부호부(131), 제2부호부(132)에서의 하프만 부호화는, 계수가 제로(제로 계수)일 때의 제로의 수(제로 런렝스)와, 제로 계수의 뒤를 잇는 제로가 아닌 비제로 계수와의 조합을 발생 빈도가 높은 순서대로 코드 길이가 짧은 코드를 할당한다. 이로써 효율적인 부호화를 실행할 수 있다."A" in the input of the 1st code part 131 and the 2nd code part 132 represents the input of a non-zero coefficient, and "Z" represents the input of zero run length. The first coder 131 and the second coder 132 output a halfman code by referring to, for example, a two-dimensional halfman table based on the non-zero coefficient and zero run length. The half-man coding in the first coder 131 and the second coder 132 is based on the number of zeros (zero run length) when the coefficient is zero (zero coefficient) and a nonzero value following the zero coefficient. Combinations with non-zero coefficients are assigned shorter code lengths in order of frequent occurrence. In this way, efficient encoding can be performed.

제1부호부(131)는 중간 코드에 포함되는 ID의 조합에 기초하여 앞단의 셀렉터들(121,122)에서 전환하여 입력(A) 및 입력(Z)의 입력 처리를 한다.The first coder 131 switches between the selectors 121 and 122 at the front end based on the combination of IDs included in the intermediate code to perform input processing of the input A and the input Z. FIG.

도 6에 도시한 바와 같이, 제1부호부(131)의 입력(A)에 입력되는 비제로 계수는 상위 코드(C1) 또는 하위 코드(C0)이다. 제1부호부(131)의 입력(Z)에 입력되는 제로 런렝스는 값이 0, 하위 코드(C0) 또는 1클럭 전의 상위 코드(C1_d)이다. 제2부호부(132)의 입력(A)에 입력되는 비제로 계수는 상위 코드(C1)이다. 제2부호부(132)의 입력(Z)에 입력되는 제로 런렝스는 값이 0이다. 제2부호부(132)는 중간 코드 세트의 상위 코드(C1), 하위 코드(C0) 양쪽이 비제로 계수일 때에만 동작하여 하프만 부호를 출력한다.As shown in FIG. 6, the non-zero coefficient input to the input A of the 1st code part 131 is an upper code C1 or a lower code C0. The zero run length input to the input Z of the first coder 131 is 0, a lower code C0, or an upper code C1_d before one clock. The nonzero coefficient input to the input A of the second code part 132 is the high order code C1. The zero run length input to the input Z of the second coder 132 has a value of zero. The second code unit 132 operates only when both the upper code C1 and the lower code C0 of the intermediate code set are non-zero coefficients to output a half-man code.

제1부호부(131)와 제2부호부(132)의 입력(A)은 비제로 계수이다. 2조의 중간 코드로 이루어진 중간 코드 세트 중 하위 코드(C0)에 비제로 계수가 있을 때에는 하위 코드(C0)의 비제로 계수가 제1부호부(131)의 입력(A)에 입력된다. 하위 코드(C0)에 비제로 계수가 있고 상위 코드(C1)에도 비제로 계수가 있을 때에는 하위 코드(C0)의 비제로 계수가 제1부호부(131)의 입력(A)에 입력되고 상위 코드(C1)의 비제로 계수가 제2부호부(132)의 입력(A)에 입력된다. 하위 코드(C0)에 제로 런렝스가 있고 상위 코드(C1)에 비제로 계수가 있을 때에는 상위 코드(C1)의 비제로 계수가 제1부호부(131)의 입력(A)에 입력된다.The inputs A of the first coder 131 and the second coder 132 are non-zero coefficients. When there is a nonzero coefficient in the lower code C0 of the intermediate code set consisting of two sets of intermediate codes, the nonzero coefficient of the lower code C0 is input to the input A of the first code unit 131. When the lower code C0 has a nonzero coefficient and the higher code C1 also has a nonzero coefficient, the nonzero coefficient of the lower code C0 is input to the input A of the first code part 131 and the higher code. The nonzero coefficient of (C1) is input to the input A of the second code unit 132. When there is a zero run length in the lower code C0 and a nonzero coefficient in the upper code C1, the nonzero coefficient of the upper code C1 is input to an input A of the first code unit 131.

제1부호부(131)의 입력(Z)은 제로 런렝스로서, 제1부호부(131)의 입력(A)에 입력되는 비제로 계수의 직전의 제로 런렝스이다. 예를 들면, 제1부호부(131)의 입력(A)가 하위 코드(C0)의 비제로 계수로서, 하위 코드(C0)의 직전의 1클럭 지연된 상위 코드(C1_d)에 제로 런렝스가 있을 때에는 C1_d의 제로 런렝스가 제1부호부(131)의 입력(Z)에 입력된다. 또 제1부호부(131)의 입력(A)이 하위 코드(C0)의 비제로 계수로서, 하위 코드(C0)의 직전의 1클럭 지연된 상위 코드(C1_d)에 비제로 계수가 있을 때에는 입력(A)에 입력되는 비제로 계수의 직전의 제로 런렝스는 0이다. 따라서 제로 런렝스값=0이 제1부호부(131)의 입력(Z)에 입력된다. 또 제1부호부(131)의 입력(A)이 상위 코드(C1)의 비제로 계수일 때에는 하위 코드(C0)의 제로 런렝스가 제1부호부(131)의 입력(Z)에 입력된다.The input Z of the first code part 131 is zero run length, and is the zero run length immediately before the non-zero coefficient input to the input A of the first code part 131. For example, the input A of the first code unit 131 is a non-zero coefficient of the lower code C0, and there is zero run length in the upper code C1_d delayed immediately before the lower code C0. In this case, the zero run length of C1_d is input to the input Z of the first code unit 131. In addition, when the input A of the first code unit 131 is a nonzero coefficient of the lower code C0, and there is a nonzero coefficient in the higher code C1_d immediately delayed by the lower code C0, the input ( The zero run length immediately before the nonzero coefficient input to A) is zero. Therefore, the zero run length value = 0 is input to the input Z of the first code part 131. When the input A of the first code part 131 is a non-zero coefficient of the higher code C1, the zero run length of the lower code C0 is input to the input Z of the first code part 131. .

제2부호부(132)의 입력(Z)은 제로 런렝스로서, 제2부호부(132)의 입력(A)에 입력되는 비제로 계수의 직전의 제로 런렝스이다. 제2부호부(132)의 입력(A),(Z)에 입력이 이루어질 때에는 중간 코드 세트의 상위 코드(C1), 하위 코드(C0) 양쪽이 비제로 계수일 때이다. 따라서 제2부호부(132)의 입력(A)에 입력되는 비제로 계수의 직전의 제로 런렝스는 0이므로 제로 런렝스값=0이 제2부호부(132)의 입력(Z)에 입력된다.The input Z of the second code part 132 is zero run length, and is the zero run length immediately before the non-zero coefficient input to the input A of the second code part 132. When an input is made to the inputs A and Z of the second coder 132, both of the upper code C1 and the lower code C0 of the intermediate code set are non-zero coefficients. Therefore, since the zero run length immediately before the non-zero coefficient input to the input A of the second code part 132 is zero, the zero run length value = 0 is input to the input Z of the second code part 132. .

셀렉터들(121,122)에서의 입력 전환은 중간 코드에 포함되는 ID에 기초하여 실행된다. 셀렉터들(121,122)은 중간 코드 세트가 입력되면 중간 코드 세트에 포함되는 상위 코드의 ID인 ID1, 하위 코드의 ID인 ID0, 1클럭 전의 상위 코드의 ID인 ID1_d의 조합에 의해 입력(A) 및 입력(Z)의 입력을 전환한다. ID의 조합과, 입력되는 중간 코드의 종류의 관계를 도 7에 도시한다. 도 7은, ID의 조합과, 입력되는 중간 코드의 종류의 관계를 도시한 표이다.Input switching in the selectors 121, 122 is executed based on the ID included in the intermediate code. When the middle code set is input, the selectors 121 and 122 are input (A) by a combination of ID1, which is an ID of a higher code included in the intermediate code set, ID0, which is an ID of a lower code, and ID1_d, which is an ID of an upper code 1 clock before, and Switch the input of the input Z. 7 shows a relationship between the combination of IDs and the types of intermediate codes to be input. Fig. 7 is a table showing the relationship between the combination of IDs and the types of intermediate codes to be input.

예를 들면, 조합이 (ID1,ID0,ID1_d)=(0,1,0)이면, 상위 코드(C1)가 제로 런렝스, 하위 코드(C0)가 비제로 계수, 1클럭 전의 상위 코드(C1_d)가 제로 런렝스이다. 도 4에 도시한 예에서는, 예를 들면 계수가 0→0→0→0→6→0→0→0의 부분으로서(도 4(A)), 중간 코드는 1클럭 전의 상위 코드(C1_d)가 4, 하위 코드(C0)가 6, 상위 코드(C1)가 3이다(도 4(B)). 이 때, 도 7에 의하면 제1부호부(131)에는 입력(A)으로서 하위 코드(C0)가 입력되고 입력(Z)으로서 1클럭 전의 상위 코드(C1_d)가 입력된다. 제2부호부(132)는 사용하지 않는다.For example, if the combination is (ID1, ID0, ID1_d) = (0, 1, 0), the upper code C1 is zero run length, the lower code C0 is nonzero coefficient, and the upper code C1_d one clock before. ) Is zero run length. In the example shown in Fig. 4, for example, the coefficient is a part of 0 → 0 → 0 → 0 → 6 → 0 → 0 → 0 (Fig. 4 (A)), and the intermediate code is the higher code C1_d before one clock. Is 4, lower code C0 is 6, and upper code C1 is 3 (FIG. 4B). At this time, according to FIG. 7, the lower code C0 is input to the first code unit 131 as the input A, and the upper code C1_d one clock before the input Z is input. The second coder 132 is not used.

예를 들면, 조합이 (ID1,ID0,ID1_d)=(1,0,1)이면, 상위 코드(C1)가 비제로 계수, 하위 코드(C0)가 제로 런렝스, 1 클럭 전의 상위 코드(C1_d)가 비제로 계수 이다. 도 4에 도시한 예에서는, 예를 들면 계수가 2→0→1의 부분으로서(도 4(A)), 중간 코드는 1클럭 전의 상위 코드(C1_d)가 2, 하위 코드(C0)가 1, 상위 코드(C1)이 1이다(도 4(B)). 이 때, 도 7에 의하면 제1부호부(131)에는 입력(A)로서 상위 코드(C1)이 입력되고, 입력(Z)로서 하위 코드(C0)가 입력된다. 제2부호부(132)는 사용하지 않는다.For example, if the combination is (ID1, ID0, ID1_d) = (1, 0, 1), the upper code C1 is nonzero coefficient, the lower code C0 is zero run length, and the higher code C1_d one clock ago. ) Is the nonzero coefficient. In the example shown in FIG. 4, for example, the coefficient is a part of 2 → 0 → 1 (FIG. 4 (A)), and the intermediate code has 2 high codes C1_d before one clock and 2 low codes C0. , The higher code C1 is 1 (Fig. 4 (B)). At this time, according to FIG. 7, the upper code C1 is input to the first code unit 131 as the input A, and the lower code C0 is input to the input Z. As shown in FIG. The second coder 132 is not used.

또한 예를 들면, 조합이 (ID1,ID0,ID1_d)=(1,1,1)이면, 상위 코드(C1)이 비제로 계수, 하위 코드(C0)가 비제로 계수, 1 클럭 전의 상위 코드(C1_d)가 비제로 계수이다. 도 4에 도시한 예에서는, 예를 들면 계수가 1→1→2의 부분으로서(도 4(A)), 중간 코드는 1클럭 전의 상위 코드(C1_d)가 1, 하위 코드(C0)가 1, 상위 코드(C1)이 2이다(도 4(B)). 이 때 도 7에 의하면 제1부호부(131)에는 입력(A)로서 하위 코드(C0)가 입력되고, 입력(Z)로서 값 0이 입력된다. 제2부호부(132)에는 입력(A)로서 상위 코드(C1)이 입력되고 입력(Z)로서 값0이 입력된다.For example, if the combination is (ID1, ID0, ID1_d) = (1, 1, 1), the upper code C1 has a nonzero coefficient, the lower code C0 has a nonzero coefficient, and the upper code (1 clock before) C1_d) is the nonzero coefficient. In the example shown in Fig. 4, for example, the coefficient is 1 → 1 → 2 as a part (Fig. 4 (A)), and the intermediate code has 1 higher code C1_d before 1 clock and 1 lower code C0. , The higher code C1 is 2 (Fig. 4 (B)). In this case, according to FIG. 7, the lower code C0 is input to the first coder 131 as the input A, and the value 0 is input as the input Z. FIG. The upper code C1 is input to the second coder 132 as the input A, and a value 0 is input as the input Z.

아울러, 도 7에 없는 조합은 나타나지 않는 조합이다. 예를 들면 1클럭 전의 상위 코드가 제로 런렝스(ID가 0)인 경우, 하위 코드는 제로 런렝스가 되지 않고 하위 코드의 ID가 0이 되지 않는다. 중간 코드가 제로 런렝스 후에는 반드시 비제로 계수의 중간 코드가 되기 때문이다.In addition, the combination which is not shown in FIG. 7 is a combination which does not appear. For example, if the upper code before one clock is zero run length (ID is 0), the lower code does not become zero run length and the ID of the lower code does not become zero. This is because the intermediate code becomes the intermediate code of the non-zero coefficient after zero run length.

연결부(141)는, 제1부호부(131), 제2부호부(132)에서 출력된 하프만 부호를 비트 단위에서의 결합을 실행한다. 예를 들면, 제1부호부(131)에서 출력되는 하프만 부호가 11bit이고, 제2부호부(132)에서 출력되는 하프만 부호가 5bit일 때에는 연결부(141)는 16bit가 결합된 하프만 부호를 출력한다.The connection unit 141 combines the half-man code output from the first code unit 131 and the second code unit 132 in bit units. For example, when the half-man code output from the first code unit 131 is 11 bits and the half-man code output from the second code unit 132 is 5 bits, the connection unit 141 is a half-man code combined with 16 bits. Outputs

본 실시 형태에 의하면, 가변길이 부호화의 앞단에서 DCT계수의 비제로 계수, 제로 런렝스 및 각각의 식별자(ID)로 이루어진 중간 코드를 생성한다. 그리고 가변길이 부호화부(107)에서 복수의 부호부들을 구비함으로써 부호화에 필요한 처리 시간을 단축할 수 있다. 예를 들면, 중간 코드를 2개 조합하여 1 조의 중간 코드 세트로 하고 부호부를 2개 설치함으로써 부호화에 필요한 처리 클럭수를 1/2 이하로 억제할 수 있다.According to this embodiment, an intermediate code consisting of non-zero coefficients, zero run lengths, and respective identifiers (ID) of the DCT coefficients is generated at the front end of the variable length encoding. In addition, the variable length encoder 107 includes a plurality of code units, thereby reducing processing time required for encoding. For example, by combining two intermediate codes into a set of intermediate codes and providing two code units, the number of processing clocks required for encoding can be suppressed to 1/2 or less.

또한 상술한 특허문헌 1의 기술에서는 화상 데이터를 양자화한 후의 계수를 일단 버퍼에 저장한 후, 지그재그 스캔(zigzag scan)을 하고 제로 런렝스와 비제로 계수를 조합하여 하나의 계수를 생성하였다. 그러나 이 처리의 순서에는 지그재그 스캔후에 양자화를 하는 경우에 비해 반대로 처리 클럭수가 증가된다는 문제가 있었다. 반면, 본 실시형태에 의하면 지그재그 스캔후에 양자화되기 때문에 특허문헌 1과 같이 처리 클럭수가 증가된다는 문제가 없다.In addition, in the technique of Patent Document 1 described above, the coefficients after quantizing the image data are stored in the buffer once, followed by a zigzag scan and combining one of the zero run length and the nonzero coefficients to generate one coefficient. However, this processing procedure has a problem that the number of processing clocks increases in contrast to the case of quantization after a zigzag scan. On the other hand, according to this embodiment, since it is quantized after a zigzag scan, there is no problem that the number of processing clocks increases as in Patent Document 1.

[제1실시형태의 제1변경예][First Modified Example of First Embodiment]

다음으로, 본 발명의 제1실시형태에 관한 화상 부호화 장치(100)의 제1변경예에 대해서 설명하기로 한다.Next, a first modified example of the picture coding apparatus 100 according to the first embodiment of the present invention will be described.

상술한 화상 부호화 장치(100)에서는 2조의 중간 코드를 하나의 중간 코드 세트로 하는 경우에 대해서 설명하였으나, 본 발명은 상기 예로 한정되지 않는다. 예를 들면 3조의 중간 코드를 하나의 중간 코드 세트로 하는 등 3조 이상의 중반 코드를 1세트로 해도 좋다.In the above-described image coding apparatus 100, the case where two sets of intermediate codes are set as one intermediate code set has been described. However, the present invention is not limited to the above examples. For example, three sets of intermediate codes may be set as one set, such as three sets of intermediate codes as one intermediate code set.

우선, 3조의 중간 코드를 하나의 중간 코드 세트로 하는 경우에 대해서 설명 하기로 한다. 이 경우, 가변길이 부호화부(107)는 도 8에 도시한 바와 같이 3개의 부호부, 즉 제1부호부(231), 제2부호부(232), 제3부호부(233)를 포함할 수 있다. 도 8은, 본 실시형태의 가변길이 부호화부(107)의 변경예를 도시한 블럭도이다.First, the case where three sets of intermediate codes are set as one intermediate code set will be described. In this case, the variable length encoder 107 may include three code units, that is, a first code unit 231, a second code unit 232, and a third code unit 233, as shown in FIG. 8. Can be. 8 is a block diagram showing a modification of the variable length coding unit 107 of the present embodiment.

우선, 중간 코드 생성부(105)는 비제로 계수와 제로 런렝스에 기초하여 비제로 계수의 값 또는 제로 런렝스의 값과 식별자(ID)로 이루어진 중간 코드를 생성한다. 생성된 중간 코드는 제2버퍼(106)를 통해 가변길이 부호화부(107)에 보내진다. 본 변경예에서는 3조의 중간 코드를 1세트(중간 코드 세트)로 한다.First, the intermediate code generator 105 generates an intermediate code including a value of a nonzero coefficient or a value of a zero run length and an identifier ID based on the nonzero coefficient and zero run length. The generated intermediate code is sent to the variable length encoder 107 through the second buffer 106. In this modification, three sets of intermediate codes are set as one set (intermediate code set).

다음으로 가변길이 부호화부(107)에 의한 부호화에 대해서 설명하기로 한다. 제2버퍼(106)에 입력된 3조의 중간 코드로 이루어진 중간 코드 세트 중, 하위쪽 중간 코드부터 C0, C1, C2로 하고, 각각의 ID를 ID0, ID1, ID2로 한다. 또 1클럭 지연된 최상위 코드는 말미에 _d를 붙이고, 예를 들면 C2_d, 그 ID를 ID2_d로 나타낸다.Next, the encoding by the variable length encoder 107 will be described. Of the intermediate code sets consisting of three sets of intermediate codes input to the second buffer 106, the lower intermediate codes are set to C0, C1, and C2, and each ID is set to ID0, ID1, and ID2. The most significant code delayed by one clock is appended with _d at the end, for example, C2_d and its ID as ID2_d.

가변길이 부호화부(107)는, 도 8에 도시한 바와 같이 셀렉터들(221,222,223,224), 제1부호부(231), 제2부호부(232), 제3부호부(233), 연결부(241)를 구비한다. 1 세트(중간 코드 세트)에 포함되는 중간 코드가 3조인 경우, 가변길이 부호화부(107)의 부호부는 3개로 이루어졌기 때문에 가변길이 부호화부(107)는 제1부호부(231)과 제2부호부(232)와 제3부호부(233)를 가진다.As shown in FIG. 8, the variable length encoder 107 includes selectors 221, 222, 223, and 224, a first code unit 231, a second code unit 232, a third code unit 233, and a connection unit 241. It is provided. In the case where there are three sets of intermediate codes included in one set (intermediate code set), the variable length encoder 107 is composed of three code parts, so that the variable length encoder 107 is the first code part 231 and the second code. It has a code part 232 and the 3rd code part 233. As shown in FIG.

제1부호부(231), 제2부호부(232), 제3부호부(233)는 비제로 계수와 제로 런렝스에 기초하여, 예를 들면 2차원 하프만 테이블을 참조하여 하프만 부호를 출력한다. 제1부호부(231), 제2부호부(232), 제3부호부(233)는 중간 코드에 포함되는 ID의 조합에 기초하여 앞단의 셀렉터들(221,222,223,224)에서 전환하여 입력(A) 및 입력(Z)의 입력 처리를 한다.The first code unit 231, the second code unit 232, and the third code unit 233 may refer to a two-dimensional half-man table based on a non-zero coefficient and zero run length, for example, to obtain a half-man code. Output The first coder 231, the second coder 232, and the third coder 233 are switched from the selectors 221, 222, 223, and 224 based on a combination of IDs included in the intermediate code to input (A) and Input processing of input Z is performed.

도 8에 도시한 바와 같이, 제1부호부(231)의 입력(A)에 입력되는 비제로 계수는 중위 코드(C1) 또는 하위 코드(C0)이다. 제1부호부(231)의 입력(Z)에 입력되는 제로 런렝스는 값이 0, 하위 코드(C0) 또는 1클럭 전의 상위 코드(C2_d)이다. 제2부호부(232)의 입력(A)에 입력되는 비제로 계수는 상위 코드(C2) 또는 중위 코드(C1)이다. 제2부호부(232)의 입력(Z)에 입력되는 제로 런렝스는 값이 0 또는 중위 코드(C1)이다. 제3부호부(233)의 입력(A)에 입력되는 비제로 계수는 상위 코드(C2)이다. 제3부호부(233)의 입력(Z)에 입력되는 제로 런렝스는 값이 0이다. 제3부호부(233)는 중간 코드 세트의 중간 코드들(C2,C1,C0) 전부가 비제로 계수일 때에만 동작하여 하프만 부호를 출력한다.As shown in FIG. 8, the non-zero coefficient input to the input A of the 1st code part 231 is the median code C1 or the lower code C0. The zero run length input to the input Z of the first coder 231 is 0, a lower code C0, or an upper code C2_d before one clock. The nonzero coefficient input to the input A of the second code part 232 is the higher code C2 or the median code C1. The zero run length input to the input Z of the second coder 232 is 0 or the median code C1. The nonzero coefficient input to the input A of the third code portion 233 is the higher code C2. The zero run length input to the input Z of the third coder 233 has a value of zero. The third coder 233 operates only when all of the intermediate codes C2, C1, and CO0 of the intermediate code set are non-zero coefficients, and outputs a half-man code.

제1부호부(231), 제2부호부(232) 및 제3부호부(233)의 입력(A)는 비제로 계수이다. 3조의 중간 코드로 이루어진 중간 코드 세트 중 비제로 계수는 하위쪽 비제로 계수부터 상위쪽 비제로 계수의 순서로 제1부호부(231)→제2부호부(232)→제3부호부(233)의 순번으로 입력(A)의 입력에 할당된다. 예를 들면, 하위 코드(C0)는 제로 런렝스로서, 중위 코드(C1)에 비제로 계수가 있을 때에는 중위 코드(C1)의 비제로 계수가 제1부호부(231)의 입력(A)에 입력된다. 하위 코드(C0)에 비제로 계수가 있고 중위 코드(C1)에도 비제로 계수가 있을 때에는 하위 코드(C0)의 비제로 계수가 제1부호부(231)의 입력(A)에 입력되고, 중위 코드(C1)의 비제로 계수가 제2부호부(232)의 입력(A)에 입력된다. 중간 코드들(C2,C1,C0) 전부가 비제로 계수일 때 에는 하위쪽 중간 코드의 비제로 계수부터 순서대로 제1부호부(231)의 입력(A)에 입력되고, 중위 코드(C1)의 비제로 계수가 제2부호부(232)의 입력(A)에 입력되고, 상위 코드(C2)의 비제로 계수가 제3부호부(233)의 입력(A)에 입력된다.The inputs A of the first code part 231, the second code part 232, and the third code part 233 are non-zero coefficients. The nonzero coefficient of the intermediate code set consisting of three sets of intermediate codes is the first code part 231 → the second code part 232 → the third code part 233 in the order of the lower nonzero coefficient to the upper nonzero coefficient. Are assigned to the input of the input (A). For example, the lower code C0 is zero run length, and when the median code C1 has a nonzero coefficient, the nonzero coefficient of the median code C1 is input to the input A of the first code part 231. Is entered. When the lower code C0 has a nonzero coefficient and the median code C1 also has a nonzero coefficient, the nonzero coefficient of the lower code C0 is input to an input A of the first code part 231, and the median. The nonzero coefficient of the code C1 is input to an input A of the second code portion 232. When all of the intermediate codes C2, C1, and C0 are nonzero coefficients, they are input to the input A of the first code part 231 in order from the nonzero coefficients of the lower intermediate codes, and the intermediate codes C1. The nonzero coefficient of is input to the input A of the second code part 232, and the nonzero coefficient of the higher code C2 is input to the input A of the third code part 233.

제1부호부(231)의 입력(Z)은 제로 런렝스로서, 제1부호부(231)의 입력(A)에 입력되는 비제로 계수 직전의 제로 런렝스이다. 예를 들면, 제1부호부(231)의 입력(A)가 하위 코드(C0)의 비제로 계수로서, 하위 코드(C0) 직전의 1 클럭 지연된 상위 코드(C2_d)에 제로 런렝스가 있을 때에는 C2_d의 제로 런렝스가 제1부호부(231)의 입력(Z)에 입력된다. 또한, 제1 부호부(231)의 입력(A)가 하위 코드(C0)의 비제로 계수로서, 하위 코드(C0) 직전의 1 클럭 지연된 상위 코드(C2_d)에 비제로 계수가 있을 때에는 입력(A)에 입력되는 비제로 계수 직전의 제로 런렝스는 0이다. 따라서 제로 런렝스값=0이 제1부호부(231)의 입력(Z)에 입력된다. 또한 제1 부호부(231)의 입력(A)가 중위 코드(C1)의 비제로 계수일 때에는 하위 코드(C0)의 제로 런렝스가 제1 부호부(231)의 입력(Z)에 입력된다.The input Z of the first code part 231 is zero run length, and is the zero run length immediately before the non-zero coefficient input to the input A of the first code part 231. For example, when the input A of the first code part 231 is a nonzero coefficient of the lower code C0, and there is zero run length in the upper code C2_d delayed by one clock immediately before the lower code C0, The zero run length of C2_d is input to the input Z of the first code unit 231. In addition, when the input A of the first code part 231 is a nonzero coefficient of the lower code C0, and there is a nonzero coefficient in the upper code C2_d delayed by one clock immediately before the lower code C0, the input ( The zero run length immediately before the nonzero coefficient input to A) is zero. Accordingly, the zero run length value = 0 is input to the input Z of the first code part 231. When the input A of the first code part 231 is a non-zero coefficient of the median code C1, the zero run length of the lower code C0 is input to the input Z of the first code part 231. .

제2 부호부(232)의 입력(Z)는 제로 런렝스로서, 제2 부호부(232)의 입력(A)에 입력되는 비제로 계수 직전의 제로 런렝스이다. 예를 들면, 제2 부호부(232)의 입력(A)가 상위 코드(C2)의 비제로 계수로서, 상위 코드(C2)의 직전 중위 코드(C1)에 비제로 계수가 있을 때에는 입력(A)에 입력되는 비제로 계수 직전의 제로 런렝스는 0이다. 따라서 제로 런렝스값=0이 제2 부호부(232)의 입력(Z)에 입력된다. 또한, 제2 부호부(232)의 입력(A)가 중위 코드(C1)의 비제로 계수일 때에는 제로 런렝스값=0이 제2 부호부(232)의 입력(Z)에 입력된다.The input Z of the second code part 232 is zero run length, which is the zero run length immediately before the non-zero coefficient input to the input A of the second code part 232. For example, when the input A of the second code part 232 is a nonzero coefficient of the higher code C2, and there is a nonzero coefficient in the immediately preceding infix code C1 of the higher code C2, the input A The zero run length just before the non-zero coefficient input to) is zero. Therefore, the zero run length value = 0 is input to the input Z of the second code part 232. When the input A of the second code part 232 is a non-zero coefficient of the median code C1, the zero run length value = 0 is input to the input Z of the second code part 232.

제3 부호부(233)의 입력(Z)는 제로 런렝스로서, 제3 부호부(233)의 입력(A)에 입력되는 비제로 계수 직전의 제로 런렝스이다. 제3 부호부(233)의 입력들(A,Z)에 입력이 이루어질 때에는 중간 코드 세트의 상위 코드(C2), 중위 코드(C1), 하위 코드(C0) 전부가 비제로 계수일 때이다. 따라서 제3 부호부(233)의 입력(A)에 입력되는 비제로 계수의 직전의 제로 런렝스는 0이므로 제로 런렝스값=0이 제3 부호부(233)의 입력(Z)에 입력된다.The input Z of the third code part 233 is zero run length, and is the zero run length immediately before the non-zero coefficient input to the input A of the third code part 233. An input is made to the inputs A and Z of the third coder 233 when the upper code C2, the middle code C1, and the lower code C0 of the intermediate code set are all non-zero coefficients. Therefore, since the zero run length immediately before the non-zero coefficient input to the input A of the third code part 233 is zero, the zero run length value = 0 is input to the input Z of the third code part 233. .

셀렉터들(221,222,223,224)에서의 입력 전환은 중간 코드에 포함되는 ID에 기초하여 이루어진다. 셀렉터들(221,222,223,224)는 중간 코드 세트가 입력되면 중간 코드 세트에 포함되는 상위 코드의 ID인 ID2, 중위 코드의 ID인 ID1, 하위 코드의 ID인 ID0, 1 클럭 전의 상위 코드의 ID인 ID2_d의 조합에 의해 입력(A) 및 입력(Z)의 입력을 전환한다. ID의 조합과, 입력되는 중간 코드의 종류의 관계를 도 9에 도시한다. 도 9는 ID의 조합과, 입력되는 중간 코드의 종류의 관계를 도시한 표이다.Input switching at the selectors 221, 222, 223, 224 is made based on the ID included in the intermediate code. The selectors 221, 222, 223, and 224, when an intermediate code set is input, a combination of an ID2 of an upper code, ID1 of an intermediate code, ID0 of an ID code, and ID2_d of an ID code 1 clock before the intermediate code set is input. The input of the input A and the input Z is switched by. 9 shows a relationship between the combination of IDs and the types of intermediate codes to be input. 9 is a table showing the relationship between the combination of IDs and the types of intermediate codes to be input.

예를 들면, 조합이 (ID2,ID1,ID0,ID2_d)=(0,1,1,0)이면 상위 코드(C2)가 제로 런렝스, 중위 코드(C1)가 비제로 계수, 하위 코드(C0)가 비제로 계수, 1 클럭 전의 상위 코드(C2_d)가 제로 런렝스이다. 이 때, 도 9에 의하면 제1 부호부(231)에는 입력(A)로서 하위 코드(C0)가 입력되고, 입력(Z)로서 1 클럭 전의 상위 코드(C2_d)가 입력된다. 제2 부호부(232)에는 입력(A)로서 하위 코드(C1)가 입력되고, 입력(Z)로서 값 0이 입력된다. 제3 부호부(233)는 사용하지 않는다.For example, if the combination is (ID2, ID1, ID0, ID2_d) = (0,1,1,0), the upper code (C2) is zero run length, the infix code (C1) is nonzero coefficient, and the lower code (C0). ) Is a non-zero coefficient, and the higher code C2_d one clock before is zero run length. At this time, according to FIG. 9, the lower code C0 is input to the first coder 231 as the input A, and the upper code C2_d one clock before is input as the input Z. FIG. The lower code C1 is input to the second coder 232 as the input A, and the value 0 is input as the input Z. The third coder 233 is not used.

또 예를 들면, 조합이 (ID2,ID1,ID0,ID1_d)=(1,0,1,0)이면 상위 코드(C2)가 비제로 계수, 중위 코드(C1)가 제로 런렝스, 하위 코드(C0)가 비제로 계수, 1클럭 전의 상위 코드(C2_d)가 제로 런렝스이다. 이 때, 도 9에 의하면 제1부호부(231)에는 입력(A)로서 하위 코드(C0)가 입력되고, 입력(Z)로서 1클럭 전의 상위 코드(C2_d)가 입력된다. 제2 부호부(232)에는 입력(A)로서 상위 코드(C2)가 입력되고, 입력(Z)로서 중위 코드(C1)이 입력된다. 제3 부호부(233)는 사용하지 않는다.For example, if the combination is (ID2, ID1, ID0, ID1_d) = (1, 0, 1, 0), the upper code (C2) is non-zero coefficient, the median code (C1) is zero run length, and the lower code ( C0) is the non-zero coefficient, and the upper code C2_d before one clock is zero run length. At this time, according to FIG. 9, the lower code C0 is input to the first coder 231 as the input A, and the upper code C2_d one clock before the input Z is input. The upper code C2 is input to the second coder 232 as the input A, and the median code C1 is input to the input Z. The third coder 233 is not used.

예를 들면, 조합이 (ID2,ID1,ID0,ID1_d)=(1,1,0,1)이면 상위 코드(C2)가 비제로 계수, 중위 코드(C1)가 비제로 계수, 하위 코드(C0)가 제로 런렝스, 1 클럭 전의 상위 코드(C2_d)가 비제로 계수이다. 이 때, 도 9에 의하면 제1 부호부(231)에는 입력(A)로서 중위 코드(C1)가 입력되고, 입력(Z)로서 하위 코드(C0)가 입력된다. 제2 부호부(232)에는 입력(A)로서 상위 코드(C2)가 입력되고, 입력(Z)로서 하위 코드(C0)이 입력된다. 제3 부호부(233)는 사용하지 않는다.For example, if the combination is (ID2, ID1, ID0, ID1_d) = (1,1,0,1), the upper code (C2) is the nonzero coefficient, the infix code (C1) is the nonzero coefficient, and the lower code (C0). ) Is zero run length, and the upper code C2_d one clock before is a nonzero coefficient. At this time, according to FIG. 9, the median code C1 is input to the first code part 231 as the input A, and the lower code C0 is input to the input Z. As shown in FIG. The upper code C2 is input to the second coder 232 as the input A, and the lower code C0 is input as the input Z. The third coder 233 is not used.

연결부(241)는 제1 부호부(231), 제2 부호부(232), 제3 부호부(233)에서 출력된 하프만 부호를 비트 단위로 결합한다. 예를 들면, 제1 부호부(231)에서 출력되는 하프만 부호가 11bit이고, 제2 부호부(232)에서 출력되는 하프만 부호가 5bit이고, 제3 부호부(233)에서 하프만 부호가 출력되지 않을 때에는 연결부(241)는 16bit의 결합된 하프만 부호를 출력한다.The connection unit 241 combines the half-man code output from the first code unit 231, the second code unit 232, and the third code unit 233 in units of bits. For example, the half-man code output from the first code part 231 is 11 bits, the half-man code output from the second code part 232 is 5 bits, and the half-man code is output from the third code part 233. When not output, the connection unit 241 outputs a combined 16-bit half-sign.

본 변경예에 의하면, 가변길이 부호화의 앞단에서 DCT계수의 비제로 계수, 제로 런렝스 및 각각의 식별자(ID)로 이루어진 중간 코드를 생성한다. 그리고 중간 코드를 3개 조합하여 1조의 중간 코드 세트로 하고 부호부를 3개 설치함으로써 부호화에 필요한 처리 클럭수를 1/3 이하로 억제할 수 있다.According to this modification, an intermediate code consisting of nonzero coefficients, zero run lengths, and respective identifiers (ID) of the DCT coefficients is generated at the front of the variable length encoding. By combining three intermediate codes into a set of intermediate codes and providing three code units, the number of processing clocks required for encoding can be reduced to 1/3 or less.

[제1실시형태의 제2변경예]Second Modification of First Embodiment

4조 이상의 중반 코드를 포함한 하나의 중간 코드 세트의 경우에도, 상술한 2조 또는 3조의 중간 코드를 포함한 중간 코드 세트의 경우와 동일하게 처리할 수 있다. 예를 들면 4조의 중간 코드를 하나의 중간 코드 세트로 할 경우 가변길이 부호화부(107)는, 도 10에 도시한 바와 같이 4개의 부호부들, 즉 제1부호부(331), 제2부호부(332), 제3부호부(333), 제4부호부(334)를 구비할 수 있다. 도 10은 부호화하는 가변길이 부호화부(107)의 변경예를 도시한 블럭도이다.Even in the case of one intermediate code set including four or more sets of mid codes, the same process can be performed as in the case of the intermediate code set including two or three sets of intermediate codes. For example, when four sets of intermediate codes are set as one intermediate code set, the variable length encoding unit 107 has four code units, that is, a first code unit 331 and a second code unit, as shown in FIG. 332, a third reference unit 333, and a fourth reference unit 334 may be provided. 10 is a block diagram showing a modification of the variable length encoder 107 to be encoded.

우선, 중간 코드 생성부(105)는 비제로 계수와 제로 런렝스에 기초하여 비제로 계수의 값 또는 제로 런렝스의 값과 ID로 이루어진 중간 코드를 생성한다. 생성된 중간 코드는 제2 버퍼(106)를 통해 가변길이 부호화부(107)에 보내진다. 본 변경예에서는 4조의 중간 코드를 1세트(중간 코드 세트)로 한다.First, the intermediate code generator 105 generates an intermediate code including a value of the nonzero coefficient or a value of the zero run length and an ID based on the nonzero coefficient and the zero run length. The generated intermediate code is sent to the variable length encoder 107 through the second buffer 106. In this modification, four sets of intermediate codes are set as one set (intermediate code set).

다음으로 가변길이 부호화부(107)에 의한 부호화에 대해서 설명하기로 한다. 제2 버퍼(106)에 입력된 4조의 중간 코드로 이루어진 중간 코드 세트 중, 하위쪽 중간 코드부터 C0, C1, C2, C3로 하고, 각각의 ID를 ID0, ID1, ID2, ID3로 한다. 또 1 클럭 지연된 최상위 코드는 말미에 _d를 붙이고, 예를 들면 C3_d, 그 ID를 ID3_d로 나타낸다.Next, the encoding by the variable length encoder 107 will be described. Of the intermediate code sets consisting of four sets of intermediate codes input to the second buffer 106, the lower intermediate codes are set to C0, C1, C2, and C3, and each ID is set to ID0, ID1, ID2, and ID3. The most significant code delayed by one clock is appended with _d at the end, for example, C3_d and its ID as ID3_d.

가변길이 부호화부(107)는, 도 10에 도시한 바와 같이 셀렉터들(321,322,323,324,325,326), 제1부호부(331), 제2부호부(332), 제3부호부(333), 제4부호부(334), 연결부(341)를 가진다. 1 세트(중간 코드 세트)에 포함되는 중간 코드가 4조인 경우, 가변길이 부호화부(107)의 부호부들은 4개로 이루어졌기 때문 에 가변길이 부호화부(107)는 제1 부호부(331)와 제2 부호부(332)와 제3 부호부(333)와 제4 부호부(334)를 구비한다.As shown in FIG. 10, the variable length encoder 107 includes selectors 321, 322, 323, 324, 325, 326, a first code part 331, a second code part 332, a third code part 333, and a fourth code part. 334 and a connection portion 341. In the case where there are four sets of intermediate codes included in one set (intermediate code set), the variable length encoder 107 is composed of four code units because the variable length encoder 107 is composed of four code units. The 2nd code part 332, the 3rd code part 333, and the 4th code part 334 are provided.

제1 부호부(331), 제2 부호부(332), 제3 부호부(333), 제4 부호부(334)는 비제로 계수와 제로 런렝스에 기초하여, 예를 들면 2차원 하프만 테이블을 참조하여 하프만 부호를 출력한다. 제1 부호부(331), 제2 부호부(332), 제3 부호부(333), 제4 부호부(334)는 중간 코드에 포함되는 ID의 조합에 기초하여 앞단의 셀렉터들(321,322,323,324,325,326)에서 전환하여 입력(A) 및 입력(Z)의 입력 처리를 한다.The first code part 331, the second code part 332, the third code part 333, and the fourth code part 334 are based on a non-zero coefficient and zero run length, for example, only a two-dimensional half. Outputs the half-man code by referring to the table. The first coder 331, the second coder 332, the third coder 333, and the fourth coder 334 are selectors 321, 322, 323, 324, 325 and 326 based on a combination of IDs included in the intermediate code. The input processing of input A and Z is performed by switching from to.

도 10에 도시한 바와 같이, 제1 부호부(331)의 입력(A)에 입력되는 비제로 계수는 중간 코드(C1) 또는 (C0)이다. 제1 부호부(331)의 입력(Z)에 입력되는 제로 런렝스는 값이 0, 중간 코드(C0) 또는 (C3_d)이다. 제2 부호부(332)의 입력(A)에 입력되는 비제로 계수는 중간 코드(C3),(C2) 또는 코드(C1)이다. 제2 부호부(332)의 입력(Z)에 입력되는 제로 런렝스는 값이 0, 중간 코드(C2) 또는 (C1)이다. 제3 부호부(333)의 입력(A)에 입력되는 비제로 계수는 중간 코드(C3) 또는 (C2)이다. 제3 부호부(333)의 입력(Z)에 입력되는 제로 런렝스는 값이 0 또는 중간 코드(C2)이다. 제4 부호부(334)의 입력(A)에 입력되는 비제로 계수는 중간 코드(C3)이다. 제4 부호부(334)의 입력(Z)에 입력되는 제로 런렝스는 값이 0이다. 제4 부호부(334)는 중간 코드 세트의 중간 코드(C3),(C2),(C1),(C0) 전부가 비제로 계수일 때에만 동작하여 하프만 부호를 출력한다.As shown in FIG. 10, the non-zero coefficient input to the input A of the 1st code part 331 is intermediate code C1 or C0. The zero run length input to the input Z of the first coder 331 is 0, and the intermediate code C0 or (C3_d). The nonzero coefficient input to the input A of the second code part 332 is the intermediate code C3, C2 or code C1. The zero run length input to the input Z of the second coder 332 is 0, the intermediate code C2, or C1. The nonzero coefficient input to the input A of the third code part 333 is the intermediate code C3 or C2. The zero run length input to the input Z of the third coder 333 is 0 or an intermediate code C2. The nonzero coefficient input to the input A of the fourth code part 334 is the intermediate code C3. The zero run length input to the input Z of the fourth coder 334 has a value of zero. The fourth code part 334 operates only when all of the intermediate codes C3, C2, C1, and C0 of the intermediate code set are non-zero coefficients, and outputs a half-man code.

제1 부호부(331), 제2 부호부(332), 제3 부호부(333) 및 제4 부호부(334)의 입력(A)는 비제로 계수이다. 4조의 중간 코드로 이루어진 중간 코드 세트 중 비제로 계수는 하위쪽 비제로 계수부터 상위쪽 비제로 계수의 순서대로 제1 부호부(331)→제2 부호부(332)→제3 부호부(333)→제4 부호부(334)의 순번으로 입력(A)의 입력에 할당된다.The input A of the 1st code part 331, the 2nd code part 332, the 3rd code part 333, and the 4th code part 334 is a non-zero coefficient. The nonzero coefficient of the intermediate code set consisting of four sets of intermediate codes is the first code part 331 → the second code part 332 → the third code part 333 in the order of the lower nonzero coefficient to the upper nonzero coefficient. ? Is assigned to the input of the input A in the order of the fourth code part 334.

제1 부호부(331)의 입력(Z)는 제로 런렝스로서, 제1 부호부(331)의 입력(A)에 입력되는 비제로 계수의 직전의 제로 런렝스이다. 제2 부호부(332)의 입력(Z)는 제로 런렝스로서, 제2 부호부(332)의 입력(A)에 입력되는 비제로 계수의 직전의 제로 런렝스이다. 제3 부호부(333)의 입력(Z)는 제로 런렝스로서, 제3 부호부(333)의 입력(A)에 입력되는 비제로 계수의 직전의 제로 런렝스이다. 제4 부호부(334)의 입력(Z)는 제로 런렝스로서, 제4 부호부(334)의 입력(A)에 입력되는 비제로 계수의 직전의 제로 런렝스이다.The input Z of the first code part 331 is zero run length and is the zero run length immediately before the non-zero coefficient input to the input A of the first code part 331. The input Z of the second code part 332 is zero run length and is the zero run length immediately before the non-zero coefficient input to the input A of the second code part 332. The input Z of the third code part 333 is zero run length and is the zero run length immediately before the non-zero coefficient input to the input A of the third code part 333. The input Z of the fourth code part 334 is zero run length and is the zero run length immediately before the non-zero coefficient input to the input A of the fourth code part 334.

셀렉터들(321,322,323,324,325,326)에서의 입력 전환은 중간 코드에 포함된 ID에 기초하여 이루어진다. 셀렉터들(321,322,323,324,325,326)는 중간 코드 세트가 입력되면 중간 코드 세트에 포함된 ID3, ID2, ID1, ID0, ID3_d의 조합에 의해 입력(A) 및 입력(Z)의 입력을 전환한다. ID의 조합과, 입력되는 중간 코드의 종류의 관계를 도 11에 도시한다. 도 11은, ID의 조합과, 입력되는 중간 코드의 종류의 관계를 도시한 표이다.Input switching at selectors 321, 322, 323, 324, 325, 326 is made based on the ID included in the intermediate code. The selectors 321, 322, 323, 324, 325, 326 switch input (A) and input (Z) by a combination of ID3, ID2, ID1, ID0, and ID3_d included in the intermediate code set when the intermediate code set is input. 11 shows a relationship between the combination of IDs and the types of intermediate codes to be input. 11 is a table showing the relationship between the combination of IDs and the types of intermediate codes to be input.

예를 들면, 조합이 (ID3,ID2,ID1,ID0,ID2_d)=(1,0,1,1,0)이면, C3이 비제로 계수, C2가 제로 런렝스, C1이 비제로 계수, C0가 비제로 계수, 1클럭 전의 C3_d가 제로 런렝스이다. 이 때 도 11에 도시한 바와 같이 제1 부호부(331)에는 입력(A)로 서 C0가 입력되고, 입력(Z)로서 1클럭 전의 C3_d가 입력된다. 제2 부호부(332)에는 입력(A)로서 C1이 입력되고, 입력(Z)로서 값0이 입력된다. 제3 부호부(333)에는 입력(A)로서 C3가 입력되고, 입력(Z)로서 C2가 입력된다. 제4 부호부(334)는 사용하지 않는다.For example, if the combination is (ID3, ID2, ID1, ID0, ID2_d) = (1,0,1,1,0), then C3 is nonzero coefficient, C2 is zero run length, C1 is nonzero coefficient, C0 The nonzero coefficient, C3_d before one clock, is zero run length. At this time, as shown in Fig. 11, C0 is input to the first code part 331 as the input A, and C3_d one clock before the input Z is input. C1 is input to the second coder 332 as the input A, and a value 0 is input to the input Z. C3 is input to the third coder 333 as the input A, and C2 is input to the input Z. The fourth code part 334 is not used.

연결부(341)는 제1 부호부(331), 제2 부호부(332), 제3 부호부(333), 제4 부호부(334)에서 출력된 하프만 부호를 비트 단위로 결합한다. 예를 들면, 제1 부호부(331)에서 출력되는 하프만 부호가 11bit이고 제2 부호부(332)에서 출력되는 하프만 부호가 5bit이고, 제3 부호부(333) 및 제4 부호부(334)에서 하프만 부호가 출력되지 않을 때에는 연결부(341)는 16bit가 결합된 하프만 부호를 출력한다.The connection unit 341 combines the half-man code output from the first code unit 331, the second code unit 332, the third code unit 333, and the fourth code unit 334 in bit units. For example, the half-man code output from the first code part 331 is 11 bits, the half-man code output from the second code part 332 is 5 bits, and the third code part 333 and the fourth code part ( When the half-man code is not output in 334, the connection unit 341 outputs a half-man code in which 16 bits are combined.

본 변경예에 의하면 가변길이 부호화의 앞단에서 DCT계수의 비제로 계수, 제로 런렝스 및 각각의 식별자(ID)로 이루어진 중간 코드를 생성한다. 그리고 중간 코드를 4개 조합하여 1조의 중간 코드 세트로 하고 부호부를 4개 설치함으로써 부호화에 필요한 처리 클럭수를 1/3 이하로 억제할 수 있다.According to this modification, an intermediate code consisting of non-zero coefficients, zero run lengths, and respective identifiers (ID) of the DCT coefficients is generated at the front of the variable length encoding. By combining four intermediate codes into one set of intermediate codes and providing four code units, the number of processing clocks required for encoding can be reduced to 1/3 or less.

(제2실시형태)(2nd Embodiment)

다음으로 도 12를 참조하여 본 발명의 제2실시형태에 관한 화상 부호화 장치(200)에 대해서 설명하기로 한다. 도 12는, 본 실시형태에 관한 화상 부호화 장치(200)의 구성을 도시한 블럭도이다.Next, with reference to FIG. 12, the image coding apparatus 200 which concerns on 2nd Embodiment of this invention is demonstrated. 12 is a block diagram showing the configuration of the picture coding apparatus 200 according to the present embodiment.

화상 부호화 장치(200)는, 예를 들면 2차원 DCT부(401)와, 제1 버퍼들(402-1,402-2)과, 지그재그 스캔부들(403-1,403-2)과, 양자화부들(404-1,404-2)과, 중간 코드 생성부들(405-1,405-2)과, 제2 버퍼들(406-1,406-2)과, 가변길이 부호화 부(407)를 구비한다. The image encoding apparatus 200 may be, for example, a two-dimensional DCT unit 401, first buffers 402-1, 402-2, zigzag scan units 403-1, 403-2, and quantization units 404-. 1,404-2, intermediate code generators 405-1 and 405-2, second buffers 406-1 and 406-2, and variable length encoder 407.

본 실시형태의 화상 부호화 장치(200)는 제1 실시형태의 화상 부호화 장치(100)와 달리 제1 버퍼들(402-1,402-2)에서 제2 버퍼들(406-1,406-2)까지의 각 기능 블럭이 병렬되어 2계통으로 구성된다. 제1 버퍼들(402-1,402-2)과, 지그재그 스캔부들(403-1,403-2)과, 양자화부들(404-1,404-2)과, 중간 코드 생성부들(405-1,405-2)과, 제2 버퍼들(406-1,406-2)의 구성 및 작용은 제1 실시형태의 제1버퍼(102)와, 지그재그 스캔부(103)와, 양자화부(104)와, 중간 코드 생성부(105)와, 제2버퍼(106)와 동일하기 때문에 상세한 설명은 생략한다.Unlike the picture coding apparatus 100 of the first embodiment, the picture coding apparatus 200 according to the present embodiment has angles from the first buffers 402-1 and 402-2 to the second buffers 406-1 and 406-2. The functional blocks are arranged in parallel in two systems. First buffers 402-1 and 402-2, zigzag scan units 403-1 and 403-2, quantization units 404-1 and 404-2, intermediate code generators 405-1 and 405-2, and The configuration and operation of the two buffers 406-1 and 406-2 are the first buffer 102, the zigzag scan unit 103, the quantization unit 104, and the intermediate code generator 105 of the first embodiment. Since it is the same as that of the second buffer 106, detailed description thereof will be omitted.

2차원 DCT부(401)는 화상 데이터를 DCT변환하여 8×8화소의 블럭마다 8×8의 DCT계수 블럭을 생성한다. 2차원 DCT부(401)는 생성한 DCT계수 블럭을 번갈아 제1버퍼(402-1)와 제1버퍼(402-2)로 출력한다. 도 13은, 본 실시형태의 화상 부호화 장치(200)의 동작을 도시한 타이밍 차트이다. 도 13에서의 「BLK」란 블럭의 약칭이다.The two-dimensional DCT unit 401 performs DCT conversion on the image data to generate 8 × 8 DCT coefficient blocks for each 8 × 8 pixel block. The two-dimensional DCT unit 401 alternately outputs the generated DCT coefficient blocks to the first buffer 402-1 and the first buffer 402-2. 13 is a timing chart showing the operation of the picture coding apparatus 200 according to the present embodiment. "BLK" in FIG. 13 is an abbreviation of block.

2차원 DCT부(401)는 제1 실시형태의 2차원 DCT부(101)에 비해 예를 들면 2배속으로 실행한다. 예를 들면 2차원 DCT부(401)는 하나의 DCT계수 블럭을 32클럭 이내에서 처리한다.The two-dimensional DCT unit 401 is executed at twice the speed, for example, than the two-dimensional DCT unit 101 of the first embodiment. For example, the two-dimensional DCT unit 401 processes one DCT coefficient block within 32 clocks.

제1버퍼들(402-1,402-2)로부터 제2 버퍼들(406-1,406-2)까지의 각 기능 블럭이 병렬되어 2계통으로 구성됨으로써 지그재그 스캔부터 중간 코드 생성까지의 처리에 대해서 실질 1DCT계수 블럭을 32클럭 이내에서 처리할 수 있다.Each functional block from the first buffers 402-1 and 402-2 to the second buffers 406-1 and 406-2 is configured in parallel to form a real 1DCT coefficient for processing from zigzag scan to intermediate code generation. A block can be processed within 32 clocks.

그리고 가변길이 부호화부(407)는 중간 코드에 기초하여 DCT계수를 하프만 부호화한다. 가변길이 부호화부(407)는 제1 실시형태의 가변길이 부호화부(107)와 동일하게 부호부를 여러 개 갖기 때문에 부호화에 필요한 클럭수를 데이터수의 1/2 이하로 억제할 수 있다. 따라서 지그재그 스캔부터 중간 코드 생성까지의 처리를, 실질 1DCT계수 블럭을 32클럭 이내에서 처리한다고 해도 가변길이 부호화부(407)는 하나의 DCT계수 블럭의 부호화를 마친 후에 다음 DCT계수 블럭의 부호화를 개시할 수 있다.The variable length encoder 407 encodes only the half of the DCT coefficient based on the intermediate code. Since the variable length encoder 407 has a plurality of code units in the same way as the variable length encoder 107 of the first embodiment, the number of clocks required for encoding can be suppressed to 1/2 or less of the number of data. Therefore, even if the processing from the zigzag scan to the intermediate code generation and the actual 1DCT coefficient block are processed within 32 clocks, the variable length encoder 407 starts encoding the next DCT coefficient block after completing encoding of one DCT coefficient block. can do.

따라서 제2 실시형태에 의하면 제1 실시형태와 같이 부호화뿐만 아니라 예를 들면 JPEG 전체의 부호화를 2배속으로 실행할 수 있다. 도 14는 종래의 화상 부호화 장치의 동작을 도시한 타이밍 차트이다. 종래에는 가변길이 부호화의 처리 클럭수는 2차원 DCT의 처리 클럭수와 같았다.Therefore, according to the second embodiment, not only the encoding but also the encoding of the entire JPEG, for example, can be performed at twice the speed as in the first embodiment. 14 is a timing chart showing the operation of the conventional picture coding apparatus. Conventionally, the number of processing clocks of variable length coding is the same as the number of processing clocks of two-dimensional DCT.

아울러 지그재그 스캔부터 중간 코드 생성까지의 처리가 병렬되어 3계통 이상에서 실행되고, 그 계통수에 맞춰 가변길이 부호화부(407)가 부호부를 3개 이상 가질 경우에는 JPEG 전체의 부호 처리를 더욱 단축할 수 있다.In addition, when the processing from zigzag scan to intermediate code generation is parallel and executed in three or more systems, and the variable length encoder 407 has three or more code parts according to the system number, the entire JPEG process can be further shortened. have.

이상, 첨부 도면을 참조하여 본 발명의 바람직한 실시형태에 대해서 상세히 설명하였으나, 본 발명은 상기 예로 한정되지 않는다. 본 발명이 속한 기술분야에서 통상의 지식을 가진 자라면, 특허청구범위에 기재된 기술적 사상의 범주 내에서 각종 변경예 또는 수정예를 생각해낼 수 있는 것은 명백하며 이들에 대해서도 당연히 본 발명의 기술적 범위에 속한 것으로 이해된다.As mentioned above, although preferred embodiment of this invention was described in detail with reference to an accompanying drawing, this invention is not limited to the said example. Those skilled in the art to which the present invention pertains can clearly conceive of various changes or modifications within the scope of the technical idea described in the claims, and of course these also fall within the technical scope of the present invention. It is understood to belong.

도 1은 본 발명의 제1실시형태에 관한 화상 부호화 장치의 구성을 도시한 블럭도이다.1 is a block diagram showing the configuration of a picture coding apparatus according to a first embodiment of the present invention.

도 2는 8×8의 DCT계수 블럭 및 DCT계수 블럭에서의 지그재그 스캔을 도시한 도면이다.FIG. 2 is a diagram illustrating a zigzag scan in 8x8 DCT coefficient blocks and DCT coefficient blocks.

도 3은 동 실시형태의 제2버퍼에 저장되는 중간 코드의 배치를 도시한 도면이다.3 is a diagram showing an arrangement of intermediate codes stored in the second buffer of the embodiment.

도 4는 시계열 순서대로 배치된 양자화후의 DCT계수(A)와, 양자화후의 DCT계수에서 생성된 중간 코드(B)를 도시한 도면이다.4 is a diagram illustrating a DCT coefficient A after quantization and an intermediate code B generated after the quantization DCT coefficients arranged in time series order.

도 5는 제2버퍼와, 제2버퍼에서 중간 코드를 독출하는 가변길이 부호화부를 도시한 블럭도이다.5 is a block diagram illustrating a second buffer and a variable length encoder which reads an intermediate code from the second buffer.

도 6은 동 실시형태의 가변길이 부호화부를 도시한 블럭도이다.6 is a block diagram showing a variable length coding unit of the embodiment.

도 7은 ID의 조합과, 입력되는 중간 코드의 종류의 관계를 도시한 도면이다.7 is a diagram illustrating a relationship between a combination of IDs and types of intermediate codes to be input.

도 8은 동 실시형태의 가변길이 부호화부의 변경예를 도시한 블럭도이다.8 is a block diagram showing a modification of the variable length coding unit of the embodiment.

도 9는 ID의 조합과, 입력되는 중간 코드의 종류의 관계를 도시한 도면이다.9 is a diagram illustrating a relationship between a combination of IDs and types of intermediate codes to be input.

도 10은 부호화를 실행하는 가변길이 부호화부의 변경예를 도시한 블럭도이다.Fig. 10 is a block diagram showing a modification of the variable length encoder which executes encoding.

도 11은 ID의 조합과, 입력되는 중간 코드의 종류의 관계를 도시한 도면이다.11 is a diagram illustrating a relationship between a combination of IDs and types of intermediate codes to be input.

도 12는 본 발명의 제2실시형태에 관한 화상 부호화 장치의 구성을 도시한 블럭도이다.12 is a block diagram showing the structure of a picture coding apparatus according to a second embodiment of the present invention.

도 13은 동 실시형태의 화상 부호화 장치의 동작을 도시한 타이밍 차트이다.13 is a timing chart showing the operation of the picture coding apparatus of the embodiment.

도 14는 종래의 화상 부호화 장치의 동작을 도시한 타이밍 차트이다.14 is a timing chart showing the operation of the conventional picture coding apparatus.

** 도면의 주요 부분에 대한 부호의 간단한 설명 **** Brief description of symbols for the main parts of the drawing **

100,200 화상 부호화 장치100,200 picture coding device

101,401 2차원 DCT부101,401 2-D DCT Part

102,402-1,402-2 제1버퍼102,402-1,402-2 First buffer

103,403-1,403-2 지그재그 스캔부103,403-1,403-2 Zigzag Scan

104,404-1,404-2 양자화부104,404-1,404-2 Quantizer

105,405-1,405-2 중간 코드 생성부105,405-1,405-2 intermediate code generator

106,406-1,406-2 제2버퍼106,406-1,406-2 Second buffer

107,407 가변길이 부호화부107,407 variable length encoder

110 분리부110 separation

111 지연부111 delay

121,122,221,222,223,224,321,322,323,324,325,326 셀렉터121,122,221,222,223,224,321,322,323,324,325,326 Selector

131,231,331 제1부호부131,231,331 First Sign

132,232,332 제2부호부132,232,332 Second Code

141,241,341 연결부141,241,341 connections

233,333 제3부호부233,333 Third Code

334 제4부호부334 4th Code

Claims (3)

화상 데이터를 직교 변환하여 직교 변환 계수를 생성하는 직교 변환부;An orthogonal transform unit which orthogonally transforms the image data to generate orthogonal transform coefficients; 상기 직교 변환 계수를 양자화하여 양자화 계수를 생성하는 양자화부;A quantizer configured to quantize the quadrature transform coefficients to generate quantization coefficients; 상기 양자화 계수의 값이 제로(0)인 제로 계수의 연속수를 나타내는 제로 런렝스와, 상기 제로 계수의 뒤를 잇는 양자화 계수의 값이 제로가 아닌 비제로 계수를 검출하는 계수 검출부;A zero run length indicating a continuous number of zero coefficients in which the value of the quantization coefficient is zero, and a coefficient detection unit detecting a non-zero coefficient in which the value of the quantization coefficient following the zero coefficient is not zero; 순차적으로 검출된 상기 비제로 계수 또는 상기 제로 런렝스를 2 이상의 소정수마다 차례대로 조합하고 상기 비제로 계수 및 상기 제로 런렝스 중 어느 것인지를 식별하는 식별자를 상기 비제로 계수 및 상기 제로 런렝스마다 부여하여 중간 코드를 생성하는 중간 코드 생성부;The non-zero coefficient and the zero run length are each identified by an identifier that sequentially combines the non-zero coefficients or the zero run lengths which are sequentially detected every two or more predetermined numbers, and identifies which of the non-zero coefficients and the zero run lengths. An intermediate code generation unit configured to generate an intermediate code; 상기 중간 코드의 상기 비제로 계수 또는 상기 제로 런렝스와 상기 식별자에 기초하여 각각 하나의 상기 비제로 계수와 하나의 상기 제로 런렝스가 입력되어 가변길이 부호화 처리를 행하고, 상기 소정수와 적어도 동일한 개수로 형성되는 복수의 부호화부들;을 포함하는 화상 부호화 장치.One non-zero coefficient and one zero run length are respectively input based on the non-zero coefficient or the zero run length and the identifier of the intermediate code to perform a variable length encoding process, the number being at least equal to the predetermined number. And a plurality of encoding units formed of a plurality of encoding units. 제1항에 있어서, 상기 양자화부, 상기 계수 검출부 및 상기 중간 코드 생성부 각각은 복수 개로 포함하여, The apparatus of claim 1, wherein each of the quantization unit, the coefficient detection unit, and the intermediate code generation unit is provided in plurality. 상기 직교 변환 데이터가 양자화부 각각과, 각 계수 검출부들 각각과, 중간 코드 생성부들 각각을 통해 병렬 처리되는 것을 특징으로 하는 화상 부호화 장치.And the orthogonal transform data is processed in parallel through each of the quantization unit, each of the coefficient detection units, and each of the intermediate code generators. 입력된 화상 데이터를 직교 변환하여 직교 변환 계수를 생성하는 단계,Orthogonally transforming the input image data to generate orthogonal transform coefficients, 상기 직교 변환 계수를 양자화하여 양자화 계수를 생성하는 단계,Quantizing the quadrature transform coefficients to generate quantization coefficients, 상기 양자화 계수의 값이 제로(0)인 제로 계수의 연속수를 나타내는 제로 런렝스와, 상기 제로 계수의 뒤를 잇는 상기 양자화 계수의 값이 제로가 아닌 비제로 계수를 검출하는 단계,Detecting a zero run length indicating a continuous number of zero coefficients in which the value of the quantization coefficient is zero, and a non-zero coefficient in which the value of the quantization coefficient following the zero coefficient is not zero; 순차적으로 검출된 상기 비제로 계수 또는 상기 제로 런렝스를 2 이상의 소정수마다 차례대로 조합하고 상기 비제로 계수 및 상기 제로 런렝스 중 어느 것인지를 식별하는 식별자를 상기 비제로 계수 및 상기 제로 런렝스마다 부여하여 중간 코드를 생성하는 단계,The non-zero coefficient and the zero run length are each identified by an identifier that sequentially combines the non-zero coefficients or the zero run lengths which are sequentially detected every two or more predetermined numbers, and identifies which of the non-zero coefficients and the zero run lengths. To generate intermediate code, 상기 중간 코드의 상기 비제로 계수 또는 상기 제로 런렝스와 상기 식별자에 기초하여 각각 하나의 상기 비제로 계수와 하나의 상기 제로 런렝스가 부호부들 각각에 입력되고 상기 부호부들 각각에서 가변길이 부호화 처리를 행하는 단계를 포함하는 화상 부호화 방법.Based on the non-zero coefficient of the intermediate code or the zero run length and the identifier, one non-zero coefficient and one zero run length are respectively input to each of the code parts, and a variable length encoding process is performed on each of the code parts. An image encoding method comprising the step of performing.
KR20090068407A 2008-11-26 2009-07-27 Appratus for coding an image and method for coding the image KR20100059665A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008301333A JP5230375B2 (en) 2008-11-26 2008-11-26 Image coding apparatus and image coding method
JPJP-P-2008-301333 2008-11-26

Publications (1)

Publication Number Publication Date
KR20100059665A true KR20100059665A (en) 2010-06-04

Family

ID=42330299

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20090068407A KR20100059665A (en) 2008-11-26 2009-07-27 Appratus for coding an image and method for coding the image

Country Status (2)

Country Link
JP (1) JP5230375B2 (en)
KR (1) KR20100059665A (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE108587T1 (en) * 1986-09-13 1994-07-15 Philips Nv METHOD AND CIRCUIT ARRANGEMENT FOR BIT RATE REDUCTION.
US5021891A (en) * 1990-02-27 1991-06-04 Qualcomm, Inc. Adaptive block size image compression method and system
JPH06237448A (en) * 1993-02-12 1994-08-23 Toshiba Corp Variable length coder and decoder
JP3787836B2 (en) * 2001-10-15 2006-06-21 日本電気株式会社 Additional information insertion device, additional information extraction device, additional information insertion method, and additional information extraction method
JP2003174366A (en) * 2001-12-04 2003-06-20 Sony Corp Data decoding device and its method

Also Published As

Publication number Publication date
JP2010130213A (en) 2010-06-10
JP5230375B2 (en) 2013-07-10

Similar Documents

Publication Publication Date Title
US11671599B2 (en) Data encoding and decoding
KR102060871B1 (en) Palette Mode Context Coding and Binarization in Video Coding
AU2021221878B2 (en) Method and device for entropy encoding, decoding video signal
RU2637879C2 (en) Encoding and decoding of significant coefficients depending on parameter of indicated significant coefficients
RU2417518C2 (en) Efficient coding and decoding conversion units
US8867614B2 (en) Image coding method and image decoding method
CN111083476B (en) Method for encoding and decoding video data, and video data encoder and decoder
JP2016528789A (en) Data encoding and decoding
KR20080082147A (en) Method and apparatus for context adaptive binary arithmetic coding and decoding
US9544599B2 (en) Context adaptive data encoding
JP2016006961A (en) System and method for compressing stream of integer-valued data
WO2013068731A1 (en) Data encoding and decoding
EP2088784A1 (en) Encoding device and encoding method
JPH07170517A (en) Picture compression coder
WO2013068733A1 (en) Context adaptive data encoding
JP3562661B2 (en) Image signal encoding method and image signal decoding method
KR20100059665A (en) Appratus for coding an image and method for coding the image
JPH04100390A (en) High efficient encoding system
KR101676420B1 (en) Data compression and restoration method and apparatus
JPH10163880A (en) Data decoder
KR0185849B1 (en) The variable length encoder
JP2005176169A (en) Video coding method and apparatus
JP2018142843A (en) Image decoding device
KR19990003697A (en) End signal generator of line length encoder
JPH02184172A (en) Bit plane encoding system

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E601 Decision to refuse application