KR20010018656A - 동영상 수신 장치 - Google Patents

동영상 수신 장치 Download PDF

Info

Publication number
KR20010018656A
KR20010018656A KR1019990034694A KR19990034694A KR20010018656A KR 20010018656 A KR20010018656 A KR 20010018656A KR 1019990034694 A KR1019990034694 A KR 1019990034694A KR 19990034694 A KR19990034694 A KR 19990034694A KR 20010018656 A KR20010018656 A KR 20010018656A
Authority
KR
South Korea
Prior art keywords
unit
data
standard deviation
output
external memory
Prior art date
Application number
KR1019990034694A
Other languages
English (en)
Other versions
KR100304901B1 (ko
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 KR1019990034694A priority Critical patent/KR100304901B1/ko
Priority to US09/641,921 priority patent/US6724816B1/en
Publication of KR20010018656A publication Critical patent/KR20010018656A/ko
Application granted granted Critical
Publication of KR100304901B1 publication Critical patent/KR100304901B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/441Acquiring end-user identification, e.g. using personal code sent by the remote control or by inserting a card
    • H04N21/4415Acquiring end-user identification, e.g. using personal code sent by the remote control or by inserting a card using biometric characteristics of the user, e.g. by voice recognition or fingerprint scanning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/16Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter for a given display mode, e.g. for interlaced or progressive display mode
    • 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/186Methods 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 a colour or a chrominance component
    • 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/423Methods 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
    • H04N19/426Methods 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 using memory downsizing methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

디지털 비디오 전송 분야의 표준안인 엠펙-2(MPEG-2) 디코딩 칩의 외부 메모리 감축을 위한 동영상 수신 장치에 관한 것으로서, 특히 MPEG-2 표준안의 매크로 블록 단위의 움직임 보상의 용이성 및 고화질을 유지하기 위해 비디오 디코딩된 데이터를 다시 ADPCM 방식으로 데이터를 압축하여 외부 메모리에 저장하는 데이터 처리 구조로서, 데이터 압축시 각 매크로 블록을 다수개의 서브 블록(sub block)으로 나누어 선택한다. 그리고, 각 서브 블록의 첫 번째 열은 압축하지 않은 원래 화소값으로 저장하고 나머지 열들에 대해서 각각 ADPCM하는데 이때, 적응적 표준 편차를 양자화에 적용하여 압축하고 그 결과를 저장한다. 따라서, 복원된 영상의 시각적인 효과의 상승뿐만 아니라 객관적 화질 평가 측면에서도 상당히 우수해지면서 하드웨어가 간단해진다.

Description

동영상 수신 장치{Apparatus for receiving moving picture}
본 발명은 디지털 텔레비전 또는 디지털 화상회의 시스템 응용 분야에 관한 것으로서, 특히 디지털 비디오 전송 분야의 표준안인 엠펙-2(MPEG-2) 디코딩 칩의 외부 메모리 감축을 위한 동영상 수신 장치에 관한 것이다.
최근 디지털 TV 방송에 관한 관심이 높아지고 있으며, 고화질의 선명한 화면을 가정에서 TV 수신기로 볼 수 있도록 비디오 데이터를 압축하여 송신하고자 하는 노력이 기울여지고 있다. 비디오 신호를 압축하기 위하여 사용되는 알고리즘으로는 MPEG-2가 주로 사용되며, 압축율도 1/40에서 1/60정도로 매우 크다.
이러한 알고리즘 덕분에 기존에 다루기조차 힘들었던 고화질의 디지털 데이터를 일반 방송 채널로 전송하여 가정에서 즐길 수 있도록 하려는 연구가 계속되고 있다. 따라서, 디지털 TV 수신기는 이렇게 압축되어 수신된 데이터를 원래의 고화질의 비디오 데이터로 복원하여야 하는 MPEG-2 비디오 디코더가 필요하다.
도 1은 종래의 MPEG 디코딩 시스템의 구성 블록도로서, 트랜스포트 디코더(101)는 한 채널에 포함된 다수의 프로그램들 중 원하는 한 프로그램을 선택하여 패킷화되어 있는 오디오와 비디오 비트스트림을 분리한 후 분리된 비디오 비트 스트림은 데이터 버스를 통해 비디오 디코더(102)로 출력한다.
상기 비디오 디코더(102)는 입력되는 비디오 비트스트림에서 오버헤드(각종 헤더 정보, 스타트 코드등)를 제거하고, 순수한 데이터 정보를 가변 길이 디코딩(Variable Length Decoding ; VLD)한 후 역양자화 과정, 역 이산 코사인 변환(Inverted Discrete Cosine Transform ; IDCT) 과정, 및 움직임 벡터를 이용한 움직임 보상 과정을 거쳐 원래 화면의 픽셀 값을 복원하여 비디오 디스플레이 처리부(Video Display Processor ; VDP)(103)로 출력한다. 상기 VDP(103)는 복원된 픽셀 값을 픽쳐 타입에 따라 데이터를 재배열하여 출력하기도 하고 그대로 출력하기도 한다.
이때, MPEG-2를 기본으로 하고 있는 비디오 디코더 시스템은 외부 메모리(105)를 사용하는데, 상기 외부 메모리(105)는 비트 스트림을 일시 저장하기 위한 버퍼와 2개 이상의 프레임 메모리로 구성된다. 그리고, 상기 프레임 메모리는 통상 다이나믹 램(DRAM)을 사용한다. 특히, 비디오 디코더의 경우 상기 외부 메모리(105)의 역할은 비디오 디코딩을 위한 비트 스트림의 쓰기와 읽기, 움직임 보상을 위하여 필요한 데이터의 읽기, 디코딩된 데이터의 쓰기 및 디스플레이될 데이터의 읽기로 크게 나누어질 수 있으며, 메모리 제어부(104)를 통해 데이터를 주고받는다.
그러나, 상기된 도 1의 외부 메모리(105)는 적은 데이터를 처리하기에는 적합하나 MPEG-2 MP@HL의 비디오 데이터를 처리하기에는 적합하지 않다.
즉, MPEG-2 MP@HL의 비디오 데이터를 디코딩하기 위해서는 데이터 양이 약 6배정도 증가하므로 초당 93M 바이트 이상의 데이터를 처리해야 하고, 사용되는 메모리의 크기와 데이터의 전송 속도도 그만큼 빨라져야 하기 때문이다. 또한, MPEG-2 표준 규격안에서 MP@HL 모드를 지원하기 위해서는 약 10Mbits의 비트-버퍼 사이즈가 요구되고, 최대 허용 비트 레이트(bit rate)가 약 80Mbit/s에 이른다. 이로 인해, 기존의 16Mbits DRAM을 기반으로 하는 MPEG-2 비디오 디코더의 경우 약 96∼128Mbits의 외부 메모리를 필요로 한다. 이는 메모리의 가격 상승을 의미한다.
그러므로, 제품 및 소비자 응용에 있어서 가격 경쟁력을 갖기 위해서는 고 가격의 메모리를 줄이면서 좋은 화질을 유지할 수 있는 필요성이 대두된다. 또한, 각종 OSD(On Screen Display) 및 다양한 서비스를 제공하고 있는 추세에 비추어 앞으로는 추가적인 메모리의 증가가 필연적이다.
예를 들면, 최근에 MPEG-2와 같은 비디오 압축 복원 시스템의 경우 여러 종류의 비디오 신호를 멀티 디코딩하여 동시에 디스플레이함으로써, 다양한 서비스를 제공하고 있다. 이런 경우 한정된 메모리에 여러 개의 비디오 신호를 디코딩할 수 있어야 한다.
결국 메모리의 한계성, 가격, 및 데이터 버스의 밴드폭(bandwidth)를 고려해볼 때 비디오 디코딩 칩에 고화질 화상 신호의 손실을 최소로 하는 효과적인 메모리 감축 장치가 필요하며, 이를 위해 여러 가지 방법이 제안되어 있다.
즉, 기존의 비디오 디코딩 칩에 내재하여 있는 메모리 감축 알고리즘들을 살펴보면 50% 감축율을 갖는 ADPCM(Adaptive Differential Pulse Coded Modulation) 방식을 제안하거나, 75% 감축율을 갖는 VQ(Vector Quantization) 등을 이용하여 공간적인 중복성을 없애는 방식들을 제안하고 있다. 또한, DCT 주파수 영역에서 필터링/다운-샘플링(filtering/down-sampling) 방식들을 통한 압축 방식도 제안하고 있다.
그러나, 상기된 방식들을 사용할 경우, 50%∼75% 감축율에서 텍스쳐가 복잡하거나 컬러의 성분이 매우 높은 고화질의 MPEG-2 MP@HL을 제공하기가 힘들다. 즉, 높은 화질과 감축율의 관계는 반비례 할뿐만 아니라 매우 복잡한 알고리즘이 필요하다.
따라서, 집적 회로(Integrated Circuit ; IC)로 구현시 복잡한 알고리즘을 구현하기가 매우 힘들뿐만 아니라 게이트 수가 증가하는 단점을 갖게 된다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 좋은 화질과 간단하면서 빠른 처리 속도를 갖도록 MPEG-2 비디오 디코더의 외부 메모리를 감축하는 동영상 수신 장치를 제공함에 있다.
본 발명의 다른 목적은 비디오 디코딩된 데이터를 압축하여 외부 메모리에 저장하는 동영상 수신 장치를 제공함에 있다.
본 발명의 또 다른 목적은 압축되어 외부 메모리에 저장된 데이터를 디스플레이를 위해 복원하는 동영상 수신 장치를 제공함에 있다.
도 1은 일반적인 MPEG 디코딩 시스템의 구성 블록도
도 2는 본 발명에 따른 MPEG 디코딩 시스템의 구성 블록도
도 3은 도 2의 메모리 감축부의 상세 블록도
도 4은 도 3의 ADPCM 압축부의 상세 블록도
도 5는 도 4의 적응적 양자화부의 상세 블록도
도 6은 본 발명에 따른 매크로 블록 내 서브 블록의 구조를 보인 도면
도 7은 도 4의 편차 계산부의 상세 블록도
도 8은 도 4의 라이트 FIFO의 상세 블록도
도 9는 본 발명에 의해 압축된 휘도 프레임의 외부 메모리 맵을 보인 도면
도 10은 본 발명에 의해 압축된 색 프레임의 외부 메모리 맵을 보인 도면
도 11a는 도 3의 ADPCM 신장부의 상세 블록
도 11b는 도 11a의 리드 FIFO의 외부 메모리 리드 동작의 예를 보인 도면
도 12는 도 11a의 ADPCM 디코더의 상세 블록도
도면의 주요부분에 대한 부호의 설명
100 : 호스트 처리부 101 : TP 디코더
102 : 비디오 디코더 103 : 비디오 디스플레이 처리부
104 : 메모리 제어부 105 : 외부 메모리
200 : 메모리 감축부 201 : 가산기
202 : 편차 계산부 203 : STR 버퍼
204 : ADPCM 압축부 205 : PCM 버퍼
206 : 라이트 FIFO
상기와 같은 목적을 달성하기 위한 본 발명에 따른 동영상 수신 장치는, 입력되는 비디오 비트스트림을 매크로 블록 단위로 가변 길이 디코딩(VLD)한 후 역양자화 과정, 역 이산 코사인 변환(IDCT) 과정, 및 움직임 벡터를 이용한 움직임 보상 과정을 거쳐 원래 화면의 화소 값을 복원하는 비디오 디코더와, 상기 비디오 디코딩을 위해 외부 메모리와, 상기 비디오 디코딩된 화소 값의 매크로 블록을 다수개의 서브 블록으로 나눈 후 서브 블록 단위로 비디오 디코딩된 화소값을 압축하여 상기 외부 메모리에 저장하는 압축부와, 상기 외부 메모리로부터 압축되어 저장된 화소값을 읽어 와 원래의 매크로 블록 단위의 화소값으로 복원하는 신장부와, 상기 데이터의 압축/복원과 외부 메모리에의 데이터 저장을 제어하는 메모리 제어부를 포함하여 구성되는 것을 특징으로 한다.
상기 압축부는 상기 비디오 디코딩된 데이터의 표준 편차를 서브 블록 단위로 계산하는 편차 계산부와, 상기 비디오 디코딩된 데이터를 매크로 블록 단위로 일시 저장한 후 서브 블록 단위로 출력하는 버퍼와, 상기 버퍼에서 출력되는 각 서브 블록의 첫 번째 열은 압축하지 않은 원래 화소값으로 출력하고, 나머지 열들에 대해서는 예측된 값과 현재 화소값과의 차이를 코딩하며, 코딩시 상기 표준 편차를 적용하여 양자화 간격을 조절하는 ADPCM 압축부와, 상기 ADPCM 압축부의 출력을 일시 저장하여 비디오 디코더와 외부 메모리와의 데이터 레이트를 맞추는 라이트 선입선출 메모리(FIFO)로 구성되는 것을 특징으로 한다.
상기 ADPCM 압축부의 적응 양자화부는 휘도 신호와 색 신호에 대해 각각 양자화 레벨을 다르게 정하는 것을 특징으로 한다.
상기 ADPCM 압축부의 편차 계산부는 한 클럭 안에 다수개의 픽셀을 병렬로 입력받아 서브 블록 단위로 분산을 구하는 분산 연산부와, 상기 분산 연산부에 루트를 씌워 표준 편차를 구하는 편차 연산부와, 상기 편차 연산부에서 출력되는 표준 편차가 휘도 신호의 표준 편차이면 최하위 비트를 제로로 만들어 출력하고, 색 신호의 표준 편차이면 그대로 출력하는 편차 제어부와, 상기 편차 제어부에서 출력되는 휘도 신호와 색 신호의 표준 편차의 범위를 한정하는 편차 조정부와, 한 클럭 안에 병렬로 입력되는 다수개의 픽셀의 각 차분 신호로부터 예측 오차의 최대치를 구한 후 기 설정된 임계값과 비교하는 비교기와, 상기 비교기에서 예측 오차의 최대치가 기 설정된 임계값보다 크다고 판별되면 상기 편차 조정부의 표준 편차에 휘도 신호 옵셋 또는 색 신호 옵셋을 더하여 최종 표준 편차로 출력하고, 작다고 판별되면 상기 편차 조정부의 편차를 그대로 최종 표준 편차로 출력하는 최종 편차 출력부로 구성되는 것을 특징으로 한다.
상기 라이트 FIFO는 상기 적응 양자화부에서 양자화된 코드값을 저장하는 코드 FIFO와, 상기 표준 편차를 저장하는 편차 FIFO와, 상기 표준 편차 및 양자화 코드를 외부 메모리에 라이트/리드시 비트 정렬하는 배럴 쉬프터로 구성되는 것을 특징으로 한다.
상기 외부 메모리는 동기식 디램(SDRAM) 할당시 위, 아래 슬라이스가 서로 다른 뱅크 어드레스를 가지도록 할당하는 것을 특징으로 한다.
상기 메모리 제어부는 상기 신장부가 메모리로부터 데이터를 읽어올 때 두 슬라이스에 걸쳐 있는 데이터를 메모리의 인터리빙 억세스 방법에 의해 읽어오도록 신호를 발생하는 것을 특징으로 한다.
본 발명은 MPEG-2 표준안의 매크로 블록 단위의 움직임 보상의 용이성 및 고화질을 유지하기 위해 비디오 디코딩된 데이터를 다시 ADPCM 방식으로 데이터를 압축하여 외부 메모리에 저장하는 데이터 처리 구조로서, 데이터 압축시 각 매크로 블록을 4×8 크기의 서브 블록(sub block)으로 나누어 선택한다. 그리고, 각 서브 블록의 첫 번째 열은 압축하지 않은 원래 화소값으로 저장하고 나머지 열들에 대해서 각각 ADPCM하는데 이때, 적응적 표준 편차를 양자화에 적용하여 압축하고 그 결과를 저장한다.
본 발명의 다른 목적, 특징 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
이하, 본 발명의 바람직한 실시예를 첨부도면을 참조하여 상세히 설명한다.
도 2는 본 발명에 따른 MPEG 디코딩 시스템의 구성 블록도로서, 메모리 감축부(200)가 상기된 도 1에 더 구비된다. 여기서, 상기 외부 메모리(105)는 DRAM을 사용할 수도 있고, 또는 고속의 인터페이스가 가능한 동기식 디램(SDRAM)을 사용할 수도 있다.
도 3은 상기 메모리 감축부(200)의 상세 블록도로서, 비디오 디코더(102)에서 IDCT된 데이터와 움직임 보상(Motion compensation ; MC)된 데이터를 입력받아 더하는 가산기(201), 상기 가산기(201)의 출력으로부터 표준 편차(σ)를 계산하는 편차 계산부(202), 상기 가산기(201)의 출력을 매크로 블록 단위로 저장하는 STR 버퍼(203), 상기 STR 버퍼(203)에 저장된 매크로 블록 내 데이터에 상기 표준 편차를 적용하여 ADPCM 방식으로 압축하는 ADPCM 엔코더(204), 상기 ADPCM 방식으로 압축된 데이터를 저장하는 PCM 버퍼(205), 및 상기 압축되어 PCM 버퍼(205)에 저장된 데이터를 읽어 와 외부 메모리(105)에 저장하는 라이트(Write) FIFO(First In First Output)(206)으로 구성된다.
이와 같이 구성된 본 발명에서 트랜스포트 디코더(101)는 패킷화된 오디오 비트스트림과 비디오 비트스트림을 분리한 후 분리된 비디오 비트스트림을 MPEG-2 비디오 디코더(102)로 출력한다. 상기 MPEG-2 비디오 디코더(102)는 I,P,B 픽쳐를 구성하기 위하여 VLD, IQ/IDCT, 및 움직임 벡터를 이용한 움직임 보상을 수행한다.
그리고, 상기 IDCT된 데이터와 움직임 보상된 데이터는 메모리 감축부(200)의 가산기(201)에서 더해져 완전한 영상으로 복원된다.
상기 가산기(201)에서 복원된 영상의 매크로 블록은 편차 계산부(202)로 입력됨과 동시에 메모리 즉, STR 버퍼(203)에 저장된다. 이때, 매크로 블록의 데이터 버스는 32비트(4픽셀 × 8비트/픽셀) 단위로 전송하게 된다.
따라서, 상기 편차 계산부(202)는 블록 단위로 적응적 표준 편차(σ)를 구하여 ADPCM 압축부(204)로 출력한다. 상기 표준 편차(σ)는 각 블록마다 양자화 간격을 조절하게 된다. 그리고, STR 버퍼(203)는 매크로 블록의 화소값을 임시적으로 저장한 후 각각의 매크로 블록을 4 ×8 서브 블록들로 나누고, ADPCM 압축부(204)에 4개의 화소들씩 데이터를 출력한다. 도 6은 매크로 블록 내 서브 블록의 구조로서, 휘도 신호(Y)와 색신호(Cb,Cr)에 대한 각 매크로 블록을 32비트(4픽셀 × 8비트/픽셀) 단위로 나누면, 휘도 신호(Y)의 경우는 8개의 서브 블록으로 나누어지고, 색 신호(Cb,Cr)의 경우는 각각 2개의 서브 블록으로 나누어진다.
여기서, 상기 STR 버퍼(203)는 매크로 블록을 저장하기 위한 듀얼 버퍼로 한 개의 버퍼는 일 예로, 96×32 비트를 저장한다.
상기 ADPCM 압축부(204)는 상기 STR 버퍼(203)에서 출력되는 정보들과 표준 편차(σ)의 정보를 이용하여 ADPCM 방식의 압축을 수행한 후 수행 결과들, 즉 양자화 코드(code(m,n))와 표준 편차(σ)를 PCM 버퍼(205)에 저장한다.
도 4는 상기 ADPCM 압축부(204)의 상세 블록도로서, 상기 STR 버퍼(203)의 출력 데이터 x(m,n)와 예측된 데이터의 차를 출력하는 감산기(301), 상기 감산기(301)의 출력과 표준 편차(σ)를 이용하여 적응 양자화를 수행하는 적응 양자화부(302), 상기 양자화된 데이터를 역양자화하는 적응 역양자화부(303), 및 상기 역양자화된 데이터로부터 예측을 수행하고 예측 데이터를 상기 감산기(301)로 출력하는 예측부(304)로 구성된다.
도 5는 상기 도 4의 상세 블록도로서, 적응 양자화부(302)는 절대값 연산부(402), 곱셈기(403), 비교기(404), 양자화 레벨부(405), 및 코드 테이블부(407)로 구성되고, 적응 역양자화부(303)는 복원 레벨부(406)와 멀티플렉서(408)로 구성된다. 그리고, 예측부(304)는 가산기(409)와 클립퍼(410)로 구성된다.
이와 같이 구성된 ADPCM 압축부(204)는 현재 화소와 이전 화소와의 상관 관계를 이용하여 중복성을 없애는데, 각 서브 블록의 첫 번째 열(row)은 압축하지 않은 원래의 화소값으로 전송하고(code(m,0)), 나머지 열들에 대해서는 예측된 값과 현재 화소값과의 차이를 코딩하여 전송한다(code(m,n)). 즉, 예측된 값과 현재 화소값과의 차이 값이 현재 화소의 비트-정밀도(bit-precision)보다 줄어들게 함으로써 압축을 높인다.
이때, 상기 ADPCM 압축부(204)의 스캐닝 순서는 서브 블록의 각 열(row)에서 수평 방향으로 화소들의 이전 값을 예측치로 사용한다.
예를 들어, 영상을 M×N의 블록으로 나누었다고 가정하고, x(m,n)는 블록 내의 m번째 열(row)과 n번째 행(column)의 화소값으로 정의하자. 그리고, 예측부(304)에서 예측된 값을이라고 정의하면 예측된 값은 하기의 수학식 1과 같이 표현할 수 있다.
if m=0,...,M-1, n=0
이때, 감산기(301)는 상기 STR 버퍼(203)의 출력 즉, 현재 화소값 x(m,n)과 예측부(304)에서 예측된 한 주기 이전 화소값과의 차(d(m,n) = x(m,n) -)를 출력하는데, 본 발명에서는 d(m,n) = x(m,n) -를 예측 오차로 정의한다.
즉, 하나의 열에 대해서 첫 번째 화소들은 8비트/픽셀로 보내고, 나머지 화소들에 대하여 적응 양자화부(302)에서 수평 방향으로 이전 값으로부터 그 차이값 d(m,n)을 양자화하여 고정 길이 코드(fixed length code ; FLC)로 압축하게 된다. 이때, FLC를 사용하므로 메모리 맵을 어드레싱하는데 편리해지게 된다.
그리고, ADPCM 압축부(204)의 경우 블록 내 예측오차를 최대한 줄이기 위해서는 적응 양자화부(302)의 양자화 계수 및 레벨이 블록의 예측 오차를 충분히 표현할 수 있도록 효율적으로 조절되어야 한다.
본 발명에서는 입력 신호의 특성(평균, 표준 편차)등을 이용하여 양자화 간격을 조절함으로써, 기존의 1차원 DPCM이 갖는 여러 예측 오차들을 줄이도록 한다.
이를 위해 먼저, 감산기(401)는 현재 화소값 x(m,n)과 예측된 이전 화소값과의 차를 구하여 예측 오차 d(m,n)로 출력하는데, 상기 예측 오차 d(m,n)의 최상위 비트(MSB)는 부호를, 나머지 비트들은 크기를 각각 나타내는 데이터 포맷을 갖는다. 이때, 상기 부호 비트가 '1'이냐 '0'이냐에 따라 전체 값이 음수 또는 양수로 처리되어야 하지만, 본 발명에서는 계산의 편리를 위해 어느 한쪽 예컨대, 양수로만 처리할 수 있도록 상기 부호 비트에 해당하는 최상위 비트는 그대로 출력하고, 데이터 비트에 대해서는 절대값 연산부(402)에서 절대치를 취한다.
그리고, 양자화 레벨부(405)의 양자화 레벨을 얻기 위해서는 코드 테이블에 있는 두 개의 근접한 양자화 값들의 평균값을 구해야 한다. 이 과정에서 생기는 트렁케이션(truncation) 에러의 보정 및 계산 효율을 위해 양자화 레벨부(405)의 뒷단에서 1/2를 곱해주어야 하는데, 이를 생략하기 위해 미리 절대값 연산부(402)의 출력에 곱셈기(403)에서 2를 곱해준 후 비교기(404)로 출력한다.
상기 비교기(404)는 곱셈기(403)에서 입력되는 데이터와 양자화 레벨부(405)의 양자화 레벨 값들을 비교한 후 상기 입력 데이터와 가장 가까운 레벨을 선택하여 출력한다. 이때, 상기 비교기(404)의 출력이 부호 비트와 다중되면 양자화된 코드값 code(m,n)이 된다.
상기 양자화 레벨부(405)의 양자화 레벨은 휘도 신호와 색 신호에 대해 각각 정해진다. 예를 들면, 휘도 신호의 경우 16개의 양자화 레벨을 이용하고, 색 신호의 경우 상대적으로 적은 8개의 양자화 레벨을 사용하여 코딩한다. 즉, 화질에 큰 영향을 미치는 휘도 신호에 색 신호보다 더 많은 양자화 레벨을 할당하여 화질을 향상시킨다. 이때, 상기 양자화 레벨 간의 간격은 즉, 양자화 간격은 표준 편차(σ)에 따라 달라진다.
그리고, 코드 테이블부(407)에는 10비트의 L개 코드 테이블(ROM)(407-2)이 구비되는데, 상기 코드 테이블(407-2)에는 정규화된 양자화 값이 저장되어있다. 즉, Q(I), I=1,...,L을 정규화된 양자화 값이라 가정한다.
여기서, L=2(K-1)은 양자화 레벨을 나타내며, K는 양자화 코드의 수를 나타낸다. 이때, L이 2의 K-1승이 되는 것은 최상위 비트가 부호 비트이므로 제외되기 때문이다. 예를 들면, 휘도의 경우는 K=5, L=16이고, 색의 경우는 K=4, L=8이다.
한편, 상기 편차 계산부(202)에서 계산된 표준 편차(σ)는 코드 테이블부(407)의 선택부(407-1)로 입력된다.
상기 선택부(407-1)는 현재 양자화되는 데이터가 휘도 신호인 경우는 표준 편차(σ)에 2를 곱하여 곱셈기(407-3)로 출력하고, 색 신호인 경우는 그대로 곱셈기(407-3)로 출력한다. 즉, 상기 예측 오차의 양자화 계수를 조절하기 위한 표준 편차(σ)는 화질에 큰 영향을 미치는 휘도와 영향을 적게 미치는 색신호에 따라 다르게 조절한다.
그리고, 상기 곱셈기(407-3)는 상기 선택부(407-1)를 통해 출력되는 표준 편차(σ)와 코드 테이블(407-2)에서 출력되는 정규화된 양자화 값을 곱하여 양자화 간격을 결정한다. 그리고, 상기 곱셈기(407-3)의 출력은 리미터(407-4)를 통해 양자화 레벨부(405)와 복원 레벨부(406)로 출력되는데, 리미터(407-4)는 상기 곱셈기(407-3)의 출력이 양자화 범위를 넘어서는 것을 제한한다.
예를 들어, 코드 테이블(407-2)에 저장된 Q(I), I=1,...,L을 정규화된 양자화 값이라 하면, 블록 내 양자화 계수는 곱셈기(407-3)에서 다음의 수학식 2와 같이 조절된다.
따라서, 비교기(405)는를 사용하여 예측 오차를 양자화하는데, 이때 일반적으로 예측 오차의 분포는 가우시안 또는 라플라시안(laplacian) 분포를 따른다고 가정한다. 그리고, 예측 오차의 분포는 휘도 신호와 색신호에서 서로 다른 분포를 가지며, 색 신호의 블록 내 분산이 일반적으로 휘도 신호의 분산보다 훨씬 적게 된다. 그러므로, 휘도 신호에 대해 많은 양자화 레벨을 할당하여 좋은 화질을 얻을 수 있게 한다.
예를 들어, 휘도 신호인 경우 양자화 레벨은 16 단계로 결정되는데, 상기 표준 편차(σ)의 크기에 따라 레벨 사이의 간격이 달라진다. 만일, 표준 편차(σ)의 값이 크면 양자화 레벨 사이의 간격이 넓고, 작으면 레벨 사이의 간격이 좁아진다. 즉, 표준 편차(σ)의 값이 크다는 것은 블록내 영상의 변화가 크다는 것을 의미하므로 양자화 간격을 넓게 해도 눈은 큰 차이를 못 느낀다.
한편, 복원 레벨부(406)에서는 상기 리미터(407-4)의 출력에 의해 실제 원하고자 하는 데이터 값이 각 레벨에 매핑된다. 이때, 멀티플렉서(408)는 상기 비교기(404)의 출력을 선택 신호로 이용하여 복원 레벨부(406)의 L개의 출력 중 하나를 선택하면 이 값이 적응 역양자화된 값 즉, 양자화 차분 신호가 된다.
상기 적응 역양자화된 값은 예측부(409)의 가산기(409)로 입력되고, 상기 가산기(409)는 한 주기전에 예측된 화소값에 상기 역양자화된 화소 값그리고, 상기 절대치 연산부(402)에서 출력되는 부호 비트를 더하여 입력 신호에 대한 예측 값을 구한다. 이때, 상기 가산기(409)의 출력을 클리퍼(410)를 통해 상기 감산기(401)에 예측 값으로 제공되는데, 상기 클리퍼(410)는 현재 화소와의 비트 수를 맞추기 위해 9비트로 입력되는 예측 값을 8비트로 제한하여 출력한다.
한편, 도 7은 상기 표준 편차 계산부(202)의 상세 블록도로서, 매크로블록의 DCT 타입에 맞추어 비월 주사 및 순차 주사 형식의 표준 편차를 조절하는 장치를 가진다. 이때, DCT 타입에 따라서 각각의 입력 신호들을 효과적으로 배분한다. 즉, 비월 주사 방식의 경우 필드 단위로 표준 편차를 구한다. 즉, 이븐 필드 내 화소들끼리 서브 블록을 만들고 오드 필드 내 화소들끼리 서브 블록을 만든다.
또한, DCT 타입이 프레임 DCT인 경우는 프레임 단위로 표준 편차를 구한다. 따라서, 인접 라인의 화소값들 사이에 상관도를 높이므로 압축하고자 하는 블록내의 특성을 정확히 얻으므로 압축율을 높일 수 있다.
먼저, 표준 편차(σ)의 정의를 먼저 해보면, 표준 편차(σ)는 분산(σ2)의 제곱근 즉, 분산(σ2)에 루트를 씌운 값이다. 여기서, 분산(σ2)은 평균(mean)에서 떨어진 정도를 말하며, 평균은 자료를 다 더해서 자료의 개수로 나눗 숫자이다.
따라서, 상기 분산(σ2)과 표준 편차(σ)를 식으로 나타내면 하기의 수학식 3과 같이 표현할 수 있으며, 이는 공지된 기술이다.
즉, 도 7의 601 내지 617은 상기된 수학식 3의 분산(σ2)을 구하는 블록들이고, 618은 상기된 분산(σ2)에 루트를 씌워 표준 편차(σ)를 구하는 블록이다.
본 발명에서는 각 서브 블록에 대해서 첫 번째 열은 압축하지 않은 원래의 화소값으로 전송하고, 나머지 열들에 대해서는 예측된 값과 현재 화소값과의 차이를 코딩하여 전송하므로, 한 블록 내에서는 M개의 8비트/픽셀 값과 M×(N-1)개의 예측 오차 값이 나오게 된다. 이때, 본 발명은 하나의 매크로 블록을 4×8 서브 블록으로 나누어 처리하므로 4개의 8비트/픽셀 값과 28개의 예측 오차 값이 나오게 되고, 상기된 수학식 3의 N은 28이 된다.
즉, 입력 비트는 32비트로 4개의 픽셀들(P0∼P3)이 한 클럭안에 감산기(601∼604)에 입력된다. 이때, 맨 마지막 픽셀(P3)은 지연기(605)에서 한 클럭 지연된 후 감산기(601∼604)로 입력된다. 상기 감산기(601∼604)에서 구해진 각 차 신호는 모두 가산기(606)로 입력되어 피드백되는 데이터와 더해지면서 누적된다. 상기 표준 편차는 한 블록에 대해서 구하므로 상기 가산기(606)의 출력이 28번 피드백되어지면서 계속 누적된다. 예를 들어, 상기된 수학식 3에서 상기 가산기(606)의 출력을 X라 하면, 가산기(606)와 지연기(607)를 통과한 신호는 ΣX가 된다.
상기 지연기(607)에서 지연된 신호에 1/N을 곱하여 평균을 구하여야 하는데, 본 발명에서는 N이 28이므로 곱셈기(608)에서 상수 9를 곱하고, 쉬프터(609)에서 왼쪽으로 8번 쉬프트함에 의해 지연기(607)의 출력에 평균을 취한다. 여기서, 상기 곱셈기(608)의 상수 9는 쉬프터를 왼쪽으로 3번 쉬프트시킨 후 1을 더하여 구할 수 있다. 그리고, 상기 쉬프터(609)에서 오른쪽으로 8번 쉬프트하면 그 출력은 1/256이 된다. 결국, 9/256은 대략 1/28이 되는 것이다. 이렇게 하는 이유는 일반 곱셈기는 하드웨어가 복잡하므로 가능한 쉬프터만을 이용하여 하드웨어를 간단히 하기 위해서이다.
그리고, 상기 쉬프터(609)의 출력에 제곱 연산부(610)에서 제곱을 취하면 상기된 수학식 3의 분산(σ2)에서 첫 번째 항()이 구해진다.
한편, 상기 감산기(601∼604)의 각 출력은 절대값 연산부(611)에서 절대치를 취한 후 제곱 연산부(612)와 비교부(627)로 입력되는데, 절대치를 취하는 것은 데이터 비트를 줄이기 위해서이다.
상기 제곱 연산부(612)는 절대치화된 4개의 차분 신호를 각각 제곱한 후 가산기(613)에서 피드백되는 데이터와 더해져 누적된다. 마찬가지로, 28번 동안 상기 과정이 반복되어 누적되며 지연기(614), 곱셈기(615), 및 쉬프터(616)를 통해 상기 가산기(613)의 출력을 평균화한다. 즉, 상기 쉬프터(616)의 출력이 상기된 수학식 3의 분산(σ2)에서 두 번째 항()이 구해진다.
따라서, 감산기(617)가 상기 제곱 연산부(610)의 출력에서 쉬프터(616)의 출력을 빼면 분산(σ2)이 구해지고, 루트부(618)에서 분산(σ2)에 루트를 취하면 표준 편차(σ)가 구해진다.
상기 루트부(618)에서 구해진 표준 편차 Std_dev(7:0)는 가산기(619)로 입력됨과 동시에 최하위 비트 Std_dev(0)는 앤드 게이트(620)로 입력된다.
상기 앤드 게이트(620)는 상기 표준 편차의 최하위 비트 Std_dev(0)와 CC_flag의 값을 앤드 조합하여 멀티플렉서(621)로 출력한다.
여기서, CC_flag는 현재 입력되는 데이터가 휘도 신호인지, 색 신호인지를 나타내는 플래그로서, 휘도 신호이면 0으로 리셋되어 있고, 색 신호이면 1로 셋트되어 있다.
따라서, CC_flag가 1이면 즉, 색 신호이면 앤드 게이트(620)는 표준 편차의 최하위 비트 Std_dev(0)에 관계없이 무조건 0을 출력하고, 멀티플렉서(621)는 0을 선택하여 출력한다. 그리고, CC_flag가 0일 때는 즉, 휘도 신호일 때는 앤드 게이트(620)는 표준 편차의 최하위 비트 Std_dev(0)가 1이면 1을, 0이면 0을 출력한다. 상기 멀티플렉서(621)는 앤드 게이트(620)에서 0을 출력하면 0을 선택하고, 1을 출력하면 1을 선택하여 가산기(619)로 출력한다.
이는 처리되는 비트 수를 줄이기 위한 것으로, 휘도 신호인 경우 표준 편차를 짝수로 만들어 최하위 비트를 제거하면 처리 비트 수가 줄어든다. 이때, 색 신호인 경우에는 에너지가 작으므로 하지 않는다. 즉, 예측 오차의 양자화 계수를 조절하기 위한 표준 편차는 휘도와 색신호에 따라 다르게 조절한다.
한편, 상기 가산기(618)는 상기 루트부(618)에서 출력되는 표준 편차와 상기 멀티플렉서(621)의 출력을 더하여 표준 편차 조정부(622)로 출력한다.
즉, 표준 편차의 추정치가 실제 예측 오차들의 분포보다 매우 크거나 적은 경우 양자화 오류가 커지므로, 상기 표준 편차 조정부(622)는 이를 보정하기 위해서 각각의 휘도 신호와 색 신호들의 표준 편차의 범위(Min_Y∼Max_Y, Min_C∼Max_C)를 한정한다. 이는 양자화 복원 레벨을 한정하여 양자화 간격이 어느 범위 이상을 벗어나지 않도록 하기 위한 것이다.
이를 위해 멀티플렉서(623)는 휘도 신호와 색 신호에 대해 최대값 MAX_t를 출력하는데, CC_flag가 0이면 즉, 휘도 신호이면 Max_Y를 선택하여 MAX_t로, CC_flag가 1이면 즉, 색 신호이면 Max_C를 선택하여 MAX_t로 상기 표준 편차 조정부(622)에 출력한다. 그리고, 멀티플렉서(623)는 휘도 신호와 색 신호에 대해 최소값 Min_t를 출력하는데, CC_flag가 0이면 즉, 휘도 신호이면 Min_Y를 선택하여 Min_t로, CC_flag가 1이면 즉, 색 신호이면 Min_C를 선택하여 Min_t로 상기 표준 편차 조정부(622)에 출력한다.
상기 표준 편자 조정부(622)는 상기 가산기(619)에서 입력되는 표준 편차(σ)가 항상 Max_t ≤σ≤Min_t 범위 내에 있도록 조정하여 가산기(628)로 출력한다. 즉, 휘도 신호인 경우 표준 편차(σ(Y))는 Min_Y ≤ σ(Y) ≤ Max_Y 범위 내에 있고, 색 신호인 경우 표준 편차(σ(C))는 Min_C ≤ σ(C) ≤ Max_C 범위 내에 있다.
한편, 실제적으로 예측 오차가 큰 경우(예를 들면, 슬롭 오버로드(slope overload) 발생시, 블록 안에 에지 존재시), 즉 주위 화소값과의 차이가 무척 커서 양자화 오차가 커지는 경우가 있는데 이를 보정해줄 필요가 있다. 본 발명에서는 이러한 경우에 편차 조정부(622)에서 출력되는 표준 편차를 크게 하여 양자화 간격을 넓혀준다. 이때는 변화가 크므로 양자화 간격을 넓게 해도 눈에 큰 차이를 느끼지 못한다.
즉, 상기 감산기(601∼604)에서 구해진 각 차 신호를 절대치 연산부(611)에서 절대치화하여 예측 오차의 최대치를 구한다.
그리고, 비교기(627)에서 상기 예측 오차의 최대치가 기 설정된 임계치(Max_Th)보다 큰지를 비교하고 그 결과를 선택 신호로 하여 멀티플렉서(626)로 출력한다. 상기 멀티플렉서(626)는 선택 신호에 따라 휘도 신호인 경우에는 제로(0) 또는 멀티플렉서(625)를 통해 입력되는 휘도 신호 옵셋(Offset_Y)을 선택 출력하고, 색 신호인 경우에는 제로(0) 또는 멀티플렉서(625)를 통해 입력되는 색 신호 옵셋(Offset_C)을 선택 출력한다.
이때, 멀티플렉서(625)는 CC_flag 상태에 따라 즉, 현재 휘도 신호(CC_flag=0)이면 휘도 신호 옵셋(Offset_Y)을 선택하고, 색 신호(CC_flag=1)이면 색 신호 옵셋(Offset_C)을 선택하여 상기 멀티플렉서(626)로 출력한다.
따라서, 현재 휘도 신호이면서 실제 예측 오차가 크면 즉, 예측 오차의 최대치가 임계값(Max_Th)보다 크면 멀티플렉서(626)는 휘도 신호 옵셋(Offset_Y)을 선택하여 가산기(628)로 출력하고, 작으면 제로를 선택하여 상기 가산기(628)로 출력한다.
또한, 현재 색 신호이면서 실제 예측 오차가 크면 멀티플렉서(626)는 색 신호 옵셋(Offset_C)을 선택하여 가산기(628)로 출력하고, 작으면 제로를 선택하여 상기 가산기(628)로 출력한다.
상기 가산기(628)는 상기 편차 조정부(622)에서 출력되는 표준 편차와 상기 멀티플렉서(626)의 출력을 가산하여 최종 표준 편차를 구한다. 즉, 현재 휘도 신호이면서 실제 예측 오차가 크면 상기 편차 조정부(622)에서 출력되는 표준 편차와 상기 휘도 신호 옵셋(Offset_Y)이 가산기(628)에서 더해져 휘도 신호의 최종 표준 편차로 출력되고, 실제 예측 오차가 작으면 이때는 멀티플렉서(626)에서 제로가 선택 출력되므로 상기 편차 조정부(622)의 출력이 그대로 휘도 신호의 최종 표준 편차로 출력된다. 또한, 현재 색 신호이면서 실제 예측 오차가 크면 상기 편차 조정부(622)에서 출력되는 표준 편차와 상기 색 신호 옵셋(Offset_C)이 가산기(628)에서 더해져 색 신호의 최종 표준 편차로 출력되고, 실제 예측 오차가 작으면 이때는 멀티플렉서(626)에서 제로가 선택 출력되므로 상기 편차 조정부(622)의 출력이 그대로 색 신호의 최종 표준 편차로 출력된다.
이와 같이, 예측 오차의 최대치 Maximum_Difference(d(m,n))가 임계값(Max_Th)을 초과하면 편차를 강제로 크게 하여 양자화 간격을 넓힘으로써, 양자화 오차를 줄여준다.
이를 식으로 나타내면 하기의 수학식 4와 같다.
휘도의 경우 :
Min_Y ≤ σ(Y) ≤ Max_Y
if Maximum_Difference(d(m,n)) > Max_Th
σ(Y) = σ(Y) + Offset_Y
else
σ(Y) = σ(Y)
색 신호의 경우 :
Min_C ≤ σ(C) ≤ Max_C
if Maximum_Difference(d(m,n)) > Max_Th
σ(C) = σ(C) + Offset_C
else
σ(C) = σ(C)
이때, 상기 가산기(628)에서 출력되는 최종 표준 편차는 ADPCM 압축부(204)의 적응 양자화부(302)와 적응 역양자화부(303) 그리고, 라이트 FIFO(206)로 출력된다.
그리고, 상기 최종 표준 편차 및 상기 최종 표준 편차를 이용하여 ADPCM 압축부(204)에서 ADPCM된 양자화 코드 code(m,n)는 PCM 버퍼(205)에 저장됨과 동시에 라이트 FIFO(206)로 출력된다.
상기 PCM 버퍼(205)는 일 예로, 32×64비트의 크기를 가지며, 이는 Y의 경우 11.5개의 매크로 블록의 정보를 저장할 수 있고, C의 경우는 27개의 매크로 블록의 정보를 저장할 수 있음을 의미한다.
이때, 상기 PCM 버퍼(205)에 저장되는 코드의 길이는 다음과 같다.
휘도 신호인 경우 : M×(8+5×7) = M×43비트(When N=8, L=16)
색 신호인 경우 : M×(8+4×7) = M×36비트(When N=8, L=8)
그리고, 상기 PCM 버퍼(205)가 다 채워지면 64비트의 데이터 버스를 통하여 외부 메모리(105)에 최종적으로 저장된다. 이때, 메모리(105) 클럭과 비디오 디코더(102)의 클럭을 맞추기 위해 라이트 FIFO(206)를 사용한다. 즉, 비디오 디코더(102)와는 32 비트의 데이터 버스를 통해 데이터를 주고받고, 외부 메모리(105)와는 64비트의 데이터 버스를 통해 데이터를 주고 받으므로 라이트 FIFO(206)를 통해 비트-정렬(bit-alignment)하여 데이터 레이트(rate)를 맞춘다.
상기 라이트 FIFO(206)는 상기 표준 편차 및 ADPCM된 양자화 코드 code(m,n)를 외부 메모리(105)에 라이트/리드시 도 8에 도시된 바와 같이 배럴 쉬프터를 이용하여 비트-정렬(bit-alignment)을 한다. 즉, 도 8은 64비트의 데이터 버스를 갖는 외부 메모리(105)에 쓰기 위해 코드 FIFO 및 Var FIFO에 코드와 표준 편차를 축적하기 위한 구조를 나타낸다.
이때, 배럴 쉬프터를 이용하여 데이터 폭(data width)이 32비트를 채우고 남는 부분은 다음 블록의 비트들과 결합하여 계속적으로 32비트 폭을 채우게 된다. 이렇게 채워진 데이터들은 도 9와 도 10에 도시한 바와 같이 외부 메모리(105) 상에 위치하게 된다. 즉, 도 10은 압축된 휘도 신호 프레임의 메모리 맵이고, 도 11은 압축된 색 신호 프레임의 메모리 맵이다.
여기서, 효율적인 메모리 억세스를 위해 외부 메모리(105)는 두 개의 뱅크로 나누어서 어드레싱하게 되는데, 위, 아래 슬라이스가 서로 다른 뱅크 어드레스를 가지도록 한다. 즉, 마지막 컬럼에 메모리 블록이 다른 블록의 1/2 크기를 가지므로 남는 여분의 메모리 블록에 대해서는 다음번 슬라이스의 마지막 컬럼에 같은 어드레스를 지정하므로 풀 사이즈(full size)의 데이터 블록을 얻는다.
한편, ADPCM 압축부(204)를 통해 압축되어 외부 메모리(105)에 저장된 비트 스트림들의 복원이 필요할 때가 있다. 예를 들어, 비디오 디코더(105)의 경우는 움직임 보상을 위해서, VDP(103)의 경우는 디스플레이하기 위해서 외부 메모리(105)에 ADPCM되어 저장된 비트 스트림들을 읽어 와 복원하게 된다.
이를 위한 ADPCM 신장부가 상기 메모리 감축부(200)에 구비되며, 상기 ADPCM 신장부의 예가 도 11a에 도시되어 있다. 즉, ADPCM 디코더(802)는 외부 메모리(105)에 저장된 코드와 표준 편차 신호들을 리드(read) FIFO(801)를 통해 읽어 와 원하는 매크로 블록을 복원한다. 여기서, 외부 메모리(105)로 SDRAM을 사용할 경우, 복원을 위해 상기 리드 FIFO(801)가 외부 메모리(105)로부터 데이터를 읽어올 때 도 11b와 같이 두 슬라이스에 걸쳐 있는 데이터는 SDRAM의 인터리빙 억세스 방법에 의해 읽음으로써, 메모리 억세스 시간을 단축할 수 있다.
그리고, 비디오 디코더(102)가 하프-펠 움직임 보상을 행할 경우 ADPCM 디코더(802)의 출력이 하프-펠 예측기(803)를 거쳐서 최종 결과가 픽셀 단위로 비디오 디스플레이 처리부(103)로 전송되며, 기준 버퍼(804)를 통해 일시 저장된 후 비디오 디코더(102)로 출력된다.
도 12는 상기 ADPCM 디코더(802)의 상세 블록도로서, 먼저 각 서브 블록의 첫 번째 열의 화소들 code(m,0)은 원래 화소값을 가지므로 그대로 출력 x(m,0)함과 동시에 멀티플렉서(906)로 출력한다.
그리고 나서, 복원부(901)는 그 다음 화소의 값 즉, code(m,n)를 리드 FIFO(801)를 통해 입력받아 예측 오차을 구한 후 가산기(903)로 출력하고, 상기 가산기(903)는 예측 오차와 상기 멀티플렉서(906)의 출력을 더하여 원하는 매크로 블록을 복원한다.
이때, 상기 복원부(901)로 입력되는 화소들 code(m,n)은 휘도 신호인 경우 5비트, 색 신호인 경우는 4비트인데, 이중 각각의 최상위 비트는 부호 비트이고, 나머지 비트들은 크기(예, 휘도인 경우 4, 색인 경우 3)를 나타낸다. 이는, ADPCM 압축부(204)에서 휘도 신호의 경우 16개의 양자화 레벨을 이용하고, 색 신호의 경우 상대적으로 적은 8개의 양자화 레벨을 사용하여 코딩하였기 때문이다.
따라서, 상기 부호 비트는 곱셈기(901-2)로 출력되고, 부호 비트를 제외한 나머지 데이터 부분이 선택 신호로서 멀티플렉서(901-1)로 출력되고, 상기 멀티플렉서(901-1)는 선택 신호로 입력되는 양자화 코드값에 따라 코드 테이블부(902)의 복원 레벨 중 하나를 선택하여 곱셈기(901-2)로 출력한다. 상기 곱셈기(901-2)는 멀티플렉서(901-1)를 통해 선택 출력되는 복원 레벨과 부호 비트와 곱하여 가산기(903)로 출력한다. 즉, 상기 곱셈기(901-2)의 출력이 예측 오차이다. 그러므로, 상기 예측 오차도 최상위 비트(MSB)는 부호를, 나머지 비트들은 크기를 각각 나타내는 데이터 포맷을 갖는다.
이때, 상기 코드 테이블부(902)는 도 5의 코드 테이블부(407)와 동일하므로 상세 설명을 생략한다.
한편, 상기 가산기(903)의 출력은 클리핑부(904)로 입력되어 비트수가 8을 넘지 않도록 제한되며, 상기 클리핑부(904)의 출력은 하프 펠 예측기(803)로 출력됨과 동시에 버퍼(905)를 통해 멀티플렉서(906)로 출력된다.
이와 같이 상기 ADPCM 디코더(802)는 ADPCM 압축부(204)에 비해 매우 간단한 하드웨어 구조를 갖는다.
한편, 본 발명에서 제안된 방식을 적용한 경우 외부 메모리(105)의 압축 효율을 살펴보면 다음과 같다.
M×N : 하나의 매크로 블록에서의 블록 사이즈
n1 : Y에 대한 양자화 비트들
n2 : Cb,Cr에 대한 양자화 비트들
v1 : Y에 대한 표준 편차 비트들
v2 : Cb,Cr에 대한 표준 편차 비트들
1) 휘도의 경우
해당 매크로 블록(Y)의 압축에 이용된 전체 비트 수
Bit_Y = (M×8 + M×(N-1) × n1 + v1 ) × 256/(M×N)
여기서, M×8는 첫 번째 열의 화소, M×(N-1) × n1는 총 양자화 계수, 256/(M×N)는 매크로 블록내 서브 블록의 개수이다.
2) 색의 경우
해당 매크로 블록(Cb,Cr)의 압축에 이용된 전체 비트 수
Bit_C = (M×8 + M×(N-1) × n2 + v2 ) × 128/(M×N)
여기서, M×8는 첫 번째 열의 화소, M×(N-1) × n2는 총 양자화 계수, 128/(M×N)는 매크로 블록내 서브 블록의 개수이다.
예를 들면, 1920 × 1088 신호 압축시 M=4, N=8, n1=5비트, n2=4비트, v1=v2=6비트인 경우 총 매크로 블록의 수는 8160개이고,
총 비트 = (BY+BC) × 8160 = 16515840비트이다.
따라서, 압축율은 하기의 수학식 5와 같다.
이상에서와 같이 본 발명에 따른 MPEG-2 비디오 디코딩 칩의 외부 메모리 감축을 위한 동영상 수신 장치는 다음과 같은 효과가 있다.
즉, ADPCM 방식으로 영상의 특성에 맞춰 적응적으로 압축함으로써, 복원된 영상의 시각적인 효과의 상승뿐만 아니라 객관적 화질 평가(PSNR ; Peak-to-peak Signal Noise to Ratio) 측면에서도 상당히 우수해지며, 또한 하드웨어도 간단해진다.
특히, 디지털 TV나 비디오 화상 회의 등의 응용 분야에 적용하여 MPEG-2 MP@HL의 고화질을 유지하면서 OSD나 멀티 디코딩 등의 다양한 서비스를 지원할 수 있게 되며, 메모리 폭의 감소 및 메모리 용량의 감축으로 인한 가격 경쟁력을 높일 수 있다. 또한, 비디오 디코딩 칩의 성능 개선 효과로 인해 타 회사의 디지털 TV와의 기술 경쟁력 강화 등의 큰 효과를 얻을 수 있다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.
따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정해져야 한다.

Claims (12)

  1. 입력되는 비디오 비트스트림을 매크로 블록 단위로 가변 길이 디코딩(VLD)한 후 역양자화 과정, 역 이산 코사인 변환(IDCT) 과정, 및 움직임 벡터를 이용한 움직임 보상 과정을 거쳐 원래 화면의 화소 값을 복원하는 비디오 디코더와, 상기 비디오 디코딩을 위해 외부 메모리를 구비하는 동영상 수신 장치에 있어서,
    상기 비디오 디코딩된 화소 값의 매크로 블록을 다수개의 서브 블록으로 나눈 후 서브 블록 단위로 비디오 디코딩된 화소값을 압축하여 상기 외부 메모리에 저장하는 압축부;
    상기 외부 메모리로부터 압축되어 저장된 화소값을 읽어 와 원래의 매크로 블록 단위의 화소값으로 복원하는 신장부; 그리고
    상기 데이터의 압축/복원과 외부 메모리에의 데이터 저장을 제어하는 메모리 제어부를 포함하여 구성되는 것을 특징으로 하는 동영상 수신 장치.
  2. 제 1 항에 있어서, 상기 압축부는
    상기 비디오 디코딩된 데이터의 표준 편차를 서브 블록 단위로 계산하는 편차 계산부와,
    상기 비디오 디코딩된 데이터를 매크로 블록 단위로 일시 저장한 후 서브 블록 단위로 출력하는 버퍼와,
    상기 버퍼에서 출력되는 각 서브 블록의 첫 번째 열은 압축하지 않은 원래 화소값으로 출력하고, 나머지 열들에 대해서는 예측된 값과 현재 화소값과의 차이를 코딩하며, 코딩시 상기 표준 편차를 적용하여 양자화 간격을 조절하는 ADPCM 압축부와,
    상기 ADPCM 압축부의 출력을 일시 저장하여 비디오 디코더와 외부 메모리와의 데이터 레이트를 맞추는 라이트 선입선출 메모리(FIFO)로 구성되는 것을 특징으로 하는 동영상 수신 장치.
  3. 제 2 항에 있어서, 상기 ADPCM 압축부는
    상기 버퍼의 출력 데이터와 예측된 데이터의 차를 구하여 예측 오차를 출력하는 예측 오차 출력부와,
    상기 예측 오차 출력부의 예측 오차에 양자화를 수행하며 상기 표준 편차를 이용하여 서브 블록마다 양자화 간격을 조절하는 적응 양자화부와,
    상기 양자화된 데이터에 상기 표준 편차를 적용하여 역양자화를 수행하는 적응 역양자화부와,
    상기 역양자화된 데이터로부터 예측을 수행하고 예측 데이터를 상기 예측 오차 출력부로 피드백하는 예측부로 구성되는 것을 특징으로 하는 동영상 수신 장치.
  4. 제 3 항에 있어서,
    상기 ADPCM 압축부의 스캐닝 순서는 서브 블록의 각 열에서 수평 방향으로 화소들의 이전 값을 예측치로 사용하는 것을 특징으로 하는 동영상 수신 장치.
  5. 제 3 항에 있어서, 상기 적응 양자화부는
    휘도 신호와 색 신호에 대해 각각 양자화 레벨을 다르게 정하는 것을 특징으로 하는 동영상 수신 장치.
  6. 제 3 항에 있어서, 상기 적응 양자화부는
    정규화된 양자화 레벨의 값이 저장되어 있는 코드 테이블에서 출력되는 정규화된 양자화 값에 상기 표준 편차를 곱하여 양자화 레벨간의 간격을 조절하는 것을 특징으로 하는 동영상 수신 장치.
  7. 제 2 항에 있어서, 상기 편차 계산부는
    매크로 블록의 DCT 타입에 맞추어 비월 주사 및 순차 주사 형식의 표준 편차를 추종하는 것을 특징으로 하는 동영상 수신 장치.
  8. 제 2 항에 있어서, 상기 편차 계산부는
    한 클럭 안에 다수개의 픽셀을 병렬로 입력받아 서브 블록 단위로 분산을 구하는 분산 연산부와,
    상기 분산 연산부에 루트를 씌워 표준 편차를 구하는 편차 연산부와,
    상기 편차 연산부에서 출력되는 표준 편차가 휘도 신호의 표준 편차이면 최하위 비트를 제로로 만들어 출력하고, 색 신호의 표준 편차이면 그대로 출력하는 편차 제어부와,
    상기 편차 제어부에서 출력되는 휘도 신호와 색 신호의 표준 편차의 범위를 한정하는 편차 조정부와,
    한 클럭 안에 병렬로 입력되는 다수개의 픽셀의 각 차분 신호로부터 예측 오차의 최대치를 구한 후 기 설정된 임계값과 비교하는 비교기와,
    상기 비교기에서 예측 오차의 최대치가 기 설정된 임계값보다 크다고 판별되면 상기 편차 조정부의 표준 편차에 휘도 신호 옵셋 또는 색 신호 옵셋을 더하여 최종 표준 편차로 출력하고, 작다고 판별되면 상기 편차 조정부의 편차를 그대로 최종 표준 편차로 출력하는 최종 편차 출력부로 구성되는 것을 특징으로 하는 동영상 수신 장치.
  9. 제 2 항에 있어서, 상기 라이트 FIFO는
    상기 적응 양자화부에서 양자화된 코드값을 저장하는 코드 FIFO와,
    상기 표준 편차를 저장하는 편차 FIFO와,
    상기 표준 편차 및 양자화 코드를 외부 메모리에 라이트/리드시 비트 정렬하는 배럴 쉬프터로 구성되는 것을 특징으로 하는 동영상 수신 장치.
  10. 제 9 항에 있어서, 상기 라이트 FIFO는
    상기 배럴 쉬프터를 이용하여 데이터 폭이 32비트를 채우고 남는 부분은 다음 블록의 비트들과 결합하여 계속적으로 32비트 폭을 채우고, 이렇게 채워진 데이터들을 외부 메모리에 저장하는 것을 특징으로 하는 동영상 수신 장치.
  11. 제 9 항에 있어서, 상기 외부 메모리는
    동기식 디램(SDRAM) 할당시 위, 아래 슬라이스가 서로 다른 뱅크 어드레스를 가지도록 할당하는 것을 특징으로 하는 동영상 수신 장치.
  12. 제 1 항에 있어서, 상기 메모리 제어부는
    상기 신장부가 메모리로부터 데이터를 읽어올 때 두 슬라이스에 걸쳐 있는 데이터를 메모리의 인터리빙 억세스 방법에 의해 읽어오도록 신호를 발생하는 것을 특징으로 하는 동영상 수신 장치.
KR1019990034694A 1999-08-20 1999-08-20 동영상 수신 장치 KR100304901B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019990034694A KR100304901B1 (ko) 1999-08-20 1999-08-20 동영상 수신 장치
US09/641,921 US6724816B1 (en) 1999-08-20 2000-08-21 Apparatus for receiving motion picture

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990034694A KR100304901B1 (ko) 1999-08-20 1999-08-20 동영상 수신 장치

Publications (2)

Publication Number Publication Date
KR20010018656A true KR20010018656A (ko) 2001-03-15
KR100304901B1 KR100304901B1 (ko) 2001-11-01

Family

ID=19608103

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990034694A KR100304901B1 (ko) 1999-08-20 1999-08-20 동영상 수신 장치

Country Status (2)

Country Link
US (1) US6724816B1 (ko)
KR (1) KR100304901B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030080564A (ko) * 2002-04-09 2003-10-17 엘지전자 주식회사 영상 신호의 신장 장치 및 방법
KR20030080563A (ko) * 2002-04-09 2003-10-17 엘지전자 주식회사 영상신호 신장 방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040037361A1 (en) * 2002-08-22 2004-02-26 Eduardo Gudis Video block error sensing by detection of shapes in output
KR101366241B1 (ko) * 2007-03-28 2014-02-21 삼성전자주식회사 영상 부호화, 복호화 방법 및 장치
US8295359B2 (en) * 2008-03-18 2012-10-23 Auratechnic, Inc. Reducing differentials in visual media
US9672688B2 (en) 2011-10-14 2017-06-06 Bally Gaming, Inc. System and method for cross platform persistent gaming sessions using a mobile device
US9659437B2 (en) 2012-09-28 2017-05-23 Bally Gaming, Inc. System and method for cross platform persistent gaming sessions using a mobile device
US20130093779A1 (en) * 2011-10-14 2013-04-18 Bally Gaming, Inc. Graphics processing unit memory usage reduction
US9767642B2 (en) 2011-10-14 2017-09-19 Bally Gaming, Inc. System and method for cross platform persistent gaming sessions using a mobile device
JP2014143655A (ja) * 2013-01-25 2014-08-07 Fuji Xerox Co Ltd 画像符号化装置及び画像復号化装置並びにプログラム
US9471995B2 (en) * 2014-01-14 2016-10-18 Vixs Systems Inc. Codec engine with inline image processing

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW371340B (en) * 1992-10-09 1999-10-01 Hudson Soft Co Ltd Image processing system
DE69614675T2 (de) * 1996-06-28 2001-12-06 St Microelectronics Srl MPEG-2 Dekodierung mit reduziertem RAM Bedürfnis durch ADPCM Rekomprimierung vor der Speicherung von dekomprimierten MPEG-2 Daten, wahlweise nach einem Unterabtastungsalgorithmus
IT1289206B1 (it) * 1996-09-12 1998-09-29 Sgs Thomson Microelectronics Metodo di ricompressione e decompressione adpcm di un flusso di dati digitali costituente un segnale video digitale e stimatore
US5870087A (en) * 1996-11-13 1999-02-09 Lsi Logic Corporation MPEG decoder system and method having a unified memory for transport decode and system controller functions
US6078620A (en) * 1997-07-31 2000-06-20 Lucent Technologies, Inc. Method and apparatus for performing adaptive differential pulse code modulation
EP0920204B1 (en) * 1997-11-24 2006-02-15 STMicroelectronics S.r.l. MPEG-2 decoder with reduced RAM requisite by recompression using adaptive tree search vector quantization

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030080564A (ko) * 2002-04-09 2003-10-17 엘지전자 주식회사 영상 신호의 신장 장치 및 방법
KR20030080563A (ko) * 2002-04-09 2003-10-17 엘지전자 주식회사 영상신호 신장 방법

Also Published As

Publication number Publication date
US6724816B1 (en) 2004-04-20
KR100304901B1 (ko) 2001-11-01

Similar Documents

Publication Publication Date Title
KR100484333B1 (ko) 영상신호프로세서를위한메모리관리
KR100253931B1 (ko) 디지탈 영상 시퀀스의 디코딩 방법 및 장치
US8121197B2 (en) Video encoding and decoding using parallel processors
KR100566826B1 (ko) 압축된 영상 표시 픽셀 데이터 블록의 데이터 스트림을 처리하기 위한 시스템
US20030138045A1 (en) Video decoder with scalable architecture
US5933195A (en) Method and apparatus memory requirements for storing reference frames in a video decoder
KR100335057B1 (ko) 동영상 수신 장치
EP1079636A1 (en) Method and arrangement for reducing the volume or rate of an encoded digital video bitstream
KR100651316B1 (ko) 정보 스트림 디코더에서 메모리 자원 이용을 증가시키는 방법 및 장치
EP0680217B1 (en) Video signal decoding apparatus capable of reducing blocking effects
KR100304901B1 (ko) 동영상 수신 장치
US6785330B1 (en) Flexible video encoding/decoding method
US20020001416A1 (en) Image processing circuit and method for modifying a pixel value
US8923637B2 (en) Image processing system, image processing method and program
US20060120449A1 (en) Method of coding and decoding moving picture
CN110012292B (zh) 用于压缩视频数据的方法和装置
KR100549208B1 (ko) 메모리 효율적인 이미지 처리 시스템에서의 오버헤드 데이터 프로세서 및 처리 방법
KR100601609B1 (ko) 동화상 복호화 장치 및 그 방법
KR20040069445A (ko) 낮은 메모리 대역폭을 갖는 동영상 압축 장치와 그 방법
US5614953A (en) Image signal decoding apparatus having an encoding error compensation
KR100277953B1 (ko) 디지털 티브이 수신 장치
KR100280498B1 (ko) 엠펙4 디코딩시의 동작화면 보상장치
KR100202957B1 (ko) 양자화기
MXPA99005602A (en) Pixel block compression apparatus in an image processing system

Legal Events

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

Payment date: 20090619

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee