KR101377712B1 - Data processing apparatus for operating lens correction - Google Patents

Data processing apparatus for operating lens correction Download PDF

Info

Publication number
KR101377712B1
KR101377712B1 KR1020080019461A KR20080019461A KR101377712B1 KR 101377712 B1 KR101377712 B1 KR 101377712B1 KR 1020080019461 A KR1020080019461 A KR 1020080019461A KR 20080019461 A KR20080019461 A KR 20080019461A KR 101377712 B1 KR101377712 B1 KR 101377712B1
Authority
KR
South Korea
Prior art keywords
gain values
gain
block
data
memory
Prior art date
Application number
KR1020080019461A
Other languages
Korean (ko)
Other versions
KR20090094490A (en
Inventor
경규민
손봉기
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020080019461A priority Critical patent/KR101377712B1/en
Priority to US12/271,049 priority patent/US8266507B2/en
Publication of KR20090094490A publication Critical patent/KR20090094490A/en
Application granted granted Critical
Publication of KR101377712B1 publication Critical patent/KR101377712B1/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)

Abstract

적은 하드웨어 사이즈를 갖으면서 렌즈 보정 동작을 수행할 수 있는 데이터 처리 장치는 시드 메모리, 이득 메모리, 및 디코더를 포함한다. 상기 시드 메모리는 A*B 시드 매트릭스를 구성하는 다수의 암호화된 이득 값들을 저장하고, 상기 이득 메모리는 M*N 그리드 매트릭스를 구성하는 다수의 복호화된 이득 값들을 저장한다. 상기 디코더는 상기 시드 메모리와 상기 이득 메모리 사이에 접속되고, 두 번째 이후의 행 방향 RNP 디코딩을 수행하기 전에 열 방향 RNP 디코딩을 수행한다. 따라서, 상기 디코더는 상기 행 방향 RNP 디코딩과 상기 열 방향 RNP 디코딩을 번갈아 수행하면서 상기 A*B 시드 매트릭스로부터 상기 M*N 그리드 매트릭스를 디코딩할 수 있다.A data processing apparatus capable of performing a lens correction operation while having a small hardware size includes a seed memory, a gain memory, and a decoder. The seed memory stores a plurality of encrypted gain values constituting an A * B seed matrix, and the gain memory stores a plurality of decrypted gain values constituting an M * N grid matrix. The decoder is connected between the seed memory and the gain memory and performs column direction RNP decoding before performing second and subsequent row direction RNP decoding. Accordingly, the decoder may decode the M * N grid matrix from the A * B seed matrix while alternately performing the row direction RNP decoding and the column direction RNP decoding.

RNP 디코딩, 렌즈 보정 RNP decoding, lens correction

Description

렌즈 보정 연산을 수행할 수 있는 데이터 처리장치{Data processing apparatus for operating lens correction}Data processing apparatus for operating lens correction operation

본 발명은 데이터 보정 기술에 관한 것으로, 특히 RNP(Recursive Near Polynomial; RNP) 방식을 이용하여 부호화된 데이터를 덧셈과 쉬프트 연산을 사용하여 복호화할 수 있는 디코더와 상기 디코더를 포함하는 데이터 처리장치에 관한 것이다.The present invention relates to a data correction technique, and more particularly, to a decoder capable of decoding data encoded using a recursive near polynomial (RNP) method using addition and shift operations, and a data processing apparatus including the decoder. will be.

이미지 센서와 같은 이미지 처리장치에서, 더 정확한 렌즈 보정(lens correction)을 수행하기 위해서는 호스트로부터 렌즈 보정을 수행하는 데이터 처리장치로 보다 많은 양의 정보 전송이 필요하다.In an image processing apparatus such as an image sensor, in order to perform more accurate lens correction, a larger amount of information transmission is required from a host to a data processing apparatus performing lens correction.

렌즈 보정이란 렌즈와 픽셀로 인하여 발생하는 물리적인 현상, 즉 빛의 세기가 이미지 중앙(즉, 렌즈 중앙)에서 모서리로 갈수록 감소하는 현상을 극복하기 위하여 이미지 중앙의 빛의 세기와 모서리의 빛의 세기를 맞추어주는 것을 의미한다.Lens correction means the light intensity at the center of the image and the intensity of the light at the edges in order to overcome the physical phenomenon caused by the lens and pixels, that is, the light intensity decreases from the center of the image (ie, the center of the lens) to the edge. Means to match.

정보 전송 시간은 실시간 시스템에서 매우 민감한 사항이다. 전달되는 정보의 양이 많을수록 정보 전송 시간은 길어진다. 따라서 정보 전송 시간을 줄이기 위해서는 정보를 압축(또는 부호화)해서 전송해야 한다.Information transmission time is very sensitive in real time system. The greater the amount of information transmitted, the longer the information transmission time. Therefore, in order to reduce information transmission time, information must be compressed (or encoded) and transmitted.

압축된 정보는 렌즈 보정을 수행하는 데이터 처리장치의 디코더에서 복호화된다. 종래의 디코더는 많은 곱셈 연산들을 수행하므로 하드웨어 구조가 복잡하다. 따라서, 종래의 디코더는 작은 하드웨어 사이즈로 구현하기 어렵다.The compressed information is decoded at the decoder of the data processing apparatus which performs lens correction. Conventional decoders perform many multiplication operations and thus have a complicated hardware structure. Therefore, the conventional decoder is difficult to implement with a small hardware size.

따라서 본 발명이 이루고자 하는 기술적인 과제는 작은 하드웨어 사이즈를 가지면서도 짧은 기간 안에 전송된 정보를 복호화할 수 있는 디코더와 상기 디코더를 포함하는 데이터 처리장치를 제공하는 것이다.Accordingly, a technical problem of the present invention is to provide a decoder having a small hardware size and capable of decoding information transmitted within a short period of time and a data processing apparatus including the decoder.

상기 기술적 과제를 달성하기 위한 데이터 처리장치는 A(A는 자연수)*B(B는 자연수) 시드 매트릭스를 구성하는 다수의 암호화된 이득 값들을 저장하기 위한 시드 메모리; M(M은 자연수, M>A)*N(N은 자연수, N>B) 그리드 매트릭스를 구성하는 다수의 복호화된 이득 값들을 저장하기 위한 이득 메모리; 및 디코더를 포함한다.A data processing apparatus for achieving the technical problem includes a seed memory for storing a plurality of encrypted gain values constituting a seed (A is a natural number) * B (B is a natural number) seed matrix; A gain memory for storing a plurality of decoded gain values constituting M (M is a natural number, M> A) * N (N is a natural number, N> B) grid matrix; And a decoder.

상기 디코더는 상기 시드 메모리와 상기 이득 메모리 사이에 접속되고, 상기 A*B 시드 매트릭스의 첫 번째 행(row)을 구성하는 다수의 암호화된 이득 값들로부터 상기 M*N 그리드 매트릭스의 i(i는 자연수, 2≤i≤M)번째 행을 구성하는 다수의 복호화된 이득 값들 각각을 복호화하기 전에, 상기 A*B 시드 매트릭스를 구성하는 상기 다수의 암호화된 이득 값들 중에서 각각의 열 방향으로 인접하는 두 개의 이득 값들에 기초하여 상기 A*B 시드 매트릭스를 구성하는 상기 다수의 암호화된 이득 값들 중에서 적어도 일부를 업데이트한다.The decoder is connected between the seed memory and the gain memory, and i (i is a natural number) of the M * N grid matrix from a plurality of encrypted gain values constituting the first row of the A * B seed matrix. Prior to decrypting each of the plurality of decrypted gain values constituting the 2 < i > Update at least some of the plurality of encrypted gain values that make up the A * B seed matrix based on the gain values.

상기 디코더는 상기 A*B 시드 매트릭스의 상기 첫 번째 행(row)을 구성하며 업데이트된 다수의 암호화된 이득 값들로부터 상기 M*N 그리드 매트릭스의 상기 i(i는 자연수, 2≤i≤M)번째 행을 구성하는 상기 다수의 복호화된 이득 값들 각각을 복호화한다.The decoder constitutes the first row of the A * B seed matrix and wherein i (i is a natural number, 2 ≦ i ≦ M) th of the M * N grid matrix from the updated plurality of encrypted gain values. Decode each of the plurality of decoded gain values that constitute a row.

상기 데이터 처리장치는 상기 이득 메모리로부터 출력된 상기 다수의 복호화된 이득 값들 중에서 다수의 기준 이득 값들에 기초하여 입력 데이터에 대해 양선형 보간(bilinear interpolation)을 수행하여 보정된 데이터를 출력하기 위한 계산 블록을 더 포함한다. 상기 데이터 처리장치는 렌즈 보정(lens correction)을 수행하는 장치로서 이미지 처리장치의 일부로서 구현될 수 있다.The data processing apparatus is configured to perform a bilinear interpolation on input data based on a plurality of reference gain values among the plurality of decoded gain values output from the gain memory to output corrected data. It includes more. The data processing device may be implemented as part of an image processing device as a device for performing lens correction.

본 발명의 실시 예에 따른 데이터 처리 장치는 각각이 데이터 쉬프트 동작을 수행할 수 있는 직렬로 접속된 다수의 레지스터 블록들; 상기 다수의 레지스터 블록들 중에서 제2레지스터 블록(302)에 저장된 제1 L(L은 자연수)-비트 데이터를 K(K는 자연수, K<L)-비트만큼 쉬프트시키고 쉬프트된 제1 L-비트 데이터를 출력하기 위한 쉬프트 블록; 상기 쉬프트된 제1 L-비트 데이터와 상기 다수의 레지스터 블록들 중에서 제1레지스터 블록에 저장된 제2 L-비트 데이터를 더하여 제3 L-비트 데이터를 생성하고 생성된 제3 L-비트 데이터를 상기 다수의 레지스터 블록들 중에서 마지막 레지스터 블록으로 출력하기 위한 가산기; 및 상기 제3L-비트 데이터가 상기 데이터 쉬프트 동작을 통하여 상기 제1레지스터 블록으로 쉬프트될 때마다, 컨트롤러로부터 출력된 제어신호에 응답하여 상기 제1레지스터 블록으로 쉬프트된 제3 L-비트 데이터를 출력하기 위한 스위칭 블록을 포함한다.A data processing apparatus according to an embodiment of the present invention includes a plurality of serially connected register blocks, each of which may perform a data shift operation; The first L-bit shifted by shifting the first L (L is a natural number) -bit data stored in the second register block 302 by K (K is a natural number, K <L) -bit among the plurality of register blocks. A shift block for outputting data; The third L-bit data is generated by adding the shifted first L-bit data and second L-bit data stored in a first register block among the plurality of register blocks, and generating the third L-bit data. An adder for outputting to the last register block of the plurality of register blocks; And outputting the third L-bit data shifted to the first register block in response to a control signal output from a controller whenever the third L-bit data is shifted to the first register block through the data shift operation. It includes a switching block for.

상기 데이터 처리장치는 다수의 암호화된 이득 값들을 저장하는 시드 메모리; 및 다수의 복호화된 이득 값들을 저장하는 이득 메모리를 더 포함한다.The data processing device comprises a seed memory for storing a plurality of encrypted gain values; And a gain memory that stores a plurality of decoded gain values.

상기 컨트롤러는 상기 다수의 암호화된 이득 값들 중에서 제1세트의 이득 값들을 상기 다수의 레지스터 블록들로 저장하는 것을 제어하고, 상기 다수의 복호화된 이득 값들 중에서 제2세트의 이득 값들을 상기 이득 메모리에 저장될 때까지 상기 제어 신호를 발생하여 상기 스위칭 블록의 동작을 제어한다.The controller controls storing a first set of gain values among the plurality of encrypted gain values into the plurality of register blocks, and stores a second set of gain values among the plurality of decrypted gain values in the gain memory. The control signal is generated until stored to control the operation of the switching block.

상기 컨트롤러는 상기 다수의 암호화된 이득 값들 중에서 각각의 열 방향으로 서로 인접하는 두 개의 이득 값들을 이용하여 상기 다수의 암호화된 이득 값들 중에서 적어도 일부를 업데이트하는 업데이트 동작을 더 수행하고, 상기 제1세트의 이득 값들 각각은 상기 업 데이트 동작을 통하여 업데이트된 이득 값이다.The controller further performs an update operation to update at least some of the plurality of encrypted gain values using two gain values adjacent to each other in each column direction among the plurality of encrypted gain values, and wherein the first set Each of the gain values of is a gain value updated through the update operation.

상기 데이터 처리장치는 상기 이득 메모리로부터 출력된 상기 다수의 복호화된 이득 값들 중에서 다수의 기준 이득 값들에 기초하여 입력 데이터에 대해 양선형 보간(bilinear interpolation)을 수행하여 보정된 데이터를 출력하기 위한 계산 블록을 더 포함한다.The data processing apparatus is configured to perform a bilinear interpolation on input data based on a plurality of reference gain values among the plurality of decoded gain values output from the gain memory to output corrected data. It includes more.

본 발명의 실시 예에 따른 데이터 처리 장치는 작은 하드웨어 사이즈를 가지면서도 짧은 기간 안에 전송된 정보를 복호화할 수 있는 효과가 있다.A data processing apparatus according to an embodiment of the present invention has an effect of decoding information transmitted in a short period of time while having a small hardware size.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도 면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.In order to fully understand the present invention, operational advantages of the present invention, and objects achieved by the practice of the present invention, reference should be made to the accompanying drawings, which illustrate preferred embodiments of the present invention, and the contents of the accompanying drawings.

본 발명의 실시 예에 따른 디코더 또는 데이터 처리장치에서 사용되는 RNP (Recursive Near Polynomial, 이하 "RNP"라 한다)의 개념은 다음과 같다.The concept of a Recursive Near Polynomial (RNP) used in a decoder or data processing apparatus according to an embodiment of the present invention is as follows.

수학식 1은 1차원 RNP의 기본 개념을 나타낸다.Equation 1 shows the basic concept of the one-dimensional RNP.

[수학식1][Equation 1]

Figure 112008015443010-pat00001
Figure 112008015443010-pat00001

수학식1에 나타난 바와 같이, 1차원 RNP에는 총 n(여기서, n은 자연수)개의 미분 함수들이 존재한다. m(여기서, m은 자연수, m<n)차 미분 함수의 값은 m차 미분 함수의 값, 및 (m+1)차 미분 함수의 값과 상수(hm +1)의 곱셈 결과의 합으로 구해진다.As shown in Equation 1, there are n different differential functions in the one-dimensional RNP, where n is a natural number. m (where m is a natural number, and m <n) is the sum of the value of the mth derivative and the product of the (m + 1) derivative and the product of the constant (h m +1 ) Is saved.

예컨대, 1차 미분 함수의 값(dF/dx)은 1차 미분 함수의 값(dF/dx), 및 2차 미분 함수의 값과 상수(h2)의 곱셈 결과의 합으로 구해진다.For example, the value of the first derivative function dF / dx is obtained by the sum of the value of the first derivative function dF / dx and the result of the multiplication of the value of the second derivative function with the constant h 2 .

수학식 1에 나타낸 바와 같이, m차 미분 함수의 값이 변해가는 모양은 m차 함수의 값이 변해가는 모양과 비슷하다. 예컨대, 2차 미분 함수의 값이 변해가는 모양은 2차 함수의 값이 변해가는 모양과 비슷하다.As shown in Equation 1, the shape of the value of the m-th order differential function is similar to that of the value of the m-th order function. For example, the shape of the value of the quadratic differential function is similar to that of the value of the quadratic function.

본 발명의 실시 예에 따른 디코더 또는 상기 디코더를 포함하는 데이터 처리장치에서 사용하는 최종 결과의 값은 F함수의 값이다. F함수의 값이 변해가는 모양은 n차 함수가 변해가는 모양과 비슷하다. 결과적으로, 곱셈과 더하기 연산을 반복수행함으로써 0, 1, 2, ..., (n-1), 및 n차 함수를 구현할 수 있다.The final result used in the decoder according to the embodiment of the present invention or in the data processing apparatus including the decoder is a value of the F function. The change in value of the F function is similar to the change in the n-th order function. As a result, it is possible to implement the 0, 1, 2, ..., (n-1), and n-th order functions by repeating the multiplication and addition operations.

수학식2는 수학식1을 시간 개념으로 나타낸 것이다.Equation 2 represents Equation 1 in terms of time.

[수학식2]&Quot; (2) &quot;

Figure 112008015443010-pat00002
Figure 112008015443010-pat00002

수학식2에서, F0 t는 수학식1의 F함수를 나타내고, F1 t는 수학식1의 1차 미분 함수값(dF/dx)를 나타내고, F2 t는 수학식1의 2차 미분 함수값(d2F/dx)를 나타낸다. t는 함수값이 만들어진 시간을 나타낸다.In Equation 2, F 0 t represents the F function of Equation 1, F 1 t represents the first derivative function value (dF / dx) of Equation 1, F 2 t is the second derivative of Equation 1 The function value (d 2 F / dx) is shown. t represents the time when the function value was created.

h1=h2=...=hn -2=hn -1=h로 가정하면, 디코더의 하드웨어 크기는 줄어든다. 그러나, 실시 예에 따라 각각의 상수(h1, h2,...,hn -2, 및 hn -1)는 서로 다른 값을 가질 수 있다.Assuming h 1 = h 2 = ... = h n -2 = h n -1 = h, the hardware size of the decoder is reduced. However, according to an embodiment, each constant h 1 , h 2 ,..., H n -2 , and h n -1 may have different values.

도 1은 수학식 2를 하드웨어로 구현한 일 예를 나타낸다. 도 1에서 (n+1)개 의 값들로 구성된 시드(SEED) 값들은 [F0, F1, ..., Fn -1, Fn]로 표현된다. 또한, 수학식 2에 표현된 h(상수)는 ">>BitShift"로 표현한다. 이렇게 함으로서 본 발명의 실시 예에 따른 디코더의 하드웨어 사이즈는 더 줄어든다.1 illustrates an example of implementing Equation 2 in hardware. In FIG. 1, seed values composed of (n + 1) values are represented by [F 0 , F 1 , ..., F n -1 , F n ]. In addition, h (constant) expressed in Equation 2 is expressed as ">>BitShift". By doing so, the hardware size of the decoder according to the embodiment of the present invention is further reduced.

이상에서 1차원 RNP의 알고리즘을 설명했다. 본 발명의 실시 예에 따른 디코더는 상술한 1차원 RNP의 알고리즘을 행(가로) 방향과 열(세로) 방향으로 적용한 2차원 RNP를 사용한다.The algorithm of the one-dimensional RNP has been described above. The decoder according to an embodiment of the present invention uses a two-dimensional RNP in which the above-described one-dimensional RNP algorithm is applied in a row (horizontal) direction and a column (vertical) direction.

도 2는 본 발명의 실시 예에 따른 데이터 처리장치의 블록 도를 나타낸다. 렌즈 보정(lens correction) 동작(또는 연산)을 수행할 수 있는 하드웨어인 데이터 처리장치(10)는 이미지 센서와 같은 이미지 처리장치에 구현될 수 있다.2 is a block diagram of a data processing apparatus according to an exemplary embodiment of the present invention. The data processing apparatus 10, which is hardware capable of performing a lens correction operation (or calculation), may be implemented in an image processing apparatus such as an image sensor.

도 2를 참조하면, 데이터 처리장치(10)는 시드 메모리(20), 디코더(30), 이득 메모리(40), 및 계산 블록(50)을 포함한다.Referring to FIG. 2, the data processing apparatus 10 includes a seed memory 20, a decoder 30, a gain memory 40, and a calculation block 50.

외부 인터페이스(11)를 통하여 입력된 다수의 암호화된 이득 값들(Ga)은 컨트롤러(31)의 제어하에 메모리 인터페이스(33)를 경유하여 시드 메모리(20)에 저장된다. 예컨대, 외부 인터페이스(11)는 I2C 프로토콜에 따른 인터페이스가 사용될 수 있다.A plurality of encrypted gain values Ga input through the external interface 11 are stored in the seed memory 20 via the memory interface 33 under the control of the controller 31. For example, the external interface 11 may use an interface according to the I 2 C protocol.

시드 메모리(20)는 A*B 매트릭스(이하 "A*B 시드 매트릭스"라 한다)로 표현되는 다수의 암호화된 이득 값들을 저장한다. 여기서 A와 B는 자연수이고, 설명의 편의를 위하여 A와 B 각각이 6이라고 가정한다. 따라서, 시드 메모리(20)는 적어도 총 36개의 암호화된 이득 값들을 저장할 수 있다. 여기서, 36개의 암호화된 이득 값들 각각은 L(L은 자연수, 예컨대, L=20)-비트 데이터라고 가정한다.The seed memory 20 stores a number of encrypted gain values represented by an A * B matrix (hereinafter referred to as an "A * B seed matrix"). Here, A and B are natural numbers, and for convenience of explanation, it is assumed that each of A and B is 6. Thus, the seed memory 20 may store at least 36 encrypted gain values in total. Here, assume that each of the 36 encrypted gain values is L (L is a natural number, eg, L = 20) -bit data.

디코더(30)는 컨트롤러(31)의 제어하에 시드 메모리(20)로부터 적절한 시간에 필요한 암호화된 이득 값들을 읽어와 도 4에 도시된 하드웨어 구조를 이용하여 M*N 매트릭스(이하, "M*N 그리드 매트릭스"라 한다)로 표현되는 다수의 복호화된 이득 값들 각각을 순차적으로 생성(또는, 디코딩)하고 생성된(또는 디코드된) 이득 값들을 이득 메모리(40)에 저장한다. 여기서, M과 N은 자연수이고, 설명의 편의를 위하여 M은 11이고 N은 13이라고 가정한다.Decoder 30 reads the encrypted gain values needed at an appropriate time from the seed memory 20 under the control of the controller 31 and uses an M * N matrix (hereinafter referred to as " M * N " And sequentially generate (or decode) each of the plurality of decoded gain values represented by the &quot; grid matrix &quot;) and store the generated (or decoded) gain values in the gain memory 40. Here, it is assumed that M and N are natural numbers, and for convenience of description, M is 11 and N is 13.

따라서, 이득 메모리(40)는 11*13 그리드 매트릭스로 표현되는 다수의 복호화된 이득 값들을 저장한다. 즉, 본 발명의 실시 예에 따른 디코더(30)는 행 방향 RNP 디코딩과 열 방향 RNP 디코딩을 번갈아 수행하면서 6*6 시드 매트릭스를 11*13 그리드 매트릭스로 디코딩한다.Thus, the gain memory 40 stores a number of decoded gain values represented by an 11 * 13 grid matrix. That is, the decoder 30 according to an embodiment of the present invention decodes the 6 * 6 seed matrix into an 11 * 13 grid matrix while alternately performing row direction RNP decoding and column direction RNP decoding.

즉, 본 발명의 실시 예에 따른 데이터 처리장치(10)는 시드 메모리(20)와 이득 메모리(40) 사이에 접속되고, A*B 시드 매트릭스의 첫 번째 행(row)을 구성하는 다수의 암호화된 이득 값들로부터 M*N 그리드 매트릭스의 i(i는 자연수, 2≤i≤M)번째 행을 구성하는 다수의 복호화된 이득 값들 각각을 복호화하기 전에, 상기 A*B 시드 매트릭스를 구성하는 상기 다수의 암호화된 이득 값들 중에서 각각의 열 방향으로 인접하는 두 개의 이득 값들에 기초하여 상기 A*B 시드 매트릭스를 구성하는 상기 다수의 암호화된 이득 값들 중에서 적어도 일부를 업데이트한다.That is, the data processing apparatus 10 according to the embodiment of the present invention is connected between the seed memory 20 and the gain memory 40, and a plurality of encryptions constituting the first row of the A * B seed matrix. The plurality of constituents of the A * B seed matrix before decoding each of the plurality of decoded gain values constituting the i (i is a natural number, 2≤i≤M) th row of the M * N grid matrix Update at least some of the plurality of encrypted gain values constituting the A * B seed matrix based on two adjacent gain values in each column direction among the encrypted gain values of.

예컨대, 데이터 처리장치(10)는 두 번째 이후의 행 방향 RNP 디코딩을 수행하기 전에 열 방향 RNP 디코딩을 수행한다.For example, the data processing apparatus 10 performs column direction RNP decoding before performing second and subsequent row direction RNP decoding.

계산 블록(50)은 이미지 데이터(DATA)와 이득 메모리(40)로부터 출력된 이득 값들(예컨대, 도 6과 도 7을 참조하여 설명될 4개의 이득 값들)에 기초하여 이미지 데이터(DATA)를 보상하고 보상된 이미지 데이터(CDATA)를 출력한다. The calculation block 50 compensates the image data DATA based on the image data DATA and the gain values output from the gain memory 40 (eg, four gain values to be described with reference to FIGS. 6 and 7). And compensated image data CDATA is output.

예컨대, 계산 블록(50)은 도 6과 도 7을 참조하여 설명될 양선형 보간(bilinear interpolation)을 이용하여 화소에 해당하는 이득 값을 계산하고, 계산된 이득 값과 이미지 데이터(DATA)를 곱하고, 그 결과로서 보상된 이미지 데이터(CDATA)를 출력한다. 예컨대, 계산 블록(50)은 렌즈 보정 동작을 수행하기 위하여 양선형 보간을 통하여 계산된 이득 값을 이용하여 각각의 채널에 대한 빛의 세기를 조절할 수 있다.For example, the calculation block 50 calculates a gain value corresponding to the pixel using bilinear interpolation to be described with reference to FIGS. 6 and 7, multiplies the calculated gain value by the image data DATA, and As a result, the compensated image data CDATA is output. For example, the calculation block 50 may adjust the intensity of light for each channel by using a gain value calculated through bilinear interpolation to perform a lens correction operation.

도 3은 도 2에 도시된 디코딩 처리 블록의 동작을 개념적으로 설명하기 위한 도면이고, 도 4는 도 2에 도시된 디코딩 처리 블록의 블록 도를 나타내고, 도 5는 도 2에 도시된 디코더의 동작을 개념적으로 설명하기 위한 그림이다.3 is a diagram for conceptually describing an operation of the decoding processing block shown in FIG. 2, FIG. 4 is a block diagram of the decoding processing block shown in FIG. 2, and FIG. 5 is an operation of the decoder shown in FIG. 2. To illustrate this concept conceptually.

우선, 도 5에 표시된 원안의 각각의 숫자(0부터 35)는 각각의 암호화된 이득 값이 저장된 시드 메모리(20)의 저장 영역의 주소를 나타낸다. 예컨대, 도 5에 표시된 원안의 숫자 35, 34, 30, 29, 28, 24, 5, 4, 및 0 각각에는 도 3에 표시된 각각의 이득 값(S11, S21, SA1, S12, S22, SA2, S1B, S2B, 및 SAB)이 저장된다.First, each number (0 to 35) in the circle shown in FIG. 5 represents an address of a storage area of the seed memory 20 in which each encrypted gain value is stored. For example, the numerals 35, 34, 30, 29, 28, 24, 5, 4, and 0 in the circle shown in FIG. 5 each have respective gain values S 11 , S 21 , S A1 , S 12 , S 22 , S A2 , S 1B , S 2B , and S AB ) are stored.

도 3에 도시된 11*13 그리드 매트릭스의 첫 번째 행의 원소들, 즉 다수(예컨대, 13개)의 복호화된 이득 값들(G11, G12,..., G1N) 각각을 구하기 위하여, 컨트롤러(31)의 제어하에 시드 메모리(20)의 각 주소(0, 6, 12, 18, 24, 및 30)에 저장된 첫 번째 행의 다수의 암호화된 이득 값들(SA1, SA2, ..., SAB) 각각은 메모리 인터페이스(33)를 통하여 다수의 레지스터 블록들(301~306) 중에서 대응되는 레지스터 블록에 저장된다.In order to find each of the elements of the first row of the 11 * 13 grid matrix shown in FIG. 3, i.e. each of the multiple (e.g., 13) decoded gain values G 11 , G 12 , ..., G 1N , Under the control of the controller 31 a plurality of encrypted gain values S A1 , S A2 ,... Of the first row stored at each address 0, 6, 12, 18, 24, and 30 of the seed memory 20. , S AB ) is stored in the corresponding register block among the plurality of register blocks 301-306 through the memory interface 33.

다수의 레지스터 블록들 (301~306) 각각은 L(L은 자연수, 예컨대 L=20)-비트 병렬 데이터를 저장하기 위한 L-개의 레지스터들을 포함한다. L-개의 레지스터들 각각은 클락 신호에 응답하여 L-비트 병렬 데이터 중에서 대응되는 하나의 데이터를 저장한다.Each of the plurality of register blocks 301-306 includes L- registers for storing L (L is a natural number, such as L = 20) -bit parallel data. Each of the L- registers stores a corresponding one of the L-bit parallel data in response to the clock signal.

도 4와 도 5에서는 설명의 편의를 위하여 각각의 주소(0부터 35까지)와 상기 각각의 주소에 저장된 암호화된 이득 값을 서로 동일하게 표현한다.4 and 5, for convenience of description, each address (0 to 35) and the encrypted gain value stored in each address are expressed equally.

예컨대, 주소 0에 저장된 이득 값(SAB)을 0이라 표현하고, 주소 30에 저장된 이득 값(SA1)을 30이라고 표현하고, 주소 24에 저장된 이득 값(SA2)을 24로 표현한다.For example, the gain value S AB stored at the address 0 is represented by 0, the gain value S A1 stored at the address 30 is represented by 30, and the gain value S A2 stored at the address 24 is represented by 24.

따라서, 컨트롤러(31)의 제어하에, 0은 제1레지스터 블록(301)에, 6은 제2레지스터 블록(302)에, 12는 제3레지스터 블록(303)에, 18은 제4레지스터 블록(304)에, 24는 제5레지스터 블록(305)에, 그리고 30은 제6레지스터 블록(306)에 저장된다.Therefore, under the control of the controller 31, 0 is the first register block 301, 6 is the second register block 302, 12 is the third register block 303, 18 is the fourth register block ( At 304, 24 is stored in the fifth register block 305 and 30 is stored in the sixth register block 306.

스위칭 블록(330)은 컨트롤러(31)로부터 출력된 제어신호(CTRL)에 응답하여 레지스터 블록(301)에 저장된 0을 출력 레지스터 블록(340)으로 출력한다. 출력 레지스터 블록(340)에 저장된 0은 컨트롤러(31)의 제어하에 메모리 인터페이스(33)를 통하여 이득 메모리(40)로 전송된다. 이때 이득 메모리(40)로 전송된 0이 복호화된 이득 값(G11)이 된다.The switching block 330 outputs 0 stored in the register block 301 to the output register block 340 in response to the control signal CTRL output from the controller 31. Zero stored in the output register block 340 is transmitted to the gain memory 40 through the memory interface 33 under the control of the controller 31. At this time, 0 transmitted to the gain memory 40 becomes a decoded gain value G 11 .

쉬프트 블록(310)은 제2레지스터 블록(302)으로부터 출력된 이득 값을 수신하고, 수신된 이득 값을 구성하는 L(예컨대, L=20)-비트 데이터를 오른쪽으로 K(K는 자연수, 예컨대 K=3)-비트 쉬프트시키고, 3-비트 쉬프트된 20-비트 데이터를 출력한다.The shift block 310 receives a gain value output from the second register block 302, and K (K is a natural number, for example) to the right of L (e.g., L = 20) -bit data constituting the received gain value. K = 3) -bit shifted, and outputs 3-bit shifted 20-bit data.

예컨대, 쉬프트 블록(310)은 3-비트 쉬프트 동작에 따라 원래 20-비트 데이터(예컨대, 10000000001111111000) 중에서 첫 번째 데이터 값(0)부터 세 번째 데이터 값(0)은 버리고, 20번째 데이터 값(1)을 20번째 데이터 값부터 17번째 데이터 값으로 사용할 수 있다. 따라서, 쉬프트 블록(310)은 3-비트 쉬프트된 20-비트 데이터 (예컨대, 11110000000001111111)를 가산기(320)로 출력한다.For example, the shift block 310 discards the first data value (0) to the third data value (0) of the original 20-bit data (for example, 10000000001111111000) according to the 3-bit shift operation, and discards the 20th data value (1). ) Can be used as the 20th to 17th data values. Thus, the shift block 310 outputs 3-bit shifted 20-bit data (eg, 11110000000001111111) to the adder 320.

따라서, 가산기(320)는 제1레지스터 블록(301)으로부터 출력된 20-비트 데이터(DREG1=0)와 쉬프트 블록(310)으로부터 출력된 20-비트 데이터(DREG2/h=6/h)를 가산하고, 가산 결과에 따라 생성된 20-비트 데이터(DREG1+DREG2/h=0+(6/h))를 제6레지스터 블록(306)으로 출력한다. 여기서, h=2K이다.Therefore, the adder 320 adds 20-bit data (DREG1 = 0) output from the first register block 301 and 20-bit data (DREG2 / h = 6 / h) output from the shift block 310. The 20-bit data DREG1 + DREG2 / h = 0 + (6 / h) generated according to the addition result is output to the sixth register block 306. Where h = 2K .

따라서, 제6레지스터 블록(306)은 가산기(320)로부터 출력된 20-비트 데이터(DREG1+DREG2/h= 0 + 6/h)를 저장한다. 제6레지스터 블록(306)에 저장된 20-비트 데이터는 제5레지스터 블록(305)으로, 제5레지스터 블록(305)에 저장된 20-비트 데이터는 제4레지스터 블록(305)으로, 제4레지스터 블록(304)에 저장된 20-비트 데이 터는 제3레지스터 블록(303)으로, 제3레지스터 블록(303)에 저장된 20-비트 데이터는 제2레지스터 블록(302)으로, 제2레지스터 블록(302)에 저장된 20-비트 데이터는 제1레지스터 블록(301)으로 동시에 쉬프트된다. 각각의 레지스터 블록(301~306)은 클락 신호에 응답하여 오른쪽 쉬프트 동작을 수행한다.Therefore, the sixth register block 306 stores the 20-bit data DREG1 + DREG2 / h = 0 + 6 / h output from the adder 320. The 20-bit data stored in the sixth register block 306 is referred to as the fifth register block 305, and the 20-bit data stored in the fifth register block 305 refers to the fourth register block 305. The 20-bit data stored in 304 is the third register block 303, and the 20-bit data stored in the third register block 303 is the second register block 302, and the second register block 302 is stored in the second register block 302. The stored 20-bit data is simultaneously shifted to the first register block 301. Each register block 301 to 306 performs a right shift operation in response to a clock signal.

가산기(320)로부터 출력된 20-비트 데이터(DREG1+DREG2/h=0+(6/h))는 제6레지스터 블록(306), 제5레지스터 블록(305), 제4레지스터 블록(304), 제3레지스터 블록(303), 제2레지스터 블록(302)으로 순차적으로 쉬프트된 후, 최종적으로 제1레지스터 블록(301)으로 쉬프트된다.The 20-bit data DREG1 + DREG2 / h = 0 + (6 / h) output from the adder 320 is the sixth register block 306, the fifth register block 305, and the fourth register block 304. After being sequentially shifted to the third register block 303 and the second register block 302, it is finally shifted to the first register block 301.

가산기(320)로부터 출력된 20-비트 데이터(DREG1+DREG2/h=0+(6/h))가 제6레지스터 블록(306), 제5레지스터 블록(305), 제4레지스터 블록(304), 제3레지스터 블록(303), 및 제2레지스터 블록(302)으로 순차적으로 쉬프트되는 동안, 스위칭 블록(330)은 제어신호(CTRL)에 응답하여 오프 상태를 유지한다.The 20-bit data DREG1 + DREG2 / h = 0 + (6 / h) output from the adder 320 is the sixth register block 306, the fifth register block 305, and the fourth register block 304. The switching block 330 maintains the off state in response to the control signal CTRL while being sequentially shifted to the third register block 303 and the second register block 302.

그러나, 가산기(320)로부터 출력된 20-비트 데이터(DREG1+DREG2/h=0+(6/h))가 제1레지스터 블록(301)으로 쉬프트될 때 또는 쉬프트된 후 스위칭 블록(330)은 제어신호(CTRL)에 응답하여 온 상태를 유지한다. 따라서, 제1레지스터 블록(301)로 쉬프트된 20-비트 데이터(DREG1+DREG2/h, 즉 0+(6/h))는 온 상태를 유지하는 스위칭 블록(330)을 경유하여 출력 레지스터 블록(340)으로 출력된다. 출력 레지스터 블록(340)에 저장된 복호화된 이득 값(0+(6/h))은 컨트롤러(31)의 제어하에 메모리 인터페이스(33)를 통하여 이득 메모리(40)로 전송된다. 이때 이득 메모리(40)로 전 송된 복호화된 이득 값(0+(6/h))은 G12이다.However, when the 20-bit data DREG1 + DREG2 / h = 0 + (6 / h) output from the adder 320 is shifted to the first register block 301 or after the switching block 330 is shifted, Maintains an on state in response to a control signal CTRL. Accordingly, the 20-bit data (DREG1 + DREG2 / h, i.e. 0+ (6 / h)) shifted to the first register block 301 is passed through the output register block (3) via the switching block 330 which is kept on. 340). The decoded gain value 0+ (6 / h) stored in the output register block 340 is transmitted to the gain memory 40 through the memory interface 33 under the control of the controller 31. At this time, the decoded gain value 0+ (6 / h) transmitted to the gain memory 40 is G 12 .

예컨대, 컨트롤러(31)는 가산기(320)로부터 출력된 값이 제6레지스터(306)부터 제2레지스터(302)를 경유하여 제1레지스터(301)로 전송될 때마다 스위칭 블록(330)을 온 상태로 제어하기 위한 제어신호(CTRL)를 발생할 수 있다.For example, the controller 31 turns on the switching block 330 whenever the value output from the adder 320 is transmitted from the sixth register 306 to the first register 301 via the second register 302. The control signal CTRL for controlling the state may be generated.

도 5에 도시된 01은 순차적인 쉬프트 동작을 통하여 제1레지스터 블록(301)에 저장된 이득 값을 나타내고, 61(=6+(12/h))은 제1레지스터 블록(301)에 01이 저장될 때 제2레지스터 블록(302)에 저장된 이득 값을 나타내고, 121(=12+(18/h))은 제1레지스터 블록(301)에 01이 저장될 때 제3레지스터 블록(303)에 저장된 이득 값을 나타내고, 181(=18+(24/h))은 제1레지스터 블록(301)에 01이 저장될 때 제4레지스터 블록(304)에 저장된 이득 값을 나타내고, 241(=24+(30/h))은 제1레지스터 블록(301)에 01이 저장될 때 제5레지스터 블록(305)에 저장된 이득 값을 나타내고, 301(=30)은 제1레지스터 블록(301)에 01이 저장될 때 제6레지스터 블록(306)에 저장된 이득 값을 나타낸다.In FIG. 5, 0 1 represents a gain value stored in the first register block 301 through sequential shift operations, and 6 1 (= 6 + (12 / h)) is 0 in the first register block 301. Represents a gain value stored in the second register block 302 when 1 is stored, and 12 1 (= 12 + (18 / h)) represents the third register block when 0 1 is stored in the first register block 301. 18 1 (= 18 + (24 / h)) represents the gain value stored in the fourth register block 304 when 0 1 is stored in the first register block 301. , 24 1 (= 24 + (30 / h)) represents a gain value stored in the fifth register block 305 when 0 1 is stored in the first register block 301, and 30 1 (= 30) When 0 1 is stored in the one register block 301, the gain value stored in the sixth register block 306 is represented.

계속하여, 쉬프트 블록(310)은 제2레지스터 블록(302)으로부터 출력된 이득 값(61)을 수신하고, 수신된 이득 값(61)을 구성하는 20-비트 데이터를 오른쪽으로 3-비트 쉬프트시키고, 3-비트 쉬프트된 20-비트 데이터(61/h)를 출력한다.Subsequently, the shift block 310 receives the gain value 6 1 output from the second register block 302 and 3-bits the 20-bit data constituting the received gain value 6 1 to the right. Shift and output 3-bit shifted 20-bit data (6 1 / h).

가산기(320)는 제1레지스터 블록(301)으로부터 출력된 20-비트 데이터 (DREG1=01)와 쉬프트 블록(310)으로부터 출력된 20-비트 데이터(DREG2/h=61/h)를 가산하고, 가산 결과에 따라 생성된 20-비트 데이터(DREG1+DREG2/h=01+(61/h))를 제6레지스터 블록(306)으로 출력한다.The adder 320 adds 20-bit data (DREG1 = 0 1 ) output from the first register block 301 and 20-bit data (DREG2 / h = 6 1 / h) output from the shift block 310. and, the 20-bit data (DREG1 + DREG2 / h = 0 1 + (6 1 / h)) generated according to the addition result, and outputs the sixth register block 306.

상술한 바와 같이, 가산기(320)로부터 출력된 20-비트 데이터 (DREG1+DREG2/h, 즉 01+(61/h))는 제6레지스터 블록(306), 제5레지스터 블록(305), 제4레지스터 블록(304), 제3레지스터 블록(303), 제2레지스터 블록(302)으로 순차적으로 쉬프트된 후, 최종적으로 제1레지스터 블록(301)으로 쉬프트된다.As described above, the 20-bit data (DREG1 + DREG2 / h, that is, 0 1 + (6 1 / h)) output from the adder 320 is stored in the sixth register block 306 and the fifth register block 305. The fourth register block 304, the third register block 303, and the second register block 302 are sequentially shifted, and then finally shifted to the first register block 301.

가산기(320)로부터 출력된 20-비트 데이터(DREG1+DREG2/h, 즉 01+(61/h))가 제6레지스터 블록(306), 제5레지스터 블록(305), 제4레지스터 블록(304), 제3레지스터 블록(303), 및 제2레지스터 블록(302)으로 순차적으로 쉬프트되는 동안, 스위칭 블록(330)은 제어신호(CTRL)에 응답하여 오프 상태를 유지한다.The 20-bit data DREG1 + DREG2 / h, that is, 0 1 + (6 1 / h) output from the adder 320 is the sixth register block 306, the fifth register block 305, and the fourth register block. While sequentially shifting to 304, the third register block 303, and the second register block 302, the switching block 330 maintains an off state in response to the control signal CTRL.

그러나, 가산기(320)로부터 출력된 20-비트 데이터 (DREG1+DREG2/h, 즉=01+(61/h))가 제1레지스터 블록(301)으로 쉬프트될 때 또는 쉬프트된 후 스위칭 블록(330)은 제어신호(CTRL)에 응답하여 온 상태를 유지한다. 따라서, 제1레지스터 블록(301)로 쉬프트된 20-비트 데이터(DREG1+DREG2/h, 즉 01+(61/h))는 온 상태를 유지하는 스위칭 블록(330)을 경유하여 출력 레지스터 블록(340)으로 출력된다. 출력 레지스터 블록(340)에 저장된 복호화된 이득 값(01+(61/h))은 컨트롤러(31)의 제어하에 메모리 인터페이스(33)를 통하여 이득 메모리(40)로 전송된다. 이때, 이득 메모리(40)로 전송된 복호화된 이득 값(01+(61/h))은 G13이다.However, when the 20-bit data (DREG1 + DREG2 / h, ie = 0 1 + (6 1 / h)) output from the adder 320 is shifted to the first register block 301 or after being shifted, the switching block 330 maintains an on state in response to a control signal CTRL. Thus, the 20-bit data (DREG1 + DREG2 / h, i.e. 0 1 + (6 1 / h)) shifted to the first register block 301 is output via the switching block 330 which is kept on. Output is made to block 340. The decoded gain value 0 1 + (6 1 / h) stored in the output register block 340 is transmitted to the gain memory 40 through the memory interface 33 under the control of the controller 31. At this time, the decoded gain value 0 1 + (6 1 / h) transmitted to the gain memory 40 is G 13 .

도 5에 도시된 02는 순차적인 쉬프트 동작을 통하여 제1레지스터 블록(301)에 저장된 이득 값을 나타내고, 62(=61+(121/h))는 제1레지스터 블록(301)에 02가 저장될 때 제2레지스터 블록(302)에 저장된 이득 값을 나타내고, 122(=121+(181/h))는 제1레지스터 블록(301)에 02가 저장될 때 제3레지스터 블록(303)에 저장된 이득 값을 나타내고, 182(=181+(241/h))는 제1레지스터 블록(301)에 02가 저장될 때 제4레지스터 블록(304)에 저장된 이득 값을 나타내고, 242(=241+(301/h))는 제1레지스터 블록(301)에 01이 저장될 때 제5레지스터 블록(305)에 저장된 이득 값을 나타내고, 302(=301)은 제1레지스터 블록(301)에 02가 저장될 때 제6레지스터 블록(306)에 저장된 이득 값을 나타낸다.In FIG. 5, 0 2 represents a gain value stored in the first register block 301 through sequential shift operations, and 6 2 (= 6 1 + (12 1 / h)) represents the first register block 301. Indicates a gain value stored in the second register block 302 when 0 2 is stored, and 12 2 (= 12 1 + (18 1 / h)) indicates that 0 2 is stored in the first register block 301. The gain value stored in the third register block 303 is represented, and 18 2 (= 18 1 + (24 1 / h)) represents the fourth register block 304 when 0 2 is stored in the first register block 301. 24 2 (= 24 1 + (30 1 / h)) represents a gain value stored in the fifth register block 305 when 0 1 is stored in the first register block 301, and 30 2 (= 30 1 ) represents a gain value stored in the sixth register block 306 when 0 2 is stored in the first register block 301.

N번째 동작, 즉 13번째 복호화된 이득 값(G1N)을 출력하는 동작에서, 제1레지스터 블록(301)에는 13번째 복호화된 이득 값(012=011+611/h)이 저장된다. 제1레지스터 블록(301)에 저장된 13번째 복호화된 이득 값(012=011+611/h)은 온 상태를 유지하는 스위칭 블록(330)을 통하여 출력 레지스터 블록(340)으로 출력된다.In the Nth operation, that is, the 13th decoded gain value G 1N , the 13th decoded gain value (0 12 = 0 11 +6 11 / h) is stored in the first register block 301. . The thirteenth decoded gain value (0 12 = 0 11 +6 11 / h) stored in the first register block 301 is output to the output register block 340 through the switching block 330 maintaining the on state.

따라서, 컨트롤러(31)의 제어하에, 13번째 복호화된 이득 값(012=011+611/h)은 메모리 인터페이스(33)를 통하여 이득 메모리(40)에 저장된다.Thus, under the control of the controller 31, the thirteenth decoded gain value (0 12 = 0 11 +6 11 / h) is stored in the gain memory 40 via the memory interface 33.

상술한 바와 같이, 본 발명의 실시 예에 따른 디코더(30)는 A*B 시드 매트릭스의 첫 번째 행을 구성하는 B개의 이득 값들(SA1, SA2, ..., SAB)로부터 M*N 그리드 매트릭스의 첫 번째 행을 구성하는 N개의 이득 값들(G11, G12, ..., G1N)을 계산할 수 있다. 이를 행(row) 방향 RNP 디코딩이라 한다.As described above, the decoder 30 according to an embodiment of the present invention uses M * from the B gain values S A1 , S A2 ,..., S AB constituting the first row of the A * B seed matrix. N gain values G 11 , G 12 ,..., G 1N constituting the first row of the N grid matrix may be calculated. This is called row direction RNP decoding.

상기 행 방향 RNP 디코딩에 의하여 하나의 행을 구성하는 다수의 이득 값들에 대한 디코딩이 완료되면, 시드 메모리(20)에 저장된 암호화된 이득 값들에 대한 업-데이트 과정이 수행된다. 이를 열(column) 방향 RNP 디코딩이라고도 한다.When decoding of a plurality of gain values constituting one row is completed by the row direction RNP decoding, an update process for encrypted gain values stored in the seed memory 20 is performed. This is also called column directional RNP decoding.

도 2와 도 5를 참조하여 열 방향 디코딩을 설명하면 다음과 같다.Referring to FIG. 2 and FIG. 5, the column direction decoding is as follows.

우선, 6*6 시드 매트릭스의 첫 번째 열을 구성하는 다수의 이득 값들(0~5) 각각을 업데이트하는 과정을 설명하면 다음과 같다.First, a process of updating each of a plurality of gain values 0 through 5 constituting the first column of the 6 * 6 seed matrix will be described.

컨트롤러(31)는 메모리 인터페이스(33)를 통하여 시드 메모리(20)에 저장된 두 개의 이득 값들(0과 1)을 읽어와 디코딩 처리 블록(35)을 이용하여 이들(0과 1)에 대하여 쉬프트 동작과 더하기 동작을 통하여 (01=0+1/v)를 계산한 후, 계산 결과(01)를 메모리 인터페이스(33)를 통하여 원래의 이득 값(0)이 저장된 메모리 영역에 덮어쓴다(이를 "업데이트"라 한다). 여기서, v는 h와 동일할 수 있다. 예컨대, v=2K이다.The controller 31 reads the two gain values 0 and 1 stored in the seed memory 20 through the memory interface 33 and shifts them with respect to them (0 and 1) using the decoding processing block 35. After calculating (0 1 = 0 + 1 / v) through the summing and adding operation, the result of the calculation (0 1 ) is overwritten through the memory interface 33 to the memory area in which the original gain value 0 is stored. Referred to as "update"). Here, v may be equal to h. For example, v = 2 K.

예컨대, 열 방향 RNP 디코딩을 수행하기 위하여 디코딩 처리 블록(35)은 도 4에 도시된 구성 요소들(301~340)과 실질적으로 동일 또는 유사한 구성 요소들을 더 포함할 수 있다. 이 경우, 열 방향 RNP 디코딩을 수행하기 위한 구성 요소들은 컨트롤러(31)의 제어하에 열 방향 디코딩을 수행할 수 있다. 이 경우에도 가산기(320)의 가산 결과는 메모리 인터페이스(33)를 통하여 시드 메모리(20)에 업데이트된다.For example, the decoding processing block 35 may further include components substantially the same as or similar to the components 301 to 340 illustrated in FIG. 4 to perform column direction RNP decoding. In this case, components for performing column direction RNP decoding may perform column direction decoding under the control of the controller 31. In this case, the addition result of the adder 320 is updated to the seed memory 20 through the memory interface 33.

이득 값(0)이 새로운 이득 값(01)으로 업데이트된 후, 컨트롤러(31)는 메모리 인터페이스(33)를 통하여 시드 메모리(20)에 저장된 두 개의 이득 값들(1과 2)을 읽어와 디코딩 처리 블록(35)을 이용하여 이들(1과 2)에 대하여 쉬프트 동작과 더하기 동작을 통하여 (11=1+2/v)를 계산한 후, 계산 결과(11)를 메모리 인터페이스(33)를 통하여 원래의 이득 값(1)이 저장된 영역에 업데이트한다.After the gain value 0 is updated with the new gain value 0 1 , the controller 31 reads and decodes the two gain values 1 and 2 stored in the seed memory 20 via the memory interface 33. After calculating (1 1 = 1 + 2 / v) with respect to these 1 and 2 using the processing block 35 through the shift operation and the add operation, the calculation result 1 1 is returned to the memory interface 33. Through update to the area where the original gain value (1) is stored.

이득 값(1)이 새로운 이득 값(11)으로 업데이트된 후, 컨트롤러(31)는 메모리 인터페이스(33)를 통하여 시드 메모리(20)에 저장된 두 개의 이득 값들(2과 3)을 읽어와 디코딩 처리 블록(35)을 이용하여 이들에 대하여 쉬프트 동작과 더하기 동작을 통하여 (21=2+3/v)를 계산한 후, 계산 결과(21)를 메모리 인터페이스(33)를 통하여 원래의 이득 값(2)이 저장된 영역에 업데이트한다.After the gain value 1 is updated with the new gain value 1 1 , the controller 31 reads and decodes the two gain values 2 and 3 stored in the seed memory 20 via the memory interface 33. Calculate (2 1 = 2 + 3 / v) with them using the processing block 35 through shift and add operations, and then calculate the result of the calculation (2 1 ) through the memory interface 33. Update the area where the value (2) is stored.

동일한 방법에 의하여 이득 값(4)이 새로운 이득 값(41)으로 업데이트된 후, 컨트롤러(31)는 메모리 인터페이스(33)를 통하여 시드 메모리(20)에 저장된 이득 값(5)을 읽어온 후 이득 값(5)을 원래의 이득 값(5)이 저장된 영역에 다시 저장한다.After the gain value 4 is updated to the new gain value 4 1 by the same method, the controller 31 reads the gain value 5 stored in the seed memory 20 through the memory interface 33 and then reads it. The gain value 5 is stored again in the area where the original gain value 5 is stored.

디코더(30)에 의하여 (B-1)번, 즉 5번의 쉬프트 연산과 더하기 연산이 수행되면 첫 번째 열에 대한 이득 값들이 업데이트된다.When the shift operation and the addition operation of (B-1), that is, the fifth operation, are performed by the decoder 30, the gain values for the first column are updated.

첫 번째 열에 대한 열 방향 디코딩이 종료되면, 디코더(30)는 6*6 시드 매트릭스의 두 번째 열을 구성하는 다수의 이득 값들(6과 7) 각각을 업데이트하는 열 방향 디코딩을 수행한다. 즉, 디코더(30)는 인접하는 두 개의 이득 값들(6과 7, 7과 8, 8과 9, 9와 10, 또는 10과 11)을 이용하여 원래의 이득 값(6, 7, 8, 9, 또는 10)을 새로운 이득 값(61, 71,81,91,또는 101)으로 각각 업데이트한다. 그러나, 6번째 행의 이득 값(11)은 그대로 유지된다.When column direction decoding for the first column ends, the decoder 30 performs column direction decoding to update each of the plurality of gain values 6 and 7 constituting the second column of the 6 * 6 seed matrix. That is, the decoder 30 uses the two adjacent gain values 6 and 7, 7 and 8, 8 and 9, 9 and 10, or 10 and 11 to obtain the original gain values 6, 7, 8 and 9. , Or 10) are updated with new gain values 6 1 , 7 1 , 8 1 , 9 1 , or 10 1 , respectively. However, the gain value 11 of the sixth row is kept as it is.

이와 같은 방법으로 6개의 열들 각각에 대한 열 방향 디코딩이 종료되면, 디코더(30)는 11*13 그리드 매트릭스의 두 번째 행을 구성하는 13개의 이득 값들(G21, G22, ..., G2N) 각각을 계산하기 위하여 상술한 열 방향 RNP 디코딩에 의하여 업데이트된 이득 값들(SA1, SA2, ..., SAB)을 사용하여 행 방향 RNP 디코딩을 수행한다.In this way, when the column direction decoding for each of the six columns is finished, the decoder 30 performs the thirteen gain values G 21 , G 22 , ..., G constituting the second row of the 11 * 13 grid matrix. 2N ) performs row direction RNP decoding using the gain values S A1 , S A2 ,..., S AB updated by the column direction RNP decoding described above to calculate each.

이득 값들(G21, G22, ..., G2N) 각각을 디코딩하는 과정은 이득 값들(G11, G12, ..., G1N) 각각을 디코딩하는 과정과 실질적으로 유사하므로 이에 대한 상세한 설명을 생략한다.The decoding of each of the gain values G 21 , G 22 , ..., G 2N is substantially similar to the decoding of each of the gain values G 11 , G 12 , ..., G 1N . Detailed description will be omitted.

이득 값들(G21, G22, ..., G2N) 각각을 디코딩하는 과정이 종료된 후, 디코더 (30)는 각각의 열을 구성하는 이득 값들을 이용하여 열 방향 RNP 디코딩을 수행한다.After the process of decoding each of the gain values G 21 , G 22 ,..., G 2N ends, the decoder 30 performs column direction RNP decoding using the gain values constituting each column.

상기 열 방향 RNP 디코딩이 종료된 후, 디코더(30)는 11*13 그리드 매트릭스의 세 번째 행을 구성하는 13개의 이득 값들 각각을 계산하기 위하여 상술한 열 방향 RNP 디코딩에 의하여 업데이트된 이득 값들을 사용하여 행 방향 RNP 디코딩을 다시 수행한다.After the column direction RNP decoding is finished, the decoder 30 uses the gain values updated by the column direction RNP decoding described above to calculate each of the 13 gain values constituting the third row of the 11 * 13 grid matrix. To perform row direction RNP decoding again.

상술한 바와 같이 디코더(30)는 행 방향 RNP 디코딩 동작과 열 방향 RNP 디코딩 동작을 반복적으로 수행하여 6*6 시드 매트릭스로부터 11*13 그리드 매트릭스를 계산할 수 있다.As described above, the decoder 30 may repeatedly perform a row direction RNP decoding operation and a column direction RNP decoding operation to calculate an 11 * 13 grid matrix from a 6 * 6 seed matrix.

최종적으로 11*13 그리드 매트릭스로 표현되는 복호화된 다수의 이득 값들은 이득 메모리(40)에 저장된다. Finally, a plurality of decoded gain values represented by an 11 * 13 grid matrix are stored in the gain memory 40.

디코더(30)에 의한 복호화 과정이 모두 종료되면, 계산 블록(50)은 이득 메모리(40)에 저장된 이득 값들을 이용하여 데이터(DATA)를 보정하고 보정된 데이터(CDATA)를 출력한다.When the decoding process by the decoder 30 is completed, the calculation block 50 corrects the data DATA using the gain values stored in the gain memory 40 and outputs the corrected data CDATA.

도 6은 m*n 그리드(grid)로 분할된 이미지를 나타낸다. 도 6을 참조하면, 하나의 이미지는 m*n개의 그리드로 분할된다. 따라서, 각 점의 개수는 (m+1)*(n+1)개가 된다. 각 점은 이득 값을 나타낸다. 이때, M=m+1이고, N=n+1이다. m과 n은 자연수이다.6 shows an image divided into an m * n grid. Referring to FIG. 6, one image is divided into m * n grids. Therefore, the number of points is (m + 1) * (n + 1). Each point represents a gain value. At this time, M = m + 1 and N = n + 1. m and n are natural numbers.

예컨대, 하나의 이미지가 1200*1000이고, m=12이고 n=10인 경우 하나의 그리드는 100*100의 픽셀들을 포함한다. 도 6에 도시된 바와 같이 하나의 그리드는 4 개의 이득 값들(G11, G12, G13, 및 G14)을 포함한다. 따라서, 하나의 픽셀의 이득 값(G)은 상기 하나의 픽셀을 둘러싸고 있는 4 개의 이득 값들(G11, G12, G13, 및 G14)의 양선형 보간으로 구할 수 있다. 예컨대, 이득 값(G)은 기준 이득 값 (Gint)과 편차(ΔG)를 이용하여 계산할 수 있다.For example, if one image is 1200 * 1000, m = 12 and n = 10, one grid contains 100 * 100 pixels. As shown in FIG. 6, one grid includes four gain values G11, G12, G13, and G14. Therefore, the gain value G of one pixel may be obtained by bilinear interpolation of four gain values G11, G12, G13, and G14 surrounding the one pixel. For example, the gain value G may be calculated using the reference gain value Gint and the deviation ΔG.

도 7은 도 2에 도시된 데이터 처리 장치에서 사용되는 양선형 보간(bilinear interpolation)을 설명하기 위한 개념 도이다. 도 2에 도시된 계산 블록(50)은 도 7에 도시된 바와 같이 이득 메모리(40)로부터 출력되는 다수의 이득 값들(예컨대, G1, G2, G3, 및 G4)을 이용하여 양선형 보간을 수행하여 데이터(DATA)를 보정한다.FIG. 7 is a conceptual diagram for describing bilinear interpolation used in the data processing apparatus shown in FIG. 2. The calculation block 50 shown in FIG. 2 performs bilinear interpolation using a plurality of gain values (eg, G1, G2, G3, and G4) output from the gain memory 40 as shown in FIG. To correct the data.

본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.

도 1은 1차원 RNP 알고리즘을 구현한 하드웨어의 기본 구조를 나타낸다.1 shows a basic structure of hardware implementing a one-dimensional RNP algorithm.

도 2는 본 발명의 실시 예에 따른 데이터 처리장치의 블록 도를 나타낸다.2 is a block diagram of a data processing apparatus according to an exemplary embodiment of the present invention.

도 3은 도 2에 도시된 디코딩 처리 블록의 동작을 개념적으로 설명하기 위한 도면이다.3 is a diagram for conceptually describing an operation of a decoding processing block illustrated in FIG. 2.

도 4는 도 2에 도시된 디코딩 처리 블록의 블록 도를 나타낸다.4 shows a block diagram of the decoding processing block shown in FIG.

도 5는 도 2에 도시된 디코더의 동작을 개념적으로 설명하기 위한 그림이다.FIG. 5 is a diagram for conceptually describing an operation of the decoder illustrated in FIG. 2.

도 6은 m*n 그리드(grid)로 분할된 이미지를 나타낸다.6 shows an image divided into an m * n grid.

도 7은 도 2에 계산 블록에서 사용되는 양선형 보간(bilinear interpolation)을 설명하기 위한 개념 도이다.FIG. 7 is a conceptual diagram for describing bilinear interpolation used in the calculation block of FIG. 2.

Claims (10)

A(A는 자연수)*B(B는 자연수) 시드 매트릭스를 구성하는 다수의 암호화된 이득 값들을 저장하기 위한 시드 메모리;A seed memory for storing a plurality of encrypted gain values constituting A (A is a natural number) * B (B is a natural number) seed matrix; M(M은 자연수, M>A)*N(N은 자연수, N>B) 그리드 매트릭스를 구성하는 다수의 복호화된 이득 값들을 저장하기 위한 이득 메모리; 및A gain memory for storing a plurality of decoded gain values constituting M (M is a natural number, M> A) * N (N is a natural number, N> B) grid matrix; And 상기 시드 메모리와 상기 이득 메모리 사이에 접속되고, 상기 A*B 시드 매트릭스의 첫 번째 행(row)을 구성하는 다수의 암호화된 이득 값들로부터 상기 M*N 그리드 매트릭스의 i(i는 자연수, 2≤i≤M)번째 행을 구성하는 다수의 복호화된 이득 값들 각각을 복호화하기 전에, 상기 A*B 시드 매트릭스를 구성하는 상기 다수의 암호화된 이득 값들 중에서 각각의 열 방향으로 인접하는 두 개의 이득 값들에 기초하여 상기 A*B 시드 매트릭스를 구성하는 상기 다수의 암호화된 이득 값들 중에서 적어도 일부를 업데이트하는 디코더를 포함하는 데이터 처리장치.I (i is a natural number, 2 ≦) of the M * N grid matrix from a plurality of encrypted gain values connected between the seed memory and the gain memory and constituting a first row of the A * B seed matrix. Before decrypting each of the plurality of decrypted gain values constituting the i &lt; M) &lt; th &gt; row, two adjacent gain values in each column direction among the plurality of encrypted gain values constituting the A * B seed matrix And a decoder to update at least some of the plurality of encrypted gain values that make up the A * B seed matrix. 제1항에 있어서, 상기 디코더는,The method of claim 1, wherein the decoder, 상기 A*B 시드 매트릭스의 상기 첫 번째 행(row)을 구성하며 업데이트된 다수의 암호화된 이득 값들로부터 상기 M*N 그리드 매트릭스의 상기 i(i는 자연수, 2≤i≤M)번째 행을 구성하는 상기 다수의 복호화된 이득 값들 각각을 복호화하는 데이터 처리장치.Constituting the first row of the A * B seed matrix and constructing the i (i is a natural number, 2 ≦ i ≦ M) th row of the M * N grid matrix from updated plurality of encrypted gain values. And decoding each of the plurality of decoded gain values. 제1항에 있어서, 상기 데이터 처리장치는,The data processing apparatus of claim 1, wherein the data processing apparatus comprises: 상기 이득 메모리로부터 출력된 상기 다수의 복호화된 이득 값들 중에서 다수의 기준 이득 값들에 기초하여 입력 데이터에 대해 양선형 보간(bilinear interpolation)을 수행하여 보정된 데이터를 출력하기 위한 계산 블록을 더 포함하는 데이터 처리장치.And a calculation block for outputting corrected data by performing bilinear interpolation on input data based on a plurality of reference gain values among the plurality of decoded gain values output from the gain memory. Processing unit. 제1항에 있어서, 상기 데이터 처리장치는 렌즈 보정(lens correction)을 수행하는 장치로서 이미지 처리장치의 일부로서 구현되는 데이터 처리장치.The data processing apparatus of claim 1, wherein the data processing apparatus is implemented as part of an image processing apparatus as a device for performing lens correction. 제1항에 있어서, 상기 디코더는,The method of claim 1, wherein the decoder, 각각이 상기 첫 번째 행을 구성하는 상기 다수의 암호화된 이득 값들 중에서 대응되는 이득 값을 저장하고 클락 신호에 응답하여 데이터 쉬프트 동작을 수행하는 직렬로 접속된 B개의 레지스터 블록들;Serially connected B register blocks for storing a corresponding gain value among the plurality of encrypted gain values constituting the first row and performing a data shift operation in response to a clock signal; 상기 B개의 레지스터 블록들 중에서 제2레지스터 블록에 저장된 제1 L(L은 자연수)-비트 데이터를 K(K는 자연수, K<L)-비트만큼 쉬프트시키고 쉬프트된 제1 L-비트 데이터를 출력하기 위한 쉬프트 블록;Shifting the first L-bit data stored in the second register block among the B register blocks by K (K is a natural number, K <L) -bit and outputting the shifted first L-bit data A shift block to make; 상기 쉬프트된 제1 L-비트 데이터와 상기 B개의 레지스터 블록들 중에서 제1레지스터 블록에 저장된 제2 L-비트 데이터를 더하여 제3 L-비트 데이터를 생성하고 생성된 제3 L-비트 데이터를 상기 B개의 다수의 레지스터 블록들 중에서 B번째 레지스터 블록으로 출력하기 위한 가산기; 및The third L-bit data is generated by adding the shifted first L-bit data and second L-bit data stored in a first register block among the B register blocks, and generates the third L-bit data. An adder for outputting to the B-th register block among the B plurality of register blocks; And 상기 제3L-비트 데이터가 상기 데이터 쉬프트 동작을 통하여 상기 제1레지스터 블록으로 쉬프트될 때마다, 컨트롤러로부터 출력된 제어신호에 응답하여 상기 제1레지스터 블록으로 쉬프트된 제3 L-비트 데이터를 상기 이득 메모리로 출력하기 위한 스위칭 블록을 포함하는 데이터 처리장치.Each time the third L-bit data is shifted to the first register block through the data shift operation, the third L-bit data shifted to the first register block is gained in response to a control signal output from a controller. A data processing apparatus comprising a switching block for output to a memory. 각각이 데이터 쉬프트 동작을 수행할 수 있는 직렬로 접속된 다수의 레지스터 블록들;A plurality of serially connected register blocks each capable of performing a data shift operation; 상기 다수의 레지스터 블록들 중에서 제2레지스터 블록에 저장된 제1 L(L은 자연수)-비트 데이터를 K(K는 자연수, K<L)-비트만큼 쉬프트시키고 쉬프트된 제1 L-비트 데이터를 출력하기 위한 쉬프트 블록;The first L-bit data stored in the second register block among the plurality of register blocks is shifted by K (K is a natural number, K <L) -bit, and the shifted first L-bit data is output. A shift block to make; 상기 쉬프트된 제1 L-비트 데이터와 상기 다수의 레지스터 블록들 중에서 제1레지스터 블록에 저장된 제2 L-비트 데이터를 더하여 제3 L-비트 데이터를 생성하고 생성된 제3 L-비트 데이터를 상기 다수의 레지스터 블록들 중에서 마지막 레지스터 블록으로 출력하기 위한 가산기; 및The third L-bit data is generated by adding the shifted first L-bit data and second L-bit data stored in a first register block among the plurality of register blocks, and generating the third L-bit data. An adder for outputting to the last register block of the plurality of register blocks; And 상기 제3L-비트 데이터가 상기 데이터 쉬프트 동작을 통하여 상기 제1레지스터 블록으로 쉬프트될 때마다, 컨트롤러로부터 출력된 제어신호에 응답하여 상기 제1레지스터 블록으로 쉬프트된 제3 L-비트 데이터를 출력하기 위한 스위칭 블록을 포함하는 데이터 처리장치.Whenever the third L-bit data is shifted to the first register block through the data shift operation, outputting the third L-bit data shifted to the first register block in response to a control signal output from a controller. Data processing device comprising a switching block for. 제6항에 있어서, 상기 데이터 처리장치는,The data processing apparatus of claim 6, wherein the data processing apparatus comprises: 다수의 암호화된 이득 값들을 저장하는 시드 메모리; 및A seed memory for storing a plurality of encrypted gain values; And 다수의 복호화된 이득 값들을 저장하는 이득 메모리를 더 포함하며,A gain memory for storing a plurality of decoded gain values, 상기 컨트롤러는 상기 다수의 암호화된 이득 값들 중에서 제1세트의 이득 값들을 상기 다수의 레지스터 블록들로 저장하는 것을 제어하고, 상기 다수의 복호화된 이득 값들 중에서 제2세트의 이득 값들을 상기 이득 메모리에 저장될 때까지 상기 제어신호를 발생하여 상기 스위칭 블록의 동작을 제어하는 데이터 처리장치.The controller controls storing a first set of gain values among the plurality of encrypted gain values into the plurality of register blocks, and stores a second set of gain values among the plurality of decrypted gain values in the gain memory. Generating a control signal to control the operation of the switching block until stored. 제7항에 있어서,8. The method of claim 7, 상기 컨트롤러는 상기 다수의 암호화된 이득 값들 중에서 각각의 열 방향으로 서로 인접하는 두 개의 이득 값들을 이용하여 상기 다수의 암호화된 이득 값들 중에서 적어도 일부를 업데이트하는 업데이트 동작을 더 수행하고,The controller further performs an update operation of updating at least some of the plurality of encrypted gain values using two gain values adjacent to each other in each column direction among the plurality of encrypted gain values, 상기 제1세트의 이득 값들 각각은 상기 업 데이트 동작을 통하여 업데이트된 이득 값인 데이터 처리장치.And each of the first set of gain values is a gain value updated through the update operation. 제7항에 있어서, 상기 데이터 처리장치는,The apparatus of claim 7, wherein the data processing apparatus comprises: 상기 이득 메모리로부터 출력된 상기 다수의 복호화된 이득 값들 중에서 다수의 기준 이득 값들에 기초하여 입력 데이터를 보정하고 보정된 데이터를 출력하기 위한 계산 블록을 더 포함하는 데이터 처리장치.And a calculation block for correcting input data based on a plurality of reference gain values among the plurality of decoded gain values output from the gain memory and outputting the corrected data. 제7항에 있어서, 상기 데이터 처리장치는,The apparatus of claim 7, wherein the data processing apparatus comprises: 상기 이득 메모리로부터 출력된 상기 다수의 복호화된 이득 값들 중에서 다수의 기준 이득 값들에 기초하여 입력 데이터에 대해 양선형 보간(bilinear interpolation)을 수행하여 보정된 데이터를 출력하기 위한 계산 블록을 더 포함하는 데이터 처리장치.And a calculation block for outputting corrected data by performing bilinear interpolation on input data based on a plurality of reference gain values among the plurality of decoded gain values output from the gain memory. Processing unit.
KR1020080019461A 2007-11-16 2008-03-03 Data processing apparatus for operating lens correction KR101377712B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080019461A KR101377712B1 (en) 2008-03-03 2008-03-03 Data processing apparatus for operating lens correction
US12/271,049 US8266507B2 (en) 2007-11-16 2008-11-14 Data processing apparatus for operating lens correction and method for compressing and restoring lookup table values

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080019461A KR101377712B1 (en) 2008-03-03 2008-03-03 Data processing apparatus for operating lens correction

Publications (2)

Publication Number Publication Date
KR20090094490A KR20090094490A (en) 2009-09-08
KR101377712B1 true KR101377712B1 (en) 2014-04-01

Family

ID=41294889

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080019461A KR101377712B1 (en) 2007-11-16 2008-03-03 Data processing apparatus for operating lens correction

Country Status (1)

Country Link
KR (1) KR101377712B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5938787A (en) 1997-03-27 1999-08-17 Ericsson Inc. Communications systems and methods employing code rate partitioning with nonorthogonal modulation
US6651213B2 (en) 2001-03-19 2003-11-18 International Business Machines Corporation Programmable multi-level track layout method and system for optimizing ECC redundancy in data storage devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5938787A (en) 1997-03-27 1999-08-17 Ericsson Inc. Communications systems and methods employing code rate partitioning with nonorthogonal modulation
US6651213B2 (en) 2001-03-19 2003-11-18 International Business Machines Corporation Programmable multi-level track layout method and system for optimizing ECC redundancy in data storage devices

Also Published As

Publication number Publication date
KR20090094490A (en) 2009-09-08

Similar Documents

Publication Publication Date Title
JP5320964B2 (en) Cyclic shift device, cyclic shift method, LDPC decoding device, television receiver, and reception system
KR100808664B1 (en) Parity check matrix storing method, block ldpc coding method and the apparatus using parity check matrix storing method
JP6066557B2 (en) Data storage control device, data storage device, data storage method, compression circuit, and compression method
US8266507B2 (en) Data processing apparatus for operating lens correction and method for compressing and restoring lookup table values
KR102452945B1 (en) Apparatus and Method for performing Fourier transform
JP2000201084A (en) Rate matching method and digital communication system
JP4767266B2 (en) Arithmetic unit, error correction decoding circuit, and error position polynomial calculation method
KR101377712B1 (en) Data processing apparatus for operating lens correction
JP2004140702A (en) Image signal processor, gamma correcting method and display
JP2016213730A (en) Decoder, decryption method, and program
JP2009081812A (en) Signal processing apparatus and method
JP2017050752A (en) Image encoding device and method, and image decoding device and method
WO2019030860A1 (en) Method and device for generating error detecting redundant bit
JP2010097346A (en) Image processor, program, and system
JPH0476540B2 (en)
WO2016181978A1 (en) Matrix operation device, matrix operation method, and program
JP5845202B2 (en) Image compression apparatus and image processing system
JP2018120536A (en) Data interpolation apparatus and method therefor, and image processing apparatus
JP6726160B2 (en) Imaging device, imaging system, signal processing device, and signal processing method
WO2015133095A1 (en) Apparatus for generating parity check code, coding method, coding apparatus, and storage medium
JP5814420B1 (en) Matrix operation circuit and matrix operation method
KR20160057590A (en) Elimination Method for Common Sub-Expression And Filter Using the Method
KR101742765B1 (en) Interpolator and interpolator pixel generation method
KR101115088B1 (en) High-speed low-complexity reed-solomon decoding apparatus for using the truncated ribm architecture
JP4339848B2 (en) Orthogonal transformation method, orthogonal transformation device, orthogonal transformation program and recording medium thereof

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
FPAY Annual fee payment
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170228

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180228

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190228

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200228

Year of fee payment: 7