In VHDL (which should be readily portable to Verilog):
process
variable leading_zeros : natural;
begin
leading_zeros := 0;
for i in input_vector'range loop
if input_vector(i) = '1' then
break;
end if;
leading_zeros := leading_zeros + 1;
end for;
end process;
For non-VHDL speakers, all this does is loop over all the bits in input_vector
from left to right, incrementing a counter each time it sees a 0
. Once it finds the first 1
, it drops out of the loop, leaving the counter containing the number of leading zeros.
To find out whether that is high-efficiency enough, you'll have to try the synthesis - let us know!