2012-05-09 2 views
0

볼륨 (3D 이미지)을 16x16x16 블록으로 분할했습니다. 전체 볼륨은 128x128x128입니다. 데이터는 선형 메모리에 저장됩니다. 모든 블록에 대해 전체 데이터의 선형 메모리 내에 시작 인덱스를 저장합니다. 이제 16x16x16 블록의 인덱스를 128x128x128 데이터의 인덱스로 다시 계산해야합니다. 모든 블록은 인덱스 0, 1, 2, 3, .... 4096으로 반복되며이를 글로벌 선형 인덱스로 변경해야합니다.차단 된 데이터의 1D 인덱스를 전체 데이터의 1D 인덱스로 변환

Block 1, index [2] => convert to index [18] 
Block 1, index [18] => convert to index [146] 

2D 예

예는 : 이미지 ilustrated이다. 빨간 도트 (인덱스 135)를 전체 이미지 내에서 인덱스로 변환하고 싶습니다. 그것이 1040+가 될 것임을 의미합니다. 블록 모서리의 숫자는 이미지 내의 선형 오프셋입니다. 3D 데이터 용 공식이 필요합니다. 2D example

답변

0

블록 좌표 (인덱스 DIV 256 (색인 DIV 16) 모드 (16), 색인 개조 16) 블록 기원

좌표 : (16 * (블록 DIV 64), (16) * (((16 * (블록 div 8), (16 * (블록 모드 8))

전체 볼륨의 좌표 : (16 * (블록 div 64) + (인덱스 div 256) 모드 8) + ((색인 DIV 16) 모드 16)), 16 * (블록 모드 8) + (인덱스 모드 16))

그래서 글로벌 지수는

128 * 128 * (16 * (블록 div 64) + (인덱스 div 256)) + 128 * (16 * (블록 div 8) mod 8) + ((인덱스 div 16) mod 16)) + 16 * 블록 모드 8) + (인덱스 모드 16)