KR100241064B1 - 단일 명령 사이클에서 0으로 반올림된 네개의 정수의 평균을 산출하기위한 방법 및 장치 - Google Patents

단일 명령 사이클에서 0으로 반올림된 네개의 정수의 평균을 산출하기위한 방법 및 장치 Download PDF

Info

Publication number
KR100241064B1
KR100241064B1 KR1019970016968A KR19970016968A KR100241064B1 KR 100241064 B1 KR100241064 B1 KR 100241064B1 KR 1019970016968 A KR1019970016968 A KR 1019970016968A KR 19970016968 A KR19970016968 A KR 19970016968A KR 100241064 B1 KR100241064 B1 KR 100241064B1
Authority
KR
South Korea
Prior art keywords
bit
operations
sum
encoded
bits
Prior art date
Application number
KR1019970016968A
Other languages
English (en)
Other versions
KR19980041723A (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 KR19980041723A publication Critical patent/KR19980041723A/ko
Application granted granted Critical
Publication of KR100241064B1 publication Critical patent/KR100241064B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding
    • G06F7/49978Rounding towards zero

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 네개의 정수 연산수에 대한 평균산출방법과 그 장치에 관한 것으로, MPEG표준에 특정된 0에서 반올림된 네개의 부호화된 또는 부호화되지 않은 n-비트 정수 연산수(A,B,C,D)의 n-비트평균은 각 연산수의 좌측에 2비트를 부가해서 네개의 n+2비트 확장연산수들을 제공하고, 상기 확장연산수들을 합산해서 n+2비트 합을 제공하며, 상기 n+2비트 합의 두개의 최하위유효비트를 제거하여 n-비트 합을 제공하고, 그 n-비트 합을 적절하게 증가시킴으로써 단일명령사이클에서 산출된다. 부가회로(302)는 상기 연산수의 좌측에 2비트를 부가하게 되고, 상기 확장연산수는 가산기로직(308)과 n-비트 캐리룩어헤드 가산기(310)를 포함하는 가산기회로에 결합된다. 상기 가산기로직(308)은 상기 가산기(310)에 대해 n비트의 부분적인 합 및 n비트의 부분적인 캐리와 함께 상기 확장연산수의 합의 두개의 최하위유효비트를 제공하게 된다. 상기 가산기(310)는 상기 확장연산수의 합의 n의 최상위유효비트를 나타내는 합출력과 1만큼 증가된 상기 합출력을 나타내는 합+1출력을 제공하게 된다. 멀티플렉서(314)는 제어회로(312)의 제어하에 상기 확장연산수의 합의 두개의 최하위유효비트와 최상위유효비트의 검사와 연산수들이 부호화된 또는 부호화되지 않은 값인 가를 나타내는 모드신호에 기초해서 상기 합 및 합+1출력중 하나를 n-비트 평균으로서 선택하게 된다.

Description

단일명령사이클에서 0으로 반올림된 네개의 정수의 평균을 산출하기위한 방법 및 장치
본 발명은 네개의 정수의 평균을 계산하기 위한 방법 및 장치에 관한 것이고, 특히 중간 결과값의 오버플로우에 기인한 오차없이 정확하게 반올림된 결과값을 갖는 부호를 갖는 네개의 정수들 또는 부호를 갖지 않는 네개의 정수들의 평균을 하나의 명령주기내에서 산출하기 위한 방법 및 장치에 관한 것이다.
동화상 전문가 그룹(Moving Picture Experts Group;MPEG) 표준은 압축 디지털 비디오에 대한 강력한 규격으로서 출현된 것이다. MPEG-1 규격은 대략 초당 1.5 메가비트의 압축 비디오 비트스트림비와 초당 약 250킬로비트의 압축 스테레오 오디오 비트스트림비를 규정한다. 제 2 규격인 MPEG-2는 형식화되는 과정중에 있으며, 고대역 분포 미디어에 대한 압축비를 규정하게 될 것이다. MPEG 표준에 맞도록 하기 위해서는 비디오와 오디오의 압축 및 신장의 결과물이 MPEG 표준을 실행하는데 필요한 여러 알고리즘을 빠르게 처리하여야 한다.
MPEG표준은 양방향 일시적 차동 펄스 코드 변조(differential pulse code modulation; DPCM) 및 1/2픽셀 움직임의 판단(half pixel motion estimation)을 필요로 한다. 도 1 은 픽셀(X) 블럭을 나타낸 것이다. 실제로 픽셀블럭은 도 1 에 나타낸 것보다 더 많은 픽셀을 포함하나, 설명의 편의를 위해 생략하였다. 예를 들면, 비디오신호 처리에 있어서, 기준 비디오정보 처리유니트는 매크로블럭으로서, 네개의 8X8 휘도블럭과 두개의 8X8 색도블럭을 포함하는 16X16 픽셀 매트릭스를 갖는다. 각각의 매크로블럭은 경우에 따라 훨씬 더 큰 휘도 또는 색도 프레임의 일부분일 수도 있다. 도 1 에서 픽셀(X)은 휘도 또는 색도를 나타내며, 부호를 갖지 않는 정수에 해당하는 출력을 갖는다.
MPEG 움직임 처리는 1/2픽셀 움직임 판단뿐 아니라 전픽셀 움직임 판단 (full pixel motion estimation)과 관련된다. 도 1 에서, ″H″ 지점들은 수평 인터폴레이션(interpolation)을 나타내고, ″V″ 지점들은 수직 인터폴레이션을 나타내며, ″Y″지점들은 수평 및 수직 인터폴레이션을 나타낸다. 수평 인터폴레이션(H) 및 수직 인텨폴레이션(V)은 다음의 수학식 1에 의해 계산된다.
(X1+X2)/2
상기 식에서, X1과 X2는 수평 인터폴레이션(H)에 대해 수평적으로 인접한 픽셀들과 수직 인터폴레이션(V)에 대해 수직적으로 인접한 픽셀들이다. 수평 및 수직 인터폴레이션(Y)은 이하의 수학식 2에 의해 계산된다.
(X1+X2+X3+X4)/4
수학식 2에 있어서, X1과 X3, X2와 X4는 대각선으로 인접한 픽셀들이다. 수학식 1 및 수학식 2에 있어서 기호 ″/″은 MPEG 표준에 의해 규정된 바와 같이 0으로 반올림되는 정수의 나눗셈을 나타낸다. 0으로의 반올림에 있어서, 모든 비정수들(non-integers)은 그 다음의 가장 작은 정수로 반올림된다. 즉, 정수의 요소는 그대로 남고, 분수의 요소는 버려진다. 예를 들면, 7/4와 -7/-4는 1이 되고, -7/1과 7/-4는 -1이 된다.
수학식 2에 있어서는, X1,X2,X3,X4를 2비트씩 우측으로 시프트시키고, 그 우측으로 시프트된 연산수들을 합산해서 결과를 얻으며, 시프트된 출력비트들의 독립적인 합을 얻고, 그 시프트출력 비트들의 합의 검사에 기초한 결과를 반올림하므로써 실행된다. 이는 간단한 연산이기는 하지만, 어느 경우에는 상기 결과가 MPEG 표준에 따른 적정한 반올림 처리를 위해 2 또는 3 만큼씩의 증가를 필요로 하는 경우도 있다. 그러나, 범용의 컴퓨터에 있어서 예컨대 상기 증가처리가 단일 명령사이클에서의 유효한 연산인 경우에는 수회의 연속적인 증가를 수행하기 위해서는 다수의 명령사이클이 필요하게 될 수도 있다.
상기 수학식 2의 다른 주지의 실행방법은 X1과 X2를 합산하여 제 1 중간결과를 얻고, X3와 X4를 합산하여 제 2 중간결과를 얻으며, 상기 제 1 및 제 2 중간결과를 가산하여 제 3 결과를 얻고, 제 3 중간결과의 두개의 최하위 유효비트를 검사하며, 상기 제 3 중간결과를 2비트만큼 우측으로 시프트시키고, 상기 제 3 중간결과의 두개의 선-시프트된 최하위 유효비트의 검사에 기초하여 상기 시프트된 결과를 반올림처리하는 과정으로 이루어지게 된다.
상기한 방법의 결점은 3회의 합산연산이 각각 별도의 명령사이클을 필요로 하게 된다는 데에 있다. 또한, 3회의 합산연산중 어느 하나는 오버플로우를 생성할 수 있게 되며, 상기 오버플로우는 부적정하게 반올림처리된 결과를 초래하게 된다.
MPEG 움직임 처리와 같은 연산의 집중적용에서는 신속하고 유효한 방식으로 0으로 반올림된 네개의 정수의 평균을 산출하는 것이 바람직하게 된다.
본 발명에 따른 방법 또는 장치는 단일 명령사이클에서 네개의 부호화된 또는 부호화되지 않은 정수의 평균을 바람직한 방식으로 제공하게 된다. 그 평균은 MPEG 표준에 규정된 바와 같이 0으로 반올림된다. 또한, 그 중간결과값은 오버플로우 에러를 유발하지 않음으로써 계산의 정확성을 기하게 된다.
상기 및 다른 목적들이 본 발명에 따라 달성되는 바, 그 일실시예는 부호화된 그리고 부호화되지 않은 정수를 포함하는 네개의 연산수의 평균을 0으로 반올림된 정수로 얻기 위한 회로를 동작시키는 방법에 관한 것이다. 본 실시예에 있어서, 상기 확장된 연산수를 제공하기 위해 각각의 연산수의 좌측에 2비트가 부가된다. 각각의 연산수에서 그 연산수가 부호화되지 않은 경우에는 두개의 부가 비트는 0이고, 그 연산수가 부호화된 양수(positive number)인 경우에는 두개의 부가 비트는 0이며, 연산수가 부호화된 음수(negative number)인 경우에는 두개의 부가 비트는 1이다. 그 후, 상기 확장 연산수들은 합산되어 중간결과를 제공하게 되고, 그 중간결과의 최하위 유효비트들이 제거되어 축소된 중간결과를 제공하게 된다. 상기 축소된 중간결과는 상기 연산수들이 부호화된 수들이고 중간결과가 음수이며 상기 제거된 비트들중의 특정의 하나가 1인 경우에는 증가처리되어 상기 평균을 제공하게 되고, 그렇지 않으면 상기 축소된 중간결과가 평균을 제공하게 된다.
본 발명은 다른 실시예는 부가회로와 가산기 회로, 제어회로 및 멀티플렉서가 결합되어 구성된 장치를 제공하게 된다. 상기 가산기 회로는 가산기 로직, 합 가산기, 합+1 가산기를 포함한다. 바람직하게는, 상기 가산기 로직은 다수의 캐리축적(Carry-save) 가산기들을 포함하여 구성되고, 상기 합 가산기와 합+1 가산기는 각기 n-비트 캐리 룩어헤드(carry lookahead) 가산기들이다. 상기 부가 회로는 네개의 n-비트 연산수들의 각각에 두개의 좌측 비트를 부가해서 네개의 n+2비트 확장 연산수들을 제공하게 된다. 상기 확장 연산수들은 상기 가산기 로직에 결합되고, 그 가산기 로직은 상기 확장 연산수들의 합에 대한 두개의 최하위 유효비트를 n비트의 부분적인 합과 n비트의 부분적인 캐리들과 함께 합 가산기와 합+1 가산기에 공급하게 된다. 상기 합 가산기는 상기 확장 연산수의 n+2비트 합의 n의 최상위 유효비트를 나타내는 합출력을 제공하게 되고, 합+1 가산기는 1만큼 증가된 합출력을 나타내는 합+1출력을 제공하게 된다. 상기 멀티플렉서는 합출력에 결합된 하나의 입력과 상기 합+1출력에 결합된 다른 입력을 갖춤과 더불어 상기 제어회로의 제어출력에 결합된 선택입력을 갖추게 된다. 상기 제어회로는 상기 확장 연산수들의 합의 두개의 최하위 유효비트(가산기 로직에 의해 제공) 및 최상위 유효비트(상기 합출력에 의해 제공)의 검사에 기초함과 더불어 상기 연산수들이 부호화된 또는 부호화되지 않은 값인가를 나타내는 모드신호에 기초해서 상기 합과 합+1출력중 하나를 0으로 반올림된 n-비트 평균으로 선택하도록 멀티플렉서를 지령하게 된다.
도 1 은 MPEG표준에 의해 규정된 1/2 픽셀 인터폴레이션을 나타내는 픽셀 블럭들을 도시한 도면.
도 2 는 본 발명에 따른 알고리즘의 플로우차트.
도 3 은 본 발명에 따른 로직회로의 블럭도.
도 4A 는 도 3 의 회로에 적합한 가산기 로직의 블럭도.
도 4B 는 도 3 의 회로에 적합한 다른 가산기 로직의 블럭도.
도 5 는 도 3 의 회로에 적합한 합 및 합+1 가산기의 회로도.
도 6 은 도 3 의 회로에 적합한 제어회로의 회로도.
도 7 은 도 3 의 회로에 적합한 멀티플렉서의 회로도.
* 도면의 주요부분에 대한 부호의 설명
300: 논리회로 302: 부가회로
304a- 304d: AND게이트 306: 가산기회로
308: 가산기로직 310: 합 및 합+1 가산기
312: 제어회로 314: 멀티플렉서
402,404,406,408,410,412,414,416: 전가산기
420,422,424,426,428: 반가산기, 512: 합발생기
이하, 첨부한 도면을 참조로 하여 본 발명의 바람직한 실시예를 상술하며, 도면 전체를 통하여 동일한 부분에는 동일한 도면부호를 사용하기로 한다.
MPEG 표준에서 규정된 바와 같이 0으로 반올림된 네개의 부호화된 또는 부호화되지 않은 정수 연산수의 평균은 단일 명령사이클에서 각 연산수의 좌측에 2비트를 부가하여 확장된 연산수들을 제공하고, 그 확장 연산수들을 합산하여 중간결과를 제공하며, 상기 중간결과로부터 제 2 최하위 유효비트(S1)와 최하위 유효비트(S0)를 제거하여 축소된 중간결과를 제공하고, 그 축소된 중간결과를 적절하게 증가시킴으로써 산출된다. 부호화되지 않은 연산수들에 대해, 상기 축소된 중간결과는 평균을 제공하게 된다. 부호화된 연산수들에 대해, 상기 반올림은 중간결과의 최상위 유효비트(SMSB)와 S1및 S0의 검사에 기초하게 된다. 양의 결과(SMSB=0)인 경우, 상기 축소된 중간결과는 평균을 제공하게 된다. 음의 결과(SMSB=-1)인 경우, 상기 축소된 중간결과는 증가되어 S1과 S0중의 어느 하나가 1인 경우의 평균을 제공하게 되고, 그렇지 않으면 상기 축소된 중간결과는 평균을 제공하게 된다.
본 발명에 적용되는 부호화된 수들은 양의 수가 0을 포함하는 2의 보수로 표현되고, 양과 음의 수들은 그 수들이 부호화된 상태임을 나타낸다. 또한, 증가는 1만큼의 증분으로 참조된다.
도 2 는 본 발명에 따른 알고리즘(220)의 플로우차트이다. 단계 202에서 n-비트 2진 연산수(A,B,C,D)가 취해지고, 판정단계 204에서는 상기 연산수가 부호화된 수인지 또는 부호화되지 않은 수인지에 대한 판단이 이루어지게 된다. 연산수가 부호화되지 않은 수이면, 단계 206에서 두개의 0이 각각의 연산수의 좌측에 부가되고, 그에 따라 n+2비트 확장 연산수들이 제공된다. 연산수가 부호화된 연산수들인 경우에는, 판단단계 204로부터 단계 208로 분기되어 각각의 연산수가 좌측으로 2비트만큼 부호확장되어 n+2비트 확장 연산수들을 얻게 된다. 따라서, 각각의 부호화된 연산수에 대해 MSB가 '0'이면 두개의 '0'이 좌측에 부가되는 반면, MSB가 '1'이면 두개의 '1'이 좌측에 부가된다. 그리고나서, 단계 206과 단계 208은 각각 단계 210으로 진행되고, 상기 단계 210에서 상기 확장 연산수들이 합산되어 n+2비트 결과(중간결과)를 제공하게 된다. 또한, 단계 212에서 두개의 최하위 유효비트(S1,S2)가 그 결과로부터 제거(생략)되어 n-비트 결과(축소된 중간결과)를 얻게 된다. 판정단계 214에서는 연산수들이 부호화된 수인지 또는 부호화되지 않은 수인지에 대한 판단이 이루어지게 되고, 상기 판정단계 204와 동일한 추론에 도달하게 된다. 상기 판정단계 214에서 부호화되지 않은 연산수들이 검색되면, 알고리즘은 곧바로 단계 222로 진행되어 종료된다. 상기 판정단계 214에서 부호화된 연산수들이 검색되면, 판정단계 216에서 결과가 양인가 또는 음인가에 대한 판단이 이루어지게 된다. 단계 216에서의 판단결과가 양인 경우에는, 알고리즘은 곧바로 단계 222로 진행되어 종료된다. 단계 216에서 음으로 판단되는 경우에는, 판정단계 218에서 S1과 S2가 모두 1인지에 대한 판단이 이루어지게 된다. S1과 S2가 모두 1인 경우에는, 단계 220에서 결과가 증가되고나서 단계 222에서 알고리즘이 종료되지만, 그렇지 않은 경우에는 알고리즘은 곧바로 단계 222로 진행되어 종료된다.
상기 알고리즘(220)에 대한 변형도 물론 가능하게 된다. 예컨대, S1및 S2가 0로 검출되면, 상기 증가단계는 생략된다. 상기 연산수들은 어떠한 순서로도 합산되어 중간결과를 얻을 수 있게 된다. 판정단계 214는, 판정단계 204의 실행후 부호화된 또는 부호화되지 않은 연산수들에 대한 독립적인 단계를 취하므로써, 제거될 수 있다. 또한, 합 및 합+1 출력은 증가되지 않은 그리고 증가된 버전들 모두에서 상기 축소된 중간결과를 적당한 선택출력과 함께 제공할 수 있게 된다.
부호화되지 않은 수들의 경우를 상세히 고려해 보기로 한다. 부호화되지 않은 수들의 경우, 0으로의 1/2값, 중간값 또는 3/4값의 반올림은, 항상 자리내림(rounding down)을 의미하게 된다. 예컨대, 두개의 제거된 최하위 유효비트를 생각해보면 그 비트의 가능성은 00, 01, 10, 11이고, 상기 제거된 제 2 최하위 유효비트는 0.12또는 0.510의 가중치를 갖는 반면, 상기 제거된 최하위 유효비트는 0.012또는 0.2510의 가중치를 갖게 된다. 그러므로, 00의 경우에는 그 결과는 정상이고, 01의 경우에는 1/4값이 반올림에 불충분하게 되며, 10의 경우에는 중간값이 반올림에 불충분하게 되고, 11의 경우에는 3/4값이 반올림에 불충분하게 된다. 두개의 최하위 유효비트위치로부터 소정의 캐리 출력비트들은 상기 중간결과가 산출되는 경우에 미리 고려된다는 것에 유의하여야 한다. 요약하면, 부호화되지 않은 연산수들에 대해, 상기 축소된 중간결과는 평균을 제공하게 되며, 증가는 발생되지 않게 된다.
부호화된 연산수들의 경우에는, 중간결과가 양이면 그 해석에는 부호화되지 않은 수들의 반올림을 위한 규칙이 수반된다. 이는 네개의 양의 연산수들에 대한 평균화뿐만 아니라 양 및 음의 연산수들의 평균화에도 적용가능하게 되고, 제공되는 합은 양의 결과를 나타낸다.
부가적으로, 부호화된 수의 경우, 연산수들의 합이 음이면 다른 반올림규칙이 적용된다. n-비트 부호화된 수(2의 보수) 'A'의 값이 이하의 식으로 주어지는 경우를 고려한다:
Figure kpo00001
상기 수학식 3에서, 비트들은 정수 n의 어떠한 값에 대해 0으로부터 n-1까지 열거된다. 예컨대, n=4의 경우에는 다음과 같이 된다.
Figure kpo00002
Figure kpo00003
Figure kpo00004
마찬가지로, 소수점의 우측(즉, 소수점 이하)에 2비트를 갖는 n=5의 경우에는 다음과 같이 된다.
Figure kpo00005
Figure kpo00006
Figure kpo00007
Figure kpo00009
Figure kpo00010
Figure kpo00011
Figure kpo00012
그러므로, 부호화된 2의 보수의 MSB(부호비트)는 -2n-1값 또는 가중치를 갖는 반면, 다른 비트들은 모두 양의 값 또는 가중치를 갖게 된다. 상기 축소된 중간결과가 양 또는 음인 경우에도 상기 축소된 중간결과의 LSB(최하위 유효비트)에는 양의 값을 가산하는 1의 증가가 유효한 연산으로 된다.
증가결정에 앞서, 음의 결과는 정상적인 결과 또는 1만큼 크게(예컨대 -5는 -4로 됨)된다. 상기 결과가 음이고 제거된 비트들이 00인 경우, 그 결과는 이미 정상적이면서 증가가 발생되지 않게 된다. 상기 결과가 음이고 제거된 비트들이 01, 10 또는 11인 경우, 그에 따라 1만큼의 증가는 0으로부터의 선행 반올림을 잘라버림(round down)(오프셋)으로써 정확한 결과를 제공하게 된다. 상기 확장된 연산수들의 합이 음의 결과인 상기 알고리즘(200)에 적용된 부호화된 연산수의 다양한 예들이 다음의 표 1에 열거되어 있다.
0으로 반올림된 네개의 부호화된 수들의 평균-음의 중간결과
연산수(10진수) 연산수(2진수) 연산수에 좌측비트부가 및 연산수가산 축소된 중간결과 및 제거비트 부호비트 증가 ? 결과
-7-6-5-4(-5.5avg) 1001101010111100 111001111010111011+ 111100101010 1010 10 1 Yes 1010+0001(오프셋반올림)1010(10진 -5)
6-6-5-3(-2.0avg) 110101010111101 000110111010111011+ 111101111000 1110 00 1 No 1110+0000(미반올림)1110(10진 -2)
5-6-5-3(-2.25avg) 101101010111101 000101111010111011+ 111101110111 1101 11 1 Yes 1101+0001(오프셋반올림)1110(10진 -2)
4-6-5-3(-2.5 avg) 100101010111101 000100111010111011+ 111101110110 1101 10 1 Yes 1101+0000(오프셋반올림)1110(10진 -2)
3-6-5-3(-2.75avg) 11101010111101 000011111010111011+ 111101110101 1101 01 1 Yes 1101+0001(오프셋반올림)1110(10진 -2)
연산수(10진수) 연산수(2진수) 연산수에 좌측비트부가 및 연산수가산 축소된 중간결과 및 제거비트 부호비트 증가 ? 결과
2-5-23(-0.5avg) 101011111011 000010111011111110+ 000011111110 1111 10 1 Yes 1111+0001(오프셋반올림)0000(10진 0)
-8-8-8-8(-8 avg) 1000100010001000 111000111000111000+ 111000100000 1000 00 1 No 1000+0000(미반올림)1000(10진 -8)
부호화되지 않은 연산수들의 경우에 최종결과(평균)는 부호화되지 않은 수인 반면, 부호화된 연산수들의 경우에는 그 최종결과도 부호화된 수이다.
네개의 연산수들이 n-비트 수들인 경우 n+2비트 중간결과를 얻기 위한 연산수들의 합은 오버플로우를 발생하지는 않게 된다. n+2비트 확장 연산수들은 n-비트 연산수들과 수학적으로 등가이다. 그러므로, n+2비트 중간결과를 얻기 위해 n+2비트 확장 연산수들의 합산에 의해 발생되는 어떠한 오버플로우도 무효화될 수 있다.
또한, n-비트 축소된 중간결과가 부호화되지 않은 수인 경우(연산수들이 부호화되지 않은 수인 경우) 또는 양의 수인 경우(MSB=0이고 연산수들이 부호화된 수인 경우), 증가는 일어나지 않게 되고, 그러므로 오버플로우도 발생되지 않게 된다. 마찬가지로, n-비트 축소된 중간결과가 음의 수인 경우(MSB=1이고 연산수들이 부호화된 수인 경우)에는 상기 축소 중간결과의 증가는 그 크기를 감소시키게 되고, 그에 따라 오버플로우를 발생시키지는 않게 된다.
도 3 은 상기한 방식으로 네개의 부호화된 또는 부호화되지 않은 3-비트 2진 연산수(A,B,C,D)를 평균화하기 위한 로직회로(300)의 블럭도이다. 상기 로직회로(300)는 부가회로(302), 가산기회로(306), 제어회로(312) 및, 멀티플렉서(314)를 포함하여 구성된다. 상기 부가회로(302)는 각각 상기 연산수(A,B,C,D)에 대한 부가비트(AAP,BAP,CAP,DAP)를 제공하기 위한 AND게이트(304a,304b,304c,304d)들로 이루어지고, 상기 연산수(A,B,C,D)는 각각 AND게이트(304a,304b,304c,304d)의 입력에 인가되는 MSB(A2,B2,C2,D2)를 갖게 된다. 상기 각각의 AND게이트는 그 입력에서 MODE신호를 수신하게 된다. 상기 MODE신호는 부호화된 수의 경우에 논리 1이고, 이 경우 상기 AND게이트(302a,302b,302c,302d)는 각각 부호비트(A2,B2,C2,D2)를 부가비트(AAP,BAP,CAP,DAP)로서 가산기회로(306)의 제 3 및 제 4 스테이지로 통과시키게 된다. 또한, 상기 MODE신호는 부호화되지 않은 수의 경우 논리 0이고, 이 경우 AND게이트(304a,304b,304c,304d)는 비트(A2,B2,C2,D2)를 차단함과 더불어 상기 부가비트(AAP,BAP,CAP,DAP)를 0으로 만들게 된다. 상기 연산수(A,B,C,D)는 가산기회로(306)의 스테이지 0에 인가되는 각 비트위치(A0,B0,C0,D0)와, 가산기회로(306)의 스테이지 1에 인가되는 각 비트위치(A1,B1,C1,D1), 및 가산기회로(306)의 스테이지 2에 인가되는 각 비트위치(A2,B2,C2,D2)를 갖게 된다.
상기 가산기회로(306)는 가산기로직(308)과 3-비트 합 및 합+1가산기(310)를 포함하여 구성되고, 상기 가산기로직(308)은 5-비트 확장 연산수들을 수취해서 각각 상기 확장 연산수들의 제 2 최하위 유효비트와 최하위 유효비트를 나타내는 합비트(S1,S0)를 발생시키게 된다. 또한, 상기 가산기로직(308)은 세개의 부분적인 합비트(Sp4,Sp3,Sp2)와 세개의 부분적인 캐리비트(Cp3,Cp2,Cp1)를 발생시키게 된다. 상기 부분적인 합과 부분적인 캐리비트들은 상기 확장 연산수들의 부분적인 합에 기초함과 더불어, 상기 확장 연산수들의 합의 세개의 최상위 유효비트(S4,S3,S2)를 연산하기 위해 사용된다. 상기 비트(Sp2,Cp1)는 가산기(310)의 스테이지 0에 인가되고, 비트(Sp3,Cp2)는 가산기(310)의 스테이지 1에 인가되며, 비트(Sp4,Cp3)는 가산기(310)의 스테이지 2에 인가된다. 상기 가산기(310)의 합출력에서 스테이지 0의 비트(S2)는 비트(Sp2,Cp1)를 가산함으로써 결정되고, 비트(S3)는 비트(Sp3,Cp2)와 스테이지 0에서 발생된 소정의 캐리출력비트를 가산함으로써 결정되며, 스테이지 2의 비트(S4)는 비트(Sp4,Cp3)와 스테이지 1에서 발생된 소정의 캐리출력을 가산함으로써 결정된다. 또한, 상기 가산기(310)는 비트위치(S2)에서 1만큼 증가된 합출력(S4,S3,S2,S1)에 대응하는 합+1출력(S+14,S+33,S+22,S+11)을 발생시키게 된다. 따라서, 그 합출력은 상기 축소된 중간결과에 대응하게 되고, 상기 합+1출력은 상기 증가된 축소중간결과에 대응하게 되며, 비트(S1,S0)는 상기 제거된 비트에 대응하게 된다.
상기 연산수들의 좌측에 두개의 비트 부가와 상기 중간결과로부터 제 2 최하위 및 최하위 유효비트의 제거를 위한 다른 방법들이 당 업계에 공지되어 있는 바, 예를 들면 n+2비트 레지스터들의 n의 최하위 유효위치내로 n-비트 연산수들을 로딩시키고, 부호화되지 않은 연산수들을 2비트위치만큼 우측으로 논리적으로 시프팅시키며, 부호화된 연산수들을 우측으로 2비트위치만큼 산술적으로 시프트시킴으로써 2비트를 부가할 수 있게 된다. 마찬가지로, n+2비트 중간결과는 n+2비트 레지스터내로 로드되어 2비트위치만큼 시프트됨으로써 부호화되지 않은 중간결과에 대해 사용되는 논리적인 우-시프트 및 부호화된 중간결과에 대해 사용되는 산술적인 우-시프트에 따라 두개의 최하위 유효비트가 시프트출력될 수 있게 된다. 그후, 상기 축소(시프트)된 중간결과는 n-비트 레지스터내에 저장될 수 있게 된다.
상기 제어회로(312)는 상기 확장 연산수들의 합의 최상위 유효비트(S4)와 두개의 최하위 유효비트(S1,S0) 및 MODE신호를 수취해서 제어출력측에서 선택신호(SEL)를 발생시키게 되는 바, 그 제어회로(312)는 다음의 식을 실행하게 된다.
Figure kpo00013
상기 수학식 11에 따르면, S4·(S1+S0)가 부호화된 수에 대해 1인 경우에 상기 SEL이 1로 되어 상기 가산기(310)의 합+1출력을 선택하도록 하거나, 그 이외의 경우에는 상기 SEL이 0으로 되어 상기 가산기(310)의 합출력을 선택하도록 한다.
상기 멀티플렉서(314)는 그 선택입력에서 상기 선택신호를, 제 1 입력에서 상기 합출력을, 그 제 2 입력에서 상기 합+1출력을 수신하게 된다. 상기 선택신호는 상기 멀티플렉서(314)가 상기 가산기(310)의 합출력 또는 합+1출력을 로직회로(300)의 출력으로 선택하도록 하게 된다.
도 4A 는 캐리축적 가산기를 사용하는 가산기로직(308)의 실시예를 나타낸다. 본 실시예는 전가산기(402,404,406,408,410,412,414,416,418)와 반가산기(420 ,422,424,426,428)를 포함하여 구성된다. 상기 전가산기(410)는 A0,B0,C0를 가산하게 되고, 반가산기(420)는 전가산기(410)의 합비트에 D0를 가산함으로써 S0를 결정하게 된다. 마찬가지로, 전가산기(408)는 A1,B1,C1을 가산하게 되고, 전가산기(418)는 비트(D1)와 전가산기(408)의 합비트 및 전가산기(410)의 캐리출력비트를 가산하게 된다. 반가산기(428)는 전가산기(418)의 합비트를 반가산기(420)의 캐리출력비트에 가산함으로써 S1과 부분적인 캐리비트(CP1)를 결정하게 된다. 그와 유사한 방식으로, 반가산기(426)는 부분적인 합비트(SP2)와 부분적인 캐리비트(CP2)를 결정하게 되고, 반가산기(424)는 부분적인 합비트(SP3)와 부분적인 캐리비트(CP3)를 결정하게 되며, 가산기(422)는 부분적인 합비트(SP4)를 결정하게 된다. 여기서, 상기 전가산기(402,412) 및 상기 반가산기(422)는 각각의 캐리출력비트에 대한 비접속(No-connection; N/C)을 갖게 된다.
도 4B 는 캐리축적 가산기와 2-입력 익스클루시브 OR게이트를 사용하는 가산기로직(308)의 다른 실시예를 나타낸다. 상기 도 4B 는 익스클루시브 OR게이트(430,432, 434,436,438)가 전가산기(402,412)와 반가산기(422)를 대신하는 점을 제외하면 도 4A 와 유사하다. 예컨대, 익스클루시브 OR게이트(430,432,434)는 최좌측 부가비트(AAP,BAP,CAP,DAP)의 합을 발생하게 되고, 익스클루시브 OR게이트(438)는 부분적인 합비트(SP4)를 발생하게 된다. 익스클루시브 OR게이트는 외부적인 캐리출력비트를 발생시킬 필요가 없기 때문에 가산기(402,412,422)에 비해 상당히 유효한 구성을 제공하게 된다.
도 5 는 가산기(310)에 대한 실시예를 나타낸다. 본 실시예에서 합과 합+1출력들은 캐리룩어헤드 가산기들에 의해 제공된다. 상기 캐리룩어헤드 가산기들은 단일명령사이클의 기본적인 스텝타임내에서 고속의 가산을 실행하게 된다. 전파-발생(propagate-generate;PG)부(502,504)는 각각 연산수(A,B,C,D)의 부분적인 합의 23과 22비트위치들을 나타내는 SP3과CP2,SP2와CP1에 대한 전파 및 발생신호(P1,CP1과 G1,P0와 G0)를 제공하게 된다. 상기 전파 및 발생신호들은 캐리체인(carry chaine; 506,508)의 각 스테이지에 공급된다. 캐리체인(506)은 그 최하위 유효 캐리입력비트(CINO)로서 '0'을 수신하여 각각 SP3와 CP2, SP2와 CP1및 0의 합에 대응하는 캐리출력비트(COUT1,COUT0)를 발생하게 된다. 캐리체인(508)은 그 최하위 유효캐리입력비트(C+1IN0)로서 '1'을 수신해서 각각 SP3과 CP2,SP2와 CP1및 1에 대응하는 캐리출력비트(C+1OUT1,C+1OUT0)를 발생하게 된다. 캐리출력비트(COUT1,COUT0)는 각각 합발생기(510)의 스테이지 2와 스테이지 1에 대한 캐리입력비트를 제공하게 되는 반면, 캐리출력비트(C+1OUT1,C+1OUT0)는 각각 합발생기(512)의 스테이지 2와 스테이지 1에 대한 캐리입력비트를 제공하게 된다.
상기 합발생기(510)는 스테이지 2에서 SP4와 CP3및 COUT1을 합산해서 S4를 제공하고, 스테이지 1에서 SP3과 CP2및 COUT0를 합산해서 S3를 제공하며, 스테이지 0에서 SP2와 CP1및 0을 합산해서 S2를 제공하게 된다. 상기 합발생기(512)는 스테이지 2에서 SP4와 CP3및 C+1OUT1를 합산해서 S+14를 제공하고, 스테이지 1에서 SP3와 CP2및 C+1OUT0를 합산해서 S+13를 제공하며, 스테이지 0에서 SP2와 CP1및 1을 합산해서 S+12를 제공하게 된다. 따라서, 상기 합발생기(510)는 합출력을 제공하게 되고, 합발생기(512)는 합+1출력을 제공하게 된다. 명백하게, 상기 합발생기는 캐리출력비트들이 미리 캐리체인에 의해 제공되기 때문에 그 캐리출력비트들을 발생할 필요는 없게 된다. 상기 합발생기의 각 스테이지는 제 1 및 제 2의 2-입력 익스클루시브 OR게이트(도시안됨)를 포함하여 구성될 수 있는 바, 그 경우에는 예컨대 그 제 1 익스클루시브 OR게이트의 입력들과 제 2 익스클루시브 OR게이트의 제 2 입력은 합산대상의 수들을 수신하게 되고, 상기 제 2 익스클루시브 OR게이트의 제 1 입력에는 제 1 익스클루시브 OR게이트의 출력이 결합되며, 상기 제 2 익스클루시브 OR게이트의 출력에서 결과가 제공되도록 구성될 수 있게 된다. 적정한 PG부와 캐리체인 및 합발생기들은 당 업계에 공지되어 있다. 또한, 두개의 2진수들의 합과 합+1을 실행하는 캐리선택 가산기와 같은 어떠한 회로가 상기 가산기(310)에 대해 사용될 수 있다.
도 6 은 상기 식 (11)에 따른 상기 제어회로(312)의 구성을 나타내고, 도 7 은 멀티플렉서(314)의 구성을 나타낸다. 다수의 2:1 멀티플렉서의 설계 및 그에 대한 데이터선택회로들은 공지의 구성을 나타낸다.
상기한 본 발명의 설명은 예시적인 것으로, 첨부된 특허청구의 범위에 설정된 바와 같이 발명의 요지를 한정하지는 않게 된다. 예컨대, 부가회로(302)와 가산기회로(306), 제어회로(312) 및 멀티플렉서(314)는 어떠한 적절한 회로에 의해서도 실시될 수 있고, 상기 연산수들은 최소한 3의 어떠한 비트길이로도 설정될 수 있다. 범용 컴퓨터 또는 프로세서는 단일명령사이클(바람직하게) 또는 다수의 명령사이클에서 본 발명을 실행하게 된다. 또한, 본 발명은 MPEG움직임처리 이외에도 다양한 적용에 적합하게 된다.
상기한 바와 같이, 본 발명에 따르면 단일명령사이클에서 네개의 부호화된 또는 부호화되지 않은 연산수에 대한 평균산출이 적절하게 실행될 수 있게 된다.
본 발명을 특정의 바람직한 실시예에 관련하여 도시하고 설명하였지만, 이하의 특허청구의 범위에 의해 마련되는 본 발명의 정신이나 분야를 이탈하지 않는 한도내에서 본 발명이 다양하게 개조 및 변화될 수 있다는 것을 당 업계에서 통상의 지식을 가진 자는 용이하게 알 수 있다.

Claims (20)

  1. 평균이 0으로 반올림된 정수로 되도록, 네개의 부호화된 연산수들의 평균을 구하기 위해 회로를 동작시키는 방법에 있어서,
    상기 연산수들의 각 좌측에 상기 각각의 연산수들에 대해 그 연산수가 양의 수인 경우 두개의 0을 부가비트로 부가하고 상기 연산수가 음의 수인 경우 두개의 1을 부가비트로 부가하여 확장된 연산수들을 제공하는 단계;
    상기 확장된 연산수들을 합산해서 중간결과를 제공하는 단계;
    상기 중간결과로부터 최하위 유효비트와 제 2 최하위 유효비트를 제거하여 축소된 중간결과를 제공하는 단계;
    상기 중간결과가 음의 값을 갖고 상기 제거된 비트들중의 어느 하나가 1인 경우 상기 축소된 중간결과를 증가시켜 상기 평균을 제공하는 단계; 및
    (i) 상기 중간결과가 양의 값을 갖고 (ii) 상기 중간결과가 음의 값을 가지며 상기 제거된 비트들 모두가 0인 경우 상기 축소된 중간결과를 평균으로 제공하는 단계;를 구비하는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 네개의 부호화된 연산수들의 평균을 구하기 위해 회로를 동작시키는 방법.
  2. 제 1 항에 있어서,
    상기 방법이 단일 명령사이클내에서 수행되는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 네개의 부호화된 연산수들의 평균을 구하기 위해 회로를 동작시키는 방법.
  3. 평균이 0으로 반올림된 정수로 되도록, 부호화된 그리고 부호화되지 않은 정수를 포함하는 네개의 연산수들의 평균을 구하기 위해 회로를 동작시키는 방법에 있어서,
    상기 연산수들의 각각의 좌측에 상기 각 연산수에 대해 그 연산수가 부호화되지 않은 경우 두개의 0을 부가비트로 부가하고 상기 연산수가 부호화된 양수인 경우에 두개의 0을 부가비트로 부가하며 상기 연산수가 부호화된 음수인 경우에 두개의 1을 부가비트로 부가하여 확장된 연산수들을 제공하는 단계;
    상기 확장된 연산수들을 합산하여 중간결과를 제공하는 단계;
    상기 중간결과로부터 최하위 유효비트와 제 2 최하위 유효비트를 제거하여 축소된 중간결과를 제공하는 단계;
    상기 연산수들이 부호화된 수이고 상기 중간결과가 음의 값을 가지며 상기 제거된 비트들중의 어느 하나가 1인 경우, 상기 축소된 중간결과를 증가시켜 상기 평균을 제공하는 단계;
    (i) 상기 연산수들이 부호화되지 않은 수이고 (ii) 상기 연산수들이 부호화된 수이며 상기 중간결과가 양의 값을 갖고 (iii) 상기 연산수들이 부호화된 수이며 상기 중간결과가 음의 값을 가지며 상기 제거된 비트들 모두가 0인 경우, 상기 축소된 중간결과를 상기 평균으로서 제공하는 단계;를 구비하는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 부호화된 그리고 부호화되지 않은 정수를 포함하는 네개의 연산수들의 평균을 구하기 위해 회로를 동작시키는 방법.
  4. 제 3 항에 있어서,
    상기 방법이 단일 명령사이클내에서 수행되는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 부호화된 그리고 부호화되지 않은 정수를 포함하는 네개의 연산수들의 평균을 구하기 위해 회로를 동작시키는 방법.
  5. 제 4 항의 방법을 수행하기 위한 프로세서.
  6. 평균이 0으로 반올림된 정수로 되도록, 부호화된 그리고 부호화되지 않은 정수들을 포함하는 네개의 n-비트 연산수들의 n-비트 평균을 얻기 위해 회로를 동작시키는 방법에 있어서,
    상기 네개의 n비트 연산수들의 각각의 좌측에 상기 각 연산수에 대해 그 연산수가 부호화되지 않은 경우 두개의 0비트를 부가하고 상기 연산수가 부호화된 양수인 경우 두개의 0비트를 부가하며 상기 연산수가 부호화된 음수인 경우 두개의 1비트를 부가하여 네개의 n+2비트 확장 연산수들을 제공하는 단계;
    상기 네개의 확장 연산수들을 합산하여 n+2비트 중간결과를 제공하는 단계;
    상기 중간결과로부터 최하위 유효비트와 제 2 최하위 유효비트를 제거하여 축소된 중간결과를 제공하는 단계;
    상기 네개의 연산수들이 부호화된 수이고 상기 중간결과가 음의 값을 가지며 상기 제거된 비트들중의 어느 하나가 1인 경우, 상기 축소된 중간결과를 증가시켜 상기 n-비트 평균을 제공하는 단계;
    (i) 상기 네개의 연산수들이 부호화되지 않은 수이고 (ii) 상기 네개의 연산수들이 부호화된 수이며 상기 중간결과가 양의 값을 가지며 (iii) 상기 네개의 연산수들이 부호화된 수이고 상기 중간결과가 음의 값을 가지며 상기 제거된 비트들 모두가 0인 경우, 상기 축소된 중간결과를 상기 n-비트 평균으로 제공하는 단계;를 구비하는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 부호화된 그리고 부호화되지 않은 정수들을 포함하는 네개의 n-비트 연산수들의 n-비트 평균을 얻기 위해 회로를 동작시키는 방법.
  7. 제 6 항에 있어서,
    상기 합산이 n+2비트 가산기회로에 의해 수행되는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 부호화된 그리고 부호화되지 않은 정수들을 포함하는 네개의 n-비트 연산수들의 n-비트 평균을 얻기 위해 회로를 동작시키는 방법.
  8. 제 7 항에 있어서,
    상기 가산기회로는 n-비트 캐리룩어헤드 합가산기와 n-비트 캐리룩어헤드 합+1가산기를 포함하고, 상기 축소된 중간결과를 증가시켜 상기 평균을 제공하는 상기 단계가 상기 합+1가산기의 출력을 선택하는 단계를 포함하며, 상기 축소된 중간결과를 평균으로 제공하는 상기 단계가 상기 합가산기의 출력을 선택하는 단계를 포함하는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 부호화된 그리고 부호화되지 않은 정수들을 포함하는 네개의 n-비트 연산수들의 n-비트 평균을 얻기 위해 회로를 동작시키는 방법.
  9. 제 8 항에 있어서,
    상기 방법이 단일 명령사이클에서 수행되는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 부호화된 그리고 부호화되지 않은 정수들을 포함하는 네개의 n-비트 연산수들의 n-비트 평균을 얻기 위해 회로를 동작시키는 방법.
  10. 평균이 0으로 반올림된 정수로 되도록, 네개의 n-비트 연산수들의 평균을 구하기 위한 장치에 있어서,
    상기 각각의 연산수들의 좌측에 상기 연산수가 부호화되지 않은 경우 0의 2비트를 부가하고 상기 연산수가 부호화된 양의 수인 경우 0의 2비트를 부가하며 상기 연산수가 부호화된 음의 수인 경우 1의 2비트를 부가하여 네개의 n+2비트 확장연산수를 제공하는 부가회로;
    상기 네개의 확장 연산수들의 합의 최하위 유효비트와 상기 네개의 확장 연산수의 합의 제 2 최하위 유효비트와 상기 네개의 확장 연산수들에 기초하는 n의 부분적인 합비트와 상기 네개의 확장 연산수들에 기초하는 n의 부분적인 캐리비트를 제공하기 위해 상기 네개의 확장 연산수들에 각각 결합된 네개의 n+2연산수입력을 갖는 가산기로직과, 상기 부분적인 캐리비트에 결합된 제 1 입력과 상기 부분적인 합비트에 결합된 제 2 입력 및 상기 네개의 확장된 연산수의 합의 n의 최하위 유효비트를 제공하기 위한 합출력을 갖는 n비트 합가산기와, 상기 부분적인 캐리비트에 결합된 제 1 입력과 상기 부분적인 합비트에 결합된 제 2 입력 및 상기 네개의 확장 연산수들의 1만큼 증가된 합의 n의 최상위 유효비트를 제공하기 위한 합+1출력을 갖는 합+1가산기,를 포함하는 가산기회로;
    상기 최하위 유효비트와 상기 제 2 최하위 유효비트, 상기 합출력의 최상위 유효비트에 결합됨과 더불어 상기 연산수들이 부호화된 또는 부호화되지 않은 수인지를 나타내는 모드신호에 결합되는 입력들과 제어출력을 갖춘 제어회로; 및
    상기 합출력에 결합된 제 1 입력과 상기 합+1출력에 결합된 제 2 입력 및 상기 제어회로의 제어출력에 결합된 선택입력을 갖춘 멀티플렉서;로 구성되고:
    상기 제어회로의 제어출력은, 상기 연산수들이 부호화된 수이고 상기 합출력이 음의 값을 가지며 상기 제 2 최하위 및 최하위 유효비트중의 어느하나가 1인 경우, 상기 멀티플렉서로 하여금 그 제 2 입력을 선택하도록 하고;
    상기 제어회로의 제어출력은, (i) 상기 연산수들이 부호화되지 않은 수이고 (ii) 상기 연산수들이 부호화된 수이며 상기 합출력이 양의 값을 갖고 (iii) 상기 연산수들이 부호화된 수이며 상기 합출력이 음의 값을 갖고 상기 제 2 최하위 및 최하위 유효비트가 모두 0인 경우, 상기 멀티플렉서로 하여금 그 제 1 입력을 선택하도록 하는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 네개의 n-비트 연산수들의 평균을 구하기 위한 장치.
  11. 제 10 항에 있어서,
    상기 합출력은 상기 모드신호가 부호화된 수를 나타내고 상기 합출력의 최상위 유효비트가 0인 경우에 양의 값을 갖게 되고, 상기 합출력은 상기 모드신호가 부호화된 수를 나타내고 그 합출력의 최상위 유효비트가 1인 경우 음의 값을 갖는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 네개의 n-비트 연산수들의 평균을 구하기 위한 장치.
  12. 제 10 항에 있어서,
    상기 부가회로는 네개의 AND게이트를 포함하고, 각 AND게이트는 상기 모드신호에 결합된 제 1 입력과 상기 연산수중 하나의 각 최상위 유효비트에 결합된 제 2 입력을 갖는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 네개의 n-비트 연산수들의 평균을 구하기 위한 장치.
  13. 제 10 항에 있어서,
    상기 가산기로직이 다수의 캐리 축적 가산기를 포함하는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 네개의 n-비트 연산수들의 평균을 구하기 위한 장치.
  14. 제 13 항에 있어서,
    상기 가산기로직이 다수의 익스클루시브 OR게이트를 추가로 포함하는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 네개의 n-비트 연산수들의 평균을 구하기 위한 장치.
  15. 제 14 항에 있어서,
    상기 가산기로직이 캐리 축적 가산기 및 익스클루시브 OR게이트를 포함하는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 네개의 n-비트 연산수들의 평균을 구하기 위한 장치.
  16. 제 14 항에 있어서,
    상기 익스클루시브 OR게이트는 각기 두개의 입력과 하나의 출력을 갖춘 제 1, 제 2 및 제 3 익스클루시브 OR게이트를 포함하고, 상기 제 1 및 제 2 익스클루시브 OR게이트의 네개 입력은 각기 상기 각각의 확장연산수들의 하나의 부가비트에 결합되고, 상기 제 1 및 제 2 익스클루시브 OR게이트의 두개 출력은 상기 제 3 익스클루시브 OR게이트의 두개의 입력에 결합되는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 네개의 n-비트 연산수들의 평균을 구하기 위한 장치.
  17. 제 10 항에 있어서,
    상기 합가산기는 상기 합출력을 제공하는 제 1 합발생기에 결합된 제 1 캐리체인에 결합되는 제 1 전파-발생부를 포함하는 n-비트 캐리룩어헤드 가산기이고, 상기 합+1가산기는 상기 합+1출력을 제공하는 제 2 합발생기에 결합된 제 2 캐리체인에 결합되는 제 2 캐리체인에 결합된 제 2 전파-발생부를 포함하는 n-비트 캐리룩어헤드 가산기인 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 네개의 n-비트 연산수들의 평균을 구하기 위한 장치.
  18. 제 17 항에 있어서,
    상기 합가산기와 상기 합+1가산기는 제 1 및 제 2 전파-발생부를 공유하게 되고, 상기 제 1 캐리체인 및 제 1 합발생기는 논리 0으로 설정된 최하위유효 캐리입력비트를 가지며, 상기 제 2 캐리체인 및 제 2 합발생기는 논리 1로 설정된 최하위유효 캐리입력비트를 갖는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 네개의 n-비트 연산수들의 평균을 구하기 위한 장치.
  19. 평균이 0으로 반올림된 정수로 되도록, 부호화된 그리고 부호화되지 않은 정수를 포함하는 네개의 n-비트 연산수 A, B, C, D의 평균을 구하기 위한 장치에 있어서,
    상기 연산수들의 최상위유효비트에 결합됨과 더불어 상기 연산수들이 부호화된 또는 부호화되지 않은 수를 나타내는 모드신호(MODE)에 접속된 입력과, 각 연산수의 좌측에 상기 MODE신호가 부호화되지 않은 수를 나타내는 경우 0의 2비트를 부가하고 그 MODE신호가 부호화된 수를 나타내고 상기 연산수의 최상위유효비트가 0인 경우 0의 2비트를 부가하며 상기 MODE신호가 부호화된 수를 나타내고 상기 연산수의 최상위유효비트가 1인 경우 1의 2비트를 부가함으로써 상기 연산수가 n+2비트 연산수로 변환되도록 하는 출력을 갖춘 부가회로;
    상기 네개의 확장연산수들에 각각 결합된 네개의 n+2비트 연산수입력을 가지면서 상기 확장연산수들의 합의 최상위유효비트(S0)와 상기 확장연산수들의 합의 제 2 최하위유효비트(S1) 및 상기 확장연산수들의 부분적 합산에 기초하여 n의 부분적 합비트와 n의 부분적 캐리비트를 제공하는 출력을 갖춘 가산기로직과, 상기 부분적 합비트와 부분적 캐리비트에 각각 결합된 제 1 및 제 2 입력을 갖춤과 더불어 상기 네개의 확장연산수들의 합의 최상위유효비트(SMSB)를 포함하는 n의 최좌측 비트를 제공하는 n-비트 합출력(S)을 갖춘 n-비트 합가산기와, 상기 부분적 합비트와 상기 부분적 캐리비트에 각각 결합된 제 1 및 제 2 입력을 갖춤과 더불어 상기 네개의 확장연산수들의 합의 최좌측 비트를 1만큼 증가시키기 위한 n-비트 합+1출력(S+1)을 갖는 n-비트 합+1가산기,를 포함하는 가산기회로;
    S0, S1, SMSB, 및 MODE에 접속된 입력, 및 제어출력을 갖는 제어회로;
    상기 합가산기의 합출력(S)에 결합된 제 1 입력과, 상기 합+1가산기의 합+1출력(S+1)에 결합된 제 2 입력 및, 상기 제어출력에 결합된 선택입력(SEL)을 갖춘 멀티플렉서;를 구비하고:
    상기 제어출력이
    Figure kpo00014
    의 식에 따라 결정되는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 부호화된 그리고 부호화되지 않은 정수를 포함하는 네개의 n-비트 연산수 A, B, C, D의 평균을 구하기 위한 장치.
  20. 평균이 0으로 반올림된 정수로 되도록, 부호화된 그리고 부호화되지 않은 정수를 포함하는 네개의 n-비트 연산수들의 n-비트 평균을 구하기 위한 장치에 있어서,
    상기 연산수들이 부호화된 수인지 또는 부호화되지 않은 수인지를 인식하기 위한 수단;
    각 연산수들의 좌측에 상기 각각의 연산수에 대해 상기 연산수가 부호화되지 않은 경우 0의 2비트를 부가하고 상기 연산수가 부호화된 양수인 경우 0의 2비트를 부가하며 상기 연산수가 부호화된 음수인 경우 0의 2비트를 부가하여 상기 연산수를 n+2비트로 변환하기 위한 수단;
    상기 확장연산수들을 합산해서 최상위유효비트(SMSB)를 갖는 n+2비트합을 제공하기 위한 수단;
    상기 n+2비트로부터 최하위유효비트(S0)와 제 2 최하위유효비트(S1)를 제거하여 n-비트합을 제공하기 위한 수단;
    상기 연산수들이 부호화된 수이고 SMSB가 1이며 S1및 S0중의 어느 하나가 1인 경우, 상기 n-비트 합을 증가시켜 상기 평균을 제공하기 위한 수단; 및
    (i) 상기 연산수들이 부호화되지 않은 수이고 (ii) 상기 연산수들이 부호화된 수이며 SMSB가 0이고 (iii) 상기 연산수들이 부호화된 수이고 SMSB가 1이며 S1및 S0모두가 0인 경우, 상기 n-비트 합을 상기 평균으로서 제공하기 위한 수단;을 구비하는 것을 특징으로 하는, 평균이 0으로 반올림된 정수로 되도록, 부호화된 그리고 부호화되지 않은 정수를 포함하는 네개의 n-비트 연산수들의 n-비트 평균을 구하기 위한 장치.
KR1019970016968A 1996-11-14 1997-05-02 단일 명령 사이클에서 0으로 반올림된 네개의 정수의 평균을 산출하기위한 방법 및 장치 KR100241064B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/748,873 US5917739A (en) 1996-11-14 1996-11-14 Calculating the average of four integer numbers rounded towards zero in a single instruction cycle
US8/748873 1996-11-14
US08/748873 1996-11-14

Publications (2)

Publication Number Publication Date
KR19980041723A KR19980041723A (ko) 1998-08-17
KR100241064B1 true KR100241064B1 (ko) 2000-02-01

Family

ID=25011292

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970016968A KR100241064B1 (ko) 1996-11-14 1997-05-02 단일 명령 사이클에서 0으로 반올림된 네개의 정수의 평균을 산출하기위한 방법 및 장치

Country Status (2)

Country Link
US (1) US5917739A (ko)
KR (1) KR100241064B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6512523B1 (en) * 2000-03-27 2003-01-28 Intel Corporation Accurate averaging of elements using integer averaging
US6889242B1 (en) * 2001-06-29 2005-05-03 Koninklijke Philips Electronics N.V. Rounding operations in computer processor
US7035331B2 (en) * 2002-02-20 2006-04-25 Intel Corporation Method and apparatus for performing a pixel averaging instruction
US20050004957A1 (en) * 2003-07-05 2005-01-06 General Instrument Corporation Single instruction multiple data implementations of finite impulse response filters
US7328230B2 (en) * 2004-03-26 2008-02-05 Intel Corporation SIMD four-data element average instruction
US7412473B2 (en) * 2004-09-01 2008-08-12 Ceva D.S.P. Ltd. Arithmetic circuitry for averaging and methods thereof
US7752028B2 (en) 2007-07-26 2010-07-06 Microsoft Corporation Signed/unsigned integer guest compare instructions using unsigned host compare instructions for precise architecture emulation

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1363073A (en) * 1970-07-17 1974-08-14 Solartron Electronic Group Generation of trigonometrical and other functions by interpolation between point values
GB1536845A (en) * 1975-02-26 1978-12-20 Bell & Howell Ltd Generation of mathematical functions
US4040052A (en) * 1976-06-29 1977-08-02 Aradar Corporation Digital video signal processing circuit
US4218751A (en) * 1979-03-07 1980-08-19 International Business Machines Corporation Absolute difference generator for use in display systems
JPS5633703A (en) * 1979-08-25 1981-04-04 Fanuc Ltd Signal converting circuit
US4334237A (en) * 1980-02-07 1982-06-08 Rca Corporation Adaptive amplitude averaging for weighting quantizing noise
JPH0776911B2 (ja) * 1988-03-23 1995-08-16 松下電器産業株式会社 浮動小数点演算装置
EP0451289B1 (en) * 1989-10-23 2000-07-26 Nippon Telegraph And Telephone Corporation Reference signal generator and digital demodulator including the same
TW224553B (en) * 1993-03-01 1994-06-01 Sony Co Ltd Method and apparatus for inverse discrete consine transform and coding/decoding of moving picture
US5428567A (en) * 1994-05-09 1995-06-27 International Business Machines Corporation Memory structure to minimize rounding/trunction errors for n-dimensional image transformation
US5710732A (en) * 1996-04-22 1998-01-20 Samsung Electronics Co., Ltd. Calculating the average of four integer numbers rounded away from zero in a single instruction cycle

Also Published As

Publication number Publication date
US5917739A (en) 1999-06-29
KR19980041723A (ko) 1998-08-17

Similar Documents

Publication Publication Date Title
US6473529B1 (en) Sum-of-absolute-difference calculator for motion estimation using inversion and carry compensation with full and half-adders
US6446107B1 (en) Circuitry for performing operations on binary numbers
KR19980070438A (ko) 동벡터 검출장치
KR100264958B1 (ko) 2정수의 절대차 산출장치
US5610850A (en) Absolute difference accumulator circuit
KR100241064B1 (ko) 단일 명령 사이클에서 0으로 반올림된 네개의 정수의 평균을 산출하기위한 방법 및 장치
KR100241069B1 (ko) 단일명령사이클에서 0부터 라운드처리된 4정수의 평균산출방법과 그 장치
CN114584773A (zh) 图像压缩装置、方法、电子设备及计算机可读存储介质
US7035331B2 (en) Method and apparatus for performing a pixel averaging instruction
KR100231901B1 (ko) 하나의 명령 주기내에서 0으로 반올림된 두 정수의 평균을 계산하는 방법 및 장치
JPH07168696A (ja) 2進数加算器のオーバフロー,アンダフロー処理回路
KR100264957B1 (ko) 하나의 명령주기내에서 0으로부터 반올림된 두정수의 평균을 계산하는 방법 및 장치
EP0361886A2 (en) Improved floating point computation unit
KR100241066B1 (ko) 단일명령사이클에서의 A+sin(A)식의 연산
KR100241074B1 (ko) 단일명령사이클에서의 A-sin(A)식의 연산
US6594396B1 (en) Adaptive difference computing element and motion estimation apparatus dynamically adapting to input data
KR100241073B1 (ko) 단일명령사이클에서 2A+sin(A)의 계산
KR100241075B1 (ko) 단일명령사이클에서 2A-sin(A)의 계산
TWI780796B (zh) 轉換數位影像資料
KR100431354B1 (ko) 곱셈기 회로
JP2815510B2 (ja) 色差信号の動きベクトル計算回路
KR19980023995A (ko) 단일 명령 사이클내의 선택된 sign 3식을 연산하기 위한 방법
KR100301835B1 (ko) 블록정합움직임추정방법및장치
KR0159571B1 (ko) 역양자화기
KR100198781B1 (ko) 저 전송률 비디오 신호 압축을 위한 양자화기

Legal Events

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

Payment date: 20101029

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee