다음의 설명은 참조부호에 관한 것이다. 유사한 것들은 한 도면에 나타내었다. 이 경우, 유사한 것들을 구별할 수 있도록 번호나 접미어를 문자 참조 부호에 부가하였다. 번호나 접미어는 편의를 위하여 생략할 수도 있다. 이것은 상세한 설명과 청구항들 모두에 적용된다.
도 1 및 도 2는 상술한 기본 특성들을 예시한다. 도 1은 이미지[IM]의 합성을 예시한다. 실제로, 이미지 샘플값의 세트[SV]는 기하학적 변환[T]에 따라 출발 공간[DEP]에서 도달 공간[ARR]으로 맵[MAP]된다.
도 2는 3개의 단계를 예시한다. 준비 단계[PREP]에서, 출발 공간[ITL]에서의 존은 이미지 샘플의 그룹을 덮는 도달 공간[TL] 내의 존에 역 기하학적 변환[T-1]을 적용함으로써 계산된다. 초기화 단계[INIT]에서, 입력값의 그룹[IV]은출발 공간[ITL] 내의 존마다 확립된다.
입력값의 그룹[IV]은 불(Boolean) 값[BV]으로 구성된다. 불 입력값은 출발 공간 내에서 소정의 위치(xd, yd)를 가지며, 그 위치가 이미지 샘플값의 세트[SV] 밖에 있다면 동일한 위치를 갖는 다른 입력값을 비-유효한 것으로 지정된다. 합성 단계[COMP]에서, 이미지 샘플의 그룹[TL]은 입력값의 그룹[IV]으로부터 합성된다. 불 값[BV]은 비-유효한 것으로 지정된 입력값이 이미지 샘플에 영향을 미치지 않도록 한다.
도 1 및 도 2에 예시된 특성들은, 예를 들면 MPEG4 분야에서 사용되는 것 같은 비주얼 객체의 정의, 및 3D 그래픽 분야에서 사용되는 것 같은 비주얼 객체의 정의로부터 이미지를 합성하기 위한 시스템에서 적용될 수 있다. 3D 그래픽 분야에서의 비주얼 객체가 통상적으로 그래픽 요소의 세트에 의해서 삼각형 형태로 표현됨은 이미 언급하였다. 파라미터의 세트는 다른 특성의 그래픽 요소, 특히 그 기하학적 특성 및 그 텍스쳐를 정의한다.
MPEG4 분야에서, 비주얼 객체의 정의는 통상 이미지 샘플값 세트의 형태로 한다. 루미넌스 값(Y), 크로미넌스 값(U, V), 불투명도 값(A) 및 불 값(S) 등의 다른 타입의 샘플값들이 있다. A 값(불투명도)은 다른 비주얼 객체나 또는 배경과 관련된 비주얼 객체를 수퍼임포우즈하기 위해 사용된다. S 값(불)은 사실상 관련된 비주얼 객체의 형상을 정의하는데 기여하며, 다른 값들은 테스쳐의 정의에 기여한다. 이미지 샘플값의 세트로부터의 값은 이후 원래의 값으로 부르기로 한다.
도 3은 이미지를 합성하기 위한 장치를 예시한다. 이 장치는 메모리[MEM], 프로세서[PRC] 및 제어기[CNTRL]로 구성된다. 메모리[MEM]는 입력부[INP] 및 출력부[OUT]로 구성된다. 입력부[INP]는 비주얼 객체의 하나 또는 여러 개의 정의를 기억하기 위해 사용된다. 예를 들면, 입력부[INP]는 MPEG4 표준 및 3D 그래픽 데이터에 따라 디코딩 동작을 하여 나타난 데이터로 구성된다. 따라서, 입력부[INP]는 하나 또는 여러 개의 이미지 샘플값의 세트로 구성된다. 출력부[OUT]는 합성된 이미지를 일시적으로 기억하기 위해 사용된다. 이 이미지는, 예를 들면 화면 상에 표시하기 위한 표시 장치에 의해서 판독된다.
도 4는 도 3에 나타낸 장치가 어떻게 이미지 샘플값의 3세트[SV1, SC2, 1V3]로부터 이미지[IM]를 합성하는 가를 개념적인 방식으로 예시한다.
이미지 샘플값의 3세트[SV]는 사실상 2D 공간에 존재하며, 이하에서는 출발 공간[DEP]으로 부르기로 한다. 각 원래의 값은 출발 공간[DEP] 내에서 소정의 위치를 갖는다. 이 위치는 수평 및 수직 차원의 좌표(xd, yd)로 정의된다. 이좌표(xd, yd)는 이하에서 출발 좌표로서 부르기로 한다. 도 3에 예시한 프로세서[PRC]는 출발 좌표(xd, yd)를 원래의 값을 기억하기 위한 메모리 어드레스와 연관시킨다. 따라서, 프로세서[PRC]는 또한 원래의 값이 기억된 어드레스를 출발 좌표(xd, yd)로부터 확립한다.
합성된 이미지[IM]는 사실상 이후에 도달 공간[ARR]으로 불리우는 2D 공간에 존재한다. 각 이미지 샘플은 도달 공간[ARR]에서 소정의 위치를 갖는다. 이 위치는 수평 및 수직 차원의 좌표(xa, ya)로 정의된다. 이 좌표(xa, ya)는 이후에 도달 좌표로 부르기로 한다. 도 3에 예시된 제어기[CNTRL]는 도달 좌표(xa, ya)를 이미지 샘플을 기억하기 위한 메모리 어드레스와 연관시킨다. 따라서, 제어기[CNTRL]는 또한 이미지 샘플이 기억되어야만 하는 어드레스를 도달 좌표(xa, ya)로부터 확립한다.
출발 공간[DEP]으로부터 도달 공간[ARR]까지의 관련된 이미지 샘플값의 각 세트[SV]를 맵[MAP]한다. 도 4에 예시한 맵핑[MAP]은 기하학적 변환[T]을 포함한다. 또한, 프로세서[PRC]는 배경[BG] 상에 맵핑된 이미지 샘플값의 세트를 수퍼임포우즈 또는 블렌드[BLND]한다. 이것은 이미지 샘플값의 여러 개의 세트들이 이미지 샘플에 기여함을 의미한다.
도 4에서, 이미지 샘플값의 세트[SV]는 직사각형으로 표시된다. 이것으로 그 통상의 구조를 충분히 특징화하게 된다. 그러나, 프로세서[PRC]는 사실상 출발공간으로부터 도달 공간으로 맵되는 다른 형상을 얻기 위하여 트림(trim)한다. 예를 들면, 프로세서[PRC]는 3D 비주얼 객체의 정의와 연관된 기하학적 파라미터에 기초하여 직사각형을 트림한다. 이 경우, 그 결과로 프로세서[PRC]가 출발 공간으로부터 도달 공간으로 맵하게 되는 삼각형이 나타나게 된다. 일부 경우에는, 직사각형을 트리밍하는 것은 이미지 샘플값 세트 내의 서브셋을 정의하는 것에 대응한다.
도 3에 예시된 장치는 이미지 샘플 블록의 연속적인 생성에 의해서 이미지를 합성한다. 이미지 샘플 블록은 이후 "타일"로 부르기로 한다. 타일은, 예를 들면 16×16 이미지 샘플로 구성된다. 프로세서[PRC]는 제어기[CNTRL]의 제어하에 타일을 생성한다. 제어기[CNTRL]는 프로세서[PRC]가 타일 생성을 개시하기 전에 각 타일에 대한 제어 파라미터를 확립한다. 이로서 준비 상태를 확립하게 된다. 일단, 제어 파라미터가 확립되면, 제어기[CNTRL]는 상기 프로세서가 연속적으로 타일을 생성할 수 있도록 제어 파라미터를 연속적으로 프로세서[PRC]에 적용한다. 이로서 실행 상태를 구성하게 된다.
특히, 준비 상태에서, 제어기[CNTRL]는 우선 합성된 이미지를 구성하는 타일의 리스트를 확립한다. 각 타일에 대하여, 제어기[CNTRL]는 타일에 기여하는 이미지 샘플값 세트의 리스트를 확립한다. 상기 각 세트에 대하여, 제어기[CNTRRL]는 역 타일을 계산한다. 이 역 타일은 타일의 역 기하학적 변환에 의해서 얻어진다. 이 역 기하학적 정보는 도 4에 예시한 바와 같이 관련된 이미지 샘플값의 세트가 맵핑됨에 따른 기하학적 변환의 역을 뜻한다.
도 5는 타일[TL] 및 이와 연관된 역 타일[ITL]을 예시한다. 타일[TL]은 도달 공간[ARR]에 존재하며, 역 타일[ITL]은 출발 공간[DEP]에 존재한다. 도 5는 출발 공간[DEP] 내의 이미지 샘플값[SV]의 세트, 및 도달 공간[ARR]에서의 상기 세트[SV]의 맵핑을 나타낸다. 이 맵핑은 기하학적 변환[T]을 포함한다. 이 역 타일[ITL]은 타일[TL]에 역 기하학적 변환[T-1]을 적용함으로써 구해진다. 도 5에 예시된 역 타일[ITL]은 이것이 이미지 샘플값 세트의 에지를 덮는 점에서 상이하다.
제어기[CNTRL]는 역 타일[ITL]을 작성하는 출발 공간에서 직사각형 박스를 확립한다. 이 박스는 도 5에 파선으로 예시하였다. 적절한 시점에, 제어기[CNTRL]는 직사각형 박스의 정의를 제어 파라미터의 형태로 프로세서[PRC]에 전송한다. 이 제어 파라미터는 또한 만약 있다면 에지의 존재에 관한 정보를 포함한다. 이러한 점에서, 여러 가지 타입의 에지가 있음을 유념해야 한다. 예를 들면, 에지는 도 5에 예시한 바와 같이 이미지 샘플값 세트의 에지일 수 있다. 에지는 또한 3D 그래픽 요소의 정의로부터 얻어진 삼각형의 에지일 수 있다.
도 6은 도 3에 나타낸 프로세서[PRC]가 어떻게 타일[TL]을 생성하는 가를 예시한다. 이 타일[TL]은 제 1 내지 제 3 값[SV1, SV2, SV3]으로 재번호화된 이미지 샘플값의 3 세트[SV]로부터 생성된다. 이 이미지 샘플값[SV]의 3세트는 도 3에 나타낸 메모리[MEM]에 존재한다.
프로세서[PRC]는 타일에 기여하는 이미지 샘플값의 각 세트[SV]에 대하여 초기화 단계[INIT]를 수행한다. 초기화 단계[INIT]는 입력값의 블록[IV]으로 유도된다. 제 1 초기화 단계[INIT1]에서, 프로세서[PRC]는 이미지 샘플값[SV1]이 제 1세트로부터의 입력값의 제 1 블록[TV1]을 생성하고, 이미지 샘플값의 제 2 세트[SV2]로부터 입력값의 제 2 블록[IV2]을 생성한다. 제 3 초기화 단계에서, 프로세서[PRC]는 이미지 샘플값의 제 3 세트로부터 이미지 값이 제 3 블록[IV3]을 생성한다. 입력값의 블록[IV]은 타일[TL] 생성을 위해 필요한 관련된 이미지 샘플값[V] 세트의 일부를 나타낸다. 초기화 단계[INIT]는 이후에 더 상세히 설명하기로 한다.
입력값의 블록[IV]은 도 4 및 도 5에 예시된 출발 공간[DEP]에 존재한다. 각 입력값은 출발 공간에서 그 위치를 정의하는 출발 좌표(xd, yd)를 갖는다. 여기에는 루미넌스 입력값(Y), 크로미넌스 입력값(U, V), 불투명도 입력값(A) 및 불 입력값(S)의 다른 타입의 입력값이 있다. 입력값의 블록[IV]의 포맷은 4:4:4이다. 이것은 출발 공간 내에 소정의 위치(xd, yd)를 갖는 각 Y 입력값에 대하여, 동일한 위치(xd, yd)를 갖는 U 입력값 및 V 입력값이 있음을 의미한다. 여기서는, 또한 상기 위치(xd, yd)를 갖는 A 입력값(불투명도) 및 불 입력값이 있다. 불 입력값은 관련된 Y, U, V 및 A 입력값이 초기화 단계[INIT]에 이어서 합성 단계[COMP]에서 고려해야 하는가를 표시한다. 이것은 불 입력값이 관련된 Y, U, V 및 A 입력값이 유효한가의 여부를 나타냄을 의미한다.
프로세서[PRC]는 입력값의 각 블록[IV]에 대하여 합성 단계[COMP]를 수행한다. 각 합성 단계[COMP]에서, 프로세서[PRC]는 사실상 출발 공간[DEP]에서 도달 공간[ARR]까지 관련된 입력값의 블록[IV]의 일부를 맵한다. 이 맵핑은 도 4에 예시된 바와 같이 관련된 기하학적 변형[T]을 포함한다. 제 1 합성 단계[COMP1]에서, 프로세서[PRC]는 사실상 입력값[IV1]의 제 1 블록의 일부를 맵하고, 배경 타일[BGTL] 위에 상기 맵핑의 결과를 수퍼임포우즈한다. 따라서, 제 1 합성 단계[COMP1]는 제 1 중간 타일[PTL1]을 유도한다. 제 2 합성 단계[COMP2]에서, 프로세서[PRC]는 사실상 입력값의 제 2 블록[IV2]의 일부를 맵하고, 그 맵핑의 결과를 제 1 중간 타일[PTL1] 위에 수퍼임포우즈한다. 따라서, 제 2 합성 단계는 제 2 중간 타일[PTL2]을 유도한다. 제 3 합성 단계[COMP3]에서, 프로세서[PRC]는 사실상 입력값의 제 3 블록[IV3]의 일부를 맵하고, 그 맵핑 결과를 제 2 중간 타일[PTL2] 위에 수퍼임포우즈한다. 따라서, 제 3 합성 단계[COMP3]는 타일[TL]을 유도한다. 이 합성 단계[COMP]는 이후 더 상세히 설명하기로 한다.
이하, 프로세서[PRC]가 초기화 단계[INIT]에서 어떻게 입력값의 블록[IV]을 작성하는 가를 설명하기로 한다. 프로세서[PRC]는 메모리[MEM]에서의 판독 동작을 행한다. 이 판독 동작은 관련된 역 타일[ITL]을 구성하는 출발 공간에서의 직사각형 존에만 관계가 있다. 이 직사각형 존은 이하 판독 존으로 부르기로 한다. 이것은 도 6에서 파선으로 예시된다.
관련된 이미지 샘플값 세트[IVS]의 포맷을 4:4:4로 가정한다. 또한, 프로세서[PRC]가 판독 존에 존재하는 모든 원래의 값을 일시적으로 기억할 수 있도록 판독 존이 충분히 작은 것으로 가정한다. 이 경우, Y, U, V 및 A 입력값은 판독 존에서의 각 원래의 Y, U, V 및 A의 카피이다. 사실상, 프로세서[PRC]는 원래의 Y, U, V 및 A 값이 관련되는 한 내부 메모리 내의 판독 존을 카피한다.
프로세서[PRC]는 관련된 이미지 샘플값 세트[IVS]의 포맷이 4:4:4와 다르다면 포맷을 전환한다. 예를 들면, 이미지 샘플값 세트[IVS]의 포맷을 4:2:2로 가정한다. 이 경우, 프로세서[PRC]는 사실상 2개의 인접한 원래의 U값들 사이의 서플리멘터리 U값을 생성한다. 또한, 2개의 인접한 원래의 V값들 사이의 서플리멘터리 V값을 생성한다. 따라서, 포맷 4:2:2 에서 4:4:4로의 전환은 2개의 인접 원래의 U값들 사이의 보간 및 2개의 인접 원래의 V값들 사이의 보간을 포함한다. 이미지 샘플값 세트[IVS]의 포맷이 4:2:0이면, 프로세서[PRC]는 4개의 인접 원래의 U값들간의 보간 및 4개의 인접 원래의 V값들간의 보간을 수행한다.
프로세서[PRC]는 입력값의 블록[IV]을 일시적으로 기억하는 내부 메모리를 포함한다. 이 내부 메모리는 상대적으로 작다. 도 6에 나타낸 판독 존은 너무 커서, 내부 메모리는 상기 판독 존에 존재하는 모든 원래의 값들을 기억할 수 없다. 이 경우, 프로세서[PRC]는 사실상 상기 값을 압축한다. 프로세서[PRC]는 Y 입력값을 얻기 위하여 N개의 연속적인 원래의 Y값의 평균을 계산한다. 여기서, N은 압축 팩터를 나타내는 정수이다. 필요하다면, 프로세서는 원래의 U, V 및 A값과 유사한 값들을 압축한다.
프로세서[PRC]는 포맷을 전환하고, 동시에 값을 압축한다. 이 경우, 프로세서[PRC]는 상술한 보간을 압축 팩터(N)의 함수로서 적응시킨다. 예를 들면, 압축 팩터(N)가 2이고, 메모리[MEM] 내의 기억 포맷이 4:2:2인 것으로 가정한다. 이 경우, 프로세서[PRC]는 2개의 원래의 값들 사이의 보간을 수행하지 않는다. 이미지 샘플값의 세트[IVS] 내의 원래의 U 및 V값의 해상도는 이미 충족되었고, 원래의 Y값의 압축에 의해 얻어진 해상도와 동일하다.
프로세서[PRC]는 만약 있다면 하나 또는 여러 개의 에지의 정의로부터 불 입력값을 생성한다. 관련된 이미지 샘플값의 세트가 원래의 S값을 포함하면, 프로세서[PRC]는 또한 판독 존 애의 원래의 S값을 고려한다.
도 7a, 7b 및 7c는 불 입력값의 생성을 개념적인 방식으로 예시한다. 각 도면은 도 5에 이미 나타낸 것에 대응하는 역 타일[ITL]을 예시한다. 이 역 타일[ITL]은 관련된 이미지 샘플값 세트의 에지[EDGE]를 덮는다. 직사각형은 역 타일[ITL]을 구성한다. 도면을 간단화하기 위하여, 직사각형 박스는 출발 공간 내의 8×6 위치를 포함한다.
도 7a는 이미지 샘플값의 관련 세트로부터 확립된 불 값을 예시한다. 이미지 샘플값의 세트는 에지[EDGE] 위의 위치에 대한 S값을 포함한다. 원래의 S값이 비주얼 객체 형상의 정의를 구성함을 상기한다. 도 7a는 비주얼 객체의 윤곽의 일부를 파선으로 예시한다. 이미지 샘플값의 세트는 에지[EDGE] 아래의 위치에 대한 원래의 S값을 포함하지 않는다. 따라서, 에지[EDGE] 아래의 불 값은 값[x]을 고려하지 않는다.
도 7b는 이미지 샘플값 세트의 에지[EDGE]로부터 확립된 불 값을 예시한다. 에지[EDGE] 위의 불 값은 1과 동일하다. 이것은 상기 위치에 대한 원래의 값이 있음을 나타낸다. 대조적으로, 에지[EDGE] 아래의 불 값은 0과 동일하다. 이것은 상기 위치에 대한 원래의 값이 없음을 나타낸다.
도 7c는 논리 AND 함수에 따라 도 7a 및 7b를 조합함으로써 구해진 불 값을예시한다. 이것은 도 7c에 예시된 불 값이 도 7a에서의 동일 위치 및 도 7b에서의 동일 위치를 갖는 불 값의 AND 조합의 결과를 의미한다. 도 7c에 나타낸 불 값은 불 입력값을 나타낸다.
도 8a, 8b 및 8c는 불 입력값의 다른 생성을 예시한다. 상기 도면은 역 타일을 나타내지 않는데, 그 이유는 원칙적으로 이것이 역할을 하지 않기 때문이다. 직사각형 박스는 이미지 샘플값의 관련 세트의 에지를 포함하지 않는 것으로 가정한다. 즉, 직사각형 박스는 이미지 샘플값의 관련 세트에 완전하게 존재하지 않는다.
도 8a는 이미지 샘플값의 관련 세트로부터 확립된 불 값을 예시한다. 이미지 샘플값의 세트는 직사각형 박스 내의 모든 위치에 대한 원래의 S값을 포함한다. 상기 원래의 S값이 비주얼 객체 형상의 정의를 구성함을 다시 상기한다. 도 8a는 파선에 의해서 비주얼 객체의 윤곽의 일부를 예시한다.
도 8b는 여러 개의 에지 정의로부터 확립된 불 값들을 예시한다. 상기 에지 정의는 3D 그래픽 요소의 기하학적 파라미터에 기초한다. 여기에는 제 1 에지[EDGE1], 제 2 에지[EDGE2] 및 제 3 에지[EDGE3]가 있다. 상기 에지[EDGE]는 삼각형[TRNGL]을 정의한다. 이 삼각형[TRNGL] 내의 각 불 값은 1과 동일하다. 삼각형[TRNGL] 밖의 각 불 값은 0과 동일하다.
도 8c는 논리 AND 함수를 따라 도 8a 및 8b를 조합함으로써 얻어진 불 값을 예시한다. 이것은 도 8c에 예시된 불 값이 도 8a에서의 동일 위치와 도 8b에서의 동일 위치를 갖는 불 값의 AND 조합의 결과임을 의미한다. 도 8c에 예시된 불 값은 불 입력값을 나타낸다. 상기 예에서, 형상이 원래의 S값에 의해 규정된 비주얼 객체는 3D 그래픽 요소에 연관된 여러 개의 정의에 의해서 트림된다.
이하, 합성 단계[COMP]에서의 프로세서[PRC]에 의해서 수행되는 동작을 상세히 설명한다. 각 합성 단계[COMP]에서, 프로세서[PRC]는 사실상도 5에 예시된 바와 같이 타일[TL]을 차지하는 도달 공간[ARR]에서의 존을 스캔한다. 이 존은 정수로 도달 좌표(xa, ya)에 의해 특성화된 여러 위치를 포함한다. 타일[TL]은 각 위치(xa, ya)에 대하여 Y 이미지 샘플, U 이미지 샘플 및 V 이미지 샘플을 포함한다. 각 위치(xa, ya)에 대하여, 프로세서[PRC]는 Y 기여값, U 기여값, V 기여값, A 기여값 및 S 기여값을 확립한다. 프로세서[PRC]는 입력값[IV]의 관련 블록으로부터 상기 기여값을 확립한다.
도 9는 프로세서[PRC]가 어떻게 도달 공간[ARR]에서의 위치(xa, ya)에 대한 Y 기여값을 확립하는 가를 예시한다. 프로세서[PRC]는 관련 위치의 도달 좌표(xa, ya)로부터 출발 좌표(xd, yd)를 계산한다. 출발 좌표(xd, yd)는 관련된 기하학적 변환의 역[T-1]을 도달 좌표(xa, ya)에 적용함으로써 구해진다. 도달 좌표(xa, ya)는 정수이고, 출발 좌표(xd, yd)는 유리수이다. 이것은 출발 좌표(xd, yd)가 정수 부분(xd', yd')과 분수 부분(△xd, △yd)로 분해됨을 의미한다. 다음의 관계를 적용한다: (xd, yd)=(xd', yd')+(△xd, △yd)이고, 여기서 xd' 및 yd'는 정수이고, △xd및 △yd는 0과 1 사이의 유리수이다.
도 9는 필터 커늘[KRNL]은 입력값의 관련 블록[IV]에 존재한다. 이것은 필터 커늘[KRNL]이 통상 16Y 입력값을 포함함을 의미한다. 하나 또는 여러 개의 Y 입력값이 비-유효한 것임을 유념해야 한다. 입력값이 유효한 가의 여부를 불 값이 표시함을 상기한다.
프로세서[PRC]는 필터 커늘[KRNL] 내의 유효 Y 입력값의 가중 조합을 확립한다. 가중 팩터는 출발 좌표(xd, yd)의 분수 부분(△xd, △yd)에 의존한다. 가중 조합은 Y 기여값[CV/Y]을 구성한다. 프로세서[PRC]는 같은 방법을 통해 U, V 및 A 기여값을 확립한다. 불 기여값은 통상 필터 커늘[krnl]의 중심에 가장 가까운 불 입력값이다. 불 기여값은 U, V 및 A 기여값이 다음에 고려되는 가의 여부를 표시한다.
도 6에 예시된 제 1 합성 단계[COMP1]에서, 프로세서[PRC]는 상술한 바와 같이 도달 공간에서 타일[TL]이 차지하는 존을 스캔한다. 각 위치(xa, ya)에 대하여, 프로세서[PRC]는 도 9를 참조하여 설명한 바와 같이 입력값[IV1]의 제 1 블록으로부터 Y, U, V, A 기여값 및 불 기여값을 확립한다.
T, U, V 및 A 기여값이 유효한 것임을 불 기여값이 표시하면, 프로세서[PRC]는 동일한 위치(xa, ya)를 갖는 배경 타일[BGTL]로부터 시작하는 Y, U 및 V 기여값과 Y, U 및 V 배경 샘플의 각 가중 조합을 확립한다. 상기 가중 조합의 결과는 제 1 Y, U 및 V 중간 샘플을 구성한다. A 기여값은 가중 팩터를 판단한다. 만약, 불기여값이 Y, U, V 및 A 기여값이 유효하지 않다고 표시하면, 배경 타일[BGTL]로부터 시작하는 Y, U 및 V 배경 샘플은 제 1 Y, U 및 V 중간 샘플을 구성한다. 따라서, 프로세서[PRC]는 각 위치(xa, ya)에 대한 제 1 Y, U 및 V 중간 샘플을 확립한다. 스캐닝 동작의 종료시, 제 1 Y, U 및 V의 세트는 도 6에 예시된 제 1 중간 타일[PTL1]을 구성한다.
도 6에 예시된 제 2 합성 단계[COMP2] 및 제 3 합성 단계[COMP3]에서, 프로세서[PRC]는 본질적으로 상술된 제 1 합성 단계[COMP1]에서와 동일한 동작을 수행한다. 제 2 합성 단계[COMP2]에서, 입력값의 제 2 블록[IV2]은 입력값의 제 1 블록[IV1]을 대신한다. 제 1 중간 타일[PTL1]은 배경 타일[BGTL]을 대신하고, 따라서, 제 1 중간 샘플은 배경 샘플을 대신한다. 프로세서[PRC]는 각 위치마다 제 2 Y, U 및 V 중간 샘플을 확립한다. 스캐닝 동작의 종료시, 제 2 Y, U 및 V 중간 샘플은 도 6에 예시된 제 2 중간 타일[PTL2]을 구성한다.
제 3 합성 단계[COMP3]에서, 입력값의 제 3 블록[IV3]은 제 1 합성 단계[COMP1]에서 사용되는 입력값[IV1]의 제 1 블록을 대신한다. 제 2 중간 타일[PTL2]은 배경 타일[BGTL]을 대신하며, 따라서 제 2 중간 샘플은 배경 샘플을 대신한다. 프로세서[PRC]는 각 위치(xa, ya)에 대한 Y, U 및 V 이미지 샘플을 확립한다. 스캐닝 동작의 종료시, Y, U 및 V 이미지 샘플은 도 6에 나타낸 타일[TL]을 구성한다.
도 10은 프로세서[PRC]를 예시한다. 프로세서[PRC]는 랜덤 액세스메모리[DMA], 초기화 회로[CINIT], 2개의 메모리[OM] 및 합성 회로[CCOMP]를 포함한다. 더 상세하게, 초기화 회로[CINIT]는 형상화기[SF], 형상 메모리[SM], 객체 형성기[OF] 및 내부 제어 회로[IML]를 포함한다. 합성 회로[CCOMP]는 기하학적 변환 회로[GT], 필터 형상화기[FIF], 계수 메모리[COM], 보간 회로[IP], 블렌딩 회로[BL] 및 2개의 블렌딩 메모리[BLM]를 포함한다. 내부 메모리[SM, OM1, OM2] 근처에 참조부호가 없는 블록은 메모리 제어 회로를 나타낸다.
초기화 회로[CINIT]는 도 6에 예시된 초기화 단계[INIT]를 수행한다. 2개의 객체 메모리[OM]는 도 6에 나타낸 입력값의 블록[IV]을 일시적으로 기억하기 위해 사용된다. 프로세서[PRC]는 하나 및 다른 하나의 객체 메모리[OM]에서의 어드레스와 도 4에 예시된 출발 공간[DEP]에서의 위치(xd, yd)간을 연관시킨다. 합성 회로[CCOMP]는 도 6에 나타낸 합성 단계[COMP]를 수행한다. 2개의 블렌딩 메모리[BLM]는 배경 타일[BGTL], 제 1 중간 타일[PTL1], 제 2 중간 타일[PTL2] 및 타일[TL]을 일시적으로 기억하기 위해 사용된다. 프로세서[PRC]는 하나 및 다른 하나의 블렌딩 메모리[BLM]에서의 어드레스와 도 4에 예시된 도달 공간[ARR]에서의 위치(xa, ya)간을 연관시킨다.
도 11은 도 10에 나타낸 내부 제어 회로[IML]의 동작을 예시한다. 내부 제어 회로[IML]는 도 3에 예시된 제어기[CNTRL]로부터 제어 파라미터를 수신하고, 그 제어 파라미터는 직사각형 박스[BBOX]를 정의한다. 이 직사각형 박스[BBOX]는 도 5를 참조하여 상술한 바와 같이 관련된 역 박스[ITL]를 구성한다.
내부 제어 회로[IML]는 직사각형 박스[BBOX]로부터 확장된 직사각형 박스[EBBOX] 및 보간 회로[IP]에 의해 적용되는 필터 커늘[KRNL]을 확립한다. 용어 필터 커늘[KRNL]은 도 9를 참조하여 이미 설명하였다. 확장된 직사각형 박스[EBBOX]는 직사각형 박스[BBOX] 내의 필터 커늘[KRNL]의 중심을 대체함으로써 커늘 내에 포함되는 모든 값들을 포함한다.
내부 제어 회로[IML]는 표준 사이즈를 갖는 정렬된 직사각형 박스[MABOX]를 얻기 위하여 확장된 직사각형 박스[EBBOX]를 확장한다. 정렬된 직사각형 박스[MABOX]는 출발 공간 내의 소정의 존을 나타낸다. 수평 및 수직 방향에서의 상기 존 내의 위치의 수는 수평 및 수직 방향에서의 입력값의 블록의 위치수와 P와 Q의 곱이다. 여기서, P와 Q는 정수이다. 예를 들면, 입력 블록은 32×32 위치이다. 이 경우, 정렬된 직사각형 박스[MABOX]는, 예를 들면 32×32 위치, 32×64 위치, 64×32 위치 또는 64×32 위치를 포함한 출발 공간에서의 존을 나타낸다. 따라서, 정렬된 직사각형 박스[MABOX]를 향하여 확장된 직사각형 박스[EBBOX]의 확장은 도 10에 나타낸 객체 메모리[OM]의 채움을 용이화한다.
도 12는 3D 그래픽 요소의 표면을 포함한 정렬된 직사각형 박스[MABOX]를 예시한다. 기하학적 파라미터는 삼각형 면을 정의한다. 기하학적 파라미터는, 예를 들면 삼각형 면 각[V]의 축 좌표일 수 있다. 기하학적 파라미터는 또한 3개의 에지 라인, 즉 제 1 에지 라인[EL1], 제 2 에지 라인[EL2] 및 제 3 에지 라인[EL3]을 정의한다. 에지 라인[EL]은 정렬된 직사각형 박스[MABOX]를 2개의 부분으로 절단한다. 즉, 한 부분은 면을 포함하지 않고, 다른 부분은 면을 포함한다.
출발 공간에서의 라인[LN]은 수직 좌표(xd)로 특성화된다. 각 라인 상에는, 3개의 에지 라인 포인트, 즉 제 1 에지 라인 포인트[P1], 제 2 에지 라인 포인트[P2] 및 제 3 에지 라인 포인트[3]가 있다. 제 1 에지 라인 포인트[P1]는 라인[LN]의 수직 좌표(xd)에 의해서 주어진 제 1 에지 라인[EL1]의 수평 좌표(xd)이다. 제 2 에지 라인 포인트[P2] 및 제 3 에지 라인 포인트[P3]는 각각 라인[LN]의 수직 좌표(yd)에 의해서 주어진 제 2 에지 라인[EL2]의 수평 좌표 및 제 3 에지 라인[EL3]의 수평 좌표(xd)이다.
형상화기[SF]는 사실상 정렬된 직사각현 박스[MABOX]를 라인 단위로 스캔한다. 더 상세하게, 형상화기[SF]는 라인을 슬라이스 단위로 스캔한다. 슬라이스[SLC]는 수평 방향에서의 일련의 M 연속 위치이다. 각 슬라이스[SLC]에 대하여, 형상화기[SF]는 불 입력값을 생성한다. 형상 메모리[SM]는 불 입력값을 일시적으로 기억하기 위해 사용된다. 불 입력값의 생성은 도 7a 내지 도 8c를 참조하여 이미 개념적으로 설명하였다. 이하에서는 다시 더 상세히 설명하기로 한다.
각각의 다른 슬라이스[SLC]에 대하여, 형성화기[SF]는 불 값의 3개의 시리즈를 확립한다. 형성화기[SF]는 제 1 에지 라인[EL1]으로부터의 불 값의 제 1 시리즈(SER1), 제 2 에지 라인[EL2]으로부터의 불 값의 제 2 시리즈(SER2) 및 제 3 에지 라인[EL3]으로부터의 불 값의 제 3 시리즈(SER3)를 확립한다. 시리즈(SER)는 슬라이스[SLC]에 포함된 각 위치에 대하여 불 값을 포함한다. 에지 라인[EL]이 정렬된 직사각형 박스[MABOX]를 2개의 부분으로 절단함은 이미 설명하였다. 불 값은 관련된 위치가 정렬된 직사각형 박스[MABOX]의 한 부분 또는 다른 한 부분에 있는 가의 여부를 표시한다.
형상화기[SF]는 다음과 같이 불 값의 시리즈를 확립한다. 형상화기[SF]는 슬라이스[SLC]의 좌측 끝과 관련 에지 라인 포인트[P] 간의 거리를 계산한다. 이 거리는 이하에서 좌측 거리(Dist_L)로 부르기로 한다. 형상화기[SF]는 또한 슬라이스[SLC]의 우측 끝과 관련 에지 라인 포인트[P] 간의 거리를 계산한다. 이 거리는 이하에서 우측 거리(Dist_R)로 부르기로 한다. 불 값의 시리즈(SER)는 좌측 거리와 우측 거리의 함수(F)이다. SER=F(Dist_L, Dist_R).
좌측 거리(Dist_L)와 우측 거리(Dist_R)가 동일한 부호를 가지면, 시리즈(SER)는 동일한 불 값에 의해서 구성된다. 이것은 부호의 함수로서 시리즈(SER)가 영(0)과 동일한 불 값에 의해 배타적으로 구성되거나, 또는 일(1)과 동일한 불 값에 의해 배타적으로 구성됨을 의미한다. 좌측 거리(Dist_L)와 우측 거리(Dist_R)가 반대의 부호를 가지면, 에지 라인 포인트[P]는 사실상 관련된 슬라이스[SLC]에 존재한다. 이 경우, 시리즈(SER)의 제 1 부분은 영(0)과 동일한 불 값에 의해 구성되고, 제 2 부분은 일(1)과 동일한 불 값에 의해 구성되며, 그 반대일 수도 있다. 어느 한 부분과 다른 부분의 크기는 좌측과 우측 거리(Dist_L, Dist_R)의 함수(F)이다.
이 함수(F)는, 예를 들면 테이블을 포함한 논리 회로 및 메모리에 의해서 실행될 수 있다. 이 경우, 테이블은 불 값이 가능한 다른 시리즈로 구성된다. 어드레싱 회로는 좌측와 우측 거리의 함수로서 소망하는 불 값의 시리즈를 구성하는 테이블의 셀을 선택한다.
다음의 방법은 좌측과 우측 거리의 용이한 계산을 허용한다. 형상화기[SF]는 정렬된 직사각형 박스[MABOX]의 제 1 라인에 대한 3개의 에지 라인 포인트(P1, P2, P3]를 계산한다. 상기 라인 상의 제 1 슬라이스의 좌측 끝은 수평 기준 좌표 xd=0 상에 존재한다. 따라서, 불 값의 제 1 시리즈에 대한 좌측 거리는 제 1 에지 라인 포인트(Dist_L/SER1=P1)와 동일하다. 불 값의 제 2 시리즈에 대한 좌측 거리 및 불 값의 제 3 시리즈에 대한 좌측 거리는 각각 제 2 에지 라인 포인트 및 제 3 에지 라인 포인트(Dist_L/SER2=P2; Dist_L/SER3=P3)와 동일하다. 라인의 다른 슬라이스에 대하여, 시리즈에 대한 좌측 거리(Dist_L)는 이전 슬라이스와 관련해서 동일한 시리즈에 대한 우측 거리(Dist_R)와 동일하다. 불 값에 대한 우측 거리는 항상 동일한 시리즈에 대한 좌측 거리 마이너스 M(Dist_R=Dist_L-M)이며, 여기서 M은 슬라이스[SLC] 내의 위치의 수이다.
형상화기[SF]는 다음과 같이 제 2 라인 상의 불 값의 시리즈 및 다른 라인 상의 불 값의 시리즈에 대한 좌측 거리(Dist_L) 및 우측 거리(Dist_R)를 계산한다. 형상화기[SF]는 각 에지 라인[EL]의 슬로프의 역을 계산한다. 라인 상의 불 값의 각 시리즈에 대하여, 형상화기[SF]는 동일한 수평 위치를 갖는 이전 라인 상의 불 값의 시리즈의 좌측 거리(Dist_L)를 취한다. 이어서, 형상화기[SF]는 상기 좌측 거리(Dist_L)를 슬로프의 역에 가산한다. 이 계산 결과는 현재 라인 상의 불 값의 시리즈에 대한 좌측 거리(Dist_L)이다. 불 값의 시리즈에 대한 우측 거리는 항상동일한 시리즈에 대한 좌측 거리 마이너스 M(Dist_R=Dist_L-M)와 동일하다.
도 13은 형상화기[SF]의 몇몇 세부를 예시한다. 형상하기[SF]는 제 1 내지 제 3 생성기[GEN1, GEN2, GEN3]로 번호가 붙여진 불 값 시리즈 생성기[GEN], 제 1 내지 제 4 레지스터[REG1, REG2, REG3, REG4]로 번호가 붙여진 입력 레지스터[REGI], 논리 AND 회로[AND] 및 출력 레지스터[REGO] 및 압축 또는 수축 회로[SHRNK]를 포함한다.
제 1 불 값 시리즈 생성기[GEN1]는 제 1 에지 라인[EL1]으로부터 관련 슬라이스[SLC]에 대한 불 값의 제 1 시리즈(SER1)를 생성한다. 제 2 불 값 시리즈 생성기[GEN2] 및 제 3 불 값 시리즈 생성기[GEN3]는 제 2 에지 라인[EL2] 및 제 3 에지 라인[EL3]으로부터의 관련 슬라이스[SLC]에 대하여 각각 불 값의 제 2 시리즈(SER2) 및 불 값의 제 3 시리즈(SER3)를 생성한다. 3D 그래픽 요소의 기하학적 파라미터가 에지 라인[EL]을 정의함을 상기한다. 불 값의 시리즈(SER)의 생성은 상술한 방법에 따라 수행된다. 불 값의 제 1 시리즈(SER1), 불 값의 제 2 시리즈(SER2) 및 불 값의 제 3 시리즈(SER3)는 제 1 입력 레지스터[REGI1], 제 2 입력 레지스터[REGI2] 및 제 3 입력 레지스터[REGI3] 각각에 배치된다.
제 4 입력 레지스터[REGI4]는 이미지 샘플값의 관련 세트로부터 시작하는 원래의 S값을 기억하기 위해 사용된다. 각 슬라이스[SLC]는 도12에 나타낸 정렬된 직사각형 박스[MABOX] 내의 M 위치의 시리즈를 나타낸다. 이미지 샘플값의 세트는 각 위치에 대한 원래의 S값을 포함할 수 있다. 이 경우, 형상화기[SF]는 제 4 입력 레지스터(REGI4)와 관련된 M 원래의 S값을 기입한다. 이에 반하여, 이미지 샘플값이 원래의 S값을 포함하지 않는 슬라이스[SLC]에는 하나 또는 여러 개의 위치가 있다. 슬라이스[SLC]의 적어도 한 부분은 사실상 이미지 샘플값의 세트 밖에 있다. 이 경우, 형상화기[SF]는 영(0)과 동일한 불 값을 제 4 입력 레지스터[REGI4] 내의 입력 샘플값의 세트 밖에 있는 각 위치에 대하여 기입한다.
세트가 원래의 S값을 포함하지 않으면, 형상화기[SF]는 일(1)과 동일한 불 값을 제 4 입력 레지스터[REGI4] 내의 세트 내의 각 위치에 대하여 기입하고, 영(0)과 동일한 불 값을 세트 밖의 각 위치에 대하여 기입한다. 형상화기[SF]는 다음과 같은 방식으로 위치가 세트 내에 또는 세트 밖에 있는 가의 여부를 알 수 있다. 도 11에 예시된 정렬된 직사각형 박스[MABOX] 내의 각 위치는 메모리 어드레스와 연관된다. 형상화기[SF]는 이미지 샘플값의 각 세트에 대하여 표시하는 테이블에 엑세스하며, 이 세트는 메모리 존에 기억된다. 따라서, 형상화기[SF]는 소정의 위치와 연관된 어드레스가 관련된 세트가 기억되는 메모리 존 내에 있는가 또는 상기 존 밖에 있는가의 여부를 검출한다. 만약, 어드레스가 상기 존 밖에 있으면, 즉 위치가 세트 밖에 있다면, 형상화기[SF]는 영(0)과 동일한 불 값을 제 4 입력 레지스터[REGI4]에 기입한다.
도 13에 예시된 논리 AND 회로[AND]는 논리 AND 함수에 따라 입력 레지스터[REGI]의 각 콘텐츠와 조합된다. 사실상, 출력 레지스터[REGO] 내의 각 위치에 대하여, 논리 AND 회로[AND]는 각 입력 레지스터[REGI] 내에 동일한 위치를 갖는 불 값을 취하고, 상기 불 값에 논리 AND 함수를 적용한다. 출력 레지스터[REGO]의 콘텐츠는 그로스(gross) 불 입력값의 시리즈를 구성한다.
수축 회로[SHRNK]는 출력 레지스터[REGO] 내의 그로스 불 입력값으로부터 형상 메모리[SM] 내에 기억하기 위한 불 입력값을 공급한다. 도 3에 예시된 제어기[CNTRL]가 압축 팩터(N)를 정의할 수 있음에 대해서는 이미 설명하였다. 이 경우, 수축 회로[SHRNK]는 사실상 출력 레지스터[REGO]를 N개의 연속한 그로스 불 입력값으로 분할한다. 수축 회로[SHRNK]는 불 입력값을 얻기 위하여 AND 함수를 각 그룹에 적용한다.
예를 들면, 출력 레지스터[REGO]는 위치 1, 2, 3, 4에서 각각 1, 1, 1, 0과 동일한 그로스 불 값을 포함하는 것으로 가정한다. 압축 팩터는 2인 것으로 가정한다. 이 경우, 수축 회로[SHRNK]는 1과 동일한 불 입력값으로 나타나는 위치 1 및 2에서의 그로스 불 입력값에 AND 함수를 적용한다. 수축 회로[SHRNK]는 0과 동일한 불 입력값으로 나타나는 위치 3 및 4에서의 그로스 불 입력값에 AND 함수를 적용한다. 만약, 압축 팩터가 없다면, 수축 회로[SHRNK]는 예컨대 형상 메모리[SM] 내의 그로스 불 입력값의 시리즈를 기억한다.
도 14a, 14b, 14c 및 14d는 형상화기[SF]의 동작을 예시한다. 각 도면은 정렬된 직사각형 박스[MABOX]에 대응하는 공간을 나타낸다. 상기 도면을 간단화하기 위하여, 정렬된 직사각형 박스[MABOX]는 8×8 위치를 포함한다. 이미 도 12에 예시한 제 1 에지 라인[EL1], 제 2 에지 라인[EL2] 및 제 3 에지 라인[EL3]은 도 14a, 14b 및 14c에 각각 재표현하였다. 상기 면은 도 14d에 재표현된다.
도 14a, 14b 및 14c는 정렬된 직사각형 박스[MABOX]와 관련해 각각 생성된 불 값의 제 1 시리즈의 세트, 불 값의 제 2 시리즈의 세트 및 불 값의 제 3 시리즈의 세트를 예시한다. 도 14d는 논리 AND 함수를 도 14a, 14b 및 14c에 예시된 세트에 적용함으로써 얻어진 결과를 예시한다. 그 결과, 필요하다면 입력값이 압축을 수행함으로써 마련되는 그로스 불 입력값을 구성한다.
이하, 도 10에 예시된 객체 형성기[OF]의 동작에 대해서 더 상세히 설명하기로 한다. 이 객체 형성기[OF]는 랜덤 액세스 메모리[DMA]를 통해 도 3에 예시된 메모리[MEM] 내의 판독 동작을 수행한다. 이 판독 동작은 도 11에 예시된 정렬된 직사각형 박스[MABOX]에 의해 나타낸 출발 공간의 존 내에 존재하는 원래의 Y, U, V 및 A 값에 관련된다. 객체 형성기[OF]는 또한 형상 메모리[SM] 내에서 판독 동작을 수행한다. 따라서, 객체 형성기[OF]는 형상화기[SF]가 상술한 바와 같이 정렬된 직사각형 박스[MABOX]와 관련해서 생성한 불 입력값을 수신한다.
객체 형성기[OF]는 여러 가지 동작을 수행한다. 첫 번째로, 객체 형성기[OF]는 이미지 샘플값 세트의 포맷이 포맷 4:4:4를 따르지 않는다면 포맷의 전환을 실행한다. 두 번째로, 객체 형성기[OF]는 제어기[CNTRL]가 압축 팩터(N)를 정의한다면 압축을 실행한다. 이 경우, 객체 형성기[OF]는 입력값을 구할 수 있도록 N개의 인접한 원래의 값의 평균을 취한다. 세 번째로, 객체 형성기[OF]는 각 불 입력값을 동일한 위치를 갖는 A 입력값(불투명도)과 조합시킨다. 따라서, 객체 형성기[OF]는 관련 객체 메모리[OM]에 기억된 조합된 입력값을 생성한다. 따라서, 조합된 입력값은 불 입력값을 나타내는 비트를 포함한다. 다른 비트들은 A 입력값(불투명도)을 나타낸다.
도 15는 불 입력값이 역할하는 포맷의 전환을 예시한다. 도 15는 여러 개의불 입력값[BIV(i,j)...BIV(i+6,j)] 및 객체 형성기[OF]가 수신하는 여러 개의 원래의 U값[UV(i,j),UV(i+2,j),UV(i+4,j),UV(i+6,j)]을 예시한다. 도 15는 또한 객체 형성기[OF]가 관련 객체 메모리[OM]에 기입하는 여러 개의 U 입력값[UIV(i,j)...UIV(i+5,j)]을 예시한다. 괄호안이 부호는 출발 좌표(xd, yd)의 형태와 관련된 값의 위치를 나타낸다. 만약, 불 입력값[BIV]이 일(1)과 동일하면, 이것은 동일한 위치를 갖는 U 입력값[UIV]이 유효함을 나타낸다. 이에 반하여, 만약 불 입력값[BIV]이 영(0)과 동일하면, 이것은 동일한 위치를 갖는 U 입력값[UIV]이 유효하지 않음을 나타낸다.
도 15는 소정의 U 입력값[UIV(i,j),UIV(i+2,j),UIV(i+4,j)]에 대하여, 대응하는 위치를 갖는 원래의 U값[UV(i,j),UV(i,j+2),UV(i,j+4)]이 있음을 예시한다. 상기 각 U 입력값[UIV(i,j),UIV(i+2,j),UIV(i+4,j)]은 동일한 위치를 갖는 원래의 U값[UV(i,j),UV(i,j+2),UV(i,j+4)]의 리터럴(literal) 카피이다.
도 15는 또한 소정의 U 입력값[(UIV(i+1,j),UIV(i+3,j),UIV(i+5,j)]은 사실상 원래의 U값[UV(i,j),UV(i,j+2),UV(i,j+4)] 사이의 홀을 채운다. 홀은 유효한 원래의 U값[UV(i,j),UV(i+2,j)] 사이에 존재할 수 있다. 이 경우, 사실상 상기 홀을 채우는 U 입력값[UIV(i+1,j)]은 관련된 2개의 원래의 U값[UV(i,j),UV(i+2,j)] 사이의 보간에 의해서 구해진다. 이에 반하여, 홀은 유효한 원래의 U값[UV(i+4,j)]과 유효하지 않은 원래의 U값[UV(i+6,j)] 사이에 존재할 수 있다. 이 경우, 사실상 상기 홀을 채우는 U 입력값[UIV(i+5,j)]은 유효 원래의 U값[UV(i+4,j)]의 리터럴 카피이다. 이것은 U 입력값[UIV(i+5,j)]이 비유효 원래의 U값[UV(i+6,j)]의 의존하지 않도록 행해진다.
이하, 도 10에 나타낸 압축 회로[CCOMP]의 동작에 대해서 더 상세히 설명하기로 한다. 기하학적 변환 회로[GT]는 도달 공간 내의 관련 타일을 차지하는 존을 스캔한다. 이 스캐닝은 도 6에 예시된 조합 단계[COMP]와 관련해서 이미 상술하였다. 각 위치(xa, ya)에 대하여, 기하학적 변환 회로[GT]는 도 9를 참조하여 상술한 바와 같이 필터 커늘[KRNL]의 위치를 판단한다. 기하학적 변환 회로[GT]는 필터 형성기[FIF]가 객체 메모리 M 내에서 필터 커늘[KRNL]에 존재하는 입력값을 조사하도록 한다. 기하학적 변환 회로[GT]는 또한 보간 회로[IP]가 계수 메모리[COM]의 적절한 필터 계수를 판독할 수 있도록 한다. 필터 계수는 필터 커늘의 중심을 정의하는 출발 좌표(xd, yd)의 분수 부분(△xd, △yd)에 좌우된다. 이것은 도 9를 참조하여 상술하였다.
도 10에 예시된 필터 형성기[FIF]는 그들의 위차가 필터 계수에 대응하도록 입력값을 재배치한다. 필터 형성기[FIF]는 또한 모든 비-유효한 값을 유효 입력값에 기초한 값으로 대체한다. 따라서, 필터 형성기[FIF]는 비-유효한 입력값이 타일에 기여하는 것을 방지하는데, 그렇지 않으면 왜곡을 주기 때문이다. 조합된 입력값에 포함된 불 입력값은 입력값이 유효한가 유효하지 않은가를 표시함을 상기한다. 예를 들면, 필터 형성기[FIF]는 필터 커늘 내의 모든 유효 Y 입력값의 중간값을 확립할 수 있다. 이어서, 필터 형성기[FIF]는 비-유효한 Y 입력값을 유효한 Y 입력값의 중간값으로 대체한다. 필터 형성기[FIF]는 U, V 및 A 입력값에 대하여유사한 동작을 수행한다.
도 10에 나타낸 보간 회로[IP]는 2개의 다상 필터를 포함하는데, 즉 제 1 다상 필터는 Y, U 및 V에 대한 것이며, 제 2 다상 필터는 조합된 입력값에 대한 것이며, 이들은 각각 A 입력값 및 불 입력값을 포함한다. 각 필터는 4×4 탭을 포함한다. 각 탭은 필터 계수 및 입력값과 연관된다. 제 1 다상 필터는 필터 형성기[FIF]에 의해 공급된 입력값의 가중 조합을 확립한다. 따라서, 이 필터는 Y, U 및 V 기여값을 확립하게 된다. 제 2 다상 필터는 필터의 커늘에서의 조합된 입력값으로부터 A 기여값 및 불 기여값을 구한다.
블렌딩 회로[BL]는 타일을 합성하기 위하여 2개의 블렌딩 메모리[BLM1, BLM2] 중 하나를 선택한다. 따라서, 도 6에 나타낸 배경 타일[BGTL], 중간 타일[PTL] 및 타일[TL]은 선택된 블렌딩 메모리[BLM1, BLM2]에 일시적으로 기억된다. 다른 블렌딩 메모리[BLM2, BLM1]는 다음 타일 등을 합성하기 위해 선택된다. 블렌딩 메모리[BLM1, BLM2]는 2개의 포트 메모리이다. 따라서, 블렌딩 회로[BL]는 블렌딩 메모리의 데이터를 판독하는 동시에 데이터를 동일한 블렌딩 메모리에 기입한다.
블렌딩 회로[BL]는 보간 회로[IP]로부터의 Y, U, V 및 A 기여값 및 합성될 타일의 각 위치(xa, ya)에 대한 불 기여값을 수신한다. 블렌딩 회로[BL]는 선택된 블렌딩 메모리[BLM1, BLM2] 내에서 동일한 위치(xa, ya)를 갖는 T, U 및 V 샘플을 조사한다.
블렌딩 회로[BL]는 Y, U, V 및 A 기여값이 유효한가 아닌가의 여부를 불 기여값에 의해서 검사한다. 만약, Y, U, V 및 A 기여값이 유효하면, 블렌딩 회로[BL]는 선택된 블렌딩 메모리[BLM1, BLM2]로부터 시작하는 각 Y, U 및 V 샘플과 Y, U 및 V 기여값의 가중 조합을 확립한다. A 기여값은 가중 팩터를 판단한다. 상기 가중 조합의 결과로 Y, U 및 V 샘플을 구성한다. 블렌딩 회로[BL]는 상기 새로운 샘플을 선택된 블렌딩 메모리[BLM1, BLM2]에 기입한다. 만약, Y, U, V 및 A 기여값이 비-유효하다면, 블렌딩 회로[BL]는 샘플이 이미 동일한 메모리에 의해 판독된 선택된 블렌딩 메모리[BLM2, BLM1] 내에 Y, U, V 및 A 샘플을 재기입한다. 이 경우, 새로운 Y, U 및 V 샘플은 각각 이전의 Y, U 및 V 샘플과 동일하다.
도 16은 도 10에 나타낸 프로세서PRC]의 동작을 테이블의 형태로 예시한다. 테이블의 라인은 pth내지 p+5th[MC(p)-MC(p+5)]로 재번호화된 매크로사이클을 나타낸다. 매크로사이클은 소정 수의 클록 사이클을 포함한 시간 간격이다. 테이블의 열은 타일을 생성하기 위한 다른 단계들을 나타낸다. 초기화 단계[INIT] 및 합성 단계[COMP]는 도 6을 참조하여 설명된다. 도 16은 촉진(expedition) 단계[EXP]를 예시한다.
도 16은 2개의 타일, 즉 qth타일[TL(q)] 및 q+1th타일[TL(q+1)]의 생성을 예시한다. 프로세서[PRC]는 이미지 샘플값의 제 1 세트[SV1] 및 이미지 샘플값의 제 2 세트[SV2]로부터 상기 각 타일을 생성한다.
pth매크로사이클[MC(p)]에서, 초기화 회로[CINIT]는 이미지 샘플값의 제 1세트[SV1]로부터 qth타일[IV1(q)]에 대한 입력값의 제 1 블록을 생성한다. 상기 블록[IV1(q)]은 제 1 객체 메모리[OM1]에 기억된다. 동시에, 합성 회로[CCOMP]는 제 1 블렌딩 메모리[BLM1] 내에 qth타일[BGTL(q)]에 대한 배경 샘플을 배치한다.
p+1th매크로사이클[MC(p+1)]에서, 초기화 회로[CINIT]는 이미지 샘플값의 제 2 세트[SV2]로부터의 qth타일[IV2(q)]에 대한 입력값의 제 2 블록을 생성한다. 상기 블록[IV2(q)]은 제 2 객체 메모리[OM2]에 기억된다. 동시에, 합성 회로[CCOMP]는 제 1 객체 메모리[OM1]의 qth타일[IV1(q)]에 대한 입력값의 제 1 블록을 판독하고, 상기 블록으로부터 기여값을 생성한다. 합성 회로[CCOMP]는 qth타일[PTL(q)]에 대한 중간 이미지 샘플을 형성하기 위해 qth타일[BGTL(q)]에 대한 배경 샘플 및 기여값을 조합한다. 상기 중간 이미지 샘플[PTL(q)]은 제 1 블렌딩 메모리[BLM1]에 기억된다.
p+2th매크로사이클[MC(p+2)]에서, 초기화 회로[CINIT]는 이미지 샘플값의 제 1 세트[SV1]로부터의 q+1th타일[IV1(q+1)]에 대한 입력값의 제 1 블록을 생성한다. 이 블록[IV1(q+1)]은 제 1 객체 메모리[OM1]에 기억된다. 동시에, 합성 회로[CCOMP]는 제 2 객체 메모리[OM2]의 qth타일[IV2(q)]에 대한 입력값의 제 2 블록을 판독하고, 이 블록으로부터 기여값을 생성한다. 합성 회로[CCOMP]는 제 1 블렌딩 메모리[BLM1]에 기억된 qth타일[PTL(q)]에 대한 중간 샘플과 기여값을 조합한다. 따라서, 합성 회로[CCOMP]는 qth타일[TL(q)]에 대한 이미지 샘플을 생성한다. 이것은 제 1 블렌딩 메모리[BLM1]에 이미지 샘플을 기억시킨다. 따라서, 제 1 블렌딩 메모리[BLM1]는 p+2th매크로사이클[MC(p+2)]의 끝에서 qth타일[TL(q)]을 포함한다. 결국, 합성 회로[CCOMP]는 제 2 블렌딩 메모리[BLM2] 내에 q+1th타일[BGTL(q+1)]에 대한 배경 샘플을 배치한다.
p+3th매크로사이클[MC(p+3)]에서, 초기화 회로[CINIT]는 이미지 샘플값[SV2]의 제 2 세트로부터의 q+1th타일[IV2(q+1)]에 대한 입력값의 제 2 블록을 생성한다. 상기 블록[IV2(q+1)]은 제 2 객체 메모리[OM2] 내에 기억된다. 동시에, 합성 회로[CCOMP]는 제 1 객체 메모리[OM1]의 q+1th타일[IV1(q+1)]에 대한 입력값의 제 1 블록을 판독하고, 상기 블록으로부터 기여값을 생성한다. 합성 회로[CCOMP]는 q+1th타일[PTL(q+1)]에 대한 중간 샘플을 형성하기 위해 q+1th타일[BGTL(q+1)]에 대한 배경 샘플 및 기여값을 조합한다. 상기 중간 이미지 샘플은 제 2 블렌딩 메모리[BLM2]에 기억된다. 프로세서[PRC]는 제 1 블렌딩 메모리[BLM1]의 qth타일[TL(q)]를 도 3에 나타낸 메모리[MEM]에 전달한다.
p+4th매크로사이클[MC(p+4)]에서, 초기화 회로[CINIT]는 제 2 객체메모리[OM2]의 q+1th타일[IV2(q+1)]에 대한 입력값의 제 2 블록을 판독하고, 상기 블록으로부터 기여값을 생성한다. 합성 회로[CCOMP]는 제 2 블렌딩 메모리[BLM2]에 기억된 q+1th타일[PTL(q+1)]에 대한 중간 샘플 및 기여값을 조합한다. 따라서, 합성 회로[CCOMP]는 q+1th타일[TL(q+1)]에 대한 이미지 샘플을 생성한다. 이것은 제 2 블렌딩 메모리[BLM2]에 이미지 샘플을 기억시킨다. 따라서, 제 2 블렌딩 메모리[BLM2]는 p+4th매크로사이클[MC(p+4)]의 끝에서 q+1th타일[TL(q+1)]을 포함한다. p+5th매크로사이클[MC(p+5)]에서, 프로세서[PRC]는 제 2 블렌딩 메모리[BLM2]의 q+1th타일[TL(q+1)]을 도 3에 나타낸 메모리[MEM]에 전달한다.
따라서, 단일 매크로사이클에서, 프로세서[PRC]는 3개의 단계, 즉 초기화[INIT], 합성[COMP] 및 촉진[EXP] 단계를 수행한다. 제 1 객체 메모리[OM1] 및 제 2 객체 메모리[OM2]는 매크로사이클[MC]의 리듬으로 플립-플롭 모드에서 동작한다. 소정의 매크로사이클에서, 상기 2개의 메모리 중 하나는 데이터의 수신기이고, 다른 메모리는 데이터의 전송기이다. 원칙적으로, 그 역할은 모든 매크로사이클[MC]마다 반전된다. 제 1 블렌딩 메모리[BLM1]와 제 2 블렌딩 메모리[BLM2]는 또한 타일[TL]의 리듬을 제외한 상태로 플립-플롭 모드에서 동작한다. 프로세서[PRC]는 소정의 타일을 합성하기 위해 상기 2개의 메모리 중 하나를 사용하며, 이것은 다음의 타일을 합성하기 위해 다른 메모리를 사용한다.
도 3 내지 16을 참조하여 상술한 이미지 합성 장치는 도 1 및 도 2에 나타낸 특성을 실현한 일례이다. 특히, 도 7a, 7b 및 7c는 출발 공간에서 소정의 위치를 갖는 불 입력값을 생성하며, 이 위치가 이미지 샘플값의 세트 밖에 있다면 동일한 위치를 갖는 다른 값을 비-유효한 것으로 나타냄을 예시한다.
다른 도면을 참조하여 상술한 것은 본 발명을 제한하기 보다는 예시하려는 것이다. 첨부된 청구항들의 범주 내에서 다양한 변형이 있을 수 있음은 자명하다. 이러한 관점에서, 결론에서 여러 가지 주의가 있게 될 것이다.
본 발명에 따른 이미지 합성 방법이 다수 있다. 도 3에 나타낸 장치는 타일을 연속적으로 생성함으로써 이미지를 합성한다. 원칙적으로, 예를 들면 한번의 동작으로 이미지를 합성하는 것도 또한 가능하다. 이것은 도 10에 나타낸 프로세서의 내부 메모리[SM, OM, BLM]가 충분히 큰 경우에 가능하다.
하드웨어 또는 소프트웨어 또는 이들 모두의 조합한 아이템에 의해서 기능을 실현하는 방법이 다수 있다. 이러한 관점에서는, 도면이 매우 도식적이며, 각 도면은 실시예만으로 표현된다. 도면이 독립된 블록의 형태로 다른 기능을 나타내지만, 하드웨어나 또는 소프트웨어의 단일 아이템이 여러 기능을 수행한다는 사실을 전혀 배제하지 않았다. 하드웨어나 또는 소프트웨어 아이템의 세트에 의해 기능이 수행될 수 있음도 배제하지 않았다.
도 10에 나타낸 프로세서는, 예를 들면 조합시 타일을 생성하는 다른 블록을 포함한다. 원칙적으로, 적절히 프로그램된 컴퓨터 회로에 의해 상기 블록을 실행할 수 있다. 프로그래밍 메모리에 포함된 명령 세트는 컴퓨터 회로가 도 3 내지도 16을 참조하여 상술한 것과 다른 동작을 수행하도록 할 수 있다. 명령 세트는, 예를 들면 명령 세트를 포함한 디스크 같은 데이터 캐리어를 판독함으로써 프로그램 메모리에 로딩될 수 있다. 판독 동작은, 예를 들면 인터넷 같은 통신 네트워크에 의해서 수행될 수 있다. 이 경우, 서비스 공급자는 그들의 관심에 따라 명령 세트를 배치할 수 있다.
청구항의 괄호안에 참조부호는 제한적인 방식으로 해석되어서는 않된다. 동사 "포함하다(comprise)" 및 그 변화 동사를 사용한 것은 청구항에 언급된 것과 다른 구성요소나 단계의 존재를 배제하지 않았다. 구성요소나 단계 앞에 관사 "a"나 "an"을 사용한 것은 다수의 상기 소자들이나 단계들의 존재를 배제하지 않았다.