KR101699029B1 - 영역 처리 속도를 향상한 영상 처리 장치 및 영상 처리 방법 - Google Patents
영역 처리 속도를 향상한 영상 처리 장치 및 영상 처리 방법 Download PDFInfo
- Publication number
- KR101699029B1 KR101699029B1 KR1020150111639A KR20150111639A KR101699029B1 KR 101699029 B1 KR101699029 B1 KR 101699029B1 KR 1020150111639 A KR1020150111639 A KR 1020150111639A KR 20150111639 A KR20150111639 A KR 20150111639A KR 101699029 B1 KR101699029 B1 KR 101699029B1
- Authority
- KR
- South Korea
- Prior art keywords
- image data
- pixels
- image
- processing
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
Abstract
영역 처리 속도를 향상한 영상 처리 장치 및 영상 처리 방법이 개시된다. 본 발명의 일 실시예에 따른 영상 처리 방법은, 하나 이상의 픽셀들에 대한 영역 처리를 위해 다수 개의 행들 및 다수 개의 열들의 픽셀들의 영상 데이터를 로딩하는 단계와, 상기 로딩된 영상 데이터에 대해 적어도 두 개의 행들 및 적어도 두 개의 열들의 픽셀들을 하나의 파트로 그룹핑하는 단계와, 상기 그룹핑된 영상 데이터에 대해, 어느 하나의 픽셀에 대한 영역 처리에 이용되는 다수 개의 픽셀들의 영상 데이터가 연속하게 위치하도록 영상 데이터를 재배치하는 단계 및 상기 재배치된 영상 데이터로부터 연산 데이터를 생성함으로서 상기 영역 처리를 수행하는 단계를 구비하는 것을 특징으로 한다.
Description
본 발명은 영상 처리 장치 및 영상 처리 방법에 관한 것으로서, 자세하게는 마스크 행렬을 이용한 영상의 영역 처리의 속도를 향상한 영상 처리 장치 및 영상 처리 방법에 관한 것이다.
고해상도 또는 고화질의 데이터를 처리하는 하드웨어의 개발 및 보급에 따라, 데이터의 전송 효율을 향상시키거나 화질을 향상하기 위하여 영상 처리 장치는 영상 데이터에 대해 신호 처리 동작을 수행할 수 있다. 일 예로서, 영상 처리 장치는 소정의 단위(예컨대, 프레임 단위)로 수신되는 영상 데이터에 대해 압축 동작을 수행하거나, 영상에 포함될 수 있는 노이즈를 제거하거나 영상에 존재하는 에지를 검출하기 위한 처리 동작 등 각종 영상 처리 동작을 수행할 수 있다.
상기와 같은 각종 영상 처리 동작의 일 예로서, 영상의 영역 처리 동작은 특정 영역 단위로서 영상 데이터에 대한 처리 동작을 수행한다. 즉, 영상의 영역 처리 동작에서, 어느 하나의 픽셀에 대한 영상 데이터의 값은 이에 인접한 하나 이상의 다른 픽셀들의 영상 데이터의 값을 고려하여 변경될 수 있다. 영역 처리 동작의 일 예로서 마스크 행렬을 이용한 마스크 연산 동작이 있다.
마스크 연산 동작에서, 특정 픽셀의 영상 데이터의 값은 마스크 크기 만큼의 주변 픽셀들의 영상 데이터의 값의 영향을 받도록 하여 마스크 중심 위치의 픽셀 값을 조정하고, 이를 영상 전체에 대해 적용하도록 하는 회선(convolution) 기법이 필요로 된다. 즉, 회선(convolution)은 영역 처리의 기본 단위를 나타내는 마스크 연산을 전체 영상에 대해 그 위치를 이동해가면서 적용하는 기법에 해당한다.
그러나, 상기와 같은 영상의 영역 처리 동작은 매우 많은 연산량을 필요로 하며, 이에 따라 데이터 영상 처리의 속도가 저하되는 문제가 발생될 수 있다.
본 발명의 기술적 사상은, 영역 처리 속도를 향상한 영상 처리 장치 및 영상 처리 방법을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 영상 처리 방법은, 하나 이상의 픽셀들에 대한 영역 처리를 위해 다수 개의 행들 및 다수 개의 열들의 픽셀들의 영상 데이터를 로딩하는 단계와, 상기 로딩된 영상 데이터에 대해 적어도 두 개의 행들 및 적어도 두 개의 열들의 픽셀들을 하나의 파트로 그룹핑하는 단계와, 상기 그룹핑된 영상 데이터에 대해, 어느 하나의 픽셀에 대한 영역 처리에 이용되는 다수 개의 픽셀들의 영상 데이터가 연속하게 위치하도록 영상 데이터를 재배치하는 단계 및 상기 재배치된 영상 데이터로부터 연산 데이터를 생성함으로서 상기 영역 처리를 수행하는 단계를 구비하는 것을 특징으로 한다.
바람직하게는, 상기 영상 데이터를 로딩하는 단계는, 상기 영상 데이터를 레지스터 유닛에 저장하는 단계를 포함하고, 상기 그룹핑하는 단계는, 상기 레지스터 유닛에 저장된 영상 데이터에 대한 좌우 쉬프팅 연산 및 논리합(OR) 연산 동작을 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 영역 처리는, m*m 의 사이즈를 가지는 마스크 행렬의 계수와, m*m 의 사이즈 단위의 픽셀들의 영상 데이터와의 연산에 의해 수행되고, 상기 영상 데이터를 로딩하는 단계는, 제1 내지 제A 픽셀들에 대한 영역 처리를 위해 m 행 및 (A+2) 열의 픽셀들의 영상 데이터를 로딩하는 것을 특징으로 한다.
또한 바람직하게는, 상기 그룹핑하는 단계는, 상기 m 행 및 두 개 이상의 열의 픽셀들을 하나의 파트로 그룹핑하고, 상기 재배치하는 단계는, 상기 하나의 파트에 속하는 픽셀들의 영상 데이터의 레지스터 유닛에서의 저장 위치를 변경하는 것을 특징으로 한다.
또한 바람직하게는, 상기 영역 처리를 수행하는 단계는, 상기 재배치 결과에 따라 정렬된 픽셀들의 영상 데이터에서, 서로 인접하게 위치한 m*m 의 픽셀들의 영상 데이터를 마스크 행렬의 계수와 연산하는 것을 특징으로 한다.
또한 바람직하게는, 상기 로딩하는 단계는, 프레임에 포함된 행들의 순서에 따라 픽셀들의 영상 데이터를 로딩하고, 상기 재배치하는 단계는, 영역 처리에 이용되는 픽셀들의 순서에 기반하여 상기 픽셀들의 영상 데이터의 위치를 재배치하는 것을 특징으로 한다.
한편, 본 발명의 일 실시예에 따른 영상 처리 장치는, 영상 처리에 관련된 코드들을 실행하는 프로세싱 유닛과, 외부로부터 수신된 프레임의 픽셀들의 영상 데이터를 저장하는 프레임 저장부 및 상기 수신된 영상 데이터에 대한 영역 처리를 수행하는 영역 처리부를 구비하고, 상기 영역 처리부는, 하나 이상의 픽셀들에 대한 영역 처리를 위해 다수 개의 행들 및 다수 개의 열들의 픽셀들의 영상 데이터를 로드하는 로드부와, 상기 로딩된 영상 데이터에 대해 적어도 두 개의 행들 및 적어도 두 개의 열들의 픽셀들을 하나의 파트로 그룹핑하고, 상기 그룹핑된 영상 데이터에 대해 어느 하나의 픽셀에 대한 영역 처리에 이용되는 다수 개의 픽셀들의 영상 데이터가 연속하게 위치하도록 영상 데이터들을 재배치하는 정렬부 및 상기 재배치된 영상 데이터로부터 연산 데이터를 생성함으로서 상기 영역 처리를 수행하는 연산부를 구비하는 것을 특징으로 한다.
본 발명의 실시예에 따른 영상 처리 장치 및 영상 처리 방법은, 영상의 영역 처리를 수행함에 있어서 마스크 연산에 이용되는 처리 대상 픽셀과 이에 인접한 픽셀들을 정렬함에 의해 마스크 연산을 용이하게 하고, 이에 따라 연산량을 감소함으로써 영역 처리의 속도를 향상할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 영상 처리 장치의 일 예를 나타내는 블록도이다.
도 2는 도 1의 영역 처리부의 일 구현 예를 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 영상 처리 방법을 나타내는 플로우차트이다.
도 4 내지 도 9는 본 발명의 실시예에 따른 영역 처리 동작에서의 영상 데이터의 특성을 나타내는 도면이다.
도 10a,b는 본 발명의 다른 실시예에 따른 영상 처리 장치를 나타내는 블록도이다.
도 2는 도 1의 영역 처리부의 일 구현 예를 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 영상 처리 방법을 나타내는 플로우차트이다.
도 4 내지 도 9는 본 발명의 실시예에 따른 영역 처리 동작에서의 영상 데이터의 특성을 나타내는 도면이다.
도 10a,b는 본 발명의 다른 실시예에 따른 영상 처리 장치를 나타내는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다. 본 발명의 실시 예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 실시예에 따른 영상 처리 장치의 일 예를 나타내는 블록도이다. 도 1에 도시된 바와 같이, 영상 처리 장치(100)는 입력 영상(Input_F)을 수신하고, 각종 영상 처리를 수행하여 출력 영상(Output_F)을 생성하여 제공할 수 있다. 일 예로서, 영상 처리 장치(100)는 입력 영상(Input_F)을 프레임 단위로 수신할 수 있으며, 또한 출력 영상(Output_F)을 프레임 단위로 제공할 수 있다. 또한 일 예로서, 영상 처리 장치(100)는 영상을 생성하는 수단(예컨대, CMOS 이미지 센서)으로부터 영상을 수신하고, 영상을 구현하는 수단(예컨대, 디스플레이 장치)으로 영상을 제공할 수 있다.
입력 영상(Input_F)은 프레임에 포함되는 다수의 픽셀에 대응하는 영상 데이터들을 포함할 수 있다. 일 예로서, 입력 영상(Input_F)은 다수의 픽셀들 각각의 영상 데이터를 포함할 수 있으며, 각각의 픽셀은 다수 비트들의 영상 데이터를 포함할 수 있다.
영상 처리 장치(100)는 입력 영상(Input_F)에 대해 각종 영상 처리 동작을 수행할 수 있으며, 일 예로서 영상 처리 장치(100)는 마스크 행렬을 이용한 영역 처리(Area Processing) 동작을 수행할 수 있다. 상기 영역 처리 동작은 영상에 포함될 수 있는 노이즈를 제거하기 위한 필터링 동작이나, 에지 검출, 영상 스무딩 및 영상 강화 등의 처리를 위한 필터링 동작 등을 포함할 수 있다.
일 예로서, 영상 처리 장치(100)는 프로세싱 유닛(110), 인터페이스부(120), RAM(130), ROM(140), 프레임 저장부(150) 및 영역 처리부(160)를 포함할 수 있다. 프로세싱 유닛(110)은 영상 처리 장치(100)의 전반적인 동작을 제어할 수 있다. 일 예로서, 영상 처리 장치(100)에서 수행되는 각종 영상 처리 동작은 프로세싱 유닛(110)의 제어 하에서 하드웨어적 및/또는 소프트웨어적으로 수행될 수 있다. 또한 일 예로서, 영상 처리 장치(100) 내부의 ROM(140)에 저장된 코드들은 RAM(130)에 로딩될 수 있으며, 또한 영상 처리 장치(100) 외부의 프로그램들이 RAM(130)에 로딩될 수 있다. 프로세싱 유닛(110)은 RAM(130)에 저장된 코드들 및 프로그램들을 실행함으로써 전술한 각종 영상 처리 동작이 수행되도록 제어할 수 있다.
인터페이스부(120)는 영상 처리 장치(100)의 입출력 동작을 수행할 수 있으며, 일 예로서 입력 영상(Input_F)을 수신하는 동작과 출력 영상(Output_F)을 제공하는 동작을 수행할 수 있다. ROM(140)은 영상 처리 장치(100)의 전반적인 동작을 제어하기 위한 코드들을 불휘발성하게 저장할 수 있으며, 영상 처리 장치(100)의 초기 구동시 ROM(140)에 저장된 코드들은 RAM(130)에 로딩될 수 있다.
프레임 저장부(150)는 수신된 입력 영상(Input_F)에 포함된 영상 데이터들을 일시 저장할 수 있다. 일 예로서, 프레임 저장부(150)는 프레임 단위에 따라 하나 또는 그 이상의 프레임에 대한 영상 데이터들을 저장할 수 있다.
본 발명의 실시예에 따라, 영역 처리부(160)는 입력 영상(Input_F)에 대한 영상 처리를 수행할 수 있으며, 일 예로서 영역 처리부(160)는 입력 영상(Input_F)을 소정의 영역 단위로 처리 동작을 수행할 수 있다. 일 예로서, 영역 처리는 소정의 사이즈를 갖는 마스크 행렬을 이용한 처리 동작을 수행할 수 있으며, 만약 마스크의 행렬 사이즈가 3*3에 해당하는 경우, 영역 처리부(160)는 입력 영상(Input_F)을 3*3 사이즈를 갖는 영역 단위로 처리할 수 있다. 일 예로서, 영역 처리부(160)는 입력 영상(Input_F)의 3*3 사이즈의 픽셀들의 영상 데이터와 3*3 사이즈의 마스크 행렬을 연산함에 의해 처리 동작을 수행할 수 있다.
또한 본 발명의 실시예에 따라, 영역 처리부(160)는 영역 처리를 수행하기 위해 입력 영상(Input_F)의 다수의 픽셀들의 영상 데이터에 대한 정렬 동작을 수행할 수 있다. 어느 하나의 프레임에 대한 영상 처리 동작에서, 마스크 연산은 소정의 영역 단위로 프레임의 전체 영상에 대해 그 위치를 이동해가면서 적용될 수 있으므로, 어느 하나의 프레임의 픽셀들은 특정한 순서에 따라 마스크 연산에 이용될 수 있다. 본 발명의 실시예에 따른 정렬 동작은, 상기 특정한 순서에 기반하여 영상 데이터들의 순서를 재배치함에 의해 수행될 수 있다. 이후, 정렬된 영상 데이터를 이용하여 마스크 연산 동작이 수행될 수 있다.
본 발명의 일 실시예에 따라, 상기 픽셀들의 영상 데이터에 대한 정렬 동작은 소프트웨어적 또는 하드웨어적으로 수행되어도 무방하다. 예컨대, 프로세싱 유닛(110)의 제어 하에서, 하나의 프레임에 포함되는 픽셀들은 각각의 픽셀의 프레임 내에서의 위치에 따라 정렬되며, 본 발명의 실시예에 따른 재배치 동작에 따라 상기 정렬된 픽셀들의 위치가 변동될 수 있다. 또는 다른 실시예로서, 다수의 픽셀들의 영상 데이터는 소정의 저장 수단(예컨대, 레지스터 유닛)에 저장되고, 레지스터 유닛에 저장된 픽셀들의 영상 데이터의 저장 위치를 재배치함에 의해 데이터에 대한 정렬 동작이 수행될 수도 있다.
상기와 같은 본 발명의 실시예에 따른 영상 처리 장치(100)는, 마스크 행렬을 이용한 영역 처리를 수행함에 있어서 그 연산량을 감소할 수 있으므로 영상 처리 속도를 향상할 수 있다. 즉, 영역 처리 대상의 픽셀들의 순서를 재배치하여 정렬하고, 정렬된 영상 데이터를 이용하여 영역 처리를 수행함으로써 곱합 연산(MULADD)이 가능하도록 함으로써 영역 처리에 소요되는 연산량이 감소될 수 있다.
도 2는 도 1의 영역 처리부(160)의 일 구현 예를 나타내는 블록도이다.
도 1 및 도 2를 참조하면, 영역 처리부(160)는 로드부(161), 레지스터 유닛(162), 정렬부(163), 연산부(164) 및 입출력부(165)를 포함할 수 있다. 정렬부(163)는 레지스터 유닛(162)에 로드된 영상 데이터들에 대한 정렬 동작으로서, 그룹핑 동작 및 재배치 동작 등을 수행할 수 있다. 상기 영상 데이터들에 대한 정렬 동작의 구체적인 일 실시예는 후술될 것이다. 또한, 레지스터 유닛(162)은 영역 처리부(160) 내에 구비되는 것으로 도시되었으나, 상기 레지스터 유닛(162)은 영역 처리부(160)의 외부에 구비되어도 무방하다.
로드부(161)는 영상 처리 장치(100) 내에 저장된 영상 데이터를 레지스터 유닛(162)에 로드하는 동작을 수행한다. 프레임 단위의 입력 영상(Input_F)에는 다수 개의 행들(또는, 라인들)의 픽셀들에 대한 영상 데이터가 포함될 수 있으며, 레지스터 유닛(162)에는 영상의 영역 처리를 위해 두 개 이상의 행들의 픽셀들의 영상 데이터가 로드될 수 있다.
정렬부(163)는 전술한 바에 따른 영상 데이터에 대한 정렬 동작을 수행할 수 있다. 일 예로서, 레지스터 유닛(162)에는 다수 개의 행들의 픽셀들에 대한 영상 데이터들이 로드되어 있으며, 상기 로드된 영상 데이터들에 대한 정렬 동작을 수행할 수 있다. 또한, 어느 하나의 픽셀에 대한 영상 처리를 위해서는, 상기 픽셀에 인접한 적어도 두 개의 행들 및 적어도 두 개의 열들에 대응하는 픽셀들의 영상 데이터가 이용될 수 있으며, 상기 정렬 동작은 마스크 연산에 이용될 픽셀들의 순서를 고려하여 픽셀들의 영상 데이터를 그룹핑하고 재배치하는 동작을 포함할 수 있다.
연산부(164)는 레지스터 유닛(162)에 저장된 정렬 완료된 영상 데이터들에 대한 연산 처리를 수행한다. 일 예로서, 연산부(164)는 영상 데이터들과 마스크의 계수들에 대한 연산을 수행할 수 있다. 이에 따라, 연산부(164)는 영상 데이터들과 마스크 계수들에 대한 다수의 곱셈 연산들 및 다수의 덧셈 연산들을 수행할 수 있다. 본 발명의 실시예에 따라, 영상 처리 장치(100)는 다양한 방식에 따라 영역 처리를 수행할 수 있으며, 예컨대 소정의 사이즈의 영상 데이터를 하나 이상의 마스크 행렬과 곱하거나 합산함에 의해 영역 처리가 수행될 수 있다. 일 예로서, 영상 데이터는 하나 이상의 마스크 행렬과 곱해지고 또한 다른 하나 이상의 마스크 행렬과 합산됨에 의해 영역 처리가 수행될 수 있다.
한편, 도 2에서는 본 발명의 실시예에 따른 정렬 동작이 레지스터 유닛을 이용한 하드웨어적으로 수행되는 예가 도시되었으나 본 발명의 실시예는 이에 국한될 필요가 없다. 전술한 바와 같이, 본 발명의 실시예에 따른 정렬 동작은 레지스터 유닛을 이용함이 없이 소프트웨어적으로 수행되어도 무방하다.
도 3은 본 발명의 일 실시예에 따른 영상 처리 방법을 나타내는 플로우차트이며, 도 4 내지 도 9는 본 발명의 실시예에 따른 영역 처리 동작에서의 영상 데이터의 특성을 나타내는 도면이다. 도 3에 도시된 플로우 차트를 설명함에 있어서, 상기 도 4 내지 도 9에 도시된 내용이 함께 참조된다. 이하에서는, 하나의 픽셀에서 8 비트의 영상 데이터에 대해 영역 처리가 수행되고, 영역 처리는 3*3 사이즈의 마스크 행렬을 이용하여 수행되는 예가 설명된다.
먼저, 영상 처리 장치는 입력 영상을 수신하고(S11), 일 예로서 프레임 단위의 픽셀들의 영상 데이터를 상기 입력 영상으로서 수신한다. 프레임 단위의 픽셀들은 다수 개의 행 및 다수 개의 열들의 픽셀들을 포함하고, 각각의 픽셀은 다수 비트들의 영상 데이터를 포함할 수 있다. 일 예로서, 각각의 픽셀은 1 바이트(또는, 8 비트)의 영상 데이터를 포함할 수 있다. 또는, 다른 예로서, 각각의 픽셀은 다수 비트들의 영상 데이터를 포함할 수 있으며, 상기 영상 데이터 중 일부의 비트의 데이터에 대해서만 영역 처리 동작이 수행될 수 있다. 일 예로서, 각각의 픽셀은 16 비트의 영상 데이터를 포함할 수 있으며, 상기 영역 처리는 그 일부의 비트의 데이터(예컨대, 8 비트의 휘도 정보를 갖는 데이터)에 대해서만 본 발명의 실시예에 따른 영역 처리 동작이 수행될 수 있다.
도 4a,b를 참조하면, 마스크 행렬의 크기가 3*3에 해당할 때, 픽셀(b1) 내지 픽셀(b16)의 16 개의 픽셀들의 영상 데이터를 처리하기 위해서는 이에 인접한 다수의 행들 및 다수의 열들에 위치하는 픽셀들의 영상 데이터가 함께 이용될 수 있다. 만약, 픽셀(b1)에 대해 영상 처리가 수행되는 경우, 픽셀(b1)을 중심으로 하여 3행 3열의 픽셀들(a0 ~ a2, b0 ~ b2, c0 ~ c2)의 영상 데이터와 마스크 행렬의 계수 값들(m0 ~ m8) 사이의 연산이 수행될 수 있다. 또한, 픽셀(b16)에 대해 영상 처리가 수행되는 경우, 픽셀(b16)을 중심으로 하여 3행 3열의 픽셀들(a15 ~ a17, b15 ~ b17, c15 ~ c17)의 영상 데이터와 마스크 행렬의 계수 값들(m0 ~ m8) 사이의 연산이 수행될 수 있다. 즉, 영역 처리에 기반하여 하나의 행에 위치하는 16 개의 픽셀들의 영상 데이터를 처리하기 위해서는, 3 개의 행들 및 18 개의 열들의 픽셀들의 영상 데이터가 이용될 수 있다.
상기와 같이 입력 영상이 수신되면, 상기 영상 데이터에 대한 영역 처리를 위해 프레임의 적어도 일부의 픽셀의 영상 데이터가 소정의 저장 수단(예컨대, 레지스터 유닛)에 로딩된다. 일 예로서, 영역 처리를 위해 M 행 및 N 열의 영상 데이터가 레지스터 유닛에 로딩될 수 있다(S12). 전술한 바와 같이, 하나의 행의 16 개의 픽셀들(b1 ~ b16)에 대해 영역 처리를 수행하기 위해 영상 데이터가 로딩되는 경우, 프레임의 3 개의 행들 및 18 개의 열들의 픽셀들의 영상 데이터가 로딩될 수 있다.
도 5a,b를 참조하면, 16 개의 픽셀들(b1 ~ b16)에 대한 영역 처리를 위해 소정 크기의 비트의 영상 데이터 로딩을 명령하는 명령어(load)를 이용하여 로딩 동작이 수행될 수 있다. 예컨대, 상기 명령어(load)에 따라 128 비트의 영상 데이터(또는, 8 개의 픽셀의 영상 데이터)가 로딩될 수 있다.
레지스터 유닛은 다양한 사이즈에 따라 그 영역이 논리적 또는 물리적으로 구분될 수 있으며, 상기 레지스터 유닛은 제1 내지 제4 레지스터 영역을 포함하는 것으로 가정된다. 일 예로서, 각각의 레지스터 영역에는 128 비트의 영상 데이터가 저장되는 것으로 가정된다.
3 회의 로딩 동작을 통해 3 개의 행들의 픽셀들의 영상 데이터가 로딩될 수있다. 예컨대, 제1 레지스터 영역(A)에는 제1 행의 16 개의 픽셀들(a0 ~ a15)의 영상 데이터가 로딩되고, 제2 레지스터 영역(B)에는 제2 행의 16 개의 픽셀들(b0 ~ b15)의 영상 데이터가 로딩되며, 제3 레지스터 영역(C)에는 제3 행의 16 개의 픽셀들(c0 ~ c15)의 영상 데이터가 로딩될 수 있다. 또한, 추가의 로딩 및 추가 동작에 따라, 제4 레지스터 영역(D)에 제1 행의 2 개의 픽셀들(a16 ~ a17)의 영상 데이터가 로딩되고, 제2 행 및 제3 행 각각의 2 개의 픽셀들(b16 ~ b17, c16 ~ c17)의 영상 데이터가 제4 레지스터 영역(D)에 추가될 수 있다.
상기와 같은 동작에 따라 16 개의 픽셀들(b1 ~ b16)의 영역 처리에 이용될 픽셀들의 영상 데이터들이 레지스터 유닛에 저장될 수 있다. 상기와 같은 로딩 동작은 6 회의 연산을 통해 그 수행이 완료될 수 있다. 상기 로딩 동작에 따라, 레지스터 유닛에 저장되는 픽셀들의 영상 데이터는 어느 하나의 프레임의 행들에 따른 순서로서 저장될 수 있다. 예컨대, 레지스터 유닛에는 제1 행의 16 개의 픽셀들(a0 ~ a15), 제2 행의 16 개의 픽셀들(b0 ~ b15) 및 제3 행의 16 개의 픽셀들(c0 ~ c15)의 영상 데이터가 순차적으로 저장될 수 있다.
한편, 본 발명의 실시예에 따라, 상기 로딩된 영상 데이터를 마스크 행렬의 계수들과 연산하기에 앞서, 상기 로딩된 영상 데이터에 대한 정렬 동작이 수행된다. 먼저, 상기 로딩된 영상 데이터에 대한 그룹핑 동작이 수행될 수 있으며(S13), 예컨대 적어도 두 개의 행들에 위치한 픽셀들이 하나의 파트로 그룹핑될 수 있다.
도 6a,b,c를 참조하면, 제1 행의 16 개의 픽셀들(a0 ~ a15), 제2 행의 16 개의 픽셀들(b0 ~ b15) 및 제3 행의 16 개의 픽셀들(c0 ~ c15)의 영상 데이터들이 3 개의 파트들로 그룹핑될 수 있다. 일 예로서, 제1 파트(part 0)는 제1 행의 일부의 픽셀들(예컨대, a0 ~ a5), 제2 행의 일부의 픽셀들(예컨대, b0 ~ b4) 및 제3 행의 일부의 픽셀들(예컨대, c0 ~ c4)의 영상 데이터를 포함할 수 있다. 또한, 제2 파트(part 1)는 제1 행의 다른 일부의 픽셀들(예컨대, a6 ~ a10), 제2 행의 다른 일부의 픽셀들(예컨대, b5 ~ b10) 및 제3 행의 다른 일부의 픽셀들(예컨대, c5 ~ c9)의 영상 데이터를 포함할 수 있다. 또한, 제3 파트(part 2)는 제1 행의 또 다른 일부의 픽셀들(예컨대, a11 ~ a15), 제2 행의 또 다른 일부의 픽셀들(예컨대, b11 ~ b15) 및 제3 행의 또 다른 일부의 픽셀들(예컨대, c10 ~ c15)의 영상 데이터를 포함할 수 있다. 이외, 나머지 픽셀들(a16 ~ a17, b16 ~ b17, c16 ~ c17)은 제4 파트(part 3)를 구성할 수 있다.
상기와 같은 그룹핑 동작을 위하여, 도 6b에 도시된 바와 같은 각종 연산이 수행될 수 있다. 예컨대, 상기와 같은 그룹핑 동작은 레지스터 영역에 저장된 영상 데이터들을 좌측 및/또는 우측으로 쉬프팅함과 함께 논리합(OR) 연산에 의해 수행될 수 있다. 제1 파트(part 0)는 제1 레지스터 영역(A)의 영상 데이터를 우측으로 10회 쉬프팅한 후 좌측으로 10회 쉬프팅한 결과와, 제2 레지스터 영역(B)의 영상 데이터를 우측으로 11회 쉬프팅한 후 좌측으로 5회 쉬프팅한 결과와, 제3 레지스터 영역(C)의 영상 데이터를 우측으로 11회 쉬프팅한 결과를 서로 논리합 연산함에 의해 그룹핑될 수 있다. 제2 파트(part 1) 및 제3 파트(part 2) 또한 도 6b에 도시된 연산에 따라 그룹핑이 수행될 수 있다.
상기 그룹핑 동작에 따른 결과는 도 6c에 도시된 바와 같으며, 이에 따라 레지스터 유닛의 다수의 레지스터 영역들에 저장되는 영상 데이터들의 위치가 변동될 수 있다. 예컨대, 제1 레지스터 영역(A)에는 제1 파트(part 0)의 픽셀들(a0 ~ a5, b0 ~ b4, c0 ~ c4)의 영상 데이터들이 저장되고, 제2 레지스터 영역(B)에는 제2 파트(part 1)의 픽셀들(a6 ~ a10, b5 ~ b10, c5 ~ c9)의 영상 데이터들이 저장되며, 제3 레지스터 영역(C)에는 제3 파트(part 2)의 픽셀들(a11 ~ a15, b11 ~ b15, c10 ~ c15)의 영상 데이터들이 저장될 수 있다. 또한, 제4 레지스터 영역(D)에는 별도의 그룹핑을 위한 연산 없이 제4 파트(part 3)의 픽셀들(a16 ~ a17, b16 ~ b17, c16 ~ c17)의 영상 데이터들이 저장될 수 있다.
상기와 같은 그룹핑 동작을 위해, 전체 23 회의 연산이 수행될 수 있다. 예컨대, 제1 파트(part 0)를 생성하기 위해 5 회의 쉬프팅 연산 및 2 회의 OR 연산이 수행되고, 제2 파트(part 1)를 생성하기 위해 7 회의 쉬프팅 연산 및 2 회의 OR 연산이 수행되며, 제3 파트(part 2)를 생성하기 위해 5 회의 쉬프팅 연산 및 2 회의 OR 연산이 수행될 수 있다.
다시 도 3을 참조하면, 그룹핑된 영상 데이터들에 대한 재배치 동작이 수행되며, 예컨대 그룹핑된 영상 데이터들의 위치를 변경함에 의해 데이터 재배치 동작이 수행될 수 있다(S14). 어느 하나의 프레임의 픽셀들은 특정한 순서에 따라 마스크 연산에 이용될 수 있으며, 상기 영상 데이터들의 재배치 동작에서, 상기 마스크 연산에 이용되는 픽셀들의 순서를 고려하여 레지스터 유닛 내에서의 영상 데이터들의 저장 위치가 변경될 수 있다.
도 7a,b,c를 참조하면, 도 7a,b에 도시된 바와 같이 배치 명령(shuf)을 수행함에 의해 어느 하나의 파트에 포함되는 다수 개의 픽셀들의 영상 데이터들의 위치(예컨대, 레지스터 유닛 내에서의 저장 위치)가 변동될 수 있다. 레지스터 영역(A)에 저장된 제1 파트(part 0)의 픽셀들(a0 ~ a5, b0 ~ b4, c0 ~ c4)을 참조하면, 하나의 파트 내에서 각각의 픽셀들의 위치가 정의될 수 있으며, 예컨대 픽셀(a0)은 첫 번째 위치(0)로 정의되고, 픽셀(b0)은 일곱 번째 위치(6)로 정의되며, 픽셀(c0)은 열 두 번째 위치(11)로 정의될 수 있다.
배치 명령(shuf)에 포함되는 정보에 따라 제1 내지 제4 파트들(part 0 ~ part 3)의 픽셀들의 영상 데이터들의 위치가 변동된다. 예컨대, 제1 파트(part 0)의 픽셀들(a0 ~ a5, b0 ~ b4, c0 ~ c4)의 영상 데이터들의 위치를 변동하기 위한 배치 명령(shuf0[16])은 {0, 6, 11, 1, 7, 12, 2, 8, 13, 3, 9, 14, 4, 10, 15, 5}의 정보를 포함하고, 상기 정보에 기반하여 제1 파트(part 0)의 픽셀들(a0 ~ a5, b0 ~ b4, c0 ~ c4)의 영상 데이터들의 위치가 재배치됨에 따라, 도 7b에 도시된 바와 같이 제1 파트(part 0)의 픽셀들(a0 ~ a5, b0 ~ b4, c0 ~ c4)의 영상 데이터들의 위치가 [a0, b0, c0, a1, b1, c1, a2, b2, c2, a3, b3, c3, a4, b4, c4, a5]로 변동될 수 있다. 상기와 같이, 레지스터 영역(A)에는 그 위치가 재배치된 제1 파트(part 0)의 영상 데이터들이 저장되고, 재배치 완료된 영상 데이터들은 제1 그룹(S0)으로 정의될 수 있다.
이와 유사하게, 제2 파트(part 1)의 픽셀들(a6 ~ a10, b5 ~ b10, c5 ~ c9)의 영상 데이터들은 배치 명령(shuf1[16])의 정보에 따라 그 위치가 재배치될 수 있다. 또한, 제3 파트(part 2)의 픽셀들(a11 ~ a15, b11 ~ b15, c10 ~ c15)의 영상 데이터들은 배치 명령(shuf2[16])의 정보에 따라 그 위치가 재배치될 수 있으며, 또한 제4 파트(part 3)의 픽셀들(a16 ~ a17, b16 ~ b17, c16 ~ c17)의 영상 데이터들은 배치 명령(shuf3[16])의 정보에 따라 그 위치가 재배치될 수 있다.
상기와 같은 재배치 동작에 따라 도 7c에서와 같이 영상 데이터가 레지스터 유닛 내에서 정렬될 수 있다. 재배치 완료된 픽셀들은 다수의 그룹들로 분류될 수 있으며, 예컨대 제1 레지스터 영역(A)에는 재배치 완료된 제1 그룹(S0)의 픽셀들의 영상 데이터들이 저장되고, 제2 레지스터 영역(B)에는 재배치 완료된 제2 그룹(S1)의 픽셀들의 영상 데이터들이 저장되며, 제3 레지스터 영역(C)에는 재배치 완료된 제3 그룹(S2)의 픽셀들의 영상 데이터들이 저장되고, 제4 레지스터 영역(D)에는 재배치 완료된 제4 그룹(S3)의 픽셀들의 영상 데이터들이 저장될 수 있다.
상기와 같은 재배치 동작에 따라, 레지스터 유닛에 저장된 픽셀들의 영상 데이터는, 어느 하나의 프레임에서 마스크 연산에 이용되는 픽셀들의 순서에 기반하여 픽셀들의 영상 데이터가 정렬될 수 있다. 즉, 어느 하나의 픽셀에 대한 영상 처리를 수행하기 위해 다수 개의 픽셀들(예컨대 9 개의 픽셀들)의 영상 데이터를 이용함에 있어서, 레지스터 유닛 내에서 서로 인접하게 위치하여 저장된 영상 데이터들이 이용될 수 있다. 한편, 상기 재배치 동작의 경우, 하나의 레지스터 영역에 대해 하나의 재배치 연산을 통해 수행될 수 있으므로, 전체 4 회의 연산을 통해 재배치 동작이 완료될 수 있다.
다시 도 3을 참조하면, 데이터 정렬 동작이 완료됨에 따라 마스크 연산 대상의 연산 데이터가 생성되고(S15), 생성된 연산 데이터에 대해 마스크 연산 동작이 수행된다(S16). 상기 연산 데이터는 소정의 사이즈를 갖는 마스크 행렬과 연산되는 영상 데이터를 포함하는 데이터의 집합으로 정의될 수 있다. 예컨대, 마스크 행렬이 3*3 사이즈를 갖는 경우, 상기 연산 데이터는 마스크 행렬과 연산되는 적어도 9 개의 픽셀들의 영상 데이터를 포함할 수 있다. 만약, 픽셀(b1)에 대해 영상 처리가 수행되는 경우, 이에 대응하는 연산 데이터는 적어도 픽셀들(a0, b0, c0, a1, b1, c1, a2, b2, c2)의 영상 데이터들을 포함할 수 있다.
도 8을 참조하면, 레지스터 유닛에 저장된 정렬 완료된 픽셀들의 영상 데이터들로부터, 3*3의 계수들을 가지는 마스크 행렬과의 연산이 수행될 연산 데이터들(D0 ~ D15)이 생성될 수 있다. 상기 연산 데이터는 소정의 명령(ALIGNR)을 통해 생성될 수 있다. 레지스터 유닛에 저장된 정렬 완료된 영상 데이터에 대해, 하나 이상의 128 비트의 영상 데이터들(또는, 하나 이상의 그룹의 영상 데이터들)로부터 상기 명령(ALIGNR)에 의해 연속적으로 이어진 128 비트의 영상 데이터가 추출될 수 있다.
먼저, 픽셀(b1)의 영상 데이터를 처리하기 위하여 제1 연산 데이터(D0)가 생성될 수 있다. 상기 제1 연산 데이터(D0)는 제1 그룹(S0)의 픽셀들의 영상 데이터들에 해당할 수 있으며, 제1 연산 데이터(D0)에 해당하는 픽셀들(a0, b0, c0, a1, b1, c1, a2, b2, c2,...)의 영상 데이터와 마스크 계수들과의 연산 동작이 수행된다. 또한, 픽셀(b2)의 영상 데이터를 처리하기 위하여 제2 연산 데이터(D1)가 생성될 수 있으며, 명령(ALIGNR(S1, S0, 3))에 따라 레지스터 유닛에 저장된 영상 데이터의 쉬프팅 동작에 기반하여 제1 그룹(S0)의 픽셀들의 일부와 제2 그룹(S1)의 픽셀들의 일부를 포함하는 제2 연산 데이터(D1)가 생성될 수 있다. 제2 연산 데이터(D1)에 포함된 픽셀들(a1, b1, c1, a2, b2, c2, a3, b3, c3,...)의 영상 데이터와 마스크 계수들과의 연산 동작이 수행된다.
상기와 같은 연산 방식에 따라, 영상 처리 대상의 픽셀들(b1 ~ b16)에 대한 영상 처리를 위해 제1 내지 제16 연산 데이터(D0 ~ D15)가 생성될 수 있다. 일 실시예에서, 상기 연산 데이터들(D0 ~ D15) 각각과 마스크 계수들 사이의 연산 동작은 도 9a,b에 도시된 바에 따라 수행될 수 있다.
예컨대, 도 9a에 도시된 바와 같이, 곱합 연산 명령(MULADD)에 따라 픽셀들의 영상 데이터와 마스크 계수들에 대한 곱셈 연산 및 합산 연산이 수행될 수 있다. 일 예로서, 픽셀(b1)의 영상 데이터를 처리하기 위해 픽셀들(a0, b0, c0, a1, b1, c1, a2, b2, c2,...)의 영상 데이터를 포함하는 제1 연산 데이터(D0)와 마스크 계수들(m0 ~ m8) 사이의 곱셈 및 합산 연산이 수행되고, 이로부터 [a0*m0 + a1*m1], [a2*m2 + b0*m3], [b1*m4 + b2*m5], [c0*m6 + c1*m7], [c2*m8 + a3*0], [a4*0 + a5*0],...와 같은 결과가 발생될 수 있다. 마스크 계수의 경우, 마스크 행렬이 3*3 사이즈를 가짐에 따라 9 번째 곱셈의 다음부터의 마스크 계수 값은 0에 해당한다. 즉, 픽셀들(a0, b0, c0, a1, b1, c1, a2, b2, c2)과 곱해지는 마스크 계수들 m0 내지 m8 만이 특정 마스크 계수 값을 가지며, 제1 연산 데이터(D0)의 나머지 픽셀들의 영상 데이터와 곱해지는 계수 값은 0을 갖는다. 이에 따라 픽셀(b1)의 영상 데이터를 처리함에 있어서, 해당 픽셀(b1) 및 이에 인접한 8 개의 픽셀들(a0, b0, c0, a1, c1, a2, b2, c2)의 영상 데이터만을 이용한 마스크 연산 동작이 수행될 수 있다. 상기와 같은 곱합 연산은 상기 생성된 연산 데이터들(D0 ~ D15)에 대해 순차적으로 수행될 수 있다.
곱합 연산이 수행되면, 곱합 연산 결과를 서로 합산하는 수평 덧셈 명령(HADDW)이 수행되고, 상기 수평 덧셈 명령에 따른 연산 결과들(R0 ~ R3)이 발생될 수 있다. 또한, 연산 결과의 비트 수를 조절(예컨대, 16 비트를 8 비트로 조절)하기 위한 명령(PACK)이 수행될 수 있다.
도 9a,b에 도시된 바와 같은 처리 동작을 수행함에 있어서, 연산 데이터를 생성하기 위한 15 회의 연산, 전술한 곱합 처리를 수행하기 위한 16 회의 연산, 수평 덧셈 처리를 위한 12 회의 연산 및 비트 수 조절을 위한 패킹 처리를 위한 2 회의 연산이 수행될 수 있다.
상기와 같은 본 발명의 영역 처리 동작에 따르면, 16 개의 픽셀들에 대한 영역 처리 동작은 대략 70 회의 연산 횟수를 통해 처리될 수 있으며, 이는 일반적인 영역 처리 방식에 대비하여 대략 17%의 연산 횟수에 불과하다. 이에 따라, 영역 처리에 소요되는 시간을 크게 단축할 수 있다.
도 10a,b는 본 발명의 다른 실시예에 따른 영상 처리 장치를 나타내는 블록도이다. 도 10a,b에 도시된 바와 같이, 영상 처리 장치(200)는 레지스터 유닛(210)과 저장 제어부(220)를 포함할 수 있다. 저장 제어부(220)는 레지스터 유닛(210)에 저장된 영상 데이터의 로딩 및 정렬을 제어하는 구성 요소로서, 저장 제어부(220)는 하드웨어적으로 명령(CMD)을 수신하고 이에 응답하여 상기 레지스터 유닛(210) 내의 저장 상태를 제어할 수 있다. 또는, 프로세싱 유닛(미도시)의 제어하에서 소프트웨어적으로 명령(CMD)을 수신하고 이에 응답하여 상기 레지스터 유닛(210) 내의 저장 상태를 제어할 수도 있다.
저장 제어부(220)는 전술한 실시예에 따라 레지스터 유닛(210)에 저장된 픽셀들의 영상 데이터를 정렬할 수 있다. 일 예로서, 도 10a에 도시된 바와 같이, 레지스터 유닛(210)은 마스크 연산을 위한 입력 데이터(Input_M)를 수신하고 이를 저장하며, 또한 실제 마스크 연산을 위하여 출력 데이터(Output_M)를 제공할 수 있다. 상기 출력 데이터(Output_M)는 전술한 실시예에 따라 정렬 동작이 완료된 후의 영상 데이터에 해당할 수 있다.
입력 데이터(Input_M)가 레지스터 유닛(210)에 저장됨에 있어서, 일 예로서 프레임의 행들에 따라 픽셀들의 영상 데이터가 레지스터 유닛(210)에 저장될 수 있다. 예컨대, 프레임의 제1 라인에 위치하는 픽셀들의 영상 데이터(Data_L1)가 저장된 후, 프레임의 제2 라인에 위치하는 픽셀들의 영상 데이터(Data_L2)가 순차적으로 저장될 수 있으며, 이와 유사하게 프레임의 다음의 라인에 위치하는 픽셀들의 영상 데이터들이 레지스터 유닛(210)에 순차적으로 저장될 수 있다.
이후, 저장 제어부(220)의 제어 동작에 따라 레지스터 유닛(210)에 저장된 영상 데이터들을 재배치하는 동작이 수행되고, 이에 따라 레지스터 유닛(210)에는 어느 하나의 마스크 연산에 이용되는 픽셀들의 영상 데이터가 연속하게 저장될 수 있다. 예컨대, 하나 이상의 픽셀들에 대해 영역 처리 동작이 순차적으로 수행될 때, 마스크 연산에 이용되는 픽셀들의 순서에 따라 영상 데이터들이 정렬되며, 일 연산 데이터(Data_M1)는 어느 하나의 픽셀에 대한 처리를 위해 이용되는 영상 데이터에 해당하며, 예컨대 연산 데이터(Data_M1)는 픽셀(b1)을 처리하기 위해 이용되는 픽셀들(a0, b0, c0, a1, b1, c1, a2, b2, c2)의 연산 데이터들을 포함할 수 있다. 또한, 다른 연산 데이터(Data_M2)는 다른 하나의 픽셀에 대한 처리를 위해 이용되는 영상 데이터에 해당할 수 있으며, 예컨대 연산 데이터(Data_M2)는 픽셀(b4)을 처리하기 위해 이용되는 픽셀들(a3, b3, c3, a4, b4, c4, a5, b5, c5)의 연산 데이터들을 포함할 수 있다. 또한, 전술한 바와 같이, 연산 데이터(Data_M1)의 일부와 연산 데이터(Data_M2)의 일부를 조합하여 또 다른 픽셀을 처리하기 위한 연산 데이터가 생성될 수 있다.
상기한 실시예의 설명은 본 발명의 더욱 철저한 이해를 위하여 도면을 참조로 예를 든 것에 불과하므로, 본 발명을 한정하는 의미로 해석되어서는 안될 것이다. 또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기본적 원리를 벗어나지 않는 범위 내에서 다양한 변화와 변경이 가능함은 명백하다 할 것이다.
Claims (8)
- 하나 이상의 픽셀들에 대한 영역 처리를 위해 m 개의 행들 및 다수 개의 열들의 픽셀들의 영상 데이터를 다수의 레지스터 영역들을 포함하는 레지스터 유닛에 로딩하는 단계(단, m은 2 이상의 정수);
상기 다수의 레지스터 영역들에 저장된 영상 데이터에 대한 쉬프팅 및 논리합 연산 중 적어도 하나에 의해, 상기 로딩된 영상 데이터에 대해 적어도 두 개의 행들 및 적어도 두 개의 열들의 픽셀들을 하나의 파트로 그룹핑하는 단계;
상기 그룹핑된 영상 데이터에 대해, 어느 하나의 픽셀에 대한 영역 처리에 이용되는 다수 개의 픽셀들의 영상 데이터가 연속하게 위치하도록 영상 데이터를 재배치하는 단계; 및
상기 재배치된 영상 데이터로부터 연산 데이터를 생성함으로서 상기 영역 처리를 수행하는 단계를 구비하고,
상기 로딩하는 단계에서 적어도 하나의 레지스터 영역에는 동일한 행의 픽셀들의 영상 데이터가 로딩되고, 상기 그룹핑 및 재배치 단계에 의해 각각의 레지스터 영역에 상기 m 개의 행들의 픽셀들의 영상 데이터가 저장되도록 영상 데이터가 이동되며,
상기 영역 처리를 수행하는 단계에서, 영역 처리 수행될 b 개의 픽셀들(단, b는 2 이상의 정수)에 대응하여, 상기 다수의 레지스터 영역들에 저장된 영상 데이터에 대한 쉬프팅 동작에 기반하여 b 개의 연산 데이터들이 생성되는 것을 특징으로 하는 영상 처리 방법. - 삭제
- 제1항에 있어서,
상기 영역 처리는, m*m 의 사이즈를 가지는 마스크 행렬의 계수와, m*m 의 사이즈 단위의 픽셀들의 영상 데이터와의 연산에 의해 수행되고,
상기 영상 데이터를 로딩하는 단계는, 제1 내지 제A 픽셀들에 대한 영역 처리를 위해 m 행 및 (A+2) 열의 픽셀들의 영상 데이터를 로딩하는 것을 특징으로 하는 영상 처리 방법(단, A는 각각 2 이상의 정수). - 제3항에 있어서,
상기 그룹핑하는 단계는, 상기 m 행 및 두 개 이상의 열의 픽셀들을 하나의 파트로 그룹핑하고,
상기 재배치하는 단계는, 상기 하나의 파트에 속하는 픽셀들의 영상 데이터의 레지스터 유닛에서의 저장 위치를 변경하는 것을 특징으로 하는 영상 처리 방법. - 제4항에 있어서,
상기 영역 처리를 수행하는 단계는, 상기 재배치 결과에 따라 정렬된 픽셀들의 영상 데이터에서, 서로 인접하게 위치한 m*m 의 픽셀들의 영상 데이터를 마스크 행렬의 계수와 연산하는 것을 특징으로 하는 영상 처리 방법. - 제1항에 있어서,
상기 로딩하는 단계는, 프레임에 포함된 행들의 순서에 따라 픽셀들의 영상 데이터를 로딩하고,
상기 재배치하는 단계는, 영역 처리에 이용되는 픽셀들의 순서에 기반하여 상기 픽셀들의 영상 데이터의 위치를 재배치하는 것을 특징으로 하는 영상 처리 방법. - 삭제
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150111639A KR101699029B1 (ko) | 2015-08-07 | 2015-08-07 | 영역 처리 속도를 향상한 영상 처리 장치 및 영상 처리 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150111639A KR101699029B1 (ko) | 2015-08-07 | 2015-08-07 | 영역 처리 속도를 향상한 영상 처리 장치 및 영상 처리 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101699029B1 true KR101699029B1 (ko) | 2017-01-23 |
Family
ID=57990071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150111639A KR101699029B1 (ko) | 2015-08-07 | 2015-08-07 | 영역 처리 속도를 향상한 영상 처리 장치 및 영상 처리 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101699029B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10140681B2 (en) | 2016-03-15 | 2018-11-27 | Innodep Co., Ltd. | Caching method of graphic processing unit |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070046916A (ko) * | 2004-08-20 | 2007-05-03 | 아이피플렉스 가부시키가이샤 | 라벨 이미지의 생성 방법 및 화상처리 시스템 |
KR20090121667A (ko) * | 2008-05-22 | 2009-11-26 | 성균관대학교산학협력단 | 실시간 영상 처리를 위한 서브 샘플링 시스템 |
KR20100096523A (ko) * | 2009-02-24 | 2010-09-02 | 삼성전자주식회사 | 영상 데이터 처리 장치 및 방법 |
KR101395143B1 (ko) * | 2013-06-13 | 2014-05-21 | 이노뎁 주식회사 | 영상처리의 정수변환 방법 및 정수변환 장치 |
-
2015
- 2015-08-07 KR KR1020150111639A patent/KR101699029B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070046916A (ko) * | 2004-08-20 | 2007-05-03 | 아이피플렉스 가부시키가이샤 | 라벨 이미지의 생성 방법 및 화상처리 시스템 |
KR20090121667A (ko) * | 2008-05-22 | 2009-11-26 | 성균관대학교산학협력단 | 실시간 영상 처리를 위한 서브 샘플링 시스템 |
KR20100096523A (ko) * | 2009-02-24 | 2010-09-02 | 삼성전자주식회사 | 영상 데이터 처리 장치 및 방법 |
KR101395143B1 (ko) * | 2013-06-13 | 2014-05-21 | 이노뎁 주식회사 | 영상처리의 정수변환 방법 및 정수변환 장치 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10140681B2 (en) | 2016-03-15 | 2018-11-27 | Innodep Co., Ltd. | Caching method of graphic processing unit |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA3070972C (en) | Accelerated mathematical engine | |
US10747844B2 (en) | Systems and methods for converting a matrix input to a vectorized input for a matrix processor | |
JP7007488B2 (ja) | ハードウェアベースのプーリングのシステムおよび方法 | |
US20180046458A1 (en) | Arithmetic processing device and control method of the arithmetic processing device | |
US20190095776A1 (en) | Efficient data distribution for parallel processing | |
US10642622B2 (en) | Arithmetic processing device and control method of the arithmetic processing device | |
KR20190066473A (ko) | 뉴럴 네트워크에서 컨볼루션 연산을 처리하는 방법 및 장치 | |
JP3526976B2 (ja) | プロセッサおよびデータ処理装置 | |
KR20200081044A (ko) | 뉴럴 네트워크의 컨볼루션 연산을 처리하는 방법 및 장치 | |
US8441492B2 (en) | Methods and apparatus for image processing at pixel rate | |
JP7148526B2 (ja) | データ処理装置におけるベクトルによる要素演算 | |
JPWO2019082859A1 (ja) | 推論装置、畳み込み演算実行方法及びプログラム | |
CN108073549B (zh) | 卷积运算装置及方法 | |
EP3093757B1 (en) | Multi-dimensional sliding window operation for a vector processor | |
CN108122030A (zh) | 一种卷积神经网络的运算方法、装置和服务器 | |
US5896307A (en) | Method for handling an underflow condition in a processor | |
JP2007535267A (ja) | 画像処理装置及び方法 | |
KR101699029B1 (ko) | 영역 처리 속도를 향상한 영상 처리 장치 및 영상 처리 방법 | |
CN109324984A (zh) | 在卷积运算中使用循环寻址的方法和装置 | |
CN106296614B (zh) | 图像处理装置及图像处理方法 | |
KR101672539B1 (ko) | 그래픽 처리 유닛 및 그 캐싱 방법 | |
CN108198128B (zh) | 一种alpha通道边界腐蚀的方法及装置 | |
Shahbahrami et al. | Performance comparison of SIMD implementations of the discrete wavelet transform | |
US7483595B2 (en) | Image processing method and device | |
US8666172B2 (en) | Providing multiple symmetrical filters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170918 Year of fee payment: 8 |