KR100269424B1 - 영상부호화시스템의콘트롤러 - Google Patents

영상부호화시스템의콘트롤러 Download PDF

Info

Publication number
KR100269424B1
KR100269424B1 KR1019960075569A KR19960075569A KR100269424B1 KR 100269424 B1 KR100269424 B1 KR 100269424B1 KR 1019960075569 A KR1019960075569 A KR 1019960075569A KR 19960075569 A KR19960075569 A KR 19960075569A KR 100269424 B1 KR100269424 B1 KR 100269424B1
Authority
KR
South Korea
Prior art keywords
values
input
value
providing
block
Prior art date
Application number
KR1019960075569A
Other languages
English (en)
Other versions
KR970057912A (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 전주범
Publication of KR970057912A publication Critical patent/KR970057912A/ko
Application granted granted Critical
Publication of KR100269424B1 publication Critical patent/KR100269424B1/ko

Links

Classifications

    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/112Selection of coding mode or of prediction mode according to 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/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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
    • 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 영상부호화 시스템의 콘트롤러에 관한 것으로, 본 발명의 콘트롤러는, 영상신호가 다수의 픽쳐그룹들을 포함하며, 그 픽쳐그룹은 세 타입의 프레임들로 분류되고, 각각의 프레임은 다수의 매크로블럭들로 나뉘어지며, 각 매크로블럭은 다수의 블록들을 포함하고, 각 블록은 홀수라인과 짝수라인의 반블럭으로 구성되는데, 그 중 매크로블럭을 기초로하여 영상신호를 부호화하는 영상부호화 시스템에서 인터/인트라 모드, 필드/프레임 이산여현변환 모드와 양자화 파라메타를 결정하는 콘트롤러에 있어서, 현재 부호화된 프레임의 타입과 프레임의 시작 신호에 따라 다수의 제어신호들을 포함하는 제어시퀀스를 발생하는 스테이트 머쉰과; 상기 제어시퀀스에 따라, 현재 부호화된 매크로블록의 순번과 소정의 초기상수값에 기초하여 소정의 방정식들을 계산하므로써, 인터/인트라모드, 필드/프레임 이산여현변환모드와 양자화파라메타를 나타내는, 프레임내의 각 매크로블록에 대한 일련의 제어값들을 발생하는 산술유닛; 및 상기 초기상수값들을 저장하고, 상기 산술유닛으로 초기상수값들을 제공하며, 상기 산술유닛에서 결정된 일련의 제어값들을 저장하고, 영상신호를 부호화에 사용되는 상기 제어값들을 제공하는 메모리 및 입출력 유닛으로 구성되어 있으며, 본 발명은 하드웨어의 효율적인 구현으로 부피를 줄이고, 계산 속도를 향상시킬 수 있다.

Description

영상 부호화 시스템의 콘트롤러(Video signal encoding system controller)
본 발명은 영상부호화 시스템의 콘트롤러에 관한 것으로, 특히 영상부호화를 수행함에 있어서 버퍼가 오버플로우(overflow)나 언더플로우(underflow)가 발생되지 않도록 양자화 파라메타(Quantization parameter)를 결정하여 데이터량을 조절하고, 인터/인트라(inter/intra) 모드와 프레임/필드(frame/field) 이산여현변환(Discrete Cosine Transform: 이하, DCT 라 한다.) 모드를 결정하도록 제어하는 영상 부호화 시스템의 콘트롤러에 관한 것이다.
최근, 통신기술 및 집적회로기술의 발달과 함께 디지털화된 영상신호의 전송이 일반화되고 있다. 일련의 화상 "프레임"을 포함하는 영상신호를 디지털화하여 전송하는 경우에 상당한 양의 데이터가 생성되는데, 특히 고화질 텔레비젼 시스템의 경우에는 상당한 데이터량이 발생된다. 그러나, 통상적인 전송채널에서 이용 가능한 주파수 대역폭이 제한되어 있어서, 상당한 양의 디지털 데이터를 그 대역폭을 통해서 전송하기 위해서는, 원래의 화상을 손상시키지 않고 전송 데이터의 크기를 감소시키는 압축기술을 택하는 것이 필연적이다. 이로 인해, 디지털 영상신호를 압축하는 여러 국제규격이 지난 수십년간 생겨났으며, 지금까지도 계속 발전중에 있다. 그러한 규격중 하나가 바로 국제 표준화 기구(ISO)와 국제 전자기술 위원회(IEC)의 공동 기술 위원회 부서인 MPEG(Moving Picture Expert Group)에 의해 개발된 ISO/IEC MPEG 규격이다. 그 규격은 압축된 비트 스트림(bit stream)의 구문(syntax)과 복호화 방법을 규정하고 있지만, 부호화기에 사용되는 알고리듬은 변형의 여지를 남겨두었다. 본 발명은 그러한 부호화기에서 사용되기 위한 것으로써, 본 발명의 이해를 돕기 위해서, MPEG 영상압축 알고리듬과 관계되는 측면이 설명될 것이다. 그러나, 본 발명은 본 발명과 직접 관련되는 MPEG 알고리듬의 몇가지 특징을 공유하는 다른 영상부호화 알고리듬에도 또한 적용될 수 있다는 것이 중요하다.
MPEG 비디오 시퀀스는 연속하는 픽쳐나 프레임의 집합으로 나누어 질 수 있으며, 각 집합을 픽쳐그룹(GOP: Group Of Picture)라 한다. 각 GOP 는 복수의 픽쳐들을 포함하며, 그 픽쳐들 각각은 다시 슬라이스(slice)로 분할된다. 더 나아가, 각 슬라이스는 다수의 매크로블럭(MB: macroblock)을 이루며, 각 MB 는 4개의 8×8 휘도 블럭(luminance blocks) 과 두개의 8×8 색차 블럭(chrominance blocks)으로 이루어진다. 한 GOP 안에는 세가지 타입의 픽처가 나타날 수 있다. 첫번째 타입의 픽처는 인트라모드 픽쳐 또는 I 픽처로써, 다른 종류의 픽쳐와 무관하게 독립적으로 압축된다. 다른 두 타입의 픽쳐는 예측하여 움직임을 보상하는 픽쳐(predictively motion compensated pictures; P-pictures)와 양방향으로 움직임을 보상하는 픽처(bidirectionally motion compensated pictures; B-pictures)이다.
움직임 보상(기법)은 연속되는 픽쳐들 사이에 존재하는 중복성을 제거하는 압축방법으로서, MPEG 에서는 각 매크로블럭이 기준 프레임에서 일반적으로 같은 위치에 16×16 크기를 가진다. 선행하는 이전 프레임을 기준프레임으로 사용하여 움직임을 예측하여 보상된 프레임이 P 픽쳐다. 이러한 종류의 예측은 순방향 예측과 관련된다. B 픽쳐에서는 순방향 예측 외에도, 역방향 예측이 사용된다. I 픽쳐에서는 모든 매크로블럭이 인트라모드, 즉 움직임 보상없이 그 자체로 부호화된다. P 픽쳐와 B 픽쳐에서는 각 매크로블럭이 움직임 보상을 사용하여 부호화되는 인트라모드나 인터모드로 각각 부호화될 수 있다. 매크로블럭을 부호화하는 두가지 모드 중 하나를 선택하기 위해서, 먼저 다음과 같이 VAR_DIF 와 VAR_ORG 가 계산된다.
여기서, O(i,j)와 S(i,j)는 부호화되는 원래 매크로블럭의 화소값과 통상적인 움직임 보상을 사용하여 재구성된 매크로블럭의 화소값을 각각 나타내며, i 와 j 는 매크로블럭에서 화소의 위치를 나타내며, ave[O(i,j)]는 매크로블럭에서 O(i,j)의 평균값이다. 주목할만한 것은 VAR_DIF 와 VAR_ORG 가 인터모드와 인트라모드를 각각 사용하여 매크로블럭을 부호화하는 중에 얻어진 데이터의 양과 관련있다는 것이다. 도 11 에 나타난 바와 같이, 인터/인트라 모드는 VAR_DIF 와 VAR_ORG 값에 따라 결정된다.
MPEG 및 다른 여러 압축 규격에서는 이산여현변환(DCT: Discrete Cosine Transformation)이 사용된다. DCT의 두 형태, 즉 필드에 기초한 DCT 와 프레임에 기초한 DCT는 한 프레임을 정의하기 위해 비월주사(an interlaced scanning)를 사용하는 MPEG 부호화 과정에서 선택적으로 사용될 수 있다. 한 프레임을 형성하는 수평 (주사)라인은 홀수필드와 짝수필드로 나누어지며, 짝수라인(lines 2,4,6...)은 짝수필드를 홀수라인(lines 1,3,5,...)은 홀수필드를 각각 형성한다. 비월주사된 디지탈 영상신호(a digitized interlaced video signal)는 "필드모드"나 "프레임모드"에 의해 압축될 수 있다. 필드모드에서는 각 프레임이 독립적으로 처리되는 홀수필드와 짝수필드로 분리된다. 프레임 모드에서는 두 필드가 대응하는 짝수와 홀수필드의 선들을 인터리빙(interleaving)하여 하나의 프레임으로 처리된다. 상기 두 모드 중 어떤 선택도 비디오 압축을 만족시키지는 못하는데, 그 이유는 각 프레임이 주어진 영상의 필드에 존재하는 라인의 수를 두 번 가지기 때문에, 샘플들 사이에 더 많은 상관성이 있을 것이며, 따라서 압축가능성이 감소될 것이기 때문이다. 그러나, 세밀한 움직임 영역에서, 프레임 모드는 짝수와 홀수필드를 인터리빙하므로써 발생되는 수직 고주파수 때문에 영상처리가 어려워진다.
DCT 에 있어서, 필드/프레임 DCT모드는 매크로블럭을 기초로 하여 선택된다. DCT 모드를 결정하기 위한 규격중 하나는 다음과 같은 수학식으로 설명된다. (Test Model 4, ISO-IEC/JTC1/SC29/WG11 MPEG93/225 참조 )
VAR_FRM 이 VAR_FLD 보다 큰 매크로블럭에서는 DCT 에 기초한 프레임이 사용되며, 그 반대의 경우도 마찬가지다.
필드나 프레임에 기초한 DCT에 의해 얻어지는 DCT 계수들은 양자화와 관련이 있는데, 양자화는 DCT 계수의 블록을 Wmn×QP 로 나누어서 이루어지며, 여기서 Wmn 은 웨이팅 팩터 매트릭스(weighting factor matrix)를 나타내며, QP 는 양자화 파라메터를 나타낸다. QP 는 한 픽쳐내에서 한 매크로블럭을 다른 매크로블럭으로 바뀌게 할 수 있는데, 이러한 특징 때문에 적응 양자화(adaptive quantization)로 알려져 있으며, 각 프레임의 다른 영역은 다른 양자화 스텝 사이즈로 양자화될 수 있다.
양자화가 된 후에, 양자화된 계수들은 호프만 부호화 (Huffman coding)와 같은 가변 길이 부호화를 사용하여 부호화된다. 가변길이 부호화로 인해 데이터의 양은 비디오 신호 특성에 의존하는 시간에 따라 변한다. 따라서, 주어진 전송율에 맞추어 발생하는 데이타량을 조절하는 전송율 조절(rate control 또는 buffer control)이 필요하다.
이러한 전송율 조절은 주로 버퍼의 충만도(Buffer Fullness : dj) 및 입력 화상의 활성도(Activity : actj)에 따라 양자화기의 스텝 사이즈(step size)를 가변하여 데이타의 발생량을 조절하는 것이다.
즉, 발생한 비트수가 기준치 이상이면 버퍼에 채워지는 데이타량이 증가하므로 양자화 스텝사이즈를 증가시켜 다음에 발생할 비트수를 감소시키고, 발생한 데이타가 기준치 이하이면 그 반대로 양자화 스텝사이즈를 감소시켜 발생 비트수를 증가시켜 전체적으로 버퍼의 데이타가 일정치를 유지하도록 조절한다.
이때, 양자화 스텝 사이즈에 따라서 양자화 에러가 발생하게 되고 이것은 곧 화질에 직접적인 영향을 미치게 되므로 전송율 조절 기법은 영상의 화질을 좌우하는 중요한 요인중의 하나라고 할 수 있다.
전송율 조절 방법에는 영상 신호 압축 방식에 따라 다소 차이는 있으나, MPEG 에서와 같이 목표비트를 설정해 놓고, 실제 발생한 데이타로써 가상버퍼(virtual buffer)의 충만도를 계산하고 이에 따라 양자화 스텝사이즈를 결정하고 계속하여 목표 비트를 갱신(update)시켜 나가는 방법이 있고, Digicipher, DSC-HDTV 등에서 사용하는 것과 같이 매 슬라이스(slice)마다 실제 버퍼(physical buffer)의 상태에 따라 결정되는 스텝 사이즈를 피드백 받아서 다음 슬라이스를 부호화해 나가는 방법이 있다.
ISO(International Organization for Standardization)의 산하 기구인 ISO/IEC JTC1/SC29/WG11 에서 국제 표준화 진행중인 MPEG-2 의 자료(문서번호 AVC-491인 " TEST MODEL 5 ")를 참조하면 전송율 조절은 다음의 3 단계로 이루어진다.
제 1 단계는 목표 비트를 할당하는 단계로서, 화상 부호화 형태인 I 모드, B 모드, P 모드와 비트율에 따라 부호화할 프레임에 대한 목표 비트(TI, TB, TP)가 설정된다. 그리고, 제 2 단계는 전송율을 조절하는 단계로서, 가상 버퍼(virtual buffer)의 충만도에 따라 각 매크로 블럭에 대한 양자화 파라메타의 기준값(Qj: reference value)을 계산한다. 마지막으로 제 3 단계는 적응 양자화(Adaptive Quantization)단계로서, 현재 부호화할 매크로 블럭의 활성도(Actj: activity)를 구하여 정규화된 활성도(N_Actj: normalized activity)를 계산한 후, 이 정규화된 활성도(N_Actj)와 상기 제 2 단계에서 구한 양자화 파라메타의 기준값(Qj) 곱하여 실제로 양자화에 사용할 양자화 파라메타(MquantJ)를 구한다.
상기 3 단계를 좀더 자세히 살펴보면 다음과 같다.
《제 1 단계 : 복잡도를 예측하고(complexity estimation) 목표 비트(target bit)를 할당하는 단계》
I-화상, P-화상 또는 B-화상이 부호화된 후에 I-화상, P-화상 또는 B-화상 각각의 복잡도(X)는 다음과 같은 식으로 주어진다.
Xi= Si* Qi
Xp= Sp* Qp
Xb= Sb* Qb
여기서, Si, Sp, Sb는 각 화상들을 부호화함으로써 발생되는 비트 수를 나타낸 것이고, Qi, Qp, Qb는 모든 매크로블럭을 부호화하는 동안 사용된 실제 양자화 값을 평균냄으로써 얻어진 평균 양자화 파라메타를 의미한다.
부호화 과정의 초기에, 복잡도에 대한 초기 상수값은 다음 수학식에 의해서 결정된다.
Xi= 160 * bit_rate/115
Xp= 60 * bit_rate/115
Xb= 42 * bit_rate/115
이때의 bit_rate 는 비트수/초로 구해진다.
임의의 한 프레임을 부호화할 때 발생할 비트량을 사전에 추정해내는 과정으로 화상군(GOP:group of picture)내에서 화면들간의 관계를 이용한다.
즉, I, P 또는 B-화상의 각 목표 비트는 다음 수학식에 의해 얻어진다.
상기 수학식에 있어서, Kp와 Kb는 미리 설정된 상수로서, Kp= 1.0 으로 하고, Kb= 1.4 로 한다.
그리고, R 은 현재 GOP 에 할당된 여분 비트수와 화상을 부호화한 후 갱신된 여분 비트수로서, 다음 수학식으로 표현할 수 있다.
R = R - Si
R = R - Sp
R = R - Sb
여기서, Si(또는 Sp, Sb)는 부호화된 프레임내에서 발생된 비트수를 나타낸다.픽쳐그룹내에 있는 첫 번째 화상이 부호화되기 이전의 R 값은 다음 수학식과 같다.
R = G + R
G = BIT_RATE * N / P_RATE
여기서, N 은 픽쳐그룹내에 있는 화상의 수를 나타내며, P_RATE 는 미리 설정된 상수이다. 부호화 과정 초기에, R 의 초기 상수값은 0 이다.
상기 수학식 4a 내지 4c 에서, Np와 Nb는 현재 픽쳐그룹내에 남아있는 P 픽쳐와 B 픽쳐의 수를 나타낸다. 따라서, 픽쳐그룹(GOP)의 초기에 Np와 Nb는 픽쳐그룹내에 포함된 P 픽쳐와 B 픽쳐의 전체수를 의미한다.
《제 2 단계 : 전송율(rate control)을 조절하는 단계》
가상 버퍼 개념에 의해서 각 매크로 블럭에서 전송율을 조정하기 위해서 기준 양자화 스텝을 계산하는 과정이다.
버퍼는 해당 화면(picture)의 목표 비트와 현재의 매크로블럭까지의 발생 비트량을 입력받아 버퍼의 충만도(dj: buffer fullness)를 계산하는데, 가상 버퍼의 충만도(the fullness of the virtual buffer)는 I, P 또는 B-화상에 따라 다음 수학식에 의해 구해진다.
d0i = 10 * r / 31
d0p = Kp* d0i
d0b = Kb* d0i
여기서, 수학식 7d 내지 7f 의 d0i, d0p, d0b 는 가상 버퍼의 초기 충만도(initial fullness) 이고, Bj는 비트 발생량이며, MB_cnt는 화상내의 매크로 블럭수이고, dji, djp, djb는 매크로 블럭에서의 충만도이다.
상기 식에서와 같이 현재 화면의 j 번째 매크로 블럭의 충만도는 j-1 번째 매크로 블럭까지 발생한 비트량에서 j-1 번째까지의 목표 비트량을 뺀 값에 현재 화면의 초기 충만도를 더하여 구해진다.
따라서, 현재 매크로 블럭까지의 목표 비트량과 실제 발생 비트량이 일치하면 현재의 충만도는 d0가 되고, 실재 발생량이 목표 비트량을 초과하면 현재의 버퍼 충만도는 d0보다 커지고, 반대로 실제 발생량이 목표 비트량보다 작으면 현재의 버퍼 충만도는 d0보다 작아진다.
이어서, 현재 버퍼에서 출력된 충만도(dJ)로부터 레퍼런스 양자화 파라메타(Qj)는 다음 수학식에 따라 구해진다.
Qj= (dj* 31) / r
이때, 반응 파라메타(r)는 r = 2 * bit-rate/Picture-rate 이다.
《제 3 단계 : 적응 양자화(adaptive qunatization)단계》
각 매크로블럭에서 실제 양자화 과정에서 이용하는 Mquant (modified quantizer)를 계산하는 과정으로 영상내의 활성도(activity)와 제 2 단계에서 구한 레퍼런스 양자화 파라메타(QJ)를 이용하여 Mquant 를 계산한다.
활성도 계산은 인터와 인트라 모드중 어느 모드로 부호화할 것인지를 결정한 후에 이루어진다. 활성도(actj)를 계산하는 식은 다음과 같다.
Pk는 원 영상 8*8 블럭내의 화소치이다.
또한, 상기 <제 10 식>에서 계산된 활성도(actj)를 이용하여 정규화된 활성도(N_actj)를 구하면 다음과 같다.
여기서, avg_act 는 활성도의 평균치를 의미한다.
최종적으로 양자화 파라메타(Mquant)가 정해진다.
상기 Mquantj의 최종값은 1 에서 31 의 범위를 가지며, 양자화 과정에서 사용된다.
결국, 상기 단계에 따라 수행하므로써, 부호화가 수행된 후의 비트수가 미리 설정해놓은 값보다 초과한 경우에 양자화 스텝사이즈는 감소되며, 그 반대의 경우도 만찬가지이다. 즉, 버퍼가 오버플로우나 언더플로우가 발생되지 않도록 한다.
상술한 바와 같이 인터/인트라 모드, 필드/프레임 DCT 모드, 양자화파라메타의 결정등은 일련의 수학적인 과정에 관련되어 있다. 일반적으로 부호화 타입 결정과 버퍼 제어는 많은 계산량을 필요로 하기 때문에 효율적인 하드웨어를 구현하지 않게 되면 하드웨어의 사이즈가 커질 뿐만 아니라 계산 시간도 길어지게 된다.
즉, 종래에는 타입 결정과 버퍼 제어를 따로 따로 계산하였기 때문에 가산기, 감산기, 나눗셈기 및 곱셈기 등이 다량으로 사용되어 하드웨어의 사이즈가 커질 뿐만 아니라 여러개의 칩 세트를 사용할 경우 칩 간의 지연으로 인해 고속 동작이 어렵다는 문제점이 있었다.
따라서, 본 발명은 상기와 같은 종래의 문제점을 해결하기 위한 것으로, 하드웨어 사이즈를 줄이고 계산 속도를 향상시키므로써 효율적으로 양자화 파라메타를 계산하고 인터/인트라 모드와 필드/프레임 이산여현변환 모드를 결정하도록 제어하는 영상부호화 시스템의 콘트롤러를 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 영상부호화 시스템의 콘트롤러는, 영상신호가 다수의 픽쳐그룹들을 포함하며, 그 픽쳐그룹은 세 타입의 프레임들로 분류되고, 그 각각의 프레임은 다수의 매크로블럭들로 나뉘어지며, 각 매크로블럭은 다수의 블록들을 포함하고, 각 블록은 홀수라인의 반블럭과 짝수라인의 반블럭으로 구성되는데, 그 중 매크로블럭을 기초로하여 영상신호를 부호화하는 영상부호화 시스템에서 인터/인트라 모드, 필드/프레임 이산여현변환 모드와 양자화 파라메타를 결정하는 콘트롤러에 있어서, 현재 부호화된 픽쳐의 시작과 픽쳐의 타입을 지시하는 신호에 따라 다수의 제어신호를 포함하는 제어시퀀스를 발생하는 제어수단과; 소정의 제 1 방정식들을 계산해내므로써 일련의 제 1 값들을 제공하는 계산유닛; 상기 제어 시퀀스와 상기 일련의 제 1 값에 따라, 현재 부호화된 순차적인 매크로블럭의 순번과 소정의 초기 상수값들에 기초하여 소정의 제 2 방정식들을 계산하므로써, 인터/인트라 모드, 필드/프레임 이산여현변환 모드와 양자화 파라메타를 나타내는, 픽쳐내의 매크로블록들 각각에 대한 일련의 제어값을 발생하는 처리유닛; 및 상기 초기 상수값을 저장하고, 상기 처리유닛으로 초기 상수값을 제공하며, 상기 처리유닛에서 결정된 상기 일련의 제어값들을 저장하고, 영상신호를 부호화하는데 사용되는 상기 제어값들을 제공하는 메모리 및 입출력 유닛으로 구성된 것을 특징으로 한다.
도 1 은 본 발명의 콘트롤러를 채용한 영상 부호화 시스템을 도시한 구성 블럭도,
도 2 는 본 발명에 따른 콘트롤러의 구조를 설명하기 위한 도면,
도 3 은 도 2 에 도시된 메모리 및 입출력 유닛의 구성 블럭도,
도 4 는 도 2 에 도시된 산술유닛의 구성 블럭도,
도 5 는 도 4 에 도시된 계산유닛의 세부 블럭도,
도 6 은 도 5 에 도시된 원영상 분산값 계산블록의 세부 구성도,
도 7 은 도 5 에 도시된 차분영상 분산값 계산블록의 세부 구성도,
도 8 은 도 5 에 도시된 반블록 누산블록의 세부 구성도,
도 9 는 도 5 에 도시된 프레임분산값 계산블록의 세부 구성도,
도 10 은 도 4 에 도시된 처리유닛의 세부 블록도,
도 11 은 원영상 분산값과 차분영상 분산값을 이용하여 인터 모드 또는 인트라 모드를 결정하기 위한 그래프,
도 12 는 4 개의 프레임 블록을 포함하는 매크로 블록을 나타낸 구조도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
10 : 콘트롤러 20 : 차분펄스 부호변조 블록
25 : 이산여현변환 블록 30 : 양자화블록
35 : 엔트로피 부호화 블록 40 : 역양자화 블록
45 : 역이산여현변환 블록 50 : 움직임보상 블록
60 : 버퍼 110 : 제어유닛
120 : 스테이트 머쉰 130 : 산술유닛
140 : 계산유닛 150 : 메모리 및 입출력유닛
180 : 처리유닛 200 : 원영상 분산값 계산블록
300 : 반블록 누산블록 400 : 프레임 분산값 계산블록
500 : 필드 분산값 계산블록 600 : 차분영상 분산값 계산블록
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
도 1 은 인터/인트라 모드, 필드/프레임 DCT 모드와 양자화 파라메타를 결정하는 본 발명의 콘트롤러(10)가 채용된 일반적인 영상부호화 시스템의 구성 블럭도이다.
우선, 영상신호의 부호화될 현재 프레임 데이터는 차분 펄스부호 변조(Different- ial Pulse Code Modulation: 이하, DPCM 이라 한다.)블록(20)과 움직임보상(MC: Motion Compensation)블록(50)으로 입력된다. 또한, 움직임보상 블록(50)으로부터의 예측된 프레임 데이터도 DPCM 블록(20)으로 입력된다. 실제로, 영상 데이터는 부호화 전과정에 걸쳐 매크로블럭 단위로 제공되고 처리된다. DPCM 블록(20)에서는 부호화모드 즉, 매크로블럭의 인터/인트라 모드에 따라 예측된 프레임 데이터와 현재 프레임 데이터의 차분인 차분 프레임 데이터 또는 현재의 프레임 데이터 자체가 DCT 블록(25; Discrete Cosine Transformation)으로 입력된다. 차분 프레임 데이터 또는 현재의 프레임 데이터는 DCT 블록(25)에서 DCT 변환되고, DCT 변환계수는 양자화(Q: Quantization)블록(30) 으로 입력되어 양자화된다. 그후에 양자화된 계수는 두 경로를 따라 이동하는데, 하나는 엔트로피 부호화블록(35)으로서 여기에서는 양자화된 변환계수를 예를들어, 런-렝쓰 부호화(run-length coding)와 가변길이 부호화(VLC: Variable Length Coding)를 이용하여 부호화를 수행하고, 또 다른 경로는 역양자화 블록(IQ: Inverse Quantization:40)과 역 DCT 블록(ICDT: Inverse-DCT: 45)을 거치면서 양자화된 변환계수가 역양자화된 후, 역DCT 가 수행되어 복원된 프레임 데이터로 변환된다. 복원된 프레임 데이터는 움직임보상 블록(50)으로 입력되어 공지된 움직임 예측과 움직임 보상 기법을 이용하여 예측된 프레임 데이터를 얻는다. 상기 엔트로피 부호화블록(35)으로부터의 부호화된 데이터는 버퍼(60)에 입력되어 복호화 시스템으로 전송된다.
한편, 본 발명의 콘트롤러(10)는 DPCM 블록(20)에서 제공된 차분 프레임 데이터 또는 현재 프레임 데이터와 버퍼(60)로부터 제공되는 버퍼(60)의 충만도를 나타내는 신호를 입력받는다. 본 발명의 콘트롤러(10)는 인터/인트라 모드, 필드/프레임 DCT 모드, 양자화 파라메타를 매크로블럭 단위로 결정한 후, 인터/인트라 모드와 필드/프레임 DCT 모드 결정 결과를 DPCM 블록(20)에 제공하고, 양자화 파라메타를 양자화블럭(30)에 제공하는 역할을 한다. 인터/인트라 모드 신호에 따라, DPCM 블록(20)은 차분 프레임 데이터와 현재 프레임 데이터(인터 모드) 또는 현재 프레임 데이터 그 자체(인트라 모드)를 DCT 블록(25)에 제공하며, 차분 프레임 데이터나 현재 프레임 데이터는 8*8 블록 단위로 제공되어 8*8 DCT 가 수행된다. DPCM 블록(20)으로부터 DCT 블록(25)에 제공되는 블록의 형태는 필드/프레임 DCT 모드 신호에 따라 결정된다. 프레임 DCT 모드의 경우에는 DPCM 블록(20)은 프레임으로 구성된 블록을 제공하고, 필드 DCT 모드의 경우에는 필드로 구성된 블록을 제공하므로써, DCT 블록(25)은 그 모드에 따라 필드 또는 프레임 단위의 DCT 를 수행하게 된다. 양자화 블록(30)에 제공된 양자화 파라메타는 양자화의 정도를 조절하는데 사용되고, 따라서 버퍼(60)의 충만도를 조절하게 된다.
도 2 는 도 1 에 도시된 콘트롤러(10)의 세부 블록도로서, 본 발명의 콘트롤러(10)에서는 세 타입의 결정에 관련된 모든 산술 계산을 스테이트 머쉰(120)과 메모리 및 입출력 유닛(140)과 함께 산술유닛(130)에서 수행한다. 도 2 에 도시된 입력신호들로는 PIC_SYNC, MBS, CLK, RESET, PIC_TYPE, BUF_FULL 및 도 1 에 도시된 DPCM 블록(20)으로부터의 차분 프레임 데이터 또는 현재 프레임 데이터 등이다.
입력신호중 제어유닛(110)으로 입력되는 PIC_SYNC 와 MBS 는 각각 프레임의 시작과 매크로블록의 시작을 나타내고, CLK 과 RESET 은 시스템 제어신호를 나타낸다. 스테이트 머쉰(120)으로 입력되는 PIC_TYPE 은 세 타입의 픽쳐(I, P, B)중 현재 처리되는 프레임이 어느 타입에 속하는 지를 알려주는 것이다. 상기 PIC_SYNC, MBS 과 PIC_TYPE 은 입력된 비디오스트림으로부터 얻어진다. 그리고, 버퍼의 상태를 나타내는 BUF_FULL 은 도 1 에 도시된 버퍼(60)로부터 산술유닛(130)으로 입력된다.
세 가지의 결정을 하는데에는 당양한 초기 상수값들이 필요한데, 이러한 값들은 시스템 설계에 따라 미리 설정되고, 본 발명의 콘트롤러(10)에 입력된다. 좀 더 상세하게는 콘트롤러(10)가 계산을 수행하기 전에 L90 을 거쳐 메모리 및 입출력 유닛(150)으로 입력된다. 앞서 살펴본 방정식들에 있어서, 초기 상수값들로는 부호화 과정 초기의 Xi, Xp, Xb, R, Nb, Np값과 Kp, Kb값 등이다.
입력신호에 따라 제어 유닛(110)은 제어신호를 생성하여 이를 스테이트 머쉰(120)에 제공한다. 우선, 제어 유닛(110)은 콘트롤러(10: 도 1 참조)에서 픽쳐 단위로 수행되는 지, 매크로블록 단위로 수행되는 지를 나타내는 PRCS_PIC_MB 를 제공하는데, 이때 픽쳐단위로 수행되는 경우로는 수학식 3a 내지 수학식 3c, 수학식 4a 내지 수학식 4c, 수학식 5 등이고, 매크로블록 단위로 수행되는 경우로는 수학식 1a, 수학식 1b, 수학식 2a, 수학식 2b, 수학식 7a 내지 수학식 7c, 수학식 8 내지 수학식 13 등이다. 그 다음에 제어유닛(110)은 현재 처리되고 있는 매크로블럭을 나타내는 MB_ NUM 을 생성하여 산술유닛(130)에 제공한다.
입력신호 즉, PIC_SYNC, PRCS_PIC_MB 에 따라 스테이트 머쉰(120)은 일련의 제어시퀀스를 생성하여 산술유닛(130)과 메모리 및 입출력 유닛(150)에 제공하며, 연산 유닛(130)이 상기 수학식중 하나를 수행하도록 한다. 스테이트 머쉰(120)은 산술유닛(130)이 어떤 수학식을 수행하는 가에 따라 이미 설정되어 있는 제어시퀀스를 생성하도록 프로그램되어 있다. 메모리 및 입출력 유닛(150)은 초기 상수값을 호스트 프로세서(도시되지 않음)로부터 L30 을 통해 입력받아 저장하고, 산술유닛(130)으로부터의 계산결과를 L50 을 통해 입력받아서 저장한다. 스테이트 머쉰(120)으로부터의 L80 상의 제어시퀀스에 따라 메모리 및 입출력 유닛(150)은 초기 상수값과 계산결과에 포함된 임시값들을 L60 상에 제공하도록 제어된다. 이때, 임시값들은 상기 여러 수학식의 계산과정에서 얻어지는 값이고, 상기 여러 수학식을 계산하므로써 얻어지며 또한, 다른 수학식들을 계산할 때 요구되어지는 값이고, 이전 매크로블럭(또는 픽쳐)의 값들을 이용하므로써 각 매크로블럭(또는 픽쳐)당 갱신되는 값이다. 즉, 최종값을 제공하는 과정에서 산술유닛(130)으로부터 제공되는 모든 값을 말한다. 이미 살펴본 수학식들에 있어서, 부호화가 진행되는 동안 Ti, Tp, Tb, R, di j, dp j, db j의 값등은 임시값들의 예이다. 메모리 및 입출력 유닛(150)은 최종 계산결과 즉, 인터/인트라 모드, 필드/프레임 DCT 모드, 양자화 파라메타를 도 1 에 도시된 DPCM 블록(20)과 양자화 블록(30)으로 출력하도록 제어된다. 산술유닛(130)과 메모리 및 입출력 유닛(150)에 대한 동작은 각각 도 3 과 도 4 내지 도 12 를 참조하여 상세히 설명하기로 한다.
도 3 은 도 2 에 도시된 메모리 및 입출력 유닛(150)의 세부 블록도로서, HOST_DATA 는 산술유닛(130)에서 수학식들을 수행할 때 사용되는 초기 상수값들을 나타낸다. HOST_DATA 로서 제공되는 초기 상수값의 예로는 부호화과정 초기에 수학식 4a 내지 4c 에서의 BIT_RATE, PICTURE_RATE 와 Kp, Kb, Xi, Xp, Xb, R, Np, Nb, di 0, dp 0, db 0등의 초기 상수값들이다. 이러한 값들은 시스템 설계에 따라 이미 설정되어 있는 다양한 초기 상수값을 저장하고 제공하는 역할을 하는 호스트 프로세서(도시되지 않음)로부터 제공된다. 영상시퀀스를 부호화하는 초기에 요구되는 모든 상수는 L90 상으로 멀티플렉서(166)를 거쳐 램(160)에 저장된다. 산술유닛(130)에서 상기 수학식들을 수행함에 있어서, 상기 초기 상수값들을 필요로 하는 경우 그 값들은 램(160)으로부터 L60 을 거쳐 산술유닛(130)으로 제공된다.
산술유닛(130)에서 얻은 계산결과도 역시 L50 상에 멀티플렉서(166)를 통해 입력되어 램(160)에 저장된다. 이러한 계산결과의 예로는 R, Np, Nb, Ti, Tp, Tb등이 있다. R 은 수학식 5 에 의해 결정되는 현재 GOP(Group Of Picture)에 할당된 비트중 남아 있는 양으로서, 램(160)에 저장되고, 한 프레임이 부호화된 후에 산술유닛(130)에서 갱신된다. Np와 Nb는 현재 GOP 에 남아있는 P 픽쳐와 B 픽쳐 각각의 수로서, 수학식 4a 내지 4c 에 따라 목표비트 Ti, Tp, Tb를 계산하는데 사용된다. 게다가, 수학식 1a, 1b 와 9 내지 11 의 계산과정과 수학식 2a, 2b 의 계산결과에서 얻어진 다수의 임시값들은 또한, 램(160)으로 보내져 저장되는데, 이는 도 10 을 참조하여 설명된다.
ST_WR_ADRS 와 HOST_WR_ADRS 는 각각 산술유닛(130)으로부터 입력되는 데이터와 HOST_DATA 를 램(160)에 저장하기 위해 사용되는 어드레스 신호이다. ST_WR_EN 과 HOST_WR_EN 은 램(160)에 데이터를 저장할 때 액티브 상태가 되는 신호이다.
초기 상수값이 램(160)에 입력되는 동안, 멀티플렉서들(162, 164, 166)은 각각 HOST_WR_ADRS, HOST_WR_EN, HOST_DATA 를 선택하는데, HOST_WR_ADRS 는 초기값이 저장될 램(160)의 어드레스를 나타내며, HOST_WR_EN 는 액티브상태가 된다. 마찬가지로, 산술유닛(130)으로부터의 계산결과가 램(160)에 입력되는 동안, 멀티플렉서들(162, 164, 166)은 각각 ST_WR_ADRS, ST_WR_EN, L50 상의 데이터를 선택하는데, ST_WR_ADRS 는 계산 결과값이 저장될 램(160)의 어드레스를 나타내고, ST_WR_EN 은 액티브 상태가 된다.
RD_ADRS 는 램(160)에 저장된 데이터를 읽어서 그 데이터를 산술유닛(130) 또는 도 1 에 도시된 DPCM 블록(20)과 양자화블록(30)으로 제공하기 위한 어드레스 신호이다. 특히, 초기 상수값이나 산술유닛(130)에서 결정된 임시값은 램(160)으로부터 읽혀져 L60 을 거쳐 산술유닛(130)에 입력된다. 한편, 세 타입의 결정에 대한 최종결과 즉, 인터/인트라 모드, 필드/프레임 DCT 모드와 양자화 파라메타 결정 결과인 Mquantm은 도 1 에 도시된 DPCM 블록(20)과 양자화블록(30)으로 제공된다. 상술한 ST_WR_ADRS, HOST_WR_ADRS, RD_ADRS, ST_WR_EN 과 HOST_WR_EN 은 스테이트 머쉰(120)으로부터 L80 을 거쳐 제공되는 제어시퀀스의 부분이다.
도 4 는 도 2 에 도시된 산술유닛(130)의 구성 블록도로서, 상기 산술유닛(130)은 계산유닛(140)과 처리유닛(180)을 포함한다.
계산유닛(140)은 DPCM 블록(20: 도 1 참조)으로부터 제공되는 차분 프레임 데이터와 현재 프레임 데이터를 입력받고, 처리유닛(180)에 일련의 임시값들을 제공한다. 차분 프레임 데이터와 현재 프레임 데이터는 쌍으로 제공되는데, 즉 같은 라인에 존재하는 두 개의 인접 화소는 같은 클럭 사이클동안 제공된다. 현재 프레임 데이터의 화소값을 나타내는 O(2i,j)와 O(2i+1,j), 그리고 차분 프레임 데이터의 화소값을 나타내는 D(2i,j)와 D(2i+1,j)는 같은 쌍이고, 상기 i 와 j 는 프레임내의 화소위치를 나타내는 정수이다. 계산유닛(140)에서 처리유닛(180)으로 제공되는 일련의 제 1 임시값들은 도 5 내지 도 10 을 참조하여 설명하기로 한다.
계산유닛(140)에서 제공되는 일련의 제 1 임시값 뿐만 아니라 NB_NUM, BUF_FULL 그리고 제어시퀀스는 각각 제어유닛(110: 도 2 참조), 버퍼(60: 도 1 참조) 그리고 스테이트 머쉰(120: 도 2 참조)으로부터 처리유닛(180)으로 제공된다. 처리유닛(1800은 계산결과와 초기 상수와 같은 다양한 데이터를 입력받고, 출력하기 위해서 메모리 및 입출력 유닛(150)와 연결된다.
도 5 는 도 4 에 도시된 계산유닛(140)의 세부 블록도로서, 이 계산유닛(140)에서는 일련의 제 1 임시값들을 제공한다. 일련의 제 1 임시값들은 화소값과 관련된 값들을 즉, 즉 반블록, 한 개의 블록 또는 매크로블럭을 위한 한 화소값의 제곱값 또는 두 화소값들의 차분값에 대한 제곱값들을 합하므로써 얻어지며, 상기 반블록은 도 12 에 도시된 4 개의 홀수라인 또는 4 개의 짝수라인을 말한다.
도 12 는 4 개의 프레임 블록을 포함하는 매크로 블록을 나타낸 구조도로서, 각 블록은 2 개의 반블록을 포함하고, B1, B2, B3, B4 는 각각 HB1 와 HB2, HB3 와 HB4, HB5 와 HB6, HB7 과 HB8을 포함하고, 각 홀수번째 반블록(HB1,HB3,HB5,HB7)은 홀수 라인(라인 1, 3, 5, 7)을 포함하고, 각 짝수번째 반블록(HB2,HB4,HB6,HB8)은 짝수 라인(라인 2, 4, 6, 8)을 포함한다. 매크로블록은 4 개의 필드로 구성된 블록을 포함하도록 구성할 수 있는데(B5 에서 B8 은 도시되지 않음), B5, B6, B7, B8 은 각각 HB1 와 HB5, HB2 와 HB6, HB3 와 HB7, HB4 과 HB8 을 포함한다.
이어서, 도 5 를 참조하면, 원영상 분산값 계산블록(200)과 반블록 누산블록(300)은 반블록단위로 임시값을 제공하며, 차분영상 분산값 계산블록(600)은 블록단위로 임시값을 제공하고, 프레임분산값 계산블록(400) 및 필드분산값 계산블록(500)은 매크로블록단위로 임시값을 제공한다.
원영상 분산값 계산블록(200)은 var_org(k)를 제공하는데, 여기서 k 는 매크로블록에 포함된 반블럭을 나타내는 인덱스로서 1 에서 MK 사이의 범위를 가지며, MK 는 매크로블록에 포함된 반블록의 수로서 예를들면 8 이다. var_org(k)은 현재 프레임 데이터의 매크로블록에 포함된 k 번째 반블록내에 있는 32개 화소값의 제곱의 합이다. 차분영상 분산값 계산블록(600)은 var_dif(l)을 제공하는데, 이 값은 차분 프레임 데이터의 매크로블록에 포함된 l 번째 블록내에 있는 64 개 화소값의 제곱의 합으로서, l 은 매크로블록에 포함된 프레임으로 구성된 블록을 나타내는 인덱스이고, 그 범위는 1 에서 4 사이이다.
반블록 분산값 계산블록(300)은 sum(k)을 처리유닛(180: 도 4 참조)에 제공하는데, 이 값은 현재 프레임 데이터의 각 반블록에 포함된 32 개 화소값들의 합이다.
상기 var_dif(l)은 수학식 1a 를 연산하는데 이용되고, var_org(k)와 sum(k)은 수학식 1b 와 수학식 10 을 연산하는데 이용된다. 이런 값들을 이용하여 수학식 1a, 1b, 10 은 다음과 같이 변형된다.
[수학식 1a']
[수학식 1b']
[수학식 10']
이때, l 은 프레임으로 구성된 블록과 필드로 구성된 블록중 하나를 나타내는 인덱스로서, 그 범위는 1 과 ML 사이의 값을 갖고, ML 은 한 매크로블록에 포함된 블록(프레임으로 구성된 블록과 필드로 구성된 블록을 포함하는)의 수를 나타내며, 그 예로는 8 이다. 그리고, 수학식 10' 에서 합산은 l 번째 블록에 포함된 반블록에 대해 수행된다. 프레임으로 구성된 블록(B1)에 대한 수학식 10' 은 var_1= {var_org(1)+var_org(2)-sum(1)-sum(2)}/64 으로 나타내고, 필드로 구성된 블록(B5)에 대한 수학식 10' 은 var_5 = {var_org(1)+var_org(5)-sum(1)-sum(5)}/64 으로 나타낸다.
프레임 및 필드 분산값 계산블록(400,500)은 VAR_FRM 과 VAR_FLD 를 수학식 2a 와 2b 에 따라 제공한다. var_dif(1), var_org(k), sum(k), VAR_FRM 과 VAR_FLD 를 포함하는 일련의 제 1 임시값들은 처리유닛(180)으로 제공되고, 인터/인트라 모드, 필드/프레임 DCT 모드, 양자화 파라메타 결정에 이용된다.
도 6 은 도 5 에 도시된 원영상 분산값 계산블록(200)의 세부 구성도로서, 2 개의 제곱기(220a, 220b), 가산기(230) 및 반블록 누산블록(205)를 포함한다. 현재 프레임 데이터 {O(2i,j),O(2i+1,j)} 는 프레임으로 구성된 블록의 형태로 원영상 분산값 계산블록(200)에 제공되므로, 프레임으로 구성된 하나의 블록에 포함된 두 반블록의 var_org(k)는 해당 프레임으로 구성된 블록의 화소값들이 입력된 후에 제공된다.
HB1 과 HB2 를 포함하는 블록 B1 에 대해 원영상 분산값 계산블록(200)의 상세한 동작을 살펴보면 다음과 같다. var_org(1)과 var_org(2)를 계산하기에 앞서 지연기(270a,270b)와 카운터(290)의 내용은 "0" 으로 초기화된다. 우선, O(1,1)과 O(2,1)은 제곱기(220a,220b)들에서 제곱이 수행되고, 그 구해진 값들은 가산기(230)에서 가산된다. 그 제곱값들의 합인 O(1,1)2+O(2,1)2은 지연기(270a)로부터 멀티플렉서(280)을 거쳐 제공된 0 과 누산기(240)에서 가산되는데, 그 결과는 디멀티플렉서(260)를 거쳐 지연기(270a)에 제공된다. 마찬가지로 O(3,1)과 O(4,1)은 제곱되고 가산되어 지연기(270a)에서 제공되는 O(1,1)2+O(2,1)2에 가산된다. 블록의 첫 번째 라인이 처리되는 동안에는 하나의 지연기(270a)만 이용된다. 즉, 카운터(290)는 디멀티플렉서(260)의 입력을 지연기(270a)로 제공하도록 제어하고, 멀티플렉서(280)로 하여금 지연기(270a)로부터 제공된 입력을 선택하도록 제어한다. 이와 같은 방법으로 첫 번째 라인에 해당하는 8 개의 화소값에 대한 제곱의 합이 지연기(270a)에 저장되도록 한다.
마찬가지로, 두 번째 라인에 해당하는 8 개의 화소값에 대한 제곱의 합이 지연기(270b)에 저장되는데, 이를 위해 블록의 두 번째 라인이 처리되는 동안, 카운터(290)는 디멀티플렉서(260)와 멀티플렉서(280)를 제어하여 지연기(270b)가 이용되도록 한다. 그 후, 홀수 라인과 짝수 라인에 포함된 화소값들에 대한 제곱의 합은 각각 지연기(270a,270b)의 값에 합해져서, var_org(1)과 var_org(2)를 메모리(250)에 제공한다. 상술하면, O(7,7)2+O(8,7)2가 지연기(270a)내의 값에 더해진 후, var_org(1)이 누산기(240)에서 메모리(250)로 제공되고, O(7,8)2+O(8,8)2가 지연기(270b)의 값에 더해진 후, var_org(2)이 누산기(240)에서 메모리(250)로 제공된다. 메모리(250)는 var_org(1)과 var_org(2)를 처리유닛(180)에 제공한다.
도 7 은 도 5 에 도시된 차분영상 분산값 계산블록(600)의 세부 구성도로서, 이 블록(600)에서는 var_dif(l)을 제공하는데, 이때 l 은 매크로블록에 포함된 프레임으로 구성된 블록을 나타내는 인덱스이다. 원영상 분산값 계산블록(200)과 달리 차분영상 분산값 계산블록(600)은 프레임으로 구성된 블록내에 있는 모든 화소값들의 제곱에 대한 합을 제공한다. 한 블록의 화소가 처리되기 이전에 지연기(650)와 카운터(670)의 값을 0 으로 초기화한다. 차분 데이터 D(1,1) 과 D(2,1)는 절대값 수행기(610a,610b)에 입력되어 부호가 제거된다. 이렇게 하므로써, 두 개의 제곱기(620a, 620b)는 부호를 다룰 필요가 없으므로 간단하게 구현할 수 있다. 두 개의 제곱기(620a,620b)로부터 제공된 D(1,1)2과 D(2,1)2는 가산기(630)에서 가산되고, 이어서 누산기(640)에서 지연기(650)로부터 제공된 0 과 가산되며, 그 결과는 지연기(650)에 다시 제공된다. 이어서, D(3,1)2과 D(4,1)2는 가산기(630)에서 가산되고, 누산기(640)에서 지연기(650)로부터 제공되는 D(1,1)2+ D(2,1)2과 가산되며, 그 결과는 지연기(650)에 다시 제공된다. 블록내의 화소값에 대한 제곱값이 모두 가산된 후에는 예를 들어, 32 클럭 사이클이 지난 후에 메모리(660)에 저장된 var_dif(l)은 카운터(670)로부터의 제어신호에 따라 처리유닛(180)에 제공된다.
도 8 은 도 5 에 도시된 반블록 누산블록(300)의 세부 구성도로서, 반블록 누산블록(300)은 sum(k) 즉, k 번째 반블록의 화소값들의 합을 제공한다. 도 8 은 가산기(330)와 도 6 에 도시된 것과 동일한 반블록 누산블록(305)을 포함한다. 따라서, 반블록 누산블록(300)의 동작은 화소값들의 제곱값 대신에 화소값들을 누산한 것을 제외하고는 원영상 분산값 계산블럭(200)의 반블록 누산블록(205)과 동일하다. 따라서, 프레임으로 구성된 블록 l 즉, 1, 2, 3, 4 의 화소값들을 받을 때, 거기에 포함된 두 개의 반블록들의 화소값에 대한 합 즉, sum(k)와 sum(k+1)는 메모리(350)에서 처리유닛(180)으로 제공된다. 이때, k 는 (2l-1) 이다.
도 9 는 도 5 에 도시된 프레임 분산값 계산블록(400)의 세부 구성도로서, 프레임 분산값 계산블록(400)은 VAR_FRM 을 제공하며, 두 개의 지연기(410a, 410b)와 두 개의 버퍼(412a,412b), 제어기(413), 두 개의 감산기(416a, 416b)와 제곱 및 누산블록(405)를 포함한다. 여기서, 상기 제곱 및 누산블록(405)의 구조는 도 7 에 도시된 차분영상 분산값 계산블록(600)과 같고 동작도 유사하다. 지연기(410a,410b)는 한 라인만큼 예를 들어, 8 클럭 지연시키는 라인 지연소자이다. 버퍼(412a,412b) 각각은 블록의 한 라인 에를 들어, 8 개의 화소값을 저장할 수 있다. 수학식 2a 에서 나타낸 것처럼 VAR_FRM 는 매크로블록 단위로 결정된다. 그러나, 현재 프레임 데이터는 블록단위로 결정된다. 따라서, 수학식 1a 는 입력데이터 포맷에 맞추기 위해 다음 6 개의 종속식들로 나뉘어진다.
[수학식 2a-1]
[수학식 2a-2]
[수학식 2a-3]
[수학식 2a-4]
[수학식 2a-5]
[수학식 2a-6]
상기 수학식들에서, OB1(i,j),B2(i,j), OB3(i,j),B4(i,j)는 프레임으로 구성된 블록 B1, B2, B3, B4 내의 각 화소값들이다.
B1에 포함된 화소값들은 지연기(410a,410b)에 입력되어 예를 들어, 8 블록 사이클동안 지연된다. 따라서, O(1,1)과 O(2,1)이 멀티플렉서(414a,414b)를 통해 감산기(416a)에 입력될 때, O(1,2)과 O(2,2)도 감산기(416a)에 입력되어, 그 차이가 절대값수행기(418a)에 제공된다. 이와 같이, B1의 제 2 라인 내지 제 8 라인이 프레임 분산값 계산블록(400)에 입력되는 동안, B1의 연속한 두 라인의 차가 제곱 및 누산블록(405)에서 누산되어, 수학식 2a-1 dp 의한 VAR_FRM(1)을 제공한다. 이어서, B2의 제 1 라인이 입력되는 동안, B1의 마지막 라인이 제어기(413)에서 제공되는 제어신호에 따라 버퍼(412a,412b)에 저장된다. 즉, OB1(1,8), OB1(3,8), OB1(5,8), OB1(7,8)은 버퍼(412a)에 저장되고, OB1(2,8), OB1(4,8), OB1(6,8), OB1(8,8)은 버퍼(412b)에 저장된다. 연이어, B2의 제 2 라인 내지 제 8 라인이 입력되는 동안 프레임 분산값 계산블록(400)은 수학식 2a-2 에 의해 VAR_FRM(2)을 계산한다. B1 또는 B2의 제 1 라인이 프레임 분산값 계산블록(400)에 입력되는 동안, 제곱과 누산연산은 수행되지 않는다는 점에 주목하여야 한다.
이어서, B3의 제 1 라인이 입력되는 동안 B2 의 마지막 라인이 제어기(413)에서 제공되는 제어신호에 따라 버퍼(412a,412b)에 저장된다. 즉, OB2(1,8), OB2(3,8), OB2(5,8), OB2(7,8)은 버퍼(412a)에 저장되고, OB2(2,8), OB2(4,8), OB2(6,8), OB2(8,8)은 버퍼(412b)에 저장된다. 동시에 B1 의 마지막 라인과 B3의 제 1 라인의 차가 제곱되고 가산되어 VAR_FRM(3)을 제공한다. 이를 위해 OB3(i,1)이 감산기(416a,416b)에 제공되는 동안, 멀티플렉서(414a,414b)는 버퍼(412a,412b)에서 제공되는 OB1(i,8)을 제어기(413)에서 제공되는 제어신호에 따라 감산기(416a,416b)에 제공한다.
마찬가지로, B3 의 제 2 라인 내지 제 8 라인이 입력되는 동안, 프레임 분산값 계산블록(400)은 VAR_FRM(4)을 계산하고, B4 의 제 1 라인이 입력되는 동안 B2의 마지막라인과 B4 의 제 1 라인의 차가 제곱되고 가산되어 VAR_FRM(5)을 제공하며, B4의 제 2라인 내지 제 8 라인이 입력되는 동안 프레임 분산값 계산블록(400)은 VAR_FRM(6)을 계산한다.
위에 설명된 과정을 가능하게 하기 위해, 제어기(413)은 다양한 제어신호를 발생한다. 예를 들어, 제어기(413)은 쓰기 어드레스 신호와 읽기 어드레스 신호, 쓰기 인에이블신호를 버퍼(412a,412b)에 제공하고, 멀티플렉서(414a,414b)에 선택신호를 제공하여 멀티플렉서(414a,414b)가 VAR_FRM(3)과 VAR_FRM(5)를 계산하는 동안은 멀티플렉서(414a,414b)가 버퍼(412a,412b)로부터 제공되는 입력을 선택하고 VAR_FRM(1), VAR_FRM(2), VAR_FRM(4)와 VAR_FRM(6)을 계산하는 동안은 멀티플렉서(414a,414b)가 지연기(410a,410b)로부터 제공되는 입력을 선택하도록 한다. 필드 분산값 계산블록(500)의 세부 블록도(도시하지 않음)는 프레임 분산값 계산블록(400)와 유사하며, 그 동작도 유사하다. 그러나, 필드 분산값 계산블록(500)에 포함된 지연기들은 입력을 한 블록의 두 라인만큼, 예를 들어 16 클럭 사이클만큼, 지연시키는 라인 지연이고, 각 버퍼는 블록의 2 라인, 예를 들어 16 화소값들을 저장할 수 있다.
도 10 은 도 4 에 도시된 처리유닛(180)의 세부 구성도로서, MB_NUM, BUF_FULL은 각각 제어유닛(110: 도 2 참조)과 버퍼(60: 도 1 참조)로부터 멀티플렉서(182a)로 입력된다. 계산유닛(140)으로부터 제공된 일련의 제 1 임시값들도 멀티플렉서(182a)에 입력된다. 전술한 바와 같이, 초기 상수값과 임시값은 메모리 및 입출력유닛(150)으로부터[상세하게는 램(160)] L60 을 통해 제공된다.
FR_EXT_SEL, REG_EN_X, REG_EN_Y, CIN, OPERATION_SEL, FEED_BACK_SEL, DIV_START, QUOT_EN, TO_RAM_SEL, WINDOW_PNT, FR_RAM_PNT 등은 도 2 에 도시된 스테이트 머쉰(120)으로부터 제공되는 제어시퀀스에 포함된 제어신호들이다. 도 4 에 도시된 처리유닛(180)의 구성요소들은 이 제어시퀀스에 따라 산술작업을 수행하도록 제어된다. 제어신호의 기능을 설명하기로 한다.
(1) FR_RAM_PNT (또는 WIN_PNT)
FR_RAM_PNT (또는 WIN_PNT)는 배럴쉬프터(181 또는 186)로 데이터가 입력될 때 유효하다. FR_RAM_PNT(또는 WIN_PNT)의 값은 배럴쉬프터(181 또는 186)에서 입력테이터가 몇번 쉬프트될 지를 나타낸다. 예를 들어 FR_RAM_PNT가 2 이면 배럴쉬프터(181)의 출력은 입력의 4 배이다.
(2) FR_EXT_SEL (또는 FB_SEL)
FR_EXT_SEL (또는 FB_SEL)는 멀티플렉서(182a 또는 182b)로의 입력중 어느것이 선택되어 X 레지스터(183a) 또는 Y 레지스터(183b)에 제공될 지 나타낸다.
(3) REG_EN_X (또는 REG_EN_Y)
REG_EN_X (또는 REG_EN_Y)는 데이터가 X 레지스터(183a) 또는 Y 레지스터(183b)에 저장될 때 유효한 상태에 있게 된다.
(4) CIN, DIV_START, QUOT_EN
CIN, DIV_START, QUOT_EN 은 계산블록(184)을 제어하기 위한 신호이다.
상기 CIN 은 덧셈기(184a)가 X 레지스터(183a)와 Y 레지스터(183b)의 계산결과를 제공할지 여기에 1 을 더 합할 지를 나타낸다.
상기 DIV_START 는 나눗셈 연산의 시작을 나눗셈기(184d)에 알린다.
상기 QUOT_EN 는 나눗셈의 결과 즉, 몫이 언제 나눗셈기(184d)로부터 출력되는지를 나타내며, 이 신호는 나눗셈 연산의 시작으로부터 나눗셈기(184d)의 지연만큼 지난 후에 인에이블되어야 한다.
계산블록(184)에 포함된 다른 블록 즉, 덧셈기(184a), 뺄셈기(184b), 곱셈기(184c)에 대해서는 시작신호가 필요하지 않다. X 레지스터(183a) 그리고/또는 Y 레지스터(183b)로부터 데이터를 입력받는 순간, 덧셈기(184a), 뺄셈기(184b), 곱셈기(184c)는 시작신호를 기다리지 않고 해당 동작을 수행한다. 덧셈기(184a), 뺄셈기(184b), 곱셈기(184c)에 대해서는 QUOT_EN 에 해당하는 신호도 사용되지 않는다. 계산을 마치면 덧셈기(184a), 뺄셈기(184b), 곱셈기(184c)는 그 결과를 곧 출력한다. 덧셈기와 뺄셈기는 지연없이 결과를 출력할 수 있고 곱셈기와 나눗셈기는 미리 설정된 시간을 지연한 후에 결과를 출력할 수 있다.
(5) OP_SEL
OP_SEL 는 계산블록(184)에서 얻은 연산결과중 하나를 멀티플렉서(185)에서 선택하도록 제어한다. 계산블록(184)은 뎃셈, 뺄셈, 곱셈, 나눗셈을 각각 해당 블록 즉 덧셈기(184a), 뺄셈기(184b), 곱셈기(184c), 나눗셈기(184d)를 이용하여 수행한다. 이 네 개의 연산이외에도 계산블록(184)은 멀티플렉서(185)와 함께 두 개의 데이터 즉 X 레지스터(183a), Y 레지스터(183b)로부터의 A, B 를 비교하는 역할을 한다. 비교는 한 데이터(B)를 다른 데이터(A)로부터 빼서 감산결과의 부호에 따라 A 또는 B를 선택하는 것이다. 도 4에 도시된 바와 같이, 뺄셈기(184b)로부터의 출력의 MSB 또는 부호 비트가 OP_SEL의 한 비트를 형성하고 있어서 선택결과에 영향을 주게 된다. 예를 들어 부호가 '+'인 경우 멀티플렉서(185)의 출력으로 A 가 선택되고 반대의 경우 에는 B 가 선택되는 것이다.
(6) TO_RAM_SEL
TO_RAM_SEL 는 처리유닛(180)으로부터의 데이터가 램(160)에 저장될 때 유효하다. 또한, 멀티플렉서(187)의 입력, 즉 멀티플렉서(182a)로부터의 입력과 배럴쉬프터(186)로부터의 입력중 어느 것이 램(160)에 제공되는 가를 나타낸다.
이어서, Ti를 구하는 과정을 Ti= max[R/〔{1+{(Np·Xp)/(Xi·Kp)}+{(Nb·Xb)/(Xi·Kp)}}〕*{BIT_RATE/(8·P_RATE)}]에 따라 처리유닛(180)의 세부 구성블록들을 설명하기로 한다.
우선, (Np·Xp)/(Xi·Kp)를 구하는 과정을 설명하면, 이 과정은 다음의 10 단계로 구성되어 있다. 각 단계에서는 그 단계에 할당된 작업을 하기 위한 스테이트 머쉰(120)에서 제공될 제어신호들이 그 기능과 함께 명시되어 있다. 각 단계에 명시되지 않은 남아있는 제어신호들은 "돈 캐어(Don't care)" 상태로서 이는 해당 작업을 수행하는데 이 신호들이 상관이 없다는 것을 의미한다.
[1] 램(160)으로부터 X 레지스터(183a)로 Xi를 읽어오기
RD_ADRS: 램(160)에서 Xi의 어드레스
FR_RAM_PNT: '0'[램(160)으로부터의 데이터에 2n이 곱해지지 않는다는 의미임]
FR_EXT_SEL: 배럴쉬프터(181)로부터의 출력 선택
REG_EN_X: X 레지스터(183a)를 1 클럭동안 인에이블시켜서 다른 상관없는 데이터 가 X 레지스터(183a)의 Xi값에 중복하여 쓰이는 것을 방지한다.
[2] 램(160)으로부터 Y 레지스터(183b)로 Kp를 읽어오기
RD_ADRS: 램(160)에서 Kp의 어드레스
FR_RAM_PNT: '0'
FB_SEL: 배럴쉬프터(181)로부터의 출력 선택
REG_EN_Y: Y 레지스터(183b)를 1클럭동안 인에이블시켜서 다른 상관없는 데이터가 Y 레지스터(183b)의 Kp값에 중복하여 쓰이는 것을 방지한다.
[3] Np를 읽고 Xi·Kp를 시작한다.
두 개의 작업이 동시에 이루어진다. Xi·Kp를 시작하기 위해서 제어신호는 필 요하지 않다. 다음은 Np를 읽기 위한 것이다.
RD_ADRS: 램(160)에서 Np의 어드레스
FR_RAM_PNT: '0'
FR_EXT_SEL: 배럴쉬프터(181)로부터의 출력 선택
REG_EN_X: X 레지스터(183a)를 1 클럭동안 인에이블시킨다.
[4] 램(160)으로부터 Xp를 읽어오기
RD_ADRS: 램(160)에서 Xp의 어드레스
FR_RAM_PNT: '0'
FB_SEL: 배럴쉬프터(181)로부터의 출력 선택
REG_EN_Y: Y 레지스터(183b)를 1클럭동안 인에이블시킨다.
[5] Np·Xp시작
제어신호가 필요치 않다.
[6] Xi·Kp를 종료하고 그 결과를 램(160)에 쓴다.
OP_SEL: 곱셈기(184c)로부터의 출력을 선택한다.
WIN_PNT: '0'[멀티플렉서(185)로부터의 데이터에 2n이 곱해지지 않는다는 의미임]
TO_RAM_SEL: 배럴쉬프터(186)의 출력을 선택하고 이를 램(160)에 제공한다.
[7] 램(160)으로부터 Xi·Kp를 읽어오기
RD_ADRS: 램(160)에서 Xi·Kp의 어드레스
FR_RAM_PNT: '0'
FR_EXT_SEL: 배럴쉬프터(181)로부터의 출력 선택
REG_EN_X: X 레지스터(183a)를 1클럭동안 인에이블시킨다.
[8] Np·Xp를 종료하고 결과를 Y 레지스터(183b)에 피드백
OP_SEL: 곱셈기(184c)로부터의 출력을 선택한다.
WIN_PNT: '0'
FB_SEL: 베럴쉬프터(186)로부터의 출력 선택
REG_EN_X: X 레지스터(183a)를 1클럭동안 디스에이블시킨다.
REG_EN_Y: Y레지스터(183b)를 1클럭동안 인에이블시킨다.
[9] (Np·Xp)/(Xi·Kp) 시작
DIV_START: 나눗셈기(184d)에 나눗셈 연산의 시작을 알린다.
[10] (Np·Xp)/(Xi·Kp)를 종료하고 결과를 램(160)에 쓰기
QUOT_EN: 나눗셈 결과를 멀티플렉서(185)에 결합
OP_SEL: 나눗셈기(184d)로부터의 출력을 선택한다.
WIN_PNT: '0'
TO_RAM_SEL: 배럴쉬프터(186)로부터의 출력을 선택
ST_WR_ADRS: (Np·Xp)/(Xi·Kp)를 쓰기 위한 어드레스
ST_WR_EN: 램(160)의 쓰기 동작을 인에이블시킴
위의 [1]에서 [10]단계에서 설명한 바와 같은 방법으로 (Nb·Xb)/(Xi·Kb)를 계산하고 램(160)에 저장한다. 이 결과는 FB_SEL 과 REG_EN_Y의 도움으로 Y레지스터(183b)에도 입력된다. 그리고 나서 [11]에서 [17]단계가 계속된다.
[11] (Nb·Xb)/(Xi·Kb)를 X 레지스터(183a)로 읽어오기
[1]단계와 비슷하다. 이 데이터는 [10]단계에서 램(160)에 저장된 것이다.
[12] 1+{(Np·Xp)/(Xi·Kp)}+{(Nb·Xb)/(Xi·Kp)}를 계산하여 결과를 Y 레지스터(183b)에 저장하기
CIN: 두 오퍼랜드의 합산결과에 1 이 추가적으로 더해지는 것을 의미
OP_SEL: 가산기(184a)의 출력을 선택한다.
WIN_PNT: '0'
FB_SEL: 배럴쉬프터(186)로부터의 출력을 선택
REG_EN_Y: 1 클럭동안 인에이블
[13] 램(160)으로부터 X레지스터(183a)로 R 을 읽어오기
[1]단계와 같다.
[14] R/{1+(Np·Xp)/(Xi·Kp)+(Nb·Xb)/(Xi·Kp)} 계산을 종료하고 결과를 Y 레지스터(183b)에 입력
QUOT_EN: 나눗셈 결과를 멀티플렉서(185)에 결합
OP_SEL: 나눗셈기(184d)로부터의 출력을 선택한다.
WIN_PNT: '0'
FB_SEL: 배럴쉬프터(186)로부터의 출력을 선택
REG_EN_Y: 1 클럭동안 인에이블
[16] 램(160)으로부터 X 레지스터(183a)로 BIT_RATE/(8·PICTURE_RATE)를 읽어오기
[1]단계와 같다.
[17] R/{1+(Np·Xp)/(Xi·Kp)+(Nb·Xb)/(Xi·Kp)}와 BIT_RATE/(8·PICTURE_RATE)를 비교하고 큰 것을 선택하여 램(160)에 저장한다.
OP_SEL: X 레지스터(183a), Y 레지스터(183b)의 출력중 하나를 뺄셈기(184b) 출력의 부호 비트(또는 MSB)에 따라 선택한다.
WIN_PNT: '0'
TO_RAM_SEL: 배럴쉬프터(186)의 쓰기 동작을 인에이블시킴
ST_WR_ADRS: Ti가 쓰여질 곳의 어드레스를 나타냄
ST_WR_EN: 램(160)의 쓰기동작을 인에이블
위의 과정을 하나씩 수행함으로써, 수학식 4a 의 Ti가 계산되는데 이는 덧셈, 곱셈, 나눗셈, 비교연산과 램(160)으로부터 데이터 가져오기, 램(160)에 데이터를 저장하기 등의 동작을 포함한다.
이어서, 앞서 살펴본 수학식 1b' 에 따라 VAR_ORG 를 계산하는 과정을 설명하기로 한다.
[수학식 1b']
일련의 제 1 임시값이 계산유닛(140)에서 생성되면, 이는 FR_EXT_SEL 에 응답하여 멀티플렉서(182a)에 제공된다. 이어서, 이는 멀티플렉서(187)을 경유하여 램(160)에 제공되어 저장된다. k 는 1 내지 8 에 대해 var_org(k)와 sum(k)이 램(180)에 저장된 후에는 VAR_ORG 는 다음 단계들을 거쳐서 계산된다.
[21] var_org(1)을 램(160)으로부터 X레지스터(183a)에 읽어들이기
RD_ ADRS: 램(160)에서 var_org(1)의 어드레스
FR_RAM_PNT: '0'
FR_EXT_SEL: 배럴쉬프터(181)로부터의 출력을 선택
REG_EN_X: 다른 관련없는 데이터가 X 레지스터(183a)의 var_org(1) 값에 중복되어 씌여지는 것을 방지하기 위해 X 레지스터(183a)를 1 클럭 사이클동안 인 에이블시킴
[22] var_org(2)를 램(160)으로부터 Y 레지스터(183b)에 읽어들이기
RD_ADRS: 램(160)에서 var_org(2)의 어드레스
FR_RAM_PNT: '0'
FB_SEL: 배럴쉬프터(181)로부터의 출력을 선택
REG_EN_Y: Y 레지스터(183b)를 1클럭 사이클동안 인에이블시킴
[23] var_org(1)+var_org(2)를 계산하여 결과를 Y 레지스터(183b)에 저장하기
CIN: 두 오퍼랜드의 합산 결과에 추가적으로 1 이 더해지지 않는다는 것을 의미
OP_SEL: 덧셈기(184a)의 출력을 선택
WIN_PNT: '0'
FB_SEL: 배럴쉬프터(186)의 출력을 선택
REG_EN_Y: 1 클럭동안 Y 레지스터(183b)를 인에이블
[24] var_org(3)을 램(160)으로부터 X 레지스터(183a)에 읽어들이기
스텝[21]과 동일
[25] {var_org(3)+ Y 레지스터(183b)의 내용}을 연산하여 결과를 Y 레지스터 (183b)에 저장
스텝[23]과 동일
[26] var_org(4)을 램(160)으로부터 X 레지스터(183a)에 읽어들이고 {var_org(4) +Y레지스터(183b)의 내용}을 연산하여 결과을 램(160)에 저장할 수 있다. 이어서 sum(1)+sum(2)+sum(3)+sum(4)는 유사한 방법으로 구해서 Y 레지스터(183b)에 저장하고 다음의 단계들이 수행된다.
[27] var_org(1)+var_org(2)+var_org(3)+var_org(4)를 램(160)에서 X 레지스터(183a)로 읽어들이기
[28] Y 레지스터(183b)의 내용을 X 레지스터(183a)의 내용에서 감산하고 그 결과를 256으로 나누고 결과를 램(160)에 저장한다.
OP_SEL: 뺄셈기(184b)의 출력을 선택한다.
WIN_PNT: '-8', [멀티플렉서(185)의 데이터를 28로 나눈다는 것을 의미]
TO_RAM_SEL: 배럴쉬프터(186)의 출력을 선택하고 이를 램(160)에 제공한다.
이와 같이 VAR_ORG 는 연산된다. 다른 수학식들도 유사한 방법으로 계산될 수 있다. 상기 수학식들의 결과를 얻음으로써 본 발명의 콘트롤러(10)에서 지정된 세가지 즉, 인터/인트라 모드, 필드/프레임 DCT 모드, 양자화 파라메타를 결정할 수 있게 되는 것이다.
그리고, 상기에서 서술된 실시예는 모든 점에서 예시에 불과한 것이고, 이를 한정적으로 해석해서는 안되며, 단지 본 발명의 진정한 정신 및 범위내에 존재하는 변형예는 모두 본 발명의 청구 범위에 속하는 것이다.
이상에서 살펴본 바와 같이 본 발명에 따르면, 영상 부호화기에서 부호화 타입을 결정하고 버퍼를 제어하는 하드웨어를 효율적으로 구현함으로써 하드웨어 사이즈를 줄일 수 있을 뿐만 아니라, 계산 속도를 향상시킬 수 있다는 데 그 효과가 있다.

Claims (22)

  1. 영상신호가 다수의 픽쳐그룹들을 포함하며, 그 픽쳐그룹은 세 타입의 프레임들로 분류되고, 그 각각의 프레임은 다수의 매크로블럭들로 나뉘어지며, 각 매크로블럭은 다수의 블록들을 포함하고, 각 블록은 홀수라인의 반블럭과 짝수라인의 반블럭으로 구성되는데, 그 중 매크로블럭을 기초로하여 영상신호를 부호화하는 영상부호화 시스템에서 인터/인트라 모드, 필드/프레임 이산여현변환 모드와 양자화 파라메타를 결정하는 콘트롤러에 있어서,
    현재 부호화된 프레임의 시작과 프레임의 타입을 지시하는 다수의 제어신호를 포함한 제어시퀀스를 발생하는 수단과;
    소정의 제 1 방정식들을 계산해내므로써 일련의 제 1 값들을 제공하는 계산 유닛;
    상기 제어 시퀀스와 상기 일련의 제 1 값에 따라, 현재 부호화된 순차적인 매크로블럭과 미리 설정된 초기 상수값들에 기초하여 소정의 제 2 방정식들을 계산하므로써, 프레임내의 각 블록에 대한 인터/인트라 모드, 필드/프레임 이산여현변환 모드와 양자화 파라메타를 나타내는 일련의 제어값을 발생하는 처리수단; 및
    상기 초기 상수값을 저장하고, 상기 처리수단으로 초기 상수값을 제공하며, 상기 처리수단에서 결정된 상기 일련의 제어값들을 저장하고, 영상신호를 부호화하는데 사용되는 상기 제어값들을 제공하는 메모리 및 입출력 유닛으로 구성된 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  2. 제 1 항에 있어서, 상기 메모리 및 입출력 유닛이, 상기 초기 상수값과 상기 제어값을 저장하는 저장수단들과;
    상기 제어시퀀스에 따라 상기 제어값들과 상기 초기 상수값들을 제공하는 읽기 수단들; 및
    상기 제어시퀀스에 따라 상기 제어값들을 상기 저장수단들로 입력시키고, 또한 상기 제어값들을 상기 저장수단들에 저장하는 쓰기수단들을 포함하는 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  3. 제 2 항에 있어서, 상기 제어시퀀스가, 상기 초기 상수값들과 상기 제어값들을 저장하는 상기 저장수단들내의 위치를 나타내는 쓰기 어드레스 신호들과;
    상기 초기 상수값들중 하나의 초기 상수값 또는 상기 제어값들중 하나의 제어값이 상기 저장수단에 저장될 때 활성화 상태로 되는 쓰기 인에이블 신호들; 및
    상기 초기 상수값들과 상기 제어값들을 제공하는 상기 저장수단들내의 위치를 나타내는 읽기 어드레스 신호들을 포함하는 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  4. 제 2 항에 있어서, 상기 처리수단이 소정의 방정식들을 계산하는 과정에서 얻어지는 임시값들을 더 발생하며, 상기 임시값들이 상기 저장수단에 더 저장되고, 상기 읽기 수단이 상기 제어시퀀스에 따라 상기 산술유닛에 상기 임시값들을 더 제공하며, 상기 쓰기 수단이 상기 제어시퀀스에 따라 상기 임시값을 상기 저장수단으로 더 입력시키고, 또한 상기 임시값을 상기 저장수단에 더 저장하는 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  5. 제 4 항에 있어서, 상기 제어시퀀스가, 상기 초기 상수값들, 상기 제어값들 및 상기 임시값들을 저장하는 상기 저장수단들내의 위치를 나타내는 쓰기 어드레스 신호들과;
    상기 초기 상수값들중 하나의 초기 상수값, 상기 제어값들중 하나의 제어값 및 상기 임시값들중 하나의 임시값이 상기 저장수단에 저장될 때 활성화 상태로 되는 쓰기 인에이블 신호들; 및
    상기 초기 상수값들, 상기 제어값들 및 상기 임시값들을 제공하는 상기 저장수단들내의 위치를 나타내는 읽기 어드레스 신호들을 포함하는 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  6. 제 1 항에 있어서, 상기 처리수단이, 일련의 제 1 입력값들중 하나의 제 1 입력값을 선택하는 제 1 입력수단과;
    상기 제 1 입력수단에서 선택된 상기 제 1 입력값을 포함하는 일련의 제 2 입력값들중 하나의 제 2 입력값을 선택하는 제 2 입력수단;
    상기 제 1 입력값들과 상기 제 2 입력값들을 각각 저장하는 제 1 및 제 2 레지스터;
    상기 제 1 입력값들과 상기 제 2 입력값들에 대한 덧셈연산, 뺄셈연산, 곱셈연산, 나눗셈연산 및 비교연산을 수행한 후, 일련의 연산결과들을 제공하는 계산수단;
    상기 일련의 연산결과들중 하나를 선택하는 선택수단; 및
    상기 선택된 계산결과 또는 상기 제 1 입력값을 일련의 제 2 입력값들중 하나로서 상기 제 2 입력수단에 제공하거나 상기 메모리 및 입출력 유닛에 제공하는 출력수단을 포함하여 구성된 것을 특징으로 하는 영상부호화 시스템의 컨트롤러.
  7. 제 6 항에 있어서, 상기 계산수단이, 제 1 입력값들과 상기 제 2 입력값들을 더하므로써 덧셈결과를 제공하는 덧셈수단과;
    제 1 입력값으로부터 제 2 입력값을 빼므로써 부호와 절대값으로 이루어진 뺄셈결과를 제공하는 뺄셈수단;
    제 1 입력값과 제 2 입력값이 입력된 때로부터 소정의 첫 번째 지연이 있은 후에 제 1 입력값과 제 2 입력값을 곱하므로써 곱셈결과를 제공하는 곱셈수단; 및
    제 1 입력값과 제 2 입력값이 입력된 때로부터 소정의 두 번째 지연이 있은 후에 제 1 입력값을 제 2 입력값으로 나누므로써 나눗셈결과를 제공하는 나눗셈수단을 포함하여 구성된 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  8. 제 3 항에 있어서, 상기 처리수단이, 일련의 제 1 입력값들중 하나의 제 1 입력값을 선택하는 제 1 입력수단과;
    상기 제 1 입력수단에서 선택된 입력값을 포함하는 일련의 제 2 입력값들중 하나의 제 2 입력값을 선택하는 제 2 입력수단;
    상기 제 1 입력값들과 상기 제 2 입력값들을 각각 저장하는 제 1 및 제 2 레지스터들;
    상기 제 1 입력값들과 제 2 입력값들에 대한 덧셈연산, 뺄셈연산, 곱셈연산, 나눗셈연산 및 비교연산을 수행한 후, 그 연산결과를 제공하는 계산수단;
    상기 계산결과들중 하나를 선택하는 선택수단; 및
    상기 제 2 입력수단에 또는 상기 메모리 및 입출력 유닛에 일련의 제 2 입력값중 하나의 값으로서 상기 선택된 계산결과 또는 제 1 입력값을 제공하는 출력수단을 포함하며, 그리고 상기 계산수단이, 제 1 입력값들과 상기 제 2 입력값들을 더하므로써 덧셈결과를 제공하는 덧셈수단과;
    제 1 입력값으로부터 제 2 입력값을 빼므로써 부호와 절대값으로 이루어진 뺄셈결과를 제공하는 뺄셈수단;
    제 1 입력값과 제 2 입력값이 입력된 때로부터 소정의 첫 번째 지연이 있은 후에 제 1 입력값과 제 2 입력값을 곱하므로써 곱셈결과를 제공하는 곱셈수단; 및
    제 1 입력값과 제 2 입력값이 입력된 때로부터 소정의 두 번째 지연이 있은 후에 제 1 입력값을 제 2 입력값으로 나누므로써 나눗셈결과를 제공하는 나눗셈수단을 포함하여 구성된 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  9. 제 8 항에 있어서, 상기 제어시퀀스가, 상기 제 1 입력수단과 상기 제 2 입력수단으로 하여금 각각 제 1 입력값들과 제 2 입력값들을 선택하도록 제어하는 제 1 및 제 2 입력 선택신호들과;
    상기 제 1 및 제 2 레지스터들에 각각 제 1 입력값들과 제 2 입력값들을 저장하기 위한 제 1 및 제 2 레지스터 인에이블 신호들;
    상기 덧셈수단으로 하여금 덧셈결과를 하나씩 더 증가시키도록 제어하는 덧셈 제어신호;
    상기 나눗셈수단으로 하여금 나눗셈을 시작하도록 지시하는 나눗셈 시작신호;
    나눗셈 연산이 상기 나눗셈수단에서 완료되었을 때 발생되는 나눗셈 종료신호;
    상기 선택수단으로 하여금 상기 계산결과중 하나를 선택하도록 하는데, 상기 선택수단에서 비교결과가 선택된 경우에는 뺄셈결과의 부호와 함께 상기 선택수단으로 하여금 제 1 입력값 또는 제 2 입력값을 선택하도록 제어하는 연산 선택신호;
    상기 출력수단이 상기 제 2 입력수단으로 또는 상기 메모리 및 입출력 유닛으로 일련의 제 2 입력값들중 하나의 값으로서 상기 선택된 계산결과 또는 제 1 입력값을 제공하도록 제어하는 선택신호를 더 포함하는 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  10. 제 1 항에 있어서, 각 매크로블럭내에 있는 화소값들이, O(i,j) 로 표시되고, i 와 j 는 매크로블록내에 있는 한 화소의 위치를 지정하며 1 부터 M1 과 M2 까지의 범위를 갖는 정수이고, M1 과 M2 는 각각 한 라인의 매크로블록내에 포함된 화소의 수와 한 매크로블록내에 있는 라인의 수를 나타내는 정수이며; 일련의 제 1 값들이, 영상신호의 각 반블럭내에 있는 화소값들의 제곱들의 합에 해당하는 제 1 값, 영상신호와 움직임 보상에 의해 얻어진 예측 영상신호사이의 차분 데이터로 이루어진 각 블록내에 있는 화소값들의 제곱들의 합에 해당하는 제 2 값, 영상신호의 각 반블럭내에 있는 화소값들의 합에 해당하는 제 3 값,과 같이 정의되는 제 4 값 및과 같이 정의되는 제 5 값을 포함하는 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  11. 제 10 항에 있어서, 상기 계산유닛의 제 1 계산수단이, 처리 블록내에 포함된 각 화소값들을 제곱한 후, 그 제곱된 화소값들을 제공하는 제곱수단과;
    상기 제곱수단으로부터 입력받은 두 개의 제곱된 화소값들을 가산한 후, 두 개의 제곱된 화소값들의 합을 순차적으로 제공하는 가산기; 및
    상기 두 개의 제곱된 화소값들의 합을 누산한 후, 처리 블록내에 포함된 두 개의 각 반블럭에 대한 제 1 값을 제공하는 누산수단을 포함하여 구성된 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  12. 제 11 항에 있어서, 상기 누산수단이, 피드백값과 함께 두 개의 제곱된 화소값들의 합을 가산한 후, 부분합 또는 제 1 값을 제공하는 누산기와;
    상기 부분합을 저장하는 두 개의 메모리수단;
    제 1 제어신호에 따라 상기 두 개의 메모리수단중 하나의 메모리수단으로 상기 부분합을 제공하는 수단;
    제 2 제어신호에 따라 상기 두 개의 메모리수단에 저장된 값들중 하나를 선택하고, 그 값을 피드백값으로 제공하는 수단;
    상기 누산기의 출력을 저장하고, 제 3 제어신호에 따라 저장되어 있던 제 1 값을 처리수단으로 제공하는 수단; 및
    상기 제 1 , 제 2 , 제 3 제어신호를 발생하는 수단을 포함하는 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  13. 제 10 항에 있어서, 상기 계산유닛의 제 2 계산수단이, 한 처리 블럭내의 차분영상 데이터에 포함된 각 픽셀값들을 제곱한 후, 그 제곱된 화소값들을 제공하는 제곱수단과;
    상기 제곱수단으로부터 입력받은 두 개의 제곱된 화소값들을 가산한 후, 두 개의 제곱된 화소값들의 합을 순차적으로 제공하는 수단;
    피드백값과 함께 두 개의 제곱된 화소값들의 합을 가산한 후, 부분합과 제 2 값을 제공하는 누산기;
    상기 부분합을 저장하고, 그 저장된 부분합을 피드백값으로서 제공하는 메모리수단;
    상기 누산기의 출력을 저장하고, 제어신호에 따라 저장되어 있던 제 2 값을 상기 처리수단으로 제공하는 수단; 및
    상기 제어신호를 발생하는 수단을 포함하는 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  14. 제 10 항에 있어서, 상기 계산유닛의 제 3 계산수단이, 처리 블록내에 포함된 두 픽셀값들을 가산한 후, 두 픽셀값들의 합을 순차적으로 제공하는 수단; 및
    두 픽셀값들의 합들을 누산한 후, 처리 블럭내에 포함된 두 개의 반블럭 각각에 대한 제 3 값을 제공하는 수단으로 구성된 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  15. 제 14 항에 있어서, 상기 누산수단이, 피드백값과 함께 두 개의 제곱된 화소값들의 합을 가산한 후, 부분합 또는 제 3 값을 제공하는 누산기와;
    상기 부분합을 저장하는 두 개의 메모리수단;
    제 1 제어신호에 따라 상기 두 개의 메모리수단중 하나의 메모리수단으로 상기 부분합을 제공하는 수단;
    제 2 제어신호에 따라 상기 두 개의 메모리수단에 저장된 값들중 하나를 선택하고, 그 값을 피드백값으로 제공하는 수단;
    상기 누산기의 출력을 저장하고, 제 3 제어신호에 따라 저장되어 있던 제 3 값을 처리수단으로 제공하는 수단; 및
    상기 제 1 , 제 2 , 제 3 제어신호를 발생하는 수단으로 구성된 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  16. 제 10 항에 있어서, 상기 계산유닛의 제 4 계산수단이, 처리 매크로블럭내에 포함된 각 블록의 화소값들을 지연시킨 후, 지연된 화소값들을 제공하는 수단과;
    제 1 제어신호에 따라 상기 지연된 화소값들을 저장하는 저장수단;
    제 2 제어신호에 따라 상기 저장되어 있던 지연 화소값들 또는 상기 지연된 화소값들중 선택된 화소값들을 제공하는 선택수단;
    상기 제 1 제어신호와 상기 제 2 제어신호를 제공하는 수단;
    상기 선택된 화소값들 각각으로부터 상기 화소값들 각각을 뺀 후, 그 차분값을 제공하는 뺄셈수단; 및
    상기 차분값들 각각을 제곱하고, 상기 제곱된 차분값들을 합한 후, 제 4 값을 제공하는 누산수단으로 구성된 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  17. 제 16 항에 있어서, 상기 누산수단이, 상기 차분값들 각각을 제곱한 후, 그 제곱된 차분값들을 제공하는 제곱수단과;
    두 개의 제곱된 차분값들을 합한 후, 그 두 개의 제곱된 차분값들의 합을 제공하는 가산기;
    피드백값과 함께 두 개의 제곱된 차분 화소값들의 합을 가산한 후, 부분합 또는 제 4 값을 제공하는 누산기;
    상기 부분합을 저장하고, 저장되어 있던 부분합을 상기 피드백값으로 제공하는 메모리수단;
    상기 누산기의 출력을 저장하고, 제 3 제어신호에 따라 저장되어 있던 제 4 값을 처리수단으로 제공하는 수단; 및
    상기 제 3 제어신호를 발생하는 수단으로 이루어진 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  18. 제 17 항에 있어서, 상기 지연수단이, 블록내에 포함된 한 라인의 화소값들에 의해 상기 화소값들을 지연시키고, 상기 저장수단이 M1 메모리 공간을 가지는 것을 특징으로 하는 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  19. 제 10 항에 있어서, 상기 계산유닛의 제 5 계산수단이, 블록내에 있는 두 라인의 화소값들에 의해 처리 매크로블럭내에 있는 각 블록의 화소값들을 지연시킨 후, 그 지연된 화소값들을 제공하는 수단과;
    2*M1 의 메모리 영역을 가지며, 제 1 제어신호에 따라 상기 지연된 화소값들을 저장하는 저장수단;
    제 2 제어신호에 따라 상기 저장된 지연 화소값들 또는 상기 지연된 화소값들중 한 화소값들을 선택한 후, 그 선택된 화소값들을 제공하는 선택수단;
    상기 제 1 제어신호와 상기 제 2 제어신호를 제공하는 수단;
    상기 선택된 화소값들 각각으로부터 상기 화소값들 각각을 뺀 후, 그 차분값을 제공하는 뺄셈수단; 및
    상기 차분값들 각각을 제곱하고, 그 제곱된 차분값들을 합하여 제 5 값을 제공하는 누산수단을 포함하여 구성된 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  20. 영상신호가 다수의 픽쳐그룹들을 포함하며, 그 픽쳐그룹은 세 타입의 프레임들로 분류되고, 그 각각의 프레임은 다수의 매크로블럭들로 나뉘어지며, 각 매크로블럭은 다수의 블록들을 포함하고, 각 블록은 홀수라인의 반블럭과 짝수라인의 반블럭으로 구성되는데, 그 중 매크로블럭을 기초로하여 영상신호를 부호화하는 영상부호화 시스템에서 인터/인트라 모드, 필드/프레임 이산여현변환 모드와 양자화 파라메타를 결정하는 콘트롤러에 있어서,
    다수의 제어신호들을 포함한 제어시퀀스를 발생하며, 현재 부호화된 프레임의 타입에 따라 현재부호화된 매크로블록의 순번을 나타내는 신호와 프레임의 시작과 매크로블록의 시작을 나타내는 신호들을 제공하는 수단과;
    소정의 제 1 방정식들을 계산해내므로써 일련의 제 1 값들을 제공하는 계산유닛;
    상기 제어시퀀스, 상기 일련의 제 1 값들 및 소정의 초기 상수값에 따라, 소정의 제 2 방정식들을 계산하므로써, 각 매크로블록에 대한 인터/인트라 모드, 필드/프레임 이산여현변환 모드와 양자화 파라메타를 나타내는 일련의 제어값들을 발생하는 처리수단; 및
    상기 초기 상수값들을 저장하고, 상기 처리수단으로 초기 상수값들을 제공하며, 상기 처리수단에서 결정된 상기 일련의 제어값들을 저장하고, 영상신호를 부호화하는데 사용되는 상기 제어값들을 제공하는 메모리 및 입출력 유닛으로 구성된 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  21. 영상신호가 다수의 픽쳐그룹들을 포함하며, 그 픽쳐그룹은 세 타입의 프레임들로 분류되고, 그 각각의 프레임은 다수의 매크로블럭들로 나뉘어지며, 각 매크로블럭은 다수의 블록들을 포함하고, 각 블록은 홀수라인의 반블럭과 짝수라인의 반블럭으로 구성되며, 각 매크로블럭내에 있는 화소값들은 O(i,j) 로 표시되고, i 와 j 는 매크로블록내에 있는 한 화소의 위치를 지정하며 1 부터 M1 과 M2 까지의 범위를 갖는 정수이고, M1 과 M2 는 한 라인의 매크로블록내에 포함된 화소의 수와 한 매크로블록내에 있는 라인의 수를 나타내는 정수이며, 매크로블럭을 기초로하여 영상신호를 부호화하는 영상부호화 시스템중 인터/인트라 모드, 필드/프레임 이산여현변환 모드와 양자화 파라메타를 결정하는 콘트롤러에 있어서, 상기 산술유닛이,
    소정의 제 1 방정식들을 계산하므로써, 영상신호의 각 반블럭내에 있는 화소값들의 제곱들의 합에 해당하는 제 1 값, 영상신호와 움직임 보상에 의해 얻어진 예측 영상신호사이의 차분 데이터로 이루어진 각 블록내에 있는 화소값들의 제곱들의 합에 해당하는 제 2 값, 영상신호의 각 반블럭내에 있는 화소값들의 합에 해당하는 제 3 값,과 같이 정의되는 제 4 값 및과 같이 정의되는 제 5 값을 포함하는 일련의 제 1 값들을 제공하는 계산유닛; 및
    현재 부호화된 매크로블록의 순번과 소정의 초기 상수값들에 기초하여 소정의 제 2 방정식들을 계산하므로써, 인터/인트라 모드, 필드/프레임 이산여현모드와 양자화 파라메타를 나타내는, 프레임내의 매크로블럭들 각각에 대한 일련의 제어값들을 상기 제어시퀀스와 상기 일련의 제 1 값들에 따라 발생하는 처리수단으로 구성된 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
  22. 제 21 항에 있어서, 상기 처리수단이, 일련의 제 1 입력값들중 하나의 제 1 입력값을 선택하는 제 1 입력수단과;
    상기 제 1 입력수단에서 선택된 제 1 입력값을 포함하는 일련의 제 2 입력값들중 하나의 제 2 입력값을 선택하는 제 2 입력수단;
    상기 제 1 입력값들과 상기 제 2 입력값들을 각각 저장하는 제 1 및 제 2 레지스터;
    상기 제 1 입력값들과 상기 제 2 입력값들에 대한 덧셈연산, 뺄셈연산, 곱셈연산, 나눗셈연산 및 비교연산을 수행한 후, 덧셈결과, 뺄셈결과, 곱셈결과, 나눗셈결과 및 비교결과를 포함하는 일련의 계산결과들을 제공하는 계산수단;
    상기 계산결과들중 하나의 계산결과를 선택하는 선택수단; 및
    상기 선택된 계산결과 또는 제 1 입력값을 일련의 제 2 입력값들중 하나의 값으로서 상기 제 2 입력수단과 상기 메모리 및 입출력 유닛중 하나에 제공하는 출력수단으로 구성된 것을 특징으로 하는 영상부호화 시스템의 콘트롤러.
KR1019960075569A 1995-12-28 1996-12-28 영상부호화시스템의콘트롤러 KR100269424B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1019950061378 1995-12-28
KR61378 1995-12-28
KR1019950061378A KR970057947A (ko) 1995-12-28 1995-12-28 영상 부호화기에서의 타입 결정 및 버퍼 제어 장치

Publications (2)

Publication Number Publication Date
KR970057912A KR970057912A (ko) 1997-07-31
KR100269424B1 true KR100269424B1 (ko) 2000-10-16

Family

ID=19445887

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1019950061378A KR970057947A (ko) 1995-12-28 1995-12-28 영상 부호화기에서의 타입 결정 및 버퍼 제어 장치
KR1019960075569A KR100269424B1 (ko) 1995-12-28 1996-12-28 영상부호화시스템의콘트롤러

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1019950061378A KR970057947A (ko) 1995-12-28 1995-12-28 영상 부호화기에서의 타입 결정 및 버퍼 제어 장치

Country Status (5)

Country Link
US (1) US5949488A (ko)
EP (1) EP0782344A3 (ko)
JP (1) JPH09200761A (ko)
KR (2) KR970057947A (ko)
CN (1) CN1159123A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101146037B1 (ko) 2003-07-04 2012-05-14 넥스트림 프랑스 비디오 데이터를 코딩하기 위한 디바이스 및 방법

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19882097B3 (de) * 1997-12-08 2012-12-20 Sony Corp. Codiereinrichtung und Codierverfahren
WO1999030504A1 (en) * 1997-12-08 1999-06-17 Sony Corporation Encoder and encoding method
FR2782879B1 (fr) * 1998-08-28 2000-11-03 Thomson Multimedia Sa Procede de compression d'images
JP2003324732A (ja) * 2002-04-30 2003-11-14 Sony Corp 画像処理装置およびその方法
JP2005202248A (ja) * 2004-01-16 2005-07-28 Fujitsu Ltd オーディオ符号化装置およびオーディオ符号化装置のフレーム領域割り当て回路
US8270480B2 (en) * 2004-09-16 2012-09-18 Thomson Licensing Method and apparatus for rapid video and field coding
US7609766B2 (en) 2005-02-08 2009-10-27 Vixs Systems, Inc. System of intra-picture complexity preprocessing
KR100657314B1 (ko) * 2005-05-04 2006-12-20 삼성전자주식회사 멀티미디어 스트리밍 송신 장치 및 방법
US20070192393A1 (en) * 2006-02-14 2007-08-16 Taiyi Cheng Method and system for hardware and software shareable DCT/IDCT control interface
JP5017555B2 (ja) * 2006-04-10 2012-09-05 株式会社メガチップス 画像符号化装置及び画像復号化装置
FR2899743A1 (fr) * 2006-04-11 2007-10-12 Vixs Systems Inc Systeme de pre-traitement de donnees intra-images
KR101457418B1 (ko) * 2009-10-23 2014-11-04 삼성전자주식회사 계층적 부호화 단위의 크기에 따른 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
CN102735358B (zh) * 2011-03-29 2016-03-30 株式会社爱德克斯 温度推定装置以及温度推定方法
JP5760950B2 (ja) * 2011-10-28 2015-08-12 富士通株式会社 動画像再符号化装置、動画像再符号化方法及び動画像再符号化用コンピュータプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317397A (en) * 1991-05-31 1994-05-31 Kabushiki Kaisha Toshiba Predictive coding using spatial-temporal filtering and plural motion vectors

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1311063C (en) * 1988-12-16 1992-12-01 Tokumichi Murakami Digital signal processor
EP0435163B1 (en) * 1989-12-25 1998-03-25 Mitsubishi Denki Kabushiki Kaisha Coding apparatus
US5268755A (en) * 1991-02-21 1993-12-07 Matsushita Electric Industrial Co., Ltd. Orthogonal transformation encoder
US5347309A (en) * 1991-04-25 1994-09-13 Matsushita Electric Industrial Co., Ltd. Image coding method and apparatus
JP2991833B2 (ja) * 1991-10-11 1999-12-20 松下電器産業株式会社 インターレス走査ディジタルビデオ信号の符号化装置及びその方法
US5144424A (en) * 1991-10-15 1992-09-01 Thomson Consumer Electronics, Inc. Apparatus for video data quantization control
US5231484A (en) * 1991-11-08 1993-07-27 International Business Machines Corporation Motion video compression system with adaptive bit allocation and quantization
US5227878A (en) * 1991-11-15 1993-07-13 At&T Bell Laboratories Adaptive coding and decoding of frames and fields of video
JPH05167998A (ja) * 1991-12-16 1993-07-02 Nippon Telegr & Teleph Corp <Ntt> 画像の符号化制御処理方法
JP2551305B2 (ja) * 1992-09-11 1996-11-06 日本電気株式会社 動画像符号化制御方式
US5426463A (en) * 1993-02-22 1995-06-20 Rca Thomson Licensing Corporation Apparatus for controlling quantizing in a video signal compressor
TW301098B (ko) * 1993-03-31 1997-03-21 Sony Co Ltd
EP0654947B1 (en) * 1993-06-08 2000-02-23 Sony Corporation Encoder and encoding method
BE1007807A3 (nl) * 1993-11-30 1995-10-24 Philips Electronics Nv Inrichting voor het coderen van een videosignaal.
US5654760A (en) * 1994-03-30 1997-08-05 Sony Corporation Selection of quantization step size in accordance with predicted quantization noise
JP3954656B2 (ja) * 1994-09-29 2007-08-08 ソニー株式会社 画像符号化装置及び方法
JPH08256341A (ja) * 1995-03-17 1996-10-01 Sony Corp 画像信号符号化方法、画像信号符号化装置、画像信号記録媒体、及び画像信号復号化装置
KR0153671B1 (ko) * 1995-06-30 1998-11-16 배순훈 고선명 텔레비젼 엔코더의 레이트 콘트롤러

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317397A (en) * 1991-05-31 1994-05-31 Kabushiki Kaisha Toshiba Predictive coding using spatial-temporal filtering and plural motion vectors

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101146037B1 (ko) 2003-07-04 2012-05-14 넥스트림 프랑스 비디오 데이터를 코딩하기 위한 디바이스 및 방법

Also Published As

Publication number Publication date
EP0782344A3 (en) 1999-05-19
KR970057912A (ko) 1997-07-31
EP0782344A2 (en) 1997-07-02
KR970057947A (ko) 1997-07-31
JPH09200761A (ja) 1997-07-31
CN1159123A (zh) 1997-09-10
US5949488A (en) 1999-09-07

Similar Documents

Publication Publication Date Title
US5777680A (en) Video signal encoding system controller for deciding an inter/intra mode, a field/frame DCT mode, and a quantization parameter
KR100269424B1 (ko) 영상부호화시스템의콘트롤러
US6084636A (en) Video signal encoding method and apparatus employing an adaptive quantization technique
KR100756596B1 (ko) 비디오 데이터 부호화 장치 및 비디오 데이터 부호화 방법
KR100343352B1 (ko) 일정 비트 레이트 혹은 가변 비트 레이트를 위한 디지털 동영상 시퀀스 2-패스 부호화 방법
AU703049B2 (en) Method and device for transcoding video signals
US5956426A (en) Multi-coding apparatus
JP3358620B2 (ja) 画像符号化方法及び画像符号化装置
US6415055B1 (en) Moving image encoding method and apparatus, and moving image decoding method and apparatus
US5694171A (en) Moving image encoding apparatus
KR20040047977A (ko) 공간적으로 스케일가능한 압축
JPH0898179A (ja) 画像符号化装置
KR19980018698A (ko) 영상 데이터 압축 장치 및 그의 방법
EP0987902A2 (en) Encoding apparatus and method
US7451080B2 (en) Controlling apparatus and method for bit rate
US6028896A (en) Method for controlling data bit rate of a video encoder
JP2003169332A (ja) 画像符号化方法及び画像復号化方法
JP3480067B2 (ja) 画像符号化装置及び方法
JPH05227520A (ja) 画像圧縮符号化装置
US5751357A (en) Method and arrangement for coding and decoding a video data stream for all picture elements of the video data stream
KR100203294B1 (ko) 동영상부호화시스템에서의 노이즈 감소를 위한 필터링방법 및 장치
US7738726B2 (en) Block distortion reduction apparatus
KR100209417B1 (ko) 비디오 신호 부호화 시스템 제어기
KR100809013B1 (ko) 복잡도 가변형 동영상 부호화 장치 및 그 방법
JPH10108197A (ja) 画像符号化装置、画像符号化制御方法および画像符号化制御用プログラムを記録した媒体

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
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: 20120702

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee