This is dropped data. It may be a problem with either your memory card or your camera itself. h.264 data, which is the format your video is recorded in, works off of a concept known as Group of Pictures. Basically, many of the frames of video don't store information about what they look like, but rather what they look like related to previous or future frames. The entire group of pictures is then decoded together. A group of pictures typically covers somewhere around half a second to 3/4 of a second of video.
Additionally, image data is encoded in blocks within each frame. When the data is encoded properly with sufficient bandwidth, these blocks blend seamlessly and you can't tell they are there. If the data rate is too low or something gets corrupted, then they become obvious though.
This is what has occurred in your video. During the recording, some data was dropped, resulting in the remaining data being shifted over and thus when the video is decoded, the image blocks are given information that doesn't line up correctly, resulting in the blocky look you are seeing.
Since full frames are only stored every 15 frames or so, the video can't recover from the error until the next full frame (I frame) is reached. This is because the decoder only knows what changed from the neighboring frame for B (based on former and next frame) and P (based on previous frame) frames. Thus, it works from the corrupt frame and produces further corrupt frames.
It is possible that the camera is trying to record proper data, but the SD card is not bothering to write it down correctly. It is also possible that the encoder within the camera is corrupting the data and that the SD card is writing the data it is given faithfully. The best bet to troubleshoot is to try a different SD card and see if the problem continues in the same manner.
If the SD card does not fix the problem, I would suggest contacting Canon's customer support for further assistance with getting your camera fixed.