KR101172346B1 - 데이터 처리 속도를 개선한 데이터 처리장치 및 그 동작방법 - Google Patents

데이터 처리 속도를 개선한 데이터 처리장치 및 그 동작방법 Download PDF

Info

Publication number
KR101172346B1
KR101172346B1 KR1020120011287A KR20120011287A KR101172346B1 KR 101172346 B1 KR101172346 B1 KR 101172346B1 KR 1020120011287 A KR1020120011287 A KR 1020120011287A KR 20120011287 A KR20120011287 A KR 20120011287A KR 101172346 B1 KR101172346 B1 KR 101172346B1
Authority
KR
South Korea
Prior art keywords
macro block
inter
data
macro
intra
Prior art date
Application number
KR1020120011287A
Other languages
English (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 KR1020120011287A priority Critical patent/KR101172346B1/ko
Application granted granted Critical
Publication of KR101172346B1 publication Critical patent/KR101172346B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

데이터 처리 속도를 개선한 데이터 처리장치 및 그 동작방법이 개시된다. 본 발명의 일실시예에 따른 다수의 매크로 블록 처리부를 포함하는 데이터 처리 방법은, 복수 개의 매크로 블록들을 포함하는 프레임 데이터를 수신하는 단계와, 상기 프레임 데이터의 매크로 블록들로부터 인트라 매크로 블록 및 인터 매크로 블록을 분석하는 단계와, 상기 분석 결과에 따라, 인트라 매크로 블록 및 인터 매크로 블록에 대응하여 서로 다른 비트 값을 설정하여 비트 패턴을 생성하는 단계와, 상기 인트라 매크로 블록 및 이에 인접한 적어도 하나의 매크로 블록을 하나의 영역으로 설정하고, 상기 영역에 포함된 매크로 블록들을 동일한 제1 매크로 블록 처리부에 할당하는 단계 및 상기 제1 매크로 블록 처리부 할당된 매크로 블록들을 하나의 매크로 블록 씩 순차적으로 처리하는 단계를 구비하는 것을 특징으로 한다.

Description

데이터 처리 속도를 개선한 데이터 처리장치 및 그 동작방법{Data processing device improving processing speed and operating method thereof}
본 발명은 데이터 처리장치 및 그 동작방법에 관한 것으로서, 자세하게는 매크로 블록 기반의 영상 처리동작에서 효율적인 병렬 처리 동작을 수행함으로써 데이터 처리 속도를 개선한 데이터 처리장치 및 그 동작방법에 관한 것이다.
H.264 와 같은 동영상 데이터의 압축 표준(codec standard)에 있어서, 하나의 프레임은 소정의 픽셀 구조, 예를 들면 8x8 또는 16x16 픽셀들(pixels)로 이루어지는 매크로 블록(macroblock)으로 분할(division)될 수 있으며, 상기 분할된 동영상 데이터는 매크로 블록 단위로 순차적으로 이산 여현 변환(discrete cosine transform), 양자화(quantization) 및 부호화 코딩(entropy coding) 등을 수행함으로써 인코딩(encoding)이 이루어진다. 이와 유사하게, 데이터를 복원하는 동작은 전술한 압축 절차의 역순으로 디코딩을 수행할 수 있다.
일반적으로 영상 데이터는 인트라 압축(intra compression) 방법 또는 인터 압축(inter compression)으로 처리될 수 있다. 상기 인트라 압축은 하나의 비디오 프레임 내의 정보만을 이용하여 압축하는 방법이며, 인터 압축은 연속되는 프레임들 사이의 해당하는 화소 값들의 차분들에 근거하여 이미지를 압축하는 방법이다.
상기 인트라 압축은 하나의 비디오 프레임 내의 정보만을 이용하여 압축하는 방법이다. 영상 데이터의 경우 인접한 픽셀들이 유사한 값을 갖는 경향이 있다. 상기 인트라 압축은 이러한 점을 활용하여 해당 픽셀을 처리함에 있어서 인접한 픽셀들의 데이터를 이용하여 전체 처리되는 데이터량을 감소시킨다.
그러나, 종래의 경우에는 데이터 처리 속도를 감소함에 있어서 프레임 단위로 데이터를 병렬 처리하는 방식을 이용하는 방식이 있으나, 이와 같은 경우 전술한 인트라 압축에 의한 데이터 처리시에는 연속되는 프레임 단위의 데이터를 동시에 처리하기 어려운 문제가 발생하였으며, 또한 이에 따라 병렬 처리에 따른 데이터 처리 시간을 감소하는 데 한계가 발생한다.
그리고, 종래의 경우 압축된 데이터를 복원하고 해당 복원 데이터를 그래픽 카드로 제공하나, 이 경우 초당 30FPS 및 N 채널 식으로 대량의 데이터를 그래픽 카드로 제공하는 경우 데이터 전송 병목 현상이 발생하는 등, 데이터 처리 성능이 저하되는 문제가 발생한다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 데이터 병렬 처리를 개선하여 그 처리 속도를 향상시키고, 복원된 데이터의 그래픽 카드로의 전송시 병목 현상을 감소할 수 있는 데이터 처리장치 및 그 동작방법을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여 본 발명의 일실시예에 따른 다수의 매크로 블록 처리부를 포함하는 데이터 처리 방법은, 복수 개의 매크로 블록들을 포함하는 프레임 데이터를 수신하는 단계와, 상기 프레임 데이터의 매크로 블록들로부터 인트라 매크로 블록 및 인터 매크로 블록을 분석하는 단계와, 상기 분석 결과에 따라, 인트라 매크로 블록 및 인터 매크로 블록에 대응하여 서로 다른 비트 값을 설정하여 비트 패턴을 생성하는 단계와, 상기 인트라 매크로 블록 및 이에 인접한 적어도 하나의 매크로 블록을 하나의 영역으로 설정하고, 상기 영역에 포함된 매크로 블록들을 동일한 제1 매크로 블록 처리부에 할당하는 단계 및 상기 제1 매크로 블록 처리부 할당된 매크로 블록들을 하나의 매크로 블록 씩 순차적으로 처리하는 단계를 구비하는 것을 특징으로 한다.
바람직하게는, 상기 비트 패턴을 생성하는 단계는, 상기 인트라 매크로 블록에 대응하는 제1 비트 값을 설정하는 단계와, 상기 인터 매크로 블록에 대응하는 제2 비트 값을 설정하는 단계 및 상기 인트라 매크로 블록에 인접하는 적어도 하나의 매크로 블록에 대응하는 비트 값을 제3 비트 값으로 변환하는 단계를 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 프레임에 복수 개의 인터 매크로 블록이 포함되고, 상기 데이터 처리 방법은, 상기 복수 개의 인터 매크로 블록을 적어도 두 개의 영역으로 설정하고, 상기 적어도 두 개의 영역의 인터 매크로 블록을 서로 다른 매크로 블록 처리부에 각각 할당하는 단계를 더 구비하는 것을 특징으로 한다.
또한 바람직하게는, 상기 데이터 처리 방법은, 상기 매크로 블록을 처리한 복원 데이터를 그래픽 처리부로 제공하는 단계와, 상기 그래픽 처리부로부터의 출력 영상의 해상도를 분석하는 단계 및 상기 해상도를 분석한 결과에 따라, 상기 복원 데이터의 스케일링을 조절하는 단계를 더 구비하는 것을 특징으로 한다.
한편 본 발명의 일실시예에 따른 다수의 매크로 블록 처리부를 포함하는 데이터 처리 장치는, 복수 개의 매크로 블록들을 포함하는 프레임 데이터를 수신하는 수신부와, 상기 프레임 데이터의 매크로 블록들을 병렬하게 처리하기 위하여 복수의 매크로 블록 처리부를 갖는 데이터 처리부 및 상기 프레임 데이터로부터 인트라 매크로 블록 및 인터 매크로 블록을 분석하고, 상기 분석 결과에 따라, 인트라 매크로 블록 및 인터 매크로 블록에 대응하여 서로 다른 비트 값을 설정하여 비트 패턴을 생성하며, 상기 인트라 매크로 블록 및 이에 인접한 적어도 하나의 매크로 블록을 하나의 영역으로 설정하고, 상기 영역에 포함된 매크로 블록들을 동일한 매크로 블록 처리부에 할당하는 제어부를 구비하는 것을 특징으로 한다.
상기와 같은 본 발명의 실시예에 따르면, 동일한 프레임 내의 매크로 블록들을 동시에 병렬 처리가 가능하므로 데이터 처리 속도를 향상할 수 있는 효과가 있으며, 또한, 실제 출력 영상의 해상도를 분석하여 그래픽 카드로의 데이터 전송 단계에서 스케일링을 조절하므로, 그래픽 카드로 제공되는 데이터 량을 감소시켜 데이터 전송 병목 현상을 방지할 수 있는 효과가 있다.
도 1은 본 발명의 일실시예에 따른 데이터 처리장치의 일 구현예를 나타내는 블록도이다.
도 2는 도 1의 매크로블록 처리부의 일 구현예를 나타내는 블록도이다.
도 3은 데이터 병렬 처리를 위한 도 1의 제어부의 일 구현예를 나타내는 블록도이다.
도 4는 본 발명의 다른 실시예에 따른 데이터 처리장치의 비트패턴 생성 및 변환예를 나타내는 도면이다.
도 5는 본 발명의 일실시예에 따른 데이터 처리장치의 동작방법의 일 구현예를 나타내는 플로우차트이다.
도 6은 본 발명의 다른 실시예에 따른 데이터 처리장치의 일 구현예를 나타내는 블록도이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 데이터 처리장치의 일 구현예를 나타내는 블록도이다.
도 1에 도시된 바와 같이, 상기 데이터 처리장치(100)는 비트 스트림 수신부(110), 데이터 처리부(120), 필터(130), 스케일러(140) 및 제어부(150)를 구비할 수 있다. 상기 데이터 처리장치(100)는 압축 데이터로서 비트 스트림(Data)을 수신하고, 상기 비트 스트림(Data)에 대한 디코딩 동작을 수행함으로써 복원 데이터를 생성하여 이를 그래픽 카드로 제공하기 위한 디코딩 장치일 수 있다.
데이터 처리부(120)는 비트 스트림 수신부(110)로부터 압축 데이터를 수신하고 이에 대한 디코딩 동작을 수행한다. 비트 스트림 수신부(110)에서 수신된 비트 스트림(Data)은 프레임 단위의 데이터일 수 있으며, 상기 프레임 단위의 데이터는 복수 개의 매크로 블록들을 포함할 수 있다. 또한, 데이터 처리부(120)는 매크로 블록 단위로 데이터를 병렬 처리할 수 있으며, 이를 위하여 데이터 처리부(120)는 매크로 블록 단위의 데이터를 각각 처리하는 복수 개의 매크로 블록 처리부(MB 처리부1 내지 MB 처리부N, 120_1)를 포함할 수 있다.
제어부(150)는 데이터 처리부(120)의 데이터 처리 동작을 포함하여 데이터 처리장치(100)의 전반적인 동작을 제어한다. 본 발명의 실시예에 따르면, 상기 제어부(150)는 데이터 처리부(120)가 하나의 프레임 내에서 매크로 블록 단위로 데이터를 병렬 처리하는 것을 제어한다. 이를 위하여, 제어부(150)는 비트 스트림(Data)을 수신하고, 하나의 프레임 내에 포함된 매크로 블록들 각각의 특성(예컨대, 각각의 매크로 블록들이 인트라 매크로 블록인지 인터 매크로 블록인지의 특성)을 판단하고, 그 판단 결과에 따라 데이터 병렬 처리 동작이 수행되는 것을 제어한다.
프레임 내에 포함된 인트라 매크로 블록의 경우, 프레임 내에서 예측된 데이터 영역을 참조하여 데이터 처리 동작이 수행된다. 일예로서, 데이터 처리가 프레임 상단의 좌측 매크로 블록부터 프레임 하단의 우측 매크로 블록 방향으로 처리되는 경우, 소정의 인트라 매크로 블록의 좌측 및 상단에 위치한 인접 매크로 블록들이 데이터 처리에 참조된다. 반면에, 인터 매크로 블록의 경우, 다른 프레임(예컨대, 이전의 프레임)에서 예측된 데이터 영역의 데이터를 참조하여 데이터 처리 동작이 수행된다.
데이터 처리부(120)에 의해 복원 처리된 데이터는 소정의 필터(예컨대, In-loop 필터, 130) 및 스케일러(140)를 거쳐 그래픽 카드(미도시)로 제공된다. 스케일러(140)는 복원 처리된 데이터에 대하여 출력 화면에 맞게 영상을 스케일링 처리한다.
도 2는 도 1의 매크로블록 처리부의 일 구현예를 나타내는 블록도이다. 도 2에 도시된 바와 같이, 각각의 매크로 블록 처리부(120_1)는 압축된 데이터에 대한 디코딩 동작을 수행하기 위하여, 엔트로피 디코딩부(121), 역 양자화부(122), 인터 모션 보상부(123) 및 인트라 예측부(124)를 포함할 수 있다. 또한, 역 양자화부(122)의 처리 결과와 인터 모션 보상부(123) 또는 인트라 예측부(124)의 처리 결과를 합산하기 위한 소정의 합산부(125)가 매크로 블록 처리부(120_1)에 더 구비될 수 있다.
매크로 블록 처리부(120_1)는 데이터 압축 과정에서 수행된 인코딩 동작의 역순의 동작을 수행함으로써 데이터를 복원할 수 있다. 즉, 데이터 압축 과정에서 매크로 블록 단위로 양자화 및 엔트로피 인코딩이 수행된 경우, 매크로 블록 처리부(120_1)는 압축 데이터에 대한 엔트로피 디코딩 및 역 양자화 동작을 수행하여 데이터를 복원할 수 있다. 인터 모션 보상부(123)는 동영상 데이터를 압축한 경우 인접한 프레임들을 참조하여 모션 벡터를 산출하고 모션 보상 기능을 수행하며, 인트라 예측부(124)는 프레임 내에서 인트라 복원 동작을 위한 데이터 영역을 예측하여 그 결과를 발생한다.
본 발명의 실시예에 따른 매크로 블록 단위의 데이터 병렬 처리 동작을 도 3 및 도 4를 참조하여 설명하면 다음과 같다.
도 3은 데이터 병렬 처리를 위한 도 1의 제어부의 일 구현예를 나타내는 블록도이며, 도 4는 본 발명의 다른 실시예에 따른 데이터 처리장치의 비트패턴 생성 및 변환예를 나타내는 도면이다. 도 3에 도시된 바와 같이, 상기 제어부(150)는 비트 패턴 생성부(151), 비트 패턴 변환부(152), 메모리부(153) 및 할당 제어부(154)를 포함할 수 있다.
비트 패턴 생성부(151)는 프레임의 매크로 블록들 각각을 분석하여 해당 매크로 블록이 인트라 매크로 블록인지 인터 매크로 블록인지를 판단하고, 이에 기반하여 비트 패턴을 생성한다. 상기 비트 패턴은 도 4의 (a)에 도시된 바와 같이 적어도 하나의 비트 값으로 생성될 수 있다. 일예로서, 프레임이 6*6 의 매크로 블록들을 포함하고 이들 중 3 행 3 열에 위치한 매크로 블록이 인트라 매크로 블록인 것으로 판단된 경우, 해당 인트라 매크로 블록에 대응하는 비트 값은 "1"의 값을 가질 수 있으며, 그 이외의 매크로 블록들(예컨대, 인터 매크로 블록)에 대응하는 비트 값은 "0"의 값을 가질 수 있다.
비트 패턴 변환부(152)는 비트 패턴 생성부(151)에 의해 생성된 비트 패턴에 대한 변환 동작을 수행한다. 인트라 매크로 블록에 대한 데이터 처리를 수행함에 있어서 인접한 매크로 블록들의 데이터를 참조하게 되고, 일예로서 프레임의 좌측 상단으로부터 우측 하단에 배치된 매크로 블록들의 방향으로 데이터가 처리되는 경우, 해당 인트라 매크로 블록의 좌측 및 상단에 위치한 매크로 블록들의 데이터가 상기 해당 인트라 매크로 블록에 대한 데이터 처리를 수행함에 있어서 참조된다. 비트 패턴 변환부(152)는 비트 패턴을 변환함으로써, 인트라 매크로 블록에 인접한 적어도 하나의 매크로 블록들에 대응하는 비트 패턴을 다른 값으로 변환시킨다. 일예로서, 도 4의 (b)에 도시된 바와 같이 인트라 매크로 블록의 좌측 및 상측에 인접한 매크로 블록들에 대응하는 비트 값이 "2"의 값을 갖도록 변환 동작을 수행한다.
상기와 같이 생성 및 변환된 비트 패턴은 테이블화되어 메모리부(153)에 저장된다. 각각의 매크로 블록에 대응하는 비트의 수가 1비트 또는 2비트에 해당하므로, 상기 비트 패턴 테이블을 저장하기 위한 메모리부(153)의 사이즈를 작게 구현할 수 있다.
할당 제어부(154)는 메모리부(153)에 저장된 비트 패턴 테이블을 참조하여 데이터 처리부(120)에 구비된 다수의 매크로 블록 처리부(120_1)에 의해 처리될 매크로 블록들을 할당하는 동작을 제어한다. 일예로서, 도 4의 (c)에 도시된 바와 같이, 프레임에 구비되는 매크로 블록들은 인트라 처리를 수행할 매크로 블록들과 인터 처리를 수행할 매크로 블록들로 구분된다. 할당 제어부(154)는 각 매크로 블록에 대응하는 비트 패턴을 참조함으로써 해당 매크로 블록들의 할당을 제어한다.
바람직하게는, 비트 패턴 테이블을 참조함에 의하여, 매크로 블록들이 다수의 영역으로 구분될 수 있다. 예컨대, 인트라 매크로 블록 및 이에 인접하는 매크로 블록들을 하나의 영역으로 설정하기 위하여, 비트 패턴이 "1"의 값을 갖는 매크로 블록과, 이에 인접한 매크로 블록들 중 비트 패턴이 "2"의 값을 갖는 매크로 블록들을 하나의 영역(A)으로 설정한다. 도 4에 도시되지는 않았으나, 서로 다른 인트라 매크로 블록이 두 개 이상 존재하는 경우, 각각의 인트라 매크로 블록과 이에 인접하는 매크로 블록들이 또 다른 영역으로 설정됨으로써, 하나의 프레임 내에 인트라 처리를 수행할 복수 개의 영역들이 설정될 수 있다.
한편, 나머지 매크로 블록들로서 비트 패턴 "0"의 값을 갖는 매크로 블록들은 인터 처리를 수행하게 되며, 상기 나머지 매크로 블록들이 하나 이상의 영역들로 구분된다. 예컨대, 하나의 프레임 내의 매크로 블록들이 좌측 상단부터 우측 하단 순서로 처리될 수 있으며, 데이터 처리부(120)에 구비되는 매크로 블록 처리부(120_1)의 개수에 기반하여 상기 나머지 매크로 블록들에 대한 영역을 설정한다. 이를 위하여, 좌측 상단으로부터 우측 하단 방향으로 소정 개수의 매크로 블록들이 하나의 영역(B)으로 설정되며, 이후의 매크로 블록들에 대해 나머지 영역들(C, D, E)을 설정한다.
할당 제어부(154)는 상기와 같은 영역 설정 동작 및 이에 기반한 매크로 블록들의 할당 동작을 제어할 수 있다. 할당 동작을 수행함에 있어서, 인트라 매크로 블록을 포함하는 영역(이하, 제1 영역)은 데이터 처리부(120)의 서로 다른 매크로 블록 처리부(120_1)에 할당함으로써, 두 개 이상의 제1 영역이 서로 다른 서로 다른 매크로 블록 처리부(120_1)에 할당되어 병렬 처리되도록 한다. 한편, 하나의 제1 영역에 포함되는 다수의 매크로 블록들의 경우, 하나의 매크로 블록 처리부(120_1) 내에서 순차적으로 처리 동작이 수행된다.
한편, 인터 매크로 블록을 포함하는 영역(이하, 제2 영역)에 포함되는 매크로 블록들은, 동일 프레임의 다른 매크로 블록의 데이터를 참조하는 것이 아니라 이전 프레임의 매크로 블록의 데이터를 참조하여 처리되므로 병렬하게 처리가 가능하다. 이에 따라, 하나의 프레임 내에 포함되는 제2 영역에 포함되는 매크로 블록의 경우, 매크로 블록들 사이의 처리 순서에 상관없이 병렬하게 처리가 가능하다. 도 4에서는 인터 매크로 블록들을 제2 영역으로 설정하는 예가 도시되었으나, 상기 인터 매크로 블록들의 경우 영역 설정 없이 매크로 블록들의 처리 순서에 따라 데이터 처리부(120)에 구비되는 다수의 매크로 블록 처리부들에 병렬하게 할당되어도 무방하다.
즉, 할당 제어부(154)는 하나의 프레임 내에서 인트라 매크로 블록을 포함하는 하나 이상의 제1 영역을 설정하고, 상기 설정된 제1 영역에 포함된 매크로 블록들을 동일한 매크로 블록 처리부(120_1)에 할당한다. 만약, 두 개의 제1 영역이 설정된 경우, 상기 두 개의 제1 영역의 매크로 블록들은 서로 다른 매크로 블록 처리부(120_1)에 할당되어 병렬하게 처리될 수 있다. 나머지 매크로 블록들(예컨대, 인터 매크로 블록)은 데이터 처리부(120)에 구비되는 나머지 매크로 블록 처리부(120_1)에 할당되며, 나머지 매크로 블록들의 개수에 기반하여 각각의 매크로 블록 처리부(120_1)가 처리할 매크로 블록의 수가 설정될 수 있다.
상기와 같은 본 발명의 실시예에 따르면, 하나의 프레임 내에 포함되는 매크로 블록들에 대한 데이터 병렬 처리가 수행될 수 있으므로, 데이터 처리에 소요되는 시간을 감축할 수 있다. 또한, 매크로 블록의 데이터 처리에 있어서 인접한 매크로 블록의 데이터를 요구로 하는 인트라 처리시, 해당 매크로 블록들을 순차적으로 처리할 수 있으므로 인트라 처리를 위한 매크로 블록 처리 순서의 제약 없이 데이터 병렬 처리가 가능하다. 또한, 나머지 매크로 블록들에 대하여 남은 매크로 블록 처리부에 균등하게 할당함으로써 효율적인 자원 활용이 가능하도록 한다.
전술한 데이터 처리의 경우, 데이터 복원 과정을 위한 다양한 동작을 포함할 수 있다. 전술한 바와 같이, 역 양자화 동작, 엔트로피 디코딩, 모션 보상 등 각종 동작이 포함될 수 있으며, 또한 매크로 블록들 사이의 구간의 화질 열화를 방지하기 위한 디블록킹 동작이 포함될 수 있다.
도 5는 본 발명의 일실시예에 따른 데이터 처리장치의 동작방법의 일 구현예를 나타내는 플로우차트이다. 도 5에 도시된 바와 같이, 압축 데이터를 수신하고 이를 복원하기 위한 데이터 처리장치는 외부로부터 비트 스트림을 수신한다(S11). 비트 스트림은 프레임 단위의 압축 데이터일 수 있으며, 상기 프레임 단위의 데이터는 복수 개의 매크로 블록들을 포함할 수 있다.
비트 스트림이 수신되면, 프레임 단위로 매크로 블록의 데이터를 분석하고, 이에 기반하여 비트 패턴 생성 및 변경 동작을 수행한다(S12). 프레임 단위로 매크로 블록의 데이터를 분석함에 있어서, 해당 매크로 블록이 인트라 매크로 블록인지 또는 인터 매크로 블록인지를 분석하고, 분석 결과에 따라 각각의 매크로 블록에 대응하는 비트 패턴을 생성한다. 일예로서, 인트라 매크로 블록에 대응하여 그 비트 값을 "1"로 설정할 수 있으며, 그 이외의 매크로 블록들(예컨대, 인터 매크로 블록)에 대응하는 비트 값을 "0"으로 설정할 수 있다.
또한, 상기 생성된 비트 패턴에 대한 변경 동작에 따라, 프레임에 포함되는 다수의 매크로 블록들의 처리 순서에 기반하여, 상기 인트라 매크로 블록에 인접한 적어도 하나의 매크로 블록에 대응하는 비트 값을 변경할 수 있다. 예컨대, 프레임 내의 매크로 블록들의 좌측 상단에서 우측 하단의 순서대로 데이터 처리 동작이 수행되는 경우, 상기 인트라 매크로 블록의 좌측 및 상측에 인접한 매크로 블록들에 대응하는 비트 값을 가변시킨다. 일예로서, 상기 인접한 매크로 블록들에 대응하는 비트 값을 "2"의 값으로 변경할 수 있다. 이와 같은 동작에 의해 생성된 비트 패턴은 테이블화 되어 데이터 처리장치 내에 구비되는 소정의 메모리에 저장된다.
이후, 데이터 처리를 위한 매크로 블록 할당을 위하여, 비트 패턴 테이블을 참조하여 매크로 블록들이 인트라 영역 및 인터 영역을 확인한다. 상기 인트라 영역은, 해당 비트 값이 "1" 또는 "2"의 값을 갖는 매크로 블록들의 영역일 수 있으며, 어느 하나의 매크로 블록과 이에 인접하는 매크로 블록들을 하나의 영역으로 설정한다. 이외에, 또 다른 인트라 매크로 블록이 존재하는 경우, 상기 인트라 매크로 블록과 이에 인접하는 하나 이상의 매크로 블록을 또 다른 영역으로 설정한다. 이를 제외한 영역은 인터 영역으로서, 상기 인터 영역은 데이터 처리부에 포함되는 매크로 블록 처리부의 개수에 따라 소정의 개수의 영역으로 구분될 수 있다.
상기와 같은 영역이 구분되면, 다수의 매크로 블록 처리부에 대해 매크로 블록들이 할당되어 처리된다. 예컨대, 어느 하나의 인트라 영역의 매크로 블록들이 하나의 매크로 블록 처리부에 할당되고, 이에 따라 상기 인트라 영역의 매크로 블록들이 순차적으로 처리된다(S14). 또한, 상기 인트라 영역이 두 개 이상 존재하는 경우, 상기 두 개 이상의 인트라 영역이 서로 다른 매크로 블록 처리부에 각각 할당되어 병렬하게 처리될 수 있다. 나머지 인터 영역은 데이터 처리부 내의 나머지 매크로 블록 처리부의 개수에 기반하여 다수 개의 영역으로 분류될 수 있으며(S15), 이에 따라 다수 개의 영역의 매크로 블록들이 서로 다른 매크로 블록 처리부에 할당되어 데이터 병렬 처리 동작이 수행된다(S16).
도 6은 본 발명의 다른 실시예에 따른 데이터 처리장치의 일 구현예를 나타내는 블록도이다. 도 6에 도시된 구성들 중 도 1에 도시된 구성과 동일 또는 유사한 구성에 대해서는, 그 동작 또한 동일 또는 유사한 것이므로 이에 대한 자세한 설명은 생략한다.
도 6에 도시된 바와 같이, 상기 데이터 처리장치(200)는 비트 스트림 수신부(210), 데이터 처리부(220), 필터(230), 스케일러(240) 및 제어부(250)를 구비할 수 있다. 또한, 상기 데이터 처리장치(200)는 그래픽 처리부(260) 및 출력 해상도 분석부(270)를 더 구비할 수 있다. 데이터 처리부(220)는 전술한 바와 같이 동일한 프레임의 매크로 블록들을 병렬하게 처리하기 위한 다수의 매크로 블록 처리부(미도시)를 포함할 수 있으며, 또한 동일한 프레임으로부터 복수의 인접한 매크로 블록들을 포함하는 인트라 매크로 블록 영역이 설정되고, 상기 복수의 인접한 매크로 블록들이 어느 하나의 매크로 블록 처리부에 의해 순차적으로 처리된다. 처리된 데이터(예컨대, 복원 데이터)는 스케일러(240)를 거쳐 그래픽 처리부(260)로 제공된다.
그래픽 처리부(260)에서 출력되는 영상 정보는 출력 해상도 분석부(270)로 제공된다. 출력 해상도 분석부(270)는 영상 정보를 이용하여 실제 화면에 출력될 영상의 해상도를 분석하고 그 분석 결과를 스케일러(240)로 제공한다. 스케일러(240)는 디코딩된 데이터(또는 영상)을 출력될 실제 화면에 맞게 스케일링 처리한다. 이에 따라, 그래픽 처리부(260)로 제공되는 데이터량을 최소화 처리한다.
즉, 디코딩된 영상이 그 출력 화면의 해상도 분석 결과에 기반하여 원래 영상보다 작게 출력되며, 이에 따라 작은 데이터량이 그래픽 처리부(260)로 제공되므로 그래픽 처리부(260)의 데이터 수신 구간에서 병목 현상을 최소화할 수 있다. 디코딩을 수행한 복원 데이터의 경우, 초당 수십 페이지의 프레임의 데이터가 다수의 채널 각각을 통해 그래픽 처리부(260)로 제공되므로 데이터 전송 병목 현상이 발생될 수 있으나, 전술한 실시예에서와 같이 실제 출력 영상의 해상도를 분석한 결과에 기반하여 스케일링 동작을 수행하므로 데이터 전송 병목 현상을 감소시킨다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.

Claims (6)

  1. 다수의 매크로 블록 처리부를 포함하는 데이터 처리 방법에 있어서,
    복수 개의 매크로 블록들을 포함하는 프레임 데이터를 수신하는 단계;
    상기 프레임 데이터의 매크로 블록들로부터 인트라 매크로 블록 및 인터 매크로 블록을 분석하는 단계;
    상기 분석 결과에 따라, 인트라 매크로 블록 및 인터 매크로 블록에 대응하여 서로 다른 비트 값을 설정하여 비트 패턴을 생성하는 단계;
    상기 인트라 매크로 블록 및 이에 인접한 적어도 하나의 매크로 블록을 하나의 영역으로 설정하고, 상기 영역에 포함된 매크로 블록들을 동일한 제1 매크로 블록 처리부에 할당하는 단계; 및
    상기 제1 매크로 블록 처리부 할당된 매크로 블록들을 하나의 매크로 블록 씩 순차적으로 처리하는 단계를 구비하는 것을 특징으로 하는 데이터 처리 방법.
  2. 제1항에 있어서, 상기 비트 패턴을 생성하는 단계는,
    상기 인트라 매크로 블록에 대응하는 제1 비트 값을 설정하는 단계;
    상기 인터 매크로 블록에 대응하는 제2 비트 값을 설정하는 단계; 및
    상기 인트라 매크로 블록에 인접하는 적어도 하나의 매크로 블록에 대응하는 비트 값을 제3 비트 값으로 변환하는 단계를 포함하는 것을 특징으로 하는 데이터 처리 방법.
  3. 제1항에 있어서,
    상기 프레임에 복수 개의 인터 매크로 블록이 포함되고,
    상기 복수 개의 인터 매크로 블록을 상기 다수의 매크로 블록 처리부의 개수에 기반하여 적어도 두 개의 인터 매크로 블록 영역으로 설정하고, 각각의 인터 매크로 블록 영역은 하나 이상의 인터 매크로 블록을 포함하며, 상기 적어도 두 개의 인터 매크로 블록 영역의 인터 매크로 블록을 서로 다른 매크로 블록 처리부에 각각 할당하는 단계를 더 구비하는 것을 특징으로 하는 데이터 처리 방법.
  4. 제1항에 있어서,
    상기 매크로 블록을 처리한 복원 데이터를 그래픽 처리부로 제공하는 단계;
    상기 그래픽 처리부로부터의 출력 영상의 해상도를 분석하는 단계; 및
    상기 해상도를 분석한 결과에 따라, 상기 복원 데이터의 스케일링을 조절하는 단계를 더 구비하는 것을 특징으로 하는 데이터 처리 방법.
  5. 다수의 매크로 블록 처리부를 포함하는 데이터 처리 장치에 있어서,
    복수 개의 매크로 블록들을 포함하는 프레임 데이터를 수신하는 수신부;
    상기 프레임 데이터의 매크로 블록들을 병렬하게 처리하기 위하여 복수의 매크로 블록 처리부를 갖는 데이터 처리부; 및
    상기 프레임 데이터로부터 인트라 매크로 블록 및 인터 매크로 블록을 분석하고, 상기 분석 결과에 따라, 인트라 매크로 블록 및 인터 매크로 블록에 대응하여 서로 다른 비트 값을 설정하여 비트 패턴을 생성하며, 상기 인트라 매크로 블록 및 이에 인접한 적어도 하나의 매크로 블록을 하나의 영역으로 설정하고, 상기 영역에 포함된 매크로 블록들을 동일한 매크로 블록 처리부에 할당하는 제어부를 구비하는 것을 특징으로 하는 데이터 처리 장치.
  6. 제5항에 있어서,
    상기 프레임에 복수 개의 인터 매크로 블록이 포함되고,
    상기 제어부는, 상기 복수 개의 인터 매크로 블록을 상기 다수의 매크로 블록 처리부의 개수에 기반하여 적어도 두 개의 인터 매크로 블록 영역으로 설정하고, 상기 적어도 두 개의 인터 매크로 블록 영역의 인터 매크로 블록을 서로 다른 매크로 블록 처리부에 각각 할당하며,
    각각의 인터 매크로 블록 영역은 하나 이상의 인터 매크로 블록을 포함하는 것을 특징으로 하는 데이터 처리 장치.
KR1020120011287A 2012-02-03 2012-02-03 데이터 처리 속도를 개선한 데이터 처리장치 및 그 동작방법 KR101172346B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120011287A KR101172346B1 (ko) 2012-02-03 2012-02-03 데이터 처리 속도를 개선한 데이터 처리장치 및 그 동작방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120011287A KR101172346B1 (ko) 2012-02-03 2012-02-03 데이터 처리 속도를 개선한 데이터 처리장치 및 그 동작방법

Publications (1)

Publication Number Publication Date
KR101172346B1 true KR101172346B1 (ko) 2012-08-14

Family

ID=46880215

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120011287A KR101172346B1 (ko) 2012-02-03 2012-02-03 데이터 처리 속도를 개선한 데이터 처리장치 및 그 동작방법

Country Status (1)

Country Link
KR (1) KR101172346B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101640572B1 (ko) * 2015-11-26 2016-07-18 이노뎁 주식회사 효율적인 코딩 유닛 설정을 수행하는 영상 처리 장치 및 영상 처리 방법
US10244247B2 (en) 2015-11-05 2019-03-26 Samsung Electronics Co., Ltd. Enhanced data processing apparatus employing multiple-block based pipeline and operation method thereof

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101038531B1 (ko) 2009-06-25 2011-06-02 한양대학교 산학협력단 복호화시 병렬처리가 가능한 영상 부호화 장치 및 방법, 그리고 병렬처리가 가능한 영상 복호화 장치 및 방법
KR101050188B1 (ko) 2008-11-27 2011-07-19 한국전자통신연구원 멀티프로세서를 이용한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101050188B1 (ko) 2008-11-27 2011-07-19 한국전자통신연구원 멀티프로세서를 이용한 동영상 디코딩 장치 및 그 장치에서의 동영상 디코딩 방법
KR101038531B1 (ko) 2009-06-25 2011-06-02 한양대학교 산학협력단 복호화시 병렬처리가 가능한 영상 부호화 장치 및 방법, 그리고 병렬처리가 가능한 영상 복호화 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10244247B2 (en) 2015-11-05 2019-03-26 Samsung Electronics Co., Ltd. Enhanced data processing apparatus employing multiple-block based pipeline and operation method thereof
KR101640572B1 (ko) * 2015-11-26 2016-07-18 이노뎁 주식회사 효율적인 코딩 유닛 설정을 수행하는 영상 처리 장치 및 영상 처리 방법

Similar Documents

Publication Publication Date Title
CN110662034B (zh) 自适应性滤波方法和使用该方法的视频编码及解码装置
KR102266213B1 (ko) 인트라 프레임 코딩된 프레임에 대한 코드 레이트 할당 방법, 컴퓨터 장비, 및 저장 매체
Cheung et al. Video coding on multicore graphics processors
US8170357B2 (en) Apparatus and method for generating coded block pattern for alpha channel image and alpha channel image encoding/decoding apparatus and method using the same
JP6336058B2 (ja) ビデオ及び画像符号化及び復号のためのベースカラーインデックスマップモードの機能
JP2023103292A (ja) エンコーダ、デコーダ、および対応するイントラ予測方法
JP2013051741A (ja) 適応型走査を用いる動画の符号化/復号化装置
CN1810037A (zh) 帧间的快速模式确定编码
WO2010029850A1 (ja) 画像符号化装置、画像復号化装置、画像符号化方法、画像復号化方法、及びそのプログラム
JP2013048481A (ja) イントラ予測映像復号化のための方法及び装置
CN104125466A (zh) 一种基于gpu的hevc并行解码方法
CN103975599A (zh) 图像编码以及解码方法、装置、程序
US20180310000A1 (en) Method and apparatus for intra prediction in video coding system
KR101292668B1 (ko) 멀티프로세서기반의 영상 복호화 장치 및 방법
KR20220003631A (ko) 서브-파티션들의 병렬 양방향 인트라-코딩
WO2013005967A2 (ko) 영상 정보 부호화 방법 및 복호화 방법
JP4656003B2 (ja) 画像符号化装置及び画像符号化方法
TWI516096B (zh) 進行影像編碼預測的方法及採用該方法的影像編碼裝置
KR101172346B1 (ko) 데이터 처리 속도를 개선한 데이터 처리장치 및 그 동작방법
JP2008271127A (ja) 符号化装置
US9781439B2 (en) Combined parallel and pipelined video encoder
KR100999505B1 (ko) 매크로블록 기반의 데이터 병렬 처리를 수행하는 동영상 인코딩/디코딩 장치
Jiang et al. Efficient gpu-based inter prediction for video decoder
KR20090041944A (ko) 인근 블록의 모드정보를 이용한 움직임 추정 방법 및 장치
EP3941043A1 (en) Image decoding device, image decoding method, and program

Legal Events

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

Payment date: 20150520

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160729

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170713

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180712

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190731

Year of fee payment: 8