KR19990075516A - 비디오 복호기의 움직임벡터 처리장치 - Google Patents
비디오 복호기의 움직임벡터 처리장치 Download PDFInfo
- Publication number
- KR19990075516A KR19990075516A KR1019980009749A KR19980009749A KR19990075516A KR 19990075516 A KR19990075516 A KR 19990075516A KR 1019980009749 A KR1019980009749 A KR 1019980009749A KR 19980009749 A KR19980009749 A KR 19980009749A KR 19990075516 A KR19990075516 A KR 19990075516A
- Authority
- KR
- South Korea
- Prior art keywords
- motion
- motion vector
- code
- value
- unit
- Prior art date
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 발명은 비디오 복호기에서 움직임벡터를 실시간으로 처리하여 움직임벡터의 처리시간을 단축하기 위한 것으로, 이러한 본 발명은 움직임코드 처리부에서 가변장부호의 상태에서 발생하는 움직임코드와 움직임잔여값을 지연소자를 사용하여 저장하고 매크로블록의 디코딩을 수행하며 지연소자에 저장된 값의 유효여부를 알려주는 신호를 움직임잔여값에 첨가하고, 움직임벡터 계산부에서 움직임코드 처리부의 움직임코드와 움직임잔여값을 이용하여 움직임벡터를 계산함으로써, 움직임벡터를 실시간으로 처리하여 움직임벡터의 처리시간을 단축하고 회로구성을 압축시켜 생산원가를 절감할 수 있게 되는 것이다.
Description
본 발명은 비디오 복호기에 관한 것으로, 특히 비디오 복호기에서 움직임벡터(Motion Vector)를 실시간으로 처리하여 움직임벡터의 처리시간을 단축하기 위한 장치에 관한 것이다.
일반적으로 비디오 복호기는 입력되는 비디오 신호를 복호시키는 장치로써, HDTV(High Definition TeleVision, 고화질 텔레비전) 등에 사용된다.
이러한 비디오 복호기는 시스템 복호, 파싱(Parsing), 슬라이스(Slice) 복호, 움직임 보상 기능을 수행하여 입력되는 비트스트림을 복호하여 이미지 데이터를 출력하였다.
여기서 시스템 복호기능이란 입력되는 시스템 비트스트림(System Bit Stream)을 비디오 비트스트림과 오디오 비트스트림을 분리하여 출력하는 것이고, 파싱이란 비디오 비트스트림의 헤더를 디코딩하고, 각 슬라이스별로 데이터를 분리하는 것을 말한다. 또한 슬라이스 복호란 비디오 비트스트림의 슬라이스 비트스트림을 디코딩하는 것이고, 움직임 보상이란 디코딩된 슬라이스 비트스트림의 움직임 보상(Motion Compensation)을 수행하여 실제 이미지 픽셀 데이터를 만들어 출력시키는 것을 말한다.
도1은 일반적인 비디오 복호기에서 슬라이스 복호를 수행하는 블록의 블록구성도이다.
이에 도시된 바와 같이, 입력되는 비트스트림에 대해 보드ID를 점검하여 해당 보드ID이면 슬라이스 비트스트림 데이터를 저장하고 해당 보드ID가 아니면 데이터를 패스(Pass)시키는 입력제어부(1)와; 상기 입력제어부(1)의 가변장부호화(VLD, Variable Length Decode)된 비디오 데이터를 복호하는 가변장부호 복호부(2)와; 상기 입력제어부(10)의 가변장부호화된 비디오 데이터의 움직임벡터를 처리하는 움직임벡터 처리부(3)와; 상기 가변장부호 복호부(2)에서 복호된 가변장부호의 비월주사를 수행하는 비월주사 처리부(4)와; 상기 비월주사 처리부(4)에서 비월주사된 데이터의 역양자화를 수행하는 역양자화 처리부(5)와; 상기 역양자화 처리부(5)에서 역양자화된 데이터의 역이산코사인변환(IDCT, Inverse Discrete Cosine Conversion)을 수행하는 역이산코사인변환 처리부(6)와; 상기 역이산코사인변환 처리부(6)에서 최종적으로 처리된 데이터를 순차적으로 전송하는 출력제어부(7)로 구성된다.
그래서 입력제어부(1)는 슬라이스 비트스트림으로 각 비트스트림에 대해 보드 ID를 점검하여 해당 보드 ID이면 슬라이스 비트스트림 데이터를 입력 FIFO에 넣고, 해당 보드 ID가 아니면 데이터를 패스시킨다. 이에 따라 입력된 각 FIFO의 데이터에 대해 가변장부호, 비월주사, 역양자화, IDCT를 처리하여 출력제어부(7)의 FIFO에 저장되게 된다. 그러면 출력제어부(7)에 저장된 비디오 데이터는 움직임보상 처리기에서 순차적으로 데이터를 요구하면, 처리된 비디오 데이터를 전송하도록 동작하였다.
그러나 종래에는 비디오 데이터의 움직임벡터를 바로 처리하지 못하고, 매크로 블록(Macro Block) 단위로 저장한 다음 움직임벡터를 처리하였다. 여기서 비디오 비트스트림에서는 움직임코드(Motion Code)와 움직임잔여(Motion Residual) 값을 실시간으로 디코딩이 가능하지만, 이 값을 가지고 움직임 벡터를 처리하는 데 17MHz로 처리하여 최소 3클럭(clk)이 필요하므로 1clk 마다 발생하는 움직임코드와 움직임잔여값을 가지고 1clk만에 움직임 벡터를 계산하기는 불가능하다. 이처럼 종래 움직임벡터 처리부의 동작은 미리 움직임벡터를 계산하고 움직임 벡터를 처리함으로써 실시간 처리가 수행되지 못하여 회로가 복잡해지고, 데이터 처리시간이 증가하는 문제점이 있었다.
이에 본 발명은 상기와 같은 종래의 제반 문제점을 해소하기 위해 제안된 것으로, 본 발명의 목적은 비디오 복호기에서 움직임벡터를 실시간으로 처리하여 움직임벡터의 처리시간을 단축하기 위한 비디오 복호기의 움직임벡터 처리장치를 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여 본 발명에 의한 비디오 복호기의 움직임벡터 처리장치는,
가변장부호의 상태에서 발생하는 움직임코드와 움직임잔여(Residual)값을 지연소자에 의해 저장하고, 매크로블록의 디코딩을 수행하며, 상기 지연소자에 저장된 값의 유효여부를 알려주는 신호를 움직임잔여값에 첨가하는 움직임코드 처리부와; 상기 움직임코드 처리부의 움직임코드와 움직임잔여값을 이용하여 움직임벡터를 계산하는 움직임벡터 계산부로 이루어짐을 그 기술적 구성상의 특징으로 한다.
도 1은 일반적인 비디오 복호기의 블록구성도,
도 2는 본 발명에 의한 비디오 복호기의 움직임벡터 처리장치의 블록구성도,
도 3은 도2에서 움직임코드 처리부의 상세블록도,
도 4는 도2에서 움직임벡터 계산부의 상세블록도,
도 5는 도4에서 카운터에 따른 움직임벡터 계산의 타이밍을 나타낸 파형도.
<도면의 주요 부분에 대한 부호의 설명>
10: 움직임코드 처리부
20: 움직임벡터 계산부
이하, 상기와 같이 구성된 본 발명 비디오 복호기의 움직임벡터 처리장치의 기술적 사상에 따른 일실시예를 상세히 설명하면 다음과 같다.
먼저 본 발명은 비디오 디코더의 가변장부호 복호부에서 비디오 비트스트림을 받아서 지연소자인 래치버퍼를 사용하여 실시간으로 움직임벡터를 처리하고자 한다.
도2는 본 발명에 의한 비디오 복호기의 움직임벡터 처리장치의 블록구성도이다.
이에 도시된 바와 같이, 가변장부호의 상태에서 발생하는 움직임코드와 움직임잔여값을 지연소자에 의해 저장하고, 매크로블록의 디코딩을 수행하며, 상기 지연소자에 저장된 값의 유효여부를 알려주는 신호를 움직임잔여값에 첨가하는 움직임코드 처리부(10)와; 상기 움직임코드 처리부(10)의 움직임코드와 움직임잔여값을 이용하여 움직임벡터를 계산하는 움직임벡터 계산부(20)로 구성된다.
도3은 도2의 움직임벡터 처리장치에서 움직임코드 처리부(10)의 상세블록도이다.
이에 도시된 바와 같이, 제1/제2픽처(Picture)와 포워드/백워드(Forward/Backward)와 수평/수직 상태인 이미지 정보를 입력받아 저장하는 입력부(11)와; 상기 입력부(11)에 저장된 이미지 정보와 픽처헤더(Picture Header)에서 발생하는 픽처 파라미터를 입력받아 다중화하여 상기 입력부(11)의 값에 따라 픽처 파라미터 중 하나를 선택하여 출력시키는 다중화부(12)와; 상기 다중화부(12)의 출력데이터를 입력받고, 가변장부호를 처리하는 매 시퀀스(Sequence) 데이터를 입력받아 매크로블록 헤더를 디코딩하여 움직임코드와 움직임잔여 정보를 출력시키는 헤더디코딩부(13)와; 상기 헤더디코딩부(13)와 동기를 맞추도록 상기 입력부(11)의 데이터를 입력받아 지연시키는 클럭동기부(14)와; 상기 헤더디코딩부(13)와 클럭동기부(14)에서 데이터를 입력받아, 움직임코드와 움직임잔여값의 어드레스를 상기 클럭동기부(14)의 출력값에 따라 결정하고, 입력받은 데이터의 값이 유효한 값인지의 여부를 알려주는 플래그(Flag) 신호를 움직임잔여값의 최상위비트(MSB, Most Significant Bit)에 첨가하는 플래그추가부(15)로 구성된다.
이러한 움직임코드 처리부(10)의 동작은 다음과 같다.
먼저 입력부(11)에 입력되는 r은 이미지의 제1/제2 픽처(Picture)를 나타내고, s는 포워드/백워드를 나타내며, t는 수직/수평을 나타낸다. 그리고 다중화부(12)에 입력되는 fcode 값은 픽처헤더에서 나오는 픽처 파라미터로써 4개의 fcode가 발생한다. 그래서 다중화부(12)는 4개의 fcode 중에서 한 상태의 s, t 값에 따라 fcode 값은 4개중 1개를 고르게 된다.
그리고 움직임벡터는 매 매크로블록마다 최대 8개에서 최소 0개까지 매쌍(수직/수평)으로 발생하므로, 움직임벡터 처리에 관련된 상태(state)는 최대 8개까지 가능하다. 그래서 헤더 디코딩부(13)는 이러한 가변장부호 상태를 입력받고, 매 상태에서 발생하는 움직임코드, 움직임잔여값에 대해 바로 움직임 벡터 값의 계산이 불가능하므로 래치버퍼를 사용하여 움직임코드와 움직임잔여값을 저장한다. 이 헤더디코딩부(13)의 값은 매 매크로블록마다 리셋시킨다.
이에 따라 플래그추가부(15)는 헤더디코딩부(13)와 클럭동기부(14)에서 데이터를 입력받아, 움직임코드와 움직임잔여값의 어드레스를 클럭동기부(14)에서 출력되는 r, s, t 값에 따라 결정한다. 매 매크로블록마다 매크로블록 헤더의 디코딩이 끝나면, 플래그추가부(15)에는 최소 0 개에서 최대 8개까지의 움직임코드와 움직임잔여값이 저장된다. 이때 저장된 값이 유효한 값인지의 여부를 알려주는 플래그 신호를 움직임잔여값의 최상위비트에 추가하게 된다.
도4는 도2의 움직임벡터 처리장치에서 움직임벡터 계산부(20)의 상세블록도이다.
이에 도시된 바와 같이, 상기 움직임코드 처리부(10)에서 움직임코드와 움직임잔여값과 갱신된 플래그를 입력받아 래치시켜 다중화하는 다중화부(21)와; 움직임코드와 움직임잔여값의 처리를 카운트하는 카운터(22)와; 상기 카운터(22)의 카운트에 따라 상기 다중화부(21)의 움직임코드와 움직임잔여값을 읽어 예측움직임벡터(PMV, Predicted Motion Vector)를 계산하는 예측움직임벡터 계산부(23)와; 상기 예측움직임벡터 계산부(23)에서 계산된 움직임벡터를 입력받아, 예측움직임벡터 리셋조건에 따라 매 매크로블록마다 유효한 매크로블록에 대해서는 움직임벡터값을 저장하고 유효하지 않은 움직임벡터에 대해서는 저장하지 않는 움직임벡터 저장부(24)로 구성된다.
이와 같이 구성된 움직임벡터 계산부(20)의 동작을 도5에 도시된 움직임벡터 계산부(20)내 각 신호의 파형도를 참조하여 설명하면 다음과 같다.
먼저 다중화부(21)는 움직임코드를 입력받아 래치(211)시킨 다음 다중화(212)시키고, 움직임잔여값을 입력받아 갱신된 플래그와 함께 래치(213)시킨 다음 다중화(214)시킨다.
그리고 움직임벡터의 계산은 매크로블록 헤더의 디코딩이 끝난 후에 시작하고, 8개의 움직임코드와 움직임잔여값에 대해 무조건 계산을 수행한다. 이 과정은 카운터(22)의 3비트의 MainCnt(221)와 4비트의 SubCnt(222)가 관장한다.
그래서 예측움직임벡터 계산부(23)는 MainCnt(221)의 값에 따라 각각의 8개의 움직임코드와 움직임잔여값을 다중화부(21)에서 읽어오며, 각 움직임코드와 움직임잔여값에 대해 할당된 시간은 16clk 분의 시간이다. 이 시간은 움직임벡터를 계산하고 예측움직임벡터(PMV)를 저장하며, 이 예측움직임벡터값을 갱신(Update)시키는데 필요한 시간이다. 이에 따라 이전 예측움직임벡터값에 따라 새로운 예측움직임벡터값을 계산하게 된다.
그리고 움직임벡터 저장부(24)는 예측움직임벡터 리셋조건을 입력받아 제1 지연부(241)에 저장한 다음, 예측움직임벡터 리셋조건에 따라 예측움직임벡터 계산부(23)에서 전송되는 데이터에 대해 매 매크로블록이 유효한 매크로블록이면 움직임벡터값을 제2 지연부(242)와 래치소자(243)에 의해 저장하고, 유효하지 않은 움직임벡터이면 저장하지 않게 된다.
이에 따라 도5는 카운터(22)의 MainCnt(221)와 SubCnt(222)에 따라 움직임벡터를 계산하는 타이밍을 나타낸 것이다.
그래서 각 매크로블록에 대해 움직임 인에이블(MotionEnb) 신호에 의해 움직임코드(Motion Code)와 움직임잔여값(Motion Residual)을 받아들이고, 5클럭(clk) 후면 충분히 움직임벡터의 계산이 끝나고(PMVWrEnb), 계산된 움직임벡터값을 출력시키고 동시에 예측움직임벡터값으로 저장하게 된다.
그리고 PMVUpdate는 프레임 예측(Prediction)인 경우 제2 픽처에 대한 움직임벡터를 갱신(Update)시키는 것을 의미한다. 그래서 다음 클럭에서 PMVUpdateEnb 신호가 발생하면 예측움직임벡터값을 갱신하게 된다.
이처럼 본 발명은 움직임벡터를 실시간으로 처리하여 움직임벡터의 처리시간을 단축하게 되는 것이다.
이상에서 본 발명의 바람직한 실시예를 설명하였으나, 본 발명은 다양한 변화와 변경 및 균등물을 사용할 수 있다. 본 발명은 상기 실시예를 적절히 변형하여 동일하게 응용할 수 있음이 명확하다. 따라서 상기 기재 내용은 하기 특허청구범위의 한계에 의해 정해지는 본 발명의 범위를 한정하는 것이 아니다.
이상에서 살펴본 바와 같이, 본 발명에 의한 비디오 복호기의 움직임벡터 처리장치는 비디오 복호기에서 움직임벡터를 실시간으로 처리하여 움직임벡터의 처리시간을 단축하고 회로구성을 압축시켜 생산원가를 절감할 수 있는 효과가 있게 된다.
Claims (3)
- 비디오 복호기의 움직임벡터 처리장치에 있어서,가변장부호의 상태에서 발생하는 움직임코드와 움직임잔여값을 지연소자에 의해 저장하고, 매크로블록의 디코딩을 수행하며, 상기 지연소자에 저장된 값의 유효여부를 알려주는 신호를 움직임잔여값에 첨가하는 움직임코드 처리부와;상기 움직임코드 처리부의 움직임코드와 움직임잔여값을 이용하여 움직임벡터를 계산하는 움직임벡터 계산부로 구성된 것을 특징으로 하는 비디오 복호기의 움직임벡터 처리장치.
- 제 1항에 있어서, 상기 움직임코드 처리부는,제1/제2픽처와 포워드/백워드와 수평/수직 상태인 이미지 정보를 입력받아 저장하는 입력부와;상기 입력부에 저장된 이미지 정보와 픽처헤더에서 발생하는 픽처 파라미터를 입력받아 다중화하여 상기 입력부의 값에 따라 픽처 파라미터 중 하나를 선택하여 출력시키는 다중화부와;상기 다중화부의 출력데이터를 입력받고, 가변장부호를 처리하는 매 시퀀스 데이터를 입력받아 매크로블록 헤더를 디코딩하여 움직임코드와 움직임잔여 정보를 출력시키는 헤더디코딩부와;상기 헤더디코딩부와 동기를 맞추도록 상기 입력부의 데이터를 입력받아 지연시키는 클럭동기부와;상기 헤더디코딩부와 클럭동기부에서 데이터를 입력받아, 움직임코드와 움직임잔여값의 어드레스를 상기 클럭동기부의 출력값에 따라 결정하고, 입력받은 데이터의 값이 유효한 값인지의 여부를 알려주는 플래그 신호를 움직임잔여값의 최상위비트에 첨가하는 플래그추가부로 구성된 것을 특징으로 하는 비디오 복호기의 움직임벡터 처리장치.
- 제 1항에 있어서, 상기 움직임벡터 계산부는,상기 움직임코드 처리부에서 움직임코드와 움직임잔여값과 갱신된 플래그를 입력받아 래치시켜 다중화하는 다중화부와;움직임코드와 움직임잔여값의 처리를 카운트하는 카운터와;상기 카운터의 카운트에 따라 상기 다중화부의 움직임코드와 움직임잔여값을 읽어 예측움직임벡터를 계산하는 예측움직임벡터 계산부와;상기 예측움직임벡터 계산부에서 계산된 움직임벡터를 입력받아, 예측움직임벡터 리셋조건에 따라 매 매크로블록마다 유효한 매크로블록에 대해서는 움직임벡터값을 저장하고 유효하지 않은 움직임벡터에 대해서는 저장하지 않는 움직임벡터 저장부로 구성된 것을 특징으로 하는 비디오 복호기의 움직임벡터 처리장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980009749A KR19990075516A (ko) | 1998-03-20 | 1998-03-20 | 비디오 복호기의 움직임벡터 처리장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980009749A KR19990075516A (ko) | 1998-03-20 | 1998-03-20 | 비디오 복호기의 움직임벡터 처리장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR19990075516A true KR19990075516A (ko) | 1999-10-15 |
Family
ID=65909539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980009749A KR19990075516A (ko) | 1998-03-20 | 1998-03-20 | 비디오 복호기의 움직임벡터 처리장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR19990075516A (ko) |
-
1998
- 1998-03-20 KR KR1019980009749A patent/KR19990075516A/ko not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5576765A (en) | Video decoder | |
EP0431319B1 (en) | Video signal coding apparatus, coding method and video signal coding transmission system | |
JP3610578B2 (ja) | 動画像信号を示す変換係数を逆変換する際の丸め誤差防止方法及び装置 | |
US5963222A (en) | Multi-format reduced memory MPEG decoder with hybrid memory address generation | |
US20100177820A1 (en) | Video encoding device, video decoding device, video encoding method, video decoding method, video encoding or decoding program | |
US5739862A (en) | Reverse playback of MPEG video | |
JP2002514363A (ja) | イメージ処理システムにおけるピクセルブロック圧縮装置 | |
KR20000057295A (ko) | 재압축을 사용하는 메모리 관리 시스템을 위한 영상 요소 프로세서 | |
JPH104550A (ja) | Mpeg−2復号方法及びmpeg−2ビデオ復号器 | |
JPH1093966A (ja) | 画像符号化装置 | |
JP2003061100A (ja) | マルチチャネル画像符号化器及びその符号化方法 | |
JP2004336451A (ja) | 画像復号ユニットとそれを用いた画像符号化装置及び符号化方法並びに画像復号装置及び復号方法 | |
KR0154010B1 (ko) | 가변길이 복호화 장치 | |
JP2000506715A (ja) | Mpeg―2ビデオデータ用二重速度可変長デコーダおよび復号化アーキテクチャ | |
JP4260894B2 (ja) | 画像処理システム内のメモリ効率のよい圧縮装置 | |
US7206345B2 (en) | Method of decoding coded video signals | |
US5973744A (en) | Apparatus for decoding video data | |
KR0154011B1 (ko) | 가변길이 복호화 장치 | |
KR19990075516A (ko) | 비디오 복호기의 움직임벡터 처리장치 | |
KR940010779A (ko) | 소형 디지탈 방식 고선명 텔레비젼 | |
KR100714660B1 (ko) | 비디오 신호 재생 장치 및 재생 방법 | |
US6205250B1 (en) | System and method for minimizing clock cycles lost to overhead data in a video decoder | |
US6298091B1 (en) | Method to play audio and video clips through MPEG decoders | |
US20060227874A1 (en) | System, method, and apparatus for DC coefficient transformation | |
US7269288B2 (en) | Apparatus for parallel calculation of prediction bits in a spatially predicted coded block pattern and method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |