Research Article

Distortion-Based Slice Level Prioritization for Real-Time Video over QoS-Enabled Wireless Networks

Algorithm 1

Algorithm to assign priorities to slices using slice distortion, .. denotes the floor operation.
pktsBuffered 0
loop
 receive a packet
if (new frame received = true) then
  decode the frame (to be used as a reference for PSNR calculations)
   𝑛 = 0
  while   𝑛 < pktsBuffered do
   move packet 𝑛   from buffer1 to buffer2
   calculate PSNR for the remaining packets in buffer1, put the n : PSNR result in list1
   move back packet n from buffer2 to buffer1
    𝑛 𝑛 + 1
  end while
  sort list1 in ascending order according to PSNR field
  remove ⌊pktsBuffered/3⌋ elements from list1 and assign Pri2 to corresponding packets in buffer1 (set NRI to “10”)
  remove next ⌊pktsBuffered⌊pktsBuffered/3 /2 elements from list1 and assign Pri2 to corresponding packets in buffer1
  (set NRI to “01”)
  assign Pri0 to packets in buffer1 corresponding to the remaining elements in list1 (set NRI to “00”)
  flush buffer1
  pktsBuffered← 0
else
  add packet to FIFO buffer1
  pktsBuffered pktsBuffered + 1
end if
end loop