According to the above document it support hardware decode but not encode.
A call to MFXVideoSession Init return software only. If I use this session to decode video will Media SDK use hardware to decode the H.264 video ? If not, which library I can use to decode video using hardware ?
If you initialize MediaSDK session chosing only software, you will get only software implementation both for encoding and decoding. It is best to initialize with AUTO, that is the universal approach. If MediaSDK dispatcher finds hardware that it knows about, it uses it. Of course the correspondent driver has to be installed. This is the answer to your question about the hardware library, it is installed and is registered together with the driver for Intel graphics.
If some is hardware found, and the driver is in place, QueryIMPL returns that is uses hardware implementation. Howerver if some features (like encoding) aren't supported in hardware, there is going to be a software fallback. Your application can detect this by getting a PARTIAL_ACCELERATION status from Query function of the required component, e.g. h.264 ENCODE.
Intel System Controller Hub US15W (Z5xx) platform unfortunately does not have support for HW acceleration via Intel Media SDK. If you use Media SDK on this platform you will always fall back on SW. The only Atom platform for which we have partial Media SDK support is E6xx. http://edc.intel.com/Link.aspx?id=5234
Note that the focus of Intel Media SDK is notebook and desktop platforms and that HW encode is only available in the current generation platforms, code names Sandy Bridge.