private void splitImage()
	{
		int vertical = ytrans[0].length / 8;
		int horizontal = ytrans.length / 8;
		
		for(int y = 0; y < vertical; y++) 
		{
			for(int x = 0; x < horizontal; x++)
			{
				int xoff = (x * 8);
				int yoff = (y * 8);
				double[][] Y = new double[8][8];
				double[][] Cb = new double[8][8];
				double[][] Cr = new double[8][8];
				
				for(int z = 0; z < 8;z++)
				{
					for(int w = 0; w < 8; w++)
					{
						Y[w][z] = ytrans[xoff + w][yoff + z];
						Cb[w][z] = cbtrans[xoff + w][yoff + z];
						Cr[w][z] = crtrans[xoff + w][yoff + z];		
					}
				}		
				yblocks.add(Y);
				cbblocks.add(Cb);
				crblocks.add(Cr);
			}
		}
		
		int cbcrV = cbtranssub[0].length / 8;
		int cbcrH = cbtranssub.length / 8;
		
		for(int y = 0; y < cbcrV; y++) 
		{
			for(int x = 0; x < cbcrH; x++)
			{
				int xoff = (x * 8);
				int yoff = (y * 8);
				double[][] Cb = new double[8][8];
				double[][] Cr = new double[8][8];
				
				for(int z = 0; z < 8;z++)
				{
					for(int w = 0; w < 8; w++)
					{
						Cb[w][z] = cbtranssub[xoff + w][yoff + z];
						Cr[w][z] = crtranssub[xoff + w][yoff + z];		
					}
				}		
				cbsubblocks.add(Cb);
				crsubblocks.add(Cr);
			}
		}
	}