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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/93—Run-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
Description
본 발명은 화상 부호화 장치 및 화상 부호화 방법에 관한 것이다.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,
[특허문헌 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
그러나 이 방법으로는 제로 계수가 길게 연속되어 있을 때, 즉 제로 런렝스가 클 때에는 처리 클럭수의 삭감 효과가 있지만, 비제로 계수가 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-
2차원 DCT부(101)는 입력된 화상 데이터를 DCT변환(이산 코사인 변환: Discrete Cosine Transform)(직교 변환)하여 DCT계수를 생성한다. 여기에서 입력되는 화상 데이터란, 예를 들면 촬상소자에서 출력된 화상 신호를 8×8화소의 블럭으로 분할하여 블럭화 처리한 데이터이다. 2차원 DCT부(101)가 화상 데이터를 DCT변환함으로써 8×8화소의 블럭마다 8×8의 DCT계수 블럭이 생성된다.The two-
제1버퍼(102)는 2차원 DCT부(101)에서 생성된 DCT계수의 데이터를 DCT계수 블럭 단위로 저장한다.The
지그재그 스캔부(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
양자화부(104)는, 지그재그 스캔부(103)에서 지그재그 스캔에 의해 독출된 DCT계수를 소정의 양자화값으로 양자화한다. 양자화부(104)는 양자화된 DCT계수를 중간 코드 생성부(105)에 보낸다. 이 때, 양자화된 DCT계수는 양자화부(104)에 출력된 후, 버퍼 등에 일시적으로 저장되지 않고 직접 중간 코드 생성부(105)에 전송된다.The
중간 코드 생성부(105)는 양자화된 DCT계수에 기초하여 중간 코드를 생성한다. 중간 코드는 DCT계수의 비제로 계수, 제로 런렝스 및 각각의 식별자(ID)로 이루어진다. 중간 코드 생성부(105)는 생성한 중간 코드를 제2버퍼(106)에 보낸다.The
제2버퍼(106)는 중간 코드 생성부(105)에 생성된 중간 코드를 저장한다.The
가변길이 부호화부(107)는 제2버퍼(106)에서 중간 코드를 독출하여 중간 코드의 비제로 계수, 제로 런렝스를 나타내는 ID에 기초하여 비제로 계수, 제로 런렝스를 판별한다. 그리고 가변길이 부호화부(107)는 비제로 계수, 제로 런렝스에 기초하여 하프만 부호를 생성하고 생성한 하프만 부호를 출력한다. 본 실시형태의 가변길이 부호화부(107)는, 후술하는 바와 같이 1세트(중간 코드 세트)에 포함되는 중간 코드의 수에 대응하여 복수의 부호부들을 구비한다. 예를 들면, 1세트에 포함되는 중간 코드가 2조인 경우에는 가변길이 부호화부(107)의 2개의 부호부들을 구비할 수 있다.The
[중간 코드의 생성][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
한편, 중간 코드 생성부(105)는 DCT계수가 제로 계수라고 판별했을 때에는 비제로 계수 뒤에 연속되는 제로 계수의 수를, 다음에 비제로 계수가 판별될 때까지 열거한다. 그리고 중간 코드 생성부(105)는 열거한 제로 계수의 수를 제로 런렝스로서 출력한다. 또한, 중간 코드 생성부(105)는 출력값이 제로 런렝스임을 나타내는 식별자(ID)를 출력한다. 본 실시형태에서 제로 런렝스임을 나타내는 ID는 「0」이라고 하였다. 중간 코드 생성부(105)는, 제로 런렝스의 값과 ID를 조합하여 1조의 중간 코드를 생성한다. ID는 중간 코드의 MSB(최상위 비트: most significant bit)에 부가된다.On the other hand, when the intermediate
[중간 코드의 배치]Placement of Intermediate Code
다음으로, 도 3을 참조하여 제2버퍼(106)에 저장되는 중간 코드의 배치에 대해서 설명하기로 한다. 도 3은, 본 실시형태의 제2버퍼(106)에 저장되는 중간 코드 의 배치를 도시한 설명도이다.Next, the arrangement of the intermediate codes stored in the
제2버퍼(106)는 시계열에서 연속되는 여러 개의 중간 코드를 시간적으로 선행하는 것을 하위에 배치하고, 시간적으로 후행하는 것을 상위에 배치하여 저장한다. 본 실시형태에서는 2조의 중간 코드를 1세트(중간 코드 세트)로 한다. 도 3에서는 1세트를 1줄로 나타냈다. 도 3의 「계수 데이터」란, 비제로 계수의 값을 나타내고, 「제로 런렝스」란, 제로 런렝스의 값을 나타낸다. 본 실시형태에서 중간 코드의 비제로 계수의 값 또는 제로 런렝스의 값은 11bit로 표현한다. 또한, ID는 1bit로 표현한다. 따라서 본 실시형태에서는 1조의 중간 코드는 12bit로 표현하고 2조의 중간 코드를 맞춘 하나의 중간 코드 세트는 24bit로 표현한다. 따라서 하나의 DCT계수 블럭은 64의 DCT계수로 이루어지기 때문에 중간 코드의 버퍼 용량은 최대 768bit(=12bit×64)이면 충분하다.The
한편, 특허문헌 1에서 제로 런렝스와 비제로 계수를 조합하여 생성하는 하나의 계수는, 제로 런렝스를 나타내는 4bit와 비제로 계수를 나타내는 11bit를 합한 15bit로 표현한다. 따라서 계수의 버퍼 용량은 최대 960bit(=15bit×64)가 된다. 따라서 본 실시형태의 중간 코드의 버퍼 용량은 특허문헌 1에 비해 적은 용량으로도 충분하다.On the other hand, in
도 4를 참조하여 중간 코드 생성부(105)에 생성되는 중간 코드의 일례를 설명하기로 한다. 도 4는 시계열 순서대로 배치된 양자화 후의 DCT계수(A)와, 양자화 후의 DCT계수에서 생성된 중간 코드(B)를 도시한 설명도이다.An example of an intermediate code generated in the intermediate
중간 코드는 도 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
가변길이 부호화부(107)는, 도 5에 도시한 바와 같이 분리부(110)를 가진다. 분리부(110)는 제2버퍼(106)에 저장된 중간 코드 세트로부터, 상위에 배치된 중간 코드(상위 코드)와, 하위에 배치된 중간 코드(하위 코드)를 분리한다. 또한, 분리부(110)는 지연부(DFF: D형 플립플롭)(111)를 포함한다. 지연부(111)는 하나 선행하는 중간 코드 세트 중 상위 코드가 입력되고, 입력된 상위 코드를 1클럭 지연시켜 출력한다. 이로써 지연된 상위 코드가 제로 런렝스였을 때 지연된 상위 코드와 하위 코드로 부호화할 수 있다. 이상으로부터 분리부(110)는 상위 코드, 하위 코드 및 1클럭 지연된 상위 코드를 동시에 출력한다.The variable
[가변길이 부호화부(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
가변길이 부호화부(107)는, 도 6에 도시한 바와 같이 셀렉터들(121,122), 제1부호부(131), 제2부호부(132) 및 연결부(141)를 가진다. 1세트(중간 코드 세트)에 포함되는 중간 코드가 2조인 경우, 가변길이 부호화부(107)는 제1부호부(131)와 제2부호부(132)를 구비할 수 있다.The
제1부호부(131), 제2부호부(132)의 입력에서의 「A」는 비제로 계수의 입력을 나타내고, 「Z」는 제로 런렝스의 입력을 나타낸다. 제1부호부(131), 제2부호부(132)는 비제로 계수와 제로 런렝스에 기초하여, 예를 들면 2차원 하프만 테이블을 참조하여 하프만 부호를 출력한다. 제1부호부(131), 제2부호부(132)에서의 하프만 부호화는, 계수가 제로(제로 계수)일 때의 제로의 수(제로 런렝스)와, 제로 계수의 뒤를 잇는 제로가 아닌 비제로 계수와의 조합을 발생 빈도가 높은 순서대로 코드 길이가 짧은 코드를 할당한다. 이로써 효율적인 부호화를 실행할 수 있다."A" in the input of the
제1부호부(131)는 중간 코드에 포함되는 ID의 조합에 기초하여 앞단의 셀렉터들(121,122)에서 전환하여 입력(A) 및 입력(Z)의 입력 처리를 한다.The
도 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
제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
제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
제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
셀렉터들(121,122)에서의 입력 전환은 중간 코드에 포함되는 ID에 기초하여 실행된다. 셀렉터들(121,122)은 중간 코드 세트가 입력되면 중간 코드 세트에 포함되는 상위 코드의 ID인 ID1, 하위 코드의 ID인 ID0, 1클럭 전의 상위 코드의 ID인 ID1_d의 조합에 의해 입력(A) 및 입력(Z)의 입력을 전환한다. ID의 조합과, 입력되는 중간 코드의 종류의 관계를 도 7에 도시한다. 도 7은, ID의 조합과, 입력되는 중간 코드의 종류의 관계를 도시한 표이다.Input switching in the
예를 들면, 조합이 (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
예를 들면, 조합이 (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
또한 예를 들면, 조합이 (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
아울러, 도 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
본 실시 형태에 의하면, 가변길이 부호화의 앞단에서 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
또한 상술한 특허문헌 1의 기술에서는 화상 데이터를 양자화한 후의 계수를 일단 버퍼에 저장한 후, 지그재그 스캔(zigzag scan)을 하고 제로 런렝스와 비제로 계수를 조합하여 하나의 계수를 생성하였다. 그러나 이 처리의 순서에는 지그재그 스캔후에 양자화를 하는 경우에 비해 반대로 처리 클럭수가 증가된다는 문제가 있었다. 반면, 본 실시형태에 의하면 지그재그 스캔후에 양자화되기 때문에 특허문헌 1과 같이 처리 클럭수가 증가된다는 문제가 없다.In addition, in the technique of
[제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
우선, 중간 코드 생성부(105)는 비제로 계수와 제로 런렝스에 기초하여 비제로 계수의 값 또는 제로 런렝스의 값과 식별자(ID)로 이루어진 중간 코드를 생성한다. 생성된 중간 코드는 제2버퍼(106)를 통해 가변길이 부호화부(107)에 보내진다. 본 변경예에서는 3조의 중간 코드를 1세트(중간 코드 세트)로 한다.First, the
다음으로 가변길이 부호화부(107)에 의한 부호화에 대해서 설명하기로 한다. 제2버퍼(106)에 입력된 3조의 중간 코드로 이루어진 중간 코드 세트 중, 하위쪽 중간 코드부터 C0, C1, C2로 하고, 각각의 ID를 ID0, ID1, ID2로 한다. 또 1클럭 지연된 최상위 코드는 말미에 _d를 붙이고, 예를 들면 C2_d, 그 ID를 ID2_d로 나타낸다.Next, the encoding by the
가변길이 부호화부(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
제1부호부(231), 제2부호부(232), 제3부호부(233)는 비제로 계수와 제로 런렝스에 기초하여, 예를 들면 2차원 하프만 테이블을 참조하여 하프만 부호를 출력한다. 제1부호부(231), 제2부호부(232), 제3부호부(233)는 중간 코드에 포함되는 ID의 조합에 기초하여 앞단의 셀렉터들(221,222,223,224)에서 전환하여 입력(A) 및 입력(Z)의 입력 처리를 한다.The
도 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
제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
제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
제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
제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
셀렉터들(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
예를 들면, 조합이 (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
또 예를 들면, 조합이 (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
예를 들면, 조합이 (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
연결부(241)는 제1 부호부(231), 제2 부호부(232), 제3 부호부(233)에서 출력된 하프만 부호를 비트 단위로 결합한다. 예를 들면, 제1 부호부(231)에서 출력되는 하프만 부호가 11bit이고, 제2 부호부(232)에서 출력되는 하프만 부호가 5bit이고, 제3 부호부(233)에서 하프만 부호가 출력되지 않을 때에는 연결부(241)는 16bit의 결합된 하프만 부호를 출력한다.The
본 변경예에 의하면, 가변길이 부호화의 앞단에서 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
우선, 중간 코드 생성부(105)는 비제로 계수와 제로 런렝스에 기초하여 비제로 계수의 값 또는 제로 런렝스의 값과 ID로 이루어진 중간 코드를 생성한다. 생성된 중간 코드는 제2 버퍼(106)를 통해 가변길이 부호화부(107)에 보내진다. 본 변경예에서는 4조의 중간 코드를 1세트(중간 코드 세트)로 한다.First, the
다음으로 가변길이 부호화부(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
가변길이 부호화부(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
제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
도 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
제1 부호부(331), 제2 부호부(332), 제3 부호부(333) 및 제4 부호부(334)의 입력(A)는 비제로 계수이다. 4조의 중간 코드로 이루어진 중간 코드 세트 중 비제로 계수는 하위쪽 비제로 계수부터 상위쪽 비제로 계수의 순서대로 제1 부호부(331)→제2 부호부(332)→제3 부호부(333)→제4 부호부(334)의 순번으로 입력(A)의 입력에 할당된다.The input A of the
제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
셀렉터들(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
예를 들면, 조합이 (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
연결부(341)는 제1 부호부(331), 제2 부호부(332), 제3 부호부(333), 제4 부호부(334)에서 출력된 하프만 부호를 비트 단위로 결합한다. 예를 들면, 제1 부호부(331)에서 출력되는 하프만 부호가 11bit이고 제2 부호부(332)에서 출력되는 하프만 부호가 5bit이고, 제3 부호부(333) 및 제4 부호부(334)에서 하프만 부호가 출력되지 않을 때에는 연결부(341)는 16bit가 결합된 하프만 부호를 출력한다.The
본 변경예에 의하면 가변길이 부호화의 앞단에서 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-
본 실시형태의 화상 부호화 장치(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
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-
2차원 DCT부(401)는 제1 실시형태의 2차원 DCT부(101)에 비해 예를 들면 2배속으로 실행한다. 예를 들면 2차원 DCT부(401)는 하나의 DCT계수 블럭을 32클럭 이내에서 처리한다.The two-
제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
따라서 제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
이상, 첨부 도면을 참조하여 본 발명의 바람직한 실시형태에 대해서 상세히 설명하였으나, 본 발명은 상기 예로 한정되지 않는다. 본 발명이 속한 기술분야에서 통상의 지식을 가진 자라면, 특허청구범위에 기재된 기술적 사상의 범주 내에서 각종 변경예 또는 수정예를 생각해낼 수 있는 것은 명백하며 이들에 대해서도 당연히 본 발명의 기술적 범위에 속한 것으로 이해된다.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)
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)
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 |
-
2008
- 2008-11-26 JP JP2008301333A patent/JP5230375B2/en not_active Expired - Fee Related
-
2009
- 2009-07-27 KR KR20090068407A patent/KR20100059665A/en not_active Application Discontinuation
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 |