public static List<Integer> compress(byte[] uncompressed) {
		byte[] a = new byte[1];
		for (int i = 0; i < 256; i++){
			a[0]=(byte)i;
			dictionary_global.put(a , i);
		}
//		String w = "";
		byte[] w =new byte[1];
		byte[] cc = new byte[1];
		byte[] wc = new byte[4096];
		List<Integer> result = new ArrayList<Integer>();
		for (byte c : uncompressed) {
			cc[0]=c;
//			String wc = w + c;
			wc = concatenateByteArrays(w,cc);
			if (dictionary_global.containsKey(wc))
				w = wc;
			else {
				System.out.print(dictionary_global.get(w));
				result.add(dictionary_global.get(w));
				// Add wc to the dictionary.
				dictionary_global.put(wc, dictSize_global++);
				w =  cc;
			}
		}

		// Output the code for w.
		if (!w.equals(""))
			result.add(dictionary_global.get(w));
		return result;
	}