[1][2][3] In contrast with older MPEG-1/2/4 standards, the H.264 deblocking filter is not an optional additional feature in the decoder.
Each small block's edge is assigned a boundary strength based on whether it is also a macroblock boundary, the coding (intra/inter) of the blocks, whether references (in motion prediction and reference frame choice) differ, and whether it is a luma or chroma edge.
Although the concept of an "in loop" deblocking filter is best known in relation to H.264, it was actually also standardized earlier (in a somewhat different form) in the H.263v2 Annex J.
[4] Prior to H.263 Annex J and H.264, the use of a deblocking filter as a post-processing technique to improve the visual quality of decoded pictures was already a well-known technology.
This was particularly true in the video conferencing industry, where the low bit rates used tended to produce significant blocking artifacts that could be substantially reduced by such a filter.