KR100640876B1 - 이동 방송 수신기의 비디오 디코딩 시스템 - Google Patents
이동 방송 수신기의 비디오 디코딩 시스템 Download PDFInfo
- Publication number
- KR100640876B1 KR100640876B1 KR1020040093975A KR20040093975A KR100640876B1 KR 100640876 B1 KR100640876 B1 KR 100640876B1 KR 1020040093975 A KR1020040093975 A KR 1020040093975A KR 20040093975 A KR20040093975 A KR 20040093975A KR 100640876 B1 KR100640876 B1 KR 100640876B1
- Authority
- KR
- South Korea
- Prior art keywords
- buffer memory
- coprocessors
- input
- data
- output
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- 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
-
- 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/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/436—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 using parallelised computational 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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
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)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
본 발명은 이동 방송 수신기 내 H.264 비디오 디코더를 S/W(Processor)와 H/W(Coprocessor)로 분할하여 구성하는 비디오 디코딩 시스템에 관한 것이다. 보다 상세하게는 비디오 디코딩을 수행하기 위한 적어도 하나 이상의 버퍼 메모리, 상기 버퍼 메모리와의 데이터 입/출력을 통해 실제 비디오 디코딩을 수행하는 데이터 처리 부분을 적어도 하나 이상의 하드웨어 블록으로 분리하여 구성한 코프로세서들, 및 외부 메모리를 직접 억세스하기 위한 DMA는 하드웨어로 구성하고, 상기 하드웨어로 구성된 각 버퍼 메모리, 각 코프로세서, 및 DMA의 동작 제어는 프로세서에서 소프트웨어에 의해 수행되도록 함으로써, 비디오 디코딩할 때 높은 적응성, 낮은 파워, 높은 수행 능력, 용이한 확장을 가짐과 동시에 디자인과 디버깅이 쉬운 비디오 디코딩 시스템을 제공할 수 있다.
H.264, 비디오 디코더
Description
도 1은 본 발명에 따른 이동 방송 수신기의 비디오 디코딩 시스템의 일 실시예를 나타낸 구성 블록도
도 2는 도 1의 프로세서의 S/W로 버스를 통해 인트라 예측 블록의 동작을 제어하는 과정의 일 실시예를 보인 흐름도
도 3은 도 2에서 참조 데이터를 로드하기 위한 버퍼 메모리와 DMA 그리고, 외부 메모리와의 연결 상태의 일 실시예를 보인 도면
도 4는 도 2에서 실제 인트라 예측을 수행하기 위한 버퍼 메모리들과 인트라 예측 블록과의 연결 상태의 일 실시예를 보인 도면
도 5는 도 2에서 예측된 데이터를 외부 메모리에 저장하기 위한 버퍼 메모리와 DMA 그리고, 외부 메모리와의 연결 상태의 일 실시예를 보인 도면
도면의 주요부분에 대한 부호의 설명
BM0~BM2 : 버퍼 메모리 COP0~COP3 : 코프로세서
COPDMA : 직접 메모리 억세스 유닛
본 발명은 이동 방송 수신기에 관한 것으로, 보다 상세하게는 디지털 멀티미디어 방송(Digital Multimedia Broadcasting ; DMB) 수신기의 비디오 디코딩 시스템에 관한 것이다.
최근 멀티미디어 관련 칩(Chip)들은 고집적화 기술의 발전에 의해서 디지털 신호 프로세서(DSP)등과 같은 프로세서(Processor)를 이용하여 소프트웨어(Software ; S/W)로 처리하는 추세로 가고 있다. 이때 S/W로 처리하는 경우 하드웨어(Hardware ; H/W)로 설계하는 경우보다 타임-투-마켓(Time-to-Market)이 빠를 뿐만 아니라, 디버깅(Debugging)이 용의하고 개정(Revision)에 들어가는 시간과 비용이 적다.
요즘 새롭게 부상하고 있는 이동 방송 수신기 즉, DMB 수신기의 비디오 디코더의 규격은 H.264이다.
상기 H.264는 차세대 MPEG-4 표준기술로서 통상 AVC(advanced Video Coding)이라고 하며 MPEG-4 Part 10 또는 MPEG-4 AVC라고 한다. 이러한 H.264는 DMB와 같은 이동 방송 수신기나 차세대 DVD에 사용될 압축방식이다.
이때 DMB 수신기는 이동 중에 방송을 수신하여 디스플레이하는 시스템이므로, 낮은 파워(Low Power)가 중시된다. 이 경우 H.264 비디오 디코더를 S/W로만 구현하면 높은 주파수 클럭(High Frequency Clock)을 요구하게 되어 소모되는 파워가 높다. 그렇다고 모든 알고리즘을 H/W로 구현하게 되면 적응성(Flexibility)이 떨어질 뿐만 아니라 디자인 시간(Design Time)이 증가하고 디버깅(Debugging)이 어려우 며 개정(Revision) 시 들어가는 시간과 비용이 큰 문제점이 있다.
다음의 표 1은 H.264 알고리즘을 모두 H/W나 S/W로 구현하게 될 경우 장단점을 정리한 것이다.
장점 | 단점 | |
H.264 디코딩의 하드웨어 구현 | . Low Clock Frequency . Low Power | . Hard to Implement . Design Time이 길다. . Debugging하기 어렵다. . Revision시 시간과 비용이 많이 든다. . Low Flexibility . Difficult Extend Design |
H.264 디코딩의 소프트웨어 구현 | . Easy to Implement . Fast Time-to-Market . Easy to Debugging . Revision 용이 . High Flexibility . Easy to Extend Design | . High Clock Frequency . High Power Consumption |
본 발명의 목적은 이동 방송 수신기 내 H.264 비디오 디코더를 S/W(Processor)와 H/W(Coprocessor)로 분할함으로써, 비디오 디코딩할 때 높은 적응성(High Flexibility), 낮은 파워(Low Power), 높은 수행 능력(High Performance), 쉬운 확장(Easy Extensibility)을 가짐과 동시에 디자인과 디버깅이 쉬운 비디오 디코딩 시스템을 제공하는 것이다.
상기 목적을 달성하기 위하여, 본 발명은 비디오 디코딩을 수행하기 위한 적어도 하나 이상의 버퍼 메모리, 상기 버퍼 메모리와의 데이터 입/출력을 통해 실제 비디오 디코딩을 수행하는 데이터 처리 부분을 적어도 하나 이상의 하드웨어 블록으로 분리하여 구성한 코프로세서들, 및 외부 메모리를 직접 억세스하기 위한 DMA 는 하드웨어로 구성하고, 상기 하드웨어로 구성된 각 버퍼 메모리, 각 코프로세서, 및 DMA의 동작 제어는 프로세서에서 소프트웨어에 의해 수행되는 이동 방송 수신기의 비디오 디코딩 시스템을 제공하는 것을 특징으로 한다.
바람직하게는 상기 버퍼 메모리와 코프로세서를 연결하기 위한 입/출력 스위치가 각 버퍼 메모리의 입/출력단에 연결되며, 상기 입/출력 스위치의 스위칭 제어는 프로세서에서 소프트웨어에 의해 이루어지는 것을 특징으로 한다.
바람직하게는 상기 프로세서는 소프트웨어로 이루어지며, 버스를 통해 각 버퍼 메모리, 코프로세서, 입/출력 스위치, 그리고 DMA의 동작을 제어하는 것을 특징으로 한다.
바람직하게는 상기 코프로세서들은 상기 적어도 하나 이상의 버퍼 메모리들을 공유하는 것을 특징으로 한다.
바람직하게는 상기 코프로세서들은 공통된 버스 구조로 연결하고, 코프로세서들의 입/출력 데이터 인터페이스들은 버퍼 메모리 읽기/쓰기 인터페이스로 구성하여 버퍼 메모리들과 코프로세서들을 분리시키는 것을 특징으로 한다.
바람직하게는 상기 버퍼 메모리들 중 어느 코프로세서에도 연결되지 않는 버퍼 메모리에 저장된 데이터를 보호하기 위해서 읽기/쓰기 제어 신호들을 디제이블시키는 제로 신호 라인이 상기 공통된 버스 구조에 더 구비되는 것을 특징으로 한다.
따라서, 본 발명에 의하면 소모되는 클럭 사이클을 줄여 낮은 파워 구현이 가능하다.
본 발명의 다른 목적, 특징 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
이하 상기의 목적을 구체적으로 실현할 수 있는 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 설명한다. 이때 도면에 도시되고 또 이것에 의해서 설명되는 본 발명의 구성과 작용은 적어도 하나의 실시예로서 설명되는 것이며, 이것에 의해서 상기한 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.
그리고 종래와 동일한 구성 요소는 설명의 편의상 동일 명칭 및 동일 부호를 부여하며 이에 대한 상세한 설명은 생략한다.
본 발명은 H.264 비디오 디코딩 알고리즘에서 많은 연산량을 필요로 하는 단순 데이터 처리(Data-Processing) 부분인 차영상 디코딩(Residual Decoding), 디블로킹 필터(Deblocking Filter), 인트라 예측(Intra Prediction), 인터 예측(Inter Prediction)을 H/W로 파티션(Partition)하여 코프로세서(Coprocessor)로 만든다. 그리고 코프로세서의 제어는 모두 S/W로 파티션한다.
도 1은 이러한 본 발명에 따른 이동 방송 수신기의 H.264 규격의 비디오 디코딩 장치의 일 실시예를 보인 구성 블록도로서, 다수개의 버퍼 메모리(BM0~BM2), 다수개의 코프로세서(COP0~COP3), 다수개의 입/출력 스위치, DMA(Direct Memory Access)(COPDMA), 및 프로세서로 구성된다. 여기서 상기 버퍼 메모리, 코프로세서, 입/출력 스위치는 H/W로 구성되며, 상기 버퍼 메모리와 코프로세서를 연결하기 위한 입/출력 스위치의 스위칭 제어는 프로세서에서 S/W에 의해 이루어진다. 즉 상기 프로세서는 S/W이며, 프로세서 인터페이스를 통해 제어 명령이 버스에 전달된다. 상기 프로세서 인터페이스는 버퍼 메모리와 버스 사이의 브리지(Bridge)로서 작용하여, 프로세서가 버퍼 메모리의 값을 읽거나 쓸 수 있게 한다.
이를 위해 상기 코프로세서 구성 요소들을 공통된 버스 구조로 연결하고, 코프로세서들의 입/출력 데이터 인터페이스(Data Interface)들은 SRAM 읽기/쓰기 인터페이스(Read/Write Interface)로 구성함으로써, 서로 분리(Isolation)시킨다.
그리고 코프로세서들이 다수개의 버퍼 메모리(BM0~BM1)를 공유하도록 한다. 상기 버퍼 메모리(BM0~BM1)는 코프로세서들에서 처리할 데이터 또는 처리된 데이터를 저장하기 위한 버퍼 메모리로서, 2포트 SRAM으로 구현되는 것을 실시예로 한다.
이때, 공유된 버퍼 메모리를 필요한 코프로세서에 다이나믹(Dynamic)하게 스위칭(Switching) 하기 위해서 각각의 버퍼 메모리(BM0~BM1)의 읽기/쓰기 포트(Read/Write Port)에 각각 입/출력 스위치가 구비된다. 즉 입력 스위치들은 프로세서의 S/W 제어에 의해 스위칭되어 코프로세서들 중 해당 버퍼 메모리에 데이터 쓰기를 할 코프로세서를 선택하고, 쓰기 스위치들은 코프로세서들 중 해당 버퍼 메모리로부터 데이터를 읽어 올 코프로세서를 선택한다. 이때 어느 코프로세서에도 연결되지 않는 버퍼 메모리는 저장된 데이터를 보호하기 위해서 읽기/쓰기 제어 신호들을 디제이블(Disable)시켜줘야 한다. 이를 위해 존재하는 신호 라인이 제로 신호 라인(Zero Signal Line)이다.
다시 말해 DMA를 포함한 코프로세서들의 동작 제어 및 여러 개의 내부 버퍼 메모리 중 필요한 버퍼 메모리로의 스위칭 제어는 프로세서에서 S/W로 버스를 통해 다이나믹하게 제어하며, 이 외에는 그 어떤 신호도 코프로세서들 사이에 존재하지 않는다. 즉 버스는 프로세서가 H/W 구성 요소들 즉, 코프로세서들을 제어하기 위한 버스이다.
본 발명에서 제1 코프로세서(COP0)는 블로킹 필터를 수행하고, 제2 코프로세서(COP1)는 인트라 예측을 수행하고, 제3 코프로세서(COP2)는 인터 예측을 수행하고, 제4 코프로세서(COP3)는 차영상 디코딩을 수행하도록 H/W가 구성된 것을 실시예로 한다.
상기 코프로세서들의 수 및 각 코프로세서 내 H/W 구성은 설계자에 의해 달라질 수 있으므로, 본 발명은 상기 예로 제시한 것에 제한되지 않을 것이다.
상기 코프로세서들 중 COPDMA는 버퍼 메모리의 입/출력 데이터를 외부 메모리로부터 로드/저장(load/store)할 때 사용되는 DMA 기능을 수행하도록 H/W가 구성된다.
도 2는 프로세서에서 S/W로 제2 코프로세서(COP1)의 인트라 예측 동작을 제어하는 과정을 나타낸 흐름도이다.
먼저, 인트라 예측을 위한 과정은 크게 세 과정으로 나뉠 수 있다. 즉, 인트라 예측에 필요한 참조 데이터(Reference Data)를 외부 메모리로부터 로드하여 내부 버퍼 메모리에 저장하는 과정(단계 201 내지 206), 버퍼 메모리로부터 차영상과 참조 영상을 읽어 와 인트라 예측을 수행한 후 버퍼 메모리에 저장하는 과정(단계 207 내지 212), 그리고 인트라 예측된 데이터를 버퍼 메모리로부터 로드하여 외부 메모리로 저장하는 과정(단계 213 내지 218)으로 이루어진다.
즉 단계 201에서는 입/출력 스위치의 스위칭을 제어하여 상기 외부 메모리로부터 읽어 온 인트라 예측에 이용할 참조 데이터를 저장하는 버퍼 메모리와 COPDMA를 연결한다. 이 과정 이후에 제2 코프로세서(COP1)의 연결상태는 도 3과 같다. 즉 외부 메모리 인터페이스에 COPDMA가 연결되고, 상기 COPDMA에 참조 데이터를 저장할 버퍼 메모리(BMx)가 연결된다.
단계 202에서는 참조 프레임의 원하는 참조 데이터를 외부 메모리로부터 로드하기 위해 프로세서가 버스를 통하여 COPDMA를 설정한다. 이어 프로세서는 버스를 통해 COPDMA에 로드 시작(load start) 명령을 내린다(단계 203).
그러면 상기 COPDMA는 외부 메모리로부터 참조 데이터를 읽어 와 단계 201에서 연결된 해당 버퍼 메모리(BMx)에 저장한다. 이때 본 발명은 모든 참조 데이터가 외부 메모리로부터 로드되는데 걸리는 시간 동안 소요되는 클럭 사이클(Clock Cycle)을 버리는 것이 아니라, 다른 코프로세서들을 동작시키거나 다른 S/W 작업을 하도록 한다(단계 204). 그리고 이 과정의 제어는 프로세서에서 S/W로 처리된다.
이때 본 발명은 상기된 단계 204 과정에 의해 H/W끼리, 또는 H/W와 S/W 사이에 유연하게(Flexible)하게 파이프라인(Pipeline) 시킬 수 있게 되어, H.264 비디오 디코더의 성능을 더욱 향상시킬 수 있게 된다.
그리고 참조 프레임의 로드가 완료되었는지를 판별하기 위해 End_Flag를 읽어 와(단계 205), 그 값이 '1'인지를 판별한다(단계 206). 즉 참조 데이터의 로드가 완료되면 End_Flag는 '1'로 설정되고, 그 이외의 경우는 '0'으로 리셋된다. 만일 End_Flag 값이 '1'이 아니면 즉, 참조 프레임의 로드가 끝나지 않았다고 판별되 면 상기 단계 205로 되돌아가 참조 프레임의 로드 과정을 계속 수행하고, '1'이면 참조 프레임의 로드 과정이 끝났다고 판별하고 실제 인트라 예측을 수행하기 위해 단계 207로 진행한다.
이때 인트라 예측 수행시 이미 계산되어 있는 차영상 출력(Residual Output)과의 구성(Composition)도 수행한다. 즉 상기 차 영상은 압축 부호화된 데이터로서, 차영상과 참조 영상을 이용하여 인트라 예측을 수행한다. 이를 위해 버퍼 메모리에는 차영상 및 참조 영상 데이터가 저장되어 있어야 한다.
예를 들어 상기 차영상이 인트라 매크로 블록이면 DCT, 양자화 및 가변 길이 부호화(VLC)를 통해 압축 부호화된 경우로서, 인트라 예측을 통해 원래 데이터로 복원해야 한다. 또한 인터 매크로 블록이면 현재 매크로 블록과 이전 프레임의 참조 매크로 블록과의 차분치가 DCT, 양자화 및 VLC를 통해 압축 부호화된 경우로서, 인터 예측을 통해 원래 데이터로 복원해야 한다.
즉 단계 207에서는 프로세서가 입/출력 스위치의 스위칭을 제어하여 인트라 예측에 사용될 참조 데이터가 저장된 버퍼 메모리(BMx)와 차영상 출력이 저장되어 있는 버퍼 메모리(BMy)를 제2 코프로세서(COP1)의 입력단으로 연결하고, 예측 결과 값을 저장할 버퍼 메모리(BMz)를 상기 제2 코프로세서(COP1)의 출력단에 연결시킨다. 이 과정을 거치면 인트라 예측 블록 즉, 제2 코프로세서(COP1)에 마치 자신의 전용 버퍼 메모리(즉, SRAM)가 입력단과 출력단에 연결되어 있는 것과 같이 된다. 도 4는 그 예를 보여준다.
상기 단계 207에서 프로세서의 제어에 의해 해당 입/출력 스위치를 통해 버 퍼 메모리들과 제2 코프로세서간의 입/출력단 연결이 이루어지면 단계 208에서는 프로세서가 버스를 통해 인트라 예측의 모드 및 인트라 예측에 필요한 제어 값을 제2 코프로세서(COP1)의 내부 레지스터에 설정하고 예측 시작(Prediction Start) 명령을 내린다.
그러면 제2 코프로세서(COP1)는 차영상과 참조 영상을 이용하여 인트라 예측을 수행하는데, 이는 제2 코프로세서(COP1) 내부의 H/W에 의해 수행된다(단계 209). 그리고 인트라 예측된 데이터는 다시 상기 단계 207에서 제2 코프로세서(COP1)의 출력단에 연결된 버퍼 메모리(BMz)에 저장된다.
도 4를 예로 들면, BMy라 명명된 버퍼 메모리에 차 영상 출력이 저장되어 있고, BMz라 명명된 버퍼 메모리에 참조 데이터가 저장되어 있으며, 상기 버퍼 메모리(BMy,BMx)에서 출력되는 차영상과 참조 데이터는 인트라 예측 블록인 제2 코프로세서(COP2)로 입력된다. 상기 제2 코프로세서(COP2)에서 인트라 예측된 데이터는 다시 BMz라 명명된 버퍼 메모리에 저장된다.
상기 단계 204와 마찬가지로 단계 210에서도 상기 인트라 예측이 수행되어 버퍼 메모리에 저장되는 동안 소요되는 클럭 사이클을 버리는 것이 아니라, 다른 코프로세서들을 동작시키거나 다른 S/W 작업을 하도록 한다. 그리고 이 과정의 제어는 프로세서에서 S/W로 처리된다. 따라서 H/W끼리, 또는 H/W와 S/W 사이에 유연하게(Flexible)하게 파이프라인(Pipeline) 시킬 수 있게 되어, H.264 비디오 디코더의 성능을 더욱 향상시킬 수 있게 된다.
그리고 인트라 예측이 완료되었는지를 판별하기 위해 End_Flag를 읽어 와(단 계 211), 그 값이 '1'인지를 판별한다(단계 212). 마찬가지로 인트라 예측이 완료되면 End_Flag는 '1'로 설정되고, 그 이외의 경우는 '0'으로 리셋된다. 만일 End_Flag 값이 '1'이 아니면 즉, 인트라 예측이 끝나지 않았다고 판별되면 상기 단계 211로 되돌아가 인트라 예측 과정을 계속 수행하고, '1'이면 인트라 예측 과정이 끝났다고 판별하고 버퍼 메모리(BMz)에 저장된 인트라 예측된 데이터를 로드하여 외부 메모리에 저장하기 위해 단계 213으로 진행한다.
즉 단계 213에서는 인트라 예측된 데이터가 저장된 버퍼 메모리(BMz)를 COPDMA의 입력단에 연결한다. 이 과정 이후에 제2 코프로세서(COP1)의 연결상태는 도 5와 같다. 즉 해당 입/출력 스위치의 스위칭에 의해 예측된 데이터가 저장된 버퍼 메모리(BMz)의 출력단은 COPDMA에 연결되고, 상기 COPDMA의 출력단은 외부 메모리 인터페이스에 연결된다.
그리고 나서 버퍼 메모리(BMz)로부터 예측된 데이터를 로드하여 외부 메모리의 원하는 위치에 저장하기 위하여 프로세서가 BUS를 통하여 COPDMA를 설정한 후(단계 214), 저장 시작(Store Start) 명령을 내린다(단계 215). 그러면 COPDMA는 버퍼 메모리로부터 인트라 예측된 데이터를 읽어 와 외부 메모리의 해당 위치에 저장한다.
이때에도 마찬가지로 인트라 예측된 데이터가 외부 메모리에 저장되는 동안 소요되는 클럭 사이클을 버리는 것이 아니라, 다른 코프로세서들을 동작시키거나 다른 S/W 작업을 하도록 한다(단계 216). 그리고 이 과정의 제어는 프로세서에서 S/W로 처리된다. 따라서 H/W끼리, 또는 H/W와 S/W 사이에 유연하게(Flexible)하게 파이프라인(Pipeline) 시킬 수 있게 된다.
그리고 인트라 예측된 데이터가 외부 메모리에 모두 저장되었는지를 판별하기 위해 End_Flag를 읽어 와(단계 217), 그 값이 '1'인지를 판별한다(단계 218). 마찬가지로 외부 메모리에 인트라 예측된 데이터의 저장이 완료되면 End_Flag는 '1'로 설정되고, 그 이외의 경우는 '0'으로 리셋된다. 만일 End_Flag 값이 '1'이 아니면 즉, 외부 메모리에 인트라 예측된 데이터의 저장이 끝나지 않았다고 판별되면 상기 단계 217로 되돌아가 인트라 예측된 데이터의 저장 과정을 계속 수행하고, '1'이면 인트라 예측된 데이터의 저장 과정이 모두 끝났다고 판별하고 인트라 예측 과정을 모두 종료한다.
지금까지는 인트라 예측 과정을 설명한 것이며, 그 외의 다른 코프로세서들예를 들면, 디블로킹 필터, 인터 예측, 차영상 디코딩을 위한 코프로세서들도 상기된 도 2와 같은 과정으로 프로세서의 S/W 제어에 의해 해당 동작을 수행한다.
한편, 본 발명에서 사용되는 용어(terminology)들은 본 발명에서의 기능을 고려하여 정의 내려진 용어들로써 이는 당분야에 종사하는 기술자의 의도 또는 관례 등에 따라 달라질 수 있으므로 그 정의는 본 발명의 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명을 상술한 실시예에 한정되지 않으며, 첨부된 청구범위에서 알 수 있는 바와 같이 본 발명이 속한 분야의 통상의 지식을 가지 자에 의해 변형이 가능하고 이러한 변형은 본 발명의 범위에 속한다.
상기에서 설명한 본 발명에 따른 이동 방송 수신기의 비디오 디코딩 시스템의 효과를 설명하면 다음과 같다.
첫째, 연산량이 많은 부분을 H/W 코프로세서로 분리하고, 상기 코프로세서의 동작 제어는 S/W로 수행함으로써, 소모되는 클럭 사이클을 줄여 낮은 파워 구현이 가능한 효과가 있다.
둘째, 파티션된 H/W끼리, 또는 H/W와 S/W 사이에 유연하게 파이프 라인시킴으로써, 클럭 사이클을 더욱 줄일 수 있으므로 비디오 디코더의 성능을 더욱 향상시키는 효과가 있다.
셋째, 각 코프로세서들을 버스 구조와 공통된 SRAM 인터페이스로 연결함으로써, 코프로세서들과 버퍼 메모리를 서로 분리시켜 각각을 디자인하기 쉬울 뿐만 아니라 디자인 시간을 줄이는 효과가 있다.
넷째, 그 결과로서 각 코프로세서 구성 요소들의 디버깅이 쉽고, 새로운 코프로세서들을 추가 또는 삭제하는 것이 용이한 효과가 있다.
다섯째, 코프로세서들의 세부 동작의 제어를 S/W로 수행하고, 또한 데이터 처리 이외의 알고리즘을 S/W로 처리함으로써 적응성이 높고, 이로 인해 개정(Revision) 또한 용이한 효과가 있다.
여섯째, 코프로세서들의 입/출력 SRAM(즉, 버퍼 메모리)을 공유함으로써, 칩 면적을 줄이는 효과가 있다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.
따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정해져야 한다.
Claims (10)
- 압축 부호화된 비디오 신호를 디코딩하기 위한 이동 방송 수신기의 비디오 디코딩 시스템에 있어서,비디오 디코딩을 수행하기 위한 적어도 하나 이상의 버퍼 메모리, 상기 버퍼 메모리와의 데이터 입/출력을 통해 실제 비디오 디코딩을 수행하는 데이터 처리 부분을 적어도 하나 이상의 하드웨어 블록으로 분리하여 구성한 코프로세서들, 및 외부 메모리를 직접 억세스하기 위한 DMA는 하드웨어로 구성하고,상기 버퍼 메모리와 코프로세서들을 연결하기 위한 입/출력 스위치가 각 버퍼 메모리의 입/출력단에 연결되며,상기 하드웨어로 구성된 각 버퍼 메모리, 각 코프로세서, DMA의 동작 제어 및 입/출력 스위치의 스위칭 제어는 프로세서에서 소프트웨어에 의해 수행되는 것을 특징으로 하는 이동 방송 수신기의 비디오 디코딩 시스템.
- 삭제
- 제 1 항에 있어서, 상기 버퍼 메모리의 입력단에 연결된 입력 스위치는 프로세서의 소프트웨어 제어에 의해 스위칭되어 코프로세서들 중 상기 버퍼 메모리에 데이터 쓰기를 할 코프로세서를 선택하는 것을 특징으로 하는 이동 방송 수신기의 비디오 디코딩 시스템.
- 제 1 항에 있어서,상기 버퍼 메모리의 출력단에 연결된 출력 스위치는 프로세서의 소프트웨어 제어에 의해 스위칭되어 코프로세서들 중 상기 버퍼 메모리로부터 데이터를 읽어 올 코프로세서를 선택하는 것을 특징으로 하는 이동 방송 수신기의 비디오 디코딩 시스템.
- 제 1 항에 있어서,상기 프로세서는 소프트웨어로 이루어지며, 버스를 통해 각 버퍼 메모리, 코프로세서, 입/출력 스위치, 그리고 DMA의 동작을 제어하는 것을 특징으로 하는 이동 방송 수신기의 비디오 디코딩 시스템.
- 제 4 항에 있어서,상기 코프로세서들은 공통된 버스 구조로 연결하고, 코프로세서들의 입/출력 데이터 인터페이스들은 버퍼 메모리 읽기/쓰기 인터페이스로 구성하여 버퍼 메모리들과 코프로세서들을 분리시키는 것을 특징으로 하는 이동 방송 수신기의 비디오 디코딩 시스템.
- 제 6 항에 있어서,상기 버퍼 메모리들 중 어느 코프로세서에도 연결되지 않는 버퍼 메모리에 저장된 데이터를 보호하기 위해서 읽기/쓰기 제어 신호들을 디제이블시키는 제로 신호 라인이 상기 공통된 버스 구조에 더 구비되는 것을 특징으로 하는 이동 방송 수신기의 비디오 디코딩 시스템.
- 제 1 항에 있어서, 상기 버퍼 메모리는 코프로세서들에서 처리할 데이터 또는 처리된 데이터를 저장하기 위해 2포트 SRAM으로 구성되는 것을 특징으로 하는 이동 방송 수신기의 비디오 디코딩 시스템.
- 제 1 항에 있어서,상기 코프로세서들은 적어도 블로킹 필터, 인트라 예측, 인터 예측, 및 차영상 디코딩을 수행하기 위하여 하드웨어로 분리된 것을 특징으로 하는 이동 방송 수신기의 비디오 디코딩 시스템.
- 압축 부호화된 비디오 신호를 디코딩하기 위한 이동 방송 수신기의 비디오 디코딩 시스템에 있어서,비디오 디코딩을 수행하기 위한 적어도 하나 이상의 버퍼 메모리;상기 버퍼 메모리와의 데이터 입/출력을 통해 블로킹 필터, 인트라 예측, 인터 예측, 및 차영상 디코딩을 수행하기 위하여 하드웨어로 분리된 다수개의 코프로세서;상기 버퍼 메모리와 코프로세서를 연결하기 위해 각 버퍼 메모리의 입/출력단에 연결되는 다수개의 입/출력 스위치들; 및외부 메모리를 직접 억세스하기 위한 DMA는 하드웨어로 구성하고,상기 다수개의 코프로세서와 DMA의 동작 제어, 다수개의 버퍼 메모리와 코프로세서로의 데이터 입/출력을 위한 상기 입/출력 스위치들의 스위칭 제어는 프로세서에서 소프트웨어에 의해 이루어지는 것을 특징으로 하는 이동 방송 수신기의 비디오 디코딩 시스템.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040093975A KR100640876B1 (ko) | 2004-11-17 | 2004-11-17 | 이동 방송 수신기의 비디오 디코딩 시스템 |
EP05292421A EP1659800A3 (en) | 2004-11-17 | 2005-11-15 | Decoder for a video broadcasting mobile receiver using parallel co-processors |
US11/274,289 US8031772B2 (en) | 2004-11-17 | 2005-11-16 | Parallel processing architecture for video decompression |
CNB2005101267186A CN100508620C (zh) | 2004-11-17 | 2005-11-17 | 移动广播接收机的视频解码*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040093975A KR100640876B1 (ko) | 2004-11-17 | 2004-11-17 | 이동 방송 수신기의 비디오 디코딩 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060053568A KR20060053568A (ko) | 2006-05-22 |
KR100640876B1 true KR100640876B1 (ko) | 2006-11-02 |
Family
ID=35788671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040093975A KR100640876B1 (ko) | 2004-11-17 | 2004-11-17 | 이동 방송 수신기의 비디오 디코딩 시스템 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8031772B2 (ko) |
EP (1) | EP1659800A3 (ko) |
KR (1) | KR100640876B1 (ko) |
CN (1) | CN100508620C (ko) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4384130B2 (ja) * | 2006-03-28 | 2009-12-16 | 株式会社東芝 | 動画像復号方法及び装置 |
EP2105021A4 (en) * | 2007-01-17 | 2011-03-02 | Lg Electronics Inc | METHOD AND APPARATUS FOR PROCESSING A VIDEO SIGNAL |
US20090010326A1 (en) * | 2007-07-05 | 2009-01-08 | Andreas Rossholm | Method and apparatus for parallel video decoding |
KR101355375B1 (ko) * | 2007-07-24 | 2014-01-22 | 삼성전자주식회사 | 멀티코어 플랫폼 기반의 멀티미디어 복호화 방법 및 장치 |
US8634470B2 (en) | 2007-07-24 | 2014-01-21 | Samsung Electronics Co., Ltd. | Multimedia decoding method and multimedia decoding apparatus based on multi-core processor |
US9131240B2 (en) | 2007-08-23 | 2015-09-08 | Samsung Electronics Co., Ltd. | Video decoding method and apparatus which uses double buffering |
KR101392349B1 (ko) * | 2007-08-23 | 2014-05-19 | 삼성전자주식회사 | 비디오 디코딩 방법 및 장치 |
KR101292668B1 (ko) * | 2009-10-08 | 2013-08-02 | 한국전자통신연구원 | 멀티프로세서기반의 영상 복호화 장치 및 방법 |
CN101895743B (zh) * | 2010-03-11 | 2013-11-13 | 宇龙计算机通信科技(深圳)有限公司 | 一种处理器间编解码数据的传输方法、***及可视电话 |
CN102404576A (zh) * | 2011-11-30 | 2012-04-04 | 国云科技股份有限公司 | 云终端解码器及其负载均衡算法和gpu的解码算法 |
CN103369287B (zh) * | 2012-04-06 | 2017-05-24 | 上海算芯微电子有限公司 | 视频数据转换方法与*** |
CN103257885A (zh) * | 2013-05-20 | 2013-08-21 | 深圳市京华科讯科技有限公司 | 媒体虚拟化处理方法 |
CN103281365B (zh) * | 2013-05-20 | 2016-12-28 | 深圳市京华科讯科技有限公司 | 分布式虚拟化架构 |
US10057590B2 (en) * | 2014-01-13 | 2018-08-21 | Mediatek Inc. | Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding |
CN105468996A (zh) * | 2014-09-05 | 2016-04-06 | 深圳市同盛绿色科技有限公司 | 计算机 |
CN105468968A (zh) * | 2014-09-05 | 2016-04-06 | 深圳市同盛绿色科技有限公司 | 计算机及其网络入侵检测方法 |
CN105468991A (zh) * | 2014-09-05 | 2016-04-06 | 深圳市同盛绿色科技有限公司 | 一种计算机 |
US20210150311A1 (en) * | 2019-11-19 | 2021-05-20 | Alibaba Group Holding Limited | Data layout conscious processing in memory architecture for executing neural network model |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100352371B1 (ko) * | 1999-06-04 | 2002-09-11 | 한국전자통신연구원 | 영상 확대 디스플레이를 위한 라인 버퍼 및 그 제어 방법 |
KR100418437B1 (ko) * | 2001-12-24 | 2004-02-14 | (주)씨앤에스 테크놀로지 | 멀티미디어 신호처리를 위한 영상복원 프로세서 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6028795A (en) * | 1985-09-24 | 2000-02-22 | Hitachi, Ltd. | One chip semiconductor integrated circuit device having two modes of data write operation and bits setting operation |
US4742493A (en) * | 1986-05-19 | 1988-05-03 | Advanced Micro Devices, Inc. | Multiple port memory array device including improved timing and associated method |
US4750202A (en) * | 1986-08-20 | 1988-06-07 | International Business Machines Corporation | Non-blocking concentrator |
US5226125A (en) * | 1989-11-17 | 1993-07-06 | Keith Balmer | Switch matrix having integrated crosspoint logic and method of operation |
US5487146A (en) * | 1994-03-08 | 1996-01-23 | Texas Instruments Incorporated | Plural memory access address generation employing guide table entries forming linked list |
US5583964A (en) | 1994-05-02 | 1996-12-10 | Motorola, Inc. | Computer utilizing neural network and method of using same |
JPH1165989A (ja) | 1997-08-22 | 1999-03-09 | Sony Computer Entertainment:Kk | 情報処理装置 |
KR20010000141A (ko) | 2000-03-15 | 2001-01-05 | 나항도 | 인터넷을 이용한 영업지원 시스템 |
BR0111074A (pt) | 2000-05-25 | 2003-06-24 | Smithkline Beecham Plc | N-hidroxiformamidas biciclil ou heterobiciclilme-tanossulfonilamino-substituìdos |
KR20020067918A (ko) | 2000-10-17 | 2002-08-24 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 멀티 표준 채널 디코더 |
US7140016B2 (en) * | 2000-11-29 | 2006-11-21 | Texas Instruments Incorporated | Media accelerator quality of service |
FR2828972A1 (fr) * | 2001-08-21 | 2003-02-28 | Koninkl Philips Electronics Nv | Dispositif de traitement et d'acheminement de donnees |
US7181070B2 (en) * | 2001-10-30 | 2007-02-20 | Altera Corporation | Methods and apparatus for multiple stage video decoding |
US8284844B2 (en) * | 2002-04-01 | 2012-10-09 | Broadcom Corporation | Video decoding system supporting multiple standards |
-
2004
- 2004-11-17 KR KR1020040093975A patent/KR100640876B1/ko not_active IP Right Cessation
-
2005
- 2005-11-15 EP EP05292421A patent/EP1659800A3/en not_active Withdrawn
- 2005-11-16 US US11/274,289 patent/US8031772B2/en not_active Expired - Fee Related
- 2005-11-17 CN CNB2005101267186A patent/CN100508620C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100352371B1 (ko) * | 1999-06-04 | 2002-09-11 | 한국전자통신연구원 | 영상 확대 디스플레이를 위한 라인 버퍼 및 그 제어 방법 |
KR100418437B1 (ko) * | 2001-12-24 | 2004-02-14 | (주)씨앤에스 테크놀로지 | 멀티미디어 신호처리를 위한 영상복원 프로세서 |
Also Published As
Publication number | Publication date |
---|---|
EP1659800A3 (en) | 2011-09-28 |
CN100508620C (zh) | 2009-07-01 |
EP1659800A2 (en) | 2006-05-24 |
KR20060053568A (ko) | 2006-05-22 |
US8031772B2 (en) | 2011-10-04 |
CN1777293A (zh) | 2006-05-24 |
US20060104364A1 (en) | 2006-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100640876B1 (ko) | 이동 방송 수신기의 비디오 디코딩 시스템 | |
US9351003B2 (en) | Context re-mapping in CABAC encoder | |
US9807410B2 (en) | Late-stage mode conversions in pipelined video encoders | |
US9392292B2 (en) | Parallel encoding of bypass binary symbols in CABAC encoder | |
US8213511B2 (en) | Video encoder software architecture for VLIW cores incorporating inter prediction and intra prediction | |
US9215472B2 (en) | Parallel hardware and software block processing pipelines | |
US8634474B2 (en) | CABAC macroblock rewind and end of slice creation to control slice size for video encoders | |
Cheng et al. | An in-place architecture for the deblocking filter in H. 264/AVC | |
US9218639B2 (en) | Processing order in block processing pipelines | |
US10313683B2 (en) | Video encoder with context switching | |
US8238429B2 (en) | Statistically cycle optimized bounding box for high definition video decoding | |
Araki et al. | Video DSP architecture for MPEG2 codec | |
Ogura et al. | A 1.2 w single-chip MPEG2 MP@ ML video encoder lsi including wide search range motion estimation and 81 mops controller | |
KR101419378B1 (ko) | 영상 처리를 위한 시스템 | |
US7590295B2 (en) | Semiconductor device and an image processor | |
Shih et al. | An AMBA-compliant deblocking filter IP for H. 264/AVC | |
US20170323454A1 (en) | Apparatus and method for efficient motion estimation | |
JP4697419B2 (ja) | 作業メモリ直接リンクによってフレーム・メモリ・アクセスを減少させる映像符号化システム | |
JP4498848B2 (ja) | 画像処理装置 | |
US7350035B2 (en) | Information-processing apparatus and electronic equipment using thereof | |
US20090201989A1 (en) | Systems and Methods to Optimize Entropy Decoding | |
JP2004326228A (ja) | 並列演算処理装置 | |
Chien et al. | High efficiency data access system architecture for deblocking filter supporting multiple video coding standards | |
Onoye et al. | HDTV level MPEG2 video decoder VLSI | |
Lee et al. | Design of an H. 264 decoder with variable pipeline and smart bus arbiter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for 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: 20120926 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20130924 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20140924 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20150924 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |