How to send an array of 12 bit integers to an Arduino via serial?

I have an array of 14 integers with the values ranging from 0 to 4096 in Processing.
On the Arduino side I would like to work with it further as an array.

What is the best/most efficient way to send this data from Processing to Arduino?

Most efficient is sending the binary data, i.e. only 2 bytes per value and no string encoding/decoding required. But you should add some synchronization data, e.g. 0xFFFF for the begin of an frame. Or you split each 10 bit value into 5 bits, then every value above 0x1F is invalid and can be used for synchronization, commands or whatsoever.

Or you split each 10 bit value into 5 bits

They're 13 bit values.

Thank you for your responses.
I will try the method suggested by DrDiettrich.

Currently I am prototyping it using the getValue() function of the TextFinder library, storing each of my values into an integer array after splitting it up by commas.

Split integers in to 2 bytes, a high byte and a low byte:

PSUEDO CODE

my_int_array=["my ints in here"]

for (int i=0; i<number of ints;i++){

highbyte=my_int_array[i];
lowbyte=my_int_array[i] >> 8
serial.print(highbyte);
serial.print(lowbyte);

It basically sends the 8 least significant bits of the 16 bits as a character and then sends the first more significant 8 bits of the 16 bit int.

On the other end, you need to reverse the operation:

int original_low_byte=lowbyte << 8;
int original_int = original_low_byte+highbyte;

EDIT: Noticed you said 12bits. This should still work?