KR20150037371A - 다이렉트 메모리 액세스(dma)를 이용하여 영상 신호를 처리하는 방법 및 장치. - Google Patents
다이렉트 메모리 액세스(dma)를 이용하여 영상 신호를 처리하는 방법 및 장치. Download PDFInfo
- Publication number
- KR20150037371A KR20150037371A KR20130116898A KR20130116898A KR20150037371A KR 20150037371 A KR20150037371 A KR 20150037371A KR 20130116898 A KR20130116898 A KR 20130116898A KR 20130116898 A KR20130116898 A KR 20130116898A KR 20150037371 A KR20150037371 A KR 20150037371A
- Authority
- KR
- South Korea
- Prior art keywords
- filter
- data
- programmable
- hardware block
- memory access
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/423—Methods 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 characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명의 일 실시 예들은 디지털 신호 처리장치(DSP)를 포함한 시스템에서 다이렉트 메모리 액세스(DMA)를 이용하여 메모리에 저장된 영상 신호를 처리하는 방법에 관한 것으로서, 하드웨어 블록의 내부에 위치하는 다이렉트 메모리 액세스(DMA)가 하드웨어 블록의 외부에 위치하는 메모리로부터 데이터를 수신하고, 수신한 데이터를 하드웨어 블록 내부에 위치하는 프로그래머블 필터로 하드웨어 블록 내부의 전송 경로를 통해 전송하고, 필터 정보를 저장하고 있는 프로그래머블 필터가 필터 정보를 이용하여 수신한 데이터를 필터링한다. 하드웨어 블록 내부의 전송 경로를 통해 데이터가 전송되기 때문에 속도 및 효율면에서 향상된 효과를 얻을 수 있다.
Description
본 발명의 실시 예들은 프로그래머블 필터 및 다이렉트 메모리 액세스(DMA: Direct Memory Access)를 이용하여 영상 처리하는 방법 및 장치에 관한 것이다.
고해상도 또는 고화질 비디오 컨텐트를 재생, 저장할 수 있는 하드웨어의 개발 및 보급에 따라, 고해상도 또는 고화질 비디오 컨텐트를 효과적으로 부호화하거나 복호화하는 비디오 코덱의 필요성이 증대하고 있다. 이러한 부호화 또는 복호화 작업에서 필수적으로 요구되는 단계가 필터링 단계이다. 특히 디코딩 단계에서는 움직임 보정(Motion Compensation)과 관련하여 많은 데이터 전송이 요구된다.
이와 관련하여 부호화 또는 복호화 작업에서 다이렉트 메모리 액세스(DMA) 전송 기술이 사용되는 것이 효과적이다.
그러나 필터와 다이렉트 메모리 액세스가 별도로 분리되어 버스로 연결되는 경우 데이터의 송신 및 수신에 필요한 시간이 많아지고, 시스템에 걸리는 로드도 높아져 효율적인 영상처리가 이루어지기 힘들다는 문제점이 있었다.
영상 신호를 처리하는 방법에 있어서 다이렉트 메모리 액세스(DMA)를 이용하는 방법 및 장치를 제공한다. 다이렉트 메모리 액세스(DMA)를 이용함에 있어 프로그램이 가능한 필터를 연계하도록 함으로써 속도 및 효율면에서 향상된 효과를 얻을 수 있다. 또한, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을수 있는 기록 매체를 제공한다. 해결하고자 하는 기술적 과제는 상기 기술된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면은, 디지털 신호 처리장치(DSP)를 포함한 시스템에서 다이렉트 메모리 액세스(DMA)를 이용하여 메모리에 저장된 영상 신호를 처리하는 방법에 있어서, 하드웨어 블록의 내부에 위치하는 다이렉트 메모리 액세스(DMA)가 상기 하드웨어 블록의 외부에 위치하는 메모리로부터 데이터를 수신하는 단계; 상기 수신한 데이터를 상기 하드웨어 블록 내부에 위치하는 프로그래머블 필터로 상기 하드웨어 블록 내부의 전송 경로를 통해 전송하는 단계; 및 필터 정보를 저장하고 있는 상기 프로그래머블 필터가 상기 필터 정보를 이용하여 상기 수신한 데이터를 필터링하는 단계를 포함하는 방법을 제공할 수 있다.
본 발명의 하나 혹은 하나 이상의 실시 예 및 그 실시 예의 이점들은, 첨부 도면들과 함께 다음의 상세한 설명을 참조하여 가장 잘 이해될 수 있다.
도 1은 하나 이상의 디지털 신호 처리장치(DSP: Digital Signal processor)와 메모리가 버스로 연결되어 디지털 신호를 처리하는 일반적인 멀티코어 시스템의 일례를 도시하는 블록도이다.
도 2는 본 발명의 일 실시 예에 따라 하나의 하드웨어 블록으로 구성된 다이렉트 메모리 액세스(210) 및 프로그래머블 필터(220)가 일반적인 멀티코어 시스템에 버스로 연결되어있는 일례를 도시한 블록도이다.
도 3은 본 발명의 일 실시 예에 따라 다이렉트 메모리 액세스(DMA)가 메모리로부터 수신한 데이터를 프로그래머블 필터로 전송하여 필터링하는 일례를 설명하는 순서도이다.
도 4는 본 발명의 일 실시 예에 따라 설정되고 저장된 필터 계수 세트의 값 및 최대 필터 차수를 이용하여 프로그래머블 필터가 다이렉트 메모리 액세스(DMA)로부터 전송받은 데이터를 필터링하는 일례를 설명하는 순서도이다.
도 5는 본 발명의 일 실시 예에 따라 메모리로부터 수신한 데이터가 프로그래머블 필터에서 처리가 필요한지 판단하고 판단 결과에 따라 수신한 데이터를 전송하는 일례를 설명하는 순서도이다.
도 6은 본 발명의 일 실시 예에 따라 메모리로부터 데이터를 수신하여 전송 및 필터링하여 처리한 데이터를 DSP로 송신하는 일례를 설명하는 순서도이다.
도 7은 본 발명의 일 실시 예에 따라 블록 데이터를 필터가 켜져 있는지 판단하여 필터링을 수행하는 일례를 설명하는 순서도이다.
도 8은 본 발명의 일 실시 예에 따라 다이렉트 메모리 액세스(DMA)를 이용하여 영상 신호를 처리하는 장치를 도시한 블록도이다.
도 1은 하나 이상의 디지털 신호 처리장치(DSP: Digital Signal processor)와 메모리가 버스로 연결되어 디지털 신호를 처리하는 일반적인 멀티코어 시스템의 일례를 도시하는 블록도이다.
도 2는 본 발명의 일 실시 예에 따라 하나의 하드웨어 블록으로 구성된 다이렉트 메모리 액세스(210) 및 프로그래머블 필터(220)가 일반적인 멀티코어 시스템에 버스로 연결되어있는 일례를 도시한 블록도이다.
도 3은 본 발명의 일 실시 예에 따라 다이렉트 메모리 액세스(DMA)가 메모리로부터 수신한 데이터를 프로그래머블 필터로 전송하여 필터링하는 일례를 설명하는 순서도이다.
도 4는 본 발명의 일 실시 예에 따라 설정되고 저장된 필터 계수 세트의 값 및 최대 필터 차수를 이용하여 프로그래머블 필터가 다이렉트 메모리 액세스(DMA)로부터 전송받은 데이터를 필터링하는 일례를 설명하는 순서도이다.
도 5는 본 발명의 일 실시 예에 따라 메모리로부터 수신한 데이터가 프로그래머블 필터에서 처리가 필요한지 판단하고 판단 결과에 따라 수신한 데이터를 전송하는 일례를 설명하는 순서도이다.
도 6은 본 발명의 일 실시 예에 따라 메모리로부터 데이터를 수신하여 전송 및 필터링하여 처리한 데이터를 DSP로 송신하는 일례를 설명하는 순서도이다.
도 7은 본 발명의 일 실시 예에 따라 블록 데이터를 필터가 켜져 있는지 판단하여 필터링을 수행하는 일례를 설명하는 순서도이다.
도 8은 본 발명의 일 실시 예에 따라 다이렉트 메모리 액세스(DMA)를 이용하여 영상 신호를 처리하는 장치를 도시한 블록도이다.
이하의 설명은 하나 혹은 그 이상의 실시예의 일반적 원리를 설명하며, 여기에 청구된 본 발명의 개념을 한정하지 않는다. 게다가 여기에 기재된 특정의 특징들은 여러 가지 가능한 조합과 치환에서 다른 기재된 특징과 결합하여 사용될 수 있다. 그렇지 않고 여기에 구체적으로 정의되어 있지 않으면, 모든 용어는 종래 기술 또는 사전, 논문에서 정의된 대로 통상의 기술자에 의해 이해되는 의미뿐만 아니라 명세서로부터 암시된 의미를 포함하는 가장 넓은 가능한 해석이 부여될 수 있다.
또한, 본 명세서에서, 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되지 않는다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다.
또한, 본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
또한, 본 명세서에서 디지털 신호 처리장치(DSP: Digital Signal processor)는 디지털 신호 처리를 위해 특별히 제작된 마이크로 프로세서를 의미할 수 있고, 중앙 처리장치(CPU)의 일종을 의미할 수 있다.
또한, 본 명세서에서 다이렉트 메모리 액세스(DMA: Direct Memory Access)는 주변장치들(하드디스크, 그래픽 카드, 네트워크 카드, 사운드 카드 등)이 메모리에 직접 접근하여 읽거나 쓸 수 있도록 하는 기능을 의미할 수 있다. 또한 이와 같은 기능을 수행하는 장치를 의미할 수 있다. 다이렉트 메모리 액세스가 지원될 경우 중앙처리장치가 데이터 전송에 관여하지 않아도 되므로 컴퓨터 성능이 좋아질 수 있다.
또한, 본 명세서에서 레지스터는 하드웨어 블록 내에 들어있는 소규모 데이터 기억장치를 의미할 수 있다. 버스를 통해 연결된 하드웨어 외부의 저장공간과 달리 레지스터는 하드웨어 블록 내에 위치하기 때문에 읽고 쓰는 것이 빠를 수 있다.
또한, 본 명세서에서 움직임 보정(motion compensation)은 이전 화면과 지금 화면을 비교하여 다음 화면을 추정하는 압축 방법의 일종을 의미할 수 있다. 또한, 본 명세서에서 움직임 보정(motion compensation)은 과거의 프레임 내의 피사체가 이동하는 정보인 움직임 벡터(motion vector) 데이터와, 과거의 프레임 데이터를 이용하여 현재 프레임의 데이터를 만드는 과정의 일부를 의미할 수 있다.
또한, 본 발명의 실시 예에서 "통신", "통신망" 및 "네트워크"는 동일한 의미로 사용될 수 있다. 상기 세 용어들은, 파일을 유저 단말, 다른 유저들의 단말 및 다운로드 서버 사이에서 송수신할 수 있는 유무선의 근거리 및 광역 데이터 송수신망을 의미할 수 있다.
또한, 본 명세서에서 컴퓨터로 읽을 수 있는 기록매체는 장치가 특정한 기능을 수행하도록 하는 데이터를 제공하는데 참여하는 어떤 매체로 볼 수 있다.
이하, 본 발명의 실시 예들을 첨부도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략할 수 있다.
초고속 정보 통신망을 근간으로 구축되는 정보화 시대에서 실현되는 서비스들은 문자, 음성, 영상을 통해 보고 듣는 멀티미디어형 서비스로 발전하고 있다. 이에 따라, 시스템의 프로세서는 대용량의 데이터를 처리한다. 특히, 멀티미디어 및 영상 데이터와 같은 대용량 데이터의 전송 시, 시스템의 프로세서는 매우 빈번히 메모리를 액세스한다.
시스템의 성능은 데이터를 처리하는 주변 장치와 메모리 장치 사이의 데이터 전송 속도에 의해서 크게 좌우될 수 있다. 시스템의 성능을 향상시키기 위해서 다이렉트 메모리 액세스(DMA: Direct Memory Access) 전송 기술이 사용된다. 다이렉트 메모리 액세스(DMA) 전송 기술에서는 프로세서가 데이터 전송을 담당하지 않는다. 즉, 버스에 연결된 메모리 장치와 주변 장치 사이에 직접 데이터 전송이 수행된다. 이러한 동작을 수행하기 위해서 다이렉트 메모리 액세스(DMA) 컨트롤러가 사용된다. 다시 말해서, 다이렉트 메모리 액세스(DMA) 전송 기술에 있어서, 다이렉트 메모리 액세스(DMA) 컨트롤러는 프로세서 대신 데이터 전송을 담당한다.
본 발명의 일 실시 예는 상술한 다이렉트 메모리 액세스(DMA)를 이용하여 영상 신호를 처리하는 방법 및 장치를 제공한다.
도 1은 하나 이상의 디지털 신호 처리장치(110)(DSP: Digital Signal processor)와 메모리(130)가 버스(120)로 연결되어 디지털 신호를 처리하는 일반적인 멀티코어 시스템의 일례를 도시하는 블록도이다.
하나 이상의 디지털 신호 처리장치(110) 및 메모리(130)가 버스(120)에 연결되어있고, 하나 이상의 디지털 신호 처리장치(110)는 메모리(130)로부터 버스(120)를 통해 데이터를 수신할 수 있다.
HEVC와 같은 차세대 코덱 혹은 애플리케이션을 지원하기 위해서는 이미 제약이 많이 있는 하드웨어에 비해서 프로그래머블한 디지털 신호 처리장치(110) 시스템이 필수적이다. 따라서 도 1에서와 같이 하나 이상의 디지털 신호 처리장치(110)를 버스(120)에 연결하여 사용하는 것이 일반적이다. 이처럼 기존 하드웨어 블록을 대체하기 위해서 멀티코어 디지털 신호 처리장치(110) 시스템이 필요하다. 하드웨어 블록은 전용의 기능을 수행하기 위해 설계되었기 때문에 범용의 디지털 신호 처리장치(110)에 비해서 빠른 데이터 처리가 가능하다. 그런 이유로, 같은 기능을 디지털 신호 처리장치(110)에서 수행하게 되면 상대적으로 연산의 로드가 더 커지게 된다. 이러한 문제로 인해 디지털 신호 처리장치(110)가 추가적으로 더 필요하거나 멀티코어 디지털 신호 처리장치(110) 시스템에서 각각의 코어에 부하가 더욱 커지게 되어 성능이 저하된다.
즉 도 1에서의 시스템은 일반적인 멀티코어 디지털 신호 처리장치(110) 시스템을 나타낸다. 도 1에서 보듯이, 차세대 코덱/애플리케이션의 지원을 위해 하드웨어 블록의 사용을 배제한 형태이다. 이 경우 각각의 디지털 신호 처리장치(110) 코어는 하드웨어 블록에 비해 상대적으로 연산 부하가 커지게 된다.
도 2는 본 발명의 일 실시 예에 따라 하나의 하드웨어 블록으로 구성된 다이렉트 메모리 액세스(210) 및 프로그래머블 필터(220)가 일반적인 멀티코어 시스템에 버스(120)로 연결되어있는 일례를 도시한 블록도이다.
전술한 바와 같이, HEVC와 같은 차세대 코덱 혹은 애플리케이션을 지원하기 위해서는 제어 조건이 결정되어 있는 하드웨어 블록에 비해 범용의 디지털 신호 처리장치(110)를 사용하는 시스템이 더 효율적이다. 하드웨어 블록은 전용의 기능을 수행하기 위해 설계되었기 때문에 범용의 디지털 신호 처리장치(110)에 비해서 빠른 데이터 처리가 가능하다. 그런 이유로 같은 기능을 디지털 신호 처리장치(110)에서 수행하게 되면 상대적으로 연산의 로드가 더 커지게 된다. 디지털 신호 처리장치(110)로만 시스템을 구성하게 되면 일반적인 형태의 연산을 쉽게 지원할 수 있다는 디지털 신호 처리장치(110)의 장점과 함께, 수행 속도의 저하라는 단점이 동시에 발생하게 된다.
즉 도 1에서와 같은 시스템에 최소한의 하드웨어 로직만 추가해서 디지털 신호 처리장치(110)에서 필수적인 연산을 대신 수행하여 전체 시스템의 성능을 높일 수 있다. 또한 프로그래머블 필터(220)를 이용해서 기존 코덱 뿐만 아니라 차세대 코덱 또한 쉽게 지원할 수 있다.
도 2는 다이렉트 메모리 액세스(210)에 프로그래머블 필터(220)를 추가하고 전체 시스템에 연결한 형태이다. 다이렉트 메모리 액세스(210)는 멀티미디어 시스템에서 외부 메모리로부터 데이터를 빠르게 전송 받기 위해 이용하는 장치일 수 있다. 여기에 프로그래머블 필터(220)를 추가함으로써 멀티코어 디지털 신호 처리장치(110) 시스템의 부하를 줄일 수 있다. MPEG4, H.264등과 같은 코덱 데이터를 복호(decoding)하는 시스템에서는, 다이렉트 메모리 액세스(210)를 통해 외부 메모리(130)에서 전송된 블록 형태의 데이터를 후처리 과정에서 필터링 연산을 진행할 수 있다. 그러므로 필터링 연산은 멀티미디어 시스템에서 필수적인 연산이고, 코덱의 종류에 따라서 필터 계수와 필터 차수가 서로 다를 수 있다. 현재까지 구현된 MPEG4, H.264등의 코덱만을 지원하는 필터 블록의 경우, 필터 계수와 필터 차수가 다른 HEVC 코덱은 지원할 없다. 이를 위해 도 2에서는 프로그래머블한 필터를 다이렉트 메모리 액세스(210)에 직접 연결해서 일반적인 형태의 모든 필터 연산을 지원할 수 있다. 필터 연산까지 마친 데이터를 디지털 신호 처리장치(110)로 전송하게 되면 디지털 신호 처리장치(110)에서는 필터 연산의 부담이 줄어들게 되어 전체 부하가 낮아진다.
영상 신호 데이터는 메모리(130)에 저장되어있을 수 있다. 영상 신호의 처리가 필요할 때 디지털 신호 처리장치(110)는 관련 데이터에 접속할 것을 다이렉트 메모리 액세스(210)에 요청할 수 있다. 다이렉트 메모리 액세스(210)는 디지털 신호 처리장치(110)에서 메모리(130)에 접속하라는 요청을 받으면 메모리(130)에 접속할 수 있다. 그리고 다이렉트 메모리 액세스(210)는 메모리(130)에서 영상 신호 처리를 위해 필요한 데이터를 읽어올 수 있다. 그리고 다이렉트 메모리 액세스(210)가 읽어온 데이터를 프로그래머블 필터(220)로 전송할 수 있다. 그리고 프로그래머블 필터(220)는 다이렉트 메모리 액세스(210)로부터 수신한 데이터에 대하여 필터링을 수행할 수 있다.
다이렉트 메모리 액세스(210) 및 프로그래머블 필터(220)는 하나의 하드웨어 블록 내에 위치한다. 또한, 다이렉트 메모리 액세스(210) 및 프로그래머블 필터(220)를 포함한 하나의 하드웨어 블록(230)은 버스(120)를 통해 메모리(130) 및 디지털 신호 처리장치(110)와 연결되어 있을 수 있다.
하드웨어는 컴퓨터의 모든 물리적 부품을 포함하는 개념을 의미할 수 있다. 또한, 하드웨어 블록은 하드웨어를 블록 단위로 설정한 것을 의미할 수 있다.
하드웨어 블록은 특정한 기능을 수행하기 위해 설계될 수 있다. 예를 들면 H.264 코덱 방식으로 인코딩된 데이터를 디코딩하는 하드웨어 블록은 디지털 신호 처리장치(110)에서 같은 데이터를 디코딩할 때 보다 속도가 빠를 수 있다. 그러나 H.264 코덱 방식으로 인코딩된 데이터를 디코딩 하는데 특화된 하드웨어 블록은 다른 방식으로 인코딩된 데이터는 디코딩할 수 없을 수 있다.
이처럼 하드웨어 블록은 특정한 기능을 수행하는데 최적화되어 있으므로, 하드웨어 블록은 범용의 디지털 신호 처리장치(110)에 비해서 빠른 데이터 처리가 가능할 수 있다. 따라서, 하드웨어 블록에서 전용으로 수행할 수 있는 기능을 디지털 신호 처리장치(110)에서 수행하게 되면 상대적으로 연산의 로드가 더 커질 수 있다.
일반적으로 하드웨어 블록은 특별한 기능을 수행하기 위해 설계되기 때문에 처음 하드웨어 블록 제작 시에 수행할 수 있는 기능 외에 새로운 기능을 수행하지 못할 수 있다.
그러나 본 발명의 일 실시 예에 따르면, 다이렉트 메모리 액세스(210) 및 프로그래머블 필터(220)를 포함한 하나의 하드웨어 블록(230)은 일정한 범위 내에서 수행할 수 있는 기능의 범위를 확장할 수 있다.
수행할 수 있는 기능의 범위를 확장하는 것은 프로그래머블 필터(220) 내에 있는 필터 계수 제어부의 필터 계수를 새롭게 설정함으로써 수행될 수 있다.
보다 구체적으로 프로그래머블 필터(220)에서 수행하는 필터링은 6탭 필터 또는 8탭 필터와 같은 N 탭 필터 작업일 수 있다.
예를 들어 6탭 필터는 6개의 값을 이용하여 하나의 값을 정하는 필터링 방식을 의미할 수 있다. 보다 구체적으로, 6탭 필터는 a1×X1 + a2×X2 + a3×X3 + a4×X4 + a5×X5 + a6×X6 = P1 과 같은 방식으로 6개의 X값을 이용하여 하나의 P1값을 구하는 방식으로 픽셀의 값을 구하는 작업을 수행할 수 있다. 이 때, 계수인 a1 내지 a6는 코덱의 종류에 따라 결정되는 값일 수 있다. 필터링을 수행하는 과정에서 정해지는 변수에 곱해주는 값이 계수일 수 있다. 또한, 하나 이상의 계수가 하나의 세트를 이룰 때 필터 계수 세트라고 할 수 있다. 따라서 새로운 코덱에 의해 인코딩된 데이터를 디코딩 하기 위해서는 새로운 필터 계수 세트가 필요할 수 있다.
현재의 TV, Computer 및 Mobile Phone 등과 같이 H.264/AVC, HEVC 등의 코덱을 이용하는 동영상 부호기/복호기기들에 본 발명을 적용함으로써 프로세서/하드웨어 장치와 메모리(130) 간의 대역폭을 줄이고, 다이렉트 메모리 액세스(210)에 포함되어 있는 프로그래머블 필터(220)를 이용하여 프로세서/하드웨어의 연산을 일부 절감할 수 있기 때문에 코덱의 부호기/복호기의 성능을 향상시킬 수 있다.
프로그래머블 필터(220)가 포함된 다이렉트 메모리 액세스(210)를 이용한 멀티미디어 시스템의 경우 디지털 신호 처리장치(110)에서 수행해야 할 연산의 일부를 다이렉트 메모리 액세스(210)에서 실행하기 때문에 디지털 신호 처리장치(110)의 부하를 줄여 주고, 필요 없는 데이터 오버헤드를 줄일 수 있기 때문에 시스템의 성능을 높일 수 있다. 이 발명을 차세대 코덱 혹은 애플리케이션을 수행하는 시스템에 적용하는 경우에는 기존 하드웨어 블록은 제공할 수 없는 새로운 필터링의 조건을 프로그래머블 필터(220)의 특성을 이용하여 쉽게 지원 가능할 수 있다. 하드웨어 대신 디지털 신호 처리장치(110)만 사용하는 멀티코어 시스템 환경에서는 더욱 큰 시스템 향상 및 디지털 신호 처리장치(110)의 부하 감소가 극대화 될 수 있다.
프로그래머블 필터(220)는 기존에 존재하는 코덱들의 방식으로 별도의 새로운 조작 없이 부호화 또는 복호화를 수행할 수 있다. 또한 프로그래머블 필터(220)는 기존에 존재하지 않는 코덱의 방식으로 사용자의 설정에 의해 부호화 또는 복호화를 수행할 수 있다.
기존에 존재하는 코덱의 종류로 H.264 및 HEVC 코덱이 있을 수 있다. 또한, H.264 방식은 6탭 필터, HEVC 코덱은 8탭 필터 방식으로 필터링을 수행할 수 있다.
소정의 코덱으로 부호화된 영상 신호는 디코딩 과정에서 복호화될 수 있다. 디코딩하는 과정에서 부호화된 영상 신호를 움직임 보정하는 과정이 수행될 수 있다. 움직임 보정은 디코딩하는 과정에서 많은 데이터의 전송이 필요하다. 따라서 디코딩하는 과정에서 수행되는 움직임 보정을 디지털 신호 처리장치(110)에서 수행할 경우, 디지털 신호 처리장치(110)에서 움직임 보정을 수행하는데 시간이 오래 걸려 전체적으로 시스템의 속도가 저하될 수 있다. 그러나 움직임 보정과 관련된 연산을 프로그래머블 필터(220)에서 일부 또는 전부 수행할 경우 전체적으로 시스템의 속도 향상이 가능하다.
도 3은 본 발명의 일 실시 예에 따라 다이렉트 메모리 액세스(210)(DMA)가 메모리(130)로부터 수신한 데이터를 프로그래머블 필터(220)로 전송하여 필터링하는 일례를 설명하는 순서도이다.
단계 S310에서 하드웨어 블록의 내부에 위치하는 다이렉트 메모리 액세스(210)가 하드웨어 블록의 외부에 위치하는 메모리(130)로부터 데이터를 수신할 수 있다. 하나의 하드웨어 블록 내에 다이렉트 메모리 액세스(210)와 프로그래머블 필터(220)가 함께 위치할 수 있다. 그리고 메모리(130)는 다이렉트 메모리 액세스(210)와 프로그래머블 필터(220)가 함께 위치한 하드웨어 블록(230)의 외부에 위치할 수 있다. 다이렉트 메모리 액세스(210)와 프로그래머블 필터(220)가 함께 위치한 하드웨어 블록(230)은 메모리(130)와 버스(120)로 연결될 수 있다. 다이렉트 메모리 액세스(210)와 프로그래머블 필터(220)가 함께 위치한 하드웨어 블록(230)이 메모리(130)로부터 수신하는 데이터는 영상과 관련된 신호일 수 있다.
단계 S320에서 다이렉트 메모리 액세스(210)는 메모리(130)로부터 수신한 데이터를 하드웨어 블록 내부에 위치하는 프로그래머블 필터(220)로 하드웨어 블록 내부의 전송 경로를 통해 전송할 수 있다. 즉 다이렉트 메모리 액세스(210)와 프로그래머블 필터(220)는 같은 하드웨어 블록 내부에 위치하기 때문에 하드웨어 블록 내부의 전송 경로를 통해 데이터 전송이 가능하다. 하드웨어 블록 내부의 전송 경로를 이용하여 데이터를 전송할 경우 버스(120)를 통하여 연결된 경우보다 빠른 데이터의 송수신이 가능할 수 있다. 따라서 전체적인 속도 향상의 효과가 있을 수 있다.
단계 S330에서 필터 정보를 저장하고 있는 프로그래머블 필터(220)가 필터 정보를 이용하여 단계 S320에서 전송받은 데이터를 필터링할 수 있다.
필터 정보는 최대 필터 차수 및 필터 계수 세트를 포함할 수 있다.
필터 계수 세트는 소정의 코덱에 의해 인코딩된 데이터의 디코딩을 위한 값들로 정해질 수 있다. 또한 필터 계수 세트는 프로그래머블 필터(220) 내의 레지스터에 저장되어 있을 수 있다.
또한, 필터링은 1탭 필터 내지 20탭 필터 중 어느 한 필터에 의해 수행되는 필터링일 수 있다.
또한, 프로그래머블 필터(220)에서 수행하는 필터링은 6탭 필터 또는 8탭 필터와 같은 N 탭 필터 작업일 수 있다. 이와 같이 하나의 값을 정하기 위해 필요로 하는 값의 수를 최대 필터 차수라고 할 수 있다.
예를 들어 8탭 필터는 8개의 값을 이용하여 하나의 값을 정하는 필터링 방식을 의미할 수 있다. 보다 구체적으로, 8탭 필터를 a1×X1 + a2×X2 + a3×X3 + a4×X4 + a5×X5 + a6×X6 + a7×X7 + a8×X8 = P1 과 같은 방식으로 8개의 X값을 이용하여 하나의 P1값을 구하는 방식으로 픽셀의 값을 구하는 작업을 수행할 수 있다. 이 때, 계수인 a1 내지 a8은 코덱의 종류에 따라 결정되는 값일 수 있다. 필터링을 수행하는 과정에서 정해지는 변수에 곱해주는 값이 계수일 수 있다. 또한, 필터링을 위해 필요한 하나 이상의 계수가 하나의 세트를 이룰 때 필터 계수 세트라고 할 수 있다. 따라서 새로운 코덱에 의해 인코딩된 데이터를 디코딩하기 위해서는 새로운 필터 계수 세트가 필요할 수 있다.
하나의 픽셀 값을 구하기 위해 필요로 하는 값의 개수가 최대 필터 차수일 수 있다. 상술한 8탭 필터의 필터 차수는 8차일 수 있다. 이 때 최대 필터 차수는 미리 정해져 있고, 실제 필터 차수는 필터 계수 값에 의해 정해질 수도 있다. 예를 들면 최대 필터 차수는 10이고, 필터 계수를 1,2,3,4,5,6,7,8,0,0으로 설정하게 되면, 필터 계수 값이 0인 값은 실제 계산에서 배제되고, 필터 계수 값이 0이 아닌 8개의 값만이 계산에서 반영될 수 있다. 이 경우 최대 필터 차수는 10이지만, 실제 필터 차수는 6일 수 있다. 즉 최대 필터 차수는 미리 정해져 있고, 실제 필터 차수가 필터 계수 값에 의해 정해질 수 있다.
따라서 필터 계수 세트의 값을 재설정 하더라도 실제 필터 차수는 최대 필터 차수를 넘을 수 없다. 최대 필터 차수는 처음 장치가 제작될 때 미리 설정되어있을 수도 있고, 장치가 제작된 이후에 사용자가 설정하여 결정할 수도 있다.
도 4는 본 발명의 일 실시 예에 따라 설정되고 저장된 필터 계수 세트의 값 및 최대 필터 차수를 이용하여 프로그래머블 필터(220)가 다이렉트 메모리 액세스(210)(DMA)로부터 전송받은 데이터를 필터링하는 일례를 설명하는 순서도이다.
단계 S410에서 필터 계수 세트의 값 및 최대 필터 차수를 설정할 수 있다. 필터 계수 세트의 값 및 최대 필터 차수의 설정은 사용자에 의해 이루어질 수 있다. 보다 구체적으로 사용자는 프로그래밍 등의 방법을 이용하여 필터 계수 세트의 값 및 최대 필터 차수를 결정할 수 있다. 종래에는 존재하지 않던 새로운 방식의 코덱 방식에 의해 인코딩된 데이터를 디코딩하기 위해서 사용자는 새로운 필터 계수 세트의 값 및 최대 필터 차수를 설정할 수 있다. 따라서 프로그래머블 필터(220)에서는 종래에는 존재하지 않던 새로운 방식의 코덱 방식에 의해 인코딩된 데이터의 디코딩이 가능할 수 있다.
단계 S420에서는 단계 S410에서 설정된 필터 계수 세트의 값 및 설정된 최대 필터 차수를 프로그래머블 필터(220)에 저장할 수 있다. 단계 S410에서 설정된 필터 계수 세트의 값 및 설정된 최대 필터 차수는 프로그래머블 필터(220) 내에 위치한 레지스터에 저장될 수 있다. 레지스터는 소규모 데이터 기억장치를 의미할 수 있다. 또한 레지스터는 내부 버스를 통해 하드웨어 블록 내의 다른 장치와 연결될 수 있다.
단계 S430에서는 단계 S420에서 저장된 필터 계수 세트의 값 및 최대 필터 차수를 이용하여 프로그래머블 필터(220)가 다이렉트 메모리 액세스(210)로부터 전송받은 데이터를 필터링할 수 있다. 필터링하는 과정은 움직임 보정(Motion Compensation)의 일부 또는 전부를 수행하는 과정을 포함할 수 있다. 또한, 움직임 보정은 디코딩 과정의 일부를 의미할 수 있다.
보다 구체적으로, 움직임 보정(motion compensation)은 이전 화면과 지금 화면을 비교하여 다음 화면을 추정하는 디코딩 방법의 일종을 의미할 수 있다. 또한, 움직임 보정(motion compensation)은 과거의 프레임 내의 피사체가 이동하는 정보인 움직임 벡터(motion vector) 데이터와, 과거의 프레임 데이터를 이용하여 현재 프레임의 데이터를 만드는 과정의 일부 또는 전부를 의미할 수 있다.
필터링은 상술한 바와 같이 여러 개의 픽셀 값을 이용하여 하나의 픽셀 값을 구하는 과정을 의미할 수 있다. 또한 필터링은 디코딩 과정의 전부 또는 일부를 의미할 수 있다. 보다 구체적으로 프로그래머블 필터(220)에서 수행하는 필터링은 6탭 필터 또는 8탭 필터와 같은 N 탭 필터 작업일 수 있다.
도 5는 본 발명의 일 실시 예에 따라 메모리(130)로부터 수신한 데이터가 프로그래머블 필터(220)에서 처리가 필요한지 판단하고 판단 결과에 따라 수신한 데이터를 전송하는 일례를 설명하는 순서도이다.
도 5를 참조하면, 본 실시 예에 따른 다이렉트 메모리 액세스(210)를 이용하여 영상 신호를 처리하는 방법은 도 3에 도시된 다이렉트 메모리 액세스(210)를 이용하여 영상 신호를 처리하는 방법에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 3에 도시된 다이렉트 메모리 액세스(210)를 이용하여 영상 신호를 처리하는 방법에 관하여 이상에서 기술된 내용은 본 실시 예에 따른 다이렉트 메모리 액세스(210)를 이용하여 영상 신호를 처리하는 방법에도 적용된다. 도 5는 도 3과 비교할 때, S520과 S530 단계에서 차이가 있으므로, 동일한 내용에 대해서는 간략히 설명하고, 차이점을 중심으로 설명하기로 한다.
단계 S510은 단계 S310에 대응되는 단계이다.
단계 S520에서 다이렉트 메모리 액세스(210)는 단계 S510에서 수신한 데이터가 프로그래밍 필터에서 처리가 필요한지 여부를 판단할 수 있다. 보다 구체적으로 영상 신호 중에서도 필터링이 요구되지 않는 데이터의 경우 필터링을 거치지 않고 다이렉트 메모리 액세스(210)는 메모리(130)로부터 수신한 데이터를 바로 디지털 신호 처리장치(110)로 전송할 수 있다.
그러나 다이렉트 메모리 액세스(210)가 단계 S510에서 수신한 데이터가 프로그래밍 필터에서 처리가 필요하다고 판단한 경우 메모리(130)로부터 수신한 데이터를 프로그래머블 필터(220)로 하드웨어 블록 내부의 전송경로를 통해 전송할 수 있다.
단계 S530에서 다이렉트 메모리 액세스(210)는 단계 S520에서 판단 결과 메모리(130)에서 수신한 데이터가 필터에서 처리가 필요하다고 판단될 경우 메모리(130)로부터 수신한 데이터를 프로그래머블 필터(220)로 하드웨어 블록 내부의 전송 경로를 통해 전송할 수 있다.
단계 S540은 단계 S330에 대응되는 단계이다.
도 6은 본 발명의 일 실시 예에 따라 메모리(130)로부터 데이터를 수신하여 전송 및 필터링하여 처리한 데이터를 디지털 신호 처리장치(110)로 송신하는 일례를 설명하는 순서도이다.
단계 S610에서 다이렉트 메모리 액세스(210)는 메모리(130)로부터 데이터를 수신할 수 있다. 다이렉트 메모리 액세스(210)는 메모리(130)로부터 데이터를 수신할 때에는 버스(120)를 통하여 수신할 수 있다. 메모리(130)는 다이렉트 메모리 액세스(210)가 위치한 하드웨어 블록 외부에 위치할 수 있다.
단계 S620에서 다이렉트 메모리 액세스(210)는 단계 S610에서 수신한 데이터가 프로그래머블 필터(220)에서 처리가 필요한지 판단할 수 있다. 보다 구체적으로 다이렉트 메모리 액세스(210) 내부에 판단을 담당하는 구성 요소가 위치할 수 있다.
단계 S620에서 메모리로부터 수신한 데이터가 프로그래머블 필터(220)에서 처리가 필요하다고 판단된 경우 단계 S630으로 진행될 수 있다.
단계 S630에서는 단계 S620에서 수신한 데이터가 프로그래머블 필터(220)로 전송될 수 있다. 단계 S620에서 수신한 데이터가 프로그래머블 필터(220)로 전송될 때에는 다이렉트 메모리 액세스(210)와 프로그래머블 필터(220)가 함께 위치한 하드웨어 블록 내부의 전송경로를 통해 전송될 수 있다.
단계 S640에서는 단계 S630에서 전송받은 데이터가 프로그래머블 필터(220)에서 처리될 수 있다. 프로그래머블 필터(220)에서는 구체적으로 필터링이 수행될 수 있다.
단계 S650에서 단계 S640에서 처리한 데이터가 디지털 신호 처리장치(110)로 송신될 수 있다.
단계 S660에서는 단계 S610에서 다이렉트 메모리 액세스(210)가 메모리(130)로부터 수신한 데이터를 디지털 신호 처리장치(110)로 송신할 수 있다.
도 7은 본 발명의 일 실시 예에 따라 블록 데이터의 필터링이 필요한지 여부를 판단하여 필터링을 수행하는 일례를 설명하는 순서도이다.
단계 S710에서 블록 형태 데이터의 위치정보가 확인될 수 있다.
단계 S720에서 블록 데이터는 메모리(130)로부터 다이렉트 메모리 액세스(210)로 전송될 수 있다.
단계 S730에서는 단계 S720에서 전송된 데이터의 필터 연산이 필요한지 여부가 결정될 수 있다.
단계 S730에서 필터 연산이 필요하다고 판단한 경우 단계 S740에서 필터 계수 세트가 업데이트 될 수 있다.
단계 S730에서 필터 연산이 필요하지 않다고 판단한 경우 단계 S720에서 전송된 블록 데이터는 필터링을 거치지 않고 디지털 신호 처리장치(110)로 전송될 수 있다.
단계 S750에서는 단계 S740에서 정해진 필터 계수 세트를 이용하여 필터링이 수행될 수 있다. 필터연산은 수직방향 혹은 수평방향으로 수행될 수 있다. 필터링이 수행되고 난 후 필터 결과는 디지털 신호 처리장치(110)로 전송될 수 있다.
도 8은 본 발명의 일 실시 예에 따라 다이렉트 메모리 액세스(210)를 이용하여 영상 신호를 처리하는 장치를 도시한 블록도이다.
메모리(130)에 저장되어있던 데이터는 다이렉트 메모리 액세스(210)로 전송될 수 있다. 그리고 필터링 여부 판단부(860)의 판단 결과에 따라 다이렉트 메모리 액세스(210)로 전송된 데이터는 프로그래머블 필터(220)로 전송될 수 있다. 그리고 프로그래머블 필터(220)로 전송된 데이터는 필터링부(825)에서 필터링 연산이 수행될 수 있다. 필터링은 최대 필터 차수 및 필터 계수 세트를 이용하여 수행될 수 있다. 필터의 차수는 최대 N차로 설정을 하고, 필터 계수 세트의 값을 설정함으로써 실제 필터의 차수가 결정될 수 있다. 예를 들어 최대 필터 차수를 8차로 설정하고, 필터 계수 세트 값을 1,2,3,4,0,0,0,0으로 결정하게 되면 결과적으로 실제 필터 차수는 4차일 수 있다. 그리고 필터링부(825)는 4차 필터를 가질 수 있다. 필터 계수 세트의 값을 결정하는 방법은 필터 계수 세트의 값을 외부에서 설정해 주는 방법과 필터 연산할 때 마다 필터 계수 세트 값을 결정하는 방법이 가능할 수 있다. 코덱의 종류 또는 성능에 따라서 필터 계수 세트 값은 다른 값을 가질 수 있다.
다이렉트 메모리 액세스(210)는 하드웨어 블록 내부에 위치하고, 하드웨어 블록의 외부에 위치하는 메모리(130)로부터 데이터를 수신할 수 있다.
또한, 프로그래머블 필터(220)는 다이렉트 메모리 액세스(210)가 위치한 하드웨어 블록(230) 내부에 위치할 수 있다. 또한, 프로그래머블 필터(220)는 하드웨어 블록 내부의 전송 경로를 통해 다이렉트 메모리 액세스(210)가 수신한 데이터를 전송받을 수 있다.
이처럼 프로그래머블 필터(220)와 다이렉트 메모리 액세스(210)가 같은 하드웨어 블록에 위치할 수 있다. 따라서 프로그래머블 필터(220)와 다이렉트 메모리 액세스(210) 사이에서 데이터는 하드웨어 내부의 전송경로를 통해 이루어질 수 있다. 따라서 프로그래머블 필터(220)와 다이렉트 메모리 액세스(210)사이의 데이터 전송은 내부 버스를 통해 이루어질 수도 있다. 따라서 프로그래머블 필터(220)와 다이렉트 메모리 액세스(210) 사이의 데이터 전송은 일반적인 버스(120)를 통해 데이터 전송이 이루어지는 경우보다 빠를 수 있다.
다이렉트 메모리 액세스(210) 및 프로그래머블 필터(220)는 하나의 하드웨어 블록 내에 위치할 수 있다. 또한, 다이렉트 메모리 액세스(210) 및 프로그래머블 필터(220)를 포함한 하나의 하드웨어 블록은 버스(120)를 통해 메모리(130)와 연결되어있을 수 있다. 메모리(130)는 다이렉트 메모리 액세스(210)와 프로그래머블 필터(220)가 함께 위치한 하드웨어 블록(230)의 외부에 위치할 수 있다.
또한, 하드웨어 블록의 내부에 위치하는 다이렉트 메모리 액세스(210)가 하드웨어 블록의 외부에 위치하는 메모리(130)로부터 데이터를 수신할 수 있다.
또한, 다이렉트 메모리 액세스(210)와 프로그래머블 필터(220)가 함께 위치한 하드웨어 블록(230)이 메모리(130)로부터 수신하는 데이터는 영상과 관련된 신호일 수 있다.
다이렉트 메모리 액세스(210) 내부에는 데이터 입력 제어부(840), 데이터 출력 제어부(850), 필터링 여부 판단부(860)가 위치할 수 있다.
데이터 입력 제어부(840)는 메모리(130)로부터 데이터를 수신할 수 있다. 보다 구체적으로 디지털 신호 처리장치(110)로부터 데이터를 읽으라는 명령이 다이렉트 메모리 액세스(210)로 전송되면 다이렉트 메모리 액세스(210)의 내부에 위치하는 데이터 입력 제어부(840)가 메모리(130)로부터 영상 신호와 관련된 데이터를 수신할 수 있다.
데이터 입력 제어부(840)를 통해 수신된 데이터는 필터링 여부 판단부(860)에 전송될 수 있다. 그리고 필터링 여부 판단부(860)는 데이터 입력 제어부(840)를 통해 수신된 데이터가 필터링이 필요한 데이터인지 여부를 판단할 수 있다. 또는 필터링 여부 판단부(860)는 데이터 입력 제어부(840)를 통해 수신된 데이터가 프로그래머블 필터(220)에서 처리가 필요한 데이터인지 여부를 판단할 수 있다. 예를 들어 필터링이 이미 수행되어있는 데이터가 데이터 입력 제어부(840)를 통해 수신된 경우 필터링이 불필요하다고 판단할 수 있다. 그러나 필터링이 수행되어있지 않은 데이터가 데이터 입력 제어부(840)를 통해 수신된 경우 필터링이 필요하다고 판단할 수 있다.
데이터 출력 제어부(850)는 데이터 입력 제어부(840)를 통해 메모리(130)로부터 수신한 데이터를 프로그래머블 필터(220) 또는 데이터 송신부(830)로 송신할 수 있다. 보다 구체적으로 필터링 여부 판단부(860)에서 필터링이 필요하다고 판단한 경우 데이터 출력 제어부(850)는 프로그래머블 필터(220)로 데이터 입력 제어부(840)를 통해 수신한 데이터를 송신할 수 있다. 그러나 필터링 여부 판단부(860)에서 필터링이 필요하지 않다고 판단한 경우 데이터 출력 제어부(850)는 데이터 입력 제어부(840)를 통해 수신한 데이터를 데이터 송신부(830)로 송신할 수 있다.
데이터 송신부(830)는 다이렉트 메모리 액세스(210) 또는 프로그래머블 필터(220)로부터 수신한 데이터를 디지털 신호 처리장치(110)로 송신할 수 있다.
프로그래머블 필터(220)는 최대 필터 차수 및 하나 이상의 필터 계수 세트를 저장할 수 있다. 보다 구체적으로 최대 필터 차수는 최대 필터 차수 저장부(822)에, 필터 계수 세트는 필터 계수 세트 저장부(824)에 저장될 수 있다.
필터 계수 세트 설정부(823)는 프로그래머블 필터(220) 내에 위치할 수 있다. 또한, 필터 계수 세트 설정부(823)는 필터 계수 세트의 값을 설정할 수 있다. 필터 계수 세트 설정부(823)는 사용자의 입력을 수신하여 새로운 필터 계수 세트 값을 결정할 수 있다. 또는 필터 계수 세트 설정부(823)는 이미 저장되어있는 필터 계수 세트 값을 레지스터에 기록하는 방식으로 필터 계수 세트 값을 결정할 수도 있다.
필터 계수 세트 저장부(824)는 프로그래머블 필터(220) 내에 위치할 수 있다. 또한, 필터 계수 세트 저장부(824)는 하나 이상의 필터 계수 세트를 저장할 수 있다. 또한, 필터 계수 세트 저장부(824)는 필터 계수 세트 설정부(823)에서 결정된 필터 계수 세트의 값을 저장할 수 있다. 저장된 필터 계수 세트는 소정의 코덱에 의해 인코딩된 데이터의 디코딩을 위한 값들로 정해질 수 있다. 필터 계수 세트는 프로그래머블 필터(220) 내에 위치하는 레지스터에 저장되어 있을 수 있다.
최대 필터 차수 설정부(821)는 프로그래머블 필터(220) 내에 위치할 수 있다. 또한, 최대 필터 차수 설정부(821)는 최대 필터 차수의 값을 설정할 수 있다. 최대 필터 차수 설정부(821)는 사용자의 입력을 수신하여 새로운 최대 필터 차수의 값을 결정할 수 있다. 또는 최대 필터 차수 설정부(821)는 이미 저장되어있는 최대 필터 차수 값을 레지스터에 기록하는 방식으로 최대 필터 차수 값을 결정할 수도 있다.
최대 필터 차수 저장부(824)는 프로그래머블 필터(220) 내에 위치할 수 있다. 또한, 최대 필터 차수 저장부(824)는 최대 필터 차수를 저장할 수 있다. 또한, 최대 필터 차수 저장부(824)는 최대 필터 차수 설정부(821)에서 결정된 최대 필터 차수의 값을 저장할 수 있다. 저장된 최대 필터 차수는 소정의 코덱에 의해 인코딩된 데이터의 디코딩을 위한 값으로 정해질 수 있다. 최대 필터 차수는 프로그래머블 필터(220) 내에 위치하는 레지스터에 저장되어 있을 수 있다.
최대 필터 차수 저장부(822) 및 필터 계수 세트 저장부(824)는 필터 정보 저장부(870) 내에 위치할 수 있다.
필터링부(825)는 프로그래머블 필터(220) 내에 위치할 수 있다. 또한, 필터링부(825)는 최대 필터 차수 및 필터 계수 세트의 값을 이용하여 다이렉트 메모리 액세스(210)로부터 전송받은 데이터를 필터링할 수 있다.
또한, 필터링부(825)는 움직임 보정(Motion Compensation)의 일부 또는 전부를 수행할 수 있다. 또한, 필터링부(825)는 1탭 필터 내지 10탭 필터 중 어느 한 필터에 의해 수행되는 필터링의 전부 또는 일부를 수행할 수 있다.
또한, 필터링은 상술한 바와 같이 여러 개의 픽셀 값을 이용하여 하나의 픽셀 값을 구하는 과정을 의미할 수 있다. 또한 필터링은 디코딩 과정의 전부 또는 일부를 의미할 수 있다. 보다 구체적으로 프로그래머블 필터(220)에서 수행하는 필터링은 6탭 필터 또는 8탭 필터와 같은 N 탭 필터 작업일 수 있다.
이상에서 전술한 본 발명의 실시 예에 따른 다이렉트 메모리 액세스(210)(DMA)를 이용하여 영상 신호를 처리하는 방법 및 장치는 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있고 컴퓨터에 의해 실행됨으로써 전술한 기능들이 실행될 수 있다.
또한, 이러한 코드는 전술한 기능들을 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조 되어야 하는지에 대한 메모리 참조 관련 코드를 더 포함할 수 있다.
이상에서 전술한 바와 같은 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는, 일례로, ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 미디어 저장장치 등이 있다.
본 발명의 각 실시 예에 따른 다이렉트 메모리 액세스(210)(DMA)를 이용하여 영상 신호를 처리하는 방법 및 장치를 실행시키기 위한 프로그램인 애플리케이션을 기록한 기록매체를 읽을 수 있는 컴퓨터는, 일반적인 데스크 탑이나 노트북 등의 일반 PC 뿐만 아니라, 스마트 폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말기 등의 모바일 단말을 포함할 수 있으며, 이뿐만 아니라, 컴퓨팅(Computing) 가능한 모든 기기로 해석되어야 할 것이다.
이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
Claims (20)
- 디지털 신호 처리장치(DSP)를 포함한 시스템에서 다이렉트 메모리 액세스(DMA)를 이용하여 메모리에 저장된 영상 신호를 처리하는 방법에 있어서,
하드웨어 블록의 내부에 위치하는 다이렉트 메모리 액세스(DMA)가 상기 하드웨어 블록의 외부에 위치하는 메모리로부터 데이터를 수신하는 단계;
상기 수신한 데이터를 상기 하드웨어 블록 내부에 위치하는 프로그래머블 필터로 상기 하드웨어 블록 내부의 전송 경로를 통해 전송하는 단계; 및
필터 정보를 저장하고 있는 상기 프로그래머블 필터가 상기 필터 정보를 이용하여 상기 수신한 데이터를 필터링하는 단계를 포함하는 것을 특징으로 하는 방법. - 제 1 항에 있어서,
상기 필터 정보는 최대 필터 차수 및 필터 계수 세트를 포함하는 것을 특징으로 하는 방법. - 제 2 항에 있어서,
상기 필터 계수 세트의 값을 설정하는 단계; 및
상기 설정된 필터 계수 세트의 값을 상기 프로그래머블 필터에 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제 1 항에 있어서,
상기 필터링된 데이터를 디지털 신호 처리장치(DSP)로 송신하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제 2 항에 있어서,
상기 필터 계수 세트는 소정의 코덱에 의해 인코딩된 데이터의 디코딩을 위한 값들로 정해진 것을 특징으로 하는 방법. - 제 5 항에 있어서,
상기 코덱은 H.264 및 HEVC를 포함하는 것을 특징으로 하는 방법. - 제 2 항에 있어서,
상기 필터 계수 세트는 상기 프로그래머블 필터 내의 레지스터에 저장되어 있는 것을 특징으로 하는 방법. - 제 2 항에 있어서,
상기 최대 필터 차수를 설정하는 단계; 및
상기 설정된 최대 필터 차수를 상기 프로그래머블 필터에 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제 2 항에 있어서,
상기 최대 필터 차수는 미리 정해져 있고,
상기 필터 계수 세트의 값에 따라서 실제 필터 차수가 결정되는 것을 특징으로 하는 방법. - 제 1 항에 있어서,
상기 필터링하는 단계는
움직임 보정(Motion Compensation)의 일부 또는 전부를 수행하는 단계를 포함하는 것을 특징으로 하는 방법. - 제 1 항에 있어서,
상기 수신한 데이터가 상기 프로그래머블 필터에서 처리가 필요한지 판단하는 단계를 더 포함하고,
상기 전송하는 단계는
상기 판단결과, 상기 프로그래머블 필터에서 처리가 필요하다고 판단된 경우 상기 수신한 데이터를 상기 프로그래머블 필터로 전송하는 것을 특징으로 하는 방법. - 디지털 신호 처리장치(DSP)를 포함한 시스템에서 다이렉트 메모리 액세스(DMA)를 이용하여 메모리에 저장된 영상 신호를 처리하는 장치에 있어서,
하드웨어 블록 내부에 위치하고, 상기 하드웨어 블록의 외부에 위치하는 메모리로부터 데이터를 수신하는 다이렉트 메모리 액세스(DMA);
상기 하드웨어 블록 내부의 전송 경로를 통해 상기 수신한 데이터를 전송 받는 상기 하드웨어 블록 내부에 위치하는 프로그래머블 필터;
상기 프로그래머블 필터 내에 위치하고, 필터 정보를 저장하는 필터 정보 저장부; 및
상기 프로그래머블 필터 내에 위치하고, 상기 필터 정보를 이용하여 상기 수신한 데이터를 필터링하는 필터링부를 포함하는 것을 특징으로 하는 장치. - 제 12항에 있어서,
상기 필터 정보는 최대 필터 차수 및 필터 계수 세트를 포함하는 것을 특징으로 하는 장치. - 제 13 항에 있어서,
상기 필터 계수 세트의 값을 설정하는 필터 계수 세트 설정부; 및
상기 설정된 필터 계수 세트의 값을 저장하는 필터 계수 세트 저장부를 더 포함하는 것을 특징으로 하는 장치. - 제 12 항에 있어서,
상기 필터링된 데이터를 디지털 신호 처리장치(DSP)로 송신하는 데이터 송신부를 더 포함하는 것을 특징으로 하는 장치. - 제 13 항에 있어서,
상기 필터 계수 세트는 소정의 코덱에 의해 인코딩된 데이터의 디코딩을 위한 값들로 정해진 것을 특징으로 하는 장치. - 제 13 항에 있어서,
상기 필터 계수 세트는 상기 프로그래머블 필터 내에 위치하는 레지스터에 저장되어 있는 것을 특징으로 하는 장치. - 제 13 항에 있어서,
상기 최대 필터 차수를 설정하는 최대 필터 차수 설정부; 및
상기 설정된 최대 필터 차수를 저장하는 최대필터 차수 저장부를 더 포함하는 것을 특징으로 하는 장치. - 제 12 항에 있어서,
상기 수신된 데이터가 상기 프로그래머블 필터에서 처리가 필요한지 판단하는 필터링 여부 판단부를 더 포함하고,
상기 다이렉트 메모리 액세스는 상기 판단결과, 상기 프로그래머블 필터에서 처리가 필요하다고 판단된 경우 상기 수신한 데이터를 상기 프로그래머블 필터로 전송하는 것을 특징으로 하는 장치. - 제 1 항 내지 제 11 항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20130116898A KR20150037371A (ko) | 2013-09-30 | 2013-09-30 | 다이렉트 메모리 액세스(dma)를 이용하여 영상 신호를 처리하는 방법 및 장치. |
US14/502,315 US20150092858A1 (en) | 2013-09-30 | 2014-09-30 | Method and apparatus for processing image signals using direct memory access (dma) |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20130116898A KR20150037371A (ko) | 2013-09-30 | 2013-09-30 | 다이렉트 메모리 액세스(dma)를 이용하여 영상 신호를 처리하는 방법 및 장치. |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20150037371A true KR20150037371A (ko) | 2015-04-08 |
Family
ID=52740176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20130116898A KR20150037371A (ko) | 2013-09-30 | 2013-09-30 | 다이렉트 메모리 액세스(dma)를 이용하여 영상 신호를 처리하는 방법 및 장치. |
Country Status (2)
Country | Link |
---|---|
US (1) | US20150092858A1 (ko) |
KR (1) | KR20150037371A (ko) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0901735A1 (en) * | 1997-03-12 | 1999-03-17 | Matsushita Electric Industrial Co., Ltd | Hdtv downconversion system |
US20040267520A1 (en) * | 2003-06-27 | 2004-12-30 | Roderick Holley | Audio playback/recording integrated circuit with filter co-processor |
US8982960B2 (en) * | 2011-02-23 | 2015-03-17 | Qualcomm Incorporated | Multi-metric filtering |
-
2013
- 2013-09-30 KR KR20130116898A patent/KR20150037371A/ko not_active Application Discontinuation
-
2014
- 2014-09-30 US US14/502,315 patent/US20150092858A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20150092858A1 (en) | 2015-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101634500B1 (ko) | 미디어 작업부하 스케줄러 | |
JP2020526994A5 (ko) | ||
US10397612B2 (en) | Three-dimensional video encoding method, three-dimensional video decoding method, and related apparatus | |
JP7568307B2 (ja) | フレームタイプに基づく適応分解能管理の暗示的信号伝達 | |
US10601891B2 (en) | Cloud streaming service system and cloud streaming service method for utilizing an optimal GPU for video decoding based on resource conditions, and apparatus for the same | |
US20160112705A1 (en) | Compressing and representing multi-view video | |
EP2693754A1 (en) | Transcoding video data | |
TW202002632A (zh) | 應用於視訊內容編碼之多重參考鄰邊之畫面內預測之自適應性濾波方法、使用上述方法的視訊編碼裝置及視訊解碼裝置 | |
US11943461B2 (en) | Adaptive resolution management signaling | |
US12075046B2 (en) | Shape adaptive discrete cosine transform for geometric partitioning with an adaptive number of regions | |
JP2013005452A (ja) | マルチフォーマットビデオ処理のためのコンフィギュレーションバッファ割当 | |
JP2022500890A (ja) | ビデオ画像成分の予測方法、装置及びコンピュータ記憶媒体 | |
KR102478826B1 (ko) | 인트라 예측된 블록 내에서 경계를 디블로킹 필터링하기 위한 방법 및 디바이스 | |
JP2018509791A (ja) | 無線リンク状態に基づくビデオ復号化待ち時間調整、並びにビデオ復号化誤りの隠蔽のための、古いパケットのリプレイ | |
JP2019521555A (ja) | イントラ予測されたピクチャのブロックを復号する方法及び装置並びに対応するコード化方法及びコード化装置 | |
US20230421998A1 (en) | Video decoder with inline downscaler | |
US20210044819A1 (en) | Adaptive resolution management using sub-frames | |
US11968380B2 (en) | Encoding and decoding video | |
KR102576630B1 (ko) | 디코더의 동작 방법, 및 상기 디코더를 포함하는 어플리케이션 프로세서의 동작 방법 | |
JP2015508620A (ja) | マルチスレッドテクスチャ復号 | |
JP2024081752A (ja) | 情報処理方法及び装置、設備、記憶媒体 | |
TW202008783A (zh) | 多通道視訊處理系統的方法與裝置 | |
US20160142723A1 (en) | Frame division into subframes | |
KR20150037371A (ko) | 다이렉트 메모리 액세스(dma)를 이용하여 영상 신호를 처리하는 방법 및 장치. | |
US10547839B2 (en) | Block level rate distortion optimized quantization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |