2014-09-17 5 views
0

도구 상자는 이미지를 coef_arrays의 블록으로 어떻게 나눕니까?Phil Sallee의 jpeg 도구 상자는 coef_arrays에서 이미지를 어떻게 나눕니까?

나는 225x225 이미지를 가지고 있습니다. 그러나 coef_arrays는 3 개의 232x232 double 배열을 제공했습니다.

160x100 이미지를 사용하면 하나의 104x168 배의 배열과 두 개의 56x88 배의 배열을 얻을 수 있습니다.

배열 크기가 이미지 크기보다 커지는 이유는 무엇입니까? 이미지가 몇 개 블록으로 나뉘어 있더라도 총 225x225 또는 160x100 배열을 가져 오지 않아도됩니까?

10 블록으로 225x225가 11 20x20 어레이 및 1 5x5 어레이로 표시됩니다.

답변

1

JPEG는 8x8 블록으로 압축합니다. 크기가 8의 배수가 아닌 이미지가있는 경우 인코더는 이미지를 8의 배수로 확장해야합니다.

따라서 225x225는 각 색상 구성 요소에 대해 하나의 배열을 사용하여 232x232로 확장됩니다.

160x100 이미지의 경우 2 : 1의 Cb 및 Cr 구성 요소를 사용하고있는 것 같습니다.

나는 왜 당신이 얻고있는 크기를 얻고 있는지 잘 모르겠습니다. 160x100은 160x104 (168x104가 아님)로, 80x5o는 80x56으로 갈 수 있습니다.

+0

확인을 취소하십시오. 이미지에서 DCT를 수행하는 데 사용하고 있습니다. 그러나 이미지를 확장하면 출력을 변경하지 않겠습니까? 실제로 직면하는 것은 내가 dct를 수행하기 위해이 도구 상자를 사용하는 실행중인 matlab 코드를 가지고 있기 때문입니다. 그리고 자바에서 동일한 기능을 수행하는 또 다른 코드가 있습니다. 그러나 그들의 결과는 다릅니다. JAVA는 이미지를 8의 배수로 확장하지 않습니다. 그러면 확장이 DCT의 출력을 변경합니까? – mfmz

+0

그냥 더미 픽셀을 데이터에 추가합니다. 또한 프레임 시장의 시작에는 원래 크기가 포함되어 있으므로 디코더는 더미 픽셀 수를 알고 있습니다. – user3344003