Carving is the practice of searching an input for files based on the input's content. Most often the input is a disk image, but it's possible (and sometimes practical) to carve individual files or physical memory.
Most file carvers operate by looking for file headers and/or footers, and then "carving out" the blocks between these two boundaries. Semantic Carving performs carving based on an analysis of the contents of the proposed files.
File carving tools are listed on the Tools:Data_Recovery wiki page.
Many carving programs have an option to only look at or near sector boundaries where headers are found. Searching the entire input can find files that have been embedded into other files, such as JPEGs being embedded into Microsoft Word documents.
DFRWS2006 featured a file carving challenge. As a condition of entering the challenge, all tools and techniques developed to solve the challenge had to be open sourced.